summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/perl/cpan
diff options
context:
space:
mode:
authorafresh1 <afresh1@openbsd.org>2019-02-13 21:15:00 +0000
committerafresh1 <afresh1@openbsd.org>2019-02-13 21:15:00 +0000
commit9f11ffb7133c203312a01e4b986886bc88c7d74b (patch)
tree6618511204c614b20256e4ef9dea39a7b311d638 /gnu/usr.bin/perl/cpan
parentImport perl-5.28.1 (diff)
downloadwireguard-openbsd-9f11ffb7133c203312a01e4b986886bc88c7d74b.tar.xz
wireguard-openbsd-9f11ffb7133c203312a01e4b986886bc88c7d74b.zip
Fix merge issues, remove excess files - match perl-5.28.1 dist
looking good sthen@, Great! bluhm@
Diffstat (limited to 'gnu/usr.bin/perl/cpan')
-rw-r--r--gnu/usr.bin/perl/cpan/Archive-Tar/bin/ptar8
-rw-r--r--gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm27
-rw-r--r--gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm7
-rw-r--r--gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm13
-rw-r--r--gnu/usr.bin/perl/cpan/B-Debug/Debug.pm85
-rwxr-xr-xgnu/usr.bin/perl/cpan/B-Debug/t/debug.t24
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta.pm28
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm58
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm10
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm10
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm73
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm17
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm20
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-bad.t7
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-fail.t7
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter.t7
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/load-bad.t5
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/merge.t56
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/meta-obj.t44
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/no-index.t5
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-finalize.t5
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-merge.t33
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs.t18
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/repository.t5
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/save-load.t7
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN-Meta/t/validator.t7
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm271
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm112
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm14
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm308
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Exception/RecursiveDependency.pm40
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm48
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm22
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm13
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Index.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Module.pm9
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm18
-rw-r--r--gnu/usr.bin/perl/cpan/CPAN/scripts/cpan106
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs4
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c2
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm8
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm3
-rwxr-xr-xgnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t2
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs239
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm60
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/adler32.c21
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/compress.c42
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c41
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c800
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h35
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c139
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c93
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/uncompr.c98
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h41
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c49
-rw-r--r--gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h55
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm53
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/10_base.t36
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t7
-rw-r--r--gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t7
-rw-r--r--gnu/usr.bin/perl/cpan/DB_File/DB_File.pm58
-rw-r--r--gnu/usr.bin/perl/cpan/DB_File/DB_File.xs18
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/HACKERS325
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/Makefile.PL154
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort.xs3
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort_pm.PL679
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort_xs.PL128
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/apicheck_c.PL22
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/devel/buildperl.pl601
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/devel/devtools.pl123
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mkapidoc.sh81
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mktodo58
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mktodo.pl374
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/devel/regenerate160
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/devel/scanprov78
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/mktests.PL110
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/module2.c54
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/module3.c71
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/apicheck.pl324
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/apidoc.fnc472
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500307042
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500400051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50040101
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50040201
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50040301
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50040401
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500405041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500500038
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50050101
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50050201
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50050304
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50050401
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006000290
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500600117
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50060021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50070001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500700128
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500700272
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500700387
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080008
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500800130
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080033
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080061
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080071
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080081
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50080091
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50090006
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50090018
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500900232
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500900367
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500900443
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/500900537
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/501000010
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/501000122
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/501100015
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50110016
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/501100213
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50110031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50110042
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50110052
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50120001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50120011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50120021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50120031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50120041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50120051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130016
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130029
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130033
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130056
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/501300632
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/501300736
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130088
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130091
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130104
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50130111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50140002
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50140011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50140021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50140031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50140041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50150001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/501500111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50150021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50150031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/501500431
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50150051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50150062
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50150078
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50150083
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50150095
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50160001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50160011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50160021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50160031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170027
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170045
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170062
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170077
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170088
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170093
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170101
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50170111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50180002
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50180011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50180021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50180031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50180041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190016
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190022
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190033
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190044
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190061
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190072
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190081
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190095
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190102
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50190111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50200001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50200011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50210001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/502100112
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50210024
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50210045
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50210054
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/50210063
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/502100712
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/502100866
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/embed.fnc2838
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/HvNAME38
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/MY_CXT185
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/SvPV535
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/SvREFCNT123
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/Sv_set118
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/call364
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/cop231
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/exception68
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/format63
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/grok670
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/gv99
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/limits326
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/mPUSH131
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/magic611
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/memory85
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/misc621
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newCONSTSUB104
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newRV67
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newSV_type79
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newSVpv109
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/podtest45
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphbin822
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphdoc346
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphtest908
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/pv_tools274
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/pvs154
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/shared_pv90
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/snprintf63
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/sprintf55
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/strlfuncs107
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/sv_xpvf313
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/threads68
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/uv122
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/variables486
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/version52
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/warn168
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/ppport.fnc23
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/ppptools.pl404
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500307021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500400050
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50040101
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50040201
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50040301
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50040401
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50040506
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500500028
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50050101
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50050201
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50050304
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50050401
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006000149
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500600111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50060021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50070001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500700123
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500700217
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500700364
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080006
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500800118
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080033
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080061
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080071
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080081
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50080091
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50090006
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50090016
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50090027
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500900323
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50090049
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/500900529
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50100007
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/501000113
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/501100014
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50110016
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/501100213
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50110031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50110042
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50110052
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50120001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50120011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50120021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50120031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50120041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50120051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130016
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130029
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130033
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130055
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/501300632
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/501300735
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130086
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130091
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130104
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50130111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50140002
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50140011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50140021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50140031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50140041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50150001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/501500111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50150021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50150031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/501500430
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50150051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50150062
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50150078
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50150083
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50150095
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50160001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50160011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50160021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50160031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170027
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170045
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170062
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170077
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170088
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170093
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170101
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50170111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50180002
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50180011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50180021
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50180031
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50180041
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190016
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190022
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190033
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190044
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190051
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190061
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190072
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190081
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190095
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190102
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50190111
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50200001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50200011
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50210001
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/502100112
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50210024
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50210045
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50210054
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/50210063
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/502100712
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/502100843
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/ppport_h.PL19
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/soak599
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/HvNAME.t56
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/MY_CXT.t54
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/SvPV.t120
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/SvREFCNT.t54
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/Sv_set.t71
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/call.t107
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/cop.t110
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/exception.t67
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/format.t55
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/grok.t62
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/gv.t60
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/limits.t55
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/mPUSH.t62
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/magic.t120
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/memory.t52
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/misc.t139
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/newCONSTSUB.t59
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/newRV.t53
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/newSV_type.t52
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/newSVpv.t78
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/podtest.t83
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/ppphtest.t946
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/pv_tools.t74
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/pvs.t73
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/shared_pv.t52
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/snprintf.t54
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/sprintf.t54
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/strlfuncs.t65
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/sv_xpvf.t78
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/t/testutil.pl48
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/threads.t54
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/uv.t61
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/variables.t107
-rwxr-xr-xgnu/usr.bin/perl/cpan/Devel-PPPort/t/warn.t78
-rw-r--r--gnu/usr.bin/perl/cpan/Devel-PPPort/typemap36
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs415
-rwxr-xr-xgnu/usr.bin/perl/cpan/Digest-MD5/t/files.t4
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-SHA/SHA.xs2
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm47
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-SHA/shasum181
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c12
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h6
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c6
-rw-r--r--gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h6
-rwxr-xr-xgnu/usr.bin/perl/cpan/Digest-SHA/t/methods.t53
-rwxr-xr-xgnu/usr.bin/perl/cpan/Digest-SHA/t/woodbury.t16
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/Encode.pm372
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/Encode.xs972
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/Makefile.PL108
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.pm14
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.xs118
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/bin/enc2xs70
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/bin/piconv2
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/bin/ucmlint7
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/encengine.c84
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/encoding.pm49
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm22
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/CN/HZ.pm9
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/Encoding.pm24
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/GSM0338.pm11
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm5
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/JP/JIS7.pm9
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/KR/2022_KR.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm524
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header/ISO_2022_JP.pm8
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Name.pm15
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/Supported.pod2
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/lib/Encode/Unicode/UTF7.pm9
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/Aliases.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/enc_data.t8
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/enc_eucjp.t23
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/enc_module.t8
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t23
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/encoding.t6
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/jperl.t6
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/mime-header.t421
-rwxr-xr-xgnu/usr.bin/perl/cpan/Encode/t/mime-name.t34
-rw-r--r--gnu/usr.bin/perl/cpan/Encode/t/taint.t28
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm201
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm23
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm9
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm11
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm50
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm603
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm40
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm11
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm5
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm171
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm61
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm1031
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm430
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm212
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm52
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm494
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod260
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod38
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm21
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm5
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm3
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t14
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t23
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t13
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t109
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t127
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/cd.t1
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/echo.t8
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/MPV.pm67
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/PL_FILES.pm119
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Problem.pm62
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Recurs.pm72
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm67
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Unicode.pm90
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm459
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm114
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/meta_convert.t211
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t54
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t31
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t12
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/postamble.t7
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/prereq.t78
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/recurs.t104
-rw-r--r--gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/several_authors.t58
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t8
-rwxr-xr-xgnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/xs.t53
-rw-r--r--gnu/usr.bin/perl/cpan/File-Fetch/lib/File/Fetch.pm41
-rw-r--r--gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm20
-rw-r--r--gnu/usr.bin/perl/cpan/File-Path/t/Path-Class.t50
-rwxr-xr-xgnu/usr.bin/perl/cpan/File-Path/t/Path.t36
-rw-r--r--gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t2
-rw-r--r--gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm25
-rw-r--r--gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs2
-rw-r--r--gnu/usr.bin/perl/cpan/Filter-Util-Call/filter-util.pl12
-rwxr-xr-xgnu/usr.bin/perl/cpan/Filter-Util-Call/t/call.t370
-rw-r--r--gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm48
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm387
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/001_api.t1
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/002_croakage.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/020_headers.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/100_get.t6
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/101_head.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/102_put.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/103_delete.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/104_post.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/110_mirror.t8
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/130_redirect.t15
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/140_proxy.t7
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/150_post_form.t4
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/160_cookies.t7
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/161_basic_auth.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/162_proxy_auth.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/170_keepalive.t3
-rw-r--r--gnu/usr.bin/perl/cpan/HTTP-Tiny/t/Util.pm5
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL3
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm28
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/File/GlobMapper.pm24
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm10
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm18
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm28
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod14
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm30
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm30
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm42
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm8
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm36
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm44
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm12
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm16
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm30
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm26
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm30
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm38
-rw-r--r--gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm3
-rwxr-xr-xgnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t2
-rw-r--r--gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm68
-rw-r--r--gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Msg.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Semaphore.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SharedMem.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SysV.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp23
-rw-r--r--gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm1622
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pm688
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pod571
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/API.pod335
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod196
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Constants.pm313
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pm78
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pod150
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Codes.pm6894
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm47
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pm76
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pod106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Codes.pm192
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm24
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pm77
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pod106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Codes.pm597
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm77
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pm78
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pod106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Codes.pm722
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pm77
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pod107
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Codes.pm64229
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm122
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pm76
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pod105
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Codes.pm2348
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm8
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pm106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pod150
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pm106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pod106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pm106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pod107
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pm106
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pod105
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/code2country.t156
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/code2country_old.t144
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/code2currency.t125
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langext.t54
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langfam.t54
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/code2language.t220
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langvar.t54
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/code2script.t57
-rwxr-xr-xgnu/usr.bin/perl/cpan/Locale-Codes/t/country.t260
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/country2code.t216
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/country2code_old.t183
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/country_code2code.t78
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/country_code2code_old.t78
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/country_old.t239
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/currency2code.t78
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/currency2code_old.t78
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/langext2code.t54
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/langfam2code.t54
-rwxr-xr-xgnu/usr.bin/perl/cpan/Locale-Codes/t/language.t99
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/language2code.t115
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/langvar2code.t54
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/script2code.t55
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/script2code_old.t55
-rw-r--r--gnu/usr.bin/perl/cpan/Locale-Codes/t/testfunc.pl4
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/FastCalc.xs13
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bigintfc.t25
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bootstrap.t1
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/leak.t5
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/mbi_rand.t123
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm8128
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm8106
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm4193
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm11
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/BareCalc.pm36
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Subclass.pm4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mif.t6
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/big_pi_e.t16
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc245
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t49
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t9
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc544
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t42
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/bigroot.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t101
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/mbi_rand.t22
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc235
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mif.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/trap.t14
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc135
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/upgradef.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib1.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib2.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib3.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib4.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/use_mbfw.t8
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t6
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm3484
-rw-r--r--gnu/usr.bin/perl/cpan/Math-BigRat/t/Math/BigRat/Test.pm12
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/big_ap.t79
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/bigfltrt.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/biglog.t42
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t30
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/bigratup.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/bigroot.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/hang.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/requirer.t2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Math-BigRat/t/trap.t131
-rw-r--r--gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm18
-rw-r--r--gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm59
-rw-r--r--gnu/usr.bin/perl/cpan/Module-Metadata/t/contains_pod.t2
-rw-r--r--gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t57
-rw-r--r--gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm82
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/BadMETA.yml24
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/META-VR.json30
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/META-VR.yml22
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/bareyaml.meta21
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/json.meta30
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/yaml.meta22
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm352
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/02_api.t185
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/03_functions.t33
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/04_export.t22
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/05_errors.t24
-rw-r--r--gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm82
-rw-r--r--gnu/usr.bin/perl/cpan/Perl-OSType/lib/Perl/OSType.pm17
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm13
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm40
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/BaseTo.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/GetOptsOO.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToANSI.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToChecker.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToNroff.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToPod.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToRtf.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTerm.pm42
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToText.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTk.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToXml.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/t/load.t23
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm9
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t18
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t12
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl8
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs524
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm172
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm30
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/00version.t9
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/min.t20
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t12
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/product.t39
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t22
-rw-r--r--gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t8
-rw-r--r--gnu/usr.bin/perl/cpan/Socket/Makefile.PL83
-rw-r--r--gnu/usr.bin/perl/cpan/Socket/Socket.pm49
-rw-r--r--gnu/usr.bin/perl/cpan/Socket/Socket.xs170
-rw-r--r--gnu/usr.bin/perl/cpan/Socket/t/getaddrinfo.t30
-rw-r--r--gnu/usr.bin/perl/cpan/Socket/t/socketpair.t6
-rw-r--r--gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL5
-rw-r--r--gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm196
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/bin/prove9
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove.pm10
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Base.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Base.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Color.pm60
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Session.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness/Env.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Object.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm14
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm42
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Source.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm7
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Harness/lib/Test/Harness.pm6
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm3050
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm3
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm12
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm69
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm88
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm5
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tutorial.pod4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/00test_harness_check.t26
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/01-basic.t5
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/478-cmp_ok_hash.t41
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/BEGIN_require_ok.t27
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/BEGIN_use_ok.t26
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/Builder.t30
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/carp.t32
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/create.t38
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/current_test.t11
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/current_test_without_plan.t16
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/details.t104
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing.t12
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_double.t47
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_plan_mismatch.t45
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_no_plan.t11
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_number.t12
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_plan.t11
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/fork_with_new_stdout.t54
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/has_plan.t23
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/has_plan2.t22
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/is_fh.t48
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/is_passing.t106
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/maybe_regex.t60
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_diag.t8
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_ending.t21
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_header.t21
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_plan_at_all.t36
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/ok_obj.t29
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/output.t113
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/reset.t78
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/reset_outputs.t35
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Builder/try.t42
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/More.t184
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/MyTest.pm15
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/Simple/load.t13
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/SmallTest.pm35
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_01basic.t59
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_02fhrestore.t58
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_03die.t12
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_04line_num.t8
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_05faildiag.t44
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_06errormess.t120
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_07args.t215
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_08subtest.t16
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_09do.t21
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_09do_script.pl13
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/auto.t30
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/bad_plan.t23
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/bail_out.t43
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/buffer.t22
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/c_flag.t21
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/capture.t32
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/check_tests.t117
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/circular_data.t71
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/cmp_ok.t86
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/dependents.t44
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/depth.t31
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/diag.t81
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/died.t45
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/dont_overwrite_die_handler.t20
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/eq_set.t34
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/exit.t117
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/explain.t27
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/extra.t60
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/extra_one.t52
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/fail-like.t77
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/fail-more.t521
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/fail.t56
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/fail_one.t43
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/filehandles.t18
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/fork.t32
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/harness_active.t88
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/import.t12
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_dne_bug.t47
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_fail.t421
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_with_threads.t65
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/missing.t56
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/new_ok.t42
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/no_plan.t33
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/no_tests.t44
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/note.t30
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/overload.t86
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/overload_threads.t60
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/plan.t21
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/plan_bad.t37
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/plan_is_noplan.t32
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/plan_no_plan.t40
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/plan_shouldnt_import.t16
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/plan_skip_all.t12
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/require_ok.t29
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/run_test.t145
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/simple.t17
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/skip.t98
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/skipall.t33
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/subtest/args.t33
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/bail_out.t59
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/subtest/basic.t214
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/subtest/die.t30
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/subtest/do.t17
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/subtest/exceptions.t63
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/for_do_t.test9
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/fork.t51
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/implicit_done.t31
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/line_numbers.t130
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/plan.t49
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/predicate.t166
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/subtest/singleton.t38
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/threads.t25
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/todo.t200
-rw-r--r--gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/wstat.t24
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/tbm_doesnt_set_exported_to.t24
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/thread_taint.t5
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/threads.t33
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/todo.t157
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/undef.t98
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/use_ok.t103
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/useing.t19
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/utf8.t67
-rwxr-xr-xgnu/usr.bin/perl/cpan/Test-Simple/t/versions.t28
-rw-r--r--gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm330
-rw-r--r--gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs313
-rw-r--r--gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm23
-rwxr-xr-xgnu/usr.bin/perl/cpan/Time-Piece/t/01base.t7
-rwxr-xr-xgnu/usr.bin/perl/cpan/Time-Piece/t/02core.t60
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.pm94
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.xs79
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Big5.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/GB2312.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Korean.pm26
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Stroke.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale.pm268
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/af.pl6
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ar.pl24
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/as.pl21
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/az.pl96
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/be.pl50
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bg.pl45
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bn.pl12
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ca.pl29
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cs.pl44
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cy.pl52
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/da.pl148
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/de_phone.pl52
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ee.pl62
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/eo.pl52
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es.pl12
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es_trad.pl24
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/et.pl98
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fa.pl88
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi.pl122
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl118
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fil.pl18
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fo.pl148
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fr.pl4
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/gu.pl12
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ha.pl24
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/haw.pl53
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hi.pl12
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hr.pl90
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hu.pl296
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hy.pl12
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ig.pl102
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/is.pl156
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ja.pl2650
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kk.pl60
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kl.pl144
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kn.pl14
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ko.pl1284
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kok.pl20
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ln.pl18
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lt.pl82
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lv.pl68
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mk.pl59
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ml.pl40
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mr.pl22
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mt.pl54
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nb.pl146
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nn.pl146
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nso.pl68
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/om.pl38
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/or.pl18
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pa.pl48
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pl.pl96
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ro.pl100
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ru.pl45
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sa.pl22
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/se.pl292
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si.pl14
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si_dict.pl12
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sk.pl84
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sl.pl28
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sq.pl92
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sr.pl51
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv.pl172
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl168
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ta.pl104
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/te.pl12
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/th.pl36
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tn.pl68
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/to.pl118
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tr.pl86
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/uk.pl53
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ur.pl144
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/vi.pl420
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wae.pl42
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wo.pl56
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/yo.pl46
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh.pl416
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl416
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl416
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl642
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl642
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl642
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/allkeys.txt53894
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/Makefile.PL10
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/mkheader2
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Collate/t/illegal.t4
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_es.t23
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_estr.t13
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_fr.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Collate/t/version.t4
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Collate/t/view.t13
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Normalize/Makefile.PL55
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Normalize/Normalize.pm635
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Normalize/Normalize.xs925
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Normalize/mkheader419
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/fcdc.t138
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/form.t84
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/func.t386
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/illegal.t85
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/norm.t145
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/null.t100
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Normalize/t/partial1.t120
-rw-r--r--gnu/usr.bin/perl/cpan/Unicode-Normalize/t/partial2.t116
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/proto.t99
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/split.t147
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/test.t168
-rwxr-xr-xgnu/usr.bin/perl/cpan/Unicode-Normalize/t/tie.t82
-rw-r--r--gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm20
-rw-r--r--gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm19
-rwxr-xr-xgnu/usr.bin/perl/cpan/autodie/t/exceptions.t16
-rw-r--r--gnu/usr.bin/perl/cpan/autodie/t/lib/Hints_pod_examples.pm16
-rw-r--r--gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm8
-rw-r--r--gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm8
-rw-r--r--gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm43
-rw-r--r--gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm60
-rw-r--r--gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm38
-rwxr-xr-xgnu/usr.bin/perl/cpan/bignum/t/bigexp.t1
-rw-r--r--gnu/usr.bin/perl/cpan/bignum/t/infnan.inc1
-rwxr-xr-xgnu/usr.bin/perl/cpan/bignum/t/scope_f.t1
-rw-r--r--gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm83
-rw-r--r--gnu/usr.bin/perl/cpan/experimental/t/basic.t48
-rw-r--r--gnu/usr.bin/perl/cpan/libnet/Makefile.PL4
-rw-r--r--gnu/usr.bin/perl/cpan/parent/lib/parent.pm6
-rwxr-xr-xgnu/usr.bin/perl/cpan/parent/t/parent-pmc.t24
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod2
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod26
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod2
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod8
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod31
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod6
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod2
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod2
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod4
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod2
-rw-r--r--gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod2
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm106
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm36
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm4
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm2
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL67
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL10
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/t/man/basic.t594
-rw-r--r--gnu/usr.bin/perl/cpan/podlators/t/man/options.t273
-rw-r--r--gnu/usr.bin/perl/cpan/version/lib/version.pm11
-rw-r--r--gnu/usr.bin/perl/cpan/version/lib/version.pod7
-rw-r--r--gnu/usr.bin/perl/cpan/version/lib/version/regex.pm20
-rw-r--r--gnu/usr.bin/perl/cpan/version/t/01base.t8
-rw-r--r--gnu/usr.bin/perl/cpan/version/t/02derived.t11
-rw-r--r--gnu/usr.bin/perl/cpan/version/t/03require.t8
-rw-r--r--gnu/usr.bin/perl/cpan/version/t/05sigdie.t2
-rw-r--r--gnu/usr.bin/perl/cpan/version/t/06noop.t2
-rw-r--r--gnu/usr.bin/perl/cpan/version/t/07locale.t2
-rw-r--r--gnu/usr.bin/perl/cpan/version/t/08_corelist.t2
-rw-r--r--gnu/usr.bin/perl/cpan/version/t/09_list_util.t2
1116 files changed, 106952 insertions, 125593 deletions
diff --git a/gnu/usr.bin/perl/cpan/Archive-Tar/bin/ptar b/gnu/usr.bin/perl/cpan/Archive-Tar/bin/ptar
index 9dc6402c666..67d41301710 100644
--- a/gnu/usr.bin/perl/cpan/Archive-Tar/bin/ptar
+++ b/gnu/usr.bin/perl/cpan/Archive-Tar/bin/ptar
@@ -94,12 +94,12 @@ sub usage {
=head1 NAME
- ptar - a tar-like program written in perl
+ptar - a tar-like program written in perl
=head1 DESCRIPTION
- ptar is a small, tar look-alike program that uses the perl module
- Archive::Tar to extract, create and list tar archives.
+ptar is a small, tar look-alike program that uses the perl module
+Archive::Tar to extract, create and list tar archives.
=head1 SYNOPSIS
@@ -123,7 +123,7 @@ sub usage {
=head1 SEE ALSO
- tar(1), L<Archive::Tar>.
+L<tar(1)>, L<Archive::Tar>.
=cut
diff --git a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm
index d110bd7bd8f..e08b5e59033 100644
--- a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm
+++ b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar.pm
@@ -31,7 +31,7 @@ use vars qw[$DEBUG $error $VERSION $WARN $FOLLOW_SYMLINK $CHOWN $CHMOD
$DEBUG = 0;
$WARN = 1;
$FOLLOW_SYMLINK = 0;
-$VERSION = "2.04_01";
+$VERSION = "2.30";
$CHOWN = 1;
$CHMOD = 1;
$SAME_PERMISSIONS = $> == 0 ? 1 : 0;
@@ -263,7 +263,7 @@ sub _get_handle {
### different reader/writer modules, different error vars... sigh
if( MODE_READ->($mode) ) {
- $fh = IO::Uncompress::Bunzip2->new( $file ) or do {
+ $fh = IO::Uncompress::Bunzip2->new( $file, MultiStream => 1 ) or do {
$self->_error( qq[Could not read '$file': ] .
$IO::Uncompress::Bunzip2::Bunzip2Error
);
@@ -601,6 +601,7 @@ sub extract {
my $self = shift;
my @args = @_;
my @files;
+ my $hashmap;
# use the speed optimization for all extracted files
local($self->{cwd}) = cwd() unless $self->{cwd};
@@ -617,16 +618,15 @@ sub extract {
### go find it then
} else {
- my $found;
- for my $entry ( @{$self->_data} ) {
- next unless $file eq $entry->full_path;
+ # create hash-map once to speed up lookup
+ $hashmap = $hashmap || {
+ map { $_->full_path, $_ } @{$self->_data}
+ };
+ if (exists $hashmap->{$file}) {
### we found the file you're looking for
- push @files, $entry;
- $found++;
- }
-
- unless( $found ) {
+ push @files, $hashmap->{$file};
+ } else {
return $self->_error(
qq[Could not find '$file' in archive] );
}
@@ -861,7 +861,7 @@ sub _extract_file {
}
if( length $entry->type && $entry->is_file ) {
my $fh = IO::File->new;
- $fh->open( '>' . $full ) or (
+ $fh->open( $full, '>' ) or (
$self->_error( qq[Could not open file '$full': $!] ),
return
);
@@ -1770,7 +1770,8 @@ Example usage:
sub iter {
my $class = shift;
- my $filename = shift or return;
+ my $filename = shift;
+ return unless defined $filename;
my $compressed = shift || 0;
my $opts = shift || {};
@@ -2263,7 +2264,7 @@ For example, if you add a Unicode string like
$tar->add_data('file.txt', "Euro: \x{20AC}");
then there will be a problem later when the tarfile gets written out
-to disk via C<$tar->write()>:
+to disk via C<< $tar->write() >>:
Wide character in print at .../Archive/Tar.pm line 1014.
diff --git a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm
index f9557e90197..66fad51a07a 100644
--- a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm
+++ b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm
@@ -3,7 +3,7 @@ package Archive::Tar::Constant;
BEGIN {
require Exporter;
- $VERSION = '2.04_01';
+ $VERSION = '2.30';
@ISA = qw[Exporter];
require Time::Local if $^O eq "MacOS";
@@ -11,6 +11,9 @@ BEGIN {
@EXPORT = Archive::Tar::Constant->_list_consts( __PACKAGE__ );
+use strict;
+use warnings;
+
use constant FILE => 0;
use constant HARDLINK => 1;
use constant SYMLINK => 2;
@@ -50,7 +53,7 @@ use constant MODE => do { 0666 & (0777 & ~umask) };
use constant STRIP_MODE => sub { shift() & 0777 };
use constant CHECK_SUM => " ";
-use constant UNPACK => 'A100 A8 A8 A8 a12 A12 A8 A1 A100 A6 A2 A32 A32 A8 A8 A155 x12'; # cdrake - size must be a12 - not A12 - or else screws up huge file sizes (>8gb)
+use constant UNPACK => 'a100 a8 a8 a8 a12 a12 a8 a1 a100 A6 a2 a32 a32 a8 a8 a155 x12'; # cdrake - size must be a12 - not A12 - or else screws up huge file sizes (>8gb)
use constant PACK => 'a100 a8 a8 a8 a12 a12 A8 a1 a100 a6 a2 a32 a32 a8 a8 a155 x12';
use constant NAME_LENGTH => 100;
use constant PREFIX_LENGTH => 155;
diff --git a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm
index 3ecad56fab2..b6fbecf6c9a 100644
--- a/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm
+++ b/gnu/usr.bin/perl/cpan/Archive-Tar/lib/Archive/Tar/File.pm
@@ -13,7 +13,7 @@ use Archive::Tar::Constant;
use vars qw[@ISA $VERSION];
#@ISA = qw[Archive::Tar];
-$VERSION = '2.04_01';
+$VERSION = '2.30';
### set value to 1 to oct() it during the unpack ###
@@ -396,12 +396,7 @@ sub _prefix_and_file {
my $path = shift;
my ($vol, $dirs, $file) = File::Spec->splitpath( $path, $self->is_dir );
- my @dirs = File::Spec->splitdir( $dirs );
-
- ### so sometimes the last element is '' -- probably when trailing
- ### dir slashes are encountered... this is of course pointless,
- ### so remove it
- pop @dirs while @dirs and not length $dirs[-1];
+ my @dirs = File::Spec->splitdir( File::Spec->canonpath($dirs) );
### if it's a directory, then $file might be empty
$file = pop @dirs if $self->is_dir and not length $file;
@@ -409,9 +404,7 @@ sub _prefix_and_file {
### splitting ../ gives you the relative path in native syntax
map { $_ = '..' if $_ eq '-' } @dirs if ON_VMS;
- my $prefix = File::Spec::Unix->catdir(
- grep { length } $vol, @dirs
- );
+ my $prefix = File::Spec::Unix->catdir(@dirs);
return( $prefix, $file );
}
diff --git a/gnu/usr.bin/perl/cpan/B-Debug/Debug.pm b/gnu/usr.bin/perl/cpan/B-Debug/Debug.pm
index fd66405bac3..d121cbbcfa6 100644
--- a/gnu/usr.bin/perl/cpan/B-Debug/Debug.pm
+++ b/gnu/usr.bin/perl/cpan/B-Debug/Debug.pm
@@ -1,10 +1,11 @@
package B::Debug;
-our $VERSION = '1.23';
+our $VERSION = '1.26';
+BEGIN { if ($] >= 5.027001) { require deprecate; import deprecate; } }
use strict;
require 5.006;
-use B qw(peekop class walkoptree walkoptree_exec
+use B qw(peekop walkoptree walkoptree_exec
main_start main_root cstring sv_undef SVf_NOK SVf_IOK);
use Config;
my (@optype, @specialsv_name);
@@ -37,7 +38,7 @@ sub _printop {
my $addr = ${$op} ? $op->ppaddr : '';
$addr =~ s/^PL_ppaddr// if $addr;
if (${$op}) {
- return sprintf "0x%08x %6s %s", ${$op}, class($op), $addr;
+ return sprintf "0x%08x %6s %s", ${$op}, B::class($op), $addr;
} else {
return sprintf "0x%x %6s %s", ${$op}, '', $addr;
}
@@ -45,7 +46,7 @@ sub _printop {
sub B::OP::debug {
my ($op) = @_;
- printf <<'EOT', class($op), $$op, _printop($op), _printop($op->next), _printop($op->sibling), $op->targ, $op->type, $op->name;
+ printf <<'EOT', B::class($op), $$op, _printop($op), _printop($op->next), _printop($op->sibling), $op->targ, $op->type, $op->name;
%s (0x%lx)
op_ppaddr %s
op_next %s
@@ -64,13 +65,18 @@ EOT
}
if ($have_B_Flags) {
printf <<'EOT', $op->flags, $op->flagspv, $op->private, $op->privatepv;
- op_flags %d %s
- op_private %d %s
+ op_flags %u %s
+ op_private %u %s
EOT
} else {
printf <<'EOT', $op->flags, $op->private;
- op_flags %d
- op_private %d
+ op_flags %u
+ op_private %u
+EOT
+ }
+ if ($op->can('rettype')) {
+ printf <<'EOT', $op->rettype;
+ op_rettype %u
EOT
}
}
@@ -143,7 +149,7 @@ sub B::COP::debug {
cop_warnings 0x%x
EOT
if ($] > 5.008 and $] < 5.011) {
- my $cop_io = class($op->io) eq 'SPECIAL' ? '' : $op->io->as_string;
+ my $cop_io = B::class($op->io) eq 'SPECIAL' ? '' : $op->io->as_string;
printf(" cop_io %s\n", cstring($cop_io));
}
}
@@ -167,6 +173,16 @@ sub B::METHOP::debug {
}
}
+sub B::UNOP_AUX::debug {
+ my ($op) = @_;
+ $op->B::OP::debug();
+ # string and perl5 aux_list needs the cv
+ # cperl has aux, Concise,-debug leaves it empty
+ if ($op->can('aux')) {
+ printf "\top_aux\t%s\n", cstring($op->aux);
+ }
+}
+
sub B::PVOP::debug {
my ($op) = @_;
$op->B::OP::debug();
@@ -191,10 +207,10 @@ sub B::NULL::debug {
sub B::SV::debug {
my ($sv) = @_;
if (!$$sv) {
- print class($sv), " = NULL\n";
+ print B::class($sv), " = NULL\n";
return;
}
- printf <<'EOT', class($sv), $$sv, $sv->REFCNT;
+ printf <<'EOT', B::class($sv), $$sv, $sv->REFCNT;
%s (0x%x)
REFCNT %d
EOT
@@ -266,38 +282,43 @@ sub B::BM::debug {
}
sub B::CV::debug {
- my ($sv) = @_;
- $sv->B::PVNV::debug();
- my ($stash) = $sv->STASH;
- my ($start) = $sv->START;
- my ($root) = $sv->ROOT;
- my ($padlist) = $sv->PADLIST;
- my ($file) = $sv->FILE;
- my ($gv) = $sv->GV;
+ my ($cv) = @_;
+ $cv->B::PVNV::debug();
+ my $stash = $cv->STASH;
+ my $start = $cv->START;
+ my $root = $cv->ROOT;
+ my $padlist = $cv->PADLIST;
+ my $file = $cv->FILE;
+ my $gv;
printf <<'EOT', $$stash, $$start, $$root;
STASH 0x%x
START 0x%x
ROOT 0x%x
EOT
- if ( $]>5.017 && ($sv->FLAGS & 0x40000)) { #lexsub
- printf("\tNAME\t%%s\n", $sv->NAME);
+ if ($cv->can('NAME_HEK') && $cv->NAME_HEK) {
+ printf("\tNAME\t%%s\n", $cv->NAME_HEK);
+ }
+ elsif ( $]>5.017 && ($cv->FLAGS & 0x40000)) { #lexsub
+ printf("\tNAME\t%%s\n", $cv->NAME_HEK);
} else {
- printf("\tGV\t%0x%x\t%s\n", $$gv, $gv->SAFENAME);
+ $gv = $cv->GV;
+ printf("\tGV\t%0x%x\t%s\n", $$gv, $gv->SAFENAME);
}
- printf <<'EOT', $file, $sv->DEPTH, $padlist, ${$sv->OUTSIDE};
+ printf <<'EOT', $file, $cv->DEPTH, $padlist, ${$cv->OUTSIDE};
FILE %s
DEPTH %d
PADLIST 0x%x
OUTSIDE 0x%x
EOT
- printf("\tOUTSIDE_SEQ\t%d\n", $sv->OUTSIDE_SEQ) if $] > 5.007;
+ printf("\tOUTSIDE_SEQ\t%d\n", $cv->OUTSIDE_SEQ) if $] > 5.007;
if ($have_B_Flags) {
- my $SVt_PVCV = $] < 5.010 ? 12 : 13;
- printf("\tCvFLAGS\t0x%x\t%s\n", $sv->CvFLAGS,
- $have_B_Flags_extra ? $sv->flagspv($SVt_PVCV) : $sv->flagspv);
+ my $SVt_PVCV = $] < 5.010 ? 12 : 13;
+ printf("\tCvFLAGS\t0x%x\t%s\n", $cv->CvFLAGS,
+ $have_B_Flags_extra ? $cv->flagspv($SVt_PVCV) : $cv->flagspv);
} else {
- printf("\tCvFLAGS\t0x%x\n", $sv->CvFLAGS);
+ printf("\tCvFLAGS\t0x%x\n", $cv->CvFLAGS);
}
+ printf("\tSIGOP\t0x%x\n", $cv->SIGOP) if $cv->can('SIGOP');
$start->debug if $start;
$root->debug if $root;
$gv->debug if $gv;
@@ -316,7 +337,7 @@ sub _array_debug {
my (@array) = eval { $av->ARRAY; };
print "\tARRAY\t\t(", join(", ", map("0x" . $$_, @array)), ")\n";
my $fill = eval { scalar(@array) };
- if ($Config{'useithreads'} && class($av) ne 'PADLIST') {
+ if ($Config{'useithreads'} && B::class($av) ne 'PADLIST') {
printf <<'EOT', $fill, $av->MAX, $av->OFF;
FILL %d
MAX %d
@@ -382,7 +403,7 @@ sub B::SPECIAL::debug {
sub B::PADLIST::debug {
my ($padlist) = @_;
- printf <<'EOT', class($padlist), $$padlist, $padlist->REFCNT;
+ printf <<'EOT', B::class($padlist), $$padlist, $padlist->REFCNT;
%s (0x%x)
REFCNT %d
EOT
@@ -415,7 +436,7 @@ B::Debug - Walk Perl syntax tree, printing debug info about ops
=head1 DESCRIPTION
-See F<ext/B/README> and the newer L<B::Concise>, L<B::Terse>.
+See F<ext/B/README> and the newer L<B::Concise>.
=head1 OPTIONS
@@ -424,7 +445,7 @@ otherwise in basic order.
=head1 AUTHOR
-Malcolm Beattie, C<mbeattie@sable.ox.ac.uk>
+Malcolm Beattie, C<retired>
Reini Urban C<rurban@cpan.org>
=head1 LICENSE
diff --git a/gnu/usr.bin/perl/cpan/B-Debug/t/debug.t b/gnu/usr.bin/perl/cpan/B-Debug/t/debug.t
index f4f0a105633..c362d7456df 100755
--- a/gnu/usr.bin/perl/cpan/B-Debug/t/debug.t
+++ b/gnu/usr.bin/perl/cpan/B-Debug/t/debug.t
@@ -32,17 +32,18 @@ use File::Spec;
my $a;
my $X = $^X =~ m/\s/ ? qq{"$^X"} : $^X;
-my $path = join " ", map { qq["-I$_"] } (File::Spec->catfile("blib","lib"), @INC);
+local $ENV{PERL5LIB} =
+ join $Config{path_sep}, File::Spec->catfile("blib","lib"), @INC;
my $redir = $^O =~ /VMS|MSWin32|MacOS/ ? "" : "2>&1";
-$a = `$X $path "-MO=Debug" -e 1 $redir`;
+$a = `$X "-MO=Debug" -e 1 $redir`;
like($a, qr/\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s);
-$a = `$X $path "-MO=Terse" -e 1 $redir`;
+$a = `$X "-MO=Terse" -e 1 $redir`;
like($a, qr/\bLISTOP\b.*leave.*\n OP\b.*enter.*\n COP\b.*nextstate.*\n OP\b.*null/s);
-$a = `$X $path "-MO=Terse" -ane "s/foo/bar/" $redir`;
+$a = `$X "-MO=Terse" -ane "s/foo/bar/" $redir`;
$a =~ s/\(0x[^)]+\)//g;
$a =~ s/\[[^\]]+\]//g;
$a =~ s/-e syntax OK//;
@@ -72,26 +73,23 @@ gvsv readline gv lineseq nextstate aassign null pushmark split pushre null
gvsv const null pushmark rvav gv nextstate subst const unstack
EOF
}
-#$b .= " nextstate" if $] < 5.008001; # ??
$b=~s/\n/ /g; $b=~s/\s+/ /g;
$b =~ s/\s+$//;
+$b =~ s/split pushre/split/ if $] >= 5.025006;
-TODO: {
- local $TODO = '5.21.5 split optimization' if $] == 5.021005;
- is($a, $b);
-}
+is($a, $b);
like(B::Debug::_printop(B::main_root), qr/LISTOP\s+\[OP_LEAVE\]/);
like(B::Debug::_printop(B::main_start), qr/OP\s+\[OP_ENTER\]/);
-$a = `$X $path "-MO=Debug" -e "B::main_root->debug" $redir`;
+$a = `$X "-MO=Debug" -e "B::main_root->debug" $redir`;
like($a, qr/op_next\s+0x0/m);
-$a = `$X $path "-MO=Debug" -e "B::main_start->debug" $redir`;
+$a = `$X "-MO=Debug" -e "B::main_start->debug" $redir`;
like($a, qr/\[OP_ENTER\]/m);
# pass missing FETCHSIZE, fixed with 1.06
my $e = q(BEGIN{tie @a, __PACKAGE__;sub TIEARRAY {bless{}} sub FETCH{1}};print $a[1]);
-$a = `$X $path "-MO=Debug" -e"$e" $redir`;
+$a = `$X "-MO=Debug" -e"$e" $redir`;
unlike($a, qr/locate object method "FETCHSIZE"/m);
# NV assertion with CV, fixed with 1.13
@@ -99,7 +97,7 @@ my $tmp = "tmp.pl";
open TMP, ">", $tmp;
print TMP 'my $p=1;$g=2;sub p($){my $i=1;$i+1};print p(0)+$g;';
close TMP;
-$a = `$X $path "-MO=Debug" $tmp $redir`;
+$a = `$X "-MO=Debug" $tmp $redir`;
ok(! $?);
unlike($a, qr/assertion "SvTYPE(sv) != SVt_PVCV" failed.*function: S_sv_2iuv_common/m);
unlike($a, qr/Use of uninitialized value in print/m);
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta.pm b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta.pm
index afbb221855a..4a8e65c0fc1 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
#pod =head1 SYNOPSIS
#pod
@@ -650,7 +650,7 @@ CPAN::Meta - the distribution metadata for a CPAN dist
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -1031,11 +1031,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 CONTRIBUTORS
-=for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Ken Williams Lars Dieckow Leon Timmermans majensen Mark Fowler Matt S Trout Michael G. Schwern mohawk2 moznion Niko Tyni Olaf Alders Olivier MenguĂŠ Randy Sims Tomohiro Hosaka
+=for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Benjamin Noggle Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov David Golden Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Kent Fredric Ken Williams Lars Dieckow Leon Timmermans majensen Mark Fowler Matt S Trout Michael G. Schwern Mohammad Anwar mohawk2 moznion Niko Tyni Olaf Alders Olivier MenguĂŠ Randy Sims Tomohiro Hosaka
=over 4
@@ -1049,6 +1053,10 @@ Avar Arnfjord Bjarmason <avar@cpan.org>
=item *
+Benjamin Noggle <agwind@users.noreply.github.com>
+
+=item *
+
Christopher J. Madsen <cjm@cpan.org>
=item *
@@ -1065,6 +1073,10 @@ Damyan Ivanov <dam@cpan.org>
=item *
+David Golden <xdg@xdg.me>
+
+=item *
+
Eric Wilhelm <ewilhelm@cpan.org>
=item *
@@ -1085,6 +1097,10 @@ Kenichi Ishigaki <ishigaki@cpan.org>
=item *
+Kent Fredric <kentfredric@gmail.com>
+
+=item *
+
Ken Williams <kwilliams@cpan.org>
=item *
@@ -1113,6 +1129,10 @@ Michael G. Schwern <mschwern@cpan.org>
=item *
+Mohammad S Anwar <mohammad.anwar@yahoo.com>
+
+=item *
+
mohawk2 <mohawk2@users.noreply.github.com>
=item *
@@ -1143,7 +1163,7 @@ Tomohiro Hosaka <bokutin@bokut.in>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm
index 03806bc82bf..0a52dcc2e6e 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta::Converter;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
#pod =head1 SYNOPSIS
#pod
@@ -43,22 +43,36 @@ BEGIN {
# Perl 5.10.0 didn't have "is_qv" in version.pm
*_is_qv = version->can('is_qv') ? sub { $_[0]->is_qv } : sub { exists $_[0]->{qv} };
+# We limit cloning to a maximum depth to bail out on circular data
+# structures. While actual cycle detection might be technically better,
+# we expect circularity in META data structures to be rare and generally
+# the result of user error. Therefore, a depth counter is lower overhead.
+our $DCLONE_MAXDEPTH = 1024;
+our $_CLONE_DEPTH;
+
sub _dclone {
- my $ref = shift;
-
- # if an object is in the data structure and doesn't specify how to
- # turn itself into JSON, we just stringify the object. That does the
- # right thing for typical things that might be there, like version objects,
- # Path::Class objects, etc.
- no warnings 'once';
- no warnings 'redefine';
- local *UNIVERSAL::TO_JSON = sub { "$_[0]" };
-
- my $json = Parse::CPAN::Meta->json_backend()->new
- ->utf8
- ->allow_blessed
- ->convert_blessed;
- $json->decode($json->encode($ref))
+ my ( $ref ) = @_;
+ return $ref unless my $reftype = ref $ref;
+
+ local $_CLONE_DEPTH = defined $_CLONE_DEPTH ? $_CLONE_DEPTH - 1 : $DCLONE_MAXDEPTH;
+ die "Depth Limit $DCLONE_MAXDEPTH Exceeded" if $_CLONE_DEPTH == 0;
+
+ return [ map { _dclone( $_ ) } @{$ref} ] if 'ARRAY' eq $reftype;
+ return { map { $_ => _dclone( $ref->{$_} ) } keys %{$ref} } if 'HASH' eq $reftype;
+
+ if ( 'SCALAR' eq $reftype ) {
+ my $new = _dclone(${$ref});
+ return \$new;
+ }
+
+ # We can't know if TO_JSON gives us cloned data, so refs must recurse
+ if ( eval { $ref->can('TO_JSON') } ) {
+ my $data = $ref->TO_JSON;
+ return ref $data ? _dclone( $data ) : $data;
+ }
+
+ # Just stringify everything else
+ return "$ref";
}
my %known_specs = (
@@ -333,7 +347,7 @@ sub _no_index_directory {
my ($element, $key, $meta, $version) = @_;
return unless $element;
- # cleanup wrong format
+ # clean up wrong format
if ( ! ref $element ) {
my $item = $element;
$element = { directory => [ $item ], file => [ $item ] };
@@ -421,7 +435,7 @@ sub _version_map {
}
elsif ( ref $element eq 'ARRAY' ) {
my $hashref = { map { $_ => 0 } @$element };
- return _version_map($hashref); # cleanup any weird stuff
+ return _version_map($hashref); # clean up any weird stuff
}
elsif ( ref $element eq '' && length $element ) {
return { $element => 0 }
@@ -1499,7 +1513,7 @@ CPAN::Meta::Converter - Convert CPAN distribution metadata structures
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -1622,11 +1636,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm
index 9dac4f42185..f6103495c72 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta::Feature;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
use CPAN::Meta::Prereqs;
@@ -77,7 +77,7 @@ CPAN::Meta::Feature - an optional feature provided by a CPAN distribution
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 DESCRIPTION
@@ -132,11 +132,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm
index f4cac5e59a9..aeeade94a37 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
package CPAN::Meta::History;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
1;
@@ -22,7 +22,7 @@ CPAN::Meta::History - history of CPAN Meta Spec changes
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 DESCRIPTION
@@ -304,11 +304,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm
index 8a13eb13c81..d4e93fd8a5c 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta::Prereqs;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
#pod =head1 DESCRIPTION
#pod
@@ -45,6 +45,7 @@ use CPAN::Meta::Requirements 2.121;
#pod
#pod =cut
+# note we also accept anything matching /\Ax_/i
sub __legal_phases { qw(configure build test runtime develop) }
sub __legal_types { qw(requires recommends suggests conflicts) }
@@ -114,6 +115,40 @@ sub requirements_for {
return $req;
}
+#pod =method phases
+#pod
+#pod my @phases = $prereqs->phases;
+#pod
+#pod This method returns the list of all phases currently populated in the prereqs
+#pod object, suitable for iterating.
+#pod
+#pod =cut
+
+sub phases {
+ my ($self) = @_;
+
+ my %is_legal_phase = map {; $_ => 1 } $self->__legal_phases;
+ grep { /\Ax_/i or $is_legal_phase{$_} } keys %{ $self->{prereqs} };
+}
+
+#pod =method types_in
+#pod
+#pod my @runtime_types = $prereqs->types_in('runtime');
+#pod
+#pod This method returns the list of all types currently populated in the prereqs
+#pod object for the provided phase, suitable for iterating.
+#pod
+#pod =cut
+
+sub types_in {
+ my ($self, $phase) = @_;
+
+ return unless $phase =~ /\Ax_/i or grep { $phase eq $_ } $self->__legal_phases;
+
+ my %is_legal_type = map {; $_ => 1 } $self->__legal_types;
+ grep { /\Ax_/i or $is_legal_type{$_} } keys %{ $self->{prereqs}{$phase} };
+}
+
#pod =method with_merged_prereqs
#pod
#pod my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );
@@ -139,8 +174,9 @@ sub with_merged_prereqs {
my %new_arg;
- for my $phase ($self->__legal_phases) {
- for my $type ($self->__legal_types) {
+ for my $phase (__uniq(map { $_->phases } @prereq_objs)) {
+ for my $type (__uniq(map { $_->types_in($phase) } @prereq_objs)) {
+
my $req = CPAN::Meta::Requirements->new;
for my $prereq (@prereq_objs) {
@@ -215,8 +251,8 @@ sub as_string_hash {
my %hash;
- for my $phase ($self->__legal_phases) {
- for my $type ($self->__legal_types) {
+ for my $phase ($self->phases) {
+ for my $type ($self->types_in($phase)) {
my $req = $self->requirements_for($phase, $type);
next unless $req->required_modules;
@@ -271,6 +307,11 @@ sub clone {
my $clone = (ref $self)->new( $self->as_string_hash );
}
+sub __uniq {
+ my (%s, $u);
+ grep { defined($_) ? !$s{$_}++ : !$u++ } @_;
+}
+
1;
# ABSTRACT: a set of distribution prerequisites by phase and type
@@ -285,7 +326,7 @@ CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 DESCRIPTION
@@ -333,6 +374,20 @@ be added to as needed.
If C<$phase> or C<$type> are undefined or otherwise invalid, an exception will
be raised.
+=head2 phases
+
+ my @phases = $prereqs->phases;
+
+This method returns the list of all phases currently populated in the prereqs
+object, suitable for iterating.
+
+=head2 types_in
+
+ my @runtime_types = $prereqs->types_in('runtime');
+
+This method returns the list of all types currently populated in the prereqs
+object for the provided phase, suitable for iterating.
+
=head2 with_merged_prereqs
my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );
@@ -405,11 +460,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm
index 9056940b51a..16e7495938d 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm
@@ -8,7 +8,7 @@ use strict;
use warnings;
package CPAN::Meta::Spec;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
1;
@@ -29,7 +29,7 @@ CPAN::Meta::Spec - specification for CPAN distribution metadata
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -159,7 +159,8 @@ constraints on the values of a data element.
=head2 Boolean
A I<Boolean> is used to provide a true or false value. It B<must> be
-represented as a defined value.
+represented as a defined value that is either "1" or "0" or stringifies
+to those values.
=head2 String
@@ -1196,6 +1197,10 @@ L<Module::Build>
L<Module::Install>
+=item *
+
+L<CPAN::Meta::History::Meta_1_4>
+
=back
=head1 HISTORY
@@ -1223,11 +1228,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm
index eddaa107302..a2256dea662 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta::Validator;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
#pod =head1 SYNOPSIS
#pod
@@ -669,8 +669,8 @@ sub check_list {
#pod
#pod boolean($self,$key,$value)
#pod
-#pod Validates for a boolean value. Currently these values are '1', '0', 'true',
-#pod 'false', however the latter 2 may be removed.
+#pod Validates for a boolean value: a defined value that is either "1" or "0" or
+#pod stringifies to those values.
#pod
#pod =item *
#pod
@@ -833,7 +833,7 @@ sub version {
sub boolean {
my ($self,$key,$value) = @_;
if(defined $value) {
- return 1 if($value =~ /^(0|1|true|false)$/);
+ return 1 if($value =~ /^(0|1)$/);
} else {
$value = '<undef>';
}
@@ -996,7 +996,7 @@ CPAN::Meta::Validator - validate CPAN distribution metadata structures
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -1124,8 +1124,8 @@ are both valid. A leading 'v' like 'v1.2.3' is also valid.
boolean($self,$key,$value)
-Validates for a boolean value. Currently these values are '1', '0', 'true',
-'false', however the latter 2 may be removed.
+Validates for a boolean value: a defined value that is either "1" or "0" or
+stringifies to those values.
=item *
@@ -1193,11 +1193,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-bad.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-bad.t
index 7cce934fa2e..2c0742317b8 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-bad.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-bad.t
@@ -7,9 +7,12 @@ use CPAN::Meta::Validator;
use CPAN::Meta::Converter;
use File::Spec;
use IO::Dir;
-use Parse::CPAN::Meta 1.4400;
+use Parse::CPAN::Meta;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
my @data_dirs = qw( t/data-valid t/data-fixable );
my @files = sort map {
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-fail.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-fail.t
index dfda1ae46af..1c1b1df5d67 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-fail.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter-fail.t
@@ -7,9 +7,12 @@ use CPAN::Meta::Validator;
use CPAN::Meta::Converter;
use File::Spec;
use IO::Dir;
-use Parse::CPAN::Meta 1.4400;
+use Parse::CPAN::Meta;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
my $data_dir = IO::Dir->new( 't/data-fail' );
my @files = sort grep { /^\w/ } $data_dir->read;
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter.t
index 87cdbd6985a..9f01244b15a 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/converter.t
@@ -9,9 +9,12 @@ use CPAN::Meta::Converter;
use File::Spec;
use File::Basename qw/basename/;
use IO::Dir;
-use Parse::CPAN::Meta 1.4400;
+use Parse::CPAN::Meta;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
# mock file object
package
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/load-bad.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/load-bad.t
index 7cae1688079..f22ca3e870d 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/load-bad.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/load-bad.t
@@ -8,7 +8,10 @@ use IO::Dir;
sub _slurp { do { local(@ARGV,$/)=shift(@_); <> } }
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
my $data_dir = IO::Dir->new( 't/data-fixable' );
my @files = sort grep { /^\w/ } $data_dir->read;
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/merge.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/merge.t
index 39e8124550d..73e8c3eec96 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/merge.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/merge.t
@@ -5,6 +5,11 @@ use Test::More;
use CPAN::Meta;
use CPAN::Meta::Merge;
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
+
my %base = (
abstract => 'This is a test',
author => ['A.U. Thor'],
@@ -139,7 +144,7 @@ is_deeply($merger->merge(\%base, { abstract => 'This is a test' }), \%base, 'Can
is(
eval { $merger->merge(\%base, { abstract => 'And now for something else' }) },
undef,
- 'Trying to merge different author gives an exception',
+ 'Trying to merge different abstract gives an exception',
);
like $@, qr/^Can't merge attribute abstract/, 'Exception looks right';
@@ -164,6 +169,55 @@ is_deeply(
'Trying to merge a new key for provides.$module is permitted; identical values are preserved',
);
+my $extra_merger = CPAN::Meta::Merge->new(
+ default_version => '2',
+ extra_mappings => {
+ 'x_toolkit' => 'set_addition',
+ 'x_meta_meta' => {
+ name => 'identical',
+ tags => 'set_addition',
+ }
+ }
+);
+
+my $extra_results = $extra_merger->merge(\%base, {
+ x_toolkit => [ 'marble' ],
+ x_meta_meta => {
+ name => 'Test',
+ tags => [ 'Testing' ],
+ }
+ },
+ { x_toolkit => [ 'trike'],
+ x_meta_meta => {
+ name => 'Test',
+ tags => [ 'TDD' ],
+ }
+ }
+);
+
+my $expected_nested_extra = {
+ name => 'Test',
+ tags => [ 'Testing', 'TDD' ],
+};
+is_deeply($extra_results->{x_toolkit}, [ 'marble', 'trike' ], 'Extra mapping fields are merged');
+is_deeply($extra_results->{x_meta_meta}, $expected_nested_extra, 'Nested extra mapping fields are merged' );
+
+my $adds_to = sub {
+ my ($left, $right, $path) = @_;
+ if ($right !~ /^\Q$left\E/) {
+ die sprintf "Can't merge attribute %s: '%s' does not start with '%s'", join('.', @{$path}), $right, $left;
+ }
+ return $right;
+};
+
+$extra_merger = CPAN::Meta::Merge->new(default_version => '2', extra_mappings => { 'abstract' => \&$adds_to } );
+my $extra_results2 = $extra_merger->merge({ abstract => 'This is a test.'}, { abstract => 'This is a test. Includes more detail..' } );
+is($extra_results2->{abstract}, 'This is a test. Includes more detail..', 'Extra mapping fields overwrite existing mappings');
+my $extra_failure = eval { $extra_merger->merge({ abstract => 'This is a test.'}, { abstract => 'This is a better test.' } ) };
+is($extra_failure, undef, 'Extra mapping produces a failure');
+like $@, qr/does not start with/, 'Exception looks right';
+
+
# issue 67
@base{qw/name version release_status/} = qw/Foo-Bar 0.01 testing/;
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/meta-obj.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/meta-obj.t
index fa3c703a439..57b918541cd 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/meta-obj.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/meta-obj.t
@@ -3,10 +3,13 @@ use warnings;
use Test::More 0.88;
use CPAN::Meta;
-
+use Storable qw(dclone);
use Scalar::Util qw(blessed);
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
my $distmeta = {
name => 'Module-Build',
@@ -74,7 +77,7 @@ my $distmeta = {
X_deep => { deep => 'structure' },
};
-my $meta = CPAN::Meta->new($distmeta);
+my $meta = CPAN::Meta->new(dclone $distmeta);
is(
blessed($meta->as_struct),
@@ -239,5 +242,40 @@ $chk_feature->($features[0]);
$chk_feature->( $meta->feature('domination') );
+
+sub read_file {
+ my $filename = shift;
+ open my $fh, '<', $filename;
+ local $/;
+ my $string = <$fh>;
+ $string =~ s/\$VERSION/$CPAN::Meta::VERSION/g;
+ $string;
+}
+
+sub clean_backends {
+ my $string = shift;
+ $string =~ s{"?generated_by.*}{};
+ $string =~ s{"?x_serialization_backend.*}{};
+ return $string;
+}
+
+is(
+ clean_backends($meta->as_string()),
+ clean_backends(read_file('t/data-valid/META-2.json')),
+ 'as_string with no arguments defaults to version 2 and JSON',
+);
+
+is(
+ clean_backends($meta->as_string({ version => 2 })),
+ clean_backends(read_file('t/data-valid/META-2.json')),
+ 'as_string using version 2 defaults to JSON',
+);
+
+is(
+ clean_backends($meta->as_string({ version => 1.4 })),
+ clean_backends(read_file('t/data-valid/META-1_4.yml')),
+ 'as_string using version 1.4 defaults to YAML',
+);
+
done_testing;
# vim: ts=2 sts=2 sw=2 et :
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/no-index.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/no-index.t
index 554e9214b08..0927ad2254b 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/no-index.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/no-index.t
@@ -4,7 +4,10 @@ use Test::More 0.88;
use CPAN::Meta;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
my %distmeta = (
name => 'Module-Billed',
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-finalize.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-finalize.t
index ac4aea837e5..8ace4942cb0 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-finalize.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-finalize.t
@@ -4,7 +4,10 @@ use Test::More 0.88;
use CPAN::Meta::Prereqs;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
sub dies_ok (&@) {
my ($code, $qr, $comment) = @_;
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-merge.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-merge.t
index e15c9f2c251..4e1baf2f9af 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-merge.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs-merge.t
@@ -4,7 +4,10 @@ use Test::More 0.88;
use CPAN::Meta::Prereqs;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
my $prereq_struct_1 = {
runtime => {
@@ -22,7 +25,15 @@ my $prereq_struct_1 = {
requires => {
'Test' => 0,
},
- }
+ x_type => {
+ 'Config' => 1,
+ },
+ },
+ x_phase => {
+ x_type => {
+ 'POSIX' => '1.23',
+ },
+ },
};
my $prereq_1 = CPAN::Meta::Prereqs->new($prereq_struct_1);
@@ -50,7 +61,12 @@ my $prereq_struct_2 = {
suggests => {
'Module::Build::Bob' => '20100101',
},
- }
+ },
+ x_phase => {
+ requires => {
+ 'JSON::PP' => '2.34',
+ },
+ },
};
my $prereq_2 = CPAN::Meta::Prereqs->new($prereq_struct_2);
@@ -88,6 +104,17 @@ my $want = {
suggests => {
'Module::Build::Bob' => '20100101',
},
+ x_type => {
+ 'Config' => 1,
+ },
+ },
+ x_phase => {
+ requires => {
+ 'JSON::PP' => '2.34',
+ },
+ x_type => {
+ 'POSIX' => '1.23',
+ },
},
};
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs.t
index b4a3c957aec..01ca00357c7 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/prereqs.t
@@ -4,7 +4,10 @@ use Test::More 0.88;
use CPAN::Meta::Prereqs;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
my $prereq_struct = {
runtime => {
@@ -34,7 +37,18 @@ my $prereq_struct = {
requires => {
'Test' => 0,
},
- }
+ x_type => {
+ 'Config' => 1,
+ },
+ },
+ x_phase => {
+ requires => {
+ 'JSON::PP' => '2.34',
+ },
+ x_type => {
+ 'POSIX' => '1.23',
+ },
+ },
};
my $prereq = CPAN::Meta::Prereqs->new($prereq_struct);
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/repository.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/repository.t
index 0cd2c249c06..cf18affed84 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/repository.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/repository.t
@@ -4,7 +4,10 @@ use Test::More 0.88;
use CPAN::Meta;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
# 1.4 repository upgrade
{
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/save-load.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/save-load.t
index 8093344e326..ef596f87ed0 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/save-load.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/save-load.t
@@ -4,9 +4,12 @@ use Test::More 0.88;
use CPAN::Meta;
use File::Temp 0.20 ();
-use Parse::CPAN::Meta 1.4400;
+use Parse::CPAN::Meta;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
my $distmeta = {
name => 'Module-Build',
diff --git a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/validator.t b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/validator.t
index 01450731724..99a00c3c138 100644
--- a/gnu/usr.bin/perl/cpan/CPAN-Meta/t/validator.t
+++ b/gnu/usr.bin/perl/cpan/CPAN-Meta/t/validator.t
@@ -6,9 +6,12 @@ use CPAN::Meta;
use CPAN::Meta::Validator;
use File::Spec;
use IO::Dir;
-use Parse::CPAN::Meta 1.4400;
+use Parse::CPAN::Meta;
-delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+delete $ENV{PERL_YAML_BACKEND};
+delete $ENV{PERL_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_BACKEND};
+delete $ENV{CPAN_META_JSON_DECODER};
{
my @data_dirs = qw( t/data-test t/data-valid );
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm
index 94607d9b0f2..87549126dcd 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/App/Cpan.pm
@@ -6,7 +6,7 @@ use vars qw($VERSION);
use if $] < 5.008 => 'IO::Scalar';
-$VERSION = '1.63_01';
+$VERSION = '1.67';
=head1 NAME
@@ -34,7 +34,7 @@ App::Cpan - easily interact with CPAN from the command line
cpan
# without arguments, but some switches
- cpan [-ahpruvACDLOP]
+ cpan [-ahpruvACDLOPX]
=head1 DESCRIPTION
@@ -104,7 +104,7 @@ distribution.
Print a help message and exit. When you specify C<-h>, it ignores all
of the other options and arguments.
-=item -i
+=item -i module [ module ... ]
Install the specified modules. With no other switches, this switch
is implied.
@@ -164,7 +164,12 @@ session.
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-=item -t
+=item -s
+
+Drop in the CPAN.pm shell. This command does this automatically if you don't
+specify any arguments.
+
+=item -t module [ module ... ]
Run a `make test` on the specified modules.
@@ -192,6 +197,16 @@ UNIMPLEMENTED
Turn on cpan warnings. This checks various things, like directory permissions,
and tells you about problems you might have.
+=item -x module [ module ... ]
+
+Find close matches to the named modules that you think you might have
+mistyped. This requires the optional installation of Text::Levenshtein or
+Text::Levenshtein::Damerau.
+
+=item -X
+
+Dump all the namespaces to standard output.
+
=back
=head2 Examples
@@ -299,7 +314,7 @@ BEGIN { # most of this should be in methods
use vars qw( @META_OPTIONS $Default %CPAN_METHODS @CPAN_OPTIONS @option_order
%Method_table %Method_table_index );
-@META_OPTIONS = qw( h v V I g G M: C A D O l L a r p P j: J w T);
+@META_OPTIONS = qw( h v V I g G M: C A D O l L a r p P j: J w x X );
$Default = 'default';
@@ -312,6 +327,7 @@ $Default = 'default';
't' => 'test',
'u' => 'upgrade',
'T' => 'notest',
+ 's' => 'shell',
);
@CPAN_OPTIONS = grep { $_ ne $Default } sort keys %CPAN_METHODS;
@@ -332,6 +348,7 @@ sub GOOD_EXIT () { 0 }
h => [ \&_print_help, NO_ARGS, GOOD_EXIT, 'Printing help' ],
v => [ \&_print_version, NO_ARGS, GOOD_EXIT, 'Printing version' ],
V => [ \&_print_details, NO_ARGS, GOOD_EXIT, 'Printing detailed version' ],
+ X => [ \&_list_all_namespaces, NO_ARGS, GOOD_EXIT, 'Listing all namespaces' ],
# options that affect other options
j => [ \&_load_config, ARGS, GOOD_EXIT, 'Use specified config file' ],
@@ -343,8 +360,8 @@ sub GOOD_EXIT () { 0 }
w => [ \&_turn_on_warnings, NO_ARGS, GOOD_EXIT, 'Turning on warnings' ],
# options that do their one thing
- g => [ \&_download, NO_ARGS, GOOD_EXIT, 'Download the latest distro' ],
- G => [ \&_gitify, NO_ARGS, GOOD_EXIT, 'Down and gitify the latest distro' ],
+ g => [ \&_download, ARGS, GOOD_EXIT, 'Download the latest distro' ],
+ G => [ \&_gitify, ARGS, GOOD_EXIT, 'Down and gitify the latest distro' ],
C => [ \&_show_Changes, ARGS, GOOD_EXIT, 'Showing Changes file' ],
A => [ \&_show_Author, ARGS, GOOD_EXIT, 'Showing Author' ],
@@ -358,7 +375,9 @@ sub GOOD_EXIT () { 0 }
r => [ \&_recompile, NO_ARGS, GOOD_EXIT, 'Recompiling' ],
u => [ \&_upgrade, NO_ARGS, GOOD_EXIT, 'Running `make test`' ],
+ 's' => [ \&_shell, NO_ARGS, GOOD_EXIT, 'Running `make test`' ],
+ 'x' => [ \&_guess_namespace, ARGS, GOOD_EXIT, 'Guessing namespaces' ],
c => [ \&_default, ARGS, GOOD_EXIT, 'Running `make clean`' ],
f => [ \&_default, ARGS, GOOD_EXIT, 'Installing with force' ],
i => [ \&_default, ARGS, GOOD_EXIT, 'Running `make install`' ],
@@ -510,7 +529,7 @@ sub run
last OPTION;
}
- $logger->info( "$description -- ignoring other arguments" )
+ $logger->info( "[$option] $description -- ignoring other arguments" )
if( @ARGV && ! $takes_args );
$return_value = $sub->( \ @ARGV, $options );
@@ -526,19 +545,25 @@ package
Local::Null::Logger; # hide from PAUSE
sub new { bless \ my $x, $_[0] }
-sub AUTOLOAD { 1 }
+sub AUTOLOAD {
+ my $autoload = our $AUTOLOAD;
+ $autoload =~ s/.*://;
+ return if $autoload =~ /^(debug|trace)$/;
+ $CPAN::Frontend->mywarn(">($autoload): $_\n")
+ for split /[\r\n]+/, $_[1];
+}
sub DESTROY { 1 }
}
# load a module without searching the default entry for the current
# directory
sub _safe_load_module {
- my $name = shift;
+ my $name = shift;
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
+ local @INC = @INC;
+ pop @INC if $INC[-1] eq '.';
- eval "require $name; 1";
+ eval "require $name; 1";
}
sub _init_logger
@@ -547,7 +572,7 @@ sub _init_logger
unless( $log4perl_loaded )
{
- print "Loading internal null logger. Install Log::Log4perl for logging messages\n";
+ print STDOUT "Loading internal logger. Log::Log4perl recommended for better logging\n";
$logger = Local::Null::Logger->new;
return $logger;
}
@@ -606,8 +631,16 @@ sub _default
# How do I handle exit codes for multiple arguments?
my @errors = ();
+ $options->{x} or _disable_guessers();
+
foreach my $arg ( @$args )
{
+ # check the argument and perhaps capture typos
+ my $module = _expand_module( $arg ) or do {
+ $logger->error( "Skipping $arg because I couldn't find a matching namespace." );
+ next;
+ };
+
_clear_cpanpm_output();
$action->( $arg );
@@ -796,8 +829,7 @@ HERE
$CPAN::Frontend->myprint("\n");
}
- my $mirrors = CPAN::Mirrors->new( );
- $mirrors->parse_mirrored_by( File::Spec->catfile($CPAN::Config->{keep_source_where},'MIRRORED.BY') );
+ my $mirrors = CPAN::Mirrors->new( _mirror_file() );
my @continents = $mirrors->find_best_continents;
my @mirrors = $mirrors->get_mirrors_by_continents( $continents[0] );
@@ -918,9 +950,7 @@ sub _is_pingable_scheme {
$uri->scheme eq 'file'
}
-sub _find_good_mirrors {
- require CPAN::Mirrors;
-
+sub _mirror_file {
my $file = do {
my $file = 'MIRRORED.BY';
my $local_path = File::Spec->catfile(
@@ -933,7 +963,12 @@ sub _find_good_mirrors {
$local_path;
}
};
- my $mirrors = CPAN::Mirrors->new( $file );
+ }
+
+sub _find_good_mirrors {
+ require CPAN::Mirrors;
+
+ my $mirrors = CPAN::Mirrors->new( _mirror_file() );
my @mirrors = $mirrors->best_mirrors(
how_many => 5,
@@ -1006,7 +1041,7 @@ sub _load_local_lib # -I
my $rc = _safe_load_module("local::lib");
unless( $rc ) {
- $logger->die( "Could not load local::lib" );
+ $logger->logdie( "Could not load local::lib" );
}
local::lib->import;
@@ -1018,7 +1053,7 @@ sub _use_these_mirrors # -M
{
$logger->debug( "Setting per session mirrors" );
unless( $_[0] ) {
- $logger->die( "The -M switch requires a comma-separated list of mirrors" );
+ $logger->logdie( "The -M switch requires a comma-separated list of mirrors" );
}
$CPAN::Config->{urllist} = [ split /,/, $_[0] ];
@@ -1055,6 +1090,15 @@ sub _upgrade
return HEY_IT_WORKED;
}
+sub _shell
+ {
+ $logger->info( "Dropping into shell" );
+
+ CPAN::shell();
+
+ return HEY_IT_WORKED;
+ }
+
sub _load_config # -j
{
my $file = shift || '';
@@ -1113,14 +1157,17 @@ sub _download
my %paths;
- foreach my $module ( @$args )
- {
- $logger->info( "Checking $module" );
- my $path = CPAN::Shell->expand( "Module", $module )->cpan_file;
+ foreach my $arg ( @$args ) {
+ $logger->info( "Checking $arg" );
+
+ my $module = _expand_module( $arg ) or next;
+ my $path = $module->cpan_file;
$logger->debug( "Inst file would be $path\n" );
- $paths{$module} = _get_file( _make_path( $path ) );
+ $paths{$arg} = _get_file( _make_path( $path ) );
+
+ $logger->info( "Downloaded [$arg] to [$paths{$module}]" );
}
return \%paths;
@@ -1160,16 +1207,14 @@ sub _gitify
my $starting_dir = cwd();
- foreach my $module ( @$args )
+ foreach my $arg ( @$args )
{
- $logger->info( "Checking $module" );
- my $path = CPAN::Shell->expand( "Module", $module )->cpan_file;
-
- my $store_paths = _download( [ $module ] );
- $logger->debug( "gitify Store path is $store_paths->{$module}" );
- my $dirname = dirname( $store_paths->{$module} );
+ $logger->info( "Checking $arg" );
+ my $store_paths = _download( [ $arg ] );
+ $logger->debug( "gitify Store path is $store_paths->{$arg}" );
+ my $dirname = dirname( $store_paths->{$arg} );
- my $ae = Archive::Extract->new( archive => $store_paths->{$module} );
+ my $ae = Archive::Extract->new( archive => $store_paths->{$arg} );
$ae->extract( to => $dirname );
chdir $ae->extract_path;
@@ -1197,7 +1242,8 @@ sub _show_Changes
{
$logger->info( "Checking $arg\n" );
- my $module = eval { CPAN::Shell->expand( "Module", $arg ) };
+ my $module = _expand_module( $arg ) or next;
+
my $out = _get_cpanpm_output();
next unless eval { $module->inst_file };
@@ -1244,7 +1290,8 @@ sub _show_Author
foreach my $arg ( @$args )
{
- my $module = CPAN::Shell->expand( "Module", $arg );
+ my $module = _expand_module( $arg ) or next;
+
unless( $module )
{
$logger->info( "Didn't find a $arg module, so no author!" );
@@ -1268,7 +1315,7 @@ sub _show_Details
foreach my $arg ( @$args )
{
- my $module = CPAN::Shell->expand( "Module", $arg );
+ my $module = _expand_module( $arg ) or next;
my $author = CPAN::Shell->expand( "Author", $module->userid );
next unless $module->userid;
@@ -1290,16 +1337,26 @@ sub _show_Details
return HEY_IT_WORKED;
}
+BEGIN {
+my $modules;
+sub _get_all_namespaces
+ {
+ return $modules if $modules;
+ $modules = [ map { $_->id } CPAN::Shell->expand( "Module", "/./" ) ];
+ }
+}
+
sub _show_out_of_date
{
- my @modules = CPAN::Shell->expand( "Module", "/./" );
+ my $modules = _get_all_namespaces();
printf "%-40s %6s %6s\n", "Module Name", "Local", "CPAN";
print "-" x 73, "\n";
- foreach my $module ( @modules )
+ foreach my $module ( @$modules )
{
- next unless $module->inst_file;
+ next unless $module = _expand_module($module);
+ next unless $module->inst_file;
next if $module->uptodate;
printf "%-40s %.4f %.4f\n",
$module->id,
@@ -1316,10 +1373,9 @@ sub _show_author_mods
my %hash = map { lc $_, 1 } @$args;
- my @modules = CPAN::Shell->expand( "Module", "/./" );
+ my $modules = _get_all_namespaces();
- foreach my $module ( @modules )
- {
+ foreach my $module ( @$modules ) {
next unless exists $hash{ lc $module->userid };
print $module->id, "\n";
}
@@ -1439,6 +1495,129 @@ sub _path_to_module
return $module_name;
}
+
+sub _expand_module
+ {
+ my( $module ) = @_;
+
+ my $expanded = CPAN::Shell->expandany( $module );
+ return $expanded if $expanded;
+ $expanded = CPAN::Shell->expand( "Module", $module );
+ unless( defined $expanded ) {
+ $logger->error( "Could not expand [$module]. Check the module name." );
+ my $threshold = (
+ grep { int }
+ sort { length $a <=> length $b }
+ length($module)/4, 4
+ )[0];
+
+ my $guesses = _guess_at_module_name( $module, $threshold );
+ if( defined $guesses and @$guesses ) {
+ $logger->info( "Perhaps you meant one of these:" );
+ foreach my $guess ( @$guesses ) {
+ $logger->info( "\t$guess" );
+ }
+ }
+ return;
+ }
+
+ return $expanded;
+ }
+
+my $guessers = [
+ [ qw( Text::Levenshtein::XS distance 7 1 ) ],
+ [ qw( Text::Levenshtein::Damerau::XS xs_edistance 7 1 ) ],
+
+ [ qw( Text::Levenshtein distance 7 1 ) ],
+ [ qw( Text::Levenshtein::Damerau::PP pp_edistance 7 1 ) ],
+
+ ];
+
+sub _disable_guessers
+ {
+ $_->[-1] = 0 for @$guessers;
+ }
+
+# for -x
+sub _guess_namespace
+ {
+ my $args = shift;
+
+ foreach my $arg ( @$args )
+ {
+ $logger->debug( "Checking $arg" );
+ my $guesses = _guess_at_module_name( $arg );
+
+ foreach my $guess ( @$guesses ) {
+ print $guess, "\n";
+ }
+ }
+
+ return HEY_IT_WORKED;
+ }
+
+sub _list_all_namespaces {
+ my $modules = _get_all_namespaces();
+
+ foreach my $module ( @$modules ) {
+ print $module, "\n";
+ }
+ }
+
+BEGIN {
+my $distance;
+my $_threshold;
+my $can_guess;
+my $shown_help = 0;
+sub _guess_at_module_name
+ {
+ my( $target, $threshold ) = @_;
+
+ unless( defined $distance ) {
+ foreach my $try ( @$guessers ) {
+ $can_guess = eval "require $try->[0]; 1" or next;
+
+ $try->[-1] or next; # disabled
+ no strict 'refs';
+ $distance = \&{ join "::", @$try[0,1] };
+ $threshold ||= $try->[2];
+ }
+ }
+ $_threshold ||= $threshold;
+
+ unless( $distance ) {
+ unless( $shown_help ) {
+ my $modules = join ", ", map { $_->[0] } @$guessers;
+ substr $modules, rindex( $modules, ',' ), 1, ', and';
+
+ # Should this be colorized?
+ if( $can_guess ) {
+ $logger->info( "I can suggest names if you provide the -x option on invocation." );
+ }
+ else {
+ $logger->info( "I can suggest names if you install one of $modules" );
+ $logger->info( "and you provide the -x option on invocation." );
+ }
+ $shown_help++;
+ }
+ return;
+ }
+
+ my $modules = _get_all_namespaces();
+ $logger->info( "Checking " . @$modules . " namespaces for close match suggestions" );
+
+ my %guesses;
+ foreach my $guess ( @$modules ) {
+ my $distance = $distance->( $target, $guess );
+ next if $distance > $_threshold;
+ $guesses{$guess} = $distance;
+ }
+
+ my @guesses = sort { $guesses{$a} <=> $guesses{$b} } keys %guesses;
+ return [ grep { defined } @guesses[0..9] ];
+ }
+}
+
1;
=back
@@ -1471,8 +1650,6 @@ report them to the user.
* Check then exit
-* no test option
-
=head1 BUGS
* none noted
@@ -1508,7 +1685,7 @@ brian d foy, C<< <bdfoy@cpan.org> >>
=head1 COPYRIGHT
-Copyright (c) 2001-2014, brian d foy, All Rights Reserved.
+Copyright (c) 2001-2015, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm
index 25bf3494a8e..1f69119e5f2 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm
@@ -2,7 +2,7 @@
# vim: ts=4 sts=4 sw=4:
use strict;
package CPAN;
-$CPAN::VERSION = '2.11_01';
+$CPAN::VERSION = '2.20';
$CPAN::VERSION =~ s/_//;
# we need to run chdir all over and we would get at wrong libraries
@@ -14,6 +14,7 @@ BEGIN {
$inc = File::Spec->rel2abs($inc) unless ref $inc;
}
}
+ $SIG{WINCH} = 'IGNORE' if exists $SIG{WINCH};
}
use CPAN::Author;
use CPAN::HandleConfig;
@@ -460,7 +461,7 @@ Enter 'h' for help.
}
for my $class (qw(Module Distribution)) {
# again unsafe meta access?
- for my $dm (keys %{$CPAN::META->{readwrite}{"CPAN::$class"}}) {
+ for my $dm (sort keys %{$CPAN::META->{readwrite}{"CPAN::$class"}}) {
next unless $CPAN::META->{readwrite}{"CPAN::$class"}{$dm}{incommandcolor};
CPAN->debug("BUG: $class '$dm' was in command state, resetting");
delete $CPAN::META->{readwrite}{"CPAN::$class"}{$dm}{incommandcolor};
@@ -563,7 +564,10 @@ sub _yaml_loadfile {
}
} elsif ($code = UNIVERSAL::can($yaml_module, "Load")) {
local *FH;
- open FH, $local_file or die "Could not open '$local_file': $!";
+ unless (open FH, $local_file) {
+ $CPAN::Frontend->mywarn("Could not open '$local_file': $!");
+ return +[];
+ }
local $/;
my $ystream = <FH>;
eval { @yaml = $code->($ystream); };
@@ -708,13 +712,14 @@ sub checklock {
my $otherpid = <$fh>;
my $otherhost = <$fh>;
$fh->close;
- if (defined $otherpid && $otherpid) {
+ if (defined $otherpid && length $otherpid) {
chomp $otherpid;
}
- if (defined $otherhost && $otherhost) {
+ if (defined $otherhost && length $otherhost) {
chomp $otherhost;
}
my $thishost = hostname();
+ my $ask_if_degraded_wanted = 0;
if (defined $otherhost && defined $thishost &&
$otherhost ne '' && $thishost ne '' &&
$otherhost ne $thishost) {
@@ -732,31 +737,7 @@ There seems to be running another CPAN process (pid $otherpid). Contacting...
});
if (kill 0, $otherpid or $!{EPERM}) {
$CPAN::Frontend->mywarn(qq{Other job is running.\n});
- my($ans) =
- CPAN::Shell::colorable_makemaker_prompt
- (qq{Shall I try to run in downgraded }.
- qq{mode? (Y/n)},"y");
- if ($ans =~ /^y/i) {
- $CPAN::Frontend->mywarn("Running in downgraded mode (experimental).
-Please report if something unexpected happens\n");
- $RUN_DEGRADED = 1;
- for ($CPAN::Config) {
- # XXX
- # $_->{build_dir_reuse} = 0; # 2006-11-17 akoenig Why was that?
- $_->{commandnumber_in_prompt} = 0; # visibility
- $_->{histfile} = ""; # who should win otherwise?
- $_->{cache_metadata} = 0; # better would be a lock?
- $_->{use_sqlite} = 0; # better would be a write lock!
- $_->{auto_commit} = 0; # we are violent, do not persist
- $_->{test_report} = 0; # Oliver Paukstadt had sent wrong reports in degraded mode
- }
- } else {
- $CPAN::Frontend->mydie("
-You may want to kill the other job and delete the lockfile. On UNIX try:
- kill $otherpid
- rm $lockfile
-");
- }
+ $ask_if_degraded_wanted = 1;
} elsif (-w $lockfile) {
my($ans) =
CPAN::Shell::colorable_makemaker_prompt
@@ -773,10 +754,46 @@ You may want to kill the other job and delete the lockfile. On UNIX try:
qq{ and then rerun us.\n}
);
}
+ } elsif ($^O eq "MSWin32") {
+ $CPAN::Frontend->mywarn(
+ qq{
+There seems to be running another CPAN process according to '$lockfile'.
+});
+ $ask_if_degraded_wanted = 1;
} else {
$CPAN::Frontend->mydie(sprintf("CPAN.pm panic: Found invalid lockfile ".
"'$lockfile', please remove. Cannot proceed.\n"));
}
+ if ($ask_if_degraded_wanted) {
+ my($ans) =
+ CPAN::Shell::colorable_makemaker_prompt
+ (qq{Shall I try to run in downgraded }.
+ qq{mode? (Y/n)},"y");
+ if ($ans =~ /^y/i) {
+ $CPAN::Frontend->mywarn("Running in downgraded mode (experimental).
+Please report if something unexpected happens\n");
+ $RUN_DEGRADED = 1;
+ for ($CPAN::Config) {
+ # XXX
+ # $_->{build_dir_reuse} = 0; # 2006-11-17 akoenig Why was that?
+ $_->{commandnumber_in_prompt} = 0; # visibility
+ $_->{histfile} = ""; # who should win otherwise?
+ $_->{cache_metadata} = 0; # better would be a lock?
+ $_->{use_sqlite} = 0; # better would be a write lock!
+ $_->{auto_commit} = 0; # we are violent, do not persist
+ $_->{test_report} = 0; # Oliver Paukstadt had sent wrong reports in degraded mode
+ }
+ } else {
+ my $msg = "You may want to kill the other job and delete the lockfile.";
+ if (defined $otherpid) {
+ $msg .= " Something like:
+ kill $otherpid
+ rm $lockfile
+";
+ }
+ $CPAN::Frontend->mydie("\n$msg");
+ }
+ }
}
my $dotcpan = $CPAN::Config->{cpan_home};
eval { File::Path::mkpath($dotcpan);};
@@ -842,11 +859,12 @@ this variable in either a CPAN/MyConfig.pm or a CPAN/Config.pm in your
}
my $sleep = 1;
while (!CPAN::_flock($fh, LOCK_EX|LOCK_NB)) {
- if ($sleep>10) {
- $CPAN::Frontend->mydie("Giving up\n");
+ my $err = $! || "unknown error";
+ if ($sleep>3) {
+ $CPAN::Frontend->mydie("Could not lock '$lockfile' with flock: $err; giving up\n");
}
- $CPAN::Frontend->mysleep($sleep++);
- $CPAN::Frontend->mywarn("Could not lock lockfile with flock: $!; retrying\n");
+ $CPAN::Frontend->mysleep($sleep+=0.1);
+ $CPAN::Frontend->mywarn("Could not lock '$lockfile' with flock: $err; retrying\n");
}
seek $fh, 0, 0;
@@ -1024,6 +1042,11 @@ sub has_usable {
'CPAN::Meta::Requirements' => [
sub {
+ if (defined $CPAN::Meta::Requirements::VERSION
+ && CPAN::Version->vlt($CPAN::Meta::Requirements::VERSION, "2.120920")
+ ) {
+ delete $INC{"CPAN/Meta/Requirements.pm"};
+ }
require CPAN::Meta::Requirements;
unless (CPAN::Version->vge(CPAN::Meta::Requirements->VERSION, 2.120920)) {
for ("Will not use CPAN::Meta::Requirements, need version 2.120920\n") {
@@ -1050,6 +1073,16 @@ sub has_usable {
},
],
'Net::FTP' => [
+ sub {
+ my $var = $CPAN::Config->{ftp_proxy} || $ENV{ftp_proxy};
+ if ($var and $var =~ /^http:/i) {
+ # rt #110833
+ for ("Net::FTP cannot handle http proxy") {
+ $CPAN::Frontend->mywarn($_);
+ die $_;
+ }
+ }
+ },
sub {require Net::FTP},
sub {require Net::Config},
],
@@ -1356,8 +1389,8 @@ sub _list_sorted_descending_is_tested {
keys %{$self->{is_tested}};
if ($foul) {
$CPAN::Frontend->mywarn("Lost build_dir detected ($foul), giving up all cached test results of currently running session.\n");
- for my $dbd (keys %{$self->{is_tested}}) { # distro-build-dir
- SEARCH: for my $d ($CPAN::META->all_objects("CPAN::Distribution")) {
+ for my $dbd (sort keys %{$self->{is_tested}}) { # distro-build-dir
+ SEARCH: for my $d (sort { $a->id cmp $b->id } $CPAN::META->all_objects("CPAN::Distribution")) {
if ($d->{build_dir} && $d->{build_dir} eq $dbd) {
$CPAN::Frontend->mywarn(sprintf "Flushing cache for %s\n", $d->pretty_id);
$d->fforce("");
@@ -1973,6 +2006,10 @@ the form
Modulename=arg0,arg1,arg2,arg3,...
+eg:
+
+ CPAN::Plugin::Flurb=dir,/opt/pkgs/flurb/raw,verbose,1
+
At run time, each listed plugin is instantiated as a singleton object
by running the equivalent of this pseudo code:
@@ -2093,6 +2130,9 @@ currently defined:
bzip2 path to external prg
cache_metadata use serializer to cache metadata
check_sigs if signatures should be verified
+ cleanup_after_install
+ remove build directory immediately after a
+ successful install
colorize_debug Term::ANSIColor attributes for debugging output
colorize_output boolean if Term::ANSIColor should colorize output
colorize_print Term::ANSIColor attributes for normal output
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm
index 1525dde5e32..3b4e93d8bf6 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Bundle.pm
@@ -8,7 +8,7 @@ use CPAN::Module;
use vars qw(
$VERSION
);
-$VERSION = "5.5001";
+$VERSION = "5.5003";
sub look {
my $self = shift;
@@ -21,6 +21,11 @@ sub undelay {
delete $self->{later};
for my $c ( $self->contains ) {
my $obj = CPAN::Shell->expandany($c) or next;
+ if ($obj->id eq $self->id){
+ my $id = $obj->id;
+ $CPAN::Frontend->mywarn("$id seems to contain itself, skipping\n");
+ next;
+ }
$obj->undelay;
}
}
@@ -39,7 +44,12 @@ sub color_cmd_tmps {
&& $color==1
&& $self->{incommandcolor}==$color;
if ($depth>=$CPAN::MAX_RECURSION) {
- die(CPAN::Exception::RecursiveDependency->new($ancestors));
+ my $e = CPAN::Exception::RecursiveDependency->new($ancestors);
+ if ($e->is_resolvable) {
+ return $self->{incommandcolor}=2;
+ } else {
+ die $e;
+ }
}
# warn "color_cmd_tmps $depth $color " . $self->id; # sleep 1;
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm
index 092b781ac2e..72101afc7b4 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm
@@ -8,7 +8,7 @@ use CPAN::InfoObj;
use File::Path ();
@CPAN::Distribution::ISA = qw(CPAN::InfoObj);
use vars qw($VERSION);
-$VERSION = "2.04";
+$VERSION = "2.19";
# no prepare, because prepare is not a command on the shell command line
# TODO: clear instance cache on reload
@@ -207,17 +207,22 @@ sub color_cmd_tmps {
&& $self->{incommandcolor}==$color;
$CPAN::MAX_RECURSION||=0; # silence 'once' warnings
if ($depth>=$CPAN::MAX_RECURSION) {
- die(CPAN::Exception::RecursiveDependency->new($ancestors));
+ my $e = CPAN::Exception::RecursiveDependency->new($ancestors);
+ if ($e->is_resolvable) {
+ return $self->{incommandcolor}=2;
+ } else {
+ die $e;
+ }
}
# warn "color_cmd_tmps $depth $color " . $self->id; # sleep 1;
my $prereq_pm = $self->prereq_pm;
if (defined $prereq_pm) {
# XXX also optional_req & optional_breq? -- xdg, 2012-04-01
# A: no, optional deps may recurse -- ak, 2014-05-07
- PREREQ: for my $pre (
+ PREREQ: for my $pre (sort(
keys %{$prereq_pm->{requires}||{}},
keys %{$prereq_pm->{build_requires}||{}},
- ) {
+ )) {
next PREREQ if $pre eq "perl";
my $premo;
unless ($premo = CPAN::Shell->expand("Module",$pre)) {
@@ -251,7 +256,7 @@ sub as_string {
#-> sub CPAN::Distribution::containsmods ;
sub containsmods {
my $self = shift;
- return keys %{$self->{CONTAINSMODS}} if exists $self->{CONTAINSMODS};
+ return sort keys %{$self->{CONTAINSMODS}} if exists $self->{CONTAINSMODS};
my $dist_id = $self->{ID};
for my $mod ($CPAN::META->all_objects("CPAN::Module")) {
my $mod_file = $mod->cpan_file or next;
@@ -264,7 +269,7 @@ sub containsmods {
}
$self->{CONTAINSMODS}{$mod_id} = undef if $mod_file eq $dist_id;
}
- keys %{$self->{CONTAINSMODS}||={}};
+ sort keys %{$self->{CONTAINSMODS}||={}};
}
#-> sub CPAN::Distribution::upload_date ;
@@ -372,6 +377,7 @@ sub get {
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ # local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # get
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -517,105 +523,66 @@ See also http://rt.cpan.org/Ticket/Display.html?id=38932\n");
@readdir = grep { $_ ne "pax_global_header" } @readdir;
}
$dh->close;
- my ($packagedir);
- # XXX here we want in each branch File::Temp to protect all build_dir directories
- if (CPAN->has_usable("File::Temp")) {
- my $tdir_base;
- my $from_dir;
- my @dirents;
- if (@readdir == 1 && -d $readdir[0]) {
- $tdir_base = $readdir[0];
- $from_dir = File::Spec->catdir(File::Spec->curdir,$readdir[0]);
- my $dh2;
- unless ($dh2 = DirHandle->new($from_dir)) {
- my($mode) = (stat $from_dir)[2];
- my $why = sprintf
- (
- "Couldn't opendir '%s', mode '%o': %s",
- $from_dir,
- $mode,
- $!,
- );
- $CPAN::Frontend->mywarn("$why\n");
- $self->{writemakefile} = CPAN::Distrostatus->new("NO -- $why");
- return;
- }
- @dirents = grep $_ !~ /^\.\.?(?!\n)\Z/s, $dh2->read; ### MAC??
- } else {
- my $userid = $self->cpan_userid;
- CPAN->debug("userid[$userid]");
- if (!$userid or $userid eq "N/A") {
- $userid = "anon";
- }
- $tdir_base = $userid;
- $from_dir = File::Spec->curdir;
- @dirents = @readdir;
+ my $tdir_base;
+ my $from_dir;
+ my @dirents;
+ if (@readdir == 1 && -d $readdir[0]) {
+ $tdir_base = $readdir[0];
+ $from_dir = File::Spec->catdir(File::Spec->curdir,$readdir[0]);
+ my $dh2;
+ unless ($dh2 = DirHandle->new($from_dir)) {
+ my($mode) = (stat $from_dir)[2];
+ my $why = sprintf
+ (
+ "Couldn't opendir '%s', mode '%o': %s",
+ $from_dir,
+ $mode,
+ $!,
+ );
+ $CPAN::Frontend->mywarn("$why\n");
+ $self->{writemakefile} = CPAN::Distrostatus->new("NO -- $why");
+ return;
}
- eval { File::Path::mkpath $builddir; };
- if ($@) {
- $CPAN::Frontend->mydie("Cannot create directory $builddir: $@");
+ @dirents = grep $_ !~ /^\.\.?(?!\n)\Z/s, $dh2->read; ### MAC??
+ } else {
+ my $userid = $self->cpan_userid;
+ CPAN->debug("userid[$userid]");
+ if (!$userid or $userid eq "N/A") {
+ $userid = "anon";
}
- $packagedir = File::Temp::tempdir(
- "$tdir_base-XXXXXX",
- DIR => $builddir,
- CLEANUP => 0,
- );
- chmod 0777 &~ umask, $packagedir; # may fail
- my $f;
- for $f (@dirents) { # is already without "." and ".."
- my $from = File::Spec->catfile($from_dir,$f);
- my $to = File::Spec->catfile($packagedir,$f);
- unless (File::Copy::move($from,$to)) {
- my $err = $!;
- $from = File::Spec->rel2abs($from);
- Carp::confess("Couldn't move $from to $to: $err");
- }
+ $tdir_base = $userid;
+ $from_dir = File::Spec->curdir;
+ @dirents = @readdir;
+ }
+ eval { File::Path::mkpath $builddir; };
+ if ($@) {
+ $CPAN::Frontend->mydie("Cannot create directory $builddir: $@");
+ }
+ my $packagedir;
+ my $eexist = $CPAN::META->has_usable("Errno") ? &Errno::EEXIST : undef;
+ for(my $suffix = 0; ; $suffix++) {
+ $packagedir = File::Spec->catdir($builddir, "$tdir_base-$suffix");
+ my $parent = $builddir;
+ mkdir($packagedir, 0777) and last;
+ if((defined($eexist) && $! != $eexist) || $suffix == 999) {
+ $CPAN::Frontend->mydie("Cannot create directory $packagedir: $!\n");
}
- } else { # older code below, still better than nothing when there is no File::Temp
- my($distdir);
- if (@readdir == 1 && -d $readdir[0]) {
- $distdir = $readdir[0];
- $packagedir = File::Spec->catdir($builddir,$distdir);
- $self->debug("packagedir[$packagedir]builddir[$builddir]distdir[$distdir]")
- if $CPAN::DEBUG;
- -d $packagedir and $CPAN::Frontend->myprint("Removing previously used ".
- "$packagedir\n");
- File::Path::rmtree($packagedir);
- unless (File::Copy::move($distdir,$packagedir)) {
- $CPAN::Frontend->unrecoverable_error(<<EOF);
-Couldn't move '$distdir' to '$packagedir': $!
-
-Cannot continue: Please find the reason why I cannot move
-$builddir/tmp-$$/$distdir
-to
-$packagedir
-and fix the problem, then retry
-
-EOF
- }
- $self->debug(sprintf("moved distdir[%s] to packagedir[%s] -e[%s]-d[%s]",
- $distdir,
- $packagedir,
- -e $packagedir,
- -d $packagedir,
- )) if $CPAN::DEBUG;
- } else {
- my $userid = $self->cpan_userid;
- CPAN->debug("userid[$userid]") if $CPAN::DEBUG;
- if (!$userid or $userid eq "N/A") {
- $userid = "anon";
- }
- my $pragmatic_dir = $userid . '000';
- $pragmatic_dir =~ s/\W_//g;
- $pragmatic_dir++ while -d "../$pragmatic_dir";
- $packagedir = File::Spec->catdir($builddir,$pragmatic_dir);
- $self->debug("packagedir[$packagedir]") if $CPAN::DEBUG;
- File::Path::mkpath($packagedir);
- my($f);
- for $f (@readdir) { # is already without "." and ".."
- my $to = File::Spec->catdir($packagedir,$f);
- File::Copy::move($f,$to) or Carp::confess("Couldn't move $f to $to: $!");
- }
+ }
+ my $f;
+ for $f (@dirents) { # is already without "." and ".."
+ my $from = File::Spec->catfile($from_dir,$f);
+ my $to = File::Spec->catfile($packagedir,$f);
+ unless (File::Copy::move($from,$to)) {
+ my $err = $!;
+ $from = File::Spec->rel2abs($from);
+ $CPAN::Frontend->mydie(
+ "Couldn't move $from to $to: $err; #82295? ".
+ "CPAN::VERSION=$CPAN::VERSION; ".
+ "File::Copy::VERSION=$File::Copy::VERSION; ".
+ "$from " . (-e $from ? "exists; " : "does not exist; ").
+ "$to " . (-e $to ? "exists; " : "does not exist; ").
+ "cwd=" . CPAN::anycwd() . ";"
+ );
}
}
$self->{build_dir} = $packagedir;
@@ -693,8 +660,11 @@ sub satisfy_requires {
my ($self) = @_;
$self->debug("Entering satisfy_requires") if $CPAN::DEBUG;
if (my @prereq = $self->unsat_prereq("later")) {
- $self->debug("unsatisfied[@prereq]") if $CPAN::DEBUG;
- $self->debug(@prereq) if $CPAN::DEBUG && @prereq;
+ if ($CPAN::DEBUG){
+ require Data::Dumper;
+ my $prereq = Data::Dumper->new(\@prereq)->Terse(1)->Indent(0)->Dump;
+ $self->debug("unsatisfied[$prereq]");
+ }
if ($prereq[0][0] eq "perl") {
my $need = "requires perl '$prereq[0][1]'";
my $id = $self->pretty_id;
@@ -734,7 +704,7 @@ sub satisfy_configure_requires {
return 1 unless @prereq;
$self->debug(\@prereq) if $CPAN::DEBUG;
if ($self->{configure_requires_later}) {
- for my $k (keys %{$self->{configure_requires_later_for}||{}}) {
+ for my $k (sort keys %{$self->{configure_requires_later_for}||{}}) {
if ($self->{configure_requires_later_for}{$k}>1) {
my $type = "";
for my $p (@prereq) {
@@ -1336,6 +1306,7 @@ Could not determine which directory to use for looking at $dist.
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ # local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # look
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -1749,13 +1720,10 @@ sub isa_perl {
my($self) = @_;
my $file = File::Basename::basename($self->id);
if ($file =~ m{ ^ perl
- -?
- (5)
- ([._-])
(
- \d{3}(_[0-4][0-9])?
+ -5\.\d+\.\d+
|
- \d+\.\d+
+ 5[._-]00[0-5](_[0-4][0-9])?
)
\.tar[._-](?:gz|bz2)
(?!\n)\Z
@@ -1855,6 +1823,7 @@ sub prepare {
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # prepare
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -2013,7 +1982,12 @@ sub prepare {
}
}
elsif ( $self->_should_report('pl') ) {
- ($output, $ret) = CPAN::Reporter::record_command($system);
+ ($output, $ret) = eval { CPAN::Reporter::record_command($system) };
+ if (! defined $output or $@) {
+ my $err = $@ || "Unknown error";
+ $CPAN::Frontend->mywarn("Error while running PL phase: $err");
+ return $self->goodbye("$system -- NOT OK");
+ }
CPAN::Reporter::grade_PL( $self, $system, $output, $ret );
}
else {
@@ -2115,7 +2089,7 @@ is part of the perl-%s distribution. To install that, you need to run
$self->called_for,
$self->isa_perl,
$self->called_for,
- $self->id,
+ $self->pretty_id,
));
$self->{make} = CPAN::Distrostatus->new("NO isa perl");
$CPAN::Frontend->mysleep(1);
@@ -2149,6 +2123,7 @@ is part of the perl-%s distribution. To install that, you need to run
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # make
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -2228,7 +2203,7 @@ is part of the perl-%s distribution. To install that, you need to run
"system()\n");
}
}
- my $system_ok;
+ my ($system_ok, $system_err);
if ($want_expect) {
# XXX probably want to check _should_report here and
# warn about not being able to use CPAN::Reporter with expect
@@ -2240,7 +2215,9 @@ is part of the perl-%s distribution. To install that, you need to run
$system_ok = ! $ret;
}
else {
- $system_ok = system($system) == 0;
+ my $rc = system($system);
+ $system_ok = $rc == 0;
+ $system_err = $! if $rc == -1;
}
$self->introduce_myself;
if ( $system_ok ) {
@@ -2250,6 +2227,7 @@ is part of the perl-%s distribution. To install that, you need to run
$self->{writemakefile} ||= CPAN::Distrostatus->new("YES");
$self->{make} = CPAN::Distrostatus->new("NO");
$CPAN::Frontend->mywarn(" $system -- NOT OK\n");
+ $CPAN::Frontend->mywarn(" $system_err\n") if defined $system_err;
}
$self->store_persistent_state;
@@ -2637,9 +2615,19 @@ sub _make_install_make_command {
sub is_locally_optional {
my($self, $prereq_pm, $prereq) = @_;
$prereq_pm ||= $self->{prereq_pm};
- exists $prereq_pm->{opt_requires}{$prereq}
- ||
- exists $prereq_pm->{opt_build_requires}{$prereq};
+ my($nmo,$opt);
+ for my $rt (qw(requires build_requires)) {
+ if (exists $prereq_pm->{$rt}{$prereq}) {
+ # rt 121914
+ $nmo ||= $CPAN::META->instance("CPAN::Module",$prereq);
+ my $av = $nmo->available_version;
+ return 0 if !$av || CPAN::Version->vlt($av,$prereq_pm->{$rt}{$prereq});
+ }
+ if (exists $prereq_pm->{"opt_$rt"}{$prereq}) {
+ $opt = 1;
+ }
+ }
+ return $opt||0;
}
#-> sub CPAN::Distribution::follow_prereqs ;
@@ -2788,8 +2776,29 @@ sub _feature_depends {
sub prereqs_for_slot {
my($self,$slot) = @_;
my($prereq_pm);
- $CPAN::META->has_usable("CPAN::Meta::Requirements")
- or die "CPAN::Meta::Requirements not available";
+ unless ($CPAN::META->has_usable("CPAN::Meta::Requirements")) {
+ my $whynot = "not available";
+ if (defined $CPAN::Meta::Requirements::VERSION) {
+ $whynot = "version $CPAN::Meta::Requirements::VERSION not sufficient";
+ }
+ $CPAN::Frontend->mywarn("CPAN::Meta::Requirements $whynot\n");
+ my $before = "";
+ if ($self->{CALLED_FOR}){
+ if ($self->{CALLED_FOR} =~
+ /^(
+ CPAN::Meta::Requirements
+ |version
+ |parent
+ |ExtUtils::MakeMaker
+ |Test::Harness
+ )$/x) {
+ $CPAN::Frontend->mywarn("Setting requirements to nil as a workaround\n");
+ return;
+ }
+ $before = " before $self->{CALLED_FOR}";
+ }
+ $CPAN::Frontend->mydie("Please install CPAN::Meta::Requirements manually$before");
+ }
my $merged = CPAN::Meta::Requirements->new;
my $prefs_depends = $self->prefs->{depends}||{};
my $feature_depends = $self->_feature_depends();
@@ -2852,10 +2861,12 @@ sub unsat_prereq {
my($self,$slot) = @_;
my($merged_hash,$prereq_pm) = $self->prereqs_for_slot($slot);
my(@need);
- $CPAN::META->has_usable("CPAN::Meta::Requirements")
- or die "CPAN::Meta::Requirements not available";
+ unless ($CPAN::META->has_usable("CPAN::Meta::Requirements")) {
+ $CPAN::Frontend->mywarn("CPAN::Meta::Requirements not available, please install as soon as possible, trying to continue with severly limited capabilities\n");
+ return;
+ }
my $merged = CPAN::Meta::Requirements->from_string_hash($merged_hash);
- my @merged = $merged->required_modules;
+ my @merged = sort $merged->required_modules;
CPAN->debug("all merged_prereqs[@merged]") if $CPAN::DEBUG;
NEED: for my $need_module ( @merged ) {
my $need_version = $merged->requirements_for_module($need_module);
@@ -2869,9 +2880,23 @@ sub unsat_prereq {
$CPAN::SQLite->search("CPAN::Module",$need_module);
}
$nmo = $CPAN::META->instance("CPAN::Module",$need_module);
- next if $nmo->uptodate;
$inst_file = $nmo->inst_file || '';
$available_file = $nmo->available_file || '';
+ $available_version = $nmo->available_version;
+ if ($nmo->uptodate) {
+ my $accepts = eval {
+ $merged->accepts_module($need_module, $available_version);
+ };
+ unless ($accepts) {
+ my $rq = $merged->requirements_for_module( $need_module );
+ $CPAN::Frontend->mywarn(
+ "Warning: Version '$available_version' of ".
+ "'$need_module' is up to date but does not ".
+ "fulfill requirements ($rq). I will continue, ".
+ "but chances to succeed are low.\n");
+ }
+ next NEED;
+ }
# if they have not specified a version, we accept any installed one
if ( $available_file
@@ -2884,8 +2909,6 @@ sub unsat_prereq {
next NEED;
}
}
-
- $available_version = $nmo->available_version;
}
# We only want to install prereqs if either they're not installed
@@ -3062,6 +3085,10 @@ sub unsat_prereq {
}
# here need to flag as optional for recommends/suggests
# -- xdg, 2012-04-01
+ $self->debug(sprintf "%s manadory?[%s]",
+ $self->pretty_id,
+ $self->{mandatory})
+ if $CPAN::DEBUG;
my $optional = !$self->{mandatory}
|| $self->is_locally_optional($prereq_pm, $need_module);
push @need, [$need_module,$needed_as,$optional];
@@ -3263,7 +3290,8 @@ sub prereq_pm {
}
my $areq;
my $do_replace;
- while (my($k,$v) = each %{$req||{}}) {
+ foreach my $k (sort keys %{$req||{}}) {
+ my $v = $req->{$k};
next unless defined $v;
if ($v =~ /\d/) {
$areq->{$k} = $v;
@@ -3500,6 +3528,7 @@ sub test {
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # test
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
@@ -3664,7 +3693,7 @@ sub _make_test_illuminate_prereqs {
my @prereq;
# local $CPAN::DEBUG = 16; # Distribution
- for my $m (keys %{$self->{sponsored_mods}}) {
+ for my $m (sort keys %{$self->{sponsored_mods}}) {
next unless $self->{sponsored_mods}{$m} > 0;
my $m_obj = CPAN::Shell->expand("Module",$m) or next;
# XXX we need available_version which reflects
@@ -3973,11 +4002,20 @@ sub install {
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # install
$CPAN::META->set_perl5lib;
local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
- my($pipe) = FileHandle->new("$system $stderr |") || Carp::croak("Can't execute $system: $!");
+ my($pipe) = FileHandle->new("$system $stderr |");
+ unless ($pipe) {
+ $CPAN::Frontend->mywarn("Can't execute $system: $!");
+ $self->introduce_myself;
+ $self->{install} = CPAN::Distrostatus->new("NO");
+ $CPAN::Frontend->mywarn(" $system -- NOT OK\n");
+ delete $self->{force_update};
+ return;
+ }
my($makeout) = "";
while (<$pipe>) {
print $_; # intentionally NOT use Frontend->myprint because it
@@ -3992,6 +4030,16 @@ sub install {
$CPAN::Frontend->myprint(" $system -- OK\n");
$CPAN::META->is_installed($self->{build_dir});
$self->{install} = CPAN::Distrostatus->new("YES");
+ if ($CPAN::Config->{'cleanup_after_install'}
+ && ! $self->is_dot_dist) {
+ my $parent = File::Spec->catdir( $self->{build_dir}, File::Spec->updir );
+ chdir $parent or $CPAN::Frontend->mydie("Couldn't chdir to $parent: $!\n");
+ File::Path::rmtree($self->{build_dir});
+ my $yml = "$self->{build_dir}.yml";
+ if (-e $yml) {
+ unlink $yml or $CPAN::Frontend->mydie("Couldn't unlink $yml: $!\n");
+ }
+ }
} else {
$self->{install} = CPAN::Distrostatus->new("NO");
$CPAN::Frontend->mywarn(" $system -- NOT OK\n");
@@ -4018,7 +4066,9 @@ sub install {
}
}
delete $self->{force_update};
- $self->store_persistent_state;
+ unless ($CPAN::Config->{'cleanup_after_install'}) {
+ $self->store_persistent_state;
+ }
$self->post_install();
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Exception/RecursiveDependency.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Exception/RecursiveDependency.pm
index b928ad74e31..82e82346efa 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Exception/RecursiveDependency.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Exception/RecursiveDependency.pm
@@ -7,7 +7,16 @@ use overload '""' => "as_string";
use vars qw(
$VERSION
);
-$VERSION = "5.5";
+$VERSION = "5.5001";
+
+{
+ package CPAN::Exception::RecursiveDependency::na;
+ use overload '""' => "as_string";
+ sub new { bless {}, shift };
+ sub as_string { "N/A" };
+}
+
+my $NA = CPAN::Exception::RecursiveDependency::na->new;
# a module sees its distribution (no version)
# a distribution sees its prereqs (which are module names) (usually with versions)
@@ -25,12 +34,13 @@ sub new {
}
}
my $in_loop = 0;
- for my $i (0..$#deps) {
+ my %mark;
+ DWALK: for my $i (0..$#deps) {
my $x = $deps[$i]{name};
$in_loop ||= $loop_starts_with && $x eq $loop_starts_with;
my $xo = CPAN::Shell->expandany($x) or next;
if ($xo->isa("CPAN::Module")) {
- my $have = $xo->inst_version || "N/A";
+ my $have = $xo->inst_version || $NA;
my($want,$d,$want_type);
if ($i>0 and $d = $deps[$i-1]{name}) {
my $do = CPAN::Shell->expandany($d);
@@ -54,13 +64,27 @@ sub new {
$deps[$i]{want_type} = $want_type;
$deps[$i]{want} = $want;
$deps[$i]{display_as} = "$x (have: $have; $want_type$want)";
+ if ((! ref $have || !$have->isa('CPAN::Exception::RecursiveDependency::na'))
+ && CPAN::Version->vge($have, $want)) {
+ # https://rt.cpan.org/Ticket/Display.html?id=115340
+ undef $loop_starts_with;
+ last DWALK;
+ }
} elsif ($xo->isa("CPAN::Distribution")) {
- $deps[$i]{display_as} = $xo->pretty_id;
+ my $pretty = $deps[$i]{display_as} = $xo->pretty_id;
+ my $mark_as;
if ($in_loop) {
- $xo->{make} = CPAN::Distrostatus->new("NO cannot resolve circular dependency");
+ $mark_as = CPAN::Distrostatus->new("NO cannot resolve circular dependency");
} else {
- $xo->{make} = CPAN::Distrostatus->new("NO one dependency ($loop_starts_with) is a circular dependency");
+ $mark_as = CPAN::Distrostatus->new("NO one dependency ($loop_starts_with) is a circular dependency");
}
+ $mark{$pretty} = { xo => $xo, mark_as => $mark_as };
+ }
+ }
+ if ($loop_starts_with) {
+ while (my($k,$v) = each %mark) {
+ my $xo = $v->{xo};
+ $xo->{make} = $v->{mark_as};
$xo->store_persistent_state; # otherwise I will not reach
# all involved parties for
# the next session
@@ -69,6 +93,10 @@ sub new {
bless { deps => \@deps, loop_starts_with => $loop_starts_with }, $class;
}
+sub is_resolvable {
+ ! defined shift->{loop_starts_with};
+}
+
sub as_string {
my($self) = shift;
my $deps = $self->{deps};
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm
index 831f234d3ce..6d9800e31b1 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FTP.pm
@@ -3,6 +3,7 @@
package CPAN::FTP;
use strict;
+use Errno ();
use Fcntl qw(:flock);
use File::Basename qw(dirname);
use File::Path qw(mkpath);
@@ -14,7 +15,20 @@ use vars qw($connect_to_internet_ok $Ua $Thesite $ThesiteURL $Themethod);
use vars qw(
$VERSION
);
-$VERSION = "5.5006";
+$VERSION = "5.5011";
+
+sub _plus_append_open {
+ my($fh, $file) = @_;
+ my $parent_dir = dirname $file;
+ mkpath $parent_dir;
+ my($cnt);
+ until (open $fh, "+>>$file") {
+ next if $! == Errno::EAGAIN; # don't increment on EAGAIN
+ $CPAN::Frontend->mydie("Could not open '$file' after 10000 tries: $!") if ++$cnt > 100000;
+ sleep 0.0001;
+ mkpath $parent_dir;
+ }
+}
#-> sub CPAN::FTP::ftp_statistics
# if they want to rewrite, they need to pass in a filehandle
@@ -28,20 +42,23 @@ sub _ftp_statistics {
$fh ||= FileHandle->new;
my $file = File::Spec->catfile($CPAN::Config->{cpan_home},"FTPstats.yml");
- mkpath dirname $file;
- open $fh, "+>>$file" or $CPAN::Frontend->mydie("Could not open '$file': $!");
+ _plus_append_open($fh,$file);
my $sleep = 1;
my $waitstart;
while (!CPAN::_flock($fh, $locktype|LOCK_NB)) {
$waitstart ||= localtime();
if ($sleep>3) {
- $CPAN::Frontend->mywarn("Waiting for a read lock on '$file' (since $waitstart)\n");
+ my $now = localtime();
+ $CPAN::Frontend->mywarn("$now: waiting for read lock on '$file' (since $waitstart)\n");
}
- $CPAN::Frontend->mysleep($sleep);
- if ($sleep <= 3) {
- $sleep+=0.33;
- } elsif ($sleep <=6) {
- $sleep+=0.11;
+ sleep($sleep); # this sleep must not be overridden;
+ # Frontend->mysleep with AUTOMATED_TESTING has
+ # provoked complete lock contention on my NFS
+ if ($sleep <= 6) {
+ $sleep+=0.5;
+ } else {
+ # retry to get a fresh handle. If it is NFS and the handle is stale, we will never get an flock
+ _plus_append_open($fh, $file);
}
}
my $stats = eval { CPAN->_yaml_loadfile($file); };
@@ -54,8 +71,11 @@ sub _ftp_statistics {
} elsif (ref $@ eq "CPAN::Exception::yaml_process_error") {
my $time = time;
my $to = "$file.$time";
- $CPAN::Frontend->myprint("Error reading '$file': $@\nStashing away as '$to' to prevent further interruptions. You may want to remove that file later.\n");
- rename $file, $to or $CPAN::Frontend->mydie("Could not rename: $!");
+ $CPAN::Frontend->mywarn("Error reading '$file': $@
+ Trying to stash it away as '$to' to prevent further interruptions.
+ You may want to remove that file later.\n");
+ # may fail because somebody else has moved it away in the meantime:
+ rename $file, $to or $CPAN::Frontend->mywarn("Could not rename '$file' to '$to': $!\n");
return;
}
} else {
@@ -133,7 +153,7 @@ sub _add_to_statistics {
unlink($sfile) if ($^O eq 'MSWin32' or $^O eq 'os2');
_copy_stat($sfile, "$sfile.$$") if -e $sfile;
rename "$sfile.$$", $sfile
- or $CPAN::Frontend->mydie("Could not rename '$sfile.$$' to '$sfile': $!\n");
+ or $CPAN::Frontend->mywarn("Could not rename '$sfile.$$' to '$sfile': $!\nGiving up\n");
}
}
@@ -549,7 +569,7 @@ sub hostdleasy { #called from hostdlxxx
my($ro_url);
HOSTEASY: for $ro_url (@$host_seq) {
$self->_set_attempt($stats,"dleasy",$ro_url);
- my $url .= "$ro_url$file";
+ my $url = "$ro_url$file";
$self->debug("localizing perlish[$url]") if $CPAN::DEBUG;
if ($url =~ /^file:/) {
my $l;
@@ -659,7 +679,7 @@ sub hostdleasy { #called from hostdlxxx
# Net::FTP can still succeed where LWP fails. So we do not
# skip Net::FTP anymore when LWP is available.
}
- } elsif ($url =~ /^http:/ && $CPAN::META->has_usable('HTTP::Tiny')) {
+ } elsif ($url =~ /^http:/i && $CPAN::META->has_usable('HTTP::Tiny')) {
require CPAN::HTTP::Client;
my $chc = CPAN::HTTP::Client->new(
proxy => $CPAN::Config->{http_proxy} || $ENV{http_proxy},
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm
index 918e009a2bc..49fa8ab7b95 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/FirstTime.pm
@@ -10,7 +10,7 @@ use File::Path ();
use File::Spec ();
use CPAN::Mirrors ();
use vars qw($VERSION $auto_config);
-$VERSION = "5.5307";
+$VERSION = "5.5311";
=head1 NAME
@@ -124,6 +124,14 @@ checks will be performed at all.
Always try to check and verify signatures if a SIGNATURE file is in
the package and Module::Signature is installed (yes/no)?
+=item cleanup_after_install
+
+Users who install modules and do not intend to look back, can free
+occupied disk space quickly by letting CPAN.pm cleanup each build
+directory immediately after a successful install.
+
+Remove build directory after a successful install? (yes/no)?
+
=item colorize_output
When you have Term::ANSIColor installed, you can turn on colorized
@@ -431,7 +439,7 @@ Randomize parameter
generally be installed except in resource constrained environments. When this
policy is true, recommended modules will be included with required modules.
-Included recommended modules?
+Include recommended modules?
=item scan_cache
@@ -481,7 +489,7 @@ Show all individual modules that have a $VERSION of zero?
dependencies provide enhanced operation. When this policy is true, suggested
modules will be included with required modules.
-Included suggested modules?
+Include suggested modules?
=item tar_verbosity
@@ -775,7 +783,7 @@ sub init {
}
} elsif (0 == length $matcher) {
} elsif (0 && $matcher eq "~") { # extremely buggy, but a nice idea
- my @unconfigured = grep { not exists $CPAN::Config->{$_}
+ my @unconfigured = sort grep { not exists $CPAN::Config->{$_}
or not defined $CPAN::Config->{$_}
or not length $CPAN::Config->{$_}
} keys %$CPAN::Config;
@@ -881,6 +889,7 @@ sub init {
my_dflt_prompt(index_expire => 1, $matcher);
my_prompt_loop(scan_cache => 'atstart', $matcher, 'atstart|atexit|never');
+ my_yn_prompt(cleanup_after_install => 0, $matcher);
#
#= cache_metadata
@@ -1300,8 +1309,9 @@ sub init {
$CPAN::Frontend->myprint("\nWriting $configpm for bootstrap...\n");
delete $CPAN::Config->{install_help}; # temporary only
CPAN::HandleConfig->commit;
- my $dist;
- if ( $dist = CPAN::Shell->expand('Module', 'local::lib')->distribution ) {
+ my($dist, $locallib);
+ $locallib = CPAN::Shell->expand('Module', 'local::lib');
+ if ( $locallib and $dist = $locallib->distribution ) {
# this is a hack to force bootstrapping
$dist->{prefs}{pl}{commandline} = "$^X Makefile.PL --bootstrap";
# Set @INC for this process so we find things as they bootstrap
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm
index e596cbcd6c5..c72439f92cb 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HandleConfig.pm
@@ -12,7 +12,7 @@ CPAN::HandleConfig - internal configuration handling for CPAN.pm
=cut
-$VERSION = "5.5006"; # see also CPAN::Config::VERSION at end of file
+$VERSION = "5.5008"; # see also CPAN::Config::VERSION at end of file
%can = (
commit => "Commit changes to disk",
@@ -42,6 +42,7 @@ $VERSION = "5.5006"; # see also CPAN::Config::VERSION at end of file
"bzip2",
"cache_metadata",
"check_sigs",
+ "cleanup_after_install",
"colorize_debug",
"colorize_output",
"colorize_print",
@@ -250,7 +251,7 @@ sub prettyprint {
sprintf "\t%-18s => %s\n",
"[$_]",
defined $v->{$_} ? "[$v->{$_}]" : "undef"
- } keys %$v;
+ } sort keys %$v;
}
$CPAN::Frontend->myprint(
join(
@@ -384,9 +385,9 @@ sub neatvalue {
return join "", @m;
}
return "$v" unless $t eq 'HASH';
- my(@m, $key, $val);
- while (($key,$val) = each %$v) {
- last unless defined $key; # cautious programming in case (undef,undef) is true
+ my @m;
+ foreach my $key (sort keys %$v) {
+ my $val = $v->{$key};
push(@m,"q[$key]=>".$self->neatvalue($val)) ;
}
return "{ ".join(', ',@m)." }";
@@ -769,7 +770,7 @@ sub prefs_lookup {
use strict;
use vars qw($AUTOLOAD $VERSION);
- $VERSION = "5.5006";
+ $VERSION = "5.5008";
# formerly CPAN::HandleConfig was known as CPAN::Config
sub AUTOLOAD { ## no critic
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Index.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Index.pm
index 8205d78bd02..59e75dcaeed 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Index.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Index.pm
@@ -1,7 +1,7 @@
package CPAN::Index;
use strict;
use vars qw($LAST_TIME $DATE_OF_02 $DATE_OF_03 $HAVE_REANIMATED $VERSION);
-$VERSION = "1.9601";
+$VERSION = "2.12";
@CPAN::Index::ISA = qw(CPAN::Debug);
$LAST_TIME ||= 0;
$DATE_OF_03 ||= 0;
@@ -528,7 +528,7 @@ sub rd_modlist {
my $until = keys(%$ret);
my $painted = 0;
CPAN->debug(sprintf "until[%d]", $until) if $CPAN::DEBUG;
- for (keys %$ret) {
+ for (sort keys %$ret) {
my $obj = $CPAN::META->instance("CPAN::Module",$_);
delete $ret->{$_}{modid}; # not needed here, maybe elsewhere
$obj->set(%{$ret->{$_}});
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm
index 37e7ce0ef9f..4ceca0458cc 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Mirrors.pm
@@ -34,7 +34,7 @@ CPAN::Mirrors - Get CPAN mirror information and select a fast one
package CPAN::Mirrors;
use strict;
use vars qw($VERSION $urllist $silent);
-$VERSION = "1.9601";
+$VERSION = "2.12";
use Carp;
use FileHandle;
@@ -82,7 +82,7 @@ Return a list of continents based on those defined in F<MIRRORED.BY>.
sub continents {
my ($self) = @_;
- return keys %{$self->{geography}};
+ return sort keys %{$self->{geography}};
}
=item countries( [CONTINENTS] )
@@ -99,7 +99,7 @@ sub countries {
@continents = $self->continents unless @continents;
my @countries;
for my $c (@continents) {
- push @countries, keys %{ $self->{geography}{$c} };
+ push @countries, sort keys %{ $self->{geography}{$c} };
}
return @countries;
}
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Module.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Module.pm
index bf1226c0f04..62ca42caf00 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Module.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Module.pm
@@ -7,7 +7,7 @@ use strict;
use vars qw(
$VERSION
);
-$VERSION = "5.5002";
+$VERSION = "5.5003";
BEGIN {
# alarm() is not implemented in perl 5.6.x and earlier under Windows
@@ -104,7 +104,12 @@ sub color_cmd_tmps {
# so we can break it
}
if ($depth>=$CPAN::MAX_RECURSION) {
- die(CPAN::Exception::RecursiveDependency->new($ancestors));
+ my $e = CPAN::Exception::RecursiveDependency->new($ancestors);
+ if ($e->is_resolvable) {
+ return $self->{incommandcolor}=2;
+ } else {
+ die $e;
+ }
}
# warn "color_cmd_tmps $depth $color " . $self->id; # sleep 1;
diff --git a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm
index 43e2fb9fa0b..423131cc2fd 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm
+++ b/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Shell.pm
@@ -47,7 +47,7 @@ use vars qw(
"CPAN/Tarzip.pm",
"CPAN/Version.pm",
);
-$VERSION = "5.5005";
+$VERSION = "5.5007";
# record the initial timestamp for reload.
$reload = { map {$INC{$_} ? ($_,(stat $INC{$_})[9]) : ()} @relo };
@CPAN::Shell::ISA = qw(CPAN::Debug);
@@ -174,8 +174,8 @@ Download, Test, Make, Install...
test make test (implies make) readme display these README files
install make install (implies test) perldoc display POD documentation
-Upgrade
- r WORDs or /REGEXP/ or NONE report updates for some/matching/all modules
+Upgrade installed modules
+ r WORDs or /REGEXP/ or NONE report updates for some/matching/all
upgrade WORDs or /REGEXP/ or NONE upgrade some/matching/all modules
Pragmas
@@ -517,14 +517,14 @@ sub hosts {
$s->{dltime} += $dltime;
}
my $res;
- for my $url (keys %{$S{ok}}) {
+ for my $url (sort keys %{$S{ok}}) {
next if $S{ok}{$url}{dltime} == 0; # div by zero
push @{$res->{ok}}, [@{$S{ok}{$url}}{qw(n dlsize dltime)},
$S{ok}{$url}{dlsize}/$S{ok}{$url}{dltime},
$url,
];
}
- for my $url (keys %{$S{no}}) {
+ for my $url (sort keys %{$S{no}}) {
push @{$res->{no}}, [$S{no}{$url},
$url,
];
@@ -637,6 +637,10 @@ sub _reload_this {
}
CPAN->debug(sprintf("reload file[%s] content[%s...]",$file,substr($content,0,128)))
if $CPAN::DEBUG;
+ my $includefile;
+ if ($includefile = $INC{$f} and -e $includefile) {
+ $f = $includefile;
+ }
delete $INC{$f};
local @INC = @inc;
eval "require '$f'";
@@ -1019,7 +1023,7 @@ CPAN_VERSION: %s %s
$need{$module->id}++;
}
unless (%need) {
- if ($what eq "u") {
+ if (!@expand || $what eq "u") {
$CPAN::Frontend->myprint("No modules found for @args\n");
} elsif ($what eq "r") {
$CPAN::Frontend->myprint("All modules are up to date for @args\n");
@@ -1107,7 +1111,7 @@ sub failed {
sub find_failed {
my($self,$only_id) = @_;
my @failed;
- DIST: for my $d ($CPAN::META->all_objects("CPAN::Distribution")) {
+ DIST: for my $d (sort { $a->id cmp $b->id } $CPAN::META->all_objects("CPAN::Distribution")) {
my $failed = "";
NAY: for my $nosayer ( # order matters!
"unwrapped",
diff --git a/gnu/usr.bin/perl/cpan/CPAN/scripts/cpan b/gnu/usr.bin/perl/cpan/CPAN/scripts/cpan
index ccba47e2275..cceab30e070 100644
--- a/gnu/usr.bin/perl/cpan/CPAN/scripts/cpan
+++ b/gnu/usr.bin/perl/cpan/CPAN/scripts/cpan
@@ -4,8 +4,8 @@ BEGIN { pop @INC if $INC[-1] eq '.' }
use strict;
use vars qw($VERSION);
-use App::Cpan '1.60_02';
-$VERSION = '1.61';
+use App::Cpan '1.64';
+$VERSION = '1.64';
my $rc = App::Cpan->run( @ARGV );
@@ -22,7 +22,13 @@ cpan - easily interact with CPAN from the command line
cpan module_name [ module_name ... ]
# with switches, installs modules with extra behavior
- cpan [-cfgimtTw] module_name [ module_name ... ]
+ cpan [-cfFimtTw] module_name [ module_name ... ]
+
+ # use local::lib
+ cpan -I module_name [ module_name ... ]
+
+ # one time mirror override for faster mirrors
+ cpan -p ...
# with just the dot, install from the distribution in the
# current directory
@@ -31,20 +37,8 @@ cpan - easily interact with CPAN from the command line
# without arguments, starts CPAN.pm shell
cpan
- # force install modules (usually those that fail tests)
- cpan -f module_name [ module_name ... ]
-
- # install modules but without testing them
- cpan -T module_name [ module_name ... ]
-
- # dump the configuration
- cpan -J
-
- # load a different configuration to install Module::Foo
- cpan -j some/other/file Module::Foo
-
# without arguments, but some switches
- cpan [-ahrvACDlLO]
+ cpan [-ahpruvACDLOPX]
=head1 DESCRIPTION
@@ -74,7 +68,10 @@ Show the F<Changes> files for the specified modules
=item -D module [ module ... ]
-Show the module details.
+Show the module details. This prints one line for each out-of-date module
+(meaning, modules locally installed but have newer versions on CPAN).
+Each line has three columns: module name, local version, and CPAN
+version.
=item -f
@@ -111,13 +108,15 @@ distribution.
Print a help message and exit. When you specify C<-h>, it ignores all
of the other options and arguments.
-=item -i
+=item -i module [ module ... ]
-Install the specified modules.
+Install the specified modules. With no other switches, this switch
+is implied.
=item -I
-Load C<local::lib> (think like C<-I> for loading lib paths).
+Load C<local::lib> (think like C<-I> for loading lib paths). Too bad
+C<-l> was already taken.
=item -j Config.pm
@@ -143,23 +142,38 @@ List the modules by the specified authors.
Make the specified modules.
+=item -M mirror1,mirror2,...
+
+A comma-separated list of mirrors to use for just this run. The C<-P>
+option can find them for you automatically.
+
+=item -n
+
+Do a dry run, but don't actually install anything. (unimplemented)
+
=item -O
Show the out-of-date modules.
=item -p
-Ping the configured mirrors
+Ping the configured mirrors and print a report
=item -P
-Find the best mirrors you could be using (but doesn't configure them just yet)
+Find the best mirrors you could be using and use them for the current
+session.
=item -r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-=item -t
+=item -s
+
+Drop in the CPAN.pm shell. This command does this automatically if you don't
+specify any arguments.
+
+=item -t module [ module ... ]
Run a `make test` on the specified modules.
@@ -187,6 +201,16 @@ UNIMPLEMENTED
Turn on cpan warnings. This checks various things, like directory permissions,
and tells you about problems you might have.
+=item -x module [ module ... ]
+
+Find close matches to the named modules that you think you might have
+mistyped. This requires the optional installation of Text::Levenshtein or
+Text::Levenshtein::Damerau.
+
+=item -X
+
+Dump all the namespaces to standard output.
+
=back
=head2 Examples
@@ -212,9 +236,10 @@ and tells you about problems you might have.
# force install modules ( must use -i )
cpan -fi CGI::Minimal URI
-=head1 ENVIRONMENT VARIABLES
+ # install modules but without testing them
+ cpan -Ti CGI::Minimal URI
-=over 4
+=head2 Environment variables
There are several components in CPAN.pm that use environment variables.
The build tools, L<ExtUtils::MakeMaker> and L<Module::Build> use some,
@@ -227,11 +252,21 @@ Oslo Concensus: L<https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/mas
=over 4
+=item NONINTERACTIVE_TESTING
+
+Assume no one is paying attention and skips prompts for distributions
+that do that correctly. C<cpan(1)> sets this to C<1> unless it already
+has a value (even if that value is false).
+
+=item PERL_MM_USE_DEFAULT
+
+Use the default answer for a prompted questions. C<cpan(1)> sets this
+to C<1> unless it already has a value (even if that value is false).
+
=item CPAN_OPTS
-C<cpan> splits this variable on whitespace and prepends that list to C<@ARGV>
-before it processes the command-line arguments. For instance, if you always
-want to use C<local:lib>, you can set C<CPAN_OPTS> to C<-I>.
+As with C<PERL5OPTS>, a string of additional C<cpan(1)> options to
+add to those you specify on the command line.
=item CPANSCRIPT_LOGLEVEL
@@ -245,19 +280,6 @@ C<ERROR>, and C<FATAL>. The default is C<INFO>.
The path to the C<git> binary to use for the Git features. The default
is C</usr/local/bin/git>.
-=item NONINTERACTIVE_TESTING
-
-Assume no one is paying attention and skips prompts for distributions
-that do that correctly. C<cpan(1)> sets this to C<1> unless it already
-has a value (even if that value is false).
-
-=item PERL_MM_USE_DEFAULT
-
-Use the default answer for a prompted questions. C<cpan(1)> sets this
-to C<1> unless it already has a value (even if that value is false).
-
-=back
-
=back
=head1 EXIT VALUES
@@ -313,7 +335,7 @@ brian d foy, C<< <bdfoy@cpan.org> >>
=head1 COPYRIGHT
-Copyright (c) 2001-2014, brian d foy, All Rights Reserved.
+Copyright (c) 2001-2015, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs
index e47dbae8531..b4e9ab55491 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs
@@ -558,7 +558,7 @@ bzclose(s, output)
if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
croak("Wide character in " COMPRESS_CLASS "::bzclose input parameter");
#endif
- if(! s->flags & FLAG_APPEND_OUTPUT) {
+ if((s->flags & FLAG_APPEND_OUTPUT) != FLAG_APPEND_OUTPUT) {
SvCUR_set(output, 0);
/* sv_setpvn(output, "", 0); */
}
@@ -619,7 +619,7 @@ bzflush(s, output)
if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
croak("Wide character in " COMPRESS_CLASS "::bzflush input parameter");
#endif
- if(! s->flags & FLAG_APPEND_OUTPUT) {
+ if((s->flags & FLAG_APPEND_OUTPUT) != FLAG_APPEND_OUTPUT) {
SvCUR_set(output, 0);
/* sv_setpvn(output, "", 0); */
}
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c
index 522e06ae040..07330787cef 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c
@@ -353,7 +353,7 @@ void sendMTFValues ( EState* s )
Calculate the cost of this group as coded
by each of the coding tables.
--*/
- for (t = 0; t < nGroups; t++) cost[t] = 0;
+ for (t = 0; t < BZ_N_GROUPS; t++) cost[t] = 0;
if (nGroups == 6 && 50 == ge-gs+1) {
/*--- fast track the common case ---*/
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
index d9e25bde1f2..ce5245fe4b6 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
@@ -11,7 +11,7 @@ use Carp ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
-$VERSION = '2.069';
+$VERSION = '2.074';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -364,13 +364,13 @@ L<File::GlobMapper|File::GlobMapper>, L<Archive::Zip|Archive::Zip>,
L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
-The primary site for the bzip2 program is F<http://www.bzip.org>.
+The primary site for the bzip2 program is L<http://www.bzip.org>.
See the module L<Compress::Bzip2|Compress::Bzip2>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -378,7 +378,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
index 9d7e5ed262d..47aebd60743 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/private/MakeUtil.pm
@@ -35,8 +35,7 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
- $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t
index ebe0f50efbf..3220a7fc142 100755
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t
@@ -19,7 +19,7 @@ BEGIN
if eval { require Test::NoWarnings ; import Test::NoWarnings; 1 };
- my $VERSION = '2.069';
+ my $VERSION = '2.074';
my @NAMES = qw(
);
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs
index 664c26c60c4..496b8767917 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs
@@ -74,6 +74,10 @@
# define AT_LEAST_ZLIB_1_2_8
#endif
+#if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1290
+# define AT_LEAST_ZLIB_1_2_9
+#endif
+
#ifdef USE_PPPORT_H
# define NEED_sv_2pvbyte
# define NEED_sv_2pv_nolen
@@ -134,12 +138,13 @@ typedef struct di_stream {
uLong dict_adler ;
int last_error ;
bool zip_mode ;
-#define SETP_BYTE
+/* #define SETP_BYTE */
#ifdef SETP_BYTE
+ /* SETP_BYTE only works with zlib up to 1.2.8 */
bool deflateParams_out_valid ;
Bytef deflateParams_out_byte;
#else
-#define deflateParams_BUFFER_SIZE 0x4000
+#define deflateParams_BUFFER_SIZE 0x40000
uLong deflateParams_out_length;
Bytef* deflateParams_out_buffer;
#endif
@@ -175,8 +180,7 @@ typedef di_stream * inflateStream ;
typedef di_stream * Compress__Raw__Zlib__inflateStream ;
typedef di_stream * Compress__Raw__Zlib__inflateScanStream ;
-#define ZMALLOC(to, typ) ((to = (typ *)safemalloc(sizeof(typ))), \
- Zero(to,1,typ))
+#define ZMALLOC(to, typ) (to = (typ *)safecalloc(sizeof(typ), 1))
/* Figure out the Operating System */
#ifdef MSDOS
@@ -501,7 +505,9 @@ DispStream(s, message)
voidpf my_zcalloc (voidpf opaque, unsigned items, unsigned size)
{
PERL_UNUSED_VAR(opaque);
- return safemalloc(items * size);
+ /* TODO - put back to calloc */
+ /* return safecalloc(items, size); */
+ return safemalloc(items* size);
}
@@ -636,6 +642,103 @@ char * string ;
return sv ;
}
+#if 0
+int
+flushToBuffer(di_stream* s, int flush)
+{
+ dTHX;
+ int ret ;
+ z_stream * strm = &s->stream;
+
+ Bytef* output = s->deflateParams_out_buffer ;
+
+ strm->next_in = NULL;
+ strm->avail_in = 0;
+
+ uLong total_output = 0;
+ uLong have = 0;
+
+ do
+ {
+ if (output)
+ output = (unsigned char *)saferealloc(output, total_output + s->bufsize);
+ else
+ output = (unsigned char *)safemalloc(s->bufsize);
+
+ strm->next_out = output + total_output;
+ strm->avail_out = s->bufsize;
+
+ ret = deflate(strm, flush); /* no bad return value */
+ //assert(ret != Z_STREAM_ERROR); /* state not clobbered */
+ if(ret == Z_STREAM_ERROR)
+ {
+ safefree(output);
+ return ret;
+ }
+ have = s->bufsize - strm->avail_out;
+ total_output += have;
+
+ //fprintf(stderr, "FLUSH %s %d, return %d\n", flush_flags[flush], have, ret);
+
+ } while (strm->avail_out == 0);
+
+ s->deflateParams_out_buffer = output;
+ s->deflateParams_out_length = total_output;
+
+ return Z_OK;
+}
+#endif
+
+#ifndef SETP_BYTE
+int
+flushParams(di_stream* s)
+{
+ dTHX;
+ int ret ;
+ z_stream * strm = &s->stream;
+
+ Bytef* output = s->deflateParams_out_buffer ;
+ uLong total_output = s->deflateParams_out_length;
+ uLong have = 0;
+
+ strm->next_in = NULL;
+ strm->avail_in = 0;
+
+
+ do
+ {
+ if (output)
+ output = (unsigned char *)saferealloc(output, total_output + s->bufsize);
+ else
+ output = (unsigned char *)safemalloc(s->bufsize);
+
+ strm->next_out = output + total_output;
+ strm->avail_out = s->bufsize;
+
+ ret = deflateParams(&(s->stream), s->Level, s->Strategy);
+ /* fprintf(stderr, "deflateParams %d %s %lu\n", ret,
+ GetErrorString(ret), s->bufsize - strm->avail_out); */
+
+ if (ret == Z_STREAM_ERROR)
+ break;
+
+ have = s->bufsize - strm->avail_out;
+ total_output += have;
+
+
+ } while (ret == Z_BUF_ERROR) ;
+
+ if(ret == Z_STREAM_ERROR)
+ safefree(output);
+ else
+ {
+ s->deflateParams_out_buffer = output;
+ s->deflateParams_out_length = total_output;
+ }
+
+ return ret;
+}
+#endif /* ! SETP_BYTE */
#include "constants.h"
@@ -720,7 +823,7 @@ Zip_crc32(buf, crc=crcInitial, offset=0)
uLong crc = NO_INIT
STRLEN len = NO_INIT
Bytef * buf = NO_INIT
- int offset
+ STRLEN offset
SV * sv = ST(0) ;
INIT:
/* If the buffer is a reference, dereference it */
@@ -731,6 +834,9 @@ Zip_crc32(buf, crc=crcInitial, offset=0)
#endif
buf = (Byte*)SvPVbyte(sv, len) ;
+ if (offset > len)
+ croak("Offset out of range in Compress::Raw::Zlib::crc32");
+
if (items < 2)
crc = crcInitial;
else if (SvOK(ST(1)))
@@ -991,20 +1097,24 @@ deflate (s, buf, output)
/* Check for saved output from deflateParams */
if (s->deflateParams_out_length) {
uLong plen = s->deflateParams_out_length ;
- /* printf("Copy %d bytes saved data\n", plen);*/
+ /* printf("Copy %lu bytes saved data\n", plen); */
if (s->stream.avail_out < plen) {
- /*printf("GROW from %d to %d\n", s->stream.avail_out,
- SvLEN(output) + plen - s->stream.avail_out); */
- Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ;
+ /* printf("GROW from %d to %lu\n", s->stream.avail_out,
+ SvLEN(output) + plen - s->stream.avail_out); */
+ s->stream.next_out = (Bytef*) Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ;
+ s->stream.next_out += cur_length;
}
- Copy(s->stream.next_out, s->deflateParams_out_buffer, plen, Bytef) ;
- cur_length = cur_length + plen;
+ Copy(s->deflateParams_out_buffer, s->stream.next_out, plen, Bytef) ;
+ cur_length += plen;
SvCUR_set(output, cur_length);
- s->stream.next_out += plen ;
- s->stream.avail_out = SvLEN(output) - cur_length ;
- increment = s->stream.avail_out;
- s->deflateParams_out_length = 0;
+ s->stream.next_out += plen ;
+ s->stream.avail_out = SvLEN(output) - cur_length ;
+ increment = s->stream.avail_out;
+
+ s->deflateParams_out_length = 0;
+ Safefree(s->deflateParams_out_buffer);
+ s->deflateParams_out_buffer = NULL;
}
#endif
RETVAL = Z_OK ;
@@ -1027,6 +1137,14 @@ deflate (s, buf, output)
}
RETVAL = deflate(&(s->stream), Z_NO_FLUSH);
+ /*
+ if (RETVAL != Z_STREAM_ERROR) {
+ int done = increment - s->stream.avail_out ;
+ printf("std DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL,
+ GetErrorString(RETVAL), s->stream.avail_in,
+s->stream.avail_out, done);
+ }
+ */
if (trace) {
printf("DEFLATE returned %d %s, avail in %d, out %d\n", RETVAL,
@@ -1079,8 +1197,8 @@ flush(s, output, f=Z_FINISH)
uLong availableout = NO_INIT
CODE:
bufinc = s->bufsize;
+
- s->stream.avail_in = 0; /* should be zero already anyway */
/* retrieve the output buffer */
output = deRef_l(output, "flush") ;
@@ -1088,7 +1206,7 @@ flush(s, output, f=Z_FINISH)
if (DO_UTF8(output) && !sv_utf8_downgrade(output, 1))
croak("Wide character in Compress::Raw::Zlib::Deflate::flush input parameter");
#endif
- if(! s->flags & FLAG_APPEND) {
+ if((s->flags & FLAG_APPEND) != FLAG_APPEND) {
SvCUR_set(output, 0);
/* sv_setpvn(output, "", 0); */
}
@@ -1108,20 +1226,24 @@ flush(s, output, f=Z_FINISH)
/* Check for saved output from deflateParams */
if (s->deflateParams_out_length) {
uLong plen = s->deflateParams_out_length ;
- /* printf("Copy %d bytes saved data\n", plen); */
+ /* printf("Copy %lu bytes saved data\n", plen); */
if (s->stream.avail_out < plen) {
- /* printf("GROW from %d to %d\n", s->stream.avail_out,
+ /* printf("GROW from %d to %lu\n", s->stream.avail_out,
SvLEN(output) + plen - s->stream.avail_out); */
- Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ;
+ s->stream.next_out = (Bytef*) Sv_Grow(output, SvLEN(output) + plen - s->stream.avail_out) ;
+ s->stream.next_out += cur_length;
}
- Copy(s->stream.next_out, s->deflateParams_out_buffer, plen, Bytef) ;
- cur_length = cur_length + plen;
+ Copy(s->deflateParams_out_buffer, s->stream.next_out, plen, Bytef) ;
+ cur_length += plen;
SvCUR_set(output, cur_length);
- s->stream.next_out += plen ;
- s->stream.avail_out = SvLEN(output) - cur_length ;
- increment = s->stream.avail_out;
- s->deflateParams_out_length = 0;
+ s->stream.next_out += plen ;
+ s->stream.avail_out = SvLEN(output) - cur_length ;
+ increment = s->stream.avail_out;
+
+ s->deflateParams_out_length = 0;
+ Safefree(s->deflateParams_out_buffer);
+ s->deflateParams_out_buffer = NULL;
}
#endif
@@ -1145,9 +1267,17 @@ flush(s, output, f=Z_FINISH)
}
RETVAL = deflate(&(s->stream), f);
+ /*
+ if (RETVAL != Z_STREAM_ERROR) {
+ int done = availableout - s->stream.avail_out ;
+ printf("flush DEFLATEr returned %d '%s' avail in %d, out %d wrote %d\n", RETVAL,
+ GetErrorString(RETVAL), s->stream.avail_in,
+s->stream.avail_out, done);
+ }
+ */
if (trace) {
- printf("flush DEFLATE returned %d %s, avail in %d, out %d\n", RETVAL,
+ printf("flush DEFLATE returned %d '%s', avail in %d, out %d\n", RETVAL,
GetErrorString(RETVAL), s->stream.avail_in, s->stream.avail_out);
DispStream(s, "AFTER");
}
@@ -1184,41 +1314,38 @@ _deflateParams(s, flags, level, strategy, bufsize)
int level
int strategy
uLong bufsize
+ bool changed = FALSE;
CODE:
- /* printf("_deflateParams(Flags %d Level %d Strategy %d Bufsize %d)\n", flags, level, strategy, bufsize);
- printf("Before -- Level %d, Strategy %d, Bufsize %d\n", s->Level, s->Strategy, s->bufsize); */
- if (flags & 1)
- s->Level = level ;
- if (flags & 2)
- s->Strategy = strategy ;
- if (flags & 4) {
+ /* printf("_deflateParams(Flags %d Level %d Strategy %d Bufsize %d)\n", flags, level, strategy, bufsize);
+ printf("Before -- Level %d, Strategy %d, Bufsize %d\n", s->Level, s->Strategy, s->bufsize); */
+ if (flags & 1 && level != s->Level) {
+ s->Level = level ;
+ changed = TRUE;
+ }
+ if (flags & 2 && strategy != s->Strategy) {
+ s->Strategy = strategy ;
+ changed = TRUE;
+ }
+ if (flags & 4)
s->bufsize = bufsize;
- }
- /* printf("After -- Level %d, Strategy %d, Bufsize %d\n", s->Level, s->Strategy, s->bufsize);*/
+ if (changed) {
#ifdef SETP_BYTE
- s->stream.avail_in = 0;
- s->stream.next_out = &(s->deflateParams_out_byte) ;
- s->stream.avail_out = 1;
- RETVAL = deflateParams(&(s->stream), s->Level, s->Strategy);
- s->deflateParams_out_valid =
- (RETVAL == Z_OK && s->stream.avail_out == 0) ;
- /* printf("RETVAL %d, avail out %d, byte %c\n", RETVAL, s->stream.avail_out, s->deflateParams_out_byte); */
+ s->stream.avail_in = 0;
+ s->stream.next_out = &(s->deflateParams_out_byte) ;
+ s->stream.avail_out = 1;
+ RETVAL = deflateParams(&(s->stream), s->Level, s->Strategy);
+ s->deflateParams_out_valid =
+ (RETVAL == Z_OK && s->stream.avail_out == 0) ;
#else
- /* printf("Level %d Strategy %d, Prev Len %d\n",
+ /* printf("Level %d Strategy %d, Prev Len %d\n",
s->Level, s->Strategy, s->deflateParams_out_length); */
- s->stream.avail_in = 0;
- if (s->deflateParams_out_buffer == NULL)
- s->deflateParams_out_buffer = safemalloc(deflateParams_BUFFER_SIZE);
- s->stream.next_out = s->deflateParams_out_buffer ;
- s->stream.avail_out = deflateParams_BUFFER_SIZE;
-
- RETVAL = deflateParams(&(s->stream), s->Level, s->Strategy);
- s->deflateParams_out_length = deflateParams_BUFFER_SIZE - s->stream.avail_out;
- /* printf("RETVAL %d, length out %d, avail %d\n",
- RETVAL, s->deflateParams_out_length, s->stream.avail_out ); */
+ RETVAL = flushParams(s);
#endif
+ }
+ else
+ RETVAL = Z_OK;
OUTPUT:
- RETVAL
+ RETVAL
int
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
index 59a6100ebfa..2fc5b46ef5d 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
@@ -10,7 +10,7 @@ use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD, %DEFLATE_CONSTANTS, @DEFLATE_CONSTANTS);
-$VERSION = '2.069';
+$VERSION = '2.076';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -645,7 +645,7 @@ Compress::Raw::Zlib - Low-Level Interface to zlib compression library
The I<Compress::Raw::Zlib> module provides a Perl interface to the I<zlib>
compression library (see L</AUTHOR> for details about where to get
-I<zlib>).
+I<zlib>).
=head1 Compress::Raw::Zlib::Deflate
@@ -656,7 +656,7 @@ Here is a definition of the interface available:
=head2 B<($d, $status) = new Compress::Raw::Zlib::Deflate( [OPT] ) >
-Initialises a deflation object.
+Initialises a deflation object.
If you are familiar with the I<zlib> library, it combines the
features of the I<zlib> functions C<deflateInit>, C<deflateInit2>
@@ -727,7 +727,7 @@ The default is C<Z_DEFAULT_STRATEGY>.
When a dictionary is specified I<Compress::Raw::Zlib> will automatically
call C<deflateSetDictionary> directly after calling C<deflateInit>. The
-Adler32 value for the dictionary can be obtained by calling the method
+Adler32 value for the dictionary can be obtained by calling the method
C<$d-E<gt>dict_adler()>.
The default is no dictionary.
@@ -775,7 +775,7 @@ Here is an example of using the C<Compress::Raw::Zlib::Deflate> optional
parameter list to override the default buffer size and compression
level. All other options will take their default values.
- my $d = new Compress::Raw::Zlib::Deflate ( -Bufsize => 300,
+ my $d = new Compress::Raw::Zlib::Deflate ( -Bufsize => 300,
-Level => Z_BEST_SPEED ) ;
=head2 B<$status = $d-E<gt>deflate($input, $output)>
@@ -853,7 +853,7 @@ C<Z_DEFAULT_COMPRESSION>.
=item B<-Strategy>
Defines the strategy used to tune the compression. The valid values are
-C<Z_DEFAULT_STRATEGY>, C<Z_FILTERED> and C<Z_HUFFMAN_ONLY>.
+C<Z_DEFAULT_STRATEGY>, C<Z_FILTERED> and C<Z_HUFFMAN_ONLY>.
=item B<-BufSize>
@@ -878,14 +878,14 @@ Returns the adler32 value for the dictionary.
=head2 B<$d-E<gt>crc32()>
-Returns the crc32 value for the uncompressed data to date.
+Returns the crc32 value for the uncompressed data to date.
If the C<CRC32> option is not enabled in the constructor for this object,
this method will always return 0;
=head2 B<$d-E<gt>adler32()>
-Returns the adler32 value for the uncompressed data to date.
+Returns the adler32 value for the uncompressed data to date.
=head2 B<$d-E<gt>msg()>
@@ -902,11 +902,11 @@ Returns the total number of compressed bytes output from deflate.
=head2 B<$d-E<gt>get_Strategy()>
Returns the deflation strategy currently used. Valid values are
-C<Z_DEFAULT_STRATEGY>, C<Z_FILTERED> and C<Z_HUFFMAN_ONLY>.
+C<Z_DEFAULT_STRATEGY>, C<Z_FILTERED> and C<Z_HUFFMAN_ONLY>.
=head2 B<$d-E<gt>get_Level()>
-Returns the compression level being used.
+Returns the compression level being used.
=head2 B<$d-E<gt>get_BufSize()>
@@ -954,7 +954,7 @@ Here is a definition of the interface:
=head2 B< ($i, $status) = new Compress::Raw::Zlib::Inflate( [OPT] ) >
-Initialises an inflation object.
+Initialises an inflation object.
In a list context it returns the inflation object, C<$i>, and the
I<zlib> status code (C<$status>). In a scalar context it returns the
@@ -1049,7 +1049,7 @@ This option defaults to true.
The C<LimitOutput> option changes the behavior of the C<< $i->inflate >>
method so that the amount of memory used by the output buffer can be
-limited.
+limited.
When C<LimitOutput> is used the size of the output buffer used will either
be the value of the C<Bufsize> option or the amount of memory already
@@ -1082,7 +1082,7 @@ data to C<$output>. The C<$input> and C<$output> parameters can either be
scalars or scalar references.
Returns C<Z_OK> if successful and C<Z_STREAM_END> if the end of the
-compressed data has been successfully reached.
+compressed data has been successfully reached.
If not successful C<$status> will hold the I<zlib> error code.
@@ -1104,7 +1104,7 @@ this object, the uncompressed data will be appended to C<$output>. If
it is false, C<$output> will be truncated before any uncompressed data
is written to it.
-The C<$eof> parameter needs a bit of explanation.
+The C<$eof> parameter needs a bit of explanation.
Prior to version 1.2.0, zlib assumed that there was at least one trailing
byte immediately after the compressed data stream when it was carrying out
@@ -1118,7 +1118,7 @@ conditions apply
=over 5
-=item 1
+=item 1
You are either using a copy of zlib that is older than version 1.2.0 or you
want your application code to be able to run with as many different
@@ -1137,7 +1137,7 @@ There is no data immediately after the compressed data stream.
=back
If B<all> of these are the case, then you need to set the C<$eof> parameter
-to true on the final call (and only the final call) to C<$i-E<gt>inflate>.
+to true on the final call (and only the final call) to C<$i-E<gt>inflate>.
If you have built this module with zlib >= 1.2.0, the C<$eof> parameter is
ignored. You can still set it if you want, but it won't be used behind the
@@ -1166,7 +1166,7 @@ was created by calling C<Compress::Deflate::flush> with C<Z_FULL_FLUSH>.
This method will reset the inflation object C<$i>. It can be used when you
are uncompressing multiple data streams and want to use the same object to
-uncompress each of them.
+uncompress each of them.
Returns C<Z_OK> if successful.
@@ -1304,14 +1304,14 @@ Returns the version of the zlib library.
=head2 my $flags = Compress::Raw::Zlib::zlibCompileFlags();
-Returns the flags indicating compile-time options that were used to build
+Returns the flags indicating compile-time options that were used to build
the zlib library. See the zlib documentation for a description of the flags
returned by C<zlibCompileFlags>.
Note that when the zlib sources are built along with this module the
C<sprintf> flags (bits 24, 25 and 26) should be ignored.
-If you are using zlib 1.2.0 or older, C<zlibCompileFlags> will return 0.
+If you are using zlib 1.2.0 or older, C<zlibCompileFlags> will return 0.
=head1 The LimitOutput option.
@@ -1345,7 +1345,7 @@ source and uncompressing as you go the code will look something like this
die "inflation failed\n"
unless $status == Z_STREAM_END ;
-The points to note are
+The points to note are
=over 5
@@ -1377,7 +1377,7 @@ compressed data stream contains the same pattern repeated thousands of
times, a relatively small compressed data stream can uncompress into
hundreds of megabytes. Remember C<inflate> will keep allocating memory
until I<all> the uncompressed data has been written to the output buffer -
-the size of C<$output> is unbounded.
+the size of C<$output> is unbounded.
The C<LimitOutput> option is designed to help with this use-case.
@@ -1567,22 +1567,22 @@ L<File::GlobMapper|File::GlobMapper>, L<Archive::Zip|Archive::Zip>,
L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
-For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+For RFC 1950, 1951 and 1952 see
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1590,7 +1590,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
index 9d7e5ed262d..47aebd60743 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/private/MakeUtil.pm
@@ -35,8 +35,7 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
- $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/adler32.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/adler32.c
index 82a84ceed2b..be5e8a2474e 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/adler32.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/adler32.c
@@ -1,5 +1,5 @@
/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2011 Mark Adler
+ * Copyright (C) 1995-2011, 2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -7,11 +7,9 @@
#include "zutil.h"
-#define local static
-
local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
-#define BASE 65521 /* largest prime smaller than 65536 */
+#define BASE 65521U /* largest prime smaller than 65536 */
#define NMAX 5552
/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
@@ -62,10 +60,10 @@ local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
#endif
/* ========================================================================= */
-uLong ZEXPORT adler32(
+uLong ZEXPORT adler32_z(
uLong adler,
const Bytef *buf,
- uInt len)
+ z_size_t len)
{
unsigned long sum2;
unsigned n;
@@ -133,6 +131,15 @@ uLong ZEXPORT adler32(
}
/* ========================================================================= */
+uLong ZEXPORT adler32(
+ uLong adler,
+ const Bytef *buf,
+ uInt len)
+{
+ return adler32_z(adler, buf, len);
+}
+
+/* ========================================================================= */
local uLong adler32_combine_(
uLong adler1,
uLong adler2,
@@ -156,7 +163,7 @@ local uLong adler32_combine_(
sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem;
if (sum1 >= BASE) sum1 -= BASE;
if (sum1 >= BASE) sum1 -= BASE;
- if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1);
+ if (sum2 >= ((unsigned long)BASE << 1)) sum2 -= ((unsigned long)BASE << 1);
if (sum2 >= BASE) sum2 -= BASE;
return sum1 | (sum2 << 16);
}
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/compress.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/compress.c
index 0314fbc61a3..cfb13c9e157 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/compress.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/compress.c
@@ -1,5 +1,5 @@
/* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2005 Jean-loup Gailly.
+ * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -28,16 +28,11 @@ int ZEXPORT compress2 (
{
z_stream stream;
int err;
+ const uInt max = (uInt)-1;
+ uLong left;
- stream.next_in = (z_const Bytef *)source;
- stream.avail_in = (uInt)sourceLen;
-#ifdef MAXSEG_64K
- /* Check for source > 64K on 16-bit machine: */
- if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-#endif
- stream.next_out = dest;
- stream.avail_out = (uInt)*destLen;
- if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
+ left = *destLen;
+ *destLen = 0;
stream.zalloc = (alloc_func)0;
stream.zfree = (free_func)0;
@@ -46,15 +41,26 @@ int ZEXPORT compress2 (
err = deflateInit(&stream, level);
if (err != Z_OK) return err;
- err = deflate(&stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- deflateEnd(&stream);
- return err == Z_OK ? Z_BUF_ERROR : err;
- }
- *destLen = stream.total_out;
+ stream.next_out = dest;
+ stream.avail_out = 0;
+ stream.next_in = (z_const Bytef *)source;
+ stream.avail_in = 0;
+
+ do {
+ if (stream.avail_out == 0) {
+ stream.avail_out = left > (uLong)max ? max : (uInt)left;
+ left -= stream.avail_out;
+ }
+ if (stream.avail_in == 0) {
+ stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
+ sourceLen -= stream.avail_in;
+ }
+ err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
+ } while (err == Z_OK);
- err = deflateEnd(&stream);
- return err;
+ *destLen = stream.total_out;
+ deflateEnd(&stream);
+ return err == Z_STREAM_END ? Z_OK : err;
}
/* ===========================================================================
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c
index f0072c94bf9..3e3eb179474 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c
@@ -1,5 +1,5 @@
/* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler
+ * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*
* Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster
@@ -30,17 +30,15 @@
#include "zutil.h" /* for STDC and FAR definitions */
-#define local static
-
/* Definitions for doing the crc four data bytes at a time. */
#if !defined(NOBYFOUR) && defined(Z_U4)
# define BYFOUR
#endif
#ifdef BYFOUR
local unsigned long crc32_little OF((unsigned long,
- const unsigned char FAR *, unsigned));
+ const unsigned char FAR *, z_size_t));
local unsigned long crc32_big OF((unsigned long,
- const unsigned char FAR *, unsigned));
+ const unsigned char FAR *, z_size_t));
# define TBLS 8
#else
# define TBLS 1
@@ -201,10 +199,10 @@ const z_crc_t FAR * ZEXPORT get_crc_table()
#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
/* ========================================================================= */
-unsigned long ZEXPORT crc32(
+unsigned long ZEXPORT crc32_z(
unsigned long crc,
const unsigned char FAR *buf,
- uInt len)
+ z_size_t len)
{
if (buf == Z_NULL) return 0UL;
@@ -235,8 +233,29 @@ unsigned long ZEXPORT crc32(
return crc ^ 0xffffffffUL;
}
+/* ========================================================================= */
+unsigned long ZEXPORT crc32(
+ unsigned long crc,
+ const unsigned char FAR *buf,
+ uInt len)
+{
+ return crc32_z(crc, buf, len);
+}
+
#ifdef BYFOUR
+/*
+ This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit
+ integer pointer type. This violates the strict aliasing rule, where a
+ compiler can assume, for optimization purposes, that two pointers to
+ fundamentally different types won't ever point to the same memory. This can
+ manifest as a problem only if one of the pointers is written to. This code
+ only reads from those pointers. So long as this code remains isolated in
+ this compilation unit, there won't be a problem. For this reason, this code
+ should not be copied and pasted into a compilation unit in which other code
+ writes to the buffer that is passed to these routines.
+ */
+
/* ========================================================================= */
#define DOLIT4 c ^= *buf4++; \
c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
@@ -247,7 +266,7 @@ unsigned long ZEXPORT crc32(
local unsigned long crc32_little(
unsigned long crc,
const unsigned char FAR *buf,
- unsigned len)
+ z_size_t len)
{
register z_crc_t c;
register const z_crc_t FAR *buf4;
@@ -278,7 +297,7 @@ local unsigned long crc32_little(
}
/* ========================================================================= */
-#define DOBIG4 c ^= *++buf4; \
+#define DOBIG4 c ^= *buf4++; \
c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
@@ -287,7 +306,7 @@ local unsigned long crc32_little(
local unsigned long crc32_big(
unsigned long crc,
const unsigned char FAR *buf,
- unsigned len)
+ z_size_t len)
{
register z_crc_t c;
register const z_crc_t FAR *buf4;
@@ -300,7 +319,6 @@ local unsigned long crc32_big(
}
buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
- buf4--;
while (len >= 32) {
DOBIG32;
len -= 32;
@@ -309,7 +327,6 @@ local unsigned long crc32_big(
DOBIG4;
len -= 4;
}
- buf4++;
buf = (const unsigned char FAR *)buf4;
if (len) do {
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c
index 3a28aa19cf7..a74194f86f8 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c
@@ -1,5 +1,5 @@
/* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ * Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -52,7 +52,7 @@
#include "deflate.h"
const char deflate_copyright[] =
- " deflate 1.2.8 Copyright 1995-2013 Jean-loup Gailly and Mark Adler ";
+ " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
/*
If you use the zlib library in a product, an acknowledgment is welcome
in the documentation of your product. If for some reason you cannot
@@ -73,6 +73,8 @@ typedef enum {
typedef block_state (*compress_func) OF((deflate_state *s, int flush));
/* Compression function. Returns the block state after the call. */
+local int deflateStateCheck OF((z_streamp strm));
+local void slide_hash OF((deflate_state *s));
local void fill_window OF((deflate_state *s));
local block_state deflate_stored OF((deflate_state *s, int flush));
local block_state deflate_fast OF((deflate_state *s, int flush));
@@ -84,15 +86,16 @@ local block_state deflate_huff OF((deflate_state *s, int flush));
local void lm_init OF((deflate_state *s));
local void putShortMSB OF((deflate_state *s, uInt b));
local void flush_pending OF((z_streamp strm));
-local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
+local unsigned read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
#ifdef ASMV
+# pragma message("Assembler code may have bugs -- use at your own risk")
void match_init OF((void)); /* asm code initialization */
uInt longest_match OF((deflate_state *s, IPos cur_match));
#else
local uInt longest_match OF((deflate_state *s, IPos cur_match));
#endif
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
local void check_match OF((deflate_state *s, IPos start, IPos match,
int length));
#endif
@@ -148,21 +151,14 @@ local const config configuration_table[10] = {
* meaning.
*/
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-#ifndef NO_DUMMY_DECL
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-#endif
-
/* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
#define RANK(f) (((f) * 2) - ((f) > 4 ? 9 : 0))
/* ===========================================================================
* Update a hash value with the given input byte
- * IN assertion: all calls to to UPDATE_HASH are made with consecutive
- * input characters, so that a running hash key can be computed from the
- * previous key instead of complete recalculation each time.
+ * IN assertion: all calls to UPDATE_HASH are made with consecutive input
+ * characters, so that a running hash key can be computed from the previous
+ * key instead of complete recalculation each time.
*/
#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
@@ -173,9 +169,9 @@ struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
* the previous length of the hash chain.
* If this file is compiled with -DFASTEST, the compression level is forced
* to 1, and no hash chains are maintained.
- * IN assertion: all calls to to INSERT_STRING are made with consecutive
- * input characters and the first MIN_MATCH bytes of str are valid
- * (except for the last MIN_MATCH-1 bytes of the input file).
+ * IN assertion: all calls to INSERT_STRING are made with consecutive input
+ * characters and the first MIN_MATCH bytes of str are valid (except for
+ * the last MIN_MATCH-1 bytes of the input file).
*/
#ifdef FASTEST
#define INSERT_STRING(s, str, match_head) \
@@ -197,6 +193,37 @@ struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
s->head[s->hash_size-1] = NIL; \
zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
+/* ===========================================================================
+ * Slide the hash table when sliding the window down (could be avoided with 32
+ * bit values at the expense of memory usage). We slide even when level == 0 to
+ * keep the hash table consistent if we switch back to level > 0 later.
+ */
+local void slide_hash(
+ deflate_state *s)
+{
+ unsigned n, m;
+ Posf *p;
+ uInt wsize = s->w_size;
+
+ n = s->hash_size;
+ p = &s->head[n];
+ do {
+ m = *--p;
+ *p = (Pos)(m >= wsize ? m - wsize : NIL);
+ } while (--n);
+ n = wsize;
+#ifndef FASTEST
+ p = &s->prev[n];
+ do {
+ m = *--p;
+ *p = (Pos)(m >= wsize ? m - wsize : NIL);
+ /* If n is not on any hash chain, prev[n] is garbage but
+ * its value will never be used.
+ */
+ } while (--n);
+#endif
+}
+
/* ========================================================================= */
int ZEXPORT deflateInit_(
z_streamp strm,
@@ -269,7 +296,7 @@ int ZEXPORT deflateInit2_(
#endif
if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
- strategy < 0 || strategy > Z_FIXED) {
+ strategy < 0 || strategy > Z_FIXED || (windowBits == 8 && wrap != 1)) {
return Z_STREAM_ERROR;
}
if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */
@@ -277,14 +304,15 @@ int ZEXPORT deflateInit2_(
if (s == Z_NULL) return Z_MEM_ERROR;
strm->state = (struct internal_state FAR *)s;
s->strm = strm;
+ s->status = INIT_STATE; /* to pass state test in deflateReset() */
s->wrap = wrap;
s->gzhead = Z_NULL;
- s->w_bits = windowBits;
+ s->w_bits = (uInt)windowBits;
s->w_size = 1 << s->w_bits;
s->w_mask = s->w_size - 1;
- s->hash_bits = memLevel + 7;
+ s->hash_bits = (uInt)memLevel + 7;
s->hash_size = 1 << s->hash_bits;
s->hash_mask = s->hash_size - 1;
s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
@@ -318,6 +346,31 @@ int ZEXPORT deflateInit2_(
return deflateReset(strm);
}
+/* =========================================================================
+ * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
+ */
+local int deflateStateCheck (
+ z_streamp strm)
+{
+ deflate_state *s;
+ if (strm == Z_NULL ||
+ strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
+ return 1;
+ s = strm->state;
+ if (s == Z_NULL || s->strm != strm || (s->status != INIT_STATE &&
+#ifdef GZIP
+ s->status != GZIP_STATE &&
+#endif
+ s->status != EXTRA_STATE &&
+ s->status != NAME_STATE &&
+ s->status != COMMENT_STATE &&
+ s->status != HCRC_STATE &&
+ s->status != BUSY_STATE &&
+ s->status != FINISH_STATE))
+ return 1;
+ return 0;
+}
+
/* ========================================================================= */
int ZEXPORT deflateSetDictionary (
z_streamp strm,
@@ -330,7 +383,7 @@ int ZEXPORT deflateSetDictionary (
unsigned avail;
z_const unsigned char *next;
- if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL)
+ if (deflateStateCheck(strm) || dictionary == Z_NULL)
return Z_STREAM_ERROR;
s = strm->state;
wrap = s->wrap;
@@ -388,13 +441,34 @@ int ZEXPORT deflateSetDictionary (
}
/* ========================================================================= */
+int ZEXPORT deflateGetDictionary (
+ z_streamp strm,
+ Bytef *dictionary,
+ uInt *dictLength)
+{
+ deflate_state *s;
+ uInt len;
+
+ if (deflateStateCheck(strm))
+ return Z_STREAM_ERROR;
+ s = strm->state;
+ len = s->strstart + s->lookahead;
+ if (len > s->w_size)
+ len = s->w_size;
+ if (dictionary != Z_NULL && len)
+ zmemcpy(dictionary, s->window + s->strstart + s->lookahead - len, len);
+ if (dictLength != Z_NULL)
+ *dictLength = len;
+ return Z_OK;
+}
+
+/* ========================================================================= */
int ZEXPORT deflateResetKeep (
z_streamp strm)
{
deflate_state *s;
- if (strm == Z_NULL || strm->state == Z_NULL ||
- strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) {
+ if (deflateStateCheck(strm)) {
return Z_STREAM_ERROR;
}
@@ -409,7 +483,11 @@ int ZEXPORT deflateResetKeep (
if (s->wrap < 0) {
s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */
}
- s->status = s->wrap ? INIT_STATE : BUSY_STATE;
+ s->status =
+#ifdef GZIP
+ s->wrap == 2 ? GZIP_STATE :
+#endif
+ s->wrap ? INIT_STATE : BUSY_STATE;
strm->adler =
#ifdef GZIP
s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
@@ -439,8 +517,8 @@ int ZEXPORT deflateSetHeader (
z_streamp strm,
gz_headerp head)
{
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
- if (strm->state->wrap != 2) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm) || strm->state->wrap != 2)
+ return Z_STREAM_ERROR;
strm->state->gzhead = head;
return Z_OK;
}
@@ -451,7 +529,7 @@ int ZEXPORT deflatePending (
unsigned *pending,
int *bits)
{
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
if (pending != Z_NULL)
*pending = strm->state->pending;
if (bits != Z_NULL)
@@ -468,7 +546,7 @@ int ZEXPORT deflatePrime (
deflate_state *s;
int put;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
s = strm->state;
if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
return Z_BUF_ERROR;
@@ -493,9 +571,8 @@ int ZEXPORT deflateParams(
{
deflate_state *s;
compress_func func;
- int err = Z_OK;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
s = strm->state;
#ifdef FASTEST
@@ -509,13 +586,22 @@ int ZEXPORT deflateParams(
func = configuration_table[s->level].func;
if ((strategy != s->strategy || func != configuration_table[level].func) &&
- strm->total_in != 0) {
+ s->high_water) {
/* Flush the last buffer: */
- err = deflate(strm, Z_BLOCK);
- if (err == Z_BUF_ERROR && s->pending == 0)
- err = Z_OK;
+ int err = deflate(strm, Z_BLOCK);
+ if (err == Z_STREAM_ERROR)
+ return err;
+ if (strm->avail_out == 0)
+ return Z_BUF_ERROR;
}
if (s->level != level) {
+ if (s->level == 0 && s->matches != 0) {
+ if (s->matches == 1)
+ slide_hash(s);
+ else
+ CLEAR_HASH(s);
+ s->matches = 0;
+ }
s->level = level;
s->max_lazy_match = configuration_table[level].max_lazy;
s->good_match = configuration_table[level].good_length;
@@ -523,7 +609,7 @@ int ZEXPORT deflateParams(
s->max_chain_length = configuration_table[level].max_chain;
}
s->strategy = strategy;
- return err;
+ return Z_OK;
}
/* ========================================================================= */
@@ -536,12 +622,12 @@ int ZEXPORT deflateTune(
{
deflate_state *s;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
s = strm->state;
- s->good_match = good_length;
- s->max_lazy_match = max_lazy;
+ s->good_match = (uInt)good_length;
+ s->max_lazy_match = (uInt)max_lazy;
s->nice_match = nice_length;
- s->max_chain_length = max_chain;
+ s->max_chain_length = (uInt)max_chain;
return Z_OK;
}
@@ -568,14 +654,13 @@ uLong ZEXPORT deflateBound(
{
deflate_state *s;
uLong complen, wraplen;
- Bytef *str;
/* conservative upper bound for compressed data */
complen = sourceLen +
((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;
/* if can't get parameters, return conservative bound plus zlib wrapper */
- if (strm == Z_NULL || strm->state == Z_NULL)
+ if (deflateStateCheck(strm))
return complen + 6;
/* compute wrapper length */
@@ -587,9 +672,11 @@ uLong ZEXPORT deflateBound(
case 1: /* zlib wrapper */
wraplen = 6 + (s->strstart ? 4 : 0);
break;
+#ifdef GZIP
case 2: /* gzip wrapper */
wraplen = 18;
if (s->gzhead != Z_NULL) { /* user-supplied gzip header */
+ Bytef *str;
if (s->gzhead->extra != Z_NULL)
wraplen += 2 + s->gzhead->extra_len;
str = s->gzhead->name;
@@ -606,6 +693,7 @@ uLong ZEXPORT deflateBound(
wraplen += 2;
}
break;
+#endif
default: /* for compiler happiness */
wraplen = 6;
}
@@ -633,10 +721,10 @@ local void putShortMSB (
}
/* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
+ * Flush as much pending output as possible. All deflate() output, except for
+ * some deflate_stored() output, goes through this function so some
+ * applications may wish to modify it to avoid allocating a large
+ * strm->next_out buffer and copying into it. (See also read_buf()).
*/
local void flush_pending(
z_streamp strm)
@@ -653,13 +741,23 @@ local void flush_pending(
strm->next_out += len;
s->pending_out += len;
strm->total_out += len;
- strm->avail_out -= len;
- s->pending -= len;
+ strm->avail_out -= len;
+ s->pending -= len;
if (s->pending == 0) {
s->pending_out = s->pending_buf;
}
}
+/* ===========================================================================
+ * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
+ */
+#define HCRC_UPDATE(beg) \
+ do { \
+ if (s->gzhead->hcrc && s->pending > (beg)) \
+ strm->adler = crc32(strm->adler, s->pending_buf + (beg), \
+ s->pending - (beg)); \
+ } while (0)
+
/* ========================================================================= */
int ZEXPORT deflate (
z_streamp strm,
@@ -668,230 +766,229 @@ int ZEXPORT deflate (
int old_flush; /* value of flush param for previous deflate call */
deflate_state *s;
- if (strm == Z_NULL || strm->state == Z_NULL ||
- flush > Z_BLOCK || flush < 0) {
+ if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) {
return Z_STREAM_ERROR;
}
s = strm->state;
if (strm->next_out == Z_NULL ||
- (strm->next_in == Z_NULL && strm->avail_in != 0) ||
+ (strm->avail_in != 0 && strm->next_in == Z_NULL) ||
(s->status == FINISH_STATE && flush != Z_FINISH)) {
ERR_RETURN(strm, Z_STREAM_ERROR);
}
if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
- s->strm = strm; /* just in case */
old_flush = s->last_flush;
s->last_flush = flush;
+ /* Flush as much pending output as possible */
+ if (s->pending != 0) {
+ flush_pending(strm);
+ if (strm->avail_out == 0) {
+ /* Since avail_out is 0, deflate will be called again with
+ * more output space, but possibly with both pending and
+ * avail_in equal to zero. There won't be anything to do,
+ * but this is not an error situation so make sure we
+ * return OK instead of BUF_ERROR at next call of deflate:
+ */
+ s->last_flush = -1;
+ return Z_OK;
+ }
+
+ /* Make sure there is something to do and avoid duplicate consecutive
+ * flushes. For repeated and useless calls with Z_FINISH, we keep
+ * returning Z_STREAM_END instead of Z_BUF_ERROR.
+ */
+ } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
+ flush != Z_FINISH) {
+ ERR_RETURN(strm, Z_BUF_ERROR);
+ }
+
+ /* User must not provide more input after the first FINISH: */
+ if (s->status == FINISH_STATE && strm->avail_in != 0) {
+ ERR_RETURN(strm, Z_BUF_ERROR);
+ }
+
/* Write the header */
if (s->status == INIT_STATE) {
-#ifdef GZIP
- if (s->wrap == 2) {
- strm->adler = crc32(0L, Z_NULL, 0);
- put_byte(s, 31);
- put_byte(s, 139);
- put_byte(s, 8);
- if (s->gzhead == Z_NULL) {
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, s->level == 9 ? 2 :
- (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
- 4 : 0));
- put_byte(s, OS_CODE);
- s->status = BUSY_STATE;
- }
- else {
- put_byte(s, (s->gzhead->text ? 1 : 0) +
- (s->gzhead->hcrc ? 2 : 0) +
- (s->gzhead->extra == Z_NULL ? 0 : 4) +
- (s->gzhead->name == Z_NULL ? 0 : 8) +
- (s->gzhead->comment == Z_NULL ? 0 : 16)
- );
- put_byte(s, (Byte)(s->gzhead->time & 0xff));
- put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
- put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
- put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
- put_byte(s, s->level == 9 ? 2 :
- (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
- 4 : 0));
- put_byte(s, s->gzhead->os & 0xff);
- if (s->gzhead->extra != Z_NULL) {
- put_byte(s, s->gzhead->extra_len & 0xff);
- put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
- }
- if (s->gzhead->hcrc)
- strm->adler = crc32(strm->adler, s->pending_buf,
- s->pending);
- s->gzindex = 0;
- s->status = EXTRA_STATE;
- }
- }
+ /* zlib header */
+ uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
+ uInt level_flags;
+
+ if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
+ level_flags = 0;
+ else if (s->level < 6)
+ level_flags = 1;
+ else if (s->level == 6)
+ level_flags = 2;
else
-#endif
- {
- uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
- uInt level_flags;
-
- if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
- level_flags = 0;
- else if (s->level < 6)
- level_flags = 1;
- else if (s->level == 6)
- level_flags = 2;
- else
- level_flags = 3;
- header |= (level_flags << 6);
- if (s->strstart != 0) header |= PRESET_DICT;
- header += 31 - (header % 31);
+ level_flags = 3;
+ header |= (level_flags << 6);
+ if (s->strstart != 0) header |= PRESET_DICT;
+ header += 31 - (header % 31);
+
+ putShortMSB(s, header);
+ /* Save the adler32 of the preset dictionary: */
+ if (s->strstart != 0) {
+ putShortMSB(s, (uInt)(strm->adler >> 16));
+ putShortMSB(s, (uInt)(strm->adler & 0xffff));
+ }
+ strm->adler = adler32(0L, Z_NULL, 0);
+ s->status = BUSY_STATE;
+
+ /* Compression must start with an empty pending buffer */
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ }
+#ifdef GZIP
+ if (s->status == GZIP_STATE) {
+ /* gzip header */
+ strm->adler = crc32(0L, Z_NULL, 0);
+ put_byte(s, 31);
+ put_byte(s, 139);
+ put_byte(s, 8);
+ if (s->gzhead == Z_NULL) {
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, s->level == 9 ? 2 :
+ (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+ 4 : 0));
+ put_byte(s, OS_CODE);
s->status = BUSY_STATE;
- putShortMSB(s, header);
- /* Save the adler32 of the preset dictionary: */
- if (s->strstart != 0) {
- putShortMSB(s, (uInt)(strm->adler >> 16));
- putShortMSB(s, (uInt)(strm->adler & 0xffff));
+ /* Compression must start with an empty pending buffer */
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ }
+ else {
+ put_byte(s, (s->gzhead->text ? 1 : 0) +
+ (s->gzhead->hcrc ? 2 : 0) +
+ (s->gzhead->extra == Z_NULL ? 0 : 4) +
+ (s->gzhead->name == Z_NULL ? 0 : 8) +
+ (s->gzhead->comment == Z_NULL ? 0 : 16)
+ );
+ put_byte(s, (Byte)(s->gzhead->time & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
+ put_byte(s, s->level == 9 ? 2 :
+ (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+ 4 : 0));
+ put_byte(s, s->gzhead->os & 0xff);
+ if (s->gzhead->extra != Z_NULL) {
+ put_byte(s, s->gzhead->extra_len & 0xff);
+ put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
}
- strm->adler = adler32(0L, Z_NULL, 0);
+ if (s->gzhead->hcrc)
+ strm->adler = crc32(strm->adler, s->pending_buf,
+ s->pending);
+ s->gzindex = 0;
+ s->status = EXTRA_STATE;
}
}
-#ifdef GZIP
if (s->status == EXTRA_STATE) {
if (s->gzhead->extra != Z_NULL) {
- uInt beg = s->pending; /* start of bytes to update crc */
-
- while (s->gzindex < (s->gzhead->extra_len & 0xffff)) {
- if (s->pending == s->pending_buf_size) {
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
- flush_pending(strm);
- beg = s->pending;
- if (s->pending == s->pending_buf_size)
- break;
+ ulg beg = s->pending; /* start of bytes to update crc */
+ uInt left = (s->gzhead->extra_len & 0xffff) - s->gzindex;
+ while (s->pending + left > s->pending_buf_size) {
+ uInt copy = s->pending_buf_size - s->pending;
+ zmemcpy(s->pending_buf + s->pending,
+ s->gzhead->extra + s->gzindex, copy);
+ s->pending = s->pending_buf_size;
+ HCRC_UPDATE(beg);
+ s->gzindex += copy;
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
}
- put_byte(s, s->gzhead->extra[s->gzindex]);
- s->gzindex++;
- }
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
- if (s->gzindex == s->gzhead->extra_len) {
- s->gzindex = 0;
- s->status = NAME_STATE;
+ beg = 0;
+ left -= copy;
}
+ zmemcpy(s->pending_buf + s->pending,
+ s->gzhead->extra + s->gzindex, left);
+ s->pending += left;
+ HCRC_UPDATE(beg);
+ s->gzindex = 0;
}
- else
- s->status = NAME_STATE;
+ s->status = NAME_STATE;
}
if (s->status == NAME_STATE) {
if (s->gzhead->name != Z_NULL) {
- uInt beg = s->pending; /* start of bytes to update crc */
+ ulg beg = s->pending; /* start of bytes to update crc */
int val;
-
do {
if (s->pending == s->pending_buf_size) {
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
+ HCRC_UPDATE(beg);
flush_pending(strm);
- beg = s->pending;
- if (s->pending == s->pending_buf_size) {
- val = 1;
- break;
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
}
+ beg = 0;
}
val = s->gzhead->name[s->gzindex++];
put_byte(s, val);
} while (val != 0);
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
- if (val == 0) {
- s->gzindex = 0;
- s->status = COMMENT_STATE;
- }
+ HCRC_UPDATE(beg);
+ s->gzindex = 0;
}
- else
- s->status = COMMENT_STATE;
+ s->status = COMMENT_STATE;
}
if (s->status == COMMENT_STATE) {
if (s->gzhead->comment != Z_NULL) {
- uInt beg = s->pending; /* start of bytes to update crc */
+ ulg beg = s->pending; /* start of bytes to update crc */
int val;
-
do {
if (s->pending == s->pending_buf_size) {
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
+ HCRC_UPDATE(beg);
flush_pending(strm);
- beg = s->pending;
- if (s->pending == s->pending_buf_size) {
- val = 1;
- break;
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
}
+ beg = 0;
}
val = s->gzhead->comment[s->gzindex++];
put_byte(s, val);
} while (val != 0);
- if (s->gzhead->hcrc && s->pending > beg)
- strm->adler = crc32(strm->adler, s->pending_buf + beg,
- s->pending - beg);
- if (val == 0)
- s->status = HCRC_STATE;
+ HCRC_UPDATE(beg);
}
- else
- s->status = HCRC_STATE;
+ s->status = HCRC_STATE;
}
if (s->status == HCRC_STATE) {
if (s->gzhead->hcrc) {
- if (s->pending + 2 > s->pending_buf_size)
+ if (s->pending + 2 > s->pending_buf_size) {
flush_pending(strm);
- if (s->pending + 2 <= s->pending_buf_size) {
- put_byte(s, (Byte)(strm->adler & 0xff));
- put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
- strm->adler = crc32(0L, Z_NULL, 0);
- s->status = BUSY_STATE;
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
}
+ put_byte(s, (Byte)(strm->adler & 0xff));
+ put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
+ strm->adler = crc32(0L, Z_NULL, 0);
}
- else
- s->status = BUSY_STATE;
- }
-#endif
+ s->status = BUSY_STATE;
- /* Flush as much pending output as possible */
- if (s->pending != 0) {
+ /* Compression must start with an empty pending buffer */
flush_pending(strm);
- if (strm->avail_out == 0) {
- /* Since avail_out is 0, deflate will be called again with
- * more output space, but possibly with both pending and
- * avail_in equal to zero. There won't be anything to do,
- * but this is not an error situation so make sure we
- * return OK instead of BUF_ERROR at next call of deflate:
- */
+ if (s->pending != 0) {
s->last_flush = -1;
return Z_OK;
}
-
- /* Make sure there is something to do and avoid duplicate consecutive
- * flushes. For repeated and useless calls with Z_FINISH, we keep
- * returning Z_STREAM_END instead of Z_BUF_ERROR.
- */
- } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
- flush != Z_FINISH) {
- ERR_RETURN(strm, Z_BUF_ERROR);
- }
-
- /* User must not provide more input after the first FINISH: */
- if (s->status == FINISH_STATE && strm->avail_in != 0) {
- ERR_RETURN(strm, Z_BUF_ERROR);
}
+#endif
/* Start a new block or continue the current one.
*/
@@ -899,9 +996,10 @@ int ZEXPORT deflate (
(flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
block_state bstate;
- bstate = s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :
- (s->strategy == Z_RLE ? deflate_rle(s, flush) :
- (*(configuration_table[s->level].func))(s, flush));
+ bstate = s->level == 0 ? deflate_stored(s, flush) :
+ s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :
+ s->strategy == Z_RLE ? deflate_rle(s, flush) :
+ (*(configuration_table[s->level].func))(s, flush);
if (bstate == finish_started || bstate == finish_done) {
s->status = FINISH_STATE;
@@ -943,7 +1041,6 @@ int ZEXPORT deflate (
}
}
}
- Assert(strm->avail_out > 0, "bug2");
if (flush != Z_FINISH) return Z_OK;
if (s->wrap <= 0) return Z_STREAM_END;
@@ -980,18 +1077,9 @@ int ZEXPORT deflateEnd (
{
int status;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
status = strm->state->status;
- if (status != INIT_STATE &&
- status != EXTRA_STATE &&
- status != NAME_STATE &&
- status != COMMENT_STATE &&
- status != HCRC_STATE &&
- status != BUSY_STATE &&
- status != FINISH_STATE) {
- return Z_STREAM_ERROR;
- }
/* Deallocate in reverse order of allocations: */
TRY_FREE(strm, strm->state->pending_buf);
@@ -1022,7 +1110,7 @@ int ZEXPORT deflateCopy (
ushf *overlay;
- if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) {
+ if (deflateStateCheck(source) || dest == Z_NULL) {
return Z_STREAM_ERROR;
}
@@ -1072,7 +1160,7 @@ int ZEXPORT deflateCopy (
* allocating a large strm->next_in buffer and copying from it.
* (See also flush_pending()).
*/
-local int read_buf(
+local unsigned read_buf(
z_streamp strm,
Bytef *buf,
unsigned size)
@@ -1096,7 +1184,7 @@ local int read_buf(
strm->next_in += len;
strm->total_in += len;
- return (int)len;
+ return len;
}
/* ===========================================================================
@@ -1150,9 +1238,9 @@ local uInt longest_match(
{
unsigned chain_length = s->max_chain_length;/* max hash chain length */
register Bytef *scan = s->window + s->strstart; /* current string */
- register Bytef *match; /* matched string */
+ register Bytef *match; /* matched string */
register int len; /* length of current match */
- int best_len = s->prev_length; /* best match length so far */
+ int best_len = (int)s->prev_length; /* best match length so far */
int nice_match = s->nice_match; /* stop if match long enough */
IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
s->strstart - (IPos)MAX_DIST(s) : NIL;
@@ -1187,7 +1275,7 @@ local uInt longest_match(
/* Do not look for matches beyond the end of the input. This is necessary
* to make deflate deterministic.
*/
- if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
+ if ((uInt)nice_match > s->lookahead) nice_match = (int)s->lookahead;
Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
@@ -1348,7 +1436,11 @@ local uInt longest_match(
#endif /* FASTEST */
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
+
+#define EQUAL 0
+/* result of memcmp for equal strings */
+
/* ===========================================================================
* Check that the match at match_start is indeed a match.
*/
@@ -1375,7 +1467,7 @@ local void check_match(
}
#else
# define check_match(s, start, match, length)
-#endif /* DEBUG */
+#endif /* ZLIB_DEBUG */
/* ===========================================================================
* Fill the window when the lookahead becomes insufficient.
@@ -1390,8 +1482,7 @@ local void check_match(
local void fill_window(
deflate_state *s)
{
- register unsigned n, m;
- register Posf *p;
+ unsigned n;
unsigned more; /* Amount of free space at the end of the window. */
uInt wsize = s->w_size;
@@ -1418,35 +1509,11 @@ local void fill_window(
*/
if (s->strstart >= wsize+MAX_DIST(s)) {
- zmemcpy(s->window, s->window+wsize, (unsigned)wsize);
+ zmemcpy(s->window, s->window+wsize, (unsigned)wsize - more);
s->match_start -= wsize;
s->strstart -= wsize; /* we now have strstart >= MAX_DIST */
s->block_start -= (long) wsize;
-
- /* Slide the hash table (could be avoided with 32 bit values
- at the expense of memory usage). We slide even when level == 0
- to keep the hash table consistent if we switch back to level > 0
- later. (Using level 0 permanently is not an optimal usage of
- zlib, so we don't care about this pathological case.)
- */
- n = s->hash_size;
- p = &s->head[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- } while (--n);
-
- n = wsize;
-#ifndef FASTEST
- p = &s->prev[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- /* If n is not on any hash chain, prev[n] is garbage but
- * its value will never be used.
- */
- } while (--n);
-#endif
+ slide_hash(s);
more += wsize;
}
if (s->strm->avail_in == 0) break;
@@ -1552,70 +1619,199 @@ local void fill_window(
if (s->strm->avail_out == 0) return (last) ? finish_started : need_more; \
}
+/* Maximum stored block length in deflate format (not including header). */
+#define MAX_STORED 65535
+
+/* Minimum of a and b. */
+#define MIN(a, b) ((a) > (b) ? (b) : (a))
+
/* ===========================================================================
* Copy without compression as much as possible from the input stream, return
* the current block state.
- * This function does not insert new strings in the dictionary since
- * uncompressible data is probably not useful. This function is used
- * only for the level=0 compression option.
- * NOTE: this function should be optimized to avoid extra copying from
- * window to pending_buf.
+ *
+ * In case deflateParams() is used to later switch to a non-zero compression
+ * level, s->matches (otherwise unused when storing) keeps track of the number
+ * of hash table slides to perform. If s->matches is 1, then one hash table
+ * slide will be done when switching. If s->matches is 2, the maximum value
+ * allowed here, then the hash table will be cleared, since two or more slides
+ * is the same as a clear.
+ *
+ * deflate_stored() is written to minimize the number of times an input byte is
+ * copied. It is most efficient with large input and output buffers, which
+ * maximizes the opportunites to have a single copy from next_in to next_out.
*/
local block_state deflate_stored(
deflate_state *s,
int flush)
{
- /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
- * to pending_buf_size, and each stored block has a 5 byte header:
+ /* Smallest worthy block size when not flushing or finishing. By default
+ * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
+ * large input and output buffers, the stored block size will be larger.
*/
- ulg max_block_size = 0xffff;
- ulg max_start;
-
- if (max_block_size > s->pending_buf_size - 5) {
- max_block_size = s->pending_buf_size - 5;
- }
+ unsigned min_block = MIN(s->pending_buf_size - 5, s->w_size);
- /* Copy as much as possible from input to output: */
- for (;;) {
- /* Fill the window as much as possible: */
- if (s->lookahead <= 1) {
-
- Assert(s->strstart < s->w_size+MAX_DIST(s) ||
- s->block_start >= (long)s->w_size, "slide too late");
+ /* Copy as many min_block or larger stored blocks directly to next_out as
+ * possible. If flushing, copy the remaining available input to next_out as
+ * stored blocks, if there is enough space.
+ */
+ unsigned len, left, have, last = 0;
+ unsigned used = s->strm->avail_in;
+ do {
+ /* Set len to the maximum size block that we can copy directly with the
+ * available input data and output space. Set left to how much of that
+ * would be copied from what's left in the window.
+ */
+ len = MAX_STORED; /* maximum deflate stored block length */
+ have = (s->bi_valid + 42) >> 3; /* number of header bytes */
+ if (s->strm->avail_out < have) /* need room for header */
+ break;
+ /* maximum stored block length that will fit in avail_out: */
+ have = s->strm->avail_out - have;
+ left = s->strstart - s->block_start; /* bytes left in window */
+ if (len > (ulg)left + s->strm->avail_in)
+ len = left + s->strm->avail_in; /* limit len to the input */
+ if (len > have)
+ len = have; /* limit len to the output */
+
+ /* If the stored block would be less than min_block in length, or if
+ * unable to copy all of the available input when flushing, then try
+ * copying to the window and the pending buffer instead. Also don't
+ * write an empty block when flushing -- deflate() does that.
+ */
+ if (len < min_block && ((len == 0 && flush != Z_FINISH) ||
+ flush == Z_NO_FLUSH ||
+ len != left + s->strm->avail_in))
+ break;
- fill_window(s);
- if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more;
+ /* Make a dummy stored block in pending to get the header bytes,
+ * including any pending bits. This also updates the debugging counts.
+ */
+ last = flush == Z_FINISH && len == left + s->strm->avail_in ? 1 : 0;
+ _tr_stored_block(s, (char *)0, 0L, last);
+
+ /* Replace the lengths in the dummy stored block with len. */
+ s->pending_buf[s->pending - 4] = len;
+ s->pending_buf[s->pending - 3] = len >> 8;
+ s->pending_buf[s->pending - 2] = ~len;
+ s->pending_buf[s->pending - 1] = ~len >> 8;
+
+ /* Write the stored block header bytes. */
+ flush_pending(s->strm);
+
+#ifdef ZLIB_DEBUG
+ /* Update debugging counts for the data about to be copied. */
+ s->compressed_len += len << 3;
+ s->bits_sent += len << 3;
+#endif
- if (s->lookahead == 0) break; /* flush the current block */
+ /* Copy uncompressed bytes from the window to next_out. */
+ if (left) {
+ if (left > len)
+ left = len;
+ zmemcpy(s->strm->next_out, s->window + s->block_start, left);
+ s->strm->next_out += left;
+ s->strm->avail_out -= left;
+ s->strm->total_out += left;
+ s->block_start += left;
+ len -= left;
}
- Assert(s->block_start >= 0L, "block gone");
-
- s->strstart += s->lookahead;
- s->lookahead = 0;
-
- /* Emit a stored block if pending_buf will be full: */
- max_start = s->block_start + max_block_size;
- if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
- /* strstart == 0 is possible when wraparound on 16-bit machine */
- s->lookahead = (uInt)(s->strstart - max_start);
- s->strstart = (uInt)max_start;
- FLUSH_BLOCK(s, 0);
+
+ /* Copy uncompressed bytes directly from next_in to next_out, updating
+ * the check value.
+ */
+ if (len) {
+ read_buf(s->strm, s->strm->next_out, len);
+ s->strm->next_out += len;
+ s->strm->avail_out -= len;
+ s->strm->total_out += len;
}
- /* Flush if we may have to slide, otherwise block_start may become
- * negative and the data will be gone:
+ } while (last == 0);
+
+ /* Update the sliding window with the last s->w_size bytes of the copied
+ * data, or append all of the copied data to the existing window if less
+ * than s->w_size bytes were copied. Also update the number of bytes to
+ * insert in the hash tables, in the event that deflateParams() switches to
+ * a non-zero compression level.
+ */
+ used -= s->strm->avail_in; /* number of input bytes directly copied */
+ if (used) {
+ /* If any input was used, then no unused input remains in the window,
+ * therefore s->block_start == s->strstart.
*/
- if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) {
- FLUSH_BLOCK(s, 0);
+ if (used >= s->w_size) { /* supplant the previous history */
+ s->matches = 2; /* clear hash */
+ zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);
+ s->strstart = s->w_size;
}
+ else {
+ if (s->window_size - s->strstart <= used) {
+ /* Slide the window down. */
+ s->strstart -= s->w_size;
+ zmemcpy(s->window, s->window + s->w_size, s->strstart);
+ if (s->matches < 2)
+ s->matches++; /* add a pending slide_hash() */
+ }
+ zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);
+ s->strstart += used;
+ }
+ s->block_start = s->strstart;
+ s->insert += MIN(used, s->w_size - s->insert);
}
- s->insert = 0;
- if (flush == Z_FINISH) {
- FLUSH_BLOCK(s, 1);
+ if (s->high_water < s->strstart)
+ s->high_water = s->strstart;
+
+ /* If the last block was written to next_out, then done. */
+ if (last)
return finish_done;
+
+ /* If flushing and all input has been consumed, then done. */
+ if (flush != Z_NO_FLUSH && flush != Z_FINISH &&
+ s->strm->avail_in == 0 && (long)s->strstart == s->block_start)
+ return block_done;
+
+ /* Fill the window with any remaining input. */
+ have = s->window_size - s->strstart - 1;
+ if (s->strm->avail_in > have && s->block_start >= (long)s->w_size) {
+ /* Slide the window down. */
+ s->block_start -= s->w_size;
+ s->strstart -= s->w_size;
+ zmemcpy(s->window, s->window + s->w_size, s->strstart);
+ if (s->matches < 2)
+ s->matches++; /* add a pending slide_hash() */
+ have += s->w_size; /* more space now */
}
- if ((long)s->strstart > s->block_start)
- FLUSH_BLOCK(s, 0);
- return block_done;
+ if (have > s->strm->avail_in)
+ have = s->strm->avail_in;
+ if (have) {
+ read_buf(s->strm, s->window + s->strstart, have);
+ s->strstart += have;
+ }
+ if (s->high_water < s->strstart)
+ s->high_water = s->strstart;
+
+ /* There was not enough avail_out to write a complete worthy or flushed
+ * stored block to next_out. Write a stored block to pending instead, if we
+ * have enough input for a worthy block, or if flushing and there is enough
+ * room for the remaining input as a stored block in the pending buffer.
+ */
+ have = (s->bi_valid + 42) >> 3; /* number of header bytes */
+ /* maximum stored block length that will fit in pending: */
+ have = MIN(s->pending_buf_size - have, MAX_STORED);
+ min_block = MIN(have, s->w_size);
+ left = s->strstart - s->block_start;
+ if (left >= min_block ||
+ ((left || flush == Z_FINISH) && flush != Z_NO_FLUSH &&
+ s->strm->avail_in == 0 && left <= have)) {
+ len = MIN(left, have);
+ last = flush == Z_FINISH && s->strm->avail_in == 0 &&
+ len == left ? 1 : 0;
+ _tr_stored_block(s, (charf *)s->window + s->block_start, len, last);
+ s->block_start += len;
+ flush_pending(s->strm);
+ }
+
+ /* We've done all we can with the available input and output. */
+ return last ? finish_started : need_more;
}
/* ===========================================================================
@@ -1892,7 +2088,7 @@ local block_state deflate_rle(
prev == *++scan && prev == *++scan &&
prev == *++scan && prev == *++scan &&
scan < strend);
- s->match_length = MAX_MATCH - (int)(strend - scan);
+ s->match_length = MAX_MATCH - (uInt)(strend - scan);
if (s->match_length > s->lookahead)
s->match_length = s->lookahead;
}
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h
index 0ee924e6e16..23ecdd312bc 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h
@@ -1,5 +1,5 @@
/* deflate.h -- internal compression state
- * Copyright (C) 1995-2012 Jean-loup Gailly
+ * Copyright (C) 1995-2016 Jean-loup Gailly
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -51,13 +51,16 @@
#define Buf_size 16
/* size of bit buffer in bi_buf */
-#define INIT_STATE 42
-#define EXTRA_STATE 69
-#define NAME_STATE 73
-#define COMMENT_STATE 91
-#define HCRC_STATE 103
-#define BUSY_STATE 113
-#define FINISH_STATE 666
+#define INIT_STATE 42 /* zlib header -> BUSY_STATE */
+#ifdef GZIP
+# define GZIP_STATE 57 /* gzip header -> BUSY_STATE | EXTRA_STATE */
+#endif
+#define EXTRA_STATE 69 /* gzip extra block -> NAME_STATE */
+#define NAME_STATE 73 /* gzip file name -> COMMENT_STATE */
+#define COMMENT_STATE 91 /* gzip comment -> HCRC_STATE */
+#define HCRC_STATE 103 /* gzip header CRC -> BUSY_STATE */
+#define BUSY_STATE 113 /* deflate -> FINISH_STATE */
+#define FINISH_STATE 666 /* stream complete */
/* Stream status */
@@ -83,7 +86,7 @@ typedef struct static_tree_desc_s static_tree_desc;
typedef struct tree_desc_s {
ct_data *dyn_tree; /* the dynamic tree */
int max_code; /* largest code with non zero frequency */
- const static_tree_desc *stat_desc; /* the corresponding static tree */
+ const static_tree_desc *stat_desc; /* the corresponding static tree */
} FAR tree_desc;
typedef ush Pos;
@@ -100,10 +103,10 @@ typedef struct internal_state {
Bytef *pending_buf; /* output still pending */
ulg pending_buf_size; /* size of pending_buf */
Bytef *pending_out; /* next pending byte to output to the stream */
- uInt pending; /* nb of bytes in the pending buffer */
+ ulg pending; /* nb of bytes in the pending buffer */
int wrap; /* bit 0 true for zlib, bit 1 true for gzip */
gz_headerp gzhead; /* gzip header information to write */
- uInt gzindex; /* where in extra, name, or comment */
+ ulg gzindex; /* where in extra, name, or comment */
Byte method; /* can only be DEFLATED */
int last_flush; /* value of flush param for previous deflate call */
@@ -249,7 +252,7 @@ typedef struct internal_state {
uInt matches; /* number of string matches in current block */
uInt insert; /* bytes at end of window left to insert */
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
ulg compressed_len; /* total bit length of compressed file mod 2^32 */
ulg bits_sent; /* bit length of compressed data sent mod 2^32 */
#endif
@@ -275,7 +278,7 @@ typedef struct internal_state {
/* Output a byte on the stream.
* IN assertion: there is enough room in pending_buf.
*/
-#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
+#define put_byte(s, c) {s->pending_buf[s->pending++] = (Bytef)(c);}
#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
@@ -309,7 +312,7 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
* used.
*/
-#ifndef DEBUG
+#ifndef ZLIB_DEBUG
/* Inline versions of _tr_tally for speed: */
#if defined(GEN_TREES_H) || !defined(STDC)
@@ -328,8 +331,8 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
flush = (s->last_lit == s->lit_bufsize-1); \
}
# define _tr_tally_dist(s, distance, length, flush) \
- { uch len = (length); \
- ush dist = (distance); \
+ { uch len = (uch)(length); \
+ ush dist = (ush)(distance); \
s->d_buf[s->last_lit] = dist; \
s->l_buf[s->last_lit++] = len; \
dist--; \
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c
index c938f49ba77..d5369c275a2 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c
@@ -1,5 +1,5 @@
/* inflate.c -- zlib decompression
- * Copyright (C) 1995-2012 Mark Adler
+ * Copyright (C) 1995-2016 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -92,6 +92,7 @@
#endif
/* function prototypes */
+local int inflateStateCheck OF((z_streamp strm));
local void fixedtables OF((struct inflate_state FAR *state));
local int updatewindow OF((z_streamp strm, const unsigned char FAR *end,
unsigned copy));
@@ -101,12 +102,26 @@ local int updatewindow OF((z_streamp strm, const unsigned char FAR *end,
local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf,
unsigned len));
+local int inflateStateCheck(
+ z_streamp strm)
+{
+ struct inflate_state FAR *state;
+ if (strm == Z_NULL ||
+ strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
+ return 1;
+ state = (struct inflate_state FAR *)strm->state;
+ if (state == Z_NULL || state->strm != strm ||
+ state->mode < HEAD || state->mode > SYNC)
+ return 1;
+ return 0;
+}
+
int ZEXPORT inflateResetKeep(
z_streamp strm)
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
strm->total_in = strm->total_out = state->total = 0;
strm->msg = Z_NULL;
@@ -131,7 +146,7 @@ int ZEXPORT inflateReset(
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
state->wsize = 0;
state->whave = 0;
@@ -147,7 +162,7 @@ int ZEXPORT inflateReset2(
struct inflate_state FAR *state;
/* get the state */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
/* extract wrap request from windowBits parameter */
@@ -156,7 +171,7 @@ int ZEXPORT inflateReset2(
windowBits = -windowBits;
}
else {
- wrap = (windowBits >> 4) + 1;
+ wrap = (windowBits >> 4) + 5;
#ifdef GUNZIP
if (windowBits < 48)
windowBits &= 15;
@@ -210,7 +225,9 @@ int ZEXPORT inflateInit2_(
if (state == Z_NULL) return Z_MEM_ERROR;
Tracev((stderr, "inflate: allocated\n"));
strm->state = (struct internal_state FAR *)state;
+ state->strm = strm;
state->window = Z_NULL;
+ state->mode = HEAD; /* to pass state test in inflateReset2() */
ret = inflateReset2(strm, windowBits);
if (ret != Z_OK) {
ZFREE(strm, state);
@@ -234,17 +251,17 @@ int ZEXPORT inflatePrime(
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if (bits < 0) {
state->hold = 0;
state->bits = 0;
return Z_OK;
}
- if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR;
+ if (bits > 16 || state->bits + (uInt)bits > 32) return Z_STREAM_ERROR;
value &= (1L << bits) - 1;
- state->hold += value << state->bits;
- state->bits += bits;
+ state->hold += (unsigned)value << state->bits;
+ state->bits += (uInt)bits;
return Z_OK;
}
@@ -625,7 +642,7 @@ int ZEXPORT inflate(
static const unsigned short order[19] = /* permutation of code lengths */
{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
- if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL ||
+ if (inflateStateCheck(strm) || strm->next_out == Z_NULL ||
(strm->next_in == Z_NULL && strm->avail_in != 0))
return Z_STREAM_ERROR;
@@ -645,6 +662,8 @@ int ZEXPORT inflate(
NEEDBITS(16);
#ifdef GUNZIP
if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */
+ if (state->wbits == 0)
+ state->wbits = 15;
state->check = crc32(0L, Z_NULL, 0);
CRC2(state->check, hold);
INITBITS();
@@ -672,7 +691,7 @@ int ZEXPORT inflate(
len = BITS(4) + 8;
if (state->wbits == 0)
state->wbits = len;
- else if (len > state->wbits) {
+ if (len > 15 || len > state->wbits) {
strm->msg = (char *)"invalid window size";
state->mode = BAD;
break;
@@ -699,14 +718,16 @@ int ZEXPORT inflate(
}
if (state->head != Z_NULL)
state->head->text = (int)((hold >> 8) & 1);
- if (state->flags & 0x0200) CRC2(state->check, hold);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
INITBITS();
state->mode = TIME;
case TIME:
NEEDBITS(32);
if (state->head != Z_NULL)
state->head->time = hold;
- if (state->flags & 0x0200) CRC4(state->check, hold);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC4(state->check, hold);
INITBITS();
state->mode = OS;
case OS:
@@ -715,21 +736,25 @@ int ZEXPORT inflate(
state->head->xflags = (int)(hold & 0xff);
state->head->os = (int)(hold >> 8);
}
- if (state->flags & 0x0200) CRC2(state->check, hold);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
INITBITS();
state->mode = EXLEN;
+ /* FALLTHROUGH */
case EXLEN:
if (state->flags & 0x0400) {
NEEDBITS(16);
state->length = (unsigned)(hold);
if (state->head != Z_NULL)
state->head->extra_len = (unsigned)hold;
- if (state->flags & 0x0200) CRC2(state->check, hold);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
INITBITS();
}
else if (state->head != Z_NULL)
state->head->extra = Z_NULL;
state->mode = EXTRA;
+ /* FALLTHROUGH */
case EXTRA:
if (state->flags & 0x0400) {
copy = state->length;
@@ -742,7 +767,7 @@ int ZEXPORT inflate(
len + copy > state->head->extra_max ?
state->head->extra_max - len : copy);
}
- if (state->flags & 0x0200)
+ if ((state->flags & 0x0200) && (state->wrap & 4))
state->check = crc32(state->check, next, copy);
have -= copy;
next += copy;
@@ -752,6 +777,7 @@ int ZEXPORT inflate(
}
state->length = 0;
state->mode = NAME;
+ /* FALLTHROUGH */
case NAME:
if (state->flags & 0x0800) {
if (have == 0) goto inf_leave;
@@ -761,9 +787,9 @@ int ZEXPORT inflate(
if (state->head != Z_NULL &&
state->head->name != Z_NULL &&
state->length < state->head->name_max)
- state->head->name[state->length++] = len;
+ state->head->name[state->length++] = (Bytef)len;
} while (len && copy < have);
- if (state->flags & 0x0200)
+ if ((state->flags & 0x0200) && (state->wrap & 4))
state->check = crc32(state->check, next, copy);
have -= copy;
next += copy;
@@ -773,6 +799,7 @@ int ZEXPORT inflate(
state->head->name = Z_NULL;
state->length = 0;
state->mode = COMMENT;
+ /* FALLTHROUGH */
case COMMENT:
if (state->flags & 0x1000) {
if (have == 0) goto inf_leave;
@@ -782,9 +809,9 @@ int ZEXPORT inflate(
if (state->head != Z_NULL &&
state->head->comment != Z_NULL &&
state->length < state->head->comm_max)
- state->head->comment[state->length++] = len;
+ state->head->comment[state->length++] = (Bytef)len;
} while (len && copy < have);
- if (state->flags & 0x0200)
+ if ((state->flags & 0x0200) && (state->wrap & 4))
state->check = crc32(state->check, next, copy);
have -= copy;
next += copy;
@@ -793,10 +820,11 @@ int ZEXPORT inflate(
else if (state->head != Z_NULL)
state->head->comment = Z_NULL;
state->mode = HCRC;
+ /* FALLTHROUGH */
case HCRC:
if (state->flags & 0x0200) {
NEEDBITS(16);
- if (hold != (state->check & 0xffff)) {
+ if ((state->wrap & 4) && hold != (state->check & 0xffff)) {
strm->msg = (char *)"header crc mismatch";
state->mode = BAD;
break;
@@ -816,6 +844,7 @@ int ZEXPORT inflate(
strm->adler = state->check = ZSWAP32(hold);
INITBITS();
state->mode = DICT;
+ /* FALLTHROUGH */
case DICT:
if (state->havedict == 0) {
RESTORE();
@@ -823,8 +852,10 @@ int ZEXPORT inflate(
}
strm->adler = state->check = adler32(0L, Z_NULL, 0);
state->mode = TYPE;
+ /* FALLTHROUGH */
case TYPE:
if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave;
+ /* FALLTHROUGH */
case TYPEDO:
if (state->last) {
BYTEBITS();
@@ -875,8 +906,10 @@ int ZEXPORT inflate(
INITBITS();
state->mode = COPY_;
if (flush == Z_TREES) goto inf_leave;
+ /* FALLTHROUGH */
case COPY_:
state->mode = COPY;
+ /* FALLTHROUGH */
case COPY:
copy = state->length;
if (copy) {
@@ -1016,8 +1049,10 @@ int ZEXPORT inflate(
Tracev((stderr, "inflate: codes ok\n"));
state->mode = LEN_;
if (flush == Z_TREES) goto inf_leave;
+ /* FALLTHROUGH */
case LEN_:
state->mode = LEN;
+ /* FALLTHROUGH */
case LEN:
if (have >= 6 && left >= 258) {
RESTORE();
@@ -1067,6 +1102,7 @@ int ZEXPORT inflate(
}
state->extra = (unsigned)(here.op) & 15;
state->mode = LENEXT;
+ /* FALLTHROUGH */
case LENEXT:
if (state->extra) {
NEEDBITS(state->extra);
@@ -1077,6 +1113,7 @@ int ZEXPORT inflate(
Tracevv((stderr, "inflate: length %u\n", state->length));
state->was = state->length;
state->mode = DIST;
+ /* FALLTHROUGH */
case DIST:
for (;;) {
here = state->distcode[BITS(state->distbits)];
@@ -1104,6 +1141,7 @@ int ZEXPORT inflate(
state->offset = (unsigned)here.val;
state->extra = (unsigned)(here.op) & 15;
state->mode = DISTEXT;
+ /* FALLTHROUGH */
case DISTEXT:
if (state->extra) {
NEEDBITS(state->extra);
@@ -1120,6 +1158,7 @@ int ZEXPORT inflate(
#endif
Tracevv((stderr, "inflate: distance %u\n", state->offset));
state->mode = MATCH;
+ /* FALLTHROUGH */
case MATCH:
if (left == 0) goto inf_leave;
copy = out - left;
@@ -1177,11 +1216,11 @@ int ZEXPORT inflate(
out -= left;
strm->total_out += out;
state->total += out;
- if (out)
+ if ((state->wrap & 4) && out)
strm->adler = state->check =
UPDATE(state->check, put - out, out);
out = left;
- if ((
+ if ((state->wrap & 4) && (
#ifdef GUNZIP
state->flags ? hold :
#endif
@@ -1195,6 +1234,7 @@ int ZEXPORT inflate(
}
#ifdef GUNZIP
state->mode = LENGTH;
+ /* FALLTHROUGH */
case LENGTH:
if (state->wrap && state->flags) {
NEEDBITS(32);
@@ -1208,6 +1248,7 @@ int ZEXPORT inflate(
}
#endif
state->mode = DONE;
+ /* FALLTHROUGH */
case DONE:
ret = Z_STREAM_END;
goto inf_leave;
@@ -1240,10 +1281,10 @@ int ZEXPORT inflate(
strm->total_in += in;
strm->total_out += out;
state->total += out;
- if (state->wrap && out)
+ if ((state->wrap & 4) && out)
strm->adler = state->check =
UPDATE(state->check, strm->next_out - out, out);
- strm->data_type = state->bits + (state->last ? 64 : 0) +
+ strm->data_type = (int)state->bits + (state->last ? 64 : 0) +
(state->mode == TYPE ? 128 : 0) +
(state->mode == LEN_ || state->mode == COPY_ ? 256 : 0);
if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK)
@@ -1255,7 +1296,7 @@ int ZEXPORT inflateEnd(
z_streamp strm)
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
+ if (inflateStateCheck(strm))
return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if (state->window != Z_NULL) ZFREE(strm, state->window);
@@ -1273,7 +1314,7 @@ int ZEXPORT inflateGetDictionary(
struct inflate_state FAR *state;
/* check state */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
/* copy dictionary */
@@ -1298,7 +1339,7 @@ int ZEXPORT inflateSetDictionary(
int ret;
/* check state */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if (state->wrap != 0 && state->mode != DICT)
return Z_STREAM_ERROR;
@@ -1330,7 +1371,7 @@ int ZEXPORT inflateGetHeader(
struct inflate_state FAR *state;
/* check state */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if ((state->wrap & 2) == 0) return Z_STREAM_ERROR;
@@ -1383,7 +1424,7 @@ int ZEXPORT inflateSync(
struct inflate_state FAR *state;
/* check parameters */
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR;
@@ -1430,7 +1471,7 @@ int ZEXPORT inflateSyncPoint(
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
return state->mode == STORED && state->bits == 0;
}
@@ -1445,8 +1486,7 @@ int ZEXPORT inflateCopy(
unsigned wsize;
/* check input */
- if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL ||
- source->zalloc == (alloc_func)0 || source->zfree == (free_func)0)
+ if (inflateStateCheck(source) || dest == Z_NULL)
return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)source->state;
@@ -1467,6 +1507,7 @@ int ZEXPORT inflateCopy(
/* copy state */
zmemcpy((Bytef*)dest, (Bytef*)source, sizeof(z_stream));
zmemcpy((Bytef*)copy, (Bytef*)state, sizeof(struct inflate_state));
+ copy->strm = dest;
if (state->lencode >= state->codes &&
state->lencode <= state->codes + ENOUGH - 1) {
copy->lencode = copy->codes + (state->lencode - state->codes);
@@ -1488,25 +1529,51 @@ int ZEXPORT inflateUndermine(
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
state->sane = !subvert;
return Z_OK;
#else
+ (void)subvert;
state->sane = 1;
return Z_DATA_ERROR;
#endif
}
+int ZEXPORT inflateValidate(
+ z_streamp strm,
+ int check)
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ if (check)
+ state->wrap |= 4;
+ else
+ state->wrap &= ~4;
+ return Z_OK;
+}
+
long ZEXPORT inflateMark(
z_streamp strm)
{
struct inflate_state FAR *state;
- if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
+ if (inflateStateCheck(strm))
+ return -(1L << 16);
state = (struct inflate_state FAR *)strm->state;
- return ((long)(state->back) << 16) +
+ return (long)(((unsigned long)((long)state->back)) << 16) +
(state->mode == COPY ? state->length :
(state->mode == MATCH ? state->was - state->length : 0));
}
+
+unsigned long ZEXPORT inflateCodesUsed(
+ z_streamp strm)
+{
+ struct inflate_state FAR *state;
+ if (inflateStateCheck(strm)) return (unsigned long)-1;
+ state = (struct inflate_state FAR *)strm->state;
+ return (unsigned long)(state->next - state->codes);
+}
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c
index 622859a2c0a..6fc240371ae 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c
@@ -1,5 +1,5 @@
/* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995-2012 Jean-loup Gailly
+ * Copyright (C) 1995-2017 Jean-loup Gailly
* detect_data_type() function provided freely by Cosmin Truta, 2006
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -36,7 +36,7 @@
#include "deflate.h"
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
# include <ctype.h>
#endif
@@ -152,18 +152,16 @@ local int detect_data_type OF((deflate_state *s));
local unsigned bi_reverse OF((unsigned value, int length));
local void bi_windup OF((deflate_state *s));
local void bi_flush OF((deflate_state *s));
-local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
- int header));
#ifdef GEN_TREES_H
local void gen_trees_header OF((void));
#endif
-#ifndef DEBUG
+#ifndef ZLIB_DEBUG
# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
/* Send a code of the given tree. c and tree must not have side effects */
-#else /* DEBUG */
+#else /* !ZLIB_DEBUG */
# define send_code(s, c, tree) \
{ if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
send_bits(s, tree[c].Code, tree[c].Len); }
@@ -182,7 +180,7 @@ local void gen_trees_header OF((void));
* Send a value on a given number of bits.
* IN assertion: length <= 16 and value fits in length bits.
*/
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
local void send_bits OF((deflate_state *s, int value, int length));
local void send_bits(
@@ -208,12 +206,12 @@ local void send_bits(
s->bi_valid += length;
}
}
-#else /* !DEBUG */
+#else /* !ZLIB_DEBUG */
#define send_bits(s, value, length) \
{ int len = length;\
if (s->bi_valid > (int)Buf_size - len) {\
- int val = value;\
+ int val = (int)value;\
s->bi_buf |= (ush)val << s->bi_valid;\
put_short(s, s->bi_buf);\
s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
@@ -223,7 +221,7 @@ local void send_bits(
s->bi_valid += len;\
}\
}
-#endif /* DEBUG */
+#endif /* ZLIB_DEBUG */
/* the arguments must not have side effects */
@@ -317,7 +315,7 @@ local void tr_static_init()
* Genererate the file trees.h describing the static trees.
*/
#ifdef GEN_TREES_H
-# ifndef DEBUG
+# ifndef ZLIB_DEBUG
# include <stdio.h>
# endif
@@ -394,7 +392,7 @@ void ZLIB_INTERNAL _tr_init(
s->bi_buf = 0;
s->bi_valid = 0;
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len = 0L;
s->bits_sent = 0L;
#endif
@@ -522,12 +520,12 @@ local void gen_bitlen(
xbits = 0;
if (n >= base) xbits = extra[n-base];
f = tree[n].Freq;
- s->opt_len += (ulg)f * (bits + xbits);
- if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
+ s->opt_len += (ulg)f * (unsigned)(bits + xbits);
+ if (stree) s->static_len += (ulg)f * (unsigned)(stree[n].Len + xbits);
}
if (overflow == 0) return;
- Trace((stderr,"\nbit length overflow\n"));
+ Tracev((stderr,"\nbit length overflow\n"));
/* This happens for example on obj2 and pic of the Calgary corpus */
/* Find the first bit length which could increase: */
@@ -554,9 +552,8 @@ local void gen_bitlen(
m = s->heap[--h];
if (m > max_code) continue;
if ((unsigned) tree[m].Len != (unsigned) bits) {
- Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
- s->opt_len += ((long)bits - (long)tree[m].Len)
- *(long)tree[m].Freq;
+ Tracev((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
+ s->opt_len += ((ulg)bits - tree[m].Len) * tree[m].Freq;
tree[m].Len = (ush)bits;
}
n--;
@@ -578,7 +575,7 @@ local void gen_codes (
ushf *bl_count)
{
ush next_code[MAX_BITS+1]; /* next code value for each bit length */
- ush code = 0; /* running code value */
+ unsigned code = 0; /* running code value */
int bits; /* bit index */
int n; /* code index */
@@ -586,7 +583,8 @@ local void gen_codes (
* without bit reversal.
*/
for (bits = 1; bits <= MAX_BITS; bits++) {
- next_code[bits] = code = (code + bl_count[bits-1]) << 1;
+ code = (code + bl_count[bits-1]) << 1;
+ next_code[bits] = (ush)code;
}
/* Check that the bit counts in bl_count are consistent. The last code
* must be all ones.
@@ -599,7 +597,7 @@ local void gen_codes (
int len = tree[n].Len;
if (len == 0) continue;
/* Now reverse the bits */
- tree[n].Code = bi_reverse(next_code[len]++, len);
+ tree[n].Code = (ush)bi_reverse(next_code[len]++, len);
Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
@@ -821,7 +819,7 @@ local int build_bl_tree(
if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
}
/* Update opt_len to include the bit length tree and counts */
- s->opt_len += 3*(max_blindex+1) + 5+5+4;
+ s->opt_len += 3*((ulg)max_blindex+1) + 5+5+4;
Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
s->opt_len, s->static_len));
@@ -871,11 +869,17 @@ void ZLIB_INTERNAL _tr_stored_block(
int last)
{
send_bits(s, (STORED_BLOCK<<1)+last, 3); /* send block type */
-#ifdef DEBUG
+ bi_windup(s); /* align on byte boundary */
+ put_short(s, (ush)stored_len);
+ put_short(s, (ush)~stored_len);
+ zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len);
+ s->pending += stored_len;
+#ifdef ZLIB_DEBUG
s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
s->compressed_len += (stored_len + 4) << 3;
+ s->bits_sent += 2*16;
+ s->bits_sent += stored_len<<3;
#endif
- copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
}
/* ===========================================================================
@@ -896,7 +900,7 @@ void ZLIB_INTERNAL _tr_align(
{
send_bits(s, STATIC_TREES<<1, 3);
send_code(s, END_BLOCK, static_ltree);
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
#endif
bi_flush(s);
@@ -904,7 +908,7 @@ void ZLIB_INTERNAL _tr_align(
/* ===========================================================================
* Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file.
+ * trees or store, and write out the encoded block.
*/
void ZLIB_INTERNAL _tr_flush_block(
deflate_state *s,
@@ -976,7 +980,7 @@ void ZLIB_INTERNAL _tr_flush_block(
send_bits(s, (STATIC_TREES<<1)+last, 3);
compress_block(s, (const ct_data *)static_ltree,
(const ct_data *)static_dtree);
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len += 3 + s->static_len;
#endif
} else {
@@ -985,7 +989,7 @@ void ZLIB_INTERNAL _tr_flush_block(
max_blindex+1);
compress_block(s, (const ct_data *)s->dyn_ltree,
(const ct_data *)s->dyn_dtree);
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len += 3 + s->opt_len;
#endif
}
@@ -997,7 +1001,7 @@ void ZLIB_INTERNAL _tr_flush_block(
if (last) {
bi_windup(s);
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->compressed_len += 7; /* align on byte boundary */
#endif
}
@@ -1092,7 +1096,7 @@ local void compress_block(
send_code(s, code, dtree); /* send the distance code */
extra = extra_dbits[code];
if (extra != 0) {
- dist -= base_dist[code];
+ dist -= (unsigned)base_dist[code];
send_bits(s, dist, extra); /* send the extra distance bits */
}
} /* literal or match pair ? */
@@ -1195,34 +1199,7 @@ local void bi_windup(
}
s->bi_buf = 0;
s->bi_valid = 0;
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
s->bits_sent = (s->bits_sent+7) & ~7;
#endif
}
-
-/* ===========================================================================
- * Copy a stored block, storing first the length and its
- * one's complement if requested.
- */
-local void copy_block(
- deflate_state *s,
- charf *buf,
- unsigned len,
- int header)
-{
- bi_windup(s); /* align on byte boundary */
-
- if (header) {
- put_short(s, (ush)len);
- put_short(s, (ush)~len);
-#ifdef DEBUG
- s->bits_sent += 2*16;
-#endif
- }
-#ifdef DEBUG
- s->bits_sent += (ulg)len<<3;
-#endif
- while (len--) {
- put_byte(s, *buf++);
- }
-}
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/uncompr.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/uncompr.c
index d3cb8fe1835..f8a1ba9d6f0 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/uncompr.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/uncompr.c
@@ -1,5 +1,5 @@
/* uncompr.c -- decompress a memory buffer
- * Copyright (C) 1995-2003, 2010 Jean-loup Gailly.
+ * Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -9,51 +9,85 @@
#include "zlib.h"
/* ===========================================================================
- Decompresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be large enough to hold the
- entire uncompressed data. (The size of the uncompressed data must have
- been saved previously by the compressor and transmitted to the decompressor
- by some mechanism outside the scope of this compression library.)
- Upon exit, destLen is the actual size of the compressed buffer.
-
- uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer, or Z_DATA_ERROR if the input data was corrupted.
+ Decompresses the source buffer into the destination buffer. *sourceLen is
+ the byte length of the source buffer. Upon entry, *destLen is the total size
+ of the destination buffer, which must be large enough to hold the entire
+ uncompressed data. (The size of the uncompressed data must have been saved
+ previously by the compressor and transmitted to the decompressor by some
+ mechanism outside the scope of this compression library.) Upon exit,
+ *destLen is the size of the decompressed data and *sourceLen is the number
+ of source bytes consumed. Upon return, source + *sourceLen points to the
+ first unused input byte.
+
+ uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
+ Z_DATA_ERROR if the input data was corrupted, including if the input data is
+ an incomplete zlib stream.
*/
-int ZEXPORT uncompress (
+int ZEXPORT uncompress2 (
Bytef *dest,
uLongf *destLen,
const Bytef *source,
- uLong sourceLen)
+ uLong *sourceLen)
{
z_stream stream;
int err;
+ const uInt max = (uInt)-1;
+ uLong len, left;
+ Byte buf[1]; /* for detection of incomplete stream when *destLen == 0 */
- stream.next_in = (z_const Bytef *)source;
- stream.avail_in = (uInt)sourceLen;
- /* Check for source > 64K on 16-bit machine: */
- if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-
- stream.next_out = dest;
- stream.avail_out = (uInt)*destLen;
- if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
+ len = *sourceLen;
+ if (*destLen) {
+ left = *destLen;
+ *destLen = 0;
+ }
+ else {
+ left = 1;
+ dest = buf;
+ }
+ stream.next_in = (z_const Bytef *)source;
+ stream.avail_in = 0;
stream.zalloc = (alloc_func)0;
stream.zfree = (free_func)0;
+ stream.opaque = (voidpf)0;
err = inflateInit(&stream);
if (err != Z_OK) return err;
- err = inflate(&stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- inflateEnd(&stream);
- if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0))
- return Z_DATA_ERROR;
- return err;
- }
- *destLen = stream.total_out;
+ stream.next_out = dest;
+ stream.avail_out = 0;
- err = inflateEnd(&stream);
- return err;
+ do {
+ if (stream.avail_out == 0) {
+ stream.avail_out = left > (uLong)max ? max : (uInt)left;
+ left -= stream.avail_out;
+ }
+ if (stream.avail_in == 0) {
+ stream.avail_in = len > (uLong)max ? max : (uInt)len;
+ len -= stream.avail_in;
+ }
+ err = inflate(&stream, Z_NO_FLUSH);
+ } while (err == Z_OK);
+
+ *sourceLen -= len + stream.avail_in;
+ if (dest != buf)
+ *destLen = stream.total_out;
+ else if (stream.total_out && err == Z_BUF_ERROR)
+ left = 1;
+
+ inflateEnd(&stream);
+ return err == Z_STREAM_END ? Z_OK :
+ err == Z_NEED_DICT ? Z_DATA_ERROR :
+ err == Z_BUF_ERROR && left + stream.avail_out ? Z_DATA_ERROR :
+ err;
+}
+
+int ZEXPORT uncompress (
+ Bytef *dest,
+ uLongf *destLen,
+ const Bytef *source,
+ uLong sourceLen)
+{
+ return uncompress2(dest, destLen, source, &sourceLen);
}
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h
index 9987a775530..5e1d68a004e 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h
@@ -1,5 +1,5 @@
/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2013 Jean-loup Gailly.
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -17,7 +17,7 @@
#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
# define Z_PREFIX_SET
-/* all linked symbols */
+/* all linked symbols and init macros */
# define _dist_code z__dist_code
# define _length_code z__length_code
# define _tr_align z__tr_align
@@ -29,6 +29,7 @@
# define adler32 z_adler32
# define adler32_combine z_adler32_combine
# define adler32_combine64 z_adler32_combine64
+# define adler32_z z_adler32_z
# ifndef Z_SOLO
# define compress z_compress
# define compress2 z_compress2
@@ -37,10 +38,14 @@
# define crc32 z_crc32
# define crc32_combine z_crc32_combine
# define crc32_combine64 z_crc32_combine64
+# define crc32_z z_crc32_z
# define deflate z_deflate
# define deflateBound z_deflateBound
# define deflateCopy z_deflateCopy
# define deflateEnd z_deflateEnd
+# define deflateGetDictionary z_deflateGetDictionary
+# define deflateInit z_deflateInit
+# define deflateInit2 z_deflateInit2
# define deflateInit2_ z_deflateInit2_
# define deflateInit_ z_deflateInit_
# define deflateParams z_deflateParams
@@ -67,6 +72,8 @@
# define gzeof z_gzeof
# define gzerror z_gzerror
# define gzflush z_gzflush
+# define gzfread z_gzfread
+# define gzfwrite z_gzfwrite
# define gzgetc z_gzgetc
# define gzgetc_ z_gzgetc_
# define gzgets z_gzgets
@@ -78,7 +85,6 @@
# define gzopen_w z_gzopen_w
# endif
# define gzprintf z_gzprintf
-# define gzvprintf z_gzvprintf
# define gzputc z_gzputc
# define gzputs z_gzputs
# define gzread z_gzread
@@ -89,32 +95,39 @@
# define gztell z_gztell
# define gztell64 z_gztell64
# define gzungetc z_gzungetc
+# define gzvprintf z_gzvprintf
# define gzwrite z_gzwrite
# endif
# define inflate z_inflate
# define inflateBack z_inflateBack
# define inflateBackEnd z_inflateBackEnd
+# define inflateBackInit z_inflateBackInit
# define inflateBackInit_ z_inflateBackInit_
+# define inflateCodesUsed z_inflateCodesUsed
# define inflateCopy z_inflateCopy
# define inflateEnd z_inflateEnd
+# define inflateGetDictionary z_inflateGetDictionary
# define inflateGetHeader z_inflateGetHeader
+# define inflateInit z_inflateInit
+# define inflateInit2 z_inflateInit2
# define inflateInit2_ z_inflateInit2_
# define inflateInit_ z_inflateInit_
# define inflateMark z_inflateMark
# define inflatePrime z_inflatePrime
# define inflateReset z_inflateReset
# define inflateReset2 z_inflateReset2
+# define inflateResetKeep z_inflateResetKeep
# define inflateSetDictionary z_inflateSetDictionary
-# define inflateGetDictionary z_inflateGetDictionary
# define inflateSync z_inflateSync
# define inflateSyncPoint z_inflateSyncPoint
# define inflateUndermine z_inflateUndermine
-# define inflateResetKeep z_inflateResetKeep
+# define inflateValidate z_inflateValidate
# define inflate_copyright z_inflate_copyright
# define inflate_fast z_inflate_fast
# define inflate_table z_inflate_table
# ifndef Z_SOLO
# define uncompress z_uncompress
+# define uncompress2 z_uncompress2
# endif
# define zError z_zError
# ifndef Z_SOLO
@@ -224,9 +237,19 @@
# define z_const
#endif
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-# define NO_DUMMY_DECL
+#ifdef Z_SOLO
+ typedef unsigned long z_size_t;
+#else
+# define z_longlong long long
+# if defined(NO_SIZE_T)
+ typedef unsigned NO_SIZE_T z_size_t;
+# elif defined(STDC)
+# include <stddef.h>
+ typedef size_t z_size_t;
+# else
+ typedef unsigned long z_size_t;
+# endif
+# undef z_longlong
#endif
/* Maximum value for memLevel in deflateInit2 */
@@ -256,7 +279,7 @@
Of course this will generally degrade compression (there's no free lunch).
The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
+ that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
for small objects.
*/
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c
index 5688d4f7e2c..ff06651f23f 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c
@@ -1,5 +1,5 @@
/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly.
+ * Copyright (C) 1995-2017 Jean-loup Gailly
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -10,21 +10,18 @@
# include "gzguts.h"
#endif
-#ifndef NO_DUMMY_DECL
-struct internal_state {int dummy;}; /* for buggy compilers */
-#endif
-
z_const char * const z_errmsg[10] = {
-(char*)"need dictionary", /* Z_NEED_DICT 2 */
-(char*)"stream end", /* Z_STREAM_END 1 */
-(char*)"", /* Z_OK 0 */
-(char*)"file error", /* Z_ERRNO (-1) */
-(char*)"stream error", /* Z_STREAM_ERROR (-2) */
-(char*)"data error", /* Z_DATA_ERROR (-3) */
-(char*)"insufficient memory", /* Z_MEM_ERROR (-4) */
-(char*)"buffer error", /* Z_BUF_ERROR (-5) */
-(char*)"incompatible version",/* Z_VERSION_ERROR (-6) */
-(char*)""};
+ (z_const char *)"need dictionary", /* Z_NEED_DICT 2 */
+ (z_const char *)"stream end", /* Z_STREAM_END 1 */
+ (z_const char *)"", /* Z_OK 0 */
+ (z_const char *)"file error", /* Z_ERRNO (-1) */
+ (z_const char *)"stream error", /* Z_STREAM_ERROR (-2) */
+ (z_const char *)"data error", /* Z_DATA_ERROR (-3) */
+ (z_const char *)"insufficient memory", /* Z_MEM_ERROR (-4) */
+ (z_const char *)"buffer error", /* Z_BUF_ERROR (-5) */
+ (z_const char *)"incompatible version",/* Z_VERSION_ERROR (-6) */
+ (z_const char *)""
+};
const char * ZEXPORT zlibVersion()
@@ -61,7 +58,7 @@ uLong ZEXPORT zlibCompileFlags()
case 8: flags += 2 << 6; break;
default: flags += 3 << 6;
}
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
flags += 1 << 8;
#endif
#if defined(ASMV) || defined(ASMINF)
@@ -115,8 +112,8 @@ uLong ZEXPORT zlibCompileFlags()
return flags;
}
-#ifdef DEBUG
-
+#ifdef ZLIB_DEBUG
+#include <stdlib.h>
# ifndef verbose
# define verbose 0
# endif
@@ -219,9 +216,11 @@ local ptr_table table[MAX_PTR];
voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
{
- voidpf buf = opaque; /* just to make some compilers happy */
+ voidpf buf;
ulg bsize = (ulg)items*size;
+ (void)opaque;
+
/* If we allocate less than 65520 bytes, we assume that farmalloc
* will return a usable pointer which doesn't have to be normalized.
*/
@@ -244,6 +243,9 @@ voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
{
int n;
+
+ (void)opaque;
+
if (*(ush*)&ptr != 0) { /* object < 64K */
farfree(ptr);
return;
@@ -259,7 +261,6 @@ void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
next_ptr--;
return;
}
- ptr = opaque; /* just to make some compilers happy */
Assert(0, "zcfree: ptr not found");
}
@@ -278,13 +279,13 @@ void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
{
- if (opaque) opaque = 0; /* to make compiler happy */
+ (void)opaque;
return _halloc((long)items, size);
}
void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
{
- if (opaque) opaque = 0; /* to make compiler happy */
+ (void)opaque;
_hfree(ptr);
}
@@ -306,7 +307,7 @@ voidpf ZLIB_INTERNAL zcalloc (
unsigned items,
unsigned size)
{
- if (opaque) items += size - size; /* make compiler happy */
+ (void)opaque;
return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) :
(voidpf)calloc(items, size);
}
@@ -315,8 +316,8 @@ void ZLIB_INTERNAL zcfree (
voidpf opaque,
voidpf ptr)
{
+ (void)opaque;
free(ptr);
- if (opaque) return; /* make compiler happy */
}
#endif /* MY_ZCALLOC */
diff --git a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h
index 0e7dfd96ba2..da852de01eb 100644
--- a/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h
+++ b/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h
@@ -1,5 +1,5 @@
/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2013 Jean-loup Gailly.
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -40,7 +40,9 @@ extern "C" {
#ifndef local
# define local static
#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
+/* since "static" is used to mean two completely different things in C, we
+ define "local" for the non-static meaning of "static", for readability
+ (compile with -Dlocal if your debugger can't find static symbols) */
typedef unsigned char uch;
typedef uch FAR uchf;
@@ -102,28 +104,38 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
#endif
#ifdef AMIGA
-# define OS_CODE 0x01
+# define OS_CODE 1
#endif
#if defined(VAXC) || defined(VMS)
-# define OS_CODE 0x02
+# define OS_CODE 2
# define F_OPEN(name, mode) \
fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
#endif
+#ifdef __370__
+# if __TARGET_LIB__ < 0x20000000
+# define OS_CODE 4
+# elif __TARGET_LIB__ < 0x40000000
+# define OS_CODE 11
+# else
+# define OS_CODE 8
+# endif
+#endif
+
#if defined(ATARI) || defined(atarist)
-# define OS_CODE 0x05
+# define OS_CODE 5
#endif
#ifdef OS2
-# define OS_CODE 0x06
+# define OS_CODE 6
# if defined(M_I86) && !defined(Z_SOLO)
# include <malloc.h>
# endif
#endif
#if defined(MACOS) || defined(TARGET_OS_MAC)
-# define OS_CODE 0x07
+# define OS_CODE 7
# ifndef Z_SOLO
# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
# include <unix.h> /* for fdopen */
@@ -135,18 +147,24 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
# endif
#endif
-#ifdef TOPS20
-# define OS_CODE 0x0a
+#ifdef __acorn
+# define OS_CODE 13
#endif
-#ifdef WIN32
-# ifndef __CYGWIN__ /* Cygwin is Unix, not Win32 */
-# define OS_CODE 0x0b
-# endif
+#if defined(WIN32) && !defined(__CYGWIN__)
+# define OS_CODE 10
#endif
-#ifdef __50SERIES /* Prime/PRIMOS */
-# define OS_CODE 0x0f
+#ifdef _BEOS_
+# define OS_CODE 16
+#endif
+
+#ifdef __TOS_OS400__
+# define OS_CODE 18
+#endif
+
+#ifdef __APPLE__
+# define OS_CODE 19
#endif
#if defined(_BEOS_) || defined(RISCOS)
@@ -181,7 +199,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
/* common defaults */
#ifndef OS_CODE
-# define OS_CODE 0x03 /* assume Unix */
+# define OS_CODE 3 /* assume Unix */
#endif
#ifndef F_OPEN
@@ -220,7 +238,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
#endif
/* Diagnostic functions */
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
# include <stdio.h>
extern int ZLIB_INTERNAL z_verbose;
extern void ZLIB_INTERNAL z_error OF((char *m));
@@ -256,6 +274,5 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
#ifdef __cplusplus
}
-#endif
-
+#endif
#endif /* ZUTIL_H */
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm b/gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm
index 79999fb43a7..4489cc83fc6 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm
@@ -8,8 +8,8 @@ use warnings;
use Config;
use Exporter;
use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
-$VERSION = "0.25";
-@ISA = ("Exporter");
+$VERSION = "0.29";
+@ISA = qw( Exporter );
@EXPORT_OK = qw( plv2hash summary myconfig signature );
%EXPORT_TAGS = (
all => [ @EXPORT_OK ],
@@ -54,6 +54,7 @@ my %BTD = map { $_ => 0 } qw(
PERL_MEM_LOG_STDERR
PERL_MEM_LOG_TIMESTAMP
PERL_NEW_COPY_ON_WRITE
+ PERL_OP_PARENT
PERL_PERTURB_KEYS_DETERMINISTIC
PERL_PERTURB_KEYS_DISABLED
PERL_PERTURB_KEYS_RANDOM
@@ -61,6 +62,7 @@ my %BTD = map { $_ => 0 } qw(
PERL_RELOCATABLE_INCPUSH
PERL_USE_DEVEL
PERL_USE_SAFE_PUTENV
+ SILENT_NO_TAINT_SUPPORT
UNLINK_ALL_VERSIONS
USE_ATTRIBUTES_FOR_PERLIO
USE_FAST_STDIO
@@ -159,7 +161,7 @@ my @config_vars = qw(
useithreads usemultiplicity
useperlio d_sfio uselargefiles usesocks
use64bitint use64bitall uselongdouble
- usemymalloc bincompat5005
+ usemymalloc default_inc_excludes_dot bincompat5005
cc ccflags
optimize
@@ -188,8 +190,7 @@ my %empty_build = (
patches => [],
);
-sub _make_derived
-{
+sub _make_derived {
my $conf = shift;
for ( [ lseektype => "Off_t" ],
@@ -228,11 +229,12 @@ sub _make_derived
$conf->{config}{git_describe} ||= $conf->{config}{perl_patchlevel};
}
+ $conf->{config}{$_} ||= "undef" for grep m/^(?:use|def)/ => @config_vars;
+
$conf;
} # _make_derived
-sub plv2hash
-{
+sub plv2hash {
my %config;
my $pv = join "\n" => @_;
@@ -253,6 +255,15 @@ sub plv2hash
$config{git_commit_id} = $2;
}
+ # these are always last on line and can have multiple quotation styles
+ for my $k (qw( ccflags ldflags lddlflags )) {
+ $pv =~ s{, \s* $k \s*=\s* (.*) \s*$}{}mx or next;
+ my $v = $1;
+ $v =~ s/\s*,\s*$//;
+ $v =~ s/^(['"])(.*)\1$/$2/;
+ $config{$k} = $v;
+ }
+
if (my %kv = ($pv =~ m{\b
(\w+) # key
\s*= # assign
@@ -297,11 +308,13 @@ sub plv2hash
});
} # plv2hash
-sub summary
-{
+sub summary {
my $conf = shift || myconfig ();
- ref $conf eq "HASH" &&
- exists $conf->{config} && exists $conf->{build} or return;
+ ref $conf eq "HASH"
+ && exists $conf->{config}
+ && exists $conf->{build}
+ && ref $conf->{config} eq "HASH"
+ && ref $conf->{build} eq "HASH" or return;
my %info = map {
exists $conf->{config}{$_} ? ( $_ => $conf->{config}{$_} ) : () }
@@ -310,26 +323,30 @@ sub summary
d_longdbl d_longlong use64bitall use64bitint useithreads
uselongdouble usemultiplicity usemymalloc useperlio useshrplib
doublesize intsize ivsize nvsize longdblsize longlongsize lseeksize
+ default_inc_excludes_dot
);
$info{$_}++ for grep { $conf->{build}{options}{$_} } keys %{$conf->{build}{options}};
return \%info;
} # summary
-sub signature
-{
+sub signature {
+ my $no_md5 = "0" x 32;
+ my $conf = summary (shift) or return $no_md5;
+
eval { require Digest::MD5 };
- $@ and return "00000000000000000000000000000000";
+ $@ and return $no_md5;
+
+ $conf->{cc} =~ s{.*\bccache\s+}{};
+ $conf->{cc} =~ s{.*[/\\]}{};
- my $conf = shift || summary ();
delete $conf->{config_args};
return Digest::MD5::md5_hex (join "\xFF" => map {
"$_=".(defined $conf->{$_} ? $conf->{$_} : "\xFE");
} sort keys %$conf);
} # signature
-sub myconfig
-{
+sub myconfig {
my $args = shift;
my %args = ref $args eq "HASH" ? %$args :
ref $args eq "ARRAY" ? @$args : ();
@@ -537,7 +554,7 @@ H.Merijn Brand <h.m.brand@xs4all.nl>
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2009-2015 H.Merijn Brand
+Copyright (C) 2009-2017 H.Merijn Brand
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/10_base.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/10_base.t
index 6113828f06a..c4deda0ddef 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/10_base.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/10_base.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 12;
+ my $tests = 42;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -26,6 +26,19 @@ ok (my $info1 = Config::Perl::V::summary ($conf), "Get a summary for \$conf");
ok (my $info2 = Config::Perl::V::summary, "Get a summary for \$^X");
is_deeply ($info1, $info2, "Info should match");
+ok (my $sig = Config::Perl::V::signature, "Get signature");
+like ($sig, qr{^[0-9a-f]{32}$}, "Valid md5");
+
+my $no_md5 = "0" x 32;
+ok (my $bad = Config::Perl::V::signature ({ cfg => 0 }), "Signature on invalid data");
+is ($bad, $no_md5, "Invalid md5");
+ok ( $bad = Config::Perl::V::signature ({ config => {} }), "Signature on incomplete data");
+is ($bad, $no_md5, "Invalid md5");
+ok ( $bad = Config::Perl::V::signature ({ config => 0, build => {} }), "Signature on invalid data");
+is ($bad, $no_md5, "Invalid md5");
+ok ( $bad = Config::Perl::V::signature ({ config => {}, build => 0 }), "Signature on invalid data");
+is ($bad, $no_md5, "Invalid md5");
+
SKIP: {
# Test that the code that shells out to perl -V and parses the output
# gives the same results as the code that calls Config::* routines directly.
@@ -36,3 +49,24 @@ SKIP: {
is_deeply (Config::Perl::V::myconfig, $conf,
"perl -V parsing code produces same result as the Config module");
}
+
+$ENV{CPV_TEST_ENV} = 42;
+ok ($conf = Config::Perl::V::myconfig ({ env => qr{^CPV_TEST_ENV$} }), "Read config plus ENV");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc environment );
+ok (my $eh = $conf->{environment}, "Get ENV from conf");
+is ($eh->{CPV_TEST_ENV}, 42, "Valid entry");
+
+ok ($conf = Config::Perl::V::myconfig ([ env => qr{^CPV_TEST_ENV$} ]), "Read config plus ENV");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc environment );
+ok ($eh = $conf->{environment}, "Get ENV from conf");
+is ($eh->{CPV_TEST_ENV}, 42, "Valid entry");
+
+ok ($conf = Config::Perl::V::myconfig ( env => qr{^CPV_TEST_ENV$} ), "Read config invalid arguments");
+is ($conf->{environment}{CPV_TEST_ENV}, undef, "No entry");
+
+delete $INC{"Digest/MD5.pm"};
+delete $INC{"Digest/base.pm"};
+$INC{"Digest/MD5"} = "./flooble/blurgh/Digest/MD5.pm";
+local @INC = ("xyzzy$$"); # Should be unable to find Digest::MD5
+ok ($sig = Config::Perl::V::signature, "Get signature (No Digest::MD5)");
+is ($sig, $no_md5, "Valid md5");
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t
index b0cc5ef9f86..a7e9f9ea347 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 95;
+ my $tests = 99;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -36,6 +36,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "9dc187182be100c1713f210a8c6d9f45";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
__END__
Summary of my perl5 (revision 5.0 version 6 subversion 2) configuration:
Platform:
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t
index 1918b583a14..a7b797bcb70 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 95;
+ my $tests = 99;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -39,6 +39,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "df48dce1adaaf63855d8acd455c51818";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
__END__
Summary of my perl5 (revision 5 version 8 subversion 9) configuration:
Platform:
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t
index 61792580a84..51ba142df64 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 94;
+ my $tests = 98;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -29,6 +29,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "ce0a7871dfddbbed0a6c685c0f52dbf9";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
__END__
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
Platform:
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t
index 6c9fe305ec2..00479ba99ed 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 96;
+ my $tests = 100;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -39,6 +39,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "a2c38153cc47d340bc140d0bfe294afb";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
__END__
Summary of my perl5 (revision 5 version 12 subversion 2) configuration:
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t
index e6a2f0deb24..db2ac2a3311 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 96;
+ my $tests = 100;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -40,6 +40,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "778815a670c0c454738aedf0c88930ba";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
__END__
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t
index aad865ca53f..6315223fb62 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 95;
+ my $tests = 99;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -40,6 +40,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "7b00cf3b306d96fa802892e6ad4b070f";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
__END__
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t
index 1e1b7efd52f..aed85b91b70 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 153;
+ my $tests = 157;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -42,6 +42,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "2917ca2a97b6db1ab8fb08798f53c0bb";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
is_deeply ($conf->{build}{patches}, [
"/Library/Perl/Updates/<version> comes before system perl directories",
"installprivlib and installarchlib points to the Updates directory",
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t
index ffd4a3655ac..cedc734274e 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 114;
+ my $tests = 118;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -40,6 +40,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "8f46b07a7775e6a92347d4cd564b8f03";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
is_deeply ($conf->{build}{patches}, [], "No local patches");
my %check = (
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t
index b89c85cc303..178fb926123 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 114;
+ my $tests = 118;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -40,6 +40,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "874325856acfea3dab7e7c944660f398";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
is_deeply ($conf->{build}{patches}, [], "No local patches");
my %check = (
diff --git a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t
index fd205ddc511..4d9b400ebfa 100644
--- a/gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t
+++ b/gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t
@@ -5,7 +5,7 @@ use warnings;
BEGIN {
use Test::More;
- my $tests = 114;
+ my $tests = 118;
unless ($ENV{PERL_CORE}) {
require Test::NoWarnings;
Test::NoWarnings->import ();
@@ -43,6 +43,11 @@ foreach my $o (sort keys %$opt) {
is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
}
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "3e7b4513cd80c6ef00fcd77e5e16f8b4";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
is_deeply ($conf->{build}{patches}, [], "No local patches");
my %check = (
diff --git a/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm b/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm
index 9b1f9577386..5f4b764bc98 100644
--- a/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm
+++ b/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm
@@ -2,7 +2,7 @@
#
# Written by Paul Marquess (pmqs@cpan.org)
#
-# Copyright (c) 1995-2014 Paul Marquess. All rights reserved.
+# Copyright (c) 1995-2016 Paul Marquess. All rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
@@ -163,7 +163,7 @@ our ($db_version, $use_XSLoader, $splice_end_array_no_length, $splice_end_array,
use Carp;
-$VERSION = "1.835" ;
+$VERSION = "1.840" ;
$VERSION = eval $VERSION; # needed for dev releases
{
@@ -1771,9 +1771,30 @@ R_RECNOSYNC is the only valid flag at present.
=head1 DBM FILTERS
-A DBM Filter is a piece of code that is be used when you I<always>
-want to make the same transformation to all keys and/or values in a
-DBM database.
+A DBM Filter is a piece of code that is be used when you I<always> want to
+make the same transformation to all keys and/or values in a DBM database.
+An example is when you need to encode your data in UTF-8 before writing to
+the database and then decode the UTF-8 when reading from the database file.
+
+There are two ways to use a DBM Filter.
+
+=over 5
+
+=item 1.
+
+Using the low-level API defined below.
+
+=item 2.
+
+Using the L<DBM_Filter> module.
+This module hides the complexity of the API defined below and comes
+with a number of "canned" filters that cover some of the common use-cases.
+
+=back
+
+Use of the L<DBM_Filter> module is recommended.
+
+=head2 DBM Filter Low-level API
There are four methods associated with DBM Filters. All work identically,
and each is used to install (or uninstall) a single DBM Filter. Each
@@ -2182,6 +2203,29 @@ can layer transparently over B<DB_File> to accomplish this feat.
Check out the MLDBM module, available on CPAN in the directory
F<modules/by-module/MLDBM>.
+=head2 What does "wide character in subroutine entry" mean?
+
+You will usually get this message if you are working with UTF-8 data and
+want to read/write it from/to a Berkeley DB database file.
+
+The easist way to deal with this issue is to use the pre-defined "utf8"
+B<DBM_Filter> (see L<DBM_Filter>) that was designed to deal with this
+situation.
+
+The example below shows what you need if I<both> the key and value are
+expected to be in UTF-8.
+
+ use DB_File;
+ use DBM_Filter;
+
+ my $db = tie %h, 'DB_File', '/tmp/try.db', O_CREAT|O_RDWR, 0666, $DB_BTREE;
+ $db->Filter_Key_Push('utf8');
+ $db->Filter_Value_Push('utf8');
+
+ my $key = "\N{LATIN SMALL LETTER A WITH ACUTE}";
+ my $value = "\N{LATIN SMALL LETTER E WITH ACUTE}";
+ $h{ $key } = $value;
+
=head2 What does "Invalid Argument" mean?
You will get this error message when one of the parameters in the
@@ -2273,7 +2317,7 @@ archive in F<src/misc/db.1.85.tar.gz>.
=head1 COPYRIGHT
-Copyright (c) 1995-2012 Paul Marquess. All rights reserved. This program
+Copyright (c) 1995-2016 Paul Marquess. All rights reserved. This program
is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.
@@ -2300,7 +2344,7 @@ Berkeley DB authors or the author of DB_File. See L<"AUTHOR"> for details.
=head1 SEE ALSO
L<perl>, L<dbopen(3)>, L<hash(3)>, L<recno(3)>, L<btree(3)>,
-L<perldbmfilter>
+L<perldbmfilter>, L<DBM_Filter>
=head1 AUTHOR
diff --git a/gnu/usr.bin/perl/cpan/DB_File/DB_File.xs b/gnu/usr.bin/perl/cpan/DB_File/DB_File.xs
index 151ec31dc64..04c8f74adb1 100644
--- a/gnu/usr.bin/perl/cpan/DB_File/DB_File.xs
+++ b/gnu/usr.bin/perl/cpan/DB_File/DB_File.xs
@@ -6,7 +6,7 @@
All comments/suggestions/problems are welcome
- Copyright (c) 1995-2014 Paul Marquess. All rights reserved.
+ Copyright (c) 1995-2016 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
@@ -270,7 +270,7 @@ typedef db_recno_t recno_t;
#if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 5
# define R_SETCURSOR 0x800000
#else
-# define R_SETCURSOR (-100)
+# define R_SETCURSOR (DB_OPFLAGS_MASK)
#endif
#define R_RECNOSYNC 0
@@ -536,7 +536,6 @@ u_int flags ;
if (flagSet(flags, R_CURSOR)) {
return ((db->cursor)->c_put)(db->cursor, &key, &value, DB_CURRENT);
}
-
if (flagSet(flags, R_SETCURSOR)) {
if ((db->dbp)->put(db->dbp, NULL, &key, &value, 0) != 0)
return -1 ;
@@ -608,6 +607,9 @@ const DBT * key2 ;
#ifdef AT_LEAST_DB_3_2
PERL_UNUSED_ARG(db);
#endif
+#ifdef AT_LEAST_DB_6_0
+ PERL_UNUSED_ARG(locp);
+#endif
if (CurrentDB->in_compare) {
tidyUp(CurrentDB);
@@ -1437,10 +1439,10 @@ SV * sv ;
value = (int)SvIV(*svp) ;
if (fixed) {
- status = dbp->set_re_pad(dbp, value) ;
+ (void)dbp->set_re_pad(dbp, value) ;
}
else {
- status = dbp->set_re_delim(dbp, value) ;
+ (void)dbp->set_re_delim(dbp, value) ;
}
}
@@ -1449,12 +1451,12 @@ SV * sv ;
svp = hv_fetch(action, "reclen", 6, FALSE);
if (svp) {
u_int32_t len = my_SvUV32(*svp) ;
- status = dbp->set_re_len(dbp, len) ;
+ (void)dbp->set_re_len(dbp, len) ;
}
}
if (name != NULL) {
- status = dbp->set_re_source(dbp, name) ;
+ (void)dbp->set_re_source(dbp, name) ;
name = NULL ;
}
@@ -1467,7 +1469,7 @@ SV * sv ;
name = NULL ;
- status = dbp->set_flags(dbp, (u_int32_t)DB_RENUMBER) ;
+ (void)dbp->set_flags(dbp, (u_int32_t)DB_RENUMBER) ;
if (flags){
(void)dbp->set_flags(dbp, (u_int32_t)flags) ;
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/HACKERS b/gnu/usr.bin/perl/cpan/Devel-PPPort/HACKERS
deleted file mode 100644
index c5fe0ed47c1..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/HACKERS
+++ /dev/null
@@ -1,325 +0,0 @@
-=head1 NAME
-
-HACKERS - Devel::PPPort internals for hackers
-
-=head1 SYNOPSIS
-
-So you probably want to hack C<Devel::PPPort>?
-
-Well, here's some information to get you started with what's
-lying around in this distribution.
-
-=head1 DESCRIPTION
-
-=head2 How to build 366 versions of Perl
-
-C<Devel::PPPort> supports Perl versions between 5.003 and bleadperl.
-To guarantee this support, I need some of these versions on my
-machine. I currently have 366 different Perl version/configuration
-combinations installed on my laptop.
-
-As many of the old Perl distributions need patching to compile
-cleanly on newer systems (and because building 366 Perls by hand
-just isn't fun), I wrote a tool to build all the different
-versions and configurations. You can find it in F<devel/buildperl.pl>.
-It can currently build the following Perl releases:
-
- 5.003
- 5.004 - 5.004_05
- 5.005 - 5.005_04
- 5.6.x
- 5.7.x
- 5.8.x
- 5.9.x
- 5.1x.x
-
-=head2 Fully automatic API checks
-
-Knowing which parts of the API are not backwards compatible and
-probably need C<Devel::PPPort> support is another problem that's
-not easy to deal with manually. If you run
-
- perl Makefile.PL --with-apicheck
-
-a C file is generated by F<parts/apicheck.pl> that is compiled
-and linked with C<Devel::PPPort>. This C file has the purpose of
-using each of the public API functions/macros once.
-
-The required information is derived from C<parts/embed.fnc> (just
-a copy of bleadperl's C<embed.fnc>), C<parts/apidoc.fnc> (which
-is generated by F<devel/mkapidoc.sh> and simply collects the rest
-of the apidoc entries spread over the Perl source code) and
-C<parts/ppport.fnc> (which lists all API provided purely by
-Devel::PPPort).
-The generated C file C<apicheck.c> is currently about 500k in size
-and takes quite a while to compile.
-
-Usually, C<apicheck.c> won't compile with older perls. And even if
-it compiles, there's still a good chance of the dynamic linker
-failing at C<make test> time. But that's on purpose!
-
-We can use these failures to find changes in the API automatically.
-The two Perl scripts F<devel/mktodo> and F<devel/mktodo.pl>
-repeatedly run C<Devel::PPPort> with the apicheck code through
-all different versions of perl. Scanning the output of the compiler
-and the dynamic linker for errors, the files in F<parts/todo/> are
-generated. These files list all parts of the public API that don't
-work with less than a certain version of Perl.
-
-This information is in turn used by F<parts/apicheck.pl> to mask
-API calls in the generated C file for these versions, so the
-process can be stopped by the time F<apicheck.c> compiles cleanly
-and the dynamic linker is happy. (Actually, this process may generate
-false positives, so by default each API call is checked once more
-afterwards.)
-
-Running C<devel/mktodo> takes about an hour, depending of course
-on the machine you're running it on. If you run it with
-the C<--nocheck> option, it won't recheck the API calls that failed
-in the compilation stage and it'll take significantly less time.
-Running with C<--nocheck> should usually be safe.
-
-When running C<devel/mktodo> with the C<--base> option, it will
-generate the I<baseline> todo files by disabling all functionality
-provided by C<Devel::PPPort>. These are required for implementing
-the C<--compat-version> option of the C<ppport.h> script. The
-baseline todo files hold the information about which version of
-Perl lacks a certain part of the API.
-
-However, only the documented public API can be checked this way.
-And since C<Devel::PPPort> provides more macros, these would not be
-affected by C<--compat-version>. It's the job of F<devel/scanprov>
-to figure out the baseline information for all remaining provided
-macros by scanning the include files in the F<CORE> directory of
-various Perl versions.
-
-The whole process isn't platform independent. It has currently been
-tested only under Linux, and it definitely requires at least C<gcc> and
-the C<nm> utility.
-
-It's not very often that one has to regenerate the baseline and todo
-files. If you have to, you can either run F<devel/regenerate> or just
-execute the following steps by hand:
-
-=over 4
-
-=item *
-
-You need a whole bunch of different Perls. The more, the better.
-You can use F<devel/buildperl.pl> to build them. I keep my perls
-in F</tmp/perl>, so most of the tools take this as a default.
-
-=item *
-
-You also need a freshly built bleadperl that is in the path under
-exactly this name. (The name of the executable is currently hardcoded
-in F<devel/mktodo> and F<devel/scanprov>.)
-
-=item *
-
-Remove all existing todo files in the F<parts/base> and
-F<parts/todo> directories.
-
-=item *
-
-Update the API information. Copy the latest F<embed.fnc> file from
-bleadperl to the F<parts> directory and run F<devel/mkapidoc.sh> to
-collect the remaining information in F<parts/apidoc.fnc>.
-
-=item *
-
-Build the new baseline by running
-
- perl devel/mktodo --base
-
-in the root directory of the distribution. When it's finished,
-move all files from the F<parts/todo> directory to F<parts/base>.
-
-=item *
-
-Build the new todo files by running
-
- perl devel/mktodo
-
-in the root directory of the distribution.
-
-=item *
-
-Finally, add the remaining baseline information by running
-
- perl Makefile.PL && make
- perl devel/scanprov --mode=write
-
-=back
-
-=head2 Implementation
-
-Residing in F<parts/inc/> is the "heart" of C<Devel::PPPort>. Each
-of the files implements a part of the supported API, along with
-hints, dependency information, XS code and tests.
-The files are in a POD-like format that is parsed using the
-functions in F<parts/ppptools.pl>.
-
-The scripts F<PPPort_pm.PL>, F<PPPort_xs.PL> and F<mktests.PL> all
-use the information in F<parts/inc/> to generate the main module
-F<PPPort.pm>, the XS code in F<RealPPPort.xs> and various test files
-in F<t/>.
-
-All of these files could be generated on the fly while building
-C<Devel::PPPort>, but not having the tests in C<t/> will confuse
-TEST/harness in the core. Not having F<PPPort.pm> will be bad for
-viewing the docs on C<search.cpan.org>. So unfortunately, it's
-unavoidable to put some redundancy into the package.
-
-=head2 Adding stuff to Devel::PPPort
-
-First, check if the code you plan to add fits into one of the
-existing files in F<parts/inc/>. If not, just start a new one and
-remember to include it from within F<PPPort_pm.PL>.
-
-Each file holds all relevant data for implementing a certain part
-of the API:
-
-=over 2
-
-=item *
-
-A list of the provided API in the C<=provides> section.
-
-=item *
-
-The implementation to add to F<ppport.h> in the C<=implementation>
-section.
-
-=item *
-
-The code required to add to PPPort.xs for testing the implementation.
-This code goes into the C<=xshead>, C<=xsinit>, C<=xsmisc>, C<=xsboot>
-and C<=xsubs> section. Have a look at the template at the bottom
-of F<PPPort_xs.PL> to see where the code ends up.
-
-=item *
-
-The tests in the C<=tests> section. Remember not to use any fancy
-modules or syntax elements, as the test code should be able to run
-with Perl 5.003, which, for example, doesn't support C<my> in
-C<for>-loops:
-
- for my $x (1, 2, 3) { } # won't work with 5.003
-
-You can use C<ok()> to report success or failure:
-
- ok($got == 42);
- ok($got, $expected);
-
-Regular expressions are not supported as the second argument to C<ok>,
-because older perls do not support the C<qr> operator.
-
-=back
-
-It's usually the best approach to just copy an existing file and
-use it as a template.
-
-=head2 Implementation Hints
-
-In the C<=implementation> section, you can use
-
- __UNDEFINED__ macro some definition
-
-instead of
-
- #ifndef macro
- # define macro some definition
- #endif
-
-The macro can have optional arguments and the definition can even
-span multiple lines, like in
-
- __UNDEFINED__ SvMAGIC_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
- (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END
-
-This usually makes the code more compact and readable. And you
-only have to add C<__UNDEFINED__> to the C<=provided> section.
-
-Version checking can be tricky if you want to do it correct.
-You can use
-
- #if { VERSION < 5.9.3 }
-
-instead of
-
- #if ((PERL_VERSION < 9) || (PERL_VERSION == 9 && PERL_SUBVERSION < 3))
-
-The version number can be either of the new form C<5.x.x> or of the older
-form C<5.00x_yy>. Both are translated into the correct preprocessor
-statements. It is also possible to combine this with other statements:
-
- #if { VERSION >= 5.004 } && !defined(sv_vcatpvf)
- /* a */
- #elif { VERSION < 5.004_63 } && { VERSION != 5.004_05 }
- /* b */
- #endif
-
-This not only works in the C<=implementation> section, but also in
-the C<=xsubs>, C<=xsinit>, C<=xsmisc>, C<=xshead> and C<=xsboot> sections.
-
-=head2 Testing
-
-To automatically test C<Devel::PPPort> with lots of different Perl
-versions, you can use the F<soak> script. Just pass it a list of
-all Perl binaries you want to test.
-
-=head2 Special Makefile targets
-
-You can use
-
- make regen
-
-to regenerate all of the autogenerated files. To get rid of all
-generated files (except for F<parts/todo/*> and F<parts/base/*>),
-use
-
- make purge_all
-
-That's it.
-
-=head2 Submitting Patches
-
-If you've added some functionality to C<Devel::PPPort>, please
-consider submitting a patch with your work to GitHub here:
-L<https://github.com/mhx/Devel-PPPort/issues/>, or by sending a
-Pull Request.
-
-When submitting patches, please only add the relevant changes
-and don't include the differences of the generated files. You
-can use the C<purge_all> target to delete all autogenerated
-files.
-
-=head2 Integrating into the Perl core
-
-When integrating this module into the Perl core, be sure to
-remove the following files from the distribution. They are
-either not needed or generated on the fly when building this
-module in the core:
-
- MANIFEST
- META.yml
- PPPort.pm
-
-=head1 COPYRIGHT
-
-Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-
-Version 2.x, Copyright (C) 2001, Paul Marquess.
-
-Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-See L<ppport.h> and L<devel/regenerate>.
-
-=cut
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/Makefile.PL b/gnu/usr.bin/perl/cpan/Devel-PPPort/Makefile.PL
deleted file mode 100644
index 25e352e641e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/Makefile.PL
+++ /dev/null
@@ -1,154 +0,0 @@
-################################################################################
-#
-# Makefile.PL -- generate Makefile
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-require 5.003;
-
-use strict;
-use ExtUtils::MakeMaker;
-
-use vars '%opt'; # needs to be global, and we can't use 'our'
-
-unless ($ENV{'PERL_CORE'}) {
- $ENV{'PERL_CORE'} = 1 if grep { $_ eq 'PERL_CORE=1' } @ARGV;
-}
-
-@ARGV = map { /^--with-(apicheck)$/ && ++$opt{$1} ? () : $_ } @ARGV;
-
-WriteMakefile(
- NAME => 'Devel::PPPort',
- VERSION_FROM => 'PPPort_pm.PL',
- PM => { 'PPPort.pm' => '$(INST_LIBDIR)/PPPort.pm' },
- H => [ qw(ppport.h) ],
- OBJECT => 'RealPPPort$(OBJ_EXT) $(O_FILES)',
- XSPROTOARG => '-noprototypes',
- CONFIGURE => \&configure,
- META_MERGE => {
- 'meta-spec' => {
- version => 2,
- },
- resources => {
- bugtracker => {
- web => 'https://github.com/mhx/Devel-PPPort/issues/',
- },
- repository => {
- type => 'git',
- url => 'git://github.com/mhx/Devel-PPPort.git',
- web => 'https://github.com/mhx/Devel-PPPort/',
- },
- },
- },
-);
-
-sub configure
-{
- my @clean = qw{ $(H_FILES) RealPPPort.xs RealPPPort.c };
- my %depend = ('$(OBJECT)' => '$(H_FILES)');
- my @C_FILES = qw{ module2.c module3.c },
- my %PL_FILES = (
- 'ppport_h.PL' => 'ppport.h',
- 'PPPort_pm.PL' => 'PPPort.pm',
- 'PPPort_xs.PL' => 'RealPPPort.xs',
- );
- my @moreopts;
-
- if (eval $ExtUtils::MakeMaker::VERSION >= 6) {
- push @moreopts, AUTHOR => 'Marcus Holland-Moritz <mhx@cpan.org>';
- if (-f 'PPPort.pm') {
- push @moreopts, ABSTRACT_FROM => 'PPPort.pm';
- }
- }
-
- if (eval $ExtUtils::MakeMaker::VERSION >= 6.30_01) {
- print "Setting license tag...\n";
- push @moreopts, LICENSE => 'perl';
- }
-
- if ($ENV{'PERL_CORE'}) {
- # Pods will be built by installman.
- push @clean, 'PPPort.pm';
- }
- else {
- # Devel::PPPort is in the core since 5.7.3
- # 5.11.0+ has site before perl
- push @moreopts, INSTALLDIRS => (
- ($] >= 5.007003 and $] < 5.011)
- ? 'perl'
- : 'site'
- );
- }
-
- if ($opt{'apicheck'}) {
- $PL_FILES{'apicheck_c.PL'} = 'apicheck.c';
- push @C_FILES, qw{ apicheck.c };
- push @clean, qw{ apicheck.c apicheck.i };
- $depend{'apicheck.i'} = 'ppport.h';
- }
-
- return {
- C => \@C_FILES,
- XS => { 'RealPPPort.xs' => 'RealPPPort.c' },
- PL_FILES => \%PL_FILES,
- depend => \%depend,
- clean => { FILES => "@clean" },
- @moreopts,
- };
-}
-
-sub MY::postamble
-{
- package MY;
- my $post = shift->SUPER::postamble(@_);
- $post .= <<'POSTAMBLE';
-
-purge_all: realclean
- @$(RM_F) PPPort.pm t/*.t
-
-regen_pm:
- $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) PPPort_pm.PL
-
-regen_xs:
- $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) PPPort_xs.PL
-
-regen_tests:
- $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) mktests.PL
-
-regen_h:
- $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) ppport_h.PL
-
-regen: regen_pm regen_xs regen_tests regen_h
-
-POSTAMBLE
- return $post;
-}
-
-sub MY::c_o
-{
- package MY;
- my $co = shift->SUPER::c_o(@_);
-
- if ($::opt{'apicheck'} && $co !~ /^\.c\.i:/m) {
- print "Adding custom rule for preprocessed apicheck file...\n";
-
- $co .= <<'CO'
-
-.SUFFIXES: .i
-
-.c.i:
- $(CCCMD) -E -I$(PERL_INC) $(DEFINE) $*.c > $*.i
-CO
- }
-
- return $co;
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort.xs b/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort.xs
deleted file mode 100644
index 2586824ebb0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort.xs
+++ /dev/null
@@ -1,3 +0,0 @@
-This is just a dummy file to let Configure know that Devel::PPPort
-is an XS module. The real XS code is autogenerated from PPPort_xs.PL
-when this module is built and will go to RealPPPort.xs.
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort_pm.PL b/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort_pm.PL
deleted file mode 100644
index 0bee17ab548..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort_pm.PL
+++ /dev/null
@@ -1,679 +0,0 @@
-################################################################################
-#
-# PPPort_pm.PL -- generate PPPort.pm
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-$^W = 1;
-require "parts/ppptools.pl";
-
-my $INCLUDE = 'parts/inc';
-my $DPPP = 'DPPP_';
-
-my %embed = map { ( $_->{name} => $_ ) }
- parse_embed(qw(parts/embed.fnc parts/apidoc.fnc parts/ppport.fnc));
-
-my(%provides, %prototypes, %explicit);
-
-my $data = do { local $/; <DATA> };
-$data =~ s{^\%(include)\s+(\w+)((?:[^\S\r\n]+.*?)?)\s*$}
- {eval "$1('$2', $3)" or die $@}gem;
-
-$data = expand($data);
-
-my @api = sort { lc $a cmp lc $b or $a cmp $b } keys %provides;
-
-$data =~ s{^(.*)__PROVIDED_API__(\s*?)^}
- {join '', map "$1$_\n", @api}gem;
-
-{
- my $len = 0;
- for (keys %explicit) {
- length > $len and $len = length;
- }
- my $format = sprintf '%%-%ds %%-%ds %%s', $len+2, $len+5;
- $len = 3*$len + 23;
-
-$data =~ s!^(.*)__EXPLICIT_API__(\s*?)^!
- sprintf("$1$format\n", 'Function / Variable', 'Static Request', 'Global Request') .
- $1 . '-'x$len . "\n" .
- join('', map { sprintf "$1$format\n", $explicit{$_} eq 'var' ? $_ : "$_()", "NEED_$_", "NEED_${_}_GLOBAL" }
- sort keys %explicit)
- !gem;
-}
-
-my %raw_base = %{&parse_todo('parts/base')};
-my %raw_todo = %{&parse_todo('parts/todo')};
-
-my %todo;
-for (keys %raw_todo) {
- push @{$todo{$raw_todo{$_}}}, $_;
-}
-
-# check consistency
-for (@api) {
- if (exists $raw_todo{$_} and exists $raw_base{$_}) {
- if ($raw_base{$_} eq $raw_todo{$_}) {
- warn "$INCLUDE/$provides{$_} provides $_, which is still marked "
- . "todo for " . format_version($raw_todo{$_}) . "\n";
- }
- else {
- check(2, "$_ was ported back to " . format_version($raw_todo{$_}) .
- " (baseline revision: " . format_version($raw_base{$_}) . ").");
- }
- }
-}
-
-my @perl_api;
-for (keys %provides) {
- next if /^Perl_(.*)/ && exists $embed{$1};
- next if exists $embed{$_};
- push @perl_api, $_;
- check(2, "No API definition for provided element $_ found.");
-}
-
-push @perl_api, keys %embed;
-
-for (@perl_api) {
- if (exists $provides{$_} && !exists $raw_base{$_}) {
- check(2, "Mmmh, $_ doesn't seem to need backporting.");
- }
- my $line = "$_|" . (exists $provides{$_} && exists $raw_base{$_} ? $raw_base{$_} : '') . '|';
- $line .= ($raw_todo{$_} || '') . '|';
- $line .= 'p' if exists $provides{$_};
- if (exists $embed{$_}) {
- my $e = $embed{$_};
- if (exists $e->{flags}{p}) {
- my $args = $e->{args};
- $line .= 'v' if @$args && $args->[-1][0] eq '...';
- }
- $line .= 'n' if exists $e->{flags}{n};
- }
- $_ = $line;
-}
-
-$data =~ s/^([\t ]*)__PERL_API__(\s*?)$/
- join "\n", map "$1$_", sort @perl_api
- /gem;
-
-my @todo;
-for (reverse sort keys %todo) {
- my $ver = format_version($_);
- my $todo = "=item perl $ver\n\n";
- for (sort @{$todo{$_}}) {
- $todo .= " $_\n";
- }
- push @todo, $todo;
-}
-
-$data =~ s{^__UNSUPPORTED_API__(\s*?)^}
- {join "\n", @todo}gem;
-
-$data =~ s{__MIN_PERL__}{5.003}g;
-$data =~ s{__MAX_PERL__}{5.20}g;
-
-open FH, ">PPPort.pm" or die "PPPort.pm: $!\n";
-print FH $data;
-close FH;
-
-exit 0;
-
-sub include
-{
- my($file, $opt) = @_;
-
- print "including $file\n";
-
- my $data = parse_partspec("$INCLUDE/$file");
-
- for (@{$data->{provides}}) {
- if (exists $provides{$_}) {
- if ($provides{$_} ne $file) {
- warn "$file: $_ already provided by $provides{$_}\n";
- }
- }
- else {
- $provides{$_} = $file;
- }
- }
-
- for (keys %{$data->{prototypes}}) {
- $prototypes{$_} = $data->{prototypes}{$_};
- $data->{implementation} =~ s/^$_(?=\s*\()/$DPPP(my_$_)/mg;
- }
-
- my $out = $data->{implementation};
-
- if (exists $opt->{indent}) {
- $out =~ s/^/$opt->{indent}/gm;
- }
-
- return $out;
-}
-
-sub expand
-{
- my $code = shift;
- $code =~ s{^(\s*#\s*(?:el)?if\s+)(.*)$}{$1.expand_pp_expressions($2)}gem;
- $code =~ s{^\s*
- __UNDEFINED__
- \s+
- (
- ( \w+ )
- (?: \( [^)]* \) )?
- )
- [^\r\n\S]*
- (
- (?:[^\r\n\\]|\\[^\r\n])*
- (?:
- \\
- (?:\r\n|[\r\n])
- (?:[^\r\n\\]|\\[^\r\n])*
- )*
- )
- \s*$}
- {expand_undefined($2, $1, $3)}gemx;
- $code =~ s{^([^\S\r\n]*)__NEED_VAR__\s+(.*?)\s+(\w+)(?:\s*=\s*([^;]+?))?\s*;\s*$}
- {expand_need_var($1, $3, $2, $4)}gem;
- $code =~ s{^([^\S\r\n]*)__NEED_DUMMY_VAR__\s+(.*?)\s+(\w+)(?:\s*=\s*([^;]+?))?\s*;\s*$}
- {expand_need_dummy_var($1, $3, $2, $4)}gem;
- return $code;
-}
-
-sub expand_need_var
-{
- my($indent, $var, $type, $init) = @_;
-
- $explicit{$var} = 'var';
-
- my $myvar = "$DPPP(my_$var)";
- $init = defined $init ? " = $init" : "";
-
- my $code = <<ENDCODE;
-#if defined(NEED_$var)
-static $type $myvar$init;
-#elif defined(NEED_${var}_GLOBAL)
-$type $myvar$init;
-#else
-extern $type $myvar;
-#endif
-#define $var $myvar
-ENDCODE
-
- $code =~ s/^/$indent/mg;
-
- return $code;
-}
-
-sub expand_need_dummy_var
-{
- my($indent, $var, $type, $init) = @_;
-
- $explicit{$var} = 'var';
-
- my $myvar = "$DPPP(dummy_$var)";
- $init = defined $init ? " = $init" : "";
-
- my $code = <<ENDCODE;
-#if defined(NEED_$var)
-static $type $myvar$init;
-#elif defined(NEED_${var}_GLOBAL)
-$type $myvar$init;
-#else
-extern $type $myvar;
-#endif
-ENDCODE
-
- $code =~ s/^/$indent/mg;
-
- return $code;
-}
-
-sub expand_undefined
-{
- my($macro, $withargs, $def) = @_;
- my $rv = "#ifndef $macro\n# define ";
-
- if (defined $def && $def =~ /\S/) {
- $rv .= sprintf "%-30s %s", $withargs, $def;
- }
- else {
- $rv .= $withargs;
- }
-
- $rv .= "\n#endif\n";
-
- return $rv;
-}
-
-sub expand_pp_expressions
-{
- my $pp = shift;
- $pp =~ s/\{([^\}]+)\}/expand_pp_expr($1)/ge;
- return $pp;
-}
-
-sub expand_pp_expr
-{
- my $expr = shift;
-
- if ($expr =~ /^\s*need\s+(\w+)\s*$/i) {
- my $func = $1;
- my $e = $embed{$func} or die "unknown API function '$func' in NEED\n";
- my $proto = make_prototype($e);
- if (exists $prototypes{$func}) {
- if (compare_prototypes($proto, $prototypes{$func})) {
- check(1, "differing prototypes for $func:\n API: $proto\n PPP: $prototypes{$func}");
- $proto = $prototypes{$func};
- }
- }
- else {
- warn "found no prototype for $func\n";;
- }
-
- $explicit{$func} = 'func';
-
- $proto =~ s/\b$func(?=\s*\()/$DPPP(my_$func)/;
- my $embed = make_embed($e);
-
- return "defined(NEED_$func)\n"
- . "static $proto;\n"
- . "static\n"
- . "#else\n"
- . "extern $proto;\n"
- . "#endif\n"
- . "\n"
- . "$embed\n"
- . "\n"
- . "#if defined(NEED_$func) || defined(NEED_${func}_GLOBAL)";
- }
-
- die "cannot expand preprocessor expression '$expr'\n";
-}
-
-sub make_embed
-{
- my $f = shift;
- my $n = $f->{name};
- my $a = do { my $x = 'a'; join ',', map { $x++ } 1 .. @{$f->{args}} };
- my $lastarg = ${$f->{args}}[-1];
-
- if ($f->{flags}{n}) {
- if ($f->{flags}{p}) {
- return "#define $n $DPPP(my_$n)\n" .
- "#define Perl_$n $DPPP(my_$n)";
- }
- else {
- return "#define $n $DPPP(my_$n)";
- }
- }
- else {
- my $undef = <<UNDEF;
-#ifdef $n
-# undef $n
-#endif
-UNDEF
- if ($f->{flags}{p}) {
- if ($f->{flags}{f}) {
- return "#define Perl_$n $DPPP(my_$n)";
- }
- elsif (@$lastarg && $lastarg->[0] =~ /\.\.\./) {
- return $undef . "#define $n $DPPP(my_$n)\n" .
- "#define Perl_$n $DPPP(my_$n)";
- }
- else {
- return $undef . "#define $n($a) $DPPP(my_$n)(aTHX_ $a)\n" .
- "#define Perl_$n $DPPP(my_$n)";
- }
- }
- else {
- return $undef . "#define $n($a) $DPPP(my_$n)(aTHX_ $a)";
- }
- }
-}
-
-sub check
-{
- my $level = shift;
-
- if (exists $ENV{DPPP_CHECK_LEVEL} and $ENV{DPPP_CHECK_LEVEL} >= $level) {
- print STDERR @_, "\n";
- }
-}
-
-__DATA__
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! -- Edit PPPort_pm.PL instead. !!!!!
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by PPPort_pm.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-#
-# Perl/Pollution/Portability
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-=head1 NAME
-
-Devel::PPPort - Perl/Pollution/Portability
-
-=head1 SYNOPSIS
-
- Devel::PPPort::WriteFile(); # defaults to ./ppport.h
- Devel::PPPort::WriteFile('someheader.h');
-
- # Same as above but retrieve contents rather than write file
- my $contents = Devel::PPPort::GetFileContents();
- my $contents = Devel::PPPort::GetFileContents('someheader.h');
-
-=head1 DESCRIPTION
-
-Perl's API has changed over time, gaining new features, new functions,
-increasing its flexibility, and reducing the impact on the C namespace
-environment (reduced pollution). The header file written by this module,
-typically F<ppport.h>, attempts to bring some of the newer Perl API
-features to older versions of Perl, so that you can worry less about
-keeping track of old releases, but users can still reap the benefit.
-
-C<Devel::PPPort> contains two functions, C<WriteFile> and C<GetFileContents>.
-C<WriteFile>'s only purpose is to write the F<ppport.h> C header file.
-This file contains a series of macros and, if explicitly requested, functions
-that allow XS modules to be built using older versions of Perl. Currently,
-Perl versions from __MIN_PERL__ to __MAX_PERL__ are supported.
-
-C<GetFileContents> can be used to retrieve the file contents rather than
-writing it out.
-
-This module is used by C<h2xs> to write the file F<ppport.h>.
-
-=head2 Why use ppport.h?
-
-You should use F<ppport.h> in modern code so that your code will work
-with the widest range of Perl interpreters possible, without significant
-additional work.
-
-You should attempt older code to fully use F<ppport.h>, because the
-reduced pollution of newer Perl versions is an important thing. It's so
-important that the old polluting ways of original Perl modules will not be
-supported very far into the future, and your module will almost certainly
-break! By adapting to it now, you'll gain compatibility and a sense of
-having done the electronic ecology some good.
-
-=head2 How to use ppport.h
-
-Don't direct the users of your module to download C<Devel::PPPort>.
-They are most probably no XS writers. Also, don't make F<ppport.h>
-optional. Rather, just take the most recent copy of F<ppport.h> that
-you can find (e.g. by generating it with the latest C<Devel::PPPort>
-release from CPAN), copy it into your project, adjust your project to
-use it, and distribute the header along with your module.
-
-=head2 Running ppport.h
-
-But F<ppport.h> is more than just a C header. It's also a Perl script
-that can check your source code. It will suggest hints and portability
-notes, and can even make suggestions on how to change your code. You
-can run it like any other Perl program:
-
- perl ppport.h [options] [files]
-
-It also has embedded documentation, so you can use
-
- perldoc ppport.h
-
-to find out more about how to use it.
-
-=head1 FUNCTIONS
-
-=head2 WriteFile
-
-C<WriteFile> takes one optional argument. When called with one
-argument, it expects to be passed a filename. When called with
-no arguments, it defaults to the filename F<ppport.h>.
-
-The function returns a true value if the file was written successfully.
-Otherwise it returns a false value.
-
-=head2 GetFileContents
-
-C<GetFileContents> behaves like C<WriteFile> above, but returns the contents
-of the would-be file rather than writing it out.
-
-=head1 COMPATIBILITY
-
-F<ppport.h> supports Perl versions from __MIN_PERL__ to __MAX_PERL__
-in threaded and non-threaded configurations.
-
-=head2 Provided Perl compatibility API
-
-The header file written by this module, typically F<ppport.h>, provides
-access to the following elements of the Perl API that is not available
-in older Perl releases:
-
- __PROVIDED_API__
-
-=head2 Perl API not supported by ppport.h
-
-There is still a big part of the API not supported by F<ppport.h>.
-Either because it doesn't make sense to back-port that part of the API,
-or simply because it hasn't been implemented yet. Patches welcome!
-
-Here's a list of the currently unsupported API, and also the version of
-Perl below which it is unsupported:
-
-=over 4
-
-__UNSUPPORTED_API__
-
-=back
-
-=head1 BUGS
-
-If you find any bugs, C<Devel::PPPort> doesn't seem to build on your
-system, or any of its tests fail, please file an issue here:
-L<https://github.com/mhx/Devel-PPPort/issues/>
-
-=head1 AUTHORS
-
-=over 2
-
-=item *
-
-Version 1.x of Devel::PPPort was written by Kenneth Albanowski.
-
-=item *
-
-Version 2.x was ported to the Perl core by Paul Marquess.
-
-=item *
-
-Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
-
-=item *
-
-Versions >= 3.22 are maintained with support from Matthew Horsfall (alh).
-
-=back
-
-=head1 COPYRIGHT
-
-Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-
-Version 2.x, Copyright (C) 2001, Paul Marquess.
-
-Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-See L<h2xs>, L<ppport.h>.
-
-=cut
-
-package Devel::PPPort;
-
-use strict;
-use vars qw($VERSION $data);
-
-$VERSION = '3.32';
-
-sub _init_data
-{
- $data = do { local $/; <DATA> };
- my $pkg = 'Devel::PPPort';
- $data =~ s/__PERL_VERSION__/$]/g;
- $data =~ s/__VERSION__/$VERSION/g;
- $data =~ s/__PKG__/$pkg/g;
- $data =~ s/^\|>//gm;
-}
-
-sub GetFileContents {
- my $file = shift || 'ppport.h';
- defined $data or _init_data();
- my $copy = $data;
- $copy =~ s/\bppport\.h\b/$file/g;
-
- return $copy;
-}
-
-sub WriteFile
-{
- my $file = shift || 'ppport.h';
- my $data = GetFileContents($file);
- open F, ">$file" or return undef;
- print F $data;
- close F;
-
- return 1;
-}
-
-1;
-
-__DATA__
-#if 0
-<<'SKIP';
-#endif
-/*
-----------------------------------------------------------------------
-
- ppport.h -- Perl/Pollution/Portability Version __VERSION__
-
- Automatically created by __PKG__ running under perl __PERL_VERSION__.
-
- Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
- includes in parts/inc/ instead.
-
- Use 'perldoc ppport.h' to view the documentation below.
-
-----------------------------------------------------------------------
-
-SKIP
-
-%include ppphdoc { indent => '|>' }
-
-%include ppphbin
-
-__DATA__
-*/
-
-#ifndef _P_P_PORTABILITY_H_
-#define _P_P_PORTABILITY_H_
-
-#ifndef DPPP_NAMESPACE
-# define DPPP_NAMESPACE DPPP_
-#endif
-
-#define DPPP_CAT2(x,y) CAT2(x,y)
-#define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name)
-
-%include version
-
-%include threads
-
-%include limits
-
-%include uv
-
-%include memory
-
-%include misc
-
-%include variables
-
-%include mPUSH
-
-%include call
-
-%include newRV
-
-%include newCONSTSUB
-
-%include MY_CXT
-
-%include format
-
-%include SvREFCNT
-
-%include newSV_type
-
-%include newSVpv
-
-%include SvPV
-
-%include Sv_set
-
-%include sv_xpvf
-
-%include shared_pv
-
-%include HvNAME
-
-%include gv
-
-%include warn
-
-%include pvs
-
-%include magic
-
-%include cop
-
-%include grok
-
-%include snprintf
-
-%include sprintf
-
-%include exception
-
-%include strlfuncs
-
-%include pv_tools
-
-#endif /* _P_P_PORTABILITY_H_ */
-
-/* End of File ppport.h */
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort_xs.PL b/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort_xs.PL
deleted file mode 100644
index 5f18940ef1f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/PPPort_xs.PL
+++ /dev/null
@@ -1,128 +0,0 @@
-################################################################################
-#
-# PPPort_xs.PL -- generate RealPPPort.xs
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-$^W = 1;
-require "parts/ppptools.pl";
-
-my %SECTION = (
- xshead => { code => '', header => "/* ---- code from __FILE__ ---- */" },
- xsinit => { code => '', header => "/* ---- code from __FILE__ ---- */" },
- xsmisc => { code => '', header => "/* ---- code from __FILE__ ---- */" },
- xsboot => { code => '', header => "/* ---- code from __FILE__ ---- */", indent => "\t" },
- xsubs => { code => '', header => <<ENDHEADER },
-##----------------------------------------------------------------------
-## XSUBs for testing the implementation in __FILE__
-##----------------------------------------------------------------------
-ENDHEADER
-);
-
-if (not exists $ENV{PERL_NO_GET_CONTEXT} or $ENV{PERL_NO_GET_CONTEXT}) {
-$SECTION{xshead}{code} .= <<END;
-#define PERL_NO_GET_CONTEXT
-END
-}
-
-my $file;
-my $sec;
-
-for $file (all_files_in_dir('parts/inc')) {
- my $spec = parse_partspec($file);
-
- my $msg = 0;
- for $sec (keys %SECTION) {
- if (exists $spec->{$sec}) {
- $msg++ or print "adding XS code from $file\n";
- if (exists $SECTION{$sec}{header}) {
- my $header = $SECTION{$sec}{header};
- $header =~ s/__FILE__/$file/g;
- $SECTION{$sec}{code} .= $header . "\n";
- }
- $SECTION{$sec}{code} .= $spec->{$sec} . "\n";
- }
- }
-}
-
-my $data = do { local $/; <DATA> };
-
-for $sec (keys %SECTION) {
- my $code = $SECTION{$sec}{code};
- if (exists $SECTION{$sec}{indent}) {
- $code =~ s/^/$SECTION{$sec}{indent}/gm;
- }
- $code =~ s/[\r\n]+$//;
- $data =~ s/^__\U$sec\E__$/$code/m;
-}
-
-open FH, ">RealPPPort.xs" or die "RealPPPort.xs: $!\n";
-print FH $data;
-close FH;
-
-exit 0;
-
-__DATA__
-/*******************************************************************************
-*
-* !!!!! Do NOT edit this file directly! -- Edit PPPort_xs.PL instead. !!!!!
-*
-* This file was automatically generated from the definition files in the
-* parts/inc/ subdirectory by PPPort_xs.PL. To learn more about how all this
-* works, please read the F<HACKERS> file that came with this distribution.
-*
-********************************************************************************
-*
-* Perl/Pollution/Portability
-*
-********************************************************************************
-*
-* Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-* Version 2.x, Copyright (C) 2001, Paul Marquess.
-* Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the same terms as Perl itself.
-*
-*******************************************************************************/
-
-/* ========== BEGIN XSHEAD ================================================== */
-
-__XSHEAD__
-
-/* =========== END XSHEAD =================================================== */
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-/* ========== BEGIN XSINIT ================================================== */
-
-__XSINIT__
-
-/* =========== END XSINIT =================================================== */
-
-#include "ppport.h"
-
-/* ========== BEGIN XSMISC ================================================== */
-
-__XSMISC__
-
-/* =========== END XSMISC =================================================== */
-
-MODULE = Devel::PPPort PACKAGE = Devel::PPPort
-
-BOOT:
-__XSBOOT__
-
-__XSUBS__
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/apicheck_c.PL b/gnu/usr.bin/perl/cpan/Devel-PPPort/apicheck_c.PL
deleted file mode 100644
index c9ff8a416dc..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/apicheck_c.PL
+++ /dev/null
@@ -1,22 +0,0 @@
-################################################################################
-#
-# apicheck_c.PL -- generate apicheck.c
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-
-my $out = 'apicheck.c';
-my @api = map { /^--api=(\w+)$/ ? ($1) : () } @ARGV;
-print "creating $out", (@api ? " (@api)" : ''), "\n";
-system $^X, 'parts/apicheck.pl', @api, $out
- and die "couldn't create $out\n";
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/buildperl.pl b/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/buildperl.pl
deleted file mode 100644
index 916ed8f03da..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/buildperl.pl
+++ /dev/null
@@ -1,601 +0,0 @@
-#!/usr/bin/perl -w
-################################################################################
-#
-# buildperl.pl -- build various versions of perl automatically
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-use Getopt::Long;
-use Pod::Usage;
-use File::Find;
-use File::Path;
-use Data::Dumper;
-use IO::File;
-use Cwd;
-
-# TODO: - extra arguments to Configure
-
-#
-# --test-archives=1 check if archives can be read
-# --test-archives=2 like 1, but also extract archives
-# --test-archives=3 like 2, but also apply patches
-#
-
-my %opt = (
- prefix => '/tmp/perl/install/<config>/<perl>',
- build => '/tmp/perl/build/<config>',
- source => '/tmp/perl/source',
- force => 0,
- test => 0,
- install => 1,
- oneshot => 0,
- configure => 0,
- 'test-archives' => 0,
-);
-
-my %config = (
- default => {
- config_args => '-des',
- },
- thread => {
- config_args => '-des -Dusethreads',
- masked_versions => [ qr/^5\.00[01234]/ ],
- },
- thread5005 => {
- config_args => '-des -Duse5005threads',
- masked_versions => [ qr/^5\.00[012345]|^5\.(9|\d\d)|^5\.8\.9/ ],
- },
- debug => {
- config_args => '-des -Doptimize=-g',
- },
-);
-
-my @patch = (
- {
- perl => [
- qr/^5\.00[01234]/,
- qw/
- 5.005
- 5.005_01
- 5.005_02
- 5.005_03
- /,
- ],
- subs => [
- [ \&patch_db, 1 ],
- ],
- },
- {
- perl => [
- qw/
- 5.6.0
- 5.6.1
- 5.7.0
- 5.7.1
- 5.7.2
- 5.7.3
- 5.8.0
- /,
- ],
- subs => [
- [ \&patch_db, 3 ],
- ],
- },
- {
- perl => [
- qr/^5\.004_0[1234]$/,
- ],
- subs => [
- [ \&patch_doio ],
- ],
- },
- {
- perl => [
- qw/
- 5.005
- 5.005_01
- 5.005_02
- /,
- ],
- subs => [
- [ \&patch_sysv, old_format => 1 ],
- ],
- },
- {
- perl => [
- qw/
- 5.005_03
- 5.005_04
- /,
- qr/^5\.6\.[0-2]$/,
- qr/^5\.7\.[0-3]$/,
- qr/^5\.8\.[0-8]$/,
- qr/^5\.9\.[0-5]$/
- ],
- subs => [
- [ \&patch_sysv ],
- ],
- },
- {
- perl => [
- qr/^5\.004_05$/,
- qr/^5\.005(?:_0[1-4])?$/,
- qr/^5\.6\.[01]$/,
- ],
- subs => [
- [ \&patch_configure ],
- [ \&patch_makedepend_lc ],
- ],
- },
- {
- perl => [
- '5.8.0',
- ],
- subs => [
- [ \&patch_makedepend_lc ],
- ],
- },
-);
-
-my(%perl, @perls);
-
-GetOptions(\%opt, qw(
- config=s@
- prefix=s
- build=s
- source=s
- perl=s@
- force
- test
- install!
- test-archives=i
- patch!
- oneshot
-)) or pod2usage(2);
-
-my %current;
-
-if ($opt{patch} || $opt{oneshot}) {
- @{$opt{perl}} == 1 or die "Exactly one --perl must be given with --patch or --oneshot\n";
- my $perl = $opt{perl}[0];
- patch_source($perl) if !exists $opt{patch} || $opt{patch};
- if (exists $opt{oneshot}) {
- eval { require String::ShellQuote };
- die "--oneshot requires String::ShellQuote to be installed\n" if $@;
- %current = (config => 'oneshot', version => $perl);
- $config{oneshot} = { config_args => String::ShellQuote::shell_quote(@ARGV) };
- build_and_install($perl{$perl});
- }
- exit 0;
-}
-
-if (exists $opt{config}) {
- for my $cfg (@{$opt{config}}) {
- exists $config{$cfg} or die "Unknown configuration: $cfg\n";
- }
-}
-else {
- $opt{config} = [sort keys %config];
-}
-
-find(sub {
- /^(perl-?(5\..*))\.tar\.(gz|bz2|lzma)$/ or return;
- $perl{$1} = { version => $2, source => $File::Find::name, compress => $3 };
-}, $opt{source});
-
-if (exists $opt{perl}) {
- for my $perl (@{$opt{perl}}) {
- my $p = $perl;
- exists $perl{$p} or $p = "perl$perl";
- exists $perl{$p} or $p = "perl-$perl";
- exists $perl{$p} or die "Cannot find perl: $perl\n";
- push @perls, $p;
- }
-}
-else {
- @perls = sort keys %perl;
-}
-
-if ($opt{'test-archives'}) {
- my $test = 'test';
- my $cwd = cwd;
- -d $test or mkpath($test);
- chdir $test or die "chdir $test: $!\n";
- for my $perl (@perls) {
- eval {
- my $d = extract_source($perl{$perl});
- if ($opt{'test-archives'} > 2) {
- my $cwd2 = cwd;
- chdir $d or die "chdir $d: $!\n";
- patch_source($perl{$perl}{version});
- chdir $cwd2 or die "chdir $cwd2:$!\n"
- }
- rmtree($d) if -e $d;
- };
- warn $@ if $@;
- }
- chdir $cwd or die "chdir $cwd: $!\n";
- print STDERR "cleaning up\n";
- rmtree($test);
- exit 0;
-}
-
-for my $cfg (@{$opt{config}}) {
- for my $perl (@perls) {
- my $config = $config{$cfg};
- %current = (config => $cfg, perl => $perl, version => $perl{$perl}{version});
-
- if (is($config->{masked_versions}, $current{version})) {
- print STDERR "skipping $perl for configuration $cfg (masked)\n";
- next;
- }
-
- if (-d expand($opt{prefix}) and !$opt{force}) {
- print STDERR "skipping $perl for configuration $cfg (already installed)\n";
- next;
- }
-
- my $cwd = cwd;
-
- my $build = expand($opt{build});
- -d $build or mkpath($build);
- chdir $build or die "chdir $build: $!\n";
-
- print STDERR "building $perl with configuration $cfg\n";
- buildperl($perl, $config);
-
- chdir $cwd or die "chdir $cwd: $!\n";
- }
-}
-
-sub expand
-{
- my $in = shift;
- $in =~ s/(<(\w+)>)/exists $current{$2} ? $current{$2} : $1/eg;
- return $in;
-}
-
-sub is
-{
- my($s1, $s2) = @_;
-
- defined $s1 != defined $s2 and return 0;
-
- ref $s2 and ($s1, $s2) = ($s2, $s1);
-
- if (ref $s1) {
- if (ref $s1 eq 'ARRAY') {
- is($_, $s2) and return 1 for @$s1;
- return 0;
- }
- return $s2 =~ $s1;
- }
-
- return $s1 eq $s2;
-}
-
-sub buildperl
-{
- my($perl, $cfg) = @_;
-
- my $d = extract_source($perl{$perl});
- chdir $d or die "chdir $d: $!\n";
-
- patch_source($perl{$perl}{version});
-
- build_and_install($perl{$perl});
-}
-
-sub extract_source
-{
- eval { require Archive::Tar };
- die "Archive processing requires Archive::Tar to be installed\n" if $@;
-
- my $perl = shift;
-
- my $what = $opt{'test-archives'} ? 'test' : 'read';
- print "${what}ing $perl->{source}\n";
-
- my $target;
-
- for my $f (Archive::Tar->list_archive($perl->{source})) {
- my($t) = $f =~ /^([^\\\/]+)/ or die "ooops, should always match...\n";
- die "refusing to extract $perl->{source}, as it would not extract to a single directory\n"
- if defined $target and $target ne $t;
- $target = $t;
- }
-
- if ($opt{'test-archives'} == 0 || $opt{'test-archives'} > 1) {
- if (-d $target) {
- print "removing old build directory $target\n";
- rmtree($target);
- }
-
- print "extracting $perl->{source}\n";
-
- Archive::Tar->extract_archive($perl->{source})
- or die "extract failed: " . Archive::Tar->error() . "\n";
-
- -d $target or die "oooops, $target not found\n";
- }
-
- return $target;
-}
-
-sub patch_source
-{
- my $version = shift;
-
- for my $p (@patch) {
- if (is($p->{perl}, $version)) {
- for my $s (@{$p->{subs}}) {
- my($sub, @args) = @$s;
- $sub->(@args);
- }
- }
- }
-}
-
-sub build_and_install
-{
- my $perl = shift;
- my $prefix = expand($opt{prefix});
-
- run_or_die(q{sed -i -e "s:\\*/\\*) finc=\\"-I\\`echo \\$file | sed 's#/\\[^/\\]\\*\\$##\\`\\" ;;:*/*) finc=\\"-I\\`echo \\$file | sed 's#/[^/]\\*\\$##'\\`\\" ;;:" makedepend.SH});
-
- print "building perl $perl->{version} ($current{config})\n";
-
- run_or_die("./Configure $config{$current{config}}{config_args} -Dusedevel -Uinstallusrbinperl -Dprefix=$prefix");
- if (-f "x2p/makefile") {
- run_or_die("sed -i -e '/^.*<builtin>/d' -e '/^.*<built-in>/d' -e '/^.*<command line>/d' -e '/^.*<command-line>/d' makefile x2p/makefile");
- }
- run_or_die("make all");
- run("make test") if $opt{test};
- if ($opt{install}) {
- run_or_die("make install");
- }
- else {
- print "\n*** NOT INSTALLING PERL ***\n\n";
- }
-}
-
-sub patch_db
-{
- my $ver = shift;
- print "patching ext/DB_File/DB_File.xs\n";
- run_or_die("sed -i -e 's/<db.h>/<db$ver\\/db.h>/' ext/DB_File/DB_File.xs");
-}
-
-sub patch_doio
-{
- patch(<<'END');
---- doio.c.org 2004-06-07 23:14:45.000000000 +0200
-+++ doio.c 2003-11-04 08:03:03.000000000 +0100
-@@ -75,6 +75,16 @@
- # endif
- #endif
-
-+#if _SEM_SEMUN_UNDEFINED
-+union semun
-+{
-+ int val;
-+ struct semid_ds *buf;
-+ unsigned short int *array;
-+ struct seminfo *__buf;
-+};
-+#endif
-+
- bool
- do_open(gv,name,len,as_raw,rawmode,rawperm,supplied_fp)
- GV *gv;
-END
-}
-
-sub patch_sysv
-{
- my %opt = @_;
-
- # check if patching is required
- return if $^O ne 'linux' or -f '/usr/include/asm/page.h';
-
- if ($opt{old_format}) {
- patch(<<'END');
---- ext/IPC/SysV/SysV.xs.org 1998-07-20 10:20:07.000000000 +0200
-+++ ext/IPC/SysV/SysV.xs 2007-08-12 10:51:06.000000000 +0200
-@@ -3,9 +3,6 @@
- #include "XSUB.h"
-
- #include <sys/types.h>
--#ifdef __linux__
--#include <asm/page.h>
--#endif
- #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
- #include <sys/ipc.h>
- #ifdef HAS_MSG
-END
- }
- else {
- patch(<<'END');
---- ext/IPC/SysV/SysV.xs.org 2007-08-11 00:12:46.000000000 +0200
-+++ ext/IPC/SysV/SysV.xs 2007-08-11 00:10:51.000000000 +0200
-@@ -3,9 +3,6 @@
- #include "XSUB.h"
-
- #include <sys/types.h>
--#ifdef __linux__
--# include <asm/page.h>
--#endif
- #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
- #ifndef HAS_SEM
- # include <sys/ipc.h>
-END
- }
-}
-
-sub patch_configure
-{
- patch(<<'END');
---- Configure
-+++ Configure
-@@ -3380,6 +3380,18 @@
- test "X$gfpthkeep" != Xy && gfpth=""
- EOSC
-
-+# gcc 3.1 complains about adding -Idirectories that it already knows about,
-+# so we will take those off from locincpth.
-+case "$gccversion" in
-+3*)
-+ echo "main(){}">try.c
-+ for incdir in `$cc -v -c try.c 2>&1 | \
-+ sed '1,/^#include <\.\.\.>/d;/^End of search list/,$d;s/^ //'` ; do
-+ locincpth=`echo $locincpth | sed s!$incdir!!`
-+ done
-+ $rm -f try try.*
-+esac
-+
- : What should the include directory be ?
- echo " "
- $echo $n "Hmm... $c"
-END
-}
-
-sub patch_makedepend_lc
-{
- patch(<<'END');
---- makedepend.SH
-+++ makedepend.SH
-@@ -58,6 +58,10 @@ case $PERL_CONFIG_SH in
- ;;
- esac
-
-+# Avoid localized gcc/cc messages
-+LC_ALL=C
-+export LC_ALL
-+
- # We need .. when we are in the x2p directory if we are using the
- # cppstdin wrapper script.
- # Put .. and . first so that we pick up the present cppstdin, not
-END
-}
-
-sub patch
-{
- my($patch) = @_;
- print "patching $_\n" for $patch =~ /^\+{3}\s+(\S+)/gm;
- my $diff = 'tmp.diff';
- write_or_die($diff, $patch);
- run_or_die("patch -s -p0 <$diff");
- unlink $diff or die "unlink $diff: $!\n";
-}
-
-sub write_or_die
-{
- my($file, $data) = @_;
- my $fh = new IO::File ">$file" or die "$file: $!\n";
- $fh->print($data);
-}
-
-sub run_or_die
-{
- # print "[running @_]\n";
- system "@_" and die "@_: $?\n";
-}
-
-sub run
-{
- # print "[running @_]\n";
- system "@_" and warn "@_: $?\n";
-}
-
-__END__
-
-=head1 NAME
-
-buildperl.pl - build/install perl distributions
-
-=head1 SYNOPSIS
-
- perl buildperl.pl [options]
-
- --help show this help
-
- --source=directory directory containing source tarballs
- [default: /tmp/perl/source]
-
- --build=directory directory used for building perls [EXPAND]
- [default: /tmp/perl/build/<config>]
-
- --prefix=directory use this installation prefix [EXPAND]
- [default: /tmp/perl/install/<config>/<perl>]
-
- --config=configuration build this configuration [MULTI]
- [default: all possible configurations]
-
- --perl=version build this version of perl [MULTI]
- [default: all possible versions]
-
- --force rebuild and install already installed versions
-
- --test run test suite after building
-
- --noinstall don't install after building
-
- --patch only patch the perl source in the current directory
-
- --oneshot build from the perl source in the current directory
- (extra arguments are passed to Configure)
-
- options tagged with [MULTI] can be given multiple times
-
- options tagged with [EXPAND] expand the following items
-
- <perl> versioned perl directory (e.g. 'perl-5.6.1')
- <version> perl version (e.g. '5.6.1')
- <config> name of the configuration (e.g. 'default')
-
-=head1 EXAMPLES
-
-The following examples assume that your Perl source tarballs are
-in F</tmp/perl/source>. If they are somewhere else, use the C<--source>
-option to specify a different source directory.
-
-To build a default configuration of perl5.004_05 and install it
-to F</opt/perl5.004_05>, you would say:
-
- buildperl.pl --prefix='/opt/<perl>' --perl=5.004_05 --config=default
-
-To build debugging configurations of all perls in the source directory
-and install them to F</opt>, use:
-
- buildperl.pl --prefix='/opt/<perl>' --config=debug
-
-To build all configurations for perl-5.8.5 and perl-5.8.6, test them
-and don't install them, run:
-
- buildperl.pl --perl=5.8.5 --perl=5.8.6 --test --noinstall
-
-To build and install a single version of perl with special configuration
-options, use:
-
- buildperl.pl --perl=5.6.0 --prefix=/opt/p560ld --oneshot -- -des -Duselongdouble
-
-=head1 COPYRIGHT
-
-Copyright (c) 2004-2013, Marcus Holland-Moritz.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-See L<Devel::PPPort> and L<HACKERS>.
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/devtools.pl b/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/devtools.pl
deleted file mode 100644
index 465c3cca255..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/devtools.pl
+++ /dev/null
@@ -1,123 +0,0 @@
-################################################################################
-#
-# devtools.pl -- various utility functions
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use IO::File;
-
-eval "use Term::ANSIColor";
-$@ and eval "sub colored { pop; @_ }";
-
-my @argvcopy = @ARGV;
-
-sub verbose
-{
- if ($opt{verbose}) {
- my @out = @_;
- s/^(.*)/colored("($0) ", 'bold blue').colored($1, 'blue')/eg for @out;
- print STDERR @out;
- }
-}
-
-sub ddverbose
-{
- return $opt{verbose} ? ('--verbose') : ();
-}
-
-sub runtool
-{
- my $opt = ref $_[0] ? shift @_ : {};
- my($prog, @args) = @_;
- my $sysstr = join ' ', map { "'$_'" } $prog, @args;
- $sysstr .= " >$opt->{'out'}" if exists $opt->{'out'};
- $sysstr .= " 2>$opt->{'err'}" if exists $opt->{'err'};
- verbose("running $sysstr\n");
- my $rv = system $sysstr;
- verbose("$prog => exit code $rv\n");
- return not $rv;
-}
-
-sub runperl
-{
- my $opt = ref $_[0] ? shift @_ : {};
- runtool($opt, $^X, @_);
-}
-
-sub run
-{
- my $prog = shift;
- my @args = @_;
-
- runtool({ 'out' => 'tmp.out', 'err' => 'tmp.err' }, $prog, @args);
-
- my $out = IO::File->new("tmp.out") or die "tmp.out: $!\n";
- my $err = IO::File->new("tmp.err") or die "tmp.err: $!\n";
-
- my %rval = (
- status => $? >> 8,
- stdout => [<$out>],
- stderr => [<$err>],
- didnotrun => 0,
- );
-
- unlink "tmp.out", "tmp.err";
-
- $? & 128 and $rval{core} = 1;
- $? & 127 and $rval{signal} = $? & 127;
-
- return \%rval;
-}
-
-sub ident_str
-{
- return "$^X $0 @argvcopy";
-}
-
-sub identify
-{
- verbose(ident_str() . "\n");
-}
-
-sub ask($)
-{
- my $q = shift;
- my $a;
- local $| = 1;
- print "\n$q [y/n] ";
- do { $a = <>; } while ($a !~ /^\s*([yn])\s*$/i);
- return lc $1 eq 'y';
-}
-
-sub quit_now
-{
- print "\nSorry, cannot continue.\n\n";
- exit 1;
-}
-
-sub ask_or_quit
-{
- quit_now unless &ask;
-}
-
-sub eta
-{
- my($start, $i, $n) = @_;
- return "--:--:--" if $i < 3;
- my $elapsed = tv_interval($start);
- my $h = int($elapsed*($n-$i)/$i);
- my $s = $h % 60; $h /= 60;
- my $m = $h % 60; $h /= 60;
- return sprintf "%02d:%02d:%02d", $h, $m, $s;
-}
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mkapidoc.sh b/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mkapidoc.sh
deleted file mode 100644
index ff96ccc6a64..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mkapidoc.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/bash
-################################################################################
-#
-# mkapidoc.sh -- generate apidoc.fnc from scanning the Perl source
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-function isperlroot
-{
- [ -f "$1/embed.fnc" ] && [ -f "$1/perl.h" ]
-}
-
-function usage
-{
- echo "USAGE: $0 [perlroot] [output-file] [embed.fnc]"
- exit 0
-}
-
-if [ -z "$1" ]; then
- if isperlroot "../../.."; then
- PERLROOT=../../..
- else
- PERLROOT=.
- fi
-else
- PERLROOT=$1
-fi
-
-if [ -z "$2" ]; then
- if [ -f "parts/apidoc.fnc" ]; then
- OUTPUT="parts/apidoc.fnc"
- else
- usage
- fi
-else
- OUTPUT=$2
-fi
-
-if [ -z "$3" ]; then
- if [ -f "parts/embed.fnc" ]; then
- EMBED="parts/embed.fnc"
- else
- usage
- fi
-else
- EMBED=$3
-fi
-
-if isperlroot $PERLROOT; then
- cat >$OUTPUT <<EOF
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:
-: !!!! Do NOT edit this file directly! -- Edit devel/mkapidoc.sh instead. !!!!
-:
-: This file was automatically generated from the API documentation scattered
-: all over the Perl source code. To learn more about how all this works,
-: please read the F<HACKERS> file that came with this distribution.
-:
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
-:
-: This file lists all API functions/macros that are documented in the Perl
-: source code, but are not contained in F<embed.fnc>.
-:
-
-EOF
- grep -hr '^=for apidoc' $PERLROOT | sed -e 's/=for apidoc //' | grep '|' | sort | uniq \
- | perl -e'$f=pop;open(F,$f)||die"$f:$!";while(<F>){(split/\|/)[2]=~/(\w+)/;$h{$1}++}
- while(<>){s/[ \t]+$//;(split/\|/)[2]=~/(\w+)/;$h{$1}||print}' $EMBED >>$OUTPUT
-else
- usage
-fi
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mktodo b/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mktodo
deleted file mode 100644
index c5c2a9b36c8..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mktodo
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/perl -w
-################################################################################
-#
-# mktodo -- generate baseline and todo files by running mktodo.pl
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-use Getopt::Long;
-
-require 'devel/devtools.pl';
-
-our %opt = (
- base => 0,
- check => 1,
- verbose => 0,
- install => '/tmp/perl/install/default',
- blead => 'bleadperl-debug',
-);
-
-GetOptions(\%opt, qw( base check! verbose install=s blead=s blead-version=s )) or die;
-
-identify();
-
-my $outdir = 'parts/todo';
-
-my @perls = sort { $b->{version} <=> $a->{version} }
- map { { version => `$_ -e 'printf "%.6f", \$]'`, path => $_ } }
- ($opt{blead}, grep !/-RC\d+/, glob "$opt{install}/*/bin/perl5.*");
-
-if (exists $opt{'blead-version'}) {
- $perls[0]{version} = $opt{'blead-version'};
-}
-
-for (1 .. $#perls) {
- $perls[$_]{todo} = $perls[$_-1]{version};
-}
-
-shift @perls;
-
-for (@perls) {
- my $todo = do { my $v = $_->{todo}; $v =~ s/\D+//g; $v };
- -e "$outdir/$todo" and next;
- my @args = ('--perl', $_->{path}, '--todo', "$outdir/$todo", '--version', "$_->{todo}");
- push @args, '--base' if $opt{base};
- push @args, '--verbose' if $opt{verbose};
- push @args, '--nocheck' unless $opt{check};
- runperl('devel/mktodo.pl', @args) or die "error running mktodo.pl [$!] [$?]\n";
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mktodo.pl b/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mktodo.pl
deleted file mode 100644
index 9345a233ce6..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/mktodo.pl
+++ /dev/null
@@ -1,374 +0,0 @@
-#!/usr/bin/perl -w
-################################################################################
-#
-# mktodo.pl -- generate baseline and todo files
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-use Getopt::Long;
-use Data::Dumper;
-use IO::File;
-use IO::Select;
-use Config;
-use Time::HiRes qw( gettimeofday tv_interval );
-
-require 'devel/devtools.pl';
-
-our %opt = (
- debug => 0,
- base => 0,
- verbose => 0,
- check => 1,
- shlib => 'blib/arch/auto/Devel/PPPort/PPPort.so',
-);
-
-GetOptions(\%opt, qw(
- perl=s todo=s version=s shlib=s debug base verbose check!
- )) or die;
-
-identify();
-
-print "\n", ident_str(), "\n\n";
-
-my $fullperl = `which $opt{perl}`;
-chomp $fullperl;
-
-$ENV{SKIP_SLOW_TESTS} = 1;
-
-regen_all();
-
-my %stdsym = map { ($_ => 1) } qw (
- strlen
- snprintf
- strcmp
- memcpy
- strncmp
- memmove
- memcmp
- tolower
- exit
- memset
- vsnprintf
- siglongjmp
- sprintf
-);
-
-my %sym;
-for (`$Config{nm} $fullperl`) {
- chomp;
- /\s+T\s+(\w+)\s*$/ and $sym{$1}++;
-}
-keys %sym >= 50 or die "less than 50 symbols found in $fullperl\n";
-
-my %all = %{load_todo($opt{todo}, $opt{version})};
-my @recheck;
-
-my $symmap = get_apicheck_symbol_map();
-
-for (;;) {
- my $retry = 1;
- my $trynm = 1;
- regen_apicheck();
-
-retry:
- my(@new, @tmp, %seen);
-
- my $r = run(qw(make));
- $r->{didnotrun} and die "couldn't run make: $!\n";
-
- for my $l (@{$r->{stderr}}) {
- if ($l =~ /_DPPP_test_(\w+)/) {
- if (!$seen{$1}++) {
- my @s = grep { exists $sym{$_} } $1, "Perl_$1", "perl_$1";
- if (@s) {
- push @tmp, [$1, "E (@s)"];
- }
- else {
- push @new, [$1, "E"];
- }
- }
- }
- }
-
- if ($r->{status} == 0) {
- my @u;
- my @usym;
-
- if ($trynm) {
- @u = eval { find_undefined_symbols($fullperl, $opt{shlib}) };
- warn "warning: $@" if $@;
- $trynm = 0;
- }
-
- unless (@u) {
- $r = run(qw(make test));
- $r->{didnotrun} and die "couldn't run make test: $!\n";
- $r->{status} == 0 and last;
-
- for my $l (@{$r->{stderr}}) {
- if ($l =~ /undefined symbol: (\w+)/) {
- push @u, $1;
- }
- }
- }
-
- for my $u (@u) {
- for my $m (keys %{$symmap->{$u}}) {
- if (!$seen{$m}++) {
- my $pl = $m;
- $pl =~ s/^[Pp]erl_//;
- my @s = grep { exists $sym{$_} } $pl, "Perl_$pl", "perl_$pl";
- push @new, [$m, @s ? "U (@s)" : "U"];
- }
- }
- }
- }
-
- @new = grep !$all{$_->[0]}, @new;
-
- unless (@new) {
- @new = grep !$all{$_->[0]}, @tmp;
- }
-
- unless (@new) {
- if ($retry > 0) {
- $retry--;
- regen_all();
- goto retry;
- }
- print Dumper($r);
- die "no new TODO symbols found...";
- }
-
- # don't recheck undefined symbols reported by the dynamic linker
- push @recheck, map { $_->[0] } grep { $_->[1] !~ /^U/ } @new;
-
- for (@new) {
- sym('new', @$_);
- $all{$_->[0]} = $_->[1];
- }
-
- write_todo($opt{todo}, $opt{version}, \%all);
-}
-
-if ($opt{check}) {
- my $ifmt = '%' . length(scalar @recheck) . 'd';
- my $t0 = [gettimeofday];
-
- RECHECK: for my $i (0 .. $#recheck) {
- my $sym = $recheck[$i];
- my $cur = delete $all{$sym};
-
- sym('chk', $sym, $cur, sprintf(" [$ifmt/$ifmt, ETA %s]",
- $i + 1, scalar @recheck, eta($t0, $i, scalar @recheck)));
-
- write_todo($opt{todo}, $opt{version}, \%all);
-
- if ($cur eq "E (Perl_$sym)") {
- # we can try a shortcut here
- regen_apicheck($sym);
-
- my $r = run(qw(make test));
-
- if (!$r->{didnotrun} && $r->{status} == 0) {
- sym('del', $sym, $cur);
- next RECHECK;
- }
- }
-
- # run the full test
- regen_all();
-
- my $r = run(qw(make test));
-
- $r->{didnotrun} and die "couldn't run make test: $!\n";
-
- if ($r->{status} == 0) {
- sym('del', $sym, $cur);
- }
- else {
- $all{$sym} = $cur;
- }
- }
-}
-
-write_todo($opt{todo}, $opt{version}, \%all);
-
-run(qw(make realclean));
-
-exit 0;
-
-sub sym
-{
- my($what, $sym, $reason, $extra) = @_;
- $extra ||= '';
- my %col = (
- 'new' => 'bold red',
- 'chk' => 'bold magenta',
- 'del' => 'bold green',
- );
- $what = colored("$what symbol", $col{$what});
-
- printf "[%s] %s %-30s # %s%s\n",
- $opt{version}, $what, $sym, $reason, $extra;
-}
-
-sub regen_all
-{
- my @mf_arg = ('--with-apicheck', 'OPTIMIZE=-O0 -w');
- push @mf_arg, qw( DEFINE=-DDPPP_APICHECK_NO_PPPORT_H ) if $opt{base};
-
- # just to be sure
- run(qw(make realclean));
- run($fullperl, "Makefile.PL", @mf_arg)->{status} == 0
- or die "cannot run Makefile.PL: $!\n";
-}
-
-sub regen_apicheck
-{
- unlink qw(apicheck.c apicheck.o);
- runtool({ out => '/dev/null' }, $fullperl, 'apicheck_c.PL', map { "--api=$_" } @_)
- or die "cannot regenerate apicheck.c\n";
-}
-
-sub load_todo
-{
- my($file, $expver) = @_;
-
- if (-e $file) {
- my $f = new IO::File $file or die "cannot open $file: $!\n";
- my $ver = <$f>;
- chomp $ver;
- if ($ver eq $expver) {
- my %sym;
- while (<$f>) {
- chomp;
- /^(\w+)\s+#\s+(.*)/ or goto nuke_file;
- exists $sym{$1} and goto nuke_file;
- $sym{$1} = $2;
- }
- return \%sym;
- }
-
-nuke_file:
- undef $f;
- unlink $file or die "cannot remove $file: $!\n";
- }
-
- return {};
-}
-
-sub write_todo
-{
- my($file, $ver, $sym) = @_;
- my $f;
-
- $f = new IO::File ">$file" or die "cannot open $file: $!\n";
- $f->print("$ver\n");
-
- for (sort keys %$sym) {
- $f->print(sprintf "%-30s # %s\n", $_, $sym->{$_});
- }
-}
-
-sub find_undefined_symbols
-{
- my($perl, $shlib) = @_;
-
- my $ps = read_sym(file => $perl, options => [qw( --defined-only )]);
- my $ls = read_sym(file => $shlib, options => [qw( --undefined-only )]);
-
- my @undefined;
-
- for my $sym (keys %$ls) {
- unless (exists $ps->{$sym}) {
- if ($sym !~ /\@/ and $sym !~ /^_/) {
- push @undefined, $sym unless $stdsym{$sym};
- }
- }
- }
-
- return @undefined;
-}
-
-sub read_sym
-{
- my %opt = ( options => [], @_ );
-
- my $r = run($Config{nm}, @{$opt{options}}, $opt{file});
-
- if ($r->{didnotrun} or $r->{status}) {
- die "cannot run $Config{nm}";
- }
-
- my %sym;
-
- for (@{$r->{stdout}}) {
- chomp;
- my($adr, $fmt, $sym) = /^\s*([[:xdigit:]]+)?\s+([ABCDGINRSTUVW?-])\s+(\S+)\s*$/i
- or die "cannot parse $Config{nm} output:\n[$_]\n";
- $sym{$sym} = { format => $fmt };
- $sym{$sym}{address} = $adr if defined $adr;
- }
-
- return \%sym;
-}
-
-sub get_apicheck_symbol_map
-{
- my $r;
-
- while (1) {
- $r = run(qw(make apicheck.i));
-
- last unless $r->{didnotrun} or $r->{status};
-
- my %sym = map { /error: macro "(\w+)" (?:requires|passed) \d+ argument/ ? ($1 => 'A') : () }
- @{$r->{stderr}};
-
- if (keys %sym) {
- for my $s (sort keys %sym) {
- sym('new', $s, $sym{$s});
- $all{$s} = $sym{$s};
- }
- write_todo($opt{todo}, $opt{version}, \%all);
- regen_apicheck();
- }
- else {
- die "cannot run make apicheck.i ($r->{didnotrun} / $r->{status}):\n".
- join('', @{$r->{stdout}})."\n---\n".join('', @{$r->{stderr}});
- }
- }
-
- my $fh = IO::File->new('apicheck.i')
- or die "cannot open apicheck.i: $!";
-
- local $_;
- my %symmap;
- my $cur;
-
- while (<$fh>) {
- next if /^#/;
- if (defined $cur) {
- for my $sym (/\b([A-Za-z_]\w+)\b/g) {
- $symmap{$sym}{$cur}++;
- }
- undef $cur if /^}$/;
- }
- else {
- /_DPPP_test_(\w+)/ and $cur = $1;
- }
- }
-
- return \%symmap;
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/regenerate b/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/regenerate
deleted file mode 100644
index dad533808ab..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/regenerate
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/perl -w
-################################################################################
-#
-# regenerate -- regenerate baseline and todo files
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-use File::Path;
-use File::Copy;
-use Getopt::Long;
-use Pod::Usage;
-
-require 'devel/devtools.pl';
-
-our %opt = (
- check => 1,
- verbose => 0,
-);
-
-GetOptions(\%opt, qw( check! verbose install=s blead=s blead-version=s )) or die pod2usage();
-
-identify();
-
-unless (-e 'parts/embed.fnc' and -e 'parts/apidoc.fnc') {
- print "\nOooops, $0 must be run from the Devel::PPPort root directory.\n";
- quit_now();
-}
-
-ask_or_quit("Are you sure you have updated parts/embed.fnc and parts/apidoc.fnc?");
-
-my %files = map { ($_ => [glob "parts/$_/5*"]) } qw( base todo );
-
-my(@notwr, @wr);
-for my $f (map @$_, values %files) {
- push @{-w $f ? \@wr : \@notwr}, $f;
-}
-
-if (@notwr) {
- if (@wr) {
- print "\nThe following files are not writable:\n\n";
- print " $_\n" for @notwr;
- print "\nAre you sure you have checked out these files?\n";
- }
- else {
- print "\nAll baseline / todo file are not writable.\n";
- ask_or_quit("Do you want to try to check out these files?");
- unless (runtool("wco", "-l", "-t", "locked by $0", @notwr)) {
- print "\nSomething went wrong while checking out the files.\n";
- quit_now();
- }
- }
-}
-
-for my $dir (qw( base todo )) {
- my $cur = "parts/$dir";
- my $old = "$cur-old";
- if (-e $old) {
- ask_or_quit("Do you want me to remove the old $old directory?");
- rmtree($old);
- }
- mkdir $old;
- print "\nBacking up $cur in $old.\n";
- for my $src (@{$files{$dir}}) {
- my $dst = $src;
- $dst =~ s/\Q$cur/$old/ or die "Ooops!";
- move($src, $dst) or die "Moving $src to $dst failed: $!\n";
- }
-}
-
-my @perlargs;
-push @perlargs, "--install=$opt{install}" if exists $opt{install};
-push @perlargs, "--blead=$opt{blead}" if exists $opt{blead};
-
-my $T0 = time;
-my @args = ddverbose();
-push @args, '--nocheck' unless $opt{check};
-push @args, "--blead-version=$opt{'blead-version'}" if exists $opt{'blead-version'};
-push @args, @perlargs;
-
-print "\nBuilding baseline files...\n\n";
-
-unless (runperl('devel/mktodo', '--base', @args)) {
- print "\nSomething went wrong while building the baseline files.\n";
- quit_now();
-}
-
-print "\nMoving baseline files...\n\n";
-
-for my $src (glob 'parts/todo/5*') {
- my $dst = $src;
- $dst =~ s/todo/base/ or die "Ooops!";
- move($src, $dst) or die "Moving $src to $dst failed: $!\n";
-}
-
-print "\nBuilding todo files...\n\n";
-
-unless (runperl('devel/mktodo', @args)) {
- print "\nSomething went wrong while building the baseline files.\n";
- quit_now();
-}
-
-print "\nAdding remaining baseline info...\n\n";
-
-unless (runperl('Makefile.PL') and
- runtool('make') and
- runperl('devel/scanprov', '--mode=write', @perlargs)) {
- print "\nSomething went wrong while adding the baseline info.\n";
- quit_now();
-}
-
-my($wall, $usr, $sys, $cusr, $csys) = (time - $T0, times);
-my $cpu = sprintf "%.2f", $usr + $sys + $cusr + $csys;
-$usr = sprintf "%.2f", $usr + $cusr;
-$sys = sprintf "%.2f", $sys + $csys;
-
-print <<END;
-
-API info regenerated successfully.
-
-Finished in $wall wallclock secs ($usr usr + $sys sys = $cpu CPU)
-
-Don't forget to check in the files in parts/base and parts/todo.
-
-END
-
-__END__
-
-=head1 NAME
-
-regenerate - Automatically regeneate Devel::PPPort's API information
-
-=head1 SYNOPSIS
-
- regenerate [options]
-
- --nocheck don't recheck symbols that caused an error
- --verbose show verbose output
-
-=head1 COPYRIGHT
-
-Copyright (c) 2006-2013, Marcus Holland-Moritz.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-See L<Devel::PPPort> and L<HACKERS>.
-
-=cut
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/scanprov b/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/scanprov
deleted file mode 100644
index 86910e4393e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/devel/scanprov
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/perl -w
-################################################################################
-#
-# scanprov -- scan Perl headers for provided macros
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-use Getopt::Long;
-
-require 'parts/ppptools.pl';
-
-our %opt = (
- mode => 'check',
- install => '/tmp/perl/install/default',
- blead => 'bleadperl',
-);
-
-GetOptions(\%opt, qw( install=s mode=s blead=s )) or die;
-
-my $write = $opt{mode} eq 'write';
-
-my %embed = map { ( $_->{name} => 1 ) }
- parse_embed(qw(parts/embed.fnc parts/apidoc.fnc parts/ppport.fnc ));
-
-my @provided = grep { !exists $embed{$_} }
- map { /^(\w+)/ ? $1 : () }
- `$^X ppport.h --list-provided`;
-
-my @perls = sort { $b->{version} <=> $a->{version} }
- map { { version => `$_ -e 'printf "%.6f", \$]'`, path => $_ } }
- ($opt{blead}, glob "$opt{install}/*/bin/perl5.*");
-
-for (1 .. $#perls) {
- $perls[$_]{todo} = $perls[$_-1]{version};
-}
-
-shift @perls;
-
-my %v;
-
-for my $p (@perls) {
- print "checking perl $p->{version}...\n";
- my $archlib = `$p->{path} -MConfig -l -e 'print \$Config{archlib}'`;
- chomp $archlib;
- local @ARGV = glob "$archlib/CORE/*.h";
- my %sym;
- while (<>) { $sym{$_}++ for /(\w+)/g; }
- @provided = map { $sym{$_} or $v{$p->{todo}}{$_}++; $sym{$_} ? $_ : () } @provided;
-}
-
-my $out = 'parts/base';
-my $todo = parse_todo($out);
-
-for my $v (keys %v) {
- my @new = sort grep { !exists $todo->{$_} } keys %{$v{$v}};
- @new or next;
- my $file = $v;
- $file =~ s/\.//g;
- $file = "$out/$file";
- -e $file or die "non-existent: $file\n";
- print "-- $file --\n";
- $write and (open F, ">>$file" or die "$file: $!\n");
- for (@new) {
- print "adding $_\n";
- $write and printf F "%-30s # added by $0\n", $_;
- }
- $write and close F;
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/mktests.PL b/gnu/usr.bin/perl/cpan/Devel-PPPort/mktests.PL
deleted file mode 100644
index fe79313222d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/mktests.PL
+++ /dev/null
@@ -1,110 +0,0 @@
-################################################################################
-#
-# mktests.PL -- generate test files for Devel::PPPort
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-$^W = 1;
-require "parts/ppptools.pl";
-
-my $template = do { local $/; <DATA> };
-
-generate_tests();
-
-sub generate_tests
-{
- my @tests;
- my $file;
-
- for $file (all_files_in_dir('parts/inc')) {
- my($testfile) = $file =~ /(\w+)\.?$/; # VMS has a trailing dot
- $testfile = "t/$testfile.t";
-
- my $spec = parse_partspec($file);
- my $plan = 0;
-
- if (exists $spec->{tests}) {
- exists $spec->{OPTIONS}{tests} &&
- exists $spec->{OPTIONS}{tests}{plan}
- or die "No plan for tests in $file\n";
-
- print "generating $testfile\n";
-
- my $tmpl = $template;
- $tmpl =~ s/__SOURCE__/$file/mg;
- $tmpl =~ s/__PLAN__/$spec->{OPTIONS}{tests}{plan}/mg;
- $tmpl =~ s/^__TESTS__$/$spec->{tests}/mg;
-
- open FH, ">$testfile" or die "$testfile: $!\n";
- print FH $tmpl;
- close FH;
-
- push @tests, $testfile;
- }
- }
-
- return @tests;
-}
-
-__DATA__
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or __SOURCE__ instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (__PLAN__) {
- load();
- plan(tests => __PLAN__);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-__TESTS__
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/module2.c b/gnu/usr.bin/perl/cpan/Devel-PPPort/module2.c
deleted file mode 100644
index a9a6f2aa446..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/module2.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
-*
-* Perl/Pollution/Portability
-*
-********************************************************************************
-*
-* Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-* Version 2.x, Copyright (C) 2001, Paul Marquess.
-* Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the same terms as Perl itself.
-*
-*******************************************************************************/
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#ifndef PATCHLEVEL
-#include "patchlevel.h"
-#endif
-
-#define NEED_newCONSTSUB_GLOBAL
-#define NEED_PL_signals_GLOBAL
-#define NEED_PL_parser
-#define DPPP_PL_parser_NO_DUMMY
-#include "ppport.h"
-
-void call_newCONSTSUB_2(void)
-{
- newCONSTSUB(gv_stashpv("Devel::PPPort", FALSE), "test_value_2", newSViv(2));
-}
-
-U32 get_PL_signals_2(void)
-{
- return PL_signals;
-}
-
-int no_dummy_parser_vars(int check)
-{
- if (check == 0 || PL_parser)
- {
- line_t volatile my_copline;
- line_t volatile *my_p_copline;
- my_copline = PL_copline;
- my_p_copline = &PL_copline;
- PL_copline = my_copline;
- PL_copline = *my_p_copline;
- return 1;
- }
-
- return 0;
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/module3.c b/gnu/usr.bin/perl/cpan/Devel-PPPort/module3.c
deleted file mode 100644
index 417490e0125..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/module3.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
-*
-* Perl/Pollution/Portability
-*
-********************************************************************************
-*
-* Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-* Version 2.x, Copyright (C) 2001, Paul Marquess.
-* Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the same terms as Perl itself.
-*
-*******************************************************************************/
-
-#include "EXTERN.h"
-#include "perl.h"
-
-#define NEED_PL_parser
-#define NO_XSLOCKS
-#include "XSUB.h"
-
-#include "ppport.h"
-
-static void throws_exception(int throw_e)
-{
- if (throw_e)
- croak("boo\n");
-}
-
-int exception(int throw_e)
-{
- dTHR;
- dXCPT;
- SV *caught = get_sv("Devel::PPPort::exception_caught", 0);
-
- XCPT_TRY_START {
- throws_exception(throw_e);
- } XCPT_TRY_END
-
- XCPT_CATCH
- {
- sv_setiv(caught, 1);
- XCPT_RETHROW;
- }
-
- sv_setiv(caught, 0);
-
- return 42;
-}
-
-void call_newCONSTSUB_3(void)
-{
- newCONSTSUB(gv_stashpv("Devel::PPPort", FALSE), "test_value_3", newSViv(3));
-}
-
-U32 get_PL_signals_3(void)
-{
- return PL_signals;
-}
-
-int dummy_parser_warning(void)
-{
- char * volatile my_bufptr;
- char * volatile *my_p_bufptr;
- my_bufptr = PL_bufptr;
- my_p_bufptr = &PL_bufptr;
- PL_bufptr = my_bufptr;
- PL_bufptr = *my_p_bufptr;
- return &PL_bufptr != NULL;
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/apicheck.pl b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/apicheck.pl
deleted file mode 100644
index cb59f4ba0f4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/apicheck.pl
+++ /dev/null
@@ -1,324 +0,0 @@
-#!/usr/bin/perl -w
-################################################################################
-#
-# apicheck.pl -- generate C source for automated API check
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-use strict;
-require 'parts/ppptools.pl';
-
-if (@ARGV) {
- my $file = pop @ARGV;
- open OUT, ">$file" or die "$file: $!\n";
-}
-else {
- *OUT = \*STDOUT;
-}
-
-my @f = parse_embed(qw( parts/embed.fnc parts/apidoc.fnc parts/ppport.fnc ));
-
-my %todo = %{&parse_todo};
-
-my %tmap = (
- void => 'int',
-);
-
-my %amap = (
- SP => 'SP',
- type => 'int',
- cast => 'int',
-);
-
-my %void = (
- void => 1,
- Free_t => 1,
- Signal_t => 1,
-);
-
-my %castvoid = (
- map { ($_ => 1) } qw(
- Nullav
- Nullcv
- Nullhv
- Nullch
- Nullsv
- HEf_SVKEY
- SP
- MARK
- SVt_PV
- SVt_IV
- SVt_NV
- SVt_PVMG
- SVt_PVAV
- SVt_PVHV
- SVt_PVCV
- SvUOK
- G_SCALAR
- G_ARRAY
- G_VOID
- G_DISCARD
- G_EVAL
- G_NOARGS
- XS_VERSION
- ),
-);
-
-my %ignorerv = (
- map { ($_ => 1) } qw(
- newCONSTSUB
- ),
-);
-
-my %stack = (
- ORIGMARK => ['dORIGMARK;'],
- POPpx => ['STRLEN n_a;'],
- POPpbytex => ['STRLEN n_a;'],
- PUSHp => ['dTARG;'],
- PUSHn => ['dTARG;'],
- PUSHi => ['dTARG;'],
- PUSHu => ['dTARG;'],
- XPUSHp => ['dTARG;'],
- XPUSHn => ['dTARG;'],
- XPUSHi => ['dTARG;'],
- XPUSHu => ['dTARG;'],
- UNDERBAR => ['dUNDERBAR;'],
- XCPT_TRY_START => ['dXCPT;'],
- XCPT_TRY_END => ['dXCPT;'],
- XCPT_CATCH => ['dXCPT;'],
- XCPT_RETHROW => ['dXCPT;'],
-);
-
-my %ignore = (
- map { ($_ => 1) } qw(
- svtype
- items
- ix
- dXSI32
- XS
- CLASS
- THIS
- RETVAL
- StructCopy
- ),
-);
-
-print OUT <<HEAD;
-/*
- * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by $0.
- * Any changes made here will be lost!
- */
-
-#include "EXTERN.h"
-#include "perl.h"
-
-#define NO_XSLOCKS
-#include "XSUB.h"
-
-#ifdef DPPP_APICHECK_NO_PPPORT_H
-
-/* This is just to avoid too many baseline failures with perls < 5.6.0 */
-
-#ifndef dTHX
-# define dTHX extern int Perl___notused
-#endif
-
-#else
-
-#define NEED_PL_signals
-#define NEED_PL_parser
-#define NEED_caller_cx
-#define NEED_eval_pv
-#define NEED_grok_bin
-#define NEED_grok_hex
-#define NEED_grok_number
-#define NEED_grok_numeric_radix
-#define NEED_grok_oct
-#define NEED_load_module
-#define NEED_my_snprintf
-#define NEED_my_sprintf
-#define NEED_mg_findext
-#define NEED_my_strlcat
-#define NEED_my_strlcpy
-#define NEED_newCONSTSUB
-#define NEED_newRV_noinc
-#define NEED_newSV_type
-#define NEED_newSVpvn_share
-#define NEED_pv_display
-#define NEED_pv_escape
-#define NEED_pv_pretty
-#define NEED_sv_2pv_flags
-#define NEED_sv_2pvbyte
-#define NEED_sv_catpvf_mg
-#define NEED_sv_catpvf_mg_nocontext
-#define NEED_sv_pvn_force_flags
-#define NEED_sv_setpvf_mg
-#define NEED_sv_setpvf_mg_nocontext
-#define NEED_sv_unmagicext
-#define NEED_vload_module
-#define NEED_vnewSVpvf
-#define NEED_warner
-#define NEED_newSVpvn_flags
-
-#include "ppport.h"
-
-#endif
-
-static int VARarg1;
-static char *VARarg2;
-static double VARarg3;
-
-#if defined(PERL_BCDVERSION) && (PERL_BCDVERSION < 0x5009005)
-/* needed to make PL_parser apicheck work */
-typedef void yy_parser;
-#endif
-
-HEAD
-
-if (@ARGV) {
- my %want = map { ($_ => 0) } @ARGV;
- @f = grep { exists $want{$_->{name}} } @f;
- for (@f) { $want{$_->{name}}++ }
- for (keys %want) {
- die "nothing found for '$_'\n" unless $want{$_};
- }
-}
-
-my $f;
-for $f (@f) {
- $ignore{$f->{name}} and next;
- $f->{flags}{A} or next; # only public API members
-
- $ignore{$f->{name}} = 1; # ignore duplicates
-
- my $Perl_ = $f->{flags}{p} ? 'Perl_' : '';
-
- my $stack = '';
- my @arg;
- my $aTHX = '';
-
- my $i = 1;
- my $ca;
- my $varargs = 0;
- for $ca (@{$f->{args}}) {
- my $a = $ca->[0];
- if ($a eq '...') {
- $varargs = 1;
- push @arg, qw(VARarg1 VARarg2 VARarg3);
- last;
- }
- my($n, $p, $d) = $a =~ /^ (\w+(?:\s+\w+)*)\s* # type name => $n
- (\**) # pointer => $p
- (?:\s*const\s*)? # const
- ((?:\[[^\]]*\])*) # dimension => $d
- $/x
- or die "$0 - cannot parse argument: [$a]\n";
- if (exists $amap{$n}) {
- push @arg, $amap{$n};
- next;
- }
- $n = $tmap{$n} || $n;
- if ($n eq 'const char' and $p eq '*' and !$f->{flags}{f}) {
- push @arg, '"foo"';
- }
- else {
- my $v = 'arg' . $i++;
- push @arg, $v;
- $stack .= " static $n $p$v$d;\n";
- }
- }
-
- unless ($f->{flags}{n} || $f->{flags}{'m'}) {
- $stack = " dTHX;\n$stack";
- $aTHX = @arg ? 'aTHX_ ' : 'aTHX';
- }
-
- if ($stack{$f->{name}}) {
- my $s = '';
- for (@{$stack{$f->{name}}}) {
- $s .= " $_\n";
- }
- $stack = "$s$stack";
- }
-
- my $args = join ', ', @arg;
- my $rvt = $f->{ret} || 'void';
- my $ret;
- if ($void{$rvt}) {
- $ret = $castvoid{$f->{name}} ? '(void) ' : '';
- }
- else {
- $stack .= " $rvt rval;\n";
- $ret = $ignorerv{$f->{name}} ? '(void) ' : "rval = ";
- }
- my $aTHX_args = "$aTHX$args";
-
- if (!$f->{flags}{'m'} or $f->{flags}{'b'} or @arg > 0) {
- $args = "($args)";
- $aTHX_args = "($aTHX_args)";
- }
-
- print OUT <<HEAD;
-/******************************************************************************
-*
-* $f->{name}
-*
-******************************************************************************/
-
-HEAD
-
- if ($todo{$f->{name}}) {
- my($ver,$sub) = $todo{$f->{name}} =~ /^5\.(\d{3})(\d{3})$/ or die;
- for ($ver, $sub) {
- s/^0+(\d)/$1/
- }
- if ($ver < 6 && $sub > 0) {
- $sub =~ s/0$// or die;
- }
- print OUT "#if PERL_VERSION > $ver || (PERL_VERSION == $ver && PERL_SUBVERSION >= $sub) /* TODO */\n";
- }
-
- my $final = $varargs
- ? "$Perl_$f->{name}$aTHX_args"
- : "$f->{name}$args";
-
- $f->{cond} and print OUT "#if $f->{cond}\n";
-
- print OUT <<END;
-void _DPPP_test_$f->{name} (void)
-{
- dXSARGS;
-$stack
- {
-#ifdef $f->{name}
- $ret$f->{name}$args;
-#endif
- }
-
- {
-#ifdef $f->{name}
- $ret$final;
-#else
- $ret$Perl_$f->{name}$aTHX_args;
-#endif
- }
-}
-END
-
- $f->{cond} and print OUT "#endif\n";
- $todo{$f->{name}} and print OUT "#endif\n";
-
- print OUT "\n";
-}
-
-@ARGV and close OUT;
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/apidoc.fnc b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/apidoc.fnc
deleted file mode 100644
index 058c363e49c..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/apidoc.fnc
+++ /dev/null
@@ -1,472 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:
-: !!!! Do NOT edit this file directly! -- Edit devel/mkapidoc.sh instead. !!!!
-:
-: This file was automatically generated from the API documentation scattered
-: all over the Perl source code. To learn more about how all this works,
-: please read the F<HACKERS> file that came with this distribution.
-:
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
-:
-: This file lists all API functions/macros that are documented in the Perl
-: source code, but are not contained in F<embed.fnc>.
-:
-
-AmUx|Perl_keyword_plugin_t|PL_keyword_plugin
-AmU|Perl_check_t *|PL_check
-AmU|yy_parser *|PL_parser
-AmU||G_ARRAY
-AmU||G_DISCARD
-AmU||G_EVAL
-AmU||G_NOARGS
-AmU||G_SCALAR
-AmU||G_VOID
-AmU||HEf_SVKEY
-AmU||MARK
-AmU||Nullav
-AmU||Nullch
-AmU||Nullcv
-AmU||Nullhv
-AmU||Nullsv
-AmU||ORIGMARK
-AmU||SP
-AmU||SVt_INVLIST
-AmU||SVt_IV
-AmU||SVt_NULL
-AmU||SVt_NV
-AmU||SVt_PV
-AmU||SVt_PVAV
-AmU||SVt_PVCV
-AmU||SVt_PVFM
-AmU||SVt_PVGV
-AmU||SVt_PVHV
-AmU||SVt_PVIO
-AmU||SVt_PVIV
-AmU||SVt_PVLV
-AmU||SVt_PVMG
-AmU||SVt_PVNV
-AmU||SVt_REGEXP
-AmU||UNDERBAR
-AmU||XCPT_CATCH
-AmU||XCPT_TRY_END
-AmU||XCPT_TRY_START
-AmU||XS
-AmU||XS_EXTERNAL
-AmU||XS_INTERNAL
-AmU||XS_VERSION
-AmU||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto
-AmU||svtype
-Ama|SV*|newSVpvs_flags|const char* s|U32 flags
-Ama|SV*|newSVpvs_share|const char* s
-Ama|SV*|newSVpvs|const char* s
-Ama|char*|savepvs|const char* s
-Ama|char*|savesharedpvs|const char* s
-Amn|(whatever)|RETVAL
-Amn|(whatever)|THIS
-Amn|HV*|PL_modglobal
-Amn|I32|ax
-Amn|I32|items
-Amn|I32|ix
-Amn|IV|POPi
-Amn|NV|POPn
-Amn|Perl_ophook_t|PL_opfreehook
-Amn|STRLEN|PL_na
-Amn|SV*|POPs
-Amn|SV|PL_sv_no
-Amn|SV|PL_sv_undef
-Amn|SV|PL_sv_yes
-Amn|U32|GIMME
-Amn|U32|GIMME_V
-Amn|char*|CLASS
-Amn|char*|POPp
-Amn|char*|POPpbytex
-Amn|char*|POPpx
-Amn|long|POPl
-Amn|peep_t|PL_peepp
-Amn|peep_t|PL_rpeepp
-Ams||ENTER
-Ams||FREETMPS
-Ams||LEAVE
-Ams||MULTICALL
-Ams||POP_MULTICALL
-Ams||PUSH_MULTICALL
-Ams||PUTBACK
-Ams||SAVETMPS
-Ams||SPAGAIN
-Ams||XCPT_RETHROW
-Ams||XSRETURN_EMPTY
-Ams||XSRETURN_NO
-Ams||XSRETURN_UNDEF
-Ams||XSRETURN_YES
-Ams||XS_APIVERSION_BOOTCHECK
-Ams||XS_VERSION_BOOTCHECK
-Ams||dAX
-Ams||dAXMARK
-Ams||dITEMS
-Ams||dMARK
-Ams||dMULTICALL
-Ams||dORIGMARK
-Ams||dSP
-Ams||dUNDERBAR
-Ams||dXCPT
-Ams||dXSARGS
-Ams||dXSI32
-AmxU|PAD *|PL_comppad
-AmxU|PADNAMELIST *|PL_comppad_name
-AmxU|SV **|PL_curpad
-AmxU|SV *|PL_parser-E<gt>linestr
-AmxU|char *|PL_parser-E<gt>bufend
-AmxU|char *|PL_parser-E<gt>bufptr
-AmxU|char *|PL_parser-E<gt>linestart
-Amx|COPHH *|cophh_copy|COPHH *cophh
-Amx|COPHH *|cophh_delete_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-Amx|COPHH *|cophh_delete_pvs|const COPHH *cophh|const char *key|U32 flags
-Amx|COPHH *|cophh_delete_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
-Amx|COPHH *|cophh_delete_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
-Amx|COPHH *|cophh_new_empty
-Amx|COPHH *|cophh_store_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|SV *value|U32 flags
-Amx|COPHH *|cophh_store_pvs|const COPHH *cophh|const char *key|SV *value|U32 flags
-Amx|COPHH *|cophh_store_pv|const COPHH *cophh|const char *key|U32 hash|SV *value|U32 flags
-Amx|COPHH *|cophh_store_sv|const COPHH *cophh|SV *key|U32 hash|SV *value|U32 flags
-Amx|HV *|cophh_2hv|const COPHH *cophh|U32 flags
-Amx|PAD **|PadlistARRAY|PADLIST padlist
-Amx|PADLIST *|CvPADLIST|CV *cv
-Amx|PADNAME **|PadlistNAMESARRAY|PADLIST padlist
-Amx|PADNAME **|PadnamelistARRAY|PADNAMELIST pnl
-Amx|PADNAMELIST *|PadlistNAMES|PADLIST padlist
-Amx|SSize_t|PadMAX|PAD pad
-Amx|SSize_t|PadlistMAX|PADLIST padlist
-Amx|SSize_t|PadlistNAMESMAX|PADLIST padlist
-Amx|SSize_t|PadnameREFCNT|PADNAME pn
-Amx|SSize_t|PadnamelistMAX|PADNAMELIST pnl
-Amx|SSize_t|PadnamelistREFCNT|PADNAMELIST pnl
-Amx|STRLEN|PadnameLEN|PADNAME pn
-Amx|SV **|PadARRAY|PAD pad
-Amx|SV *|PadnameSV|PADNAME pn
-Amx|SV *|cophh_fetch_pvn|const COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-Amx|SV *|cophh_fetch_pvs|const COPHH *cophh|const char *key|U32 flags
-Amx|SV *|cophh_fetch_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
-Amx|SV *|cophh_fetch_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
-Amx|SV*|newSVpadname|PADNAME *pn
-Amx|U32|PadlistREFCNT|PADLIST padlist
-Amx|bool|PadnameUTF8|PADNAME pn
-Amx|char *|PadnamePV|PADNAME pn
-Amx|void|BhkDISABLE|BHK *hk|which
-Amx|void|BhkENABLE|BHK *hk|which
-Amx|void|BhkENTRY_set|BHK *hk|which|void *ptr
-Amx|void|PadnameREFCNT_dec|PADNAME pn
-Amx|void|PadnamelistREFCNT_dec|PADNAMELIST pnl
-Amx|void|cophh_free|COPHH *cophh
-Amx|void|lex_stuff_pvs|const char *pv|U32 flags
-Am|AV*|GvAV|GV* gv
-Am|CV*|GvCV|GV* gv
-Am|HV *|cop_hints_2hv|const COP *cop|U32 flags
-Am|HV*|CvSTASH|CV* cv
-Am|HV*|GvHV|GV* gv
-Am|HV*|SvSTASH|SV* sv
-Am|HV*|gv_stashpvs|const char* name|I32 create
-Am|IV|SvIVX|SV* sv
-Am|IV|SvIV_nomg|SV* sv
-Am|IV|SvIVx|SV* sv
-Am|IV|SvIV|SV* sv
-Am|NV|SvNVX|SV* sv
-Am|NV|SvNV_nomg|SV* sv
-Am|NV|SvNVx|SV* sv
-Am|NV|SvNV|SV* sv
-Am|OP*|LINKLIST|OP *o
-Am|PADOFFSET|pad_add_name_pvs|const char *name|U32 flags|HV *typestash|HV *ourstash
-Am|PADOFFSET|pad_findmy_pvs|const char *name|U32 flags
-Am|REGEXP *|SvRX|SV *sv
-Am|STRLEN|HeKLEN|HE* he
-Am|STRLEN|HvENAMELEN|HV *stash
-Am|STRLEN|HvNAMELEN|HV *stash
-Am|STRLEN|SvCUR|SV* sv
-Am|STRLEN|SvLEN|SV* sv
-Am|STRLEN|isUTF8_CHAR|const U8 *s|const U8 *e
-Am|SV *|boolSV|bool b
-Am|SV *|cop_hints_fetch_pvn|const COP *cop|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-Am|SV *|cop_hints_fetch_pvs|const COP *cop|const char *key|U32 flags
-Am|SV *|cop_hints_fetch_pv|const COP *cop|const char *key|U32 hash|U32 flags
-Am|SV *|cop_hints_fetch_sv|const COP *cop|SV *key|U32 hash|U32 flags
-Am|SV *|sv_setref_pvs|const char* s
-Am|SV**|hv_fetchs|HV* tb|const char* key|I32 lval
-Am|SV**|hv_stores|HV* tb|const char* key|NULLOK SV* val
-Am|SV*|GvSV|GV* gv
-Am|SV*|HeSVKEY_force|HE* he
-Am|SV*|HeSVKEY_set|HE* he|SV* sv
-Am|SV*|HeSVKEY|HE* he
-Am|SV*|HeVAL|HE* he
-Am|SV*|ST|int ix
-Am|SV*|SvREFCNT_inc_NN|SV* sv
-Am|SV*|SvREFCNT_inc_simple_NN|SV* sv
-Am|SV*|SvREFCNT_inc_simple|SV* sv
-Am|SV*|SvREFCNT_inc|SV* sv
-Am|SV*|SvRV|SV* sv
-Am|SV*|newRV_inc|SV* sv
-Am|SV*|newSVpvn_utf8|NULLOK const char* s|STRLEN len|U32 utf8
-Am|U32|HeHASH|HE* he
-Am|U32|HeUTF8|HE* he
-Am|U32|OP_CLASS|OP *o
-Am|U32|SvGAMAGIC|SV* sv
-Am|U32|SvIOKp|SV* sv
-Am|U32|SvIOK|SV* sv
-Am|U32|SvIsCOW|SV* sv
-Am|U32|SvNIOKp|SV* sv
-Am|U32|SvNIOK|SV* sv
-Am|U32|SvNOKp|SV* sv
-Am|U32|SvNOK|SV* sv
-Am|U32|SvOK|SV* sv
-Am|U32|SvOOK|SV* sv
-Am|U32|SvPOKp|SV* sv
-Am|U32|SvPOK|SV* sv
-Am|U32|SvREFCNT|SV* sv
-Am|U32|SvROK|SV* sv
-Am|U32|SvUTF8|SV* sv
-Am|U32|XopFLAGS|XOP *xop
-Am|U8|READ_XDIGIT|char str*
-Am|U8|toFOLD|U8 ch
-Am|U8|toLOWER_L1|U8 ch
-Am|U8|toLOWER_LC|U8 ch
-Am|U8|toLOWER|U8 ch
-Am|U8|toTITLE|U8 ch
-Am|U8|toUPPER|U8 ch
-Am|UV|SvUVX|SV* sv
-Am|UV|SvUV_nomg|SV* sv
-Am|UV|SvUVx|SV* sv
-Am|UV|SvUV|SV* sv
-Am|UV|toFOLD_uni|UV cp|U8* s|STRLEN* lenp
-Am|UV|toFOLD_utf8|U8* p|U8* s|STRLEN* lenp
-Am|UV|toLOWER_uni|UV cp|U8* s|STRLEN* lenp
-Am|UV|toLOWER_utf8|U8* p|U8* s|STRLEN* lenp
-Am|UV|toTITLE_uni|UV cp|U8* s|STRLEN* lenp
-Am|UV|toTITLE_utf8|U8* p|U8* s|STRLEN* lenp
-Am|UV|toUPPER_uni|UV cp|U8* s|STRLEN* lenp
-Am|UV|toUPPER_utf8|U8* p|U8* s|STRLEN* lenp
-Am|bool|OP_TYPE_IS_OR_WAS|OP *o|Optype type
-Am|bool|OP_TYPE_IS|OP *o|Optype type
-Am|bool|OpHAS_SIBLING|OP *o
-Am|bool|OpSIBLING_set|OP *o|OP *sib
-Am|bool|OpSIBLING|OP *o
-Am|bool|SvIOK_UV|SV* sv
-Am|bool|SvIOK_notUV|SV* sv
-Am|bool|SvIsCOW_shared_hash|SV* sv
-Am|bool|SvRXOK|SV* sv
-Am|bool|SvTAINTED|SV* sv
-Am|bool|SvTRUE_nomg|SV* sv
-Am|bool|SvTRUE|SV* sv
-Am|bool|SvUOK|SV* sv
-Am|bool|SvVOK|SV* sv
-Am|bool|isALPHANUMERIC|char ch
-Am|bool|isALPHA|char ch
-Am|bool|isASCII|char ch
-Am|bool|isBLANK|char ch
-Am|bool|isCNTRL|char ch
-Am|bool|isDIGIT|char ch
-Am|bool|isGRAPH|char ch
-Am|bool|isIDCONT|char ch
-Am|bool|isIDFIRST|char ch
-Am|bool|isLOWER|char ch
-Am|bool|isOCTAL|char ch
-Am|bool|isPRINT|char ch
-Am|bool|isPSXSPC|char ch
-Am|bool|isPUNCT|char ch
-Am|bool|isSPACE|char ch
-Am|bool|isUPPER|char ch
-Am|bool|isWORDCHAR|char ch
-Am|bool|isXDIGIT|char ch
-Am|bool|strEQ|char* s1|char* s2
-Am|bool|strGE|char* s1|char* s2
-Am|bool|strGT|char* s1|char* s2
-Am|bool|strLE|char* s1|char* s2
-Am|bool|strLT|char* s1|char* s2
-Am|bool|strNE|char* s1|char* s2
-Am|bool|strnEQ|char* s1|char* s2|STRLEN len
-Am|bool|strnNE|char* s1|char* s2|STRLEN len
-Am|char *|SvGROW|SV* sv|STRLEN len
-Am|char*|HePV|HE* he|STRLEN len
-Am|char*|HvENAME|HV* stash
-Am|char*|HvNAME|HV* stash
-Am|char*|SvEND|SV* sv
-Am|char*|SvPVX|SV* sv
-Am|char*|SvPV_force_nomg|SV* sv|STRLEN len
-Am|char*|SvPV_force|SV* sv|STRLEN len
-Am|char*|SvPV_nolen|SV* sv
-Am|char*|SvPV_nomg_nolen|SV* sv
-Am|char*|SvPV_nomg|SV* sv|STRLEN len
-Am|char*|SvPVbyte_force|SV* sv|STRLEN len
-Am|char*|SvPVbyte_nolen|SV* sv
-Am|char*|SvPVbytex_force|SV* sv|STRLEN len
-Am|char*|SvPVbytex|SV* sv|STRLEN len
-Am|char*|SvPVbyte|SV* sv|STRLEN len
-Am|char*|SvPVutf8_force|SV* sv|STRLEN len
-Am|char*|SvPVutf8_nolen|SV* sv
-Am|char*|SvPVutf8x_force|SV* sv|STRLEN len
-Am|char*|SvPVutf8x|SV* sv|STRLEN len
-Am|char*|SvPVutf8|SV* sv|STRLEN len
-Am|char*|SvPVx|SV* sv|STRLEN len
-Am|char*|SvPV|SV* sv|STRLEN len
-Am|const char *|OP_DESC|OP *o
-Am|const char *|OP_NAME|OP *o
-Am|int|AvFILL|AV* av
-Am|svtype|SvTYPE|SV* sv
-Am|unsigned char|HvENAMEUTF8|HV *stash
-Am|unsigned char|HvNAMEUTF8|HV *stash
-Am|void *|CopyD|void* src|void* dest|int nitems|type
-Am|void *|MoveD|void* src|void* dest|int nitems|type
-Am|void *|ZeroD|void* dest|int nitems|type
-Am|void*|HeKEY|HE* he
-Am|void|Copy|void* src|void* dest|int nitems|type
-Am|void|EXTEND|SP|SSize_t nitems
-Am|void|Move|void* src|void* dest|int nitems|type
-Am|void|Newxc|void* ptr|int nitems|type|cast
-Am|void|Newxz|void* ptr|int nitems|type
-Am|void|Newx|void* ptr|int nitems|type
-Am|void|PERL_SYS_INIT3|int *argc|char*** argv|char*** env
-Am|void|PERL_SYS_INIT|int *argc|char*** argv
-Am|void|PERL_SYS_TERM|
-Am|void|PUSHMARK|SP
-Am|void|PUSHi|IV iv
-Am|void|PUSHmortal
-Am|void|PUSHn|NV nv
-Am|void|PUSHp|char* str|STRLEN len
-Am|void|PUSHs|SV* sv
-Am|void|PUSHu|UV uv
-Am|void|PoisonFree|void* dest|int nitems|type
-Am|void|PoisonNew|void* dest|int nitems|type
-Am|void|PoisonWith|void* dest|int nitems|type|U8 byte
-Am|void|Poison|void* dest|int nitems|type
-Am|void|Renewc|void* ptr|int nitems|type|cast
-Am|void|Renew|void* ptr|int nitems|type
-Am|void|Safefree|void* ptr
-Am|void|StructCopy|type *src|type *dest|type
-Am|void|SvCUR_set|SV* sv|STRLEN len
-Am|void|SvGETMAGIC|SV* sv
-Am|void|SvIOK_off|SV* sv
-Am|void|SvIOK_only_UV|SV* sv
-Am|void|SvIOK_only|SV* sv
-Am|void|SvIOK_on|SV* sv
-Am|void|SvIV_set|SV* sv|IV val
-Am|void|SvLEN_set|SV* sv|STRLEN len
-Am|void|SvLOCK|SV* sv
-Am|void|SvMAGIC_set|SV* sv|MAGIC* val
-Am|void|SvNIOK_off|SV* sv
-Am|void|SvNOK_off|SV* sv
-Am|void|SvNOK_only|SV* sv
-Am|void|SvNOK_on|SV* sv
-Am|void|SvNV_set|SV* sv|NV val
-Am|void|SvOOK_offset|NN SV*sv|STRLEN len
-Am|void|SvPOK_off|SV* sv
-Am|void|SvPOK_only_UTF8|SV* sv
-Am|void|SvPOK_only|SV* sv
-Am|void|SvPOK_on|SV* sv
-Am|void|SvPV_set|SV* sv|char* val
-Am|void|SvREFCNT_dec_NN|SV* sv
-Am|void|SvREFCNT_dec|SV* sv
-Am|void|SvREFCNT_inc_simple_void_NN|SV* sv
-Am|void|SvREFCNT_inc_simple_void|SV* sv
-Am|void|SvREFCNT_inc_void_NN|SV* sv
-Am|void|SvREFCNT_inc_void|SV* sv
-Am|void|SvROK_off|SV* sv
-Am|void|SvROK_on|SV* sv
-Am|void|SvRV_set|SV* sv|SV* val
-Am|void|SvSETMAGIC|SV* sv
-Am|void|SvSHARE|SV* sv
-Am|void|SvSTASH_set|SV* sv|HV* val
-Am|void|SvSetMagicSV_nosteal|SV* dsv|SV* ssv
-Am|void|SvSetMagicSV|SV* dsv|SV* ssv
-Am|void|SvSetSV_nosteal|SV* dsv|SV* ssv
-Am|void|SvSetSV|SV* dsv|SV* ssv
-Am|void|SvTAINTED_off|SV* sv
-Am|void|SvTAINTED_on|SV* sv
-Am|void|SvTAINT|SV* sv
-Am|void|SvUNLOCK|SV* sv
-Am|void|SvUPGRADE|SV* sv|svtype type
-Am|void|SvUTF8_off|SV *sv
-Am|void|SvUTF8_on|SV *sv
-Am|void|SvUV_set|SV* sv|UV val
-Am|void|XPUSHi|IV iv
-Am|void|XPUSHmortal
-Am|void|XPUSHn|NV nv
-Am|void|XPUSHp|char* str|STRLEN len
-Am|void|XPUSHs|SV* sv
-Am|void|XPUSHu|UV uv
-Am|void|XSRETURN_IV|IV iv
-Am|void|XSRETURN_NV|NV nv
-Am|void|XSRETURN_PV|char* str
-Am|void|XSRETURN_UV|IV uv
-Am|void|XSRETURN|int nitems
-Am|void|XST_mIV|int pos|IV iv
-Am|void|XST_mNO|int pos
-Am|void|XST_mNV|int pos|NV nv
-Am|void|XST_mPV|int pos|char* str
-Am|void|XST_mUNDEF|int pos
-Am|void|XST_mYES|int pos
-Am|void|XopDISABLE|XOP *xop|which
-Am|void|XopENABLE|XOP *xop|which
-Am|void|XopENTRY_set|XOP *xop|which|value
-Am|void|Zero|void* dest|int nitems|type
-Am|void|mPUSHi|IV iv
-Am|void|mPUSHn|NV nv
-Am|void|mPUSHp|char* str|STRLEN len
-Am|void|mPUSHs|SV* sv
-Am|void|mPUSHu|UV uv
-Am|void|mXPUSHi|IV iv
-Am|void|mXPUSHn|NV nv
-Am|void|mXPUSHp|char* str|STRLEN len
-Am|void|mXPUSHs|SV* sv
-Am|void|mXPUSHu|UV uv
-Am|void|sv_catpv_nomg|SV* sv|const char* ptr
-Am|void|sv_catpvn_nomg|SV* sv|const char* ptr|STRLEN len
-Am|void|sv_catpvs_flags|SV* sv|const char* s|I32 flags
-Am|void|sv_catpvs_mg|SV* sv|const char* s
-Am|void|sv_catpvs_nomg|SV* sv|const char* s
-Am|void|sv_catpvs|SV* sv|const char* s
-Am|void|sv_catsv_nomg|SV* dsv|SV* ssv
-Am|void|sv_setpvs_mg|SV* sv|const char* s
-Am|void|sv_setpvs|SV* sv|const char* s
-Am|void|sv_setsv_nomg|SV* dsv|SV* ssv
-Am||XopENTRYCUSTOM|const OP *o|which
-Am||XopENTRY|XOP *xop|which
-mU||LVRET
-mn|GV *|PL_DBsub
-mn|GV*|PL_last_in_gv
-mn|GV*|PL_ofsgv
-mn|SV *|PL_DBsingle
-mn|SV *|PL_DBtrace
-mn|SV*|PL_rs
-mn|bool|PL_dowarn
-ms||djSP
-mx|U32|BhkFLAGS|BHK *hk
-mx|void *|BhkENTRY|BHK *hk|which
-mx|void|CALL_BLOCK_HOOKS|which|arg
-m|HV *|PAD_COMPNAME_OURSTASH|PADOFFSET po
-m|HV *|PAD_COMPNAME_TYPE|PADOFFSET po
-m|HV *|PadnameOURSTASH
-m|HV *|PadnameTYPE|PADNAME pn
-m|STRLEN|PAD_COMPNAME_GEN_set|PADOFFSET po|int gen
-m|STRLEN|PAD_COMPNAME_GEN|PADOFFSET po
-m|SV *|CX_CURPAD_SV|struct context|PADOFFSET po
-m|SV *|PAD_BASE_SV |PADLIST padlist|PADOFFSET po
-m|SV *|PAD_SETSV |PADOFFSET po|SV* sv
-m|SV *|PAD_SV |PADOFFSET po
-m|SV *|PAD_SVl |PADOFFSET po
-m|SV *|refcounted_he_fetch_pvs|const struct refcounted_he *chain|const char *key|U32 flags
-m|U32|PAD_COMPNAME_FLAGS|PADOFFSET po
-m|U32|SvTHINKFIRST|SV *sv
-m|bool|CvWEAKOUTSIDE|CV *cv
-m|bool|PadnameIsOUR|PADNAME pn
-m|bool|PadnameIsSTATE|PADNAME pn
-m|bool|PadnameOUTER|PADNAME pn
-m|char *|PAD_COMPNAME_PV|PADOFFSET po
-m|struct refcounted_he *|refcounted_he_new_pvs|struct refcounted_he *parent|const char *key|SV *value|U32 flags
-m|void|CX_CURPAD_SAVE|struct context
-m|void|PAD_CLONE_VARS|PerlInterpreter *proto_perl|CLONE_PARAMS* param
-m|void|PAD_RESTORE_LOCAL|PAD *opad
-m|void|PAD_SAVE_LOCAL|PAD *opad|PAD *npad
-m|void|PAD_SAVE_SETNULLPAD
-m|void|PAD_SET_CUR |PADLIST padlist|I32 n
-m|void|PAD_SET_CUR_NOSAVE |PADLIST padlist|I32 n
-m|void|SAVECLEARSV |SV **svp
-m|void|SAVECOMPPAD
-m|void|SAVEPADSV |PADOFFSET po
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5003070 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5003070
deleted file mode 100644
index 722f52f91f0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5003070
+++ /dev/null
@@ -1,42 +0,0 @@
-5.003070
-HEf_SVKEY # E
-HeHASH # U
-HeKEY # U
-HeKLEN # U
-HeSVKEY # U
-HeSVKEY_force # U
-HeVAL # U
-cv_const_sv # U
-do_open # E (Perl_do_open)
-gv_efullname3 # U
-gv_fullname3 # U
-gv_stashpvn # E
-hv_delete_ent # U
-hv_exists_ent # U
-hv_fetch_ent # U
-hv_iterkeysv # E
-hv_ksplit # E
-hv_store_ent # U
-my_pclose # E (Perl_my_pclose)
-my_popen # E (Perl_my_popen)
-sv_gets # E (Perl_sv_gets)
-unsharepvn # E
-PERL_HASH # added by devel/scanprov
-PERL_INT_MAX # added by devel/scanprov
-PERL_INT_MIN # added by devel/scanprov
-PERL_LONG_MAX # added by devel/scanprov
-PERL_LONG_MIN # added by devel/scanprov
-PERL_QUAD_MAX # added by devel/scanprov
-PERL_QUAD_MIN # added by devel/scanprov
-PERL_SHORT_MAX # added by devel/scanprov
-PERL_SHORT_MIN # added by devel/scanprov
-PERL_UCHAR_MAX # added by devel/scanprov
-PERL_UCHAR_MIN # added by devel/scanprov
-PERL_UINT_MAX # added by devel/scanprov
-PERL_UINT_MIN # added by devel/scanprov
-PERL_ULONG_MAX # added by devel/scanprov
-PERL_ULONG_MIN # added by devel/scanprov
-PERL_UQUAD_MAX # added by devel/scanprov
-PERL_UQUAD_MIN # added by devel/scanprov
-PERL_USHORT_MAX # added by devel/scanprov
-PERL_USHORT_MIN # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004000
deleted file mode 100644
index ae821b9d101..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004000
+++ /dev/null
@@ -1,51 +0,0 @@
-5.004000
-GIMME_V # E
-G_VOID # E
-HePV # A
-HeSVKEY_set # U
-PUSHu # U
-SvSetMagicSV # U
-SvSetMagicSV_nosteal # U
-SvSetSV_nosteal # U
-SvTAINTED # U
-SvTAINTED_off # U
-SvTAINTED_on # U
-SvUV # U
-SvUVX # U
-SvUVx # U
-XPUSHu # U
-block_end # E (Perl_block_end)
-block_gimme # E
-block_start # E (Perl_block_start)
-boolSV # U
-call_list # E
-delimcpy # U
-gv_autoload4 # U
-gv_fetchmethod_autoload # E
-hv_delayfree_ent # E
-hv_free_ent # E
-ibcmp_locale # U
-intro_my # E
-isPRINT # U
-my_failure_exit # E
-newRV_inc # U
-newRV_noinc # E
-rsignal # E
-rsignal_state # E
-save_I16 # E
-save_gp # E
-share_hek # E
-start_subparse # E (Perl_start_subparse)
-sv_2uv # U
-sv_cmp_locale # E
-sv_derived_from # E
-sv_setuv # E
-sv_taint # U
-sv_tainted # E
-sv_untaint # E
-sv_vcatpvfn # E
-sv_vsetpvfn # E
-toLOWER_LC # U
-SvUVXx # added by devel/scanprov
-memEQ # added by devel/scanprov
-memNE # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004010
deleted file mode 100644
index 8c298666039..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004010
+++ /dev/null
@@ -1 +0,0 @@
-5.004010
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004020 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004020
deleted file mode 100644
index 4b43fdf8e46..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004020
+++ /dev/null
@@ -1 +0,0 @@
-5.004020
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004030 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004030
deleted file mode 100644
index e45facbb1f9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004030
+++ /dev/null
@@ -1 +0,0 @@
-5.004030
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004040 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004040
deleted file mode 100644
index 69ccd5d62c5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004040
+++ /dev/null
@@ -1 +0,0 @@
-5.004040
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004050 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004050
deleted file mode 100644
index 82fdcf0fd55..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5004050
+++ /dev/null
@@ -1,41 +0,0 @@
-5.004050
-PL_na # E
-PL_sv_no # E
-PL_sv_undef # E
-PL_sv_yes # E
-SvGETMAGIC # U
-do_binmode # E
-newCONSTSUB # E
-newSVpvn # E
-save_aelem # U
-save_helem # U
-sv_catpv_mg # E
-sv_catpvn_mg # U
-sv_catsv_mg # U
-sv_setiv_mg # E
-sv_setpv_mg # E
-sv_setpvn_mg # E
-sv_setsv_mg # E
-sv_setuv_mg # E
-sv_usepvn_mg # U
-AvFILLp # added by devel/scanprov
-DEFSV # added by devel/scanprov
-ERRSV # added by devel/scanprov
-PL_compiling # added by devel/scanprov
-PL_curcop # added by devel/scanprov
-PL_curstash # added by devel/scanprov
-PL_debstash # added by devel/scanprov
-PL_defgv # added by devel/scanprov
-PL_diehook # added by devel/scanprov
-PL_dirty # added by devel/scanprov
-PL_errgv # added by devel/scanprov
-PL_perl_destruct_level # added by devel/scanprov
-PL_perldb # added by devel/scanprov
-PL_stack_base # added by devel/scanprov
-PL_stack_sp # added by devel/scanprov
-PL_stdingv # added by devel/scanprov
-PL_sv_arenaroot # added by devel/scanprov
-PL_tainted # added by devel/scanprov
-PL_tainting # added by devel/scanprov
-SAVE_DEFSV # added by devel/scanprov
-dTHR # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005000
deleted file mode 100644
index 070a690e903..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005000
+++ /dev/null
@@ -1,38 +0,0 @@
-5.005000
-PL_curpad # E
-PL_modglobal # E
-cx_dump # U
-debop # U
-debprofdump # U
-fbm_compile # E (Perl_fbm_compile)
-fbm_instr # E (Perl_fbm_instr)
-get_op_descs # E
-get_op_names # E
-init_stacks # E
-mg_length # E
-mg_size # E
-newHVhv # E
-new_stackinfo # E
-regdump # U
-regexec_flags # E
-regnext # E (Perl_regnext)
-runops_debug # E
-runops_standard # E
-save_iv # E (save_iv)
-save_op # U
-sv_iv # E
-sv_peek # U
-sv_pvn # E
-sv_true # E
-sv_uv # E
-CPERLscope # added by devel/scanprov
-END_EXTERN_C # added by devel/scanprov
-EXTERN_C # added by devel/scanprov
-NOOP # added by devel/scanprov
-PL_DBsignal # added by devel/scanprov
-PL_Sv # added by devel/scanprov
-PL_hexdigit # added by devel/scanprov
-PL_hints # added by devel/scanprov
-PL_laststatval # added by devel/scanprov
-PL_statcache # added by devel/scanprov
-START_EXTERN_C # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005010
deleted file mode 100644
index deebff5bf8a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005010
+++ /dev/null
@@ -1 +0,0 @@
-5.005010
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005020 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005020
deleted file mode 100644
index d19ff2ae09e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005020
+++ /dev/null
@@ -1 +0,0 @@
-5.005020
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005030 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005030
deleted file mode 100644
index f268c751dad..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005030
+++ /dev/null
@@ -1,4 +0,0 @@
-5.005030
-POPpx # E
-get_vtbl # E
-save_generic_svref # E
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005040 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005040
deleted file mode 100644
index 8a165c20337..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5005040
+++ /dev/null
@@ -1 +0,0 @@
-5.005040
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006000
deleted file mode 100644
index 67482967bf7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006000
+++ /dev/null
@@ -1,290 +0,0 @@
-5.006000
-PERL_SYS_INIT3 # U
-POPn # E
-PUSHn # E
-SvIOK_UV # U
-SvIOK_notUV # U
-SvIOK_only_UV # U
-SvNV # E
-SvNVX # E
-SvNV_set # E
-SvNVx # E
-SvPOK_only_UTF8 # U
-SvPV_nolen # U
-SvPVbyte # U
-SvPVbyte_nolen # U
-SvPVbytex # U
-SvPVbytex_force # U
-SvPVutf8 # U
-SvPVutf8_force # U
-SvPVutf8_nolen # U
-SvPVutf8x # U
-SvPVutf8x_force # U
-SvUTF8 # U
-SvUTF8_off # U
-SvUTF8_on # U
-XPUSHn # E
-XSRETURN_NV # E
-XST_mNV # E
-av_delete # E
-av_exists # E
-call_argv # E (perl_call_argv)
-call_atexit # E
-call_method # E (perl_call_method)
-call_pv # E (perl_call_pv)
-call_sv # E (perl_call_sv)
-cast_i32 # E (cast_i32)
-cast_iv # E (cast_iv)
-cast_ulong # E
-cast_uv # E (cast_uv)
-croak # E (Perl_croak)
-die # E (Perl_die)
-do_gv_dump # E
-do_gvgv_dump # E
-do_hv_dump # E
-do_magic_dump # E
-do_op_dump # E
-do_open9 # E
-do_pmop_dump # E
-do_sv_dump # E
-dump_all # U
-dump_eval # U
-dump_form # U
-dump_indent # E
-dump_packsubs # U
-dump_sub # U
-dump_vindent # E
-eval_pv # E (perl_eval_pv)
-eval_sv # E (perl_eval_sv)
-form # E (Perl_form)
-get_av # E (perl_get_av)
-get_context # U
-get_cv # E (perl_get_cv)
-get_hv # E (perl_get_hv)
-get_ppaddr # E
-get_sv # E (perl_get_sv)
-gv_dump # E
-init_i18nl10n # E (perl_init_i18nl10n)
-init_i18nl14n # E (perl_init_i18nl14n)
-isASCII # U
-isCNTRL # U
-isGRAPH # U
-isPUNCT # U
-isXDIGIT # U
-is_uni_alnum # E
-is_uni_alnum_lc # E
-is_uni_alpha # E
-is_uni_alpha_lc # E
-is_uni_ascii # E
-is_uni_ascii_lc # E
-is_uni_cntrl # E
-is_uni_cntrl_lc # E
-is_uni_digit # E
-is_uni_digit_lc # E
-is_uni_graph # E
-is_uni_graph_lc # E
-is_uni_idfirst # E
-is_uni_idfirst_lc # E
-is_uni_lower # E
-is_uni_lower_lc # E
-is_uni_print # E
-is_uni_print_lc # E
-is_uni_punct # E
-is_uni_punct_lc # E
-is_uni_space # E
-is_uni_space_lc # E
-is_uni_upper # E
-is_uni_upper_lc # E
-is_uni_xdigit # E
-is_uni_xdigit_lc # E
-is_utf8_alnum # E
-is_utf8_alpha # E
-is_utf8_ascii # E
-is_utf8_char # U
-is_utf8_cntrl # E
-is_utf8_digit # E
-is_utf8_graph # E
-is_utf8_idfirst # E
-is_utf8_lower # E
-is_utf8_mark # E
-is_utf8_print # E
-is_utf8_punct # E
-is_utf8_space # E
-is_utf8_upper # E
-is_utf8_xdigit # E
-load_module # E
-magic_dump # E
-mess # E (Perl_mess)
-my_atof # E
-my_fflush_all # E
-newANONATTRSUB # E
-newATTRSUB # U
-newSVnv # E (Perl_newSVnv)
-newSVpvf # E (Perl_newSVpvf)
-newSVuv # E
-newXS # E (Perl_newXS)
-newXSproto # E
-new_collate # E (perl_new_collate)
-new_ctype # E (perl_new_ctype)
-new_numeric # E (perl_new_numeric)
-op_dump # E
-perl_parse # E (perl_parse)
-pmop_dump # E
-pv_display # E
-re_intuit_string # E
-reginitcolors # E
-require_pv # E (perl_require_pv)
-safesyscalloc # U
-safesysfree # U
-safesysmalloc # U
-safesysrealloc # U
-save_I8 # E
-save_alloc # E
-save_destructor # E (Perl_save_destructor)
-save_destructor_x # E
-save_re_context # E
-save_vptr # E
-scan_bin # E
-scan_hex # E (Perl_scan_hex)
-scan_oct # E (Perl_scan_oct)
-set_context # U
-set_numeric_local # E (perl_set_numeric_local)
-set_numeric_radix # E
-set_numeric_standard # E (perl_set_numeric_standard)
-str_to_version # E
-sv_2pv_nolen # U
-sv_2pvbyte # E
-sv_2pvbyte_nolen # U
-sv_2pvutf8 # E
-sv_2pvutf8_nolen # U
-sv_catpvf # E (Perl_sv_catpvf)
-sv_catpvf_mg # E (Perl_sv_catpvf_mg)
-sv_force_normal # U
-sv_len_utf8 # E
-sv_nv # E (Perl_sv_nv)
-sv_pos_b2u # E
-sv_pos_u2b # E
-sv_pv # U
-sv_pvbyte # U
-sv_pvbyten # E
-sv_pvbyten_force # E
-sv_pvutf8 # U
-sv_pvutf8n # E
-sv_pvutf8n_force # E
-sv_rvweaken # E
-sv_setnv # E (Perl_sv_setnv)
-sv_setnv_mg # E (Perl_sv_setnv_mg)
-sv_setpvf # E (Perl_sv_setpvf)
-sv_setpvf_mg # E (Perl_sv_setpvf_mg)
-sv_setref_nv # E (Perl_sv_setref_nv)
-sv_utf8_decode # E
-sv_utf8_downgrade # E
-sv_utf8_encode # E
-sv_vcatpvf # E
-sv_vcatpvf_mg # E
-sv_vsetpvf # E
-sv_vsetpvf_mg # E
-swash_init # E
-to_uni_lower_lc # E
-to_uni_title_lc # E
-to_uni_upper_lc # E
-utf8_distance # E
-utf8_hop # U
-vcroak # E
-vform # E
-vload_module # E
-vmess # E
-vnewSVpvf # E
-vwarn # E
-vwarner # E
-warn # E (Perl_warn)
-warner # E
-CopFILE # added by devel/scanprov
-CopFILEAV # added by devel/scanprov
-CopFILEGV # added by devel/scanprov
-CopFILEGV_set # added by devel/scanprov
-CopFILESV # added by devel/scanprov
-CopFILE_set # added by devel/scanprov
-CopSTASH # added by devel/scanprov
-CopSTASHPV # added by devel/scanprov
-CopSTASHPV_set # added by devel/scanprov
-CopSTASH_eq # added by devel/scanprov
-CopSTASH_set # added by devel/scanprov
-INT2PTR # added by devel/scanprov
-IVSIZE # added by devel/scanprov
-IVTYPE # added by devel/scanprov
-IVdf # added by devel/scanprov
-NUM2PTR # added by devel/scanprov
-NVTYPE # added by devel/scanprov
-PERL_REVISION # added by devel/scanprov
-PERL_SUBVERSION # added by devel/scanprov
-PERL_VERSION # added by devel/scanprov
-PL_no_modify # added by devel/scanprov
-PL_ppaddr # added by devel/scanprov
-PTR2IV # added by devel/scanprov
-PTR2NV # added by devel/scanprov
-PTR2UV # added by devel/scanprov
-PTRV # added by devel/scanprov
-SVf # added by devel/scanprov
-SVf_UTF8 # added by devel/scanprov
-UVSIZE # added by devel/scanprov
-UVTYPE # added by devel/scanprov
-UVof # added by devel/scanprov
-UVuf # added by devel/scanprov
-UVxf # added by devel/scanprov
-WARN_ALL # added by devel/scanprov
-WARN_AMBIGUOUS # added by devel/scanprov
-WARN_BAREWORD # added by devel/scanprov
-WARN_CLOSED # added by devel/scanprov
-WARN_CLOSURE # added by devel/scanprov
-WARN_DEBUGGING # added by devel/scanprov
-WARN_DEPRECATED # added by devel/scanprov
-WARN_DIGIT # added by devel/scanprov
-WARN_EXEC # added by devel/scanprov
-WARN_EXITING # added by devel/scanprov
-WARN_GLOB # added by devel/scanprov
-WARN_INPLACE # added by devel/scanprov
-WARN_INTERNAL # added by devel/scanprov
-WARN_IO # added by devel/scanprov
-WARN_MALLOC # added by devel/scanprov
-WARN_MISC # added by devel/scanprov
-WARN_NEWLINE # added by devel/scanprov
-WARN_NUMERIC # added by devel/scanprov
-WARN_ONCE # added by devel/scanprov
-WARN_OVERFLOW # added by devel/scanprov
-WARN_PACK # added by devel/scanprov
-WARN_PARENTHESIS # added by devel/scanprov
-WARN_PIPE # added by devel/scanprov
-WARN_PORTABLE # added by devel/scanprov
-WARN_PRECEDENCE # added by devel/scanprov
-WARN_PRINTF # added by devel/scanprov
-WARN_PROTOTYPE # added by devel/scanprov
-WARN_QW # added by devel/scanprov
-WARN_RECURSION # added by devel/scanprov
-WARN_REDEFINE # added by devel/scanprov
-WARN_REGEXP # added by devel/scanprov
-WARN_RESERVED # added by devel/scanprov
-WARN_SEMICOLON # added by devel/scanprov
-WARN_SEVERE # added by devel/scanprov
-WARN_SIGNAL # added by devel/scanprov
-WARN_SUBSTR # added by devel/scanprov
-WARN_SYNTAX # added by devel/scanprov
-WARN_TAINT # added by devel/scanprov
-WARN_UNINITIALIZED # added by devel/scanprov
-WARN_UNOPENED # added by devel/scanprov
-WARN_UNPACK # added by devel/scanprov
-WARN_UNTIE # added by devel/scanprov
-WARN_UTF8 # added by devel/scanprov
-WARN_VOID # added by devel/scanprov
-XSprePUSH # added by devel/scanprov
-aTHX # added by devel/scanprov
-aTHX_ # added by devel/scanprov
-ckWARN # added by devel/scanprov
-dNOOP # added by devel/scanprov
-dTHX # added by devel/scanprov
-dTHXa # added by devel/scanprov
-dTHXoa # added by devel/scanprov
-dXSTARG # added by devel/scanprov
-isALNUMC # added by devel/scanprov
-pTHX # added by devel/scanprov
-pTHX_ # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006001
deleted file mode 100644
index b3626c0b55f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006001
+++ /dev/null
@@ -1,17 +0,0 @@
-5.006001
-SvGAMAGIC # U
-apply_attrs_string # U
-bytes_to_utf8 # U
-gv_efullname4 # U
-gv_fullname4 # U
-isBLANK # U
-isPSXSPC # U
-is_utf8_string # U
-save_generic_pvref # U
-utf16_to_utf8 # E (Perl_utf16_to_utf8)
-utf16_to_utf8_reversed # E (Perl_utf16_to_utf8_reversed)
-utf8_to_bytes # U
-G_METHOD # added by devel/scanprov
-NVef # added by devel/scanprov
-NVff # added by devel/scanprov
-NVgf # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006002
deleted file mode 100644
index dfe09ce2c59..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5006002
+++ /dev/null
@@ -1 +0,0 @@
-5.006002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007000
deleted file mode 100644
index 49d08465db8..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007000
+++ /dev/null
@@ -1 +0,0 @@
-5.007000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007001
deleted file mode 100644
index 3de815ec8dd..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007001
+++ /dev/null
@@ -1,28 +0,0 @@
-5.007001
-ASCII_TO_NEED # U
-NATIVE_TO_NEED # U
-POPpbytex # E
-SvUOK # U
-bytes_from_utf8 # U
-despatch_signals # U
-do_openn # U
-gv_handler # U
-is_lvalue_sub # U
-my_popen_list # U
-newSVpvn_share # U
-save_mortalizesv # U
-scan_num # E (Perl_scan_num)
-sv_force_normal_flags # U
-sv_setref_uv # U
-sv_unref_flags # U
-sv_utf8_upgrade # E (Perl_sv_utf8_upgrade)
-utf8_length # U
-utf8_to_uvchr # U
-utf8_to_uvuni # U
-utf8n_to_uvchr # U
-utf8n_to_uvuni # U
-uvchr_to_utf8 # U
-uvuni_to_utf8 # U
-PTR2ul # added by devel/scanprov
-SV_IMMEDIATE_UNREF # added by devel/scanprov
-UVXf # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007002
deleted file mode 100644
index 393fcf1f6b9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007002
+++ /dev/null
@@ -1,72 +0,0 @@
-5.007002
-SvPV_force_nomg # U
-SvPV_nomg # U
-calloc # U
-dAX # E
-dITEMS # E
-getcwd_sv # U
-grok_number # U
-grok_numeric_radix # U
-init_tm # U
-malloc # U
-mfree # U
-mini_mktime # U
-my_atof2 # U
-my_strftime # U
-op_null # U
-realloc # U
-sv_2pv_flags # U
-sv_catpvn_flags # U
-sv_catpvn_nomg # U
-sv_catsv_flags # U
-sv_catsv_nomg # U
-sv_pvn_force_flags # U
-sv_setsv_flags # U
-sv_setsv_nomg # U
-sv_utf8_upgrade_flags # U
-sv_utf8_upgrade_nomg # U
-swash_fetch # E (Perl_swash_fetch)
-GROK_NUMERIC_RADIX # added by devel/scanprov
-IN_LOCALE # added by devel/scanprov
-IN_LOCALE_COMPILETIME # added by devel/scanprov
-IN_LOCALE_RUNTIME # added by devel/scanprov
-IS_NUMBER_GREATER_THAN_UV_MAX # added by devel/scanprov
-IS_NUMBER_INFINITY # added by devel/scanprov
-IS_NUMBER_IN_UV # added by devel/scanprov
-IS_NUMBER_NEG # added by devel/scanprov
-IS_NUMBER_NOT_INT # added by devel/scanprov
-PERL_MAGIC_arylen # added by devel/scanprov
-PERL_MAGIC_backref # added by devel/scanprov
-PERL_MAGIC_bm # added by devel/scanprov
-PERL_MAGIC_collxfrm # added by devel/scanprov
-PERL_MAGIC_dbfile # added by devel/scanprov
-PERL_MAGIC_dbline # added by devel/scanprov
-PERL_MAGIC_defelem # added by devel/scanprov
-PERL_MAGIC_env # added by devel/scanprov
-PERL_MAGIC_envelem # added by devel/scanprov
-PERL_MAGIC_ext # added by devel/scanprov
-PERL_MAGIC_fm # added by devel/scanprov
-PERL_MAGIC_isa # added by devel/scanprov
-PERL_MAGIC_isaelem # added by devel/scanprov
-PERL_MAGIC_nkeys # added by devel/scanprov
-PERL_MAGIC_overload_table # added by devel/scanprov
-PERL_MAGIC_pos # added by devel/scanprov
-PERL_MAGIC_qr # added by devel/scanprov
-PERL_MAGIC_regdata # added by devel/scanprov
-PERL_MAGIC_regdatum # added by devel/scanprov
-PERL_MAGIC_regex_global # added by devel/scanprov
-PERL_MAGIC_sig # added by devel/scanprov
-PERL_MAGIC_sigelem # added by devel/scanprov
-PERL_MAGIC_substr # added by devel/scanprov
-PERL_MAGIC_sv # added by devel/scanprov
-PERL_MAGIC_taint # added by devel/scanprov
-PERL_MAGIC_tied # added by devel/scanprov
-PERL_MAGIC_tiedelem # added by devel/scanprov
-PERL_MAGIC_tiedscalar # added by devel/scanprov
-PERL_MAGIC_uvar # added by devel/scanprov
-PERL_MAGIC_vec # added by devel/scanprov
-PERL_UNUSED_DECL # added by devel/scanprov
-PERL_UNUSED_VAR # added by devel/scanprov
-SV_GMAGIC # added by devel/scanprov
-SvPV_flags # added by devel/scanprov
-SvPV_force_flags # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007003
deleted file mode 100644
index 9347217b2c7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5007003
+++ /dev/null
@@ -1,87 +0,0 @@
-5.007003
-OP_DESC # U
-OP_NAME # U
-PL_peepp # E
-PerlIO_clearerr # U (PerlIO_clearerr)
-PerlIO_close # U (PerlIO_close)
-PerlIO_eof # U (PerlIO_eof)
-PerlIO_error # U (PerlIO_error)
-PerlIO_fileno # U (PerlIO_fileno)
-PerlIO_fill # U (PerlIO_fill)
-PerlIO_flush # U (PerlIO_flush)
-PerlIO_get_base # U (PerlIO_get_base)
-PerlIO_get_bufsiz # U (PerlIO_get_bufsiz)
-PerlIO_get_cnt # U (PerlIO_get_cnt)
-PerlIO_get_ptr # U (PerlIO_get_ptr)
-PerlIO_read # U (PerlIO_read)
-PerlIO_seek # U (PerlIO_seek)
-PerlIO_set_cnt # U (PerlIO_set_cnt)
-PerlIO_set_ptrcnt # U (PerlIO_set_ptrcnt)
-PerlIO_setlinebuf # U (PerlIO_setlinebuf)
-PerlIO_stderr # U (PerlIO_stderr)
-PerlIO_stdin # U (PerlIO_stdin)
-PerlIO_stdout # U (PerlIO_stdout)
-PerlIO_tell # U (PerlIO_tell)
-PerlIO_unread # U (PerlIO_unread)
-PerlIO_write # U (PerlIO_write)
-SvLOCK # U
-SvSHARE # U
-SvUNLOCK # U
-atfork_lock # U
-atfork_unlock # U
-custom_op_desc # U
-custom_op_name # U
-deb # U
-debstack # U
-debstackptrs # U
-grok_bin # U
-grok_hex # U
-grok_oct # U
-gv_fetchmeth_autoload # U
-ibcmp_utf8 # U
-my_fork # U
-my_socketpair # U
-pack_cat # U
-perl_destruct # E (perl_destruct)
-pv_uni_display # U
-save_shared_pvref # U
-savesharedpv # U
-sortsv # U
-sv_magicext # U
-sv_nolocking # U
-sv_nosharing # U
-sv_pvn_nomg # U
-sv_recode_to_utf8 # U
-sv_uni_display # U
-toFOLD_uni # U
-toLOWER_uni # A
-toTITLE_uni # A
-toUPPER_uni # A
-to_uni_fold # U
-to_uni_lower # E (Perl_to_uni_lower)
-to_uni_title # E (Perl_to_uni_title)
-to_uni_upper # E (Perl_to_uni_upper)
-to_utf8_case # U
-unpack_str # U
-uvchr_to_utf8_flags # U
-uvuni_to_utf8_flags # U
-vdeb # U
-IS_NUMBER_NAN # added by devel/scanprov
-MY_CXT # added by devel/scanprov
-MY_CXT_INIT # added by devel/scanprov
-PERL_MAGIC_shared # added by devel/scanprov
-PERL_MAGIC_shared_scalar # added by devel/scanprov
-PERL_MAGIC_uvar_elem # added by devel/scanprov
-PERL_SCAN_ALLOW_UNDERSCORES # added by devel/scanprov
-PERL_SCAN_DISALLOW_PREFIX # added by devel/scanprov
-PERL_SCAN_GREATER_THAN_UV_MAX # added by devel/scanprov
-START_MY_CXT # added by devel/scanprov
-_aMY_CXT # added by devel/scanprov
-_pMY_CXT # added by devel/scanprov
-aMY_CXT # added by devel/scanprov
-aMY_CXT_ # added by devel/scanprov
-dMY_CXT # added by devel/scanprov
-dMY_CXT_SV # added by devel/scanprov
-pMY_CXT # added by devel/scanprov
-pMY_CXT_ # added by devel/scanprov
-packWARN # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008000
deleted file mode 100644
index 8af2dfae4d2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008000
+++ /dev/null
@@ -1,8 +0,0 @@
-5.008000
-Poison # E
-hv_iternext_flags # U
-hv_store_flags # U
-is_utf8_idcont # U
-nothreadhook # U
-WARN_LAYER # added by devel/scanprov
-WARN_THREADS # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008001
deleted file mode 100644
index 48a800aaa88..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008001
+++ /dev/null
@@ -1,30 +0,0 @@
-5.008001
-CvPADLIST # E
-PL_comppad # E
-SvVOK # U
-XSRETURN_UV # U
-doing_taint # U
-find_runcv # U
-is_utf8_string_loc # U
-packlist # U
-pad_add_anon # U
-pad_new # E
-pad_tidy # E
-save_bool # U
-savestack_grow_cnt # U
-seed # U
-sv_cat_decode # U
-sv_setpviv # U
-sv_setpviv_mg # U
-unpackstring # U
-IN_PERL_COMPILETIME # added by devel/scanprov
-PERL_ABS # added by devel/scanprov
-PERL_GCC_BRACE_GROUPS_FORBIDDEN # added by devel/scanprov
-PERL_MAGIC_utf8 # added by devel/scanprov
-PERL_MAGIC_vstring # added by devel/scanprov
-PERL_SCAN_SILENT_ILLDIGIT # added by devel/scanprov
-PERL_SIGNALS_UNSAFE_FLAG # added by devel/scanprov
-PL_signals # added by devel/scanprov
-SV_COW_DROP_PV # added by devel/scanprov
-SV_UTF8_NO_ENCODING # added by devel/scanprov
-XST_mUV # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008002
deleted file mode 100644
index 63aac525fed..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008002
+++ /dev/null
@@ -1 +0,0 @@
-5.008002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008003
deleted file mode 100644
index 50c6ce1aa14..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008003
+++ /dev/null
@@ -1,3 +0,0 @@
-5.008003
-SvIsCOW # U
-SvIsCOW_shared_hash # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008004
deleted file mode 100644
index bb7bcdf66ac..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008004
+++ /dev/null
@@ -1 +0,0 @@
-5.008004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008005
deleted file mode 100644
index 7bd2029f4b3..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008005
+++ /dev/null
@@ -1 +0,0 @@
-5.008005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008006
deleted file mode 100644
index ba5cad07ed0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008006
+++ /dev/null
@@ -1 +0,0 @@
-5.008006
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008007
deleted file mode 100644
index 7d656f0b9e2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008007
+++ /dev/null
@@ -1 +0,0 @@
-5.008007
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008008
deleted file mode 100644
index f17b19ff4b2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008008
+++ /dev/null
@@ -1 +0,0 @@
-5.008008
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008009
deleted file mode 100644
index 129e018f45f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5008009
+++ /dev/null
@@ -1 +0,0 @@
-5.008009
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009000
deleted file mode 100644
index 28bc85958ec..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009000
+++ /dev/null
@@ -1,6 +0,0 @@
-5.009000
-new_version # U
-save_set_svflags # U
-vcmp # U
-vnumify # U
-vstringify # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009001
deleted file mode 100644
index 0666184e1df..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009001
+++ /dev/null
@@ -1,8 +0,0 @@
-5.009001
-SvIV_nomg # U
-SvUV_nomg # U
-hv_clear_placeholders # U
-hv_scalar # U
-scan_version # E (Perl_scan_version)
-sv_2iv_flags # U
-sv_2uv_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009002
deleted file mode 100644
index 65d7de90726..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009002
+++ /dev/null
@@ -1,32 +0,0 @@
-5.009002
-CopyD # E
-MoveD # E
-PUSHmortal # E
-SvPVbyte_force # U
-UNDERBAR # E
-XCPT_CATCH # E
-XCPT_RETHROW # E
-XCPT_TRY_END # E
-XCPT_TRY_START # E
-XPUSHmortal # E
-ZeroD # E
-dUNDERBAR # E
-dXCPT # E
-find_rundefsvoffset # U
-gv_fetchpvn_flags # U
-gv_fetchsv # U
-mPUSHi # U
-mPUSHn # U
-mPUSHp # U
-mPUSHu # U
-mXPUSHi # U
-mXPUSHn # U
-mXPUSHp # U
-mXPUSHu # U
-op_refcnt_lock # U
-op_refcnt_unlock # U
-savesvpv # U
-vnormal # U
-MY_CXT_CLONE # added by devel/scanprov
-SV_NOSTEAL # added by devel/scanprov
-UTF8_MAXBYTES # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009003
deleted file mode 100644
index e8f1065315e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009003
+++ /dev/null
@@ -1,67 +0,0 @@
-5.009003
-Newx # E
-Newxc # E
-Newxz # E
-PL_check # E
-SvMAGIC_set # U
-SvRV_set # U
-SvSTASH_set # U
-SvUV_set # U
-av_arylen_p # U
-ckwarn # U
-ckwarn_d # U
-csighandler # E (Perl_csighandler)
-dAXMARK # E
-dMULTICALL # E
-doref # U
-gv_const_sv # U
-gv_stashpvs # U
-hv_eiter_p # U
-hv_eiter_set # U
-hv_fetchs # U
-hv_name_set # U
-hv_placeholders_get # U
-hv_placeholders_set # U
-hv_riter_p # U
-hv_riter_set # U
-is_utf8_string_loclen # U
-my_sprintf # U
-newGIVENOP # U
-newSVhek # U
-newSVpvs # U
-newSVpvs_share # U
-newWHENOP # U
-pad_compname_type # U
-savepvs # U
-sortsv_flags # U
-sv_catpvs # U
-vverify # U
-GvSVn # added by devel/scanprov
-HvNAMELEN_get # added by devel/scanprov
-HvNAME_get # added by devel/scanprov
-PERLIO_FUNCS_CAST # added by devel/scanprov
-PERLIO_FUNCS_DECL # added by devel/scanprov
-PERL_UNUSED_ARG # added by devel/scanprov
-PTR2nat # added by devel/scanprov
-STR_WITH_LEN # added by devel/scanprov
-SV_CONST_RETURN # added by devel/scanprov
-SV_MUTABLE_RETURN # added by devel/scanprov
-SV_SMAGIC # added by devel/scanprov
-SvPVX_const # added by devel/scanprov
-SvPVX_mutable # added by devel/scanprov
-SvPV_const # added by devel/scanprov
-SvPV_flags_const # added by devel/scanprov
-SvPV_flags_const_nolen # added by devel/scanprov
-SvPV_flags_mutable # added by devel/scanprov
-SvPV_force_flags_mutable # added by devel/scanprov
-SvPV_force_flags_nolen # added by devel/scanprov
-SvPV_force_mutable # added by devel/scanprov
-SvPV_force_nolen # added by devel/scanprov
-SvPV_force_nomg_nolen # added by devel/scanprov
-SvPV_mutable # added by devel/scanprov
-SvPV_nolen_const # added by devel/scanprov
-SvPV_nomg_const # added by devel/scanprov
-SvPV_nomg_const_nolen # added by devel/scanprov
-SvPV_renew # added by devel/scanprov
-SvSHARED_HASH # added by devel/scanprov
-dVAR # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009004
deleted file mode 100644
index fa236f03669..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009004
+++ /dev/null
@@ -1,43 +0,0 @@
-5.009004
-PerlIO_context_layers # U
-PoisonFree # E
-PoisonNew # E
-PoisonWith # E
-SvREFCNT_inc_NN # U
-SvREFCNT_inc_simple # U
-SvREFCNT_inc_simple_NN # U
-SvREFCNT_inc_simple_void # U
-SvREFCNT_inc_simple_void_NN # U
-SvREFCNT_inc_void # U
-SvREFCNT_inc_void_NN # U
-gv_name_set # U
-hv_copy_hints_hv # U
-hv_stores # U
-my_snprintf # U
-my_strlcat # U
-my_strlcpy # U
-my_vsnprintf # U
-newXS_flags # U
-pv_escape # U
-pv_pretty # U
-regclass_swash # E (Perl_regclass_swash)
-sv_does # U
-sv_setpvs # U
-sv_usepvn_flags # U
-PERL_PV_ESCAPE_ALL # added by devel/scanprov
-PERL_PV_ESCAPE_FIRSTCHAR # added by devel/scanprov
-PERL_PV_ESCAPE_NOBACKSLASH # added by devel/scanprov
-PERL_PV_ESCAPE_NOCLEAR # added by devel/scanprov
-PERL_PV_ESCAPE_QUOTE # added by devel/scanprov
-PERL_PV_ESCAPE_UNI # added by devel/scanprov
-PERL_PV_ESCAPE_UNI_DETECT # added by devel/scanprov
-PERL_PV_PRETTY_DUMP # added by devel/scanprov
-PERL_PV_PRETTY_LTGT # added by devel/scanprov
-PERL_PV_PRETTY_QUOTE # added by devel/scanprov
-PERL_PV_PRETTY_REGPROP # added by devel/scanprov
-PERL_UNUSED_CONTEXT # added by devel/scanprov
-PERL_USE_GCC_BRACE_GROUPS # added by devel/scanprov
-SV_HAS_TRAILING_NUL # added by devel/scanprov
-SvVSTRING_mg # added by devel/scanprov
-gv_fetchpvs # added by devel/scanprov
-isGV_with_GP # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009005
deleted file mode 100644
index 8ddae03de6f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5009005
+++ /dev/null
@@ -1,37 +0,0 @@
-5.009005
-PL_parser # E
-Perl_signbit # U
-SvRX # U
-SvRXOK # U
-av_create_and_push # U
-av_create_and_unshift_one # U
-get_cvn_flags # U
-gv_fetchfile_flags # U
-lex_start # E (Perl_lex_start)
-mro_get_linear_isa # U
-mro_method_changed_in # U
-my_dirfd # U
-newSV_type # U
-pregcomp # E (Perl_pregcomp)
-ptr_table_clear # U
-ptr_table_fetch # U
-ptr_table_free # U
-ptr_table_new # U
-ptr_table_split # U
-ptr_table_store # U
-re_compile # U
-reg_named_buff_all # U
-reg_named_buff_exists # U
-reg_named_buff_fetch # U
-reg_named_buff_firstkey # U
-reg_named_buff_nextkey # U
-reg_named_buff_scalar # U
-regfree_internal # U
-savesharedpvn # U
-scan_vstring # E (Perl_scan_vstring)
-upg_version # E (Perl_upg_version)
-PERL_PV_ESCAPE_RE # added by devel/scanprov
-SV_COW_SHARED_HASH_KEYS # added by devel/scanprov
-SVfARG # added by devel/scanprov
-memEQs # added by devel/scanprov
-memNEs # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5010000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5010000
deleted file mode 100644
index 922e6141592..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5010000
+++ /dev/null
@@ -1,10 +0,0 @@
-5.010000
-hv_common # U
-hv_common_key_len # U
-sv_destroyable # U
-sys_init # U
-sys_init3 # U
-sys_term # U
-PERL_PV_PRETTY_ELLIPSES # added by devel/scanprov
-PERL_PV_PRETTY_NOCLEAR # added by devel/scanprov
-XSPROTO # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5010001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5010001
deleted file mode 100644
index 61012f7d588..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5010001
+++ /dev/null
@@ -1,22 +0,0 @@
-5.010001
-HeUTF8 # U
-croak_xs_usage # U
-mPUSHs # U
-mXPUSHs # U
-mro_get_from_name # U
-mro_get_private_data # U
-mro_register # U
-mro_set_mro # U
-mro_set_private_data # U
-newSVpvn_flags # U
-newSVpvn_utf8 # U
-newSVpvs_flags # U
-save_hints # U
-save_padsv_and_mortalize # U
-save_pushi32ptr # U
-save_pushptr # U
-save_pushptrptr # U
-sv_insert_flags # U
-DEFSV_set # added by devel/scanprov
-MUTABLE_PTR # added by devel/scanprov
-MUTABLE_SV # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011000
deleted file mode 100644
index 1f499d99e07..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011000
+++ /dev/null
@@ -1,15 +0,0 @@
-5.011000
-Gv_AMupdate # E (Perl_Gv_AMupdate)
-PL_opfreehook # E
-SVt_REGEXP # E
-SvOOK_offset # U
-av_iter_p # U
-gv_add_by_type # U
-is_ascii_string # U
-pregfree2 # U
-save_adelete # U
-save_aelem_flags # U
-save_hdelete # U
-save_helem_flags # U
-sv_utf8_upgrade_flags_grow # U
-get_cvs # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011001
deleted file mode 100644
index f42409363b7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011001
+++ /dev/null
@@ -1,6 +0,0 @@
-5.011001
-ck_warner # U
-ck_warner_d # U
-is_utf8_perl_space # U
-is_utf8_perl_word # U
-is_utf8_posix_digit # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011002
deleted file mode 100644
index df12d99fd62..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011002
+++ /dev/null
@@ -1,13 +0,0 @@
-5.011002
-PL_keyword_plugin # E
-lex_bufutf8 # U
-lex_discard_to # U
-lex_grow_linestr # U
-lex_next_chunk # U
-lex_peek_unichar # U
-lex_read_space # U
-lex_read_to # U
-lex_read_unichar # U
-lex_stuff_pvn # U
-lex_stuff_sv # U
-lex_unstuff # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011003
deleted file mode 100644
index 3fd94ca1b60..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011003
+++ /dev/null
@@ -1 +0,0 @@
-5.011003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011004
deleted file mode 100644
index 86c1fce4f2a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011004
+++ /dev/null
@@ -1,2 +0,0 @@
-5.011004
-prescan_version # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011005
deleted file mode 100644
index d9b0d6a4c94..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5011005
+++ /dev/null
@@ -1,2 +0,0 @@
-5.011005
-sv_pos_u2b_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012000
deleted file mode 100644
index 82cbce2d6d9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012000
+++ /dev/null
@@ -1 +0,0 @@
-5.012000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012001
deleted file mode 100644
index 90dc03fdf35..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012001
+++ /dev/null
@@ -1 +0,0 @@
-5.012001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012002
deleted file mode 100644
index 8ab87f08d8a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012002
+++ /dev/null
@@ -1 +0,0 @@
-5.012002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012003
deleted file mode 100644
index f2abab4c17c..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012003
+++ /dev/null
@@ -1 +0,0 @@
-5.012003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012004
deleted file mode 100644
index e7319cd5663..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012004
+++ /dev/null
@@ -1 +0,0 @@
-5.012004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012005
deleted file mode 100644
index 5af01305efd..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5012005
+++ /dev/null
@@ -1 +0,0 @@
-5.012005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013000
deleted file mode 100644
index f2f116d2fab..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013000
+++ /dev/null
@@ -1 +0,0 @@
-5.013000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013001
deleted file mode 100644
index 679bf3c35e5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013001
+++ /dev/null
@@ -1,6 +0,0 @@
-5.013001
-croak_sv # U
-die_sv # U
-mess_sv # U
-sv_2nv_flags # U
-warn_sv # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013002
deleted file mode 100644
index fa6d99b4076..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013002
+++ /dev/null
@@ -1,9 +0,0 @@
-5.013002
-SvNV_nomg # U
-find_rundefsv # U
-foldEQ # U
-foldEQ_locale # U
-foldEQ_utf8 # U
-hv_fill # U
-sv_dec_nomg # U
-sv_inc_nomg # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013003
deleted file mode 100644
index 5e04f03c8a5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013003
+++ /dev/null
@@ -1,3 +0,0 @@
-5.013003
-blockhook_register # E
-croak_no_modify # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013004
deleted file mode 100644
index 8aac89eb8d4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013004
+++ /dev/null
@@ -1 +0,0 @@
-5.013004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013005
deleted file mode 100644
index 88c7c7b80b4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013005
+++ /dev/null
@@ -1,6 +0,0 @@
-5.013005
-PL_rpeepp # E
-caller_cx # U
-isOCTAL # U
-lex_stuff_pvs # U
-parse_fullstmt # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013006
deleted file mode 100644
index d145f368393..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013006
+++ /dev/null
@@ -1,32 +0,0 @@
-5.013006
-LINKLIST # U
-SvTRUE_nomg # U
-ck_entersub_args_list # U
-ck_entersub_args_proto # U
-ck_entersub_args_proto_or_list # U
-cv_get_call_checker # E
-cv_set_call_checker # E
-isWORDCHAR # U
-lex_stuff_pv # U
-mg_free_type # U
-newSVpv_share # U
-op_append_elem # U
-op_append_list # U
-op_contextualize # U
-op_linklist # U
-op_prepend_elem # U
-parse_stmtseq # U
-rv2cv_op_cv # U
-savesharedpvs # U
-savesharedsvpv # U
-sv_2bool_flags # U
-sv_catpv_flags # U
-sv_catpv_nomg # U
-sv_catpvs_flags # U
-sv_catpvs_mg # U
-sv_catpvs_nomg # U
-sv_cmp_flags # U
-sv_cmp_locale_flags # U
-sv_collxfrm_flags # U
-sv_eq_flags # U
-sv_setpvs_mg # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013007
deleted file mode 100644
index 79a9a5f44a1..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013007
+++ /dev/null
@@ -1,36 +0,0 @@
-5.013007
-HvENAME # U
-OP_CLASS # U
-SvPV_nomg_nolen # U
-XopFLAGS # E
-amagic_deref_call # U
-bytes_cmp_utf8 # U
-cop_hints_2hv # A
-cop_hints_fetch_pv # U
-cop_hints_fetch_pvn # U
-cop_hints_fetch_pvs # U
-cop_hints_fetch_sv # U
-cophh_2hv # E
-cophh_copy # E
-cophh_delete_pv # E
-cophh_delete_pvn # E
-cophh_delete_pvs # E
-cophh_delete_sv # E
-cophh_fetch_pv # E
-cophh_fetch_pvn # E
-cophh_fetch_pvs # E
-cophh_fetch_sv # E
-cophh_free # E
-cophh_store_pv # E
-cophh_store_pvn # E
-cophh_store_pvs # E
-cophh_store_sv # E
-custom_op_register # E
-custom_op_xop # E
-newFOROP # A
-newWHILEOP # A
-op_lvalue # U
-op_scope # U
-parse_barestmt # U
-parse_block # U
-parse_label # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013008
deleted file mode 100644
index 5c315d671ba..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013008
+++ /dev/null
@@ -1,8 +0,0 @@
-5.013008
-foldEQ_latin1 # U
-mg_findext # U
-parse_arithexpr # U
-parse_fullexpr # U
-parse_listexpr # U
-parse_termexpr # U
-sv_unmagicext # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013009
deleted file mode 100644
index 51160ae344d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013009
+++ /dev/null
@@ -1 +0,0 @@
-5.013009
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013010
deleted file mode 100644
index d7f4365bfb1..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013010
+++ /dev/null
@@ -1,4 +0,0 @@
-5.013010
-foldEQ_utf8_flags # U
-is_utf8_xidcont # U
-is_utf8_xidfirst # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013011 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013011
deleted file mode 100644
index a33715f749e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5013011
+++ /dev/null
@@ -1 +0,0 @@
-5.013011
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014000
deleted file mode 100644
index 3f837ef4d0d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014000
+++ /dev/null
@@ -1,2 +0,0 @@
-5.014000
-_to_uni_fold_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014001
deleted file mode 100644
index 098fb03c9f4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014001
+++ /dev/null
@@ -1 +0,0 @@
-5.014001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014002
deleted file mode 100644
index f280bd0f4f7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014002
+++ /dev/null
@@ -1 +0,0 @@
-5.014002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014003
deleted file mode 100644
index 333e50d1db2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014003
+++ /dev/null
@@ -1 +0,0 @@
-5.014003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014004
deleted file mode 100644
index 1618e365ea4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5014004
+++ /dev/null
@@ -1 +0,0 @@
-5.014004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015000
deleted file mode 100644
index d8c6546d720..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015000
+++ /dev/null
@@ -1 +0,0 @@
-5.015000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015001
deleted file mode 100644
index 144926b1244..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015001
+++ /dev/null
@@ -1,11 +0,0 @@
-5.015001
-cop_fetch_label # U
-cop_store_label # U
-pad_add_name_pv # U
-pad_add_name_pvn # U
-pad_add_name_pvs # U
-pad_add_name_sv # U
-pad_findmy_pv # U
-pad_findmy_pvn # U
-pad_findmy_pvs # U
-pad_findmy_sv # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015002
deleted file mode 100644
index 06741283d1d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015002
+++ /dev/null
@@ -1 +0,0 @@
-5.015002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015003
deleted file mode 100644
index 7f33df71289..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015003
+++ /dev/null
@@ -1 +0,0 @@
-5.015003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015004
deleted file mode 100644
index e25404d46f0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015004
+++ /dev/null
@@ -1,31 +0,0 @@
-5.015004
-HvENAMELEN # U
-HvENAMEUTF8 # U
-HvNAMELEN # U
-HvNAMEUTF8 # U
-gv_autoload_pv # U
-gv_autoload_pvn # U
-gv_autoload_sv # U
-gv_fetchmeth_pv # U
-gv_fetchmeth_pv_autoload # U
-gv_fetchmeth_pvn # U
-gv_fetchmeth_pvn_autoload # U
-gv_fetchmeth_sv # U
-gv_fetchmeth_sv_autoload # U
-gv_fetchmethod_pv_flags # U
-gv_fetchmethod_pvn_flags # U
-gv_fetchmethod_sv_flags # U
-gv_init_pv # U
-gv_init_pvn # U
-gv_init_sv # U
-newGVgen_flags # U
-sv_derived_from_pv # U
-sv_derived_from_pvn # U
-sv_derived_from_sv # U
-sv_does_pv # U
-sv_does_pvn # U
-sv_does_sv # U
-whichsig_pv # U
-whichsig_pvn # U
-whichsig_sv # U
-WIDEST_UTYPE # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015005
deleted file mode 100644
index 1908a935e3d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015005
+++ /dev/null
@@ -1 +0,0 @@
-5.015005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015006
deleted file mode 100644
index 4fb3c7c5901..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015006
+++ /dev/null
@@ -1,2 +0,0 @@
-5.015006
-newCONSTSUB_flags # A
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015007
deleted file mode 100644
index ce9078968a1..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015007
+++ /dev/null
@@ -1,8 +0,0 @@
-5.015007
-toLOWER_utf8 # U
-toTITLE_utf8 # U
-toUPPER_utf8 # U
-to_utf8_fold # U
-to_utf8_lower # U
-to_utf8_title # U
-to_utf8_upper # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015008
deleted file mode 100644
index 14c640388c7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015008
+++ /dev/null
@@ -1,3 +0,0 @@
-5.015008
-is_utf8_char_buf # U
-wrap_op_checker # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015009
deleted file mode 100644
index 30537f0445e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5015009
+++ /dev/null
@@ -1,5 +0,0 @@
-5.015009
-utf8_to_uvchr_buf # U
-utf8_to_uvuni_buf # U
-valid_utf8_to_uvchr # U
-valid_utf8_to_uvuni # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016000
deleted file mode 100644
index 3bd46b73620..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016000
+++ /dev/null
@@ -1 +0,0 @@
-5.016000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016001
deleted file mode 100644
index 5e2b46c7762..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016001
+++ /dev/null
@@ -1 +0,0 @@
-5.016001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016002
deleted file mode 100644
index dfd939f6843..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016002
+++ /dev/null
@@ -1 +0,0 @@
-5.016002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016003
deleted file mode 100644
index 88e54eb950f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5016003
+++ /dev/null
@@ -1 +0,0 @@
-5.016003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017000
deleted file mode 100644
index bf56b9a68af..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017000
+++ /dev/null
@@ -1 +0,0 @@
-5.017000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017001
deleted file mode 100644
index 6c9994352af..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017001
+++ /dev/null
@@ -1 +0,0 @@
-5.017001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017002
deleted file mode 100644
index fd825e14bcd..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017002
+++ /dev/null
@@ -1,7 +0,0 @@
-5.017002
-is_uni_blank # U
-is_uni_blank_lc # U
-is_utf8_blank # U
-sv_copypv_flags # U
-sv_copypv_nomg # U
-sv_vcatpvfn_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017003
deleted file mode 100644
index 50227645479..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017003
+++ /dev/null
@@ -1 +0,0 @@
-5.017003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017004
deleted file mode 100644
index 02021258887..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017004
+++ /dev/null
@@ -1,5 +0,0 @@
-5.017004
-PL_comppad_name # E
-PadlistREFCNT # U
-newMYSUB # E (Perl_newMYSUB)
-newSVpadname # E
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017005
deleted file mode 100644
index 31dfb1c3838..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017005
+++ /dev/null
@@ -1 +0,0 @@
-5.017005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017006
deleted file mode 100644
index 0bb24862396..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017006
+++ /dev/null
@@ -1,2 +0,0 @@
-5.017006
-READ_XDIGIT # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017007
deleted file mode 100644
index c95c23505f2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017007
+++ /dev/null
@@ -1,7 +0,0 @@
-5.017007
-SvREFCNT_dec_NN # U
-_is_uni_perl_idstart # U
-_is_utf8_perl_idstart # U
-is_uni_alnumc # U
-is_uni_alnumc_lc # U
-is_utf8_alnumc # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017008
deleted file mode 100644
index 9228a1506d0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017008
+++ /dev/null
@@ -1,8 +0,0 @@
-5.017008
-_is_uni_FOO # U
-_is_uni_perl_idcont # U
-_is_utf8_FOO # U
-_is_utf8_mark # U
-_is_utf8_perl_idcont # U
-isALPHANUMERIC # U
-isIDCONT # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017009
deleted file mode 100644
index fd728270400..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017009
+++ /dev/null
@@ -1,3 +0,0 @@
-5.017009
-av_tindex # U
-av_top_index # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017010
deleted file mode 100644
index fed2762e9b6..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017010
+++ /dev/null
@@ -1 +0,0 @@
-5.017010
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017011 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017011
deleted file mode 100644
index 5fcf0516810..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5017011
+++ /dev/null
@@ -1 +0,0 @@
-5.017011
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018000
deleted file mode 100644
index 17729d0b741..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018000
+++ /dev/null
@@ -1,2 +0,0 @@
-5.018000
-hv_rand_set # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018001
deleted file mode 100644
index 5d4bb8f5003..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018001
+++ /dev/null
@@ -1 +0,0 @@
-5.018001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018002
deleted file mode 100644
index 17291bcf13a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018002
+++ /dev/null
@@ -1 +0,0 @@
-5.018002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018003
deleted file mode 100644
index 4d40f26283a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018003
+++ /dev/null
@@ -1 +0,0 @@
-5.018003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018004
deleted file mode 100644
index f137cc2ad75..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5018004
+++ /dev/null
@@ -1 +0,0 @@
-5.018004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019000
deleted file mode 100644
index a6e8e034939..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019000
+++ /dev/null
@@ -1 +0,0 @@
-5.019000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019001
deleted file mode 100644
index 803ad9abffb..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019001
+++ /dev/null
@@ -1,6 +0,0 @@
-5.019001
-re_intuit_start # A
-toFOLD # U
-toFOLD_utf8 # U
-toLOWER_L1 # U
-toTITLE # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019002
deleted file mode 100644
index 5af71fbeae6..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019002
+++ /dev/null
@@ -1,2 +0,0 @@
-5.019002
-SVt_INVLIST # E
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019003
deleted file mode 100644
index 488ef60b2f2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019003
+++ /dev/null
@@ -1,3 +0,0 @@
-5.019003
-croak_memory_wrap # U (Perl_croak_memory_wrap)
-sv_pos_b2u_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019004
deleted file mode 100644
index 1aa2023c9f7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019004
+++ /dev/null
@@ -1,4 +0,0 @@
-5.019004
-append_utf8_from_native_byte # U
-is_safe_syscall # U
-uvoffuni_to_utf8_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019005
deleted file mode 100644
index 69dcd69aefb..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019005
+++ /dev/null
@@ -1 +0,0 @@
-5.019005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019006
deleted file mode 100644
index f14fb0c0c4b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019006
+++ /dev/null
@@ -1 +0,0 @@
-5.019006
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019007
deleted file mode 100644
index c34055ea2af..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019007
+++ /dev/null
@@ -1,2 +0,0 @@
-5.019007
-OP_TYPE_IS # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019008
deleted file mode 100644
index 8fe2e2f1ded..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019008
+++ /dev/null
@@ -1 +0,0 @@
-5.019008
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019009
deleted file mode 100644
index 7706f723a00..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019009
+++ /dev/null
@@ -1,5 +0,0 @@
-5.019009
-_to_utf8_fold_flags # A
-_to_utf8_lower_flags # A
-_to_utf8_title_flags # A
-_to_utf8_upper_flags # A
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019010
deleted file mode 100644
index 8bdae66ddbe..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019010
+++ /dev/null
@@ -1,2 +0,0 @@
-5.019010
-OP_TYPE_IS_OR_WAS # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019011 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019011
deleted file mode 100644
index 2436c20fa66..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5019011
+++ /dev/null
@@ -1 +0,0 @@
-5.019011
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5020000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5020000
deleted file mode 100644
index 0c909259446..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5020000
+++ /dev/null
@@ -1 +0,0 @@
-5.020000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5020001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5020001
deleted file mode 100644
index 1448fe7920c..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5020001
+++ /dev/null
@@ -1 +0,0 @@
-5.020001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021000
deleted file mode 100644
index b3138ab9c57..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021000
+++ /dev/null
@@ -1 +0,0 @@
-5.021000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021001
deleted file mode 100644
index 6e66213f6ea..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021001
+++ /dev/null
@@ -1,12 +0,0 @@
-5.021001
-_is_in_locale_category # U
-_is_utf8_char_slow # U
-_is_utf8_idcont # U
-_is_utf8_idstart # U
-_is_utf8_xidcont # U
-_is_utf8_xidstart # U
-isALNUM_lazy # U
-isIDFIRST_lazy # U
-isUTF8_CHAR # U
-markstack_grow # E (Perl_markstack_grow)
-my_strerror # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021002
deleted file mode 100644
index 1e17e3d19bb..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021002
+++ /dev/null
@@ -1,4 +0,0 @@
-5.021002
-grok_number_flags # U
-op_parent # U
-op_sibling_splice # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021004
deleted file mode 100644
index 3a62526e13b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021004
+++ /dev/null
@@ -1,5 +0,0 @@
-5.021004
-cv_set_call_checker_flags # U
-grok_infnan # U
-isinfnan # U
-sync_locale # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021005
deleted file mode 100644
index 2a02ad28b68..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021005
+++ /dev/null
@@ -1,4 +0,0 @@
-5.021005
-cv_name # A
-newMETHOP # U
-newMETHOP_named # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021006
deleted file mode 100644
index fbefd16d47b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021006
+++ /dev/null
@@ -1,3 +0,0 @@
-5.021006
-newDEFSVOP # U
-op_convert_list # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021007
deleted file mode 100644
index 03c81e0cc8b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021007
+++ /dev/null
@@ -1,12 +0,0 @@
-5.021007
-OpHAS_SIBLING # U
-OpSIBLING # U
-OpSIBLING_set # U
-PadnameUTF8 # E
-is_invariant_string # U
-newPADNAMELIST # U
-newPADNAMEouter # U
-newPADNAMEpvn # U
-newUNOP_AUX # E
-padnamelist_fetch # U
-padnamelist_store # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021008
deleted file mode 100644
index 7a8f642fed4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/base/5021008
+++ /dev/null
@@ -1,66 +0,0 @@
-5.021008
-BhkDISABLE # E
-BhkENABLE # E
-BhkENTRY_set # E
-MULTICALL # E
-PERL_SYS_TERM # E
-POP_MULTICALL # E
-PUSH_MULTICALL # E
-PadARRAY # E
-PadMAX # E
-PadlistARRAY # E
-PadlistMAX # E
-PadlistNAMES # E
-PadlistNAMESARRAY # E
-PadlistNAMESMAX # E
-PadnameLEN # E
-PadnamePV # E
-PadnameREFCNT # E
-PadnameREFCNT_dec # E
-PadnameSV # E
-PadnamelistARRAY # E
-PadnamelistMAX # E
-PadnamelistREFCNT # E
-PadnamelistREFCNT_dec # E
-XS_APIVERSION_BOOTCHECK # E
-XS_EXTERNAL # E
-XS_INTERNAL # E
-XS_VERSION_BOOTCHECK # E
-XopDISABLE # E
-XopENABLE # E
-XopENTRY # E
-XopENTRYCUSTOM # E
-XopENTRY_set # E
-cophh_new_empty # E
-my_lstat # U (Perl_my_lstat)
-my_stat # U (Perl_my_stat)
-reentrant_free # U
-reentrant_init # U
-reentrant_retry # U
-reentrant_size # U
-ref # U (Perl_ref)
-sv_get_backrefs # U
-sv_magic_portable # U
-sv_setref_pvs # A
-PERL_BCDVERSION # added by devel/scanprov
-PERL_MAGIC_glob # added by devel/scanprov
-PERL_MAGIC_mutex # added by devel/scanprov
-PERL_MAGIC_overload # added by devel/scanprov
-PERL_MAGIC_overload_elem # added by devel/scanprov
-PL_bufend # added by devel/scanprov
-PL_bufptr # added by devel/scanprov
-PL_copline # added by devel/scanprov
-PL_error_count # added by devel/scanprov
-PL_expect # added by devel/scanprov
-PL_in_my # added by devel/scanprov
-PL_in_my_stash # added by devel/scanprov
-PL_lex_state # added by devel/scanprov
-PL_lex_stuff # added by devel/scanprov
-PL_linestr # added by devel/scanprov
-PL_rsfp # added by devel/scanprov
-PL_rsfp_filters # added by devel/scanprov
-PL_tokenbuf # added by devel/scanprov
-WARN_ASSERTIONS # added by devel/scanprov
-aTHXR # added by devel/scanprov
-aTHXR_ # added by devel/scanprov
-dTHXR # added by devel/scanprov
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/embed.fnc b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/embed.fnc
deleted file mode 100644
index 746d0ca4cde..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/embed.fnc
+++ /dev/null
@@ -1,2838 +0,0 @@
-: BEGIN{die "You meant to run regen/embed.pl"} # Stop early if fed to perl.
-:
-: This file is processed by regen/embed.pl and autodoc.pl
-:
-: Lines are of the form:
-: flags|return_type|function_name|arg1|arg2|...|argN
-:
-: A line may be continued on another by ending it with a backslash.
-: Leading and trailing whitespace will be ignored in each component.
-:
-: flags are single letters with following meanings:
-:
-: A Available fully everywhere (usually part of the public API):
-:
-: add entry to the list of exported symbols (unless x or m);
-: any doc entry goes in perlapi.pod rather than perlintern.pod. If no
-: documentation is furnished for this function, and M is also
-: specified, the function is not listed as part of the public API.
-: If M isn't specified, and no documentation is furnished, the
-: function is listed in perlapi as existing and being undocumented
-: makes '#define foo Perl_foo' scope not just for PERL_CORE/PERL_EXT
-:
-: If the function is only exported for use in a public
-: macro, see X.
-:
-: a Allocates memory a la malloc/calloc. Also implies "R":
-:
-: proto.h: add __attribute__malloc__
-:
-: b Binary backward compatibility; has an exported Perl_ implementation
-: but function is also normally a macro (i.e. has the "m" flag as well).
-: Backcompat functions ("b") can be anywhere, but if they are also
-: macros ("m") then they have no proto.h entries so must either be in
-: mathoms.c to get marked EXTERN_C (and skipped for -DNO_MATHOMS builds)
-: or else will require special attention to ensure they are marked
-: EXTERN_C (and then won't be automatically skipped for -DNO_MATHOMS
-: builds).
-:
-: add entry to the list of exported symbols;
-: don't define PERL_ARGS_ASSERT_FOO
-:
-: D Function is deprecated:
-:
-: proto.h: add __attribute__deprecated__
-:
-: d Function has documentation (somewhere) in the source:
-:
-: enables 'no docs for foo" warning in autodoc.pl
-:
-: E Visible to extensions included in the Perl core:
-:
-: in embed.h, change "#ifdef PERL_CORE"
-: into "#if defined(PERL_CORE) || defined(PERL_EXT)"
-:
-: To be usable from dynamically loaded extensions, either:
-: 1) must be static to its containing file ("i" or "s" flag); or
-: 2) be combined with the "X" flag.
-:
-: f Function takes a format string. If the function name /strftime/
-: then its assumed to take a strftime-style format string as 1st arg;
-: otherwise it's assumed to be a printf style format string, varargs
-: (hence any entry that would otherwise go in embed.h is suppressed):
-:
-: proto.h: add __attribute__format__ (or ...null_ok__)
-:
-: i Static inline: function in source code has a S_ prefix:
-:
-: proto.h: function is declared as S_foo rather than foo,
-: PERL_STATIC_INLINE is added to declaration;
-: embed.h: "#define foo S_foo" entries added
-:
-: M May change:
-:
-: any doc entry is marked that function may change
-:
-: m Implemented as a macro:
-:
-: suppress proto.h entry (actually, not suppressed, but commented out)
-: suppress entry in the list of exported symbols
-: suppress embed.h entry
-:
-: n Has no implicit interpreter/thread context argument:
-:
-: suppress the pTHX part of "foo(pTHX...)" in proto.h;
-: In the PERL_IMPLICIT_SYS branch of embed.h, generates
-: "#define foo Perl_foo", rather than
-: "#define foo(a,b,c) Perl_foo(aTHX_ a,b,c)
-:
-: O Has a perl_ compatibility macro.
-:
-: The really OLD name for API funcs
-:
-: o Has no Perl_foo or S_foo compatibility macro:
-:
-: embed.h: suppress "#define foo Perl_foo"
-:
-: P Pure function: no effects except the return value;
-: return value depends only on params and/or globals:
-:
-: proto.h: add __attribute__pure__
-:
-: p Function in source code has a Perl_ prefix:
-:
-: proto.h: function is declared as Perl_foo rather than foo
-: embed.h: "#define foo Perl_foo" entries added
-:
-: R Return value must not be ignored (also implied by 'a' flag):
-:
-: proto.h: add __attribute__warn_unused_result__
-:
-: r Function never returns:
-:
-: proto.h: add __attribute__noreturn__
-:
-: s Static function: function in source code has a S_ prefix:
-:
-: proto.h: function is declared as S_foo rather than foo,
-: STATIC is added to declaration;
-: embed.h: "#define foo S_foo" entries added
-:
-: U Suppress usage example in autogenerated documentation
-:
-: (currently no effect)
-:
-: X Explicitly exported:
-:
-: add entry to the list of exported symbols, unless x or m
-:
-: This is often used for private functions that are used by public
-: macros. In those cases the macros must use the long form of the
-: name (Perl_blah(aTHX_ ...)).
-:
-: x Not exported
-:
-: suppress entry in the list of exported symbols
-:
-: (see also L<perlguts/Internal Functions> for those flags.)
-:
-: Pointer parameters that must not be passed NULLs should be prefixed with NN.
-:
-: Pointer parameters that may be NULL should be prefixed with NULLOK. This has
-: no effect on output yet. It's a notation for the maintainers to know "I have
-: defined whether NULL is OK or not" rather than having neither NULL or NULLOK,
-: which is ambiguous.
-:
-: Individual flags may be separated by whitespace.
-
-#if defined(PERL_IMPLICIT_SYS)
-Ano |PerlInterpreter*|perl_alloc_using \
- |NN struct IPerlMem *ipM \
- |NN struct IPerlMem *ipMS \
- |NN struct IPerlMem *ipMP \
- |NN struct IPerlEnv *ipE \
- |NN struct IPerlStdIO *ipStd \
- |NN struct IPerlLIO *ipLIO \
- |NN struct IPerlDir *ipD \
- |NN struct IPerlSock *ipS \
- |NN struct IPerlProc *ipP
-#endif
-Anod |PerlInterpreter* |perl_alloc
-Anod |void |perl_construct |NN PerlInterpreter *my_perl
-Anod |int |perl_destruct |NN PerlInterpreter *my_perl
-Anod |void |perl_free |NN PerlInterpreter *my_perl
-Anod |int |perl_run |NN PerlInterpreter *my_perl
-Anod |int |perl_parse |NN PerlInterpreter *my_perl|XSINIT_t xsinit \
- |int argc|NULLOK char** argv|NULLOK char** env
-AnpR |bool |doing_taint |int argc|NULLOK char** argv|NULLOK char** env
-#if defined(USE_ITHREADS)
-Anod |PerlInterpreter*|perl_clone|NN PerlInterpreter *proto_perl|UV flags
-# if defined(PERL_IMPLICIT_SYS)
-Ano |PerlInterpreter*|perl_clone_using \
- |NN PerlInterpreter *proto_perl \
- |UV flags \
- |NN struct IPerlMem* ipM \
- |NN struct IPerlMem* ipMS \
- |NN struct IPerlMem* ipMP \
- |NN struct IPerlEnv* ipE \
- |NN struct IPerlStdIO* ipStd \
- |NN struct IPerlLIO* ipLIO \
- |NN struct IPerlDir* ipD \
- |NN struct IPerlSock* ipS \
- |NN struct IPerlProc* ipP
-# endif
-#endif
-
-Aanop |Malloc_t|malloc |MEM_SIZE nbytes
-Aanop |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size
-Aanop |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes
-Anop |Free_t |mfree |Malloc_t where
-#if defined(MYMALLOC)
-npR |MEM_SIZE|malloced_size |NN void *p
-npR |MEM_SIZE|malloc_good_size |size_t nbytes
-#endif
-#if defined(PERL_IN_MALLOC_C)
-sn |int |adjust_size_and_find_bucket |NN size_t *nbytes_p
-#endif
-
-AnpR |void* |get_context
-Anp |void |set_context |NN void *t
-
-XEop |bool |try_amagic_bin |int method|int flags
-XEop |bool |try_amagic_un |int method|int flags
-Ap |SV* |amagic_call |NN SV* left|NN SV* right|int method|int dir
-Ap |SV * |amagic_deref_call|NN SV *ref|int method
-p |bool |amagic_is_enabled|int method
-Ap |int |Gv_AMupdate |NN HV* stash|bool destructing
-ApR |CV* |gv_handler |NULLOK HV* stash|I32 id
-Apd |OP* |op_append_elem |I32 optype|NULLOK OP* first|NULLOK OP* last
-Apd |OP* |op_append_list |I32 optype|NULLOK OP* first|NULLOK OP* last
-Apd |OP* |op_linklist |NN OP *o
-Apd |OP* |op_prepend_elem|I32 optype|NULLOK OP* first|NULLOK OP* last
-: FIXME - this is only called by pp_chown. They should be merged.
-p |I32 |apply |I32 type|NN SV** mark|NN SV** sp
-ApM |void |apply_attrs_string|NN const char *stashpv|NN CV *cv|NN const char *attrstr|STRLEN len
-Apd |void |av_clear |NN AV *av
-Apd |SV* |av_delete |NN AV *av|SSize_t key|I32 flags
-ApdR |bool |av_exists |NN AV *av|SSize_t key
-Apd |void |av_extend |NN AV *av|SSize_t key
-p |void |av_extend_guts |NULLOK AV *av|SSize_t key \
- |NN SSize_t *maxp \
- |NN SV ***allocp|NN SV ***arrayp
-ApdR |SV** |av_fetch |NN AV *av|SSize_t key|I32 lval
-Apd |void |av_fill |NN AV *av|SSize_t fill
-ApdR |SSize_t|av_len |NN AV *av
-ApdR |AV* |av_make |SSize_t size|NN SV **strp
-Apd |SV* |av_pop |NN AV *av
-ApdoxM |void |av_create_and_push|NN AV **const avp|NN SV *const val
-Apd |void |av_push |NN AV *av|NN SV *val
-: Used in scope.c, and by Data::Alias
-EXp |void |av_reify |NN AV *av
-ApdR |SV* |av_shift |NN AV *av
-Apd |SV** |av_store |NN AV *av|SSize_t key|NULLOK SV *val
-AidR |SSize_t|av_top_index |NN AV *av
-AmpdR |SSize_t|av_tindex |NN AV *av
-Apd |void |av_undef |NN AV *av
-ApdoxM |SV** |av_create_and_unshift_one|NN AV **const avp|NN SV *const val
-Apd |void |av_unshift |NN AV *av|SSize_t num
-Apo |SV** |av_arylen_p |NN AV *av
-Apo |IV* |av_iter_p |NN AV *av
-#if defined(PERL_IN_AV_C)
-s |MAGIC* |get_aux_mg |NN AV *av
-#endif
-: Used in perly.y
-pR |OP* |bind_match |I32 type|NN OP *left|NN OP *right
-: Used in perly.y
-ApdR |OP* |block_end |I32 floor|NULLOK OP* seq
-ApR |I32 |block_gimme
-: Used in perly.y
-ApdR |int |block_start |int full
-Aodp |void |blockhook_register |NN BHK *hk
-: Used in perl.c
-p |void |boot_core_UNIVERSAL
-: Used in perl.c
-p |void |boot_core_PerlIO
-Ap |void |call_list |I32 oldscope|NN AV *paramList
-Apd |const PERL_CONTEXT * |caller_cx|I32 level \
- |NULLOK const PERL_CONTEXT **dbcxp
-: Used in several source files
-pR |bool |cando |Mode_t mode|bool effective|NN const Stat_t* statbufp
-ApRn |U32 |cast_ulong |NV f
-ApRn |I32 |cast_i32 |NV f
-ApRn |IV |cast_iv |NV f
-ApRn |UV |cast_uv |NV f
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-ApR |I32 |my_chsize |int fd|Off_t length
-#endif
-p |const COP*|closest_cop |NN const COP *cop|NULLOK const OP *o \
- |NULLOK const OP *curop|bool opnext
-: Used in perly.y
-ApdR |OP* |op_convert_list |I32 optype|I32 flags|NULLOK OP* o
-: Used in op.c and perl.c
-pM |PERL_CONTEXT* |create_eval_scope|U32 flags
-Aprd |void |croak_sv |NN SV *baseex
-: croak()'s first parm can be NULL. Otherwise, mod_perl breaks.
-Afprd |void |croak |NULLOK const char* pat|...
-Aprd |void |vcroak |NULLOK const char* pat|NULLOK va_list* args
-Anprd |void |croak_no_modify
-Anprd |void |croak_xs_usage |NN const CV *const cv \
- |NN const char *const params
-npr |void |croak_no_mem
-nprX |void |croak_popstack
-fnprx |void |noperl_die|NN const char* pat|...
-#if defined(WIN32)
-norx |void |win32_croak_not_implemented|NN const char * fname
-#endif
-#if defined(PERL_IMPLICIT_CONTEXT)
-Afnrp |void |croak_nocontext|NULLOK const char* pat|...
-Afnrp |OP* |die_nocontext |NULLOK const char* pat|...
-Afnp |void |deb_nocontext |NN const char* pat|...
-Afnp |char* |form_nocontext |NN const char* pat|...
-Anp |void |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|...
-Afnp |SV* |mess_nocontext |NN const char* pat|...
-Afnp |void |warn_nocontext |NN const char* pat|...
-Afnp |void |warner_nocontext|U32 err|NN const char* pat|...
-Afnp |SV* |newSVpvf_nocontext|NN const char *const pat|...
-Afnp |void |sv_catpvf_nocontext|NN SV *const sv|NN const char *const pat|...
-Afnp |void |sv_setpvf_nocontext|NN SV *const sv|NN const char *const pat|...
-Afnp |void |sv_catpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
-Afnp |void |sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
-Afnp |int |fprintf_nocontext|NN PerlIO *stream|NN const char *format|...
-Afnp |int |printf_nocontext|NN const char *format|...
-#endif
-: Used in pp.c
-p |SV * |core_prototype |NULLOK SV *sv|NN const char *name \
- |const int code|NULLOK int * const opnum
-: Used in gv.c
-p |OP * |coresub_op |NN SV *const coreargssv|const int code \
- |const int opnum
-: Used in sv.c
-EMXp |void |cv_ckproto_len_flags |NN const CV* cv|NULLOK const GV* gv\
- |NULLOK const char* p|const STRLEN len \
- |const U32 flags
-: Used in pp.c and pp_sys.c
-ApdR |SV* |gv_const_sv |NN GV* gv
-ApdRn |SV* |cv_const_sv |NULLOK const CV *const cv
-pRn |SV* |cv_const_sv_or_av|NULLOK const CV *const cv
-Apd |SV * |cv_name |NN CV *cv|NULLOK SV *sv|U32 flags
-Apd |void |cv_undef |NN CV* cv
-p |void |cv_undef_flags |NN CV* cv|U32 flags
-p |void |cv_forget_slab |NN CV *cv
-Ap |void |cx_dump |NN PERL_CONTEXT* cx
-Ap |SV* |filter_add |NULLOK filter_t funcp|NULLOK SV* datasv
-Ap |void |filter_del |NN filter_t funcp
-ApR |I32 |filter_read |int idx|NN SV *buf_sv|int maxlen
-ApPR |char** |get_op_descs
-ApPR |char** |get_op_names
-: FIXME discussion on p5p
-pPR |const char* |get_no_modify
-: FIXME discussion on p5p
-pPR |U32* |get_opargs
-ApPR |PPADDR_t*|get_ppaddr
-: Used by CXINC, which appears to be in widespread use
-ApR |I32 |cxinc
-Afp |void |deb |NN const char* pat|...
-Ap |void |vdeb |NN const char* pat|NULLOK va_list* args
-Ap |void |debprofdump
-EXp |SV* |multideref_stringify |NN const OP* o|NN CV *cv
-Ap |I32 |debop |NN const OP* o
-Ap |I32 |debstack
-Ap |I32 |debstackptrs
-pR |SV * |defelem_target |NN SV *sv|NULLOK MAGIC *mg
-Anp |char* |delimcpy |NN char* to|NN const char* toend|NN const char* from \
- |NN const char* fromend|int delim|NN I32* retlen
-: Used in op.c, perl.c
-pM |void |delete_eval_scope
-Aprd |OP* |die_sv |NN SV *baseex
-Afrpd |OP* |die |NULLOK const char* pat|...
-: Used in util.c
-pr |void |die_unwind |NN SV* msv
-Ap |void |dounwind |I32 cxix
-: FIXME
-pmb |bool |do_aexec |NULLOK SV* really|NN SV** mark|NN SV** sp
-: Used in pp_sys.c
-p |bool |do_aexec5 |NULLOK SV* really|NN SV** mark|NN SV** sp|int fd|int do_report
-Ap |int |do_binmode |NN PerlIO *fp|int iotype|int mode
-: Used in pp.c
-Ap |bool |do_close |NULLOK GV* gv|bool not_implicit
-: Defined in doio.c, used only in pp_sys.c
-p |bool |do_eof |NN GV* gv
-
-#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-pm |bool |do_exec |NN const char* cmd
-#else
-p |bool |do_exec |NN const char* cmd
-#endif
-
-#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
-Ap |int |do_aspawn |NULLOK SV* really|NN SV** mark|NN SV** sp
-Ap |int |do_spawn |NN char* cmd
-Ap |int |do_spawn_nowait|NN char* cmd
-#endif
-#if !defined(WIN32)
-p |bool |do_exec3 |NN const char *incmd|int fd|int do_report
-#endif
-p |void |do_execfree
-#if defined(PERL_IN_DOIO_C)
-s |void |exec_failed |NN const char *cmd|int fd|int do_report
-#endif
-#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-: Defined in doio.c, used only in pp_sys.c
-p |I32 |do_ipcctl |I32 optype|NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p |I32 |do_ipcget |I32 optype|NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p |I32 |do_msgrcv |NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p |I32 |do_msgsnd |NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p |I32 |do_semop |NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p |I32 |do_shmio |I32 optype|NN SV** mark|NN SV** sp
-#endif
-Ap |void |do_join |NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp
-: Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
-: p |OP* |do_kv
-: used in pp.c, pp_hot.c
-pR |I32 |do_ncmp |NN SV *const left|NN SV *const right
-Apmb |bool |do_open |NN GV* gv|NN const char* name|I32 len|int as_raw \
- |int rawmode|int rawperm|NULLOK PerlIO* supplied_fp
-Ap |bool |do_open9 |NN GV *gv|NN const char *name|I32 len|int as_raw \
- |int rawmode|int rawperm|NULLOK PerlIO *supplied_fp \
- |NN SV *svs|I32 num
-#if defined(PERL_IN_DOIO_C)
-s |IO * |openn_setup |NN GV *gv|NN char *mode|NN PerlIO **saveifp \
- |NN PerlIO **saveofp|NN int *savefd \
- |NN char *savetype
-s |bool |openn_cleanup |NN GV *gv|NN IO *io|NULLOK PerlIO *fp \
- |NN char *mode|NN const char *oname \
- |NULLOK PerlIO *saveifp|NULLOK PerlIO *saveofp \
- |int savefd|char savetype|int writing \
- |bool was_fdopen|NULLOK const char *type
-#endif
-Ap |bool |do_openn |NN GV *gv|NN const char *oname|I32 len \
- |int as_raw|int rawmode|int rawperm \
- |NULLOK PerlIO *supplied_fp|NULLOK SV **svp \
- |I32 num
-Mp |bool |do_open_raw |NN GV *gv|NN const char *oname|STRLEN len \
- |int rawmode|int rawperm
-Mp |bool |do_open6 |NN GV *gv|NN const char *oname|STRLEN len \
- |NULLOK PerlIO *supplied_fp|NULLOK SV **svp \
- |U32 num
-: Used in pp_hot.c and pp_sys.c
-p |bool |do_print |NULLOK SV* sv|NN PerlIO* fp
-: Used in pp_sys.c
-pR |OP* |do_readline
-: Defined in doio.c, used only in pp_sys.c
-p |bool |do_seek |NULLOK GV* gv|Off_t pos|int whence
-Ap |void |do_sprintf |NN SV* sv|I32 len|NN SV** sarg
-: Defined in doio.c, used only in pp_sys.c
-p |Off_t |do_sysseek |NN GV* gv|Off_t pos|int whence
-: Defined in doio.c, used only in pp_sys.c
-pR |Off_t |do_tell |NN GV* gv
-: Defined in doop.c, used only in pp.c
-p |I32 |do_trans |NN SV* sv
-: Used in my.c and pp.c
-p |UV |do_vecget |NN SV* sv|SSize_t offset|int size
-: Defined in doop.c, used only in mg.c (with /* XXX slurp this routine */)
-p |void |do_vecset |NN SV* sv
-: Defined in doop.c, used only in pp.c
-p |void |do_vop |I32 optype|NN SV* sv|NN SV* left|NN SV* right
-: Used in perly.y
-p |OP* |dofile |NN OP* term|I32 force_builtin
-ApR |I32 |dowantarray
-Ap |void |dump_all
-p |void |dump_all_perl |bool justperl
-Ap |void |dump_eval
-Ap |void |dump_form |NN const GV* gv
-Ap |void |gv_dump |NULLOK GV* gv
-Ap |void |op_dump |NN const OP *o
-Ap |void |pmop_dump |NULLOK PMOP* pm
-Ap |void |dump_packsubs |NN const HV* stash
-p |void |dump_packsubs_perl |NN const HV* stash|bool justperl
-Ap |void |dump_sub |NN const GV* gv
-p |void |dump_sub_perl |NN const GV* gv|bool justperl
-Apd |void |fbm_compile |NN SV* sv|U32 flags
-ApdR |char* |fbm_instr |NN unsigned char* big|NN unsigned char* bigend \
- |NN SV* littlestr|U32 flags
-p |CV * |find_lexical_cv|PADOFFSET off
-pR |OP * |parse_subsignature
-: Defined in util.c, used only in perl.c
-p |char* |find_script |NN const char *scriptname|bool dosearch \
- |NULLOK const char *const *const search_ext|I32 flags
-#if defined(PERL_IN_OP_C)
-s |OP* |force_list |NULLOK OP* arg|bool nullit
-i |OP* |op_integerize |NN OP *o
-i |OP* |op_std_init |NN OP *o
-#if defined(USE_ITHREADS)
-i |void |op_relocate_sv |NN SV** svp|NN PADOFFSET* targp
-#endif
-i |OP* |newMETHOP_internal |I32 type|I32 flags|NULLOK OP* dynamic_meth \
- |NULLOK SV* const_meth
-: FIXME
-s |OP* |fold_constants |NN OP *o
-#endif
-Afpd |char* |form |NN const char* pat|...
-Ap |char* |vform |NN const char* pat|NULLOK va_list* args
-Ap |void |free_tmps
-#if defined(PERL_IN_OP_C)
-s |OP* |gen_constant_list|NULLOK OP* o
-#endif
-#if !defined(HAS_GETENV_LEN)
-: Used in hv.c
-p |char* |getenv_len |NN const char *env_elem|NN unsigned long *len
-#endif
-: Used in pp_ctl.c and pp_hot.c
-pox |void |get_db_sub |NULLOK SV **svp|NN CV *cv
-Ap |void |gp_free |NULLOK GV* gv
-Ap |GP* |gp_ref |NULLOK GP* gp
-Ap |GV* |gv_add_by_type |NULLOK GV *gv|svtype type
-Apmb |GV* |gv_AVadd |NULLOK GV *gv
-Apmb |GV* |gv_HVadd |NULLOK GV *gv
-Apmb |GV* |gv_IOadd |NULLOK GV* gv
-AmR |GV* |gv_autoload4 |NULLOK HV* stash|NN const char* name \
- |STRLEN len|I32 method
-ApR |GV* |gv_autoload_sv |NULLOK HV* stash|NN SV* namesv|U32 flags
-ApR |GV* |gv_autoload_pv |NULLOK HV* stash|NN const char* namepv \
- |U32 flags
-ApR |GV* |gv_autoload_pvn |NULLOK HV* stash|NN const char* name \
- |STRLEN len|U32 flags
-Ap |void |gv_check |NN HV* stash
-Ap |void |gv_efullname |NN SV* sv|NN const GV* gv
-Apmb |void |gv_efullname3 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix
-Ap |void |gv_efullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
-Ap |GV* |gv_fetchfile |NN const char* name
-Ap |GV* |gv_fetchfile_flags|NN const char *const name|const STRLEN len\
- |const U32 flags
-Amd |GV* |gv_fetchmeth |NULLOK HV* stash|NN const char* name \
- |STRLEN len|I32 level
-Apd |GV* |gv_fetchmeth_sv |NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
-Apd |GV* |gv_fetchmeth_pv |NULLOK HV* stash|NN const char* name \
- |I32 level|U32 flags
-Apd |GV* |gv_fetchmeth_pvn |NULLOK HV* stash|NN const char* name \
- |STRLEN len|I32 level|U32 flags
-Amd |GV* |gv_fetchmeth_autoload |NULLOK HV* stash \
- |NN const char* name|STRLEN len \
- |I32 level
-Apd |GV* |gv_fetchmeth_sv_autoload |NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
-Apd |GV* |gv_fetchmeth_pv_autoload |NULLOK HV* stash|NN const char* name \
- |I32 level|U32 flags
-Apd |GV* |gv_fetchmeth_pvn_autoload |NULLOK HV* stash|NN const char* name \
- |STRLEN len|I32 level|U32 flags
-Apdmb |GV* |gv_fetchmethod |NN HV* stash|NN const char* name
-Apd |GV* |gv_fetchmethod_autoload|NN HV* stash|NN const char* name \
- |I32 autoload
-ApM |GV* |gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags
-ApM |GV* |gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \
- |U32 flags
-ApM |GV* |gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \
- |const STRLEN len|U32 flags
-Ap |GV* |gv_fetchpv |NN const char *nambeg|I32 add|const svtype sv_type
-Ap |void |gv_fullname |NN SV* sv|NN const GV* gv
-Apmb |void |gv_fullname3 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix
-Ap |void |gv_fullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
-: Used in scope.c
-pMox |GP * |newGP |NN GV *const gv
-pX |void |cvgv_set |NN CV* cv|NULLOK GV* gv
-poX |GV * |cvgv_from_hek |NN CV* cv
-pX |void |cvstash_set |NN CV* cv|NULLOK HV* stash
-Amd |void |gv_init |NN GV* gv|NULLOK HV* stash \
- |NN const char* name|STRLEN len|int multi
-Ap |void |gv_init_sv |NN GV* gv|NULLOK HV* stash|NN SV* namesv|U32 flags
-Ap |void |gv_init_pv |NN GV* gv|NULLOK HV* stash|NN const char* name \
- |U32 flags
-Ap |void |gv_init_pvn |NN GV* gv|NULLOK HV* stash|NN const char* name \
- |STRLEN len|U32 flags
-Ap |void |gv_name_set |NN GV* gv|NN const char *name|U32 len|U32 flags
-px |GV * |gv_override |NN const char * const name \
- |const STRLEN len
-XMpd |void |gv_try_downgrade|NN GV* gv
-p |void |gv_setref |NN SV *const dstr|NN SV *const sstr
-Apd |HV* |gv_stashpv |NN const char* name|I32 flags
-Apd |HV* |gv_stashpvn |NN const char* name|U32 namelen|I32 flags
-#if defined(PERL_IN_GV_C)
-i |HV* |gv_stashpvn_internal |NN const char* name|U32 namelen|I32 flags
-i |HV* |gv_stashsvpvn_cached |NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags
-i |GV* |gv_fetchmeth_internal |NULLOK HV* stash|NULLOK SV* meth|NULLOK const char* name \
- |STRLEN len|I32 level|U32 flags
-#endif
-Apd |HV* |gv_stashsv |NN SV* sv|I32 flags
-Apd |void |hv_clear |NULLOK HV *hv
-: used in SAVEHINTS() and op.c
-ApdR |HV * |hv_copy_hints_hv|NULLOK HV *const ohv
-Ap |void |hv_delayfree_ent|NN HV *hv|NULLOK HE *entry
-Abmd |SV* |hv_delete |NULLOK HV *hv|NN const char *key|I32 klen \
- |I32 flags
-Abmd |SV* |hv_delete_ent |NULLOK HV *hv|NN SV *keysv|I32 flags|U32 hash
-AbmdR |bool |hv_exists |NULLOK HV *hv|NN const char *key|I32 klen
-AbmdR |bool |hv_exists_ent |NULLOK HV *hv|NN SV *keysv|U32 hash
-Abmd |SV** |hv_fetch |NULLOK HV *hv|NN const char *key|I32 klen \
- |I32 lval
-Abmd |HE* |hv_fetch_ent |NULLOK HV *hv|NN SV *keysv|I32 lval|U32 hash
-Ap |void* |hv_common |NULLOK HV *hv|NULLOK SV *keysv \
- |NULLOK const char* key|STRLEN klen|int flags \
- |int action|NULLOK SV *val|U32 hash
-Ap |void* |hv_common_key_len|NULLOK HV *hv|NN const char *key \
- |I32 klen_i32|const int action|NULLOK SV *val \
- |const U32 hash
-Apod |STRLEN |hv_fill |NN HV *const hv
-Ap |void |hv_free_ent |NN HV *hv|NULLOK HE *entry
-Apd |I32 |hv_iterinit |NN HV *hv
-ApdR |char* |hv_iterkey |NN HE* entry|NN I32* retlen
-ApdR |SV* |hv_iterkeysv |NN HE* entry
-ApdRbm |HE* |hv_iternext |NN HV *hv
-ApdR |SV* |hv_iternextsv |NN HV *hv|NN char **key|NN I32 *retlen
-ApMdR |HE* |hv_iternext_flags|NN HV *hv|I32 flags
-ApdR |SV* |hv_iterval |NN HV *hv|NN HE *entry
-Ap |void |hv_ksplit |NN HV *hv|IV newmax
-Apdbm |void |hv_magic |NN HV *hv|NULLOK GV *gv|int how
-#if defined(PERL_IN_HV_C)
-s |SV * |refcounted_he_value |NN const struct refcounted_he *he
-#endif
-Xpd |HV * |refcounted_he_chain_2hv|NULLOK const struct refcounted_he *c|U32 flags
-Xpd |SV * |refcounted_he_fetch_pvn|NULLOK const struct refcounted_he *chain \
- |NN const char *keypv|STRLEN keylen|U32 hash|U32 flags
-Xpd |SV * |refcounted_he_fetch_pv|NULLOK const struct refcounted_he *chain \
- |NN const char *key|U32 hash|U32 flags
-Xpd |SV * |refcounted_he_fetch_sv|NULLOK const struct refcounted_he *chain \
- |NN SV *key|U32 hash|U32 flags
-Xpd |struct refcounted_he *|refcounted_he_new_pvn \
- |NULLOK struct refcounted_he *parent \
- |NN const char *keypv|STRLEN keylen \
- |U32 hash|NULLOK SV *value|U32 flags
-Xpd |struct refcounted_he *|refcounted_he_new_pv \
- |NULLOK struct refcounted_he *parent \
- |NN const char *key \
- |U32 hash|NULLOK SV *value|U32 flags
-Xpd |struct refcounted_he *|refcounted_he_new_sv \
- |NULLOK struct refcounted_he *parent \
- |NN SV *key \
- |U32 hash|NULLOK SV *value|U32 flags
-Xpd |void |refcounted_he_free|NULLOK struct refcounted_he *he
-Xpd |struct refcounted_he *|refcounted_he_inc|NULLOK struct refcounted_he *he
-Abmd |SV** |hv_store |NULLOK HV *hv|NULLOK const char *key \
- |I32 klen|NULLOK SV *val|U32 hash
-Abmd |HE* |hv_store_ent |NULLOK HV *hv|NULLOK SV *key|NULLOK SV *val\
- |U32 hash
-AbmM |SV** |hv_store_flags |NULLOK HV *hv|NULLOK const char *key \
- |I32 klen|NULLOK SV *val|U32 hash|int flags
-Amd |void |hv_undef |NULLOK HV *hv
-poX |void |hv_undef_flags |NULLOK HV *hv|U32 flags
-Am |I32 |ibcmp |NN const char* a|NN const char* b|I32 len
-AnpP |I32 |foldEQ |NN const char* a|NN const char* b|I32 len
-Am |I32 |ibcmp_locale |NN const char* a|NN const char* b|I32 len
-AnpP |I32 |foldEQ_locale |NN const char* a|NN const char* b|I32 len
-Am |I32 |ibcmp_utf8 |NN const char *s1|NULLOK char **pe1|UV l1 \
- |bool u1|NN const char *s2|NULLOK char **pe2 \
- |UV l2|bool u2
-Amd |I32 |foldEQ_utf8 |NN const char *s1|NULLOK char **pe1|UV l1 \
- |bool u1|NN const char *s2|NULLOK char **pe2 \
- |UV l2|bool u2
-AMp |I32 |foldEQ_utf8_flags |NN const char *s1|NULLOK char **pe1|UV l1 \
- |bool u1|NN const char *s2|NULLOK char **pe2 \
- |UV l2|bool u2|U32 flags
-AnpP |I32 |foldEQ_latin1 |NN const char* a|NN const char* b|I32 len
-#if defined(PERL_IN_DOIO_C)
-sR |bool |ingroup |Gid_t testgid|bool effective
-#endif
-: Used in toke.c
-p |void |init_argv_symbols|int argc|NN char **argv
-: Used in pp_ctl.c
-po |void |init_dbargs
-: Used in mg.c
-p |void |init_debugger
-Ap |void |init_stacks
-Ap |void |init_tm |NN struct tm *ptm
-: Used in perly.y
-AnpPR |char* |instr |NN const char* big|NN const char* little
-: Used in sv.c
-p |bool |io_close |NN IO* io|NULLOK GV *gv \
- |bool not_implicit|bool warn_on_fail
-: Used in perly.y
-pR |OP* |invert |NULLOK OP* cmd
-ApR |I32 |is_lvalue_sub
-: Used in cop.h
-XopR |I32 |was_lvalue_sub
-AiMRn |STRLEN |_is_utf8_char_slow|NN const U8 *s|NN const U8 *e
-ADMpPR |U32 |to_uni_upper_lc|U32 c
-ADMpPR |U32 |to_uni_title_lc|U32 c
-ADMpPR |U32 |to_uni_lower_lc|U32 c
-ADMpPR |bool |is_uni_alnum |UV c
-ADMpPR |bool |is_uni_alnumc |UV c
-ADMpPR |bool |is_uni_idfirst |UV c
-ADMpPR |bool |is_uni_alpha |UV c
-ADMpPR |bool |is_uni_ascii |UV c
-ADMpPR |bool |is_uni_blank |UV c
-ADMpPR |bool |is_uni_space |UV c
-ADMpPR |bool |is_uni_cntrl |UV c
-ADMpPR |bool |is_uni_graph |UV c
-ADMpPR |bool |is_uni_digit |UV c
-ADMpPR |bool |is_uni_upper |UV c
-ADMpPR |bool |is_uni_lower |UV c
-ADMpPR |bool |is_uni_print |UV c
-ADMpPR |bool |is_uni_punct |UV c
-ADMpPR |bool |is_uni_xdigit |UV c
-AMp |UV |to_uni_upper |UV c|NN U8 *p|NN STRLEN *lenp
-AMp |UV |to_uni_title |UV c|NN U8 *p|NN STRLEN *lenp
-ADMpPR |bool |isIDFIRST_lazy |NN const char* p
-ADMpPR |bool |isALNUM_lazy |NN const char* p
-#ifdef PERL_IN_UTF8_C
-snR |U8 |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
-#endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-EXp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
-#endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
-p |UV |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s
-#endif
-AMp |UV |to_uni_lower |UV c|NN U8 *p|NN STRLEN *lenp
-AMmp |UV |to_uni_fold |UV c|NN U8 *p|NN STRLEN *lenp
-AMp |UV |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
-ADMpPR |bool |is_uni_alnum_lc|UV c
-ADMpPR |bool |is_uni_alnumc_lc|UV c
-ADMpPR |bool |is_uni_idfirst_lc|UV c
-AMpR |bool |_is_uni_perl_idcont|UV c
-AMpR |bool |_is_uni_perl_idstart|UV c
-ADMpPR |bool |is_uni_alpha_lc|UV c
-ADMpPR |bool |is_uni_ascii_lc|UV c
-ADMpPR |bool |is_uni_space_lc|UV c
-ADMpPR |bool |is_uni_blank_lc|UV c
-ADMpPR |bool |is_uni_cntrl_lc|UV c
-ADMpPR |bool |is_uni_graph_lc|UV c
-ADMpPR |bool |is_uni_digit_lc|UV c
-ADMpPR |bool |is_uni_upper_lc|UV c
-ADMpPR |bool |is_uni_lower_lc|UV c
-ADMpPR |bool |is_uni_print_lc|UV c
-ADMpPR |bool |is_uni_punct_lc|UV c
-ADMpPR |bool |is_uni_xdigit_lc|UV c
-AnpdR |bool |is_invariant_string|NN const U8 *s|STRLEN len
-AmpdR |bool |is_ascii_string|NN const U8 *s|STRLEN len
-AnpdD |STRLEN |is_utf8_char |NN const U8 *s
-Abmnpd |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
-Anpd |bool |is_utf8_string |NN const U8 *s|STRLEN len
-Anpdmb |bool |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **ep
-Anpd |bool |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
-AMpR |bool |_is_uni_FOO|const U8 classnum|const UV c
-AMpR |bool |_is_utf8_FOO|const U8 classnum|NN const U8 *p
-ADMpR |bool |is_utf8_alnum |NN const U8 *p
-ADMpR |bool |is_utf8_alnumc |NN const U8 *p
-ADMpR |bool |is_utf8_idfirst|NN const U8 *p
-ADMpR |bool |is_utf8_xidfirst|NN const U8 *p
-AMpR |bool |_is_utf8_idcont|NN const U8 *p
-AMpR |bool |_is_utf8_idstart|NN const U8 *p
-AMpR |bool |_is_utf8_xidcont|NN const U8 *p
-AMpR |bool |_is_utf8_xidstart|NN const U8 *p
-AMpR |bool |_is_utf8_perl_idcont|NN const U8 *p
-AMpR |bool |_is_utf8_perl_idstart|NN const U8 *p
-ADMpR |bool |is_utf8_idcont |NN const U8 *p
-ADMpR |bool |is_utf8_xidcont |NN const U8 *p
-ADMpR |bool |is_utf8_alpha |NN const U8 *p
-ADMpR |bool |is_utf8_ascii |NN const U8 *p
-ADMpR |bool |is_utf8_blank |NN const U8 *p
-ADMpR |bool |is_utf8_space |NN const U8 *p
-ADMpR |bool |is_utf8_perl_space |NN const U8 *p
-ADMpR |bool |is_utf8_perl_word |NN const U8 *p
-ADMpR |bool |is_utf8_cntrl |NN const U8 *p
-ADMpR |bool |is_utf8_digit |NN const U8 *p
-ADMpR |bool |is_utf8_posix_digit |NN const U8 *p
-ADMpR |bool |is_utf8_graph |NN const U8 *p
-ADMpR |bool |is_utf8_upper |NN const U8 *p
-ADMpR |bool |is_utf8_lower |NN const U8 *p
-ADMpR |bool |is_utf8_print |NN const U8 *p
-ADMpR |bool |is_utf8_punct |NN const U8 *p
-ADMpR |bool |is_utf8_xdigit |NN const U8 *p
-AMpR |bool |_is_utf8_mark |NN const U8 *p
-ADMpR |bool |is_utf8_mark |NN const U8 *p
-: Used in perly.y
-p |OP* |jmaybe |NN OP *o
-: Used in pp.c
-pP |I32 |keyword |NN const char *name|I32 len|bool all_keywords
-#if defined(PERL_IN_OP_C)
-s |void |inplace_aassign |NN OP* o
-#endif
-Ap |void |leave_scope |I32 base
-: Public lexer API
-AMpd |void |lex_start |NULLOK SV* line|NULLOK PerlIO *rsfp|U32 flags
-AMpd |bool |lex_bufutf8
-AMpd |char* |lex_grow_linestr|STRLEN len
-AMpd |void |lex_stuff_pvn |NN const char* pv|STRLEN len|U32 flags
-AMpd |void |lex_stuff_pv |NN const char* pv|U32 flags
-AMpd |void |lex_stuff_sv |NN SV* sv|U32 flags
-AMpd |void |lex_unstuff |NN char* ptr
-AMpd |void |lex_read_to |NN char* ptr
-AMpd |void |lex_discard_to |NN char* ptr
-AMpd |bool |lex_next_chunk |U32 flags
-AMpd |I32 |lex_peek_unichar|U32 flags
-AMpd |I32 |lex_read_unichar|U32 flags
-AMpd |void |lex_read_space |U32 flags
-: Public parser API
-AMpd |OP* |parse_arithexpr|U32 flags
-AMpd |OP* |parse_termexpr |U32 flags
-AMpd |OP* |parse_listexpr |U32 flags
-AMpd |OP* |parse_fullexpr |U32 flags
-AMpd |OP* |parse_block |U32 flags
-AMpd |OP* |parse_barestmt |U32 flags
-AMpd |SV* |parse_label |U32 flags
-AMpd |OP* |parse_fullstmt |U32 flags
-AMpd |OP* |parse_stmtseq |U32 flags
-: Used in various files
-Apd |void |op_null |NN OP* o
-: FIXME. Used by Data::Alias
-EXp |void |op_clear |NN OP* o
-Ap |void |op_refcnt_lock
-Ap |void |op_refcnt_unlock
-Apdn |OP* |op_sibling_splice|NN OP *parent|NULLOK OP *start \
- |int del_count|NULLOK OP* insert
-Apdn |OP* |op_parent|NN OP *o
-#if defined(PERL_IN_OP_C)
-s |OP* |listkids |NULLOK OP* o
-#endif
-: Used in S_doeval in pp_ctl.c
-p |OP* |list |NULLOK OP* o
-Apd |void |load_module|U32 flags|NN SV* name|NULLOK SV* ver|...
-Ap |void |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
-: Used in perly.y
-p |OP* |localize |NN OP *o|I32 lex
-ApdR |I32 |looks_like_number|NN SV *const sv
-Apd |UV |grok_bin |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EMsR |char |grok_bslash_c |const char source|const bool output_warning
-EMsR |bool |grok_bslash_o |NN char** s|NN UV* uv \
- |NN const char** error_msg \
- |const bool output_warning \
- |const bool strict \
- |const bool silence_non_portable \
- |const bool utf8
-EMiR |bool |grok_bslash_x |NN char** s|NN UV* uv \
- |NN const char** error_msg \
- |const bool output_warning \
- |const bool strict \
- |const bool silence_non_portable \
- |const bool utf8
-EMsPR |char*|form_short_octal_warning|NN const char * const s \
- |const STRLEN len
-#endif
-Apd |UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-Apd |int |grok_infnan |NN const char** sp|NN const char *send
-Apd |int |grok_number |NN const char *pv|STRLEN len|NULLOK UV *valuep
-Apd |int |grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
-ApdR |bool |grok_numeric_radix|NN const char **sp|NN const char *send
-Apd |UV |grok_oct |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-EXpn |bool |grok_atoUV |NN const char* pv|NN UV* valptr|NULLOK const char** endptr
-: These are all indirectly referenced by globals.c. This is somewhat annoying.
-p |int |magic_clearenv |NN SV* sv|NN MAGIC* mg
-p |int |magic_clear_all_env|NN SV* sv|NN MAGIC* mg
-dp |int |magic_clearhint|NN SV* sv|NN MAGIC* mg
-dp |int |magic_clearhints|NN SV* sv|NN MAGIC* mg
-p |int |magic_clearisa |NULLOK SV* sv|NN MAGIC* mg
-p |int |magic_clearpack|NN SV* sv|NN MAGIC* mg
-p |int |magic_clearsig |NN SV* sv|NN MAGIC* mg
-p |int |magic_copycallchecker|NN SV* sv|NN MAGIC *mg|NN SV *nsv \
- |NULLOK const char *name|I32 namlen
-p |int |magic_existspack|NN SV* sv|NN const MAGIC* mg
-p |int |magic_freeovrld|NN SV* sv|NN MAGIC* mg
-p |int |magic_get |NN SV* sv|NN MAGIC* mg
-p |int |magic_getarylen|NN SV* sv|NN const MAGIC* mg
-p |int |magic_getdefelem|NN SV* sv|NN MAGIC* mg
-p |int |magic_getdebugvar|NN SV* sv|NN MAGIC* mg
-p |int |magic_getnkeys |NN SV* sv|NN MAGIC* mg
-p |int |magic_getpack |NN SV* sv|NN MAGIC* mg
-p |int |magic_getpos |NN SV* sv|NN MAGIC* mg
-p |int |magic_getsig |NN SV* sv|NN MAGIC* mg
-p |int |magic_getsubstr|NN SV* sv|NN MAGIC* mg
-p |int |magic_gettaint |NN SV* sv|NN MAGIC* mg
-p |int |magic_getuvar |NN SV* sv|NN MAGIC* mg
-p |int |magic_getvec |NN SV* sv|NN MAGIC* mg
-p |int |magic_nextpack |NN SV *sv|NN MAGIC *mg|NN SV *key
-p |U32 |magic_regdata_cnt|NN SV* sv|NN MAGIC* mg
-p |int |magic_regdatum_get|NN SV* sv|NN MAGIC* mg
-:removing noreturn to silence a warning for this function resulted in no
-:change to the interpreter DLL image under VS 2003 -O1 -GL 32 bits only because
-:this is used in a magic vtable, do not use this on conventionally called funcs
-#ifdef _MSC_VER
-p |int |magic_regdatum_set|NN SV* sv|NN MAGIC* mg
-#else
-pr |int |magic_regdatum_set|NN SV* sv|NN MAGIC* mg
-#endif
-p |int |magic_set |NN SV* sv|NN MAGIC* mg
-p |int |magic_setarylen|NN SV* sv|NN MAGIC* mg
-p |int |magic_cleararylen_p|NN SV* sv|NN MAGIC* mg
-p |int |magic_freearylen_p|NN SV* sv|NN MAGIC* mg
-p |int |magic_setdbline|NN SV* sv|NN MAGIC* mg
-p |int |magic_setdebugvar|NN SV* sv|NN MAGIC* mg
-p |int |magic_setdefelem|NN SV* sv|NN MAGIC* mg
-p |int |magic_setenv |NN SV* sv|NN MAGIC* mg
-dp |int |magic_sethint |NN SV* sv|NN MAGIC* mg
-p |int |magic_setisa |NN SV* sv|NN MAGIC* mg
-p |int |magic_setlvref |NN SV* sv|NN MAGIC* mg
-p |int |magic_setmglob |NN SV* sv|NN MAGIC* mg
-p |int |magic_setnkeys |NN SV* sv|NN MAGIC* mg
-p |int |magic_setpack |NN SV* sv|NN MAGIC* mg
-p |int |magic_setpos |NN SV* sv|NN MAGIC* mg
-p |int |magic_setregexp|NN SV* sv|NN MAGIC* mg
-p |int |magic_setsig |NULLOK SV* sv|NN MAGIC* mg
-p |int |magic_setsubstr|NN SV* sv|NN MAGIC* mg
-p |int |magic_settaint |NN SV* sv|NN MAGIC* mg
-p |int |magic_setuvar |NN SV* sv|NN MAGIC* mg
-p |int |magic_setvec |NN SV* sv|NN MAGIC* mg
-p |int |magic_setutf8 |NN SV* sv|NN MAGIC* mg
-p |int |magic_set_all_env|NN SV* sv|NN MAGIC* mg
-p |U32 |magic_sizepack |NN SV* sv|NN MAGIC* mg
-p |int |magic_wipepack |NN SV* sv|NN MAGIC* mg
-pod |SV* |magic_methcall |NN SV *sv|NN const MAGIC *mg \
- |NN SV *meth|U32 flags \
- |U32 argc|...
-Ap |I32 * |markstack_grow
-#if defined(USE_LOCALE_COLLATE)
-p |int |magic_setcollxfrm|NN SV* sv|NN MAGIC* mg
-: Defined in locale.c, used only in sv.c
-p |char* |mem_collxfrm |NN const char* s|STRLEN len|NN STRLEN* xlen
-#endif
-Afpd |SV* |mess |NN const char* pat|...
-Apd |SV* |mess_sv |NN SV* basemsg|bool consume
-Apd |SV* |vmess |NN const char* pat|NULLOK va_list* args
-: FIXME - either make it public, or stop exporting it. (Data::Alias uses this)
-: Used in gv.c, op.c, toke.c
-EXp |void |qerror |NN SV* err
-Apd |void |sortsv |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp
-Apd |void |sortsv_flags |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
-Apd |int |mg_clear |NN SV* sv
-Apd |int |mg_copy |NN SV *sv|NN SV *nsv|NULLOK const char *key \
- |I32 klen
-: Defined in mg.c, used only in scope.c
-pd |void |mg_localize |NN SV* sv|NN SV* nsv|bool setmagic
-ApdRn |MAGIC* |mg_find |NULLOK const SV* sv|int type
-ApdRn |MAGIC* |mg_findext |NULLOK const SV* sv|int type|NULLOK const MGVTBL *vtbl
-: exported for re.pm
-EXpR |MAGIC* |mg_find_mglob |NN SV* sv
-Apd |int |mg_free |NN SV* sv
-Apd |void |mg_free_type |NN SV* sv|int how
-Apd |int |mg_get |NN SV* sv
-ApdD |U32 |mg_length |NN SV* sv
-Apdn |void |mg_magical |NN SV* sv
-Apd |int |mg_set |NN SV* sv
-Ap |I32 |mg_size |NN SV* sv
-Apn |void |mini_mktime |NN struct tm *ptm
-AMmd |OP* |op_lvalue |NULLOK OP* o|I32 type
-poX |OP* |op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags
-p |void |finalize_optree |NN OP* o
-#if defined(PERL_IN_OP_C)
-s |void |finalize_op |NN OP* o
-s |void |move_proto_attr|NN OP **proto|NN OP **attrs|NN const GV *name
-#endif
-: Used in op.c and pp_sys.c
-p |int |mode_from_discipline|NULLOK const char* s|STRLEN len
-Ap |const char* |moreswitches |NN const char* s
-Ap |NV |my_atof |NN const char *s
-#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
-Anp |char* |my_bcopy |NN const char* from|NN char* to|I32 len
-#endif
-#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-Anp |char* |my_bzero |NN char* loc|I32 len
-#endif
-Apr |void |my_exit |U32 status
-Apr |void |my_failure_exit
-Ap |I32 |my_fflush_all
-Anp |Pid_t |my_fork
-Anp |void |atfork_lock
-Anp |void |atfork_unlock
-Apmb |I32 |my_lstat
-pX |I32 |my_lstat_flags |NULLOK const U32 flags
-#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
-AnpP |I32 |my_memcmp |NN const char* s1|NN const char* s2|I32 len
-#endif
-#if !defined(HAS_MEMSET)
-Anp |void* |my_memset |NN char* loc|I32 ch|I32 len
-#endif
-#if !defined(PERL_IMPLICIT_SYS)
-Ap |I32 |my_pclose |NULLOK PerlIO* ptr
-Ap |PerlIO*|my_popen |NN const char* cmd|NN const char* mode
-#endif
-Ap |PerlIO*|my_popen_list |NN const char* mode|int n|NN SV ** args
-Ap |void |my_setenv |NULLOK const char* nam|NULLOK const char* val
-Apmb |I32 |my_stat
-pX |I32 |my_stat_flags |NULLOK const U32 flags
-Afp |char * |my_strftime |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
-: Used in pp_ctl.c
-p |void |my_unexec
-ADMnoPR |UV |NATIVE_TO_NEED |const UV enc|const UV ch
-ADMnoPR |UV |ASCII_TO_NEED |const UV enc|const UV ch
-Apa |OP* |newANONLIST |NULLOK OP* o
-Apa |OP* |newANONHASH |NULLOK OP* o
-Ap |OP* |newANONSUB |I32 floor|NULLOK OP* proto|NULLOK OP* block
-#if defined(PERL_IN_OP_C)
-i |bool |aassign_common_vars |NULLOK OP* o
-#endif
-Apda |OP* |newASSIGNOP |I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right
-Apda |OP* |newCONDOP |I32 flags|NN OP* first|NULLOK OP* trueop|NULLOK OP* falseop
-Apd |CV* |newCONSTSUB |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
-Apd |CV* |newCONSTSUB_flags|NULLOK HV* stash \
- |NULLOK const char* name|STRLEN len \
- |U32 flags|NULLOK SV* sv
-Ap |void |newFORM |I32 floor|NULLOK OP* o|NULLOK OP* block
-Apda |OP* |newFOROP |I32 flags|NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont
-Apda |OP* |newGIVENOP |NN OP* cond|NN OP* block|PADOFFSET defsv_off
-Apda |OP* |newLOGOP |I32 optype|I32 flags|NN OP *first|NN OP *other
-Apda |OP* |newLOOPEX |I32 type|NN OP* label
-Apda |OP* |newLOOPOP |I32 flags|I32 debuggable|NULLOK OP* expr|NULLOK OP* block
-Apda |OP* |newNULLLIST
-Apda |OP* |newOP |I32 optype|I32 flags
-Ap |void |newPROG |NN OP* o
-Apda |OP* |newRANGE |I32 flags|NN OP* left|NN OP* right
-Apda |OP* |newSLICEOP |I32 flags|NULLOK OP* subscript|NULLOK OP* listop
-Apda |OP* |newSTATEOP |I32 flags|NULLOK char* label|NULLOK OP* o
-Abm |CV* |newSUB |I32 floor|NULLOK OP* o|NULLOK OP* proto \
- |NULLOK OP* block
-p |CV * |newXS_len_flags|NULLOK const char *name|STRLEN len \
- |NN XSUBADDR_t subaddr\
- |NULLOK const char *const filename \
- |NULLOK const char *const proto \
- |NULLOK SV **const_svp|U32 flags
-pX |CV * |newXS_deffile |NN const char *name|NN XSUBADDR_t subaddr
-ApM |CV * |newXS_flags |NULLOK const char *name|NN XSUBADDR_t subaddr\
- |NN const char *const filename \
- |NULLOK const char *const proto|U32 flags
-Apd |CV* |newXS |NULLOK const char *name|NN XSUBADDR_t subaddr\
- |NN const char *filename
-AmdbR |AV* |newAV
-Apa |OP* |newAVREF |NN OP* o
-Apda |OP* |newBINOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
-Apa |OP* |newCVREF |I32 flags|NULLOK OP* o
-Apda |OP* |newGVOP |I32 type|I32 flags|NN GV* gv
-Am |GV* |newGVgen |NN const char* pack
-Apa |GV* |newGVgen_flags |NN const char* pack|U32 flags
-Apa |OP* |newGVREF |I32 type|NULLOK OP* o
-ApaR |OP* |newHVREF |NN OP* o
-AmdbR |HV* |newHV
-ApaR |HV* |newHVhv |NULLOK HV *hv
-Apabm |IO* |newIO
-Apda |OP* |newLISTOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
-AMpdan |PADNAME *|newPADNAMEouter|NN PADNAME *outer
-AMpdan |PADNAME *|newPADNAMEpvn|NN const char *s|STRLEN len
-AMpdan |PADNAMELIST *|newPADNAMELIST|size_t max
-#ifdef USE_ITHREADS
-Apda |OP* |newPADOP |I32 type|I32 flags|NN SV* sv
-#endif
-Apda |OP* |newPMOP |I32 type|I32 flags
-Apda |OP* |newPVOP |I32 type|I32 flags|NULLOK char* pv
-Apa |SV* |newRV |NN SV *const sv
-Apda |SV* |newRV_noinc |NN SV *const tmpRef
-Apda |SV* |newSV |const STRLEN len
-Apa |OP* |newSVREF |NN OP* o
-Apda |OP* |newSVOP |I32 type|I32 flags|NN SV* sv
-ApdR |OP* |newDEFSVOP
-pa |SV* |newSVavdefelem |NN AV *av|SSize_t ix|bool extendible
-Apda |SV* |newSViv |const IV i
-Apda |SV* |newSVuv |const UV u
-Apda |SV* |newSVnv |const NV n
-Apda |SV* |newSVpv |NULLOK const char *const s|const STRLEN len
-Apda |SV* |newSVpvn |NULLOK const char *const s|const STRLEN len
-Apda |SV* |newSVpvn_flags |NULLOK const char *const s|const STRLEN len|const U32 flags
-Apda |SV* |newSVhek |NULLOK const HEK *const hek
-Apda |SV* |newSVpvn_share |NULLOK const char* s|I32 len|U32 hash
-Apda |SV* |newSVpv_share |NULLOK const char* s|U32 hash
-Afpda |SV* |newSVpvf |NN const char *const pat|...
-Apa |SV* |vnewSVpvf |NN const char *const pat|NULLOK va_list *const args
-Apd |SV* |newSVrv |NN SV *const rv|NULLOK const char *const classname
-Apda |SV* |newSVsv |NULLOK SV *const old
-Apda |SV* |newSV_type |const svtype type
-Apda |OP* |newUNOP |I32 type|I32 flags|NULLOK OP* first
-Apda |OP* |newUNOP_AUX |I32 type|I32 flags|NULLOK OP* first \
- |NULLOK UNOP_AUX_item *aux
-Apda |OP* |newWHENOP |NULLOK OP* cond|NN OP* block
-Apda |OP* |newWHILEOP |I32 flags|I32 debuggable|NULLOK LOOP* loop \
- |NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \
- |I32 has_my
-Apda |OP* |newMETHOP |I32 type|I32 flags|NN OP* dynamic_meth
-Apda |OP* |newMETHOP_named|I32 type|I32 flags|NN SV* const_meth
-Apd |CV* |rv2cv_op_cv |NN OP *cvop|U32 flags
-Apd |OP* |ck_entersub_args_list|NN OP *entersubop
-Apd |OP* |ck_entersub_args_proto|NN OP *entersubop|NN GV *namegv|NN SV *protosv
-Apd |OP* |ck_entersub_args_proto_or_list|NN OP *entersubop|NN GV *namegv|NN SV *protosv
-po |OP* |ck_entersub_args_core|NN OP *entersubop|NN GV *namegv \
- |NN SV *protosv
-Apd |void |cv_get_call_checker|NN CV *cv|NN Perl_call_checker *ckfun_p|NN SV **ckobj_p
-Apd |void |cv_set_call_checker|NN CV *cv|NN Perl_call_checker ckfun|NN SV *ckobj
-Apd |void |cv_set_call_checker_flags|NN CV *cv \
- |NN Perl_call_checker ckfun \
- |NN SV *ckobj|U32 flags
-Apd |void |wrap_op_checker|Optype opcode|NN Perl_check_t new_checker|NN Perl_check_t *old_checker_p
-Apa |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
-Ap |char* |scan_vstring |NN const char *s|NN const char *const e \
- |NN SV *sv
-Apd |const char* |scan_version |NN const char *s|NN SV *rv|bool qv
-Apd |const char* |prescan_version |NN const char *s\
- |bool strict|NULLOK const char** errstr|NULLOK bool *sqv\
- |NULLOK int *ssaw_decimal|NULLOK int *swidth|NULLOK bool *salpha
-Apd |SV* |new_version |NN SV *ver
-Apd |SV* |upg_version |NN SV *ver|bool qv
-Apd |SV* |vverify |NN SV *vs
-Apd |SV* |vnumify |NN SV *vs
-Apd |SV* |vnormal |NN SV *vs
-Apd |SV* |vstringify |NN SV *vs
-Apd |int |vcmp |NN SV *lhv|NN SV *rhv
-: Used in pp_hot.c and pp_sys.c
-p |PerlIO*|nextargv |NN GV* gv|bool nomagicopen
-AnpP |char* |ninstr |NN const char* big|NN const char* bigend \
- |NN const char* little|NN const char* lend
-Apd |void |op_free |NULLOK OP* arg
-Mp |OP* |op_unscope |NULLOK OP* o
-#ifdef PERL_CORE
-p |void |opslab_free |NN OPSLAB *slab
-p |void |opslab_free_nopad|NN OPSLAB *slab
-p |void |opslab_force_free|NN OPSLAB *slab
-#endif
-: Used in perly.y
-p |void |package |NN OP* o
-: Used in perly.y
-p |void |package_version|NN OP* v
-: Used in toke.c and perly.y
-p |PADOFFSET|allocmy |NN const char *const name|const STRLEN len\
- |const U32 flags
-#ifdef USE_ITHREADS
-AMp |PADOFFSET|alloccopstash|NN HV *hv
-#endif
-: Used in perly.y
-pR |OP* |oopsAV |NN OP* o
-: Used in perly.y
-pR |OP* |oopsHV |NN OP* o
-
-: peephole optimiser
-p |void |peep |NULLOK OP* o
-p |void |rpeep |NULLOK OP* o
-: Defined in doio.c, used only in pp_hot.c
-dopM |PerlIO*|start_glob |NN SV *tmpglob|NN IO *io
-
-Ap |void |reentrant_size
-Ap |void |reentrant_init
-Ap |void |reentrant_free
-Anp |void* |reentrant_retry|NN const char *f|...
-
-: "Very" special - can't use the O flag for this one:
-: (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef)
-Ap |void |call_atexit |ATEXIT_t fn|NULLOK void *ptr
-ApdO |I32 |call_argv |NN const char* sub_name|I32 flags|NN char** argv
-ApdO |I32 |call_method |NN const char* methname|I32 flags
-ApdO |I32 |call_pv |NN const char* sub_name|I32 flags
-ApdO |I32 |call_sv |NN SV* sv|VOL I32 flags
-Ap |void |despatch_signals
-Ap |OP * |doref |NN OP *o|I32 type|bool set_op_ref
-ApdO |SV* |eval_pv |NN const char* p|I32 croak_on_error
-ApdO |I32 |eval_sv |NN SV* sv|I32 flags
-ApdO |SV* |get_sv |NN const char *name|I32 flags
-ApdO |AV* |get_av |NN const char *name|I32 flags
-ApdO |HV* |get_hv |NN const char *name|I32 flags
-ApdO |CV* |get_cv |NN const char* name|I32 flags
-Apd |CV* |get_cvn_flags |NN const char* name|STRLEN len|I32 flags
-#ifdef WIN32
-ApPM |char* |my_setlocale |int category|NULLOK const char* locale
-#else
-AmPM |char* |my_setlocale |int category|NULLOK const char* locale
-#endif
-ApOM |int |init_i18nl10n |int printwarn
-ApOM |int |init_i18nl14n |int printwarn
-ApM |char* |my_strerror |const int errnum
-ApOM |void |new_collate |NULLOK const char* newcoll
-ApOM |void |new_ctype |NN const char* newctype
-EXpMn |void |_warn_problematic_locale
-ApOM |void |new_numeric |NULLOK const char* newcoll
-Ap |void |set_numeric_local
-Ap |void |set_numeric_radix
-Ap |void |set_numeric_standard
-ApM |bool |_is_in_locale_category|const bool compiling|const int category
-Apd |void |sync_locale
-ApdO |void |require_pv |NN const char* pv
-Apd |void |pack_cat |NN SV *cat|NN const char *pat|NN const char *patend \
- |NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags
-Apd |void |packlist |NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist
-#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-s |void |pidgone |Pid_t pid|int status
-#endif
-: Used in perly.y
-p |OP* |pmruntime |NN OP *o|NN OP *expr|NULLOK OP *repl \
- |bool isreg|I32 floor
-#if defined(PERL_IN_OP_C)
-s |OP* |pmtrans |NN OP* o|NN OP* expr|NN OP* repl
-#endif
-Ap |void |pop_scope
-Ap |void |push_scope
-Amb |OP* |ref |NULLOK OP* o|I32 type
-#if defined(PERL_IN_OP_C)
-s |OP* |refkids |NULLOK OP* o|I32 type
-#endif
-Ap |void |regdump |NN const regexp* r
-Ap |SV* |regclass_swash |NULLOK const regexp *prog \
- |NN const struct regnode *node|bool doinit \
- |NULLOK SV **listsvp|NULLOK SV **altsvp
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-AMpR |SV* |_new_invlist_C_array|NN const UV* const list
-: Not used currently: EXMs |bool |_invlistEQ |NN SV* const a|NN SV* const b|const bool complement_b
-#endif
-Ap |I32 |pregexec |NN REGEXP * const prog|NN char* stringarg \
- |NN char* strend|NN char* strbeg \
- |SSize_t minend |NN SV* screamer|U32 nosave
-Ap |void |pregfree |NULLOK REGEXP* r
-Ap |void |pregfree2 |NN REGEXP *rx
-: FIXME - is anything in re using this now?
-EXp |REGEXP*|reg_temp_copy |NULLOK REGEXP* ret_x|NN REGEXP* rx
-Ap |void |regfree_internal|NN REGEXP *const rx
-#if defined(USE_ITHREADS)
-Ap |void* |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
-#endif
-EXp |regexp_engine const *|current_re_engine
-Ap |REGEXP*|pregcomp |NN SV * const pattern|const U32 flags
-p |REGEXP*|re_op_compile |NULLOK SV ** const patternp \
- |int pat_count|NULLOK OP *expr \
- |NN const regexp_engine* eng \
- |NULLOK REGEXP *old_re \
- |NULLOK bool *is_bare_re \
- |U32 rx_flags|U32 pm_flags
-Ap |REGEXP*|re_compile |NN SV * const pattern|U32 orig_rx_flags
-Ap |char* |re_intuit_start|NN REGEXP * const rx \
- |NULLOK SV* sv \
- |NN const char* const strbeg \
- |NN char* strpos \
- |NN char* strend \
- |const U32 flags \
- |NULLOK re_scream_pos_data *data
-Ap |SV* |re_intuit_string|NN REGEXP *const r
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EiPRn |I32 |regcurly |NN const char *s
-#endif
-Ap |I32 |regexec_flags |NN REGEXP *const rx|NN char *stringarg \
- |NN char *strend|NN char *strbeg \
- |SSize_t minend|NN SV *sv \
- |NULLOK void *data|U32 flags
-ApR |regnode*|regnext |NULLOK regnode* p
-EXp |SV*|reg_named_buff |NN REGEXP * const rx|NULLOK SV * const key \
- |NULLOK SV * const value|const U32 flags
-EXp |SV*|reg_named_buff_iter |NN REGEXP * const rx|NULLOK const SV * const lastkey \
- |const U32 flags
-Ap |SV*|reg_named_buff_fetch |NN REGEXP * const rx|NN SV * const namesv|const U32 flags
-Ap |bool|reg_named_buff_exists |NN REGEXP * const rx|NN SV * const key|const U32 flags
-Ap |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags
-Ap |SV*|reg_named_buff_nextkey |NN REGEXP * const rx|const U32 flags
-Ap |SV*|reg_named_buff_scalar |NN REGEXP * const rx|const U32 flags
-Ap |SV*|reg_named_buff_all |NN REGEXP * const rx|const U32 flags
-
-: FIXME - is anything in re using this now?
-EXp |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv
-: FIXME - is anything in re using this now?
-EXp |void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value
-: FIXME - is anything in re using this now?
-EXp |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren
-
-: FIXME - is anything in re using this now?
-EXp |SV*|reg_qr_package|NN REGEXP * const rx
-
-Anp |void |repeatcpy |NN char* to|NN const char* from|I32 len|IV count
-AnpP |char* |rninstr |NN const char* big|NN const char* bigend \
- |NN const char* little|NN const char* lend
-Ap |Sighandler_t|rsignal |int i|Sighandler_t t
-: Used in pp_sys.c
-p |int |rsignal_restore|int i|NULLOK Sigsave_t* t
-: Used in pp_sys.c
-p |int |rsignal_save |int i|Sighandler_t t1|NN Sigsave_t* save
-Ap |Sighandler_t|rsignal_state|int i
-#if defined(PERL_IN_PP_CTL_C)
-s |void |rxres_free |NN void** rsp
-s |void |rxres_restore |NN void **rsp|NN REGEXP *rx
-#endif
-: Used in pp_hot.c
-p |void |rxres_save |NN void **rsp|NN REGEXP *rx
-#if !defined(HAS_RENAME)
-: Used in pp_sys.c
-p |I32 |same_dirent |NN const char* a|NN const char* b
-#endif
-Apda |char* |savepv |NULLOK const char* pv
-Apda |char* |savepvn |NULLOK const char* pv|I32 len
-Apda |char* |savesharedpv |NULLOK const char* pv
-
-: NULLOK only to suppress a compiler warning
-Apda |char* |savesharedpvn |NULLOK const char *const pv \
- |const STRLEN len
-Apda |char* |savesharedsvpv |NN SV *sv
-Apda |char* |savesvpv |NN SV* sv
-Ap |void |savestack_grow
-Ap |void |savestack_grow_cnt |I32 need
-Amp |void |save_aelem |NN AV* av|SSize_t idx|NN SV **sptr
-Ap |void |save_aelem_flags|NN AV* av|SSize_t idx|NN SV **sptr \
- |const U32 flags
-p |void |save_aliased_sv|NN GV* gv
-Ap |I32 |save_alloc |I32 size|I32 pad
-Ap |void |save_aptr |NN AV** aptr
-Ap |AV* |save_ary |NN GV* gv
-Ap |void |save_bool |NN bool* boolp
-Ap |void |save_clearsv |NN SV** svp
-Ap |void |save_delete |NN HV *hv|NN char *key|I32 klen
-Ap |void |save_hdelete |NN HV *hv|NN SV *keysv
-Ap |void |save_adelete |NN AV *av|SSize_t key
-Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|NN void* p
-Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|NULLOK void* p
-Apmb |void |save_freesv |NULLOK SV* sv
-: Used in SAVEFREOP(), used in op.c, pp_ctl.c
-Apmb |void |save_freeop |NULLOK OP* o
-Apmb |void |save_freepv |NULLOK char* pv
-Ap |void |save_generic_svref|NN SV** sptr
-Ap |void |save_generic_pvref|NN char** str
-Ap |void |save_shared_pvref|NN char** str
-Ap |void |save_gp |NN GV* gv|I32 empty
-Ap |HV* |save_hash |NN GV* gv
-Ap |void |save_hints
-Amp |void |save_helem |NN HV *hv|NN SV *key|NN SV **sptr
-Ap |void |save_helem_flags|NN HV *hv|NN SV *key|NN SV **sptr|const U32 flags
-Ap |void |save_hptr |NN HV** hptr
-Ap |void |save_I16 |NN I16* intp
-Ap |void |save_I32 |NN I32* intp
-Ap |void |save_I8 |NN I8* bytep
-Ap |void |save_int |NN int* intp
-Ap |void |save_item |NN SV* item
-Ap |void |save_iv |NN IV *ivp
-Ap |void |save_list |NN SV** sarg|I32 maxsarg
-Ap |void |save_long |NN long* longp
-Apmb |void |save_mortalizesv|NN SV* sv
-Ap |void |save_nogv |NN GV* gv
-: Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c
-Apmb |void |save_op
-Ap |SV* |save_scalar |NN GV* gv
-Ap |void |save_pptr |NN char** pptr
-Ap |void |save_vptr |NN void *ptr
-Ap |void |save_re_context
-Ap |void |save_padsv_and_mortalize|PADOFFSET off
-Ap |void |save_sptr |NN SV** sptr
-Xp |void |save_strlen |NN STRLEN* ptr
-Ap |SV* |save_svref |NN SV** sptr
-Ap |void |save_pushptr |NULLOK void *const ptr|const int type
-Ap |void |save_pushi32ptr|const I32 i|NULLOK void *const ptr|const int type
-: Used by SAVESWITCHSTACK() in pp.c
-Ap |void |save_pushptrptr|NULLOK void *const ptr1 \
- |NULLOK void *const ptr2|const int type
-#if defined(PERL_IN_SCOPE_C)
-s |void |save_pushptri32ptr|NULLOK void *const ptr1|const I32 i \
- |NULLOK void *const ptr2|const int type
-#endif
-: Used in perly.y
-p |OP* |sawparens |NULLOK OP* o
-Apd |OP* |op_contextualize|NN OP* o|I32 context
-: Used in perly.y
-p |OP* |scalar |NULLOK OP* o
-#if defined(PERL_IN_OP_C)
-s |OP* |scalarkids |NULLOK OP* o
-s |OP* |scalarseq |NULLOK OP* o
-#endif
-: Used in pp_ctl.c
-p |OP* |scalarvoid |NN OP* o
-Apd |NV |scan_bin |NN const char* start|STRLEN len|NN STRLEN* retlen
-Apd |NV |scan_hex |NN const char* start|STRLEN len|NN STRLEN* retlen
-Ap |char* |scan_num |NN const char* s|NN YYSTYPE *lvalp
-Apd |NV |scan_oct |NN const char* start|STRLEN len|NN STRLEN* retlen
-AMpd |OP* |op_scope |NULLOK OP* o
-: Only used by perl.c/miniperl.c, but defined in caretx.c
-px |void |set_caret_X
-Apd |void |setdefout |NN GV* gv
-Ap |HEK* |share_hek |NN const char* str|I32 len|U32 hash
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-: Used in perl.c
-np |Signal_t |sighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap
-Anp |Signal_t |csighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap
-#else
-np |Signal_t |sighandler |int sig
-Anp |Signal_t |csighandler |int sig
-#endif
-Ap |SV** |stack_grow |NN SV** sp|NN SV** p|SSize_t n
-Ap |I32 |start_subparse |I32 is_format|U32 flags
-: Used in pp_ctl.c
-p |void |sub_crush_depth|NN CV* cv
-Amd |bool |sv_2bool |NN SV *const sv
-Apd |bool |sv_2bool_flags |NN SV *sv|I32 flags
-Apd |CV* |sv_2cv |NULLOK SV* sv|NN HV **const st|NN GV **const gvp \
- |const I32 lref
-Apd |IO* |sv_2io |NN SV *const sv
-#if defined(PERL_IN_SV_C)
-s |bool |glob_2number |NN GV* const gv
-#endif
-Amb |IV |sv_2iv |NN SV *sv
-Apd |IV |sv_2iv_flags |NN SV *const sv|const I32 flags
-Apd |SV* |sv_2mortal |NULLOK SV *const sv
-Apd |NV |sv_2nv_flags |NN SV *const sv|const I32 flags
-: Used in pp.c, pp_hot.c, sv.c
-pMd |SV* |sv_2num |NN SV *const sv
-Amb |char* |sv_2pv |NN SV *sv|NULLOK STRLEN *lp
-Apd |char* |sv_2pv_flags |NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
-Apd |char* |sv_2pvutf8 |NN SV *sv|NULLOK STRLEN *const lp
-Apd |char* |sv_2pvbyte |NN SV *sv|NULLOK STRLEN *const lp
-Ap |char* |sv_pvn_nomg |NN SV* sv|NULLOK STRLEN* lp
-Amb |UV |sv_2uv |NN SV *sv
-Apd |UV |sv_2uv_flags |NN SV *const sv|const I32 flags
-Apd |IV |sv_iv |NN SV* sv
-Apd |UV |sv_uv |NN SV* sv
-Apd |NV |sv_nv |NN SV* sv
-Apd |char* |sv_pvn |NN SV *sv|NN STRLEN *lp
-Apd |char* |sv_pvutf8n |NN SV *sv|NN STRLEN *lp
-Apd |char* |sv_pvbyten |NN SV *sv|NN STRLEN *lp
-Apd |I32 |sv_true |NULLOK SV *const sv
-#if defined(PERL_IN_SV_C)
-sd |void |sv_add_arena |NN char *const ptr|const U32 size \
- |const U32 flags
-#endif
-Apdn |int |sv_backoff |NN SV *const sv
-Apd |SV* |sv_bless |NN SV *const sv|NN HV *const stash
-#if defined(PERL_DEBUG_READONLY_COW)
-p |void |sv_buf_to_ro |NN SV *sv
-# if defined(PERL_IN_SV_C)
-s |void |sv_buf_to_rw |NN SV *sv
-# endif
-#endif
-Afpd |void |sv_catpvf |NN SV *const sv|NN const char *const pat|...
-Apd |void |sv_vcatpvf |NN SV *const sv|NN const char *const pat \
- |NULLOK va_list *const args
-Apd |void |sv_catpv |NN SV *const sv|NULLOK const char* ptr
-Amdb |void |sv_catpvn |NN SV *dsv|NN const char *sstr|STRLEN len
-Amdb |void |sv_catsv |NN SV *dstr|NULLOK SV *sstr
-Apd |void |sv_chop |NN SV *const sv|NULLOK const char *const ptr
-: Used only in perl.c
-pd |I32 |sv_clean_all
-: Used only in perl.c
-pd |void |sv_clean_objs
-Apd |void |sv_clear |NN SV *const orig_sv
-#if defined(PERL_IN_SV_C)
-s |bool |curse |NN SV * const sv|const bool check_refcnt
-#endif
-Aopd |I32 |sv_cmp |NULLOK SV *const sv1|NULLOK SV *const sv2
-Apd |I32 |sv_cmp_flags |NULLOK SV *const sv1|NULLOK SV *const sv2 \
- |const U32 flags
-Aopd |I32 |sv_cmp_locale |NULLOK SV *const sv1|NULLOK SV *const sv2
-Apd |I32 |sv_cmp_locale_flags |NULLOK SV *const sv1 \
- |NULLOK SV *const sv2|const U32 flags
-#if defined(USE_LOCALE_COLLATE)
-Amd |char* |sv_collxfrm |NN SV *const sv|NN STRLEN *const nxp
-Apd |char* |sv_collxfrm_flags |NN SV *const sv|NN STRLEN *const nxp|I32 const flags
-#endif
-Apd |int |getcwd_sv |NN SV* sv
-Apd |void |sv_dec |NULLOK SV *const sv
-Apd |void |sv_dec_nomg |NULLOK SV *const sv
-Ap |void |sv_dump |NN SV* sv
-ApdR |bool |sv_derived_from|NN SV* sv|NN const char *const name
-ApdR |bool |sv_derived_from_sv|NN SV* sv|NN SV *namesv|U32 flags
-ApdR |bool |sv_derived_from_pv|NN SV* sv|NN const char *const name|U32 flags
-ApdR |bool |sv_derived_from_pvn|NN SV* sv|NN const char *const name \
- |const STRLEN len|U32 flags
-ApdR |bool |sv_does |NN SV* sv|NN const char *const name
-ApdR |bool |sv_does_sv |NN SV* sv|NN SV* namesv|U32 flags
-ApdR |bool |sv_does_pv |NN SV* sv|NN const char *const name|U32 flags
-ApdR |bool |sv_does_pvn |NN SV* sv|NN const char *const name|const STRLEN len \
- |U32 flags
-Amd |I32 |sv_eq |NULLOK SV* sv1|NULLOK SV* sv2
-Apd |I32 |sv_eq_flags |NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
-Apd |void |sv_free |NULLOK SV *const sv
-poMX |void |sv_free2 |NN SV *const sv|const U32 refcnt
-: Used only in perl.c
-pd |void |sv_free_arenas
-Apd |char* |sv_gets |NN SV *const sv|NN PerlIO *const fp|I32 append
-Apd |char* |sv_grow |NN SV *const sv|STRLEN newlen
-Apd |void |sv_inc |NULLOK SV *const sv
-Apd |void |sv_inc_nomg |NULLOK SV *const sv
-Amdb |void |sv_insert |NN SV *const bigstr|const STRLEN offset \
- |const STRLEN len|NN const char *const little \
- |const STRLEN littlelen
-Apd |void |sv_insert_flags|NN SV *const bigstr|const STRLEN offset|const STRLEN len \
- |NN const char *const little|const STRLEN littlelen|const U32 flags
-Apd |int |sv_isa |NULLOK SV* sv|NN const char *const name
-Apd |int |sv_isobject |NULLOK SV* sv
-Apd |STRLEN |sv_len |NULLOK SV *const sv
-Apd |STRLEN |sv_len_utf8 |NULLOK SV *const sv
-p |STRLEN |sv_len_utf8_nomg|NN SV *const sv
-Apd |void |sv_magic |NN SV *const sv|NULLOK SV *const obj|const int how \
- |NULLOK const char *const name|const I32 namlen
-Apd |MAGIC *|sv_magicext |NN SV *const sv|NULLOK SV *const obj|const int how \
- |NULLOK const MGVTBL *const vtbl|NULLOK const char *const name \
- |const I32 namlen
-Ein |bool |sv_only_taint_gmagic|NN SV *sv
-: exported for re.pm
-EXp |MAGIC *|sv_magicext_mglob|NN SV *sv
-ApdbamR |SV* |sv_mortalcopy |NULLOK SV *const oldsv
-XpaR |SV* |sv_mortalcopy_flags|NULLOK SV *const oldsv|U32 flags
-ApdR |SV* |sv_newmortal
-Apd |SV* |sv_newref |NULLOK SV *const sv
-Ap |char* |sv_peek |NULLOK SV* sv
-Apd |void |sv_pos_u2b |NULLOK SV *const sv|NN I32 *const offsetp|NULLOK I32 *const lenp
-Apd |STRLEN |sv_pos_u2b_flags|NN SV *const sv|STRLEN uoffset \
- |NULLOK STRLEN *const lenp|U32 flags
-Apd |void |sv_pos_b2u |NULLOK SV *const sv|NN I32 *const offsetp
-Apd |STRLEN |sv_pos_b2u_flags|NN SV *const sv|STRLEN const offset \
- |U32 flags
-Amdb |char* |sv_pvn_force |NN SV* sv|NULLOK STRLEN* lp
-Apd |char* |sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp
-Apd |char* |sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp
-Apd |char* |sv_recode_to_utf8 |NN SV* sv|NN SV *encoding
-Apd |bool |sv_cat_decode |NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \
- |NN char* tstr|int tlen
-ApdR |const char* |sv_reftype |NN const SV *const sv|const int ob
-pd |SV* |sv_ref |NULLOK SV *dst|NN const SV *const sv|const int ob
-Apd |void |sv_replace |NN SV *const sv|NN SV *const nsv
-Apd |void |sv_report_used
-Apd |void |sv_reset |NN const char* s|NULLOK HV *const stash
-p |void |sv_resetpvn |NULLOK const char* s|STRLEN len \
- |NULLOK HV *const stash
-Afpd |void |sv_setpvf |NN SV *const sv|NN const char *const pat|...
-Apd |void |sv_vsetpvf |NN SV *const sv|NN const char *const pat|NULLOK va_list *const args
-Apd |void |sv_setiv |NN SV *const sv|const IV num
-Apdb |void |sv_setpviv |NN SV *const sv|const IV num
-Apd |void |sv_setuv |NN SV *const sv|const UV num
-Apd |void |sv_setnv |NN SV *const sv|const NV num
-Apd |SV* |sv_setref_iv |NN SV *const rv|NULLOK const char *const classname|const IV iv
-Apd |SV* |sv_setref_uv |NN SV *const rv|NULLOK const char *const classname|const UV uv
-Apd |SV* |sv_setref_nv |NN SV *const rv|NULLOK const char *const classname|const NV nv
-Apd |SV* |sv_setref_pv |NN SV *const rv|NULLOK const char *const classname \
- |NULLOK void *const pv
-Apd |SV* |sv_setref_pvn |NN SV *const rv|NULLOK const char *const classname \
- |NN const char *const pv|const STRLEN n
-Apd |void |sv_setpv |NN SV *const sv|NULLOK const char *const ptr
-Apd |void |sv_setpvn |NN SV *const sv|NULLOK const char *const ptr|const STRLEN len
-Xp |void |sv_sethek |NN SV *const sv|NULLOK const HEK *const hek
-Amdb |void |sv_setsv |NN SV *dstr|NULLOK SV *sstr
-Amdb |void |sv_taint |NN SV* sv
-ApdR |bool |sv_tainted |NN SV *const sv
-Apd |int |sv_unmagic |NN SV *const sv|const int type
-Apd |int |sv_unmagicext |NN SV *const sv|const int type|NULLOK MGVTBL *vtbl
-Apdmb |void |sv_unref |NN SV* sv
-Apd |void |sv_unref_flags |NN SV *const ref|const U32 flags
-Apd |void |sv_untaint |NN SV *const sv
-Apd |void |sv_upgrade |NN SV *const sv|svtype new_type
-Apdmb |void |sv_usepvn |NN SV* sv|NULLOK char* ptr|STRLEN len
-Apd |void |sv_usepvn_flags|NN SV *const sv|NULLOK char* ptr|const STRLEN len\
- |const U32 flags
-Apd |void |sv_vcatpvfn |NN SV *const sv|NN const char *const pat|const STRLEN patlen \
- |NULLOK va_list *const args|NULLOK SV **const svargs|const I32 svmax \
- |NULLOK bool *const maybe_tainted
-Apd |void |sv_vcatpvfn_flags|NN SV *const sv|NN const char *const pat|const STRLEN patlen \
- |NULLOK va_list *const args|NULLOK SV **const svargs|const I32 svmax \
- |NULLOK bool *const maybe_tainted|const U32 flags
-Apd |void |sv_vsetpvfn |NN SV *const sv|NN const char *const pat|const STRLEN patlen \
- |NULLOK va_list *const args|NULLOK SV **const svargs \
- |const I32 svmax|NULLOK bool *const maybe_tainted
-ApR |NV |str_to_version |NN SV *sv
-ApR |SV* |swash_init |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
-Ap |UV |swash_fetch |NN SV *swash|NN const U8 *ptr|bool do_utf8
-#ifdef PERL_IN_REGCOMP_C
-EiMR |SV* |add_cp_to_invlist |NULLOK SV* invlist|const UV cp
-EsM |void |_append_range_to_invlist |NN SV* const invlist|const UV start|const UV end
-EiMRn |UV* |_invlist_array_init |NN SV* const invlist|const bool will_have_0
-EsM |void |invlist_extend |NN SV* const invlist|const UV len
-EiMRn |UV |invlist_max |NN SV* const invlist
-EiM |void |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
-#ifndef PERL_EXT_RE_BUILD
-EiMRn |IV* |get_invlist_previous_index_addr|NN SV* invlist
-EiMRn |bool |invlist_is_iterating|NN SV* const invlist
-EiMn |void |invlist_set_previous_index|NN SV* const invlist|const IV index
-EiMRn |IV |invlist_previous_index|NN SV* const invlist
-EiMn |void |invlist_trim |NN SV* const invlist
-#endif
-EiMR |SV* |invlist_clone |NN SV* const invlist
-EiMRn |STRLEN*|get_invlist_iter_addr |NN SV* invlist
-EiMn |void |invlist_iterinit|NN SV* invlist
-EsMRn |bool |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
-EiMn |void |invlist_iterfinish|NN SV* invlist
-EiMRn |UV |invlist_highest|NN SV* const invlist
-EMRs |SV* |_make_exactf_invlist |NN RExC_state_t *pRExC_state \
- |NN regnode *node
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
-EXmM |void |_invlist_intersection |NN SV* const a|NN SV* const b|NN SV** i
-EXpM |void |_invlist_intersection_maybe_complement_2nd \
- |NULLOK SV* const a|NN SV* const b \
- |const bool complement_b|NN SV** i
-EXmM |void |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output
-EXpM |void |_invlist_union_maybe_complement_2nd \
- |NULLOK SV* const a|NN SV* const b \
- |const bool complement_b|NN SV** output
-EXmM |void |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
-EXpM |void |_invlist_invert|NN SV* const invlist
-EXMpR |SV* |_new_invlist |IV initial_size
-EXMpR |SV* |_swash_to_invlist |NN SV* const swash
-EXMpR |SV* |_add_range_to_invlist |NULLOK SV* invlist|const UV start|const UV end
-EXMpR |SV* |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
-EXMpn |void |_invlist_populate_swatch |NN SV* const invlist|const UV start|const UV end|NN U8* swatch
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
-EXp |SV* |_core_swash_init|NN const char* pkg|NN const char* name \
- |NN SV* listsv|I32 minbits|I32 none \
- |NULLOK SV* invlist|NULLOK U8* const flags_p
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
-EiMRn |UV* |invlist_array |NN SV* const invlist
-EXMpR |SV* |_invlist_contents|NN SV* const invlist
-EiMRn |bool* |get_invlist_offset_addr|NN SV* invlist
-EiMRn |UV |_invlist_len |NN SV* const invlist
-EMiRn |bool |_invlist_contains_cp|NN SV* const invlist|const UV cp
-EXpMRn |IV |_invlist_search |NN SV* const invlist|const UV cp
-EXMpR |SV* |_get_swash_invlist|NN SV* const swash
-EXMpR |HV* |_swash_inversion_hash |NN SV* const swash
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-ApM |SV* |_get_regclass_nonbitmap_data \
- |NULLOK const regexp *prog \
- |NN const struct regnode *node \
- |bool doinit \
- |NULLOK SV **listsvp \
- |NULLOK SV **lonly_utf8_locale \
- |NULLOK SV *exclude_list
-EXp |void|_load_PL_utf8_foldclosures|
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
-EXMp |void |_invlist_dump |NN PerlIO *file|I32 level \
- |NN const char* const indent \
- |NN SV* const invlist
-#endif
-Ap |void |taint_env
-Ap |void |taint_proper |NULLOK const char* f|NN const char *const s
-Apd |UV |to_utf8_case |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp \
- |NN SV **swashp|NN const char *normal|NULLOK const char *special
-Abmd |UV |to_utf8_lower |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-AMp |UV |_to_utf8_lower_flags |NN const U8 *p|NN U8* ustrp \
- |NULLOK STRLEN *lenp|bool flags
-Abmd |UV |to_utf8_upper |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-AMp |UV |_to_utf8_upper_flags |NN const U8 *p|NN U8* ustrp \
- |NULLOK STRLEN *lenp|bool flags
-Abmd |UV |to_utf8_title |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-AMp |UV |_to_utf8_title_flags |NN const U8 *p|NN U8* ustrp \
- |NULLOK STRLEN *lenp|bool flags
-Abmd |UV |to_utf8_fold |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-AMp |UV |_to_utf8_fold_flags|NN const U8 *p|NN U8* ustrp \
- |NULLOK STRLEN *lenp|U8 flags
-#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
-pn |bool |translate_substr_offsets|STRLEN curlen|IV pos1_iv \
- |bool pos1_is_uv|IV len_iv \
- |bool len_is_uv|NN STRLEN *posp \
- |NN STRLEN *lenp
-#endif
-#if defined(UNLINK_ALL_VERSIONS)
-Ap |I32 |unlnk |NN const char* f
-#endif
-Apd |I32 |unpack_str |NN const char *pat|NN const char *patend|NN const char *s \
- |NULLOK const char *strbeg|NN const char *strend|NULLOK char **new_s \
- |I32 ocnt|U32 flags
-Apd |I32 |unpackstring |NN const char *pat|NN const char *patend|NN const char *s \
- |NN const char *strend|U32 flags
-Ap |void |unsharepvn |NULLOK const char* sv|I32 len|U32 hash
-: Used in gv.c, hv.c
-p |void |unshare_hek |NULLOK HEK* hek
-: Used in perly.y
-p |void |utilize |int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* arg
-Ap |U8* |utf16_to_utf8 |NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
-Ap |U8* |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
-AdpPR |STRLEN |utf8_length |NN const U8* s|NN const U8 *e
-ApdPR |IV |utf8_distance |NN const U8 *a|NN const U8 *b
-ApdPRn |U8* |utf8_hop |NN const U8 *s|I32 off
-ApMd |U8* |utf8_to_bytes |NN U8 *s|NN STRLEN *len
-Apd |int |bytes_cmp_utf8 |NN const U8 *b|STRLEN blen|NN const U8 *u \
- |STRLEN ulen
-ApMd |U8* |bytes_from_utf8|NN const U8 *s|NN STRLEN *len|NULLOK bool *is_utf8
-ApMd |U8* |bytes_to_utf8 |NN const U8 *s|NN STRLEN *len
-ApdD |UV |utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen
-ApdD |UV |utf8_to_uvuni |NN const U8 *s|NULLOK STRLEN *retlen
-ApMD |UV |valid_utf8_to_uvuni |NN const U8 *s|NULLOK STRLEN *retlen
-Amd |UV |utf8_to_uvchr_buf |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
-ApdD |UV |utf8_to_uvuni_buf |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
-pM |bool |check_utf8_print |NN const U8 *s|const STRLEN len
-
-Adp |UV |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
-ApM |UV |valid_utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen
-
-Ap |UV |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
-
-Adm |U8* |uvchr_to_utf8 |NN U8 *d|UV uv
-Ap |U8* |uvuni_to_utf8 |NN U8 *d|UV uv
-Adm |U8* |uvchr_to_utf8_flags |NN U8 *d|UV uv|UV flags
-Apd |U8* |uvoffuni_to_utf8_flags |NN U8 *d|UV uv|UV flags
-Ap |U8* |uvuni_to_utf8_flags |NN U8 *d|UV uv|UV flags
-Apd |char* |pv_uni_display |NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags
-ApdR |char* |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
-: Used by Data::Alias
-EXp |void |vivify_defelem |NN SV* sv
-: Used in pp.c
-pR |SV* |vivify_ref |NN SV* sv|U32 to_what
-: Used in pp_sys.c
-p |I32 |wait4pid |Pid_t pid|NN int* statusp|int flags
-: Used in locale.c and perl.c
-p |U32 |parse_unicode_opts|NN const char **popt
-Ap |U32 |seed
-Xpno |double |drand48_r |NN perl_drand48_t *random_state
-Xpno |void |drand48_init_r |NN perl_drand48_t *random_state|U32 seed
-: Only used in perl.c
-p |void |get_hash_seed |NN unsigned char * const seed_buffer
-: Used in doio.c, pp_hot.c, pp_sys.c
-p |void |report_evil_fh |NULLOK const GV *gv
-: Used in doio.c, pp_hot.c, pp_sys.c
-p |void |report_wrongway_fh|NULLOK const GV *gv|const char have
-: Used in mg.c, pp.c, pp_hot.c, regcomp.c
-XEpd |void |report_uninit |NULLOK const SV *uninit_sv
-#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
-p |void |report_redefined_cv|NN const SV *name \
- |NN const CV *old_cv \
- |NULLOK SV * const *new_const_svp
-#endif
-Apd |void |warn_sv |NN SV *baseex
-Afpd |void |warn |NN const char* pat|...
-Apd |void |vwarn |NN const char* pat|NULLOK va_list* args
-Afp |void |warner |U32 err|NN const char* pat|...
-Afp |void |ck_warner |U32 err|NN const char* pat|...
-Afp |void |ck_warner_d |U32 err|NN const char* pat|...
-Ap |void |vwarner |U32 err|NN const char* pat|NULLOK va_list* args
-#ifdef USE_C_BACKTRACE
-pd |Perl_c_backtrace*|get_c_backtrace|int max_depth|int skip
-dm |void |free_c_backtrace|NN Perl_c_backtrace* bt
-Apd |SV* |get_c_backtrace_dump|int max_depth|int skip
-Apd |bool |dump_c_backtrace|NN PerlIO* fp|int max_depth|int skip
-#endif
-: FIXME
-p |void |watch |NN char** addr
-Am |I32 |whichsig |NN const char* sig
-Ap |I32 |whichsig_sv |NN SV* sigsv
-Ap |I32 |whichsig_pv |NN const char* sig
-Ap |I32 |whichsig_pvn |NN const char* sig|STRLEN len
-: used to check for NULs in pathnames and other names
-AiR |bool |is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name
-#ifdef PERL_CORE
-inR |bool |should_warn_nl|NN const char *pv
-#endif
-: Used in pp_ctl.c
-p |void |write_to_stderr|NN SV* msv
-: Used in op.c
-p |int |yyerror |NN const char *const s
-p |int |yyerror_pv |NN const char *const s|U32 flags
-p |int |yyerror_pvn |NN const char *const s|STRLEN len|U32 flags
-: Used in perly.y, and by Data::Alias
-EXp |int |yylex
-p |void |yyunlex
-: Used in perl.c, pp_ctl.c
-p |int |yyparse |int gramtype
-: Only used in scope.c
-p |void |parser_free |NN const yy_parser *parser
-#ifdef PERL_CORE
-p |void |parser_free_nexttoke_ops|NN yy_parser *parser \
- |NN OPSLAB *slab
-#endif
-#if defined(PERL_IN_TOKE_C)
-s |int |yywarn |NN const char *const s|U32 flags
-#endif
-#if defined(MYMALLOC)
-Ap |void |dump_mstats |NN const char* s
-Ap |int |get_mstats |NN perl_mstats_t *buf|int buflen|int level
-#endif
-Anpa |Malloc_t|safesysmalloc |MEM_SIZE nbytes
-Anpa |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
-Anpa |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
-Anp |Free_t |safesysfree |Malloc_t where
-Asrnx |void |croak_memory_wrap
-#if defined(PERL_GLOBAL_STRUCT)
-Ap |struct perl_vars *|GetVars
-Ap |struct perl_vars*|init_global_struct
-Ap |void |free_global_struct|NN struct perl_vars *plvarsp
-#endif
-Ap |int |runops_standard
-Ap |int |runops_debug
-Afpd |void |sv_catpvf_mg |NN SV *const sv|NN const char *const pat|...
-Apd |void |sv_vcatpvf_mg |NN SV *const sv|NN const char *const pat \
- |NULLOK va_list *const args
-Apd |void |sv_catpv_mg |NN SV *const sv|NULLOK const char *const ptr
-Apdbm |void |sv_catpvn_mg |NN SV *sv|NN const char *ptr|STRLEN len
-Apdbm |void |sv_catsv_mg |NN SV *dsv|NULLOK SV *ssv
-Afpd |void |sv_setpvf_mg |NN SV *const sv|NN const char *const pat|...
-Apd |void |sv_vsetpvf_mg |NN SV *const sv|NN const char *const pat \
- |NULLOK va_list *const args
-Apd |void |sv_setiv_mg |NN SV *const sv|const IV i
-Apdb |void |sv_setpviv_mg |NN SV *const sv|const IV iv
-Apd |void |sv_setuv_mg |NN SV *const sv|const UV u
-Apd |void |sv_setnv_mg |NN SV *const sv|const NV num
-Apd |void |sv_setpv_mg |NN SV *const sv|NULLOK const char *const ptr
-Apd |void |sv_setpvn_mg |NN SV *const sv|NN const char *const ptr|const STRLEN len
-Apd |void |sv_setsv_mg |NN SV *const dstr|NULLOK SV *const sstr
-Apdbm |void |sv_usepvn_mg |NN SV *sv|NULLOK char *ptr|STRLEN len
-ApR |MGVTBL*|get_vtbl |int vtbl_id
-Apd |char* |pv_display |NN SV *dsv|NN const char *pv|STRLEN cur|STRLEN len \
- |STRLEN pvlim
-Apd |char* |pv_escape |NULLOK SV *dsv|NN char const * const str\
- |const STRLEN count|const STRLEN max\
- |NULLOK STRLEN * const escaped\
- |const U32 flags
-Apd |char* |pv_pretty |NN SV *dsv|NN char const * const str\
- |const STRLEN count|const STRLEN max\
- |NULLOK char const * const start_color\
- |NULLOK char const * const end_color\
- |const U32 flags
-Afp |void |dump_indent |I32 level|NN PerlIO *file|NN const char* pat|...
-Ap |void |dump_vindent |I32 level|NN PerlIO *file|NN const char* pat \
- |NULLOK va_list *args
-Ap |void |do_gv_dump |I32 level|NN PerlIO *file|NN const char *name\
- |NULLOK GV *sv
-Ap |void |do_gvgv_dump |I32 level|NN PerlIO *file|NN const char *name\
- |NULLOK GV *sv
-Ap |void |do_hv_dump |I32 level|NN PerlIO *file|NN const char *name\
- |NULLOK HV *sv
-Ap |void |do_magic_dump |I32 level|NN PerlIO *file|NULLOK const MAGIC *mg|I32 nest \
- |I32 maxnest|bool dumpops|STRLEN pvlim
-Ap |void |do_op_dump |I32 level|NN PerlIO *file|NULLOK const OP *o
-Ap |void |do_pmop_dump |I32 level|NN PerlIO *file|NULLOK const PMOP *pm
-Ap |void |do_sv_dump |I32 level|NN PerlIO *file|NULLOK SV *sv|I32 nest \
- |I32 maxnest|bool dumpops|STRLEN pvlim
-Ap |void |magic_dump |NULLOK const MAGIC *mg
-Ap |void |reginitcolors
-ApdRmb |char* |sv_2pv_nolen |NN SV* sv
-ApdRmb |char* |sv_2pvutf8_nolen|NN SV* sv
-ApdRmb |char* |sv_2pvbyte_nolen|NN SV* sv
-AmdbR |char* |sv_pv |NN SV *sv
-AmdbR |char* |sv_pvutf8 |NN SV *sv
-AmdbR |char* |sv_pvbyte |NN SV *sv
-Amdb |STRLEN |sv_utf8_upgrade|NN SV *sv
-Amd |STRLEN |sv_utf8_upgrade_nomg|NN SV *sv
-ApdM |bool |sv_utf8_downgrade|NN SV *const sv|const bool fail_ok
-Apd |void |sv_utf8_encode |NN SV *const sv
-ApdM |bool |sv_utf8_decode |NN SV *const sv
-Apdmb |void |sv_force_normal|NN SV *sv
-Apd |void |sv_force_normal_flags|NN SV *const sv|const U32 flags
-pX |SSize_t|tmps_grow_p |SSize_t ix
-Apd |SV* |sv_rvweaken |NN SV *const sv
-AnpPMd |SV* |sv_get_backrefs|NN SV *const sv
-: This is indirectly referenced by globals.c. This is somewhat annoying.
-p |int |magic_killbackrefs|NN SV *sv|NN MAGIC *mg
-Ap |OP* |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
-Am |CV* |newATTRSUB |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
-pX |CV* |newATTRSUB_x |I32 floor|NULLOK OP *o|NULLOK OP *proto \
- |NULLOK OP *attrs|NULLOK OP *block \
- |bool o_is_gv
-Ap |CV * |newMYSUB |I32 floor|NN OP *o|NULLOK OP *proto \
- |NULLOK OP *attrs|NULLOK OP *block
-p |CV* |newSTUB |NN GV *gv|bool fake
-: Used in perly.y
-p |OP * |my_attrs |NN OP *o|NULLOK OP *attrs
-#if defined(USE_ITHREADS)
-ApR |PERL_CONTEXT*|cx_dup |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param
-ApR |PERL_SI*|si_dup |NULLOK PERL_SI* si|NN CLONE_PARAMS* param
-Apa |ANY* |ss_dup |NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param
-ApR |void* |any_dup |NULLOK void* v|NN const PerlInterpreter* proto_perl
-ApR |HE* |he_dup |NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param
-ApR |HEK* |hek_dup |NULLOK HEK* e|NN CLONE_PARAMS* param
-Ap |void |re_dup_guts |NN const REGEXP *sstr|NN REGEXP *dstr \
- |NN CLONE_PARAMS* param
-Ap |PerlIO*|fp_dup |NULLOK PerlIO *const fp|const char type|NN CLONE_PARAMS *const param
-ApR |DIR* |dirp_dup |NULLOK DIR *const dp|NN CLONE_PARAMS *const param
-ApR |GP* |gp_dup |NULLOK GP *const gp|NN CLONE_PARAMS *const param
-ApR |MAGIC* |mg_dup |NULLOK MAGIC *mg|NN CLONE_PARAMS *const param
-#if defined(PERL_IN_SV_C)
-s |SV ** |sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \
- |SSize_t items|NN CLONE_PARAMS *const param
-sR |SV* |sv_dup_common |NN const SV *const sstr \
- |NN CLONE_PARAMS *const param
-#endif
-ApR |SV* |sv_dup |NULLOK const SV *const sstr|NN CLONE_PARAMS *const param
-ApR |SV* |sv_dup_inc |NULLOK const SV *const sstr \
- |NN CLONE_PARAMS *const param
-Ap |void |rvpv_dup |NN SV *const dstr|NN const SV *const sstr|NN CLONE_PARAMS *const param
-Ap |yy_parser*|parser_dup |NULLOK const yy_parser *const proto|NN CLONE_PARAMS *const param
-#endif
-Apa |PTR_TBL_t*|ptr_table_new
-ApR |void* |ptr_table_fetch|NN PTR_TBL_t *const tbl|NULLOK const void *const sv
-Ap |void |ptr_table_store|NN PTR_TBL_t *const tbl|NULLOK const void *const oldsv \
- |NN void *const newsv
-Ap |void |ptr_table_split|NN PTR_TBL_t *const tbl
-ApD |void |ptr_table_clear|NULLOK PTR_TBL_t *const tbl
-Ap |void |ptr_table_free|NULLOK PTR_TBL_t *const tbl
-#if defined(HAVE_INTERP_INTERN)
-Ap |void |sys_intern_clear
-Ap |void |sys_intern_init
-# if defined(USE_ITHREADS)
-Ap |void |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern* dst
-# endif
-#endif
-
-AmopP |const XOP * |custom_op_xop |NN const OP *o
-ApR |const char * |custom_op_name |NN const OP *o
-ApR |const char * |custom_op_desc |NN const OP *o
-pRX |XOPRETANY |custom_op_get_field |NN const OP *o|const xop_flags_enum field
-Aop |void |custom_op_register |NN Perl_ppaddr_t ppaddr \
- |NN const XOP *xop
-
-Adp |void |sv_nosharing |NULLOK SV *sv
-Adpbm |void |sv_nolocking |NULLOK SV *sv
-Adp |bool |sv_destroyable |NULLOK SV *sv
-#ifdef NO_MATHOMS
-Adpbm |void |sv_nounlocking |NULLOK SV *sv
-#else
-Adpb |void |sv_nounlocking |NULLOK SV *sv
-#endif
-Adp |int |nothreadhook
-p |void |init_constants
-
-#if defined(PERL_IN_DOOP_C)
-sR |I32 |do_trans_simple |NN SV * const sv
-sR |I32 |do_trans_count |NN SV * const sv
-sR |I32 |do_trans_complex |NN SV * const sv
-sR |I32 |do_trans_simple_utf8 |NN SV * const sv
-sR |I32 |do_trans_count_utf8 |NN SV * const sv
-sR |I32 |do_trans_complex_utf8 |NN SV * const sv
-#endif
-
-#if defined(PERL_IN_GV_C)
-s |void |gv_init_svtype |NN GV *gv|const svtype sv_type
-s |void |gv_magicalize_isa |NN GV *gv
-s |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \
- |NN const char **name|NN STRLEN *len \
- |NN const char *nambeg|STRLEN full_len \
- |const U32 is_utf8|const I32 add
-s |bool|find_default_stash|NN HV **stash|NN const char *name \
- |STRLEN len|const U32 is_utf8|const I32 add \
- |const svtype sv_type
-s |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \
- |STRLEN len|bool addmg \
- |const svtype sv_type
-s |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type
-s |bool|gv_is_in_main|NN const char *name|STRLEN len \
- |const U32 is_utf8
-s |HV* |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \
- |NN const char *methpv|const U32 flags
-#endif
-
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
-po |SV* |hfree_next_entry |NN HV *hv|NN STRLEN *indexp
-#endif
-
-#if defined(PERL_IN_HV_C)
-s |void |hsplit |NN HV *hv|STRLEN const oldsize|STRLEN newsize
-s |void |hfreeentries |NN HV *hv
-s |SV* |hv_free_ent_ret|NN HV *hv|NN HE *entry
-sa |HE* |new_he
-sanR |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
-sn |void |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
-s |void |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
-sR |HEK* |share_hek_flags|NN const char *str|I32 len|U32 hash|int flags
-rs |void |hv_notallowed |int flags|NN const char *key|I32 klen|NN const char *msg
-in |U32|ptr_hash|PTRV u
-s |struct xpvhv_aux*|hv_auxinit|NN HV *hv
-sn |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter
-sM |SV* |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
- |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
- |U32 hash
-sM |void |clear_placeholders |NN HV *hv|U32 items
-#endif
-
-#if defined(PERL_IN_MG_C)
-s |void |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags
--s |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth
-s |SV* |magic_methcall1|NN SV *sv|NN const MAGIC *mg \
- |NN SV *meth|U32 flags \
- |int n|NULLOK SV *val
-s |void |restore_magic |NULLOK const void *p
-s |void |unwind_handler_stack|NULLOK const void *p
-s |void |fixup_errno_string|NN SV* sv
-
-#endif
-
-#if defined(PERL_IN_OP_C)
-sRn |bool |is_handle_constructor|NN const OP *o|I32 numargs
-sR |I32 |assignment_type|NULLOK const OP *o
-s |void |forget_pmop |NN PMOP *const o
-s |void |find_and_forget_pmops |NN OP *o
-s |void |cop_free |NN COP *cop
-s |OP* |modkids |NULLOK OP *o|I32 type
-s |OP* |scalarboolean |NN OP *o
-sR |OP* |search_const |NN OP *o
-sR |OP* |new_logop |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
-s |void |simplify_sort |NN OP *o
-sRn |bool |scalar_mod_type|NULLOK const OP *o|I32 type
-s |OP * |my_kid |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
-s |OP * |dup_attrlist |NN OP *o
-s |void |apply_attrs |NN HV *stash|NN SV *target|NULLOK OP *attrs
-s |void |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
-s |void |bad_type_pv |I32 n|NN const char *t|NN const OP *o|NN const OP *kid
-s |void |bad_type_gv |I32 n|NN GV *gv|NN const OP *kid|NN const char *t
-s |void |no_bareword_allowed|NN OP *o
-sR |OP* |no_fh_allowed|NN OP *o
-sR |OP* |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
-s |OP* |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
-s |bool |looks_like_bool|NN const OP* o
-s |OP* |newGIVWHENOP |NULLOK OP* cond|NN OP *block \
- |I32 enter_opcode|I32 leave_opcode \
- |PADOFFSET entertarg
-s |OP* |ref_array_or_hash|NULLOK OP* cond
-s |bool |process_special_blocks |I32 floor \
- |NN const char *const fullname\
- |NN GV *const gv|NN CV *const cv
-s |void |clear_special_blocks |NN const char *const fullname\
- |NN GV *const gv|NN CV *const cv
-#endif
-Xpa |void* |Slab_Alloc |size_t sz
-Xp |void |Slab_Free |NN void *op
-#if defined(PERL_DEBUG_READONLY_OPS)
-# if defined(PERL_CORE)
-px |void |Slab_to_ro |NN OPSLAB *slab
-px |void |Slab_to_rw |NN OPSLAB *const slab
-# endif
-: Used in OpREFCNT_inc() in sv.c
-poxM |OP * |op_refcnt_inc |NULLOK OP *o
-: FIXME - can be static.
-poxM |PADOFFSET |op_refcnt_dec |NN OP *o
-#endif
-
-#if defined(PERL_IN_PERL_C)
-s |void |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp
-s |void |forbid_setid |const char flag|const bool suidscript
-s |void |incpush |NN const char *const dir|STRLEN len \
- |U32 flags
-s |SV* |mayberelocate |NN const char *const dir|STRLEN len \
- |U32 flags
-s |void |incpush_use_sep|NN const char *p|STRLEN len|U32 flags
-s |void |init_interp
-s |void |init_ids
-s |void |init_main_stash
-s |void |init_perllib
-s |void |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
-s |void |init_predump_symbols
-rs |void |my_exit_jump
-s |void |nuke_stacks
-s |PerlIO *|open_script |NN const char *scriptname|bool dosearch \
- |NN bool *suidscript
-sr |void |usage
-#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
-so |void |validate_suid |NN PerlIO *rsfp
-#endif
-sr |void |minus_v
-
-s |void* |parse_body |NULLOK char **env|XSINIT_t xsinit
-rs |void |run_body |I32 oldscope
-# ifndef PERL_IS_MINIPERL
-s |SV * |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
-# endif
-#endif
-
-#if defined(PERL_IN_PP_C)
-s |size_t |do_chomp |NN SV *retval|NN SV *sv|bool chomping
-s |OP* |do_delete_local
-sR |SV* |refto |NN SV* sv
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
-: Used in pp_hot.c
-pRxo |GV* |softref2xv |NN SV *const sv|NN const char *const what \
- |const svtype type|NN SV ***spp
-#endif
-
-#if defined(PERL_IN_PP_PACK_C)
-s |I32 |unpack_rec |NN struct tempsym* symptr|NN const char *s \
- |NN const char *strbeg|NN const char *strend|NULLOK const char **new_s
-s |SV ** |pack_rec |NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist
-s |SV* |mul128 |NN SV *sv|U8 m
-s |I32 |measure_struct |NN struct tempsym* symptr
-s |bool |next_symbol |NN struct tempsym* symptr
-sR |SV* |is_an_int |NN const char *s|STRLEN l
-s |int |div128 |NN SV *pnum|NN bool *done
-s |const char *|group_end |NN const char *patptr|NN const char *patend \
- |char ender
-sR |const char *|get_num |NN const char *patptr|NN I32 *lenptr
-ns |bool |need_utf8 |NN const char *pat|NN const char *patend
-ns |char |first_symbol |NN const char *pat|NN const char *patend
-sR |char * |sv_exp_grow |NN SV *sv|STRLEN needed
-snR |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
- |const bool needs_swap
-#endif
-
-#if defined(PERL_IN_PP_CTL_C)
-sR |OP* |docatch |NULLOK OP *o
-sR |OP* |dofindlabel |NN OP *o|NN const char *label|STRLEN len \
- |U32 flags|NN OP **opstack|NN OP **oplimit
-s |MAGIC *|doparseform |NN SV *sv
-snR |bool |num_overflow |NV value|I32 fldsize|I32 frcsize
-sR |I32 |dopoptoeval |I32 startingblock
-sR |I32 |dopoptogiven |I32 startingblock
-sR |I32 |dopoptolabel |NN const char *label|STRLEN len|U32 flags
-sR |I32 |dopoptoloop |I32 startingblock
-sR |I32 |dopoptosub_at |NN const PERL_CONTEXT* cxstk|I32 startingblock
-sR |I32 |dopoptowhen |I32 startingblock
-s |void |save_lines |NULLOK AV *array|NN SV *sv
-s |bool |doeval |int gimme \
- |NULLOK CV* outside|U32 seq|NULLOK HV* hh
-sR |PerlIO *|check_type_and_open|NN SV *name
-#ifndef PERL_DISABLE_PMC
-sR |PerlIO *|doopen_pm |NN SV *name
-#endif
-s |SV ** |leave_common |NN SV **newsp|NN SV **sp|NN SV **mark|I32 gimme \
- |U32 flags|bool lvalue
-iRn |bool |path_is_searchable|NN const char *name
-sR |I32 |run_user_filter|int idx|NN SV *buf_sv|int maxlen
-sR |PMOP* |make_matcher |NN REGEXP* re
-sR |bool |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
-s |void |destroy_matcher|NN PMOP* matcher
-s |OP* |do_smartmatch |NULLOK HV* seen_this \
- |NULLOK HV* seen_other|const bool copied
-#endif
-
-#if defined(PERL_IN_PP_HOT_C)
-s |void |do_oddball |NN SV **oddkey|NN SV **firstkey
-i |HV* |opmethod_stash |NN SV* meth
-#endif
-
-#if defined(PERL_IN_PP_SORT_C)
-s |I32 |sv_ncmp |NN SV *const a|NN SV *const b
-s |I32 |sv_i_ncmp |NN SV *const a|NN SV *const b
-s |I32 |amagic_ncmp |NN SV *const a|NN SV *const b
-s |I32 |amagic_i_ncmp |NN SV *const a|NN SV *const b
-s |I32 |amagic_cmp |NN SV *const str1|NN SV *const str2
-# ifdef USE_LOCALE_COLLATE
-s |I32 |amagic_cmp_locale|NN SV *const str1|NN SV *const str2
-#endif
-s |I32 |sortcv |NN SV *const a|NN SV *const b
-s |I32 |sortcv_xsub |NN SV *const a|NN SV *const b
-s |I32 |sortcv_stacked |NN SV *const a|NN SV *const b
-s |void |qsortsvu |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t compare
-#endif
-
-#if defined(PERL_IN_PP_SYS_C)
-s |OP* |doform |NN CV *cv|NN GV *gv|NULLOK OP *retop
-# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-sR |int |dooneliner |NN const char *cmd|NN const char *filename
-# endif
-s |SV * |space_join_names_mortal|NN char *const *array
-#endif
-p |OP * |tied_method|NN SV *methname|NN SV **sp \
- |NN SV *const sv|NN const MAGIC *const mg \
- |const U32 flags|U32 argc|...
-
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-Ep |void |regprop |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \
- |NULLOK const RExC_state_t *pRExC_state
-#endif
-#if defined(PERL_IN_REGCOMP_C)
-Es |regnode*|reg |NN RExC_state_t *pRExC_state \
- |I32 paren|NN I32 *flagp|U32 depth
-Es |regnode*|regnode_guts |NN RExC_state_t *pRExC_state \
- |const U8 op \
- |const STRLEN extra_len \
- |NN const char* const name
-Es |regnode*|reganode |NN RExC_state_t *pRExC_state|U8 op \
- |U32 arg
-Es |regnode*|reg2Lanode |NN RExC_state_t *pRExC_state \
- |const U8 op \
- |const U32 arg1 \
- |const I32 arg2
-Es |regnode*|regatom |NN RExC_state_t *pRExC_state \
- |NN I32 *flagp|U32 depth
-Es |regnode*|regbranch |NN RExC_state_t *pRExC_state \
- |NN I32 *flagp|I32 first|U32 depth
-Es |void |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
- |NN regnode* const node \
- |NULLOK SV* const cp_list \
- |NULLOK SV* const runtime_defns \
- |NULLOK SV* const only_utf8_locale_list \
- |NULLOK SV* const swash \
- |const bool has_user_defined_property
-Es |AV* |add_multi_match|NULLOK AV* multi_char_matches \
- |NN SV* multi_string \
- |const STRLEN cp_count
-Es |regnode*|regclass |NN RExC_state_t *pRExC_state \
- |NN I32 *flagp|U32 depth|const bool stop_at_1 \
- |bool allow_multi_fold \
- |const bool silence_non_portable \
- |const bool strict \
- |NULLOK SV** ret_invlist
-Es |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
- |NN SV** invlist
-Esn |bool|could_it_be_a_POSIX_class|NN RExC_state_t *pRExC_state
-Es |regnode*|handle_regex_sets|NN RExC_state_t *pRExC_state \
- |NULLOK SV ** return_invlist \
- |NN I32 *flagp|U32 depth \
- |NN char * const oregcomp_parse
-Es |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state
-Es |regnode*|reg_node |NN RExC_state_t *pRExC_state|U8 op
-Es |UV |reg_recode |const char value|NN SV **encp
-Es |regnode*|regpiece |NN RExC_state_t *pRExC_state \
- |NN I32 *flagp|U32 depth
-Es |STRLEN |grok_bslash_N |NN RExC_state_t *pRExC_state \
- |NULLOK regnode** nodep|NULLOK UV *valuep \
- |NN I32 *flagp|U32 depth \
- |NULLOK SV** substitute_parse
-Es |void |reginsert |NN RExC_state_t *pRExC_state \
- |U8 op|NN regnode *opnd|U32 depth
-Es |void |regtail |NN RExC_state_t *pRExC_state \
- |NN regnode *p|NN const regnode *val|U32 depth
-Es |SV * |reg_scan_name |NN RExC_state_t *pRExC_state \
- |U32 flags
-Es |U32 |join_exact |NN RExC_state_t *pRExC_state \
- |NN regnode *scan|NN UV *min_subtract \
- |NN bool *unfolded_multi_char \
- |U32 flags|NULLOK regnode *val|U32 depth
-EsRn |char * |regpatws |NN RExC_state_t *pRExC_state \
- |NN char *p|const bool recognize_comment
-Ei |void |alloc_maybe_populate_EXACT|NN RExC_state_t *pRExC_state \
- |NN regnode *node|NN I32 *flagp|STRLEN len \
- |UV code_point|bool downgradable
-Ein |U8 |compute_EXACTish|NN RExC_state_t *pRExC_state
-Es |char * |nextchar |NN RExC_state_t *pRExC_state
-Ein |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
-Es |void |scan_commit |NN const RExC_state_t *pRExC_state \
- |NN struct scan_data_t *data \
- |NN SSize_t *minlenp \
- |int is_inf
-Es |void |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
-Es |void |ssc_anything |NN regnode_ssc *ssc
-EsRn |int |ssc_is_anything|NN const regnode_ssc *ssc
-Es |void |ssc_init |NN const RExC_state_t *pRExC_state \
- |NN regnode_ssc *ssc
-EsRn |int |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
- |NN const regnode_ssc *ssc
-Es |void |ssc_and |NN const RExC_state_t *pRExC_state \
- |NN regnode_ssc *ssc \
- |NN const regnode_charclass *and_with
-Es |void |ssc_or |NN const RExC_state_t *pRExC_state \
- |NN regnode_ssc *ssc \
- |NN const regnode_charclass *or_with
-Es |SV* |get_ANYOF_cp_list_for_ssc \
- |NN const RExC_state_t *pRExC_state \
- |NN const regnode_charclass* const node
-Ei |void |ssc_intersection|NN regnode_ssc *ssc \
- |NN SV* const invlist|const bool invert_2nd
-Ei |void |ssc_union |NN regnode_ssc *ssc \
- |NN SV* const invlist|const bool invert_2nd
-Ei |void |ssc_add_range |NN regnode_ssc *ssc \
- |UV const start|UV const end
-Ei |void |ssc_cp_and |NN regnode_ssc *ssc \
- |UV const cp
-Ein |void |ssc_clear_locale|NN regnode_ssc *ssc
-Ens |bool |is_ssc_worth_it|NN const RExC_state_t * pRExC_state \
- |NN const regnode_ssc * ssc
-Es |void |ssc_finalize |NN RExC_state_t *pRExC_state \
- |NN regnode_ssc *ssc
-Es |SSize_t|study_chunk |NN RExC_state_t *pRExC_state \
- |NN regnode **scanp|NN SSize_t *minlenp \
- |NN SSize_t *deltap|NN regnode *last \
- |NULLOK struct scan_data_t *data \
- |I32 stopparen|U32 recursed_depth \
- |NULLOK regnode_ssc *and_withp \
- |U32 flags|U32 depth
-EsRn |U32 |add_data |NN RExC_state_t* const pRExC_state \
- |NN const char* const s|const U32 n
-rs |void |re_croak2 |bool utf8|NN const char* pat1|NN const char* pat2|...
-Ei |I32 |regpposixcc |NN RExC_state_t *pRExC_state \
- |I32 value|const bool strict
-Es |I32 |make_trie |NN RExC_state_t *pRExC_state \
- |NN regnode *startbranch|NN regnode *first \
- |NN regnode *last|NN regnode *tail \
- |U32 word_count|U32 flags|U32 depth
-Es |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
- |NN regnode *source|U32 depth
-EnPs |const char *|cntrl_to_mnemonic|const U8 c
-# ifdef DEBUGGING
-Es |void |regdump_intflags|NULLOK const char *lead| const U32 flags
-Es |void |regdump_extflags|NULLOK const char *lead| const U32 flags
-Es |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
- |NN const regnode *node \
- |NULLOK const regnode *last \
- |NULLOK const regnode *plast \
- |NN SV* sv|I32 indent|U32 depth
-Es |void |put_code_point |NN SV* sv|UV c
-Es |bool |put_charclass_bitmap_innards|NN SV* sv \
- |NN char* bitmap \
- |NULLOK SV** bitmap_invlist
-Es |void |put_range |NN SV* sv|UV start|const UV end \
- |const bool allow_literals
-Es |void |dump_trie |NN const struct _reg_trie_data *trie\
- |NULLOK HV* widecharmap|NN AV *revcharmap\
- |U32 depth
-Es |void |dump_trie_interim_list|NN const struct _reg_trie_data *trie\
- |NULLOK HV* widecharmap|NN AV *revcharmap\
- |U32 next_alloc|U32 depth
-Es |void |dump_trie_interim_table|NN const struct _reg_trie_data *trie\
- |NULLOK HV* widecharmap|NN AV *revcharmap\
- |U32 next_alloc|U32 depth
-Es |U8 |regtail_study |NN RExC_state_t *pRExC_state \
- |NN regnode *p|NN const regnode *val|U32 depth
-# endif
-#endif
-
-#if defined(PERL_IN_REGEXEC_C)
-ERs |bool |isFOO_lc |const U8 classnum|const U8 character
-ERs |bool |isFOO_utf8_lc |const U8 classnum|NN const U8* character
-ERs |SSize_t|regmatch |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
-ERs |I32 |regrepeat |NN regexp *prog|NN char **startposp \
- |NN const regnode *p \
- |NN regmatch_info *const reginfo \
- |I32 max \
- |int depth
-ERs |I32 |regtry |NN regmatch_info *reginfo|NN char **startposp
-ERs |bool |reginclass |NULLOK regexp * const prog \
- |NN const regnode * const n \
- |NN const U8 * const p \
- |NN const U8 * const p_end \
- |bool const utf8_target
-Es |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor\
- |U32 maxopenparen
-Es |void |regcppop |NN regexp *rex\
- |NN U32 *maxopenparen_p
-ERsn |U8* |reghop3 |NN U8 *s|SSize_t off|NN const U8 *lim
-ERsn |U8* |reghop4 |NN U8 *s|SSize_t off|NN const U8 *llim \
- |NN const U8 *rlim
-ERsn |U8* |reghopmaybe3 |NN U8 *s|SSize_t off|NN const U8 *lim
-ERs |char* |find_byclass |NN regexp * prog|NN const regnode *c \
- |NN char *s|NN const char *strend \
- |NULLOK regmatch_info *reginfo
-Es |void |to_utf8_substr |NN regexp * prog
-Es |bool |to_byte_substr |NN regexp * prog
-ERsn |I32 |reg_check_named_buff_matched |NN const regexp *rex \
- |NN const regnode *scan
-EsnR |bool |isGCB |const PL_GCB_enum before|const PL_GCB_enum after
-EsR |bool |isSB |PL_SB_enum before \
- |PL_SB_enum after \
- |NN const U8 * const strbeg \
- |NN const U8 * const curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-EsR |PL_SB_enum|advance_one_SB|NN U8 ** curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-EsR |PL_SB_enum|backup_one_SB|NN const U8 * const strbeg \
- |NN U8 ** curpos \
- |const bool utf8_target
-EsR |bool |isWB |PL_WB_enum previous \
- |PL_WB_enum before \
- |PL_WB_enum after \
- |NN const U8 * const strbeg \
- |NN const U8 * const curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-EsR |PL_WB_enum|advance_one_WB|NN U8 ** curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-EsR |PL_WB_enum|backup_one_WB|NN PL_WB_enum * previous \
- |NN const U8 * const strbeg \
- |NN U8 ** curpos \
- |const bool utf8_target
-# ifdef DEBUGGING
-Es |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
- |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8
-Es |void |debug_start_match|NN const REGEXP *prog|const bool do_utf8\
- |NN const char *start|NN const char *end\
- |NN const char *blurb
-# endif
-#endif
-
-#if defined(PERL_IN_DUMP_C)
-s |CV* |deb_curcv |const I32 ix
-s |void |debprof |NN const OP *o
-s |UV |sequence_num |NULLOK const OP *o
-s |SV* |pm_description |NN const PMOP *pm
-#endif
-
-#if defined(PERL_IN_SCOPE_C)
-s |SV* |save_scalar_at |NN SV **sptr|const U32 flags
-#endif
-
-#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
-: Used in gv.c
-po |void |sv_add_backref |NN SV *const tsv|NN SV *const sv
-#endif
-
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C)
-: Used in hv.c and mg.c
-poM |void |sv_kill_backrefs |NN SV *const sv|NULLOK AV *const av
-#endif
-
-#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
-pR |SV * |varname |NULLOK const GV *const gv|const char gvtype \
- |PADOFFSET targ|NULLOK const SV *const keyname \
- |I32 aindex|int subscript_type
-#endif
-
-pX |void |sv_del_backref |NN SV *const tsv|NN SV *const sv
-#if defined(PERL_IN_SV_C)
-nsR |char * |uiv_2buf |NN char *const buf|const IV iv|UV uv|const int is_uv|NN char **const peob
-i |void |sv_unglob |NN SV *const sv|U32 flags
-s |const char *|sv_display |NN SV *const sv|NN char *tmpbuf|STRLEN tmpbuf_size
-s |void |not_a_number |NN SV *const sv
-s |void |not_incrementable |NN SV *const sv
-s |I32 |visit |NN SVFUNC_t f|const U32 flags|const U32 mask
-# ifdef DEBUGGING
-s |void |del_sv |NN SV *p
-# endif
-# if !defined(NV_PRESERVES_UV)
-# ifdef DEBUGGING
-s |int |sv_2iuv_non_preserve |NN SV *const sv|I32 numtype
-# else
-s |int |sv_2iuv_non_preserve |NN SV *const sv
-# endif
-# endif
-sR |I32 |expect_number |NN char **const pattern
-sn |STRLEN |sv_pos_u2b_forwards|NN const U8 *const start \
- |NN const U8 *const send|NN STRLEN *const uoffset \
- |NN bool *const at_end
-sn |STRLEN |sv_pos_u2b_midway|NN const U8 *const start \
- |NN const U8 *send|STRLEN uoffset|const STRLEN uend
-s |STRLEN |sv_pos_u2b_cached|NN SV *const sv|NN MAGIC **const mgp \
- |NN const U8 *const start|NN const U8 *const send \
- |STRLEN uoffset|STRLEN uoffset0|STRLEN boffset0
-s |void |utf8_mg_len_cache_update|NN SV *const sv|NN MAGIC **const mgp \
- |const STRLEN ulen
-s |void |utf8_mg_pos_cache_update|NN SV *const sv|NN MAGIC **const mgp \
- |const STRLEN byte|const STRLEN utf8|const STRLEN blen
-s |STRLEN |sv_pos_b2u_midway|NN const U8 *const s|NN const U8 *const target \
- |NN const U8 *end|STRLEN endu
-s |void |assert_uft8_cache_coherent|NN const char *const func \
- |STRLEN from_cache|STRLEN real|NN SV *const sv
-sn |char * |F0convert |NV nv|NN char *const endbuf|NN STRLEN *const len
-# if defined(PERL_OLD_COPY_ON_WRITE)
-sM |void |sv_release_COW |NN SV *sv|NN const char *pvx|NN SV *after
-# endif
-s |SV * |more_sv
-s |bool |sv_2iuv_common |NN SV *const sv
-s |void |glob_assign_glob|NN SV *const dstr|NN SV *const sstr \
- |const int dtype
-sRn |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *const tbl|NULLOK const void *const sv
-s |void |anonymise_cv_maybe |NN GV *gv|NN CV *cv
-#endif
-
-: Used in sv.c and hv.c
-po |void * |more_bodies |const svtype sv_type|const size_t body_size \
- |const size_t arena_size
-
-#if defined(PERL_IN_TOKE_C)
-s |void |check_uni
-s |void |force_next |I32 type
-s |char* |force_version |NN char *s|int guessing
-s |char* |force_strict_version |NN char *s
-s |char* |force_word |NN char *start|int token|int check_keyword \
- |int allow_pack
-s |SV* |tokeq |NN SV *sv
-sR |char* |scan_const |NN char *start
-iR |SV* |get_and_check_backslash_N_name|NN const char* s \
- |NN const char* const e
-sR |char* |scan_formline |NN char *s
-sR |char* |scan_heredoc |NN char *s
-s |char* |scan_ident |NN char *s|NN char *dest \
- |STRLEN destlen|I32 ck_uni
-sR |char* |scan_inputsymbol|NN char *start
-sR |char* |scan_pat |NN char *start|I32 type
-sR |char* |scan_str |NN char *start|int keep_quoted \
- |int keep_delims|int re_reparse \
- |NULLOK char **delimp
-sR |char* |scan_subst |NN char *start
-sR |char* |scan_trans |NN char *start
-s |char* |scan_word |NN char *s|NN char *dest|STRLEN destlen \
- |int allow_package|NN STRLEN *slp
-s |void |update_debugger_info|NULLOK SV *orig_sv \
- |NULLOK const char *const buf|STRLEN len
-sR |char* |skipspace_flags|NN char *s|U32 flags
-sR |char* |swallow_bom |NN U8 *s
-#ifndef PERL_NO_UTF16_FILTER
-s |I32 |utf16_textfilter|int idx|NN SV *sv|int maxlen
-s |U8* |add_utf16_textfilter|NN U8 *const s|bool reversed
-#endif
-s |void |checkcomma |NN const char *s|NN const char *name \
- |NN const char *what
-s |void |force_ident |NN const char *s|int kind
-s |void |force_ident_maybe_lex|char pit
-s |void |incline |NN const char *s
-s |int |intuit_method |NN char *s|NULLOK SV *ioname|NULLOK CV *cv
-s |int |intuit_more |NN char *s
-s |I32 |lop |I32 f|int x|NN char *s
-rs |void |missingterm |NULLOK char *s
-s |void |no_op |NN const char *const what|NULLOK char *s
-s |int |pending_ident
-sR |I32 |sublex_done
-sR |I32 |sublex_push
-sR |I32 |sublex_start
-sR |char * |filter_gets |NN SV *sv|STRLEN append
-sR |HV * |find_in_my_stash|NN const char *pkgname|STRLEN len
-sR |char * |tokenize_use |int is_use|NN char *s
-so |SV* |new_constant |NULLOK const char *s|STRLEN len \
- |NN const char *key|STRLEN keylen|NN SV *sv \
- |NULLOK SV *pv|NULLOK const char *type \
- |STRLEN typelen
-s |int |deprecate_commaless_var_list
-s |int |ao |int toketype
-s |void|parse_ident|NN char **s|NN char **d \
- |NN char * const e|int allow_package \
- |bool is_utf8
-# if defined(PERL_CR_FILTER)
-s |I32 |cr_textfilter |int idx|NULLOK SV *sv|int maxlen
-s |void |strip_return |NN SV *sv
-# endif
-# if defined(DEBUGGING)
-s |int |tokereport |I32 rv|NN const YYSTYPE* lvalp
-sf |void |printbuf |NN const char *const fmt|NN const char *const s
-# endif
-#endif
-EXMp |bool |validate_proto |NN SV *name|NULLOK SV *proto|bool warn
-
-#if defined(PERL_IN_UNIVERSAL_C)
-s |bool |isa_lookup |NN HV *stash|NN const char * const name \
- |STRLEN len|U32 flags
-#endif
-
-#if defined(USE_LOCALE) && defined(PERL_IN_LOCALE_C)
-s |char* |stdize_locale |NN char* locs
-#endif
-
-#if defined(USE_LOCALE) \
- && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
-ApM |bool |_is_cur_LC_category_utf8|int category
-#endif
-
-#if defined(PERL_IN_UTIL_C)
-s |SV* |mess_alloc
-s |SV * |with_queued_errors|NN SV *ex
-s |bool |invoke_exception_hook|NULLOK SV *ex|bool warn
-#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
-sn |void |mem_log_common |enum mem_log_type mlt|const UV n|const UV typesize \
- |NN const char *type_name|NULLOK const SV *sv \
- |Malloc_t oldalloc|Malloc_t newalloc \
- |NN const char *filename|const int linenumber \
- |NN const char *funcname
-#endif
-#endif
-
-#if defined(PERL_IN_NUMERIC_C)
-#ifndef USE_QUADMATH
-sn |NV|mulexp10 |NV value|I32 exponent
-#endif
-#endif
-
-#if defined(PERL_IN_UTF8_C)
-sRM |UV |check_locale_boundary_crossing \
- |NN const U8* const p \
- |const UV result \
- |NN U8* const ustrp \
- |NN STRLEN *lenp
-iR |bool |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname|NULLOK SV* const invlist
-sR |SV* |swatch_get |NN SV* swash|UV start|UV span
-sRM |U8* |swash_scan_list_line|NN U8* l|NN U8* const lend|NN UV* min \
- |NN UV* max|NN UV* val|const bool wants_value \
- |NN const U8* const typestr
-#endif
-
-AiMn |void |append_utf8_from_native_byte|const U8 byte|NN U8** dest
-
-Apd |void |sv_setsv_flags |NN SV *dstr|NULLOK SV *sstr|const I32 flags
-Apd |void |sv_catpvn_flags|NN SV *const dstr|NN const char *sstr|const STRLEN len \
- |const I32 flags
-Apd |void |sv_catpv_flags |NN SV *dstr|NN const char *sstr \
- |const I32 flags
-Apd |void |sv_catsv_flags |NN SV *const dsv|NULLOK SV *const ssv|const I32 flags
-Apmd |STRLEN |sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags
-Ap |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra
-Apd |char* |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
-pmb |void |sv_copypv |NN SV *const dsv|NN SV *const ssv
-Apmd |void |sv_copypv_nomg |NN SV *const dsv|NN SV *const ssv
-Apd |void |sv_copypv_flags |NN SV *const dsv|NN SV *const ssv|const I32 flags
-Ap |char* |my_atof2 |NN const char *s|NN NV* value
-Apn |int |my_socketpair |int family|int type|int protocol|int fd[2]
-Apn |int |my_dirfd |NULLOK DIR* dir
-#ifdef PERL_ANY_COW
-: Used in pp_hot.c and regexec.c
-pMXE |SV* |sv_setsv_cow |NULLOK SV* dstr|NN SV* sstr
-#endif
-
-Aop |const char *|PerlIO_context_layers|NULLOK const char *mode
-
-#if defined(USE_PERLIO)
-Ap |int |PerlIO_close |NULLOK PerlIO *f
-Ap |int |PerlIO_fill |NULLOK PerlIO *f
-Ap |int |PerlIO_fileno |NULLOK PerlIO *f
-Ap |int |PerlIO_eof |NULLOK PerlIO *f
-Ap |int |PerlIO_error |NULLOK PerlIO *f
-Ap |int |PerlIO_flush |NULLOK PerlIO *f
-Ap |void |PerlIO_clearerr |NULLOK PerlIO *f
-Ap |void |PerlIO_set_cnt |NULLOK PerlIO *f|SSize_t cnt
-Ap |void |PerlIO_set_ptrcnt |NULLOK PerlIO *f|NULLOK STDCHAR *ptr \
- |SSize_t cnt
-Ap |void |PerlIO_setlinebuf |NULLOK PerlIO *f
-Ap |SSize_t|PerlIO_read |NULLOK PerlIO *f|NN void *vbuf \
- |Size_t count
-Ap |SSize_t|PerlIO_write |NULLOK PerlIO *f|NN const void *vbuf \
- |Size_t count
-Ap |SSize_t|PerlIO_unread |NULLOK PerlIO *f|NN const void *vbuf \
- |Size_t count
-Ap |Off_t |PerlIO_tell |NULLOK PerlIO *f
-Ap |int |PerlIO_seek |NULLOK PerlIO *f|Off_t offset|int whence
-Xp |void |PerlIO_save_errno |NULLOK PerlIO *f
-Xp |void |PerlIO_restore_errno |NULLOK PerlIO *f
-
-Ap |STDCHAR *|PerlIO_get_base |NULLOK PerlIO *f
-Ap |STDCHAR *|PerlIO_get_ptr |NULLOK PerlIO *f
-ApR |SSize_t |PerlIO_get_bufsiz |NULLOK PerlIO *f
-ApR |SSize_t |PerlIO_get_cnt |NULLOK PerlIO *f
-
-ApR |PerlIO *|PerlIO_stdin
-ApR |PerlIO *|PerlIO_stdout
-ApR |PerlIO *|PerlIO_stderr
-#endif /* USE_PERLIO */
-
-: Only used in dump.c
-p |void |deb_stack_all
-#if defined(PERL_IN_DEB_C)
-s |void |deb_stack_n |NN SV** stack_base|I32 stack_min \
- |I32 stack_max|I32 mark_min|I32 mark_max
-#endif
-
-: pad API
-Apda |PADLIST*|pad_new |int flags
-#ifdef DEBUGGING
-pnX |void|set_padlist| NN CV * cv | NULLOK PADLIST * padlist
-#endif
-#if defined(PERL_IN_PAD_C)
-s |PADOFFSET|pad_alloc_name|NN PADNAME *name|U32 flags \
- |NULLOK HV *typestash|NULLOK HV *ourstash
-#endif
-Apd |PADOFFSET|pad_add_name_pvn|NN const char *namepv|STRLEN namelen\
- |U32 flags|NULLOK HV *typestash\
- |NULLOK HV *ourstash
-Apd |PADOFFSET|pad_add_name_pv|NN const char *name\
- |const U32 flags|NULLOK HV *typestash\
- |NULLOK HV *ourstash
-Apd |PADOFFSET|pad_add_name_sv|NN SV *name\
- |U32 flags|NULLOK HV *typestash\
- |NULLOK HV *ourstash
-AMpd |PADOFFSET|pad_alloc |I32 optype|U32 tmptype
-Apd |PADOFFSET|pad_add_anon |NN CV* func|I32 optype
-p |void |pad_add_weakref|NN CV* func
-#if defined(PERL_IN_PAD_C)
-sd |void |pad_check_dup |NN PADNAME *name|U32 flags \
- |NULLOK const HV *ourstash
-#endif
-Apd |PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
-Apd |PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
-Apd |PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags
-ApdD |PADOFFSET|find_rundefsvoffset |
-Apd |SV* |find_rundefsv |
-: Used in pp.c
-p |SV* |find_rundefsv2 |NN CV *cv|U32 seq
-#if defined(PERL_IN_PAD_C)
-sd |PADOFFSET|pad_findlex |NN const char *namepv|STRLEN namelen|U32 flags \
- |NN const CV* cv|U32 seq|int warn \
- |NULLOK SV** out_capture \
- |NN PADNAME** out_name|NN int *out_flags
-#endif
-#ifdef DEBUGGING
-Apd |SV* |pad_sv |PADOFFSET po
-Apd |void |pad_setsv |PADOFFSET po|NN SV* sv
-#endif
-pd |void |pad_block_start|int full
-Apd |U32 |intro_my
-pd |OP * |pad_leavemy
-pd |void |pad_swipe |PADOFFSET po|bool refadjust
-#if defined(PERL_IN_PAD_C)
-sd |void |pad_reset
-#endif
-AMpd |void |pad_tidy |padtidy_type type
-pd |void |pad_free |PADOFFSET po
-pd |void |do_dump_pad |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
-#if defined(PERL_IN_PAD_C)
-# if defined(DEBUGGING)
-sd |void |cv_dump |NN const CV *cv|NN const char *title
-# endif
-#endif
-Apd |CV* |cv_clone |NN CV* proto
-p |CV* |cv_clone_into |NN CV* proto|NN CV *target
-pd |void |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
-pdX |void |pad_push |NN PADLIST *padlist|int depth
-ApbdR |HV* |pad_compname_type|const PADOFFSET po
-AMpdRn |PADNAME *|padnamelist_fetch|NN PADNAMELIST *pnl|SSize_t key
-Xop |void |padnamelist_free|NN PADNAMELIST *pnl
-AMpd |PADNAME **|padnamelist_store|NN PADNAMELIST *pnl|SSize_t key \
- |NULLOK PADNAME *val
-Xop |void |padname_free |NN PADNAME *pn
-#if defined(USE_ITHREADS)
-pdR |PADNAME *|padname_dup |NN PADNAME *src|NN CLONE_PARAMS *param
-pR |PADNAMELIST *|padnamelist_dup|NN PADNAMELIST *srcpad \
- |NN CLONE_PARAMS *param
-pdR |PADLIST *|padlist_dup |NN PADLIST *srcpad \
- |NN CLONE_PARAMS *param
-#endif
-p |PAD ** |padlist_store |NN PADLIST *padlist|I32 key \
- |NULLOK PAD *val
-
-ApdR |CV* |find_runcv |NULLOK U32 *db_seqp
-pR |CV* |find_runcv_where|U8 cond|IV arg \
- |NULLOK U32 *db_seqp
-: Only used in perl.c
-p |void |free_tied_hv_pool
-#if defined(DEBUGGING)
-: Used in mg.c
-pR |int |get_debug_opts |NN const char **s|bool givehelp
-#endif
-Ap |void |save_set_svflags|NN SV *sv|U32 mask|U32 val
-#ifdef DEBUGGING
-Apod |void |hv_assert |NN HV *hv
-#endif
-
-ApdR |SV* |hv_scalar |NN HV *hv
-ApoR |I32* |hv_riter_p |NN HV *hv
-ApoR |HE** |hv_eiter_p |NN HV *hv
-Apo |void |hv_riter_set |NN HV *hv|I32 riter
-Apo |void |hv_eiter_set |NN HV *hv|NULLOK HE *eiter
-Ap |void |hv_rand_set |NN HV *hv|U32 new_xhv_rand
-Ap |void |hv_name_set |NN HV *hv|NULLOK const char *name|U32 len|U32 flags
-p |void |hv_ename_add |NN HV *hv|NN const char *name|U32 len \
- |U32 flags
-p |void |hv_ename_delete|NN HV *hv|NN const char *name|U32 len \
- |U32 flags
-: Used in dump.c and hv.c
-poM |AV** |hv_backreferences_p |NN HV *hv
-#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C)
-poM |void |hv_kill_backrefs |NN HV *hv
-#endif
-Apd |void |hv_clear_placeholders |NN HV *hv
-XpoR |SSize_t*|hv_placeholders_p |NN HV *hv
-ApoR |I32 |hv_placeholders_get |NN const HV *hv
-Apo |void |hv_placeholders_set |NN HV *hv|I32 ph
-
-: This is indirectly referenced by globals.c. This is somewhat annoying.
-p |SV* |magic_scalarpack|NN HV *hv|NN MAGIC *mg
-
-#if defined(PERL_IN_SV_C)
-s |SV * |find_hash_subscript|NULLOK const HV *const hv \
- |NN const SV *const val
-s |I32 |find_array_subscript|NULLOK const AV *const av \
- |NN const SV *const val
-sMd |SV* |find_uninit_var|NULLOK const OP *const obase \
- |NULLOK const SV *const uninit_sv|bool match \
- |NN const char **desc_p
-#endif
-
-Ap |GV* |gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type
-Ap |GV* |gv_fetchsv|NN SV *name|I32 flags|const svtype sv_type
-
-#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
-: Used in sv.c
-p |void |dump_sv_child |NN SV *sv
-#endif
-
-#ifdef PERL_DONT_CREATE_GVSV
-Apbm |GV* |gv_SVadd |NULLOK GV *gv
-#endif
-#if defined(PERL_IN_UTIL_C)
-s |bool |ckwarn_common |U32 w
-#endif
-Apo |bool |ckwarn |U32 w
-Apo |bool |ckwarn_d |U32 w
-: FIXME - exported for ByteLoader - public or private?
-XEopMa |STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \
- |NN const char *const bits|STRLEN size
-
-#ifndef SPRINTF_RETURNS_STRLEN
-Apnod |int |my_sprintf |NN char *buffer|NN const char *pat|...
-#endif
-
-Apnodf |int |my_snprintf |NN char *buffer|const Size_t len|NN const char *format|...
-Apnod |int |my_vsnprintf |NN char *buffer|const Size_t len|NN const char *format|va_list ap
-#ifdef USE_QUADMATH
-Apnd |const char* |quadmath_format_single|NN const char* format
-Apnd |bool|quadmath_format_needed|NN const char* format
-#endif
-
-: Used in mg.c, sv.c
-px |void |my_clearenv
-
-#ifdef PERL_IMPLICIT_CONTEXT
-#ifdef PERL_GLOBAL_STRUCT_PRIVATE
-Apo |void* |my_cxt_init |NN const char *my_cxt_key|size_t size
-Apo |int |my_cxt_index |NN const char *my_cxt_key
-#else
-Apo |void* |my_cxt_init |NN int *index|size_t size
-#endif
-#endif
-#if defined(PERL_IN_UTIL_C)
-so |void |xs_version_bootcheck|U32 items|U32 ax|NN const char *xs_p \
- |STRLEN xs_len
-#endif
-Xpon |I32 |xs_handshake |const U32 key|NN void * v_my_perl\
- |NN const char * file| ...
-Xp |void |xs_boot_epilog |const U32 ax
-#ifndef HAS_STRLCAT
-Apnod |Size_t |my_strlcat |NULLOK char *dst|NULLOK const char *src|Size_t size
-#endif
-
-#ifndef HAS_STRLCPY
-Apnod |Size_t |my_strlcpy |NULLOK char *dst|NULLOK const char *src|Size_t size
-#endif
-
-Apdn |bool |isinfnan |NV nv
-p |bool |isinfnansv |NN SV *sv
-
-#if !defined(HAS_SIGNBIT)
-AMdnoP |int |Perl_signbit |NV f
-#endif
-
-: Used by B
-XEMop |void |emulate_cop_io |NN const COP *const c|NN SV *const sv
-: Used by SvRX and SvRXOK
-XEMop |REGEXP *|get_re_arg|NULLOK SV *sv
-
-Aop |SV* |mro_get_private_data|NN struct mro_meta *const smeta \
- |NN const struct mro_alg *const which
-Aop |SV* |mro_set_private_data|NN struct mro_meta *const smeta \
- |NN const struct mro_alg *const which \
- |NN SV *const data
-Aop |const struct mro_alg *|mro_get_from_name|NN SV *name
-Aop |void |mro_register |NN const struct mro_alg *mro
-Aop |void |mro_set_mro |NN struct mro_meta *const meta \
- |NN SV *const name
-: Used in HvMROMETA(), which is public.
-Xpo |struct mro_meta* |mro_meta_init |NN HV* stash
-#if defined(USE_ITHREADS)
-: Only used in sv.c
-p |struct mro_meta* |mro_meta_dup |NN struct mro_meta* smeta|NN CLONE_PARAMS* param
-#endif
-Apd |AV* |mro_get_linear_isa|NN HV* stash
-#if defined(PERL_IN_MRO_C)
-sd |AV* |mro_get_linear_isa_dfs|NN HV* stash|U32 level
-s |void |mro_clean_isarev|NN HV * const isa \
- |NN const char * const name \
- |const STRLEN len \
- |NULLOK HV * const exceptions \
- |U32 hash|U32 flags
-s |void |mro_gather_and_rename|NN HV * const stashes \
- |NN HV * const seen_stashes \
- |NULLOK HV *stash \
- |NULLOK HV *oldstash \
- |NN SV *namesv
-#endif
-: Used in hv.c, mg.c, pp.c, sv.c
-pd |void |mro_isa_changed_in|NN HV* stash
-Apd |void |mro_method_changed_in |NN HV* stash
-pdx |void |mro_package_moved |NULLOK HV * const stash|NULLOK HV * const oldstash|NN const GV * const gv|U32 flags
-: Only used in perl.c
-p |void |boot_core_mro
-Apon |void |sys_init |NN int* argc|NN char*** argv
-Apon |void |sys_init3 |NN int* argc|NN char*** argv|NN char*** env
-Apon |void |sys_term
-ApoM |const char *|cop_fetch_label|NN COP *const cop \
- |NULLOK STRLEN *len|NULLOK U32 *flags
-: Only used in op.c and the perl compiler
-ApoM |void|cop_store_label \
- |NN COP *const cop|NN const char *label|STRLEN len|U32 flags
-
-xpo |int |keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr
-
-#if defined(USE_ITHREADS)
-# if defined(PERL_IN_SV_C)
-s |void |unreferenced_to_tmp_stack|NN AV *const unreferenced
-# endif
-Aanop |CLONE_PARAMS *|clone_params_new|NN PerlInterpreter *const from \
- |NN PerlInterpreter *const to
-Anop |void |clone_params_del|NN CLONE_PARAMS *param
-#endif
-
-: Used in perl.c and toke.c
-op |void |populate_isa |NN const char *name|STRLEN len|...
-
-: Used in keywords.c and toke.c
-Xop |bool |feature_is_enabled|NN const char *const name \
- |STRLEN namelen
-
-: Some static inline functions need predeclaration because they are used
-: inside other static inline functions.
-#if defined(PERL_CORE) || defined (PERL_EXT)
-Ei |STRLEN |sv_or_pv_pos_u2b|NN SV *sv|NN const char *pv|STRLEN pos \
- |NULLOK STRLEN *lenp
-#endif
-
-EMpPX |SV* |_get_encoding
-
-: ex: set ts=8 sts=4 sw=4 noet:
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/HvNAME b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/HvNAME
deleted file mode 100644
index 9b8602bd7e3..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/HvNAME
+++ /dev/null
@@ -1,38 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-
-=implementation
-
-__UNDEFINED__ HvNAME_get(hv) HvNAME(hv)
-
-__UNDEFINED__ HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0)
-
-=xsubs
-
-char*
-HvNAME_get(hv)
- HV *hv
-
-int
-HvNAMELEN_get(hv)
- HV *hv
-
-=tests plan => 4
-
-ok(Devel::PPPort::HvNAME_get(\%Devel::PPPort::), 'Devel::PPPort');
-ok(Devel::PPPort::HvNAME_get({}), undef);
-
-ok(Devel::PPPort::HvNAMELEN_get(\%Devel::PPPort::), length('Devel::PPPort'));
-ok(Devel::PPPort::HvNAMELEN_get({}), 0);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/MY_CXT b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/MY_CXT
deleted file mode 100644
index efd8ca1430c..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/MY_CXT
+++ /dev/null
@@ -1,185 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-START_MY_CXT
-dMY_CXT_SV
-dMY_CXT
-MY_CXT_INIT
-MY_CXT_CLONE
-MY_CXT
-pMY_CXT
-pMY_CXT_
-_pMY_CXT
-aMY_CXT
-aMY_CXT_
-_aMY_CXT
-
-=implementation
-
-/*
- * Boilerplate macros for initializing and accessing interpreter-local
- * data from C. All statics in extensions should be reworked to use
- * this, if you want to make the extension thread-safe. See ext/re/re.xs
- * for an example of the use of these macros.
- *
- * Code that uses these macros is responsible for the following:
- * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts"
- * 2. Declare a typedef named my_cxt_t that is a structure that contains
- * all the data that needs to be interpreter-local.
- * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.
- * 4. Use the MY_CXT_INIT macro such that it is called exactly once
- * (typically put in the BOOT: section).
- * 5. Use the members of the my_cxt_t structure everywhere as
- * MY_CXT.member.
- * 6. Use the dMY_CXT macro (a declaration) in all the functions that
- * access MY_CXT.
- */
-
-#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \
- defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT)
-
-#ifndef START_MY_CXT
-
-/* This must appear in all extensions that define a my_cxt_t structure,
- * right after the definition (i.e. at file scope). The non-threads
- * case below uses it to declare the data as static. */
-#define START_MY_CXT
-
-#if { VERSION < 5.004_68 }
-/* Fetches the SV that keeps the per-interpreter data. */
-#define dMY_CXT_SV \
- SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE)
-#else /* >= perl5.004_68 */
-#define dMY_CXT_SV \
- SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \
- sizeof(MY_CXT_KEY)-1, TRUE)
-#endif /* < perl5.004_68 */
-
-/* This declaration should be used within all functions that use the
- * interpreter-local data. */
-#define dMY_CXT \
- dMY_CXT_SV; \
- my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv))
-
-/* Creates and zeroes the per-interpreter data.
- * (We allocate my_cxtp in a Perl SV so that it will be released when
- * the interpreter goes away.) */
-#define MY_CXT_INIT \
- dMY_CXT_SV; \
- /* newSV() allocates one more than needed */ \
- my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
- Zero(my_cxtp, 1, my_cxt_t); \
- sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
-
-/* This macro must be used to access members of the my_cxt_t structure.
- * e.g. MYCXT.some_data */
-#define MY_CXT (*my_cxtp)
-
-/* Judicious use of these macros can reduce the number of times dMY_CXT
- * is used. Use is similar to pTHX, aTHX etc. */
-#define pMY_CXT my_cxt_t *my_cxtp
-#define pMY_CXT_ pMY_CXT,
-#define _pMY_CXT ,pMY_CXT
-#define aMY_CXT my_cxtp
-#define aMY_CXT_ aMY_CXT,
-#define _aMY_CXT ,aMY_CXT
-
-#endif /* START_MY_CXT */
-
-#ifndef MY_CXT_CLONE
-/* Clones the per-interpreter data. */
-#define MY_CXT_CLONE \
- dMY_CXT_SV; \
- my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
- Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\
- sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
-#endif
-
-#else /* single interpreter */
-
-#ifndef START_MY_CXT
-
-#define START_MY_CXT static my_cxt_t my_cxt;
-#define dMY_CXT_SV dNOOP
-#define dMY_CXT dNOOP
-#define MY_CXT_INIT NOOP
-#define MY_CXT my_cxt
-
-#define pMY_CXT void
-#define pMY_CXT_
-#define _pMY_CXT
-#define aMY_CXT
-#define aMY_CXT_
-#define _aMY_CXT
-
-#endif /* START_MY_CXT */
-
-#ifndef MY_CXT_CLONE
-#define MY_CXT_CLONE NOOP
-#endif
-
-#endif
-
-=xsmisc
-
-#define MY_CXT_KEY "Devel::PPPort::_guts" XS_VERSION
-
-typedef struct {
- /* Put Global Data in here */
- int dummy;
-} my_cxt_t;
-
-START_MY_CXT
-
-=xsboot
-
-{
- MY_CXT_INIT;
- /* If any of the fields in the my_cxt_t struct need
- * to be initialised, do it here.
- */
- MY_CXT.dummy = 42;
-}
-
-=xsubs
-
-int
-MY_CXT_1()
- CODE:
- dMY_CXT;
- RETVAL = MY_CXT.dummy == 42;
- ++MY_CXT.dummy;
- OUTPUT:
- RETVAL
-
-int
-MY_CXT_2()
- CODE:
- dMY_CXT;
- RETVAL = MY_CXT.dummy == 43;
- OUTPUT:
- RETVAL
-
-int
-MY_CXT_CLONE()
- CODE:
- MY_CXT_CLONE;
- RETVAL = 42;
- OUTPUT:
- RETVAL
-
-=tests plan => 3
-
-ok(&Devel::PPPort::MY_CXT_1());
-ok(&Devel::PPPort::MY_CXT_2());
-ok(&Devel::PPPort::MY_CXT_CLONE());
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/SvPV b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/SvPV
deleted file mode 100644
index e99bfa01e01..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/SvPV
+++ /dev/null
@@ -1,535 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-SvPVbyte
-sv_2pvbyte
-sv_2pv_flags
-sv_pvn_force_flags
-
-=dontwarn
-
-NEED_sv_2pv_flags
-NEED_sv_2pv_flags_GLOBAL
-DPPP_SVPV_NOLEN_LP_ARG
-
-=implementation
-
-/* Backwards compatibility stuff... :-( */
-#if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen)
-# define NEED_sv_2pv_flags
-#endif
-#if !defined(NEED_sv_2pv_flags_GLOBAL) && defined(NEED_sv_2pv_nolen_GLOBAL)
-# define NEED_sv_2pv_flags_GLOBAL
-#endif
-
-/* Hint: sv_2pv_nolen
- * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen().
- */
-
-__UNDEFINED__ sv_2pv_nolen(sv) SvPV_nolen(sv)
-
-#ifdef SvPVbyte
-
-/* Hint: SvPVbyte
- * Does not work in perl-5.6.1, ppport.h implements a version
- * borrowed from perl-5.7.3.
- */
-
-#if { VERSION < 5.7.0 }
-
-#if { NEED sv_2pvbyte }
-
-char *
-sv_2pvbyte(pTHX_ SV *sv, STRLEN *lp)
-{
- sv_utf8_downgrade(sv,0);
- return SvPV(sv,*lp);
-}
-
-#endif
-
-/* Hint: sv_2pvbyte
- * Use the SvPVbyte() macro instead of sv_2pvbyte().
- */
-
-#undef SvPVbyte
-
-#define SvPVbyte(sv, lp) \
- ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \
- ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp))
-
-#endif
-
-#else
-
-# define SvPVbyte SvPV
-# define sv_2pvbyte sv_2pv
-
-#endif
-
-__UNDEFINED__ sv_2pvbyte_nolen(sv) sv_2pv_nolen(sv)
-
-/* Hint: sv_pvn
- * Always use the SvPV() macro instead of sv_pvn().
- */
-
-/* Hint: sv_pvn_force
- * Always use the SvPV_force() macro instead of sv_pvn_force().
- */
-
-/* If these are undefined, they're not handled by the core anyway */
-__UNDEFINED__ SV_IMMEDIATE_UNREF 0
-__UNDEFINED__ SV_GMAGIC 0
-__UNDEFINED__ SV_COW_DROP_PV 0
-__UNDEFINED__ SV_UTF8_NO_ENCODING 0
-__UNDEFINED__ SV_NOSTEAL 0
-__UNDEFINED__ SV_CONST_RETURN 0
-__UNDEFINED__ SV_MUTABLE_RETURN 0
-__UNDEFINED__ SV_SMAGIC 0
-__UNDEFINED__ SV_HAS_TRAILING_NUL 0
-__UNDEFINED__ SV_COW_SHARED_HASH_KEYS 0
-
-#if { VERSION < 5.7.2 }
-
-#if { NEED sv_2pv_flags }
-
-char *
-sv_2pv_flags(pTHX_ SV *sv, STRLEN *lp, I32 flags)
-{
- STRLEN n_a = (STRLEN) flags;
- return sv_2pv(sv, lp ? lp : &n_a);
-}
-
-#endif
-
-#if { NEED sv_pvn_force_flags }
-
-char *
-sv_pvn_force_flags(pTHX_ SV *sv, STRLEN *lp, I32 flags)
-{
- STRLEN n_a = (STRLEN) flags;
- return sv_pvn_force(sv, lp ? lp : &n_a);
-}
-
-#endif
-
-#endif
-
-#if { VERSION < 5.8.8 } || ( { VERSION >= 5.9.0 } && { VERSION < 5.9.3 } )
-# define DPPP_SVPV_NOLEN_LP_ARG &PL_na
-#else
-# define DPPP_SVPV_NOLEN_LP_ARG 0
-#endif
-
-__UNDEFINED__ SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC)
-__UNDEFINED__ SvPV_mutable(sv, lp) SvPV_flags_mutable(sv, lp, SV_GMAGIC)
-
-__UNDEFINED__ SvPV_flags(sv, lp, flags) \
- ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
- ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
-
-__UNDEFINED__ SvPV_flags_const(sv, lp, flags) \
- ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
- ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \
- (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN))
-
-__UNDEFINED__ SvPV_flags_const_nolen(sv, flags) \
- ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
- ? SvPVX_const(sv) : \
- (const char*) sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN))
-
-__UNDEFINED__ SvPV_flags_mutable(sv, lp, flags) \
- ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
- ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \
- sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
-
-__UNDEFINED__ SvPV_force(sv, lp) SvPV_force_flags(sv, lp, SV_GMAGIC)
-__UNDEFINED__ SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC)
-__UNDEFINED__ SvPV_force_mutable(sv, lp) SvPV_force_flags_mutable(sv, lp, SV_GMAGIC)
-__UNDEFINED__ SvPV_force_nomg(sv, lp) SvPV_force_flags(sv, lp, 0)
-__UNDEFINED__ SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0)
-
-__UNDEFINED__ SvPV_force_flags(sv, lp, flags) \
- ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
- ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags))
-
-__UNDEFINED__ SvPV_force_flags_nolen(sv, flags) \
- ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
- ? SvPVX(sv) : sv_pvn_force_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags))
-
-__UNDEFINED__ SvPV_force_flags_mutable(sv, lp, flags) \
- ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
- ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \
- : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
-
-__UNDEFINED__ SvPV_nolen(sv) \
- ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
- ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC))
-
-__UNDEFINED__ SvPV_nolen_const(sv) \
- ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
- ? SvPVX_const(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN))
-
-__UNDEFINED__ SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0)
-__UNDEFINED__ SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0)
-__UNDEFINED__ SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0)
-__UNDEFINED__ SvPV_nomg_nolen(sv) ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
- ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, 0))
-
-__UNDEFINED__ SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \
- SvPV_set((sv), (char *) saferealloc( \
- (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \
- } STMT_END
-
-=xsinit
-
-#define NEED_sv_2pv_flags
-#define NEED_sv_pvn_force_flags
-#define NEED_sv_2pvbyte
-
-=xsubs
-
-IV
-SvPVbyte(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPVbyte(sv, len);
- RETVAL = strEQ(str, "mhx") ? (IV) len : (IV) -1;
- OUTPUT:
- RETVAL
-
-IV
-SvPV_nolen(sv)
- SV *sv
- PREINIT:
- char *str;
- CODE:
- str = SvPV_nolen(sv);
- RETVAL = strEQ(str, "mhx") ? 42 : 0;
- OUTPUT:
- RETVAL
-
-IV
-SvPV_const(sv)
- SV *sv
- PREINIT:
- const char *str;
- STRLEN len;
- CODE:
- str = SvPV_const(sv, len);
- RETVAL = len + (strEQ(str, "mhx") ? 40 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_mutable(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_mutable(sv, len);
- RETVAL = len + (strEQ(str, "mhx") ? 41 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_flags(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_flags(sv, len, SV_GMAGIC);
- RETVAL = len + (strEQ(str, "mhx") ? 42 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_flags_const(sv)
- SV *sv
- PREINIT:
- const char *str;
- STRLEN len;
- CODE:
- str = SvPV_flags_const(sv, len, SV_GMAGIC);
- RETVAL = len + (strEQ(str, "mhx") ? 43 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_flags_const_nolen(sv)
- SV *sv
- PREINIT:
- const char *str;
- CODE:
- str = SvPV_flags_const_nolen(sv, SV_GMAGIC);
- RETVAL = strEQ(str, "mhx") ? 47 : 0;
- OUTPUT:
- RETVAL
-
-IV
-SvPV_flags_mutable(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_flags_mutable(sv, len, SV_GMAGIC);
- RETVAL = len + (strEQ(str, "mhx") ? 45 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_force(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_force(sv, len);
- RETVAL = len + (strEQ(str, "mhx") ? 46 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_force_nolen(sv)
- SV *sv
- PREINIT:
- char *str;
- CODE:
- str = SvPV_force_nolen(sv);
- RETVAL = strEQ(str, "mhx") ? 50 : 0;
- OUTPUT:
- RETVAL
-
-IV
-SvPV_force_mutable(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_force_mutable(sv, len);
- RETVAL = len + (strEQ(str, "mhx") ? 48 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_force_nomg(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_force_nomg(sv, len);
- RETVAL = len + (strEQ(str, "mhx") ? 49 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_force_nomg_nolen(sv)
- SV *sv
- PREINIT:
- char *str;
- CODE:
- str = SvPV_force_nomg_nolen(sv);
- RETVAL = strEQ(str, "mhx") ? 53 : 0;
- OUTPUT:
- RETVAL
-
-IV
-SvPV_force_flags(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_force_flags(sv, len, SV_GMAGIC);
- RETVAL = len + (strEQ(str, "mhx") ? 51 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_force_flags_nolen(sv)
- SV *sv
- PREINIT:
- char *str;
- CODE:
- str = SvPV_force_flags_nolen(sv, SV_GMAGIC);
- RETVAL = strEQ(str, "mhx") ? 55 : 0;
- OUTPUT:
- RETVAL
-
-IV
-SvPV_force_flags_mutable(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_force_flags_mutable(sv, len, SV_GMAGIC);
- RETVAL = len + (strEQ(str, "mhx") ? 53 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_nolen_const(sv)
- SV *sv
- PREINIT:
- const char *str;
- CODE:
- str = SvPV_nolen_const(sv);
- RETVAL = strEQ(str, "mhx") ? 57 : 0;
- OUTPUT:
- RETVAL
-
-IV
-SvPV_nomg(sv)
- SV *sv
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV_nomg(sv, len);
- RETVAL = len + (strEQ(str, "mhx") ? 55 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_nomg_const(sv)
- SV *sv
- PREINIT:
- const char *str;
- STRLEN len;
- CODE:
- str = SvPV_nomg_const(sv, len);
- RETVAL = len + (strEQ(str, "mhx") ? 56 : 0);
- OUTPUT:
- RETVAL
-
-IV
-SvPV_nomg_const_nolen(sv)
- SV *sv
- PREINIT:
- const char *str;
- CODE:
- str = SvPV_nomg_const_nolen(sv);
- RETVAL = strEQ(str, "mhx") ? 60 : 0;
- OUTPUT:
- RETVAL
-
-IV
-SvPV_nomg_nolen(sv)
- SV *sv
- PREINIT:
- char *str;
- CODE:
- str = SvPV_nomg_nolen(sv);
- RETVAL = strEQ(str, "mhx") ? 61 : 0;
- OUTPUT:
- RETVAL
-
-void
-SvPV_renew(sv, nlen, insv)
- SV *sv
- STRLEN nlen
- SV *insv
- PREINIT:
- STRLEN slen;
- const char *str;
- PPCODE:
- str = SvPV_const(insv, slen);
- XPUSHs(sv);
- mXPUSHi(SvLEN(sv));
- SvPV_renew(sv, nlen);
- Copy(str, SvPVX(sv), slen + 1, char);
- SvCUR_set(sv, slen);
- mXPUSHi(SvLEN(sv));
-
-
-=tests plan => 49
-
-my $mhx = "mhx";
-
-ok(&Devel::PPPort::SvPVbyte($mhx), 3);
-
-my $i = 42;
-
-ok(&Devel::PPPort::SvPV_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_const($mhx), $i++);
-ok(&Devel::PPPort::SvPV_mutable($mhx), $i++);
-ok(&Devel::PPPort::SvPV_flags($mhx), $i++);
-ok(&Devel::PPPort::SvPV_flags_const($mhx), $i++);
-
-ok(&Devel::PPPort::SvPV_flags_const_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_flags_mutable($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_mutable($mhx), $i++);
-
-ok(&Devel::PPPort::SvPV_force_nomg($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_nomg_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_flags($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_flags_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_flags_mutable($mhx), $i++);
-
-ok(&Devel::PPPort::SvPV_nolen_const($mhx), $i++);
-ok(&Devel::PPPort::SvPV_nomg($mhx), $i++);
-ok(&Devel::PPPort::SvPV_nomg_const($mhx), $i++);
-ok(&Devel::PPPort::SvPV_nomg_const_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_nomg_nolen($mhx), $i++);
-
-$mhx = 42; ok(&Devel::PPPort::SvPV_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_const($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_mutable($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_flags($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_flags_const($mhx), 2);
-
-$mhx = 42; ok(&Devel::PPPort::SvPV_flags_const_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_flags_mutable($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_mutable($mhx), 2);
-
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_nomg($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_nomg_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags_mutable($mhx), 2);
-
-$mhx = 42; ok(&Devel::PPPort::SvPV_nolen_const($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_nomg($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_const($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_const_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_nolen($mhx), 0);
-
-my $str = "";
-&Devel::PPPort::SvPV_force($str);
-my($s2, $before, $after) = &Devel::PPPort::SvPV_renew($str, 81, "x"x80);
-ok($str, "x"x80);
-ok($s2, "x"x80);
-ok($before < 81);
-ok($after, 81);
-
-$str = "x"x400;
-&Devel::PPPort::SvPV_force($str);
-($s2, $before, $after) = &Devel::PPPort::SvPV_renew($str, 41, "x"x40);
-ok($str, "x"x40);
-ok($s2, "x"x40);
-ok($before > 41);
-ok($after, 41);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/SvREFCNT b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/SvREFCNT
deleted file mode 100644
index 422aa58ac86..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/SvREFCNT
+++ /dev/null
@@ -1,123 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-SvREFCNT_inc
-SvREFCNT_inc_simple
-SvREFCNT_inc_NN
-SvREFCNT_inc_void
-__UNDEFINED__
-
-=implementation
-
-#ifndef SvREFCNT_inc
-# ifdef PERL_USE_GCC_BRACE_GROUPS
-# define SvREFCNT_inc(sv) \
- ({ \
- SV * const _sv = (SV*)(sv); \
- if (_sv) \
- (SvREFCNT(_sv))++; \
- _sv; \
- })
-# else
-# define SvREFCNT_inc(sv) \
- ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL)
-# endif
-#endif
-
-#ifndef SvREFCNT_inc_simple
-# ifdef PERL_USE_GCC_BRACE_GROUPS
-# define SvREFCNT_inc_simple(sv) \
- ({ \
- if (sv) \
- (SvREFCNT(sv))++; \
- (SV *)(sv); \
- })
-# else
-# define SvREFCNT_inc_simple(sv) \
- ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL)
-# endif
-#endif
-
-#ifndef SvREFCNT_inc_NN
-# ifdef PERL_USE_GCC_BRACE_GROUPS
-# define SvREFCNT_inc_NN(sv) \
- ({ \
- SV * const _sv = (SV*)(sv); \
- SvREFCNT(_sv)++; \
- _sv; \
- })
-# else
-# define SvREFCNT_inc_NN(sv) \
- (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv)
-# endif
-#endif
-
-#ifndef SvREFCNT_inc_void
-# ifdef PERL_USE_GCC_BRACE_GROUPS
-# define SvREFCNT_inc_void(sv) \
- ({ \
- SV * const _sv = (SV*)(sv); \
- if (_sv) \
- (void)(SvREFCNT(_sv)++); \
- })
-# else
-# define SvREFCNT_inc_void(sv) \
- (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0)
-# endif
-#endif
-
-__UNDEFINED__ SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
-__UNDEFINED__ SvREFCNT_inc_simple_NN(sv) (++SvREFCNT(sv), (SV*)(sv))
-__UNDEFINED__ SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv)))
-__UNDEFINED__ SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv)))
-
-=xsubs
-
-void
-SvREFCNT()
- PREINIT:
- SV *sv, *svr;
- PPCODE:
- sv = newSV(0);
- mXPUSHi(SvREFCNT(sv) == 1);
- svr = SvREFCNT_inc(sv);
- mXPUSHi(sv == svr);
- mXPUSHi(SvREFCNT(sv) == 2);
- svr = SvREFCNT_inc_simple(sv);
- mXPUSHi(sv == svr);
- mXPUSHi(SvREFCNT(sv) == 3);
- svr = SvREFCNT_inc_NN(sv);
- mXPUSHi(sv == svr);
- mXPUSHi(SvREFCNT(sv) == 4);
- svr = SvREFCNT_inc_simple_NN(sv);
- mXPUSHi(sv == svr);
- mXPUSHi(SvREFCNT(sv) == 5);
- SvREFCNT_inc_void(sv);
- mXPUSHi(SvREFCNT(sv) == 6);
- SvREFCNT_inc_simple_void(sv);
- mXPUSHi(SvREFCNT(sv) == 7);
- SvREFCNT_inc_void_NN(sv);
- mXPUSHi(SvREFCNT(sv) == 8);
- SvREFCNT_inc_simple_void_NN(sv);
- mXPUSHi(SvREFCNT(sv) == 9);
- while (SvREFCNT(sv) > 1)
- SvREFCNT_dec(sv);
- mXPUSHi(SvREFCNT(sv) == 1);
- SvREFCNT_dec(sv);
- XSRETURN(14);
-
-=tests plan => 14
-
-for (Devel::PPPort::SvREFCNT()) {
- ok(defined $_ and $_);
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/Sv_set b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/Sv_set
deleted file mode 100644
index 30452aee66f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/Sv_set
+++ /dev/null
@@ -1,118 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-
-=implementation
-
-__UNDEFINED__ SvMAGIC_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
- (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END
-
-#if { VERSION < 5.9.3 }
-
-__UNDEFINED__ SvPVX_const(sv) ((const char*) (0 + SvPVX(sv)))
-__UNDEFINED__ SvPVX_mutable(sv) (0 + SvPVX(sv))
-
-__UNDEFINED__ SvRV_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_RV); \
- (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END
-
-#else
-
-__UNDEFINED__ SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv))
-__UNDEFINED__ SvPVX_mutable(sv) ((sv)->sv_u.svu_pv)
-
-__UNDEFINED__ SvRV_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_RV); \
- ((sv)->sv_u.svu_rv = (val)); } STMT_END
-
-#endif
-
-__UNDEFINED__ SvSTASH_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
- (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END
-
-#if { VERSION < 5.004 }
-
-__UNDEFINED__ SvUV_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
- (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END
-
-#else
-
-__UNDEFINED__ SvUV_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
- (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END
-
-#endif
-
-=xsubs
-
-IV
-TestSvUV_set(sv, val)
- SV *sv
- UV val
- CODE:
- SvUV_set(sv, val);
- RETVAL = SvUVX(sv) == val ? 42 : -1;
- OUTPUT:
- RETVAL
-
-IV
-TestSvPVX_const(sv)
- SV *sv
- CODE:
- RETVAL = strEQ(SvPVX_const(sv), "mhx") ? 43 : -1;
- OUTPUT:
- RETVAL
-
-IV
-TestSvPVX_mutable(sv)
- SV *sv
- CODE:
- RETVAL = strEQ(SvPVX_mutable(sv), "mhx") ? 44 : -1;
- OUTPUT:
- RETVAL
-
-void
-TestSvSTASH_set(sv, name)
- SV *sv
- char *name
- CODE:
- sv = SvRV(sv);
- SvREFCNT_dec(SvSTASH(sv));
- SvSTASH_set(sv, (HV*) SvREFCNT_inc(gv_stashpv(name, 0)));
-
-=tests plan => 5
-
-my $foo = 5;
-ok(&Devel::PPPort::TestSvUV_set($foo, 12345), 42);
-ok(&Devel::PPPort::TestSvPVX_const("mhx"), 43);
-ok(&Devel::PPPort::TestSvPVX_mutable("mhx"), 44);
-
-my $bar = [];
-
-bless $bar, 'foo';
-ok($bar->x(), 'foobar');
-
-Devel::PPPort::TestSvSTASH_set($bar, 'bar');
-ok($bar->x(), 'hacker');
-
-package foo;
-
-sub x { 'foobar' }
-
-package bar;
-
-sub x { 'hacker' }
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/call b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/call
deleted file mode 100644
index 7d8e4d37e5f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/call
+++ /dev/null
@@ -1,364 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-eval_pv
-eval_sv
-call_sv
-call_pv
-call_argv
-call_method
-load_module
-vload_module
-G_METHOD
-
-=implementation
-
-/* Replace: 1 */
-__UNDEFINED__ call_sv perl_call_sv
-__UNDEFINED__ call_pv perl_call_pv
-__UNDEFINED__ call_argv perl_call_argv
-__UNDEFINED__ call_method perl_call_method
-
-__UNDEFINED__ eval_sv perl_eval_sv
-/* Replace: 0 */
-
-__UNDEFINED__ PERL_LOADMOD_DENY 0x1
-__UNDEFINED__ PERL_LOADMOD_NOIMPORT 0x2
-__UNDEFINED__ PERL_LOADMOD_IMPORT_OPS 0x4
-
-#ifndef G_METHOD
-# define G_METHOD 64
-# ifdef call_sv
-# undef call_sv
-# endif
-# if { VERSION < 5.6.0 }
-# define call_sv(sv, flags) ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \
- (flags) & ~G_METHOD) : perl_call_sv(sv, flags))
-# else
-# define call_sv(sv, flags) ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \
- (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags))
-# endif
-#endif
-
-/* Replace perl_eval_pv with eval_pv */
-
-#ifndef eval_pv
-#if { NEED eval_pv }
-
-SV*
-eval_pv(char *p, I32 croak_on_error)
-{
- dSP;
- SV* sv = newSVpv(p, 0);
-
- PUSHMARK(sp);
- eval_sv(sv, G_SCALAR);
- SvREFCNT_dec(sv);
-
- SPAGAIN;
- sv = POPs;
- PUTBACK;
-
- if (croak_on_error && SvTRUE(GvSV(errgv)))
- croak(SvPVx(GvSV(errgv), na));
-
- return sv;
-}
-
-#endif
-#endif
-
-#ifndef vload_module
-#if { NEED vload_module }
-
-void
-vload_module(U32 flags, SV *name, SV *ver, va_list *args)
-{
- dTHR;
- dVAR;
- OP *veop, *imop;
-
- OP * const modname = newSVOP(OP_CONST, 0, name);
- /* 5.005 has a somewhat hacky force_normal that doesn't croak on
- SvREADONLY() if PL_compling is true. Current perls take care in
- ck_require() to correctly turn off SvREADONLY before calling
- force_normal_flags(). This seems a better fix than fudging PL_compling
- */
- SvREADONLY_off(((SVOP*)modname)->op_sv);
- modname->op_private |= OPpCONST_BARE;
- if (ver) {
- veop = newSVOP(OP_CONST, 0, ver);
- }
- else
- veop = NULL;
- if (flags & PERL_LOADMOD_NOIMPORT) {
- imop = sawparens(newNULLLIST());
- }
- else if (flags & PERL_LOADMOD_IMPORT_OPS) {
- imop = va_arg(*args, OP*);
- }
- else {
- SV *sv;
- imop = NULL;
- sv = va_arg(*args, SV*);
- while (sv) {
- imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv));
- sv = va_arg(*args, SV*);
- }
- }
- {
- const line_t ocopline = PL_copline;
- COP * const ocurcop = PL_curcop;
- const int oexpect = PL_expect;
-
-#if { VERSION >= 5.004 }
- utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
- veop, modname, imop);
-#elif { VERSION > 5.003 }
- utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
- veop, modname, imop);
-#else
- utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
- modname, imop);
-#endif
- PL_expect = oexpect;
- PL_copline = ocopline;
- PL_curcop = ocurcop;
- }
-}
-
-#endif
-#endif
-
-#ifndef load_module
-#if { NEED load_module }
-
-void
-load_module(U32 flags, SV *name, SV *ver, ...)
-{
- va_list args;
- va_start(args, ver);
- vload_module(flags, name, ver, &args);
- va_end(args);
-}
-
-#endif
-#endif
-
-=xsinit
-
-#define NEED_eval_pv
-#define NEED_load_module
-#define NEED_vload_module
-
-=xsubs
-
-I32
-G_SCALAR()
- CODE:
- RETVAL = G_SCALAR;
- OUTPUT:
- RETVAL
-
-I32
-G_ARRAY()
- CODE:
- RETVAL = G_ARRAY;
- OUTPUT:
- RETVAL
-
-I32
-G_DISCARD()
- CODE:
- RETVAL = G_DISCARD;
- OUTPUT:
- RETVAL
-
-void
-eval_sv(sv, flags)
- SV* sv
- I32 flags
- PREINIT:
- I32 i;
- PPCODE:
- PUTBACK;
- i = eval_sv(sv, flags);
- SPAGAIN;
- EXTEND(SP, 1);
- mPUSHi(i);
-
-void
-eval_pv(p, croak_on_error)
- char* p
- I32 croak_on_error
- PPCODE:
- PUTBACK;
- EXTEND(SP, 1);
- PUSHs(eval_pv(p, croak_on_error));
-
-void
-call_sv(sv, flags, ...)
- SV* sv
- I32 flags
- PREINIT:
- I32 i;
- PPCODE:
- for (i=0; i<items-2; i++)
- ST(i) = ST(i+2); /* pop first two args */
- PUSHMARK(SP);
- SP += items - 2;
- PUTBACK;
- i = call_sv(sv, flags);
- SPAGAIN;
- EXTEND(SP, 1);
- mPUSHi(i);
-
-void
-call_pv(subname, flags, ...)
- char* subname
- I32 flags
- PREINIT:
- I32 i;
- PPCODE:
- for (i=0; i<items-2; i++)
- ST(i) = ST(i+2); /* pop first two args */
- PUSHMARK(SP);
- SP += items - 2;
- PUTBACK;
- i = call_pv(subname, flags);
- SPAGAIN;
- EXTEND(SP, 1);
- mPUSHi(i);
-
-void
-call_argv(subname, flags, ...)
- char* subname
- I32 flags
- PREINIT:
- I32 i;
- char *args[8];
- PPCODE:
- if (items > 8) /* play safe */
- XSRETURN_UNDEF;
- for (i=2; i<items; i++)
- args[i-2] = SvPV_nolen(ST(i));
- args[items-2] = NULL;
- PUTBACK;
- i = call_argv(subname, flags, args);
- SPAGAIN;
- EXTEND(SP, 1);
- mPUSHi(i);
-
-void
-call_method(methname, flags, ...)
- char* methname
- I32 flags
- PREINIT:
- I32 i;
- PPCODE:
- for (i=0; i<items-2; i++)
- ST(i) = ST(i+2); /* pop first two args */
- PUSHMARK(SP);
- SP += items - 2;
- PUTBACK;
- i = call_method(methname, flags);
- SPAGAIN;
- EXTEND(SP, 1);
- mPUSHi(i);
-
-void
-call_sv_G_METHOD(sv, flags, ...)
- SV* sv
- I32 flags
- PREINIT:
- I32 i;
- PPCODE:
- for (i=0; i<items-2; i++)
- ST(i) = ST(i+2); /* pop first two args */
- PUSHMARK(SP);
- SP += items - 2;
- PUTBACK;
- i = call_sv(sv, flags | G_METHOD);
- SPAGAIN;
- EXTEND(SP, 1);
- mPUSHi(i);
-
-void
-load_module(flags, name, version, ...)
- U32 flags
- SV *name
- SV *version
- CODE:
- /* Both SV parameters are donated to the ops built inside
- load_module, so we need to bump the refcounts. */
- Perl_load_module(aTHX_ flags, SvREFCNT_inc_simple(name),
- SvREFCNT_inc_simple(version), NULL);
-
-=tests plan => 52
-
-sub eq_array
-{
- my($a, $b) = @_;
- join(':', @$a) eq join(':', @$b);
-}
-
-sub f
-{
- shift;
- unshift @_, 'b';
- pop @_;
- @_, defined wantarray ? wantarray ? 'x' : 'y' : 'z';
-}
-
-my $obj = bless [], 'Foo';
-
-sub Foo::meth
-{
- return 'bad_self' unless @_ && ref $_[0] && ref($_[0]) eq 'Foo';
- shift;
- shift;
- unshift @_, 'b';
- pop @_;
- @_, defined wantarray ? wantarray ? 'x' : 'y' : 'z';
-}
-
-my $test;
-
-for $test (
- # flags args expected description
- [ &Devel::PPPort::G_SCALAR, [ ], [ qw(y 1) ], '0 args, G_SCALAR' ],
- [ &Devel::PPPort::G_SCALAR, [ qw(a p q) ], [ qw(y 1) ], '3 args, G_SCALAR' ],
- [ &Devel::PPPort::G_ARRAY, [ ], [ qw(x 1) ], '0 args, G_ARRAY' ],
- [ &Devel::PPPort::G_ARRAY, [ qw(a p q) ], [ qw(b p x 3) ], '3 args, G_ARRAY' ],
- [ &Devel::PPPort::G_DISCARD, [ ], [ qw(0) ], '0 args, G_DISCARD' ],
- [ &Devel::PPPort::G_DISCARD, [ qw(a p q) ], [ qw(0) ], '3 args, G_DISCARD' ],
-)
-{
- my ($flags, $args, $expected, $description) = @$test;
- print "# --- $description ---\n";
- ok(eq_array( [ &Devel::PPPort::call_sv(\&f, $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_sv(*f, $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_sv('f', $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_pv('f', $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_argv('f', $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::eval_sv("f(qw(@$args))", $flags) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_method('meth', $flags, $obj, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_sv_G_METHOD('meth', $flags, $obj, @$args) ], $expected));
-};
-
-ok(&Devel::PPPort::eval_pv('f()', 0), 'y');
-ok(&Devel::PPPort::eval_pv('f(qw(a b c))', 0), 'y');
-
-ok(!defined $::{'less::'}, 1, "Hadn't loaded less yet");
-Devel::PPPort::load_module(0, "less", undef);
-ok(defined $::{'less::'}, 1, "Have now loaded less");
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/cop b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/cop
deleted file mode 100644
index 355a2e1aad9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/cop
+++ /dev/null
@@ -1,231 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-caller_cx
-__UNDEFINED__
-
-=implementation
-
-#ifdef USE_ITHREADS
-
-__UNDEFINED__ CopFILE(c) ((c)->cop_file)
-__UNDEFINED__ CopFILEGV(c) (CopFILE(c) ? gv_fetchfile(CopFILE(c)) : Nullgv)
-__UNDEFINED__ CopFILE_set(c,pv) ((c)->cop_file = savepv(pv))
-__UNDEFINED__ CopFILESV(c) (CopFILE(c) ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv)
-__UNDEFINED__ CopFILEAV(c) (CopFILE(c) ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav)
-__UNDEFINED__ CopSTASHPV(c) ((c)->cop_stashpv)
-__UNDEFINED__ CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch))
-__UNDEFINED__ CopSTASH(c) (CopSTASHPV(c) ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv)
-__UNDEFINED__ CopSTASH_set(c,hv) CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch)
-__UNDEFINED__ CopSTASH_eq(c,hv) ((hv) && (CopSTASHPV(c) == HvNAME(hv) \
- || (CopSTASHPV(c) && HvNAME(hv) \
- && strEQ(CopSTASHPV(c), HvNAME(hv)))))
-
-#else
-
-__UNDEFINED__ CopFILEGV(c) ((c)->cop_filegv)
-__UNDEFINED__ CopFILEGV_set(c,gv) ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv))
-__UNDEFINED__ CopFILE_set(c,pv) CopFILEGV_set((c), gv_fetchfile(pv))
-__UNDEFINED__ CopFILESV(c) (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv)
-__UNDEFINED__ CopFILEAV(c) (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav)
-__UNDEFINED__ CopFILE(c) (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch)
-__UNDEFINED__ CopSTASH(c) ((c)->cop_stash)
-__UNDEFINED__ CopSTASH_set(c,hv) ((c)->cop_stash = (hv))
-__UNDEFINED__ CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch)
-__UNDEFINED__ CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD))
-__UNDEFINED__ CopSTASH_eq(c,hv) (CopSTASH(c) == (hv))
-
-#endif /* USE_ITHREADS */
-
-#if { VERSION >= 5.6.0 }
-#ifndef caller_cx
-
-# if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL)
-static I32
-DPPP_dopoptosub_at(const PERL_CONTEXT *cxstk, I32 startingblock)
-{
- I32 i;
-
- for (i = startingblock; i >= 0; i--) {
- register const PERL_CONTEXT * const cx = &cxstk[i];
- switch (CxTYPE(cx)) {
- default:
- continue;
- case CXt_EVAL:
- case CXt_SUB:
- case CXt_FORMAT:
- return i;
- }
- }
- return i;
-}
-# endif
-
-# if { NEED caller_cx }
-
-const PERL_CONTEXT *
-caller_cx(pTHX_ I32 count, const PERL_CONTEXT **dbcxp)
-{
- register I32 cxix = DPPP_dopoptosub_at(cxstack, cxstack_ix);
- register const PERL_CONTEXT *cx;
- register const PERL_CONTEXT *ccstack = cxstack;
- const PERL_SI *top_si = PL_curstackinfo;
-
- for (;;) {
- /* we may be in a higher stacklevel, so dig down deeper */
- while (cxix < 0 && top_si->si_type != PERLSI_MAIN) {
- top_si = top_si->si_prev;
- ccstack = top_si->si_cxstack;
- cxix = DPPP_dopoptosub_at(ccstack, top_si->si_cxix);
- }
- if (cxix < 0)
- return NULL;
- /* caller() should not report the automatic calls to &DB::sub */
- if (PL_DBsub && GvCV(PL_DBsub) && cxix >= 0 &&
- ccstack[cxix].blk_sub.cv == GvCV(PL_DBsub))
- count++;
- if (!count--)
- break;
- cxix = DPPP_dopoptosub_at(ccstack, cxix - 1);
- }
-
- cx = &ccstack[cxix];
- if (dbcxp) *dbcxp = cx;
-
- if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT) {
- const I32 dbcxix = DPPP_dopoptosub_at(ccstack, cxix - 1);
- /* We expect that ccstack[dbcxix] is CXt_SUB, anyway, the
- field below is defined for any cx. */
- /* caller() should not report the automatic calls to &DB::sub */
- if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub))
- cx = &ccstack[dbcxix];
- }
-
- return cx;
-}
-
-# endif
-#endif /* caller_cx */
-#endif /* 5.6.0 */
-
-=xsinit
-
-#define NEED_caller_cx
-
-=xsubs
-
-char *
-CopSTASHPV()
- CODE:
- RETVAL = CopSTASHPV(PL_curcop);
- OUTPUT:
- RETVAL
-
-char *
-CopFILE()
- CODE:
- RETVAL = CopFILE(PL_curcop);
- OUTPUT:
- RETVAL
-
-#if { VERSION >= 5.6.0 }
-
-void
-caller_cx(level)
- I32 level
- PREINIT:
- const PERL_CONTEXT *cx, *dbcx;
- const char *pv;
- const GV *gv;
- PPCODE:
- cx = caller_cx(level, &dbcx);
- if (!cx) XSRETURN_EMPTY;
-
- EXTEND(SP, 4);
-
- pv = CopSTASHPV(cx->blk_oldcop);
- ST(0) = pv ? sv_2mortal(newSVpv(pv, 0)) : &PL_sv_undef;
- gv = CvGV(cx->blk_sub.cv);
- ST(1) = isGV(gv) ? sv_2mortal(newSVpv(GvNAME(gv), 0)) : &PL_sv_undef;
-
- pv = CopSTASHPV(dbcx->blk_oldcop);
- ST(2) = pv ? sv_2mortal(newSVpv(pv, 0)) : &PL_sv_undef;
- gv = CvGV(dbcx->blk_sub.cv);
- ST(3) = isGV(gv) ? sv_2mortal(newSVpv(GvNAME(gv), 0)) : &PL_sv_undef;
-
- XSRETURN(4);
-
-#endif /* 5.6.0 */
-
-=tests plan => 28
-
-my $package;
-{
- package MyPackage;
- $package = &Devel::PPPort::CopSTASHPV();
-}
-print "# $package\n";
-ok($package, "MyPackage");
-
-my $file = &Devel::PPPort::CopFILE();
-print "# $file\n";
-ok($file =~ /cop/i);
-
-BEGIN {
- if ($] < 5.006000) {
- # Skip
- for (1..28) {
- ok(1, 1);
- }
- exit;
- }
-}
-
-BEGIN {
- package DB;
- no strict "refs";
- local $^P = 1;
- sub sub { &$DB::sub }
-}
-
-{ package One; sub one { Devel::PPPort::caller_cx($_[0]) } }
-{
- package Two;
- sub two { One::one(@_) }
- sub dbtwo {
- BEGIN { $^P = 1 }
- One::one(@_);
- BEGIN { $^P = 0 }
- }
-}
-
-for (
- # This is rather confusing. The package is the package the call is
- # made *from*, the sub name is the sub the call is made *to*. When
- # DB::sub is involved the first call is to DB::sub from the calling
- # package, the second is to the real sub from package DB.
- [\&One::one, 0, qw/main one main one/],
- [\&One::one, 2, ],
- [\&Two::two, 0, qw/Two one Two one/],
- [\&Two::two, 1, qw/main two main two/],
- [\&Two::dbtwo, 0, qw/Two sub DB one/],
- [\&Two::dbtwo, 1, qw/main dbtwo main dbtwo/],
-) {
- my ($sub, $arg, @want) = @$_;
- my @got = $sub->($arg);
- ok(@got, @want);
- for (0..$#want) {
- ok($got[$_], $want[$_]);
- }
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/exception b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/exception
deleted file mode 100644
index 8dd21cc70fa..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/exception
+++ /dev/null
@@ -1,68 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-dXCPT
-XCPT_TRY_START
-XCPT_TRY_END
-XCPT_CATCH
-XCPT_RETHROW
-
-=implementation
-
-#ifdef NO_XSLOCKS
-# ifdef dJMPENV
-# define dXCPT dJMPENV; int rEtV = 0
-# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0)
-# define XCPT_TRY_END JMPENV_POP;
-# define XCPT_CATCH if (rEtV != 0)
-# define XCPT_RETHROW JMPENV_JUMP(rEtV)
-# else
-# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0
-# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0)
-# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf);
-# define XCPT_CATCH if (rEtV != 0)
-# define XCPT_RETHROW Siglongjmp(top_env, rEtV)
-# endif
-#endif
-
-=xsmisc
-
-/* defined in module3.c */
-int exception(int throw_e);
-
-=xsubs
-
-int
-exception(throw_e)
- int throw_e
- OUTPUT:
- RETVAL
-
-=tests plan => 7
-
-my $rv;
-
-$Devel::PPPort::exception_caught = undef;
-
-$rv = eval { &Devel::PPPort::exception(0) };
-ok($@, '');
-ok(defined $rv);
-ok($rv, 42);
-ok($Devel::PPPort::exception_caught, 0);
-
-$Devel::PPPort::exception_caught = undef;
-
-$rv = eval { &Devel::PPPort::exception(1) };
-ok($@, "boo\n");
-ok(not defined $rv);
-ok($Devel::PPPort::exception_caught, 1);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/format b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/format
deleted file mode 100644
index 03c632d3baa..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/format
+++ /dev/null
@@ -1,63 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-/^#\s*define\s+(\w+)/
-
-=implementation
-
-#ifndef IVdf
-# if IVSIZE == LONGSIZE
-# define IVdf "ld"
-# define UVuf "lu"
-# define UVof "lo"
-# define UVxf "lx"
-# define UVXf "lX"
-# elif IVSIZE == INTSIZE
-# define IVdf "d"
-# define UVuf "u"
-# define UVof "o"
-# define UVxf "x"
-# define UVXf "X"
-# else
-# error "cannot define IV/UV formats"
-# endif
-#endif
-
-#ifndef NVef
-# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \
- defined(PERL_PRIfldbl) && { VERSION != 5.6.0 }
- /* Not very likely, but let's try anyway. */
-# define NVef PERL_PRIeldbl
-# define NVff PERL_PRIfldbl
-# define NVgf PERL_PRIgldbl
-# else
-# define NVef "e"
-# define NVff "f"
-# define NVgf "g"
-# endif
-#endif
-
-=xsubs
-
-void
-croak_NVgf(num)
- NV num
- PPCODE:
- Perl_croak(aTHX_ "%.20" NVgf "\n", num);
-
-=tests plan => 1
-
-my $num = 1.12345678901234567890;
-
-eval { Devel::PPPort::croak_NVgf($num) };
-ok($@ =~ /^1.1234567890/);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/grok b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/grok
deleted file mode 100644
index 9ca6627f1af..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/grok
+++ /dev/null
@@ -1,670 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-grok_hex
-grok_oct
-grok_bin
-grok_numeric_radix
-grok_number
-__UNDEFINED__
-
-=implementation
-
-__UNDEFINED__ IN_PERL_COMPILETIME (PL_curcop == &PL_compiling)
-__UNDEFINED__ IN_LOCALE_RUNTIME (PL_curcop->op_private & HINT_LOCALE)
-__UNDEFINED__ IN_LOCALE_COMPILETIME (PL_hints & HINT_LOCALE)
-__UNDEFINED__ IN_LOCALE (IN_PERL_COMPILETIME ? IN_LOCALE_COMPILETIME : IN_LOCALE_RUNTIME)
-
-__UNDEFINED__ IS_NUMBER_IN_UV 0x01
-__UNDEFINED__ IS_NUMBER_GREATER_THAN_UV_MAX 0x02
-__UNDEFINED__ IS_NUMBER_NOT_INT 0x04
-__UNDEFINED__ IS_NUMBER_NEG 0x08
-__UNDEFINED__ IS_NUMBER_INFINITY 0x10
-__UNDEFINED__ IS_NUMBER_NAN 0x20
-
-__UNDEFINED__ GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send)
-
-__UNDEFINED__ PERL_SCAN_GREATER_THAN_UV_MAX 0x02
-__UNDEFINED__ PERL_SCAN_SILENT_ILLDIGIT 0x04
-__UNDEFINED__ PERL_SCAN_ALLOW_UNDERSCORES 0x01
-__UNDEFINED__ PERL_SCAN_DISALLOW_PREFIX 0x02
-
-#ifndef grok_numeric_radix
-#if { NEED grok_numeric_radix }
-bool
-grok_numeric_radix(pTHX_ const char **sp, const char *send)
-{
-#ifdef USE_LOCALE_NUMERIC
-#ifdef PL_numeric_radix_sv
- if (PL_numeric_radix_sv && IN_LOCALE) {
- STRLEN len;
- char* radix = SvPV(PL_numeric_radix_sv, len);
- if (*sp + len <= send && memEQ(*sp, radix, len)) {
- *sp += len;
- return TRUE;
- }
- }
-#else
- /* older perls don't have PL_numeric_radix_sv so the radix
- * must manually be requested from locale.h
- */
-#include <locale.h>
- dTHR; /* needed for older threaded perls */
- struct lconv *lc = localeconv();
- char *radix = lc->decimal_point;
- if (radix && IN_LOCALE) {
- STRLEN len = strlen(radix);
- if (*sp + len <= send && memEQ(*sp, radix, len)) {
- *sp += len;
- return TRUE;
- }
- }
-#endif
-#endif /* USE_LOCALE_NUMERIC */
- /* always try "." if numeric radix didn't match because
- * we may have data from different locales mixed */
- if (*sp < send && **sp == '.') {
- ++*sp;
- return TRUE;
- }
- return FALSE;
-}
-#endif
-#endif
-
-#ifndef grok_number
-#if { NEED grok_number }
-int
-grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
-{
- const char *s = pv;
- const char *send = pv + len;
- const UV max_div_10 = UV_MAX / 10;
- const char max_mod_10 = UV_MAX % 10;
- int numtype = 0;
- int sawinf = 0;
- int sawnan = 0;
-
- while (s < send && isSPACE(*s))
- s++;
- if (s == send) {
- return 0;
- } else if (*s == '-') {
- s++;
- numtype = IS_NUMBER_NEG;
- }
- else if (*s == '+')
- s++;
-
- if (s == send)
- return 0;
-
- /* next must be digit or the radix separator or beginning of infinity */
- if (isDIGIT(*s)) {
- /* UVs are at least 32 bits, so the first 9 decimal digits cannot
- overflow. */
- UV value = *s - '0';
- /* This construction seems to be more optimiser friendly.
- (without it gcc does the isDIGIT test and the *s - '0' separately)
- With it gcc on arm is managing 6 instructions (6 cycles) per digit.
- In theory the optimiser could deduce how far to unroll the loop
- before checking for overflow. */
- if (++s < send) {
- int digit = *s - '0';
- if (digit >= 0 && digit <= 9) {
- value = value * 10 + digit;
- if (++s < send) {
- digit = *s - '0';
- if (digit >= 0 && digit <= 9) {
- value = value * 10 + digit;
- if (++s < send) {
- digit = *s - '0';
- if (digit >= 0 && digit <= 9) {
- value = value * 10 + digit;
- if (++s < send) {
- digit = *s - '0';
- if (digit >= 0 && digit <= 9) {
- value = value * 10 + digit;
- if (++s < send) {
- digit = *s - '0';
- if (digit >= 0 && digit <= 9) {
- value = value * 10 + digit;
- if (++s < send) {
- digit = *s - '0';
- if (digit >= 0 && digit <= 9) {
- value = value * 10 + digit;
- if (++s < send) {
- digit = *s - '0';
- if (digit >= 0 && digit <= 9) {
- value = value * 10 + digit;
- if (++s < send) {
- digit = *s - '0';
- if (digit >= 0 && digit <= 9) {
- value = value * 10 + digit;
- if (++s < send) {
- /* Now got 9 digits, so need to check
- each time for overflow. */
- digit = *s - '0';
- while (digit >= 0 && digit <= 9
- && (value < max_div_10
- || (value == max_div_10
- && digit <= max_mod_10))) {
- value = value * 10 + digit;
- if (++s < send)
- digit = *s - '0';
- else
- break;
- }
- if (digit >= 0 && digit <= 9
- && (s < send)) {
- /* value overflowed.
- skip the remaining digits, don't
- worry about setting *valuep. */
- do {
- s++;
- } while (s < send && isDIGIT(*s));
- numtype |=
- IS_NUMBER_GREATER_THAN_UV_MAX;
- goto skip_value;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- numtype |= IS_NUMBER_IN_UV;
- if (valuep)
- *valuep = value;
-
- skip_value:
- if (GROK_NUMERIC_RADIX(&s, send)) {
- numtype |= IS_NUMBER_NOT_INT;
- while (s < send && isDIGIT(*s)) /* optional digits after the radix */
- s++;
- }
- }
- else if (GROK_NUMERIC_RADIX(&s, send)) {
- numtype |= IS_NUMBER_NOT_INT | IS_NUMBER_IN_UV; /* valuep assigned below */
- /* no digits before the radix means we need digits after it */
- if (s < send && isDIGIT(*s)) {
- do {
- s++;
- } while (s < send && isDIGIT(*s));
- if (valuep) {
- /* integer approximation is valid - it's 0. */
- *valuep = 0;
- }
- }
- else
- return 0;
- } else if (*s == 'I' || *s == 'i') {
- s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
- s++; if (s == send || (*s != 'F' && *s != 'f')) return 0;
- s++; if (s < send && (*s == 'I' || *s == 'i')) {
- s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
- s++; if (s == send || (*s != 'I' && *s != 'i')) return 0;
- s++; if (s == send || (*s != 'T' && *s != 't')) return 0;
- s++; if (s == send || (*s != 'Y' && *s != 'y')) return 0;
- s++;
- }
- sawinf = 1;
- } else if (*s == 'N' || *s == 'n') {
- /* XXX TODO: There are signaling NaNs and quiet NaNs. */
- s++; if (s == send || (*s != 'A' && *s != 'a')) return 0;
- s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
- s++;
- sawnan = 1;
- } else
- return 0;
-
- if (sawinf) {
- numtype &= IS_NUMBER_NEG; /* Keep track of sign */
- numtype |= IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT;
- } else if (sawnan) {
- numtype &= IS_NUMBER_NEG; /* Keep track of sign */
- numtype |= IS_NUMBER_NAN | IS_NUMBER_NOT_INT;
- } else if (s < send) {
- /* we can have an optional exponent part */
- if (*s == 'e' || *s == 'E') {
- /* The only flag we keep is sign. Blow away any "it's UV" */
- numtype &= IS_NUMBER_NEG;
- numtype |= IS_NUMBER_NOT_INT;
- s++;
- if (s < send && (*s == '-' || *s == '+'))
- s++;
- if (s < send && isDIGIT(*s)) {
- do {
- s++;
- } while (s < send && isDIGIT(*s));
- }
- else
- return 0;
- }
- }
- while (s < send && isSPACE(*s))
- s++;
- if (s >= send)
- return numtype;
- if (len == 10 && memEQ(pv, "0 but true", 10)) {
- if (valuep)
- *valuep = 0;
- return IS_NUMBER_IN_UV;
- }
- return 0;
-}
-#endif
-#endif
-
-/*
- * The grok_* routines have been modified to use warn() instead of
- * Perl_warner(). Also, 'hexdigit' was the former name of PL_hexdigit,
- * which is why the stack variable has been renamed to 'xdigit'.
- */
-
-#ifndef grok_bin
-#if { NEED grok_bin }
-UV
-grok_bin(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
-{
- const char *s = start;
- STRLEN len = *len_p;
- UV value = 0;
- NV value_nv = 0;
-
- const UV max_div_2 = UV_MAX / 2;
- bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
- bool overflowed = FALSE;
-
- if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) {
- /* strip off leading b or 0b.
- for compatibility silently suffer "b" and "0b" as valid binary
- numbers. */
- if (len >= 1) {
- if (s[0] == 'b') {
- s++;
- len--;
- }
- else if (len >= 2 && s[0] == '0' && s[1] == 'b') {
- s+=2;
- len-=2;
- }
- }
- }
-
- for (; len-- && *s; s++) {
- char bit = *s;
- if (bit == '0' || bit == '1') {
- /* Write it in this wonky order with a goto to attempt to get the
- compiler to make the common case integer-only loop pretty tight.
- With gcc seems to be much straighter code than old scan_bin. */
- redo:
- if (!overflowed) {
- if (value <= max_div_2) {
- value = (value << 1) | (bit - '0');
- continue;
- }
- /* Bah. We're just overflowed. */
- warn("Integer overflow in binary number");
- overflowed = TRUE;
- value_nv = (NV) value;
- }
- value_nv *= 2.0;
- /* If an NV has not enough bits in its mantissa to
- * represent a UV this summing of small low-order numbers
- * is a waste of time (because the NV cannot preserve
- * the low-order bits anyway): we could just remember when
- * did we overflow and in the end just multiply value_nv by the
- * right amount. */
- value_nv += (NV)(bit - '0');
- continue;
- }
- if (bit == '_' && len && allow_underscores && (bit = s[1])
- && (bit == '0' || bit == '1'))
- {
- --len;
- ++s;
- goto redo;
- }
- if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
- warn("Illegal binary digit '%c' ignored", *s);
- break;
- }
-
- if ( ( overflowed && value_nv > 4294967295.0)
-#if UVSIZE > 4
- || (!overflowed && value > 0xffffffff )
-#endif
- ) {
- warn("Binary number > 0b11111111111111111111111111111111 non-portable");
- }
- *len_p = s - start;
- if (!overflowed) {
- *flags = 0;
- return value;
- }
- *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
- if (result)
- *result = value_nv;
- return UV_MAX;
-}
-#endif
-#endif
-
-#ifndef grok_hex
-#if { NEED grok_hex }
-UV
-grok_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
-{
- const char *s = start;
- STRLEN len = *len_p;
- UV value = 0;
- NV value_nv = 0;
-
- const UV max_div_16 = UV_MAX / 16;
- bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
- bool overflowed = FALSE;
- const char *xdigit;
-
- if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) {
- /* strip off leading x or 0x.
- for compatibility silently suffer "x" and "0x" as valid hex numbers.
- */
- if (len >= 1) {
- if (s[0] == 'x') {
- s++;
- len--;
- }
- else if (len >= 2 && s[0] == '0' && s[1] == 'x') {
- s+=2;
- len-=2;
- }
- }
- }
-
- for (; len-- && *s; s++) {
- xdigit = strchr((char *) PL_hexdigit, *s);
- if (xdigit) {
- /* Write it in this wonky order with a goto to attempt to get the
- compiler to make the common case integer-only loop pretty tight.
- With gcc seems to be much straighter code than old scan_hex. */
- redo:
- if (!overflowed) {
- if (value <= max_div_16) {
- value = (value << 4) | ((xdigit - PL_hexdigit) & 15);
- continue;
- }
- warn("Integer overflow in hexadecimal number");
- overflowed = TRUE;
- value_nv = (NV) value;
- }
- value_nv *= 16.0;
- /* If an NV has not enough bits in its mantissa to
- * represent a UV this summing of small low-order numbers
- * is a waste of time (because the NV cannot preserve
- * the low-order bits anyway): we could just remember when
- * did we overflow and in the end just multiply value_nv by the
- * right amount of 16-tuples. */
- value_nv += (NV)((xdigit - PL_hexdigit) & 15);
- continue;
- }
- if (*s == '_' && len && allow_underscores && s[1]
- && (xdigit = strchr((char *) PL_hexdigit, s[1])))
- {
- --len;
- ++s;
- goto redo;
- }
- if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
- warn("Illegal hexadecimal digit '%c' ignored", *s);
- break;
- }
-
- if ( ( overflowed && value_nv > 4294967295.0)
-#if UVSIZE > 4
- || (!overflowed && value > 0xffffffff )
-#endif
- ) {
- warn("Hexadecimal number > 0xffffffff non-portable");
- }
- *len_p = s - start;
- if (!overflowed) {
- *flags = 0;
- return value;
- }
- *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
- if (result)
- *result = value_nv;
- return UV_MAX;
-}
-#endif
-#endif
-
-#ifndef grok_oct
-#if { NEED grok_oct }
-UV
-grok_oct(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
-{
- const char *s = start;
- STRLEN len = *len_p;
- UV value = 0;
- NV value_nv = 0;
-
- const UV max_div_8 = UV_MAX / 8;
- bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
- bool overflowed = FALSE;
-
- for (; len-- && *s; s++) {
- /* gcc 2.95 optimiser not smart enough to figure that this subtraction
- out front allows slicker code. */
- int digit = *s - '0';
- if (digit >= 0 && digit <= 7) {
- /* Write it in this wonky order with a goto to attempt to get the
- compiler to make the common case integer-only loop pretty tight.
- */
- redo:
- if (!overflowed) {
- if (value <= max_div_8) {
- value = (value << 3) | digit;
- continue;
- }
- /* Bah. We're just overflowed. */
- warn("Integer overflow in octal number");
- overflowed = TRUE;
- value_nv = (NV) value;
- }
- value_nv *= 8.0;
- /* If an NV has not enough bits in its mantissa to
- * represent a UV this summing of small low-order numbers
- * is a waste of time (because the NV cannot preserve
- * the low-order bits anyway): we could just remember when
- * did we overflow and in the end just multiply value_nv by the
- * right amount of 8-tuples. */
- value_nv += (NV)digit;
- continue;
- }
- if (digit == ('_' - '0') && len && allow_underscores
- && (digit = s[1] - '0') && (digit >= 0 && digit <= 7))
- {
- --len;
- ++s;
- goto redo;
- }
- /* Allow \octal to work the DWIM way (that is, stop scanning
- * as soon as non-octal characters are seen, complain only iff
- * someone seems to want to use the digits eight and nine). */
- if (digit == 8 || digit == 9) {
- if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
- warn("Illegal octal digit '%c' ignored", *s);
- }
- break;
- }
-
- if ( ( overflowed && value_nv > 4294967295.0)
-#if UVSIZE > 4
- || (!overflowed && value > 0xffffffff )
-#endif
- ) {
- warn("Octal number > 037777777777 non-portable");
- }
- *len_p = s - start;
- if (!overflowed) {
- *flags = 0;
- return value;
- }
- *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
- if (result)
- *result = value_nv;
- return UV_MAX;
-}
-#endif
-#endif
-
-=xsinit
-
-#define NEED_grok_number
-#define NEED_grok_numeric_radix
-#define NEED_grok_bin
-#define NEED_grok_hex
-#define NEED_grok_oct
-
-=xsubs
-
-UV
-grok_number(string)
- SV *string
- PREINIT:
- const char *pv;
- STRLEN len;
- CODE:
- pv = SvPV(string, len);
- if (!grok_number(pv, len, &RETVAL))
- XSRETURN_UNDEF;
- OUTPUT:
- RETVAL
-
-UV
-grok_bin(string)
- SV *string
- PREINIT:
- char *pv;
- I32 flags = 0;
- STRLEN len;
- CODE:
- pv = SvPV(string, len);
- RETVAL = grok_bin(pv, &len, &flags, NULL);
- OUTPUT:
- RETVAL
-
-UV
-grok_hex(string)
- SV *string
- PREINIT:
- char *pv;
- I32 flags = 0;
- STRLEN len;
- CODE:
- pv = SvPV(string, len);
- RETVAL = grok_hex(pv, &len, &flags, NULL);
- OUTPUT:
- RETVAL
-
-UV
-grok_oct(string)
- SV *string
- PREINIT:
- char *pv;
- I32 flags = 0;
- STRLEN len;
- CODE:
- pv = SvPV(string, len);
- RETVAL = grok_oct(pv, &len, &flags, NULL);
- OUTPUT:
- RETVAL
-
-UV
-Perl_grok_number(string)
- SV *string
- PREINIT:
- const char *pv;
- STRLEN len;
- CODE:
- pv = SvPV(string, len);
- if (!Perl_grok_number(aTHX_ pv, len, &RETVAL))
- XSRETURN_UNDEF;
- OUTPUT:
- RETVAL
-
-UV
-Perl_grok_bin(string)
- SV *string
- PREINIT:
- char *pv;
- I32 flags = 0;
- STRLEN len;
- CODE:
- pv = SvPV(string, len);
- RETVAL = Perl_grok_bin(aTHX_ pv, &len, &flags, NULL);
- OUTPUT:
- RETVAL
-
-UV
-Perl_grok_hex(string)
- SV *string
- PREINIT:
- char *pv;
- I32 flags = 0;
- STRLEN len;
- CODE:
- pv = SvPV(string, len);
- RETVAL = Perl_grok_hex(aTHX_ pv, &len, &flags, NULL);
- OUTPUT:
- RETVAL
-
-UV
-Perl_grok_oct(string)
- SV *string
- PREINIT:
- char *pv;
- I32 flags = 0;
- STRLEN len;
- CODE:
- pv = SvPV(string, len);
- RETVAL = Perl_grok_oct(aTHX_ pv, &len, &flags, NULL);
- OUTPUT:
- RETVAL
-
-=tests plan => 10
-
-ok(&Devel::PPPort::grok_number("42"), 42);
-ok(!defined(&Devel::PPPort::grok_number("A")));
-ok(&Devel::PPPort::grok_bin("10000001"), 129);
-ok(&Devel::PPPort::grok_hex("deadbeef"), 0xdeadbeef);
-ok(&Devel::PPPort::grok_oct("377"), 255);
-
-ok(&Devel::PPPort::Perl_grok_number("42"), 42);
-ok(!defined(&Devel::PPPort::Perl_grok_number("A")));
-ok(&Devel::PPPort::Perl_grok_bin("10000001"), 129);
-ok(&Devel::PPPort::Perl_grok_hex("deadbeef"), 0xdeadbeef);
-ok(&Devel::PPPort::Perl_grok_oct("377"), 255);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/gv b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/gv
deleted file mode 100644
index 62afb5b6ee6..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/gv
+++ /dev/null
@@ -1,99 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-
-=implementation
-
-__UNDEFINED__ GvSVn(gv) GvSV(gv)
-__UNDEFINED__ isGV_with_GP(gv) isGV(gv)
-__UNDEFINED__ gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt)
-__UNDEFINED__ gv_fetchsv(name, flags, svt) gv_fetchpv(SvPV_nolen_const(name), flags, svt)
-
-__UNDEFINED__ get_cvn_flags(name, namelen, flags) get_cv(name, flags)
-
-=xsubs
-
-int
-GvSVn()
- PREINIT:
- GV* gv;
- CODE:
- RETVAL = 0;
- gv = gv_fetchpvs("Devel::PPPort::GvTest", GV_ADDMULTI, SVt_PVGV);
- if (GvSVn(gv) != NULL)
- {
- RETVAL++;
- }
- OUTPUT:
- RETVAL
-
-int
-isGV_with_GP()
- PREINIT:
- GV* gv;
- CODE:
- RETVAL = 0;
- gv = gv_fetchpvs("Devel::PPPort::GvTest", GV_ADDMULTI, SVt_PVGV);
- if (isGV_with_GP(gv))
- {
- RETVAL++;
- }
- if (!isGV(&PL_sv_undef))
- {
- RETVAL++;
- }
- OUTPUT:
- RETVAL
-
-int
-get_cvn_flags()
- PREINIT:
- CV* xv;
- CODE:
- RETVAL = 0;
- xv = get_cvn_flags("Devel::PPPort::foobar", sizeof("Devel::PPPort::foobar")-1, 0);
- if(xv == NULL) RETVAL++;
- xv = get_cvn_flags("Devel::PPPort::foobar", sizeof("Devel::PPPort::foobar")-1, GV_ADDMULTI);
- if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
- xv = get_cvn_flags("Devel::PPPort::get_cvn_flags", sizeof("Devel::PPPort::get_cvn_flags")-1, 0);
- if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
- OUTPUT:
- RETVAL
-
-SV*
-gv_fetchpvn_flags()
- CODE:
- RETVAL = newRV_inc((SV*)gv_fetchpvn_flags("Devel::PPPort::VERSION", sizeof("Devel::PPPort::VERSION")-1, 0, SVt_PV));
- OUTPUT:
- RETVAL
-
-SV*
-gv_fetchsv(name)
- SV *name
- CODE:
- RETVAL = newRV_inc((SV*)gv_fetchsv(name, 0, SVt_PV));
- OUTPUT:
- RETVAL
-
-=tests plan => 5
-
-ok(Devel::PPPort::GvSVn(), 1);
-
-ok(Devel::PPPort::isGV_with_GP(), 2);
-
-ok(Devel::PPPort::get_cvn_flags(), 3);
-
-ok(Devel::PPPort::gv_fetchpvn_flags(), \*Devel::PPPort::VERSION);
-
-ok(Devel::PPPort::gv_fetchsv("Devel::PPPort::VERSION"), \*Devel::PPPort::VERSION);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/limits b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/limits
deleted file mode 100644
index 778383d9a05..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/limits
+++ /dev/null
@@ -1,326 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-PERL_UCHAR_MIN
-PERL_UCHAR_MAX
-PERL_USHORT_MIN
-PERL_USHORT_MAX
-PERL_SHORT_MAX
-PERL_SHORT_MIN
-PERL_UINT_MAX
-PERL_UINT_MIN
-PERL_INT_MAX
-PERL_INT_MIN
-PERL_ULONG_MAX
-PERL_ULONG_MIN
-PERL_LONG_MAX
-PERL_LONG_MIN
-PERL_UQUAD_MAX
-PERL_UQUAD_MIN
-PERL_QUAD_MAX
-PERL_QUAD_MIN
-IVSIZE
-UVSIZE
-IVTYPE
-UVTYPE
-
-=implementation
-
-#ifdef I_LIMITS
-# include <limits.h>
-#endif
-
-#ifndef PERL_UCHAR_MIN
-# define PERL_UCHAR_MIN ((unsigned char)0)
-#endif
-
-#ifndef PERL_UCHAR_MAX
-# ifdef UCHAR_MAX
-# define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX)
-# else
-# ifdef MAXUCHAR
-# define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR)
-# else
-# define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0)
-# endif
-# endif
-#endif
-
-#ifndef PERL_USHORT_MIN
-# define PERL_USHORT_MIN ((unsigned short)0)
-#endif
-
-#ifndef PERL_USHORT_MAX
-# ifdef USHORT_MAX
-# define PERL_USHORT_MAX ((unsigned short)USHORT_MAX)
-# else
-# ifdef MAXUSHORT
-# define PERL_USHORT_MAX ((unsigned short)MAXUSHORT)
-# else
-# ifdef USHRT_MAX
-# define PERL_USHORT_MAX ((unsigned short)USHRT_MAX)
-# else
-# define PERL_USHORT_MAX ((unsigned short)~(unsigned)0)
-# endif
-# endif
-# endif
-#endif
-
-#ifndef PERL_SHORT_MAX
-# ifdef SHORT_MAX
-# define PERL_SHORT_MAX ((short)SHORT_MAX)
-# else
-# ifdef MAXSHORT /* Often used in <values.h> */
-# define PERL_SHORT_MAX ((short)MAXSHORT)
-# else
-# ifdef SHRT_MAX
-# define PERL_SHORT_MAX ((short)SHRT_MAX)
-# else
-# define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1))
-# endif
-# endif
-# endif
-#endif
-
-#ifndef PERL_SHORT_MIN
-# ifdef SHORT_MIN
-# define PERL_SHORT_MIN ((short)SHORT_MIN)
-# else
-# ifdef MINSHORT
-# define PERL_SHORT_MIN ((short)MINSHORT)
-# else
-# ifdef SHRT_MIN
-# define PERL_SHORT_MIN ((short)SHRT_MIN)
-# else
-# define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3))
-# endif
-# endif
-# endif
-#endif
-
-#ifndef PERL_UINT_MAX
-# ifdef UINT_MAX
-# define PERL_UINT_MAX ((unsigned int)UINT_MAX)
-# else
-# ifdef MAXUINT
-# define PERL_UINT_MAX ((unsigned int)MAXUINT)
-# else
-# define PERL_UINT_MAX (~(unsigned int)0)
-# endif
-# endif
-#endif
-
-#ifndef PERL_UINT_MIN
-# define PERL_UINT_MIN ((unsigned int)0)
-#endif
-
-#ifndef PERL_INT_MAX
-# ifdef INT_MAX
-# define PERL_INT_MAX ((int)INT_MAX)
-# else
-# ifdef MAXINT /* Often used in <values.h> */
-# define PERL_INT_MAX ((int)MAXINT)
-# else
-# define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1))
-# endif
-# endif
-#endif
-
-#ifndef PERL_INT_MIN
-# ifdef INT_MIN
-# define PERL_INT_MIN ((int)INT_MIN)
-# else
-# ifdef MININT
-# define PERL_INT_MIN ((int)MININT)
-# else
-# define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3))
-# endif
-# endif
-#endif
-
-#ifndef PERL_ULONG_MAX
-# ifdef ULONG_MAX
-# define PERL_ULONG_MAX ((unsigned long)ULONG_MAX)
-# else
-# ifdef MAXULONG
-# define PERL_ULONG_MAX ((unsigned long)MAXULONG)
-# else
-# define PERL_ULONG_MAX (~(unsigned long)0)
-# endif
-# endif
-#endif
-
-#ifndef PERL_ULONG_MIN
-# define PERL_ULONG_MIN ((unsigned long)0L)
-#endif
-
-#ifndef PERL_LONG_MAX
-# ifdef LONG_MAX
-# define PERL_LONG_MAX ((long)LONG_MAX)
-# else
-# ifdef MAXLONG
-# define PERL_LONG_MAX ((long)MAXLONG)
-# else
-# define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1))
-# endif
-# endif
-#endif
-
-#ifndef PERL_LONG_MIN
-# ifdef LONG_MIN
-# define PERL_LONG_MIN ((long)LONG_MIN)
-# else
-# ifdef MINLONG
-# define PERL_LONG_MIN ((long)MINLONG)
-# else
-# define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3))
-# endif
-# endif
-#endif
-
-#if defined(HAS_QUAD) && (defined(convex) || defined(uts))
-# ifndef PERL_UQUAD_MAX
-# ifdef ULONGLONG_MAX
-# define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX)
-# else
-# ifdef MAXULONGLONG
-# define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG)
-# else
-# define PERL_UQUAD_MAX (~(unsigned long long)0)
-# endif
-# endif
-# endif
-
-# ifndef PERL_UQUAD_MIN
-# define PERL_UQUAD_MIN ((unsigned long long)0L)
-# endif
-
-# ifndef PERL_QUAD_MAX
-# ifdef LONGLONG_MAX
-# define PERL_QUAD_MAX ((long long)LONGLONG_MAX)
-# else
-# ifdef MAXLONGLONG
-# define PERL_QUAD_MAX ((long long)MAXLONGLONG)
-# else
-# define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1))
-# endif
-# endif
-# endif
-
-# ifndef PERL_QUAD_MIN
-# ifdef LONGLONG_MIN
-# define PERL_QUAD_MIN ((long long)LONGLONG_MIN)
-# else
-# ifdef MINLONGLONG
-# define PERL_QUAD_MIN ((long long)MINLONGLONG)
-# else
-# define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3))
-# endif
-# endif
-# endif
-#endif
-
-/* This is based on code from 5.003 perl.h */
-#ifdef HAS_QUAD
-# ifdef cray
- __UNDEFINED__ IVTYPE int
- __UNDEFINED__ IV_MIN PERL_INT_MIN
- __UNDEFINED__ IV_MAX PERL_INT_MAX
- __UNDEFINED__ UV_MIN PERL_UINT_MIN
- __UNDEFINED__ UV_MAX PERL_UINT_MAX
-# ifdef INTSIZE
- __UNDEFINED__ IVSIZE INTSIZE
-# endif
-# else
-# if defined(convex) || defined(uts)
- __UNDEFINED__ IVTYPE long long
- __UNDEFINED__ IV_MIN PERL_QUAD_MIN
- __UNDEFINED__ IV_MAX PERL_QUAD_MAX
- __UNDEFINED__ UV_MIN PERL_UQUAD_MIN
- __UNDEFINED__ UV_MAX PERL_UQUAD_MAX
-# ifdef LONGLONGSIZE
- __UNDEFINED__ IVSIZE LONGLONGSIZE
-# endif
-# else
- __UNDEFINED__ IVTYPE long
- __UNDEFINED__ IV_MIN PERL_LONG_MIN
- __UNDEFINED__ IV_MAX PERL_LONG_MAX
- __UNDEFINED__ UV_MIN PERL_ULONG_MIN
- __UNDEFINED__ UV_MAX PERL_ULONG_MAX
-# ifdef LONGSIZE
- __UNDEFINED__ IVSIZE LONGSIZE
-# endif
-# endif
-# endif
- __UNDEFINED__ IVSIZE 8
- __UNDEFINED__ LONGSIZE 8
- __UNDEFINED__ PERL_QUAD_MIN IV_MIN
- __UNDEFINED__ PERL_QUAD_MAX IV_MAX
- __UNDEFINED__ PERL_UQUAD_MIN UV_MIN
- __UNDEFINED__ PERL_UQUAD_MAX UV_MAX
-#else
- __UNDEFINED__ IVTYPE long
- __UNDEFINED__ LONGSIZE 4
- __UNDEFINED__ IV_MIN PERL_LONG_MIN
- __UNDEFINED__ IV_MAX PERL_LONG_MAX
- __UNDEFINED__ UV_MIN PERL_ULONG_MIN
- __UNDEFINED__ UV_MAX PERL_ULONG_MAX
-#endif
-
-#ifndef IVSIZE
-# ifdef LONGSIZE
-# define IVSIZE LONGSIZE
-# else
-# define IVSIZE 4 /* A bold guess, but the best we can make. */
-# endif
-#endif
-
-__UNDEFINED__ UVTYPE unsigned IVTYPE
-__UNDEFINED__ UVSIZE IVSIZE
-
-=xsubs
-
-IV
-iv_size()
- CODE:
- RETVAL = IVSIZE == sizeof(IV);
- OUTPUT:
- RETVAL
-
-IV
-uv_size()
- CODE:
- RETVAL = UVSIZE == sizeof(UV);
- OUTPUT:
- RETVAL
-
-IV
-iv_type()
- CODE:
- RETVAL = sizeof(IVTYPE) == sizeof(IV);
- OUTPUT:
- RETVAL
-
-IV
-uv_type()
- CODE:
- RETVAL = sizeof(UVTYPE) == sizeof(UV);
- OUTPUT:
- RETVAL
-
-=tests plan => 4
-
-ok(&Devel::PPPort::iv_size());
-ok(&Devel::PPPort::uv_size());
-ok(&Devel::PPPort::iv_type());
-ok(&Devel::PPPort::uv_type());
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/mPUSH b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/mPUSH
deleted file mode 100644
index a17972c7082..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/mPUSH
+++ /dev/null
@@ -1,131 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-
-=implementation
-
-__UNDEFINED__ mPUSHs(s) PUSHs(sv_2mortal(s))
-__UNDEFINED__ PUSHmortal PUSHs(sv_newmortal())
-__UNDEFINED__ mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l))
-__UNDEFINED__ mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n))
-__UNDEFINED__ mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i))
-__UNDEFINED__ mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u))
-
-__UNDEFINED__ mXPUSHs(s) XPUSHs(sv_2mortal(s))
-__UNDEFINED__ XPUSHmortal XPUSHs(sv_newmortal())
-__UNDEFINED__ mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END
-__UNDEFINED__ mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END
-__UNDEFINED__ mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END
-__UNDEFINED__ mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END
-
-=xsubs
-
-void
-mPUSHs()
- PPCODE:
- EXTEND(SP, 3);
- mPUSHs(newSVpv("foo", 0));
- mPUSHs(newSVpv("bar13", 3));
- mPUSHs(newSViv(42));
- XSRETURN(3);
-
-void
-mPUSHp()
- PPCODE:
- EXTEND(SP, 3);
- mPUSHp("one", 3);
- mPUSHp("two", 3);
- mPUSHp("three", 5);
- XSRETURN(3);
-
-void
-mPUSHn()
- PPCODE:
- EXTEND(SP, 3);
- mPUSHn(0.5);
- mPUSHn(-0.25);
- mPUSHn(0.125);
- XSRETURN(3);
-
-void
-mPUSHi()
- PPCODE:
- EXTEND(SP, 3);
- mPUSHi(-1);
- mPUSHi(2);
- mPUSHi(-3);
- XSRETURN(3);
-
-void
-mPUSHu()
- PPCODE:
- EXTEND(SP, 3);
- mPUSHu(1);
- mPUSHu(2);
- mPUSHu(3);
- XSRETURN(3);
-
-void
-mXPUSHs()
- PPCODE:
- mXPUSHs(newSVpv("foo", 0));
- mXPUSHs(newSVpv("bar13", 3));
- mXPUSHs(newSViv(42));
- XSRETURN(3);
-
-void
-mXPUSHp()
- PPCODE:
- mXPUSHp("one", 3);
- mXPUSHp("two", 3);
- mXPUSHp("three", 5);
- XSRETURN(3);
-
-void
-mXPUSHn()
- PPCODE:
- mXPUSHn(0.5);
- mXPUSHn(-0.25);
- mXPUSHn(0.125);
- XSRETURN(3);
-
-void
-mXPUSHi()
- PPCODE:
- mXPUSHi(-1);
- mXPUSHi(2);
- mXPUSHi(-3);
- XSRETURN(3);
-
-void
-mXPUSHu()
- PPCODE:
- mXPUSHu(1);
- mXPUSHu(2);
- mXPUSHu(3);
- XSRETURN(3);
-
-=tests plan => 10
-
-ok(join(':', &Devel::PPPort::mPUSHs()), "foo:bar:42");
-ok(join(':', &Devel::PPPort::mPUSHp()), "one:two:three");
-ok(join(':', &Devel::PPPort::mPUSHn()), "0.5:-0.25:0.125");
-ok(join(':', &Devel::PPPort::mPUSHi()), "-1:2:-3");
-ok(join(':', &Devel::PPPort::mPUSHu()), "1:2:3");
-
-ok(join(':', &Devel::PPPort::mXPUSHs()), "foo:bar:42");
-ok(join(':', &Devel::PPPort::mXPUSHp()), "one:two:three");
-ok(join(':', &Devel::PPPort::mXPUSHn()), "0.5:-0.25:0.125");
-ok(join(':', &Devel::PPPort::mXPUSHi()), "-1:2:-3");
-ok(join(':', &Devel::PPPort::mXPUSHu()), "1:2:3");
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/magic b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/magic
deleted file mode 100644
index a99cd805f02..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/magic
+++ /dev/null
@@ -1,611 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-mg_findext
-sv_unmagicext
-
-__UNDEFINED__
-/sv_\w+_mg/
-sv_magic_portable
-MUTABLE_PTR
-MUTABLE_SV
-
-=implementation
-
-__UNDEFINED__ SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END
-
-/* Some random bits for sv_unmagicext. These should probably be pulled in for
- real and organized at some point */
-
-__UNDEFINED__ HEf_SVKEY -2
-
-#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
-# define MUTABLE_PTR(p) ({ void *_p = (p); _p; })
-#else
-# define MUTABLE_PTR(p) ((void *) (p))
-#endif
-
-#define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p))
-
-/* end of random bits */
-
-__UNDEFINED__ PERL_MAGIC_sv '\0'
-__UNDEFINED__ PERL_MAGIC_overload 'A'
-__UNDEFINED__ PERL_MAGIC_overload_elem 'a'
-__UNDEFINED__ PERL_MAGIC_overload_table 'c'
-__UNDEFINED__ PERL_MAGIC_bm 'B'
-__UNDEFINED__ PERL_MAGIC_regdata 'D'
-__UNDEFINED__ PERL_MAGIC_regdatum 'd'
-__UNDEFINED__ PERL_MAGIC_env 'E'
-__UNDEFINED__ PERL_MAGIC_envelem 'e'
-__UNDEFINED__ PERL_MAGIC_fm 'f'
-__UNDEFINED__ PERL_MAGIC_regex_global 'g'
-__UNDEFINED__ PERL_MAGIC_isa 'I'
-__UNDEFINED__ PERL_MAGIC_isaelem 'i'
-__UNDEFINED__ PERL_MAGIC_nkeys 'k'
-__UNDEFINED__ PERL_MAGIC_dbfile 'L'
-__UNDEFINED__ PERL_MAGIC_dbline 'l'
-__UNDEFINED__ PERL_MAGIC_mutex 'm'
-__UNDEFINED__ PERL_MAGIC_shared 'N'
-__UNDEFINED__ PERL_MAGIC_shared_scalar 'n'
-__UNDEFINED__ PERL_MAGIC_collxfrm 'o'
-__UNDEFINED__ PERL_MAGIC_tied 'P'
-__UNDEFINED__ PERL_MAGIC_tiedelem 'p'
-__UNDEFINED__ PERL_MAGIC_tiedscalar 'q'
-__UNDEFINED__ PERL_MAGIC_qr 'r'
-__UNDEFINED__ PERL_MAGIC_sig 'S'
-__UNDEFINED__ PERL_MAGIC_sigelem 's'
-__UNDEFINED__ PERL_MAGIC_taint 't'
-__UNDEFINED__ PERL_MAGIC_uvar 'U'
-__UNDEFINED__ PERL_MAGIC_uvar_elem 'u'
-__UNDEFINED__ PERL_MAGIC_vstring 'V'
-__UNDEFINED__ PERL_MAGIC_vec 'v'
-__UNDEFINED__ PERL_MAGIC_utf8 'w'
-__UNDEFINED__ PERL_MAGIC_substr 'x'
-__UNDEFINED__ PERL_MAGIC_defelem 'y'
-__UNDEFINED__ PERL_MAGIC_glob '*'
-__UNDEFINED__ PERL_MAGIC_arylen '#'
-__UNDEFINED__ PERL_MAGIC_pos '.'
-__UNDEFINED__ PERL_MAGIC_backref '<'
-__UNDEFINED__ PERL_MAGIC_ext '~'
-
-/* That's the best we can do... */
-__UNDEFINED__ sv_catpvn_nomg sv_catpvn
-__UNDEFINED__ sv_catsv_nomg sv_catsv
-__UNDEFINED__ sv_setsv_nomg sv_setsv
-__UNDEFINED__ sv_pvn_nomg sv_pvn
-__UNDEFINED__ SvIV_nomg SvIV
-__UNDEFINED__ SvUV_nomg SvUV
-
-#ifndef sv_catpv_mg
-# define sv_catpv_mg(sv, ptr) \
- STMT_START { \
- SV *TeMpSv = sv; \
- sv_catpv(TeMpSv,ptr); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_catpvn_mg
-# define sv_catpvn_mg(sv, ptr, len) \
- STMT_START { \
- SV *TeMpSv = sv; \
- sv_catpvn(TeMpSv,ptr,len); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_catsv_mg
-# define sv_catsv_mg(dsv, ssv) \
- STMT_START { \
- SV *TeMpSv = dsv; \
- sv_catsv(TeMpSv,ssv); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_setiv_mg
-# define sv_setiv_mg(sv, i) \
- STMT_START { \
- SV *TeMpSv = sv; \
- sv_setiv(TeMpSv,i); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_setnv_mg
-# define sv_setnv_mg(sv, num) \
- STMT_START { \
- SV *TeMpSv = sv; \
- sv_setnv(TeMpSv,num); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_setpv_mg
-# define sv_setpv_mg(sv, ptr) \
- STMT_START { \
- SV *TeMpSv = sv; \
- sv_setpv(TeMpSv,ptr); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_setpvn_mg
-# define sv_setpvn_mg(sv, ptr, len) \
- STMT_START { \
- SV *TeMpSv = sv; \
- sv_setpvn(TeMpSv,ptr,len); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_setsv_mg
-# define sv_setsv_mg(dsv, ssv) \
- STMT_START { \
- SV *TeMpSv = dsv; \
- sv_setsv(TeMpSv,ssv); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_setuv_mg
-# define sv_setuv_mg(sv, i) \
- STMT_START { \
- SV *TeMpSv = sv; \
- sv_setuv(TeMpSv,i); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-#ifndef sv_usepvn_mg
-# define sv_usepvn_mg(sv, ptr, len) \
- STMT_START { \
- SV *TeMpSv = sv; \
- sv_usepvn(TeMpSv,ptr,len); \
- SvSETMAGIC(TeMpSv); \
- } STMT_END
-#endif
-
-__UNDEFINED__ SvVSTRING_mg(sv) (SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_vstring) : NULL)
-
-/* Hint: sv_magic_portable
- * This is a compatibility function that is only available with
- * Devel::PPPort. It is NOT in the perl core.
- * Its purpose is to mimic the 5.8.0 behaviour of sv_magic() when
- * it is being passed a name pointer with namlen == 0. In that
- * case, perl 5.8.0 and later store the pointer, not a copy of it.
- * The compatibility can be provided back to perl 5.004. With
- * earlier versions, the code will not compile.
- */
-
-#if { VERSION < 5.004 }
-
- /* code that uses sv_magic_portable will not compile */
-
-#elif { VERSION < 5.8.0 }
-
-# define sv_magic_portable(sv, obj, how, name, namlen) \
- STMT_START { \
- SV *SvMp_sv = (sv); \
- char *SvMp_name = (char *) (name); \
- I32 SvMp_namlen = (namlen); \
- if (SvMp_name && SvMp_namlen == 0) \
- { \
- MAGIC *mg; \
- sv_magic(SvMp_sv, obj, how, 0, 0); \
- mg = SvMAGIC(SvMp_sv); \
- mg->mg_len = -42; /* XXX: this is the tricky part */ \
- mg->mg_ptr = SvMp_name; \
- } \
- else \
- { \
- sv_magic(SvMp_sv, obj, how, SvMp_name, SvMp_namlen); \
- } \
- } STMT_END
-
-#else
-
-# define sv_magic_portable(a, b, c, d, e) sv_magic(a, b, c, d, e)
-
-#endif
-
-#if !defined(mg_findext)
-#if { NEED mg_findext }
-
-MAGIC *
-mg_findext(SV * sv, int type, const MGVTBL *vtbl) {
- if (sv) {
- MAGIC *mg;
-
-#ifdef AvPAD_NAMELIST
- assert(!(SvTYPE(sv) == SVt_PVAV && AvPAD_NAMELIST(sv)));
-#endif
-
- for (mg = SvMAGIC (sv); mg; mg = mg->mg_moremagic) {
- if (mg->mg_type == type && mg->mg_virtual == vtbl)
- return mg;
- }
- }
-
- return NULL;
-}
-
-#endif
-#endif
-
-#if !defined(sv_unmagicext)
-#if { NEED sv_unmagicext }
-
-int
-sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl)
-{
- MAGIC* mg;
- MAGIC** mgp;
-
- if (SvTYPE(sv) < SVt_PVMG || !SvMAGIC(sv))
- return 0;
- mgp = &(SvMAGIC(sv));
- for (mg = *mgp; mg; mg = *mgp) {
- const MGVTBL* const virt = mg->mg_virtual;
- if (mg->mg_type == type && virt == vtbl) {
- *mgp = mg->mg_moremagic;
- if (virt && virt->svt_free)
- virt->svt_free(aTHX_ sv, mg);
- if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) {
- if (mg->mg_len > 0)
- Safefree(mg->mg_ptr);
- else if (mg->mg_len == HEf_SVKEY) /* Questionable on older perls... */
- SvREFCNT_dec(MUTABLE_SV(mg->mg_ptr));
- else if (mg->mg_type == PERL_MAGIC_utf8)
- Safefree(mg->mg_ptr);
- }
- if (mg->mg_flags & MGf_REFCOUNTED)
- SvREFCNT_dec(mg->mg_obj);
- Safefree(mg);
- }
- else
- mgp = &mg->mg_moremagic;
- }
- if (SvMAGIC(sv)) {
- if (SvMAGICAL(sv)) /* if we're under save_magic, wait for restore_magic; */
- mg_magical(sv); /* else fix the flags now */
- }
- else {
- SvMAGICAL_off(sv);
- SvFLAGS(sv) |= (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
- }
- return 0;
-}
-
-#endif
-#endif
-
-=xsinit
-
-#define NEED_mg_findext
-#define NEED_sv_unmagicext
-
-#ifndef STATIC
-#define STATIC static
-#endif
-
-STATIC MGVTBL null_mg_vtbl = {
- NULL, /* get */
- NULL, /* set */
- NULL, /* len */
- NULL, /* clear */
- NULL, /* free */
-#if MGf_COPY
- NULL, /* copy */
-#endif /* MGf_COPY */
-#if MGf_DUP
- NULL, /* dup */
-#endif /* MGf_DUP */
-#if MGf_LOCAL
- NULL, /* local */
-#endif /* MGf_LOCAL */
-};
-
-STATIC MGVTBL other_mg_vtbl = {
- NULL, /* get */
- NULL, /* set */
- NULL, /* len */
- NULL, /* clear */
- NULL, /* free */
-#if MGf_COPY
- NULL, /* copy */
-#endif /* MGf_COPY */
-#if MGf_DUP
- NULL, /* dup */
-#endif /* MGf_DUP */
-#if MGf_LOCAL
- NULL, /* local */
-#endif /* MGf_LOCAL */
-};
-
-=xsubs
-
-SV *
-new_with_other_mg(package, ...)
- SV *package
- PREINIT:
- HV *self;
- HV *stash;
- SV *self_ref;
- const char *data = "hello\0";
- MAGIC *mg;
- CODE:
- self = newHV();
- stash = gv_stashpv(SvPV_nolen(package), 0);
-
- self_ref = newRV_noinc((SV*)self);
-
- sv_magic((SV*)self, NULL, PERL_MAGIC_ext, data, strlen(data));
- mg = mg_find((SV*)self, PERL_MAGIC_ext);
- if (mg)
- mg->mg_virtual = &other_mg_vtbl;
- else
- croak("No mg!");
-
- RETVAL = sv_bless(self_ref, stash);
- OUTPUT:
- RETVAL
-
-SV *
-new_with_mg(package, ...)
- SV *package
- PREINIT:
- HV *self;
- HV *stash;
- SV *self_ref;
- const char *data = "hello\0";
- MAGIC *mg;
- CODE:
- self = newHV();
- stash = gv_stashpv(SvPV_nolen(package), 0);
-
- self_ref = newRV_noinc((SV*)self);
-
- sv_magic((SV*)self, NULL, PERL_MAGIC_ext, data, strlen(data));
- mg = mg_find((SV*)self, PERL_MAGIC_ext);
- if (mg)
- mg->mg_virtual = &null_mg_vtbl;
- else
- croak("No mg!");
-
- RETVAL = sv_bless(self_ref, stash);
- OUTPUT:
- RETVAL
-
-void
-remove_null_magic(self)
- SV *self
- PREINIT:
- HV *obj;
- PPCODE:
- obj = (HV*) SvRV(self);
-
- sv_unmagicext((SV*)obj, PERL_MAGIC_ext, &null_mg_vtbl);
-
-void
-remove_other_magic(self)
- SV *self
- PREINIT:
- HV *obj;
- PPCODE:
- obj = (HV*) SvRV(self);
-
- sv_unmagicext((SV*)obj, PERL_MAGIC_ext, &other_mg_vtbl);
-
-void
-as_string(self)
- SV *self
- PREINIT:
- HV *obj;
- MAGIC *mg;
- PPCODE:
- obj = (HV*) SvRV(self);
-
- if ((mg = mg_findext((SV*)obj, PERL_MAGIC_ext, &null_mg_vtbl))) {
- XPUSHs(sv_2mortal(newSVpv(mg->mg_ptr, strlen(mg->mg_ptr))));
- } else {
- XPUSHs(sv_2mortal(newSVpvs("Sorry, your princess is in another castle.")));
- }
-
-void
-sv_catpv_mg(sv, string)
- SV *sv;
- char *string;
- CODE:
- sv_catpv_mg(sv, string);
-
-void
-sv_catpvn_mg(sv, sv2)
- SV *sv;
- SV *sv2;
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV(sv2, len);
- sv_catpvn_mg(sv, str, len);
-
-void
-sv_catsv_mg(sv, sv2)
- SV *sv;
- SV *sv2;
- CODE:
- sv_catsv_mg(sv, sv2);
-
-void
-sv_setiv_mg(sv, iv)
- SV *sv;
- IV iv;
- CODE:
- sv_setiv_mg(sv, iv);
-
-void
-sv_setnv_mg(sv, nv)
- SV *sv;
- NV nv;
- CODE:
- sv_setnv_mg(sv, nv);
-
-void
-sv_setpv_mg(sv, pv)
- SV *sv;
- char *pv;
- CODE:
- sv_setpv_mg(sv, pv);
-
-void
-sv_setpvn_mg(sv, sv2)
- SV *sv;
- SV *sv2;
- PREINIT:
- char *str;
- STRLEN len;
- CODE:
- str = SvPV(sv2, len);
- sv_setpvn_mg(sv, str, len);
-
-void
-sv_setsv_mg(sv, sv2)
- SV *sv;
- SV *sv2;
- CODE:
- sv_setsv_mg(sv, sv2);
-
-void
-sv_setuv_mg(sv, uv)
- SV *sv;
- UV uv;
- CODE:
- sv_setuv_mg(sv, uv);
-
-void
-sv_usepvn_mg(sv, sv2)
- SV *sv;
- SV *sv2;
- PREINIT:
- char *str, *copy;
- STRLEN len;
- CODE:
- str = SvPV(sv2, len);
- New(42, copy, len+1, char);
- Copy(str, copy, len+1, char);
- sv_usepvn_mg(sv, copy, len);
-
-int
-SvVSTRING_mg(sv)
- SV *sv;
- CODE:
- RETVAL = SvVSTRING_mg(sv) != NULL;
- OUTPUT:
- RETVAL
-
-int
-sv_magic_portable(sv)
- SV *sv
- PREINIT:
- MAGIC *mg;
- const char *foo = "foo";
- CODE:
-#if { VERSION >= 5.004 }
- sv_magic_portable(sv, 0, '~', foo, 0);
- mg = mg_find(sv, '~');
- if (!mg)
- croak("No mg!");
-
- RETVAL = mg->mg_ptr == foo;
-#else
- sv_magic(sv, 0, '~', (char *) foo, strlen(foo));
- mg = mg_find(sv, '~');
- RETVAL = strEQ(mg->mg_ptr, foo);
-#endif
- sv_unmagic(sv, '~');
- OUTPUT:
- RETVAL
-
-=tests plan => 23
-
-# Find proper magic
-ok(my $obj1 = Devel::PPPort->new_with_mg());
-ok(Devel::PPPort::as_string($obj1), 'hello');
-
-# Find with no magic
-my $obj = bless {}, 'Fake::Class';
-ok(Devel::PPPort::as_string($obj), "Sorry, your princess is in another castle.");
-
-# Find with other magic (not the magic we are looking for)
-ok($obj = Devel::PPPort->new_with_other_mg());
-ok(Devel::PPPort::as_string($obj), "Sorry, your princess is in another castle.");
-
-# Okay, attempt to remove magic that isn't there
-Devel::PPPort::remove_other_magic($obj1);
-ok(Devel::PPPort::as_string($obj1), 'hello');
-
-# Remove magic that IS there
-Devel::PPPort::remove_null_magic($obj1);
-ok(Devel::PPPort::as_string($obj1), "Sorry, your princess is in another castle.");
-
-# Removing when no magic present
-Devel::PPPort::remove_null_magic($obj1);
-ok(Devel::PPPort::as_string($obj1), "Sorry, your princess is in another castle.");
-
-use Tie::Hash;
-my %h;
-tie %h, 'Tie::StdHash';
-$h{foo} = 'foo';
-$h{bar} = '';
-
-&Devel::PPPort::sv_catpv_mg($h{foo}, 'bar');
-ok($h{foo}, 'foobar');
-
-&Devel::PPPort::sv_catpvn_mg($h{bar}, 'baz');
-ok($h{bar}, 'baz');
-
-&Devel::PPPort::sv_catsv_mg($h{foo}, '42');
-ok($h{foo}, 'foobar42');
-
-&Devel::PPPort::sv_setiv_mg($h{bar}, 42);
-ok($h{bar}, 42);
-
-&Devel::PPPort::sv_setnv_mg($h{PI}, 3.14159);
-ok(abs($h{PI} - 3.14159) < 0.01);
-
-&Devel::PPPort::sv_setpv_mg($h{mhx}, 'mhx');
-ok($h{mhx}, 'mhx');
-
-&Devel::PPPort::sv_setpvn_mg($h{mhx}, 'Marcus');
-ok($h{mhx}, 'Marcus');
-
-&Devel::PPPort::sv_setsv_mg($h{sv}, 'SV');
-ok($h{sv}, 'SV');
-
-&Devel::PPPort::sv_setuv_mg($h{sv}, 4711);
-ok($h{sv}, 4711);
-
-&Devel::PPPort::sv_usepvn_mg($h{sv}, 'Perl');
-ok($h{sv}, 'Perl');
-
-# v1 is treated as a bareword in older perls...
-my $ver = do { local $SIG{'__WARN__'} = sub {}; eval qq[v1.2.0] };
-ok($] < 5.009 || $@ eq '');
-ok($] < 5.009 || Devel::PPPort::SvVSTRING_mg($ver));
-ok(!Devel::PPPort::SvVSTRING_mg(4711));
-
-my $foo = 'bar';
-ok(Devel::PPPort::sv_magic_portable($foo));
-ok($foo eq 'bar');
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/memory b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/memory
deleted file mode 100644
index 9a5425e39ed..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/memory
+++ /dev/null
@@ -1,85 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-
-=implementation
-
-#ifdef HAS_MEMCMP
-__UNDEFINED__ memNE(s1,s2,l) (memcmp(s1,s2,l))
-__UNDEFINED__ memEQ(s1,s2,l) (!memcmp(s1,s2,l))
-#else
-__UNDEFINED__ memNE(s1,s2,l) (bcmp(s1,s2,l))
-__UNDEFINED__ memEQ(s1,s2,l) (!bcmp(s1,s2,l))
-#endif
-
-__UNDEFINED__ memEQs(s1, l, s2) \
- (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1)))
-__UNDEFINED__ memNEs(s1, l, s2) !memEQs(s1, l, s2)
-
-__UNDEFINED__ MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t))
-__UNDEFINED__ CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
-#ifdef HAS_MEMSET
-__UNDEFINED__ ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t))
-#else
-__UNDEFINED__ ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d)
-#endif
-
-__UNDEFINED__ PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t))
-__UNDEFINED__ PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB)
-__UNDEFINED__ PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF)
-__UNDEFINED__ Poison(d,n,t) PoisonFree(d,n,t)
-
-__UNDEFINED__ Newx(v,n,t) New(0,v,n,t)
-__UNDEFINED__ Newxc(v,n,t,c) Newc(0,v,n,t,c)
-__UNDEFINED__ Newxz(v,n,t) Newz(0,v,n,t)
-
-=xsubs
-
-int
-checkmem()
- PREINIT:
- char *p;
-
- CODE:
- RETVAL = 0;
- Newx(p, 6, char);
- CopyD("Hello", p, 6, char);
- if (memEQ(p, "Hello", 6))
- RETVAL++;
- ZeroD(p, 6, char);
- if (memEQ(p, "\0\0\0\0\0\0", 6))
- RETVAL++;
- if (memEQs(p, 6, "\0\0\0\0\0\0"))
- RETVAL++;
- Poison(p, 6, char);
- if (memNE(p, "\0\0\0\0\0\0", 6))
- RETVAL++;
- if (memNEs(p, 6, "\0\0\0\0\0\0"))
- RETVAL++;
- Safefree(p);
-
- Newxz(p, 6, char);
- if (memEQ(p, "\0\0\0\0\0\0", 6))
- RETVAL++;
- Safefree(p);
-
- Newxc(p, 3, short, char);
- Safefree(p);
-
- OUTPUT:
- RETVAL
-
-=tests plan => 1
-
-ok(Devel::PPPort::checkmem(), 6);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/misc b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/misc
deleted file mode 100644
index aedad057d37..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/misc
+++ /dev/null
@@ -1,621 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-PERL_UNUSED_DECL
-PERL_UNUSED_ARG
-PERL_UNUSED_VAR
-PERL_UNUSED_CONTEXT
-PERL_GCC_BRACE_GROUPS_FORBIDDEN
-PERL_USE_GCC_BRACE_GROUPS
-PERLIO_FUNCS_DECL
-PERLIO_FUNCS_CAST
-NVTYPE
-INT2PTR
-PTRV
-NUM2PTR
-PERL_HASH
-PTR2IV
-PTR2UV
-PTR2NV
-PTR2ul
-START_EXTERN_C
-END_EXTERN_C
-EXTERN_C
-STMT_START
-STMT_END
-UTF8_MAXBYTES
-WIDEST_UTYPE
-XSRETURN
-HeUTF8
-
-=implementation
-
-#ifndef PERL_UNUSED_DECL
-# ifdef HASATTRIBUTE
-# if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER)
-# define PERL_UNUSED_DECL
-# else
-# define PERL_UNUSED_DECL __attribute__((unused))
-# endif
-# else
-# define PERL_UNUSED_DECL
-# endif
-#endif
-
-#ifndef PERL_UNUSED_ARG
-# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
-# include <note.h>
-# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
-# else
-# define PERL_UNUSED_ARG(x) ((void)x)
-# endif
-#endif
-
-#ifndef PERL_UNUSED_VAR
-# define PERL_UNUSED_VAR(x) ((void)x)
-#endif
-
-#ifndef PERL_UNUSED_CONTEXT
-# ifdef USE_ITHREADS
-# define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl)
-# else
-# define PERL_UNUSED_CONTEXT
-# endif
-#endif
-
-__UNDEFINED__ NOOP /*EMPTY*/(void)0
-__UNDEFINED__ dNOOP extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL
-
-#ifndef NVTYPE
-# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
-# define NVTYPE long double
-# else
-# define NVTYPE double
-# endif
-typedef NVTYPE NV;
-#endif
-
-#ifndef INT2PTR
-# if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
-# define PTRV UV
-# define INT2PTR(any,d) (any)(d)
-# else
-# if PTRSIZE == LONGSIZE
-# define PTRV unsigned long
-# else
-# define PTRV unsigned
-# endif
-# define INT2PTR(any,d) (any)(PTRV)(d)
-# endif
-#endif
-
-#ifndef PTR2ul
-# if PTRSIZE == LONGSIZE
-# define PTR2ul(p) (unsigned long)(p)
-# else
-# define PTR2ul(p) INT2PTR(unsigned long,p)
-# endif
-#endif
-
-__UNDEFINED__ PTR2nat(p) (PTRV)(p)
-__UNDEFINED__ NUM2PTR(any,d) (any)PTR2nat(d)
-__UNDEFINED__ PTR2IV(p) INT2PTR(IV,p)
-__UNDEFINED__ PTR2UV(p) INT2PTR(UV,p)
-__UNDEFINED__ PTR2NV(p) NUM2PTR(NV,p)
-
-#undef START_EXTERN_C
-#undef END_EXTERN_C
-#undef EXTERN_C
-#ifdef __cplusplus
-# define START_EXTERN_C extern "C" {
-# define END_EXTERN_C }
-# define EXTERN_C extern "C"
-#else
-# define START_EXTERN_C
-# define END_EXTERN_C
-# define EXTERN_C extern
-#endif
-
-#if defined(PERL_GCC_PEDANTIC)
-# ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN
-# define PERL_GCC_BRACE_GROUPS_FORBIDDEN
-# endif
-#endif
-
-#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus)
-# ifndef PERL_USE_GCC_BRACE_GROUPS
-# define PERL_USE_GCC_BRACE_GROUPS
-# endif
-#endif
-
-#undef STMT_START
-#undef STMT_END
-#ifdef PERL_USE_GCC_BRACE_GROUPS
-# define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
-# define STMT_END )
-#else
-# if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__)
-# define STMT_START if (1)
-# define STMT_END else (void)0
-# else
-# define STMT_START do
-# define STMT_END while (0)
-# endif
-#endif
-
-__UNDEFINED__ boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no)
-
-/* DEFSV appears first in 5.004_56 */
-__UNDEFINED__ DEFSV GvSV(PL_defgv)
-__UNDEFINED__ SAVE_DEFSV SAVESPTR(GvSV(PL_defgv))
-__UNDEFINED__ DEFSV_set(sv) (DEFSV = (sv))
-
-/* Older perls (<=5.003) lack AvFILLp */
-__UNDEFINED__ AvFILLp AvFILL
-
-__UNDEFINED__ ERRSV get_sv("@",FALSE)
-
-/* Hint: gv_stashpvn
- * This function's backport doesn't support the length parameter, but
- * rather ignores it. Portability can only be ensured if the length
- * parameter is used for speed reasons, but the length can always be
- * correctly computed from the string argument.
- */
-
-__UNDEFINED__ gv_stashpvn(str,len,create) gv_stashpv(str,create)
-
-/* Replace: 1 */
-__UNDEFINED__ get_cv perl_get_cv
-__UNDEFINED__ get_sv perl_get_sv
-__UNDEFINED__ get_av perl_get_av
-__UNDEFINED__ get_hv perl_get_hv
-/* Replace: 0 */
-
-__UNDEFINED__ dUNDERBAR dNOOP
-__UNDEFINED__ UNDERBAR DEFSV
-
-__UNDEFINED__ dAX I32 ax = MARK - PL_stack_base + 1
-__UNDEFINED__ dITEMS I32 items = SP - MARK
-
-__UNDEFINED__ dXSTARG SV * targ = sv_newmortal()
-
-__UNDEFINED__ dAXMARK I32 ax = POPMARK; \
- register SV ** const mark = PL_stack_base + ax++
-
-
-__UNDEFINED__ XSprePUSH (sp = PL_stack_base + ax - 1)
-
-#if { VERSION < 5.005 }
-# undef XSRETURN
-# define XSRETURN(off) \
- STMT_START { \
- PL_stack_sp = PL_stack_base + ax + ((off) - 1); \
- return; \
- } STMT_END
-#endif
-
-__UNDEFINED__ XSPROTO(name) void name(pTHX_ CV* cv)
-__UNDEFINED__ SVfARG(p) ((void*)(p))
-
-__UNDEFINED__ PERL_ABS(x) ((x) < 0 ? -(x) : (x))
-
-__UNDEFINED__ dVAR dNOOP
-
-__UNDEFINED__ SVf "_"
-
-__UNDEFINED__ UTF8_MAXBYTES UTF8_MAXLEN
-
-__UNDEFINED__ CPERLscope(x) x
-
-__UNDEFINED__ PERL_HASH(hash,str,len) \
- STMT_START { \
- const char *s_PeRlHaSh = str; \
- I32 i_PeRlHaSh = len; \
- U32 hash_PeRlHaSh = 0; \
- while (i_PeRlHaSh--) \
- hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \
- (hash) = hash_PeRlHaSh; \
- } STMT_END
-
-#ifndef PERLIO_FUNCS_DECL
-# ifdef PERLIO_FUNCS_CONST
-# define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs
-# define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs)
-# else
-# define PERLIO_FUNCS_DECL(funcs) PerlIO_funcs funcs
-# define PERLIO_FUNCS_CAST(funcs) (funcs)
-# endif
-#endif
-
-/* provide these typedefs for older perls */
-#if { VERSION < 5.9.3 }
-
-# ifdef ARGSproto
-typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto);
-# else
-typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX);
-# endif
-
-typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
-
-#endif
-
-__UNDEFINED__ isPSXSPC(c) (isSPACE(c) || (c) == '\v')
-__UNDEFINED__ isBLANK(c) ((c) == ' ' || (c) == '\t')
-#ifdef EBCDIC
-__UNDEFINED__ isALNUMC(c) isalnum(c)
-__UNDEFINED__ isASCII(c) isascii(c)
-__UNDEFINED__ isCNTRL(c) iscntrl(c)
-__UNDEFINED__ isGRAPH(c) isgraph(c)
-__UNDEFINED__ isPRINT(c) isprint(c)
-__UNDEFINED__ isPUNCT(c) ispunct(c)
-__UNDEFINED__ isXDIGIT(c) isxdigit(c)
-#else
-# if { VERSION < 5.10.0 }
-/* Hint: isPRINT
- * The implementation in older perl versions includes all of the
- * isSPACE() characters, which is wrong. The version provided by
- * Devel::PPPort always overrides a present buggy version.
- */
-# undef isPRINT
-# endif
-
-#ifdef HAS_QUAD
-# ifdef U64TYPE
-# define WIDEST_UTYPE U64TYPE
-# else
-# define WIDEST_UTYPE Quad_t
-# endif
-#else
-# define WIDEST_UTYPE U32
-#endif
-
-__UNDEFINED__ isALNUMC(c) (isALPHA(c) || isDIGIT(c))
-__UNDEFINED__ isASCII(c) ((WIDEST_UTYPE) (c) <= 127)
-__UNDEFINED__ isCNTRL(c) ((WIDEST_UTYPE) (c) < ' ' || (c) == 127)
-__UNDEFINED__ isGRAPH(c) (isALNUM(c) || isPUNCT(c))
-__UNDEFINED__ isPRINT(c) (((c) >= 32 && (c) < 127))
-__UNDEFINED__ isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126))
-__UNDEFINED__ isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
-#endif
-
-/* Until we figure out how to support this in older perls... */
-#if { VERSION >= 5.8.0 }
-
-__UNDEFINED__ HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \
- SvUTF8(HeKEY_sv(he)) : \
- (U32)HeKUTF8(he))
-
-#endif
-
-=xsmisc
-
-typedef XSPROTO(XSPROTO_test_t);
-typedef XSPROTO_test_t *XSPROTO_test_t_ptr;
-
-XS(XS_Devel__PPPort_dXSTARG); /* prototype */
-XS(XS_Devel__PPPort_dXSTARG)
-{
- dXSARGS;
- dXSTARG;
- IV iv;
-
- PERL_UNUSED_VAR(cv);
- SP -= items;
- iv = SvIV(ST(0)) + 1;
- PUSHi(iv);
- XSRETURN(1);
-}
-
-XS(XS_Devel__PPPort_dAXMARK); /* prototype */
-XS(XS_Devel__PPPort_dAXMARK)
-{
- dSP;
- dAXMARK;
- dITEMS;
- IV iv;
-
- PERL_UNUSED_VAR(cv);
- SP -= items;
- iv = SvIV(ST(0)) - 1;
- mPUSHi(iv);
- XSRETURN(1);
-}
-
-=xsboot
-
-{
- XSPROTO_test_t_ptr p = &XS_Devel__PPPort_dXSTARG;
- newXS("Devel::PPPort::dXSTARG", *p, file);
-}
-newXS("Devel::PPPort::dAXMARK", XS_Devel__PPPort_dAXMARK, file);
-
-=xsubs
-
-int
-ptrtests()
- PREINIT:
- int var, *p = &var;
-
- CODE:
- RETVAL = 0;
- RETVAL += PTR2nat(p) != 0 ? 1 : 0;
- RETVAL += PTR2ul(p) != 0UL ? 2 : 0;
- RETVAL += PTR2UV(p) != (UV) 0 ? 4 : 0;
- RETVAL += PTR2IV(p) != (IV) 0 ? 8 : 0;
- RETVAL += PTR2NV(p) != (NV) 0 ? 16 : 0;
- RETVAL += p > NUM2PTR(int *, 0) ? 32 : 0;
-
- OUTPUT:
- RETVAL
-
-int
-gv_stashpvn(name, create)
- char *name
- I32 create
- CODE:
- RETVAL = gv_stashpvn(name, strlen(name), create) != NULL;
- OUTPUT:
- RETVAL
-
-int
-get_sv(name, create)
- char *name
- I32 create
- CODE:
- RETVAL = get_sv(name, create) != NULL;
- OUTPUT:
- RETVAL
-
-int
-get_av(name, create)
- char *name
- I32 create
- CODE:
- RETVAL = get_av(name, create) != NULL;
- OUTPUT:
- RETVAL
-
-int
-get_hv(name, create)
- char *name
- I32 create
- CODE:
- RETVAL = get_hv(name, create) != NULL;
- OUTPUT:
- RETVAL
-
-int
-get_cv(name, create)
- char *name
- I32 create
- CODE:
- RETVAL = get_cv(name, create) != NULL;
- OUTPUT:
- RETVAL
-
-void
-xsreturn(two)
- int two
- PPCODE:
- mXPUSHp("test1", 5);
- if (two)
- mXPUSHp("test2", 5);
- if (two)
- XSRETURN(2);
- else
- XSRETURN(1);
-
-SV*
-boolSV(value)
- int value
- CODE:
- RETVAL = newSVsv(boolSV(value));
- OUTPUT:
- RETVAL
-
-SV*
-DEFSV()
- CODE:
- RETVAL = newSVsv(DEFSV);
- OUTPUT:
- RETVAL
-
-void
-DEFSV_modify()
- PPCODE:
- XPUSHs(sv_mortalcopy(DEFSV));
- ENTER;
- SAVE_DEFSV;
- DEFSV_set(newSVpvs("DEFSV"));
- XPUSHs(sv_mortalcopy(DEFSV));
- /* Yes, this leaks the above scalar; 5.005 with threads for some reason */
- /* frees it upon LEAVE, thus mortalizing it causes "attempt to free..." */
- /* sv_2mortal(DEFSV); */
- LEAVE;
- XPUSHs(sv_mortalcopy(DEFSV));
- XSRETURN(3);
-
-int
-ERRSV()
- CODE:
- RETVAL = SvTRUE(ERRSV);
- OUTPUT:
- RETVAL
-
-SV*
-UNDERBAR()
- CODE:
- {
- dUNDERBAR;
- RETVAL = newSVsv(UNDERBAR);
- }
- OUTPUT:
- RETVAL
-
-void
-prepush()
- CODE:
- {
- dXSTARG;
- XSprePUSH;
- PUSHi(42);
- XSRETURN(1);
- }
-
-int
-PERL_ABS(a)
- int a
-
-void
-SVf(x)
- SV *x
- PPCODE:
-#if { VERSION >= 5.004 }
- x = sv_2mortal(newSVpvf("[%"SVf"]", SVfARG(x)));
-#endif
- XPUSHs(x);
- XSRETURN(1);
-
-void
-Perl_ppaddr_t(string)
- char *string
- PREINIT:
- Perl_ppaddr_t lower;
- PPCODE:
- lower = PL_ppaddr[OP_LC];
- mXPUSHs(newSVpv(string, 0));
- PUTBACK;
- ENTER;
- (void)*(lower)(aTHXR);
- SPAGAIN;
- LEAVE;
- XSRETURN(1);
-
-#if { VERSION >= 5.8.0 }
-
-void
-check_HeUTF8(utf8_key)
- SV *utf8_key;
- PREINIT:
- HV *hash;
- HE *ent;
- STRLEN klen;
- char *key;
- PPCODE:
- hash = newHV();
-
- key = SvPV(utf8_key, klen);
- if (SvUTF8(utf8_key)) klen *= -1;
- hv_store(hash, key, klen, newSVpvs("string"), 0);
- hv_iterinit(hash);
- ent = hv_iternext(hash);
- if (ent) {
- mXPUSHp((HeUTF8(ent) == 0 ? "norm" : "utf8"), 4);
- }
- hv_undef(hash);
-
-
-#endif
-
-=tests plan => 41
-
-use vars qw($my_sv @my_av %my_hv);
-
-ok(&Devel::PPPort::boolSV(1));
-ok(!&Devel::PPPort::boolSV(0));
-
-$_ = "Fred";
-ok(&Devel::PPPort::DEFSV(), "Fred");
-ok(&Devel::PPPort::UNDERBAR(), "Fred");
-
-if ($] >= 5.009002 && $] < 5.023) {
- eval q{
- no warnings "deprecated";
- no if $^V > v5.17.9, warnings => "experimental::lexical_topic";
- my $_ = "Tony";
- ok(&Devel::PPPort::DEFSV(), "Fred");
- ok(&Devel::PPPort::UNDERBAR(), "Tony");
- };
-}
-else {
- ok(1);
- ok(1);
-}
-
-my @r = &Devel::PPPort::DEFSV_modify();
-
-ok(@r == 3);
-ok($r[0], 'Fred');
-ok($r[1], 'DEFSV');
-ok($r[2], 'Fred');
-
-ok(&Devel::PPPort::DEFSV(), "Fred");
-
-eval { 1 };
-ok(!&Devel::PPPort::ERRSV());
-eval { cannot_call_this_one() };
-ok(&Devel::PPPort::ERRSV());
-
-ok(&Devel::PPPort::gv_stashpvn('Devel::PPPort', 0));
-ok(!&Devel::PPPort::gv_stashpvn('does::not::exist', 0));
-ok(&Devel::PPPort::gv_stashpvn('does::not::exist', 1));
-
-$my_sv = 1;
-ok(&Devel::PPPort::get_sv('my_sv', 0));
-ok(!&Devel::PPPort::get_sv('not_my_sv', 0));
-ok(&Devel::PPPort::get_sv('not_my_sv', 1));
-
-@my_av = (1);
-ok(&Devel::PPPort::get_av('my_av', 0));
-ok(!&Devel::PPPort::get_av('not_my_av', 0));
-ok(&Devel::PPPort::get_av('not_my_av', 1));
-
-%my_hv = (a=>1);
-ok(&Devel::PPPort::get_hv('my_hv', 0));
-ok(!&Devel::PPPort::get_hv('not_my_hv', 0));
-ok(&Devel::PPPort::get_hv('not_my_hv', 1));
-
-sub my_cv { 1 };
-ok(&Devel::PPPort::get_cv('my_cv', 0));
-ok(!&Devel::PPPort::get_cv('not_my_cv', 0));
-ok(&Devel::PPPort::get_cv('not_my_cv', 1));
-
-ok(Devel::PPPort::dXSTARG(42), 43);
-ok(Devel::PPPort::dAXMARK(4711), 4710);
-
-ok(Devel::PPPort::prepush(), 42);
-
-ok(join(':', Devel::PPPort::xsreturn(0)), 'test1');
-ok(join(':', Devel::PPPort::xsreturn(1)), 'test1:test2');
-
-ok(Devel::PPPort::PERL_ABS(42), 42);
-ok(Devel::PPPort::PERL_ABS(-13), 13);
-
-ok(Devel::PPPort::SVf(42), $] >= 5.004 ? '[42]' : '42');
-ok(Devel::PPPort::SVf('abc'), $] >= 5.004 ? '[abc]' : 'abc');
-
-ok(&Devel::PPPort::Perl_ppaddr_t("FOO"), "foo");
-
-ok(&Devel::PPPort::ptrtests(), 63);
-
-if ($] >= 5.009000) {
- eval q{
- ok(&Devel::PPPort::check_HeUTF8("hello"), "norm");
- ok(&Devel::PPPort::check_HeUTF8("\N{U+263a}"), "utf8");
- };
-} else {
- ok(1, 1);
- ok(1, 1);
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newCONSTSUB b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newCONSTSUB
deleted file mode 100644
index 336a8e00b8d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newCONSTSUB
+++ /dev/null
@@ -1,104 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-newCONSTSUB
-
-=implementation
-
-/* Hint: newCONSTSUB
- * Returns a CV* as of perl-5.7.1. This return value is not supported
- * by Devel::PPPort.
- */
-
-/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
-#if { VERSION < 5.004_63 } && { VERSION != 5.004_05 }
-#if { NEED newCONSTSUB }
-
-/* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */
-/* (There's no PL_parser in perl < 5.005, so this is completely safe) */
-#define D_PPP_PL_copline PL_copline
-
-void
-newCONSTSUB(HV *stash, const char *name, SV *sv)
-{
- U32 oldhints = PL_hints;
- HV *old_cop_stash = PL_curcop->cop_stash;
- HV *old_curstash = PL_curstash;
- line_t oldline = PL_curcop->cop_line;
- PL_curcop->cop_line = D_PPP_PL_copline;
-
- PL_hints &= ~HINT_BLOCK_SCOPE;
- if (stash)
- PL_curstash = PL_curcop->cop_stash = stash;
-
- newSUB(
-
-#if { VERSION < 5.003_22 }
- start_subparse(),
-#elif { VERSION == 5.003_22 }
- start_subparse(0),
-#else /* 5.003_23 onwards */
- start_subparse(FALSE, 0),
-#endif
-
- newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)),
- newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */
- newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv))
- );
-
- PL_hints = oldhints;
- PL_curcop->cop_stash = old_cop_stash;
- PL_curstash = old_curstash;
- PL_curcop->cop_line = oldline;
-}
-#endif
-#endif
-
-=xsinit
-
-#define NEED_newCONSTSUB
-
-=xsmisc
-
-void call_newCONSTSUB_1(void)
-{
-#ifdef PERL_NO_GET_CONTEXT
- dTHX;
-#endif
- newCONSTSUB(gv_stashpv("Devel::PPPort", FALSE), "test_value_1", newSViv(1));
-}
-
-extern void call_newCONSTSUB_2(void);
-extern void call_newCONSTSUB_3(void);
-
-=xsubs
-
-void
-call_newCONSTSUB_1()
-
-void
-call_newCONSTSUB_2()
-
-void
-call_newCONSTSUB_3()
-
-=tests plan => 3
-
-&Devel::PPPort::call_newCONSTSUB_1();
-ok(&Devel::PPPort::test_value_1(), 1);
-
-&Devel::PPPort::call_newCONSTSUB_2();
-ok(&Devel::PPPort::test_value_2(), 2);
-
-&Devel::PPPort::call_newCONSTSUB_3();
-ok(&Devel::PPPort::test_value_3(), 3);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newRV b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newRV
deleted file mode 100644
index 6db6dfc54fe..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newRV
+++ /dev/null
@@ -1,67 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-newRV_inc
-newRV_noinc
-
-=implementation
-
-__UNDEFINED__ newRV_inc(sv) newRV(sv) /* Replace */
-
-#ifndef newRV_noinc
-#if { NEED newRV_noinc }
-SV *
-newRV_noinc(SV *sv)
-{
- SV *rv = (SV *)newRV(sv);
- SvREFCNT_dec(sv);
- return rv;
-}
-#endif
-#endif
-
-=xsinit
-
-#define NEED_newRV_noinc
-
-=xsubs
-
-U32
-newRV_inc_REFCNT()
- PREINIT:
- SV *sv, *rv;
- CODE:
- sv = newSViv(42);
- rv = newRV_inc(sv);
- SvREFCNT_dec(sv);
- RETVAL = SvREFCNT(sv);
- sv_2mortal(rv);
- OUTPUT:
- RETVAL
-
-U32
-newRV_noinc_REFCNT()
- PREINIT:
- SV *sv, *rv;
- CODE:
- sv = newSViv(42);
- rv = newRV_noinc(sv);
- RETVAL = SvREFCNT(sv);
- sv_2mortal(rv);
- OUTPUT:
- RETVAL
-
-=tests plan => 2
-
-ok(&Devel::PPPort::newRV_inc_REFCNT, 1);
-ok(&Devel::PPPort::newRV_noinc_REFCNT, 1);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newSV_type b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newSV_type
deleted file mode 100644
index 039f8010bb5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newSV_type
+++ /dev/null
@@ -1,79 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-newSV_type
-
-=implementation
-
-#ifndef newSV_type
-
-#if { NEED newSV_type }
-
-SV*
-newSV_type(pTHX_ svtype const t)
-{
- SV* const sv = newSV(0);
- sv_upgrade(sv, t);
- return sv;
-}
-
-#endif
-
-#endif
-
-=xsinit
-
-#define NEED_newSV_type
-
-=xsubs
-
-int
-newSV_type()
- PREINIT:
- SV* sv;
- CODE:
- RETVAL = 0;
- sv = newSV_type(SVt_NULL);
- if (SvTYPE(sv) == SVt_NULL)
- {
- RETVAL++;
- }
- SvREFCNT_dec(sv);
-
- sv = newSV_type(SVt_PVIV);
- if (SvTYPE(sv) == SVt_PVIV)
- {
- RETVAL++;
- }
- SvREFCNT_dec(sv);
-
- sv = newSV_type(SVt_PVHV);
- if (SvTYPE(sv) == SVt_PVHV)
- {
- RETVAL++;
- }
- SvREFCNT_dec(sv);
-
- sv = newSV_type(SVt_PVAV);
- if (SvTYPE(sv) == SVt_PVAV)
- {
- RETVAL++;
- }
- SvREFCNT_dec(sv);
- OUTPUT:
- RETVAL
-
-
-=tests plan => 1
-
-ok(Devel::PPPort::newSV_type(), 4);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newSVpv b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newSVpv
deleted file mode 100644
index 513461e5141..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/newSVpv
+++ /dev/null
@@ -1,109 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-newSVpvn_flags
-
-=implementation
-
-#if { VERSION < 5.6.0 }
-# define D_PPP_CONSTPV_ARG(x) ((char *) (x))
-#else
-# define D_PPP_CONSTPV_ARG(x) (x)
-#endif
-
-__UNDEFINED__ newSVpvn(data,len) ((data) \
- ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
- : newSV(0))
-
-__UNDEFINED__ newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
-
-__UNDEFINED__ SVf_UTF8 0
-
-#ifndef newSVpvn_flags
-
-#if { NEED newSVpvn_flags }
-
-SV *
-newSVpvn_flags(pTHX_ const char *s, STRLEN len, U32 flags)
-{
- SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len);
- SvFLAGS(sv) |= (flags & SVf_UTF8);
- return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv;
-}
-
-#endif
-
-#endif
-
-=xsinit
-
-#define NEED_newSVpvn_flags
-
-=xsubs
-
-void
-newSVpvn()
- PPCODE:
- mXPUSHs(newSVpvn("test", 4));
- mXPUSHs(newSVpvn("test", 2));
- mXPUSHs(newSVpvn("test", 0));
- mXPUSHs(newSVpvn(NULL, 2));
- mXPUSHs(newSVpvn(NULL, 0));
- XSRETURN(5);
-
-void
-newSVpvn_flags()
- PPCODE:
- XPUSHs(newSVpvn_flags("test", 4, SVs_TEMP));
- XPUSHs(newSVpvn_flags("test", 2, SVs_TEMP));
- XPUSHs(newSVpvn_flags("test", 0, SVs_TEMP));
- XPUSHs(newSVpvn_flags(NULL, 2, SVs_TEMP));
- XPUSHs(newSVpvn_flags(NULL, 0, SVs_TEMP));
- XSRETURN(5);
-
-void
-newSVpvn_utf8()
- PPCODE:
- XPUSHs(newSVpvn_flags("test", 4, SVs_TEMP|SVf_UTF8));
- XSRETURN(1);
-
-=tests plan => 15
-
-my @s = &Devel::PPPort::newSVpvn();
-ok(@s == 5);
-ok($s[0], "test");
-ok($s[1], "te");
-ok($s[2], "");
-ok(!defined($s[3]));
-ok(!defined($s[4]));
-
-@s = &Devel::PPPort::newSVpvn_flags();
-ok(@s == 5);
-ok($s[0], "test");
-ok($s[1], "te");
-ok($s[2], "");
-ok(!defined($s[3]));
-ok(!defined($s[4]));
-
-@s = &Devel::PPPort::newSVpvn_utf8();
-ok(@s == 1);
-ok($s[0], "test");
-
-if ($] >= 5.008001) {
- require utf8;
- ok(utf8::is_utf8($s[0]));
-}
-else {
- skip("skip: no is_utf8()", 0);
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/podtest b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/podtest
deleted file mode 100644
index d7255b916f1..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/podtest
+++ /dev/null
@@ -1,45 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=tests plan => 0
-
-my @pods = qw( HACKERS PPPort.pm ppport.h soak devel/regenerate devel/buildperl.pl );
-
-my $reason = '';
-
-if ($ENV{'SKIP_SLOW_TESTS'}) {
- $reason = 'SKIP_SLOW_TESTS';
-}
-else {
- # Try loading Test::Pod
- eval q{
- use Test::Pod;
- $Test::Pod::VERSION >= 0.95
- or die "Test::Pod version only $Test::Pod::VERSION";
- import Test::Pod tests => scalar @pods;
- };
- $reason = 'Test::Pod >= 0.95 required' if $@;
-}
-
-if ($reason) {
- load();
- plan(tests => scalar @pods);
-}
-
-for (@pods) {
- print "# checking $_\n";
- if ($reason) {
- skip("skip: $reason", 0);
- }
- else {
- pod_file_ok($_);
- }
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphbin b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphbin
deleted file mode 100644
index 82ebdccb338..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphbin
+++ /dev/null
@@ -1,822 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-=implementation
-
-use strict;
-
-# Disable broken TRIE-optimization
-BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 }
-
-my $VERSION = __VERSION__;
-
-my %opt = (
- quiet => 0,
- diag => 1,
- hints => 1,
- changes => 1,
- cplusplus => 0,
- filter => 1,
- strip => 0,
- version => 0,
-);
-
-my($ppport) = $0 =~ /([\w.]+)$/;
-my $LF = '(?:\r\n|[\r\n])'; # line feed
-my $HS = "[ \t]"; # horizontal whitespace
-
-# Never use C comments in this file!
-my $ccs = '/'.'*';
-my $cce = '*'.'/';
-my $rccs = quotemeta $ccs;
-my $rcce = quotemeta $cce;
-
-eval {
- require Getopt::Long;
- Getopt::Long::GetOptions(\%opt, qw(
- help quiet diag! filter! hints! changes! cplusplus strip version
- patch=s copy=s diff=s compat-version=s
- list-provided list-unsupported api-info=s
- )) or usage();
-};
-
-if ($@ and grep /^-/, @ARGV) {
- usage() if "@ARGV" =~ /^--?h(?:elp)?$/;
- die "Getopt::Long not found. Please don't use any options.\n";
-}
-
-if ($opt{version}) {
- print "This is $0 $VERSION.\n";
- exit 0;
-}
-
-usage() if $opt{help};
-strip() if $opt{strip};
-
-if (exists $opt{'compat-version'}) {
- my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) };
- if ($@) {
- die "Invalid version number format: '$opt{'compat-version'}'\n";
- }
- die "Only Perl 5 is supported\n" if $r != 5;
- die "Invalid version number: $opt{'compat-version'}\n" if $v >= 1000 || $s >= 1000;
- $opt{'compat-version'} = sprintf "%d.%03d%03d", $r, $v, $s;
-}
-else {
- $opt{'compat-version'} = 5;
-}
-
-my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/
- ? ( $1 => {
- ($2 ? ( base => $2 ) : ()),
- ($3 ? ( todo => $3 ) : ()),
- (index($4, 'v') >= 0 ? ( varargs => 1 ) : ()),
- (index($4, 'p') >= 0 ? ( provided => 1 ) : ()),
- (index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()),
- } )
- : die "invalid spec: $_" } qw(
-__PERL_API__
-);
-
-if (exists $opt{'list-unsupported'}) {
- my $f;
- for $f (sort { lc $a cmp lc $b } keys %API) {
- next unless $API{$f}{todo};
- print "$f ", '.'x(40-length($f)), " ", format_version($API{$f}{todo}), "\n";
- }
- exit 0;
-}
-
-# Scan for possible replacement candidates
-
-my(%replace, %need, %hints, %warnings, %depends);
-my $replace = 0;
-my($hint, $define, $function);
-
-sub find_api
-{
- my $code = shift;
- $code =~ s{
- / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
- | "[^"\\]*(?:\\.[^"\\]*)*"
- | '[^'\\]*(?:\\.[^'\\]*)*' }{}egsx;
- grep { exists $API{$_} } $code =~ /(\w+)/mg;
-}
-
-while (<DATA>) {
- if ($hint) {
- my $h = $hint->[0] eq 'Hint' ? \%hints : \%warnings;
- if (m{^\s*\*\s(.*?)\s*$}) {
- for (@{$hint->[1]}) {
- $h->{$_} ||= ''; # suppress warning with older perls
- $h->{$_} .= "$1\n";
- }
- }
- else { undef $hint }
- }
-
- $hint = [$1, [split /,?\s+/, $2]]
- if m{^\s*$rccs\s+(Hint|Warning):\s+(\w+(?:,?\s+\w+)*)\s*$};
-
- if ($define) {
- if ($define->[1] =~ /\\$/) {
- $define->[1] .= $_;
- }
- else {
- if (exists $API{$define->[0]} && $define->[1] !~ /^DPPP_\(/) {
- my @n = find_api($define->[1]);
- push @{$depends{$define->[0]}}, @n if @n
- }
- undef $define;
- }
- }
-
- $define = [$1, $2] if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(.*)};
-
- if ($function) {
- if (/^}/) {
- if (exists $API{$function->[0]}) {
- my @n = find_api($function->[1]);
- push @{$depends{$function->[0]}}, @n if @n
- }
- undef $function;
- }
- else {
- $function->[1] .= $_;
- }
- }
-
- $function = [$1, ''] if m{^DPPP_\(my_(\w+)\)};
-
- $replace = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$};
- $replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)};
- $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce};
- $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$};
-
- if (m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) {
- my @deps = map { s/\s+//g; $_ } split /,/, $3;
- my $d;
- for $d (map { s/\s+//g; $_ } split /,/, $1) {
- push @{$depends{$d}}, @deps;
- }
- }
-
- $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)};
-}
-
-for (values %depends) {
- my %s;
- $_ = [sort grep !$s{$_}++, @$_];
-}
-
-if (exists $opt{'api-info'}) {
- my $f;
- my $count = 0;
- my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$";
- for $f (sort { lc $a cmp lc $b } keys %API) {
- next unless $f =~ /$match/;
- print "\n=== $f ===\n\n";
- my $info = 0;
- if ($API{$f}{base} || $API{$f}{todo}) {
- my $base = format_version($API{$f}{base} || $API{$f}{todo});
- print "Supported at least starting from perl-$base.\n";
- $info++;
- }
- if ($API{$f}{provided}) {
- my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "__MIN_PERL__";
- print "Support by $ppport provided back to perl-$todo.\n";
- print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f};
- print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f};
- print "\n$hints{$f}" if exists $hints{$f};
- print "\nWARNING:\n$warnings{$f}" if exists $warnings{$f};
- $info++;
- }
- print "No portability information available.\n" unless $info;
- $count++;
- }
- $count or print "Found no API matching '$opt{'api-info'}'.";
- print "\n";
- exit 0;
-}
-
-if (exists $opt{'list-provided'}) {
- my $f;
- for $f (sort { lc $a cmp lc $b } keys %API) {
- next unless $API{$f}{provided};
- my @flags;
- push @flags, 'explicit' if exists $need{$f};
- push @flags, 'depend' if exists $depends{$f};
- push @flags, 'hint' if exists $hints{$f};
- push @flags, 'warning' if exists $warnings{$f};
- my $flags = @flags ? ' ['.join(', ', @flags).']' : '';
- print "$f$flags\n";
- }
- exit 0;
-}
-
-my @files;
-my @srcext = qw( .xs .c .h .cc .cpp -c.inc -xs.inc );
-my $srcext = join '|', map { quotemeta $_ } @srcext;
-
-if (@ARGV) {
- my %seen;
- for (@ARGV) {
- if (-e) {
- if (-f) {
- push @files, $_ unless $seen{$_}++;
- }
- else { warn "'$_' is not a file.\n" }
- }
- else {
- my @new = grep { -f } glob $_
- or warn "'$_' does not exist.\n";
- push @files, grep { !$seen{$_}++ } @new;
- }
- }
-}
-else {
- eval {
- require File::Find;
- File::Find::find(sub {
- $File::Find::name =~ /($srcext)$/i
- and push @files, $File::Find::name;
- }, '.');
- };
- if ($@) {
- @files = map { glob "*$_" } @srcext;
- }
-}
-
-if (!@ARGV || $opt{filter}) {
- my(@in, @out);
- my %xsc = map { /(.*)\.xs$/ ? ("$1.c" => 1, "$1.cc" => 1) : () } @files;
- for (@files) {
- my $out = exists $xsc{$_} || /\b\Q$ppport\E$/i || !/($srcext)$/i;
- push @{ $out ? \@out : \@in }, $_;
- }
- if (@ARGV && @out) {
- warning("Skipping the following files (use --nofilter to avoid this):\n| ", join "\n| ", @out);
- }
- @files = @in;
-}
-
-die "No input files given!\n" unless @files;
-
-my(%files, %global, %revreplace);
-%revreplace = reverse %replace;
-my $filename;
-my $patch_opened = 0;
-
-for $filename (@files) {
- unless (open IN, "<$filename") {
- warn "Unable to read from $filename: $!\n";
- next;
- }
-
- info("Scanning $filename ...");
-
- my $c = do { local $/; <IN> };
- close IN;
-
- my %file = (orig => $c, changes => 0);
-
- # Temporarily remove C/XS comments and strings from the code
- my @ccom;
-
- $c =~ s{
- ( ^$HS*\#$HS*include\b[^\r\n]+\b(?:\Q$ppport\E|XSUB\.h)\b[^\r\n]*
- | ^$HS*\#$HS*(?:define|elif|if(?:def)?)\b[^\r\n]* )
- | ( ^$HS*\#[^\r\n]*
- | "[^"\\]*(?:\\.[^"\\]*)*"
- | '[^'\\]*(?:\\.[^'\\]*)*'
- | / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]* ) )
- }{ defined $2 and push @ccom, $2;
- defined $1 ? $1 : "$ccs$#ccom$cce" }mgsex;
-
- $file{ccom} = \@ccom;
- $file{code} = $c;
- $file{has_inc_ppport} = $c =~ /^$HS*#$HS*include[^\r\n]+\b\Q$ppport\E\b/m;
-
- my $func;
-
- for $func (keys %API) {
- my $match = $func;
- $match .= "|$revreplace{$func}" if exists $revreplace{$func};
- if ($c =~ /\b(?:Perl_)?($match)\b/) {
- $file{uses_replace}{$1}++ if exists $revreplace{$func} && $1 eq $revreplace{$func};
- $file{uses_Perl}{$func}++ if $c =~ /\bPerl_$func\b/;
- if (exists $API{$func}{provided}) {
- $file{uses_provided}{$func}++;
- if (!exists $API{$func}{base} || $API{$func}{base} > $opt{'compat-version'}) {
- $file{uses}{$func}++;
- my @deps = rec_depend($func);
- if (@deps) {
- $file{uses_deps}{$func} = \@deps;
- for (@deps) {
- $file{uses}{$_} = 0 unless exists $file{uses}{$_};
- }
- }
- for ($func, @deps) {
- $file{needs}{$_} = 'static' if exists $need{$_};
- }
- }
- }
- if (exists $API{$func}{todo} && $API{$func}{todo} > $opt{'compat-version'}) {
- if ($c =~ /\b$func\b/) {
- $file{uses_todo}{$func}++;
- }
- }
- }
- }
-
- while ($c =~ /^$HS*#$HS*define$HS+(NEED_(\w+?)(_GLOBAL)?)\b/mg) {
- if (exists $need{$2}) {
- $file{defined $3 ? 'needed_global' : 'needed_static'}{$2}++;
- }
- else { warning("Possibly wrong #define $1 in $filename") }
- }
-
- for (qw(uses needs uses_todo needed_global needed_static)) {
- for $func (keys %{$file{$_}}) {
- push @{$global{$_}{$func}}, $filename;
- }
- }
-
- $files{$filename} = \%file;
-}
-
-# Globally resolve NEED_'s
-my $need;
-for $need (keys %{$global{needs}}) {
- if (@{$global{needs}{$need}} > 1) {
- my @targets = @{$global{needs}{$need}};
- my @t = grep $files{$_}{needed_global}{$need}, @targets;
- @targets = @t if @t;
- @t = grep /\.xs$/i, @targets;
- @targets = @t if @t;
- my $target = shift @targets;
- $files{$target}{needs}{$need} = 'global';
- for (@{$global{needs}{$need}}) {
- $files{$_}{needs}{$need} = 'extern' if $_ ne $target;
- }
- }
-}
-
-for $filename (@files) {
- exists $files{$filename} or next;
-
- info("=== Analyzing $filename ===");
-
- my %file = %{$files{$filename}};
- my $func;
- my $c = $file{code};
- my $warnings = 0;
-
- for $func (sort keys %{$file{uses_Perl}}) {
- if ($API{$func}{varargs}) {
- unless ($API{$func}{nothxarg}) {
- my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))}
- { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge);
- if ($changes) {
- warning("Doesn't pass interpreter argument aTHX to Perl_$func");
- $file{changes} += $changes;
- }
- }
- }
- else {
- warning("Uses Perl_$func instead of $func");
- $file{changes} += ($c =~ s{\bPerl_$func(\s*)\((\s*aTHX_?)?\s*}
- {$func$1(}g);
- }
- }
-
- for $func (sort keys %{$file{uses_replace}}) {
- warning("Uses $func instead of $replace{$func}");
- $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g);
- }
-
- for $func (sort keys %{$file{uses_provided}}) {
- if ($file{uses}{$func}) {
- if (exists $file{uses_deps}{$func}) {
- diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}}));
- }
- else {
- diag("Uses $func");
- }
- }
- $warnings += hint($func);
- }
-
- unless ($opt{quiet}) {
- for $func (sort keys %{$file{uses_todo}}) {
- print "*** WARNING: Uses $func, which may not be portable below perl ",
- format_version($API{$func}{todo}), ", even with '$ppport'\n";
- $warnings++;
- }
- }
-
- for $func (sort keys %{$file{needed_static}}) {
- my $message = '';
- if (not exists $file{uses}{$func}) {
- $message = "No need to define NEED_$func if $func is never used";
- }
- elsif (exists $file{needs}{$func} && $file{needs}{$func} ne 'static') {
- $message = "No need to define NEED_$func when already needed globally";
- }
- if ($message) {
- diag($message);
- $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_$func\b.*$LF//mg);
- }
- }
-
- for $func (sort keys %{$file{needed_global}}) {
- my $message = '';
- if (not exists $global{uses}{$func}) {
- $message = "No need to define NEED_${func}_GLOBAL if $func is never used";
- }
- elsif (exists $file{needs}{$func}) {
- if ($file{needs}{$func} eq 'extern') {
- $message = "No need to define NEED_${func}_GLOBAL when already needed globally";
- }
- elsif ($file{needs}{$func} eq 'static') {
- $message = "No need to define NEED_${func}_GLOBAL when only used in this file";
- }
- }
- if ($message) {
- diag($message);
- $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_${func}_GLOBAL\b.*$LF//mg);
- }
- }
-
- $file{needs_inc_ppport} = keys %{$file{uses}};
-
- if ($file{needs_inc_ppport}) {
- my $pp = '';
-
- for $func (sort keys %{$file{needs}}) {
- my $type = $file{needs}{$func};
- next if $type eq 'extern';
- my $suffix = $type eq 'global' ? '_GLOBAL' : '';
- unless (exists $file{"needed_$type"}{$func}) {
- if ($type eq 'global') {
- diag("Files [@{$global{needs}{$func}}] need $func, adding global request");
- }
- else {
- diag("File needs $func, adding static request");
- }
- $pp .= "#define NEED_$func$suffix\n";
- }
- }
-
- if ($pp && ($c =~ s/^(?=$HS*#$HS*define$HS+NEED_\w+)/$pp/m)) {
- $pp = '';
- $file{changes}++;
- }
-
- unless ($file{has_inc_ppport}) {
- diag("Needs to include '$ppport'");
- $pp .= qq(#include "$ppport"\n)
- }
-
- if ($pp) {
- $file{changes} += ($c =~ s/^($HS*#$HS*define$HS+NEED_\w+.*?)^/$1$pp/ms)
- || ($c =~ s/^(?=$HS*#$HS*include.*\Q$ppport\E)/$pp/m)
- || ($c =~ s/^($HS*#$HS*include.*XSUB.*\s*?)^/$1$pp/m)
- || ($c =~ s/^/$pp/);
- }
- }
- else {
- if ($file{has_inc_ppport}) {
- diag("No need to include '$ppport'");
- $file{changes} += ($c =~ s/^$HS*?#$HS*include.*\Q$ppport\E.*?$LF//m);
- }
- }
-
- # put back in our C comments
- my $ix;
- my $cppc = 0;
- my @ccom = @{$file{ccom}};
- for $ix (0 .. $#ccom) {
- if (!$opt{cplusplus} && $ccom[$ix] =~ s!^//!!) {
- $cppc++;
- $file{changes} += $c =~ s/$rccs$ix$rcce/$ccs$ccom[$ix] $cce/;
- }
- else {
- $c =~ s/$rccs$ix$rcce/$ccom[$ix]/;
- }
- }
-
- if ($cppc) {
- my $s = $cppc != 1 ? 's' : '';
- warning("Uses $cppc C++ style comment$s, which is not portable");
- }
-
- my $s = $warnings != 1 ? 's' : '';
- my $warn = $warnings ? " ($warnings warning$s)" : '';
- info("Analysis completed$warn");
-
- if ($file{changes}) {
- if (exists $opt{copy}) {
- my $newfile = "$filename$opt{copy}";
- if (-e $newfile) {
- error("'$newfile' already exists, refusing to write copy of '$filename'");
- }
- else {
- local *F;
- if (open F, ">$newfile") {
- info("Writing copy of '$filename' with changes to '$newfile'");
- print F $c;
- close F;
- }
- else {
- error("Cannot open '$newfile' for writing: $!");
- }
- }
- }
- elsif (exists $opt{patch} || $opt{changes}) {
- if (exists $opt{patch}) {
- unless ($patch_opened) {
- if (open PATCH, ">$opt{patch}") {
- $patch_opened = 1;
- }
- else {
- error("Cannot open '$opt{patch}' for writing: $!");
- delete $opt{patch};
- $opt{changes} = 1;
- goto fallback;
- }
- }
- mydiff(\*PATCH, $filename, $c);
- }
- else {
-fallback:
- info("Suggested changes:");
- mydiff(\*STDOUT, $filename, $c);
- }
- }
- else {
- my $s = $file{changes} == 1 ? '' : 's';
- info("$file{changes} potentially required change$s detected");
- }
- }
- else {
- info("Looks good");
- }
-}
-
-close PATCH if $patch_opened;
-
-exit 0;
-
-#######################################################################
-
-sub try_use { eval "use @_;"; return $@ eq '' }
-
-sub mydiff
-{
- local *F = shift;
- my($file, $str) = @_;
- my $diff;
-
- if (exists $opt{diff}) {
- $diff = run_diff($opt{diff}, $file, $str);
- }
-
- if (!defined $diff and try_use('Text::Diff')) {
- $diff = Text::Diff::diff($file, \$str, { STYLE => 'Unified' });
- $diff = <<HEADER . $diff;
---- $file
-+++ $file.patched
-HEADER
- }
-
- if (!defined $diff) {
- $diff = run_diff('diff -u', $file, $str);
- }
-
- if (!defined $diff) {
- $diff = run_diff('diff', $file, $str);
- }
-
- if (!defined $diff) {
- error("Cannot generate a diff. Please install Text::Diff or use --copy.");
- return;
- }
-
- print F $diff;
-}
-
-sub run_diff
-{
- my($prog, $file, $str) = @_;
- my $tmp = 'dppptemp';
- my $suf = 'aaa';
- my $diff = '';
- local *F;
-
- while (-e "$tmp.$suf") { $suf++ }
- $tmp = "$tmp.$suf";
-
- if (open F, ">$tmp") {
- print F $str;
- close F;
-
- if (open F, "$prog $file $tmp |") {
- while (<F>) {
- s/\Q$tmp\E/$file.patched/;
- $diff .= $_;
- }
- close F;
- unlink $tmp;
- return $diff;
- }
-
- unlink $tmp;
- }
- else {
- error("Cannot open '$tmp' for writing: $!");
- }
-
- return undef;
-}
-
-sub rec_depend
-{
- my($func, $seen) = @_;
- return () unless exists $depends{$func};
- $seen = {%{$seen||{}}};
- return () if $seen->{$func}++;
- my %s;
- grep !$s{$_}++, map { ($_, rec_depend($_, $seen)) } @{$depends{$func}};
-}
-
-sub parse_version
-{
- my $ver = shift;
-
- if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) {
- return ($1, $2, $3);
- }
- elsif ($ver !~ /^\d+\.[\d_]+$/) {
- die "cannot parse version '$ver'\n";
- }
-
- $ver =~ s/_//g;
- $ver =~ s/$/000000/;
-
- my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
-
- $v = int $v;
- $s = int $s;
-
- if ($r < 5 || ($r == 5 && $v < 6)) {
- if ($s % 10) {
- die "cannot parse version '$ver'\n";
- }
- }
-
- return ($r, $v, $s);
-}
-
-sub format_version
-{
- my $ver = shift;
-
- $ver =~ s/$/000000/;
- my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
-
- $v = int $v;
- $s = int $s;
-
- if ($r < 5 || ($r == 5 && $v < 6)) {
- if ($s % 10) {
- die "invalid version '$ver'\n";
- }
- $s /= 10;
-
- $ver = sprintf "%d.%03d", $r, $v;
- $s > 0 and $ver .= sprintf "_%02d", $s;
-
- return $ver;
- }
-
- return sprintf "%d.%d.%d", $r, $v, $s;
-}
-
-sub info
-{
- $opt{quiet} and return;
- print @_, "\n";
-}
-
-sub diag
-{
- $opt{quiet} and return;
- $opt{diag} and print @_, "\n";
-}
-
-sub warning
-{
- $opt{quiet} and return;
- print "*** ", @_, "\n";
-}
-
-sub error
-{
- print "*** ERROR: ", @_, "\n";
-}
-
-my %given_hints;
-my %given_warnings;
-sub hint
-{
- $opt{quiet} and return;
- my $func = shift;
- my $rv = 0;
- if (exists $warnings{$func} && !$given_warnings{$func}++) {
- my $warn = $warnings{$func};
- $warn =~ s!^!*** !mg;
- print "*** WARNING: $func\n", $warn;
- $rv++;
- }
- if ($opt{hints} && exists $hints{$func} && !$given_hints{$func}++) {
- my $hint = $hints{$func};
- $hint =~ s/^/ /mg;
- print " --- hint for $func ---\n", $hint;
- }
- $rv;
-}
-
-sub usage
-{
- my($usage) = do { local(@ARGV,$/)=($0); <> } =~ /^=head\d$HS+SYNOPSIS\s*^(.*?)\s*^=/ms;
- my %M = ( 'I' => '*' );
- $usage =~ s/^\s*perl\s+\S+/$^X $0/;
- $usage =~ s/([A-Z])<([^>]+)>/$M{$1}$2$M{$1}/g;
-
- print <<ENDUSAGE;
-
-Usage: $usage
-
-See perldoc $0 for details.
-
-ENDUSAGE
-
- exit 2;
-}
-
-sub strip
-{
- my $self = do { local(@ARGV,$/)=($0); <> };
- my($copy) = $self =~ /^=head\d\s+COPYRIGHT\s*^(.*?)^=\w+/ms;
- $copy =~ s/^(?=\S+)/ /gms;
- $self =~ s/^$HS+Do NOT edit.*?(?=^-)/$copy/ms;
- $self =~ s/^SKIP.*(?=^__DATA__)/SKIP
-if (\@ARGV && \$ARGV[0] eq '--unstrip') {
- eval { require Devel::PPPort };
- \$@ and die "Cannot require Devel::PPPort, please install.\\n";
- if (eval \$Devel::PPPort::VERSION < $VERSION) {
- die "$0 was originally generated with Devel::PPPort $VERSION.\\n"
- . "Your Devel::PPPort is only version \$Devel::PPPort::VERSION.\\n"
- . "Please install a newer version, or --unstrip will not work.\\n";
- }
- Devel::PPPort::WriteFile(\$0);
- exit 0;
-}
-print <<END;
-
-Sorry, but this is a stripped version of \$0.
-
-To be able to use its original script and doc functionality,
-please try to regenerate this file using:
-
- \$^X \$0 --unstrip
-
-END
-/ms;
- my($pl, $c) = $self =~ /(.*^__DATA__)(.*)/ms;
- $c =~ s{
- / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
- | ( "[^"\\]*(?:\\.[^"\\]*)*"
- | '[^'\\]*(?:\\.[^'\\]*)*' )
- | ($HS+) }{ defined $2 ? ' ' : ($1 || '') }gsex;
- $c =~ s!\s+$!!mg;
- $c =~ s!^$LF!!mg;
- $c =~ s!^\s*#\s*!#!mg;
- $c =~ s!^\s+!!mg;
-
- open OUT, ">$0" or die "cannot strip $0: $!\n";
- print OUT "$pl$c\n";
-
- exit 0;
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphdoc b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphdoc
deleted file mode 100644
index 09e987ae781..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphdoc
+++ /dev/null
@@ -1,346 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-=dontwarn
-
-NEED_function
-NEED_function_GLOBAL
-NEED_variable
-NEED_variable_GLOBAL
-DPPP_NAMESPACE
-
-=implementation
-
-=pod
-
-=head1 NAME
-
-ppport.h - Perl/Pollution/Portability version __VERSION__
-
-=head1 SYNOPSIS
-
- perl ppport.h [options] [source files]
-
- Searches current directory for files if no [source files] are given
-
- --help show short help
-
- --version show version
-
- --patch=file write one patch file with changes
- --copy=suffix write changed copies with suffix
- --diff=program use diff program and options
-
- --compat-version=version provide compatibility with Perl version
- --cplusplus accept C++ comments
-
- --quiet don't output anything except fatal errors
- --nodiag don't show diagnostics
- --nohints don't show hints
- --nochanges don't suggest changes
- --nofilter don't filter input files
-
- --strip strip all script and doc functionality from
- ppport.h
-
- --list-provided list provided API
- --list-unsupported list unsupported API
- --api-info=name show Perl API portability information
-
-=head1 COMPATIBILITY
-
-This version of F<ppport.h> is designed to support operation with Perl
-installations back to __MIN_PERL__, and has been tested up to __MAX_PERL__.
-
-=head1 OPTIONS
-
-=head2 --help
-
-Display a brief usage summary.
-
-=head2 --version
-
-Display the version of F<ppport.h>.
-
-=head2 --patch=I<file>
-
-If this option is given, a single patch file will be created if
-any changes are suggested. This requires a working diff program
-to be installed on your system.
-
-=head2 --copy=I<suffix>
-
-If this option is given, a copy of each file will be saved with
-the given suffix that contains the suggested changes. This does
-not require any external programs. Note that this does not
-automagically add a dot between the original filename and the
-suffix. If you want the dot, you have to include it in the option
-argument.
-
-If neither C<--patch> or C<--copy> are given, the default is to
-simply print the diffs for each file. This requires either
-C<Text::Diff> or a C<diff> program to be installed.
-
-=head2 --diff=I<program>
-
-Manually set the diff program and options to use. The default
-is to use C<Text::Diff>, when installed, and output unified
-context diffs.
-
-=head2 --compat-version=I<version>
-
-Tell F<ppport.h> to check for compatibility with the given
-Perl version. The default is to check for compatibility with Perl
-version __MIN_PERL__. You can use this option to reduce the output
-of F<ppport.h> if you intend to be backward compatible only
-down to a certain Perl version.
-
-=head2 --cplusplus
-
-Usually, F<ppport.h> will detect C++ style comments and
-replace them with C style comments for portability reasons.
-Using this option instructs F<ppport.h> to leave C++
-comments untouched.
-
-=head2 --quiet
-
-Be quiet. Don't print anything except fatal errors.
-
-=head2 --nodiag
-
-Don't output any diagnostic messages. Only portability
-alerts will be printed.
-
-=head2 --nohints
-
-Don't output any hints. Hints often contain useful portability
-notes. Warnings will still be displayed.
-
-=head2 --nochanges
-
-Don't suggest any changes. Only give diagnostic output and hints
-unless these are also deactivated.
-
-=head2 --nofilter
-
-Don't filter the list of input files. By default, files not looking
-like source code (i.e. not *.xs, *.c, *.cc, *.cpp or *.h) are skipped.
-
-=head2 --strip
-
-Strip all script and documentation functionality from F<ppport.h>.
-This reduces the size of F<ppport.h> dramatically and may be useful
-if you want to include F<ppport.h> in smaller modules without
-increasing their distribution size too much.
-
-The stripped F<ppport.h> will have a C<--unstrip> option that allows
-you to undo the stripping, but only if an appropriate C<Devel::PPPort>
-module is installed.
-
-=head2 --list-provided
-
-Lists the API elements for which compatibility is provided by
-F<ppport.h>. Also lists if it must be explicitly requested,
-if it has dependencies, and if there are hints or warnings for it.
-
-=head2 --list-unsupported
-
-Lists the API elements that are known not to be supported by
-F<ppport.h> and below which version of Perl they probably
-won't be available or work.
-
-=head2 --api-info=I<name>
-
-Show portability information for API elements matching I<name>.
-If I<name> is surrounded by slashes, it is interpreted as a regular
-expression.
-
-=head1 DESCRIPTION
-
-In order for a Perl extension (XS) module to be as portable as possible
-across differing versions of Perl itself, certain steps need to be taken.
-
-=over 4
-
-=item *
-
-Including this header is the first major one. This alone will give you
-access to a large part of the Perl API that hasn't been available in
-earlier Perl releases. Use
-
- perl ppport.h --list-provided
-
-to see which API elements are provided by ppport.h.
-
-=item *
-
-You should avoid using deprecated parts of the API. For example, using
-global Perl variables without the C<PL_> prefix is deprecated. Also,
-some API functions used to have a C<perl_> prefix. Using this form is
-also deprecated. You can safely use the supported API, as F<ppport.h>
-will provide wrappers for older Perl versions.
-
-=item *
-
-If you use one of a few functions or variables that were not present in
-earlier versions of Perl, and that can't be provided using a macro, you
-have to explicitly request support for these functions by adding one or
-more C<#define>s in your source code before the inclusion of F<ppport.h>.
-
-These functions or variables will be marked C<explicit> in the list shown
-by C<--list-provided>.
-
-Depending on whether you module has a single or multiple files that
-use such functions or variables, you want either C<static> or global
-variants.
-
-For a C<static> function or variable (used only in a single source
-file), use:
-
- #define NEED_function
- #define NEED_variable
-
-For a global function or variable (used in multiple source files),
-use:
-
- #define NEED_function_GLOBAL
- #define NEED_variable_GLOBAL
-
-Note that you mustn't have more than one global request for the
-same function or variable in your project.
-
- __EXPLICIT_API__
-
-To avoid namespace conflicts, you can change the namespace of the
-explicitly exported functions / variables using the C<DPPP_NAMESPACE>
-macro. Just C<#define> the macro before including C<ppport.h>:
-
- #define DPPP_NAMESPACE MyOwnNamespace_
- #include "ppport.h"
-
-The default namespace is C<DPPP_>.
-
-=back
-
-The good thing is that most of the above can be checked by running
-F<ppport.h> on your source code. See the next section for
-details.
-
-=head1 EXAMPLES
-
-To verify whether F<ppport.h> is needed for your module, whether you
-should make any changes to your code, and whether any special defines
-should be used, F<ppport.h> can be run as a Perl script to check your
-source code. Simply say:
-
- perl ppport.h
-
-The result will usually be a list of patches suggesting changes
-that should at least be acceptable, if not necessarily the most
-efficient solution, or a fix for all possible problems.
-
-If you know that your XS module uses features only available in
-newer Perl releases, if you're aware that it uses C++ comments,
-and if you want all suggestions as a single patch file, you could
-use something like this:
-
- perl ppport.h --compat-version=5.6.0 --cplusplus --patch=test.diff
-
-If you only want your code to be scanned without any suggestions
-for changes, use:
-
- perl ppport.h --nochanges
-
-You can specify a different C<diff> program or options, using
-the C<--diff> option:
-
- perl ppport.h --diff='diff -C 10'
-
-This would output context diffs with 10 lines of context.
-
-If you want to create patched copies of your files instead, use:
-
- perl ppport.h --copy=.new
-
-To display portability information for the C<newSVpvn> function,
-use:
-
- perl ppport.h --api-info=newSVpvn
-
-Since the argument to C<--api-info> can be a regular expression,
-you can use
-
- perl ppport.h --api-info=/_nomg$/
-
-to display portability information for all C<_nomg> functions or
-
- perl ppport.h --api-info=/./
-
-to display information for all known API elements.
-
-=head1 BUGS
-
-If this version of F<ppport.h> is causing failure during
-the compilation of this module, please check if newer versions
-of either this module or C<Devel::PPPort> are available on CPAN
-before sending a bug report.
-
-If F<ppport.h> was generated using the latest version of
-C<Devel::PPPort> and is causing failure of this module, please
-file a bug report here: L<https://github.com/mhx/Devel-PPPort/issues/>
-
-Please include the following information:
-
-=over 4
-
-=item 1.
-
-The complete output from running "perl -V"
-
-=item 2.
-
-This file.
-
-=item 3.
-
-The name and version of the module you were trying to build.
-
-=item 4.
-
-A full log of the build that failed.
-
-=item 5.
-
-Any other information that you think could be relevant.
-
-=back
-
-For the latest version of this code, please get the C<Devel::PPPort>
-module from CPAN.
-
-=head1 COPYRIGHT
-
-Version 3.x, Copyright (c) 2004-2013, Marcus Holland-Moritz.
-
-Version 2.x, Copyright (C) 2001, Paul Marquess.
-
-Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-See L<Devel::PPPort>.
-
-=cut
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphtest b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphtest
deleted file mode 100644
index cef6c409946..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/ppphtest
+++ /dev/null
@@ -1,908 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=tests plan => 238
-
-BEGIN {
- if ($ENV{'SKIP_SLOW_TESTS'}) {
- for (1 .. 238) {
- skip("skip: SKIP_SLOW_TESTS", 0);
- }
- exit 0;
- }
-}
-
-use File::Path qw/rmtree mkpath/;
-use Config;
-
-my $tmp = 'ppptmp';
-my $inc = '';
-my $isVMS = $^O eq 'VMS';
-my $isMAC = $^O eq 'MacOS';
-my $perl = find_perl();
-
-rmtree($tmp) if -d $tmp;
-mkpath($tmp) or die "mkpath $tmp: $!\n";
-chdir($tmp) or die "chdir $tmp: $!\n";
-
-if ($ENV{'PERL_CORE'}) {
- if (-d '../../lib') {
- if ($isVMS) {
- $inc = '"-I../../lib"';
- }
- elsif ($isMAC) {
- $inc = '-I:::lib';
- }
- else {
- $inc = '-I../../lib';
- }
- unshift @INC, '../../lib';
- }
-}
-if ($perl =~ m!^\./!) {
- $perl = ".$perl";
-}
-
-END {
- chdir('..') if !-d $tmp && -d "../$tmp";
- rmtree($tmp) if -d $tmp;
-}
-
-ok(&Devel::PPPort::WriteFile("ppport.h"));
-
-# Check GetFileContents()
-ok(-e "ppport.h", 1);
-
-my $data;
-
-open(F, "<ppport.h") or die "Failed to open ppport.h: $!";
-while(<F>) {
- $data .= $_;
-}
-close(F);
-
-ok(Devel::PPPort::GetFileContents("ppport.h"), $data);
-ok(Devel::PPPort::GetFileContents(), $data);
-
-sub comment
-{
- my $c = shift;
- $c =~ s/^/# | /mg;
- $c .= "\n" unless $c =~ /[\r\n]$/;
- print $c;
-}
-
-sub ppport
-{
- my @args = ('ppport.h', @_);
- unshift @args, $inc if $inc;
- my $run = $perl =~ m/\s/ ? qq("$perl") : $perl;
- $run .= ' -MMac::err=unix' if $isMAC;
- for (@args) {
- $_ = qq("$_") if $isVMS && /^[^"]/;
- $run .= " $_";
- }
- print "# *** running $run ***\n";
- $run .= ' 2>&1' unless $isMAC;
- my @out = `$run`;
- my $out = join '', @out;
- comment($out);
- return wantarray ? @out : $out;
-}
-
-sub matches
-{
- my($str, $re, $mod) = @_;
- my @n;
- eval "\@n = \$str =~ /$re/g$mod;";
- if ($@) {
- my $err = $@;
- $err =~ s/^/# *** /mg;
- print "# *** ERROR ***\n$err\n";
- }
- return $@ ? -42 : scalar @n;
-}
-
-sub eq_files
-{
- my($f1, $f2) = @_;
- return 0 unless -e $f1 && -e $f2;
- local *F;
- for ($f1, $f2) {
- print "# File: $_\n";
- unless (open F, $_) {
- print "# couldn't open $_: $!\n";
- return 0;
- }
- $_ = do { local $/; <F> };
- close F;
- comment($_);
- }
- return $f1 eq $f2;
-}
-
-my @tests;
-
-for (split /\s*={70,}\s*/, do { local $/; <DATA> }) {
- s/^\s+//; s/\s+$//;
- my($c, %f);
- ($c, @f{m/-{20,}\s+(\S+)\s+-{20,}/g}) = split /\s*-{20,}\s+\S+\s+-{20,}\s*/;
- push @tests, { code => $c, files => \%f };
-}
-
-my $t;
-for $t (@tests) {
- print "#\n", ('# ', '-'x70, "\n")x3, "#\n";
- my $f;
- for $f (keys %{$t->{files}}) {
- my @f = split /\//, $f;
- if (@f > 1) {
- pop @f;
- my $path = join '/', @f;
- mkpath($path) or die "mkpath('$path'): $!\n";
- }
- my $txt = $t->{files}{$f};
- local *F;
- open F, ">$f" or die "open $f: $!\n";
- print F "$txt\n";
- close F;
- $txt =~ s/^/# | /mg;
- print "# *** writing $f ***\n$txt\n";
- }
-
- my $code = $t->{code};
- $code =~ s/^/# | /mg;
-
- print "# *** evaluating test code ***\n$code\n";
-
- eval $t->{code};
- if ($@) {
- my $err = $@;
- $err =~ s/^/# *** /mg;
- print "# *** ERROR ***\n$err\n";
- }
- ok($@, '');
-
- for (keys %{$t->{files}}) {
- unlink $_ or die "unlink('$_'): $!\n";
- }
-}
-
-sub find_perl
-{
- my $perl = $^X;
-
- return $perl if $isVMS;
-
- my $exe = $Config{'_exe'} || '';
-
- if ($perl =~ /^perl\Q$exe\E$/i) {
- $perl = "perl$exe";
- eval "require File::Spec";
- if ($@) {
- $perl = "./$perl";
- } else {
- $perl = File::Spec->catfile(File::Spec->curdir(), $perl);
- }
- }
-
- if ($perl !~ /\Q$exe\E$/i) {
- $perl .= $exe;
- }
-
- warn "find_perl: cannot find $perl from $^X" unless -f $perl;
-
- return $perl;
-}
-
-__DATA__
-
-my $o = ppport(qw(--help));
-ok($o =~ /^Usage:.*ppport\.h/m);
-ok($o =~ /--help/m);
-
-$o = ppport(qw(--version));
-ok($o =~ /^This is.*ppport.*\d+\.\d+(?:_?\d+)?\.$/);
-
-$o = ppport(qw(--nochanges));
-ok($o =~ /^Scanning.*test\.xs/mi);
-ok($o =~ /Analyzing.*test\.xs/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok(matches($o, 'Analyzing', 'm'), 1);
-ok($o =~ /Uses Perl_newSViv instead of newSViv/);
-
-$o = ppport(qw(--quiet --nochanges));
-ok($o =~ /^\s*$/);
-
----------------------------- test.xs ------------------------------------------
-
-Perl_newSViv();
-
-===============================================================================
-
-# check if C and C++ comments are filtered correctly
-
-my $o = ppport(qw(--copy=a));
-ok($o =~ /^Scanning.*MyExt\.xs/mi);
-ok($o =~ /Analyzing.*MyExt\.xs/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Uses grok_bin/m);
-ok($o !~ /^Uses newSVpv/m);
-ok($o =~ /Uses 1 C\+\+ style comment/m);
-ok(eq_files('MyExt.xsa', 'MyExt.ra'));
-
-# check if C++ are left untouched with --cplusplus
-
-$o = ppport(qw(--copy=b --cplusplus));
-ok($o =~ /^Scanning.*MyExt\.xs/mi);
-ok($o =~ /Analyzing.*MyExt\.xs/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Uses grok_bin/m);
-ok($o !~ /^Uses newSVpv/m);
-ok($o !~ /Uses \d+ C\+\+ style comment/m);
-ok(eq_files('MyExt.xsb', 'MyExt.rb'));
-
-unlink qw(MyExt.xsa MyExt.xsb);
-
----------------------------- MyExt.xs -----------------------------------------
-
-newSVuv();
- // newSVpv();
- XPUSHs(foo);
-/* grok_bin(); */
-
----------------------------- MyExt.ra -----------------------------------------
-
-#include "ppport.h"
-newSVuv();
- /* newSVpv(); */
- XPUSHs(foo);
-/* grok_bin(); */
-
----------------------------- MyExt.rb -----------------------------------------
-
-#include "ppport.h"
-newSVuv();
- // newSVpv();
- XPUSHs(foo);
-/* grok_bin(); */
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges file1.xs));
-ok($o =~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /Analyzing.*file1\.xs/mi);
-ok($o !~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /^Uses newCONSTSUB/m);
-ok($o =~ /^Uses PL_expect/m);
-ok($o =~ /^Uses SvPV_nolen.*depends.*sv_2pv_flags/m);
-ok($o =~ /WARNING: PL_expect/m);
-ok($o =~ /hint for newCONSTSUB/m);
-ok($o =~ /^Analysis completed \(1 warning\)/m);
-ok($o =~ /^Looks good/m);
-
-$o = ppport(qw(--nochanges --nohints file1.xs));
-ok($o =~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /Analyzing.*file1\.xs/mi);
-ok($o !~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /^Uses newCONSTSUB/m);
-ok($o =~ /^Uses PL_expect/m);
-ok($o =~ /^Uses SvPV_nolen.*depends.*sv_2pv_flags/m);
-ok($o =~ /WARNING: PL_expect/m);
-ok($o !~ /hint for newCONSTSUB/m);
-ok($o =~ /^Analysis completed \(1 warning\)/m);
-ok($o =~ /^Looks good/m);
-
-$o = ppport(qw(--nochanges --nohints --nodiag file1.xs));
-ok($o =~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /Analyzing.*file1\.xs/mi);
-ok($o !~ /^Scanning.*file2\.xs/mi);
-ok($o !~ /^Uses newCONSTSUB/m);
-ok($o !~ /^Uses PL_expect/m);
-ok($o !~ /^Uses SvPV_nolen/m);
-ok($o =~ /WARNING: PL_expect/m);
-ok($o !~ /hint for newCONSTSUB/m);
-ok($o =~ /^Analysis completed \(1 warning\)/m);
-ok($o =~ /^Looks good/m);
-
-$o = ppport(qw(--nochanges --quiet file1.xs));
-ok($o =~ /^\s*$/);
-
-$o = ppport(qw(--nochanges file2.xs));
-ok($o =~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /Analyzing.*file2\.xs/mi);
-ok($o !~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /^Uses mXPUSHp/m);
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Looks good/m);
-ok($o =~ /^1 potentially required change detected/m);
-
-$o = ppport(qw(--nochanges --nohints file2.xs));
-ok($o =~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /Analyzing.*file2\.xs/mi);
-ok($o !~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /^Uses mXPUSHp/m);
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Looks good/m);
-ok($o =~ /^1 potentially required change detected/m);
-
-$o = ppport(qw(--nochanges --nohints --nodiag file2.xs));
-ok($o =~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /Analyzing.*file2\.xs/mi);
-ok($o !~ /^Scanning.*file1\.xs/mi);
-ok($o !~ /^Uses mXPUSHp/m);
-ok($o !~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Looks good/m);
-ok($o =~ /^1 potentially required change detected/m);
-
-$o = ppport(qw(--nochanges --quiet file2.xs));
-ok($o =~ /^\s*$/);
-
----------------------------- file1.xs -----------------------------------------
-
-#define NEED_newCONSTSUB
-#define NEED_sv_2pv_flags
-#define NEED_PL_parser
-#include "ppport.h"
-
-newCONSTSUB();
-SvPV_nolen();
-PL_expect = 0;
-
----------------------------- file2.xs -----------------------------------------
-
-mXPUSHp(foo);
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /^Scanning.*FooBar\.xs/mi);
-ok($o =~ /Analyzing.*FooBar\.xs/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok($o !~ /^Looks good/m);
-ok($o =~ /^Uses grok_bin/m);
-
----------------------------- FooBar.xs ----------------------------------------
-
-newSViv();
-XPUSHs(foo);
-grok_bin();
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /^Scanning.*First\.xs/mi);
-ok($o =~ /Analyzing.*First\.xs/mi);
-ok($o =~ /^Scanning.*second\.h/mi);
-ok($o =~ /Analyzing.*second\.h/mi);
-ok($o =~ /^Scanning.*sub.*third\.c/mi);
-ok($o =~ /Analyzing.*sub.*third\.c/mi);
-ok($o !~ /^Scanning.*foobar/mi);
-ok(matches($o, '^Scanning', 'm'), 3);
-
----------------------------- First.xs -----------------------------------------
-
-one
-
----------------------------- foobar.xyz ---------------------------------------
-
-two
-
----------------------------- second.h -----------------------------------------
-
-three
-
----------------------------- sub/third.c --------------------------------------
-
-four
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /Possibly wrong #define NEED_foobar in.*test.xs/i);
-
----------------------------- test.xs ------------------------------------------
-
-#define NEED_foobar
-
-===============================================================================
-
-# And now some complex "real-world" example
-
-my $o = ppport(qw(--copy=f));
-for (qw(main.xs mod1.c mod2.c mod3.c mod4.c mod5.c)) {
- ok($o =~ /^Scanning.*\Q$_\E/mi);
- ok($o =~ /Analyzing.*\Q$_\E/i);
-}
-ok(matches($o, '^Scanning', 'm'), 6);
-
-ok(matches($o, '^Writing copy of', 'm'), 5);
-ok(!-e "mod5.cf");
-
-for (qw(main.xs mod1.c mod2.c mod3.c mod4.c)) {
- ok($o =~ /^Writing copy of.*\Q$_\E.*with changes/mi);
- ok(-e "${_}f");
- ok(eq_files("${_}f", "${_}r"));
- unlink "${_}f";
-}
-
----------------------------- main.xs ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_newCONSTSUB
-#define NEED_grok_hex_GLOBAL
-#include "ppport.h"
-
-newCONSTSUB();
-grok_hex();
-Perl_grok_bin(aTHX_ foo, bar);
-
-/* some comment */
-
-perl_eval_pv();
-grok_bin();
-Perl_grok_bin(bar, sv_no);
-
----------------------------- mod1.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_grok_bin_GLOBAL
-#define NEED_newCONSTSUB
-#include "ppport.h"
-
-newCONSTSUB();
-grok_bin();
-{
- Perl_croak ("foo");
- Perl_sv_catpvf(); /* I know it's wrong ;-) */
-}
-
----------------------------- mod2.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_eval_pv
-#include "ppport.h"
-
-newSViv();
-
-/*
- eval_pv();
-*/
-
----------------------------- mod3.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-grok_oct();
-eval_pv();
-
----------------------------- mod4.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-START_MY_CXT;
-
----------------------------- mod5.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#include "ppport.h"
-call_pv();
-
----------------------------- main.xsr -----------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_eval_pv_GLOBAL
-#define NEED_grok_hex
-#define NEED_newCONSTSUB_GLOBAL
-#include "ppport.h"
-
-newCONSTSUB();
-grok_hex();
-grok_bin(foo, bar);
-
-/* some comment */
-
-eval_pv();
-grok_bin();
-grok_bin(bar, PL_sv_no);
-
----------------------------- mod1.cr ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_grok_bin_GLOBAL
-#include "ppport.h"
-
-newCONSTSUB();
-grok_bin();
-{
- Perl_croak (aTHX_ "foo");
- Perl_sv_catpvf(aTHX); /* I know it's wrong ;-) */
-}
-
----------------------------- mod2.cr ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-
-newSViv();
-
-/*
- eval_pv();
-*/
-
----------------------------- mod3.cr ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#define NEED_grok_oct
-#include "ppport.h"
-
-grok_oct();
-eval_pv();
-
----------------------------- mod4.cr ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include "ppport.h"
-
-START_MY_CXT;
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /Uses grok_hex/m);
-ok($o !~ /Looks good/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.8.0));
-ok($o !~ /Uses grok_hex/m);
-ok($o =~ /Looks good/m);
-
----------------------------- FooBar.xs ----------------------------------------
-
-grok_hex();
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /Uses SvPVutf8_force, which may not be portable/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.5.3));
-ok($o =~ /Uses SvPVutf8_force, which may not be portable/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.005_03));
-ok($o =~ /Uses SvPVutf8_force, which may not be portable/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.6.0));
-ok($o !~ /Uses SvPVutf8_force/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.006));
-ok($o !~ /Uses SvPVutf8_force/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.999.999));
-ok($o !~ /Uses SvPVutf8_force/m);
-
-$o = ppport(qw(--nochanges --compat-version=6.0.0));
-ok($o =~ /Only Perl 5 is supported/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.1000.999));
-ok($o =~ /Invalid version number: 5.1000.999/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.999.1000));
-ok($o =~ /Invalid version number: 5.999.1000/m);
-
----------------------------- FooBar.xs ----------------------------------------
-
-SvPVutf8_force();
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o !~ /potentially required change/);
-ok(matches($o, '^Looks good', 'm'), 2);
-
----------------------------- FooBar.xs ----------------------------------------
-
-#define NEED_grok_numeric_radix
-#define NEED_grok_number
-#include "ppport.h"
-
-GROK_NUMERIC_RADIX();
-grok_number();
-
----------------------------- foo.c --------------------------------------------
-
-#include "ppport.h"
-
-call_pv();
-
-===============================================================================
-
-# check --api-info option
-
-my $o = ppport(qw(--api-info=INT2PTR));
-my %found = map {($_ => 1)} $o =~ /^===\s+(\w+)\s+===/mg;
-ok(scalar keys %found, 1);
-ok(exists $found{INT2PTR});
-ok(matches($o, '^Supported at least starting from perl-5\.6\.0\.', 'm'), 1);
-ok(matches($o, '^Support by .*ppport.* provided back to perl-5\.003\.', 'm'), 1);
-
-$o = ppport(qw(--api-info=Zero));
-%found = map {($_ => 1)} $o =~ /^===\s+(\w+)\s+===/mg;
-ok(scalar keys %found, 1);
-ok(exists $found{Zero});
-ok(matches($o, '^No portability information available\.', 'm'), 1);
-
-$o = ppport(qw(--api-info=/Zero/));
-%found = map {($_ => 1)} $o =~ /^===\s+(\w+)\s+===/mg;
-ok(scalar keys %found, 2);
-ok(exists $found{Zero});
-ok(exists $found{ZeroD});
-
-===============================================================================
-
-# check --list-provided option
-
-my @o = ppport(qw(--list-provided));
-my %p;
-my $fail = 0;
-for (@o) {
- my($name, $flags) = /^(\w+)(?:\s+\[(\w+(?:,\s+\w+)*)\])?$/ or $fail++;
- exists $p{$name} and $fail++;
- $p{$name} = defined $flags ? { map { ($_ => 1) } $flags =~ /(\w+)/g } : '';
-}
-ok(@o > 100);
-ok($fail, 0);
-
-ok(exists $p{call_pv});
-ok(not ref $p{call_pv});
-
-ok(exists $p{grok_bin});
-ok(ref $p{grok_bin}, 'HASH');
-ok(scalar keys %{$p{grok_bin}}, 2);
-ok($p{grok_bin}{explicit});
-ok($p{grok_bin}{depend});
-
-ok(exists $p{gv_stashpvn});
-ok(ref $p{gv_stashpvn}, 'HASH');
-ok(scalar keys %{$p{gv_stashpvn}}, 2);
-ok($p{gv_stashpvn}{depend});
-ok($p{gv_stashpvn}{hint});
-
-ok(exists $p{sv_catpvf_mg});
-ok(ref $p{sv_catpvf_mg}, 'HASH');
-ok(scalar keys %{$p{sv_catpvf_mg}}, 2);
-ok($p{sv_catpvf_mg}{explicit});
-ok($p{sv_catpvf_mg}{depend});
-
-ok(exists $p{PL_signals});
-ok(ref $p{PL_signals}, 'HASH');
-ok(scalar keys %{$p{PL_signals}}, 1);
-ok($p{PL_signals}{explicit});
-
-===============================================================================
-
-# check --list-unsupported option
-
-my @o = ppport(qw(--list-unsupported));
-my %p;
-my $fail = 0;
-for (@o) {
- my($name, $ver) = /^(\w+)\s*\.+\s*([\d._]+)$/ or $fail++;
- exists $p{$name} and $fail++;
- $p{$name} = $ver;
-}
-ok(@o > 100);
-ok($fail, 0);
-
-ok(exists $p{utf8_distance});
-ok($p{utf8_distance}, '5.6.0');
-
-ok(exists $p{save_generic_svref});
-ok($p{save_generic_svref}, '5.005_03');
-
-===============================================================================
-
-# check --nofilter option
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /^Scanning.*foo\.cpp/mi);
-ok($o =~ /Analyzing.*foo\.cpp/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok(matches($o, 'Analyzing', 'm'), 1);
-
-$o = ppport(qw(--nochanges foo.cpp foo.o Makefile.PL));
-ok($o =~ /Skipping the following files \(use --nofilter to avoid this\):/m);
-ok(matches($o, '^\|\s+foo\.o', 'mi'), 1);
-ok(matches($o, '^\|\s+Makefile\.PL', 'mi'), 1);
-ok($o =~ /^Scanning.*foo\.cpp/mi);
-ok($o =~ /Analyzing.*foo\.cpp/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok(matches($o, 'Analyzing', 'm'), 1);
-
-$o = ppport(qw(--nochanges --nofilter foo.cpp foo.o Makefile.PL));
-ok($o =~ /^Scanning.*foo\.cpp/mi);
-ok($o =~ /Analyzing.*foo\.cpp/mi);
-ok($o =~ /^Scanning.*foo\.o/mi);
-ok($o =~ /Analyzing.*foo\.o/mi);
-ok($o =~ /^Scanning.*Makefile/mi);
-ok($o =~ /Analyzing.*Makefile/mi);
-ok(matches($o, '^Scanning', 'm'), 3);
-ok(matches($o, 'Analyzing', 'm'), 3);
-
----------------------------- foo.cpp ------------------------------------------
-
-newSViv();
-
----------------------------- foo.o --------------------------------------------
-
-newSViv();
-
----------------------------- Makefile.PL --------------------------------------
-
-newSViv();
-
-===============================================================================
-
-# check if explicit variables are handled propery
-
-my $o = ppport(qw(--copy=a));
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o =~ /^Uses PL_signals/m);
-ok($o =~ /^File needs PL_signals, adding static request/m);
-ok(eq_files('MyExt.xsa', 'MyExt.ra'));
-
-unlink qw(MyExt.xsa);
-
----------------------------- MyExt.xs -----------------------------------------
-
-PL_signals = 123;
-if (PL_signals == 42)
- foo();
-
----------------------------- MyExt.ra -----------------------------------------
-
-#define NEED_PL_signals
-#include "ppport.h"
-PL_signals = 123;
-if (PL_signals == 42)
- foo();
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges file.xs));
-ok($o =~ /^Uses PL_copline/m);
-ok($o =~ /WARNING: PL_copline/m);
-ok($o =~ /^Uses SvUOK/m);
-ok($o =~ /WARNING: Uses SvUOK, which may not be portable/m);
-ok($o =~ /^Analysis completed \(2 warnings\)/m);
-ok($o =~ /^Looks good/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.8.0 file.xs));
-ok($o =~ /^Uses PL_copline/m);
-ok($o =~ /WARNING: PL_copline/m);
-ok($o !~ /WARNING: Uses SvUOK, which may not be portable/m);
-ok($o =~ /^Analysis completed \(1 warning\)/m);
-ok($o =~ /^Looks good/m);
-
----------------------------- file.xs -----------------------------------------
-
-#define NEED_PL_parser
-#include "ppport.h"
-SvUOK
-PL_copline
-
-===============================================================================
-
-my $o = ppport(qw(--copy=f));
-
-for (qw(file.xs)) {
- ok($o =~ /^Writing copy of.*\Q$_\E.*with changes/mi);
- ok(-e "${_}f");
- ok(eq_files("${_}f", "${_}r"));
- unlink "${_}f";
-}
-
----------------------------- file.xs -----------------------------------------
-
-a_string = "sv_undef"
-a_char = 'sv_yes'
-#define SOMETHING defgv
-/* C-comment: sv_tainted */
-#
-# This is just a big XS comment using sv_no
-#
-/* The following, is NOT an XS comment! */
-# define SOMETHING_ELSE defgv + \
- sv_undef
-
----------------------------- file.xsr -----------------------------------------
-
-#include "ppport.h"
-a_string = "sv_undef"
-a_char = 'sv_yes'
-#define SOMETHING PL_defgv
-/* C-comment: sv_tainted */
-#
-# This is just a big XS comment using sv_no
-#
-/* The following, is NOT an XS comment! */
-# define SOMETHING_ELSE PL_defgv + \
- PL_sv_undef
-
-===============================================================================
-
-my $o = ppport(qw(--copy=f));
-
-for (qw(file.xs)) {
- ok($o =~ /^Writing copy of.*\Q$_\E.*with changes/mi);
- ok(-e "${_}f");
- ok(eq_files("${_}f", "${_}r"));
- unlink "${_}f";
-}
-
----------------------------- file.xs -----------------------------------------
-
-#define NEED_sv_2pv_flags
-#define NEED_vnewSVpvf
-#define NEED_warner
-#include "ppport.h"
-Perl_croak_nocontext("foo");
-Perl_croak("bar");
-croak("foo");
-croak_nocontext("foo");
-Perl_warner_nocontext("foo");
-Perl_warner("foo");
-warner_nocontext("foo");
-warner("foo");
-
----------------------------- file.xsr -----------------------------------------
-
-#define NEED_sv_2pv_flags
-#define NEED_vnewSVpvf
-#define NEED_warner
-#include "ppport.h"
-Perl_croak_nocontext("foo");
-Perl_croak(aTHX_ "bar");
-croak("foo");
-croak_nocontext("foo");
-Perl_warner_nocontext("foo");
-Perl_warner(aTHX_ "foo");
-warner_nocontext("foo");
-warner("foo");
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/pv_tools b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/pv_tools
deleted file mode 100644
index 41a4907c6bf..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/pv_tools
+++ /dev/null
@@ -1,274 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-pv_escape
-pv_pretty
-pv_display
-
-=implementation
-
-__UNDEFINED__ PERL_PV_ESCAPE_QUOTE 0x0001
-__UNDEFINED__ PERL_PV_PRETTY_QUOTE PERL_PV_ESCAPE_QUOTE
-__UNDEFINED__ PERL_PV_PRETTY_ELLIPSES 0x0002
-__UNDEFINED__ PERL_PV_PRETTY_LTGT 0x0004
-__UNDEFINED__ PERL_PV_ESCAPE_FIRSTCHAR 0x0008
-__UNDEFINED__ PERL_PV_ESCAPE_UNI 0x0100
-__UNDEFINED__ PERL_PV_ESCAPE_UNI_DETECT 0x0200
-__UNDEFINED__ PERL_PV_ESCAPE_ALL 0x1000
-__UNDEFINED__ PERL_PV_ESCAPE_NOBACKSLASH 0x2000
-__UNDEFINED__ PERL_PV_ESCAPE_NOCLEAR 0x4000
-__UNDEFINED__ PERL_PV_ESCAPE_RE 0x8000
-__UNDEFINED__ PERL_PV_PRETTY_NOCLEAR PERL_PV_ESCAPE_NOCLEAR
-
-__UNDEFINED__ PERL_PV_PRETTY_DUMP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE
-__UNDEFINED__ PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
-
-/* Hint: pv_escape
- * Note that unicode functionality is only backported to
- * those perl versions that support it. For older perl
- * versions, the implementation will fall back to bytes.
- */
-
-#ifndef pv_escape
-#if { NEED pv_escape }
-
-char *
-pv_escape(pTHX_ SV *dsv, char const * const str,
- const STRLEN count, const STRLEN max,
- STRLEN * const escaped, const U32 flags)
-{
- const char esc = flags & PERL_PV_ESCAPE_RE ? '%' : '\\';
- const char dq = flags & PERL_PV_ESCAPE_QUOTE ? '"' : esc;
- char octbuf[32] = "%123456789ABCDF";
- STRLEN wrote = 0;
- STRLEN chsize = 0;
- STRLEN readsize = 1;
-#if defined(is_utf8_string) && defined(utf8_to_uvchr)
- bool isuni = flags & PERL_PV_ESCAPE_UNI ? 1 : 0;
-#endif
- const char *pv = str;
- const char * const end = pv + count;
- octbuf[0] = esc;
-
- if (!(flags & PERL_PV_ESCAPE_NOCLEAR))
- sv_setpvs(dsv, "");
-
-#if defined(is_utf8_string) && defined(utf8_to_uvchr)
- if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count))
- isuni = 1;
-#endif
-
- for (; pv < end && (!max || wrote < max) ; pv += readsize) {
- const UV u =
-#if defined(is_utf8_string) && defined(utf8_to_uvchr)
- isuni ? utf8_to_uvchr((U8*)pv, &readsize) :
-#endif
- (U8)*pv;
- const U8 c = (U8)u & 0xFF;
-
- if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) {
- if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
- chsize = my_snprintf(octbuf, sizeof octbuf,
- "%" UVxf, u);
- else
- chsize = my_snprintf(octbuf, sizeof octbuf,
- "%cx{%" UVxf "}", esc, u);
- } else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) {
- chsize = 1;
- } else {
- if (c == dq || c == esc || !isPRINT(c)) {
- chsize = 2;
- switch (c) {
- case '\\' : /* fallthrough */
- case '%' : if (c == esc)
- octbuf[1] = esc;
- else
- chsize = 1;
- break;
- case '\v' : octbuf[1] = 'v'; break;
- case '\t' : octbuf[1] = 't'; break;
- case '\r' : octbuf[1] = 'r'; break;
- case '\n' : octbuf[1] = 'n'; break;
- case '\f' : octbuf[1] = 'f'; break;
- case '"' : if (dq == '"')
- octbuf[1] = '"';
- else
- chsize = 1;
- break;
- default: chsize = my_snprintf(octbuf, sizeof octbuf,
- pv < end && isDIGIT((U8)*(pv+readsize))
- ? "%c%03o" : "%c%o", esc, c);
- }
- } else {
- chsize = 1;
- }
- }
- if (max && wrote + chsize > max) {
- break;
- } else if (chsize > 1) {
- sv_catpvn(dsv, octbuf, chsize);
- wrote += chsize;
- } else {
- char tmp[2];
- my_snprintf(tmp, sizeof tmp, "%c", c);
- sv_catpvn(dsv, tmp, 1);
- wrote++;
- }
- if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
- break;
- }
- if (escaped != NULL)
- *escaped= pv - str;
- return SvPVX(dsv);
-}
-
-#endif
-#endif
-
-#ifndef pv_pretty
-#if { NEED pv_pretty }
-
-char *
-pv_pretty(pTHX_ SV *dsv, char const * const str, const STRLEN count,
- const STRLEN max, char const * const start_color, char const * const end_color,
- const U32 flags)
-{
- const U8 dq = (flags & PERL_PV_PRETTY_QUOTE) ? '"' : '%';
- STRLEN escaped;
-
- if (!(flags & PERL_PV_PRETTY_NOCLEAR))
- sv_setpvs(dsv, "");
-
- if (dq == '"')
- sv_catpvs(dsv, "\"");
- else if (flags & PERL_PV_PRETTY_LTGT)
- sv_catpvs(dsv, "<");
-
- if (start_color != NULL)
- sv_catpv(dsv, D_PPP_CONSTPV_ARG(start_color));
-
- pv_escape(dsv, str, count, max, &escaped, flags | PERL_PV_ESCAPE_NOCLEAR);
-
- if (end_color != NULL)
- sv_catpv(dsv, D_PPP_CONSTPV_ARG(end_color));
-
- if (dq == '"')
- sv_catpvs(dsv, "\"");
- else if (flags & PERL_PV_PRETTY_LTGT)
- sv_catpvs(dsv, ">");
-
- if ((flags & PERL_PV_PRETTY_ELLIPSES) && escaped < count)
- sv_catpvs(dsv, "...");
-
- return SvPVX(dsv);
-}
-
-#endif
-#endif
-
-#ifndef pv_display
-#if { NEED pv_display }
-
-char *
-pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
-{
- pv_pretty(dsv, pv, cur, pvlim, NULL, NULL, PERL_PV_PRETTY_DUMP);
- if (len > cur && pv[cur] == '\0')
- sv_catpvs(dsv, "\\0");
- return SvPVX(dsv);
-}
-
-#endif
-#endif
-
-=xsinit
-
-#define NEED_pv_escape
-#define NEED_pv_pretty
-#define NEED_pv_display
-
-=xsubs
-
-void
-pv_escape_can_unicode()
- PPCODE:
-#if defined(is_utf8_string) && defined(utf8_to_uvchr)
- XSRETURN_YES;
-#else
- XSRETURN_NO;
-#endif
-
-void
-pv_pretty()
- PREINIT:
- char *rv;
- PPCODE:
- EXTEND(SP, 8);
- ST(0) = sv_newmortal();
- rv = pv_pretty(ST(0), "foobarbaz",
- 9, 40, NULL, NULL, 0);
- ST(1) = sv_2mortal(newSVpv(rv, 0));
- ST(2) = sv_newmortal();
- rv = pv_pretty(ST(2), "pv_p\retty\n",
- 10, 40, "left", "right", PERL_PV_PRETTY_LTGT);
- ST(3) = sv_2mortal(newSVpv(rv, 0));
- ST(4) = sv_newmortal();
- rv = pv_pretty(ST(4), "N\303\275 Batter\303\255",
- 12, 20, NULL, NULL, PERL_PV_ESCAPE_UNI_DETECT);
- ST(5) = sv_2mortal(newSVpv(rv, 0));
- ST(6) = sv_newmortal();
- rv = pv_pretty(ST(6), "\303\201g\303\246tis Byrjun",
- 15, 18, NULL, NULL, PERL_PV_ESCAPE_UNI_DETECT|PERL_PV_PRETTY_ELLIPSES);
- ST(7) = sv_2mortal(newSVpv(rv, 0));
- XSRETURN(8);
-
-void
-pv_display()
- PREINIT:
- char *rv;
- PPCODE:
- EXTEND(SP, 4);
- ST(0) = sv_newmortal();
- rv = pv_display(ST(0), "foob\0rbaz", 9, 10, 20);
- ST(1) = sv_2mortal(newSVpv(rv, 0));
- ST(2) = sv_newmortal();
- rv = pv_display(ST(2), "pv_display", 10, 11, 5);
- ST(3) = sv_2mortal(newSVpv(rv, 0));
- XSRETURN(4);
-
-=tests plan => 13
-
-my $uni = &Devel::PPPort::pv_escape_can_unicode();
-
-# sanity check
-ok($uni ? $] >= 5.006 : $] < 5.008);
-
-my @r;
-
-@r = &Devel::PPPort::pv_pretty();
-ok($r[0], $r[1]);
-ok($r[0], "foobarbaz");
-ok($r[2], $r[3]);
-ok($r[2], '<leftpv_p\retty\nright>');
-ok($r[4], $r[5]);
-ok($r[4], $uni ? 'N\375 Batter\355' : 'N\303\275 Batter\303');
-ok($r[6], $r[7]);
-ok($r[6], $uni ? '\301g\346tis Byrju...' : '\303\201g\303\246t...');
-
-@r = &Devel::PPPort::pv_display();
-ok($r[0], $r[1]);
-ok($r[0], '"foob\0rbaz"\0');
-ok($r[2], $r[3]);
-ok($r[2] eq '"pv_di"...\0' ||
- $r[2] eq '"pv_d"...\0'); # some perl implementations are broken... :(
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/pvs b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/pvs
deleted file mode 100644
index b1be87b26bf..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/pvs
+++ /dev/null
@@ -1,154 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-
-=implementation
-
-/* concatenating with "" ensures that only literal strings are accepted as argument
- * note that STR_WITH_LEN() can't be used as argument to macros or functions that
- * under some configurations might be macros
- */
-
-__UNDEFINED__ STR_WITH_LEN(s) (s ""), (sizeof(s)-1)
-
-__UNDEFINED__ newSVpvs(str) newSVpvn(str "", sizeof(str) - 1)
-__UNDEFINED__ newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags)
-__UNDEFINED__ newSVpvs_share(str) newSVpvn_share(str "", sizeof(str) - 1, 0)
-__UNDEFINED__ sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1)
-__UNDEFINED__ sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1)
-__UNDEFINED__ hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval)
-__UNDEFINED__ hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0)
-
-__UNDEFINED__ gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt)
-__UNDEFINED__ gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags)
-
-__UNDEFINED__ get_cvs(name, flags) get_cvn_flags(name "", sizeof(name)-1, flags)
-
-=xsinit
-
-#define NEED_newSVpvn_share
-
-=xsubs
-
-void
-newSVpvs()
- PPCODE:
- mXPUSHs(newSVpvs("newSVpvs"));
- XSRETURN(1);
-
-void
-newSVpvs_flags()
- PPCODE:
- XPUSHs(newSVpvs_flags("newSVpvs_flags", SVs_TEMP));
- XSRETURN(1);
-
-int
-newSVpvs_share()
- PREINIT:
- SV *sv;
- U32 hash;
- CODE:
- RETVAL = 0;
- PERL_HASH(hash, "pvs", 3);
- sv = newSVpvs_share("pvs");
- RETVAL += strEQ(SvPV_nolen_const(sv), "pvs");
- RETVAL += SvCUR(sv) == 3;
- RETVAL += SvSHARED_HASH(sv) == hash;
- SvREFCNT_dec(sv);
- OUTPUT:
- RETVAL
-
-void
-sv_catpvs(sv)
- SV *sv
- PPCODE:
- sv_catpvs(sv, "sv_catpvs");
-
-void
-sv_setpvs(sv)
- SV *sv
- PPCODE:
- sv_setpvs(sv, "sv_setpvs");
-
-void
-hv_fetchs(hv)
- SV *hv
- PREINIT:
- SV **s;
- PPCODE:
- s = hv_fetchs((HV *) SvRV(hv), "hv_fetchs", 0);
- XPUSHs(sv_mortalcopy(*s));
- XSRETURN(1);
-
-void
-hv_stores(hv, sv)
- SV *hv
- SV *sv
- PPCODE:
- (void) hv_stores((HV *) SvRV(hv), "hv_stores", SvREFCNT_inc_simple(sv));
-
-SV*
-gv_fetchpvs()
- CODE:
- RETVAL = newRV_inc((SV*)gv_fetchpvs("Devel::PPPort::VERSION", 0, SVt_PV));
- OUTPUT:
- RETVAL
-
-SV*
-gv_stashpvs()
- CODE:
- RETVAL = newRV_inc((SV*)gv_stashpvs("Devel::PPPort", 0));
- OUTPUT:
- RETVAL
-
-int
-get_cvs()
- PREINIT:
- CV* xv;
- CODE:
- RETVAL = 0;
- xv = get_cvs("Devel::PPPort::foobar", 0);
- if(xv == NULL) RETVAL++;
- xv = get_cvs("Devel::PPPort::foobar", GV_ADDMULTI);
- if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
- xv = get_cvs("Devel::PPPort::get_cvs", 0);
- if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
-OUTPUT:
- RETVAL
-
-
-=tests plan => 12
-
-my $x = 'foo';
-
-ok(Devel::PPPort::newSVpvs(), "newSVpvs");
-ok(Devel::PPPort::newSVpvs_flags(), "newSVpvs_flags");
-ok(Devel::PPPort::newSVpvs_share(), 3);
-
-Devel::PPPort::sv_catpvs($x);
-ok($x, "foosv_catpvs");
-
-Devel::PPPort::sv_setpvs($x);
-ok($x, "sv_setpvs");
-
-my %h = ('hv_fetchs' => 42);
-Devel::PPPort::hv_stores(\%h, 4711);
-ok(scalar keys %h, 2);
-ok(exists $h{'hv_stores'});
-ok($h{'hv_stores'}, 4711);
-ok(Devel::PPPort::hv_fetchs(\%h), 42);
-ok(Devel::PPPort::gv_fetchpvs(), \*Devel::PPPort::VERSION);
-ok(Devel::PPPort::gv_stashpvs(), \%Devel::PPPort::);
-
-ok(Devel::PPPort::get_cvs(), 3);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/shared_pv b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/shared_pv
deleted file mode 100644
index 921076fd320..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/shared_pv
+++ /dev/null
@@ -1,90 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-newSVpvn_share
-__UNDEFINED__
-
-=implementation
-
-/* Hint: newSVpvn_share
- * The SVs created by this function only mimic the behaviour of
- * shared PVs without really being shared. Only use if you know
- * what you're doing.
- */
-
-#ifndef newSVpvn_share
-
-#if { NEED newSVpvn_share }
-
-SV *
-newSVpvn_share(pTHX_ const char *src, I32 len, U32 hash)
-{
- SV *sv;
- if (len < 0)
- len = -len;
- if (!hash)
- PERL_HASH(hash, (char*) src, len);
- sv = newSVpvn((char *) src, len);
- sv_upgrade(sv, SVt_PVIV);
- SvIVX(sv) = hash;
- SvREADONLY_on(sv);
- SvPOK_on(sv);
- return sv;
-}
-
-#endif
-
-#endif
-
-__UNDEFINED__ SvSHARED_HASH(sv) (0 + SvUVX(sv))
-
-=xsinit
-
-#define NEED_newSVpvn_share
-
-=xsubs
-
-int
-newSVpvn_share()
- PREINIT:
- const char *s;
- SV *sv;
- STRLEN len;
- U32 hash;
- CODE:
- RETVAL = 0;
- s = "mhx";
- len = 3;
- PERL_HASH(hash, (char *) s, len);
- sv = newSVpvn_share(s, len, 0);
- s = 0;
- RETVAL += strEQ(SvPV_nolen_const(sv), "mhx");
- RETVAL += SvCUR(sv) == len;
- RETVAL += SvSHARED_HASH(sv) == hash;
- SvREFCNT_dec(sv);
- s = "foobar";
- len = 6;
- PERL_HASH(hash, (char *) s, len);
- sv = newSVpvn_share(s, -(I32) len, hash);
- s = 0;
- RETVAL += strEQ(SvPV_nolen_const(sv), "foobar");
- RETVAL += SvCUR(sv) == len;
- RETVAL += SvSHARED_HASH(sv) == hash;
- SvREFCNT_dec(sv);
- OUTPUT:
- RETVAL
-
-
-=tests plan => 1
-
-ok(&Devel::PPPort::newSVpvn_share(), 6);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/snprintf b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/snprintf
deleted file mode 100644
index b700d8b8ef8..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/snprintf
+++ /dev/null
@@ -1,63 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-my_snprintf
-
-=implementation
-
-#if !defined(my_snprintf)
-#if { NEED my_snprintf }
-
-int
-my_snprintf(char *buffer, const Size_t len, const char *format, ...)
-{
- dTHX;
- int retval;
- va_list ap;
- va_start(ap, format);
-#ifdef HAS_VSNPRINTF
- retval = vsnprintf(buffer, len, format, ap);
-#else
- retval = vsprintf(buffer, format, ap);
-#endif
- va_end(ap);
- if (retval < 0 || (len > 0 && (Size_t)retval >= len))
- Perl_croak(aTHX_ "panic: my_snprintf buffer overflow");
- return retval;
-}
-
-#endif
-#endif
-
-=xsinit
-
-#define NEED_my_snprintf
-
-=xsubs
-
-void
-my_snprintf()
- PREINIT:
- char buf[128];
- int len;
- PPCODE:
- len = my_snprintf(buf, sizeof buf, "foo%s%d", "bar", 42);
- mXPUSHi(len);
- mXPUSHs(newSVpv(buf, 0));
- XSRETURN(2);
-
-=tests plan => 2
-
-my($l, $s) = Devel::PPPort::my_snprintf();
-ok($l, 8);
-ok($s, "foobar42");
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/sprintf b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/sprintf
deleted file mode 100644
index 8d45411b4a9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/sprintf
+++ /dev/null
@@ -1,55 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-my_sprintf
-
-=implementation
-
-#if !defined(my_sprintf)
-#if { NEED my_sprintf }
-
-int
-my_sprintf(char *buffer, const char* pat, ...)
-{
- va_list args;
- va_start(args, pat);
- vsprintf(buffer, pat, args);
- va_end(args);
- return strlen(buffer);
-}
-
-#endif
-#endif
-
-=xsinit
-
-#define NEED_my_sprintf
-
-=xsubs
-
-void
-my_sprintf()
- PREINIT:
- char buf[128];
- int len;
- PPCODE:
- len = my_sprintf(buf, "foo%s%d", "bar", 42);
- mXPUSHi(len);
- mXPUSHs(newSVpv(buf, 0));
- XSRETURN(2);
-
-=tests plan => 2
-
-my($l, $s) = Devel::PPPort::my_sprintf();
-ok($l, 8);
-ok($s, "foobar42");
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/strlfuncs b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/strlfuncs
deleted file mode 100644
index 82b5e435410..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/strlfuncs
+++ /dev/null
@@ -1,107 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-my_strlcat
-my_strlcpy
-
-=implementation
-
-#if !defined(my_strlcat)
-#if { NEED my_strlcat }
-
-Size_t
-my_strlcat(char *dst, const char *src, Size_t size)
-{
- Size_t used, length, copy;
-
- used = strlen(dst);
- length = strlen(src);
- if (size > 0 && used < size - 1) {
- copy = (length >= size - used) ? size - used - 1 : length;
- memcpy(dst + used, src, copy);
- dst[used + copy] = '\0';
- }
- return used + length;
-}
-#endif
-#endif
-
-#if !defined(my_strlcpy)
-#if { NEED my_strlcpy }
-
-Size_t
-my_strlcpy(char *dst, const char *src, Size_t size)
-{
- Size_t length, copy;
-
- length = strlen(src);
- if (size > 0) {
- copy = (length >= size) ? size - 1 : length;
- memcpy(dst, src, copy);
- dst[copy] = '\0';
- }
- return length;
-}
-
-#endif
-#endif
-
-=xsinit
-
-#define NEED_my_strlcat
-#define NEED_my_strlcpy
-
-=xsubs
-
-void
-my_strlfunc()
- PREINIT:
- char buf[8];
- int len;
- PPCODE:
- len = my_strlcpy(buf, "foo", sizeof(buf));
- mXPUSHi(len);
- mXPUSHs(newSVpv(buf, 0));
- len = my_strlcat(buf, "bar", sizeof(buf));
- mXPUSHi(len);
- mXPUSHs(newSVpv(buf, 0));
- len = my_strlcat(buf, "baz", sizeof(buf));
- mXPUSHi(len);
- mXPUSHs(newSVpv(buf, 0));
- len = my_strlcpy(buf, "1234567890", sizeof(buf));
- mXPUSHi(len);
- mXPUSHs(newSVpv(buf, 0));
- len = my_strlcpy(buf, "1234", sizeof(buf));
- mXPUSHi(len);
- mXPUSHs(newSVpv(buf, 0));
- len = my_strlcat(buf, "567890123456", sizeof(buf));
- mXPUSHi(len);
- mXPUSHs(newSVpv(buf, 0));
- XSRETURN(12);
-
-=tests plan => 13
-
-my @e = (3, 'foo',
- 6, 'foobar',
- 9, 'foobarb',
- 10, '1234567',
- 4, '1234',
- 16, '1234567',
- );
-my @r = Devel::PPPort::my_strlfunc();
-
-ok(@e == @r);
-
-for (0 .. $#e) {
- ok($r[$_], $e[$_]);
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/sv_xpvf b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/sv_xpvf
deleted file mode 100644
index 3a6c8b0e98f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/sv_xpvf
+++ /dev/null
@@ -1,313 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-vnewSVpvf
-sv_vcatpvf
-sv_vsetpvf
-
-sv_catpvf_mg
-sv_catpvf_mg_nocontext
-sv_vcatpvf_mg
-
-sv_setpvf_mg
-sv_setpvf_mg_nocontext
-sv_vsetpvf_mg
-
-=implementation
-
-#if { VERSION >= 5.004 } && !defined(vnewSVpvf)
-#if { NEED vnewSVpvf }
-
-SV *
-vnewSVpvf(pTHX_ const char *pat, va_list *args)
-{
- register SV *sv = newSV(0);
- sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*));
- return sv;
-}
-
-#endif
-#endif
-
-#if { VERSION >= 5.004 } && !defined(sv_vcatpvf)
-# define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*))
-#endif
-
-#if { VERSION >= 5.004 } && !defined(sv_vsetpvf)
-# define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*))
-#endif
-
-#if { VERSION >= 5.004 } && !defined(sv_catpvf_mg)
-#if { NEED sv_catpvf_mg }
-
-void
-sv_catpvf_mg(pTHX_ SV *sv, const char *pat, ...)
-{
- va_list args;
- va_start(args, pat);
- sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
- SvSETMAGIC(sv);
- va_end(args);
-}
-
-#endif
-#endif
-
-#ifdef PERL_IMPLICIT_CONTEXT
-#if { VERSION >= 5.004 } && !defined(sv_catpvf_mg_nocontext)
-#if { NEED sv_catpvf_mg_nocontext }
-
-void
-sv_catpvf_mg_nocontext(SV *sv, const char *pat, ...)
-{
- dTHX;
- va_list args;
- va_start(args, pat);
- sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
- SvSETMAGIC(sv);
- va_end(args);
-}
-
-#endif
-#endif
-#endif
-
-/* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */
-#ifndef sv_catpvf_mg
-# ifdef PERL_IMPLICIT_CONTEXT
-# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
-# else
-# define sv_catpvf_mg Perl_sv_catpvf_mg
-# endif
-#endif
-
-#if { VERSION >= 5.004 } && !defined(sv_vcatpvf_mg)
-# define sv_vcatpvf_mg(sv, pat, args) \
- STMT_START { \
- sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \
- SvSETMAGIC(sv); \
- } STMT_END
-#endif
-
-#if { VERSION >= 5.004 } && !defined(sv_setpvf_mg)
-#if { NEED sv_setpvf_mg }
-
-void
-sv_setpvf_mg(pTHX_ SV *sv, const char *pat, ...)
-{
- va_list args;
- va_start(args, pat);
- sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
- SvSETMAGIC(sv);
- va_end(args);
-}
-
-#endif
-#endif
-
-#ifdef PERL_IMPLICIT_CONTEXT
-#if { VERSION >= 5.004 } && !defined(sv_setpvf_mg_nocontext)
-#if { NEED sv_setpvf_mg_nocontext }
-
-void
-sv_setpvf_mg_nocontext(SV *sv, const char *pat, ...)
-{
- dTHX;
- va_list args;
- va_start(args, pat);
- sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
- SvSETMAGIC(sv);
- va_end(args);
-}
-
-#endif
-#endif
-#endif
-
-/* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */
-#ifndef sv_setpvf_mg
-# ifdef PERL_IMPLICIT_CONTEXT
-# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
-# else
-# define sv_setpvf_mg Perl_sv_setpvf_mg
-# endif
-#endif
-
-#if { VERSION >= 5.004 } && !defined(sv_vsetpvf_mg)
-# define sv_vsetpvf_mg(sv, pat, args) \
- STMT_START { \
- sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \
- SvSETMAGIC(sv); \
- } STMT_END
-#endif
-
-=xsinit
-
-#define NEED_vnewSVpvf
-#define NEED_sv_catpvf_mg
-#define NEED_sv_catpvf_mg_nocontext
-#define NEED_sv_setpvf_mg
-#define NEED_sv_setpvf_mg_nocontext
-
-=xsmisc
-
-static SV * test_vnewSVpvf(pTHX_ const char *pat, ...)
-{
- SV *sv;
- va_list args;
- va_start(args, pat);
-#if { VERSION >= 5.004 }
- sv = vnewSVpvf(pat, &args);
-#else
- sv = newSVpv((char *) pat, 0);
-#endif
- va_end(args);
- return sv;
-}
-
-static void test_sv_vcatpvf(pTHX_ SV *sv, const char *pat, ...)
-{
- va_list args;
- va_start(args, pat);
-#if { VERSION >= 5.004 }
- sv_vcatpvf(sv, pat, &args);
-#else
- sv_catpv(sv, (char *) pat);
-#endif
- va_end(args);
-}
-
-static void test_sv_vsetpvf(pTHX_ SV *sv, const char *pat, ...)
-{
- va_list args;
- va_start(args, pat);
-#if { VERSION >= 5.004 }
- sv_vsetpvf(sv, pat, &args);
-#else
- sv_setpv(sv, (char *) pat);
-#endif
- va_end(args);
-}
-
-=xsubs
-
-SV *
-vnewSVpvf()
- CODE:
- RETVAL = test_vnewSVpvf(aTHX_ "%s-%d", "Perl", 42);
- OUTPUT:
- RETVAL
-
-SV *
-sv_vcatpvf(sv)
- SV *sv
- CODE:
- RETVAL = newSVsv(sv);
- test_sv_vcatpvf(aTHX_ RETVAL, "%s-%d", "Perl", 42);
- OUTPUT:
- RETVAL
-
-SV *
-sv_vsetpvf(sv)
- SV *sv
- CODE:
- RETVAL = newSVsv(sv);
- test_sv_vsetpvf(aTHX_ RETVAL, "%s-%d", "Perl", 42);
- OUTPUT:
- RETVAL
-
-void
-sv_catpvf_mg(sv)
- SV *sv
- CODE:
-#if { VERSION >= 5.004 }
- sv_catpvf_mg(sv, "%s-%d", "Perl", 42);
-#endif
-
-void
-Perl_sv_catpvf_mg(sv)
- SV *sv
- CODE:
-#if { VERSION >= 5.004 }
- Perl_sv_catpvf_mg(aTHX_ sv, "%s-%d", "-Perl", 43);
-#endif
-
-void
-sv_catpvf_mg_nocontext(sv)
- SV *sv
- CODE:
-#if { VERSION >= 5.004 }
-#ifdef PERL_IMPLICIT_CONTEXT
- sv_catpvf_mg_nocontext(sv, "%s-%d", "-Perl", 44);
-#else
- sv_catpvf_mg(sv, "%s-%d", "-Perl", 44);
-#endif
-#endif
-
-void
-sv_setpvf_mg(sv)
- SV *sv
- CODE:
-#if { VERSION >= 5.004 }
- sv_setpvf_mg(sv, "%s-%d", "mhx", 42);
-#endif
-
-void
-Perl_sv_setpvf_mg(sv)
- SV *sv
- CODE:
-#if { VERSION >= 5.004 }
- Perl_sv_setpvf_mg(aTHX_ sv, "%s-%d", "foo", 43);
-#endif
-
-void
-sv_setpvf_mg_nocontext(sv)
- SV *sv
- CODE:
-#if { VERSION >= 5.004 }
-#ifdef PERL_IMPLICIT_CONTEXT
- sv_setpvf_mg_nocontext(sv, "%s-%d", "bar", 44);
-#else
- sv_setpvf_mg(sv, "%s-%d", "bar", 44);
-#endif
-#endif
-
-=tests plan => 9
-
-use Tie::Hash;
-my %h;
-tie %h, 'Tie::StdHash';
-$h{foo} = 'foo-';
-$h{bar} = '';
-
-ok(&Devel::PPPort::vnewSVpvf(), $] >= 5.004 ? 'Perl-42' : '%s-%d');
-ok(&Devel::PPPort::sv_vcatpvf('1-2-3-'), $] >= 5.004 ? '1-2-3-Perl-42' : '1-2-3-%s-%d');
-ok(&Devel::PPPort::sv_vsetpvf('1-2-3-'), $] >= 5.004 ? 'Perl-42' : '%s-%d');
-
-&Devel::PPPort::sv_catpvf_mg($h{foo});
-ok($h{foo}, $] >= 5.004 ? 'foo-Perl-42' : 'foo-');
-
-&Devel::PPPort::Perl_sv_catpvf_mg($h{foo});
-ok($h{foo}, $] >= 5.004 ? 'foo-Perl-42-Perl-43' : 'foo-');
-
-&Devel::PPPort::sv_catpvf_mg_nocontext($h{foo});
-ok($h{foo}, $] >= 5.004 ? 'foo-Perl-42-Perl-43-Perl-44' : 'foo-');
-
-&Devel::PPPort::sv_setpvf_mg($h{bar});
-ok($h{bar}, $] >= 5.004 ? 'mhx-42' : '');
-
-&Devel::PPPort::Perl_sv_setpvf_mg($h{bar});
-ok($h{bar}, $] >= 5.004 ? 'foo-43' : '');
-
-&Devel::PPPort::sv_setpvf_mg_nocontext($h{bar});
-ok($h{bar}, $] >= 5.004 ? 'bar-44' : '');
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/threads b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/threads
deleted file mode 100644
index 830fadfb4b5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/threads
+++ /dev/null
@@ -1,68 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-aTHXR
-aTHXR_
-dTHXR
-
-=implementation
-
-__UNDEFINED__ dTHR dNOOP
-
-__UNDEFINED__ dTHX dNOOP
-__UNDEFINED__ dTHXa(x) dNOOP
-
-__UNDEFINED__ pTHX void
-__UNDEFINED__ pTHX_
-__UNDEFINED__ aTHX
-__UNDEFINED__ aTHX_
-
-#if { VERSION < 5.6.0 }
-# ifdef USE_THREADS
-# define aTHXR thr
-# define aTHXR_ thr,
-# else
-# define aTHXR
-# define aTHXR_
-# endif
-# define dTHXR dTHR
-#else
-# define aTHXR aTHX
-# define aTHXR_ aTHX_
-# define dTHXR dTHX
-#endif
-
-__UNDEFINED__ dTHXoa(x) dTHXa(x)
-
-=xsubs
-
-IV
-no_THX_arg(sv)
- SV *sv
- CODE:
- RETVAL = 1 + sv_2iv(sv);
- OUTPUT:
- RETVAL
-
-void
-with_THX_arg(error)
- char *error
- PPCODE:
- Perl_croak(aTHX_ "%s", error);
-
-=tests plan => 2
-
-ok(&Devel::PPPort::no_THX_arg("42"), 43);
-eval { &Devel::PPPort::with_THX_arg("yes\n"); };
-ok($@ =~ /^yes/);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/uv b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/uv
deleted file mode 100644
index c1831e9c06a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/uv
+++ /dev/null
@@ -1,122 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-SvUOK
-
-=implementation
-
-__UNDEFINED__ sv_setuv(sv, uv) \
- STMT_START { \
- UV TeMpUv = uv; \
- if (TeMpUv <= IV_MAX) \
- sv_setiv(sv, TeMpUv); \
- else \
- sv_setnv(sv, (double)TeMpUv); \
- } STMT_END
-
-__UNDEFINED__ newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))
-
-__UNDEFINED__ sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv)))
-__UNDEFINED__ SvUVX(sv) ((UV)SvIVX(sv))
-__UNDEFINED__ SvUVXx(sv) SvUVX(sv)
-__UNDEFINED__ SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv))
-__UNDEFINED__ SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv))
-
-/* Hint: sv_uv
- * Always use the SvUVx() macro instead of sv_uv().
- */
-__UNDEFINED__ sv_uv(sv) SvUVx(sv)
-
-#if !defined(SvUOK) && defined(SvIOK_UV)
-# define SvUOK(sv) SvIOK_UV(sv)
-#endif
-
-__UNDEFINED__ XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) )
-__UNDEFINED__ XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END
-
-__UNDEFINED__ PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END
-__UNDEFINED__ XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END
-
-=xsubs
-
-SV *
-sv_setuv(uv)
- UV uv
- CODE:
- RETVAL = newSViv(1);
- sv_setuv(RETVAL, uv);
- OUTPUT:
- RETVAL
-
-SV *
-newSVuv(uv)
- UV uv
- CODE:
- RETVAL = newSVuv(uv);
- OUTPUT:
- RETVAL
-
-UV
-sv_2uv(sv)
- SV *sv
- CODE:
- RETVAL = sv_2uv(sv);
- OUTPUT:
- RETVAL
-
-UV
-SvUVx(sv)
- SV *sv
- CODE:
- sv--;
- RETVAL = SvUVx(++sv);
- OUTPUT:
- RETVAL
-
-void
-XSRETURN_UV()
- PPCODE:
- XSRETURN_UV(42);
-
-void
-PUSHu()
- PREINIT:
- dTARG;
- PPCODE:
- TARG = sv_newmortal();
- EXTEND(SP, 1);
- PUSHu(42);
- XSRETURN(1);
-
-void
-XPUSHu()
- PREINIT:
- dTARG;
- PPCODE:
- TARG = sv_newmortal();
- XPUSHu(43);
- XSRETURN(1);
-
-=tests plan => 10
-
-ok(&Devel::PPPort::sv_setuv(42), 42);
-ok(&Devel::PPPort::newSVuv(123), 123);
-ok(&Devel::PPPort::sv_2uv("4711"), 4711);
-ok(&Devel::PPPort::sv_2uv("1735928559"), 1735928559);
-ok(&Devel::PPPort::SvUVx("1735928559"), 1735928559);
-ok(&Devel::PPPort::SvUVx(1735928559), 1735928559);
-ok(&Devel::PPPort::SvUVx(0xdeadbeef), 0xdeadbeef);
-ok(&Devel::PPPort::XSRETURN_UV(), 42);
-ok(&Devel::PPPort::PUSHu(), 42);
-ok(&Devel::PPPort::XPUSHu(), 43);
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/variables b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/variables
deleted file mode 100644
index 7ae6fabcd5a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/variables
+++ /dev/null
@@ -1,486 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-PL_ppaddr
-PL_no_modify
-PL_DBsignal
-PL_DBsingle
-PL_DBsub
-PL_DBtrace
-PL_Sv
-PL_bufend
-PL_bufptr
-PL_compiling
-PL_copline
-PL_curcop
-PL_curstash
-PL_debstash
-PL_defgv
-PL_diehook
-PL_dirty
-PL_dowarn
-PL_errgv
-PL_error_count
-PL_expect
-PL_hexdigit
-PL_hints
-PL_in_my
-PL_in_my_stash
-PL_laststatval
-PL_lex_state
-PL_lex_stuff
-PL_linestr
-PL_na
-PL_parser
-PL_perl_destruct_level
-PL_perldb
-PL_rsfp_filters
-PL_rsfp
-PL_stack_base
-PL_stack_sp
-PL_statcache
-PL_stdingv
-PL_sv_arenaroot
-PL_sv_no
-PL_sv_undef
-PL_sv_yes
-PL_tainted
-PL_tainting
-PL_tokenbuf
-PL_signals
-PERL_SIGNALS_UNSAFE_FLAG
-
-=implementation
-
-#ifndef PERL_SIGNALS_UNSAFE_FLAG
-
-#define PERL_SIGNALS_UNSAFE_FLAG 0x0001
-
-#if { VERSION < 5.8.0 }
-# define D_PPP_PERL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG
-#else
-# define D_PPP_PERL_SIGNALS_INIT 0
-#endif
-
-__NEED_VAR__ U32 PL_signals = D_PPP_PERL_SIGNALS_INIT;
-
-#endif
-
-/* Hint: PL_ppaddr
- * Calling an op via PL_ppaddr requires passing a context argument
- * for threaded builds. Since the context argument is different for
- * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will
- * automatically be defined as the correct argument.
- */
-
-#if { VERSION <= 5.005_05 }
-/* Replace: 1 */
-# define PL_ppaddr ppaddr
-# define PL_no_modify no_modify
-/* Replace: 0 */
-#endif
-
-#if { VERSION <= 5.004_05 }
-/* Replace: 1 */
-# define PL_DBsignal DBsignal
-# define PL_DBsingle DBsingle
-# define PL_DBsub DBsub
-# define PL_DBtrace DBtrace
-# define PL_Sv Sv
-# define PL_bufend bufend
-# define PL_bufptr bufptr
-# define PL_compiling compiling
-# define PL_copline copline
-# define PL_curcop curcop
-# define PL_curstash curstash
-# define PL_debstash debstash
-# define PL_defgv defgv
-# define PL_diehook diehook
-# define PL_dirty dirty
-# define PL_dowarn dowarn
-# define PL_errgv errgv
-# define PL_error_count error_count
-# define PL_expect expect
-# define PL_hexdigit hexdigit
-# define PL_hints hints
-# define PL_in_my in_my
-# define PL_laststatval laststatval
-# define PL_lex_state lex_state
-# define PL_lex_stuff lex_stuff
-# define PL_linestr linestr
-# define PL_na na
-# define PL_perl_destruct_level perl_destruct_level
-# define PL_perldb perldb
-# define PL_rsfp_filters rsfp_filters
-# define PL_rsfp rsfp
-# define PL_stack_base stack_base
-# define PL_stack_sp stack_sp
-# define PL_statcache statcache
-# define PL_stdingv stdingv
-# define PL_sv_arenaroot sv_arenaroot
-# define PL_sv_no sv_no
-# define PL_sv_undef sv_undef
-# define PL_sv_yes sv_yes
-# define PL_tainted tainted
-# define PL_tainting tainting
-# define PL_tokenbuf tokenbuf
-/* Replace: 0 */
-#endif
-
-/* Warning: PL_parser
- * For perl versions earlier than 5.9.5, this is an always
- * non-NULL dummy. Also, it cannot be dereferenced. Don't
- * use it if you can avoid is and unless you absolutely know
- * what you're doing.
- * If you always check that PL_parser is non-NULL, you can
- * define DPPP_PL_parser_NO_DUMMY to avoid the creation of
- * a dummy parser structure.
- */
-
-#if { VERSION >= 5.9.5 }
-# ifdef DPPP_PL_parser_NO_DUMMY
-# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \
- (croak("panic: PL_parser == NULL in %s:%d", \
- __FILE__, __LINE__), (yy_parser *) NULL))->var)
-# else
-# ifdef DPPP_PL_parser_NO_DUMMY_WARNING
-# define D_PPP_parser_dummy_warning(var)
-# else
-# define D_PPP_parser_dummy_warning(var) \
- warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__),
-# endif
-# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \
- (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var)
-__NEED_DUMMY_VAR__ yy_parser PL_parser;
-# endif
-
-/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */
-/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf
- * Do not use this variable unless you know exactly what you're
- * doint. It is internal to the perl parser and may change or even
- * be removed in the future. As of perl 5.9.5, you have to check
- * for (PL_parser != NULL) for this variable to have any effect.
- * An always non-NULL PL_parser dummy is provided for earlier
- * perl versions.
- * If PL_parser is NULL when you try to access this variable, a
- * dummy is being accessed instead and a warning is issued unless
- * you define DPPP_PL_parser_NO_DUMMY_WARNING.
- * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access
- * this variable will croak with a panic message.
- */
-
-# define PL_expect D_PPP_my_PL_parser_var(expect)
-# define PL_copline D_PPP_my_PL_parser_var(copline)
-# define PL_rsfp D_PPP_my_PL_parser_var(rsfp)
-# define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters)
-# define PL_linestr D_PPP_my_PL_parser_var(linestr)
-# define PL_bufptr D_PPP_my_PL_parser_var(bufptr)
-# define PL_bufend D_PPP_my_PL_parser_var(bufend)
-# define PL_lex_state D_PPP_my_PL_parser_var(lex_state)
-# define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff)
-# define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf)
-# define PL_in_my D_PPP_my_PL_parser_var(in_my)
-# define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash)
-# define PL_error_count D_PPP_my_PL_parser_var(error_count)
-
-
-#else
-
-/* ensure that PL_parser != NULL and cannot be dereferenced */
-# define PL_parser ((void *) 1)
-
-#endif
-
-=xsinit
-
-#define NEED_PL_signals
-#define NEED_PL_parser
-#define DPPP_PL_parser_NO_DUMMY_WARNING
-
-=xsmisc
-
-U32 get_PL_signals_1(void)
-{
-#ifdef PERL_NO_GET_CONTEXT
- dTHX;
-#endif
- return PL_signals;
-}
-
-extern U32 get_PL_signals_2(void);
-extern U32 get_PL_signals_3(void);
-int no_dummy_parser_vars(int);
-int dummy_parser_warning(void);
-
-#define ppp_TESTVAR(var) STMT_START { mXPUSHi(&var); count++; } STMT_END
-
-#define ppp_PARSERVAR(type, var) STMT_START { \
- type volatile my_ ## var; \
- type volatile *my_p_ ## var; \
- my_ ## var = var; \
- my_p_ ## var = &var; \
- var = my_ ## var; \
- var = *my_p_ ## var; \
- mXPUSHi(&var != NULL); \
- count++; \
- } STMT_END
-
-#define ppp_PARSERVAR_dummy STMT_START { \
- mXPUSHi(1); \
- count++; \
- } STMT_END
-
-#if { VERSION < 5.004 }
-# define ppp_rsfp_t FILE *
-#else
-# define ppp_rsfp_t PerlIO *
-#endif
-
-#if { VERSION < 5.6.0 }
-# define ppp_expect_t expectation
-#elif { VERSION < 5.9.5 }
-# define ppp_expect_t int
-#else
-# define ppp_expect_t U8
-#endif
-
-#if { VERSION < 5.9.5 }
-# define ppp_lex_state_t U32
-#else
-# define ppp_lex_state_t U8
-#endif
-
-#if { VERSION < 5.6.0 }
-# define ppp_in_my_t bool
-#elif { VERSION < 5.9.5 }
-# define ppp_in_my_t I32
-#else
-# define ppp_in_my_t U16
-#endif
-
-#if { VERSION < 5.9.5 }
-# define ppp_error_count_t I32
-#else
-# define ppp_error_count_t U8
-#endif
-
-=xsubs
-
-int
-compare_PL_signals()
- CODE:
- {
- U32 ref = get_PL_signals_1();
- RETVAL = ref == get_PL_signals_2() && ref == get_PL_signals_3();
- }
- OUTPUT:
- RETVAL
-
-SV *
-PL_sv_undef()
- CODE:
- RETVAL = newSVsv(&PL_sv_undef);
- OUTPUT:
- RETVAL
-
-SV *
-PL_sv_yes()
- CODE:
- RETVAL = newSVsv(&PL_sv_yes);
- OUTPUT:
- RETVAL
-
-SV *
-PL_sv_no()
- CODE:
- RETVAL = newSVsv(&PL_sv_no);
- OUTPUT:
- RETVAL
-
-int
-PL_na(string)
- char *string
- CODE:
- PL_na = strlen(string);
- RETVAL = PL_na;
- OUTPUT:
- RETVAL
-
-SV *
-PL_Sv()
- CODE:
- PL_Sv = newSVpv("mhx", 0);
- RETVAL = PL_Sv;
- OUTPUT:
- RETVAL
-
-SV *
-PL_tokenbuf()
- CODE:
- RETVAL = newSViv(PL_tokenbuf[0]);
- OUTPUT:
- RETVAL
-
-SV *
-PL_parser()
- CODE:
- RETVAL = newSViv(PL_parser != NULL);
- OUTPUT:
- RETVAL
-
-SV *
-PL_hexdigit()
- CODE:
- RETVAL = newSVpv((char *) PL_hexdigit, 0);
- OUTPUT:
- RETVAL
-
-SV *
-PL_hints()
- CODE:
- RETVAL = newSViv((IV) PL_hints);
- OUTPUT:
- RETVAL
-
-void
-PL_ppaddr(string)
- char *string
- PPCODE:
- PUSHMARK(SP);
- mXPUSHs(newSVpv(string, 0));
- PUTBACK;
- ENTER;
- (void)*(PL_ppaddr[OP_UC])(aTHXR);
- SPAGAIN;
- LEAVE;
- XSRETURN(1);
-
-void
-other_variables()
- PREINIT:
- int count = 0;
- PPCODE:
- ppp_TESTVAR(PL_DBsignal);
- ppp_TESTVAR(PL_DBsingle);
- ppp_TESTVAR(PL_DBsub);
- ppp_TESTVAR(PL_DBtrace);
- ppp_TESTVAR(PL_compiling);
- ppp_TESTVAR(PL_curcop);
- ppp_TESTVAR(PL_curstash);
- ppp_TESTVAR(PL_debstash);
- ppp_TESTVAR(PL_defgv);
- ppp_TESTVAR(PL_diehook);
-#if { VERSION >= 5.13.7 }
- /* can't get a pointer any longer */
- mXPUSHi(PL_dirty ? 1 : 1);
- count++;
-#else
- ppp_TESTVAR(PL_dirty);
-#endif
- ppp_TESTVAR(PL_dowarn);
- ppp_TESTVAR(PL_errgv);
- ppp_TESTVAR(PL_laststatval);
- ppp_TESTVAR(PL_no_modify);
- ppp_TESTVAR(PL_perl_destruct_level);
- ppp_TESTVAR(PL_perldb);
- ppp_TESTVAR(PL_stack_base);
- ppp_TESTVAR(PL_stack_sp);
- ppp_TESTVAR(PL_statcache);
- ppp_TESTVAR(PL_stdingv);
- ppp_TESTVAR(PL_sv_arenaroot);
- ppp_TESTVAR(PL_tainted);
- ppp_TESTVAR(PL_tainting);
-
- ppp_PARSERVAR(ppp_expect_t, PL_expect);
- ppp_PARSERVAR(line_t, PL_copline);
- ppp_PARSERVAR(ppp_rsfp_t, PL_rsfp);
- ppp_PARSERVAR(AV *, PL_rsfp_filters);
- ppp_PARSERVAR(SV *, PL_linestr);
- ppp_PARSERVAR(char *, PL_bufptr);
- ppp_PARSERVAR(char *, PL_bufend);
- ppp_PARSERVAR(ppp_lex_state_t, PL_lex_state);
- ppp_PARSERVAR(SV *, PL_lex_stuff);
- ppp_PARSERVAR(ppp_error_count_t, PL_error_count);
- ppp_PARSERVAR(ppp_in_my_t, PL_in_my);
-#if { VERSION >= 5.5.0 }
- ppp_PARSERVAR(HV*, PL_in_my_stash);
-#else
- ppp_PARSERVAR_dummy;
-#endif
- XSRETURN(count);
-
-int
-no_dummy_parser_vars(check)
- int check
-
-int
-dummy_parser_warning()
-
-=tests plan => 52
-
-ok(Devel::PPPort::compare_PL_signals());
-
-ok(!defined(&Devel::PPPort::PL_sv_undef()));
-ok(&Devel::PPPort::PL_sv_yes());
-ok(!&Devel::PPPort::PL_sv_no());
-ok(&Devel::PPPort::PL_na("abcd"), 4);
-ok(&Devel::PPPort::PL_Sv(), "mhx");
-ok(defined &Devel::PPPort::PL_tokenbuf());
-ok($] >= 5.009005 || &Devel::PPPort::PL_parser());
-ok(&Devel::PPPort::PL_hexdigit() =~ /^[0-9a-zA-Z]+$/);
-ok(defined &Devel::PPPort::PL_hints());
-ok(&Devel::PPPort::PL_ppaddr("mhx"), "MHX");
-
-for (&Devel::PPPort::other_variables()) {
- ok($_ != 0);
-}
-
-{
- my @w;
- my $fail = 0;
- {
- local $SIG{'__WARN__'} = sub { push @w, @_ };
- ok(&Devel::PPPort::dummy_parser_warning());
- }
- if ($] >= 5.009005) {
- ok(@w >= 0);
- for (@w) {
- print "# $_";
- unless (/^warning: dummy PL_bufptr used in.*module3.*:\d+/i) {
- warn $_;
- $fail++;
- }
- }
- }
- else {
- ok(@w == 0);
- }
- ok($fail, 0);
-}
-
-ok(&Devel::PPPort::no_dummy_parser_vars(1) >= ($] < 5.009005 ? 1 : 0));
-
-eval { &Devel::PPPort::no_dummy_parser_vars(0) };
-
-if ($] < 5.009005) {
- ok($@, '');
-}
-else {
- if ($@) {
- print "# $@";
- ok($@ =~ /^panic: PL_parser == NULL in.*module2.*:\d+/i);
- }
- else {
- ok(1);
- }
-}
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/version b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/version
deleted file mode 100644
index 1d5c556af47..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/version
+++ /dev/null
@@ -1,52 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-PERL_REVISION
-PERL_VERSION
-PERL_SUBVERSION
-PERL_BCDVERSION
-
-=dontwarn
-
-PERL_PATCHLEVEL_H_IMPLICIT
-_dpppDEC2BCD
-
-=implementation
-
-#ifndef PERL_REVISION
-# if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
-# define PERL_PATCHLEVEL_H_IMPLICIT
-# include <patchlevel.h>
-# endif
-# if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
-# include <could_not_find_Perl_patchlevel.h>
-# endif
-# ifndef PERL_REVISION
-# define PERL_REVISION (5)
- /* Replace: 1 */
-# define PERL_VERSION PATCHLEVEL
-# define PERL_SUBVERSION SUBVERSION
- /* Replace PERL_PATCHLEVEL with PERL_VERSION */
- /* Replace: 0 */
-# endif
-#endif
-
-#define _dpppDEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10))
-#define PERL_BCDVERSION ((_dpppDEC2BCD(PERL_REVISION)<<24)|(_dpppDEC2BCD(PERL_VERSION)<<12)|_dpppDEC2BCD(PERL_SUBVERSION))
-
-/* It is very unlikely that anyone will try to use this with Perl 6
- (or greater), but who knows.
- */
-#if PERL_REVISION != 5
-# error ppport.h only works with Perl version 5
-#endif /* PERL_REVISION != 5 */
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/warn b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/warn
deleted file mode 100644
index 8f8f8ff337f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/inc/warn
+++ /dev/null
@@ -1,168 +0,0 @@
-################################################################################
-##
-## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-## Version 2.x, Copyright (C) 2001, Paul Marquess.
-## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the same terms as Perl itself.
-##
-################################################################################
-
-=provides
-
-__UNDEFINED__
-ckWARN
-warner
-Perl_warner
-Perl_warner_nocontext
-
-=implementation
-
-__UNDEFINED__ WARN_ALL 0
-__UNDEFINED__ WARN_CLOSURE 1
-__UNDEFINED__ WARN_DEPRECATED 2
-__UNDEFINED__ WARN_EXITING 3
-__UNDEFINED__ WARN_GLOB 4
-__UNDEFINED__ WARN_IO 5
-__UNDEFINED__ WARN_CLOSED 6
-__UNDEFINED__ WARN_EXEC 7
-__UNDEFINED__ WARN_LAYER 8
-__UNDEFINED__ WARN_NEWLINE 9
-__UNDEFINED__ WARN_PIPE 10
-__UNDEFINED__ WARN_UNOPENED 11
-__UNDEFINED__ WARN_MISC 12
-__UNDEFINED__ WARN_NUMERIC 13
-__UNDEFINED__ WARN_ONCE 14
-__UNDEFINED__ WARN_OVERFLOW 15
-__UNDEFINED__ WARN_PACK 16
-__UNDEFINED__ WARN_PORTABLE 17
-__UNDEFINED__ WARN_RECURSION 18
-__UNDEFINED__ WARN_REDEFINE 19
-__UNDEFINED__ WARN_REGEXP 20
-__UNDEFINED__ WARN_SEVERE 21
-__UNDEFINED__ WARN_DEBUGGING 22
-__UNDEFINED__ WARN_INPLACE 23
-__UNDEFINED__ WARN_INTERNAL 24
-__UNDEFINED__ WARN_MALLOC 25
-__UNDEFINED__ WARN_SIGNAL 26
-__UNDEFINED__ WARN_SUBSTR 27
-__UNDEFINED__ WARN_SYNTAX 28
-__UNDEFINED__ WARN_AMBIGUOUS 29
-__UNDEFINED__ WARN_BAREWORD 30
-__UNDEFINED__ WARN_DIGIT 31
-__UNDEFINED__ WARN_PARENTHESIS 32
-__UNDEFINED__ WARN_PRECEDENCE 33
-__UNDEFINED__ WARN_PRINTF 34
-__UNDEFINED__ WARN_PROTOTYPE 35
-__UNDEFINED__ WARN_QW 36
-__UNDEFINED__ WARN_RESERVED 37
-__UNDEFINED__ WARN_SEMICOLON 38
-__UNDEFINED__ WARN_TAINT 39
-__UNDEFINED__ WARN_THREADS 40
-__UNDEFINED__ WARN_UNINITIALIZED 41
-__UNDEFINED__ WARN_UNPACK 42
-__UNDEFINED__ WARN_UNTIE 43
-__UNDEFINED__ WARN_UTF8 44
-__UNDEFINED__ WARN_VOID 45
-__UNDEFINED__ WARN_ASSERTIONS 46
-
-__UNDEFINED__ packWARN(a) (a)
-
-#ifndef ckWARN
-# ifdef G_WARN_ON
-# define ckWARN(a) (PL_dowarn & G_WARN_ON)
-# else
-# define ckWARN(a) PL_dowarn
-# endif
-#endif
-
-#if { VERSION >= 5.004 } && !defined(warner)
-#if { NEED warner }
-
-void
-warner(U32 err, const char *pat, ...)
-{
- SV *sv;
- va_list args;
-
- PERL_UNUSED_ARG(err);
-
- va_start(args, pat);
- sv = vnewSVpvf(pat, &args);
- va_end(args);
- sv_2mortal(sv);
- warn("%s", SvPV_nolen(sv));
-}
-
-#define warner Perl_warner
-
-#define Perl_warner_nocontext Perl_warner
-
-#endif
-#endif
-
-=xsinit
-
-#define NEED_warner
-
-=xsubs
-
-void
-warner()
- CODE:
-#if { VERSION >= 5.004 }
- warner(packWARN(WARN_MISC), "warner %s:%d", "bar", 42);
-#endif
-
-void
-Perl_warner()
- CODE:
-#if { VERSION >= 5.004 }
- Perl_warner(aTHX_ packWARN(WARN_MISC), "Perl_warner %s:%d", "bar", 42);
-#endif
-
-void
-Perl_warner_nocontext()
- CODE:
-#if { VERSION >= 5.004 }
- Perl_warner_nocontext(packWARN(WARN_MISC), "Perl_warner_nocontext %s:%d", "bar", 42);
-#endif
-
-void
-ckWARN()
- CODE:
-#if { VERSION >= 5.004 }
- if (ckWARN(WARN_MISC))
- Perl_warner_nocontext(packWARN(WARN_MISC), "ckWARN %s:%d", "bar", 42);
-#endif
-
-=tests plan => 5
-
-$^W = 0;
-
-my $warning;
-
-$SIG{'__WARN__'} = sub { $warning = $_[0] };
-
-$warning = '';
-Devel::PPPort::warner();
-ok($] >= 5.004 ? $warning =~ /^warner bar:42/ : $warning eq '');
-
-$warning = '';
-Devel::PPPort::Perl_warner();
-ok($] >= 5.004 ? $warning =~ /^Perl_warner bar:42/ : $warning eq '');
-
-$warning = '';
-Devel::PPPort::Perl_warner_nocontext();
-ok($] >= 5.004 ? $warning =~ /^Perl_warner_nocontext bar:42/ : $warning eq '');
-
-$warning = '';
-Devel::PPPort::ckWARN();
-ok($warning, '');
-
-$^W = 1;
-
-$warning = '';
-Devel::PPPort::ckWARN();
-ok($] >= 5.004 ? $warning =~ /^ckWARN bar:42/ : $warning eq '');
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/ppport.fnc b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/ppport.fnc
deleted file mode 100644
index efa648f81ea..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/ppport.fnc
+++ /dev/null
@@ -1,23 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:
-: Perl/Pollution/Portability
-:
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-:
-: Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-: Version 2.x, Copyright (C) 2001, Paul Marquess.
-: Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-:
-: This program is free software; you can redistribute it and/or
-: modify it under the same terms as Perl itself.
-:
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
-:
-: This file lists all API functions/macros that are provided purely
-: by Devel::PPPort. It is in the same format as the F<embed.fnc> that
-: ships with the Perl source code.
-:
-
-Am |void |sv_magic_portable|NN SV* sv|NULLOK SV* obj|int how|NULLOK const char* name \
- |I32 namlen
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/ppptools.pl b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/ppptools.pl
deleted file mode 100644
index 6ea751687bb..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/ppptools.pl
+++ /dev/null
@@ -1,404 +0,0 @@
-################################################################################
-#
-# ppptools.pl -- various utility functions
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-sub cat_file
-{
- eval { require File::Spec };
- return $@ ? join('/', @_) : File::Spec->catfile(@_);
-}
-
-sub all_files_in_dir
-{
- my $dir = shift;
- local *DIR;
-
- opendir DIR, $dir or die "cannot open directory $dir: $!\n";
- my @files = grep { !-d && !/^\./ } readdir DIR; # no dirs or hidden files
- closedir DIR;
-
- return map { cat_file($dir, $_) } @files;
-}
-
-sub parse_todo
-{
- my $dir = shift || 'parts/todo';
- local *TODO;
- my %todo;
- my $todo;
-
- for $todo (all_files_in_dir($dir)) {
- open TODO, $todo or die "cannot open $todo: $!\n";
- my $perl = <TODO>;
- chomp $perl;
- while (<TODO>) {
- chomp;
- s/#.*//;
- s/^\s+//; s/\s+$//;
- /^\s*$/ and next;
- /^\w+$/ or die "invalid identifier: $_\n";
- exists $todo{$_} and die "duplicate identifier: $_ ($todo{$_} <=> $perl)\n";
- $todo{$_} = $perl;
- }
- close TODO;
- }
-
- return \%todo;
-}
-
-sub expand_version
-{
- my($op, $ver) = @_;
- my($r, $v, $s) = parse_version($ver);
- $r == 5 or die "only Perl revision 5 is supported\n";
- my $bcdver = sprintf "0x%d%03d%03d", $r, $v, $s;
- return "(PERL_BCDVERSION $op $bcdver)";
-}
-
-sub parse_partspec
-{
- my $file = shift;
- my $section = 'implementation';
- my $vsec = join '|', qw( provides dontwarn implementation
- xsubs xsinit xsmisc xshead xsboot tests );
- my(%data, %options);
- local *F;
-
- open F, $file or die "$file: $!\n";
- while (<F>) {
- /[ \t]+$/ and warn "$file:$.: warning: trailing whitespace\n";
- if ($section eq 'implementation') {
- m!//! && !m!(?:=~|s/).*//! && !m!(?:ht|f)tp(?:s)://!
- and warn "$file:$.: warning: potential C++ comment\n";
- }
- /^##/ and next;
- if (/^=($vsec)(?:\s+(.*))?/) {
- $section = $1;
- if (defined $2) {
- my $opt = $2;
- $options{$section} = eval "{ $opt }";
- $@ and die "$file:$.: invalid options ($opt) in section $section: $@\n";
- }
- next;
- }
- push @{$data{$section}}, $_;
- }
- close F;
-
- for (keys %data) {
- my @v = @{$data{$_}};
- shift @v while @v && $v[0] =~ /^\s*$/;
- pop @v while @v && $v[-1] =~ /^\s*$/;
- $data{$_} = join '', @v;
- }
-
- unless (exists $data{provides}) {
- $data{provides} = ($file =~ /(\w+)\.?$/)[0];
- }
- $data{provides} = [$data{provides} =~ /(\S+)/g];
-
- if (exists $data{dontwarn}) {
- $data{dontwarn} = [$data{dontwarn} =~ /(\S+)/g];
- }
-
- my @prov;
- my %proto;
-
- if (exists $data{tests} && (!exists $data{implementation} || $data{implementation} !~ /\S/)) {
- $data{implementation} = '';
- }
- else {
- $data{implementation} =~ /\S/ or die "Empty implementation in $file\n";
-
- my $p;
-
- for $p (@{$data{provides}}) {
- if ($p =~ m#^/.*/\w*$#) {
- my @tmp = eval "\$data{implementation} =~ ${p}gm";
- $@ and die "invalid regex $p in $file\n";
- @tmp or warn "no matches for regex $p in $file\n";
- push @prov, do { my %h; grep !$h{$_}++, @tmp };
- }
- elsif ($p eq '__UNDEFINED__') {
- my @tmp = $data{implementation} =~ /^\s*__UNDEFINED__[^\r\n\S]+(\w+)/gm;
- @tmp or warn "no __UNDEFINED__ macros in $file\n";
- push @prov, @tmp;
- }
- else {
- push @prov, $p;
- }
- }
-
- for (@prov) {
- if ($data{implementation} !~ /\b\Q$_\E\b/) {
- warn "$file claims to provide $_, but doesn't seem to do so\n";
- next;
- }
-
- # scan for prototypes
- my($proto) = $data{implementation} =~ /
- ( ^ (?:[\w*]|[^\S\r\n])+
- [\r\n]*?
- ^ \b$_\b \s*
- \( [^{]* \)
- )
- \s* \{
- /xm or next;
-
- $proto =~ s/^\s+//;
- $proto =~ s/\s+$//;
- $proto =~ s/\s+/ /g;
-
- exists $proto{$_} and warn "$file: duplicate prototype for $_\n";
- $proto{$_} = $proto;
- }
- }
-
- for $section (qw( implementation xsubs xsinit xsmisc xshead xsboot )) {
- if (exists $data{$section}) {
- $data{$section} =~ s/\{\s*version\s*(<|>|==|!=|>=|<=)\s*([\d._]+)\s*\}/expand_version($1, $2)/gei;
- }
- }
-
- $data{provides} = \@prov;
- $data{prototypes} = \%proto;
- $data{OPTIONS} = \%options;
-
- my %prov = map { ($_ => 1) } @prov;
- my %dontwarn = exists $data{dontwarn} ? map { ($_ => 1) } @{$data{dontwarn}} : ();
- my @maybeprov = do { my %h;
- grep {
- my($nop) = /^Perl_(.*)/;
- not exists $prov{$_} ||
- exists $dontwarn{$_} ||
- /^D_PPP_/ ||
- (defined $nop && exists $prov{$nop} ) ||
- (defined $nop && exists $dontwarn{$nop}) ||
- $h{$_}++;
- }
- $data{implementation} =~ /^\s*#\s*define\s+(\w+)/gm };
-
- if (@maybeprov) {
- warn "$file seems to provide these macros, but doesn't list them:\n "
- . join("\n ", @maybeprov) . "\n";
- }
-
- return \%data;
-}
-
-sub compare_prototypes
-{
- my($p1, $p2) = @_;
- for ($p1, $p2) {
- s/^\s+//;
- s/\s+$//;
- s/\s+/ /g;
- s/(\w)\s(\W)/$1$2/g;
- s/(\W)\s(\w)/$1$2/g;
- }
- return $p1 cmp $p2;
-}
-
-sub ppcond
-{
- my $s = shift;
- my @c;
- my $p;
-
- for $p (@$s) {
- push @c, map "!($_)", @{$p->{pre}};
- defined $p->{cur} and push @c, "($p->{cur})";
- }
-
- join " && ", @c;
-}
-
-sub trim_arg
-{
- my $in = shift;
- my $remove = join '|', qw( NN NULLOK VOL );
-
- $in eq '...' and return ($in);
-
- local $_ = $in;
- my $id;
-
- s/[*()]/ /g;
- s/\[[^\]]*\]/ /g;
- s/\b(?:auto|const|extern|inline|register|static|volatile|restrict)\b//g;
- s/\b(?:$remove)\b//;
- s/^\s*//; s/\s*$//;
-
- if( /^\b(?:struct|union|enum)\s+\w+(?:\s+(\w+))?$/ ) {
- defined $1 and $id = $1;
- }
- else {
- if( s/\b(?:char|double|float|int|long|short|signed|unsigned|void)\b//g ) {
- /^\s*(\w+)\s*$/ and $id = $1;
- }
- else {
- /^\s*\w+\s+(\w+)\s*$/ and $id = $1;
- }
- }
-
- $_ = $in;
-
- defined $id and s/\b$id\b//;
-
- # these don't matter at all
- s/\b(?:auto|extern|inline|register|static|volatile|restrict)\b//g;
- s/\b(?:$remove)\b//;
-
- s/(?=<\*)\s+(?=\*)//g;
- s/\s*(\*+)\s*/ $1 /g;
- s/^\s*//; s/\s*$//;
- s/\s+/ /g;
-
- return ($_, $id);
-}
-
-sub parse_embed
-{
- my @files = @_;
- my @func;
- my @pps;
- my $file;
- local *FILE;
-
- for $file (@files) {
- open FILE, $file or die "$file: $!\n";
- my($line, $l);
-
- while (defined($line = <FILE>)) {
- while ($line =~ /\\$/ && defined($l = <FILE>)) {
- $line =~ s/\\\s*//;
- $line .= $l;
- }
- next if $line =~ /^\s*:/;
- $line =~ s/^\s+|\s+$//gs;
- my($dir, $args) = ($line =~ /^\s*#\s*(\w+)(?:\s*(.*?)\s*)?$/);
- if (defined $dir and defined $args) {
- for ($dir) {
- /^ifdef$/ and do { push @pps, { pre => [], cur => "defined($args)" } ; last };
- /^ifndef$/ and do { push @pps, { pre => [], cur => "!defined($args)" } ; last };
- /^if$/ and do { push @pps, { pre => [], cur => $args } ; last };
- /^elif$/ and do { push @{$pps[-1]{pre}}, $pps[-1]{cur}; $pps[-1]{cur} = $args; last };
- /^else$/ and do { push @{$pps[-1]{pre}}, $pps[-1]{cur}; $pps[-1]{cur} = undef; last };
- /^endif$/ and do { pop @pps ; last };
- /^include$/ and last;
- /^define$/ and last;
- /^undef$/ and last;
- warn "unhandled preprocessor directive: $dir\n";
- }
- }
- else {
- my @e = split /\s*\|\s*/, $line;
- if( @e >= 3 ) {
- my($flags, $ret, $name, @args) = @e;
- if ($name =~ /^[^\W\d]\w*$/) {
- for (@args) {
- $_ = [trim_arg($_)];
- }
- ($ret) = trim_arg($ret);
- push @func, {
- name => $name,
- flags => { map { $_, 1 } $flags =~ /./g },
- ret => $ret,
- args => \@args,
- cond => ppcond(\@pps),
- };
- }
- elsif ($name =~ /^[^\W\d]\w*-E<gt>[^\W\d]\w*$/) {
- # silenty ignore entries of the form
- # PL_parser-E<gt>linestr
- # which documents a struct entry rather than a function
- }
- else {
- warn "mysterious name [$name] in $file, line $.\n";
- }
- }
- }
- }
-
- close FILE;
- }
-
- return @func;
-}
-
-sub make_prototype
-{
- my $f = shift;
- my @args = map { "@$_" } @{$f->{args}};
- my $proto;
- my $pTHX_ = exists $f->{flags}{n} ? "" : "pTHX_ ";
- $proto = "$f->{ret} $f->{name}" . "($pTHX_" . join(', ', @args) . ')';
- return $proto;
-}
-
-sub format_version
-{
- my $ver = shift;
-
- $ver =~ s/$/000000/;
- my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
-
- $v = int $v;
- $s = int $s;
-
- if ($r < 5 || ($r == 5 && $v < 6)) {
- if ($s % 10) {
- die "invalid version '$ver'\n";
- }
- $s /= 10;
-
- $ver = sprintf "%d.%03d", $r, $v;
- $s > 0 and $ver .= sprintf "_%02d", $s;
-
- return $ver;
- }
-
- return sprintf "%d.%d.%d", $r, $v, $s;
-}
-
-sub parse_version
-{
- my $ver = shift;
-
- if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) {
- return ($1, $2, $3);
- }
- elsif ($ver !~ /^\d+\.[\d_]+$/) {
- die "cannot parse version '$ver'\n";
- }
-
- $ver =~ s/_//g;
- $ver =~ s/$/000000/;
-
- my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
-
- $v = int $v;
- $s = int $s;
-
- if ($r < 5 || ($r == 5 && $v < 6)) {
- if ($s % 10) {
- die "cannot parse version '$ver'\n";
- }
- $s /= 10;
- }
-
- return ($r, $v, $s);
-}
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5003070 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5003070
deleted file mode 100644
index df2f8476925..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5003070
+++ /dev/null
@@ -1,21 +0,0 @@
-5.003070
-HeHASH # U
-HeKEY # U
-HeKLEN # U
-HeSVKEY # U
-HeSVKEY_force # U
-HeVAL # U
-cv_const_sv # U
-do_open # E (Perl_do_open)
-gv_efullname3 # U
-gv_fullname3 # U
-hv_delete_ent # U
-hv_exists_ent # U
-hv_fetch_ent # U
-hv_iterkeysv # U
-hv_ksplit # U
-hv_store_ent # U
-my_pclose # E (Perl_my_pclose)
-my_popen # E (Perl_my_popen)
-sv_gets # E (Perl_sv_gets)
-unsharepvn # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004000
deleted file mode 100644
index 0fa079ed611..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004000
+++ /dev/null
@@ -1,50 +0,0 @@
-5.004000
-GIMME_V # E
-G_VOID # E
-HePV # A
-HeSVKEY_set # U
-SvSetMagicSV # U
-SvSetMagicSV_nosteal # U
-SvSetSV_nosteal # U
-SvTAINTED # U
-SvTAINTED_off # U
-SvTAINTED_on # U
-block_end # E (Perl_block_end)
-block_gimme # U
-block_start # E (Perl_block_start)
-call_list # U
-delimcpy # U
-form # U
-gv_autoload4 # U
-gv_fetchmethod_autoload # U
-hv_delayfree_ent # U
-hv_free_ent # U
-ibcmp_locale # U
-intro_my # U
-my_failure_exit # U
-newSVpvf # U
-rsignal # E
-rsignal_state # E
-save_I16 # U
-save_gp # U
-share_hek # E
-start_subparse # E (Perl_start_subparse)
-sv_catpvf # U
-sv_catpvf_mg # U
-sv_cmp_locale # U
-sv_derived_from # U
-sv_magic_portable # U
-sv_setpvf # U
-sv_setpvf_mg # U
-sv_taint # U
-sv_tainted # U
-sv_untaint # U
-sv_vcatpvf # U
-sv_vcatpvf_mg # U
-sv_vcatpvfn # U
-sv_vsetpvf # U
-sv_vsetpvf_mg # U
-sv_vsetpvfn # U
-toLOWER_LC # U
-vnewSVpvf # U
-warner # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004010
deleted file mode 100644
index 8c298666039..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004010
+++ /dev/null
@@ -1 +0,0 @@
-5.004010
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004020 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004020
deleted file mode 100644
index 4b43fdf8e46..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004020
+++ /dev/null
@@ -1 +0,0 @@
-5.004020
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004030 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004030
deleted file mode 100644
index e45facbb1f9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004030
+++ /dev/null
@@ -1 +0,0 @@
-5.004030
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004040 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004040
deleted file mode 100644
index 69ccd5d62c5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004040
+++ /dev/null
@@ -1 +0,0 @@
-5.004040
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004050 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004050
deleted file mode 100644
index 57937e8013b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5004050
+++ /dev/null
@@ -1,6 +0,0 @@
-5.004050
-CopyD # E
-MoveD # E
-do_binmode # U
-save_aelem # U
-save_helem # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005000
deleted file mode 100644
index e27a06dc8f2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005000
+++ /dev/null
@@ -1,28 +0,0 @@
-5.005000
-PL_curpad # E
-PL_modglobal # E
-cx_dump # U
-debop # U
-debprofdump # U
-fbm_compile # E (Perl_fbm_compile)
-fbm_instr # E (Perl_fbm_instr)
-get_op_descs # U
-get_op_names # U
-init_stacks # U
-mg_length # U
-mg_size # U
-newHVhv # U
-new_stackinfo # E
-regdump # U
-regexec_flags # U
-regnext # E (Perl_regnext)
-runops_debug # U
-runops_standard # U
-save_iv # U (save_iv)
-save_op # U
-sv_iv # U
-sv_nv # U
-sv_peek # U
-sv_pvn # U
-sv_pvn_nomg # U
-sv_true # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005010
deleted file mode 100644
index deebff5bf8a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005010
+++ /dev/null
@@ -1 +0,0 @@
-5.005010
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005020 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005020
deleted file mode 100644
index d19ff2ae09e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005020
+++ /dev/null
@@ -1 +0,0 @@
-5.005020
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005030 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005030
deleted file mode 100644
index 885afa0d233..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005030
+++ /dev/null
@@ -1,4 +0,0 @@
-5.005030
-POPpx # E
-get_vtbl # U
-save_generic_svref # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005040 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005040
deleted file mode 100644
index 8a165c20337..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5005040
+++ /dev/null
@@ -1 +0,0 @@
-5.005040
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006000
deleted file mode 100644
index 17d829f41b4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006000
+++ /dev/null
@@ -1,149 +0,0 @@
-5.006000
-PERL_SYS_INIT3 # U
-PL_check # E
-SvIOK_UV # U
-SvIOK_notUV # U
-SvIOK_only_UV # U
-SvPOK_only_UTF8 # U
-SvPVbyte_nolen # U
-SvPVbytex # U
-SvPVbytex_force # U
-SvPVutf8 # U
-SvPVutf8_force # U
-SvPVutf8_nolen # U
-SvPVutf8x # U
-SvPVutf8x_force # U
-SvUOK # U
-SvUTF8 # U
-SvUTF8_off # U
-SvUTF8_on # U
-av_delete # U
-av_exists # U
-call_atexit # E
-caller_cx # U
-cast_i32 # U (cast_i32)
-cast_iv # U (cast_iv)
-cast_ulong # U
-cast_uv # U (cast_uv)
-do_gv_dump # U
-do_gvgv_dump # U
-do_hv_dump # U
-do_magic_dump # U
-do_op_dump # U
-do_open9 # U
-do_pmop_dump # U
-do_sv_dump # U
-dump_all # U
-dump_eval # U
-dump_form # U
-dump_indent # U
-dump_packsubs # U
-dump_sub # U
-dump_vindent # U
-get_context # U
-get_ppaddr # E
-gv_dump # U
-init_i18nl10n # U (perl_init_i18nl10n)
-init_i18nl14n # U (perl_init_i18nl14n)
-is_uni_alnum # U
-is_uni_alnum_lc # U
-is_uni_alpha # U
-is_uni_alpha_lc # U
-is_uni_ascii # U
-is_uni_ascii_lc # U
-is_uni_cntrl # U
-is_uni_cntrl_lc # U
-is_uni_digit # U
-is_uni_digit_lc # U
-is_uni_graph # U
-is_uni_graph_lc # U
-is_uni_idfirst # U
-is_uni_idfirst_lc # U
-is_uni_lower # U
-is_uni_lower_lc # U
-is_uni_print # U
-is_uni_print_lc # U
-is_uni_punct # U
-is_uni_punct_lc # U
-is_uni_space # U
-is_uni_space_lc # U
-is_uni_upper # U
-is_uni_upper_lc # U
-is_uni_xdigit # U
-is_uni_xdigit_lc # U
-is_utf8_alnum # U
-is_utf8_alpha # U
-is_utf8_ascii # U
-is_utf8_char # U
-is_utf8_cntrl # U
-is_utf8_digit # U
-is_utf8_graph # U
-is_utf8_idfirst # U
-is_utf8_lower # U
-is_utf8_mark # U
-is_utf8_print # U
-is_utf8_punct # U
-is_utf8_space # U
-is_utf8_upper # U
-is_utf8_xdigit # U
-magic_dump # U
-mess # E (Perl_mess)
-my_atof # U
-my_fflush_all # U
-newANONATTRSUB # U
-newATTRSUB # U
-newXS # E (Perl_newXS)
-newXSproto # E
-new_collate # U (perl_new_collate)
-new_ctype # U (perl_new_ctype)
-new_numeric # U (perl_new_numeric)
-op_dump # U
-perl_parse # E (perl_parse)
-pmop_dump # U
-re_intuit_string # U
-reginitcolors # U
-require_pv # U (perl_require_pv)
-safesyscalloc # U
-safesysfree # U
-safesysmalloc # U
-safesysrealloc # U
-save_I8 # U
-save_alloc # U
-save_destructor # E (Perl_save_destructor)
-save_destructor_x # E
-save_re_context # U
-save_vptr # U
-scan_bin # U
-set_context # U
-set_numeric_local # U (perl_set_numeric_local)
-set_numeric_radix # U
-set_numeric_standard # U (perl_set_numeric_standard)
-str_to_version # U
-sv_2pvutf8 # U
-sv_2pvutf8_nolen # U
-sv_force_normal # U
-sv_len_utf8 # U
-sv_pos_b2u # U
-sv_pos_u2b # U
-sv_pv # U
-sv_pvbyte # U
-sv_pvbyten # U
-sv_pvbyten_force # U
-sv_pvutf8 # U
-sv_pvutf8n # U
-sv_pvutf8n_force # U
-sv_rvweaken # U
-sv_utf8_decode # U
-sv_utf8_downgrade # U
-sv_utf8_encode # U
-swash_init # U
-to_uni_lower_lc # U
-to_uni_title_lc # U
-to_uni_upper_lc # U
-utf8_distance # U
-utf8_hop # U
-vcroak # U
-vform # U
-vmess # U
-vwarn # U
-vwarner # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006001
deleted file mode 100644
index 3f4ea792ffc..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006001
+++ /dev/null
@@ -1,11 +0,0 @@
-5.006001
-SvGAMAGIC # U
-apply_attrs_string # U
-bytes_to_utf8 # U
-gv_efullname4 # U
-gv_fullname4 # U
-is_utf8_string # U
-save_generic_pvref # U
-utf16_to_utf8 # E (Perl_utf16_to_utf8)
-utf16_to_utf8_reversed # E (Perl_utf16_to_utf8_reversed)
-utf8_to_bytes # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006002
deleted file mode 100644
index dfe09ce2c59..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5006002
+++ /dev/null
@@ -1 +0,0 @@
-5.006002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007000
deleted file mode 100644
index 49d08465db8..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007000
+++ /dev/null
@@ -1 +0,0 @@
-5.007000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007001
deleted file mode 100644
index cee6dec8451..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007001
+++ /dev/null
@@ -1,23 +0,0 @@
-5.007001
-ASCII_TO_NEED # U
-NATIVE_TO_NEED # U
-POPpbytex # E
-bytes_from_utf8 # U
-despatch_signals # U
-do_openn # U
-gv_handler # U
-is_lvalue_sub # U
-my_popen_list # U
-save_mortalizesv # U
-scan_num # E (Perl_scan_num)
-sv_force_normal_flags # U
-sv_setref_uv # U
-sv_unref_flags # U
-sv_utf8_upgrade # E (Perl_sv_utf8_upgrade)
-utf8_length # U
-utf8_to_uvchr # U
-utf8_to_uvuni # U
-utf8n_to_uvchr # U
-utf8n_to_uvuni # U
-uvchr_to_utf8 # U
-uvuni_to_utf8 # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007002
deleted file mode 100644
index cb28d72bf3d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007002
+++ /dev/null
@@ -1,17 +0,0 @@
-5.007002
-calloc # U
-getcwd_sv # U
-init_tm # U
-malloc # U
-mfree # U
-mini_mktime # U
-my_atof2 # U
-my_strftime # U
-op_null # U
-realloc # U
-sv_catpvn_flags # U
-sv_catsv_flags # U
-sv_setsv_flags # U
-sv_utf8_upgrade_flags # U
-sv_utf8_upgrade_nomg # U
-swash_fetch # E (Perl_swash_fetch)
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007003
deleted file mode 100644
index cc22577c300..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5007003
+++ /dev/null
@@ -1,64 +0,0 @@
-5.007003
-OP_DESC # U
-OP_NAME # U
-PL_peepp # E
-PerlIO_clearerr # U (PerlIO_clearerr)
-PerlIO_close # U (PerlIO_close)
-PerlIO_eof # U (PerlIO_eof)
-PerlIO_error # U (PerlIO_error)
-PerlIO_fileno # U (PerlIO_fileno)
-PerlIO_fill # U (PerlIO_fill)
-PerlIO_flush # U (PerlIO_flush)
-PerlIO_get_base # U (PerlIO_get_base)
-PerlIO_get_bufsiz # U (PerlIO_get_bufsiz)
-PerlIO_get_cnt # U (PerlIO_get_cnt)
-PerlIO_get_ptr # U (PerlIO_get_ptr)
-PerlIO_read # U (PerlIO_read)
-PerlIO_seek # U (PerlIO_seek)
-PerlIO_set_cnt # U (PerlIO_set_cnt)
-PerlIO_set_ptrcnt # U (PerlIO_set_ptrcnt)
-PerlIO_setlinebuf # U (PerlIO_setlinebuf)
-PerlIO_stderr # U (PerlIO_stderr)
-PerlIO_stdin # U (PerlIO_stdin)
-PerlIO_stdout # U (PerlIO_stdout)
-PerlIO_tell # U (PerlIO_tell)
-PerlIO_unread # U (PerlIO_unread)
-PerlIO_write # U (PerlIO_write)
-SvLOCK # U
-SvSHARE # U
-SvUNLOCK # U
-atfork_lock # U
-atfork_unlock # U
-custom_op_desc # U
-custom_op_name # U
-deb # U
-debstack # U
-debstackptrs # U
-gv_fetchmeth_autoload # U
-ibcmp_utf8 # U
-my_fork # U
-my_socketpair # U
-pack_cat # U
-perl_destruct # E (perl_destruct)
-pv_uni_display # U
-save_shared_pvref # U
-savesharedpv # U
-sortsv # U
-sv_magicext # U
-sv_nolocking # U
-sv_nosharing # U
-sv_recode_to_utf8 # U
-sv_uni_display # U
-toFOLD_uni # U
-toLOWER_uni # A
-toTITLE_uni # A
-toUPPER_uni # A
-to_uni_fold # U
-to_uni_lower # E (Perl_to_uni_lower)
-to_uni_title # E (Perl_to_uni_title)
-to_uni_upper # E (Perl_to_uni_upper)
-to_utf8_case # U
-unpack_str # U
-uvchr_to_utf8_flags # U
-uvuni_to_utf8_flags # U
-vdeb # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008000
deleted file mode 100644
index 3a4d23ec74d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008000
+++ /dev/null
@@ -1,6 +0,0 @@
-5.008000
-HeUTF8 # U
-hv_iternext_flags # U
-hv_store_flags # U
-is_utf8_idcont # U
-nothreadhook # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008001
deleted file mode 100644
index adb1eb327cb..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008001
+++ /dev/null
@@ -1,18 +0,0 @@
-5.008001
-CvPADLIST # E
-PL_comppad # E
-SvVOK # U
-doing_taint # U
-find_runcv # U
-is_utf8_string_loc # U
-packlist # U
-pad_add_anon # U
-pad_new # E
-pad_tidy # E
-save_bool # U
-savestack_grow_cnt # U
-seed # U
-sv_cat_decode # U
-sv_setpviv # U
-sv_setpviv_mg # U
-unpackstring # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008002
deleted file mode 100644
index 63aac525fed..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008002
+++ /dev/null
@@ -1 +0,0 @@
-5.008002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008003
deleted file mode 100644
index 50c6ce1aa14..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008003
+++ /dev/null
@@ -1,3 +0,0 @@
-5.008003
-SvIsCOW # U
-SvIsCOW_shared_hash # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008004
deleted file mode 100644
index bb7bcdf66ac..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008004
+++ /dev/null
@@ -1 +0,0 @@
-5.008004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008005
deleted file mode 100644
index 7bd2029f4b3..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008005
+++ /dev/null
@@ -1 +0,0 @@
-5.008005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008006
deleted file mode 100644
index ba5cad07ed0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008006
+++ /dev/null
@@ -1 +0,0 @@
-5.008006
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008007
deleted file mode 100644
index 7d656f0b9e2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008007
+++ /dev/null
@@ -1 +0,0 @@
-5.008007
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008008
deleted file mode 100644
index f17b19ff4b2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008008
+++ /dev/null
@@ -1 +0,0 @@
-5.008008
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008009
deleted file mode 100644
index 129e018f45f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5008009
+++ /dev/null
@@ -1 +0,0 @@
-5.008009
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009000
deleted file mode 100644
index 28bc85958ec..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009000
+++ /dev/null
@@ -1,6 +0,0 @@
-5.009000
-new_version # U
-save_set_svflags # U
-vcmp # U
-vnumify # U
-vstringify # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009001
deleted file mode 100644
index 26d2c4c5487..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009001
+++ /dev/null
@@ -1,6 +0,0 @@
-5.009001
-hv_clear_placeholders # U
-hv_scalar # U
-scan_version # E (Perl_scan_version)
-sv_2iv_flags # U
-sv_2uv_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009002
deleted file mode 100644
index 5678492aef9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009002
+++ /dev/null
@@ -1,7 +0,0 @@
-5.009002
-SvPVbyte_force # U
-find_rundefsvoffset # U
-op_refcnt_lock # U
-op_refcnt_unlock # U
-savesvpv # U
-vnormal # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009003
deleted file mode 100644
index 5b9c10ab551..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009003
+++ /dev/null
@@ -1,23 +0,0 @@
-5.009003
-av_arylen_p # U
-ckwarn # U
-ckwarn_d # U
-csighandler # E (Perl_csighandler)
-dMULTICALL # E
-doref # U
-gv_const_sv # U
-hv_eiter_p # U
-hv_eiter_set # U
-hv_name_set # U
-hv_placeholders_get # U
-hv_placeholders_set # U
-hv_riter_p # U
-hv_riter_set # U
-is_utf8_string_loclen # U
-newGIVENOP # U
-newSVhek # U
-newWHENOP # U
-pad_compname_type # U
-savepvs # U
-sortsv_flags # U
-vverify # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009004
deleted file mode 100644
index 6295708cd65..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009004
+++ /dev/null
@@ -1,9 +0,0 @@
-5.009004
-PerlIO_context_layers # U
-gv_name_set # U
-hv_copy_hints_hv # U
-my_vsnprintf # U
-newXS_flags # U
-regclass_swash # E (Perl_regclass_swash)
-sv_does # U
-sv_usepvn_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009005
deleted file mode 100644
index 497ee9117ea..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5009005
+++ /dev/null
@@ -1,29 +0,0 @@
-5.009005
-Perl_signbit # U
-SvRX # U
-SvRXOK # U
-av_create_and_push # U
-av_create_and_unshift_one # U
-gv_fetchfile_flags # U
-lex_start # E (Perl_lex_start)
-mro_get_linear_isa # U
-mro_method_changed_in # U
-my_dirfd # U
-pregcomp # E (Perl_pregcomp)
-ptr_table_clear # U
-ptr_table_fetch # U
-ptr_table_free # U
-ptr_table_new # U
-ptr_table_split # U
-ptr_table_store # U
-re_compile # U
-reg_named_buff_all # U
-reg_named_buff_exists # U
-reg_named_buff_fetch # U
-reg_named_buff_firstkey # U
-reg_named_buff_nextkey # U
-reg_named_buff_scalar # U
-regfree_internal # U
-savesharedpvn # U
-scan_vstring # E (Perl_scan_vstring)
-upg_version # E (Perl_upg_version)
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5010000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5010000
deleted file mode 100644
index 737f374ef0f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5010000
+++ /dev/null
@@ -1,7 +0,0 @@
-5.010000
-hv_common # U
-hv_common_key_len # U
-sv_destroyable # U
-sys_init # U
-sys_init3 # U
-sys_term # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5010001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5010001
deleted file mode 100644
index 4ec5eee4922..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5010001
+++ /dev/null
@@ -1,13 +0,0 @@
-5.010001
-croak_xs_usage # U
-mro_get_from_name # U
-mro_get_private_data # U
-mro_register # U
-mro_set_mro # U
-mro_set_private_data # U
-save_hints # U
-save_padsv_and_mortalize # U
-save_pushi32ptr # U
-save_pushptr # U
-save_pushptrptr # U
-sv_insert_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011000
deleted file mode 100644
index 805d8b19acd..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011000
+++ /dev/null
@@ -1,14 +0,0 @@
-5.011000
-Gv_AMupdate # E (Perl_Gv_AMupdate)
-PL_opfreehook # E
-SVt_REGEXP # E
-SvOOK_offset # U
-av_iter_p # U
-gv_add_by_type # U
-is_ascii_string # U
-pregfree2 # U
-save_adelete # U
-save_aelem_flags # U
-save_hdelete # U
-save_helem_flags # U
-sv_utf8_upgrade_flags_grow # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011001
deleted file mode 100644
index f42409363b7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011001
+++ /dev/null
@@ -1,6 +0,0 @@
-5.011001
-ck_warner # U
-ck_warner_d # U
-is_utf8_perl_space # U
-is_utf8_perl_word # U
-is_utf8_posix_digit # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011002
deleted file mode 100644
index df12d99fd62..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011002
+++ /dev/null
@@ -1,13 +0,0 @@
-5.011002
-PL_keyword_plugin # E
-lex_bufutf8 # U
-lex_discard_to # U
-lex_grow_linestr # U
-lex_next_chunk # U
-lex_peek_unichar # U
-lex_read_space # U
-lex_read_to # U
-lex_read_unichar # U
-lex_stuff_pvn # U
-lex_stuff_sv # U
-lex_unstuff # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011003
deleted file mode 100644
index 3fd94ca1b60..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011003
+++ /dev/null
@@ -1 +0,0 @@
-5.011003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011004
deleted file mode 100644
index 86c1fce4f2a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011004
+++ /dev/null
@@ -1,2 +0,0 @@
-5.011004
-prescan_version # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011005
deleted file mode 100644
index d9b0d6a4c94..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5011005
+++ /dev/null
@@ -1,2 +0,0 @@
-5.011005
-sv_pos_u2b_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012000
deleted file mode 100644
index 82cbce2d6d9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012000
+++ /dev/null
@@ -1 +0,0 @@
-5.012000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012001
deleted file mode 100644
index 90dc03fdf35..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012001
+++ /dev/null
@@ -1 +0,0 @@
-5.012001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012002
deleted file mode 100644
index 8ab87f08d8a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012002
+++ /dev/null
@@ -1 +0,0 @@
-5.012002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012003
deleted file mode 100644
index f2abab4c17c..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012003
+++ /dev/null
@@ -1 +0,0 @@
-5.012003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012004
deleted file mode 100644
index e7319cd5663..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012004
+++ /dev/null
@@ -1 +0,0 @@
-5.012004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012005
deleted file mode 100644
index 5af01305efd..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5012005
+++ /dev/null
@@ -1 +0,0 @@
-5.012005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013000
deleted file mode 100644
index f2f116d2fab..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013000
+++ /dev/null
@@ -1 +0,0 @@
-5.013000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013001
deleted file mode 100644
index 679bf3c35e5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013001
+++ /dev/null
@@ -1,6 +0,0 @@
-5.013001
-croak_sv # U
-die_sv # U
-mess_sv # U
-sv_2nv_flags # U
-warn_sv # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013002
deleted file mode 100644
index fa6d99b4076..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013002
+++ /dev/null
@@ -1,9 +0,0 @@
-5.013002
-SvNV_nomg # U
-find_rundefsv # U
-foldEQ # U
-foldEQ_locale # U
-foldEQ_utf8 # U
-hv_fill # U
-sv_dec_nomg # U
-sv_inc_nomg # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013003
deleted file mode 100644
index 5e04f03c8a5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013003
+++ /dev/null
@@ -1,3 +0,0 @@
-5.013003
-blockhook_register # E
-croak_no_modify # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013004
deleted file mode 100644
index 8aac89eb8d4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013004
+++ /dev/null
@@ -1 +0,0 @@
-5.013004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013005
deleted file mode 100644
index e9cd3e8b5f8..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013005
+++ /dev/null
@@ -1,5 +0,0 @@
-5.013005
-PL_rpeepp # E
-isOCTAL # U
-lex_stuff_pvs # U
-parse_fullstmt # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013006
deleted file mode 100644
index d145f368393..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013006
+++ /dev/null
@@ -1,32 +0,0 @@
-5.013006
-LINKLIST # U
-SvTRUE_nomg # U
-ck_entersub_args_list # U
-ck_entersub_args_proto # U
-ck_entersub_args_proto_or_list # U
-cv_get_call_checker # E
-cv_set_call_checker # E
-isWORDCHAR # U
-lex_stuff_pv # U
-mg_free_type # U
-newSVpv_share # U
-op_append_elem # U
-op_append_list # U
-op_contextualize # U
-op_linklist # U
-op_prepend_elem # U
-parse_stmtseq # U
-rv2cv_op_cv # U
-savesharedpvs # U
-savesharedsvpv # U
-sv_2bool_flags # U
-sv_catpv_flags # U
-sv_catpv_nomg # U
-sv_catpvs_flags # U
-sv_catpvs_mg # U
-sv_catpvs_nomg # U
-sv_cmp_flags # U
-sv_cmp_locale_flags # U
-sv_collxfrm_flags # U
-sv_eq_flags # U
-sv_setpvs_mg # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013007
deleted file mode 100644
index c70717f6a5e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013007
+++ /dev/null
@@ -1,35 +0,0 @@
-5.013007
-HvENAME # U
-OP_CLASS # U
-XopFLAGS # E
-amagic_deref_call # U
-bytes_cmp_utf8 # U
-cop_hints_2hv # A
-cop_hints_fetch_pv # U
-cop_hints_fetch_pvn # U
-cop_hints_fetch_pvs # U
-cop_hints_fetch_sv # U
-cophh_2hv # E
-cophh_copy # E
-cophh_delete_pv # E
-cophh_delete_pvn # E
-cophh_delete_pvs # E
-cophh_delete_sv # E
-cophh_fetch_pv # E
-cophh_fetch_pvn # E
-cophh_fetch_pvs # E
-cophh_fetch_sv # E
-cophh_free # E
-cophh_store_pv # E
-cophh_store_pvn # E
-cophh_store_pvs # E
-cophh_store_sv # E
-custom_op_register # E
-custom_op_xop # E
-newFOROP # A
-newWHILEOP # A
-op_lvalue # U
-op_scope # U
-parse_barestmt # U
-parse_block # U
-parse_label # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013008
deleted file mode 100644
index 8e95c5d3133..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013008
+++ /dev/null
@@ -1,6 +0,0 @@
-5.013008
-foldEQ_latin1 # U
-parse_arithexpr # U
-parse_fullexpr # U
-parse_listexpr # U
-parse_termexpr # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013009
deleted file mode 100644
index 51160ae344d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013009
+++ /dev/null
@@ -1 +0,0 @@
-5.013009
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013010
deleted file mode 100644
index d7f4365bfb1..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013010
+++ /dev/null
@@ -1,4 +0,0 @@
-5.013010
-foldEQ_utf8_flags # U
-is_utf8_xidcont # U
-is_utf8_xidfirst # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013011 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013011
deleted file mode 100644
index a33715f749e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5013011
+++ /dev/null
@@ -1 +0,0 @@
-5.013011
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014000
deleted file mode 100644
index 3f837ef4d0d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014000
+++ /dev/null
@@ -1,2 +0,0 @@
-5.014000
-_to_uni_fold_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014001
deleted file mode 100644
index 098fb03c9f4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014001
+++ /dev/null
@@ -1 +0,0 @@
-5.014001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014002
deleted file mode 100644
index f280bd0f4f7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014002
+++ /dev/null
@@ -1 +0,0 @@
-5.014002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014003
deleted file mode 100644
index 333e50d1db2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014003
+++ /dev/null
@@ -1 +0,0 @@
-5.014003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014004
deleted file mode 100644
index 1618e365ea4..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5014004
+++ /dev/null
@@ -1 +0,0 @@
-5.014004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015000
deleted file mode 100644
index d8c6546d720..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015000
+++ /dev/null
@@ -1 +0,0 @@
-5.015000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015001
deleted file mode 100644
index 144926b1244..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015001
+++ /dev/null
@@ -1,11 +0,0 @@
-5.015001
-cop_fetch_label # U
-cop_store_label # U
-pad_add_name_pv # U
-pad_add_name_pvn # U
-pad_add_name_pvs # U
-pad_add_name_sv # U
-pad_findmy_pv # U
-pad_findmy_pvn # U
-pad_findmy_pvs # U
-pad_findmy_sv # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015002
deleted file mode 100644
index 06741283d1d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015002
+++ /dev/null
@@ -1 +0,0 @@
-5.015002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015003
deleted file mode 100644
index 7f33df71289..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015003
+++ /dev/null
@@ -1 +0,0 @@
-5.015003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015004
deleted file mode 100644
index cce4634018e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015004
+++ /dev/null
@@ -1,30 +0,0 @@
-5.015004
-HvENAMELEN # U
-HvENAMEUTF8 # U
-HvNAMELEN # U
-HvNAMEUTF8 # U
-gv_autoload_pv # U
-gv_autoload_pvn # U
-gv_autoload_sv # U
-gv_fetchmeth_pv # U
-gv_fetchmeth_pv_autoload # U
-gv_fetchmeth_pvn # U
-gv_fetchmeth_pvn_autoload # U
-gv_fetchmeth_sv # U
-gv_fetchmeth_sv_autoload # U
-gv_fetchmethod_pv_flags # U
-gv_fetchmethod_pvn_flags # U
-gv_fetchmethod_sv_flags # U
-gv_init_pv # U
-gv_init_pvn # U
-gv_init_sv # U
-newGVgen_flags # U
-sv_derived_from_pv # U
-sv_derived_from_pvn # U
-sv_derived_from_sv # U
-sv_does_pv # U
-sv_does_pvn # U
-sv_does_sv # U
-whichsig_pv # U
-whichsig_pvn # U
-whichsig_sv # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015005
deleted file mode 100644
index 1908a935e3d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015005
+++ /dev/null
@@ -1 +0,0 @@
-5.015005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015006
deleted file mode 100644
index 4fb3c7c5901..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015006
+++ /dev/null
@@ -1,2 +0,0 @@
-5.015006
-newCONSTSUB_flags # A
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015007
deleted file mode 100644
index ce9078968a1..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015007
+++ /dev/null
@@ -1,8 +0,0 @@
-5.015007
-toLOWER_utf8 # U
-toTITLE_utf8 # U
-toUPPER_utf8 # U
-to_utf8_fold # U
-to_utf8_lower # U
-to_utf8_title # U
-to_utf8_upper # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015008
deleted file mode 100644
index 14c640388c7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015008
+++ /dev/null
@@ -1,3 +0,0 @@
-5.015008
-is_utf8_char_buf # U
-wrap_op_checker # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015009
deleted file mode 100644
index 30537f0445e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5015009
+++ /dev/null
@@ -1,5 +0,0 @@
-5.015009
-utf8_to_uvchr_buf # U
-utf8_to_uvuni_buf # U
-valid_utf8_to_uvchr # U
-valid_utf8_to_uvuni # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016000
deleted file mode 100644
index 3bd46b73620..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016000
+++ /dev/null
@@ -1 +0,0 @@
-5.016000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016001
deleted file mode 100644
index 5e2b46c7762..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016001
+++ /dev/null
@@ -1 +0,0 @@
-5.016001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016002
deleted file mode 100644
index dfd939f6843..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016002
+++ /dev/null
@@ -1 +0,0 @@
-5.016002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016003
deleted file mode 100644
index 88e54eb950f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5016003
+++ /dev/null
@@ -1 +0,0 @@
-5.016003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017000
deleted file mode 100644
index bf56b9a68af..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017000
+++ /dev/null
@@ -1 +0,0 @@
-5.017000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017001
deleted file mode 100644
index 6c9994352af..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017001
+++ /dev/null
@@ -1 +0,0 @@
-5.017001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017002
deleted file mode 100644
index fd825e14bcd..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017002
+++ /dev/null
@@ -1,7 +0,0 @@
-5.017002
-is_uni_blank # U
-is_uni_blank_lc # U
-is_utf8_blank # U
-sv_copypv_flags # U
-sv_copypv_nomg # U
-sv_vcatpvfn_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017003
deleted file mode 100644
index 50227645479..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017003
+++ /dev/null
@@ -1 +0,0 @@
-5.017003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017004
deleted file mode 100644
index 02021258887..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017004
+++ /dev/null
@@ -1,5 +0,0 @@
-5.017004
-PL_comppad_name # E
-PadlistREFCNT # U
-newMYSUB # E (Perl_newMYSUB)
-newSVpadname # E
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017005
deleted file mode 100644
index 31dfb1c3838..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017005
+++ /dev/null
@@ -1 +0,0 @@
-5.017005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017006
deleted file mode 100644
index 0bb24862396..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017006
+++ /dev/null
@@ -1,2 +0,0 @@
-5.017006
-READ_XDIGIT # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017007
deleted file mode 100644
index c95c23505f2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017007
+++ /dev/null
@@ -1,7 +0,0 @@
-5.017007
-SvREFCNT_dec_NN # U
-_is_uni_perl_idstart # U
-_is_utf8_perl_idstart # U
-is_uni_alnumc # U
-is_uni_alnumc_lc # U
-is_utf8_alnumc # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017008
deleted file mode 100644
index 9228a1506d0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017008
+++ /dev/null
@@ -1,8 +0,0 @@
-5.017008
-_is_uni_FOO # U
-_is_uni_perl_idcont # U
-_is_utf8_FOO # U
-_is_utf8_mark # U
-_is_utf8_perl_idcont # U
-isALPHANUMERIC # U
-isIDCONT # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017009
deleted file mode 100644
index fd728270400..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017009
+++ /dev/null
@@ -1,3 +0,0 @@
-5.017009
-av_tindex # U
-av_top_index # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017010
deleted file mode 100644
index fed2762e9b6..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017010
+++ /dev/null
@@ -1 +0,0 @@
-5.017010
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017011 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017011
deleted file mode 100644
index 5fcf0516810..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5017011
+++ /dev/null
@@ -1 +0,0 @@
-5.017011
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018000
deleted file mode 100644
index 17729d0b741..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018000
+++ /dev/null
@@ -1,2 +0,0 @@
-5.018000
-hv_rand_set # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018001
deleted file mode 100644
index 5d4bb8f5003..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018001
+++ /dev/null
@@ -1 +0,0 @@
-5.018001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018002
deleted file mode 100644
index 17291bcf13a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018002
+++ /dev/null
@@ -1 +0,0 @@
-5.018002
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018003
deleted file mode 100644
index 4d40f26283a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018003
+++ /dev/null
@@ -1 +0,0 @@
-5.018003
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018004
deleted file mode 100644
index f137cc2ad75..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5018004
+++ /dev/null
@@ -1 +0,0 @@
-5.018004
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019000
deleted file mode 100644
index a6e8e034939..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019000
+++ /dev/null
@@ -1 +0,0 @@
-5.019000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019001
deleted file mode 100644
index 803ad9abffb..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019001
+++ /dev/null
@@ -1,6 +0,0 @@
-5.019001
-re_intuit_start # A
-toFOLD # U
-toFOLD_utf8 # U
-toLOWER_L1 # U
-toTITLE # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019002
deleted file mode 100644
index 5af71fbeae6..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019002
+++ /dev/null
@@ -1,2 +0,0 @@
-5.019002
-SVt_INVLIST # E
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019003 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019003
deleted file mode 100644
index 488ef60b2f2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019003
+++ /dev/null
@@ -1,3 +0,0 @@
-5.019003
-croak_memory_wrap # U (Perl_croak_memory_wrap)
-sv_pos_b2u_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019004
deleted file mode 100644
index 1aa2023c9f7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019004
+++ /dev/null
@@ -1,4 +0,0 @@
-5.019004
-append_utf8_from_native_byte # U
-is_safe_syscall # U
-uvoffuni_to_utf8_flags # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019005
deleted file mode 100644
index 69dcd69aefb..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019005
+++ /dev/null
@@ -1 +0,0 @@
-5.019005
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019006
deleted file mode 100644
index f14fb0c0c4b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019006
+++ /dev/null
@@ -1 +0,0 @@
-5.019006
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019007
deleted file mode 100644
index c34055ea2af..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019007
+++ /dev/null
@@ -1,2 +0,0 @@
-5.019007
-OP_TYPE_IS # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019008
deleted file mode 100644
index 8fe2e2f1ded..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019008
+++ /dev/null
@@ -1 +0,0 @@
-5.019008
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019009 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019009
deleted file mode 100644
index 7706f723a00..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019009
+++ /dev/null
@@ -1,5 +0,0 @@
-5.019009
-_to_utf8_fold_flags # A
-_to_utf8_lower_flags # A
-_to_utf8_title_flags # A
-_to_utf8_upper_flags # A
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019010 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019010
deleted file mode 100644
index 8bdae66ddbe..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019010
+++ /dev/null
@@ -1,2 +0,0 @@
-5.019010
-OP_TYPE_IS_OR_WAS # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019011 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019011
deleted file mode 100644
index 2436c20fa66..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5019011
+++ /dev/null
@@ -1 +0,0 @@
-5.019011
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5020000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5020000
deleted file mode 100644
index 0c909259446..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5020000
+++ /dev/null
@@ -1 +0,0 @@
-5.020000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5020001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5020001
deleted file mode 100644
index 1448fe7920c..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5020001
+++ /dev/null
@@ -1 +0,0 @@
-5.020001
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021000 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021000
deleted file mode 100644
index b3138ab9c57..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021000
+++ /dev/null
@@ -1 +0,0 @@
-5.021000
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021001 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021001
deleted file mode 100644
index 6e66213f6ea..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021001
+++ /dev/null
@@ -1,12 +0,0 @@
-5.021001
-_is_in_locale_category # U
-_is_utf8_char_slow # U
-_is_utf8_idcont # U
-_is_utf8_idstart # U
-_is_utf8_xidcont # U
-_is_utf8_xidstart # U
-isALNUM_lazy # U
-isIDFIRST_lazy # U
-isUTF8_CHAR # U
-markstack_grow # E (Perl_markstack_grow)
-my_strerror # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021002 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021002
deleted file mode 100644
index 1e17e3d19bb..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021002
+++ /dev/null
@@ -1,4 +0,0 @@
-5.021002
-grok_number_flags # U
-op_parent # U
-op_sibling_splice # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021004 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021004
deleted file mode 100644
index 3a62526e13b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021004
+++ /dev/null
@@ -1,5 +0,0 @@
-5.021004
-cv_set_call_checker_flags # U
-grok_infnan # U
-isinfnan # U
-sync_locale # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021005 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021005
deleted file mode 100644
index 2a02ad28b68..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021005
+++ /dev/null
@@ -1,4 +0,0 @@
-5.021005
-cv_name # A
-newMETHOP # U
-newMETHOP_named # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021006 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021006
deleted file mode 100644
index fbefd16d47b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021006
+++ /dev/null
@@ -1,3 +0,0 @@
-5.021006
-newDEFSVOP # U
-op_convert_list # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021007 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021007
deleted file mode 100644
index 03c81e0cc8b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021007
+++ /dev/null
@@ -1,12 +0,0 @@
-5.021007
-OpHAS_SIBLING # U
-OpSIBLING # U
-OpSIBLING_set # U
-PadnameUTF8 # E
-is_invariant_string # U
-newPADNAMELIST # U
-newPADNAMEouter # U
-newPADNAMEpvn # U
-newUNOP_AUX # E
-padnamelist_fetch # U
-padnamelist_store # U
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021008 b/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021008
deleted file mode 100644
index 3d727244f8b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/parts/todo/5021008
+++ /dev/null
@@ -1,43 +0,0 @@
-5.021008
-BhkDISABLE # E
-BhkENABLE # E
-BhkENTRY_set # E
-MULTICALL # E
-PERL_SYS_TERM # E
-POP_MULTICALL # E
-PUSH_MULTICALL # E
-PadARRAY # E
-PadMAX # E
-PadlistARRAY # E
-PadlistMAX # E
-PadlistNAMES # E
-PadlistNAMESARRAY # E
-PadlistNAMESMAX # E
-PadnameLEN # E
-PadnamePV # E
-PadnameREFCNT # E
-PadnameREFCNT_dec # E
-PadnameSV # E
-PadnamelistARRAY # E
-PadnamelistMAX # E
-PadnamelistREFCNT # E
-PadnamelistREFCNT_dec # E
-XS_APIVERSION_BOOTCHECK # E
-XS_EXTERNAL # E
-XS_INTERNAL # E
-XS_VERSION_BOOTCHECK # E
-XopDISABLE # E
-XopENABLE # E
-XopENTRY # E
-XopENTRYCUSTOM # E
-XopENTRY_set # E
-cophh_new_empty # E
-my_lstat # U (Perl_my_lstat)
-my_stat # U (Perl_my_stat)
-reentrant_free # U
-reentrant_init # U
-reentrant_retry # U
-reentrant_size # U
-ref # U (Perl_ref)
-sv_get_backrefs # U
-sv_setref_pvs # A
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/ppport_h.PL b/gnu/usr.bin/perl/cpan/Devel-PPPort/ppport_h.PL
deleted file mode 100644
index e8c7c1e0d09..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/ppport_h.PL
+++ /dev/null
@@ -1,19 +0,0 @@
-################################################################################
-#
-# ppport_h.PL -- generate ppport.h
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-package Devel::PPPort;
-require "PPPort.pm";
-rename 'ppport.h', 'ppport.old' if -f 'ppport.h';
-unlink "ppport.old" if WriteFile("ppport.h") && -f 'ppport.h';
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/soak b/gnu/usr.bin/perl/cpan/Devel-PPPort/soak
deleted file mode 100644
index c229ed74620..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/soak
+++ /dev/null
@@ -1,599 +0,0 @@
-#!/usr/bin/perl -w
-################################################################################
-#
-# soak -- Test Perl modules with multiple Perl releases.
-#
-# Original Author: Paul Marquess
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-require 5.006001;
-
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-use Getopt::Long;
-use Pod::Usage;
-use File::Find;
-use List::Util qw(max);
-use Config;
-
-my $VERSION = '3.32';
-
-$| = 1;
-my %OPT = (
- verbose => 0,
- make => $Config{make} || 'make',
- min => '5.000',
- color => 1,
-);
-
-GetOptions(\%OPT, qw(verbose make=s min=s mmargs=s@ color!)) or pod2usage(2);
-
-$OPT{mmargs} = [''] unless exists $OPT{mmargs};
-$OPT{min} = parse_version($OPT{min}) - 1e-10;
-
-sub cs($;$$) { my $x = shift; my($s, $p) = @_ ? @_ : ('', 's'); ($x, $x == 1 ? $s : $p) }
-
-my @GoodPerls = map { $_->[0] }
- sort { $a->[1] <=> $b->[1] or $a->[0] cmp $b->[0] }
- grep { $_->[1] >= $OPT{min} }
- map { [$_ => perl_version($_)] }
- @ARGV ? SearchPerls(@ARGV) : FindPerls();
-
-unless (@GoodPerls) {
- print "Sorry, got no Perl binaries for testing.\n\n";
- exit 0;
-}
-
-my $maxlen = max(map length, @GoodPerls) + 3;
-my $mmalen = max(map length, @{$OPT{mmargs}});
-$maxlen += $mmalen+3 if $mmalen > 0;
-
-my $rep = Soak::Reporter->new( verbose => $OPT{verbose}
- , color => $OPT{color}
- , width => $maxlen
- );
-
-$SIG{__WARN__} = sub { $rep->warn(@_) };
-$SIG{__DIE__} = sub { $rep->die(@_) };
-
-# prime the pump, so the first "make realclean" will work.
-runit("$^X Makefile.PL") && runit("$OPT{make} realclean")
- or $rep->die("Cannot run $^X Makefile.PL && $OPT{make} realclean\n");
-
-my $tot = @GoodPerls*@{$OPT{mmargs}};
-
-$rep->set(tests => $tot);
-
-$rep->status(sprintf("Testing %d version%s / %d configuration%s (%d combination%s)...\n",
- cs(@GoodPerls), cs(@{$OPT{mmargs}}), cs($tot)));
-
-for my $perl (@GoodPerls) {
- for my $mm (@{$OPT{mmargs}}) {
- $rep->set(perl => $perl, config => $mm);
-
- $rep->test;
-
- my @warn_mfpl;
- my @warn_make;
- my @warn_test;
-
- my $ok = runit("$perl Makefile.PL $mm", \@warn_mfpl) &&
- runit("$OPT{make}", \@warn_make) &&
- runit("$OPT{make} test", \@warn_test);
-
- $rep->warnings(['Makefile.PL' => \@warn_mfpl],
- ['make' => \@warn_make],
- ['make test' => \@warn_test]);
-
- if ($ok) {
- $rep->passed;
- }
- else {
- $rep->failed;
- }
-
- runit("$OPT{make} realclean");
- }
-}
-
-exit $rep->finish;
-
-sub runit
-{
- # TODO -- portability alert!!
-
- my($cmd, $warn) = @_;
- $rep->vsay("\n Running [$cmd]");
- my $output = `$cmd 2>&1`;
- $output = "\n" unless defined $output;
- $output =~ s/^/ > /gm;
- $rep->say("\n Output:\n$output") if $OPT{verbose} || $?;
- if ($?) {
- $rep->warn(" Running '$cmd' failed: $?\n");
- return 0;
- }
- push @$warn, $output =~ /(warning: .*)/ig;
- return 1;
-}
-
-sub FindPerls
-{
- # TODO -- need to decide how far back we go.
- # TODO -- get list of user releases prior to 5.004
- # TODO -- does not work on Windows (at least)
-
- # find versions of Perl that are available
- my @PerlBinaries = qw(
- 5.000
- 5.001
- 5.002
- 5.003
- 5.004 5.00401 5.00402 5.00403 5.00404 5.00405
- 5.005 5.00501 5.00502 5.00503 5.00504
- 5.6.0 5.6.1 5.6.2
- 5.7.0 5.7.1 5.7.2 5.7.3
- 5.8.0 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8
- 5.9.0 5.9.1 5.9.2 5.9.3
- );
-
- print "Searching for Perl binaries...\n";
-
- # find_perl will send a warning to STDOUT if it can't find
- # the requested perl, so need to temporarily silence STDOUT.
- tie *STDOUT, 'NoSTDOUT';
-
- my $mm = MM->new( { NAME => 'dummy' });
- my @path = $mm->path;
- my @GoodPerls;
-
- for my $perl (@PerlBinaries) {
- if (my $abs = $mm->find_perl($perl, ["perl$perl"], \@path, 0)) {
- push @GoodPerls, $abs;
- }
- }
-
- untie *STDOUT;
-
- print "\nFound:\n", (map " $_\n", @GoodPerls), "\n";
-
- return @GoodPerls;
-}
-
-sub SearchPerls
-{
- my @args = @_;
- my @perls;
-
- for my $arg (@args) {
- if (-d $arg) {
- my @found;
- print "Searching for Perl binaries in '$arg'...\n";
- find({ wanted => sub {
- $File::Find::name =~ m!perl5[\w._]+$!
- and -f $File::Find::name
- and -x $File::Find::name
- and perl_version($File::Find::name)
- and push @found, $File::Find::name;
- }, follow => 1 }, $arg);
- printf "Found %d Perl binar%s in '%s'.\n\n", cs(@found, 'y', 'ies'), $arg;
- push @perls, @found;
- }
- else {
- push @perls, $arg;
- }
- }
-
- return @perls;
-}
-
-sub perl_version
-{
- my $perl = shift;
- my $ver = `$perl -e 'print \$]' 2>&1`;
- return $? == 0 && $ver =~ /^\d+\.\d+/ && $ver >= 5 ? $ver : 0;
-}
-
-sub parse_version
-{
- my $ver = shift;
-
- if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) {
- return $1 + 1e-3*$2 + 1e-6*$3;
- }
- elsif ($ver =~ /^\d+\.[\d_]+$/) {
- $ver =~ s/_//g;
- return $ver;
- }
-
- die "cannot parse version '$ver'\n";
-}
-
-package NoSTDOUT;
-
-use Tie::Handle;
-our @ISA = qw(Tie::Handle);
-
-sub TIEHANDLE { bless \(my $s = ''), shift }
-sub PRINT {}
-sub WRITE {}
-
-package Soak::Reporter;
-
-use strict;
-
-sub cs($;$$) { my $x = shift; my($s, $p) = @_ ? @_ : ('', 's'); ($x, $x == 1 ? $s : $p) }
-
-sub new
-{
- my $class = shift;
- bless {
- tests => undef,
- color => 1,
- verbose => 0,
- @_,
- _cur => 0,
- _atbol => 1,
- _total => 0,
- _good => [],
- _bad => [],
- }, $class;
-}
-
-sub colored
-{
- my $self = shift;
-
- if ($self->{color}) {
- my $c = eval {
- require Term::ANSIColor;
- Term::ANSIColor::colored(@_);
- };
-
- if ($@) {
- $self->{color} = 0;
- }
- else {
- return $c;
- }
- }
-
- return $_[0];
-}
-
-sub _config
-{
- my $self = shift;
- return $self->{config} =~ /\S+/ ? " ($self->{config})" : '';
-}
-
-sub _progress
-{
- my $self = shift;
- return '' unless defined $self->{tests};
- my $tlen = length $self->{tests};
- my $text = sprintf "[%${tlen}d/%${tlen}d] ", $self->{_cur}, $self->{tests};
- return $self->colored($text, 'bold');
-}
-
-sub _test
-{
- my $self = shift;
- return $self->_progress . "Testing "
- . $self->colored($self->{perl}, 'blue')
- . $self->colored($self->_config, 'green');
-}
-
-sub _testlen
-{
- my $self = shift;
- return length("Testing " . $self->{perl} . $self->_config);
-}
-
-sub _dots
-{
- my $self = shift;
- return '.' x $self->_dotslen;
-}
-
-sub _dotslen
-{
- my $self = shift;
- return $self->{width} - length($self->{perl} . $self->_config);
-}
-
-sub _sep
-{
- my $self = shift;
- my $width = shift;
- $self->print($self->colored('-'x$width, 'bold'), "\n");
-}
-
-sub _vsep
-{
- goto &_sep if $_[0]->{verbose};
-}
-
-sub set
-{
- my $self = shift;
- while (@_) {
- my($k, $v) = splice @_, 0, 2;
- $self->{$k} = $v;
- }
-}
-
-sub test
-{
- my $self = shift;
- $self->{_cur}++;
- $self->_vsep($self->_testlen);
- $self->print($self->_test, $self->{verbose} ? "\n" : ' ' . $self->_dots . ' ');
- $self->_vsep($self->_testlen);
-}
-
-sub _warnings
-{
- my($self, $mode) = @_;
-
- my $warnings = 0;
- my $differ = 0;
-
- for my $w (@{$self->{_warnings}}) {
- if (@{$w->[1]}) {
- $warnings += @{$w->[1]};
- $differ++;
- }
- }
-
- my $rv = '';
-
- if ($warnings) {
- if ($mode eq 'summary') {
- $rv .= sprintf " (%d warning%s", cs($warnings);
- }
- else {
- $rv .= "\n";
- }
-
- for my $w (@{$self->{_warnings}}) {
- if (@{$w->[1]}) {
- if ($mode eq 'detail') {
- $rv .= " Warnings during '$w->[0]':\n";
- my $cnt = 1;
- for my $msg (@{$w->[1]}) {
- $rv .= sprintf " [%d] %s", $cnt++, $msg;
- }
- $rv .= "\n";
- }
- else {
- unless ($self->{verbose}) {
- $rv .= $differ == 1 ? " during " . $w->[0]
- : sprintf(", %d during %s", scalar @{$w->[1]}, $w->[0]);
- }
- }
- }
- }
-
- if ($mode eq 'summary') {
- $rv .= ')';
- }
- }
-
- return $rv;
-}
-
-sub _result
-{
- my($self, $text, $color) = @_;
- my $sum = $self->_warnings('summary');
- my $len = $self->_testlen + $self->_dotslen + length($text) + length($sum) + 2;
-
- $self->_vsep($len);
- $self->print($self->_test, ' ', $self->_dots, ' ') if $self->{verbose} || $self->{_atbol};
- $self->print($self->colored($text, $color));
- $self->print($self->colored($sum, 'red'));
- $self->print("\n");
- $self->_vsep($len);
- $self->print($self->_warnings('detail')) if $self->{verbose};
- $self->{_total}++;
-}
-
-sub passed
-{
- my $self = shift;
- $self->_result(@_, 'ok', 'bold green');
- push @{$self->{_good}}, [$self->{perl}, $self->{config}];
-}
-
-sub failed
-{
- my $self = shift;
- $self->_result(@_, 'not ok', 'bold red');
- push @{$self->{_bad}}, [$self->{perl}, $self->{config}];
-}
-
-sub warnings
-{
- my $self = shift;
- $self->{_warnings} = \@_;
-}
-
-sub _tobol
-{
- my $self = shift;
- print "\n" unless $self->{_atbol};
- $self->{_atbol} = 1;
-}
-
-sub print
-{
- my $self = shift;
- my $text = join '', @_;
- print $text;
- $self->{_atbol} = $text =~ /[\r\n]$/;
-}
-
-sub say
-{
- my $self = shift;
- $self->_tobol;
- $self->print(@_, "\n");
-}
-
-sub vsay
-{
- goto &say if $_[0]->{verbose};
-}
-
-sub warn
-{
- my $self = shift;
- $self->say($self->colored(join('', @_), 'red'));
-}
-
-sub die
-{
- my $self = shift;
- $self->say($self->colored(join('', 'FATAL: ', @_), 'bold red'));
- exit -1;
-}
-
-sub status
-{
- my($self, $text) = @_;
- $self->_tobol;
- $self->print($self->colored($text, 'bold'), "\n");
-}
-
-sub finish
-{
- my $self = shift;
-
- if (@{$self->{_bad}}) {
- $self->status("\nFailed with:");
- for my $fail (@{$self->{_bad}}) {
- my($perl, $cfg) = @$fail;
- $self->set(config => $cfg);
- $self->say(" ", $self->colored($perl, 'blue'), $self->colored($self->_config, 'green'));
- }
- }
-
- $self->status(sprintf("\nPassed with %d of %d combination%s.\n",
- scalar @{$self->{_good}}, cs($self->{_total})));
-
- return scalar @{$self->{_bad}};
-}
-
-__END__
-
-=head1 NAME
-
-soak - Test Perl modules with multiple Perl releases
-
-=head1 SYNOPSIS
-
- soak [options] [perl ...]
-
- --make=program override name of make program ($Config{make})
- --min=version use at least this version of perl
- --mmargs=options pass options to Makefile.PL (multiple --mmargs possible)
- --verbose be verbose
- --nocolor don't use colored output
-
-=head1 DESCRIPTION
-
-The F<soak> utility can be used to test Perl modules with
-multiple Perl releases or build options. It automates the
-task of running F<Makefile.PL> and the modules test suite.
-
-It is not primarily intended for cross-platform checking,
-so don't expect it to work on all platforms.
-
-=head1 EXAMPLES
-
-To test your favourite module, just change to its root
-directory (where the F<Makefile.PL> is located) and run:
-
- soak
-
-This will automatically look for Perl binaries installed
-on your system.
-
-Alternatively, you can explicitly pass F<soak> a list of
-Perl binaries:
-
- soak perl5.8.6 perl5.9.2
-
-Last but not least, you can pass it a list of directories
-to recursively search for Perl binaries, for example:
-
- soak /tmp/perl/install /usr/bin
-
-All of the above examples will run
-
- perl Makefile.PL
- make
- make test
-
-for your module and report success or failure.
-
-If your F<Makefile.PL> can take arguments, you may also
-want to test different configurations for your module.
-You can do so with the I<--mmargs> option:
-
- soak --mmargs=' ' --mmargs='CCFLAGS=-Wextra' --mmargs='enable-debug'
-
-This will run
-
- perl Makefile.PL
- make
- make test
- perl Makefile.PL CCFLAGS=-Wextra
- make
- make test
- perl Makefile.PL enable-debug
- make
- make test
-
-for each Perl binary.
-
-If you have a directory full of different Perl binaries,
-but your module isn't expected to work with ancient perls,
-you can use the I<--min> option to specify the minimum
-version a Perl binary must have to be chosen for testing:
-
- soak --min=5.8.1
-
-Usually, the output of F<soak> is rather terse, to give
-you a good overview. If you'd like to see more of what's
-going on, use the I<--verbose> option:
-
- soak --verbose
-
-=head1 COPYRIGHT
-
-Version 3.x, Copyright (c) 2004-2013, Marcus Holland-Moritz.
-
-Version 2.x, Copyright (C) 2001, Paul Marquess.
-
-Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-See L<Devel::PPPort>.
-
-=cut
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/HvNAME.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/HvNAME.t
deleted file mode 100755
index f54fac2c892..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/HvNAME.t
+++ /dev/null
@@ -1,56 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/HvNAME instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (4) {
- load();
- plan(tests => 4);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(Devel::PPPort::HvNAME_get(\%Devel::PPPort::), 'Devel::PPPort');
-ok(Devel::PPPort::HvNAME_get({}), undef);
-
-ok(Devel::PPPort::HvNAMELEN_get(\%Devel::PPPort::), length('Devel::PPPort'));
-ok(Devel::PPPort::HvNAMELEN_get({}), 0);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/MY_CXT.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/MY_CXT.t
deleted file mode 100755
index a94bd386c4d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/MY_CXT.t
+++ /dev/null
@@ -1,54 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/MY_CXT instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (3) {
- load();
- plan(tests => 3);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(&Devel::PPPort::MY_CXT_1());
-ok(&Devel::PPPort::MY_CXT_2());
-ok(&Devel::PPPort::MY_CXT_CLONE());
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/SvPV.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/SvPV.t
deleted file mode 100755
index 392a0ccb0e3..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/SvPV.t
+++ /dev/null
@@ -1,120 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/SvPV instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (49) {
- load();
- plan(tests => 49);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my $mhx = "mhx";
-
-ok(&Devel::PPPort::SvPVbyte($mhx), 3);
-
-my $i = 42;
-
-ok(&Devel::PPPort::SvPV_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_const($mhx), $i++);
-ok(&Devel::PPPort::SvPV_mutable($mhx), $i++);
-ok(&Devel::PPPort::SvPV_flags($mhx), $i++);
-ok(&Devel::PPPort::SvPV_flags_const($mhx), $i++);
-
-ok(&Devel::PPPort::SvPV_flags_const_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_flags_mutable($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_mutable($mhx), $i++);
-
-ok(&Devel::PPPort::SvPV_force_nomg($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_nomg_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_flags($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_flags_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_force_flags_mutable($mhx), $i++);
-
-ok(&Devel::PPPort::SvPV_nolen_const($mhx), $i++);
-ok(&Devel::PPPort::SvPV_nomg($mhx), $i++);
-ok(&Devel::PPPort::SvPV_nomg_const($mhx), $i++);
-ok(&Devel::PPPort::SvPV_nomg_const_nolen($mhx), $i++);
-ok(&Devel::PPPort::SvPV_nomg_nolen($mhx), $i++);
-
-$mhx = 42; ok(&Devel::PPPort::SvPV_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_const($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_mutable($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_flags($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_flags_const($mhx), 2);
-
-$mhx = 42; ok(&Devel::PPPort::SvPV_flags_const_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_flags_mutable($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_mutable($mhx), 2);
-
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_nomg($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_nomg_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags_mutable($mhx), 2);
-
-$mhx = 42; ok(&Devel::PPPort::SvPV_nolen_const($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_nomg($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_const($mhx), 2);
-$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_const_nolen($mhx), 0);
-$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_nolen($mhx), 0);
-
-my $str = "";
-&Devel::PPPort::SvPV_force($str);
-my($s2, $before, $after) = &Devel::PPPort::SvPV_renew($str, 81, "x"x80);
-ok($str, "x"x80);
-ok($s2, "x"x80);
-ok($before < 81);
-ok($after, 81);
-
-$str = "x"x400;
-&Devel::PPPort::SvPV_force($str);
-($s2, $before, $after) = &Devel::PPPort::SvPV_renew($str, 41, "x"x40);
-ok($str, "x"x40);
-ok($s2, "x"x40);
-ok($before > 41);
-ok($after, 41);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/SvREFCNT.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/SvREFCNT.t
deleted file mode 100755
index 0b46a51793c..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/SvREFCNT.t
+++ /dev/null
@@ -1,54 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/SvREFCNT instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (14) {
- load();
- plan(tests => 14);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-for (Devel::PPPort::SvREFCNT()) {
- ok(defined $_ and $_);
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/Sv_set.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/Sv_set.t
deleted file mode 100755
index 77a7a860db0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/Sv_set.t
+++ /dev/null
@@ -1,71 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/Sv_set instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (5) {
- load();
- plan(tests => 5);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my $foo = 5;
-ok(&Devel::PPPort::TestSvUV_set($foo, 12345), 42);
-ok(&Devel::PPPort::TestSvPVX_const("mhx"), 43);
-ok(&Devel::PPPort::TestSvPVX_mutable("mhx"), 44);
-
-my $bar = [];
-
-bless $bar, 'foo';
-ok($bar->x(), 'foobar');
-
-Devel::PPPort::TestSvSTASH_set($bar, 'bar');
-ok($bar->x(), 'hacker');
-
-package foo;
-
-sub x { 'foobar' }
-
-package bar;
-
-sub x { 'hacker' }
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/call.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/call.t
deleted file mode 100755
index 4d3e80e4c80..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/call.t
+++ /dev/null
@@ -1,107 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/call instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (52) {
- load();
- plan(tests => 52);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-sub eq_array
-{
- my($a, $b) = @_;
- join(':', @$a) eq join(':', @$b);
-}
-
-sub f
-{
- shift;
- unshift @_, 'b';
- pop @_;
- @_, defined wantarray ? wantarray ? 'x' : 'y' : 'z';
-}
-
-my $obj = bless [], 'Foo';
-
-sub Foo::meth
-{
- return 'bad_self' unless @_ && ref $_[0] && ref($_[0]) eq 'Foo';
- shift;
- shift;
- unshift @_, 'b';
- pop @_;
- @_, defined wantarray ? wantarray ? 'x' : 'y' : 'z';
-}
-
-my $test;
-
-for $test (
- # flags args expected description
- [ &Devel::PPPort::G_SCALAR, [ ], [ qw(y 1) ], '0 args, G_SCALAR' ],
- [ &Devel::PPPort::G_SCALAR, [ qw(a p q) ], [ qw(y 1) ], '3 args, G_SCALAR' ],
- [ &Devel::PPPort::G_ARRAY, [ ], [ qw(x 1) ], '0 args, G_ARRAY' ],
- [ &Devel::PPPort::G_ARRAY, [ qw(a p q) ], [ qw(b p x 3) ], '3 args, G_ARRAY' ],
- [ &Devel::PPPort::G_DISCARD, [ ], [ qw(0) ], '0 args, G_DISCARD' ],
- [ &Devel::PPPort::G_DISCARD, [ qw(a p q) ], [ qw(0) ], '3 args, G_DISCARD' ],
-)
-{
- my ($flags, $args, $expected, $description) = @$test;
- print "# --- $description ---\n";
- ok(eq_array( [ &Devel::PPPort::call_sv(\&f, $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_sv(*f, $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_sv('f', $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_pv('f', $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_argv('f', $flags, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::eval_sv("f(qw(@$args))", $flags) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_method('meth', $flags, $obj, @$args) ], $expected));
- ok(eq_array( [ &Devel::PPPort::call_sv_G_METHOD('meth', $flags, $obj, @$args) ], $expected));
-};
-
-ok(&Devel::PPPort::eval_pv('f()', 0), 'y');
-ok(&Devel::PPPort::eval_pv('f(qw(a b c))', 0), 'y');
-
-ok(!defined $::{'less::'}, 1, "Hadn't loaded less yet");
-Devel::PPPort::load_module(0, "less", undef);
-ok(defined $::{'less::'}, 1, "Have now loaded less");
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/cop.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/cop.t
deleted file mode 100755
index 1677dee79aa..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/cop.t
+++ /dev/null
@@ -1,110 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/cop instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (28) {
- load();
- plan(tests => 28);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my $package;
-{
- package MyPackage;
- $package = &Devel::PPPort::CopSTASHPV();
-}
-print "# $package\n";
-ok($package, "MyPackage");
-
-my $file = &Devel::PPPort::CopFILE();
-print "# $file\n";
-ok($file =~ /cop/i);
-
-BEGIN {
- if ($] < 5.006000) {
- # Skip
- for (1..28) {
- ok(1, 1);
- }
- exit;
- }
-}
-
-BEGIN {
- package DB;
- no strict "refs";
- local $^P = 1;
- sub sub { &$DB::sub }
-}
-
-{ package One; sub one { Devel::PPPort::caller_cx($_[0]) } }
-{
- package Two;
- sub two { One::one(@_) }
- sub dbtwo {
- BEGIN { $^P = 1 }
- One::one(@_);
- BEGIN { $^P = 0 }
- }
-}
-
-for (
- # This is rather confusing. The package is the package the call is
- # made *from*, the sub name is the sub the call is made *to*. When
- # DB::sub is involved the first call is to DB::sub from the calling
- # package, the second is to the real sub from package DB.
- [\&One::one, 0, qw/main one main one/],
- [\&One::one, 2, ],
- [\&Two::two, 0, qw/Two one Two one/],
- [\&Two::two, 1, qw/main two main two/],
- [\&Two::dbtwo, 0, qw/Two sub DB one/],
- [\&Two::dbtwo, 1, qw/main dbtwo main dbtwo/],
-) {
- my ($sub, $arg, @want) = @$_;
- my @got = $sub->($arg);
- ok(@got, @want);
- for (0..$#want) {
- ok($got[$_], $want[$_]);
- }
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/exception.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/exception.t
deleted file mode 100755
index c432df6e69d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/exception.t
+++ /dev/null
@@ -1,67 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/exception instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (7) {
- load();
- plan(tests => 7);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my $rv;
-
-$Devel::PPPort::exception_caught = undef;
-
-$rv = eval { &Devel::PPPort::exception(0) };
-ok($@, '');
-ok(defined $rv);
-ok($rv, 42);
-ok($Devel::PPPort::exception_caught, 0);
-
-$Devel::PPPort::exception_caught = undef;
-
-$rv = eval { &Devel::PPPort::exception(1) };
-ok($@, "boo\n");
-ok(not defined $rv);
-ok($Devel::PPPort::exception_caught, 1);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/format.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/format.t
deleted file mode 100755
index a25ede533f5..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/format.t
+++ /dev/null
@@ -1,55 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/format instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (1) {
- load();
- plan(tests => 1);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my $num = 1.12345678901234567890;
-
-eval { Devel::PPPort::croak_NVgf($num) };
-ok($@ =~ /^1.1234567890/);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/grok.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/grok.t
deleted file mode 100755
index b807ce8ccd6..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/grok.t
+++ /dev/null
@@ -1,62 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/grok instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (10) {
- load();
- plan(tests => 10);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(&Devel::PPPort::grok_number("42"), 42);
-ok(!defined(&Devel::PPPort::grok_number("A")));
-ok(&Devel::PPPort::grok_bin("10000001"), 129);
-ok(&Devel::PPPort::grok_hex("deadbeef"), 0xdeadbeef);
-ok(&Devel::PPPort::grok_oct("377"), 255);
-
-ok(&Devel::PPPort::Perl_grok_number("42"), 42);
-ok(!defined(&Devel::PPPort::Perl_grok_number("A")));
-ok(&Devel::PPPort::Perl_grok_bin("10000001"), 129);
-ok(&Devel::PPPort::Perl_grok_hex("deadbeef"), 0xdeadbeef);
-ok(&Devel::PPPort::Perl_grok_oct("377"), 255);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/gv.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/gv.t
deleted file mode 100755
index 66722f27a03..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/gv.t
+++ /dev/null
@@ -1,60 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/gv instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (5) {
- load();
- plan(tests => 5);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(Devel::PPPort::GvSVn(), 1);
-
-ok(Devel::PPPort::isGV_with_GP(), 2);
-
-ok(Devel::PPPort::get_cvn_flags(), 3);
-
-ok(Devel::PPPort::gv_fetchpvn_flags(), \*Devel::PPPort::VERSION);
-
-ok(Devel::PPPort::gv_fetchsv("Devel::PPPort::VERSION"), \*Devel::PPPort::VERSION);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/limits.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/limits.t
deleted file mode 100755
index ed1cb2e3ac2..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/limits.t
+++ /dev/null
@@ -1,55 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/limits instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (4) {
- load();
- plan(tests => 4);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(&Devel::PPPort::iv_size());
-ok(&Devel::PPPort::uv_size());
-ok(&Devel::PPPort::iv_type());
-ok(&Devel::PPPort::uv_type());
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/mPUSH.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/mPUSH.t
deleted file mode 100755
index 2f382768288..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/mPUSH.t
+++ /dev/null
@@ -1,62 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/mPUSH instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (10) {
- load();
- plan(tests => 10);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(join(':', &Devel::PPPort::mPUSHs()), "foo:bar:42");
-ok(join(':', &Devel::PPPort::mPUSHp()), "one:two:three");
-ok(join(':', &Devel::PPPort::mPUSHn()), "0.5:-0.25:0.125");
-ok(join(':', &Devel::PPPort::mPUSHi()), "-1:2:-3");
-ok(join(':', &Devel::PPPort::mPUSHu()), "1:2:3");
-
-ok(join(':', &Devel::PPPort::mXPUSHs()), "foo:bar:42");
-ok(join(':', &Devel::PPPort::mXPUSHp()), "one:two:three");
-ok(join(':', &Devel::PPPort::mXPUSHn()), "0.5:-0.25:0.125");
-ok(join(':', &Devel::PPPort::mXPUSHi()), "-1:2:-3");
-ok(join(':', &Devel::PPPort::mXPUSHu()), "1:2:3");
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/magic.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/magic.t
deleted file mode 100755
index f467613f27d..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/magic.t
+++ /dev/null
@@ -1,120 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/magic instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (23) {
- load();
- plan(tests => 23);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-# Find proper magic
-ok(my $obj1 = Devel::PPPort->new_with_mg());
-ok(Devel::PPPort::as_string($obj1), 'hello');
-
-# Find with no magic
-my $obj = bless {}, 'Fake::Class';
-ok(Devel::PPPort::as_string($obj), "Sorry, your princess is in another castle.");
-
-# Find with other magic (not the magic we are looking for)
-ok($obj = Devel::PPPort->new_with_other_mg());
-ok(Devel::PPPort::as_string($obj), "Sorry, your princess is in another castle.");
-
-# Okay, attempt to remove magic that isn't there
-Devel::PPPort::remove_other_magic($obj1);
-ok(Devel::PPPort::as_string($obj1), 'hello');
-
-# Remove magic that IS there
-Devel::PPPort::remove_null_magic($obj1);
-ok(Devel::PPPort::as_string($obj1), "Sorry, your princess is in another castle.");
-
-# Removing when no magic present
-Devel::PPPort::remove_null_magic($obj1);
-ok(Devel::PPPort::as_string($obj1), "Sorry, your princess is in another castle.");
-
-use Tie::Hash;
-my %h;
-tie %h, 'Tie::StdHash';
-$h{foo} = 'foo';
-$h{bar} = '';
-
-&Devel::PPPort::sv_catpv_mg($h{foo}, 'bar');
-ok($h{foo}, 'foobar');
-
-&Devel::PPPort::sv_catpvn_mg($h{bar}, 'baz');
-ok($h{bar}, 'baz');
-
-&Devel::PPPort::sv_catsv_mg($h{foo}, '42');
-ok($h{foo}, 'foobar42');
-
-&Devel::PPPort::sv_setiv_mg($h{bar}, 42);
-ok($h{bar}, 42);
-
-&Devel::PPPort::sv_setnv_mg($h{PI}, 3.14159);
-ok(abs($h{PI} - 3.14159) < 0.01);
-
-&Devel::PPPort::sv_setpv_mg($h{mhx}, 'mhx');
-ok($h{mhx}, 'mhx');
-
-&Devel::PPPort::sv_setpvn_mg($h{mhx}, 'Marcus');
-ok($h{mhx}, 'Marcus');
-
-&Devel::PPPort::sv_setsv_mg($h{sv}, 'SV');
-ok($h{sv}, 'SV');
-
-&Devel::PPPort::sv_setuv_mg($h{sv}, 4711);
-ok($h{sv}, 4711);
-
-&Devel::PPPort::sv_usepvn_mg($h{sv}, 'Perl');
-ok($h{sv}, 'Perl');
-
-# v1 is treated as a bareword in older perls...
-my $ver = do { local $SIG{'__WARN__'} = sub {}; eval qq[v1.2.0] };
-ok($] < 5.009 || $@ eq '');
-ok($] < 5.009 || Devel::PPPort::SvVSTRING_mg($ver));
-ok(!Devel::PPPort::SvVSTRING_mg(4711));
-
-my $foo = 'bar';
-ok(Devel::PPPort::sv_magic_portable($foo));
-ok($foo eq 'bar');
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/memory.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/memory.t
deleted file mode 100755
index 74ecb991bcf..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/memory.t
+++ /dev/null
@@ -1,52 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/memory instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (1) {
- load();
- plan(tests => 1);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(Devel::PPPort::checkmem(), 6);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/misc.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/misc.t
deleted file mode 100755
index 5f7f7b646e9..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/misc.t
+++ /dev/null
@@ -1,139 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/misc instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (41) {
- load();
- plan(tests => 41);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-use vars qw($my_sv @my_av %my_hv);
-
-ok(&Devel::PPPort::boolSV(1));
-ok(!&Devel::PPPort::boolSV(0));
-
-$_ = "Fred";
-ok(&Devel::PPPort::DEFSV(), "Fred");
-ok(&Devel::PPPort::UNDERBAR(), "Fred");
-
-if ($] >= 5.009002 && $] < 5.023) {
- eval q{
- no warnings "deprecated";
- no if $^V > v5.17.9, warnings => "experimental::lexical_topic";
- my $_ = "Tony";
- ok(&Devel::PPPort::DEFSV(), "Fred");
- ok(&Devel::PPPort::UNDERBAR(), "Tony");
- };
-}
-else {
- ok(1);
- ok(1);
-}
-
-my @r = &Devel::PPPort::DEFSV_modify();
-
-ok(@r == 3);
-ok($r[0], 'Fred');
-ok($r[1], 'DEFSV');
-ok($r[2], 'Fred');
-
-ok(&Devel::PPPort::DEFSV(), "Fred");
-
-eval { 1 };
-ok(!&Devel::PPPort::ERRSV());
-eval { cannot_call_this_one() };
-ok(&Devel::PPPort::ERRSV());
-
-ok(&Devel::PPPort::gv_stashpvn('Devel::PPPort', 0));
-ok(!&Devel::PPPort::gv_stashpvn('does::not::exist', 0));
-ok(&Devel::PPPort::gv_stashpvn('does::not::exist', 1));
-
-$my_sv = 1;
-ok(&Devel::PPPort::get_sv('my_sv', 0));
-ok(!&Devel::PPPort::get_sv('not_my_sv', 0));
-ok(&Devel::PPPort::get_sv('not_my_sv', 1));
-
-@my_av = (1);
-ok(&Devel::PPPort::get_av('my_av', 0));
-ok(!&Devel::PPPort::get_av('not_my_av', 0));
-ok(&Devel::PPPort::get_av('not_my_av', 1));
-
-%my_hv = (a=>1);
-ok(&Devel::PPPort::get_hv('my_hv', 0));
-ok(!&Devel::PPPort::get_hv('not_my_hv', 0));
-ok(&Devel::PPPort::get_hv('not_my_hv', 1));
-
-sub my_cv { 1 };
-ok(&Devel::PPPort::get_cv('my_cv', 0));
-ok(!&Devel::PPPort::get_cv('not_my_cv', 0));
-ok(&Devel::PPPort::get_cv('not_my_cv', 1));
-
-ok(Devel::PPPort::dXSTARG(42), 43);
-ok(Devel::PPPort::dAXMARK(4711), 4710);
-
-ok(Devel::PPPort::prepush(), 42);
-
-ok(join(':', Devel::PPPort::xsreturn(0)), 'test1');
-ok(join(':', Devel::PPPort::xsreturn(1)), 'test1:test2');
-
-ok(Devel::PPPort::PERL_ABS(42), 42);
-ok(Devel::PPPort::PERL_ABS(-13), 13);
-
-ok(Devel::PPPort::SVf(42), $] >= 5.004 ? '[42]' : '42');
-ok(Devel::PPPort::SVf('abc'), $] >= 5.004 ? '[abc]' : 'abc');
-
-ok(&Devel::PPPort::Perl_ppaddr_t("FOO"), "foo");
-
-ok(&Devel::PPPort::ptrtests(), 63);
-
-if ($] >= 5.009000) {
- eval q{
- ok(&Devel::PPPort::check_HeUTF8("hello"), "norm");
- ok(&Devel::PPPort::check_HeUTF8("\N{U+263a}"), "utf8");
- };
-} else {
- ok(1, 1);
- ok(1, 1);
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newCONSTSUB.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newCONSTSUB.t
deleted file mode 100755
index cb207a4587f..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newCONSTSUB.t
+++ /dev/null
@@ -1,59 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/newCONSTSUB instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (3) {
- load();
- plan(tests => 3);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-&Devel::PPPort::call_newCONSTSUB_1();
-ok(&Devel::PPPort::test_value_1(), 1);
-
-&Devel::PPPort::call_newCONSTSUB_2();
-ok(&Devel::PPPort::test_value_2(), 2);
-
-&Devel::PPPort::call_newCONSTSUB_3();
-ok(&Devel::PPPort::test_value_3(), 3);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newRV.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newRV.t
deleted file mode 100755
index 731a62b1f65..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newRV.t
+++ /dev/null
@@ -1,53 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/newRV instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (2) {
- load();
- plan(tests => 2);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(&Devel::PPPort::newRV_inc_REFCNT, 1);
-ok(&Devel::PPPort::newRV_noinc_REFCNT, 1);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newSV_type.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newSV_type.t
deleted file mode 100755
index 1b3233e5ce7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newSV_type.t
+++ /dev/null
@@ -1,52 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/newSV_type instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (1) {
- load();
- plan(tests => 1);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(Devel::PPPort::newSV_type(), 4);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newSVpv.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newSVpv.t
deleted file mode 100755
index d14a53fbe89..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/newSVpv.t
+++ /dev/null
@@ -1,78 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/newSVpv instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (15) {
- load();
- plan(tests => 15);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my @s = &Devel::PPPort::newSVpvn();
-ok(@s == 5);
-ok($s[0], "test");
-ok($s[1], "te");
-ok($s[2], "");
-ok(!defined($s[3]));
-ok(!defined($s[4]));
-
-@s = &Devel::PPPort::newSVpvn_flags();
-ok(@s == 5);
-ok($s[0], "test");
-ok($s[1], "te");
-ok($s[2], "");
-ok(!defined($s[3]));
-ok(!defined($s[4]));
-
-@s = &Devel::PPPort::newSVpvn_utf8();
-ok(@s == 1);
-ok($s[0], "test");
-
-if ($] >= 5.008001) {
- require utf8;
- ok(utf8::is_utf8($s[0]));
-}
-else {
- skip("skip: no is_utf8()", 0);
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/podtest.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/podtest.t
deleted file mode 100755
index c1a35b20a00..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/podtest.t
+++ /dev/null
@@ -1,83 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/podtest instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (0) {
- load();
- plan(tests => 0);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my @pods = qw( HACKERS PPPort.pm ppport.h soak devel/regenerate devel/buildperl.pl );
-
-my $reason = '';
-
-if ($ENV{'SKIP_SLOW_TESTS'}) {
- $reason = 'SKIP_SLOW_TESTS';
-}
-else {
- # Try loading Test::Pod
- eval q{
- use Test::Pod;
- $Test::Pod::VERSION >= 0.95
- or die "Test::Pod version only $Test::Pod::VERSION";
- import Test::Pod tests => scalar @pods;
- };
- $reason = 'Test::Pod >= 0.95 required' if $@;
-}
-
-if ($reason) {
- load();
- plan(tests => scalar @pods);
-}
-
-for (@pods) {
- print "# checking $_\n";
- if ($reason) {
- skip("skip: $reason", 0);
- }
- else {
- pod_file_ok($_);
- }
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/ppphtest.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/ppphtest.t
deleted file mode 100755
index 45840f9fc77..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/ppphtest.t
+++ /dev/null
@@ -1,946 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/ppphtest instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (238) {
- load();
- plan(tests => 238);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-BEGIN {
- if ($ENV{'SKIP_SLOW_TESTS'}) {
- for (1 .. 238) {
- skip("skip: SKIP_SLOW_TESTS", 0);
- }
- exit 0;
- }
-}
-
-use File::Path qw/rmtree mkpath/;
-use Config;
-
-my $tmp = 'ppptmp';
-my $inc = '';
-my $isVMS = $^O eq 'VMS';
-my $isMAC = $^O eq 'MacOS';
-my $perl = find_perl();
-
-rmtree($tmp) if -d $tmp;
-mkpath($tmp) or die "mkpath $tmp: $!\n";
-chdir($tmp) or die "chdir $tmp: $!\n";
-
-if ($ENV{'PERL_CORE'}) {
- if (-d '../../lib') {
- if ($isVMS) {
- $inc = '"-I../../lib"';
- }
- elsif ($isMAC) {
- $inc = '-I:::lib';
- }
- else {
- $inc = '-I../../lib';
- }
- unshift @INC, '../../lib';
- }
-}
-if ($perl =~ m!^\./!) {
- $perl = ".$perl";
-}
-
-END {
- chdir('..') if !-d $tmp && -d "../$tmp";
- rmtree($tmp) if -d $tmp;
-}
-
-ok(&Devel::PPPort::WriteFile("ppport.h"));
-
-# Check GetFileContents()
-ok(-e "ppport.h", 1);
-
-my $data;
-
-open(F, "<ppport.h") or die "Failed to open ppport.h: $!";
-while(<F>) {
- $data .= $_;
-}
-close(F);
-
-ok(Devel::PPPort::GetFileContents("ppport.h"), $data);
-ok(Devel::PPPort::GetFileContents(), $data);
-
-sub comment
-{
- my $c = shift;
- $c =~ s/^/# | /mg;
- $c .= "\n" unless $c =~ /[\r\n]$/;
- print $c;
-}
-
-sub ppport
-{
- my @args = ('ppport.h', @_);
- unshift @args, $inc if $inc;
- my $run = $perl =~ m/\s/ ? qq("$perl") : $perl;
- $run .= ' -MMac::err=unix' if $isMAC;
- for (@args) {
- $_ = qq("$_") if $isVMS && /^[^"]/;
- $run .= " $_";
- }
- print "# *** running $run ***\n";
- $run .= ' 2>&1' unless $isMAC;
- my @out = `$run`;
- my $out = join '', @out;
- comment($out);
- return wantarray ? @out : $out;
-}
-
-sub matches
-{
- my($str, $re, $mod) = @_;
- my @n;
- eval "\@n = \$str =~ /$re/g$mod;";
- if ($@) {
- my $err = $@;
- $err =~ s/^/# *** /mg;
- print "# *** ERROR ***\n$err\n";
- }
- return $@ ? -42 : scalar @n;
-}
-
-sub eq_files
-{
- my($f1, $f2) = @_;
- return 0 unless -e $f1 && -e $f2;
- local *F;
- for ($f1, $f2) {
- print "# File: $_\n";
- unless (open F, $_) {
- print "# couldn't open $_: $!\n";
- return 0;
- }
- $_ = do { local $/; <F> };
- close F;
- comment($_);
- }
- return $f1 eq $f2;
-}
-
-my @tests;
-
-for (split /\s*={70,}\s*/, do { local $/; <DATA> }) {
- s/^\s+//; s/\s+$//;
- my($c, %f);
- ($c, @f{m/-{20,}\s+(\S+)\s+-{20,}/g}) = split /\s*-{20,}\s+\S+\s+-{20,}\s*/;
- push @tests, { code => $c, files => \%f };
-}
-
-my $t;
-for $t (@tests) {
- print "#\n", ('# ', '-'x70, "\n")x3, "#\n";
- my $f;
- for $f (keys %{$t->{files}}) {
- my @f = split /\//, $f;
- if (@f > 1) {
- pop @f;
- my $path = join '/', @f;
- mkpath($path) or die "mkpath('$path'): $!\n";
- }
- my $txt = $t->{files}{$f};
- local *F;
- open F, ">$f" or die "open $f: $!\n";
- print F "$txt\n";
- close F;
- $txt =~ s/^/# | /mg;
- print "# *** writing $f ***\n$txt\n";
- }
-
- my $code = $t->{code};
- $code =~ s/^/# | /mg;
-
- print "# *** evaluating test code ***\n$code\n";
-
- eval $t->{code};
- if ($@) {
- my $err = $@;
- $err =~ s/^/# *** /mg;
- print "# *** ERROR ***\n$err\n";
- }
- ok($@, '');
-
- for (keys %{$t->{files}}) {
- unlink $_ or die "unlink('$_'): $!\n";
- }
-}
-
-sub find_perl
-{
- my $perl = $^X;
-
- return $perl if $isVMS;
-
- my $exe = $Config{'_exe'} || '';
-
- if ($perl =~ /^perl\Q$exe\E$/i) {
- $perl = "perl$exe";
- eval "require File::Spec";
- if ($@) {
- $perl = "./$perl";
- } else {
- $perl = File::Spec->catfile(File::Spec->curdir(), $perl);
- }
- }
-
- if ($perl !~ /\Q$exe\E$/i) {
- $perl .= $exe;
- }
-
- warn "find_perl: cannot find $perl from $^X" unless -f $perl;
-
- return $perl;
-}
-
-__DATA__
-
-my $o = ppport(qw(--help));
-ok($o =~ /^Usage:.*ppport\.h/m);
-ok($o =~ /--help/m);
-
-$o = ppport(qw(--version));
-ok($o =~ /^This is.*ppport.*\d+\.\d+(?:_?\d+)?\.$/);
-
-$o = ppport(qw(--nochanges));
-ok($o =~ /^Scanning.*test\.xs/mi);
-ok($o =~ /Analyzing.*test\.xs/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok(matches($o, 'Analyzing', 'm'), 1);
-ok($o =~ /Uses Perl_newSViv instead of newSViv/);
-
-$o = ppport(qw(--quiet --nochanges));
-ok($o =~ /^\s*$/);
-
----------------------------- test.xs ------------------------------------------
-
-Perl_newSViv();
-
-===============================================================================
-
-# check if C and C++ comments are filtered correctly
-
-my $o = ppport(qw(--copy=a));
-ok($o =~ /^Scanning.*MyExt\.xs/mi);
-ok($o =~ /Analyzing.*MyExt\.xs/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Uses grok_bin/m);
-ok($o !~ /^Uses newSVpv/m);
-ok($o =~ /Uses 1 C\+\+ style comment/m);
-ok(eq_files('MyExt.xsa', 'MyExt.ra'));
-
-# check if C++ are left untouched with --cplusplus
-
-$o = ppport(qw(--copy=b --cplusplus));
-ok($o =~ /^Scanning.*MyExt\.xs/mi);
-ok($o =~ /Analyzing.*MyExt\.xs/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Uses grok_bin/m);
-ok($o !~ /^Uses newSVpv/m);
-ok($o !~ /Uses \d+ C\+\+ style comment/m);
-ok(eq_files('MyExt.xsb', 'MyExt.rb'));
-
-unlink qw(MyExt.xsa MyExt.xsb);
-
----------------------------- MyExt.xs -----------------------------------------
-
-newSVuv();
- // newSVpv();
- XPUSHs(foo);
-/* grok_bin(); */
-
----------------------------- MyExt.ra -----------------------------------------
-
-#include "ppport.h"
-newSVuv();
- /* newSVpv(); */
- XPUSHs(foo);
-/* grok_bin(); */
-
----------------------------- MyExt.rb -----------------------------------------
-
-#include "ppport.h"
-newSVuv();
- // newSVpv();
- XPUSHs(foo);
-/* grok_bin(); */
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges file1.xs));
-ok($o =~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /Analyzing.*file1\.xs/mi);
-ok($o !~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /^Uses newCONSTSUB/m);
-ok($o =~ /^Uses PL_expect/m);
-ok($o =~ /^Uses SvPV_nolen.*depends.*sv_2pv_flags/m);
-ok($o =~ /WARNING: PL_expect/m);
-ok($o =~ /hint for newCONSTSUB/m);
-ok($o =~ /^Analysis completed \(1 warning\)/m);
-ok($o =~ /^Looks good/m);
-
-$o = ppport(qw(--nochanges --nohints file1.xs));
-ok($o =~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /Analyzing.*file1\.xs/mi);
-ok($o !~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /^Uses newCONSTSUB/m);
-ok($o =~ /^Uses PL_expect/m);
-ok($o =~ /^Uses SvPV_nolen.*depends.*sv_2pv_flags/m);
-ok($o =~ /WARNING: PL_expect/m);
-ok($o !~ /hint for newCONSTSUB/m);
-ok($o =~ /^Analysis completed \(1 warning\)/m);
-ok($o =~ /^Looks good/m);
-
-$o = ppport(qw(--nochanges --nohints --nodiag file1.xs));
-ok($o =~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /Analyzing.*file1\.xs/mi);
-ok($o !~ /^Scanning.*file2\.xs/mi);
-ok($o !~ /^Uses newCONSTSUB/m);
-ok($o !~ /^Uses PL_expect/m);
-ok($o !~ /^Uses SvPV_nolen/m);
-ok($o =~ /WARNING: PL_expect/m);
-ok($o !~ /hint for newCONSTSUB/m);
-ok($o =~ /^Analysis completed \(1 warning\)/m);
-ok($o =~ /^Looks good/m);
-
-$o = ppport(qw(--nochanges --quiet file1.xs));
-ok($o =~ /^\s*$/);
-
-$o = ppport(qw(--nochanges file2.xs));
-ok($o =~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /Analyzing.*file2\.xs/mi);
-ok($o !~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /^Uses mXPUSHp/m);
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Looks good/m);
-ok($o =~ /^1 potentially required change detected/m);
-
-$o = ppport(qw(--nochanges --nohints file2.xs));
-ok($o =~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /Analyzing.*file2\.xs/mi);
-ok($o !~ /^Scanning.*file1\.xs/mi);
-ok($o =~ /^Uses mXPUSHp/m);
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Looks good/m);
-ok($o =~ /^1 potentially required change detected/m);
-
-$o = ppport(qw(--nochanges --nohints --nodiag file2.xs));
-ok($o =~ /^Scanning.*file2\.xs/mi);
-ok($o =~ /Analyzing.*file2\.xs/mi);
-ok($o !~ /^Scanning.*file1\.xs/mi);
-ok($o !~ /^Uses mXPUSHp/m);
-ok($o !~ /^Needs to include.*ppport\.h/m);
-ok($o !~ /^Looks good/m);
-ok($o =~ /^1 potentially required change detected/m);
-
-$o = ppport(qw(--nochanges --quiet file2.xs));
-ok($o =~ /^\s*$/);
-
----------------------------- file1.xs -----------------------------------------
-
-#define NEED_newCONSTSUB
-#define NEED_sv_2pv_flags
-#define NEED_PL_parser
-#include "ppport.h"
-
-newCONSTSUB();
-SvPV_nolen();
-PL_expect = 0;
-
----------------------------- file2.xs -----------------------------------------
-
-mXPUSHp(foo);
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /^Scanning.*FooBar\.xs/mi);
-ok($o =~ /Analyzing.*FooBar\.xs/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok($o !~ /^Looks good/m);
-ok($o =~ /^Uses grok_bin/m);
-
----------------------------- FooBar.xs ----------------------------------------
-
-newSViv();
-XPUSHs(foo);
-grok_bin();
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /^Scanning.*First\.xs/mi);
-ok($o =~ /Analyzing.*First\.xs/mi);
-ok($o =~ /^Scanning.*second\.h/mi);
-ok($o =~ /Analyzing.*second\.h/mi);
-ok($o =~ /^Scanning.*sub.*third\.c/mi);
-ok($o =~ /Analyzing.*sub.*third\.c/mi);
-ok($o !~ /^Scanning.*foobar/mi);
-ok(matches($o, '^Scanning', 'm'), 3);
-
----------------------------- First.xs -----------------------------------------
-
-one
-
----------------------------- foobar.xyz ---------------------------------------
-
-two
-
----------------------------- second.h -----------------------------------------
-
-three
-
----------------------------- sub/third.c --------------------------------------
-
-four
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /Possibly wrong #define NEED_foobar in.*test.xs/i);
-
----------------------------- test.xs ------------------------------------------
-
-#define NEED_foobar
-
-===============================================================================
-
-# And now some complex "real-world" example
-
-my $o = ppport(qw(--copy=f));
-for (qw(main.xs mod1.c mod2.c mod3.c mod4.c mod5.c)) {
- ok($o =~ /^Scanning.*\Q$_\E/mi);
- ok($o =~ /Analyzing.*\Q$_\E/i);
-}
-ok(matches($o, '^Scanning', 'm'), 6);
-
-ok(matches($o, '^Writing copy of', 'm'), 5);
-ok(!-e "mod5.cf");
-
-for (qw(main.xs mod1.c mod2.c mod3.c mod4.c)) {
- ok($o =~ /^Writing copy of.*\Q$_\E.*with changes/mi);
- ok(-e "${_}f");
- ok(eq_files("${_}f", "${_}r"));
- unlink "${_}f";
-}
-
----------------------------- main.xs ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_newCONSTSUB
-#define NEED_grok_hex_GLOBAL
-#include "ppport.h"
-
-newCONSTSUB();
-grok_hex();
-Perl_grok_bin(aTHX_ foo, bar);
-
-/* some comment */
-
-perl_eval_pv();
-grok_bin();
-Perl_grok_bin(bar, sv_no);
-
----------------------------- mod1.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_grok_bin_GLOBAL
-#define NEED_newCONSTSUB
-#include "ppport.h"
-
-newCONSTSUB();
-grok_bin();
-{
- Perl_croak ("foo");
- Perl_sv_catpvf(); /* I know it's wrong ;-) */
-}
-
----------------------------- mod2.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_eval_pv
-#include "ppport.h"
-
-newSViv();
-
-/*
- eval_pv();
-*/
-
----------------------------- mod3.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-grok_oct();
-eval_pv();
-
----------------------------- mod4.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-START_MY_CXT;
-
----------------------------- mod5.c -------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#include "ppport.h"
-call_pv();
-
----------------------------- main.xsr -----------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_eval_pv_GLOBAL
-#define NEED_grok_hex
-#define NEED_newCONSTSUB_GLOBAL
-#include "ppport.h"
-
-newCONSTSUB();
-grok_hex();
-grok_bin(foo, bar);
-
-/* some comment */
-
-eval_pv();
-grok_bin();
-grok_bin(bar, PL_sv_no);
-
----------------------------- mod1.cr ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define NEED_grok_bin_GLOBAL
-#include "ppport.h"
-
-newCONSTSUB();
-grok_bin();
-{
- Perl_croak (aTHX_ "foo");
- Perl_sv_catpvf(aTHX); /* I know it's wrong ;-) */
-}
-
----------------------------- mod2.cr ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-
-newSViv();
-
-/*
- eval_pv();
-*/
-
----------------------------- mod3.cr ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#define NEED_grok_oct
-#include "ppport.h"
-
-grok_oct();
-eval_pv();
-
----------------------------- mod4.cr ------------------------------------------
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include "ppport.h"
-
-START_MY_CXT;
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /Uses grok_hex/m);
-ok($o !~ /Looks good/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.8.0));
-ok($o !~ /Uses grok_hex/m);
-ok($o =~ /Looks good/m);
-
----------------------------- FooBar.xs ----------------------------------------
-
-grok_hex();
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /Uses SvPVutf8_force, which may not be portable/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.5.3));
-ok($o =~ /Uses SvPVutf8_force, which may not be portable/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.005_03));
-ok($o =~ /Uses SvPVutf8_force, which may not be portable/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.6.0));
-ok($o !~ /Uses SvPVutf8_force/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.006));
-ok($o !~ /Uses SvPVutf8_force/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.999.999));
-ok($o !~ /Uses SvPVutf8_force/m);
-
-$o = ppport(qw(--nochanges --compat-version=6.0.0));
-ok($o =~ /Only Perl 5 is supported/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.1000.999));
-ok($o =~ /Invalid version number: 5.1000.999/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.999.1000));
-ok($o =~ /Invalid version number: 5.999.1000/m);
-
----------------------------- FooBar.xs ----------------------------------------
-
-SvPVutf8_force();
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges));
-ok($o !~ /potentially required change/);
-ok(matches($o, '^Looks good', 'm'), 2);
-
----------------------------- FooBar.xs ----------------------------------------
-
-#define NEED_grok_numeric_radix
-#define NEED_grok_number
-#include "ppport.h"
-
-GROK_NUMERIC_RADIX();
-grok_number();
-
----------------------------- foo.c --------------------------------------------
-
-#include "ppport.h"
-
-call_pv();
-
-===============================================================================
-
-# check --api-info option
-
-my $o = ppport(qw(--api-info=INT2PTR));
-my %found = map {($_ => 1)} $o =~ /^===\s+(\w+)\s+===/mg;
-ok(scalar keys %found, 1);
-ok(exists $found{INT2PTR});
-ok(matches($o, '^Supported at least starting from perl-5\.6\.0\.', 'm'), 1);
-ok(matches($o, '^Support by .*ppport.* provided back to perl-5\.003\.', 'm'), 1);
-
-$o = ppport(qw(--api-info=Zero));
-%found = map {($_ => 1)} $o =~ /^===\s+(\w+)\s+===/mg;
-ok(scalar keys %found, 1);
-ok(exists $found{Zero});
-ok(matches($o, '^No portability information available\.', 'm'), 1);
-
-$o = ppport(qw(--api-info=/Zero/));
-%found = map {($_ => 1)} $o =~ /^===\s+(\w+)\s+===/mg;
-ok(scalar keys %found, 2);
-ok(exists $found{Zero});
-ok(exists $found{ZeroD});
-
-===============================================================================
-
-# check --list-provided option
-
-my @o = ppport(qw(--list-provided));
-my %p;
-my $fail = 0;
-for (@o) {
- my($name, $flags) = /^(\w+)(?:\s+\[(\w+(?:,\s+\w+)*)\])?$/ or $fail++;
- exists $p{$name} and $fail++;
- $p{$name} = defined $flags ? { map { ($_ => 1) } $flags =~ /(\w+)/g } : '';
-}
-ok(@o > 100);
-ok($fail, 0);
-
-ok(exists $p{call_pv});
-ok(not ref $p{call_pv});
-
-ok(exists $p{grok_bin});
-ok(ref $p{grok_bin}, 'HASH');
-ok(scalar keys %{$p{grok_bin}}, 2);
-ok($p{grok_bin}{explicit});
-ok($p{grok_bin}{depend});
-
-ok(exists $p{gv_stashpvn});
-ok(ref $p{gv_stashpvn}, 'HASH');
-ok(scalar keys %{$p{gv_stashpvn}}, 2);
-ok($p{gv_stashpvn}{depend});
-ok($p{gv_stashpvn}{hint});
-
-ok(exists $p{sv_catpvf_mg});
-ok(ref $p{sv_catpvf_mg}, 'HASH');
-ok(scalar keys %{$p{sv_catpvf_mg}}, 2);
-ok($p{sv_catpvf_mg}{explicit});
-ok($p{sv_catpvf_mg}{depend});
-
-ok(exists $p{PL_signals});
-ok(ref $p{PL_signals}, 'HASH');
-ok(scalar keys %{$p{PL_signals}}, 1);
-ok($p{PL_signals}{explicit});
-
-===============================================================================
-
-# check --list-unsupported option
-
-my @o = ppport(qw(--list-unsupported));
-my %p;
-my $fail = 0;
-for (@o) {
- my($name, $ver) = /^(\w+)\s*\.+\s*([\d._]+)$/ or $fail++;
- exists $p{$name} and $fail++;
- $p{$name} = $ver;
-}
-ok(@o > 100);
-ok($fail, 0);
-
-ok(exists $p{utf8_distance});
-ok($p{utf8_distance}, '5.6.0');
-
-ok(exists $p{save_generic_svref});
-ok($p{save_generic_svref}, '5.005_03');
-
-===============================================================================
-
-# check --nofilter option
-
-my $o = ppport(qw(--nochanges));
-ok($o =~ /^Scanning.*foo\.cpp/mi);
-ok($o =~ /Analyzing.*foo\.cpp/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok(matches($o, 'Analyzing', 'm'), 1);
-
-$o = ppport(qw(--nochanges foo.cpp foo.o Makefile.PL));
-ok($o =~ /Skipping the following files \(use --nofilter to avoid this\):/m);
-ok(matches($o, '^\|\s+foo\.o', 'mi'), 1);
-ok(matches($o, '^\|\s+Makefile\.PL', 'mi'), 1);
-ok($o =~ /^Scanning.*foo\.cpp/mi);
-ok($o =~ /Analyzing.*foo\.cpp/mi);
-ok(matches($o, '^Scanning', 'm'), 1);
-ok(matches($o, 'Analyzing', 'm'), 1);
-
-$o = ppport(qw(--nochanges --nofilter foo.cpp foo.o Makefile.PL));
-ok($o =~ /^Scanning.*foo\.cpp/mi);
-ok($o =~ /Analyzing.*foo\.cpp/mi);
-ok($o =~ /^Scanning.*foo\.o/mi);
-ok($o =~ /Analyzing.*foo\.o/mi);
-ok($o =~ /^Scanning.*Makefile/mi);
-ok($o =~ /Analyzing.*Makefile/mi);
-ok(matches($o, '^Scanning', 'm'), 3);
-ok(matches($o, 'Analyzing', 'm'), 3);
-
----------------------------- foo.cpp ------------------------------------------
-
-newSViv();
-
----------------------------- foo.o --------------------------------------------
-
-newSViv();
-
----------------------------- Makefile.PL --------------------------------------
-
-newSViv();
-
-===============================================================================
-
-# check if explicit variables are handled propery
-
-my $o = ppport(qw(--copy=a));
-ok($o =~ /^Needs to include.*ppport\.h/m);
-ok($o =~ /^Uses PL_signals/m);
-ok($o =~ /^File needs PL_signals, adding static request/m);
-ok(eq_files('MyExt.xsa', 'MyExt.ra'));
-
-unlink qw(MyExt.xsa);
-
----------------------------- MyExt.xs -----------------------------------------
-
-PL_signals = 123;
-if (PL_signals == 42)
- foo();
-
----------------------------- MyExt.ra -----------------------------------------
-
-#define NEED_PL_signals
-#include "ppport.h"
-PL_signals = 123;
-if (PL_signals == 42)
- foo();
-
-===============================================================================
-
-my $o = ppport(qw(--nochanges file.xs));
-ok($o =~ /^Uses PL_copline/m);
-ok($o =~ /WARNING: PL_copline/m);
-ok($o =~ /^Uses SvUOK/m);
-ok($o =~ /WARNING: Uses SvUOK, which may not be portable/m);
-ok($o =~ /^Analysis completed \(2 warnings\)/m);
-ok($o =~ /^Looks good/m);
-
-$o = ppport(qw(--nochanges --compat-version=5.8.0 file.xs));
-ok($o =~ /^Uses PL_copline/m);
-ok($o =~ /WARNING: PL_copline/m);
-ok($o !~ /WARNING: Uses SvUOK, which may not be portable/m);
-ok($o =~ /^Analysis completed \(1 warning\)/m);
-ok($o =~ /^Looks good/m);
-
----------------------------- file.xs -----------------------------------------
-
-#define NEED_PL_parser
-#include "ppport.h"
-SvUOK
-PL_copline
-
-===============================================================================
-
-my $o = ppport(qw(--copy=f));
-
-for (qw(file.xs)) {
- ok($o =~ /^Writing copy of.*\Q$_\E.*with changes/mi);
- ok(-e "${_}f");
- ok(eq_files("${_}f", "${_}r"));
- unlink "${_}f";
-}
-
----------------------------- file.xs -----------------------------------------
-
-a_string = "sv_undef"
-a_char = 'sv_yes'
-#define SOMETHING defgv
-/* C-comment: sv_tainted */
-#
-# This is just a big XS comment using sv_no
-#
-/* The following, is NOT an XS comment! */
-# define SOMETHING_ELSE defgv + \
- sv_undef
-
----------------------------- file.xsr -----------------------------------------
-
-#include "ppport.h"
-a_string = "sv_undef"
-a_char = 'sv_yes'
-#define SOMETHING PL_defgv
-/* C-comment: sv_tainted */
-#
-# This is just a big XS comment using sv_no
-#
-/* The following, is NOT an XS comment! */
-# define SOMETHING_ELSE PL_defgv + \
- PL_sv_undef
-
-===============================================================================
-
-my $o = ppport(qw(--copy=f));
-
-for (qw(file.xs)) {
- ok($o =~ /^Writing copy of.*\Q$_\E.*with changes/mi);
- ok(-e "${_}f");
- ok(eq_files("${_}f", "${_}r"));
- unlink "${_}f";
-}
-
----------------------------- file.xs -----------------------------------------
-
-#define NEED_sv_2pv_flags
-#define NEED_vnewSVpvf
-#define NEED_warner
-#include "ppport.h"
-Perl_croak_nocontext("foo");
-Perl_croak("bar");
-croak("foo");
-croak_nocontext("foo");
-Perl_warner_nocontext("foo");
-Perl_warner("foo");
-warner_nocontext("foo");
-warner("foo");
-
----------------------------- file.xsr -----------------------------------------
-
-#define NEED_sv_2pv_flags
-#define NEED_vnewSVpvf
-#define NEED_warner
-#include "ppport.h"
-Perl_croak_nocontext("foo");
-Perl_croak(aTHX_ "bar");
-croak("foo");
-croak_nocontext("foo");
-Perl_warner_nocontext("foo");
-Perl_warner(aTHX_ "foo");
-warner_nocontext("foo");
-warner("foo");
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/pv_tools.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/pv_tools.t
deleted file mode 100755
index e53beed0a0e..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/pv_tools.t
+++ /dev/null
@@ -1,74 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/pv_tools instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (13) {
- load();
- plan(tests => 13);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my $uni = &Devel::PPPort::pv_escape_can_unicode();
-
-# sanity check
-ok($uni ? $] >= 5.006 : $] < 5.008);
-
-my @r;
-
-@r = &Devel::PPPort::pv_pretty();
-ok($r[0], $r[1]);
-ok($r[0], "foobarbaz");
-ok($r[2], $r[3]);
-ok($r[2], '<leftpv_p\retty\nright>');
-ok($r[4], $r[5]);
-ok($r[4], $uni ? 'N\375 Batter\355' : 'N\303\275 Batter\303');
-ok($r[6], $r[7]);
-ok($r[6], $uni ? '\301g\346tis Byrju...' : '\303\201g\303\246t...');
-
-@r = &Devel::PPPort::pv_display();
-ok($r[0], $r[1]);
-ok($r[0], '"foob\0rbaz"\0');
-ok($r[2], $r[3]);
-ok($r[2] eq '"pv_di"...\0' ||
- $r[2] eq '"pv_d"...\0'); # some perl implementations are broken... :(
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/pvs.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/pvs.t
deleted file mode 100755
index ff4d3e05860..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/pvs.t
+++ /dev/null
@@ -1,73 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/pvs instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (12) {
- load();
- plan(tests => 12);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my $x = 'foo';
-
-ok(Devel::PPPort::newSVpvs(), "newSVpvs");
-ok(Devel::PPPort::newSVpvs_flags(), "newSVpvs_flags");
-ok(Devel::PPPort::newSVpvs_share(), 3);
-
-Devel::PPPort::sv_catpvs($x);
-ok($x, "foosv_catpvs");
-
-Devel::PPPort::sv_setpvs($x);
-ok($x, "sv_setpvs");
-
-my %h = ('hv_fetchs' => 42);
-Devel::PPPort::hv_stores(\%h, 4711);
-ok(scalar keys %h, 2);
-ok(exists $h{'hv_stores'});
-ok($h{'hv_stores'}, 4711);
-ok(Devel::PPPort::hv_fetchs(\%h), 42);
-ok(Devel::PPPort::gv_fetchpvs(), \*Devel::PPPort::VERSION);
-ok(Devel::PPPort::gv_stashpvs(), \%Devel::PPPort::);
-
-ok(Devel::PPPort::get_cvs(), 3);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/shared_pv.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/shared_pv.t
deleted file mode 100755
index eac79c6ca8a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/shared_pv.t
+++ /dev/null
@@ -1,52 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/shared_pv instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (1) {
- load();
- plan(tests => 1);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(&Devel::PPPort::newSVpvn_share(), 6);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/snprintf.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/snprintf.t
deleted file mode 100755
index 0b90004d9ec..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/snprintf.t
+++ /dev/null
@@ -1,54 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/snprintf instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (2) {
- load();
- plan(tests => 2);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my($l, $s) = Devel::PPPort::my_snprintf();
-ok($l, 8);
-ok($s, "foobar42");
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/sprintf.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/sprintf.t
deleted file mode 100755
index 8b0d51fc917..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/sprintf.t
+++ /dev/null
@@ -1,54 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/sprintf instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (2) {
- load();
- plan(tests => 2);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my($l, $s) = Devel::PPPort::my_sprintf();
-ok($l, 8);
-ok($s, "foobar42");
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/strlfuncs.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/strlfuncs.t
deleted file mode 100755
index c8175472de1..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/strlfuncs.t
+++ /dev/null
@@ -1,65 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/strlfuncs instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (13) {
- load();
- plan(tests => 13);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-my @e = (3, 'foo',
- 6, 'foobar',
- 9, 'foobarb',
- 10, '1234567',
- 4, '1234',
- 16, '1234567',
- );
-my @r = Devel::PPPort::my_strlfunc();
-
-ok(@e == @r);
-
-for (0 .. $#e) {
- ok($r[$_], $e[$_]);
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/sv_xpvf.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/sv_xpvf.t
deleted file mode 100755
index 15074317df0..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/sv_xpvf.t
+++ /dev/null
@@ -1,78 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/sv_xpvf instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (9) {
- load();
- plan(tests => 9);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-use Tie::Hash;
-my %h;
-tie %h, 'Tie::StdHash';
-$h{foo} = 'foo-';
-$h{bar} = '';
-
-ok(&Devel::PPPort::vnewSVpvf(), $] >= 5.004 ? 'Perl-42' : '%s-%d');
-ok(&Devel::PPPort::sv_vcatpvf('1-2-3-'), $] >= 5.004 ? '1-2-3-Perl-42' : '1-2-3-%s-%d');
-ok(&Devel::PPPort::sv_vsetpvf('1-2-3-'), $] >= 5.004 ? 'Perl-42' : '%s-%d');
-
-&Devel::PPPort::sv_catpvf_mg($h{foo});
-ok($h{foo}, $] >= 5.004 ? 'foo-Perl-42' : 'foo-');
-
-&Devel::PPPort::Perl_sv_catpvf_mg($h{foo});
-ok($h{foo}, $] >= 5.004 ? 'foo-Perl-42-Perl-43' : 'foo-');
-
-&Devel::PPPort::sv_catpvf_mg_nocontext($h{foo});
-ok($h{foo}, $] >= 5.004 ? 'foo-Perl-42-Perl-43-Perl-44' : 'foo-');
-
-&Devel::PPPort::sv_setpvf_mg($h{bar});
-ok($h{bar}, $] >= 5.004 ? 'mhx-42' : '');
-
-&Devel::PPPort::Perl_sv_setpvf_mg($h{bar});
-ok($h{bar}, $] >= 5.004 ? 'foo-43' : '');
-
-&Devel::PPPort::sv_setpvf_mg_nocontext($h{bar});
-ok($h{bar}, $] >= 5.004 ? 'bar-44' : '');
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/testutil.pl b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/testutil.pl
deleted file mode 100644
index 4fc7d667a6b..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/testutil.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- my $__ntest;
- my $__total;
-
- sub plan {
- @_ == 2 or die "usage: plan(tests => count)";
- my $what = shift;
- $what eq 'tests' or die "cannot plan anything but tests";
- $__total = shift;
- defined $__total && $__total > 0 or die "need a positive number of tests";
- print "1..$__total\n";
- }
-
- sub skip {
- my $reason = shift;
- ++$__ntest;
- print "ok $__ntest # skip: $reason\n"
- }
-
- sub ok ($;$$) {
- local($\,$,);
- my $ok = 0;
- my $result = shift;
- if (@_ == 0) {
- $ok = $result;
- } else {
- $expected = shift;
- if (!defined $expected) {
- $ok = !defined $result;
- } elsif (!defined $result) {
- $ok = 0;
- } elsif (ref($expected) eq 'Regexp') {
- die "using regular expression objects is not backwards compatible";
- } else {
- $ok = $result eq $expected;
- }
- }
- ++$__ntest;
- if ($ok) {
- print "ok $__ntest\n"
- }
- else {
- print "not ok $__ntest\n"
- }
- }
-}
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/threads.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/threads.t
deleted file mode 100755
index a1c8caa5c87..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/threads.t
+++ /dev/null
@@ -1,54 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/threads instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (2) {
- load();
- plan(tests => 2);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(&Devel::PPPort::no_THX_arg("42"), 43);
-eval { &Devel::PPPort::with_THX_arg("yes\n"); };
-ok($@ =~ /^yes/);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/uv.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/uv.t
deleted file mode 100755
index bc123c6bbf7..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/uv.t
+++ /dev/null
@@ -1,61 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/uv instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (10) {
- load();
- plan(tests => 10);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(&Devel::PPPort::sv_setuv(42), 42);
-ok(&Devel::PPPort::newSVuv(123), 123);
-ok(&Devel::PPPort::sv_2uv("4711"), 4711);
-ok(&Devel::PPPort::sv_2uv("1735928559"), 1735928559);
-ok(&Devel::PPPort::SvUVx("1735928559"), 1735928559);
-ok(&Devel::PPPort::SvUVx(1735928559), 1735928559);
-ok(&Devel::PPPort::SvUVx(0xdeadbeef), 0xdeadbeef);
-ok(&Devel::PPPort::XSRETURN_UV(), 42);
-ok(&Devel::PPPort::PUSHu(), 42);
-ok(&Devel::PPPort::XPUSHu(), 43);
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/variables.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/variables.t
deleted file mode 100755
index ef1ac8b20d3..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/variables.t
+++ /dev/null
@@ -1,107 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/variables instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (52) {
- load();
- plan(tests => 52);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-ok(Devel::PPPort::compare_PL_signals());
-
-ok(!defined(&Devel::PPPort::PL_sv_undef()));
-ok(&Devel::PPPort::PL_sv_yes());
-ok(!&Devel::PPPort::PL_sv_no());
-ok(&Devel::PPPort::PL_na("abcd"), 4);
-ok(&Devel::PPPort::PL_Sv(), "mhx");
-ok(defined &Devel::PPPort::PL_tokenbuf());
-ok($] >= 5.009005 || &Devel::PPPort::PL_parser());
-ok(&Devel::PPPort::PL_hexdigit() =~ /^[0-9a-zA-Z]+$/);
-ok(defined &Devel::PPPort::PL_hints());
-ok(&Devel::PPPort::PL_ppaddr("mhx"), "MHX");
-
-for (&Devel::PPPort::other_variables()) {
- ok($_ != 0);
-}
-
-{
- my @w;
- my $fail = 0;
- {
- local $SIG{'__WARN__'} = sub { push @w, @_ };
- ok(&Devel::PPPort::dummy_parser_warning());
- }
- if ($] >= 5.009005) {
- ok(@w >= 0);
- for (@w) {
- print "# $_";
- unless (/^warning: dummy PL_bufptr used in.*module3.*:\d+/i) {
- warn $_;
- $fail++;
- }
- }
- }
- else {
- ok(@w == 0);
- }
- ok($fail, 0);
-}
-
-ok(&Devel::PPPort::no_dummy_parser_vars(1) >= ($] < 5.009005 ? 1 : 0));
-
-eval { &Devel::PPPort::no_dummy_parser_vars(0) };
-
-if ($] < 5.009005) {
- ok($@, '');
-}
-else {
- if ($@) {
- print "# $@";
- ok($@ =~ /^panic: PL_parser == NULL in.*module2.*:\d+/i);
- }
- else {
- ok(1);
- }
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/warn.t b/gnu/usr.bin/perl/cpan/Devel-PPPort/t/warn.t
deleted file mode 100755
index d538055a65a..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/t/warn.t
+++ /dev/null
@@ -1,78 +0,0 @@
-################################################################################
-#
-# !!!!! Do NOT edit this file directly! !!!!!
-#
-# Edit mktests.PL and/or parts/inc/warn instead.
-#
-# This file was automatically generated from the definition files in the
-# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
-#
-################################################################################
-
-BEGIN {
- if ($ENV{'PERL_CORE'}) {
- chdir 't' if -d 't';
- @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
- require Config; import Config;
- use vars '%Config';
- if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
- print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
- exit 0;
- }
- }
- else {
- unshift @INC, 't';
- }
-
- sub load {
- eval "use Test";
- require 'testutil.pl' if $@;
- }
-
- if (5) {
- load();
- plan(tests => 5);
- }
-}
-
-use Devel::PPPort;
-use strict;
-$^W = 1;
-
-package Devel::PPPort;
-use vars '@ISA';
-require DynaLoader;
-@ISA = qw(DynaLoader);
-bootstrap Devel::PPPort;
-
-package main;
-
-$^W = 0;
-
-my $warning;
-
-$SIG{'__WARN__'} = sub { $warning = $_[0] };
-
-$warning = '';
-Devel::PPPort::warner();
-ok($] >= 5.004 ? $warning =~ /^warner bar:42/ : $warning eq '');
-
-$warning = '';
-Devel::PPPort::Perl_warner();
-ok($] >= 5.004 ? $warning =~ /^Perl_warner bar:42/ : $warning eq '');
-
-$warning = '';
-Devel::PPPort::Perl_warner_nocontext();
-ok($] >= 5.004 ? $warning =~ /^Perl_warner_nocontext bar:42/ : $warning eq '');
-
-$warning = '';
-Devel::PPPort::ckWARN();
-ok($warning, '');
-
-$^W = 1;
-
-$warning = '';
-Devel::PPPort::ckWARN();
-ok($] >= 5.004 ? $warning =~ /^ckWARN bar:42/ : $warning eq '');
-
diff --git a/gnu/usr.bin/perl/cpan/Devel-PPPort/typemap b/gnu/usr.bin/perl/cpan/Devel-PPPort/typemap
deleted file mode 100644
index 68863a32912..00000000000
--- a/gnu/usr.bin/perl/cpan/Devel-PPPort/typemap
+++ /dev/null
@@ -1,36 +0,0 @@
-################################################################################
-#
-# typemap -- XS type mappings not present in early perls
-#
-################################################################################
-#
-# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
-# Version 2.x, Copyright (C) 2001, Paul Marquess.
-# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-################################################################################
-
-UV T_UV
-NV T_NV
-HV * T_HVREF
-STRLEN T_UV
-
-INPUT
-T_UV
- $var = ($type)SvUV($arg)
-T_NV
- $var = ($type)SvNV($arg)
-T_HVREF
- if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVHV)
- $var = (HV*)SvRV($arg);
- else
- Perl_croak(aTHX_ \"$var is not a hash reference\")
-
-OUTPUT
-T_UV
- sv_setuv($arg, (UV)$var);
-T_NV
- sv_setnv($arg, (NV)$var);
diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm
index bb92ddb44a9..bc0fec720a1 100644
--- a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm
+++ b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm
@@ -3,7 +3,7 @@ package Digest::MD5;
use strict;
use vars qw($VERSION @ISA @EXPORT_OK);
-$VERSION = '2.54';
+$VERSION = '2.55';
require Exporter;
*import = \&Exporter::import;
diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
index d8b156370f6..a48d951056c 100644
--- a/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
+++ b/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
@@ -39,8 +39,6 @@ extern "C" {
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
-#include <sys/types.h>
-#include <md5.h>
#ifdef __cplusplus
}
#endif
@@ -90,6 +88,61 @@ static MAGIC *THX_sv_magicext(pTHX_ SV *sv, SV *obj, int type,
# define SvPVbyte(sv, lp) (sv_utf8_downgrade((sv), 0), SvPV((sv), (lp)))
#endif
+/* Perl does not guarantee that U32 is exactly 32 bits. Some system
+ * has no integral type with exactly 32 bits. For instance, A Cray has
+ * short, int and long all at 64 bits so we need to apply this macro
+ * to reduce U32 values to 32 bits at appropriate places. If U32
+ * really does have 32 bits then this is a no-op.
+ */
+#if BYTEORDER > 0x4321 || defined(TRUNCATE_U32)
+ #define TO32(x) ((x) & 0xFFFFffff)
+ #define TRUNC32(x) ((x) &= 0xFFFFffff)
+#else
+ #define TO32(x) (x)
+ #define TRUNC32(x) /*nothing*/
+#endif
+
+/* The MD5 algorithm is defined in terms of little endian 32-bit
+ * values. The following macros (and functions) allow us to convert
+ * between native integers and such values.
+ */
+#undef BYTESWAP
+#ifndef U32_ALIGNMENT_REQUIRED
+ #if BYTEORDER == 0x1234 /* 32-bit little endian */
+ #define BYTESWAP(x) (x) /* no-op */
+
+ #elif BYTEORDER == 0x4321 /* 32-bit big endian */
+ #define BYTESWAP(x) ((((x)&0xFF)<<24) \
+ |(((x)>>24)&0xFF) \
+ |(((x)&0x0000FF00)<<8) \
+ |(((x)&0x00FF0000)>>8) )
+ #endif
+#endif
+
+#ifndef BYTESWAP
+static void u2s(U32 u, U8* s)
+{
+ *s++ = (U8)(u & 0xFF);
+ *s++ = (U8)((u >> 8) & 0xFF);
+ *s++ = (U8)((u >> 16) & 0xFF);
+ *s = (U8)((u >> 24) & 0xFF);
+}
+
+#define s2u(s,u) ((u) = (U32)(*s) | \
+ ((U32)(*(s+1)) << 8) | \
+ ((U32)(*(s+2)) << 16) | \
+ ((U32)(*(s+3)) << 24))
+#endif
+
+/* This structure keeps the current state of algorithm.
+ */
+typedef struct {
+ U32 A, B, C, D; /* current digest */
+ U32 bytes_low; /* counts bytes in message */
+ U32 bytes_high; /* turn it into a 64-bit counter */
+ U8 buffer[128]; /* collect complete 64 byte blocks */
+} MD5_CTX;
+
#if defined(USE_ITHREADS) && defined(MGf_DUP)
STATIC int dup_md5_ctx(pTHX_ MAGIC *mg, CLONE_PARAMS *params)
{
@@ -103,7 +156,7 @@ STATIC int dup_md5_ctx(pTHX_ MAGIC *mg, CLONE_PARAMS *params)
#endif
#if defined(MGf_DUP) && defined(USE_ITHREADS)
-const STATIC MGVTBL vtbl_md5 = {
+STATIC const MGVTBL vtbl_md5 = {
NULL, /* get */
NULL, /* set */
NULL, /* len */
@@ -115,7 +168,7 @@ const STATIC MGVTBL vtbl_md5 = {
};
#else
/* declare as 5 member, not normal 8 to save image space*/
-const STATIC struct {
+STATIC const struct {
int (*svt_get)(SV* sv, MAGIC* mg);
int (*svt_set)(SV* sv, MAGIC* mg);
U32 (*svt_len)(SV* sv, MAGIC* mg);
@@ -126,6 +179,325 @@ const STATIC struct {
};
#endif
+
+/* Padding is added at the end of the message in order to fill a
+ * complete 64 byte block (- 8 bytes for the message length). The
+ * padding is also the reason the buffer in MD5_CTX have to be
+ * 128 bytes.
+ */
+static const unsigned char PADDING[64] = {
+ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+/* Constants for MD5Transform routine.
+ */
+#define S11 7
+#define S12 12
+#define S13 17
+#define S14 22
+#define S21 5
+#define S22 9
+#define S23 14
+#define S24 20
+#define S31 4
+#define S32 11
+#define S33 16
+#define S34 23
+#define S41 6
+#define S42 10
+#define S43 15
+#define S44 21
+
+/* F, G, H and I are basic MD5 functions.
+ */
+#define F(x, y, z) ((((x) & ((y) ^ (z))) ^ (z)))
+#define G(x, y, z) F(z, x, y)
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+#define I(x, y, z) ((y) ^ ((x) | (~z)))
+
+/* ROTATE_LEFT rotates x left n bits.
+ */
+#define ROTATE_LEFT(x, n) (((x) << (n) | ((x) >> (32-(n)))))
+
+/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
+ * Rotation is separate from addition to prevent recomputation.
+ */
+#define FF(a, b, c, d, s, ac) \
+ (a) += F ((b), (c), (d)) + (NEXTx) + (U32)(ac); \
+ TRUNC32((a)); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ TRUNC32((a));
+
+#define GG(a, b, c, d, x, s, ac) \
+ (a) += G ((b), (c), (d)) + X[x] + (U32)(ac); \
+ TRUNC32((a)); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ TRUNC32((a));
+
+#define HH(a, b, c, d, x, s, ac) \
+ (a) += H ((b), (c), (d)) + X[x] + (U32)(ac); \
+ TRUNC32((a)); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ TRUNC32((a));
+
+#define II(a, b, c, d, x, s, ac) \
+ (a) += I ((b), (c), (d)) + X[x] + (U32)(ac); \
+ TRUNC32((a)); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ TRUNC32((a));
+
+
+static void
+MD5Init(MD5_CTX *ctx)
+{
+ /* Start state */
+ ctx->A = 0x67452301;
+ ctx->B = 0xefcdab89;
+ ctx->C = 0x98badcfe;
+ ctx->D = 0x10325476;
+
+ /* message length */
+ ctx->bytes_low = ctx->bytes_high = 0;
+}
+
+
+static void
+MD5Transform(MD5_CTX* ctx, const U8* buf, STRLEN blocks)
+{
+#ifdef MD5_DEBUG
+ static int tcount = 0;
+#endif
+
+ U32 A = ctx->A;
+ U32 B = ctx->B;
+ U32 C = ctx->C;
+ U32 D = ctx->D;
+
+#ifndef U32_ALIGNMENT_REQUIRED
+ const U32 *x = (U32*)buf; /* really just type casting */
+#endif
+
+ do {
+ U32 a = A;
+ U32 b = B;
+ U32 c = C;
+ U32 d = D;
+
+#if BYTEORDER == 0x1234 && !defined(U32_ALIGNMENT_REQUIRED)
+ const U32 *X = x;
+ #define NEXTx (*x++)
+#else
+ U32 X[16]; /* converted values, used in round 2-4 */
+ U32 *uptr = X;
+ U32 tmp;
+ #ifdef BYTESWAP
+ #define NEXTx (tmp=*x++, *uptr++ = BYTESWAP(tmp))
+ #else
+ #define NEXTx (s2u(buf,tmp), buf += 4, *uptr++ = tmp)
+ #endif
+#endif
+
+#ifdef MD5_DEBUG
+ if (buf == ctx->buffer)
+ fprintf(stderr,"%5d: Transform ctx->buffer", ++tcount);
+ else
+ fprintf(stderr,"%5d: Transform %p (%d)", ++tcount, buf, blocks);
+
+ {
+ int i;
+ fprintf(stderr,"[");
+ for (i = 0; i < 16; i++) {
+ fprintf(stderr,"%x,", x[i]);
+ }
+ fprintf(stderr,"]\n");
+ }
+#endif
+
+ /* Round 1 */
+ FF (a, b, c, d, S11, 0xd76aa478); /* 1 */
+ FF (d, a, b, c, S12, 0xe8c7b756); /* 2 */
+ FF (c, d, a, b, S13, 0x242070db); /* 3 */
+ FF (b, c, d, a, S14, 0xc1bdceee); /* 4 */
+ FF (a, b, c, d, S11, 0xf57c0faf); /* 5 */
+ FF (d, a, b, c, S12, 0x4787c62a); /* 6 */
+ FF (c, d, a, b, S13, 0xa8304613); /* 7 */
+ FF (b, c, d, a, S14, 0xfd469501); /* 8 */
+ FF (a, b, c, d, S11, 0x698098d8); /* 9 */
+ FF (d, a, b, c, S12, 0x8b44f7af); /* 10 */
+ FF (c, d, a, b, S13, 0xffff5bb1); /* 11 */
+ FF (b, c, d, a, S14, 0x895cd7be); /* 12 */
+ FF (a, b, c, d, S11, 0x6b901122); /* 13 */
+ FF (d, a, b, c, S12, 0xfd987193); /* 14 */
+ FF (c, d, a, b, S13, 0xa679438e); /* 15 */
+ FF (b, c, d, a, S14, 0x49b40821); /* 16 */
+
+ /* Round 2 */
+ GG (a, b, c, d, 1, S21, 0xf61e2562); /* 17 */
+ GG (d, a, b, c, 6, S22, 0xc040b340); /* 18 */
+ GG (c, d, a, b, 11, S23, 0x265e5a51); /* 19 */
+ GG (b, c, d, a, 0, S24, 0xe9b6c7aa); /* 20 */
+ GG (a, b, c, d, 5, S21, 0xd62f105d); /* 21 */
+ GG (d, a, b, c, 10, S22, 0x2441453); /* 22 */
+ GG (c, d, a, b, 15, S23, 0xd8a1e681); /* 23 */
+ GG (b, c, d, a, 4, S24, 0xe7d3fbc8); /* 24 */
+ GG (a, b, c, d, 9, S21, 0x21e1cde6); /* 25 */
+ GG (d, a, b, c, 14, S22, 0xc33707d6); /* 26 */
+ GG (c, d, a, b, 3, S23, 0xf4d50d87); /* 27 */
+ GG (b, c, d, a, 8, S24, 0x455a14ed); /* 28 */
+ GG (a, b, c, d, 13, S21, 0xa9e3e905); /* 29 */
+ GG (d, a, b, c, 2, S22, 0xfcefa3f8); /* 30 */
+ GG (c, d, a, b, 7, S23, 0x676f02d9); /* 31 */
+ GG (b, c, d, a, 12, S24, 0x8d2a4c8a); /* 32 */
+
+ /* Round 3 */
+ HH (a, b, c, d, 5, S31, 0xfffa3942); /* 33 */
+ HH (d, a, b, c, 8, S32, 0x8771f681); /* 34 */
+ HH (c, d, a, b, 11, S33, 0x6d9d6122); /* 35 */
+ HH (b, c, d, a, 14, S34, 0xfde5380c); /* 36 */
+ HH (a, b, c, d, 1, S31, 0xa4beea44); /* 37 */
+ HH (d, a, b, c, 4, S32, 0x4bdecfa9); /* 38 */
+ HH (c, d, a, b, 7, S33, 0xf6bb4b60); /* 39 */
+ HH (b, c, d, a, 10, S34, 0xbebfbc70); /* 40 */
+ HH (a, b, c, d, 13, S31, 0x289b7ec6); /* 41 */
+ HH (d, a, b, c, 0, S32, 0xeaa127fa); /* 42 */
+ HH (c, d, a, b, 3, S33, 0xd4ef3085); /* 43 */
+ HH (b, c, d, a, 6, S34, 0x4881d05); /* 44 */
+ HH (a, b, c, d, 9, S31, 0xd9d4d039); /* 45 */
+ HH (d, a, b, c, 12, S32, 0xe6db99e5); /* 46 */
+ HH (c, d, a, b, 15, S33, 0x1fa27cf8); /* 47 */
+ HH (b, c, d, a, 2, S34, 0xc4ac5665); /* 48 */
+
+ /* Round 4 */
+ II (a, b, c, d, 0, S41, 0xf4292244); /* 49 */
+ II (d, a, b, c, 7, S42, 0x432aff97); /* 50 */
+ II (c, d, a, b, 14, S43, 0xab9423a7); /* 51 */
+ II (b, c, d, a, 5, S44, 0xfc93a039); /* 52 */
+ II (a, b, c, d, 12, S41, 0x655b59c3); /* 53 */
+ II (d, a, b, c, 3, S42, 0x8f0ccc92); /* 54 */
+ II (c, d, a, b, 10, S43, 0xffeff47d); /* 55 */
+ II (b, c, d, a, 1, S44, 0x85845dd1); /* 56 */
+ II (a, b, c, d, 8, S41, 0x6fa87e4f); /* 57 */
+ II (d, a, b, c, 15, S42, 0xfe2ce6e0); /* 58 */
+ II (c, d, a, b, 6, S43, 0xa3014314); /* 59 */
+ II (b, c, d, a, 13, S44, 0x4e0811a1); /* 60 */
+ II (a, b, c, d, 4, S41, 0xf7537e82); /* 61 */
+ II (d, a, b, c, 11, S42, 0xbd3af235); /* 62 */
+ II (c, d, a, b, 2, S43, 0x2ad7d2bb); /* 63 */
+ II (b, c, d, a, 9, S44, 0xeb86d391); /* 64 */
+
+ A += a; TRUNC32(A);
+ B += b; TRUNC32(B);
+ C += c; TRUNC32(C);
+ D += d; TRUNC32(D);
+
+ } while (--blocks);
+ ctx->A = A;
+ ctx->B = B;
+ ctx->C = C;
+ ctx->D = D;
+}
+
+
+#ifdef MD5_DEBUG
+static char*
+ctx_dump(MD5_CTX* ctx)
+{
+ static char buf[1024];
+ sprintf(buf, "{A=%x,B=%x,C=%x,D=%x,%d,%d(%d)}",
+ ctx->A, ctx->B, ctx->C, ctx->D,
+ ctx->bytes_low, ctx->bytes_high, (ctx->bytes_low&0x3F));
+ return buf;
+}
+#endif
+
+
+static void
+MD5Update(MD5_CTX* ctx, const U8* buf, STRLEN len)
+{
+ STRLEN blocks;
+ STRLEN fill = ctx->bytes_low & 0x3F;
+
+#ifdef MD5_DEBUG
+ static int ucount = 0;
+ fprintf(stderr,"%5i: Update(%s, %p, %d)\n", ++ucount, ctx_dump(ctx),
+ buf, len);
+#endif
+
+ ctx->bytes_low += len;
+ if (ctx->bytes_low < len) /* wrap around */
+ ctx->bytes_high++;
+
+ if (fill) {
+ STRLEN missing = 64 - fill;
+ if (len < missing) {
+ Copy(buf, ctx->buffer + fill, len, U8);
+ return;
+ }
+ Copy(buf, ctx->buffer + fill, missing, U8);
+ MD5Transform(ctx, ctx->buffer, 1);
+ buf += missing;
+ len -= missing;
+ }
+
+ blocks = len >> 6;
+ if (blocks)
+ MD5Transform(ctx, buf, blocks);
+ if ( (len &= 0x3F)) {
+ Copy(buf + (blocks << 6), ctx->buffer, len, U8);
+ }
+}
+
+
+static void
+MD5Final(U8* digest, MD5_CTX *ctx)
+{
+ STRLEN fill = ctx->bytes_low & 0x3F;
+ STRLEN padlen = (fill < 56 ? 56 : 120) - fill;
+ U32 bits_low, bits_high;
+#ifdef MD5_DEBUG
+ fprintf(stderr," Final: %s\n", ctx_dump(ctx));
+#endif
+ Copy(PADDING, ctx->buffer + fill, padlen, U8);
+ fill += padlen;
+
+ bits_low = ctx->bytes_low << 3;
+ bits_high = (ctx->bytes_high << 3) | (ctx->bytes_low >> 29);
+#ifdef BYTESWAP
+ *(U32*)(ctx->buffer + fill) = BYTESWAP(bits_low); fill += 4;
+ *(U32*)(ctx->buffer + fill) = BYTESWAP(bits_high); fill += 4;
+#else
+ u2s(bits_low, ctx->buffer + fill); fill += 4;
+ u2s(bits_high, ctx->buffer + fill); fill += 4;
+#endif
+
+ MD5Transform(ctx, ctx->buffer, fill >> 6);
+#ifdef MD5_DEBUG
+ fprintf(stderr," Result: %s\n", ctx_dump(ctx));
+#endif
+
+#ifdef BYTESWAP
+ *(U32*)digest = BYTESWAP(ctx->A); digest += 4;
+ *(U32*)digest = BYTESWAP(ctx->B); digest += 4;
+ *(U32*)digest = BYTESWAP(ctx->C); digest += 4;
+ *(U32*)digest = BYTESWAP(ctx->D);
+#else
+ u2s(ctx->A, digest);
+ u2s(ctx->B, digest+4);
+ u2s(ctx->C, digest+8);
+ u2s(ctx->D, digest+12);
+#endif
+}
+
+#ifndef INT2PTR
+#define INT2PTR(any,d) (any)(d)
+#endif
+
static MD5_CTX* get_md5_ctx(pTHX_ SV* sv)
{
MAGIC *mg;
@@ -306,7 +678,7 @@ addfile(self, fh)
InputStream fh
PREINIT:
MD5_CTX* context = get_md5_ctx(aTHX_ self);
- STRLEN fill = (context->count >> 3) & (MD5_BLOCK_LENGTH - 1);
+ STRLEN fill = context->bytes_low & 0x3F;
#ifdef USE_HEAP_INSTEAD_OF_STACK
unsigned char* buffer;
#else
@@ -371,12 +743,14 @@ context(ctx, ...)
PPCODE:
if (items > 2) {
STRLEN len;
- ctx->count = SvUV(ST(1)) << 3;
+ unsigned long blocks = SvUV(ST(1));
unsigned char *buf = (unsigned char *)(SvPV(ST(2), len));
- ctx->state[0] = buf[ 0] | (buf[ 1]<<8) | (buf[ 2]<<16) | (buf[ 3]<<24);
- ctx->state[1] = buf[ 4] | (buf[ 5]<<8) | (buf[ 6]<<16) | (buf[ 7]<<24);
- ctx->state[2] = buf[ 8] | (buf[ 9]<<8) | (buf[10]<<16) | (buf[11]<<24);
- ctx->state[3] = buf[12] | (buf[13]<<8) | (buf[14]<<16) | (buf[15]<<24);
+ ctx->A = buf[ 0] | (buf[ 1]<<8) | (buf[ 2]<<16) | (buf[ 3]<<24);
+ ctx->B = buf[ 4] | (buf[ 5]<<8) | (buf[ 6]<<16) | (buf[ 7]<<24);
+ ctx->C = buf[ 8] | (buf[ 9]<<8) | (buf[10]<<16) | (buf[11]<<24);
+ ctx->D = buf[12] | (buf[13]<<8) | (buf[14]<<16) | (buf[15]<<24);
+ ctx->bytes_low = blocks << 6;
+ ctx->bytes_high = blocks >> 26;
if (items == 4) {
buf = (unsigned char *)(SvPV(ST(3), len));
MD5Update(ctx, buf, len);
@@ -386,20 +760,17 @@ context(ctx, ...)
XSRETURN(0);
}
- w=ctx->state[0]; out[ 0]=w; out[ 1]=(w>>8); out[ 2]=(w>>16); out[ 3]=(w>>24);
- w=ctx->state[1]; out[ 4]=w; out[ 5]=(w>>8); out[ 6]=(w>>16); out[ 7]=(w>>24);
- w=ctx->state[2]; out[ 8]=w; out[ 9]=(w>>8); out[10]=(w>>16); out[11]=(w>>24);
- w=ctx->state[3]; out[12]=w; out[13]=(w>>8); out[14]=(w>>16); out[15]=(w>>24);
+ w=ctx->A; out[ 0]=w; out[ 1]=(w>>8); out[ 2]=(w>>16); out[ 3]=(w>>24);
+ w=ctx->B; out[ 4]=w; out[ 5]=(w>>8); out[ 6]=(w>>16); out[ 7]=(w>>24);
+ w=ctx->C; out[ 8]=w; out[ 9]=(w>>8); out[10]=(w>>16); out[11]=(w>>24);
+ w=ctx->D; out[12]=w; out[13]=(w>>8); out[14]=(w>>16); out[15]=(w>>24);
EXTEND(SP, 3);
- ST(0) = sv_2mortal(newSViv((ctx->count >> 3)
- - ((ctx->count >> 3) % MD5_BLOCK_LENGTH)));
+ ST(0) = sv_2mortal(newSVuv(ctx->bytes_high << 26 |
+ ctx->bytes_low >> 6));
ST(1) = sv_2mortal(newSVpv(out, 16));
- ST(2) = sv_2mortal(newSVpv("",0));
- if (((ctx->count >> 3) & (MD5_BLOCK_LENGTH - 1)) != 0)
- ST(2) = sv_2mortal(newSVpv((char *)ctx->buffer,
- (ctx->count >> 3) & (MD5_BLOCK_LENGTH - 1)));
-
+ ST(2) = sv_2mortal(newSVpv((char *)ctx->buffer,
+ ctx->bytes_low & 0x3F));
XSRETURN(3);
void
@@ -417,7 +788,7 @@ md5(...)
PPCODE:
MD5Init(&ctx);
- if (PL_dowarn & G_WARN_ON) {
+ if ((PL_dowarn & G_WARN_ON) || ckWARN(WARN_SYNTAX)) {
const char *msg = 0;
if (items == 1) {
if (SvROK(ST(0))) {
diff --git a/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t b/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
index 14a39925707..63479c24a30 100755
--- a/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
+++ b/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
@@ -14,14 +14,14 @@ my $EXPECT;
if (ord "A" == 193) { # EBCDIC
$EXPECT = <<EOT;
0956ffb4f6416082b27d6680b4cf73fc README
-2a61dd5022b11faa35eed27d1c6c98c2 MD5.xs
+60a80f534f0017745eb755f36a946fe7 MD5.xs
276da0aa4e9a08b7fe09430c9c5690aa rfc1321.txt
EOT
} else {
# This is the output of: 'md5sum README MD5.xs rfc1321.txt'
$EXPECT = <<EOT;
2f93400875dbb56f36691d5f69f3eba5 README
-5457ac1c3f0f33df96437555dc7eb172 MD5.xs
+9572832f3628e3bebcdd54f47c43dc5a MD5.xs
754b9db19f79dbc4992f7166eb0f37ce rfc1321.txt
EOT
}
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/SHA.xs b/gnu/usr.bin/perl/cpan/Digest-SHA/SHA.xs
index 0a0c89d4e36..62eaad8d53a 100644
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/SHA.xs
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/SHA.xs
@@ -401,6 +401,6 @@ PPCODE:
}
if (cr) {
in[0] = '\012';
- shawrite(in, 1 << 3, state);
+ shawrite(in, 1UL << 3, state);
}
XSRETURN(1);
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm b/gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm
index e696decea45..2e86d4eea16 100644
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm
@@ -4,16 +4,16 @@ require 5.003000;
use strict;
use warnings;
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-use Fcntl;
+use vars qw($VERSION @ISA @EXPORT_OK $errmsg);
+use Fcntl qw(O_RDONLY);
use integer;
-$VERSION = '5.95_01';
+$VERSION = '6.01';
require Exporter;
-require DynaLoader;
-@ISA = qw(Exporter DynaLoader);
+@ISA = qw(Exporter);
@EXPORT_OK = qw(
+ $errmsg
hmac_sha1 hmac_sha1_base64 hmac_sha1_hex
hmac_sha224 hmac_sha224_base64 hmac_sha224_hex
hmac_sha256 hmac_sha256_base64 hmac_sha256_hex
@@ -68,6 +68,7 @@ sub add_bits {
sub _bail {
my $msg = shift;
+ $errmsg = $!;
$msg .= ": $!";
require Carp;
Carp::croak($msg);
@@ -110,8 +111,8 @@ sub addfile {
return(_addfile($self, $file)) unless ref(\$file) eq 'SCALAR';
$mode = defined($mode) ? $mode : "";
- my ($binary, $UNIVERSAL, $BITS, $portable) =
- map { $_ eq $mode } ("b", "U", "0", "p");
+ my ($binary, $UNIVERSAL, $BITS) =
+ map { $_ eq $mode } ("b", "U", "0");
## Always interpret "-" to mean STDIN; otherwise use
## sysopen to handle full range of POSIX file names
@@ -124,7 +125,7 @@ sub addfile {
if ($BITS) {
my ($n, $buf) = (0, "");
while (($n = read(FH, $buf, 4096))) {
- $buf =~ s/[^01]//g;
+ $buf =~ tr/01//cd;
$self->add_bits($buf);
}
_bail("Read failed") unless defined $n;
@@ -132,17 +133,10 @@ sub addfile {
return($self);
}
- binmode(FH) if $binary || $portable || $UNIVERSAL;
+ binmode(FH) if $binary || $UNIVERSAL;
if ($UNIVERSAL && _istext(*FH, $file)) {
$self->_addfileuniv(*FH);
}
- elsif ($portable && _istext(*FH, $file)) {
- while (<FH>) {
- s/\015?\015\012/\012/g;
- s/\015/\012/g;
- $self->add($_);
- }
- }
else { $self->_addfilebin(*FH) }
close(FH);
@@ -243,7 +237,15 @@ sub load {
$class->putstate($str);
}
-Digest::SHA->bootstrap($VERSION);
+eval {
+ require XSLoader;
+ XSLoader::load('Digest::SHA', $VERSION);
+ 1;
+} or do {
+ require DynaLoader;
+ push @ISA, 'DynaLoader';
+ Digest::SHA->bootstrap($VERSION);
+};
1;
__END__
@@ -617,8 +619,6 @@ argument to one of the following values:
"0" use BITS mode
- "p" use portable mode (to be deprecated)
-
The "U" mode is modeled on Python's "Universal Newlines" concept, whereby
DOS and Mac OS line terminators are converted internally to UNIX newlines
before processing. This ensures consistent digest values when working
@@ -626,12 +626,6 @@ simultaneously across multiple file systems. B<The "U" mode influences
only text files>, namely those passing Perl's I<-T> test; binary files
are processed with no translation whatsoever.
-The "p" mode differs from "U" only in that it treats "\r\r\n" as a single
-newline, a quirky feature designed to accommodate legacy applications that
-occasionally added an extra carriage return before DOS line terminators.
-The "p" mode will be phased out eventually in favor of the cleaner and
-more well-established Universal Newlines concept.
-
The BITS mode ("0") interprets the contents of I<$filename> as a logical
stream of bits, where each ASCII '0' or '1' character represents a 0 or
1 bit, respectively. All other characters are ignored. This provides
@@ -790,6 +784,7 @@ The author is particularly grateful to
Sean Burke
Chris Carey
Alexandr Ciornii
+ Chris David
Jim Doble
Thomas Drugeon
Julius Duque
@@ -813,7 +808,7 @@ darkness and moored it in so perfect a calm and in so brilliant a light"
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2003-2015 Mark Shelor
+Copyright (C) 2003-2017 Mark Shelor
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/shasum b/gnu/usr.bin/perl/cpan/Digest-SHA/shasum
index 62a2b0ec3c3..f8bc02098d6 100644
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/shasum
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/shasum
@@ -2,22 +2,23 @@
## shasum: filter for computing SHA digests (ref. sha1sum/md5sum)
##
- ## Copyright (C) 2003-2015 Mark Shelor, All Rights Reserved
+ ## Copyright (C) 2003-2017 Mark Shelor, All Rights Reserved
##
- ## Version: 5.95
- ## Sat Jan 10 12:15:36 MST 2015
+ ## Version: 6.01
+ ## Mon Dec 25 00:08:08 MST 2017
## shasum SYNOPSIS adapted from GNU Coreutils sha1sum. Add
## "-a" option for algorithm selection,
- ## "-U" option for Universal Newlines support,
- ## "-0" option for reading bit strings, and
- ## "-p" option for portable digests (to be deprecated).
+ ## "-U" option for Universal Newlines support, and
+ ## "-0" option for reading bit strings.
BEGIN { pop @INC if $INC[-1] eq '.' }
+
use strict;
use warnings;
use Fcntl;
use Getopt::Long;
+use Digest::SHA qw($errmsg);
my $POD = <<'END_OF_POD';
@@ -34,6 +35,7 @@ shasum - Print or Check SHA Checksums
-a, --algorithm 1 (default), 224, 256, 384, 512, 512224, 512256
-b, --binary read in binary mode
-c, --check read SHA sums from the FILEs and check them
+ --tag create a BSD-style checksum
-t, --text read in text mode (default)
-U, --UNIVERSAL read in Universal Newlines mode
produces same digest on Windows/Unix/Mac
@@ -41,11 +43,13 @@ shasum - Print or Check SHA Checksums
ASCII '0' interpreted as 0-bit,
ASCII '1' interpreted as 1-bit,
all other characters ignored
- -p, --portable read in portable mode (to be deprecated)
- The following two options are useful only when verifying checksums:
- -s, --status don't output anything, status code shows success
- -w, --warn warn about improperly formatted checksum lines
+ The following five options are useful only when verifying checksums:
+ --ignore-missing don't fail or report status for missing files
+ -q, --quiet don't print OK for each successfully verified file
+ -s, --status don't output anything, status code shows success
+ --strict exit non-zero for improperly formatted checksum lines
+ -w, --warn warn about improperly formatted checksum lines
-h, --help display this help and exit
-v, --version output version information and exit
@@ -58,8 +62,10 @@ shasum - Print or Check SHA Checksums
The sums are computed as described in FIPS PUB 180-4. When checking,
the input should be a former output of this program. The default
mode is to print a line with checksum, a character indicating type
- (`*' for binary, ` ' for text, `U' for UNIVERSAL, `^' for BITS, `?'
- for portable), and name for each FILE.
+ (`*' for binary, ` ' for text, `U' for UNIVERSAL, `^' for BITS),
+ and name for each FILE. The line starts with a `\' character if the
+ FILE name contains either newlines or backslashes, which are then
+ replaced by the two-character sequences `\n' and `\\' respectively.
Report shasum bugs to mshelor@cpan.org
@@ -91,18 +97,17 @@ the 7-bit message I<0001100>:
=head1 AUTHOR
-Copyright (c) 2003-2015 Mark Shelor <mshelor@cpan.org>.
+Copyright (c) 2003-2017 Mark Shelor <mshelor@cpan.org>.
=head1 SEE ALSO
-I<shasum> is implemented using the Perl module L<Digest::SHA> or
-L<Digest::SHA::PurePerl>.
+I<shasum> is implemented using the Perl module L<Digest::SHA>.
=cut
END_OF_POD
-my $VERSION = "5.95";
+my $VERSION = "6.01";
sub usage {
my($err, $msg) = @_;
@@ -129,20 +134,21 @@ select((select(STDERR), $| = 1)[0]);
## Collect options from command line
-my ($alg, $binary, $check, $text, $status, $warn, $help, $version);
-my ($portable, $BITS, $reverse, $UNIVERSAL, $versions);
+my ($alg, $binary, $check, $text, $status, $quiet, $warn, $help);
+my ($version, $BITS, $UNIVERSAL, $tag, $strict, $ignore_missing);
eval { Getopt::Long::Configure ("bundling") };
GetOptions(
'b|binary' => \$binary, 'c|check' => \$check,
't|text' => \$text, 'a|algorithm=i' => \$alg,
's|status' => \$status, 'w|warn' => \$warn,
+ 'q|quiet' => \$quiet,
'h|help' => \$help, 'v|version' => \$version,
- 'p|portable' => \$portable,
'0|01' => \$BITS,
- 'R|REVERSE' => \$reverse,
'U|UNIVERSAL' => \$UNIVERSAL,
- 'V|VERSIONS' => \$versions,
+ 'tag' => \$tag,
+ 'strict' => \$strict,
+ 'ignore-missing' => \$ignore_missing,
) or usage(1, "");
@@ -152,39 +158,34 @@ usage(0)
if $help;
usage(1, "shasum: Ambiguous file mode\n")
if scalar(grep {defined $_}
- ($binary, $portable, $text, $BITS, $UNIVERSAL)) > 1;
+ ($binary, $text, $BITS, $UNIVERSAL)) > 1;
usage(1, "shasum: --warn option used only when verifying checksums\n")
if $warn && !$check;
usage(1, "shasum: --status option used only when verifying checksums\n")
if $status && !$check;
-
-
- ## Try to use Digest::SHA. If not installed, use the slower
- ## but functionally equivalent Digest::SHA::PurePerl instead.
-
- ## If option -R is invoked, reverse the module preference,
- ## i.e. try Digest::SHA::PurePerl first, then Digest::SHA.
-
-my @MODS = qw(Digest::SHA Digest::SHA::PurePerl);
-@MODS[0, 1] = @MODS[1, 0] if $reverse;
-
-my $module;
-for (@MODS) {
- my $mod = $_;
- if (eval "require $mod") {
- $module = $mod;
- last;
- }
-}
-die "shasum: Unable to find " . join(" or ", @MODS) . "\n"
- unless defined $module;
+usage(1, "shasum: --quiet option used only when verifying checksums\n")
+ if $quiet && !$check;
+usage(1, "shasum: --ignore-missing option used only when verifying checksums\n")
+ if $ignore_missing && !$check;
+usage(1, "shasum: --strict option used only when verifying checksums\n")
+ if $strict && !$check;
+usage(1, "shasum: --tag does not support --text mode\n")
+ if $tag && $text;
+usage(1, "shasum: --tag does not support Universal Newlines mode\n")
+ if $tag && $UNIVERSAL;
+usage(1, "shasum: --tag does not support BITS mode\n")
+ if $tag && $BITS;
## Default to SHA-1 unless overridden by command line option
+my %isAlg = map { $_ => 1 } (1, 224, 256, 384, 512, 512224, 512256);
$alg = 1 unless defined $alg;
-grep { $_ == $alg } (1, 224, 256, 384, 512, 512224, 512256)
- or usage(1, "shasum: Unrecognized algorithm\n");
+usage(1, "shasum: Unrecognized algorithm\n") unless $isAlg{$alg};
+
+my %Tag = map { $_ => "SHA$_" } (1, 224, 256, 384, 512);
+$Tag{512224} = "SHA512/224";
+$Tag{512256} = "SHA512/256";
## Display version information if requested
@@ -194,24 +195,16 @@ if ($version) {
exit(0);
}
-if ($versions) {
- print "shasum $VERSION\n";
- print "$module ", eval "\$${module}::VERSION", "\n";
- print "perl ", defined $^V ? sprintf("%vd", $^V) : $], "\n";
- exit(0);
-}
-
## Try to figure out if the OS is DOS-like. If it is,
## default to binary mode when reading files, unless
## explicitly overridden by command line "--text" or
- ## "--UNIVERSAL" or "--portable" options.
+ ## "--UNIVERSAL" options.
my $isDOSish = ($^O =~ /^(MSWin\d\d|os2|dos|mint|cygwin)$/);
-if ($isDOSish) { $binary = 1 unless $text || $UNIVERSAL || $portable }
+if ($isDOSish) { $binary = 1 unless $text || $UNIVERSAL }
-my $modesym = $binary ? '*' : ($UNIVERSAL ? 'U' :
- ($BITS ? '^' : ($portable ? '?' : ' ')));
+my $modesym = $binary ? '*' : ($UNIVERSAL ? 'U' : ($BITS ? '^' : ' '));
## Read from STDIN (-) if no files listed on command line
@@ -224,10 +217,9 @@ my $modesym = $binary ? '*' : ($UNIVERSAL ? 'U' :
sub sumfile {
my $file = shift;
- my $mode = $binary ? 'b' : ($UNIVERSAL ? 'U' :
- ($BITS ? '0' : ($portable ? 'p' : '')));
- my $digest = eval { $module->new($alg)->addfile($file, $mode) };
- if ($@) { warn "shasum: $file: $!\n"; return }
+ my $mode = $binary ? 'b' : ($UNIVERSAL ? 'U' : ($BITS ? '0' : ''));
+ my $digest = eval { Digest::SHA->new($alg)->addfile($file, $mode) };
+ if ($@) { warn "shasum: $file: $errmsg\n"; return }
$digest->hexdigest;
}
@@ -245,7 +237,6 @@ sub unescape {
$_ = shift;
s/\\\\/\0/g;
s/\\n/\n/g;
- return if /\\/;
s/\0/\\/g;
return $_;
}
@@ -256,8 +247,8 @@ sub unescape {
sub verify {
my $checkfile = shift;
my ($err, $fmt_errs, $read_errs, $match_errs) = (0, 0, 0, 0);
- my ($num_lines, $num_files) = (0, 0);
- my ($bslash, $sum, $fname, $rsp, $digest);
+ my ($num_fmt_OK, $num_OK) = (0, 0);
+ my ($bslash, $sum, $fname, $rsp, $digest, $isOK);
local *FH;
$checkfile eq '-' and open(FH, '< -')
@@ -265,38 +256,49 @@ sub verify {
or sysopen(FH, $checkfile, O_RDONLY)
or die "shasum: $checkfile: $!\n";
while (<FH>) {
- next if /^#/; s/\n$//; s/^[ \t]+//; $num_lines++;
- $bslash = s/^\\//;
- ($sum, $modesym, $fname) =
- /^([\da-fA-F]+)[ \t]([ *?^U])([^\0]*)/;
- $alg = defined $sum ? $len2alg{length($sum)} : undef;
- $fname = unescape($fname) if defined $fname && $bslash;
- if (grep { ! defined $_ } ($alg, $sum, $modesym, $fname)) {
- $alg = 1 unless defined $alg;
+ next if /^#/;
+ if (/^[ \t]*\\?SHA/) {
+ $modesym = '*';
+ ($bslash, $alg, $fname, $sum) =
+ /^[ \t]*(\\?)SHA(\S+) \((.+)\) = ([\da-fA-F]+)/;
+ $alg =~ tr{/}{}d if defined $alg;
+ }
+ else {
+ ($bslash, $sum, $modesym, $fname) =
+ /^[ \t]*(\\?)([\da-fA-F]+)[ \t]([ *^U])(.+)/;
+ $alg = defined $sum ? $len2alg{length($sum)} : undef;
+ }
+ if (grep { ! defined $_ } ($alg, $sum, $modesym, $fname) or
+ ! $isAlg{$alg}) {
warn("shasum: $checkfile: $.: improperly " .
- "formatted SHA$alg checksum line\n") if $warn;
+ "formatted SHA checksum line\n") if $warn;
$fmt_errs++;
+ $err = 1 if $strict;
next;
}
- $fname =~ s/\r$// unless -e $fname;
- $rsp = "$fname: "; $num_files++;
- ($binary, $text, $UNIVERSAL, $BITS, $portable) =
- map { $_ eq $modesym } ('*', ' ', 'U', '^', 'p');
+ $num_fmt_OK++;
+ $fname = unescape($fname) if $bslash;
+ next if $ignore_missing && ! -e $fname;
+ $rsp = "$fname: ";
+ ($binary, $text, $UNIVERSAL, $BITS) =
+ map { $_ eq $modesym } ('*', ' ', 'U', '^');
+ $isOK = 0;
unless ($digest = sumfile($fname)) {
$rsp .= "FAILED open or read\n";
$err = 1; $read_errs++;
}
- else {
- if (lc($sum) eq $digest) { $rsp .= "OK\n" }
- else { $rsp .= "FAILED\n"; $err = 1; $match_errs++ }
+ elsif (lc($sum) eq $digest) {
+ $rsp .= "OK\n";
+ $isOK = 1;
+ $num_OK++;
}
- print $rsp unless $status;
+ else { $rsp .= "FAILED\n"; $err = 1; $match_errs++ }
+ print $rsp unless ($status || ($quiet && $isOK));
}
close(FH);
- unless ($num_files) {
- $alg = 1 unless defined $alg;
+ if (! $num_fmt_OK) {
warn("shasum: $checkfile: no properly formatted " .
- "SHA$alg checksum lines found\n");
+ "SHA checksum lines found\n");
$err = 1;
}
elsif (! $status) {
@@ -307,6 +309,11 @@ sub verify {
warn("shasum: WARNING: $match_errs computed checksum" .
($match_errs>1?'s':'') . " did NOT match\n") if $match_errs;
}
+ if ($ignore_missing && ! $num_OK && $num_fmt_OK) {
+ warn("shasum: $checkfile: no file was verified\n")
+ unless $status;
+ $err = 1;
+ }
return($err == 0);
}
@@ -314,17 +321,17 @@ sub verify {
## Verify or compute SHA checksums of requested files
my($file, $digest);
-
my $STATUS = 0;
for $file (@ARGV) {
if ($check) { $STATUS = 1 unless verify($file) }
elsif ($digest = sumfile($file)) {
if ($file =~ /[\n\\]/) {
$file =~ s/\\/\\\\/g; $file =~ s/\n/\\n/g;
- $digest = "\\$digest";
+ print "\\";
}
- print "$digest $modesym", "$file\n";
+ unless ($tag) { print "$digest $modesym$file\n" }
+ else { print "$Tag{$alg} ($file) = $digest\n" }
}
else { $STATUS = 1 }
}
-exit($STATUS)
+exit($STATUS);
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c b/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c
index ea0d41ba077..79557fff8fc 100644
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c
@@ -3,10 +3,10 @@
*
* Ref: NIST FIPS PUB 180-4 Secure Hash Standard
*
- * Copyright (C) 2003-2015 Mark Shelor, All Rights Reserved
+ * Copyright (C) 2003-2017 Mark Shelor, All Rights Reserved
*
- * Version: 5.95
- * Sat Jan 10 12:15:36 MST 2015
+ * Version: 6.01
+ * Mon Dec 25 00:08:08 MST 2017
*
*/
@@ -364,10 +364,10 @@ static ULNG shabits(UCHR *bitstr, ULNG bitcnt, SHA *s)
for (i = 0UL; i < bitcnt; i++) {
if (BITSET(bitstr, i))
- SETBIT(s->block, s->blockcnt), s->blockcnt++;
+ SETBIT(s->block, s->blockcnt);
else
- CLRBIT(s->block, s->blockcnt), s->blockcnt++;
- if (s->blockcnt == s->blocksize)
+ CLRBIT(s->block, s->blockcnt);
+ if (++s->blockcnt == s->blocksize)
s->sha(s, s->block), s->blockcnt = 0;
}
return(bitcnt);
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h b/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h
index e63d4b743b3..91f181b0be0 100644
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h
@@ -3,10 +3,10 @@
*
* Ref: NIST FIPS PUB 180-4 Secure Hash Standard
*
- * Copyright (C) 2003-2015 Mark Shelor, All Rights Reserved
+ * Copyright (C) 2003-2017 Mark Shelor, All Rights Reserved
*
- * Version: 5.95
- * Sat Jan 10 12:15:36 MST 2015
+ * Version: 6.01
+ * Mon Dec 25 00:08:08 MST 2017
*
*/
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c b/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c
index 2fa0ddaf445..4d6e9dd4040 100644
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c
@@ -3,10 +3,10 @@
*
* Ref: NIST FIPS PUB 180-4 Secure Hash Standard
*
- * Copyright (C) 2003-2015 Mark Shelor, All Rights Reserved
+ * Copyright (C) 2003-2017 Mark Shelor, All Rights Reserved
*
- * Version: 5.95
- * Sat Jan 10 12:15:36 MST 2015
+ * Version: 6.01
+ * Mon Dec 25 00:08:08 MST 2017
*
*/
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h b/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h
index ce89548cf38..2b8dc55a9b6 100644
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h
@@ -3,10 +3,10 @@
*
* Ref: NIST FIPS PUB 180-4 Secure Hash Standard
*
- * Copyright (C) 2003-2015 Mark Shelor, All Rights Reserved
+ * Copyright (C) 2003-2017 Mark Shelor, All Rights Reserved
*
- * Version: 5.95
- * Sat Jan 10 12:15:36 MST 2015
+ * Version: 6.01
+ * Mon Dec 25 00:08:08 MST 2017
*
* The following macros supply placeholder values that enable the
* sha.c module to successfully compile when 64-bit integer types
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/t/methods.t b/gnu/usr.bin/perl/cpan/Digest-SHA/t/methods.t
index 223bc5399a0..1522f99bc3a 100755
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/t/methods.t
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/t/methods.t
@@ -1,38 +1,24 @@
use strict;
use FileHandle;
-
-my $MODULE;
-
-BEGIN {
- $MODULE = (-d "src") ? "Digest::SHA" : "Digest::SHA::PurePerl";
- eval "require $MODULE" || die $@;
- $MODULE->import(qw());
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir 't' if -d 't';
- @INC = '../lib';
- }
-}
+use Digest::SHA;
my @out = (
"ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0",
"248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1",
);
-my $numtests = 9 + scalar @out;
+my $numtests = 6 + scalar @out;
print "1..$numtests\n";
# attempt to use an invalid algorithm, and check for failure
my $testnum = 1;
my $NSA = "SHA-42"; # No Such Algorithm
-print "not " if $MODULE->new($NSA);
+print "not " if Digest::SHA->new($NSA);
print "ok ", $testnum++, "\n";
my $tempfile = "methods.tmp";
-END { 1 while unlink $tempfile }
+END { unlink $tempfile if $tempfile }
# test OO methods using first two SHA-256 vectors from NIST
@@ -41,7 +27,7 @@ binmode($fh);
print $fh "bcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
$fh->close;
-my $sha = $MODULE->new()->reset("SHA-256")->new();
+my $sha = Digest::SHA->new()->reset("SHA-256")->new();
$sha->add_bits("a", 5)->add_bits("001");
my $rsp = shift(@out);
@@ -72,35 +58,6 @@ $fh->close;
print "not " unless $sha->addfile($tempfile, "b")->hexdigest eq $rsp;
print "ok ", $testnum++, "\n";
- # test addfile portable mode
-
-$fh = FileHandle->new($tempfile, "w");
-binmode($fh);
-print $fh "abc\012" x 2048; # using UNIX newline
-$fh->close;
-
-print "not " unless $sha->new(1)->addfile($tempfile, "p")->hexdigest eq
- "d449e19c1b0b0c191294c8dc9fa2e4a6ff77fc51";
-print "ok ", $testnum++, "\n";
-
-$fh = FileHandle->new($tempfile, "w");
-binmode($fh);
-print $fh "abc\015\012" x 2048; # using DOS/Windows newline
-$fh->close;
-
-print "not " unless $sha->new(1)->addfile($tempfile, "p")->hexdigest eq
- "d449e19c1b0b0c191294c8dc9fa2e4a6ff77fc51";
-print "ok ", $testnum++, "\n";
-
-$fh = FileHandle->new($tempfile, "w");
-binmode($fh);
-print $fh "abc\015" x 2048; # using early-Mac newline
-$fh->close;
-
-print "not " unless $sha->new(1)->addfile($tempfile, "p")->hexdigest eq
- "d449e19c1b0b0c191294c8dc9fa2e4a6ff77fc51";
-print "ok ", $testnum++, "\n";
-
# test addfile "universal newlines" mode
$fh = FileHandle->new($tempfile, "w");
diff --git a/gnu/usr.bin/perl/cpan/Digest-SHA/t/woodbury.t b/gnu/usr.bin/perl/cpan/Digest-SHA/t/woodbury.t
index afcb731962a..95527006cdb 100755
--- a/gnu/usr.bin/perl/cpan/Digest-SHA/t/woodbury.t
+++ b/gnu/usr.bin/perl/cpan/Digest-SHA/t/woodbury.t
@@ -3,21 +3,7 @@
# Vectors and initial script courtesy of Adam Woodbury, The MITRE Corporation
use strict;
-
-my $MODULE;
-
-BEGIN {
- $MODULE = (-d "src") ? "Digest::SHA" : "Digest::SHA::PurePerl";
- eval "require $MODULE" || die $@;
- $MODULE->import(qw(hmac_sha256 hmac_sha384 hmac_sha512));
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir 't' if -d 't';
- @INC = '../lib';
- }
-}
+use Digest::SHA qw(hmac_sha256 hmac_sha384 hmac_sha512);
my @plex = map { eval } <DATA>;
diff --git a/gnu/usr.bin/perl/cpan/Encode/Encode.pm b/gnu/usr.bin/perl/cpan/Encode/Encode.pm
index dce6c5415e9..f90f929f073 100644
--- a/gnu/usr.bin/perl/cpan/Encode/Encode.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/Encode.pm
@@ -1,21 +1,26 @@
#
-# $Id: Encode.pm,v 2.80 2016/01/25 14:54:01 dankogai Exp $
+# $Id: Encode.pm,v 2.97 2018/02/21 12:14:24 dankogai Exp $
#
package Encode;
use strict;
use warnings;
-our $VERSION = sprintf "%d.%02d_01", q$Revision: 2.80 $ =~ /(\d+)/g;
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
-use XSLoader ();
-XSLoader::load( __PACKAGE__, $VERSION );
+our $VERSION;
+BEGIN {
+ $VERSION = sprintf "%d.%02d", q$Revision: 2.97 $ =~ /(\d+)/g;
+ require XSLoader;
+ XSLoader::load( __PACKAGE__, $VERSION );
+}
use Exporter 5.57 'import';
+our @CARP_NOT = qw(Encode::Encoder);
+
# Public, encouraged API is exported by default
our @EXPORT = qw(
decode decode_utf8 encode encode_utf8 str2bytes bytes2str
- encodings find_encoding clone_encoding
+ encodings find_encoding find_mime_encoding clone_encoding
);
our @FB_FLAGS = qw(
DIE_ON_ERR WARN_ON_ERR RETURN_ON_ERR LEAVE_SRC
@@ -44,7 +49,10 @@ our %EXPORT_TAGS = (
our $ON_EBCDIC = ( ord("A") == 193 );
-use Encode::Alias;
+use Encode::Alias ();
+use Encode::MIME::Name;
+
+use Storable;
# Make a %Encoding package variable to allow a certain amount of cheating
our %Encoding;
@@ -96,12 +104,17 @@ sub define_encoding {
my $alias = shift;
define_alias( $alias, $obj );
}
+ my $class = ref($obj);
+ push @Encode::CARP_NOT, $class unless grep { $_ eq $class } @Encode::CARP_NOT;
+ push @Encode::Encoding::CARP_NOT, $class unless grep { $_ eq $class } @Encode::Encoding::CARP_NOT;
return $obj;
}
sub getEncoding {
my ( $class, $name, $skip_external ) = @_;
+ defined($name) or return;
+
$name =~ s/\s+//g; # https://rt.cpan.org/Ticket/Display.html?id=65796
ref($name) && $name->can('renew') and return $name;
@@ -125,11 +138,26 @@ sub getEncoding {
return;
}
+# HACK: These two functions must be defined in Encode and because of
+# cyclic dependency between Encode and Encode::Alias, Exporter does not work
+sub find_alias {
+ goto &Encode::Alias::find_alias;
+}
+sub define_alias {
+ goto &Encode::Alias::define_alias;
+}
+
sub find_encoding($;$) {
my ( $name, $skip_external ) = @_;
return __PACKAGE__->getEncoding( $name, $skip_external );
}
+sub find_mime_encoding($;$) {
+ my ( $mime_name, $skip_external ) = @_;
+ my $name = Encode::MIME::Name::get_encode_name( $mime_name );
+ return find_encoding( $name, $skip_external );
+}
+
sub resolve_alias($) {
my $obj = find_encoding(shift);
defined $obj and return $obj->name;
@@ -139,8 +167,6 @@ sub resolve_alias($) {
sub clone_encoding($) {
my $obj = find_encoding(shift);
ref $obj or return;
- eval { require Storable };
- $@ and return;
return Storable::dclone($obj);
}
@@ -172,7 +198,7 @@ sub encode($$;$) {
else {
$octets = $enc->encode( $string, $check );
}
- $_[1] = $string if $check and !ref $check and !( $check & LEAVE_SRC() );
+ $_[1] = $string if $check and !ref $check and !( $check & LEAVE_SRC );
return $octets;
}
*str2bytes = \&encode;
@@ -201,7 +227,7 @@ sub decode($$;$) {
else {
$string = $enc->decode( $octets, $check );
}
- $_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC() );
+ $_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC );
return $string;
}
*bytes2str = \&decode;
@@ -220,14 +246,41 @@ sub from_to($$$;$) {
require Carp;
Carp::croak("Unknown encoding '$to'");
}
- my $uni = $f->decode($string);
- $_[0] = $string = $t->encode( $uni, $check );
+
+ # For Unicode, warnings need to be caught and re-issued at this level
+ # so that callers can disable utf8 warnings lexically.
+ my $uni;
+ if ( ref($f) eq 'Encode::Unicode' ) {
+ my $warn = '';
+ {
+ local $SIG{__WARN__} = sub { $warn = shift };
+ $uni = $f->decode($string);
+ }
+ warnings::warnif('utf8', $warn) if length $warn;
+ }
+ else {
+ $uni = $f->decode($string);
+ }
+
+ if ( ref($t) eq 'Encode::Unicode' ) {
+ my $warn = '';
+ {
+ local $SIG{__WARN__} = sub { $warn = shift };
+ $_[0] = $string = $t->encode( $uni, $check );
+ }
+ warnings::warnif('utf8', $warn) if length $warn;
+ }
+ else {
+ $_[0] = $string = $t->encode( $uni, $check );
+ }
+
return undef if ( $check && length($uni) );
return defined( $_[0] ) ? length($string) : undef;
}
sub encode_utf8($) {
my ($str) = @_;
+ return undef unless defined $str;
utf8::encode($str);
return $str;
}
@@ -241,133 +294,87 @@ sub decode_utf8($;$) {
$check ||= 0;
$utf8enc ||= find_encoding('utf8');
my $string = $utf8enc->decode( $octets, $check );
- $_[0] = $octets if $check and !ref $check and !( $check & LEAVE_SRC() );
+ $_[0] = $octets if $check and !ref $check and !( $check & LEAVE_SRC );
return $string;
}
-# sub decode_utf8($;$) {
-# my ( $str, $check ) = @_;
-# return $str if is_utf8($str);
-# if ($check) {
-# return decode( "utf8", $str, $check );
-# }
-# else {
-# return decode( "utf8", $str );
-# return $str;
-# }
-# }
-
-predefine_encodings(1);
-
-#
-# This is to restore %Encoding if really needed;
-#
-
-sub predefine_encodings {
- require Encode::Encoding;
- no warnings 'redefine';
- my $use_xs = shift;
- if ($ON_EBCDIC) {
-
- # was in Encode::UTF_EBCDIC
- package Encode::UTF_EBCDIC;
- push @Encode::UTF_EBCDIC::ISA, 'Encode::Encoding';
- *decode = sub {
- my ( undef, $str, $chk ) = @_;
- my $res = '';
- for ( my $i = 0 ; $i < length($str) ; $i++ ) {
- $res .=
- chr(
- utf8::unicode_to_native( ord( substr( $str, $i, 1 ) ) )
- );
- }
- $_[1] = '' if $chk;
- return $res;
- };
- *encode = sub {
- my ( undef, $str, $chk ) = @_;
- my $res = '';
- for ( my $i = 0 ; $i < length($str) ; $i++ ) {
- $res .=
- chr(
- utf8::native_to_unicode( ord( substr( $str, $i, 1 ) ) )
- );
- }
- $_[1] = '' if $chk;
- return $res;
- };
- $Encode::Encoding{Unicode} =
- bless { Name => "UTF_EBCDIC" } => "Encode::UTF_EBCDIC";
+onBOOT;
+
+if ($ON_EBCDIC) {
+ package Encode::UTF_EBCDIC;
+ use parent 'Encode::Encoding';
+ my $obj = bless { Name => "UTF_EBCDIC" } => "Encode::UTF_EBCDIC";
+ Encode::define_encoding($obj, 'Unicode');
+ sub decode {
+ my ( undef, $str, $chk ) = @_;
+ my $res = '';
+ for ( my $i = 0 ; $i < length($str) ; $i++ ) {
+ $res .=
+ chr(
+ utf8::unicode_to_native( ord( substr( $str, $i, 1 ) ) )
+ );
+ }
+ $_[1] = '' if $chk;
+ return $res;
}
- else {
-
- package Encode::Internal;
- push @Encode::Internal::ISA, 'Encode::Encoding';
- *decode = sub {
- my ( undef, $str, $chk ) = @_;
- utf8::upgrade($str);
- $_[1] = '' if $chk;
- return $str;
- };
- *encode = \&decode;
- $Encode::Encoding{Unicode} =
- bless { Name => "Internal" } => "Encode::Internal";
+ sub encode {
+ my ( undef, $str, $chk ) = @_;
+ my $res = '';
+ for ( my $i = 0 ; $i < length($str) ; $i++ ) {
+ $res .=
+ chr(
+ utf8::native_to_unicode( ord( substr( $str, $i, 1 ) ) )
+ );
+ }
+ $_[1] = '' if $chk;
+ return $res;
}
- {
- # https://rt.cpan.org/Public/Bug/Display.html?id=103253
- package Encode::XS;
- push @Encode::XS::ISA, 'Encode::Encoding';
+} else {
+ package Encode::Internal;
+ use parent 'Encode::Encoding';
+ my $obj = bless { Name => "Internal" } => "Encode::Internal";
+ Encode::define_encoding($obj, 'Unicode');
+ sub decode {
+ my ( undef, $str, $chk ) = @_;
+ utf8::upgrade($str);
+ $_[1] = '' if $chk;
+ return $str;
}
- {
+ *encode = \&decode;
+}
- # was in Encode::utf8
- package Encode::utf8;
- push @Encode::utf8::ISA, 'Encode::Encoding';
+{
+ # https://rt.cpan.org/Public/Bug/Display.html?id=103253
+ package Encode::XS;
+ use parent 'Encode::Encoding';
+}
- #
- if ($use_xs) {
- Encode::DEBUG and warn __PACKAGE__, " XS on";
- *decode = \&decode_xs;
- *encode = \&encode_xs;
- }
- else {
- Encode::DEBUG and warn __PACKAGE__, " XS off";
- *decode = sub {
- my ( undef, $octets, $chk ) = @_;
- my $str = Encode::decode_utf8($octets);
- if ( defined $str ) {
- $_[1] = '' if $chk;
- return $str;
- }
- return undef;
- };
- *encode = sub {
- my ( undef, $string, $chk ) = @_;
- my $octets = Encode::encode_utf8($string);
- $_[1] = '' if $chk;
- return $octets;
- };
+{
+ package Encode::utf8;
+ use parent 'Encode::Encoding';
+ my %obj = (
+ 'utf8' => { Name => 'utf8' },
+ 'utf-8-strict' => { Name => 'utf-8-strict', strict_utf8 => 1 }
+ );
+ for ( keys %obj ) {
+ bless $obj{$_} => __PACKAGE__;
+ Encode::define_encoding( $obj{$_} => $_ );
+ }
+ sub cat_decode {
+ # ($obj, $dst, $src, $pos, $trm, $chk)
+ # currently ignores $chk
+ my ( undef, undef, undef, $pos, $trm ) = @_;
+ my ( $rdst, $rsrc, $rpos ) = \@_[ 1, 2, 3 ];
+ use bytes;
+ if ( ( my $npos = index( $$rsrc, $trm, $pos ) ) >= 0 ) {
+ $$rdst .=
+ substr( $$rsrc, $pos, $npos - $pos + length($trm) );
+ $$rpos = $npos + length($trm);
+ return 1;
}
- *cat_decode = sub { # ($obj, $dst, $src, $pos, $trm, $chk)
- # currently ignores $chk
- my ( undef, undef, undef, $pos, $trm ) = @_;
- my ( $rdst, $rsrc, $rpos ) = \@_[ 1, 2, 3 ];
- use bytes;
- if ( ( my $npos = index( $$rsrc, $trm, $pos ) ) >= 0 ) {
- $$rdst .=
- substr( $$rsrc, $pos, $npos - $pos + length($trm) );
- $$rpos = $npos + length($trm);
- return 1;
- }
- $$rdst .= substr( $$rsrc, $pos );
- $$rpos = length($$rsrc);
- return '';
- };
- $Encode::Encoding{utf8} =
- bless { Name => "utf8" } => "Encode::utf8";
- $Encode::Encoding{"utf-8-strict"} =
- bless { Name => "utf-8-strict", strict_utf8 => 1 }
- => "Encode::utf8";
+ $$rdst .= substr( $$rsrc, $pos );
+ $$rpos = length($$rsrc);
+ return '';
}
}
@@ -470,19 +477,25 @@ I<ENCODING> and returns a sequence of octets. I<ENCODING> can be either a
canonical name or an alias. For encoding names and aliases, see
L</"Defining Aliases">. For CHECK, see L</"Handling Malformed Data">.
+B<CAVEAT>: the input scalar I<STRING> might be modified in-place depending
+on what is set in CHECK. See L</LEAVE_SRC> if you want your inputs to be
+left unchanged.
+
For example, to convert a string from Perl's internal format into
ISO-8859-1, also known as Latin1:
$octets = encode("iso-8859-1", $string);
-B<CAVEAT>: When you run C<$octets = encode("utf8", $string)>, then
+B<CAVEAT>: When you run C<$octets = encode("UTF-8", $string)>, then
$octets I<might not be equal to> $string. Though both contain the
same data, the UTF8 flag for $octets is I<always> off. When you
encode anything, the UTF8 flag on the result is always off, even when it
-contains a completely valid utf8 string. See L</"The UTF8 flag"> below.
+contains a completely valid UTF-8 string. See L</"The UTF8 flag"> below.
If the $string is C<undef>, then C<undef> is returned.
+C<str2bytes> may be used as an alias for C<encode>.
+
=head3 decode
$string = decode(ENCODING, OCTETS[, CHECK])
@@ -494,18 +507,24 @@ I<ENCODING> can be either a canonical name or an alias. For encoding names
and aliases, see L</"Defining Aliases">; for I<CHECK>, see L</"Handling
Malformed Data">.
+B<CAVEAT>: the input scalar I<OCTETS> might be modified in-place depending
+on what is set in CHECK. See L</LEAVE_SRC> if you want your inputs to be
+left unchanged.
+
For example, to convert ISO-8859-1 data into a string in Perl's
internal format:
$string = decode("iso-8859-1", $octets);
-B<CAVEAT>: When you run C<$string = decode("utf8", $octets)>, then $string
+B<CAVEAT>: When you run C<$string = decode("UTF-8", $octets)>, then $string
I<might not be equal to> $octets. Though both contain the same data, the
UTF8 flag for $string is on. See L</"The UTF8 flag">
below.
If the $string is C<undef>, then C<undef> is returned.
+C<bytes2str> may be used as an alias for C<decode>.
+
=head3 find_encoding
[$obj =] find_encoding(ENCODING)
@@ -514,11 +533,11 @@ Returns the I<encoding object> corresponding to I<ENCODING>. Returns
C<undef> if no matching I<ENCODING> is find. The returned object is
what does the actual encoding or decoding.
- $utf8 = decode($name, $bytes);
+ $string = decode($name, $bytes);
is in fact
- $utf8 = do {
+ $string = do {
$obj = find_encoding($name);
croak qq(encoding "$name" not found) unless ref $obj;
$obj->decode($bytes);
@@ -530,8 +549,8 @@ You can therefore save time by reusing this object as follows;
my $enc = find_encoding("iso-8859-1");
while(<>) {
- my $utf8 = $enc->decode($_);
- ... # now do something with $utf8;
+ my $string = $enc->decode($_);
+ ... # now do something with $string;
}
Besides L</decode> and L</encode>, other methods are
@@ -542,6 +561,20 @@ name of the encoding object.
See L<Encode::Encoding> for details.
+=head3 find_mime_encoding
+
+ [$obj =] find_mime_encoding(MIME_ENCODING)
+
+Returns the I<encoding object> corresponding to I<MIME_ENCODING>. Acts
+same as C<find_encoding()> but C<mime_name()> of returned object must
+match to I<MIME_ENCODING>. So as opposite of C<find_encoding()>
+canonical names and aliases are not used when searching for object.
+
+ find_mime_encoding("utf8"); # returns undef because "utf8" is not valid I<MIME_ENCODING>
+ find_mime_encoding("utf-8"); # returns encode object "utf-8-strict"
+ find_mime_encoding("UTF-8"); # same as "utf-8" because I<MIME_ENCODING> is case insensitive
+ find_mime_encoding("utf-8-strict"); returns undef because "utf-8-strict" is not valid I<MIME_ENCODING>
+
=head3 from_to
[$length =] from_to($octets, FROM_ENC, TO_ENC [, CHECK])
@@ -565,13 +598,13 @@ and C<undef> on error.
B<CAVEAT>: The following operations may look the same, but are not:
- from_to($data, "iso-8859-1", "utf8"); #1
+ from_to($data, "iso-8859-1", "UTF-8"); #1
$data = decode("iso-8859-1", $data); #2
Both #1 and #2 make $data consist of a completely valid UTF-8 string,
but only #2 turns the UTF8 flag on. #1 is equivalent to:
- $data = encode("utf8", decode("iso-8859-1", $data));
+ $data = encode("UTF-8", decode("iso-8859-1", $data));
See L</"The UTF8 flag"> below.
@@ -596,7 +629,11 @@ followed by C<encode> as follows:
Equivalent to C<$octets = encode("utf8", $string)>. The characters in
$string are encoded in Perl's internal format, and the result is returned
as a sequence of octets. Because all possible characters in Perl have a
-(loose, not strict) UTF-8 representation, this function cannot fail.
+(loose, not strict) utf8 representation, this function cannot fail.
+
+B<WARNING>: do not use this function for data exchange as it can produce
+not strict utf8 $octets! For strictly valid UTF-8 output use
+C<$octets = encode("UTF-8", $string)>.
=head3 decode_utf8
@@ -604,11 +641,19 @@ as a sequence of octets. Because all possible characters in Perl have a
Equivalent to C<$string = decode("utf8", $octets [, CHECK])>.
The sequence of octets represented by $octets is decoded
-from UTF-8 into a sequence of logical characters.
-Because not all sequences of octets are valid UTF-8,
+from (loose, not strict) utf8 into a sequence of logical characters.
+Because not all sequences of octets are valid not strict utf8,
it is quite possible for this function to fail.
For CHECK, see L</"Handling Malformed Data">.
+B<WARNING>: do not use this function for data exchange as it can produce
+$string with not strict utf8 representation! For strictly valid UTF-8
+$string representation use C<$string = decode("UTF-8", $octets [, CHECK])>.
+
+B<CAVEAT>: the input I<$octets> might be modified in-place depending on
+what is set in CHECK. See L</LEAVE_SRC> if you want your inputs to be
+left unchanged.
+
=head2 Listing available encodings
use Encode;
@@ -840,15 +885,14 @@ octets that represent the fallback character. For instance:
Acts like C<FB_PERLQQ> but U+I<XXXX> is used instead of C<\x{I<XXXX>}>.
-Even the fallback for C<decode> must return octets, which are
-then decoded with the character encoding that C<decode> accepts. So for
+Fallback for C<decode> must return decoded string (sequence of characters)
+and takes a list of ordinal values as its arguments. So for
example if you wish to decode octets as UTF-8, and use ISO-8859-15 as
a fallback for bytes that are not valid UTF-8, you could write
$str = decode 'UTF-8', $octets, sub {
- my $tmp = chr shift;
- from_to $tmp, 'ISO-8859-15', 'UTF-8';
- return $tmp;
+ my $tmp = join '', map chr, @_;
+ return decode 'ISO-8859-15', $tmp;
};
=head1 Defining Encodings
@@ -905,38 +949,11 @@ different kinds of strings and string-operations in Perl: one a
byte-oriented mode for when the internal UTF8 flag is off, and the other a
character-oriented mode for when the internal UTF8 flag is on.
-Here is how C<Encode> handles the UTF8 flag.
-
-=over 2
-
-=item *
-
-When you I<encode>, the resulting UTF8 flag is always B<off>.
-
-=item *
-
-When you I<decode>, the resulting UTF8 flag is B<on>--I<unless> you can
-unambiguously represent data. Here is what we mean by "unambiguously".
-After C<$utf8 = decode("foo", $octet)>,
-
- When $octet is... The UTF8 flag in $utf8 is
- ---------------------------------------------
- In ASCII only (or EBCDIC only) OFF
- In ISO-8859-1 ON
- In any other Encoding ON
- ---------------------------------------------
-
-As you see, there is one exception: in ASCII. That way you can assume
-Goal #1. And with C<Encode>, Goal #2 is assumed but you still have to be
-careful in the cases mentioned in the B<CAVEAT> paragraphs above.
-
This UTF8 flag is not visible in Perl scripts, exactly for the same reason
you cannot (or rather, you I<don't have to>) see whether a scalar contains
a string, an integer, or a floating-point number. But you can still peek
and poke these if you will. See the next section.
-=back
-
=head2 Messing with Perl's Internals
The following API uses parts of Perl's internals in the current
@@ -951,6 +968,13 @@ release.
If I<CHECK> is true, also checks whether I<STRING> contains well-formed
UTF-8. Returns true if successful, false otherwise.
+Typically only necessary for debugging and testing. Don't use this flag as
+a marker to distinguish character and binary data, that should be decided
+for each variable when you write your code.
+
+B<CAVEAT>: If I<STRING> has UTF8 flag set, it does B<NOT> mean that
+I<STRING> is UTF-8 encoded and vice-versa.
+
As of Perl 5.8.1, L<utf8> also has the C<utf8::is_utf8> function.
=head3 _utf8_on
diff --git a/gnu/usr.bin/perl/cpan/Encode/Encode.xs b/gnu/usr.bin/perl/cpan/Encode/Encode.xs
index cd7f7d1050b..774c2b1fec0 100644
--- a/gnu/usr.bin/perl/cpan/Encode/Encode.xs
+++ b/gnu/usr.bin/perl/cpan/Encode/Encode.xs
@@ -1,5 +1,5 @@
/*
- $Id: Encode.xs,v 2.35 2016/01/22 06:33:07 dankogai Exp $
+ $Id: Encode.xs,v 2.43 2018/02/21 12:14:33 dankogai Exp dankogai $
*/
#define PERL_NO_GET_CONTEXT
@@ -31,16 +31,16 @@
UNIMPLEMENTED(_encoded_utf8_to_bytes, I32)
UNIMPLEMENTED(_encoded_bytes_to_utf8, I32)
-#ifdef UTF8_DISALLOW_ILLEGAL_INTERCHANGE
-# define UTF8_ALLOW_STRICT UTF8_DISALLOW_ILLEGAL_INTERCHANGE
-#else
-# define UTF8_ALLOW_STRICT 0
+#ifndef SvIV_nomg
+#define SvIV_nomg SvIV
#endif
-#define UTF8_ALLOW_NONSTRICT (UTF8_ALLOW_ANY & \
- ~(UTF8_ALLOW_CONTINUATION | \
- UTF8_ALLOW_NON_CONTINUATION | \
- UTF8_ALLOW_LONG))
+#ifndef UTF8_DISALLOW_ILLEGAL_INTERCHANGE
+# define UTF8_DISALLOW_ILLEGAL_INTERCHANGE 0
+# define UTF8_ALLOW_NON_STRICT (UTF8_ALLOW_FE_FF|UTF8_ALLOW_SURROGATE|UTF8_ALLOW_FFFF)
+#else
+# define UTF8_ALLOW_NON_STRICT 0
+#endif
static void
Encode_XSEncoding(pTHX_ encode_t * enc)
@@ -76,27 +76,60 @@ call_failure(SV * routine, U8 * done, U8 * dest, U8 * orig)
PERL_UNUSED_VAR(orig);
}
+static void
+utf8_safe_downgrade(pTHX_ SV ** src, U8 ** s, STRLEN * slen, bool modify)
+{
+ if (!modify) {
+ SV *tmp = sv_2mortal(newSVpvn((char *)*s, *slen));
+ SvUTF8_on(tmp);
+ if (SvTAINTED(*src))
+ SvTAINTED_on(tmp);
+ *src = tmp;
+ *s = (U8 *)SvPVX(*src);
+ }
+ if (*slen) {
+ if (!utf8_to_bytes(*s, slen))
+ croak("Wide character");
+ SvCUR_set(*src, *slen);
+ }
+ SvUTF8_off(*src);
+}
+
+static void
+utf8_safe_upgrade(pTHX_ SV ** src, U8 ** s, STRLEN * slen, bool modify)
+{
+ if (!modify) {
+ SV *tmp = sv_2mortal(newSVpvn((char *)*s, *slen));
+ if (SvTAINTED(*src))
+ SvTAINTED_on(tmp);
+ *src = tmp;
+ }
+ sv_utf8_upgrade_nomg(*src);
+ *s = (U8 *)SvPV_nomg(*src, *slen);
+}
#define ERR_ENCODE_NOMAP "\"\\x{%04" UVxf "}\" does not map to %s"
#define ERR_DECODE_NOMAP "%s \"\\x%02" UVXf "\" does not map to Unicode"
+#define ERR_DECODE_STR_NOMAP "%s \"%s\" does not map to Unicode"
static SV *
do_fallback_cb(pTHX_ UV ch, SV *fallback_cb)
{
dSP;
int argc;
- SV *retval = newSVpv("",0);
+ SV *retval;
ENTER;
SAVETMPS;
PUSHMARK(sp);
- XPUSHs(sv_2mortal(newSVnv((UV)ch)));
+ XPUSHs(sv_2mortal(newSVuv(ch)));
PUTBACK;
argc = call_sv(fallback_cb, G_SCALAR);
SPAGAIN;
if (argc != 1){
croak("fallback sub must return scalar!");
}
- sv_catsv(retval, POPs);
+ retval = POPs;
+ SvREFCNT_inc(retval);
PUTBACK;
FREETMPS;
LEAVE;
@@ -104,18 +137,42 @@ do_fallback_cb(pTHX_ UV ch, SV *fallback_cb)
}
static SV *
-encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src,
+do_bytes_fallback_cb(pTHX_ U8 *s, STRLEN slen, SV *fallback_cb)
+{
+ dSP;
+ int argc;
+ STRLEN i;
+ SV *retval;
+ ENTER;
+ SAVETMPS;
+ PUSHMARK(sp);
+ for (i=0; i<slen; ++i)
+ XPUSHs(sv_2mortal(newSVuv(s[i])));
+ PUTBACK;
+ argc = call_sv(fallback_cb, G_SCALAR);
+ SPAGAIN;
+ if (argc != 1){
+ croak("fallback sub must return scalar!");
+ }
+ retval = POPs;
+ SvREFCNT_inc(retval);
+ PUTBACK;
+ FREETMPS;
+ LEAVE;
+ return retval;
+}
+
+static SV *
+encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src, U8 * s, STRLEN slen,
int check, STRLEN * offset, SV * term, int * retcode,
SV *fallback_cb)
{
- STRLEN slen;
- U8 *s = (U8 *) SvPV(src, slen);
STRLEN tlen = slen;
STRLEN ddone = 0;
STRLEN sdone = 0;
/* We allocate slen+1.
PerlIO dumps core if this value is smaller than this. */
- SV *dst = sv_2mortal(newSV(slen+1));
+ SV *dst = newSV(slen+1);
U8 *d = (U8 *)SvPVX(dst);
STRLEN dlen = SvLEN(dst)-1;
int code = 0;
@@ -127,74 +184,75 @@ encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src,
if (offset) {
s += *offset;
if (slen > *offset){ /* safeguard against slen overflow */
- slen -= *offset;
+ slen -= *offset;
}else{
- slen = 0;
+ slen = 0;
}
tlen = slen;
}
if (slen == 0){
- SvCUR_set(dst, 0);
- SvPOK_only(dst);
- goto ENCODE_END;
+ SvCUR_set(dst, 0);
+ SvPOK_only(dst);
+ goto ENCODE_END;
}
while( (code = do_encode(dir, s, &slen, d, dlen, &dlen, !check,
- trm, trmlen)) )
+ trm, trmlen)) )
{
- SvCUR_set(dst, dlen+ddone);
- SvPOK_only(dst);
-
- if (code == ENCODE_FALLBACK || code == ENCODE_PARTIAL ||
- code == ENCODE_FOUND_TERM) {
- break;
- }
- switch (code) {
- case ENCODE_NOSPACE:
- {
- STRLEN more = 0; /* make sure you initialize! */
- STRLEN sleft;
- sdone += slen;
- ddone += dlen;
- sleft = tlen - sdone;
+ SvCUR_set(dst, dlen+ddone);
+ SvPOK_only(dst);
+
+ if (code == ENCODE_FALLBACK || code == ENCODE_PARTIAL ||
+ code == ENCODE_FOUND_TERM) {
+ break;
+ }
+ switch (code) {
+ case ENCODE_NOSPACE:
+ {
+ STRLEN more = 0; /* make sure you initialize! */
+ STRLEN sleft;
+ sdone += slen;
+ ddone += dlen;
+ sleft = tlen - sdone;
#if ENCODE_XS_PROFILE >= 2
- Perl_warn(aTHX_
- "more=%d, sdone=%d, sleft=%d, SvLEN(dst)=%d\n",
- more, sdone, sleft, SvLEN(dst));
+ Perl_warn(aTHX_
+ "more=%d, sdone=%d, sleft=%d, SvLEN(dst)=%d\n",
+ more, sdone, sleft, SvLEN(dst));
#endif
- if (sdone != 0) { /* has src ever been processed ? */
+ if (sdone != 0) { /* has src ever been processed ? */
#if ENCODE_XS_USEFP == 2
- more = (1.0*tlen*SvLEN(dst)+sdone-1)/sdone
- - SvLEN(dst);
+ more = (1.0*tlen*SvLEN(dst)+sdone-1)/sdone
+ - SvLEN(dst);
#elif ENCODE_XS_USEFP
- more = (STRLEN)((1.0*SvLEN(dst)+1)/sdone * sleft);
+ more = (STRLEN)((1.0*SvLEN(dst)+1)/sdone * sleft);
#else
- /* safe until SvLEN(dst) == MAX_INT/16 */
- more = (16*SvLEN(dst)+1)/sdone/16 * sleft;
+ /* safe until SvLEN(dst) == MAX_INT/16 */
+ more = (16*SvLEN(dst)+1)/sdone/16 * sleft;
#endif
+ }
+ more += UTF8_MAXLEN; /* insurance policy */
+ d = (U8 *) SvGROW(dst, SvLEN(dst) + more);
+ /* dst need to grow need MORE bytes! */
+ if (ddone >= SvLEN(dst)) {
+ Perl_croak(aTHX_ "Destination couldn't be grown.");
+ }
+ dlen = SvLEN(dst)-ddone-1;
+ d += ddone;
+ s += slen;
+ slen = tlen-sdone;
+ continue;
}
- more += UTF8_MAXLEN; /* insurance policy */
- d = (U8 *) SvGROW(dst, SvLEN(dst) + more);
- /* dst need to grow need MORE bytes! */
- if (ddone >= SvLEN(dst)) {
- Perl_croak(aTHX_ "Destination couldn't be grown.");
- }
- dlen = SvLEN(dst)-ddone-1;
- d += ddone;
- s += slen;
- slen = tlen-sdone;
- continue;
- }
+
case ENCODE_NOREP:
/* encoding */
if (dir == enc->f_utf8) {
STRLEN clen;
UV ch =
- utf8n_to_uvuni(s+slen, (SvCUR(src)-slen),
+ utf8n_to_uvuni(s+slen, (tlen-sdone-slen),
&clen, UTF8_ALLOW_ANY|UTF8_CHECK_ONLY);
/* if non-representable multibyte prefix at end of current buffer - break*/
- if (clen > tlen - sdone) break;
+ if (clen > tlen - sdone - slen) break;
if (check & ENCODE_DIE_ON_ERR) {
Perl_croak(aTHX_ ERR_ENCODE_NOMAP,
(UV)ch, enc->name[0]);
@@ -208,16 +266,22 @@ encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src,
goto ENCODE_SET_SRC;
}
if (check & (ENCODE_PERLQQ|ENCODE_HTMLCREF|ENCODE_XMLCREF)){
+ STRLEN sublen;
+ char *substr;
SV* subchar =
(fallback_cb != &PL_sv_undef)
? do_fallback_cb(aTHX_ ch, fallback_cb)
- : newSVpvf(check & ENCODE_PERLQQ ? "\\x{%04"UVxf"}" :
+ : newSVpvf(check & ENCODE_PERLQQ ? "\\x{%04" UVxf "}" :
check & ENCODE_HTMLCREF ? "&#%" UVuf ";" :
"&#x%" UVxf ";", (UV)ch);
- SvUTF8_off(subchar); /* make sure no decoded string gets in */
+ substr = SvPV(subchar, sublen);
+ if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */
+ SvREFCNT_dec(subchar);
+ croak("Wide character");
+ }
sdone += slen + clen;
- ddone += dlen + SvCUR(subchar);
- sv_catsv(dst, subchar);
+ ddone += dlen + sublen;
+ sv_catpvn(dst, substr, sublen);
SvREFCNT_dec(subchar);
} else {
/* fallback char */
@@ -244,34 +308,37 @@ encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src,
}
if (check &
(ENCODE_PERLQQ|ENCODE_HTMLCREF|ENCODE_XMLCREF)){
+ STRLEN sublen;
+ char *substr;
SV* subchar =
(fallback_cb != &PL_sv_undef)
? do_fallback_cb(aTHX_ (UV)s[slen], fallback_cb)
: newSVpvf("\\x%02" UVXf, (UV)s[slen]);
+ substr = SvPVutf8(subchar, sublen);
sdone += slen + 1;
- ddone += dlen + SvCUR(subchar);
- sv_catsv(dst, subchar);
+ ddone += dlen + sublen;
+ sv_catpvn(dst, substr, sublen);
SvREFCNT_dec(subchar);
} else {
sdone += slen + 1;
ddone += dlen + strlen(FBCHAR_UTF8);
- sv_catpv(dst, FBCHAR_UTF8);
+ sv_catpvn(dst, FBCHAR_UTF8, strlen(FBCHAR_UTF8));
}
}
/* settle variables when fallback */
d = (U8 *)SvEND(dst);
- dlen = SvLEN(dst) - ddone - 1;
+ dlen = SvLEN(dst) - ddone - 1;
s = (U8*)SvPVX(src) + sdone;
slen = tlen - sdone;
break;
- default:
- Perl_croak(aTHX_ "Unexpected code %d converting %s %s",
- code, (dir == enc->f_utf8) ? "to" : "from",
- enc->name[0]);
- return &PL_sv_undef;
- }
- }
+ default:
+ Perl_croak(aTHX_ "Unexpected code %d converting %s %s",
+ code, (dir == enc->f_utf8) ? "to" : "from",
+ enc->name[0]);
+ return &PL_sv_undef;
+ }
+ } /* End of looping through the string */
ENCODE_SET_SRC:
if (check && !(check & ENCODE_LEAVE_SRC)){
sdone = SvCUR(src) - (slen+sdone);
@@ -279,6 +346,7 @@ encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src,
sv_setpvn(src, (char*)s+slen, sdone);
}
SvCUR_set(src, sdone);
+ SvSETMAGIC(src);
}
/* warn("check = 0x%X, code = 0x%d\n", check, code); */
@@ -294,7 +362,7 @@ encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src,
}
#endif
- if (offset)
+ if (offset)
*offset += sdone + slen;
ENCODE_END:
@@ -318,14 +386,100 @@ strict_utf8(pTHX_ SV* sv)
return SvTRUE(*svp);
}
+/* Modern perls have the capability to do this more efficiently and portably */
+#ifdef utf8n_to_uvchr_msgs
+# define CAN_USE_BASE_PERL
+#endif
+
+#ifndef CAN_USE_BASE_PERL
+
+/*
+ * https://github.com/dankogai/p5-encode/pull/56#issuecomment-231959126
+ */
+#ifndef UNICODE_IS_NONCHAR
+#define UNICODE_IS_NONCHAR(c) ((c >= 0xFDD0 && c <= 0xFDEF) || (c & 0xFFFE) == 0xFFFE)
+#endif
+
+#ifndef UNICODE_IS_SUPER
+#define UNICODE_IS_SUPER(c) (c > PERL_UNICODE_MAX)
+#endif
+
+#define UNICODE_IS_STRICT(c) (!UNICODE_IS_SURROGATE(c) && !UNICODE_IS_NONCHAR(c) && !UNICODE_IS_SUPER(c))
+
+#ifndef UTF_ACCUMULATION_OVERFLOW_MASK
+#ifndef CHARBITS
+#define CHARBITS CHAR_BIT
+#endif
+#define UTF_ACCUMULATION_OVERFLOW_MASK (((UV) UTF_CONTINUATION_MASK) << ((sizeof(UV) * CHARBITS) - UTF_ACCUMULATION_SHIFT))
+#endif
+
+/*
+ * Convert non strict utf8 sequence of len >= 2 to unicode codepoint
+ */
+static UV
+convert_utf8_multi_seq(U8* s, STRLEN len, STRLEN *rlen)
+{
+ UV uv;
+ U8 *ptr = s;
+ bool overflowed = 0;
+
+ uv = NATIVE_TO_UTF(*s) & UTF_START_MASK(UTF8SKIP(s));
+
+ len--;
+ s++;
+
+ while (len--) {
+ if (!UTF8_IS_CONTINUATION(*s)) {
+ *rlen = s-ptr;
+ return 0;
+ }
+ if (uv & UTF_ACCUMULATION_OVERFLOW_MASK)
+ overflowed = 1;
+ uv = UTF8_ACCUMULATE(uv, *s);
+ s++;
+ }
+
+ *rlen = s-ptr;
+
+ if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
+ return 0;
+ }
+
+ return uv;
+}
+
+#endif /* CAN_USE_BASE_PERL */
+
static U8*
process_utf8(pTHX_ SV* dst, U8* s, U8* e, SV *check_sv,
bool encode, bool strict, bool stop_at_partial)
{
+ /* Copies the purportedly UTF-8 encoded string starting at 's' and ending
+ * at 'e' - 1 to 'dst', checking as it goes along that the string actually
+ * is valid UTF-8. There are two levels of strictness checking. If
+ * 'strict' is FALSE, the string is checked for being well-formed UTF-8, as
+ * extended by Perl. Additionally, if 'strict' is TRUE, above-Unicode code
+ * points, surrogates, and non-character code points are checked for. When
+ * invalid input is encountered, some action is taken, exactly what depends
+ * on the flags in 'check_sv'. 'encode' gives if this is from an encode
+ * operation (if TRUE), or a decode one. This function returns the
+ * position in 's' of the start of the next character beyond where it got
+ * to. If there were no problems, that will be 'e'. If 'stop_at_partial'
+ * is TRUE, if the final character before 'e' is incomplete, but valid as
+ * far as is available, no action will be taken on that partial character,
+ * and the return value will point to its first byte */
+
UV uv;
STRLEN ulen;
SV *fallback_cb;
int check;
+ U8 *d;
+ STRLEN dlen;
+ char esc[UTF8_MAXLEN * 6 + 1];
+ STRLEN i;
+ const U32 flags = (strict)
+ ? UTF8_DISALLOW_ILLEGAL_INTERCHANGE
+ : UTF8_ALLOW_NON_STRICT;
if (SvROK(check_sv)) {
/* croak("UTF-8 decoder doesn't support callback CHECK"); */
@@ -334,101 +488,180 @@ process_utf8(pTHX_ SV* dst, U8* s, U8* e, SV *check_sv,
}
else {
fallback_cb = &PL_sv_undef;
- check = SvIV(check_sv);
+ check = SvIV_nomg(check_sv);
}
SvPOK_only(dst);
SvCUR_set(dst,0);
+ dlen = (s && e && s < e) ? e-s+1 : 1;
+ d = (U8 *) SvGROW(dst, dlen);
+
+ stop_at_partial = stop_at_partial || (check & ENCODE_STOP_AT_PARTIAL);
+
while (s < e) {
+
+#ifdef CAN_USE_BASE_PERL /* Use the much faster, portable implementation if
+ available */
+
+ /* If there were no errors, this will be 'e'; otherwise it will point
+ * to the first byte of the erroneous input */
+ const U8* e_or_where_failed;
+ bool valid = is_utf8_string_loc_flags(s, e - s, &e_or_where_failed, flags);
+ STRLEN len = e_or_where_failed - s;
+
+ /* Copy as far as was successful */
+ Move(s, d, len, U8);
+ d += len;
+ s = (U8 *) e_or_where_failed;
+
+ /* Are done if it was valid, or we are accepting partial characters and
+ * the only error is that the final bytes form a partial character */
+ if ( LIKELY(valid)
+ || ( stop_at_partial
+ && is_utf8_valid_partial_char_flags(s, e, flags)))
+ {
+ break;
+ }
+
+ /* Here, was not valid. If is 'strict', and is legal extended UTF-8,
+ * we know it is a code point whose value we can calculate, just not
+ * one accepted under strict. Otherwise, it is malformed in some way.
+ * In either case, the system function can calculate either the code
+ * point, or the best substitution for it */
+ uv = utf8n_to_uvchr(s, e - s, &ulen, UTF8_ALLOW_ANY);
+
+#else /* Use code for earlier perls */
+
+ ((void)sizeof(flags)); /* Avoid compiler warning */
+
if (UTF8_IS_INVARIANT(*s)) {
- sv_catpvn(dst, (char *)s, 1);
- s++;
+ *d++ = *s++;
continue;
}
- if (UTF8_IS_START(*s)) {
+ uv = 0;
+ ulen = 1;
+ if (! UTF8_IS_CONTINUATION(*s)) {
+ /* Not an invariant nor a continuation; must be a start byte. (We
+ * can't test for UTF8_IS_START as that excludes things like \xC0
+ * which are start bytes, but always lead to overlongs */
+
U8 skip = UTF8SKIP(s);
if ((s + skip) > e) {
- if (stop_at_partial || (check & ENCODE_STOP_AT_PARTIAL)) {
- const U8 *p = s + 1;
- for (; p < e; p++) {
- if (!UTF8_IS_CONTINUATION(*p))
- goto malformed_byte;
- }
+ /* just calculate ulen, in pathological cases can be smaller then e-s */
+ if (e-s >= 2)
+ convert_utf8_multi_seq(s, e-s, &ulen);
+ else
+ ulen = 1;
+
+ if (stop_at_partial && ulen == (STRLEN)(e-s))
break;
- }
goto malformed_byte;
}
- uv = utf8n_to_uvuni(s, e - s, &ulen,
- UTF8_CHECK_ONLY | (strict ? UTF8_ALLOW_STRICT :
- UTF8_ALLOW_NONSTRICT)
- );
-#if 1 /* perl-5.8.6 and older do not check UTF8_ALLOW_LONG */
- if (strict && uv > PERL_UNICODE_MAX)
- ulen = (STRLEN) -1;
-#endif
- if (ulen == (STRLEN) -1) {
- if (strict) {
- uv = utf8n_to_uvuni(s, e - s, &ulen,
- UTF8_CHECK_ONLY | UTF8_ALLOW_NONSTRICT);
- if (ulen == (STRLEN) -1)
- goto malformed_byte;
- goto malformed;
- }
+ uv = convert_utf8_multi_seq(s, skip, &ulen);
+ if (uv == 0)
goto malformed_byte;
- }
+ else if (strict && !UNICODE_IS_STRICT(uv))
+ goto malformed;
/* Whole char is good */
- sv_catpvn(dst,(char *)s,skip);
+ memcpy(d, s, skip);
+ d += skip;
s += skip;
continue;
}
/* If we get here there is something wrong with alleged UTF-8 */
+ /* uv is used only when encoding */
malformed_byte:
- uv = (UV)*s;
- ulen = 1;
+ if (uv == 0)
+ uv = (UV)*s;
+ if (encode || ulen == 0)
+ ulen = 1;
malformed:
+
+#endif /* The two versions for processing come back together here, for the
+ * error handling code.
+ *
+ * Here, we are looping through the input and found an error.
+ * 'uv' is the code point in error if calculable, or the REPLACEMENT
+ * CHARACTER if not.
+ * 'ulen' is how many bytes of input this iteration of the loop
+ * consumes */
+
+ if (!encode && (check & (ENCODE_DIE_ON_ERR|ENCODE_WARN_ON_ERR|ENCODE_PERLQQ)))
+ for (i=0; i<ulen; ++i) sprintf(esc+4*i, "\\x%02X", s[i]);
if (check & ENCODE_DIE_ON_ERR){
if (encode)
- Perl_croak(aTHX_ ERR_ENCODE_NOMAP, uv, "utf8");
+ Perl_croak(aTHX_ ERR_ENCODE_NOMAP, uv, (strict ? "UTF-8" : "utf8"));
else
- Perl_croak(aTHX_ ERR_DECODE_NOMAP, "utf8", uv);
+ Perl_croak(aTHX_ ERR_DECODE_STR_NOMAP, (strict ? "UTF-8" : "utf8"), esc);
}
if (check & ENCODE_WARN_ON_ERR){
if (encode)
Perl_warner(aTHX_ packWARN(WARN_UTF8),
- ERR_ENCODE_NOMAP, uv, "utf8");
+ ERR_ENCODE_NOMAP, uv, (strict ? "UTF-8" : "utf8"));
else
Perl_warner(aTHX_ packWARN(WARN_UTF8),
- ERR_DECODE_NOMAP, "utf8", uv);
+ ERR_DECODE_STR_NOMAP, (strict ? "UTF-8" : "utf8"), esc);
}
if (check & ENCODE_RETURN_ON_ERR) {
break;
}
if (check & (ENCODE_PERLQQ|ENCODE_HTMLCREF|ENCODE_XMLCREF)){
- SV* subchar =
- (fallback_cb != &PL_sv_undef)
- ? do_fallback_cb(aTHX_ uv, fallback_cb)
- : newSVpvf(check & ENCODE_PERLQQ
- ? (ulen == 1 ? "\\x%02" UVXf : "\\x{%04" UVXf "}")
- : check & ENCODE_HTMLCREF ? "&#%" UVuf ";"
- : "&#x%" UVxf ";", uv);
- if (encode){
- SvUTF8_off(subchar); /* make sure no decoded string gets in */
- }
- sv_catsv(dst, subchar);
+ STRLEN sublen;
+ char *substr;
+ SV* subchar;
+ if (encode) {
+ subchar =
+ (fallback_cb != &PL_sv_undef)
+ ? do_fallback_cb(aTHX_ uv, fallback_cb)
+ : newSVpvf(check & ENCODE_PERLQQ
+ ? (ulen == 1 ? "\\x%02" UVXf : "\\x{%04" UVXf "}")
+ : check & ENCODE_HTMLCREF ? "&#%" UVuf ";"
+ : "&#x%" UVxf ";", uv);
+ substr = SvPV(subchar, sublen);
+ if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */
+ SvREFCNT_dec(subchar);
+ croak("Wide character");
+ }
+ } else {
+ if (fallback_cb != &PL_sv_undef) {
+ /* in decode mode we have sequence of wrong bytes */
+ subchar = do_bytes_fallback_cb(aTHX_ s, ulen, fallback_cb);
+ } else {
+ char *ptr = esc;
+ /* ENCODE_PERLQQ is already stored in esc */
+ if (check & (ENCODE_HTMLCREF|ENCODE_XMLCREF))
+ for (i=0; i<ulen; ++i) ptr += sprintf(ptr, ((check & ENCODE_HTMLCREF) ? "&#%u;" : "&#x%02X;"), s[i]);
+ subchar = newSVpvn(esc, strlen(esc));
+ }
+ substr = SvPVutf8(subchar, sublen);
+ }
+ dlen += sublen - ulen;
+ SvCUR_set(dst, d-(U8 *)SvPVX(dst));
+ *SvEND(dst) = '\0';
+ sv_catpvn(dst, substr, sublen);
SvREFCNT_dec(subchar);
+ d = (U8 *) SvGROW(dst, dlen) + SvCUR(dst);
} else {
- sv_catpv(dst, FBCHAR_UTF8);
+ STRLEN fbcharlen = strlen(FBCHAR_UTF8);
+ dlen += fbcharlen - ulen;
+ if (SvLEN(dst) < dlen) {
+ SvCUR_set(dst, d-(U8 *)SvPVX(dst));
+ d = (U8 *) sv_grow(dst, dlen) + SvCUR(dst);
+ }
+ memcpy(d, FBCHAR_UTF8, fbcharlen);
+ d += fbcharlen;
}
s += ulen;
}
+ SvCUR_set(dst, d-(U8 *)SvPVX(dst));
*SvEND(dst) = '\0';
return s;
@@ -440,7 +673,7 @@ MODULE = Encode PACKAGE = Encode::utf8 PREFIX = Method_
PROTOTYPES: DISABLE
void
-Method_decode_xs(obj,src,check_sv = &PL_sv_no)
+Method_decode(obj,src,check_sv = &PL_sv_no)
SV * obj
SV * src
SV * check_sv
@@ -451,23 +684,32 @@ PREINIT:
SV *dst;
bool renewed = 0;
int check;
-CODE:
-{
- dSP; ENTER; SAVETMPS;
- if (src == &PL_sv_undef || SvROK(src)) src = sv_2mortal(newSV(0));
- s = (U8 *) SvPV(src, slen);
- e = (U8 *) SvEND(src);
- check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV(check_sv);
- /*
+ bool modify;
+ dSP;
+INIT:
+ SvGETMAGIC(src);
+ SvGETMAGIC(check_sv);
+ check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+ modify = (check && !(check & ENCODE_LEAVE_SRC));
+PPCODE:
+ if (!SvOK(src))
+ XSRETURN_UNDEF;
+ s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
+ if (SvUTF8(src))
+ utf8_safe_downgrade(aTHX_ &src, &s, &slen, modify);
+ e = s+slen;
+
+ /*
* PerlIO check -- we assume the object is of PerlIO if renewed
*/
+ ENTER; SAVETMPS;
PUSHMARK(sp);
XPUSHs(obj);
PUTBACK;
if (call_method("renewed",G_SCALAR) == 1) {
SPAGAIN;
renewed = (bool)POPi;
- PUTBACK;
+ PUTBACK;
#if 0
fprintf(stderr, "renewed == %d\n", renewed);
#endif
@@ -475,37 +717,25 @@ CODE:
FREETMPS; LEAVE;
/* end PerlIO check */
- if (SvUTF8(src)) {
- s = utf8_to_bytes(s,&slen);
- if (s) {
- SvCUR_set(src,slen);
- SvUTF8_off(src);
- e = s+slen;
- }
- else {
- croak("Cannot decode string with wide characters");
- }
- }
-
dst = sv_2mortal(newSV(slen>0?slen:1)); /* newSV() abhors 0 -- inaba */
s = process_utf8(aTHX_ dst, s, e, check_sv, 0, strict_utf8(aTHX_ obj), renewed);
/* Clear out translated part of source unless asked not to */
- if (check && !(check & ENCODE_LEAVE_SRC)){
+ if (modify) {
slen = e-s;
if (slen) {
sv_setpvn(src, (char*)s, slen);
}
SvCUR_set(src, slen);
+ SvSETMAGIC(src);
}
SvUTF8_on(dst);
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
ST(0) = dst;
XSRETURN(1);
-}
void
-Method_encode_xs(obj,src,check_sv = &PL_sv_no)
+Method_encode(obj,src,check_sv = &PL_sv_no)
SV * obj
SV * src
SV * check_sv
@@ -515,12 +745,17 @@ PREINIT:
U8 *e;
SV *dst;
int check;
-CODE:
-{
- check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV(check_sv);
- if (src == &PL_sv_undef || SvROK(src)) src = sv_2mortal(newSV(0));
- s = (U8 *) SvPV(src, slen);
- e = (U8 *) SvEND(src);
+ bool modify;
+INIT:
+ SvGETMAGIC(src);
+ SvGETMAGIC(check_sv);
+ check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+ modify = (check && !(check & ENCODE_LEAVE_SRC));
+PPCODE:
+ if (!SvOK(src))
+ XSRETURN_UNDEF;
+ s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
+ e = s+slen;
dst = sv_2mortal(newSV(slen>0?slen:1)); /* newSV() abhors 0 -- inaba */
if (SvUTF8(src)) {
/* Already encoded */
@@ -556,32 +791,32 @@ CODE:
}
/* Clear out translated part of source unless asked not to */
- if (check && !(check & ENCODE_LEAVE_SRC)){
+ if (modify) {
slen = e-s;
if (slen) {
sv_setpvn(src, (char*)s, slen);
}
SvCUR_set(src, slen);
+ SvSETMAGIC(src);
}
SvPOK_only(dst);
SvUTF8_off(dst);
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
ST(0) = dst;
XSRETURN(1);
-}
MODULE = Encode PACKAGE = Encode::XS PREFIX = Method_
-PROTOTYPES: ENABLE
+PROTOTYPES: DISABLE
-void
+SV *
Method_renew(obj)
SV * obj
CODE:
-{
PERL_UNUSED_VAR(obj);
- XSRETURN(1);
-}
+ RETVAL = newSVsv(obj);
+OUTPUT:
+ RETVAL
int
Method_renewed(obj)
@@ -592,17 +827,19 @@ CODE:
OUTPUT:
RETVAL
-void
+SV *
Method_name(obj)
SV * obj
+PREINIT:
+ encode_t *enc;
+INIT:
+ enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
CODE:
-{
- encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
- ST(0) = sv_2mortal(newSVpvn(enc->name[0],strlen(enc->name[0])));
- XSRETURN(1);
-}
+ RETVAL = newSVpvn(enc->name[0], strlen(enc->name[0]));
+OUTPUT:
+ RETVAL
-void
+bool
Method_cat_decode(obj, dst, src, off, term, check_sv = &PL_sv_no)
SV * obj
SV * dst
@@ -610,140 +847,142 @@ SV * src
SV * off
SV * term
SV * check_sv
-CODE:
-{
+PREINIT:
int check;
- SV *fallback_cb = &PL_sv_undef;
- encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
- STRLEN offset = (STRLEN)SvIV(off);
+ SV *fallback_cb;
+ bool modify;
+ encode_t *enc;
+ STRLEN offset;
int code = 0;
- if (SvUTF8(src)) {
- sv_utf8_downgrade(src, FALSE);
- }
- if (SvROK(check_sv)){
- fallback_cb = check_sv;
- check = ENCODE_PERLQQ|ENCODE_LEAVE_SRC; /* same as FB_PERLQQ */
- }else{
- check = SvIV(check_sv);
- }
- sv_catsv(dst, encode_method(aTHX_ enc, enc->t_utf8, src, check,
- &offset, term, &code, fallback_cb));
+ U8 *s;
+ STRLEN slen;
+ SV *tmp;
+INIT:
+ SvGETMAGIC(src);
+ SvGETMAGIC(check_sv);
+ check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+ fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
+ modify = (check && !(check & ENCODE_LEAVE_SRC));
+ enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
+ offset = (STRLEN)SvIV(off);
+CODE:
+ if (!SvOK(src))
+ XSRETURN_NO;
+ s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
+ if (SvUTF8(src))
+ utf8_safe_downgrade(aTHX_ &src, &s, &slen, modify);
+ tmp = encode_method(aTHX_ enc, enc->t_utf8, src, s, slen, check,
+ &offset, term, &code, fallback_cb);
+ sv_catsv(dst, tmp);
+ SvREFCNT_dec(tmp);
SvIV_set(off, (IV)offset);
- if (code == ENCODE_FOUND_TERM) {
- ST(0) = &PL_sv_yes;
- }else{
- ST(0) = &PL_sv_no;
- }
- XSRETURN(1);
-}
+ RETVAL = (code == ENCODE_FOUND_TERM);
+OUTPUT:
+ RETVAL
-void
+SV *
Method_decode(obj,src,check_sv = &PL_sv_no)
SV * obj
SV * src
SV * check_sv
-CODE:
-{
+PREINIT:
int check;
- SV *fallback_cb = &PL_sv_undef;
- encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
- if (SvUTF8(src)) {
- sv_utf8_downgrade(src, FALSE);
- }
- if (SvROK(check_sv)){
- fallback_cb = check_sv;
- check = ENCODE_PERLQQ|ENCODE_LEAVE_SRC; /* same as FB_PERLQQ */
- }else{
- check = SvIV(check_sv);
- }
- ST(0) = encode_method(aTHX_ enc, enc->t_utf8, src, check,
+ SV *fallback_cb;
+ bool modify;
+ encode_t *enc;
+ U8 *s;
+ STRLEN slen;
+INIT:
+ SvGETMAGIC(src);
+ SvGETMAGIC(check_sv);
+ check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+ fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
+ modify = (check && !(check & ENCODE_LEAVE_SRC));
+ enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
+CODE:
+ if (!SvOK(src))
+ XSRETURN_UNDEF;
+ s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
+ if (SvUTF8(src))
+ utf8_safe_downgrade(aTHX_ &src, &s, &slen, modify);
+ RETVAL = encode_method(aTHX_ enc, enc->t_utf8, src, s, slen, check,
NULL, Nullsv, NULL, fallback_cb);
- SvUTF8_on(ST(0));
- XSRETURN(1);
-}
+ SvUTF8_on(RETVAL);
+OUTPUT:
+ RETVAL
-void
+SV *
Method_encode(obj,src,check_sv = &PL_sv_no)
SV * obj
SV * src
SV * check_sv
-CODE:
-{
+PREINIT:
int check;
- SV *fallback_cb = &PL_sv_undef;
- encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
- sv_utf8_upgrade(src);
- if (SvROK(check_sv)){
- fallback_cb = check_sv;
- check = ENCODE_PERLQQ|ENCODE_LEAVE_SRC; /* same as FB_PERLQQ */
- }else{
- check = SvIV(check_sv);
- }
- ST(0) = encode_method(aTHX_ enc, enc->f_utf8, src, check,
+ SV *fallback_cb;
+ bool modify;
+ encode_t *enc;
+ U8 *s;
+ STRLEN slen;
+INIT:
+ SvGETMAGIC(src);
+ SvGETMAGIC(check_sv);
+ check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
+ fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
+ modify = (check && !(check & ENCODE_LEAVE_SRC));
+ enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
+CODE:
+ if (!SvOK(src))
+ XSRETURN_UNDEF;
+ s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
+ if (!SvUTF8(src))
+ utf8_safe_upgrade(aTHX_ &src, &s, &slen, modify);
+ RETVAL = encode_method(aTHX_ enc, enc->f_utf8, src, s, slen, check,
NULL, Nullsv, NULL, fallback_cb);
- XSRETURN(1);
-}
+OUTPUT:
+ RETVAL
-void
+bool
Method_needs_lines(obj)
SV * obj
CODE:
-{
- /* encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); */
PERL_UNUSED_VAR(obj);
- ST(0) = &PL_sv_no;
- XSRETURN(1);
-}
+ RETVAL = FALSE;
+OUTPUT:
+ RETVAL
-void
+bool
Method_perlio_ok(obj)
SV * obj
+PREINIT:
+ SV *sv;
CODE:
-{
- /* encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); */
- /* require_pv(PERLIO_FILENAME); */
-
PERL_UNUSED_VAR(obj);
- eval_pv("require PerlIO::encoding", 0);
- SPAGAIN;
-
- if (SvTRUE(get_sv("@", 0))) {
- ST(0) = &PL_sv_no;
- }else{
- ST(0) = &PL_sv_yes;
- }
- XSRETURN(1);
-}
+ sv = eval_pv("require PerlIO::encoding", 0);
+ RETVAL = SvTRUE(sv);
+OUTPUT:
+ RETVAL
-void
+SV *
Method_mime_name(obj)
SV * obj
+PREINIT:
+ encode_t *enc;
+INIT:
+ enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
CODE:
-{
- encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
- SV *retval;
- eval_pv("require Encode::MIME::Name", 0);
+ ENTER;
+ SAVETMPS;
+ PUSHMARK(sp);
+ XPUSHs(sv_2mortal(newSVpvn(enc->name[0], strlen(enc->name[0]))));
+ PUTBACK;
+ call_pv("Encode::MIME::Name::get_mime_name", G_SCALAR);
SPAGAIN;
-
- if (SvTRUE(get_sv("@", 0))) {
- ST(0) = &PL_sv_undef;
- }else{
- ENTER;
- SAVETMPS;
- PUSHMARK(sp);
- XPUSHs(sv_2mortal(newSVpvn(enc->name[0], strlen(enc->name[0]))));
- PUTBACK;
- call_pv("Encode::MIME::Name::get_mime_name", G_SCALAR);
- SPAGAIN;
- retval = newSVsv(POPs);
- PUTBACK;
- FREETMPS;
- LEAVE;
- /* enc->name[0] */
- ST(0) = retval;
- }
- XSRETURN(1);
-}
+ RETVAL = newSVsv(POPs);
+ PUTBACK;
+ FREETMPS;
+ LEAVE;
+OUTPUT:
+ RETVAL
MODULE = Encode PACKAGE = Encode
@@ -752,10 +991,11 @@ PROTOTYPES: ENABLE
I32
_bytes_to_utf8(sv, ...)
SV * sv
+PREINIT:
+ SV * encoding;
+INIT:
+ encoding = items == 2 ? ST(1) : Nullsv;
CODE:
-{
- SV * encoding = items == 2 ? ST(1) : Nullsv;
-
if (encoding)
RETVAL = _encoded_bytes_to_utf8(sv, SvPV_nolen(encoding));
else {
@@ -769,18 +1009,19 @@ CODE:
Safefree(converted); /* ... so free it */
RETVAL = len;
}
-}
OUTPUT:
RETVAL
I32
_utf8_to_bytes(sv, ...)
SV * sv
+PREINIT:
+ SV * to;
+ SV * check;
+INIT:
+ to = items > 1 ? ST(1) : Nullsv;
+ check = items > 2 ? ST(2) : Nullsv;
CODE:
-{
- SV * to = items > 1 ? ST(1) : Nullsv;
- SV * check = items > 2 ? ST(2) : Nullsv;
-
if (to) {
RETVAL = _encoded_utf8_to_bytes(sv, SvPV_nolen(to));
} else {
@@ -840,7 +1081,6 @@ CODE:
RETVAL = (utf8_to_bytes(s, &len) ? len : 0);
}
}
-}
OUTPUT:
RETVAL
@@ -848,39 +1088,31 @@ bool
is_utf8(sv, check = 0)
SV * sv
int check
+PREINIT:
+ char *str;
+ STRLEN len;
CODE:
-{
- if (SvGMAGICAL(sv)) /* it could be $1, for example */
- sv = newSVsv(sv); /* GMAGIG will be done */
+ SvGETMAGIC(sv); /* SvGETMAGIC() can modify SvOK flag */
+ str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */
RETVAL = SvUTF8(sv) ? TRUE : FALSE;
- if (RETVAL &&
- check &&
- !is_utf8_string((U8*)SvPVX(sv), SvCUR(sv)))
+ if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len)))
RETVAL = FALSE;
- if (sv != ST(0))
- SvREFCNT_dec(sv); /* it was a temp copy */
-}
OUTPUT:
RETVAL
-#ifndef SvIsCOW
-# define SvIsCOW(sv) (SvREADONLY(sv) && SvFAKE(sv))
-#endif
-
SV *
_utf8_on(sv)
SV * sv
CODE:
-{
- if (SvPOK(sv)) {
- SV *rsv = newSViv(SvUTF8(sv));
- RETVAL = rsv;
- if (SvIsCOW(sv)) sv_force_normal(sv);
- SvUTF8_on(sv);
+ SvGETMAGIC(sv);
+ if (!SvTAINTED(sv) && SvPOKp(sv)) {
+ if (SvTHINKFIRST(sv)) sv_force_normal(sv);
+ RETVAL = boolSV(SvUTF8(sv));
+ SvUTF8_on(sv);
+ SvSETMAGIC(sv);
} else {
- RETVAL = &PL_sv_undef;
+ RETVAL = &PL_sv_undef;
}
-}
OUTPUT:
RETVAL
@@ -888,125 +1120,41 @@ SV *
_utf8_off(sv)
SV * sv
CODE:
-{
- if (SvPOK(sv)) {
- SV *rsv = newSViv(SvUTF8(sv));
- RETVAL = rsv;
- if (SvIsCOW(sv)) sv_force_normal(sv);
- SvUTF8_off(sv);
+ SvGETMAGIC(sv);
+ if (!SvTAINTED(sv) && SvPOKp(sv)) {
+ if (SvTHINKFIRST(sv)) sv_force_normal(sv);
+ RETVAL = boolSV(SvUTF8(sv));
+ SvUTF8_off(sv);
+ SvSETMAGIC(sv);
} else {
- RETVAL = &PL_sv_undef;
+ RETVAL = &PL_sv_undef;
}
-}
OUTPUT:
RETVAL
-int
-DIE_ON_ERR()
-CODE:
- RETVAL = ENCODE_DIE_ON_ERR;
-OUTPUT:
- RETVAL
-
-int
-WARN_ON_ERR()
-CODE:
- RETVAL = ENCODE_WARN_ON_ERR;
-OUTPUT:
- RETVAL
-
-int
-LEAVE_SRC()
-CODE:
- RETVAL = ENCODE_LEAVE_SRC;
-OUTPUT:
- RETVAL
-
-int
-RETURN_ON_ERR()
-CODE:
- RETVAL = ENCODE_RETURN_ON_ERR;
-OUTPUT:
- RETVAL
-
-int
-PERLQQ()
-CODE:
- RETVAL = ENCODE_PERLQQ;
-OUTPUT:
- RETVAL
-
-int
-HTMLCREF()
-CODE:
- RETVAL = ENCODE_HTMLCREF;
-OUTPUT:
- RETVAL
-
-int
-XMLCREF()
-CODE:
- RETVAL = ENCODE_XMLCREF;
-OUTPUT:
- RETVAL
-
-int
-STOP_AT_PARTIAL()
-CODE:
- RETVAL = ENCODE_STOP_AT_PARTIAL;
-OUTPUT:
- RETVAL
-
-int
-FB_DEFAULT()
-CODE:
- RETVAL = ENCODE_FB_DEFAULT;
-OUTPUT:
- RETVAL
-
-int
-FB_CROAK()
-CODE:
- RETVAL = ENCODE_FB_CROAK;
-OUTPUT:
- RETVAL
-
-int
-FB_QUIET()
-CODE:
- RETVAL = ENCODE_FB_QUIET;
-OUTPUT:
- RETVAL
-
-int
-FB_WARN()
-CODE:
- RETVAL = ENCODE_FB_WARN;
-OUTPUT:
- RETVAL
-
-int
-FB_PERLQQ()
-CODE:
- RETVAL = ENCODE_FB_PERLQQ;
-OUTPUT:
- RETVAL
-
-int
-FB_HTMLCREF()
-CODE:
- RETVAL = ENCODE_FB_HTMLCREF;
-OUTPUT:
- RETVAL
-
-int
-FB_XMLCREF()
+void
+onBOOT()
CODE:
- RETVAL = ENCODE_FB_XMLCREF;
-OUTPUT:
- RETVAL
+{
+#include "def_t.exh"
+}
BOOT:
{
-#include "def_t.exh"
+ HV *stash = gv_stashpvn("Encode", strlen("Encode"), GV_ADD);
+ newCONSTSUB(stash, "DIE_ON_ERR", newSViv(ENCODE_DIE_ON_ERR));
+ newCONSTSUB(stash, "WARN_ON_ERR", newSViv(ENCODE_WARN_ON_ERR));
+ newCONSTSUB(stash, "RETURN_ON_ERR", newSViv(ENCODE_RETURN_ON_ERR));
+ newCONSTSUB(stash, "LEAVE_SRC", newSViv(ENCODE_LEAVE_SRC));
+ newCONSTSUB(stash, "PERLQQ", newSViv(ENCODE_PERLQQ));
+ newCONSTSUB(stash, "HTMLCREF", newSViv(ENCODE_HTMLCREF));
+ newCONSTSUB(stash, "XMLCREF", newSViv(ENCODE_XMLCREF));
+ newCONSTSUB(stash, "STOP_AT_PARTIAL", newSViv(ENCODE_STOP_AT_PARTIAL));
+ newCONSTSUB(stash, "FB_DEFAULT", newSViv(ENCODE_FB_DEFAULT));
+ newCONSTSUB(stash, "FB_CROAK", newSViv(ENCODE_FB_CROAK));
+ newCONSTSUB(stash, "FB_QUIET", newSViv(ENCODE_FB_QUIET));
+ newCONSTSUB(stash, "FB_WARN", newSViv(ENCODE_FB_WARN));
+ newCONSTSUB(stash, "FB_PERLQQ", newSViv(ENCODE_FB_PERLQQ));
+ newCONSTSUB(stash, "FB_HTMLCREF", newSViv(ENCODE_FB_HTMLCREF));
+ newCONSTSUB(stash, "FB_XMLCREF", newSViv(ENCODE_FB_XMLCREF));
}
diff --git a/gnu/usr.bin/perl/cpan/Encode/Makefile.PL b/gnu/usr.bin/perl/cpan/Encode/Makefile.PL
index e0372ca2832..8c20d20226f 100644
--- a/gnu/usr.bin/perl/cpan/Encode/Makefile.PL
+++ b/gnu/usr.bin/perl/cpan/Encode/Makefile.PL
@@ -1,16 +1,30 @@
#
-# $Id: Makefile.PL,v 2.16 2015/09/24 02:19:21 dankogai Exp $
+# $Id: Makefile.PL,v 2.22 2017/10/06 22:21:53 dankogai Exp $
#
use 5.007003;
use strict;
use warnings;
+use utf8;
use ExtUtils::MakeMaker;
use File::Spec;
+use Config;
# Just for sure :)
my %ARGV = map { my @r = split /=/,$_; defined $r[1] or $r[1]=1; @r } @ARGV;
$ARGV{DEBUG} and warn "$_ => $ARGV{$_}\n" for sort keys %ARGV;
$ENV{PERL_CORE} ||= $ARGV{PERL_CORE} if $ARGV{PERL_CORE};
+# similar strictness as in core
+my $ccflags = $Config{ccflags};
+if (!$ENV{PERL_CORE}) {
+ if (my $gccver = $Config{gccversion}) {
+ $gccver =~ s/\.//g; $gccver =~ s/ .*//;
+ $gccver .= "0" while length $gccver < 3;
+ $gccver = 0+$gccver;
+ $ccflags .= ' -Werror=declaration-after-statement' if $gccver > 412;
+ $ccflags .= ' -Wpointer-sign' if !$Config{d_cplusplus} and $gccver > 400;
+ $ccflags .= ' -fpermissive' if $Config{d_cplusplus};
+ }
+}
my %tables =
(
@@ -39,17 +53,24 @@ WriteMakefile(
NAME => "Encode",
EXE_FILES => \@exe_files,
VERSION_FROM => 'Encode.pm',
+ ABSTRACT_FROM=> 'Encode.pm',
+ AUTHOR => 'Dan Kogai <dankogai@dan.co.jp>',
OBJECT => '$(O_FILES)',
'dist' => {
COMPRESS => 'gzip -9f',
SUFFIX => 'gz',
DIST_DEFAULT => 'all tardist',
},
+ CCFLAGS => $ccflags,
INC => '-I' . File::Spec->catfile( '.', 'Encode' ),
LICENSE => 'perl',
PREREQ_PM => {
Exporter => '5.57', # use Exporter 'import';
parent => '0.221', # version bundled with 5.10.1
+ Storable => '0', # bundled with Perl 5.7.3
+ },
+ TEST_REQUIRES => {
+ 'Test::More' => '0.81_01',
},
PMLIBDIRS => \@pmlibdirs,
INSTALLDIRS => ($] < 5.011 ? 'perl' : 'site'),
@@ -57,6 +78,91 @@ WriteMakefile(
resources => {
repository => 'https://github.com/dankogai/p5-encode',
},
+ x_contributors => [
+ 'Alex Davies <alex.davies@talktalk.net>',
+ 'Alex Kapranoff <alex@kapranoff.ru>',
+ 'Alex Vandiver <alex@chmrr.net>',
+ 'Andreas J. Koenig <andreas.koenig@anima.de>',
+ 'Andrew Pennebaker <andrew.pennebaker@networkedinsights.com>',
+ 'Andy Grundman <andyg@activestate.com>',
+ 'Anton Tagunov <tagunov@motor.ru>',
+ 'Autrijus Tang <autrijus@autrijus.org>',
+ 'Benjamin Goldberg <goldbb2@earthlink.net>',
+ 'Bjoern Hoehrmann <derhoermi@gmx.net>',
+ 'Bjoern Jacke <debianbugs@j3e.de>',
+ 'bulk88 <bulk88@hotmail.com>',
+ 'Craig A. Berry <craigberry@mac.com>',
+ 'Curtis Jewell <csjewell@cpan.org>',
+ 'Dan Kogai <dankogai@dan.co.jp>',
+ 'Dave Evans <dave@rudolf.org.uk>',
+ 'David Golden <dagolden@cpan.org>',
+ 'David Steinbrunner <dsteinbrunner@pobox.com>',
+ 'Deng Liu <dengliu@ntu.edu.tw>',
+ 'Dominic Dunlop <domo@computer.org>',
+ 'drry',
+ 'Elizabeth Mattijsen <liz@dijkmat.nl>',
+ 'Flavio Poletti <flavio@polettix.it>',
+ 'Gerrit P. Haase <gp@familiehaase.de>',
+ 'Gisle Aas <gisle@ActiveState.com>',
+ 'Graham Barr <gbarr@pobox.com>',
+ 'Graham Knop <haarg@haarg.org>',
+ 'Graham Ollis <perl@wdlabs.com>',
+ 'Gurusamy Sarathy <gsar@activestate.com>',
+ 'H.Merijn Brand <h.m.brand@xs4all.nl>',
+ 'Hugo van der Sanden <hv@crypt.org>',
+ 'chansen <chansen@cpan.org>',
+ 'Chris Nandor <pudge@pobox.com>',
+ 'Inaba Hiroto <inaba@st.rim.or.jp>',
+ 'Jarkko Hietaniemi <jhi@iki.fi>',
+ 'Jesse Vincent <jesse@fsck.com>',
+ 'Jungshik Shin <jshin@mailaps.org>',
+ 'Karen Etheridge <ether@cpan.org>',
+ 'Karl Williamson <khw@cpan.org>',
+ 'Kenichi Ishigaki <ishigaki@cpan.org>',
+ 'KONNO Hiroharu <hiroharu.konno@bowneglobal.co.jp>',
+ 'Laszlo Molnar <ml1050@freemail.hu>',
+ 'Makamaka <makamaka@donzoko.net>',
+ 'Mark-Jason Dominus <mjd@plover.com>',
+ 'Masahiro Iuchi <masahiro.iuchi@gmail.com>',
+ 'MATSUNO Tokuhiro <tokuhirom+cpan@gmail.com>',
+ 'Mattia Barbon <mbarbon@dsi.unive.it>',
+ 'Michael G Schwern <schwern@pobox.com>',
+ 'Michael LaGrasta <michael@lagrasta.com>',
+ 'Miron Cuperman <miron@hyper.to>',
+ 'Moritz Lenz <moritz@faui2k3.org>',
+ 'MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>',
+ 'Nick Ing-Simmons <nick@ing-simmons.net>',
+ 'Nicholas Clark <nick@ccl4.org>',
+ 'Olivier MenguĂŠ <dolmen@cpan.org>',
+ 'otsune',
+ 'Pali <pali@cpan.org>',
+ 'Paul Marquess <paul_marquess@yahoo.co.uk>',
+ 'Peter Prymmer <pvhp@best.com>',
+ 'Peter Rabbitson <ribasushi@cpan.org>',
+ 'Philip Newton <pne@cpan.org>',
+ 'Piotr Fusik <pfusik@op.pl>',
+ 'Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>',
+ 'Randy Stauner <randy@magnificent-tears.com>',
+ 'Reini Urban <rurban@cpan.org>',
+ 'Robin Barker <rmb1@cise.npl.co.uk>',
+ 'SADAHIRO Tomoyuki <SADAHIRO@cpan.org>',
+ 'Simon Cozens <simon@netthink.co.uk>',
+ 'Slaven Rezic <SREZIC@cpan.org>',
+ 'Spider Boardman <spider@web.zk3.dec.com>',
+ 'Steve Hay <steve.m.hay@googlemail.com>',
+ 'Steve Peters <steve@fisharerojo.org>',
+ 'SUGAWARA Hajime <sugawara@hdt.co.jp>',
+ 'SUZUKI Norio <ZAP00217@nifty.com>',
+ 'szr8 <blz.marcel@gmail.com>',
+ 'Tatsuhiko Miyagawa <miyagawa@bulknews.net>',
+ 'Tels <perl_dummy@bloodgate.com>',
+ 'Tony Cook <tony@develop-help.com>',
+ 'Vadim Konovalov <vkonovalov@peterstar.ru>',
+ 'Victor <victor@vsespb.ru>',
+ 'Ville Skyttä <ville.skytta@iki.fi>',
+ 'Vincent van Dam <vvandam@sandvine.com>',
+ 'Yitzchak Scott-Thoennes <sthoenna@efn.org>',
+ ],
},
);
diff --git a/gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.pm b/gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.pm
index 7dec3e38159..2a8b477784c 100644
--- a/gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.pm
@@ -2,9 +2,8 @@ package Encode::Unicode;
use strict;
use warnings;
-no warnings 'redefine';
-our $VERSION = do { my @r = ( q$Revision: 2.15 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.17 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use XSLoader;
XSLoader::load( __PACKAGE__, $VERSION );
@@ -13,7 +12,7 @@ XSLoader::load( __PACKAGE__, $VERSION );
# Object Generator 8 transcoders all at once!
#
-require Encode;
+use Encode ();
our %BOM_Unknown = map { $_ => 1 } qw(UTF-16 UTF-32);
@@ -34,12 +33,13 @@ for my $name (
$endian = ( $3 eq 'BE' ) ? 'n' : ( $3 eq 'LE' ) ? 'v' : '';
$size == 4 and $endian = uc($endian);
- $Encode::Encoding{$name} = bless {
+ my $obj = bless {
Name => $name,
size => $size,
endian => $endian,
ucs2 => $ucs2,
} => __PACKAGE__;
+ Encode::define_encoding($obj, $name);
}
use parent qw(Encode::Encoding);
@@ -52,12 +52,6 @@ sub renew {
return $clone;
}
-# There used to be a perl implementation of (en|de)code but with
-# XS version is ripe, perl version is zapped for optimal speed
-
-*decode = \&decode_xs;
-*encode = \&encode_xs;
-
1;
__END__
diff --git a/gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.xs b/gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.xs
index 3bad2adae03..b459786d16a 100644
--- a/gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.xs
+++ b/gnu/usr.bin/perl/cpan/Encode/Unicode/Unicode.xs
@@ -1,5 +1,5 @@
/*
- $Id: Unicode.xs,v 2.14 2016/01/22 06:33:07 dankogai Exp $
+ $Id: Unicode.xs,v 2.17 2018/02/08 00:26:15 dankogai Exp $
*/
#define PERL_NO_GET_CONTEXT
@@ -125,36 +125,62 @@ PROTOTYPES: DISABLE
#define attr(k, l) (hv_exists((HV *)SvRV(obj),k,l) ? \
*hv_fetch((HV *)SvRV(obj),k,l,0) : &PL_sv_undef)
-#define attr_true(k, l) (hv_exists((HV *)SvRV(obj),k,l) ? \
- SvTRUE(*hv_fetch((HV *)SvRV(obj),k,l,0)) : FALSE)
void
-decode_xs(obj, str, check = 0)
+decode(obj, str, check = 0)
SV * obj
SV * str
IV check
CODE:
{
- U8 endian = *((U8 *)SvPV_nolen(attr("endian", 6)));
- int size = SvIV(attr("size", 4));
+ SV *sve = attr("endian", 6);
+ U8 endian = *((U8 *)SvPV_nolen(sve));
+ SV *svs = attr("size", 4);
+ int size = SvIV(svs);
int ucs2 = -1; /* only needed in the event of surrogate pairs */
SV *result = newSVpvn("",0);
STRLEN usize = (size > 0 ? size : 1); /* protect against rogue size<=0 */
STRLEN ulen;
STRLEN resultbuflen;
U8 *resultbuf;
- U8 *s = (U8 *)SvPVbyte(str,ulen);
- U8 *e = (U8 *)SvEND(str);
+ U8 *s;
+ U8 *e;
+ bool modify = (check && !(check & ENCODE_LEAVE_SRC));
+ bool temp_result;
+
+ SvGETMAGIC(str);
+ if (!SvOK(str))
+ XSRETURN_UNDEF;
+ s = modify ? (U8 *)SvPV_force_nomg(str, ulen) : (U8 *)SvPV_nomg(str, ulen);
+ if (SvUTF8(str)) {
+ if (!modify) {
+ SV *tmp = sv_2mortal(newSVpvn((char *)s, ulen));
+ SvUTF8_on(tmp);
+ if (SvTAINTED(str))
+ SvTAINTED_on(tmp);
+ str = tmp;
+ s = (U8 *)SvPVX(str);
+ }
+ if (ulen) {
+ if (!utf8_to_bytes(s, &ulen))
+ croak("Wide character");
+ SvCUR_set(str, ulen);
+ }
+ SvUTF8_off(str);
+ }
+ e = s+ulen;
+
/* Optimise for the common case of being called from PerlIOEncode_fill()
with a standard length buffer. In this case the result SV's buffer is
only used temporarily, so we can afford to allocate the maximum needed
and not care about unused space. */
- const bool temp_result = (ulen == PERLIO_BUFSIZ);
+ temp_result = (ulen == PERLIO_BUFSIZ);
ST(0) = sv_2mortal(result);
SvUTF8_on(result);
if (!endian && s+size <= e) {
+ SV *sv;
UV bom;
endian = (size == 4) ? 'N' : 'n';
bom = enc_unpack(aTHX_ &s,e,size,endian);
@@ -183,8 +209,9 @@ CODE:
}
#if 1
/* Update endian for next sequence */
- if (attr_true("renewed", 7)) {
- hv_store((HV *)SvRV(obj),"endian",6,newSVpv((char *)&endian,1),0);
+ sv = attr("renewed", 7);
+ if (SvTRUE(sv)) {
+ (void)hv_store((HV *)SvRV(obj),"endian",6,newSVpv((char *)&endian,1),0);
}
#endif
}
@@ -202,11 +229,12 @@ CODE:
U8 *d;
if (issurrogate(ord)) {
if (ucs2 == -1) {
- ucs2 = attr_true("ucs2", 4);
+ SV *sv = attr("ucs2", 4);
+ ucs2 = SvTRUE(sv);
}
if (ucs2 || size == 4) {
if (check) {
- croak("%"SVf":no surrogates allowed %"UVxf,
+ croak("%" SVf ":no surrogates allowed %" UVxf,
*hv_fetch((HV *)SvRV(obj),"Name",4,0),
ord);
}
@@ -216,7 +244,7 @@ CODE:
UV lo;
if (!isHiSurrogate(ord)) {
if (check) {
- croak("%"SVf":Malformed HI surrogate %"UVxf,
+ croak("%" SVf ":Malformed HI surrogate %" UVxf,
*hv_fetch((HV *)SvRV(obj),"Name",4,0),
ord);
}
@@ -231,7 +259,7 @@ CODE:
break;
}
else {
- croak("%"SVf":Malformed HI surrogate %"UVxf,
+ croak("%" SVf ":Malformed HI surrogate %" UVxf,
*hv_fetch((HV *)SvRV(obj),"Name",4,0),
ord);
}
@@ -244,7 +272,7 @@ CODE:
lo = enc_unpack(aTHX_ &s,e,size,endian);
if (!isLoSurrogate(lo)) {
if (check) {
- croak("%"SVf":Malformed LO surrogate %"UVxf,
+ croak("%" SVf ":Malformed LO surrogate %" UVxf,
*hv_fetch((HV *)SvRV(obj),"Name",4,0),
ord);
}
@@ -262,7 +290,7 @@ CODE:
if ((ord & 0xFFFE) == 0xFFFE || (ord >= 0xFDD0 && ord <= 0xFDEF)) {
if (check) {
- croak("%"SVf":Unicode character %"UVxf" is illegal",
+ croak("%" SVf ":Unicode character %" UVxf " is illegal",
*hv_fetch((HV *)SvRV(obj),"Name",4,0),
ord);
} else {
@@ -287,7 +315,7 @@ CODE:
resultbuflen = SvLEN(result);
}
- d = uvuni_to_utf8_flags(resultbuf+SvCUR(result), ord,
+ d = uvchr_to_utf8_flags(resultbuf+SvCUR(result), ord,
UNICODE_WARN_ILLEGAL_INTERCHANGE);
SvCUR_set(result, d - (U8 *)SvPVX(result));
}
@@ -295,7 +323,7 @@ CODE:
if (s < e) {
/* unlikely to happen because it's fixed-length -- dankogai */
if (check & ENCODE_WARN_ON_ERR) {
- Perl_warner(aTHX_ packWARN(WARN_UTF8),"%"SVf":Partial character",
+ Perl_warner(aTHX_ packWARN(WARN_UTF8),"%" SVf ":Partial character",
*hv_fetch((HV *)SvRV(obj),"Name",4,0));
}
}
@@ -308,6 +336,7 @@ CODE:
SvCUR_set(str,0);
}
*SvEND(str) = '\0';
+ SvSETMAGIC(str);
}
if (!temp_result) shrink_buffer(result);
@@ -316,25 +345,46 @@ CODE:
}
void
-encode_xs(obj, utf8, check = 0)
+encode(obj, utf8, check = 0)
SV * obj
SV * utf8
IV check
CODE:
{
- U8 endian = *((U8 *)SvPV_nolen(attr("endian", 6)));
- const int size = SvIV(attr("size", 4));
+ SV *sve = attr("endian", 6);
+ U8 endian = *((U8 *)SvPV_nolen(sve));
+ SV *svs = attr("size", 4);
+ const int size = SvIV(svs);
int ucs2 = -1; /* only needed if there is invalid_ucs2 input */
const STRLEN usize = (size > 0 ? size : 1);
SV *result = newSVpvn("", 0);
STRLEN ulen;
- U8 *s = (U8 *) SvPVutf8(utf8, ulen);
- const U8 *e = (U8 *) SvEND(utf8);
+ U8 *s;
+ U8 *e;
+ bool modify = (check && !(check & ENCODE_LEAVE_SRC));
+ bool temp_result;
+
+ SvGETMAGIC(utf8);
+ if (!SvOK(utf8))
+ XSRETURN_UNDEF;
+ s = modify ? (U8 *)SvPV_force_nomg(utf8, ulen) : (U8 *)SvPV_nomg(utf8, ulen);
+ if (!SvUTF8(utf8)) {
+ if (!modify) {
+ SV *tmp = sv_2mortal(newSVpvn((char *)s, ulen));
+ if (SvTAINTED(utf8))
+ SvTAINTED_on(tmp);
+ utf8 = tmp;
+ }
+ sv_utf8_upgrade_nomg(utf8);
+ s = (U8 *)SvPV_nomg(utf8, ulen);
+ }
+ e = s+ulen;
+
/* Optimise for the common case of being called from PerlIOEncode_flush()
with a standard length buffer. In this case the result SV's buffer is
only used temporarily, so we can afford to allocate the maximum needed
and not care about unused space. */
- const bool temp_result = (ulen == PERLIO_BUFSIZ);
+ temp_result = (ulen == PERLIO_BUFSIZ);
ST(0) = sv_2mortal(result);
@@ -344,18 +394,20 @@ CODE:
SvGROW(result, ((ulen+1) * usize));
if (!endian) {
+ SV *sv;
endian = (size == 4) ? 'N' : 'n';
enc_pack(aTHX_ result,size,endian,BOM_BE);
#if 1
/* Update endian for next sequence */
- if (attr_true("renewed", 7)) {
- hv_store((HV *)SvRV(obj),"endian",6,newSVpv((char *)&endian,1),0);
+ sv = attr("renewed", 7);
+ if (SvTRUE(sv)) {
+ (void)hv_store((HV *)SvRV(obj),"endian",6,newSVpv((char *)&endian,1),0);
}
#endif
}
while (s < e && s+UTF8SKIP(s) <= e) {
STRLEN len;
- UV ord = utf8n_to_uvuni(s, e-s, &len, (UTF8_DISALLOW_SURROGATE
+ UV ord = utf8n_to_uvchr(s, e-s, &len, (UTF8_DISALLOW_SURROGATE
|UTF8_WARN_SURROGATE
|UTF8_DISALLOW_FE_FF
|UTF8_WARN_FE_FF
@@ -364,11 +416,12 @@ CODE:
if (size != 4 && invalid_ucs2(ord)) {
if (!issurrogate(ord)) {
if (ucs2 == -1) {
- ucs2 = attr_true("ucs2", 4);
+ SV *sv = attr("ucs2", 4);
+ ucs2 = SvTRUE(sv);
}
if (ucs2 || ord > 0x10FFFF) {
if (check) {
- croak("%"SVf":code point \"\\x{%"UVxf"}\" too high",
+ croak("%" SVf ":code point \"\\x{%" UVxf "}\" too high",
*hv_fetch((HV *)SvRV(obj),"Name",4,0),ord);
}
enc_pack(aTHX_ result,size,endian,FBCHAR);
@@ -394,7 +447,7 @@ CODE:
But this is critical when you choose to LEAVE_SRC
in which case we die */
if (check & (ENCODE_DIE_ON_ERR|ENCODE_LEAVE_SRC)) {
- Perl_croak(aTHX_ "%"SVf":partial character is not allowed "
+ Perl_croak(aTHX_ "%" SVf ":partial character is not allowed "
"when CHECK = 0x%" UVuf,
*hv_fetch((HV *)SvRV(obj),"Name",4,0), check);
}
@@ -408,12 +461,11 @@ CODE:
SvCUR_set(utf8,0);
}
*SvEND(utf8) = '\0';
+ SvSETMAGIC(utf8);
}
if (!temp_result) shrink_buffer(result);
if (SvTAINTED(utf8)) SvTAINTED_on(result); /* propagate taintedness */
- SvSETMAGIC(utf8);
-
XSRETURN(1);
}
diff --git a/gnu/usr.bin/perl/cpan/Encode/bin/enc2xs b/gnu/usr.bin/perl/cpan/Encode/bin/enc2xs
index f8d9f52f2a2..619b64b7573 100644
--- a/gnu/usr.bin/perl/cpan/Encode/bin/enc2xs
+++ b/gnu/usr.bin/perl/cpan/Encode/bin/enc2xs
@@ -11,7 +11,7 @@ use warnings;
use Getopt::Std;
use Config;
my @orig_ARGV = @ARGV;
-our $VERSION = do { my @r = (q$Revision: 2.18 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+our $VERSION = do { my @r = (q$Revision: 2.21 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
# These may get re-ordered.
# RAW is a do_now as inserted by &enter
@@ -123,7 +123,10 @@ my %encode_types = (U => \&encode_U,
);
# Win32 does not expand globs on command line
-eval "\@ARGV = map(glob(\$_),\@ARGV)" if ($^O eq 'MSWin32');
+if ($^O eq 'MSWin32' and !$ENV{PERL_CORE}) {
+ eval "\@ARGV = map(glob(\$_),\@ARGV)";
+ @ARGV = @orig_ARGV unless @ARGV;
+}
my %opt;
# I think these are:
@@ -134,6 +137,8 @@ my %opt;
# -o <output> to specify the output file name (else it's the first arg)
# -f <inlist> to give a file with a list of input files (else use the args)
# -n <name> to name the encoding (else use the basename of the input file.
+#Getopt::Long::Configure("bundling");
+#GetOptions(\%opt, qw(C M=s S Q q O o=s f=s n=s v));
getopts('CM:SQqOo:f:n:v',\%opt);
$opt{M} and make_makefile_pl($opt{M}, @ARGV);
@@ -196,9 +201,9 @@ sub compiler_info {
# This really should go first, else the die here causes empty (non-erroneous)
# output files to be written.
my @encfiles;
-if (exists $opt{'f'}) {
+if (exists $opt{f}) {
# -F is followed by name of file containing list of filenames
- my $flist = $opt{'f'};
+ my $flist = $opt{f};
open(FLIST,$flist) || die "Cannot open $flist:$!";
chomp(@encfiles = <FLIST>);
close(FLIST);
@@ -206,9 +211,15 @@ if (exists $opt{'f'}) {
@encfiles = @ARGV;
}
-my $cname = (exists $opt{'o'}) ? $opt{'o'} : shift(@ARGV);
+my $cname = $opt{o} ? $opt{o} : shift(@ARGV);
+unless ($cname) { #debuging a win32 nmake error-only. works via cmdline
+ print "\nARGV:";
+ print "$_ " for @ARGV;
+ print "\nopt:";
+ print " $_ => ",defined $opt{$_}?$opt{$_}:"undef","\n" for keys %opt;
+}
chmod(0666,$cname) if -f $cname && !-w $cname;
-open(C,">$cname") || die "Cannot open $cname:$!";
+open(C,">", $cname) || die "Cannot open $cname:$!";
my $dname = $cname;
my $hname = $cname;
@@ -220,10 +231,10 @@ if ($cname =~ /\.(c|xs)$/i) # VMS may have upcased filenames with DECC$ARGV_PARS
$doC = 1;
$dname =~ s/(\.[^\.]*)?$/.exh/;
chmod(0666,$dname) if -f $cname && !-w $dname;
- open(D,">$dname") || die "Cannot open $dname:$!";
+ open(D,">", $dname) || die "Cannot open $dname:$!";
$hname =~ s/(\.[^\.]*)?$/.h/;
chmod(0666,$hname) if -f $cname && !-w $hname;
- open(H,">$hname") || die "Cannot open $hname:$!";
+ open(H,">", $hname) || die "Cannot open $hname:$!";
foreach my $fh (\*C,\*D,\*H)
{
@@ -469,7 +480,9 @@ sub compile_ucm
$erep = $attr{'subchar'};
$erep =~ s/^\s+//; $erep =~ s/\s+$//;
}
- print "Reading $name ($cs)\n";
+ print "Reading $name ($cs)\n"
+ unless defined $ENV{MAKEFLAGS}
+ and $ENV{MAKEFLAGS} =~ /\b(s|silent|quiet)\b/;
my $nfb = 0;
my $hfb = 0;
while (<$fh>)
@@ -755,9 +768,17 @@ sub addstrings
if ($a->{'Forward'})
{
my ($cpp, $static, $sized) = compiler_info(1);
- my $var = $static ? 'static const' : 'extern';
my $count = $sized ? scalar(@{$a->{'Entries'}}) : '';
- print $fh "$var encpage_t $name\[$count];\n";
+ if ($static) {
+ # we cannot ask Config for d_plusplus since we can override CC=g++-6 on the cmdline
+ print $fh "#ifdef __cplusplus\n"; # -fpermissive since g++-6
+ print $fh "extern encpage_t $name\[$count];\n";
+ print $fh "#else\n";
+ print $fh "static const encpage_t $name\[$count];\n";
+ print $fh "#endif\n";
+ } else {
+ print $fh "extern encpage_t $name\[$count];\n";
+ }
}
$a->{'DoneStrings'} = 1;
foreach my $b (@{$a->{'Entries'}})
@@ -848,9 +869,16 @@ sub outtable
outtable($fh,$t,$bigname) unless $t->{'Done'};
}
my ($cpp, $static) = compiler_info(0);
- my $var = $static ? 'static const ' : '';
- print $fh "\n${var}encpage_t $name\[",
- scalar(@{$a->{'Entries'}}), "] = {\n";
+ my $count = scalar(@{$a->{'Entries'}});
+ if ($static) {
+ print $fh "#ifdef __cplusplus\n"; # -fpermissive since g++-6
+ print $fh "encpage_t $name\[$count] = {\n";
+ print $fh "#else\n";
+ print $fh "static const encpage_t $name\[$count] = {\n";
+ print $fh "#endif\n";
+ } else {
+ print $fh "\nencpage_t $name\[$count] = {\n";
+ }
foreach my $b (@{$a->{'Entries'}})
{
my ($sc,$ec,$out,$t,$end,$l,$fb) = @$b;
@@ -1010,8 +1038,7 @@ sub find_e2x{
sub make_makefile_pl
{
- eval { require Encode; };
- $@ and die "You need to install Encode to use enc2xs -M\nerror: $@\n";
+ eval { require Encode } or die "You need to install Encode to use enc2xs -M\nerror: $@\n";
# our used for variable expansion
$_Enc2xs = $0;
$_Version = $VERSION;
@@ -1035,8 +1062,7 @@ use vars qw(
);
sub make_configlocal_pm {
- eval { require Encode; };
- $@ and die "Unable to require Encode: $@\n";
+ eval { require Encode } or die "Unable to require Encode: $@\n";
eval { require File::Spec; };
# our used for variable expantion
@@ -1056,8 +1082,7 @@ sub make_configlocal_pm {
$mod =~ s/.*\bEncode\b/Encode/o;
$mod =~ s/\.pm\z//o;
$mod =~ s,/,::,og;
- eval qq{ require $mod; };
- return if $@;
+ eval qq{ require $mod; } or return;
warn qq{ require $mod;\n};
for my $enc ( Encode->encodings() ) {
no warnings;
@@ -1091,8 +1116,7 @@ sub _mkversion{
}
sub _print_expand{
- eval { require File::Basename; };
- $@ and die "File::Basename needed. Are you on miniperl?;\nerror: $@\n";
+ eval { require File::Basename } or die "File::Basename needed. Are you on miniperl?;\nerror: $@\n";
File::Basename->import();
my ($src, $dst, $clobber) = @_;
if (!$clobber and -e $dst){
@@ -1104,7 +1128,7 @@ sub _print_expand{
if ((my $d = dirname($dst)) ne '.'){
-d $d or mkdir $d, 0755 or die "mkdir $d : $!";
}
- open my $out, ">$dst" or die "$!";
+ open my $out, ">", $dst or die "$!";
my $asis = 0;
while (<$in>){
if (/^#### END_OF_HEADER/){
diff --git a/gnu/usr.bin/perl/cpan/Encode/bin/piconv b/gnu/usr.bin/perl/cpan/Encode/bin/piconv
index 60b2a59b78b..2218d16f396 100644
--- a/gnu/usr.bin/perl/cpan/Encode/bin/piconv
+++ b/gnu/usr.bin/perl/cpan/Encode/bin/piconv
@@ -1,5 +1,5 @@
#!./perl
-# $Id: piconv,v 2.7 2014/05/31 09:48:48 dankogai Exp $
+# $Id: piconv,v 2.8 2016/08/04 03:15:58 dankogai Exp $
#
BEGIN { pop @INC if $INC[-1] eq '.' }
use 5.8.0;
diff --git a/gnu/usr.bin/perl/cpan/Encode/bin/ucmlint b/gnu/usr.bin/perl/cpan/Encode/bin/ucmlint
index 25e0d67ef60..a31a7a28f66 100644
--- a/gnu/usr.bin/perl/cpan/Encode/bin/ucmlint
+++ b/gnu/usr.bin/perl/cpan/Encode/bin/ucmlint
@@ -1,19 +1,18 @@
#!/usr/local/bin/perl
#
-# $Id: ucmlint,v 2.2 2008/03/12 09:51:11 dankogai Exp $
+# $Id: ucmlint,v 2.4 2017/06/10 17:23:50 dankogai Exp $
#
BEGIN { pop @INC if $INC[-1] eq '.' }
use strict;
-our $VERSION = do { my @r = (q$Revision: 2.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+our $VERSION = do { my @r = (q$Revision: 2.4 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Getopt::Std;
our %Opt;
getopts("Dehfv", \%Opt);
if ($Opt{e}){
- eval{ require Encode; };
- $@ and die "can't load Encode : $@";
+ eval { require Encode } or die "can't load Encode : $@";
}
$Opt{h} and help();
diff --git a/gnu/usr.bin/perl/cpan/Encode/encengine.c b/gnu/usr.bin/perl/cpan/Encode/encengine.c
index bddf556b35d..67613a89e3c 100644
--- a/gnu/usr.bin/perl/cpan/Encode/encengine.c
+++ b/gnu/usr.bin/perl/cpan/Encode/encengine.c
@@ -102,56 +102,56 @@ do_encode(const encpage_t * enc, const U8 * src, STRLEN * slen, U8 * dst,
U8 *dend = d + dlen, *dlast = d;
int code = 0;
while (s < send) {
- const encpage_t *e = enc;
- U8 byte = *s;
- while (byte > e->max)
- e++;
- if (byte >= e->min && e->slen && (approx || !(e->slen & 0x80))) {
- const U8 *cend = s + (e->slen & 0x7f);
- if (cend <= send) {
- STRLEN n;
- if ((n = e->dlen)) {
- const U8 *out = e->seq + n * (byte - e->min);
- U8 *oend = d + n;
- if (dst) {
- if (oend <= dend) {
- while (d < oend)
- *d++ = *out++;
+ const encpage_t *e = enc;
+ U8 byte = *s;
+ while (byte > e->max)
+ e++;
+ if (byte >= e->min && e->slen && (approx || !(e->slen & 0x80))) {
+ const U8 *cend = s + (e->slen & 0x7f);
+ if (cend <= send) {
+ STRLEN n;
+ if ((n = e->dlen)) {
+ const U8 *out = e->seq + n * (byte - e->min);
+ U8 *oend = d + n;
+ if (dst) {
+ if (oend <= dend) {
+ while (d < oend)
+ *d++ = *out++;
+ }
+ else {
+ /* Out of space */
+ code = ENCODE_NOSPACE;
+ break;
+ }
+ }
+ else
+ d = oend;
+ }
+ enc = e->next;
+ s++;
+ if (s == cend) {
+ if (approx && (e->slen & 0x80))
+ code = ENCODE_FALLBACK;
+ last = s;
+ if (term && (STRLEN)(d-dlast) == tlen && memEQ(dlast, term, tlen)) {
+ code = ENCODE_FOUND_TERM;
+ break;
+ }
+ dlast = d;
+ }
}
else {
- /* Out of space */
- code = ENCODE_NOSPACE;
+ /* partial source character */
+ code = ENCODE_PARTIAL;
break;
}
- }
- else
- d = oend;
- }
- enc = e->next;
- s++;
- if (s == cend) {
- if (approx && (e->slen & 0x80))
- code = ENCODE_FALLBACK;
- last = s;
- if (term && (STRLEN)(d-dlast) == tlen && memEQ(dlast, term, tlen)) {
- code = ENCODE_FOUND_TERM;
- break;
- }
- dlast = d;
- }
}
else {
- /* partial source character */
- code = ENCODE_PARTIAL;
- break;
+ /* Cannot represent */
+ code = ENCODE_NOREP;
+ break;
}
}
- else {
- /* Cannot represent */
- code = ENCODE_NOREP;
- break;
- }
- }
*slen = last - src;
*dout = d - dst;
return code;
diff --git a/gnu/usr.bin/perl/cpan/Encode/encoding.pm b/gnu/usr.bin/perl/cpan/Encode/encoding.pm
index 8450f9ca127..c3f324d29fa 100644
--- a/gnu/usr.bin/perl/cpan/Encode/encoding.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/encoding.pm
@@ -1,15 +1,16 @@
-# $Id: encoding.pm,v 2.17 2015/09/15 13:53:27 dankogai Exp dankogai $
+# $Id: encoding.pm,v 2.22 2018/02/11 05:32:03 dankogai Exp $
package encoding;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.17 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.22 $ =~ /(\d+)/g;
use Encode;
use strict;
use warnings;
+use Config;
use constant {
DEBUG => !!$ENV{PERL_ENCODE_DEBUG},
HAS_PERLIO => eval { require PerlIO::encoding; PerlIO::encoding->VERSION(0.02) },
- PERL_5_21_7 => $^V && $^V ge v5.21.7,
+ PERL_5_21_7 => $^V && $^V ge v5.21.7, # lexically scoped
};
sub _exception {
@@ -114,10 +115,10 @@ sub import {
Carp::croak("encoding: pragma does not support EBCDIC platforms");
}
- if ($] >= 5.017) {
- warnings::warnif("deprecated",
- "Use of the encoding pragma is deprecated")
- }
+ my $deprecate =
+ ($] >= 5.017 and !$Config{usecperl})
+ ? "Use of the encoding pragma is deprecated" : 0;
+
my $class = shift;
my $name = shift;
if (!$name){
@@ -133,6 +134,7 @@ sub import {
return;
}
$name = _get_locale_encoding() if $name eq ':locale';
+ BEGIN { strict->unimport('hashpairs') if $] >= 5.027 and $^V =~ /c$/; }
my %arg = @_;
$name = $ENV{PERL_ENCODING} unless defined $name;
my $enc = find_encoding($name);
@@ -142,6 +144,12 @@ sub import {
}
$name = $enc->name; # canonize
unless ( $arg{Filter} ) {
+ if ($] >= 5.025003 and !$Config{usecperl}) {
+ require Carp;
+ Carp::croak("The encoding pragma is no longer supported. Check cperl");
+ }
+ warnings::warnif("deprecated",$deprecate) if $deprecate;
+
DEBUG and warn "_exception($name) = ", _exception($name);
if (! _exception($name)) {
if (!PERL_5_21_7) {
@@ -155,16 +163,20 @@ sub import {
${^E_NCODING} = $enc;
}
}
- HAS_PERLIO or return 1;
+ if (! HAS_PERLIO ) {
+ return 1;
+ }
}
else {
+ warnings::warnif("deprecated",$deprecate) if $deprecate;
+
defined( ${^ENCODING} ) and undef ${^ENCODING};
undef ${^E_NCODING} if PERL_5_21_7;
# implicitly 'use utf8'
require utf8; # to fetch $utf8::hint_bits;
$^H |= $utf8::hint_bits;
- eval {
+
require Filter::Util::Call;
Filter::Util::Call->import;
filter_add(
@@ -177,8 +189,6 @@ sub import {
$status;
}
);
- };
- $@ eq '' and DEBUG and warn "Filter installed";
}
defined ${^UNICODE} and ${^UNICODE} != 0 and return 1;
for my $h (qw(STDIN STDOUT)) {
@@ -188,20 +198,14 @@ sub import {
Carp::croak(
"encoding: Unknown encoding for $h, '$arg{$h}'");
}
- eval { binmode( $h, ":raw :encoding($arg{$h})" ) };
+ binmode( $h, ":raw :encoding($arg{$h})" );
}
else {
unless ( exists $arg{$h} ) {
- eval {
no warnings 'uninitialized';
binmode( $h, ":raw :encoding($name)" );
- };
}
}
- if ($@) {
- require Carp;
- Carp::croak($@);
- }
}
return 1; # I doubt if we need it, though
}
@@ -280,6 +284,10 @@ Old code should be converted to UTF-8, via something like the recipe in the
L</SYNOPSIS> (though this simple approach may require manual adjustments
afterwards).
+If UTF-8 is not an option, it is recommended that one use a simple source
+filter, such as that provided by L<Filter::Encoding> on CPAN or this
+pragma's own C<Filter> option (see below).
+
The only legitimate use of this pragma is almost certainly just one per file,
near the top, with file scope, as the file is likely going to only be written
in one encoding. Further restrictions apply in Perls before v5.22 (see
@@ -291,6 +299,9 @@ There are two basic modes of operation (plus turning if off):
=item C<use encoding ['I<ENCNAME>'] ;>
+Please note: This mode of operation is no longer supported as of Perl
+v5.26.
+
This is the normal operation. It translates various literals encountered in
the Perl source file from the encoding I<ENCNAME> into UTF-8, and similarly
converts character code points. This is used when the script is a combination
@@ -352,7 +363,7 @@ Note that C<STDERR> WILL NOT be changed, regardless.
Also note that non-STD file handles remain unaffected. Use C<use
open> or C<binmode> to change the layers of those.
-=item C<use encoding I<ENCNAME> Filter=E<gt>1;>
+=item C<use encoding I<ENCNAME>, Filter=E<gt>1;>
This operates as above, but the C<Filter> argument with a non-zero
value causes the entire script, and not just literals, to be translated from
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm
index 04ad4967c98..dbfa01b6182 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm
@@ -1,8 +1,7 @@
package Encode::Alias;
use strict;
use warnings;
-no warnings 'redefine';
-our $VERSION = do { my @r = ( q$Revision: 2.20 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.24 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
use Exporter 'import';
@@ -19,7 +18,6 @@ our @Alias; # ordered matching list
our %Alias; # cached known aliases
sub find_alias {
- require Encode;
my $class = shift;
my $find = shift;
unless ( exists $Alias{$find} ) {
@@ -79,8 +77,10 @@ sub find_alias {
sub define_alias {
while (@_) {
- my ( $alias, $name ) = splice( @_, 0, 2 );
- unshift( @Alias, $alias => $name ); # newer one has precedence
+ my $alias = shift;
+ my $name = shift;
+ unshift( @Alias, $alias => $name ) # newer one has precedence
+ if defined $alias;
if ( ref($alias) ) {
# clear %Alias cache to allow overrides
@@ -96,13 +96,20 @@ sub define_alias {
}
}
}
- else {
+ elsif (defined $alias) {
DEBUG and warn "delete \$Alias\{$alias\}";
delete $Alias{$alias};
}
+ elsif (DEBUG) {
+ require Carp;
+ Carp::croak("undef \$alias");
+ }
}
}
+# HACK: Encode must be used after define_alias is declarated as Encode calls define_alias
+use Encode ();
+
# Allow latin-1 style names as well
# 0 1 2 3 4 5 6 7 8 9 10
our @Latin2iso = ( 0, 1, 2, 3, 4, 9, 10, 13, 14, 15, 16 );
@@ -128,7 +135,6 @@ sub undef_aliases {
}
sub init_aliases {
- require Encode;
undef_aliases();
# Try all-lower-case version should all else fails
@@ -264,7 +270,7 @@ sub init_aliases {
define_alias( qr/\bUTF-8$/i => '"utf-8-strict"' );
# At last, Map white space and _ to '-'
- define_alias( qr/^(\S+)[\s_]+(.*)$/i => '"$1-$2"' );
+ define_alias( qr/^([^\s_]+)[\s_]+([^\s_]*)$/i => '"$1-$2"' );
}
1;
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/CN/HZ.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/CN/HZ.pm
index f035d821f57..e444cb01c33 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/CN/HZ.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/CN/HZ.pm
@@ -5,7 +5,7 @@ use warnings;
use utf8 ();
use vars qw($VERSION);
-$VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+$VERSION = do { my @r = ( q$Revision: 2.10 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use Encode qw(:fallbacks);
@@ -21,6 +21,7 @@ sub needs_lines { 1 }
sub decode ($$;$) {
my ( $obj, $str, $chk ) = @_;
+ return undef unless defined $str;
my $GB = Encode::find_encoding('gb2312-raw');
my $ret = substr($str, 0, 0); # to propagate taintedness
@@ -49,7 +50,8 @@ sub decode ($$;$) {
else { # GB mode; the byte ranges are as in RFC 1843.
no warnings 'uninitialized';
if ( $str =~ s/^((?:[\x21-\x77][\x21-\x7E])+)// ) {
- $ret .= $GB->decode( $1, $chk );
+ my $prefix = $1;
+ $ret .= $GB->decode( $prefix, $chk );
}
elsif ( $str =~ s/^\x7E\x7D// ) { # '~}'
$in_ascii = 1;
@@ -134,6 +136,7 @@ sub cat_decode {
sub encode($$;$) {
my ( $obj, $str, $chk ) = @_;
+ return undef unless defined $str;
my $GB = Encode::find_encoding('gb2312-raw');
my $ret = substr($str, 0, 0); # to propagate taintedness;
@@ -153,7 +156,7 @@ sub encode($$;$) {
}
elsif ( $str =~ s/(.)// ) {
my $s = $1;
- my $tmp = $GB->encode( $s, $chk );
+ my $tmp = $GB->encode( $s, $chk || 0 );
last if !defined $tmp;
if ( length $tmp == 2 ) { # maybe a valid GB char (XXX)
if ($in_ascii) {
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Encoding.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Encoding.pm
index 39d2e0ab64e..815937f4554 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Encoding.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Encoding.pm
@@ -3,11 +3,15 @@ package Encode::Encoding;
# Base class for classes which implement encodings
use strict;
use warnings;
-our $VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
-require Encode;
+our @CARP_NOT = qw(Encode Encode::Encoder);
-sub DEBUG { 0 }
+use Carp ();
+use Encode ();
+use Encode::MIME::Name;
+
+use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
sub Define {
my $obj = shift;
@@ -20,13 +24,10 @@ sub Define {
sub name { return shift->{'Name'} }
-sub mime_name{
- require Encode::MIME::Name;
+sub mime_name {
return Encode::MIME::Name::get_mime_name(shift->name);
}
-# sub renew { return $_[0] }
-
sub renew {
my $self = shift;
my $clone = bless {%$self} => ref($self);
@@ -42,8 +43,7 @@ sub renewed { return $_[0]->{renewed} || 0 }
sub needs_lines { 0 }
sub perlio_ok {
- eval { require PerlIO::encoding };
- return $@ ? 0 : 1;
+ return eval { require PerlIO::encoding } ? 1 : 0;
}
# (Temporary|legacy) methods
@@ -56,14 +56,12 @@ sub fromUnicode { shift->encode(@_) }
#
sub encode {
- require Carp;
my $obj = shift;
my $class = ref($obj) ? ref($obj) : $obj;
Carp::croak( $class . "->encode() not defined!" );
}
sub decode {
- require Carp;
my $obj = shift;
my $class = ref($obj) ? ref($obj) : $obj;
Carp::croak( $class . "->encode() not defined!" );
@@ -188,7 +186,6 @@ MUST return the string representing the canonical name of the encoding.
Predefined As:
sub mime_name{
- require Encode::MIME::Name;
return Encode::MIME::Name::get_mime_name(shift->name);
}
@@ -226,8 +223,7 @@ unless the value is numeric so return 0 for false.
Predefined As:
sub perlio_ok {
- eval{ require PerlIO::encoding };
- return $@ ? 0 : 1;
+ return eval { require PerlIO::encoding } ? 1 : 0;
}
If your encoding does not support PerlIO for some reasons, just;
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/GSM0338.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/GSM0338.pm
index 20257a1cbd9..e87141ebc41 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/GSM0338.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/GSM0338.pm
@@ -1,5 +1,5 @@
#
-# $Id: GSM0338.pm,v 2.5 2013/09/14 07:51:59 dankogai Exp $
+# $Id: GSM0338.pm,v 2.7 2017/06/10 17:23:50 dankogai Exp $
#
package Encode::GSM0338;
@@ -8,7 +8,7 @@ use warnings;
use Carp;
use vars qw($VERSION);
-$VERSION = do { my @r = ( q$Revision: 2.5 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+$VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use Encode qw(:fallbacks);
@@ -171,6 +171,7 @@ our $NBSP = "\x{00A0}";
sub decode ($$;$) {
my ( $obj, $bytes, $chk ) = @_;
+ return undef unless defined $bytes;
my $str = substr($bytes, 0, 0); # to propagate taintedness;
while ( length $bytes ) {
my $c = substr( $bytes, 0, 1, '' );
@@ -216,6 +217,7 @@ sub decode ($$;$) {
sub encode($$;$) {
my ( $obj, $str, $chk ) = @_;
+ return undef unless defined $str;
my $bytes = substr($str, 0, 0); # to propagate taintedness
while ( length $str ) {
my $u = substr( $str, 0, 1, '' );
@@ -270,10 +272,9 @@ expression with C<eval {}> block as follows;
eval {
$utf8 = decode("gsm0338", $gsm0338, $chk);
- };
- if ($@){
+ } or do {
# handle exception here
- }
+ };
=head1 BUGS
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm
index b44daf59eb5..41fc19b7991 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Guess.pm
@@ -2,15 +2,16 @@ package Encode::Guess;
use strict;
use warnings;
use Encode qw(:fallbacks find_encoding);
-our $VERSION = do { my @r = ( q$Revision: 2.6 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
my $Canon = 'Guess';
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
our %DEF_SUSPECTS = map { $_ => find_encoding($_) } qw(ascii utf8);
-$Encode::Encoding{$Canon} = bless {
+my $obj = bless {
Name => $Canon,
Suspects => {%DEF_SUSPECTS},
} => __PACKAGE__;
+Encode::define_encoding($obj, $Canon);
use parent qw(Encode::Encoding);
sub needs_lines { 1 }
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/JP/JIS7.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/JP/JIS7.pm
index 588389a034a..6fc383c4966 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/JP/JIS7.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/JP/JIS7.pm
@@ -1,7 +1,7 @@
package Encode::JP::JIS7;
use strict;
use warnings;
-our $VERSION = do { my @r = ( q$Revision: 2.5 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use Encode qw(:fallbacks);
@@ -9,11 +9,12 @@ for my $name ( '7bit-jis', 'iso-2022-jp', 'iso-2022-jp-1' ) {
my $h2z = ( $name eq '7bit-jis' ) ? 0 : 1;
my $jis0212 = ( $name eq 'iso-2022-jp' ) ? 0 : 1;
- $Encode::Encoding{$name} = bless {
+ my $obj = bless {
Name => $name,
h2z => $h2z,
jis0212 => $jis0212,
} => __PACKAGE__;
+ Encode::define_encoding($obj, $name);
}
use parent qw(Encode::Encoding);
@@ -29,6 +30,7 @@ use Encode::CJKConstants qw(:all);
sub decode($$;$) {
my ( $obj, $str, $chk ) = @_;
+ return undef unless defined $str;
my $residue = '';
if ($chk) {
$str =~ s/([^\x00-\x7f].*)$//so and $residue = $1;
@@ -45,11 +47,12 @@ sub decode($$;$) {
sub encode($$;$) {
require Encode::JP::H2Z;
my ( $obj, $utf8, $chk ) = @_;
+ return undef unless defined $utf8;
# empty the input string in the stack so perlio is ok
$_[1] = '' if $chk;
my ( $h2z, $jis0212 ) = @$obj{qw(h2z jis0212)};
- my $octet = Encode::encode( 'euc-jp', $utf8, $chk );
+ my $octet = Encode::encode( 'euc-jp', $utf8, $chk || 0 );
$h2z and &Encode::JP::H2Z::h2z( \$octet );
euc_jis( \$octet, $jis0212 );
return $octet;
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/KR/2022_KR.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/KR/2022_KR.pm
index 44373e5d589..122326403b2 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/KR/2022_KR.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/KR/2022_KR.pm
@@ -1,7 +1,7 @@
package Encode::KR::2022_KR;
use strict;
use warnings;
-our $VERSION = do { my @r = ( q$Revision: 2.3 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use Encode qw(:fallbacks);
@@ -16,6 +16,7 @@ sub perlio_ok {
sub decode {
my ( $obj, $str, $chk ) = @_;
+ return undef unless defined $str;
my $res = $str;
my $residue = iso_euc( \$res );
@@ -26,6 +27,7 @@ sub decode {
sub encode {
my ( $obj, $utf8, $chk ) = @_;
+ return undef unless defined $utf8;
# empty the input string in the stack so perlio is ok
$_[1] = '' if $chk;
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm
index ba6adba4758..848de99fa43 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm
@@ -1,185 +1,307 @@
package Encode::MIME::Header;
use strict;
use warnings;
-no warnings 'redefine';
-our $VERSION = do { my @r = ( q$Revision: 2.19 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
-use Encode qw(find_encoding encode_utf8 decode_utf8);
-use MIME::Base64;
-use Carp;
+our $VERSION = do { my @r = ( q$Revision: 2.28 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+
+use Carp ();
+use Encode ();
+use MIME::Base64 ();
my %seed = (
- decode_b => '1', # decodes 'B' encoding ?
- decode_q => '1', # decodes 'Q' encoding ?
- encode => 'B', # encode with 'B' or 'Q' ?
- bpl => 75, # bytes per line
+ decode_b => 1, # decodes 'B' encoding ?
+ decode_q => 1, # decodes 'Q' encoding ?
+ encode => 'B', # encode with 'B' or 'Q' ?
+ charset => 'UTF-8', # encode charset
+ bpl => 75, # bytes per line
);
-$Encode::Encoding{'MIME-Header'} =
- bless { %seed, Name => 'MIME-Header', } => __PACKAGE__;
+my @objs;
+
+push @objs, bless {
+ %seed,
+ Name => 'MIME-Header',
+} => __PACKAGE__;
-$Encode::Encoding{'MIME-B'} = bless {
+push @objs, bless {
%seed,
decode_q => 0,
Name => 'MIME-B',
} => __PACKAGE__;
-$Encode::Encoding{'MIME-Q'} = bless {
+push @objs, bless {
%seed,
- decode_q => 1,
+ decode_b => 0,
encode => 'Q',
Name => 'MIME-Q',
} => __PACKAGE__;
+Encode::define_encoding($_, $_->{Name}) foreach @objs;
+
use parent qw(Encode::Encoding);
sub needs_lines { 1 }
sub perlio_ok { 0 }
+# RFC 2047 and RFC 2231 grammar
+my $re_charset = qr/[!"#\$%&'+\-0-9A-Z\\\^_`a-z\{\|\}~]+/;
+my $re_language = qr/[A-Za-z]{1,8}(?:-[0-9A-Za-z]{1,8})*/;
+my $re_encoding = qr/[QqBb]/;
+my $re_encoded_text = qr/[^\?]*/;
+my $re_encoded_word = qr/=\?$re_charset(?:\*$re_language)?\?$re_encoding\?$re_encoded_text\?=/;
+my $re_capture_encoded_word = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding\?$re_encoded_text)\?=/;
+my $re_capture_encoded_word_split = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding)\?($re_encoded_text)\?=/;
+
+# in strict mode check also for valid base64 characters and also for valid quoted printable codes
+my $re_encoding_strict_b = qr/[Bb]/;
+my $re_encoding_strict_q = qr/[Qq]/;
+my $re_encoded_text_strict_b = qr/[0-9A-Za-z\+\/]*={0,2}/;
+my $re_encoded_text_strict_q = qr/(?:[\x21-\x3C\x3E\x40-\x7E]|=[0-9A-Fa-f]{2})*/; # NOTE: first part are printable US-ASCII except ?, =, SPACE and TAB
+my $re_encoded_word_strict = qr/=\?$re_charset(?:\*$re_language)?\?(?:$re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/;
+my $re_capture_encoded_word_strict = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/;
+
+my $re_newline = qr/(?:\r\n|[\r\n])/;
+
+# in strict mode encoded words must be always separated by spaces or tabs (or folded newline)
+# except in comments when separator between words and comment round brackets can be omitted
+my $re_word_begin_strict = qr/(?:(?:[ \t]|\A)\(?|(?:[^\\]|\A)\)\()/;
+my $re_word_sep_strict = qr/(?:$re_newline?[ \t])+/;
+my $re_word_end_strict = qr/(?:\)\(|\)?(?:$re_newline?[ \t]|\z))/;
+
+my $re_match = qr/()((?:$re_encoded_word\s*)*$re_encoded_word)()/;
+my $re_match_strict = qr/($re_word_begin_strict)((?:$re_encoded_word_strict$re_word_sep_strict)*$re_encoded_word_strict)(?=$re_word_end_strict)/;
+
+my $re_capture = qr/$re_capture_encoded_word(?:\s*)?/;
+my $re_capture_strict = qr/$re_capture_encoded_word_strict$re_word_sep_strict?/;
+
+our $STRICT_DECODE = 0;
+
sub decode($$;$) {
- use utf8;
- my ( $obj, $str, $chk ) = @_;
- # zap spaces between encoded words
- $str =~ s/\?=\s+=\?/\?==\?/gos;
-
- # multi-line header to single line
- $str =~ s/(?:\r\n|[\r\n])[ \t]//gos;
-
- 1 while ( $str =~
- s/(=\?[-0-9A-Za-z_]+\?[Qq]\?)([^?]*?)\?=\1([^?]*?\?=)/$1$2$3/ )
- ; # Concat consecutive QP encoded mime headers
- # Fixes breaking inside multi-byte characters
-
- $str =~ s{
- =\? # begin encoded word
- ([-0-9A-Za-z_]+) # charset (encoding)
- (?:\*[A-Za-z]{1,8}(?:-[A-Za-z]{1,8})*)? # language (RFC 2231)
- \?([QqBb])\? # delimiter
- (.*?) # Base64-encodede contents
- \?= # end encoded word
- }{
- if (uc($2) eq 'B'){
- $obj->{decode_b} or croak qq(MIME "B" unsupported);
- decode_b($1, $3, $chk);
- } elsif (uc($2) eq 'Q'){
- $obj->{decode_q} or croak qq(MIME "Q" unsupported);
- decode_q($1, $3, $chk);
- } else {
- croak qq(MIME "$2" encoding is nonexistent!);
+ my ($obj, $str, $chk) = @_;
+ return undef unless defined $str;
+
+ my $re_match_decode = $STRICT_DECODE ? $re_match_strict : $re_match;
+ my $re_capture_decode = $STRICT_DECODE ? $re_capture_strict : $re_capture;
+
+ my $stop = 0;
+ my $output = substr($str, 0, 0); # to propagate taintedness
+
+ # decode each line separately, match whole continuous folded line at one call
+ 1 while not $stop and $str =~ s{^((?:[^\r\n]*(?:$re_newline[ \t])?)*)($re_newline)?}{
+
+ my $line = $1;
+ my $sep = defined $2 ? $2 : '';
+
+ $stop = 1 unless length($line) or length($sep);
+
+ # NOTE: this code partially could break $chk support
+ # in non strict mode concat consecutive encoded mime words with same charset, language and encoding
+ # fixes breaking inside multi-byte characters
+ 1 while not $STRICT_DECODE and $line =~ s/$re_capture_encoded_word_split\s*=\?\1\2\?\3\?($re_encoded_text)\?=/=\?$1$2\?$3\?$4$5\?=/so;
+
+ # process sequence of encoded MIME words at once
+ 1 while not $stop and $line =~ s{^(.*?)$re_match_decode}{
+
+ my $begin = $1 . $2;
+ my $words = $3;
+
+ $begin =~ tr/\r\n//d;
+ $output .= $begin;
+
+ # decode one MIME word
+ 1 while not $stop and $words =~ s{^(.*?)($re_capture_decode)}{
+
+ $output .= $1;
+ my $orig = $2;
+ my $charset = $3;
+ my ($mime_enc, $text) = split /\?/, $5;
+
+ $text =~ tr/\r\n//d;
+
+ my $enc = Encode::find_mime_encoding($charset);
+
+ # in non strict mode allow also perl encoding aliases
+ if ( not defined $enc and not $STRICT_DECODE ) {
+ # make sure that decoded string will be always strict UTF-8
+ $charset = 'UTF-8' if lc($charset) eq 'utf8';
+ $enc = Encode::find_encoding($charset);
+ }
+
+ if ( not defined $enc ) {
+ Carp::croak qq(Unknown charset "$charset") if not ref $chk and $chk and $chk & Encode::DIE_ON_ERR;
+ Carp::carp qq(Unknown charset "$charset") if not ref $chk and $chk and $chk & Encode::WARN_ON_ERR;
+ $stop = 1 if not ref $chk and $chk and $chk & Encode::RETURN_ON_ERR;
+ $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; # $orig mime word is separated by whitespace
+ $stop ? $orig : '';
+ } else {
+ if ( uc($mime_enc) eq 'B' and $obj->{decode_b} ) {
+ my $decoded = _decode_b($enc, $text, $chk);
+ $stop = 1 if not defined $decoded and not ref $chk and $chk and $chk & Encode::RETURN_ON_ERR;
+ $output .= (defined $decoded ? $decoded : $text) unless $stop;
+ $stop ? $orig : '';
+ } elsif ( uc($mime_enc) eq 'Q' and $obj->{decode_q} ) {
+ my $decoded = _decode_q($enc, $text, $chk);
+ $stop = 1 if not defined $decoded and not ref $chk and $chk and $chk & Encode::RETURN_ON_ERR;
+ $output .= (defined $decoded ? $decoded : $text) unless $stop;
+ $stop ? $orig : '';
+ } else {
+ Carp::croak qq(MIME "$mime_enc" unsupported) if not ref $chk and $chk and $chk & Encode::DIE_ON_ERR;
+ Carp::carp qq(MIME "$mime_enc" unsupported) if not ref $chk and $chk and $chk & Encode::WARN_ON_ERR;
+ $stop = 1 if not ref $chk and $chk and $chk & Encode::RETURN_ON_ERR;
+ $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; # $orig mime word is separated by whitespace
+ $stop ? $orig : '';
+ }
+ }
+
+ }se;
+
+ if ( not $stop ) {
+ $output .= $words;
+ $words = '';
+ }
+
+ $words;
+
+ }se;
+
+ if ( not $stop ) {
+ $line =~ tr/\r\n//d;
+ $output .= $line . $sep;
+ $line = '';
+ $sep = '';
}
- }egox;
- $_[1] = $str if $chk;
- return $str;
-}
-sub decode_b {
- my $enc = shift;
- my $d = find_encoding($enc) or croak qq(Unknown encoding "$enc");
- my $db64 = decode_base64(shift);
- my $chk = shift;
- return $d->name eq 'utf8'
- ? Encode::decode_utf8($db64)
- : $d->decode( $db64, $chk || Encode::FB_PERLQQ );
-}
+ $line . $sep;
-sub decode_q {
- my ( $enc, $q, $chk ) = @_;
- my $d = find_encoding($enc) or croak qq(Unknown encoding "$enc");
- $q =~ s/_/ /go;
- $q =~ s/=([0-9A-Fa-f]{2})/pack("C", hex($1))/ego;
- return $d->name eq 'utf8'
- ? Encode::decode_utf8($q)
- : $d->decode( $q, $chk || Encode::FB_PERLQQ );
-}
+ }se;
-my $especials =
- join( '|' => map { quotemeta( chr($_) ) }
- unpack( "C*", qq{()<>,;:"'/[]?=} ) );
+ $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC);
+ return $output;
+}
-my $re_encoded_word = qr{
- =\? # begin encoded word
- (?:[-0-9A-Za-z_]+) # charset (encoding)
- (?:\*[A-Za-z]{1,8}(?:-[A-Za-z]{1,8})*)? # language (RFC 2231)
- \?(?:[QqBb])\? # delimiter
- (?:.*?) # Base64-encodede contents
- \?= # end encoded word
-}xo;
+sub _decode_b {
+ my ($enc, $text, $chk) = @_;
+ # MIME::Base64::decode ignores everything after a '=' padding character
+ # in non strict mode split string after each sequence of padding characters and decode each substring
+ my $octets = $STRICT_DECODE ?
+ MIME::Base64::decode($text) :
+ join('', map { MIME::Base64::decode($_) } split /(?<==)(?=[^=])/, $text);
+ return _decode_octets($enc, $octets, $chk);
+}
-my $re_especials = qr{$re_encoded_word|$especials}xo;
+sub _decode_q {
+ my ($enc, $text, $chk) = @_;
+ $text =~ s/_/ /go;
+ $text =~ s/=([0-9A-Fa-f]{2})/pack('C', hex($1))/ego;
+ return _decode_octets($enc, $text, $chk);
+}
-# cf:
-# https://rt.cpan.org/Ticket/Display.html?id=88717
-# https://www.ietf.org/rfc/rfc0822.txt
-my $re_linear_white_space = qr{(?:[ \t]|\r\n?)};
+sub _decode_octets {
+ my ($enc, $octets, $chk) = @_;
+ $chk = 0 unless defined $chk;
+ $chk &= ~Encode::LEAVE_SRC if not ref $chk and $chk;
+ my $output = $enc->decode($octets, $chk);
+ return undef if not ref $chk and $chk and $octets ne '';
+ return $output;
+}
sub encode($$;$) {
- my ( $obj, $str, $chk ) = @_;
- my @line = ();
- for my $line ( split /\r\n|[\r\n]/o, $str ) {
- my ( @word, @subline );
- if ($line =~ /\A([\w\-]+:\s+)(.*)\z/o) {
- push @word, $1, $obj->_encode($2); # "X-Header-Name: ..."
+ my ($obj, $str, $chk) = @_;
+ return undef unless defined $str;
+ my $output = $obj->_fold_line($obj->_encode_string($str, $chk));
+ $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC);
+ return $output . substr($str, 0, 0); # to propagate taintedness
+}
+
+sub _fold_line {
+ my ($obj, $line) = @_;
+ my $bpl = $obj->{bpl};
+ my $output = '';
+
+ while ( length($line) ) {
+ if ( $line =~ s/^(.{0,$bpl})(\s|\z)// ) {
+ $output .= $1;
+ $output .= "\r\n" . $2 if length($line);
+ } elsif ( $line =~ s/(\s)(.*)$// ) {
+ $output .= $line;
+ $line = $2;
+ $output .= "\r\n" . $1 if length($line);
} else {
- push @word, $obj->_encode($line); # anything else
- }
- my $subline = '';
- for my $word (@word) {
- use bytes ();
- if ( bytes::length($subline) + bytes::length($word) >
- $obj->{bpl} - 1 )
- {
- push @subline, $subline;
- $subline = '';
- }
- $subline .= ' ' if ($subline =~ /\?=$/ and $word =~ /^=\?/);
- $subline .= $word;
+ $output .= $line;
+ last;
}
- length($subline) and push @subline, $subline;
- push @line, join( "\n " => grep !/^$/, @subline );
}
- $_[1] = '' if $chk;
- return (substr($str, 0, 0) . join( "\n", @line ));
-}
-use constant HEAD => '=?UTF-8?';
-use constant TAIL => '?=';
-use constant SINGLE => { B => \&_encode_b, Q => \&_encode_q, };
-
-sub _encode {
- my ( $o, $str ) = @_;
- my $enc = $o->{encode};
- my $llen = ( $o->{bpl} - length(HEAD) - 2 - length(TAIL) );
+ return $output;
+}
- # to coerce a floating-point arithmetics, the following contains
- # .0 in numbers -- dankogai
- $llen *= $enc eq 'B' ? 3.0 / 4.0 : 1.0 / 3.0;
+sub _encode_string {
+ my ($obj, $str, $chk) = @_;
+ my $wordlen = $obj->{bpl} > 76 ? 76 : $obj->{bpl};
+ my $enc = Encode::find_mime_encoding($obj->{charset});
+ my $enc_chk = $chk;
+ $enc_chk = 0 unless defined $enc_chk;
+ $enc_chk |= Encode::LEAVE_SRC if not ref $enc_chk and $enc_chk;
my @result = ();
- my $chunk = '';
- while ( length( my $chr = substr( $str, 0, 1, '' ) ) ) {
- use bytes ();
- if ( bytes::length($chunk) + bytes::length($chr) > $llen ) {
- push @result, SINGLE->{$enc}($chunk);
- $chunk = '';
+ my $octets = '';
+ while ( length( my $chr = substr($str, 0, 1, '') ) ) {
+ my $seq = $enc->encode($chr, $enc_chk);
+ if ( not length($seq) ) {
+ substr($str, 0, 0, $chr);
+ last;
+ }
+ if ( $obj->_encoded_word_len($octets . $seq) > $wordlen ) {
+ push @result, $obj->_encode_word($octets);
+ $octets = '';
}
- $chunk .= $chr;
+ $octets .= $seq;
}
- length($chunk) and push @result, SINGLE->{$enc}($chunk);
- return @result;
+ length($octets) and push @result, $obj->_encode_word($octets);
+ $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC);
+ return join(' ', @result);
+}
+
+sub _encode_word {
+ my ($obj, $octets) = @_;
+ my $charset = $obj->{charset};
+ my $encode = $obj->{encode};
+ my $text = $encode eq 'B' ? _encode_b($octets) : _encode_q($octets);
+ return "=?$charset?$encode?$text?=";
+}
+
+sub _encoded_word_len {
+ my ($obj, $octets) = @_;
+ my $charset = $obj->{charset};
+ my $encode = $obj->{encode};
+ my $text_len = $encode eq 'B' ? _encoded_b_len($octets) : _encoded_q_len($octets);
+ return length("=?$charset?$encode??=") + $text_len;
}
sub _encode_b {
- HEAD . 'B?' . encode_base64( encode_utf8(shift), '' ) . TAIL;
+ my ($octets) = @_;
+ return MIME::Base64::encode($octets, '');
+}
+
+sub _encoded_b_len {
+ my ($octets) = @_;
+ return ( length($octets) + 2 ) / 3 * 4;
}
+my $re_invalid_q_char = qr/[^0-9A-Za-z !*+\-\/]/;
+
sub _encode_q {
- my $chunk = shift;
- $chunk = encode_utf8($chunk);
- $chunk =~ s{
- ([^0-9A-Za-z])
- }{
- join("" => map {sprintf "=%02X", $_} unpack("C*", $1))
- }egox;
- return HEAD . 'Q?' . $chunk . TAIL;
+ my ($octets) = @_;
+ $octets =~ s{($re_invalid_q_char)}{
+ join('', map { sprintf('=%02X', $_) } unpack('C*', $1))
+ }egox;
+ $octets =~ s/ /_/go;
+ return $octets;
+}
+
+sub _encoded_q_len {
+ my ($octets) = @_;
+ my $invalid_count = () = $octets =~ /$re_invalid_q_char/sgo;
+ return ( $invalid_count * 3 ) + ( length($octets) - $invalid_count );
}
1;
@@ -187,55 +309,119 @@ __END__
=head1 NAME
-Encode::MIME::Header -- MIME 'B' and 'Q' header encoding
+Encode::MIME::Header -- MIME encoding for an unstructured email header
=head1 SYNOPSIS
- use Encode qw/encode decode/;
- $utf8 = decode('MIME-Header', $header);
- $header = encode('MIME-Header', $utf8);
+ use Encode qw(encode decode);
-=head1 ABSTRACT
+ my $mime_str = encode("MIME-Header", "Sample:Text \N{U+263A}");
+ # $mime_str is "=?UTF-8?B?U2FtcGxlOlRleHQg4pi6?="
-This module implements RFC 2047 Mime Header Encoding. There are 3
-variant encoding names; C<MIME-Header>, C<MIME-B> and C<MIME-Q>. The
-difference is described below
+ my $mime_q_str = encode("MIME-Q", "Sample:Text \N{U+263A}");
+ # $mime_q_str is "=?UTF-8?Q?Sample=3AText_=E2=98=BA?="
- decode() encode()
- ----------------------------------------------
- MIME-Header Both B and Q =?UTF-8?B?....?=
- MIME-B B only; Q croaks =?UTF-8?B?....?=
- MIME-Q Q only; B croaks =?UTF-8?Q?....?=
+ my $str = decode("MIME-Header",
+ "=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\r\n " .
+ "=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?="
+ );
+ # $str is "If you can read this you understand the example."
-=head1 DESCRIPTION
+ use Encode qw(decode :fallbacks);
+ use Encode::MIME::Header;
+ local $Encode::MIME::Header::STRICT_DECODE = 1;
+ my $strict_string = decode("MIME-Header", $mime_string, FB_CROAK);
+ # use strict decoding and croak on errors
-When you decode(=?I<encoding>?I<X>?I<ENCODED WORD>?=), I<ENCODED WORD>
-is extracted and decoded for I<X> encoding (B for Base64, Q for
-Quoted-Printable). Then the decoded chunk is fed to
-decode(I<encoding>). So long as I<encoding> is supported by Encode,
-any source encoding is fine.
+=head1 ABSTRACT
-When you encode, it just encodes UTF-8 string with I<X> encoding then
-quoted with =?UTF-8?I<X>?....?= . The parts that RFC 2047 forbids to
-encode are left as is and long lines are folded within 76 bytes per
-line.
+This module implements L<RFC 2047|https://tools.ietf.org/html/rfc2047> MIME
+encoding for an unstructured field body of the email header. It can also be
+used for L<RFC 822|https://tools.ietf.org/html/rfc822> 'text' token. However,
+it cannot be used directly for the whole header with the field name or for the
+structured header fields like From, To, Cc, Message-Id, etc... There are 3
+encoding names supported by this module: C<MIME-Header>, C<MIME-B> and
+C<MIME-Q>.
-=head1 BUGS
+=head1 DESCRIPTION
-It would be nice to support encoding to non-UTF8, such as =?ISO-2022-JP?
-and =?ISO-8859-1?= but that makes the implementation too complicated.
-These days major mail agents all support =?UTF-8? so I think it is
-just good enough.
+Decode method takes an unstructured field body of the email header (or
+L<RFC 822|https://tools.ietf.org/html/rfc822> 'text' token) as its input and
+decodes each MIME encoded-word from input string to a sequence of bytes
+according to L<RFC 2047|https://tools.ietf.org/html/rfc2047> and
+L<RFC 2231|https://tools.ietf.org/html/rfc2231>. Subsequently, each sequence
+of bytes with the corresponding MIME charset is decoded with
+L<the Encode module|Encode> and finally, one output string is returned. Text
+parts of the input string which do not contain MIME encoded-word stay
+unmodified in the output string. Folded newlines between two consecutive MIME
+encoded-words are discarded, others are preserved in the output string.
+C<MIME-B> can decode Base64 variant, C<MIME-Q> can decode Quoted-Printable
+variant and C<MIME-Header> can decode both of them. If L<Encode module|Encode>
+does not support particular MIME charset or chosen variant then an action based
+on L<CHECK flags|Encode/Handling Malformed Data> is performed (by default, the
+MIME encoded-word is not decoded).
+
+Encode method takes a scalar string as its input and uses
+L<strict UTF-8|Encode/UTF-8 vs. utf8 vs. UTF8> encoder for encoding it to UTF-8
+bytes. Then a sequence of UTF-8 bytes is encoded into MIME encoded-words
+(C<MIME-Header> and C<MIME-B> use a Base64 variant while C<MIME-Q> uses a
+Quoted-Printable variant) where each MIME encoded-word is limited to 75
+characters. MIME encoded-words are separated by C<CRLF SPACE> and joined to
+one output string. Output string is suitable for unstructured field body of
+the email header.
+
+Both encode and decode methods propagate
+L<CHECK flags|Encode/Handling Malformed Data> when encoding and decoding the
+MIME charset.
-Due to popular demand, 'MIME-Header-ISO_2022_JP' was introduced by
-Makamaka. Thre are still too many MUAs especially cellular phone
-handsets which does not grok UTF-8.
+=head1 BUGS
-=head1 SEE ALSO
+Versions prior to 2.22 (part of Encode 2.83) have a malfunctioning decoder
+and encoder. The MIME encoder infamously inserted additional spaces or
+discarded white spaces between consecutive MIME encoded-words, which led to
+invalid MIME headers produced by this module. The MIME decoder had a tendency
+to discard white spaces, incorrectly interpret data or attempt to decode Base64
+MIME encoded-words as Quoted-Printable. These problems were fixed in version
+2.22. It is highly recommended not to use any version prior 2.22!
+
+Versions prior to 2.24 (part of Encode 2.87) ignored
+L<CHECK flags|Encode/Handling Malformed Data>. The MIME encoder used
+L<not strict utf8|Encode/UTF-8 vs. utf8 vs. UTF8> encoder for input Unicode
+strings which could lead to invalid UTF-8 sequences. MIME decoder used also
+L<not strict utf8|Encode/UTF-8 vs. utf8 vs. UTF8> decoder and additionally
+called the decode method with a C<Encode::FB_PERLQQ> flag (thus user-specified
+L<CHECK flags|Encode/Handling Malformed Data> were ignored). Moreover, it
+automatically croaked when a MIME encoded-word contained unknown encoding.
+Since version 2.24, this module uses
+L<strict UTF-8|Encode/UTF-8 vs. utf8 vs. UTF8> encoder and decoder. And
+L<CHECK flags|Encode/Handling Malformed Data> are correctly propagated.
+
+Since version 2.22 (part of Encode 2.83), the MIME encoder should be fully
+compliant to L<RFC 2047|https://tools.ietf.org/html/rfc2047> and
+L<RFC 2231|https://tools.ietf.org/html/rfc2231>. Due to the aforementioned
+bugs in previous versions of the MIME encoder, there is a I<less strict>
+compatible mode for the MIME decoder which is used by default. It should be
+able to decode MIME encoded-words encoded by pre 2.22 versions of this module.
+However, note that this is not correct according to
+L<RFC 2047|https://tools.ietf.org/html/rfc2047>.
+
+In default I<not strict> mode the MIME decoder attempts to decode every substring
+which looks like a MIME encoded-word. Therefore, the MIME encoded-words do not
+need to be separated by white space. To enforce a correct I<strict> mode, set
+variable C<$Encode::MIME::Header::STRICT_DECODE> to 1 e.g. by localizing:
+
+ use Encode::MIME::Header;
+ local $Encode::MIME::Header::STRICT_DECODE = 1;
+
+=head1 AUTHORS
+
+Pali E<lt>pali@cpan.orgE<gt>
-L<Encode>
+=head1 SEE ALSO
-RFC 2047, L<http://www.faqs.org/rfcs/rfc2047.html> and many other
-locations.
+L<Encode>,
+L<RFC 822|https://tools.ietf.org/html/rfc822>,
+L<RFC 2047|https://tools.ietf.org/html/rfc2047>,
+L<RFC 2231|https://tools.ietf.org/html/rfc2231>
=cut
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header/ISO_2022_JP.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header/ISO_2022_JP.pm
index 86955c83f1f..dc1e4275f07 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header/ISO_2022_JP.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header/ISO_2022_JP.pm
@@ -5,16 +5,17 @@ use warnings;
use parent qw(Encode::MIME::Header);
-$Encode::Encoding{'MIME-Header-ISO_2022_JP'} =
- bless { encode => 'B', bpl => 76, Name => 'MIME-Header-ISO_2022_JP' } =>
+my $obj =
+ bless { decode_b => '1', decode_q => '1', encode => 'B', bpl => 76, Name => 'MIME-Header-ISO_2022_JP' } =>
__PACKAGE__;
+Encode::define_encoding($obj, 'MIME-Header-ISO_2022_JP');
use constant HEAD => '=?ISO-2022-JP?B?';
use constant TAIL => '?=';
use Encode::CJKConstants qw(%RE);
-our $VERSION = do { my @r = ( q$Revision: 1.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 1.9 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
# I owe the below codes totally to
# Jcode by Dan Kogai & http://www.din.or.jp/~ohzaki/perl.htm#JP_Base64
@@ -22,6 +23,7 @@ our $VERSION = do { my @r = ( q$Revision: 1.4 $ =~ /\d+/g ); sprintf "%d." . "%0
sub encode {
my $self = shift;
my $str = shift;
+ return undef unless defined $str;
utf8::encode($str) if ( Encode::is_utf8($str) );
Encode::from_to( $str, 'utf8', 'euc-jp' );
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Name.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Name.pm
index 10d86a746dc..72ec79adda7 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Name.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Name.pm
@@ -1,8 +1,9 @@
package Encode::MIME::Name;
use strict;
use warnings;
-our $VERSION = do { my @r = ( q$Revision: 1.1 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 1.3 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+# NOTE: This table must be 1:1 mapping
our %MIME_NAME_OF = (
'AdobeStandardEncoding' => 'Adobe-Standard-Encoding',
'AdobeSymbol' => 'Adobe-Symbol-Encoding',
@@ -37,13 +38,14 @@ our %MIME_NAME_OF = (
'cp866' => 'IBM866',
'cp869' => 'IBM869',
'cp936' => 'GBK',
+ 'euc-cn' => 'EUC-CN',
'euc-jp' => 'EUC-JP',
'euc-kr' => 'EUC-KR',
#'gb2312-raw' => 'GB2312', # no, you're wrong, I18N::Charset
'hp-roman8' => 'hp-roman8',
'hz' => 'HZ-GB-2312',
'iso-2022-jp' => 'ISO-2022-JP',
- 'iso-2022-jp-1' => 'ISO-2022-JP',
+ 'iso-2022-jp-1' => 'ISO-2022-JP-1',
'iso-2022-kr' => 'ISO-2022-KR',
'iso-8859-1' => 'ISO-8859-1',
'iso-8859-10' => 'ISO-8859-10',
@@ -73,13 +75,20 @@ our %MIME_NAME_OF = (
'UTF-32BE' => 'UTF-32BE',
'UTF-32LE' => 'UTF-32LE',
'UTF-7' => 'UTF-7',
- 'utf8' => 'UTF-8',
'utf-8-strict' => 'UTF-8',
'viscii' => 'VISCII',
);
+# NOTE: %MIME_NAME_OF is still 1:1 mapping
+our %ENCODE_NAME_OF = map { uc $MIME_NAME_OF{$_} => $_ } keys %MIME_NAME_OF;
+
+# Add additional 1:N mapping
+$MIME_NAME_OF{'utf8'} = 'UTF-8';
+
sub get_mime_name($) { $MIME_NAME_OF{$_[0]} };
+sub get_encode_name($) { $ENCODE_NAME_OF{uc $_[0]} };
+
1;
__END__
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Supported.pod b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Supported.pod
index c731509a816..b23f6ca83ec 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Supported.pod
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Supported.pod
@@ -367,7 +367,7 @@ Unicode character should belong).
Not very popular. Needs CNS 11643-1 and -2 which are not available in
this module. CNS 11643 is supported (via euc-tw) in Encode::HanExtra.
-Autrijus Tang may add support for this encoding in his module in future.
+Audrey Tang may add support for this encoding in her module in future.
=item Various HP-UX encodings
diff --git a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Unicode/UTF7.pm b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Unicode/UTF7.pm
index d5d86e2f903..e68647755f4 100644
--- a/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Unicode/UTF7.pm
+++ b/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Unicode/UTF7.pm
@@ -1,15 +1,14 @@
#
-# $Id: UTF7.pm,v 2.8 2013/09/14 07:51:59 dankogai Exp $
+# $Id: UTF7.pm,v 2.10 2017/06/10 17:23:50 dankogai Exp $
#
package Encode::Unicode::UTF7;
use strict;
use warnings;
-no warnings 'redefine';
use parent qw(Encode::Encoding);
__PACKAGE__->Define('UTF-7');
-our $VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.10 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use MIME::Base64;
-use Encode;
+use Encode qw(find_encoding);
#
# Algorithms taken from Unicode::String by Gisle Aas
@@ -30,6 +29,7 @@ sub needs_lines { 1 }
sub encode($$;$) {
my ( $obj, $str, $chk ) = @_;
+ return undef unless defined $str;
my $len = length($str);
pos($str) = 0;
my $bytes = substr($str, 0, 0); # to propagate taintedness
@@ -61,6 +61,7 @@ sub encode($$;$) {
sub decode($$;$) {
use re 'taint';
my ( $obj, $bytes, $chk ) = @_;
+ return undef unless defined $bytes;
my $len = length($bytes);
my $str = substr($bytes, 0, 0); # to propagate taintedness;
pos($bytes) = 0;
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/Aliases.t b/gnu/usr.bin/perl/cpan/Encode/t/Aliases.t
index 2fc14cc1142..8d4752bddbc 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/Aliases.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/Aliases.t
@@ -159,7 +159,7 @@ define_alias( sub {
return "iso-8859-2" if $enc =~ /hebrew/i;
return "does-not-exist" if $enc =~ /arabic/i; # should then use other override alias
return "utf-8" if $enc =~ /eight/i;
- return;
+ return "unknown";
});
print "# alias test with alias overrides\n";
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/enc_data.t b/gnu/usr.bin/perl/cpan/Encode/t/enc_data.t
index a0caf650f19..e610b0d10e0 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/enc_data.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/enc_data.t
@@ -1,4 +1,4 @@
-# $Id: enc_data.t,v 2.2 2013/02/18 02:23:56 dankogai Exp $
+# $Id: enc_data.t,v 2.5 2016/11/29 23:29:23 dankogai Exp $
BEGIN {
require Config; import Config;
@@ -11,7 +11,11 @@ BEGIN {
exit 0;
}
if (ord("A") == 193) {
- print "1..0 # encoding pragma does not support EBCDIC platforms\n";
+ print "1..0 # Skip: encoding pragma does not support EBCDIC platforms\n";
+ exit(0);
+ }
+ if ($] >= 5.025 and !$Config{usecperl}) {
+ print "1..0 # Skip: encoding pragma not supported in Perl 5.26\n";
exit(0);
}
if ($] <= 5.008 and !$Config{perl_patchlevel}){
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/enc_eucjp.t b/gnu/usr.bin/perl/cpan/Encode/t/enc_eucjp.t
index 7c78a68ee95..fc0af3cf336 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/enc_eucjp.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/enc_eucjp.t
@@ -1,4 +1,4 @@
-# $Id: enc_eucjp.t,v 2.2 2013/02/18 02:23:56 dankogai Exp $
+# $Id: enc_eucjp.t,v 2.5 2017/06/10 17:23:50 dankogai Exp $
# This is the twin of enc_utf8.t .
BEGIN {
@@ -19,6 +19,10 @@ BEGIN {
print "1..0 # Skip: Perl 5.8.1 or later required\n";
exit 0;
}
+ if ($] >= 5.025003 and !$Config{usecperl}){
+ print "1..0 # Skip: Perl <=5.25.2 or cperl required\n";
+ exit 0;
+ }
}
no warnings "deprecated";
@@ -26,7 +30,7 @@ use encoding 'euc-jp';
my @c = (127, 128, 255, 256);
-print "1.." . (scalar @c + 1) . "\n";
+print "1.." . (scalar @c + 2) . "\n";
my @f;
@@ -61,7 +65,19 @@ binmode(F, ":raw"); # Output raw bytes.
print F chr(128); # Output illegal UTF-8.
close F;
open(F, $f) or die "$0: failed to open '$f' for reading: $!";
-binmode(F, ":encoding(utf-8)");
+binmode(F, ":encoding(UTF-8)");
+{
+ local $^W = 1;
+ local $SIG{__WARN__} = sub { $a = shift };
+ eval { <F> }; # This should get caught.
+}
+close F;
+print $a =~ qr{^UTF-8 "\\x80" does not map to Unicode} ?
+ "ok $t - illegal UTF-8 input\n" : "not ok $t - illegal UTF-8 input: a = " . unpack("H*", $a) . "\n";
+$t++;
+
+open(F, $f) or die "$0: failed to open '$f' for reading: $!";
+binmode(F, ":encoding(utf8)");
{
local $^W = 1;
local $SIG{__WARN__} = sub { $a = shift };
@@ -70,6 +86,7 @@ binmode(F, ":encoding(utf-8)");
close F;
print $a =~ qr{^utf8 "\\x80" does not map to Unicode} ?
"ok $t - illegal utf8 input\n" : "not ok $t - illegal utf8 input: a = " . unpack("H*", $a) . "\n";
+$t++;
# On VMS temporary file names like "f0." may be more readable than "f0" since
# "f0" could be a logical name pointing elsewhere.
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/enc_module.t b/gnu/usr.bin/perl/cpan/Encode/t/enc_module.t
index 05fc6c2f64d..fd6e6dcde69 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/enc_module.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/enc_module.t
@@ -1,4 +1,4 @@
-# $Id: enc_module.t,v 2.2 2013/02/18 02:23:56 dankogai Exp $
+# $Id: enc_module.t,v 2.5 2016/11/29 23:29:23 dankogai Exp $
# This file is in euc-jp
BEGIN {
require Config; import Config;
@@ -15,7 +15,11 @@ BEGIN {
exit 0;
}
if (ord("A") == 193) {
- print "1..0 # encoding pragma does not support EBCDIC platforms\n";
+ print "1..0 # Skip: encoding pragma does not support EBCDIC platforms\n";
+ exit(0);
+ }
+ if ($] >= 5.025 and !$Config{usecperl}) {
+ print "1..0 # Skip: encoding pragma not supported in Perl 5.26\n";
exit(0);
}
}
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t b/gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t
index 9c6caa3fa98..be7d487804c 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/enc_utf8.t
@@ -1,4 +1,4 @@
-# $Id: enc_utf8.t,v 2.2 2013/02/18 02:23:56 dankogai Exp $
+# $Id: enc_utf8.t,v 2.5 2017/06/10 17:23:50 dankogai Exp $
# This is the twin of enc_eucjp.t .
BEGIN {
@@ -15,6 +15,10 @@ BEGIN {
print "1..0 # encoding pragma does not support EBCDIC platforms\n";
exit(0);
}
+ if ($] >= 5.025003 and !$Config{usecperl}){
+ print "1..0 # Skip: Perl <=5.25.2 or cperl required\n";
+ exit 0;
+ }
}
no warnings "deprecated";
@@ -22,7 +26,7 @@ use encoding 'utf8';
my @c = (127, 128, 255, 256);
-print "1.." . (scalar @c + 1) . "\n";
+print "1.." . (scalar @c + 2) . "\n";
my @f;
@@ -55,7 +59,19 @@ binmode(F, ":raw"); # Output raw bytes.
print F chr(128); # Output illegal UTF-8.
close F;
open(F, $f) or die "$0: failed to open '$f' for reading: $!";
-binmode(F, ":encoding(utf-8)");
+binmode(F, ":encoding(UTF-8)");
+{
+ local $^W = 1;
+ local $SIG{__WARN__} = sub { $a = shift };
+ eval { <F> }; # This should get caught.
+}
+close F;
+print $a =~ qr{^UTF-8 "\\x80" does not map to Unicode} ?
+ "ok $t - illegal UTF-8 input\n" : "not ok $t - illegal UTF-8 input: a = " . unpack("H*", $a) . "\n";
+$t++;
+
+open(F, $f) or die "$0: failed to open '$f' for reading: $!";
+binmode(F, ":encoding(utf8)");
{
local $^W = 1;
local $SIG{__WARN__} = sub { $a = shift };
@@ -64,6 +80,7 @@ binmode(F, ":encoding(utf-8)");
close F;
print $a =~ qr{^utf8 "\\x80" does not map to Unicode} ?
"ok $t - illegal utf8 input\n" : "not ok $t - illegal utf8 input: a = " . unpack("H*", $a) . "\n";
+$t++;
# On VMS temporary file names like "f0." may be more readable than "f0" since
# "f0" could be a logical name pointing elsewhere.
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/encoding.t b/gnu/usr.bin/perl/cpan/Encode/t/encoding.t
index 21f9e47eb7a..33010e74b5f 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/encoding.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/encoding.t
@@ -9,7 +9,11 @@ BEGIN {
exit 0;
}
if (ord("A") == 193) {
- print "1..0 # encoding pragma does not support EBCDIC platforms\n";
+ print "1..0 # Skip: encoding pragma does not support EBCDIC platforms\n";
+ exit(0);
+ }
+ if ($] >= 5.025 and !$Config{usecperl}) {
+ print "1..0 # Skip: encoding pragma not supported in Perl 5.26\n";
exit(0);
}
}
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/jperl.t b/gnu/usr.bin/perl/cpan/Encode/t/jperl.t
index 3abe86b9b79..5995a592bab 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/jperl.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/jperl.t
@@ -1,5 +1,5 @@
#
-# $Id: jperl.t,v 2.2 2013/02/18 02:23:56 dankogai Exp $
+# $Id: jperl.t,v 2.5 2016/11/29 23:29:23 dankogai Exp $
#
# This script is written in euc-jp
@@ -17,6 +17,10 @@ BEGIN {
print "1..0 # Skip: EBCDIC\n";
exit 0;
}
+ if ($] >= 5.025 and !$Config{usecperl}) {
+ print "1..0 # Skip: encoding pragma not supported in Perl 5.26\n";
+ exit(0);
+ }
$| = 1;
}
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/mime-header.t b/gnu/usr.bin/perl/cpan/Encode/t/mime-header.t
index b031aa4010b..bf48753d93f 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/mime-header.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/mime-header.t
@@ -1,5 +1,5 @@
#
-# $Id: mime-header.t,v 2.8 2016/01/25 14:54:13 dankogai Exp dankogai $
+# $Id: mime-header.t,v 2.15 2017/07/18 07:15:29 dankogai Exp $
# This script is written in utf8
#
BEGIN {
@@ -19,114 +19,319 @@ BEGIN {
$| = 1;
}
-no utf8;
-
use strict;
-#use Test::More qw(no_plan);
-use Test::More tests => 14;
-use_ok("Encode::MIME::Header");
-
-my $eheader =<<'EOS';
-From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>
-To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
-CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
-Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
- =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
-EOS
-
-my $dheader=<<"EOS";
-From: Keith Moore <moore\@cs.utk.edu>
-To: Keld J\xF8rn Simonsen <keld\@dkuug.dk>
-CC: Andr\xE9 Pirard <PIRARD\@vm1.ulg.ac.be>
-Subject: If you can read this you understand the example.
-EOS
-
-is(Encode::decode('MIME-Header', $eheader), $dheader, "decode ASCII (RFC2047)");
use utf8;
+use charnames ":full";
+
+use Test::More tests => 266;
+
+BEGIN {
+ use_ok("Encode::MIME::Header");
+}
+
+my @decode_long_tests;
+if ($] < 5.009004) { # perl versions without Regular expressions Engine de-recursivised which cause stack overflow
+ push(@decode_long_tests, "a" x 1000000 => "a" x 1000000);
+ push(@decode_long_tests, "=?utf-8?Q?a?= " x 400 => "a" x 400 . " ");
+ push(@decode_long_tests, "=?utf-8?Q?a?= =?US-ASCII?Q?b?= " x 200 => "ab" x 200 . " ");
+} else {
+ push(@decode_long_tests, "a" x 1000000 => "a" x 1000000);
+ push(@decode_long_tests, "=?utf-8?Q?a?= " x 10000 => "a" x 10000 . " ");
+ push(@decode_long_tests, "=?utf-8?Q?a?= =?US-ASCII?Q?b?= " x 10000 => "ab" x 10000 . " ");
+}
+
+my @decode_tests = (
+ # RFC2047 p.5
+ "=?iso-8859-1?q?this=20is=20some=20text?=" => "this is some text",
+ # RFC2047 p.10
+ "=?US-ASCII?Q?Keith_Moore?=" => "Keith Moore",
+ "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?=" => "Keld Jørn Simonsen",
+ "=?ISO-8859-1?Q?Andr=E9?= Pirard" => "AndrĂŠ Pirard",
+ "=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\r\n =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=" => "If you can read this you understand the example.",
+ "=?ISO-8859-1?Q?Olle_J=E4rnefors?=" => "Olle Järnefors",
+ "=?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?=" => "Patrik FältstrÜm",
+ # RFC2047 p.11
+ "(=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)" => "(םולש ןב ילטפנ)",
+ "(=?ISO-8859-1?Q?a?=)" => "(a)",
+ "(=?ISO-8859-1?Q?a?= b)" => "(a b)",
+ "(=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)" => "(ab)",
+ "(=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)" => "(ab)",
+ "(=?ISO-8859-1?Q?a?=\r\n\t=?ISO-8859-1?Q?b?=)" => "(ab)",
+ # RFC2047 p.12
+ "(=?ISO-8859-1?Q?a_b?=)" => '(a b)',
+ "(=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)" => "(a b)",
+ # RFC2231 p.6
+ "=?US-ASCII*EN?Q?Keith_Moore?=" => "Keith Moore",
+ # others
+ "=?US-ASCII*en-US?Q?Keith_Moore?=" => "Keith Moore",
+ "=?ISO-8859-1*da-DK?Q?Keld_J=F8rn_Simonsen?=" => "Keld Jørn Simonsen",
+ "=?ISO-8859-1*fr-BE?Q?Andr=E9?= Pirard" => "AndrĂŠ Pirard",
+ "=?ISO-8859-1*en?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=" => "If you can read this you understand the example.",
+ # multiple (separated by CRLF)
+ "=?US-ASCII?Q?a?=\r\n=?US-ASCII?Q?b?=" => "a\r\nb",
+ "a\r\nb" => "a\r\nb",
+ "a\r\n\r\nb" => "a\r\n\r\nb",
+ "a\r\n\r\nb\r\n" => "a\r\n\r\nb\r\n",
+ # multiple multiline (separated by CRLF)
+ "=?US-ASCII?Q?a?=\r\n =?US-ASCII?Q?b?=\r\n=?US-ASCII?Q?c?=" => "ab\r\nc",
+ "a\r\n b\r\nc" => "a b\r\nc",
+ # RT67569
+ "foo =?us-ascii?q?bar?=" => "foo bar",
+ "foo\r\n =?us-ascii?q?bar?=" => "foo bar",
+ "=?us-ascii?q?foo?= bar" => "foo bar",
+ "=?us-ascii?q?foo?=\r\n bar" => "foo bar",
+ "foo bar" => "foo bar",
+ "foo\r\n bar" => "foo bar",
+ "=?us-ascii?q?foo?= =?us-ascii?q?bar?=" => "foobar",
+ "=?us-ascii?q?foo?=\r\n =?us-ascii?q?bar?=" => "foobar",
+ # RT40027
+ "a: b\r\n c" => "a: b c",
+ # RT104422
+ "=?utf-8?Q?pre?= =?utf-8?B?IGZvbw==?=\r\n =?utf-8?Q?bar?=" => "pre foobar",
+ # RT114034 - replace invalid UTF-8 sequence with unicode replacement character
+ "=?utf-8?Q?=f9=80=80=80=80?=" => "ďż˝",
+ "=?utf-8?Q?=28=c3=29?=" => "(ďż˝)",
+ # decode only known MIME charsets, do not crash on invalid
+ "prefix =?unknown?Q?a=20b=20c?= middle =?US-ASCII?Q?d=20e=20f?= suffix" => "prefix =?unknown?Q?a=20b=20c?= middle d e f suffix",
+ "prefix =?US-ASCII?Q?a_b_c?= =?unknown?Q?d_e_f?= suffix" => "prefix a b c =?unknown?Q?d_e_f?= suffix",
+ "prefix =?US-ASCII?Q?a_b_c?= =?unknown?Q?d_e_f?= =?US-ASCII?Q?g_h_i?= suffix" => "prefix a b c =?unknown?Q?d_e_f?= g h i suffix",
+ # long strings
+ @decode_long_tests,
+ # separators around encoded words
+ "\r\n =?US-ASCII?Q?a?=" => " a",
+ "\r\n (=?US-ASCII?Q?a?=)" => " (a)",
+ "\r\n (=?US-ASCII?Q?a?=)\r\n " => " (a) ",
+ "(=?US-ASCII?Q?a?=)\r\n " => "(a) ",
+ " (=?US-ASCII?Q?a?=) " => " (a) ",
+ "(=?US-ASCII?Q?a?=) " => "(a) ",
+ " (=?US-ASCII?Q?a?=)" => " (a)",
+ "(=?US-ASCII?Q?a?=)(=?US-ASCII?Q?b?=)" => "(a)(b)",
+ "(=?US-ASCII?Q?a?=) (=?US-ASCII?Q?b?=)" => "(a) (b)",
+ "(=?US-ASCII?Q?a?=)\r\n (=?US-ASCII?Q?b?=)" => "(a) (b)",
+ "\r\n (=?US-ASCII?Q?a?=)\r\n (=?US-ASCII?Q?b?=)\r\n " => " (a) (b) ",
+ "\r\n(=?US-ASCII?Q?a?=)\r\n(=?US-ASCII?Q?b?=)" => "\r\n(a)\r\n(b)",
+);
+
+my @decode_default_tests = (
+ @decode_tests,
+ "=?us-ascii?q?foo bar?=" => "foo bar",
+ "=?us-ascii?q?foo\r\n bar?=" => "foo bar",
+ '=?us-ascii?q?foo=20=3cbar=40baz=2efoo=3e=20bar?=' => 'foo <bar@baz.foo> bar',
+ '"=?us-ascii?q?foo=20=3cbar=40baz=2efoo=3e=20bar?="' => '"foo <bar@baz.foo> bar"',
+ "=?us-ascii?q?foo?==?us-ascii?q?bar?=" => "foobar",
+ "foo=?us-ascii?q?bar?=" => "foobar",
+ "foo =?us-ascii?q?=20?==?us-ascii?q?bar?=" => "foo bar",
+ # Encode::MIME::Header pre 2.83
+ "[=?UTF-8?B?ZsOzcnVt?=]=?UTF-8?B?IHNwcsOhdmE=?=" => "[fĂłrum] sprĂĄva",
+ "test:=?UTF-8?B?IHNwcsOhdmE=?=" => "test: sprĂĄva",
+ "=?UTF-8?B?dMOpc3Q=?=:=?UTF-8?B?IHNwcsOhdmE=?=", "tĂŠst: sprĂĄva",
+ # multiple base64 parts in one b word
+ "=?us-ascii?b?Zg==Zg==?=" => "ff",
+ # b word with invalid characters
+ "=?us-ascii?b?Zm!!9!v?=" => "foo",
+ # concat consecutive words (with same parameters) and join them into one utf-8 symbol
+ "=?UTF-8?Q?=C3?= =?UTF-8?Q?=A1?=" => "ĂĄ",
+ # RT114034 - use strict UTF-8 decoder for invalid MIME charsets utf8, UTF8 and utf-8-strict
+ "=?utf8?Q?=C3=A1=f9=80=80=80=80?=" => "ĂĄďż˝",
+ "=?UTF8?Q?=C3=A1=f9=80=80=80=80?=" => "ĂĄďż˝",
+ "=?utf-8-strict?Q?=C3=A1=f9=80=80=80=80?=" => "ĂĄďż˝",
+ # allow non-ASCII characters in q word
+ "=?UTF-8?Q?\x{C3}\x{A1}?=" => "ĂĄ",
+);
+
+my @decode_strict_tests = (
+ @decode_tests,
+ "=?us-ascii?q?foo bar?=" => "=?us-ascii?q?foo bar?=",
+ "=?us-ascii?q?foo\r\n bar?=" => "=?us-ascii?q?foo bar?=",
+ '=?us-ascii?q?foo=20=3cbar=40baz=2efoo=3e=20bar?=' => 'foo <bar@baz.foo> bar',
+ '"=?us-ascii?q?foo=20=3cbar=40baz=2efoo=3e=20bar?="' => '"=?us-ascii?q?foo=20=3cbar=40baz=2efoo=3e=20bar?="',
+ # do not decode invalid q words
+ "=?us-ascii?q?foo=?=" => "=?us-ascii?q?foo=?=",
+ "=?us-ascii?q?foo=?= =?us-ascii?q?foo?=" => "=?us-ascii?q?foo=?= foo",
+ # do not decode invalid b words
+ "=?us-ascii?b?----?=" => "=?us-ascii?b?----?=",
+ "=?us-ascii?b?Zm8=-?= =?us-ascii?b?Zm9v?= and =?us-ascii?b?Zg==?=" => "=?us-ascii?b?Zm8=-?= foo and f",
+ "=?us-ascii?b?----?= =?us-ascii?b?Zm9v?= and =?us-ascii?b?Zg==?=" => "=?us-ascii?b?----?= foo and f",
+ # RT114034 - utf8, UTF8 and also utf-8-strict are invalid MIME charset, do not decode it
+ "=?utf8?Q?=C3=A1?=" => "=?utf8?Q?=C3=A1?=",
+ "=?UTF8?Q?=C3=A1?=" => "=?UTF8?Q?=C3=A1?=",
+ "=?utf-8-strict?Q?=C3=A1?=" => "=?utf-8-strict?Q?=C3=A1?=",
+ # do not allow non-ASCII characters in q word
+ "=?UTF-8?Q?\x{C3}\x{A1}?=" => "=?UTF-8?Q?\x{C3}\x{A1}?=",
+);
+
+my @encode_tests = (
+ "小飼 弾" => "=?UTF-8?B?5bCP6aO8IOW8vg==?=", "=?UTF-8?Q?=E5=B0=8F=E9=A3=BC_=E5=BC=BE?=",
+ "漢字、カタカナ、ひらがなを含む、非常に長いタイトル行が一体全体どのようにしてEncodeされるのか?" => "=?UTF-8?B?5ryi5a2X44CB44Kr44K/44Kr44OK44CB44Gy44KJ44GM44Gq44KS5ZCr44KA?=\r\n =?UTF-8?B?44CB6Z2e5bi444Gr6ZW344GE44K/44Kk44OI44Or6KGM44GM5LiA5L2T5YWo?=\r\n =?UTF-8?B?5L2T44Gp44Gu44KI44GG44Gr44GX44GmRW5jb2Rl44GV44KM44KL44Gu44GL?=\r\n =?UTF-8?B?77yf?=", "=?UTF-8?Q?=E6=BC=A2=E5=AD=97=E3=80=81=E3=82=AB=E3=82=BF=E3=82=AB=E3=83=8A?=\r\n =?UTF-8?Q?=E3=80=81=E3=81=B2=E3=82=89=E3=81=8C=E3=81=AA=E3=82=92=E5=90=AB?=\r\n =?UTF-8?Q?=E3=82=80=E3=80=81=E9=9D=9E=E5=B8=B8=E3=81=AB=E9=95=B7=E3=81=84?=\r\n =?UTF-8?Q?=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E8=A1=8C=E3=81=8C=E4=B8=80?=\r\n =?UTF-8?Q?=E4=BD=93=E5=85=A8=E4=BD=93=E3=81=A9=E3=81=AE=E3=82=88=E3=81=86?=\r\n =?UTF-8?Q?=E3=81=AB=E3=81=97=E3=81=A6Encode=E3=81=95=E3=82=8C=E3=82=8B?=\r\n =?UTF-8?Q?=E3=81=AE=E3=81=8B=EF=BC=9F?=",
+ # double encode
+ "What is =?UTF-8?B?w4RwZmVs?= ?" => "=?UTF-8?B?V2hhdCBpcyA9P1VURi04P0I/dzRSd1ptVnM/PSA/?=", "=?UTF-8?Q?What_is_=3D=3FUTF-8=3FB=3Fw4RwZmVs=3F=3D_=3F?=",
+ # pound 1024
+ "\N{POUND SIGN}1024" => "=?UTF-8?B?wqMxMDI0?=", "=?UTF-8?Q?=C2=A31024?=",
+ # latin1 characters
+ "\x{fc}" => "=?UTF-8?B?w7w=?=", "=?UTF-8?Q?=C3=BC?=",
+ # RT42627
+ Encode::decode_utf8("\x{c2}\x{a3}xxxxxxxxxxxxxxxxxxx0") => "=?UTF-8?B?wqN4eHh4eHh4eHh4eHh4eHh4eHh4MA==?=", "=?UTF-8?Q?=C2=A3xxxxxxxxxxxxxxxxxxx0?=",
+ # RT87831
+ "0" => "=?UTF-8?B?MA==?=", "=?UTF-8?Q?0?=",
+ # RT88717
+ "Hey foo\x{2024}bar:whee" => "=?UTF-8?B?SGV5IGZvb+KApGJhcjp3aGVl?=", "=?UTF-8?Q?Hey_foo=E2=80=A4bar=3Awhee?=",
+ # valid q chars
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz !*+-/" => "=?UTF-8?B?MDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hp?=\r\n =?UTF-8?B?amtsbW5vcHFyc3R1dnd4eXogISorLS8=?=", "=?UTF-8?Q?0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_?=\r\n =?UTF-8?Q?!*+-/?=",
+ # invalid q chars
+ "." => "=?UTF-8?B?Lg==?=", "=?UTF-8?Q?=2E?=",
+ "," => "=?UTF-8?B?LA==?=", "=?UTF-8?Q?=2C?=",
+ # long ascii sequence
+ "a" x 100 => "=?UTF-8?B?YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh?=\r\n =?UTF-8?B?YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh?=\r\n =?UTF-8?B?YWFhYWFhYWFhYQ==?=", "=?UTF-8?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=\r\n =?UTF-8?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=",
+ # long unicode sequence
+ "😀" x 100 => "=?UTF-8?B?8J+YgPCfmIDwn5iA8J+YgPCfmIDwn5iA8J+YgPCfmIDwn5iA8J+YgPCfmIA=?=\r\n " x 9 . "=?UTF-8?B?8J+YgA==?=", join("\r\n ", ("=?UTF-8?Q?=F0=9F=98=80=F0=9F=98=80=F0=9F=98=80=F0=9F=98=80=F0=9F=98=80?=") x 20),
+);
+
+sub info {
+ my ($str, $str1, $str2) = @_;
+ substr $str1, 1000, -3, "..." if defined $str1 and length $str1 > 1000;
+ substr $str2, 1000, -3, "..." if defined $str2 and length $str2 > 1000;
+ $str .= ": $str1" if defined $str1;
+ $str .= " => $str2" if defined $str2;
+ $str = Encode::encode_utf8($str);
+ $str =~ s/\r/\\r/gs;
+ $str =~ s/\n/\\n/gs;
+ return $str;
+}
+
+sub check_length {
+ my ($str) = @_;
+ my @lines = split /\r\n /, $str;
+ my @long = grep { length($_) > 75 } @lines;
+ return scalar @long == 0;
+}
+
+my @splice;
+
+@splice = @encode_tests;
+while (my ($d, $b, $q) = splice @splice, 0, 3) {
+ is Encode::encode("MIME-Header", $d) => $b, info("encode default", $d => $b);
+ is Encode::encode("MIME-B", $d) => $b, info("encode base64", $d => $b);
+ is Encode::encode("MIME-Q", $d) => $q, info("encode qp", $d => $q);
+ is Encode::decode("MIME-B", $b) => $d, info("decode base64", $b => $d);
+ is Encode::decode("MIME-Q", $q) => $d, info("decode qp", $b => $d);
+ ok check_length($b), info("correct encoded length base64", $b);
+ ok check_length($q), info("correct encoded length qp", $q);
+}
+
+@splice = @decode_default_tests;
+while (my ($e, $d) = splice @splice, 0, 2) {
+ is Encode::decode("MIME-Header", $e) => $d, info("decode default", $e => $d);
+}
+
+local $Encode::MIME::Header::STRICT_DECODE = 1;
+
+@splice = @decode_strict_tests;
+while (my ($e, $d) = splice @splice, 0, 2) {
+ is Encode::decode("MIME-Header", $e) => $d, info("decode strict", $e => $d);
+}
+
+my $valid_unicode = "ĂĄ";
+my $invalid_unicode = "\x{1000000}";
+{
+ my $input = $valid_unicode;
+ my $output = Encode::encode("MIME-Header", $input, Encode::FB_QUIET);
+ is $output => Encode::encode("MIME-Header", $valid_unicode), "encode valid with FB_QUIET flag: output string is valid";
+ is $input => "", "encode valid with FB_QUIET flag: input string is modified and empty";
+}
+{
+ my $input = $valid_unicode . $invalid_unicode;
+ my $output = Encode::encode("MIME-Header", $input, Encode::FB_QUIET);
+ is $output => Encode::encode("MIME-Header", $valid_unicode), "encode with FB_QUIET flag: output string stops before first invalid character";
+ is $input => $invalid_unicode, "encode with FB_QUIET flag: input string is modified and starts with first invalid character";
+}
+{
+ my $input = $valid_unicode . $invalid_unicode;
+ my $output = Encode::encode("MIME-Header", $input, Encode::FB_QUIET | Encode::LEAVE_SRC);
+ is $output => Encode::encode("MIME-Header", $valid_unicode), "encode with FB_QUIET and LEAVE_SRC flags: output string stops before first invalid character";
+ is $input => $valid_unicode . $invalid_unicode, "encode with FB_QUIET and LEAVE_SRC flags: input string is not modified";
+}
+{
+ my $input = $valid_unicode . $invalid_unicode;
+ my $output = Encode::encode("MIME-Header", $input, Encode::FB_PERLQQ);
+ is $output => Encode::encode("MIME-Header", $valid_unicode . '\x{1000000}'), "encode with FB_PERLQQ flag: output string contains perl qq representation of invalid character";
+ is $input => $valid_unicode . $invalid_unicode, "encode with FB_PERLQQ flag: input string is not modified";
+}
+{
+ my $input = $valid_unicode;
+ my $output = Encode::encode("MIME-Header", $input, sub { sprintf("!0x%X!", $_[0]) });
+ is $output => Encode::encode("MIME-Header", $valid_unicode), "encode valid with coderef check: output string is valid";
+ is $input => $valid_unicode, "encode valid with coderef check: input string is not modified";
+}
+{
+ my $input = $valid_unicode . $invalid_unicode;
+ my $output = Encode::encode("MIME-Header", $input, sub { sprintf("!0x%X!", $_[0]) });
+ is $output => Encode::encode("MIME-Header", $valid_unicode . '!0x1000000!'), "encode with coderef check: output string contains output from coderef";
+ is $input => $valid_unicode . $invalid_unicode, "encode with coderef check: input string is not modified";
+}
+
+my $valid_mime = "=?US-ASCII?Q?d=20e=20f?=";
+my $invalid_mime = "=?unknown?Q?a=20b=20c?=";
+my $invalid_mime_unicode = "=?utf-8?Q?=28=c3=29?=";
+{
+ my $input = $valid_mime;
+ my $output = Encode::decode("MIME-Header", $input, Encode::FB_QUIET);
+ is $output => Encode::decode("MIME-Header", $valid_mime), "decode valid with FB_QUIET flag: output string is valid";
+ is $input => "", "decode valid with FB_QUIET flag: input string is modified and empty";
+}
+{
+ my $input = $valid_mime . " " . $invalid_mime;
+ my $output = Encode::decode("MIME-Header", $input, Encode::FB_QUIET);
+ is $output => Encode::decode("MIME-Header", $valid_mime), "decode with FB_QUIET flag: output string stops before first mime word with unknown charset";
+ is $input => $invalid_mime, "decode with FB_QUIET flag: input string is modified and starts with first mime word with unknown charset";
+}
+{
+ my $input = $valid_mime . " " . $invalid_mime_unicode;
+ my $output = Encode::decode("MIME-Header", $input, Encode::FB_QUIET);
+ is $output => Encode::decode("MIME-Header", $valid_mime), "decode with FB_QUIET flag: output string stops before first mime word with invalid unicode character";
+ is $input => $invalid_mime_unicode, "decode with FB_QUIET flag: input string is modified and starts with first mime word with invalid unicode character";
+}
+{
+ my $input = $valid_mime . " " . $invalid_mime;
+ my $output = Encode::decode("MIME-Header", $input, Encode::FB_QUIET | Encode::LEAVE_SRC);
+ is $output => Encode::decode("MIME-Header", $valid_mime), "decode with FB_QUIET and LEAVE_SRC flags: output string stops before first mime word with unknown charset";
+ is $input => $valid_mime . " " . $invalid_mime, "decode with FB_QUIET flag: input string is not modified";
+}
+{
+ my $input = $valid_mime . " " . $invalid_mime_unicode;
+ my $output = Encode::decode("MIME-Header", $input, Encode::FB_QUIET | Encode::LEAVE_SRC);
+ is $output => Encode::decode("MIME-Header", $valid_mime), "decode with FB_QUIET and LEAVE_SRC flags: output string stops before first mime word with invalid unicode character";
+ is $input => $valid_mime . " " . $invalid_mime_unicode, "decode with FB_QUIET flag: input string is not modified";
+}
+{
+ my $input = $valid_mime . " " . $invalid_mime;
+ my $output = Encode::decode("MIME-Header", $input, Encode::FB_PERLQQ);
+ is $output => Encode::decode("MIME-Header", $valid_mime) . " " . $invalid_mime, "decode with FB_PERLQQ flag: output string contains unmodified mime word with unknown charset";
+ is $input => $valid_mime . " " . $invalid_mime, "decode with FB_QUIET flag: input string is not modified";
+}
+{
+ my $input = $valid_mime . " " . $invalid_mime_unicode;
+ my $output = Encode::decode("MIME-Header", $input, Encode::FB_PERLQQ);
+ is $output => Encode::decode("MIME-Header", $valid_mime) . '(\xC3)', "decode with FB_PERLQQ flag: output string contains perl qq representation of invalid unicode character";
+ is $input => $valid_mime . " " . $invalid_mime_unicode, "decode with FB_QUIET flag: input string is not modified";
+}
+{
+ my $input = $valid_mime;
+ my $output = Encode::decode("MIME-Header", $input, sub { sprintf("!0x%X!", $_[0]) });
+ is $output => Encode::decode("MIME-Header", $valid_mime), "decode valid with coderef check: output string is valid";
+ is $input => $valid_mime, "decode valid with coderef check: input string is not modified";
+}
+{
+ my $input = $valid_mime . " " . $invalid_mime;
+ my $output = Encode::decode("MIME-Header", $input, sub { sprintf("!0x%X!", $_[0]) });
+ is $output => Encode::decode("MIME-Header", $valid_mime) . " " . $invalid_mime, "decode with coderef check: output string contains unmodified mime word with unknown charset";
+ is $input => $valid_mime . " " . $invalid_mime, "decode with coderef check: input string is not modified";
+}
+{
+ my $input = $valid_mime . " " . $invalid_mime_unicode;
+ my $output = Encode::decode("MIME-Header", $input, sub { sprintf("!0x%X!", $_[0]) });
+ is $output => Encode::decode("MIME-Header", $valid_mime) . '(!0xC3!)', "decode with coderef check: output string contains output from coderef for invalid unicode character";
+ is $input => $valid_mime . " " . $invalid_mime_unicode, "decode with coderef check: input string is not modified";
+}
-my $uheader =<<'EOS';
-From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>
-To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
-CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
-Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
- =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
-EOS
-
-is(Encode::decode('MIME-Header', $uheader), $dheader, "decode UTF-8 (RFC2047)");
-
-my $lheader =<<'EOS';
-From: =?US-ASCII*en-US?Q?Keith_Moore?= <moore@cs.utk.edu>
-To: =?ISO-8859-1*da-DK?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
-CC: =?ISO-8859-1*fr-BE?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>
-Subject: =?ISO-8859-1*en?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
- =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
-EOS
-
-is(Encode::decode('MIME-Header', $lheader), $dheader, "decode language tag (RFC2231)");
-
-
-$dheader=<<'EOS';
-From: 小飼 弾 <dankogai@dan.co.jp>
-To: dankogai@dan.co.jp (小飼=Kogai, 弾=Dan)
-Subject: 漢字、カタカナ、ひらがなを含む、非常に長いタイトル行が一体全体どのようにしてEncodeされるのか?
-EOS
-
-my $bheader =<<'EOS';
-From: =?UTF-8?B?5bCP6aO8IOW8viA8ZGFua29nYWlAZGFuLmNvLmpwPg==?=
-To: =?UTF-8?B?ZGFua29nYWlAZGFuLmNvLmpwICjlsI/po7w9S29nYWksIOW8vj1EYW4p?=
-Subject:
- =?UTF-8?B?5ryi5a2X44CB44Kr44K/44Kr44OK44CB44Gy44KJ44GM44Gq44KS5ZCr44KA?=
- =?UTF-8?B?44CB6Z2e5bi444Gr6ZW344GE44K/44Kk44OI44Or6KGM44GM5LiA5L2T5YWo?=
- =?UTF-8?B?5L2T44Gp44Gu44KI44GG44Gr44GX44GmRW5jb2Rl44GV44KM44KL44Gu44GL?=
- =?UTF-8?B?77yf?=
-EOS
-
-my $qheader=<<'EOS';
-From: =?UTF-8?Q?=E5=B0=8F=E9=A3=BC=20=E5=BC=BE=20=3Cdankogai=40?=
- =?UTF-8?Q?dan=2Eco=2Ejp=3E?=
-To: =?UTF-8?Q?dankogai=40dan=2Eco=2Ejp=20=28?=
- =?UTF-8?Q?=E5=B0=8F=E9=A3=BC=3DKogai=2C=20=E5=BC=BE=3DDan?= =?UTF-8?Q?=29?=
-Subject:
- =?UTF-8?Q?=E6=BC=A2=E5=AD=97=E3=80=81=E3=82=AB=E3=82=BF=E3=82=AB=E3=83=8A?=
- =?UTF-8?Q?=E3=80=81=E3=81=B2=E3=82=89=E3=81=8C=E3=81=AA=E3=82=92=E5=90=AB?=
- =?UTF-8?Q?=E3=82=80=E3=80=81=E9=9D=9E=E5=B8=B8=E3=81=AB=E9=95=B7=E3=81=84?=
- =?UTF-8?Q?=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E8=A1=8C=E3=81=8C=E4=B8=80?=
- =?UTF-8?Q?=E4=BD=93=E5=85=A8=E4=BD=93=E3=81=A9=E3=81=AE=E3=82=88=E3=81=86?=
- =?UTF-8?Q?=E3=81=AB=E3=81=97=E3=81=A6Encode=E3=81=95=E3=82=8C?=
- =?UTF-8?Q?=E3=82=8B=E3=81=AE=E3=81=8B=EF=BC=9F?=
-EOS
-
-is(Encode::decode('MIME-Header', $bheader), $dheader, "decode B");
-is(Encode::decode('MIME-Header', $qheader), $dheader, "decode Q");
-is(Encode::encode('MIME-B', $dheader)."\n", $bheader, "encode B");
-is(Encode::encode('MIME-Q', $dheader)."\n", $qheader, "encode Q");
-
-$dheader = "What is =?UTF-8?B?w4RwZmVs?= ?";
-$bheader = "=?UTF-8?B?V2hhdCBpcyA9P1VURi04P0I/dzRSd1ptVnM/PSA/?=";
-$qheader = "=?UTF-8?Q?What=20is=20=3D=3FUTF=2D8=3FB=3Fw4R?="
- . "\n " . "=?UTF-8?Q?wZmVs=3F=3D=20=3F?=";
-is(Encode::encode('MIME-B', $dheader), $bheader, "Double decode B");
-is(Encode::encode('MIME-Q', $dheader), $qheader, "Double decode Q");
-{
- # From: Dave Evans <dave@rudolf.org.uk>
- # Subject: Bug in Encode::MIME::Header
- # Message-Id: <3F43440B.7060606@rudolf.org.uk>
- use charnames ":full";
- my $pound_1024 = "\N{POUND SIGN}1024";
- is(Encode::encode('MIME-Q' => $pound_1024), '=?UTF-8?Q?=C2=A31024?=',
- 'pound 1024');
-}
-
-is(Encode::encode('MIME-Q', "\x{fc}"), '=?UTF-8?Q?=C3=BC?=', 'Encode latin1 characters');
-
-# RT42627
-
-my $rt42627 = Encode::decode_utf8("\x{c2}\x{a3}xxxxxxxxxxxxxxxxxxx0");
-is(Encode::encode('MIME-Q', $rt42627),
- '=?UTF-8?Q?=C2=A3xxxxxxxxxxxxxxxxxxx?= =?UTF-8?Q?0?=',
- 'MIME-Q encoding does not truncate trailing zeros');
-
-# RT87831
-is(Encode::encode('MIME-Header', '0'), '=?UTF-8?B?MA==?=', 'RT87831');
-__END__;
+__END__
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/mime-name.t b/gnu/usr.bin/perl/cpan/Encode/t/mime-name.t
index 02ff49053a9..cec86c0362a 100755
--- a/gnu/usr.bin/perl/cpan/Encode/t/mime-name.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/mime-name.t
@@ -1,5 +1,5 @@
#
-# $Id: mime-name.t,v 1.1 2007/05/12 06:42:19 dankogai Exp $
+# $Id: mime-name.t,v 1.3 2017/10/06 22:21:53 dankogai Exp $
# This script is written in utf8
#
BEGIN {
@@ -23,14 +23,40 @@ use strict;
use warnings;
use Encode;
#use Test::More qw(no_plan);
-use Test::More tests => 68;
+use Test::More tests => 281;
+
+BEGIN {
+ use_ok("Encode::MIME::Name");
+}
-use_ok("Encode::MIME::Name");
for my $canon ( sort keys %Encode::MIME::Name::MIME_NAME_OF ) {
my $enc = find_encoding($canon);
my $mime_name = $Encode::MIME::Name::MIME_NAME_OF{$canon};
is $enc->mime_name, $mime_name,
- qq(\$enc->mime_name("$canon") eq $mime_name);
+ qq(find_encoding($canon)->mime_name eq $mime_name);
+ is $enc->name, $canon,
+ qq(find_encoding($canon)->name eq $canon);
+}
+for my $mime_name ( sort keys %Encode::MIME::Name::ENCODE_NAME_OF ) {
+ my $enc = find_mime_encoding($mime_name);
+ my $canon = $Encode::MIME::Name::ENCODE_NAME_OF{$mime_name};
+ my $mime_name = $Encode::MIME::Name::MIME_NAME_OF{$canon};
+ is $enc->mime_name, $mime_name,
+ qq(find_mime_encoding($mime_name)->mime_name eq $mime_name);
+ is $enc->name, $canon,
+ qq(find_mime_encoding($mime_name)->name eq $canon);
}
+ok find_encoding("utf8");
+ok find_encoding("UTF8");
+ok find_encoding("utf-8-strict");
+ok find_encoding("utf-8");
+ok find_encoding("UTF-8");
+
+ok not find_mime_encoding("utf8");
+ok not find_mime_encoding("UTF8");
+ok not find_mime_encoding("utf-8-strict");
+ok find_mime_encoding("utf-8");
+ok find_mime_encoding("UTF-8");
+
__END__;
diff --git a/gnu/usr.bin/perl/cpan/Encode/t/taint.t b/gnu/usr.bin/perl/cpan/Encode/t/taint.t
index 2446dd76d37..6fa46bd957e 100644
--- a/gnu/usr.bin/perl/cpan/Encode/t/taint.t
+++ b/gnu/usr.bin/perl/cpan/Encode/t/taint.t
@@ -1,13 +1,17 @@
#!/usr/bin/perl -T
use strict;
use Encode qw(encode decode);
+local %Encode::ExtModule = %Encode::Config::ExtModule;
use Scalar::Util qw(tainted);
use Test::More;
my $taint = substr($ENV{PATH},0,0);
my $str = "dan\x{5f3e}" . $taint; # tainted string to encode
my $bin = encode('UTF-8', $str); # tainted binary to decode
+my $notaint = "";
+my $notaint_str = "dan\x{5f3e}" . $notaint;
+my $notaint_bin = encode('UTF-8', $notaint_str);
my @names = Encode->encodings(':all');
-plan tests => 2 * @names;
+plan tests => 4 * @names + 2;
for my $name (@names) {
my ($d, $e, $s);
eval {
@@ -26,3 +30,25 @@ for my $name (@names) {
ok tainted($d), "decode $name";
}
}
+for my $name (@names) {
+ my ($d, $e, $s);
+ eval {
+ $e = encode($name, $notaint_str);
+ };
+ SKIP: {
+ skip $@, 1 if $@;
+ ok ! tainted($e), "encode $name";
+ }
+ $notaint_bin = $e.$notaint if $e;
+ eval {
+ $d = decode($name, $notaint_bin);
+ };
+ SKIP: {
+ skip $@, 1 if $@;
+ ok ! tainted($d), "decode $name";
+ }
+}
+Encode::_utf8_on($bin);
+ok(!Encode::is_utf8($bin), "Encode::_utf8_on does not work on tainted values");
+Encode::_utf8_off($str);
+ok(Encode::is_utf8($str), "Encode::_utf8_off does not work on tainted values");
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm b/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm
index 1b98c4321e2..047c007145e 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm
@@ -1,24 +1,18 @@
package ExtUtils::Install;
use strict;
-use vars qw(@ISA @EXPORT $VERSION $MUST_REBOOT %Config);
-
-use AutoSplit;
-use Carp ();
use Config qw(%Config);
use Cwd qw(cwd);
-use Exporter;
-use ExtUtils::Packlist;
+use Exporter ();
use File::Basename qw(dirname);
-use File::Compare qw(compare);
use File::Copy;
-use File::Find qw(find);
use File::Path;
use File::Spec;
+our @ISA = ('Exporter');
+our @EXPORT = ('install','uninstall','pm_to_blib', 'install_default');
-@ISA = ('Exporter');
-@EXPORT = ('install','uninstall','pm_to_blib', 'install_default');
+our $MUST_REBOOT;
=pod
@@ -38,11 +32,11 @@ ExtUtils::Install - install files from here to there
=head1 VERSION
-2.04
+2.14
=cut
-$VERSION = '2.04'; # <-- do not forget to update the POD section just above this line!
+our $VERSION = '2.14'; # <-- do not forget to update the POD section just above this line!
$VERSION = eval $VERSION;
=pod
@@ -95,19 +89,12 @@ Dies with a special message.
=cut
-my $Is_VMS = $^O eq 'VMS';
-my $Is_MacPerl = $^O eq 'MacOS';
-my $Is_Win32 = $^O eq 'MSWin32';
-my $Is_cygwin = $^O eq 'cygwin';
-my $CanMoveAtBoot = ($Is_Win32 || $Is_cygwin);
-my $Perm_Dir = $ENV{PERL_CORE} ? 0770 : 0755;
-
-# *note* CanMoveAtBoot is only incidentally the same condition as below
-# this needs not hold true in the future.
-my $Has_Win32API_File = ($Is_Win32 || $Is_cygwin)
- ? (eval {require Win32API::File; 1} || 0)
- : 0;
-
+BEGIN {
+ *Is_VMS = $^O eq 'VMS' ? sub(){1} : sub(){0};
+ *Is_Win32 = $^O eq 'MSWin32' ? sub(){1} : sub(){0};
+ *Is_cygwin = $^O eq 'cygwin' ? sub(){1} : sub(){0};
+ *CanMoveAtBoot = ($^O eq 'MSWin32' || $^O eq 'cygwin') ? sub(){1} : sub(){0};
+}
my $Inc_uninstall_warn_handler;
@@ -115,9 +102,12 @@ my $Inc_uninstall_warn_handler;
my $INSTALL_ROOT = $ENV{PERL_INSTALL_ROOT};
my $INSTALL_QUIET = $ENV{PERL_INSTALL_QUIET};
+$INSTALL_QUIET = 1
+ if (!exists $ENV{PERL_INSTALL_QUIET} and
+ defined $ENV{MAKEFLAGS} and
+ $ENV{MAKEFLAGS} =~ /\b(s|silent|quiet)\b/);
my $Curdir = File::Spec->curdir;
-my $Updir = File::Spec->updir;
sub _estr(@) {
return join "\n",'!' x 72,@_,'!' x 72,'';
@@ -133,9 +123,24 @@ sub _warnonce(@) {
sub _choke(@) {
my $first=shift;
my $msg=_estr "ERROR: $first",@_;
+ require Carp;
Carp::croak($msg);
}
+sub _croak {
+ require Carp;
+ Carp::croak(@_);
+}
+sub _confess {
+ require Carp;
+ Carp::confess(@_);
+}
+
+sub _compare {
+ require File::Compare;
+ File::Compare::compare(@_);
+}
+
sub _chmod($$;$) {
my ( $mode, $item, $verbose )=@_;
@@ -174,47 +179,53 @@ If $moan is true then returns 0 on error and warns instead of dies.
=cut
+{
+ my $Has_Win32API_File;
+ sub _move_file_at_boot { #XXX OS-SPECIFIC
+ my ( $file, $target, $moan )= @_;
+ _confess("Panic: Can't _move_file_at_boot on this platform!")
+ unless CanMoveAtBoot;
+
+ my $descr= ref $target
+ ? "'$file' for deletion"
+ : "'$file' for installation as '$target'";
+
+ # *note* CanMoveAtBoot is only incidentally the same condition as below
+ # this needs not hold true in the future.
+ $Has_Win32API_File = (Is_Win32 || Is_cygwin)
+ ? (eval {require Win32API::File; 1} || 0)
+ : 0 unless defined $Has_Win32API_File;
+ if ( ! $Has_Win32API_File ) {
+
+ my @msg=(
+ "Cannot schedule $descr at reboot.",
+ "Try installing Win32API::File to allow operations on locked files",
+ "to be scheduled during reboot. Or try to perform the operation by",
+ "hand yourself. (You may need to close other perl processes first)"
+ );
+ if ( $moan ) { _warnonce(@msg) } else { _choke(@msg) }
+ return 0;
+ }
+ my $opts= Win32API::File::MOVEFILE_DELAY_UNTIL_REBOOT();
+ $opts= $opts | Win32API::File::MOVEFILE_REPLACE_EXISTING()
+ unless ref $target;
+ _chmod( 0666, $file );
+ _chmod( 0666, $target ) unless ref $target;
-sub _move_file_at_boot { #XXX OS-SPECIFIC
- my ( $file, $target, $moan )= @_;
- Carp::confess("Panic: Can't _move_file_at_boot on this platform!")
- unless $CanMoveAtBoot;
-
- my $descr= ref $target
- ? "'$file' for deletion"
- : "'$file' for installation as '$target'";
-
- if ( ! $Has_Win32API_File ) {
-
- my @msg=(
- "Cannot schedule $descr at reboot.",
- "Try installing Win32API::File to allow operations on locked files",
- "to be scheduled during reboot. Or try to perform the operation by",
- "hand yourself. (You may need to close other perl processes first)"
- );
- if ( $moan ) { _warnonce(@msg) } else { _choke(@msg) }
+ if (Win32API::File::MoveFileEx( $file, $target, $opts )) {
+ $MUST_REBOOT ||= ref $target ? 0 : 1;
+ return 1;
+ } else {
+ my @msg=(
+ "MoveFileEx $descr at reboot failed: $^E",
+ "You may try to perform the operation by hand yourself. ",
+ "(You may need to close other perl processes first).",
+ );
+ if ( $moan ) { _warnonce(@msg) } else { _choke(@msg) }
+ }
return 0;
}
- my $opts= Win32API::File::MOVEFILE_DELAY_UNTIL_REBOOT();
- $opts= $opts | Win32API::File::MOVEFILE_REPLACE_EXISTING()
- unless ref $target;
-
- _chmod( 0666, $file );
- _chmod( 0666, $target ) unless ref $target;
-
- if (Win32API::File::MoveFileEx( $file, $target, $opts )) {
- $MUST_REBOOT ||= ref $target ? 0 : 1;
- return 1;
- } else {
- my @msg=(
- "MoveFileEx $descr at reboot failed: $^E",
- "You may try to perform the operation by hand yourself. ",
- "(You may need to close other perl processes first).",
- );
- if ( $moan ) { _warnonce(@msg) } else { _choke(@msg) }
- }
- return 0;
}
@@ -271,7 +282,7 @@ sub _unlink_or_rename { #XXX OS-SPECIFIC
my $error="$!";
_choke("Cannot unlink '$file': $!")
- unless $CanMoveAtBoot && $tryhard;
+ unless CanMoveAtBoot && $tryhard;
my $tmp= "AAA";
++$tmp while -e "$file.$tmp";
@@ -380,8 +391,8 @@ Abstract a -w check that tries to use POSIX::access() if possible.
sub _have_write_access {
my $dir=shift;
unless (defined $has_posix) {
- $has_posix= (!$Is_cygwin && !$Is_Win32
- && eval 'local $^W; require POSIX; 1') || 0;
+ $has_posix = (!Is_cygwin && !Is_Win32
+ && eval { local $^W; require POSIX; 1} ) || 0;
}
if ($has_posix) {
return POSIX::access($dir, POSIX::W_OK());
@@ -426,7 +437,7 @@ sub _can_write_dir {
my $path='';
my @make;
while (@dirs) {
- if ($Is_VMS) {
+ if (Is_VMS) {
$dir = File::Spec->catdir($vol,@dirs);
}
else {
@@ -520,7 +531,7 @@ sub _copy {
}
if (!$dry_run) {
File::Copy::copy($from,$to)
- or Carp::croak( _estr "ERROR: Cannot copy '$from' to '$to': $!" );
+ or _croak( _estr "ERROR: Cannot copy '$from' to '$to': $!" );
}
}
@@ -674,7 +685,7 @@ sub install { #XXX OS-SPECIFIC
if (@_==1 and eval { 1+@$from_to }) {
my %opts = @$from_to;
$from_to = $opts{from_to}
- or Carp::confess("from_to is a mandatory parameter");
+ or _confess("from_to is a mandatory parameter");
$verbose = $opts{verbose};
$dry_run = $opts{dry_run};
$uninstall_shadows = $opts{uninstall_shadows};
@@ -695,6 +706,7 @@ sub install { #XXX OS-SPECIFIC
my(%from_to) = %$from_to;
my(%pack, $dir, %warned);
+ require ExtUtils::Packlist;
my($packlist) = ExtUtils::Packlist->new();
local(*DIR);
@@ -707,6 +719,13 @@ sub install { #XXX OS-SPECIFIC
my $cwd = cwd();
my @found_files;
my %check_dirs;
+ require File::Find;
+
+ my $blib_lib = File::Spec->catdir('blib', 'lib');
+ my $blib_arch = File::Spec->catdir('blib', 'arch');
+
+ # File::Find seems to always be Unixy except on MacPerl :(
+ my $current_directory = $^O eq 'MacOS' ? $Curdir : '.';
MOD_INSTALL: foreach my $source (sort keys %from_to) {
#copy the tree to the target directory without altering
@@ -721,8 +740,6 @@ sub install { #XXX OS-SPECIFIC
my $targetroot = install_rooted_dir($from_to{$source});
- my $blib_lib = File::Spec->catdir('blib', 'lib');
- my $blib_arch = File::Spec->catdir('blib', 'arch');
if ($source eq $blib_lib and
exists $from_to{$blib_arch} and
directory_not_empty($blib_arch)
@@ -735,9 +752,7 @@ sub install { #XXX OS-SPECIFIC
_chdir($source);
# 5.5.3's File::Find missing no_chdir option
# XXX OS-SPECIFIC
- # File::Find seems to always be Unixy except on MacPerl :(
- my $current_directory= $Is_MacPerl ? $Curdir : '.';
- find(sub {
+ File::Find::find(sub {
my ($mode,$size,$atime,$mtime) = (stat)[2,7,8,9];
return if !-f _;
@@ -766,7 +781,7 @@ sub install { #XXX OS-SPECIFIC
$diff++;
} else {
# we might not need to copy this file
- $diff = compare($sourcefile, $targetfile);
+ $diff = _compare($sourcefile, $targetfile);
}
$check_dirs{$targetdir}++
unless -w $targetfile;
@@ -784,7 +799,7 @@ sub install { #XXX OS-SPECIFIC
_chdir($cwd);
}
foreach my $targetdir (sort keys %check_dirs) {
- _mkpath( $targetdir, 0, $Perm_Dir, $verbose, $dry_run );
+ _mkpath( $targetdir, 0, 0755, $verbose, $dry_run );
}
foreach my $found (@found_files) {
my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime,
@@ -798,7 +813,7 @@ sub install { #XXX OS-SPECIFIC
$targetfile= _unlink_or_rename( $targetfile, 'tryhard', 'install' )
unless $dry_run;
} elsif ( ! -d $targetdir ) {
- _mkpath( $targetdir, 0, $Perm_Dir, $verbose, $dry_run );
+ _mkpath( $targetdir, 0, 0755, $verbose, $dry_run );
}
print "Installing $targetfile\n";
@@ -807,7 +822,7 @@ sub install { #XXX OS-SPECIFIC
#XXX OS-SPECIFIC
print "utime($atime,$mtime,$targetfile)\n" if $verbose>1;
- utime($atime,$mtime + $Is_VMS,$targetfile) unless $dry_run>1;
+ utime($atime,$mtime + Is_VMS,$targetfile) unless $dry_run>1;
$mode = 0444 | ( $mode & 0111 ? 0111 : 0 );
@@ -838,7 +853,7 @@ sub install { #XXX OS-SPECIFIC
if ($pack{'write'}) {
$dir = install_rooted_dir(dirname($pack{'write'}));
- _mkpath( $dir, 0, $Perm_Dir, $verbose, $dry_run );
+ _mkpath( $dir, 0, 0755, $verbose, $dry_run );
print "Writing $pack{'write'}\n" if $verbose;
$packlist->write(install_rooted_file($pack{'write'})) unless $dry_run;
}
@@ -937,7 +952,8 @@ Returns 0 if there is not.
sub directory_not_empty ($) {
my($dir) = @_;
my $files = 0;
- find(sub {
+ require File::Find;
+ File::Find::find(sub {
return if $_ eq ".exists";
if (-f) {
$File::Find::prune++;
@@ -971,7 +987,7 @@ Consider its use discouraged.
=cut
sub install_default {
- @_ < 2 or Carp::croak("install_default should be called with 0 or 1 argument");
+ @_ < 2 or _croak("install_default should be called with 0 or 1 argument");
my $FULLEXT = @_ ? shift : $ARGV[0];
defined $FULLEXT or die "Do not know to where to write install log";
my $INST_LIB = File::Spec->catdir($Curdir,"blib","lib");
@@ -1027,6 +1043,7 @@ sub uninstall {
unless -f $fil;
# my $my_req = $self->catfile(qw(auto ExtUtils Install forceunlink.al));
# require $my_req; # Hairy, but for the first
+ require ExtUtils::Packlist;
my ($packlist) = ExtUtils::Packlist->new($fil);
foreach (sort(keys(%$packlist))) {
chomp;
@@ -1077,7 +1094,7 @@ sub inc_uninstall {
#warn join "\n","---",@dirs,"---";
my $seen_ours;
foreach $dir ( @dirs ) {
- my $canonpath = $Is_VMS ? $dir : File::Spec->canonpath($dir);
+ my $canonpath = Is_VMS ? $dir : File::Spec->canonpath($dir);
next if $canonpath eq $Curdir;
next if $seen_dir{$canonpath}++;
my $targetfile = File::Spec->catfile($canonpath,$libdir,$file);
@@ -1089,7 +1106,7 @@ sub inc_uninstall {
my $diff = 0;
if ( -f $targetfile && -s _ == -s $filepath) {
# We have a good chance, we can skip this one
- $diff = compare($filepath,$targetfile);
+ $diff = _compare($filepath,$targetfile);
} else {
$diff++;
}
@@ -1159,11 +1176,12 @@ sub run_filter {
=item B<pm_to_blib>
+ pm_to_blib(\%from_to);
pm_to_blib(\%from_to, $autosplit_dir);
pm_to_blib(\%from_to, $autosplit_dir, $filter_cmd);
Copies each key of %from_to to its corresponding value efficiently.
-Filenames with the extension .pm are autosplit into the $autosplit_dir.
+If an $autosplit_dir is provided, all .pm files will be autosplit into it.
Any destination directories are created.
$filter_cmd is an optional shell command to run each .pm file through
@@ -1181,7 +1199,7 @@ environment variable will silence this output.
sub pm_to_blib {
my($fromto,$autodir,$pm_filter) = @_;
- _mkpath($autodir,0,$Perm_Dir);
+ _mkpath($autodir,0,0755) if defined $autodir;
while(my($from, $to) = each %$fromto) {
if( -f $to && -s $from == -s $to && -M $to < -M $from ) {
print "Skip $to (unchanged)\n" unless $INSTALL_QUIET;
@@ -1196,7 +1214,7 @@ sub pm_to_blib {
my $need_filtering = defined $pm_filter && length $pm_filter &&
$from =~ /\.pm$/;
- if (!$need_filtering && 0 == compare($from,$to)) {
+ if (!$need_filtering && 0 == _compare($from,$to)) {
print "Skip $to (unchanged)\n" unless $INSTALL_QUIET;
next;
}
@@ -1204,7 +1222,7 @@ sub pm_to_blib {
# we wont try hard here. its too likely to mess things up.
forceunlink($to);
} else {
- _mkpath(dirname($to),0,$Perm_Dir);
+ _mkpath(dirname($to),0,0755);
}
if ($need_filtering) {
run_filter($pm_filter, $from, $to);
@@ -1214,10 +1232,10 @@ sub pm_to_blib {
print "cp $from $to\n" unless $INSTALL_QUIET;
}
my($mode,$atime,$mtime) = (stat $from)[2,8,9];
- utime($atime,$mtime+$Is_VMS,$to);
+ utime($atime,$mtime+Is_VMS,$to);
_chmod(0444 | ( $mode & 0111 ? 0111 : 0 ),$to);
next unless $from =~ /\.pm$/;
- _autosplit($to,$autodir);
+ _autosplit($to,$autodir) if defined $autodir;
}
}
@@ -1235,7 +1253,8 @@ locking (ie. Windows). So we wrap it and close the filehandle.
=cut
sub _autosplit { #XXX OS-SPECIFIC
- my $retval = autosplit(@_);
+ require AutoSplit;
+ my $retval = AutoSplit::autosplit(@_);
close *AutoSplit::IN if defined *AutoSplit::IN{IO};
return $retval;
@@ -1266,7 +1285,7 @@ sub DESTROY {
$plural = $i>1 ? "all those files" : "this file";
my $inst = (_invokant() eq 'ExtUtils::MakeMaker')
? ( $Config::Config{make} || 'make' ).' install'
- . ( $Is_VMS ? '/MACRO="UNINST"=1' : ' UNINST=1' )
+ . ( ExtUtils::Install::Is_VMS ? '/MACRO="UNINST"=1' : ' UNINST=1' )
: './Build install uninst=1';
print "## Running '$inst' will unlink $plural for you.\n";
}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
index b4385fc8c60..0323ed40fa7 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
@@ -10,14 +10,20 @@ our @ISA = qw(Exporter);
our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist test_s cp_nonempty);
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
my $Is_VMS = $^O eq 'VMS';
-eval { require Time::HiRes; die unless Time::HiRes->can("stat"); };
-*mtime = $@ ?
- sub { [ stat($_[0])]->[9] } :
- sub { [Time::HiRes::stat($_[0])]->[9] } ;
+sub mtime {
+ no warnings 'redefine';
+ local $@;
+ *mtime = (eval { require Time::HiRes } && defined &Time::HiRes::stat)
+ ? sub { (Time::HiRes::stat($_[0]))[9] }
+ : sub { ( stat($_[0]))[9] }
+ ;
+ goto &mtime;
+}
=head1 NAME
@@ -199,7 +205,7 @@ Key/value pairs are extra information about the module. Fields include:
installed into which directory your module was out into
LINKTYPE dynamic or static linking
VERSION module version number
- EXE_FILES any executables installed in a space seperated
+ EXE_FILES any executables installed in a space separated
list
=cut
@@ -213,8 +219,9 @@ sub perllocal_install {
: @ARGV;
my $pod;
- $pod = sprintf <<POD, scalar localtime;
- =head2 %s: C<$type> L<$name|$name>
+ my $time = gmtime($ENV{SOURCE_DATE_EPOCH} || time);
+ $pod = sprintf <<'POD', scalar($time), $type, $name, $name;
+ =head2 %s: C<%s> L<%s|%s>
=over 4
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
index ed38f8fe5d9..700cb7347ab 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
@@ -2,7 +2,8 @@ package ExtUtils::Liblist;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
use File::Spec;
require ExtUtils::Liblist::Kid;
@@ -16,9 +17,9 @@ sub ext {
sub lsdir {
shift;
my $rex = qr/$_[1]/;
- opendir DIR, $_[0];
- my @out = grep /$rex/, readdir DIR;
- closedir DIR;
+ opendir my $dir_fh, $_[0];
+ my @out = grep /$rex/, readdir $dir_fh;
+ closedir $dir_fh;
return @out;
}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
index 93183a3792a..a6da855862f 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
@@ -11,7 +11,8 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
use ExtUtils::MakeMaker::Config;
use Cwd 'cwd';
@@ -56,6 +57,12 @@ sub _unix_os2_ext {
my ( $pwd ) = cwd(); # from Cwd.pm
my ( $found ) = 0;
+ if ( $^O eq 'darwin' or $^O eq 'next' ) {
+ # 'escape' Mach-O ld -framework and -F flags, so they aren't dropped later on
+ $potential_libs =~ s/(^|\s)(-(?:weak_|reexport_|lazy_)?framework)\s+(\S+)/$1-Wl,$2 -Wl,$3/g;
+ $potential_libs =~ s/(^|\s)(-F)\s*(\S+)/$1-Wl,$2 -Wl,$3/g;
+ }
+
foreach my $thislib ( split ' ', $potential_libs ) {
my ( $custom_name ) = '';
@@ -337,7 +344,7 @@ sub _win32_ext {
$libs_seen{$fullname} = 1 if $path; # why is this a special case?
}
- my @libs = keys %libs_seen;
+ my @libs = sort keys %libs_seen;
return ( '', '', '', '', ( $give_libs ? \@libs : () ) ) unless @extralibs;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
index a8a176bc394..b2c360bca3a 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
@@ -3,7 +3,8 @@ package ExtUtils::MM;
use strict;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
index bb7e6105a5f..b114ee49d30 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
@@ -1,14 +1,13 @@
package ExtUtils::MM_AIX;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
+use ExtUtils::MakeMaker::Config;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
-use ExtUtils::MakeMaker qw(neatvalue);
-
-
=head1 NAME
ExtUtils::MM_AIX - AIX specific subclass of ExtUtils::MM_Unix
@@ -35,35 +34,34 @@ Define DL_FUNCS and DL_VARS and write the *.exp files.
sub dlsyms {
my($self,%attribs) = @_;
+ return '' unless $self->needs_linking;
+ join "\n", $self->xs_dlsyms_iterator(\%attribs);
+}
- return '' unless $self->needs_linking();
-
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || [];
- my(@m);
-
- push(@m,"
-dynamic :: $self->{BASEEXT}.exp
-
-") unless $self->{SKIPHASH}{'dynamic'}; # dynamic and static are subs, so...
+=head3 xs_dlsyms_ext
- push(@m,"
-static :: $self->{BASEEXT}.exp
+On AIX, is C<.exp>.
-") unless $self->{SKIPHASH}{'static'}; # we avoid a warning if we tick them
+=cut
- push(@m,"
-$self->{BASEEXT}.exp: Makefile.PL
-",' $(PERLRUN) -e \'use ExtUtils::Mksymlists; \\
- Mksymlists("NAME" => "',$self->{NAME},'", "DL_FUNCS" => ',
- neatvalue($funcs), ', "FUNCLIST" => ', neatvalue($funclist),
- ', "DL_VARS" => ', neatvalue($vars), ');\'
-');
+sub xs_dlsyms_ext {
+ '.exp';
+}
- join('',@m);
+sub xs_dlsyms_arg {
+ my($self, $file) = @_;
+ return qq{-bE:${file}};
}
+sub init_others {
+ my $self = shift;
+ $self->SUPER::init_others;
+ # perl "hints" add -bE:$(BASEEXT).exp to LDDLFLAGS. strip that out
+ # so right value can be added by xs_make_dynamic_lib to work for XSMULTI
+ $self->{LDDLFLAGS} ||= $Config{lddlflags};
+ $self->{LDDLFLAGS} =~ s#(\s*)\S*\Q$(BASEEXT)\E\S*(\s*)#$1$2#;
+ return;
+}
=head1 AUTHOR
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
index 7679dc415a6..1a3893c30b6 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
@@ -1,7 +1,8 @@
package ExtUtils::MM_Any;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
use Carp;
use File::Spec;
@@ -9,7 +10,7 @@ use File::Basename;
BEGIN { our @ISA = qw(File::Spec); }
# We need $Verbose
-use ExtUtils::MakeMaker qw($Verbose);
+use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
use ExtUtils::MakeMaker::Config;
@@ -17,9 +18,10 @@ use ExtUtils::MakeMaker::Config;
# So we don't have to keep calling the methods over and over again,
# we have these globals to cache the values. Faster and shrtr.
my $Curdir = __PACKAGE__->curdir;
-my $Rootdir = __PACKAGE__->rootdir;
-my $Updir = __PACKAGE__->updir;
+#my $Updir = __PACKAGE__->updir;
+my $METASPEC_URL = 'https://metacpan.org/pod/CPAN::Meta::Spec';
+my $METASPEC_V = 2;
=head1 NAME
@@ -348,6 +350,34 @@ sub _expand_macros {
}
+=head3 make_type
+
+Returns a suitable string describing the type of makefile being written.
+
+=cut
+
+# override if this isn't suitable!
+sub make_type { return 'Unix-style'; }
+
+
+=head3 stashmeta
+
+ my @recipelines = $MM->stashmeta($text, $file);
+
+Generates a set of C<@recipelines> which will result in the literal
+C<$text> ending up in literal C<$file> when the recipe is executed. Call
+it once, with all the text you want in C<$file>. Make macros will not
+be expanded, so the locations will be fixed at configure-time, not
+at build-time.
+
+=cut
+
+sub stashmeta {
+ my($self, $text, $file) = @_;
+ $self->echo($text, $file, { allow_variables => 0, append => 0 });
+}
+
+
=head3 echo
my @commands = $MM->echo($text);
@@ -367,7 +397,7 @@ all C<$>.
Example of use:
- my $make = map "\t$_\n", $MM->echo($text, $file);
+ my $make = join '', map "\t$_\n", $MM->echo($text, $file);
=cut
@@ -480,13 +510,14 @@ Usage might be something like:
$oneliner = $MM->oneliner('print "Foo\n"');
$make = '$oneliner > somefile';
-All dollar signs must be doubled in the $perl_code if you expect them
-to be interpreted normally, otherwise it will be considered a make
-macro. Also remember to quote make macros else it might be used as a
-bareword. For example:
+Dollar signs in the $perl_code will be protected from make using the
+C<quote_literal> method, unless they are recognised as being a make
+variable, C<$(varname)>, in which case they will be left for make
+to expand. Remember to quote make macros else it might be used as a
+bareword. For example:
# Assign the value of the $(VERSION_FROM) make macro to $vf.
- $oneliner = $MM->oneliner('$$vf = "$(VERSION_FROM)"');
+ $oneliner = $MM->oneliner('$vf = "$(VERSION_FROM)"');
Its currently very simple and may be expanded sometime in the figure
to include more flexible code and switches.
@@ -620,6 +651,11 @@ The blibdirs.ts target is deprecated. Depend on blibdirs instead.
=cut
+sub _xs_list_basenames {
+ my ($self) = @_;
+ map { (my $b = $_) =~ s/\.xs$//; $b } sort keys %{ $self->{XS} };
+}
+
sub blibdirs_target {
my $self = shift;
@@ -628,6 +664,14 @@ sub blibdirs_target {
bin script
man1dir man3dir
);
+ if ($self->{XSMULTI}) {
+ for my $ext ($self->_xs_list_basenames) {
+ my ($v, $d, $f) = File::Spec->splitpath($ext);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $d[0] eq 'lib';
+ push @dirs, $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+ }
+ }
my @exists = map { $_.'$(DFSEP).exists' } @dirs;
@@ -666,6 +710,10 @@ clean :: clean_subdirs
');
my @files = sort values %{$self->{XS}}; # .c files from *.xs files
+ push @files, map {
+ my $file = $_;
+ map { $file.$_ } $self->{OBJ_EXT}, qw(.def _def.old .bs .bso .exp .base);
+ } $self->_xs_list_basenames;
my @dirs = qw(blib);
# Normally these are all under blib but they might have been
@@ -862,6 +910,121 @@ MAKE_FRAG
}
+=head3 xs_dlsyms_arg
+
+Returns command-line arg(s) to linker for file listing dlsyms to export.
+Defaults to returning empty string, can be overridden by e.g. AIX.
+
+=cut
+
+sub xs_dlsyms_arg {
+ return '';
+}
+
+=head3 xs_dlsyms_ext
+
+Returns file-extension for C<xs_make_dlsyms> method's output file,
+including any "." character.
+
+=cut
+
+sub xs_dlsyms_ext {
+ die "Pure virtual method";
+}
+
+=head3 xs_dlsyms_extra
+
+Returns any extra text to be prepended to the C<$extra> argument of
+C<xs_make_dlsyms>.
+
+=cut
+
+sub xs_dlsyms_extra {
+ '';
+}
+
+=head3 xs_dlsyms_iterator
+
+Iterates over necessary shared objects, calling C<xs_make_dlsyms> method
+for each with appropriate arguments.
+
+=cut
+
+sub xs_dlsyms_iterator {
+ my ($self, $attribs) = @_;
+ if ($self->{XSMULTI}) {
+ my @m;
+ for my $ext ($self->_xs_list_basenames) {
+ my @parts = File::Spec->splitdir($ext);
+ shift @parts if $parts[0] eq 'lib';
+ my $name = join '::', @parts;
+ push @m, $self->xs_make_dlsyms(
+ $attribs,
+ $ext . $self->xs_dlsyms_ext,
+ "$ext.xs",
+ $name,
+ $parts[-1],
+ {}, [], {}, [],
+ $self->xs_dlsyms_extra . q!, 'FILE' => ! . neatvalue($ext),
+ );
+ }
+ return join "\n", @m;
+ } else {
+ return $self->xs_make_dlsyms(
+ $attribs,
+ $self->{BASEEXT} . $self->xs_dlsyms_ext,
+ 'Makefile.PL',
+ $self->{NAME},
+ $self->{DLBASE},
+ $attribs->{DL_FUNCS} || $self->{DL_FUNCS} || {},
+ $attribs->{FUNCLIST} || $self->{FUNCLIST} || [],
+ $attribs->{IMPORTS} || $self->{IMPORTS} || {},
+ $attribs->{DL_VARS} || $self->{DL_VARS} || [],
+ $self->xs_dlsyms_extra,
+ );
+ }
+}
+
+=head3 xs_make_dlsyms
+
+ $self->xs_make_dlsyms(
+ \%attribs, # hashref from %attribs in caller
+ "$self->{BASEEXT}.def", # output file for Makefile target
+ 'Makefile.PL', # dependency
+ $self->{NAME}, # shared object's "name"
+ $self->{DLBASE}, # last ::-separated part of name
+ $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {}, # various params
+ $attribs{FUNCLIST} || $self->{FUNCLIST} || [],
+ $attribs{IMPORTS} || $self->{IMPORTS} || {},
+ $attribs{DL_VARS} || $self->{DL_VARS} || [],
+ # optional extra param that will be added as param to Mksymlists
+ );
+
+Utility method that returns Makefile snippet to call C<Mksymlists>.
+
+=cut
+
+sub xs_make_dlsyms {
+ my ($self, $attribs, $target, $dep, $name, $dlbase, $funcs, $funclist, $imports, $vars, $extra) = @_;
+ my @m = (
+ "\n$target: $dep\n",
+ q! $(PERLRUN) -MExtUtils::Mksymlists \\
+ -e "Mksymlists('NAME'=>\"!, $name,
+ q!\", 'DLBASE' => '!,$dlbase,
+ # The above two lines quoted differently to work around
+ # a bug in the 4DOS/4NT command line interpreter. The visible
+ # result of the bug was files named q('extension_name',) *with the
+ # single quotes and the comma* in the extension build directories.
+ q!', 'DL_FUNCS' => !,neatvalue($funcs),
+ q!, 'FUNCLIST' => !,neatvalue($funclist),
+ q!, 'IMPORTS' => !,neatvalue($imports),
+ q!, 'DL_VARS' => !, neatvalue($vars)
+ );
+ push @m, $extra if defined $extra;
+ push @m, qq!);"\n!;
+ join '', @m;
+}
+
=head3 dynamic (o)
Defines the dynamic target.
@@ -873,7 +1036,7 @@ sub dynamic {
my($self) = shift;
'
-dynamic :: $(FIRST_MAKEFILE) $(BOOTSTRAP) $(INST_DYNAMIC)
+dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC)
$(NOECHO) $(NOOP)
';
}
@@ -921,14 +1084,14 @@ sub manifypods_target {
}
my $manify = <<END;
-manifypods : pure_all $dependencies
+manifypods : pure_all config $dependencies
END
my @man_cmds;
foreach my $section (qw(1 3)) {
my $pods = $self->{"MAN${section}PODS"};
- my $p2m = sprintf <<CMD, $] > 5.008 ? " -u" : "";
- \$(NOECHO) \$(POD2MAN) --section=$section --perm_rw=\$(PERM_RW)%s
+ my $p2m = sprintf <<'CMD', $section, $] > 5.008 ? " -u" : "";
+ $(NOECHO) $(POD2MAN) --section=%s --perm_rw=$(PERM_RW)%s
CMD
push @man_cmds, $self->split_command($p2m, map {($_,$pods->{$_})} sort keys %$pods);
}
@@ -939,12 +1102,16 @@ CMD
return $manify;
}
-sub _has_cpan_meta {
- return eval {
- require CPAN::Meta;
- CPAN::Meta->VERSION(2.112150);
- 1;
- };
+{
+ my $has_cpan_meta;
+ sub _has_cpan_meta {
+ return $has_cpan_meta if defined $has_cpan_meta;
+ return $has_cpan_meta = !!eval {
+ require CPAN::Meta;
+ CPAN::Meta->VERSION(2.112150);
+ 1;
+ };
+ }
}
=head3 metafile_target
@@ -966,34 +1133,18 @@ metafile :
$(NOECHO) $(NOOP)
MAKE_FRAG
- my %metadata = $self->metafile_data(
+ my $metadata = $self->metafile_data(
$self->{META_ADD} || {},
$self->{META_MERGE} || {},
);
- _fix_metadata_before_conversion( \%metadata );
-
- # paper over validation issues, but still complain, necessary because
- # there's no guarantee that the above will fix ALL errors
- my $meta = eval { CPAN::Meta->create( \%metadata, { lazy_validation => 1 } ) };
- warn $@ if $@ and
- $@ !~ /encountered CODE.*, but JSON can only represent references to arrays or hashes/;
-
- # use the original metadata straight if the conversion failed
- # or if it can't be stringified.
- if( !$meta ||
- !eval { $meta->as_string( { version => "1.4" } ) } ||
- !eval { $meta->as_string }
- )
- {
- $meta = bless \%metadata, 'CPAN::Meta';
- }
+ my $meta = $self->_fix_metadata_before_conversion( $metadata );
- my @write_metayml = $self->echo(
+ my @write_metayml = $self->stashmeta(
$meta->as_string({version => "1.4"}), 'META_new.yml'
);
- my @write_metajson = $self->echo(
- $meta->as_string(), 'META_new.json'
+ my @write_metajson = $self->stashmeta(
+ $meta->as_string({version => "2.0"}), 'META_new.json'
);
my $metayml = join("\n\t", @write_metayml);
@@ -1014,7 +1165,7 @@ MAKE_FRAG
=head3 _fix_metadata_before_conversion
- _fix_metadata_before_conversion( \%metadata );
+ $mm->_fix_metadata_before_conversion( \%metadata );
Fixes errors in the metadata before it's handed off to CPAN::Meta for
conversion. This hopefully results in something that can be used further
@@ -1025,7 +1176,7 @@ on, no guarantee is made though.
=cut
sub _fix_metadata_before_conversion {
- my ( $metadata ) = @_;
+ my ( $self, $metadata ) = @_;
# we should never be called unless this already passed but
# prefer to be defensive in case somebody else calls this
@@ -1034,18 +1185,24 @@ sub _fix_metadata_before_conversion {
my $bad_version = $metadata->{version} &&
!CPAN::Meta::Validator->new->version( 'version', $metadata->{version} );
-
# just delete all invalid versions
if( $bad_version ) {
warn "Can't parse version '$metadata->{version}'\n";
$metadata->{version} = '';
}
- my $validator = CPAN::Meta::Validator->new( $metadata );
- return if $validator->is_valid;
-
+ my $validator2 = CPAN::Meta::Validator->new( $metadata );
+ my @errors;
+ push @errors, $validator2->errors if !$validator2->is_valid;
+ my $validator14 = CPAN::Meta::Validator->new(
+ {
+ %$metadata,
+ 'meta-spec' => { version => 1.4 },
+ }
+ );
+ push @errors, $validator14->errors if !$validator14->is_valid;
# fix non-camelcase custom resource keys (only other trick we know)
- for my $error ( $validator->errors ) {
+ for my $error ( @errors ) {
my ( $key ) = ( $error =~ /Custom resource '(.*)' must be in CamelCase./ );
next if !$key;
@@ -1053,17 +1210,39 @@ sub _fix_metadata_before_conversion {
( my $new_key = $key ) =~ s/[^_a-zA-Z]//g;
# if that doesn't work, uppercase first one
- $new_key = ucfirst $new_key if !$validator->custom_1( $new_key );
+ $new_key = ucfirst $new_key if !$validator14->custom_1( $new_key );
# copy to new key if that worked
$metadata->{resources}{$new_key} = $metadata->{resources}{$key}
- if $validator->custom_1( $new_key );
+ if $validator14->custom_1( $new_key );
# and delete old one in any case
delete $metadata->{resources}{$key};
}
- return;
+ # paper over validation issues, but still complain, necessary because
+ # there's no guarantee that the above will fix ALL errors
+ my $meta = eval { CPAN::Meta->create( $metadata, { lazy_validation => 1 } ) };
+ warn $@ if $@ and
+ $@ !~ /encountered CODE.*, but JSON can only represent references to arrays or hashes/;
+
+ # use the original metadata straight if the conversion failed
+ # or if it can't be stringified.
+ if( !$meta ||
+ !eval { $meta->as_string( { version => $METASPEC_V } ) } ||
+ !eval { $meta->as_string }
+ ) {
+ $meta = bless $metadata, 'CPAN::Meta';
+ }
+
+ my $now_license = $meta->as_struct({ version => 2 })->{license};
+ if ($self->{LICENSE} and $self->{LICENSE} ne 'unknown' and
+ @{$now_license} == 1 and $now_license->[0] eq 'unknown'
+ ) {
+ warn "Invalid LICENSE value '$self->{LICENSE}' ignored\n";
+ }
+
+ $meta;
}
@@ -1104,10 +1283,10 @@ sub _hash_merge {
=head3 metafile_data
- my @metadata_pairs = $mm->metafile_data(\%meta_add, \%meta_merge);
+ my $metadata_hashref = $mm->metafile_data(\%meta_add, \%meta_merge);
Returns the data which MakeMaker turns into the META.yml file
-and the META.json file.
+and the META.json file. It is always in version 2.0 of the format.
Values of %meta_add will overwrite any existing metadata in those
keys. %meta_merge will be merged with them.
@@ -1118,48 +1297,61 @@ sub metafile_data {
my $self = shift;
my($meta_add, $meta_merge) = @_;
+ $meta_add ||= {};
+ $meta_merge ||= {};
+
+ my $version = _normalize_version($self->{VERSION});
+ my $release_status = ($version =~ /_/) ? 'unstable' : 'stable';
my %meta = (
# required
- name => $self->{DISTNAME},
- version => _normalize_version($self->{VERSION}),
abstract => $self->{ABSTRACT} || 'unknown',
- license => $self->{LICENSE} || 'unknown',
+ author => defined($self->{AUTHOR}) ? $self->{AUTHOR} : ['unknown'],
dynamic_config => 1,
-
- # optional
- distribution_type => $self->{PM} ? 'module' : 'script',
-
- no_index => {
- directory => [qw(t inc)]
- },
-
generated_by => "ExtUtils::MakeMaker version $ExtUtils::MakeMaker::VERSION",
+ license => [ $self->{LICENSE} || 'unknown' ],
'meta-spec' => {
- url => 'http://module-build.sourceforge.net/META-spec-v1.4.html',
- version => 1.4
+ url => $METASPEC_URL,
+ version => $METASPEC_V,
},
+ name => $self->{DISTNAME},
+ release_status => $release_status,
+ version => $version,
+
+ # optional
+ no_index => { directory => [qw(t inc)] },
);
+ $self->_add_requirements_to_meta(\%meta);
- # The author key is required and it takes a list.
- $meta{author} = defined $self->{AUTHOR} ? $self->{AUTHOR} : [];
+ if (!eval { require JSON::PP; require CPAN::Meta::Converter; CPAN::Meta::Converter->VERSION(2.141170) }) {
+ return \%meta;
+ }
- {
- my $vers = _metaspec_version( $meta_add, $meta_merge );
- my $method = $vers =~ m!^2!
- ? '_add_requirements_to_meta_v2'
- : '_add_requirements_to_meta_v1_4';
- %meta = $self->$method( %meta );
+ # needs to be based on the original version
+ my $v1_add = _metaspec_version($meta_add) !~ /^2/;
+
+ my ($add_v, $merge_v) = map _metaspec_version($_), $meta_add, $meta_merge;
+ for my $frag ($meta_add, $meta_merge) {
+ my $def_v = $frag == $meta_add ? $merge_v : $add_v;
+ $frag = CPAN::Meta::Converter->new($frag, default_version => $def_v)->upgrade_fragment;
}
+ # if we upgraded a 1.x _ADD fragment, we gave it a prereqs key that
+ # will override all prereqs, which is more than the user asked for;
+ # instead, we'll go inside the prereqs and override all those
while( my($key, $val) = each %$meta_add ) {
- $meta{$key} = $val;
+ if ($v1_add and $key eq 'prereqs') {
+ $meta{$key}{$_} = $val->{$_} for keys %$val;
+ } elsif ($key ne 'meta-spec') {
+ $meta{$key} = $val;
+ }
}
while( my($key, $val) = each %$meta_merge ) {
+ next if $key eq 'meta-spec';
$self->_hash_merge(\%meta, $key, $val);
}
- return %meta;
+ return \%meta;
}
@@ -1167,84 +1359,61 @@ sub metafile_data {
=cut
+sub _add_requirements_to_meta {
+ my ( $self, $meta ) = @_;
+ # Check the original args so we can tell between the user setting it
+ # to an empty hash and it just being initialized.
+ $meta->{prereqs}{configure}{requires} = $self->{ARGS}{CONFIGURE_REQUIRES}
+ ? $self->{CONFIGURE_REQUIRES}
+ : { 'ExtUtils::MakeMaker' => 0, };
+ $meta->{prereqs}{build}{requires} = $self->{ARGS}{BUILD_REQUIRES}
+ ? $self->{BUILD_REQUIRES}
+ : { 'ExtUtils::MakeMaker' => 0, };
+ $meta->{prereqs}{test}{requires} = $self->{TEST_REQUIRES}
+ if $self->{ARGS}{TEST_REQUIRES};
+ $meta->{prereqs}{runtime}{requires} = $self->{PREREQ_PM}
+ if $self->{ARGS}{PREREQ_PM};
+ $meta->{prereqs}{runtime}{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION})
+ if $self->{MIN_PERL_VERSION};
+}
+
+# spec version of given fragment - if not given, assume 1.4
sub _metaspec_version {
- my ( $meta_add, $meta_merge ) = @_;
- return $meta_add->{'meta-spec'}->{version}
- if defined $meta_add->{'meta-spec'}
- and defined $meta_add->{'meta-spec'}->{version};
- return $meta_merge->{'meta-spec'}->{version}
- if defined $meta_merge->{'meta-spec'}
- and defined $meta_merge->{'meta-spec'}->{version};
+ my ( $meta ) = @_;
+ return $meta->{'meta-spec'}->{version}
+ if defined $meta->{'meta-spec'}
+ and defined $meta->{'meta-spec'}->{version};
return '1.4';
}
sub _add_requirements_to_meta_v1_4 {
- my ( $self, %meta ) = @_;
-
+ my ( $self, $meta ) = @_;
# Check the original args so we can tell between the user setting it
# to an empty hash and it just being initialized.
if( $self->{ARGS}{CONFIGURE_REQUIRES} ) {
- $meta{configure_requires} = $self->{CONFIGURE_REQUIRES};
+ $meta->{configure_requires} = $self->{CONFIGURE_REQUIRES};
} else {
- $meta{configure_requires} = {
+ $meta->{configure_requires} = {
'ExtUtils::MakeMaker' => 0,
};
}
-
if( $self->{ARGS}{BUILD_REQUIRES} ) {
- $meta{build_requires} = $self->{BUILD_REQUIRES};
+ $meta->{build_requires} = $self->{BUILD_REQUIRES};
} else {
- $meta{build_requires} = {
+ $meta->{build_requires} = {
'ExtUtils::MakeMaker' => 0,
};
}
-
if( $self->{ARGS}{TEST_REQUIRES} ) {
- $meta{build_requires} = {
- %{ $meta{build_requires} },
+ $meta->{build_requires} = {
+ %{ $meta->{build_requires} },
%{ $self->{TEST_REQUIRES} },
};
}
-
- $meta{requires} = $self->{PREREQ_PM}
+ $meta->{requires} = $self->{PREREQ_PM}
if defined $self->{PREREQ_PM};
- $meta{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION})
- if $self->{MIN_PERL_VERSION};
-
- return %meta;
-}
-
-sub _add_requirements_to_meta_v2 {
- my ( $self, %meta ) = @_;
-
- # Check the original args so we can tell between the user setting it
- # to an empty hash and it just being initialized.
- if( $self->{ARGS}{CONFIGURE_REQUIRES} ) {
- $meta{prereqs}{configure}{requires} = $self->{CONFIGURE_REQUIRES};
- } else {
- $meta{prereqs}{configure}{requires} = {
- 'ExtUtils::MakeMaker' => 0,
- };
- }
-
- if( $self->{ARGS}{BUILD_REQUIRES} ) {
- $meta{prereqs}{build}{requires} = $self->{BUILD_REQUIRES};
- } else {
- $meta{prereqs}{build}{requires} = {
- 'ExtUtils::MakeMaker' => 0,
- };
- }
-
- if( $self->{ARGS}{TEST_REQUIRES} ) {
- $meta{prereqs}{test}{requires} = $self->{TEST_REQUIRES};
- }
-
- $meta{prereqs}{runtime}{requires} = $self->{PREREQ_PM}
- if $self->{ARGS}{PREREQ_PM};
- $meta{prereqs}{runtime}{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION})
+ $meta->{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION})
if $self->{MIN_PERL_VERSION};
-
- return %meta;
}
# Adapted from Module::Build::Base
@@ -1253,7 +1422,7 @@ sub _normalize_version {
$version = 0 unless defined $version;
if ( ref $version eq 'version' ) { # version objects
- $version = $version->is_qv ? $version->normal : $version->stringify;
+ $version = $version->stringify;
}
elsif ( $version =~ /^[^v][^.]*\.[^.]+\./ ) { # no leading v, multiple dots
# normalize string tuples without "v": "1.2.3" -> "v1.2.3"
@@ -1426,12 +1595,12 @@ sub distmeta_target {
$self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd']),
exit unless -e q{META.yml};
eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }
- or print "Could not add META.yml to MANIFEST: $${'@'}\n"
+ or die "Could not add META.yml to MANIFEST: ${'@'}"
CODE
$self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd'])
exit unless -f q{META.json};
eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }
- or print "Could not add META.json to MANIFEST: $${'@'}\n"
+ or die "Could not add META.json to MANIFEST: ${'@'}"
CODE
);
@@ -1464,21 +1633,15 @@ sub mymeta {
my $v2 = 1;
unless ( $mymeta ) {
- my @metadata = $self->metafile_data(
+ $mymeta = $self->metafile_data(
$self->{META_ADD} || {},
$self->{META_MERGE} || {},
);
- $mymeta = {@metadata};
$v2 = 0;
}
# Overwrite the non-configure dependency hashes
-
- my $method = $v2
- ? '_add_requirements_to_meta_v2'
- : '_add_requirements_to_meta_v1_4';
-
- $mymeta = { $self->$method( %$mymeta ) };
+ $self->_add_requirements_to_meta($mymeta);
$mymeta->{dynamic_config} = 0;
@@ -1530,13 +1693,9 @@ sub write_mymeta {
return unless _has_cpan_meta();
- _fix_metadata_before_conversion( $mymeta );
+ my $meta_obj = $self->_fix_metadata_before_conversion( $mymeta );
- # this can still blow up
- # not sure if i should just eval this and skip file creation if it
- # blows up
- my $meta_obj = CPAN::Meta->new( $mymeta, { lazy_validation => 1 } );
- $meta_obj->save( 'MYMETA.json' );
+ $meta_obj->save( 'MYMETA.json', { version => "2.0" } );
$meta_obj->save( 'MYMETA.yml', { version => "1.4" } );
return 1;
}
@@ -1574,8 +1733,8 @@ sub realclean {
}
# Occasionally files are repeated several times from different sources
- { my(%f) = map { ($_ => 1) } @files; @files = keys %f; }
- { my(%d) = map { ($_ => 1) } @dirs; @dirs = keys %d; }
+ { my(%f) = map { ($_ => 1) } @files; @files = sort keys %f; }
+ { my(%d) = map { ($_ => 1) } @dirs; @dirs = sort keys %d; }
my $rm_cmd = join "\n\t", map { "$_" }
$self->split_command('- $(RM_F)', @files);
@@ -1584,7 +1743,7 @@ sub realclean {
my $m = sprintf <<'MAKE', $rm_cmd, $rmf_cmd;
# Delete temporary files (via clean) and also delete dist files
-realclean purge :: clean realclean_subdirs
+realclean purge :: realclean_subdirs
%s
%s
MAKE
@@ -1606,28 +1765,20 @@ target to call realclean on any subdirectories which contain Makefiles.
sub realclean_subdirs_target {
my $self = shift;
-
- return <<'NOOP_FRAG' unless @{$self->{DIR}};
-realclean_subdirs :
- $(NOECHO) $(NOOP)
-NOOP_FRAG
-
- my $rclean = "realclean_subdirs :\n";
-
+ my @m = <<'EOF';
+# so clean is forced to complete before realclean_subdirs runs
+realclean_subdirs : clean
+EOF
+ return join '', @m, "\t\$(NOECHO) \$(NOOP)\n" unless @{$self->{DIR}};
foreach my $dir (@{$self->{DIR}}) {
foreach my $makefile ('$(MAKEFILE_OLD)', '$(FIRST_MAKEFILE)' ) {
- my $subrclean .= $self->oneliner(sprintf <<'CODE', $dir, ($makefile) x 2);
-chdir '%s'; system '$(MAKE) $(USEMAKEFILE) %s realclean' if -f '%s';
+ my $subrclean .= $self->oneliner(_sprintf562 <<'CODE', $dir, $makefile);
+chdir '%1$s'; system '$(MAKE) $(USEMAKEFILE) %2$s realclean' if -f '%2$s';
CODE
-
- $rclean .= sprintf <<'RCLEAN', $subrclean;
- - %s
-RCLEAN
-
+ push @m, "\t- $subrclean\n";
}
}
-
- return $rclean;
+ return join '', @m;
}
@@ -1666,7 +1817,7 @@ sub distsignature_target {
my $add_sign = $self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd']);
eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }
- or print "Could not add SIGNATURE to MANIFEST: $${'@'}\n"
+ or die "Could not add SIGNATURE to MANIFEST: ${'@'}"
CODE
my $sign_dist = $self->cd('$(DISTVNAME)' => 'cpansign -s');
@@ -1700,7 +1851,7 @@ sub special_targets {
my $make_frag = <<'MAKE_FRAG';
.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT)
-.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir
+.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static
MAKE_FRAG
@@ -2291,7 +2442,7 @@ sub init_others {
if ( $self->{OBJECT} ) {
$self->{OBJECT} = join(" ", @{$self->{OBJECT}}) if ref $self->{OBJECT};
$self->{OBJECT} =~ s!\.o(bj)?\b!\$(OBJ_EXT)!g;
- } elsif ( $self->{MAGICXS} && @{$self->{O_FILES}||[]} ) {
+ } elsif ( ($self->{MAGICXS} || $self->{XSMULTI}) && @{$self->{O_FILES}||[]} ) {
$self->{OBJECT} = join(" ", @{$self->{O_FILES}});
$self->{OBJECT} =~ s!\.o(bj)?\b!\$(OBJ_EXT)!g;
} else {
@@ -2659,38 +2810,50 @@ sub find_tests {
my $tests = $mm->find_tests_recursive;
Returns a string suitable for feeding to the shell to return all
-tests in t/ but recursively.
+tests in t/ but recursively. Equivalent to
+
+ my $tests = $mm->find_tests_recursive_in('t');
=cut
sub find_tests_recursive {
- my($self) = shift;
- return '' unless -d 't';
+ my $self = shift;
+ return $self->find_tests_recursive_in('t');
+}
+
+=head3 find_tests_recursive_in
+
+ my $tests = $mm->find_tests_recursive_in($dir);
+
+Returns a string suitable for feeding to the shell to return all
+tests in $dir recursively.
+
+=cut
+
+sub find_tests_recursive_in {
+ my($self, $dir) = @_;
+ return '' unless -d $dir;
require File::Find;
- my %testfiles;
+ my $base_depth = grep { $_ ne '' } File::Spec->splitdir( (File::Spec->splitpath($dir))[1] );
+ my %depths;
my $wanted = sub {
return unless m!\.t$!;
my ($volume,$directories,$file) =
File::Spec->splitpath( $File::Find::name );
- my @dirs = File::Spec->splitdir( $directories );
- for ( @dirs ) {
- next if $_ eq 't';
- unless ( $_ ) {
- $_ = '*.t';
- next;
- }
- $_ = '*';
- }
- my $testfile = join '/', @dirs;
- $testfiles{ $testfile } = 1;
+ my $depth = grep { $_ ne '' } File::Spec->splitdir( $directories );
+ $depth -= $base_depth;
+ $depths{ $depth } = 1;
};
- File::Find::find( $wanted, 't' );
+ File::Find::find( $wanted, $dir );
- return join ' ', sort keys %testfiles;
+ return join ' ',
+ map { $dir . '/*' x $_ . '.t' }
+ sort { $a <=> $b }
+ keys %depths;
}
=head3 extra_clean_files
@@ -2736,13 +2899,20 @@ Takes a path to a file or dir and returns an empty string if we don't
want to include this file in the library. Otherwise it returns the
the $path unchanged.
-Mainly used to exclude version control administrative directories from
-installation.
+Mainly used to exclude version control administrative directories
+and base-level F<README.pod> from installation.
=cut
sub libscan {
my($self,$path) = @_;
+
+ if ($path =~ m<^README\.pod$>i) {
+ warn "WARNING: Older versions of ExtUtils::MakeMaker may errantly install $path as part of this distribution. It is recommended to avoid using this path in CPAN modules.\n"
+ unless $ENV{PERL_CORE};
+ return '';
+ }
+
my($dirs,$file) = ($self->splitpath($path))[1,2];
return '' if grep /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/,
$self->splitdir($dirs), $file;
@@ -2764,6 +2934,39 @@ sub platform_constants {
return '';
}
+=head3 post_constants (o)
+
+Returns an empty string per default. Dedicated to overrides from
+within Makefile.PL after all constants have been defined.
+
+=cut
+
+sub post_constants {
+ "";
+}
+
+=head3 post_initialize (o)
+
+Returns an empty string per default. Used in Makefile.PLs to add some
+chunk of text to the Makefile after the object is initialized.
+
+=cut
+
+sub post_initialize {
+ "";
+}
+
+=head3 postamble (o)
+
+Returns an empty string. Can be used in Makefile.PLs to write some
+text to the Makefile at the end.
+
+=cut
+
+sub postamble {
+ "";
+}
+
=begin private
=head3 _PREREQ_PRINT
@@ -2799,7 +3002,7 @@ sub _PREREQ_PRINT {
Implements PRINT_PREREQ, a slightly different version of PREREQ_PRINT
added by Redhat to, I think, support generating RPMs from Perl modules.
-Should not include BUILD_REQUIRES as RPMs do not incluide them.
+Should not include BUILD_REQUIRES as RPMs do not include them.
Refactored out of MakeMaker->new().
@@ -2825,24 +3028,6 @@ sub _PRINT_PREREQ {
=begin private
-=head3 _all_prereqs
-
- my $prereqs = $self->_all_prereqs;
-
-Returns a hash ref of both PREREQ_PM and BUILD_REQUIRES.
-
-=end private
-
-=cut
-
-sub _all_prereqs {
- my $self = shift;
-
- return { %{$self->{PREREQ_PM}}, %{$self->{BUILD_REQUIRES}} };
-}
-
-=begin private
-
=head3 _perl_header_files
my $perl_header_files= $self->_perl_header_files;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
index 3015f2dd655..6fb7911390c 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
@@ -26,7 +26,8 @@ require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
=item os_flavor
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
index 659d430ffde..934e65f913d 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
@@ -9,7 +9,8 @@ require ExtUtils::MM_Unix;
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
=head1 NAME
@@ -86,7 +87,7 @@ sub init_linker {
if ($Config{useshrplib} eq 'true') {
my $libperl = '$(PERL_INC)' .'/'. "$Config{libperl}";
if( $] >= 5.006002 ) {
- $libperl =~ s/a$/dll.a/;
+ $libperl =~ s/(dll\.)?a$/dll.a/;
}
$self->{PERL_ARCHIVE} = $libperl;
} else {
@@ -129,16 +130,31 @@ But for new archdir dll's use the same rebase address if the old exists.
sub dynamic_lib {
my($self, %attribs) = @_;
my $s = ExtUtils::MM_Unix::dynamic_lib($self, %attribs);
- my $ori = "$self->{INSTALLARCHLIB}/auto/$self->{FULLEXT}/$self->{BASEEXT}.$self->{DLEXT}";
- if (-e $ori) {
- my $imagebase = `/bin/objdump -p $ori | /bin/grep ImageBase | /bin/cut -c12-`;
- chomp $imagebase;
- if ($imagebase gt "40000000") {
- my $LDDLFLAGS = $self->{LDDLFLAGS};
- $LDDLFLAGS =~ s/-Wl,--enable-auto-image-base/-Wl,--image-base=0x$imagebase/;
- $s =~ s/ \$\(LDDLFLAGS\) / $LDDLFLAGS /m;
- }
- }
+ return '' unless $s;
+ return $s unless %{$self->{XS}};
+
+ # do an ephemeral rebase so the new DLL fits to the current rebase map
+ $s .= "\t/bin/find \$\(INST_ARCHLIB\)/auto -xdev -name \\*.$self->{DLEXT} | /bin/rebase -sOT -" if (( $Config{myarchname} eq 'i686-cygwin' ) and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} ));
+ $s;
+}
+
+=item install
+
+Rebase dll's with the global rebase database after installation.
+
+=cut
+
+sub install {
+ my($self, %attribs) = @_;
+ my $s = ExtUtils::MM_Unix::install($self, %attribs);
+ return '' unless $s;
+ return $s unless %{$self->{XS}};
+
+ my $INSTALLDIRS = $self->{INSTALLDIRS};
+ my $INSTALLLIB = $self->{"INSTALL". ($INSTALLDIRS eq 'perl' ? 'ARCHLIB' : uc($INSTALLDIRS)."ARCH")};
+ my $dop = "\$\(DESTDIR\)$INSTALLLIB/auto/";
+ my $dll = "$dop/$self->{FULLEXT}/$self->{BASEEXT}.$self->{DLEXT}";
+ $s =~ s|^(pure_install :: pure_\$\(INSTALLDIRS\)_install\n\t)\$\(NOECHO\) \$\(NOOP\)\n|$1\$(CHMOD) \$(PERM_RWX) $dll\n\t/bin/find $dop -xdev -name \\*.$self->{DLEXT} \| /bin/rebase -sOT -\n|m if (( $Config{myarchname} eq 'i686-cygwin') and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} ));
$s;
}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
index e89c632cb1a..33a8b199df3 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
@@ -2,7 +2,8 @@ package ExtUtils::MM_DOS;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@@ -50,6 +51,14 @@ sub replace_manpage_separator {
return $man;
}
+=item xs_static_lib_is_xs
+
+=cut
+
+sub xs_static_lib_is_xs {
+ return 1;
+}
+
=back
=head1 AUTHOR
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
index b6e7c5b86ce..f5359dca095 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
@@ -7,7 +7,8 @@ BEGIN {
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
=head1 NAME
@@ -23,7 +24,7 @@ ExtUtils::MM_Darwin - special behaviors for OS X
See L<ExtUtils::MM_Unix> for L<ExtUtils::MM_Any> for documentation on the
methods overridden here.
-=head2 Overriden Methods
+=head2 Overridden Methods
=head3 init_dist
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
index 7323bf12551..5646ae33406 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
@@ -2,7 +2,8 @@ package ExtUtils::MM_MacOS;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
sub new {
die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker';
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
index 967b5d4c8d6..c88c4fabe98 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
@@ -22,17 +22,18 @@ use strict;
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
-use ExtUtils::MakeMaker qw( &neatvalue );
+use ExtUtils::MakeMaker qw(&neatvalue &_sprintf562);
$ENV{EMXSHELL} = 'sh'; # to run `commands`
-my $BORLAND = $Config{'cc'} =~ /^bcc/i;
-my $GCC = $Config{'cc'} =~ /^gcc/i;
+my $BORLAND = $Config{'cc'} =~ /\bbcc/i;
+my $GCC = $Config{'cc'} =~ /\bgcc/i;
=item os_flavor
@@ -122,148 +123,86 @@ sub platform_constants {
return $make_frag;
}
+=item static_lib_pure_cmd
-=item const_cccmd
+Defines how to run the archive utility
=cut
-sub const_cccmd {
- my($self,$libperl)=@_;
- return $self->{CONST_CCCMD} if $self->{CONST_CCCMD};
- return '' unless $self->needs_linking();
- return $self->{CONST_CCCMD} = <<'MAKE_FRAG';
-CCCMD = $(CC) $(CCFLAGS) $(INC) $(OPTIMIZE) \
- $(PERLTYPE) $(MPOLLUTE) -o $@ \
- -DVERSION=\"$(VERSION)\" -DXS_VERSION=\"$(XS_VERSION)\"
-MAKE_FRAG
-
+sub static_lib_pure_cmd {
+ my ($self, $src) = @_;
+ $src =~ s/(\$\(\w+)(\))/$1:^"+"$2/g if $BORLAND;
+ sprintf qq{\t\$(AR) %s\n}, ($BORLAND ? '$@ ' . $src
+ : ($GCC ? '-ru $@ ' . $src
+ : '-type library -o $@ ' . $src));
}
-
-=item static_lib
+=item xs_static_lib_is_xs
=cut
-sub static_lib {
- my($self) = @_;
-
- return '' unless $self->has_link_code;
-
- my $m = <<'END';
-$(INST_STATIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(RM_RF) $@
-END
-
- # If this extension has it's own library (eg SDBM_File)
- # then copy that to $(INST_STATIC) and add $(OBJECT) into it.
- $m .= <<'END' if $self->{MYEXTLIB};
- $self->{CP} $(MYEXTLIB) $@
-END
-
- my $ar_arg;
- if( $BORLAND ) {
- $ar_arg = '$@ $(OBJECT:^"+")';
- }
- elsif( $GCC ) {
- $ar_arg = '-ru $@ $(OBJECT)';
- }
- else {
- $ar_arg = '-type library -o $@ $(OBJECT)';
- }
-
- $m .= sprintf <<'END', $ar_arg;
- $(AR) %s
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)\extralibs.ld
- $(CHMOD) 755 $@
-END
-
- $m .= <<'END' if $self->{PERL_SRC};
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)\ext.libs
-
-
-END
- return $m;
+sub xs_static_lib_is_xs {
+ return 1;
}
=item dynamic_lib
-Defines how to produce the *.so (or equivalent) files.
+Override of utility methods for OS-specific work.
=cut
-sub dynamic_lib {
- my($self, %attribs) = @_;
- return '' unless $self->needs_linking(); #might be because of a subdir
-
- return '' unless $self->has_link_code;
-
- my($otherldflags) = $attribs{OTHERLDFLAGS} || ($BORLAND ? 'c0d32.obj': '');
- my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
- my($ldfrom) = '$(LDFROM)';
-
- (my $boot = $self->{NAME}) =~ s/:/_/g;
-
- my $m = <<'MAKE_FRAG';
-# This section creates the dynamically loadable $(INST_DYNAMIC)
-# from $(OBJECT) and possibly $(MYEXTLIB).
-OTHERLDFLAGS = '.$otherldflags.'
-INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
-
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_;
+ my @m;
+ # Taking care of long names like FileHandle, ByteLoader, SDBM_File etc
+ if ($to =~ /^\$/) {
+ if ($self->{NLM_SHORT_NAME}) {
+ # deal with shortnames
+ my $newto = q{$(INST_AUTODIR)\\$(NLM_SHORT_NAME).$(DLEXT)};
+ push @m, "$to: $newto\n\n";
+ $to = $newto;
+ }
+ } else {
+ my ($v, $d, $f) = File::Spec->splitpath($to);
+ # relies on $f having a literal "." in it, unlike for $(OBJ_EXT)
+ if ($f =~ /[^\.]{9}\./) {
+ # 9+ chars before '.', need to shorten
+ $f = substr $f, 0, 8;
+ }
+ my $newto = File::Spec->catpath($v, $d, $f);
+ push @m, "$to: $newto\n\n";
+ $to = $newto;
+ }
+ # bits below should be in dlsyms, not here
+ # 1 2 3 4
+ push @m, _sprintf562 <<'MAKE_FRAG', $to, $from, $todir, $exportlist;
# Create xdc data for an MT safe NLM in case of mpk build
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(NOECHO) $(ECHO) Export boot_$(BOOT_SYMBOL) > $(BASEEXT).def
- $(NOECHO) $(ECHO) $(BASE_IMPORT) >> $(BASEEXT).def
- $(NOECHO) $(ECHO) Import @$(PERL_INC)\perl.imp >> $(BASEEXT).def
+%1$s: %2$s $(MYEXTLIB) $(BOOTSTRAP) %3$s$(DFSEP).exists
+ $(NOECHO) $(ECHO) Export boot_$(BOOT_SYMBOL) > %4$s
+ $(NOECHO) $(ECHO) $(BASE_IMPORT) >> %4$s
+ $(NOECHO) $(ECHO) Import @$(PERL_INC)\perl.imp >> %4$s
MAKE_FRAG
-
-
if ( $self->{CCFLAGS} =~ m/ -DMPK_ON /) {
- $m .= <<'MAKE_FRAG';
- $(MPKTOOL) $(XDCFLAGS) $(BASEEXT).xdc
- $(NOECHO) $(ECHO) xdcdata $(BASEEXT).xdc >> $(BASEEXT).def
+ (my $xdc = $exportlist) =~ s#def\z#xdc#;
+ $xdc = '$(BASEEXT).xdc';
+ push @m, sprintf <<'MAKE_FRAG', $xdc, $exportlist;
+ $(MPKTOOL) $(XDCFLAGS) %s
+ $(NOECHO) $(ECHO) xdcdata $(BASEEXT).xdc >> %s
MAKE_FRAG
}
-
# Reconstruct the X.Y.Z version.
my $version = join '.', map { sprintf "%d", $_ }
$] =~ /(\d)\.(\d{3})(\d{2})/;
- $m .= sprintf ' $(LD) $(LDFLAGS) $(OBJECT:.obj=.obj) -desc "Perl %s Extension ($(BASEEXT)) XS_VERSION: $(XS_VERSION)" -nlmversion $(NLM_VERSION)', $version;
-
- # Taking care of long names like FileHandle, ByteLoader, SDBM_File etc
- if($self->{NLM_SHORT_NAME}) {
- # In case of nlms with names exceeding 8 chars, build nlm in the
- # current dir, rename and move to auto\lib.
- $m .= q{ -o $(NLM_SHORT_NAME).$(DLEXT)}
- } else {
- $m .= q{ -o $(INST_AUTODIR)\\$(BASEEXT).$(DLEXT)}
- }
-
- # Add additional lib files if any (SDBM_File)
- $m .= q{ $(MYEXTLIB) } if $self->{MYEXTLIB};
-
- $m .= q{ $(PERL_INC)\Main.lib -commandfile $(BASEEXT).def}."\n";
-
- if($self->{NLM_SHORT_NAME}) {
- $m .= <<'MAKE_FRAG';
- if exist $(INST_AUTODIR)\$(NLM_SHORT_NAME).$(DLEXT) del $(INST_AUTODIR)\$(NLM_SHORT_NAME).$(DLEXT)
- move $(NLM_SHORT_NAME).$(DLEXT) $(INST_AUTODIR)
-MAKE_FRAG
- }
-
- $m .= <<'MAKE_FRAG';
-
+ push @m, sprintf <<'EOF', $from, $version, $to, $exportlist;
+ $(LD) $(LDFLAGS) %s -desc "Perl %s Extension ($(BASEEXT)) XS_VERSION: $(XS_VERSION)" -nlmversion $(NLM_VERSION) -o %s $(MYEXTLIB) $(PERL_INC)\Main.lib -commandfile %s
$(CHMOD) 755 $@
-MAKE_FRAG
-
- return $m;
+EOF
+ join '', @m;
}
-
1;
__END__
=back
=cut
-
-
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
index 598087ca19f..dfa6dca4916 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
@@ -5,7 +5,8 @@ use strict;
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@@ -49,33 +50,12 @@ MAKE_TEXT
sub dlsyms {
my($self,%attribs) = @_;
-
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || [];
- my($imports) = $attribs{IMPORTS} || $self->{IMPORTS} || {};
- my(@m);
- (my $boot = $self->{NAME}) =~ s/:/_/g;
-
- if (not $self->{SKIPHASH}{'dynamic'}) {
- push(@m,"
-$self->{BASEEXT}.def: Makefile.PL
-",
- ' $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e \'use ExtUtils::Mksymlists; \\
- Mksymlists("NAME" => "$(NAME)", "DLBASE" => "$(DLBASE)", ',
- '"VERSION" => "$(VERSION)", "DISTNAME" => "$(DISTNAME)", ',
- '"INSTALLDIRS" => "$(INSTALLDIRS)", ',
- '"DL_FUNCS" => ',neatvalue($funcs),
- ', "FUNCLIST" => ',neatvalue($funclist),
- ', "IMPORTS" => ',neatvalue($imports),
- ', "DL_VARS" => ', neatvalue($vars), ');\'
-');
- }
if ($self->{IMPORTS} && %{$self->{IMPORTS}}) {
# Make import files (needed for static build)
-d 'tmp_imp' or mkdir 'tmp_imp', 0777 or die "Can't mkdir tmp_imp";
open my $imp, '>', 'tmpimp.imp' or die "Can't open tmpimp.imp";
- while (my($name, $exp) = each %{$self->{IMPORTS}}) {
+ foreach my $name (sort keys %{$self->{IMPORTS}}) {
+ my $exp = $self->{IMPORTS}->{$name};
my ($lib, $id) = ($exp =~ /(.*)\.(.*)/) or die "Malformed IMPORT `$exp'";
print $imp "$name $lib $id ?\n";
}
@@ -88,21 +68,26 @@ $self->{BASEEXT}.def: Makefile.PL
system "cd tmp_imp; $Config::Config{ar} x ../tmpimp$Config::Config{lib_ext}"
and die "Cannot extract import objects: $!, \$?=$?";
}
- join('',@m);
+ return '' if $self->{SKIPHASH}{'dynamic'};
+ $self->xs_dlsyms_iterator(\%attribs);
}
-sub static_lib {
- my($self) = @_;
- my $old = $self->ExtUtils::MM_Unix::static_lib();
- return $old unless $self->{IMPORTS} && %{$self->{IMPORTS}};
+sub xs_dlsyms_ext {
+ '.def';
+}
- my @chunks = split /\n{2,}/, $old;
- shift @chunks unless length $chunks[0]; # Empty lines at the start
- $chunks[0] .= <<'EOC';
+sub xs_dlsyms_extra {
+ join '', map { qq{, "$_" => "\$($_)"} } qw(VERSION DISTNAME INSTALLDIRS);
+}
- $(AR) $(AR_STATIC_ARGS) $@ tmp_imp/* && $(RANLIB) $@
+sub static_lib_pure_cmd {
+ my($self) = @_;
+ my $old = $self->SUPER::static_lib_pure_cmd;
+ return $old unless $self->{IMPORTS} && %{$self->{IMPORTS}};
+ $old . <<'EOC';
+ $(AR) $(AR_STATIC_ARGS) "$@" tmp_imp/*
+ $(RANLIB) "$@"
EOC
- return join "\n\n". '', @chunks;
}
sub replace_manpage_separator {
@@ -146,6 +131,14 @@ sub os_flavor {
return('OS/2');
}
+=item xs_static_lib_is_xs
+
+=cut
+
+sub xs_static_lib_is_xs {
+ return 1;
+}
+
=back
=cut
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
index 1bdc6e0f97f..362d7d920fb 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
@@ -1,7 +1,8 @@
package ExtUtils::MM_QNX;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
index 6d85d944df4..cc95c415e81 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
@@ -1,7 +1,8 @@
package ExtUtils::MM_UWIN;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
index 785daaaed32..fe53be12efd 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
@@ -7,15 +7,14 @@ use strict;
use Carp;
use ExtUtils::MakeMaker::Config;
use File::Basename qw(basename dirname);
-use DirHandle;
our %Config_Override;
-use ExtUtils::MakeMaker qw($Verbose neatvalue);
+use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
# If we make $VERSION an our variable parse_version() breaks
use vars qw($VERSION);
-$VERSION = '7.10_02';
+$VERSION = '7.34';
$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
require ExtUtils::MM_Any;
@@ -98,7 +97,6 @@ something that used to be in here, look in MM_Any.
# So we don't have to keep calling the methods over and over again,
# we have these globals to cache the values. Faster and shrtr.
my $Curdir = __PACKAGE__->curdir;
-my $Rootdir = __PACKAGE__->rootdir;
my $Updir = __PACKAGE__->updir;
@@ -143,31 +141,36 @@ sub c_o {
};
}
- push @m, qq{
-.c.s:
- $command -S $flags \$*.c
+ my $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*.s') : '';
+ push @m, sprintf <<'EOF', $command, $flags, $m_o;
+
+.c.s :
+ %s -S %s $*.c %s
+EOF
-.c\$(OBJ_EXT):
- $command $flags \$*.c
+ my @exts = qw(c cpp cxx cc);
+ push @exts, 'C' if !$Is{OS2} and !$Is{Win32} and !$Is{Dos}; #Case-specific
+ $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : '';
+ for my $ext (@exts) {
+ push @m, "\n.$ext\$(OBJ_EXT) :\n\t$command $flags \$*.$ext" . ( $m_o ? " $m_o" : '' ) . "\n";
+ }
+ return join "", @m;
+}
-.cpp\$(OBJ_EXT):
- $command $flags \$*.cpp
-.cxx\$(OBJ_EXT):
- $command $flags \$*.cxx
+=item xs_obj_opt
-.cc\$(OBJ_EXT):
- $command $flags \$*.cc
-};
+Takes the object file as an argument, and returns the portion of compile
+command-line that will output to the specified object file.
- push @m, qq{
-.C\$(OBJ_EXT):
- $command $flags \$*.C
-} if !$Is{OS2} and !$Is{Win32} and !$Is{Dos}; #Case-specific
+=cut
- return join "", @m;
+sub xs_obj_opt {
+ my ($self, $output_file) = @_;
+ "-o $output_file";
}
+
=item cflags (o)
Does very much the same as the cflags script in the perl
@@ -284,9 +287,6 @@ sub cflags {
$pollute = '$(PERL_MALLOC_DEF)';
}
- $self->{CCFLAGS} = quote_paren($self->{CCFLAGS});
- $self->{OPTIMIZE} = quote_paren($self->{OPTIMIZE});
-
return $self->{CFLAGS} = qq{
CCFLAGS = $self->{CCFLAGS}
OPTIMIZE = $self->{OPTIMIZE}
@@ -337,7 +337,6 @@ END
foreach my $key (@{$self->{CONFIG}}){
# SITE*EXP macros are defined in &constants; avoid duplicates here
next if $once_only{$key};
- $self->{uc $key} = quote_paren($self->{uc $key});
push @m, uc($key) , ' = ' , $self->{uc $key}, "\n";
$once_only{$key} = 1;
}
@@ -455,9 +454,9 @@ MM_REVISION = $self->{MM_REVISION}
push @m, "
# Handy lists of source code files:
XS_FILES = ".$self->wraplist(sort keys %{$self->{XS}})."
-C_FILES = ".$self->wraplist(@{$self->{C}})."
-O_FILES = ".$self->wraplist(@{$self->{O_FILES}})."
-H_FILES = ".$self->wraplist(@{$self->{H}})."
+C_FILES = ".$self->wraplist(sort @{$self->{C}})."
+O_FILES = ".$self->wraplist(sort @{$self->{O_FILES}})."
+H_FILES = ".$self->wraplist(sort @{$self->{H}})."
MAN1PODS = ".$self->wraplist(sort keys %{$self->{MAN1PODS}})."
MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})."
";
@@ -466,7 +465,7 @@ MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})."
push @m, q{
# Where is the Config information that we are using/depend on
CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h
-} if -e File::Spec->catfile( $self->{PERL_INC}, 'config.h' );
+} if -e $self->catfile( $self->{PERL_INC}, 'config.h' );
push @m, qq{
@@ -492,10 +491,7 @@ PERL_ARCHIVE_AFTER = $self->{PERL_ARCHIVE_AFTER}
push @m, "
-TO_INST_PM = ".$self->wraplist(sort keys %{$self->{PM}})."
-
-PM_TO_BLIB = ".$self->wraplist(map { ($_ => $self->{PM}->{$_}) } sort keys %{$self->{PM}})."
-";
+TO_INST_PM = ".$self->wraplist(map $self->quote_dep($_), sort keys %{$self->{PM}})."\n";
join('',@m);
}
@@ -510,8 +506,9 @@ Same as macro for the depend attribute.
sub depend {
my($self,%attribs) = @_;
my(@m,$key,$val);
- while (($key,$val) = each %attribs){
- last unless defined $key;
+ for my $key (sort keys %attribs){
+ my $val = $attribs{$key};
+ next unless defined $key and defined $val;
push @m, "$key : $val\n";
}
join "", @m;
@@ -883,25 +880,43 @@ Defines targets for bootstrap files.
sub dynamic_bs {
my($self, %attribs) = @_;
- return '
-BOOTSTRAP =
-' unless $self->has_link_code();
-
- my $target = $Is{VMS} ? '$(MMS$TARGET)' : '$@';
-
- return sprintf <<'MAKE_FRAG', ($target) x 2;
-BOOTSTRAP = $(BASEEXT).bs
-
+ return "\nBOOTSTRAP =\n" unless $self->has_link_code();
+ my @exts;
+ if ($self->{XSMULTI}) {
+ @exts = $self->_xs_list_basenames;
+ } else {
+ @exts = '$(BASEEXT)';
+ }
+ return join "\n",
+ "BOOTSTRAP = @{[map { qq{$_.bs} } @exts]}\n",
+ map { $self->_xs_make_bs($_) } @exts;
+}
+
+sub _xs_make_bs {
+ my ($self, $basename) = @_;
+ my ($v, $d, $f) = File::Spec->splitpath($basename);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $self->{XSMULTI} and $d[0] eq 'lib';
+ my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+ $instdir = '$(INST_ARCHAUTODIR)' if $basename eq '$(BASEEXT)';
+ my $instfile = $self->catfile($instdir, "$f.bs");
+ my $exists = "$instdir\$(DFSEP).exists"; # match blibdirs_target
+ # 1 2 3
+ return _sprintf562 <<'MAKE_FRAG', $basename, $instfile, $exists;
# As Mkbootstrap might not write a file (if none is required)
# we use touch to prevent make continually trying to remake it.
# The DynaLoader only reads a non-empty file.
-$(BOOTSTRAP) : $(FIRST_MAKEFILE) $(BOOTDEP) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(NOECHO) $(ECHO) "Running Mkbootstrap for $(NAME) ($(BSLOADLIBS))"
+%1$s.bs : $(FIRST_MAKEFILE) $(BOOTDEP)
+ $(NOECHO) $(ECHO) "Running Mkbootstrap for %1$s ($(BSLOADLIBS))"
$(NOECHO) $(PERLRUN) \
"-MExtUtils::Mkbootstrap" \
- -e "Mkbootstrap('$(BASEEXT)','$(BSLOADLIBS)');"
- $(NOECHO) $(TOUCH) "%s"
- $(CHMOD) $(PERM_RW) "%s"
+ -e "Mkbootstrap('%1$s','$(BSLOADLIBS)');"
+ $(NOECHO) $(TOUCH) "%1$s.bs"
+ $(CHMOD) $(PERM_RW) "%1$s.bs"
+
+%2$s : %1$s.bs %3$s
+ $(NOECHO) $(RM_RF) %2$s
+ - $(CP_NONEMPTY) %1$s.bs %2$s $(PERM_RW)
MAKE_FRAG
}
@@ -914,31 +929,90 @@ Defines how to produce the *.so (or equivalent) files.
sub dynamic_lib {
my($self, %attribs) = @_;
return '' unless $self->needs_linking(); #might be because of a subdir
-
return '' unless $self->has_link_code;
+ my @m = $self->xs_dynamic_lib_macros(\%attribs);
+ my @libs;
+ my $dlsyms_ext = eval { $self->xs_dlsyms_ext };
+ if ($self->{XSMULTI}) {
+ my @exts = $self->_xs_list_basenames;
+ for my $ext (@exts) {
+ my ($v, $d, $f) = File::Spec->splitpath($ext);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $d[0] eq 'lib';
+ my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+
+ # Dynamic library names may need special handling.
+ eval { require DynaLoader };
+ if (defined &DynaLoader::mod2fname) {
+ $f = &DynaLoader::mod2fname([@d, $f]);
+ }
- my($otherldflags) = $attribs{OTHERLDFLAGS} || "";
- my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
- my($armaybe) = $attribs{ARMAYBE} || $self->{ARMAYBE} || ":";
- my($ldfrom) = '$(LDFROM)';
- $armaybe = 'ar' if ($Is{OSF} and $armaybe eq ':');
- my(@m);
- my $ld_opt = $Is{OS2} ? '$(OPTIMIZE) ' : ''; # Useful on other systems too?
+ my $instfile = $self->catfile($instdir, "$f.\$(DLEXT)");
+ my $objfile = $self->_xsbuild_value('xs', $ext, 'OBJECT');
+ $objfile = "$ext\$(OBJ_EXT)" unless defined $objfile;
+ my $ldfrom = $self->_xsbuild_value('xs', $ext, 'LDFROM');
+ $ldfrom = $objfile unless defined $ldfrom;
+ my $exportlist = "$ext.def";
+ my @libchunk = ($objfile, $instfile, $instdir, $ldfrom, $exportlist);
+ push @libchunk, $dlsyms_ext ? $ext.$dlsyms_ext : undef;
+ push @libs, \@libchunk;
+ }
+ } else {
+ my @libchunk = qw($(OBJECT) $(INST_DYNAMIC) $(INST_ARCHAUTODIR) $(LDFROM) $(EXPORT_LIST));
+ push @libchunk, $dlsyms_ext ? '$(BASEEXT)'.$dlsyms_ext : undef;
+ @libs = (\@libchunk);
+ }
+ push @m, map { $self->xs_make_dynamic_lib(\%attribs, @$_); } @libs;
+
+ return join("\n",@m);
+}
+
+=item xs_dynamic_lib_macros
+
+Defines the macros for the C<dynamic_lib> section.
+
+=cut
+
+sub xs_dynamic_lib_macros {
+ my ($self, $attribs) = @_;
+ my $otherldflags = $attribs->{OTHERLDFLAGS} || "";
+ my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || "";
+ my $armaybe = $self->_xs_armaybe($attribs);
+ my $ld_opt = $Is{OS2} ? '$(OPTIMIZE) ' : ''; # Useful on other systems too?
my $ld_fix = $Is{OS2} ? '|| ( $(RM_F) $@ && sh -c false )' : '';
- push(@m,'
-# This section creates the dynamically loadable $(INST_DYNAMIC)
-# from $(OBJECT) and possibly $(MYEXTLIB).
-ARMAYBE = '.$armaybe.'
-OTHERLDFLAGS = '.$ld_opt.$otherldflags.'
-INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
-INST_DYNAMIC_FIX = '.$ld_fix.'
-
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)
-');
+ sprintf <<'EOF', $armaybe, $ld_opt.$otherldflags, $inst_dynamic_dep, $ld_fix;
+# This section creates the dynamically loadable objects from relevant
+# objects and possibly $(MYEXTLIB).
+ARMAYBE = %s
+OTHERLDFLAGS = %s
+INST_DYNAMIC_DEP = %s
+INST_DYNAMIC_FIX = %s
+EOF
+}
+
+sub _xs_armaybe {
+ my ($self, $attribs) = @_;
+ my $armaybe = $attribs->{ARMAYBE} || $self->{ARMAYBE} || ":";
+ $armaybe = 'ar' if ($Is{OSF} and $armaybe eq ':');
+ $armaybe;
+}
+
+=item xs_make_dynamic_lib
+
+Defines the recipes for the C<dynamic_lib> section.
+
+=cut
+
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $object, $to, $todir, $ldfrom, $exportlist, $dlsyms) = @_;
+ $exportlist = '' if $exportlist ne '$(EXPORT_LIST)';
+ my $armaybe = $self->_xs_armaybe($attribs);
+ my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) %s'."\n", $to, $object, $todir, $exportlist, ($dlsyms || '');
+ my $dlsyms_arg = $self->xs_dlsyms_arg($dlsyms);
if ($armaybe ne ':'){
- $ldfrom = 'tmp$(LIB_EXT)';
- push(@m,' $(ARMAYBE) cr '.$ldfrom.' $(OBJECT)'."\n");
- push(@m,' $(RANLIB) '."$ldfrom\n");
+ $ldfrom = 'tmp$(LIB_EXT)';
+ push(@m," \$(ARMAYBE) cr $ldfrom $object\n");
+ push(@m," \$(RANLIB) $ldfrom\n");
}
$ldfrom = "-all $ldfrom -none" if $Is{OSF};
@@ -951,16 +1025,14 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).
# is using them. This is painful if one for instance tries to restart
# a failed build because the link command will fail unnecessarily 'cos
# the shared object/library is 'busy'.
- push(@m,' $(RM_F) $@
-');
+ push(@m," \$(RM_F) \$\@\n");
my $libs = '$(LDLOADLIBS)';
-
if (($Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') {
- # Use nothing on static perl platforms, and to the flags needed
- # to link against the shared libperl library on shared perl
- # platforms. We peek at lddlflags to see if we need -Wl,-R
- # or -R to add paths to the run-time library search path.
+ # Use nothing on static perl platforms, and to the flags needed
+ # to link against the shared libperl library on shared perl
+ # platforms. We peek at lddlflags to see if we need -Wl,-R
+ # or -R to add paths to the run-time library search path.
if ($Config{'lddlflags'} =~ /-Wl,-R/) {
$libs .= ' "-L$(PERL_INC)" "-Wl,-R$(INSTALLARCHLIB)/CORE" "-Wl,-R$(PERL_ARCHLIB)/CORE" -lperl';
} elsif ($Config{'lddlflags'} =~ /-R/) {
@@ -974,22 +1046,16 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).
my $ld_run_path_shell = "";
if ($self->{LD_RUN_PATH} ne "") {
- $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
+ $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
}
- push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $ldfrom, $libs;
- %s$(LD) %s $(LDDLFLAGS) %s $(OTHERLDFLAGS) -o $@ $(MYEXTLIB) \
- $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) $(EXPORT_LIST) \
+ push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $dlsyms_arg, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist;
+ %s$(LD) %s $(LDDLFLAGS) %s %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
+ $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \
$(INST_DYNAMIC_FIX)
-MAKE
-
- push @m, <<'MAKE';
$(CHMOD) $(PERM_RWX) $@
- $(NOECHO) $(RM_RF) $(INST_BOOT)
- - $(CP_NONEMPTY) $(BOOTSTRAP) $(INST_BOOT) $(PERM_RW)
MAKE
-
- return join('',@m);
+ join '', @m;
}
=item exescan
@@ -1050,21 +1116,26 @@ WARNING
}
foreach my $name (@$names){
- foreach my $dir (@$dirs){
+ my ($abs, $use_dir);
+ if ($self->file_name_is_absolute($name)) { # /foo/bar
+ $abs = $name;
+ } elsif ($self->canonpath($name) eq
+ $self->canonpath(basename($name))) { # foo
+ $use_dir = 1;
+ } else { # foo/bar
+ $abs = $self->catfile($Curdir, $name);
+ }
+ foreach my $dir ($use_dir ? @$dirs : 1){
next unless defined $dir; # $self->{PERL_SRC} may be undefined
- my ($abs, $val);
- if ($self->file_name_is_absolute($name)) { # /foo/bar
- $abs = $name;
- } elsif ($self->canonpath($name) eq
- $self->canonpath(basename($name))) { # foo
- $abs = $self->catfile($dir, $name);
- } else { # foo/bar
- $abs = $self->catfile($Curdir, $name);
- }
+
+ $abs = $self->catfile($dir, $name)
+ if $use_dir;
+
print "Checking $abs\n" if ($trace >= 2);
next unless $self->maybe_command($abs);
print "Executing $abs\n" if ($trace >= 2);
+ my $val;
my $version_check = qq{"$abs" -le "require $ver; print qq{VER_OK}"};
# To avoid using the unportable 2>&1 to suppress STDERR,
@@ -1191,11 +1262,12 @@ sub _fixin_replace_shebang {
= reverse grep { $self->file_name_is_absolute($_) } $self->path;
$interpreter = '';
- foreach my $dir (@absdirs) {
- if ( $self->maybe_command($cmd) ) {
+ foreach my $dir (@absdirs) {
+ my $maybefile = $self->catfile($dir,$cmd);
+ if ( $self->maybe_command($maybefile) ) {
warn "Ignoring $interpreter in $file\n"
if $Verbose && $interpreter;
- $interpreter = $self->catfile( $dir, $cmd );
+ $interpreter = $maybefile;
}
}
}
@@ -1451,7 +1523,10 @@ sub init_MAN3PODS {
# To force inclusion, just name it "Configure.pod", or override
# MAN3PODS
foreach my $name (keys %manifypods) {
- if ($self->{PERL_CORE} and $name =~ /(config|setup).*\.pm/is) {
+ if (
+ ($self->{PERL_CORE} and $name =~ /(config|setup).*\.pm/is) or
+ ( $name =~ m/^README\.pod$/i ) # don't manify top-level README.pod
+ ) {
delete $manifypods{$name};
next;
}
@@ -1562,7 +1637,14 @@ sub init_PM {
$inst = $self->libscan($inst);
print "libscan($path) => '$inst'\n" if ($Verbose >= 2);
return unless $inst;
- $self->{PM}{$path} = $inst;
+ if ($self->{XSMULTI} and $inst =~ /\.xs\z/) {
+ my($base); ($base = $path) =~ s/\.xs\z//;
+ $self->{XS}{$path} = "$base.c";
+ push @{$self->{C}}, "$base.c";
+ push @{$self->{O_FILES}}, "$base$self->{OBJ_EXT}";
+ } else {
+ $self->{PM}{$path} = $inst;
+ }
}, @{$self->{PMLIBDIRS}});
}
}
@@ -1987,19 +2069,22 @@ sub init_PERL {
$self->{PERL_CORE} = $ENV{PERL_CORE} unless exists $self->{PERL_CORE};
$self->{PERL_CORE} = 0 unless defined $self->{PERL_CORE};
+ # Make sure perl can find itself before it's installed.
+ my $lib_paths = $self->{UNINSTALLED_PERL} || $self->{PERL_CORE}
+ ? ( $self->{PERL_ARCHLIB} && $self->{PERL_LIB} && $self->{PERL_ARCHLIB} ne $self->{PERL_LIB} ) ?
+ q{ "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)"} : q{ "-I$(PERL_LIB)"}
+ : undef;
+ my $inst_lib_paths = $self->{INST_ARCHLIB} ne $self->{INST_LIB}
+ ? 'RUN)'.$perlflags.' "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"'
+ : 'RUN)'.$perlflags.' "-I$(INST_LIB)"';
# How do we run perl?
foreach my $perl (qw(PERL FULLPERL ABSPERL)) {
my $run = $perl.'RUN';
$self->{$run} = qq{\$($perl)};
+ $self->{$run} .= $lib_paths if $lib_paths;
- # Make sure perl can find itself before it's installed.
- $self->{$run} .= q{ "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)"}
- if $self->{UNINSTALLED_PERL} || $self->{PERL_CORE};
-
- $self->{$perl.'RUNINST'} =
- sprintf q{$(%sRUN)%s "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"},
- $perl, $perlflags;
+ $self->{$perl.'RUNINST'} = '$('.$perl.$inst_lib_paths;
}
return 1;
@@ -2049,8 +2134,7 @@ Called by init_main. Initializes PERL_*
sub init_PERM {
my($self) = shift;
- my $perm_dir = $self->{PERL_CORE} ? 770 : 755;
- $self->{PERM_DIR} = $perm_dir unless defined $self->{PERM_DIR};
+ $self->{PERM_DIR} = 755 unless defined $self->{PERM_DIR};
$self->{PERM_RW} = 644 unless defined $self->{PERM_RW};
$self->{PERM_RWX} = 755 unless defined $self->{PERM_RWX};
@@ -2077,6 +2161,31 @@ sub init_xs {
$self->catfile('$(INST_ARCHAUTODIR)', '$(DLBASE).$(DLEXT)');
$self->{INST_BOOT} =
$self->catfile('$(INST_ARCHAUTODIR)', '$(BASEEXT).bs');
+ if ($self->{XSMULTI}) {
+ my @exts = $self->_xs_list_basenames;
+ my (@statics, @dynamics, @boots);
+ for my $ext (@exts) {
+ my ($v, $d, $f) = File::Spec->splitpath($ext);
+ my @d = File::Spec->splitdir($d);
+ shift @d if defined $d[0] and $d[0] eq 'lib';
+ my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+ my $instfile = $self->catfile($instdir, $f);
+ push @statics, "$instfile\$(LIB_EXT)";
+
+ # Dynamic library names may need special handling.
+ my $dynfile = $instfile;
+ eval { require DynaLoader };
+ if (defined &DynaLoader::mod2fname) {
+ $dynfile = $self->catfile($instdir, &DynaLoader::mod2fname([@d, $f]));
+ }
+
+ push @dynamics, "$dynfile.\$(DLEXT)";
+ push @boots, "$instfile.bs";
+ }
+ $self->{INST_STATIC} = join ' ', @statics;
+ $self->{INST_DYNAMIC} = join ' ', @dynamics;
+ $self->{INST_BOOT} = join ' ', @boots;
+ }
} else {
$self->{INST_STATIC} = '';
$self->{INST_DYNAMIC} = '';
@@ -2193,7 +2302,7 @@ doc_perl_install :: all
-$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" $(INSTALLPRIVLIB) \
+ "installed into" "$(INSTALLPRIVLIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
@@ -2204,7 +2313,7 @@ doc_site_install :: all
-$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" $(INSTALLSITELIB) \
+ "installed into" "$(INSTALLSITELIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
@@ -2215,7 +2324,7 @@ doc_vendor_install :: all
-$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" $(INSTALLVENDORLIB) \
+ "installed into" "$(INSTALLVENDORLIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
@@ -2250,7 +2359,7 @@ sub installbin {
my($self) = shift;
return "" unless $self->{EXE_FILES} && ref $self->{EXE_FILES} eq "ARRAY";
- my @exefiles = @{$self->{EXE_FILES}};
+ my @exefiles = sort @{$self->{EXE_FILES}};
return "" unless @exefiles;
@exefiles = map vmsify($_), @exefiles if $Is{VMS};
@@ -2266,7 +2375,7 @@ sub installbin {
$to = vmsify($to) if $Is{VMS};
$fromto{$from} = $to;
}
- my @to = values %fromto;
+ my @to = sort values %fromto;
my @m;
push(@m, qq{
@@ -2282,17 +2391,16 @@ realclean ::
push @m, map "\t$_\n", $self->split_command('$(RM_F)', @to);
push @m, "\n";
-
# A target for each exe file.
- while (my($from,$to) = each %fromto) {
- last unless defined $from;
-
- push @m, sprintf <<'MAKE', $to, $from, $to, $from, $to, $to, $to;
-%s : %s $(FIRST_MAKEFILE) $(INST_SCRIPT)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists
- $(NOECHO) $(RM_F) %s
- $(CP) %s %s
- $(FIXIN) %s
- -$(NOECHO) $(CHMOD) $(PERM_RWX) %s
+ my @froms = sort keys %fromto;
+ for my $from (@froms) {
+ # 1 2
+ push @m, _sprintf562 <<'MAKE', $from, $fromto{$from};
+%2$s : %1$s $(FIRST_MAKEFILE) $(INST_SCRIPT)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists
+ $(NOECHO) $(RM_F) %2$s
+ $(CP) %1$s %2$s
+ $(FIXIN) %2$s
+ -$(NOECHO) $(CHMOD) $(PERM_RWX) %2$s
MAKE
@@ -2301,18 +2409,21 @@ MAKE
join "", @m;
}
-
=item linkext (o)
Defines the linkext target which in turn defines the LINKTYPE.
=cut
+# LINKTYPE => static or dynamic or ''
sub linkext {
my($self, %attribs) = @_;
- # LINKTYPE => static or dynamic or ''
- my($linktype) = defined $attribs{LINKTYPE} ?
- $attribs{LINKTYPE} : '$(LINKTYPE)';
+ my $linktype = $attribs{LINKTYPE};
+ $linktype = $self->{LINKTYPE} unless defined $linktype;
+ if (defined $linktype and $linktype eq '') {
+ warn "Warning: LINKTYPE set to '', no longer necessary\n";
+ }
+ $linktype = '$(LINKTYPE)' unless defined $linktype;
"
linkext :: $linktype
\$(NOECHO) \$(NOOP)
@@ -2327,14 +2438,13 @@ all entries in the directory that match the regular expression.
=cut
sub lsdir {
- my($self) = shift;
- my($dir, $regex) = @_;
- my(@ls);
- my $dh = new DirHandle;
- $dh->open($dir || ".") or return ();
- @ls = $dh->read;
- $dh->close;
- @ls = grep(/$regex/, @ls) if $regex;
+ # $self
+ my(undef, $dir, $regex) = @_;
+ opendir(my $dh, defined($dir) ? $dir : ".")
+ or return;
+ my @ls = readdir $dh;
+ closedir $dh;
+ @ls = grep(/$regex/, @ls) if defined $regex;
@ls;
}
@@ -2347,9 +2457,9 @@ into the Makefile.
sub macro {
my($self,%attribs) = @_;
- my(@m,$key,$val);
- while (($key,$val) = each %attribs){
- last unless defined $key;
+ my @m;
+ foreach my $key (sort keys %attribs) {
+ my $val = $attribs{$key};
push @m, "$key = $val\n";
}
join "", @m;
@@ -2370,11 +2480,13 @@ sub makeaperl {
my($self, %attribs) = @_;
my($makefilename, $searchdirs, $static, $extra, $perlinc, $target, $tmp, $libperl) =
@attribs{qw(MAKE DIRS STAT EXTRA INCL TARGET TMP LIBPERL)};
+ s/^(.*)/"-I$1"/ for @{$perlinc || []};
my(@m);
push @m, "
# --- MakeMaker makeaperl section ---
MAP_TARGET = $target
FULLPERL = $self->{FULLPERL}
+MAP_PERLINC = @{$perlinc || []}
";
return join '', @m if $self->{PARENT};
@@ -2382,10 +2494,10 @@ FULLPERL = $self->{FULLPERL}
unless ($self->{MAKEAPERL}) {
push @m, q{
-$(MAP_TARGET) :: static $(MAKE_APERL_FILE)
+$(MAP_TARGET) :: $(MAKE_APERL_FILE)
$(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@
-$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
+$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib
$(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
$(NOECHO) $(PERLRUNINST) \
Makefile.PL DIR="}, $dir, q{" \
@@ -2393,23 +2505,18 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=};
foreach (@ARGV){
- if( /\s/ ){
- s/=(.*)/='$1'/;
+ my $arg = $_; # avoid lvalue aliasing
+ if ( $arg =~ /(^.*?=)(.*['\s].*)/ ) {
+ $arg = $1 . $self->quote_literal($2);
}
- push @m, " \\\n\t\t$_";
+ push @m, " \\\n\t\t$arg";
}
-# push @m, map( " \\\n\t\t$_", @ARGV );
push @m, "\n";
return join '', @m;
}
-
-
- my($cccmd, $linkcmd, $lperl);
-
-
- $cccmd = $self->const_cccmd($libperl);
+ my $cccmd = $self->const_cccmd($libperl);
$cccmd =~ s/^CCCMD\s*=\s*//;
$cccmd =~ s/\$\(INC\)/ "-I$self->{PERL_INC}" /;
$cccmd .= " $Config{cccdlflags}"
@@ -2417,70 +2524,19 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
$cccmd =~ s/\(CC\)/\(PERLMAINCC\)/;
# The front matter of the linkcommand...
- $linkcmd = join ' ', "\$(CC)",
+ my $linkcmd = join ' ', "\$(CC)",
grep($_, @Config{qw(ldflags ccdlflags)});
$linkcmd =~ s/\s+/ /g;
$linkcmd =~ s,(perl\.exp),\$(PERL_INC)/$1,;
# Which *.a files could we make use of...
- my %static;
- require File::Find;
- File::Find::find(sub {
- return unless m/\Q$self->{LIB_EXT}\E$/;
-
- # Skip perl's libraries.
- return if m/^libperl/ or m/^perl\Q$self->{LIB_EXT}\E$/;
-
- # Skip purified versions of libraries
- # (e.g., DynaLoader_pure_p1_c0_032.a)
- return if m/_pure_\w+_\w+_\w+\.\w+$/ and -f "$File::Find::dir/.pure";
-
- if( exists $self->{INCLUDE_EXT} ){
- my $found = 0;
-
- (my $xx = $File::Find::name) =~ s,.*?/auto/,,s;
- $xx =~ s,/?$_,,;
- $xx =~ s,/,::,g;
-
- # Throw away anything not explicitly marked for inclusion.
- # DynaLoader is implied.
- foreach my $incl ((@{$self->{INCLUDE_EXT}},'DynaLoader')){
- if( $xx eq $incl ){
- $found++;
- last;
- }
- }
- return unless $found;
- }
- elsif( exists $self->{EXCLUDE_EXT} ){
- (my $xx = $File::Find::name) =~ s,.*?/auto/,,s;
- $xx =~ s,/?$_,,;
- $xx =~ s,/,::,g;
-
- # Throw away anything explicitly marked for exclusion
- foreach my $excl (@{$self->{EXCLUDE_EXT}}){
- return if( $xx eq $excl );
- }
- }
-
- # don't include the installed version of this extension. I
- # leave this line here, although it is not necessary anymore:
- # I patched minimod.PL instead, so that Miniperl.pm won't
- # include duplicates
-
- # Once the patch to minimod.PL is in the distribution, I can
- # drop it
- return if $File::Find::name =~ m:auto/$self->{FULLEXT}/$self->{BASEEXT}$self->{LIB_EXT}\z:;
- use Cwd 'cwd';
- $static{cwd() . "/" . $_}++;
- }, grep( -d $_, @{$searchdirs || []}) );
-
+ my $staticlib21 = $self->_find_static_libs($searchdirs);
# We trust that what has been handed in as argument, will be buildable
$static = [] unless $static;
- @static{@{$static}} = (1) x @{$static};
+ @$staticlib21{@{$static}} = (1) x @{$static};
$extra = [] unless $extra && ref $extra eq 'ARRAY';
- for (sort keys %static) {
+ for (sort keys %$staticlib21) {
next unless /\Q$self->{LIB_EXT}\E\z/;
$_ = dirname($_) . "/extralibs.ld";
push @$extra, $_;
@@ -2494,15 +2550,16 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
# MAP_STATIC doesn't look into subdirs yet. Once "all" is made and we
# regenerate the Makefiles, MAP_STATIC and the dependencies for
# extralibs.all are computed correctly
+ my @map_static = reverse sort keys %$staticlib21;
push @m, "
MAP_LINKCMD = $linkcmd
-MAP_PERLINC = @{$perlinc || []}
-MAP_STATIC = ",
-join(" \\\n\t", reverse sort keys %static), "
+MAP_STATIC = ", join(" \\\n\t", map { qq{"$_"} } @map_static), "
+MAP_STATICDEP = ", join(' ', map { $self->quote_dep($_) } @map_static), "
MAP_PRELIBS = $Config{perllibs} $Config{cryptlib}
";
+ my $lperl;
if (defined $libperl) {
($lperl = $libperl) =~ s/\$\(A\)/$self->{LIB_EXT}/;
}
@@ -2523,17 +2580,20 @@ MAP_PRELIBS = $Config{perllibs} $Config{cryptlib}
}
}
- print "Warning: $libperl not found
- If you're going to build a static perl binary, make sure perl is installed
- otherwise ignore this warning\n"
- unless (-f $lperl || defined($self->{PERL_SRC}));
+ print <<EOF unless -f $lperl || defined($self->{PERL_SRC});
+Warning: $libperl not found
+If you're going to build a static perl binary, make sure perl is installed
+otherwise ignore this warning
+EOF
}
# SUNOS ld does not take the full path to a shared library
my $llibperl = $libperl ? '$(MAP_LIBPERL)' : '-lperl';
+ my $libperl_dep = $self->quote_dep($libperl);
push @m, "
MAP_LIBPERL = $libperl
+MAP_LIBPERLDEP = $libperl_dep
LLIBPERL = $llibperl
";
@@ -2547,25 +2607,29 @@ $(INST_ARCHAUTODIR)/extralibs.all : $(INST_ARCHAUTODIR)$(DFSEP).exists '.join("
push @m, "\tcat $catfile >> \$\@\n";
}
-push @m, "
-\$(MAP_TARGET) :: $tmp/perlmain\$(OBJ_EXT) \$(MAP_LIBPERL) \$(MAP_STATIC) \$(INST_ARCHAUTODIR)/extralibs.all
- \$(MAP_LINKCMD) -o \$\@ \$(OPTIMIZE) $tmp/perlmain\$(OBJ_EXT) \$(LDFROM) \$(MAP_STATIC) \$(LLIBPERL) `cat \$(INST_ARCHAUTODIR)/extralibs.all` \$(MAP_PRELIBS)
- \$(NOECHO) \$(ECHO) 'To install the new \"\$(MAP_TARGET)\" binary, call'
- \$(NOECHO) \$(ECHO) ' \$(MAKE) \$(USEMAKEFILE) $makefilename inst_perl MAP_TARGET=\$(MAP_TARGET)'
- \$(NOECHO) \$(ECHO) 'To remove the intermediate files say'
- \$(NOECHO) \$(ECHO) ' \$(MAKE) \$(USEMAKEFILE) $makefilename map_clean'
+ my $ldfrom = $self->{XSMULTI} ? '' : '$(LDFROM)';
+ # 1 2 3 4
+ push @m, _sprintf562 <<'EOF', $tmp, $ldfrom, $self->xs_obj_opt('$@'), $makefilename;
+$(MAP_TARGET) :: %1$s/perlmain$(OBJ_EXT) $(MAP_LIBPERLDEP) $(MAP_STATICDEP) $(INST_ARCHAUTODIR)/extralibs.all
+ $(MAP_LINKCMD) %2$s $(OPTIMIZE) %1$s/perlmain$(OBJ_EXT) %3$s $(MAP_STATIC) "$(LLIBPERL)" `cat $(INST_ARCHAUTODIR)/extralibs.all` $(MAP_PRELIBS)
+ $(NOECHO) $(ECHO) "To install the new '$(MAP_TARGET)' binary, call"
+ $(NOECHO) $(ECHO) " $(MAKE) $(USEMAKEFILE) %4$s inst_perl MAP_TARGET=$(MAP_TARGET)"
+ $(NOECHO) $(ECHO) " $(MAKE) $(USEMAKEFILE) %4$s map_clean"
-$tmp/perlmain\$(OBJ_EXT): $tmp/perlmain.c
-";
+%1$s/perlmain\$(OBJ_EXT): %1$s/perlmain.c
+EOF
push @m, "\t".$self->cd($tmp, qq[$cccmd "-I\$(PERL_INC)" perlmain.c])."\n";
- push @m, qq{
-$tmp/perlmain.c: $makefilename}, q{
+ my $maybe_DynaLoader = $Config{usedl} ? 'q(DynaLoader)' : '';
+ push @m, _sprintf562 <<'EOF', $tmp, $makefilename, $maybe_DynaLoader;
+
+%1$s/perlmain.c: %2$s
$(NOECHO) $(ECHO) Writing $@
- $(NOECHO) $(PERL) $(MAP_PERLINC) "-MExtUtils::Miniperl" \\
- -e "writemain(grep s#.*/auto/##s, split(q| |, q|$(MAP_STATIC)|))" > $@t && $(MV) $@t $@
+ $(NOECHO) $(PERL) $(MAP_PERLINC) "-MExtUtils::Miniperl" \
+ -e "writemain(grep(s#.*/auto/##s, @ARGV), %3$s)" $(MAP_STATIC) > $@t
+ $(MV) $@t $@
-};
+EOF
push @m, "\t", q{$(NOECHO) $(PERL) "$(INSTALLSCRIPT)/fixpmain"
} if (defined (&Dos::UseLFN) && Dos::UseLFN()==0);
@@ -2598,6 +2662,92 @@ map_clean :
join '', @m;
}
+# utility method
+sub _find_static_libs {
+ my ($self, $searchdirs) = @_;
+ # don't use File::Spec here because on Win32 F::F still uses "/"
+ my $installed_version = join('/',
+ 'auto', $self->{FULLEXT}, "$self->{BASEEXT}$self->{LIB_EXT}"
+ );
+ my %staticlib21;
+ require File::Find;
+ File::Find::find(sub {
+ if ($File::Find::name =~ m{/auto/share\z}) {
+ # in a subdir of auto/share, prune because e.g.
+ # Alien::pkgconfig uses File::ShareDir to put .a files
+ # there. do not want
+ $File::Find::prune = 1;
+ return;
+ }
+
+ return unless m/\Q$self->{LIB_EXT}\E$/;
+
+ return unless -f 'extralibs.ld'; # this checks is a "proper" XS installation
+
+ # Skip perl's libraries.
+ return if m/^libperl/ or m/^perl\Q$self->{LIB_EXT}\E$/;
+
+ # Skip purified versions of libraries
+ # (e.g., DynaLoader_pure_p1_c0_032.a)
+ return if m/_pure_\w+_\w+_\w+\.\w+$/ and -f "$File::Find::dir/.pure";
+
+ if( exists $self->{INCLUDE_EXT} ){
+ my $found = 0;
+
+ (my $xx = $File::Find::name) =~ s,.*?/auto/,,s;
+ $xx =~ s,/?$_,,;
+ $xx =~ s,/,::,g;
+
+ # Throw away anything not explicitly marked for inclusion.
+ # DynaLoader is implied.
+ foreach my $incl ((@{$self->{INCLUDE_EXT}},'DynaLoader')){
+ if( $xx eq $incl ){
+ $found++;
+ last;
+ }
+ }
+ return unless $found;
+ }
+ elsif( exists $self->{EXCLUDE_EXT} ){
+ (my $xx = $File::Find::name) =~ s,.*?/auto/,,s;
+ $xx =~ s,/?$_,,;
+ $xx =~ s,/,::,g;
+
+ # Throw away anything explicitly marked for exclusion
+ foreach my $excl (@{$self->{EXCLUDE_EXT}}){
+ return if( $xx eq $excl );
+ }
+ }
+
+ # don't include the installed version of this extension. I
+ # leave this line here, although it is not necessary anymore:
+ # I patched minimod.PL instead, so that Miniperl.pm won't
+ # include duplicates
+
+ # Once the patch to minimod.PL is in the distribution, I can
+ # drop it
+ return if $File::Find::name =~ m:\Q$installed_version\E\z:;
+ return if !$self->xs_static_lib_is_xs($_);
+ use Cwd 'cwd';
+ $staticlib21{cwd() . "/" . $_}++;
+ }, grep( -d $_, map { $self->catdir($_, 'auto') } @{$searchdirs || []}) );
+ return \%staticlib21;
+}
+
+=item xs_static_lib_is_xs (o)
+
+Called by a utility method of makeaperl. Checks whether a given file
+is an XS library by seeing whether it defines any symbols starting
+with C<boot_>.
+
+=cut
+
+sub xs_static_lib_is_xs {
+ my ($self, $libfile) = @_;
+ my $devnull = File::Spec->devnull;
+ return `nm $libfile 2>$devnull` =~ /\bboot_/;
+}
+
=item makefile (o)
Defines how to rewrite the Makefile.
@@ -2695,6 +2845,7 @@ sub parse_abstract {
local $/ = "\n";
open(my $fh, '<', $parsefile) or die "Could not open '$parsefile': $!";
+ binmode $fh;
my $inpod = 0;
my $pod_encoding;
my $package = $self->{DISTNAME};
@@ -2702,7 +2853,7 @@ sub parse_abstract {
while (<$fh>) {
$inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;
next if !$inpod;
- chop;
+ s#\r*\n\z##; # handle CRLF input
if ( /^=encoding\s*(.*)$/i ) {
$pod_encoding = $1;
@@ -2767,7 +2918,7 @@ sub parse_version {
next if $inpod || /^\s*#/;
chop;
next if /^\s*(if|unless|elsif)/;
- if ( m{^ \s* package \s+ \w[\w\:\']* \s+ (v?[0-9._]+) \s* ; }x ) {
+ if ( m{^ \s* package \s+ \w[\w\:\']* \s+ (v?[0-9._]+) \s* (;|\{) }x ) {
local $^W = 0;
$result = $1;
}
@@ -2812,7 +2963,16 @@ sub get_version {
=item pasthru (o)
Defines the string that is passed to recursive make calls in
-subdirectories.
+subdirectories. The variables like C<PASTHRU_DEFINE> are used in each
+level, and passed downwards on the command-line with e.g. the value of
+that level's DEFINE. Example:
+
+ # Level 0 has DEFINE = -Dfunky
+ # This code will define level 0's PASTHRU=PASTHRU_DEFINE="$(DEFINE)
+ # $(PASTHRU_DEFINE)"
+ # Level 0's $(CCCMD) will include macros $(DEFINE) and $(PASTHRU_DEFINE)
+ # So will level 1's, so when level 1 compiles, it will get right values
+ # And so ad infinitum
=cut
@@ -2833,8 +2993,14 @@ sub pasthru {
}
foreach my $key (qw(DEFINE INC)) {
- next unless defined $self->{$key};
- push @pasthru, "PASTHRU_$key=\"\$(PASTHRU_$key)\"";
+ # default to the make var
+ my $val = qq{\$($key)};
+ # expand within perl if given since need to use quote_literal
+ # since INC might include space-protecting ""!
+ chomp($val = $self->{$key}) if defined $self->{$key};
+ $val .= " \$(PASTHRU_$key)";
+ my $quoted = $self->quote_literal($val);
+ push @pasthru, qq{PASTHRU_$key=$quoted};
}
push @m, "\nPASTHRU = ", join ($sep, @pasthru), "\n";
@@ -2914,7 +3080,7 @@ pm_to_blib({\@ARGV}, '$autodir', q[\$(PM_FILTER)], '\$(PERM_DIR)')
CODE
my @cmds = $self->split_command($pm_to_blib,
- map { ($_, $self->{PM}->{$_}) } sort keys %{$self->{PM}});
+ map { ($self->quote_literal($_) => $self->quote_literal($self->{PM}->{$_})) } sort keys %{$self->{PM}});
$r .= join '', map { "\t\$(NOECHO) $_\n" } @cmds;
$r .= qq{\t\$(NOECHO) \$(TOUCH) pm_to_blib\n};
@@ -2922,39 +3088,6 @@ CODE
return $r;
}
-=item post_constants (o)
-
-Returns an empty string per default. Dedicated to overrides from
-within Makefile.PL after all constants have been defined.
-
-=cut
-
-sub post_constants{
- "";
-}
-
-=item post_initialize (o)
-
-Returns an empty string per default. Used in Makefile.PLs to add some
-chunk of text to the Makefile after the object is initialized.
-
-=cut
-
-sub post_initialize {
- "";
-}
-
-=item postamble (o)
-
-Returns an empty string. Can be used in Makefile.PLs to write some
-text to the Makefile at the end.
-
-=cut
-
-sub postamble {
- "";
-}
-
# transform dot-separated version string into comma-separated quadruple
# examples: '1.2.3.4.5' => '1,2,3,4'
# '1.2.3' => '1,2,3,0'
@@ -2978,25 +3111,23 @@ sub ppd {
$abstract =~ s/</&lt;/g;
$abstract =~ s/>/&gt;/g;
- my $author = join(', ',@{$self->{AUTHOR} || []});
+ my $author = join(', ',@{ ref $self->{AUTHOR} eq 'ARRAY' ? $self->{AUTHOR} : [ $self->{AUTHOR} || '']});
$author =~ s/</&lt;/g;
$author =~ s/>/&gt;/g;
- my $ppd_file = '$(DISTNAME).ppd';
+ my $ppd_file = "$self->{DISTNAME}.ppd";
- my @ppd_cmds = $self->echo(<<'PPD_HTML', $ppd_file, { append => 0, allow_variables => 1 });
-<SOFTPKG NAME="$(DISTNAME)" VERSION="$(VERSION)">
-PPD_HTML
+ my @ppd_chunks = qq(<SOFTPKG NAME="$self->{DISTNAME}" VERSION="$self->{VERSION}">\n);
- my $ppd_xml = sprintf <<'PPD_HTML', $abstract, $author;
+ push @ppd_chunks, sprintf <<'PPD_HTML', $abstract, $author;
<ABSTRACT>%s</ABSTRACT>
<AUTHOR>%s</AUTHOR>
PPD_HTML
- $ppd_xml .= " <IMPLEMENTATION>\n";
+ push @ppd_chunks, " <IMPLEMENTATION>\n";
if ( $self->{MIN_PERL_VERSION} ) {
my $min_perl_version = $self->_ppd_version($self->{MIN_PERL_VERSION});
- $ppd_xml .= sprintf <<'PPD_PERLVERS', $min_perl_version;
+ push @ppd_chunks, sprintf <<'PPD_PERLVERS', $min_perl_version;
<PERLCORE VERSION="%s" />
PPD_PERLVERS
@@ -3016,7 +3147,7 @@ PPD_PERLVERS
my %attrs = ( NAME => $name );
$attrs{VERSION} = $version if $version;
my $attrs = join " ", map { qq[$_="$attrs{$_}"] } sort keys %attrs;
- $ppd_xml .= qq( <REQUIRE $attrs />\n);
+ push @ppd_chunks, qq( <REQUIRE $attrs />\n);
}
my $archname = $Config{archname};
@@ -3026,28 +3157,28 @@ PPD_PERLVERS
# version that changes when binary compatibility may change
$archname .= "-$Config{PERL_REVISION}.$Config{PERL_VERSION}";
}
- $ppd_xml .= sprintf <<'PPD_OUT', $archname;
+ push @ppd_chunks, sprintf <<'PPD_OUT', $archname;
<ARCHITECTURE NAME="%s" />
PPD_OUT
if ($self->{PPM_INSTALL_SCRIPT}) {
if ($self->{PPM_INSTALL_EXEC}) {
- $ppd_xml .= sprintf qq{ <INSTALL EXEC="%s">%s</INSTALL>\n},
+ push @ppd_chunks, sprintf qq{ <INSTALL EXEC="%s">%s</INSTALL>\n},
$self->{PPM_INSTALL_EXEC}, $self->{PPM_INSTALL_SCRIPT};
}
else {
- $ppd_xml .= sprintf qq{ <INSTALL>%s</INSTALL>\n},
+ push @ppd_chunks, sprintf qq{ <INSTALL>%s</INSTALL>\n},
$self->{PPM_INSTALL_SCRIPT};
}
}
if ($self->{PPM_UNINSTALL_SCRIPT}) {
if ($self->{PPM_UNINSTALL_EXEC}) {
- $ppd_xml .= sprintf qq{ <UNINSTALL EXEC="%s">%s</UNINSTALL>\n},
+ push @ppd_chunks, sprintf qq{ <UNINSTALL EXEC="%s">%s</UNINSTALL>\n},
$self->{PPM_UNINSTALL_EXEC}, $self->{PPM_UNINSTALL_SCRIPT};
}
else {
- $ppd_xml .= sprintf qq{ <UNINSTALL>%s</UNINSTALL>\n},
+ push @ppd_chunks, sprintf qq{ <UNINSTALL>%s</UNINSTALL>\n},
$self->{PPM_UNINSTALL_SCRIPT};
}
}
@@ -3055,13 +3186,13 @@ PPD_OUT
my ($bin_location) = $self->{BINARY_LOCATION} || '';
$bin_location =~ s/\\/\\\\/g;
- $ppd_xml .= sprintf <<'PPD_XML', $bin_location;
+ push @ppd_chunks, sprintf <<'PPD_XML', $bin_location;
<CODEBASE HREF="%s" />
</IMPLEMENTATION>
</SOFTPKG>
PPD_XML
- push @ppd_cmds, $self->echo($ppd_xml, $ppd_file, { append => 1 });
+ my @ppd_cmds = $self->stashmeta(join('', @ppd_chunks), $ppd_file);
return sprintf <<'PPD_OUT', join "\n\t", @ppd_cmds;
# Creates a PPD (Perl Package Description) for a binary distribution.
@@ -3139,40 +3270,40 @@ sub processPL {
foreach my $plfile (sort keys %$pl_files) {
my $list = ref($pl_files->{$plfile})
? $pl_files->{$plfile}
- : [$pl_files->{$plfile}];
+ : [$pl_files->{$plfile}];
- foreach my $target (@$list) {
+ foreach my $target (@$list) {
if( $Is{VMS} ) {
$plfile = vmsify($self->eliminate_macros($plfile));
$target = vmsify($self->eliminate_macros($target));
}
- # Normally a .PL file runs AFTER pm_to_blib so it can have
- # blib in its @INC and load the just built modules. BUT if
- # the generated module is something in $(TO_INST_PM) which
- # pm_to_blib depends on then it can't depend on pm_to_blib
- # else we have a dependency loop.
- my $pm_dep;
- my $perlrun;
- if( defined $self->{PM}{$target} ) {
- $pm_dep = '';
- $perlrun = 'PERLRUN';
- }
- else {
- $pm_dep = 'pm_to_blib';
- $perlrun = 'PERLRUNINST';
- }
+ # Normally a .PL file runs AFTER pm_to_blib so it can have
+ # blib in its @INC and load the just built modules. BUT if
+ # the generated module is something in $(TO_INST_PM) which
+ # pm_to_blib depends on then it can't depend on pm_to_blib
+ # else we have a dependency loop.
+ my $pm_dep;
+ my $perlrun;
+ if( defined $self->{PM}{$target} ) {
+ $pm_dep = '';
+ $perlrun = 'PERLRUN';
+ }
+ else {
+ $pm_dep = 'pm_to_blib';
+ $perlrun = 'PERLRUNINST';
+ }
$m .= <<MAKE_FRAG;
-all :: $target
+pure_all :: $target
\$(NOECHO) \$(NOOP)
$target :: $plfile $pm_dep
\$($perlrun) $plfile $target
MAKE_FRAG
- }
+ }
}
return $m;
@@ -3339,29 +3470,86 @@ static :: $(FIRST_MAKEFILE) $(INST_STATIC)
';
}
-=item static_lib (o)
+sub static_lib {
+ my($self) = @_;
+ return '' unless $self->has_link_code;
+ my(@m);
+ my @libs;
+ if ($self->{XSMULTI}) {
+ for my $ext ($self->_xs_list_basenames) {
+ my ($v, $d, $f) = File::Spec->splitpath($ext);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $d[0] eq 'lib';
+ my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+ my $instfile = $self->catfile($instdir, "$f\$(LIB_EXT)");
+ my $objfile = "$ext\$(OBJ_EXT)";
+ push @libs, [ $objfile, $instfile, $instdir ];
+ }
+ } else {
+ @libs = ([ qw($(OBJECT) $(INST_STATIC) $(INST_ARCHAUTODIR)) ]);
+ }
+ push @m, map { $self->xs_make_static_lib(@$_); } @libs;
+ join "\n", @m;
+}
+
+=item xs_make_static_lib
-Defines how to produce the *.a (or equivalent) files.
+Defines the recipes for the C<static_lib> section.
=cut
-sub static_lib {
- my($self) = @_;
- return '' unless $self->has_link_code;
+sub xs_make_static_lib {
+ my ($self, $from, $to, $todir) = @_;
+ my @m = sprintf '%s: %s $(MYEXTLIB) %s$(DFSEP).exists'."\n", $to, $from, $todir;
+ push @m, "\t\$(RM_F) \"\$\@\"\n";
+ push @m, $self->static_lib_fixtures;
+ push @m, $self->static_lib_pure_cmd($from);
+ push @m, "\t\$(CHMOD) \$(PERM_RWX) \$\@\n";
+ push @m, $self->static_lib_closures($todir);
+ join '', @m;
+}
- my(@m);
- push(@m, <<'END');
+=item static_lib_closures
-$(INST_STATIC) : $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(RM_RF) $@
-END
+Records C<$(EXTRALIBS)> in F<extralibs.ld> and F<$(PERL_SRC)/ext.libs>.
+=cut
+
+sub static_lib_closures {
+ my ($self, $todir) = @_;
+ my @m = sprintf <<'MAKE_FRAG', $todir;
+ $(NOECHO) $(ECHO) "$(EXTRALIBS)" > %s$(DFSEP)extralibs.ld
+MAKE_FRAG
+ # Old mechanism - still available:
+ push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS};
+ $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)$(DFSEP)ext.libs
+MAKE_FRAG
+ @m;
+}
+
+=item static_lib_fixtures
+
+Handles copying C<$(MYEXTLIB)> as starter for final static library that
+then gets added to.
+
+=cut
+
+sub static_lib_fixtures {
+ my ($self) = @_;
# If this extension has its own library (eg SDBM_File)
# then copy that to $(INST_STATIC) and add $(OBJECT) into it.
- push(@m, <<'MAKE_FRAG') if $self->{MYEXTLIB};
- $(CP) $(MYEXTLIB) "$@"
-MAKE_FRAG
+ return unless $self->{MYEXTLIB};
+ "\t\$(CP) \$(MYEXTLIB) \"\$\@\"\n";
+}
+=item static_lib_pure_cmd
+
+Defines how to run the archive utility.
+
+=cut
+
+sub static_lib_pure_cmd {
+ my ($self, $from) = @_;
my $ar;
if (exists $self->{FULL_AR} && -x $self->{FULL_AR}) {
# Prefer the absolute pathed ar if available so that PATH
@@ -3370,18 +3558,10 @@ MAKE_FRAG
} else {
$ar = 'AR';
}
- push @m, sprintf <<'MAKE_FRAG', $ar;
- $(%s) $(AR_STATIC_ARGS) $@ $(OBJECT) && $(RANLIB) $@
- $(CHMOD) $(PERM_RWX) $@
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" > "$(INST_ARCHAUTODIR)/extralibs.ld"
-MAKE_FRAG
-
- # Old mechanism - still available:
- push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS};
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> "$(PERL_SRC)/ext.libs"
+ sprintf <<'MAKE_FRAG', $ar, $from;
+ $(%s) $(AR_STATIC_ARGS) "$@" %s
+ $(RANLIB) "$@"
MAKE_FRAG
-
- join('', @m);
}
=item staticmake (o)
@@ -3460,15 +3640,16 @@ sub subdirs {
# subdirectories containing further Makefile.PL scripts.
# It calls the subdir_x() method for each subdirectory.
foreach my $dir (@{$self->{DIR}}){
- push(@m, $self->subdir_x($dir));
+ push @m, $self->subdir_x($dir);
#### print "Including $dir subdirectory\n";
}
if (@m){
- unshift(@m, "
+ unshift @m, <<'EOF';
+
# The default clean, realclean and test targets in this Makefile
# have automatically been given entries for each subdir.
-");
+EOF
} else {
push(@m, "\n# none")
}
@@ -3482,8 +3663,6 @@ Defines the test targets.
=cut
sub test {
-# --- Test and Installation Sections ---
-
my($self, %attribs) = @_;
my $tests = $attribs{TESTS} || '';
if (!$tests && -d 't' && defined $attribs{RECURSIVE_TEST_FILES}) {
@@ -3495,8 +3674,9 @@ sub test {
# have to do this because nmake is broken
$tests =~ s!/!\\!g if $self->is_make_type('nmake');
# note: 'test.pl' name is also hardcoded in init_dirscan()
- my(@m);
- push(@m,"
+ my @m;
+ my $default_testtype = $Config{usedl} ? 'dynamic' : 'static';
+ push @m, <<EOF;
TEST_VERBOSE=0
TEST_TYPE=test_\$(LINKTYPE)
TEST_FILE = test.pl
@@ -3504,56 +3684,59 @@ TEST_FILES = $tests
TESTDB_SW = -d
testdb :: testdb_\$(LINKTYPE)
+ \$(NOECHO) \$(NOOP)
-test :: \$(TEST_TYPE) subdirs-test
-
-subdirs-test ::
+test :: \$(TEST_TYPE)
\$(NOECHO) \$(NOOP)
-");
+# Occasionally we may face this degenerate target:
+test_ : test_$default_testtype
+ \$(NOECHO) \$(NOOP)
- foreach my $dir (@{ $self->{DIR} }) {
- my $test = $self->cd($dir, '$(MAKE) test $(PASTHRU)');
+EOF
- push @m, <<END
-subdirs-test ::
- \$(NOECHO) $test
+ for my $linktype (qw(dynamic static)) {
+ my $directdeps = join ' ', grep !$self->{SKIPHASH}{$_}, $linktype, "pure_all"; # no depend on a linktype if SKIPped
+ push @m, "subdirs-test_$linktype :: $directdeps\n";
+ foreach my $dir (@{ $self->{DIR} }) {
+ my $test = $self->cd($dir, "\$(MAKE) test_$linktype \$(PASTHRU)");
+ push @m, "\t\$(NOECHO) $test\n";
+ }
+ push @m, "\n";
+ if ($tests or -f "test.pl") {
+ for my $testspec ([ '', '' ], [ 'db', ' $(TESTDB_SW)' ]) {
+ my ($db, $switch) = @$testspec;
+ my ($command, $deps);
+ # if testdb, build all but don't test all
+ $deps = $db eq 'db' ? $directdeps : "subdirs-test_$linktype";
+ if ($linktype eq 'static' and $self->needs_linking) {
+ my $target = File::Spec->rel2abs('$(MAP_TARGET)');
+ $command = qq{"$target" \$(MAP_PERLINC)};
+ $deps .= ' $(MAP_TARGET)';
+ } else {
+ $command = '$(FULLPERLRUN)' . $switch;
+ }
+ push @m, "test${db}_$linktype :: $deps\n";
+ if ($db eq 'db') {
+ push @m, $self->test_via_script($command, '$(TEST_FILE)')
+ } else {
+ push @m, $self->test_via_script($command, '$(TEST_FILE)')
+ if -f "test.pl";
+ push @m, $self->test_via_harness($command, '$(TEST_FILES)')
+ if $tests;
+ }
+ push @m, "\n";
+ }
+ } else {
+ push @m, _sprintf562 <<'EOF', $linktype;
+testdb_%1$s test_%1$s :: subdirs-test_%1$s
+ $(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
-END
+EOF
+ }
}
- push(@m, "\t\$(NOECHO) \$(ECHO) 'No tests defined for \$(NAME) extension.'\n")
- unless $tests or -f "test.pl" or @{$self->{DIR}};
- push(@m, "\n");
-
- push(@m, "test_dynamic :: pure_all\n");
- push(@m, $self->test_via_harness('$(FULLPERLRUN)', '$(TEST_FILES)'))
- if $tests;
- push(@m, $self->test_via_script('$(FULLPERLRUN)', '$(TEST_FILE)'))
- if -f "test.pl";
- push(@m, "\n");
-
- push(@m, "testdb_dynamic :: pure_all\n");
- push(@m, $self->test_via_script('$(FULLPERLRUN) $(TESTDB_SW)',
- '$(TEST_FILE)'));
- push(@m, "\n");
-
- # Occasionally we may face this degenerate target:
- push @m, "test_ : test_dynamic\n\n";
-
- if ($self->needs_linking()) {
- push(@m, "test_static :: pure_all \$(MAP_TARGET)\n");
- push(@m, $self->test_via_harness('./$(MAP_TARGET)', '$(TEST_FILES)')) if $tests;
- push(@m, $self->test_via_script('./$(MAP_TARGET)', '$(TEST_FILE)')) if -f "test.pl";
- push(@m, "\n");
- push(@m, "testdb_static :: pure_all \$(MAP_TARGET)\n");
- push(@m, $self->test_via_script('./$(MAP_TARGET) $(TESTDB_SW)', '$(TEST_FILE)'));
- push(@m, "\n");
- } else {
- push @m, "test_static :: test_dynamic\n";
- push @m, "testdb_static :: testdb_dynamic\n";
- }
- join("", @m);
+ join "", @m;
}
=item test_via_harness (override)
@@ -3606,7 +3789,7 @@ sub tool_xsubpp {
}
die "ExtUtils::MM_Unix::tool_xsubpp : Can't find xsubpp" if !$foundxsubpp;
- my $tmdir = File::Spec->catdir($self->{PERL_LIB},"ExtUtils");
+ my $tmdir = $self->catdir($self->{PERL_LIB},"ExtUtils");
my(@tmdeps) = $self->catfile($tmdir,'typemap');
if( $self->{TYPEMAPS} ){
foreach my $typemap (@{$self->{TYPEMAPS}}){
@@ -3614,12 +3797,21 @@ sub tool_xsubpp {
warn "Typemap $typemap not found.\n";
}
else {
- push(@tmdeps, $typemap);
+ $typemap = vmsify($typemap) if $Is{VMS};
+ push(@tmdeps, $typemap);
}
}
}
push(@tmdeps, "typemap") if -f "typemap";
- my @tmargs = map(qq{-typemap "$_"}, @tmdeps);
+ # absolutised because with deep-located typemaps, eg "lib/XS/typemap",
+ # if xsubpp is called from top level with
+ # $(XSUBPP) ... -typemap "lib/XS/typemap" "lib/XS/Test.xs"
+ # it says:
+ # Can't find lib/XS/type map in (fulldir)/lib/XS
+ # because ExtUtils::ParseXS::process_file chdir's to .xs file's
+ # location. This is the only way to get all specified typemaps used,
+ # wherever located.
+ my @tmargs = map { '-typemap '.$self->quote_literal(File::Spec->rel2abs($_)) } @tmdeps;
$_ = $self->quote_dep($_) for @tmdeps;
if( exists $self->{XSOPT} ){
unshift( @tmargs, $self->{XSOPT} );
@@ -3680,19 +3872,21 @@ sub top_targets {
push @m, $self->all_target, "\n" unless $self->{SKIPHASH}{'all'};
- push @m, '
+ push @m, sprintf <<'EOF';
pure_all :: config pm_to_blib subdirs linkext
$(NOECHO) $(NOOP)
+ $(NOECHO) $(NOOP)
+
subdirs :: $(MYEXTLIB)
$(NOECHO) $(NOOP)
config :: $(FIRST_MAKEFILE) blibdirs
$(NOECHO) $(NOOP)
-';
+EOF
push @m, '
-$(O_FILES): $(H_FILES)
+$(O_FILES) : $(H_FILES)
' if @{$self->{O_FILES} || []} && @{$self->{H} || []};
push @m, q{
@@ -3712,7 +3906,7 @@ Obsolete, deprecated method. Not used since Version 5.21.
sub writedoc {
# --- perllocal.pod section ---
my($self,$what,$name,@attribs)=@_;
- my $time = localtime;
+ my $time = gmtime($ENV{SOURCE_DATE_EPOCH} || time);
print "=head2 $time: $what C<$name>\n\n=over 4\n\n=item *\n\n";
print join "\n\n=item *\n\n", map("C<$_>",@attribs);
print "\n\n=back\n\n";
@@ -3729,7 +3923,8 @@ sub xs_c {
return '' unless $self->needs_linking();
'
.xs.c:
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(XSUBPP_EXTRA_ARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.c
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(XSUBPP_EXTRA_ARGS) $*.xs > $*.xsc
+ $(MV) $*.xsc $*.c
';
}
@@ -3744,27 +3939,73 @@ sub xs_cpp {
return '' unless $self->needs_linking();
'
.xs.cpp:
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.cpp
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc
+ $(MV) $*.xsc $*.cpp
';
}
=item xs_o (o)
-Defines suffix rules to go from XS to object files directly. This is
-only intended for broken make implementations.
+Defines suffix rules to go from XS to object files directly. This was
+originally only intended for broken make implementations, but is now
+necessary for per-XS file under C<XSMULTI>, since each XS file might
+have an individual C<$(VERSION)>.
=cut
-sub xs_o { # many makes are too dumb to use xs_c then c_o
- my($self) = shift;
+sub xs_o {
+ my ($self) = @_;
return '' unless $self->needs_linking();
- '
-.xs$(OBJ_EXT):
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.c
- $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c
-';
+ my $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : '';
+ my $frag = '';
+ # dmake makes noise about ambiguous rule
+ $frag .= sprintf <<'EOF', $m_o unless $self->is_make_type('dmake');
+.xs$(OBJ_EXT) :
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc
+ $(MV) $*.xsc $*.c
+ $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c %s
+EOF
+ if ($self->{XSMULTI}) {
+ for my $ext ($self->_xs_list_basenames) {
+ my $pmfile = "$ext.pm";
+ croak "$ext.xs has no matching $pmfile: $!" unless -f $pmfile;
+ my $version = $self->parse_version($pmfile);
+ my $cccmd = $self->{CONST_CCCMD};
+ $cccmd =~ s/^\s*CCCMD\s*=\s*//;
+ $cccmd =~ s/\$\(DEFINE_VERSION\)/-DVERSION=\\"$version\\"/;
+ $cccmd =~ s/\$\(XS_DEFINE_VERSION\)/-DXS_VERSION=\\"$version\\"/;
+ $self->_xsbuild_replace_macro($cccmd, 'xs', $ext, 'INC');
+ my $define = '$(DEFINE)';
+ $self->_xsbuild_replace_macro($define, 'xs', $ext, 'DEFINE');
+ # 1 2 3 4
+ $frag .= _sprintf562 <<'EOF', $ext, $cccmd, $m_o, $define;
+
+%1$s$(OBJ_EXT): %1$s.xs
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc
+ $(MV) $*.xsc $*.c
+ %2$s $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) %4$s $*.c %3$s
+EOF
+ }
+ }
+ $frag;
+}
+
+# param gets modified
+sub _xsbuild_replace_macro {
+ my ($self, undef, $xstype, $ext, $varname) = @_;
+ my $value = $self->_xsbuild_value($xstype, $ext, $varname);
+ return unless defined $value;
+ $_[1] =~ s/\$\($varname\)/$value/;
}
+sub _xsbuild_value {
+ my ($self, $xstype, $ext, $varname) = @_;
+ return $self->{XSBUILD}{$xstype}{$ext}{$varname}
+ if $self->{XSBUILD}{$xstype}{$ext}{$varname};
+ return $self->{XSBUILD}{$xstype}{all}{$varname}
+ if $self->{XSBUILD}{$xstype}{all}{$varname};
+ ();
+}
1;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
index 60dd8713fc2..b6fbccfe349 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
@@ -15,13 +15,14 @@ BEGIN {
use File::Basename;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-use ExtUtils::MakeMaker qw($Verbose neatvalue);
+use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
our $Revision = $ExtUtils::MakeMaker::Revision;
@@ -302,15 +303,22 @@ sub maybe_command {
=item pasthru (override)
-VMS has $(MMSQUALIFIERS) which is a listing of all the original command line
-options. This is used in every invocation of make in the VMS Makefile so
-PASTHRU should not be necessary. Using PASTHRU tends to blow commands past
-the 256 character limit.
+The list of macro definitions to be passed through must be specified using
+the /MACRO qualifier and must not add another /DEFINE qualifier. We prepend
+our own comma here to the contents of $(PASTHRU_DEFINE) because it is often
+empty and a comma always present in CCFLAGS would generate a missing
+qualifier value error.
=cut
sub pasthru {
- return "PASTHRU=\n";
+ my($self) = shift;
+ my $pasthru = $self->SUPER::pasthru;
+ $pasthru =~ s|(PASTHRU\s*=\s*)|$1/MACRO=(|;
+ $pasthru =~ s|\n\z|)\n|m;
+ $pasthru =~ s|/defi?n?e?=\(?([^\),]+)\)?|,$1|ig;
+
+ return $pasthru;
}
@@ -725,13 +733,14 @@ sub cflags {
my $term = $1;
$term =~ s:^\((.+)\)$:$1:;
push @terms, $term;
- }
+ }
if ($type eq 'Def') {
push @terms, qw[ $(DEFINE_VERSION) $(XS_DEFINE_VERSION) ];
}
if (@terms) {
$quals =~ s:/${type}i?n?e?=[^/]+::ig;
- $quals .= "/${type}ine=(" . join(',',@terms) . ')';
+ # PASTHRU_DEFINE will have its own comma
+ $quals .= "/${type}ine=(" . join(',',@terms) . ($type eq 'Def' ? '$(PASTHRU_DEFINE)' : '') . ')';
}
}
@@ -884,13 +893,13 @@ sub c_o {
return '' unless $self->needs_linking();
'
.c$(OBJ_EXT) :
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c
+ $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
.cpp$(OBJ_EXT) :
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cpp
+ $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cpp /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
.cxx$(OBJ_EXT) :
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cxx
+ $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cxx /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
';
}
@@ -906,7 +915,8 @@ sub xs_c {
return '' unless $self->needs_linking();
'
.xs.c :
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET)
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).xsc
+ $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c
';
}
@@ -916,85 +926,211 @@ Use MM[SK] macros, and VMS command line for C compiler.
=cut
-sub xs_o { # many makes are too dumb to use xs_c then c_o
- my($self) = @_;
+sub xs_o {
+ my ($self) = @_;
return '' unless $self->needs_linking();
- '
+ my $frag = '
.xs$(OBJ_EXT) :
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).c
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).xsc
+ $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c
+ $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
';
+ if ($self->{XSMULTI}) {
+ for my $ext ($self->_xs_list_basenames) {
+ my $version = $self->parse_version("$ext.pm");
+ my $ccflags = $self->{CCFLAGS};
+ $ccflags =~ s/\$\(DEFINE_VERSION\)/\"VERSION_MACRO=\\"\"$version\\"\"/;
+ $ccflags =~ s/\$\(XS_DEFINE_VERSION\)/\"XS_VERSION_MACRO=\\"\"$version\\"\"/;
+ $self->_xsbuild_replace_macro($ccflags, 'xs', $ext, 'INC');
+ $self->_xsbuild_replace_macro($ccflags, 'xs', $ext, 'DEFINE');
+
+ $frag .= _sprintf562 <<'EOF', $ext, $ccflags;
+
+%1$s$(OBJ_EXT) : %1$s.xs
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs > $(MMS$TARGET_NAME).xsc
+ $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c
+ $(CC)%2$s$(OPTIMIZE) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
+EOF
+ }
+ }
+ $frag;
}
+=item _xsbuild_replace_macro (override)
-=item dlsyms (override)
+There is no simple replacement possible since a qualifier and all its
+subqualifiers must be considered together, so we use our own utility
+routine for the replacement.
-Create VMS linker options files specifying universal symbols for this
-extension's shareable image, and listing other shareable images or
-libraries to which it should be linked.
+=cut
+
+sub _xsbuild_replace_macro {
+ my ($self, undef, $xstype, $ext, $varname) = @_;
+ my $value = $self->_xsbuild_value($xstype, $ext, $varname);
+ return unless defined $value;
+ $_[1] = _vms_replace_qualifier($self, $_[1], $value, $varname);
+}
+
+=item _xsbuild_value (override)
+
+Convert the extension spec to Unix format, as that's what will
+match what's in the XSBUILD data structure.
=cut
-sub dlsyms {
- my($self,%attribs) = @_;
+sub _xsbuild_value {
+ my ($self, $xstype, $ext, $varname) = @_;
+ $ext = unixify($ext);
+ return $self->SUPER::_xsbuild_value($xstype, $ext, $varname);
+}
- return '' unless $self->needs_linking();
+sub _vms_replace_qualifier {
+ my ($self, $flags, $newflag, $macro) = @_;
+ my $qual_type;
+ my $type_suffix;
+ my $quote_subquals = 0;
+ my @subquals_new = split /\s+/, $newflag;
+
+ if ($macro eq 'DEFINE') {
+ $qual_type = 'Def';
+ $type_suffix = 'ine';
+ map { $_ =~ s/^-D// } @subquals_new;
+ $quote_subquals = 1;
+ }
+ elsif ($macro eq 'INC') {
+ $qual_type = 'Inc';
+ $type_suffix = 'lude';
+ map { $_ =~ s/^-I//; $_ = $self->fixpath($_) } @subquals_new;
+ }
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || [];
- my(@m);
+ my @subquals = ();
+ while ($flags =~ m:/${qual_type}\S{0,4}=([^/]+):ig) {
+ my $term = $1;
+ $term =~ s/\"//g;
+ $term =~ s:^\((.+)\)$:$1:;
+ push @subquals, split /,/, $term;
+ }
+ for my $new (@subquals_new) {
+ my ($sq_new, $sqval_new) = split /=/, $new;
+ my $replaced_old = 0;
+ for my $old (@subquals) {
+ my ($sq, $sqval) = split /=/, $old;
+ if ($sq_new eq $sq) {
+ $old = $sq_new;
+ $old .= '=' . $sqval_new if defined($sqval_new) and length($sqval_new);
+ $replaced_old = 1;
+ last;
+ }
+ }
+ push @subquals, $new unless $replaced_old;
+ }
- unless ($self->{SKIPHASH}{'dynamic'}) {
- push(@m,'
-dynamic :: $(INST_ARCHAUTODIR)$(BASEEXT).opt
- $(NOECHO) $(NOOP)
-');
+ if (@subquals) {
+ $flags =~ s:/${qual_type}\S{0,4}=[^/]+::ig;
+ # add quotes if requested but not for unexpanded macros
+ map { $_ = qq/"$_"/ if $_ !~ m/^\$\(/ } @subquals if $quote_subquals;
+ $flags .= "/${qual_type}$type_suffix=(" . join(',',@subquals) . ')';
}
- push(@m,'
-static :: $(INST_ARCHAUTODIR)$(BASEEXT).opt
- $(NOECHO) $(NOOP)
-') unless $self->{SKIPHASH}{'static'};
+ return $flags;
+}
- push @m,'
-$(INST_ARCHAUTODIR)$(BASEEXT).opt : $(BASEEXT).opt
- $(CP) $(MMS$SOURCE) $(MMS$TARGET)
-$(BASEEXT).opt : Makefile.PL
- $(PERLRUN) -e "use ExtUtils::Mksymlists;" -
- ',qq[-e "Mksymlists('NAME' => '$self->{NAME}', 'DL_FUNCS' => ],
- neatvalue($funcs),q[, 'DL_VARS' => ],neatvalue($vars),
- q[, 'FUNCLIST' => ],neatvalue($funclist),qq[)"\n];
-
- push @m, ' $(PERL) -e "print ""$(INST_STATIC)/Include=';
- if ($self->{OBJECT} =~ /\bBASEEXT\b/ or
- $self->{OBJECT} =~ /\b$self->{BASEEXT}\b/i) {
- push @m, ($Config{d_vms_case_sensitive_symbols}
- ? uc($self->{BASEEXT}) :'$(BASEEXT)');
- }
- else { # We don't have a "main" object file, so pull 'em all in
- # Upcase module names if linker is being case-sensitive
- my($upcase) = $Config{d_vms_case_sensitive_symbols};
- my(@omods) = split ' ', $self->eliminate_macros($self->{OBJECT});
- for (@omods) {
- s/\.[^.]*$//; # Trim off file type
- s[\$\(\w+_EXT\)][]; # even as a macro
- s/.*[:>\/\]]//; # Trim off dir spec
- $_ = uc if $upcase;
- };
-
- my(@lines);
- my $tmp = shift @omods;
- foreach my $elt (@omods) {
- $tmp .= ",$elt";
- if (length($tmp) > 80) { push @lines, $tmp; $tmp = ''; }
+sub xs_dlsyms_ext {
+ '.opt';
+}
+
+=item dlsyms (override)
+
+Create VMS linker options files specifying universal symbols for this
+extension's shareable image(s), and listing other shareable images or
+libraries to which it should be linked.
+
+=cut
+
+sub dlsyms {
+ my ($self, %attribs) = @_;
+ return '' unless $self->needs_linking;
+ $self->xs_dlsyms_iterator;
+}
+
+sub xs_make_dlsyms {
+ my ($self, $attribs, $target, $dep, $name, $dlbase, $funcs, $funclist, $imports, $vars, $extra) = @_;
+ my @m;
+ my $instloc;
+ if ($self->{XSMULTI}) {
+ my ($v, $d, $f) = File::Spec->splitpath($target);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $d[0] eq 'lib';
+ $instloc = $self->catfile('$(INST_ARCHLIB)', 'auto', @d, $f);
+ push @m,"\ndynamic :: $instloc\n\t\$(NOECHO) \$(NOOP)\n"
+ unless $self->{SKIPHASH}{'dynamic'};
+ push @m,"\nstatic :: $instloc\n\t\$(NOECHO) \$(NOOP)\n"
+ unless $self->{SKIPHASH}{'static'};
+ push @m, "\n", sprintf <<'EOF', $instloc, $target;
+%s : %s
+ $(CP) $(MMS$SOURCE) $(MMS$TARGET)
+EOF
+ }
+ else {
+ push @m,"\ndynamic :: \$(INST_ARCHAUTODIR)$self->{BASEEXT}.opt\n\t\$(NOECHO) \$(NOOP)\n"
+ unless $self->{SKIPHASH}{'dynamic'};
+ push @m,"\nstatic :: \$(INST_ARCHAUTODIR)$self->{BASEEXT}.opt\n\t\$(NOECHO) \$(NOOP)\n"
+ unless $self->{SKIPHASH}{'static'};
+ push @m, "\n", sprintf <<'EOF', $target;
+$(INST_ARCHAUTODIR)$(BASEEXT).opt : %s
+ $(CP) $(MMS$SOURCE) $(MMS$TARGET)
+EOF
+ }
+ push @m,
+ "\n$target : $dep\n\t",
+ q!$(PERLRUN) -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>'!, $name,
+ q!', 'DLBASE' => '!,$dlbase,
+ q!', 'DL_FUNCS' => !,neatvalue($funcs),
+ q!, 'FUNCLIST' => !,neatvalue($funclist),
+ q!, 'IMPORTS' => !,neatvalue($imports),
+ q!, 'DL_VARS' => !, neatvalue($vars);
+ push @m, $extra if defined $extra;
+ push @m, qq!);"\n\t!;
+ # Can't use dlbase as it's been through mod2fname.
+ my $olb_base = basename($target, '.opt');
+ if ($self->{XSMULTI}) {
+ # We've been passed everything but the kitchen sink -- and the location of the
+ # static library we're using to build the dynamic library -- so concoct that
+ # location from what we do have.
+ my $olb_dir = $self->catdir(dirname($instloc), $olb_base);
+ push @m, qq!\$(PERL) -e "print ""${olb_dir}${olb_base}\$(LIB_EXT)/Include=!;
+ push @m, ($Config{d_vms_case_sensitive_symbols} ? uc($olb_base) : $olb_base);
+ push @m, '\n' . $olb_dir . $olb_base . '$(LIB_EXT)/Library\n"";" >>$(MMS$TARGET)',"\n";
+ }
+ else {
+ push @m, qq!\$(PERL) -e "print ""\$(INST_ARCHAUTODIR)${olb_base}\$(LIB_EXT)/Include=!;
+ if ($self->{OBJECT} =~ /\bBASEEXT\b/ or
+ $self->{OBJECT} =~ /\b$self->{BASEEXT}\b/i) {
+ push @m, ($Config{d_vms_case_sensitive_symbols}
+ ? uc($self->{BASEEXT}) :'$(BASEEXT)');
}
- push @lines, $tmp;
- push @m, '(', join( qq[, -\\n\\t"";" >>\$(MMS\$TARGET)\n\t\$(PERL) -e "print ""], @lines),')';
+ else { # We don't have a "main" object file, so pull 'em all in
+ # Upcase module names if linker is being case-sensitive
+ my($upcase) = $Config{d_vms_case_sensitive_symbols};
+ my(@omods) = split ' ', $self->eliminate_macros($self->{OBJECT});
+ for (@omods) {
+ s/\.[^.]*$//; # Trim off file type
+ s[\$\(\w+_EXT\)][]; # even as a macro
+ s/.*[:>\/\]]//; # Trim off dir spec
+ $_ = uc if $upcase;
+ };
+ my(@lines);
+ my $tmp = shift @omods;
+ foreach my $elt (@omods) {
+ $tmp .= ",$elt";
+ if (length($tmp) > 80) { push @lines, $tmp; $tmp = ''; }
+ }
+ push @lines, $tmp;
+ push @m, '(', join( qq[, -\\n\\t"";" >>\$(MMS\$TARGET)\n\t\$(PERL) -e "print ""], @lines),')';
+ }
+ push @m, '\n$(INST_ARCHAUTODIR)' . $olb_base . '$(LIB_EXT)/Library\n"";" >>$(MMS$TARGET)',"\n";
}
- push @m, '\n$(INST_STATIC)/Library\n"";" >>$(MMS$TARGET)',"\n";
-
if (length $self->{LDLOADLIBS}) {
my($line) = '';
foreach my $lib (split ' ', $self->{LDLOADLIBS}) {
@@ -1007,9 +1143,19 @@ $(BASEEXT).opt : Makefile.PL
}
push @m, "\t\$(PERL) -e \"print qq{$line}\" >>\$(MMS\$TARGET)\n" if $line;
}
+ join '', @m;
+}
- join('',@m);
+=item xs_obj_opt
+
+Override to fixup -o flags.
+
+=cut
+
+sub xs_obj_opt {
+ my ($self, $output_file) = @_;
+ "/OBJECT=$output_file";
}
=item dynamic_lib (override)
@@ -1018,54 +1164,58 @@ Use VMS Link command.
=cut
-sub dynamic_lib {
- my($self, %attribs) = @_;
- return '' unless $self->needs_linking(); #might be because of a subdir
-
- return '' unless $self->has_link_code();
+sub xs_dynamic_lib_macros {
+ my ($self, $attribs) = @_;
+ my $otherldflags = $attribs->{OTHERLDFLAGS} || "";
+ my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || "";
+ sprintf <<'EOF', $otherldflags, $inst_dynamic_dep;
+# This section creates the dynamically loadable objects from relevant
+# objects and possibly $(MYEXTLIB).
+OTHERLDFLAGS = %s
+INST_DYNAMIC_DEP = %s
+EOF
+}
- my($otherldflags) = $attribs{OTHERLDFLAGS} || "";
- my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_;
my $shr = $Config{'dbgprefix'} . 'PerlShr';
- my(@m);
- push @m,"
-
-OTHERLDFLAGS = $otherldflags
-INST_DYNAMIC_DEP = $inst_dynamic_dep
-
-";
- push @m, '
-$(INST_DYNAMIC) : $(INST_STATIC) $(PERL_INC)perlshr_attr.opt $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVE) $(INST_DYNAMIC_DEP)
- If F$TrnLNm("',$shr,'").eqs."" Then Define/NoLog/User ',"$shr Sys\$Share:$shr.$Config{'dlext'}",'
- Link $(LDFLAGS) /Shareable=$(MMS$TARGET)$(OTHERLDFLAGS) $(BASEEXT).opt/Option,$(PERL_INC)perlshr_attr.opt/Option
-';
-
- join('',@m);
+ $exportlist =~ s/.def$/.opt/; # it's a linker options file
+ # 1 2 3 4 5
+ _sprintf562 <<'EOF', $to, $todir, $exportlist, $shr, "$shr Sys\$Share:$shr.$Config{'dlext'}";
+%1$s : $(INST_STATIC) $(PERL_INC)perlshr_attr.opt %2$s$(DFSEP).exists %3$s $(PERL_ARCHIVE) $(INST_DYNAMIC_DEP)
+ If F$TrnLNm("%4$s").eqs."" Then Define/NoLog/User %5$s
+ Link $(LDFLAGS) /Shareable=$(MMS$TARGET)$(OTHERLDFLAGS) %3$s/Option,$(PERL_INC)perlshr_attr.opt/Option
+EOF
}
-
-=item static_lib (override)
+=item xs_make_static_lib (override)
Use VMS commands to manipulate object library.
=cut
-sub static_lib {
- my($self) = @_;
- return '' unless $self->needs_linking();
-
- return '
-$(INST_STATIC) :
- $(NOECHO) $(NOOP)
-' unless ($self->{OBJECT} or @{$self->{C} || []} or $self->{MYEXTLIB});
+sub xs_make_static_lib {
+ my ($self, $object, $to, $todir) = @_;
+
+ my @objects;
+ if ($self->{XSMULTI}) {
+ # The extension name should be the main object file name minus file type.
+ my $lib = $object;
+ $lib =~ s/\$\(OBJ_EXT\)\z//;
+ my $override = $self->_xsbuild_value('xs', $lib, 'OBJECT');
+ $object = $override if defined $override;
+ @objects = map { $self->fixpath($_,0) } split /(?<!\^)\s+/, $object;
+ }
+ else {
+ push @objects, $object;
+ }
- my(@m);
- push @m,'
-# Rely on suffix rule for update action
-$(OBJECT) : $(INST_ARCHAUTODIR)$(DFSEP).exists
+ my @m;
+ for my $obj (@objects) {
+ push(@m, sprintf "\n%s : %s\$(DFSEP).exists", $obj, $todir);
+ }
+ push(@m, sprintf "\n\n%s : %s \$(MYEXTLIB)\n", $to, (join ' ', @objects));
-$(INST_STATIC) : $(OBJECT) $(MYEXTLIB)
-';
# If this extension has its own library (eg SDBM_File)
# then copy that to $(INST_STATIC) and add $(OBJECT) into it.
push(@m, "\t",'$(CP) $(MYEXTLIB) $(MMS$TARGET)',"\n") if $self->{MYEXTLIB};
@@ -1076,8 +1226,11 @@ $(INST_STATIC) : $(OBJECT) $(MYEXTLIB)
# 'cause it's a library and you can't stick them in other libraries.
# In that case, we use $OBJECT instead and hope for the best
if ($self->{MYEXTLIB}) {
- push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(OBJECT)',"\n");
- } else {
+ for my $obj (@objects) {
+ push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) ' . $obj,"\n");
+ }
+ }
+ else {
push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST)',"\n");
}
@@ -1089,6 +1242,29 @@ $(INST_STATIC) : $(OBJECT) $(MYEXTLIB)
}
+=item static_lib_pure_cmd (override)
+
+Use VMS commands to manipulate object library.
+
+=cut
+
+sub static_lib_pure_cmd {
+ my ($self, $from) = @_;
+
+ sprintf <<'MAKE_FRAG', $from;
+ If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create $(MMS$TARGET)
+ Library/Object/Replace $(MMS$TARGET) %s
+MAKE_FRAG
+}
+
+=item xs_static_lib_is_xs
+
+=cut
+
+sub xs_static_lib_is_xs {
+ return 1;
+}
+
=item extra_clean_files
Clean up some OS specific files. Plus the temp file used to shorten
@@ -1133,7 +1309,7 @@ sub tarfile_target {
$(DISTVNAME).tar$(SUFFIX) : distdir
$(PREOP)
$(TO_UNIX)
- $(TAR) "$(TARFLAGS)" $(DISTVNAME).tar [.$(DISTVNAME)...]
+ $(TAR) "$(TARFLAGS)" $(DISTVNAME).tar [.$(DISTVNAME)...]
$(RM_RF) $(DISTVNAME)
$(COMPRESS) $(DISTVNAME).tar
$(POSTOP)
@@ -1183,7 +1359,7 @@ pure_install :: pure_$(INSTALLDIRS)_install
$(NOECHO) $(NOOP)
doc_install :: doc_$(INSTALLDIRS)_install
- $(NOECHO) $(NOOP)
+ $(NOECHO) $(NOOP)
pure__install : pure_site_install
$(NOECHO) $(ECHO) "INSTALLDIRS not defined, defaulting to INSTALLDIRS=site"
@@ -1359,7 +1535,7 @@ $(PERL_ARCHLIB)Config.pm : $(PERL_SRC)config.sh
]);
}
- push(@m, join(" ", map($self->fixpath($_,0),values %{$self->{XS}}))." : \$(XSUBPPDEPS)\n")
+ push(@m, join(" ", map($self->fixpath($_,0),sort values %{$self->{XS}}))." : \$(XSUBPPDEPS)\n")
if %{$self->{XS}};
join('',@m);
@@ -1469,7 +1645,7 @@ $(MAP_TARGET) :: $(MAKE_APERL_FILE)
# (e.g. Intuit::DWIM will precede Intuit, so unresolved
# references from [.intuit.dwim]dwim.obj can be found
# in [.intuit]intuit.olb).
- for (sort { length($a) <=> length($b) } keys %olbs) {
+ for (sort { length($a) <=> length($b) || $a cmp $b } keys %olbs) {
next unless $olbs{$_} =~ /\Q$self->{LIB_EXT}\E$/;
my($dir) = $self->fixpath($_,1);
my($extralibs) = $dir . "extralibs.ld";
@@ -1615,7 +1791,7 @@ map_clean :
=item maketext_filter (override)
-Insure that colons marking targets are preceded by space, in order
+Ensure that colons marking targets are preceded by space, in order
to distinguish the target delimiter from a colon appearing as
part of a filespec.
@@ -1778,7 +1954,7 @@ sub oneliner {
=item B<echo>
perl trips up on "<foo>" thinking it's an input redirect. So we use the
-native Write command instead. Besides, its faster.
+native Write command instead. Besides, it's faster.
=cut
@@ -1975,7 +2151,12 @@ sub eliminate_macros {
$complex = 1;
}
}
- else { ($macro = unixify($self->{$macro})) =~ s#/\Z(?!\n)##; }
+ else {
+ $macro = $self->{$macro};
+ # Don't unixify if there is unescaped whitespace
+ $macro = unixify($macro) unless ($macro =~ /(?<!\^)\s/);
+ $macro =~ s#/\Z(?!\n)##;
+ }
$npath = "$head$macro$tail";
}
}
@@ -2072,6 +2253,15 @@ sub is_make_type {
}
+=item make_type (override)
+
+Returns a suitable string describing the type of makefile being written.
+
+=cut
+
+sub make_type { "$Config{make}-style"; }
+
+
=back
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
index 07ad95f409a..66c7ff74722 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
@@ -1,7 +1,8 @@
package ExtUtils::MM_VOS;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
index 0a2fb606f45..43c974d5b41 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
@@ -22,25 +22,26 @@ the semantics.
use ExtUtils::MakeMaker::Config;
use File::Basename;
use File::Spec;
-use ExtUtils::MakeMaker qw( neatvalue );
+use ExtUtils::MakeMaker qw(neatvalue _sprintf562);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
$ENV{EMXSHELL} = 'sh'; # to run `commands`
-my ( $BORLAND, $GCC, $DLLTOOL ) = _identify_compiler_environment( \%Config );
+my ( $BORLAND, $GCC, $MSVC ) = _identify_compiler_environment( \%Config );
sub _identify_compiler_environment {
my ( $config ) = @_;
- my $BORLAND = $config->{cc} =~ /^bcc/i ? 1 : 0;
+ my $BORLAND = $config->{cc} =~ /\bbcc/i ? 1 : 0;
my $GCC = $config->{cc} =~ /\bgcc\b/i ? 1 : 0;
- my $DLLTOOL = $config->{dlltool} || 'dlltool';
+ my $MSVC = $config->{cc} =~ /\b(?:cl|icl)/i ? 1 : 0; # MSVC can come as clarm.exe, icl=Intel C
- return ( $BORLAND, $GCC, $DLLTOOL );
+ return ( $BORLAND, $GCC, $MSVC );
}
@@ -54,31 +55,18 @@ sub _identify_compiler_environment {
sub dlsyms {
my($self,%attribs) = @_;
+ return '' if $self->{SKIPHASH}{'dynamic'};
+ $self->xs_dlsyms_iterator(\%attribs);
+}
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || [];
- my($imports) = $attribs{IMPORTS} || $self->{IMPORTS} || {};
- my(@m);
-
- if (not $self->{SKIPHASH}{'dynamic'}) {
- push(@m,"
-$self->{BASEEXT}.def: Makefile.PL
-",
- q! $(PERLRUN) -MExtUtils::Mksymlists \\
- -e "Mksymlists('NAME'=>\"!, $self->{NAME},
- q!\", 'DLBASE' => '!,$self->{DLBASE},
- # The above two lines quoted differently to work around
- # a bug in the 4DOS/4NT command line interpreter. The visible
- # result of the bug was files named q('extension_name',) *with the
- # single quotes and the comma* in the extension build directories.
- q!', 'DL_FUNCS' => !,neatvalue($funcs),
- q!, 'FUNCLIST' => !,neatvalue($funclist),
- q!, 'IMPORTS' => !,neatvalue($imports),
- q!, 'DL_VARS' => !, neatvalue($vars), q!);"
-!);
- }
- join('',@m);
+=item xs_dlsyms_ext
+
+On Win32, is C<.def>.
+
+=cut
+
+sub xs_dlsyms_ext {
+ '.def';
}
=item replace_manpage_separator
@@ -292,104 +280,76 @@ MAKE_FRAG
return $make_frag;
}
+=item static_lib_pure_cmd
-=item static_lib
-
-Changes how to run the linker.
-
-The rest is duplicate code from MM_Unix. Should move the linker code
-to its own method.
+Defines how to run the archive utility
=cut
-sub static_lib {
- my($self) = @_;
- return '' unless $self->has_link_code;
-
- my(@m);
- push(@m, <<'END');
-$(INST_STATIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(RM_RF) $@
-END
-
- # If this extension has its own library (eg SDBM_File)
- # then copy that to $(INST_STATIC) and add $(OBJECT) into it.
- push @m, <<'MAKE_FRAG' if $self->{MYEXTLIB};
- $(CP) $(MYEXTLIB) $@
-MAKE_FRAG
-
- push @m,
-q{ $(AR) }.($BORLAND ? '$@ $(OBJECT:^"+")'
- : ($GCC ? '-ru $@ $(OBJECT)'
- : '-out:$@ $(OBJECT)')).q{
- $(CHMOD) $(PERM_RWX) $@
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)\extralibs.ld
-};
-
- # Old mechanism - still available:
- push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS};
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)\ext.libs
-MAKE_FRAG
-
- join('', @m);
+sub static_lib_pure_cmd {
+ my ($self, $from) = @_;
+ $from =~ s/(\$\(\w+)(\))/$1:^"+"$2/g if $BORLAND;
+ sprintf qq{\t\$(AR) %s\n}, ($BORLAND ? '$@ ' . $from
+ : ($GCC ? '-ru $@ ' . $from
+ : '-out:$@ ' . $from));
}
-
=item dynamic_lib
-Complicated stuff for Win32 that I don't understand. :(
+Methods are overridden here: not dynamic_lib itself, but the utility
+ones that do the OS-specific work.
=cut
-sub dynamic_lib {
- my($self, %attribs) = @_;
- return '' unless $self->needs_linking(); #might be because of a subdir
-
- return '' unless $self->has_link_code;
-
- my($otherldflags) = $attribs{OTHERLDFLAGS} || ($BORLAND ? 'c0d32.obj': '');
- my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
- my($ldfrom) = '$(LDFROM)';
- my(@m);
-
- push(@m,'
-# This section creates the dynamically loadable $(INST_DYNAMIC)
-# from $(OBJECT) and possibly $(MYEXTLIB).
-OTHERLDFLAGS = '.$otherldflags.'
-INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
-
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(INST_DYNAMIC_DEP)
-');
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_;
+ my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(INST_DYNAMIC_DEP)'."\n", $to, $from, $todir, $exportlist;
if ($GCC) {
- push(@m,
- q{ }.$DLLTOOL.q{ --def $(EXPORT_LIST) --output-exp dll.exp
- $(LD) -o $@ -Wl,--base-file -Wl,dll.base $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp
- }.$DLLTOOL.q{ --def $(EXPORT_LIST) --base-file dll.base --output-exp dll.exp
- $(LD) -o $@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp });
+ # per https://rt.cpan.org/Ticket/Display.html?id=78395 no longer
+ # uses dlltool - relies on post 2002 MinGW
+ # 1 2
+ push @m, _sprintf562 <<'EOF', $exportlist, $ldfrom;
+ $(LD) %1$s -o $@ $(LDDLFLAGS) %2$s $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -Wl,--enable-auto-image-base
+EOF
} elsif ($BORLAND) {
- push(@m,
- q{ $(LD) $(LDDLFLAGS) $(OTHERLDFLAGS) }.$ldfrom.q{,$@,,}
- .($self->is_make_type('dmake')
- ? q{"$(PERL_ARCHIVE:s,/,\,)" $(LDLOADLIBS:s,/,\,) }
- .q{$(MYEXTLIB:s,/,\,),$(EXPORT_LIST:s,/,\,)}
- : q{"$(subst /,\,$(PERL_ARCHIVE))" $(subst /,\,$(LDLOADLIBS)) }
- .q{$(subst /,\,$(MYEXTLIB)),$(subst /,\,$(EXPORT_LIST))})
- .q{,$(RESFILES)});
+ my $ldargs = $self->is_make_type('dmake')
+ ? q{"$(PERL_ARCHIVE:s,/,\,)" $(LDLOADLIBS:s,/,\,) $(MYEXTLIB:s,/,\,),}
+ : q{"$(subst /,\,$(PERL_ARCHIVE))" $(subst /,\,$(LDLOADLIBS)) $(subst /,\,$(MYEXTLIB)),};
+ my $subbed;
+ if ($exportlist eq '$(EXPORT_LIST)') {
+ $subbed = $self->is_make_type('dmake')
+ ? q{$(EXPORT_LIST:s,/,\,)}
+ : q{$(subst /,\,$(EXPORT_LIST))};
+ } else {
+ # in XSMULTI, exportlist is per-XS, so have to sub in perl not make
+ ($subbed = $exportlist) =~ s#/#\\#g;
+ }
+ push @m, sprintf <<'EOF', $ldfrom, $ldargs . $subbed;
+ $(LD) $(LDDLFLAGS) $(OTHERLDFLAGS) %s,$@,,%s,$(RESFILES)
+EOF
} else { # VC
- push(@m,
- q{ $(LD) -out:$@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) }
- .q{$(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -def:$(EXPORT_LIST)});
-
+ push @m, sprintf <<'EOF', $ldfrom, $exportlist;
+ $(LD) -out:$@ $(LDDLFLAGS) %s $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -def:%s
+EOF
# Embed the manifest file if it exists
- push(@m, q{
- if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2
+ push(@m, q{ if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2
if exist $@.manifest del $@.manifest});
}
- push @m, '
- $(CHMOD) $(PERM_RWX) $@
-';
+ push @m, "\n\t\$(CHMOD) \$(PERM_RWX) \$\@\n";
+
+ join '', @m;
+}
- join('',@m);
+sub xs_dynamic_lib_macros {
+ my ($self, $attribs) = @_;
+ my $otherldflags = $attribs->{OTHERLDFLAGS} || ($BORLAND ? 'c0d32.obj': '');
+ my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || "";
+ sprintf <<'EOF', $otherldflags, $inst_dynamic_dep;
+# This section creates the dynamically loadable objects from relevant
+# objects and possibly $(MYEXTLIB).
+OTHERLDFLAGS = %s
+INST_DYNAMIC_DEP = %s
+EOF
}
=item extra_clean_files
@@ -458,14 +418,16 @@ EOF
return $self->SUPER::quote_dep($arg);
}
-=item xs_o
-This target is stubbed out. Not sure why.
+=item xs_obj_opt
+
+Override to fixup -o flags for MSVC.
=cut
-sub xs_o {
- return ''
+sub xs_obj_opt {
+ my ($self, $output_file) = @_;
+ ($MSVC ? "/Fo" : "-o ") . $output_file;
}
@@ -478,7 +440,10 @@ banner.
sub pasthru {
my($self) = shift;
- return "PASTHRU = " . ($self->is_make_type('nmake') ? "-nologo" : "");
+ my $old = $self->SUPER::pasthru;
+ return $old unless $self->is_make_type('nmake');
+ $old =~ s/(PASTHRU\s*=\s*)/$1 -nologo /;
+ $old;
}
@@ -658,6 +623,23 @@ PERLTYPE = $self->{PERLTYPE}
}
+=item make_type
+
+Returns a suitable string describing the type of makefile being written.
+
+=cut
+
+sub make_type {
+ my ($self) = @_;
+ my $make = $self->make;
+ $make = +( File::Spec->splitpath( $make ) )[-1];
+ $make =~ s!\.exe$!!i;
+ if ( $make =~ m![^A-Z0-9]!i ) {
+ ($make) = grep { m!make!i } split m![^A-Z0-9]!i, $make;
+ }
+ return "$make-style";
+}
+
1;
__END__
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
index 096f28d7e27..85a80c638b0 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
@@ -2,7 +2,8 @@ package ExtUtils::MM_Win95;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
@@ -26,59 +27,10 @@ to get MakeMaker playing nice with command.com and other Win9Xisms.
=head2 Overridden methods
Most of these make up for limitations in the Win9x/nmake command shell.
-Mostly its lack of &&.
=over 4
-=item xs_c
-
-The && problem.
-
-=cut
-
-sub xs_c {
- my($self) = shift;
- return '' unless $self->needs_linking();
- '
-.xs.c:
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c
- '
-}
-
-
-=item xs_cpp
-
-The && problem
-
-=cut
-
-sub xs_cpp {
- my($self) = shift;
- return '' unless $self->needs_linking();
- '
-.xs.cpp:
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.cpp
- ';
-}
-
-=item xs_o
-
-The && problem.
-
-=cut
-
-sub xs_o {
- my($self) = shift;
- return '' unless $self->needs_linking();
- '
-.xs$(OBJ_EXT):
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c
- $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) $*.c
- ';
-}
-
-
=item max_exec_len
Win98 chokes on things like Encode if we set the max length to nmake's max
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
index 5a080ea8c47..a193f3a045c 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
@@ -3,7 +3,8 @@ package ExtUtils::MY;
use strict;
require ExtUtils::MM;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
our @ISA = qw(ExtUtils::MM);
{
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
index 42b174fe347..90d9eac49c1 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
@@ -12,7 +12,7 @@ use Carp;
use File::Path;
my $CAN_DECODE = eval { require ExtUtils::MakeMaker::Locale; }; # 2 birds, 1 stone
eval { ExtUtils::MakeMaker::Locale::reinit('UTF-8') }
- if $CAN_DECODE and $ExtUtils::MakeMaker::Locale::ENCODING_LOCALE eq 'US-ASCII';
+ if $CAN_DECODE and Encode::find_encoding('locale')->name eq 'ascii';
our $Verbose = 0; # exported
our @Parent; # needs to be localized
@@ -24,7 +24,7 @@ my %Recognized_Att_Keys;
our %macro_fsentity; # whether a macro is a filesystem name
our %macro_dep; # whether a macro is a dependency
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
# Emulate something resembling CVS $Revision$
@@ -34,9 +34,10 @@ $Revision = int $Revision * 10000;
our $Filename = __FILE__; # referenced outside MakeMaker
our @ISA = qw(Exporter);
-our @EXPORT = qw(&WriteMakefile $Verbose &prompt);
+our @EXPORT = qw(&WriteMakefile $Verbose &prompt &os_unsupported);
our @EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists
- &WriteEmptyMakefile);
+ &WriteEmptyMakefile &open_for_writing &write_file_via_tmp
+ &_sprintf562);
# These will go away once the last of the Win32 & VMS specific code is
# purged.
@@ -54,6 +55,15 @@ require ExtUtils::MY; # XXX pre-5.8 versions of ExtUtils::Embed expect
# This will go when Embed is its own CPAN module.
+# 5.6.2 can't do sprintf "%1$s" - this can only do %s
+sub _sprintf562 {
+ my ($format, @args) = @_;
+ for (my $i = 1; $i <= @args; $i++) {
+ $format =~ s#%$i\$s#$args[$i-1]#g;
+ }
+ $format;
+}
+
sub WriteMakefile {
croak "WriteMakefile: Need even number of args" if @_ % 2;
@@ -106,6 +116,7 @@ my %Special_Sigs = (
SKIP => 'ARRAY',
TYPEMAPS => 'ARRAY',
XS => 'HASH',
+ XSBUILD => 'HASH',
VERSION => ['version',''],
_KEEP_AFTER_FLUSH => '',
@@ -141,7 +152,8 @@ sub _convert_compat_attrs { #result of running several times should be same
sub _verify_att {
my($att) = @_;
- while( my($key, $val) = each %$att ) {
+ foreach my $key (sort keys %$att) {
+ my $val = $att->{$key};
my $sig = $Att_Sigs{$key};
unless( defined $sig ) {
warn "WARNING: $key is not a known parameter.\n";
@@ -215,6 +227,10 @@ sub prompt ($;$) { ## no critic
return (!defined $ans || $ans eq '') ? $def : $ans;
}
+sub os_unsupported {
+ die "OS unsupported\n";
+}
+
sub eval_in_subdirs {
my($self) = @_;
use Cwd qw(cwd abs_path);
@@ -301,9 +317,9 @@ sub full_setup {
PERM_DIR PERM_RW PERM_RWX MAGICXS
PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE
PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
- SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS XSOPT XSPROTOARG
- XS_VERSION clean depend dist dynamic_lib linkext macro realclean
- tool_autosplit
+ SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS
+ XSBUILD XSMULTI XSOPT XSPROTOARG XS_VERSION
+ clean depend dist dynamic_lib linkext macro realclean tool_autosplit
MAN1EXT MAN3EXT
@@ -405,6 +421,14 @@ sub full_setup {
);
}
+sub _has_cpan_meta_requirements {
+ return eval {
+ require CPAN::Meta::Requirements;
+ CPAN::Meta::Requirements->VERSION(2.130);
+ require B; # CMR requires this, for core we have to too.
+ };
+}
+
sub new {
my($class,$self) = @_;
my($key);
@@ -423,12 +447,53 @@ sub new {
bless $self, "MM";
# Cleanup all the module requirement bits
+ my %key2cmr;
for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) {
$self->{$key} ||= {};
- $self->clean_versions( $key );
+ if (_has_cpan_meta_requirements) {
+ my $cmr = CPAN::Meta::Requirements->from_string_hash(
+ $self->{$key},
+ {
+ bad_version_hook => sub {
+ #no warnings 'numeric'; # module doesn't use warnings
+ my $fallback;
+ if ( $_[0] =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) {
+ $fallback = sprintf "%f", $_[0];
+ } else {
+ ($fallback) = $_[0] ? ($_[0] =~ /^([0-9.]+)/) : 0;
+ $fallback += 0;
+ carp "Unparsable version '$_[0]' for prerequisite $_[1] treated as $fallback";
+ }
+ version->new($fallback);
+ },
+ },
+ );
+ $self->{$key} = $cmr->as_string_hash;
+ $key2cmr{$key} = $cmr;
+ } else {
+ for my $module (sort keys %{ $self->{$key} }) {
+ my $version = $self->{$key}->{$module};
+ my $fallback = 0;
+ if (!defined($version) or !length($version)) {
+ carp "Undefined requirement for $module treated as '0' (CPAN::Meta::Requirements not available)";
+ }
+ elsif ($version =~ /^\d+(?:\.\d+(?:_\d+)*)?$/) {
+ next;
+ }
+ else {
+ if ( $version =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) {
+ $fallback = sprintf "%f", $version;
+ } else {
+ ($fallback) = $version ? ($version =~ /^([0-9.]+)/) : 0;
+ $fallback += 0;
+ carp "Unparsable version '$version' for prerequisite $module treated as $fallback (CPAN::Meta::Requirements not available)";
+ }
+ }
+ $self->{$key}->{$module} = $fallback;
+ }
+ }
}
-
if ("@ARGV" =~ /\bPREREQ_PRINT\b/) {
$self->_PREREQ_PRINT;
}
@@ -495,9 +560,24 @@ END
my(%initial_att) = %$self; # record initial attributes
my(%unsatisfied) = ();
- my $prereqs = $self->_all_prereqs;
- foreach my $prereq (sort keys %$prereqs) {
- my $required_version = $prereqs->{$prereq};
+ my %prereq2version;
+ my $cmr;
+ if (_has_cpan_meta_requirements) {
+ $cmr = CPAN::Meta::Requirements->new;
+ for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) {
+ $cmr->add_requirements($key2cmr{$key}) if $key2cmr{$key};
+ }
+ foreach my $prereq ($cmr->required_modules) {
+ $prereq2version{$prereq} = $cmr->requirements_for_module($prereq);
+ }
+ } else {
+ for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) {
+ next unless my $module2version = $self->{$key};
+ $prereq2version{$_} = $module2version->{$_} for keys %$module2version;
+ }
+ }
+ foreach my $prereq (sort keys %prereq2version) {
+ my $required_version = $prereq2version{$prereq};
my $pr_version = 0;
my $installed_file;
@@ -516,6 +596,18 @@ END
$installed_file = MM->_installed_file_for_module($prereq);
$pr_version = MM->parse_version($installed_file) if $installed_file;
$pr_version = 0 if $pr_version eq 'undef';
+ if ( !eval { version->new( $pr_version ); 1 } ) {
+ #no warnings 'numeric'; # module doesn't use warnings
+ my $fallback;
+ if ( $pr_version =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) {
+ $fallback = sprintf '%f', $pr_version;
+ } else {
+ ($fallback) = $pr_version ? ($pr_version =~ /^([0-9.]+)/) : 0;
+ $fallback += 0;
+ carp "Unparsable version '$pr_version' for installed prerequisite $prereq treated as $fallback";
+ }
+ $pr_version = $fallback;
+ }
}
# convert X.Y_Z alpha version #s to X.YZ for easier comparisons
@@ -529,13 +621,17 @@ END
$unsatisfied{$prereq} = 'not installed';
}
- elsif ($pr_version < $required_version ){
+ elsif (
+ $cmr
+ ? !$cmr->accepts_module($prereq, $pr_version)
+ : $required_version > $pr_version
+ ) {
warn sprintf "Warning: prerequisite %s %s not found. We have %s.\n",
$prereq, $required_version, ($pr_version || 'unknown version')
unless $self->{PREREQ_FATAL}
or $UNDER_CORE;
- $unsatisfied{$prereq} = $required_version ? $required_version : 'unknown version' ;
+ $unsatisfied{$prereq} = $required_version || 'unknown version' ;
}
}
@@ -560,11 +656,6 @@ END
}
}
- # This is for old Makefiles written pre 5.00, will go away
- if ( Carp::longmess("") =~ /runsubdirpl/s ){
- carp("WARNING: Please rerun 'perl Makefile.PL' to regenerate your Makefiles\n");
- }
-
my $newclass = ++$PACKNAME;
local @Parent = @Parent; # Protect against non-local exits
{
@@ -671,7 +762,9 @@ END
$self->init_others();
$self->init_platform();
$self->init_PERM();
- my($argv) = neatvalue(\@ARGV);
+ my @args = @ARGV;
+ @args = map { Encode::decode(locale => $_) } @args if $CAN_DECODE;
+ my($argv) = neatvalue(\@args);
$argv =~ s/^\[/(/;
$argv =~ s/\]$/)/;
@@ -757,6 +850,7 @@ sub WriteEmptyMakefile {
croak "WriteEmptyMakefile: Need an even number of args" if @_ % 2;
my %att = @_;
+ $att{DIR} = [] unless $att{DIR}; # don't recurse by default
my $self = MM->new(\%att);
my $new = $self->{MAKEFILE};
@@ -771,6 +865,14 @@ sub WriteEmptyMakefile {
print $mfh <<'EOP';
all :
+manifypods :
+
+subdirs :
+
+dynamic :
+
+static :
+
clean :
install :
@@ -779,6 +881,10 @@ makemakerdflt :
test :
+test_dynamic :
+
+test_static :
+
EOP
close $mfh or die "close $new for write: $!";
}
@@ -1051,7 +1157,7 @@ sub _run_hintfile {
my($hint_file) = shift;
local($@, $!);
- warn "Processing hints file $hint_file\n";
+ print "Processing hints file $hint_file\n" if $Verbose;
# Just in case the ./ isn't on the hint file, which File::Spec can
# often strip off, we bung the curdir into @INC
@@ -1065,69 +1171,34 @@ sub _run_hintfile {
sub mv_all_methods {
my($from,$to) = @_;
-
- # Here you see the *current* list of methods that are overridable
- # from Makefile.PL via MY:: subroutines. As of VERSION 5.07 I'm
- # still trying to reduce the list to some reasonable minimum --
- # because I want to make it easier for the user. A.K.
-
local $SIG{__WARN__} = sub {
# can't use 'no warnings redefined', 5.6 only
warn @_ unless $_[0] =~ /^Subroutine .* redefined/
};
foreach my $method (@Overridable) {
-
- # We cannot say "next" here. Nick might call MY->makeaperl
- # which isn't defined right now
-
- # Above statement was written at 4.23 time when Tk-b8 was
- # around. As Tk-b9 only builds with 5.002something and MM 5 is
- # standard, we try to enable the next line again. It was
- # commented out until MM 5.23
-
next unless defined &{"${from}::$method"};
+ no strict 'refs'; ## no critic
+ *{"${to}::$method"} = \&{"${from}::$method"};
+
+ # If we delete a method, then it will be undefined and cannot
+ # be called. But as long as we have Makefile.PLs that rely on
+ # %MY:: being intact, we have to fill the hole with an
+ # inheriting method:
{
- no strict 'refs'; ## no critic
- *{"${to}::$method"} = \&{"${from}::$method"};
-
- # If we delete a method, then it will be undefined and cannot
- # be called. But as long as we have Makefile.PLs that rely on
- # %MY:: being intact, we have to fill the hole with an
- # inheriting method:
-
- {
- package MY;
- my $super = "SUPER::".$method;
- *{$method} = sub {
- shift->$super(@_);
- };
- }
+ package MY;
+ my $super = "SUPER::".$method;
+ *{$method} = sub {
+ shift->$super(@_);
+ };
}
}
-
- # We have to clean out %INC also, because the current directory is
- # changed frequently and Graham Barr prefers to get his version
- # out of a History.pl file which is "required" so wouldn't get
- # loaded again in another extension requiring a History.pl
-
- # With perl5.002_01 the deletion of entries in %INC caused Tk-b11
- # to core dump in the middle of a require statement. The required
- # file was Tk/MMutil.pm. The consequence is, we have to be
- # extremely careful when we try to give perl a reason to reload a
- # library with same name. The workaround prefers to drop nothing
- # from %INC and teach the writers not to use such libraries.
-
-# my $inc;
-# foreach $inc (keys %INC) {
-# #warn "***$inc*** deleted";
-# delete $INC{$inc};
-# }
}
sub skipcheck {
my($self) = shift;
my($section) = @_;
+ return 'skipped' if $section eq 'metafile' && $UNDER_CORE;
if ($section eq 'dynamic') {
print "Warning (non-fatal): Target 'dynamic' depends on targets ",
"in skipped section 'dynamic_bs'\n"
@@ -1150,64 +1221,63 @@ sub skipcheck {
return '';
}
+# returns filehandle, dies on fail. :raw so no :crlf
+sub open_for_writing {
+ my ($file) = @_;
+ open my $fh ,">", $file or die "Unable to open $file: $!";
+ my @layers = ':raw';
+ push @layers, join ' ', ':encoding(locale)' if $CAN_DECODE;
+ binmode $fh, join ' ', @layers;
+ $fh;
+}
+
sub flush {
my $self = shift;
- # This needs a bit more work for more wacky OSen
- my $type = 'Unix-style';
- if ( $self->os_flavor_is('Win32') ) {
- my $make = $self->make;
- $make = +( File::Spec->splitpath( $make ) )[-1];
- $make =~ s!\.exe$!!i;
- $type = $make . '-style';
- }
- elsif ( $Is_VMS ) {
- $type = $Config{make} . '-style';
- }
-
my $finalname = $self->{MAKEFILE};
- print "Generating a $type $finalname\n";
- print "Writing $finalname for $self->{NAME}\n";
+ printf "Generating a %s %s\n", $self->make_type, $finalname if $Verbose || !$self->{PARENT};
+ print "Writing $finalname for $self->{NAME}\n" if $Verbose || !$self->{PARENT};
unlink($finalname, "MakeMaker.tmp", $Is_VMS ? 'Descrip.MMS' : ());
- open(my $fh,">", "MakeMaker.tmp")
- or die "Unable to open MakeMaker.tmp: $!";
- binmode $fh, ':encoding(locale)' if $CAN_DECODE;
- for my $chunk (@{$self->{RESULT}}) {
+ write_file_via_tmp($finalname, $self->{RESULT});
+
+ # Write MYMETA.yml to communicate metadata up to the CPAN clients
+ print "Writing MYMETA.yml and MYMETA.json\n"
+ if !$self->{NO_MYMETA} and $self->write_mymeta( $self->mymeta );
+
+ # save memory
+ if ($self->{PARENT} && !$self->{_KEEP_AFTER_FLUSH}) {
+ my %keep = map { ($_ => 1) } qw(NEEDS_LINKING HAS_LINK_CODE);
+ delete $self->{$_} for grep !$keep{$_}, keys %$self;
+ }
+
+ system("$Config::Config{eunicefix} $finalname")
+ if $Config::Config{eunicefix} ne ":";
+
+ return;
+}
+
+sub write_file_via_tmp {
+ my ($finalname, $contents) = @_;
+ my $fh = open_for_writing("MakeMaker.tmp");
+ die "write_file_via_tmp: 2nd arg must be ref" unless ref $contents;
+ for my $chunk (@$contents) {
my $to_write = $chunk;
utf8::encode $to_write if !$CAN_DECODE && $] > 5.008;
print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!";
}
-
- close $fh
- or die "Can't write to MakeMaker.tmp: $!";
+ close $fh or die "Can't write to MakeMaker.tmp: $!";
_rename("MakeMaker.tmp", $finalname) or
warn "rename MakeMaker.tmp => $finalname: $!";
- chmod 0644, $finalname unless $Is_VMS;
-
- unless ($self->{NO_MYMETA}) {
- # Write MYMETA.yml to communicate metadata up to the CPAN clients
- if ( $self->write_mymeta( $self->mymeta ) ) {
- print "Writing MYMETA.yml and MYMETA.json\n";
- }
-
- }
- my %keep = map { ($_ => 1) } qw(NEEDS_LINKING HAS_LINK_CODE);
- if ($self->{PARENT} && !$self->{_KEEP_AFTER_FLUSH}) {
- foreach (keys %$self) { # safe memory
- delete $self->{$_} unless $keep{$_};
- }
- }
-
- system("$Config::Config{eunicefix} $finalname") unless $Config::Config{eunicefix} eq ":";
+ chmod 0644, $finalname if !$Is_VMS;
+ return;
}
# This is a rename for OS's where the target must be unlinked first.
sub _rename {
my($src, $dest) = @_;
- chmod 0666, $dest;
- unlink $dest;
+ _unlink($dest);
return rename $src, $dest;
}
@@ -1283,36 +1353,6 @@ sub _find_magic_vstring {
return $tvalue;
}
-
-# Look for weird version numbers, warn about them and set them to 0
-# before CPAN::Meta chokes.
-sub clean_versions {
- my($self, $key) = @_;
- my $reqs = $self->{$key};
- for my $module (keys %$reqs) {
- my $v = $reqs->{$module};
- my $printable = _find_magic_vstring($v);
- $v = $printable if length $printable;
- my $version = eval {
- local $SIG{__WARN__} = sub {
- # simulate "use warnings FATAL => 'all'" for vintage perls
- die @_;
- };
- version->new($v)->stringify;
- };
- if( $@ || $reqs->{$module} eq '' ) {
- if ( $] < 5.008 && $v !~ /^v?[\d_\.]+$/ ) {
- $v = sprintf "v%vd", $v unless $v eq '';
- }
- carp "Unparsable version '$v' for prerequisite $module";
- $reqs->{$module} = 0;
- }
- else {
- $reqs->{$module} = $version;
- }
- }
-}
-
sub selfdocument {
my($self) = @_;
my(@m);
@@ -1326,6 +1366,16 @@ sub selfdocument {
push @m, "# $key => $v";
}
}
+ # added here as selfdocument is not overridable
+ push @m, <<'EOF';
+
+# here so even if top_targets is overridden, these will still be defined
+# gmake will silently still work if any are .PHONY-ed but nmake won't
+EOF
+ push @m, join "\n", map "$_ ::\n\t\$(NOECHO) \$(NOOP)\n",
+ # config is so manifypods won't puke if no subdirs
+ grep !$self->{SKIPHASH}{$_},
+ qw(static dynamic config);
join "\n", @m;
}
@@ -1415,6 +1465,23 @@ MakeMaker also checks for any files matching glob("t/*.t"). It will
execute all matching files in alphabetical order via the
L<Test::Harness> module with the C<-I> switches set correctly.
+You can also organize your tests within subdirectories in the F<t/> directory.
+To do so, use the F<test> directive in your I<Makefile.PL>. For example, if you
+had tests in:
+
+ t/foo
+ t/foo/bar
+
+You could tell make to run tests in both of those directories with the
+following directives:
+
+ test => {TESTS => 't/*/*.t t/*/*/*.t'}
+ test => {TESTS => 't/foo/*.t t/foo/bar/*.t'}
+
+The first will run all test files in all first-level subdirectories and all
+subdirectories they contain. The second will run tests in only the F<t/foo>
+and F<t/foo/bar>.
+
If you'd like to see the raw output of your tests, set the
C<TEST_VERBOSE> variable to true.
@@ -1750,7 +1817,7 @@ located in the C<x86> directory relative to the PPD itself.
=item BUILD_REQUIRES
-Available in version 6.5503 and above.
+Available in version 6.55_03 and above.
A hash of modules that are needed to build your module but not run it.
@@ -2002,6 +2069,8 @@ Defaults to $Config{installprivlib}.
=item INSTALLSCRIPT
+Available in version 6.30_02 and above.
+
Used by 'make install' which copies files from INST_SCRIPT to this
directory if INSTALLDIRS=perl.
@@ -2038,7 +2107,9 @@ directory if INSTALLDIRS is set to site (default).
=item INSTALLVENDORARCH
Used by 'make install', which copies files from INST_ARCHLIB to this
-directory if INSTALLDIRS is set to vendor.
+directory if INSTALLDIRS is set to vendor. Note that if you do not set
+this, the value of INSTALLVENDORLIB will be used, which is probably not
+what you want.
=item INSTALLVENDORBIN
@@ -2061,6 +2132,8 @@ If set to 'none', no man pages will be installed.
=item INSTALLVENDORSCRIPT
+Available in version 6.30_02 and above.
+
Used by 'make install' which copies files from INST_SCRIPT to this
directory if INSTALLDIRS is set to vendor.
@@ -2166,11 +2239,15 @@ linkext below).
=item MAGICXS
+Available in version 6.8305 and above.
+
When this is set to C<1>, C<OBJECT> will be automagically derived from
C<O_FILES>.
=item MAKE
+Available in version 6.30_01 and above.
+
Variant of make you intend to run the generated Makefile with. This
parameter lets Makefile.PL know what make quirks to account for when
generating the Makefile.
@@ -2342,6 +2419,8 @@ Defaults to false.
=item NO_MYMETA
+Available in version 6.57_02 and above.
+
When true, suppresses the generation of MYMETA.yml and MYMETA.json module
meta-data files during 'perl Makefile.PL'.
@@ -2349,12 +2428,16 @@ Defaults to false.
=item NO_PACKLIST
+Available in version 6.7501 and above.
+
When true, suppresses the writing of C<packlist> files for installs.
Defaults to false.
=item NO_PERLLOCAL
+Available in version 6.7501 and above.
+
When true, suppresses the appending of installations to C<perllocal>.
Defaults to false.
@@ -2381,7 +2464,14 @@ passed to subdirectory makes.
=item PERL
-Perl binary for tasks that can be done by miniperl.
+Perl binary for tasks that can be done by miniperl. If it contains
+spaces or other shell metacharacters, it needs to be quoted in a way
+that protects them, since this value is intended to be inserted in a
+shell command line in the Makefile. E.g.:
+
+ # Perl executable lives in "C:/Program Files/Perl/bin"
+ # Normally you don't need to set this yourself!
+ $ perl Makefile.PL PERL='"C:/Program Files/Perl/bin/perl.exe" -w'
=item PERL_CORE
@@ -2465,6 +2555,8 @@ avoided, it may be undefined)
=item PERM_DIR
+Available in version 6.51_01 and above.
+
Desired permission for directories. Defaults to C<755>.
=item PERM_RW
@@ -2480,7 +2572,9 @@ Desired permission for executable files. Defaults to C<755>.
MakeMaker can run programs to generate files for you at build time.
By default any file named *.PL (except Makefile.PL and Build.PL) in
the top level directory will be assumed to be a Perl program and run
-passing its own basename in as an argument. For example...
+passing its own basename in as an argument. This basename is actually a build
+target, and there is an intention, but not a requirement, that the *.PL file
+make the file passed to to as an argument. For example...
perl foo.PL foo
@@ -2490,6 +2584,8 @@ and the value is passed in as the first argument when the PL file is run.
PL_FILES => {'bin/foobar.PL' => 'bin/foobar'}
+ PL_FILES => {'foo.PL' => 'foo.c'}
+
Would run bin/foobar.PL like this:
perl bin/foobar.PL bin/foobar
@@ -2508,8 +2604,14 @@ INST_ARCH in their C<@INC>, so the just built modules can be
accessed... unless the PL file is making a module (or anything else in
PM) in which case it is run B<before> pm_to_blib and does not include
INST_LIB and INST_ARCH in its C<@INC>. This apparently odd behavior
-is there for backwards compatibility (and it's somewhat DWIM).
-
+is there for backwards compatibility (and it's somewhat DWIM). The argument
+passed to the .PL is set up as a target to build in the Makefile. In other
+sections such as C<postamble> you can specify a dependency on the
+filename/argument that the .PL is supposed (or will have, now that that is
+is a dependency) to generate. Note the file to be generated will still be
+generated and the .PL will still run even without an explicit dependency created
+by you, since the C<all> target still depends on running all eligible to run.PL
+files.
=item PM
@@ -2536,24 +2638,23 @@ Defining PM in the Makefile.PL will override PMLIBDIRS.
A filter program, in the traditional Unix sense (input from stdin, output
to stdout) that is passed on each .pm file during the build (in the
pm_to_blib() phase). It is empty by default, meaning no filtering is done.
+You could use:
-Great care is necessary when defining the command if quoting needs to be
-done. For instance, you would need to say:
-
- {'PM_FILTER' => 'grep -v \\"^\\#\\"'}
+ PM_FILTER => 'perl -ne "print unless /^\\#/"',
-to remove all the leading comments on the fly during the build. The
-extra \\ are necessary, unfortunately, because this variable is interpolated
-within the context of a Perl program built on the command line, and double
-quotes are what is used with the -e switch to build that command line. The
-# is escaped for the Makefile, since what is going to be generated will then
-be:
+to remove all the leading comments on the fly during the build. In order
+to be as portable as possible, please consider using a Perl one-liner
+rather than Unix (or other) utilities, as above. The # is escaped for
+the Makefile, since what is going to be generated will then be:
- PM_FILTER = grep -v \"^\#\"
+ PM_FILTER = perl -ne "print unless /^\#/"
-Without the \\ before the #, we'd have the start of a Makefile comment,
+Without the \ before the #, we'd have the start of a Makefile comment,
and the macro would be incorrectly defined.
+You will almost certainly be better off using the C<PL_FILES> system,
+instead. See above, or the L<ExtUtils::MakeMaker::FAQ> entry.
+
=item POLLUTE
Release 5.005 grandfathered old global symbol names by providing preprocessor
@@ -2577,10 +2678,14 @@ the installation of a package.
=item PPM_UNINSTALL_EXEC
+Available in version 6.8502 and above.
+
Name of the executable used to run C<PPM_UNINSTALL_SCRIPT> below. (e.g. perl)
=item PPM_UNINSTALL_SCRIPT
+Available in version 6.8502 and above.
+
Name of the script that gets executed by the Perl Package Manager before
the removal of a package.
@@ -2623,8 +2728,11 @@ doesn't. See L<Test::More/BAIL_OUT> for more details.
A hash of modules that are needed to run your module. The keys are
the module names ie. Test::More, and the minimum version is the
value. If the required version number is 0 any version will do.
+The versions given may be a Perl v-string (see L<version>) or a range
+(see L<CPAN::Meta::Requirements>).
-This will go into the C<requires> field of your F<META.yml> and the C<runtime> of the C<prereqs> field of your F<META.json>.
+This will go into the C<requires> field of your F<META.yml> and the
+C<runtime> of the C<prereqs> field of your F<META.json>.
PREREQ_PM => {
# Require Test::More at least 0.47
@@ -2675,6 +2783,8 @@ Overridable by PREFIX
=item SIGN
+Available in version 6.18 and above.
+
When true, perform the generation and addition to the MANIFEST of the
SIGNATURE file in the distdir during 'make distdir', via 'cpansign
-s'.
@@ -2793,6 +2903,53 @@ Hashref of .xs files. MakeMaker will default this. e.g.
The .c files will automatically be included in the list of files
deleted by a make clean.
+=item XSBUILD
+
+Available in version 7.12 and above.
+
+Hashref with options controlling the operation of C<XSMULTI>:
+
+ {
+ xs => {
+ all => {
+ # options applying to all .xs files for this distribution
+ },
+ 'lib/Class/Name/File' => { # specifically for this file
+ DEFINE => '-Dfunktastic', # defines for only this file
+ INC => "-I$funkyliblocation", # include flags for only this file
+ # OBJECT => 'lib/Class/Name/File$(OBJ_EXT)', # default
+ LDFROM => "lib/Class/Name/File\$(OBJ_EXT) $otherfile\$(OBJ_EXT)", # what's linked
+ },
+ },
+ }
+
+Note C<xs> is the file-extension. More possibilities may arise in the
+future. Note that object names are specified without their XS extension.
+
+C<LDFROM> defaults to the same as C<OBJECT>. C<OBJECT> defaults to,
+for C<XSMULTI>, just the XS filename with the extension replaced with
+the compiler-specific object-file extension.
+
+The distinction between C<OBJECT> and C<LDFROM>: C<OBJECT> is the make
+target, so make will try to build it. However, C<LDFROM> is what will
+actually be linked together to make the shared object or static library
+(SO/SL), so if you override it, make sure it includes what you want to
+make the final SO/SL, almost certainly including the XS basename with
+C<$(OBJ_EXT)> appended.
+
+=item XSMULTI
+
+Available in version 7.12 and above.
+
+When this is set to C<1>, multiple XS files may be placed under F<lib/>
+next to their corresponding C<*.pm> files (this is essential for compiling
+with the correct C<VERSION> values). This feature should be considered
+experimental, and details of it may change.
+
+This feature was inspired by, and small portions of code copied from,
+L<ExtUtils::MakeMaker::BigHelper>. Hopefully this feature will render
+that module mainly obsolete.
+
=item XSOPT
String of options to pass to xsubpp. This might include C<-C++> or
@@ -2884,6 +3041,8 @@ you provide your own C<TESTS> attribute, defaults to false.
{RECURSIVE_TEST_FILES=>1}
+This is supported since 6.76
+
=item tool_autosplit
{MAXLEN => 8}
@@ -3112,13 +3271,13 @@ part of the 'distdir' target (and thus the 'dist' target). This is intended to
seamlessly and rapidly populate CPAN with module meta-data. If you wish to
shut this feature off, set the C<NO_META> C<WriteMakefile()> flag to true.
-At the 2008 QA Hackathon in Oslo, Perl module toolchain maintainers agrees
+At the 2008 QA Hackathon in Oslo, Perl module toolchain maintainers agreed
to use the CPAN Meta format to communicate post-configuration requirements
between toolchain components. These files, F<MYMETA.json> and F<MYMETA.yml>,
are generated when F<Makefile.PL> generates a F<Makefile> (if L<CPAN::Meta>
-is installed). Clients like L<CPAN> or L<CPANPLUS> will read this
+is installed). Clients like L<CPAN> or L<CPANPLUS> will read these
files to see what prerequisites must be fulfilled before building or testing
-the distribution. If you with to shut this feature off, set the C<NO_MYMETA>
+the distribution. If you wish to shut this feature off, set the C<NO_MYMETA>
C<WriteMakeFile()> flag to true.
=head2 Disabling an extension
@@ -3160,6 +3319,17 @@ prevents automated processes from blocking on user input.
If no $default is provided an empty string will be used instead.
+=item os_unsupported
+
+ os_unsupported();
+ os_unsupported if $^O eq 'MSWin32';
+
+The C<os_unsupported()> function provides a way to correctly exit your
+C<Makefile.PL> before calling C<WriteMakefile>. It is essentially a
+C<die> with the message "OS unsupported".
+
+This is supported since 7.26
+
=back
=head2 Supported versions of Perl
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
index 707e3bf7c03..0d4f8b1e611 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
@@ -2,7 +2,8 @@ package ExtUtils::MakeMaker::Config;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
use Config ();
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
index d3aa100fb9f..0ceb4f766ec 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
@@ -1,6 +1,7 @@
package ExtUtils::MakeMaker::FAQ;
-our $VERSION = '7.10_01';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
1;
__END__
@@ -21,8 +22,12 @@ FAQs, tricks and tips for C<ExtUtils::MakeMaker>.
=item How do I install a module into my home directory?
If you're not the Perl administrator you probably don't have
-permission to install a module to its default location. Then you
-should install it for your own use into your home directory like so:
+permission to install a module to its default location. Ways of handling
+this with a B<lot> less manual effort on your part are L<perlbrew>
+and L<local::lib>.
+
+Otherwise, you can install it for your own use into your home directory
+like so:
# Non-unix folks, replace ~ with /path/to/your/home/dir
perl Makefile.PL INSTALL_BASE=~
@@ -41,7 +46,6 @@ reason, do it the long way.
use lib "/path/to/your/home/dir/lib/perl5";
-
=item How do I get MakeMaker and Module::Build to install to the same place?
Module::Build, as of 0.28, supports two ways to install to the same
@@ -99,8 +103,10 @@ Two ways. One is to build the module normally...
make
make test
-...and then set the PERL5LIB environment variable to point at the
-blib/lib and blib/arch directories.
+...and then use L<blib> to point Perl at the built but uninstalled module:
+
+ perl -Mblib script.pl
+ perl -Mblib -e '...'
The other is to install the module in a temporary location.
@@ -112,20 +118,89 @@ The other is to install the module in a temporary location.
And then set PERL5LIB to F<~/tmp/lib/perl5>. This works well when you
have multiple modules to work with. It also ensures that the module
goes through its full installation process which may modify it.
+Again, L<local::lib> may assist you here.
+
+=item How can I organize tests into subdirectories and have them run?
+
+Let's take the following test directory structure:
+
+ t/foo/sometest.t
+ t/bar/othertest.t
+ t/bar/baz/anothertest.t
+
+Now, inside of the C<WriteMakeFile()> function in your F<Makefile.PL>, specify
+where your tests are located with the C<test> directive:
+
+ test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
+
+The first entry in the string will run all tests in the top-level F<t/>
+directory. The second will run all test files located in any subdirectory under
+F<t/>. The third, runs all test files within any subdirectory within any other
+subdirectory located under F<t/>.
+
+Note that you do not have to use wildcards. You can specify explicitly which
+subdirectories to run tests in:
+
+ test => {TESTS => 't/*.t t/foo/*.t t/bar/baz/*.t'}
=item PREFIX vs INSTALL_BASE from Module::Build::Cookbook
The behavior of PREFIX is complicated and depends closely on how your
-Perl is configured. The resulting installation locations will vary from
-machine to machine and even different installations of Perl on the same machine.
-Because of this, its difficult to document where prefix will place your modules.
+Perl is configured. The resulting installation locations will vary
+from machine to machine and even different installations of Perl on the
+same machine. Because of this, its difficult to document where prefix
+will place your modules.
+
+In contrast, INSTALL_BASE has predictable, easy to explain installation
+locations. Now that Module::Build and MakeMaker both have INSTALL_BASE
+there is little reason to use PREFIX other than to preserve your existing
+installation locations. If you are starting a fresh Perl installation we
+encourage you to use INSTALL_BASE. If you have an existing installation
+installed via PREFIX, consider moving it to an installation structure
+matching INSTALL_BASE and using that instead.
+
+=item Generating *.pm files with substitutions eg of $VERSION
+
+If you want to configure your module files for local conditions, or to
+automatically insert a version number, you can use EUMM's C<PL_FILES>
+capability, where it will automatically run each F<*.PL> it finds to
+generate its basename. For instance:
+
+ # Makefile.PL:
+ require 'common.pl';
+ my $version = get_version();
+ my @pms = qw(Foo.pm);
+ WriteMakefile(
+ NAME => 'Foo',
+ VERSION => $version,
+ PM => { map { ($_ => "\$(INST_LIB)/$_") } @pms },
+ clean => { FILES => join ' ', @pms },
+ );
-In contrast, INSTALL_BASE has predictable, easy to explain installation locations.
-Now that Module::Build and MakeMaker both have INSTALL_BASE there is little reason
-to use PREFIX other than to preserve your existing installation locations. If you
-are starting a fresh Perl installation we encourage you to use INSTALL_BASE. If
-you have an existing installation installed via PREFIX, consider moving it to an
-installation structure matching INSTALL_BASE and using that instead.
+ # common.pl:
+ sub get_version { '0.04' }
+ sub process { my $v = get_version(); s/__VERSION__/$v/g; }
+ 1;
+
+ # Foo.pm.PL:
+ require 'common.pl';
+ $_ = join '', <DATA>;
+ process();
+ my $file = shift;
+ open my $fh, '>', $file or die "$file: $!";
+ print $fh $_;
+ __DATA__
+ package Foo;
+ our $VERSION = '__VERSION__';
+ 1;
+
+You may notice that C<PL_FILES> is not specified above, since the default
+of mapping each .PL file to its basename works well.
+
+If the generated module were architecture-specific, you could replace
+C<$(INST_LIB)> above with C<$(INST_ARCHLIB)>, although if you locate
+modules under F<lib>, that would involve ensuring any C<lib/> in front
+of the module location were removed.
=back
@@ -184,16 +259,16 @@ Its primary advantages are:
=back
-Module::Build was long the official heir apparent to MakeMaker. The rate of
-both its development and adoption has slowed in recent years, though, and it is
-unclear what the future holds for it. That said, Module::Build set the stage
-for I<something> to become the heir to MakeMaker. MakeMaker's maintainers have
-long said that it is a dead end and should be kept functioning, but not
-extended with new features. It's complicated enough as it is!
+Module::Build was long the official heir apparent to MakeMaker. The
+rate of both its development and adoption has slowed in recent years,
+though, and it is unclear what the future holds for it. That said,
+Module::Build set the stage for I<something> to become the heir to
+MakeMaker. MakeMaker's maintainers have long said that it is a dead
+end and should be kept functioning, while being cautious about extending
+with new features.
=back
-
=head2 Module Writing
=over 4
@@ -207,8 +282,14 @@ modules in your dist, $VERSION is really just bookkeeping and all that's
important is it goes up every time the module is changed. Doing this
by hand is a pain and you often forget.
-Simplest way to do it automatically is to use your version control
-system's revision number (you are using version control, right?).
+Probably the easiest way to do this is using F<perl-reversion> in
+L<Perl::Version>:
+
+ perl-reversion -bump
+
+If your version control system supports revision numbers (git doesn't
+easily), the simplest way to do it automatically is to use its revision
+number (you are using version control, right?).
In CVS, RCS and SVN you use $Revision$ (see the documentation of your
version control system for details). Every time the file is checked
@@ -300,7 +381,7 @@ do that. Use at your own risk. Have fun blowing holes in your foot.
We recommend ptar from Archive::Tar not older than 1.66 with '-C' option.
-=item Which zip should I use on Windows for '[nd]make zipdist'?
+=item Which zip should I use on Windows for '[ndg]make zipdist'?
We recommend InfoZIP: L<http://www.info-zip.org/Zip.html>
@@ -329,9 +410,27 @@ WriteMakefile() arguments.
=item How do I make two or more XS files coexist in the same directory?
Sometimes you need to have two and more XS files in the same package.
-One way to go is to put them into separate directories, but sometimes
-this is not the most suitable solution. The following technique allows
-you to put two (and more) XS files in the same directory.
+There are three ways: C<XSMULTI>, separate directories, and bootstrapping
+one XS from another.
+
+=over 8
+
+=item XSMULTI
+
+Structure your modules so they are all located under F<lib>, such that
+C<Foo::Bar> is in F<lib/Foo/Bar.pm> and F<lib/Foo/Bar.xs>, etc. Have your
+top-level C<WriteMakefile> set the variable C<XSMULTI> to a true value.
+
+Er, that's it.
+
+=item Separate directories
+
+Put each XS files into separate directories, each with their own
+F<Makefile.PL>. Make sure each of those F<Makefile.PL>s has the correct
+C<CFLAGS>, C<INC>, C<LIBS> etc. You will need to make sure the top-level
+F<Makefile.PL> refers to each of these using C<DIR>.
+
+=item Bootstrapping
Let's assume that we have a package C<Cool::Foo>, which includes
C<Cool::Foo> and C<Cool::Bar> modules each having a separate XS
@@ -446,12 +545,115 @@ And of course a very basic test:
This tip has been brought to you by Nick Ing-Simmons and Stas Bekman.
+An alternative way to achieve this can be seen in L<Gtk2::CodeGen>
+and L<Glib::CodeGen>.
+
=back
+=back
+
+=head1 DESIGN
+
+=head2 MakeMaker object hierarchy (simplified)
+
+What most people need to know (superclasses on top.)
+
+ ExtUtils::MM_Any
+ |
+ ExtUtils::MM_Unix
+ |
+ ExtUtils::MM_{Current OS}
+ |
+ ExtUtils::MakeMaker
+ |
+ MY
+
+The object actually used is of the class MY which allows you to
+override bits of MakeMaker inside your Makefile.PL by declaring
+MY::foo() methods.
+
+=head2 MakeMaker object hierarchy (real)
+
+Here's how it really works:
+
+ ExtUtils::MM_Any
+ |
+ ExtUtils::MM_Unix
+ |
+ ExtUtils::Liblist::Kid ExtUtils::MM_{Current OS} (if necessary)
+ | |
+ ExtUtils::Liblist ExtUtils::MakeMaker |
+ | | |
+ | | |-----------------------
+ ExtUtils::MM
+ | |
+ ExtUtils::MY MM (created by ExtUtils::MM)
+ | |
+ MY (created by ExtUtils::MY) |
+ . |
+ (mixin) |
+ . |
+ PACK### (created each call to ExtUtils::MakeMaker->new)
+
+NOTE: Yes, this is a mess. See
+L<http://archive.develooper.com/makemaker@perl.org/msg00134.html>
+for some history.
+
+NOTE: When ExtUtils::MM is loaded it chooses a superclass for MM from
+amongst the ExtUtils::MM_* modules based on the current operating
+system.
+
+NOTE: ExtUtils::MM_{Current OS} represents one of the ExtUtils::MM_*
+modules except ExtUtils::MM_Any chosen based on your operating system.
+
+NOTE: The main object used by MakeMaker is a PACK### object, *not*
+ExtUtils::MakeMaker. It is, effectively, a subclass of MY,
+ExtUtils::Makemaker, ExtUtils::Liblist and ExtUtils::MM_{Current OS}
+
+NOTE: The methods in MY are simply copied into PACK### rather than
+MY being a superclass of PACK###. I don't remember the rationale.
+
+NOTE: ExtUtils::Liblist should be removed from the inheritance hiearchy
+and simply be called as functions.
+
+NOTE: Modules like File::Spec and Exporter have been omitted for clarity.
+
+
+=head2 The MM_* hierarchy
+
+ MM_Win95 MM_NW5
+ \ /
+ MM_BeOS MM_Cygwin MM_OS2 MM_VMS MM_Win32 MM_DOS MM_UWIN
+ \ | | | / / /
+ ------------------------------------------------
+ | |
+ MM_Unix |
+ | |
+ MM_Any
+
+NOTE: Each direct MM_Unix subclass is also an MM_Any subclass. This
+is a temporary hack because MM_Unix overrides some MM_Any methods with
+Unix specific code. It allows the non-Unix modules to see the
+original MM_Any implementations.
+
+NOTE: Modules like File::Spec and Exporter have been omitted for clarity.
+
=head1 PATCHING
If you have a question you'd like to see added to the FAQ (whether or
-not you have the answer) please send it to makemaker@perl.org.
+not you have the answer) please either:
+
+=over 2
+
+=item * make a pull request on the MakeMaker github repository
+
+=item * raise a issue on the MakeMaker github repository
+
+=item * file an RT ticket
+
+=item * email makemaker@perl.org
+
+=back
=head1 AUTHOR
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
index 7e53baa525b..b49e4448330 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
@@ -1,6 +1,7 @@
package ExtUtils::MakeMaker::Tutorial;
-our $VERSION = '7.10_01';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
=head1 NAME
@@ -103,8 +104,39 @@ is F<lib/Foo/Bar.pm>.
=item t/
Tests for your modules go here. Each test filename ends with a .t.
-So F<t/foo.t>/ 'make test' will run these tests. The directory is flat,
-you cannot, for example, have t/foo/bar.t run by 'make test'.
+So F<t/foo.t> 'make test' will run these tests.
+
+Typically, the F<t/> test directory is flat, with all test files located
+directly within it. However, you can nest tests within subdirectories, for
+example:
+
+ t/foo/subdir_test.t
+
+To do this, you need to inform C<WriteMakeFile()> in your I<Makefile.PL> file
+in the following fashion:
+
+ test => {TESTS => 't/*.t t/*/*.t'}
+
+That will run all tests in F<t/>, as well as all tests in all subdirectories
+that reside under F<t/>. You can nest as deeply as makes sense for your project.
+Simply add another entry in the test location string. For example, to test:
+
+ t/foo/bar/subdir_test.t
+
+You would use the following C<test> directive:
+
+ test => {TESTS => 't/*.t t/*/*/*.t'}
+
+Note that in the above example, tests in the first subdirectory will not be
+run. To run all tests in the intermediary subdirectory preceding the one
+the test files are in, you need to explicitly note it:
+
+ test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
+
+You don't need to specify wildcards if you only want to test within specific
+subdirectories. The following example will only run tests in F<t/foo>:
+
+ test => {TESTS => 't/foo/*.t'}
Tests are run from the top level of your distribution. So inside a test
you would refer to ./lib to enter the lib directory, for example.
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
index dc2310e0f98..0d4c1a20909 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
@@ -3,7 +3,8 @@ package ExtUtils::Mkbootstrap;
# There's just too much Dynaloader incest here to turn on strict vars.
use strict 'refs';
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
require Exporter;
our @ISA = ('Exporter');
@@ -47,7 +48,7 @@ sub Mkbootstrap {
my(@all) = (@bsloadlibs, @DynaLoader::dl_resolve_using);
my($method) = '';
- if (@all){
+ if (@all || (defined $DynaLoader::bscode && length $DynaLoader::bscode)){
open my $bs, ">", "$baseext.bs"
or die "Unable to open $baseext.bs: $!";
print "Writing $baseext.bs\n";
@@ -56,13 +57,15 @@ sub Mkbootstrap {
print $bs "# Do not edit this file, changes will be lost.\n";
print $bs "# This file was automatically generated by the\n";
print $bs "# Mkbootstrap routine in ExtUtils::Mkbootstrap (v$VERSION).\n";
- print $bs "\@DynaLoader::dl_resolve_using = ";
- # If @all contains names in the form -lxxx or -Lxxx then it's asking for
- # runtime library location so we automatically add a call to dl_findfile()
- if (" @all" =~ m/ -[lLR]/){
- print $bs " dl_findfile(qw(\n @all\n ));\n";
- }else{
- print $bs " qw(@all);\n";
+ if (@all) {
+ print $bs "\@DynaLoader::dl_resolve_using = ";
+ # If @all contains names in the form -lxxx or -Lxxx then it's asking for
+ # runtime library location so we automatically add a call to dl_findfile()
+ if (" @all" =~ m/ -[lLR]/){
+ print $bs " dl_findfile(qw(\n @all\n ));\n";
+ } else {
+ print $bs " qw(@all);\n";
+ }
}
# write extra code if *_BS says so
print $bs $DynaLoader::bscode if $DynaLoader::bscode;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
index 37180b89605..0ec5f9dbdfd 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
@@ -10,7 +10,8 @@ use Config;
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
sub Mksymlists {
my(%spec) = @_;
@@ -135,7 +136,7 @@ sub _write_win32 {
open( my $def, ">", "$data->{FILE}.def" )
or croak("Can't create $data->{FILE}.def: $!\n");
# put library name in quotes (it could be a keyword, like 'Alias')
- if ($Config::Config{'cc'} !~ /^gcc/i) {
+ if ($Config::Config{'cc'} !~ /\bgcc/i) {
print $def "LIBRARY \"$data->{DLBASE}\"\n";
}
print $def "EXPORTS\n ";
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
index 1756998c4d1..01b46ee45a5 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
@@ -3,7 +3,8 @@ package ExtUtils::testlib;
use strict;
use warnings;
-our $VERSION = '7.10_02';
+our $VERSION = '7.34';
+$VERSION = eval $VERSION;
use Cwd;
use File::Spec;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t
index 7218dd3a3ee..cb8d0dbc3fc 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t
@@ -4,20 +4,22 @@ BEGIN {
unshift @INC, 't/lib';
}
-use File::Temp qw[tempdir];
-my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
-chdir $tmpdir;
-
use strict;
use Test::More tests => 7;
use MakeMaker::Test::Setup::BFD;
use MakeMaker::Test::Utils;
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
+
+use File::Temp qw[tempdir];
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
+chdir $tmpdir;
+
my $perl = which_perl();
my $make = make_run();
-perl_lib();
-
ok( setup_recurs(), 'setup' );
END {
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t
index fc316112b02..69398117b7e 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t
@@ -15,33 +15,40 @@ $CLEANUP &&= 1; # so always 1 or numerically 0
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::BFD;
-use Test::More;
use Config;
use ExtUtils::MM;
-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+use Test::More
+ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
- : (tests => 3 + $CLEANUP + @INSTDIRS * (15 + $CLEANUP));
+ : ();
+plan tests => 4 + $CLEANUP + @INSTDIRS * (15 + $CLEANUP);
my $Is_VMS = $^O eq 'VMS';
my $perl = which_perl();
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
+
use File::Temp qw[tempdir];
-my $tmpdir = tempdir( DIR => 't', CLEANUP => $CLEANUP );
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => $CLEANUP );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
chdir $tmpdir;
-perl_lib;
-
-ok( setup_recurs(), 'setup' );
+my $SPACEDIR = 'space dir';
+ok( setup_recurs($SPACEDIR), 'setup' );
END {
ok( chdir File::Spec->updir, 'chdir updir' );
+ ok( chdir File::Spec->updir, 'chdir updir again' );
ok( teardown_recurs(), 'teardown' ) if $CLEANUP;
map { rmtree $_ } @INSTDIRS if $CLEANUP;
}
-ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy") || diag("chdir failed; $!");
+ok( chdir(File::Spec->catdir($SPACEDIR, 'Big-Dummy')), "chdir'd to Big-Dummy") || diag("chdir failed; $!");
for my $instdir (@INSTDIRS) {
+ $instdir = File::Spec->rel2abs($instdir);
+ $instdir = VMS::Filespec::unixpath($instdir) if $Is_VMS;
my @mpl_out = run(qq{$perl Makefile.PL "INSTALL_BASE=$instdir"});
cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) ||
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t
index ed076918e30..388bc545cd2 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MM_Unix.t
@@ -12,7 +12,7 @@ BEGIN {
plan skip_all => 'Non-Unix platform';
}
else {
- plan tests => 110;
+ plan tests => 113;
}
}
@@ -98,7 +98,6 @@ foreach ( qw /
ppd
prefixify
processPL
- quote_paren
realclean
static
static_lib
@@ -151,6 +150,9 @@ is ($t->has_link_code(),1); is ($t->{HAS_LINK_CODE},1);
###############################################################################
# libscan
+is ($t->libscan('Readme.pod'), '', 'libscan excludes base Readme.pod');
+is ($t->libscan('README.pod'), '', 'libscan excludes base README.pod');
+is ($t->libscan('lib/Foo/README.pod'), 'lib/Foo/README.pod', 'libscan accepts README.pod in a subdirectory');
is ($t->libscan('foo/RCS/bar'), '', 'libscan on RCS');
is ($t->libscan('CVS/bar/car'), '', 'libscan on CVS');
is ($t->libscan('SCCS'), '', 'libscan on SCCS');
@@ -223,3 +225,10 @@ foreach (qw/ EXPORT_LIST PERL_ARCHIVE PERL_ARCHIVE_AFTER /)
like( $t->{CCFLAGS}, qr/\-DMY_THING/, 'cflags retains CCFLAGS' );
}
+{
+ my @targv = ("var=don't forget about spaces and single quotes");
+ local @ARGV = @targv;
+ my $t = bless { NAME => "Foo", FULLPERL => $0, DIR => [] }, $class;
+ $t->makeaperl( TARGET => "Tgt" );
+ is_deeply( \@ARGV, \@targv, 'ARGV is not polluted by makeaperl' );
+}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t
index 8e921bdaa14..b0100e6ad80 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t
@@ -11,7 +11,7 @@ use strict;
use warnings;
use ExtUtils::MakeMaker;
-use Test::More;
+use Test::More tests => 6;
my $mm = bless {}, "MM";
@@ -62,5 +62,3 @@ process_cmp
# NAME => q[Foo]
# PREREQ_PM => { Baz=>q[0.12], Foo::Bar=>q[1.23], Long=>q[1.45], Short=>q[0] }
EXPECT
-
-done_testing();
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t
index f96186f1e3f..51aed5e5d03 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/PL_FILES.t
@@ -5,33 +5,70 @@ BEGIN {
}
use strict;
+use warnings;
-use File::Spec;
-use File::Temp qw[tempdir];
-use MakeMaker::Test::Setup::PL_FILES;
use MakeMaker::Test::Utils;
use Config;
-use Test::More;
use ExtUtils::MM;
-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+use Test::More
+ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
- : (tests => 9);
+ : (tests => 10);
+use File::Spec;
+use File::Temp qw[tempdir];
+use File::Path;
my $perl = which_perl();
my $make = make_run();
-perl_lib();
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
-my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
chdir $tmpdir;
-setup;
+my $DIRNAME = 'PL-Module';
+my %FILES = (
+ 'Makefile.PL' => <<'END',
+use ExtUtils::MakeMaker;
+# A module for testing PL_FILES
+WriteMakefile(
+ NAME => 'PL::Module',
+ PL_FILES => { 'single.PL' => 'single.out',
+ 'multi.PL' => [qw(1.out 2.out)],
+ 'Bar_pm.PL' => '$(INST_LIB)/PL/Bar.pm',
+ 'Bar2.pm.PL' => 'Bar2.pm',
+ },
+);
+
+package MY;
+sub init_PM {
+ my ($self) = @_;
+ $self->SUPER::init_PM;
+ $self->{PM}{'Bar2.pm'} = '$(INST_LIBDIR)/Bar2.pm'; # PDL does this in WM args
+}
+END
+
+ 'single.PL' => _gen_pl_files(),
+ 'multi.PL' => _gen_pl_files(),
+ 'Bar_pm.PL' => _gen_pm_files(),
+ 'Bar2.pm.PL' => _gen_pm_files(),
+ 'lib/PL/Foo.pm' => <<'END',
+# Module to load to ensure PL_FILES have blib in @INC.
+package PL::Foo;
+sub bar { 42 }
+1;
+END
+);
+
+hash2files($DIRNAME, \%FILES);
END {
ok( chdir File::Spec->updir );
- ok( teardown );
+ ok( rmtree($DIRNAME) );
}
-ok chdir('PL_FILES-Module');
+ok chdir($DIRNAME);
run(qq{$perl Makefile.PL});
cmp_ok( $?, '==', 0 );
@@ -39,6 +76,54 @@ cmp_ok( $?, '==', 0 );
my $make_out = run("$make");
is( $?, 0 ) || diag $make_out;
-foreach my $file (qw(single.out 1.out 2.out blib/lib/PL/Bar.pm)) {
+foreach my $file (qw(single.out 1.out 2.out blib/lib/PL/Bar.pm blib/lib/PL/Bar2.pm)) {
ok( -e $file, "$file was created" );
}
+
+sub _gen_pl_files {
+ my $test = <<'END';
+#!/usr/bin/perl -w
+
+# Ensure we have blib in @INC
+use PL::Foo;
+die unless PL::Foo::bar() == 42;
+
+# Had a bug where PL_FILES weren't sent the file to generate
+die "argv empty\n" unless @ARGV;
+die "too many in argv: @ARGV\n" unless @ARGV == 1;
+
+my $file = $ARGV[0];
+open OUT, ">$file" or die $!;
+
+print OUT "Testing\n";
+close OUT
+END
+
+ $test =~ s/^\n//;
+
+ return $test;
+}
+
+sub _gen_pm_files {
+ my $test = <<'END';
+#!/usr/bin/perl -w
+
+# Ensure we do NOT have blib in @INC when building a module
+eval { require PL::Foo; };
+#die $@ unless $@ =~ m{^Can't locate PL/Foo.pm in \@INC };
+
+# Had a bug where PL_FILES weren't sent the file to generate
+die "argv empty\n" unless @ARGV;
+die "too many in argv: @ARGV\n" unless @ARGV == 1;
+
+my $file = $ARGV[0];
+open OUT, ">$file" or die $!;
+
+print OUT "Testing\n";
+close OUT
+END
+
+ $test =~ s/^\n//;
+
+ return $test;
+}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t
index f58211ae00d..534bf219f6c 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/basic.t
@@ -20,11 +20,11 @@ use utf8;
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::BFD;
use Config;
-use Test::More;
use ExtUtils::MM;
-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+use Test::More
+ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
- : (tests => 171);
+ : (tests => 188);
use File::Find;
use File::Spec;
use File::Path;
@@ -55,28 +55,31 @@ END {
}
}
-my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
-chdir $tmpdir;
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
-perl_lib;
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
+chdir $tmpdir;
my $Touch_Time = calibrate_mtime();
$| = 1;
ok( setup_recurs(), 'setup' );
-END {
- ok chdir File::Spec->updir or die;
- ok teardown_recurs, "teardown";
-}
ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy" ) ||
diag("chdir failed: $!");
-sub extrachar { $] > 5.008 && !$ENV{PERL_CORE} ? utf8::decode(my $c='ĹĄ') : 's' }
+sub extrachar {
+ return 's'
+ if 1; # until Perl gains native support for Unicode filenames
+# if $] <= 5.008 || $ENV{PERL_CORE}
+# || $^O =~ /bsd|dragonfly|mswin32/i;
+ 'ĹĄ';
+}
my $DUMMYINST = '../dummy-in'.extrachar().'tall';
my @mpl_out = run(qq{$perl Makefile.PL "PREFIX=$DUMMYINST"});
-END { rmtree $DUMMYINST; }
cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) ||
diag(@mpl_out);
@@ -96,8 +99,6 @@ ok( -e $makefile, 'Makefile exists' );
my $mtime = (stat($makefile))[9];
cmp_ok( $Touch_Time, '<=', $mtime, ' been touched' );
-END { unlink makefile_name(), makefile_backup() }
-
my $make = make_run();
{
@@ -108,8 +109,6 @@ my $make = make_run();
ok( -s 'MANIFEST', ' not empty' );
}
-END { unlink 'MANIFEST'; }
-
my $ppd_out = run("$make ppd");
is( $?, 0, ' exited normally' ) || diag $ppd_out;
ok( open(PPD, 'Big-Dummy.ppd'), ' .ppd file generated' );
@@ -138,8 +137,6 @@ like( $ppd_html, qr{^\s*<ARCHITECTURE NAME="$archname" />}m,
like( $ppd_html, qr{^\s*<CODEBASE HREF="" />}m, ' <CODEBASE>');
like( $ppd_html, qr{^\s*</IMPLEMENTATION>}m, ' </IMPLEMENTATION>');
like( $ppd_html, qr{^\s*</SOFTPKG>}m, ' </SOFTPKG>');
-END { unlink 'Big-Dummy.ppd' }
-
my $test_out = run("$make test");
like( $test_out, qr/All tests successful/, 'make test' );
@@ -150,10 +147,28 @@ is( $?, 0, ' exited normally' ) ||
my $make_test_verbose = make_macro($make, 'test', TEST_VERBOSE => 1);
$test_out = run("$make_test_verbose");
like( $test_out, qr/ok \d+ - TEST_VERBOSE/, 'TEST_VERBOSE' );
+like( $test_out, qr/ok \d+ - testing test.pl/, 'test.pl' ); # in test.pl
+like( $test_out, qr/ok \d+ - testing t\/\*.t/, 't/*.t' ); # in *.t
like( $test_out, qr/All tests successful/, ' successful' );
is( $?, 0, ' exited normally' ) ||
diag $test_out;
+# Test 'make testdb TEST_FILE=t/compile.t'
+# TESTDB_SW override is because perl -d is too clever for me to outwit
+my $make_testdb_file = make_macro(
+ $make,
+ 'testdb',
+ TEST_FILE => 't/compile.t',
+ TESTDB_SW => '-Ixyzzy',
+);
+$test_out = run($make_testdb_file);
+unlike( $test_out, qr/harness/, 'no harness' );
+unlike( $test_out, qr/sanity\.t/, 'no wrong test' );
+like( $test_out, qr/compile\.t/, 'get right test' );
+like( $test_out, qr/xyzzy/, 'signs of TESTDB_SW' );
+is( $?, 0, ' exited normally' ) ||
+ diag $test_out;
+
# now simulate what Module::Install does, and edit $(PERL) to add flags
open my $fh, '<', $makefile;
my $mtext = join '', <$fh>;
@@ -168,7 +183,7 @@ is( $?, 0, 'install' ) || diag $install_out;
like( $install_out, qr/^Installing /m );
sub check_dummy_inst {
- my $loc = shift;
+ my ($loc, $skipsubdir) = @_;
my %files = ();
find( sub {
# do it case-insensitive for non-case preserving OSs
@@ -178,7 +193,7 @@ sub check_dummy_inst {
$files{$file} = $File::Find::name;
}, $loc );
ok( $files{'dummy.pm'}, ' Dummy.pm installed' );
- ok( $files{'liar.pm'}, ' Liar.pm installed' );
+ ok( $files{'liar.pm'}, ' Liar.pm installed' ) unless $skipsubdir;
ok( $files{'program'}, ' program installed' );
ok( $files{'.packlist'}, ' packlist created' );
ok( $files{'perllocal.pod'},' perllocal.pod created' );
@@ -249,22 +264,28 @@ SKIP: {
rmtree('other');
}
+my ($dist_test_out, $distdir, $meta_yml, $mymeta_yml, $meta_json, $mymeta_json);
+SKIP: {
+ skip 'disttest depends on metafile, which is not run in core', 1 if $ENV{PERL_CORE};
+ $dist_test_out = run("$make disttest");
+ is( $?, 0, 'disttest' ) || diag($dist_test_out);
+
+ # Test META.yml generation
+ use ExtUtils::Manifest qw(maniread);
+
+ $distdir = 'Big-Dummy-0.01';
+ $distdir =~ s/\./_/g if $Is_VMS;
+ $meta_yml = "$distdir/META.yml";
+ $mymeta_yml = "$distdir/MYMETA.yml";
+ $meta_json = "$distdir/META.json";
+ $mymeta_json = "$distdir/MYMETA.json";
+}
-my $dist_test_out = run("$make disttest");
-is( $?, 0, 'disttest' ) || diag($dist_test_out);
-
-# Test META.yml generation
-use ExtUtils::Manifest qw(maniread);
-
-my $distdir = 'Big-Dummy-0.01';
-$distdir =~ s/\./_/g if $Is_VMS;
-my $meta_yml = "$distdir/META.yml";
-my $mymeta_yml = "$distdir/MYMETA.yml";
-my $meta_json = "$distdir/META.json";
-my $mymeta_json = "$distdir/MYMETA.json";
+note "META file validity"; SKIP: {
+ skip 'disttest depends on metafile, which is not run in core', 104 if $ENV{PERL_CORE};
-note "META file validity"; {
- require CPAN::Meta;
+ eval { require CPAN::Meta; };
+ skip 'Loading CPAN::Meta failed', 104 if $@;
ok( !-f 'META.yml', 'META.yml not written to source dir' );
ok( -f $meta_yml, 'META.yml written to dist dir' );
@@ -346,7 +367,7 @@ note "META file validity"; {
"MANIFEST has META.yml"
);
is( $manifest->{'meta.json'}, 'Module JSON meta-data (added by MakeMaker)',
- "MANFIEST has META.json"
+ "MANIFEST has META.json"
);
# Test NO_META META.yml suppression
@@ -417,8 +438,12 @@ note "META file validity"; {
}
-
# Make sure init_dirscan doesn't go into the distdir
+# also with a "messup.PL" that will make a build fail
+open $fh, '>', 'messup.PL' or die "messup.PL: $!";
+print $fh 'print "Extracting messup (with variable substitutions)\n";' . "\n";
+print $fh 'die';
+close $fh;
@mpl_out = run(qq{$perl Makefile.PL "PREFIX=$DUMMYINST"});
cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || diag(@mpl_out);
@@ -427,6 +452,14 @@ ok( grep(/^Writing $makefile for Big::Dummy/, @mpl_out) == 1,
'init_dirscan skipped distdir') ||
diag(@mpl_out);
+# "make test" straight after "perl Makefile.PL" is expected to work same as
+# "make all test" so check that with "messup.PL" that will make the
+# build step fail
+$test_out = run("$make test");
+unlike( $test_out, qr/All tests successful/, 'make test caused build' );
+isnt( $?, 0, ' build should fail' ) ||
+ diag $test_out;
+
# I know we'll get ignored errors from make here, that's ok.
# Send STDERR off to oblivion.
open(SAVERR, ">&STDERR") or die $!;
@@ -434,10 +467,32 @@ open(STDERR, ">",File::Spec->devnull) or die $!;
my $realclean_out = run("$make realclean");
is( $?, 0, 'realclean' ) || diag($realclean_out);
+1 while unlink 'messup.PL'; # also zap deliberate build-breaker
open(STDERR, ">&SAVERR") or die $!;
close SAVERR;
+# test linkext=>{LINKTYPE=>''} still installs a pure-perl installation
+# warning, edits the Makefile.PL so either rewrite after this or do this last
+my $file = 'Makefile.PL';
+my $text = slurp $file;
+ok(($text =~ s#\);# linkext=>{LINKTYPE=>''},\n$&#), 'successful M.PL edit');
+open $fh, '>', $file or die "$file: $!";
+print $fh $text;
+close $fh;
+# now do with "Liar" subdir still there
+rmtree $DUMMYINST; # so no false positive from before
+@mpl_out = run(qq{$perl Makefile.PL "PREFIX=$DUMMYINST"});
+$install_out = run("$make install");
+check_dummy_inst($DUMMYINST);
+# now clean, delete "Liar" subdir, do again
+$realclean_out = run("$make realclean");
+rmtree 'Liar';
+rmtree $DUMMYINST; # so no false positive from before
+@mpl_out = run(qq{$perl Makefile.PL "PREFIX=$DUMMYINST"});
+$install_out = run("$make install");
+check_dummy_inst($DUMMYINST, 1);
+
sub _normalize {
my $hash = shift;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/cd.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/cd.t
index 67dfd9839ea..57da1dfe091 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/cd.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/cd.t
@@ -6,6 +6,7 @@ BEGIN {
use File::Temp qw[tempdir];
my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
chdir $tmpdir;
my $Is_VMS = $^O eq 'VMS';
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/echo.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/echo.t
index 6d424d13177..872c2b1c211 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/echo.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/echo.t
@@ -14,11 +14,11 @@ use MakeMaker::Test::Utils;
use File::Temp;
use Cwd 'abs_path';
-use Test::More;
use ExtUtils::MM;
-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+use Test::More
+ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
- : ();
+ : (tests => 18);
#--------------------- Setup
@@ -117,5 +117,3 @@ test_for_echo(
"Foo\nBar\nBaz\n",
"append"
);
-
-done_testing;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/MPV.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/MPV.pm
deleted file mode 100644
index f30d65f5676..00000000000
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/MPV.pm
+++ /dev/null
@@ -1,67 +0,0 @@
-package MakeMaker::Test::Setup::MPV;
-
-@ISA = qw(Exporter);
-require Exporter;
-@EXPORT = qw(setup_recurs teardown_recurs);
-
-use strict;
-use File::Path;
-use File::Basename;
-
-my %Files = (
- 'Min-PerlVers/Makefile.PL' => <<'END',
-use ExtUtils::MakeMaker;
-
-WriteMakefile(
- NAME => 'Min::PerlVers',
- AUTHOR => 'John Doe <jd@example.com>',
- VERSION_FROM => 'lib/Min/PerlVers.pm',
- PREREQ_PM => { strict => 0 },
- MIN_PERL_VERSION => '5.005',
-);
-END
-
- 'Min-PerlVers/lib/Min/PerlVers.pm' => <<'END',
-package Min::PerlVers;
-
-$VERSION = 0.05;
-
-=head1 NAME
-
-Min::PerlVers - being picky about perl versions
-
-=cut
-
-1;
-END
-
-);
-
-
-sub setup_recurs {
- while(my($file, $text) = each %Files) {
- # Convert to a relative, native file path.
- $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
-
- my $dir = dirname($file);
- mkpath $dir;
- open(FILE, ">$file") || die "Can't create $file: $!";
- print FILE $text;
- close FILE;
- }
-
- return 1;
-}
-
-sub teardown_recurs {
- foreach my $file (keys %Files) {
- my $dir = dirname($file);
- if( -e $dir ) {
- rmtree($dir) || return;
- }
- }
- return 1;
-}
-
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/PL_FILES.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/PL_FILES.pm
deleted file mode 100644
index f412368317c..00000000000
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/PL_FILES.pm
+++ /dev/null
@@ -1,119 +0,0 @@
-package MakeMaker::Test::Setup::PL_FILES;
-
-@ISA = qw(Exporter);
-require Exporter;
-@EXPORT = qw(setup teardown);
-
-use strict;
-use File::Path;
-use File::Basename;
-use File::Spec;
-use MakeMaker::Test::Utils;
-
-my %Files = (
- 'PL_FILES-Module/Makefile.PL' => <<'END',
-use ExtUtils::MakeMaker;
-
-# A module for testing PL_FILES
-WriteMakefile(
- NAME => 'PL_FILES::Module',
- PL_FILES => { 'single.PL' => 'single.out',
- 'multi.PL' => [qw(1.out 2.out)],
- 'Bar_pm.PL' => '$(INST_LIB)/PL/Bar.pm',
- }
-);
-END
-
- 'PL_FILES-Module/single.PL' => _gen_pl_files(),
- 'PL_FILES-Module/multi.PL' => _gen_pl_files(),
- 'PL_FILES-Module/Bar_pm.PL' => _gen_pm_files(),
- 'PL_FILES-Module/lib/PL/Foo.pm' => <<'END',
-# Module to load to ensure PL_FILES have blib in @INC.
-package PL::Foo;
-sub bar { 42 }
-1;
-END
-
-);
-
-
-sub _gen_pl_files {
- my $test = <<'END';
-#!/usr/bin/perl -w
-
-# Ensure we have blib in @INC
-use PL::Foo;
-die unless PL::Foo::bar() == 42;
-
-# Had a bug where PL_FILES weren't sent the file to generate
-die "argv empty\n" unless @ARGV;
-die "too many in argv: @ARGV\n" unless @ARGV == 1;
-
-my $file = $ARGV[0];
-open OUT, ">$file" or die $!;
-
-print OUT "Testing\n";
-close OUT
-END
-
- $test =~ s/^\n//;
-
- return $test;
-}
-
-
-sub _gen_pm_files {
- my $test = <<'END';
-#!/usr/bin/perl -w
-
-# Ensure we do NOT have blib in @INC when building a module
-eval { require PL::Foo; };
-#die $@ unless $@ =~ m{^Can't locate PL/Foo.pm in \@INC };
-
-# Had a bug where PL_FILES weren't sent the file to generate
-die "argv empty\n" unless @ARGV;
-die "too many in argv: @ARGV\n" unless @ARGV == 1;
-
-my $file = $ARGV[0];
-open OUT, ">$file" or die $!;
-
-print OUT "Testing\n";
-close OUT
-END
-
- $test =~ s/^\n//;
-
- return $test;
-}
-
-
-sub setup {
-
- while(my($file, $text) = each %Files) {
- # Convert to a relative, native file path.
- $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
-
- my $dir = dirname($file);
- mkpath $dir;
- open(FILE, ">$file") || die "Can't create $file: $!";
- print FILE $text;
- close FILE;
-
- # ensure file at least 1 second old for makes that assume
- # files with the same time are out of date.
- my $time = calibrate_mtime();
- utime $time, $time - 1, $file;
- }
-
- return 1;
-}
-
-sub teardown {
- foreach my $file (keys %Files) {
- my $dir = dirname($file);
- if( -e $dir ) {
- rmtree($dir) || return;
- }
- }
- return 1;
-}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Problem.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Problem.pm
deleted file mode 100644
index 59ac1517a6e..00000000000
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Problem.pm
+++ /dev/null
@@ -1,62 +0,0 @@
-package MakeMaker::Test::Setup::Problem;
-
-@ISA = qw(Exporter);
-require Exporter;
-@EXPORT = qw(setup_recurs teardown_recurs);
-
-use strict;
-use File::Path;
-use File::Basename;
-use MakeMaker::Test::Utils;
-
-my %Files = (
- 'Problem-Module/Makefile.PL' => <<'END',
-use ExtUtils::MakeMaker;
-
-WriteMakefile(
- NAME => 'Problem::Module',
-);
-END
-
- 'Problem-Module/subdir/Makefile.PL' => <<'END',
-printf "\@INC %s .\n", (grep { $_ eq '.' } @INC) ? "has" : "doesn't have";
-
-warn "I think I'm going to be sick\n";
-die "YYYAaaaakkk\n";
-END
-
-);
-
-
-sub setup_recurs {
- while(my($file, $text) = each %Files) {
- # Convert to a relative, native file path.
- $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
-
- my $dir = dirname($file);
- mkpath $dir;
- open(FILE, ">$file") || die "Can't create $file: $!";
- print FILE $text;
- close FILE;
-
- # ensure file at least 1 second old for makes that assume
- # files with the same time are out of date.
- my $time = calibrate_mtime();
- utime $time, $time - 1, $file;
- }
-
- return 1;
-}
-
-sub teardown_recurs {
- foreach my $file (keys %Files) {
- my $dir = dirname($file);
- if( -e $dir ) {
- rmtree($dir) || return;
- }
- }
- return 1;
-}
-
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Recurs.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Recurs.pm
deleted file mode 100644
index 8694321358c..00000000000
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Recurs.pm
+++ /dev/null
@@ -1,72 +0,0 @@
-package MakeMaker::Test::Setup::Recurs;
-
-@ISA = qw(Exporter);
-require Exporter;
-@EXPORT = qw(setup_recurs teardown_recurs);
-
-use strict;
-use File::Path;
-use File::Basename;
-use MakeMaker::Test::Utils;
-
-my %Files = (
- 'Recurs/Makefile.PL' => <<'END',
-use ExtUtils::MakeMaker;
-
-WriteMakefile(
- NAME => 'Recurs',
- VERSION => 1.00,
-);
-END
-
- 'Recurs/prj2/Makefile.PL' => <<'END',
-use ExtUtils::MakeMaker;
-
-WriteMakefile(
- NAME => 'Recurs::prj2',
- VERSION => 1.00,
-);
-END
-
- # Check if a test failure in a subdir causes make test to fail
- 'Recurs/prj2/t/fail.t' => <<'END',
-#!/usr/bin/perl -w
-
-print "1..1\n";
-print "not ok 1\n";
-END
- );
-
-sub setup_recurs {
-
- while(my($file, $text) = each %Files) {
- # Convert to a relative, native file path.
- $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
-
- my $dir = dirname($file);
- mkpath $dir;
- open(FILE, ">$file") || die "Can't create $file: $!";
- print FILE $text;
- close FILE;
-
- # ensure file at least 1 second old for makes that assume
- # files with the same time are out of date.
- my $time = calibrate_mtime();
- utime $time, $time - 1, $file;
- }
-
- return 1;
-}
-
-sub teardown_recurs {
- foreach my $file (keys %Files) {
- my $dir = dirname($file);
- if( -e $dir ) {
- rmtree($dir) || return;
- }
- }
- return 1;
-}
-
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm
deleted file mode 100644
index 04d9bd3259a..00000000000
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm
+++ /dev/null
@@ -1,67 +0,0 @@
-package MakeMaker::Test::Setup::SAS;
-
-@ISA = qw(Exporter);
-require Exporter;
-@EXPORT = qw(setup_recurs teardown_recurs);
-
-use strict;
-use File::Path;
-use File::Basename;
-
-our $dirname='Multiple-Authors';
-my %Files = (
- $dirname.'/Makefile.PL' => <<'END',
-use ExtUtils::MakeMaker;
-
-WriteMakefile(
- NAME => 'Multiple::Authors',
- AUTHOR => ['John Doe <jd@example.com>', 'Jane Doe <jd@example.com>'],
- VERSION_FROM => 'lib/Multiple/Authors.pm',
- PREREQ_PM => { strict => 0 },
-);
-END
-
- $dirname.'/lib/Multiple/Authors.pm' => <<'END',
-package Multiple::Authors;
-
-$VERSION = 0.05;
-
-=head1 NAME
-
-Multiple::Authors - several authors
-
-=cut
-
-1;
-END
-
-);
-
-
-sub setup_recurs {
- while(my($file, $text) = each %Files) {
- # Convert to a relative, native file path.
- $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
-
- my $dir = dirname($file);
- mkpath $dir;
- open(FILE, ">$file") || die "Can't create $file: $!";
- print FILE $text;
- close FILE;
- }
-
- return 1;
-}
-
-sub teardown_recurs {
- foreach my $file (keys %Files) {
- my $dir = dirname($file);
- if( -e $dir ) {
- rmtree($dir) || return;
- }
- }
- return 1;
-}
-
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Unicode.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Unicode.pm
deleted file mode 100644
index 76641f055cd..00000000000
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Unicode.pm
+++ /dev/null
@@ -1,90 +0,0 @@
-package MakeMaker::Test::Setup::Unicode;
-
-@ISA = qw(Exporter);
-require Exporter;
-@EXPORT = qw(setup_recurs teardown_recurs);
-
-use strict;
-use File::Path;
-use File::Basename;
-use MakeMaker::Test::Utils;
-use utf8;
-use Config;
-
-my %Files = (
- 'Problem-Module/Makefile.PL' => <<'PL_END',
-use ExtUtils::MakeMaker;
-use utf8;
-
-WriteMakefile(
- NAME => 'Problem::Module',
- ABSTRACT_FROM => 'lib/Problem/Module.pm',
- AUTHOR => q{Danijel TaĹĄov},
- EXE_FILES => [ qw(bin/probscript) ],
- INSTALLMAN1DIR => "some", # even if disabled in $Config{man1dir}
- MAN1EXT => 1, # set to 0 if man pages disabled
-);
-PL_END
-
- 'Problem-Module/lib/Problem/Module.pm' => <<'pm_END',
-use utf8;
-
-=pod
-
-=encoding utf8
-
-=head1 NAME
-
-Problem::Module - Danijel TaĹĄov's great new module
-
-=cut
-
-1;
-pm_END
-
- 'Problem-Module/bin/probscript' => <<'pl_END',
-#!/usr/bin/perl
-use utf8;
-
-=encoding utf8
-
-=head1 NAME
-
-文档 - Problem script
-pl_END
-);
-
-
-sub setup_recurs {
- while(my($file, $text) = each %Files) {
- # Convert to a relative, native file path.
- $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
-
- my $dir = dirname($file);
- mkpath $dir;
- my $utf8 = ($] < 5.008 or !$Config{useperlio}) ? "" : ":utf8";
- open(FILE, ">$utf8", $file) || die "Can't create $file: $!";
- print FILE $text;
- close FILE;
-
- # ensure file at least 1 second old for makes that assume
- # files with the same time are out of date.
- my $time = calibrate_mtime();
- utime $time, $time - 1, $file;
- }
-
- return 1;
-}
-
-sub teardown_recurs {
- foreach my $file (keys %Files) {
- my $dir = dirname($file);
- if( -e $dir ) {
- rmtree($dir) || return;
- }
- }
- return 1;
-}
-
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm
index 6ebca598342..3d1f57e6bd6 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm
@@ -2,101 +2,472 @@ package MakeMaker::Test::Setup::XS;
@ISA = qw(Exporter);
require Exporter;
-@EXPORT = qw(setup_xs teardown_xs);
+@EXPORT = qw(run_tests list_dynamic list_static);
use strict;
use File::Path;
-use File::Basename;
use MakeMaker::Test::Utils;
use Config;
+use Carp qw(croak);
+use Test::More;
+use File::Spec;
+use File::Temp qw[tempdir];
+use Cwd;
use ExtUtils::MM;
+# this is to avoid MM->new overwriting _eumm in top dir
+my $tempdir = tempdir(DIR => getcwd, CLEANUP => 1);
+chdir $tempdir;
my $typemap = 'type map';
-$typemap =~ s/ //g unless MM->new({NAME=>'name'})->can_dep_space;
+my $MM = MM->new({NAME=>'name', NORECURS=>1});
+$typemap =~ s/ //g unless $MM->can_dep_space;
+chdir File::Spec->updir;
-my %Files = (
- 'XS-Test/lib/XS/Test.pm' => <<'END',
+my $PM_TEST = <<'END';
package XS::Test;
-
require Exporter;
require DynaLoader;
-
$VERSION = 1.01;
@ISA = qw(Exporter DynaLoader);
@EXPORT = qw(is_even);
-
bootstrap XS::Test $VERSION;
-
1;
END
- 'XS-Test/Makefile.PL' => <<END,
-use ExtUtils::MakeMaker;
+my $XS_TEST = <<'END';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+MODULE = XS::Test PACKAGE = XS::Test
+PROTOTYPES: DISABLE
+int
+is_even(input)
+ int input
+ CODE:
+ RETVAL = (input % 2 == 0);
+ OUTPUT:
+ RETVAL
+END
+
+my $T_TEST = <<'END';
+#!/usr/bin/perl -w
+use Test::More tests => 3;
+use_ok "XS::Test";
+ok !is_even(1);
+ok is_even(2);
+END
+my $MAKEFILEPL = <<'END';
+use ExtUtils::MakeMaker;
WriteMakefile(
- NAME => 'XS::Test',
- VERSION_FROM => 'lib/XS/Test.pm',
- TYPEMAPS => [ '$typemap' ],
- PERL => "\$^X -w",
+ NAME => 'XS::%s',
+ VERSION_FROM => '%s',
+ TYPEMAPS => [ %s ],
+ PERL => "$^X -w",
+ %s
);
END
- "XS-Test/$typemap" => '',
+my $BS_TEST = '$DynaLoader::bscode = q(warn "BIG NOISE";)';
+
+my $T_BOOTSTRAP = <<'EOF';
+use Test::More tests => 1;
+my $w = '';
+$SIG{__WARN__} = sub { $w .= join '', @_; };
+require XS::Test;
+like $w, qr/NOISE/;
+EOF
- 'XS-Test/Test.xs' => <<'END',
+my $PM_OTHER = <<'END';
+package XS::Other;
+require Exporter;
+require DynaLoader;
+$VERSION = 1.20;
+@ISA = qw(Exporter DynaLoader);
+@EXPORT = qw(is_odd);
+bootstrap XS::Other $VERSION;
+1;
+END
+
+my $XS_OTHER = <<'END';
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
-
-MODULE = XS::Test PACKAGE = XS::Test
-
+MODULE = XS::Other PACKAGE = XS::Other
PROTOTYPES: DISABLE
-
int
-is_even(input)
+is_odd(input)
int input
CODE:
- RETVAL = (input % 2 == 0);
+ RETVAL = (INVAR % 2 == 1);
OUTPUT:
RETVAL
END
- 'XS-Test/t/is_even.t' => <<'END',
+my $T_OTHER = <<'END';
#!/usr/bin/perl -w
-
use Test::More tests => 3;
+use_ok "XS::Other";
+ok is_odd(1);
+ok !is_odd(2);
+END
+
+my $PLUS1_C = <<'EOF';
+#ifdef __cplusplus
+extern "C" {
+int plus1(int i)
+#else
+int plus1(i)
+int i;
+#endif
+{ return i + 1; }
+#ifdef __cplusplus
+}
+#endif
+EOF
+
+my %Files = (
+ 'lib/XS/Test.pm' => $PM_TEST,
+ $typemap => '',
+ 'Test.xs' => $XS_TEST,
+ 't/is_even.t' => $T_TEST,
+ 'Makefile.PL' => sprintf($MAKEFILEPL, 'Test', 'lib/XS/Test.pm', qq{'$typemap'}, ''),
+);
+
+my %label2files = (basic => \%Files);
+
+$label2files{bscode} = +{
+ %{ $label2files{'basic'} }, # make copy
+ 'Test_BS' => $BS_TEST,
+ 't/bs.t' => $T_BOOTSTRAP,
+};
+delete $label2files{bscode}->{'t/is_even.t'};
+
+$label2files{static} = +{
+ %{ $label2files{'basic'} }, # make copy
+ 'Makefile.PL' => sprintf(
+ $MAKEFILEPL, 'Test', 'lib/XS/Test.pm', qq{'$typemap'},
+ q{LINKTYPE => 'static'},
+ ),
+ "blib/arch/auto/share/dist/x-y/libwhatevs$MM->{LIB_EXT}" => 'hi there', # mimic what File::ShareDir can do
+ "blib/arch/auto/Alien/ROOT/root/lib/root/root$MM->{LIB_EXT}" => 'hi there', # mimic Alien::ROOT that installs a .a without extralibs.ld
+ # next two mimic dist that installs a .a WITH extralibs.ld but that is still not XS
+ "blib/arch/auto/Dist/File$MM->{LIB_EXT}" => 'hi there',
+ "blib/arch/auto/Dist/extralibs.ld" => '',
+};
+
+$label2files{subdirs} = +{
+ %{ $label2files{'basic'} }, # make copy
+ 'Makefile.PL' => sprintf(
+ $MAKEFILEPL, 'Test', 'Test.pm', qq{'$typemap'},
+ q{DEFINE => '-DINVAR=input', INC => "-Inewline\n", LIBS => "-Lnewline\n",},
+ ),
+ 'Other/Makefile.PL' => sprintf($MAKEFILEPL, 'Other', 'Other.pm', qq{}, ''),
+ 'Other/Other.pm' => $PM_OTHER,
+ 'Other/Other.xs' => $XS_OTHER,
+ 't/is_odd.t' => $T_OTHER,
+};
+virtual_rename('subdirs', 'lib/XS/Test.pm', 'Test.pm');
+# to mimic behaviour of Unicode-LineBreak version 2015.07.16
+$label2files{subdirscomplex} = +{
+ %{ $label2files{'subdirs'} }, # make copy
+ 'Other/Makefile.PL' => sprintf(
+ $MAKEFILEPL,
+ 'Other', 'Other.pm', qq{},
+ <<'EOF',
+C => [qw(lib$(DIRFILESEP)file.c)],
+OBJECT => 'lib$(DIRFILESEP)file$(OBJ_EXT)',
+EOF
+ ) . <<'EOF',
+sub MY::c_o {
+ package MY;
+ my $self = shift;
+ my $inherited = $self->SUPER::c_o(@_);
+ $inherited =~ s{(:\n\t)(.*(?:\n\t.*)*)}
+ { $1 . $self->cd('lib', split /(?<!\\)\n\t/, $2) }eg;
+ $inherited =~ s{(\s)(\$\*\.c\s)}
+ { "$1..\$(DIRFILESEP)$2" }eg;
+ $inherited;
+}
+
+sub MY::top_targets {
+ <<'SNIP';
+all :: lib$(DIRFILESEP)file$(OBJ_EXT)
+ $(NOECHO) $(NOOP)
+
+config ::
+ $(NOECHO) $(NOOP)
+
+pure_all ::
+ $(NOECHO) $(NOOP)
+SNIP
+}
+EOF
+ 'Other/lib/file.c' => $PLUS1_C,
+};
+delete $label2files{subdirscomplex}{'Other/Other.xs'};
+delete $label2files{subdirscomplex}{'t/is_odd.t'};
+
+$label2files{subdirsstatic} = +{
+ %{ $label2files{'subdirs'} }, # make copy
+ 'Makefile.PL' => sprintf(
+ $MAKEFILEPL, 'Test', 'Test.pm', qq{'$typemap'},
+ q{DEFINE => '-DINVAR=input', LINKTYPE => 'static',},
+ ),
+};
+
+# to mimic behaviour of CGI-Deurl-XS version 0.08
+my $OTHERMAKEFILE = File::Spec->catfile('Other', makefile_name());
+$label2files{subdirsskip} = +{
+ %{ $label2files{subdirscomplex} }, # make copy
+ 'Makefile.PL' => sprintf(
+ $MAKEFILEPL,
+ 'Test', 'Test.pm', qq{},
+ q[
+MYEXTLIB => '] . File::Spec->catfile('Other', 'libparser$(LIB_EXT)') . q[',
+ ]
+ )
+ . q[
+sub MY::postamble {
+ my ($self) = @_;
+ return '$(MYEXTLIB) : ] . $OTHERMAKEFILE . q['."\n\t".$self->cd('Other', '$(MAKE) $(PASSTHRU)')."\n";
+}
+ ],
+ 'Other/Makefile.PL' => sprintf(
+ $MAKEFILEPL,
+ 'Other', 'Other.pm', qq{},
+ <<'EOF',
+SKIP => [qw(all static dynamic )],
+clean => {'FILES' => 'libparser$(LIB_EXT)'},
+EOF
+ ) . <<'EOF',
+sub MY::top_targets {
+ my ($self) = @_;
+ my $static_lib_pure_cmd = $self->static_lib_pure_cmd('$(O_FILES)');
+ <<'SNIP' . $static_lib_pure_cmd;
+all :: static
+
+pure_all :: static
+
+static :: libparser$(LIB_EXT)
+
+libparser$(LIB_EXT): $(O_FILES)
+SNIP
+}
+EOF
+ 't/plus1.t' => <<'END',
+#!/usr/bin/perl -w
+use Test::More tests => 2;
use_ok "XS::Test";
-ok !is_even(1);
-ok is_even(2);
+is XS::Test::plus1(3), 4;
END
- );
+ 'Test.xs' => <<EOF,
+#ifdef __cplusplus
+extern "C" {
+#endif
+int plus1(int);
+#ifdef __cplusplus
+}
+#endif
+$XS_TEST
+int
+plus1(input)
+ int input
+ CODE:
+ RETVAL = plus1(input);
+ OUTPUT:
+ RETVAL
+EOF
+};
+virtual_rename('subdirsskip', 'Other/lib/file.c', 'Other/file.c');
+
+my $XS_MULTI = $XS_OTHER;
+# check compiling from top dir still can include local
+$XS_MULTI =~ s:(#include "XSUB.h"):$1\n#include "header.h":;
+$label2files{multi} = +{
+ %{ $label2files{'basic'} }, # make copy
+ 'Makefile.PL' => sprintf(
+ $MAKEFILEPL, 'Test', 'lib/XS/Test.pm', qq{'lib/XS/$typemap'},
+ q{XSMULTI => 1,},
+ ),
+ 'lib/XS/Other.pm' => $PM_OTHER,
+ 'lib/XS/Other.xs' => $XS_MULTI,
+ 't/is_odd.t' => $T_OTHER,
+ 'lib/XS/header.h' => "#define INVAR input\n",
+};
+virtual_rename('multi', $typemap, "lib/XS/$typemap");
+virtual_rename('multi', 'Test.xs', 'lib/XS/Test.xs');
+
+$label2files{bscodemulti} = +{
+ %{ $label2files{'multi'} }, # make copy
+ 'lib/XS/Test_BS' => $BS_TEST,
+ 't/bs.t' => $T_BOOTSTRAP,
+};
+delete $label2files{bscodemulti}->{'t/is_even.t'};
+delete $label2files{bscodemulti}->{'t/is_odd.t'};
+$label2files{staticmulti} = +{
+ %{ $label2files{'multi'} }, # make copy
+ 'Makefile.PL' => sprintf(
+ $MAKEFILEPL, 'Test', 'lib/XS/Test.pm', qq{'$typemap'},
+ q{LINKTYPE => 'static', XSMULTI => 1,},
+ ),
+};
+
+$label2files{xsbuild} = +{
+ %{ $label2files{'multi'} }, # make copy
+ 'Makefile.PL' => sprintf(
+ $MAKEFILEPL, 'Test', 'lib/XS/Test.pm', qq{'$typemap'},
+ q{
+ XSMULTI => 1,
+ XSBUILD => {
+ xs => {
+ 'lib/XS/Other' => {
+ DEFINE => '-DINVAR=input',
+ OBJECT => 'lib/XS/Other$(OBJ_EXT) lib/XS/plus1$(OBJ_EXT)'
+ }
+ },
+ },
+ },
+ ),
+
+ 'lib/XS/Other.xs' => <<EOF,
+#ifdef __cplusplus
+extern "C" {
+#endif
+int plus1(int);
+#ifdef __cplusplus
+}
+#endif
+$XS_OTHER
+int
+plus1(input)
+ int input
+ CODE:
+ RETVAL = plus1(INVAR);
+ OUTPUT:
+ RETVAL
+EOF
+
+ 'lib/XS/plus1.c' => $PLUS1_C,
+
+ 't/is_odd.t' => <<'END',
+#!/usr/bin/perl -w
+use Test::More tests => 4;
+use_ok "XS::Other";
+ok is_odd(1);
+ok !is_odd(2);
+is XS::Other::plus1(3), 4;
+END
+
+};
+
+sub virtual_rename {
+ my ($label, $oldfile, $newfile) = @_;
+ $label2files{$label}->{$newfile} = delete $label2files{$label}->{$oldfile};
+}
sub setup_xs {
+ my ($label, $sublabel) = @_;
+ croak "Must supply label" unless defined $label;
+ my $files = $label2files{$label};
+ croak "Must supply valid label" unless defined $files;
+ croak "Must supply sublabel" unless defined $sublabel;
+ my $prefix = "XS-Test$label$sublabel";
+ hash2files($prefix, $files);
+ return $prefix;
+}
- while(my($file, $text) = each %Files) {
- # Convert to a relative, native file path.
- $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
+sub list_static {
+ (
+ ( !$Config{usedl} ? [ 'basic', '', '' ] : ()), # still needs testing on static perl
+ [ 'static', '', '' ],
+ [ 'basic', ' static', '_static' ],
+ [ 'multi', ' static', '_static' ],
+ [ 'subdirs', ' LINKTYPE=static', ' LINKTYPE=static' ],
+ [ 'subdirsstatic', '', '' ],
+ [ 'staticmulti', '', '' ],
+ );
+}
+
+sub list_dynamic {
+ (
+ [ 'basic', '', '' ],
+ $^O ne 'MSWin32' ? (
+ [ 'bscode', '', '' ],
+ [ 'bscodemulti', '', '' ],
+ $^O !~ m!^(VMS|aix)$! ? ([ 'subdirscomplex', '', '' ]) : (),
+ ) : (), # DynaLoader different
+ [ 'subdirs', '', '' ],
+ [ 'subdirsstatic', ' LINKTYPE=dynamic', ' LINKTYPE=dynamic' ],
+ [ 'subdirsstatic', ' dynamic', '_dynamic' ],
+ [ 'multi', '', '' ],
+ [ 'staticmulti', ' LINKTYPE=dynamic', ' LINKTYPE=dynamic' ],
+ [ 'staticmulti', ' dynamic', '_dynamic' ],
+ [ 'xsbuild', '', '' ],
+ [ 'subdirsskip', '', '' ],
+ );
+}
- my $dir = dirname($file);
- mkpath $dir;
- open(FILE, ">$file") || die "Can't create $file: $!";
- print FILE $text;
- close FILE;
+sub run_tests {
+ my ($perl, $label, $add_target, $add_testtarget) = @_;
+ my $sublabel = $add_target;
+ $sublabel =~ s#[\s=]##g;
+ ok( my $dir = setup_xs($label, $sublabel), "setup $label$sublabel" );
+
+ ok( chdir($dir), "chdir'd to $dir" ) || diag("chdir failed: $!");
+
+ my @mpl_out = run(qq{$perl Makefile.PL});
+ SKIP: {
+ unless (cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' )) {
+ diag(@mpl_out);
+ skip 'perl Makefile.PL failed', 2;
}
- return 1;
-}
+ my $make = make_run();
+ my $target = '';
+ my %macros = ();
+ if (defined($add_target)) {
+ if ($add_target =~ m/(\S+)=(\S+)/) {
+ $macros{$1} = $2;
+ }
+ else {
+ $target = $add_target;
+ }
+ }
+ my $make_cmd = make_macro($make, $target, %macros);
+ my $make_out = run($make_cmd);
+ unless (is( $?, 0, "$make_cmd exited normally" )) {
+ diag $make_out;
+ skip 'Make failed - skipping test', 1;
+ }
-sub teardown_xs {
- foreach my $file (keys %Files) {
- my $dir = dirname($file);
- if( -e $dir ) {
- rmtree($dir) || return;
+ $target = 'test';
+ %macros = ();
+ if (defined($add_testtarget) && length($add_testtarget)) {
+ if ($add_testtarget =~ m/(\S+)=(\S+)/) {
+ $macros{$1} = $2;
+ }
+ else {
+ # an underscore prefix means combine, e.g. 'test' + '_dynamic'
+ unless ($add_testtarget =~ m/^_/) {
+ $target .= ($make =~ m/^MM(K|S)/i) ? ',' : ' ';
+ }
+ $target .= $add_testtarget;
}
}
- return 1;
+ my $test_cmd = make_macro($make, $target, %macros);
+ my $test_out = run($test_cmd);
+ is( $?, 0, "$test_cmd exited normally" ) || diag "$make_out\n$test_out";
+ }
+
+ chdir File::Spec->updir or die;
+ if ($ENV{EUMM_KEEP_TESTDIRS}) {
+ ok 1, "don't teardown $dir";
+ } else {
+ ok rmtree($dir), "teardown $dir";
+ }
}
1;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm
index 16d668895ee..ce73b30b777 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm
@@ -3,6 +3,10 @@ package MakeMaker::Test::Utils;
use File::Spec;
use strict;
use Config;
+use Cwd qw(getcwd);
+use Carp qw(croak);
+use File::Path;
+use File::Basename;
require Exporter;
our @ISA = qw(Exporter);
@@ -16,6 +20,8 @@ our @EXPORT = qw(which_perl perl_lib makefile_name makefile_backup
have_compiler slurp
$Is_VMS $Is_MacOS
run_ok
+ hash2files
+ in_dir
);
@@ -155,6 +161,9 @@ Sets up environment variables so perl can find its libraries.
my $old5lib = $ENV{PERL5LIB};
my $had5lib = exists $ENV{PERL5LIB};
sub perl_lib {
+ my $basecwd = (File::Spec->splitdir(getcwd))[-1];
+ croak "Basename of cwd needs to be 't' but is '$basecwd'\n"
+ unless $basecwd eq 't';
# perl-src/t/
my $lib = $ENV{PERL_CORE} ? qq{../lib}
# ExtUtils-MakeMaker/t/
@@ -255,14 +264,18 @@ sub make_macro {
my $is_mms = $make =~ /^MM(K|S)/i;
- my $cmd = $make;
- my $macros = '';
+ my @macros;
while( my($key,$val) = splice(@_, 0, 2) ) {
- if( $is_mms ) {
- $macros .= qq{/macro="$key=$val"};
+ push @macros, qq{$key=$val};
+ }
+ my $macros = '';
+ if (scalar(@macros)) {
+ if ($is_mms) {
+ map { $_ = qq{"$_"} } @macros;
+ $macros = '/MACRO=(' . join(',', @macros) . ')';
}
else {
- $macros .= qq{ $key=$val};
+ $macros = join(' ', @macros);
}
}
@@ -280,11 +293,12 @@ touched.
=cut
sub calibrate_mtime {
- open(FILE, ">calibrate_mtime.tmp") || die $!;
+ my $file = "calibrate_mtime-$$.tmp";
+ open(FILE, ">$file") || die $!;
print FILE "foo";
close FILE;
- my($mtime) = (stat('calibrate_mtime.tmp'))[9];
- unlink 'calibrate_mtime.tmp';
+ my($mtime) = (stat($file))[9];
+ unlink $file;
return $mtime;
}
@@ -345,23 +359,11 @@ Returns true if there is a compiler available for XS builds.
sub have_compiler {
my $have_compiler = 0;
-
- # ExtUtils::CBuilder prints its compilation lines to the screen.
- # Shut it up.
- use TieOut;
- local *STDOUT = *STDOUT;
- local *STDERR = *STDERR;
-
- tie *STDOUT, 'TieOut';
- tie *STDERR, 'TieOut';
-
eval {
- require ExtUtils::CBuilder;
- my $cb = ExtUtils::CBuilder->new;
-
- $have_compiler = $cb->have_compiler;
+ require ExtUtils::CBuilder;
+ my $cb = ExtUtils::CBuilder->new(quiet=>1);
+ $have_compiler = $cb->have_compiler;
};
-
return $have_compiler;
}
@@ -386,6 +388,72 @@ sub slurp {
return $text;
}
+=item hash2files
+
+ hash2files('dirname', { 'filename' => 'some content' });
+
+Goes through given hash-ref, treating each key as a /-separated filename
+under the specified directory, and writing the value into it. Will create
+any necessary directories.
+
+Will die if errors occur.
+
+=cut
+
+sub hash2files {
+ my ($prefix, $hashref) = @_;
+ while(my ($file, $text) = each %$hashref) {
+ # Convert to a relative, native file path.
+ $file = File::Spec->catfile(File::Spec->curdir, $prefix, split m{\/}, $file);
+ my $dir = dirname($file);
+ mkpath $dir;
+ my $utf8 = ($] < 5.008 or !$Config{useperlio}) ? "" : ":utf8";
+ open(FILE, ">$utf8", $file) || die "Can't create $file: $!";
+ print FILE $text;
+ close FILE;
+ # ensure file at least 1 second old for makes that assume
+ # files with the same time are out of date.
+ my $time = calibrate_mtime();
+ utime $time, $time - 1, $file;
+ }
+}
+
+=item in_dir
+
+ $retval = in_dir(\&coderef);
+ $retval = in_dir(\&coderef, $specified_dir);
+ $retval = in_dir { somecode(); };
+ $retval = in_dir { somecode(); } $specified_dir;
+
+Does a C<chdir> to either a directory. If none is specified, one is
+created with L<File::Temp> and then automatically deleted after. It ends
+by C<chdir>ing back to where it started.
+
+If the given code throws an exception, it will be re-thrown after the
+re-C<chdir>.
+
+Returns the return value of the given code.
+
+=cut
+
+sub in_dir(&;$) {
+ my $code = shift;
+ require File::Temp;
+ my $dir = shift || File::Temp::tempdir(TMPDIR => 1, CLEANUP => 1);
+ # chdir to the new directory
+ my $orig_dir = getcwd();
+ chdir $dir or die "Can't chdir to $dir: $!";
+ # Run the code, but trap the error so we can chdir back
+ my $return;
+ my $ok = eval { $return = $code->(); 1; };
+ my $err = $@;
+ # chdir back
+ chdir $orig_dir or die "Can't chdir to $orig_dir: $!";
+ # rethrow if necessary
+ die $err unless $ok;
+ return $return;
+}
+
=back
=head1 AUTHOR
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/meta_convert.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/meta_convert.t
index 7053c331259..c99926dfad0 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/meta_convert.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/meta_convert.t
@@ -1,127 +1,108 @@
-BEGIN {
- chdir '..' if -d '../t';
- unshift @INC, 't/lib';
- use lib 'lib';
-}
+#!perl -w
use strict;
use warnings;
-use Test::More 'no_plan';
+BEGIN { unshift @INC, 't/lib'; }
+use Test::More eval { require CPAN::Meta; CPAN::Meta->VERSION(2.143240) } ? ()
+ : (skip_all => 'CPAN::Meta 2.143240 required for this test');
+use File::Temp qw[tempdir];
require ExtUtils::MM_Any;
-sub ExtUtils::MM_Any::quote_literal { $_[1] }
-
-my $new_mm = sub {
- return bless { ARGS => {@_}, @_ }, 'ExtUtils::MM_Any';
-};
+my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
+chdir $tmpdir or die "chdir $tmpdir: $!";
+
+my $EMPTY = qr/['"]?version['"]?\s*:\s*['"]['"]/;
+my @DATA = (
+ [
+ [ DISTNAME => 'Net::FTP::Recursive', VERSION => 'Recursive.pm', ],
+ qr{Can't parse version 'Recursive.pm'},
+ 'VERSION => filename',
+ $EMPTY,
+ ],
+ [
+ [ DISTNAME => 'Image::Imgur', VERSION => 'undef', ],
+ qr{Can't parse version 'undef'},
+ 'no $VERSION in file -> VERSION=>"undef"',
+ $EMPTY,
+ ],
+ [
+ [ DISTNAME => 'SQL::Library', VERSION => 0.0.3, ],
+ qr{Can't parse version '\x00\x00\x03'},
+ "x.y.z version",
+ $EMPTY,
+ ],
+ [
+ [ DISTNAME => 'Array::Suffix', VERSION => '.5', ],
+ qr{Can't parse version '.5'},
+ ".5 version",
+ $EMPTY,
+ ],
+ [
+ [
+ DISTNAME => 'Attribute::Signature',
+ META_MERGE => {
+ resources => {
+ repository => 'http://github.com/chorny/Attribute-Signature',
+ 'Repository-clone' => 'git://github.com/chorny/Attribute-Signature.git',
+ },
+ },
+ ],
+ qr/^$/,
+ "Non-camel case metadata",
+ qr/x_Repositoryclone/,
+ ],
+ [
+ [
+ DISTNAME => 'CPAN::Testers::ParseReport',
+ VERSION => '2.34',
+ META_ADD => {
+ provides => {
+ "CPAN::Testers::ParseReport" => {
+ version => version->new("v1.2.3"),
+ file => "lib/CPAN/Testers/ParseReport.pm"
+ }
+ }
+ },
+ ],
+ qr/^$/,
+ "version object in provides",
+ qr/['"]?version['"]?\s*:\s*['"]v1\.2\.3['"]/,
+ ],
+ [
+ [
+ DISTNAME => 'Bad::License',
+ VERSION => '2.34',
+ LICENSE => 'death and retribution',
+ ],
+ qr/Invalid LICENSE value/,
+ "Bad licence warns",
+ qr/['"]?version['"]?\s*:\s*['"]2\.34['"]/,
+ ],
+);
+
+plan tests => 3 * @DATA;
+run_test(@$_) for @DATA;
-my $warn_ok = sub {
- my($code, $want, $name) = @_;
+sub ExtUtils::MM_Any::quote_literal { $_[1] }
- my @have;
+sub run_test {
+ my ($mmargs, $expected, $label, $metadata_re) = @_;
+ my $mm = bless { ARGS => {@$mmargs}, @$mmargs }, 'ExtUtils::MM_Any';
+ my @warnings;
my $ret;
{
- local $SIG{__WARN__} = sub { push @have, @_ };
- $ret = $code->();
+ local $SIG{__WARN__} = sub { push @warnings, @_ };
+ eval { $ret = $mm->metafile_target; };
+ }
+ SKIP: {
+ if ($@) {
+ diag $@;
+ skip "$label got exception", 3 if $@;
+ }
+ ok 1, "$label metafile_target";
+ like join("", @warnings), $expected, "$label right warning";
+ like $ret, $metadata_re, "$label metadata";
}
-
- like join("", @have), $want, $name;
- return $ret;
-};
-
-my $version_regex = qr/version: ''/;
-my $version_action = "they're converted to empty string";
-
-
-note "Filename as version"; {
- my $mm = $new_mm->(
- DISTNAME => 'Net::FTP::Recursive',
- VERSION => 'Recursive.pm',
- );
-
- my $res = $warn_ok->(
- sub { eval { $mm->metafile_target } },
- qr{Can't parse version 'Recursive.pm'}
- );
- ok $res, 'we know how to deal with bogus versions defined in Makefile.PL';
- like $res, $version_regex, $version_action;
-}
-
-
-note "'undef' version from parse_version"; {
- my $mm = $new_mm->(
- DISTNAME => 'Image::Imgur',
- VERSION => 'undef',
- );
- my $res = $warn_ok->(
- sub { eval { $mm->metafile_target } },
- qr{Can't parse version 'undef'}
- );
- ok $res, q|when there's no $VERSION in Module.pm, $self->{VERSION} = 'undef'; via MM_Unix::parse_version and we know how to deal with that|;
- like $res, $version_regex, $version_action;
-}
-
-
-note "x.y.z version"; {
- my $mm = $new_mm->(
- DISTNAME => 'SQL::Library',
- VERSION => 0.0.3,
- );
-
- # It would be more useful if the warning got translated to visible characters
- my $res = $warn_ok->(
- sub { eval { $mm->metafile_target } },
- qr{Can't parse version '\x00\x00\x03'}
- );
- ok $res, q|we know how to deal with our $VERSION = 0.0.3; style versions defined in the module|;
- like $res, $version_regex, $version_action;
-}
-
-
-note ".5 version"; {
- my $mm = $new_mm->(
- DISTNAME => 'Array::Suffix',
- VERSION => '.5',
- );
- my $res = $warn_ok->(
- sub { eval { $mm->metafile_target } },
- qr{Can't parse version '.5'}
- );
- ok $res, q|we know how to deal with our $VERSION = '.5'; style versions defined in the module|;
- like $res, $version_regex, $version_action;
-}
-
-
-note "Non-camel case metadata"; {
- my $mm = $new_mm->(
- DISTNAME => 'Attribute::Signature',
- META_MERGE => {
- resources => {
- repository => 'http://github.com/chorny/Attribute-Signature',
- 'Repository-clone' => 'git://github.com/chorny/Attribute-Signature.git',
- },
- },
- );
- my $res = eval { $mm->metafile_target };
- ok $res, q|we know how to deal with non-camel-cased custom meta resource keys defined in Makefile.PL|;
- like $res, qr/x_Repositoryclone/, "they're camel-cased";
-}
-
-
-note "version object in provides"; {
- my $mm = $new_mm->(
- DISTNAME => 'CPAN::Testers::ParseReport',
- VERSION => '2.34',
- META_ADD => {
- provides => {
- "CPAN::Testers::ParseReport" => {
- version => version->new("v1.2.3"),
- file => "lib/CPAN/Testers/ParseReport.pm"
- }
- }
- },
- );
- my $res = eval { $mm->metafile_target };
- like $res, qr{version: \s* v1.2.3}x;
}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
index c5d78d6700c..8c8f801d0eb 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
@@ -8,22 +8,52 @@ BEGIN {
}
use strict;
+use warnings;
use TieOut;
use MakeMaker::Test::Utils;
-use MakeMaker::Test::Setup::MPV;
use Config;
-use Test::More;
use ExtUtils::MM;
-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+use Test::More
+ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
- : (tests => 36);
+ : (tests => 35);
use File::Path;
use ExtUtils::MakeMaker;
+my $CM = eval { require CPAN::Meta; };
+
+my $DIRNAME = 'Min-PerlVers';
+my %FILES = (
+ 'Makefile.PL' => <<'END',
+use ExtUtils::MakeMaker;
+WriteMakefile(
+ NAME => 'Min::PerlVers',
+ AUTHOR => 'John Doe <jd@example.com>',
+ VERSION_FROM => 'lib/Min/PerlVers.pm',
+ PREREQ_PM => { strict => 0 },
+ MIN_PERL_VERSION => '5.005',
+);
+END
+
+ 'lib/Min/PerlVers.pm' => <<'END',
+package Min::PerlVers;
+$VERSION = 0.05;
+
+=head1 NAME
+
+Min::PerlVers - being picky about perl versions
+
+=cut
+
+1;
+END
+
+);
# avoid environment variables interfering with our make runs
-delete @ENV{qw(LIB MAKEFLAGS)};
+delete @ENV{qw(PERL_JSON_BACKEND CPAN_META_JSON_BACKEND PERL_YAML_BACKEND)} if $ENV{PERL_CORE};
+delete @ENV{qw(LIB MAKEFLAGS PERL_CORE)};
my $perl = which_perl();
my $make = make_run();
@@ -33,10 +63,10 @@ chdir 't';
perl_lib();
-ok( setup_recurs(), 'setup' );
+hash2files($DIRNAME, \%FILES);
END {
ok( chdir(File::Spec->updir), 'leaving dir' );
- ok( teardown_recurs(), 'teardown' );
+ ok( rmtree($DIRNAME), 'teardown' );
}
ok( chdir 'Min-PerlVers', 'entering dir Min-PerlVers' ) ||
@@ -138,6 +168,7 @@ END
note "PREREQ_PRINT output"; {
my $prereq_out = run(qq{$perl Makefile.PL "PREREQ_PRINT=1"});
is( $?, 0, 'PREREQ_PRINT exiting normally' );
+ $prereq_out =~ s/.*(\$PREREQ_PM\s*=)/$1/s; # strip off errors eg from chcp
my $prereq_out_sane = $prereq_out =~ /^\s*\$PREREQ_PM\s*=/;
ok( $prereq_out_sane, ' and talking like we expect' ) ||
diag($prereq_out);
@@ -147,6 +178,7 @@ note "PREREQ_PRINT output"; {
package _Prereq::Print::WithMPV; ## no critic
our($PREREQ_PM, $BUILD_REQUIRES, $MIN_PERL_VERSION, $ERR);
+ $BUILD_REQUIRES = undef; # suppress "used only once"
$ERR = '';
eval {
eval $prereq_out; ## no critic
@@ -164,7 +196,7 @@ note "PRINT_PREREQ output"; {
is( $?, 0, 'PRINT_PREREQ exiting normally' );
ok( $prereq_out !~ /^warning/i, ' and not complaining loudly' );
like( $prereq_out,
- qr/^perl\(perl\) \s* >= 5\.005 \s+ perl\(strict\) \s* >= \s* 0 \s*$/x,
+ qr/^perl\(perl\) \s* >= 5\.005 \s+ perl\(strict\) \s* >= \s* 0 \s*$/mx,
'dump has prereqs and perl version' );
}
@@ -194,14 +226,15 @@ note "ppd output"; {
}
-note "META.yml output"; {
+note "META.yml output"; SKIP: {
+ skip 'Failed to load CPAN::Meta', 4 unless $CM;
my $distdir = 'Min-PerlVers-0.05';
$distdir =~ s{\.}{_}g if $Is_VMS;
my $meta_yml = "$distdir/META.yml";
my $meta_json = "$distdir/META.json";
my @make_out = run(qq{$make metafile});
- END { rmtree $distdir }
+ END { rmtree $distdir if defined $distdir }
for my $case (
['META.yml', $meta_yml],
@@ -219,4 +252,3 @@ note "META.yml output"; {
);
}
}
-
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t
index 5f5f120bd37..2dbd064c035 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/parse_version.t
@@ -23,7 +23,7 @@ my %versions = (q[$VERSION = '1.00'] => '1.00',
'$VERSION = undef' => 'undef',
'$wibble = 1.0' => undef,
q[my $VERSION = '1.01'] => 'undef',
- q[local $VERISON = '1.02'] => 'undef',
+ q[local $VERSION = '1.02'] => 'undef',
q[local $FOO::VERSION = '1.30'] => 'undef',
q[if( $Foo::VERSION >= 3.00 ) {]=> 'undef',
q[our $VERSION = '1.23';] => '1.23',
@@ -81,6 +81,35 @@ our $VERSION = 2.34;
END
}
+if( $] >= 5.014 ) {
+ $versions{'package Foo 1.23 { }' } = '1.23';
+ $versions{'package Foo::Bar 1.23 { }' } = '1.23';
+ $versions{'package Foo v1.2.3 { }' } = 'v1.2.3';
+ $versions{'package Foo::Bar v1.2.3 { }' } = 'v1.2.3';
+ $versions{' package Foo::Bar 1.23 { }' } = '1.23';
+ $versions{"package Foo'Bar 1.23 { }" } = '1.23';
+ $versions{"package Foo::Bar 1.2.3 { }" } = '1.2.3';
+ $versions{'package Foo 1.230 { }' } = '1.230';
+ $versions{'package Foo 1.23_01 { }' } = '1.23_01';
+ $versions{'package Foo v1.23_01 { }' } = 'v1.23_01';
+ $versions{<<'END'} = '1.23';
+package Foo 1.23 {
+our $VERSION = 2.34;
+}
+END
+
+ $versions{<<'END'} = '2.34';
+our $VERSION = 2.34;
+package Foo 1.23 { }
+END
+
+ $versions{<<'END'} = '2.34';
+package Foo::100 {
+our $VERSION = 2.34;
+}
+END
+}
+
if ( $] > 5.009 && $] < 5.012 ) {
delete $versions{'$VERSION = -1.0'};
}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t
index 849393ca0d4..ebf5f943b3d 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t
@@ -12,9 +12,9 @@ use ExtUtils::MakeMaker;
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::BFD;
use Config;
-use Test::More;
use ExtUtils::MM;
-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+use Test::More
+ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
: 'no_plan';
@@ -26,10 +26,12 @@ local $ENV{PERL_INSTALL_QUIET};
# Setup our test environment
{
- my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
- chdir $tmpdir;
+ chdir 't';
+ perl_lib; # sets $ENV{PERL5LIB} relative to t/
- perl_lib;
+ my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+ use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
+ chdir $tmpdir;
ok( setup_recurs(), 'setup' );
END {
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/postamble.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/postamble.t
index dbdea951054..a20df132d5d 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/postamble.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/postamble.t
@@ -14,10 +14,13 @@ use MakeMaker::Test::Setup::BFD;
use ExtUtils::MakeMaker;
use TieOut;
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
+
use File::Temp qw[tempdir];
-my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
chdir $tmpdir;
-perl_lib;
$| = 1;
my $Makefile = makefile_name;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/prereq.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/prereq.t
index 1a25e98c5c4..a01ff2bbae8 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/prereq.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/prereq.t
@@ -9,7 +9,7 @@ BEGIN {
use strict;
use Config;
-use Test::More tests => 16;
+use Test::More tests => 21;
use File::Temp qw[tempdir];
use TieOut;
@@ -18,14 +18,16 @@ use MakeMaker::Test::Setup::BFD;
use ExtUtils::MakeMaker;
-my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
-chdir $tmpdir;
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
-perl_lib();
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
+chdir $tmpdir;
ok( setup_recurs(), 'setup' );
END {
- ok( chdir File::Spec->updir );
+ ok( chdir File::Spec->updir, 'chdir updir' );
ok( teardown_recurs(), 'teardown' );
}
@@ -33,7 +35,7 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
diag("chdir failed: $!");
{
- ok( my $stdout = tie *STDOUT, 'TieOut' );
+ ok my $stdout = tie(*STDOUT, 'TieOut'), 'tie STDOUT';
my $warnings = '';
local $SIG{__WARN__} = sub {
if ( $Config{usecrosscompile} ) {
@@ -52,7 +54,20 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
strict => 0
}
);
- is $warnings, '';
+ is $warnings, '', 'basic prereq';
+
+ SKIP: {
+ skip 'No CMR, no version ranges', 1
+ unless ExtUtils::MakeMaker::_has_cpan_meta_requirements;
+ $warnings = '';
+ WriteMakefile(
+ NAME => 'Big::Dummy',
+ PREREQ_PM => {
+ strict => '>= 0, <= 99999',
+ }
+ );
+ is $warnings, '', 'version range';
+ }
$warnings = '';
WriteMakefile(
@@ -63,7 +78,7 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
);
is $warnings,
sprintf("Warning: prerequisite strict 99999 not found. We have %s.\n",
- $strict::VERSION);
+ $strict::VERSION), 'strict 99999';
$warnings = '';
WriteMakefile(
@@ -73,7 +88,27 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
}
);
is $warnings,
- "Warning: prerequisite I::Do::Not::Exist 0 not found.\n";
+ "Warning: prerequisite I::Do::Not::Exist 0 not found.\n", 'non-exist prereq';
+
+ $warnings = '';
+ WriteMakefile(
+ NAME => 'Big::Dummy',
+ CONFIGURE_REQUIRES => {
+ "I::Do::Not::Configure" => 0,
+ }
+ );
+ is $warnings,
+ "Warning: prerequisite I::Do::Not::Configure 0 not found.\n", 'non-exist prereq';
+
+ $warnings = '';
+ WriteMakefile(
+ NAME => 'Big::Dummy',
+ TEST_REQUIRES => {
+ "I::Do::Not::Test" => 0,
+ }
+ );
+ is $warnings,
+ "Warning: prerequisite I::Do::Not::Test 0 not found.\n", 'non-exist prereq';
$warnings = '';
@@ -84,9 +119,9 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
}
);
my @warnings = split /\n/, $warnings;
- is @warnings, 2;
- like $warnings[0], qr{^Unparsable version '' for prerequisite I::Do::Not::Exist\b};
- is $warnings[1], "Warning: prerequisite I::Do::Not::Exist 0 not found.";
+ is @warnings, 2, '2 warnings';
+ like $warnings[0], qr{^Undefined requirement for I::Do::Not::Exist\b}, 'undef version warning';
+ is $warnings[1], "Warning: prerequisite I::Do::Not::Exist 0 not found.", 'not found warning';
$warnings = '';
@@ -100,7 +135,7 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
is $warnings,
"Warning: prerequisite I::Do::Not::Exist 0 not found.\n".
sprintf("Warning: prerequisite strict 99999 not found. We have %s.\n",
- $strict::VERSION);
+ $strict::VERSION), '2 bad prereq warnings';
$warnings = '';
eval {
@@ -115,7 +150,7 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
);
};
- is $warnings, '';
+ is $warnings, '', 'no warnings on PREREQ_FATAL';
is $@, <<'END', "PREREQ_FATAL";
MakeMaker FATAL: prerequisites not found.
I::Do::Not::Exist not installed
@@ -140,7 +175,7 @@ END
);
};
- is $warnings, '';
+ is $warnings, '', 'CONFIGURE sub non-exist req no warn';
is $@, <<'END', "PREREQ_FATAL happens before CONFIGURE";
MakeMaker FATAL: prerequisites not found.
I::Do::Not::Exist not installed
@@ -148,4 +183,17 @@ MakeMaker FATAL: prerequisites not found.
Please install these modules first and rerun 'perl Makefile.PL'.
END
+
+ $warnings = '';
+ @ARGV = 'PREREQ_FATAL=1';
+ eval {
+ WriteMakefile(
+ NAME => 'Big::Dummy',
+ PREREQ_PM => { "I::Do::Not::Exist" => 0, },
+ );
+ };
+ is $warnings, "Warning: prerequisite I::Do::Not::Exist 0 not found.\n",
+ 'CLI PREREQ_FATAL warns';
+ isnt $@, '', "CLI PREREQ_FATAL works";
+
}
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/recurs.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/recurs.t
index 6f1c0936d28..f69e6a1ff9e 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/recurs.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/recurs.t
@@ -7,42 +7,60 @@ BEGIN {
}
use strict;
-use Config;
-
-use File::Temp qw[tempdir];
-
+use warnings;
use MakeMaker::Test::Utils;
-use MakeMaker::Test::Setup::Recurs;
use Config;
-use Test::More;
use ExtUtils::MM;
-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+use Test::More
+ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
- : (tests => 26);
+ : (tests => 28);
+use File::Temp qw[tempdir];
+use File::Path;
# 'make disttest' sets a bunch of environment variables which interfere
# with our testing.
delete @ENV{qw(PREFIX LIB MAKEFLAGS)};
-my $perl = which_perl();
-my $Is_VMS = $^O eq 'VMS';
+my $DIRNAME = 'Recurs';
+my $BASICMPL = <<'END';
+use ExtUtils::MakeMaker;
+WriteMakefile(NAME => 'Recurs', VERSION => 1.00);
+END
+my %FILES = (
+ 'Makefile.PL' => $BASICMPL,
+
+ 'prj2/Makefile.PL' => <<'END',
+use ExtUtils::MakeMaker;
+WriteMakefile(NAME => 'Recurs::prj2', VERSION => 1.00);
+END
+
+ # Check if a test failure in a subdir causes make test to fail
+ 'prj2/t/fail.t' => <<'END',
+#!/usr/bin/perl -w
+print "1..1\n";
+print "not ok 1\n";
+END
+);
-my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
-chdir $tmpdir;
+my $perl = which_perl();
-perl_lib;
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
-my $Touch_Time = calibrate_mtime();
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
+chdir $tmpdir;
$| = 1;
-ok( setup_recurs(), 'setup' );
+hash2files($DIRNAME, \%FILES);
END {
ok( chdir File::Spec->updir );
- ok( teardown_recurs(), 'teardown' );
+ ok( rmtree($DIRNAME), 'teardown' );
}
-ok( chdir('Recurs'), q{chdir'd to Recurs} ) ||
+ok( chdir($DIRNAME), q{chdir'd to Recurs} ) ||
diag("chdir failed: $!");
@@ -63,9 +81,9 @@ my $make_out = run("$make");
is( $?, 0, 'recursive make exited normally' ) || diag $make_out;
ok( chdir File::Spec->updir );
-ok( teardown_recurs(), 'cleaning out recurs' );
-ok( setup_recurs(), ' setting up fresh copy' );
-ok( chdir('Recurs'), q{chdir'd to Recurs} ) ||
+ok( rmtree($DIRNAME), 'cleaning out recurs' );
+hash2files($DIRNAME, \%FILES);
+ok( chdir($DIRNAME), q{chdir'd to Recurs} ) ||
diag("chdir failed: $!");
@@ -87,9 +105,9 @@ is( $?, 0, 'recursive make exited normally' );
ok( chdir File::Spec->updir );
-ok( teardown_recurs(), 'cleaning out recurs' );
-ok( setup_recurs(), ' setting up fresh copy' );
-ok( chdir('Recurs'), q{chdir'd to Recurs} ) ||
+ok( rmtree($DIRNAME), 'cleaning out recurs' );
+hash2files($DIRNAME, \%FILES);
+ok( chdir($DIRNAME), q{chdir'd to Recurs} ) ||
diag("chdir failed: $!");
@@ -122,3 +140,43 @@ close MAKEFILE;
my $test_out = run("$make test");
isnt $?, 0, 'test failure in a subdir causes make to fail';
}
+
+# test override of top_targets in sub-M.PL with no pure_nolink doesn't break
+ok( chdir File::Spec->updir );
+ok( rmtree($DIRNAME), 'cleaning out recurs' );
+hash2files($DIRNAME, {
+ 'Makefile.PL' => $BASICMPL,
+
+ 'subdir/Makefile.PL' => <<'EOF',
+use ExtUtils::MakeMaker;
+WriteMakefile(
+ NAME => 'Recurs::subdir',
+ SKIP => [qw(all static static_lib dynamic dynamic_lib)],
+);
+
+sub MY::top_targets {'
+all :: static
+
+pure_all :: static
+
+static :: libfcrypt$(LIB_EXT)
+
+libfcrypt$(LIB_EXT) :
+ $(TOUCH) libfcrypt$(LIB_EXT)
+
+dynamic :
+ $(NOOP)
+';
+}
+EOF
+
+});
+ok( chdir($DIRNAME), q{chdir'd to Recurs} ) ||
+ diag("chdir failed: $!");
+@mpl_out = run(qq{$perl Makefile.PL});
+
+cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) ||
+ diag(@mpl_out);
+
+$make_out = run($make);
+is( $?, 0, 'recursive make exited normally' ) || diag $make_out;
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/several_authors.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/several_authors.t
index 47535414c10..f1b0f1ebeba 100644
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/several_authors.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/several_authors.t
@@ -11,37 +11,68 @@ use strict;
use TieOut;
use MakeMaker::Test::Utils;
-use MakeMaker::Test::Setup::SAS;
use Config;
-use Test::More;
use ExtUtils::MM;
-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+use Test::More
+ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
- : (tests => 20);
+ : (tests => 19);
use File::Path;
use File::Temp qw[tempdir];
use ExtUtils::MakeMaker;
+my $CM = eval { require CPAN::Meta; };
+
+my $DIRNAME = 'Multiple-Authors';
+my %FILES = (
+ 'Makefile.PL' => <<'END',
+use ExtUtils::MakeMaker;
+WriteMakefile(
+ NAME => 'Multiple::Authors',
+ AUTHOR => ['John Doe <jd@example.com>', 'Jane Doe <jd@example.com>'],
+ VERSION_FROM => 'lib/Multiple/Authors.pm',
+ PREREQ_PM => { strict => 0 },
+);
+END
+
+ 'lib/Multiple/Authors.pm' => <<'END',
+package Multiple::Authors;
+
+$VERSION = 0.05;
+
+=head1 NAME
+
+Multiple::Authors - several authors
+
+=cut
+
+1;
+END
+
+);
# avoid environment variables interfering with our make runs
-delete @ENV{qw(LIB MAKEFLAGS)};
+delete @ENV{qw(PERL_JSON_BACKEND CPAN_META_JSON_BACKEND PERL_YAML_BACKEND)} if $ENV{PERL_CORE};
+delete @ENV{qw(LIB MAKEFLAGS PERL_CORE)};
my $perl = which_perl();
my $make = make_run();
my $makefile = makefile_name();
-my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
-chdir $tmpdir;
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
-perl_lib();
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
+chdir $tmpdir;
-ok( setup_recurs(), 'setup' );
+hash2files($DIRNAME, \%FILES);
END {
ok( chdir(File::Spec->updir), 'leaving dir' );
- ok( teardown_recurs(), 'teardown' );
+ ok( rmtree($DIRNAME), 'teardown' );
}
-ok( chdir $MakeMaker::Test::Setup::SAS::dirname, "entering dir $MakeMaker::Test::Setup::SAS::dirname" ) ||
+ok( chdir $DIRNAME, "entering dir $DIRNAME" ) ||
diag("chdir failed: $!");
note "argument verification"; {
@@ -111,14 +142,15 @@ note "ppd output"; {
}
-note "META.yml output"; {
+note "META.yml output"; SKIP: {
+ skip 'Failed to load CPAN::Meta', 5 unless $CM;
my $distdir = 'Multiple-Authors-0.05';
$distdir =~ s{\.}{_}g if $Is_VMS;
my $meta_yml = "$distdir/META.yml";
my $meta_json = "$distdir/META.json";
my @make_out = run(qq{$make metafile});
- END { rmtree $distdir }
+ END { rmtree $distdir if defined $distdir }
cmp_ok( $?, '==', 0, 'Make metafile exiting normally' ) || diag(@make_out);
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t
index d1b4d41eee6..460a8a2a08b 100755
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t
+++ b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t
@@ -17,12 +17,14 @@ use MakeMaker::Test::Setup::BFD;
use ExtUtils::MakeMaker;
+chdir 't';
+perl_lib; # sets $ENV{PERL5LIB} relative to t/
+
use File::Temp qw[tempdir];
-my $tmpdir = tempdir( DIR => 't', CLEANUP => 1 );
+my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
+use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
chdir $tmpdir;
-perl_lib();
-
ok( setup_recurs(), 'setup' );
END {
ok( chdir File::Spec->updir );
diff --git a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/xs.t b/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/xs.t
deleted file mode 100755
index cdeb6dd36b7..00000000000
--- a/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/xs.t
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- unshift @INC, 't/lib/';
-}
-chdir 't';
-
-use strict;
-
-use MakeMaker::Test::Utils;
-use MakeMaker::Test::Setup::XS;
-use Test::More
- have_compiler()
- ? (tests => 5)
- : (skip_all => "ExtUtils::CBuilder not installed or couldn't find a compiler");
-use File::Spec;
-
-my $Is_VMS = $^O eq 'VMS';
-my $perl = which_perl();
-
-chdir 't';
-
-perl_lib;
-
-$| = 1;
-
-ok( setup_xs(), 'setup' );
-END {
- chdir File::Spec->updir or die;
- teardown_xs(), 'teardown' or die;
-}
-
-ok( chdir('XS-Test'), "chdir'd to XS-Test" ) ||
- diag("chdir failed: $!");
-
-my @mpl_out = run(qq{$perl Makefile.PL});
-SKIP: {
- unless (cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' )) {
- diag(@mpl_out);
- skip 'perl Makefile.PL failed', 2;
- }
-
- my $make = make_run();
- my $make_out = run("$make");
- unless (is( $?, 0, ' make exited normally' )) {
- diag $make_out;
- skip 'Make failed - skipping test', 1;
- }
-
- my $test_out = run("$make test");
- is( $?, 0, ' make test exited normally' ) ||
- diag $test_out;
-}
diff --git a/gnu/usr.bin/perl/cpan/File-Fetch/lib/File/Fetch.pm b/gnu/usr.bin/perl/cpan/File-Fetch/lib/File/Fetch.pm
index de2ab123363..90c62e96bee 100644
--- a/gnu/usr.bin/perl/cpan/File-Fetch/lib/File/Fetch.pm
+++ b/gnu/usr.bin/perl/cpan/File-Fetch/lib/File/Fetch.pm
@@ -22,13 +22,13 @@ use vars qw[ $VERBOSE $PREFER_BIN $FROM_EMAIL $USER_AGENT
$FTP_PASSIVE $TIMEOUT $DEBUG $WARN $FORCEIPV4
];
-$VERSION = '0.48_01';
+$VERSION = '0.56';
$VERSION = eval $VERSION; # avoid warnings with development releases
$PREFER_BIN = 0; # XXX TODO implement
$FROM_EMAIL = 'File-Fetch@example.com';
$USER_AGENT = "File::Fetch/$VERSION";
$BLACKLIST = [qw|ftp|];
-push @$BLACKLIST, qw|lftp| if $^O eq 'dragonfly';
+push @$BLACKLIST, qw|lftp| if $^O eq 'dragonfly' || $^O eq 'hpux';
$METHOD_FAIL = { };
$FTP_PASSIVE = 1;
$TIMEOUT = 0;
@@ -39,6 +39,7 @@ $FORCEIPV4 = 0;
### methods available to fetch the file depending on the scheme
$METHODS = {
http => [ qw|lwp httptiny wget curl lftp fetch httplite lynx iosock| ],
+ https => [ qw|lwp wget curl| ],
ftp => [ qw|lwp netftp wget curl lftp fetch ncftp ftp| ],
file => [ qw|lwp lftp file| ],
rsync => [ qw|rsync| ],
@@ -51,6 +52,9 @@ local $Params::Check::VERBOSE = 1;
local $Module::Load::Conditional::VERBOSE = 0;
local $Module::Load::Conditional::VERBOSE = 0;
+### Fix CVE-2016-1238 ###
+local $Module::Load::Conditional::FORCE_SAFE_INC = 1;
+
### see what OS we are on, important for file:// uris ###
use constant ON_WIN => ($^O eq 'MSWin32');
use constant ON_VMS => ($^O eq 'VMS');
@@ -164,6 +168,7 @@ http://www.abc.net.au/ the contents retrieved may be from a remote file called
path => { default => '/' },
file => { required => 1 },
uri => { required => 1 },
+ userinfo => { default => '' },
vol => { default => '' }, # windows for file:// uris
share => { default => '' }, # windows for file:// uris
file_default => { default => 'file_default' },
@@ -401,7 +406,7 @@ sub _parse_uri {
} else {
### using anything but qw() in hash slices may produce warnings
### in older perls :-(
- @{$href}{ qw(host path) } = $uri =~ m|([^/]*)(/.*)$|s;
+ @{$href}{ qw(userinfo host path) } = $uri =~ m|(?:([^\@:]*:[^\:\@]*)@)?([^/]*)(/.*)$|s;
}
### split the path into file + dir ###
@@ -567,8 +572,10 @@ sub _lwp_fetch {
};
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
+ if ($self->scheme eq 'https') {
+ $use_list->{'LWP::Protocol::https'} = '0';
+ }
+
unless( can_load( modules => $use_list ) ) {
$METHOD_FAIL->{'lwp'} = 1;
return;
@@ -582,7 +589,12 @@ sub _lwp_fetch {
### special rules apply for file:// uris ###
$uri->scheme( $self->scheme );
$uri->host( $self->scheme eq 'file' ? '' : $self->host );
- $uri->userinfo("anonymous:$FROM_EMAIL") if $self->scheme ne 'file';
+
+ if ($self->userinfo) {
+ $uri->userinfo($self->userinfo);
+ } elsif ($self->scheme ne 'file') {
+ $uri->userinfo("anonymous:$FROM_EMAIL");
+ }
### set up the useragent object
my $ua = LWP::UserAgent->new();
@@ -621,8 +633,6 @@ sub _httptiny_fetch {
};
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
unless( can_load(modules => $use_list) ) {
$METHOD_FAIL->{'httptiny'} = 1;
return;
@@ -659,11 +669,9 @@ sub _httplite_fetch {
### modules required to download with lwp ###
my $use_list = {
'HTTP::Lite' => '2.2',
-
+ 'MIME::Base64' => '0',
};
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
unless( can_load(modules => $use_list) ) {
$METHOD_FAIL->{'httplite'} = 1;
return;
@@ -679,6 +687,11 @@ sub _httplite_fetch {
$http->{timeout} = $TIMEOUT if $TIMEOUT;
$http->http11_mode(1);
+ if ($self->userinfo) {
+ my $encoded = MIME::Base64::encode($self->userinfo, '');
+ $http->add_req_header("Authorization", "Basic $encoded");
+ }
+
my $fh = FileHandle->new;
unless ( $fh->open($to,'>') ) {
@@ -739,8 +752,6 @@ sub _iosock_fetch {
'IO::Select' => '0.0',
};
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
unless( can_load(modules => $use_list) ) {
$METHOD_FAIL->{'iosock'} = 1;
return;
@@ -822,8 +833,6 @@ sub _netftp_fetch {
check( $tmpl, \%hash ) or return;
### required modules ###
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
my $use_list = { 'Net::FTP' => 0 };
unless( can_load( modules => $use_list ) ) {
@@ -1512,7 +1521,7 @@ Below is a mapping of what utilities will be used in what order
for what schemes, if available:
file => LWP, lftp, file
- http => LWP, HTTP::Lite, wget, curl, lftp, fetch, lynx, iosock
+ http => LWP, HTTP::Tiny, wget, curl, lftp, fetch, HTTP::Lite, lynx, iosock
ftp => LWP, Net::FTP, wget, curl, lftp, fetch, ncftp, ftp
rsync => rsync
git => git
diff --git a/gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm b/gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm
index 138bdc24ffb..b4fb5a2c483 100644
--- a/gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm
+++ b/gnu/usr.bin/perl/cpan/File-Path/lib/File/Path.pm
@@ -18,7 +18,7 @@ BEGIN {
use Exporter ();
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-$VERSION = '2.13';
+$VERSION = '2.15';
$VERSION = eval $VERSION;
@ISA = qw(Exporter);
@EXPORT = qw(mkpath rmtree);
@@ -633,7 +633,7 @@ File::Path - Create or remove directory trees
=head1 VERSION
-2.13 - released May 31 2017.
+2.15 - released June 07 2017.
=head1 SYNOPSIS
@@ -774,12 +774,14 @@ identical to C<make_path()>.
The C<remove_tree> function deletes the given directories and any
files and subdirectories they might contain, much like the Unix
-command C<rm -rf> or the Windows commands C<rmdir /s> and C<rd /s>. The
-only exception to the function similarity is that C<remove_tree> accepts
-only directories whereas C<rm -rf> also accepts files.
+command C<rm -rf> or the Windows commands C<rmdir /s> and C<rd /s>.
-The function accepts a list of directories to be
-removed. Its behaviour may be tuned by an optional hashref
+The function accepts a list of directories to be removed. (In point of fact,
+it will also accept filesystem entries which are not directories, such as
+regular files and symlinks. But, as its name suggests, its intent is to
+remove trees rather than individual files.)
+
+C<remove_tree()>'s behaviour may be tuned by an optional hashref
appearing as the last parameter on the call. If an empty string is
passed to C<remove_tree>, an error will occur.
@@ -1244,7 +1246,7 @@ James (Jim) Keenan <F<jkeenan@cpan.org>>.
=head1 CONTRIBUTORS
-Contributors to File::Path, in alphabetical order.
+Contributors to File::Path, in alphabetical order by first name.
=over 1
@@ -1258,6 +1260,8 @@ Contributors to File::Path, in alphabetical order.
=item John Lightsey <F<john@perlsec.org>>
+=item Nigel Horne <F<njh@bandsman.co.uk>>
+
=item Richard Elberger <F<riche@cpan.org>>
=item Ryan Yee <F<ryee@cpan.org>>
diff --git a/gnu/usr.bin/perl/cpan/File-Path/t/Path-Class.t b/gnu/usr.bin/perl/cpan/File-Path/t/Path-Class.t
deleted file mode 100644
index d896fbbf553..00000000000
--- a/gnu/usr.bin/perl/cpan/File-Path/t/Path-Class.t
+++ /dev/null
@@ -1,50 +0,0 @@
-use strict;
-use warnings;
-use Test::More tests => 32;
-
-eval "require Path::Class";
-
-
-SKIP: {
- skip "Path::Class required to run this test", 32 if $@;
- use File::Path qw(remove_tree make_path);
- Path::Class->import;
-
- my $name = 'test';
- my $dir = dir($name);
-
- for my $mk_dir ($name, dir($name)) {
- for my $mk_pass_arg (0, 1) {
-
- for my $rm_dir ($name, dir($name)) {
- for my $rm_pass_arg (0, 1) {
- remove_tree($name) if -e $name;
-
- my ($mk_args, $mk_desc) = test($mk_dir, $mk_pass_arg);
- make_path(@$mk_args);
-
- if (ok( -d $dir, "we made $dir ($mk_desc)")) {
- my ($rm_args, $rm_desc) = test($rm_dir, $rm_pass_arg);
- remove_tree(@$rm_args);
- ok( ! -d $dir, "...then we removed $dir ($rm_desc)");
- } else {
- fail("...can't remove it if we didn't create it");
- }
- }
- }
- }
- }
-}
-
-sub test {
- my ($dir, $pass_arg) = @_;
-
- my $args = [ $dir, ($pass_arg ? {} : ()) ];
- my $desc = sprintf(
- 'dir isa %s, second arg is %s',
- (ref($dir) || 'string'),
- ($pass_arg ? '{}' : 'not passed')
- );
-
- return ($args, $desc);
-}
diff --git a/gnu/usr.bin/perl/cpan/File-Path/t/Path.t b/gnu/usr.bin/perl/cpan/File-Path/t/Path.t
index 9be39a5de2f..8ea3d87c9a5 100755
--- a/gnu/usr.bin/perl/cpan/File-Path/t/Path.t
+++ b/gnu/usr.bin/perl/cpan/File-Path/t/Path.t
@@ -3,7 +3,7 @@
use strict;
-use Test::More tests => 167;
+use Test::More tests => 165;
use Config;
use Fcntl ':mode';
use lib './t';
@@ -758,7 +758,7 @@ is(
# remove_tree(): Permit re-use of options hash without issuing a warning
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| a b c | );
+ create_3_level_subdirs( qw| ZoYhvc6RmGnl S2CrQ0lju0o7 lvOqVYWpfhcP | );
my @created;
@created = File::Path::make_path($deepest, { mode => 0711 });
is(scalar(@created), 3, "Created 3 subdirectories");
@@ -816,20 +816,20 @@ is(
}
SKIP: {
- my $skip_count = 5;
+ my $skip_count = 3;
skip "Windows will not set this error condition", $skip_count
if $^O eq 'MSWin32';
# mkpath() with hashref: case of phony user
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| d e f | );
+ create_3_level_subdirs( qw| Hhu1KpF4EVAV vUj5k37bih8v Vkdw02POXJxj | );
my (@created, $error);
my $user = join('_' => 'foobar', $$);
@created = mkpath($deepest, { mode => 0711, user => $user, error => \$error });
- TODO: {
- local $TODO = "Notwithstanding the phony 'user', mkpath will actually create subdirectories; should it?";
- is(scalar(@created), 0, "No subdirectories created");
- }
+# TODO: {
+# local $TODO = "Notwithstanding the phony 'user', mkpath will actually create subdirectories; should it?";
+# is(scalar(@created), 0, "No subdirectories created");
+# }
is(scalar(@$error), 1, "caught error condition" );
my ($file, $message) = each %{$error->[0]};
like($message,
@@ -843,7 +843,7 @@ SKIP: {
{
# mkpath() with hashref: case of valid uid
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| j k l | );
+ create_3_level_subdirs( qw| b5wj8CJcc7gl XTJe2C3WGLg5 VZ_y2T0XfKu3 | );
my (@created, $error);
@created = mkpath($deepest, { mode => 0711, uid => $>, error => \$error });
is(scalar(@created), 3, "Provide valid 'uid' argument: 3 subdirectories created");
@@ -858,7 +858,7 @@ SKIP: {
# mkpath() with hashref: case of valid owner
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| m n o | );
+ create_3_level_subdirs( qw| aiJEDKaAEH25 nqhXsBM_7_bv qfRj4cur4Jrs | );
my (@created, $error);
my $name = getpwuid($>);
@created = mkpath($deepest, { mode => 0711, owner => $name, error => \$error });
@@ -874,14 +874,14 @@ SKIP: {
# mkpath() with hashref: case of phony group
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| p q r | );
+ create_3_level_subdirs( qw| nOR4lGRMdLvz NnwkEHEVL5li _3f1Kv6q77yA | );
my (@created, $error);
my $bad_group = join('_' => 'foobarbaz', $$);
@created = mkpath($deepest, { mode => 0711, group => $bad_group, error => \$error });
- TODO: {
- local $TODO = "Notwithstanding the phony 'group', mkpath will actually create subdirectories; should it?";
- is(scalar(@created), 0, "No subdirectories created");
- }
+# TODO: {
+# local $TODO = "Notwithstanding the phony 'group', mkpath will actually create subdirectories; should it?";
+# is(scalar(@created), 0, "No subdirectories created");
+# }
is(scalar(@$error), 1, "caught error condition" );
my ($file, $message) = each %{$error->[0]};
like($message,
@@ -895,7 +895,7 @@ SKIP: {
{
# mkpath() with hashref: case of valid group
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| s t u | );
+ create_3_level_subdirs( qw| BEcigvaBNisY rd4lJ1iZRyeS OyQnDPIBxP2K | );
my (@created, $error);
@created = mkpath($deepest, { mode => 0711, group => $(, error => \$error });
is(scalar(@created), 3, "Provide valid 'group' argument: 3 subdirectories created");
@@ -910,7 +910,7 @@ SKIP: {
# mkpath() with hashref: case of valid group
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| v w x | );
+ create_3_level_subdirs( qw| IayhWFDvys8X gTd6gaeuFzmV VVI6UWLJCOEC | );
my (@created, $error);
my $group_name = (getgrgid($())[0];
@created = mkpath($deepest, { mode => 0711, group => $group_name, error => \$error });
@@ -926,7 +926,7 @@ SKIP: {
# mkpath() with hashref: case of valid owner and group
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| delta epsilon zeta | );
+ create_3_level_subdirs( qw| xsmOvlnxOqJc olsGlBSoVUpp tDuRilkD35rd | );
my (@created, $error);
my $name = getpwuid($>);
my $group_name = (getgrgid($())[0];
diff --git a/gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t b/gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t
index 89b0b2f045c..2638f996225 100644
--- a/gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t
+++ b/gnu/usr.bin/perl/cpan/File-Path/t/Path_win32.t
@@ -37,7 +37,7 @@ cmp_ok($removed, '>', 0, "removed $removed entries from $UNC_path");
{
my ($least_deep, $next_deepest, $deepest) =
- create_3_level_subdirs( qw| d e f | );
+ create_3_level_subdirs( qw| IsVFFJfJ03Rk jD7ToWQFmcjm hMZR6S1qNSf5 | );
my (@created, $error);
my $user = join('_' => 'foobar', $$);
{
diff --git a/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm b/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm
index 8b4d41a821c..cfe9cb78863 100644
--- a/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm
+++ b/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm
@@ -2,23 +2,25 @@
#
# Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
# Copyright (c) 2011-2014 Reini Urban. All rights reserved.
+# Copyright (c) 2014-2017 cPanel Inc. All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
package Filter::Util::Call ;
-require 5.005 ;
-require DynaLoader;
+require 5.006 ; # our
require Exporter;
-use Carp ;
+
+use XSLoader ();
use strict;
use warnings;
-use vars qw($VERSION @ISA @EXPORT) ;
-@ISA = qw(Exporter DynaLoader);
-@EXPORT = qw( filter_add filter_del filter_read filter_read_exact) ;
-$VERSION = "1.55" ;
+our @ISA = qw(Exporter);
+our @EXPORT = qw( filter_add filter_del filter_read filter_read_exact) ;
+our $VERSION = "1.58" ;
+our $XS_VERSION = $VERSION;
+$VERSION = eval $VERSION;
sub filter_read_exact($)
{
@@ -26,8 +28,10 @@ sub filter_read_exact($)
my ($left) = $size ;
my ($status) ;
- croak ("filter_read_exact: size parameter must be > 0")
- unless $size > 0 ;
+ unless ( $size > 0 ) {
+ require Carp;
+ Carp::croak("filter_read_exact: size parameter must be > 0");
+ }
# try to read a block which is exactly $size bytes long
while ($left and ($status = filter_read($left)) > 0) {
@@ -56,7 +60,7 @@ sub filter_add($)
Filter::Util::Call::real_import($obj, (caller)[0], $coderef) ;
}
-bootstrap Filter::Util::Call ;
+XSLoader::load('Filter::Util::Call');
1;
__END__
@@ -525,6 +529,7 @@ Paul Marquess
Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
Copyright (c) 2011-2014 Reini Urban. All rights reserved.
+Copyright (c) 2014-2017 cPanel Inc. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs b/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs
index 97280d7755f..74c36762574 100644
--- a/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs
+++ b/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs
@@ -3,7 +3,7 @@
*
* Author : Paul Marquess
* Date : 2014-12-09 02:48:44 rurban
- * Version : 1.55
+ * Version : 1.58
*
* Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
* Copyright (c) 2011-2014 Reini Urban. All rights reserved.
diff --git a/gnu/usr.bin/perl/cpan/Filter-Util-Call/filter-util.pl b/gnu/usr.bin/perl/cpan/Filter-Util-Call/filter-util.pl
index 44e8b1efdd4..a8755e41f5b 100644
--- a/gnu/usr.bin/perl/cpan/Filter-Util-Call/filter-util.pl
+++ b/gnu/usr.bin/perl/cpan/Filter-Util-Call/filter-util.pl
@@ -30,7 +30,7 @@ sub writeFile
sub ok
{
- my($number, $result, $note) = @_ ;
+ my ($number, $result, $note) = @_ ;
$note = "" if ! defined $note ;
if ($note) {
@@ -40,11 +40,17 @@ sub ok
print "not " if !$result ;
print "ok ${number}${note}\n";
+ return $result;
+}
+
+sub diag {
+ print STDERR
+ (map { /^#/ ? "$_\n" : "# $_\n" }
+ map { split /\n/ } @_);
}
$Inc = '' ;
-foreach (@INC)
- { $Inc .= "\"-I$_\" " }
+foreach (@INC) { $Inc .= "\"-I$_\" " }
$Inc = "-I::lib" if $^O eq 'MacOS';
$Perl = '' ;
diff --git a/gnu/usr.bin/perl/cpan/Filter-Util-Call/t/call.t b/gnu/usr.bin/perl/cpan/Filter-Util-Call/t/call.t
index b1e32c44018..b2a0cad95f0 100755
--- a/gnu/usr.bin/perl/cpan/Filter-Util-Call/t/call.t
+++ b/gnu/usr.bin/perl/cpan/Filter-Util-Call/t/call.t
@@ -1,12 +1,12 @@
+use Config;
BEGIN {
- if ($ENV{PERL_CORE}){
- require Config; import Config;
- %Config=%Config if 0; # cease -w
+ if ($ENV{PERL_CORE}) {
if ($Config{'extensions'} !~ m{\bFilter/Util/Call\b}) {
print "1..0 # Skip: Filter::Util::Call was not built\n";
exit 0;
}
}
+ unshift @INC, 't';
require 'filter-util.pl';
}
@@ -15,17 +15,17 @@ use warnings;
use vars qw($Inc $Perl);
-print "1..32\n" ;
+print "1..34\n";
-$Perl = "$Perl -w" ;
+$Perl = "$Perl -w";
use Cwd ;
my $here = getcwd ;
-my $filename = "call.tst" ;
-my $filename2 = "call2.tst" ;
-my $filenamebin = "call.bin" ;
+my $filename = "call$$.tst" ;
+my $filename2 = "call2$$.tst" ;
+my $filenamebin = "call$$.bin" ;
my $module = "MyTest" ;
my $module2 = "MyTest2" ;
my $module3 = "MyTest3" ;
@@ -39,43 +39,56 @@ my $redir = $^O eq 'MacOS' ? "" : "2>&1";
# Test error cases
##################
-# no filter function in module
+# no filter function in module
###############################
writeFile("${module}.pm", <<EOM) ;
package ${module} ;
use Filter::Util::Call ;
-
+
sub import { filter_add(bless []) }
1 ;
EOM
-
+
my $a = `$Perl "-I." $Inc -e "use ${module} ;" $redir` ;
ok(1, (($? >>8) != 0 or (($^O eq 'MSWin32' || $^O eq 'MacOS' || $^O eq 'NetWare' || $^O eq 'mpeix') && $? != 0))) ;
ok(2, $a =~ /^Can't locate object method "filter" via package "MyTest"/m) ;
-
+
# no reference parameter in filter_add
######################################
writeFile("${module}.pm", <<EOM) ;
package ${module} ;
-
+
use Filter::Util::Call ;
-
+
sub import { filter_add() }
-
+
1 ;
EOM
-
+
$a = `$Perl "-I." $Inc -e "use ${module} ;" $redir` ;
-ok(3, (($? >>8) != 0 or (($^O eq 'MSWin32' || $^O eq 'MacOS' || $^O eq 'NetWare' || $^O eq 'mpeix') && $? != 0))) ;
+#warn "# $a\n";
+ok(3, (($? >>8) != 0
+ or (($^O eq 'MSWin32' || $^O eq 'MacOS' || $^O eq 'NetWare' || $^O eq 'mpeix')
+ && $? != 0))) ;
#ok(4, $a =~ /^usage: filter_add\(ref\) at ${module}.pm/) ;
-ok(4, $a =~ /^Not enough arguments for Filter::Util::Call::filter_add/m) ;
-
-
-
+my $errmsg = $Config{usecperl}
+ ? qr/^Not enough arguments for subroutine entry Filter::Util::Call::filter_add at ${module}\.pm line/m
+ : qr/^Not enough arguments for Filter::Util::Call::filter_add at ${module}\.pm line/m;
+$a =~ s/^(.*?\n).*$/$1/s; # only the first line
+if ($] < 5.007) {
+ if ($a =~ $errmsg) {
+ ok(4, 1);
+ } else {
+ ok(4, 1, "TODO");
+ }
+} else {
+ ok(4, $a =~ $errmsg, 'usage error')
+ or diag("The error was: ", $a);
+}
# non-error cases
#################
@@ -86,17 +99,17 @@ ok(4, $a =~ /^Not enough arguments for Filter::Util::Call::filter_add/m) ;
writeFile("${module}.pm", <<EOM, <<'EOM') ;
package ${module} ;
-
+
EOM
use Filter::Util::Call ;
-sub import {
+sub import {
filter_add(
sub {
-
+
my ($status) ;
-
+
if (($status = filter_read()) > 0) {
- s/ABC/DEF/g
+ s/ABC/DEF/g
}
$status ;
} ) ;
@@ -104,7 +117,7 @@ sub import {
1 ;
EOM
-
+
writeFile($filename, <<EOM, <<'EOM') ;
use $module ;
@@ -131,34 +144,34 @@ EOM
# a simple filter, not using a closure
#################
-
+
writeFile("${module}.pm", <<EOM, <<'EOM') ;
package ${module} ;
-
+
EOM
use Filter::Util::Call ;
sub import { filter_add(bless []) }
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
-
+
if (($status = filter_read()) > 0) {
s/ABC/DEF/g
}
$status ;
}
-
+
1 ;
EOM
-
+
writeFile($filename, <<EOM, <<'EOM') ;
-
+
use $module ;
EOM
-
+
use Cwd ;
$here = getcwd ;
print "I am $here\n" ;
@@ -167,9 +180,9 @@ $y = "ABCDEF" ;
print <<EOF ;
Alphabetti Spagetti ($y)
EOF
-
+
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(7, ($? >>8) == 0) ;
ok(8, $a eq <<EOM) ;
@@ -186,48 +199,48 @@ EOM
writeFile("${module2}.pm", <<EOM, <<'EOM') ;
package ${module2} ;
use Filter::Util::Call ;
-
+
EOM
sub import { filter_add(bless []) }
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
-
+
if (($status = filter_read()) > 0) {
s/XYZ/PQR/g
}
$status ;
}
-
+
1 ;
EOM
-
+
writeFile("${module3}.pm", <<EOM, <<'EOM') ;
package ${module3} ;
use Filter::Util::Call ;
-
+
EOM
sub import { filter_add(
-
- sub
+
+ sub
{
my ($status) ;
-
+
if (($status = filter_read()) > 0) {
s/Fred/Joe/g
}
$status ;
} ) ;
}
-
+
1 ;
EOM
-
+
writeFile("${module4}.pm", <<EOM) ;
package ${module4} ;
-
+
use $module5 ;
print "I'm feeling used!\n" ;
@@ -239,50 +252,50 @@ EOM
writeFile("${module5}.pm", <<EOM, <<'EOM') ;
package ${module5} ;
use Filter::Util::Call ;
-
+
EOM
sub import { filter_add(bless []) }
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
-
+
if (($status = filter_read()) > 0) {
s/Today/Tomorrow/g
}
$status ;
}
-
+
1 ;
EOM
writeFile($filename, <<EOM, <<'EOM') ;
-
+
# two filters for this file
use $module ;
use $module2 ;
require "$nested" ;
use $module4 ;
EOM
-
+
print "some letters ABCXYZ\n" ;
$y = "ABCDEFXYZ" ;
print <<EOF ;
Fred likes Alphabetti Spagetti ($y)
EOF
-
+
EOM
-
+
writeFile($nested, <<EOM, <<'EOM') ;
use $module3 ;
EOM
-
+
print "This is another file XYZ\n" ;
print <<EOF ;
Where is Fred?
EOF
-
+
EOM
$a = `$Perl "-I." $Inc $filename $redir` ;
@@ -299,61 +312,61 @@ EOM
# using the module context (with a closure)
###########################################
-
-
+
+
writeFile("${module2}.pm", <<EOM, <<'EOM') ;
package ${module2} ;
use Filter::Util::Call ;
-
+
EOM
sub import
{
my ($type) = shift ;
my (@strings) = @_ ;
-
-
+
+
filter_add (
-
- sub
+
+ sub
{
my ($status) ;
my ($pattern) ;
-
+
if (($status = filter_read()) > 0) {
foreach $pattern (@strings)
{ s/$pattern/PQR/g }
}
-
+
$status ;
}
)
-
+
}
1 ;
EOM
-
-
+
+
writeFile($filename, <<EOM, <<'EOM') ;
-
+
use $module2 qw( XYZ KLM) ;
use $module2 qw( ABC NMO) ;
EOM
-
+
print "some letters ABCXYZ KLM NMO\n" ;
$y = "ABCDEFXYZKLMNMO" ;
print <<EOF ;
Alphabetti Spagetti ($y)
EOF
-
+
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(11, ($? >>8) == 0) ;
ok(12, $a eq <<EOM) ;
some letters PQRPQR PQR PQR
Alphabetti Spagetti (PQRDEFPQRPQRPQR)
EOM
-
+
# using the module context (without a closure)
@@ -363,23 +376,23 @@ EOM
writeFile("${module2}.pm", <<EOM, <<'EOM') ;
package ${module2} ;
use Filter::Util::Call ;
-
+
EOM
-sub import
-{
+sub import
+{
my ($type) = shift ;
my (@strings) = @_ ;
-
- filter_add (bless [@strings])
+
+ filter_add (bless [@strings])
}
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
my ($pattern) ;
-
+
if (($status = filter_read()) > 0) {
foreach $pattern (@$self)
{ s/$pattern/PQR/g }
@@ -387,25 +400,25 @@ sub filter
$status ;
}
-
+
1 ;
EOM
-
-
+
+
writeFile($filename, <<EOM, <<'EOM') ;
-
+
use $module2 qw( XYZ KLM) ;
use $module2 qw( ABC NMO) ;
EOM
-
+
print "some letters ABCXYZ KLM NMO\n" ;
$y = "ABCDEFXYZKLMNMO" ;
print <<EOF ;
Alphabetti Spagetti ($y)
EOF
-
+
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(13, ($? >>8) == 0) ;
ok(14, $a eq <<EOM) ;
@@ -420,22 +433,22 @@ EOM
writeFile("${module2}.pm", <<EOM, <<'EOM') ;
package ${module2} ;
use Filter::Util::Call ;
-
+
EOM
sub import
-{
+{
my ($type) = shift ;
my (@strings) = @_ ;
-
- filter_add(bless [])
+
+ filter_add(bless [])
}
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
-
+
# read first line
if (($status = filter_read()) > 0) {
chop ;
@@ -446,32 +459,33 @@ sub filter
$status ;
}
-
+
1 ;
EOM
-
-
+
+
writeFile($filename, <<EOM, <<'EOM') ;
-
+
use $module2 ;
EOM
print "don't cut me
in half\n" ;
-print
+print
<<EOF ;
appen
ded
EO
F
-
+
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(15, ($? >>8) == 0) ;
ok(16, $a eq <<EOM) ;
don't cut me in half
appended
EOM
+#print "# $a\n";
# Block test
#############
@@ -479,26 +493,26 @@ EOM
writeFile("${block}.pm", <<EOM, <<'EOM') ;
package ${block} ;
use Filter::Util::Call ;
-
+
EOM
sub import
-{
+{
my ($type) = shift ;
my (@strings) = @_ ;
-
+
filter_add (bless [@strings] )
}
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
my ($pattern) ;
-
+
filter_read(20) ;
}
-
+
1 ;
EOM
@@ -512,7 +526,7 @@ EOM
writeFile($filename, <<EOM, $string ) ;
use $block ;
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(17, ($? >>8) == 0) ;
ok(18, $a eq <<EOM) ;
@@ -527,31 +541,31 @@ EOM
writeFile("${block}.pm", <<EOM, <<'EOM') ;
package ${block} ;
use Filter::Util::Call ;
-
+
EOM
use Cwd ;
sub import
-{
+{
my ($type) = shift ;
my (@strings) = @_ ;
-
+
filter_add(bless [@strings] )
}
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
my ($here) = quotemeta getcwd ;
-
+
if (($status = filter_read()) > 0) {
s/DIR/$here/g
}
$status ;
}
-
+
1 ;
EOM
@@ -560,7 +574,7 @@ use $block ;
EOM
print "We are in DIR\n" ;
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(19, ($? >>8) == 0) ;
ok(20, $a eq <<EOM) ;
@@ -570,27 +584,27 @@ EOM
# filter_del
#############
-
+
writeFile("${block}.pm", <<EOM, <<'EOM') ;
package ${block} ;
use Filter::Util::Call ;
-
+
EOM
-
+
sub import
{
my ($type) = shift ;
my ($count) = @_ ;
-
-
+
+
filter_add(bless \$count )
}
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
-
+
s/HERE/THERE/g
if ($status = filter_read()) > 0 ;
@@ -599,10 +613,10 @@ sub filter
$status ;
}
-
+
1 ;
EOM
-
+
writeFile($filename, <<EOM, <<'EOM') ;
use $block (3) ;
EOM
@@ -611,7 +625,7 @@ HERE I am
I am HERE
HERE today gone tomorrow\n" ;
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(21, ($? >>8) == 0) ;
ok(22, $a eq <<EOM) ;
@@ -624,35 +638,35 @@ EOM
# filter_read_exact
####################
-
+
writeFile("${block}.pm", <<EOM, <<'EOM') ;
package ${block} ;
use Filter::Util::Call ;
-
+
EOM
-
+
sub import
{
my ($type) = shift ;
-
+
filter_add(bless [] )
}
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
-
+
if (($status = filter_read_exact(9)) > 0) {
s/HERE/THERE/g
}
-
+
$status ;
}
-
+
1 ;
EOM
-
+
writeFile($filenamebin, <<EOM, <<'EOM') ;
use $block ;
EOM
@@ -661,7 +675,7 @@ HERE I am
I'm HERE
HERE today gone tomorrow\n" ;
EOM
-
+
$a = `$Perl "-I." $Inc $filenamebin $redir` ;
ok(23, ($? >>8) == 0) ;
ok(24, $a eq <<EOM) ;
@@ -675,35 +689,35 @@ EOM
# Check __DATA__
####################
-
+
writeFile("${block}.pm", <<EOM, <<'EOM') ;
package ${block} ;
use Filter::Util::Call ;
-
+
EOM
-
+
sub import
{
my ($type) = shift ;
-
+
filter_add([])
}
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
-
+
if (($status = filter_read()) > 0) {
s/HERE/THERE/g
}
-
+
$status ;
}
-
+
1 ;
EOM
-
+
writeFile($filename, <<EOM, <<'EOM') ;
use $block ;
EOM
@@ -715,7 +729,7 @@ HERE I am
I'm HERE
HERE today gone tomorrow
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(25, ($? >>8) == 0) ;
ok(26, $a eq <<EOM) ;
@@ -731,35 +745,35 @@ EOM
# Check __END__
####################
-
+
writeFile("${block}.pm", <<EOM, <<'EOM') ;
package ${block} ;
use Filter::Util::Call ;
-
+
EOM
-
+
sub import
{
my ($type) = shift ;
-
+
filter_add(bless [] )
}
-
+
sub filter
{
my ($self) = @_ ;
my ($status) ;
-
+
if (($status = filter_read()) > 0) {
s/HERE/THERE/g
}
-
+
$status ;
}
-
+
1 ;
EOM
-
+
writeFile($filename, <<EOM, <<'EOM') ;
use $block ;
EOM
@@ -771,7 +785,7 @@ HERE I am
I'm HERE
HERE today gone tomorrow
EOM
-
+
$a = `$Perl "-I." $Inc $filename $redir` ;
ok(27, ($? >>8) == 0) ;
ok(28, $a eq <<EOM) ;
@@ -817,6 +831,48 @@ ok(32, $a eq 'ok');
}
+# error: filter_read_exact: size parameter must be > 0
+######################################
+
+writeFile("${block}.pm", <<EOM, <<'EOM') ;
+package ${block} ;
+use Filter::Util::Call ;
+
+EOM
+
+sub import
+{
+ my ($type) = shift ;
+ filter_add(bless [] )
+}
+
+sub filter
+{
+ my ($self) = @_ ;
+ my ($status) ;
+ if (($status = filter_read_exact(0)) > 0) {
+ s/HERE/THERE/g
+ }
+ $status ;
+}
+
+1 ;
+EOM
+
+writeFile($filenamebin, <<EOM, <<'EOM') ;
+use $block ;
+EOM
+print "
+HERE I am
+I'm HERE
+HERE today gone tomorrow\n" ;
+EOM
+
+$a = `$Perl "-I." $Inc $filenamebin $redir` ;
+ok(33, ($? >>8) != 0) ;
+ok(34, $a =~ /^filter_read_exact: size parameter must be > 0 at block.pm/) ;
+
+
END {
1 while unlink $filename ;
1 while unlink $filename2 ;
diff --git a/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm b/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm
index fdc96bd20cf..664c8b63c91 100644
--- a/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm
+++ b/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm
@@ -4,23 +4,24 @@
# Author : Johan Vromans
# Created On : Tue Sep 11 15:00:12 1990
# Last Modified By: Johan Vromans
-# Last Modified On: Thu Oct 8 14:57:49 2015
-# Update Count : 1697
+# Last Modified On: Sat May 27 12:11:39 2017
+# Update Count : 1715
# Status : Released
################ Module Preamble ################
-package Getopt::Long;
-
use 5.004;
use strict;
+use warnings;
+
+package Getopt::Long;
use vars qw($VERSION);
-$VERSION = 2.48;
+$VERSION = 2.50;
# For testing versions only.
use vars qw($VERSION_STRING);
-$VERSION_STRING = "2.48";
+$VERSION_STRING = "2.50";
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK);
@@ -1045,7 +1046,8 @@ sub FindOption ($$$$$) {
# Complete the option name, if appropriate.
if ( @hits == 1 && $hits[0] ne $opt ) {
$tryopt = $hits[0];
- $tryopt = lc ($tryopt) if $ignorecase;
+ $tryopt = lc ($tryopt)
+ if $ignorecase > (($bundling && length($tryopt) == 1) ? 1 : 0);
print STDERR ("=> option \"$opt\" -> \"$tryopt\"\n")
if $debug;
}
@@ -1110,10 +1112,23 @@ sub FindOption ($$$$$) {
# Check if there is an option argument available.
if ( $gnu_compat ) {
- my $optargtype = 0; # 0 = none, 1 = empty, 2 = nonempty
- $optargtype = ( !defined($optarg) ? 0 : ( (length($optarg) == 0) ? 1 : 2 ) );
- return (1, $opt, $ctl, undef)
- if (($optargtype == 0) && !$mand);
+ my $optargtype = 0; # none, 1 = empty, 2 = nonempty, 3 = aux
+ if ( defined($optarg) ) {
+ $optargtype = (length($optarg) == 0) ? 1 : 2;
+ }
+ elsif ( defined $rest || @$argv > 0 ) {
+ # GNU getopt_long() does not accept the (optional)
+ # argument to be passed to the option without = sign.
+ # We do, since not doing so breaks existing scripts.
+ $optargtype = 3;
+ }
+ if(($optargtype == 0) && !$mand) {
+ my $val
+ = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT]
+ : $type eq 's' ? ''
+ : 0;
+ return (1, $opt, $ctl, $val);
+ }
return (1, $opt, $ctl, $type eq 's' ? '' : 0)
if $optargtype == 1; # --foo= -> return nothing
}
@@ -1451,7 +1466,7 @@ sub VersionMessage(@) {
my $v = $main::VERSION;
my $fh = $pa->{-output} ||
- ($pa->{-exitval} eq "NOEXIT" || $pa->{-exitval} < 2) ? \*STDOUT : \*STDERR;
+ ( ($pa->{-exitval} eq "NOEXIT" || $pa->{-exitval} < 2) ? \*STDOUT : \*STDERR );
print $fh (defined($pa->{-message}) ? $pa->{-message} : (),
$0, defined $v ? " version $v" : (),
@@ -1753,12 +1768,12 @@ destination for the option:
GetOptions ("library=s" => \@libfiles);
Alternatively, you can specify that the option can have multiple
-values by adding a "@", and pass a scalar reference as the
+values by adding a "@", and pass a reference to a scalar as the
destination:
GetOptions ("library=s@" => \$libfiles);
-Used with the example above, C<@libfiles> (or C<@$libfiles>) would
+Used with the example above, C<@libfiles> c.q. C<@$libfiles> would
contain two strings upon completion: C<"lib/stdlib"> and
C<"lib/extlib">, in that order. It is also possible to specify that
only integer or floating point numbers are acceptable values.
@@ -2322,11 +2337,14 @@ do. Without C<gnu_compat>, C<--opt=> gives an error. With C<gnu_compat>,
C<--opt=> will give option C<opt> and empty value.
This is the way GNU getopt_long() does it.
+Note that C<--opt value> is still accepted, even though GNU
+getopt_long() doesn't.
+
=item gnu_getopt
This is a short way of setting C<gnu_compat> C<bundling> C<permute>
C<no_getopt_compat>. With C<gnu_getopt>, command line handling should be
-fully compatible with GNU getopt_long().
+reasonably compatible with GNU getopt_long().
=item require_order
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
index f9e51845bb4..541befe9048 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
@@ -4,9 +4,9 @@ use strict;
use warnings;
# ABSTRACT: A small, simple, correct HTTP/1.1 client
-our $VERSION = '0.056_001';
+our $VERSION = '0.070';
-use Carp ();
+sub _croak { require Carp; Carp::croak(@_) }
#pod =method new
#pod
@@ -15,35 +15,34 @@ use Carp ();
#pod This constructor returns a new HTTP::Tiny object. Valid attributes include:
#pod
#pod =for :list
-#pod * C<agent> —
-#pod A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If C<agent> — ends in a space character, the default user-agent string is appended.
-#pod * C<cookie_jar> —
-#pod An instance of L<HTTP::CookieJar> — or equivalent class that supports the C<add> and C<cookie_header> methods
-#pod * C<default_headers> —
-#pod A hashref of default headers to apply to requests
-#pod * C<local_address> —
-#pod The local IP address to bind to
-#pod * C<keep_alive> —
-#pod Whether to reuse the last connection (if for the same scheme, host and port) (defaults to 1)
-#pod * C<max_redirect> —
-#pod Maximum number of redirects allowed (defaults to 5)
-#pod * C<max_size> —
-#pod Maximum response size in bytes (only when not using a data callback). If defined, responses larger than this will return an exception.
-#pod * C<http_proxy> —
-#pod URL of a proxy server to use for HTTP connections (default is C<$ENV{http_proxy}> — if set)
-#pod * C<https_proxy> —
-#pod URL of a proxy server to use for HTTPS connections (default is C<$ENV{https_proxy}> — if set)
-#pod * C<proxy> —
-#pod URL of a generic proxy server for both HTTP and HTTPS connections (default is C<$ENV{all_proxy}> — if set)
-#pod * C<no_proxy> —
-#pod List of domain suffixes that should not be proxied. Must be a comma-separated string or an array reference. (default is C<$ENV{no_proxy}> —)
-#pod * C<timeout> —
-#pod Request timeout in seconds (default is 60)
-#pod * C<verify_SSL> —
-#pod A boolean that indicates whether to validate the SSL certificate of an C<https> —
-#pod connection (default is false)
-#pod * C<SSL_options> —
-#pod A hashref of C<SSL_*> — options to pass through to L<IO::Socket::SSL>
+#pod * C<agent> — A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If
+#pod C<agent> — ends in a space character, the default user-agent string is
+#pod appended.
+#pod * C<cookie_jar> — An instance of L<HTTP::CookieJar> — or equivalent class
+#pod that supports the C<add> and C<cookie_header> methods
+#pod * C<default_headers> — A hashref of default headers to apply to requests
+#pod * C<local_address> — The local IP address to bind to
+#pod * C<keep_alive> — Whether to reuse the last connection (if for the same
+#pod scheme, host and port) (defaults to 1)
+#pod * C<max_redirect> — Maximum number of redirects allowed (defaults to 5)
+#pod * C<max_size> — Maximum response size in bytes (only when not using a data
+#pod callback). If defined, responses larger than this will return an
+#pod exception.
+#pod * C<http_proxy> — URL of a proxy server to use for HTTP connections
+#pod (default is C<$ENV{http_proxy}> — if set)
+#pod * C<https_proxy> — URL of a proxy server to use for HTTPS connections
+#pod (default is C<$ENV{https_proxy}> — if set)
+#pod * C<proxy> — URL of a generic proxy server for both HTTP and HTTPS
+#pod connections (default is C<$ENV{all_proxy}> — if set)
+#pod * C<no_proxy> — List of domain suffixes that should not be proxied. Must
+#pod be a comma-separated string or an array reference. (default is
+#pod C<$ENV{no_proxy}> —)
+#pod * C<timeout> — Request timeout in seconds (default is 60) If a socket open,
+#pod read or write takes longer than the timeout, an exception is thrown.
+#pod * C<verify_SSL> — A boolean that indicates whether to validate the SSL
+#pod certificate of an C<https> — connection (default is false)
+#pod * C<SSL_options> — A hashref of C<SSL_*> — options to pass through to
+#pod L<IO::Socket::SSL>
#pod
#pod Passing an explicit C<undef> for C<proxy>, C<http_proxy> or C<https_proxy> will
#pod prevent getting the corresponding proxies from the environment.
@@ -66,7 +65,7 @@ my @attributes;
BEGIN {
@attributes = qw(
cookie_jar default_headers http_proxy https_proxy keep_alive
- local_address max_redirect max_size proxy no_proxy timeout
+ local_address max_redirect max_size proxy no_proxy
SSL_options verify_SSL
);
my %persist_ok = map {; $_ => 1 } qw(
@@ -95,12 +94,23 @@ sub agent {
return $self->{agent};
}
+sub timeout {
+ my ($self, $timeout) = @_;
+ if ( @_ > 1 ) {
+ $self->{timeout} = $timeout;
+ if ($self->{handle}) {
+ $self->{handle}->timeout($timeout);
+ }
+ }
+ return $self->{timeout};
+}
+
sub new {
my($class, %args) = @_;
my $self = {
max_redirect => 5,
- timeout => 60,
+ timeout => defined $args{timeout} ? $args{timeout} : 60,
keep_alive => 1,
verify_SSL => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default
no_proxy => $ENV{no_proxy},
@@ -197,7 +207,7 @@ for my $sub_name ( qw/get head put post delete/ ) {
sub $sub_name {
my (\$self, \$url, \$args) = \@_;
\@_ == 2 || (\@_ == 3 && ref \$args eq 'HASH')
- or Carp::croak(q/Usage: \$http->$sub_name(URL, [HASHREF])/ . "\n");
+ or _croak(q/Usage: \$http->$sub_name(URL, [HASHREF])/ . "\n");
return \$self->request('$req_method', \$url, \$args || {});
}
HERE
@@ -226,7 +236,7 @@ HERE
sub post_form {
my ($self, $url, $data, $args) = @_;
(@_ == 3 || @_ == 4 && ref $args eq 'HASH')
- or Carp::croak(q/Usage: $http->post_form(URL, DATAREF, [HASHREF])/ . "\n");
+ or _croak(q/Usage: $http->post_form(URL, DATAREF, [HASHREF])/ . "\n");
my $headers = {};
while ( my ($key, $value) = each %{$args->{headers} || {}} ) {
@@ -271,7 +281,16 @@ sub post_form {
sub mirror {
my ($self, $url, $file, $args) = @_;
@_ == 3 || (@_ == 4 && ref $args eq 'HASH')
- or Carp::croak(q/Usage: $http->mirror(URL, FILE, [HASHREF])/ . "\n");
+ or _croak(q/Usage: $http->mirror(URL, FILE, [HASHREF])/ . "\n");
+
+ if ( exists $args->{headers} ) {
+ my $headers = {};
+ while ( my ($key, $value) = each %{$args->{headers} || {}} ) {
+ $headers->{lc $key} = $value;
+ }
+ $args->{headers} = $headers;
+ }
+
if ( -e $file and my $mtime = (stat($file))[9] ) {
$args->{headers}{'if-modified-since'} ||= $self->_http_date($mtime);
}
@@ -279,16 +298,16 @@ sub mirror {
require Fcntl;
sysopen my $fh, $tempfile, Fcntl::O_CREAT()|Fcntl::O_EXCL()|Fcntl::O_WRONLY()
- or Carp::croak(qq/Error: Could not create temporary file $tempfile for downloading: $!\n/);
+ or _croak(qq/Error: Could not create temporary file $tempfile for downloading: $!\n/);
binmode $fh;
$args->{data_callback} = sub { print {$fh} $_[0] };
my $response = $self->request('GET', $url, $args);
close $fh
- or Carp::croak(qq/Error: Caught error closing temporary file $tempfile: $!\n/);
+ or _croak(qq/Error: Caught error closing temporary file $tempfile: $!\n/);
if ( $response->{success} ) {
rename $tempfile, $file
- or Carp::croak(qq/Error replacing $file with $tempfile: $!\n/);
+ or _croak(qq/Error replacing $file with $tempfile: $!\n/);
my $lm = $response->{headers}{'last-modified'};
if ( $lm and my $mtime = $self->_parse_http_date($lm) ) {
utime $mtime, $mtime, $file;
@@ -337,6 +356,11 @@ sub mirror {
#pod * C<data_callback> —
#pod A code reference that will be called for each chunks of the response
#pod body received.
+#pod * C<peer> —
+#pod Override host resolution and force all connections to go only to a
+#pod specific peer address, regardless of the URL of the request. This will
+#pod include any redirections! This options should be used with extreme
+#pod caution (e.g. debugging or very special circumstances).
#pod
#pod The C<Host> header is generated from the URL in accordance with RFC 2616. It
#pod is a fatal error to specify C<Host> in the C<headers> option. Other headers
@@ -378,6 +402,10 @@ sub mirror {
#pod A hashref of header fields. All header field names will be normalized
#pod to be lower case. If a header is repeated, the value will be an arrayref;
#pod it will otherwise be a scalar string containing the value
+#pod * C<redirects>
+#pod If this field exists, it is an arrayref of response hash references from
+#pod redirects in the same order that redirections occurred. If it does
+#pod not exist, then no redirections occurred.
#pod
#pod On an exception during the execution of the request, the C<status> field will
#pod contain 599, and the C<content> field will contain the text of the exception.
@@ -389,7 +417,7 @@ my %idempotent = map { $_ => 1 } qw/GET HEAD PUT DELETE OPTIONS TRACE/;
sub request {
my ($self, $method, $url, $args) = @_;
@_ == 3 || (@_ == 4 && ref $args eq 'HASH')
- or Carp::croak(q/Usage: $http->request(METHOD, URL, [HASHREF])/ . "\n");
+ or _croak(q/Usage: $http->request(METHOD, URL, [HASHREF])/ . "\n");
$args ||= {}; # we keep some state in this during _request
# RFC 2616 Section 8.1.4 mandates a single retry on broken socket
@@ -403,6 +431,7 @@ sub request {
if (my $e = $@) {
# maybe we got a response hash thrown from somewhere deep
if ( ref $e eq 'HASH' && exists $e->{status} ) {
+ $e->{redirects} = delete $args->{_redirects} if @{ $args->{_redirects} || []};
return $e;
}
@@ -417,7 +446,8 @@ sub request {
headers => {
'content-type' => 'text/plain',
'content-length' => length $e,
- }
+ },
+ ( @{$args->{_redirects} || []} ? (redirects => delete $args->{_redirects}) : () ),
};
}
return $response;
@@ -440,13 +470,13 @@ sub request {
sub www_form_urlencode {
my ($self, $data) = @_;
(@_ == 2 && ref $data)
- or Carp::croak(q/Usage: $http->www_form_urlencode(DATAREF)/ . "\n");
+ or _croak(q/Usage: $http->www_form_urlencode(DATAREF)/ . "\n");
(ref $data eq 'HASH' || ref $data eq 'ARRAY')
- or Carp::croak("form data must be a hash or array reference\n");
+ or _croak("form data must be a hash or array reference\n");
my @params = ref $data eq 'HASH' ? %$data : @$data;
@params % 2 == 0
- or Carp::croak("form data reference must have an even number of terms\n");
+ or _croak("form data reference must have an even number of terms\n");
my @terms;
while( @params ) {
@@ -513,6 +543,41 @@ sub can_ssl {
wantarray ? ($ok, $reason) : $ok;
}
+#pod =method connected
+#pod
+#pod $host = $http->connected;
+#pod ($host, $port) = $http->connected;
+#pod
+#pod Indicates if a connection to a peer is being kept alive, per the C<keep_alive>
+#pod option.
+#pod
+#pod In scalar context, returns the peer host and port, joined with a colon, or
+#pod C<undef> (if no peer is connected).
+#pod In list context, returns the peer host and port or an empty list (if no peer
+#pod is connected).
+#pod
+#pod B<Note>: This method cannot reliably be used to discover whether the remote
+#pod host has closed its end of the socket.
+#pod
+#pod =cut
+
+sub connected {
+ my ($self) = @_;
+
+ # If a socket exists...
+ if ($self->{handle} && $self->{handle}{fh}) {
+ my $socket = $self->{handle}{fh};
+
+ # ...and is connected, return the peer host and port.
+ if ($socket->connected) {
+ return wantarray
+ ? ($socket->peerhost, $socket->peerport)
+ : join(':', $socket->peerhost, $socket->peerport);
+ }
+ }
+ return;
+}
+
#--------------------------------------------------------------------------#
# private methods
#--------------------------------------------------------------------------#
@@ -543,17 +608,19 @@ sub _request {
headers => {},
};
+ my $peer = $args->{peer} || $host;
+
# We remove the cached handle so it is not reused in the case of redirect.
# If all is well, it will be recached at the end of _request. We only
# reuse for the same scheme, host and port
my $handle = delete $self->{handle};
if ( $handle ) {
- unless ( $handle->can_reuse( $scheme, $host, $port ) ) {
+ unless ( $handle->can_reuse( $scheme, $host, $port, $peer ) ) {
$handle->close;
undef $handle;
}
}
- $handle ||= $self->_open_handle( $request, $scheme, $host, $port );
+ $handle ||= $self->_open_handle( $request, $scheme, $host, $port, $peer );
$self->_prepare_headers_and_cb($request, $args, $url, $auth);
$handle->write_request($request);
@@ -563,11 +630,7 @@ sub _request {
until (substr($response->{status},0,1) ne '1');
$self->_update_cookie_jar( $url, $response ) if $self->{cookie_jar};
-
- if ( my @redir_args = $self->_maybe_redirect($request, $response, $args) ) {
- $handle->close;
- return $self->_request(@redir_args, $args);
- }
+ my @redir_args = $self->_maybe_redirect($request, $response, $args);
my $known_message_length;
if ($method eq 'HEAD' || $response->{status} =~ /^[23]04/) {
@@ -575,7 +638,9 @@ sub _request {
$known_message_length = 1;
}
else {
- my $data_cb = $self->_prepare_data_cb($response, $args);
+ # Ignore any data callbacks during redirection.
+ my $cb_args = @redir_args ? +{} : $args;
+ my $data_cb = $self->_prepare_data_cb($response, $cb_args);
$known_message_length = $handle->read_body($data_cb, $response);
}
@@ -592,11 +657,21 @@ sub _request {
$response->{success} = substr( $response->{status}, 0, 1 ) eq '2';
$response->{url} = $url;
+
+ # Push the current response onto the stack of redirects if redirecting.
+ if (@redir_args) {
+ push @{$args->{_redirects}}, $response;
+ return $self->_request(@redir_args, $args);
+ }
+
+ # Copy the stack of redirects into the response before returning.
+ $response->{redirects} = delete $args->{_redirects}
+ if @{$args->{_redirects}};
return $response;
}
sub _open_handle {
- my ($self, $request, $scheme, $host, $port) = @_;
+ my ($self, $request, $scheme, $host, $port, $peer) = @_;
my $handle = HTTP::Tiny::Handle->new(
timeout => $self->{timeout},
@@ -610,7 +685,7 @@ sub _open_handle {
return $self->_proxy_connect( $request, $handle );
}
else {
- return $handle->connect($scheme, $host, $port);
+ return $handle->connect($scheme, $host, $port, $peer);
}
}
@@ -619,14 +694,14 @@ sub _proxy_connect {
my @proxy_vars;
if ( $request->{scheme} eq 'https' ) {
- Carp::croak(qq{No https_proxy defined}) unless $self->{https_proxy};
+ _croak(qq{No https_proxy defined}) unless $self->{https_proxy};
@proxy_vars = $self->_split_proxy( https_proxy => $self->{https_proxy} );
if ( $proxy_vars[0] eq 'https' ) {
- Carp::croak(qq{Can't proxy https over https: $request->{uri} via $self->{https_proxy}});
+ _croak(qq{Can't proxy https over https: $request->{uri} via $self->{https_proxy}});
}
}
else {
- Carp::croak(qq{No http_proxy defined}) unless $self->{http_proxy};
+ _croak(qq{No http_proxy defined}) unless $self->{http_proxy};
@proxy_vars = $self->_split_proxy( http_proxy => $self->{http_proxy} );
}
@@ -636,7 +711,7 @@ sub _proxy_connect {
$self->_add_basic_auth_header( $request, 'proxy-authorization' => $p_auth );
}
- $handle->connect($p_scheme, $p_host, $p_port);
+ $handle->connect($p_scheme, $p_host, $p_port, $p_host);
if ($request->{scheme} eq 'https') {
$self->_create_proxy_tunnel( $request, $handle );
@@ -658,7 +733,7 @@ sub _split_proxy {
defined($scheme) && length($scheme) && length($host) && length($port)
&& $path_query eq '/'
) {
- Carp::croak(qq{$type URL must be in format http[s]://[auth@]<host>:<port>/\n});
+ _croak(qq{$type URL must be in format http[s]://[auth@]<host>:<port>/\n});
}
return ($scheme, $host, $port, $auth);
@@ -710,6 +785,7 @@ sub _prepare_headers_and_cb {
next unless defined;
while (my ($k, $v) = each %$_) {
$request->{headers}{lc $k} = $v;
+ $request->{header_case}{lc $k} = $k;
}
}
@@ -806,7 +882,7 @@ sub _validate_cookie_jar {
# duck typing
for my $method ( qw/add cookie_header/ ) {
- Carp::croak(qq/Cookie jar must provide the '$method' method\n/)
+ _croak(qq/Cookie jar must provide the '$method' method\n/)
unless ref($jar) && ref($jar)->can($method);
}
@@ -817,9 +893,11 @@ sub _maybe_redirect {
my ($self, $request, $response, $args) = @_;
my $headers = $response->{headers};
my ($status, $method) = ($response->{status}, $request->{method});
+ $args->{_redirects} ||= [];
+
if (($status eq '303' or ($status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/))
and $headers->{location}
- and ++$args->{redirects} <= $self->{max_redirect}
+ and @{$args->{_redirects}} < $self->{max_redirect}
) {
my $location = ($headers->{location} =~ /^\//)
? "$request->{scheme}://$request->{host_port}$headers->{location}"
@@ -915,6 +993,7 @@ use warnings;
use Errno qw[EINTR EPIPE];
use IO::Socket qw[SOCK_STREAM];
+use Socket qw[SOL_SOCKET SO_KEEPALIVE];
# PERL_HTTP_TINY_IPV4_ONLY is a private environment variable to force old
# behavior if someone is unable to boostrap CPAN from a new perl install; it is
@@ -936,6 +1015,7 @@ my $Printable = sub {
};
my $Token = qr/[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/;
+my $Field_Content = qr/[[:print:]]+ (?: [\x20\x09]+ [[:print:]]+ )*/x;
sub new {
my ($class, %args) = @_;
@@ -950,9 +1030,20 @@ sub new {
}, $class;
}
+sub timeout {
+ my ($self, $timeout) = @_;
+ if ( @_ > 1 ) {
+ $self->{timeout} = $timeout;
+ if ( $self->{fh} && $self->{fh}->can('timeout') ) {
+ $self->{fh}->timeout($timeout);
+ }
+ }
+ return $self->{timeout};
+}
+
sub connect {
- @_ == 4 || die(q/Usage: $handle->connect(scheme, host, port)/ . "\n");
- my ($self, $scheme, $host, $port) = @_;
+ @_ == 5 || die(q/Usage: $handle->connect(scheme, host, port, peer)/ . "\n");
+ my ($self, $scheme, $host, $port, $peer) = @_;
if ( $scheme eq 'https' ) {
$self->_assert_ssl;
@@ -961,23 +1052,30 @@ sub connect {
die(qq/Unsupported URL scheme '$scheme'\n/);
}
$self->{fh} = $SOCKET_CLASS->new(
- PeerHost => $host,
+ PeerHost => $peer,
PeerPort => $port,
$self->{local_address} ?
( LocalAddr => $self->{local_address} ) : (),
Proto => 'tcp',
Type => SOCK_STREAM,
Timeout => $self->{timeout},
- KeepAlive => !!$self->{keep_alive}
) or die(qq/Could not connect to '$host:$port': $@\n/);
binmode($self->{fh})
or die(qq/Could not binmode() socket: '$!'\n/);
+ if ( $self->{keep_alive} ) {
+ unless ( defined( $self->{fh}->setsockopt( SOL_SOCKET, SO_KEEPALIVE, 1 ) ) ) {
+ CORE::close($self->{fh});
+ die(qq/Could not set SO_KEEPALIVE on socket: '$!'\n/);
+ }
+ }
+
$self->start_ssl($host) if $scheme eq 'https';
$self->{scheme} = $scheme;
$self->{host} = $host;
+ $self->{peer} = $peer;
$self->{port} = $port;
$self->{pid} = $$;
$self->{tid} = _get_tid();
@@ -1174,38 +1272,72 @@ sub read_header_lines {
sub write_request {
@_ == 2 || die(q/Usage: $handle->write_request(request)/ . "\n");
my($self, $request) = @_;
- $self->write_request_header(@{$request}{qw/method uri headers/});
+ $self->write_request_header(@{$request}{qw/method uri headers header_case/});
$self->write_body($request) if $request->{cb};
return;
}
-my %HeaderCase = (
- 'content-md5' => 'Content-MD5',
- 'etag' => 'ETag',
- 'te' => 'TE',
- 'www-authenticate' => 'WWW-Authenticate',
- 'x-xss-protection' => 'X-XSS-Protection',
+# Standard request header names/case from HTTP/1.1 RFCs
+my @rfc_request_headers = qw(
+ Accept Accept-Charset Accept-Encoding Accept-Language Authorization
+ Cache-Control Connection Content-Length Expect From Host
+ If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since
+ Max-Forwards Pragma Proxy-Authorization Range Referer TE Trailer
+ Transfer-Encoding Upgrade User-Agent Via
+);
+
+my @other_request_headers = qw(
+ Content-Encoding Content-MD5 Content-Type Cookie DNT Date Origin
+ X-XSS-Protection
);
+my %HeaderCase = map { lc($_) => $_ } @rfc_request_headers, @other_request_headers;
+
# to avoid multiple small writes and hence nagle, you can pass the method line or anything else to
# combine writes.
sub write_header_lines {
- (@_ == 2 || @_ == 3 && ref $_[1] eq 'HASH') || die(q/Usage: $handle->write_header_lines(headers[,prefix])/ . "\n");
- my($self, $headers, $prefix_data) = @_;
+ (@_ >= 2 && @_ <= 4 && ref $_[1] eq 'HASH') || die(q/Usage: $handle->write_header_lines(headers, [header_case, prefix])/ . "\n");
+ my($self, $headers, $header_case, $prefix_data) = @_;
+ $header_case ||= {};
my $buf = (defined $prefix_data ? $prefix_data : '');
+
+ # Per RFC, control fields should be listed first
+ my %seen;
+ for my $k ( qw/host cache-control expect max-forwards pragma range te/ ) {
+ next unless exists $headers->{$k};
+ $seen{$k}++;
+ my $field_name = $HeaderCase{$k};
+ my $v = $headers->{$k};
+ for (ref $v eq 'ARRAY' ? @$v : $v) {
+ $_ = '' unless defined $_;
+ $buf .= "$field_name: $_\x0D\x0A";
+ }
+ }
+
+ # Other headers sent in arbitrary order
while (my ($k, $v) = each %$headers) {
my $field_name = lc $k;
+ next if $seen{$field_name};
if (exists $HeaderCase{$field_name}) {
$field_name = $HeaderCase{$field_name};
}
else {
+ if (exists $header_case->{$field_name}) {
+ $field_name = $header_case->{$field_name};
+ }
+ else {
+ $field_name =~ s/\b(\w)/\u$1/g;
+ }
$field_name =~ /\A $Token+ \z/xo
or die(q/Invalid HTTP header field name: / . $Printable->($field_name) . "\n");
- $field_name =~ s/\b(\w)/\u$1/g;
$HeaderCase{lc $field_name} = $field_name;
}
for (ref $v eq 'ARRAY' ? @$v : $v) {
+ # unwrap a field value if pre-wrapped by user
+ s/\x0D?\x0A\s+/ /g;
+ die(qq/Invalid HTTP header field value ($field_name): / . $Printable->($_). "\n")
+ unless $_ eq '' || /\A $Field_Content \z/xo;
$_ = '' unless defined $_;
$buf .= "$field_name: $_\x0D\x0A";
}
@@ -1332,8 +1464,12 @@ sub write_chunked_body {
$self->write($chunk);
}
$self->write("0\x0D\x0A");
- $self->write_header_lines($request->{trailer_cb}->())
- if ref $request->{trailer_cb} eq 'CODE';
+ if ( ref $request->{trailer_cb} eq 'CODE' ) {
+ $self->write_header_lines($request->{trailer_cb}->())
+ }
+ else {
+ $self->write("\x0D\x0A");
+ }
return $len;
}
@@ -1360,10 +1496,10 @@ sub read_response_header {
}
sub write_request_header {
- @_ == 4 || die(q/Usage: $handle->write_request_header(method, request_uri, headers)/ . "\n");
- my ($self, $method, $request_uri, $headers) = @_;
+ @_ == 5 || die(q/Usage: $handle->write_request_header(method, request_uri, headers, header_case)/ . "\n");
+ my ($self, $method, $request_uri, $headers, $header_case) = @_;
- return $self->write_header_lines($headers, "$method $request_uri HTTP/1.1\x0D\x0A");
+ return $self->write_header_lines($headers, $header_case, "$method $request_uri HTTP/1.1\x0D\x0A");
}
sub _do_timeout {
@@ -1418,7 +1554,7 @@ sub _assert_ssl {
}
sub can_reuse {
- my ($self,$scheme,$host,$port) = @_;
+ my ($self,$scheme,$host,$port,$peer) = @_;
return 0 if
$self->{pid} != $$
|| $self->{tid} != _get_tid()
@@ -1426,6 +1562,7 @@ sub can_reuse {
|| $scheme ne $self->{scheme}
|| $host ne $self->{host}
|| $port ne $self->{port}
+ || $peer ne $self->{peer}
|| eval { $self->can_read(0) }
|| $@ ;
return 1;
@@ -1436,11 +1573,16 @@ sub can_reuse {
sub _find_CA_file {
my $self = shift();
- if ( $self->{SSL_options}->{SSL_ca_file} ) {
- unless ( -r $self->{SSL_options}->{SSL_ca_file} ) {
- die qq/SSL_ca_file '$self->{SSL_options}->{SSL_ca_file}' not found or not readable\n/;
+ my $ca_file =
+ defined( $self->{SSL_options}->{SSL_ca_file} )
+ ? $self->{SSL_options}->{SSL_ca_file}
+ : $ENV{SSL_CERT_FILE};
+
+ if ( defined $ca_file ) {
+ unless ( -r $ca_file ) {
+ die qq/SSL_ca_file '$ca_file' not found or not readable\n/;
}
- return $self->{SSL_options}->{SSL_ca_file};
+ return $ca_file;
}
local @INC = @INC;
@@ -1516,7 +1658,7 @@ HTTP::Tiny - A small, simple, correct HTTP/1.1 client
=head1 VERSION
-version 0.056
+version 0.070
=head1 SYNOPSIS
@@ -1605,7 +1747,7 @@ C<no_proxy> — List of domain suffixes that should not be proxied. Must be a c
=item *
-C<timeout> — Request timeout in seconds (default is 60)
+C<timeout> — Request timeout in seconds (default is 60) If a socket open, read or write takes longer than the timeout, an exception is thrown.
=item *
@@ -1725,6 +1867,10 @@ C<trailer_callback> — A code reference that will be called if it exists to pro
C<data_callback> — A code reference that will be called for each chunks of the response body received.
+=item *
+
+C<peer> — Override host resolution and force all connections to go only to a specific peer address, regardless of the URL of the request. This will include any redirections! This options should be used with extreme caution (e.g. debugging or very special circumstances).
+
=back
The C<Host> header is generated from the URL in accordance with RFC 2616. It
@@ -1774,6 +1920,10 @@ C<content> — The body of the response. If the response does not have any cont
C<headers> — A hashref of header fields. All header field names will be normalized to be lower case. If a header is repeated, the value will be an arrayref; it will otherwise be a scalar string containing the value
+=item *
+
+C<redirects> If this field exists, it is an arrayref of response hash references from redirects in the same order that redirections occurred. If it does not exist, then no redirections occurred.
+
=back
On an exception during the execution of the request, the C<status> field will
@@ -1806,6 +1956,22 @@ In scalar context, returns a boolean indicating if SSL is available.
In list context, returns the boolean and a (possibly multi-line) string of
errors indicating why SSL isn't available.
+=head2 connected
+
+ $host = $http->connected;
+ ($host, $port) = $http->connected;
+
+Indicates if a connection to a peer is being kept alive, per the C<keep_alive>
+option.
+
+In scalar context, returns the peer host and port, joined with a colon, or
+C<undef> (if no peer is connected).
+In list context, returns the peer host and port or an empty list (if no peer
+is connected).
+
+B<Note>: This method cannot reliably be used to discover whether the remote
+host has closed its end of the socket.
+
=for Pod::Coverage SSL_options
agent
cookie_jar
@@ -1867,6 +2033,10 @@ attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. If you are
concerned about security, you should enable this option.
Certificate verification requires a file containing trusted CA certificates.
+
+If the environment variable C<SSL_CERT_FILE> is present, HTTP::Tiny
+will try to find a CA certificate file in that location.
+
If the L<Mozilla::CA> module is installed, HTTP::Tiny will use the CA file
included with it as a source of trusted CA's. (This means you trust Mozilla,
the author of Mozilla::CA, the CPAN mirror where you got Mozilla::CA, the
@@ -2025,6 +2195,13 @@ Only 'chunked' C<Transfer-Encoding> is supported.
There is no support for a Request-URI of '*' for the 'OPTIONS' request.
+=item *
+
+Headers mentioned in the RFCs and some other, well-known headers are
+generated with their canonical case. Other headers are sent in the
+case provided by the user. Except for control headers (which are sent first),
+headers are sent in arbitrary order.
+
=back
Despite the limitations listed above, HTTP::Tiny is considered
@@ -2104,7 +2281,7 @@ David Golden <dagolden@cpan.org>
=head1 CONTRIBUTORS
-=for stopwords Alan Gardner Alessandro Ghedini Brad Gilbert Chris Nehren Weyl Claes Jakobsson Clinton Gormley Dean Pearce Edward Zborowski James Raspass Jeremy Mates Jess Robinson Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Olaf Alders Olivier Mengué Petr Písař Sören Kornetzki Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook
+=for stopwords Alan Gardner Alessandro Ghedini A. Sinan Unur Brad Gilbert brian m. carlson Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Golden Dean Pearce Edward Zborowski James Raspass Jeremy Mates Jess Robinson Karen Etheridge Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Nicolas Rochelemagne Olaf Alders Olivier Mengué Petr Písař SkyMarshal Sören Kornetzki Steve Grazzini Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook
=over 4
@@ -2118,10 +2295,18 @@ Alessandro Ghedini <al3xbio@gmail.com>
=item *
+A. Sinan Unur <nanis@cpan.org>
+
+=item *
+
Brad Gilbert <bgills@cpan.org>
=item *
+brian m. carlson <sandals@crustytoothpaste.net>
+
+=item *
+
Chris Nehren <apeiron@cpan.org>
=item *
@@ -2138,6 +2323,14 @@ Clinton Gormley <clint@traveljury.com>
=item *
+Craig A. Berry <craigberry@mac.com>
+
+=item *
+
+David Golden <xdg@xdg.me>
+
+=item *
+
Dean Pearce <pearce@pythian.com>
=item *
@@ -2158,6 +2351,10 @@ Jess Robinson <castaway@desert-island.me.uk>
=item *
+Karen Etheridge <ether@cpan.org>
+
+=item *
+
Lukas Eklund <leklund@gmail.com>
=item *
@@ -2174,6 +2371,10 @@ Mike Doherty <doherty@cpan.org>
=item *
+Nicolas Rochelemagne <rochelemagne@cpanel.net>
+
+=item *
+
Olaf Alders <olaf@wundersolutions.com>
=item *
@@ -2186,10 +2387,18 @@ Petr Písař <ppisar@redhat.com>
=item *
+SkyMarshal <skymarshal1729@gmail.com>
+
+=item *
+
SĂśren Kornetzki <soeren.kornetzki@delti.com>
=item *
+Steve Grazzini <steve.grazzini@grantstreet.com>
+
+=item *
+
Syohei YOSHIDA <syohex@gmail.com>
=item *
@@ -2208,7 +2417,7 @@ Tony Cook <tony@develop-help.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2015 by Christian Hansen.
+This software is copyright (c) 2016 by Christian Hansen.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/001_api.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/001_api.t
index 879a22518ff..3e6864e5ceb 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/001_api.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/001_api.t
@@ -12,6 +12,7 @@ my @accessors = qw(
);
my @methods = qw(
new get head put post delete post_form request mirror www_form_urlencode can_ssl
+ connected
);
my %api;
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/002_croakage.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/002_croakage.t
index 9e51b5d4edf..ac3c8b93e44 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/002_croakage.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/002_croakage.t
@@ -4,7 +4,8 @@ use strict;
use warnings;
use Test::More;
-use t::Util qw[tmpfile monkey_patch set_socket_source];
+use lib 't';
+use Util qw[tmpfile monkey_patch set_socket_source];
use HTTP::Tiny;
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/020_headers.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/020_headers.t
index c10e075a686..a4254e5709f 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/020_headers.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/020_headers.t
@@ -4,7 +4,8 @@ use strict;
use warnings;
use Test::More qw[no_plan];
-use t::Util qw[tmpfile rewind $CRLF $LF];
+use lib 't';
+use Util qw[tmpfile rewind $CRLF $LF];
use HTTP::Tiny;
{
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/100_get.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/100_get.t
index 401fa7dfa98..5dbf3e8a6c9 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/100_get.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/100_get.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
hashify connect_args set_socket_source sort_headers $CRLF $LF];
use HTTP::Tiny;
@@ -104,6 +105,9 @@ for my $file ( dir_list("corpus", qr/^get/ ) ) {
else {
$check_expected->( $response->{content}, "$label content" );
}
+
+ ok ( ! exists $response->{redirects}, "$label redirects array doesn't exist")
+ or diag explain $response->{redirects};
}
done_testing;
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/101_head.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/101_head.t
index 7a2e6ce138e..ace074566cc 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/101_head.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/101_head.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
set_socket_source sort_headers $CRLF $LF];
use HTTP::Tiny;
BEGIN { monkey_patch() }
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/102_put.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/102_put.t
index 42f3ed9a11a..2fe3626dbc9 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/102_put.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/102_put.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
set_socket_source sort_headers $CRLF $LF];
use HTTP::Tiny;
BEGIN { monkey_patch() }
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/103_delete.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/103_delete.t
index cbda117452e..66d345b698e 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/103_delete.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/103_delete.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
set_socket_source sort_headers $CRLF $LF];
use HTTP::Tiny;
BEGIN { monkey_patch() }
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/104_post.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/104_post.t
index 5dc518aa1f2..9c765bd56bb 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/104_post.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/104_post.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
set_socket_source sort_headers $CRLF $LF];
use HTTP::Tiny;
BEGIN { monkey_patch() }
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/110_mirror.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/110_mirror.t
index e31b747e955..de38fd128ad 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/110_mirror.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/110_mirror.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
set_socket_source sort_headers $CRLF $LF];
use HTTP::Tiny;
use File::Temp qw/tempdir/;
@@ -51,6 +52,11 @@ for my $file ( dir_list("corpus", qr/^mirror/ ) ) {
open my $fh, ">", $tempfile;
close $fh;
utime $mtime, $mtime, $tempfile;
+ if ($^O eq 'MSWin32') {
+ # Deal with stat and daylight savings issues on Windows
+ # by reading back mtime
+ $timestamp{$url_basename} = (stat $tempfile)[9];
+ }
}
# setup mocking and test
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/130_redirect.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/130_redirect.t
index 5de1d172aae..cc8c15cd89c 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/130_redirect.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/130_redirect.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
hashify connect_args clear_socket_source set_socket_source sort_headers
$CRLF $LF];
@@ -17,6 +18,7 @@ for my $file ( dir_list("corpus", qr/^redirect/ ) ) {
my $data = do { local (@ARGV,$/) = $file; <> };
my ($params, @case_pairs) = split /--+\n/, $data;
my $case = parse_case($params);
+ my $number_of_requests = @case_pairs / 2;
my $url = $case->{url}[0];
my $method = $case->{method}[0] || 'GET';
@@ -49,9 +51,8 @@ for my $file ( dir_list("corpus", qr/^redirect/ ) ) {
my $http = HTTP::Tiny->new(keep_alive => 0, %new_args);
my $response = $http->request(@$call_args);
-
- my $calls = 0
- + (defined($new_args{max_redirect}) ? $new_args{max_redirect} : 5);
+ my $max_redirects = defined($new_args{max_redirect}) ? $new_args{max_redirect} : 5;
+ my $calls = 0 + $max_redirects;
for my $i ( 0 .. $calls ) {
last unless @socket_pairs;
@@ -66,6 +67,12 @@ for my $file ( dir_list("corpus", qr/^redirect/ ) ) {
is ( $response->{content}, $exp_content, "$label content" );
+ my $number_of_redirects =
+ $max_redirects < $number_of_requests ? $max_redirects : $number_of_requests - 1;
+ is ( @{ $response->{redirects} || [] }, $number_of_redirects,
+ "$label redirects array size"
+ ) or diag explain $response->{redirects};
+
if ( $case->{expected_url} ) {
is ( $response->{url}, $case->{expected_url}[0], "$label response URL" );
}
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/140_proxy.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/140_proxy.t
index eda3d6f33a6..dd384628247 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/140_proxy.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/140_proxy.t
@@ -6,7 +6,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[ monkey_patch ];
+use lib 't';
+use Util qw[ monkey_patch ];
use HTTP::Tiny;
BEGIN {
@@ -67,6 +68,10 @@ for my $var ( qw/http_proxy https_proxy all_proxy/ ) {
# ignore HTTP_PROXY with REQUEST_METHOD
{
+ # in case previous clean-up failed for some reason
+ delete local @ENV{'http_proxy', 'https_proxy', 'all_proxy',
+ 'HTTP_PROXY', 'HTTPS_PROXY', 'ALL_PROXY'};
+
local $ENV{HTTP_PROXY} = "http://localhost:8080";
local $ENV{REQUEST_METHOD} = 'GET';
my $c = HTTP::Tiny->new();
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/150_post_form.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/150_post_form.t
index edb0601f73b..790cbc0481b 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/150_post_form.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/150_post_form.t
@@ -6,13 +6,15 @@ use open IN => ':raw';
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
set_socket_source sort_headers $CRLF $LF];
use HTTP::Tiny;
BEGIN { monkey_patch() }
for my $file ( dir_list("corpus", qr/^form/ ) ) {
my $data = do { local (@ARGV,$/) = $file; <> };
+ $data =~ s/$CRLF/$LF/gm if $^O eq 'MSWin32';
my ($params, $expect_req, $give_res) = split /--+\n/, $data;
# cleanup source data
my $version = HTTP::Tiny->VERSION || 0;
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/160_cookies.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/160_cookies.t
index 1702fa32c41..03b9184fe1a 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/160_cookies.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/160_cookies.t
@@ -5,14 +5,15 @@ use warnings;
use File::Basename;
use Test::More 0.96;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
hashify connect_args clear_socket_source set_socket_source sort_headers
$CRLF $LF];
use HTTP::Tiny;
BEGIN { monkey_patch() }
-SKIP: for my $class ( qw/t::SimpleCookieJar HTTP::CookieJar/ ) {
+SKIP: for my $class ( qw/SimpleCookieJar HTTP::CookieJar/ ) {
subtest $class => sub {
eval "require $class; 1"
@@ -23,7 +24,7 @@ SKIP: for my $class ( qw/t::SimpleCookieJar HTTP::CookieJar/ ) {
my $data = do { local (@ARGV,$/) = $file; <> };
my @cases = split /--+\n/, $data;
- my $jar = t::SimpleCookieJar->new();
+ my $jar = SimpleCookieJar->new();
my $http = undef;
while (@cases) {
my ($params, $expect_req, $give_res) = splice( @cases, 0, 3 );
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/161_basic_auth.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/161_basic_auth.t
index 3fd233da1d4..379c5cca9e7 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/161_basic_auth.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/161_basic_auth.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
hashify connect_args clear_socket_source set_socket_source sort_headers
$CRLF $LF];
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/162_proxy_auth.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/162_proxy_auth.t
index 400c9d91ee5..cf12e8873fe 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/162_proxy_auth.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/162_proxy_auth.t
@@ -5,7 +5,8 @@ use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
+use lib 't';
+use Util qw[tmpfile rewind slurp monkey_patch dir_list parse_case
hashify connect_args clear_socket_source set_socket_source sort_headers
$CRLF $LF];
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/170_keepalive.t b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/170_keepalive.t
index 8b265120fec..02162ae1757 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/170_keepalive.t
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/170_keepalive.t
@@ -4,7 +4,8 @@ use strict;
use warnings;
use File::Basename;
use Test::More 0.88;
-use t::Util qw[
+use lib 't';
+use Util qw[
tmpfile monkey_patch dir_list clear_socket_source set_socket_source
$CRLF
];
diff --git a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/Util.pm b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/Util.pm
index 448c0312b24..2e85b04823d 100644
--- a/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/Util.pm
+++ b/gnu/usr.bin/perl/cpan/HTTP-Tiny/t/Util.pm
@@ -1,4 +1,4 @@
-package t::Util;
+package Util;
use strict;
use warnings;
@@ -151,9 +151,10 @@ sub sort_headers {
*HTTP::Tiny::Handle::can_read = sub {1};
*HTTP::Tiny::Handle::can_write = sub {1};
*HTTP::Tiny::Handle::connect = sub {
- my ($self, $scheme, $host, $port) = @_;
+ my ($self, $scheme, $host, $port, $peer) = @_;
$self->{host} = $monkey_host = $host;
$self->{port} = $monkey_port = $port;
+ $self->{peer} = $peer;
$self->{scheme} = $scheme;
$self->{fh} = shift @req_fh;
$self->{pid} = $$;
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL b/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL
index a30269176db..59b708face6 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL
@@ -3,8 +3,9 @@
use strict ;
require 5.006 ;
-$::VERSION = '2.069' ;
+$::VERSION = '2.074' ;
+use lib '.';
use private::MakeUtil;
use ExtUtils::MakeMaker 5.16 ;
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm
index 897b1e26b54..86da8340ff0 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm
@@ -7,17 +7,17 @@ use Carp ;
use IO::Handle ;
use Scalar::Util qw(dualvar);
-use IO::Compress::Base::Common 2.069 ;
-use Compress::Raw::Zlib 2.069 ;
-use IO::Compress::Gzip 2.069 ;
-use IO::Uncompress::Gunzip 2.069 ;
+use IO::Compress::Base::Common 2.074 ;
+use Compress::Raw::Zlib 2.074 ;
+use IO::Compress::Gzip 2.074 ;
+use IO::Uncompress::Gunzip 2.074 ;
use strict ;
use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -461,7 +461,7 @@ sub inflate
package Compress::Zlib ;
-use IO::Compress::Gzip::Constants 2.069 ;
+use IO::Compress::Gzip::Constants 2.074 ;
sub memGzip($)
{
@@ -1478,21 +1478,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1500,7 +1500,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 1995-2015 Paul Marquess. All rights reserved.
+Copyright (c) 1995-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/File/GlobMapper.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/File/GlobMapper.pm
index 76d4bed1178..a96cf3e8324 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/File/GlobMapper.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/File/GlobMapper.pm
@@ -149,7 +149,7 @@ sub _parseBit
if ($2 eq ',')
{
- return _unmatched "("
+ return _unmatched("(")
if $depth ;
$out .= '|';
@@ -160,7 +160,7 @@ sub _parseBit
}
elsif ($2 eq ')')
{
- return _unmatched ")"
+ return _unmatched(")")
if ! $depth ;
-- $depth ;
@@ -170,22 +170,22 @@ sub _parseBit
# TODO -- quotemeta & check no '/'
# TODO -- check for \] & other \ within the []
$string =~ s#(.*?\])##
- or return _unmatched "[" ;
+ or return _unmatched("[");
$out .= "$1)" ;
}
elsif ($2 eq ']')
{
- return _unmatched "]" ;
+ return _unmatched("]");
}
elsif ($2 eq '{' || $2 eq '}')
{
- return _retError "Nested {} not allowed" ;
+ return _retError("Nested {} not allowed");
}
}
$out .= quotemeta $string;
- return _unmatched "("
+ return _unmatched("(")
if $depth ;
return $out ;
@@ -219,7 +219,7 @@ sub _parseInputGlob
}
elsif ($2 eq ')')
{
- return _unmatched ")"
+ return _unmatched(")")
if ! $depth ;
-- $depth ;
@@ -229,16 +229,16 @@ sub _parseInputGlob
# TODO -- quotemeta & check no '/' or '(' or ')'
# TODO -- check for \] & other \ within the []
$string =~ s#(.*?\])##
- or return _unmatched "[";
+ or return _unmatched("[");
$out .= "$1)" ;
}
elsif ($2 eq ']')
{
- return _unmatched "]" ;
+ return _unmatched("]");
}
elsif ($2 eq '}')
{
- return _unmatched "}" ;
+ return _unmatched("}");
}
elsif ($2 eq '{')
{
@@ -248,7 +248,7 @@ sub _parseInputGlob
my $tmp ;
unless ( $string =~ s/(.*?)$noPreBS\}//)
{
- return _unmatched "{";
+ return _unmatched("{");
}
#$string =~ s#(.*?)\}##;
@@ -263,7 +263,7 @@ sub _parseInputGlob
}
}
- return _unmatched "("
+ return _unmatched("(")
if $depth ;
$out .= quotemeta $string ;
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
index 61955504c91..99773e8160e 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
+use IO::Compress::Base::Common 2.074 qw(:Status);
-use Compress::Raw::Bzip2 2.069 ;
+use Compress::Raw::Bzip2 2.074 ;
our ($VERSION);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
sub mkCompObject
{
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
index 8ea7e69915f..1edd3fa62a3 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
@@ -4,13 +4,13 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
-use Compress::Raw::Zlib 2.069 qw( !crc32 !adler32 ) ;
+use IO::Compress::Base::Common 2.074 qw(:Status);
+use Compress::Raw::Zlib 2.074 qw( !crc32 !adler32 ) ;
require Exporter;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@ISA = qw(Exporter);
@EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS;
%EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS;
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
index 7ec9b33f557..71dee011ff9 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
@@ -4,10 +4,10 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
+use IO::Compress::Base::Common 2.074 qw(:Status);
our ($VERSION);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
sub mkCompObject
{
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm
index 0b672914b6c..74eac6fba6f 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm
@@ -6,7 +6,7 @@ require 5.006 ;
use strict ;
use warnings;
-use IO::Compress::Base::Common 2.069 ;
+use IO::Compress::Base::Common 2.074 ;
use IO::File (); ;
use Scalar::Util ();
@@ -18,9 +18,9 @@ use Symbol();
#use bytes;
our (@ISA, $VERSION);
-@ISA = qw(Exporter IO::File);
+@ISA = qw(IO::File Exporter);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
#Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16.
@@ -1033,7 +1033,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1041,7 +1041,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm
index ef0eb7257e1..c82c99a441d 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm
@@ -11,7 +11,7 @@ use File::GlobMapper;
require Exporter;
our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE);
@ISA = qw(Exporter);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@EXPORT = qw( isaFilehandle isaFilename isaScalar
whatIsInput whatIsOutput
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm
index 2ef5cb588e5..5fa5f584d28 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm
@@ -5,19 +5,19 @@ use warnings;
use bytes;
require Exporter ;
-use IO::Compress::Base 2.069 ;
+use IO::Compress::Base 2.074 ;
-use IO::Compress::Base::Common 2.069 qw();
-use IO::Compress::Adapter::Bzip2 2.069 ;
+use IO::Compress::Base::Common 2.074 qw();
+use IO::Compress::Adapter::Bzip2 2.074 ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$Bzip2Error = '';
-@ISA = qw(Exporter IO::Compress::Base);
+@ISA = qw(IO::Compress::Base Exporter);
@EXPORT_OK = qw( $Bzip2Error bzip2 ) ;
%EXPORT_TAGS = %IO::Compress::Base::EXPORT_TAGS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -51,7 +51,7 @@ sub getExtraParams
{
my $self = shift ;
- use IO::Compress::Base::Common 2.069 qw(:Parse);
+ use IO::Compress::Base::Common 2.074 qw(:Parse);
return (
'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned, 1],
@@ -784,13 +784,13 @@ L<File::GlobMapper|File::GlobMapper>, L<Archive::Zip|Archive::Zip>,
L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
-The primary site for the bzip2 program is F<http://www.bzip.org>.
+The primary site for the bzip2 program is L<http://www.bzip.org>.
See the module L<Compress::Bzip2|Compress::Bzip2>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -798,7 +798,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm
index 33a262a444b..379ad9cd73d 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm
@@ -8,19 +8,19 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.069 ();
-use IO::Compress::Adapter::Deflate 2.069 ;
+use IO::Compress::RawDeflate 2.074 ();
+use IO::Compress::Adapter::Deflate 2.074 ;
-use IO::Compress::Zlib::Constants 2.069 ;
-use IO::Compress::Base::Common 2.069 qw();
+use IO::Compress::Zlib::Constants 2.074 ;
+use IO::Compress::Base::Common 2.074 qw();
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$DeflateError = '';
-@ISA = qw(Exporter IO::Compress::RawDeflate);
+@ISA = qw(IO::Compress::RawDeflate Exporter);
@EXPORT_OK = qw( $DeflateError deflate ) ;
%EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ;
@@ -910,21 +910,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -932,7 +932,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod
index 7f51b6c4c15..7099418443d 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod
@@ -199,7 +199,7 @@ L<ftp://ftp.info-zip.org/pub/infozip/doc/>
The primary reference for gzip files is RFC 1952
L<http://www.faqs.org/rfcs/rfc1952.html>
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head2 Dealing with concatenated gzip files
@@ -235,7 +235,7 @@ C<IO::Uncompress::Gunzip> use the C<MultiStream> option as shown in the
previous section.
See the section titled "The BGZF compression format" in
-F<http://samtools.github.io/hts-specs/SAMv1.pdf> for a definition of
+L<http://samtools.github.io/hts-specs/SAMv1.pdf> for a definition of
C<bgzip>.
=head1 ZLIB
@@ -243,13 +243,13 @@ C<bgzip>.
=head2 Zlib Resources
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
=head1 Bzip2
=head2 Bzip2 Resources
-The primary site for bzip2 is F<http://www.bzip.org>.
+The primary site for bzip2 is L<http://www.bzip.org>.
=head2 Dealing with Concatenated bzip2 files
@@ -296,7 +296,7 @@ must include the C<MultiStream> option, like this.
Below is a mod_perl Apache compression module, called C<Apache::GZip>,
taken from
-F<http://perl.apache.org/docs/tutorials/tips/mod_perl_tricks/mod_perl_tricks.html#On_the_Fly_Compression>
+L<http://perl.apache.org/docs/tutorials/tips/mod_perl_tricks/mod_perl_tricks.html#On_the_Fly_Compression>
package Apache::GZip;
#File: Apache::GZip.pm
@@ -668,7 +668,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -676,7 +676,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm
index 800421124b3..db017646245 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm
@@ -8,12 +8,12 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.069 () ;
-use IO::Compress::Adapter::Deflate 2.069 ;
+use IO::Compress::RawDeflate 2.074 () ;
+use IO::Compress::Adapter::Deflate 2.074 ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::Gzip::Constants 2.069 ;
-use IO::Compress::Zlib::Extra 2.069 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::Gzip::Constants 2.074 ;
+use IO::Compress::Zlib::Extra 2.074 ;
BEGIN
{
@@ -25,10 +25,10 @@ BEGIN
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$GzipError = '' ;
-@ISA = qw(Exporter IO::Compress::RawDeflate);
+@ISA = qw(IO::Compress::RawDeflate Exporter);
@EXPORT_OK = qw( $GzipError gzip ) ;
%EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ;
@@ -1222,21 +1222,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1244,7 +1244,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
index 950bdb0ac44..8186bf325ef 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
@@ -9,7 +9,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names);
our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@ISA = qw(Exporter);
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm
index 2a553014deb..bc1b71eefe8 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm
@@ -6,18 +6,18 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base 2.069 ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::Adapter::Deflate 2.069 ;
+use IO::Compress::Base 2.074 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::Adapter::Deflate 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$RawDeflateError = '';
-@ISA = qw(Exporter IO::Compress::Base);
+@ISA = qw(IO::Compress::Base Exporter);
@EXPORT_OK = qw( $RawDeflateError rawdeflate ) ;
push @EXPORT_OK, @IO::Compress::Adapter::Deflate::EXPORT_OK ;
@@ -116,8 +116,8 @@ sub getExtraParams
return getZlibParams();
}
-use IO::Compress::Base::Common 2.069 qw(:Parse);
-use Compress::Raw::Zlib 2.069 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+use IO::Compress::Base::Common 2.074 qw(:Parse);
+use Compress::Raw::Zlib 2.074 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
our %PARAMS = (
#'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED],
'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION],
@@ -966,21 +966,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -988,7 +988,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm
index 98e4f501a3a..07c72d6706f 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm
@@ -4,30 +4,30 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::RawDeflate 2.069 ();
-use IO::Compress::Adapter::Deflate 2.069 ;
-use IO::Compress::Adapter::Identity 2.069 ;
-use IO::Compress::Zlib::Extra 2.069 ;
-use IO::Compress::Zip::Constants 2.069 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::RawDeflate 2.074 ();
+use IO::Compress::Adapter::Deflate 2.074 ;
+use IO::Compress::Adapter::Identity 2.074 ;
+use IO::Compress::Zlib::Extra 2.074 ;
+use IO::Compress::Zip::Constants 2.074 ;
use File::Spec();
use Config;
-use Compress::Raw::Zlib 2.069 ();
+use Compress::Raw::Zlib 2.074 ();
BEGIN
{
eval { require IO::Compress::Adapter::Bzip2 ;
- import IO::Compress::Adapter::Bzip2 2.069 ;
+ import IO::Compress::Adapter::Bzip2 2.074 ;
require IO::Compress::Bzip2 ;
- import IO::Compress::Bzip2 2.069 ;
+ import IO::Compress::Bzip2 2.074 ;
} ;
eval { require IO::Compress::Adapter::Lzma ;
- import IO::Compress::Adapter::Lzma 2.069 ;
+ import IO::Compress::Adapter::Lzma 2.074 ;
require IO::Compress::Lzma ;
- import IO::Compress::Lzma 2.069 ;
+ import IO::Compress::Lzma 2.074 ;
} ;
}
@@ -36,10 +36,10 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$ZipError = '';
-@ISA = qw(Exporter IO::Compress::RawDeflate);
+@ISA = qw(IO::Compress::RawDeflate Exporter);
@EXPORT_OK = qw( $ZipError zip ) ;
%EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ;
@@ -1936,21 +1936,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1958,7 +1958,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm
index d72d0dc69c4..7e38f1b9aac 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm
@@ -7,7 +7,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@ISA = qw(Exporter);
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
index 70f2db1997a..02d8d365175 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
@@ -9,7 +9,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@ISA = qw(Exporter);
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
index 92ca20521f1..f710309e7b2 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
@@ -8,9 +8,9 @@ use bytes;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
-use IO::Compress::Gzip::Constants 2.069 ;
+use IO::Compress::Gzip::Constants 2.074 ;
sub ExtraFieldError
{
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
index 3d8fefcf7d1..2bd5e24236d 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
+use IO::Compress::Base::Common 2.074 qw(:Status);
-use Compress::Raw::Bzip2 2.069 ;
+use Compress::Raw::Bzip2 2.074 ;
our ($VERSION, @ISA);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
sub mkUncompObject
{
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
index 840a34fccd4..3327fbc4bcc 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
@@ -4,14 +4,14 @@ use warnings;
use strict;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
+use IO::Compress::Base::Common 2.074 qw(:Status);
use IO::Compress::Zip::Constants ;
our ($VERSION);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
-use Compress::Raw::Zlib 2.069 ();
+use Compress::Raw::Zlib 2.074 ();
sub mkUncompObject
{
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
index d23eb900bfb..256d8409dd2 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
@@ -2,13 +2,13 @@ package IO::Uncompress::Adapter::Inflate;
use strict;
use warnings;
-#use bytes;
+use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
-use Compress::Raw::Zlib 2.069 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
+use IO::Compress::Base::Common 2.074 qw(:Status);
+use Compress::Raw::Zlib 2.074 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
our ($VERSION);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
index 637e6299b1b..40264960fdc 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
@@ -6,25 +6,25 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 ();
+use IO::Compress::Base::Common 2.074 ();
-use IO::Uncompress::Adapter::Inflate 2.069 ();
+use IO::Uncompress::Adapter::Inflate 2.074 ();
-use IO::Uncompress::Base 2.069 ;
-use IO::Uncompress::Gunzip 2.069 ;
-use IO::Uncompress::Inflate 2.069 ;
-use IO::Uncompress::RawInflate 2.069 ;
-use IO::Uncompress::Unzip 2.069 ;
+use IO::Uncompress::Base 2.074 ;
+use IO::Uncompress::Gunzip 2.074 ;
+use IO::Uncompress::Inflate 2.074 ;
+use IO::Uncompress::RawInflate 2.074 ;
+use IO::Uncompress::Unzip 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$AnyInflateError = '';
-@ISA = qw( Exporter IO::Uncompress::Base );
+@ISA = qw(IO::Uncompress::Base Exporter);
@EXPORT_OK = qw( $AnyInflateError anyinflate ) ;
%EXPORT_TAGS = %IO::Uncompress::Base::DEFLATE_CONSTANTS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -48,7 +48,7 @@ sub anyinflate
sub getExtraParams
{
- use IO::Compress::Base::Common 2.069 qw(:Parse);
+ use IO::Compress::Base::Common 2.074 qw(:Parse);
return ( 'rawinflate' => [Parse_boolean, 0] ) ;
}
@@ -973,21 +973,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -995,7 +995,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
index 92a04a45d9d..e149a129ac6 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
@@ -4,19 +4,19 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 ();
+use IO::Compress::Base::Common 2.074 ();
-use IO::Uncompress::Base 2.069 ;
+use IO::Uncompress::Base 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$AnyUncompressError = '';
-@ISA = qw( Exporter IO::Uncompress::Base );
+@ISA = qw(IO::Uncompress::Base Exporter);
@EXPORT_OK = qw( $AnyUncompressError anyuncompress ) ;
%EXPORT_TAGS = %IO::Uncompress::Base::DEFLATE_CONSTANTS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -29,22 +29,22 @@ BEGIN
{
local @INC = @INC;
pop @INC if $INC[-1] eq '.';
- eval ' use IO::Uncompress::Adapter::Inflate 2.069 ;';
- eval ' use IO::Uncompress::Adapter::Bunzip2 2.069 ;';
- eval ' use IO::Uncompress::Adapter::LZO 2.069 ;';
- eval ' use IO::Uncompress::Adapter::Lzf 2.069 ;';
- eval ' use IO::Uncompress::Adapter::UnLzma 2.069 ;';
- eval ' use IO::Uncompress::Adapter::UnXz 2.069 ;';
-
- eval ' use IO::Uncompress::Bunzip2 2.069 ;';
- eval ' use IO::Uncompress::UnLzop 2.069 ;';
- eval ' use IO::Uncompress::Gunzip 2.069 ;';
- eval ' use IO::Uncompress::Inflate 2.069 ;';
- eval ' use IO::Uncompress::RawInflate 2.069 ;';
- eval ' use IO::Uncompress::Unzip 2.069 ;';
- eval ' use IO::Uncompress::UnLzf 2.069 ;';
- eval ' use IO::Uncompress::UnLzma 2.069 ;';
- eval ' use IO::Uncompress::UnXz 2.069 ;';
+ eval ' use IO::Uncompress::Adapter::Inflate 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::Bunzip2 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::LZO 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::Lzf 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::UnLzma 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::UnXz 2.074 ;';
+
+ eval ' use IO::Uncompress::Bunzip2 2.074 ;';
+ eval ' use IO::Uncompress::UnLzop 2.074 ;';
+ eval ' use IO::Uncompress::Gunzip 2.074 ;';
+ eval ' use IO::Uncompress::Inflate 2.074 ;';
+ eval ' use IO::Uncompress::RawInflate 2.074 ;';
+ eval ' use IO::Uncompress::Unzip 2.074 ;';
+ eval ' use IO::Uncompress::UnLzf 2.074 ;';
+ eval ' use IO::Uncompress::UnLzma 2.074 ;';
+ eval ' use IO::Uncompress::UnXz 2.074 ;';
}
sub new
@@ -1019,7 +1019,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1027,7 +1027,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
index 0906f34f2a8..4ba3efab16d 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
@@ -3,18 +3,18 @@ package IO::Uncompress::Base ;
use strict ;
use warnings;
-#use bytes;
+use bytes;
our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS);
-@ISA = qw(Exporter IO::File);
+@ISA = qw(IO::File Exporter);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
use constant G_EOF => 0 ;
use constant G_ERR => -1 ;
-use IO::Compress::Base::Common 2.069 ;
+use IO::Compress::Base::Common 2.074 ;
use IO::File ;
use Symbol;
@@ -1541,7 +1541,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1549,7 +1549,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
index 97bc415878a..26556b7625f 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
@@ -4,18 +4,18 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status );
+use IO::Compress::Base::Common 2.074 qw(:Status );
-use IO::Uncompress::Base 2.069 ;
-use IO::Uncompress::Adapter::Bunzip2 2.069 ;
+use IO::Uncompress::Base 2.074 ;
+use IO::Uncompress::Adapter::Bunzip2 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$Bunzip2Error = '';
-@ISA = qw( Exporter IO::Uncompress::Base );
+@ISA = qw(IO::Uncompress::Base Exporter);
@EXPORT_OK = qw( $Bunzip2Error bunzip2 ) ;
#%EXPORT_TAGS = %IO::Uncompress::Base::EXPORT_TAGS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -889,13 +889,13 @@ L<File::GlobMapper|File::GlobMapper>, L<Archive::Zip|Archive::Zip>,
L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
-The primary site for the bzip2 program is F<http://www.bzip.org>.
+The primary site for the bzip2 program is L<http://www.bzip.org>.
See the module L<Compress::Bzip2|Compress::Bzip2>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -903,7 +903,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm
index a27f39d5287..90af4b1b623 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm
@@ -9,18 +9,18 @@ use strict ;
use warnings;
use bytes;
-use IO::Uncompress::RawInflate 2.069 ;
+use IO::Uncompress::RawInflate 2.074 ;
-use Compress::Raw::Zlib 2.069 () ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::Gzip::Constants 2.069 ;
-use IO::Compress::Zlib::Extra 2.069 ;
+use Compress::Raw::Zlib 2.074 () ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::Gzip::Constants 2.074 ;
+use IO::Compress::Zlib::Extra 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $GunzipError);
-@ISA = qw( Exporter IO::Uncompress::RawInflate );
+@ISA = qw(IO::Uncompress::RawInflate Exporter);
@EXPORT_OK = qw( $GunzipError gunzip );
%EXPORT_TAGS = %IO::Uncompress::RawInflate::DEFLATE_CONSTANTS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -28,7 +28,7 @@ Exporter::export_ok_tags('all');
$GunzipError = '';
-$VERSION = '2.069_001';
+$VERSION = '2.074';
sub new
{
@@ -1096,21 +1096,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1118,7 +1118,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm
index db0f70cb2ea..4e1b246fac8 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm
@@ -5,18 +5,18 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::Zlib::Constants 2.069 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::Zlib::Constants 2.074 ;
-use IO::Uncompress::RawInflate 2.069 ;
+use IO::Uncompress::RawInflate 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$InflateError = '';
-@ISA = qw( Exporter IO::Uncompress::RawInflate );
+@ISA = qw(IO::Uncompress::RawInflate Exporter);
@EXPORT_OK = qw( $InflateError inflate ) ;
%EXPORT_TAGS = %IO::Uncompress::RawInflate::DEFLATE_CONSTANTS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -968,21 +968,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -990,7 +990,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
index 20a91626423..831940301db 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
@@ -3,21 +3,21 @@ package IO::Uncompress::RawInflate ;
use strict ;
use warnings;
-#use bytes;
+use bytes;
-use Compress::Raw::Zlib 2.069 ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
+use Compress::Raw::Zlib 2.074 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
-use IO::Uncompress::Base 2.069 ;
-use IO::Uncompress::Adapter::Inflate 2.069 ;
+use IO::Uncompress::Base 2.074 ;
+use IO::Uncompress::Adapter::Inflate 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$RawInflateError = '';
-@ISA = qw( Exporter IO::Uncompress::Base );
+@ISA = qw(IO::Uncompress::Base Exporter);
@EXPORT_OK = qw( $RawInflateError rawinflate ) ;
%DEFLATE_CONSTANTS = ();
%EXPORT_TAGS = %IO::Uncompress::Base::EXPORT_TAGS ;
@@ -1096,21 +1096,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1118,7 +1118,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm
index 5394ec899df..5a35e018a68 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm
@@ -6,22 +6,22 @@ require 5.006 ;
use strict ;
use warnings;
-#use bytes;
+use bytes;
use IO::File;
-use IO::Uncompress::RawInflate 2.069 ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Uncompress::Adapter::Inflate 2.069 ;
-use IO::Uncompress::Adapter::Identity 2.069 ;
-use IO::Compress::Zlib::Extra 2.069 ;
-use IO::Compress::Zip::Constants 2.069 ;
+use IO::Uncompress::RawInflate 2.074 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Uncompress::Adapter::Inflate 2.074 ;
+use IO::Uncompress::Adapter::Identity 2.074 ;
+use IO::Compress::Zlib::Extra 2.074 ;
+use IO::Compress::Zip::Constants 2.074 ;
-use Compress::Raw::Zlib 2.069 () ;
+use Compress::Raw::Zlib 2.074 () ;
BEGIN
{
eval{ require IO::Uncompress::Adapter::Bunzip2 ;
- import IO::Uncompress::Adapter::Bunzip2 } ;
+ import IO::Uncompress::Adapter::Bunzip2 } ;
eval{ require IO::Uncompress::Adapter::UnLzma ;
import IO::Uncompress::Adapter::UnLzma } ;
}
@@ -31,10 +31,10 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$UnzipError = '';
-@ISA = qw(Exporter IO::Uncompress::RawInflate);
+@ISA = qw(IO::Uncompress::RawInflate Exporter);
@EXPORT_OK = qw( $UnzipError unzip );
%EXPORT_TAGS = %IO::Uncompress::RawInflate::EXPORT_TAGS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -1839,21 +1839,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1861,7 +1861,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm b/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
index 9d7e5ed262d..47aebd60743 100644
--- a/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/private/MakeUtil.pm
@@ -35,8 +35,7 @@ sub MY::libscan
my $path = shift;
return undef
- if $path =~ /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/ ||
- $path =~ /(~|\.bak|_bak)$/ ||
+ if $path =~ /(~|\.bak|_bak)$/ ||
$path =~ /\..*\.sw(o|p)$/ ||
$path =~ /\B\.svn\b/;
diff --git a/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t b/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t
index 3ccc7f04c7d..733b4c5eb70 100755
--- a/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t
+++ b/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t
@@ -25,7 +25,7 @@ BEGIN
if eval { require Test::NoWarnings ; import Test::NoWarnings; 1 };
- my $VERSION = '2.069';
+ my $VERSION = '2.074';
my @NAMES = qw(
Compress::Raw::Bzip2
Compress::Raw::Zlib
diff --git a/gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm b/gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm
index 4705f044338..a42c21b84ee 100644
--- a/gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm
+++ b/gnu/usr.bin/perl/cpan/IPC-Cmd/lib/IPC/Cmd.pm
@@ -18,7 +18,7 @@ BEGIN {
$HAVE_MONOTONIC
];
- $VERSION = '0.92_01';
+ $VERSION = '1.00';
$VERBOSE = 0;
$DEBUG = 0;
$WARN = 1;
@@ -60,6 +60,8 @@ use Text::ParseWords (); # import ONLY if needed!
use Module::Load::Conditional qw[can_load];
use Locale::Maketext::Simple Style => 'gettext';
+local $Module::Load::Conditional::FORCE_SAFE_INC = 1;
+
=pod
=head1 NAME
@@ -142,8 +144,6 @@ sub can_use_ipc_run {
return if IS_WIN98;
### if we don't have ipc::run, we obviously can't use it.
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
return unless can_load(
modules => { 'IPC::Run' => '0.55' },
verbose => ($WARN && $verbose),
@@ -171,8 +171,6 @@ sub can_use_ipc_open3 {
### IPC::Open3 works on every non-VMS platform, but it can't
### capture buffers on win32 :(
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
return unless can_load(
modules => { map {$_ => '0.0'} qw|IPC::Open3 IO::Select Symbol| },
verbose => ($WARN && $verbose),
@@ -244,7 +242,7 @@ sub can_run {
} else {
for my $dir (
File::Spec->path,
- File::Spec->curdir
+ ( IS_WIN32 ? File::Spec->curdir : () )
) {
next if ! $dir || ! -d $dir;
my $abs = File::Spec->catfile( IS_WIN32 ? Win32::GetShortPathName( $dir ) : $dir, $command);
@@ -403,6 +401,14 @@ sub adjust_monotonic_start_time {
}
}
+sub uninstall_signals {
+ return unless defined($IPC::Cmd::{'__old_signals'});
+
+ foreach my $sig_name (keys %{$IPC::Cmd::{'__old_signals'}}) {
+ $SIG{$sig_name} = $IPC::Cmd::{'__old_signals'}->{$sig_name};
+ }
+}
+
# incompatible with POSIX::SigAction
#
sub install_layered_signal {
@@ -415,6 +421,10 @@ sub install_layered_signal {
Carp::confess("install_layered_signal expects coderef")
if !ref($handler_code) || ref($handler_code) ne 'CODE';
+ $IPC::Cmd::{'__old_signals'} = {}
+ unless defined($IPC::Cmd::{'__old_signals'});
+ $IPC::Cmd::{'__old_signals'}->{$s} = $SIG{$s};
+
my $previous_handler = $SIG{$s};
my $sig_handler = sub {
@@ -521,6 +531,7 @@ sub open3_run {
$child_err->autoflush(1);
my $pid = open3($child_in, $child_out, $child_err, $cmd);
+ Time::HiRes::usleep(1);
# push my child's pid to our parent
# so in case i am killed parent
@@ -572,7 +583,8 @@ sub open3_run {
# it will terminate only after child
# has terminated (except for SIGKILL,
# which is specially handled)
- foreach my $s (keys %SIG) {
+ SIGNAL: foreach my $s (keys %SIG) {
+ next SIGNAL if $s eq '__WARN__' or $s eq '__DIE__'; # Skip and don't clobber __DIE__ & __WARN__
my $sig_handler;
$sig_handler = sub {
kill("$s", $pid);
@@ -731,6 +743,29 @@ STDOUT from the executing program.
Coderef of a subroutine to call when a portion of data is received on
STDERR from the executing program.
+=item C<wait_loop_callback>
+
+Coderef of a subroutine to call inside of the main waiting loop
+(while C<run_forked> waits for the external to finish or fail).
+It is useful to stop running external process before it ends
+by itself, e.g.
+
+ my $r = run_forked("some external command", {
+ 'wait_loop_callback' => sub {
+ if (condition) {
+ kill(1, $$);
+ }
+ },
+ 'terminate_on_signal' => 'HUP',
+ });
+
+Combined with C<stdout_handler> and C<stderr_handler> allows terminating
+external command based on its output. Could also be used as a timer
+without engaging with L<alarm> (signals).
+
+Remember that this code could be called every millisecond (depending
+on the output which external command generates), so try to make it
+as lightweight as possible.
=item C<discard_output>
@@ -848,18 +883,15 @@ sub run_forked {
# prepare sockets to read from child
- $flags = 0;
- fcntl($child_stdout_socket, POSIX::F_GETFL, $flags) || Carp::confess "can't fnctl F_GETFL: $!";
+ $flags = fcntl($child_stdout_socket, POSIX::F_GETFL, 0) || Carp::confess "can't fnctl F_GETFL: $!";
$flags |= POSIX::O_NONBLOCK;
fcntl($child_stdout_socket, POSIX::F_SETFL, $flags) || Carp::confess "can't fnctl F_SETFL: $!";
- $flags = 0;
- fcntl($child_stderr_socket, POSIX::F_GETFL, $flags) || Carp::confess "can't fnctl F_GETFL: $!";
+ $flags = fcntl($child_stderr_socket, POSIX::F_GETFL, 0) || Carp::confess "can't fnctl F_GETFL: $!";
$flags |= POSIX::O_NONBLOCK;
fcntl($child_stderr_socket, POSIX::F_SETFL, $flags) || Carp::confess "can't fnctl F_SETFL: $!";
- $flags = 0;
- fcntl($child_info_socket, POSIX::F_GETFL, $flags) || Carp::confess "can't fnctl F_GETFL: $!";
+ $flags = fcntl($child_info_socket, POSIX::F_GETFL, 0) || Carp::confess "can't fnctl F_GETFL: $!";
$flags |= POSIX::O_NONBLOCK;
fcntl($child_info_socket, POSIX::F_SETFL, $flags) || Carp::confess "can't fnctl F_SETFL: $!";
@@ -1067,6 +1099,10 @@ sub run_forked {
push @{$ready_fds}, $select->can_read(1/100) if $child_finished;
}
+ if ($opts->{'wait_loop_callback'} && ref($opts->{'wait_loop_callback'}) eq 'CODE') {
+ $opts->{'wait_loop_callback'}->();
+ }
+
Time::HiRes::usleep(1);
}
@@ -1149,6 +1185,8 @@ sub run_forked {
delete($SIG{'CHLD'});
}
+ uninstall_signals();
+
return $o;
}
else {
@@ -1937,6 +1975,8 @@ sub _pp_child_error {
1;
+__END__
+
=head2 $q = QUOTE
Returns the character used for quoting strings on this platform. This is
@@ -1951,8 +1991,6 @@ You can use it as follows:
This makes sure that C<foo bar> is treated as a string, rather than two
separate arguments to the C<echo> function.
-__END__
-
=head1 HOW IT WORKS
C<run> will try to execute your command using the following logic:
diff --git a/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Msg.pm b/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Msg.pm
index 3c561e2cd8d..db2411d4bf4 100644
--- a/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Msg.pm
+++ b/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Msg.pm
@@ -15,7 +15,7 @@ use strict;
use vars qw($VERSION);
use Carp;
-$VERSION = '2.06_01';
+$VERSION = '2.07';
# Figure out if we have support for native sized types
my $N = do { my $foo = eval { pack "L!", 0 }; $@ ? '' : '!' };
diff --git a/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Semaphore.pm b/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Semaphore.pm
index 41f3ece003a..2cc5bc5a72c 100644
--- a/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Semaphore.pm
+++ b/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/Semaphore.pm
@@ -16,7 +16,7 @@ use strict;
use vars qw($VERSION);
use Carp;
-$VERSION = '2.06_01';
+$VERSION = '2.07';
# Figure out if we have support for native sized types
my $N = do { my $foo = eval { pack "L!", 0 }; $@ ? '' : '!' };
diff --git a/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SharedMem.pm b/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SharedMem.pm
index 335ade93d8f..993b5e6bd5e 100644
--- a/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SharedMem.pm
+++ b/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SharedMem.pm
@@ -15,7 +15,7 @@ use strict;
use vars qw($VERSION);
use Carp;
-$VERSION = '2.06_01';
+$VERSION = '2.07';
# Figure out if we have support for native sized types
my $N = do { my $foo = eval { pack "L!", 0 }; $@ ? '' : '!' };
diff --git a/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SysV.pm b/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SysV.pm
index e99f10f387e..4f917b40aa6 100644
--- a/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SysV.pm
+++ b/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/SysV.pm
@@ -18,7 +18,7 @@ use Config;
require Exporter;
@ISA = qw(Exporter);
-$VERSION = '2.06_01';
+$VERSION = '2.07';
# To support new constants, just add them to @EXPORT_OK
# and the C/XS code will be generated automagically.
diff --git a/gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp b/gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp
index 896cd2f368f..e1d1c5fff89 100644
--- a/gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp
+++ b/gnu/usr.bin/perl/cpan/JSON-PP/bin/json_pp
@@ -6,8 +6,6 @@ use Getopt::Long;
use JSON::PP ();
-my $VERSION = '1.00';
-
# imported from JSON-XS/bin/json_xs
my %allow_json_opt = map { $_ => 1 } qw(
@@ -22,18 +20,18 @@ GetOptions(
't=s' => \( my $opt_to = 'json' ),
'json_opt=s' => \( my $json_opt = 'pretty' ),
'V' => \( my $version ),
-) or die "Usage: $0 [-v] -f from_format [-t to_format]\n";
+) or die "Usage: $0 [-V] [-f from_format] [-t to_format] [-json_opt options_to_json1[,options_to_json2[,...]]]\n";
if ( $version ) {
- print "$VERSION\n";
+ print "$JSON::PP::VERSION\n";
exit;
}
$json_opt = '' if $json_opt eq '-';
-my @json_opt = grep { $allow_json_opt{ $_ } or die "'$_' is invalid json opttion" } split/,/, $json_opt;
+my @json_opt = grep { $allow_json_opt{ $_ } or die "'$_' is not a valid json option" } split/,/, $json_opt;
my %F = (
'json' => sub {
@@ -52,12 +50,17 @@ my %F = (
my %T = (
'null' => sub { "" },
'json' => sub {
- my $json = JSON::PP->new;
+ my $json = JSON::PP->new->utf8;
$json->$_() for @json_opt;
$json->encode( $_ );
},
'dumper' => sub {
require Data::Dumper;
+ local $Data::Dumper::Terse = 1;
+ local $Data::Dumper::Indent = 1;
+ local $Data::Dumper::Useqq = 1;
+ local $Data::Dumper::Quotekeys = 0;
+ local $Data::Dumper::Sortkeys = 1;
Data::Dumper::Dumper($_)
},
);
@@ -91,7 +94,7 @@ json_pp - JSON::PP command utility
=head1 SYNOPSIS
- json_pp [-v] [-f from_format] [-t to_format] [-json_opt options_to_json]
+ json_pp [-v] [-f from_format] [-t to_format] [-json_opt options_to_json1[,options_to_json2[,...]]]
=head1 DESCRIPTION
@@ -151,6 +154,12 @@ Acceptable options are:
ascii latin1 utf8 pretty indent space_before space_after relaxed canonical allow_nonref
allow_singlequote allow_barekey allow_bignum loose escape_slash
+Multiple options must be separated by commas:
+
+ Right: -json_opt pretty,canonical
+
+ Wrong: -json_opt pretty -json_opt canonical
+
=head2 -v
Verbose option, but currently no action in fact.
diff --git a/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm b/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm
index 1e29eee039f..714c848d9b6 100644
--- a/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm
+++ b/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm
@@ -4,14 +4,17 @@ package JSON::PP;
use 5.005;
use strict;
-use base qw(Exporter);
+
+use Exporter ();
+BEGIN { @JSON::PP::ISA = ('Exporter') }
+
use overload ();
+use JSON::PP::Boolean;
use Carp ();
-use B ();
#use Devel::Peek;
-$JSON::PP::VERSION = '2.27300_01';
+$JSON::PP::VERSION = '2.97001';
@JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json);
@@ -41,6 +44,13 @@ use constant P_AS_NONBLESSED => 17;
use constant P_ALLOW_UNKNOWN => 18;
use constant OLD_PERL => $] < 5.008 ? 1 : 0;
+use constant USE_B => 0;
+
+BEGIN {
+if (USE_B) {
+ require B;
+}
+}
BEGIN {
my @xs_compati_bit_properties = qw(
@@ -52,33 +62,33 @@ BEGIN {
allow_barekey escape_slash as_nonblessed
);
- # Perl version check, Unicode handling is enable?
+ # Perl version check, Unicode handling is enabled?
# Helper module sets @JSON::PP::_properties.
- if ($] < 5.008 ) {
+ if ( OLD_PERL ) {
my $helper = $] >= 5.006 ? 'JSON::PP::Compat5006' : 'JSON::PP::Compat5005';
eval qq| require $helper |;
if ($@) { Carp::croak $@; }
}
for my $name (@xs_compati_bit_properties, @pp_bit_properties) {
- my $flag_name = 'P_' . uc($name);
+ my $property_id = 'P_' . uc($name);
eval qq/
sub $name {
my \$enable = defined \$_[1] ? \$_[1] : 1;
if (\$enable) {
- \$_[0]->{PROPS}->[$flag_name] = 1;
+ \$_[0]->{PROPS}->[$property_id] = 1;
}
else {
- \$_[0]->{PROPS}->[$flag_name] = 0;
+ \$_[0]->{PROPS}->[$property_id] = 0;
}
\$_[0];
}
sub get_$name {
- \$_[0]->{PROPS}->[$flag_name] ? 1 : '';
+ \$_[0]->{PROPS}->[$property_id] ? 1 : '';
}
/;
}
@@ -89,16 +99,6 @@ BEGIN {
# Functions
-my %encode_allow_method
- = map {($_ => 1)} qw/utf8 pretty allow_nonref latin1 self_encode escape_slash
- allow_blessed convert_blessed indent indent_length allow_bignum
- as_nonblessed
- /;
-my %decode_allow_method
- = map {($_ => 1)} qw/utf8 allow_nonref loose allow_singlequote allow_bignum
- allow_barekey max_size relaxed/;
-
-
my $JSON; # cache
sub encode_json ($) { # encode
@@ -129,9 +129,6 @@ sub new {
my $self = {
max_depth => 512,
max_size => 0,
- indent => 0,
- FLAGS => 0,
- fallback => sub { encode_error('Invalid value. JSON can only reference.') },
indent_length => 3,
};
@@ -164,7 +161,7 @@ sub pretty {
my $enable = defined $v ? $v : 1;
if ($enable) { # indent_length(3) for JSON::XS compatibility
- $self->indent(1)->indent_length(3)->space_before(1)->space_after(1);
+ $self->indent(1)->space_before(1)->space_after(1);
}
else {
$self->indent(0)->space_before(0)->space_after(0);
@@ -196,14 +193,24 @@ sub get_max_size { $_[0]->{max_size}; }
sub filter_json_object {
- $_[0]->{cb_object} = defined $_[1] ? $_[1] : 0;
+ if (defined $_[1] and ref $_[1] eq 'CODE') {
+ $_[0]->{cb_object} = $_[1];
+ } else {
+ delete $_[0]->{cb_object};
+ }
$_[0]->{F_HOOK} = ($_[0]->{cb_object} or $_[0]->{cb_sk_object}) ? 1 : 0;
$_[0];
}
sub filter_json_single_key_object {
- if (@_ > 1) {
+ if (@_ == 1 or @_ > 3) {
+ Carp::croak("Usage: JSON::PP::filter_json_single_key_object(self, key, callback = undef)");
+ }
+ if (defined $_[2] and ref $_[2] eq 'CODE') {
$_[0]->{cb_sk_object}->{$_[1]} = $_[2];
+ } else {
+ delete $_[0]->{cb_sk_object}->{$_[1]};
+ delete $_[0]->{cb_sk_object} unless %{$_[0]->{cb_sk_object} || {}};
}
$_[0]->{F_HOOK} = ($_[0]->{cb_object} or $_[0]->{cb_sk_object}) ? 1 : 0;
$_[0];
@@ -229,7 +236,8 @@ sub sort_by {
}
sub allow_bigint {
- Carp::carp("allow_bigint() is obsoleted. use allow_bignum() insted.");
+ Carp::carp("allow_bigint() is obsoleted. use allow_bignum() instead.");
+ $_[0]->allow_bignum;
}
###############################
@@ -269,11 +277,11 @@ sub allow_bigint {
$indent_count = 0;
$depth = 0;
- my $idx = $self->{PROPS};
+ my $props = $self->{PROPS};
($ascii, $latin1, $utf8, $indent, $canonical, $space_before, $space_after, $allow_blessed,
$convert_blessed, $escape_slash, $bignum, $as_nonblessed)
- = @{$idx}[P_ASCII .. P_SPACE_AFTER, P_ALLOW_BLESSED, P_CONVERT_BLESSED,
+ = @{$props}[P_ASCII .. P_SPACE_AFTER, P_ALLOW_BLESSED, P_CONVERT_BLESSED,
P_ESCAPE_SLASH, P_ALLOW_BIGNUM, P_AS_NONBLESSED];
($max_depth, $indent_length) = @{$self}{qw/max_depth indent_length/};
@@ -287,7 +295,7 @@ sub allow_bigint {
}
encode_error("hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this)")
- if(!ref $obj and !$idx->[ P_ALLOW_NONREF ]);
+ if(!ref $obj and !$props->[ P_ALLOW_NONREF ]);
my $str = $self->object_to_json($obj);
@@ -297,7 +305,7 @@ sub allow_bigint {
utf8::upgrade($str);
}
- if ($idx->[ P_SHRINK ]) {
+ if ($props->[ P_SHRINK ]) {
utf8::downgrade($str, 1);
}
@@ -335,13 +343,14 @@ sub allow_bigint {
}
return "$obj" if ( $bignum and _is_bignum($obj) );
- return $self->blessed_to_json($obj) if ($allow_blessed and $as_nonblessed); # will be removed.
+ if ($allow_blessed) {
+ return $self->blessed_to_json($obj) if ($as_nonblessed); # will be removed.
+ return 'null';
+ }
encode_error( sprintf("encountered object '%s', but neither allow_blessed "
. "nor convert_blessed settings are enabled", $obj)
- ) unless ($allow_blessed);
-
- return 'null';
+ );
}
else {
return $self->value_to_json($obj);
@@ -365,15 +374,16 @@ sub allow_bigint {
for my $k ( _sort( $obj ) ) {
if ( OLD_PERL ) { utf8::decode($k) } # key for Perl 5.6 / be optimized
- push @res, string_to_json( $self, $k )
+ push @res, $self->string_to_json( $k )
. $del
- . ( $self->object_to_json( $obj->{$k} ) || $self->value_to_json( $obj->{$k} ) );
+ . ( ref $obj->{$k} ? $self->object_to_json( $obj->{$k} ) : $self->value_to_json( $obj->{$k} ) );
}
--$depth;
$self->_down_indent() if ($indent);
- return '{' . ( @res ? $pre : '' ) . ( @res ? join( ",$pre", @res ) . $post : '' ) . '}';
+ return '{}' unless @res;
+ return '{' . $pre . join( ",$pre", @res ) . $post . '}';
}
@@ -387,36 +397,55 @@ sub allow_bigint {
my ($pre, $post) = $indent ? $self->_up_indent() : ('', '');
for my $v (@$obj){
- push @res, $self->object_to_json($v) || $self->value_to_json($v);
+ push @res, ref($v) ? $self->object_to_json($v) : $self->value_to_json($v);
}
--$depth;
$self->_down_indent() if ($indent);
- return '[' . ( @res ? $pre : '' ) . ( @res ? join( ",$pre", @res ) . $post : '' ) . ']';
+ return '[]' unless @res;
+ return '[' . $pre . join( ",$pre", @res ) . $post . ']';
}
+ sub _looks_like_number {
+ my $value = shift;
+ if (USE_B) {
+ my $b_obj = B::svref_2object(\$value);
+ my $flags = $b_obj->FLAGS;
+ return 1 if $flags & ( B::SVp_IOK() | B::SVp_NOK() ) and !( $flags & B::SVp_POK() );
+ return;
+ } else {
+ no warnings 'numeric';
+ # if the utf8 flag is on, it almost certainly started as a string
+ return if utf8::is_utf8($value);
+ # detect numbers
+ # string & "" -> ""
+ # number & "" -> 0 (with warning)
+ # nan and inf can detect as numbers, so check with * 0
+ return unless length((my $dummy = "") & $value);
+ return unless 0 + $value eq $value;
+ return 1 if $value * 0 == 0;
+ return -1; # inf/nan
+ }
+ }
sub value_to_json {
my ($self, $value) = @_;
return 'null' if(!defined $value);
- my $b_obj = B::svref_2object(\$value); # for round trip problem
- my $flags = $b_obj->FLAGS;
-
- return $value # as is
- if $flags & ( B::SVp_IOK | B::SVp_NOK ) and !( $flags & B::SVp_POK ); # SvTYPE is IV or NV?
-
my $type = ref($value);
- if(!$type){
- return string_to_json($self, $value);
+ if (!$type) {
+ if (_looks_like_number($value)) {
+ return $value;
+ }
+ return $self->string_to_json($value);
}
elsif( blessed($value) and $value->isa('JSON::PP::Boolean') ){
return $$value == 1 ? 'true' : 'false';
}
- elsif ($type) {
+ else {
if ((overload::StrVal($value) =~ /=(\w+)/)[0]) {
return $self->value_to_json("$value");
}
@@ -428,25 +457,19 @@ sub allow_bigint {
: encode_error("cannot encode reference to scalar");
}
- if ( $self->{PROPS}->[ P_ALLOW_UNKNOWN ] ) {
- return 'null';
- }
- else {
- if ( $type eq 'SCALAR' or $type eq 'REF' ) {
+ if ( $self->{PROPS}->[ P_ALLOW_UNKNOWN ] ) {
+ return 'null';
+ }
+ else {
+ if ( $type eq 'SCALAR' or $type eq 'REF' ) {
encode_error("cannot encode reference to scalar");
- }
- else {
+ }
+ else {
encode_error("encountered $value, but JSON can only represent references to arrays or hashes");
- }
- }
+ }
+ }
}
- else {
- return $self->{fallback}->($value)
- if ($self->{fallback} and ref($self->{fallback}) eq 'CODE');
- return 'null';
- }
-
}
@@ -608,7 +631,7 @@ BEGIN {
my $text; # json data
my $at; # offset
- my $ch; # 1chracter
+ my $ch; # first character
my $len; # text length (changed according to UTF8 or NON UTF8)
# INTERNAL
my $depth; # nest counter
@@ -617,7 +640,7 @@ BEGIN {
my $utf8_len; # utf8 byte length
# FLAGS
my $utf8; # must be utf8
- my $max_depth; # max nest nubmer of objects and arrays
+ my $max_depth; # max nest number of objects and arrays
my $max_size;
my $relaxed;
my $cb_object;
@@ -625,19 +648,27 @@ BEGIN {
my $F_HOOK;
- my $allow_bigint; # using Math::BigInt
+ my $allow_bignum; # using Math::BigInt/BigFloat
my $singlequote; # loosely quoting
my $loose; #
my $allow_barekey; # bareKey
- # $opt flag
- # 0x00000001 .... decode_prefix
- # 0x10000000 .... incr_parse
+ sub _detect_utf_encoding {
+ my $text = shift;
+ my @octets = unpack('C4', $text);
+ return 'unknown' unless defined $octets[3];
+ return ( $octets[0] and $octets[1]) ? 'UTF-8'
+ : (!$octets[0] and $octets[1]) ? 'UTF-16BE'
+ : (!$octets[0] and !$octets[1]) ? 'UTF-32BE'
+ : ( $octets[2] ) ? 'UTF-16LE'
+ : (!$octets[2] ) ? 'UTF-32LE'
+ : 'unknown';
+ }
sub PP_decode_json {
- my ($self, $opt); # $opt is an effective flag during this decode_json.
+ my ($self, $want_offset);
- ($self, $text, $opt) = @_;
+ ($self, $text, $want_offset) = @_;
($at, $ch, $depth) = (0, '', 0);
@@ -645,13 +676,19 @@ BEGIN {
decode_error("malformed JSON string, neither array, object, number, string or atom");
}
- my $idx = $self->{PROPS};
+ my $props = $self->{PROPS};
- ($utf8, $relaxed, $loose, $allow_bigint, $allow_barekey, $singlequote)
- = @{$idx}[P_UTF8, P_RELAXED, P_LOOSE .. P_ALLOW_SINGLEQUOTE];
+ ($utf8, $relaxed, $loose, $allow_bignum, $allow_barekey, $singlequote)
+ = @{$props}[P_UTF8, P_RELAXED, P_LOOSE .. P_ALLOW_SINGLEQUOTE];
if ( $utf8 ) {
- utf8::downgrade( $text, 1 ) or Carp::croak("Wide character in subroutine entry");
+ $encoding = _detect_utf_encoding($text);
+ if ($encoding ne 'UTF-8' and $encoding ne 'unknown') {
+ require Encode;
+ Encode::from_to($text, $encoding, 'utf-8');
+ } else {
+ utf8::downgrade( $text, 1 ) or Carp::croak("Wide character in subroutine entry");
+ }
}
else {
utf8::upgrade( $text );
@@ -672,27 +709,13 @@ BEGIN {
) if ($bytes > $max_size);
}
- # Currently no effect
- # should use regexp
- my @octets = unpack('C4', $text);
- $encoding = ( $octets[0] and $octets[1]) ? 'UTF-8'
- : (!$octets[0] and $octets[1]) ? 'UTF-16BE'
- : (!$octets[0] and !$octets[1]) ? 'UTF-32BE'
- : ( $octets[2] ) ? 'UTF-16LE'
- : (!$octets[2] ) ? 'UTF-32LE'
- : 'unknown';
-
white(); # remove head white space
- my $valid_start = defined $ch; # Is there a first character for JSON structure?
+ decode_error("malformed JSON string, neither array, object, number, string or atom") unless defined $ch; # Is there a first character for JSON structure?
my $result = value();
- return undef if ( !$result && ( $opt & 0x10000000 ) ); # for incr_parse
-
- decode_error("malformed JSON string, neither array, object, number, string or atom") unless $valid_start;
-
- if ( !$idx->[ P_ALLOW_NONREF ] and !ref $result ) {
+ if ( !$props->[ P_ALLOW_NONREF ] and !ref $result ) {
decode_error(
'JSON text must be an object or array (but found number, string, true, false or null,'
. ' use allow_nonref to allow this)', 1);
@@ -704,12 +727,11 @@ BEGIN {
white(); # remove tail white space
- if ( $ch ) {
- return ( $result, $consumed ) if ($opt & 0x00000001); # all right if decode_prefix
- decode_error("garbage after JSON object");
- }
+ return ( $result, $consumed ) if $want_offset; # all right if decode_prefix
+
+ decode_error("garbage after JSON object") if defined $ch;
- ( $opt & 0x00000001 ) ? ( $result, $consumed ) : $result;
+ $result;
}
@@ -730,13 +752,12 @@ BEGIN {
}
sub string {
- my ($i, $s, $t, $u);
my $utf16;
my $is_utf8;
($is_valid_utf8, $utf8_len) = ('', 0);
- $s = ''; # basically UTF8 flag on
+ my $s = ''; # basically UTF8 flag on
if($ch eq '"' or ($singlequote and $ch eq "'")){
my $boundChar = $ch;
@@ -836,10 +857,10 @@ BEGIN {
sub white {
while( defined $ch ){
- if($ch le ' '){
+ if($ch eq '' or $ch =~ /\A[ \t\r\n]\z/){
next_chr();
}
- elsif($ch eq '/'){
+ elsif($relaxed and $ch eq '/'){
next_chr();
if(defined $ch and $ch eq '/'){
1 while(defined(next_chr()) and $ch ne "\n" and $ch ne "\r");
@@ -930,6 +951,7 @@ BEGIN {
}
}
+ $at-- if defined $ch and $ch ne '';
decode_error(", or ] expected while parsing array");
}
@@ -996,7 +1018,7 @@ BEGIN {
}
- $at--;
+ $at-- if defined $ch and $ch ne '';
decode_error(", or } expected while parsing object/hash");
}
@@ -1045,32 +1067,8 @@ BEGIN {
sub number {
my $n = '';
my $v;
-
- # According to RFC4627, hex or oct digts are invalid.
- if($ch eq '0'){
- my $peek = substr($text,$at,1);
- my $hex = $peek =~ /[xX]/; # 0 or 1
-
- if($hex){
- decode_error("malformed number (leading zero must not be followed by another digit)");
- ($n) = ( substr($text, $at+1) =~ /^([0-9a-fA-F]+)/);
- }
- else{ # oct
- ($n) = ( substr($text, $at) =~ /^([0-7]+)/);
- if (defined $n and length $n > 1) {
- decode_error("malformed number (leading zero must not be followed by another digit)");
- }
- }
-
- if(defined $n and length($n)){
- if (!$hex and length($n) == 1) {
- decode_error("malformed number (leading zero must not be followed by another digit)");
- }
- $at += length($n) + $hex;
- next_chr;
- return $hex ? hex($n) : oct($n);
- }
- }
+ my $is_dec;
+ my $is_exp;
if($ch eq '-'){
$n = '-';
@@ -1080,6 +1078,16 @@ BEGIN {
}
}
+ # According to RFC4627, hex or oct digits are invalid.
+ if($ch eq '0'){
+ my $peek = substr($text,$at,1);
+ if($peek =~ /^[0-9a-dfA-DF]/){ # e may be valid (exponential)
+ decode_error("malformed number (leading zero must not be followed by another digit)");
+ }
+ $n .= $ch;
+ next_chr;
+ }
+
while(defined $ch and $ch =~ /\d/){
$n .= $ch;
next_chr;
@@ -1087,6 +1095,7 @@ BEGIN {
if(defined $ch and $ch eq '.'){
$n .= '.';
+ $is_dec = 1;
next_chr;
if (!defined $ch or $ch !~ /\d/) {
@@ -1103,6 +1112,7 @@ BEGIN {
if(defined $ch and ($ch eq 'e' or $ch eq 'E')){
$n .= $ch;
+ $is_exp = 1;
next_chr;
if(defined($ch) and ($ch eq '+' or $ch eq '-')){
@@ -1128,21 +1138,24 @@ BEGIN {
$v .= $n;
- if ($v !~ /[.eE]/ and length $v > $max_intsize) {
- if ($allow_bigint) { # from Adam Sussman
- require Math::BigInt;
- return Math::BigInt->new($v);
+ if ($is_dec or $is_exp) {
+ if ($allow_bignum) {
+ require Math::BigFloat;
+ return Math::BigFloat->new($v);
}
- else {
- return "$v";
+ } else {
+ if (length $v > $max_intsize) {
+ if ($allow_bignum) { # from Adam Sussman
+ require Math::BigInt;
+ return Math::BigInt->new($v);
+ }
+ else {
+ return "$v";
+ }
}
}
- elsif ($allow_bigint) {
- require Math::BigFloat;
- return Math::BigFloat->new($v);
- }
- return 0+$v;
+ return $is_dec ? $v/1.0 : 0+$v;
}
@@ -1178,11 +1191,14 @@ BEGIN {
my $no_rep = shift;
my $str = defined $text ? substr($text, $at) : '';
my $mess = '';
- my $type = $] >= 5.008 ? 'U*'
- : $] < 5.006 ? 'C*'
- : utf8::is_utf8( $str ) ? 'U*' # 5.6
- : 'C*'
- ;
+ my $type = 'U*';
+
+ if ( OLD_PERL ) {
+ my $type = $] < 5.006 ? 'C*'
+ : utf8::is_utf8( $str ) ? 'U*' # 5.6
+ : 'C*'
+ ;
+ }
for my $c ( unpack( $type, $str ) ) { # emulate pv_uni_display() ?
$mess .= $c == 0x07 ? '\a'
@@ -1273,26 +1289,26 @@ BEGIN {
*utf8::is_utf8 = *Encode::is_utf8;
}
- if ( $] >= 5.008 ) {
+ if ( !OLD_PERL ) {
*JSON::PP::JSON_PP_encode_ascii = \&_encode_ascii;
*JSON::PP::JSON_PP_encode_latin1 = \&_encode_latin1;
*JSON::PP::JSON_PP_decode_surrogates = \&_decode_surrogates;
*JSON::PP::JSON_PP_decode_unicode = \&_decode_unicode;
- }
- if ($] >= 5.008 and $] < 5.008003) { # join() in 5.8.0 - 5.8.2 is broken.
- package JSON::PP;
- require subs;
- subs->import('join');
- eval q|
- sub join {
- return '' if (@_ < 2);
- my $j = shift;
- my $str = shift;
- for (@_) { $str .= $j . $_; }
- return $str;
- }
- |;
+ if ($] < 5.008003) { # join() in 5.8.0 - 5.8.2 is broken.
+ package JSON::PP;
+ require subs;
+ subs->import('join');
+ eval q|
+ sub join {
+ return '' if (@_ < 2);
+ my $j = shift;
+ my $str = shift;
+ for (@_) { $str .= $j . $_; }
+ return $str;
+ }
+ |;
+ }
}
@@ -1315,8 +1331,8 @@ BEGIN {
sub JSON::PP::incr_text : lvalue {
$_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
- if ( $_[0]->{_incr_parser}->{incr_parsing} ) {
- Carp::croak("incr_text can not be called when the incremental parser already started parsing");
+ if ( $_[0]->{_incr_parser}->{incr_pos} ) {
+ Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
}
$_[0]->{_incr_parser}->{incr_text};
}
@@ -1336,13 +1352,14 @@ BEGIN {
*JSON::PP::reftype = \&Scalar::Util::reftype;
*JSON::PP::refaddr = \&Scalar::Util::refaddr;
}
- else{ # This code is from Sclar::Util.
+ else{ # This code is from Scalar::Util.
# warn $@;
eval 'sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }';
*JSON::PP::blessed = sub {
local($@, $SIG{__DIE__}, $SIG{__WARN__});
ref($_[0]) ? eval { $_[0]->a_sub_not_likely_to_be_here } : undef;
};
+ require B;
my %tmap = qw(
B::NULL SCALAR
B::HV HASH
@@ -1385,12 +1402,12 @@ BEGIN {
}
-# shamely copied and modified from JSON::XS code.
+# shamelessly copied and modified from JSON::XS code.
$JSON::PP::true = do { bless \(my $dummy = 1), "JSON::PP::Boolean" };
$JSON::PP::false = do { bless \(my $dummy = 0), "JSON::PP::Boolean" };
-sub is_bool { defined $_[0] and UNIVERSAL::isa($_[0], "JSON::PP::Boolean"); }
+sub is_bool { blessed $_[0] and $_[0]->isa("JSON::PP::Boolean"); }
sub true { $JSON::PP::true }
sub false { $JSON::PP::false }
@@ -1398,18 +1415,6 @@ sub null { undef; }
###############################
-package JSON::PP::Boolean;
-
-use overload (
- "0+" => sub { ${$_[0]} },
- "++" => sub { $_[0] = ${$_[0]} + 1 },
- "--" => sub { $_[0] = ${$_[0]} - 1 },
- fallback => 1,
-);
-
-
-###############################
-
package JSON::PP::IncrParser;
use strict;
@@ -1423,16 +1428,14 @@ use constant INCR_M_C1 => 5;
$JSON::PP::IncrParser::VERSION = '1.01';
-my $unpack_format = $] < 5.006 ? 'C*' : 'U*';
-
sub new {
my ( $class ) = @_;
bless {
incr_nest => 0,
incr_text => undef,
- incr_parsing => 0,
- incr_p => 0,
+ incr_pos => 0,
+ incr_mode => 0,
}, $class;
}
@@ -1450,123 +1453,151 @@ sub incr_parse {
$self->{incr_text} .= $text;
}
-
- my $max_size = $coder->get_max_size;
-
if ( defined wantarray ) {
-
- $self->{incr_mode} = INCR_M_WS unless defined $self->{incr_mode};
-
- if ( wantarray ) {
- my @ret;
-
- $self->{incr_parsing} = 1;
-
+ my $max_size = $coder->get_max_size;
+ my $p = $self->{incr_pos};
+ my @ret;
+ {
do {
- push @ret, $self->_incr_parse( $coder, $self->{incr_text} );
+ unless ( $self->{incr_nest} <= 0 and $self->{incr_mode} == INCR_M_JSON ) {
+ $self->_incr_parse( $coder );
- unless ( !$self->{incr_nest} and $self->{incr_mode} == INCR_M_JSON ) {
- $self->{incr_mode} = INCR_M_WS if $self->{incr_mode} != INCR_M_STR;
+ if ( $max_size and $self->{incr_pos} > $max_size ) {
+ Carp::croak("attempted decode of JSON text of $self->{incr_pos} bytes size, but max_size is set to $max_size");
+ }
+ unless ( $self->{incr_nest} <= 0 and $self->{incr_mode} == INCR_M_JSON ) {
+ # as an optimisation, do not accumulate white space in the incr buffer
+ if ( $self->{incr_mode} == INCR_M_WS and $self->{incr_pos} ) {
+ $self->{incr_pos} = 0;
+ $self->{incr_text} = '';
+ }
+ last;
+ }
}
- } until ( length $self->{incr_text} >= $self->{incr_p} );
-
- $self->{incr_parsing} = 0;
+ my ($obj, $offset) = $coder->PP_decode_json( $self->{incr_text}, 0x00000001 );
+ push @ret, $obj;
+ use bytes;
+ $self->{incr_text} = substr( $self->{incr_text}, $offset || 0 );
+ $self->{incr_pos} = 0;
+ $self->{incr_nest} = 0;
+ $self->{incr_mode} = 0;
+ last unless wantarray;
+ } while ( wantarray );
+ }
+ if ( wantarray ) {
return @ret;
}
else { # in scalar context
- $self->{incr_parsing} = 1;
- my $obj = $self->_incr_parse( $coder, $self->{incr_text} );
- $self->{incr_parsing} = 0 if defined $obj; # pointed by Martin J. Evans
- return $obj ? $obj : undef; # $obj is an empty string, parsing was completed.
+ return $ret[0] ? $ret[0] : undef;
}
-
}
-
}
sub _incr_parse {
- my ( $self, $coder, $text, $skip ) = @_;
- my $p = $self->{incr_p};
- my $restore = $p;
-
- my @obj;
+ my ($self, $coder) = @_;
+ my $text = $self->{incr_text};
my $len = length $text;
+ my $p = $self->{incr_pos};
- if ( $self->{incr_mode} == INCR_M_WS ) {
- while ( $len > $p ) {
- my $s = substr( $text, $p, 1 );
- $p++ and next if ( 0x20 >= unpack($unpack_format, $s) );
- $self->{incr_mode} = INCR_M_JSON;
- last;
- }
- }
-
+INCR_PARSE:
while ( $len > $p ) {
- my $s = substr( $text, $p++, 1 );
-
- if ( $s eq '"' ) {
- if (substr( $text, $p - 2, 1 ) eq '\\' ) {
- next;
- }
-
- if ( $self->{incr_mode} != INCR_M_STR ) {
- $self->{incr_mode} = INCR_M_STR;
+ my $s = substr( $text, $p, 1 );
+ last INCR_PARSE unless defined $s;
+ my $mode = $self->{incr_mode};
+
+ if ( $mode == INCR_M_WS ) {
+ while ( $len > $p ) {
+ $s = substr( $text, $p, 1 );
+ last INCR_PARSE unless defined $s;
+ if ( ord($s) > 0x20 ) {
+ if ( $s eq '#' ) {
+ $self->{incr_mode} = INCR_M_C0;
+ redo INCR_PARSE;
+ } else {
+ $self->{incr_mode} = INCR_M_JSON;
+ redo INCR_PARSE;
+ }
+ }
+ $p++;
}
- else {
- $self->{incr_mode} = INCR_M_JSON;
- unless ( $self->{incr_nest} ) {
+ } elsif ( $mode == INCR_M_BS ) {
+ $p++;
+ $self->{incr_mode} = INCR_M_STR;
+ redo INCR_PARSE;
+ } elsif ( $mode == INCR_M_C0 or $mode == INCR_M_C1 ) {
+ while ( $len > $p ) {
+ $s = substr( $text, $p, 1 );
+ last INCR_PARSE unless defined $s;
+ if ( $s eq "\n" ) {
+ $self->{incr_mode} = $self->{incr_mode} == INCR_M_C0 ? INCR_M_WS : INCR_M_JSON;
last;
}
+ $p++;
}
- }
-
- if ( $self->{incr_mode} == INCR_M_JSON ) {
-
- if ( $s eq '[' or $s eq '{' ) {
- if ( ++$self->{incr_nest} > $coder->get_max_depth ) {
- Carp::croak('json text or perl structure exceeds maximum nesting level (max_depth set too low?)');
+ next;
+ } elsif ( $mode == INCR_M_STR ) {
+ while ( $len > $p ) {
+ $s = substr( $text, $p, 1 );
+ last INCR_PARSE unless defined $s;
+ if ( $s eq '"' ) {
+ $p++;
+ $self->{incr_mode} = INCR_M_JSON;
+
+ last INCR_PARSE unless $self->{incr_nest};
+ redo INCR_PARSE;
}
+ elsif ( $s eq '\\' ) {
+ $p++;
+ if ( !defined substr($text, $p, 1) ) {
+ $self->{incr_mode} = INCR_M_BS;
+ last INCR_PARSE;
+ }
+ }
+ $p++;
}
- elsif ( $s eq ']' or $s eq '}' ) {
- last if ( --$self->{incr_nest} <= 0 );
- }
- elsif ( $s eq '#' ) {
- while ( $len > $p ) {
- last if substr( $text, $p++, 1 ) eq "\n";
+ } elsif ( $mode == INCR_M_JSON ) {
+ while ( $len > $p ) {
+ $s = substr( $text, $p++, 1 );
+ if ( $s eq "\x00" ) {
+ $p--;
+ last INCR_PARSE;
+ } elsif ( $s eq "\x09" or $s eq "\x0a" or $s eq "\x0d" or $s eq "\x20" ) {
+ if ( !$self->{incr_nest} ) {
+ $p--; # do not eat the whitespace, let the next round do it
+ last INCR_PARSE;
+ }
+ next;
+ } elsif ( $s eq '"' ) {
+ $self->{incr_mode} = INCR_M_STR;
+ redo INCR_PARSE;
+ } elsif ( $s eq '[' or $s eq '{' ) {
+ if ( ++$self->{incr_nest} > $coder->get_max_depth ) {
+ Carp::croak('json text or perl structure exceeds maximum nesting level (max_depth set too low?)');
+ }
+ next;
+ } elsif ( $s eq ']' or $s eq '}' ) {
+ if ( --$self->{incr_nest} <= 0 ) {
+ last INCR_PARSE;
+ }
+ } elsif ( $s eq '#' ) {
+ $self->{incr_mode} = INCR_M_C1;
+ redo INCR_PARSE;
}
}
-
}
-
}
- $self->{incr_p} = $p;
-
- return if ( $self->{incr_mode} == INCR_M_STR and not $self->{incr_nest} );
- return if ( $self->{incr_mode} == INCR_M_JSON and $self->{incr_nest} > 0 );
-
- return '' unless ( length substr( $self->{incr_text}, 0, $p ) );
-
- local $Carp::CarpLevel = 2;
-
- $self->{incr_p} = $restore;
- $self->{incr_c} = $p;
-
- my ( $obj, $tail ) = $coder->PP_decode_json( substr( $self->{incr_text}, 0, $p ), 0x10000001 );
-
- $self->{incr_text} = substr( $self->{incr_text}, $p );
- $self->{incr_p} = 0;
-
- return $obj || '';
+ $self->{incr_pos} = $p;
+ $self->{incr_parsing} = $p ? 1 : 0; # for backward compatibility
}
sub incr_text {
- if ( $_[0]->{incr_parsing} ) {
- Carp::croak("incr_text can not be called when the incremental parser already started parsing");
+ if ( $_[0]->{incr_pos} ) {
+ Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
}
$_[0]->{incr_text};
}
@@ -1574,18 +1605,19 @@ sub incr_text {
sub incr_skip {
my $self = shift;
- $self->{incr_text} = substr( $self->{incr_text}, $self->{incr_c} );
- $self->{incr_p} = 0;
+ $self->{incr_text} = substr( $self->{incr_text}, $self->{incr_pos} );
+ $self->{incr_pos} = 0;
+ $self->{incr_mode} = 0;
+ $self->{incr_nest} = 0;
}
sub incr_reset {
my $self = shift;
$self->{incr_text} = undef;
- $self->{incr_p} = 0;
+ $self->{incr_pos} = 0;
$self->{incr_mode} = 0;
$self->{incr_nest} = 0;
- $self->{incr_parsing} = 0;
}
###############################
@@ -1611,13 +1643,11 @@ JSON::PP - JSON::XS compatible pure-Perl module.
# OO-interface
- $coder = JSON::PP->new->ascii->pretty->allow_nonref;
+ $json = JSON::PP->new->ascii->pretty->allow_nonref;
- $json_text = $json->encode( $perl_scalar );
+ $pretty_printed_json_text = $json->encode( $perl_scalar );
$perl_scalar = $json->decode( $json_text );
- $pretty_printed = $json->pretty->encode( $perl_scalar ); # pretty-printing
-
# Note that JSON version 2.0 and above will automatically use
# JSON::XS or JSON::PP, so you should be able to just:
@@ -1626,81 +1656,61 @@ JSON::PP - JSON::XS compatible pure-Perl module.
=head1 VERSION
- 2.27300
-
-L<JSON::XS> 2.27 (~2.30) compatible.
-
-=head1 NOTE
-
-JSON::PP had been inculded in JSON distribution (CPAN module).
-It was a perl core module in Perl 5.14.
+ 2.97001
=head1 DESCRIPTION
-This module is L<JSON::XS> compatible pure Perl module.
-(Perl 5.8 or later is recommended)
-
-JSON::XS is the fastest and most proper JSON module on CPAN.
-It is written by Marc Lehmann in C, so must be compiled and
-installed in the used environment.
-
-JSON::PP is a pure-Perl module and has compatibility to JSON::XS.
-
-
-=head2 FEATURES
-
-=over
-
-=item * correct unicode handling
-
-This module knows how to handle Unicode (depending on Perl version).
-
-See to L<JSON::XS/A FEW NOTES ON UNICODE AND PERL> and L<UNICODE HANDLING ON PERLS>.
-
-
-=item * round-trip integrity
-
-When you serialise a perl data structure using only data types supported
-by JSON and Perl, the deserialised data structure is identical on the Perl
-level. (e.g. the string "2.0" doesn't suddenly become "2" just because
-it looks like a number). There I<are> minor exceptions to this, read the
-MAPPING section below to learn about those.
-
-
-=item * strict checking of JSON correctness
-
-There is no guessing, no generating of illegal JSON texts by default,
-and only JSON is accepted as input by default (the latter is a security feature).
-But when some options are set, loose chcking features are available.
-
-=back
+JSON::PP is a pure perl JSON decoder/encoder (as of RFC4627, which
+we know is obsolete but we still stick to; see below for an option
+to support part of RFC7159), and (almost) compatible to much
+faster L<JSON::XS> written by Marc Lehmann in C. JSON::PP works as
+a fallback module when you use L<JSON> module without having
+installed JSON::XS.
+
+Because of this fallback feature of JSON.pm, JSON::PP tries not to
+be more JavaScript-friendly than JSON::XS (i.e. not to escape extra
+characters such as U+2028 and U+2029 nor support RFC7159/ECMA-404),
+in order for you not to lose such JavaScript-friendliness silently
+when you use JSON.pm and install JSON::XS for speed or by accident.
+If you need JavaScript-friendly RFC7159-compliant pure perl module,
+try L<JSON::Tiny>, which is derived from L<Mojolicious> web
+framework and is also smaller and faster than JSON::PP.
+
+JSON::PP has been in the Perl core since Perl 5.14, mainly for
+CPAN toolchain modules to parse META.json.
=head1 FUNCTIONAL INTERFACE
-Some documents are copied and modified from L<JSON::XS/FUNCTIONAL INTERFACE>.
+This section is taken from JSON::XS almost verbatim. C<encode_json>
+and C<decode_json> are exported by default.
=head2 encode_json
$json_text = encode_json $perl_scalar
-Converts the given Perl data structure to a UTF-8 encoded, binary string.
+Converts the given Perl data structure to a UTF-8 encoded, binary string
+(that is, the string contains octets only). Croaks on error.
This function call is functionally identical to:
$json_text = JSON::PP->new->utf8->encode($perl_scalar)
+Except being faster.
+
=head2 decode_json
$perl_scalar = decode_json $json_text
The opposite of C<encode_json>: expects an UTF-8 (binary) string and tries
to parse that as an UTF-8 encoded JSON text, returning the resulting
-reference.
+reference. Croaks on error.
This function call is functionally identical to:
$perl_scalar = JSON::PP->new->utf8->decode($json_text)
+Except being faster.
+
=head2 JSON::PP::is_bool
$is_boolean = JSON::PP::is_bool($scalar)
@@ -1709,114 +1719,24 @@ Returns true if the passed scalar represents either JSON::PP::true or
JSON::PP::false, two constants that act like C<1> and C<0> respectively
and are also used to represent JSON C<true> and C<false> in Perl strings.
-=head2 JSON::PP::true
-
-Returns JSON true value which is blessed object.
-It C<isa> JSON::PP::Boolean object.
-
-=head2 JSON::PP::false
-
-Returns JSON false value which is blessed object.
-It C<isa> JSON::PP::Boolean object.
-
-=head2 JSON::PP::null
-
-Returns C<undef>.
-
See L<MAPPING>, below, for more information on how JSON values are mapped to
Perl.
+=head1 OBJECT-ORIENTED INTERFACE
-=head1 HOW DO I DECODE A DATA FROM OUTER AND ENCODE TO OUTER
-
-This section supposes that your perl vresion is 5.8 or later.
-
-If you know a JSON text from an outer world - a network, a file content, and so on,
-is encoded in UTF-8, you should use C<decode_json> or C<JSON> module object
-with C<utf8> enable. And the decoded result will contain UNICODE characters.
-
- # from network
- my $json = JSON::PP->new->utf8;
- my $json_text = CGI->new->param( 'json_data' );
- my $perl_scalar = $json->decode( $json_text );
-
- # from file content
- local $/;
- open( my $fh, '<', 'json.data' );
- $json_text = <$fh>;
- $perl_scalar = decode_json( $json_text );
-
-If an outer data is not encoded in UTF-8, firstly you should C<decode> it.
-
- use Encode;
- local $/;
- open( my $fh, '<', 'json.data' );
- my $encoding = 'cp932';
- my $unicode_json_text = decode( $encoding, <$fh> ); # UNICODE
-
- # or you can write the below code.
- #
- # open( my $fh, "<:encoding($encoding)", 'json.data' );
- # $unicode_json_text = <$fh>;
-
-In this case, C<$unicode_json_text> is of course UNICODE string.
-So you B<cannot> use C<decode_json> nor C<JSON> module object with C<utf8> enable.
-Instead of them, you use C<JSON> module object with C<utf8> disable.
-
- $perl_scalar = $json->utf8(0)->decode( $unicode_json_text );
-
-Or C<encode 'utf8'> and C<decode_json>:
-
- $perl_scalar = decode_json( encode( 'utf8', $unicode_json_text ) );
- # this way is not efficient.
-
-And now, you want to convert your C<$perl_scalar> into JSON data and
-send it to an outer world - a network or a file content, and so on.
-
-Your data usually contains UNICODE strings and you want the converted data to be encoded
-in UTF-8, you should use C<encode_json> or C<JSON> module object with C<utf8> enable.
-
- print encode_json( $perl_scalar ); # to a network? file? or display?
- # or
- print $json->utf8->encode( $perl_scalar );
-
-If C<$perl_scalar> does not contain UNICODE but C<$encoding>-encoded strings
-for some reason, then its characters are regarded as B<latin1> for perl
-(because it does not concern with your $encoding).
-You B<cannot> use C<encode_json> nor C<JSON> module object with C<utf8> enable.
-Instead of them, you use C<JSON> module object with C<utf8> disable.
-Note that the resulted text is a UNICODE string but no problem to print it.
-
- # $perl_scalar contains $encoding encoded string values
- $unicode_json_text = $json->utf8(0)->encode( $perl_scalar );
- # $unicode_json_text consists of characters less than 0x100
- print $unicode_json_text;
-
-Or C<decode $encoding> all string values and C<encode_json>:
+This section is also taken from JSON::XS.
- $perl_scalar->{ foo } = decode( $encoding, $perl_scalar->{ foo } );
- # ... do it to each string values, then encode_json
- $json_text = encode_json( $perl_scalar );
-
-This method is a proper way but probably not efficient.
-
-See to L<Encode>, L<perluniintro>.
-
-
-=head1 METHODS
-
-Basically, check to L<JSON> or L<JSON::XS>.
+The object oriented interface lets you configure your own encoding or
+decoding style, within the limits of supported formats.
=head2 new
$json = JSON::PP->new
-Rturns a new JSON::PP object that can be used to de/encode JSON
-strings.
-
-All boolean flags described below are by default I<disabled>.
+Creates a new JSON::PP object that can be used to de/encode JSON
+strings. All boolean flags described below are by default I<disabled>.
-The mutators for flags all return the JSON object again and thus calls can
+The mutators for flags all return the JSON::PP object again and thus calls can
be chained:
my $json = JSON::PP->new->utf8->space_after->encode({a => [1,2]})
@@ -1828,16 +1748,23 @@ be chained:
$enabled = $json->get_ascii
-If $enable is true (or missing), then the encode method will not generate characters outside
-the code range 0..127. Any Unicode characters outside that range will be escaped using either
-a single \uXXXX or a double \uHHHH\uLLLLL escape sequence, as per RFC4627.
-(See to L<JSON::XS/OBJECT-ORIENTED INTERFACE>).
+If C<$enable> is true (or missing), then the C<encode> method will not
+generate characters outside the code range C<0..127> (which is ASCII). Any
+Unicode characters outside that range will be escaped using either a
+single \uXXXX (BMP characters) or a double \uHHHH\uLLLLL escape sequence,
+as per RFC4627. The resulting encoded JSON text can be treated as a native
+Unicode string, an ascii-encoded, latin1-encoded or UTF-8 encoded string,
+or any other superset of ASCII.
+
+If C<$enable> is false, then the C<encode> method will not escape Unicode
+characters unless required by the JSON syntax or other flags. This results
+in a faster and more compact format.
-In Perl 5.005, there is no character having high value (more than 255).
-See to L<UNICODE HANDLING ON PERLS>.
+See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
-If $enable is false, then the encode method will not escape Unicode characters unless
-required by the JSON syntax or other flags. This results in a faster and more compact format.
+The main use for this flag is to produce JSON texts that can be
+transmitted over a 7-bit channel, as the encoded JSON texts will not
+contain any 8 bit characters.
JSON::PP->new->ascii(1)->encode([chr 0x10401])
=> ["\ud801\udc01"]
@@ -1848,16 +1775,28 @@ required by the JSON syntax or other flags. This results in a faster and more co
$enabled = $json->get_latin1
-If $enable is true (or missing), then the encode method will encode the resulting JSON
-text as latin1 (or iso-8859-1), escaping any characters outside the code range 0..255.
+If C<$enable> is true (or missing), then the C<encode> method will encode
+the resulting JSON text as latin1 (or iso-8859-1), escaping any characters
+outside the code range C<0..255>. The resulting string can be treated as a
+latin1-encoded JSON text or a native Unicode string. The C<decode> method
+will not be affected in any way by this flag, as C<decode> by default
+expects Unicode, which is a strict superset of latin1.
-If $enable is false, then the encode method will not escape Unicode characters
-unless required by the JSON syntax or other flags.
+If C<$enable> is false, then the C<encode> method will not escape Unicode
+characters unless required by the JSON syntax or other flags.
- JSON::XS->new->latin1->encode (["\x{89}\x{abc}"]
- => ["\x{89}\\u0abc"] # (perl syntax, U+abc escaped, U+89 not)
+See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
-See to L<UNICODE HANDLING ON PERLS>.
+The main use for this flag is efficiently encoding binary data as JSON
+text, as most octets will not be escaped, resulting in a smaller encoded
+size. The disadvantage is that the resulting JSON text is encoded
+in latin1 (and must correctly be treated as such when storing and
+transferring), a rare encoding for JSON. It is therefore most useful when
+you want to store data structures known to contain binary data efficiently
+in files or databases, not when talking to other JSON encoders/decoders.
+
+ JSON::PP->new->latin1->encode (["\x{89}\x{abc}"]
+ => ["\x{89}\\u0abc"] # (perl syntax, U+abc escaped, U+89 not)
=head2 utf8
@@ -1865,20 +1804,20 @@ See to L<UNICODE HANDLING ON PERLS>.
$enabled = $json->get_utf8
-If $enable is true (or missing), then the encode method will encode the JSON result
-into UTF-8, as required by many protocols, while the decode method expects to be handled
-an UTF-8-encoded string. Please note that UTF-8-encoded strings do not contain any
-characters outside the range 0..255, they are thus useful for bytewise/binary I/O.
-
-(In Perl 5.005, any character outside the range 0..255 does not exist.
-See to L<UNICODE HANDLING ON PERLS>.)
+If C<$enable> is true (or missing), then the C<encode> method will encode
+the JSON result into UTF-8, as required by many protocols, while the
+C<decode> method expects to be handled an UTF-8-encoded string. Please
+note that UTF-8-encoded strings do not contain any characters outside the
+range C<0..255>, they are thus useful for bytewise/binary I/O. In future
+versions, enabling this option might enable autodetection of the UTF-16
+and UTF-32 encoding families, as described in RFC4627.
-In future versions, enabling this option might enable autodetection of the UTF-16 and UTF-32
-encoding families, as described in RFC4627.
+If C<$enable> is false, then the C<encode> method will return the JSON
+string as a (non-encoded) Unicode string, while C<decode> expects thus a
+Unicode string. Any decoding or encoding (e.g. to UTF-8 or UTF-16) needs
+to be done yourself, e.g. using the Encode module.
-If $enable is false, then the encode method will return the JSON string as a (non-encoded)
-Unicode string, while decode expects thus a Unicode string. Any decoding or encoding
-(e.g. to UTF-8 or UTF-16) needs to be done yourself, e.g. using the Encode module.
+See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
Example, output UTF-16BE-encoded JSON:
@@ -1890,18 +1829,13 @@ Example, decode UTF-32LE-encoded JSON:
use Encode;
$object = JSON::PP->new->decode (decode "UTF-32LE", $jsontext);
-
=head2 pretty
$json = $json->pretty([$enable])
This enables (or disables) all of the C<indent>, C<space_before> and
-C<space_after> flags in one call to generate the most readable
-(or most compact) form possible.
-
-Equivalent to:
-
- $json->indent->space_before->space_after
+C<space_after> (and in the future possibly more) flags in one call to
+generate the most readable (or most compact) form possible.
=head2 indent
@@ -1909,6 +1843,15 @@ Equivalent to:
$enabled = $json->get_indent
+If C<$enable> is true (or missing), then the C<encode> method will use a multiline
+format as output, putting every array member or object/hash key-value pair
+into its own line, indenting them properly.
+
+If C<$enable> is false, no newlines or indenting will be produced, and the
+resulting JSON text is guaranteed not to contain any C<newlines>.
+
+This setting has no effect when decoding JSON texts.
+
The default indent space length is three.
You can use C<indent_length> to change the length.
@@ -1924,7 +1867,8 @@ optional space before the C<:> separating keys from values in JSON objects.
If C<$enable> is false, then the C<encode> method will not add any extra
space at those places.
-This setting has no effect when decoding JSON texts.
+This setting has no effect when decoding JSON texts. You will also
+most likely combine this setting with C<space_after>.
Example, space_before enabled, space_after and indent disabled:
@@ -1997,6 +1941,28 @@ character, after which more white-space and comments are allowed.
# neither this one...
]
+=item * C-style multiple-line '/* */'-comments (JSON::PP only)
+
+Whenever JSON allows whitespace, C-style multiple-line comments are additionally
+allowed. Everything between C</*> and C<*/> is a comment, after which
+more white-space and comments are allowed.
+
+ [
+ 1, /* this comment not allowed in JSON */
+ /* neither this one... */
+ ]
+
+=item * C++-style one-line '//'-comments (JSON::PP only)
+
+Whenever JSON allows whitespace, C++-style one-line comments are additionally
+allowed. They are terminated by the first carriage-return or line-feed
+character, after which more white-space and comments are allowed.
+
+ [
+ 1, // this comment not allowed in JSON
+ // neither this one...
+ ]
+
=back
=head2 canonical
@@ -2010,7 +1976,8 @@ by sorting their keys. This is adding a comparatively high overhead.
If C<$enable> is false, then the C<encode> method will output key-value
pairs in the order Perl stores them (which will likely change between runs
-of the same script).
+of the same script, and can change even within the same run from 5.18
+onwards).
This option is useful if you want the same data structure to be encoded as
the same JSON text (given the same overall settings). If it is disabled,
@@ -2019,8 +1986,7 @@ as key-value pairs have no inherent ordering in Perl.
This setting has no effect when decoding JSON texts.
-If you want your own sorting routine, you can give a code referece
-or a subroutine name to C<sort_by>. See to C<JSON::PP OWN METHODS>.
+This setting has currently no effect on tied hashes.
=head2 allow_nonref
@@ -2038,6 +2004,9 @@ passed an arrayref or hashref, as JSON texts must either be an object
or array. Likewise, C<decode> will croak if given something that is not a
JSON object or array.
+Example, encode a Perl scalar as JSON value with enabled C<allow_nonref>,
+resulting in an invalid JSON text:
+
JSON::PP->new->allow_nonref->encode ("Hello, World!")
=> "Hello, World!"
@@ -2047,18 +2016,17 @@ JSON object or array.
$enabled = $json->get_allow_unknown
-If $enable is true (or missing), then "encode" will *not* throw an
+If C<$enable> is true (or missing), then C<encode> will I<not> throw an
exception when it encounters values it cannot represent in JSON (for
-example, filehandles) but instead will encode a JSON "null" value.
-Note that blessed objects are not included here and are handled
-separately by c<allow_nonref>.
+example, filehandles) but instead will encode a JSON C<null> value. Note
+that blessed objects are not included here and are handled separately by
+c<allow_blessed>.
-If $enable is false (the default), then "encode" will throw an
+If C<$enable> is false (the default), then C<encode> will throw an
exception when it encounters anything it cannot encode as JSON.
-This option does not affect "decode" in any way, and it is
-recommended to leave it off unless you know your communications
-partner.
+This option does not affect C<decode> in any way, and it is recommended to
+leave it off unless you know your communications partner.
=head2 allow_blessed
@@ -2066,15 +2034,17 @@ partner.
$enabled = $json->get_allow_blessed
+See L<OBJECT SERIALISATION> for details.
+
If C<$enable> is true (or missing), then the C<encode> method will not
-barf when it encounters a blessed reference. Instead, the value of the
-B<convert_blessed> option will decide whether C<null> (C<convert_blessed>
-disabled or no C<TO_JSON> method found) or a representation of the
-object (C<convert_blessed> enabled and C<TO_JSON> method found) is being
-encoded. Has no effect on C<decode>.
+barf when it encounters a blessed reference that it cannot convert
+otherwise. Instead, a JSON C<null> value is encoded instead of the object.
If C<$enable> is false (the default), then C<encode> will throw an
-exception when it encounters a blessed object.
+exception when it encounters a blessed object that it cannot convert
+otherwise.
+
+This setting has no effect on C<decode>.
=head2 convert_blessed
@@ -2082,38 +2052,38 @@ exception when it encounters a blessed object.
$enabled = $json->get_convert_blessed
+See L<OBJECT SERIALISATION> for details.
+
If C<$enable> is true (or missing), then C<encode>, upon encountering a
blessed object, will check for the availability of the C<TO_JSON> method
-on the object's class. If found, it will be called in scalar context
-and the resulting scalar will be encoded instead of the object. If no
-C<TO_JSON> method is found, the value of C<allow_blessed> will decide what
-to do.
+on the object's class. If found, it will be called in scalar context and
+the resulting scalar will be encoded instead of the object.
The C<TO_JSON> method may safely call die if it wants. If C<TO_JSON>
returns other blessed objects, those will be handled in the same
way. C<TO_JSON> must take care of not causing an endless recursion cycle
(== crash) in this case. The name of C<TO_JSON> was chosen because other
methods called by the Perl core (== not by the user of the object) are
-usually in upper case letters and to avoid collisions with the C<to_json>
+usually in upper case letters and to avoid collisions with any C<to_json>
function or method.
-This setting does not yet influence C<decode> in any way.
+If C<$enable> is false (the default), then C<encode> will not consider
+this type of conversion.
-If C<$enable> is false, then the C<allow_blessed> setting will decide what
-to do when a blessed object is found.
+This setting has no effect on C<decode>.
=head2 filter_json_object
$json = $json->filter_json_object([$coderef])
When C<$coderef> is specified, it will be called from C<decode> each
-time it decodes a JSON object. The only argument passed to the coderef
-is a reference to the newly-created hash. If the code references returns
-a single scalar (which need not be a reference), this value
-(i.e. a copy of that scalar to avoid aliasing) is inserted into the
-deserialised data structure. If it returns an empty list
-(NOTE: I<not> C<undef>, which is a valid scalar), the original deserialised
-hash will be inserted. This setting can slow down decoding considerably.
+time it decodes a JSON object. The only argument is a reference to the
+newly-created hash. If the code references returns a single scalar (which
+need not be a reference), this value (i.e. a copy of that scalar to avoid
+aliasing) is inserted into the deserialised data structure. If it returns
+an empty list (NOTE: I<not> C<undef>, which is a valid scalar), the
+original deserialised hash will be inserted. This setting can slow down
+decoding considerably.
When C<$coderef> is omitted or undefined, any existing callback will
be removed and C<decode> will not change the deserialised hash in any
@@ -2188,15 +2158,13 @@ into the corresponding C<< $WIDGET{<id>} >> object:
$enabled = $json->get_shrink
-In JSON::XS, this flag resizes strings generated by either
-C<encode> or C<decode> to their minimum size possible.
-It will also try to downgrade any strings to octet-form if possible.
+If C<$enable> is true (or missing), the string returned by C<encode> will
+be shrunk (i.e. downgraded if possible).
-In JSON::PP, it is noop about resizing strings but tries
-C<utf8::downgrade> to the returned string by C<encode>.
-See to L<utf8>.
+The actual definition of what shrink does might change in future versions,
+but it will always try to save space at the expense of time.
-See to L<JSON::XS/OBJECT-ORIENTED INTERFACE>
+If C<$enable> is false, then JSON::PP does nothing.
=head2 max_depth
@@ -2214,13 +2182,13 @@ needs to traverse to reach a given point or the number of C<{> or C<[>
characters without their matching closing parenthesis crossed to reach a
given character in a string.
+Setting the maximum depth to one disallows any nesting, so that ensures
+that the object is only a single hash/object or array.
+
If no argument is given, the highest possible setting will be used, which
is rarely useful.
-See L<JSON::XS/SSECURITY CONSIDERATIONS> for more info on why this is useful.
-
-When a large value (100 or more) was set and it de/encodes a deep nested object/text,
-it may raise a warning 'Deep recursion on subroutin' at the perl runtime phase.
+See L<JSON::XS/SECURITY CONSIDERATIONS> for more info on why this is useful.
=head2 max_size
@@ -2237,18 +2205,14 @@ effect on C<encode> (yet).
If no argument is given, the limit check will be deactivated (same as when
C<0> is specified).
-See L<JSON::XS/SSECURITY CONSIDERATIONS> for more info on why this is useful.
+See L<JSON::XS/SECURITY CONSIDERATIONS> for more info on why this is useful.
=head2 encode
$json_text = $json->encode($perl_scalar)
-Converts the given Perl data structure (a simple scalar or a reference
-to a hash or array) to its JSON representation. Simple scalars will be
-converted into JSON string or number sequences, while references to arrays
-become JSON arrays and references to hashes become JSON objects. Undefined
-Perl values (e.g. C<undef>) become JSON C<null> values.
-References to the integers C<0> and C<1> are converted into C<true> and C<false>.
+Converts the given Perl value or data structure to its JSON
+representation. Croaks on error.
=head2 decode
@@ -2257,11 +2221,6 @@ References to the integers C<0> and C<1> are converted into C<true> and C<false>
The opposite of C<encode>: expects a JSON text and tries to parse it,
returning the resulting simple scalar or reference. Croaks on error.
-JSON numbers and strings become simple Perl scalars. JSON arrays become
-Perl arrayrefs and JSON objects become Perl hashrefs. C<true> becomes
-C<1> (C<JSON::true>), C<false> becomes C<0> (C<JSON::false>) and
-C<null> becomes C<undef>.
-
=head2 decode_prefix
($perl_scalar, $characters) = $json->decode_prefix($json_text)
@@ -2271,25 +2230,185 @@ when there is trailing garbage after the first JSON object, it will
silently stop parsing there and return the number of characters consumed
so far.
- JSON->new->decode_prefix ("[1] the tail")
- => ([], 3)
+This is useful if your JSON texts are not delimited by an outer protocol
+and you need to know where the JSON text ends.
+
+ JSON::PP->new->decode_prefix ("[1] the tail")
+ => ([1], 3)
+
+=head1 FLAGS FOR JSON::PP ONLY
+
+The following flags and properties are for JSON::PP only. If you use
+any of these, you can't make your application run faster by replacing
+JSON::PP with JSON::XS. If you need these and also speed boost,
+try L<Cpanel::JSON::XS>, a fork of JSON::XS by Reini Urban, which
+supports some of these.
+
+=head2 allow_singlequote
+
+ $json = $json->allow_singlequote([$enable])
+ $enabled = $json->get_allow_singlequote
+
+If C<$enable> is true (or missing), then C<decode> will accept
+invalid JSON texts that contain strings that begin and end with
+single quotation marks. C<encode> will not be affected in anyway.
+I<Be aware that this option makes you accept invalid JSON texts
+as if they were valid!>. I suggest only to use this option to
+parse application-specific files written by humans (configuration
+files, resource files etc.)
+
+If C<$enable> is false (the default), then C<decode> will only accept
+valid JSON texts.
+
+ $json->allow_singlequote->decode(qq|{"foo":'bar'}|);
+ $json->allow_singlequote->decode(qq|{'foo':"bar"}|);
+ $json->allow_singlequote->decode(qq|{'foo':'bar'}|);
+
+=head2 allow_barekey
+
+ $json = $json->allow_barekey([$enable])
+ $enabled = $json->get_allow_barekey
+
+If C<$enable> is true (or missing), then C<decode> will accept
+invalid JSON texts that contain JSON objects whose names don't
+begin and end with quotation marks. C<encode> will not be affected
+in anyway. I<Be aware that this option makes you accept invalid JSON
+texts as if they were valid!>. I suggest only to use this option to
+parse application-specific files written by humans (configuration
+files, resource files etc.)
+
+If C<$enable> is false (the default), then C<decode> will only accept
+valid JSON texts.
+
+ $json->allow_barekey->decode(qq|{foo:"bar"}|);
+
+=head2 allow_bignum
+
+ $json = $json->allow_bignum([$enable])
+ $enabled = $json->get_allow_bignum
+
+If C<$enable> is true (or missing), then C<decode> will convert
+big integers Perl cannot handle as integer into L<Math::BigInt>
+objects and convert floating numbers into L<Math::BigFloat>
+objects. C<encode> will convert C<Math::BigInt> and C<Math::BigFloat>
+objects into JSON numbers.
+
+ $json->allow_nonref->allow_bignum;
+ $bigfloat = $json->decode('2.000000000000000000000000001');
+ print $json->encode($bigfloat);
+ # => 2.000000000000000000000000001
+
+See also L<MAPPING>.
+
+=head2 loose
+
+ $json = $json->loose([$enable])
+ $enabled = $json->get_loose
+
+If C<$enable> is true (or missing), then C<decode> will accept
+invalid JSON texts that contain unescaped [\x00-\x1f\x22\x5c]
+characters. C<encode> will not be affected in anyway.
+I<Be aware that this option makes you accept invalid JSON texts
+as if they were valid!>. I suggest only to use this option to
+parse application-specific files written by humans (configuration
+files, resource files etc.)
+
+If C<$enable> is false (the default), then C<decode> will only accept
+valid JSON texts.
+
+ $json->loose->decode(qq|["abc
+ def"]|);
+
+=head2 escape_slash
+
+ $json = $json->escape_slash([$enable])
+ $enabled = $json->get_escape_slash
+
+If C<$enable> is true (or missing), then C<encode> will explicitly
+escape I<slash> (solidus; C<U+002F>) characters to reduce the risk of
+XSS (cross site scripting) that may be caused by C<< </script> >>
+in a JSON text, with the cost of bloating the size of JSON texts.
+
+This option may be useful when you embed JSON in HTML, but embedding
+arbitrary JSON in HTML (by some HTML template toolkit or by string
+interpolation) is risky in general. You must escape necessary
+characters in correct order, depending on the context.
+
+C<decode> will not be affected in anyway.
+
+=head2 indent_length
+
+ $json = $json->indent_length($number_of_spaces)
+ $length = $json->get_indent_length
+
+This option is only useful when you also enable C<indent> or C<pretty>.
+
+JSON::XS indents with three spaces when you C<encode> (if requested
+by C<indent> or C<pretty>), and the number cannot be changed.
+JSON::PP allows you to change/get the number of indent spaces with these
+mutator/accessor. The default number of spaces is three (the same as
+JSON::XS), and the acceptable range is from C<0> (no indentation;
+it'd be better to disable indentation by C<indent(0)>) to C<15>.
+
+=head2 sort_by
+
+ $json = $json->sort_by($code_ref)
+ $json = $json->sort_by($subroutine_name)
+
+If you just want to sort keys (names) in JSON objects when you
+C<encode>, enable C<canonical> option (see above) that allows you to
+sort object keys alphabetically.
+
+If you do need to sort non-alphabetically for whatever reasons,
+you can give a code reference (or a subroutine name) to C<sort_by>,
+then the argument will be passed to Perl's C<sort> built-in function.
+
+As the sorting is done in the JSON::PP scope, you usually need to
+prepend C<JSON::PP::> to the subroutine name, and the special variables
+C<$a> and C<$b> used in the subrontine used by C<sort> function.
+
+Example:
+
+ my %ORDER = (id => 1, class => 2, name => 3);
+ $json->sort_by(sub {
+ ($ORDER{$JSON::PP::a} // 999) <=> ($ORDER{$JSON::PP::b} // 999)
+ or $JSON::PP::a cmp $JSON::PP::b
+ });
+ print $json->encode([
+ {name => 'CPAN', id => 1, href => 'http://cpan.org'}
+ ]);
+ # [{"id":1,"name":"CPAN","href":"http://cpan.org"}]
+
+Note that C<sort_by> affects all the plain hashes in the data structure.
+If you need finer control, C<tie> necessary hashes with a module that
+implements ordered hash (such as L<Hash::Ordered> and L<Tie::IxHash>).
+C<canonical> and C<sort_by> don't affect the key order in C<tie>d
+hashes.
+
+ use Hash::Ordered;
+ tie my %hash, 'Hash::Ordered',
+ (name => 'CPAN', id => 1, href => 'http://cpan.org');
+ print $json->encode([\%hash]);
+ # [{"name":"CPAN","id":1,"href":"http://cpan.org"}] # order is kept
=head1 INCREMENTAL PARSING
-Most of this section are copied and modified from L<JSON::XS/INCREMENTAL PARSING>.
+This section is also taken from JSON::XS.
-In some cases, there is the need for incremental parsing of JSON texts.
-This module does allow you to parse a JSON stream incrementally.
-It does so by accumulating text until it has a full JSON object, which
-it then can decode. This process is similar to using C<decode_prefix>
-to see if a full JSON object is available, but is much more efficient
-(and can be implemented with a minimum of method calls).
+In some cases, there is the need for incremental parsing of JSON
+texts. While this module always has to keep both JSON text and resulting
+Perl data structure in memory at one time, it does allow you to parse a
+JSON stream incrementally. It does so by accumulating text until it has
+a full JSON object, which it then can decode. This process is similar to
+using C<decode_prefix> to see if a full JSON object is available, but
+is much more efficient (and can be implemented with a minimum of method
+calls).
-This module will only attempt to parse the JSON text once it is sure it
+JSON::PP will only attempt to parse the JSON text once it is sure it
has enough text to get a decisive result, using a very simple but
truly incremental parser. This means that it sometimes won't stop as
-early as the full parser, for example, it doesn't detect parenthese
-mismatches. The only thing it guarantees is that it starts decoding as
+early as the full parser, for example, it doesn't detect mismatched
+parentheses. The only thing it guarantees is that it starts decoding as
soon as a syntactically valid JSON text has been seen. This means you need
to set resource limits (e.g. C<max_size>) to ensure the parser will stop
parsing in the presence if syntax errors.
@@ -2319,20 +2438,21 @@ If the method is called in scalar context, then it will try to extract
exactly I<one> JSON object. If that is successful, it will return this
object, otherwise it will return C<undef>. If there is a parse error,
this method will croak just as C<decode> would do (one can then use
-C<incr_skip> to skip the errornous part). This is the most common way of
+C<incr_skip> to skip the erroneous part). This is the most common way of
using the method.
And finally, in list context, it will try to extract as many objects
from the stream as it can find and return them, or the empty list
-otherwise. For this to work, there must be no separators between the JSON
-objects or arrays, instead they must be concatenated back-to-back. If
-an error occurs, an exception will be raised as in the scalar context
-case. Note that in this case, any previously-parsed JSON texts will be
-lost.
+otherwise. For this to work, there must be no separators (other than
+whitespace) between the JSON objects or arrays, instead they must be
+concatenated back-to-back. If an error occurs, an exception will be
+raised as in the scalar context case. Note that in this case, any
+previously-parsed JSON texts will be lost.
-Example: Parse some JSON arrays/objects in a given string and return them.
+Example: Parse some JSON arrays/objects in a given string and return
+them.
- my @objs = JSON->new->incr_parse ("[5][7][1,2]");
+ my @objs = JSON::PP->new->incr_parse ("[5][7][1,2]");
=head2 incr_text
@@ -2346,27 +2466,26 @@ although in simple tests it might actually work, it I<will> fail under
real world conditions). As a special exception, you can also call this
method before having parsed anything.
+That means you can only use this function to look at or manipulate text
+before or after complete JSON objects, not while the parser is in the
+middle of parsing a JSON object.
+
This function is useful in two cases: a) finding the trailing text after a
JSON object or b) parsing multiple JSON objects separated by non-JSON text
(such as commas).
- $json->incr_text =~ s/\s*,\s*//;
-
-In Perl 5.005, C<lvalue> attribute is not available.
-You must write codes like the below:
-
- $string = $json->incr_text;
- $string =~ s/\s*,\s*//;
- $json->incr_text( $string );
-
=head2 incr_skip
$json->incr_skip
-This will reset the state of the incremental parser and will remove the
-parsed text from the input buffer. This is useful after C<incr_parse>
-died, in which case the input buffer and incremental parser state is left
-unchanged, to skip the text parsed so far and to reset the parse state.
+This will reset the state of the incremental parser and will remove
+the parsed text from the input buffer so far. This is useful after
+C<incr_parse> died, in which case the input buffer and incremental parser
+state is left unchanged, to skip the text parsed so far and to reset the
+parse state.
+
+The difference to C<incr_reset> is that only text until the parse error
+occurred is removed.
=head2 incr_reset
@@ -2375,152 +2494,22 @@ unchanged, to skip the text parsed so far and to reset the parse state.
This completely resets the incremental parser, that is, after this call,
it will be as if the parser had never parsed anything.
-This is useful if you want ot repeatedly parse JSON objects and want to
+This is useful if you want to repeatedly parse JSON objects and want to
ignore any trailing data, which means you have to reset the parser after
each successful decode.
-See to L<JSON::XS/INCREMENTAL PARSING> for examples.
-
-
-=head1 JSON::PP OWN METHODS
-
-=head2 allow_singlequote
-
- $json = $json->allow_singlequote([$enable])
-
-If C<$enable> is true (or missing), then C<decode> will accept
-JSON strings quoted by single quotations that are invalid JSON
-format.
-
- $json->allow_singlequote->decode({"foo":'bar'});
- $json->allow_singlequote->decode({'foo':"bar"});
- $json->allow_singlequote->decode({'foo':'bar'});
-
-As same as the C<relaxed> option, this option may be used to parse
-application-specific files written by humans.
-
-
-=head2 allow_barekey
-
- $json = $json->allow_barekey([$enable])
-
-If C<$enable> is true (or missing), then C<decode> will accept
-bare keys of JSON object that are invalid JSON format.
-
-As same as the C<relaxed> option, this option may be used to parse
-application-specific files written by humans.
-
- $json->allow_barekey->decode('{foo:"bar"}');
-
-=head2 allow_bignum
-
- $json = $json->allow_bignum([$enable])
-
-If C<$enable> is true (or missing), then C<decode> will convert
-the big integer Perl cannot handle as integer into a L<Math::BigInt>
-object and convert a floating number (any) into a L<Math::BigFloat>.
-
-On the contary, C<encode> converts C<Math::BigInt> objects and C<Math::BigFloat>
-objects into JSON numbers with C<allow_blessed> enable.
-
- $json->allow_nonref->allow_blessed->allow_bignum;
- $bigfloat = $json->decode('2.000000000000000000000000001');
- print $json->encode($bigfloat);
- # => 2.000000000000000000000000001
-
-See to L<JSON::XS/MAPPING> aboout the normal conversion of JSON number.
-
-=head2 loose
-
- $json = $json->loose([$enable])
-
-The unescaped [\x00-\x1f\x22\x2f\x5c] strings are invalid in JSON strings
-and the module doesn't allow to C<decode> to these (except for \x2f).
-If C<$enable> is true (or missing), then C<decode> will accept these
-unescaped strings.
-
- $json->loose->decode(qq|["abc
- def"]|);
-
-See L<JSON::XS/SSECURITY CONSIDERATIONS>.
-
-=head2 escape_slash
-
- $json = $json->escape_slash([$enable])
-
-According to JSON Grammar, I<slash> (U+002F) is escaped. But default
-JSON::PP (as same as JSON::XS) encodes strings without escaping slash.
-
-If C<$enable> is true (or missing), then C<encode> will escape slashes.
-
-=head2 indent_length
-
- $json = $json->indent_length($length)
-
-JSON::XS indent space length is 3 and cannot be changed.
-JSON::PP set the indent space length with the given $length.
-The default is 3. The acceptable range is 0 to 15.
-
-=head2 sort_by
-
- $json = $json->sort_by($function_name)
- $json = $json->sort_by($subroutine_ref)
-
-If $function_name or $subroutine_ref are set, its sort routine are used
-in encoding JSON objects.
-
- $js = $pc->sort_by(sub { $JSON::PP::a cmp $JSON::PP::b })->encode($obj);
- # is($js, q|{"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9}|);
-
- $js = $pc->sort_by('own_sort')->encode($obj);
- # is($js, q|{"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9}|);
-
- sub JSON::PP::own_sort { $JSON::PP::a cmp $JSON::PP::b }
-
-As the sorting routine runs in the JSON::PP scope, the given
-subroutine name and the special variables C<$a>, C<$b> will begin
-'JSON::PP::'.
-
-If $integer is set, then the effect is same as C<canonical> on.
-
-=head1 INTERNAL
-
-For developers.
-
-=over
-
-=item PP_encode_box
-
-Returns
-
- {
- depth => $depth,
- indent_count => $indent_count,
- }
-
-
-=item PP_decode_box
-
-Returns
-
- {
- text => $text,
- at => $at,
- ch => $ch,
- len => $len,
- depth => $depth,
- encoding => $encoding,
- is_valid_utf8 => $is_valid_utf8,
- };
-
-=back
-
=head1 MAPPING
-This section is copied from JSON::XS and modified to C<JSON::PP>.
-JSON::XS and JSON::PP mapping mechanisms are almost equivalent.
+Most of this section is also taken from JSON::XS.
+
+This section describes how JSON::PP maps Perl values to JSON values and
+vice versa. These mappings are designed to "do the right thing" in most
+circumstances automatically, preserving round-tripping characteristics
+(what you put in comes out as something equivalent).
-See to L<JSON::XS/MAPPING>.
+For the more enlightened: note that in the following descriptions,
+lowercase I<perl> refers to the Perl interpreter, while uppercase I<Perl>
+refers to the abstract Perl language itself.
=head2 JSON -> PERL
@@ -2529,7 +2518,7 @@ See to L<JSON::XS/MAPPING>.
=item object
A JSON object becomes a reference to a hash in Perl. No ordering of object
-keys is preserved (JSON does not preserver object key ordering itself).
+keys is preserved (JSON does not preserve object key ordering itself).
=item array
@@ -2549,12 +2538,12 @@ the Perl level, there is no difference between those as Perl handles all
the conversion details, but an integer may take slightly less memory and
might represent more values exactly than floating point numbers.
-If the number consists of digits only, C<JSON> will try to represent
+If the number consists of digits only, JSON::PP will try to represent
it as an integer value. If that fails, it will try to represent it as
a numeric (floating point) value if that is possible without loss of
precision. Otherwise it will preserve the number as a string value (in
which case you lose roundtripping ability, as the JSON number will be
-re-encoded toa JSON string).
+re-encoded to a JSON string).
Numbers containing a fractional or exponential part will always be
represented as numeric (floating point) values, possibly at a loss of
@@ -2563,36 +2552,30 @@ the JSON number will still be re-encoded as a JSON number).
Note that precision is not accuracy - binary floating point values cannot
represent most decimal fractions exactly, and when converting from and to
-floating point, C<JSON> only guarantees precision up to but not including
-the leats significant bit.
+floating point, JSON::PP only guarantees precision up to but not including
+the least significant bit.
-When C<allow_bignum> is enable, the big integers
-and the numeric can be optionally converted into L<Math::BigInt> and
-L<Math::BigFloat> objects.
+When C<allow_bignum> is enabled, big integer values and any numeric
+values will be converted into L<Math::BigInt> and L<Math::BigFloat>
+objects respectively, without becoming string scalars or losing
+precision.
=item true, false
These JSON atoms become C<JSON::PP::true> and C<JSON::PP::false>,
respectively. They are overloaded to act almost exactly like the numbers
-C<1> and C<0>. You can check wether a scalar is a JSON boolean by using
-the C<JSON::is_bool> function.
-
- print JSON::PP::true . "\n";
- => true
- print JSON::PP::true + 1;
- => 1
-
- ok(JSON::true eq '1');
- ok(JSON::true == 1);
-
-C<JSON> will install these missing overloading features to the backend modules.
-
+C<1> and C<0>. You can check whether a scalar is a JSON boolean by using
+the C<JSON::PP::is_bool> function.
=item null
A JSON null atom becomes C<undef> in Perl.
-C<JSON::PP::null> returns C<unddef>.
+=item shell-style comments (C<< # I<text> >>)
+
+As a nonstandard extension to the JSON syntax that is enabled by the
+C<relaxed> setting, shell-style comments are allowed. They can start
+anywhere outside strings and go till the end of the line.
=back
@@ -2607,16 +2590,14 @@ a Perl value.
=item hash references
-Perl hash references become JSON objects. As there is no inherent ordering
-in hash keys (or JSON objects), they will usually be encoded in a
-pseudo-random order that can change between runs of the same program but
-stays generally the same within a single run of a program. C<JSON>
-optionally sort the hash keys (determined by the I<canonical> flag), so
-the same datastructure will serialise to the same JSON text (given same
-settings and version of JSON::XS), but this incurs a runtime overhead
-and is only rarely useful, e.g. when you want to compare some JSON text
-against another for equality.
-
+Perl hash references become JSON objects. As there is no inherent
+ordering in hash keys (or JSON objects), they will usually be encoded
+in a pseudo-random order. JSON::PP can optionally sort the hash keys
+(determined by the I<canonical> flag and/or I<sort_by> property), so
+the same data structure will serialise to the same JSON text (given
+same settings and version of JSON::PP), but this incurs a runtime
+overhead and is only rarely useful, e.g. when you want to compare some
+JSON text against another for equality.
=item array references
@@ -2627,31 +2608,30 @@ Perl array references become JSON arrays.
Other unblessed references are generally not allowed and will cause an
exception to be thrown, except for references to the integers C<0> and
C<1>, which get turned into C<false> and C<true> atoms in JSON. You can
-also use C<JSON::false> and C<JSON::true> to improve readability.
+also use C<JSON::PP::false> and C<JSON::PP::true> to improve
+readability.
- to_json [\0,JSON::PP::true] # yields [false,true]
+ to_json [\0, JSON::PP::true] # yields [false,true]
-=item JSON::PP::true, JSON::PP::false, JSON::PP::null
+=item JSON::PP::true, JSON::PP::false
These special values become JSON true and JSON false values,
respectively. You can also use C<\1> and C<\0> directly if you want.
-JSON::PP::null returns C<undef>.
+=item JSON::PP::null
-=item blessed objects
+This special value becomes JSON null.
-Blessed objects are not directly representable in JSON. See the
-C<allow_blessed> and C<convert_blessed> methods on various options on
-how to deal with this: basically, you can choose between throwing an
-exception, encoding the reference as if it weren't blessed, or provide
-your own serialiser method.
+=item blessed objects
-See to L<convert_blessed>.
+Blessed objects are not directly representable in JSON, but C<JSON::PP>
+allows various ways of handling objects. See L<OBJECT SERIALISATION>,
+below, for details.
=item simple scalars
Simple Perl scalars (any scalar that is not a reference) are the most
-difficult objects to encode: JSON::XS and JSON::PP will encode undefined scalars as
+difficult objects to encode: JSON::PP will encode undefined scalars as
JSON C<null> values, scalars that have last been used in a string context
before encoding as JSON strings, and anything else as number value:
@@ -2673,14 +2653,15 @@ You can force the type to be a string by stringifying it:
"$x"; # stringified
$x .= ""; # another, more awkward way to stringify
print $x; # perl does it for you, too, quite often
+ # (but for older perls)
You can force the type to be a number by numifying it:
my $x = "3"; # some variable containing a string
$x += 0; # numify it, ensuring it will be dumped as a number
- $x *= 1; # same thing, the choise is yours.
+ $x *= 1; # same thing, the choice is yours.
-You can not currently force the type in other, less obscure, ways.
+You cannot currently force the type in other, less obscure, ways.
Note that numerical precision has the same meaning as under Perl (so
binary to decimal conversion follows the same rules as in Perl, which
@@ -2689,94 +2670,171 @@ extensions to the floating point numbers of your platform, such as
infinities or NaN's - these cannot be represented in JSON, and it is an
error to pass those in.
-=item Big Number
-
-When C<allow_bignum> is enable,
-C<encode> converts C<Math::BigInt> objects and C<Math::BigFloat>
-objects into JSON numbers.
-
+JSON::PP (and JSON::XS) trusts what you pass to C<encode> method
+(or C<encode_json> function) is a clean, validated data structure with
+values that can be represented as valid JSON values only, because it's
+not from an external data source (as opposed to JSON texts you pass to
+C<decode> or C<decode_json>, which JSON::PP considers tainted and
+doesn't trust). As JSON::PP doesn't know exactly what you and consumers
+of your JSON texts want the unexpected values to be (you may want to
+convert them into null, or to stringify them with or without
+normalisation (string representation of infinities/NaN may vary
+depending on platforms), or to croak without conversion), you're advised
+to do what you and your consumers need before you encode, and also not
+to numify values that may start with values that look like a number
+(including infinities/NaN), without validating.
=back
-=head1 UNICODE HANDLING ON PERLS
-
-If you do not know about Unicode on Perl well,
-please check L<JSON::XS/A FEW NOTES ON UNICODE AND PERL>.
+=head2 OBJECT SERIALISATION
-=head2 Perl 5.8 and later
+As for Perl objects, JSON::PP only supports a pure JSON representation (without the ability to deserialise the object automatically again).
-Perl can handle Unicode and the JSON::PP de/encode methods also work properly.
+=head3 SERIALISATION
- $json->allow_nonref->encode(chr hex 3042);
- $json->allow_nonref->encode(chr hex 12345);
+What happens when C<JSON::PP> encounters a Perl object depends on the
+C<allow_blessed>, C<convert_blessed> and C<allow_bignum> settings, which are
+used in this order:
-Reuturns C<"\u3042"> and C<"\ud808\udf45"> respectively.
-
- $json->allow_nonref->decode('"\u3042"');
- $json->allow_nonref->decode('"\ud808\udf45"');
-
-Returns UTF-8 encoded strings with UTF8 flag, regarded as C<U+3042> and C<U+12345>.
-
-Note that the versions from Perl 5.8.0 to 5.8.2, Perl built-in C<join> was broken,
-so JSON::PP wraps the C<join> with a subroutine. Thus JSON::PP works slow in the versions.
-
-
-=head2 Perl 5.6
-
-Perl can handle Unicode and the JSON::PP de/encode methods also work.
+=over 4
-=head2 Perl 5.005
+=item 1. C<convert_blessed> is enabled and the object has a C<TO_JSON> method.
-Perl 5.005 is a byte sementics world -- all strings are sequences of bytes.
-That means the unicode handling is not available.
+In this case, the C<TO_JSON> method of the object is invoked in scalar
+context. It must return a single scalar that can be directly encoded into
+JSON. This scalar replaces the object in the JSON text.
-In encoding,
+For example, the following C<TO_JSON> method will convert all L<URI>
+objects to JSON strings when serialised. The fact that these values
+originally were L<URI> objects is lost.
- $json->allow_nonref->encode(chr hex 3042); # hex 3042 is 12354.
- $json->allow_nonref->encode(chr hex 12345); # hex 12345 is 74565.
+ sub URI::TO_JSON {
+ my ($uri) = @_;
+ $uri->as_string
+ }
-Returns C<B> and C<E>, as C<chr> takes a value more than 255, it treats
-as C<$value % 256>, so the above codes are equivalent to :
+=item 2. C<allow_bignum> is enabled and the object is a C<Math::BigInt> or C<Math::BigFloat>.
- $json->allow_nonref->encode(chr 66);
- $json->allow_nonref->encode(chr 69);
+The object will be serialised as a JSON number value.
-In decoding,
+=item 3. C<allow_blessed> is enabled.
- $json->decode('"\u00e3\u0081\u0082"');
+The object will be serialised as a JSON null value.
-The returned is a byte sequence C<0xE3 0x81 0x82> for UTF-8 encoded
-japanese character (C<HIRAGANA LETTER A>).
-And if it is represented in Unicode code point, C<U+3042>.
+=item 4. none of the above
-Next,
+If none of the settings are enabled or the respective methods are missing,
+C<JSON::PP> throws an exception.
- $json->decode('"\u3042"');
+=back
-We ordinary expect the returned value is a Unicode character C<U+3042>.
-But here is 5.005 world. This is C<0xE3 0x81 0x82>.
+=head1 ENCODING/CODESET FLAG NOTES
- $json->decode('"\ud808\udf45"');
+This section is taken from JSON::XS.
-This is not a character C<U+12345> but bytes - C<0xf0 0x92 0x8d 0x85>.
+The interested reader might have seen a number of flags that signify
+encodings or codesets - C<utf8>, C<latin1> and C<ascii>. There seems to be
+some confusion on what these do, so here is a short comparison:
+C<utf8> controls whether the JSON text created by C<encode> (and expected
+by C<decode>) is UTF-8 encoded or not, while C<latin1> and C<ascii> only
+control whether C<encode> escapes character values outside their respective
+codeset range. Neither of these flags conflict with each other, although
+some combinations make less sense than others.
-=head1 TODO
+Care has been taken to make all flags symmetrical with respect to
+C<encode> and C<decode>, that is, texts encoded with any combination of
+these flag values will be correctly decoded when the same flags are used
+- in general, if you use different flag settings while encoding vs. when
+decoding you likely have a bug somewhere.
-=over
+Below comes a verbose discussion of these flags. Note that a "codeset" is
+simply an abstract set of character-codepoint pairs, while an encoding
+takes those codepoint numbers and I<encodes> them, in our case into
+octets. Unicode is (among other things) a codeset, UTF-8 is an encoding,
+and ISO-8859-1 (= latin 1) and ASCII are both codesets I<and> encodings at
+the same time, which can be confusing.
-=item speed
+=over 4
-=item memory saving
+=item C<utf8> flag disabled
+
+When C<utf8> is disabled (the default), then C<encode>/C<decode> generate
+and expect Unicode strings, that is, characters with high ordinal Unicode
+values (> 255) will be encoded as such characters, and likewise such
+characters are decoded as-is, no changes to them will be done, except
+"(re-)interpreting" them as Unicode codepoints or Unicode characters,
+respectively (to Perl, these are the same thing in strings unless you do
+funny/weird/dumb stuff).
+
+This is useful when you want to do the encoding yourself (e.g. when you
+want to have UTF-16 encoded JSON texts) or when some other layer does
+the encoding for you (for example, when printing to a terminal using a
+filehandle that transparently encodes to UTF-8 you certainly do NOT want
+to UTF-8 encode your data first and have Perl encode it another time).
+
+=item C<utf8> flag enabled
+
+If the C<utf8>-flag is enabled, C<encode>/C<decode> will encode all
+characters using the corresponding UTF-8 multi-byte sequence, and will
+expect your input strings to be encoded as UTF-8, that is, no "character"
+of the input string must have any value > 255, as UTF-8 does not allow
+that.
+
+The C<utf8> flag therefore switches between two modes: disabled means you
+will get a Unicode string in Perl, enabled means you get an UTF-8 encoded
+octet/binary string in Perl.
+
+=item C<latin1> or C<ascii> flags enabled
+
+With C<latin1> (or C<ascii>) enabled, C<encode> will escape characters
+with ordinal values > 255 (> 127 with C<ascii>) and encode the remaining
+characters as specified by the C<utf8> flag.
+
+If C<utf8> is disabled, then the result is also correctly encoded in those
+character sets (as both are proper subsets of Unicode, meaning that a
+Unicode string with all character values < 256 is the same thing as a
+ISO-8859-1 string, and a Unicode string with all character values < 128 is
+the same thing as an ASCII string in Perl).
+
+If C<utf8> is enabled, you still get a correct UTF-8-encoded string,
+regardless of these flags, just some more characters will be escaped using
+C<\uXXXX> then before.
+
+Note that ISO-8859-1-I<encoded> strings are not compatible with UTF-8
+encoding, while ASCII-encoded strings are. That is because the ISO-8859-1
+encoding is NOT a subset of UTF-8 (despite the ISO-8859-1 I<codeset> being
+a subset of Unicode), while ASCII is.
+
+Surprisingly, C<decode> will ignore these flags and so treat all input
+values as governed by the C<utf8> flag. If it is disabled, this allows you
+to decode ISO-8859-1- and ASCII-encoded strings, as both strict subsets of
+Unicode. If it is enabled, you can correctly decode UTF-8 encoded strings.
+
+So neither C<latin1> nor C<ascii> are incompatible with the C<utf8> flag -
+they only govern when the JSON output engine escapes a character or not.
+
+The main use for C<latin1> is to relatively efficiently store binary data
+as JSON, at the expense of breaking compatibility with most JSON decoders.
+
+The main use for C<ascii> is to force the output to not contain characters
+with values > 127, which means you can interpret the resulting string
+as UTF-8, ISO-8859-1, ASCII, KOI8-R or most about any character set and
+8-bit-encoding, and still get the same data structure back. This is useful
+when your channel for JSON transfer is not 8-bit clean or the encoding
+might be mangled in between (e.g. in mail), and works because ASCII is a
+proper subset of most 8-bit and multibyte encodings in use in the world.
=back
-
=head1 SEE ALSO
-Most of the document are copied and modified from JSON::XS doc.
+The F<json_pp> command line utility for quick experiments.
+
+L<JSON::XS>, L<Cpanel::JSON::XS>, and L<JSON::Tiny> for faster alternatives.
+L<JSON> and L<JSON::MaybeXS> for easy migration.
-L<JSON::XS>
+L<JSON::PP::Compat5005> and L<JSON::PP::Compat5006> for older perl users.
RFC4627 (L<http://www.ietf.org/rfc/rfc4627.txt>)
@@ -2787,7 +2845,7 @@ Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
=head1 COPYRIGHT AND LICENSE
-Copyright 2007-2014 by Makamaka Hannyaharamitu
+Copyright 2007-2016 by Makamaka Hannyaharamitu
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pm
index 118c277c5b4..80a859d7f8a 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pm
@@ -1,25 +1,35 @@
package Locale::Codes;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+###############################################################################
+
use strict;
-require 5.006;
use warnings;
+require 5.006;
use Carp;
+use if $] >= 5.027007, 'deprecate';
use Locale::Codes::Constants;
-#=======================================================================
-# Public Global Variables
-#=======================================================================
+our($VERSION);
+$VERSION='3.56';
+
+use Exporter qw(import);
+our(@EXPORT_OK,%EXPORT_TAGS);
+@EXPORT_OK = @Locale::Codes::Constants::CONSTANTS;
+%EXPORT_TAGS = ( 'constants' => [ @EXPORT_OK ] );
-# This module is not called directly... %Data is filled in by the
-# calling modules.
+###############################################################################
+# GLOBAL DATA
+###############################################################################
+# All of the data is stored in a couple global variables. They are filled
+# in by requiring the appropriate TYPE_Codes and TYPE_Retired modules.
-our($VERSION,%Data,%Retired);
+our(%Data,%Retired);
# $Data{ TYPE }{ code2id }{ CODESET } { CODE } = [ ID, I ]
# { id2code }{ CODESET } { ID } = CODE
@@ -31,27 +41,122 @@ our($VERSION,%Data,%Retired);
# $Retired{ TYPE }{ CODESET }{ code }{ CODE } = NAME
# { name }{ NAME } = [CODE,NAME] (the key is lowercase)
-$VERSION='3.37';
+###############################################################################
+# METHODS
+###############################################################################
+
+sub new {
+ my($class,$type,$codeset,$show_errors) = @_;
+ my $self = { 'type' => '',
+ 'codeset' => '',
+ 'err' => (defined($show_errors) ? $show_errors : 1),
+ };
+
+ bless $self,$class;
+
+ $self->type($type) if ($type);
+ $self->codeset($codeset) if ($codeset);
+ return $self;
+}
+
+sub show_errors {
+ my($self,$val) = @_;
+ $$self{'err'} = $val;
+}
+
+sub type {
+ my($self,$type) = @_;
+
+ if (! exists $ALL_CODESETS{$type}) {
+ # uncoverable branch false
+ carp "ERROR: type: invalid argument: $type\n" if ($$self{'err'});
+ return;
+ }
+
+ # uncoverable branch false
+ if (! $ALL_CODESETS{$type}{'loaded'}) {
+ my $label = $ALL_CODESETS{$type}{'module'};
+ eval "require Locale::Codes::${label}_Codes";
+ # uncoverable branch true
+ if ($@) {
+ # uncoverable statement
+ croak "ERROR: type: unable to load module: ${label}_Codes\n";
+ }
+ eval "require Locale::Codes::${label}_Retired";
+ # uncoverable branch true
+ if ($@) {
+ # uncoverable statement
+ croak "ERROR: type: unable to load module: ${label}_Retired\n";
+ }
+ $ALL_CODESETS{$type}{'loaded'} = 1;
+ }
+
+ $$self{'type'} = $type;
+ $$self{'codeset'} = $ALL_CODESETS{$type}{'default'};
+}
+
+sub codeset {
+ my($self,$codeset) = @_;
+
+ my $type = $$self{'type'};
+ if (! exists $ALL_CODESETS{$type}{'codesets'}{$codeset}) {
+ # uncoverable branch false
+ carp "ERROR: codeset: invalid argument: $codeset\n" if ($$self{'err'});
+ }
+
+ $$self{'codeset'} = $codeset;
+}
+
+sub version {
+ # uncoverable subroutine
+ # uncoverable statement
+ my($self) = @_;
+ # uncoverable statement
+ return $VERSION;
+}
+
+###############################################################################
-#=======================================================================
+# This is used to validate a codeset and/or code. It will also format
+# a code for that codeset.
#
-# _code ( TYPE,CODE,CODESET )
+# (ERR,RET_CODE,RET_CODESET) = $o->_code([CODE [,CODESET]])
+#
+# If CODE is empty/undef, only the codeset will be validated
+# and RET_CODE will be empty.
+#
+# If CODE is passed in, it will be returned formatted correctly
+# for the codeset.
+#
+# ERR will be 0 or 1.
+#
+# If $no_check_code is 1, then the code will not be validated (i.e.
+# it doesn't already have to exist). This will be useful for adding
+# a new code.
#
-#=======================================================================
-
sub _code {
- return 1 if (@_ > 3);
+ my($self,$code,$codeset,$no_check_code) = @_;
+ $code = '' if (! defined($code));
+ $codeset = lc($codeset) if (defined($codeset));
- my($type,$code,$codeset) = @_;
- $code = '' if (! defined $code);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return (1);
+ }
+ my $type = $$self{'type'};
+ if ($codeset && ! exists $ALL_CODESETS{$type}{'codesets'}{$codeset}) {
+ carp "ERROR: _code: invalid codeset provided: $codeset\n"
+ if ($$self{'err'});
+ return (1);
+ }
- # Determine the codeset
+ # If no codeset was passed in, return the codeset specified.
- $codeset = $ALL_CODESETS{$type}{'default'}
- if (! defined($codeset) || $codeset eq '');
- $codeset = lc($codeset);
- return (1) if (! exists $ALL_CODESETS{$type}{'codesets'}{$codeset});
- return (0,$code,$codeset) if (! $code);
+ $codeset = $$self{'codeset'} if (! defined($codeset) || $codeset eq '');
+ return (0,'',$codeset) if ($code eq '');
# Determine the properties of the codeset
@@ -59,53 +164,75 @@ sub _code {
if ($op eq 'lc') {
$code = lc($code);
- return (0,$code,$codeset);
}
if ($op eq 'uc') {
$code = uc($code);
- return (0,$code,$codeset);
}
if ($op eq 'ucfirst') {
$code = ucfirst(lc($code));
- return (0,$code,$codeset);
}
# uncoverable branch false
if ($op eq 'numeric') {
- return (1) unless ($code =~ /^\d+$/);
- my $l = $args[0];
- $code = sprintf("%.${l}d", $code);
- return (0,$code,$codeset);
+ if ($code =~ /^\d+$/) {
+ my $l = $args[0];
+ $code = sprintf("%.${l}d", $code);
+
+ } else {
+ # uncoverable statement
+ carp "ERROR: _code: invalid numeric code: $code\n" if ($$self{'err'});
+ # uncoverable statement
+ return (1);
+ }
+ }
+
+ # Determine if the code is in the codeset.
+
+ if (! $no_check_code &&
+ ! exists $Data{$type}{'code2id'}{$codeset}{$code} &&
+ ! exists $Retired{$type}{$codeset}{'code'}{$code} &&
+ ! exists $Data{$type}{'codealias'}{$codeset}{$code}) {
+ carp "ERROR: _code: code not in codeset: $code [$codeset]\n"
+ if ($$self{'err'});
+ return (1);
}
- # uncoverable statement
- die "ERROR: codeset not defined correctly: $codeset [$op]\n";
+ return (0,$code,$codeset);
}
-#=======================================================================
+###############################################################################
+
+# $name = $o->code2name(CODE [,CODESET] [,'retired'])
+# $code = $o->name2code(NAME [,CODESET] [,'retired'])
#
-# _code2name ( TYPE,CODE [,CODESET] [,'retired'] )
+# Returns the name associated with the CODE (or vice versa).
#
-#=======================================================================
-
-sub _code2name {
- my($type,@args) = @_;
- my $retired = 0;
- if (@args > 0 && $args[$#args] && $args[$#args] eq 'retired') {
+sub code2name {
+ my($self,@args) = @_;
+ my $retired = 0;
+ if (@args && defined($args[$#args]) && lc($args[$#args]) eq 'retired') {
pop(@args);
- $retired = 1;
+ $retired = 1;
}
- my($err,$code,$codeset) = _code($type,@args);
- return undef if ($err);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return (1);
+ }
+ my $type = $$self{'type'};
+
+ my ($err,$code,$codeset) = $self->_code(@args);
+ return undef if ($err || ! $code);
$code = $Data{$type}{'codealias'}{$codeset}{$code}
if (exists $Data{$type}{'codealias'}{$codeset}{$code});
- if (exists $Data{$type}{'code2id'}{$codeset} &&
- exists $Data{$type}{'code2id'}{$codeset}{$code}) {
+ if (exists $Data{$type}{'code2id'}{$codeset}{$code}) {
my ($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} };
my $name = $Data{$type}{'id2names'}{$id}[$i];
return $name;
@@ -118,24 +245,27 @@ sub _code2name {
}
}
-#=======================================================================
-#
-# _name2code ( TYPE,NAME [,CODESET] [,'retired'] )
-#
-#=======================================================================
-
-sub _name2code {
- my($type,$name,@args) = @_;
+sub name2code {
+ my($self,$name,@args) = @_;
return undef if (! $name);
$name = lc($name);
- my $retired = 0;
- if (@args > 0 && $args[$#args] && $args[$#args] eq 'retired') {
+ my $retired = 0;
+ if (@args && defined($args[$#args]) && lc($args[$#args]) eq 'retired') {
pop(@args);
- $retired = 1;
+ $retired = 1;
+ }
+
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return (1);
}
+ my $type = $$self{'type'};
- my($err,$tmp,$codeset) = _code($type,'',@args);
+ my ($err,$tmp,$codeset) = $self->_code('',@args);
return undef if ($err);
if (exists $Data{$type}{'alias2id'}{$name}) {
@@ -151,71 +281,100 @@ sub _name2code {
return undef;
}
-#=======================================================================
+# $code = $o->code2code(CODE,CODESET2)
+# $code = $o->code2code(CODE,CODESET1,CODESET2)
#
-# _code2code ( TYPE,CODE,CODESET )
+# Changes the code in the CODESET1 (or the current codeset) to another
+# codeset (CODESET2)
#
-#=======================================================================
+sub code2code {
+ my($self,@args) = @_;
-sub _code2code {
- my($type,@args) = @_;
- (@args == 3) or croak "${type}_code2code() takes 3 arguments!";
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return (1);
+ }
+ my $type = $$self{'type'};
- my($code,$inset,$outset) = @args;
- my($err,$tmp);
- ($err,$code,$inset) = _code($type,$code,$inset);
- return undef if ($err);
- ($err,$tmp,$outset) = _code($type,'',$outset);
- return undef if ($err);
+ my($code,$codeset1,$codeset2,$err);
+
+ if (@args == 2) {
+ ($code,$codeset2) = @args;
+ ($err,$code,$codeset1) = $self->_code($code);
+ # uncoverable branch true
+ return undef if ($err);
- my $name = _code2name($type,$code,$inset);
- my $outcode = _name2code($type,$name,$outset);
- return $outcode;
+ } elsif (@args == 3) {
+ ($code,$codeset1,$codeset2) = @args;
+ ($err,$code) = $self->_code($code,$codeset1);
+ return undef if ($err);
+ ($err) = $self->_code('',$codeset2);
+ # uncoverable branch true
+ return undef if ($err);
+ }
+
+ my $name = $self->code2name($code,$codeset1);
+ my $out = $self->name2code($name,$codeset2);
+ return $out;
}
-#=======================================================================
-#
-# _all_codes ( TYPE [,CODESET] [,'retired'] )
+###############################################################################
+
+# @codes = $o->all_codes([CODESET] [,'retired']);
+# @names = $o->all_names([CODESET] [,'retired']);
#
-#=======================================================================
+# Returns all codes/names in the specified codeset, including retired
+# ones if the option is given.
-sub _all_codes {
- my($type,@args) = @_;
- my $retired = 0;
- if (@args > 0 && $args[$#args] && $args[$#args] eq 'retired') {
+sub all_codes {
+ my($self,@args) = @_;
+ my $retired = 0;
+ if (@args && defined($args[$#args]) && lc($args[$#args]) eq 'retired') {
pop(@args);
- $retired = 1;
+ $retired = 1;
}
- my ($err,$tmp,$codeset) = _code($type,'',@args);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return (1);
+ }
+ my $type = $$self{'type'};
+
+ my ($err,$tmp,$codeset) = $self->_code('',@args);
return () if ($err);
- if (! exists $Data{$type}{'code2id'}{$codeset}) {
- return ();
- }
my @codes = keys %{ $Data{$type}{'code2id'}{$codeset} };
push(@codes,keys %{ $Retired{$type}{$codeset}{'code'} }) if ($retired);
return (sort @codes);
}
-#=======================================================================
-#
-# _all_names ( TYPE [,CODESET] [,'retired'] )
-#
-#=======================================================================
-
-sub _all_names {
- my($type,@args) = @_;
- my $retired = 0;
- if (@args > 0 && $args[$#args] && $args[$#args] eq 'retired') {
+sub all_names {
+ my($self,@args) = @_;
+ my $retired = 0;
+ if (@args && defined($args[$#args]) && lc($args[$#args]) eq 'retired') {
pop(@args);
- $retired = 1;
+ $retired = 1;
+ }
+
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return (1);
}
+ my $type = $$self{'type'};
- my ($err,$tmp,$codeset) = _code($type,'',@args);
+ my ($err,$tmp,$codeset) = $self->_code('',@args);
return () if ($err);
- my @codes = _all_codes($type,$codeset);
+ my @codes = $self->all_codes($codeset);
my @names;
foreach my $code (@codes) {
@@ -232,43 +391,37 @@ sub _all_names {
return (sort @names);
}
-#=======================================================================
-#
-# _rename ( TYPE,CODE,NAME,CODESET )
+###############################################################################
+
+# $flag = $o->rename_code (CODE,NEW_NAME [,CODESET])
#
# Change the official name for a code. The original is retained
# as an alias, but the new name will be returned if you lookup the
# name from code.
#
-#=======================================================================
-
-sub _rename {
- my($type,$code,$new_name,@args) = @_;
-
- my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
-
- my $codeset = shift(@args);
- my $err;
- ($err,$code,$codeset) = _code($type,$code,$codeset);
+# Returns 1 on success.
+#
+sub rename_code {
+ my($self,$code,$new_name,$codeset) = @_;
- if (! $codeset) {
- carp "rename_$type(): unknown codeset\n" unless ($nowarn);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
return 0;
}
+ my $type = $$self{'type'};
- $code = $Data{$type}{'codealias'}{$codeset}{$code}
- if (exists $Data{$type}{'codealias'}{$codeset}{$code});
-
- # Check that $code exists in the codeset.
+ # Make sure $code/$codeset are both valid
- my $id;
- if (exists $Data{$type}{'code2id'}{$codeset}{$code}) {
- $id = $Data{$type}{'code2id'}{$codeset}{$code}[0];
- } else {
- carp "rename_$type(): unknown code: $code\n" unless ($nowarn);
+ my($err,$c,$cs) = $self->_code($code,$codeset);
+ if ($err) {
+ carp "ERROR: rename: Unknown code/codeset: $code [$codeset]\n"
+ if ($$self{'err'});
return 0;
}
+ ($code,$codeset) = ($c,$cs);
# Cases:
# 1. Renaming to a name which exists with a different ID
@@ -281,14 +434,16 @@ sub _rename {
# Create a new alias
# Change code2id (I value)
+ my $id = $Data{$type}{'code2id'}{$codeset}{$code}[0];
+
if (exists $Data{$type}{'alias2id'}{lc($new_name)}) {
# Existing name (case 1 and 2)
my ($new_id,$i) = @{ $Data{$type}{'alias2id'}{lc($new_name)} };
if ($new_id != $id) {
# Case 1
- carp "rename_$type(): rename to an existing $type not allowed\n"
- unless ($nowarn);
+ carp "ERROR: rename: rename to an existing name not allowed\n"
+ if ($$self{'err'});
return 0;
}
@@ -309,35 +464,40 @@ sub _rename {
return 1;
}
-#=======================================================================
-#
-# _add_code ( TYPE,CODE,NAME,CODESET )
+###############################################################################
+
+# $flag = $o->add_code (CODE,NAME [,CODESET])
#
# Add a new code to the codeset. Both CODE and NAME must be
# unused in the code set.
#
-#=======================================================================
-
-sub _add_code {
- my($type,$code,$name,@args) = @_;
+sub add_code {
+ my($self,$code,$name,$codeset) = @_;
- my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return 0;
+ }
+ my $type = $$self{'type'};
- my $codeset = shift(@args);
- my $err;
- ($err,$code,$codeset) = _code($type,$code,$codeset);
+ # Make sure that $codeset is valid.
- if (! $codeset) {
- carp "add_$type(): unknown codeset\n" unless ($nowarn);
+ my($err,$c,$cs) = $self->_code($code,$codeset,1);
+ if ($err) {
+ carp "ERROR: rename: Unknown codeset: $codeset\n"
+ if ($$self{'err'});
return 0;
}
+ ($code,$codeset) = ($c,$cs);
# Check that $code is unused.
if (exists $Data{$type}{'code2id'}{$codeset}{$code} ||
exists $Data{$type}{'codealias'}{$codeset}{$code}) {
- carp "add_$type(): code already in use: $code\n" unless ($nowarn);
+ carp "add_code: code already in use: $code\n" if ($$self{'err'});
return 0;
}
@@ -349,7 +509,7 @@ sub _add_code {
if (exists $Data{$type}{'alias2id'}{lc($name)}) {
($id,$i) = @{ $Data{$type}{'alias2id'}{lc($name)} };
if (exists $Data{$type}{'id2code'}{$codeset}{$id}) {
- carp "add_$type(): name already in use: $name\n" unless ($nowarn);
+ carp "add_code: name already in use: $name\n" if ($$self{'err'});
return 0;
}
@@ -368,38 +528,36 @@ sub _add_code {
return 1;
}
-#=======================================================================
-#
-# _delete_code ( TYPE,CODE,CODESET )
+###############################################################################
+
+# $flag = $o->delete_code (CODE [,CODESET])
#
# Delete a code from the codeset.
#
-#=======================================================================
+sub delete_code {
+ my($self,$code,$codeset) = @_;
-sub _delete_code {
- my($type,$code,@args) = @_;
-
- my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
-
- my $codeset = shift(@args);
- my $err;
- ($err,$code,$codeset) = _code($type,$code,$codeset);
-
- if (! $codeset) {
- carp "delete_$type(): unknown codeset\n" unless ($nowarn);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
return 0;
}
+ my $type = $$self{'type'};
- $code = $Data{$type}{'codealias'}{$codeset}{$code}
- if (exists $Data{$type}{'codealias'}{$codeset}{$code});
-
- # Check that $code is valid.
+ # Make sure $code/$codeset are both valid
- if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
- carp "delete_$type(): code does not exist: $code\n" unless ($nowarn);
+ my($err,$c,$cs) = $self->_code($code,$codeset);
+ # uncoverable branch true
+ if ($err) {
+ # uncoverable statement
+ carp "ERROR: rename: Unknown code/codeset: $code [$codeset]\n"
+ if ($$self{'err'});
+ # uncoverable statement
return 0;
}
+ ($code,$codeset) = ($c,$cs);
# Delete the code
@@ -430,18 +588,23 @@ sub _delete_code {
return 1;
}
-#=======================================================================
-#
-# _add_alias ( TYPE,NAME,NEW_NAME )
+###############################################################################
+
+# $flag = $o->add_alias (NAME,NEW_NAME)
#
# Add a new alias. NAME must exist, and NEW_NAME must be unused.
#
-#=======================================================================
+sub add_alias {
+ my($self,$name,$new_name) = @_;
-sub _add_alias {
- my($type,$name,$new_name,$nowarn) = @_;
-
- $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return 0;
+ }
+ my $type = $$self{'type'};
# Check that $name is used and $new_name is new.
@@ -449,12 +612,12 @@ sub _add_alias {
if (exists $Data{$type}{'alias2id'}{lc($name)}) {
$id = $Data{$type}{'alias2id'}{lc($name)}[0];
} else {
- carp "add_${type}_alias(): name does not exist: $name\n" unless ($nowarn);
+ carp "add_alias: name does not exist: $name\n" if ($$self{'err'});
return 0;
}
if (exists $Data{$type}{'alias2id'}{lc($new_name)}) {
- carp "add_${type}_alias(): alias already in use: $new_name\n" unless ($nowarn);
+ carp "add_alias: alias already in use: $new_name\n" if ($$self{'err'});
return 0;
}
@@ -467,9 +630,9 @@ sub _add_alias {
return 1;
}
-#=======================================================================
-#
-# _delete_alias ( TYPE,NAME )
+###############################################################################
+
+# $flag = $o->delete_alias (NAME)
#
# This deletes a name from the list of names used by an element.
# NAME must be used, but must NOT be the only name in the list.
@@ -477,12 +640,17 @@ sub _add_alias {
# Any id2name that references this name will be changed to
# refer to the first name in the list.
#
-#=======================================================================
-
-sub _delete_alias {
- my($type,$name,$nowarn) = @_;
+sub delete_alias {
+ my($self,$name) = @_;
- $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return 0;
+ }
+ my $type = $$self{'type'};
# Check that $name is used.
@@ -490,14 +658,14 @@ sub _delete_alias {
if (exists $Data{$type}{'alias2id'}{lc($name)}) {
($id,$i) = @{ $Data{$type}{'alias2id'}{lc($name)} };
} else {
- carp "delete_${type}_alias(): name does not exist: $name\n" unless ($nowarn);
+ carp "delete_alias: name does not exist: $name\n" if ($$self{'err'});
return 0;
}
my $n = $#{ $Data{$type}{'id2names'}{$id} } + 1;
if ($n == 1) {
- carp "delete_${type}_alias(): only one name defined (use _delete_${type} instead)\n"
- unless ($nowarn);
+ carp "delete_alias: only one name defined (use delete_code instead)\n"
+ if ($$self{'err'});
return 0;
}
@@ -511,15 +679,15 @@ sub _delete_alias {
# Set to 0 if I = $i
# Decrement if I > $i
- foreach my $codeset (keys %{ $Data{'code2id'} }) {
- foreach my $code (keys %{ $Data{'code2id'}{$codeset} }) {
- my($jd,$j) = @{ $Data{'code2id'}{$codeset}{$code} };
+ foreach my $codeset (keys %{ $Data{$type}{'code2id'} }) {
+ foreach my $code (keys %{ $Data{$type}{'code2id'}{$codeset} }) {
+ my($jd,$j) = @{ $Data{$type}{'code2id'}{$codeset}{$code} };
next if ($jd ne $id ||
$j < $i);
if ($i == $j) {
- $Data{'code2id'}{$codeset}{$code}[1] = 0;
+ $Data{$type}{'code2id'}{$codeset}{$code}[1] = 0;
} else {
- $Data{'code2id'}{$codeset}{$code}[1]--;
+ $Data{$type}{'code2id'}{$codeset}{$code}[1]--;
}
}
}
@@ -527,41 +695,37 @@ sub _delete_alias {
return 1;
}
-#=======================================================================
-#
-# _rename_code ( TYPE,CODE,NEW_CODE,CODESET )
+###############################################################################
+
+# $flag = $o->replace_code (CODE,NEW_CODE [,CODESET])
#
# Change the official code. The original is retained as an alias, but
-# the new name will be returned if you lookup the code from name.
+# the new code will be returned if do a name2code lookup.
#
-#=======================================================================
-
-sub _rename_code {
- my($type,$code,$new_code,@args) = @_;
-
- my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+sub replace_code {
+ my($self,$code,$new_code,$codeset) = @_;
- my $codeset = shift(@args);
- my $err;
- ($err,$code,$codeset) = _code($type,$code,$codeset);
- ($err,$new_code,$codeset) = _code($type,$new_code,$codeset)
- if (! $err);
-
- if (! $codeset) {
- carp "rename_$type(): unknown codeset\n" unless ($nowarn);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
return 0;
}
+ my $type = $$self{'type'};
- $code = $Data{$type}{'codealias'}{$codeset}{$code}
- if (exists $Data{$type}{'codealias'}{$codeset}{$code});
-
- # Check that $code exists in the codeset.
+ # Make sure $code/$codeset are both valid (and that $new_code is the
+ # correct format)
- if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
- carp "rename_$type(): unknown code: $code\n" unless ($nowarn);
+ my($err,$c,$cs) = $self->_code($code,$codeset);
+ if ($err) {
+ carp "ERROR: rename_code: Unknown code/codeset: $code [$codeset]\n"
+ if ($$self{'err'});
return 0;
}
+ ($code,$codeset) = ($c,$cs);
+
+ ($err,$new_code,$codeset) = $self->_code($new_code,$codeset,1);
# Cases:
# 1. Renaming code to an existing alias of this code:
@@ -586,13 +750,15 @@ sub _rename_code {
} else {
# Case 2
- carp "rename_$type(): new code already in use: $new_code\n" unless ($nowarn);
+ carp "rename_code: new code already in use: $new_code\n"
+ if ($$self{'err'});
return 0;
}
} elsif (exists $Data{$type}{'code2id'}{$codeset}{$new_code}) {
# Case 3
- carp "rename_$type(): new code already in use: $new_code\n" unless ($nowarn);
+ carp "rename_code: new code already in use: $new_code\n"
+ if ($$self{'err'});
return 0;
}
@@ -601,7 +767,8 @@ sub _rename_code {
$Data{$type}{'codealias'}{$codeset}{$code} = $new_code;
my $id = $Data{$type}{'code2id'}{$codeset}{$code}[0];
- $Data{$type}{'code2id'}{$codeset}{$new_code} = $Data{$type}{'code2id'}{$codeset}{$code};
+ $Data{$type}{'code2id'}{$codeset}{$new_code} =
+ $Data{$type}{'code2id'}{$codeset}{$code};
delete $Data{$type}{'code2id'}{$codeset}{$code};
$Data{$type}{'id2code'}{$codeset}{$id} = $new_code;
@@ -609,45 +776,43 @@ sub _rename_code {
return 1;
}
-#=======================================================================
-#
-# _add_code_alias ( TYPE,CODE,NEW_CODE,CODESET )
+###############################################################################
+
+# $flag = $o->add_code_alias (CODE,NEW_CODE [,CODESET])
#
# Adds an alias for the code.
#
-#=======================================================================
-
-sub _add_code_alias {
- my($type,$code,$new_code,@args) = @_;
+sub add_code_alias {
+ my($self,$code,$new_code,$codeset) = @_;
- my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
-
- my $codeset = shift(@args);
- my $err;
- ($err,$code,$codeset) = _code($type,$code,$codeset);
- ($err,$new_code,$codeset) = _code($type,$new_code,$codeset)
- if (! $err);
-
- if (! $codeset) {
- carp "add_${type}_code_alias(): unknown codeset\n" unless ($nowarn);
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
return 0;
}
+ my $type = $$self{'type'};
- $code = $Data{$type}{'codealias'}{$codeset}{$code}
- if (exists $Data{$type}{'codealias'}{$codeset}{$code});
-
- # Check that $code exists in the codeset and that $new_code
- # does not exist.
+ # Make sure $code/$codeset are both valid and that the new code is
+ # properly formatted.
- if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
- carp "add_${type}_code_alias(): unknown code: $code\n" unless ($nowarn);
+ my($err,$c,$cs) = $self->_code($code,$codeset);
+ if ($err) {
+ carp "ERROR: add_code_alias: Unknown code/codeset: $code [$codeset]\n"
+ if ($$self{'err'});
return 0;
}
+ ($code,$codeset) = ($c,$cs);
+
+ ($err,$new_code,$cs) = $self->_code($new_code,$codeset,1);
+
+ # Check that $new_code does not exist.
if (exists $Data{$type}{'code2id'}{$codeset}{$new_code} ||
exists $Data{$type}{'codealias'}{$codeset}{$new_code}) {
- carp "add_${type}_code_alias(): code already in use: $new_code\n" unless ($nowarn);
+ # uncoverable branch true
+ carp "add_code_alias: code already in use: $new_code\n" if ($$self{'err'});
return 0;
}
@@ -658,33 +823,40 @@ sub _add_code_alias {
return 1;
}
-#=======================================================================
-#
-# _delete_code_alias ( TYPE,CODE,CODESET )
+###############################################################################
+
+# $flag = $o->delete_code_alias (ALIAS [,CODESET])
#
# Deletes an alias for the code.
#
-#=======================================================================
-
-sub _delete_code_alias {
- my($type,$code,@args) = @_;
+sub delete_code_alias {
+ my($self,$code,$codeset) = @_;
- my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+ # uncoverable branch true
+ if (! $$self{'type'}) {
+ # uncoverable statement
+ carp "ERROR: no type set for Locale::Codes object\n" if ($$self{'err'});
+ # uncoverable statement
+ return 0;
+ }
+ my $type = $$self{'type'};
- my $codeset = shift(@args);
- my $err;
- ($err,$code,$codeset) = Locale::Codes::_code($type,$code,$codeset);
+ # Make sure $code/$codeset are both valid
- if (! $codeset) {
- carp "delete_${type}_code_alias(): unknown codeset\n" unless ($nowarn);
+ my($err,$c,$cs) = $self->_code($code,$codeset);
+ if ($err) {
+ # uncoverable branch true
+ carp "ERROR: rename: Unknown code/codeset: $code [$codeset]\n"
+ if ($$self{'err'});
return 0;
}
+ ($code,$codeset) = ($c,$cs);
# Check that $code exists in the codeset as an alias.
if (! exists $Data{$type}{'codealias'}{$codeset}{$code}) {
- carp "delete_${type}_code_alias(): no alias defined: $code\n" unless ($nowarn);
+ # uncoverable branch true
+ carp "delete_code_alias(): no alias defined: $code\n" if ($$self{'err'});
return 0;
}
@@ -704,5 +876,5 @@ sub _delete_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pod
index 106f0bab1cc..9049b667ba6 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes.pod
@@ -6,171 +6,428 @@ Locale::Codes - a distribution of modules to handle locale codes
=head1 DESCRIPTION
-B<Locale-Codes> is a distribution containing a set of modules. The
-modules each deal with different types of codes which identify parts
-of the locale including languages, countries, currency, etc.
+B<Locale-Codes> is a distribution containing a set of modules designed
+to work with sets of codes which uniquely identify something. For
+example, there are codes associated with different countries, different
+currencies, different languages, etc. These sets of codes are typically
+maintained in some standard.
+
+This distribution provides a way to work with these lists of codes.
+Because the data from the various standards is not available in any
+sort of consistent API, access to the lists is not available in any
+direct fashion. To compensate for this, the list of codes is stored
+internally within this distribution, and the distribution is updated
+on a regular basis to include all known codes at that point in time.
+This does mean that it is necessary to keep this distribution
+up-to-date to keep up with the various changes that are made in the
+various standards.
+
+Traditionally, a module has been created to work with each type of
+code sets. So, there is a module for working with country lists, one
+for currency lists, etc. Since version 3.00, all of these individual
+modules were written as wrappers around a central module (which was not
+intended to be used directly) which did all of the real work.
+
+Starting with version 3.50, the central module was reworked slightly
+to provide an object-oriented interface. All of the modules for
+working with individual types of code sets were reworked to use the
+improved OO module, so the traditional interfaces still work as they
+always have. As a result, you are free to use the traditional
+functional (non-OO) interfaces, or to use the OO interface and bypass
+the wrapper modules entirely.
+
+Both methods will be supported in the future, so use the one that is
+best suited to your needs.
+
+Within each type, any number of code sets are allowed. For example,
+sets of country codes are maintained in several different locations
+including the ISO-3166 standard, the IANA, and by the United Nations.
+The lists of countries are similar, but not identical. Multiple code
+sets are supported, though trying to convert from one code set to
+another will not always work since the list of countries is not
+one-to-one.
-Currently, the following modules are included:
+All data in all of these modules comes directly from the original
+standards (or as close to direct as possible), so it should be
+up-to-date at the time of release.
+
+I plan on releasing a new version several times a year to incorporate
+any changes made in the standards. However, I don't always know about
+changes that occur, so if any of the standards change, and you want a
+new release sooner, just email me and I'll get one out.
+
+=head1 SYNOPSIS (OBJECT-ORIENTED INTERFACE)
+
+ use Locale::Codes;
+ or
+ use Locale::Codes ':constants';
+
+ $obj = new Locale::Codes 'country';
+
+=head1 OBJECT-ORIENTED METHODS
+
+The following methods are available.
+
+In all methods, when specifying a code set, the name (as a string)
+is always available.
+
+Traditionally, you could also use a perl constant to specify the
+code set. In order to do so with the OO interface, you have to
+import the constants. To do that, load the module with:
+
+ use Locale::Codes ':constants';
=over 4
-=item L<Locale::Codes::Country>, L<Locale::Country>
+=item B<new ( [TYPE [,CODESET]] )>
-This includes support for country codes (such as those listed in ISO-3166)
-to specify the country.
+ $obj = new Locale::Codes;
+ $obj = new Locale::Codes 'country';
+ $obj = new Locale::Codes 'country','alpha-3';
+ $obj = new Locale::Codes 'country',LOCALE_COUNTRY_ALPHA_3;
-Because this module was originally distributed as L<Locale::Country>, it is
-also available under that name.
+This creates a new object that can access the data. If no type is specified
+(in the first argument), you must use the B<type> method described below.
+No operations will work unless the type is specified.
-=item L<Locale::Codes::Language>, L<Locale::Language>
+The second argument is the default code set to use. This is optional, as
+each type has a default code set. The default code set can be set using
+the B<codeset> method below.
-This includes support for language codes (such as those listed in ISO-639)
-to specify the language.
+The last example is only available if the constants were imported when
+the module was loaded.
-Because this module was originally distributed as L<Locale::Language>, it is
-also available under that name.
+=item B<show_errors ( FLAG )>
-=item L<Locale::Codes::Currency>, L<Locale::Currency>
+ $obj->show_errors(1);
+ $obj->show_errors(0);
-This includes support for currency codes (such as those listed in ISO-4217)
-to specify the currency.
+By default, error messages will be produced when bad data is passed
+to any method. By passing in '0', these will be turned off so that
+all failures will be silent.
-Because this module was originally distributed as L<Locale::Currency>, it is
-also available under that name.
+=item B<type ( TYPE )>
-=item L<Locale::Codes::Script>, L<Locale::Script>
+ $obj->type($type)
-This includes support for script codes (such as those listed in ISO-15924)
-to specify the script.
+This will set the type of codes that will be worked with. C<$type> may
+be any of the recognized types of code sets, including:
-Because this module was originally distributed as L<Locale::Script>, it is
-also available under that name.
+ country
+ language
+ currency
+ script
+ etc.
-=item L<Locale::Codes::LangExt>
+The list of valid types, and the code sets supported in each, are described
+in the L<Locale::Codes::Types> document.
-This includes support for language extension codes (such as those listed
-in the IANA language registry) to specify the language extension.
+This method can be called any number of times to toggle between different types
+of code sets.
-=item L<Locale::Codes::LangVar>
+=item B<codeset ( CODESET )>
-This includes support for language variation codes (such as those listed
-in the IANA language registry) to specify the language variation.
+ $obj->codeset($codeset);
-=item L<Locale::Codes::LangFam>
+This sets the default code set to use. The list of code sets available
+for each type are described in the L<Locale::Codes::Types> document.
-This includes support for language family codes (such as those listed
-in ISO 639-5) to specify families of languages.
+In all other methods below, when an optional B<CODESET> argument is
+omitted, it will default to this value.
-=back
+=item B<code2name ( CODE [,CODESET] [,'retired'] )>
-Each module can support an arbitrary number of code sets, and it is
-not required that the relationship between these code sets be
-one-to-one. For example, the L<Locale::Codes::Country> module
-supports code sets from ISO-3166 and the IANA standard, and those two
-standards do not break the world down into exactly the same sets of
-countries. This does not cause any problem (though converting codes
-from ISO-3166 to IANA or back will not work except for countries that
-are one-to-one).
+ $name = $obj->code2name($code [,$codeset] [,'retired']);
-All data in all of these modules comes directly from the original
-standards (or as close to direct as possible), so it should be
-up-to-date at the time of release.
+This functions take a code and returns a string which contains
+the name of the element identified. If the code is not a valid
+code in the B<CODESET> specified then C<undef> will be returned.
-I plan on releasing a new version several times a year to incorporate
-any changes made in the standards. However, I don't always know about
-changes that occur, so if any of the standards change, and you want a
-new release sooner, just email me and I'll get one out.
+The name of the element is the name as specified in the standard,
+and as a result, different variations of an element name may
+be returned for different values of B<CODESET>.
-In addition to the modules above, there are a number of support modules included
-in the distribution including:
+For example, the alpha-2 country code set defines the two-letter
+code "bo" to be "Bolivia, Plurinational State of", whereas the
+alpha-3 code set defines the code 'bol' to be the country "Bolivia
+(Plurinational State of)". So:
-=over 4
+ $obj->code2name('bo','alpha-2');
+ => 'Bolivia, Plurinational State of'
+
+ $obj->code2name('bol','alpha-3');
+ => 'Bolivia (Plurinational State of)'
+
+By default, only active codes will be used, but if the string
+'retired' is passed in as an argument, both active and retired
+codes will be examined.
+
+=item B<name2code ( NAME [,CODESET] [,'retired'] )>
+
+ $code = $obj->name2code($name [,$codeset] [,'retired']);
+
+This function takes the name of an element (or any of it's aliases)
+and returns the code that corresponds to it, if it exists. If B<NAME>
+could not be identified as the name of one of the elements, then
+C<undef> will be returned.
+
+The name is not case sensitive. Also, any known variation of a name
+may be passed in.
-=item B<Locale::Codes>
+For example, even though the country name returned using 'alpha-2'
+and 'alpha-3' country codes for Bolivia are different, either country
+name may be passed in since for each code set (in addition to the more
+common alias 'Bolivia'). So:
-=item B<Locale::Codes::Constants>
+ $obj->name2code('Bolivia, Plurinational State of','alpha-2');
+ => bo
-=item B<Locale::Codes::Country_codes>
+ $obj->name2code('Bolivia (Plurinational State of)','alpha-2');
+ => bo
-=item B<Locale::Codes::Language_codes>
+ $obj->name2code('Bolivia','alpha-2');
+ => bo
-=item B<Locale::Codes::Currency_codes>
+By default, only active names will be used, but if the string
+'retired' is passed in as an argument, both active and retired
+names will be examined.
-=item B<Locale::Codes::Script_codes>
+=item B<code2code ( CODE [,CODESET] ,CODESET2 )>
-=item B<Locale::Codes::LangExt_codes>
+ $code = $obj->code2code($code [,$codeset] ,$codeset2);
-=item B<Locale::Codes::LangVar_codes>
+This function takes a code from one code set (B<CODESET> or the
+default code set), and returns the corresponding code from another
+code set (B<CODESET2>). B<CODE> must exists in the code set specified
+by B<CODESET> and must have a corresponding code in the
+code set specified by B<CODESET2> or C<undef> will be returned.
-=item B<Locale::Codes::LangFam_codes>
+ $obj->code2code('fin','alpha-3','alpha-2');
+ => 'fi'
+
+Note that this function does NOT support retired codes.
+
+=item B<all_codes ( [CODESET] [,'retired'] )>
+
+ @code = $obj->all_codes([$codeset] [,'retired']);
+
+This returns a list of all code in the code set. The codes will be
+sorted.
+
+By default, only active codes will be returned, but if the string
+'retired' is passed in as an argument, both active and retired
+codes will be returned.
+
+=item B<all_names ( [CODESET] [,'retired'] )>
+
+ @name = $obj->all_names([$codeset] [,'retired']);
+
+This method returns a list of all elements names for which there is a
+corresponding code in the specified code set.
+
+The names returned are exactly as they are specified in the standard,
+and are sorted.
+
+Since not all elements are listed in all code sets, the list of
+elements may differ depending on the code set specified.
+
+By default, only active names will be returned, but if the string
+'retired' is passed in as an argument, both active and retired
+names will be returned.
=back
-These modules are not intended to be used by programmers. They contain functions
-or data that are used by the modules listed above. No support of any kind is
-offered for using these modules directly. They may be modified at any time.
+The following additional methods are available and can be used to
+modify the code list data (and are therefore not generally useful).
+
+=over 4
+
+=item B<rename_code ( CODE ,NEW_NAME [,CODESET] )>
+
+ $flag = $obj->rename_code($code,$new_name [,$codeset]);
+
+This method can be used to change the official name of an element. At
+that point, the name returned by the C<code2name> method would be
+B<NEW_NAME> instead of the name specified in the standard.
+
+The original name will remain as an alias.
+
+For example, the official country name for code 'gb' is 'United
+Kingdom'. If you want to change that, you might call:
+
+ $obj->rename_code('gb', 'Great Britain');
+
+This means that calling code2name('gb') will now return 'Great
+Britain' instead of 'United Kingdom'.
+
+If any error occurs, a warning is issued and 0 is returned. An error
+occurs if B<CODE> doesn't exist in the specified code set, or if
+B<NEW_NAME> is already in use but for a different element.
+
+If the method succeeds, 1 is returned.
+
+=item B<add_code ( CODE ,NAME [,CODESET] )>
+
+ $flag = $obj->add_code($code,$name [,$codeset]);
+
+This method is used to add a new code and name to the data.
+
+Both B<CODE> and B<NAME> must be unused in the data set or an error
+occurs (though B<NAME> may be used in a different data set).
+
+For example, to create the fictitious country named "Duchy of
+Grand Fenwick" with codes "gf" and "fen", use the following:
+
+ $obj->add_code("fe","Duchy of Grand Fenwick",'alpha-2');
+ $obj->add_code("fen","Duchy of Grand Fenwick",'alpha-3');
+
+The return value is 1 on success, 0 on an error.
+
+=item B<delete_code ( CODE [,CODESET] )>
+
+ $flag = $obj->delete_code($code [,$codeset]);
+
+This method is used to delete a code from the data.
+
+B<CODE> must refer to an existing code in the code set.
-=head1 NEW CODE SETS
+The return value is 1 on success, 0 on an error.
-I'm always open to suggestions for new code sets.
+=item B<add_alias ( NAME ,NEW_NAME )>
-In order for me to add a code set, I want the following criteria
-to be met:
+ $flag = $obj->add_alias($name,$new_name);
+
+This method is used to add a new alias to the data. They do
+not alter the return value of the C<code2name> function.
+
+B<NAME> must be an existing element name, and B<NEW_NAME> must
+be unused or an error occurs.
+
+The return value is 1 on success, 0 on an error.
+
+=item B<delete_alias ( NAME )>
+
+ $flag = $obj->delete_alias($name);
+
+This method is used to delete an alias from the data. Once
+removed, the element may not be referred to by B<NAME>.
+
+B<NAME> must be one of a list of at least two names that may be used to
+specify an element. If the element may only be referred to by a single
+name, you'll need to use the C<add_alias> method to add a new alias
+first, or the C<remove_code> method to remove the element entirely.
+
+If the alias is used as the name in any code set, one of the other
+names will be used instead. Predicting exactly which one will
+be used requires you to know the order in which the standards
+were read, which is not reliable, so you may want to use the
+C<rename_code> method to force one of the alternate names to be
+used.
+
+The return value is 1 on success, 0 on an error.
+
+=item B<replace_code ( CODE ,NEW_CODE [,CODESET] )>
+
+ $flag = $obj->replace_code($code,$new_code [,$codeset]);
+
+This method is used to change the official code for an element. At
+that point, the code returned by the C<name2code> method would be
+B<NEW_CODE> instead of the code specified in the standard.
+
+B<NEW_CODE> may either be a code that is not in use, or it may be an
+alias for B<CODE> (in which case, B<CODE> becomes and alias and B<NEW_CODE>
+becomes the "real" code).
+
+The original code is kept as an alias, so that the C<code2name> routines
+will work with either the code from the standard or the new code.
+
+However, the C<all_codes> method will only return the codes which
+are considered "real" (which means that the list of codes will now
+contain B<NEW_CODE>, but will not contain B<CODE>).
+
+=item B<add_code_alias ( CODE ,NEW_CODE [,CODESET] )>
+
+ $flag = $obj->add_code_alias($code,$new_code [,$codeset]);
+
+This method adds an alias for the code. At that point, B<NEW_CODE> and B<CODE>
+will both work in the C<code2name> method. However, the C<name2code> method will
+still return the original code.
+
+=item B<delete_code_alias ( CODE [,CODESET] )>
+
+These routines delete an alias for the code.
+
+These will only work if B<CODE> is actually an alias. If it is the "real"
+code, it will not be deleted. You will need to use the C<rename_code>
+method to switch the real code with one of the aliases, and then
+delete the alias.
+
+=back
+
+=head1 TRADITIONAL INTERFACES
+
+In addition the the primary OO module, the following modules are included in
+the distribution for the traditional way of working with code sets.
+
+Each module will work with one specific type of code sets.
=over 4
-=item B<General-use code set>
+=item L<Locale::Codes::Country>, L<Locale::Country>
+
+This includes support for country codes (such as those listed in ISO-3166)
+to specify the country.
+
+Because this module was originally distributed as L<Locale::Country>, it is
+also available under that name.
+
+=item L<Locale::Codes::Language>, L<Locale::Language>
+
+This includes support for language codes (such as those listed in ISO-639)
+to specify the language.
+
+Because this module was originally distributed as L<Locale::Language>, it is
+also available under that name.
+
+=item L<Locale::Codes::Currency>, L<Locale::Currency>
-If a code set is not general use, I'm not likely to spend the time
-to add and support it.
+This includes support for currency codes (such as those listed in ISO-4217)
+to specify the currency.
-=item B<An official source of data>
+Because this module was originally distributed as L<Locale::Currency>, it is
+also available under that name.
-I require an official (or at least, a NEARLY official) source where I
-can get the data on a regular basis.
+=item L<Locale::Codes::Script>, L<Locale::Script>
-Ideally, I'd only get data from an official source, but sometimes that
-is not possible. For example the ISO standards are not typically
-available for free, so I may have to get some of that data from
-alternate sources that I'm confident are getting their data from the
-official source. However, I will always be hesitant to accept a
-non-official source.
+This includes support for script codes (such as those listed in ISO-15924)
+to specify the script.
-As an example, I used to get some country data from the CIA World
-Factbook. Given the nature of the source, I'm sure they're updating
-data from the official sources and I consider it "nearly" official.
-However, even in this case, I found that they were adding codes that
-were not part of the standard, so I have stopped using them as a
-source.
+Because this module was originally distributed as L<Locale::Script>, it is
+also available under that name.
-There are many 3rd party sites which maintain lists (many of which are
-actually in a more convenient form than the official sites).
-Unfortunately, I will reject most of them since I have no feel for how
-"official" they are.
+=item L<Locale::Codes::LangExt>
-=item B<A free source of the data>
+This includes support for language extension codes (such as those listed
+in the IANA language registry) to specify the language extension.
-Obviously, the data must be free-of-charge. I'm not interested in
-paying for the data (and I'm not interested in the overhead of having
-someone else pay for the data for me).
+=item L<Locale::Codes::LangVar>
-=item B<A reliable source of data>
+This includes support for language variation codes (such as those listed
+in the IANA language registry) to specify the language variation.
-The source of data must come from a source that I can reasonably expect
-to exist for the foreseeable future since I will be extremely reluctant
-to drop support for a data set once it's included.
+=item L<Locale::Codes::LangFam>
-I am also reluctant to accept data sent to me by an individual.
-Although I appreciate the offer, it is simply not practical to consider
-an individual contribution as a reliable source of data. The source
-should be an official agency of some sort.
+This includes support for language family codes (such as those listed
+in ISO 639-5) to specify families of languages.
=back
-These requirements are open to discussion. If you have a code set
-you'd like to see added, but which may not meet all of the above
-requirements, feel free to email me and we'll discuss it. Depending
-on circumstances, I may be willing to waive some of these criteria.
+In addition to the modules above, there are a number of support modules included
+in the distribution. Any module not listed above falls into that category.
+
+These modules are not intended to be used by programmers. They contain functions
+or data that are used by the modules listed above. No support of any kind is
+offered for using these modules directly. They may be modified at any time.
=head1 COMMON ALIASES
@@ -207,7 +464,7 @@ to 3.00, but it has been removed. Other aliases (if any) which no
longer appear in any standard (and which are not common variations of
the name in the standards) have also been removed.
-=head1 DEPRECATED CODES
+=head1 RETIRED CODES
Occasionally, a code is deprecated, but it may still be desirable to
have access to it.
@@ -217,53 +474,100 @@ been deprecated (since most codesets do not have that information
available), as of version 3.20, every code which has ever been included
in these modules can be referenced.
-For more information, refer to the documentation on the code2XXX, XXX2code,
-all_XXX_codes, and all_XXX_names function in the L<Locale::Codes::API>
-documentation.
+For more information, refer to the documentation on the code2name, name2code,
+all_codes, and all_names methods above.
=head1 SEE ALSO
=over 4
-=item L<Locale::Codes::API>
+=item L<Locale::Codes::Types>
-The list of functions available in each of the modules listed below.
-The APIs for each module are exactly identical.
+The list of all code sets available for each type.
-=item L<Locale::Codes::Country>
+=item L<Locale::Codes::Changes>
-Codes for identification of countries.
+A history of changes made to this distribution.
-=item L<Locale::Codes::Language>
+=back
-Codes for identification of languages.
+=head1 KNOWN BUGS AND LIMITATIONS
-=item L<Locale::Codes::Script>
+=over 4
-Codes for identification of scripts.
+=item B<Relationship between code sets>
-=item L<Locale::Codes::Currency>
+Because each code set uses a slightly different list of elements, and
+they are not necessarily one-to-one, there may be some confusion
+about the relationship between codes from different code sets.
-Codes for identification of currencies and funds.
+For example, ISO 3166 assigns one code to the country "United States
+Minor Outlying Islands", but the IANA codes give different codes
+to different islands (Baker Island, Howland Island, etc.).
-=item L<Locale::Codes::LangExt>
+This may cause some confusion... I've done the best that I could do
+to minimize it.
-Codes for identification of language extensions.
+=item B<Non-ASCII characters not supported>
-=item L<Locale::Codes::LangVar>
+Currently all names must be all ASCII. I plan on relaxing that
+limitation in the future.
-Codes for identification of language variations.
+=back
-=item L<Locale::Codes::LangFam>
+=head1 BUGS AND QUESTIONS
-Codes for identification of language families.
+If you find a bug in Locale::Codes, there are three ways to send it to me.
+Any of them are fine, so use the method that is easiest for you.
-=item L<Locale::Codes::Changes>
+=over 4
-A history of changes made to this distribution.
+=item Direct email
+
+You are welcome to send it directly to me by email. The email address
+to use is: sbeck@cpan.org.
+
+=item CPAN Bug Tracking
+
+You can submit it using the CPAN tracking too. This can be done at the
+following URL:
+
+L<http://rt.cpan.org/Public/Dist/Display.html?Name=Locale-Codes>
+
+=item GitHub
+
+You can submit it as an issue on GitHub. This can be done at the following
+URL:
+
+L<https://github.com/SBECK-github/Locale-Codes>
=back
+Please do not use other means to report bugs (such as forums for a specific
+OS or Linux distribution) as it is impossible for me to keep up with all of
+them.
+
+When filing a bug report, please include the following information:
+
+=over 4
+
+=item B<Locale::Codes version>
+
+Please include the version of Locale::Codes you are using. You can get
+this by using the script:
+
+ use Locale::Codes;
+ print $Locale::Codes::VERSION,"\n";
+
+=back
+
+If you want to report missing or incorrect codes, you must be running the
+most recent version of Locale::Codes.
+
+If you find any problems with the documentation (errors, typos, or items
+that are not clear), please send them to me. I welcome any suggestions
+that will allow me to improve the documentation.
+
=head1 AUTHOR
Locale::Country and Locale::Language were originally written by Neil
@@ -275,23 +579,20 @@ modified by Neil Bowers for inclusion in the distribution.
From 2001 to 2004, maintenance was continued by Neil Bowers. He
modified Locale::Currency for inclusion in the distribution. He also
-added Locale::Constants and Locale::Script.
+added Locale::Script.
From 2004-2009, the module was unmaintained.
In 2010, maintenance was taken over by Sullivan Beck (sbeck@cpan.org)
with Neil Bower's permission. All problems or comments should be
-sent there. Alternately, problems can be reported using the
-perl problem tracker at:
-
- L<https://rt.cpan.org/Dist/Display.html?Queue=Locale-Codes>
+sent to him using any of the methods listed above.
=head1 COPYRIGHT
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001 Michael Hennecke (Locale::Currency)
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/API.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/API.pod
deleted file mode 100644
index f196461ea01..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/API.pod
+++ /dev/null
@@ -1,335 +0,0 @@
-=pod
-
-=head1 NAME
-
-Locale::Codes::API - a description of the callable function in each module
-
-=head1 DESCRIPTION
-
-Although there are several modules in the B<Locale-Codes> distribution, all of them
-(as of version 3.10) use exactly the same API. As a matter of fact, each of the
-main callable modules are just wrappers around a central module which does all
-the real work.
-
-=head1 ROUTINES
-
-In order to maintain the documentation for the modules consistently,
-the functions are all documented here, rather than in the documentation
-for the separate modules.
-
-The name of the function depends on the module. For example, every module
-contains a function C<code2XXX> where XXX refers to the type of data.
-The values of XXX are described in the following table:
-
- XXX MODULE
-
- country Locale::Codes::Country
- language Locale::Codes::Language
- currency Locale::Codes::Currency
- script Locale::Codes::Script
- langext Locale::Codes::LangExt
- langvar Locale::Codes::LangVar
- langfam Locale::Codes::LangFam
-
-So, the L<Locale::Country> module contains the function C<code2country>, the
-L<Locale::Language> module contains the function C<code2language>, etc.
-
-In all of the functions below, B<CODE> refers to a code for one
-element in the code set. For example, in the two-letter country codes
-from ISO 3166-1, the code 'fi' is used to refer to the country
-Finland. B<CODE> is always case insensitive when passed in as an
-argument, so 'fi', 'FI', and 'Fi' would all be equivalent arguments.
-When B<CODE> is returned from an argument, it will always be in the
-case as used in the standard.
-
-B<CODESET> refers to a constant specified in the documentation for each
-module to label the various code sets. For example, in the
-L<Locale::Language> module, B<CODESET> could be LOCALE_CODE_ALPHA_2 or
-LOCALE_CODE_ALPHA_3 (among others). Most functions have a default one,
-so they do not need to be specified. So the following calls are valid:
-
- code2country("fi");
- code2country("fi",LOCALE_CODE_ALPHA_2);
- code2country("fin",LOCALE_CODE_ALPHA_3);
-
-Since LOCALE_CODE_ALPHA_2 is the default code set, the first two are
-identical.
-
-=over 4
-
-=item B<code2XXX ( CODE [,CODESET] [,'retired'] )>
-
-These functions take a code and returns a string which contains
-the name of the element identified. If the code is not a valid
-code in the B<CODESET> specified then C<undef> will be returned.
-
-The name of the element is the name as specified in the standard,
-and as a result, different variations of an element name may
-be returned for different values of B<CODESET>.
-
-For example, the alpha-2 country code set defines the two-letter
-code "bo" to be "Bolivia, Plurinational State of", whereas the
-alpha-3 code set defines the code 'bol' to be the country "Bolivia
-(Plurinational State of)". So:
-
- code2country('bo',LOCALE_CODE_ALPHA_2);
- => 'Bolivia, Plurinational State of'
-
- code2country('bol',LOCALE_CODE_ALPHA_3);
- => 'Bolivia (Plurinational State of)'
-
-By default, only active codes will be used, but if the string
-'retired' is passed in as an argument, both active and retired
-codes will be examined.
-
-=item B<XXX2code ( NAME [,CODESET] [,'retired'] )>
-
-These functions takes the name of an element (or any of it's aliases)
-and returns the code that corresponds to it, if it exists. If B<NAME>
-could not be identified as the name of one of the elements, then
-C<undef> will be returned.
-
-The name is not case sensitive. Also, any known variation of a name
-may be passed in.
-
-For example, even though the country name returned using
-LOCALE_CODE_ALPHA_2 and LOCALE_CODE_ALPHA_3 country codes for Bolivia
-is different, either country name may be passed in since for each code
-set (in addition to the alias 'Bolivia'). So:
-
- country2code('Bolivia, Plurinational State of',
- LOCALE_CODE_ALPHA_2);
- => bo
-
- country2code('Bolivia (Plurinational State of)',
- LOCALE_CODE_ALPHA_2);
- => bo
-
- country2code('Bolivia',LOCALE_CODE_ALPHA_2);
- => bo
-
-By default, only active names will be used, but if the string
-'retired' is passed in as an argument, both active and retired
-names will be examined.
-
-=item B<XXX_code2code ( CODE ,CODESET ,CODESET2 )>
-
-These functions takes a code from one code set, and returns the
-corresponding code from another code set. B<CODE> must exists in the code
-set specified by B<CODESET> and must have a corresponding code in the
-code set specified by B<CODESET2> or C<undef> will be returned.
-
-Both B<CODESET> and B<CODESET2> must be explicitly entered.
-
- country_code2code('fin', LOCALE_CODE_ALPHA_3,
- LOCALE_CODE_ALPHA_2);
- => 'fi'
-
-Note that this function does NOT support retired codes.
-
-=item B<all_XXX_codes ( [CODESET] [,'retired'] )>
-
-These returns a list of all code in the code set. The codes will be
-sorted.
-
-By default, only active codes will be returned, but if the string
-'retired' is passed in as an argument, both active and retired
-codes will be returned.
-
-=item B<all_XXX_names ( [CODESET] [,'retired'] )>
-
-These return a list of all elements names for which there is a
-corresponding code in the specified code set.
-
-The names returned are exactly as they are specified in the standard,
-and are sorted.
-
-Since not all elements are listed in all code sets, the list of
-elements may differ depending on the code set specified.
-
-By default, only active names will be returned, but if the string
-'retired' is passed in as an argument, both active and retired
-names will be returned.
-
-=back
-
-=head1 SEMI-PRIVATE ROUTINES
-
-Additional semi-private routines which may be used to modify the
-internal data are also available. Given their status, they aren't
-exported, and so need to be called by prefixing the function name with
-the package name.
-
-These routines do not currently work with retired codes.
-
-=over 4
-
-=item B<MODULE::rename_XXX ( CODE ,NEW_NAME [,CODESET] )>
-
-These routines are used to change the official name of an element. At
-that point, the name returned by the C<code2XXX> routine would be
-B<NEW_NAME> instead of the name specified in the standard.
-
-The original name will remain as an alias.
-
-For example, the official country name for code 'gb' is 'United
-Kingdom'. If you want to change that, you might call:
-
- Locale::Codes::Country::rename_country('gb', 'Great Britain');
-
-This means that calling code2country('gb') will now return 'Great
-Britain' instead of 'United Kingdom'.
-
-If any error occurs, a warning is issued and 0 is returned. An error
-occurs if B<CODE> doesn't exist in the specified code set, or if
-B<NEW_NAME> is already in use but for a different element.
-
-If the routine succeeds, 1 is returned.
-
-=item B<MODULE::add_XXX ( CODE ,NAME [,CODESET] )>
-
-These routines are used to add a new code and name to the data.
-
-Both B<CODE> and B<NAME> must be unused in the data set or an error
-occurs (though B<NAME> may be used in a different data set).
-
-For example, to create the fictitious country named "Duchy of
-Grand Fenwick" with codes "gf" and "fen", use the following:
-
- Locale::Codes::Country::add_country("fe","Duchy of Grand Fenwick",
- LOCALE_CODE_ALPHA_2);
-
- Locale::Codes::Country::add_country("fen","Duchy of Grand Fenwick",
- LOCALE_CODE_ALPHA_3);
-
-The return value is 1 on success, 0 on an error.
-
-=item B<MODULE::delete_XXX ( CODE [,CODESET] )>
-
-These routines are used to delete a code from the data.
-
-B<CODE> must refer to an existing code in the code set.
-
-The return value is 1 on success, 0 on an error.
-
-=item B<MODULE::add_XXX_alias ( NAME ,NEW_NAME )>
-
-These routines are used to add a new alias to the data. They do
-not alter the return value of the C<code2XXX> function.
-
-B<NAME> must be an existing element name, and B<NEW_NAME> must
-be unused or an error occurs.
-
-The return value is 1 on success, 0 on an error.
-
-=item B<MODULE::delete_XXX_alias ( NAME )>
-
-These routines are used to delete an alias from the data. Once
-removed, the element may not be referred to by B<NAME>.
-
-B<NAME> must be one of a list of at least two names that may be used to
-specify an element. If the element may only be referred to by a single
-name, you'll need to use the C<add_XXX_alias> function to add a new alias
-first, or the C<remove_XXX> function to remove the element entirely.
-
-If the alias is used as the name in any code set, one of the other
-names will be used instead. Predicting exactly which one will
-be used requires you to know the order in which the standards
-were read, which is not reliable, so you may want to use the
-C<rename_XXX> function to force one of the alternate names to be
-used.
-
-The return value is 1 on success, 0 on an error.
-
-=item B<MODULE::rename_XXX_code ( CODE ,NEW_CODE [,CODESET] )>
-
-These routines are used to change the official code for an element. At
-that point, the code returned by the C<XXX2code> routine would be
-B<NEW_CODE> instead of the code specified in the standard.
-
-B<NEW_CODE> may either be a code that is not in use, or it may be an
-alias for B<CODE> (in which case, B<CODE> becomes and alias and B<NEW_CODE>
-becomes the "real" code).
-
-The original code is kept as an alias, so that the C<code2XXX> routines
-will work with either the code from the standard or the new code.
-
-However, the C<all_XXX_codes> routine will only return the codes which
-are considered "real" (which means that the list of codes will now
-contain B<NEW_CODE>, but will not contain B<CODE>).
-
-=item B<MODULE::add_XXX_code_alias ( CODE ,NEW_CODE [,CODESET] )>
-
-These routines add an alias for the code. At that point, B<NEW_CODE> and B<CODE>
-will both work in the C<code2XXX> routines. However, the C<XXX2code> routines will
-still return the original code.
-
-=item B<MODULE::delete_XXX_code_alias ( CODE [,CODESET] )>
-
-These routines delete an alias for the code.
-
-These will only work if B<CODE> is actually an alias. If it is the "real"
-code, it will not be deleted. You will need to use the C<rename_XXX_code>
-function to switch the real code with one of the aliases, and then
-delete the alias.
-
-=back
-
-=head1 KNOWN BUGS AND LIMITATIONS
-
-=over 4
-
-=item B<Relationship between code sets>
-
-Because each code set uses a slightly different list of elements, and
-they are not necessarily one-to-one, there may be some confusion
-about the relationship between codes from different code sets.
-
-For example, ISO 3166 assigns one code to the country "United States
-Minor Outlying Islands", but the IANA codes give different codes
-to different islands (Baker Island, Howland Island, etc.).
-
-This may cause some confusion... I've done the best that I could do
-to minimize it.
-
-=item B<Non-ASCII characters not supported>
-
-Currently all names must be all ASCII. I plan on relaxing that
-limitation in the future.
-
-=back
-
-=head1 SEE ALSO
-
-L<Locale::Codes>
-
-L<Locale::Codes::Country>
-
-L<Locale::Codes::Language>
-
-L<Locale::Codes::Currency>
-
-L<Locale::Codes::Script>
-
-L<Locale::Codes::LangExt>
-
-L<Locale::Codes::LangVar>
-
-L<Locale::Codes::LangFam>
-
-=head1 AUTHOR
-
-See Locale::Codes for full author history.
-
-Currently maintained by Sullivan Beck (sbeck@cpan.org).
-
-=head1 COPYRIGHT
-
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod
index 199aa96d5b8..13cc4b90d57 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Changes.pod
@@ -22,13 +22,196 @@ September, December). I will also check on request, so if a code
changes that you use, feel free to contact me. Any time there are new
codes, I will add them to the module and release a new version.
-=head1 VERSION 3.41 (planned 2016-12-01; sbeck)
+=head1 VERSION 3.59 (planned 2018-12-01; sbeck)
-=head1 VERSION 3.40 (planned 2016-09-01; sbeck)
+=head1 VERSION 3.58 (planned 2018-09-01; sbeck)
-=head1 VERSION 3.39 (planned 2016-06-01; sbeck)
+=head1 VERSION 3.57 (planned 2018-06-01; sbeck)
-=head1 VERSION 3.38 (planned 2016-03-01; sbeck)
+=head1 VERSION 3.56 (planned 2018-03-01; sbeck)
+
+NEW CODE(s)
+
+=head1 VERSION 3.55 (2017-11-17; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item B<(*) Deprecated in core>
+
+Because correct usage of any of the Locale::Codes modules requires that
+they be kept up-to-date, I have long felt that it should not be distributed
+as a core module. After discussion on the perl5-porters list, it is agreed,
+and the deprecation process has been started.
+
+Thanks to p5p-porters (especially Dagfinn Ilmari Mannsaker) for discussion
+and guidance.
+
+=item Changes from a github pull request applied
+
+A couple minor changes (updated .travis.yml to include newest versions of
+perl; and a couple changes to pod_coverage.t) reported by lancew on GitHub.
+
+=item Got rid of Build.PL
+
+Simplified things by only supporting one of Makefile.PL/Build.PL (and the latter
+has been removed from perl core some time ago). RT 123572
+
+=item Fixed INSTALLDIRS
+
+The behavior of installing core modules changed in 5.12 a bit, and Makefile.PL
+now reflects that. RT 123571
+
+=back
+
+=head1 VERSION 3.54 (2017-09-01; sbeck)
+
+NEW CODE(s)
+
+=head1 VERSION 3.53 (2017-07-25; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item Fixed the default error condition in legacy modules.
+
+With the addition of the OO module, better error handling was added (and it
+was on by default). The non-OO (legacy) modules did not report errors, so
+code that uses them, would now behave differently if invalid data were
+passed in.
+
+I have turned off error handling by default in the legacy modules. The
+show_errors method was added to each of the non-OO modules to report errors
+if desired.
+
+Reported by dmaestro on GitHub.
+
+=back
+
+=head1 VERSION 3.52 (2017-06-01; sbeck)
+
+NEW CODE(s)
+
+=head1 VERSION 3.51 (2017-04-10; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item Tests no longer require (.) in INC
+
+As of perl 5.25.11, (.) is being removed from INC. I had to adjust the
+tests accordingly.
+
+=back
+
+=head1 VERSION 3.50 (2017-03-01; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item B<(*) Rewrote as OO module>
+
+The core module (Locale::Codes) is now an OO module that can be used
+directly. All of the other modules (Locale::Codes::TYPE) are still
+the older functional interfaces and remain unchanged.
+
+=item B<Added some constants>
+
+Historically, the constant names used to identify the codesets have been
+named inconsistently. The original constants for codesets are:
+
+ Type Constants
+
+ country LOCALE_CODE_*
+ currency LOCALE_CURR_*
+ language LOCALE_LANG_*
+
+ script LOCALE_SCRIPT_*
+ langfam LOCALE_LANGFAM_*
+ langvar LOCALE_LANGVAR_*
+ langext LOCALE_LANGEXT_*
+
+For consistencies sake, I have added some new codes (which are otherwise
+identical to the irregularly named codes):
+
+ country LOCALE_COUNTRY_*
+ currency LOCALE_CURRENCY_*
+ language LOCALE_LANGUAGE_*
+
+Going forward, all constants will include the full name of the code type.
+
+=item Non-OO modules are now generated
+
+All non-OO modules are now automatically generated. This will make it easier
+to keep them 100% consistent as well as making it easier to add new types
+of code sets.
+
+All of the documentation for them is also generated except for the description
+of the code sets. That has been moved into the Locale::Codes::Types document.
+
+=item Fixed a bug where constants were not exported
+
+Some of the constants for some of the newer code sets were not exported properly.
+This was fixed when I started generating the non-OO modules, but was reported
+(after I had already fixed it in development) as RT 119741 .
+
+=back
+
+=head1 VERSION 3.42 (2016-11-30; sbeck)
+
+=over 4
+
+=item B<Added Czech republic aliases back in>
+
+Common Czech republic aliases disappeared from the standards, so I added
+them back in. Rob Emery
+
+=back
+
+=head1 VERSION 3.41 (2016-11-18; sbeck)
+
+NEW CODE(s) (Jiri Bohac noted that they were needed so this was release a
+couple weeks earlier than planned)
+
+=head1 VERSION 3.40 (2016-09-01; sbeck)
+
+NEW CODE(s)
+
+=head1 VERSION 3.39 (2016-05-31; sbeck)
+
+No new codes (for the existing codesets).
+
+=over 4
+
+=item B<Added UN codes back in>
+
+The UN codes have been added back in as their own list of codes.
+Jarkko Hietaniemi
+
+=item B<Added GENC codes>
+
+The GENC codes have been added. These are the new US Government codes
+that replace the FIPS-10 codes. They are based on, but not identical to
+the ISO 3166 codes.
+
+=back
+
+=head1 VERSION 3.38 (2016-03-02; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item B<Tests reworked>
+
+Improved test suite (and made some changes to Codes.pm) based on Devel::Cover.
+Test suite now has 100% coverage.
+
+=back
=head1 VERSION 3.37 (2015-12-01; sbeck)
@@ -307,8 +490,7 @@ Added Language Extension codes (langext) and Language Variation codes
Added language codes from ISO 639-5
-Added language/script codes from the IANA language subtag
-registry
+Added language/script codes from the IANA language subtag registry
=item B<Bug fixes>
@@ -772,7 +954,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Constants.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Constants.pm
index 44e8f6da7f8..dbd4986abfb 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Constants.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Constants.pm
@@ -1,130 +1,205 @@
package Locale::Codes::Constants;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
use warnings;
+require 5.006;
+use Exporter qw(import);
+
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
+
+################################################################################
+our(@CONSTANTS,%ALL_CODESETS);
+
+our(@CONSTANTS_COUNTRY) = qw(
+ LOCALE_CODE_ALPHA_2
+ LOCALE_CODE_ALPHA_3
+ LOCALE_CODE_DOM
+ LOCALE_CODE_GENC_ALPHA_2
+ LOCALE_CODE_GENC_ALPHA_3
+ LOCALE_CODE_GENC_NUMERIC
+ LOCALE_CODE_NUMERIC
+ LOCALE_CODE_UN_ALPHA_3
+ LOCALE_CODE_UN_NUMERIC
+ LOCALE_COUNTRY_ALPHA_2
+ LOCALE_COUNTRY_ALPHA_3
+ LOCALE_COUNTRY_DOM
+ LOCALE_COUNTRY_GENC_ALPHA_2
+ LOCALE_COUNTRY_GENC_ALPHA_3
+ LOCALE_COUNTRY_GENC_NUMERIC
+ LOCALE_COUNTRY_NUMERIC
+ LOCALE_COUNTRY_UN_ALPHA_3
+ LOCALE_COUNTRY_UN_NUMERIC
+);
+push(@CONSTANTS,@CONSTANTS_COUNTRY);
+
+our(@CONSTANTS_CURRENCY) = qw(
+ LOCALE_CURRENCY_ALPHA
+ LOCALE_CURRENCY_NUMERIC
+ LOCALE_CURR_ALPHA
+ LOCALE_CURR_NUMERIC
+);
+push(@CONSTANTS,@CONSTANTS_CURRENCY);
+
+our(@CONSTANTS_LANGEXT) = qw(
+ LOCALE_LANGEXT_ALPHA
+);
+push(@CONSTANTS,@CONSTANTS_LANGEXT);
+
+our(@CONSTANTS_LANGFAM) = qw(
+ LOCALE_LANGFAM_ALPHA
+);
+push(@CONSTANTS,@CONSTANTS_LANGFAM);
+
+our(@CONSTANTS_LANGUAGE) = qw(
+ LOCALE_LANGUAGE_ALPHA_2
+ LOCALE_LANGUAGE_ALPHA_3
+ LOCALE_LANGUAGE_TERM
+ LOCALE_LANG_ALPHA_2
+ LOCALE_LANG_ALPHA_3
+ LOCALE_LANG_TERM
+);
+push(@CONSTANTS,@CONSTANTS_LANGUAGE);
+
+our(@CONSTANTS_LANGVAR) = qw(
+ LOCALE_LANGVAR_ALPHA
+);
+push(@CONSTANTS,@CONSTANTS_LANGVAR);
+
+our(@CONSTANTS_SCRIPT) = qw(
+ LOCALE_SCRIPT_ALPHA
+ LOCALE_SCRIPT_NUMERIC
+);
+push(@CONSTANTS,@CONSTANTS_SCRIPT);
+
+@EXPORT = (@CONSTANTS,
+ qw(
+ %ALL_CODESETS
+ ));
+
+use constant LOCALE_CODE_ALPHA_2 => 'alpha-2';
+use constant LOCALE_CODE_ALPHA_3 => 'alpha-3';
+use constant LOCALE_CODE_DOM => 'dom';
+use constant LOCALE_CODE_GENC_ALPHA_2 => 'genc-alpha-2';
+use constant LOCALE_CODE_GENC_ALPHA_3 => 'genc-alpha-3';
+use constant LOCALE_CODE_GENC_NUMERIC => 'genc-numeric';
+use constant LOCALE_CODE_NUMERIC => 'numeric';
+use constant LOCALE_CODE_UN_ALPHA_3 => 'un-alpha-3';
+use constant LOCALE_CODE_UN_NUMERIC => 'un-numeric';
+use constant LOCALE_COUNTRY_ALPHA_2 => 'alpha-2';
+use constant LOCALE_COUNTRY_ALPHA_3 => 'alpha-3';
+use constant LOCALE_COUNTRY_DOM => 'dom';
+use constant LOCALE_COUNTRY_GENC_ALPHA_2 => 'genc-alpha-2';
+use constant LOCALE_COUNTRY_GENC_ALPHA_3 => 'genc-alpha-3';
+use constant LOCALE_COUNTRY_GENC_NUMERIC => 'genc-numeric';
+use constant LOCALE_COUNTRY_NUMERIC => 'numeric';
+use constant LOCALE_COUNTRY_UN_ALPHA_3 => 'un-alpha-3';
+use constant LOCALE_COUNTRY_UN_NUMERIC => 'un-numeric';
+
+$ALL_CODESETS{'country'} =
+ {
+ 'default' => 'alpha-2',
+ 'module' => 'Country',
+ 'codesets' => {
+ 'alpha-2' => ['lc'],
+ 'alpha-3' => ['lc'],
+ 'dom' => ['lc'],
+ 'genc-alpha-2' => ['uc'],
+ 'genc-alpha-3' => ['uc'],
+ 'genc-numeric' => ['numeric',3],
+ 'numeric' => ['numeric',3],
+ 'un-alpha-3' => ['uc'],
+ 'un-numeric' => ['numeric',3],
+ }
+ };
+
+use constant LOCALE_CURRENCY_ALPHA => 'alpha';
+use constant LOCALE_CURRENCY_NUMERIC => 'num';
+use constant LOCALE_CURR_ALPHA => 'alpha';
+use constant LOCALE_CURR_NUMERIC => 'num';
+
+$ALL_CODESETS{'currency'} =
+ {
+ 'default' => 'alpha',
+ 'module' => 'Currency',
+ 'codesets' => {
+ 'alpha' => ['uc'],
+ 'num' => ['numeric',3],
+ }
+ };
+
+use constant LOCALE_LANGEXT_ALPHA => 'alpha';
+
+$ALL_CODESETS{'langext'} =
+ {
+ 'default' => 'alpha',
+ 'module' => 'LangExt',
+ 'codesets' => {
+ 'alpha' => ['lc'],
+ }
+ };
+
+use constant LOCALE_LANGFAM_ALPHA => 'alpha';
+
+$ALL_CODESETS{'langfam'} =
+ {
+ 'default' => 'alpha',
+ 'module' => 'LangFam',
+ 'codesets' => {
+ 'alpha' => ['lc'],
+ }
+ };
+
+use constant LOCALE_LANGUAGE_ALPHA_2 => 'alpha-2';
+use constant LOCALE_LANGUAGE_ALPHA_3 => 'alpha-3';
+use constant LOCALE_LANGUAGE_TERM => 'term';
+use constant LOCALE_LANG_ALPHA_2 => 'alpha-2';
+use constant LOCALE_LANG_ALPHA_3 => 'alpha-3';
+use constant LOCALE_LANG_TERM => 'term';
+
+$ALL_CODESETS{'language'} =
+ {
+ 'default' => 'alpha-2',
+ 'module' => 'Language',
+ 'codesets' => {
+ 'alpha-2' => ['lc'],
+ 'alpha-3' => ['lc'],
+ 'term' => ['lc'],
+ }
+ };
+
+use constant LOCALE_LANGVAR_ALPHA => 'alpha';
+
+$ALL_CODESETS{'langvar'} =
+ {
+ 'default' => 'alpha',
+ 'module' => 'LangVar',
+ 'codesets' => {
+ 'alpha' => ['lc'],
+ }
+ };
+
+use constant LOCALE_SCRIPT_ALPHA => 'alpha';
+use constant LOCALE_SCRIPT_NUMERIC => 'num';
+
+$ALL_CODESETS{'script'} =
+ {
+ 'default' => 'alpha',
+ 'module' => 'Script',
+ 'codesets' => {
+ 'alpha' => ['ucfirst'],
+ 'num' => ['numeric',3],
+ }
+ };
-require Exporter;
-
-#-----------------------------------------------------------------------
-# Public Global Variables
-#-----------------------------------------------------------------------
-
-our($VERSION,@ISA,@EXPORT);
-our(%ALL_CODESETS);
-
-$VERSION='3.37';
-@ISA = qw(Exporter);
-@EXPORT = qw(LOCALE_CODE_ALPHA_2
- LOCALE_CODE_ALPHA_3
- LOCALE_CODE_NUMERIC
- LOCALE_CODE_DOM
-
- LOCALE_LANG_ALPHA_2
- LOCALE_LANG_ALPHA_3
- LOCALE_LANG_TERM
-
- LOCALE_CURR_ALPHA
- LOCALE_CURR_NUMERIC
-
- LOCALE_SCRIPT_ALPHA
- LOCALE_SCRIPT_NUMERIC
-
- LOCALE_LANGEXT_ALPHA
-
- LOCALE_LANGVAR_ALPHA
-
- LOCALE_LANGFAM_ALPHA
-
- %ALL_CODESETS
- );
-
-#-----------------------------------------------------------------------
-# Constants
-#-----------------------------------------------------------------------
-
-use constant LOCALE_CODE_ALPHA_2 => 'alpha-2';
-use constant LOCALE_CODE_ALPHA_3 => 'alpha-3';
-use constant LOCALE_CODE_NUMERIC => 'numeric';
-use constant LOCALE_CODE_DOM => 'dom';
-
-$ALL_CODESETS{'country'} = {
- 'default' => 'alpha-2',
- 'codesets' => { 'alpha-2' => ['lc'],
- 'alpha-3' => ['lc'],
- 'numeric' => ['numeric',3],
- 'dom' => ['lc'],
- }
- };
-
-use constant LOCALE_LANG_ALPHA_2 => 'alpha-2';
-use constant LOCALE_LANG_ALPHA_3 => 'alpha-3';
-use constant LOCALE_LANG_TERM => 'term';
-
-$ALL_CODESETS{'language'} = {
- 'default' => 'alpha-2',
- 'codesets' => { 'alpha-2' => ['lc'],
- 'alpha-3' => ['lc'],
- 'term' => ['lc'],
- }
- };
-
-use constant LOCALE_CURR_ALPHA => 'alpha';
-use constant LOCALE_CURR_NUMERIC => 'num';
-
-$ALL_CODESETS{'currency'} = {
- 'default' => 'alpha',
- 'codesets' => { 'alpha' => ['uc'],
- 'num' => ['numeric',3],
- }
- };
-
-use constant LOCALE_SCRIPT_ALPHA => 'alpha';
-use constant LOCALE_SCRIPT_NUMERIC => 'num';
-
-$ALL_CODESETS{'script'} = {
- 'default' => 'alpha',
- 'codesets' => { 'alpha' => ['ucfirst'],
- 'num' => ['numeric',3],
- }
- };
-
-use constant LOCALE_LANGEXT_ALPHA => 'alpha';
-
-$ALL_CODESETS{'langext'} = {
- 'default' => 'alpha',
- 'codesets' => { 'alpha' => ['lc'],
- }
- };
-
-use constant LOCALE_LANGVAR_ALPHA => 'alpha';
-
-$ALL_CODESETS{'langvar'} = {
- 'default' => 'alpha',
- 'codesets' => { 'alpha' => ['lc'],
- }
- };
-
-use constant LOCALE_LANGFAM_ALPHA => 'alpha';
-
-$ALL_CODESETS{'langfam'} = {
- 'default' => 'alpha',
- 'codesets' => { 'alpha' => ['lc'],
- }
- };
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pm
index a182431dc0a..1a87d3b92c4 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pm
@@ -1,100 +1,94 @@
package Locale::Codes::Country;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
-require 5.006;
use warnings;
+require 5.006;
+use Exporter qw(import);
-require Exporter;
-use Carp;
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
+
+################################################################################
+use if $] >= 5.027007, 'deprecate';
use Locale::Codes;
use Locale::Codes::Constants;
-use Locale::Codes::Country_Codes;
-use Locale::Codes::Country_Retired;
-
-#=======================================================================
-# Public Global Variables
-#=======================================================================
-our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-
-$VERSION='3.37';
-@ISA = qw(Exporter);
-@EXPORT = qw(code2country
+@EXPORT = qw(
+ code2country
country2code
all_country_codes
all_country_names
country_code2code
- LOCALE_CODE_ALPHA_2
- LOCALE_CODE_ALPHA_3
- LOCALE_CODE_NUMERIC
- LOCALE_CODE_DOM
);
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_COUNTRY);
+
+our $obj = new Locale::Codes('country');
+$obj->show_errors(0);
+
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
sub code2country {
- return Locale::Codes::_code2name('country',@_);
+ return $obj->code2name(@_);
}
sub country2code {
- return Locale::Codes::_name2code('country',@_);
+ return $obj->name2code(@_);
}
sub country_code2code {
- return Locale::Codes::_code2code('country',@_);
+ return $obj->code2code(@_);
}
sub all_country_codes {
- return Locale::Codes::_all_codes('country',@_);
+ return $obj->all_codes(@_);
}
sub all_country_names {
- return Locale::Codes::_all_names('country',@_);
+ return $obj->all_names(@_);
}
sub rename_country {
- return Locale::Codes::_rename('country',@_);
+ return $obj->rename_code(@_);
}
sub add_country {
- return Locale::Codes::_add_code('country',@_);
+ return $obj->add_code(@_);
}
sub delete_country {
- return Locale::Codes::_delete_code('country',@_);
+ return $obj->delete_code(@_);
}
sub add_country_alias {
- return Locale::Codes::_add_alias('country',@_);
+ return $obj->add_alias(@_);
}
sub delete_country_alias {
- return Locale::Codes::_delete_alias('country',@_);
+ return $obj->delete_alias(@_);
}
sub rename_country_code {
- return Locale::Codes::_rename_code('country',@_);
+ return $obj->replace_code(@_);
}
sub add_country_code_alias {
- return Locale::Codes::_add_code_alias('country',@_);
+ return $obj->add_code_alias(@_);
}
sub delete_country_code_alias {
- return Locale::Codes::_delete_code_alias('country',@_);
+ return $obj->delete_code_alias(@_);
}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pod
index f827732ca7d..ab845a832e7 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country.pod
@@ -2,110 +2,107 @@
=head1 NAME
-Locale::Codes::Country - standard codes for country identification
+Locale::Codes::Country - module for dealing with country code sets
=head1 SYNOPSIS
use Locale::Codes::Country;
- $country = code2country('jp' [,CODESET]); # $country gets 'Japan'
- $code = country2code('Norway' [,CODESET]); # $code gets 'no'
+ $name = code2country(CODE);
+ $code = country2code(NAME);
- @codes = all_country_codes( [CODESET]);
+ @codes = all_country_codes();
@names = all_country_names();
- # semi-private routines
- Locale::Codes::Country::rename_country('gb' => 'Great Britain');
-
=head1 DESCRIPTION
-This module provides access to several code sets
-that can be used for identifying countries, such as those defined in
-ISO 3166-1.
-
-Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO
-3166-1 two-letter codes will be used.
+This module provides access to country code sets.
-=head1 SUPPORTED CODE SETS
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
-There are several different code sets you can use for identifying
-countries. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+Most of the routines take an optional additional argument which
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
-For example, the two are equivalent:
+=head1 ROUTINES
- $country = code2country('jp','alpha-2');
- $country = code2country('jp',LOCALE_CODE_ALPHA_2);
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: country
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-The codesets currently supported are:
+The following functions are exported automatically:
=over 4
-=item B<alpha-2, LOCALE_CODE_ALPHA_2>
+=item B<code2country(CODE [,CODESET] [,'retired'])>
-This is the set of two-letter (lowercase) codes from ISO 3166-1, such
-as 'tv' for Tuvalu.
+See B<code2name> in L<Locale::Codes>
-This is the default code set.
+=item B<country2code(NAME [,CODESET] [,'retired'])>
-=item B<alpha-3, LOCALE_CODE_ALPHA_3>
+See B<name2code> in L<Locale::Codes>
-This is the set of three-letter (lowercase) codes from ISO 3166-1,
-such as 'brb' for Barbados. These codes are actually defined and
-maintained by the U.N. Statistics division.
+=item B<country_code2code(CODE ,CODESET ,CODESET2)>
-=item B<numeric, LOCALE_CODE_NUMERIC>
+See B<code2code> in L<Locale::Codes>
-This is the set of three-digit numeric codes from ISO 3166-1, such as
-064 for Bhutan. These codes are actually defined and maintained by the
-U.N. Statistics division.
+=item B<all_country_codes([CODESET] [,'retired'])>
-If a 2-digit code is entered, it is converted to 3 digits by prepending
-a 0.
+See B<all_codes> in L<Locale::Codes>
-=item B<dom, LOCALE_CODE_DOM>
+=item B<all_country_names([CODESET] [,'retired'])>
-The IANA is responsible for delegating management of the top level country
-domains. The country domains are the two-letter (lowercase) codes from ISO 3166
-with a few other additions.
+See B<all_names> in L<Locale::Codes>
=back
-NOTE: As of version 3.27, the FIPS code set is no longer supported. See the
-Locale::Codes::Changes document for details.
-
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2country(CODE [,CODESET] [,'retired'])>
-
-=item B<country2code(NAME [,CODESET] [,'retired'])>
+=item B<Locale::Codes::Country::show_errors(FLAG)>
-=item B<country_code2code(CODE ,CODESET ,CODESET2)>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<all_country_codes([CODESET] [,'retired'])>
-
-=item B<all_country_names([CODESET] [,'retired'])>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
=item B<Locale::Codes::Country::rename_country(CODE ,NEW_NAME [,CODESET])>
+See B<rename_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Country::add_country(CODE ,NAME [,CODESET])>
+See B<add_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Country::delete_country(CODE [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Country::add_country_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Country::delete_country_alias(NAME)>
+See B<delete_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Country::rename_country_code(CODE ,NEW_CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Country::add_country_code_alias(CODE ,NEW_CODE [,CODESET])>
+See B<add_code_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Country::delete_country_code_alias(CODE [,CODESET])>
-These routines are all documented in the L<Locale::Codes::API> man page.
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -117,51 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<Locale::SubCountry>
-
-ISO codes for country sub-divisions (states, counties, provinces,
-etc), as defined in ISO 3166-2. This module is not part of the
-Locale-Codes distribution, but is available from CPAN in
-CPAN/modules/by-module/Locale/
-
-=item L<http://www.iso.org/iso/home/standards/country_codes.htm>
-
-Official home page for the ISO 3166 maintenance agency.
-
-=item L<http://www.iso.org/iso/home/standards/country_codes/iso-3166-1_decoding_table.htm>
-
-The source of ISO 3166-1 two-letter codes used by this
-module.
-
-=item L<http://www.iana.org/domains/root/db/>
-
-Official source of the top-level domain names.
-
-=item L<http://unstats.un.org/unsd/methods/m49/m49alpha.htm>
-
-The source of the official ISO 3166-1 three-letter codes and
-three-digit codes.
-
-For some reason, this table is incomplete! Several countries are
-missing from it, and I cannot find them anywhere on the UN site. I
-no longer use this as a source of data.
-
-=item L<https://www.cia.gov/library/publications/the-world-factbook/appendix/print_appendix-d.html>
-
-The World Factbook maintained by the CIA is a potential source of
-the data. Unfortunately, it adds/preserves non-standard codes, so it is no
-longer used as a source of data.
-
-=item L<http://www.statoids.com/wab.html>
-
-Another unofficial source of data. Currently, it is not used to get
-data, but the notes and explanatory material were very useful for
-understanding discrepancies between the sources.
-
=back
=head1 AUTHOR
@@ -172,9 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Codes.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Codes.pm
index 11262e8548a..8eaf4114a97 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Codes.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::Country_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:41:05 EST 2015
+# Generated on: Fri Feb 23 12:17:40 EST 2018
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
-$Locale::Codes::Data{'country'}{'id'} = '0250';
+$Locale::Codes::Data{'country'}{'id'} = '0280';
$Locale::Codes::Data{'country'}{'id2names'} = {
q(0001) => [
@@ -105,6 +105,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
],
q(0028) => [
q(Bonaire, Sint Eustatius and Saba),
+ q(Bonaire, Sint Eustatius, and Saba),
],
q(0029) => [
q(Bosnia and Herzegovina),
@@ -238,6 +239,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Cyprus),
],
q(0060) => [
+ q(Czechia),
q(Czech Republic),
q(The Czech Republic),
q(Czech Republic, The),
@@ -456,6 +458,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(The Democratic People's Republic of Korea),
q(Democratic People's Republic of Korea),
q(North Korea),
+ q(Korea, North),
],
q(0119) => [
q(Korea, The Republic of),
@@ -465,6 +468,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(The Republic of Korea),
q(Republic of Korea),
q(South Korea),
+ q(Korea, South),
],
q(0120) => [
q(Kuwait),
@@ -477,6 +481,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(The Lao People's Democratic Republic),
q(Lao People's Democratic Republic, The),
q(Lao People's Democratic Republic (The)),
+ q(Laos),
],
q(0123) => [
q(Latvia),
@@ -573,6 +578,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Moldova (Republic of)),
q(The Republic of Moldova),
q(Republic of Moldova),
+ q(Moldova),
],
q(0147) => [
q(Monaco),
@@ -706,6 +712,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(The Russian Federation),
q(Russian Federation, The),
q(Russian Federation (The)),
+ q(Russia),
],
q(0184) => [
q(Rwanda),
@@ -717,6 +724,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(0186) => [
q(Saint Helena, Ascension and Tristan da Cunha),
q(Saint Helena),
+ q(Saint Helena, Ascension, and Tristan Da Cunha),
],
q(0187) => [
q(Saint Kitts and Nevis),
@@ -765,6 +773,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
],
q(0201) => [
q(Sint Maarten (Dutch part)),
+ q(Sint Maarten),
],
q(0202) => [
q(Slovakia),
@@ -787,6 +796,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(0207) => [
q(South Georgia and the South Sandwich Islands),
q(South Georgia and the Islands),
+ q(South Georgia and South Sandwich Islands),
],
q(0208) => [
q(South Sudan),
@@ -838,6 +848,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Tanzania, United Republic of),
q(Tanzania (United Republic of)),
q(United Republic of Tanzania),
+ q(Tanzania),
],
q(0221) => [
q(Thailand),
@@ -986,6 +997,96 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Republic of Zimbabwe, The),
q(Republic of Zimbabwe (The)),
],
+ q(0250) => [
+ q(Sark),
+ ],
+ q(0251) => [
+ q(Akrotiri),
+ ],
+ q(0252) => [
+ q(Ashmore and Cartier Islands),
+ ],
+ q(0253) => [
+ q(Baker Island),
+ ],
+ q(0254) => [
+ q(Bassas Da India),
+ ],
+ q(0255) => [
+ q(Clipperton Island),
+ ],
+ q(0256) => [
+ q(Coral Sea Islands),
+ ],
+ q(0257) => [
+ q(Dhekelia),
+ ],
+ q(0258) => [
+ q(Diego Garcia),
+ ],
+ q(0259) => [
+ q(Europa Island),
+ ],
+ q(0260) => [
+ q(Gaza Strip),
+ ],
+ q(0261) => [
+ q(Glorioso Islands),
+ ],
+ q(0262) => [
+ q(Guantanamo Bay Naval Base),
+ ],
+ q(0263) => [
+ q(Howland Island),
+ ],
+ q(0264) => [
+ q(Jan Mayen),
+ ],
+ q(0265) => [
+ q(Jarvis Island),
+ ],
+ q(0266) => [
+ q(Johnston Atoll),
+ ],
+ q(0267) => [
+ q(Juan de Nova Island),
+ ],
+ q(0268) => [
+ q(Kingman Reef),
+ ],
+ q(0269) => [
+ q(Kosovo),
+ ],
+ q(0270) => [
+ q(Midway Islands),
+ ],
+ q(0271) => [
+ q(Navassa Island),
+ ],
+ q(0272) => [
+ q(Palmyra Atoll),
+ ],
+ q(0273) => [
+ q(Paracel Islands),
+ ],
+ q(0274) => [
+ q(Spratly Islands),
+ ],
+ q(0275) => [
+ q(Svalbard),
+ ],
+ q(0276) => [
+ q(Tromelin Island),
+ ],
+ q(0277) => [
+ q(Unknown),
+ ],
+ q(0278) => [
+ q(Wake Island),
+ ],
+ q(0279) => [
+ q(West Bank),
+ ],
};
$Locale::Codes::Data{'country'}{'alias2id'} = {
@@ -993,6 +1094,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0001),
q(0),
],
+ q(akrotiri) => [
+ q(0251),
+ q(0),
+ ],
q(aland islands) => [
q(0002),
q(0),
@@ -1041,6 +1146,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0013),
q(0),
],
+ q(ashmore and cartier islands) => [
+ q(0252),
+ q(0),
+ ],
q(australia) => [
q(0014),
q(0),
@@ -1069,6 +1178,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0018),
q(0),
],
+ q(baker island) => [
+ q(0253),
+ q(0),
+ ],
q(bangladesh) => [
q(0019),
q(0),
@@ -1077,6 +1190,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0020),
q(0),
],
+ q(bassas da india) => [
+ q(0254),
+ q(0),
+ ],
q(belarus) => [
q(0021),
q(0),
@@ -1117,6 +1234,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0028),
q(0),
],
+ q(bonaire, sint eustatius, and saba) => [
+ q(0028),
+ q(1),
+ ],
q(bosnia and herzegovina) => [
q(0029),
q(0),
@@ -1237,6 +1358,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0047),
q(0),
],
+ q(clipperton island) => [
+ q(0255),
+ q(0),
+ ],
q(cocos (keeling) islands) => [
q(0048),
q(0),
@@ -1329,6 +1454,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0053),
q(2),
],
+ q(coral sea islands) => [
+ q(0256),
+ q(0),
+ ],
q(costa rica) => [
q(0054),
q(0),
@@ -1355,15 +1484,19 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(czech republic) => [
q(0060),
- q(0),
+ q(1),
],
q(czech republic (the)) => [
q(0060),
- q(3),
+ q(4),
],
q(czech republic, the) => [
q(0060),
- q(2),
+ q(3),
+ ],
+ q(czechia) => [
+ q(0060),
+ q(0),
],
q(democratic people's republic of korea) => [
q(0118),
@@ -1381,6 +1514,14 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0061),
q(0),
],
+ q(dhekelia) => [
+ q(0257),
+ q(0),
+ ],
+ q(diego garcia) => [
+ q(0258),
+ q(0),
+ ],
q(djibouti) => [
q(0062),
q(0),
@@ -1433,6 +1574,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0071),
q(0),
],
+ q(europa island) => [
+ q(0259),
+ q(0),
+ ],
q(faeroe islands) => [
q(0073),
q(4),
@@ -1521,6 +1666,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0081),
q(2),
],
+ q(gaza strip) => [
+ q(0260),
+ q(0),
+ ],
q(georgia) => [
q(0082),
q(0),
@@ -1537,6 +1686,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0085),
q(0),
],
+ q(glorioso islands) => [
+ q(0261),
+ q(0),
+ ],
q(great britain) => [
q(0235),
q(4),
@@ -1561,6 +1714,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0090),
q(0),
],
+ q(guantanamo bay naval base) => [
+ q(0262),
+ q(0),
+ ],
q(guatemala) => [
q(0091),
q(0),
@@ -1629,6 +1786,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0100),
q(3),
],
+ q(howland island) => [
+ q(0263),
+ q(0),
+ ],
q(hungary) => [
q(0101),
q(0),
@@ -1693,18 +1854,34 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0111),
q(0),
],
+ q(jan mayen) => [
+ q(0264),
+ q(0),
+ ],
q(japan) => [
q(0112),
q(0),
],
+ q(jarvis island) => [
+ q(0265),
+ q(0),
+ ],
q(jersey) => [
q(0113),
q(0),
],
+ q(johnston atoll) => [
+ q(0266),
+ q(0),
+ ],
q(jordan) => [
q(0114),
q(0),
],
+ q(juan de nova island) => [
+ q(0267),
+ q(0),
+ ],
q(kazakhstan) => [
q(0115),
q(0),
@@ -1721,6 +1898,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0116),
q(0),
],
+ q(kingman reef) => [
+ q(0268),
+ q(0),
+ ],
q(kiribati) => [
q(0117),
q(0),
@@ -1745,10 +1926,18 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0118),
q(2),
],
+ q(korea, north) => [
+ q(0118),
+ q(7),
+ ],
q(korea, republic of) => [
q(0119),
q(2),
],
+ q(korea, south) => [
+ q(0119),
+ q(7),
+ ],
q(korea, the democratic people's republic of) => [
q(0118),
q(0),
@@ -1757,6 +1946,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0119),
q(0),
],
+ q(kosovo) => [
+ q(0269),
+ q(0),
+ ],
q(kuwait) => [
q(0120),
q(0),
@@ -1777,6 +1970,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0122),
q(2),
],
+ q(laos) => [
+ q(0122),
+ q(4),
+ ],
q(latvia) => [
q(0123),
q(0),
@@ -1921,6 +2118,14 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0145),
q(4),
],
+ q(midway islands) => [
+ q(0270),
+ q(0),
+ ],
+ q(moldova) => [
+ q(0146),
+ q(6),
+ ],
q(moldova (republic of)) => [
q(0146),
q(3),
@@ -1973,6 +2178,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0155),
q(0),
],
+ q(navassa island) => [
+ q(0271),
+ q(0),
+ ],
q(nepal) => [
q(0156),
q(0),
@@ -2065,6 +2274,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0170),
q(0),
],
+ q(palmyra atoll) => [
+ q(0272),
+ q(0),
+ ],
q(panama) => [
q(0171),
q(0),
@@ -2073,6 +2286,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0172),
q(0),
],
+ q(paracel islands) => [
+ q(0273),
+ q(0),
+ ],
q(paraguay) => [
q(0173),
q(0),
@@ -2173,6 +2390,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0182),
q(0),
],
+ q(russia) => [
+ q(0183),
+ q(4),
+ ],
q(russian federation) => [
q(0183),
q(0),
@@ -2201,6 +2422,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0186),
q(0),
],
+ q(saint helena, ascension, and tristan da cunha) => [
+ q(0186),
+ q(2),
+ ],
q(saint kitts and nevis) => [
q(0187),
q(0),
@@ -2249,6 +2474,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0194),
q(0),
],
+ q(sark) => [
+ q(0250),
+ q(0),
+ ],
q(saudi arabia) => [
q(0195),
q(0),
@@ -2273,6 +2502,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0200),
q(0),
],
+ q(sint maarten) => [
+ q(0201),
+ q(1),
+ ],
q(sint maarten (dutch part)) => [
q(0201),
q(0),
@@ -2305,6 +2538,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0206),
q(0),
],
+ q(south georgia and south sandwich islands) => [
+ q(0207),
+ q(2),
+ ],
q(south georgia and the islands) => [
q(0207),
q(1),
@@ -2325,6 +2562,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0209),
q(0),
],
+ q(spratly islands) => [
+ q(0274),
+ q(0),
+ ],
q(sri lanka) => [
q(0210),
q(0),
@@ -2349,6 +2590,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0212),
q(0),
],
+ q(svalbard) => [
+ q(0275),
+ q(0),
+ ],
q(svalbard and jan mayen) => [
q(0213),
q(0),
@@ -2401,6 +2646,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0219),
q(0),
],
+ q(tanzania) => [
+ q(0220),
+ q(3),
+ ],
q(tanzania (united republic of)) => [
q(0220),
q(1),
@@ -2455,7 +2704,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(the czech republic) => [
q(0060),
- q(1),
+ q(2),
],
q(the democratic people's republic of korea) => [
q(0118),
@@ -2645,6 +2894,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0226),
q(0),
],
+ q(tromelin island) => [
+ q(0276),
+ q(0),
+ ],
q(tunisia) => [
q(0227),
q(0),
@@ -2765,6 +3018,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0237),
q(6),
],
+ q(unknown) => [
+ q(0277),
+ q(0),
+ ],
q(uruguay) => [
q(0238),
q(0),
@@ -2841,6 +3098,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0244),
q(3),
],
+ q(wake island) => [
+ q(0278),
+ q(0),
+ ],
q(wallis and futuna) => [
q(0245),
q(0),
@@ -2849,6 +3110,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0245),
q(1),
],
+ q(west bank) => [
+ q(0279),
+ q(0),
+ ],
q(western sahara) => [
q(0246),
q(0),
@@ -5874,6 +6139,3300 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
},
+ q(genc-alpha-2) => {
+ q(A1) => [
+ q(0277),
+ q(0),
+ ],
+ q(A2) => [
+ q(0262),
+ q(0),
+ ],
+ q(AD) => [
+ q(0006),
+ q(0),
+ ],
+ q(AE) => [
+ q(0234),
+ q(0),
+ ],
+ q(AF) => [
+ q(0001),
+ q(0),
+ ],
+ q(AG) => [
+ q(0010),
+ q(0),
+ ],
+ q(AI) => [
+ q(0008),
+ q(0),
+ ],
+ q(AL) => [
+ q(0003),
+ q(0),
+ ],
+ q(AM) => [
+ q(0012),
+ q(0),
+ ],
+ q(AO) => [
+ q(0007),
+ q(0),
+ ],
+ q(AQ) => [
+ q(0009),
+ q(0),
+ ],
+ q(AR) => [
+ q(0011),
+ q(0),
+ ],
+ q(AS) => [
+ q(0005),
+ q(0),
+ ],
+ q(AT) => [
+ q(0015),
+ q(0),
+ ],
+ q(AU) => [
+ q(0014),
+ q(0),
+ ],
+ q(AW) => [
+ q(0013),
+ q(0),
+ ],
+ q(AZ) => [
+ q(0016),
+ q(0),
+ ],
+ q(BA) => [
+ q(0029),
+ q(0),
+ ],
+ q(BB) => [
+ q(0020),
+ q(0),
+ ],
+ q(BD) => [
+ q(0019),
+ q(0),
+ ],
+ q(BE) => [
+ q(0022),
+ q(0),
+ ],
+ q(BF) => [
+ q(0036),
+ q(0),
+ ],
+ q(BG) => [
+ q(0035),
+ q(0),
+ ],
+ q(BH) => [
+ q(0018),
+ q(0),
+ ],
+ q(BI) => [
+ q(0037),
+ q(0),
+ ],
+ q(BJ) => [
+ q(0024),
+ q(0),
+ ],
+ q(BL) => [
+ q(0185),
+ q(0),
+ ],
+ q(BM) => [
+ q(0025),
+ q(0),
+ ],
+ q(BN) => [
+ q(0034),
+ q(0),
+ ],
+ q(BO) => [
+ q(0027),
+ q(0),
+ ],
+ q(BQ) => [
+ q(0028),
+ q(1),
+ ],
+ q(BR) => [
+ q(0032),
+ q(0),
+ ],
+ q(BS) => [
+ q(0017),
+ q(0),
+ ],
+ q(BT) => [
+ q(0026),
+ q(0),
+ ],
+ q(BV) => [
+ q(0031),
+ q(0),
+ ],
+ q(BW) => [
+ q(0030),
+ q(0),
+ ],
+ q(BY) => [
+ q(0021),
+ q(0),
+ ],
+ q(BZ) => [
+ q(0023),
+ q(0),
+ ],
+ q(CA) => [
+ q(0041),
+ q(0),
+ ],
+ q(CC) => [
+ q(0048),
+ q(0),
+ ],
+ q(CD) => [
+ q(0051),
+ q(0),
+ ],
+ q(CF) => [
+ q(0043),
+ q(0),
+ ],
+ q(CG) => [
+ q(0052),
+ q(0),
+ ],
+ q(CH) => [
+ q(0216),
+ q(0),
+ ],
+ q(CI) => [
+ q(0055),
+ q(0),
+ ],
+ q(CK) => [
+ q(0053),
+ q(0),
+ ],
+ q(CL) => [
+ q(0045),
+ q(0),
+ ],
+ q(CM) => [
+ q(0040),
+ q(0),
+ ],
+ q(CN) => [
+ q(0046),
+ q(0),
+ ],
+ q(CO) => [
+ q(0049),
+ q(0),
+ ],
+ q(CP) => [
+ q(0255),
+ q(0),
+ ],
+ q(CR) => [
+ q(0054),
+ q(0),
+ ],
+ q(CU) => [
+ q(0057),
+ q(0),
+ ],
+ q(CV) => [
+ q(0038),
+ q(0),
+ ],
+ q(CW) => [
+ q(0058),
+ q(0),
+ ],
+ q(CX) => [
+ q(0047),
+ q(0),
+ ],
+ q(CY) => [
+ q(0059),
+ q(0),
+ ],
+ q(CZ) => [
+ q(0060),
+ q(0),
+ ],
+ q(DE) => [
+ q(0083),
+ q(0),
+ ],
+ q(DG) => [
+ q(0258),
+ q(0),
+ ],
+ q(DJ) => [
+ q(0062),
+ q(0),
+ ],
+ q(DK) => [
+ q(0061),
+ q(0),
+ ],
+ q(DM) => [
+ q(0063),
+ q(0),
+ ],
+ q(DO) => [
+ q(0064),
+ q(0),
+ ],
+ q(DZ) => [
+ q(0004),
+ q(0),
+ ],
+ q(EC) => [
+ q(0065),
+ q(0),
+ ],
+ q(EE) => [
+ q(0070),
+ q(0),
+ ],
+ q(EG) => [
+ q(0066),
+ q(0),
+ ],
+ q(EH) => [
+ q(0246),
+ q(0),
+ ],
+ q(ER) => [
+ q(0069),
+ q(0),
+ ],
+ q(ES) => [
+ q(0209),
+ q(0),
+ ],
+ q(ET) => [
+ q(0071),
+ q(0),
+ ],
+ q(FI) => [
+ q(0075),
+ q(0),
+ ],
+ q(FJ) => [
+ q(0074),
+ q(0),
+ ],
+ q(FK) => [
+ q(0072),
+ q(0),
+ ],
+ q(FM) => [
+ q(0145),
+ q(0),
+ ],
+ q(FO) => [
+ q(0073),
+ q(0),
+ ],
+ q(FR) => [
+ q(0076),
+ q(0),
+ ],
+ q(GA) => [
+ q(0080),
+ q(0),
+ ],
+ q(GB) => [
+ q(0235),
+ q(0),
+ ],
+ q(GD) => [
+ q(0088),
+ q(0),
+ ],
+ q(GE) => [
+ q(0082),
+ q(0),
+ ],
+ q(GF) => [
+ q(0077),
+ q(0),
+ ],
+ q(GG) => [
+ q(0092),
+ q(0),
+ ],
+ q(GH) => [
+ q(0084),
+ q(0),
+ ],
+ q(GI) => [
+ q(0085),
+ q(0),
+ ],
+ q(GL) => [
+ q(0087),
+ q(0),
+ ],
+ q(GM) => [
+ q(0081),
+ q(0),
+ ],
+ q(GN) => [
+ q(0093),
+ q(0),
+ ],
+ q(GP) => [
+ q(0089),
+ q(0),
+ ],
+ q(GQ) => [
+ q(0068),
+ q(0),
+ ],
+ q(GR) => [
+ q(0086),
+ q(0),
+ ],
+ q(GS) => [
+ q(0207),
+ q(2),
+ ],
+ q(GT) => [
+ q(0091),
+ q(0),
+ ],
+ q(GU) => [
+ q(0090),
+ q(0),
+ ],
+ q(GW) => [
+ q(0094),
+ q(0),
+ ],
+ q(GY) => [
+ q(0095),
+ q(0),
+ ],
+ q(HK) => [
+ q(0100),
+ q(0),
+ ],
+ q(HM) => [
+ q(0097),
+ q(0),
+ ],
+ q(HN) => [
+ q(0099),
+ q(0),
+ ],
+ q(HR) => [
+ q(0056),
+ q(0),
+ ],
+ q(HT) => [
+ q(0096),
+ q(0),
+ ],
+ q(HU) => [
+ q(0101),
+ q(0),
+ ],
+ q(ID) => [
+ q(0104),
+ q(0),
+ ],
+ q(IE) => [
+ q(0107),
+ q(0),
+ ],
+ q(IL) => [
+ q(0109),
+ q(0),
+ ],
+ q(IM) => [
+ q(0108),
+ q(0),
+ ],
+ q(IN) => [
+ q(0103),
+ q(0),
+ ],
+ q(IO) => [
+ q(0033),
+ q(0),
+ ],
+ q(IQ) => [
+ q(0106),
+ q(0),
+ ],
+ q(IR) => [
+ q(0105),
+ q(0),
+ ],
+ q(IS) => [
+ q(0102),
+ q(0),
+ ],
+ q(IT) => [
+ q(0110),
+ q(0),
+ ],
+ q(JE) => [
+ q(0113),
+ q(0),
+ ],
+ q(JM) => [
+ q(0111),
+ q(0),
+ ],
+ q(JO) => [
+ q(0114),
+ q(0),
+ ],
+ q(JP) => [
+ q(0112),
+ q(0),
+ ],
+ q(KE) => [
+ q(0116),
+ q(0),
+ ],
+ q(KG) => [
+ q(0121),
+ q(0),
+ ],
+ q(KH) => [
+ q(0039),
+ q(0),
+ ],
+ q(KI) => [
+ q(0117),
+ q(0),
+ ],
+ q(KM) => [
+ q(0050),
+ q(0),
+ ],
+ q(KN) => [
+ q(0187),
+ q(0),
+ ],
+ q(KP) => [
+ q(0118),
+ q(7),
+ ],
+ q(KR) => [
+ q(0119),
+ q(7),
+ ],
+ q(KW) => [
+ q(0120),
+ q(0),
+ ],
+ q(KY) => [
+ q(0042),
+ q(0),
+ ],
+ q(KZ) => [
+ q(0115),
+ q(0),
+ ],
+ q(LA) => [
+ q(0122),
+ q(4),
+ ],
+ q(LB) => [
+ q(0124),
+ q(0),
+ ],
+ q(LC) => [
+ q(0188),
+ q(0),
+ ],
+ q(LI) => [
+ q(0128),
+ q(0),
+ ],
+ q(LK) => [
+ q(0210),
+ q(0),
+ ],
+ q(LR) => [
+ q(0126),
+ q(0),
+ ],
+ q(LS) => [
+ q(0125),
+ q(0),
+ ],
+ q(LT) => [
+ q(0129),
+ q(0),
+ ],
+ q(LU) => [
+ q(0130),
+ q(0),
+ ],
+ q(LV) => [
+ q(0123),
+ q(0),
+ ],
+ q(LY) => [
+ q(0127),
+ q(0),
+ ],
+ q(MA) => [
+ q(0151),
+ q(0),
+ ],
+ q(MC) => [
+ q(0147),
+ q(0),
+ ],
+ q(MD) => [
+ q(0146),
+ q(6),
+ ],
+ q(ME) => [
+ q(0149),
+ q(0),
+ ],
+ q(MF) => [
+ q(0189),
+ q(0),
+ ],
+ q(MG) => [
+ q(0133),
+ q(0),
+ ],
+ q(MH) => [
+ q(0139),
+ q(0),
+ ],
+ q(MK) => [
+ q(0132),
+ q(0),
+ ],
+ q(ML) => [
+ q(0137),
+ q(0),
+ ],
+ q(MM) => [
+ q(0153),
+ q(0),
+ ],
+ q(MN) => [
+ q(0148),
+ q(0),
+ ],
+ q(MO) => [
+ q(0131),
+ q(0),
+ ],
+ q(MP) => [
+ q(0165),
+ q(0),
+ ],
+ q(MQ) => [
+ q(0140),
+ q(0),
+ ],
+ q(MR) => [
+ q(0141),
+ q(0),
+ ],
+ q(MS) => [
+ q(0150),
+ q(0),
+ ],
+ q(MT) => [
+ q(0138),
+ q(0),
+ ],
+ q(MU) => [
+ q(0142),
+ q(0),
+ ],
+ q(MV) => [
+ q(0136),
+ q(0),
+ ],
+ q(MW) => [
+ q(0134),
+ q(0),
+ ],
+ q(MX) => [
+ q(0144),
+ q(0),
+ ],
+ q(MY) => [
+ q(0135),
+ q(0),
+ ],
+ q(MZ) => [
+ q(0152),
+ q(0),
+ ],
+ q(NA) => [
+ q(0154),
+ q(0),
+ ],
+ q(NC) => [
+ q(0158),
+ q(0),
+ ],
+ q(NE) => [
+ q(0161),
+ q(0),
+ ],
+ q(NF) => [
+ q(0164),
+ q(0),
+ ],
+ q(NG) => [
+ q(0162),
+ q(0),
+ ],
+ q(NI) => [
+ q(0160),
+ q(0),
+ ],
+ q(NL) => [
+ q(0157),
+ q(0),
+ ],
+ q(NO) => [
+ q(0166),
+ q(0),
+ ],
+ q(NP) => [
+ q(0156),
+ q(0),
+ ],
+ q(NR) => [
+ q(0155),
+ q(0),
+ ],
+ q(NU) => [
+ q(0163),
+ q(0),
+ ],
+ q(NZ) => [
+ q(0159),
+ q(0),
+ ],
+ q(OM) => [
+ q(0167),
+ q(0),
+ ],
+ q(PA) => [
+ q(0171),
+ q(0),
+ ],
+ q(PE) => [
+ q(0174),
+ q(0),
+ ],
+ q(PF) => [
+ q(0078),
+ q(0),
+ ],
+ q(PG) => [
+ q(0172),
+ q(0),
+ ],
+ q(PH) => [
+ q(0175),
+ q(0),
+ ],
+ q(PK) => [
+ q(0168),
+ q(0),
+ ],
+ q(PL) => [
+ q(0177),
+ q(0),
+ ],
+ q(PM) => [
+ q(0190),
+ q(0),
+ ],
+ q(PN) => [
+ q(0176),
+ q(0),
+ ],
+ q(PR) => [
+ q(0179),
+ q(0),
+ ],
+ q(PT) => [
+ q(0178),
+ q(0),
+ ],
+ q(PW) => [
+ q(0169),
+ q(0),
+ ],
+ q(PY) => [
+ q(0173),
+ q(0),
+ ],
+ q(QA) => [
+ q(0180),
+ q(0),
+ ],
+ q(QM) => [
+ q(0270),
+ q(0),
+ ],
+ q(QS) => [
+ q(0254),
+ q(0),
+ ],
+ q(QU) => [
+ q(0267),
+ q(0),
+ ],
+ q(QW) => [
+ q(0278),
+ q(0),
+ ],
+ q(QX) => [
+ q(0261),
+ q(0),
+ ],
+ q(QZ) => [
+ q(0251),
+ q(0),
+ ],
+ q(RE) => [
+ q(0181),
+ q(0),
+ ],
+ q(RO) => [
+ q(0182),
+ q(0),
+ ],
+ q(RS) => [
+ q(0197),
+ q(0),
+ ],
+ q(RU) => [
+ q(0183),
+ q(4),
+ ],
+ q(RW) => [
+ q(0184),
+ q(0),
+ ],
+ q(SA) => [
+ q(0195),
+ q(0),
+ ],
+ q(SB) => [
+ q(0204),
+ q(0),
+ ],
+ q(SC) => [
+ q(0198),
+ q(0),
+ ],
+ q(SD) => [
+ q(0211),
+ q(0),
+ ],
+ q(SE) => [
+ q(0215),
+ q(0),
+ ],
+ q(SG) => [
+ q(0200),
+ q(0),
+ ],
+ q(SH) => [
+ q(0186),
+ q(2),
+ ],
+ q(SI) => [
+ q(0203),
+ q(0),
+ ],
+ q(SK) => [
+ q(0202),
+ q(0),
+ ],
+ q(SL) => [
+ q(0199),
+ q(0),
+ ],
+ q(SM) => [
+ q(0193),
+ q(0),
+ ],
+ q(SN) => [
+ q(0196),
+ q(0),
+ ],
+ q(SO) => [
+ q(0205),
+ q(0),
+ ],
+ q(SR) => [
+ q(0212),
+ q(0),
+ ],
+ q(SS) => [
+ q(0208),
+ q(0),
+ ],
+ q(ST) => [
+ q(0194),
+ q(0),
+ ],
+ q(SV) => [
+ q(0067),
+ q(0),
+ ],
+ q(SX) => [
+ q(0201),
+ q(1),
+ ],
+ q(SY) => [
+ q(0217),
+ q(0),
+ ],
+ q(SZ) => [
+ q(0214),
+ q(0),
+ ],
+ q(TC) => [
+ q(0230),
+ q(0),
+ ],
+ q(TD) => [
+ q(0044),
+ q(0),
+ ],
+ q(TF) => [
+ q(0079),
+ q(0),
+ ],
+ q(TG) => [
+ q(0223),
+ q(0),
+ ],
+ q(TH) => [
+ q(0221),
+ q(0),
+ ],
+ q(TJ) => [
+ q(0219),
+ q(0),
+ ],
+ q(TK) => [
+ q(0224),
+ q(0),
+ ],
+ q(TL) => [
+ q(0222),
+ q(0),
+ ],
+ q(TM) => [
+ q(0229),
+ q(0),
+ ],
+ q(TN) => [
+ q(0227),
+ q(0),
+ ],
+ q(TO) => [
+ q(0225),
+ q(0),
+ ],
+ q(TR) => [
+ q(0228),
+ q(0),
+ ],
+ q(TT) => [
+ q(0226),
+ q(0),
+ ],
+ q(TV) => [
+ q(0231),
+ q(0),
+ ],
+ q(TW) => [
+ q(0218),
+ q(0),
+ ],
+ q(TZ) => [
+ q(0220),
+ q(3),
+ ],
+ q(UA) => [
+ q(0233),
+ q(0),
+ ],
+ q(UG) => [
+ q(0232),
+ q(0),
+ ],
+ q(US) => [
+ q(0237),
+ q(0),
+ ],
+ q(UY) => [
+ q(0238),
+ q(0),
+ ],
+ q(UZ) => [
+ q(0239),
+ q(0),
+ ],
+ q(VA) => [
+ q(0098),
+ q(0),
+ ],
+ q(VC) => [
+ q(0191),
+ q(0),
+ ],
+ q(VE) => [
+ q(0241),
+ q(0),
+ ],
+ q(VG) => [
+ q(0243),
+ q(0),
+ ],
+ q(VI) => [
+ q(0244),
+ q(0),
+ ],
+ q(VN) => [
+ q(0242),
+ q(0),
+ ],
+ q(VU) => [
+ q(0240),
+ q(0),
+ ],
+ q(WF) => [
+ q(0245),
+ q(0),
+ ],
+ q(WS) => [
+ q(0192),
+ q(0),
+ ],
+ q(XA) => [
+ q(0252),
+ q(0),
+ ],
+ q(XB) => [
+ q(0253),
+ q(0),
+ ],
+ q(XC) => [
+ q(0256),
+ q(0),
+ ],
+ q(XD) => [
+ q(0257),
+ q(0),
+ ],
+ q(XE) => [
+ q(0259),
+ q(0),
+ ],
+ q(XG) => [
+ q(0260),
+ q(0),
+ ],
+ q(XH) => [
+ q(0263),
+ q(0),
+ ],
+ q(XJ) => [
+ q(0264),
+ q(0),
+ ],
+ q(XK) => [
+ q(0269),
+ q(0),
+ ],
+ q(XL) => [
+ q(0272),
+ q(0),
+ ],
+ q(XM) => [
+ q(0268),
+ q(0),
+ ],
+ q(XP) => [
+ q(0273),
+ q(0),
+ ],
+ q(XQ) => [
+ q(0265),
+ q(0),
+ ],
+ q(XR) => [
+ q(0275),
+ q(0),
+ ],
+ q(XS) => [
+ q(0274),
+ q(0),
+ ],
+ q(XT) => [
+ q(0276),
+ q(0),
+ ],
+ q(XU) => [
+ q(0266),
+ q(0),
+ ],
+ q(XV) => [
+ q(0271),
+ q(0),
+ ],
+ q(XW) => [
+ q(0279),
+ q(0),
+ ],
+ q(YE) => [
+ q(0247),
+ q(0),
+ ],
+ q(YT) => [
+ q(0143),
+ q(0),
+ ],
+ q(ZA) => [
+ q(0206),
+ q(0),
+ ],
+ q(ZM) => [
+ q(0248),
+ q(0),
+ ],
+ q(ZW) => [
+ q(0249),
+ q(0),
+ ],
+ },
+ q(genc-alpha-3) => {
+ q(ABW) => [
+ q(0013),
+ q(0),
+ ],
+ q(AFG) => [
+ q(0001),
+ q(0),
+ ],
+ q(AGO) => [
+ q(0007),
+ q(0),
+ ],
+ q(AIA) => [
+ q(0008),
+ q(0),
+ ],
+ q(ALB) => [
+ q(0003),
+ q(0),
+ ],
+ q(AND) => [
+ q(0006),
+ q(0),
+ ],
+ q(ARE) => [
+ q(0234),
+ q(0),
+ ],
+ q(ARG) => [
+ q(0011),
+ q(0),
+ ],
+ q(ARM) => [
+ q(0012),
+ q(0),
+ ],
+ q(ASM) => [
+ q(0005),
+ q(0),
+ ],
+ q(ATA) => [
+ q(0009),
+ q(0),
+ ],
+ q(ATF) => [
+ q(0079),
+ q(0),
+ ],
+ q(ATG) => [
+ q(0010),
+ q(0),
+ ],
+ q(AUS) => [
+ q(0014),
+ q(0),
+ ],
+ q(AUT) => [
+ q(0015),
+ q(0),
+ ],
+ q(AX1) => [
+ q(0277),
+ q(0),
+ ],
+ q(AX2) => [
+ q(0262),
+ q(0),
+ ],
+ q(AZE) => [
+ q(0016),
+ q(0),
+ ],
+ q(BDI) => [
+ q(0037),
+ q(0),
+ ],
+ q(BEL) => [
+ q(0022),
+ q(0),
+ ],
+ q(BEN) => [
+ q(0024),
+ q(0),
+ ],
+ q(BES) => [
+ q(0028),
+ q(1),
+ ],
+ q(BFA) => [
+ q(0036),
+ q(0),
+ ],
+ q(BGD) => [
+ q(0019),
+ q(0),
+ ],
+ q(BGR) => [
+ q(0035),
+ q(0),
+ ],
+ q(BHR) => [
+ q(0018),
+ q(0),
+ ],
+ q(BHS) => [
+ q(0017),
+ q(0),
+ ],
+ q(BIH) => [
+ q(0029),
+ q(0),
+ ],
+ q(BLM) => [
+ q(0185),
+ q(0),
+ ],
+ q(BLR) => [
+ q(0021),
+ q(0),
+ ],
+ q(BLZ) => [
+ q(0023),
+ q(0),
+ ],
+ q(BMU) => [
+ q(0025),
+ q(0),
+ ],
+ q(BOL) => [
+ q(0027),
+ q(0),
+ ],
+ q(BRA) => [
+ q(0032),
+ q(0),
+ ],
+ q(BRB) => [
+ q(0020),
+ q(0),
+ ],
+ q(BRN) => [
+ q(0034),
+ q(0),
+ ],
+ q(BTN) => [
+ q(0026),
+ q(0),
+ ],
+ q(BVT) => [
+ q(0031),
+ q(0),
+ ],
+ q(BWA) => [
+ q(0030),
+ q(0),
+ ],
+ q(CAF) => [
+ q(0043),
+ q(0),
+ ],
+ q(CAN) => [
+ q(0041),
+ q(0),
+ ],
+ q(CCK) => [
+ q(0048),
+ q(0),
+ ],
+ q(CHE) => [
+ q(0216),
+ q(0),
+ ],
+ q(CHL) => [
+ q(0045),
+ q(0),
+ ],
+ q(CHN) => [
+ q(0046),
+ q(0),
+ ],
+ q(CIV) => [
+ q(0055),
+ q(0),
+ ],
+ q(CMR) => [
+ q(0040),
+ q(0),
+ ],
+ q(COD) => [
+ q(0051),
+ q(0),
+ ],
+ q(COG) => [
+ q(0052),
+ q(0),
+ ],
+ q(COK) => [
+ q(0053),
+ q(0),
+ ],
+ q(COL) => [
+ q(0049),
+ q(0),
+ ],
+ q(COM) => [
+ q(0050),
+ q(0),
+ ],
+ q(CPT) => [
+ q(0255),
+ q(0),
+ ],
+ q(CPV) => [
+ q(0038),
+ q(0),
+ ],
+ q(CRI) => [
+ q(0054),
+ q(0),
+ ],
+ q(CUB) => [
+ q(0057),
+ q(0),
+ ],
+ q(CUW) => [
+ q(0058),
+ q(0),
+ ],
+ q(CXR) => [
+ q(0047),
+ q(0),
+ ],
+ q(CYM) => [
+ q(0042),
+ q(0),
+ ],
+ q(CYP) => [
+ q(0059),
+ q(0),
+ ],
+ q(CZE) => [
+ q(0060),
+ q(0),
+ ],
+ q(DEU) => [
+ q(0083),
+ q(0),
+ ],
+ q(DGA) => [
+ q(0258),
+ q(0),
+ ],
+ q(DJI) => [
+ q(0062),
+ q(0),
+ ],
+ q(DMA) => [
+ q(0063),
+ q(0),
+ ],
+ q(DNK) => [
+ q(0061),
+ q(0),
+ ],
+ q(DOM) => [
+ q(0064),
+ q(0),
+ ],
+ q(DZA) => [
+ q(0004),
+ q(0),
+ ],
+ q(ECU) => [
+ q(0065),
+ q(0),
+ ],
+ q(EGY) => [
+ q(0066),
+ q(0),
+ ],
+ q(ERI) => [
+ q(0069),
+ q(0),
+ ],
+ q(ESH) => [
+ q(0246),
+ q(0),
+ ],
+ q(ESP) => [
+ q(0209),
+ q(0),
+ ],
+ q(EST) => [
+ q(0070),
+ q(0),
+ ],
+ q(ETH) => [
+ q(0071),
+ q(0),
+ ],
+ q(FIN) => [
+ q(0075),
+ q(0),
+ ],
+ q(FJI) => [
+ q(0074),
+ q(0),
+ ],
+ q(FLK) => [
+ q(0072),
+ q(0),
+ ],
+ q(FRA) => [
+ q(0076),
+ q(0),
+ ],
+ q(FRO) => [
+ q(0073),
+ q(0),
+ ],
+ q(FSM) => [
+ q(0145),
+ q(0),
+ ],
+ q(GAB) => [
+ q(0080),
+ q(0),
+ ],
+ q(GBR) => [
+ q(0235),
+ q(0),
+ ],
+ q(GEO) => [
+ q(0082),
+ q(0),
+ ],
+ q(GGY) => [
+ q(0092),
+ q(0),
+ ],
+ q(GHA) => [
+ q(0084),
+ q(0),
+ ],
+ q(GIB) => [
+ q(0085),
+ q(0),
+ ],
+ q(GIN) => [
+ q(0093),
+ q(0),
+ ],
+ q(GLP) => [
+ q(0089),
+ q(0),
+ ],
+ q(GMB) => [
+ q(0081),
+ q(0),
+ ],
+ q(GNB) => [
+ q(0094),
+ q(0),
+ ],
+ q(GNQ) => [
+ q(0068),
+ q(0),
+ ],
+ q(GRC) => [
+ q(0086),
+ q(0),
+ ],
+ q(GRD) => [
+ q(0088),
+ q(0),
+ ],
+ q(GRL) => [
+ q(0087),
+ q(0),
+ ],
+ q(GTM) => [
+ q(0091),
+ q(0),
+ ],
+ q(GUF) => [
+ q(0077),
+ q(0),
+ ],
+ q(GUM) => [
+ q(0090),
+ q(0),
+ ],
+ q(GUY) => [
+ q(0095),
+ q(0),
+ ],
+ q(HKG) => [
+ q(0100),
+ q(0),
+ ],
+ q(HMD) => [
+ q(0097),
+ q(0),
+ ],
+ q(HND) => [
+ q(0099),
+ q(0),
+ ],
+ q(HRV) => [
+ q(0056),
+ q(0),
+ ],
+ q(HTI) => [
+ q(0096),
+ q(0),
+ ],
+ q(HUN) => [
+ q(0101),
+ q(0),
+ ],
+ q(IDN) => [
+ q(0104),
+ q(0),
+ ],
+ q(IMN) => [
+ q(0108),
+ q(0),
+ ],
+ q(IND) => [
+ q(0103),
+ q(0),
+ ],
+ q(IOT) => [
+ q(0033),
+ q(0),
+ ],
+ q(IRL) => [
+ q(0107),
+ q(0),
+ ],
+ q(IRN) => [
+ q(0105),
+ q(0),
+ ],
+ q(IRQ) => [
+ q(0106),
+ q(0),
+ ],
+ q(ISL) => [
+ q(0102),
+ q(0),
+ ],
+ q(ISR) => [
+ q(0109),
+ q(0),
+ ],
+ q(ITA) => [
+ q(0110),
+ q(0),
+ ],
+ q(JAM) => [
+ q(0111),
+ q(0),
+ ],
+ q(JEY) => [
+ q(0113),
+ q(0),
+ ],
+ q(JOR) => [
+ q(0114),
+ q(0),
+ ],
+ q(JPN) => [
+ q(0112),
+ q(0),
+ ],
+ q(KAZ) => [
+ q(0115),
+ q(0),
+ ],
+ q(KEN) => [
+ q(0116),
+ q(0),
+ ],
+ q(KGZ) => [
+ q(0121),
+ q(0),
+ ],
+ q(KHM) => [
+ q(0039),
+ q(0),
+ ],
+ q(KIR) => [
+ q(0117),
+ q(0),
+ ],
+ q(KNA) => [
+ q(0187),
+ q(0),
+ ],
+ q(KOR) => [
+ q(0119),
+ q(7),
+ ],
+ q(KWT) => [
+ q(0120),
+ q(0),
+ ],
+ q(LAO) => [
+ q(0122),
+ q(4),
+ ],
+ q(LBN) => [
+ q(0124),
+ q(0),
+ ],
+ q(LBR) => [
+ q(0126),
+ q(0),
+ ],
+ q(LBY) => [
+ q(0127),
+ q(0),
+ ],
+ q(LCA) => [
+ q(0188),
+ q(0),
+ ],
+ q(LIE) => [
+ q(0128),
+ q(0),
+ ],
+ q(LKA) => [
+ q(0210),
+ q(0),
+ ],
+ q(LSO) => [
+ q(0125),
+ q(0),
+ ],
+ q(LTU) => [
+ q(0129),
+ q(0),
+ ],
+ q(LUX) => [
+ q(0130),
+ q(0),
+ ],
+ q(LVA) => [
+ q(0123),
+ q(0),
+ ],
+ q(MAC) => [
+ q(0131),
+ q(0),
+ ],
+ q(MAF) => [
+ q(0189),
+ q(0),
+ ],
+ q(MAR) => [
+ q(0151),
+ q(0),
+ ],
+ q(MCO) => [
+ q(0147),
+ q(0),
+ ],
+ q(MDA) => [
+ q(0146),
+ q(6),
+ ],
+ q(MDG) => [
+ q(0133),
+ q(0),
+ ],
+ q(MDV) => [
+ q(0136),
+ q(0),
+ ],
+ q(MEX) => [
+ q(0144),
+ q(0),
+ ],
+ q(MHL) => [
+ q(0139),
+ q(0),
+ ],
+ q(MKD) => [
+ q(0132),
+ q(0),
+ ],
+ q(MLI) => [
+ q(0137),
+ q(0),
+ ],
+ q(MLT) => [
+ q(0138),
+ q(0),
+ ],
+ q(MMR) => [
+ q(0153),
+ q(0),
+ ],
+ q(MNE) => [
+ q(0149),
+ q(0),
+ ],
+ q(MNG) => [
+ q(0148),
+ q(0),
+ ],
+ q(MNP) => [
+ q(0165),
+ q(0),
+ ],
+ q(MOZ) => [
+ q(0152),
+ q(0),
+ ],
+ q(MRT) => [
+ q(0141),
+ q(0),
+ ],
+ q(MSR) => [
+ q(0150),
+ q(0),
+ ],
+ q(MTQ) => [
+ q(0140),
+ q(0),
+ ],
+ q(MUS) => [
+ q(0142),
+ q(0),
+ ],
+ q(MWI) => [
+ q(0134),
+ q(0),
+ ],
+ q(MYS) => [
+ q(0135),
+ q(0),
+ ],
+ q(MYT) => [
+ q(0143),
+ q(0),
+ ],
+ q(NAM) => [
+ q(0154),
+ q(0),
+ ],
+ q(NCL) => [
+ q(0158),
+ q(0),
+ ],
+ q(NER) => [
+ q(0161),
+ q(0),
+ ],
+ q(NFK) => [
+ q(0164),
+ q(0),
+ ],
+ q(NGA) => [
+ q(0162),
+ q(0),
+ ],
+ q(NIC) => [
+ q(0160),
+ q(0),
+ ],
+ q(NIU) => [
+ q(0163),
+ q(0),
+ ],
+ q(NLD) => [
+ q(0157),
+ q(0),
+ ],
+ q(NOR) => [
+ q(0166),
+ q(0),
+ ],
+ q(NPL) => [
+ q(0156),
+ q(0),
+ ],
+ q(NRU) => [
+ q(0155),
+ q(0),
+ ],
+ q(NZL) => [
+ q(0159),
+ q(0),
+ ],
+ q(OMN) => [
+ q(0167),
+ q(0),
+ ],
+ q(PAK) => [
+ q(0168),
+ q(0),
+ ],
+ q(PAN) => [
+ q(0171),
+ q(0),
+ ],
+ q(PCN) => [
+ q(0176),
+ q(0),
+ ],
+ q(PER) => [
+ q(0174),
+ q(0),
+ ],
+ q(PHL) => [
+ q(0175),
+ q(0),
+ ],
+ q(PLW) => [
+ q(0169),
+ q(0),
+ ],
+ q(PNG) => [
+ q(0172),
+ q(0),
+ ],
+ q(POL) => [
+ q(0177),
+ q(0),
+ ],
+ q(PRI) => [
+ q(0179),
+ q(0),
+ ],
+ q(PRK) => [
+ q(0118),
+ q(7),
+ ],
+ q(PRT) => [
+ q(0178),
+ q(0),
+ ],
+ q(PRY) => [
+ q(0173),
+ q(0),
+ ],
+ q(PYF) => [
+ q(0078),
+ q(0),
+ ],
+ q(QAT) => [
+ q(0180),
+ q(0),
+ ],
+ q(REU) => [
+ q(0181),
+ q(0),
+ ],
+ q(ROU) => [
+ q(0182),
+ q(0),
+ ],
+ q(RUS) => [
+ q(0183),
+ q(4),
+ ],
+ q(RWA) => [
+ q(0184),
+ q(0),
+ ],
+ q(SAU) => [
+ q(0195),
+ q(0),
+ ],
+ q(SDN) => [
+ q(0211),
+ q(0),
+ ],
+ q(SEN) => [
+ q(0196),
+ q(0),
+ ],
+ q(SGP) => [
+ q(0200),
+ q(0),
+ ],
+ q(SGS) => [
+ q(0207),
+ q(2),
+ ],
+ q(SHN) => [
+ q(0186),
+ q(2),
+ ],
+ q(SLB) => [
+ q(0204),
+ q(0),
+ ],
+ q(SLE) => [
+ q(0199),
+ q(0),
+ ],
+ q(SLV) => [
+ q(0067),
+ q(0),
+ ],
+ q(SMR) => [
+ q(0193),
+ q(0),
+ ],
+ q(SOM) => [
+ q(0205),
+ q(0),
+ ],
+ q(SPM) => [
+ q(0190),
+ q(0),
+ ],
+ q(SRB) => [
+ q(0197),
+ q(0),
+ ],
+ q(SSD) => [
+ q(0208),
+ q(0),
+ ],
+ q(STP) => [
+ q(0194),
+ q(0),
+ ],
+ q(SUR) => [
+ q(0212),
+ q(0),
+ ],
+ q(SVK) => [
+ q(0202),
+ q(0),
+ ],
+ q(SVN) => [
+ q(0203),
+ q(0),
+ ],
+ q(SWE) => [
+ q(0215),
+ q(0),
+ ],
+ q(SWZ) => [
+ q(0214),
+ q(0),
+ ],
+ q(SXM) => [
+ q(0201),
+ q(1),
+ ],
+ q(SYC) => [
+ q(0198),
+ q(0),
+ ],
+ q(SYR) => [
+ q(0217),
+ q(0),
+ ],
+ q(TCA) => [
+ q(0230),
+ q(0),
+ ],
+ q(TCD) => [
+ q(0044),
+ q(0),
+ ],
+ q(TGO) => [
+ q(0223),
+ q(0),
+ ],
+ q(THA) => [
+ q(0221),
+ q(0),
+ ],
+ q(TJK) => [
+ q(0219),
+ q(0),
+ ],
+ q(TKL) => [
+ q(0224),
+ q(0),
+ ],
+ q(TKM) => [
+ q(0229),
+ q(0),
+ ],
+ q(TLS) => [
+ q(0222),
+ q(0),
+ ],
+ q(TON) => [
+ q(0225),
+ q(0),
+ ],
+ q(TTO) => [
+ q(0226),
+ q(0),
+ ],
+ q(TUN) => [
+ q(0227),
+ q(0),
+ ],
+ q(TUR) => [
+ q(0228),
+ q(0),
+ ],
+ q(TUV) => [
+ q(0231),
+ q(0),
+ ],
+ q(TWN) => [
+ q(0218),
+ q(0),
+ ],
+ q(TZA) => [
+ q(0220),
+ q(3),
+ ],
+ q(UGA) => [
+ q(0232),
+ q(0),
+ ],
+ q(UKR) => [
+ q(0233),
+ q(0),
+ ],
+ q(URY) => [
+ q(0238),
+ q(0),
+ ],
+ q(USA) => [
+ q(0237),
+ q(0),
+ ],
+ q(UZB) => [
+ q(0239),
+ q(0),
+ ],
+ q(VAT) => [
+ q(0098),
+ q(0),
+ ],
+ q(VCT) => [
+ q(0191),
+ q(0),
+ ],
+ q(VEN) => [
+ q(0241),
+ q(0),
+ ],
+ q(VGB) => [
+ q(0243),
+ q(0),
+ ],
+ q(VIR) => [
+ q(0244),
+ q(0),
+ ],
+ q(VNM) => [
+ q(0242),
+ q(0),
+ ],
+ q(VUT) => [
+ q(0240),
+ q(0),
+ ],
+ q(WLF) => [
+ q(0245),
+ q(0),
+ ],
+ q(WSM) => [
+ q(0192),
+ q(0),
+ ],
+ q(XAC) => [
+ q(0252),
+ q(0),
+ ],
+ q(XBI) => [
+ q(0254),
+ q(0),
+ ],
+ q(XBK) => [
+ q(0253),
+ q(0),
+ ],
+ q(XCS) => [
+ q(0256),
+ q(0),
+ ],
+ q(XEU) => [
+ q(0259),
+ q(0),
+ ],
+ q(XGL) => [
+ q(0261),
+ q(0),
+ ],
+ q(XGZ) => [
+ q(0260),
+ q(0),
+ ],
+ q(XHO) => [
+ q(0263),
+ q(0),
+ ],
+ q(XJA) => [
+ q(0266),
+ q(0),
+ ],
+ q(XJM) => [
+ q(0264),
+ q(0),
+ ],
+ q(XJN) => [
+ q(0267),
+ q(0),
+ ],
+ q(XJV) => [
+ q(0265),
+ q(0),
+ ],
+ q(XKR) => [
+ q(0268),
+ q(0),
+ ],
+ q(XKS) => [
+ q(0269),
+ q(0),
+ ],
+ q(XMW) => [
+ q(0270),
+ q(0),
+ ],
+ q(XNV) => [
+ q(0271),
+ q(0),
+ ],
+ q(XPL) => [
+ q(0272),
+ q(0),
+ ],
+ q(XPR) => [
+ q(0273),
+ q(0),
+ ],
+ q(XQZ) => [
+ q(0251),
+ q(0),
+ ],
+ q(XSP) => [
+ q(0274),
+ q(0),
+ ],
+ q(XSV) => [
+ q(0275),
+ q(0),
+ ],
+ q(XTR) => [
+ q(0276),
+ q(0),
+ ],
+ q(XWB) => [
+ q(0279),
+ q(0),
+ ],
+ q(XWK) => [
+ q(0278),
+ q(0),
+ ],
+ q(XXD) => [
+ q(0257),
+ q(0),
+ ],
+ q(YEM) => [
+ q(0247),
+ q(0),
+ ],
+ q(ZAF) => [
+ q(0206),
+ q(0),
+ ],
+ q(ZMB) => [
+ q(0248),
+ q(0),
+ ],
+ q(ZWE) => [
+ q(0249),
+ q(0),
+ ],
+ },
+ q(genc-numeric) => {
+ q(004) => [
+ q(0001),
+ q(0),
+ ],
+ q(008) => [
+ q(0003),
+ q(0),
+ ],
+ q(010) => [
+ q(0009),
+ q(0),
+ ],
+ q(012) => [
+ q(0004),
+ q(0),
+ ],
+ q(016) => [
+ q(0005),
+ q(0),
+ ],
+ q(020) => [
+ q(0006),
+ q(0),
+ ],
+ q(024) => [
+ q(0007),
+ q(0),
+ ],
+ q(028) => [
+ q(0010),
+ q(0),
+ ],
+ q(031) => [
+ q(0016),
+ q(0),
+ ],
+ q(032) => [
+ q(0011),
+ q(0),
+ ],
+ q(036) => [
+ q(0014),
+ q(0),
+ ],
+ q(040) => [
+ q(0015),
+ q(0),
+ ],
+ q(044) => [
+ q(0017),
+ q(0),
+ ],
+ q(048) => [
+ q(0018),
+ q(0),
+ ],
+ q(050) => [
+ q(0019),
+ q(0),
+ ],
+ q(051) => [
+ q(0012),
+ q(0),
+ ],
+ q(052) => [
+ q(0020),
+ q(0),
+ ],
+ q(056) => [
+ q(0022),
+ q(0),
+ ],
+ q(060) => [
+ q(0025),
+ q(0),
+ ],
+ q(064) => [
+ q(0026),
+ q(0),
+ ],
+ q(068) => [
+ q(0027),
+ q(0),
+ ],
+ q(070) => [
+ q(0029),
+ q(0),
+ ],
+ q(072) => [
+ q(0030),
+ q(0),
+ ],
+ q(074) => [
+ q(0031),
+ q(0),
+ ],
+ q(076) => [
+ q(0032),
+ q(0),
+ ],
+ q(084) => [
+ q(0023),
+ q(0),
+ ],
+ q(086) => [
+ q(0033),
+ q(0),
+ ],
+ q(090) => [
+ q(0204),
+ q(0),
+ ],
+ q(092) => [
+ q(0243),
+ q(0),
+ ],
+ q(096) => [
+ q(0034),
+ q(0),
+ ],
+ q(100) => [
+ q(0035),
+ q(0),
+ ],
+ q(104) => [
+ q(0153),
+ q(0),
+ ],
+ q(108) => [
+ q(0037),
+ q(0),
+ ],
+ q(112) => [
+ q(0021),
+ q(0),
+ ],
+ q(116) => [
+ q(0039),
+ q(0),
+ ],
+ q(120) => [
+ q(0040),
+ q(0),
+ ],
+ q(124) => [
+ q(0041),
+ q(0),
+ ],
+ q(132) => [
+ q(0038),
+ q(0),
+ ],
+ q(136) => [
+ q(0042),
+ q(0),
+ ],
+ q(140) => [
+ q(0043),
+ q(0),
+ ],
+ q(144) => [
+ q(0210),
+ q(0),
+ ],
+ q(148) => [
+ q(0044),
+ q(0),
+ ],
+ q(152) => [
+ q(0045),
+ q(0),
+ ],
+ q(156) => [
+ q(0046),
+ q(0),
+ ],
+ q(158) => [
+ q(0218),
+ q(0),
+ ],
+ q(162) => [
+ q(0047),
+ q(0),
+ ],
+ q(166) => [
+ q(0048),
+ q(0),
+ ],
+ q(170) => [
+ q(0049),
+ q(0),
+ ],
+ q(174) => [
+ q(0050),
+ q(0),
+ ],
+ q(175) => [
+ q(0143),
+ q(0),
+ ],
+ q(178) => [
+ q(0052),
+ q(0),
+ ],
+ q(180) => [
+ q(0051),
+ q(0),
+ ],
+ q(184) => [
+ q(0053),
+ q(0),
+ ],
+ q(188) => [
+ q(0054),
+ q(0),
+ ],
+ q(191) => [
+ q(0056),
+ q(0),
+ ],
+ q(192) => [
+ q(0057),
+ q(0),
+ ],
+ q(196) => [
+ q(0059),
+ q(0),
+ ],
+ q(203) => [
+ q(0060),
+ q(0),
+ ],
+ q(204) => [
+ q(0024),
+ q(0),
+ ],
+ q(208) => [
+ q(0061),
+ q(0),
+ ],
+ q(212) => [
+ q(0063),
+ q(0),
+ ],
+ q(214) => [
+ q(0064),
+ q(0),
+ ],
+ q(218) => [
+ q(0065),
+ q(0),
+ ],
+ q(222) => [
+ q(0067),
+ q(0),
+ ],
+ q(226) => [
+ q(0068),
+ q(0),
+ ],
+ q(231) => [
+ q(0071),
+ q(0),
+ ],
+ q(232) => [
+ q(0069),
+ q(0),
+ ],
+ q(233) => [
+ q(0070),
+ q(0),
+ ],
+ q(234) => [
+ q(0073),
+ q(0),
+ ],
+ q(238) => [
+ q(0072),
+ q(0),
+ ],
+ q(239) => [
+ q(0207),
+ q(2),
+ ],
+ q(242) => [
+ q(0074),
+ q(0),
+ ],
+ q(246) => [
+ q(0075),
+ q(0),
+ ],
+ q(250) => [
+ q(0076),
+ q(0),
+ ],
+ q(254) => [
+ q(0077),
+ q(0),
+ ],
+ q(258) => [
+ q(0078),
+ q(0),
+ ],
+ q(260) => [
+ q(0079),
+ q(0),
+ ],
+ q(262) => [
+ q(0062),
+ q(0),
+ ],
+ q(266) => [
+ q(0080),
+ q(0),
+ ],
+ q(268) => [
+ q(0082),
+ q(0),
+ ],
+ q(270) => [
+ q(0081),
+ q(0),
+ ],
+ q(276) => [
+ q(0083),
+ q(0),
+ ],
+ q(288) => [
+ q(0084),
+ q(0),
+ ],
+ q(292) => [
+ q(0085),
+ q(0),
+ ],
+ q(296) => [
+ q(0117),
+ q(0),
+ ],
+ q(300) => [
+ q(0086),
+ q(0),
+ ],
+ q(304) => [
+ q(0087),
+ q(0),
+ ],
+ q(308) => [
+ q(0088),
+ q(0),
+ ],
+ q(312) => [
+ q(0089),
+ q(0),
+ ],
+ q(316) => [
+ q(0090),
+ q(0),
+ ],
+ q(320) => [
+ q(0091),
+ q(0),
+ ],
+ q(324) => [
+ q(0093),
+ q(0),
+ ],
+ q(328) => [
+ q(0095),
+ q(0),
+ ],
+ q(332) => [
+ q(0096),
+ q(0),
+ ],
+ q(334) => [
+ q(0097),
+ q(0),
+ ],
+ q(336) => [
+ q(0098),
+ q(0),
+ ],
+ q(340) => [
+ q(0099),
+ q(0),
+ ],
+ q(344) => [
+ q(0100),
+ q(0),
+ ],
+ q(348) => [
+ q(0101),
+ q(0),
+ ],
+ q(352) => [
+ q(0102),
+ q(0),
+ ],
+ q(356) => [
+ q(0103),
+ q(0),
+ ],
+ q(360) => [
+ q(0104),
+ q(0),
+ ],
+ q(364) => [
+ q(0105),
+ q(0),
+ ],
+ q(368) => [
+ q(0106),
+ q(0),
+ ],
+ q(372) => [
+ q(0107),
+ q(0),
+ ],
+ q(376) => [
+ q(0109),
+ q(0),
+ ],
+ q(380) => [
+ q(0110),
+ q(0),
+ ],
+ q(384) => [
+ q(0055),
+ q(0),
+ ],
+ q(388) => [
+ q(0111),
+ q(0),
+ ],
+ q(392) => [
+ q(0112),
+ q(0),
+ ],
+ q(398) => [
+ q(0115),
+ q(0),
+ ],
+ q(400) => [
+ q(0114),
+ q(0),
+ ],
+ q(404) => [
+ q(0116),
+ q(0),
+ ],
+ q(408) => [
+ q(0118),
+ q(7),
+ ],
+ q(410) => [
+ q(0119),
+ q(7),
+ ],
+ q(414) => [
+ q(0120),
+ q(0),
+ ],
+ q(417) => [
+ q(0121),
+ q(0),
+ ],
+ q(418) => [
+ q(0122),
+ q(4),
+ ],
+ q(422) => [
+ q(0124),
+ q(0),
+ ],
+ q(426) => [
+ q(0125),
+ q(0),
+ ],
+ q(428) => [
+ q(0123),
+ q(0),
+ ],
+ q(430) => [
+ q(0126),
+ q(0),
+ ],
+ q(434) => [
+ q(0127),
+ q(0),
+ ],
+ q(438) => [
+ q(0128),
+ q(0),
+ ],
+ q(440) => [
+ q(0129),
+ q(0),
+ ],
+ q(442) => [
+ q(0130),
+ q(0),
+ ],
+ q(446) => [
+ q(0131),
+ q(0),
+ ],
+ q(450) => [
+ q(0133),
+ q(0),
+ ],
+ q(454) => [
+ q(0134),
+ q(0),
+ ],
+ q(458) => [
+ q(0135),
+ q(0),
+ ],
+ q(462) => [
+ q(0136),
+ q(0),
+ ],
+ q(466) => [
+ q(0137),
+ q(0),
+ ],
+ q(470) => [
+ q(0138),
+ q(0),
+ ],
+ q(474) => [
+ q(0140),
+ q(0),
+ ],
+ q(478) => [
+ q(0141),
+ q(0),
+ ],
+ q(480) => [
+ q(0142),
+ q(0),
+ ],
+ q(484) => [
+ q(0144),
+ q(0),
+ ],
+ q(492) => [
+ q(0147),
+ q(0),
+ ],
+ q(496) => [
+ q(0148),
+ q(0),
+ ],
+ q(498) => [
+ q(0146),
+ q(6),
+ ],
+ q(499) => [
+ q(0149),
+ q(0),
+ ],
+ q(500) => [
+ q(0150),
+ q(0),
+ ],
+ q(504) => [
+ q(0151),
+ q(0),
+ ],
+ q(508) => [
+ q(0152),
+ q(0),
+ ],
+ q(512) => [
+ q(0167),
+ q(0),
+ ],
+ q(516) => [
+ q(0154),
+ q(0),
+ ],
+ q(520) => [
+ q(0155),
+ q(0),
+ ],
+ q(524) => [
+ q(0156),
+ q(0),
+ ],
+ q(528) => [
+ q(0157),
+ q(0),
+ ],
+ q(531) => [
+ q(0058),
+ q(0),
+ ],
+ q(533) => [
+ q(0013),
+ q(0),
+ ],
+ q(534) => [
+ q(0201),
+ q(1),
+ ],
+ q(535) => [
+ q(0028),
+ q(1),
+ ],
+ q(540) => [
+ q(0158),
+ q(0),
+ ],
+ q(548) => [
+ q(0240),
+ q(0),
+ ],
+ q(554) => [
+ q(0159),
+ q(0),
+ ],
+ q(558) => [
+ q(0160),
+ q(0),
+ ],
+ q(562) => [
+ q(0161),
+ q(0),
+ ],
+ q(566) => [
+ q(0162),
+ q(0),
+ ],
+ q(570) => [
+ q(0163),
+ q(0),
+ ],
+ q(574) => [
+ q(0164),
+ q(0),
+ ],
+ q(578) => [
+ q(0166),
+ q(0),
+ ],
+ q(580) => [
+ q(0165),
+ q(0),
+ ],
+ q(583) => [
+ q(0145),
+ q(0),
+ ],
+ q(584) => [
+ q(0139),
+ q(0),
+ ],
+ q(585) => [
+ q(0169),
+ q(0),
+ ],
+ q(586) => [
+ q(0168),
+ q(0),
+ ],
+ q(591) => [
+ q(0171),
+ q(0),
+ ],
+ q(598) => [
+ q(0172),
+ q(0),
+ ],
+ q(600) => [
+ q(0173),
+ q(0),
+ ],
+ q(604) => [
+ q(0174),
+ q(0),
+ ],
+ q(608) => [
+ q(0175),
+ q(0),
+ ],
+ q(612) => [
+ q(0176),
+ q(0),
+ ],
+ q(616) => [
+ q(0177),
+ q(0),
+ ],
+ q(620) => [
+ q(0178),
+ q(0),
+ ],
+ q(624) => [
+ q(0094),
+ q(0),
+ ],
+ q(626) => [
+ q(0222),
+ q(0),
+ ],
+ q(630) => [
+ q(0179),
+ q(0),
+ ],
+ q(634) => [
+ q(0180),
+ q(0),
+ ],
+ q(638) => [
+ q(0181),
+ q(0),
+ ],
+ q(642) => [
+ q(0182),
+ q(0),
+ ],
+ q(643) => [
+ q(0183),
+ q(4),
+ ],
+ q(646) => [
+ q(0184),
+ q(0),
+ ],
+ q(652) => [
+ q(0185),
+ q(0),
+ ],
+ q(654) => [
+ q(0186),
+ q(2),
+ ],
+ q(659) => [
+ q(0187),
+ q(0),
+ ],
+ q(660) => [
+ q(0008),
+ q(0),
+ ],
+ q(662) => [
+ q(0188),
+ q(0),
+ ],
+ q(663) => [
+ q(0189),
+ q(0),
+ ],
+ q(666) => [
+ q(0190),
+ q(0),
+ ],
+ q(670) => [
+ q(0191),
+ q(0),
+ ],
+ q(674) => [
+ q(0193),
+ q(0),
+ ],
+ q(678) => [
+ q(0194),
+ q(0),
+ ],
+ q(682) => [
+ q(0195),
+ q(0),
+ ],
+ q(686) => [
+ q(0196),
+ q(0),
+ ],
+ q(688) => [
+ q(0197),
+ q(0),
+ ],
+ q(690) => [
+ q(0198),
+ q(0),
+ ],
+ q(694) => [
+ q(0199),
+ q(0),
+ ],
+ q(702) => [
+ q(0200),
+ q(0),
+ ],
+ q(703) => [
+ q(0202),
+ q(0),
+ ],
+ q(704) => [
+ q(0242),
+ q(0),
+ ],
+ q(705) => [
+ q(0203),
+ q(0),
+ ],
+ q(706) => [
+ q(0205),
+ q(0),
+ ],
+ q(710) => [
+ q(0206),
+ q(0),
+ ],
+ q(716) => [
+ q(0249),
+ q(0),
+ ],
+ q(724) => [
+ q(0209),
+ q(0),
+ ],
+ q(728) => [
+ q(0208),
+ q(0),
+ ],
+ q(729) => [
+ q(0211),
+ q(0),
+ ],
+ q(732) => [
+ q(0246),
+ q(0),
+ ],
+ q(740) => [
+ q(0212),
+ q(0),
+ ],
+ q(748) => [
+ q(0214),
+ q(0),
+ ],
+ q(752) => [
+ q(0215),
+ q(0),
+ ],
+ q(756) => [
+ q(0216),
+ q(0),
+ ],
+ q(760) => [
+ q(0217),
+ q(0),
+ ],
+ q(762) => [
+ q(0219),
+ q(0),
+ ],
+ q(764) => [
+ q(0221),
+ q(0),
+ ],
+ q(768) => [
+ q(0223),
+ q(0),
+ ],
+ q(772) => [
+ q(0224),
+ q(0),
+ ],
+ q(776) => [
+ q(0225),
+ q(0),
+ ],
+ q(780) => [
+ q(0226),
+ q(0),
+ ],
+ q(784) => [
+ q(0234),
+ q(0),
+ ],
+ q(788) => [
+ q(0227),
+ q(0),
+ ],
+ q(792) => [
+ q(0228),
+ q(0),
+ ],
+ q(795) => [
+ q(0229),
+ q(0),
+ ],
+ q(796) => [
+ q(0230),
+ q(0),
+ ],
+ q(798) => [
+ q(0231),
+ q(0),
+ ],
+ q(800) => [
+ q(0232),
+ q(0),
+ ],
+ q(804) => [
+ q(0233),
+ q(0),
+ ],
+ q(807) => [
+ q(0132),
+ q(0),
+ ],
+ q(818) => [
+ q(0066),
+ q(0),
+ ],
+ q(826) => [
+ q(0235),
+ q(0),
+ ],
+ q(831) => [
+ q(0092),
+ q(0),
+ ],
+ q(832) => [
+ q(0113),
+ q(0),
+ ],
+ q(833) => [
+ q(0108),
+ q(0),
+ ],
+ q(834) => [
+ q(0220),
+ q(3),
+ ],
+ q(840) => [
+ q(0237),
+ q(0),
+ ],
+ q(850) => [
+ q(0244),
+ q(0),
+ ],
+ q(854) => [
+ q(0036),
+ q(0),
+ ],
+ q(858) => [
+ q(0238),
+ q(0),
+ ],
+ q(860) => [
+ q(0239),
+ q(0),
+ ],
+ q(862) => [
+ q(0241),
+ q(0),
+ ],
+ q(876) => [
+ q(0245),
+ q(0),
+ ],
+ q(882) => [
+ q(0192),
+ q(0),
+ ],
+ q(887) => [
+ q(0247),
+ q(0),
+ ],
+ q(894) => [
+ q(0248),
+ q(0),
+ ],
+ q(900) => [
+ q(0251),
+ q(0),
+ ],
+ q(901) => [
+ q(0269),
+ q(0),
+ ],
+ q(902) => [
+ q(0252),
+ q(0),
+ ],
+ q(903) => [
+ q(0253),
+ q(0),
+ ],
+ q(904) => [
+ q(0254),
+ q(0),
+ ],
+ q(905) => [
+ q(0255),
+ q(0),
+ ],
+ q(906) => [
+ q(0256),
+ q(0),
+ ],
+ q(907) => [
+ q(0257),
+ q(0),
+ ],
+ q(908) => [
+ q(0258),
+ q(0),
+ ],
+ q(915) => [
+ q(0259),
+ q(0),
+ ],
+ q(916) => [
+ q(0260),
+ q(0),
+ ],
+ q(917) => [
+ q(0261),
+ q(0),
+ ],
+ q(918) => [
+ q(0262),
+ q(0),
+ ],
+ q(919) => [
+ q(0263),
+ q(0),
+ ],
+ q(920) => [
+ q(0264),
+ q(0),
+ ],
+ q(921) => [
+ q(0265),
+ q(0),
+ ],
+ q(922) => [
+ q(0266),
+ q(0),
+ ],
+ q(923) => [
+ q(0267),
+ q(0),
+ ],
+ q(924) => [
+ q(0268),
+ q(0),
+ ],
+ q(925) => [
+ q(0270),
+ q(0),
+ ],
+ q(926) => [
+ q(0271),
+ q(0),
+ ],
+ q(927) => [
+ q(0272),
+ q(0),
+ ],
+ q(928) => [
+ q(0273),
+ q(0),
+ ],
+ q(929) => [
+ q(0274),
+ q(0),
+ ],
+ q(930) => [
+ q(0275),
+ q(0),
+ ],
+ q(931) => [
+ q(0276),
+ q(0),
+ ],
+ q(932) => [
+ q(0277),
+ q(0),
+ ],
+ q(933) => [
+ q(0278),
+ q(0),
+ ],
+ q(934) => [
+ q(0279),
+ q(0),
+ ],
+ },
q(numeric) => {
q(004) => [
q(0001),
@@ -6872,6 +10431,1998 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
},
+ q(un-alpha-3) => {
+ q(ABW) => [
+ q(0013),
+ q(0),
+ ],
+ q(AFG) => [
+ q(0001),
+ q(0),
+ ],
+ q(AGO) => [
+ q(0007),
+ q(0),
+ ],
+ q(AIA) => [
+ q(0008),
+ q(0),
+ ],
+ q(ALA) => [
+ q(0002),
+ q(0),
+ ],
+ q(ALB) => [
+ q(0003),
+ q(0),
+ ],
+ q(AND) => [
+ q(0006),
+ q(0),
+ ],
+ q(ARE) => [
+ q(0234),
+ q(0),
+ ],
+ q(ARG) => [
+ q(0011),
+ q(0),
+ ],
+ q(ARM) => [
+ q(0012),
+ q(0),
+ ],
+ q(ASM) => [
+ q(0005),
+ q(0),
+ ],
+ q(ATA) => [
+ q(0009),
+ q(0),
+ ],
+ q(ATF) => [
+ q(0079),
+ q(0),
+ ],
+ q(ATG) => [
+ q(0010),
+ q(0),
+ ],
+ q(AUS) => [
+ q(0014),
+ q(0),
+ ],
+ q(AUT) => [
+ q(0015),
+ q(0),
+ ],
+ q(AZE) => [
+ q(0016),
+ q(0),
+ ],
+ q(BDI) => [
+ q(0037),
+ q(0),
+ ],
+ q(BEL) => [
+ q(0022),
+ q(0),
+ ],
+ q(BEN) => [
+ q(0024),
+ q(0),
+ ],
+ q(BES) => [
+ q(0028),
+ q(0),
+ ],
+ q(BFA) => [
+ q(0036),
+ q(0),
+ ],
+ q(BGD) => [
+ q(0019),
+ q(0),
+ ],
+ q(BGR) => [
+ q(0035),
+ q(0),
+ ],
+ q(BHR) => [
+ q(0018),
+ q(0),
+ ],
+ q(BHS) => [
+ q(0017),
+ q(0),
+ ],
+ q(BIH) => [
+ q(0029),
+ q(0),
+ ],
+ q(BLM) => [
+ q(0185),
+ q(0),
+ ],
+ q(BLR) => [
+ q(0021),
+ q(0),
+ ],
+ q(BLZ) => [
+ q(0023),
+ q(0),
+ ],
+ q(BMU) => [
+ q(0025),
+ q(0),
+ ],
+ q(BOL) => [
+ q(0027),
+ q(0),
+ ],
+ q(BRA) => [
+ q(0032),
+ q(0),
+ ],
+ q(BRB) => [
+ q(0020),
+ q(0),
+ ],
+ q(BRN) => [
+ q(0034),
+ q(0),
+ ],
+ q(BTN) => [
+ q(0026),
+ q(0),
+ ],
+ q(BVT) => [
+ q(0031),
+ q(0),
+ ],
+ q(BWA) => [
+ q(0030),
+ q(0),
+ ],
+ q(CAF) => [
+ q(0043),
+ q(0),
+ ],
+ q(CAN) => [
+ q(0041),
+ q(0),
+ ],
+ q(CCK) => [
+ q(0048),
+ q(0),
+ ],
+ q(CHE) => [
+ q(0216),
+ q(0),
+ ],
+ q(CHL) => [
+ q(0045),
+ q(0),
+ ],
+ q(CHN) => [
+ q(0046),
+ q(0),
+ ],
+ q(CIV) => [
+ q(0055),
+ q(0),
+ ],
+ q(CMR) => [
+ q(0040),
+ q(0),
+ ],
+ q(COD) => [
+ q(0051),
+ q(0),
+ ],
+ q(COG) => [
+ q(0052),
+ q(0),
+ ],
+ q(COK) => [
+ q(0053),
+ q(0),
+ ],
+ q(COL) => [
+ q(0049),
+ q(0),
+ ],
+ q(COM) => [
+ q(0050),
+ q(0),
+ ],
+ q(CPV) => [
+ q(0038),
+ q(0),
+ ],
+ q(CRI) => [
+ q(0054),
+ q(0),
+ ],
+ q(CUB) => [
+ q(0057),
+ q(0),
+ ],
+ q(CUW) => [
+ q(0058),
+ q(0),
+ ],
+ q(CXR) => [
+ q(0047),
+ q(0),
+ ],
+ q(CYM) => [
+ q(0042),
+ q(0),
+ ],
+ q(CYP) => [
+ q(0059),
+ q(0),
+ ],
+ q(CZE) => [
+ q(0060),
+ q(0),
+ ],
+ q(DEU) => [
+ q(0083),
+ q(0),
+ ],
+ q(DJI) => [
+ q(0062),
+ q(0),
+ ],
+ q(DMA) => [
+ q(0063),
+ q(0),
+ ],
+ q(DNK) => [
+ q(0061),
+ q(0),
+ ],
+ q(DOM) => [
+ q(0064),
+ q(0),
+ ],
+ q(DZA) => [
+ q(0004),
+ q(0),
+ ],
+ q(ECU) => [
+ q(0065),
+ q(0),
+ ],
+ q(EGY) => [
+ q(0066),
+ q(0),
+ ],
+ q(ERI) => [
+ q(0069),
+ q(0),
+ ],
+ q(ESH) => [
+ q(0246),
+ q(0),
+ ],
+ q(ESP) => [
+ q(0209),
+ q(0),
+ ],
+ q(EST) => [
+ q(0070),
+ q(0),
+ ],
+ q(ETH) => [
+ q(0071),
+ q(0),
+ ],
+ q(FIN) => [
+ q(0075),
+ q(0),
+ ],
+ q(FJI) => [
+ q(0074),
+ q(0),
+ ],
+ q(FLK) => [
+ q(0072),
+ q(0),
+ ],
+ q(FRA) => [
+ q(0076),
+ q(0),
+ ],
+ q(FRO) => [
+ q(0073),
+ q(0),
+ ],
+ q(FSM) => [
+ q(0145),
+ q(0),
+ ],
+ q(GAB) => [
+ q(0080),
+ q(0),
+ ],
+ q(GBR) => [
+ q(0235),
+ q(0),
+ ],
+ q(GEO) => [
+ q(0082),
+ q(0),
+ ],
+ q(GGY) => [
+ q(0092),
+ q(0),
+ ],
+ q(GHA) => [
+ q(0084),
+ q(0),
+ ],
+ q(GIB) => [
+ q(0085),
+ q(0),
+ ],
+ q(GIN) => [
+ q(0093),
+ q(0),
+ ],
+ q(GLP) => [
+ q(0089),
+ q(0),
+ ],
+ q(GMB) => [
+ q(0081),
+ q(0),
+ ],
+ q(GNB) => [
+ q(0094),
+ q(0),
+ ],
+ q(GNQ) => [
+ q(0068),
+ q(0),
+ ],
+ q(GRC) => [
+ q(0086),
+ q(0),
+ ],
+ q(GRD) => [
+ q(0088),
+ q(0),
+ ],
+ q(GRL) => [
+ q(0087),
+ q(0),
+ ],
+ q(GTM) => [
+ q(0091),
+ q(0),
+ ],
+ q(GUF) => [
+ q(0077),
+ q(0),
+ ],
+ q(GUM) => [
+ q(0090),
+ q(0),
+ ],
+ q(GUY) => [
+ q(0095),
+ q(0),
+ ],
+ q(HKG) => [
+ q(0100),
+ q(0),
+ ],
+ q(HMD) => [
+ q(0097),
+ q(0),
+ ],
+ q(HND) => [
+ q(0099),
+ q(0),
+ ],
+ q(HRV) => [
+ q(0056),
+ q(0),
+ ],
+ q(HTI) => [
+ q(0096),
+ q(0),
+ ],
+ q(HUN) => [
+ q(0101),
+ q(0),
+ ],
+ q(IDN) => [
+ q(0104),
+ q(0),
+ ],
+ q(IMN) => [
+ q(0108),
+ q(0),
+ ],
+ q(IND) => [
+ q(0103),
+ q(0),
+ ],
+ q(IOT) => [
+ q(0033),
+ q(0),
+ ],
+ q(IRL) => [
+ q(0107),
+ q(0),
+ ],
+ q(IRN) => [
+ q(0105),
+ q(0),
+ ],
+ q(IRQ) => [
+ q(0106),
+ q(0),
+ ],
+ q(ISL) => [
+ q(0102),
+ q(0),
+ ],
+ q(ISR) => [
+ q(0109),
+ q(0),
+ ],
+ q(ITA) => [
+ q(0110),
+ q(0),
+ ],
+ q(JAM) => [
+ q(0111),
+ q(0),
+ ],
+ q(JEY) => [
+ q(0113),
+ q(0),
+ ],
+ q(JOR) => [
+ q(0114),
+ q(0),
+ ],
+ q(JPN) => [
+ q(0112),
+ q(0),
+ ],
+ q(KAZ) => [
+ q(0115),
+ q(0),
+ ],
+ q(KEN) => [
+ q(0116),
+ q(0),
+ ],
+ q(KGZ) => [
+ q(0121),
+ q(0),
+ ],
+ q(KHM) => [
+ q(0039),
+ q(0),
+ ],
+ q(KIR) => [
+ q(0117),
+ q(0),
+ ],
+ q(KNA) => [
+ q(0187),
+ q(0),
+ ],
+ q(KOR) => [
+ q(0119),
+ q(0),
+ ],
+ q(KWT) => [
+ q(0120),
+ q(0),
+ ],
+ q(LAO) => [
+ q(0122),
+ q(0),
+ ],
+ q(LBN) => [
+ q(0124),
+ q(0),
+ ],
+ q(LBR) => [
+ q(0126),
+ q(0),
+ ],
+ q(LBY) => [
+ q(0127),
+ q(0),
+ ],
+ q(LCA) => [
+ q(0188),
+ q(0),
+ ],
+ q(LIE) => [
+ q(0128),
+ q(0),
+ ],
+ q(LKA) => [
+ q(0210),
+ q(0),
+ ],
+ q(LSO) => [
+ q(0125),
+ q(0),
+ ],
+ q(LTU) => [
+ q(0129),
+ q(0),
+ ],
+ q(LUX) => [
+ q(0130),
+ q(0),
+ ],
+ q(LVA) => [
+ q(0123),
+ q(0),
+ ],
+ q(MAC) => [
+ q(0131),
+ q(0),
+ ],
+ q(MAF) => [
+ q(0189),
+ q(0),
+ ],
+ q(MAR) => [
+ q(0151),
+ q(0),
+ ],
+ q(MCO) => [
+ q(0147),
+ q(0),
+ ],
+ q(MDA) => [
+ q(0146),
+ q(0),
+ ],
+ q(MDG) => [
+ q(0133),
+ q(0),
+ ],
+ q(MDV) => [
+ q(0136),
+ q(0),
+ ],
+ q(MEX) => [
+ q(0144),
+ q(0),
+ ],
+ q(MHL) => [
+ q(0139),
+ q(0),
+ ],
+ q(MKD) => [
+ q(0132),
+ q(0),
+ ],
+ q(MLI) => [
+ q(0137),
+ q(0),
+ ],
+ q(MLT) => [
+ q(0138),
+ q(0),
+ ],
+ q(MMR) => [
+ q(0153),
+ q(0),
+ ],
+ q(MNE) => [
+ q(0149),
+ q(0),
+ ],
+ q(MNG) => [
+ q(0148),
+ q(0),
+ ],
+ q(MNP) => [
+ q(0165),
+ q(0),
+ ],
+ q(MOZ) => [
+ q(0152),
+ q(0),
+ ],
+ q(MRT) => [
+ q(0141),
+ q(0),
+ ],
+ q(MSR) => [
+ q(0150),
+ q(0),
+ ],
+ q(MTQ) => [
+ q(0140),
+ q(0),
+ ],
+ q(MUS) => [
+ q(0142),
+ q(0),
+ ],
+ q(MWI) => [
+ q(0134),
+ q(0),
+ ],
+ q(MYS) => [
+ q(0135),
+ q(0),
+ ],
+ q(MYT) => [
+ q(0143),
+ q(0),
+ ],
+ q(NAM) => [
+ q(0154),
+ q(0),
+ ],
+ q(NCL) => [
+ q(0158),
+ q(0),
+ ],
+ q(NER) => [
+ q(0161),
+ q(0),
+ ],
+ q(NFK) => [
+ q(0164),
+ q(0),
+ ],
+ q(NGA) => [
+ q(0162),
+ q(0),
+ ],
+ q(NIC) => [
+ q(0160),
+ q(0),
+ ],
+ q(NIU) => [
+ q(0163),
+ q(0),
+ ],
+ q(NLD) => [
+ q(0157),
+ q(0),
+ ],
+ q(NOR) => [
+ q(0166),
+ q(0),
+ ],
+ q(NPL) => [
+ q(0156),
+ q(0),
+ ],
+ q(NRU) => [
+ q(0155),
+ q(0),
+ ],
+ q(NZL) => [
+ q(0159),
+ q(0),
+ ],
+ q(OMN) => [
+ q(0167),
+ q(0),
+ ],
+ q(PAK) => [
+ q(0168),
+ q(0),
+ ],
+ q(PAN) => [
+ q(0171),
+ q(0),
+ ],
+ q(PCN) => [
+ q(0176),
+ q(0),
+ ],
+ q(PER) => [
+ q(0174),
+ q(0),
+ ],
+ q(PHL) => [
+ q(0175),
+ q(0),
+ ],
+ q(PLW) => [
+ q(0169),
+ q(0),
+ ],
+ q(PNG) => [
+ q(0172),
+ q(0),
+ ],
+ q(POL) => [
+ q(0177),
+ q(0),
+ ],
+ q(PRI) => [
+ q(0179),
+ q(0),
+ ],
+ q(PRK) => [
+ q(0118),
+ q(5),
+ ],
+ q(PRT) => [
+ q(0178),
+ q(0),
+ ],
+ q(PRY) => [
+ q(0173),
+ q(0),
+ ],
+ q(PSE) => [
+ q(0170),
+ q(0),
+ ],
+ q(PYF) => [
+ q(0078),
+ q(0),
+ ],
+ q(QAT) => [
+ q(0180),
+ q(0),
+ ],
+ q(REU) => [
+ q(0181),
+ q(0),
+ ],
+ q(ROU) => [
+ q(0182),
+ q(0),
+ ],
+ q(RUS) => [
+ q(0183),
+ q(0),
+ ],
+ q(RWA) => [
+ q(0184),
+ q(0),
+ ],
+ q(SAU) => [
+ q(0195),
+ q(0),
+ ],
+ q(SDN) => [
+ q(0211),
+ q(0),
+ ],
+ q(SEN) => [
+ q(0196),
+ q(0),
+ ],
+ q(SGP) => [
+ q(0200),
+ q(0),
+ ],
+ q(SGS) => [
+ q(0207),
+ q(0),
+ ],
+ q(SHN) => [
+ q(0186),
+ q(0),
+ ],
+ q(SJM) => [
+ q(0213),
+ q(0),
+ ],
+ q(SLB) => [
+ q(0204),
+ q(0),
+ ],
+ q(SLE) => [
+ q(0199),
+ q(0),
+ ],
+ q(SLV) => [
+ q(0067),
+ q(0),
+ ],
+ q(SMR) => [
+ q(0193),
+ q(0),
+ ],
+ q(SOM) => [
+ q(0205),
+ q(0),
+ ],
+ q(SPM) => [
+ q(0190),
+ q(0),
+ ],
+ q(SRB) => [
+ q(0197),
+ q(0),
+ ],
+ q(SSD) => [
+ q(0208),
+ q(0),
+ ],
+ q(STP) => [
+ q(0194),
+ q(0),
+ ],
+ q(SUR) => [
+ q(0212),
+ q(0),
+ ],
+ q(SVK) => [
+ q(0202),
+ q(0),
+ ],
+ q(SVN) => [
+ q(0203),
+ q(0),
+ ],
+ q(SWE) => [
+ q(0215),
+ q(0),
+ ],
+ q(SWZ) => [
+ q(0214),
+ q(0),
+ ],
+ q(SXM) => [
+ q(0201),
+ q(0),
+ ],
+ q(SYC) => [
+ q(0198),
+ q(0),
+ ],
+ q(SYR) => [
+ q(0217),
+ q(0),
+ ],
+ q(TCA) => [
+ q(0230),
+ q(0),
+ ],
+ q(TCD) => [
+ q(0044),
+ q(0),
+ ],
+ q(TGO) => [
+ q(0223),
+ q(0),
+ ],
+ q(THA) => [
+ q(0221),
+ q(0),
+ ],
+ q(TJK) => [
+ q(0219),
+ q(0),
+ ],
+ q(TKL) => [
+ q(0224),
+ q(0),
+ ],
+ q(TKM) => [
+ q(0229),
+ q(0),
+ ],
+ q(TLS) => [
+ q(0222),
+ q(0),
+ ],
+ q(TON) => [
+ q(0225),
+ q(0),
+ ],
+ q(TTO) => [
+ q(0226),
+ q(0),
+ ],
+ q(TUN) => [
+ q(0227),
+ q(0),
+ ],
+ q(TUR) => [
+ q(0228),
+ q(0),
+ ],
+ q(TUV) => [
+ q(0231),
+ q(0),
+ ],
+ q(TZA) => [
+ q(0220),
+ q(0),
+ ],
+ q(UGA) => [
+ q(0232),
+ q(0),
+ ],
+ q(UKR) => [
+ q(0233),
+ q(0),
+ ],
+ q(UMI) => [
+ q(0236),
+ q(0),
+ ],
+ q(URY) => [
+ q(0238),
+ q(0),
+ ],
+ q(USA) => [
+ q(0237),
+ q(0),
+ ],
+ q(UZB) => [
+ q(0239),
+ q(0),
+ ],
+ q(VAT) => [
+ q(0098),
+ q(0),
+ ],
+ q(VCT) => [
+ q(0191),
+ q(0),
+ ],
+ q(VEN) => [
+ q(0241),
+ q(0),
+ ],
+ q(VGB) => [
+ q(0243),
+ q(0),
+ ],
+ q(VIR) => [
+ q(0244),
+ q(0),
+ ],
+ q(VNM) => [
+ q(0242),
+ q(0),
+ ],
+ q(VUT) => [
+ q(0240),
+ q(0),
+ ],
+ q(WLF) => [
+ q(0245),
+ q(0),
+ ],
+ q(WSM) => [
+ q(0192),
+ q(0),
+ ],
+ q(YEM) => [
+ q(0247),
+ q(0),
+ ],
+ q(ZAF) => [
+ q(0206),
+ q(0),
+ ],
+ q(ZMB) => [
+ q(0248),
+ q(0),
+ ],
+ q(ZWE) => [
+ q(0249),
+ q(0),
+ ],
+ },
+ q(un-numeric) => {
+ q(004) => [
+ q(0001),
+ q(0),
+ ],
+ q(008) => [
+ q(0003),
+ q(0),
+ ],
+ q(010) => [
+ q(0009),
+ q(0),
+ ],
+ q(012) => [
+ q(0004),
+ q(0),
+ ],
+ q(016) => [
+ q(0005),
+ q(0),
+ ],
+ q(020) => [
+ q(0006),
+ q(0),
+ ],
+ q(024) => [
+ q(0007),
+ q(0),
+ ],
+ q(028) => [
+ q(0010),
+ q(0),
+ ],
+ q(031) => [
+ q(0016),
+ q(0),
+ ],
+ q(032) => [
+ q(0011),
+ q(0),
+ ],
+ q(036) => [
+ q(0014),
+ q(0),
+ ],
+ q(040) => [
+ q(0015),
+ q(0),
+ ],
+ q(044) => [
+ q(0017),
+ q(0),
+ ],
+ q(048) => [
+ q(0018),
+ q(0),
+ ],
+ q(050) => [
+ q(0019),
+ q(0),
+ ],
+ q(051) => [
+ q(0012),
+ q(0),
+ ],
+ q(052) => [
+ q(0020),
+ q(0),
+ ],
+ q(056) => [
+ q(0022),
+ q(0),
+ ],
+ q(060) => [
+ q(0025),
+ q(0),
+ ],
+ q(064) => [
+ q(0026),
+ q(0),
+ ],
+ q(068) => [
+ q(0027),
+ q(0),
+ ],
+ q(070) => [
+ q(0029),
+ q(0),
+ ],
+ q(072) => [
+ q(0030),
+ q(0),
+ ],
+ q(074) => [
+ q(0031),
+ q(0),
+ ],
+ q(076) => [
+ q(0032),
+ q(0),
+ ],
+ q(084) => [
+ q(0023),
+ q(0),
+ ],
+ q(086) => [
+ q(0033),
+ q(0),
+ ],
+ q(090) => [
+ q(0204),
+ q(0),
+ ],
+ q(092) => [
+ q(0243),
+ q(0),
+ ],
+ q(096) => [
+ q(0034),
+ q(0),
+ ],
+ q(100) => [
+ q(0035),
+ q(0),
+ ],
+ q(104) => [
+ q(0153),
+ q(0),
+ ],
+ q(108) => [
+ q(0037),
+ q(0),
+ ],
+ q(112) => [
+ q(0021),
+ q(0),
+ ],
+ q(116) => [
+ q(0039),
+ q(0),
+ ],
+ q(120) => [
+ q(0040),
+ q(0),
+ ],
+ q(124) => [
+ q(0041),
+ q(0),
+ ],
+ q(132) => [
+ q(0038),
+ q(0),
+ ],
+ q(136) => [
+ q(0042),
+ q(0),
+ ],
+ q(140) => [
+ q(0043),
+ q(0),
+ ],
+ q(144) => [
+ q(0210),
+ q(0),
+ ],
+ q(148) => [
+ q(0044),
+ q(0),
+ ],
+ q(152) => [
+ q(0045),
+ q(0),
+ ],
+ q(156) => [
+ q(0046),
+ q(0),
+ ],
+ q(162) => [
+ q(0047),
+ q(0),
+ ],
+ q(166) => [
+ q(0048),
+ q(0),
+ ],
+ q(170) => [
+ q(0049),
+ q(0),
+ ],
+ q(174) => [
+ q(0050),
+ q(0),
+ ],
+ q(175) => [
+ q(0143),
+ q(0),
+ ],
+ q(178) => [
+ q(0052),
+ q(0),
+ ],
+ q(180) => [
+ q(0051),
+ q(0),
+ ],
+ q(184) => [
+ q(0053),
+ q(0),
+ ],
+ q(188) => [
+ q(0054),
+ q(0),
+ ],
+ q(191) => [
+ q(0056),
+ q(0),
+ ],
+ q(192) => [
+ q(0057),
+ q(0),
+ ],
+ q(196) => [
+ q(0059),
+ q(0),
+ ],
+ q(203) => [
+ q(0060),
+ q(0),
+ ],
+ q(204) => [
+ q(0024),
+ q(0),
+ ],
+ q(208) => [
+ q(0061),
+ q(0),
+ ],
+ q(212) => [
+ q(0063),
+ q(0),
+ ],
+ q(214) => [
+ q(0064),
+ q(0),
+ ],
+ q(218) => [
+ q(0065),
+ q(0),
+ ],
+ q(222) => [
+ q(0067),
+ q(0),
+ ],
+ q(226) => [
+ q(0068),
+ q(0),
+ ],
+ q(231) => [
+ q(0071),
+ q(0),
+ ],
+ q(232) => [
+ q(0069),
+ q(0),
+ ],
+ q(233) => [
+ q(0070),
+ q(0),
+ ],
+ q(234) => [
+ q(0073),
+ q(0),
+ ],
+ q(238) => [
+ q(0072),
+ q(0),
+ ],
+ q(239) => [
+ q(0207),
+ q(0),
+ ],
+ q(242) => [
+ q(0074),
+ q(0),
+ ],
+ q(246) => [
+ q(0075),
+ q(0),
+ ],
+ q(248) => [
+ q(0002),
+ q(0),
+ ],
+ q(250) => [
+ q(0076),
+ q(0),
+ ],
+ q(254) => [
+ q(0077),
+ q(0),
+ ],
+ q(258) => [
+ q(0078),
+ q(0),
+ ],
+ q(260) => [
+ q(0079),
+ q(0),
+ ],
+ q(262) => [
+ q(0062),
+ q(0),
+ ],
+ q(266) => [
+ q(0080),
+ q(0),
+ ],
+ q(268) => [
+ q(0082),
+ q(0),
+ ],
+ q(270) => [
+ q(0081),
+ q(0),
+ ],
+ q(275) => [
+ q(0170),
+ q(0),
+ ],
+ q(276) => [
+ q(0083),
+ q(0),
+ ],
+ q(288) => [
+ q(0084),
+ q(0),
+ ],
+ q(292) => [
+ q(0085),
+ q(0),
+ ],
+ q(296) => [
+ q(0117),
+ q(0),
+ ],
+ q(300) => [
+ q(0086),
+ q(0),
+ ],
+ q(304) => [
+ q(0087),
+ q(0),
+ ],
+ q(308) => [
+ q(0088),
+ q(0),
+ ],
+ q(312) => [
+ q(0089),
+ q(0),
+ ],
+ q(316) => [
+ q(0090),
+ q(0),
+ ],
+ q(320) => [
+ q(0091),
+ q(0),
+ ],
+ q(324) => [
+ q(0093),
+ q(0),
+ ],
+ q(328) => [
+ q(0095),
+ q(0),
+ ],
+ q(332) => [
+ q(0096),
+ q(0),
+ ],
+ q(334) => [
+ q(0097),
+ q(0),
+ ],
+ q(336) => [
+ q(0098),
+ q(0),
+ ],
+ q(340) => [
+ q(0099),
+ q(0),
+ ],
+ q(344) => [
+ q(0100),
+ q(0),
+ ],
+ q(348) => [
+ q(0101),
+ q(0),
+ ],
+ q(352) => [
+ q(0102),
+ q(0),
+ ],
+ q(356) => [
+ q(0103),
+ q(0),
+ ],
+ q(360) => [
+ q(0104),
+ q(0),
+ ],
+ q(364) => [
+ q(0105),
+ q(0),
+ ],
+ q(368) => [
+ q(0106),
+ q(0),
+ ],
+ q(372) => [
+ q(0107),
+ q(0),
+ ],
+ q(376) => [
+ q(0109),
+ q(0),
+ ],
+ q(380) => [
+ q(0110),
+ q(0),
+ ],
+ q(384) => [
+ q(0055),
+ q(0),
+ ],
+ q(388) => [
+ q(0111),
+ q(0),
+ ],
+ q(392) => [
+ q(0112),
+ q(0),
+ ],
+ q(398) => [
+ q(0115),
+ q(0),
+ ],
+ q(400) => [
+ q(0114),
+ q(0),
+ ],
+ q(404) => [
+ q(0116),
+ q(0),
+ ],
+ q(408) => [
+ q(0118),
+ q(5),
+ ],
+ q(410) => [
+ q(0119),
+ q(0),
+ ],
+ q(414) => [
+ q(0120),
+ q(0),
+ ],
+ q(417) => [
+ q(0121),
+ q(0),
+ ],
+ q(418) => [
+ q(0122),
+ q(0),
+ ],
+ q(422) => [
+ q(0124),
+ q(0),
+ ],
+ q(426) => [
+ q(0125),
+ q(0),
+ ],
+ q(428) => [
+ q(0123),
+ q(0),
+ ],
+ q(430) => [
+ q(0126),
+ q(0),
+ ],
+ q(434) => [
+ q(0127),
+ q(0),
+ ],
+ q(438) => [
+ q(0128),
+ q(0),
+ ],
+ q(440) => [
+ q(0129),
+ q(0),
+ ],
+ q(442) => [
+ q(0130),
+ q(0),
+ ],
+ q(446) => [
+ q(0131),
+ q(0),
+ ],
+ q(450) => [
+ q(0133),
+ q(0),
+ ],
+ q(454) => [
+ q(0134),
+ q(0),
+ ],
+ q(458) => [
+ q(0135),
+ q(0),
+ ],
+ q(462) => [
+ q(0136),
+ q(0),
+ ],
+ q(466) => [
+ q(0137),
+ q(0),
+ ],
+ q(470) => [
+ q(0138),
+ q(0),
+ ],
+ q(474) => [
+ q(0140),
+ q(0),
+ ],
+ q(478) => [
+ q(0141),
+ q(0),
+ ],
+ q(480) => [
+ q(0142),
+ q(0),
+ ],
+ q(484) => [
+ q(0144),
+ q(0),
+ ],
+ q(492) => [
+ q(0147),
+ q(0),
+ ],
+ q(496) => [
+ q(0148),
+ q(0),
+ ],
+ q(498) => [
+ q(0146),
+ q(0),
+ ],
+ q(499) => [
+ q(0149),
+ q(0),
+ ],
+ q(500) => [
+ q(0150),
+ q(0),
+ ],
+ q(504) => [
+ q(0151),
+ q(0),
+ ],
+ q(508) => [
+ q(0152),
+ q(0),
+ ],
+ q(512) => [
+ q(0167),
+ q(0),
+ ],
+ q(516) => [
+ q(0154),
+ q(0),
+ ],
+ q(520) => [
+ q(0155),
+ q(0),
+ ],
+ q(524) => [
+ q(0156),
+ q(0),
+ ],
+ q(528) => [
+ q(0157),
+ q(0),
+ ],
+ q(531) => [
+ q(0058),
+ q(0),
+ ],
+ q(533) => [
+ q(0013),
+ q(0),
+ ],
+ q(534) => [
+ q(0201),
+ q(0),
+ ],
+ q(535) => [
+ q(0028),
+ q(0),
+ ],
+ q(540) => [
+ q(0158),
+ q(0),
+ ],
+ q(548) => [
+ q(0240),
+ q(0),
+ ],
+ q(554) => [
+ q(0159),
+ q(0),
+ ],
+ q(558) => [
+ q(0160),
+ q(0),
+ ],
+ q(562) => [
+ q(0161),
+ q(0),
+ ],
+ q(566) => [
+ q(0162),
+ q(0),
+ ],
+ q(570) => [
+ q(0163),
+ q(0),
+ ],
+ q(574) => [
+ q(0164),
+ q(0),
+ ],
+ q(578) => [
+ q(0166),
+ q(0),
+ ],
+ q(580) => [
+ q(0165),
+ q(0),
+ ],
+ q(581) => [
+ q(0236),
+ q(0),
+ ],
+ q(583) => [
+ q(0145),
+ q(0),
+ ],
+ q(584) => [
+ q(0139),
+ q(0),
+ ],
+ q(585) => [
+ q(0169),
+ q(0),
+ ],
+ q(586) => [
+ q(0168),
+ q(0),
+ ],
+ q(591) => [
+ q(0171),
+ q(0),
+ ],
+ q(598) => [
+ q(0172),
+ q(0),
+ ],
+ q(600) => [
+ q(0173),
+ q(0),
+ ],
+ q(604) => [
+ q(0174),
+ q(0),
+ ],
+ q(608) => [
+ q(0175),
+ q(0),
+ ],
+ q(612) => [
+ q(0176),
+ q(0),
+ ],
+ q(616) => [
+ q(0177),
+ q(0),
+ ],
+ q(620) => [
+ q(0178),
+ q(0),
+ ],
+ q(624) => [
+ q(0094),
+ q(0),
+ ],
+ q(626) => [
+ q(0222),
+ q(0),
+ ],
+ q(630) => [
+ q(0179),
+ q(0),
+ ],
+ q(634) => [
+ q(0180),
+ q(0),
+ ],
+ q(638) => [
+ q(0181),
+ q(0),
+ ],
+ q(642) => [
+ q(0182),
+ q(0),
+ ],
+ q(643) => [
+ q(0183),
+ q(0),
+ ],
+ q(646) => [
+ q(0184),
+ q(0),
+ ],
+ q(652) => [
+ q(0185),
+ q(0),
+ ],
+ q(654) => [
+ q(0186),
+ q(0),
+ ],
+ q(659) => [
+ q(0187),
+ q(0),
+ ],
+ q(660) => [
+ q(0008),
+ q(0),
+ ],
+ q(662) => [
+ q(0188),
+ q(0),
+ ],
+ q(663) => [
+ q(0189),
+ q(0),
+ ],
+ q(666) => [
+ q(0190),
+ q(0),
+ ],
+ q(670) => [
+ q(0191),
+ q(0),
+ ],
+ q(674) => [
+ q(0193),
+ q(0),
+ ],
+ q(678) => [
+ q(0194),
+ q(0),
+ ],
+ q(680) => [
+ q(0250),
+ q(0),
+ ],
+ q(682) => [
+ q(0195),
+ q(0),
+ ],
+ q(686) => [
+ q(0196),
+ q(0),
+ ],
+ q(688) => [
+ q(0197),
+ q(0),
+ ],
+ q(690) => [
+ q(0198),
+ q(0),
+ ],
+ q(694) => [
+ q(0199),
+ q(0),
+ ],
+ q(702) => [
+ q(0200),
+ q(0),
+ ],
+ q(703) => [
+ q(0202),
+ q(0),
+ ],
+ q(704) => [
+ q(0242),
+ q(0),
+ ],
+ q(705) => [
+ q(0203),
+ q(0),
+ ],
+ q(706) => [
+ q(0205),
+ q(0),
+ ],
+ q(710) => [
+ q(0206),
+ q(0),
+ ],
+ q(716) => [
+ q(0249),
+ q(0),
+ ],
+ q(724) => [
+ q(0209),
+ q(0),
+ ],
+ q(728) => [
+ q(0208),
+ q(0),
+ ],
+ q(729) => [
+ q(0211),
+ q(0),
+ ],
+ q(732) => [
+ q(0246),
+ q(0),
+ ],
+ q(740) => [
+ q(0212),
+ q(0),
+ ],
+ q(744) => [
+ q(0213),
+ q(0),
+ ],
+ q(748) => [
+ q(0214),
+ q(0),
+ ],
+ q(752) => [
+ q(0215),
+ q(0),
+ ],
+ q(756) => [
+ q(0216),
+ q(0),
+ ],
+ q(760) => [
+ q(0217),
+ q(0),
+ ],
+ q(762) => [
+ q(0219),
+ q(0),
+ ],
+ q(764) => [
+ q(0221),
+ q(0),
+ ],
+ q(768) => [
+ q(0223),
+ q(0),
+ ],
+ q(772) => [
+ q(0224),
+ q(0),
+ ],
+ q(776) => [
+ q(0225),
+ q(0),
+ ],
+ q(780) => [
+ q(0226),
+ q(0),
+ ],
+ q(784) => [
+ q(0234),
+ q(0),
+ ],
+ q(788) => [
+ q(0227),
+ q(0),
+ ],
+ q(792) => [
+ q(0228),
+ q(0),
+ ],
+ q(795) => [
+ q(0229),
+ q(0),
+ ],
+ q(796) => [
+ q(0230),
+ q(0),
+ ],
+ q(798) => [
+ q(0231),
+ q(0),
+ ],
+ q(800) => [
+ q(0232),
+ q(0),
+ ],
+ q(804) => [
+ q(0233),
+ q(0),
+ ],
+ q(807) => [
+ q(0132),
+ q(0),
+ ],
+ q(818) => [
+ q(0066),
+ q(0),
+ ],
+ q(826) => [
+ q(0235),
+ q(0),
+ ],
+ q(831) => [
+ q(0092),
+ q(0),
+ ],
+ q(832) => [
+ q(0113),
+ q(0),
+ ],
+ q(833) => [
+ q(0108),
+ q(0),
+ ],
+ q(834) => [
+ q(0220),
+ q(0),
+ ],
+ q(840) => [
+ q(0237),
+ q(0),
+ ],
+ q(850) => [
+ q(0244),
+ q(0),
+ ],
+ q(854) => [
+ q(0036),
+ q(0),
+ ],
+ q(858) => [
+ q(0238),
+ q(0),
+ ],
+ q(860) => [
+ q(0239),
+ q(0),
+ ],
+ q(862) => [
+ q(0241),
+ q(0),
+ ],
+ q(876) => [
+ q(0245),
+ q(0),
+ ],
+ q(882) => [
+ q(0192),
+ q(0),
+ ],
+ q(887) => [
+ q(0247),
+ q(0),
+ ],
+ q(894) => [
+ q(0248),
+ q(0),
+ ],
+ },
};
$Locale::Codes::Data{'country'}{'id2code'} = {
@@ -7628,6 +13179,834 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0248) => q(zm),
q(0249) => q(zw),
},
+ q(genc-alpha-2) => {
+ q(0001) => q(AF),
+ q(0003) => q(AL),
+ q(0004) => q(DZ),
+ q(0005) => q(AS),
+ q(0006) => q(AD),
+ q(0007) => q(AO),
+ q(0008) => q(AI),
+ q(0009) => q(AQ),
+ q(0010) => q(AG),
+ q(0011) => q(AR),
+ q(0012) => q(AM),
+ q(0013) => q(AW),
+ q(0014) => q(AU),
+ q(0015) => q(AT),
+ q(0016) => q(AZ),
+ q(0017) => q(BS),
+ q(0018) => q(BH),
+ q(0019) => q(BD),
+ q(0020) => q(BB),
+ q(0021) => q(BY),
+ q(0022) => q(BE),
+ q(0023) => q(BZ),
+ q(0024) => q(BJ),
+ q(0025) => q(BM),
+ q(0026) => q(BT),
+ q(0027) => q(BO),
+ q(0028) => q(BQ),
+ q(0029) => q(BA),
+ q(0030) => q(BW),
+ q(0031) => q(BV),
+ q(0032) => q(BR),
+ q(0033) => q(IO),
+ q(0034) => q(BN),
+ q(0035) => q(BG),
+ q(0036) => q(BF),
+ q(0037) => q(BI),
+ q(0038) => q(CV),
+ q(0039) => q(KH),
+ q(0040) => q(CM),
+ q(0041) => q(CA),
+ q(0042) => q(KY),
+ q(0043) => q(CF),
+ q(0044) => q(TD),
+ q(0045) => q(CL),
+ q(0046) => q(CN),
+ q(0047) => q(CX),
+ q(0048) => q(CC),
+ q(0049) => q(CO),
+ q(0050) => q(KM),
+ q(0051) => q(CD),
+ q(0052) => q(CG),
+ q(0053) => q(CK),
+ q(0054) => q(CR),
+ q(0055) => q(CI),
+ q(0056) => q(HR),
+ q(0057) => q(CU),
+ q(0058) => q(CW),
+ q(0059) => q(CY),
+ q(0060) => q(CZ),
+ q(0061) => q(DK),
+ q(0062) => q(DJ),
+ q(0063) => q(DM),
+ q(0064) => q(DO),
+ q(0065) => q(EC),
+ q(0066) => q(EG),
+ q(0067) => q(SV),
+ q(0068) => q(GQ),
+ q(0069) => q(ER),
+ q(0070) => q(EE),
+ q(0071) => q(ET),
+ q(0072) => q(FK),
+ q(0073) => q(FO),
+ q(0074) => q(FJ),
+ q(0075) => q(FI),
+ q(0076) => q(FR),
+ q(0077) => q(GF),
+ q(0078) => q(PF),
+ q(0079) => q(TF),
+ q(0080) => q(GA),
+ q(0081) => q(GM),
+ q(0082) => q(GE),
+ q(0083) => q(DE),
+ q(0084) => q(GH),
+ q(0085) => q(GI),
+ q(0086) => q(GR),
+ q(0087) => q(GL),
+ q(0088) => q(GD),
+ q(0089) => q(GP),
+ q(0090) => q(GU),
+ q(0091) => q(GT),
+ q(0092) => q(GG),
+ q(0093) => q(GN),
+ q(0094) => q(GW),
+ q(0095) => q(GY),
+ q(0096) => q(HT),
+ q(0097) => q(HM),
+ q(0098) => q(VA),
+ q(0099) => q(HN),
+ q(0100) => q(HK),
+ q(0101) => q(HU),
+ q(0102) => q(IS),
+ q(0103) => q(IN),
+ q(0104) => q(ID),
+ q(0105) => q(IR),
+ q(0106) => q(IQ),
+ q(0107) => q(IE),
+ q(0108) => q(IM),
+ q(0109) => q(IL),
+ q(0110) => q(IT),
+ q(0111) => q(JM),
+ q(0112) => q(JP),
+ q(0113) => q(JE),
+ q(0114) => q(JO),
+ q(0115) => q(KZ),
+ q(0116) => q(KE),
+ q(0117) => q(KI),
+ q(0118) => q(KP),
+ q(0119) => q(KR),
+ q(0120) => q(KW),
+ q(0121) => q(KG),
+ q(0122) => q(LA),
+ q(0123) => q(LV),
+ q(0124) => q(LB),
+ q(0125) => q(LS),
+ q(0126) => q(LR),
+ q(0127) => q(LY),
+ q(0128) => q(LI),
+ q(0129) => q(LT),
+ q(0130) => q(LU),
+ q(0131) => q(MO),
+ q(0132) => q(MK),
+ q(0133) => q(MG),
+ q(0134) => q(MW),
+ q(0135) => q(MY),
+ q(0136) => q(MV),
+ q(0137) => q(ML),
+ q(0138) => q(MT),
+ q(0139) => q(MH),
+ q(0140) => q(MQ),
+ q(0141) => q(MR),
+ q(0142) => q(MU),
+ q(0143) => q(YT),
+ q(0144) => q(MX),
+ q(0145) => q(FM),
+ q(0146) => q(MD),
+ q(0147) => q(MC),
+ q(0148) => q(MN),
+ q(0149) => q(ME),
+ q(0150) => q(MS),
+ q(0151) => q(MA),
+ q(0152) => q(MZ),
+ q(0153) => q(MM),
+ q(0154) => q(NA),
+ q(0155) => q(NR),
+ q(0156) => q(NP),
+ q(0157) => q(NL),
+ q(0158) => q(NC),
+ q(0159) => q(NZ),
+ q(0160) => q(NI),
+ q(0161) => q(NE),
+ q(0162) => q(NG),
+ q(0163) => q(NU),
+ q(0164) => q(NF),
+ q(0165) => q(MP),
+ q(0166) => q(NO),
+ q(0167) => q(OM),
+ q(0168) => q(PK),
+ q(0169) => q(PW),
+ q(0171) => q(PA),
+ q(0172) => q(PG),
+ q(0173) => q(PY),
+ q(0174) => q(PE),
+ q(0175) => q(PH),
+ q(0176) => q(PN),
+ q(0177) => q(PL),
+ q(0178) => q(PT),
+ q(0179) => q(PR),
+ q(0180) => q(QA),
+ q(0181) => q(RE),
+ q(0182) => q(RO),
+ q(0183) => q(RU),
+ q(0184) => q(RW),
+ q(0185) => q(BL),
+ q(0186) => q(SH),
+ q(0187) => q(KN),
+ q(0188) => q(LC),
+ q(0189) => q(MF),
+ q(0190) => q(PM),
+ q(0191) => q(VC),
+ q(0192) => q(WS),
+ q(0193) => q(SM),
+ q(0194) => q(ST),
+ q(0195) => q(SA),
+ q(0196) => q(SN),
+ q(0197) => q(RS),
+ q(0198) => q(SC),
+ q(0199) => q(SL),
+ q(0200) => q(SG),
+ q(0201) => q(SX),
+ q(0202) => q(SK),
+ q(0203) => q(SI),
+ q(0204) => q(SB),
+ q(0205) => q(SO),
+ q(0206) => q(ZA),
+ q(0207) => q(GS),
+ q(0208) => q(SS),
+ q(0209) => q(ES),
+ q(0210) => q(LK),
+ q(0211) => q(SD),
+ q(0212) => q(SR),
+ q(0214) => q(SZ),
+ q(0215) => q(SE),
+ q(0216) => q(CH),
+ q(0217) => q(SY),
+ q(0218) => q(TW),
+ q(0219) => q(TJ),
+ q(0220) => q(TZ),
+ q(0221) => q(TH),
+ q(0222) => q(TL),
+ q(0223) => q(TG),
+ q(0224) => q(TK),
+ q(0225) => q(TO),
+ q(0226) => q(TT),
+ q(0227) => q(TN),
+ q(0228) => q(TR),
+ q(0229) => q(TM),
+ q(0230) => q(TC),
+ q(0231) => q(TV),
+ q(0232) => q(UG),
+ q(0233) => q(UA),
+ q(0234) => q(AE),
+ q(0235) => q(GB),
+ q(0237) => q(US),
+ q(0238) => q(UY),
+ q(0239) => q(UZ),
+ q(0240) => q(VU),
+ q(0241) => q(VE),
+ q(0242) => q(VN),
+ q(0243) => q(VG),
+ q(0244) => q(VI),
+ q(0245) => q(WF),
+ q(0246) => q(EH),
+ q(0247) => q(YE),
+ q(0248) => q(ZM),
+ q(0249) => q(ZW),
+ q(0251) => q(QZ),
+ q(0252) => q(XA),
+ q(0253) => q(XB),
+ q(0254) => q(QS),
+ q(0255) => q(CP),
+ q(0256) => q(XC),
+ q(0257) => q(XD),
+ q(0258) => q(DG),
+ q(0259) => q(XE),
+ q(0260) => q(XG),
+ q(0261) => q(QX),
+ q(0262) => q(A2),
+ q(0263) => q(XH),
+ q(0264) => q(XJ),
+ q(0265) => q(XQ),
+ q(0266) => q(XU),
+ q(0267) => q(QU),
+ q(0268) => q(XM),
+ q(0269) => q(XK),
+ q(0270) => q(QM),
+ q(0271) => q(XV),
+ q(0272) => q(XL),
+ q(0273) => q(XP),
+ q(0274) => q(XS),
+ q(0275) => q(XR),
+ q(0276) => q(XT),
+ q(0277) => q(A1),
+ q(0278) => q(QW),
+ q(0279) => q(XW),
+ },
+ q(genc-alpha-3) => {
+ q(0001) => q(AFG),
+ q(0003) => q(ALB),
+ q(0004) => q(DZA),
+ q(0005) => q(ASM),
+ q(0006) => q(AND),
+ q(0007) => q(AGO),
+ q(0008) => q(AIA),
+ q(0009) => q(ATA),
+ q(0010) => q(ATG),
+ q(0011) => q(ARG),
+ q(0012) => q(ARM),
+ q(0013) => q(ABW),
+ q(0014) => q(AUS),
+ q(0015) => q(AUT),
+ q(0016) => q(AZE),
+ q(0017) => q(BHS),
+ q(0018) => q(BHR),
+ q(0019) => q(BGD),
+ q(0020) => q(BRB),
+ q(0021) => q(BLR),
+ q(0022) => q(BEL),
+ q(0023) => q(BLZ),
+ q(0024) => q(BEN),
+ q(0025) => q(BMU),
+ q(0026) => q(BTN),
+ q(0027) => q(BOL),
+ q(0028) => q(BES),
+ q(0029) => q(BIH),
+ q(0030) => q(BWA),
+ q(0031) => q(BVT),
+ q(0032) => q(BRA),
+ q(0033) => q(IOT),
+ q(0034) => q(BRN),
+ q(0035) => q(BGR),
+ q(0036) => q(BFA),
+ q(0037) => q(BDI),
+ q(0038) => q(CPV),
+ q(0039) => q(KHM),
+ q(0040) => q(CMR),
+ q(0041) => q(CAN),
+ q(0042) => q(CYM),
+ q(0043) => q(CAF),
+ q(0044) => q(TCD),
+ q(0045) => q(CHL),
+ q(0046) => q(CHN),
+ q(0047) => q(CXR),
+ q(0048) => q(CCK),
+ q(0049) => q(COL),
+ q(0050) => q(COM),
+ q(0051) => q(COD),
+ q(0052) => q(COG),
+ q(0053) => q(COK),
+ q(0054) => q(CRI),
+ q(0055) => q(CIV),
+ q(0056) => q(HRV),
+ q(0057) => q(CUB),
+ q(0058) => q(CUW),
+ q(0059) => q(CYP),
+ q(0060) => q(CZE),
+ q(0061) => q(DNK),
+ q(0062) => q(DJI),
+ q(0063) => q(DMA),
+ q(0064) => q(DOM),
+ q(0065) => q(ECU),
+ q(0066) => q(EGY),
+ q(0067) => q(SLV),
+ q(0068) => q(GNQ),
+ q(0069) => q(ERI),
+ q(0070) => q(EST),
+ q(0071) => q(ETH),
+ q(0072) => q(FLK),
+ q(0073) => q(FRO),
+ q(0074) => q(FJI),
+ q(0075) => q(FIN),
+ q(0076) => q(FRA),
+ q(0077) => q(GUF),
+ q(0078) => q(PYF),
+ q(0079) => q(ATF),
+ q(0080) => q(GAB),
+ q(0081) => q(GMB),
+ q(0082) => q(GEO),
+ q(0083) => q(DEU),
+ q(0084) => q(GHA),
+ q(0085) => q(GIB),
+ q(0086) => q(GRC),
+ q(0087) => q(GRL),
+ q(0088) => q(GRD),
+ q(0089) => q(GLP),
+ q(0090) => q(GUM),
+ q(0091) => q(GTM),
+ q(0092) => q(GGY),
+ q(0093) => q(GIN),
+ q(0094) => q(GNB),
+ q(0095) => q(GUY),
+ q(0096) => q(HTI),
+ q(0097) => q(HMD),
+ q(0098) => q(VAT),
+ q(0099) => q(HND),
+ q(0100) => q(HKG),
+ q(0101) => q(HUN),
+ q(0102) => q(ISL),
+ q(0103) => q(IND),
+ q(0104) => q(IDN),
+ q(0105) => q(IRN),
+ q(0106) => q(IRQ),
+ q(0107) => q(IRL),
+ q(0108) => q(IMN),
+ q(0109) => q(ISR),
+ q(0110) => q(ITA),
+ q(0111) => q(JAM),
+ q(0112) => q(JPN),
+ q(0113) => q(JEY),
+ q(0114) => q(JOR),
+ q(0115) => q(KAZ),
+ q(0116) => q(KEN),
+ q(0117) => q(KIR),
+ q(0118) => q(PRK),
+ q(0119) => q(KOR),
+ q(0120) => q(KWT),
+ q(0121) => q(KGZ),
+ q(0122) => q(LAO),
+ q(0123) => q(LVA),
+ q(0124) => q(LBN),
+ q(0125) => q(LSO),
+ q(0126) => q(LBR),
+ q(0127) => q(LBY),
+ q(0128) => q(LIE),
+ q(0129) => q(LTU),
+ q(0130) => q(LUX),
+ q(0131) => q(MAC),
+ q(0132) => q(MKD),
+ q(0133) => q(MDG),
+ q(0134) => q(MWI),
+ q(0135) => q(MYS),
+ q(0136) => q(MDV),
+ q(0137) => q(MLI),
+ q(0138) => q(MLT),
+ q(0139) => q(MHL),
+ q(0140) => q(MTQ),
+ q(0141) => q(MRT),
+ q(0142) => q(MUS),
+ q(0143) => q(MYT),
+ q(0144) => q(MEX),
+ q(0145) => q(FSM),
+ q(0146) => q(MDA),
+ q(0147) => q(MCO),
+ q(0148) => q(MNG),
+ q(0149) => q(MNE),
+ q(0150) => q(MSR),
+ q(0151) => q(MAR),
+ q(0152) => q(MOZ),
+ q(0153) => q(MMR),
+ q(0154) => q(NAM),
+ q(0155) => q(NRU),
+ q(0156) => q(NPL),
+ q(0157) => q(NLD),
+ q(0158) => q(NCL),
+ q(0159) => q(NZL),
+ q(0160) => q(NIC),
+ q(0161) => q(NER),
+ q(0162) => q(NGA),
+ q(0163) => q(NIU),
+ q(0164) => q(NFK),
+ q(0165) => q(MNP),
+ q(0166) => q(NOR),
+ q(0167) => q(OMN),
+ q(0168) => q(PAK),
+ q(0169) => q(PLW),
+ q(0171) => q(PAN),
+ q(0172) => q(PNG),
+ q(0173) => q(PRY),
+ q(0174) => q(PER),
+ q(0175) => q(PHL),
+ q(0176) => q(PCN),
+ q(0177) => q(POL),
+ q(0178) => q(PRT),
+ q(0179) => q(PRI),
+ q(0180) => q(QAT),
+ q(0181) => q(REU),
+ q(0182) => q(ROU),
+ q(0183) => q(RUS),
+ q(0184) => q(RWA),
+ q(0185) => q(BLM),
+ q(0186) => q(SHN),
+ q(0187) => q(KNA),
+ q(0188) => q(LCA),
+ q(0189) => q(MAF),
+ q(0190) => q(SPM),
+ q(0191) => q(VCT),
+ q(0192) => q(WSM),
+ q(0193) => q(SMR),
+ q(0194) => q(STP),
+ q(0195) => q(SAU),
+ q(0196) => q(SEN),
+ q(0197) => q(SRB),
+ q(0198) => q(SYC),
+ q(0199) => q(SLE),
+ q(0200) => q(SGP),
+ q(0201) => q(SXM),
+ q(0202) => q(SVK),
+ q(0203) => q(SVN),
+ q(0204) => q(SLB),
+ q(0205) => q(SOM),
+ q(0206) => q(ZAF),
+ q(0207) => q(SGS),
+ q(0208) => q(SSD),
+ q(0209) => q(ESP),
+ q(0210) => q(LKA),
+ q(0211) => q(SDN),
+ q(0212) => q(SUR),
+ q(0214) => q(SWZ),
+ q(0215) => q(SWE),
+ q(0216) => q(CHE),
+ q(0217) => q(SYR),
+ q(0218) => q(TWN),
+ q(0219) => q(TJK),
+ q(0220) => q(TZA),
+ q(0221) => q(THA),
+ q(0222) => q(TLS),
+ q(0223) => q(TGO),
+ q(0224) => q(TKL),
+ q(0225) => q(TON),
+ q(0226) => q(TTO),
+ q(0227) => q(TUN),
+ q(0228) => q(TUR),
+ q(0229) => q(TKM),
+ q(0230) => q(TCA),
+ q(0231) => q(TUV),
+ q(0232) => q(UGA),
+ q(0233) => q(UKR),
+ q(0234) => q(ARE),
+ q(0235) => q(GBR),
+ q(0237) => q(USA),
+ q(0238) => q(URY),
+ q(0239) => q(UZB),
+ q(0240) => q(VUT),
+ q(0241) => q(VEN),
+ q(0242) => q(VNM),
+ q(0243) => q(VGB),
+ q(0244) => q(VIR),
+ q(0245) => q(WLF),
+ q(0246) => q(ESH),
+ q(0247) => q(YEM),
+ q(0248) => q(ZMB),
+ q(0249) => q(ZWE),
+ q(0251) => q(XQZ),
+ q(0252) => q(XAC),
+ q(0253) => q(XBK),
+ q(0254) => q(XBI),
+ q(0255) => q(CPT),
+ q(0256) => q(XCS),
+ q(0257) => q(XXD),
+ q(0258) => q(DGA),
+ q(0259) => q(XEU),
+ q(0260) => q(XGZ),
+ q(0261) => q(XGL),
+ q(0262) => q(AX2),
+ q(0263) => q(XHO),
+ q(0264) => q(XJM),
+ q(0265) => q(XJV),
+ q(0266) => q(XJA),
+ q(0267) => q(XJN),
+ q(0268) => q(XKR),
+ q(0269) => q(XKS),
+ q(0270) => q(XMW),
+ q(0271) => q(XNV),
+ q(0272) => q(XPL),
+ q(0273) => q(XPR),
+ q(0274) => q(XSP),
+ q(0275) => q(XSV),
+ q(0276) => q(XTR),
+ q(0277) => q(AX1),
+ q(0278) => q(XWK),
+ q(0279) => q(XWB),
+ },
+ q(genc-numeric) => {
+ q(0001) => q(004),
+ q(0003) => q(008),
+ q(0004) => q(012),
+ q(0005) => q(016),
+ q(0006) => q(020),
+ q(0007) => q(024),
+ q(0008) => q(660),
+ q(0009) => q(010),
+ q(0010) => q(028),
+ q(0011) => q(032),
+ q(0012) => q(051),
+ q(0013) => q(533),
+ q(0014) => q(036),
+ q(0015) => q(040),
+ q(0016) => q(031),
+ q(0017) => q(044),
+ q(0018) => q(048),
+ q(0019) => q(050),
+ q(0020) => q(052),
+ q(0021) => q(112),
+ q(0022) => q(056),
+ q(0023) => q(084),
+ q(0024) => q(204),
+ q(0025) => q(060),
+ q(0026) => q(064),
+ q(0027) => q(068),
+ q(0028) => q(535),
+ q(0029) => q(070),
+ q(0030) => q(072),
+ q(0031) => q(074),
+ q(0032) => q(076),
+ q(0033) => q(086),
+ q(0034) => q(096),
+ q(0035) => q(100),
+ q(0036) => q(854),
+ q(0037) => q(108),
+ q(0038) => q(132),
+ q(0039) => q(116),
+ q(0040) => q(120),
+ q(0041) => q(124),
+ q(0042) => q(136),
+ q(0043) => q(140),
+ q(0044) => q(148),
+ q(0045) => q(152),
+ q(0046) => q(156),
+ q(0047) => q(162),
+ q(0048) => q(166),
+ q(0049) => q(170),
+ q(0050) => q(174),
+ q(0051) => q(180),
+ q(0052) => q(178),
+ q(0053) => q(184),
+ q(0054) => q(188),
+ q(0055) => q(384),
+ q(0056) => q(191),
+ q(0057) => q(192),
+ q(0058) => q(531),
+ q(0059) => q(196),
+ q(0060) => q(203),
+ q(0061) => q(208),
+ q(0062) => q(262),
+ q(0063) => q(212),
+ q(0064) => q(214),
+ q(0065) => q(218),
+ q(0066) => q(818),
+ q(0067) => q(222),
+ q(0068) => q(226),
+ q(0069) => q(232),
+ q(0070) => q(233),
+ q(0071) => q(231),
+ q(0072) => q(238),
+ q(0073) => q(234),
+ q(0074) => q(242),
+ q(0075) => q(246),
+ q(0076) => q(250),
+ q(0077) => q(254),
+ q(0078) => q(258),
+ q(0079) => q(260),
+ q(0080) => q(266),
+ q(0081) => q(270),
+ q(0082) => q(268),
+ q(0083) => q(276),
+ q(0084) => q(288),
+ q(0085) => q(292),
+ q(0086) => q(300),
+ q(0087) => q(304),
+ q(0088) => q(308),
+ q(0089) => q(312),
+ q(0090) => q(316),
+ q(0091) => q(320),
+ q(0092) => q(831),
+ q(0093) => q(324),
+ q(0094) => q(624),
+ q(0095) => q(328),
+ q(0096) => q(332),
+ q(0097) => q(334),
+ q(0098) => q(336),
+ q(0099) => q(340),
+ q(0100) => q(344),
+ q(0101) => q(348),
+ q(0102) => q(352),
+ q(0103) => q(356),
+ q(0104) => q(360),
+ q(0105) => q(364),
+ q(0106) => q(368),
+ q(0107) => q(372),
+ q(0108) => q(833),
+ q(0109) => q(376),
+ q(0110) => q(380),
+ q(0111) => q(388),
+ q(0112) => q(392),
+ q(0113) => q(832),
+ q(0114) => q(400),
+ q(0115) => q(398),
+ q(0116) => q(404),
+ q(0117) => q(296),
+ q(0118) => q(408),
+ q(0119) => q(410),
+ q(0120) => q(414),
+ q(0121) => q(417),
+ q(0122) => q(418),
+ q(0123) => q(428),
+ q(0124) => q(422),
+ q(0125) => q(426),
+ q(0126) => q(430),
+ q(0127) => q(434),
+ q(0128) => q(438),
+ q(0129) => q(440),
+ q(0130) => q(442),
+ q(0131) => q(446),
+ q(0132) => q(807),
+ q(0133) => q(450),
+ q(0134) => q(454),
+ q(0135) => q(458),
+ q(0136) => q(462),
+ q(0137) => q(466),
+ q(0138) => q(470),
+ q(0139) => q(584),
+ q(0140) => q(474),
+ q(0141) => q(478),
+ q(0142) => q(480),
+ q(0143) => q(175),
+ q(0144) => q(484),
+ q(0145) => q(583),
+ q(0146) => q(498),
+ q(0147) => q(492),
+ q(0148) => q(496),
+ q(0149) => q(499),
+ q(0150) => q(500),
+ q(0151) => q(504),
+ q(0152) => q(508),
+ q(0153) => q(104),
+ q(0154) => q(516),
+ q(0155) => q(520),
+ q(0156) => q(524),
+ q(0157) => q(528),
+ q(0158) => q(540),
+ q(0159) => q(554),
+ q(0160) => q(558),
+ q(0161) => q(562),
+ q(0162) => q(566),
+ q(0163) => q(570),
+ q(0164) => q(574),
+ q(0165) => q(580),
+ q(0166) => q(578),
+ q(0167) => q(512),
+ q(0168) => q(586),
+ q(0169) => q(585),
+ q(0171) => q(591),
+ q(0172) => q(598),
+ q(0173) => q(600),
+ q(0174) => q(604),
+ q(0175) => q(608),
+ q(0176) => q(612),
+ q(0177) => q(616),
+ q(0178) => q(620),
+ q(0179) => q(630),
+ q(0180) => q(634),
+ q(0181) => q(638),
+ q(0182) => q(642),
+ q(0183) => q(643),
+ q(0184) => q(646),
+ q(0185) => q(652),
+ q(0186) => q(654),
+ q(0187) => q(659),
+ q(0188) => q(662),
+ q(0189) => q(663),
+ q(0190) => q(666),
+ q(0191) => q(670),
+ q(0192) => q(882),
+ q(0193) => q(674),
+ q(0194) => q(678),
+ q(0195) => q(682),
+ q(0196) => q(686),
+ q(0197) => q(688),
+ q(0198) => q(690),
+ q(0199) => q(694),
+ q(0200) => q(702),
+ q(0201) => q(534),
+ q(0202) => q(703),
+ q(0203) => q(705),
+ q(0204) => q(090),
+ q(0205) => q(706),
+ q(0206) => q(710),
+ q(0207) => q(239),
+ q(0208) => q(728),
+ q(0209) => q(724),
+ q(0210) => q(144),
+ q(0211) => q(729),
+ q(0212) => q(740),
+ q(0214) => q(748),
+ q(0215) => q(752),
+ q(0216) => q(756),
+ q(0217) => q(760),
+ q(0218) => q(158),
+ q(0219) => q(762),
+ q(0220) => q(834),
+ q(0221) => q(764),
+ q(0222) => q(626),
+ q(0223) => q(768),
+ q(0224) => q(772),
+ q(0225) => q(776),
+ q(0226) => q(780),
+ q(0227) => q(788),
+ q(0228) => q(792),
+ q(0229) => q(795),
+ q(0230) => q(796),
+ q(0231) => q(798),
+ q(0232) => q(800),
+ q(0233) => q(804),
+ q(0234) => q(784),
+ q(0235) => q(826),
+ q(0237) => q(840),
+ q(0238) => q(858),
+ q(0239) => q(860),
+ q(0240) => q(548),
+ q(0241) => q(862),
+ q(0242) => q(704),
+ q(0243) => q(092),
+ q(0244) => q(850),
+ q(0245) => q(876),
+ q(0246) => q(732),
+ q(0247) => q(887),
+ q(0248) => q(894),
+ q(0249) => q(716),
+ q(0251) => q(900),
+ q(0252) => q(902),
+ q(0253) => q(903),
+ q(0254) => q(904),
+ q(0255) => q(905),
+ q(0256) => q(906),
+ q(0257) => q(907),
+ q(0258) => q(908),
+ q(0259) => q(915),
+ q(0260) => q(916),
+ q(0261) => q(917),
+ q(0262) => q(918),
+ q(0263) => q(919),
+ q(0264) => q(920),
+ q(0265) => q(921),
+ q(0266) => q(922),
+ q(0267) => q(923),
+ q(0268) => q(924),
+ q(0269) => q(901),
+ q(0270) => q(925),
+ q(0271) => q(926),
+ q(0272) => q(927),
+ q(0273) => q(928),
+ q(0274) => q(929),
+ q(0275) => q(930),
+ q(0276) => q(931),
+ q(0277) => q(932),
+ q(0278) => q(933),
+ q(0279) => q(934),
+ },
q(numeric) => {
q(0001) => q(004),
q(0002) => q(248),
@@ -7879,6 +14258,507 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0248) => q(894),
q(0249) => q(716),
},
+ q(un-alpha-3) => {
+ q(0001) => q(AFG),
+ q(0002) => q(ALA),
+ q(0003) => q(ALB),
+ q(0004) => q(DZA),
+ q(0005) => q(ASM),
+ q(0006) => q(AND),
+ q(0007) => q(AGO),
+ q(0008) => q(AIA),
+ q(0009) => q(ATA),
+ q(0010) => q(ATG),
+ q(0011) => q(ARG),
+ q(0012) => q(ARM),
+ q(0013) => q(ABW),
+ q(0014) => q(AUS),
+ q(0015) => q(AUT),
+ q(0016) => q(AZE),
+ q(0017) => q(BHS),
+ q(0018) => q(BHR),
+ q(0019) => q(BGD),
+ q(0020) => q(BRB),
+ q(0021) => q(BLR),
+ q(0022) => q(BEL),
+ q(0023) => q(BLZ),
+ q(0024) => q(BEN),
+ q(0025) => q(BMU),
+ q(0026) => q(BTN),
+ q(0027) => q(BOL),
+ q(0028) => q(BES),
+ q(0029) => q(BIH),
+ q(0030) => q(BWA),
+ q(0031) => q(BVT),
+ q(0032) => q(BRA),
+ q(0033) => q(IOT),
+ q(0034) => q(BRN),
+ q(0035) => q(BGR),
+ q(0036) => q(BFA),
+ q(0037) => q(BDI),
+ q(0038) => q(CPV),
+ q(0039) => q(KHM),
+ q(0040) => q(CMR),
+ q(0041) => q(CAN),
+ q(0042) => q(CYM),
+ q(0043) => q(CAF),
+ q(0044) => q(TCD),
+ q(0045) => q(CHL),
+ q(0046) => q(CHN),
+ q(0047) => q(CXR),
+ q(0048) => q(CCK),
+ q(0049) => q(COL),
+ q(0050) => q(COM),
+ q(0051) => q(COD),
+ q(0052) => q(COG),
+ q(0053) => q(COK),
+ q(0054) => q(CRI),
+ q(0055) => q(CIV),
+ q(0056) => q(HRV),
+ q(0057) => q(CUB),
+ q(0058) => q(CUW),
+ q(0059) => q(CYP),
+ q(0060) => q(CZE),
+ q(0061) => q(DNK),
+ q(0062) => q(DJI),
+ q(0063) => q(DMA),
+ q(0064) => q(DOM),
+ q(0065) => q(ECU),
+ q(0066) => q(EGY),
+ q(0067) => q(SLV),
+ q(0068) => q(GNQ),
+ q(0069) => q(ERI),
+ q(0070) => q(EST),
+ q(0071) => q(ETH),
+ q(0072) => q(FLK),
+ q(0073) => q(FRO),
+ q(0074) => q(FJI),
+ q(0075) => q(FIN),
+ q(0076) => q(FRA),
+ q(0077) => q(GUF),
+ q(0078) => q(PYF),
+ q(0079) => q(ATF),
+ q(0080) => q(GAB),
+ q(0081) => q(GMB),
+ q(0082) => q(GEO),
+ q(0083) => q(DEU),
+ q(0084) => q(GHA),
+ q(0085) => q(GIB),
+ q(0086) => q(GRC),
+ q(0087) => q(GRL),
+ q(0088) => q(GRD),
+ q(0089) => q(GLP),
+ q(0090) => q(GUM),
+ q(0091) => q(GTM),
+ q(0092) => q(GGY),
+ q(0093) => q(GIN),
+ q(0094) => q(GNB),
+ q(0095) => q(GUY),
+ q(0096) => q(HTI),
+ q(0097) => q(HMD),
+ q(0098) => q(VAT),
+ q(0099) => q(HND),
+ q(0100) => q(HKG),
+ q(0101) => q(HUN),
+ q(0102) => q(ISL),
+ q(0103) => q(IND),
+ q(0104) => q(IDN),
+ q(0105) => q(IRN),
+ q(0106) => q(IRQ),
+ q(0107) => q(IRL),
+ q(0108) => q(IMN),
+ q(0109) => q(ISR),
+ q(0110) => q(ITA),
+ q(0111) => q(JAM),
+ q(0112) => q(JPN),
+ q(0113) => q(JEY),
+ q(0114) => q(JOR),
+ q(0115) => q(KAZ),
+ q(0116) => q(KEN),
+ q(0117) => q(KIR),
+ q(0118) => q(PRK),
+ q(0119) => q(KOR),
+ q(0120) => q(KWT),
+ q(0121) => q(KGZ),
+ q(0122) => q(LAO),
+ q(0123) => q(LVA),
+ q(0124) => q(LBN),
+ q(0125) => q(LSO),
+ q(0126) => q(LBR),
+ q(0127) => q(LBY),
+ q(0128) => q(LIE),
+ q(0129) => q(LTU),
+ q(0130) => q(LUX),
+ q(0131) => q(MAC),
+ q(0132) => q(MKD),
+ q(0133) => q(MDG),
+ q(0134) => q(MWI),
+ q(0135) => q(MYS),
+ q(0136) => q(MDV),
+ q(0137) => q(MLI),
+ q(0138) => q(MLT),
+ q(0139) => q(MHL),
+ q(0140) => q(MTQ),
+ q(0141) => q(MRT),
+ q(0142) => q(MUS),
+ q(0143) => q(MYT),
+ q(0144) => q(MEX),
+ q(0145) => q(FSM),
+ q(0146) => q(MDA),
+ q(0147) => q(MCO),
+ q(0148) => q(MNG),
+ q(0149) => q(MNE),
+ q(0150) => q(MSR),
+ q(0151) => q(MAR),
+ q(0152) => q(MOZ),
+ q(0153) => q(MMR),
+ q(0154) => q(NAM),
+ q(0155) => q(NRU),
+ q(0156) => q(NPL),
+ q(0157) => q(NLD),
+ q(0158) => q(NCL),
+ q(0159) => q(NZL),
+ q(0160) => q(NIC),
+ q(0161) => q(NER),
+ q(0162) => q(NGA),
+ q(0163) => q(NIU),
+ q(0164) => q(NFK),
+ q(0165) => q(MNP),
+ q(0166) => q(NOR),
+ q(0167) => q(OMN),
+ q(0168) => q(PAK),
+ q(0169) => q(PLW),
+ q(0170) => q(PSE),
+ q(0171) => q(PAN),
+ q(0172) => q(PNG),
+ q(0173) => q(PRY),
+ q(0174) => q(PER),
+ q(0175) => q(PHL),
+ q(0176) => q(PCN),
+ q(0177) => q(POL),
+ q(0178) => q(PRT),
+ q(0179) => q(PRI),
+ q(0180) => q(QAT),
+ q(0181) => q(REU),
+ q(0182) => q(ROU),
+ q(0183) => q(RUS),
+ q(0184) => q(RWA),
+ q(0185) => q(BLM),
+ q(0186) => q(SHN),
+ q(0187) => q(KNA),
+ q(0188) => q(LCA),
+ q(0189) => q(MAF),
+ q(0190) => q(SPM),
+ q(0191) => q(VCT),
+ q(0192) => q(WSM),
+ q(0193) => q(SMR),
+ q(0194) => q(STP),
+ q(0195) => q(SAU),
+ q(0196) => q(SEN),
+ q(0197) => q(SRB),
+ q(0198) => q(SYC),
+ q(0199) => q(SLE),
+ q(0200) => q(SGP),
+ q(0201) => q(SXM),
+ q(0202) => q(SVK),
+ q(0203) => q(SVN),
+ q(0204) => q(SLB),
+ q(0205) => q(SOM),
+ q(0206) => q(ZAF),
+ q(0207) => q(SGS),
+ q(0208) => q(SSD),
+ q(0209) => q(ESP),
+ q(0210) => q(LKA),
+ q(0211) => q(SDN),
+ q(0212) => q(SUR),
+ q(0213) => q(SJM),
+ q(0214) => q(SWZ),
+ q(0215) => q(SWE),
+ q(0216) => q(CHE),
+ q(0217) => q(SYR),
+ q(0219) => q(TJK),
+ q(0220) => q(TZA),
+ q(0221) => q(THA),
+ q(0222) => q(TLS),
+ q(0223) => q(TGO),
+ q(0224) => q(TKL),
+ q(0225) => q(TON),
+ q(0226) => q(TTO),
+ q(0227) => q(TUN),
+ q(0228) => q(TUR),
+ q(0229) => q(TKM),
+ q(0230) => q(TCA),
+ q(0231) => q(TUV),
+ q(0232) => q(UGA),
+ q(0233) => q(UKR),
+ q(0234) => q(ARE),
+ q(0235) => q(GBR),
+ q(0236) => q(UMI),
+ q(0237) => q(USA),
+ q(0238) => q(URY),
+ q(0239) => q(UZB),
+ q(0240) => q(VUT),
+ q(0241) => q(VEN),
+ q(0242) => q(VNM),
+ q(0243) => q(VGB),
+ q(0244) => q(VIR),
+ q(0245) => q(WLF),
+ q(0246) => q(ESH),
+ q(0247) => q(YEM),
+ q(0248) => q(ZMB),
+ q(0249) => q(ZWE),
+ },
+ q(un-numeric) => {
+ q(0001) => q(004),
+ q(0002) => q(248),
+ q(0003) => q(008),
+ q(0004) => q(012),
+ q(0005) => q(016),
+ q(0006) => q(020),
+ q(0007) => q(024),
+ q(0008) => q(660),
+ q(0009) => q(010),
+ q(0010) => q(028),
+ q(0011) => q(032),
+ q(0012) => q(051),
+ q(0013) => q(533),
+ q(0014) => q(036),
+ q(0015) => q(040),
+ q(0016) => q(031),
+ q(0017) => q(044),
+ q(0018) => q(048),
+ q(0019) => q(050),
+ q(0020) => q(052),
+ q(0021) => q(112),
+ q(0022) => q(056),
+ q(0023) => q(084),
+ q(0024) => q(204),
+ q(0025) => q(060),
+ q(0026) => q(064),
+ q(0027) => q(068),
+ q(0028) => q(535),
+ q(0029) => q(070),
+ q(0030) => q(072),
+ q(0031) => q(074),
+ q(0032) => q(076),
+ q(0033) => q(086),
+ q(0034) => q(096),
+ q(0035) => q(100),
+ q(0036) => q(854),
+ q(0037) => q(108),
+ q(0038) => q(132),
+ q(0039) => q(116),
+ q(0040) => q(120),
+ q(0041) => q(124),
+ q(0042) => q(136),
+ q(0043) => q(140),
+ q(0044) => q(148),
+ q(0045) => q(152),
+ q(0046) => q(156),
+ q(0047) => q(162),
+ q(0048) => q(166),
+ q(0049) => q(170),
+ q(0050) => q(174),
+ q(0051) => q(180),
+ q(0052) => q(178),
+ q(0053) => q(184),
+ q(0054) => q(188),
+ q(0055) => q(384),
+ q(0056) => q(191),
+ q(0057) => q(192),
+ q(0058) => q(531),
+ q(0059) => q(196),
+ q(0060) => q(203),
+ q(0061) => q(208),
+ q(0062) => q(262),
+ q(0063) => q(212),
+ q(0064) => q(214),
+ q(0065) => q(218),
+ q(0066) => q(818),
+ q(0067) => q(222),
+ q(0068) => q(226),
+ q(0069) => q(232),
+ q(0070) => q(233),
+ q(0071) => q(231),
+ q(0072) => q(238),
+ q(0073) => q(234),
+ q(0074) => q(242),
+ q(0075) => q(246),
+ q(0076) => q(250),
+ q(0077) => q(254),
+ q(0078) => q(258),
+ q(0079) => q(260),
+ q(0080) => q(266),
+ q(0081) => q(270),
+ q(0082) => q(268),
+ q(0083) => q(276),
+ q(0084) => q(288),
+ q(0085) => q(292),
+ q(0086) => q(300),
+ q(0087) => q(304),
+ q(0088) => q(308),
+ q(0089) => q(312),
+ q(0090) => q(316),
+ q(0091) => q(320),
+ q(0092) => q(831),
+ q(0093) => q(324),
+ q(0094) => q(624),
+ q(0095) => q(328),
+ q(0096) => q(332),
+ q(0097) => q(334),
+ q(0098) => q(336),
+ q(0099) => q(340),
+ q(0100) => q(344),
+ q(0101) => q(348),
+ q(0102) => q(352),
+ q(0103) => q(356),
+ q(0104) => q(360),
+ q(0105) => q(364),
+ q(0106) => q(368),
+ q(0107) => q(372),
+ q(0108) => q(833),
+ q(0109) => q(376),
+ q(0110) => q(380),
+ q(0111) => q(388),
+ q(0112) => q(392),
+ q(0113) => q(832),
+ q(0114) => q(400),
+ q(0115) => q(398),
+ q(0116) => q(404),
+ q(0117) => q(296),
+ q(0118) => q(408),
+ q(0119) => q(410),
+ q(0120) => q(414),
+ q(0121) => q(417),
+ q(0122) => q(418),
+ q(0123) => q(428),
+ q(0124) => q(422),
+ q(0125) => q(426),
+ q(0126) => q(430),
+ q(0127) => q(434),
+ q(0128) => q(438),
+ q(0129) => q(440),
+ q(0130) => q(442),
+ q(0131) => q(446),
+ q(0132) => q(807),
+ q(0133) => q(450),
+ q(0134) => q(454),
+ q(0135) => q(458),
+ q(0136) => q(462),
+ q(0137) => q(466),
+ q(0138) => q(470),
+ q(0139) => q(584),
+ q(0140) => q(474),
+ q(0141) => q(478),
+ q(0142) => q(480),
+ q(0143) => q(175),
+ q(0144) => q(484),
+ q(0145) => q(583),
+ q(0146) => q(498),
+ q(0147) => q(492),
+ q(0148) => q(496),
+ q(0149) => q(499),
+ q(0150) => q(500),
+ q(0151) => q(504),
+ q(0152) => q(508),
+ q(0153) => q(104),
+ q(0154) => q(516),
+ q(0155) => q(520),
+ q(0156) => q(524),
+ q(0157) => q(528),
+ q(0158) => q(540),
+ q(0159) => q(554),
+ q(0160) => q(558),
+ q(0161) => q(562),
+ q(0162) => q(566),
+ q(0163) => q(570),
+ q(0164) => q(574),
+ q(0165) => q(580),
+ q(0166) => q(578),
+ q(0167) => q(512),
+ q(0168) => q(586),
+ q(0169) => q(585),
+ q(0170) => q(275),
+ q(0171) => q(591),
+ q(0172) => q(598),
+ q(0173) => q(600),
+ q(0174) => q(604),
+ q(0175) => q(608),
+ q(0176) => q(612),
+ q(0177) => q(616),
+ q(0178) => q(620),
+ q(0179) => q(630),
+ q(0180) => q(634),
+ q(0181) => q(638),
+ q(0182) => q(642),
+ q(0183) => q(643),
+ q(0184) => q(646),
+ q(0185) => q(652),
+ q(0186) => q(654),
+ q(0187) => q(659),
+ q(0188) => q(662),
+ q(0189) => q(663),
+ q(0190) => q(666),
+ q(0191) => q(670),
+ q(0192) => q(882),
+ q(0193) => q(674),
+ q(0194) => q(678),
+ q(0195) => q(682),
+ q(0196) => q(686),
+ q(0197) => q(688),
+ q(0198) => q(690),
+ q(0199) => q(694),
+ q(0200) => q(702),
+ q(0201) => q(534),
+ q(0202) => q(703),
+ q(0203) => q(705),
+ q(0204) => q(090),
+ q(0205) => q(706),
+ q(0206) => q(710),
+ q(0207) => q(239),
+ q(0208) => q(728),
+ q(0209) => q(724),
+ q(0210) => q(144),
+ q(0211) => q(729),
+ q(0212) => q(740),
+ q(0213) => q(744),
+ q(0214) => q(748),
+ q(0215) => q(752),
+ q(0216) => q(756),
+ q(0217) => q(760),
+ q(0219) => q(762),
+ q(0220) => q(834),
+ q(0221) => q(764),
+ q(0222) => q(626),
+ q(0223) => q(768),
+ q(0224) => q(772),
+ q(0225) => q(776),
+ q(0226) => q(780),
+ q(0227) => q(788),
+ q(0228) => q(792),
+ q(0229) => q(795),
+ q(0230) => q(796),
+ q(0231) => q(798),
+ q(0232) => q(800),
+ q(0233) => q(804),
+ q(0234) => q(784),
+ q(0235) => q(826),
+ q(0236) => q(581),
+ q(0237) => q(840),
+ q(0238) => q(858),
+ q(0239) => q(860),
+ q(0240) => q(548),
+ q(0241) => q(862),
+ q(0242) => q(704),
+ q(0243) => q(092),
+ q(0244) => q(850),
+ q(0245) => q(876),
+ q(0246) => q(732),
+ q(0247) => q(887),
+ q(0248) => q(894),
+ q(0249) => q(716),
+ q(0250) => q(680),
+ },
};
1;
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm
index c07e44a4bdc..6df5dd59399 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::Country_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Feb 23 12:58:17 EST 2018
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Retired{'country'}{'alpha-2'}{'code'} = {
q(an) => q(Netherlands Antilles),
@@ -308,6 +308,15 @@ $Locale::Codes::Retired{'country'}{'dom'}{'code'} = {
q(uk) => q(United Kingdom),
};
+$Locale::Codes::Retired{'country'}{'genc-alpha-2'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'country'}{'genc-alpha-3'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'country'}{'genc-numeric'}{'code'} = {
+};
+
$Locale::Codes::Retired{'country'}{'numeric'}{'code'} = {
q(010) => q(Antarctica),
q(074) => q(Bouvet Island),
@@ -327,6 +336,13 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'code'} = {
q(891) => q(Serbia and Montenegro),
};
+$Locale::Codes::Retired{'country'}{'un-alpha-3'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'country'}{'un-numeric'}{'code'} = {
+ q(830) => q(Channel Islands),
+};
+
$Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
q(bolivia) => [ q(bo), q(Bolivia) ],
q(bolivia, plurinational state of) => [ q(bo), q(Bolivia, Plurinational State of) ],
@@ -334,6 +350,7 @@ $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
q(bosnia and herzegowina) => [ q(ba), q(Bosnia and Herzegowina) ],
q(cape verde) => [ q(cv), q(Cape Verde) ],
q(congo, the democratic republic of the) => [ q(cd), q(Congo, The Democratic Republic of the) ],
+ q(czech republic) => [ q(cz), q(Czech Republic) ],
q(east timor) => [ q(tl), q(East Timor) ],
q(falkland islands (malvinas)) => [ q(fk), q(Falkland Islands (Malvinas)) ],
q(france, metropolitan) => [ q(fx), q(France, Metropolitan) ],
@@ -392,6 +409,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
q(christmas island) => [ q(cxr), q(Christmas Island) ],
q(cocos (keeling) islands) => [ q(cck), q(Cocos (Keeling) Islands) ],
q(congo, the democratic republic of the) => [ q(cod), q(Congo, The Democratic Republic of the) ],
+ q(czech republic) => [ q(cze), q(Czech Republic) ],
q(democratic people's republic of korea) => [ q(prk), q(Democratic People's Republic of Korea) ],
q(democratic republic of the congo) => [ q(cod), q(Democratic Republic of the Congo) ],
q(east timor) => [ q(tls), q(East Timor) ],
@@ -465,6 +483,7 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
q(bonaire, sint eustatius and saba) => [ q(BQ), q(Bonaire, Sint Eustatius and Saba) ],
q(cape verde) => [ q(cv), q(Cape Verde) ],
q(congo, the democratic republic of the) => [ q(cd), q(Congo, The Democratic Republic of the) ],
+ q(czech republic) => [ q(cz), q(Czech Republic) ],
q(east timor) => [ q(tp), q(East Timor) ],
q(european union) => [ q(eu), q(European Union) ],
q(falkland islands (malvinas)) => [ q(fk), q(Falkland Islands (Malvinas)) ],
@@ -498,6 +517,18 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
q(yugoslavia ) => [ q(YU), q(Yugoslavia ) ],
};
+$Locale::Codes::Retired{'country'}{'genc-alpha-2'}{'name'} = {
+ q(czech republic) => [ q(CZ), q(Czech Republic) ],
+};
+
+$Locale::Codes::Retired{'country'}{'genc-alpha-3'}{'name'} = {
+ q(czech republic) => [ q(CZE), q(Czech Republic) ],
+};
+
+$Locale::Codes::Retired{'country'}{'genc-numeric'}{'name'} = {
+ q(czech republic) => [ q(203), q(Czech Republic) ],
+};
+
$Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(antarctica) => [ q(010), q(Antarctica) ],
q(bolivia) => [ q(068), q(Bolivia) ],
@@ -515,6 +546,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(christmas island) => [ q(162), q(Christmas Island) ],
q(cocos (keeling) islands) => [ q(166), q(Cocos (Keeling) Islands) ],
q(congo, the democratic republic of the) => [ q(180), q(Congo, The Democratic Republic of the) ],
+ q(czech republic) => [ q(203), q(Czech Republic) ],
q(democratic people's republic of korea) => [ q(408), q(Democratic People's Republic of Korea) ],
q(democratic republic of the congo) => [ q(180), q(Democratic Republic of the Congo) ],
q(east timor) => [ q(626), q(East Timor) ],
@@ -582,5 +614,16 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(zaire) => [ q(180), q(Zaire) ],
};
+$Locale::Codes::Retired{'country'}{'un-alpha-3'}{'name'} = {
+ q(czech republic) => [ q(CZE), q(Czech Republic) ],
+ q(korea, the democratic people's republic of) => [ q(PRK), q(Korea, The Democratic People's Republic of) ],
+};
+
+$Locale::Codes::Retired{'country'}{'un-numeric'}{'name'} = {
+ q(channel islands) => [ q(830), q(Channel Islands) ],
+ q(czech republic) => [ q(203), q(Czech Republic) ],
+ q(korea, the democratic people's republic of) => [ q(408), q(Korea, The Democratic People's Republic of) ],
+};
+
1;
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pm
index 3d1f406383f..e24656f903c 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pm
@@ -1,98 +1,94 @@
package Locale::Codes::Currency;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
-require 5.006;
use warnings;
+require 5.006;
+use Exporter qw(import);
-require Exporter;
-use Carp;
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
+
+################################################################################
+use if $] >= 5.027007, 'deprecate';
use Locale::Codes;
use Locale::Codes::Constants;
-use Locale::Codes::Currency_Codes;
-use Locale::Codes::Currency_Retired;
-
-#=======================================================================
-# Public Global Variables
-#=======================================================================
-our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-
-$VERSION='3.37';
-@ISA = qw(Exporter);
-@EXPORT = qw(code2currency
+@EXPORT = qw(
+ code2currency
currency2code
all_currency_codes
all_currency_names
currency_code2code
- LOCALE_CURR_ALPHA
- LOCALE_CURR_NUMERIC
);
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_CURRENCY);
+
+our $obj = new Locale::Codes('currency');
+$obj->show_errors(0);
+
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
sub code2currency {
- return Locale::Codes::_code2name('currency',@_);
+ return $obj->code2name(@_);
}
sub currency2code {
- return Locale::Codes::_name2code('currency',@_);
+ return $obj->name2code(@_);
}
sub currency_code2code {
- return Locale::Codes::_code2code('currency',@_);
+ return $obj->code2code(@_);
}
sub all_currency_codes {
- return Locale::Codes::_all_codes('currency',@_);
+ return $obj->all_codes(@_);
}
sub all_currency_names {
- return Locale::Codes::_all_names('currency',@_);
+ return $obj->all_names(@_);
}
sub rename_currency {
- return Locale::Codes::_rename('currency',@_);
+ return $obj->rename_code(@_);
}
sub add_currency {
- return Locale::Codes::_add_code('currency',@_);
+ return $obj->add_code(@_);
}
sub delete_currency {
- return Locale::Codes::_delete_code('currency',@_);
+ return $obj->delete_code(@_);
}
sub add_currency_alias {
- return Locale::Codes::_add_alias('currency',@_);
+ return $obj->add_alias(@_);
}
sub delete_currency_alias {
- return Locale::Codes::_delete_alias('currency',@_);
+ return $obj->delete_alias(@_);
}
sub rename_currency_code {
- return Locale::Codes::_rename_code('currency',@_);
+ return $obj->replace_code(@_);
}
sub add_currency_code_alias {
- return Locale::Codes::_add_code_alias('currency',@_);
+ return $obj->add_code_alias(@_);
}
sub delete_currency_code_alias {
- return Locale::Codes::_delete_code_alias('currency',@_);
+ return $obj->delete_code_alias(@_);
}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pod
index bc5ea0d668b..0d5d2666bf3 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency.pod
@@ -2,90 +2,107 @@
=head1 NAME
-Locale::Codes::Currency - standard codes for currency identification
+Locale::Codes::Currency - module for dealing with currency code sets
=head1 SYNOPSIS
- use Locale::Codes::Currency;
+ use Locale::Codes::Currency;
- $curr = code2currency('usd'); # $curr gets 'US Dollar'
- $code = currency2code('Euro'); # $code gets 'eur'
+ $name = code2currency(CODE);
+ $code = currency2code(NAME);
- @codes = all_currency_codes();
- @names = all_currency_names();
+ @codes = all_currency_codes();
+ @names = all_currency_names();
=head1 DESCRIPTION
-This module provides access to standard codes used for identifying
-currencies and funds, such as those defined in ISO 4217.
+This module provides access to currency code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO
-4217 three-letter codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
-=head1 SUPPORTED CODE SETS
+=head1 ROUTINES
-There are several different code sets you can use for identifying
-currencies. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: currency
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-For example, the two are equivalent:
+The following functions are exported automatically:
- $curr = code2currency('usd','alpha');
- $curr = code2currency('usd',LOCALE_CURR_ALPHA);
+=over 4
-The codesets currently supported are:
+=item B<code2currency(CODE [,CODESET] [,'retired'])>
-=over 4
+See B<code2name> in L<Locale::Codes>
-=item B<alpha, LOCALE_CURR_ALPHA>
+=item B<currency2code(NAME [,CODESET] [,'retired'])>
-This is a set of three-letter (uppercase) codes from ISO 4217 such
-as EUR for Euro.
+See B<name2code> in L<Locale::Codes>
-Two of the codes specified by the standard (XTS which is reserved
-for testing purposes and XXX which is for transactions where no
-currency is involved) are omitted.
+=item B<currency_code2code(CODE ,CODESET ,CODESET2)>
-This is the default code set.
+See B<code2code> in L<Locale::Codes>
-=item B<num, LOCALE_CURR_NUMERIC>
+=item B<all_currency_codes([CODESET] [,'retired'])>
-This is the set of three-digit numeric codes from ISO 4217.
+See B<all_codes> in L<Locale::Codes>
-=back
+=item B<all_currency_names([CODESET] [,'retired'])>
-=head1 ROUTINES
+See B<all_names> in L<Locale::Codes>
-=over 4
+=back
-=item B<code2currency(CODE [,CODESET] [,'retired'])>
+The following functions are not exported and must be called fully
+qualified with the package name:
-=item B<currency2code(NAME [,CODESET] [,'retired'])>
+=over 4
-=item B<currency_code2code(CODE ,CODESET ,CODESET2)>
+=item B<Locale::Codes::Currency::show_errors(FLAG)>
-=item B<all_currency_codes([CODESET] [,'retired'])>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<all_currency_names([CODESET] [,'retired'])>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
=item B<Locale::Codes::Currency::rename_currency(CODE ,NEW_NAME [,CODESET])>
+See B<rename_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Currency::add_currency(CODE ,NAME [,CODESET])>
+See B<add_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Currency::delete_currency(CODE [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Currency::add_currency_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Currency::delete_currency_alias(NAME)>
+See B<delete_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Currency::rename_currency_code(CODE ,NEW_CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Currency::add_currency_code_alias(CODE ,NEW_CODE [,CODESET])>
-=item B<Locale::Codes::Currency::delete_currency_code_alias( ODE [,CODESET])>
+See B<add_code_alias> in L<Locale::Codes>
-These routines are all documented in the L<Locale::Codes::API> man page.
+=item B<Locale::Codes::Currency::delete_currency_code_alias(CODE [,CODESET])>
+
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -97,14 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.iso.org/iso/support/currency_codes_list-1.htm>
-
-The ISO 4217 data.
-
=back
=head1 AUTHOR
@@ -115,10 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001 Michael Hennecke
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Codes.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Codes.pm
index d1d39b7002e..a8336540b7e 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Codes.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::Currency_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:02 EST 2015
+# Generated on: Fri Feb 23 12:54:50 EST 2018
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Data{'currency'}{'id'} = '0177';
@@ -50,7 +50,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Australian Dollar),
],
q(0012) => [
- q(Azerbaijanian Manat),
+ q(Azerbaijan Manat),
],
q(0013) => [
q(Bahamian Dollar),
@@ -65,7 +65,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Barbados Dollar),
],
q(0017) => [
- q(Belarussian Ruble),
+ q(Belarusian Ruble),
],
q(0018) => [
q(Belize Dollar),
@@ -77,10 +77,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Bermudian Dollar),
],
q(0021) => [
- q(Ngultrum),
+ q(Indian Rupee),
],
q(0022) => [
- q(Indian Rupee),
+ q(Ngultrum),
],
q(0023) => [
q(Boliviano),
@@ -125,10 +125,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Cayman Islands Dollar),
],
q(0037) => [
- q(Unidad de Fomento),
+ q(Chilean Peso),
],
q(0038) => [
- q(Chilean Peso),
+ q(Unidad de Fomento),
],
q(0039) => [
q(Yuan Renminbi),
@@ -140,7 +140,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Unidad de Valor Real),
],
q(0042) => [
- q(Comoro Franc),
+ q(Comorian Franc),
],
q(0043) => [
q(Congolese Franc),
@@ -155,10 +155,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Kuna),
],
q(0047) => [
- q(Peso Convertible),
+ q(Cuban Peso),
],
q(0048) => [
- q(Cuban Peso),
+ q(Peso Convertible),
],
q(0049) => [
q(Netherlands Antillean Guilder),
@@ -215,7 +215,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Pound Sterling),
],
q(0067) => [
- q(Guinea Franc),
+ q(Guinean Franc),
],
q(0068) => [
q(Guyana Dollar),
@@ -278,7 +278,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Som),
],
q(0088) => [
- q(Kip),
+ q(Lao Kip),
],
q(0089) => [
q(Lebanese Pound),
@@ -308,7 +308,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Malagasy Ariary),
],
q(0098) => [
- q(Kwacha),
+ q(Malawi Kwacha),
],
q(0099) => [
q(Malaysian Ringgit),
@@ -374,10 +374,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Guarani),
],
q(0120) => [
- q(Nuevo Sol),
+ q(Sol),
],
q(0121) => [
- q(Philippine Peso),
+ q(Philippine Piso),
],
q(0122) => [
q(Zloty),
@@ -494,10 +494,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(US Dollar (Next day)),
],
q(0160) => [
- q(Uruguay Peso en Unidades Indexadas (URUIURUI)),
+ q(Peso Uruguayo),
],
q(0161) => [
- q(Peso Uruguayo),
+ q(Uruguay Peso en Unidades Indexadas (URUIURUI)),
],
q(0162) => [
q(Uzbekistan Sum),
@@ -575,7 +575,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0011),
q(0),
],
- q(azerbaijanian manat) => [
+ q(azerbaijan manat) => [
q(0012),
q(0),
],
@@ -599,7 +599,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0016),
q(0),
],
- q(belarussian ruble) => [
+ q(belarusian ruble) => [
q(0017),
q(0),
],
@@ -676,14 +676,14 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(chilean peso) => [
- q(0038),
+ q(0037),
q(0),
],
q(colombian peso) => [
q(0040),
q(0),
],
- q(comoro franc) => [
+ q(comorian franc) => [
q(0042),
q(0),
],
@@ -704,7 +704,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(cuban peso) => [
- q(0048),
+ q(0047),
q(0),
],
q(czech koruna) => [
@@ -791,7 +791,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0119),
q(0),
],
- q(guinea franc) => [
+ q(guinean franc) => [
q(0067),
q(0),
],
@@ -812,7 +812,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(indian rupee) => [
- q(0022),
+ q(0021),
q(0),
],
q(iranian rial) => [
@@ -839,10 +839,6 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0118),
q(0),
],
- q(kip) => [
- q(0088),
- q(0),
- ],
q(kuna) => [
q(0046),
q(0),
@@ -851,10 +847,6 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0086),
q(0),
],
- q(kwacha) => [
- q(0098),
- q(0),
- ],
q(kwanza) => [
q(0006),
q(0),
@@ -863,6 +855,10 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0110),
q(0),
],
+ q(lao kip) => [
+ q(0088),
+ q(0),
+ ],
q(lari) => [
q(0062),
q(0),
@@ -903,6 +899,10 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0097),
q(0),
],
+ q(malawi kwacha) => [
+ q(0098),
+ q(0),
+ ],
q(malaysian ringgit) => [
q(0099),
q(0),
@@ -968,7 +968,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(ngultrum) => [
- q(0021),
+ q(0022),
q(0),
],
q(north korean won) => [
@@ -979,10 +979,6 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0027),
q(0),
],
- q(nuevo sol) => [
- q(0120),
- q(0),
- ],
q(ouguiya) => [
q(0101),
q(0),
@@ -1004,14 +1000,14 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(peso convertible) => [
- q(0047),
+ q(0048),
q(0),
],
q(peso uruguayo) => [
- q(0161),
+ q(0160),
q(0),
],
- q(philippine peso) => [
+ q(philippine piso) => [
q(0121),
q(0),
],
@@ -1095,6 +1091,10 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0134),
q(0),
],
+ q(sol) => [
+ q(0120),
+ q(0),
+ ],
q(solomon islands dollar) => [
q(0136),
q(0),
@@ -1188,7 +1188,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(unidad de fomento) => [
- q(0037),
+ q(0038),
q(0),
],
q(unidad de valor real) => [
@@ -1196,7 +1196,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(uruguay peso en unidades indexadas (uruiurui)) => [
- q(0160),
+ q(0161),
q(0),
],
q(us dollar) => [
@@ -1344,14 +1344,14 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(BTN) => [
- q(0021),
+ q(0022),
q(0),
],
q(BWP) => [
q(0026),
q(0),
],
- q(BYR) => [
+ q(BYN) => [
q(0017),
q(0),
],
@@ -1380,11 +1380,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(CLF) => [
- q(0037),
+ q(0038),
q(0),
],
q(CLP) => [
- q(0038),
+ q(0037),
q(0),
],
q(CNY) => [
@@ -1404,11 +1404,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(CUC) => [
- q(0047),
+ q(0048),
q(0),
],
q(CUP) => [
- q(0048),
+ q(0047),
q(0),
],
q(CVE) => [
@@ -1520,7 +1520,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(INR) => [
- q(0022),
+ q(0021),
q(0),
],
q(IQD) => [
@@ -1635,7 +1635,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0095),
q(0),
],
- q(MRO) => [
+ q(MRU) => [
q(0101),
q(0),
],
@@ -1787,7 +1787,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0138),
q(0),
],
- q(STD) => [
+ q(STN) => [
q(0129),
q(0),
],
@@ -1856,11 +1856,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(UYI) => [
- q(0160),
+ q(0161),
q(0),
],
q(UYU) => [
- q(0161),
+ q(0160),
q(0),
],
q(UZS) => [
@@ -2002,7 +2002,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(064) => [
- q(0021),
+ q(0022),
q(0),
],
q(068) => [
@@ -2054,7 +2054,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(152) => [
- q(0038),
+ q(0037),
q(0),
],
q(156) => [
@@ -2078,7 +2078,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(192) => [
- q(0048),
+ q(0047),
q(0),
],
q(203) => [
@@ -2158,7 +2158,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(356) => [
- q(0022),
+ q(0021),
q(0),
],
q(360) => [
@@ -2249,10 +2249,6 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0100),
q(0),
],
- q(478) => [
- q(0101),
- q(0),
- ],
q(480) => [
q(0102),
q(0),
@@ -2353,10 +2349,6 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0127),
q(0),
],
- q(678) => [
- q(0129),
- q(0),
- ],
q(682) => [
q(0130),
q(0),
@@ -2450,7 +2442,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(858) => [
- q(0161),
+ q(0160),
q(0),
],
q(860) => [
@@ -2469,14 +2461,26 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0147),
q(0),
],
+ q(929) => [
+ q(0101),
+ q(0),
+ ],
+ q(930) => [
+ q(0129),
+ q(0),
+ ],
q(931) => [
- q(0047),
+ q(0048),
q(0),
],
q(932) => [
q(0168),
q(0),
],
+ q(933) => [
+ q(0017),
+ q(0),
+ ],
q(934) => [
q(0155),
q(0),
@@ -2494,7 +2498,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(940) => [
- q(0160),
+ q(0161),
q(0),
],
q(941) => [
@@ -2609,10 +2613,6 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0006),
q(0),
],
- q(974) => [
- q(0017),
- q(0),
- ],
q(975) => [
q(0030),
q(0),
@@ -2654,7 +2654,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(990) => [
- q(0037),
+ q(0038),
q(0),
],
q(994) => [
@@ -2686,12 +2686,12 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0014) => q(BHD),
q(0015) => q(BDT),
q(0016) => q(BBD),
- q(0017) => q(BYR),
+ q(0017) => q(BYN),
q(0018) => q(BZD),
q(0019) => q(XOF),
q(0020) => q(BMD),
- q(0021) => q(BTN),
- q(0022) => q(INR),
+ q(0021) => q(INR),
+ q(0022) => q(BTN),
q(0023) => q(BOB),
q(0024) => q(BOV),
q(0025) => q(BAM),
@@ -2706,8 +2706,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0034) => q(XAF),
q(0035) => q(CAD),
q(0036) => q(KYD),
- q(0037) => q(CLF),
- q(0038) => q(CLP),
+ q(0037) => q(CLP),
+ q(0038) => q(CLF),
q(0039) => q(CNY),
q(0040) => q(COP),
q(0041) => q(COU),
@@ -2716,8 +2716,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0044) => q(NZD),
q(0045) => q(CRC),
q(0046) => q(HRK),
- q(0047) => q(CUC),
- q(0048) => q(CUP),
+ q(0047) => q(CUP),
+ q(0048) => q(CUC),
q(0049) => q(ANG),
q(0050) => q(CZK),
q(0051) => q(DKK),
@@ -2770,7 +2770,7 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0098) => q(MWK),
q(0099) => q(MYR),
q(0100) => q(MVR),
- q(0101) => q(MRO),
+ q(0101) => q(MRU),
q(0102) => q(MUR),
q(0103) => q(XUA),
q(0104) => q(MXN),
@@ -2798,7 +2798,7 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0126) => q(RWF),
q(0127) => q(SHP),
q(0128) => q(WST),
- q(0129) => q(STD),
+ q(0129) => q(STN),
q(0130) => q(SAR),
q(0131) => q(RSD),
q(0132) => q(SCR),
@@ -2829,8 +2829,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0157) => q(UAH),
q(0158) => q(AED),
q(0159) => q(USN),
- q(0160) => q(UYI),
- q(0161) => q(UYU),
+ q(0160) => q(UYU),
+ q(0161) => q(UYI),
q(0162) => q(UZS),
q(0163) => q(VUV),
q(0164) => q(VEF),
@@ -2864,12 +2864,12 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0014) => q(048),
q(0015) => q(050),
q(0016) => q(052),
- q(0017) => q(974),
+ q(0017) => q(933),
q(0018) => q(084),
q(0019) => q(952),
q(0020) => q(060),
- q(0021) => q(064),
- q(0022) => q(356),
+ q(0021) => q(356),
+ q(0022) => q(064),
q(0023) => q(068),
q(0024) => q(984),
q(0025) => q(977),
@@ -2884,8 +2884,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0034) => q(950),
q(0035) => q(124),
q(0036) => q(136),
- q(0037) => q(990),
- q(0038) => q(152),
+ q(0037) => q(152),
+ q(0038) => q(990),
q(0039) => q(156),
q(0040) => q(170),
q(0041) => q(970),
@@ -2894,8 +2894,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0044) => q(554),
q(0045) => q(188),
q(0046) => q(191),
- q(0047) => q(931),
- q(0048) => q(192),
+ q(0047) => q(192),
+ q(0048) => q(931),
q(0049) => q(532),
q(0050) => q(203),
q(0051) => q(208),
@@ -2948,7 +2948,7 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0098) => q(454),
q(0099) => q(458),
q(0100) => q(462),
- q(0101) => q(478),
+ q(0101) => q(929),
q(0102) => q(480),
q(0103) => q(965),
q(0104) => q(484),
@@ -2976,7 +2976,7 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0126) => q(646),
q(0127) => q(654),
q(0128) => q(882),
- q(0129) => q(678),
+ q(0129) => q(930),
q(0130) => q(682),
q(0131) => q(941),
q(0132) => q(690),
@@ -3007,8 +3007,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0157) => q(980),
q(0158) => q(784),
q(0159) => q(997),
- q(0160) => q(940),
- q(0161) => q(858),
+ q(0160) => q(858),
+ q(0161) => q(940),
q(0162) => q(860),
q(0163) => q(548),
q(0164) => q(937),
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm
index 483238fe87f..155879232ae 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::Currency_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Feb 23 12:58:17 EST 2018
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
q(ADP) => q(Andorran Peseta),
@@ -40,6 +40,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
q(LUF) => q(Luxembourg Franc),
q(LVL) => q(Latvian Lats),
q(MGF) => q(Malagasy Franc),
+ q(MRO) => q(Ouguiya),
q(MTL) => q(Maltese Lira),
q(MZM) => q(Metical),
q(NLG) => q(Netherlands Guilder),
@@ -51,6 +52,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
q(SIT) => q(Tolar),
q(SKK) => q(Slovak Koruna),
q(SRG) => q(Surinam Guilder),
+ q(STD) => q(Dobra),
q(TJR) => q(Tajik Ruble),
q(TMM) => q(Manat),
q(TPE) => q(Timor Escudo),
@@ -71,13 +73,17 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
$Locale::Codes::Retired{'currency'}{'num'}{'code'} = {
q(428) => q(Latvian Lats),
q(440) => q(Lithuanian Litas),
+ q(478) => q(Ouguiya),
q(654) => q(Saint Helena Pound),
+ q(678) => q(Dobra),
q(998) => q(US Dollar (Same day)),
};
$Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(andorran peseta) => [ q(ADP), q(Andorran Peseta) ],
q(aruban guilder) => [ q(AWG), q(Aruban Guilder) ],
+ q(azerbaijanian manat) => [ q(AZN), q(Azerbaijanian Manat) ],
+ q(belarussian ruble) => [ q(BYR), q(Belarussian Ruble) ],
q(belgian franc) => [ q(BEF), q(Belgian Franc) ],
q(bermudian dollar (customarily known as bermuda dollar)) => [ q(BMD), q(Bermudian Dollar (customarily known as Bermuda Dollar)) ],
q(bolivar) => [ q(VEB), q(Bolivar) ],
@@ -86,6 +92,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(candian dollar) => [ q(CAD), q(Candian Dollar) ],
q(cape verde escudo) => [ q(CVE), q(Cape Verde Escudo) ],
q(cedi) => [ q(GHS), q(Cedi) ],
+ q(comoro franc) => [ q(KMF), q(Comoro Franc) ],
q(convertible marks) => [ q(BAM), q(Convertible Marks) ],
q(croatian kuna) => [ q(HRK), q(Croatian Kuna) ],
q(cyprus pound) => [ q(CYP), q(Cyprus Pound) ],
@@ -104,12 +111,15 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(french franc) => [ q(FRF), q(French Franc) ],
q(german mark) => [ q(DEM), q(German Mark) ],
q(gold-franc) => [ q(XFO), q(Gold-Franc) ],
+ q(guinea franc) => [ q(GNF), q(Guinea Franc) ],
q(guinea-bissau peso) => [ q(GWP), q(Guinea-Bissau Peso) ],
q(irish pound) => [ q(IEP), q(Irish Pound) ],
q(italian lira) => [ q(ITL), q(Italian Lira) ],
q(karbovanets) => [ q(UAK), q(Karbovanets) ],
+ q(kip) => [ q(LAK), q(Kip) ],
q(kroon) => [ q(EEK), q(Kroon) ],
q(kuna) => [ q(HRK), q(Kuna) ],
+ q(kwacha) => [ q(MWK), q(Kwacha) ],
q(kwanza reajustado) => [ q(AOR), q(Kwanza Reajustado) ],
q(latvian lats) => [ q(LVL), q(Latvian Lats) ],
q(leu) => [ q(RON), q(Leu) ],
@@ -130,6 +140,8 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(new manat) => [ q(TMT), q(New Manat) ],
q(new romanian leu) => [ q(RON), q(New Romanian Leu) ],
q(new zaire) => [ q(ZRN), q(New Zaire) ],
+ q(nuevo sol) => [ q(PEN), q(Nuevo Sol) ],
+ q(philippine peso) => [ q(PHP), q(Philippine Peso) ],
q(portuguese escudo) => [ q(PTE), q(Portuguese Escudo) ],
q(saint helena pound) => [ q(SHP), q(Saint Helena Pound) ],
q(schilling) => [ q(ATS), q(Schilling) ],
@@ -153,16 +165,24 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
};
$Locale::Codes::Retired{'currency'}{'num'}{'name'} = {
+ q(azerbaijanian manat) => [ q(944), q(Azerbaijanian Manat) ],
+ q(belarussian ruble) => [ q(974), q(Belarussian Ruble) ],
q(bolivar fuerte) => [ q(937), q(Bolivar Fuerte) ],
q(cape verde escudo) => [ q(132), q(Cape Verde Escudo) ],
q(cedi) => [ q(936), q(Cedi) ],
+ q(comoro franc) => [ q(174), q(Comoro Franc) ],
q(croatian kuna) => [ q(191), q(Croatian Kuna) ],
+ q(guinea franc) => [ q(324), q(Guinea Franc) ],
+ q(kip) => [ q(418), q(Kip) ],
+ q(kwacha) => [ q(454), q(Kwacha) ],
q(latvian lats) => [ q(428), q(Latvian Lats) ],
q(leu) => [ q(946), q(Leu) ],
q(lithuanian litas) => [ q(440), q(Lithuanian Litas) ],
q(metical) => [ q(943), q(Metical) ],
q(new manat) => [ q(934), q(New Manat) ],
q(new romanian leu) => [ q(946), q(New Romanian Leu) ],
+ q(nuevo sol) => [ q(604), q(Nuevo Sol) ],
+ q(philippine peso) => [ q(608), q(Philippine Peso) ],
q(saint helena pound) => [ q(654), q(Saint Helena Pound) ],
q(unidades de fomento) => [ q(990), q(Unidades de fomento) ],
q(us dollar (same day)) => [ q(998), q(US Dollar (Same day)) ],
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pm
index 6376da26fe9..f4f82ba0111 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pm
@@ -1,95 +1,94 @@
package Locale::Codes::LangExt;
-# Copyright (c) 2011-2015 Sullivan Beck
+# Copyright (C) 2001 Canon Research Centre Europe (CRE).
+# Copyright (C) 2002-2009 Neil Bowers
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
-require 5.006;
use warnings;
+require 5.006;
+use Exporter qw(import);
-require Exporter;
-use Carp;
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
+
+################################################################################
+use if $] >= 5.027007, 'deprecate';
use Locale::Codes;
use Locale::Codes::Constants;
-use Locale::Codes::LangExt_Codes;
-use Locale::Codes::LangExt_Retired;
-
-#=======================================================================
-# Public Global Variables
-#=======================================================================
-our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-
-$VERSION='3.37';
-@ISA = qw(Exporter);
-@EXPORT = qw(code2langext
+@EXPORT = qw(
+ code2langext
langext2code
all_langext_codes
all_langext_names
langext_code2code
- LOCALE_LANGEXT_ALPHA
);
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_LANGEXT);
+
+our $obj = new Locale::Codes('langext');
+$obj->show_errors(0);
+
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
sub code2langext {
- return Locale::Codes::_code2name('langext',@_);
+ return $obj->code2name(@_);
}
sub langext2code {
- return Locale::Codes::_name2code('langext',@_);
+ return $obj->name2code(@_);
}
sub langext_code2code {
- return Locale::Codes::_code2code('langext',@_);
+ return $obj->code2code(@_);
}
sub all_langext_codes {
- return Locale::Codes::_all_codes('langext',@_);
+ return $obj->all_codes(@_);
}
sub all_langext_names {
- return Locale::Codes::_all_names('langext',@_);
+ return $obj->all_names(@_);
}
sub rename_langext {
- return Locale::Codes::_rename('langext',@_);
+ return $obj->rename_code(@_);
}
sub add_langext {
- return Locale::Codes::_add_code('langext',@_);
+ return $obj->add_code(@_);
}
sub delete_langext {
- return Locale::Codes::_delete_code('langext',@_);
+ return $obj->delete_code(@_);
}
sub add_langext_alias {
- return Locale::Codes::_add_alias('langext',@_);
+ return $obj->add_alias(@_);
}
sub delete_langext_alias {
- return Locale::Codes::_delete_alias('langext',@_);
+ return $obj->delete_alias(@_);
}
sub rename_langext_code {
- return Locale::Codes::_rename_code('langext',@_);
+ return $obj->replace_code(@_);
}
sub add_langext_code_alias {
- return Locale::Codes::_add_code_alias('langext',@_);
+ return $obj->add_code_alias(@_);
}
sub delete_langext_code_alias {
- return Locale::Codes::_delete_code_alias('langext',@_);
+ return $obj->delete_code_alias(@_);
}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pod
index 271a5ac78da..f20f1c2be8c 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt.pod
@@ -2,83 +2,107 @@
=head1 NAME
-Locale::Codes::LangExt - standard codes for language extension identification
+Locale::Codes::LangExt - module for dealing with langext code sets
=head1 SYNOPSIS
use Locale::Codes::LangExt;
- $lext = code2langext('acm'); # $lext gets 'Mesopotamian Arabic'
- $code = langext2code('Mesopotamian Arabic'); # $code gets 'acm'
+ $name = code2langext(CODE);
+ $code = langext2code(NAME);
@codes = all_langext_codes();
@names = all_langext_names();
=head1 DESCRIPTION
-This module provides access to standard codes
-used for identifying language extensions, such as those as defined in
-the IANA language registry.
+This module provides access to langext code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default IANA
-language registry codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
+
+=head1 ROUTINES
-=head1 SUPPORTED CODE SETS
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: langext
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-There are several different code sets you can use for identifying
-language extensions. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+The following functions are exported automatically:
-For example, the two are equivalent:
+=over 4
- $lext = code2langext('acm','alpha');
- $lext = code2langext('acm',LOCALE_LANGEXT_ALPHA);
+=item B<code2langext(CODE [,CODESET] [,'retired'])>
-The codesets currently supported are:
+See B<code2name> in L<Locale::Codes>
-=over 4
+=item B<langext2code(NAME [,CODESET] [,'retired'])>
-=item B<alpha>
+See B<name2code> in L<Locale::Codes>
-This is the set of three-letter (lowercase) codes from the IANA
-language registry, such as 'acm' for Mesopotamian Arabic.
+=item B<langext_code2code(CODE ,CODESET ,CODESET2)>
-This is the default code set.
+See B<code2code> in L<Locale::Codes>
+
+=item B<all_langext_codes([CODESET] [,'retired'])>
+
+See B<all_codes> in L<Locale::Codes>
+
+=item B<all_langext_names([CODESET] [,'retired'])>
+
+See B<all_names> in L<Locale::Codes>
=back
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2langext(CODE [,CODESET] [,'retired'])>
+=item B<Locale::Codes::Langext::show_errors(FLAG)>
-=item B<langext2code(NAME [,CODESET] [,'retired'])>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<langext_code2code(CODE ,CODESET ,CODESET2)>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
-=item B<all_langext_codes([CODESET] [,'retired'])>
+=item B<Locale::Codes::Langext::rename_langext(CODE ,NEW_NAME [,CODESET])>
-=item B<all_langext_names([CODESET] [,'retired'])>
+See B<rename_code> in L<Locale::Codes>
+
+=item B<Locale::Codes::Langext::add_langext(CODE ,NAME [,CODESET])>
+
+See B<add_code> in L<Locale::Codes>
-=item B<Locale::Codes::LangExt::rename_langext(CODE ,NEW_NAME [,CODESET])>
+=item B<Locale::Codes::Langext::delete_langext(CODE [,CODESET])>
-=item B<Locale::Codes::LangExt::add_langext(CODE ,NAME [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
-=item B<Locale::Codes::LangExt::delete_langext(CODE [,CODESET])>
+=item B<Locale::Codes::Langext::add_langext_alias(NAME ,NEW_NAME)>
-=item B<Locale::Codes::LangExt::add_langext_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
-=item B<Locale::Codes::LangExt::delete_langext_alias(NAME)>
+=item B<Locale::Codes::Langext::delete_langext_alias(NAME)>
-=item B<Locale::Codes::LangExt::rename_langext_code(CODE ,NEW_CODE [,CODESET])>
+See B<delete_alias> in L<Locale::Codes>
-=item B<Locale::Codes::LangExt::add_langext_code_alias(CODE ,NEW_CODE [,CODESET])>
+=item B<Locale::Codes::Langext::rename_langext_code(CODE ,NEW_CODE [,CODESET])>
-=item B<Locale::Codes::LangExt::delete_langext_code_alias(CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
-These routines are all documented in the L<Locale::Codes::API> man page.
+=item B<Locale::Codes::Langext::add_langext_code_alias(CODE ,NEW_CODE [,CODESET])>
+
+See B<add_code_alias> in L<Locale::Codes>
+
+=item B<Locale::Codes::Langext::delete_langext_code_alias(CODE [,CODESET])>
+
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -90,14 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.iana.org/assignments/language-subtag-registry>
-
-The IANA language subtag registry.
-
=back
=head1 AUTHOR
@@ -108,7 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Codes.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Codes.pm
index e2e1834603f..3d892a2f557 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Codes.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangExt_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:16 EST 2015
+# Generated on: Fri Feb 23 12:55:11 EST 2018
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
-$Locale::Codes::Data{'langext'}{'id'} = '0230';
+$Locale::Codes::Data{'langext'}{'id'} = '0233';
$Locale::Codes::Data{'langext'}{'id2names'} = {
q(0001) => [
@@ -381,6 +381,7 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
],
q(0120) => [
q(Loncong),
+ q(Sekak),
],
q(0121) => [
q(Lubu),
@@ -510,212 +511,221 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
q(Sudanese Creole Arabic),
],
q(0163) => [
- q(Pakistan Sign Language),
+ q(Papua New Guinean Sign Language),
],
q(0164) => [
- q(Peruvian Sign Language),
+ q(Pakistan Sign Language),
],
q(0165) => [
- q(Providencia Sign Language),
+ q(Peruvian Sign Language),
],
q(0166) => [
- q(Persian Sign Language),
+ q(Providencia Sign Language),
],
q(0167) => [
- q(Plains Indian Sign Language),
+ q(Persian Sign Language),
],
q(0168) => [
- q(Central Malay),
+ q(Plains Indian Sign Language),
],
q(0169) => [
- q(Penang Sign Language),
+ q(Central Malay),
],
q(0170) => [
- q(Puerto Rican Sign Language),
+ q(Penang Sign Language),
],
q(0171) => [
- q(Polish Sign Language),
+ q(Puerto Rican Sign Language),
],
q(0172) => [
- q(Philippine Sign Language),
+ q(Polish Sign Language),
],
q(0173) => [
- q(Portuguese Sign Language),
+ q(Philippine Sign Language),
],
q(0174) => [
- q(Paraguayan Sign Language),
- q(Lengua de Senas del Paraguay),
+ q(Portuguese Sign Language),
],
q(0175) => [
- q(Romanian Sign Language),
+ q(Paraguayan Sign Language),
+ q(Lengua de Senas del Paraguay),
],
q(0176) => [
- q(Rennellese Sign Language),
+ q(Romanian Sign Language),
],
q(0177) => [
q(Russian Sign Language),
],
q(0178) => [
- q(Saudi Arabian Sign Language),
+ q(Miriwoong Sign Language),
],
q(0179) => [
+ q(Saudi Arabian Sign Language),
+ ],
+ q(0180) => [
q(Langue des signes de Belgique Francophone),
q(French Belgian Sign Language),
],
- q(0180) => [
+ q(0181) => [
q(South African Sign Language),
],
- q(0181) => [
+ q(0182) => [
q(Swiss-German Sign Language),
],
- q(0182) => [
+ q(0183) => [
q(Sierra Leone Sign Language),
],
- q(0183) => [
+ q(0184) => [
q(Chadian Arabic),
],
- q(0184) => [
+ q(0185) => [
q(Swiss-Italian Sign Language),
],
- q(0185) => [
+ q(0186) => [
q(Singapore Sign Language),
],
- q(0186) => [
+ q(0187) => [
q(Albanian Sign Language),
],
- q(0187) => [
+ q(0188) => [
q(Sri Lankan Sign Language),
],
- q(0188) => [
+ q(0189) => [
q(Shihhi Arabic),
],
- q(0189) => [
+ q(0190) => [
q(Spanish Sign Language),
],
- q(0190) => [
+ q(0191) => [
q(Swiss-French Sign Language),
],
- q(0191) => [
+ q(0192) => [
q(Slovakian Sign Language),
],
- q(0192) => [
+ q(0193) => [
q(Congo Swahili),
],
- q(0193) => [
+ q(0194) => [
q(Swahili (individual language)),
q(Kiswahili),
],
- q(0194) => [
+ q(0195) => [
q(Swedish Sign Language),
],
- q(0195) => [
+ q(0196) => [
q(Al-Sayyid Bedouin Sign Language),
],
- q(0196) => [
+ q(0197) => [
+ q(Solomon Islands Sign Language),
+ ],
+ q(0198) => [
q(Temuan),
],
- q(0197) => [
+ q(0199) => [
q(Tunisian Sign Language),
],
- q(0198) => [
+ q(0200) => [
q(Turkish Sign Language),
q(Turk Isaret Dili),
],
- q(0199) => [
+ q(0201) => [
q(Thai Sign Language),
],
- q(0200) => [
+ q(0202) => [
q(Taiwan Sign Language),
],
- q(0201) => [
+ q(0203) => [
q(Tebul Sign Language),
],
- q(0202) => [
+ q(0204) => [
q(Tanzanian Sign Language),
],
- q(0203) => [
+ q(0205) => [
q(Ugandan Sign Language),
],
- q(0204) => [
+ q(0206) => [
q(Uruguayan Sign Language),
],
- q(0205) => [
+ q(0207) => [
q(Ukrainian Sign Language),
],
- q(0206) => [
+ q(0208) => [
q(Urubu-Kaapor Sign Language),
q(Kaapor Sign Language),
],
- q(0207) => [
+ q(0209) => [
q(Urak Lawoi'),
],
- q(0208) => [
+ q(0210) => [
q(Northern Uzbek),
],
- q(0209) => [
+ q(0211) => [
q(Southern Uzbek),
],
- q(0210) => [
+ q(0212) => [
q(Vlaamse Gebarentaal),
q(Flemish Sign Language),
],
- q(0211) => [
+ q(0213) => [
q(Kaur),
],
- q(0212) => [
+ q(0214) => [
q(Tenggarong Kutai Malay),
],
- q(0213) => [
+ q(0215) => [
q(Moldova Sign Language),
],
- q(0214) => [
+ q(0216) => [
q(Venezuelan Sign Language),
],
- q(0215) => [
+ q(0217) => [
q(Valencian Sign Language),
q(Llengua de signes valenciana),
],
- q(0216) => [
+ q(0218) => [
+ q(West Bengal Sign Language),
+ ],
+ q(0219) => [
q(Wu Chinese),
],
- q(0217) => [
+ q(0220) => [
q(Kenyan Sign Language),
],
- q(0218) => [
+ q(0221) => [
q(Malaysian Sign Language),
],
- q(0219) => [
+ q(0222) => [
q(Manado Malay),
],
- q(0220) => [
+ q(0223) => [
q(Moroccan Sign Language),
],
- q(0221) => [
+ q(0224) => [
q(Yolnu Sign Language),
],
- q(0222) => [
+ q(0225) => [
q(Yan-nhanu Sign Language),
],
- q(0223) => [
+ q(0226) => [
q(Yugoslavian Sign Language),
],
- q(0224) => [
+ q(0227) => [
q(Yue Chinese),
q(Cantonese),
],
- q(0225) => [
+ q(0228) => [
q(Zimbabwe Sign Language),
],
- q(0226) => [
+ q(0229) => [
q(Malay (individual language)),
],
- q(0227) => [
+ q(0230) => [
q(Negeri Sembilan Malay),
],
- q(0228) => [
+ q(0231) => [
q(Zambian Sign Language),
],
- q(0229) => [
+ q(0232) => [
q(Standard Malay),
],
};
@@ -730,11 +740,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(al-sayyid bedouin sign language) => [
- q(0195),
+ q(0196),
q(0),
],
q(albanian sign language) => [
- q(0186),
+ q(0187),
q(0),
],
q(algerian arabic) => [
@@ -834,7 +844,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(cantonese) => [
- q(0224),
+ q(0227),
q(1),
],
q(catalan sign language) => [
@@ -842,11 +852,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(central malay) => [
- q(0168),
+ q(0169),
q(0),
],
q(chadian arabic) => [
- q(0183),
+ q(0184),
q(0),
],
q(chadian sign language) => [
@@ -878,7 +888,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(congo swahili) => [
- q(0192),
+ q(0193),
q(0),
],
q(costa rican sign language) => [
@@ -958,11 +968,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(flemish sign language) => [
- q(0210),
+ q(0212),
q(1),
],
q(french belgian sign language) => [
- q(0179),
+ q(0180),
q(1),
],
q(french sign language) => [
@@ -1134,11 +1144,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(kaapor sign language) => [
- q(0206),
+ q(0208),
q(1),
],
q(kaur) => [
- q(0211),
+ q(0213),
q(0),
],
q(kedah malay) => [
@@ -1146,7 +1156,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(kenyan sign language) => [
- q(0217),
+ q(0220),
q(0),
],
q(kerinci) => [
@@ -1154,7 +1164,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(kiswahili) => [
- q(0193),
+ q(0194),
q(1),
],
q(konkani (individual language)) => [
@@ -1174,7 +1184,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(langue des signes de belgique francophone) => [
- q(0179),
+ q(0180),
q(0),
],
q(laos sign language) => [
@@ -1194,7 +1204,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(1),
],
q(lengua de senas del paraguay) => [
- q(0174),
+ q(0175),
q(1),
],
q(lengua de senas panamenas) => [
@@ -1222,7 +1232,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(2),
],
q(llengua de signes valenciana) => [
- q(0215),
+ q(0217),
q(1),
],
q(loncong) => [
@@ -1242,11 +1252,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(malay (individual language)) => [
- q(0226),
+ q(0229),
q(0),
],
q(malaysian sign language) => [
- q(0218),
+ q(0221),
q(0),
],
q(maltese sign language) => [
@@ -1254,7 +1264,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(manado malay) => [
- q(0219),
+ q(0222),
q(0),
],
q(mandarin chinese) => [
@@ -1301,8 +1311,12 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0139),
q(0),
],
+ q(miriwoong sign language) => [
+ q(0178),
+ q(0),
+ ],
q(moldova sign language) => [
- q(0213),
+ q(0215),
q(0),
],
q(monastic sign language) => [
@@ -1318,7 +1332,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(moroccan sign language) => [
- q(0220),
+ q(0223),
q(0),
],
q(mozambican sign language) => [
@@ -1338,7 +1352,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(negeri sembilan malay) => [
- q(0227),
+ q(0230),
q(0),
],
q(nepalese sign language) => [
@@ -1370,7 +1384,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(northern uzbek) => [
- q(0208),
+ q(0210),
q(0),
],
q(norwegian sign language) => [
@@ -1394,15 +1408,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(pakistan sign language) => [
- q(0163),
+ q(0164),
q(0),
],
q(panamanian sign language) => [
q(0127),
q(0),
],
+ q(papua new guinean sign language) => [
+ q(0163),
+ q(0),
+ ],
q(paraguayan sign language) => [
- q(0174),
+ q(0175),
q(0),
],
q(pattani malay) => [
@@ -1414,35 +1432,35 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(penang sign language) => [
- q(0169),
+ q(0170),
q(0),
],
q(persian sign language) => [
- q(0166),
+ q(0167),
q(0),
],
q(peruvian sign language) => [
- q(0164),
+ q(0165),
q(0),
],
q(philippine sign language) => [
- q(0172),
+ q(0173),
q(0),
],
q(plains indian sign language) => [
- q(0167),
+ q(0168),
q(0),
],
q(polish sign language) => [
- q(0171),
+ q(0172),
q(0),
],
q(portuguese sign language) => [
- q(0173),
+ q(0174),
q(0),
],
q(providencia sign language) => [
- q(0165),
+ q(0166),
q(0),
],
q(pu-xian chinese) => [
@@ -1450,19 +1468,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(puerto rican sign language) => [
- q(0170),
+ q(0171),
q(0),
],
q(quebec sign language) => [
q(0074),
q(0),
],
- q(rennellese sign language) => [
- q(0176),
- q(0),
- ],
q(romanian sign language) => [
- q(0175),
+ q(0176),
q(0),
],
q(russian sign language) => [
@@ -1486,31 +1500,39 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(saudi arabian sign language) => [
- q(0178),
+ q(0179),
q(0),
],
+ q(sekak) => [
+ q(0120),
+ q(1),
+ ],
q(selangor sign language) => [
q(0113),
q(0),
],
q(shihhi arabic) => [
- q(0188),
+ q(0189),
q(0),
],
q(sierra leone sign language) => [
- q(0182),
+ q(0183),
q(0),
],
q(singapore sign language) => [
- q(0185),
+ q(0186),
q(0),
],
q(slovakian sign language) => [
- q(0191),
+ q(0192),
+ q(0),
+ ],
+ q(solomon islands sign language) => [
+ q(0197),
q(0),
],
q(south african sign language) => [
- q(0180),
+ q(0181),
q(0),
],
q(south levantine arabic) => [
@@ -1518,15 +1540,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(southern uzbek) => [
- q(0209),
+ q(0211),
q(0),
],
q(spanish sign language) => [
- q(0189),
+ q(0190),
q(0),
],
q(sri lankan sign language) => [
- q(0187),
+ q(0188),
q(0),
],
q(standard arabic) => [
@@ -1538,7 +1560,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(standard malay) => [
- q(0229),
+ q(0232),
q(0),
],
q(sudanese arabic) => [
@@ -1554,23 +1576,23 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(2),
],
q(swahili (individual language)) => [
- q(0193),
+ q(0194),
q(0),
],
q(swedish sign language) => [
- q(0194),
+ q(0195),
q(0),
],
q(swiss-french sign language) => [
- q(0190),
+ q(0191),
q(0),
],
q(swiss-german sign language) => [
- q(0181),
+ q(0182),
q(0),
],
q(swiss-italian sign language) => [
- q(0184),
+ q(0185),
q(0),
],
q(ta'izzi-adeni arabic) => [
@@ -1578,7 +1600,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(taiwan sign language) => [
- q(0200),
+ q(0202),
q(0),
],
q(tajiki arabic) => [
@@ -1586,23 +1608,23 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(tanzanian sign language) => [
- q(0202),
+ q(0204),
q(0),
],
q(tebul sign language) => [
- q(0201),
+ q(0203),
q(0),
],
q(temuan) => [
- q(0196),
+ q(0198),
q(0),
],
q(tenggarong kutai malay) => [
- q(0212),
+ q(0214),
q(0),
],
q(thai sign language) => [
- q(0199),
+ q(0201),
q(0),
],
q(trinidad and tobago sign language) => [
@@ -1614,35 +1636,35 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(tunisian sign language) => [
- q(0197),
+ q(0199),
q(0),
],
q(turk isaret dili) => [
- q(0198),
+ q(0200),
q(1),
],
q(turkish sign language) => [
- q(0198),
+ q(0200),
q(0),
],
q(ugandan sign language) => [
- q(0203),
+ q(0205),
q(0),
],
q(ukrainian sign language) => [
- q(0205),
+ q(0207),
q(0),
],
q(urak lawoi') => [
- q(0207),
+ q(0209),
q(0),
],
q(urubu-kaapor sign language) => [
- q(0206),
+ q(0208),
q(0),
],
q(uruguayan sign language) => [
- q(0204),
+ q(0206),
q(0),
],
q(uzbeki arabic) => [
@@ -1650,19 +1672,23 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(valencian sign language) => [
- q(0215),
+ q(0217),
q(0),
],
q(venezuelan sign language) => [
- q(0214),
+ q(0216),
q(0),
],
q(vlaamse gebarentaal) => [
- q(0210),
+ q(0212),
+ q(0),
+ ],
+ q(west bengal sign language) => [
+ q(0218),
q(0),
],
q(wu chinese) => [
- q(0216),
+ q(0219),
q(0),
],
q(xiang chinese) => [
@@ -1670,11 +1696,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(yan-nhanu sign language) => [
- q(0222),
+ q(0225),
q(0),
],
q(yolnu sign language) => [
- q(0221),
+ q(0224),
q(0),
],
q(yucatec maya sign language) => [
@@ -1682,19 +1708,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(yue chinese) => [
- q(0224),
+ q(0227),
q(0),
],
q(yugoslavian sign language) => [
- q(0223),
+ q(0226),
q(0),
],
q(zambian sign language) => [
- q(0228),
+ q(0231),
q(0),
],
q(zimbabwe sign language) => [
- q(0225),
+ q(0228),
q(0),
],
};
@@ -2349,59 +2375,59 @@ $Locale::Codes::Data{'langext'}{'code2id'} = {
q(0162),
q(0),
],
- q(pks) => [
+ q(pgz) => [
q(0163),
q(0),
],
- q(prl) => [
+ q(pks) => [
q(0164),
q(0),
],
- q(prz) => [
+ q(prl) => [
q(0165),
q(0),
],
- q(psc) => [
+ q(prz) => [
q(0166),
q(0),
],
- q(psd) => [
+ q(psc) => [
q(0167),
q(0),
],
- q(pse) => [
+ q(psd) => [
q(0168),
q(0),
],
- q(psg) => [
+ q(pse) => [
q(0169),
q(0),
],
- q(psl) => [
+ q(psg) => [
q(0170),
q(0),
],
- q(pso) => [
+ q(psl) => [
q(0171),
q(0),
],
- q(psp) => [
+ q(pso) => [
q(0172),
q(0),
],
- q(psr) => [
+ q(psp) => [
q(0173),
q(0),
],
- q(pys) => [
+ q(psr) => [
q(0174),
q(0),
],
- q(rms) => [
+ q(pys) => [
q(0175),
q(0),
],
- q(rsi) => [
+ q(rms) => [
q(0176),
q(0),
],
@@ -2409,214 +2435,226 @@ $Locale::Codes::Data{'langext'}{'code2id'} = {
q(0177),
q(0),
],
- q(sdl) => [
+ q(rsm) => [
q(0178),
q(0),
],
- q(sfb) => [
+ q(sdl) => [
q(0179),
q(0),
],
- q(sfs) => [
+ q(sfb) => [
q(0180),
q(0),
],
- q(sgg) => [
+ q(sfs) => [
q(0181),
q(0),
],
- q(sgx) => [
+ q(sgg) => [
q(0182),
q(0),
],
- q(shu) => [
+ q(sgx) => [
q(0183),
q(0),
],
- q(slf) => [
+ q(shu) => [
q(0184),
q(0),
],
- q(sls) => [
+ q(slf) => [
q(0185),
q(0),
],
- q(sqk) => [
+ q(sls) => [
q(0186),
q(0),
],
- q(sqs) => [
+ q(sqk) => [
q(0187),
q(0),
],
- q(ssh) => [
+ q(sqs) => [
q(0188),
q(0),
],
- q(ssp) => [
+ q(ssh) => [
q(0189),
q(0),
],
- q(ssr) => [
+ q(ssp) => [
q(0190),
q(0),
],
- q(svk) => [
+ q(ssr) => [
q(0191),
q(0),
],
- q(swc) => [
+ q(svk) => [
q(0192),
q(0),
],
- q(swh) => [
+ q(swc) => [
q(0193),
q(0),
],
- q(swl) => [
+ q(swh) => [
q(0194),
q(0),
],
- q(syy) => [
+ q(swl) => [
q(0195),
q(0),
],
- q(tmw) => [
+ q(syy) => [
q(0196),
q(0),
],
- q(tse) => [
+ q(szs) => [
q(0197),
q(0),
],
- q(tsm) => [
+ q(tmw) => [
q(0198),
q(0),
],
- q(tsq) => [
+ q(tse) => [
q(0199),
q(0),
],
- q(tss) => [
+ q(tsm) => [
q(0200),
q(0),
],
- q(tsy) => [
+ q(tsq) => [
q(0201),
q(0),
],
- q(tza) => [
+ q(tss) => [
q(0202),
q(0),
],
- q(ugn) => [
+ q(tsy) => [
q(0203),
q(0),
],
- q(ugy) => [
+ q(tza) => [
q(0204),
q(0),
],
- q(ukl) => [
+ q(ugn) => [
q(0205),
q(0),
],
- q(uks) => [
+ q(ugy) => [
q(0206),
q(0),
],
- q(urk) => [
+ q(ukl) => [
q(0207),
q(0),
],
- q(uzn) => [
+ q(uks) => [
q(0208),
q(0),
],
- q(uzs) => [
+ q(urk) => [
q(0209),
q(0),
],
- q(vgt) => [
+ q(uzn) => [
q(0210),
q(0),
],
- q(vkk) => [
+ q(uzs) => [
q(0211),
q(0),
],
- q(vkt) => [
+ q(vgt) => [
q(0212),
q(0),
],
- q(vsi) => [
+ q(vkk) => [
q(0213),
q(0),
],
- q(vsl) => [
+ q(vkt) => [
q(0214),
q(0),
],
- q(vsv) => [
+ q(vsi) => [
q(0215),
q(0),
],
- q(wuu) => [
+ q(vsl) => [
q(0216),
q(0),
],
- q(xki) => [
+ q(vsv) => [
q(0217),
q(0),
],
- q(xml) => [
+ q(wbs) => [
q(0218),
q(0),
],
- q(xmm) => [
+ q(wuu) => [
q(0219),
q(0),
],
- q(xms) => [
+ q(xki) => [
q(0220),
q(0),
],
- q(ygs) => [
+ q(xml) => [
q(0221),
q(0),
],
- q(yhs) => [
+ q(xmm) => [
q(0222),
q(0),
],
- q(ysl) => [
+ q(xms) => [
q(0223),
q(0),
],
- q(yue) => [
+ q(ygs) => [
q(0224),
q(0),
],
- q(zib) => [
+ q(yhs) => [
q(0225),
q(0),
],
- q(zlm) => [
+ q(ysl) => [
q(0226),
q(0),
],
- q(zmi) => [
+ q(yue) => [
q(0227),
q(0),
],
- q(zsl) => [
+ q(zib) => [
q(0228),
q(0),
],
- q(zsm) => [
+ q(zlm) => [
q(0229),
q(0),
],
+ q(zmi) => [
+ q(0230),
+ q(0),
+ ],
+ q(zsl) => [
+ q(0231),
+ q(0),
+ ],
+ q(zsm) => [
+ q(0232),
+ q(0),
+ ],
},
};
@@ -2784,73 +2822,76 @@ $Locale::Codes::Data{'langext'}{'id2code'} = {
q(0160) => q(ors),
q(0161) => q(pel),
q(0162) => q(pga),
- q(0163) => q(pks),
- q(0164) => q(prl),
- q(0165) => q(prz),
- q(0166) => q(psc),
- q(0167) => q(psd),
- q(0168) => q(pse),
- q(0169) => q(psg),
- q(0170) => q(psl),
- q(0171) => q(pso),
- q(0172) => q(psp),
- q(0173) => q(psr),
- q(0174) => q(pys),
- q(0175) => q(rms),
- q(0176) => q(rsi),
+ q(0163) => q(pgz),
+ q(0164) => q(pks),
+ q(0165) => q(prl),
+ q(0166) => q(prz),
+ q(0167) => q(psc),
+ q(0168) => q(psd),
+ q(0169) => q(pse),
+ q(0170) => q(psg),
+ q(0171) => q(psl),
+ q(0172) => q(pso),
+ q(0173) => q(psp),
+ q(0174) => q(psr),
+ q(0175) => q(pys),
+ q(0176) => q(rms),
q(0177) => q(rsl),
- q(0178) => q(sdl),
- q(0179) => q(sfb),
- q(0180) => q(sfs),
- q(0181) => q(sgg),
- q(0182) => q(sgx),
- q(0183) => q(shu),
- q(0184) => q(slf),
- q(0185) => q(sls),
- q(0186) => q(sqk),
- q(0187) => q(sqs),
- q(0188) => q(ssh),
- q(0189) => q(ssp),
- q(0190) => q(ssr),
- q(0191) => q(svk),
- q(0192) => q(swc),
- q(0193) => q(swh),
- q(0194) => q(swl),
- q(0195) => q(syy),
- q(0196) => q(tmw),
- q(0197) => q(tse),
- q(0198) => q(tsm),
- q(0199) => q(tsq),
- q(0200) => q(tss),
- q(0201) => q(tsy),
- q(0202) => q(tza),
- q(0203) => q(ugn),
- q(0204) => q(ugy),
- q(0205) => q(ukl),
- q(0206) => q(uks),
- q(0207) => q(urk),
- q(0208) => q(uzn),
- q(0209) => q(uzs),
- q(0210) => q(vgt),
- q(0211) => q(vkk),
- q(0212) => q(vkt),
- q(0213) => q(vsi),
- q(0214) => q(vsl),
- q(0215) => q(vsv),
- q(0216) => q(wuu),
- q(0217) => q(xki),
- q(0218) => q(xml),
- q(0219) => q(xmm),
- q(0220) => q(xms),
- q(0221) => q(ygs),
- q(0222) => q(yhs),
- q(0223) => q(ysl),
- q(0224) => q(yue),
- q(0225) => q(zib),
- q(0226) => q(zlm),
- q(0227) => q(zmi),
- q(0228) => q(zsl),
- q(0229) => q(zsm),
+ q(0178) => q(rsm),
+ q(0179) => q(sdl),
+ q(0180) => q(sfb),
+ q(0181) => q(sfs),
+ q(0182) => q(sgg),
+ q(0183) => q(sgx),
+ q(0184) => q(shu),
+ q(0185) => q(slf),
+ q(0186) => q(sls),
+ q(0187) => q(sqk),
+ q(0188) => q(sqs),
+ q(0189) => q(ssh),
+ q(0190) => q(ssp),
+ q(0191) => q(ssr),
+ q(0192) => q(svk),
+ q(0193) => q(swc),
+ q(0194) => q(swh),
+ q(0195) => q(swl),
+ q(0196) => q(syy),
+ q(0197) => q(szs),
+ q(0198) => q(tmw),
+ q(0199) => q(tse),
+ q(0200) => q(tsm),
+ q(0201) => q(tsq),
+ q(0202) => q(tss),
+ q(0203) => q(tsy),
+ q(0204) => q(tza),
+ q(0205) => q(ugn),
+ q(0206) => q(ugy),
+ q(0207) => q(ukl),
+ q(0208) => q(uks),
+ q(0209) => q(urk),
+ q(0210) => q(uzn),
+ q(0211) => q(uzs),
+ q(0212) => q(vgt),
+ q(0213) => q(vkk),
+ q(0214) => q(vkt),
+ q(0215) => q(vsi),
+ q(0216) => q(vsl),
+ q(0217) => q(vsv),
+ q(0218) => q(wbs),
+ q(0219) => q(wuu),
+ q(0220) => q(xki),
+ q(0221) => q(xml),
+ q(0222) => q(xmm),
+ q(0223) => q(xms),
+ q(0224) => q(ygs),
+ q(0225) => q(yhs),
+ q(0226) => q(ysl),
+ q(0227) => q(yue),
+ q(0228) => q(zib),
+ q(0229) => q(zlm),
+ q(0230) => q(zmi),
+ q(0231) => q(zsl),
+ q(0232) => q(zsm),
},
};
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm
index a0ec2d28176..dcd51e68129 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangExt_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Feb 23 12:58:17 EST 2018
use strict;
require 5.006;
@@ -11,14 +11,16 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Retired{'langext'}{'alpha'}{'code'} = {
+ q(rsi) => q(Rennellese Sign Language),
q(yds) => q(Yiddish Sign Language),
};
$Locale::Codes::Retired{'langext'}{'alpha'}{'name'} = {
q(hawai'i pidgin sign language) => [ q(hps), q(Hawai'i Pidgin Sign Language) ],
+ q(rennellese sign language) => [ q(rsi), q(Rennellese Sign Language) ],
q(yiddish sign language) => [ q(yds), q(Yiddish Sign Language) ],
};
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm
index fccec91784b..38ec8e64023 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm
@@ -1,95 +1,94 @@
package Locale::Codes::LangFam;
-# Copyright (c) 2011-2015 Sullivan Beck
+# Copyright (C) 2001 Canon Research Centre Europe (CRE).
+# Copyright (C) 2002-2009 Neil Bowers
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
-require 5.006;
use warnings;
+require 5.006;
+use Exporter qw(import);
-require Exporter;
-use Carp;
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
+
+################################################################################
+use if $] >= 5.027007, 'deprecate';
use Locale::Codes;
use Locale::Codes::Constants;
-use Locale::Codes::LangFam_Codes;
-use Locale::Codes::LangFam_Retired;
-
-#=======================================================================
-# Public Global Variables
-#=======================================================================
-our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-
-$VERSION='3.37';
-@ISA = qw(Exporter);
-@EXPORT = qw(code2langfam
+@EXPORT = qw(
+ code2langfam
langfam2code
all_langfam_codes
all_langfam_names
langfam_code2code
- LOCALE_LANGFAM_ALPHA
);
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_LANGFAM);
+
+our $obj = new Locale::Codes('langfam');
+$obj->show_errors(0);
+
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
sub code2langfam {
- return Locale::Codes::_code2name('langfam',@_);
+ return $obj->code2name(@_);
}
sub langfam2code {
- return Locale::Codes::_name2code('langfam',@_);
+ return $obj->name2code(@_);
}
sub langfam_code2code {
- return Locale::Codes::_code2code('langfam',@_);
+ return $obj->code2code(@_);
}
sub all_langfam_codes {
- return Locale::Codes::_all_codes('langfam',@_);
+ return $obj->all_codes(@_);
}
sub all_langfam_names {
- return Locale::Codes::_all_names('langfam',@_);
+ return $obj->all_names(@_);
}
sub rename_langfam {
- return Locale::Codes::_rename('langfam',@_);
+ return $obj->rename_code(@_);
}
sub add_langfam {
- return Locale::Codes::_add_code('langfam',@_);
+ return $obj->add_code(@_);
}
sub delete_langfam {
- return Locale::Codes::_delete_code('langfam',@_);
+ return $obj->delete_code(@_);
}
sub add_langfam_alias {
- return Locale::Codes::_add_alias('langfam',@_);
+ return $obj->add_alias(@_);
}
sub delete_langfam_alias {
- return Locale::Codes::_delete_alias('langfam',@_);
+ return $obj->delete_alias(@_);
}
sub rename_langfam_code {
- return Locale::Codes::_rename_code('langfam',@_);
+ return $obj->replace_code(@_);
}
sub add_langfam_code_alias {
- return Locale::Codes::_add_code_alias('langfam',@_);
+ return $obj->add_code_alias(@_);
}
sub delete_langfam_code_alias {
- return Locale::Codes::_delete_code_alias('langfam',@_);
+ return $obj->delete_code_alias(@_);
}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod
index acf71f5c910..7fbf9a90a57 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam.pod
@@ -2,83 +2,107 @@
=head1 NAME
-Locale::Codes::LangFam - standard codes for language extension identification
+Locale::Codes::LangFam - module for dealing with langfam code sets
=head1 SYNOPSIS
use Locale::Codes::LangFam;
- $lext = code2langfam('apa'); # $lext gets 'Apache languages'
- $code = langfam2code('Apache languages'); # $code gets 'apa'
+ $name = code2langfam(CODE);
+ $code = langfam2code(NAME);
@codes = all_langfam_codes();
@names = all_langfam_names();
=head1 DESCRIPTION
-This module provides access to standard codes
-used for identifying language families, such as those as defined in
-ISO 639-5.
+This module provides access to langfam code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO 639-5
-language family codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
+
+=head1 ROUTINES
-=head1 SUPPORTED CODE SETS
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: langfam
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-There are several different code sets you can use for identifying
-language families. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+The following functions are exported automatically:
-For example, the two are equivalent:
+=over 4
- $lext = code2langfam('apa','alpha');
- $lext = code2langfam('apa',LOCALE_LANGFAM_ALPHA);
+=item B<code2langfam(CODE [,CODESET] [,'retired'])>
-The codesets currently supported are:
+See B<code2name> in L<Locale::Codes>
-=over 4
+=item B<langfam2code(NAME [,CODESET] [,'retired'])>
-=item B<alpha>
+See B<name2code> in L<Locale::Codes>
-This is the set of three-letter (lowercase) codes from ISO 639-5
-such as 'apa' for Apache languages.
+=item B<langfam_code2code(CODE ,CODESET ,CODESET2)>
-This is the default code set.
+See B<code2code> in L<Locale::Codes>
+
+=item B<all_langfam_codes([CODESET] [,'retired'])>
+
+See B<all_codes> in L<Locale::Codes>
+
+=item B<all_langfam_names([CODESET] [,'retired'])>
+
+See B<all_names> in L<Locale::Codes>
=back
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2langfam(CODE [,CODESET] [,'retired'])>
+=item B<Locale::Codes::Langfam::show_errors(FLAG)>
-=item B<langfam2code(NAME [,CODESET] [,'retired'])>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<langfam_code2code(CODE ,CODESET ,CODESET2)>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
-=item B<all_langfam_codes([CODESET] [,'retired'])>
+=item B<Locale::Codes::Langfam::rename_langfam(CODE ,NEW_NAME [,CODESET])>
-=item B<all_langfam_names([CODESET] [,'retired'])>
+See B<rename_code> in L<Locale::Codes>
+
+=item B<Locale::Codes::Langfam::add_langfam(CODE ,NAME [,CODESET])>
+
+See B<add_code> in L<Locale::Codes>
-=item B<Locale::Codes::LangFam::rename_langfam(CODE ,NEW_NAME [,CODESET])>
+=item B<Locale::Codes::Langfam::delete_langfam(CODE [,CODESET])>
-=item B<Locale::Codes::LangFam::add_langfam(CODE ,NAME [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
-=item B<Locale::Codes::LangFam::delete_langfam(CODE [,CODESET])>
+=item B<Locale::Codes::Langfam::add_langfam_alias(NAME ,NEW_NAME)>
-=item B<Locale::Codes::LangFam::add_langfam_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
-=item B<Locale::Codes::LangFam::delete_langfam_alias(NAME)>
+=item B<Locale::Codes::Langfam::delete_langfam_alias(NAME)>
-=item B<Locale::Codes::LangFam::rename_langfam_code(CODE ,NEW_CODE [,CODESET])>
+See B<delete_alias> in L<Locale::Codes>
-=item B<Locale::Codes::LangFam::add_langfam_code_alias(CODE ,NEW_CODE [,CODESET])>
+=item B<Locale::Codes::Langfam::rename_langfam_code(CODE ,NEW_CODE [,CODESET])>
-=item B<Locale::Codes::LangFam::delete_langfam_code_alias(CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
-These routines are all documented in the L<Locale::Codes::API> man page.
+=item B<Locale::Codes::Langfam::add_langfam_code_alias(CODE ,NEW_CODE [,CODESET])>
+
+See B<add_code_alias> in L<Locale::Codes>
+
+=item B<Locale::Codes::Langfam::delete_langfam_code_alias(CODE [,CODESET])>
+
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -90,14 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.loc.gov/standards/iso639-5/id.php>
-
-ISO 639-5 .
-
=back
=head1 AUTHOR
@@ -108,7 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm
index 090806199ab..26f9285b196 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangFam_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:25 EST 2015
+# Generated on: Fri Feb 23 12:55:15 EST 2018
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Data{'langfam'}{'id'} = '0116';
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm
index 2fce4216977..da15aa8d90e 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm
@@ -10,7 +10,7 @@ use warnings;
require 5.002;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Retired{'langfam'}{'alpha'}{'code'} = {
};
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pm
index 23b20cffb05..504bc02f1cd 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pm
@@ -1,96 +1,94 @@
package Locale::Codes::LangVar;
-# Copyright (c) 2011-2015 Sullivan Beck
+# Copyright (C) 2001 Canon Research Centre Europe (CRE).
+# Copyright (C) 2002-2009 Neil Bowers
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
-require 5.006;
use warnings;
+require 5.006;
+use Exporter qw(import);
-require Exporter;
-use Carp;
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
+
+################################################################################
+use if $] >= 5.027007, 'deprecate';
use Locale::Codes;
use Locale::Codes::Constants;
-use Locale::Codes::LangVar_Codes;
-use Locale::Codes::LangVar_Retired;
-
-#=======================================================================
-# Public Global Variables
-#=======================================================================
-our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-
-$VERSION='3.37';
-@ISA = qw(Exporter);
-@EXPORT = qw(code2langvar
+@EXPORT = qw(
+ code2langvar
langvar2code
all_langvar_codes
all_langvar_names
langvar_code2code
- LOCALE_LANGVAR_ALPHA
);
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_LANGVAR);
+
+our $obj = new Locale::Codes('langvar');
+$obj->show_errors(0);
+
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
sub code2langvar {
- return Locale::Codes::_code2name('langvar',@_);
+ return $obj->code2name(@_);
}
sub langvar2code {
- return Locale::Codes::_name2code('langvar',@_);
+ return $obj->name2code(@_);
}
sub langvar_code2code {
-
- return Locale::Codes::_code2code('langvar',@_);
+ return $obj->code2code(@_);
}
sub all_langvar_codes {
- return Locale::Codes::_all_codes('langvar',@_);
+ return $obj->all_codes(@_);
}
sub all_langvar_names {
- return Locale::Codes::_all_names('langvar',@_);
+ return $obj->all_names(@_);
}
sub rename_langvar {
- return Locale::Codes::_rename('langvar',@_);
+ return $obj->rename_code(@_);
}
sub add_langvar {
- return Locale::Codes::_add_code('langvar',@_);
+ return $obj->add_code(@_);
}
sub delete_langvar {
- return Locale::Codes::_delete_code('langvar',@_);
+ return $obj->delete_code(@_);
}
sub add_langvar_alias {
- return Locale::Codes::_add_alias('langvar',@_);
+ return $obj->add_alias(@_);
}
sub delete_langvar_alias {
- return Locale::Codes::_delete_alias('langvar',@_);
+ return $obj->delete_alias(@_);
}
sub rename_langvar_code {
- return Locale::Codes::_rename_code('langvar',@_);
+ return $obj->replace_code(@_);
}
sub add_langvar_code_alias {
- return Locale::Codes::_add_code_alias('langvar',@_);
+ return $obj->add_code_alias(@_);
}
sub delete_langvar_code_alias {
- return Locale::Codes::_delete_code_alias('langvar',@_);
+ return $obj->delete_code_alias(@_);
}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pod
index b815e13cb7f..30340feb1ee 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar.pod
@@ -2,85 +2,107 @@
=head1 NAME
-Locale::Codes::LangVar - standard codes for language variation identification
+Locale::Codes::LangVar - module for dealing with langvar code sets
=head1 SYNOPSIS
use Locale::Codes::LangVar;
- $lvar = code2langvar('acm'); # $lvar gets 'Mesopotamian Arabic'
- $code = langvar2code('Mesopotamian Arabic'); # $code gets 'acm'
+ $name = code2langvar(CODE);
+ $code = langvar2code(NAME);
@codes = all_langvar_codes();
@names = all_langvar_names();
=head1 DESCRIPTION
-This module provides access to standard codes
-used for identifying language variations, such as those as defined in
-the IANA language registry.
+This module provides access to langvar code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default IANA
-language registry codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
-=head1 SUPPORTED CODE SETS
+=head1 ROUTINES
-There are several different code sets you can use for identifying
-language variations. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: langvar
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-For example, the two are equivalent:
+The following functions are exported automatically:
- $lvar = code2langvar('arevela','alpha');
- $lvar = code2langvar('arevela',LOCALE_LANGVAR_ALPHA);
+=over 4
-The codesets currently supported are:
+=item B<code2langvar(CODE [,CODESET] [,'retired'])>
-=over 4
+See B<code2name> in L<Locale::Codes>
+
+=item B<langvar2code(NAME [,CODESET] [,'retired'])>
-=item B<alpha>
+See B<name2code> in L<Locale::Codes>
-This is the set of alphanumeric codes from the IANA
-language registry, such as 'arevela' for Eastern Armenian.
+=item B<langvar_code2code(CODE ,CODESET ,CODESET2)>
+
+See B<code2code> in L<Locale::Codes>
-This code set is identified with the symbol C<LOCALE_LANGVAR_ALPHA>.
+=item B<all_langvar_codes([CODESET] [,'retired'])>
-This is the default code set.
+See B<all_codes> in L<Locale::Codes>
+
+=item B<all_langvar_names([CODESET] [,'retired'])>
+
+See B<all_names> in L<Locale::Codes>
=back
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2langvar(CODE [,CODESET] [,'retired'])>
+=item B<Locale::Codes::Langvar::show_errors(FLAG)>
-=item B<langvar2code(NAME [,CODESET] [,'retired'])>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<langvar_code2code(CODE ,CODESET ,CODESET2)>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
-=item B<all_langvar_codes([CODESET] [,'retired'])>
+=item B<Locale::Codes::Langvar::rename_langvar(CODE ,NEW_NAME [,CODESET])>
-=item B<all_langvar_names([CODESET] [,'retired'])>
+See B<rename_code> in L<Locale::Codes>
+
+=item B<Locale::Codes::Langvar::add_langvar(CODE ,NAME [,CODESET])>
+
+See B<add_code> in L<Locale::Codes>
-=item B<Locale::Codes::LangVar::rename_langvar(CODE ,NEW_NAME [,CODESET])>
+=item B<Locale::Codes::Langvar::delete_langvar(CODE [,CODESET])>
-=item B<Locale::Codes::LangVar::add_langvar(CODE ,NAME [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
-=item B<Locale::Codes::LangVar::delete_langvar(CODE [,CODESET])>
+=item B<Locale::Codes::Langvar::add_langvar_alias(NAME ,NEW_NAME)>
-=item B<Locale::Codes::LangVar::add_langvar_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
-=item B<Locale::Codes::LangVar::delete_langvar_alias(NAME)>
+=item B<Locale::Codes::Langvar::delete_langvar_alias(NAME)>
-=item B<Locale::Codes::LangVar::rename_langvar_code(CODE ,NEW_CODE [,CODESET])>
+See B<delete_alias> in L<Locale::Codes>
-=item B<Locale::Codes::LangVar::add_langvar_code_alias(CODE ,NEW_CODE [,CODESET])>
+=item B<Locale::Codes::Langvar::rename_langvar_code(CODE ,NEW_CODE [,CODESET])>
-=item B<Locale::Codes::LangVar::delete_langvar_code_alias(CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
-These routines are all documented in the L<Locale::Codes::API> man page.
+=item B<Locale::Codes::Langvar::add_langvar_code_alias(CODE ,NEW_CODE [,CODESET])>
+
+See B<add_code_alias> in L<Locale::Codes>
+
+=item B<Locale::Codes::Langvar::delete_langvar_code_alias(CODE [,CODESET])>
+
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -92,14 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.iana.org/assignments/language-subtag-registry>
-
-The IANA language subtag registry.
-
=back
=head1 AUTHOR
@@ -110,7 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Codes.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Codes.pm
index 7613dd056c6..59b74307c91 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Codes.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangVar_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:22 EST 2015
+# Generated on: Fri Feb 23 12:55:14 EST 2018
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
-$Locale::Codes::Data{'langvar'}{'id'} = '0073';
+$Locale::Codes::Data{'langvar'}{'id'} = '0086';
$Locale::Codes::Data{'langvar'}{'id2names'} = {
q(0001) => [
@@ -45,120 +45,145 @@ $Locale::Codes::Data{'langvar'}{'id2names'} = {
q(Boni dialect),
],
q(0010) => [
- q(Portuguese Language Orthographic Agreement of 1990 (Acordo Ortografico da Lingua Portuguesa de 1990)),
+ q(Akuapem Twi),
],
q(0011) => [
- q(Eastern Armenian),
+ q(Portuguese Language Orthographic Agreement of 1990 (Acordo Ortografico da Lingua Portuguesa de 1990)),
],
q(0012) => [
- q(Western Armenian),
+ q(Eastern Armenian),
],
q(0013) => [
- q(Unified Turkic Latin Alphabet (Historical)),
+ q(Western Armenian),
],
q(0014) => [
- q(The Balanka dialect of Anii),
+ q(Asante Twi),
+ q(Ashanti Twi),
],
q(0015) => [
- q(The Barlavento dialect group of Kabuverdianu),
+ q(Unified Turkic Latin Alphabet (Historical)),
],
q(0016) => [
- q(Buddhist Hybrid Sanskrit),
+ q(The Balanka dialect of Anii),
],
q(0017) => [
- q(Biscayan dialect of Basque),
+ q(The Barlavento dialect group of Kabuverdianu),
],
q(0018) => [
+ q(Basic English),
+ ],
+ q(0019) => [
+ q(Buddhist Hybrid Sanskrit),
+ ],
+ q(0020) => [
+ q(Biscayan dialect of Basque),
+ ],
+ q(0021) => [
q(The San Giorgio dialect of Resian),
q(The Bila dialect of Resian),
],
- q(0019) => [
+ q(0022) => [
q(Slovene in Bohoric alphabet),
],
- q(0020) => [
+ q(0023) => [
q(Boontling),
],
- q(0021) => [
+ q(0024) => [
q(Portuguese-Brazilian Orthographic Convention of 1945 (Convencao Ortografica Luso-Brasileira de 1945)),
],
- q(0022) => [
+ q(0025) => [
+ q(Cornu-English),
+ q(Cornish English),
+ q(Anglo-Cornish),
+ ],
+ q(0026) => [
q(Slovene in Dajnko alphabet),
],
- q(0023) => [
+ q(0027) => [
q(Serbian with Ekavian pronunciation),
],
- q(0024) => [
+ q(0028) => [
q(Early Modern English (1500-1700)),
],
- q(0025) => [
+ q(0029) => [
q(International Phonetic Alphabet),
],
- q(0026) => [
+ q(0030) => [
+ q(North American Phonetic Alphabet),
+ q(Americanist Phonetic Notation),
+ ],
+ q(0031) => [
q(Uralic Phonetic Alphabet),
],
- q(0027) => [
+ q(0032) => [
q(X-SAMPA transcription),
],
- q(0028) => [
+ q(0033) => [
q(Hepburn romanization),
],
- q(0029) => [
+ q(0034) => [
q(Norwegian in Hognorsk (High Norwegian) orthography),
],
- q(0030) => [
+ q(0035) => [
+ q(Standard H-system orthographic fallback for spelling Esperanto),
+ ],
+ q(0036) => [
q(Serbian with Ijekavian pronunciation),
],
- q(0031) => [
+ q(0037) => [
q(Epic Sanskrit),
],
- q(0032) => [
+ q(0038) => [
+ q(Bulgarian in 1899 orthography),
+ ],
+ q(0039) => [
q(Jauer dialect of Romansh),
],
- q(0033) => [
+ q(0040) => [
q(Jyutping Cantonese Romanization),
],
- q(0034) => [
+ q(0041) => [
q(Common Cornish orthography of Revived Cornish),
],
- q(0035) => [
+ q(0042) => [
q(The Kociewie dialect of Polish),
],
- q(0036) => [
+ q(0043) => [
q(Standard Cornish orthography of Revived Cornish),
q(Kernowek Standard),
],
- q(0037) => [
+ q(0044) => [
q(Classical Sanskrit),
],
- q(0038) => [
+ q(0045) => [
q(The Lipovaz dialect of Resian),
q(The Lipovec dialect of Resian),
],
- q(0039) => [
+ q(0046) => [
q(Post-1917 Russian orthography),
],
- q(0040) => [
+ q(0047) => [
q(Slovene in Metelko alphabet),
],
- q(0041) => [
+ q(0048) => [
q(Monotonic Greek),
],
- q(0042) => [
+ q(0049) => [
q(Ndyuka dialect),
q(Aukan dialect),
],
- q(0043) => [
+ q(0050) => [
q(Natisone dialect),
q(Nadiza dialect),
],
- q(0044) => [
+ q(0051) => [
q(Newfoundland English),
],
- q(0045) => [
+ q(0052) => [
q(The Gniva dialect of Resian),
q(The Njiva dialect of Resian),
],
- q(0046) => [
+ q(0053) => [
q(Volapuk nulik),
q(Volapuk perevidol),
q(Volapuk nuladik),
@@ -167,91 +192,109 @@ $Locale::Codes::Data{'langvar'}{'id2names'} = {
q(Revised Volapuk),
q(Modern Volapuk),
],
- q(0047) => [
+ q(0054) => [
q(The Oseacco dialect of Resian),
q(The Osojane dialect of Resian),
],
- q(0048) => [
+ q(0055) => [
q(Oxford English Dictionary spelling),
],
- q(0049) => [
+ q(0056) => [
+ q(Pahawh Hmong Second Stage Reduced orthography),
+ ],
+ q(0057) => [
+ q(Pahawh Hmong Third Stage Reduced orthography),
+ ],
+ q(0058) => [
+ q(Pahawh Hmong Final Version orthography),
+ ],
+ q(0059) => [
q(Pamaka dialect),
],
- q(0050) => [
+ q(0060) => [
q(Petrine orthography),
],
- q(0051) => [
+ q(0061) => [
q(Pinyin romanization),
],
- q(0052) => [
+ q(0062) => [
q(Polytonic Greek),
],
- q(0053) => [
+ q(0063) => [
q(Puter idiom of Romansh),
],
- q(0054) => [
+ q(0064) => [
q(Volapuk rigik),
q(Schleyer's Volapuk),
q(Original Volapuk),
q(Classic Volapuk),
],
- q(0055) => [
+ q(0065) => [
q(Resian),
q(Resianic),
q(Rezijan),
],
- q(0056) => [
+ q(0066) => [
q(Rumantsch Grischun),
],
- q(0057) => [
+ q(0067) => [
q(Scottish Standard English),
],
- q(0058) => [
+ q(0068) => [
q(Scouse),
],
- q(0059) => [
+ q(0069) => [
+ q(Simplified form),
+ ],
+ q(0070) => [
q(The Stolvizza dialect of Resian),
q(The Solbica dialect of Resian),
],
- q(0060) => [
+ q(0071) => [
q(The Sotavento dialect group of Kabuverdianu),
],
- q(0061) => [
+ q(0072) => [
+ q(Spanglish),
+ ],
+ q(0073) => [
q(Surmiran idiom of Romansh),
],
- q(0062) => [
+ q(0074) => [
q(Sursilvan idiom of Romansh),
],
- q(0063) => [
+ q(0075) => [
q(Sutsilvan idiom of Romansh),
],
- q(0064) => [
+ q(0076) => [
q(Belarusian in Taraskievica orthography),
],
- q(0065) => [
+ q(0077) => [
q(Unified Cornish orthography of Revived Cornish),
],
- q(0066) => [
+ q(0078) => [
q(Unified Cornish Revised orthography of Revived Cornish),
],
- q(0067) => [
+ q(0079) => [
q(Ulster dialect of Scots),
],
- q(0068) => [
+ q(0080) => [
q(Unifon phonetic alphabet),
],
- q(0069) => [
+ q(0081) => [
q(Vedic Sanskrit),
],
- q(0070) => [
+ q(0082) => [
q(Valencian),
],
- q(0071) => [
+ q(0083) => [
q(Vallader idiom of Romansh),
],
- q(0072) => [
+ q(0084) => [
q(Wade-Giles romanization),
],
+ q(0085) => [
+ q(Standard X-system orthographic fallback for spelling Esperanto),
+ ],
};
$Locale::Codes::Data{'langvar'}{'alias2id'} = {
@@ -259,6 +302,10 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0004),
q(0),
],
+ q(akuapem twi) => [
+ q(0010),
+ q(0),
+ ],
q(ala-lc romanization, 1997 edition) => [
q(0008),
q(0),
@@ -267,16 +314,36 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0009),
q(0),
],
+ q(americanist phonetic notation) => [
+ q(0030),
+ q(1),
+ ],
+ q(anglo-cornish) => [
+ q(0025),
+ q(2),
+ ],
+ q(asante twi) => [
+ q(0014),
+ q(0),
+ ],
+ q(ashanti twi) => [
+ q(0014),
+ q(1),
+ ],
q(aukan dialect) => [
- q(0042),
+ q(0049),
q(1),
],
+ q(basic english) => [
+ q(0018),
+ q(0),
+ ],
q(belarusian in taraskievica orthography) => [
- q(0064),
+ q(0076),
q(0),
],
q(biscayan dialect of basque) => [
- q(0017),
+ q(0020),
q(0),
],
q(boni dialect) => [
@@ -284,31 +351,43 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(1),
],
q(boontling) => [
- q(0020),
+ q(0023),
q(0),
],
q(buddhist hybrid sanskrit) => [
- q(0016),
+ q(0019),
+ q(0),
+ ],
+ q(bulgarian in 1899 orthography) => [
+ q(0038),
q(0),
],
q(classic volapuk) => [
- q(0054),
+ q(0064),
q(3),
],
q(classical sanskrit) => [
- q(0037),
+ q(0044),
q(0),
],
q(common cornish orthography of revived cornish) => [
- q(0034),
+ q(0041),
+ q(0),
+ ],
+ q(cornish english) => [
+ q(0025),
+ q(1),
+ ],
+ q(cornu-english) => [
+ q(0025),
q(0),
],
q(de jong's volapuk) => [
- q(0046),
+ q(0053),
q(3),
],
q(early modern english (1500-1700)) => [
- q(0024),
+ q(0028),
q(0),
],
q(early modern french) => [
@@ -316,11 +395,11 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(eastern armenian) => [
- q(0011),
+ q(0012),
q(0),
],
q(epic sanskrit) => [
- q(0031),
+ q(0037),
q(0),
],
q(german orthography of 1996) => [
@@ -328,23 +407,23 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(hepburn romanization) => [
- q(0028),
+ q(0033),
q(0),
],
q(international phonetic alphabet) => [
- q(0025),
+ q(0029),
q(0),
],
q(jauer dialect of romansh) => [
- q(0032),
+ q(0039),
q(0),
],
q(jyutping cantonese romanization) => [
- q(0033),
+ q(0040),
q(0),
],
q(kernowek standard) => [
- q(0036),
+ q(0043),
q(1),
],
q(late middle french (to 1606)) => [
@@ -352,39 +431,43 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(modern volapuk) => [
- q(0046),
+ q(0053),
q(6),
],
q(monotonic greek) => [
- q(0041),
+ q(0048),
q(0),
],
q(nadiza dialect) => [
- q(0043),
+ q(0050),
q(1),
],
q(natisone dialect) => [
- q(0043),
+ q(0050),
q(0),
],
q(ndyuka dialect) => [
- q(0042),
+ q(0049),
q(0),
],
q(new volapuk) => [
- q(0046),
+ q(0053),
q(4),
],
q(newfoundland english) => [
- q(0044),
+ q(0051),
+ q(0),
+ ],
+ q(north american phonetic alphabet) => [
+ q(0030),
q(0),
],
q(norwegian in hognorsk (high norwegian) orthography) => [
- q(0029),
+ q(0034),
q(0),
],
q(original volapuk) => [
- q(0054),
+ q(0064),
q(2),
],
q(orthographic formulation of 1943 - official in brazil (formulario ortografico de 1943 - oficial no brasil)) => [
@@ -392,95 +475,123 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(oxford english dictionary spelling) => [
- q(0048),
+ q(0055),
+ q(0),
+ ],
+ q(pahawh hmong final version orthography) => [
+ q(0058),
+ q(0),
+ ],
+ q(pahawh hmong second stage reduced orthography) => [
+ q(0056),
+ q(0),
+ ],
+ q(pahawh hmong third stage reduced orthography) => [
+ q(0057),
q(0),
],
q(pamaka dialect) => [
- q(0049),
+ q(0059),
q(0),
],
q(petrine orthography) => [
- q(0050),
+ q(0060),
q(0),
],
q(pinyin romanization) => [
- q(0051),
+ q(0061),
q(0),
],
q(polytonic greek) => [
- q(0052),
+ q(0062),
q(0),
],
q(portuguese language orthographic agreement of 1990 (acordo ortografico da lingua portuguesa de 1990)) => [
- q(0010),
+ q(0011),
q(0),
],
q(portuguese-brazilian orthographic convention of 1945 (convencao ortografica luso-brasileira de 1945)) => [
- q(0021),
+ q(0024),
q(0),
],
q(post-1917 russian orthography) => [
- q(0039),
+ q(0046),
q(0),
],
q(puter idiom of romansh) => [
- q(0053),
+ q(0063),
q(0),
],
q(resian) => [
- q(0055),
+ q(0065),
q(0),
],
q(resianic) => [
- q(0055),
+ q(0065),
q(1),
],
q(revised volapuk) => [
- q(0046),
+ q(0053),
q(5),
],
q(rezijan) => [
- q(0055),
+ q(0065),
q(2),
],
q(rumantsch grischun) => [
- q(0056),
+ q(0066),
q(0),
],
q(schleyer's volapuk) => [
- q(0054),
+ q(0064),
q(1),
],
q(scottish standard english) => [
- q(0057),
+ q(0067),
q(0),
],
q(scouse) => [
- q(0058),
+ q(0068),
q(0),
],
q(serbian with ekavian pronunciation) => [
- q(0023),
+ q(0027),
q(0),
],
q(serbian with ijekavian pronunciation) => [
- q(0030),
+ q(0036),
+ q(0),
+ ],
+ q(simplified form) => [
+ q(0069),
q(0),
],
q(slovene in bohoric alphabet) => [
- q(0019),
+ q(0022),
q(0),
],
q(slovene in dajnko alphabet) => [
- q(0022),
+ q(0026),
q(0),
],
q(slovene in metelko alphabet) => [
- q(0040),
+ q(0047),
+ q(0),
+ ],
+ q(spanglish) => [
+ q(0072),
q(0),
],
q(standard cornish orthography of revived cornish) => [
- q(0036),
+ q(0043),
+ q(0),
+ ],
+ q(standard h-system orthographic fallback for spelling esperanto) => [
+ q(0035),
+ q(0),
+ ],
+ q(standard x-system orthographic fallback for spelling esperanto) => [
+ q(0085),
q(0),
],
q(standardized resian orthography) => [
@@ -488,71 +599,71 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(surmiran idiom of romansh) => [
- q(0061),
+ q(0073),
q(0),
],
q(sursilvan idiom of romansh) => [
- q(0062),
+ q(0074),
q(0),
],
q(sutsilvan idiom of romansh) => [
- q(0063),
+ q(0075),
q(0),
],
q(the balanka dialect of anii) => [
- q(0014),
+ q(0016),
q(0),
],
q(the barlavento dialect group of kabuverdianu) => [
- q(0015),
+ q(0017),
q(0),
],
q(the bila dialect of resian) => [
- q(0018),
+ q(0021),
q(1),
],
q(the gniva dialect of resian) => [
- q(0045),
+ q(0052),
q(0),
],
q(the kociewie dialect of polish) => [
- q(0035),
+ q(0042),
q(0),
],
q(the lipovaz dialect of resian) => [
- q(0038),
+ q(0045),
q(0),
],
q(the lipovec dialect of resian) => [
- q(0038),
+ q(0045),
q(1),
],
q(the njiva dialect of resian) => [
- q(0045),
+ q(0052),
q(1),
],
q(the oseacco dialect of resian) => [
- q(0047),
+ q(0054),
q(0),
],
q(the osojane dialect of resian) => [
- q(0047),
+ q(0054),
q(1),
],
q(the san giorgio dialect of resian) => [
- q(0018),
+ q(0021),
q(0),
],
q(the solbica dialect of resian) => [
- q(0059),
+ q(0070),
q(1),
],
q(the sotavento dialect group of kabuverdianu) => [
- q(0060),
+ q(0071),
q(0),
],
q(the stolvizza dialect of resian) => [
- q(0059),
+ q(0070),
q(0),
],
q(traditional german orthography) => [
@@ -560,67 +671,67 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(ulster dialect of scots) => [
- q(0067),
+ q(0079),
q(0),
],
q(unified cornish orthography of revived cornish) => [
- q(0065),
+ q(0077),
q(0),
],
q(unified cornish revised orthography of revived cornish) => [
- q(0066),
+ q(0078),
q(0),
],
q(unified turkic latin alphabet (historical)) => [
- q(0013),
+ q(0015),
q(0),
],
q(unifon phonetic alphabet) => [
- q(0068),
+ q(0080),
q(0),
],
q(uralic phonetic alphabet) => [
- q(0026),
+ q(0031),
q(0),
],
q(valencian) => [
- q(0070),
+ q(0082),
q(0),
],
q(vallader idiom of romansh) => [
- q(0071),
+ q(0083),
q(0),
],
q(vedic sanskrit) => [
- q(0069),
+ q(0081),
q(0),
],
q(volapuk nuladik) => [
- q(0046),
+ q(0053),
q(2),
],
q(volapuk nulik) => [
- q(0046),
+ q(0053),
q(0),
],
q(volapuk perevidol) => [
- q(0046),
+ q(0053),
q(1),
],
q(volapuk rigik) => [
- q(0054),
+ q(0064),
q(0),
],
q(wade-giles romanization) => [
- q(0072),
+ q(0084),
q(0),
],
q(western armenian) => [
- q(0012),
+ q(0013),
q(0),
],
q(x-sampa transcription) => [
- q(0027),
+ q(0032),
q(0),
],
};
@@ -655,6 +766,10 @@ $Locale::Codes::Data{'langvar'}{'code2id'} = {
q(0007),
q(0),
],
+ q(akuapem) => [
+ q(0010),
+ q(0),
+ ],
q(alalc97) => [
q(0008),
q(0),
@@ -664,255 +779,303 @@ $Locale::Codes::Data{'langvar'}{'code2id'} = {
q(0),
],
q(ao1990) => [
- q(0010),
+ q(0011),
q(0),
],
q(arevela) => [
- q(0011),
+ q(0012),
q(0),
],
q(arevmda) => [
- q(0012),
+ q(0013),
+ q(0),
+ ],
+ q(asante) => [
+ q(0014),
q(0),
],
q(baku1926) => [
- q(0013),
+ q(0015),
q(0),
],
q(balanka) => [
- q(0014),
+ q(0016),
q(0),
],
q(barla) => [
- q(0015),
+ q(0017),
+ q(0),
+ ],
+ q(basiceng) => [
+ q(0018),
q(0),
],
q(bauddha) => [
- q(0016),
+ q(0019),
q(0),
],
q(biscayan) => [
- q(0017),
+ q(0020),
q(0),
],
q(biske) => [
- q(0018),
+ q(0021),
q(0),
],
q(bohoric) => [
- q(0019),
+ q(0022),
q(0),
],
q(boont) => [
- q(0020),
+ q(0023),
q(0),
],
q(colb1945) => [
- q(0021),
+ q(0024),
+ q(0),
+ ],
+ q(cornu) => [
+ q(0025),
q(0),
],
q(dajnko) => [
- q(0022),
+ q(0026),
q(0),
],
q(ekavsk) => [
- q(0023),
+ q(0027),
q(0),
],
q(emodeng) => [
- q(0024),
+ q(0028),
q(0),
],
q(fonipa) => [
- q(0025),
+ q(0029),
+ q(0),
+ ],
+ q(fonnapa) => [
+ q(0030),
q(0),
],
q(fonupa) => [
- q(0026),
+ q(0031),
q(0),
],
q(fonxsamp) => [
- q(0027),
+ q(0032),
q(0),
],
q(hepburn) => [
- q(0028),
+ q(0033),
q(0),
],
q(hognorsk) => [
- q(0029),
+ q(0034),
+ q(0),
+ ],
+ q(hsistemo) => [
+ q(0035),
q(0),
],
q(ijekavsk) => [
- q(0030),
+ q(0036),
q(0),
],
q(itihasa) => [
- q(0031),
+ q(0037),
+ q(0),
+ ],
+ q(ivanchov) => [
+ q(0038),
q(0),
],
q(jauer) => [
- q(0032),
+ q(0039),
q(0),
],
q(jyutping) => [
- q(0033),
+ q(0040),
q(0),
],
q(kkcor) => [
- q(0034),
+ q(0041),
q(0),
],
q(kociewie) => [
- q(0035),
+ q(0042),
q(0),
],
q(kscor) => [
- q(0036),
+ q(0043),
q(0),
],
q(laukika) => [
- q(0037),
+ q(0044),
q(0),
],
q(lipaw) => [
- q(0038),
+ q(0045),
q(0),
],
q(luna1918) => [
- q(0039),
+ q(0046),
q(0),
],
q(metelko) => [
- q(0040),
+ q(0047),
q(0),
],
q(monoton) => [
- q(0041),
+ q(0048),
q(0),
],
q(ndyuka) => [
- q(0042),
+ q(0049),
q(0),
],
q(nedis) => [
- q(0043),
+ q(0050),
q(0),
],
q(newfound) => [
- q(0044),
+ q(0051),
q(0),
],
q(njiva) => [
- q(0045),
+ q(0052),
q(0),
],
q(nulik) => [
- q(0046),
+ q(0053),
q(0),
],
q(osojs) => [
- q(0047),
+ q(0054),
q(0),
],
q(oxendict) => [
- q(0048),
+ q(0055),
+ q(0),
+ ],
+ q(pahawh2) => [
+ q(0056),
+ q(0),
+ ],
+ q(pahawh3) => [
+ q(0057),
+ q(0),
+ ],
+ q(pahawh4) => [
+ q(0058),
q(0),
],
q(pamaka) => [
- q(0049),
+ q(0059),
q(0),
],
q(petr1708) => [
- q(0050),
+ q(0060),
q(0),
],
q(pinyin) => [
- q(0051),
+ q(0061),
q(0),
],
q(polyton) => [
- q(0052),
+ q(0062),
q(0),
],
q(puter) => [
- q(0053),
+ q(0063),
q(0),
],
q(rigik) => [
- q(0054),
+ q(0064),
q(0),
],
q(rozaj) => [
- q(0055),
+ q(0065),
q(0),
],
q(rumgr) => [
- q(0056),
+ q(0066),
q(0),
],
q(scotland) => [
- q(0057),
+ q(0067),
q(0),
],
q(scouse) => [
- q(0058),
+ q(0068),
+ q(0),
+ ],
+ q(simple) => [
+ q(0069),
q(0),
],
q(solba) => [
- q(0059),
+ q(0070),
q(0),
],
q(sotav) => [
- q(0060),
+ q(0071),
+ q(0),
+ ],
+ q(spanglis) => [
+ q(0072),
q(0),
],
q(surmiran) => [
- q(0061),
+ q(0073),
q(0),
],
q(sursilv) => [
- q(0062),
+ q(0074),
q(0),
],
q(sutsilv) => [
- q(0063),
+ q(0075),
q(0),
],
q(tarask) => [
- q(0064),
+ q(0076),
q(0),
],
q(uccor) => [
- q(0065),
+ q(0077),
q(0),
],
q(ucrcor) => [
- q(0066),
+ q(0078),
q(0),
],
q(ulster) => [
- q(0067),
+ q(0079),
q(0),
],
q(unifon) => [
- q(0068),
+ q(0080),
q(0),
],
q(vaidika) => [
- q(0069),
+ q(0081),
q(0),
],
q(valencia) => [
- q(0070),
+ q(0082),
q(0),
],
q(vallader) => [
- q(0071),
+ q(0083),
q(0),
],
q(wadegile) => [
- q(0072),
+ q(0084),
+ q(0),
+ ],
+ q(xsistemo) => [
+ q(0085),
q(0),
],
},
@@ -929,69 +1092,82 @@ $Locale::Codes::Data{'langvar'}{'id2code'} = {
q(0007) => q(abl1943),
q(0008) => q(alalc97),
q(0009) => q(aluku),
- q(0010) => q(ao1990),
- q(0011) => q(arevela),
- q(0012) => q(arevmda),
- q(0013) => q(baku1926),
- q(0014) => q(balanka),
- q(0015) => q(barla),
- q(0016) => q(bauddha),
- q(0017) => q(biscayan),
- q(0018) => q(biske),
- q(0019) => q(bohoric),
- q(0020) => q(boont),
- q(0021) => q(colb1945),
- q(0022) => q(dajnko),
- q(0023) => q(ekavsk),
- q(0024) => q(emodeng),
- q(0025) => q(fonipa),
- q(0026) => q(fonupa),
- q(0027) => q(fonxsamp),
- q(0028) => q(hepburn),
- q(0029) => q(hognorsk),
- q(0030) => q(ijekavsk),
- q(0031) => q(itihasa),
- q(0032) => q(jauer),
- q(0033) => q(jyutping),
- q(0034) => q(kkcor),
- q(0035) => q(kociewie),
- q(0036) => q(kscor),
- q(0037) => q(laukika),
- q(0038) => q(lipaw),
- q(0039) => q(luna1918),
- q(0040) => q(metelko),
- q(0041) => q(monoton),
- q(0042) => q(ndyuka),
- q(0043) => q(nedis),
- q(0044) => q(newfound),
- q(0045) => q(njiva),
- q(0046) => q(nulik),
- q(0047) => q(osojs),
- q(0048) => q(oxendict),
- q(0049) => q(pamaka),
- q(0050) => q(petr1708),
- q(0051) => q(pinyin),
- q(0052) => q(polyton),
- q(0053) => q(puter),
- q(0054) => q(rigik),
- q(0055) => q(rozaj),
- q(0056) => q(rumgr),
- q(0057) => q(scotland),
- q(0058) => q(scouse),
- q(0059) => q(solba),
- q(0060) => q(sotav),
- q(0061) => q(surmiran),
- q(0062) => q(sursilv),
- q(0063) => q(sutsilv),
- q(0064) => q(tarask),
- q(0065) => q(uccor),
- q(0066) => q(ucrcor),
- q(0067) => q(ulster),
- q(0068) => q(unifon),
- q(0069) => q(vaidika),
- q(0070) => q(valencia),
- q(0071) => q(vallader),
- q(0072) => q(wadegile),
+ q(0010) => q(akuapem),
+ q(0011) => q(ao1990),
+ q(0012) => q(arevela),
+ q(0013) => q(arevmda),
+ q(0014) => q(asante),
+ q(0015) => q(baku1926),
+ q(0016) => q(balanka),
+ q(0017) => q(barla),
+ q(0018) => q(basiceng),
+ q(0019) => q(bauddha),
+ q(0020) => q(biscayan),
+ q(0021) => q(biske),
+ q(0022) => q(bohoric),
+ q(0023) => q(boont),
+ q(0024) => q(colb1945),
+ q(0025) => q(cornu),
+ q(0026) => q(dajnko),
+ q(0027) => q(ekavsk),
+ q(0028) => q(emodeng),
+ q(0029) => q(fonipa),
+ q(0030) => q(fonnapa),
+ q(0031) => q(fonupa),
+ q(0032) => q(fonxsamp),
+ q(0033) => q(hepburn),
+ q(0034) => q(hognorsk),
+ q(0035) => q(hsistemo),
+ q(0036) => q(ijekavsk),
+ q(0037) => q(itihasa),
+ q(0038) => q(ivanchov),
+ q(0039) => q(jauer),
+ q(0040) => q(jyutping),
+ q(0041) => q(kkcor),
+ q(0042) => q(kociewie),
+ q(0043) => q(kscor),
+ q(0044) => q(laukika),
+ q(0045) => q(lipaw),
+ q(0046) => q(luna1918),
+ q(0047) => q(metelko),
+ q(0048) => q(monoton),
+ q(0049) => q(ndyuka),
+ q(0050) => q(nedis),
+ q(0051) => q(newfound),
+ q(0052) => q(njiva),
+ q(0053) => q(nulik),
+ q(0054) => q(osojs),
+ q(0055) => q(oxendict),
+ q(0056) => q(pahawh2),
+ q(0057) => q(pahawh3),
+ q(0058) => q(pahawh4),
+ q(0059) => q(pamaka),
+ q(0060) => q(petr1708),
+ q(0061) => q(pinyin),
+ q(0062) => q(polyton),
+ q(0063) => q(puter),
+ q(0064) => q(rigik),
+ q(0065) => q(rozaj),
+ q(0066) => q(rumgr),
+ q(0067) => q(scotland),
+ q(0068) => q(scouse),
+ q(0069) => q(simple),
+ q(0070) => q(solba),
+ q(0071) => q(sotav),
+ q(0072) => q(spanglis),
+ q(0073) => q(surmiran),
+ q(0074) => q(sursilv),
+ q(0075) => q(sutsilv),
+ q(0076) => q(tarask),
+ q(0077) => q(uccor),
+ q(0078) => q(ucrcor),
+ q(0079) => q(ulster),
+ q(0080) => q(unifon),
+ q(0081) => q(vaidika),
+ q(0082) => q(valencia),
+ q(0083) => q(vallader),
+ q(0084) => q(wadegile),
+ q(0085) => q(xsistemo),
},
};
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm
index 3ebef842303..e01eea34437 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangVar_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Feb 23 12:58:17 EST 2018
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Retired{'langvar'}{'alpha'}{'code'} = {
};
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pm
index 4109d6c204f..ad36bd00a93 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pm
@@ -1,99 +1,94 @@
package Locale::Codes::Language;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
-require 5.006;
use warnings;
+require 5.006;
+use Exporter qw(import);
-require Exporter;
-use Carp;
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
+
+################################################################################
+use if $] >= 5.027007, 'deprecate';
use Locale::Codes;
use Locale::Codes::Constants;
-use Locale::Codes::Language_Codes;
-use Locale::Codes::Language_Retired;
-
-#=======================================================================
-# Public Global Variables
-#=======================================================================
-our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-
-$VERSION='3.37';
-@ISA = qw(Exporter);
-@EXPORT = qw(code2language
+@EXPORT = qw(
+ code2language
language2code
all_language_codes
all_language_names
language_code2code
- LOCALE_LANG_ALPHA_2
- LOCALE_LANG_ALPHA_3
- LOCALE_LANG_TERM
);
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_LANGUAGE);
+
+our $obj = new Locale::Codes('language');
+$obj->show_errors(0);
+
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
sub code2language {
- return Locale::Codes::_code2name('language',@_);
+ return $obj->code2name(@_);
}
sub language2code {
- return Locale::Codes::_name2code('language',@_);
+ return $obj->name2code(@_);
}
sub language_code2code {
- return Locale::Codes::_code2code('language',@_);
+ return $obj->code2code(@_);
}
sub all_language_codes {
- return Locale::Codes::_all_codes('language',@_);
+ return $obj->all_codes(@_);
}
sub all_language_names {
- return Locale::Codes::_all_names('language',@_);
+ return $obj->all_names(@_);
}
sub rename_language {
- return Locale::Codes::_rename('language',@_);
+ return $obj->rename_code(@_);
}
sub add_language {
- return Locale::Codes::_add_code('language',@_);
+ return $obj->add_code(@_);
}
sub delete_language {
- return Locale::Codes::_delete_code('language',@_);
+ return $obj->delete_code(@_);
}
sub add_language_alias {
- return Locale::Codes::_add_alias('language',@_);
+ return $obj->add_alias(@_);
}
sub delete_language_alias {
- return Locale::Codes::_delete_alias('language',@_);
+ return $obj->delete_alias(@_);
}
sub rename_language_code {
- return Locale::Codes::_rename_code('language',@_);
+ return $obj->replace_code(@_);
}
sub add_language_code_alias {
- return Locale::Codes::_add_code_alias('language',@_);
+ return $obj->add_code_alias(@_);
}
sub delete_language_code_alias {
- return Locale::Codes::_delete_code_alias('language',@_);
+ return $obj->delete_code_alias(@_);
}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pod
index 123d2a8e667..6a67d8eee2f 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language.pod
@@ -2,94 +2,107 @@
=head1 NAME
-Locale::Codes::Language - standard codes for language identification
+Locale::Codes::Language - module for dealing with language code sets
=head1 SYNOPSIS
use Locale::Codes::Language;
- $lang = code2language('en'); # $lang gets 'English'
- $code = language2code('French'); # $code gets 'fr'
+ $name = code2language(CODE);
+ $code = language2code(NAME);
@codes = all_language_codes();
@names = all_language_names();
=head1 DESCRIPTION
-This module provides access to standard codes used
-for identifying languages, such as those as defined in ISO 639.
+This module provides access to language code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO
-639 two-letter codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
-=head1 SUPPORTED CODE SETS
+=head1 ROUTINES
-There are several different code sets you can use for identifying
-languages. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: language
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-For example, the two are equivalent:
+The following functions are exported automatically:
- $lang = code2language('en','alpha-2');
- $lang = code2language('en',LOCALE_LANG_ALPHA_2);
+=over 4
-The codesets currently supported are:
+=item B<code2language(CODE [,CODESET] [,'retired'])>
-=over 4
+See B<code2name> in L<Locale::Codes>
-=item B<alpha-2, LOCALE_LANG_ALPHA_2>
+=item B<language2code(NAME [,CODESET] [,'retired'])>
-This is the set of two-letter (lowercase) codes from ISO 639-1, such
-as 'he' for Hebrew. It also includes additions to this set included
-in the IANA language registry.
+See B<name2code> in L<Locale::Codes>
-This is the default code set.
+=item B<language_code2code(CODE ,CODESET ,CODESET2)>
-=item B<alpha-3, LOCALE_LANG_ALPHA_3>
+See B<code2code> in L<Locale::Codes>
-This is the set of three-letter (lowercase) bibliographic codes from
-ISO 639-2 and 639-5, such as 'heb' for Hebrew. It also includes
-additions to this set included in the IANA language registry.
+=item B<all_language_codes([CODESET] [,'retired'])>
-=item B<term, LOCALE_LANG_TERM>
+See B<all_codes> in L<Locale::Codes>
-This is the set of three-letter (lowercase) terminologic codes from
-ISO 639.
+=item B<all_language_names([CODESET] [,'retired'])>
+
+See B<all_names> in L<Locale::Codes>
=back
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2language(CODE [,CODESET] [,'retired'])>
-
-=item B<language2code(NAME [,CODESET] [,'retired'])>
+=item B<Locale::Codes::Language::show_errors(FLAG)>
-=item B<language_code2code(CODE ,CODESET ,CODESET2)>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<all_language_codes([CODESET] [,'retired'])>
-
-=item B<all_language_names([CODESET] [,'retired'])>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
=item B<Locale::Codes::Language::rename_language(CODE ,NEW_NAME [,CODESET])>
+See B<rename_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Language::add_language(CODE ,NAME [,CODESET])>
+See B<add_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Language::delete_language(CODE [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Language::add_language_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Language::delete_language_alias(NAME)>
+See B<delete_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Language::rename_language_code(CODE ,NEW_CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Language::add_language_code_alias(CODE ,NEW_CODE [,CODESET])>
+See B<add_code_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Language::delete_language_code_alias(CODE [,CODESET])>
-These routines are all documented in the L<Locale::Codes::API> man page.
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -101,22 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.loc.gov/standards/iso639-2/>
-
-Source of the ISO 639-2 codes.
-
-=item L<http://www.loc.gov/standards/iso639-5/>
-
-Source of the ISO 639-5 codes.
-
-=item L<http://www.iana.org/assignments/language-subtag-registry>
-
-The IANA language subtag registry.
-
=back
=head1 AUTHOR
@@ -127,9 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Codes.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Codes.pm
index 51abf1bcb0e..bbb565c19d1 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Codes.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::Language_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:41:14 EST 2015
+# Generated on: Fri Feb 23 12:17:53 EST 2018
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
-$Locale::Codes::Data{'language'}{'id'} = '7976';
+$Locale::Codes::Data{'language'}{'id'} = '7961';
$Locale::Codes::Data{'language'}{'id2names'} = {
q(0001) => [
@@ -176,6 +176,7 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
],
q(0050) => [
q(Bengali),
+ q(Bangla),
],
q(0051) => [
q(Berber languages),
@@ -305,1292 +306,1296 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(Chamic languages),
],
q(0090) => [
- q(Coptic),
+ q(Montenegrin),
],
q(0091) => [
- q(Cornish),
+ q(Coptic),
],
q(0092) => [
- q(Corsican),
+ q(Cornish),
],
q(0093) => [
+ q(Corsican),
+ ],
+ q(0094) => [
q(Creoles and pidgins, English based),
q(Creoles and pidgins, English-based),
q(English-based creoles and pidgins),
],
- q(0094) => [
+ q(0095) => [
q(Creoles and pidgins, French-based ),
q(Creoles and pidgins, French-based),
q(French-based creoles and pidgins),
],
- q(0095) => [
+ q(0096) => [
q(Creoles and pidgins, Portuguese-based ),
q(Creoles and pidgins, Portuguese-based),
q(Portuguese-based creoles and pidgins),
],
- q(0096) => [
+ q(0097) => [
q(Cree),
],
- q(0097) => [
+ q(0098) => [
q(Crimean Tatar),
q(Crimean Turkish),
],
- q(0098) => [
+ q(0099) => [
q(Creoles and pidgins ),
q(Creoles and pidgins),
],
- q(0099) => [
+ q(0100) => [
q(Kashubian),
],
- q(0100) => [
+ q(0101) => [
q(Cushitic languages),
],
- q(0101) => [
+ q(0102) => [
q(Czech),
],
- q(0102) => [
+ q(0103) => [
q(Dakota),
],
- q(0103) => [
+ q(0104) => [
q(Danish),
],
- q(0104) => [
+ q(0105) => [
q(Dargwa),
],
- q(0105) => [
+ q(0106) => [
q(Land Dayak languages),
],
- q(0106) => [
+ q(0107) => [
q(Delaware),
],
- q(0107) => [
+ q(0108) => [
q(Slave (Athapascan)),
],
- q(0108) => [
+ q(0109) => [
q(Dogrib),
],
- q(0109) => [
+ q(0110) => [
q(Dinka),
],
- q(0110) => [
+ q(0111) => [
q(Divehi),
q(Dhivehi),
q(Maldivian),
],
- q(0111) => [
+ q(0112) => [
q(Dogri),
q(Dogri (macrolanguage)),
],
- q(0112) => [
+ q(0113) => [
q(Dravidian languages),
],
- q(0113) => [
+ q(0114) => [
q(Lower Sorbian),
],
- q(0114) => [
+ q(0115) => [
q(Duala),
],
- q(0115) => [
+ q(0116) => [
q(Dutch, Middle (ca.1050-1350)),
q(Middle Dutch (ca. 1050-1350)),
],
- q(0116) => [
+ q(0117) => [
q(Dutch),
q(Flemish),
],
- q(0117) => [
+ q(0118) => [
q(Dyula),
],
- q(0118) => [
+ q(0119) => [
q(Dzongkha),
],
- q(0119) => [
+ q(0120) => [
q(Efik),
],
- q(0120) => [
+ q(0121) => [
q(Egyptian (Ancient)),
],
- q(0121) => [
+ q(0122) => [
q(Ekajuk),
],
- q(0122) => [
+ q(0123) => [
q(Elamite),
],
- q(0123) => [
+ q(0124) => [
q(English),
],
- q(0124) => [
+ q(0125) => [
q(English, Middle (1100-1500)),
q(Middle English (1100-1500)),
],
- q(0125) => [
+ q(0126) => [
q(Esperanto),
],
- q(0126) => [
+ q(0127) => [
q(Estonian),
],
- q(0127) => [
+ q(0128) => [
q(Ewe),
],
- q(0128) => [
+ q(0129) => [
q(Ewondo),
],
- q(0129) => [
+ q(0130) => [
q(Fang),
q(Fang (Equatorial Guinea)),
],
- q(0130) => [
+ q(0131) => [
q(Faroese),
],
- q(0131) => [
+ q(0132) => [
q(Fanti),
],
- q(0132) => [
+ q(0133) => [
q(Fijian),
],
- q(0133) => [
+ q(0134) => [
q(Filipino),
q(Pilipino),
],
- q(0134) => [
+ q(0135) => [
q(Finnish),
],
- q(0135) => [
+ q(0136) => [
q(Finno-Ugrian languages),
],
- q(0136) => [
+ q(0137) => [
q(Fon),
],
- q(0137) => [
+ q(0138) => [
q(French),
],
- q(0138) => [
+ q(0139) => [
q(French, Middle (ca.1400-1600)),
q(Middle French (ca. 1400-1600)),
],
- q(0139) => [
+ q(0140) => [
q(French, Old (842-ca.1400)),
q(Old French (842-ca. 1400)),
],
- q(0140) => [
+ q(0141) => [
q(Northern Frisian),
],
- q(0141) => [
+ q(0142) => [
q(Eastern Frisian),
],
- q(0142) => [
+ q(0143) => [
q(Western Frisian),
],
- q(0143) => [
+ q(0144) => [
q(Fulah),
],
- q(0144) => [
+ q(0145) => [
q(Friulian),
],
- q(0145) => [
+ q(0146) => [
q(Ga),
],
- q(0146) => [
+ q(0147) => [
q(Gayo),
],
- q(0147) => [
+ q(0148) => [
q(Gbaya),
q(Gbaya (Central African Republic)),
],
- q(0148) => [
+ q(0149) => [
q(Germanic languages),
],
- q(0149) => [
+ q(0150) => [
q(Georgian),
],
- q(0150) => [
+ q(0151) => [
q(German),
],
- q(0151) => [
+ q(0152) => [
q(Geez),
],
- q(0152) => [
+ q(0153) => [
q(Gilbertese),
],
- q(0153) => [
+ q(0154) => [
q(Gaelic),
q(Scottish Gaelic),
],
- q(0154) => [
+ q(0155) => [
q(Irish),
],
- q(0155) => [
+ q(0156) => [
q(Galician),
],
- q(0156) => [
+ q(0157) => [
q(Manx),
],
- q(0157) => [
+ q(0158) => [
q(German, Middle High (ca.1050-1500)),
q(Middle High German (ca. 1050-1500)),
],
- q(0158) => [
+ q(0159) => [
q(German, Old High (ca.750-1050)),
q(Old High German (ca. 750-1050)),
],
- q(0159) => [
+ q(0160) => [
q(Gondi),
],
- q(0160) => [
+ q(0161) => [
q(Gorontalo),
],
- q(0161) => [
+ q(0162) => [
q(Gothic),
],
- q(0162) => [
+ q(0163) => [
q(Grebo),
],
- q(0163) => [
+ q(0164) => [
q(Greek, Ancient (to 1453)),
q(Ancient Greek (to 1453)),
],
- q(0164) => [
+ q(0165) => [
q(Greek, Modern (1453-)),
q(Greek),
q(Modern Greek (1453-)),
],
- q(0165) => [
+ q(0166) => [
q(Guarani),
],
- q(0166) => [
+ q(0167) => [
q(Swiss German),
q(Alemannic),
q(Alsatian),
],
- q(0167) => [
+ q(0168) => [
q(Gujarati),
],
- q(0168) => [
+ q(0169) => [
q(Gwich'in),
],
- q(0169) => [
+ q(0170) => [
q(Haida),
],
- q(0170) => [
+ q(0171) => [
q(Haitian),
q(Haitian Creole),
],
- q(0171) => [
+ q(0172) => [
q(Hausa),
],
- q(0172) => [
+ q(0173) => [
q(Hawaiian),
],
- q(0173) => [
+ q(0174) => [
q(Hebrew),
],
- q(0174) => [
+ q(0175) => [
q(Herero),
],
- q(0175) => [
+ q(0176) => [
q(Hiligaynon),
],
- q(0176) => [
+ q(0177) => [
q(Himachali languages),
q(Western Pahari languages),
],
- q(0177) => [
+ q(0178) => [
q(Hindi),
],
- q(0178) => [
+ q(0179) => [
q(Hittite),
],
- q(0179) => [
+ q(0180) => [
q(Hmong),
q(Mong),
],
- q(0180) => [
+ q(0181) => [
q(Hiri Motu),
],
- q(0181) => [
+ q(0182) => [
q(Croatian),
],
- q(0182) => [
+ q(0183) => [
q(Upper Sorbian),
],
- q(0183) => [
+ q(0184) => [
q(Hungarian),
],
- q(0184) => [
+ q(0185) => [
q(Hupa),
],
- q(0185) => [
+ q(0186) => [
q(Iban),
],
- q(0186) => [
+ q(0187) => [
q(Igbo),
],
- q(0187) => [
+ q(0188) => [
q(Icelandic),
],
- q(0188) => [
+ q(0189) => [
q(Ido),
],
- q(0189) => [
+ q(0190) => [
q(Sichuan Yi),
q(Nuosu),
],
- q(0190) => [
+ q(0191) => [
q(Ijo languages),
],
- q(0191) => [
+ q(0192) => [
q(Inuktitut),
],
- q(0192) => [
+ q(0193) => [
q(Interlingue),
q(Occidental),
],
- q(0193) => [
+ q(0194) => [
q(Iloko),
],
- q(0194) => [
+ q(0195) => [
q(Interlingua (International Auxiliary Language Association)),
],
- q(0195) => [
+ q(0196) => [
q(Indic languages),
],
- q(0196) => [
+ q(0197) => [
q(Indonesian),
],
- q(0197) => [
+ q(0198) => [
q(Indo-European languages),
],
- q(0198) => [
+ q(0199) => [
q(Ingush),
],
- q(0199) => [
+ q(0200) => [
q(Inupiaq),
],
- q(0200) => [
+ q(0201) => [
q(Iranian languages),
],
- q(0201) => [
+ q(0202) => [
q(Iroquoian languages),
],
- q(0202) => [
+ q(0203) => [
q(Italian),
],
- q(0203) => [
+ q(0204) => [
q(Javanese),
],
- q(0204) => [
+ q(0205) => [
q(Lojban),
],
- q(0205) => [
+ q(0206) => [
q(Japanese),
],
- q(0206) => [
+ q(0207) => [
q(Judeo-Persian),
],
- q(0207) => [
+ q(0208) => [
q(Judeo-Arabic),
],
- q(0208) => [
+ q(0209) => [
q(Kara-Kalpak),
],
- q(0209) => [
+ q(0210) => [
q(Kabyle),
],
- q(0210) => [
+ q(0211) => [
q(Kachin),
q(Jingpho),
],
- q(0211) => [
+ q(0212) => [
q(Kalaallisut),
q(Greenlandic),
],
- q(0212) => [
+ q(0213) => [
q(Kamba),
q(Kamba (Kenya)),
],
- q(0213) => [
+ q(0214) => [
q(Kannada),
],
- q(0214) => [
+ q(0215) => [
q(Karen languages),
],
- q(0215) => [
+ q(0216) => [
q(Kashmiri),
],
- q(0216) => [
+ q(0217) => [
q(Kanuri),
],
- q(0217) => [
+ q(0218) => [
q(Kawi),
],
- q(0218) => [
+ q(0219) => [
q(Kazakh),
],
- q(0219) => [
+ q(0220) => [
q(Kabardian),
],
- q(0220) => [
+ q(0221) => [
q(Khasi),
],
- q(0221) => [
+ q(0222) => [
q(Khoisan languages),
],
- q(0222) => [
+ q(0223) => [
q(Central Khmer),
],
- q(0223) => [
+ q(0224) => [
q(Khotanese),
q(Sakan),
],
- q(0224) => [
+ q(0225) => [
q(Kikuyu),
q(Gikuyu),
],
- q(0225) => [
+ q(0226) => [
q(Kinyarwanda),
],
- q(0226) => [
+ q(0227) => [
q(Kirghiz),
q(Kyrgyz),
],
- q(0227) => [
+ q(0228) => [
q(Kimbundu),
],
- q(0228) => [
+ q(0229) => [
q(Konkani),
q(Konkani (macrolanguage)),
],
- q(0229) => [
+ q(0230) => [
q(Komi),
],
- q(0230) => [
+ q(0231) => [
q(Kongo),
],
- q(0231) => [
+ q(0232) => [
q(Korean),
],
- q(0232) => [
+ q(0233) => [
q(Kosraean),
],
- q(0233) => [
+ q(0234) => [
q(Kpelle),
],
- q(0234) => [
+ q(0235) => [
q(Karachay-Balkar),
],
- q(0235) => [
+ q(0236) => [
q(Karelian),
],
- q(0236) => [
+ q(0237) => [
q(Kru languages),
],
- q(0237) => [
+ q(0238) => [
q(Kurukh),
],
- q(0238) => [
+ q(0239) => [
q(Kuanyama),
q(Kwanyama),
],
- q(0239) => [
+ q(0240) => [
q(Kumyk),
],
- q(0240) => [
+ q(0241) => [
q(Kurdish),
],
- q(0241) => [
+ q(0242) => [
q(Kutenai),
],
- q(0242) => [
+ q(0243) => [
q(Ladino),
],
- q(0243) => [
+ q(0244) => [
q(Lahnda),
],
- q(0244) => [
+ q(0245) => [
q(Lamba),
],
- q(0245) => [
+ q(0246) => [
q(Lao),
],
- q(0246) => [
+ q(0247) => [
q(Latin),
],
- q(0247) => [
+ q(0248) => [
q(Latvian),
],
- q(0248) => [
+ q(0249) => [
q(Lezghian),
],
- q(0249) => [
+ q(0250) => [
q(Limburgan),
q(Limburger),
q(Limburgish),
],
- q(0250) => [
+ q(0251) => [
q(Lingala),
],
- q(0251) => [
+ q(0252) => [
q(Lithuanian),
],
- q(0252) => [
+ q(0253) => [
q(Mongo),
],
- q(0253) => [
+ q(0254) => [
q(Lozi),
],
- q(0254) => [
+ q(0255) => [
q(Luxembourgish),
q(Letzeburgesch),
],
- q(0255) => [
+ q(0256) => [
q(Luba-Lulua),
],
- q(0256) => [
+ q(0257) => [
q(Luba-Katanga),
],
- q(0257) => [
+ q(0258) => [
q(Ganda),
],
- q(0258) => [
+ q(0259) => [
q(Luiseno),
],
- q(0259) => [
+ q(0260) => [
q(Lunda),
],
- q(0260) => [
+ q(0261) => [
q(Luo (Kenya and Tanzania)),
q(Dholuo),
],
- q(0261) => [
+ q(0262) => [
q(Lushai),
],
- q(0262) => [
+ q(0263) => [
q(Macedonian),
],
- q(0263) => [
+ q(0264) => [
q(Madurese),
],
- q(0264) => [
+ q(0265) => [
q(Magahi),
],
- q(0265) => [
+ q(0266) => [
q(Marshallese),
],
- q(0266) => [
+ q(0267) => [
q(Maithili),
],
- q(0267) => [
+ q(0268) => [
q(Makasar),
],
- q(0268) => [
+ q(0269) => [
q(Malayalam),
],
- q(0269) => [
+ q(0270) => [
q(Mandingo),
q(Manding),
],
- q(0270) => [
+ q(0271) => [
q(Maori),
],
- q(0271) => [
+ q(0272) => [
q(Austronesian languages),
],
- q(0272) => [
+ q(0273) => [
q(Marathi),
],
- q(0273) => [
+ q(0274) => [
q(Masai),
],
- q(0274) => [
+ q(0275) => [
q(Malay),
q(Malay (macrolanguage)),
],
- q(0275) => [
+ q(0276) => [
q(Moksha),
],
- q(0276) => [
+ q(0277) => [
q(Mandar),
],
- q(0277) => [
+ q(0278) => [
q(Mende),
q(Mende (Sierra Leone)),
],
- q(0278) => [
+ q(0279) => [
q(Irish, Middle (900-1200)),
q(Middle Irish (900-1200)),
],
- q(0279) => [
+ q(0280) => [
q(Mi'kmaq),
q(Micmac),
],
- q(0280) => [
+ q(0281) => [
q(Minangkabau),
],
- q(0281) => [
+ q(0282) => [
q(Uncoded languages),
],
- q(0282) => [
+ q(0283) => [
q(Mon-Khmer languages),
],
- q(0283) => [
+ q(0284) => [
q(Malagasy),
],
- q(0284) => [
+ q(0285) => [
q(Maltese),
],
- q(0285) => [
+ q(0286) => [
q(Manchu),
],
- q(0286) => [
+ q(0287) => [
q(Manipuri),
],
- q(0287) => [
+ q(0288) => [
q(Manobo languages),
],
- q(0288) => [
+ q(0289) => [
q(Mohawk),
],
- q(0289) => [
+ q(0290) => [
q(Mongolian),
],
- q(0290) => [
+ q(0291) => [
q(Mossi),
],
- q(0291) => [
+ q(0292) => [
q(Multiple languages),
],
- q(0292) => [
+ q(0293) => [
q(Munda languages),
],
- q(0293) => [
+ q(0294) => [
q(Creek),
],
- q(0294) => [
+ q(0295) => [
q(Mirandese),
],
- q(0295) => [
+ q(0296) => [
q(Marwari),
],
- q(0296) => [
+ q(0297) => [
q(Mayan languages),
],
- q(0297) => [
+ q(0298) => [
q(Erzya),
],
- q(0298) => [
+ q(0299) => [
q(Nahuatl languages),
],
- q(0299) => [
+ q(0300) => [
q(North American Indian languages),
],
- q(0300) => [
+ q(0301) => [
q(Neapolitan),
],
- q(0301) => [
+ q(0302) => [
q(Nauru),
],
- q(0302) => [
+ q(0303) => [
q(Navajo),
q(Navaho),
],
- q(0303) => [
+ q(0304) => [
q(Ndebele, South),
q(South Ndebele),
],
- q(0304) => [
+ q(0305) => [
q(Ndebele, North),
q(North Ndebele),
],
- q(0305) => [
+ q(0306) => [
q(Ndonga),
],
- q(0306) => [
+ q(0307) => [
q(Low German),
q(Low Saxon),
q(German, Low),
q(Saxon, Low),
],
- q(0307) => [
+ q(0308) => [
q(Nepali),
q(Nepali (macrolanguage)),
],
- q(0308) => [
+ q(0309) => [
q(Nepal Bhasa),
q(Newari),
],
- q(0309) => [
+ q(0310) => [
q(Nias),
],
- q(0310) => [
+ q(0311) => [
q(Niger-Kordofanian languages),
],
- q(0311) => [
+ q(0312) => [
q(Niuean),
],
- q(0312) => [
+ q(0313) => [
q(Norwegian Nynorsk),
q(Nynorsk, Norwegian),
],
- q(0313) => [
+ q(0314) => [
q(Bokmal, Norwegian),
q(Norwegian Bokmal),
],
- q(0314) => [
+ q(0315) => [
q(Nogai),
],
- q(0315) => [
+ q(0316) => [
q(Norse, Old),
q(Old Norse),
],
- q(0316) => [
+ q(0317) => [
q(Norwegian),
],
- q(0317) => [
+ q(0318) => [
q(N'Ko),
],
- q(0318) => [
+ q(0319) => [
q(Pedi),
q(Sepedi),
q(Northern Sotho),
],
- q(0319) => [
+ q(0320) => [
q(Nubian languages),
],
- q(0320) => [
+ q(0321) => [
q(Classical Newari),
q(Old Newari),
q(Classical Nepal Bhasa),
],
- q(0321) => [
+ q(0322) => [
q(Chichewa),
q(Chewa),
q(Nyanja),
],
- q(0322) => [
+ q(0323) => [
q(Nyamwezi),
],
- q(0323) => [
+ q(0324) => [
q(Nyankole),
],
- q(0324) => [
+ q(0325) => [
q(Nyoro),
],
- q(0325) => [
+ q(0326) => [
q(Nzima),
],
- q(0326) => [
+ q(0327) => [
q(Occitan (post 1500)),
q(Provencal),
],
- q(0327) => [
+ q(0328) => [
q(Ojibwa),
],
- q(0328) => [
+ q(0329) => [
q(Oriya),
q(Oriya (macrolanguage)),
+ q(Odia (macrolanguage)),
],
- q(0329) => [
+ q(0330) => [
q(Oromo),
],
- q(0330) => [
+ q(0331) => [
q(Osage),
],
- q(0331) => [
+ q(0332) => [
q(Ossetian),
q(Ossetic),
],
- q(0332) => [
+ q(0333) => [
q(Turkish, Ottoman (1500-1928)),
q(Ottoman Turkish (1500-1928)),
],
- q(0333) => [
+ q(0334) => [
q(Otomian languages),
],
- q(0334) => [
+ q(0335) => [
q(Papuan languages),
],
- q(0335) => [
+ q(0336) => [
q(Pangasinan),
],
- q(0336) => [
+ q(0337) => [
q(Pahlavi),
],
- q(0337) => [
+ q(0338) => [
q(Pampanga),
q(Kapampangan),
],
- q(0338) => [
+ q(0339) => [
q(Panjabi),
q(Punjabi),
],
- q(0339) => [
+ q(0340) => [
q(Papiamento),
],
- q(0340) => [
+ q(0341) => [
q(Palauan),
],
- q(0341) => [
+ q(0342) => [
q(Persian, Old (ca.600-400 B.C.)),
q(Old Persian (ca. 600-400 B.C.)),
],
- q(0342) => [
+ q(0343) => [
q(Persian),
],
- q(0343) => [
+ q(0344) => [
q(Philippine languages),
],
- q(0344) => [
+ q(0345) => [
q(Phoenician),
],
- q(0345) => [
+ q(0346) => [
q(Pali),
],
- q(0346) => [
+ q(0347) => [
q(Polish),
],
- q(0347) => [
+ q(0348) => [
q(Pohnpeian),
],
- q(0348) => [
+ q(0349) => [
q(Portuguese),
],
- q(0349) => [
+ q(0350) => [
q(Prakrit languages),
],
- q(0350) => [
+ q(0351) => [
q(Provencal, Old (to 1500)),
q(Old Provencal (to 1500)),
q(Old Occitan (to 1500)),
],
- q(0351) => [
+ q(0352) => [
q(Pushto),
q(Pashto),
],
- q(0352) => [
+ q(0353) => [
q(Reserved for local use),
],
- q(0353) => [
+ q(0354) => [
q(Quechua),
],
- q(0354) => [
+ q(0355) => [
q(Rajasthani),
],
- q(0355) => [
+ q(0356) => [
q(Rapanui),
],
- q(0356) => [
+ q(0357) => [
q(Rarotongan),
q(Cook Islands Maori),
],
- q(0357) => [
+ q(0358) => [
q(Romance languages),
],
- q(0358) => [
+ q(0359) => [
q(Romansh),
],
- q(0359) => [
+ q(0360) => [
q(Romany),
],
- q(0360) => [
+ q(0361) => [
q(Romanian),
q(Moldavian),
q(Moldovan),
],
- q(0361) => [
+ q(0362) => [
q(Rundi),
],
- q(0362) => [
+ q(0363) => [
q(Aromanian),
q(Arumanian),
q(Macedo-Romanian),
],
- q(0363) => [
+ q(0364) => [
q(Russian),
],
- q(0364) => [
+ q(0365) => [
q(Sandawe),
],
- q(0365) => [
+ q(0366) => [
q(Sango),
],
- q(0366) => [
+ q(0367) => [
q(Yakut),
],
- q(0367) => [
+ q(0368) => [
q(South American Indian (Other)),
q(South American Indian languages),
],
- q(0368) => [
+ q(0369) => [
q(Salishan languages),
],
- q(0369) => [
+ q(0370) => [
q(Samaritan Aramaic),
],
- q(0370) => [
+ q(0371) => [
q(Sanskrit),
],
- q(0371) => [
+ q(0372) => [
q(Sasak),
],
- q(0372) => [
+ q(0373) => [
q(Santali),
],
- q(0373) => [
+ q(0374) => [
q(Sicilian),
],
- q(0374) => [
+ q(0375) => [
q(Scots),
],
- q(0375) => [
+ q(0376) => [
q(Selkup),
],
- q(0376) => [
+ q(0377) => [
q(Semitic languages),
],
- q(0377) => [
+ q(0378) => [
q(Irish, Old (to 900)),
q(Old Irish (to 900)),
],
- q(0378) => [
+ q(0379) => [
q(Sign Languages),
],
- q(0379) => [
+ q(0380) => [
q(Shan),
],
- q(0380) => [
+ q(0381) => [
q(Sidamo),
],
- q(0381) => [
+ q(0382) => [
q(Sinhala),
q(Sinhalese),
],
- q(0382) => [
+ q(0383) => [
q(Siouan languages),
],
- q(0383) => [
+ q(0384) => [
q(Sino-Tibetan languages),
],
- q(0384) => [
+ q(0385) => [
q(Slavic languages),
],
- q(0385) => [
+ q(0386) => [
q(Slovak),
],
- q(0386) => [
+ q(0387) => [
q(Slovenian),
],
- q(0387) => [
+ q(0388) => [
q(Southern Sami),
],
- q(0388) => [
+ q(0389) => [
q(Northern Sami),
],
- q(0389) => [
+ q(0390) => [
q(Sami languages),
],
- q(0390) => [
+ q(0391) => [
q(Lule Sami),
],
- q(0391) => [
+ q(0392) => [
q(Inari Sami),
],
- q(0392) => [
+ q(0393) => [
q(Samoan),
],
- q(0393) => [
+ q(0394) => [
q(Skolt Sami),
],
- q(0394) => [
+ q(0395) => [
q(Shona),
],
- q(0395) => [
+ q(0396) => [
q(Sindhi),
],
- q(0396) => [
+ q(0397) => [
q(Soninke),
],
- q(0397) => [
+ q(0398) => [
q(Sogdian),
],
- q(0398) => [
+ q(0399) => [
q(Somali),
],
- q(0399) => [
+ q(0400) => [
q(Songhai languages),
],
- q(0400) => [
+ q(0401) => [
q(Sotho, Southern),
q(Southern Sotho),
],
- q(0401) => [
+ q(0402) => [
q(Spanish),
q(Castilian),
],
- q(0402) => [
+ q(0403) => [
q(Sardinian),
],
- q(0403) => [
+ q(0404) => [
q(Sranan Tongo),
],
- q(0404) => [
+ q(0405) => [
q(Serbian),
],
- q(0405) => [
+ q(0406) => [
q(Serer),
],
- q(0406) => [
+ q(0407) => [
q(Nilo-Saharan languages),
],
- q(0407) => [
+ q(0408) => [
q(Swati),
],
- q(0408) => [
+ q(0409) => [
q(Sukuma),
],
- q(0409) => [
+ q(0410) => [
q(Sundanese),
],
- q(0410) => [
+ q(0411) => [
q(Susu),
],
- q(0411) => [
+ q(0412) => [
q(Sumerian),
],
- q(0412) => [
+ q(0413) => [
q(Swahili),
q(Swahili (macrolanguage)),
],
- q(0413) => [
+ q(0414) => [
q(Swedish),
],
- q(0414) => [
+ q(0415) => [
q(Classical Syriac),
],
- q(0415) => [
+ q(0416) => [
q(Syriac),
],
- q(0416) => [
+ q(0417) => [
q(Tahitian),
],
- q(0417) => [
+ q(0418) => [
q(Tai languages),
],
- q(0418) => [
+ q(0419) => [
q(Tamil),
],
- q(0419) => [
+ q(0420) => [
q(Tatar),
],
- q(0420) => [
+ q(0421) => [
q(Telugu),
],
- q(0421) => [
+ q(0422) => [
q(Timne),
],
- q(0422) => [
+ q(0423) => [
q(Tereno),
],
- q(0423) => [
+ q(0424) => [
q(Tetum),
],
- q(0424) => [
+ q(0425) => [
q(Tajik),
],
- q(0425) => [
+ q(0426) => [
q(Tagalog),
],
- q(0426) => [
+ q(0427) => [
q(Thai),
],
- q(0427) => [
+ q(0428) => [
q(Tibetan),
],
- q(0428) => [
+ q(0429) => [
q(Tigre),
],
- q(0429) => [
+ q(0430) => [
q(Tigrinya),
],
- q(0430) => [
+ q(0431) => [
q(Tiv),
],
- q(0431) => [
+ q(0432) => [
q(Tokelau),
],
- q(0432) => [
+ q(0433) => [
q(Klingon),
q(tlhIngan-Hol),
],
- q(0433) => [
+ q(0434) => [
q(Tlingit),
],
- q(0434) => [
+ q(0435) => [
q(Tamashek),
],
- q(0435) => [
+ q(0436) => [
q(Tonga (Nyasa)),
],
- q(0436) => [
+ q(0437) => [
q(Tonga (Tonga Islands)),
q(Tonga),
],
- q(0437) => [
+ q(0438) => [
q(Tok Pisin),
],
- q(0438) => [
+ q(0439) => [
q(Tsimshian),
],
- q(0439) => [
+ q(0440) => [
q(Tswana),
],
- q(0440) => [
+ q(0441) => [
q(Tsonga),
],
- q(0441) => [
+ q(0442) => [
q(Turkmen),
],
- q(0442) => [
+ q(0443) => [
q(Tumbuka),
],
- q(0443) => [
+ q(0444) => [
q(Tupi languages),
],
- q(0444) => [
+ q(0445) => [
q(Turkish),
],
- q(0445) => [
+ q(0446) => [
q(Altaic languages),
],
- q(0446) => [
+ q(0447) => [
q(Tuvalu),
],
- q(0447) => [
+ q(0448) => [
q(Twi),
],
- q(0448) => [
+ q(0449) => [
q(Tuvinian),
],
- q(0449) => [
+ q(0450) => [
q(Udmurt),
],
- q(0450) => [
+ q(0451) => [
q(Ugaritic),
],
- q(0451) => [
+ q(0452) => [
q(Uighur),
q(Uyghur),
],
- q(0452) => [
+ q(0453) => [
q(Ukrainian),
],
- q(0453) => [
+ q(0454) => [
q(Umbundu),
],
- q(0454) => [
+ q(0455) => [
q(Undetermined),
],
- q(0455) => [
+ q(0456) => [
q(Urdu),
],
- q(0456) => [
+ q(0457) => [
q(Uzbek),
],
- q(0457) => [
+ q(0458) => [
q(Vai),
],
- q(0458) => [
+ q(0459) => [
q(Venda),
],
- q(0459) => [
+ q(0460) => [
q(Vietnamese),
],
- q(0460) => [
+ q(0461) => [
q(Volapuk),
],
- q(0461) => [
+ q(0462) => [
q(Votic),
],
- q(0462) => [
+ q(0463) => [
q(Wakashan languages),
],
- q(0463) => [
+ q(0464) => [
q(Walamo),
q(Wolaytta),
q(Wolaitta),
],
- q(0464) => [
+ q(0465) => [
q(Waray),
q(Waray (Philippines)),
],
- q(0465) => [
+ q(0466) => [
q(Washo),
],
- q(0466) => [
+ q(0467) => [
q(Welsh),
],
- q(0467) => [
+ q(0468) => [
q(Sorbian languages),
],
- q(0468) => [
+ q(0469) => [
q(Walloon),
],
- q(0469) => [
+ q(0470) => [
q(Wolof),
],
- q(0470) => [
+ q(0471) => [
q(Kalmyk),
q(Oirat),
],
- q(0471) => [
+ q(0472) => [
q(Xhosa),
],
- q(0472) => [
+ q(0473) => [
q(Yao),
],
- q(0473) => [
+ q(0474) => [
q(Yapese),
],
- q(0474) => [
+ q(0475) => [
q(Yiddish),
],
- q(0475) => [
+ q(0476) => [
q(Yoruba),
],
- q(0476) => [
+ q(0477) => [
q(Yupik languages),
],
- q(0477) => [
+ q(0478) => [
q(Zapotec),
],
- q(0478) => [
+ q(0479) => [
q(Blissymbols),
q(Blissymbolics),
q(Bliss),
],
- q(0479) => [
+ q(0480) => [
q(Zenaga),
],
- q(0480) => [
+ q(0481) => [
q(Standard Moroccan Tamazight),
],
- q(0481) => [
+ q(0482) => [
q(Zhuang),
q(Chuang),
],
- q(0482) => [
+ q(0483) => [
q(Zande languages),
],
- q(0483) => [
+ q(0484) => [
q(Zulu),
],
- q(0484) => [
+ q(0485) => [
q(Zuni),
],
- q(0485) => [
+ q(0486) => [
q(No linguistic content),
q(Not applicable),
],
- q(0486) => [
+ q(0487) => [
q(Zaza),
q(Dimili),
q(Dimli),
@@ -1600,2073 +1605,2070 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(Dimli (macrolanguage)),
q(Kirmanjki (macrolanguage)),
],
- q(0487) => [
+ q(0488) => [
q(Austro-Asiatic languages),
],
- q(0488) => [
+ q(0489) => [
q(Atlantic-Congo languages),
],
- q(0489) => [
+ q(0490) => [
q(Alacalufan languages),
],
- q(0490) => [
+ q(0491) => [
q(Algic languages),
],
- q(0491) => [
+ q(0492) => [
q(Arauan languages),
],
- q(0492) => [
+ q(0493) => [
q(Arawakan languages),
],
- q(0493) => [
+ q(0494) => [
q(Uto-Aztecan languages),
],
- q(0494) => [
+ q(0495) => [
q(Chibchan languages),
],
- q(0495) => [
+ q(0496) => [
q(North Caucasian languages),
],
- q(0496) => [
+ q(0497) => [
q(South Caucasian languages),
],
- q(0497) => [
+ q(0498) => [
q(Chadic languages),
],
- q(0498) => [
+ q(0499) => [
q(Caddoan languages),
],
- q(0499) => [
+ q(0500) => [
q(Central Sudanic languages),
],
- q(0500) => [
+ q(0501) => [
q(Mande languages),
],
- q(0501) => [
+ q(0502) => [
q(Egyptian languages),
],
- q(0502) => [
+ q(0503) => [
q(Eskimo-Aleut languages),
],
- q(0503) => [
+ q(0504) => [
q(Basque (family)),
],
- q(0504) => [
+ q(0505) => [
q(Formosan languages),
],
- q(0505) => [
+ q(0506) => [
q(East Germanic languages),
],
- q(0506) => [
+ q(0507) => [
q(North Germanic languages),
],
- q(0507) => [
+ q(0508) => [
q(West Germanic languages),
],
- q(0508) => [
+ q(0509) => [
q(Greek languages),
],
- q(0509) => [
+ q(0510) => [
q(Hmong-Mien languages),
],
- q(0510) => [
+ q(0511) => [
q(Hokan languages),
],
- q(0511) => [
+ q(0512) => [
q(Armenian (family)),
],
- q(0512) => [
+ q(0513) => [
q(Indo-Iranian languages),
],
- q(0513) => [
+ q(0514) => [
q(Italic languages),
],
- q(0514) => [
+ q(0515) => [
q(Japanese (family)),
],
- q(0515) => [
+ q(0516) => [
q(Kordofanian languages),
],
- q(0516) => [
+ q(0517) => [
q(Trans-New Guinea languages),
],
- q(0517) => [
+ q(0518) => [
q(Oto-Manguean languages),
],
- q(0518) => [
+ q(0519) => [
q(Omotic languages),
],
- q(0519) => [
+ q(0520) => [
q(Central Malayo-Polynesian languages),
],
- q(0520) => [
+ q(0521) => [
q(Malayo-Polynesian languages),
],
- q(0521) => [
+ q(0522) => [
q(Eastern Malayo-Polynesian languages),
],
- q(0522) => [
+ q(0523) => [
q(Western Malayo-Polynesian languages),
],
- q(0523) => [
+ q(0524) => [
q(Quechuan (family)),
],
- q(0524) => [
+ q(0525) => [
q(Eastern Sudanic languages),
],
- q(0525) => [
+ q(0526) => [
q(Albanian languages),
],
- q(0526) => [
+ q(0527) => [
q(Samoyedic languages),
],
- q(0527) => [
+ q(0528) => [
q(Tibeto-Burman languages),
],
- q(0528) => [
+ q(0529) => [
q(Turkic languages),
],
- q(0529) => [
+ q(0530) => [
q(Tungus languages),
],
- q(0530) => [
+ q(0531) => [
q(Uralic languages),
],
- q(0531) => [
+ q(0532) => [
q(Mongolian languages),
],
- q(0532) => [
+ q(0533) => [
q(Na-Dene languages),
],
- q(0533) => [
+ q(0534) => [
q(Chinese (family)),
],
- q(0534) => [
+ q(0535) => [
q(East Slavic languages),
],
- q(0535) => [
+ q(0536) => [
q(South Slavic languages),
],
- q(0536) => [
+ q(0537) => [
q(West Slavic languages),
],
- q(0537) => [
+ q(0538) => [
q(Serbo-Croatian),
],
- q(0538) => [
+ q(0539) => [
q(Ghotuo),
],
- q(0539) => [
+ q(0540) => [
q(Alumu-Tesu),
],
- q(0540) => [
+ q(0541) => [
q(Ari),
],
- q(0541) => [
+ q(0542) => [
q(Amal),
],
- q(0542) => [
+ q(0543) => [
q(Arbereshe Albanian),
],
- q(0543) => [
+ q(0544) => [
q(Aranadan),
],
- q(0544) => [
+ q(0545) => [
q(Ambrak),
],
- q(0545) => [
+ q(0546) => [
q(Abu' Arapesh),
],
- q(0546) => [
+ q(0547) => [
q(Arifama-Miniafia),
],
- q(0547) => [
+ q(0548) => [
q(Ankave),
],
- q(0548) => [
+ q(0549) => [
q(Afade),
],
- q(0549) => [
+ q(0550) => [
q(Anambe),
],
- q(0550) => [
+ q(0551) => [
q(Algerian Saharan Arabic),
],
- q(0551) => [
+ q(0552) => [
q(Para Arara),
],
- q(0552) => [
+ q(0553) => [
q(Eastern Abnaki),
],
- q(0553) => [
+ q(0554) => [
q(Aasax),
],
- q(0554) => [
+ q(0555) => [
q(Arvanitika Albanian),
],
- q(0555) => [
+ q(0556) => [
q(Abau),
],
- q(0556) => [
+ q(0557) => [
q(Solong),
],
- q(0557) => [
+ q(0558) => [
q(Mandobo Atas),
],
- q(0558) => [
+ q(0559) => [
q(Amarasi),
],
- q(0559) => [
+ q(0560) => [
q(Abe),
],
- q(0560) => [
+ q(0561) => [
q(Bankon),
],
- q(0561) => [
+ q(0562) => [
q(Ambala Ayta),
],
- q(0562) => [
+ q(0563) => [
q(Manide),
],
- q(0563) => [
+ q(0564) => [
q(Western Abnaki),
],
- q(0564) => [
+ q(0565) => [
q(Abai Sungai),
],
- q(0565) => [
+ q(0566) => [
q(Abaga),
],
- q(0566) => [
+ q(0567) => [
q(Tajiki Arabic),
],
- q(0567) => [
+ q(0568) => [
q(Abidji),
],
- q(0568) => [
+ q(0569) => [
q(Aka-Bea),
],
- q(0569) => [
+ q(0570) => [
q(Lampung Nyo),
],
- q(0570) => [
+ q(0571) => [
q(Abanyom),
],
- q(0571) => [
+ q(0572) => [
q(Abua),
],
- q(0572) => [
+ q(0573) => [
q(Abon),
],
- q(0573) => [
+ q(0574) => [
q(Abellen Ayta),
],
- q(0574) => [
+ q(0575) => [
q(Abaza),
],
- q(0575) => [
+ q(0576) => [
q(Abron),
],
- q(0576) => [
+ q(0577) => [
q(Ambonese Malay),
],
- q(0577) => [
+ q(0578) => [
q(Ambulas),
],
- q(0578) => [
+ q(0579) => [
q(Abure),
],
- q(0579) => [
+ q(0580) => [
q(Baharna Arabic),
],
- q(0580) => [
+ q(0581) => [
q(Pal),
],
- q(0581) => [
+ q(0582) => [
q(Inabaknon),
],
- q(0582) => [
+ q(0583) => [
q(Aneme Wake),
],
- q(0583) => [
+ q(0584) => [
q(Abui),
],
- q(0584) => [
+ q(0585) => [
q(Achagua),
],
- q(0585) => [
+ q(0586) => [
q(Anca),
],
- q(0586) => [
+ q(0587) => [
q(Gikyode),
],
- q(0587) => [
+ q(0588) => [
q(Saint Lucian Creole French),
],
- q(0588) => [
+ q(0589) => [
q(Aka-Cari),
],
- q(0589) => [
+ q(0590) => [
q(Aka-Kora),
],
- q(0590) => [
+ q(0591) => [
q(Akar-Bale),
],
- q(0591) => [
+ q(0592) => [
q(Mesopotamian Arabic),
],
- q(0592) => [
+ q(0593) => [
q(Achang),
],
- q(0593) => [
+ q(0594) => [
q(Eastern Acipa),
],
- q(0594) => [
+ q(0595) => [
q(Ta'izzi-Adeni Arabic),
],
- q(0595) => [
+ q(0596) => [
q(Achi),
],
- q(0596) => [
+ q(0597) => [
q(Acroa),
],
- q(0597) => [
+ q(0598) => [
q(Achterhoeks),
],
- q(0598) => [
+ q(0599) => [
q(Achuar-Shiwiar),
],
- q(0599) => [
+ q(0600) => [
q(Achumawi),
],
- q(0600) => [
+ q(0601) => [
q(Hijazi Arabic),
],
- q(0601) => [
+ q(0602) => [
q(Omani Arabic),
],
- q(0602) => [
+ q(0603) => [
q(Cypriot Arabic),
],
- q(0603) => [
+ q(0604) => [
q(Acheron),
],
- q(0604) => [
+ q(0605) => [
q(Adabe),
],
- q(0605) => [
+ q(0606) => [
q(Dzodinka),
],
- q(0606) => [
+ q(0607) => [
q(Adele),
],
- q(0607) => [
+ q(0608) => [
q(Dhofari Arabic),
],
- q(0608) => [
+ q(0609) => [
q(Andegerebinha),
],
- q(0609) => [
+ q(0610) => [
q(Adhola),
],
- q(0610) => [
+ q(0611) => [
q(Adi),
],
- q(0611) => [
+ q(0612) => [
q(Adioukrou),
],
- q(0612) => [
+ q(0613) => [
q(Galo),
],
- q(0613) => [
+ q(0614) => [
q(Adang),
],
- q(0614) => [
+ q(0615) => [
q(Abu),
],
- q(0615) => [
+ q(0616) => [
q(Adangbe),
],
- q(0616) => [
+ q(0617) => [
q(Adonara),
],
- q(0617) => [
+ q(0618) => [
q(Adamorobe Sign Language),
],
- q(0618) => [
+ q(0619) => [
q(Adnyamathanha),
],
- q(0619) => [
+ q(0620) => [
q(Aduge),
],
- q(0620) => [
+ q(0621) => [
q(Amundava),
],
- q(0621) => [
+ q(0622) => [
q(Amdo Tibetan),
],
- q(0622) => [
+ q(0623) => [
q(Adzera),
],
- q(0623) => [
+ q(0624) => [
q(Areba),
],
- q(0624) => [
+ q(0625) => [
q(Tunisian Arabic),
],
- q(0625) => [
+ q(0626) => [
q(Saidi Arabic),
],
- q(0626) => [
+ q(0627) => [
q(Argentine Sign Language),
],
- q(0627) => [
+ q(0628) => [
q(Northeast Pashai),
q(Northeast Pashayi),
],
- q(0628) => [
+ q(0629) => [
q(Haeke),
],
- q(0629) => [
+ q(0630) => [
q(Ambele),
],
- q(0630) => [
+ q(0631) => [
q(Arem),
],
- q(0631) => [
+ q(0632) => [
q(Armenian Sign Language),
],
- q(0632) => [
+ q(0633) => [
q(Aer),
],
- q(0633) => [
+ q(0634) => [
q(Eastern Arrernte),
],
- q(0634) => [
+ q(0635) => [
q(Alsea),
],
- q(0635) => [
+ q(0636) => [
q(Akeu),
],
- q(0636) => [
+ q(0637) => [
q(Ambakich),
],
- q(0637) => [
+ q(0638) => [
q(Amele),
],
- q(0638) => [
+ q(0639) => [
q(Aeka),
],
- q(0639) => [
+ q(0640) => [
q(Gulf Arabic),
],
- q(0640) => [
+ q(0641) => [
q(Andai),
],
- q(0641) => [
+ q(0642) => [
q(Putukwam),
],
- q(0642) => [
+ q(0643) => [
q(Afghan Sign Language),
],
- q(0643) => [
+ q(0644) => [
q(Akrukay),
q(Chini),
],
- q(0644) => [
+ q(0645) => [
q(Nanubae),
],
- q(0645) => [
+ q(0646) => [
q(Defaka),
],
- q(0646) => [
+ q(0647) => [
q(Eloyi),
],
- q(0647) => [
+ q(0648) => [
q(Tapei),
],
- q(0648) => [
+ q(0649) => [
q(Afro-Seminole Creole),
],
- q(0649) => [
+ q(0650) => [
q(Afitti),
],
- q(0650) => [
+ q(0651) => [
q(Awutu),
],
- q(0651) => [
+ q(0652) => [
q(Obokuitai),
],
- q(0652) => [
+ q(0653) => [
q(Aguano),
],
- q(0653) => [
+ q(0654) => [
q(Legbo),
],
- q(0654) => [
+ q(0655) => [
q(Agatu),
],
- q(0655) => [
+ q(0656) => [
q(Agarabi),
],
- q(0656) => [
+ q(0657) => [
q(Angal),
],
- q(0657) => [
+ q(0658) => [
q(Arguni),
],
- q(0658) => [
+ q(0659) => [
q(Angor),
],
- q(0659) => [
+ q(0660) => [
q(Ngelima),
],
- q(0660) => [
+ q(0661) => [
q(Agariya),
],
- q(0661) => [
+ q(0662) => [
q(Argobba),
],
- q(0662) => [
+ q(0663) => [
q(Isarog Agta),
],
- q(0663) => [
+ q(0664) => [
q(Fembe),
],
- q(0664) => [
+ q(0665) => [
q(Angaataha),
],
- q(0665) => [
+ q(0666) => [
q(Agutaynen),
],
- q(0666) => [
+ q(0667) => [
q(Tainae),
],
- q(0667) => [
+ q(0668) => [
q(Aghem),
],
- q(0668) => [
+ q(0669) => [
q(Aguaruna),
],
- q(0669) => [
+ q(0670) => [
q(Esimbi),
],
- q(0670) => [
+ q(0671) => [
q(Central Cagayan Agta),
],
- q(0671) => [
+ q(0672) => [
q(Aguacateco),
],
- q(0672) => [
+ q(0673) => [
q(Remontado Dumagat),
],
- q(0673) => [
+ q(0674) => [
q(Kahua),
],
- q(0674) => [
+ q(0675) => [
q(Aghul),
],
- q(0675) => [
+ q(0676) => [
q(Southern Alta),
],
- q(0676) => [
+ q(0677) => [
q(Mt. Iriga Agta),
],
- q(0677) => [
+ q(0678) => [
q(Ahanta),
],
- q(0678) => [
+ q(0679) => [
q(Axamb),
],
- q(0679) => [
+ q(0680) => [
q(Qimant),
],
- q(0680) => [
+ q(0681) => [
q(Aghu),
],
- q(0681) => [
+ q(0682) => [
q(Tiagbamrin Aizi),
],
- q(0682) => [
+ q(0683) => [
q(Akha),
],
- q(0683) => [
+ q(0684) => [
q(Igo),
],
- q(0684) => [
+ q(0685) => [
q(Mobumrin Aizi),
],
- q(0685) => [
+ q(0686) => [
q(Ahan),
],
- q(0686) => [
+ q(0687) => [
q(Ahom),
],
- q(0687) => [
+ q(0688) => [
q(Aproumu Aizi),
],
- q(0688) => [
+ q(0689) => [
q(Ahirani),
],
- q(0689) => [
+ q(0690) => [
q(Ashe),
],
- q(0690) => [
+ q(0691) => [
q(Ahtena),
],
- q(0691) => [
+ q(0692) => [
q(Arosi),
],
- q(0692) => [
+ q(0693) => [
q(Ainu (China)),
],
- q(0693) => [
+ q(0694) => [
q(Ainbai),
],
- q(0694) => [
+ q(0695) => [
q(Alngith),
],
- q(0695) => [
+ q(0696) => [
q(Amara),
],
- q(0696) => [
+ q(0697) => [
q(Agi),
],
- q(0697) => [
+ q(0698) => [
q(Antigua and Barbuda Creole English),
],
- q(0698) => [
+ q(0699) => [
q(Ai-Cham),
],
- q(0699) => [
+ q(0700) => [
q(Assyrian Neo-Aramaic),
],
- q(0700) => [
+ q(0701) => [
q(Lishanid Noshan),
],
- q(0701) => [
+ q(0702) => [
q(Ake),
],
- q(0702) => [
+ q(0703) => [
q(Aimele),
],
- q(0703) => [
+ q(0704) => [
q(Aimol),
],
- q(0704) => [
+ q(0705) => [
q(Aiton),
],
- q(0705) => [
+ q(0706) => [
q(Burumakok),
],
- q(0706) => [
+ q(0707) => [
q(Aimaq),
],
- q(0707) => [
+ q(0708) => [
q(Airoran),
],
- q(0708) => [
+ q(0709) => [
q(Nataoran Amis),
],
- q(0709) => [
+ q(0710) => [
q(Arikem),
],
- q(0710) => [
+ q(0711) => [
q(Aari),
],
- q(0711) => [
+ q(0712) => [
q(Aighon),
],
- q(0712) => [
+ q(0713) => [
q(Ali),
],
- q(0713) => [
+ q(0714) => [
q(Aja (Sudan)),
],
- q(0714) => [
+ q(0715) => [
q(Aja (Benin)),
],
- q(0715) => [
+ q(0716) => [
q(Ajie),
],
- q(0716) => [
+ q(0717) => [
q(Andajin),
],
- q(0717) => [
+ q(0718) => [
q(South Levantine Arabic),
],
- q(0718) => [
+ q(0719) => [
q(Judeo-Tunisian Arabic),
],
- q(0719) => [
+ q(0720) => [
q(Judeo-Moroccan Arabic),
],
- q(0720) => [
+ q(0721) => [
q(Ajawa),
],
- q(0721) => [
+ q(0722) => [
q(Amri Karbi),
],
- q(0722) => [
+ q(0723) => [
q(Batak Angkola),
],
- q(0723) => [
+ q(0724) => [
q(Mpur),
],
- q(0724) => [
+ q(0725) => [
q(Ukpet-Ehom),
],
- q(0725) => [
+ q(0726) => [
q(Akawaio),
],
- q(0726) => [
+ q(0727) => [
q(Akpa),
],
- q(0727) => [
+ q(0728) => [
q(Anakalangu),
],
- q(0728) => [
+ q(0729) => [
q(Angal Heneng),
],
- q(0729) => [
+ q(0730) => [
q(Aiome),
],
- q(0730) => [
+ q(0731) => [
q(Aka-Jeru),
],
- q(0731) => [
+ q(0732) => [
q(Aklanon),
],
- q(0732) => [
+ q(0733) => [
q(Aka-Bo),
],
- q(0733) => [
+ q(0734) => [
q(Akurio),
],
- q(0734) => [
+ q(0735) => [
q(Siwu),
],
- q(0735) => [
+ q(0736) => [
q(Ak),
],
- q(0736) => [
+ q(0737) => [
q(Araki),
],
- q(0737) => [
+ q(0738) => [
q(Akaselem),
],
- q(0738) => [
+ q(0739) => [
q(Akolet),
],
- q(0739) => [
+ q(0740) => [
q(Akum),
],
- q(0740) => [
+ q(0741) => [
q(Akhvakh),
],
- q(0741) => [
+ q(0742) => [
q(Akwa),
],
- q(0742) => [
+ q(0743) => [
q(Aka-Kede),
],
- q(0743) => [
+ q(0744) => [
q(Aka-Kol),
],
- q(0744) => [
+ q(0745) => [
q(Alabama),
],
- q(0745) => [
+ q(0746) => [
q(Alago),
],
- q(0746) => [
+ q(0747) => [
q(Qawasqar),
],
- q(0747) => [
+ q(0748) => [
q(Alladian),
],
- q(0748) => [
+ q(0749) => [
q(Alege),
],
- q(0749) => [
+ q(0750) => [
q(Alawa),
],
- q(0750) => [
+ q(0751) => [
q(Amaimon),
],
- q(0751) => [
+ q(0752) => [
q(Alangan),
],
- q(0752) => [
+ q(0753) => [
q(Alak),
],
- q(0753) => [
+ q(0754) => [
q(Allar),
],
- q(0754) => [
+ q(0755) => [
q(Amblong),
],
- q(0755) => [
+ q(0756) => [
q(Gheg Albanian),
],
- q(0756) => [
+ q(0757) => [
q(Larike-Wakasihu),
],
- q(0757) => [
+ q(0758) => [
q(Alune),
],
- q(0758) => [
+ q(0759) => [
q(Algonquin),
],
- q(0759) => [
+ q(0760) => [
q(Alutor),
],
- q(0760) => [
+ q(0761) => [
q(Tosk Albanian),
],
- q(0761) => [
+ q(0762) => [
q('Are'are),
],
- q(0762) => [
+ q(0763) => [
q(Alaba-K'abeena),
q(Wanbasana),
],
- q(0763) => [
+ q(0764) => [
q(Amol),
],
- q(0764) => [
+ q(0765) => [
q(Alyawarr),
],
- q(0765) => [
+ q(0766) => [
q(Alur),
],
- q(0766) => [
+ q(0767) => [
q(Amanaye),
],
- q(0767) => [
+ q(0768) => [
q(Ambo),
],
- q(0768) => [
+ q(0769) => [
q(Amahuaca),
],
- q(0769) => [
+ q(0770) => [
q(Yanesha'),
],
- q(0770) => [
+ q(0771) => [
q(Hamer-Banna),
],
- q(0771) => [
+ q(0772) => [
q(Amurdak),
],
- q(0772) => [
+ q(0773) => [
q(Amis),
],
- q(0773) => [
+ q(0774) => [
q(Amdang),
],
- q(0774) => [
+ q(0775) => [
q(Ambai),
],
- q(0775) => [
+ q(0776) => [
q(War-Jaintia),
],
- q(0776) => [
+ q(0777) => [
q(Ama (Papua New Guinea)),
],
- q(0777) => [
+ q(0778) => [
q(Amanab),
],
- q(0778) => [
+ q(0779) => [
q(Amo),
],
- q(0779) => [
+ q(0780) => [
q(Alamblak),
],
- q(0780) => [
+ q(0781) => [
q(Amahai),
],
- q(0781) => [
+ q(0782) => [
q(Amarakaeri),
],
- q(0782) => [
+ q(0783) => [
q(Southern Amami-Oshima),
],
- q(0783) => [
+ q(0784) => [
q(Amto),
],
- q(0784) => [
+ q(0785) => [
q(Guerrero Amuzgo),
],
- q(0785) => [
+ q(0786) => [
q(Ambelau),
],
- q(0786) => [
+ q(0787) => [
q(Western Neo-Aramaic),
],
- q(0787) => [
+ q(0788) => [
q(Anmatyerre),
],
- q(0788) => [
+ q(0789) => [
q(Ami),
],
- q(0789) => [
+ q(0790) => [
q(Atampaya),
],
- q(0790) => [
+ q(0791) => [
q(Andaqui),
],
- q(0791) => [
+ q(0792) => [
q(Andoa),
],
- q(0792) => [
+ q(0793) => [
q(Ngas),
],
- q(0793) => [
+ q(0794) => [
q(Ansus),
],
- q(0794) => [
+ q(0795) => [
q(Xaracuu),
],
- q(0795) => [
+ q(0796) => [
q(Animere),
],
- q(0796) => [
+ q(0797) => [
q(Nend),
],
- q(0797) => [
+ q(0798) => [
q(Andi),
],
- q(0798) => [
+ q(0799) => [
q(Anor),
],
- q(0799) => [
+ q(0800) => [
q(Goemai),
],
- q(0800) => [
+ q(0801) => [
q(Anu-Hkongso Chin),
],
- q(0801) => [
+ q(0802) => [
q(Anal),
],
- q(0802) => [
+ q(0803) => [
q(Obolo),
],
- q(0803) => [
+ q(0804) => [
q(Andoque),
],
- q(0804) => [
+ q(0805) => [
q(Jarawa (India)),
],
- q(0805) => [
+ q(0806) => [
q(Andh),
],
- q(0806) => [
+ q(0807) => [
q(Anserma),
],
- q(0807) => [
+ q(0808) => [
q(Antakarinya),
],
- q(0808) => [
+ q(0809) => [
q(Anuak),
],
- q(0809) => [
+ q(0810) => [
q(Denya),
],
- q(0810) => [
+ q(0811) => [
q(Anaang),
],
- q(0811) => [
+ q(0812) => [
q(Andra-Hus),
],
- q(0812) => [
+ q(0813) => [
q(Anyin),
],
- q(0813) => [
+ q(0814) => [
q(Anem),
],
- q(0814) => [
+ q(0815) => [
q(Angolar),
],
- q(0815) => [
+ q(0816) => [
q(Abom),
],
- q(0816) => [
+ q(0817) => [
q(Pemon),
],
- q(0817) => [
+ q(0818) => [
q(Andarum),
],
- q(0818) => [
+ q(0819) => [
q(Angal Enen),
],
- q(0819) => [
+ q(0820) => [
q(Bragat),
],
- q(0820) => [
+ q(0821) => [
q(Angoram),
],
- q(0821) => [
+ q(0822) => [
q(Arma),
],
- q(0822) => [
+ q(0823) => [
q(Anindilyakwa),
],
- q(0823) => [
+ q(0824) => [
q(Mufian),
],
- q(0824) => [
+ q(0825) => [
q(Arho),
],
- q(0825) => [
+ q(0826) => [
q(Alor),
],
- q(0826) => [
+ q(0827) => [
q(Omie),
],
- q(0827) => [
+ q(0828) => [
q(Bumbita Arapesh),
],
- q(0828) => [
+ q(0829) => [
q(Aore),
],
- q(0829) => [
+ q(0830) => [
q(Taikat),
],
- q(0830) => [
+ q(0831) => [
q(Atong (India)),
q(A'tong),
],
- q(0831) => [
+ q(0832) => [
q(A'ou),
],
- q(0832) => [
+ q(0833) => [
q(Atorada),
],
- q(0833) => [
+ q(0834) => [
q(Uab Meto),
],
- q(0834) => [
+ q(0835) => [
q(Sa'a),
],
- q(0835) => [
+ q(0836) => [
q(North Levantine Arabic),
],
- q(0836) => [
+ q(0837) => [
q(Sudanese Arabic),
],
- q(0837) => [
+ q(0838) => [
q(Bukiyip),
],
- q(0838) => [
+ q(0839) => [
q(Pahanan Agta),
],
- q(0839) => [
+ q(0840) => [
q(Ampanang),
],
- q(0840) => [
+ q(0841) => [
q(Athpariya),
],
- q(0841) => [
+ q(0842) => [
q(Apiaka),
],
- q(0842) => [
+ q(0843) => [
q(Jicarilla Apache),
],
- q(0843) => [
+ q(0844) => [
q(Kiowa Apache),
],
- q(0844) => [
+ q(0845) => [
q(Lipan Apache),
],
- q(0845) => [
+ q(0846) => [
q(Mescalero-Chiricahua Apache),
],
- q(0846) => [
+ q(0847) => [
q(Apinaye),
],
- q(0847) => [
+ q(0848) => [
q(Ambul),
],
- q(0848) => [
+ q(0849) => [
q(Apma),
],
- q(0849) => [
+ q(0850) => [
q(A-Pucikwar),
],
- q(0850) => [
+ q(0851) => [
q(Arop-Lokep),
],
- q(0851) => [
+ q(0852) => [
q(Arop-Sissano),
],
- q(0852) => [
+ q(0853) => [
q(Apatani),
],
- q(0853) => [
+ q(0854) => [
q(Apurina),
],
- q(0854) => [
+ q(0855) => [
q(Alapmunte),
],
- q(0855) => [
+ q(0856) => [
q(Western Apache),
],
- q(0856) => [
+ q(0857) => [
q(Aputai),
],
- q(0857) => [
+ q(0858) => [
q(Apalai),
],
- q(0858) => [
+ q(0859) => [
q(Safeyoka),
],
- q(0859) => [
+ q(0860) => [
q(Archi),
],
- q(0860) => [
+ q(0861) => [
q(Ampari Dogon),
],
- q(0861) => [
+ q(0862) => [
q(Arigidi),
],
- q(0862) => [
+ q(0863) => [
q(Atohwaim),
],
- q(0863) => [
+ q(0864) => [
q(Northern Alta),
],
- q(0864) => [
+ q(0865) => [
q(Atakapa),
],
- q(0865) => [
+ q(0866) => [
q(Arha),
],
- q(0866) => [
+ q(0867) => [
q(Angaite),
],
- q(0867) => [
+ q(0868) => [
q(Akuntsu),
],
- q(0868) => [
+ q(0869) => [
q(Standard Arabic),
],
- q(0869) => [
+ q(0870) => [
q(Arabana),
],
- q(0870) => [
+ q(0871) => [
q(Western Arrarnta),
],
- q(0871) => [
+ q(0872) => [
q(Arhuaco),
],
- q(0872) => [
+ q(0873) => [
q(Arikara),
],
- q(0873) => [
+ q(0874) => [
q(Arapaso),
],
- q(0874) => [
+ q(0875) => [
q(Arikapu),
],
- q(0875) => [
+ q(0876) => [
q(Arabela),
],
- q(0876) => [
+ q(0877) => [
q(Araona),
],
- q(0877) => [
+ q(0878) => [
q(Algerian Arabic),
],
- q(0878) => [
+ q(0879) => [
q(Karo (Brazil)),
],
- q(0879) => [
+ q(0880) => [
q(Najdi Arabic),
],
- q(0880) => [
+ q(0881) => [
q(Arua (Amazonas State)),
q(Arawa),
],
- q(0881) => [
+ q(0882) => [
q(Arbore),
],
- q(0882) => [
+ q(0883) => [
q(Arua (Rodonia State)),
],
- q(0883) => [
+ q(0884) => [
q(Moroccan Arabic),
],
- q(0884) => [
+ q(0885) => [
q(Egyptian Arabic),
],
- q(0885) => [
+ q(0886) => [
q(Asu (Tanzania)),
],
- q(0886) => [
+ q(0887) => [
q(Assiniboine),
],
- q(0887) => [
+ q(0888) => [
q(Casuarina Coast Asmat),
],
- q(0888) => [
+ q(0889) => [
q(Asas),
],
- q(0889) => [
+ q(0890) => [
q(American Sign Language),
],
- q(0890) => [
+ q(0891) => [
q(Australian Sign Language),
],
- q(0891) => [
+ q(0892) => [
q(Cishingini),
],
- q(0892) => [
+ q(0893) => [
q(Abishira),
],
- q(0893) => [
+ q(0894) => [
q(Buruwai),
],
- q(0894) => [
+ q(0895) => [
q(Sari),
],
- q(0895) => [
+ q(0896) => [
q(Ashkun),
],
- q(0896) => [
+ q(0897) => [
q(Asilulu),
],
- q(0897) => [
+ q(0898) => [
q(Xingu Asurini),
],
- q(0898) => [
+ q(0899) => [
q(Dano),
],
- q(0899) => [
+ q(0900) => [
q(Algerian Sign Language),
],
- q(0900) => [
+ q(0901) => [
q(Austrian Sign Language),
],
- q(0901) => [
+ q(0902) => [
q(Asuri),
],
- q(0902) => [
+ q(0903) => [
q(Ipulo),
],
- q(0903) => [
+ q(0904) => [
q(Tocantins Asurini),
],
- q(0904) => [
+ q(0905) => [
q(Asoa),
],
- q(0905) => [
+ q(0906) => [
q(Australian Aborigines Sign Language),
],
- q(0906) => [
+ q(0907) => [
q(Muratayak),
],
- q(0907) => [
+ q(0908) => [
q(Yaosakor Asmat),
],
- q(0908) => [
+ q(0909) => [
q(As),
],
- q(0909) => [
+ q(0910) => [
q(Pele-Ata),
],
- q(0910) => [
+ q(0911) => [
q(Zaiwa),
],
- q(0911) => [
+ q(0912) => [
q(Atsahuaca),
],
- q(0912) => [
+ q(0913) => [
q(Ata Manobo),
],
- q(0913) => [
+ q(0914) => [
q(Atemble),
],
- q(0914) => [
+ q(0915) => [
q(Ivbie North-Okpela-Arhe),
],
- q(0915) => [
+ q(0916) => [
q(Attie),
],
- q(0916) => [
+ q(0917) => [
q(Atikamekw),
],
- q(0917) => [
+ q(0918) => [
q(Ati),
],
- q(0918) => [
+ q(0919) => [
q(Mt. Iraya Agta),
],
- q(0919) => [
+ q(0920) => [
q(Ata),
],
- q(0920) => [
+ q(0921) => [
q(Ashtiani),
],
- q(0921) => [
+ q(0922) => [
q(Atong (Cameroon)),
],
- q(0922) => [
+ q(0923) => [
q(Pudtol Atta),
],
- q(0923) => [
+ q(0924) => [
q(Aralle-Tabulahan),
],
- q(0924) => [
+ q(0925) => [
q(Waimiri-Atroari),
],
- q(0925) => [
+ q(0926) => [
q(Gros Ventre),
],
- q(0926) => [
+ q(0927) => [
q(Pamplona Atta),
],
- q(0927) => [
+ q(0928) => [
q(Reel),
],
- q(0928) => [
+ q(0929) => [
q(Northern Altai),
],
- q(0929) => [
+ q(0930) => [
q(Atsugewi),
],
- q(0930) => [
+ q(0931) => [
q(Arutani),
],
- q(0931) => [
+ q(0932) => [
q(Aneityum),
],
- q(0932) => [
+ q(0933) => [
q(Arta),
],
- q(0933) => [
+ q(0934) => [
q(Asumboa),
],
- q(0934) => [
+ q(0935) => [
q(Alugu),
],
- q(0935) => [
+ q(0936) => [
q(Waorani),
],
- q(0936) => [
+ q(0937) => [
q(Anuta),
],
- q(0937) => [
+ q(0938) => [
q(Aguna),
],
- q(0938) => [
+ q(0939) => [
q(Aushi),
],
- q(0939) => [
+ q(0940) => [
q(Anuki),
],
- q(0940) => [
+ q(0941) => [
q(Awjilah),
],
- q(0941) => [
+ q(0942) => [
q(Heyo),
],
- q(0942) => [
+ q(0943) => [
q(Aulua),
],
- q(0943) => [
+ q(0944) => [
q(Asu (Nigeria)),
],
- q(0944) => [
+ q(0945) => [
q(Molmo One),
],
- q(0945) => [
+ q(0946) => [
q(Auyokawa),
],
- q(0946) => [
+ q(0947) => [
q(Makayam),
],
- q(0947) => [
+ q(0948) => [
q(Anus),
q(Korur),
],
- q(0948) => [
+ q(0949) => [
q(Aruek),
],
- q(0949) => [
+ q(0950) => [
q(Austral),
],
- q(0950) => [
+ q(0951) => [
q(Auye),
],
- q(0951) => [
+ q(0952) => [
q(Awyi),
],
- q(0952) => [
+ q(0953) => [
q(Aura),
],
- q(0953) => [
+ q(0954) => [
q(Awiyaana),
],
- q(0954) => [
+ q(0955) => [
q(Uzbeki Arabic),
],
- q(0955) => [
+ q(0956) => [
q(Avau),
],
- q(0956) => [
+ q(0957) => [
q(Alviri-Vidari),
],
- q(0957) => [
+ q(0958) => [
q(Avikam),
],
- q(0958) => [
+ q(0959) => [
q(Kotava),
],
- q(0959) => [
+ q(0960) => [
q(Eastern Egyptian Bedawi Arabic),
],
- q(0960) => [
+ q(0961) => [
q(Angkamuthi),
],
- q(0961) => [
+ q(0962) => [
q(Avatime),
],
- q(0962) => [
+ q(0963) => [
q(Agavotaguerra),
],
- q(0963) => [
+ q(0964) => [
q(Aushiri),
],
- q(0964) => [
+ q(0965) => [
q(Au),
],
- q(0965) => [
+ q(0966) => [
q(Avokaya),
],
- q(0966) => [
+ q(0967) => [
q(Ava-Canoeiro),
],
- q(0967) => [
+ q(0968) => [
q(Awa (Papua New Guinea)),
],
- q(0968) => [
+ q(0969) => [
q(Cicipu),
],
- q(0969) => [
+ q(0970) => [
q(Aweti),
],
- q(0970) => [
+ q(0971) => [
q(Anguthimri),
],
- q(0971) => [
+ q(0972) => [
q(Awbono),
],
- q(0972) => [
+ q(0973) => [
q(Aekyom),
],
- q(0973) => [
+ q(0974) => [
q(Awabakal),
],
- q(0974) => [
+ q(0975) => [
q(Arawum),
],
- q(0975) => [
+ q(0976) => [
q(Awngi),
],
- q(0976) => [
+ q(0977) => [
q(Awak),
],
- q(0977) => [
+ q(0978) => [
q(Awera),
],
- q(0978) => [
+ q(0979) => [
q(South Awyu),
],
- q(0979) => [
+ q(0980) => [
q(Arawete),
],
- q(0980) => [
+ q(0981) => [
q(Central Awyu),
],
- q(0981) => [
+ q(0982) => [
q(Jair Awyu),
],
- q(0982) => [
+ q(0983) => [
q(Awun),
],
- q(0983) => [
+ q(0984) => [
q(Awara),
],
- q(0984) => [
+ q(0985) => [
q(Edera Awyu),
],
- q(0985) => [
+ q(0986) => [
q(Abipon),
],
- q(0986) => [
+ q(0987) => [
q(Ayerrerenge),
],
- q(0987) => [
+ q(0988) => [
q(Mato Grosso Arara),
],
- q(0988) => [
+ q(0989) => [
q(Yaka (Central African Republic)),
],
- q(0989) => [
+ q(0990) => [
q(Lower Southern Aranda),
],
- q(0990) => [
+ q(0991) => [
q(Middle Armenian),
],
- q(0991) => [
+ q(0992) => [
q(Xaragure),
],
- q(0992) => [
+ q(0993) => [
q(Awar),
],
- q(0993) => [
+ q(0994) => [
q(Ayizo Gbe),
],
- q(0994) => [
+ q(0995) => [
q(Southern Aymara),
],
- q(0995) => [
+ q(0996) => [
q(Ayabadhu),
],
- q(0996) => [
+ q(0997) => [
q(Ayere),
],
- q(0997) => [
+ q(0998) => [
q(Ginyanga),
],
- q(0998) => [
+ q(0999) => [
q(Hadrami Arabic),
],
- q(0999) => [
+ q(1000) => [
q(Leyigha),
],
- q(1000) => [
+ q(1001) => [
q(Akuku),
],
- q(1001) => [
+ q(1002) => [
q(Libyan Arabic),
],
- q(1002) => [
+ q(1003) => [
q(Sanaani Arabic),
],
- q(1003) => [
+ q(1004) => [
q(Ayoreo),
],
- q(1004) => [
+ q(1005) => [
q(North Mesopotamian Arabic),
],
- q(1005) => [
+ q(1006) => [
q(Ayi (Papua New Guinea)),
],
- q(1006) => [
+ q(1007) => [
q(Central Aymara),
],
- q(1007) => [
+ q(1008) => [
q(Sorsogon Ayta),
],
- q(1008) => [
+ q(1009) => [
q(Magbukun Ayta),
],
- q(1009) => [
+ q(1010) => [
q(Ayu),
],
- q(1010) => [
+ q(1011) => [
q(Tayabas Ayta),
],
- q(1011) => [
+ q(1012) => [
q(Mai Brat),
],
- q(1012) => [
+ q(1013) => [
q(Azha),
],
- q(1013) => [
+ q(1014) => [
q(South Azerbaijani),
],
- q(1014) => [
+ q(1015) => [
q(Eastern Durango Nahuatl),
],
- q(1015) => [
+ q(1016) => [
q(San Pedro Amuzgos Amuzgo),
],
- q(1016) => [
+ q(1017) => [
q(North Azerbaijani),
],
- q(1017) => [
+ q(1018) => [
q(Ipalapa Amuzgo),
],
- q(1018) => [
+ q(1019) => [
q(Western Durango Nahuatl),
],
- q(1019) => [
+ q(1020) => [
q(Awing),
],
- q(1020) => [
+ q(1021) => [
q(Faire Atta),
],
- q(1021) => [
+ q(1022) => [
q(Highland Puebla Nahuatl),
],
- q(1022) => [
+ q(1023) => [
q(Babatana),
],
- q(1023) => [
+ q(1024) => [
q(Bainouk-Gunyuno),
],
- q(1024) => [
+ q(1025) => [
q(Badui),
],
- q(1025) => [
+ q(1026) => [
q(Bare),
],
- q(1026) => [
+ q(1027) => [
q(Nubaca),
],
- q(1027) => [
+ q(1028) => [
q(Tuki),
],
- q(1028) => [
+ q(1029) => [
q(Bahamas Creole English),
],
- q(1029) => [
+ q(1030) => [
q(Barakai),
],
- q(1030) => [
+ q(1031) => [
q(Waimaha),
],
- q(1031) => [
+ q(1032) => [
q(Bantawa),
],
- q(1032) => [
+ q(1033) => [
q(Bavarian),
],
- q(1033) => [
+ q(1034) => [
q(Bada (Nigeria)),
],
- q(1034) => [
+ q(1035) => [
q(Vengo),
],
- q(1035) => [
+ q(1036) => [
q(Bambili-Bambui),
],
- q(1036) => [
+ q(1037) => [
q(Bamun),
],
- q(1037) => [
+ q(1038) => [
q(Batuley),
],
- q(1038) => [
+ q(1039) => [
q(Baatonum),
],
- q(1039) => [
+ q(1040) => [
q(Barai),
],
- q(1040) => [
+ q(1041) => [
q(Batak Toba),
],
- q(1041) => [
+ q(1042) => [
q(Bau),
],
- q(1042) => [
+ q(1043) => [
q(Bangba),
],
- q(1043) => [
+ q(1044) => [
q(Baibai),
],
- q(1044) => [
+ q(1045) => [
q(Barama),
],
- q(1045) => [
+ q(1046) => [
q(Bugan),
],
- q(1046) => [
+ q(1047) => [
q(Barombi),
],
- q(1047) => [
+ q(1048) => [
q(Ghomala'),
],
- q(1048) => [
+ q(1049) => [
q(Babanki),
],
- q(1049) => [
+ q(1050) => [
q(Bats),
],
- q(1050) => [
+ q(1051) => [
q(Babango),
],
- q(1051) => [
+ q(1052) => [
q(Uneapa),
],
- q(1052) => [
+ q(1053) => [
q(Northern Bobo Madare),
q(Konabere),
],
- q(1053) => [
- q(West Central Banda),
- ],
q(1054) => [
- q(Bamali),
+ q(West Central Banda),
],
q(1055) => [
- q(Girawa),
+ q(Bamali),
],
q(1056) => [
- q(Bakpinka),
+ q(Girawa),
],
q(1057) => [
- q(Mburku),
+ q(Bakpinka),
],
q(1058) => [
- q(Kulung (Nigeria)),
+ q(Mburku),
],
q(1059) => [
- q(Karnai),
+ q(Kulung (Nigeria)),
],
q(1060) => [
- q(Baba),
+ q(Karnai),
],
q(1061) => [
- q(Bubia),
+ q(Baba),
],
q(1062) => [
- q(Befang),
+ q(Bubia),
],
q(1063) => [
- q(Babalia Creole Arabic),
+ q(Befang),
],
q(1064) => [
- q(Central Bai),
+ q(Babalia Creole Arabic),
],
q(1065) => [
- q(Bainouk-Samik),
+ q(Central Bai),
],
q(1066) => [
- q(Southern Balochi),
+ q(Bainouk-Samik),
],
q(1067) => [
- q(North Babar),
+ q(Southern Balochi),
],
q(1068) => [
- q(Bamenyam),
+ q(North Babar),
],
q(1069) => [
- q(Bamu),
+ q(Bamenyam),
],
q(1070) => [
- q(Baga Binari),
+ q(Bamu),
],
q(1071) => [
- q(Bariai),
+ q(Baga Pokur),
],
q(1072) => [
- q(Baoule),
+ q(Bariai),
],
q(1073) => [
- q(Bardi),
+ q(Baoule),
],
q(1074) => [
- q(Bunaba),
+ q(Bardi),
],
q(1075) => [
- q(Central Bikol),
+ q(Bunaba),
],
q(1076) => [
- q(Bannoni),
+ q(Central Bikol),
],
q(1077) => [
- q(Bali (Nigeria)),
+ q(Bannoni),
],
q(1078) => [
- q(Kaluli),
+ q(Bali (Nigeria)),
],
q(1079) => [
- q(Bali (Democratic Republic of Congo)),
+ q(Kaluli),
],
q(1080) => [
- q(Bench),
+ q(Bali (Democratic Republic of Congo)),
],
q(1081) => [
- q(Babine),
+ q(Bench),
],
q(1082) => [
- q(Kohumono),
+ q(Babine),
],
q(1083) => [
- q(Bendi),
+ q(Kohumono),
],
q(1084) => [
- q(Awad Bing),
+ q(Bendi),
],
q(1085) => [
- q(Shoo-Minda-Nye),
+ q(Awad Bing),
],
q(1086) => [
- q(Bana),
+ q(Shoo-Minda-Nye),
],
q(1087) => [
- q(Bacama),
+ q(Bana),
],
q(1088) => [
- q(Bainouk-Gunyaamolo),
+ q(Bacama),
],
q(1089) => [
- q(Bayot),
+ q(Bainouk-Gunyaamolo),
],
q(1090) => [
- q(Basap),
+ q(Bayot),
],
q(1091) => [
- q(Embera-Baudo),
+ q(Basap),
],
q(1092) => [
- q(Bunama),
+ q(Embera-Baudo),
],
q(1093) => [
- q(Bade),
+ q(Bunama),
],
q(1094) => [
- q(Biage),
+ q(Bade),
],
q(1095) => [
- q(Bonggi),
+ q(Biage),
],
q(1096) => [
- q(Baka (Sudan)),
+ q(Bonggi),
],
q(1097) => [
- q(Burun),
+ q(Baka (Sudan)),
],
q(1098) => [
- q(Bai),
+ q(Burun),
],
q(1099) => [
- q(Budukh),
+ q(Bai),
],
q(1100) => [
- q(Indonesian Bajau),
+ q(Budukh),
],
q(1101) => [
- q(Buduma),
+ q(Indonesian Bajau),
],
q(1102) => [
- q(Baldemu),
+ q(Buduma),
],
q(1103) => [
- q(Morom),
+ q(Baldemu),
],
q(1104) => [
- q(Bende),
+ q(Morom),
],
q(1105) => [
- q(Bahnar),
+ q(Bende),
],
q(1106) => [
- q(West Coast Bajau),
+ q(Bahnar),
],
q(1107) => [
- q(Burunge),
+ q(West Coast Bajau),
],
q(1108) => [
- q(Bokoto),
+ q(Burunge),
],
q(1109) => [
- q(Oroko),
+ q(Bokoto),
],
q(1110) => [
- q(Bodo Parja),
+ q(Oroko),
],
q(1111) => [
- q(Baham),
+ q(Bodo Parja),
],
q(1112) => [
- q(Budong-Budong),
+ q(Baham),
],
q(1113) => [
- q(Bandjalang),
+ q(Budong-Budong),
],
q(1114) => [
- q(Badeshi),
+ q(Bandjalang),
],
q(1115) => [
- q(Beaver),
+ q(Badeshi),
],
q(1116) => [
- q(Bebele),
+ q(Beaver),
],
q(1117) => [
- q(Iceve-Maci),
+ q(Bebele),
],
q(1118) => [
- q(Bedoanas),
+ q(Iceve-Maci),
],
q(1119) => [
- q(Byangsi),
+ q(Bedoanas),
],
q(1120) => [
- q(Benabena),
+ q(Byangsi),
],
q(1121) => [
- q(Belait),
+ q(Benabena),
],
q(1122) => [
- q(Biali),
+ q(Belait),
],
q(1123) => [
- q(Bekati'),
+ q(Biali),
],
q(1124) => [
- q(Bebeli),
+ q(Bekati'),
],
q(1125) => [
- q(Beami),
+ q(Bebeli),
],
q(1126) => [
- q(Besoa),
+ q(Beami),
],
q(1127) => [
- q(Beembe),
+ q(Besoa),
],
q(1128) => [
- q(Besme),
+ q(Beembe),
],
q(1129) => [
- q(Guiberoua Bete),
+ q(Besme),
],
q(1130) => [
- q(Blagar),
+ q(Guiberoua Bete),
],
q(1131) => [
- q(Daloa Bete),
+ q(Blagar),
],
q(1132) => [
- q(Betawi),
+ q(Daloa Bete),
],
q(1133) => [
- q(Jur Modo),
+ q(Betawi),
],
q(1134) => [
- q(Beli (Papua New Guinea)),
+ q(Jur Modo),
],
q(1135) => [
- q(Bena (Tanzania)),
+ q(Beli (Papua New Guinea)),
],
q(1136) => [
- q(Bari),
+ q(Bena (Tanzania)),
],
q(1137) => [
- q(Pauri Bareli),
+ q(Bari),
],
q(1138) => [
+ q(Pauri Bareli),
+ ],
+ q(1139) => [
q(Panyi Bai),
q(Northern Bai),
],
- q(1139) => [
+ q(1140) => [
q(Bafut),
],
- q(1140) => [
+ q(1141) => [
q(Betaf),
q(Tena),
],
- q(1141) => [
+ q(1142) => [
q(Bofi),
],
- q(1142) => [
+ q(1143) => [
q(Busang Kayan),
],
- q(1143) => [
+ q(1144) => [
q(Blafe),
],
- q(1144) => [
+ q(1145) => [
q(British Sign Language),
],
- q(1145) => [
+ q(1146) => [
q(Bafanji),
],
- q(1146) => [
+ q(1147) => [
q(Ban Khor Sign Language),
],
- q(1147) => [
+ q(1148) => [
q(Banda-Ndele),
],
- q(1148) => [
+ q(1149) => [
q(Mmen),
],
- q(1149) => [
+ q(1150) => [
q(Bunak),
],
- q(1150) => [
+ q(1151) => [
q(Malba Birifor),
],
- q(1151) => [
+ q(1152) => [
q(Beba),
],
- q(1152) => [
+ q(1153) => [
q(Badaga),
],
- q(1153) => [
+ q(1154) => [
q(Bazigar),
],
- q(1154) => [
+ q(1155) => [
q(Southern Bai),
],
- q(1155) => [
+ q(1156) => [
q(Balti),
],
- q(1156) => [
+ q(1157) => [
q(Gahri),
],
- q(1157) => [
+ q(1158) => [
q(Bondo),
],
- q(1158) => [
+ q(1159) => [
q(Bantayanon),
],
- q(1159) => [
+ q(1160) => [
q(Bagheli),
],
- q(1160) => [
+ q(1161) => [
q(Mahasu Pahari),
],
- q(1161) => [
+ q(1162) => [
q(Gwamhi-Wuri),
],
- q(1162) => [
+ q(1163) => [
q(Bobongko),
],
- q(1163) => [
+ q(1164) => [
q(Haryanvi),
],
- q(1164) => [
+ q(1165) => [
q(Rathwi Bareli),
],
- q(1165) => [
+ q(1166) => [
q(Bauria),
],
- q(1166) => [
+ q(1167) => [
q(Bangandu),
],
- q(1167) => [
+ q(1168) => [
q(Bugun),
],
- q(1168) => [
+ q(1169) => [
q(Giangan),
],
- q(1169) => [
+ q(1170) => [
q(Bangolan),
],
- q(1170) => [
+ q(1171) => [
q(Bit),
q(Buxinhua),
],
- q(1171) => [
- q(Bo (Laos)),
- ],
q(1172) => [
- q(Baga Mboteni),
+ q(Bo (Laos)),
],
q(1173) => [
q(Western Balochi),
@@ -4047,6 +4049,7 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(Tai Dam),
],
q(1298) => [
+ q(Kibala),
q(Bolo),
],
q(1299) => [
@@ -4077,7 +4080,7 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(Limassa),
],
q(1308) => [
- q(Bom),
+ q(Bom-Kim),
],
q(1309) => [
q(Bamwe),
@@ -4599,19702 +4602,19676 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(Bacanese Malay),
],
q(1480) => [
- q(Bhatola),
- ],
- q(1481) => [
q(Batak Mandailing),
],
- q(1482) => [
+ q(1481) => [
q(Ratagnon),
],
- q(1483) => [
+ q(1482) => [
q(Rinconada Bikol),
],
- q(1484) => [
+ q(1483) => [
q(Budibud),
],
- q(1485) => [
+ q(1484) => [
q(Batek),
],
- q(1486) => [
+ q(1485) => [
q(Baetora),
],
- q(1487) => [
+ q(1486) => [
q(Batak Simalungun),
],
- q(1488) => [
+ q(1487) => [
q(Bete-Bendi),
],
- q(1489) => [
+ q(1488) => [
q(Batu),
],
- q(1490) => [
+ q(1489) => [
q(Bateri),
],
- q(1491) => [
+ q(1490) => [
q(Butuanon),
],
- q(1492) => [
+ q(1491) => [
q(Batak Karo),
],
- q(1493) => [
+ q(1492) => [
q(Bobot),
],
- q(1494) => [
+ q(1493) => [
q(Batak Alas-Kluet),
],
- q(1495) => [
+ q(1494) => [
q(Bua),
],
- q(1496) => [
+ q(1495) => [
q(Bushi),
],
- q(1497) => [
+ q(1496) => [
q(Ntcham),
],
- q(1498) => [
+ q(1497) => [
q(Beothuk),
],
- q(1499) => [
+ q(1498) => [
q(Bushoong),
],
- q(1500) => [
+ q(1499) => [
q(Younuo Bunu),
],
- q(1501) => [
+ q(1500) => [
q(Bongili),
],
- q(1502) => [
+ q(1501) => [
q(Basa-Gurmana),
],
- q(1503) => [
+ q(1502) => [
q(Bugawac),
],
- q(1504) => [
+ q(1503) => [
q(Bulu (Cameroon)),
],
- q(1505) => [
+ q(1504) => [
q(Sherbro),
],
- q(1506) => [
+ q(1505) => [
q(Terei),
],
- q(1507) => [
+ q(1506) => [
q(Busoa),
],
- q(1508) => [
+ q(1507) => [
q(Brem),
],
- q(1509) => [
+ q(1508) => [
q(Bokobaru),
],
- q(1510) => [
+ q(1509) => [
q(Bungain),
],
- q(1511) => [
+ q(1510) => [
q(Budu),
],
- q(1512) => [
+ q(1511) => [
q(Bun),
],
- q(1513) => [
+ q(1512) => [
q(Bubi),
],
- q(1514) => [
+ q(1513) => [
q(Boghom),
],
- q(1515) => [
+ q(1514) => [
q(Bullom So),
],
- q(1516) => [
+ q(1515) => [
q(Bukwen),
],
- q(1517) => [
+ q(1516) => [
q(Barein),
],
- q(1518) => [
+ q(1517) => [
q(Bube),
],
- q(1519) => [
+ q(1518) => [
q(Baelelea),
],
- q(1520) => [
+ q(1519) => [
q(Baeggu),
],
- q(1521) => [
+ q(1520) => [
q(Berau Malay),
],
- q(1522) => [
+ q(1521) => [
q(Boor),
],
- q(1523) => [
+ q(1522) => [
q(Bonkeng),
],
- q(1524) => [
+ q(1523) => [
q(Bure),
],
- q(1525) => [
+ q(1524) => [
q(Belanda Viri),
],
- q(1526) => [
+ q(1525) => [
q(Baan),
],
- q(1527) => [
+ q(1526) => [
q(Bukat),
],
- q(1528) => [
+ q(1527) => [
q(Bolivian Sign Language),
],
- q(1529) => [
+ q(1528) => [
q(Bamunka),
],
- q(1530) => [
+ q(1529) => [
q(Buna),
],
- q(1531) => [
+ q(1530) => [
q(Bolgo),
],
- q(1532) => [
+ q(1531) => [
q(Bumang),
],
- q(1533) => [
+ q(1532) => [
q(Birri),
],
- q(1534) => [
+ q(1533) => [
q(Burarra),
],
- q(1535) => [
+ q(1534) => [
q(Bati (Indonesia)),
],
- q(1536) => [
+ q(1535) => [
q(Bukit Malay),
],
- q(1537) => [
+ q(1536) => [
q(Baniva),
],
- q(1538) => [
+ q(1537) => [
q(Boga),
],
- q(1539) => [
+ q(1538) => [
q(Dibole),
],
- q(1540) => [
+ q(1539) => [
q(Baybayanon),
],
- q(1541) => [
+ q(1540) => [
q(Bauzi),
],
- q(1542) => [
+ q(1541) => [
q(Bwatoo),
],
- q(1543) => [
+ q(1542) => [
q(Namosi-Naitasiri-Serua),
],
- q(1544) => [
+ q(1543) => [
q(Bwile),
],
- q(1545) => [
+ q(1544) => [
q(Bwaidoka),
],
- q(1546) => [
+ q(1545) => [
q(Bwe Karen),
],
- q(1547) => [
+ q(1546) => [
q(Boselewa),
],
- q(1548) => [
+ q(1547) => [
q(Barwe),
],
- q(1549) => [
+ q(1548) => [
q(Bishuo),
],
- q(1550) => [
+ q(1549) => [
q(Baniwa),
],
- q(1551) => [
+ q(1550) => [
q(Laa Laa Bwamu),
],
- q(1552) => [
+ q(1551) => [
q(Bauwaki),
],
- q(1553) => [
+ q(1552) => [
q(Bwela),
],
- q(1554) => [
+ q(1553) => [
q(Biwat),
],
- q(1555) => [
+ q(1554) => [
q(Wunai Bunu),
],
- q(1556) => [
+ q(1555) => [
q(Boro (Ethiopia)),
q(Borna (Ethiopia)),
],
- q(1557) => [
+ q(1556) => [
q(Mandobo Bawah),
],
- q(1558) => [
+ q(1557) => [
q(Southern Bobo Madare),
],
- q(1559) => [
+ q(1558) => [
q(Bura-Pabir),
],
- q(1560) => [
+ q(1559) => [
q(Bomboma),
],
- q(1561) => [
+ q(1560) => [
q(Bafaw-Balong),
],
- q(1562) => [
+ q(1561) => [
q(Buli (Ghana)),
],
- q(1563) => [
+ q(1562) => [
q(Bwa),
],
- q(1564) => [
+ q(1563) => [
q(Bu-Nao Bunu),
],
- q(1565) => [
+ q(1564) => [
q(Cwi Bwamu),
],
- q(1566) => [
+ q(1565) => [
q(Bwisi),
],
- q(1567) => [
+ q(1566) => [
q(Tairaha),
],
- q(1568) => [
+ q(1567) => [
q(Belanda Bor),
],
- q(1569) => [
+ q(1568) => [
q(Molengue),
],
- q(1570) => [
+ q(1569) => [
q(Pela),
],
- q(1571) => [
+ q(1570) => [
q(Birale),
],
- q(1572) => [
+ q(1571) => [
q(Bilur),
q(Minigir),
],
- q(1573) => [
+ q(1572) => [
q(Bangala),
],
- q(1574) => [
+ q(1573) => [
q(Buhutu),
],
- q(1575) => [
+ q(1574) => [
q(Pirlatapa),
],
- q(1576) => [
+ q(1575) => [
q(Bayungu),
],
- q(1577) => [
+ q(1576) => [
q(Bukusu),
q(Lubukusu),
],
- q(1578) => [
+ q(1577) => [
q(Jalkunan),
],
- q(1579) => [
+ q(1578) => [
q(Mongolia Buriat),
],
- q(1580) => [
+ q(1579) => [
q(Burduna),
],
- q(1581) => [
+ q(1580) => [
q(Barikanchi),
],
- q(1582) => [
+ q(1581) => [
q(Bebil),
],
- q(1583) => [
+ q(1582) => [
q(Beele),
],
- q(1584) => [
+ q(1583) => [
q(Russia Buriat),
],
- q(1585) => [
+ q(1584) => [
q(Busam),
],
- q(1586) => [
+ q(1585) => [
q(China Buriat),
],
- q(1587) => [
+ q(1586) => [
q(Berakou),
],
- q(1588) => [
+ q(1587) => [
q(Bankagooma),
],
- q(1589) => [
+ q(1588) => [
q(Binahari),
],
- q(1590) => [
+ q(1589) => [
q(Batak),
],
- q(1591) => [
+ q(1590) => [
q(Bikya),
],
- q(1592) => [
+ q(1591) => [
q(Ubaghara),
],
- q(1593) => [
+ q(1592) => [
q(Benyadu'),
],
- q(1594) => [
+ q(1593) => [
q(Pouye),
],
- q(1595) => [
+ q(1594) => [
q(Bete),
],
- q(1596) => [
+ q(1595) => [
q(Baygo),
],
- q(1597) => [
+ q(1596) => [
q(Bhujel),
],
- q(1598) => [
+ q(1597) => [
q(Buyu),
],
- q(1599) => [
+ q(1598) => [
q(Bina (Nigeria)),
],
- q(1600) => [
+ q(1599) => [
q(Biao),
],
- q(1601) => [
+ q(1600) => [
q(Bayono),
],
- q(1602) => [
+ q(1601) => [
q(Bidyara),
],
- q(1603) => [
+ q(1602) => [
q(Biyo),
],
- q(1604) => [
+ q(1603) => [
q(Bumaji),
],
- q(1605) => [
+ q(1604) => [
q(Basay),
],
- q(1606) => [
+ q(1605) => [
q(Baruya),
q(Yipma),
],
- q(1607) => [
+ q(1606) => [
q(Burak),
],
- q(1608) => [
+ q(1607) => [
q(Berti),
],
- q(1609) => [
+ q(1608) => [
q(Medumba),
],
- q(1610) => [
+ q(1609) => [
q(Belhariya),
],
- q(1611) => [
+ q(1610) => [
q(Qaqet),
],
- q(1612) => [
+ q(1611) => [
q(Banaro),
],
- q(1613) => [
+ q(1612) => [
q(Bandi),
],
- q(1614) => [
+ q(1613) => [
q(Andio),
],
- q(1615) => [
+ q(1614) => [
q(Southern Betsimisaraka Malagasy),
],
- q(1616) => [
+ q(1615) => [
q(Bribri),
],
- q(1617) => [
+ q(1616) => [
q(Jenaama Bozo),
],
- q(1618) => [
+ q(1617) => [
q(Boikin),
],
- q(1619) => [
+ q(1618) => [
q(Babuza),
],
- q(1620) => [
+ q(1619) => [
q(Mapos Buang),
],
- q(1621) => [
+ q(1620) => [
q(Bisu),
],
- q(1622) => [
+ q(1621) => [
q(Belize Kriol English),
],
- q(1623) => [
+ q(1622) => [
q(Nicaragua Creole English),
],
- q(1624) => [
+ q(1623) => [
q(Boano (Sulawesi)),
],
- q(1625) => [
+ q(1624) => [
q(Bolondo),
],
- q(1626) => [
+ q(1625) => [
q(Boano (Maluku)),
],
- q(1627) => [
+ q(1626) => [
q(Bozaba),
],
- q(1628) => [
+ q(1627) => [
q(Kemberano),
],
- q(1629) => [
+ q(1628) => [
q(Buli (Indonesia)),
],
- q(1630) => [
+ q(1629) => [
q(Biri),
],
- q(1631) => [
+ q(1630) => [
q(Brazilian Sign Language),
],
- q(1632) => [
+ q(1631) => [
q(Brithenig),
],
- q(1633) => [
+ q(1632) => [
q(Burmeso),
],
- q(1634) => [
+ q(1633) => [
q(Naami),
],
- q(1635) => [
+ q(1634) => [
q(Basa (Nigeria)),
],
- q(1636) => [
+ q(1635) => [
q(Kelengazxo Bozo),
],
- q(1637) => [
+ q(1636) => [
q(Obanliku),
],
- q(1638) => [
+ q(1637) => [
q(Evant),
],
- q(1639) => [
+ q(1638) => [
q(Chorti),
],
- q(1640) => [
+ q(1639) => [
q(Garifuna),
],
- q(1641) => [
+ q(1640) => [
q(Chuj),
],
- q(1642) => [
+ q(1641) => [
q(Lehar),
q(Laalaa),
],
- q(1643) => [
+ q(1642) => [
q(Southern Carrier),
],
- q(1644) => [
+ q(1643) => [
q(Nivacle),
],
- q(1645) => [
+ q(1644) => [
q(Cahuarano),
],
- q(1646) => [
+ q(1645) => [
q(Chane),
],
- q(1647) => [
+ q(1646) => [
q(Kaqchikel),
q(Cakchiquel),
],
- q(1648) => [
+ q(1647) => [
q(Carolinian),
],
- q(1649) => [
+ q(1648) => [
q(Cemuhi),
],
- q(1650) => [
+ q(1649) => [
q(Chambri),
],
- q(1651) => [
+ q(1650) => [
q(Chacobo),
],
- q(1652) => [
+ q(1651) => [
q(Chipaya),
],
- q(1653) => [
+ q(1652) => [
q(Car Nicobarese),
],
- q(1654) => [
+ q(1653) => [
q(Tsimane),
],
- q(1655) => [
+ q(1654) => [
q(Cavinena),
],
- q(1656) => [
+ q(1655) => [
q(Callawalla),
],
- q(1657) => [
+ q(1656) => [
q(Chiquitano),
],
- q(1658) => [
+ q(1657) => [
q(Cayuga),
],
- q(1659) => [
+ q(1658) => [
q(Canichana),
],
- q(1660) => [
+ q(1659) => [
q(Cabiyari),
],
- q(1661) => [
+ q(1660) => [
q(Carapana),
],
- q(1662) => [
+ q(1661) => [
q(Carijona),
],
- q(1663) => [
- q(Chipiajes),
- ],
- q(1664) => [
+ q(1662) => [
q(Chimila),
],
- q(1665) => [
- q(Cagua),
- ],
- q(1666) => [
+ q(1663) => [
q(Chachi),
],
- q(1667) => [
+ q(1664) => [
q(Ede Cabe),
],
- q(1668) => [
+ q(1665) => [
q(Chavacano),
],
- q(1669) => [
+ q(1666) => [
q(Bualkhaw Chin),
],
- q(1670) => [
+ q(1667) => [
q(Nyahkur),
],
- q(1671) => [
+ q(1668) => [
q(Izora),
],
- q(1672) => [
+ q(1669) => [
q(Tsucuba),
q(Cuba),
],
- q(1673) => [
+ q(1670) => [
q(Cashibo-Cacataibo),
],
- q(1674) => [
+ q(1671) => [
q(Cashinahua),
],
- q(1675) => [
+ q(1672) => [
q(Chayahuita),
],
- q(1676) => [
+ q(1673) => [
q(Candoshi-Shapra),
],
- q(1677) => [
+ q(1674) => [
q(Cacua),
],
- q(1678) => [
+ q(1675) => [
q(Kinabalian),
],
- q(1679) => [
+ q(1676) => [
q(Carabayo),
],
- q(1680) => [
+ q(1677) => [
q(Cauca),
],
- q(1681) => [
+ q(1678) => [
q(Chamicuro),
],
- q(1682) => [
+ q(1679) => [
q(Cafundo Creole),
],
- q(1683) => [
+ q(1680) => [
q(Chopi),
],
- q(1684) => [
+ q(1681) => [
q(Samba Daka),
],
- q(1685) => [
+ q(1682) => [
q(Atsam),
],
- q(1686) => [
+ q(1683) => [
q(Kasanga),
],
- q(1687) => [
+ q(1684) => [
q(Cutchi-Swahili),
],
- q(1688) => [
+ q(1685) => [
q(Malaccan Creole Malay),
],
- q(1689) => [
+ q(1686) => [
q(Comaltepec Chinantec),
],
- q(1690) => [
+ q(1687) => [
q(Chakma),
],
- q(1691) => [
+ q(1688) => [
q(Cacaopera),
],
- q(1692) => [
+ q(1689) => [
q(Choni),
],
- q(1693) => [
+ q(1690) => [
q(Chenchu),
],
- q(1694) => [
+ q(1691) => [
q(Chiru),
],
- q(1695) => [
+ q(1692) => [
q(Chamari),
],
- q(1696) => [
+ q(1693) => [
q(Chambeali),
],
- q(1697) => [
+ q(1694) => [
q(Chodri),
],
- q(1698) => [
+ q(1695) => [
q(Churahi),
],
- q(1699) => [
+ q(1696) => [
q(Chepang),
],
- q(1700) => [
+ q(1697) => [
q(Chaudangsi),
],
- q(1701) => [
+ q(1698) => [
q(Min Dong Chinese),
],
- q(1702) => [
+ q(1699) => [
q(Cinda-Regi-Tiyal),
],
- q(1703) => [
+ q(1700) => [
q(Chadian Sign Language),
],
- q(1704) => [
+ q(1701) => [
q(Chadong),
],
- q(1705) => [
+ q(1702) => [
q(Koda),
],
- q(1706) => [
+ q(1703) => [
q(Lower Chehalis),
],
- q(1707) => [
+ q(1704) => [
q(Chamacoco),
],
- q(1708) => [
+ q(1705) => [
q(Eastern Khumi Chin),
],
- q(1709) => [
+ q(1706) => [
q(Cen),
],
- q(1710) => [
+ q(1707) => [
q(Centuum),
],
- q(1711) => [
+ q(1708) => [
q(Dijim-Bwilim),
],
- q(1712) => [
+ q(1709) => [
q(Cara),
],
- q(1713) => [
+ q(1710) => [
q(Como Karim),
],
- q(1714) => [
+ q(1711) => [
q(Falam Chin),
],
- q(1715) => [
+ q(1712) => [
q(Changriwa),
],
- q(1716) => [
+ q(1713) => [
q(Kagayanen),
],
- q(1717) => [
+ q(1714) => [
q(Chiga),
],
- q(1718) => [
+ q(1715) => [
q(Chocangacakha),
],
- q(1719) => [
+ q(1716) => [
q(Catawba),
],
- q(1720) => [
+ q(1717) => [
q(Highland Oaxaca Chontal),
],
- q(1721) => [
+ q(1718) => [
q(Tabasco Chontal),
],
- q(1722) => [
+ q(1719) => [
q(Chinook),
],
- q(1723) => [
+ q(1720) => [
q(Ojitlan Chinantec),
],
- q(1724) => [
+ q(1721) => [
q(Cahuilla),
],
- q(1725) => [
+ q(1722) => [
q(Quiotepec Chinantec),
],
- q(1726) => [
+ q(1723) => [
q(Cholon),
],
- q(1727) => [
+ q(1724) => [
q(Chuwabu),
],
- q(1728) => [
+ q(1725) => [
q(Chantyal),
],
- q(1729) => [
+ q(1726) => [
q(Ozumacin Chinantec),
],
- q(1730) => [
+ q(1727) => [
q(Cia-Cia),
],
- q(1731) => [
+ q(1728) => [
q(Ci Gbe),
],
- q(1732) => [
+ q(1729) => [
q(Chickasaw),
],
- q(1733) => [
+ q(1730) => [
q(Chimariko),
],
- q(1734) => [
+ q(1731) => [
q(Cineni),
],
- q(1735) => [
+ q(1732) => [
q(Chinali),
],
- q(1736) => [
+ q(1733) => [
q(Chitkuli Kinnauri),
],
- q(1737) => [
+ q(1734) => [
q(Cimbrian),
],
- q(1738) => [
+ q(1735) => [
q(Cinta Larga),
],
- q(1739) => [
+ q(1736) => [
q(Chiapanec),
],
- q(1740) => [
+ q(1737) => [
q(Tiri),
q(Hamea),
q(Mea),
],
- q(1741) => [
+ q(1738) => [
q(Chippewa),
],
- q(1742) => [
+ q(1739) => [
q(Chaima),
],
- q(1743) => [
+ q(1740) => [
q(Western Cham),
],
- q(1744) => [
+ q(1741) => [
q(Chru),
],
- q(1745) => [
+ q(1742) => [
q(Upper Chehalis),
],
- q(1746) => [
+ q(1743) => [
q(Chamalal),
],
- q(1747) => [
+ q(1744) => [
q(Chokwe),
],
- q(1748) => [
+ q(1745) => [
q(Eastern Cham),
],
- q(1749) => [
+ q(1746) => [
q(Chenapian),
],
- q(1750) => [
+ q(1747) => [
q(Asheninka Pajonal),
],
- q(1751) => [
+ q(1748) => [
q(Cabecar),
],
- q(1752) => [
+ q(1749) => [
q(Shor),
],
- q(1753) => [
+ q(1750) => [
q(Chuave),
],
- q(1754) => [
+ q(1751) => [
q(Jinyu Chinese),
],
- q(1755) => [
+ q(1752) => [
q(Central Kurdish),
],
- q(1756) => [
+ q(1753) => [
q(Chak),
],
- q(1757) => [
+ q(1754) => [
q(Cibak),
],
- q(1758) => [
+ q(1755) => [
q(Kaang Chin),
],
- q(1759) => [
+ q(1756) => [
q(Anufo),
],
- q(1760) => [
+ q(1757) => [
q(Kajakse),
],
- q(1761) => [
+ q(1758) => [
q(Kairak),
],
- q(1762) => [
+ q(1759) => [
q(Tayo),
],
- q(1763) => [
+ q(1760) => [
q(Chukot),
],
- q(1764) => [
+ q(1761) => [
q(Koasati),
],
- q(1765) => [
+ q(1762) => [
q(Kavalan),
],
- q(1766) => [
+ q(1763) => [
q(Caka),
],
- q(1767) => [
+ q(1764) => [
q(Cakfem-Mushere),
],
- q(1768) => [
+ q(1765) => [
q(Cakchiquel-Quiche Mixed Language),
],
- q(1769) => [
+ q(1766) => [
q(Ron),
],
- q(1770) => [
+ q(1767) => [
q(Chilcotin),
],
- q(1771) => [
+ q(1768) => [
q(Chaldean Neo-Aramaic),
],
- q(1772) => [
+ q(1769) => [
q(Lealao Chinantec),
],
- q(1773) => [
+ q(1770) => [
q(Chilisso),
],
- q(1774) => [
+ q(1771) => [
q(Chakali),
],
- q(1775) => [
+ q(1772) => [
q(Laitu Chin),
],
- q(1776) => [
+ q(1773) => [
q(Idu-Mishmi),
],
- q(1777) => [
+ q(1774) => [
q(Chala),
],
- q(1778) => [
+ q(1775) => [
q(Clallam),
],
- q(1779) => [
+ q(1776) => [
q(Lowland Oaxaca Chontal),
],
- q(1780) => [
+ q(1777) => [
q(Lautu Chin),
],
- q(1781) => [
+ q(1778) => [
q(Caluyanun),
],
- q(1782) => [
+ q(1779) => [
q(Chulym),
],
- q(1783) => [
+ q(1780) => [
q(Eastern Highland Chatino),
],
- q(1784) => [
+ q(1781) => [
q(Maa),
],
- q(1785) => [
+ q(1782) => [
q(Cerma),
],
- q(1786) => [
+ q(1783) => [
q(Classical Mongolian),
],
- q(1787) => [
+ q(1784) => [
q(Embera-Chami),
],
- q(1788) => [
+ q(1785) => [
q(Campalagian),
],
- q(1789) => [
+ q(1786) => [
q(Michigamea),
],
- q(1790) => [
+ q(1787) => [
q(Mandarin Chinese),
],
- q(1791) => [
+ q(1788) => [
q(Central Mnong),
],
- q(1792) => [
+ q(1789) => [
q(Mro-Khimi Chin),
],
- q(1793) => [
+ q(1790) => [
q(Messapic),
],
- q(1794) => [
+ q(1791) => [
q(Camtho),
],
- q(1795) => [
+ q(1792) => [
q(Changthang),
],
- q(1796) => [
+ q(1793) => [
q(Chinbon Chin),
],
- q(1797) => [
+ q(1794) => [
q(Coong),
],
- q(1798) => [
+ q(1795) => [
q(Northern Qiang),
],
- q(1799) => [
+ q(1796) => [
+ q(Hakha Chin),
q(Haka Chin),
],
- q(1800) => [
+ q(1797) => [
q(Ashaninka),
],
- q(1801) => [
+ q(1798) => [
q(Khumi Chin),
],
- q(1802) => [
+ q(1799) => [
q(Lalana Chinantec),
],
- q(1803) => [
+ q(1800) => [
q(Con),
],
- q(1804) => [
+ q(1801) => [
q(Central Asmat),
],
- q(1805) => [
+ q(1802) => [
q(Tepetotutla Chinantec),
],
- q(1806) => [
+ q(1803) => [
q(Chenoua),
],
- q(1807) => [
+ q(1804) => [
q(Ngawn Chin),
],
- q(1808) => [
+ q(1805) => [
q(Middle Cornish),
],
- q(1809) => [
+ q(1806) => [
q(Cocos Islands Malay),
],
- q(1810) => [
+ q(1807) => [
q(Chicomuceltec),
],
- q(1811) => [
+ q(1808) => [
q(Cocopa),
],
- q(1812) => [
+ q(1809) => [
q(Cocama-Cocamilla),
],
- q(1813) => [
+ q(1810) => [
q(Koreguaje),
],
- q(1814) => [
+ q(1811) => [
q(Colorado),
],
- q(1815) => [
+ q(1812) => [
q(Chong),
],
- q(1816) => [
+ q(1813) => [
q(Chonyi-Dzihana-Kauma),
q(Chichonyi-Chidzihana-Chikauma),
],
- q(1817) => [
+ q(1814) => [
q(Cochimi),
],
- q(1818) => [
+ q(1815) => [
q(Santa Teresa Cora),
],
- q(1819) => [
+ q(1816) => [
q(Columbia-Wenatchi),
],
- q(1820) => [
+ q(1817) => [
q(Comanche),
],
- q(1821) => [
+ q(1818) => [
q(Cofan),
],
- q(1822) => [
+ q(1819) => [
q(Comox),
],
- q(1823) => [
+ q(1820) => [
q(Coquille),
],
- q(1824) => [
+ q(1821) => [
q(Caquinte),
],
- q(1825) => [
+ q(1822) => [
q(Wamey),
],
- q(1826) => [
+ q(1823) => [
q(Cao Miao),
],
- q(1827) => [
+ q(1824) => [
q(Cowlitz),
],
- q(1828) => [
+ q(1825) => [
q(Nanti),
],
- q(1829) => [
- q(Coyaima),
- ],
- q(1830) => [
+ q(1826) => [
q(Chochotec),
],
- q(1831) => [
+ q(1827) => [
q(Palantla Chinantec),
],
- q(1832) => [
+ q(1828) => [
q(Ucayali-Yurua Asheninka),
],
- q(1833) => [
+ q(1829) => [
q(Ajyininka Apurucayali),
],
- q(1834) => [
+ q(1830) => [
q(Cappadocian Greek),
],
- q(1835) => [
+ q(1831) => [
q(Chinese Pidgin English),
],
- q(1836) => [
+ q(1832) => [
q(Cherepon),
],
- q(1837) => [
+ q(1833) => [
q(Kpeego),
],
- q(1838) => [
+ q(1834) => [
q(Capiznon),
],
- q(1839) => [
+ q(1835) => [
q(Pichis Asheninka),
],
- q(1840) => [
+ q(1836) => [
q(Pu-Xian Chinese),
],
- q(1841) => [
+ q(1837) => [
q(South Ucayali Asheninka),
],
- q(1842) => [
+ q(1838) => [
q(Chuanqiandian Cluster Miao),
],
- q(1843) => [
- q(Chilean Quechua),
- ],
- q(1844) => [
+ q(1839) => [
q(Chara),
],
- q(1845) => [
+ q(1840) => [
q(Island Carib),
],
- q(1846) => [
+ q(1841) => [
q(Lonwolwol),
],
- q(1847) => [
+ q(1842) => [
q(Coeur d'Alene),
],
- q(1848) => [
+ q(1843) => [
q(Caramanta),
],
- q(1849) => [
+ q(1844) => [
q(Michif),
],
- q(1850) => [
+ q(1845) => [
q(Saotomense),
],
- q(1851) => [
+ q(1846) => [
q(Southern East Cree),
],
- q(1852) => [
+ q(1847) => [
q(Plains Cree),
],
- q(1853) => [
+ q(1848) => [
q(Northern East Cree),
],
- q(1854) => [
+ q(1849) => [
q(Moose Cree),
],
- q(1855) => [
+ q(1850) => [
q(El Nayar Cora),
],
- q(1856) => [
+ q(1851) => [
q(Crow),
],
- q(1857) => [
+ q(1852) => [
q(Iyo'wujwa Chorote),
],
- q(1858) => [
+ q(1853) => [
q(Carolina Algonquian),
],
- q(1859) => [
+ q(1854) => [
q(Seselwa Creole French),
],
- q(1860) => [
+ q(1855) => [
q(Iyojwa'ja Chorote),
],
- q(1861) => [
+ q(1856) => [
q(Chaura),
],
- q(1862) => [
+ q(1857) => [
q(Chrau),
],
- q(1863) => [
+ q(1858) => [
q(Carrier),
],
- q(1864) => [
+ q(1859) => [
q(Cori),
],
- q(1865) => [
+ q(1860) => [
q(Cruzeno),
],
- q(1866) => [
+ q(1861) => [
q(Chiltepec Chinantec),
],
- q(1867) => [
+ q(1862) => [
q(Catalan Sign Language),
q(Lengua de senas catalana),
q(Llengua de Signes Catalana),
],
- q(1868) => [
+ q(1863) => [
q(Chiangmai Sign Language),
],
- q(1869) => [
+ q(1864) => [
q(Czech Sign Language),
],
- q(1870) => [
+ q(1865) => [
q(Cuba Sign Language),
],
- q(1871) => [
+ q(1866) => [
q(Chilean Sign Language),
],
- q(1872) => [
+ q(1867) => [
q(Asho Chin),
],
- q(1873) => [
+ q(1868) => [
q(Coast Miwok),
],
- q(1874) => [
+ q(1869) => [
q(Songlai Chin),
],
- q(1875) => [
+ q(1870) => [
q(Jola-Kasa),
],
- q(1876) => [
+ q(1871) => [
q(Chinese Sign Language),
],
- q(1877) => [
+ q(1872) => [
q(Central Sierra Miwok),
],
- q(1878) => [
+ q(1873) => [
q(Colombian Sign Language),
],
- q(1879) => [
+ q(1874) => [
q(Sochiapam Chinantec),
q(Sochiapan Chinantec),
],
- q(1880) => [
+ q(1875) => [
q(Croatia Sign Language),
],
- q(1881) => [
+ q(1876) => [
q(Costa Rican Sign Language),
],
- q(1882) => [
+ q(1877) => [
q(Southern Ohlone),
],
- q(1883) => [
+ q(1878) => [
q(Northern Ohlone),
],
- q(1884) => [
+ q(1879) => [
q(Sumtu Chin),
],
- q(1885) => [
+ q(1880) => [
q(Swampy Cree),
],
- q(1886) => [
+ q(1881) => [
q(Siyin Chin),
],
- q(1887) => [
+ q(1882) => [
q(Coos),
],
- q(1888) => [
+ q(1883) => [
q(Tataltepec Chatino),
],
- q(1889) => [
+ q(1884) => [
q(Chetco),
],
- q(1890) => [
+ q(1885) => [
q(Tedim Chin),
],
- q(1891) => [
+ q(1886) => [
q(Tepinapa Chinantec),
],
- q(1892) => [
+ q(1887) => [
q(Chittagonian),
],
- q(1893) => [
+ q(1888) => [
q(Thaiphum Chin),
],
- q(1894) => [
+ q(1889) => [
q(Tlacoatzintepec Chinantec),
],
- q(1895) => [
+ q(1890) => [
q(Chitimacha),
],
- q(1896) => [
+ q(1891) => [
q(Chhintange),
],
- q(1897) => [
+ q(1892) => [
q(Embera-Catio),
],
- q(1898) => [
+ q(1893) => [
q(Western Highland Chatino),
],
- q(1899) => [
+ q(1894) => [
q(Northern Catanduanes Bikol),
],
- q(1900) => [
+ q(1895) => [
q(Wayanad Chetti),
],
- q(1901) => [
+ q(1896) => [
q(Chol),
],
- q(1902) => [
+ q(1897) => [
q(Zacatepec Chatino),
],
- q(1903) => [
+ q(1898) => [
q(Cua),
],
- q(1904) => [
+ q(1899) => [
q(Cubeo),
],
- q(1905) => [
+ q(1900) => [
q(Usila Chinantec),
],
- q(1906) => [
+ q(1901) => [
+ q(Chungmboko),
q(Cung),
],
- q(1907) => [
+ q(1902) => [
q(Chuka),
q(Gichuka),
],
- q(1908) => [
+ q(1903) => [
q(Cuiba),
],
- q(1909) => [
+ q(1904) => [
q(Mashco Piro),
],
- q(1910) => [
+ q(1905) => [
q(San Blas Kuna),
],
- q(1911) => [
+ q(1906) => [
q(Culina),
q(Kulina),
],
- q(1912) => [
- q(Cumeral),
- ],
- q(1913) => [
+ q(1907) => [
q(Cumanagoto),
],
- q(1914) => [
+ q(1908) => [
q(Cupeno),
],
- q(1915) => [
+ q(1909) => [
q(Cun),
],
- q(1916) => [
+ q(1910) => [
q(Chhulung),
],
- q(1917) => [
+ q(1911) => [
q(Teutila Cuicatec),
],
- q(1918) => [
+ q(1912) => [
q(Tai Ya),
],
- q(1919) => [
+ q(1913) => [
q(Cuvok),
],
- q(1920) => [
+ q(1914) => [
q(Chukwa),
],
- q(1921) => [
+ q(1915) => [
q(Tepeuxila Cuicatec),
],
- q(1922) => [
+ q(1916) => [
q(Chug),
],
- q(1923) => [
+ q(1917) => [
q(Valle Nacional Chinantec),
],
- q(1924) => [
+ q(1918) => [
q(Kabwa),
],
- q(1925) => [
+ q(1919) => [
q(Maindo),
],
- q(1926) => [
+ q(1920) => [
q(Woods Cree),
],
- q(1927) => [
+ q(1921) => [
q(Kwere),
],
- q(1928) => [
+ q(1922) => [
q(Chewong),
q(Cheq Wong),
],
- q(1929) => [
+ q(1923) => [
q(Kuwaataay),
],
- q(1930) => [
+ q(1924) => [
q(Nopala Chatino),
],
- q(1931) => [
+ q(1925) => [
q(Cayubaba),
],
- q(1932) => [
+ q(1926) => [
q(Cuyonon),
],
- q(1933) => [
+ q(1927) => [
q(Huizhou Chinese),
],
- q(1934) => [
+ q(1928) => [
q(Knaanic),
],
- q(1935) => [
+ q(1929) => [
q(Zenzontepec Chatino),
],
- q(1936) => [
+ q(1930) => [
q(Min Zhong Chinese),
],
- q(1937) => [
+ q(1931) => [
q(Zotung Chin),
],
- q(1938) => [
+ q(1932) => [
q(Dangaleat),
],
- q(1939) => [
+ q(1933) => [
q(Dambi),
],
- q(1940) => [
+ q(1934) => [
q(Marik),
],
- q(1941) => [
+ q(1935) => [
q(Duupa),
],
- q(1942) => [
+ q(1936) => [
q(Dagbani),
],
- q(1943) => [
+ q(1937) => [
q(Gwahatike),
],
- q(1944) => [
+ q(1938) => [
q(Day),
],
- q(1945) => [
+ q(1939) => [
q(Dar Fur Daju),
],
- q(1946) => [
+ q(1940) => [
q(Dahalo),
],
- q(1947) => [
+ q(1941) => [
q(Damakawa),
],
- q(1948) => [
+ q(1942) => [
q(Daai Chin),
],
- q(1949) => [
+ q(1943) => [
q(Dandami Maria),
],
- q(1950) => [
+ q(1944) => [
q(Daho-Doo),
],
- q(1951) => [
+ q(1945) => [
q(Dar Sila Daju),
],
- q(1952) => [
+ q(1946) => [
q(Taita),
q(Dawida),
],
- q(1953) => [
+ q(1947) => [
q(Davawenyo),
],
- q(1954) => [
+ q(1948) => [
q(Dayi),
],
- q(1955) => [
+ q(1949) => [
q(Dao),
],
- q(1956) => [
+ q(1950) => [
q(Bangime),
],
- q(1957) => [
+ q(1951) => [
q(Deno),
],
- q(1958) => [
+ q(1952) => [
q(Dadiya),
],
- q(1959) => [
+ q(1953) => [
q(Dabe),
],
- q(1960) => [
+ q(1954) => [
q(Edopi),
],
- q(1961) => [
+ q(1955) => [
q(Dogul Dom Dogon),
],
- q(1962) => [
+ q(1956) => [
q(Doka),
],
- q(1963) => [
+ q(1957) => [
q(Ida'an),
],
- q(1964) => [
+ q(1958) => [
q(Dyirbal),
],
- q(1965) => [
+ q(1959) => [
q(Duguri),
],
- q(1966) => [
+ q(1960) => [
q(Duriankere),
],
- q(1967) => [
+ q(1961) => [
q(Dulbu),
],
- q(1968) => [
+ q(1962) => [
q(Duwai),
],
- q(1969) => [
+ q(1963) => [
q(Daba),
],
- q(1970) => [
+ q(1964) => [
q(Dabarre),
],
- q(1971) => [
+ q(1965) => [
q(Ben Tey Dogon),
],
- q(1972) => [
+ q(1966) => [
q(Bondum Dom Dogon),
],
- q(1973) => [
+ q(1967) => [
q(Dungu),
],
- q(1974) => [
+ q(1968) => [
q(Bankan Tey Dogon),
],
- q(1975) => [
+ q(1969) => [
q(Dibiyaso),
],
- q(1976) => [
+ q(1970) => [
q(Deccan),
],
- q(1977) => [
+ q(1971) => [
q(Negerhollands),
],
- q(1978) => [
+ q(1972) => [
q(Dadi Dadi),
],
- q(1979) => [
+ q(1973) => [
q(Dongotono),
],
- q(1980) => [
+ q(1974) => [
q(Doondo),
],
- q(1981) => [
+ q(1975) => [
q(Fataluku),
],
- q(1982) => [
+ q(1976) => [
q(West Goodenough),
],
- q(1983) => [
+ q(1977) => [
q(Jaru),
],
- q(1984) => [
+ q(1978) => [
q(Dendi (Benin)),
],
- q(1985) => [
+ q(1979) => [
q(Dido),
],
- q(1986) => [
+ q(1980) => [
q(Dhudhuroa),
],
- q(1987) => [
+ q(1981) => [
q(Donno So Dogon),
],
- q(1988) => [
+ q(1982) => [
q(Dawera-Daweloor),
],
- q(1989) => [
+ q(1983) => [
q(Dagik),
],
- q(1990) => [
+ q(1984) => [
q(Dedua),
],
- q(1991) => [
+ q(1985) => [
q(Dewoin),
],
- q(1992) => [
+ q(1986) => [
q(Dezfuli),
],
- q(1993) => [
+ q(1987) => [
q(Degema),
],
- q(1994) => [
+ q(1988) => [
q(Dehwari),
],
- q(1995) => [
+ q(1989) => [
q(Demisa),
],
- q(1996) => [
+ q(1990) => [
q(Dek),
],
- q(1997) => [
+ q(1991) => [
q(Dem),
],
- q(1998) => [
+ q(1992) => [
q(Pidgin Delaware),
],
- q(1999) => [
+ q(1993) => [
q(Dendi (Central African Republic)),
],
- q(2000) => [
+ q(1994) => [
q(Deori),
],
- q(2001) => [
+ q(1995) => [
q(Desano),
],
- q(2002) => [
+ q(1996) => [
q(Domung),
],
- q(2003) => [
+ q(1997) => [
q(Dengese),
],
- q(2004) => [
+ q(1998) => [
q(Southern Dagaare),
],
- q(2005) => [
+ q(1999) => [
q(Bunoge Dogon),
],
- q(2006) => [
+ q(2000) => [
q(Casiguran Dumagat Agta),
],
- q(2007) => [
+ q(2001) => [
q(Dagaari Dioula),
],
- q(2008) => [
+ q(2002) => [
q(Degenan),
],
- q(2009) => [
+ q(2003) => [
q(Doga),
],
- q(2010) => [
+ q(2004) => [
q(Dghwede),
],
- q(2011) => [
+ q(2005) => [
q(Northern Dagara),
],
- q(2012) => [
+ q(2006) => [
q(Dagba),
],
- q(2013) => [
+ q(2007) => [
q(Andaandi),
q(Dongolawi),
],
- q(2014) => [
+ q(2008) => [
q(Dagoman),
],
- q(2015) => [
+ q(2009) => [
q(Dogri (individual language)),
],
- q(2016) => [
+ q(2010) => [
q(Dogoso),
],
- q(2017) => [
+ q(2011) => [
q(Ndra'ngith),
],
- q(2018) => [
+ q(2012) => [
q(Degaru),
],
- q(2019) => [
+ q(2013) => [
q(Daungwurrung),
],
- q(2020) => [
+ q(2014) => [
q(Doghoro),
],
- q(2021) => [
+ q(2015) => [
q(Daga),
],
- q(2022) => [
+ q(2016) => [
q(Dhundari),
],
- q(2023) => [
+ q(2017) => [
+ q(Dhangu-Djangu),
q(Dhangu),
q(Djangu),
],
- q(2024) => [
+ q(2018) => [
q(Dhimal),
],
- q(2025) => [
+ q(2019) => [
q(Dhalandji),
],
- q(2026) => [
+ q(2020) => [
q(Zemba),
],
- q(2027) => [
+ q(2021) => [
q(Dhanki),
],
- q(2028) => [
+ q(2022) => [
q(Dhodia),
],
- q(2029) => [
+ q(2023) => [
q(Dhargari),
],
- q(2030) => [
+ q(2024) => [
q(Dhaiso),
],
- q(2031) => [
+ q(2025) => [
q(Dhurga),
],
- q(2032) => [
+ q(2026) => [
q(Dehu),
q(Drehu),
],
- q(2033) => [
+ q(2027) => [
q(Dhanwar (Nepal)),
],
- q(2034) => [
+ q(2028) => [
q(Dhungaloo),
],
- q(2035) => [
+ q(2029) => [
q(Dia),
],
- q(2036) => [
+ q(2030) => [
q(South Central Dinka),
],
- q(2037) => [
+ q(2031) => [
q(Lakota Dida),
],
- q(2038) => [
+ q(2032) => [
q(Didinga),
],
- q(2039) => [
+ q(2033) => [
q(Dieri),
],
- q(2040) => [
+ q(2034) => [
q(Digo),
q(Chidigo),
],
- q(2041) => [
+ q(2035) => [
q(Kumiai),
],
- q(2042) => [
+ q(2036) => [
q(Dimbong),
],
- q(2043) => [
+ q(2037) => [
q(Dai),
],
- q(2044) => [
+ q(2038) => [
q(Southwestern Dinka),
],
- q(2045) => [
+ q(2039) => [
q(Dilling),
],
- q(2046) => [
+ q(2040) => [
q(Dime),
],
- q(2047) => [
+ q(2041) => [
q(Dibo),
],
- q(2048) => [
+ q(2042) => [
q(Northeastern Dinka),
],
- q(2049) => [
+ q(2043) => [
q(Dimli (individual language)),
],
- q(2050) => [
+ q(2044) => [
q(Dirim),
],
- q(2051) => [
+ q(2045) => [
q(Dimasa),
],
- q(2052) => [
+ q(2046) => [
q(Dirari),
],
- q(2053) => [
+ q(2047) => [
q(Diriku),
],
- q(2054) => [
+ q(2048) => [
q(Northwestern Dinka),
],
- q(2055) => [
+ q(2049) => [
q(Dixon Reef),
],
- q(2056) => [
+ q(2050) => [
q(Diuwe),
],
- q(2057) => [
+ q(2051) => [
q(Ding),
],
- q(2058) => [
+ q(2052) => [
q(Djadjawurrung),
],
- q(2059) => [
+ q(2053) => [
q(Djinba),
],
- q(2060) => [
+ q(2054) => [
q(Dar Daju Daju),
],
- q(2061) => [
+ q(2055) => [
q(Djamindjung),
],
- q(2062) => [
+ q(2056) => [
q(Zarma),
],
- q(2063) => [
+ q(2057) => [
q(Djangun),
],
- q(2064) => [
+ q(2058) => [
q(Djinang),
],
- q(2065) => [
+ q(2059) => [
q(Djeebbana),
],
- q(2066) => [
+ q(2060) => [
q(Eastern Maroon Creole),
q(Businenge Tongo),
q(Nenge),
],
- q(2067) => [
+ q(2061) => [
q(Jamsay Dogon),
],
- q(2068) => [
+ q(2062) => [
q(Djauan),
],
- q(2069) => [
+ q(2063) => [
q(Jangkang),
],
- q(2070) => [
+ q(2064) => [
q(Djambarrpuyngu),
],
- q(2071) => [
+ q(2065) => [
q(Kapriman),
],
- q(2072) => [
+ q(2066) => [
q(Djawi),
],
- q(2073) => [
+ q(2067) => [
q(Dakpakha),
],
- q(2074) => [
+ q(2068) => [
q(Dakka),
],
- q(2075) => [
+ q(2069) => [
q(Kuijau),
],
- q(2076) => [
+ q(2070) => [
q(Southeastern Dinka),
],
- q(2077) => [
+ q(2071) => [
q(Mazagway),
],
- q(2078) => [
+ q(2072) => [
q(Dolgan),
],
- q(2079) => [
+ q(2073) => [
q(Dahalik),
],
- q(2080) => [
+ q(2074) => [
q(Dalmatian),
],
- q(2081) => [
+ q(2075) => [
q(Darlong),
],
- q(2082) => [
+ q(2076) => [
q(Duma),
],
- q(2083) => [
+ q(2077) => [
q(Mombo Dogon),
],
- q(2084) => [
+ q(2078) => [
q(Gavak),
],
- q(2085) => [
+ q(2079) => [
q(Madhi Madhi),
],
- q(2086) => [
+ q(2080) => [
q(Dugwor),
],
- q(2087) => [
+ q(2081) => [
q(Upper Kinabatangan),
],
- q(2088) => [
+ q(2082) => [
q(Domaaki),
],
- q(2089) => [
+ q(2083) => [
q(Dameli),
],
- q(2090) => [
+ q(2084) => [
q(Dama),
],
- q(2091) => [
+ q(2085) => [
q(Kemedzung),
],
- q(2092) => [
+ q(2086) => [
q(East Damar),
],
- q(2093) => [
+ q(2087) => [
q(Dampelas),
],
- q(2094) => [
+ q(2088) => [
q(Dubu),
q(Tebi),
],
- q(2095) => [
+ q(2089) => [
q(Dumpas),
],
- q(2096) => [
+ q(2090) => [
q(Mudburra),
],
- q(2097) => [
+ q(2091) => [
q(Dema),
],
- q(2098) => [
+ q(2092) => [
q(Demta),
q(Sowari),
],
- q(2099) => [
+ q(2093) => [
q(Upper Grand Valley Dani),
],
- q(2100) => [
+ q(2094) => [
q(Daonda),
],
- q(2101) => [
+ q(2095) => [
q(Ndendeule),
],
- q(2102) => [
+ q(2096) => [
q(Dungan),
],
- q(2103) => [
+ q(2097) => [
q(Lower Grand Valley Dani),
],
- q(2104) => [
+ q(2098) => [
q(Dan),
],
- q(2105) => [
+ q(2099) => [
q(Dengka),
],
- q(2106) => [
+ q(2100) => [
q(Dzuungoo),
],
- q(2107) => [
+ q(2101) => [
q(Danaru),
],
- q(2108) => [
+ q(2102) => [
q(Mid Grand Valley Dani),
],
- q(2109) => [
+ q(2103) => [
q(Danau),
],
- q(2110) => [
+ q(2104) => [
q(Danu),
],
- q(2111) => [
+ q(2105) => [
q(Western Dani),
],
- q(2112) => [
+ q(2106) => [
q(Deni),
],
- q(2113) => [
+ q(2107) => [
q(Dom),
],
- q(2114) => [
+ q(2108) => [
q(Dobu),
],
- q(2115) => [
+ q(2109) => [
q(Northern Dong),
],
- q(2116) => [
+ q(2110) => [
q(Doe),
],
- q(2117) => [
+ q(2111) => [
q(Domu),
],
- q(2118) => [
+ q(2112) => [
q(Dong),
],
- q(2119) => [
+ q(2113) => [
q(Dondo),
],
- q(2120) => [
+ q(2114) => [
q(Doso),
],
- q(2121) => [
+ q(2115) => [
q(Toura (Papua New Guinea)),
],
- q(2122) => [
+ q(2116) => [
q(Dongo),
],
- q(2123) => [
+ q(2117) => [
q(Lukpa),
],
- q(2124) => [
+ q(2118) => [
q(Dominican Sign Language),
],
- q(2125) => [
+ q(2119) => [
q(Dori'o),
],
- q(2126) => [
+ q(2120) => [
q(Dogose),
],
- q(2127) => [
+ q(2121) => [
q(Dass),
],
- q(2128) => [
+ q(2122) => [
q(Dombe),
],
- q(2129) => [
+ q(2123) => [
q(Doyayo),
],
- q(2130) => [
+ q(2124) => [
q(Bussa),
],
- q(2131) => [
+ q(2125) => [
q(Dompo),
],
- q(2132) => [
+ q(2126) => [
q(Dorze),
],
- q(2133) => [
+ q(2127) => [
q(Papar),
],
- q(2134) => [
+ q(2128) => [
q(Dair),
],
- q(2135) => [
+ q(2129) => [
q(Minderico),
],
- q(2136) => [
+ q(2130) => [
q(Darmiya),
],
- q(2137) => [
+ q(2131) => [
q(Dolpo),
],
- q(2138) => [
+ q(2132) => [
q(Rungus),
],
- q(2139) => [
- q(C'lela),
+ q(2133) => [
+ q(C'Lela),
],
- q(2140) => [
+ q(2134) => [
q(Paakantyi),
],
- q(2141) => [
+ q(2135) => [
q(West Damar),
],
- q(2142) => [
+ q(2136) => [
q(Daro-Matu Melanau),
],
- q(2143) => [
+ q(2137) => [
q(Dura),
],
- q(2144) => [
+ q(2138) => [
q(Dororo),
],
- q(2145) => [
+ q(2139) => [
q(Gedeo),
],
- q(2146) => [
+ q(2140) => [
q(Drents),
],
- q(2147) => [
+ q(2141) => [
q(Rukai),
],
- q(2148) => [
+ q(2142) => [
q(Darai),
],
- q(2149) => [
+ q(2143) => [
q(Dutch Sign Language),
],
- q(2150) => [
+ q(2144) => [
q(Daasanach),
],
- q(2151) => [
+ q(2145) => [
q(Disa),
],
- q(2152) => [
+ q(2146) => [
q(Danish Sign Language),
],
- q(2153) => [
+ q(2147) => [
q(Dusner),
],
- q(2154) => [
+ q(2148) => [
q(Desiya),
],
- q(2155) => [
+ q(2149) => [
q(Tadaksahak),
],
- q(2156) => [
+ q(2150) => [
q(Daur),
],
- q(2157) => [
+ q(2151) => [
q(Labuk-Kinabatangan Kadazan),
],
- q(2158) => [
+ q(2152) => [
q(Ditidaht),
],
- q(2159) => [
+ q(2153) => [
q(Adithinngithigh),
],
- q(2160) => [
+ q(2154) => [
q(Ana Tinga Dogon),
],
- q(2161) => [
+ q(2155) => [
q(Tene Kan Dogon),
],
- q(2162) => [
+ q(2156) => [
q(Tomo Kan Dogon),
],
- q(2163) => [
+ q(2157) => [
+ q(Daats'iin),
+ ],
+ q(2158) => [
q(Tommo So Dogon),
],
- q(2164) => [
+ q(2159) => [
+ q(Kadazan Dusun),
q(Central Dusun),
],
- q(2165) => [
+ q(2160) => [
q(Lotud),
],
- q(2166) => [
+ q(2161) => [
q(Toro So Dogon),
],
- q(2167) => [
+ q(2162) => [
q(Toro Tegu Dogon),
],
- q(2168) => [
+ q(2163) => [
q(Tebul Ure Dogon),
],
- q(2169) => [
+ q(2164) => [
q(Dotyali),
],
- q(2170) => [
+ q(2165) => [
q(Dubli),
],
- q(2171) => [
+ q(2166) => [
q(Duna),
],
- q(2172) => [
+ q(2167) => [
q(Hun-Saare),
],
- q(2173) => [
+ q(2168) => [
q(Umiray Dumaget Agta),
],
- q(2174) => [
+ q(2169) => [
q(Dumbea),
q(Drubea),
],
- q(2175) => [
+ q(2170) => [
q(Duruma),
q(Chiduruma),
],
- q(2176) => [
+ q(2171) => [
q(Dungra Bhil),
],
- q(2177) => [
+ q(2172) => [
q(Dumun),
],
- q(2178) => [
- q(Dhuwal),
- ],
- q(2179) => [
+ q(2173) => [
q(Uyajitaya),
],
- q(2180) => [
+ q(2174) => [
q(Alabat Island Agta),
],
- q(2181) => [
+ q(2175) => [
q(Dusun Deyah),
],
- q(2182) => [
+ q(2176) => [
q(Dupaninan Agta),
],
- q(2183) => [
+ q(2177) => [
q(Duano),
],
- q(2184) => [
+ q(2178) => [
q(Dusun Malang),
],
- q(2185) => [
+ q(2179) => [
q(Dii),
],
- q(2186) => [
+ q(2180) => [
q(Dumi),
],
- q(2187) => [
+ q(2181) => [
q(Drung),
],
- q(2188) => [
+ q(2182) => [
q(Duvle),
],
- q(2189) => [
+ q(2183) => [
q(Dusun Witu),
],
- q(2190) => [
+ q(2184) => [
q(Duungooma),
],
- q(2191) => [
+ q(2185) => [
q(Dicamay Agta),
],
- q(2192) => [
- q(Duli),
+ q(2186) => [
+ q(Duli-Gey),
],
- q(2193) => [
+ q(2187) => [
q(Duau),
],
- q(2194) => [
+ q(2188) => [
q(Diri),
],
- q(2195) => [
+ q(2189) => [
q(Dawro),
],
- q(2196) => [
+ q(2190) => [
q(Dutton World Speedwords),
],
- q(2197) => [
+ q(2191) => [
+ q(Dhuwal),
+ ],
+ q(2192) => [
q(Dawawa),
],
- q(2198) => [
+ q(2193) => [
+ q(Dhuwaya),
+ ],
+ q(2194) => [
q(Dyan),
],
- q(2199) => [
+ q(2195) => [
q(Dyaberdyaber),
],
- q(2200) => [
+ q(2196) => [
q(Dyugun),
],
- q(2201) => [
+ q(2197) => [
q(Villa Viciosa Agta),
],
- q(2202) => [
+ q(2198) => [
q(Djimini Senoufo),
],
- q(2203) => [
+ q(2199) => [
q(Yanda Dom Dogon),
],
- q(2204) => [
+ q(2200) => [
q(Dyangadi),
],
- q(2205) => [
+ q(2201) => [
q(Jola-Fonyi),
],
- q(2206) => [
+ q(2202) => [
q(Dyaabugay),
],
- q(2207) => [
+ q(2203) => [
q(Tunzu),
],
- q(2208) => [
+ q(2204) => [
q(Djiwarli),
],
- q(2209) => [
+ q(2205) => [
q(Dazaga),
],
- q(2210) => [
+ q(2206) => [
q(Dzalakha),
],
- q(2211) => [
+ q(2207) => [
q(Dzando),
],
- q(2212) => [
+ q(2208) => [
q(Karenggapa),
],
- q(2213) => [
+ q(2209) => [
q(Ebughu),
],
- q(2214) => [
+ q(2210) => [
q(Eastern Bontok),
],
- q(2215) => [
+ q(2211) => [
q(Teke-Ebo),
],
- q(2216) => [
+ q(2212) => [
q(Ebrie),
],
- q(2217) => [
+ q(2213) => [
q(Embu),
q(Kiembu),
],
- q(2218) => [
+ q(2214) => [
q(Eteocretan),
],
- q(2219) => [
+ q(2215) => [
q(Ecuadorian Sign Language),
],
- q(2220) => [
+ q(2216) => [
q(Eteocypriot),
],
- q(2221) => [
+ q(2217) => [
q(E),
],
- q(2222) => [
+ q(2218) => [
q(Efai),
],
- q(2223) => [
+ q(2219) => [
q(Efe),
],
- q(2224) => [
+ q(2220) => [
q(Ega),
],
- q(2225) => [
+ q(2221) => [
q(Emilian),
],
- q(2226) => [
+ q(2222) => [
q(Eggon),
],
- q(2227) => [
+ q(2223) => [
q(Ehueun),
],
- q(2228) => [
+ q(2224) => [
q(Eipomek),
],
- q(2229) => [
+ q(2225) => [
q(Eitiep),
],
- q(2230) => [
+ q(2226) => [
q(Askopan),
],
- q(2231) => [
+ q(2227) => [
q(Ejamat),
],
- q(2232) => [
+ q(2228) => [
q(Eastern Karnic),
],
- q(2233) => [
+ q(2229) => [
q(Ekit),
],
- q(2234) => [
+ q(2230) => [
q(Ekari),
],
- q(2235) => [
+ q(2231) => [
q(Eki),
],
- q(2236) => [
+ q(2232) => [
q(Standard Estonian),
],
- q(2237) => [
+ q(2233) => [
q(Kol (Bangladesh)),
q(Kol),
],
- q(2238) => [
+ q(2234) => [
q(Elip),
],
- q(2239) => [
+ q(2235) => [
q(Koti),
],
- q(2240) => [
+ q(2236) => [
q(Ekpeye),
],
- q(2241) => [
+ q(2237) => [
q(Yace),
],
- q(2242) => [
+ q(2238) => [
q(Eastern Kayah),
],
- q(2243) => [
+ q(2239) => [
q(Elepi),
],
- q(2244) => [
+ q(2240) => [
q(El Hugeirat),
],
- q(2245) => [
+ q(2241) => [
q(Nding),
],
- q(2246) => [
+ q(2242) => [
q(Elkei),
],
- q(2247) => [
+ q(2243) => [
q(Eleme),
],
- q(2248) => [
+ q(2244) => [
q(El Molo),
],
- q(2249) => [
+ q(2245) => [
q(Elu),
],
- q(2250) => [
+ q(2246) => [
q(Emai-Iuleha-Ora),
],
- q(2251) => [
+ q(2247) => [
q(Embaloh),
],
- q(2252) => [
+ q(2248) => [
q(Emerillon),
],
- q(2253) => [
+ q(2249) => [
q(Eastern Meohang),
],
- q(2254) => [
+ q(2250) => [
q(Mussau-Emira),
],
- q(2255) => [
+ q(2251) => [
q(Eastern Maninkakan),
],
- q(2256) => [
+ q(2252) => [
q(Mamulique),
],
- q(2257) => [
+ q(2253) => [
q(Eman),
],
- q(2258) => [
+ q(2254) => [
q(Northern Embera),
],
- q(2259) => [
+ q(2255) => [
q(Pacific Gulf Yupik),
],
- q(2260) => [
+ q(2256) => [
q(Eastern Muria),
],
- q(2261) => [
+ q(2257) => [
q(Emplawas),
],
- q(2262) => [
+ q(2258) => [
q(Erromintxela),
],
- q(2263) => [
+ q(2259) => [
q(Epigraphic Mayan),
],
- q(2264) => [
+ q(2260) => [
q(Apali),
],
- q(2265) => [
+ q(2261) => [
q(Markweeta),
],
- q(2266) => [
+ q(2262) => [
q(En),
],
- q(2267) => [
+ q(2263) => [
q(Ende),
],
- q(2268) => [
+ q(2264) => [
q(Forest Enets),
],
- q(2269) => [
+ q(2265) => [
q(Tundra Enets),
],
- q(2270) => [
+ q(2266) => [
q(Enlhet),
],
- q(2271) => [
+ q(2267) => [
q(Engenni),
],
- q(2272) => [
+ q(2268) => [
q(Enggano),
],
- q(2273) => [
+ q(2269) => [
q(Enga),
],
- q(2274) => [
+ q(2270) => [
q(Emumu),
q(Emem),
],
- q(2275) => [
+ q(2271) => [
q(Enu),
],
- q(2276) => [
+ q(2272) => [
q(Enwan (Edu State)),
],
- q(2277) => [
+ q(2273) => [
q(Enwan (Akwa Ibom State)),
],
- q(2278) => [
+ q(2274) => [
q(Enxet),
],
- q(2279) => [
+ q(2275) => [
q(Beti (Cote d'Ivoire)),
],
- q(2280) => [
+ q(2276) => [
q(Epie),
],
- q(2281) => [
+ q(2277) => [
q(Eravallan),
],
- q(2282) => [
+ q(2278) => [
q(Sie),
],
- q(2283) => [
+ q(2279) => [
q(Eruwa),
],
- q(2284) => [
+ q(2280) => [
q(Ogea),
],
- q(2285) => [
+ q(2281) => [
q(South Efate),
],
- q(2286) => [
+ q(2282) => [
q(Horpa),
],
- q(2287) => [
+ q(2283) => [
q(Erre),
],
- q(2288) => [
+ q(2284) => [
q(Ersu),
],
- q(2289) => [
+ q(2285) => [
q(Eritai),
],
- q(2290) => [
+ q(2286) => [
q(Erokwanas),
],
- q(2291) => [
+ q(2287) => [
q(Ese Ejja),
],
- q(2292) => [
+ q(2288) => [
+ q(Aheri Gondi),
+ ],
+ q(2289) => [
q(Eshtehardi),
],
- q(2293) => [
+ q(2290) => [
q(North Alaskan Inupiatun),
],
- q(2294) => [
+ q(2291) => [
q(Northwest Alaska Inupiatun),
],
- q(2295) => [
+ q(2292) => [
q(Egypt Sign Language),
],
- q(2296) => [
+ q(2293) => [
q(Esuma),
],
- q(2297) => [
+ q(2294) => [
q(Salvadoran Sign Language),
],
- q(2298) => [
+ q(2295) => [
q(Estonian Sign Language),
],
- q(2299) => [
+ q(2296) => [
q(Esselen),
],
- q(2300) => [
+ q(2297) => [
q(Central Siberian Yupik),
],
- q(2301) => [
+ q(2298) => [
q(Central Yupik),
],
- q(2302) => [
+ q(2299) => [
q(Eskayan),
],
- q(2303) => [
+ q(2300) => [
q(Etebi),
],
- q(2304) => [
+ q(2301) => [
q(Etchemin),
],
- q(2305) => [
+ q(2302) => [
q(Ethiopian Sign Language),
],
- q(2306) => [
+ q(2303) => [
q(Eton (Vanuatu)),
],
- q(2307) => [
+ q(2304) => [
q(Eton (Cameroon)),
],
- q(2308) => [
+ q(2305) => [
q(Edolo),
],
- q(2309) => [
+ q(2306) => [
q(Yekhee),
],
- q(2310) => [
+ q(2307) => [
q(Etruscan),
],
- q(2311) => [
+ q(2308) => [
q(Ejagham),
],
- q(2312) => [
+ q(2309) => [
q(Eten),
],
- q(2313) => [
+ q(2310) => [
q(Semimi),
],
- q(2314) => [
+ q(2311) => [
q(Even),
],
- q(2315) => [
+ q(2312) => [
q(Uvbie),
],
- q(2316) => [
+ q(2313) => [
q(Evenki),
],
- q(2317) => [
+ q(2314) => [
q(Extremaduran),
],
- q(2318) => [
+ q(2315) => [
q(Eyak),
],
- q(2319) => [
+ q(2316) => [
q(Keiyo),
],
- q(2320) => [
+ q(2317) => [
q(Ezaa),
],
- q(2321) => [
+ q(2318) => [
q(Uzekwe),
],
- q(2322) => [
+ q(2319) => [
q(Fasu),
],
- q(2323) => [
+ q(2320) => [
q(Fa d'Ambu),
],
- q(2324) => [
+ q(2321) => [
q(Wagi),
],
- q(2325) => [
+ q(2322) => [
q(Fagani),
],
- q(2326) => [
+ q(2323) => [
q(Finongan),
],
- q(2327) => [
+ q(2324) => [
q(Baissa Fali),
],
- q(2328) => [
+ q(2325) => [
q(Faiwol),
],
- q(2329) => [
+ q(2326) => [
q(Faita),
],
- q(2330) => [
+ q(2327) => [
q(Fang (Cameroon)),
],
- q(2331) => [
+ q(2328) => [
q(South Fali),
],
- q(2332) => [
+ q(2329) => [
q(Fam),
],
- q(2333) => [
+ q(2330) => [
q(Palor),
],
- q(2334) => [
+ q(2331) => [
q(Fataleka),
],
- q(2335) => [
+ q(2332) => [
q(Fayu),
],
- q(2336) => [
+ q(2333) => [
q(Fala),
],
- q(2337) => [
+ q(2334) => [
q(Southwestern Fars),
],
- q(2338) => [
+ q(2335) => [
q(Northwestern Fars),
],
- q(2339) => [
+ q(2336) => [
q(West Albay Bikol),
],
- q(2340) => [
+ q(2337) => [
q(Quebec Sign Language),
],
- q(2341) => [
+ q(2338) => [
q(Feroge),
],
- q(2342) => [
+ q(2339) => [
q(Foia Foia),
],
- q(2343) => [
+ q(2340) => [
q(Maasina Fulfulde),
],
- q(2344) => [
+ q(2341) => [
q(Fongoro),
],
- q(2345) => [
+ q(2342) => [
q(Nobiin),
],
- q(2346) => [
+ q(2343) => [
q(Fyer),
],
- q(2347) => [
+ q(2344) => [
q(Fipa),
],
- q(2348) => [
+ q(2345) => [
q(Firan),
],
- q(2349) => [
+ q(2346) => [
q(Tornedalen Finnish),
],
- q(2350) => [
+ q(2347) => [
q(Fiwaga),
],
- q(2351) => [
+ q(2348) => [
q(Kirya-Konzel),
],
- q(2352) => [
+ q(2349) => [
q(Kven Finnish),
],
- q(2353) => [
+ q(2350) => [
q(Kalispel-Pend d'Oreille),
],
- q(2354) => [
+ q(2351) => [
q(Foau),
],
- q(2355) => [
+ q(2352) => [
q(Fali),
],
- q(2356) => [
+ q(2353) => [
q(North Fali),
],
- q(2357) => [
+ q(2354) => [
q(Flinders Island),
],
- q(2358) => [
+ q(2355) => [
q(Fuliiru),
],
- q(2359) => [
+ q(2356) => [
q(Flaaitaal),
q(Tsotsitaal),
],
- q(2360) => [
+ q(2357) => [
q(Fe'fe'),
],
- q(2361) => [
+ q(2358) => [
q(Far Western Muria),
],
- q(2362) => [
+ q(2359) => [
+ q(Fanbak),
+ ],
+ q(2360) => [
q(Fanagalo),
],
- q(2363) => [
+ q(2361) => [
q(Fania),
],
- q(2364) => [
+ q(2362) => [
q(Foodo),
],
- q(2365) => [
+ q(2363) => [
q(Foi),
],
- q(2366) => [
+ q(2364) => [
q(Foma),
],
- q(2367) => [
+ q(2365) => [
q(Fore),
],
- q(2368) => [
+ q(2366) => [
q(Siraya),
],
- q(2369) => [
+ q(2367) => [
q(Fernando Po Creole English),
],
- q(2370) => [
+ q(2368) => [
q(Fas),
],
- q(2371) => [
+ q(2369) => [
q(Cajun French),
],
- q(2372) => [
+ q(2370) => [
q(Fordata),
],
- q(2373) => [
+ q(2371) => [
q(Frankish),
],
- q(2374) => [
+ q(2372) => [
q(Arpitan),
q(Francoprovencal),
],
- q(2375) => [
+ q(2373) => [
q(Forak),
],
- q(2376) => [
+ q(2374) => [
q(Fortsenal),
],
- q(2377) => [
+ q(2375) => [
q(Finnish Sign Language),
],
- q(2378) => [
+ q(2376) => [
q(French Sign Language),
],
- q(2379) => [
+ q(2377) => [
q(Finland-Swedish Sign Language),
q(finlandssvenskt teckensprak),
q(suomenruotsalainen viittomakieli),
],
- q(2380) => [
+ q(2378) => [
q(Adamawa Fulfulde),
],
- q(2381) => [
+ q(2379) => [
q(Pulaar),
],
- q(2382) => [
+ q(2380) => [
q(East Futuna),
],
- q(2383) => [
+ q(2381) => [
q(Borgu Fulfulde),
],
- q(2384) => [
+ q(2382) => [
q(Pular),
],
- q(2385) => [
+ q(2383) => [
q(Western Niger Fulfulde),
],
- q(2386) => [
+ q(2384) => [
q(Bagirmi Fulfulde),
],
- q(2387) => [
+ q(2385) => [
q(Ko),
],
- q(2388) => [
+ q(2386) => [
q(Fum),
],
- q(2389) => [
+ q(2387) => [
q(Fulnio),
],
- q(2390) => [
+ q(2388) => [
q(Central-Eastern Niger Fulfulde),
],
- q(2391) => [
+ q(2389) => [
q(Futuna-Aniwa),
],
- q(2392) => [
+ q(2390) => [
q(Furu),
],
- q(2393) => [
+ q(2391) => [
q(Nigerian Fulfulde),
],
- q(2394) => [
+ q(2392) => [
q(Fuyug),
],
- q(2395) => [
+ q(2393) => [
q(Fur),
],
- q(2396) => [
+ q(2394) => [
q(Fwai),
],
- q(2397) => [
+ q(2395) => [
q(Fwe),
],
- q(2398) => [
+ q(2396) => [
q(Gabri),
],
- q(2399) => [
+ q(2397) => [
q(Mixed Great Andamanese),
],
- q(2400) => [
+ q(2398) => [
q(Gaddang),
],
- q(2401) => [
+ q(2399) => [
q(Guarequena),
],
- q(2402) => [
+ q(2400) => [
q(Gende),
],
- q(2403) => [
+ q(2401) => [
q(Gagauz),
],
- q(2404) => [
+ q(2402) => [
q(Alekano),
],
- q(2405) => [
+ q(2403) => [
q(Borei),
],
- q(2406) => [
+ q(2404) => [
q(Gadsup),
],
- q(2407) => [
+ q(2405) => [
q(Gamkonora),
],
- q(2408) => [
+ q(2406) => [
q(Galolen),
],
- q(2409) => [
+ q(2407) => [
q(Kandawo),
],
- q(2410) => [
+ q(2408) => [
q(Gan Chinese),
],
- q(2411) => [
+ q(2409) => [
q(Gants),
],
- q(2412) => [
+ q(2410) => [
q(Gal),
],
- q(2413) => [
+ q(2411) => [
q(Gata'),
],
- q(2414) => [
+ q(2412) => [
q(Galeya),
],
- q(2415) => [
+ q(2413) => [
q(Adiwasi Garasia),
],
- q(2416) => [
+ q(2414) => [
q(Kenati),
],
- q(2417) => [
+ q(2415) => [
q(Mudhili Gadaba),
],
- q(2418) => [
+ q(2416) => [
q(Nobonob),
],
- q(2419) => [
+ q(2417) => [
q(Borana-Arsi-Guji Oromo),
],
- q(2420) => [
+ q(2418) => [
q(West Central Oromo),
],
- q(2421) => [
+ q(2419) => [
q(Kaytetye),
],
- q(2422) => [
+ q(2420) => [
q(Karadjeri),
],
- q(2423) => [
+ q(2421) => [
q(Niksek),
],
- q(2424) => [
+ q(2422) => [
q(Gaikundi),
],
- q(2425) => [
+ q(2423) => [
q(Gbanziri),
],
- q(2426) => [
+ q(2424) => [
q(Defi Gbe),
],
- q(2427) => [
+ q(2425) => [
q(Galela),
],
- q(2428) => [
+ q(2426) => [
q(Bodo Gadaba),
],
- q(2429) => [
+ q(2427) => [
q(Gaddi),
],
- q(2430) => [
+ q(2428) => [
q(Gamit),
],
- q(2431) => [
+ q(2429) => [
q(Garhwali),
],
- q(2432) => [
+ q(2430) => [
q(Mo'da),
],
- q(2433) => [
+ q(2431) => [
q(Northern Grebo),
],
- q(2434) => [
+ q(2432) => [
q(Gbaya-Bossangoa),
],
- q(2435) => [
+ q(2433) => [
q(Gbaya-Bozoum),
],
- q(2436) => [
+ q(2434) => [
q(Gbagyi),
],
- q(2437) => [
+ q(2435) => [
q(Gbesi Gbe),
],
- q(2438) => [
+ q(2436) => [
q(Gagadu),
],
- q(2439) => [
+ q(2437) => [
q(Gbanu),
],
- q(2440) => [
+ q(2438) => [
q(Gabi-Gabi),
],
- q(2441) => [
+ q(2439) => [
q(Eastern Xwla Gbe),
],
- q(2442) => [
+ q(2440) => [
q(Gbari),
],
- q(2443) => [
+ q(2441) => [
q(Zoroastrian Dari),
],
- q(2444) => [
+ q(2442) => [
q(Mali),
],
- q(2445) => [
+ q(2443) => [
q(Ganggalida),
],
- q(2446) => [
+ q(2444) => [
q(Galice),
],
- q(2447) => [
+ q(2445) => [
q(Guadeloupean Creole French),
],
- q(2448) => [
+ q(2446) => [
q(Grenadian Creole English),
],
- q(2449) => [
+ q(2447) => [
q(Gaina),
],
- q(2450) => [
+ q(2448) => [
q(Guianese Creole French),
],
- q(2451) => [
+ q(2449) => [
q(Colonia Tovar German),
],
- q(2452) => [
+ q(2450) => [
q(Gade Lohar),
],
- q(2453) => [
+ q(2451) => [
q(Pottangi Ollar Gadaba),
],
- q(2454) => [
+ q(2452) => [
q(Gugu Badhun),
],
- q(2455) => [
+ q(2453) => [
q(Gedaged),
],
- q(2456) => [
+ q(2454) => [
q(Gude),
],
- q(2457) => [
+ q(2455) => [
q(Guduf-Gava),
],
- q(2458) => [
+ q(2456) => [
q(Ga'dang),
],
- q(2459) => [
+ q(2457) => [
q(Gadjerawang),
],
- q(2460) => [
+ q(2458) => [
q(Gundi),
],
- q(2461) => [
+ q(2459) => [
q(Gurdjar),
],
- q(2462) => [
+ q(2460) => [
q(Gadang),
],
- q(2463) => [
+ q(2461) => [
q(Dirasha),
],
- q(2464) => [
+ q(2462) => [
q(Laal),
],
- q(2465) => [
+ q(2463) => [
q(Umanakaina),
],
- q(2466) => [
+ q(2464) => [
q(Ghodoberi),
],
- q(2467) => [
+ q(2465) => [
q(Mehri),
],
- q(2468) => [
+ q(2466) => [
q(Wipi),
],
- q(2469) => [
+ q(2467) => [
q(Ghandruk Sign Language),
],
- q(2470) => [
+ q(2468) => [
q(Kungardutyi),
],
- q(2471) => [
+ q(2469) => [
q(Gudu),
],
- q(2472) => [
+ q(2470) => [
q(Godwari),
],
- q(2473) => [
+ q(2471) => [
q(Geruma),
],
- q(2474) => [
+ q(2472) => [
q(Kire),
],
- q(2475) => [
+ q(2473) => [
q(Gboloo Grebo),
],
- q(2476) => [
+ q(2474) => [
q(Gade),
],
- q(2477) => [
+ q(2475) => [
q(Gengle),
],
- q(2478) => [
+ q(2476) => [
q(Hutterite German),
q(Hutterisch),
],
- q(2479) => [
+ q(2477) => [
q(Gebe),
],
- q(2480) => [
+ q(2478) => [
q(Gen),
],
- q(2481) => [
- q(Yiwom),
+ q(2479) => [
+ q(Ywom),
],
- q(2482) => [
+ q(2480) => [
q(ut-Ma'in),
],
- q(2483) => [
+ q(2481) => [
q(Geme),
],
- q(2484) => [
+ q(2482) => [
q(Geser-Gorom),
],
- q(2485) => [
+ q(2483) => [
q(Eviya),
],
- q(2486) => [
+ q(2484) => [
q(Gera),
],
- q(2487) => [
+ q(2485) => [
q(Garre),
],
- q(2488) => [
+ q(2486) => [
q(Enya),
],
- q(2489) => [
+ q(2487) => [
q(Patpatar),
],
- q(2490) => [
+ q(2488) => [
q(Gafat),
],
- q(2491) => [
+ q(2489) => [
q(Gao),
],
- q(2492) => [
+ q(2490) => [
q(Gbii),
],
- q(2493) => [
+ q(2491) => [
q(Gugadj),
],
- q(2494) => [
+ q(2492) => [
q(Guragone),
],
- q(2495) => [
+ q(2493) => [
q(Gurgula),
],
- q(2496) => [
+ q(2494) => [
q(Kungarakany),
],
- q(2497) => [
+ q(2495) => [
q(Ganglau),
],
- q(2498) => [
- q(Eastern Gurung),
- ],
- q(2499) => [
- q(Southern Gondi),
- ],
- q(2500) => [
+ q(2496) => [
q(Gitua),
],
- q(2501) => [
+ q(2497) => [
q(Gagu),
q(Gban),
],
- q(2502) => [
+ q(2498) => [
q(Gogodala),
],
- q(2503) => [
+ q(2499) => [
q(Ghadames),
],
- q(2504) => [
+ q(2500) => [
q(Hiberno-Scottish Gaelic),
],
- q(2505) => [
+ q(2501) => [
q(Southern Ghale),
],
- q(2506) => [
+ q(2502) => [
q(Northern Ghale),
],
- q(2507) => [
+ q(2503) => [
q(Geko Karen),
],
- q(2508) => [
+ q(2504) => [
q(Ghulfan),
],
- q(2509) => [
+ q(2505) => [
q(Ghanongga),
],
- q(2510) => [
+ q(2506) => [
q(Ghomara),
],
- q(2511) => [
+ q(2507) => [
q(Ghera),
],
- q(2512) => [
+ q(2508) => [
q(Guhu-Samane),
],
- q(2513) => [
+ q(2509) => [
q(Kuke),
q(Kutang Ghale),
],
- q(2514) => [
+ q(2510) => [
q(Kitja),
],
- q(2515) => [
+ q(2511) => [
q(Gibanawa),
],
- q(2516) => [
+ q(2512) => [
q(Gail),
],
- q(2517) => [
+ q(2513) => [
q(Gidar),
],
- q(2518) => [
+ q(2514) => [
+ q(Gabogbo),
+ q(Guebie),
+ ],
+ q(2515) => [
q(Goaria),
],
- q(2519) => [
+ q(2516) => [
q(Githabul),
],
- q(2520) => [
+ q(2517) => [
q(Gimi (Eastern Highlands)),
],
- q(2521) => [
+ q(2518) => [
q(Hinukh),
],
- q(2522) => [
+ q(2519) => [
q(Gimi (West New Britain)),
],
- q(2523) => [
+ q(2520) => [
q(Green Gelao),
],
- q(2524) => [
+ q(2521) => [
q(Red Gelao),
],
- q(2525) => [
+ q(2522) => [
q(North Giziga),
],
- q(2526) => [
+ q(2523) => [
q(Gitxsan),
],
- q(2527) => [
+ q(2524) => [
q(Mulao),
],
- q(2528) => [
+ q(2525) => [
q(White Gelao),
],
- q(2529) => [
+ q(2526) => [
q(Gilima),
],
- q(2530) => [
+ q(2527) => [
q(Giyug),
],
- q(2531) => [
+ q(2528) => [
q(South Giziga),
],
- q(2532) => [
+ q(2529) => [
q(Geji),
],
- q(2533) => [
+ q(2530) => [
q(Kachi Koli),
],
- q(2534) => [
+ q(2531) => [
q(Gunditjmara),
],
- q(2535) => [
+ q(2532) => [
q(Gonja),
],
- q(2536) => [
+ q(2533) => [
+ q(Gurindji Kriol),
+ ],
+ q(2534) => [
q(Gujari),
],
- q(2537) => [
+ q(2535) => [
q(Guya),
],
- q(2538) => [
+ q(2536) => [
q(Ndai),
],
- q(2539) => [
+ q(2537) => [
q(Gokana),
],
- q(2540) => [
+ q(2538) => [
q(Kok-Nar),
],
- q(2541) => [
+ q(2539) => [
q(Guinea Kpelle),
],
- q(2542) => [
+ q(2540) => [
q(Ungkue),
q(=/Ungkue),
],
- q(2543) => [
+ q(2541) => [
q(Bon Gula),
],
- q(2544) => [
+ q(2542) => [
q(Nanai),
],
- q(2545) => [
+ q(2543) => [
q(Northwest Pashai),
q(Northwest Pashayi),
],
- q(2546) => [
+ q(2544) => [
q(Guliguli),
],
- q(2547) => [
+ q(2545) => [
q(Gula Iro),
],
- q(2548) => [
+ q(2546) => [
q(Gilaki),
],
- q(2549) => [
+ q(2547) => [
q(Garlali),
],
- q(2550) => [
+ q(2548) => [
q(Galambu),
],
- q(2551) => [
+ q(2549) => [
q(Glaro-Twabo),
],
- q(2552) => [
+ q(2550) => [
q(Gula (Chad)),
],
- q(2553) => [
+ q(2551) => [
q(Glavda),
],
- q(2554) => [
+ q(2552) => [
q(Gule),
],
- q(2555) => [
+ q(2553) => [
q(Gambera),
],
- q(2556) => [
+ q(2554) => [
q(Gula'alaa),
],
- q(2557) => [
+ q(2555) => [
q(Maghdi),
],
- q(2558) => [
+ q(2556) => [
q(Magyi),
],
- q(2559) => [
+ q(2557) => [
q(Middle Low German),
],
- q(2560) => [
+ q(2558) => [
q(Gbaya-Mbodomo),
],
- q(2561) => [
+ q(2559) => [
q(Gimnime),
],
- q(2562) => [
+ q(2560) => [
q(Gumalu),
],
- q(2563) => [
+ q(2561) => [
q(Gamo),
],
- q(2564) => [
+ q(2562) => [
q(Magoma),
],
- q(2565) => [
+ q(2563) => [
q(Mycenaean Greek),
],
- q(2566) => [
+ q(2564) => [
q(Mgbolizhia),
],
- q(2567) => [
+ q(2565) => [
q(Kaansa),
],
- q(2568) => [
+ q(2566) => [
q(Gangte),
],
- q(2569) => [
+ q(2567) => [
q(Guanche),
],
- q(2570) => [
+ q(2568) => [
q(Zulgo-Gemzek),
],
- q(2571) => [
+ q(2569) => [
q(Ganang),
],
- q(2572) => [
+ q(2570) => [
q(Ngangam),
],
- q(2573) => [
+ q(2571) => [
q(Lere),
],
- q(2574) => [
+ q(2572) => [
q(Gooniyandi),
],
- q(2575) => [
+ q(2573) => [
q(//Gana),
q(Gana),
],
- q(2576) => [
+ q(2574) => [
q(Gangulu),
],
- q(2577) => [
+ q(2575) => [
q(Ginuman),
],
- q(2578) => [
+ q(2576) => [
q(Gumatj),
],
- q(2579) => [
+ q(2577) => [
q(Northern Gondi),
],
- q(2580) => [
+ q(2578) => [
q(Gureng Gureng),
],
- q(2581) => [
+ q(2579) => [
q(Guntai),
],
- q(2582) => [
+ q(2580) => [
q(Gnau),
],
- q(2583) => [
+ q(2581) => [
q(Western Bolivian Guarani),
],
- q(2584) => [
+ q(2582) => [
q(Ganzi),
],
- q(2585) => [
+ q(2583) => [
q(Guro),
],
- q(2586) => [
+ q(2584) => [
q(Playero),
],
- q(2587) => [
+ q(2585) => [
q(Gorakor),
],
- q(2588) => [
+ q(2586) => [
q(Godie),
],
- q(2589) => [
+ q(2587) => [
q(Gongduk),
],
- q(2590) => [
+ q(2588) => [
q(Gofa),
],
- q(2591) => [
+ q(2589) => [
q(Gogo),
],
- q(2592) => [
+ q(2590) => [
q(Gobasi),
],
- q(2593) => [
+ q(2591) => [
q(Gowlan),
],
- q(2594) => [
+ q(2592) => [
q(Gowli),
],
- q(2595) => [
+ q(2593) => [
q(Gola),
],
- q(2596) => [
+ q(2594) => [
q(Goan Konkani),
],
- q(2597) => [
+ q(2595) => [
q(Gone Dau),
],
- q(2598) => [
+ q(2596) => [
q(Yeretuar),
],
- q(2599) => [
+ q(2597) => [
q(Gorap),
],
- q(2600) => [
+ q(2598) => [
q(Gronings),
],
- q(2601) => [
+ q(2599) => [
q(Gavar),
],
- q(2602) => [
+ q(2600) => [
q(Gorowa),
],
- q(2603) => [
+ q(2601) => [
q(Gobu),
],
- q(2604) => [
+ q(2602) => [
q(Goundo),
],
- q(2605) => [
+ q(2603) => [
q(Gozarkhani),
],
- q(2606) => [
+ q(2604) => [
q(Gupa-Abawa),
],
- q(2607) => [
+ q(2605) => [
q(Ghanaian Pidgin English),
],
- q(2608) => [
+ q(2606) => [
q(Taiap),
],
- q(2609) => [
+ q(2607) => [
q(Ga'anda),
],
- q(2610) => [
+ q(2608) => [
q(Guiqiong),
],
- q(2611) => [
+ q(2609) => [
q(Guana (Brazil)),
],
- q(2612) => [
+ q(2610) => [
q(Gor),
],
- q(2613) => [
+ q(2611) => [
q(Qau),
],
- q(2614) => [
+ q(2612) => [
q(Rajput Garasia),
],
- q(2615) => [
+ q(2613) => [
q(Guruntum-Mbaaru),
],
- q(2616) => [
+ q(2614) => [
q(Madi),
],
- q(2617) => [
+ q(2615) => [
q(Gbiri-Niragu),
],
- q(2618) => [
+ q(2616) => [
q(Ghari),
],
- q(2619) => [
+ q(2617) => [
q(Southern Grebo),
],
- q(2620) => [
+ q(2618) => [
q(Kota Marudu Talantang),
],
- q(2621) => [
+ q(2619) => [
q(Groma),
],
- q(2622) => [
+ q(2620) => [
q(Gorovu),
],
- q(2623) => [
+ q(2621) => [
q(Taznatit),
],
- q(2624) => [
+ q(2622) => [
q(Gresi),
],
- q(2625) => [
+ q(2623) => [
q(Garo),
],
- q(2626) => [
+ q(2624) => [
q(Kistane),
],
- q(2627) => [
+ q(2625) => [
q(Central Grebo),
],
- q(2628) => [
+ q(2626) => [
q(Gweda),
],
- q(2629) => [
+ q(2627) => [
q(Guriaso),
],
- q(2630) => [
+ q(2628) => [
q(Barclayville Grebo),
],
- q(2631) => [
+ q(2629) => [
q(Guramalum),
],
- q(2632) => [
+ q(2630) => [
q(Ghanaian Sign Language),
],
- q(2633) => [
+ q(2631) => [
q(German Sign Language),
],
- q(2634) => [
+ q(2632) => [
q(Gusilay),
],
- q(2635) => [
+ q(2633) => [
q(Guatemalan Sign Language),
],
- q(2636) => [
+ q(2634) => [
+ q(Nema),
q(Gusan),
],
- q(2637) => [
+ q(2635) => [
q(Southwest Gbaya),
],
- q(2638) => [
+ q(2636) => [
q(Wasembo),
],
- q(2639) => [
+ q(2637) => [
q(Greek Sign Language),
],
- q(2640) => [
+ q(2638) => [
q(Guato),
],
- q(2641) => [
+ q(2639) => [
q(Aghu-Tharnggala),
],
- q(2642) => [
+ q(2640) => [
q(Shiki),
],
- q(2643) => [
+ q(2641) => [
q(Guajajara),
],
- q(2644) => [
+ q(2642) => [
q(Wayuu),
],
- q(2645) => [
+ q(2643) => [
q(Yocoboue Dida),
],
- q(2646) => [
+ q(2644) => [
q(Gurinji),
],
- q(2647) => [
+ q(2645) => [
q(Gupapuyngu),
],
- q(2648) => [
+ q(2646) => [
q(Paraguayan Guarani),
],
- q(2649) => [
+ q(2647) => [
q(Guahibo),
],
- q(2650) => [
+ q(2648) => [
q(Eastern Bolivian Guarani),
],
- q(2651) => [
+ q(2649) => [
q(Gumuz),
],
- q(2652) => [
+ q(2650) => [
q(Sea Island Creole English),
],
- q(2653) => [
+ q(2651) => [
q(Guambiano),
],
- q(2654) => [
+ q(2652) => [
q(Mbya Guarani),
],
- q(2655) => [
+ q(2653) => [
q(Guayabero),
],
- q(2656) => [
+ q(2654) => [
q(Gunwinggu),
],
- q(2657) => [
+ q(2655) => [
q(Ache),
],
- q(2658) => [
+ q(2656) => [
q(Farefare),
],
- q(2659) => [
+ q(2657) => [
q(Guinean Sign Language),
],
- q(2660) => [
+ q(2658) => [
q(Maleku Jaika),
],
- q(2661) => [
+ q(2659) => [
q(Yanomamo),
],
- q(2662) => [
- q(Gey),
- ],
- q(2663) => [
+ q(2660) => [
q(Gun),
],
- q(2664) => [
+ q(2661) => [
q(Gourmanchema),
],
- q(2665) => [
+ q(2662) => [
q(Gusii),
q(Ekegusii),
],
- q(2666) => [
+ q(2663) => [
q(Guana (Paraguay)),
],
- q(2667) => [
+ q(2664) => [
q(Guanano),
],
- q(2668) => [
+ q(2665) => [
q(Duwet),
],
- q(2669) => [
+ q(2666) => [
q(Golin),
],
- q(2670) => [
+ q(2667) => [
q(Guaja),
],
- q(2671) => [
+ q(2668) => [
q(Gulay),
],
- q(2672) => [
+ q(2669) => [
q(Gurmana),
],
- q(2673) => [
+ q(2670) => [
q(Kuku-Yalanji),
],
- q(2674) => [
+ q(2671) => [
q(Gaviao Do Jiparana),
],
- q(2675) => [
+ q(2672) => [
q(Para Gaviao),
],
- q(2676) => [
- q(Western Gurung),
+ q(2673) => [
+ q(Gurung),
],
- q(2677) => [
+ q(2674) => [
q(Gumawana),
],
- q(2678) => [
+ q(2675) => [
q(Guyani),
],
- q(2679) => [
+ q(2676) => [
q(Mbato),
],
- q(2680) => [
+ q(2677) => [
q(Gwa),
],
- q(2681) => [
+ q(2678) => [
q(Kalami),
],
- q(2682) => [
+ q(2679) => [
q(Gawwada),
],
- q(2683) => [
+ q(2680) => [
q(Gweno),
],
- q(2684) => [
+ q(2681) => [
q(Gowro),
],
- q(2685) => [
+ q(2682) => [
q(Moo),
],
- q(2686) => [
+ q(2683) => [
q(/Gwi),
q(Gwi),
],
- q(2687) => [
+ q(2684) => [
q(Awngthim),
],
- q(2688) => [
+ q(2685) => [
q(Gwandara),
],
- q(2689) => [
+ q(2686) => [
q(Gwere),
],
- q(2690) => [
+ q(2687) => [
q(Gawar-Bati),
],
- q(2691) => [
+ q(2688) => [
q(Guwamu),
],
- q(2692) => [
+ q(2689) => [
q(Kwini),
],
- q(2693) => [
+ q(2690) => [
q(Gua),
],
- q(2694) => [
+ q(2691) => [
q(We Southern),
],
- q(2695) => [
+ q(2692) => [
q(Northwest Gbaya),
],
- q(2696) => [
+ q(2693) => [
q(Garus),
],
- q(2697) => [
+ q(2694) => [
q(Kayardild),
],
- q(2698) => [
+ q(2695) => [
q(Gyem),
],
- q(2699) => [
+ q(2696) => [
q(Gungabula),
],
- q(2700) => [
+ q(2697) => [
q(Gbayi),
],
- q(2701) => [
+ q(2698) => [
q(Gyele),
],
- q(2702) => [
+ q(2699) => [
q(Gayil),
],
- q(2703) => [
+ q(2700) => [
q(Ngabere),
],
- q(2704) => [
+ q(2701) => [
q(Guyanese Creole English),
],
- q(2705) => [
+ q(2702) => [
q(Guarayu),
],
- q(2706) => [
+ q(2703) => [
q(Gunya),
],
- q(2707) => [
+ q(2704) => [
q(Ganza),
],
- q(2708) => [
+ q(2705) => [
q(Gazi),
],
- q(2709) => [
+ q(2706) => [
q(Gane),
],
- q(2710) => [
+ q(2707) => [
q(Han),
],
- q(2711) => [
+ q(2708) => [
q(Hanoi Sign Language),
],
- q(2712) => [
+ q(2709) => [
q(Gurani),
],
- q(2713) => [
+ q(2710) => [
q(Hatam),
],
- q(2714) => [
+ q(2711) => [
q(Eastern Oromo),
],
- q(2715) => [
+ q(2712) => [
q(Haiphong Sign Language),
],
- q(2716) => [
+ q(2713) => [
q(Hanga),
],
- q(2717) => [
+ q(2714) => [
q(Hahon),
],
- q(2718) => [
+ q(2715) => [
q(Hajong),
],
- q(2719) => [
+ q(2716) => [
q(Hakka Chinese),
],
- q(2720) => [
+ q(2717) => [
q(Halang),
],
- q(2721) => [
+ q(2718) => [
q(Hewa),
],
- q(2722) => [
+ q(2719) => [
q(Hangaza),
],
- q(2723) => [
+ q(2720) => [
q(Hako),
],
- q(2724) => [
+ q(2721) => [
q(Hupla),
],
- q(2725) => [
+ q(2722) => [
q(Ha),
],
- q(2726) => [
+ q(2723) => [
q(Harari),
],
- q(2727) => [
+ q(2724) => [
q(Haisla),
],
- q(2728) => [
+ q(2725) => [
q(Havu),
],
- q(2729) => [
+ q(2726) => [
q(Southern Haida),
],
- q(2730) => [
+ q(2727) => [
q(Haya),
],
- q(2731) => [
+ q(2728) => [
q(Hazaragi),
],
- q(2732) => [
+ q(2729) => [
q(Hamba),
],
- q(2733) => [
+ q(2730) => [
q(Huba),
],
- q(2734) => [
+ q(2731) => [
q(Heiban),
],
- q(2735) => [
+ q(2732) => [
q(Ancient Hebrew),
],
- q(2736) => [
+ q(2733) => [
q(Habu),
],
- q(2737) => [
+ q(2734) => [
q(Andaman Creole Hindi),
],
- q(2738) => [
+ q(2735) => [
q(Huichol),
],
- q(2739) => [
+ q(2736) => [
q(Northern Haida),
],
- q(2740) => [
+ q(2737) => [
q(Honduras Sign Language),
],
- q(2741) => [
+ q(2738) => [
q(Hadiyya),
],
- q(2742) => [
+ q(2739) => [
q(Northern Qiandong Miao),
],
- q(2743) => [
+ q(2740) => [
q(Herde),
],
- q(2744) => [
+ q(2741) => [
q(Helong),
],
- q(2745) => [
+ q(2742) => [
q(Hehe),
],
- q(2746) => [
+ q(2743) => [
q(Heiltsuk),
],
- q(2747) => [
+ q(2744) => [
q(Hemba),
],
- q(2748) => [
+ q(2745) => [
q(Hai//om),
q(Haiom),
],
- q(2749) => [
+ q(2746) => [
q(Haigwai),
],
- q(2750) => [
+ q(2747) => [
q(Hoia Hoia),
],
- q(2751) => [
+ q(2748) => [
q(Kerak),
],
- q(2752) => [
+ q(2749) => [
q(Hoyahoya),
],
- q(2753) => [
+ q(2750) => [
q(Lamang),
],
- q(2754) => [
+ q(2751) => [
q(Hibito),
],
- q(2755) => [
+ q(2752) => [
q(Hidatsa),
],
- q(2756) => [
+ q(2753) => [
q(Fiji Hindi),
],
- q(2757) => [
+ q(2754) => [
q(Kamwe),
],
- q(2758) => [
+ q(2755) => [
q(Pamosu),
],
- q(2759) => [
+ q(2756) => [
q(Hinduri),
],
- q(2760) => [
+ q(2757) => [
q(Hijuk),
],
- q(2761) => [
+ q(2758) => [
q(Seit-Kaitetu),
],
- q(2762) => [
+ q(2759) => [
q(Tsoa),
],
- q(2763) => [
+ q(2760) => [
q(Himarima),
],
- q(2764) => [
+ q(2761) => [
q(Hiw),
],
- q(2765) => [
+ q(2762) => [
q(Hixkaryana),
],
- q(2766) => [
+ q(2763) => [
q(Haji),
],
- q(2767) => [
+ q(2764) => [
q(Kahe),
],
- q(2768) => [
+ q(2765) => [
q(Hunde),
],
- q(2769) => [
+ q(2766) => [
q(Hunjara-Kaina Ke),
],
- q(2770) => [
+ q(2767) => [
q(Hong Kong Sign Language),
q(Heung Kong Sau Yue),
],
- q(2771) => [
+ q(2768) => [
q(Halia),
],
- q(2772) => [
+ q(2769) => [
q(Halbi),
],
- q(2773) => [
+ q(2770) => [
q(Halang Doan),
],
- q(2774) => [
+ q(2771) => [
q(Hlersu),
],
- q(2775) => [
+ q(2772) => [
q(Matu Chin),
],
- q(2776) => [
+ q(2773) => [
q(Hieroglyphic Luwian),
],
- q(2777) => [
+ q(2774) => [
q(Southern Mashan Hmong),
q(Southern Mashan Miao),
],
- q(2778) => [
+ q(2775) => [
q(Humburi Senni Songhay),
],
- q(2779) => [
+ q(2776) => [
q(Central Huishui Hmong),
q(Central Huishui Miao),
],
- q(2780) => [
+ q(2777) => [
q(Large Flowery Miao),
q(A-hmaos),
q(Da-Hua Miao),
],
- q(2781) => [
+ q(2778) => [
q(Eastern Huishui Hmong),
q(Eastern Huishui Miao),
],
- q(2782) => [
+ q(2779) => [
q(Hmong Don),
],
- q(2783) => [
+ q(2780) => [
q(Southwestern Guiyang Hmong),
],
- q(2784) => [
+ q(2781) => [
q(Southwestern Huishui Hmong),
q(Southwestern Huishui Miao),
],
- q(2785) => [
+ q(2782) => [
q(Northern Huishui Hmong),
q(Northern Huishui Miao),
],
- q(2786) => [
+ q(2783) => [
q(Ge),
q(Gejia),
],
- q(2787) => [
+ q(2784) => [
q(Maek),
],
- q(2788) => [
+ q(2785) => [
q(Luopohe Hmong),
q(Luopohe Miao),
],
- q(2789) => [
+ q(2786) => [
q(Central Mashan Hmong),
q(Central Mashan Miao),
],
- q(2790) => [
+ q(2787) => [
q(Northern Mashan Hmong),
q(Northern Mashan Miao),
],
- q(2791) => [
+ q(2788) => [
q(Eastern Qiandong Miao),
],
- q(2792) => [
+ q(2789) => [
q(Hmar),
],
- q(2793) => [
+ q(2790) => [
q(Southern Qiandong Miao),
],
- q(2794) => [
+ q(2791) => [
q(Hamtai),
],
- q(2795) => [
+ q(2792) => [
q(Hamap),
],
- q(2796) => [
+ q(2793) => [
q(Hmong Do),
],
- q(2797) => [
+ q(2794) => [
q(Western Mashan Hmong),
q(Western Mashan Miao),
],
- q(2798) => [
+ q(2795) => [
q(Southern Guiyang Hmong),
q(Southern Guiyang Miao),
],
- q(2799) => [
+ q(2796) => [
q(Hmong Shua),
q(Sinicized Miao),
],
- q(2800) => [
+ q(2797) => [
q(Mina (Cameroon)),
],
- q(2801) => [
+ q(2798) => [
q(Southern Hindko),
],
- q(2802) => [
+ q(2799) => [
q(Chhattisgarhi),
],
- q(2803) => [
+ q(2800) => [
q(//Ani),
q(Ani),
],
- q(2804) => [
+ q(2801) => [
q(Hani),
],
- q(2805) => [
+ q(2802) => [
q(Hmong Njua),
q(Mong Leng),
q(Mong Njua),
],
- q(2806) => [
+ q(2803) => [
q(Hanunoo),
],
- q(2807) => [
+ q(2804) => [
q(Northern Hindko),
],
- q(2808) => [
+ q(2805) => [
q(Caribbean Hindustani),
],
- q(2809) => [
+ q(2806) => [
q(Hung),
],
- q(2810) => [
+ q(2807) => [
q(Hoava),
],
- q(2811) => [
+ q(2808) => [
q(Mari (Madang Province)),
],
- q(2812) => [
+ q(2809) => [
q(Ho),
],
- q(2813) => [
+ q(2810) => [
q(Holma),
],
- q(2814) => [
+ q(2811) => [
q(Horom),
],
- q(2815) => [
+ q(2812) => [
q(Hobyot),
],
- q(2816) => [
+ q(2813) => [
q(Holikachuk),
],
- q(2817) => [
+ q(2814) => [
q(Hadothi),
q(Haroti),
],
- q(2818) => [
+ q(2815) => [
q(Holu),
],
- q(2819) => [
+ q(2816) => [
q(Homa),
],
- q(2820) => [
+ q(2817) => [
q(Holoholo),
],
- q(2821) => [
+ q(2818) => [
q(Hopi),
],
- q(2822) => [
+ q(2819) => [
q(Horo),
],
- q(2823) => [
+ q(2820) => [
q(Ho Chi Minh City Sign Language),
],
- q(2824) => [
+ q(2821) => [
q(Hote),
q(Male),
],
- q(2825) => [
+ q(2822) => [
q(Hovongan),
],
- q(2826) => [
+ q(2823) => [
q(Honi),
],
- q(2827) => [
+ q(2824) => [
q(Holiya),
],
- q(2828) => [
+ q(2825) => [
q(Hozo),
],
- q(2829) => [
+ q(2826) => [
q(Hpon),
],
- q(2830) => [
+ q(2827) => [
q(Hawai'i Sign Language (HSL)),
q(Hawai'i Pidgin Sign Language),
],
- q(2831) => [
+ q(2828) => [
q(Hrangkhol),
],
- q(2832) => [
+ q(2829) => [
q(Niwer Mil),
],
- q(2833) => [
+ q(2830) => [
q(Hre),
],
- q(2834) => [
+ q(2831) => [
q(Haruku),
],
- q(2835) => [
+ q(2832) => [
q(Horned Miao),
],
- q(2836) => [
+ q(2833) => [
q(Haroi),
],
- q(2837) => [
+ q(2834) => [
q(Nhirrpi),
],
- q(2838) => [
+ q(2835) => [
q(Hertevin),
],
- q(2839) => [
+ q(2836) => [
q(Hruso),
],
- q(2840) => [
+ q(2837) => [
q(Warwar Feni),
],
- q(2841) => [
+ q(2838) => [
q(Hunsrik),
],
- q(2842) => [
+ q(2839) => [
q(Harzani),
],
- q(2843) => [
+ q(2840) => [
q(Hungarian Sign Language),
],
- q(2844) => [
+ q(2841) => [
q(Hausa Sign Language),
],
- q(2845) => [
+ q(2842) => [
q(Xiang Chinese),
],
- q(2846) => [
+ q(2843) => [
q(Harsusi),
],
- q(2847) => [
+ q(2844) => [
q(Hoti),
],
- q(2848) => [
+ q(2845) => [
q(Minica Huitoto),
],
- q(2849) => [
+ q(2846) => [
q(Hadza),
],
- q(2850) => [
+ q(2847) => [
q(Hitu),
],
- q(2851) => [
+ q(2848) => [
q(Middle Hittite),
],
- q(2852) => [
+ q(2849) => [
q(Huambisa),
],
- q(2853) => [
+ q(2850) => [
q(=/Hua),
q(Hua),
],
- q(2854) => [
+ q(2851) => [
q(Huaulu),
],
- q(2855) => [
+ q(2852) => [
q(San Francisco Del Mar Huave),
],
- q(2856) => [
+ q(2853) => [
q(Humene),
],
- q(2857) => [
+ q(2854) => [
q(Huachipaeri),
],
- q(2858) => [
+ q(2855) => [
q(Huilliche),
],
- q(2859) => [
+ q(2856) => [
q(Huli),
],
- q(2860) => [
+ q(2857) => [
q(Northern Guiyang Hmong),
q(Northern Guiyang Miao),
],
- q(2861) => [
+ q(2858) => [
q(Hulung),
],
- q(2862) => [
+ q(2859) => [
q(Hula),
],
- q(2863) => [
+ q(2860) => [
q(Hungana),
],
- q(2864) => [
+ q(2861) => [
q(Hu),
],
- q(2865) => [
+ q(2862) => [
q(Tsat),
],
- q(2866) => [
+ q(2863) => [
q(Halkomelem),
],
- q(2867) => [
+ q(2864) => [
q(Huastec),
],
- q(2868) => [
+ q(2865) => [
q(Humla),
],
- q(2869) => [
+ q(2866) => [
q(Murui Huitoto),
],
- q(2870) => [
+ q(2867) => [
q(San Mateo Del Mar Huave),
],
- q(2871) => [
+ q(2868) => [
q(Hukumina),
],
- q(2872) => [
+ q(2869) => [
q(Nupode Huitoto),
],
- q(2873) => [
+ q(2870) => [
q(Hulaula),
],
- q(2874) => [
+ q(2871) => [
q(Hunzib),
],
- q(2875) => [
+ q(2872) => [
q(Haitian Vodoun Culture Language),
],
- q(2876) => [
+ q(2873) => [
q(San Dionisio Del Mar Huave),
],
- q(2877) => [
+ q(2874) => [
q(Haveke),
],
- q(2878) => [
+ q(2875) => [
q(Sabu),
],
- q(2879) => [
+ q(2876) => [
q(Santa Maria Del Mar Huave),
],
- q(2880) => [
+ q(2877) => [
q(Wane),
],
- q(2881) => [
+ q(2878) => [
q(Hawai'i Creole English),
q(Hawai'i Pidgin),
],
- q(2882) => [
+ q(2879) => [
q(Hwana),
],
- q(2883) => [
+ q(2880) => [
q(Hya),
],
- q(2884) => [
+ q(2881) => [
q(Iaai),
],
- q(2885) => [
+ q(2882) => [
q(Iatmul),
],
- q(2886) => [
- q(Iapama),
- ],
- q(2887) => [
+ q(2883) => [
q(Purari),
],
- q(2888) => [
+ q(2884) => [
q(Ibibio),
],
- q(2889) => [
+ q(2885) => [
q(Iwaidja),
],
- q(2890) => [
+ q(2886) => [
q(Akpes),
],
- q(2891) => [
+ q(2887) => [
q(Ibanag),
],
- q(2892) => [
+ q(2888) => [
+ q(Bih),
+ ],
+ q(2889) => [
q(Ibaloi),
],
- q(2893) => [
+ q(2890) => [
q(Agoi),
],
- q(2894) => [
+ q(2891) => [
q(Ibino),
],
- q(2895) => [
+ q(2892) => [
q(Ibuoro),
],
- q(2896) => [
+ q(2893) => [
q(Ibu),
],
- q(2897) => [
+ q(2894) => [
q(Ibani),
],
- q(2898) => [
+ q(2895) => [
q(Ede Ica),
],
- q(2899) => [
+ q(2896) => [
q(Etkywan),
],
- q(2900) => [
+ q(2897) => [
q(Icelandic Sign Language),
],
- q(2901) => [
+ q(2898) => [
q(Islander Creole English),
],
- q(2902) => [
+ q(2899) => [
q(Idakho-Isukha-Tiriki),
q(Luidakho-Luisukha-Lutirichi),
],
- q(2903) => [
+ q(2900) => [
q(Indo-Portuguese),
],
- q(2904) => [
+ q(2901) => [
q(Idon),
q(Ajiya),
],
- q(2905) => [
+ q(2902) => [
q(Ede Idaca),
],
- q(2906) => [
+ q(2903) => [
q(Idere),
],
- q(2907) => [
+ q(2904) => [
q(Idi),
],
- q(2908) => [
+ q(2905) => [
q(Indri),
],
- q(2909) => [
+ q(2906) => [
q(Idesa),
],
- q(2910) => [
+ q(2907) => [
q(Idate),
],
- q(2911) => [
+ q(2908) => [
q(Idoma),
],
- q(2912) => [
+ q(2909) => [
q(Amganad Ifugao),
],
- q(2913) => [
+ q(2910) => [
q(Batad Ifugao),
q(Ayangan Ifugao),
],
- q(2914) => [
+ q(2911) => [
q(Ife),
],
- q(2915) => [
+ q(2912) => [
q(Ifo),
],
- q(2916) => [
+ q(2913) => [
q(Tuwali Ifugao),
],
- q(2917) => [
+ q(2914) => [
q(Teke-Fuumu),
],
- q(2918) => [
+ q(2915) => [
q(Mayoyao Ifugao),
],
- q(2919) => [
+ q(2916) => [
q(Keley-I Kallahan),
],
- q(2920) => [
+ q(2917) => [
q(Ebira),
],
- q(2921) => [
+ q(2918) => [
q(Igede),
],
- q(2922) => [
+ q(2919) => [
q(Igana),
],
- q(2923) => [
+ q(2920) => [
q(Igala),
],
- q(2924) => [
+ q(2921) => [
q(Kanggape),
],
- q(2925) => [
+ q(2922) => [
q(Ignaciano),
],
- q(2926) => [
+ q(2923) => [
q(Isebe),
],
- q(2927) => [
+ q(2924) => [
q(Interglossa),
],
- q(2928) => [
+ q(2925) => [
q(Igwe),
],
- q(2929) => [
+ q(2926) => [
q(Iha Based Pidgin),
],
- q(2930) => [
+ q(2927) => [
q(Ihievbe),
],
- q(2931) => [
+ q(2928) => [
q(Iha),
],
- q(2932) => [
+ q(2929) => [
q(Bidhawal),
],
- q(2933) => [
+ q(2930) => [
q(Thiin),
],
- q(2934) => [
+ q(2931) => [
q(Izon),
],
- q(2935) => [
+ q(2932) => [
q(Biseni),
],
- q(2936) => [
+ q(2933) => [
q(Ede Ije),
],
- q(2937) => [
+ q(2934) => [
q(Kalabari),
],
- q(2938) => [
+ q(2935) => [
q(Southeast Ijo),
],
- q(2939) => [
+ q(2936) => [
q(Eastern Canadian Inuktitut),
],
- q(2940) => [
+ q(2937) => [
q(Iko),
],
- q(2941) => [
+ q(2938) => [
q(Ika),
],
- q(2942) => [
+ q(2939) => [
q(Ikulu),
],
- q(2943) => [
+ q(2940) => [
q(Olulumo-Ikom),
],
- q(2944) => [
+ q(2941) => [
q(Ikpeshi),
],
- q(2945) => [
+ q(2942) => [
q(Ikaranggal),
],
- q(2946) => [
+ q(2943) => [
q(Inuit Sign Language),
],
- q(2947) => [
+ q(2944) => [
q(Inuinnaqtun),
q(Western Canadian Inuktitut),
],
- q(2948) => [
+ q(2945) => [
q(Iku-Gora-Ankwa),
],
- q(2949) => [
+ q(2946) => [
q(Ikwere),
],
- q(2950) => [
+ q(2947) => [
q(Ik),
],
- q(2951) => [
+ q(2948) => [
q(Ikizu),
],
- q(2952) => [
+ q(2949) => [
q(Ile Ape),
],
- q(2953) => [
+ q(2950) => [
q(Ila),
],
- q(2954) => [
+ q(2951) => [
q(Garig-Ilgar),
],
- q(2955) => [
+ q(2952) => [
q(Ili Turki),
],
- q(2956) => [
+ q(2953) => [
q(Ilongot),
],
- q(2957) => [
- q(Iranun),
+ q(2954) => [
+ q(Iranun (Malaysia)),
],
- q(2958) => [
+ q(2955) => [
+ q(Iranun (Philippines)),
+ ],
+ q(2956) => [
q(International Sign),
],
- q(2959) => [
+ q(2957) => [
q(Ili'uun),
],
- q(2960) => [
+ q(2958) => [
q(Ilue),
],
- q(2961) => [
+ q(2959) => [
q(Mala Malasar),
],
- q(2962) => [
+ q(2960) => [
q(Anamgura),
],
- q(2963) => [
+ q(2961) => [
q(Miluk),
],
- q(2964) => [
+ q(2962) => [
q(Imonda),
],
- q(2965) => [
+ q(2963) => [
q(Imbongu),
],
- q(2966) => [
+ q(2964) => [
q(Imroing),
],
- q(2967) => [
+ q(2965) => [
q(Marsian),
],
- q(2968) => [
+ q(2966) => [
q(Milyan),
],
- q(2969) => [
+ q(2967) => [
q(Inga),
],
- q(2970) => [
+ q(2968) => [
q(Degexit'an),
],
- q(2971) => [
+ q(2969) => [
q(Jungle Inga),
],
- q(2972) => [
+ q(2970) => [
q(Indonesian Sign Language),
],
- q(2973) => [
+ q(2971) => [
q(Minaean),
],
- q(2974) => [
+ q(2972) => [
q(Isinai),
],
- q(2975) => [
+ q(2973) => [
q(Inoke-Yate),
],
- q(2976) => [
+ q(2974) => [
q(Inapari),
],
- q(2977) => [
+ q(2975) => [
q(Indian Sign Language),
],
- q(2978) => [
+ q(2976) => [
q(Intha),
],
- q(2979) => [
+ q(2977) => [
q(Ineseno),
],
- q(2980) => [
+ q(2978) => [
q(Inor),
],
- q(2981) => [
+ q(2979) => [
q(Tuma-Irumu),
],
- q(2982) => [
+ q(2980) => [
q(Iowa-Oto),
],
- q(2983) => [
+ q(2981) => [
q(Ipili),
],
- q(2984) => [
+ q(2982) => [
q(Ipiko),
],
- q(2985) => [
+ q(2983) => [
q(Iquito),
],
- q(2986) => [
+ q(2984) => [
q(Ikwo),
],
- q(2987) => [
+ q(2985) => [
q(Iresim),
],
- q(2988) => [
+ q(2986) => [
q(Irarutu),
],
- q(2989) => [
+ q(2987) => [
q(Irigwe),
],
- q(2990) => [
+ q(2988) => [
q(Iraqw),
],
- q(2991) => [
+ q(2989) => [
q(Irantxe),
],
- q(2992) => [
+ q(2990) => [
q(Ir),
],
- q(2993) => [
+ q(2991) => [
q(Irula),
],
- q(2994) => [
+ q(2992) => [
q(Kamberau),
],
- q(2995) => [
+ q(2993) => [
q(Iraya),
],
- q(2996) => [
+ q(2994) => [
q(Isabi),
],
- q(2997) => [
+ q(2995) => [
q(Isconahua),
],
- q(2998) => [
+ q(2996) => [
q(Isnag),
],
- q(2999) => [
+ q(2997) => [
q(Italian Sign Language),
],
- q(3000) => [
+ q(2998) => [
q(Irish Sign Language),
],
- q(3001) => [
+ q(2999) => [
q(Esan),
],
- q(3002) => [
+ q(3000) => [
q(Nkem-Nkum),
],
- q(3003) => [
+ q(3001) => [
q(Ishkashimi),
],
- q(3004) => [
+ q(3002) => [
q(Masimasi),
],
- q(3005) => [
+ q(3003) => [
q(Isanzu),
],
- q(3006) => [
+ q(3004) => [
q(Isoko),
],
- q(3007) => [
+ q(3005) => [
q(Israeli Sign Language),
],
- q(3008) => [
+ q(3006) => [
q(Istriot),
],
- q(3009) => [
+ q(3007) => [
q(Isu (Menchum Division)),
],
- q(3010) => [
+ q(3008) => [
q(Binongan Itneg),
],
- q(3011) => [
+ q(3009) => [
+ q(Southern Tidung),
+ ],
+ q(3010) => [
q(Itene),
],
- q(3012) => [
+ q(3011) => [
q(Inlaod Itneg),
],
- q(3013) => [
+ q(3012) => [
q(Judeo-Italian),
],
- q(3014) => [
+ q(3013) => [
q(Itelmen),
],
- q(3015) => [
+ q(3014) => [
q(Itu Mbon Uzo),
],
- q(3016) => [
+ q(3015) => [
q(Itonama),
],
- q(3017) => [
+ q(3016) => [
q(Iteri),
],
- q(3018) => [
+ q(3017) => [
q(Isekiri),
],
- q(3019) => [
+ q(3018) => [
q(Maeng Itneg),
],
- q(3020) => [
+ q(3019) => [
q(Itawit),
],
- q(3021) => [
+ q(3020) => [
q(Ito),
],
- q(3022) => [
+ q(3021) => [
q(Itik),
],
- q(3023) => [
+ q(3022) => [
q(Moyadan Itneg),
],
- q(3024) => [
+ q(3023) => [
q(Itza),
],
- q(3025) => [
+ q(3024) => [
q(Iu Mien),
],
- q(3026) => [
+ q(3025) => [
q(Ibatan),
],
- q(3027) => [
+ q(3026) => [
q(Ivatan),
],
- q(3028) => [
+ q(3027) => [
q(I-Wak),
],
- q(3029) => [
+ q(3028) => [
q(Iwam),
],
- q(3030) => [
+ q(3029) => [
q(Iwur),
],
- q(3031) => [
+ q(3030) => [
q(Sepik Iwam),
],
- q(3032) => [
+ q(3031) => [
q(Ixcatec),
],
- q(3033) => [
+ q(3032) => [
q(Ixil),
],
- q(3034) => [
+ q(3033) => [
q(Iyayu),
],
- q(3035) => [
+ q(3034) => [
q(Mesaka),
],
- q(3036) => [
+ q(3035) => [
q(Yaka (Congo)),
],
- q(3037) => [
+ q(3036) => [
q(Ingrian),
],
- q(3038) => [
+ q(3037) => [
q(Izere),
],
- q(3039) => [
+ q(3038) => [
q(Izii),
],
- q(3040) => [
+ q(3039) => [
q(Jamamadi),
],
- q(3041) => [
+ q(3040) => [
q(Hyam),
],
- q(3042) => [
+ q(3041) => [
q(Popti'),
q(Jakalteko),
],
- q(3043) => [
+ q(3042) => [
q(Jahanka),
],
- q(3044) => [
+ q(3043) => [
q(Yabem),
],
- q(3045) => [
+ q(3044) => [
q(Jara),
],
- q(3046) => [
+ q(3045) => [
q(Jah Hut),
],
- q(3047) => [
+ q(3046) => [
q(Zazao),
],
- q(3048) => [
+ q(3047) => [
q(Jakun),
],
- q(3049) => [
+ q(3048) => [
q(Yalahatan),
],
- q(3050) => [
+ q(3049) => [
q(Jamaican Creole English),
],
- q(3051) => [
+ q(3050) => [
q(Jandai),
],
- q(3052) => [
+ q(3051) => [
q(Yanyuwa),
],
- q(3053) => [
+ q(3052) => [
q(Yaqay),
],
- q(3054) => [
+ q(3053) => [
q(New Caledonian Javanese),
],
- q(3055) => [
+ q(3054) => [
q(Jakati),
],
- q(3056) => [
+ q(3055) => [
q(Yaur),
],
- q(3057) => [
+ q(3056) => [
q(Jambi Malay),
],
- q(3058) => [
+ q(3057) => [
q(Yan-nhangu),
],
- q(3059) => [
+ q(3058) => [
q(Jawe),
],
- q(3060) => [
+ q(3059) => [
q(Judeo-Berber),
],
- q(3061) => [
+ q(3060) => [
q(Badjiri),
],
- q(3062) => [
+ q(3061) => [
q(Arandai),
],
- q(3063) => [
+ q(3062) => [
q(Barikewa),
],
- q(3064) => [
+ q(3063) => [
q(Nafusi),
],
- q(3065) => [
+ q(3064) => [
q(Jofotek-Bromnya),
],
- q(3066) => [
+ q(3065) => [
q(Jabuti),
],
- q(3067) => [
+ q(3066) => [
q(Jukun Takum),
],
- q(3068) => [
+ q(3067) => [
q(Yawijibaya),
],
- q(3069) => [
+ q(3068) => [
q(Jamaican Country Sign Language),
],
- q(3070) => [
+ q(3069) => [
q(Krymchak),
],
- q(3071) => [
+ q(3070) => [
q(Jad),
],
- q(3072) => [
+ q(3071) => [
q(Jadgali),
],
- q(3073) => [
+ q(3072) => [
q(Judeo-Tat),
],
- q(3074) => [
+ q(3073) => [
q(Jebero),
],
- q(3075) => [
+ q(3074) => [
q(Jerung),
],
- q(3076) => [
- q(Jeng),
- ],
- q(3077) => [
+ q(3075) => [
q(Jeh),
],
- q(3078) => [
+ q(3076) => [
q(Yei),
],
- q(3079) => [
+ q(3077) => [
q(Jeri Kuo),
],
- q(3080) => [
+ q(3078) => [
q(Yelmek),
],
- q(3081) => [
+ q(3079) => [
q(Dza),
],
- q(3082) => [
+ q(3080) => [
q(Jere),
],
- q(3083) => [
+ q(3081) => [
q(Manem),
],
- q(3084) => [
+ q(3082) => [
q(Jonkor Bourmataguil),
],
- q(3085) => [
+ q(3083) => [
q(Ngbee),
],
- q(3086) => [
+ q(3084) => [
q(Judeo-Georgian),
],
- q(3087) => [
+ q(3085) => [
q(Gwak),
],
- q(3088) => [
+ q(3086) => [
q(Ngomba),
],
- q(3089) => [
+ q(3087) => [
q(Jehai),
],
- q(3090) => [
+ q(3088) => [
q(Jhankot Sign Language),
],
- q(3091) => [
+ q(3089) => [
q(Jina),
],
- q(3092) => [
+ q(3090) => [
q(Jibu),
],
- q(3093) => [
+ q(3091) => [
q(Tol),
],
- q(3094) => [
+ q(3092) => [
q(Bu),
],
- q(3095) => [
+ q(3093) => [
q(Jilbe),
],
- q(3096) => [
+ q(3094) => [
q(Djingili),
],
- q(3097) => [
+ q(3095) => [
q(sTodsde),
q(Shangzhai),
],
- q(3098) => [
+ q(3096) => [
q(Jiiddu),
],
- q(3099) => [
+ q(3097) => [
q(Jilim),
],
- q(3100) => [
+ q(3098) => [
q(Jimi (Cameroon)),
],
- q(3101) => [
+ q(3099) => [
q(Jiamao),
],
- q(3102) => [
+ q(3100) => [
q(Guanyinqiao),
q(Lavrung),
],
- q(3103) => [
+ q(3101) => [
q(Jita),
],
- q(3104) => [
+ q(3102) => [
q(Youle Jinuo),
],
- q(3105) => [
+ q(3103) => [
q(Shuar),
],
- q(3106) => [
+ q(3104) => [
q(Buyuan Jinuo),
],
- q(3107) => [
+ q(3105) => [
q(Jejueo),
],
- q(3108) => [
+ q(3106) => [
q(Bankal),
],
- q(3109) => [
+ q(3107) => [
+ q(Kaera),
+ ],
+ q(3108) => [
q(Mobwa Karen),
],
- q(3110) => [
+ q(3109) => [
q(Kubo),
],
- q(3111) => [
+ q(3110) => [
q(Paku Karen),
],
- q(3112) => [
+ q(3111) => [
q(Koro (India)),
],
- q(3113) => [
+ q(3112) => [
q(Labir),
],
- q(3114) => [
+ q(3113) => [
q(Ngile),
],
- q(3115) => [
+ q(3114) => [
q(Jamaican Sign Language),
],
- q(3116) => [
+ q(3115) => [
q(Dima),
],
- q(3117) => [
+ q(3116) => [
q(Zumbun),
],
- q(3118) => [
+ q(3117) => [
q(Machame),
],
- q(3119) => [
+ q(3118) => [
q(Yamdena),
],
- q(3120) => [
+ q(3119) => [
q(Jimi (Nigeria)),
],
- q(3121) => [
+ q(3120) => [
q(Jumli),
],
- q(3122) => [
+ q(3121) => [
q(Makuri Naga),
],
- q(3123) => [
+ q(3122) => [
q(Kamara),
],
- q(3124) => [
+ q(3123) => [
q(Mashi (Nigeria)),
],
- q(3125) => [
+ q(3124) => [
q(Mouwase),
],
- q(3126) => [
+ q(3125) => [
q(Western Juxtlahuaca Mixtec),
],
- q(3127) => [
+ q(3126) => [
q(Jangshung),
],
- q(3128) => [
+ q(3127) => [
q(Jandavra),
],
- q(3129) => [
+ q(3128) => [
q(Yangman),
],
- q(3130) => [
+ q(3129) => [
q(Janji),
],
- q(3131) => [
+ q(3130) => [
q(Yemsa),
],
- q(3132) => [
+ q(3131) => [
q(Rawat),
],
- q(3133) => [
+ q(3132) => [
q(Jaunsari),
],
- q(3134) => [
+ q(3133) => [
q(Joba),
],
- q(3135) => [
+ q(3134) => [
q(Wojenaka),
],
- q(3136) => [
+ q(3135) => [
q(Jogi),
],
- q(3137) => [
+ q(3136) => [
q(Jora),
],
- q(3138) => [
+ q(3137) => [
q(Jordanian Sign Language),
],
- q(3139) => [
+ q(3138) => [
q(Jowulu),
],
- q(3140) => [
+ q(3139) => [
q(Jewish Palestinian Aramaic),
],
- q(3141) => [
+ q(3140) => [
q(Jaqaru),
],
- q(3142) => [
+ q(3141) => [
q(Jarai),
],
- q(3143) => [
+ q(3142) => [
q(Jiru),
],
- q(3144) => [
+ q(3143) => [
q(Jorto),
],
- q(3145) => [
+ q(3144) => [
q(Japreria),
],
- q(3146) => [
+ q(3145) => [
q(Japanese Sign Language),
],
- q(3147) => [
+ q(3146) => [
q(Juma),
],
- q(3148) => [
+ q(3147) => [
q(Wannu),
],
- q(3149) => [
+ q(3148) => [
q(Jurchen),
],
- q(3150) => [
+ q(3149) => [
q(Worodougou),
],
- q(3151) => [
+ q(3150) => [
q(Hone),
],
- q(3152) => [
+ q(3151) => [
q(Ngadjuri),
],
- q(3153) => [
+ q(3152) => [
q(Wapan),
],
- q(3154) => [
+ q(3153) => [
q(Jirel),
],
- q(3155) => [
+ q(3154) => [
q(Jumjum),
],
- q(3156) => [
+ q(3155) => [
q(Juang),
],
- q(3157) => [
+ q(3156) => [
q(Jiba),
],
- q(3158) => [
+ q(3157) => [
q(Hupde),
],
- q(3159) => [
+ q(3158) => [
q(Juruna),
],
- q(3160) => [
+ q(3159) => [
q(Jumla Sign Language),
],
- q(3161) => [
+ q(3160) => [
q(Jutish),
],
- q(3162) => [
+ q(3161) => [
q(Ju),
],
- q(3163) => [
+ q(3162) => [
q(Wapha),
],
- q(3164) => [
+ q(3163) => [
q(Juray),
],
- q(3165) => [
+ q(3164) => [
q(Javindo),
],
- q(3166) => [
+ q(3165) => [
q(Caribbean Javanese),
],
- q(3167) => [
+ q(3166) => [
q(Jwira-Pepesa),
],
- q(3168) => [
+ q(3167) => [
q(Jiarong),
],
- q(3169) => [
+ q(3168) => [
q(Judeo-Yemeni Arabic),
],
- q(3170) => [
+ q(3169) => [
q(Jaya),
],
- q(3171) => [
+ q(3170) => [
q(Adara),
],
- q(3172) => [
+ q(3171) => [
q(Ketangalan),
],
- q(3173) => [
+ q(3172) => [
q(Katso),
],
- q(3174) => [
+ q(3173) => [
q(Kajaman),
],
- q(3175) => [
+ q(3174) => [
q(Kara (Central African Republic)),
],
- q(3176) => [
+ q(3175) => [
q(Karekare),
],
- q(3177) => [
+ q(3176) => [
q(Jju),
],
- q(3178) => [
+ q(3177) => [
+ q(Kalanguya),
q(Kayapa Kallahan),
],
- q(3179) => [
+ q(3178) => [
q(Xaasongaxango),
],
- q(3180) => [
+ q(3179) => [
q(Bezhta),
],
- q(3181) => [
+ q(3180) => [
q(Capanahua),
],
- q(3182) => [
+ q(3181) => [
q(Katukina),
],
- q(3183) => [
+ q(3182) => [
q(Kao),
],
- q(3184) => [
+ q(3183) => [
q(Kamayura),
],
- q(3185) => [
+ q(3184) => [
q(Kalarko),
],
- q(3186) => [
+ q(3185) => [
q(Kaxuiana),
],
- q(3187) => [
+ q(3186) => [
q(Kadiweu),
],
- q(3188) => [
+ q(3187) => [
q(Kanju),
],
- q(3189) => [
+ q(3188) => [
q(Khamba),
],
- q(3190) => [
+ q(3189) => [
q(Camsa),
],
- q(3191) => [
+ q(3190) => [
q(Kaptiau),
],
- q(3192) => [
+ q(3191) => [
q(Kari),
],
- q(3193) => [
+ q(3192) => [
q(Grass Koiari),
],
- q(3194) => [
+ q(3193) => [
q(Kanembu),
],
- q(3195) => [
+ q(3194) => [
q(Iwal),
],
- q(3196) => [
+ q(3195) => [
q(Kare (Central African Republic)),
],
- q(3197) => [
+ q(3196) => [
q(Keliko),
],
- q(3198) => [
+ q(3197) => [
q(Kabiye),
],
- q(3199) => [
+ q(3198) => [
q(Kamano),
],
- q(3200) => [
+ q(3199) => [
q(Kafa),
],
- q(3201) => [
+ q(3200) => [
q(Kande),
],
- q(3202) => [
+ q(3201) => [
q(Abadi),
],
- q(3203) => [
+ q(3202) => [
q(Kabutra),
],
- q(3204) => [
+ q(3203) => [
q(Dera (Indonesia)),
],
- q(3205) => [
+ q(3204) => [
q(Kaiep),
],
- q(3206) => [
+ q(3205) => [
q(Ap Ma),
],
- q(3207) => [
+ q(3206) => [
q(Manga Kanuri),
],
- q(3208) => [
+ q(3207) => [
q(Duhwa),
],
- q(3209) => [
+ q(3208) => [
q(Khanty),
],
- q(3210) => [
+ q(3209) => [
q(Kawacha),
],
- q(3211) => [
+ q(3210) => [
q(Lubila),
],
- q(3212) => [
+ q(3211) => [
q(Ngkalmpw Kanum),
],
- q(3213) => [
+ q(3212) => [
q(Kaivi),
],
- q(3214) => [
+ q(3213) => [
q(Ukaan),
],
- q(3215) => [
+ q(3214) => [
q(Tyap),
],
- q(3216) => [
+ q(3215) => [
q(Vono),
],
- q(3217) => [
+ q(3216) => [
q(Kamantan),
],
- q(3218) => [
+ q(3217) => [
q(Kobiana),
],
- q(3219) => [
+ q(3218) => [
q(Kalanga),
],
- q(3220) => [
+ q(3219) => [
q(Kela (Papua New Guinea)),
q(Kala),
],
- q(3221) => [
+ q(3220) => [
q(Gula (Central African Republic)),
],
- q(3222) => [
+ q(3221) => [
q(Nubi),
],
- q(3223) => [
+ q(3222) => [
q(Kinalakna),
],
- q(3224) => [
+ q(3223) => [
q(Kanga),
],
- q(3225) => [
+ q(3224) => [
q(Kamo),
],
- q(3226) => [
+ q(3225) => [
q(Katla),
],
- q(3227) => [
+ q(3226) => [
q(Koenoem),
],
- q(3228) => [
+ q(3227) => [
q(Kaian),
],
- q(3229) => [
+ q(3228) => [
q(Kami (Tanzania)),
],
- q(3230) => [
+ q(3229) => [
q(Kete),
],
- q(3231) => [
+ q(3230) => [
q(Kabwari),
],
- q(3232) => [
+ q(3231) => [
q(Kachama-Ganjule),
],
- q(3233) => [
+ q(3232) => [
q(Korandje),
],
- q(3234) => [
+ q(3233) => [
q(Konongo),
],
- q(3235) => [
+ q(3234) => [
q(Worimi),
],
- q(3236) => [
+ q(3235) => [
q(Kutu),
],
- q(3237) => [
+ q(3236) => [
q(Yankunytjatjara),
],
- q(3238) => [
+ q(3237) => [
q(Makonde),
],
- q(3239) => [
+ q(3238) => [
q(Mamusi),
],
- q(3240) => [
+ q(3239) => [
q(Seba),
],
- q(3241) => [
+ q(3240) => [
q(Tem),
],
- q(3242) => [
+ q(3241) => [
q(Kumam),
],
- q(3243) => [
+ q(3242) => [
q(Karamojong),
],
- q(3244) => [
+ q(3243) => [
q(Numee),
q(Kwenyi),
],
- q(3245) => [
+ q(3244) => [
q(Tsikimba),
],
- q(3246) => [
+ q(3245) => [
q(Kagoma),
],
- q(3247) => [
+ q(3246) => [
q(Kunda),
],
- q(3248) => [
+ q(3247) => [
q(Kaningdon-Nindem),
],
- q(3249) => [
+ q(3248) => [
q(Koch),
],
- q(3250) => [
+ q(3249) => [
q(Karaim),
],
- q(3251) => [
+ q(3250) => [
q(Kuy),
],
- q(3252) => [
+ q(3251) => [
q(Kadaru),
],
- q(3253) => [
+ q(3252) => [
q(Koneraw),
],
- q(3254) => [
+ q(3253) => [
q(Kam),
],
- q(3255) => [
+ q(3254) => [
q(Keder),
q(Keijar),
],
- q(3256) => [
+ q(3255) => [
q(Kwaja),
],
- q(3257) => [
+ q(3256) => [
q(Kabuverdianu),
],
- q(3258) => [
+ q(3257) => [
q(Kele),
],
- q(3259) => [
+ q(3258) => [
q(Keiga),
],
- q(3260) => [
+ q(3259) => [
q(Kerewe),
],
- q(3261) => [
+ q(3260) => [
q(Eastern Keres),
],
- q(3262) => [
+ q(3261) => [
q(Kpessi),
],
- q(3263) => [
+ q(3262) => [
q(Tese),
],
- q(3264) => [
+ q(3263) => [
q(Keak),
],
- q(3265) => [
+ q(3264) => [
q(Kei),
],
- q(3266) => [
+ q(3265) => [
q(Kadar),
],
- q(3267) => [
+ q(3266) => [
q(Kekchi),
],
- q(3268) => [
+ q(3267) => [
q(Kela (Democratic Republic of Congo)),
],
- q(3269) => [
+ q(3268) => [
q(Kemak),
],
- q(3270) => [
+ q(3269) => [
q(Kenyang),
],
- q(3271) => [
+ q(3270) => [
q(Kakwa),
],
- q(3272) => [
+ q(3271) => [
q(Kaikadi),
],
- q(3273) => [
+ q(3272) => [
q(Kamar),
],
- q(3274) => [
+ q(3273) => [
q(Kera),
],
- q(3275) => [
+ q(3274) => [
q(Kugbo),
],
- q(3276) => [
+ q(3275) => [
q(Ket),
],
- q(3277) => [
+ q(3276) => [
q(Akebu),
],
- q(3278) => [
+ q(3277) => [
q(Kanikkaran),
],
- q(3279) => [
+ q(3278) => [
q(West Kewa),
],
- q(3280) => [
+ q(3279) => [
q(Kukna),
],
- q(3281) => [
+ q(3280) => [
q(Kupia),
],
- q(3282) => [
+ q(3281) => [
q(Kukele),
],
- q(3283) => [
+ q(3282) => [
q(Kodava),
],
- q(3284) => [
+ q(3283) => [
q(Northwestern Kolami),
],
- q(3285) => [
+ q(3284) => [
q(Konda-Dora),
],
- q(3286) => [
+ q(3285) => [
q(Korra Koraga),
],
- q(3287) => [
+ q(3286) => [
q(Kota (India)),
],
- q(3288) => [
+ q(3287) => [
q(Koya),
],
- q(3289) => [
+ q(3288) => [
q(Kudiya),
],
- q(3290) => [
+ q(3289) => [
q(Kurichiya),
],
- q(3291) => [
+ q(3290) => [
q(Kannada Kurumba),
],
- q(3292) => [
+ q(3291) => [
q(Kemiehua),
],
- q(3293) => [
+ q(3292) => [
q(Kinnauri),
],
- q(3294) => [
+ q(3293) => [
q(Kung),
],
- q(3295) => [
+ q(3294) => [
q(Khunsari),
],
- q(3296) => [
+ q(3295) => [
q(Kuk),
],
- q(3297) => [
+ q(3296) => [
q(Koro (Cote d'Ivoire)),
],
- q(3298) => [
+ q(3297) => [
q(Korwa),
],
- q(3299) => [
+ q(3298) => [
q(Korku),
],
- q(3300) => [
- q(Kachchi),
+ q(3299) => [
+ q(Kachhi),
+ q(Kutchi),
],
- q(3301) => [
+ q(3300) => [
q(Bilaspuri),
],
- q(3302) => [
+ q(3301) => [
q(Kanjari),
],
- q(3303) => [
+ q(3302) => [
q(Katkari),
],
- q(3304) => [
+ q(3303) => [
q(Kurmukar),
],
- q(3305) => [
+ q(3304) => [
q(Kharam Naga),
],
- q(3306) => [
+ q(3305) => [
q(Kullu Pahari),
],
- q(3307) => [
+ q(3306) => [
q(Kumaoni),
],
- q(3308) => [
+ q(3307) => [
q(Koromfe),
],
- q(3309) => [
+ q(3308) => [
q(Koyaga),
],
- q(3310) => [
+ q(3309) => [
q(Kawe),
],
- q(3311) => [
- q(Kasseng),
- ],
- q(3312) => [
- q(Kataang),
- ],
- q(3313) => [
+ q(3310) => [
q(Komering),
],
- q(3314) => [
+ q(3311) => [
q(Kube),
],
- q(3315) => [
+ q(3312) => [
q(Kusunda),
],
- q(3316) => [
+ q(3313) => [
q(Selangor Sign Language),
],
- q(3317) => [
+ q(3314) => [
q(Gamale Kham),
],
- q(3318) => [
+ q(3315) => [
q(Kaiwa),
],
- q(3319) => [
+ q(3316) => [
q(Kunggari),
],
- q(3320) => [
+ q(3317) => [
q(Karipuna),
],
- q(3321) => [
+ q(3318) => [
q(Karingani),
],
- q(3322) => [
+ q(3319) => [
q(Krongo),
],
- q(3323) => [
+ q(3320) => [
q(Kaingang),
],
- q(3324) => [
+ q(3321) => [
q(Kamoro),
],
- q(3325) => [
+ q(3322) => [
q(Abun),
],
- q(3326) => [
+ q(3323) => [
q(Kumbainggar),
],
- q(3327) => [
+ q(3324) => [
q(Somyev),
],
- q(3328) => [
+ q(3325) => [
q(Kobol),
],
- q(3329) => [
+ q(3326) => [
q(Karas),
],
- q(3330) => [
+ q(3327) => [
q(Karon Dori),
],
- q(3331) => [
+ q(3328) => [
q(Kamaru),
],
- q(3332) => [
+ q(3329) => [
q(Kyerung),
],
- q(3333) => [
+ q(3330) => [
q(Lu),
],
- q(3334) => [
+ q(3331) => [
q(Tukang Besi North),
],
- q(3335) => [
+ q(3332) => [
q(Badi Kanum),
],
- q(3336) => [
+ q(3333) => [
q(Korowai),
],
- q(3337) => [
+ q(3334) => [
q(Khuen),
],
- q(3338) => [
+ q(3335) => [
q(Khams Tibetan),
],
- q(3339) => [
+ q(3336) => [
q(Kehu),
],
- q(3340) => [
+ q(3337) => [
q(Kuturmi),
],
- q(3341) => [
+ q(3338) => [
q(Halh Mongolian),
],
- q(3342) => [
+ q(3339) => [
q(Lusi),
],
- q(3343) => [
+ q(3340) => [
q(Khandesi),
],
- q(3344) => [
+ q(3341) => [
q(Kapori),
q(Kapauri),
],
- q(3345) => [
+ q(3342) => [
q(Koyra Chiini Songhay),
],
- q(3346) => [
+ q(3343) => [
q(Kharia),
],
- q(3347) => [
+ q(3344) => [
q(Kasua),
],
- q(3348) => [
+ q(3345) => [
q(Khamti),
],
- q(3349) => [
+ q(3346) => [
q(Nkhumbi),
],
- q(3350) => [
+ q(3347) => [
q(Khvarshi),
],
- q(3351) => [
+ q(3348) => [
q(Khowar),
],
- q(3352) => [
+ q(3349) => [
q(Kanu),
],
- q(3353) => [
+ q(3350) => [
q(Kele (Democratic Republic of Congo)),
],
- q(3354) => [
+ q(3351) => [
q(Keapara),
],
- q(3355) => [
+ q(3352) => [
q(Kim),
],
- q(3356) => [
+ q(3353) => [
q(Koalib),
],
- q(3357) => [
+ q(3354) => [
q(Kickapoo),
],
- q(3358) => [
+ q(3355) => [
q(Koshin),
],
- q(3359) => [
+ q(3356) => [
q(Kibet),
],
- q(3360) => [
+ q(3357) => [
q(Eastern Parbate Kham),
],
- q(3361) => [
+ q(3358) => [
q(Kimaama),
q(Kimaghima),
],
- q(3362) => [
+ q(3359) => [
q(Kilmeri),
],
- q(3363) => [
+ q(3360) => [
q(Kitsai),
],
- q(3364) => [
+ q(3361) => [
q(Kilivila),
],
- q(3365) => [
+ q(3362) => [
q(Kariya),
],
- q(3366) => [
+ q(3363) => [
q(Karagas),
],
- q(3367) => [
+ q(3364) => [
q(Kiowa),
],
- q(3368) => [
+ q(3365) => [
q(Sheshi Kham),
],
- q(3369) => [
+ q(3366) => [
q(Kosadle),
q(Kosare),
],
- q(3370) => [
+ q(3367) => [
q(Kis),
],
- q(3371) => [
+ q(3368) => [
q(Agob),
],
- q(3372) => [
+ q(3369) => [
q(Kirmanjki (individual language)),
],
- q(3373) => [
+ q(3370) => [
q(Kimbu),
],
- q(3374) => [
+ q(3371) => [
q(Northeast Kiwai),
],
- q(3375) => [
+ q(3372) => [
q(Khiamniungan Naga),
],
- q(3376) => [
+ q(3373) => [
q(Kirikiri),
],
- q(3377) => [
+ q(3374) => [
q(Kisi),
],
- q(3378) => [
+ q(3375) => [
q(Mlap),
],
- q(3379) => [
+ q(3376) => [
q(Q'anjob'al),
q(Kanjobal),
],
- q(3380) => [
+ q(3377) => [
q(Coastal Konjo),
],
- q(3381) => [
+ q(3378) => [
q(Southern Kiwai),
],
- q(3382) => [
+ q(3379) => [
q(Kisar),
],
- q(3383) => [
+ q(3380) => [
q(Khalaj),
],
- q(3384) => [
+ q(3381) => [
q(Khmu),
],
- q(3385) => [
+ q(3382) => [
q(Khakas),
],
- q(3386) => [
+ q(3383) => [
q(Zabana),
],
- q(3387) => [
+ q(3384) => [
q(Khinalugh),
],
- q(3388) => [
+ q(3385) => [
q(Highland Konjo),
],
- q(3389) => [
+ q(3386) => [
q(Western Parbate Kham),
],
- q(3390) => [
+ q(3387) => [
q(Khang),
],
- q(3391) => [
+ q(3388) => [
q(Kunjen),
],
- q(3392) => [
+ q(3389) => [
q(Harijan Kinnauri),
],
- q(3393) => [
+ q(3390) => [
q(Pwo Eastern Karen),
],
- q(3394) => [
+ q(3391) => [
q(Western Keres),
],
- q(3395) => [
+ q(3392) => [
q(Kurudu),
],
- q(3396) => [
+ q(3393) => [
q(East Kewa),
],
- q(3397) => [
+ q(3394) => [
q(Phrae Pwo Karen),
],
- q(3398) => [
+ q(3395) => [
q(Kashaya),
],
- q(3399) => [
+ q(3396) => [
q(Kaikavian Literary Language),
],
- q(3400) => [
+ q(3397) => [
q(Ramopa),
],
- q(3401) => [
+ q(3398) => [
q(Erave),
],
- q(3402) => [
+ q(3399) => [
q(Bumthangkha),
],
- q(3403) => [
+ q(3400) => [
q(Kakanda),
],
- q(3404) => [
+ q(3401) => [
q(Kwerisa),
],
- q(3405) => [
+ q(3402) => [
q(Odoodee),
],
- q(3406) => [
+ q(3403) => [
q(Kinuku),
],
- q(3407) => [
+ q(3404) => [
q(Kakabe),
],
- q(3408) => [
+ q(3405) => [
q(Kalaktang Monpa),
],
- q(3409) => [
+ q(3406) => [
q(Mabaka Valley Kalinga),
],
- q(3410) => [
+ q(3407) => [
q(Khun),
],
- q(3411) => [
+ q(3408) => [
q(Kagulu),
],
- q(3412) => [
+ q(3409) => [
q(Kako),
],
- q(3413) => [
+ q(3410) => [
q(Kokota),
],
- q(3414) => [
+ q(3411) => [
q(Kosarek Yale),
],
- q(3415) => [
+ q(3412) => [
q(Kiong),
],
- q(3416) => [
+ q(3413) => [
q(Kon Keu),
],
- q(3417) => [
+ q(3414) => [
q(Karko),
],
- q(3418) => [
+ q(3415) => [
q(Gugubera),
],
- q(3419) => [
+ q(3416) => [
q(Kaiku),
],
- q(3420) => [
+ q(3417) => [
q(Kir-Balar),
],
- q(3421) => [
+ q(3418) => [
q(Giiwo),
],
- q(3422) => [
+ q(3419) => [
q(Koi),
],
- q(3423) => [
+ q(3420) => [
q(Tumi),
],
- q(3424) => [
+ q(3421) => [
q(Kangean),
],
- q(3425) => [
+ q(3422) => [
q(Teke-Kukuya),
],
- q(3426) => [
+ q(3423) => [
q(Kohin),
],
- q(3427) => [
+ q(3424) => [
q(Guguyimidjir),
],
- q(3428) => [
+ q(3425) => [
q(Kaska),
],
- q(3429) => [
+ q(3426) => [
q(Klamath-Modoc),
],
- q(3430) => [
+ q(3427) => [
q(Kiliwa),
],
- q(3431) => [
+ q(3428) => [
q(Kolbila),
],
- q(3432) => [
+ q(3429) => [
q(Gamilaraay),
],
- q(3433) => [
+ q(3430) => [
q(Kulung (Nepal)),
],
- q(3434) => [
+ q(3431) => [
q(Kendeje),
],
- q(3435) => [
+ q(3432) => [
q(Tagakaulo),
],
- q(3436) => [
+ q(3433) => [
q(Weliki),
],
- q(3437) => [
+ q(3434) => [
q(Kalumpang),
],
- q(3438) => [
+ q(3435) => [
q(Turkic Khalaj),
],
- q(3439) => [
+ q(3436) => [
q(Kono (Nigeria)),
],
- q(3440) => [
+ q(3437) => [
q(Kagan Kalagan),
],
- q(3441) => [
+ q(3438) => [
q(Migum),
],
- q(3442) => [
+ q(3439) => [
q(Kalenjin),
],
- q(3443) => [
+ q(3440) => [
q(Kapya),
],
- q(3444) => [
+ q(3441) => [
q(Kamasa),
],
- q(3445) => [
+ q(3442) => [
q(Rumu),
],
- q(3446) => [
+ q(3443) => [
q(Khaling),
],
- q(3447) => [
+ q(3444) => [
q(Kalasha),
],
- q(3448) => [
+ q(3445) => [
q(Nukna),
],
- q(3449) => [
+ q(3446) => [
q(Klao),
],
- q(3450) => [
+ q(3447) => [
q(Maskelynes),
],
- q(3451) => [
+ q(3448) => [
+ q(Tado),
q(Lindu),
],
- q(3452) => [
+ q(3449) => [
q(Koluwawa),
],
- q(3453) => [
+ q(3450) => [
q(Kalao),
],
- q(3454) => [
+ q(3451) => [
q(Kabola),
],
- q(3455) => [
+ q(3452) => [
q(Konni),
],
- q(3456) => [
+ q(3453) => [
q(Southern Dong),
],
- q(3457) => [
+ q(3454) => [
q(Majukayang Kalinga),
],
- q(3458) => [
+ q(3455) => [
q(Bakole),
],
- q(3459) => [
+ q(3456) => [
q(Kare (Papua New Guinea)),
],
- q(3460) => [
+ q(3457) => [
q(Kate),
],
- q(3461) => [
+ q(3458) => [
q(Kalam),
],
- q(3462) => [
+ q(3459) => [
q(Kami (Nigeria)),
],
- q(3463) => [
+ q(3460) => [
q(Kumarbhag Paharia),
],
- q(3464) => [
+ q(3461) => [
q(Limos Kalinga),
],
- q(3465) => [
+ q(3462) => [
q(Tanudan Kalinga),
],
- q(3466) => [
+ q(3463) => [
q(Kom (India)),
],
- q(3467) => [
+ q(3464) => [
q(Awtuw),
],
- q(3468) => [
+ q(3465) => [
q(Kwoma),
],
- q(3469) => [
+ q(3466) => [
q(Gimme),
],
- q(3470) => [
+ q(3467) => [
q(Kwama),
],
- q(3471) => [
+ q(3468) => [
q(Northern Kurdish),
],
- q(3472) => [
+ q(3469) => [
q(Kamasau),
],
- q(3473) => [
+ q(3470) => [
q(Kemtuik),
],
- q(3474) => [
+ q(3471) => [
q(Kanite),
],
- q(3475) => [
+ q(3472) => [
q(Karipuna Creole French),
],
- q(3476) => [
+ q(3473) => [
q(Komo (Democratic Republic of Congo)),
],
- q(3477) => [
+ q(3474) => [
q(Waboda),
],
- q(3478) => [
+ q(3475) => [
q(Koma),
],
- q(3479) => [
+ q(3476) => [
q(Khorasani Turkish),
],
- q(3480) => [
+ q(3477) => [
q(Dera (Nigeria)),
],
- q(3481) => [
+ q(3478) => [
q(Lubuagan Kalinga),
],
- q(3482) => [
+ q(3479) => [
q(Central Kanuri),
],
- q(3483) => [
+ q(3480) => [
q(Konda),
],
- q(3484) => [
+ q(3481) => [
q(Kankanaey),
],
- q(3485) => [
+ q(3482) => [
q(Mankanya),
],
- q(3486) => [
+ q(3483) => [
q(Koongo),
],
- q(3487) => [
+ q(3484) => [
q(Kanufi),
],
- q(3488) => [
+ q(3485) => [
q(Western Kanjobal),
],
- q(3489) => [
+ q(3486) => [
q(Kuranko),
],
- q(3490) => [
+ q(3487) => [
q(Keninjal),
],
- q(3491) => [
+ q(3488) => [
q(Kanamari),
],
- q(3492) => [
+ q(3489) => [
q(Konkani (individual language)),
],
- q(3493) => [
+ q(3490) => [
q(Kono (Sierra Leone)),
],
- q(3494) => [
+ q(3491) => [
q(Kwanja),
],
- q(3495) => [
+ q(3492) => [
q(Kintaq),
],
- q(3496) => [
+ q(3493) => [
q(Kaningra),
],
- q(3497) => [
+ q(3494) => [
q(Kensiu),
],
- q(3498) => [
+ q(3495) => [
q(Panoan Katukina),
],
- q(3499) => [
+ q(3496) => [
q(Kono (Guinea)),
],
- q(3500) => [
+ q(3497) => [
q(Tabo),
],
- q(3501) => [
+ q(3498) => [
q(Kung-Ekoka),
],
- q(3502) => [
+ q(3499) => [
q(Kendayan),
q(Salako),
],
- q(3503) => [
+ q(3500) => [
q(Kanyok),
],
- q(3504) => [
+ q(3501) => [
q(Kalamse),
],
- q(3505) => [
+ q(3502) => [
q(Konomala),
],
- q(3506) => [
+ q(3503) => [
q(Kpati),
],
- q(3507) => [
+ q(3504) => [
q(Kodi),
],
- q(3508) => [
+ q(3505) => [
q(Kacipo-Balesi),
],
- q(3509) => [
+ q(3506) => [
q(Kubi),
],
- q(3510) => [
+ q(3507) => [
q(Cogui),
q(Kogi),
],
- q(3511) => [
+ q(3508) => [
q(Koyo),
],
- q(3512) => [
+ q(3509) => [
q(Komi-Permyak),
],
- q(3513) => [
+ q(3510) => [
q(Kol (Papua New Guinea)),
],
- q(3514) => [
+ q(3511) => [
q(Konzo),
],
- q(3515) => [
+ q(3512) => [
q(Waube),
],
- q(3516) => [
+ q(3513) => [
q(Kota (Gabon)),
],
- q(3517) => [
+ q(3514) => [
q(Lagwan),
],
- q(3518) => [
+ q(3515) => [
q(Koke),
],
- q(3519) => [
+ q(3516) => [
q(Kudu-Camo),
],
- q(3520) => [
+ q(3517) => [
q(Kugama),
],
- q(3521) => [
- q(Coxima),
- ],
- q(3522) => [
+ q(3518) => [
q(Koyukon),
],
- q(3523) => [
+ q(3519) => [
q(Korak),
],
- q(3524) => [
+ q(3520) => [
q(Kutto),
],
- q(3525) => [
+ q(3521) => [
q(Mullu Kurumba),
],
- q(3526) => [
+ q(3522) => [
q(Curripaco),
],
- q(3527) => [
+ q(3523) => [
q(Koba),
],
- q(3528) => [
+ q(3524) => [
q(Komba),
],
- q(3529) => [
+ q(3525) => [
q(Kapingamarangi),
],
- q(3530) => [
+ q(3526) => [
q(Kplang),
],
- q(3531) => [
+ q(3527) => [
q(Kofei),
],
- q(3532) => [
+ q(3528) => [
q(Karaja),
],
- q(3533) => [
+ q(3529) => [
q(Kpan),
],
- q(3534) => [
+ q(3530) => [
q(Kpala),
],
- q(3535) => [
+ q(3531) => [
q(Koho),
],
- q(3536) => [
+ q(3532) => [
q(Kepkiriwat),
],
- q(3537) => [
+ q(3533) => [
q(Ikposo),
],
- q(3538) => [
+ q(3534) => [
q(Korupun-Sela),
],
- q(3539) => [
+ q(3535) => [
q(Korafe-Yegha),
],
- q(3540) => [
+ q(3536) => [
q(Tehit),
],
- q(3541) => [
+ q(3537) => [
q(Karata),
],
- q(3542) => [
+ q(3538) => [
q(Kafoa),
],
- q(3543) => [
+ q(3539) => [
q(Komi-Zyrian),
],
- q(3544) => [
+ q(3540) => [
q(Kobon),
],
- q(3545) => [
+ q(3541) => [
q(Mountain Koiali),
],
- q(3546) => [
+ q(3542) => [
q(Koryak),
],
- q(3547) => [
+ q(3543) => [
q(Kupsabiny),
],
- q(3548) => [
+ q(3544) => [
q(Mum),
],
- q(3549) => [
+ q(3545) => [
q(Kovai),
],
- q(3550) => [
+ q(3546) => [
q(Doromu-Koki),
],
- q(3551) => [
+ q(3547) => [
q(Koy Sanjaq Surat),
],
- q(3552) => [
+ q(3548) => [
q(Kalagan),
],
- q(3553) => [
+ q(3549) => [
q(Kakabai),
],
- q(3554) => [
+ q(3550) => [
q(Khe),
],
- q(3555) => [
+ q(3551) => [
q(Kisankasa),
],
- q(3556) => [
+ q(3552) => [
q(Koitabu),
],
- q(3557) => [
+ q(3553) => [
q(Koromira),
],
- q(3558) => [
+ q(3554) => [
q(Kotafon Gbe),
],
- q(3559) => [
+ q(3555) => [
q(Kyenele),
],
- q(3560) => [
+ q(3556) => [
q(Khisa),
],
- q(3561) => [
+ q(3557) => [
q(Kaonde),
],
- q(3562) => [
+ q(3558) => [
q(Eastern Krahn),
],
- q(3563) => [
+ q(3559) => [
q(Kimre),
],
- q(3564) => [
+ q(3560) => [
q(Krenak),
],
- q(3565) => [
+ q(3561) => [
q(Kimaragang),
],
- q(3566) => [
+ q(3562) => [
q(Northern Kissi),
],
- q(3567) => [
+ q(3563) => [
q(Klias River Kadazan),
],
- q(3568) => [
+ q(3564) => [
q(Seroa),
],
- q(3569) => [
+ q(3565) => [
q(Okolod),
],
- q(3570) => [
+ q(3566) => [
q(Kandas),
],
- q(3571) => [
+ q(3567) => [
q(Mser),
],
- q(3572) => [
+ q(3568) => [
q(Koorete),
],
- q(3573) => [
+ q(3569) => [
q(Korana),
],
- q(3574) => [
+ q(3570) => [
q(Kumhali),
],
- q(3575) => [
+ q(3571) => [
q(Karkin),
],
- q(3576) => [
+ q(3572) => [
q(Kairui-Midiki),
],
- q(3577) => [
+ q(3573) => [
q(Panara),
],
- q(3578) => [
+ q(3574) => [
q(Koro (Vanuatu)),
],
- q(3579) => [
+ q(3575) => [
q(Kurama),
],
- q(3580) => [
+ q(3576) => [
q(Krio),
],
- q(3581) => [
+ q(3577) => [
q(Kinaray-A),
],
- q(3582) => [
+ q(3578) => [
q(Kerek),
],
- q(3583) => [
- q(Krim),
- ],
- q(3584) => [
+ q(3579) => [
q(Sapo),
],
- q(3585) => [
+ q(3580) => [
q(Korop),
],
- q(3586) => [
- q(Kru'ng 2),
+ q(3581) => [
+ q(Krung),
],
- q(3587) => [
+ q(3582) => [
q(Gbaya (Sudan)),
],
- q(3588) => [
+ q(3583) => [
q(Tumari Kanuri),
],
- q(3589) => [
+ q(3584) => [
q(Kavet),
],
- q(3590) => [
+ q(3585) => [
q(Western Krahn),
],
- q(3591) => [
+ q(3586) => [
q(Karon),
],
- q(3592) => [
+ q(3587) => [
q(Kryts),
],
- q(3593) => [
+ q(3588) => [
q(Sota Kanum),
],
- q(3594) => [
+ q(3589) => [
q(Shuwa-Zamani),
],
- q(3595) => [
+ q(3590) => [
q(Shambala),
],
- q(3596) => [
+ q(3591) => [
q(Southern Kalinga),
],
- q(3597) => [
+ q(3592) => [
q(Kuanua),
],
- q(3598) => [
+ q(3593) => [
q(Kuni),
],
- q(3599) => [
+ q(3594) => [
q(Bafia),
],
- q(3600) => [
+ q(3595) => [
q(Kusaghe),
],
- q(3601) => [
+ q(3596) => [
q(Kolsch),
],
- q(3602) => [
+ q(3597) => [
q(Krisa),
q(I'saka),
],
- q(3603) => [
+ q(3598) => [
q(Uare),
],
- q(3604) => [
+ q(3599) => [
q(Kansa),
],
- q(3605) => [
+ q(3600) => [
q(Kumalu),
],
- q(3606) => [
+ q(3601) => [
q(Kumba),
],
- q(3607) => [
+ q(3602) => [
q(Kasiguranin),
],
- q(3608) => [
+ q(3603) => [
q(Kofa),
],
- q(3609) => [
+ q(3604) => [
q(Kaba),
],
- q(3610) => [
+ q(3605) => [
q(Kwaami),
],
- q(3611) => [
+ q(3606) => [
q(Borong),
],
- q(3612) => [
+ q(3607) => [
q(Southern Kisi),
],
- q(3613) => [
+ q(3608) => [
q(Winye),
],
- q(3614) => [
+ q(3609) => [
q(Khamyang),
],
- q(3615) => [
+ q(3610) => [
q(Kusu),
],
- q(3616) => [
+ q(3611) => [
q(S'gaw Karen),
],
- q(3617) => [
+ q(3612) => [
q(Kedang),
],
- q(3618) => [
+ q(3613) => [
q(Kharia Thar),
],
- q(3619) => [
+ q(3614) => [
q(Kodaku),
],
- q(3620) => [
+ q(3615) => [
q(Katua),
],
- q(3621) => [
+ q(3616) => [
q(Kambaata),
],
- q(3622) => [
+ q(3617) => [
q(Kholok),
],
- q(3623) => [
+ q(3618) => [
q(Kokata),
],
- q(3624) => [
+ q(3619) => [
q(Nubri),
],
- q(3625) => [
+ q(3620) => [
q(Kwami),
],
- q(3626) => [
+ q(3621) => [
q(Kalkutung),
],
- q(3627) => [
+ q(3622) => [
q(Karanga),
],
- q(3628) => [
+ q(3623) => [
q(North Muyu),
],
- q(3629) => [
+ q(3624) => [
q(Plapo Krumen),
],
- q(3630) => [
+ q(3625) => [
q(Kaniet),
],
- q(3631) => [
+ q(3626) => [
q(Koroshi),
],
- q(3632) => [
+ q(3627) => [
q(Kurti),
],
- q(3633) => [
+ q(3628) => [
q(Karitiana),
],
- q(3634) => [
+ q(3629) => [
q(Kuot),
],
- q(3635) => [
+ q(3630) => [
q(Kaduo),
],
- q(3636) => [
+ q(3631) => [
q(Katabaga),
],
- q(3637) => [
- q(Kota Marudu Tinagas),
- ],
- q(3638) => [
+ q(3632) => [
q(South Muyu),
],
- q(3639) => [
+ q(3633) => [
q(Ketum),
],
- q(3640) => [
+ q(3634) => [
q(Kituba (Democratic Republic of Congo)),
],
- q(3641) => [
+ q(3635) => [
q(Eastern Katu),
],
- q(3642) => [
+ q(3636) => [
q(Kato),
],
- q(3643) => [
+ q(3637) => [
q(Kaxarari),
],
- q(3644) => [
+ q(3638) => [
q(Kango (Bas-Uele District)),
],
- q(3645) => [
+ q(3639) => [
q(Ju/'hoan),
q(Juhoan),
+ q(Ju|'hoansi),
],
- q(3646) => [
+ q(3640) => [
q(Kutep),
],
- q(3647) => [
+ q(3641) => [
q(Kwinsu),
],
- q(3648) => [
+ q(3642) => [
q('Auhelawa),
],
- q(3649) => [
+ q(3643) => [
q(Kuman (Papua New Guinea)),
],
- q(3650) => [
+ q(3644) => [
q(Western Katu),
],
- q(3651) => [
+ q(3645) => [
q(Kupa),
],
- q(3652) => [
+ q(3646) => [
q(Kushi),
],
- q(3653) => [
+ q(3647) => [
q(Kuikuro-Kalapalo),
],
- q(3654) => [
+ q(3648) => [
q(Kuria),
],
- q(3655) => [
+ q(3649) => [
q(Kepo'),
],
- q(3656) => [
+ q(3650) => [
q(Kulere),
],
- q(3657) => [
+ q(3651) => [
q(Kunama),
],
- q(3658) => [
+ q(3652) => [
q(Kumukio),
],
- q(3659) => [
+ q(3653) => [
q(Kunimaipa),
],
- q(3660) => [
+ q(3654) => [
q(Kusaal),
],
- q(3661) => [
+ q(3655) => [
q(Upper Kuskokwim),
],
- q(3662) => [
+ q(3656) => [
q(Kur),
],
- q(3663) => [
+ q(3657) => [
q(Kpagua),
],
- q(3664) => [
+ q(3658) => [
q(Kukatja),
],
- q(3665) => [
+ q(3659) => [
q(Kuuku-Ya'u),
],
- q(3666) => [
+ q(3660) => [
q(Kunza),
],
- q(3667) => [
+ q(3661) => [
q(Bagvalal),
],
- q(3668) => [
+ q(3662) => [
q(Kubu),
],
- q(3669) => [
+ q(3663) => [
q(Kove),
],
- q(3670) => [
+ q(3664) => [
q(Kui (Indonesia)),
],
- q(3671) => [
+ q(3665) => [
q(Kalabakan),
],
- q(3672) => [
+ q(3666) => [
q(Kabalai),
],
- q(3673) => [
+ q(3667) => [
q(Kuni-Boazi),
],
- q(3674) => [
+ q(3668) => [
q(Komodo),
],
- q(3675) => [
+ q(3669) => [
q(Kwang),
],
- q(3676) => [
+ q(3670) => [
q(Psikye),
],
- q(3677) => [
+ q(3671) => [
q(Korean Sign Language),
],
- q(3678) => [
+ q(3672) => [
q(Kayaw),
],
- q(3679) => [
+ q(3673) => [
q(Kendem),
],
- q(3680) => [
+ q(3674) => [
q(Border Kuna),
],
- q(3681) => [
+ q(3675) => [
q(Dobel),
],
- q(3682) => [
+ q(3676) => [
q(Kompane),
],
- q(3683) => [
+ q(3677) => [
q(Geba Karen),
],
- q(3684) => [
+ q(3678) => [
q(Kerinci),
],
- q(3685) => [
- q(Kunggara),
- ],
- q(3686) => [
+ q(3679) => [
q(Lahta Karen),
q(Lahta),
],
- q(3687) => [
+ q(3680) => [
q(Yinbaw Karen),
],
- q(3688) => [
+ q(3681) => [
q(Kola),
],
- q(3689) => [
+ q(3682) => [
q(Wersing),
],
- q(3690) => [
+ q(3683) => [
q(Parkari Koli),
],
- q(3691) => [
+ q(3684) => [
q(Yintale Karen),
q(Yintale),
],
- q(3692) => [
+ q(3685) => [
q(Tsakwambo),
q(Tsaukambo),
],
- q(3693) => [
+ q(3686) => [
q(Daw),
],
- q(3694) => [
+ q(3687) => [
q(Kwa),
],
- q(3695) => [
+ q(3688) => [
q(Likwala),
],
- q(3696) => [
+ q(3689) => [
q(Kwaio),
],
- q(3697) => [
+ q(3690) => [
q(Kwerba),
],
- q(3698) => [
+ q(3691) => [
q(Kwara'ae),
],
- q(3699) => [
+ q(3692) => [
q(Sara Kaba Deme),
],
- q(3700) => [
+ q(3693) => [
q(Kowiai),
],
- q(3701) => [
+ q(3694) => [
q(Awa-Cuaiquer),
],
- q(3702) => [
+ q(3695) => [
q(Kwanga),
],
- q(3703) => [
+ q(3696) => [
q(Kwakiutl),
],
- q(3704) => [
+ q(3697) => [
q(Kofyar),
],
- q(3705) => [
+ q(3698) => [
q(Kwambi),
],
- q(3706) => [
+ q(3699) => [
q(Kwangali),
],
- q(3707) => [
+ q(3700) => [
q(Kwomtari),
],
- q(3708) => [
+ q(3701) => [
q(Kodia),
],
- q(3709) => [
+ q(3702) => [
q(Kwer),
],
- q(3710) => [
+ q(3703) => [
q(Kwese),
],
- q(3711) => [
+ q(3704) => [
q(Kwesten),
],
- q(3712) => [
+ q(3705) => [
q(Kwakum),
],
- q(3713) => [
+ q(3706) => [
q(Sara Kaba Naa),
],
- q(3714) => [
+ q(3707) => [
q(Kwinti),
],
- q(3715) => [
+ q(3708) => [
q(Khirwar),
],
- q(3716) => [
+ q(3709) => [
q(San Salvador Kongo),
],
- q(3717) => [
+ q(3710) => [
q(Kwadi),
],
- q(3718) => [
+ q(3711) => [
q(Kairiru),
],
- q(3719) => [
+ q(3712) => [
q(Krobu),
],
- q(3720) => [
+ q(3713) => [
q(Konso),
q(Khonso),
],
- q(3721) => [
+ q(3714) => [
q(Brunei),
],
- q(3722) => [
+ q(3715) => [
q(Manumanaw Karen),
q(Manumanaw),
],
- q(3723) => [
+ q(3716) => [
q(Karo (Ethiopia)),
],
- q(3724) => [
+ q(3717) => [
q(Keningau Murut),
],
- q(3725) => [
+ q(3718) => [
q(Kulfa),
],
- q(3726) => [
+ q(3719) => [
q(Zayein Karen),
],
- q(3727) => [
+ q(3720) => [
q(Nepali Kurux),
],
- q(3728) => [
+ q(3721) => [
q(Northern Khmer),
],
- q(3729) => [
+ q(3722) => [
q(Kanowit-Tanjong Melanau),
],
- q(3730) => [
+ q(3723) => [
q(Kanoe),
],
- q(3731) => [
+ q(3724) => [
q(Wadiyara Koli),
],
- q(3732) => [
+ q(3725) => [
q(Smarky Kanum),
],
- q(3733) => [
+ q(3726) => [
q(Koro (Papua New Guinea)),
],
- q(3734) => [
+ q(3727) => [
q(Kangjia),
],
- q(3735) => [
+ q(3728) => [
q(Koiwat),
],
- q(3736) => [
+ q(3729) => [
q(Kui (India)),
],
- q(3737) => [
+ q(3730) => [
q(Kuvi),
],
- q(3738) => [
+ q(3731) => [
q(Konai),
],
- q(3739) => [
+ q(3732) => [
q(Likuba),
],
- q(3740) => [
+ q(3733) => [
q(Kayong),
],
- q(3741) => [
+ q(3734) => [
q(Kerewo),
],
- q(3742) => [
+ q(3735) => [
q(Kwaya),
],
- q(3743) => [
+ q(3736) => [
q(Butbut Kalinga),
],
- q(3744) => [
+ q(3737) => [
q(Kyaka),
],
- q(3745) => [
+ q(3738) => [
q(Karey),
],
- q(3746) => [
+ q(3739) => [
q(Krache),
],
- q(3747) => [
+ q(3740) => [
q(Kouya),
],
- q(3748) => [
+ q(3741) => [
q(Keyagana),
],
- q(3749) => [
+ q(3742) => [
q(Karok),
],
- q(3750) => [
+ q(3743) => [
q(Kiput),
],
- q(3751) => [
+ q(3744) => [
q(Karao),
],
- q(3752) => [
+ q(3745) => [
q(Kamayo),
],
- q(3753) => [
+ q(3746) => [
q(Kalapuya),
],
- q(3754) => [
+ q(3747) => [
q(Kpatili),
],
- q(3755) => [
+ q(3748) => [
q(Northern Binukidnon),
],
- q(3756) => [
+ q(3749) => [
q(Kelon),
],
- q(3757) => [
+ q(3750) => [
q(Kang),
],
- q(3758) => [
+ q(3751) => [
q(Kenga),
],
- q(3759) => [
+ q(3752) => [
q(Kuruaya),
],
- q(3760) => [
+ q(3753) => [
q(Baram Kayan),
],
- q(3761) => [
+ q(3754) => [
q(Kayagar),
],
- q(3762) => [
+ q(3755) => [
q(Western Kayah),
],
- q(3763) => [
+ q(3756) => [
q(Kayort),
],
- q(3764) => [
+ q(3757) => [
q(Kudmali),
],
- q(3765) => [
+ q(3758) => [
q(Rapoisi),
],
- q(3766) => [
+ q(3759) => [
q(Kambaira),
],
- q(3767) => [
+ q(3760) => [
q(Kayabi),
],
- q(3768) => [
+ q(3761) => [
q(Western Karaboro),
],
- q(3769) => [
+ q(3762) => [
q(Kaibobo),
],
- q(3770) => [
+ q(3763) => [
q(Bondoukou Kulango),
],
- q(3771) => [
+ q(3764) => [
q(Kadai),
],
- q(3772) => [
+ q(3765) => [
q(Kosena),
],
- q(3773) => [
+ q(3766) => [
q(Da'a Kaili),
],
- q(3774) => [
+ q(3767) => [
q(Kikai),
],
- q(3775) => [
+ q(3768) => [
q(Kelabit),
],
- q(3776) => [
- q(Coastal Kadazan),
- ],
- q(3777) => [
+ q(3769) => [
q(Kazukuru),
],
- q(3778) => [
+ q(3770) => [
q(Kayeli),
],
- q(3779) => [
+ q(3771) => [
q(Kais),
],
- q(3780) => [
+ q(3772) => [
q(Kokola),
],
- q(3781) => [
+ q(3773) => [
q(Kaningi),
],
- q(3782) => [
+ q(3774) => [
q(Kaidipang),
],
- q(3783) => [
+ q(3775) => [
q(Kaike),
],
- q(3784) => [
+ q(3776) => [
q(Karang),
],
- q(3785) => [
+ q(3777) => [
q(Sugut Dusun),
],
- q(3786) => [
- q(Tambunan Dusun),
- ],
- q(3787) => [
+ q(3778) => [
q(Kayupulau),
],
- q(3788) => [
+ q(3779) => [
q(Komyandaret),
],
- q(3789) => [
+ q(3780) => [
q(Kariri-Xoco),
],
- q(3790) => [
+ q(3781) => [
q(Kamarian),
],
- q(3791) => [
+ q(3782) => [
q(Kango (Tshopo District)),
],
- q(3792) => [
+ q(3783) => [
q(Kalabra),
],
- q(3793) => [
+ q(3784) => [
q(Southern Subanen),
],
- q(3794) => [
+ q(3785) => [
q(Linear A),
],
- q(3795) => [
+ q(3786) => [
q(Lacandon),
],
- q(3796) => [
+ q(3787) => [
q(Pattani),
],
- q(3797) => [
+ q(3788) => [
q(Lafofa),
],
- q(3798) => [
+ q(3789) => [
q(Langi),
],
- q(3799) => [
+ q(3790) => [
q(Lambya),
],
- q(3800) => [
+ q(3791) => [
q(Lango (Uganda)),
],
- q(3801) => [
+ q(3792) => [
q(Laka (Nigeria)),
],
- q(3802) => [
+ q(3793) => [
q(Lalia),
],
- q(3803) => [
+ q(3794) => [
q(Laru),
],
- q(3804) => [
+ q(3795) => [
q(Laka (Chad)),
],
- q(3805) => [
+ q(3796) => [
q(Qabiao),
],
- q(3806) => [
+ q(3797) => [
q(Larteh),
],
- q(3807) => [
+ q(3798) => [
q(Lama (Togo)),
],
- q(3808) => [
+ q(3799) => [
q(Laba),
],
- q(3809) => [
+ q(3800) => [
q(Lauje),
],
- q(3810) => [
+ q(3801) => [
q(Tiwa),
],
- q(3811) => [
+ q(3802) => [
q(Lama Bai),
],
- q(3812) => [
+ q(3803) => [
q(Aribwatsa),
],
- q(3813) => [
+ q(3804) => [
q(Lui),
],
- q(3814) => [
+ q(3805) => [
q(Label),
],
- q(3815) => [
+ q(3806) => [
q(Lakkia),
],
- q(3816) => [
+ q(3807) => [
q(Lak),
],
- q(3817) => [
+ q(3808) => [
q(Tinani),
],
- q(3818) => [
+ q(3809) => [
q(Laopang),
],
- q(3819) => [
+ q(3810) => [
q(La'bi),
],
- q(3820) => [
+ q(3811) => [
q(Ladakhi),
],
- q(3821) => [
+ q(3812) => [
q(Central Bontok),
],
- q(3822) => [
+ q(3813) => [
q(Libon Bikol),
],
- q(3823) => [
+ q(3814) => [
q(Lodhi),
],
- q(3824) => [
+ q(3815) => [
q(Lamet),
],
- q(3825) => [
+ q(3816) => [
q(Laven),
],
- q(3826) => [
+ q(3817) => [
q(Wampar),
],
- q(3827) => [
+ q(3818) => [
q(Lohorung),
],
- q(3828) => [
+ q(3819) => [
q(Libyan Sign Language),
],
- q(3829) => [
+ q(3820) => [
q(Lachi),
],
- q(3830) => [
+ q(3821) => [
q(Labu),
],
- q(3831) => [
+ q(3822) => [
q(Lavatbura-Lamusong),
],
- q(3832) => [
+ q(3823) => [
q(Tolaki),
],
- q(3833) => [
+ q(3824) => [
q(Lawangan),
],
- q(3834) => [
+ q(3825) => [
q(Lamu-Lamu),
],
- q(3835) => [
+ q(3826) => [
q(Lardil),
],
- q(3836) => [
+ q(3827) => [
q(Legenyem),
],
- q(3837) => [
+ q(3828) => [
q(Lola),
],
- q(3838) => [
+ q(3829) => [
q(Loncong),
+ q(Sekak),
],
- q(3839) => [
+ q(3830) => [
q(Lubu),
],
- q(3840) => [
+ q(3831) => [
q(Luchazi),
],
- q(3841) => [
+ q(3832) => [
q(Lisela),
],
- q(3842) => [
+ q(3833) => [
q(Tungag),
],
- q(3843) => [
+ q(3834) => [
q(Western Lawa),
],
- q(3844) => [
+ q(3835) => [
q(Luhu),
],
- q(3845) => [
+ q(3836) => [
q(Lisabata-Nuniali),
],
- q(3846) => [
+ q(3837) => [
q(Kla-Dan),
],
- q(3847) => [
+ q(3838) => [
q(Duya),
],
- q(3848) => [
+ q(3839) => [
q(Luri),
],
- q(3849) => [
+ q(3840) => [
q(Lenyima),
],
- q(3850) => [
+ q(3841) => [
q(Lamja-Dengsa-Tola),
],
- q(3851) => [
+ q(3842) => [
q(Laari),
],
- q(3852) => [
+ q(3843) => [
q(Lemoro),
],
- q(3853) => [
+ q(3844) => [
q(Leelau),
],
- q(3854) => [
+ q(3845) => [
q(Kaan),
],
- q(3855) => [
+ q(3846) => [
q(Landoma),
],
- q(3856) => [
+ q(3847) => [
q(Laadan),
],
- q(3857) => [
+ q(3848) => [
q(Loo),
],
- q(3858) => [
+ q(3849) => [
q(Tso),
],
- q(3859) => [
+ q(3850) => [
q(Lufu),
],
- q(3860) => [
+ q(3851) => [
q(Lega-Shabunda),
],
- q(3861) => [
+ q(3852) => [
q(Lala-Bisa),
],
- q(3862) => [
+ q(3853) => [
q(Leco),
],
- q(3863) => [
+ q(3854) => [
q(Lendu),
],
- q(3864) => [
+ q(3855) => [
q(Lyele),
],
- q(3865) => [
+ q(3856) => [
q(Lelemi),
],
- q(3866) => [
+ q(3857) => [
q(Lenje),
],
- q(3867) => [
+ q(3858) => [
q(Lemio),
],
- q(3868) => [
+ q(3859) => [
q(Lengola),
],
- q(3869) => [
+ q(3860) => [
q(Leipon),
],
- q(3870) => [
+ q(3861) => [
q(Lele (Democratic Republic of Congo)),
],
- q(3871) => [
+ q(3862) => [
q(Nomaande),
],
- q(3872) => [
+ q(3863) => [
q(Lenca),
],
- q(3873) => [
+ q(3864) => [
q(Leti (Cameroon)),
],
- q(3874) => [
+ q(3865) => [
q(Lepcha),
],
- q(3875) => [
+ q(3866) => [
q(Lembena),
],
- q(3876) => [
+ q(3867) => [
q(Lenkau),
],
- q(3877) => [
+ q(3868) => [
q(Lese),
],
- q(3878) => [
+ q(3869) => [
q(Lesing-Gelimi),
q(Amio-Gelimi),
],
- q(3879) => [
+ q(3870) => [
q(Kara (Papua New Guinea)),
],
- q(3880) => [
+ q(3871) => [
q(Lamma),
],
- q(3881) => [
+ q(3872) => [
q(Ledo Kaili),
],
- q(3882) => [
+ q(3873) => [
q(Luang),
],
- q(3883) => [
+ q(3874) => [
q(Lemolang),
],
- q(3884) => [
+ q(3875) => [
q(Lefa),
],
- q(3885) => [
+ q(3876) => [
q(Lingua Franca Nova),
],
- q(3886) => [
+ q(3877) => [
q(Lungga),
],
- q(3887) => [
+ q(3878) => [
q(Laghu),
],
- q(3888) => [
+ q(3879) => [
q(Lugbara),
],
- q(3889) => [
+ q(3880) => [
q(Laghuu),
],
- q(3890) => [
+ q(3881) => [
q(Lengilu),
],
- q(3891) => [
+ q(3882) => [
q(Lingarak),
q(Neverver),
],
- q(3892) => [
+ q(3883) => [
q(Wala),
],
- q(3893) => [
+ q(3884) => [
q(Lega-Mwenga),
],
- q(3894) => [
+ q(3885) => [
+ q(T'apo),
q(Opuuo),
],
- q(3895) => [
+ q(3886) => [
q(Logba),
],
- q(3896) => [
+ q(3887) => [
q(Lengo),
],
- q(3897) => [
+ q(3888) => [
q(Pahi),
],
- q(3898) => [
+ q(3889) => [
q(Longgu),
],
- q(3899) => [
+ q(3890) => [
q(Ligenza),
],
- q(3900) => [
+ q(3891) => [
q(Laha (Viet Nam)),
],
- q(3901) => [
+ q(3892) => [
q(Laha (Indonesia)),
],
- q(3902) => [
+ q(3893) => [
q(Lahu Shi),
],
- q(3903) => [
+ q(3894) => [
q(Lahul Lohar),
],
- q(3904) => [
+ q(3895) => [
q(Lhomi),
],
- q(3905) => [
+ q(3896) => [
q(Lahanan),
],
- q(3906) => [
+ q(3897) => [
q(Lhokpu),
],
- q(3907) => [
+ q(3898) => [
q(Mlahso),
],
- q(3908) => [
+ q(3899) => [
q(Lo-Toga),
],
- q(3909) => [
+ q(3900) => [
q(Lahu),
],
- q(3910) => [
+ q(3901) => [
q(West-Central Limba),
],
- q(3911) => [
+ q(3902) => [
q(Likum),
],
- q(3912) => [
+ q(3903) => [
q(Hlai),
],
- q(3913) => [
+ q(3904) => [
q(Nyindrou),
],
- q(3914) => [
+ q(3905) => [
q(Likila),
],
- q(3915) => [
+ q(3906) => [
q(Limbu),
],
- q(3916) => [
+ q(3907) => [
q(Ligbi),
],
- q(3917) => [
+ q(3908) => [
q(Lihir),
],
- q(3918) => [
+ q(3909) => [
q(Ligurian),
],
- q(3919) => [
+ q(3910) => [
q(Lika),
],
- q(3920) => [
+ q(3911) => [
q(Lillooet),
],
- q(3921) => [
+ q(3912) => [
q(Liki),
],
- q(3922) => [
+ q(3913) => [
q(Sekpele),
],
- q(3923) => [
+ q(3914) => [
q(Libido),
],
- q(3924) => [
+ q(3915) => [
q(Liberian English),
],
- q(3925) => [
+ q(3916) => [
q(Lisu),
],
- q(3926) => [
+ q(3917) => [
q(Logorik),
],
- q(3927) => [
+ q(3918) => [
q(Liv),
],
- q(3928) => [
+ q(3919) => [
q(Col),
],
- q(3929) => [
+ q(3920) => [
q(Liabuku),
],
- q(3930) => [
+ q(3921) => [
q(Banda-Bambari),
],
- q(3931) => [
+ q(3922) => [
q(Libinza),
],
- q(3932) => [
+ q(3923) => [
q(Golpa),
],
- q(3933) => [
+ q(3924) => [
q(Rampi),
],
- q(3934) => [
+ q(3925) => [
q(Laiyolo),
],
- q(3935) => [
+ q(3926) => [
q(Li'o),
],
- q(3936) => [
+ q(3927) => [
q(Lampung Api),
],
- q(3937) => [
+ q(3928) => [
q(Yirandali),
],
- q(3938) => [
+ q(3929) => [
q(Yuru),
],
- q(3939) => [
+ q(3930) => [
q(Lakalei),
],
- q(3940) => [
+ q(3931) => [
q(Kabras),
q(Lukabaras),
],
- q(3941) => [
+ q(3932) => [
q(Kucong),
],
- q(3942) => [
+ q(3933) => [
q(Lakonde),
],
- q(3943) => [
+ q(3934) => [
q(Kenyi),
],
- q(3944) => [
+ q(3935) => [
q(Lakha),
],
- q(3945) => [
+ q(3936) => [
q(Laki),
],
- q(3946) => [
+ q(3937) => [
q(Remun),
],
- q(3947) => [
+ q(3938) => [
q(Laeko-Libuat),
],
- q(3948) => [
+ q(3939) => [
q(Kalaamaya),
],
- q(3949) => [
+ q(3940) => [
q(Lakon),
q(Vure),
],
- q(3950) => [
+ q(3941) => [
q(Khayo),
q(Olukhayo),
],
- q(3951) => [
+ q(3942) => [
q(Pari),
],
- q(3952) => [
+ q(3943) => [
q(Kisa),
q(Olushisa),
],
- q(3953) => [
+ q(3944) => [
q(Lakota),
],
- q(3954) => [
+ q(3945) => [
q(Kungkari),
],
- q(3955) => [
+ q(3946) => [
q(Lokoya),
],
- q(3956) => [
+ q(3947) => [
q(Lala-Roba),
],
- q(3957) => [
+ q(3948) => [
q(Lolo),
],
- q(3958) => [
+ q(3949) => [
q(Lele (Guinea)),
],
- q(3959) => [
+ q(3950) => [
q(Ladin),
],
- q(3960) => [
+ q(3951) => [
q(Lele (Papua New Guinea)),
],
- q(3961) => [
+ q(3952) => [
q(Hermit),
],
- q(3962) => [
+ q(3953) => [
q(Lole),
],
- q(3963) => [
+ q(3954) => [
q(Lamu),
],
- q(3964) => [
+ q(3955) => [
q(Teke-Laali),
],
- q(3965) => [
+ q(3956) => [
q(Ladji Ladji),
],
- q(3966) => [
+ q(3957) => [
q(Lelak),
],
- q(3967) => [
+ q(3958) => [
q(Lilau),
],
- q(3968) => [
+ q(3959) => [
q(Lasalimu),
],
- q(3969) => [
+ q(3960) => [
q(Lele (Chad)),
],
- q(3970) => [
+ q(3961) => [
q(Khlor),
],
- q(3971) => [
+ q(3962) => [
q(North Efate),
],
- q(3972) => [
+ q(3963) => [
q(Lolak),
],
- q(3973) => [
+ q(3964) => [
q(Lithuanian Sign Language),
],
- q(3974) => [
+ q(3965) => [
q(Lau),
],
- q(3975) => [
+ q(3966) => [
q(Lauan),
],
- q(3976) => [
+ q(3967) => [
q(East Limba),
],
- q(3977) => [
+ q(3968) => [
q(Merei),
],
- q(3978) => [
+ q(3969) => [
q(Limilngan),
],
- q(3979) => [
+ q(3970) => [
q(Lumun),
],
- q(3980) => [
+ q(3971) => [
q(Peve),
],
- q(3981) => [
+ q(3972) => [
q(South Lembata),
],
- q(3982) => [
+ q(3973) => [
q(Lamogai),
],
- q(3983) => [
+ q(3974) => [
q(Lambichhong),
],
- q(3984) => [
+ q(3975) => [
q(Lombi),
],
- q(3985) => [
+ q(3976) => [
q(West Lembata),
],
- q(3986) => [
+ q(3977) => [
q(Lamkang),
],
- q(3987) => [
+ q(3978) => [
q(Hano),
],
- q(3988) => [
+ q(3979) => [
q(Lambadi),
],
- q(3989) => [
+ q(3980) => [
q(Lombard),
],
- q(3990) => [
+ q(3981) => [
q(Limbum),
],
- q(3991) => [
+ q(3982) => [
q(Lamatuka),
],
- q(3992) => [
+ q(3983) => [
q(Lamalera),
],
- q(3993) => [
+ q(3984) => [
q(Lamenu),
],
- q(3994) => [
+ q(3985) => [
q(Lomaiviti),
],
- q(3995) => [
+ q(3986) => [
q(Lake Miwok),
],
- q(3996) => [
+ q(3987) => [
q(Laimbue),
],
- q(3997) => [
+ q(3988) => [
q(Lamboya),
],
- q(3998) => [
+ q(3989) => [
q(Lumbee),
],
- q(3999) => [
+ q(3990) => [
q(Langbashe),
],
- q(4000) => [
+ q(3991) => [
q(Mbalanhu),
],
- q(4001) => [
+ q(3992) => [
q(Lundayeh),
q(Lun Bawang),
],
- q(4002) => [
+ q(3993) => [
q(Langobardic),
],
- q(4003) => [
+ q(3994) => [
q(Lanoh),
],
- q(4004) => [
+ q(3995) => [
q(Daantanai'),
],
- q(4005) => [
+ q(3996) => [
q(Leningitij),
],
- q(4006) => [
+ q(3997) => [
q(South Central Banda),
],
- q(4007) => [
+ q(3998) => [
q(Langam),
],
- q(4008) => [
+ q(3999) => [
q(Lorediakarkar),
],
- q(4009) => [
+ q(4000) => [
q(Lango (Sudan)),
],
- q(4010) => [
+ q(4001) => [
q(Lamnso'),
],
- q(4011) => [
+ q(4002) => [
q(Longuda),
],
- q(4012) => [
+ q(4003) => [
q(Lanima),
],
- q(4013) => [
+ q(4004) => [
q(Lonzo),
],
- q(4014) => [
+ q(4005) => [
q(Loloda),
],
- q(4015) => [
+ q(4006) => [
q(Lobi),
],
- q(4016) => [
+ q(4007) => [
q(Inonhan),
],
- q(4017) => [
+ q(4008) => [
q(Saluan),
],
- q(4018) => [
+ q(4009) => [
q(Logol),
],
- q(4019) => [
+ q(4010) => [
q(Logo),
],
- q(4020) => [
+ q(4011) => [
q(Narim),
],
- q(4021) => [
+ q(4012) => [
q(Loma (Cote d'Ivoire)),
],
- q(4022) => [
+ q(4013) => [
q(Lou),
],
- q(4023) => [
+ q(4014) => [
q(Loko),
],
- q(4024) => [
+ q(4015) => [
q(Loma (Liberia)),
],
- q(4025) => [
+ q(4016) => [
q(Malawi Lomwe),
],
- q(4026) => [
+ q(4017) => [
q(Lombo),
],
- q(4027) => [
+ q(4018) => [
q(Lopa),
],
- q(4028) => [
+ q(4019) => [
q(Lobala),
],
- q(4029) => [
+ q(4020) => [
q(Teen),
],
- q(4030) => [
+ q(4021) => [
q(Loniu),
],
- q(4031) => [
+ q(4022) => [
q(Otuho),
],
- q(4032) => [
- q(Louisiana Creole French),
+ q(4023) => [
+ q(Louisiana Creole),
],
- q(4033) => [
+ q(4024) => [
q(Lopi),
],
- q(4034) => [
+ q(4025) => [
q(Tampias Lobu),
],
- q(4035) => [
+ q(4026) => [
q(Loun),
],
- q(4036) => [
+ q(4027) => [
q(Loke),
],
- q(4037) => [
+ q(4028) => [
q(Lelepa),
],
- q(4038) => [
+ q(4029) => [
q(Lepki),
],
- q(4039) => [
+ q(4030) => [
q(Long Phuri Naga),
],
- q(4040) => [
+ q(4031) => [
q(Lipo),
],
- q(4041) => [
+ q(4032) => [
q(Lopit),
],
- q(4042) => [
+ q(4033) => [
q(Rara Bakati'),
],
- q(4043) => [
+ q(4034) => [
q(Northern Luri),
],
- q(4044) => [
+ q(4035) => [
q(Laurentian),
],
- q(4045) => [
+ q(4036) => [
q(Laragia),
],
- q(4046) => [
+ q(4037) => [
q(Marachi),
q(Olumarachi),
],
- q(4047) => [
+ q(4038) => [
q(Loarki),
],
- q(4048) => [
+ q(4039) => [
q(Lari),
],
- q(4049) => [
+ q(4040) => [
q(Marama),
q(Olumarama),
],
- q(4050) => [
+ q(4041) => [
q(Lorang),
],
- q(4051) => [
+ q(4042) => [
q(Laro),
],
- q(4052) => [
+ q(4043) => [
q(Southern Yamphu),
],
- q(4053) => [
+ q(4044) => [
q(Larantuka Malay),
],
- q(4054) => [
+ q(4045) => [
q(Larevat),
],
- q(4055) => [
+ q(4046) => [
q(Lemerig),
],
- q(4056) => [
+ q(4047) => [
q(Lasgerdi),
],
- q(4057) => [
+ q(4048) => [
q(Lishana Deni),
],
- q(4058) => [
+ q(4049) => [
q(Lusengo),
],
- q(4059) => [
+ q(4050) => [
q(Lyons Sign Language),
],
- q(4060) => [
+ q(4051) => [
q(Lish),
],
- q(4061) => [
+ q(4052) => [
q(Lashi),
],
- q(4062) => [
+ q(4053) => [
q(Latvian Sign Language),
],
- q(4063) => [
+ q(4054) => [
q(Saamia),
q(Olusamia),
],
- q(4064) => [
+ q(4055) => [
q(Laos Sign Language),
],
- q(4065) => [
+ q(4056) => [
q(Panamanian Sign Language),
q(Lengua de Senas Panamenas),
],
- q(4066) => [
+ q(4057) => [
q(Aruop),
],
- q(4067) => [
+ q(4058) => [
q(Lasi),
],
- q(4068) => [
+ q(4059) => [
q(Trinidad and Tobago Sign Language),
],
- q(4069) => [
+ q(4060) => [
q(Mauritian Sign Language),
],
- q(4070) => [
+ q(4061) => [
q(Late Middle Chinese),
],
- q(4071) => [
+ q(4062) => [
q(Latgalian),
],
- q(4072) => [
+ q(4063) => [
+ q(Thur),
+ ],
+ q(4064) => [
q(Leti (Indonesia)),
],
- q(4073) => [
+ q(4065) => [
q(Latunde),
],
- q(4074) => [
+ q(4066) => [
q(Tsotso),
q(Olutsotso),
],
- q(4075) => [
+ q(4067) => [
q(Tachoni),
q(Lutachoni),
],
- q(4076) => [
+ q(4068) => [
q(Latu),
],
- q(4077) => [
+ q(4069) => [
q(Aringa),
],
- q(4078) => [
+ q(4070) => [
q(Ludian),
],
- q(4079) => [
+ q(4071) => [
q(Luvale),
],
- q(4080) => [
+ q(4072) => [
q(Laua),
],
- q(4081) => [
+ q(4073) => [
q(Luna),
],
- q(4082) => [
+ q(4074) => [
q(Lunanakha),
],
- q(4083) => [
+ q(4075) => [
q(Olu'bo),
],
- q(4084) => [
+ q(4076) => [
q(Luimbi),
],
- q(4085) => [
+ q(4077) => [
q(Lumbu),
],
- q(4086) => [
+ q(4078) => [
q(Lucumi),
],
- q(4087) => [
+ q(4079) => [
q(Laura),
],
- q(4088) => [
+ q(4080) => [
q(Lushootseed),
],
- q(4089) => [
+ q(4081) => [
q(Lumba-Yakkha),
],
- q(4090) => [
+ q(4082) => [
q(Luwati),
],
- q(4091) => [
+ q(4083) => [
q(Luo (Cameroon)),
],
- q(4092) => [
+ q(4084) => [
q(Luyia),
q(Oluluyia),
],
- q(4093) => [
+ q(4085) => [
q(Southern Luri),
],
- q(4094) => [
+ q(4086) => [
q(Maku'a),
],
- q(4095) => [
+ q(4087) => [
q(Lavukaleve),
],
- q(4096) => [
+ q(4088) => [
q(Standard Latvian),
],
- q(4097) => [
+ q(4089) => [
q(Levuka),
],
- q(4098) => [
+ q(4090) => [
q(Lwalu),
],
- q(4099) => [
+ q(4091) => [
q(Lewo Eleng),
],
- q(4100) => [
+ q(4092) => [
q(Wanga),
q(Oluwanga),
],
- q(4101) => [
+ q(4093) => [
q(White Lachi),
],
- q(4102) => [
+ q(4094) => [
q(Eastern Lawa),
],
- q(4103) => [
+ q(4095) => [
q(Laomian),
],
- q(4104) => [
+ q(4096) => [
q(Luwo),
],
- q(4105) => [
+ q(4097) => [
q(Lewotobi),
],
- q(4106) => [
+ q(4098) => [
q(Lawu),
],
- q(4107) => [
+ q(4099) => [
q(Lewo),
],
- q(4108) => [
+ q(4100) => [
q(Layakha),
],
- q(4109) => [
+ q(4101) => [
q(Lyngngam),
],
- q(4110) => [
+ q(4102) => [
q(Luyana),
],
- q(4111) => [
+ q(4103) => [
q(Literary Chinese),
],
- q(4112) => [
+ q(4104) => [
q(Litzlitz),
],
- q(4113) => [
+ q(4105) => [
q(Leinong Naga),
],
- q(4114) => [
+ q(4106) => [
q(Laz),
],
- q(4115) => [
+ q(4107) => [
q(San Jeronimo Tecoatl Mazatec),
],
- q(4116) => [
+ q(4108) => [
q(Yutanduchi Mixtec),
],
- q(4117) => [
+ q(4109) => [
q(Bo-Rukul),
],
- q(4118) => [
+ q(4110) => [
q(Mafa),
],
- q(4119) => [
+ q(4111) => [
q(Jalapa De Diaz Mazatec),
],
- q(4120) => [
+ q(4112) => [
q(Mam),
],
- q(4121) => [
+ q(4113) => [
q(Chiquihuitlan Mazatec),
],
- q(4122) => [
+ q(4114) => [
q(San Francisco Matlatzinca),
],
- q(4123) => [
+ q(4115) => [
q(Huautla Mazatec),
],
- q(4124) => [
+ q(4116) => [
q(Satere-Mawe),
],
- q(4125) => [
+ q(4117) => [
q(Mampruli),
],
- q(4126) => [
+ q(4118) => [
q(North Moluccan Malay),
],
- q(4127) => [
+ q(4119) => [
q(Central Mazahua),
],
- q(4128) => [
+ q(4120) => [
q(Higaonon),
],
- q(4129) => [
+ q(4121) => [
q(Western Bukidnon Manobo),
],
- q(4130) => [
+ q(4122) => [
q(Macushi),
],
- q(4131) => [
+ q(4123) => [
q(Dibabawon Manobo),
],
- q(4132) => [
+ q(4124) => [
q(Molale),
],
- q(4133) => [
+ q(4125) => [
q(Baba Malay),
],
- q(4134) => [
+ q(4126) => [
q(Mangseng),
],
- q(4135) => [
+ q(4127) => [
q(Ilianen Manobo),
],
- q(4136) => [
+ q(4128) => [
q(Nadeb),
],
- q(4137) => [
+ q(4129) => [
q(Malol),
],
- q(4138) => [
+ q(4130) => [
q(Maxakali),
],
- q(4139) => [
+ q(4131) => [
q(Ombamba),
],
- q(4140) => [
+ q(4132) => [
q(Macaguan),
],
- q(4141) => [
+ q(4133) => [
q(Mbo (Cameroon)),
],
- q(4142) => [
+ q(4134) => [
q(Malayo),
],
- q(4143) => [
+ q(4135) => [
q(Maisin),
],
- q(4144) => [
+ q(4136) => [
q(Nukak Maku),
],
- q(4145) => [
+ q(4137) => [
q(Sarangani Manobo),
],
- q(4146) => [
+ q(4138) => [
q(Matigsalug Manobo),
],
- q(4147) => [
+ q(4139) => [
q(Mbula-Bwazza),
],
- q(4148) => [
+ q(4140) => [
q(Mbulungish),
],
- q(4149) => [
+ q(4141) => [
q(Maring),
],
- q(4150) => [
+ q(4142) => [
q(Mari (East Sepik Province)),
],
- q(4151) => [
+ q(4143) => [
q(Memoni),
],
- q(4152) => [
+ q(4144) => [
q(Amoltepec Mixtec),
],
- q(4153) => [
+ q(4145) => [
q(Maca),
],
- q(4154) => [
+ q(4146) => [
q(Machiguenga),
],
- q(4155) => [
+ q(4147) => [
q(Bitur),
],
- q(4156) => [
+ q(4148) => [
q(Sharanahua),
],
- q(4157) => [
+ q(4149) => [
q(Itundujia Mixtec),
],
- q(4158) => [
+ q(4150) => [
q(Matses),
],
- q(4159) => [
+ q(4151) => [
q(Mapoyo),
],
- q(4160) => [
+ q(4152) => [
q(Maquiritari),
],
- q(4161) => [
+ q(4153) => [
q(Mese),
],
- q(4162) => [
+ q(4154) => [
q(Mvanip),
],
- q(4163) => [
+ q(4155) => [
q(Mbunda),
],
- q(4164) => [
+ q(4156) => [
q(Macaguaje),
],
- q(4165) => [
+ q(4157) => [
q(Malaccan Creole Portuguese),
],
- q(4166) => [
+ q(4158) => [
q(Masana),
],
- q(4167) => [
+ q(4159) => [
q(Coatlan Mixe),
],
- q(4168) => [
+ q(4160) => [
q(Makaa),
],
- q(4169) => [
+ q(4161) => [
q(Ese),
],
- q(4170) => [
+ q(4162) => [
q(Menya),
],
- q(4171) => [
+ q(4163) => [
q(Mambai),
],
- q(4172) => [
+ q(4164) => [
q(Mengisa),
],
- q(4173) => [
+ q(4165) => [
q(Cameroon Mambila),
],
- q(4174) => [
+ q(4166) => [
q(Minanibai),
],
- q(4175) => [
+ q(4167) => [
q(Mawa (Chad)),
],
- q(4176) => [
+ q(4168) => [
q(Mpiemo),
],
- q(4177) => [
+ q(4169) => [
q(South Watut),
],
- q(4178) => [
+ q(4170) => [
q(Mawan),
],
- q(4179) => [
+ q(4171) => [
q(Mada (Nigeria)),
],
- q(4180) => [
+ q(4172) => [
q(Morigi),
],
- q(4181) => [
+ q(4173) => [
q(Male (Papua New Guinea)),
],
- q(4182) => [
+ q(4174) => [
q(Mbum),
],
- q(4183) => [
+ q(4175) => [
q(Maba (Chad)),
],
- q(4184) => [
+ q(4176) => [
q(Massalat),
],
- q(4185) => [
+ q(4177) => [
q(Maguindanaon),
],
- q(4186) => [
+ q(4178) => [
q(Mamvu),
],
- q(4187) => [
+ q(4179) => [
q(Mangbetu),
],
- q(4188) => [
+ q(4180) => [
q(Mangbutu),
],
- q(4189) => [
+ q(4181) => [
q(Maltese Sign Language),
],
- q(4190) => [
+ q(4182) => [
q(Mayogo),
],
- q(4191) => [
+ q(4183) => [
q(Mbati),
],
- q(4192) => [
+ q(4184) => [
q(Mbala),
],
- q(4193) => [
+ q(4185) => [
q(Mbole),
],
- q(4194) => [
+ q(4186) => [
q(Maria (Papua New Guinea)),
],
- q(4195) => [
+ q(4187) => [
q(Mbere),
],
- q(4196) => [
+ q(4188) => [
q(Mboko),
],
- q(4197) => [
+ q(4189) => [
q(Santa Lucia Monteverde Mixtec),
],
- q(4198) => [
+ q(4190) => [
q(Mbosi),
],
- q(4199) => [
+ q(4191) => [
q(Dizin),
],
- q(4200) => [
+ q(4192) => [
q(Male (Ethiopia)),
],
- q(4201) => [
+ q(4193) => [
q(Surui Do Para),
],
- q(4202) => [
+ q(4194) => [
q(Menka),
],
- q(4203) => [
+ q(4195) => [
q(Ikobi),
],
- q(4204) => [
+ q(4196) => [
q(Mara),
],
- q(4205) => [
+ q(4197) => [
q(Melpa),
],
- q(4206) => [
+ q(4198) => [
q(Mengen),
],
- q(4207) => [
+ q(4199) => [
q(Megam),
],
- q(4208) => [
+ q(4200) => [
q(Southwestern Tlaxiaco Mixtec),
],
- q(4209) => [
+ q(4201) => [
q(Midob),
],
- q(4210) => [
+ q(4202) => [
q(Meyah),
],
- q(4211) => [
+ q(4203) => [
q(Mekeo),
],
- q(4212) => [
+ q(4204) => [
q(Central Melanau),
],
- q(4213) => [
+ q(4205) => [
q(Mangala),
],
- q(4214) => [
+ q(4206) => [
q(Kedah Malay),
],
- q(4215) => [
+ q(4207) => [
q(Miriwung),
],
- q(4216) => [
+ q(4208) => [
q(Merey),
],
- q(4217) => [
+ q(4209) => [
q(Meru),
],
- q(4218) => [
+ q(4210) => [
q(Masmaje),
],
- q(4219) => [
+ q(4211) => [
q(Mato),
],
- q(4220) => [
+ q(4212) => [
q(Motu),
],
- q(4221) => [
+ q(4213) => [
q(Mano),
],
- q(4222) => [
+ q(4214) => [
q(Maaka),
],
- q(4223) => [
+ q(4215) => [
q(Hassaniyya),
],
- q(4224) => [
+ q(4216) => [
q(Menominee),
],
- q(4225) => [
+ q(4217) => [
q(Pattani Malay),
],
- q(4226) => [
+ q(4218) => [
q(Bangka),
],
- q(4227) => [
+ q(4219) => [
q(Mba),
],
- q(4228) => [
+ q(4220) => [
q(Mendankwe-Nkwen),
],
- q(4229) => [
+ q(4221) => [
q(Morisyen),
],
- q(4230) => [
+ q(4222) => [
q(Naki),
],
- q(4231) => [
+ q(4223) => [
q(Mogofin),
],
- q(4232) => [
+ q(4224) => [
q(Matal),
],
- q(4233) => [
+ q(4225) => [
q(Wandala),
],
- q(4234) => [
+ q(4226) => [
q(Mefele),
],
- q(4235) => [
+ q(4227) => [
q(North Mofu),
],
- q(4236) => [
+ q(4228) => [
q(Putai),
],
- q(4237) => [
+ q(4229) => [
q(Marghi South),
],
- q(4238) => [
+ q(4230) => [
q(Cross River Mbembe),
],
- q(4239) => [
+ q(4231) => [
q(Mbe),
],
- q(4240) => [
+ q(4232) => [
q(Makassar Malay),
],
- q(4241) => [
+ q(4233) => [
q(Moba),
],
- q(4242) => [
+ q(4234) => [
q(Marithiel),
],
- q(4243) => [
+ q(4235) => [
q(Mexican Sign Language),
],
- q(4244) => [
+ q(4236) => [
q(Mokerang),
],
- q(4245) => [
+ q(4237) => [
q(Mbwela),
],
- q(4246) => [
+ q(4238) => [
q(Mandjak),
],
- q(4247) => [
+ q(4239) => [
q(Mulaha),
],
- q(4248) => [
+ q(4240) => [
q(Melo),
],
- q(4249) => [
+ q(4241) => [
q(Mayo),
],
- q(4250) => [
+ q(4242) => [
q(Mabaan),
],
- q(4251) => [
+ q(4243) => [
q(Mararit),
],
- q(4252) => [
+ q(4244) => [
q(Morokodo),
],
- q(4253) => [
+ q(4245) => [
q(Moru),
],
- q(4254) => [
+ q(4246) => [
q(Mango),
],
- q(4255) => [
+ q(4247) => [
q(Maklew),
],
- q(4256) => [
+ q(4248) => [
q(Mpumpong),
],
- q(4257) => [
+ q(4249) => [
q(Makhuwa-Meetto),
],
- q(4258) => [
+ q(4250) => [
q(Lijili),
],
- q(4259) => [
+ q(4251) => [
q(Abureni),
],
- q(4260) => [
+ q(4252) => [
q(Mawes),
],
- q(4261) => [
+ q(4253) => [
q(Maleu-Kilenge),
],
- q(4262) => [
+ q(4254) => [
q(Mambae),
],
- q(4263) => [
+ q(4255) => [
q(Mbangi),
],
- q(4264) => [
+ q(4256) => [
q(Meta'),
],
- q(4265) => [
+ q(4257) => [
q(Eastern Magar),
],
- q(4266) => [
+ q(4258) => [
q(Malila),
],
- q(4267) => [
+ q(4259) => [
q(Mambwe-Lungu),
],
- q(4268) => [
+ q(4260) => [
q(Manda (Tanzania)),
],
- q(4269) => [
+ q(4261) => [
q(Mongol),
],
- q(4270) => [
+ q(4262) => [
q(Mailu),
],
- q(4271) => [
+ q(4263) => [
q(Matengo),
],
- q(4272) => [
+ q(4264) => [
q(Matumbi),
],
- q(4273) => [
+ q(4265) => [
q(Mbunga),
],
- q(4274) => [
+ q(4266) => [
q(Mbugwe),
],
- q(4275) => [
+ q(4267) => [
q(Manda (India)),
],
- q(4276) => [
+ q(4268) => [
q(Mahongwe),
],
- q(4277) => [
+ q(4269) => [
q(Mocho),
],
- q(4278) => [
+ q(4270) => [
q(Mbugu),
],
- q(4279) => [
+ q(4271) => [
q(Besisi),
q(Mah Meri),
],
- q(4280) => [
+ q(4272) => [
q(Mamaa),
],
- q(4281) => [
+ q(4273) => [
q(Margu),
],
- q(4282) => [
+ q(4274) => [
q(Ma'di),
],
- q(4283) => [
+ q(4275) => [
q(Mogholi),
],
- q(4284) => [
+ q(4276) => [
q(Mungaka),
],
- q(4285) => [
+ q(4277) => [
q(Mauwake),
],
- q(4286) => [
+ q(4278) => [
q(Makhuwa-Moniga),
],
- q(4287) => [
+ q(4279) => [
q(Mocheno),
],
- q(4288) => [
+ q(4280) => [
q(Mashi (Zambia)),
],
- q(4289) => [
+ q(4281) => [
q(Balinese Malay),
],
- q(4290) => [
+ q(4282) => [
q(Mandan),
],
- q(4291) => [
+ q(4283) => [
q(Eastern Mari),
],
- q(4292) => [
+ q(4284) => [
q(Buru (Indonesia)),
],
- q(4293) => [
+ q(4285) => [
q(Mandahuaca),
],
- q(4294) => [
+ q(4286) => [
q(Digaro-Mishmi),
q(Darang Deng),
],
- q(4295) => [
+ q(4287) => [
q(Mbukushu),
],
- q(4296) => [
+ q(4288) => [
q(Maru),
q(Lhaovo),
],
- q(4297) => [
+ q(4289) => [
q(Ma'anyan),
],
- q(4298) => [
+ q(4290) => [
q(Mor (Mor Islands)),
],
- q(4299) => [
+ q(4291) => [
q(Miami),
],
- q(4300) => [
+ q(4292) => [
q(Atatlahuca Mixtec),
],
- q(4301) => [
+ q(4293) => [
q(Mandaic),
],
- q(4302) => [
+ q(4294) => [
q(Ocotepec Mixtec),
],
- q(4303) => [
+ q(4295) => [
q(Mofu-Gudur),
],
- q(4304) => [
+ q(4296) => [
q(San Miguel El Grande Mixtec),
],
- q(4305) => [
+ q(4297) => [
q(Chayuco Mixtec),
],
- q(4306) => [
+ q(4298) => [
q(Chigmecatitlan Mixtec),
],
- q(4307) => [
+ q(4299) => [
q(Abar),
q(Mungbam),
],
- q(4308) => [
+ q(4300) => [
q(Mikasuki),
],
- q(4309) => [
+ q(4301) => [
q(Penoles Mixtec),
],
- q(4310) => [
+ q(4302) => [
q(Alacatlatzala Mixtec),
],
- q(4311) => [
+ q(4303) => [
q(Pinotepa Nacional Mixtec),
],
- q(4312) => [
+ q(4304) => [
q(Apasco-Apoala Mixtec),
],
- q(4313) => [
+ q(4305) => [
q(Miskito),
],
- q(4314) => [
+ q(4306) => [
q(Isthmus Mixe),
],
- q(4315) => [
+ q(4307) => [
q(Southern Puebla Mixtec),
],
- q(4316) => [
+ q(4308) => [
q(Cacaloxtepec Mixtec),
],
- q(4317) => [
+ q(4309) => [
q(Akoye),
],
- q(4318) => [
+ q(4310) => [
q(Mixtepec Mixtec),
],
- q(4319) => [
+ q(4311) => [
q(Ayutla Mixtec),
],
- q(4320) => [
+ q(4312) => [
q(Coatzospan Mixtec),
],
- q(4321) => [
+ q(4313) => [
+ q(Makalero),
+ ],
+ q(4314) => [
q(San Juan Colorado Mixtec),
],
- q(4322) => [
+ q(4315) => [
q(Northwest Maidu),
],
- q(4323) => [
+ q(4316) => [
q(Muskum),
],
- q(4324) => [
+ q(4317) => [
q(Tu),
],
- q(4325) => [
+ q(4318) => [
q(Mwera (Nyasa)),
],
- q(4326) => [
+ q(4319) => [
q(Kim Mun),
],
- q(4327) => [
+ q(4320) => [
q(Mawak),
],
- q(4328) => [
+ q(4321) => [
q(Matukar),
],
- q(4329) => [
+ q(4322) => [
q(Mandeali),
],
- q(4330) => [
+ q(4323) => [
q(Medebur),
],
- q(4331) => [
+ q(4324) => [
q(Ma (Papua New Guinea)),
],
- q(4332) => [
+ q(4325) => [
q(Malankuravan),
],
- q(4333) => [
+ q(4326) => [
q(Malapandaram),
],
- q(4334) => [
+ q(4327) => [
q(Malaryan),
],
- q(4335) => [
+ q(4328) => [
q(Malavedan),
],
- q(4336) => [
+ q(4329) => [
q(Miship),
],
- q(4337) => [
+ q(4330) => [
q(Sauria Paharia),
],
- q(4338) => [
+ q(4331) => [
q(Manna-Dora),
],
- q(4339) => [
+ q(4332) => [
q(Mannan),
],
- q(4340) => [
+ q(4333) => [
q(Karbi),
],
- q(4341) => [
+ q(4334) => [
q(Mahali),
],
- q(4342) => [
+ q(4335) => [
q(Mahican),
],
- q(4343) => [
+ q(4336) => [
q(Majhi),
],
- q(4344) => [
+ q(4337) => [
q(Mbre),
],
- q(4345) => [
+ q(4338) => [
q(Mal Paharia),
],
- q(4346) => [
+ q(4339) => [
q(Siliput),
],
- q(4347) => [
+ q(4340) => [
q(Mawchi),
],
- q(4348) => [
+ q(4341) => [
q(Miya),
],
- q(4349) => [
+ q(4342) => [
q(Mak (China)),
],
- q(4350) => [
+ q(4343) => [
q(Dhatki),
],
- q(4351) => [
+ q(4344) => [
q(Mokilese),
],
- q(4352) => [
+ q(4345) => [
q(Byep),
],
- q(4353) => [
+ q(4346) => [
q(Mokole),
],
- q(4354) => [
+ q(4347) => [
q(Moklen),
],
- q(4355) => [
+ q(4348) => [
q(Kupang Malay),
],
- q(4356) => [
+ q(4349) => [
q(Mingang Doso),
],
- q(4357) => [
+ q(4350) => [
q(Moikodi),
],
- q(4358) => [
+ q(4351) => [
q(Bay Miwok),
],
- q(4359) => [
+ q(4352) => [
q(Malas),
],
- q(4360) => [
+ q(4353) => [
q(Silacayoapan Mixtec),
],
- q(4361) => [
+ q(4354) => [
q(Vamale),
],
- q(4362) => [
+ q(4355) => [
q(Konyanka Maninka),
],
- q(4363) => [
+ q(4356) => [
q(Mafea),
],
- q(4364) => [
+ q(4357) => [
q(Kituba (Congo)),
],
- q(4365) => [
+ q(4358) => [
q(Kinamiging Manobo),
],
- q(4366) => [
+ q(4359) => [
q(East Makian),
],
- q(4367) => [
+ q(4360) => [
q(Makasae),
],
- q(4368) => [
+ q(4361) => [
q(Malo),
],
- q(4369) => [
+ q(4362) => [
q(Mbule),
],
- q(4370) => [
+ q(4363) => [
q(Cao Lan),
],
- q(4371) => [
+ q(4364) => [
q(Manambu),
],
- q(4372) => [
+ q(4365) => [
q(Mal),
],
- q(4373) => [
+ q(4366) => [
q(Mape),
],
- q(4374) => [
+ q(4367) => [
q(Malimpung),
],
- q(4375) => [
+ q(4368) => [
q(Miltu),
],
- q(4376) => [
+ q(4369) => [
q(Ilwana),
q(Kiwilwana),
],
- q(4377) => [
+ q(4370) => [
q(Malua Bay),
],
- q(4378) => [
+ q(4371) => [
q(Mulam),
],
- q(4379) => [
+ q(4372) => [
q(Malango),
],
- q(4380) => [
+ q(4373) => [
q(Mlomp),
],
- q(4381) => [
+ q(4374) => [
q(Bargam),
],
- q(4382) => [
+ q(4375) => [
q(Western Maninkakan),
],
- q(4383) => [
+ q(4376) => [
q(Vame),
],
- q(4384) => [
+ q(4377) => [
q(Masalit),
],
- q(4385) => [
+ q(4378) => [
q(To'abaita),
],
- q(4386) => [
+ q(4379) => [
q(Motlav),
q(Mwotlap),
],
- q(4387) => [
+ q(4380) => [
q(Moloko),
],
- q(4388) => [
+ q(4381) => [
q(Malfaxal),
q(Naha'ai),
],
- q(4389) => [
+ q(4382) => [
q(Malaynon),
],
- q(4390) => [
+ q(4383) => [
q(Mama),
],
- q(4391) => [
+ q(4384) => [
q(Momina),
],
- q(4392) => [
+ q(4385) => [
q(Michoacan Mazahua),
],
- q(4393) => [
+ q(4386) => [
q(Maonan),
],
- q(4394) => [
+ q(4387) => [
q(Mae),
],
- q(4395) => [
+ q(4388) => [
q(Mundat),
],
- q(4396) => [
+ q(4389) => [
q(North Ambrym),
],
- q(4397) => [
+ q(4390) => [
q(Mehinaku),
],
- q(4398) => [
+ q(4391) => [
q(Musar),
],
- q(4399) => [
+ q(4392) => [
q(Majhwar),
],
- q(4400) => [
+ q(4393) => [
q(Mukha-Dora),
],
- q(4401) => [
+ q(4394) => [
q(Man Met),
],
- q(4402) => [
+ q(4395) => [
q(Maii),
],
- q(4403) => [
+ q(4396) => [
q(Mamanwa),
],
- q(4404) => [
+ q(4397) => [
q(Mangga Buang),
],
- q(4405) => [
+ q(4398) => [
q(Siawi),
],
- q(4406) => [
+ q(4399) => [
q(Musak),
],
- q(4407) => [
+ q(4400) => [
q(Western Xiangxi Miao),
],
- q(4408) => [
+ q(4401) => [
q(Malalamai),
],
- q(4409) => [
+ q(4402) => [
q(Mmaala),
],
- q(4410) => [
+ q(4403) => [
q(Miriti),
],
- q(4411) => [
+ q(4404) => [
q(Emae),
],
- q(4412) => [
+ q(4405) => [
q(Madak),
],
- q(4413) => [
+ q(4406) => [
q(Migaama),
],
- q(4414) => [
+ q(4407) => [
q(Mabaale),
],
- q(4415) => [
+ q(4408) => [
q(Mbula),
],
- q(4416) => [
+ q(4409) => [
q(Muna),
],
- q(4417) => [
+ q(4410) => [
q(Monde),
],
- q(4418) => [
+ q(4411) => [
q(Naba),
],
- q(4419) => [
+ q(4412) => [
q(Mundani),
],
- q(4420) => [
+ q(4413) => [
q(Eastern Mnong),
],
- q(4421) => [
+ q(4414) => [
q(Mono (Democratic Republic of Congo)),
],
- q(4422) => [
+ q(4415) => [
q(Munji),
],
- q(4423) => [
+ q(4416) => [
q(Mandinka),
],
- q(4424) => [
+ q(4417) => [
q(Tiale),
],
- q(4425) => [
+ q(4418) => [
q(Mapena),
],
- q(4426) => [
+ q(4419) => [
q(Southern Mnong),
],
- q(4427) => [
+ q(4420) => [
q(Min Bei Chinese),
],
- q(4428) => [
+ q(4421) => [
q(Minriq),
],
- q(4429) => [
+ q(4422) => [
q(Mono (USA)),
],
- q(4430) => [
+ q(4423) => [
q(Mansi),
],
- q(4431) => [
+ q(4424) => [
q(Mer),
],
- q(4432) => [
+ q(4425) => [
q(Rennell-Bellona),
],
- q(4433) => [
+ q(4426) => [
q(Mon),
],
- q(4434) => [
+ q(4427) => [
q(Manikion),
],
- q(4435) => [
+ q(4428) => [
q(Manyawa),
],
- q(4436) => [
+ q(4429) => [
q(Moni),
],
- q(4437) => [
+ q(4430) => [
q(Mwan),
],
- q(4438) => [
+ q(4431) => [
q(Mocovi),
],
- q(4439) => [
+ q(4432) => [
q(Mobilian),
],
- q(4440) => [
+ q(4433) => [
q(Montagnais),
],
- q(4441) => [
+ q(4434) => [
q(Mongondow),
],
- q(4442) => [
+ q(4435) => [
q(Mboi),
],
- q(4443) => [
+ q(4436) => [
q(Monzombo),
],
- q(4444) => [
+ q(4437) => [
q(Morori),
],
- q(4445) => [
+ q(4438) => [
q(Mangue),
],
- q(4446) => [
+ q(4439) => [
q(Monom),
],
- q(4447) => [
+ q(4440) => [
q(Mopan Maya),
],
- q(4448) => [
+ q(4441) => [
q(Mor (Bomberai Peninsula)),
],
- q(4449) => [
+ q(4442) => [
q(Moro),
],
- q(4450) => [
+ q(4443) => [
q(Mogum),
],
- q(4451) => [
+ q(4444) => [
q(Mohave),
],
- q(4452) => [
+ q(4445) => [
q(Moi (Congo)),
],
- q(4453) => [
+ q(4446) => [
q(Molima),
],
- q(4454) => [
+ q(4447) => [
q(Shekkacho),
],
- q(4455) => [
+ q(4448) => [
q(Mukulu),
q(Gergiko),
],
- q(4456) => [
+ q(4449) => [
q(Mpoto),
],
- q(4457) => [
+ q(4450) => [
q(Mullukmulluk),
],
- q(4458) => [
+ q(4451) => [
q(Mangarayi),
],
- q(4459) => [
+ q(4452) => [
q(Machinere),
],
- q(4460) => [
+ q(4453) => [
q(Majang),
],
- q(4461) => [
+ q(4454) => [
q(Marba),
],
- q(4462) => [
+ q(4455) => [
q(Maung),
],
- q(4463) => [
+ q(4456) => [
q(Mpade),
],
- q(4464) => [
+ q(4457) => [
q(Martu Wangka),
],
- q(4465) => [
+ q(4458) => [
q(Mbara (Chad)),
],
- q(4466) => [
+ q(4459) => [
q(Middle Watut),
],
- q(4467) => [
+ q(4460) => [
q(Yosondua Mixtec),
],
- q(4468) => [
+ q(4461) => [
q(Mindiri),
],
- q(4469) => [
+ q(4462) => [
q(Miu),
],
- q(4470) => [
+ q(4463) => [
q(Migabac),
],
- q(4471) => [
+ q(4464) => [
q(Matis),
],
- q(4472) => [
+ q(4465) => [
q(Vangunu),
],
- q(4473) => [
+ q(4466) => [
q(Dadibi),
],
- q(4474) => [
+ q(4467) => [
q(Mian),
],
- q(4475) => [
+ q(4468) => [
q(Makurap),
],
- q(4476) => [
+ q(4469) => [
q(Mungkip),
],
- q(4477) => [
+ q(4470) => [
q(Mapidian),
],
- q(4478) => [
+ q(4471) => [
q(Misima-Panaeati),
],
- q(4479) => [
+ q(4472) => [
q(Mapia),
],
- q(4480) => [
+ q(4473) => [
q(Mpi),
],
- q(4481) => [
+ q(4474) => [
q(Maba (Indonesia)),
],
- q(4482) => [
+ q(4475) => [
q(Mbuko),
],
- q(4483) => [
+ q(4476) => [
q(Mangole),
],
- q(4484) => [
+ q(4477) => [
q(Matepi),
],
- q(4485) => [
+ q(4478) => [
q(Momuna),
],
- q(4486) => [
+ q(4479) => [
q(Kota Bangun Kutai Malay),
],
- q(4487) => [
+ q(4480) => [
q(Tlazoyaltepec Mixtec),
],
- q(4488) => [
+ q(4481) => [
q(Mariri),
],
- q(4489) => [
+ q(4482) => [
q(Mamasa),
],
- q(4490) => [
+ q(4483) => [
q(Rajah Kabunsuwan Manobo),
],
- q(4491) => [
+ q(4484) => [
q(Mbelime),
],
- q(4492) => [
+ q(4485) => [
q(South Marquesan),
],
- q(4493) => [
+ q(4486) => [
q(Moronene),
],
- q(4494) => [
+ q(4487) => [
q(Modole),
],
- q(4495) => [
+ q(4488) => [
q(Manipa),
],
- q(4496) => [
+ q(4489) => [
q(Minokok),
],
- q(4497) => [
+ q(4490) => [
q(Mander),
],
- q(4498) => [
+ q(4491) => [
q(West Makian),
],
- q(4499) => [
+ q(4492) => [
q(Mok),
],
- q(4500) => [
+ q(4493) => [
q(Mandari),
],
- q(4501) => [
+ q(4494) => [
q(Mosimo),
],
- q(4502) => [
+ q(4495) => [
q(Murupi),
],
- q(4503) => [
+ q(4496) => [
q(Mamuju),
],
- q(4504) => [
+ q(4497) => [
q(Manggarai),
],
- q(4505) => [
+ q(4498) => [
q(Pano),
],
- q(4506) => [
+ q(4499) => [
q(Mlabri),
],
- q(4507) => [
+ q(4500) => [
q(Marino),
],
- q(4508) => [
+ q(4501) => [
q(Maricopa),
],
- q(4509) => [
+ q(4502) => [
q(Western Magar),
],
- q(4510) => [
+ q(4503) => [
q(Martha's Vineyard Sign Language),
],
- q(4511) => [
+ q(4504) => [
q(Elseng),
],
- q(4512) => [
+ q(4505) => [
q(Mising),
],
- q(4513) => [
+ q(4506) => [
q(Mara Chin),
],
- q(4514) => [
+ q(4507) => [
q(Western Mari),
],
- q(4515) => [
+ q(4508) => [
q(Hmwaveke),
],
- q(4516) => [
+ q(4509) => [
q(Mortlockese),
],
- q(4517) => [
+ q(4510) => [
q(Merlav),
q(Mwerlap),
],
- q(4518) => [
+ q(4511) => [
q(Cheke Holo),
],
- q(4519) => [
+ q(4512) => [
q(Mru),
],
- q(4520) => [
+ q(4513) => [
q(Morouas),
],
- q(4521) => [
+ q(4514) => [
q(North Marquesan),
],
- q(4522) => [
+ q(4515) => [
q(Maria (India)),
],
- q(4523) => [
+ q(4516) => [
q(Maragus),
],
- q(4524) => [
+ q(4517) => [
q(Marghi Central),
],
- q(4525) => [
+ q(4518) => [
q(Mono (Cameroon)),
],
- q(4526) => [
+ q(4519) => [
q(Mangareva),
],
- q(4527) => [
+ q(4520) => [
q(Maranao),
],
- q(4528) => [
+ q(4521) => [
q(Maremgi),
q(Dineor),
],
- q(4529) => [
+ q(4522) => [
q(Mandaya),
],
- q(4530) => [
+ q(4523) => [
q(Marind),
],
- q(4531) => [
+ q(4524) => [
q(Masbatenyo),
],
- q(4532) => [
+ q(4525) => [
q(Sankaran Maninka),
],
- q(4533) => [
+ q(4526) => [
q(Yucatec Maya Sign Language),
],
- q(4534) => [
+ q(4527) => [
q(Musey),
],
- q(4535) => [
+ q(4528) => [
q(Mekwei),
],
- q(4536) => [
+ q(4529) => [
q(Moraid),
],
- q(4537) => [
+ q(4530) => [
q(Masikoro Malagasy),
],
- q(4538) => [
+ q(4531) => [
q(Sabah Malay),
],
- q(4539) => [
+ q(4532) => [
q(Ma (Democratic Republic of Congo)),
],
- q(4540) => [
+ q(4533) => [
q(Mansaka),
],
- q(4541) => [
+ q(4534) => [
q(Molof),
q(Poule),
],
- q(4542) => [
+ q(4535) => [
q(Agusan Manobo),
],
- q(4543) => [
+ q(4536) => [
q(Vures),
],
- q(4544) => [
+ q(4537) => [
q(Mombum),
],
- q(4545) => [
+ q(4538) => [
q(Maritsaua),
],
- q(4546) => [
+ q(4539) => [
q(Caac),
],
- q(4547) => [
+ q(4540) => [
q(Mongolian Sign Language),
],
- q(4548) => [
+ q(4541) => [
q(West Masela),
],
- q(4549) => [
+ q(4542) => [
q(Musom),
],
- q(4550) => [
+ q(4543) => [
q(Maslam),
],
- q(4551) => [
+ q(4544) => [
q(Mansoanka),
],
- q(4552) => [
+ q(4545) => [
q(Moresada),
],
- q(4553) => [
+ q(4546) => [
q(Aruamu),
],
- q(4554) => [
+ q(4547) => [
q(Momare),
],
- q(4555) => [
+ q(4548) => [
q(Cotabato Manobo),
],
- q(4556) => [
+ q(4549) => [
q(Anyin Morofo),
],
- q(4557) => [
+ q(4550) => [
q(Munit),
],
- q(4558) => [
+ q(4551) => [
q(Mualang),
],
- q(4559) => [
+ q(4552) => [
q(Mono (Solomon Islands)),
],
- q(4560) => [
+ q(4553) => [
q(Murik (Papua New Guinea)),
],
- q(4561) => [
+ q(4554) => [
q(Una),
],
- q(4562) => [
+ q(4555) => [
q(Munggui),
],
- q(4563) => [
+ q(4556) => [
q(Maiwa (Papua New Guinea)),
],
- q(4564) => [
+ q(4557) => [
q(Moskona),
],
- q(4565) => [
+ q(4558) => [
q(Mbe'),
],
- q(4566) => [
+ q(4559) => [
q(Montol),
],
- q(4567) => [
+ q(4560) => [
q(Mator),
],
- q(4568) => [
+ q(4561) => [
q(Matagalpa),
],
- q(4569) => [
+ q(4562) => [
q(Totontepec Mixe),
],
- q(4570) => [
+ q(4563) => [
q(Wichi Lhamtes Nocten),
],
- q(4571) => [
+ q(4564) => [
q(Muong),
],
- q(4572) => [
+ q(4565) => [
q(Mewari),
],
- q(4573) => [
+ q(4566) => [
q(Yora),
],
- q(4574) => [
+ q(4567) => [
q(Mota),
],
- q(4575) => [
+ q(4568) => [
q(Tututepec Mixtec),
],
- q(4576) => [
+ q(4569) => [
q(Asaro'o),
],
- q(4577) => [
+ q(4570) => [
q(Southern Binukidnon),
],
- q(4578) => [
+ q(4571) => [
q(Tidaa Mixtec),
],
- q(4579) => [
+ q(4572) => [
q(Nabi),
],
- q(4580) => [
+ q(4573) => [
q(Mundang),
],
- q(4581) => [
+ q(4574) => [
q(Mubi),
],
- q(4582) => [
+ q(4575) => [
q(Ajumbu),
],
- q(4583) => [
+ q(4576) => [
q(Mednyj Aleut),
],
- q(4584) => [
+ q(4577) => [
q(Media Lengua),
],
- q(4585) => [
+ q(4578) => [
q(Musgu),
],
- q(4586) => [
+ q(4579) => [
q(Mundu),
],
- q(4587) => [
+ q(4580) => [
q(Musi),
],
- q(4588) => [
+ q(4581) => [
q(Mabire),
],
- q(4589) => [
+ q(4582) => [
q(Mugom),
],
- q(4590) => [
+ q(4583) => [
q(Maiwala),
],
- q(4591) => [
+ q(4584) => [
q(Nyong),
],
- q(4592) => [
+ q(4585) => [
q(Malvi),
],
- q(4593) => [
+ q(4586) => [
q(Eastern Xiangxi Miao),
],
- q(4594) => [
+ q(4587) => [
q(Murle),
],
- q(4595) => [
+ q(4588) => [
q(Western Muria),
],
- q(4596) => [
+ q(4589) => [
q(Yaaku),
],
- q(4597) => [
+ q(4590) => [
q(Muthuvan),
],
- q(4598) => [
+ q(4591) => [
q(Bo-Ung),
],
- q(4599) => [
+ q(4592) => [
q(Muyang),
],
- q(4600) => [
+ q(4593) => [
q(Mursi),
],
- q(4601) => [
+ q(4594) => [
q(Manam),
],
- q(4602) => [
+ q(4595) => [
q(Mattole),
],
- q(4603) => [
+ q(4596) => [
q(Mamboru),
],
- q(4604) => [
+ q(4597) => [
q(Marwari (Pakistan)),
],
- q(4605) => [
+ q(4598) => [
q(Peripheral Mongolian),
],
- q(4606) => [
+ q(4599) => [
q(Yucuane Mixtec),
],
- q(4607) => [
+ q(4600) => [
q(Mulgi),
],
- q(4608) => [
+ q(4601) => [
q(Miyako),
],
- q(4609) => [
+ q(4602) => [
q(Mekmek),
],
- q(4610) => [
+ q(4603) => [
q(Mbara (Australia)),
],
- q(4611) => [
+ q(4604) => [
q(Muya),
],
- q(4612) => [
+ q(4605) => [
q(Minaveha),
],
- q(4613) => [
+ q(4606) => [
q(Marovo),
],
- q(4614) => [
+ q(4607) => [
q(Duri),
],
- q(4615) => [
+ q(4608) => [
q(Moere),
],
- q(4616) => [
+ q(4609) => [
q(Marau),
],
- q(4617) => [
+ q(4610) => [
q(Massep),
],
- q(4618) => [
+ q(4611) => [
q(Mpotovoro),
],
- q(4619) => [
+ q(4612) => [
q(Marfa),
],
- q(4620) => [
+ q(4613) => [
q(Tagal Murut),
],
- q(4621) => [
+ q(4614) => [
q(Machinga),
],
- q(4622) => [
+ q(4615) => [
q(Meoswar),
],
- q(4623) => [
+ q(4616) => [
q(Indus Kohistani),
],
- q(4624) => [
+ q(4617) => [
q(Mesqan),
],
- q(4625) => [
+ q(4618) => [
q(Mwatebu),
],
- q(4626) => [
+ q(4619) => [
q(Juwal),
],
- q(4627) => [
+ q(4620) => [
q(Are),
],
- q(4628) => [
+ q(4621) => [
q(Mwera (Chimwera)),
],
- q(4629) => [
+ q(4622) => [
q(Murrinh-Patha),
],
- q(4630) => [
+ q(4623) => [
q(Aiklep),
],
- q(4631) => [
+ q(4624) => [
q(Mouk-Aria),
],
- q(4632) => [
+ q(4625) => [
q(Labo),
q(Ninde),
],
- q(4633) => [
+ q(4626) => [
q(Kita Maninkakan),
],
- q(4634) => [
+ q(4627) => [
q(Sar),
],
- q(4635) => [
+ q(4628) => [
q(Nyamwanga),
],
- q(4636) => [
+ q(4629) => [
q(Central Maewo),
],
- q(4637) => [
+ q(4630) => [
q(Kala Lagaw Ya),
],
- q(4638) => [
+ q(4631) => [
q(Mun Chin),
],
- q(4639) => [
+ q(4632) => [
q(Mwimbi-Muthambi),
],
- q(4640) => [
+ q(4633) => [
q(Moken),
],
- q(4641) => [
+ q(4634) => [
q(Mittu),
],
- q(4642) => [
+ q(4635) => [
q(Mentawai),
],
- q(4643) => [
+ q(4636) => [
q(Hmong Daw),
],
- q(4644) => [
+ q(4637) => [
q(Mediak),
],
- q(4645) => [
+ q(4638) => [
q(Mosiro),
],
- q(4646) => [
+ q(4639) => [
q(Moingi),
],
- q(4647) => [
+ q(4640) => [
q(Northwest Oaxaca Mixtec),
],
- q(4648) => [
+ q(4641) => [
q(Tezoatlan Mixtec),
],
- q(4649) => [
+ q(4642) => [
q(Manyika),
],
- q(4650) => [
+ q(4643) => [
q(Modang),
],
- q(4651) => [
+ q(4644) => [
q(Mele-Fila),
],
- q(4652) => [
+ q(4645) => [
q(Malgbe),
],
- q(4653) => [
+ q(4646) => [
q(Mbangala),
],
- q(4654) => [
+ q(4647) => [
q(Mvuba),
],
- q(4655) => [
+ q(4648) => [
q(Mozarabic),
],
- q(4656) => [
+ q(4649) => [
q(Miju-Mishmi),
q(Geman Deng),
],
- q(4657) => [
+ q(4650) => [
q(Monumbo),
],
- q(4658) => [
+ q(4651) => [
q(Maxi Gbe),
],
- q(4659) => [
+ q(4652) => [
q(Meramera),
],
- q(4660) => [
+ q(4653) => [
q(Moi (Indonesia)),
],
- q(4661) => [
+ q(4654) => [
q(Mbowe),
],
- q(4662) => [
+ q(4655) => [
q(Tlahuitoltepec Mixe),
],
- q(4663) => [
+ q(4656) => [
q(Juquila Mixe),
],
- q(4664) => [
+ q(4657) => [
q(Murik (Malaysia)),
],
- q(4665) => [
+ q(4658) => [
q(Huitepec Mixtec),
],
- q(4666) => [
+ q(4659) => [
q(Jamiltepec Mixtec),
],
- q(4667) => [
+ q(4660) => [
q(Mada (Cameroon)),
],
- q(4668) => [
+ q(4661) => [
q(Metlatonoc Mixtec),
],
- q(4669) => [
+ q(4662) => [
q(Namo),
],
- q(4670) => [
+ q(4663) => [
q(Mahou),
q(Mawukakan),
],
- q(4671) => [
+ q(4664) => [
q(Southeastern Nochixtlan Mixtec),
],
- q(4672) => [
+ q(4665) => [
q(Central Masela),
],
- q(4673) => [
+ q(4666) => [
q(Mbay),
],
- q(4674) => [
+ q(4667) => [
q(Mayeka),
],
- q(4675) => [
+ q(4668) => [
q(Maramba),
],
- q(4676) => [
+ q(4669) => [
q(Myene),
],
- q(4677) => [
+ q(4670) => [
q(Bambassi),
],
- q(4678) => [
+ q(4671) => [
q(Manta),
],
- q(4679) => [
+ q(4672) => [
q(Makah),
],
- q(4680) => [
+ q(4673) => [
q(Mina (India)),
],
- q(4681) => [
+ q(4674) => [
q(Mangayat),
],
- q(4682) => [
+ q(4675) => [
q(Mamara Senoufo),
],
- q(4683) => [
+ q(4676) => [
q(Moma),
],
- q(4684) => [
+ q(4677) => [
q(Me'en),
],
- q(4685) => [
+ q(4678) => [
q(Anfillo),
],
- q(4686) => [
+ q(4679) => [
q(Piraha),
],
- q(4687) => [
+ q(4680) => [
q(Muniche),
],
- q(4688) => [
+ q(4681) => [
q(Mesmes),
],
- q(4689) => [
+ q(4682) => [
q(Munduruku),
],
- q(4690) => [
+ q(4683) => [
q(Muyuw),
],
- q(4691) => [
+ q(4684) => [
q(Masaaba),
],
- q(4692) => [
+ q(4685) => [
q(Macuna),
],
- q(4693) => [
+ q(4686) => [
q(Classical Mandaic),
],
- q(4694) => [
+ q(4687) => [
q(Santa Maria Zacatepec Mixtec),
],
- q(4695) => [
+ q(4688) => [
q(Tumzabt),
],
- q(4696) => [
+ q(4689) => [
q(Madagascar Sign Language),
],
- q(4697) => [
+ q(4690) => [
q(Malimba),
],
- q(4698) => [
+ q(4691) => [
q(Morawa),
],
- q(4699) => [
+ q(4692) => [
q(Monastic Sign Language),
],
- q(4700) => [
+ q(4693) => [
q(Wichi Lhamtes Guisnay),
],
- q(4701) => [
+ q(4694) => [
q(Ixcatlan Mazatec),
],
- q(4702) => [
+ q(4695) => [
q(Manya),
],
- q(4703) => [
+ q(4696) => [
q(Nigeria Mambila),
],
- q(4704) => [
+ q(4697) => [
q(Mazatlan Mixe),
],
- q(4705) => [
+ q(4698) => [
q(Mumuye),
],
- q(4706) => [
+ q(4699) => [
q(Mazanderani),
],
- q(4707) => [
+ q(4700) => [
q(Matipuhy),
],
- q(4708) => [
+ q(4701) => [
q(Movima),
],
- q(4709) => [
+ q(4702) => [
q(Mori Atas),
],
- q(4710) => [
+ q(4703) => [
q(Marubo),
],
- q(4711) => [
+ q(4704) => [
q(Macanese),
],
- q(4712) => [
+ q(4705) => [
q(Mintil),
],
- q(4713) => [
+ q(4706) => [
q(Inapang),
],
- q(4714) => [
+ q(4707) => [
q(Manza),
],
- q(4715) => [
+ q(4708) => [
q(Deg),
],
- q(4716) => [
+ q(4709) => [
q(Mawayana),
],
- q(4717) => [
+ q(4710) => [
q(Mozambican Sign Language),
],
- q(4718) => [
+ q(4711) => [
q(Maiadomu),
],
- q(4719) => [
+ q(4712) => [
q(Namla),
],
- q(4720) => [
+ q(4713) => [
q(Southern Nambikuara),
],
- q(4721) => [
+ q(4714) => [
q(Narak),
],
- q(4722) => [
- q(Nijadali),
- ],
- q(4723) => [
+ q(4715) => [
q(Naka'ela),
],
- q(4724) => [
+ q(4716) => [
q(Nabak),
],
- q(4725) => [
+ q(4717) => [
q(Naga Pidgin),
],
- q(4726) => [
+ q(4718) => [
q(Nalu),
],
- q(4727) => [
+ q(4719) => [
q(Nakanai),
],
- q(4728) => [
+ q(4720) => [
q(Nalik),
],
- q(4729) => [
+ q(4721) => [
q(Ngan'gityemerri),
],
- q(4730) => [
+ q(4722) => [
q(Min Nan Chinese),
],
- q(4731) => [
+ q(4723) => [
q(Naaba),
],
- q(4732) => [
+ q(4724) => [
q(Khoekhoe),
q(Nama (Namibia)),
],
- q(4733) => [
+ q(4725) => [
q(Iguta),
],
- q(4734) => [
+ q(4726) => [
q(Naasioi),
],
- q(4735) => [
+ q(4727) => [
q(Cahungwarya),
q(Hungworo),
],
- q(4736) => [
+ q(4728) => [
q(Nawuri),
],
- q(4737) => [
+ q(4729) => [
q(Nakwi),
],
- q(4738) => [
+ q(4730) => [
q(Narrinyeri),
],
- q(4739) => [
+ q(4731) => [
q(Coatepec Nahuatl),
],
- q(4740) => [
+ q(4732) => [
q(Nyemba),
],
- q(4741) => [
+ q(4733) => [
q(Ndoe),
],
- q(4742) => [
+ q(4734) => [
q(Chang Naga),
],
- q(4743) => [
+ q(4735) => [
q(Ngbinda),
],
- q(4744) => [
+ q(4736) => [
q(Konyak Naga),
],
- q(4745) => [
+ q(4737) => [
q(Nagarchal),
],
- q(4746) => [
+ q(4738) => [
q(Ngamo),
],
- q(4747) => [
+ q(4739) => [
q(Mao Naga),
],
- q(4748) => [
+ q(4740) => [
q(Ngarinman),
],
- q(4749) => [
+ q(4741) => [
q(Nake),
],
- q(4750) => [
+ q(4742) => [
q(Ngbaka Ma'bo),
],
- q(4751) => [
+ q(4743) => [
q(Kuri),
],
- q(4752) => [
+ q(4744) => [
q(Nkukoli),
],
- q(4753) => [
+ q(4745) => [
q(Nnam),
],
- q(4754) => [
+ q(4746) => [
q(Nggem),
],
- q(4755) => [
+ q(4747) => [
q(Numana-Nunku-Gbantu-Numbu),
],
- q(4756) => [
+ q(4748) => [
q(Namibian Sign Language),
],
- q(4757) => [
+ q(4749) => [
q(Na),
],
- q(4758) => [
+ q(4750) => [
q(Rongmei Naga),
],
- q(4759) => [
+ q(4751) => [
q(Ngamambo),
],
- q(4760) => [
+ q(4752) => [
q(Southern Ngbandi),
],
- q(4761) => [
+ q(4753) => [
q(Ningera),
],
- q(4762) => [
+ q(4754) => [
q(Iyo),
],
- q(4763) => [
+ q(4755) => [
q(Central Nicobarese),
],
- q(4764) => [
+ q(4756) => [
q(Ponam),
],
- q(4765) => [
+ q(4757) => [
q(Nachering),
],
- q(4766) => [
+ q(4758) => [
q(Yale),
],
- q(4767) => [
+ q(4759) => [
q(Notsi),
],
- q(4768) => [
+ q(4760) => [
q(Nisga'a),
],
- q(4769) => [
+ q(4761) => [
q(Central Huasteca Nahuatl),
],
- q(4770) => [
+ q(4762) => [
q(Classical Nahuatl),
],
- q(4771) => [
+ q(4763) => [
q(Northern Puebla Nahuatl),
],
- q(4772) => [
+ q(4764) => [
q(Nakara),
],
- q(4773) => [
+ q(4765) => [
q(Michoacan Nahuatl),
],
- q(4774) => [
+ q(4766) => [
q(Nambo),
],
- q(4775) => [
+ q(4767) => [
q(Nauna),
],
- q(4776) => [
+ q(4768) => [
q(Sibe),
],
- q(4777) => [
+ q(4769) => [
q(Ndaktup),
],
- q(4778) => [
+ q(4770) => [
+ q(Northern Katang),
+ ],
+ q(4771) => [
q(Ncane),
],
- q(4779) => [
+ q(4772) => [
q(Nicaraguan Sign Language),
],
- q(4780) => [
+ q(4773) => [
q(Chothe Naga),
],
- q(4781) => [
+ q(4774) => [
q(Chumburung),
],
- q(4782) => [
+ q(4775) => [
q(Central Puebla Nahuatl),
],
- q(4783) => [
+ q(4776) => [
q(Natchez),
],
- q(4784) => [
+ q(4777) => [
q(Ndasa),
],
- q(4785) => [
+ q(4778) => [
q(Kenswei Nsei),
],
- q(4786) => [
+ q(4779) => [
q(Ndau),
],
- q(4787) => [
+ q(4780) => [
q(Nde-Nsele-Nta),
],
- q(4788) => [
+ q(4781) => [
q(Nadruvian),
],
- q(4789) => [
+ q(4782) => [
q(Ndengereko),
],
- q(4790) => [
+ q(4783) => [
q(Ndali),
],
- q(4791) => [
+ q(4784) => [
q(Samba Leko),
],
- q(4792) => [
+ q(4785) => [
q(Ndamba),
],
- q(4793) => [
+ q(4786) => [
q(Ndaka),
],
- q(4794) => [
+ q(4787) => [
q(Ndolo),
],
- q(4795) => [
+ q(4788) => [
q(Ndam),
],
- q(4796) => [
+ q(4789) => [
q(Ngundi),
],
- q(4797) => [
+ q(4790) => [
q(Ndo),
],
- q(4798) => [
+ q(4791) => [
q(Ndombe),
],
- q(4799) => [
+ q(4792) => [
q(Ndoola),
],
- q(4800) => [
+ q(4793) => [
q(Ndunga),
],
- q(4801) => [
+ q(4794) => [
q(Dugun),
],
- q(4802) => [
+ q(4795) => [
q(Ndut),
],
- q(4803) => [
+ q(4796) => [
q(Ndobo),
],
- q(4804) => [
+ q(4797) => [
q(Nduga),
],
- q(4805) => [
+ q(4798) => [
q(Lutos),
],
- q(4806) => [
+ q(4799) => [
q(Ndogo),
],
- q(4807) => [
+ q(4800) => [
q(Eastern Ngad'a),
],
- q(4808) => [
+ q(4801) => [
q(Toura (Cote d'Ivoire)),
],
- q(4809) => [
+ q(4802) => [
q(Nedebang),
],
- q(4810) => [
+ q(4803) => [
q(Nde-Gbite),
],
- q(4811) => [
+ q(4804) => [
q(Nelemwa-Nixumwak),
],
- q(4812) => [
+ q(4805) => [
q(Nefamese),
],
- q(4813) => [
+ q(4806) => [
q(Negidal),
],
- q(4814) => [
+ q(4807) => [
q(Nyenkha),
],
- q(4815) => [
+ q(4808) => [
q(Neo-Hittite),
],
- q(4816) => [
+ q(4809) => [
q(Neko),
],
- q(4817) => [
+ q(4810) => [
q(Neku),
],
- q(4818) => [
+ q(4811) => [
q(Nemi),
],
- q(4819) => [
+ q(4812) => [
q(Nengone),
],
- q(4820) => [
+ q(4813) => [
q(Na-Meo),
],
- q(4821) => [
+ q(4814) => [
q(North Central Mixe),
],
- q(4822) => [
+ q(4815) => [
q(Yahadian),
],
- q(4823) => [
+ q(4816) => [
q(Bhoti Kinnauri),
],
- q(4824) => [
+ q(4817) => [
q(Nete),
],
- q(4825) => [
+ q(4818) => [
q(Neo),
],
- q(4826) => [
+ q(4819) => [
q(Nyaheun),
],
- q(4827) => [
+ q(4820) => [
q(Neme),
],
- q(4828) => [
+ q(4821) => [
q(Neyo),
],
- q(4829) => [
+ q(4822) => [
q(Nez Perce),
],
- q(4830) => [
+ q(4823) => [
q(Dhao),
],
- q(4831) => [
+ q(4824) => [
q(Ahwai),
],
- q(4832) => [
+ q(4825) => [
q(Ayiwo),
q(Aiwoo),
],
- q(4833) => [
+ q(4826) => [
q(Nafaanra),
],
- q(4834) => [
+ q(4827) => [
q(Mfumte),
],
- q(4835) => [
+ q(4828) => [
q(Ngbaka),
],
- q(4836) => [
+ q(4829) => [
q(Northern Ngbandi),
],
- q(4837) => [
+ q(4830) => [
q(Ngombe (Democratic Republic of Congo)),
],
- q(4838) => [
+ q(4831) => [
q(Ngando (Central African Republic)),
],
- q(4839) => [
+ q(4832) => [
q(Ngemba),
],
- q(4840) => [
+ q(4833) => [
q(Ngbaka Manza),
],
- q(4841) => [
+ q(4834) => [
q(N/u),
q(Nu),
],
- q(4842) => [
+ q(4835) => [
q(Ngizim),
],
- q(4843) => [
+ q(4836) => [
q(Ngie),
],
- q(4844) => [
+ q(4837) => [
q(Dalabon),
],
- q(4845) => [
+ q(4838) => [
q(Lomwe),
],
- q(4846) => [
+ q(4839) => [
q(Ngatik Men's Creole),
],
- q(4847) => [
+ q(4840) => [
q(Ngwo),
],
- q(4848) => [
+ q(4841) => [
q(Ngoni),
],
- q(4849) => [
+ q(4842) => [
q(Ngulu),
],
- q(4850) => [
+ q(4843) => [
q(Ngurimi),
q(Ngoreme),
],
- q(4851) => [
+ q(4844) => [
q(Engdewu),
],
- q(4852) => [
+ q(4845) => [
q(Gvoko),
],
- q(4853) => [
+ q(4846) => [
+ q(Kriang),
q(Ngeq),
],
- q(4854) => [
+ q(4847) => [
q(Guerrero Nahuatl),
],
- q(4855) => [
+ q(4848) => [
q(Nagumi),
],
- q(4856) => [
+ q(4849) => [
q(Ngwaba),
],
- q(4857) => [
+ q(4850) => [
q(Nggwahyi),
],
- q(4858) => [
+ q(4851) => [
q(Tibea),
],
- q(4859) => [
+ q(4852) => [
q(Ngungwel),
],
- q(4860) => [
+ q(4853) => [
q(Nhanda),
],
- q(4861) => [
+ q(4854) => [
q(Beng),
],
- q(4862) => [
+ q(4855) => [
q(Tabasco Nahuatl),
],
- q(4863) => [
+ q(4856) => [
q(Chiripa),
q(Ava Guarani),
],
- q(4864) => [
+ q(4857) => [
q(Eastern Huasteca Nahuatl),
],
- q(4865) => [
+ q(4858) => [
q(Nhuwala),
],
- q(4866) => [
+ q(4859) => [
q(Tetelcingo Nahuatl),
],
- q(4867) => [
+ q(4860) => [
q(Nahari),
],
- q(4868) => [
+ q(4861) => [
q(Zacatlan-Ahuacatlan-Tepetzintla Nahuatl),
],
- q(4869) => [
+ q(4862) => [
q(Isthmus-Cosoleacaque Nahuatl),
],
- q(4870) => [
+ q(4863) => [
q(Morelos Nahuatl),
],
- q(4871) => [
+ q(4864) => [
q(Central Nahuatl),
],
- q(4872) => [
+ q(4865) => [
q(Takuu),
],
- q(4873) => [
+ q(4866) => [
q(Isthmus-Pajapan Nahuatl),
],
- q(4874) => [
+ q(4867) => [
q(Huaxcaleca Nahuatl),
],
- q(4875) => [
+ q(4868) => [
q(Naro),
],
- q(4876) => [
+ q(4869) => [
q(Ometepec Nahuatl),
],
- q(4877) => [
+ q(4870) => [
q(Noone),
],
- q(4878) => [
+ q(4871) => [
q(Temascaltepec Nahuatl),
],
- q(4879) => [
+ q(4872) => [
q(Western Huasteca Nahuatl),
],
- q(4880) => [
+ q(4873) => [
q(Isthmus-Mecayapan Nahuatl),
],
- q(4881) => [
+ q(4874) => [
q(Northern Oaxaca Nahuatl),
],
- q(4882) => [
+ q(4875) => [
q(Santa Maria La Alta Nahuatl),
],
- q(4883) => [
+ q(4876) => [
q(Nakame),
],
- q(4884) => [
+ q(4877) => [
q(Ngandi),
],
- q(4885) => [
+ q(4878) => [
q(Niellim),
],
- q(4886) => [
+ q(4879) => [
q(Nek),
],
- q(4887) => [
+ q(4880) => [
q(Ngalakan),
],
- q(4888) => [
+ q(4881) => [
q(Nyiha (Tanzania)),
],
- q(4889) => [
+ q(4882) => [
q(Nii),
],
- q(4890) => [
+ q(4883) => [
q(Ngaju),
],
- q(4891) => [
+ q(4884) => [
q(Southern Nicobarese),
],
- q(4892) => [
+ q(4885) => [
q(Nila),
],
- q(4893) => [
+ q(4886) => [
q(Nilamba),
],
- q(4894) => [
+ q(4887) => [
q(Ninzo),
],
- q(4895) => [
+ q(4888) => [
q(Nganasan),
],
- q(4896) => [
+ q(4889) => [
q(Nandi),
],
- q(4897) => [
+ q(4890) => [
q(Nimboran),
],
- q(4898) => [
+ q(4891) => [
q(Nimi),
],
- q(4899) => [
+ q(4892) => [
q(Southeastern Kolami),
],
- q(4900) => [
+ q(4893) => [
q(Gilyak),
],
- q(4901) => [
+ q(4894) => [
q(Nimo),
],
- q(4902) => [
+ q(4895) => [
q(Hema),
],
- q(4903) => [
+ q(4896) => [
q(Ngiti),
],
- q(4904) => [
+ q(4897) => [
q(Ningil),
],
- q(4905) => [
+ q(4898) => [
q(Nzanyi),
],
- q(4906) => [
+ q(4899) => [
q(Nocte Naga),
],
- q(4907) => [
+ q(4900) => [
q(Ndonde Hamba),
],
- q(4908) => [
+ q(4901) => [
q(Lotha Naga),
],
- q(4909) => [
+ q(4902) => [
q(Gudanji),
],
- q(4910) => [
+ q(4903) => [
q(Njen),
],
- q(4911) => [
+ q(4904) => [
q(Njalgulgule),
],
- q(4912) => [
+ q(4905) => [
q(Angami Naga),
],
- q(4913) => [
+ q(4906) => [
q(Liangmai Naga),
],
- q(4914) => [
+ q(4907) => [
q(Ao Naga),
],
- q(4915) => [
+ q(4908) => [
q(Njerep),
],
- q(4916) => [
+ q(4909) => [
q(Nisa),
],
- q(4917) => [
+ q(4910) => [
q(Ndyuka-Trio Pidgin),
],
- q(4918) => [
+ q(4911) => [
q(Ngadjunmaya),
],
- q(4919) => [
+ q(4912) => [
q(Kunyi),
],
- q(4920) => [
+ q(4913) => [
q(Njyem),
],
- q(4921) => [
+ q(4914) => [
q(Nyishi),
],
- q(4922) => [
+ q(4915) => [
q(Nkoya),
],
- q(4923) => [
+ q(4916) => [
q(Khoibu Naga),
],
- q(4924) => [
+ q(4917) => [
q(Nkongho),
],
- q(4925) => [
+ q(4918) => [
q(Koireng),
],
- q(4926) => [
+ q(4919) => [
q(Duke),
],
- q(4927) => [
+ q(4920) => [
q(Inpui Naga),
],
- q(4928) => [
+ q(4921) => [
q(Nekgini),
],
- q(4929) => [
+ q(4922) => [
q(Khezha Naga),
],
- q(4930) => [
+ q(4923) => [
q(Thangal Naga),
],
- q(4931) => [
+ q(4924) => [
q(Nakai),
],
- q(4932) => [
+ q(4925) => [
q(Nokuku),
],
- q(4933) => [
+ q(4926) => [
q(Namat),
],
- q(4934) => [
+ q(4927) => [
q(Nkangala),
],
- q(4935) => [
+ q(4928) => [
q(Nkonya),
],
- q(4936) => [
+ q(4929) => [
q(Niuatoputapu),
],
- q(4937) => [
+ q(4930) => [
q(Nkami),
],
- q(4938) => [
+ q(4931) => [
q(Nukuoro),
],
- q(4939) => [
+ q(4932) => [
q(North Asmat),
],
- q(4940) => [
+ q(4933) => [
q(Nyika (Tanzania)),
],
- q(4941) => [
+ q(4934) => [
q(Bouna Kulango),
],
- q(4942) => [
+ q(4935) => [
q(Nyika (Malawi and Zambia)),
],
- q(4943) => [
+ q(4936) => [
q(Nkutu),
],
- q(4944) => [
+ q(4937) => [
q(Nkoroo),
],
- q(4945) => [
+ q(4938) => [
q(Nkari),
],
- q(4946) => [
+ q(4939) => [
q(Ngombale),
],
- q(4947) => [
+ q(4940) => [
q(Nalca),
],
- q(4948) => [
+ q(4941) => [
q(East Nyala),
],
- q(4949) => [
+ q(4942) => [
q(Gela),
],
- q(4950) => [
+ q(4943) => [
q(Grangali),
],
- q(4951) => [
+ q(4944) => [
q(Nyali),
],
- q(4952) => [
+ q(4945) => [
q(Ninia Yali),
],
- q(4953) => [
+ q(4946) => [
q(Nihali),
],
- q(4954) => [
+ q(4947) => [
q(Ngul),
],
- q(4955) => [
+ q(4948) => [
q(Lao Naga),
],
- q(4956) => [
+ q(4949) => [
q(Nchumbulu),
],
- q(4957) => [
+ q(4950) => [
q(Orizaba Nahuatl),
],
- q(4958) => [
+ q(4951) => [
q(Walangama),
],
- q(4959) => [
+ q(4952) => [
q(Nahali),
],
- q(4960) => [
+ q(4953) => [
q(Nyamal),
],
- q(4961) => [
+ q(4954) => [
q(Nalogo),
],
- q(4962) => [
+ q(4955) => [
q(Maram Naga),
],
- q(4963) => [
+ q(4956) => [
q(Big Nambas),
q(V'enen Taut),
],
- q(4964) => [
+ q(4957) => [
q(Ngam),
],
- q(4965) => [
+ q(4958) => [
q(Ndumu),
],
- q(4966) => [
+ q(4959) => [
q(Mzieme Naga),
],
- q(4967) => [
+ q(4960) => [
q(Tangkhul Naga (India)),
],
- q(4968) => [
+ q(4961) => [
q(Kwasio),
],
- q(4969) => [
+ q(4962) => [
q(Monsang Naga),
],
- q(4970) => [
+ q(4963) => [
q(Nyam),
],
- q(4971) => [
+ q(4964) => [
q(Ngombe (Central African Republic)),
],
- q(4972) => [
+ q(4965) => [
q(Namakura),
],
- q(4973) => [
+ q(4966) => [
q(Ndemli),
],
- q(4974) => [
+ q(4967) => [
q(Manangba),
],
- q(4975) => [
+ q(4968) => [
q(!Xoo),
q(Xoo),
],
- q(4976) => [
+ q(4969) => [
q(Moyon Naga),
],
- q(4977) => [
+ q(4970) => [
q(Nimanbur),
],
- q(4978) => [
+ q(4971) => [
q(Nambya),
],
- q(4979) => [
+ q(4972) => [
q(Nimbari),
],
- q(4980) => [
+ q(4973) => [
q(Letemboi),
],
- q(4981) => [
+ q(4974) => [
q(Namonuito),
],
- q(4982) => [
+ q(4975) => [
q(Northeast Maidu),
],
- q(4983) => [
+ q(4976) => [
q(Ngamini),
],
- q(4984) => [
+ q(4977) => [
q(Nimoa),
q(Rifao),
],
- q(4985) => [
+ q(4978) => [
q(Nama (Papua New Guinea)),
],
- q(4986) => [
+ q(4979) => [
q(Namuyi),
],
- q(4987) => [
+ q(4980) => [
q(Nawdm),
],
- q(4988) => [
+ q(4981) => [
q(Nyangumarta),
],
- q(4989) => [
+ q(4982) => [
q(Nande),
],
- q(4990) => [
+ q(4983) => [
q(Nancere),
],
- q(4991) => [
+ q(4984) => [
q(West Ambae),
],
- q(4992) => [
+ q(4985) => [
q(Ngandyera),
],
- q(4993) => [
+ q(4986) => [
q(Ngaing),
],
- q(4994) => [
+ q(4987) => [
q(Maring Naga),
],
- q(4995) => [
+ q(4988) => [
q(Ngiemboon),
],
- q(4996) => [
+ q(4989) => [
q(North Nuaulu),
],
- q(4997) => [
+ q(4990) => [
q(Nyangatom),
],
- q(4998) => [
+ q(4991) => [
q(Nankina),
],
- q(4999) => [
+ q(4992) => [
q(Northern Rengma Naga),
],
- q(5000) => [
+ q(4993) => [
q(Namia),
],
- q(5001) => [
+ q(4994) => [
q(Ngete),
],
- q(5002) => [
+ q(4995) => [
q(Wancho Naga),
],
- q(5003) => [
+ q(4996) => [
q(Ngindo),
],
- q(5004) => [
+ q(4997) => [
q(Narungga),
],
- q(5005) => [
+ q(4998) => [
q(Ningye),
],
- q(5006) => [
+ q(4999) => [
q(Nanticoke),
],
- q(5007) => [
+ q(5000) => [
q(Dwang),
],
- q(5008) => [
+ q(5001) => [
q(Nugunu (Australia)),
],
- q(5009) => [
+ q(5002) => [
q(Southern Nuni),
],
- q(5010) => [
+ q(5003) => [
q(Nyangga),
],
- q(5011) => [
+ q(5004) => [
q(Nda'nda'),
],
- q(5012) => [
+ q(5005) => [
q(Woun Meu),
],
- q(5013) => [
+ q(5006) => [
q(Nuk),
],
- q(5014) => [
+ q(5007) => [
q(Northern Thai),
],
- q(5015) => [
+ q(5008) => [
q(Nimadi),
],
- q(5016) => [
+ q(5009) => [
q(Nomane),
],
- q(5017) => [
+ q(5010) => [
q(Nomu),
],
- q(5018) => [
+ q(5011) => [
q(Noiri),
],
- q(5019) => [
+ q(5012) => [
q(Nonuya),
],
- q(5020) => [
+ q(5013) => [
q(Nooksack),
],
- q(5021) => [
+ q(5014) => [
q(Nomlaki),
],
- q(5022) => [
+ q(5015) => [
q(Nocaman),
],
- q(5023) => [
+ q(5016) => [
q(Numanggang),
],
- q(5024) => [
+ q(5017) => [
q(Ngongo),
],
- q(5025) => [
+ q(5018) => [
q(Eastern Nisu),
],
- q(5026) => [
+ q(5019) => [
q(Nomatsiguenga),
],
- q(5027) => [
+ q(5020) => [
q(Ewage-Notu),
],
- q(5028) => [
+ q(5021) => [
q(Novial),
],
- q(5029) => [
+ q(5022) => [
q(Nyambo),
],
- q(5030) => [
+ q(5023) => [
q(Noy),
],
- q(5031) => [
+ q(5024) => [
q(Nayi),
],
- q(5032) => [
+ q(5025) => [
q(Nar Phu),
],
- q(5033) => [
+ q(5026) => [
q(Nupbikha),
],
- q(5034) => [
+ q(5027) => [
q(Ponyo-Gongwang Naga),
],
- q(5035) => [
+ q(5028) => [
q(Phom Naga),
],
- q(5036) => [
+ q(5029) => [
q(Nepali (individual language)),
],
- q(5037) => [
+ q(5030) => [
q(Southeastern Puebla Nahuatl),
],
- q(5038) => [
+ q(5031) => [
q(Mondropolon),
],
- q(5039) => [
+ q(5032) => [
q(Pochuri Naga),
],
- q(5040) => [
+ q(5033) => [
q(Nipsan),
],
- q(5041) => [
+ q(5034) => [
q(Puimei Naga),
],
- q(5042) => [
+ q(5035) => [
+ q(Noipx),
+ ],
+ q(5036) => [
q(Napu),
],
- q(5043) => [
+ q(5037) => [
q(Southern Nago),
],
- q(5044) => [
+ q(5038) => [
q(Kura Ede Nago),
],
- q(5045) => [
+ q(5039) => [
+ q(Ngendelengo),
+ ],
+ q(5040) => [
q(Ndom),
],
- q(5046) => [
+ q(5041) => [
q(Nen),
],
- q(5047) => [
+ q(5042) => [
q(Kyan-Karyaw Naga),
],
- q(5048) => [
+ q(5043) => [
q(Akyaung Ari Naga),
],
- q(5049) => [
+ q(5044) => [
q(Ngom),
],
- q(5050) => [
+ q(5045) => [
q(Nara),
],
- q(5051) => [
+ q(5046) => [
q(Noric),
],
- q(5052) => [
+ q(5047) => [
q(Southern Rengma Naga),
],
- q(5053) => [
+ q(5048) => [
q(Jerriais),
q(Guernesiais),
],
- q(5054) => [
+ q(5049) => [
q(Narango),
],
- q(5055) => [
+ q(5050) => [
q(Chokri Naga),
],
- q(5056) => [
+ q(5051) => [
q(Ngarla),
],
- q(5057) => [
+ q(5052) => [
q(Ngarluma),
],
- q(5058) => [
+ q(5053) => [
q(Narom),
],
- q(5059) => [
+ q(5054) => [
q(Norn),
],
- q(5060) => [
+ q(5055) => [
q(North Picene),
],
- q(5061) => [
+ q(5056) => [
q(Norra),
q(Nora),
],
- q(5062) => [
+ q(5057) => [
q(Northern Kalapuya),
],
- q(5063) => [
+ q(5058) => [
q(Narua),
],
- q(5064) => [
+ q(5059) => [
q(Ngurmbur),
],
- q(5065) => [
+ q(5060) => [
q(Lala),
],
- q(5066) => [
+ q(5061) => [
q(Sangtam Naga),
],
- q(5067) => [
+ q(5062) => [
q(Nshi),
],
- q(5068) => [
+ q(5063) => [
q(Southern Nisu),
],
- q(5069) => [
+ q(5064) => [
q(Nsenga),
],
- q(5070) => [
+ q(5065) => [
q(Northwestern Nisu),
],
- q(5071) => [
+ q(5066) => [
q(Ngasa),
],
- q(5072) => [
+ q(5067) => [
q(Ngoshie),
],
- q(5073) => [
+ q(5068) => [
q(Nigerian Sign Language),
],
- q(5074) => [
+ q(5069) => [
q(Naskapi),
],
- q(5075) => [
+ q(5070) => [
q(Norwegian Sign Language),
],
- q(5076) => [
+ q(5071) => [
q(Sumi Naga),
],
- q(5077) => [
+ q(5072) => [
q(Nehan),
],
- q(5078) => [
+ q(5073) => [
q(Nepalese Sign Language),
],
- q(5079) => [
+ q(5074) => [
q(Northern Sierra Miwok),
],
- q(5080) => [
+ q(5075) => [
q(Maritime Sign Language),
],
- q(5081) => [
+ q(5076) => [
q(Nali),
],
- q(5082) => [
+ q(5077) => [
q(Tase Naga),
],
- q(5083) => [
+ q(5078) => [
q(Sierra Negra Nahuatl),
],
- q(5084) => [
+ q(5079) => [
q(Southwestern Nisu),
],
- q(5085) => [
+ q(5080) => [
q(Navut),
],
- q(5086) => [
+ q(5081) => [
q(Nsongo),
],
- q(5087) => [
+ q(5082) => [
q(Nasal),
],
- q(5088) => [
+ q(5083) => [
q(Nisenan),
],
- q(5089) => [
+ q(5084) => [
+ q(Northern Tidung),
+ ],
+ q(5085) => [
q(Nathembo),
],
- q(5090) => [
+ q(5086) => [
q(Ngantangarra),
],
- q(5091) => [
+ q(5087) => [
q(Natioro),
],
- q(5092) => [
+ q(5088) => [
q(Ngaanyatjarra),
],
- q(5093) => [
+ q(5089) => [
q(Ikoma-Nata-Isenye),
],
- q(5094) => [
+ q(5090) => [
q(Nateni),
],
- q(5095) => [
+ q(5091) => [
q(Ntomba),
],
- q(5096) => [
+ q(5092) => [
q(Northern Tepehuan),
],
- q(5097) => [
+ q(5093) => [
q(Delo),
],
- q(5098) => [
- q(Natagaimas),
- ],
- q(5099) => [
+ q(5094) => [
q(Natugu),
],
- q(5100) => [
+ q(5095) => [
q(Nottoway),
],
- q(5101) => [
+ q(5096) => [
q(Tangkhul Naga (Myanmar)),
],
- q(5102) => [
+ q(5097) => [
q(Mantsi),
],
- q(5103) => [
+ q(5098) => [
q(Natanzi),
],
- q(5104) => [
+ q(5099) => [
q(Yuanga),
],
- q(5105) => [
+ q(5100) => [
q(Nukuini),
],
- q(5106) => [
+ q(5101) => [
q(Ngala),
],
- q(5107) => [
+ q(5102) => [
q(Ngundu),
],
- q(5108) => [
+ q(5103) => [
q(Nusu),
],
- q(5109) => [
+ q(5104) => [
q(Nungali),
],
- q(5110) => [
+ q(5105) => [
q(Ndunda),
],
- q(5111) => [
+ q(5106) => [
q(Ngumbi),
],
- q(5112) => [
+ q(5107) => [
q(Nyole),
],
- q(5113) => [
+ q(5108) => [
q(Nuu-chah-nulth),
q(Nuuchahnulth),
],
- q(5114) => [
+ q(5109) => [
q(Nusa Laut),
],
- q(5115) => [
+ q(5110) => [
q(Niuafo'ou),
],
- q(5116) => [
+ q(5111) => [
q(Anong),
],
- q(5117) => [
+ q(5112) => [
q(Nguon),
],
- q(5118) => [
+ q(5113) => [
q(Nupe-Nupe-Tako),
],
- q(5119) => [
+ q(5114) => [
q(Nukumanu),
],
- q(5120) => [
+ q(5115) => [
q(Nukuria),
],
- q(5121) => [
+ q(5116) => [
q(Nuer),
],
- q(5122) => [
+ q(5117) => [
q(Nung (Viet Nam)),
],
- q(5123) => [
+ q(5118) => [
q(Ngbundu),
],
- q(5124) => [
+ q(5119) => [
q(Northern Nuni),
],
- q(5125) => [
+ q(5120) => [
q(Nguluwan),
],
- q(5126) => [
+ q(5121) => [
q(Mehek),
],
- q(5127) => [
+ q(5122) => [
q(Nunggubuyu),
],
- q(5128) => [
+ q(5123) => [
q(Tlamacazapa Nahuatl),
],
- q(5129) => [
+ q(5124) => [
q(Nasarian),
],
- q(5130) => [
+ q(5125) => [
q(Namiae),
],
- q(5131) => [
+ q(5126) => [
q(Nyokon),
],
- q(5132) => [
+ q(5127) => [
q(Nawathinehena),
],
- q(5133) => [
+ q(5128) => [
q(Nyabwa),
],
- q(5134) => [
+ q(5129) => [
q(Ngwe),
],
- q(5135) => [
+ q(5130) => [
q(Ngayawung),
],
- q(5136) => [
+ q(5131) => [
q(Southwest Tanna),
],
- q(5137) => [
+ q(5132) => [
q(Nyamusa-Molo),
],
- q(5138) => [
+ q(5133) => [
q(Nauo),
],
- q(5139) => [
+ q(5134) => [
q(Nawaru),
],
- q(5140) => [
+ q(5135) => [
q(Middle Newar),
],
- q(5141) => [
+ q(5136) => [
q(Nottoway-Meherrin),
],
- q(5142) => [
+ q(5137) => [
q(Nauete),
],
- q(5143) => [
+ q(5138) => [
q(Ngando (Democratic Republic of Congo)),
],
- q(5144) => [
+ q(5139) => [
q(Nage),
],
- q(5145) => [
+ q(5140) => [
q(Ngad'a),
],
- q(5146) => [
+ q(5141) => [
q(Nindi),
],
- q(5147) => [
+ q(5142) => [
q(Koki Naga),
],
- q(5148) => [
+ q(5143) => [
q(South Nuaulu),
],
- q(5149) => [
+ q(5144) => [
q(Numidian),
],
- q(5150) => [
+ q(5145) => [
q(Ngawun),
],
- q(5151) => [
+ q(5146) => [
q(Ndambomo),
],
- q(5152) => [
+ q(5147) => [
q(Naxi),
],
- q(5153) => [
+ q(5148) => [
q(Ninggerum),
],
- q(5154) => [
+ q(5149) => [
q(Narau),
],
- q(5155) => [
+ q(5150) => [
q(Nafri),
],
- q(5156) => [
+ q(5151) => [
q(Nyangbo),
],
- q(5157) => [
+ q(5152) => [
q(Nyanga-li),
],
- q(5158) => [
+ q(5153) => [
q(Nyore),
q(Olunyole),
],
- q(5159) => [
+ q(5154) => [
q(Nyengo),
],
- q(5160) => [
+ q(5155) => [
q(Giryama),
q(Kigiryama),
],
- q(5161) => [
+ q(5156) => [
q(Nyindu),
],
- q(5162) => [
+ q(5157) => [
q(Nyigina),
],
- q(5163) => [
+ q(5158) => [
q(Ama (Sudan)),
],
- q(5164) => [
+ q(5159) => [
q(Nyanga),
],
- q(5165) => [
+ q(5160) => [
q(Nyaneka),
],
- q(5166) => [
+ q(5161) => [
q(Nyeu),
],
- q(5167) => [
+ q(5162) => [
q(Nyang'i),
],
- q(5168) => [
+ q(5163) => [
q(Nayini),
],
- q(5169) => [
+ q(5164) => [
q(Nyiha (Malawi)),
],
- q(5170) => [
+ q(5165) => [
q(Nyunga),
],
- q(5171) => [
+ q(5166) => [
q(Nyawaygi),
],
- q(5172) => [
+ q(5167) => [
q(Nyungwe),
],
- q(5173) => [
+ q(5168) => [
q(Nyulnyul),
],
- q(5174) => [
+ q(5169) => [
q(Nyaw),
],
- q(5175) => [
+ q(5170) => [
q(Nganyaywana),
],
- q(5176) => [
+ q(5171) => [
q(Nyakyusa-Ngonde),
],
- q(5177) => [
+ q(5172) => [
q(Tigon Mbembe),
],
- q(5178) => [
+ q(5173) => [
q(Njebi),
],
- q(5179) => [
+ q(5174) => [
q(Nzakara),
],
- q(5180) => [
+ q(5175) => [
q(Zeme Naga),
],
- q(5181) => [
+ q(5176) => [
q(New Zealand Sign Language),
],
- q(5182) => [
+ q(5177) => [
q(Teke-Nzikou),
],
- q(5183) => [
+ q(5178) => [
q(Nzakambay),
],
- q(5184) => [
+ q(5179) => [
q(Nanga Dama Dogon),
],
- q(5185) => [
+ q(5180) => [
q(Orok),
],
- q(5186) => [
+ q(5181) => [
q(Oroch),
],
- q(5187) => [
+ q(5182) => [
q(Old Aramaic (up to 700 BCE)),
q(Ancient Aramaic (up to 700 BCE)),
],
- q(5188) => [
+ q(5183) => [
q(Old Avar),
],
- q(5189) => [
+ q(5184) => [
q(Obispeno),
],
- q(5190) => [
+ q(5185) => [
q(Southern Bontok),
],
- q(5191) => [
+ q(5186) => [
q(Oblo),
],
- q(5192) => [
+ q(5187) => [
q(Moabite),
],
- q(5193) => [
+ q(5188) => [
q(Obo Manobo),
],
- q(5194) => [
+ q(5189) => [
q(Old Burmese),
],
- q(5195) => [
+ q(5190) => [
q(Old Breton),
],
- q(5196) => [
+ q(5191) => [
q(Obulom),
],
- q(5197) => [
+ q(5192) => [
q(Ocaina),
],
- q(5198) => [
+ q(5193) => [
q(Old Chinese),
],
- q(5199) => [
+ q(5194) => [
q(Old Cornish),
],
- q(5200) => [
+ q(5195) => [
q(Atzingo Matlatzinca),
],
- q(5201) => [
+ q(5196) => [
q(Odut),
],
- q(5202) => [
+ q(5197) => [
q(Od),
],
- q(5203) => [
+ q(5198) => [
q(Old Dutch),
],
- q(5204) => [
+ q(5199) => [
q(Odual),
],
- q(5205) => [
+ q(5200) => [
q(Ofo),
],
- q(5206) => [
+ q(5201) => [
q(Old Frisian),
],
- q(5207) => [
+ q(5202) => [
q(Efutop),
],
- q(5208) => [
+ q(5203) => [
q(Ogbia),
],
- q(5209) => [
+ q(5204) => [
q(Ogbah),
],
- q(5210) => [
+ q(5205) => [
q(Old Georgian),
],
- q(5211) => [
+ q(5206) => [
q(Ogbogolo),
],
- q(5212) => [
+ q(5207) => [
q(Khana),
],
- q(5213) => [
+ q(5208) => [
q(Ogbronuagum),
],
- q(5214) => [
+ q(5209) => [
q(Old Hittite),
],
- q(5215) => [
+ q(5210) => [
q(Old Hungarian),
],
- q(5216) => [
+ q(5211) => [
q(Oirata),
],
- q(5217) => [
+ q(5212) => [
q(Inebu One),
],
- q(5218) => [
+ q(5213) => [
q(Northwestern Ojibwa),
],
- q(5219) => [
+ q(5214) => [
q(Central Ojibwa),
],
- q(5220) => [
+ q(5215) => [
q(Eastern Ojibwa),
],
- q(5221) => [
+ q(5216) => [
q(Old Japanese),
],
- q(5222) => [
+ q(5217) => [
q(Severn Ojibwa),
],
- q(5223) => [
+ q(5218) => [
q(Ontong Java),
],
- q(5224) => [
+ q(5219) => [
q(Western Ojibwa),
],
- q(5225) => [
+ q(5220) => [
q(Okanagan),
],
- q(5226) => [
+ q(5221) => [
q(Okobo),
],
- q(5227) => [
+ q(5222) => [
q(Okodia),
],
- q(5228) => [
+ q(5223) => [
q(Okpe (Southwestern Edo)),
],
- q(5229) => [
+ q(5224) => [
q(Koko Babangk),
],
- q(5230) => [
+ q(5225) => [
q(Koresh-e Rostam),
],
- q(5231) => [
+ q(5226) => [
q(Okiek),
],
- q(5232) => [
+ q(5227) => [
q(Oko-Juwoi),
],
- q(5233) => [
+ q(5228) => [
q(Kwamtim One),
],
- q(5234) => [
+ q(5229) => [
q(Old Kentish Sign Language),
],
- q(5235) => [
+ q(5230) => [
q(Middle Korean (10th-16th cent.)),
],
- q(5236) => [
+ q(5231) => [
q(Oki-No-Erabu),
],
- q(5237) => [
+ q(5232) => [
q(Old Korean (3rd-9th cent.)),
],
- q(5238) => [
+ q(5233) => [
q(Kirike),
],
- q(5239) => [
+ q(5234) => [
q(Oko-Eni-Osayen),
],
- q(5240) => [
+ q(5235) => [
q(Oku),
],
- q(5241) => [
+ q(5236) => [
q(Orokaiva),
],
- q(5242) => [
+ q(5237) => [
q(Okpe (Northwestern Edo)),
],
- q(5243) => [
+ q(5238) => [
q(Walungge),
],
- q(5244) => [
+ q(5239) => [
q(Mochi),
],
- q(5245) => [
+ q(5240) => [
q(Olekha),
],
- q(5246) => [
+ q(5241) => [
q(Olkol),
],
- q(5247) => [
+ q(5242) => [
q(Oloma),
],
- q(5248) => [
+ q(5243) => [
q(Livvi),
],
- q(5249) => [
+ q(5244) => [
q(Olrat),
],
- q(5250) => [
+ q(5245) => [
q(Old Lithuanian),
],
- q(5251) => [
+ q(5246) => [
+ q(Kuvale),
+ ],
+ q(5247) => [
q(Omaha-Ponca),
],
- q(5252) => [
+ q(5248) => [
q(East Ambae),
],
- q(5253) => [
+ q(5249) => [
q(Mochica),
],
- q(5254) => [
- q(Omejes),
- ],
- q(5255) => [
+ q(5250) => [
q(Omagua),
],
- q(5256) => [
+ q(5251) => [
q(Omi),
],
- q(5257) => [
+ q(5252) => [
q(Omok),
],
- q(5258) => [
+ q(5253) => [
q(Ombo),
],
- q(5259) => [
+ q(5254) => [
q(Minoan),
],
- q(5260) => [
+ q(5255) => [
q(Utarmbung),
],
- q(5261) => [
+ q(5256) => [
q(Old Manipuri),
],
- q(5262) => [
+ q(5257) => [
q(Old Marathi),
],
- q(5263) => [
+ q(5258) => [
q(Omotik),
],
- q(5264) => [
+ q(5259) => [
q(Omurano),
],
- q(5265) => [
+ q(5260) => [
q(South Tairora),
],
- q(5266) => [
+ q(5261) => [
q(Old Mon),
],
- q(5267) => [
+ q(5262) => [
q(Ona),
],
- q(5268) => [
+ q(5263) => [
q(Lingao),
],
- q(5269) => [
+ q(5264) => [
q(Oneida),
],
- q(5270) => [
+ q(5265) => [
q(Olo),
],
- q(5271) => [
+ q(5266) => [
q(Onin),
],
- q(5272) => [
+ q(5267) => [
q(Onjob),
],
- q(5273) => [
+ q(5268) => [
q(Kabore One),
],
- q(5274) => [
+ q(5269) => [
q(Onobasulu),
],
- q(5275) => [
+ q(5270) => [
q(Onondaga),
],
- q(5276) => [
+ q(5271) => [
q(Sartang),
],
- q(5277) => [
+ q(5272) => [
q(Northern One),
],
- q(5278) => [
+ q(5273) => [
q(Ono),
],
- q(5279) => [
+ q(5274) => [
q(Ontenu),
],
- q(5280) => [
+ q(5275) => [
q(Unua),
],
- q(5281) => [
+ q(5276) => [
q(Old Nubian),
],
- q(5282) => [
+ q(5277) => [
q(Onin Based Pidgin),
],
- q(5283) => [
+ q(5278) => [
q(Tohono O'odham),
],
- q(5284) => [
+ q(5279) => [
q(Ong),
],
- q(5285) => [
+ q(5280) => [
q(Onge),
],
- q(5286) => [
+ q(5281) => [
q(Oorlams),
],
- q(5287) => [
+ q(5282) => [
q(Old Ossetic),
],
- q(5288) => [
+ q(5283) => [
q(Okpamheri),
],
- q(5289) => [
+ q(5284) => [
q(Kopkaka),
],
- q(5290) => [
+ q(5285) => [
q(Oksapmin),
],
- q(5291) => [
+ q(5286) => [
q(Opao),
],
- q(5292) => [
+ q(5287) => [
q(Opata),
],
- q(5293) => [
+ q(5288) => [
q(Ofaye),
],
- q(5294) => [
+ q(5289) => [
q(Oroha),
],
- q(5295) => [
+ q(5290) => [
q(Orma),
],
- q(5296) => [
+ q(5291) => [
q(Orejon),
],
- q(5297) => [
+ q(5292) => [
q(Oring),
],
- q(5298) => [
+ q(5293) => [
q(Oroqen),
],
- q(5299) => [
+ q(5294) => [
q(Orang Kanaq),
],
- q(5300) => [
+ q(5295) => [
q(Orokolo),
],
- q(5301) => [
+ q(5296) => [
q(Oruma),
],
- q(5302) => [
+ q(5297) => [
q(Orang Seletar),
],
- q(5303) => [
+ q(5298) => [
q(Adivasi Oriya),
],
- q(5304) => [
+ q(5299) => [
q(Ormuri),
],
- q(5305) => [
+ q(5300) => [
q(Old Russian),
],
- q(5306) => [
+ q(5301) => [
q(Oro Win),
],
- q(5307) => [
+ q(5302) => [
q(Oro),
],
- q(5308) => [
+ q(5303) => [
+ q(Odia (individual language)),
q(Oriya (individual language)),
],
- q(5309) => [
+ q(5304) => [
q(Ormu),
],
- q(5310) => [
+ q(5305) => [
q(Oscan),
],
- q(5311) => [
+ q(5306) => [
q(Osing),
],
- q(5312) => [
+ q(5307) => [
q(Ososo),
],
- q(5313) => [
+ q(5308) => [
q(Old Spanish),
],
- q(5314) => [
+ q(5309) => [
q(Osatu),
],
- q(5315) => [
+ q(5310) => [
q(Southern One),
],
- q(5316) => [
+ q(5311) => [
q(Old Saxon),
],
- q(5317) => [
+ q(5312) => [
q(Old Tibetan),
],
- q(5318) => [
+ q(5313) => [
q(Ot Danum),
],
- q(5319) => [
+ q(5314) => [
q(Mezquital Otomi),
],
- q(5320) => [
+ q(5315) => [
q(Oti),
],
- q(5321) => [
+ q(5316) => [
q(Old Turkish),
],
- q(5322) => [
+ q(5317) => [
q(Tilapa Otomi),
],
- q(5323) => [
+ q(5318) => [
q(Eastern Highland Otomi),
],
- q(5324) => [
+ q(5319) => [
q(Tenango Otomi),
],
- q(5325) => [
+ q(5320) => [
q(Queretaro Otomi),
],
- q(5326) => [
+ q(5321) => [
q(Otoro),
],
- q(5327) => [
+ q(5322) => [
q(Estado de Mexico Otomi),
],
- q(5328) => [
+ q(5323) => [
q(Temoaya Otomi),
],
- q(5329) => [
+ q(5324) => [
q(Otuke),
],
- q(5330) => [
+ q(5325) => [
q(Ottawa),
],
- q(5331) => [
+ q(5326) => [
q(Texcatepec Otomi),
],
- q(5332) => [
+ q(5327) => [
q(Old Tamil),
],
- q(5333) => [
+ q(5328) => [
q(Ixtenco Otomi),
],
- q(5334) => [
+ q(5329) => [
q(Tagargrent),
],
- q(5335) => [
+ q(5330) => [
q(Glio-Oubi),
],
- q(5336) => [
+ q(5331) => [
q(Oune),
],
- q(5337) => [
+ q(5332) => [
q(Old Uighur),
],
- q(5338) => [
+ q(5333) => [
q(Ouma),
],
- q(5339) => [
+ q(5334) => [
+ q(Elfdalian),
+ q(Ovdalian),
+ ],
+ q(5335) => [
q(Owiniga),
],
- q(5340) => [
+ q(5336) => [
q(Old Welsh),
],
- q(5341) => [
+ q(5337) => [
q(Oy),
],
- q(5342) => [
+ q(5338) => [
q(Oyda),
],
- q(5343) => [
+ q(5339) => [
q(Wayampi),
],
- q(5344) => [
+ q(5340) => [
q(Oya'oya),
],
- q(5345) => [
+ q(5341) => [
q(Koonzime),
],
- q(5346) => [
+ q(5342) => [
q(Parecis),
],
- q(5347) => [
+ q(5343) => [
q(Pacoh),
],
- q(5348) => [
+ q(5344) => [
q(Paumari),
],
- q(5349) => [
+ q(5345) => [
q(Pagibete),
],
- q(5350) => [
+ q(5346) => [
q(Paranawat),
],
- q(5351) => [
+ q(5347) => [
q(Tenharim),
],
- q(5352) => [
+ q(5348) => [
q(Pe),
],
- q(5353) => [
+ q(5349) => [
q(Parakana),
],
- q(5354) => [
+ q(5350) => [
q(Northern Paiute),
],
- q(5355) => [
+ q(5351) => [
q(Parya),
],
- q(5356) => [
+ q(5352) => [
q(Panamint),
q(Timbisha),
],
- q(5357) => [
+ q(5353) => [
q(Papasena),
],
- q(5358) => [
+ q(5354) => [
q(Papitalai),
],
- q(5359) => [
+ q(5355) => [
q(Pakaasnovos),
],
- q(5360) => [
+ q(5356) => [
q(Pawnee),
],
- q(5361) => [
+ q(5357) => [
q(Pankarare),
],
- q(5362) => [
+ q(5358) => [
q(Pech),
],
- q(5363) => [
+ q(5359) => [
q(Pankararu),
],
- q(5364) => [
+ q(5360) => [
q(Paez),
],
- q(5365) => [
+ q(5361) => [
q(Patamona),
],
- q(5366) => [
+ q(5362) => [
q(Mezontla Popoloca),
],
- q(5367) => [
+ q(5363) => [
q(Coyotepec Popoloca),
],
- q(5368) => [
+ q(5364) => [
q(Paraujano),
],
- q(5369) => [
+ q(5365) => [
q(E'napa Woromaipu),
],
- q(5370) => [
+ q(5366) => [
q(Parkwa),
],
- q(5371) => [
+ q(5367) => [
q(Mak (Nigeria)),
],
- q(5372) => [
+ q(5368) => [
q(Kpasam),
],
- q(5373) => [
+ q(5369) => [
q(Papel),
],
- q(5374) => [
+ q(5370) => [
q(Badyara),
],
- q(5375) => [
+ q(5371) => [
q(Pangwa),
],
- q(5376) => [
+ q(5372) => [
q(Central Pame),
],
- q(5377) => [
+ q(5373) => [
q(Southern Pashto),
],
- q(5378) => [
+ q(5374) => [
q(Northern Pashto),
],
- q(5379) => [
+ q(5375) => [
q(Pnar),
],
- q(5380) => [
+ q(5376) => [
q(Pyu (Papua New Guinea)),
],
- q(5381) => [
+ q(5377) => [
q(Santa Ines Ahuatempan Popoloca),
],
- q(5382) => [
+ q(5378) => [
q(Pear),
],
- q(5383) => [
+ q(5379) => [
q(Bouyei),
],
- q(5384) => [
+ q(5380) => [
q(Picard),
],
- q(5385) => [
+ q(5381) => [
q(Ruching Palaung),
],
- q(5386) => [
+ q(5382) => [
q(Paliyan),
],
- q(5387) => [
+ q(5383) => [
q(Paniya),
],
- q(5388) => [
+ q(5384) => [
q(Pardhan),
],
- q(5389) => [
+ q(5385) => [
q(Duruwa),
],
- q(5390) => [
+ q(5386) => [
q(Parenga),
],
- q(5391) => [
+ q(5387) => [
q(Paite Chin),
],
- q(5392) => [
+ q(5388) => [
q(Pardhi),
],
- q(5393) => [
+ q(5389) => [
q(Nigerian Pidgin),
],
- q(5394) => [
+ q(5390) => [
q(Piti),
],
- q(5395) => [
+ q(5391) => [
q(Pacahuara),
],
- q(5396) => [
+ q(5392) => [
q(Pyapun),
],
- q(5397) => [
+ q(5393) => [
q(Anam),
],
- q(5398) => [
+ q(5394) => [
q(Pennsylvania German),
],
- q(5399) => [
+ q(5395) => [
q(Pa Di),
],
- q(5400) => [
+ q(5396) => [
q(Podena),
q(Fedan),
],
- q(5401) => [
+ q(5397) => [
q(Padoe),
],
- q(5402) => [
+ q(5398) => [
q(Plautdietsch),
],
- q(5403) => [
+ q(5399) => [
q(Kayan),
],
- q(5404) => [
+ q(5400) => [
q(Peranakan Indonesian),
],
- q(5405) => [
+ q(5401) => [
q(Eastern Pomo),
],
- q(5406) => [
+ q(5402) => [
q(Mala (Papua New Guinea)),
],
- q(5407) => [
+ q(5403) => [
q(Taje),
],
- q(5408) => [
+ q(5404) => [
q(Northeastern Pomo),
],
- q(5409) => [
+ q(5405) => [
q(Pengo),
],
- q(5410) => [
+ q(5406) => [
q(Bonan),
],
- q(5411) => [
+ q(5407) => [
q(Chichimeca-Jonaz),
],
- q(5412) => [
+ q(5408) => [
q(Northern Pomo),
],
- q(5413) => [
+ q(5409) => [
q(Penchal),
],
- q(5414) => [
+ q(5410) => [
q(Pekal),
],
- q(5415) => [
+ q(5411) => [
q(Phende),
],
- q(5416) => [
+ q(5412) => [
q(Kunja),
],
- q(5417) => [
+ q(5413) => [
q(Southern Pomo),
],
- q(5418) => [
+ q(5414) => [
q(Iranian Persian),
],
- q(5419) => [
+ q(5415) => [
q(Pemono),
],
- q(5420) => [
+ q(5416) => [
q(Petats),
],
- q(5421) => [
+ q(5417) => [
q(Petjo),
],
- q(5422) => [
+ q(5418) => [
q(Eastern Penan),
],
- q(5423) => [
+ q(5419) => [
q(Paafang),
],
- q(5424) => [
+ q(5420) => [
q(Peere),
],
- q(5425) => [
+ q(5421) => [
q(Pfaelzisch),
],
- q(5426) => [
+ q(5422) => [
q(Sudanese Creole Arabic),
],
- q(5427) => [
+ q(5423) => [
q(Gandhari),
],
- q(5428) => [
+ q(5424) => [
q(Pangwali),
],
- q(5429) => [
+ q(5425) => [
q(Pagi),
],
- q(5430) => [
+ q(5426) => [
q(Rerep),
],
- q(5431) => [
+ q(5427) => [
q(Primitive Irish),
],
- q(5432) => [
+ q(5428) => [
q(Paelignian),
],
- q(5433) => [
+ q(5429) => [
q(Pangseng),
],
- q(5434) => [
+ q(5430) => [
q(Pagu),
],
- q(5435) => [
+ q(5431) => [
+ q(Papua New Guinean Sign Language),
+ ],
+ q(5432) => [
q(Pa-Hng),
],
- q(5436) => [
+ q(5433) => [
q(Phudagi),
],
- q(5437) => [
+ q(5434) => [
q(Phuong),
],
- q(5438) => [
+ q(5435) => [
q(Phukha),
],
- q(5439) => [
+ q(5436) => [
q(Phake),
],
- q(5440) => [
+ q(5437) => [
q(Phalura),
q(Palula),
],
- q(5441) => [
+ q(5438) => [
q(Phimbi),
],
- q(5442) => [
+ q(5439) => [
q(Phunoi),
],
- q(5443) => [
+ q(5440) => [
q(Phana'),
],
- q(5444) => [
+ q(5441) => [
q(Pahari-Potwari),
],
- q(5445) => [
+ q(5442) => [
q(Phu Thai),
],
- q(5446) => [
+ q(5443) => [
q(Phuan),
],
- q(5447) => [
+ q(5444) => [
q(Pahlavani),
],
- q(5448) => [
+ q(5445) => [
q(Phangduwali),
],
- q(5449) => [
+ q(5446) => [
q(Pima Bajo),
],
- q(5450) => [
+ q(5447) => [
q(Yine),
],
- q(5451) => [
+ q(5448) => [
q(Pinji),
],
- q(5452) => [
+ q(5449) => [
q(Piaroa),
],
- q(5453) => [
+ q(5450) => [
q(Piro),
],
- q(5454) => [
+ q(5451) => [
q(Pingelapese),
],
- q(5455) => [
+ q(5452) => [
q(Pisabo),
],
- q(5456) => [
+ q(5453) => [
q(Pitcairn-Norfolk),
],
- q(5457) => [
+ q(5454) => [
q(Pini),
],
- q(5458) => [
+ q(5455) => [
q(Pijao),
],
- q(5459) => [
+ q(5456) => [
q(Yom),
],
- q(5460) => [
+ q(5457) => [
q(Powhatan),
],
- q(5461) => [
+ q(5458) => [
q(Piame),
],
- q(5462) => [
+ q(5459) => [
q(Piapoco),
],
- q(5463) => [
+ q(5460) => [
q(Pero),
],
- q(5464) => [
+ q(5461) => [
q(Piratapuyo),
],
- q(5465) => [
+ q(5462) => [
q(Pijin),
],
- q(5466) => [
+ q(5463) => [
q(Pitta Pitta),
],
- q(5467) => [
+ q(5464) => [
q(Pintupi-Luritja),
],
- q(5468) => [
+ q(5465) => [
q(Pileni),
q(Vaeakau-Taumako),
],
- q(5469) => [
+ q(5466) => [
q(Pimbwe),
],
- q(5470) => [
+ q(5467) => [
q(Piu),
],
- q(5471) => [
+ q(5468) => [
q(Piya-Kwonci),
],
- q(5472) => [
+ q(5469) => [
q(Pije),
],
- q(5473) => [
+ q(5470) => [
q(Pitjantjatjara),
],
- q(5474) => [
+ q(5471) => [
q(Ardhamagadhi Prakrit),
],
- q(5475) => [
+ q(5472) => [
q(Pokomo),
q(Kipfokomo),
],
- q(5476) => [
+ q(5473) => [
q(Paekche),
],
- q(5477) => [
+ q(5474) => [
q(Pak-Tong),
],
- q(5478) => [
+ q(5475) => [
q(Pankhu),
],
- q(5479) => [
+ q(5476) => [
q(Pakanha),
],
- q(5480) => [
+ q(5477) => [
q(Pokoot),
],
- q(5481) => [
+ q(5478) => [
q(Pukapuka),
],
- q(5482) => [
+ q(5479) => [
q(Attapady Kurumba),
],
- q(5483) => [
+ q(5480) => [
q(Pakistan Sign Language),
],
- q(5484) => [
+ q(5481) => [
q(Maleng),
],
- q(5485) => [
+ q(5482) => [
q(Paku),
],
- q(5486) => [
+ q(5483) => [
q(Miani),
],
- q(5487) => [
+ q(5484) => [
q(Polonombauk),
],
- q(5488) => [
+ q(5485) => [
q(Central Palawano),
],
- q(5489) => [
+ q(5486) => [
q(Polari),
],
- q(5490) => [
+ q(5487) => [
q(Palu'e),
],
- q(5491) => [
+ q(5488) => [
q(Pilaga),
],
- q(5492) => [
+ q(5489) => [
q(Paulohi),
],
- q(5493) => [
+ q(5490) => [
q(Polci),
],
- q(5494) => [
+ q(5491) => [
q(Kohistani Shina),
],
- q(5495) => [
+ q(5492) => [
q(Shwe Palaung),
],
- q(5496) => [
+ q(5493) => [
q(Palenquero),
],
- q(5497) => [
+ q(5494) => [
q(Oluta Popoluca),
],
- q(5498) => [
+ q(5495) => [
q(Palpa),
],
- q(5499) => [
+ q(5496) => [
q(Palaic),
],
- q(5500) => [
+ q(5497) => [
q(Palaka Senoufo),
],
- q(5501) => [
+ q(5498) => [
q(San Marcos Tlacoyalco Popoloca),
q(San Marcos Tlalcoyalco Popoloca),
],
- q(5502) => [
+ q(5499) => [
q(Plateau Malagasy),
],
- q(5503) => [
+ q(5500) => [
q(Palikur),
],
- q(5504) => [
+ q(5501) => [
q(Southwest Palawano),
],
- q(5505) => [
+ q(5502) => [
q(Brooke's Point Palawano),
],
- q(5506) => [
+ q(5503) => [
q(Bolyu),
],
- q(5507) => [
+ q(5504) => [
q(Paluan),
],
- q(5508) => [
+ q(5505) => [
q(Paama),
],
- q(5509) => [
+ q(5506) => [
q(Pambia),
],
- q(5510) => [
- q(Palumata),
- ],
- q(5511) => [
+ q(5507) => [
q(Pallanganmiddang),
],
- q(5512) => [
+ q(5508) => [
q(Pwaamei),
],
- q(5513) => [
+ q(5509) => [
q(Pamona),
],
- q(5514) => [
+ q(5510) => [
q(Maharastri Prakrit),
],
- q(5515) => [
+ q(5511) => [
q(Northern Pumi),
],
- q(5516) => [
+ q(5512) => [
q(Southern Pumi),
],
- q(5517) => [
+ q(5513) => [
q(Pamlico),
],
- q(5518) => [
+ q(5514) => [
q(Lingua Franca),
],
- q(5519) => [
+ q(5515) => [
q(Pomo),
],
- q(5520) => [
+ q(5516) => [
q(Pam),
],
- q(5521) => [
+ q(5517) => [
q(Pom),
],
- q(5522) => [
+ q(5518) => [
q(Northern Pame),
],
- q(5523) => [
+ q(5519) => [
q(Paynamar),
],
- q(5524) => [
+ q(5520) => [
q(Piemontese),
],
- q(5525) => [
+ q(5521) => [
q(Tuamotuan),
],
- q(5526) => [
+ q(5522) => [
q(Plains Miwok),
],
- q(5527) => [
+ q(5523) => [
q(Poumei Naga),
],
- q(5528) => [
+ q(5524) => [
q(Papuan Malay),
],
- q(5529) => [
+ q(5525) => [
q(Southern Pame),
],
- q(5530) => [
+ q(5526) => [
q(Punan Bah-Biau),
],
- q(5531) => [
+ q(5527) => [
q(Western Panjabi),
],
- q(5532) => [
+ q(5528) => [
q(Pannei),
],
- q(5533) => [
+ q(5529) => [
q(Western Penan),
],
- q(5534) => [
+ q(5530) => [
q(Pongu),
],
- q(5535) => [
+ q(5531) => [
q(Penrhyn),
],
- q(5536) => [
+ q(5532) => [
q(Aoheng),
],
- q(5537) => [
+ q(5533) => [
q(Pinjarup),
],
- q(5538) => [
+ q(5534) => [
q(Paunaka),
],
- q(5539) => [
+ q(5535) => [
q(Paleni),
],
- q(5540) => [
+ q(5536) => [
q(Punan Batu 1),
],
- q(5541) => [
+ q(5537) => [
q(Pinai-Hagahai),
],
- q(5542) => [
+ q(5538) => [
q(Panobo),
],
- q(5543) => [
+ q(5539) => [
q(Pancana),
],
- q(5544) => [
+ q(5540) => [
q(Pana (Burkina Faso)),
],
- q(5545) => [
+ q(5541) => [
q(Panim),
],
- q(5546) => [
+ q(5542) => [
q(Ponosakan),
],
- q(5547) => [
+ q(5543) => [
q(Pontic),
],
- q(5548) => [
+ q(5544) => [
q(Jiongnai Bunu),
],
- q(5549) => [
+ q(5545) => [
q(Pinigura),
],
- q(5550) => [
+ q(5546) => [
q(Panytyima),
],
- q(5551) => [
+ q(5547) => [
q(Phong-Kniang),
],
- q(5552) => [
+ q(5548) => [
q(Pinyin),
],
- q(5553) => [
+ q(5549) => [
q(Pana (Central African Republic)),
],
- q(5554) => [
+ q(5550) => [
q(Poqomam),
],
- q(5555) => [
- q(Ponares),
- ],
- q(5556) => [
+ q(5551) => [
q(San Juan Atzingo Popoloca),
],
- q(5557) => [
+ q(5552) => [
q(Poke),
],
- q(5558) => [
+ q(5553) => [
q(Potiguara),
],
- q(5559) => [
+ q(5554) => [
q(Poqomchi'),
],
- q(5560) => [
+ q(5555) => [
q(Highland Popoluca),
],
- q(5561) => [
+ q(5556) => [
q(Pokanga),
],
- q(5562) => [
+ q(5557) => [
q(Southeastern Pomo),
],
- q(5563) => [
+ q(5558) => [
q(Central Pomo),
],
- q(5564) => [
+ q(5559) => [
q(Pwapwa),
],
- q(5565) => [
+ q(5560) => [
q(Texistepec Popoluca),
],
- q(5566) => [
+ q(5561) => [
q(Sayula Popoluca),
],
- q(5567) => [
+ q(5562) => [
q(Potawatomi),
],
- q(5568) => [
+ q(5563) => [
q(Upper Guinea Crioulo),
],
- q(5569) => [
+ q(5564) => [
q(San Felipe Otlaltepec Popoloca),
],
- q(5570) => [
+ q(5565) => [
q(Polabian),
],
- q(5571) => [
+ q(5566) => [
q(Pogolo),
],
- q(5572) => [
- q(Pao),
- ],
- q(5573) => [
+ q(5567) => [
q(Papi),
],
- q(5574) => [
+ q(5568) => [
q(Paipai),
],
- q(5575) => [
+ q(5569) => [
q(Uma),
],
- q(5576) => [
+ q(5570) => [
q(Pipil),
q(Nicarao),
],
- q(5577) => [
+ q(5571) => [
q(Papuma),
],
- q(5578) => [
+ q(5572) => [
q(Papapana),
],
- q(5579) => [
+ q(5573) => [
q(Folopa),
],
- q(5580) => [
+ q(5574) => [
q(Pelende),
],
- q(5581) => [
+ q(5575) => [
q(Pei),
],
- q(5582) => [
+ q(5576) => [
q(San Luis Temalacayuca Popoloca),
],
- q(5583) => [
+ q(5577) => [
q(Pare),
],
- q(5584) => [
+ q(5578) => [
q(Papora),
],
- q(5585) => [
+ q(5579) => [
q(Pa'a),
],
- q(5586) => [
+ q(5580) => [
q(Malecite-Passamaquoddy),
],
- q(5587) => [
- q(Lua'),
- ],
- q(5588) => [
+ q(5581) => [
q(Parachi),
],
- q(5589) => [
+ q(5582) => [
q(Parsi-Dari),
],
- q(5590) => [
+ q(5583) => [
q(Principense),
],
- q(5591) => [
+ q(5584) => [
q(Paranan),
],
- q(5592) => [
+ q(5585) => [
q(Prussian),
],
- q(5593) => [
+ q(5586) => [
q(Porohanon),
],
- q(5594) => [
+ q(5587) => [
q(Paici),
],
- q(5595) => [
+ q(5588) => [
q(Parauk),
],
- q(5596) => [
+ q(5589) => [
q(Peruvian Sign Language),
],
- q(5597) => [
+ q(5590) => [
q(Kibiri),
],
- q(5598) => [
+ q(5591) => [
q(Prasuni),
],
- q(5599) => [
+ q(5592) => [
q(Parsi),
],
- q(5600) => [
+ q(5593) => [
q(Asheninka Perene),
],
- q(5601) => [
+ q(5594) => [
q(Puri),
],
- q(5602) => [
+ q(5595) => [
q(Dari),
q(Afghan Persian),
],
- q(5603) => [
+ q(5596) => [
q(Phai),
],
- q(5604) => [
+ q(5597) => [
q(Puragi),
],
- q(5605) => [
+ q(5598) => [
q(Parawen),
],
- q(5606) => [
+ q(5599) => [
q(Purik),
],
- q(5607) => [
- q(Pray 3),
- ],
- q(5608) => [
+ q(5600) => [
q(Providencia Sign Language),
],
- q(5609) => [
+ q(5601) => [
q(Asue Awyu),
],
- q(5610) => [
+ q(5602) => [
q(Persian Sign Language),
],
- q(5611) => [
+ q(5603) => [
q(Plains Indian Sign Language),
],
- q(5612) => [
+ q(5604) => [
q(Central Malay),
],
- q(5613) => [
+ q(5605) => [
q(Penang Sign Language),
],
- q(5614) => [
+ q(5606) => [
q(Southwest Pashai),
q(Southwest Pashayi),
],
- q(5615) => [
+ q(5607) => [
q(Southeast Pashai),
q(Southeast Pashayi),
],
- q(5616) => [
+ q(5608) => [
q(Puerto Rican Sign Language),
],
- q(5617) => [
+ q(5609) => [
q(Pauserna),
],
- q(5618) => [
+ q(5610) => [
q(Panasuan),
],
- q(5619) => [
+ q(5611) => [
q(Polish Sign Language),
],
- q(5620) => [
+ q(5612) => [
q(Philippine Sign Language),
],
- q(5621) => [
+ q(5613) => [
q(Pasi),
],
- q(5622) => [
+ q(5614) => [
q(Portuguese Sign Language),
],
- q(5623) => [
+ q(5615) => [
q(Kaulong),
],
- q(5624) => [
+ q(5616) => [
q(Central Pashto),
],
- q(5625) => [
+ q(5617) => [
q(Sauraseni Prakrit),
],
- q(5626) => [
+ q(5618) => [
q(Port Sandwich),
],
- q(5627) => [
+ q(5619) => [
q(Piscataway),
],
- q(5628) => [
+ q(5620) => [
q(Pai Tavytera),
],
- q(5629) => [
+ q(5621) => [
q(Pataxo Ha-Ha-Hae),
],
- q(5630) => [
+ q(5622) => [
q(Pintiini),
],
- q(5631) => [
+ q(5623) => [
q(Patani),
],
- q(5632) => [
+ q(5624) => [
q(Zo'e),
],
- q(5633) => [
+ q(5625) => [
q(Patep),
],
- q(5634) => [
+ q(5626) => [
q(Pattapu),
],
- q(5635) => [
+ q(5627) => [
q(Piamatsina),
],
- q(5636) => [
+ q(5628) => [
q(Enrekang),
],
- q(5637) => [
+ q(5629) => [
q(Bambam),
],
- q(5638) => [
+ q(5630) => [
q(Port Vato),
],
- q(5639) => [
+ q(5631) => [
q(Pentlatch),
],
- q(5640) => [
+ q(5632) => [
q(Pathiya),
],
- q(5641) => [
+ q(5633) => [
q(Western Highland Purepecha),
],
- q(5642) => [
+ q(5634) => [
q(Purum),
],
- q(5643) => [
+ q(5635) => [
q(Punan Merap),
],
- q(5644) => [
+ q(5636) => [
q(Punan Aput),
],
- q(5645) => [
+ q(5637) => [
q(Puelche),
],
- q(5646) => [
+ q(5638) => [
q(Punan Merah),
],
- q(5647) => [
+ q(5639) => [
q(Phuie),
],
- q(5648) => [
+ q(5640) => [
q(Puinave),
],
- q(5649) => [
+ q(5641) => [
q(Punan Tubu),
],
- q(5650) => [
- q(Pu Ko),
- ],
- q(5651) => [
+ q(5642) => [
q(Puma),
],
- q(5652) => [
+ q(5643) => [
q(Puoc),
],
- q(5653) => [
+ q(5644) => [
q(Pulabu),
],
- q(5654) => [
+ q(5645) => [
q(Puquina),
],
- q(5655) => [
+ q(5646) => [
q(Purubora),
],
- q(5656) => [
+ q(5647) => [
q(Putoh),
],
- q(5657) => [
+ q(5648) => [
q(Punu),
],
- q(5658) => [
+ q(5649) => [
q(Puluwatese),
],
- q(5659) => [
+ q(5650) => [
q(Puare),
],
- q(5660) => [
+ q(5651) => [
q(Purisimeno),
],
- q(5661) => [
+ q(5652) => [
q(Pawaia),
],
- q(5662) => [
+ q(5653) => [
q(Panawa),
],
- q(5663) => [
+ q(5654) => [
q(Gapapaiwa),
],
- q(5664) => [
+ q(5655) => [
q(Patwin),
],
- q(5665) => [
+ q(5656) => [
q(Molbog),
],
- q(5666) => [
+ q(5657) => [
q(Paiwan),
],
- q(5667) => [
+ q(5658) => [
q(Pwo Western Karen),
],
- q(5668) => [
+ q(5659) => [
q(Powari),
],
- q(5669) => [
+ q(5660) => [
q(Pwo Northern Karen),
],
- q(5670) => [
+ q(5661) => [
q(Quetzaltepec Mixe),
],
- q(5671) => [
+ q(5662) => [
q(Pye Krumen),
],
- q(5672) => [
+ q(5663) => [
q(Fyam),
],
- q(5673) => [
+ q(5664) => [
q(Poyanawa),
],
- q(5674) => [
+ q(5665) => [
q(Paraguayan Sign Language),
q(Lengua de Senas del Paraguay),
],
- q(5675) => [
+ q(5666) => [
q(Puyuma),
],
- q(5676) => [
+ q(5667) => [
q(Pyu (Myanmar)),
],
- q(5677) => [
+ q(5668) => [
q(Pyen),
],
- q(5678) => [
+ q(5669) => [
q(Para Naga),
],
- q(5679) => [
+ q(5670) => [
q(Quapaw),
],
- q(5680) => [
+ q(5671) => [
q(Huallaga Huanuco Quechua),
],
- q(5681) => [
+ q(5672) => [
q(K'iche'),
q(Quiche),
],
- q(5682) => [
+ q(5673) => [
q(Calderon Highland Quichua),
],
- q(5683) => [
+ q(5674) => [
q(Lambayeque Quechua),
],
- q(5684) => [
+ q(5675) => [
q(Chimborazo Highland Quichua),
],
- q(5685) => [
+ q(5676) => [
q(South Bolivian Quechua),
],
- q(5686) => [
+ q(5677) => [
q(Quileute),
],
- q(5687) => [
+ q(5678) => [
q(Chachapoyas Quechua),
],
- q(5688) => [
+ q(5679) => [
q(North Bolivian Quechua),
],
- q(5689) => [
+ q(5680) => [
q(Sipacapense),
],
- q(5690) => [
+ q(5681) => [
q(Quinault),
],
- q(5691) => [
+ q(5682) => [
q(Southern Pastaza Quechua),
],
- q(5692) => [
+ q(5683) => [
q(Quinqui),
],
- q(5693) => [
+ q(5684) => [
q(Yanahuanca Pasco Quechua),
],
- q(5694) => [
+ q(5685) => [
q(Santiago del Estero Quichua),
],
- q(5695) => [
+ q(5686) => [
q(Sacapulteco),
],
- q(5696) => [
+ q(5687) => [
q(Tena Lowland Quichua),
],
- q(5697) => [
+ q(5688) => [
q(Yauyos Quechua),
],
- q(5698) => [
+ q(5689) => [
q(Ayacucho Quechua),
],
- q(5699) => [
+ q(5690) => [
q(Cusco Quechua),
],
- q(5700) => [
+ q(5691) => [
q(Ambo-Pasco Quechua),
],
- q(5701) => [
+ q(5692) => [
q(Cajamarca Quechua),
],
- q(5702) => [
+ q(5693) => [
q(Eastern Apurimac Quechua),
],
- q(5703) => [
+ q(5694) => [
q(Huamalies-Dos de Mayo Huanuco Quechua),
],
- q(5704) => [
+ q(5695) => [
q(Imbabura Highland Quichua),
],
- q(5705) => [
+ q(5696) => [
q(Loja Highland Quichua),
],
- q(5706) => [
+ q(5697) => [
q(Cajatambo North Lima Quechua),
],
- q(5707) => [
+ q(5698) => [
q(Margos-Yarowilca-Lauricocha Quechua),
],
- q(5708) => [
+ q(5699) => [
q(North Junin Quechua),
],
- q(5709) => [
+ q(5700) => [
q(Napo Lowland Quechua),
],
- q(5710) => [
+ q(5701) => [
q(Pacaraos Quechua),
],
- q(5711) => [
+ q(5702) => [
q(San Martin Quechua),
],
- q(5712) => [
+ q(5703) => [
q(Huaylla Wanca Quechua),
],
- q(5713) => [
+ q(5704) => [
q(Queyu),
],
- q(5714) => [
+ q(5705) => [
q(Northern Pastaza Quichua),
],
- q(5715) => [
+ q(5706) => [
q(Corongo Ancash Quechua),
],
- q(5716) => [
+ q(5707) => [
q(Classical Quechua),
],
- q(5717) => [
+ q(5708) => [
q(Huaylas Ancash Quechua),
],
- q(5718) => [
+ q(5709) => [
q(Kuman (Russia)),
],
- q(5719) => [
+ q(5710) => [
q(Sihuas Ancash Quechua),
],
- q(5720) => [
+ q(5711) => [
q(Kwalhioqua-Tlatskanai),
],
- q(5721) => [
+ q(5712) => [
q(Chiquian Ancash Quechua),
],
- q(5722) => [
+ q(5713) => [
q(Chincha Quechua),
],
- q(5723) => [
+ q(5714) => [
q(Panao Huanuco Quechua),
],
- q(5724) => [
+ q(5715) => [
q(Salasaca Highland Quichua),
],
- q(5725) => [
+ q(5716) => [
q(Northern Conchucos Ancash Quechua),
],
- q(5726) => [
+ q(5717) => [
q(Southern Conchucos Ancash Quechua),
],
- q(5727) => [
+ q(5718) => [
q(Puno Quechua),
],
- q(5728) => [
+ q(5719) => [
q(Qashqa'i),
],
- q(5729) => [
+ q(5720) => [
q(Canar Highland Quichua),
],
- q(5730) => [
+ q(5721) => [
q(Southern Qiang),
],
- q(5731) => [
+ q(5722) => [
q(Santa Ana de Tusi Pasco Quechua),
],
- q(5732) => [
+ q(5723) => [
q(Arequipa-La Union Quechua),
],
- q(5733) => [
+ q(5724) => [
q(Jauja Wanca Quechua),
],
- q(5734) => [
+ q(5725) => [
q(Quenya),
],
- q(5735) => [
+ q(5726) => [
q(Quiripi),
],
- q(5736) => [
+ q(5727) => [
q(Dungmali),
],
- q(5737) => [
+ q(5728) => [
q(Camling),
],
- q(5738) => [
+ q(5729) => [
q(Rasawa),
],
- q(5739) => [
+ q(5730) => [
q(Rade),
],
- q(5740) => [
+ q(5731) => [
q(Western Meohang),
],
- q(5741) => [
+ q(5732) => [
q(Logooli),
q(Lulogooli),
],
- q(5742) => [
+ q(5733) => [
q(Rabha),
],
- q(5743) => [
+ q(5734) => [
q(Ramoaaina),
],
- q(5744) => [
+ q(5735) => [
q(Tulu-Bohuai),
],
- q(5745) => [
+ q(5736) => [
q(Ralte),
],
- q(5746) => [
+ q(5737) => [
q(Canela),
],
- q(5747) => [
+ q(5738) => [
q(Riantana),
],
- q(5748) => [
+ q(5739) => [
q(Rao),
],
- q(5749) => [
+ q(5740) => [
q(Saam),
],
- q(5750) => [
+ q(5741) => [
q(Tegali),
],
- q(5751) => [
+ q(5742) => [
q(Razajerdi),
],
- q(5752) => [
+ q(5743) => [
q(Raute),
],
- q(5753) => [
+ q(5744) => [
q(Sampang),
],
- q(5754) => [
+ q(5745) => [
q(Rawang),
],
- q(5755) => [
+ q(5746) => [
q(Rang),
],
- q(5756) => [
+ q(5747) => [
q(Rapa),
],
- q(5757) => [
+ q(5748) => [
q(Rahambuu),
],
- q(5758) => [
+ q(5749) => [
q(Rumai Palaung),
],
- q(5759) => [
+ q(5750) => [
q(Northern Bontok),
],
- q(5760) => [
+ q(5751) => [
q(Miraya Bikol),
],
- q(5761) => [
+ q(5752) => [
q(Barababaraba),
],
- q(5762) => [
+ q(5753) => [
q(Reunion Creole French),
],
- q(5763) => [
+ q(5754) => [
q(Rudbari),
],
- q(5764) => [
+ q(5755) => [
q(Rerau),
],
- q(5765) => [
+ q(5756) => [
q(Rembong),
],
- q(5766) => [
+ q(5757) => [
q(Rejang Kayan),
],
- q(5767) => [
+ q(5758) => [
q(Kara (Tanzania)),
],
- q(5768) => [
+ q(5759) => [
q(Reli),
],
- q(5769) => [
+ q(5760) => [
q(Rejang),
],
- q(5770) => [
+ q(5761) => [
q(Rendille),
],
- q(5771) => [
+ q(5762) => [
q(Remo),
],
- q(5772) => [
+ q(5763) => [
q(Rengao),
],
- q(5773) => [
+ q(5764) => [
q(Rer Bare),
],
- q(5774) => [
+ q(5765) => [
q(Reshe),
],
- q(5775) => [
+ q(5766) => [
q(Retta),
],
- q(5776) => [
+ q(5767) => [
q(Reyesano),
],
- q(5777) => [
+ q(5768) => [
q(Roria),
],
- q(5778) => [
+ q(5769) => [
q(Romano-Greek),
],
- q(5779) => [
+ q(5770) => [
q(Rangkas),
],
- q(5780) => [
+ q(5771) => [
q(Romagnol),
],
- q(5781) => [
+ q(5772) => [
q(Resigaro),
],
- q(5782) => [
+ q(5773) => [
q(Southern Roglai),
],
- q(5783) => [
+ q(5774) => [
q(Ringgou),
],
- q(5784) => [
+ q(5775) => [
q(Rohingya),
],
- q(5785) => [
+ q(5776) => [
q(Yahang),
],
- q(5786) => [
+ q(5777) => [
q(Riang (India)),
],
- q(5787) => [
- q(Rien),
- ],
- q(5788) => [
+ q(5778) => [
q(Tarifit),
],
- q(5789) => [
+ q(5779) => [
q(Riang (Myanmar)),
],
- q(5790) => [
+ q(5780) => [
q(Nyaturu),
],
- q(5791) => [
+ q(5781) => [
q(Nungu),
],
- q(5792) => [
+ q(5782) => [
q(Ribun),
],
- q(5793) => [
+ q(5783) => [
q(Ritarungo),
],
- q(5794) => [
+ q(5784) => [
q(Riung),
],
- q(5795) => [
+ q(5785) => [
q(Rajong),
],
- q(5796) => [
+ q(5786) => [
q(Raji),
],
- q(5797) => [
+ q(5787) => [
q(Rajbanshi),
],
- q(5798) => [
+ q(5788) => [
q(Kraol),
],
- q(5799) => [
+ q(5789) => [
q(Rikbaktsa),
],
- q(5800) => [
+ q(5790) => [
q(Rakahanga-Manihiki),
],
- q(5801) => [
+ q(5791) => [
q(Rakhine),
],
- q(5802) => [
+ q(5792) => [
q(Marka),
],
- q(5803) => [
+ q(5793) => [
q(Rangpuri),
q(Kamta),
],
- q(5804) => [
+ q(5794) => [
q(Arakwal),
],
- q(5805) => [
+ q(5795) => [
q(Rama),
],
- q(5806) => [
+ q(5796) => [
q(Rembarunga),
],
- q(5807) => [
+ q(5797) => [
q(Carpathian Romani),
],
- q(5808) => [
+ q(5798) => [
q(Traveller Danish),
],
- q(5809) => [
+ q(5799) => [
q(Angloromani),
],
- q(5810) => [
+ q(5800) => [
q(Kalo Finnish Romani),
],
- q(5811) => [
+ q(5801) => [
q(Traveller Norwegian),
],
- q(5812) => [
+ q(5802) => [
q(Murkim),
],
- q(5813) => [
+ q(5803) => [
q(Lomavren),
],
- q(5814) => [
+ q(5804) => [
q(Romkun),
],
- q(5815) => [
+ q(5805) => [
q(Baltic Romani),
],
- q(5816) => [
+ q(5806) => [
q(Roma),
],
- q(5817) => [
+ q(5807) => [
q(Balkan Romani),
],
- q(5818) => [
+ q(5808) => [
q(Sinte Romani),
],
- q(5819) => [
+ q(5809) => [
q(Rempi),
],
- q(5820) => [
+ q(5810) => [
q(Calo),
],
- q(5821) => [
+ q(5811) => [
q(Romanian Sign Language),
],
- q(5822) => [
+ q(5812) => [
q(Domari),
],
- q(5823) => [
+ q(5813) => [
q(Tavringer Romani),
],
- q(5824) => [
+ q(5814) => [
q(Romanova),
],
- q(5825) => [
+ q(5815) => [
q(Welsh Romani),
],
- q(5826) => [
+ q(5816) => [
q(Romam),
],
- q(5827) => [
+ q(5817) => [
q(Vlax Romani),
],
- q(5828) => [
+ q(5818) => [
q(Marma),
],
- q(5829) => [
- q(Runa),
- ],
- q(5830) => [
+ q(5819) => [
q(Ruund),
],
- q(5831) => [
+ q(5820) => [
q(Ronga),
],
- q(5832) => [
+ q(5821) => [
q(Ranglong),
],
- q(5833) => [
+ q(5822) => [
q(Roon),
],
- q(5834) => [
+ q(5823) => [
q(Rongpo),
],
- q(5835) => [
+ q(5824) => [
q(Nari Nari),
],
- q(5836) => [
+ q(5825) => [
q(Rungwa),
],
- q(5837) => [
+ q(5826) => [
q(Tae'),
],
- q(5838) => [
+ q(5827) => [
q(Cacgia Roglai),
],
- q(5839) => [
+ q(5828) => [
q(Rogo),
],
- q(5840) => [
+ q(5829) => [
q(Ronji),
],
- q(5841) => [
+ q(5830) => [
q(Rombo),
],
- q(5842) => [
+ q(5831) => [
q(Northern Roglai),
],
- q(5843) => [
+ q(5832) => [
q(Romblomanon),
],
- q(5844) => [
+ q(5833) => [
q(Rotokas),
],
- q(5845) => [
+ q(5834) => [
q(Kriol),
],
- q(5846) => [
+ q(5835) => [
q(Rongga),
],
- q(5847) => [
+ q(5836) => [
q(Runga),
],
- q(5848) => [
+ q(5837) => [
q(Dela-Oenale),
],
- q(5849) => [
+ q(5838) => [
q(Repanbitip),
],
- q(5850) => [
+ q(5839) => [
q(Rapting),
],
- q(5851) => [
+ q(5840) => [
q(Ririo),
],
- q(5852) => [
+ q(5841) => [
q(Waima),
],
- q(5853) => [
+ q(5842) => [
q(Arritinngithigh),
],
- q(5854) => [
+ q(5843) => [
q(Romano-Serbian),
],
- q(5855) => [
- q(Rennellese Sign Language),
- ],
- q(5856) => [
+ q(5844) => [
q(Russian Sign Language),
],
- q(5857) => [
+ q(5845) => [
+ q(Miriwoong Sign Language),
+ ],
+ q(5846) => [
q(Rungtu Chin),
],
- q(5858) => [
+ q(5847) => [
q(Ratahan),
],
- q(5859) => [
+ q(5848) => [
q(Rotuman),
],
- q(5860) => [
+ q(5849) => [
q(Yurats),
],
- q(5861) => [
+ q(5850) => [
q(Rathawi),
],
- q(5862) => [
+ q(5851) => [
q(Gungu),
],
- q(5863) => [
+ q(5852) => [
q(Ruuli),
],
- q(5864) => [
+ q(5853) => [
q(Rusyn),
],
- q(5865) => [
+ q(5854) => [
q(Luguru),
],
- q(5866) => [
+ q(5855) => [
q(Roviana),
],
- q(5867) => [
+ q(5856) => [
q(Ruga),
],
- q(5868) => [
+ q(5857) => [
q(Rufiji),
],
- q(5869) => [
+ q(5858) => [
q(Che),
],
- q(5870) => [
+ q(5859) => [
q(Istro Romanian),
],
- q(5871) => [
+ q(5860) => [
q(Megleno Romanian),
],
- q(5872) => [
+ q(5861) => [
q(Rutul),
],
- q(5873) => [
+ q(5862) => [
q(Lanas Lobu),
],
- q(5874) => [
+ q(5863) => [
q(Mala (Nigeria)),
],
- q(5875) => [
+ q(5864) => [
q(Ruma),
],
- q(5876) => [
+ q(5865) => [
q(Rawo),
],
- q(5877) => [
+ q(5866) => [
q(Rwa),
],
- q(5878) => [
+ q(5867) => [
q(Amba (Uganda)),
],
- q(5879) => [
+ q(5868) => [
q(Rawa),
],
- q(5880) => [
+ q(5869) => [
q(Marwari (India)),
],
- q(5881) => [
+ q(5870) => [
q(Ngardi),
],
- q(5882) => [
+ q(5871) => [
q(Karuwali),
],
- q(5883) => [
+ q(5872) => [
q(Northern Amami-Oshima),
],
- q(5884) => [
+ q(5873) => [
q(Yaeyama),
],
- q(5885) => [
+ q(5874) => [
q(Central Okinawan),
],
- q(5886) => [
+ q(5875) => [
+ q(Razihi),
+ ],
+ q(5876) => [
q(Saba),
],
- q(5887) => [
+ q(5877) => [
q(Buglere),
],
- q(5888) => [
+ q(5878) => [
q(Meskwaki),
],
- q(5889) => [
+ q(5879) => [
q(Sabane),
],
- q(5890) => [
+ q(5880) => [
q(Safaliba),
],
- q(5891) => [
+ q(5881) => [
q(Sahu),
],
- q(5892) => [
+ q(5882) => [
q(Sake),
],
- q(5893) => [
+ q(5883) => [
q(Sause),
],
- q(5894) => [
+ q(5884) => [
q(Samburu),
],
- q(5895) => [
+ q(5885) => [
q(Saraveca),
],
- q(5896) => [
+ q(5886) => [
q(Saleman),
],
- q(5897) => [
+ q(5887) => [
q(Saafi-Saafi),
],
- q(5898) => [
+ q(5888) => [
q(Sawi),
],
- q(5899) => [
+ q(5889) => [
q(Sa),
],
- q(5900) => [
+ q(5890) => [
q(Saya),
],
- q(5901) => [
+ q(5891) => [
q(Saurashtra),
],
- q(5902) => [
+ q(5892) => [
q(Ngambay),
],
- q(5903) => [
+ q(5893) => [
q(Simbo),
],
- q(5904) => [
+ q(5894) => [
q(Kele (Papua New Guinea)),
],
- q(5905) => [
+ q(5895) => [
q(Southern Samo),
],
- q(5906) => [
+ q(5896) => [
q(Saliba),
],
- q(5907) => [
+ q(5897) => [
q(Chabu),
q(Shabo),
],
- q(5908) => [
+ q(5898) => [
q(Seget),
],
- q(5909) => [
+ q(5899) => [
q(Sori-Harengan),
],
- q(5910) => [
+ q(5900) => [
q(Seti),
],
- q(5911) => [
+ q(5901) => [
q(Surbakhal),
],
- q(5912) => [
+ q(5902) => [
q(Safwa),
],
- q(5913) => [
+ q(5903) => [
q(Botolan Sambal),
],
- q(5914) => [
+ q(5904) => [
q(Sagala),
],
- q(5915) => [
+ q(5905) => [
q(Sindhi Bhil),
],
- q(5916) => [
+ q(5906) => [
q(Sabum),
],
- q(5917) => [
+ q(5907) => [
q(Sangu (Tanzania)),
],
- q(5918) => [
+ q(5908) => [
q(Sileibi),
],
- q(5919) => [
+ q(5909) => [
q(Sembakung Murut),
],
- q(5920) => [
+ q(5910) => [
q(Subiya),
],
- q(5921) => [
+ q(5911) => [
q(Kimki),
],
- q(5922) => [
+ q(5912) => [
q(Stod Bhoti),
],
- q(5923) => [
+ q(5913) => [
q(Sabine),
],
- q(5924) => [
+ q(5914) => [
q(Simba),
],
- q(5925) => [
+ q(5915) => [
q(Seberuang),
],
- q(5926) => [
+ q(5916) => [
q(Soli),
],
- q(5927) => [
+ q(5917) => [
q(Sara Kaba),
],
- q(5928) => [
+ q(5918) => [
q(Chut),
],
- q(5929) => [
+ q(5919) => [
q(Dongxiang),
],
- q(5930) => [
+ q(5920) => [
q(San Miguel Creole French),
],
- q(5931) => [
+ q(5921) => [
q(Sanggau),
],
- q(5932) => [
+ q(5922) => [
q(Sakachep),
],
- q(5933) => [
+ q(5923) => [
q(Sri Lankan Creole Malay),
],
- q(5934) => [
+ q(5924) => [
q(Sadri),
],
- q(5935) => [
+ q(5925) => [
q(Shina),
],
- q(5936) => [
+ q(5926) => [
q(Helambu Sherpa),
],
- q(5937) => [
+ q(5927) => [
q(Sa'och),
],
- q(5938) => [
+ q(5928) => [
q(North Slavey),
],
- q(5939) => [
+ q(5929) => [
+ q(Southern Katang),
+ ],
+ q(5930) => [
q(Shumcho),
],
- q(5940) => [
+ q(5931) => [
q(Sheni),
],
- q(5941) => [
+ q(5932) => [
q(Sha),
],
- q(5942) => [
+ q(5933) => [
q(Sicel),
],
- q(5943) => [
+ q(5934) => [
q(Toraja-Sa'dan),
],
- q(5944) => [
+ q(5935) => [
q(Shabak),
],
- q(5945) => [
+ q(5936) => [
q(Sassarese Sardinian),
],
- q(5946) => [
+ q(5937) => [
q(Surubu),
],
- q(5947) => [
+ q(5938) => [
q(Sarli),
],
- q(5948) => [
+ q(5939) => [
q(Savi),
],
- q(5949) => [
+ q(5940) => [
q(Southern Kurdish),
],
- q(5950) => [
+ q(5941) => [
q(Suundi),
],
- q(5951) => [
+ q(5942) => [
q(Sos Kundi),
],
- q(5952) => [
+ q(5943) => [
q(Saudi Arabian Sign Language),
],
- q(5953) => [
+ q(5944) => [
q(Semandang),
],
- q(5954) => [
+ q(5945) => [
q(Gallurese Sardinian),
],
- q(5955) => [
+ q(5946) => [
q(Bukar-Sadung Bidayuh),
],
- q(5956) => [
+ q(5947) => [
q(Sherdukpen),
],
- q(5957) => [
+ q(5948) => [
q(Oraon Sadri),
],
- q(5958) => [
+ q(5949) => [
q(Sened),
],
- q(5959) => [
+ q(5950) => [
q(Shuadit),
],
- q(5960) => [
+ q(5951) => [
q(Sarudu),
],
- q(5961) => [
+ q(5952) => [
q(Sibu Melanau),
],
- q(5962) => [
+ q(5953) => [
q(Sallands),
],
- q(5963) => [
+ q(5954) => [
q(Semai),
],
- q(5964) => [
+ q(5955) => [
q(Shempire Senoufo),
],
- q(5965) => [
+ q(5956) => [
q(Sechelt),
],
- q(5966) => [
+ q(5957) => [
q(Sedang),
],
- q(5967) => [
+ q(5958) => [
q(Seneca),
],
- q(5968) => [
+ q(5959) => [
q(Cebaara Senoufo),
],
- q(5969) => [
+ q(5960) => [
q(Segeju),
],
- q(5970) => [
+ q(5961) => [
q(Sena),
],
- q(5971) => [
+ q(5962) => [
q(Seri),
],
- q(5972) => [
+ q(5963) => [
q(Sene),
],
- q(5973) => [
+ q(5964) => [
q(Sekani),
],
- q(5974) => [
+ q(5965) => [
q(Nanerige Senoufo),
],
- q(5975) => [
+ q(5966) => [
q(Suarmin),
],
- q(5976) => [
+ q(5967) => [
q(Sicite Senoufo),
],
- q(5977) => [
+ q(5968) => [
q(Senara Senoufo),
],
- q(5978) => [
+ q(5969) => [
q(Serrano),
],
- q(5979) => [
+ q(5970) => [
q(Koyraboro Senni Songhai),
],
- q(5980) => [
+ q(5971) => [
q(Sentani),
],
- q(5981) => [
+ q(5972) => [
q(Serui-Laut),
],
- q(5982) => [
+ q(5973) => [
q(Nyarafolo Senoufo),
],
- q(5983) => [
+ q(5974) => [
q(Sewa Bay),
],
- q(5984) => [
+ q(5975) => [
q(Secoya),
],
- q(5985) => [
+ q(5976) => [
q(Senthang Chin),
],
- q(5986) => [
+ q(5977) => [
q(Langue des signes de Belgique Francophone),
q(French Belgian Sign Language),
],
- q(5987) => [
+ q(5978) => [
q(Eastern Subanen),
],
- q(5988) => [
+ q(5979) => [
q(Small Flowery Miao),
],
- q(5989) => [
+ q(5980) => [
q(South African Sign Language),
],
- q(5990) => [
+ q(5981) => [
q(Sehwi),
],
- q(5991) => [
+ q(5982) => [
q(Mag-antsi Ayta),
],
- q(5992) => [
+ q(5983) => [
q(Kipsigis),
],
- q(5993) => [
+ q(5984) => [
q(Surigaonon),
],
- q(5994) => [
+ q(5985) => [
q(Segai),
],
- q(5995) => [
+ q(5986) => [
q(Swiss-German Sign Language),
],
- q(5996) => [
+ q(5987) => [
q(Shughni),
],
- q(5997) => [
+ q(5988) => [
q(Suga),
],
- q(5998) => [
+ q(5989) => [
q(Surgujia),
],
- q(5999) => [
+ q(5990) => [
q(Sangkong),
],
- q(6000) => [
+ q(5991) => [
q(Singa),
],
- q(6001) => [
+ q(5992) => [
q(Singpho),
],
- q(6002) => [
+ q(5993) => [
q(Sangisari),
],
- q(6003) => [
+ q(5994) => [
q(Samogitian),
],
- q(6004) => [
+ q(5995) => [
q(Brokpake),
],
- q(6005) => [
+ q(5996) => [
q(Salas),
],
- q(6006) => [
+ q(5997) => [
q(Sebat Bet Gurage),
],
- q(6007) => [
+ q(5998) => [
q(Sierra Leone Sign Language),
],
- q(6008) => [
+ q(5999) => [
q(Sanglechi),
],
- q(6009) => [
+ q(6000) => [
q(Sursurunga),
],
- q(6010) => [
+ q(6001) => [
q(Shall-Zwall),
],
- q(6011) => [
+ q(6002) => [
q(Ninam),
],
- q(6012) => [
+ q(6003) => [
q(Sonde),
],
- q(6013) => [
+ q(6004) => [
q(Kundal Shahi),
],
- q(6014) => [
+ q(6005) => [
q(Sheko),
],
- q(6015) => [
+ q(6006) => [
q(Shua),
],
- q(6016) => [
+ q(6007) => [
q(Shoshoni),
],
- q(6017) => [
+ q(6008) => [
q(Tachelhit),
],
- q(6018) => [
+ q(6009) => [
q(Shatt),
],
- q(6019) => [
+ q(6010) => [
q(Shilluk),
],
- q(6020) => [
+ q(6011) => [
q(Shendu),
],
- q(6021) => [
+ q(6012) => [
q(Shahrudi),
],
- q(6022) => [
+ q(6013) => [
q(Shanga),
],
- q(6023) => [
+ q(6014) => [
q(Shipibo-Conibo),
],
- q(6024) => [
+ q(6015) => [
q(Sala),
],
- q(6025) => [
+ q(6016) => [
q(Shi),
],
- q(6026) => [
+ q(6017) => [
q(Shuswap),
],
- q(6027) => [
+ q(6018) => [
q(Shasta),
],
- q(6028) => [
+ q(6019) => [
q(Chadian Arabic),
],
- q(6029) => [
+ q(6020) => [
q(Shehri),
],
- q(6030) => [
+ q(6021) => [
q(Shwai),
],
- q(6031) => [
+ q(6022) => [
q(She),
],
- q(6032) => [
+ q(6023) => [
q(Tachawit),
],
- q(6033) => [
+ q(6024) => [
q(Syenara Senoufo),
],
- q(6034) => [
+ q(6025) => [
q(Akkala Sami),
],
- q(6035) => [
+ q(6026) => [
q(Sebop),
],
- q(6036) => [
+ q(6027) => [
q(Simaa),
],
- q(6037) => [
+ q(6028) => [
q(Siamou),
],
- q(6038) => [
+ q(6029) => [
q(Paasaal),
],
- q(6039) => [
+ q(6030) => [
q(Zire),
q(Sishee),
],
- q(6040) => [
+ q(6031) => [
q(Shom Peng),
],
- q(6041) => [
+ q(6032) => [
q(Numbami),
],
- q(6042) => [
+ q(6033) => [
q(Sikiana),
],
- q(6043) => [
+ q(6034) => [
q(Tumulung Sisaala),
],
- q(6044) => [
+ q(6035) => [
q(Mende (Papua New Guinea)),
],
- q(6045) => [
+ q(6036) => [
q(Sikkimese),
],
- q(6046) => [
+ q(6037) => [
q(Sonia),
],
- q(6047) => [
+ q(6038) => [
q(Siri),
],
- q(6048) => [
+ q(6039) => [
q(Siuslaw),
],
- q(6049) => [
+ q(6040) => [
q(Sinagen),
],
- q(6050) => [
+ q(6041) => [
q(Sumariup),
],
- q(6051) => [
+ q(6042) => [
q(Siwai),
],
- q(6052) => [
+ q(6043) => [
q(Sumau),
],
- q(6053) => [
+ q(6044) => [
q(Sivandi),
],
- q(6054) => [
+ q(6045) => [
q(Siwi),
],
- q(6055) => [
+ q(6046) => [
q(Epena),
],
- q(6056) => [
+ q(6047) => [
q(Sajau Basap),
],
- q(6057) => [
+ q(6048) => [
q(Kildin Sami),
],
- q(6058) => [
+ q(6049) => [
q(Pite Sami),
],
- q(6059) => [
+ q(6050) => [
q(Assangori),
],
- q(6060) => [
+ q(6051) => [
q(Kemi Sami),
],
- q(6061) => [
+ q(6052) => [
q(Sajalong),
q(Miji),
],
- q(6062) => [
+ q(6053) => [
q(Mapun),
],
- q(6063) => [
+ q(6054) => [
q(Sindarin),
],
- q(6064) => [
+ q(6055) => [
q(Xibe),
],
- q(6065) => [
+ q(6056) => [
q(Surjapuri),
],
- q(6066) => [
+ q(6057) => [
q(Siar-Lak),
],
- q(6067) => [
+ q(6058) => [
q(Senhaja De Srair),
],
- q(6068) => [
+ q(6059) => [
q(Ter Sami),
],
- q(6069) => [
+ q(6060) => [
q(Ume Sami),
],
- q(6070) => [
+ q(6061) => [
q(Shawnee),
],
- q(6071) => [
+ q(6062) => [
q(Skagit),
],
- q(6072) => [
+ q(6063) => [
q(Saek),
],
- q(6073) => [
+ q(6064) => [
q(Ma Manda),
],
- q(6074) => [
+ q(6065) => [
q(Southern Sierra Miwok),
],
- q(6075) => [
+ q(6066) => [
q(Seke (Vanuatu)),
],
- q(6076) => [
+ q(6067) => [
q(Sakirabia),
],
- q(6077) => [
+ q(6068) => [
q(Sakalava Malagasy),
],
- q(6078) => [
+ q(6069) => [
q(Sikule),
],
- q(6079) => [
+ q(6070) => [
q(Sika),
],
- q(6080) => [
+ q(6071) => [
q(Seke (Nepal)),
],
- q(6081) => [
- q(Sok),
- ],
- q(6082) => [
+ q(6072) => [
q(Kutong),
],
- q(6083) => [
+ q(6073) => [
q(Kolibugan Subanon),
],
- q(6084) => [
+ q(6074) => [
q(Seko Tengah),
],
- q(6085) => [
+ q(6075) => [
q(Sekapan),
],
- q(6086) => [
+ q(6076) => [
q(Sininkere),
],
- q(6087) => [
+ q(6077) => [
q(Saraiki),
q(Seraiki),
],
- q(6088) => [
+ q(6078) => [
q(Maia),
],
- q(6089) => [
+ q(6079) => [
q(Sakata),
],
- q(6090) => [
+ q(6080) => [
q(Sakao),
],
- q(6091) => [
+ q(6081) => [
q(Skou),
],
- q(6092) => [
+ q(6082) => [
q(Skepi Creole Dutch),
],
- q(6093) => [
+ q(6083) => [
q(Seko Padang),
],
- q(6094) => [
+ q(6084) => [
q(Sikaiana),
],
- q(6095) => [
+ q(6085) => [
q(Sekar),
],
- q(6096) => [
+ q(6086) => [
q(Sissala),
],
- q(6097) => [
+ q(6087) => [
q(Sholaga),
],
- q(6098) => [
+ q(6088) => [
q(Swiss-Italian Sign Language),
],
- q(6099) => [
+ q(6089) => [
q(Selungai Murut),
],
- q(6100) => [
+ q(6090) => [
q(Southern Puget Sound Salish),
],
- q(6101) => [
+ q(6091) => [
q(Lower Silesian),
],
- q(6102) => [
+ q(6092) => [
q(Saluma),
],
- q(6103) => [
+ q(6093) => [
q(Salt-Yui),
],
- q(6104) => [
+ q(6094) => [
q(Pangutaran Sama),
],
- q(6105) => [
+ q(6095) => [
q(Salinan),
],
- q(6106) => [
+ q(6096) => [
q(Lamaholot),
],
- q(6107) => [
+ q(6097) => [
q(Salchuq),
],
- q(6108) => [
+ q(6098) => [
q(Salar),
],
- q(6109) => [
+ q(6099) => [
q(Singapore Sign Language),
],
- q(6110) => [
+ q(6100) => [
q(Sila),
],
- q(6111) => [
+ q(6101) => [
q(Selaru),
],
- q(6112) => [
+ q(6102) => [
q(Sialum),
],
- q(6113) => [
+ q(6103) => [
q(Salampasu),
],
- q(6114) => [
+ q(6104) => [
q(Selayar),
],
- q(6115) => [
+ q(6105) => [
q(Ma'ya),
],
- q(6116) => [
+ q(6106) => [
q(Simbari),
],
- q(6117) => [
+ q(6107) => [
q(Som),
],
- q(6118) => [
+ q(6108) => [
q(Sama),
],
- q(6119) => [
+ q(6109) => [
q(Auwe),
],
- q(6120) => [
+ q(6110) => [
q(Simbali),
],
- q(6121) => [
+ q(6111) => [
q(Samei),
],
- q(6122) => [
+ q(6112) => [
q(Bolinao),
],
- q(6123) => [
+ q(6113) => [
q(Central Sama),
],
- q(6124) => [
+ q(6114) => [
q(Musasa),
],
- q(6125) => [
+ q(6115) => [
q(Samaritan),
],
- q(6126) => [
+ q(6116) => [
q(Samo),
],
- q(6127) => [
+ q(6117) => [
q(Simeulue),
],
- q(6128) => [
+ q(6118) => [
q(Simte),
],
- q(6129) => [
+ q(6119) => [
q(Somray),
],
- q(6130) => [
+ q(6120) => [
q(Samvedi),
],
- q(6131) => [
+ q(6121) => [
q(Sumbawa),
],
- q(6132) => [
+ q(6122) => [
q(Samba),
],
- q(6133) => [
+ q(6123) => [
q(Semnani),
],
- q(6134) => [
+ q(6124) => [
q(Simeku),
],
- q(6135) => [
+ q(6125) => [
q(Sebuyau),
],
- q(6136) => [
+ q(6126) => [
q(Sinaugoro),
],
- q(6137) => [
+ q(6127) => [
q(Bau Bidayuh),
],
- q(6138) => [
+ q(6128) => [
q(Noon),
],
- q(6139) => [
+ q(6129) => [
q(Sanga (Democratic Republic of Congo)),
],
- q(6140) => [
- q(Shinabo),
- ],
- q(6141) => [
+ q(6130) => [
q(Sensi),
],
- q(6142) => [
+ q(6131) => [
q(Riverain Sango),
],
- q(6143) => [
+ q(6132) => [
q(Sangil),
],
- q(6144) => [
+ q(6133) => [
q(Southern Ma'di),
],
- q(6145) => [
+ q(6134) => [
q(Siona),
],
- q(6146) => [
+ q(6135) => [
q(Snohomish),
],
- q(6147) => [
+ q(6136) => [
q(Siane),
],
- q(6148) => [
+ q(6137) => [
q(Sangu (Gabon)),
],
- q(6149) => [
+ q(6138) => [
q(Sihan),
],
- q(6150) => [
+ q(6139) => [
q(South West Bay),
q(Nahavaq),
],
- q(6151) => [
+ q(6140) => [
q(Senggi),
q(Viid),
],
- q(6152) => [
+ q(6141) => [
q(Sa'ban),
],
- q(6153) => [
+ q(6142) => [
q(Selee),
],
- q(6154) => [
+ q(6143) => [
q(Sam),
],
- q(6155) => [
+ q(6144) => [
q(Saniyo-Hiyewe),
],
- q(6156) => [
+ q(6145) => [
q(Sinsauru),
],
- q(6157) => [
+ q(6146) => [
q(Thai Song),
],
- q(6158) => [
+ q(6147) => [
q(Sobei),
],
- q(6159) => [
+ q(6148) => [
q(So (Democratic Republic of Congo)),
],
- q(6160) => [
+ q(6149) => [
q(Songoora),
],
- q(6161) => [
+ q(6150) => [
q(Songomeno),
],
- q(6162) => [
+ q(6151) => [
q(Aka),
],
- q(6163) => [
+ q(6152) => [
q(Sonha),
],
- q(6164) => [
+ q(6153) => [
q(Soi),
],
- q(6165) => [
+ q(6154) => [
q(Sokoro),
],
- q(6166) => [
+ q(6155) => [
q(Solos),
],
- q(6167) => [
+ q(6156) => [
q(Songo),
],
- q(6168) => [
+ q(6157) => [
q(Songe),
],
- q(6169) => [
+ q(6158) => [
q(Kanasi),
],
- q(6170) => [
+ q(6159) => [
q(Somrai),
],
- q(6171) => [
+ q(6160) => [
q(Seeku),
],
- q(6172) => [
+ q(6161) => [
q(Southern Thai),
],
- q(6173) => [
+ q(6162) => [
q(Sonsorol),
],
- q(6174) => [
+ q(6163) => [
q(Sowanda),
],
- q(6175) => [
+ q(6164) => [
q(Swo),
],
- q(6176) => [
+ q(6165) => [
q(Miyobe),
],
- q(6177) => [
+ q(6166) => [
q(Temi),
],
- q(6178) => [
+ q(6167) => [
q(Sepa (Indonesia)),
],
- q(6179) => [
+ q(6168) => [
q(Sape),
],
- q(6180) => [
+ q(6169) => [
q(Saep),
],
- q(6181) => [
+ q(6170) => [
q(Sepa (Papua New Guinea)),
],
- q(6182) => [
+ q(6171) => [
q(Sian),
],
- q(6183) => [
+ q(6172) => [
q(Saponi),
],
- q(6184) => [
+ q(6173) => [
q(Sengo),
],
- q(6185) => [
+ q(6174) => [
q(Selepet),
],
- q(6186) => [
+ q(6175) => [
q(Akukem),
],
- q(6187) => [
+ q(6176) => [
q(Sanapana),
],
- q(6188) => [
+ q(6177) => [
q(Spokane),
],
- q(6189) => [
+ q(6178) => [
q(Supyire Senoufo),
],
- q(6190) => [
+ q(6179) => [
q(Loreto-Ucayali Spanish),
],
- q(6191) => [
+ q(6180) => [
q(Saparua),
],
- q(6192) => [
+ q(6181) => [
q(Saposa),
],
- q(6193) => [
+ q(6182) => [
q(Spiti Bhoti),
],
- q(6194) => [
+ q(6183) => [
q(Sapuan),
],
- q(6195) => [
+ q(6184) => [
q(Sambalpuri),
q(Kosli),
],
- q(6196) => [
+ q(6185) => [
q(South Picene),
],
- q(6197) => [
+ q(6186) => [
q(Sabaot),
],
- q(6198) => [
+ q(6187) => [
q(Shama-Sambuga),
],
- q(6199) => [
+ q(6188) => [
q(Shau),
],
- q(6200) => [
+ q(6189) => [
q(Albanian Sign Language),
],
- q(6201) => [
+ q(6190) => [
q(Suma),
],
- q(6202) => [
+ q(6191) => [
q(Susquehannock),
],
- q(6203) => [
+ q(6192) => [
q(Sorkhei),
],
- q(6204) => [
+ q(6193) => [
q(Sou),
],
- q(6205) => [
+ q(6194) => [
q(Siculo Arabic),
],
- q(6206) => [
+ q(6195) => [
q(Sri Lankan Sign Language),
],
- q(6207) => [
+ q(6196) => [
q(Soqotri),
],
- q(6208) => [
+ q(6197) => [
q(Squamish),
],
- q(6209) => [
+ q(6198) => [
q(Saruga),
],
- q(6210) => [
+ q(6199) => [
q(Sora),
],
- q(6211) => [
+ q(6200) => [
q(Logudorese Sardinian),
],
- q(6212) => [
+ q(6201) => [
q(Sara),
],
- q(6213) => [
+ q(6202) => [
q(Nafi),
],
- q(6214) => [
+ q(6203) => [
q(Sulod),
],
- q(6215) => [
+ q(6204) => [
q(Sarikoli),
],
- q(6216) => [
+ q(6205) => [
q(Siriano),
],
- q(6217) => [
+ q(6206) => [
q(Serudung Murut),
],
- q(6218) => [
+ q(6207) => [
q(Isirawa),
],
- q(6219) => [
+ q(6208) => [
q(Saramaccan),
],
- q(6220) => [
+ q(6209) => [
q(Campidanese Sardinian),
],
- q(6221) => [
+ q(6210) => [
q(Siriono),
],
- q(6222) => [
+ q(6211) => [
q(Sarsi),
],
- q(6223) => [
+ q(6212) => [
q(Sauri),
],
- q(6224) => [
+ q(6213) => [
q(Surui),
],
- q(6225) => [
+ q(6214) => [
q(Southern Sorsoganon),
],
- q(6226) => [
+ q(6215) => [
q(Serua),
],
- q(6227) => [
+ q(6216) => [
q(Sirmauri),
],
- q(6228) => [
+ q(6217) => [
q(Sera),
],
- q(6229) => [
+ q(6218) => [
q(Shahmirzadi),
],
- q(6230) => [
+ q(6219) => [
q(Southern Sama),
],
- q(6231) => [
+ q(6220) => [
q(Suba-Simbiti),
],
- q(6232) => [
+ q(6221) => [
q(Siroi),
],
- q(6233) => [
+ q(6222) => [
q(Balangingi),
q(Bangingih Sama),
],
- q(6234) => [
+ q(6223) => [
q(Thao),
],
- q(6235) => [
+ q(6224) => [
q(Seimat),
],
- q(6236) => [
+ q(6225) => [
q(Shihhi Arabic),
],
- q(6237) => [
+ q(6226) => [
q(Sansi),
],
- q(6238) => [
+ q(6227) => [
q(Sausi),
],
- q(6239) => [
+ q(6228) => [
q(Sunam),
],
- q(6240) => [
+ q(6229) => [
q(Western Sisaala),
],
- q(6241) => [
+ q(6230) => [
q(Semnam),
],
- q(6242) => [
+ q(6231) => [
q(Waata),
],
- q(6243) => [
+ q(6232) => [
q(Sissano),
],
- q(6244) => [
+ q(6233) => [
q(Spanish Sign Language),
],
- q(6245) => [
+ q(6234) => [
q(So'a),
],
- q(6246) => [
+ q(6235) => [
q(Swiss-French Sign Language),
],
- q(6247) => [
+ q(6236) => [
q(So),
],
- q(6248) => [
+ q(6237) => [
q(Sinasina),
],
- q(6249) => [
+ q(6238) => [
q(Susuami),
],
- q(6250) => [
+ q(6239) => [
q(Shark Bay),
],
- q(6251) => [
+ q(6240) => [
q(Samberigi),
],
- q(6252) => [
+ q(6241) => [
q(Saho),
],
- q(6253) => [
+ q(6242) => [
q(Sengseng),
],
- q(6254) => [
+ q(6243) => [
q(Settla),
],
- q(6255) => [
+ q(6244) => [
q(Northern Subanen),
],
- q(6256) => [
+ q(6245) => [
q(Sentinel),
],
- q(6257) => [
+ q(6246) => [
q(Liana-Seti),
],
- q(6258) => [
+ q(6247) => [
q(Seta),
],
- q(6259) => [
+ q(6248) => [
q(Trieng),
],
- q(6260) => [
+ q(6249) => [
q(Shelta),
],
- q(6261) => [
+ q(6250) => [
q(Bulo Stieng),
],
- q(6262) => [
+ q(6251) => [
q(Matya Samo),
],
- q(6263) => [
+ q(6252) => [
q(Arammba),
],
- q(6264) => [
+ q(6253) => [
q(Stellingwerfs),
],
- q(6265) => [
+ q(6254) => [
q(Setaman),
],
- q(6266) => [
+ q(6255) => [
q(Owa),
],
- q(6267) => [
+ q(6256) => [
q(Stoney),
],
- q(6268) => [
+ q(6257) => [
q(Southeastern Tepehuan),
],
- q(6269) => [
+ q(6258) => [
q(Saterfriesisch),
],
- q(6270) => [
+ q(6259) => [
q(Straits Salish),
],
- q(6271) => [
+ q(6260) => [
q(Shumashti),
],
- q(6272) => [
+ q(6261) => [
q(Budeh Stieng),
],
- q(6273) => [
+ q(6262) => [
q(Samtao),
],
- q(6274) => [
+ q(6263) => [
q(Silt'e),
],
- q(6275) => [
+ q(6264) => [
q(Satawalese),
],
- q(6276) => [
+ q(6265) => [
q(Siberian Tatar),
],
- q(6277) => [
+ q(6266) => [
q(Sulka),
],
- q(6278) => [
+ q(6267) => [
q(Suku),
],
- q(6279) => [
+ q(6268) => [
q(Western Subanon),
],
- q(6280) => [
+ q(6269) => [
q(Suena),
],
- q(6281) => [
+ q(6270) => [
q(Suganga),
],
- q(6282) => [
+ q(6271) => [
q(Suki),
],
- q(6283) => [
+ q(6272) => [
q(Shubi),
],
- q(6284) => [
+ q(6273) => [
q(Suri),
],
- q(6285) => [
+ q(6274) => [
q(Mwaghavul),
],
- q(6286) => [
+ q(6275) => [
q(Subtiaba),
],
- q(6287) => [
+ q(6276) => [
q(Puroik),
],
- q(6288) => [
+ q(6277) => [
q(Sumbwa),
],
- q(6289) => [
+ q(6278) => [
q(Suya),
],
- q(6290) => [
+ q(6279) => [
q(Sunwar),
],
- q(6291) => [
+ q(6280) => [
q(Svan),
],
- q(6292) => [
+ q(6281) => [
q(Ulau-Suain),
],
- q(6293) => [
+ q(6282) => [
q(Vincentian Creole English),
],
- q(6294) => [
+ q(6283) => [
q(Serili),
],
- q(6295) => [
+ q(6284) => [
q(Slovakian Sign Language),
],
- q(6296) => [
+ q(6285) => [
q(Slavomolisano),
],
- q(6297) => [
- q(Savara),
- ],
- q(6298) => [
+ q(6286) => [
q(Savosavo),
],
- q(6299) => [
+ q(6287) => [
q(Skalvian),
],
- q(6300) => [
+ q(6288) => [
q(Maore Comorian),
],
- q(6301) => [
+ q(6289) => [
q(Congo Swahili),
],
- q(6302) => [
+ q(6290) => [
q(Sere),
],
- q(6303) => [
+ q(6291) => [
q(Swabian),
],
- q(6304) => [
+ q(6292) => [
q(Swahili (individual language)),
q(Kiswahili),
],
- q(6305) => [
+ q(6293) => [
q(Sui),
],
- q(6306) => [
+ q(6294) => [
q(Sira),
],
- q(6307) => [
+ q(6295) => [
q(Malawi Sena),
],
- q(6308) => [
+ q(6296) => [
q(Swedish Sign Language),
],
- q(6309) => [
+ q(6297) => [
q(Samosa),
],
- q(6310) => [
+ q(6298) => [
q(Sawknah),
],
- q(6311) => [
+ q(6299) => [
q(Shanenawa),
],
- q(6312) => [
+ q(6300) => [
q(Suau),
],
- q(6313) => [
+ q(6301) => [
q(Sharwa),
],
- q(6314) => [
+ q(6302) => [
q(Saweru),
],
- q(6315) => [
+ q(6303) => [
q(Seluwasan),
],
- q(6316) => [
+ q(6304) => [
q(Sawila),
],
- q(6317) => [
+ q(6305) => [
q(Suwawa),
],
- q(6318) => [
+ q(6306) => [
q(Shekhawati),
],
- q(6319) => [
+ q(6307) => [
q(Sowa),
],
- q(6320) => [
+ q(6308) => [
q(Suruaha),
],
- q(6321) => [
+ q(6309) => [
q(Sarua),
],
- q(6322) => [
+ q(6310) => [
q(Suba),
],
- q(6323) => [
+ q(6311) => [
q(Sicanian),
],
- q(6324) => [
+ q(6312) => [
q(Sighu),
],
- q(6325) => [
+ q(6313) => [
q(Shixing),
],
- q(6326) => [
+ q(6314) => [
q(Southern Kalapuya),
],
- q(6327) => [
+ q(6315) => [
q(Selian),
],
- q(6328) => [
+ q(6316) => [
q(Samre),
],
- q(6329) => [
+ q(6317) => [
q(Sangir),
],
- q(6330) => [
+ q(6318) => [
q(Sorothaptic),
],
- q(6331) => [
+ q(6319) => [
q(Saaroa),
],
- q(6332) => [
+ q(6320) => [
q(Sasaru),
],
- q(6333) => [
+ q(6321) => [
q(Upper Saxon),
],
- q(6334) => [
+ q(6322) => [
q(Saxwe Gbe),
],
- q(6335) => [
+ q(6323) => [
q(Siang),
],
- q(6336) => [
+ q(6324) => [
q(Central Subanen),
],
- q(6337) => [
+ q(6325) => [
q(Seki),
],
- q(6338) => [
+ q(6326) => [
q(Sukur),
],
- q(6339) => [
+ q(6327) => [
q(Sylheti),
],
- q(6340) => [
+ q(6328) => [
q(Maya Samo),
],
- q(6341) => [
+ q(6329) => [
q(Senaya),
],
- q(6342) => [
+ q(6330) => [
q(Suoy),
],
- q(6343) => [
+ q(6331) => [
q(Sinyar),
],
- q(6344) => [
+ q(6332) => [
q(Kagate),
],
- q(6345) => [
+ q(6333) => [
q(Samay),
],
- q(6346) => [
+ q(6334) => [
q(Al-Sayyid Bedouin Sign Language),
],
- q(6347) => [
+ q(6335) => [
q(Semelai),
],
- q(6348) => [
+ q(6336) => [
q(Ngalum),
],
- q(6349) => [
+ q(6337) => [
q(Semaq Beri),
],
- q(6350) => [
+ q(6338) => [
q(Seru),
],
- q(6351) => [
+ q(6339) => [
q(Seze),
],
- q(6352) => [
+ q(6340) => [
q(Sengele),
],
- q(6353) => [
+ q(6341) => [
q(Silesian),
],
- q(6354) => [
+ q(6342) => [
q(Sula),
],
- q(6355) => [
+ q(6343) => [
q(Suabo),
],
- q(6356) => [
+ q(6344) => [
+ q(Solomon Islands Sign Language),
+ ],
+ q(6345) => [
q(Isu (Fako Division)),
],
- q(6357) => [
+ q(6346) => [
q(Sawai),
],
- q(6358) => [
+ q(6347) => [
q(Lower Tanana),
],
- q(6359) => [
+ q(6348) => [
q(Tabassaran),
],
- q(6360) => [
+ q(6349) => [
q(Lowland Tarahumara),
],
- q(6361) => [
+ q(6350) => [
q(Tause),
],
- q(6362) => [
+ q(6351) => [
q(Tariana),
],
- q(6363) => [
+ q(6352) => [
q(Tapirape),
],
- q(6364) => [
+ q(6353) => [
q(Tagoi),
],
- q(6365) => [
+ q(6354) => [
q(Eastern Tamang),
],
- q(6366) => [
+ q(6355) => [
q(Tala),
],
- q(6367) => [
+ q(6356) => [
q(Tal),
],
- q(6368) => [
+ q(6357) => [
q(Tangale),
],
- q(6369) => [
+ q(6358) => [
q(Yami),
],
- q(6370) => [
+ q(6359) => [
q(Taabwa),
],
- q(6371) => [
+ q(6360) => [
q(Tamasheq),
],
- q(6372) => [
+ q(6361) => [
q(Central Tarahumara),
],
- q(6373) => [
+ q(6362) => [
q(Tay Boi),
],
- q(6374) => [
+ q(6363) => [
q(Upper Tanana),
],
- q(6375) => [
+ q(6364) => [
q(Tatuyo),
],
- q(6376) => [
+ q(6365) => [
q(Tai),
],
- q(6377) => [
+ q(6366) => [
q(Tamki),
],
- q(6378) => [
+ q(6367) => [
q(Atayal),
],
- q(6379) => [
+ q(6368) => [
q(Tocho),
],
- q(6380) => [
+ q(6369) => [
q(Aikana),
],
- q(6381) => [
+ q(6370) => [
q(Tapeba),
],
- q(6382) => [
+ q(6371) => [
q(Takia),
],
- q(6383) => [
+ q(6372) => [
q(Kaki Ae),
],
- q(6384) => [
+ q(6373) => [
q(Tanimbili),
],
- q(6385) => [
+ q(6374) => [
q(Mandara),
],
- q(6386) => [
+ q(6375) => [
q(North Tairora),
],
- q(6387) => [
+ q(6376) => [
q(Thurawal),
],
- q(6388) => [
+ q(6377) => [
q(Gaam),
],
- q(6389) => [
+ q(6378) => [
q(Tiang),
],
- q(6390) => [
+ q(6379) => [
q(Calamian Tagbanwa),
],
- q(6391) => [
+ q(6380) => [
q(Tboli),
],
- q(6392) => [
+ q(6381) => [
q(Tagbu),
],
- q(6393) => [
+ q(6382) => [
q(Barro Negro Tunebo),
],
- q(6394) => [
+ q(6383) => [
q(Tawala),
],
- q(6395) => [
+ q(6384) => [
q(Taworta),
q(Diebroud),
],
- q(6396) => [
+ q(6385) => [
q(Tumtum),
],
- q(6397) => [
+ q(6386) => [
q(Tanguat),
],
- q(6398) => [
+ q(6387) => [
q(Tembo (Kitembo)),
],
- q(6399) => [
+ q(6388) => [
q(Tubar),
],
- q(6400) => [
+ q(6389) => [
q(Tobo),
],
- q(6401) => [
+ q(6390) => [
q(Tagbanwa),
],
- q(6402) => [
+ q(6391) => [
q(Kapin),
],
- q(6403) => [
+ q(6392) => [
q(Tabaru),
],
- q(6404) => [
+ q(6393) => [
q(Ditammari),
],
- q(6405) => [
+ q(6394) => [
q(Ticuna),
],
- q(6406) => [
+ q(6395) => [
q(Tanacross),
],
- q(6407) => [
+ q(6396) => [
q(Datooga),
],
- q(6408) => [
+ q(6397) => [
q(Tafi),
],
- q(6409) => [
+ q(6398) => [
q(Southern Tutchone),
],
- q(6410) => [
+ q(6399) => [
q(Malinaltepec Me'phaa),
q(Malinaltepec Tlapanec),
],
- q(6411) => [
+ q(6400) => [
q(Tamagario),
],
- q(6412) => [
+ q(6401) => [
q(Turks And Caicos Creole English),
],
- q(6413) => [
+ q(6402) => [
q(Wara),
],
- q(6414) => [
+ q(6403) => [
q(Tchitchege),
],
- q(6415) => [
+ q(6404) => [
q(Taman (Myanmar)),
],
- q(6416) => [
+ q(6405) => [
q(Tanahmerah),
],
- q(6417) => [
+ q(6406) => [
q(Tichurong),
],
- q(6418) => [
+ q(6407) => [
q(Taungyo),
],
- q(6419) => [
+ q(6408) => [
q(Tawr Chin),
],
- q(6420) => [
+ q(6409) => [
q(Kaiy),
],
- q(6421) => [
+ q(6410) => [
q(Torres Strait Creole),
],
- q(6422) => [
+ q(6411) => [
q(T'en),
],
- q(6423) => [
+ q(6412) => [
q(Southeastern Tarahumara),
],
- q(6424) => [
+ q(6413) => [
q(Tecpatlan Totonac),
],
- q(6425) => [
+ q(6414) => [
q(Toda),
],
- q(6426) => [
+ q(6415) => [
q(Tulu),
],
- q(6427) => [
+ q(6416) => [
q(Thado Chin),
],
- q(6428) => [
+ q(6417) => [
q(Tagdal),
],
- q(6429) => [
+ q(6418) => [
q(Panchpargania),
],
- q(6430) => [
+ q(6419) => [
q(Embera-Tado),
],
- q(6431) => [
+ q(6420) => [
q(Tai Nua),
],
- q(6432) => [
+ q(6421) => [
q(Tiranige Diga Dogon),
],
- q(6433) => [
+ q(6422) => [
q(Talieng),
],
- q(6434) => [
+ q(6423) => [
q(Western Tamang),
],
- q(6435) => [
+ q(6424) => [
q(Thulung),
],
- q(6436) => [
+ q(6425) => [
q(Tomadino),
],
- q(6437) => [
+ q(6426) => [
q(Tajio),
],
- q(6438) => [
+ q(6427) => [
q(Tambas),
],
- q(6439) => [
+ q(6428) => [
q(Sur),
],
- q(6440) => [
+ q(6429) => [
+ q(Taruma),
+ ],
+ q(6430) => [
q(Tondano),
],
- q(6441) => [
+ q(6431) => [
q(Teme),
],
- q(6442) => [
+ q(6432) => [
q(Tita),
],
- q(6443) => [
+ q(6433) => [
q(Todrah),
],
- q(6444) => [
+ q(6434) => [
q(Doutai),
],
- q(6445) => [
+ q(6435) => [
q(Tetun Dili),
],
- q(6446) => [
- q(Tempasuk Dusun),
- ],
- q(6447) => [
+ q(6436) => [
q(Toro),
],
- q(6448) => [
+ q(6437) => [
q(Tandroy-Mahafaly Malagasy),
],
- q(6449) => [
+ q(6438) => [
q(Tadyawan),
],
- q(6450) => [
+ q(6439) => [
q(Temiar),
],
- q(6451) => [
+ q(6440) => [
q(Tetete),
],
- q(6452) => [
+ q(6441) => [
q(Terik),
],
- q(6453) => [
+ q(6442) => [
q(Tepo Krumen),
],
- q(6454) => [
+ q(6443) => [
q(Huehuetla Tepehua),
],
- q(6455) => [
+ q(6444) => [
q(Teressa),
],
- q(6456) => [
+ q(6445) => [
q(Teke-Tege),
],
- q(6457) => [
+ q(6446) => [
q(Tehuelche),
],
- q(6458) => [
+ q(6447) => [
q(Torricelli),
],
- q(6459) => [
+ q(6448) => [
q(Ibali Teke),
],
- q(6460) => [
+ q(6449) => [
q(Tama (Colombia)),
],
- q(6461) => [
+ q(6450) => [
q(Teso),
],
- q(6462) => [
+ q(6451) => [
q(Tepecano),
],
- q(6463) => [
+ q(6452) => [
q(Temein),
],
- q(6464) => [
+ q(6453) => [
q(Tengger),
],
- q(6465) => [
+ q(6454) => [
q(Soo),
],
- q(6466) => [
+ q(6455) => [
q(Teor),
],
- q(6467) => [
+ q(6456) => [
q(Tewa (USA)),
],
- q(6468) => [
+ q(6457) => [
q(Tennet),
],
- q(6469) => [
+ q(6458) => [
q(Tulishi),
],
- q(6470) => [
+ q(6459) => [
q(Tofin Gbe),
],
- q(6471) => [
+ q(6460) => [
q(Tanaina),
],
- q(6472) => [
+ q(6461) => [
q(Tefaro),
],
- q(6473) => [
+ q(6462) => [
q(Teribe),
],
- q(6474) => [
+ q(6463) => [
q(Ternate),
],
- q(6475) => [
+ q(6464) => [
q(Sagalla),
],
- q(6476) => [
+ q(6465) => [
q(Tobilung),
],
- q(6477) => [
+ q(6466) => [
q(Tigak),
],
- q(6478) => [
+ q(6467) => [
q(Ciwogai),
],
- q(6479) => [
+ q(6468) => [
q(Eastern Gorkha Tamang),
],
- q(6480) => [
+ q(6469) => [
q(Chalikha),
],
- q(6481) => [
+ q(6470) => [
q(Tobagonian Creole English),
],
- q(6482) => [
+ q(6471) => [
q(Lawunuia),
],
- q(6483) => [
+ q(6472) => [
q(Tagin),
],
- q(6484) => [
+ q(6473) => [
q(Tandaganon),
],
- q(6485) => [
+ q(6474) => [
q(Sudest),
],
- q(6486) => [
+ q(6475) => [
q(Tangoa),
],
- q(6487) => [
+ q(6476) => [
q(Tring),
],
- q(6488) => [
+ q(6477) => [
q(Tareng),
],
- q(6489) => [
+ q(6478) => [
q(Nume),
],
- q(6490) => [
+ q(6479) => [
q(Central Tagbanwa),
],
- q(6491) => [
+ q(6480) => [
q(Tanggu),
],
- q(6492) => [
+ q(6481) => [
q(Tingui-Boto),
],
- q(6493) => [
+ q(6482) => [
q(Tagwana Senoufo),
],
- q(6494) => [
+ q(6483) => [
q(Tagish),
],
- q(6495) => [
+ q(6484) => [
q(Togoyo),
],
- q(6496) => [
+ q(6485) => [
q(Tagalaka),
],
- q(6497) => [
- q(Tai Hang Tong),
- ],
- q(6498) => [
+ q(6486) => [
q(Thayore),
],
- q(6499) => [
+ q(6487) => [
q(Chitwania Tharu),
],
- q(6500) => [
+ q(6488) => [
q(Thangmi),
],
- q(6501) => [
+ q(6489) => [
q(Northern Tarahumara),
],
- q(6502) => [
+ q(6490) => [
q(Tai Long),
],
- q(6503) => [
+ q(6491) => [
q(Tharaka),
q(Kitharaka),
],
- q(6504) => [
+ q(6492) => [
q(Dangaura Tharu),
],
- q(6505) => [
+ q(6493) => [
q(Aheu),
],
- q(6506) => [
+ q(6494) => [
q(Thachanadan),
],
- q(6507) => [
+ q(6495) => [
q(Thompson),
],
- q(6508) => [
+ q(6496) => [
q(Kochila Tharu),
],
- q(6509) => [
+ q(6497) => [
q(Rana Tharu),
],
- q(6510) => [
+ q(6498) => [
q(Thakali),
],
- q(6511) => [
+ q(6499) => [
q(Tahltan),
],
- q(6512) => [
+ q(6500) => [
q(Thuri),
],
- q(6513) => [
+ q(6501) => [
q(Tahaggart Tamahaq),
],
- q(6514) => [
+ q(6502) => [
q(Thudam),
],
- q(6515) => [
+ q(6503) => [
q(Tha),
],
- q(6516) => [
+ q(6504) => [
q(Tayart Tamajeq),
],
- q(6517) => [
+ q(6505) => [
q(Tidikelt Tamazight),
],
- q(6518) => [
+ q(6506) => [
q(Tira),
],
- q(6519) => [
- q(Tidong),
- ],
- q(6520) => [
+ q(6507) => [
q(Tifal),
],
- q(6521) => [
+ q(6508) => [
q(Timugon Murut),
],
- q(6522) => [
+ q(6509) => [
q(Tiene),
],
- q(6523) => [
+ q(6510) => [
q(Tilung),
],
- q(6524) => [
+ q(6511) => [
q(Tikar),
],
- q(6525) => [
+ q(6512) => [
q(Tillamook),
],
- q(6526) => [
+ q(6513) => [
q(Timbe),
],
- q(6527) => [
+ q(6514) => [
q(Tindi),
],
- q(6528) => [
+ q(6515) => [
q(Teop),
],
- q(6529) => [
+ q(6516) => [
q(Trimuris),
],
- q(6530) => [
+ q(6517) => [
q(Tiefo),
],
- q(6531) => [
+ q(6518) => [
q(Masadiit Itneg),
],
- q(6532) => [
+ q(6519) => [
q(Tinigua),
],
- q(6533) => [
+ q(6520) => [
q(Adasen),
],
- q(6534) => [
+ q(6521) => [
q(Tiwi),
],
- q(6535) => [
+ q(6522) => [
q(Southern Tiwa),
],
- q(6536) => [
+ q(6523) => [
q(Tiruray),
],
- q(6537) => [
+ q(6524) => [
q(Tai Hongjin),
],
- q(6538) => [
+ q(6525) => [
q(Tajuasohn),
],
- q(6539) => [
+ q(6526) => [
q(Tunjung),
],
- q(6540) => [
+ q(6527) => [
q(Northern Tujia),
],
- q(6541) => [
+ q(6528) => [
q(Tai Laing),
],
- q(6542) => [
+ q(6529) => [
q(Timucua),
],
- q(6543) => [
+ q(6530) => [
q(Tonjon),
],
- q(6544) => [
+ q(6531) => [
q(Temacine Tamazight),
],
- q(6545) => [
+ q(6532) => [
q(Southern Tujia),
],
- q(6546) => [
+ q(6533) => [
q(Tjurruru),
],
- q(6547) => [
+ q(6534) => [
q(Djabwurrung),
],
- q(6548) => [
+ q(6535) => [
q(Truka),
],
- q(6549) => [
+ q(6536) => [
q(Buksa),
],
- q(6550) => [
+ q(6537) => [
q(Tukudede),
],
- q(6551) => [
+ q(6538) => [
q(Takwane),
],
- q(6552) => [
+ q(6539) => [
q(Tukumanfed),
],
- q(6553) => [
+ q(6540) => [
q(Tesaka Malagasy),
],
- q(6554) => [
+ q(6541) => [
q(Takelma),
],
- q(6555) => [
+ q(6542) => [
q(Toku-No-Shima),
],
- q(6556) => [
+ q(6543) => [
q(Tikopia),
],
- q(6557) => [
+ q(6544) => [
q(Tee),
],
- q(6558) => [
+ q(6545) => [
q(Tsakhur),
],
- q(6559) => [
+ q(6546) => [
q(Takestani),
],
- q(6560) => [
+ q(6547) => [
q(Kathoriya Tharu),
],
- q(6561) => [
+ q(6548) => [
q(Upper Necaxa Totonac),
],
- q(6562) => [
+ q(6549) => [
q(Mur Pano),
],
- q(6563) => [
+ q(6550) => [
q(Teanu),
],
- q(6564) => [
+ q(6551) => [
q(Tangko),
],
- q(6565) => [
+ q(6552) => [
q(Takua),
],
- q(6566) => [
+ q(6553) => [
q(Southwestern Tepehuan),
],
- q(6567) => [
+ q(6554) => [
q(Tobelo),
],
- q(6568) => [
+ q(6555) => [
q(Yecuatla Totonac),
],
- q(6569) => [
+ q(6556) => [
q(Talaud),
],
- q(6570) => [
+ q(6557) => [
q(Telefol),
],
- q(6571) => [
+ q(6558) => [
q(Tofanma),
],
- q(6572) => [
+ q(6559) => [
q(Talinga-Bwisi),
],
- q(6573) => [
+ q(6560) => [
q(Taloki),
],
- q(6574) => [
+ q(6561) => [
q(Tetela),
],
- q(6575) => [
+ q(6562) => [
q(Tolomako),
],
- q(6576) => [
+ q(6563) => [
q(Talondo'),
],
- q(6577) => [
+ q(6564) => [
q(Talodi),
],
- q(6578) => [
+ q(6565) => [
q(Filomena Mata-Coahuitlan Totonac),
],
- q(6579) => [
+ q(6566) => [
q(Tai Loi),
],
- q(6580) => [
+ q(6567) => [
q(Talise),
],
- q(6581) => [
+ q(6568) => [
q(Tambotalo),
],
- q(6582) => [
+ q(6569) => [
+ q(Sou Nama),
q(Teluti),
],
- q(6583) => [
+ q(6570) => [
q(Tulehu),
],
- q(6584) => [
+ q(6571) => [
q(Taliabu),
],
- q(6585) => [
+ q(6572) => [
q(Khehek),
],
- q(6586) => [
+ q(6573) => [
q(Talysh),
],
- q(6587) => [
+ q(6574) => [
q(Tama (Chad)),
],
- q(6588) => [
+ q(6575) => [
q(Katbol),
q(Avava),
],
- q(6589) => [
+ q(6576) => [
q(Tumak),
],
- q(6590) => [
+ q(6577) => [
q(Haruai),
],
- q(6591) => [
+ q(6578) => [
q(Tremembe),
],
- q(6592) => [
+ q(6579) => [
q(Toba-Maskoy),
],
- q(6593) => [
+ q(6580) => [
q(Ternateno),
],
- q(6594) => [
+ q(6581) => [
q(Tutuba),
],
- q(6595) => [
+ q(6582) => [
q(Samarokena),
],
- q(6596) => [
+ q(6583) => [
q(Northwestern Tamang),
],
- q(6597) => [
+ q(6584) => [
q(Tamnim Citak),
],
- q(6598) => [
+ q(6585) => [
q(Tai Thanh),
],
- q(6599) => [
+ q(6586) => [
q(Taman (Indonesia)),
],
- q(6600) => [
+ q(6587) => [
q(Temoq),
],
- q(6601) => [
- q(Tai Mene),
- ],
- q(6602) => [
+ q(6588) => [
q(Tumleo),
],
- q(6603) => [
+ q(6589) => [
q(Jewish Babylonian Aramaic (ca. 200-1200 CE)),
],
- q(6604) => [
+ q(6590) => [
q(Tima),
],
- q(6605) => [
+ q(6591) => [
q(Tasmate),
],
- q(6606) => [
+ q(6592) => [
q(Iau),
],
- q(6607) => [
+ q(6593) => [
q(Tembo (Motembo)),
],
- q(6608) => [
+ q(6594) => [
q(Temuan),
],
- q(6609) => [
+ q(6595) => [
q(Tami),
],
- q(6610) => [
+ q(6596) => [
q(Tamanaku),
],
- q(6611) => [
+ q(6597) => [
q(Tacana),
],
- q(6612) => [
+ q(6598) => [
q(Western Tunebo),
],
- q(6613) => [
+ q(6599) => [
q(Tanimuca-Retuara),
],
- q(6614) => [
+ q(6600) => [
q(Angosturas Tunebo),
],
- q(6615) => [
- q(Tinoc Kallahan),
- ],
- q(6616) => [
+ q(6601) => [
q(Tobanga),
],
- q(6617) => [
+ q(6602) => [
q(Maiani),
],
- q(6618) => [
+ q(6603) => [
q(Tandia),
],
- q(6619) => [
+ q(6604) => [
q(Kwamera),
],
- q(6620) => [
+ q(6605) => [
q(Lenakel),
],
- q(6621) => [
+ q(6606) => [
q(Tabla),
],
- q(6622) => [
+ q(6607) => [
q(North Tanna),
],
- q(6623) => [
+ q(6608) => [
q(Toromono),
],
- q(6624) => [
+ q(6609) => [
q(Whitesands),
],
- q(6625) => [
+ q(6610) => [
q(Taino),
],
- q(6626) => [
+ q(6611) => [
q(Menik),
],
- q(6627) => [
+ q(6612) => [
q(Tenis),
],
- q(6628) => [
+ q(6613) => [
q(Tontemboan),
],
- q(6629) => [
+ q(6614) => [
q(Tay Khang),
],
- q(6630) => [
+ q(6615) => [
q(Tangchangya),
],
- q(6631) => [
+ q(6616) => [
q(Tonsawang),
],
- q(6632) => [
+ q(6617) => [
q(Tanema),
],
- q(6633) => [
+ q(6618) => [
q(Tongwe),
],
- q(6634) => [
- q(Tonga (Thailand)),
+ q(6619) => [
+ q(Ten'edn),
],
- q(6635) => [
+ q(6620) => [
q(Toba),
],
- q(6636) => [
+ q(6621) => [
q(Coyutla Totonac),
],
- q(6637) => [
+ q(6622) => [
q(Toma),
],
- q(6638) => [
- q(Tomedes),
- ],
- q(6639) => [
+ q(6623) => [
q(Gizrra),
],
- q(6640) => [
+ q(6624) => [
q(Gitonga),
],
- q(6641) => [
+ q(6625) => [
q(Tonga (Zambia)),
],
- q(6642) => [
+ q(6626) => [
q(Tojolabal),
],
- q(6643) => [
+ q(6627) => [
q(Tolowa),
],
- q(6644) => [
+ q(6628) => [
q(Tombulu),
],
- q(6645) => [
+ q(6629) => [
q(Xicotepec De Juarez Totonac),
],
- q(6646) => [
+ q(6630) => [
q(Papantla Totonac),
],
- q(6647) => [
+ q(6631) => [
q(Toposa),
],
- q(6648) => [
+ q(6632) => [
q(Togbo-Vara Banda),
],
- q(6649) => [
+ q(6633) => [
q(Highland Totonac),
],
- q(6650) => [
+ q(6634) => [
q(Tho),
],
- q(6651) => [
+ q(6635) => [
q(Upper Taromi),
],
- q(6652) => [
+ q(6636) => [
q(Jemez),
],
- q(6653) => [
+ q(6637) => [
q(Tobian),
],
- q(6654) => [
+ q(6638) => [
q(Topoiyo),
],
- q(6655) => [
+ q(6639) => [
q(To),
],
- q(6656) => [
+ q(6640) => [
q(Taupota),
],
- q(6657) => [
+ q(6641) => [
q(Azoyu Me'phaa),
q(Azoyu Tlapanec),
],
- q(6658) => [
+ q(6642) => [
q(Tippera),
],
- q(6659) => [
+ q(6643) => [
q(Tarpia),
],
- q(6660) => [
+ q(6644) => [
q(Kula),
],
- q(6661) => [
+ q(6645) => [
q(Tapiete),
],
- q(6662) => [
+ q(6646) => [
q(Tupinikin),
],
- q(6663) => [
+ q(6647) => [
q(Tlacoapa Me'phaa),
q(Tlacoapa Tlapanec),
],
- q(6664) => [
+ q(6648) => [
q(Tampulma),
],
- q(6665) => [
+ q(6649) => [
q(Tupinamba),
],
- q(6666) => [
+ q(6650) => [
q(Tai Pao),
],
- q(6667) => [
+ q(6651) => [
q(Pisaflores Tepehua),
],
- q(6668) => [
+ q(6652) => [
q(Tukpa),
],
- q(6669) => [
+ q(6653) => [
q(Tupari),
],
- q(6670) => [
+ q(6654) => [
q(Tlachichilco Tepehua),
],
- q(6671) => [
+ q(6655) => [
q(Tampuan),
],
- q(6672) => [
+ q(6656) => [
q(Tanapag),
],
- q(6673) => [
+ q(6657) => [
q(Tupi),
],
- q(6674) => [
+ q(6658) => [
q(Acatepec Me'phaa),
q(Acatepec Tlapanec),
],
- q(6675) => [
+ q(6659) => [
q(Trumai),
],
- q(6676) => [
+ q(6660) => [
q(Tinputz),
],
- q(6677) => [
+ q(6661) => [
q(Tembe),
],
- q(6678) => [
+ q(6662) => [
q(Lehali),
],
- q(6679) => [
+ q(6663) => [
q(Turumsa),
],
- q(6680) => [
+ q(6664) => [
q(Tenino),
],
- q(6681) => [
+ q(6665) => [
q(Toaripi),
],
- q(6682) => [
+ q(6666) => [
q(Tomoip),
],
- q(6683) => [
+ q(6667) => [
q(Tunni),
],
- q(6684) => [
+ q(6668) => [
q(Torona),
],
- q(6685) => [
+ q(6669) => [
q(Western Totonac),
],
- q(6686) => [
+ q(6670) => [
q(Touo),
],
- q(6687) => [
+ q(6671) => [
q(Tonkawa),
],
- q(6688) => [
+ q(6672) => [
q(Tirahi),
],
- q(6689) => [
+ q(6673) => [
q(Terebu),
],
- q(6690) => [
+ q(6674) => [
q(Copala Triqui),
],
- q(6691) => [
+ q(6675) => [
q(Turi),
],
- q(6692) => [
+ q(6676) => [
q(East Tarangan),
],
- q(6693) => [
+ q(6677) => [
q(Trinidadian Creole English),
],
- q(6694) => [
+ q(6678) => [
q(Lishan Didan),
],
- q(6695) => [
+ q(6679) => [
q(Turaka),
],
- q(6696) => [
+ q(6680) => [
q(Trio),
],
- q(6697) => [
+ q(6681) => [
q(Toram),
],
- q(6698) => [
+ q(6682) => [
q(Traveller Scottish),
],
- q(6699) => [
+ q(6683) => [
q(Tregami),
],
- q(6700) => [
+ q(6684) => [
q(Trinitario),
],
- q(6701) => [
+ q(6685) => [
q(Tarao Naga),
],
- q(6702) => [
+ q(6686) => [
q(Kok Borok),
],
- q(6703) => [
+ q(6687) => [
q(San Martin Itunyoso Triqui),
],
- q(6704) => [
+ q(6688) => [
q(Taushiro),
],
- q(6705) => [
+ q(6689) => [
q(Chicahuaxtla Triqui),
],
- q(6706) => [
+ q(6690) => [
q(Tunggare),
],
- q(6707) => [
+ q(6691) => [
q(Turoyo),
q(Surayt),
],
- q(6708) => [
+ q(6692) => [
q(Taroko),
],
- q(6709) => [
+ q(6693) => [
q(Torwali),
],
- q(6710) => [
+ q(6694) => [
q(Tringgus-Sembaan Bidayuh),
],
- q(6711) => [
+ q(6695) => [
q(Turung),
],
- q(6712) => [
+ q(6696) => [
q(Tora),
],
- q(6713) => [
+ q(6697) => [
q(Tsaangi),
],
- q(6714) => [
+ q(6698) => [
q(Tsamai),
],
- q(6715) => [
+ q(6699) => [
q(Tswa),
],
- q(6716) => [
+ q(6700) => [
q(Tsakonian),
],
- q(6717) => [
+ q(6701) => [
q(Tunisian Sign Language),
],
- q(6718) => [
+ q(6702) => [
q(Tausug),
],
- q(6719) => [
+ q(6703) => [
q(Tsuvan),
],
- q(6720) => [
+ q(6704) => [
q(Tshangla),
],
- q(6721) => [
+ q(6705) => [
q(Tseku),
],
- q(6722) => [
+ q(6706) => [
q(Ts'un-Lao),
],
- q(6723) => [
+ q(6707) => [
q(Turkish Sign Language),
q(Turk Isaret Dili),
],
- q(6724) => [
+ q(6708) => [
q(Northern Toussian),
],
- q(6725) => [
+ q(6709) => [
q(Thai Sign Language),
],
- q(6726) => [
+ q(6710) => [
q(Akei),
],
- q(6727) => [
+ q(6711) => [
q(Taiwan Sign Language),
],
- q(6728) => [
+ q(6712) => [
q(Tondi Songway Kiini),
],
- q(6729) => [
+ q(6713) => [
q(Tsou),
],
- q(6730) => [
+ q(6714) => [
q(Tsogo),
],
- q(6731) => [
+ q(6715) => [
q(Tsishingini),
],
- q(6732) => [
+ q(6716) => [
q(Mubami),
],
- q(6733) => [
+ q(6717) => [
q(Tebul Sign Language),
],
- q(6734) => [
+ q(6718) => [
q(Purepecha),
],
- q(6735) => [
+ q(6719) => [
q(Tutelo),
],
- q(6736) => [
+ q(6720) => [
q(Gaa),
],
- q(6737) => [
+ q(6721) => [
q(Tektiteko),
],
- q(6738) => [
+ q(6722) => [
q(Tauade),
],
- q(6739) => [
+ q(6723) => [
q(Bwanabwana),
],
- q(6740) => [
+ q(6724) => [
q(Tuotomb),
],
- q(6741) => [
+ q(6725) => [
q(Tutong),
],
- q(6742) => [
+ q(6726) => [
q(Upper Ta'oih),
],
- q(6743) => [
+ q(6727) => [
q(Tobati),
],
- q(6744) => [
+ q(6728) => [
q(Tooro),
],
- q(6745) => [
+ q(6729) => [
q(Totoro),
],
- q(6746) => [
+ q(6730) => [
q(Totela),
],
- q(6747) => [
+ q(6731) => [
q(Northern Tutchone),
],
- q(6748) => [
+ q(6732) => [
q(Towei),
],
- q(6749) => [
+ q(6733) => [
q(Lower Ta'oih),
],
- q(6750) => [
+ q(6734) => [
q(Tombelala),
],
- q(6751) => [
+ q(6735) => [
q(Tawallammat Tamajaq),
],
- q(6752) => [
+ q(6736) => [
q(Tera),
],
- q(6753) => [
+ q(6737) => [
q(Northeastern Thai),
],
- q(6754) => [
+ q(6738) => [
q(Muslim Tat),
],
- q(6755) => [
+ q(6739) => [
q(Torau),
],
- q(6756) => [
+ q(6740) => [
q(Titan),
],
- q(6757) => [
+ q(6741) => [
q(Long Wat),
],
- q(6758) => [
+ q(6742) => [
q(Sikaritai),
],
- q(6759) => [
+ q(6743) => [
q(Tsum),
],
- q(6760) => [
+ q(6744) => [
q(Wiarumus),
],
- q(6761) => [
+ q(6745) => [
q(Tubatulabal),
],
- q(6762) => [
+ q(6746) => [
q(Mutu),
],
- q(6763) => [
+ q(6747) => [
q(Tuxa),
],
- q(6764) => [
+ q(6748) => [
q(Tuyuca),
],
- q(6765) => [
+ q(6749) => [
q(Central Tunebo),
],
- q(6766) => [
+ q(6750) => [
q(Tunia),
],
- q(6767) => [
+ q(6751) => [
q(Taulil),
],
- q(6768) => [
+ q(6752) => [
q(Tupuri),
],
- q(6769) => [
+ q(6753) => [
q(Tugutil),
],
- q(6770) => [
+ q(6754) => [
q(Tula),
],
- q(6771) => [
+ q(6755) => [
q(Tunica),
],
- q(6772) => [
+ q(6756) => [
q(Tucano),
],
- q(6773) => [
+ q(6757) => [
q(Tedaga),
],
- q(6774) => [
+ q(6758) => [
q(Tuscarora),
],
- q(6775) => [
+ q(6759) => [
q(Tututni),
],
- q(6776) => [
+ q(6760) => [
q(Turkana),
],
- q(6777) => [
+ q(6761) => [
q(Tuxinawa),
],
- q(6778) => [
+ q(6762) => [
q(Tugen),
],
- q(6779) => [
+ q(6763) => [
q(Turka),
],
- q(6780) => [
+ q(6764) => [
q(Vaghua),
],
- q(6781) => [
+ q(6765) => [
q(Tsuvadi),
],
- q(6782) => [
+ q(6766) => [
q(Te'un),
],
- q(6783) => [
+ q(6767) => [
q(Southeast Ambrym),
],
- q(6784) => [
+ q(6768) => [
q(Tela-Masbuar),
],
- q(6785) => [
+ q(6769) => [
q(Tavoyan),
],
- q(6786) => [
+ q(6770) => [
q(Tidore),
],
- q(6787) => [
+ q(6771) => [
q(Taveta),
],
- q(6788) => [
+ q(6772) => [
q(Tutsa Naga),
],
- q(6789) => [
+ q(6773) => [
q(Tunen),
],
- q(6790) => [
+ q(6774) => [
q(Sedoa),
],
- q(6791) => [
+ q(6775) => [
q(Timor Pidgin),
],
- q(6792) => [
+ q(6776) => [
q(Twana),
],
- q(6793) => [
+ q(6777) => [
q(Western Tawbuid),
],
- q(6794) => [
+ q(6778) => [
q(Teshenawa),
],
- q(6795) => [
+ q(6779) => [
q(Twents),
],
- q(6796) => [
+ q(6780) => [
q(Tewa (Indonesia)),
],
- q(6797) => [
+ q(6781) => [
q(Northern Tiwa),
],
- q(6798) => [
+ q(6782) => [
q(Tereweng),
],
- q(6799) => [
+ q(6783) => [
q(Tai Don),
],
- q(6800) => [
+ q(6784) => [
q(Tawara),
],
- q(6801) => [
+ q(6785) => [
q(Tawang Monpa),
],
- q(6802) => [
+ q(6786) => [
q(Twendi),
],
- q(6803) => [
+ q(6787) => [
q(Tswapong),
],
- q(6804) => [
+ q(6788) => [
q(Ere),
],
- q(6805) => [
+ q(6789) => [
q(Tasawaq),
],
- q(6806) => [
+ q(6790) => [
q(Southwestern Tarahumara),
],
- q(6807) => [
+ q(6791) => [
q(Turiwara),
],
- q(6808) => [
+ q(6792) => [
q(Termanu),
],
- q(6809) => [
+ q(6793) => [
q(Tuwari),
],
- q(6810) => [
+ q(6794) => [
q(Tewe),
],
- q(6811) => [
+ q(6795) => [
q(Tawoyan),
],
- q(6812) => [
+ q(6796) => [
q(Tombonuo),
],
- q(6813) => [
+ q(6797) => [
q(Tokharian B),
],
- q(6814) => [
+ q(6798) => [
q(Tsetsaut),
],
- q(6815) => [
+ q(6799) => [
q(Totoli),
],
- q(6816) => [
+ q(6800) => [
q(Tangut),
],
- q(6817) => [
+ q(6801) => [
q(Thracian),
],
- q(6818) => [
+ q(6802) => [
q(Ikpeng),
],
- q(6819) => [
+ q(6803) => [
q(Tarjumo),
],
- q(6820) => [
+ q(6804) => [
q(Tomini),
],
- q(6821) => [
+ q(6805) => [
q(West Tarangan),
],
- q(6822) => [
+ q(6806) => [
q(Toto),
],
- q(6823) => [
+ q(6807) => [
q(Tii),
],
- q(6824) => [
+ q(6808) => [
q(Tartessian),
],
- q(6825) => [
+ q(6809) => [
q(Tonsea),
],
- q(6826) => [
+ q(6810) => [
q(Citak),
],
- q(6827) => [
+ q(6811) => [
q(Kayapo),
],
- q(6828) => [
+ q(6812) => [
q(Tatana),
],
- q(6829) => [
+ q(6813) => [
q(Tanosy Malagasy),
],
- q(6830) => [
+ q(6814) => [
q(Tauya),
],
- q(6831) => [
+ q(6815) => [
q(Kyanga),
],
- q(6832) => [
+ q(6816) => [
q(O'du),
],
- q(6833) => [
+ q(6817) => [
q(Teke-Tsaayi),
],
- q(6834) => [
+ q(6818) => [
q(Tai Do),
+ q(Tai Yo),
],
- q(6835) => [
+ q(6819) => [
q(Thu Lao),
],
- q(6836) => [
+ q(6820) => [
q(Kombai),
],
- q(6837) => [
+ q(6821) => [
q(Thaypan),
],
- q(6838) => [
+ q(6822) => [
q(Tai Daeng),
],
- q(6839) => [
+ q(6823) => [
q(Tay Sa Pa),
],
- q(6840) => [
+ q(6824) => [
q(Tay Tac),
],
- q(6841) => [
+ q(6825) => [
q(Kua),
],
- q(6842) => [
+ q(6826) => [
q(Teke-Tyee),
],
- q(6843) => [
+ q(6827) => [
q(Tay),
],
- q(6844) => [
+ q(6828) => [
q(Tanzanian Sign Language),
],
- q(6845) => [
+ q(6829) => [
q(Tzeltal),
],
- q(6846) => [
+ q(6830) => [
q(Tz'utujil),
],
- q(6847) => [
+ q(6831) => [
q(Talossan),
],
- q(6848) => [
+ q(6832) => [
q(Central Atlas Tamazight),
],
- q(6849) => [
+ q(6833) => [
q(Tugun),
],
- q(6850) => [
+ q(6834) => [
q(Tzotzil),
],
- q(6851) => [
+ q(6835) => [
q(Tabriak),
],
- q(6852) => [
+ q(6836) => [
q(Uamue),
],
- q(6853) => [
+ q(6837) => [
q(Kuan),
],
- q(6854) => [
+ q(6838) => [
q(Tairuma),
],
- q(6855) => [
+ q(6839) => [
q(Ubang),
],
- q(6856) => [
+ q(6840) => [
q(Ubi),
],
- q(6857) => [
+ q(6841) => [
q(Buhi'non Bikol),
],
- q(6858) => [
+ q(6842) => [
q(Ubir),
],
- q(6859) => [
+ q(6843) => [
q(Umbu-Ungu),
],
- q(6860) => [
+ q(6844) => [
q(Ubykh),
],
- q(6861) => [
+ q(6845) => [
q(Uda),
],
- q(6862) => [
+ q(6846) => [
q(Udihe),
],
- q(6863) => [
+ q(6847) => [
q(Muduga),
],
- q(6864) => [
+ q(6848) => [
q(Udi),
],
- q(6865) => [
+ q(6849) => [
q(Ujir),
],
- q(6866) => [
+ q(6850) => [
q(Wuzlam),
],
- q(6867) => [
+ q(6851) => [
q(Uduk),
],
- q(6868) => [
+ q(6852) => [
q(Kioko),
],
- q(6869) => [
+ q(6853) => [
q(Ufim),
],
- q(6870) => [
+ q(6854) => [
q(Kuku-Ugbanh),
],
- q(6871) => [
+ q(6855) => [
q(Ughele),
],
- q(6872) => [
+ q(6856) => [
q(Ugandan Sign Language),
],
- q(6873) => [
+ q(6857) => [
q(Ugong),
],
- q(6874) => [
+ q(6858) => [
q(Uruguayan Sign Language),
],
- q(6875) => [
+ q(6859) => [
q(Uhami),
],
- q(6876) => [
+ q(6860) => [
q(Damal),
],
- q(6877) => [
+ q(6861) => [
q(Uisai),
],
- q(6878) => [
+ q(6862) => [
q(Iyive),
],
- q(6879) => [
+ q(6863) => [
q(Tanjijili),
],
- q(6880) => [
+ q(6864) => [
q(Kaburi),
],
- q(6881) => [
+ q(6865) => [
q(Ukuriguma),
],
- q(6882) => [
+ q(6866) => [
q(Ukhwejo),
],
- q(6883) => [
+ q(6867) => [
+ q(Muak Sa-aak),
+ ],
+ q(6868) => [
q(Ukrainian Sign Language),
],
- q(6884) => [
+ q(6869) => [
q(Ukpe-Bayobiri),
],
- q(6885) => [
+ q(6870) => [
q(Ukwa),
],
- q(6886) => [
+ q(6871) => [
q(Urubu-Kaapor Sign Language),
q(Kaapor Sign Language),
],
- q(6887) => [
+ q(6872) => [
q(Ukue),
],
- q(6888) => [
+ q(6873) => [
q(Ukwuani-Aboh-Ndoni),
],
- q(6889) => [
+ q(6874) => [
q(Kuuk-Yak),
],
- q(6890) => [
+ q(6875) => [
q(Fungwa),
],
- q(6891) => [
+ q(6876) => [
q(Ulukwumi),
],
- q(6892) => [
+ q(6877) => [
q(Ulch),
],
- q(6893) => [
+ q(6878) => [
q(Lule),
],
- q(6894) => [
+ q(6879) => [
q(Usku),
q(Afra),
],
- q(6895) => [
+ q(6880) => [
q(Ulithian),
],
- q(6896) => [
+ q(6881) => [
q(Meriam),
],
- q(6897) => [
+ q(6882) => [
q(Ullatan),
],
- q(6898) => [
+ q(6883) => [
q(Ulumanda'),
],
- q(6899) => [
+ q(6884) => [
q(Unserdeutsch),
],
- q(6900) => [
+ q(6885) => [
q(Uma' Lung),
],
- q(6901) => [
+ q(6886) => [
q(Ulwa),
],
- q(6902) => [
+ q(6887) => [
q(Umatilla),
],
- q(6903) => [
+ q(6888) => [
q(Marrucinian),
],
- q(6904) => [
+ q(6889) => [
q(Umbindhamu),
],
- q(6905) => [
+ q(6890) => [
q(Umbuygamu),
],
- q(6906) => [
+ q(6891) => [
q(Ukit),
],
- q(6907) => [
+ q(6892) => [
q(Umon),
],
- q(6908) => [
+ q(6893) => [
q(Makyan Naga),
],
- q(6909) => [
+ q(6894) => [
q(Umotina),
],
- q(6910) => [
+ q(6895) => [
q(Umpila),
],
- q(6911) => [
+ q(6896) => [
q(Umbugarla),
],
- q(6912) => [
+ q(6897) => [
q(Pendau),
],
- q(6913) => [
+ q(6898) => [
q(Munsee),
],
- q(6914) => [
+ q(6899) => [
q(North Watut),
],
- q(6915) => [
+ q(6900) => [
q(Uneme),
],
- q(6916) => [
+ q(6901) => [
q(Ngarinyin),
],
- q(6917) => [
+ q(6902) => [
q(Enawene-Nawe),
],
- q(6918) => [
+ q(6903) => [
q(Unami),
],
- q(6919) => [
+ q(6904) => [
q(Kurnai),
],
- q(6920) => [
+ q(6905) => [
q(Mundari),
],
- q(6921) => [
+ q(6906) => [
q(Unubahe),
],
- q(6922) => [
+ q(6907) => [
q(Munda),
],
- q(6923) => [
+ q(6908) => [
q(Unde Kaili),
],
- q(6924) => [
+ q(6909) => [
q(Umeda),
],
- q(6925) => [
+ q(6910) => [
q(Uripiv-Wala-Rano-Atchin),
],
- q(6926) => [
+ q(6911) => [
q(Urarina),
],
- q(6927) => [
+ q(6912) => [
q(Urubu-Kaapor),
q(Kaapor),
],
- q(6928) => [
+ q(6913) => [
q(Urningangg),
],
- q(6929) => [
+ q(6914) => [
q(Uru),
],
- q(6930) => [
+ q(6915) => [
q(Uradhi),
],
- q(6931) => [
+ q(6916) => [
q(Urigina),
],
- q(6932) => [
+ q(6917) => [
q(Urhobo),
],
- q(6933) => [
+ q(6918) => [
q(Urim),
],
- q(6934) => [
+ q(6919) => [
q(Urak Lawoi'),
],
- q(6935) => [
+ q(6920) => [
q(Urali),
],
- q(6936) => [
+ q(6921) => [
q(Urapmin),
],
- q(6937) => [
+ q(6922) => [
q(Uruangnirin),
],
- q(6938) => [
+ q(6923) => [
q(Ura (Papua New Guinea)),
],
- q(6939) => [
+ q(6924) => [
q(Uru-Pa-In),
],
- q(6940) => [
+ q(6925) => [
q(Lehalurup),
q(Loyop),
],
- q(6941) => [
+ q(6926) => [
q(Urat),
],
- q(6942) => [
+ q(6927) => [
q(Urumi),
],
- q(6943) => [
+ q(6928) => [
q(Uruava),
],
- q(6944) => [
+ q(6929) => [
q(Sop),
],
- q(6945) => [
+ q(6930) => [
q(Urimo),
],
- q(6946) => [
+ q(6931) => [
q(Orya),
],
- q(6947) => [
+ q(6932) => [
q(Uru-Eu-Wau-Wau),
],
- q(6948) => [
+ q(6933) => [
q(Usarufa),
],
- q(6949) => [
+ q(6934) => [
q(Ushojo),
],
- q(6950) => [
+ q(6935) => [
q(Usui),
],
- q(6951) => [
+ q(6936) => [
q(Usaghade),
],
- q(6952) => [
+ q(6937) => [
q(Uspanteco),
],
- q(6953) => [
+ q(6938) => [
q(Uya),
],
- q(6954) => [
+ q(6939) => [
q(Otank),
],
- q(6955) => [
+ q(6940) => [
q(Ute-Southern Paiute),
],
- q(6956) => [
+ q(6941) => [
q(Amba (Solomon Islands)),
],
- q(6957) => [
+ q(6942) => [
q(Etulo),
],
- q(6958) => [
+ q(6943) => [
q(Utu),
],
- q(6959) => [
+ q(6944) => [
q(Urum),
],
- q(6960) => [
+ q(6945) => [
q(Kulon-Pazeh),
],
- q(6961) => [
+ q(6946) => [
q(Ura (Vanuatu)),
],
- q(6962) => [
+ q(6947) => [
q(U),
],
- q(6963) => [
+ q(6948) => [
q(West Uvean),
q(Fagauvea),
],
- q(6964) => [
+ q(6949) => [
q(Uri),
],
- q(6965) => [
+ q(6950) => [
q(Lote),
],
- q(6966) => [
+ q(6951) => [
q(Kuku-Uwanh),
],
- q(6967) => [
+ q(6952) => [
q(Doko-Uyanga),
],
- q(6968) => [
+ q(6953) => [
q(Northern Uzbek),
],
- q(6969) => [
+ q(6954) => [
q(Southern Uzbek),
],
- q(6970) => [
+ q(6955) => [
q(Vaagri Booli),
],
- q(6971) => [
+ q(6956) => [
q(Vale),
],
- q(6972) => [
+ q(6957) => [
q(Vafsi),
],
- q(6973) => [
+ q(6958) => [
q(Vagla),
],
- q(6974) => [
+ q(6959) => [
q(Varhadi-Nagpuri),
],
- q(6975) => [
+ q(6960) => [
q(Sekele),
q(Northwestern Kung),
- q(Northwestern Kung),
q(Vasekele),
],
- q(6976) => [
+ q(6961) => [
q(Vehes),
],
- q(6977) => [
+ q(6962) => [
q(Vanimo),
],
- q(6978) => [
+ q(6963) => [
q(Valman),
],
- q(6979) => [
+ q(6964) => [
q(Vao),
],
- q(6980) => [
+ q(6965) => [
q(Vaiphei),
],
- q(6981) => [
+ q(6966) => [
q(Huarijio),
],
- q(6982) => [
+ q(6967) => [
q(Vasavi),
],
- q(6983) => [
+ q(6968) => [
q(Vanuma),
],
- q(6984) => [
+ q(6969) => [
q(Varli),
],
- q(6985) => [
+ q(6970) => [
q(Wayu),
],
- q(6986) => [
+ q(6971) => [
q(Southeast Babar),
],
- q(6987) => [
+ q(6972) => [
q(Southwestern Bontok),
],
- q(6988) => [
+ q(6973) => [
q(Venetian),
],
- q(6989) => [
+ q(6974) => [
q(Veddah),
],
- q(6990) => [
+ q(6975) => [
q(Veluws),
],
- q(6991) => [
+ q(6976) => [
q(Vemgo-Mabas),
],
- q(6992) => [
+ q(6977) => [
q(Ventureno),
],
- q(6993) => [
+ q(6978) => [
q(Veps),
],
- q(6994) => [
+ q(6979) => [
q(Mom Jango),
],
- q(6995) => [
+ q(6980) => [
q(Vaghri),
],
- q(6996) => [
+ q(6981) => [
q(Vlaamse Gebarentaal),
q(Flemish Sign Language),
],
- q(6997) => [
+ q(6982) => [
q(Virgin Islands Creole English),
],
- q(6998) => [
+ q(6983) => [
q(Vidunda),
],
- q(6999) => [
+ q(6984) => [
q(Vili),
],
- q(7000) => [
+ q(6985) => [
q(Viemo),
],
- q(7001) => [
+ q(6986) => [
q(Vilela),
],
- q(7002) => [
+ q(6987) => [
q(Vinza),
],
- q(7003) => [
+ q(6988) => [
q(Vishavan),
],
- q(7004) => [
+ q(6989) => [
q(Viti),
],
- q(7005) => [
+ q(6990) => [
q(Iduna),
],
- q(7006) => [
+ q(6991) => [
q(Kariyarra),
],
- q(7007) => [
+ q(6992) => [
q(Ija-Zuba),
],
- q(7008) => [
+ q(6993) => [
q(Kujarge),
],
- q(7009) => [
+ q(6994) => [
q(Kaur),
],
- q(7010) => [
+ q(6995) => [
q(Kulisusu),
],
- q(7011) => [
+ q(6996) => [
q(Kamakan),
],
- q(7012) => [
+ q(6997) => [
q(Kodeoha),
],
- q(7013) => [
+ q(6998) => [
q(Korlai Creole Portuguese),
],
- q(7014) => [
+ q(6999) => [
q(Tenggarong Kutai Malay),
],
- q(7015) => [
+ q(7000) => [
q(Kurrama),
],
- q(7016) => [
+ q(7001) => [
q(Valpei),
],
- q(7017) => [
+ q(7002) => [
q(Vlaams),
],
- q(7018) => [
+ q(7003) => [
q(Martuyhunira),
],
- q(7019) => [
+ q(7004) => [
q(Barbaram),
],
- q(7020) => [
+ q(7005) => [
q(Juxtlahuaca Mixtec),
],
- q(7021) => [
+ q(7006) => [
q(Mudu Koraga),
],
- q(7022) => [
+ q(7007) => [
q(East Masela),
],
- q(7023) => [
+ q(7008) => [
q(Mainfrankisch),
],
- q(7024) => [
+ q(7009) => [
q(Lungalunga),
],
- q(7025) => [
+ q(7010) => [
q(Maraghei),
],
- q(7026) => [
+ q(7011) => [
q(Miwa),
],
- q(7027) => [
+ q(7012) => [
q(Ixtayutla Mixtec),
],
- q(7028) => [
+ q(7013) => [
q(Makhuwa-Shirima),
],
- q(7029) => [
+ q(7014) => [
q(Malgana),
],
- q(7030) => [
+ q(7015) => [
q(Mitlatongo Mixtec),
],
- q(7031) => [
+ q(7016) => [
q(Soyaltepec Mazatec),
],
- q(7032) => [
+ q(7017) => [
q(Soyaltepec Mixtec),
],
- q(7033) => [
+ q(7018) => [
q(Marenje),
],
- q(7034) => [
+ q(7019) => [
q(Moksela),
],
- q(7035) => [
+ q(7020) => [
q(Muluridyi),
],
- q(7036) => [
+ q(7021) => [
q(Valley Maidu),
],
- q(7037) => [
+ q(7022) => [
q(Makhuwa),
],
- q(7038) => [
+ q(7023) => [
q(Tamazola Mixtec),
],
- q(7039) => [
+ q(7024) => [
q(Ayautla Mazatec),
],
- q(7040) => [
+ q(7025) => [
q(Mazatlan Mazatec),
],
- q(7041) => [
+ q(7026) => [
q(Vano),
q(Lovono),
],
- q(7042) => [
+ q(7027) => [
q(Vinmavis),
q(Neve'ei),
],
- q(7043) => [
+ q(7028) => [
q(Vunapu),
],
- q(7044) => [
+ q(7029) => [
q(Voro),
],
- q(7045) => [
+ q(7030) => [
q(Vera'a),
],
- q(7046) => [
+ q(7031) => [
q(Varisi),
],
- q(7047) => [
+ q(7032) => [
q(Burmbar),
q(Banam Bay),
],
- q(7048) => [
+ q(7033) => [
q(Moldova Sign Language),
],
- q(7049) => [
+ q(7034) => [
q(Venezuelan Sign Language),
],
- q(7050) => [
+ q(7035) => [
q(Valencian Sign Language),
q(Llengua de signes valenciana),
],
- q(7051) => [
+ q(7036) => [
q(Vitou),
],
- q(7052) => [
+ q(7037) => [
q(Vumbu),
],
- q(7053) => [
+ q(7038) => [
q(Vunjo),
],
- q(7054) => [
+ q(7039) => [
q(Vute),
],
- q(7055) => [
+ q(7040) => [
q(Awa (China)),
],
- q(7056) => [
+ q(7041) => [
q(Walla Walla),
],
- q(7057) => [
+ q(7042) => [
q(Wab),
],
- q(7058) => [
+ q(7043) => [
q(Wasco-Wishram),
],
- q(7059) => [
+ q(7044) => [
q(Wandamen),
],
- q(7060) => [
+ q(7045) => [
q(Walser),
],
- q(7061) => [
+ q(7046) => [
q(Wakona),
],
- q(7062) => [
+ q(7047) => [
q(Wa'ema),
],
- q(7063) => [
+ q(7048) => [
q(Watubela),
],
- q(7064) => [
+ q(7049) => [
q(Wares),
],
- q(7065) => [
+ q(7050) => [
q(Waffa),
],
- q(7066) => [
+ q(7051) => [
q(Wampanoag),
],
- q(7067) => [
+ q(7052) => [
q(Wan),
],
- q(7068) => [
+ q(7053) => [
q(Wappo),
],
- q(7069) => [
+ q(7054) => [
q(Wapishana),
],
- q(7070) => [
+ q(7055) => [
q(Wageman),
],
- q(7071) => [
+ q(7056) => [
q(Kaninuwa),
],
- q(7072) => [
+ q(7057) => [
q(Waura),
],
- q(7073) => [
+ q(7058) => [
q(Waka),
],
- q(7074) => [
+ q(7059) => [
q(Waiwai),
],
- q(7075) => [
+ q(7060) => [
q(Watam),
q(Marangis),
],
- q(7076) => [
+ q(7061) => [
q(Wayana),
],
- q(7077) => [
+ q(7062) => [
q(Wampur),
],
- q(7078) => [
+ q(7063) => [
q(Warao),
],
- q(7079) => [
+ q(7064) => [
q(Wabo),
],
- q(7080) => [
+ q(7065) => [
q(Waritai),
],
- q(7081) => [
+ q(7066) => [
q(Wanda),
],
- q(7082) => [
+ q(7067) => [
q(Vwanji),
],
- q(7083) => [
+ q(7068) => [
q(Alagwa),
],
- q(7084) => [
+ q(7069) => [
q(Waigali),
],
- q(7085) => [
+ q(7070) => [
q(Wakhi),
],
- q(7086) => [
+ q(7071) => [
q(Wa),
],
- q(7087) => [
+ q(7072) => [
q(Warlpiri),
],
- q(7088) => [
+ q(7073) => [
q(Waddar),
],
- q(7089) => [
+ q(7074) => [
q(Wagdi),
],
- q(7090) => [
+ q(7075) => [
+ q(West Bengal Sign Language),
+ ],
+ q(7076) => [
q(Wanman),
],
- q(7091) => [
+ q(7077) => [
q(Wajarri),
],
- q(7092) => [
+ q(7078) => [
q(Woi),
],
- q(7093) => [
+ q(7079) => [
q(Yanomami),
],
- q(7094) => [
+ q(7080) => [
q(Waci Gbe),
],
- q(7095) => [
+ q(7081) => [
q(Wandji),
],
- q(7096) => [
+ q(7082) => [
q(Wadaginam),
],
- q(7097) => [
+ q(7083) => [
q(Wadjiginy),
],
- q(7098) => [
+ q(7084) => [
q(Wadikali),
],
- q(7099) => [
+ q(7085) => [
q(Wadjigu),
],
- q(7100) => [
+ q(7086) => [
q(Wadjabangayi),
],
- q(7101) => [
+ q(7087) => [
q(Wewaw),
],
- q(7102) => [
+ q(7088) => [
q(We Western),
],
- q(7103) => [
+ q(7089) => [
q(Wedau),
],
- q(7104) => [
+ q(7090) => [
q(Wergaia),
],
- q(7105) => [
+ q(7091) => [
q(Weh),
],
- q(7106) => [
+ q(7092) => [
q(Kiunum),
],
- q(7107) => [
+ q(7093) => [
q(Weme Gbe),
],
- q(7108) => [
+ q(7094) => [
q(Wemale),
],
- q(7109) => [
+ q(7095) => [
q(Westphalien),
],
- q(7110) => [
+ q(7096) => [
q(Weri),
],
- q(7111) => [
+ q(7097) => [
q(Cameroon Pidgin),
],
- q(7112) => [
+ q(7098) => [
q(Perai),
],
- q(7113) => [
+ q(7099) => [
q(Rawngtu Chin),
],
- q(7114) => [
+ q(7100) => [
q(Wejewa),
],
- q(7115) => [
+ q(7101) => [
q(Yafi),
q(Zorop),
],
- q(7116) => [
+ q(7102) => [
q(Wagaya),
],
- q(7117) => [
+ q(7103) => [
q(Wagawaga),
],
- q(7118) => [
+ q(7104) => [
q(Wangganguru),
],
- q(7119) => [
+ q(7105) => [
q(Wahgi),
],
- q(7120) => [
+ q(7106) => [
q(Waigeo),
],
- q(7121) => [
+ q(7107) => [
q(Wirangu),
],
- q(7122) => [
+ q(7108) => [
q(Warrgamay),
],
- q(7123) => [
+ q(7109) => [
+ q(Sou Upaa),
q(Manusela),
],
- q(7124) => [
+ q(7110) => [
q(North Wahgi),
],
- q(7125) => [
+ q(7111) => [
q(Wahau Kenyah),
],
- q(7126) => [
+ q(7112) => [
q(Wahau Kayan),
],
- q(7127) => [
+ q(7113) => [
q(Southern Toussian),
],
- q(7128) => [
+ q(7114) => [
q(Wichita),
],
- q(7129) => [
+ q(7115) => [
q(Wik-Epa),
],
- q(7130) => [
+ q(7116) => [
q(Wik-Keyangan),
],
- q(7131) => [
+ q(7117) => [
q(Wik-Ngathana),
],
- q(7132) => [
+ q(7118) => [
q(Wik-Me'anha),
],
- q(7133) => [
+ q(7119) => [
q(Minidien),
],
- q(7134) => [
+ q(7120) => [
q(Wik-Iiyanh),
],
- q(7135) => [
+ q(7121) => [
q(Wikalkan),
],
- q(7136) => [
+ q(7122) => [
q(Wilawila),
],
- q(7137) => [
+ q(7123) => [
q(Wik-Mungkan),
],
- q(7138) => [
+ q(7124) => [
q(Ho-Chunk),
],
- q(7139) => [
+ q(7125) => [
q(Wirafed),
],
- q(7140) => [
+ q(7126) => [
q(Wiru),
],
- q(7141) => [
+ q(7127) => [
q(Vitu),
],
- q(7142) => [
+ q(7128) => [
q(Wiyot),
],
- q(7143) => [
+ q(7129) => [
q(Waja),
],
- q(7144) => [
+ q(7130) => [
q(Warji),
],
- q(7145) => [
+ q(7131) => [
q(Kw'adza),
],
- q(7146) => [
+ q(7132) => [
q(Kumbaran),
],
- q(7147) => [
+ q(7133) => [
q(Wakde),
q(Mo),
],
- q(7148) => [
+ q(7134) => [
q(Kalanadi),
],
- q(7149) => [
+ q(7135) => [
q(Kunduvadi),
],
- q(7150) => [
+ q(7136) => [
q(Wakawaka),
],
- q(7151) => [
+ q(7137) => [
q(Wangkayutyuru),
],
- q(7152) => [
+ q(7138) => [
q(Walio),
],
- q(7153) => [
+ q(7139) => [
q(Mwali Comorian),
],
- q(7154) => [
+ q(7140) => [
q(Wolane),
],
- q(7155) => [
+ q(7141) => [
q(Kunbarlang),
],
- q(7156) => [
+ q(7142) => [
q(Waioli),
],
- q(7157) => [
+ q(7143) => [
q(Wailaki),
],
- q(7158) => [
+ q(7144) => [
q(Wali (Sudan)),
],
- q(7159) => [
+ q(7145) => [
q(Middle Welsh),
],
- q(7160) => [
+ q(7146) => [
q(Wolio),
],
- q(7161) => [
+ q(7147) => [
q(Wailapa),
],
- q(7162) => [
+ q(7148) => [
q(Wallisian),
],
- q(7163) => [
+ q(7149) => [
q(Wuliwuli),
],
- q(7164) => [
+ q(7150) => [
q(Wichi Lhamtes Vejoz),
],
- q(7165) => [
+ q(7151) => [
q(Walak),
],
- q(7166) => [
+ q(7152) => [
q(Wali (Ghana)),
],
- q(7167) => [
+ q(7153) => [
q(Waling),
],
- q(7168) => [
+ q(7154) => [
q(Mawa (Nigeria)),
],
- q(7169) => [
+ q(7155) => [
q(Wambaya),
],
- q(7170) => [
+ q(7156) => [
q(Wamas),
],
- q(7171) => [
+ q(7157) => [
q(Mamainde),
],
- q(7172) => [
+ q(7158) => [
q(Wambule),
],
- q(7173) => [
+ q(7159) => [
q(Waima'a),
],
- q(7174) => [
+ q(7160) => [
q(Wamin),
],
- q(7175) => [
+ q(7161) => [
q(Maiwa (Indonesia)),
],
- q(7176) => [
+ q(7162) => [
q(Waamwang),
],
- q(7177) => [
+ q(7163) => [
q(Wom (Papua New Guinea)),
],
- q(7178) => [
+ q(7164) => [
q(Wambon),
],
- q(7179) => [
+ q(7165) => [
q(Walmajarri),
],
- q(7180) => [
+ q(7166) => [
q(Mwani),
],
- q(7181) => [
+ q(7167) => [
q(Womo),
],
- q(7182) => [
+ q(7168) => [
q(Wanambre),
],
- q(7183) => [
+ q(7169) => [
q(Wantoat),
],
- q(7184) => [
+ q(7170) => [
q(Wandarang),
],
- q(7185) => [
+ q(7171) => [
q(Waneci),
],
- q(7186) => [
+ q(7172) => [
q(Wanggom),
],
- q(7187) => [
+ q(7173) => [
q(Ndzwani Comorian),
],
- q(7188) => [
+ q(7174) => [
q(Wanukaka),
],
- q(7189) => [
+ q(7175) => [
q(Wanggamala),
],
- q(7190) => [
+ q(7176) => [
q(Wunumara),
],
- q(7191) => [
+ q(7177) => [
q(Wano),
],
- q(7192) => [
+ q(7178) => [
q(Wanap),
],
- q(7193) => [
+ q(7179) => [
q(Usan),
],
- q(7194) => [
+ q(7180) => [
q(Wintu),
],
- q(7195) => [
+ q(7181) => [
q(Wanyi),
],
- q(7196) => [
+ q(7182) => [
q(Tyaraity),
],
- q(7197) => [
+ q(7183) => [
q(We Northern),
],
- q(7198) => [
+ q(7184) => [
q(Wogeo),
],
- q(7199) => [
+ q(7185) => [
q(Wolani),
],
- q(7200) => [
+ q(7186) => [
q(Woleaian),
],
- q(7201) => [
+ q(7187) => [
q(Gambian Wolof),
],
- q(7202) => [
+ q(7188) => [
q(Wogamusin),
],
- q(7203) => [
+ q(7189) => [
q(Kamang),
],
- q(7204) => [
+ q(7190) => [
q(Longto),
],
- q(7205) => [
+ q(7191) => [
q(Wom (Nigeria)),
],
- q(7206) => [
+ q(7192) => [
q(Wongo),
],
- q(7207) => [
+ q(7193) => [
q(Manombai),
],
- q(7208) => [
+ q(7194) => [
q(Woria),
],
- q(7209) => [
+ q(7195) => [
q(Hanga Hundi),
],
- q(7210) => [
+ q(7196) => [
q(Wawonii),
],
- q(7211) => [
+ q(7197) => [
q(Weyto),
],
- q(7212) => [
+ q(7198) => [
q(Maco),
],
- q(7213) => [
+ q(7199) => [
q(Warapu),
],
- q(7214) => [
+ q(7200) => [
q(Warluwara),
],
- q(7215) => [
+ q(7201) => [
q(Warduji),
],
- q(7216) => [
+ q(7202) => [
q(Warungu),
],
- q(7217) => [
+ q(7203) => [
q(Wiradhuri),
],
- q(7218) => [
+ q(7204) => [
q(Wariyangga),
],
- q(7219) => [
+ q(7205) => [
q(Garrwa),
],
- q(7220) => [
+ q(7206) => [
q(Warlmanpa),
],
- q(7221) => [
+ q(7207) => [
q(Warumungu),
],
- q(7222) => [
+ q(7208) => [
q(Warnang),
],
- q(7223) => [
+ q(7209) => [
q(Worrorra),
],
- q(7224) => [
+ q(7210) => [
q(Waropen),
],
- q(7225) => [
+ q(7211) => [
q(Wardaman),
],
- q(7226) => [
+ q(7212) => [
q(Waris),
],
- q(7227) => [
+ q(7213) => [
q(Waru),
],
- q(7228) => [
+ q(7214) => [
q(Waruna),
],
- q(7229) => [
+ q(7215) => [
q(Gugu Warra),
],
- q(7230) => [
+ q(7216) => [
q(Wae Rana),
],
- q(7231) => [
+ q(7217) => [
q(Merwari),
],
- q(7232) => [
+ q(7218) => [
q(Waray (Australia)),
],
- q(7233) => [
+ q(7219) => [
q(Warembori),
],
- q(7234) => [
+ q(7220) => [
+ q(Adilabad Gondi),
+ ],
+ q(7221) => [
q(Wusi),
],
- q(7235) => [
+ q(7222) => [
q(Waskia),
],
- q(7236) => [
+ q(7223) => [
q(Owenia),
],
- q(7237) => [
+ q(7224) => [
q(Wasa),
],
- q(7238) => [
+ q(7225) => [
q(Wasu),
],
- q(7239) => [
+ q(7226) => [
q(Wotapuri-Katarqalai),
],
- q(7240) => [
+ q(7227) => [
q(Watiwa),
],
- q(7241) => [
+ q(7228) => [
q(Wathawurrung),
],
- q(7242) => [
+ q(7229) => [
q(Berta),
],
- q(7243) => [
+ q(7230) => [
q(Watakataui),
],
- q(7244) => [
+ q(7231) => [
q(Mewati),
],
- q(7245) => [
+ q(7232) => [
q(Wotu),
],
- q(7246) => [
+ q(7233) => [
q(Wikngenchera),
],
- q(7247) => [
+ q(7234) => [
q(Wunambal),
],
- q(7248) => [
+ q(7235) => [
q(Wudu),
],
- q(7249) => [
+ q(7236) => [
q(Wutunhua),
],
- q(7250) => [
+ q(7237) => [
q(Silimo),
],
- q(7251) => [
+ q(7238) => [
q(Wumbvu),
],
- q(7252) => [
+ q(7239) => [
q(Bungu),
],
- q(7253) => [
+ q(7240) => [
q(Wurrugu),
],
- q(7254) => [
+ q(7241) => [
q(Wutung),
],
- q(7255) => [
+ q(7242) => [
q(Wu Chinese),
],
- q(7256) => [
+ q(7243) => [
q(Wuvulu-Aua),
],
- q(7257) => [
+ q(7244) => [
q(Wulna),
],
- q(7258) => [
+ q(7245) => [
q(Wauyai),
],
- q(7259) => [
+ q(7246) => [
q(Waama),
],
- q(7260) => [
+ q(7247) => [
q(Wakabunga),
],
- q(7261) => [
+ q(7248) => [
q(Wetamut),
q(Dorig),
],
- q(7262) => [
+ q(7249) => [
q(Warrwa),
],
- q(7263) => [
+ q(7250) => [
q(Wawa),
],
- q(7264) => [
+ q(7251) => [
q(Waxianghua),
],
- q(7265) => [
+ q(7252) => [
q(Wardandi),
],
- q(7266) => [
+ q(7253) => [
q(Wyandot),
],
- q(7267) => [
+ q(7254) => [
q(Wangaaybuwan-Ngiyambaa),
],
- q(7268) => [
+ q(7255) => [
q(Woiwurrung),
],
- q(7269) => [
+ q(7256) => [
q(Wymysorys),
],
- q(7270) => [
+ q(7257) => [
q(Wayoro),
],
- q(7271) => [
+ q(7258) => [
q(Western Fijian),
],
- q(7272) => [
+ q(7259) => [
q(Andalusian Arabic),
],
- q(7273) => [
+ q(7260) => [
q(Sambe),
],
- q(7274) => [
+ q(7261) => [
q(Kachari),
],
- q(7275) => [
+ q(7262) => [
q(Adai),
],
- q(7276) => [
+ q(7263) => [
q(Aequian),
],
- q(7277) => [
+ q(7264) => [
q(Aghwan),
],
- q(7278) => [
+ q(7265) => [
q(Kaimbe),
],
- q(7279) => [
+ q(7266) => [
q(Ararandewara),
],
- q(7280) => [
+ q(7267) => [
+ q(Maku),
+ ],
+ q(7268) => [
q(/Xam),
q(Xam),
],
- q(7281) => [
+ q(7269) => [
q(Xamtanga),
],
- q(7282) => [
+ q(7270) => [
q(Khao),
],
- q(7283) => [
+ q(7271) => [
q(Apalachee),
],
- q(7284) => [
+ q(7272) => [
q(Aquitanian),
],
- q(7285) => [
+ q(7273) => [
q(Karami),
],
- q(7286) => [
+ q(7274) => [
q(Kamas),
],
- q(7287) => [
+ q(7275) => [
q(Katawixi),
],
- q(7288) => [
+ q(7276) => [
q(Kauwera),
],
- q(7289) => [
+ q(7277) => [
q(Xavante),
],
- q(7290) => [
+ q(7278) => [
q(Kawaiisu),
],
- q(7291) => [
+ q(7279) => [
q(Kayan Mahakam),
],
- q(7292) => [
- q(Kamba (Brazil)),
- ],
- q(7293) => [
+ q(7280) => [
q(Lower Burdekin),
],
- q(7294) => [
+ q(7281) => [
q(Bactrian),
],
- q(7295) => [
+ q(7282) => [
q(Bindal),
],
- q(7296) => [
+ q(7283) => [
q(Bigambal),
],
- q(7297) => [
+ q(7284) => [
q(Bunganditj),
],
- q(7298) => [
+ q(7285) => [
q(Kombio),
],
- q(7299) => [
+ q(7286) => [
q(Birrpayi),
],
- q(7300) => [
+ q(7287) => [
q(Middle Breton),
],
- q(7301) => [
+ q(7288) => [
q(Kenaboi),
],
- q(7302) => [
+ q(7289) => [
q(Bolgarian),
],
- q(7303) => [
+ q(7290) => [
q(Bibbulman),
],
- q(7304) => [
+ q(7291) => [
q(Kambera),
],
- q(7305) => [
+ q(7292) => [
q(Kambiwa),
],
- q(7306) => [
- q(Kabixi),
- ],
- q(7307) => [
+ q(7293) => [
q(Batyala),
],
- q(7308) => [
+ q(7294) => [
q(Cumbric),
],
- q(7309) => [
+ q(7295) => [
q(Camunic),
],
- q(7310) => [
+ q(7296) => [
q(Celtiberian),
],
- q(7311) => [
+ q(7297) => [
q(Cisalpine Gaulish),
],
- q(7312) => [
+ q(7298) => [
q(Chemakum),
q(Chimakum),
],
- q(7313) => [
+ q(7299) => [
q(Classical Armenian),
],
- q(7314) => [
+ q(7300) => [
q(Comecrudo),
],
- q(7315) => [
+ q(7301) => [
q(Cotoname),
],
- q(7316) => [
+ q(7302) => [
q(Chorasmian),
],
- q(7317) => [
+ q(7303) => [
q(Carian),
],
- q(7318) => [
+ q(7304) => [
q(Classical Tibetan),
],
- q(7319) => [
+ q(7305) => [
q(Curonian),
],
- q(7320) => [
+ q(7306) => [
q(Chuvantsy),
],
- q(7321) => [
+ q(7307) => [
q(Coahuilteco),
],
- q(7322) => [
+ q(7308) => [
q(Cayuse),
],
- q(7323) => [
+ q(7309) => [
q(Darkinyung),
],
- q(7324) => [
+ q(7310) => [
q(Dacian),
],
- q(7325) => [
+ q(7311) => [
q(Dharuk),
],
- q(7326) => [
+ q(7312) => [
q(Edomite),
],
- q(7327) => [
+ q(7313) => [
+ q(Kwandu),
+ ],
+ q(7314) => [
q(Malayic Dayak),
],
- q(7328) => [
+ q(7315) => [
q(Eblan),
],
- q(7329) => [
+ q(7316) => [
q(Hdi),
],
- q(7330) => [
+ q(7317) => [
q(//Xegwi),
q(Xegwi),
],
- q(7331) => [
+ q(7318) => [
q(Kelo),
],
- q(7332) => [
+ q(7319) => [
q(Kembayan),
],
- q(7333) => [
+ q(7320) => [
q(Epi-Olmec),
],
- q(7334) => [
+ q(7321) => [
q(Xerente),
],
- q(7335) => [
+ q(7322) => [
q(Kesawai),
],
- q(7336) => [
+ q(7323) => [
q(Xeta),
],
- q(7337) => [
+ q(7324) => [
q(Keoru-Ahia),
],
- q(7338) => [
+ q(7325) => [
q(Faliscan),
],
- q(7339) => [
+ q(7326) => [
q(Galatian),
],
- q(7340) => [
+ q(7327) => [
q(Gbin),
],
- q(7341) => [
+ q(7328) => [
q(Gudang),
],
- q(7342) => [
+ q(7329) => [
q(Gabrielino-Fernandeno),
],
- q(7343) => [
+ q(7330) => [
q(Goreng),
],
- q(7344) => [
+ q(7331) => [
q(Garingbal),
],
- q(7345) => [
+ q(7332) => [
q(Galindan),
],
- q(7346) => [
+ q(7333) => [
q(Dharumbal),
q(Guwinmal),
],
- q(7347) => [
+ q(7334) => [
q(Garza),
],
- q(7348) => [
+ q(7335) => [
q(Unggumi),
],
- q(7349) => [
+ q(7336) => [
q(Guwa),
],
- q(7350) => [
+ q(7337) => [
q(Harami),
],
- q(7351) => [
+ q(7338) => [
q(Hunnic),
],
- q(7352) => [
+ q(7339) => [
q(Hadrami),
],
- q(7353) => [
+ q(7340) => [
q(Khetrani),
],
- q(7354) => [
+ q(7341) => [
q(Hernican),
],
- q(7355) => [
+ q(7342) => [
q(Hattic),
],
- q(7356) => [
+ q(7343) => [
q(Hurrian),
],
- q(7357) => [
+ q(7344) => [
q(Khua),
],
- q(7358) => [
+ q(7345) => [
q(Iberian),
],
- q(7359) => [
+ q(7346) => [
q(Xiri),
],
- q(7360) => [
+ q(7347) => [
q(Illyrian),
],
- q(7361) => [
+ q(7348) => [
q(Xinca),
],
- q(7362) => [
- q(Xipinawa),
- ],
- q(7363) => [
+ q(7349) => [
q(Xiriana),
],
- q(7364) => [
+ q(7350) => [
q(Kisan),
],
- q(7365) => [
+ q(7351) => [
q(Indus Valley Language),
],
- q(7366) => [
+ q(7352) => [
q(Xipaya),
],
- q(7367) => [
+ q(7353) => [
q(Minjungbal),
],
- q(7368) => [
+ q(7354) => [
q(Jaitmatang),
],
- q(7369) => [
+ q(7355) => [
q(Kalkoti),
],
- q(7370) => [
+ q(7356) => [
q(Northern Nago),
],
- q(7371) => [
+ q(7357) => [
q(Kho'ini),
],
- q(7372) => [
+ q(7358) => [
q(Mendalam Kayan),
],
- q(7373) => [
+ q(7359) => [
q(Kereho),
],
- q(7374) => [
+ q(7360) => [
q(Khengkha),
],
- q(7375) => [
+ q(7361) => [
q(Kagoro),
],
- q(7376) => [
- q(Karahawyana),
- ],
- q(7377) => [
+ q(7362) => [
q(Kenyan Sign Language),
],
- q(7378) => [
+ q(7363) => [
q(Kajali),
],
- q(7379) => [
+ q(7364) => [
q(Kaco'),
],
- q(7380) => [
+ q(7365) => [
q(Mainstream Kenyah),
],
- q(7381) => [
+ q(7366) => [
q(Kayan River Kayan),
],
- q(7382) => [
+ q(7367) => [
q(Kiorr),
],
- q(7383) => [
+ q(7368) => [
q(Kabatei),
],
- q(7384) => [
+ q(7369) => [
q(Koroni),
],
- q(7385) => [
+ q(7370) => [
q(Xakriaba),
],
- q(7386) => [
+ q(7371) => [
q(Kumbewaha),
],
- q(7387) => [
+ q(7372) => [
q(Kantosi),
],
- q(7388) => [
+ q(7373) => [
q(Kaamba),
],
- q(7389) => [
+ q(7374) => [
q(Kgalagadi),
],
- q(7390) => [
+ q(7375) => [
q(Kembra),
],
- q(7391) => [
+ q(7376) => [
q(Karore),
],
- q(7392) => [
+ q(7377) => [
q(Uma' Lasan),
],
- q(7393) => [
+ q(7378) => [
q(Kurtokha),
],
- q(7394) => [
+ q(7379) => [
q(Kamula),
],
- q(7395) => [
+ q(7380) => [
q(Loup B),
],
- q(7396) => [
+ q(7381) => [
q(Lycian),
],
- q(7397) => [
+ q(7382) => [
q(Lydian),
],
- q(7398) => [
+ q(7383) => [
q(Lemnian),
],
- q(7399) => [
+ q(7384) => [
q(Ligurian (Ancient)),
],
- q(7400) => [
+ q(7385) => [
q(Liburnian),
],
- q(7401) => [
+ q(7386) => [
q(Alanic),
],
- q(7402) => [
+ q(7387) => [
q(Loup A),
],
- q(7403) => [
+ q(7388) => [
q(Lepontic),
],
- q(7404) => [
+ q(7389) => [
q(Lusitanian),
],
- q(7405) => [
+ q(7390) => [
q(Cuneiform Luwian),
],
- q(7406) => [
+ q(7391) => [
q(Elymian),
],
- q(7407) => [
+ q(7392) => [
q(Mushungulu),
],
- q(7408) => [
+ q(7393) => [
q(Mbonga),
],
- q(7409) => [
+ q(7394) => [
q(Makhuwa-Marrevone),
],
- q(7410) => [
+ q(7395) => [
q(Mbudum),
],
- q(7411) => [
+ q(7396) => [
q(Median),
],
- q(7412) => [
+ q(7397) => [
q(Mingrelian),
],
- q(7413) => [
+ q(7398) => [
q(Mengaka),
],
- q(7414) => [
+ q(7399) => [
q(Kuku-Muminh),
],
- q(7415) => [
+ q(7400) => [
q(Majera),
],
- q(7416) => [
+ q(7401) => [
q(Ancient Macedonian),
],
- q(7417) => [
+ q(7402) => [
q(Malaysian Sign Language),
],
- q(7418) => [
+ q(7403) => [
q(Manado Malay),
],
- q(7419) => [
+ q(7404) => [
q(Manichaean Middle Persian),
],
- q(7420) => [
+ q(7405) => [
q(Morerebi),
],
- q(7421) => [
+ q(7406) => [
q(Kuku-Mu'inh),
],
- q(7422) => [
+ q(7407) => [
q(Kuku-Mangk),
],
- q(7423) => [
+ q(7408) => [
q(Meroitic),
],
- q(7424) => [
+ q(7409) => [
q(Moroccan Sign Language),
],
- q(7425) => [
+ q(7410) => [
q(Matbat),
],
- q(7426) => [
+ q(7411) => [
q(Kamu),
],
- q(7427) => [
+ q(7412) => [
q(Antankarana Malagasy),
q(Tankarana Malagasy),
],
- q(7428) => [
+ q(7413) => [
q(Tsimihety Malagasy),
],
- q(7429) => [
+ q(7414) => [
q(Maden),
],
- q(7430) => [
+ q(7415) => [
q(Mayaguduna),
],
- q(7431) => [
+ q(7416) => [
q(Mori Bawah),
],
- q(7432) => [
+ q(7417) => [
q(Ancient North Arabian),
],
- q(7433) => [
+ q(7418) => [
q(Kanakanabu),
],
- q(7434) => [
+ q(7419) => [
q(Middle Mongolian),
],
- q(7435) => [
+ q(7420) => [
q(Kuanhua),
],
- q(7436) => [
+ q(7421) => [
q(Ngarigu),
],
- q(7437) => [
+ q(7422) => [
q(Nganakarti),
],
- q(7438) => [
+ q(7423) => [
q(Northern Kankanay),
],
- q(7439) => [
+ q(7424) => [
q(Anglo-Norman),
],
- q(7440) => [
+ q(7425) => [
q(Kangri),
],
- q(7441) => [
+ q(7426) => [
q(Kanashi),
],
- q(7442) => [
+ q(7427) => [
q(Narragansett),
],
- q(7443) => [
+ q(7428) => [
q(Nukunul),
],
- q(7444) => [
+ q(7429) => [
q(Nyiyaparli),
],
- q(7445) => [
+ q(7430) => [
q(Kenzi),
q(Mattoki),
],
- q(7446) => [
+ q(7431) => [
q(O'chi'chi'),
],
- q(7447) => [
+ q(7432) => [
q(Kokoda),
],
- q(7448) => [
+ q(7433) => [
q(Soga),
],
- q(7449) => [
+ q(7434) => [
q(Kominimung),
],
- q(7450) => [
+ q(7435) => [
q(Xokleng),
],
- q(7451) => [
+ q(7436) => [
q(Komo (Sudan)),
],
- q(7452) => [
+ q(7437) => [
q(Konkomba),
],
- q(7453) => [
+ q(7438) => [
q(Xukuru),
],
- q(7454) => [
+ q(7439) => [
q(Kopar),
],
- q(7455) => [
+ q(7440) => [
q(Korubo),
],
- q(7456) => [
+ q(7441) => [
q(Kowaki),
],
- q(7457) => [
+ q(7442) => [
q(Pirriya),
],
- q(7458) => [
+ q(7443) => [
q(Pecheneg),
],
- q(7459) => [
+ q(7444) => [
q(Liberia Kpelle),
],
- q(7460) => [
+ q(7445) => [
q(Phrygian),
],
- q(7461) => [
+ q(7446) => [
q(Pictish),
],
- q(7462) => [
+ q(7447) => [
q(Mpalitjanh),
],
- q(7463) => [
+ q(7448) => [
q(Kulina Pano),
],
- q(7464) => [
+ q(7449) => [
q(Pumpokol),
],
- q(7465) => [
+ q(7450) => [
q(Kapinawa),
],
- q(7466) => [
+ q(7451) => [
q(Pochutec),
],
- q(7467) => [
+ q(7452) => [
q(Puyo-Paekche),
],
- q(7468) => [
+ q(7453) => [
q(Mohegan-Pequot),
],
- q(7469) => [
+ q(7454) => [
q(Parthian),
],
- q(7470) => [
+ q(7455) => [
q(Pisidian),
],
- q(7471) => [
+ q(7456) => [
q(Punthamara),
],
- q(7472) => [
+ q(7457) => [
q(Punic),
],
- q(7473) => [
+ q(7458) => [
q(Puyo),
],
- q(7474) => [
+ q(7459) => [
q(Karakhanid),
],
- q(7475) => [
+ q(7460) => [
q(Qatabanian),
],
- q(7476) => [
+ q(7461) => [
q(Kraho),
],
- q(7477) => [
+ q(7462) => [
q(Eastern Karaboro),
],
- q(7478) => [
+ q(7463) => [
q(Gundungurra),
],
- q(7479) => [
+ q(7464) => [
q(Kreye),
],
- q(7480) => [
+ q(7465) => [
q(Minang),
],
- q(7481) => [
+ q(7466) => [
q(Krikati-Timbira),
],
- q(7482) => [
+ q(7467) => [
q(Armazic),
],
- q(7483) => [
+ q(7468) => [
q(Arin),
],
- q(7484) => [
+ q(7469) => [
q(Karranga),
],
- q(7485) => [
+ q(7470) => [
q(Raetic),
],
- q(7486) => [
+ q(7471) => [
q(Aranama-Tamique),
],
- q(7487) => [
+ q(7472) => [
q(Marriammu),
],
- q(7488) => [
+ q(7473) => [
q(Karawa),
],
- q(7489) => [
+ q(7474) => [
q(Sabaean),
],
- q(7490) => [
+ q(7475) => [
q(Sambal),
],
- q(7491) => [
+ q(7476) => [
q(Scythian),
],
- q(7492) => [
+ q(7477) => [
q(Sidetic),
],
- q(7493) => [
+ q(7478) => [
q(Sempan),
],
- q(7494) => [
+ q(7479) => [
q(Shamang),
],
- q(7495) => [
+ q(7480) => [
q(Sio),
],
- q(7496) => [
+ q(7481) => [
q(South Slavey),
],
- q(7497) => [
+ q(7482) => [
q(Kasem),
],
- q(7498) => [
+ q(7483) => [
q(Sanga (Nigeria)),
],
- q(7499) => [
+ q(7484) => [
q(Solano),
],
- q(7500) => [
+ q(7485) => [
q(Silopi),
],
- q(7501) => [
+ q(7486) => [
q(Makhuwa-Saka),
],
- q(7502) => [
+ q(7487) => [
q(Sherpa),
],
- q(7503) => [
+ q(7488) => [
q(Assan),
],
- q(7504) => [
+ q(7489) => [
q(Sanuma),
],
- q(7505) => [
+ q(7490) => [
q(Sudovian),
],
- q(7506) => [
+ q(7491) => [
q(Saisiyat),
],
- q(7507) => [
+ q(7492) => [
q(Alcozauca Mixtec),
],
- q(7508) => [
+ q(7493) => [
q(Chazumba Mixtec),
],
- q(7509) => [
+ q(7494) => [
q(Katcha-Kadugli-Miri),
],
- q(7510) => [
+ q(7495) => [
q(Diuxi-Tilantongo Mixtec),
],
- q(7511) => [
+ q(7496) => [
q(Ketengban),
],
- q(7512) => [
+ q(7497) => [
q(Transalpine Gaulish),
],
- q(7513) => [
+ q(7498) => [
q(Yitha Yitha),
],
- q(7514) => [
+ q(7499) => [
q(Sinicahua Mixtec),
],
- q(7515) => [
+ q(7500) => [
q(San Juan Teita Mixtec),
],
- q(7516) => [
+ q(7501) => [
q(Tijaltepec Mixtec),
],
- q(7517) => [
+ q(7502) => [
q(Magdalena Penasco Mixtec),
],
- q(7518) => [
+ q(7503) => [
q(Northern Tlaxiaco Mixtec),
],
- q(7519) => [
+ q(7504) => [
q(Tokharian A),
],
- q(7520) => [
+ q(7505) => [
q(San Miguel Piedras Mixtec),
],
- q(7521) => [
+ q(7506) => [
q(Tumshuqese),
],
- q(7522) => [
+ q(7507) => [
q(Early Tripuri),
],
- q(7523) => [
+ q(7508) => [
q(Sindihui Mixtec),
],
- q(7524) => [
+ q(7509) => [
q(Tacahua Mixtec),
],
- q(7525) => [
+ q(7510) => [
q(Cuyamecalco Mixtec),
],
- q(7526) => [
+ q(7511) => [
q(Thawa),
],
- q(7527) => [
+ q(7512) => [
q(Tawande),
],
- q(7528) => [
+ q(7513) => [
q(Yoloxochitl Mixtec),
],
- q(7529) => [
+ q(7514) => [
q(Tasmanian),
],
- q(7530) => [
+ q(7515) => [
q(Alu Kurumba),
],
- q(7531) => [
+ q(7516) => [
q(Betta Kurumba),
],
- q(7532) => [
+ q(7517) => [
q(Umiida),
],
- q(7533) => [
+ q(7518) => [
q(Kunigami),
],
- q(7534) => [
+ q(7519) => [
q(Jennu Kurumba),
],
- q(7535) => [
+ q(7520) => [
q(Ngunawal),
],
- q(7536) => [
+ q(7521) => [
q(Umbrian),
],
- q(7537) => [
+ q(7522) => [
q(Unggaranggu),
],
- q(7538) => [
+ q(7523) => [
q(Kuo),
],
- q(7539) => [
+ q(7524) => [
q(Upper Umpqua),
],
- q(7540) => [
+ q(7525) => [
q(Urartian),
],
- q(7541) => [
+ q(7526) => [
q(Kuthant),
],
- q(7542) => [
+ q(7527) => [
q(Kxoe),
+ q(Khwedam),
],
- q(7543) => [
+ q(7528) => [
q(Venetic),
],
- q(7544) => [
+ q(7529) => [
q(Kamviri),
],
- q(7545) => [
+ q(7530) => [
q(Vandalic),
],
- q(7546) => [
+ q(7531) => [
q(Volscian),
],
- q(7547) => [
+ q(7532) => [
q(Vestinian),
],
- q(7548) => [
+ q(7533) => [
q(Kwaza),
],
- q(7549) => [
+ q(7534) => [
q(Woccon),
],
- q(7550) => [
+ q(7535) => [
q(Wadi Wadi),
],
- q(7551) => [
+ q(7536) => [
q(Xwela Gbe),
],
- q(7552) => [
+ q(7537) => [
q(Kwegu),
],
- q(7553) => [
+ q(7538) => [
q(Wajuk),
],
- q(7554) => [
+ q(7539) => [
q(Wangkumara),
],
- q(7555) => [
+ q(7540) => [
q(Western Xwla Gbe),
],
- q(7556) => [
+ q(7541) => [
q(Written Oirat),
],
- q(7557) => [
+ q(7542) => [
q(Kwerba Mamberamo),
],
- q(7558) => [
+ q(7543) => [
q(Wotjobaluk),
],
- q(7559) => [
+ q(7544) => [
q(Wemba Wemba),
],
- q(7560) => [
+ q(7545) => [
q(Boro (Ghana)),
],
- q(7561) => [
+ q(7546) => [
q(Ke'o),
],
- q(7562) => [
+ q(7547) => [
q(Minkin),
],
- q(7563) => [
+ q(7548) => [
q(Koropo),
],
- q(7564) => [
+ q(7549) => [
q(Tambora),
],
- q(7565) => [
+ q(7550) => [
q(Yaygir),
],
- q(7566) => [
+ q(7551) => [
q(Yandjibara),
],
- q(7567) => [
+ q(7552) => [
q(Mayi-Yapi),
],
- q(7568) => [
+ q(7553) => [
q(Mayi-Kulan),
],
- q(7569) => [
+ q(7554) => [
q(Yalakalore),
],
- q(7570) => [
+ q(7555) => [
q(Mayi-Thakurti),
],
- q(7571) => [
+ q(7556) => [
q(Yorta Yorta),
],
- q(7572) => [
+ q(7557) => [
q(Zhang-Zhung),
],
- q(7573) => [
+ q(7558) => [
q(Zemgalian),
],
- q(7574) => [
+ q(7559) => [
q(Ancient Zapotec),
],
- q(7575) => [
+ q(7560) => [
q(Yaminahua),
],
- q(7576) => [
+ q(7561) => [
q(Yuhup),
],
- q(7577) => [
+ q(7562) => [
q(Pass Valley Yali),
],
- q(7578) => [
+ q(7563) => [
q(Yagua),
],
- q(7579) => [
+ q(7564) => [
q(Pume),
],
- q(7580) => [
+ q(7565) => [
q(Yaka (Democratic Republic of Congo)),
],
- q(7581) => [
+ q(7566) => [
q(Yamana),
],
- q(7582) => [
+ q(7567) => [
q(Yazgulyam),
],
- q(7583) => [
+ q(7568) => [
q(Yagnobi),
],
- q(7584) => [
+ q(7569) => [
q(Banda-Yangere),
],
- q(7585) => [
+ q(7570) => [
q(Yakama),
],
- q(7586) => [
+ q(7571) => [
q(Yalunka),
],
- q(7587) => [
+ q(7572) => [
q(Yamba),
],
- q(7588) => [
+ q(7573) => [
q(Mayangna),
],
- q(7589) => [
+ q(7574) => [
q(Yaqui),
],
- q(7590) => [
+ q(7575) => [
q(Yabarana),
],
- q(7591) => [
+ q(7576) => [
q(Nugunu (Cameroon)),
],
- q(7592) => [
+ q(7577) => [
q(Yambeta),
],
- q(7593) => [
+ q(7578) => [
q(Yuwana),
],
- q(7594) => [
+ q(7579) => [
q(Yangben),
],
- q(7595) => [
+ q(7580) => [
q(Yawalapiti),
],
- q(7596) => [
+ q(7581) => [
q(Yauma),
],
- q(7597) => [
+ q(7582) => [
q(Agwagwune),
],
- q(7598) => [
+ q(7583) => [
q(Lokaa),
],
- q(7599) => [
+ q(7584) => [
q(Yala),
],
- q(7600) => [
+ q(7585) => [
q(Yemba),
],
- q(7601) => [
+ q(7586) => [
q(West Yugur),
],
- q(7602) => [
+ q(7587) => [
q(Yakha),
],
- q(7603) => [
+ q(7588) => [
q(Yamphu),
],
- q(7604) => [
+ q(7589) => [
q(Hasha),
],
- q(7605) => [
+ q(7590) => [
q(Bokha),
],
- q(7606) => [
+ q(7591) => [
q(Yukuben),
],
- q(7607) => [
+ q(7592) => [
q(Yaben),
],
- q(7608) => [
+ q(7593) => [
q(Yabaana),
],
- q(7609) => [
+ q(7594) => [
q(Yabong),
],
- q(7610) => [
+ q(7595) => [
q(Yawiyo),
],
- q(7611) => [
+ q(7596) => [
q(Yaweyuha),
],
- q(7612) => [
+ q(7597) => [
q(Chesu),
],
- q(7613) => [
+ q(7598) => [
q(Lolopo),
],
- q(7614) => [
+ q(7599) => [
q(Yucuna),
],
- q(7615) => [
+ q(7600) => [
q(Chepya),
],
- q(7616) => [
+ q(7601) => [
q(Yanda),
],
- q(7617) => [
+ q(7602) => [
q(Eastern Yiddish),
],
- q(7618) => [
+ q(7603) => [
q(Yangum Dey),
],
- q(7619) => [
+ q(7604) => [
q(Yidgha),
],
- q(7620) => [
+ q(7605) => [
q(Yoidik),
],
- q(7621) => [
+ q(7606) => [
q(Ravula),
],
- q(7622) => [
+ q(7607) => [
q(Yeniche),
],
- q(7623) => [
+ q(7608) => [
q(Yimas),
],
- q(7624) => [
+ q(7609) => [
q(Yeni),
],
- q(7625) => [
+ q(7610) => [
q(Yevanic),
],
- q(7626) => [
+ q(7611) => [
q(Yela),
],
- q(7627) => [
+ q(7612) => [
q(Tarok),
],
- q(7628) => [
+ q(7613) => [
q(Nyankpa),
],
- q(7629) => [
+ q(7614) => [
q(Yetfa),
],
- q(7630) => [
+ q(7615) => [
q(Yerukula),
],
- q(7631) => [
+ q(7616) => [
q(Yapunda),
],
- q(7632) => [
+ q(7617) => [
q(Yeyi),
],
- q(7633) => [
+ q(7618) => [
q(Malyangapa),
],
- q(7634) => [
+ q(7619) => [
q(Yiningayi),
],
- q(7635) => [
+ q(7620) => [
q(Yangum Gel),
],
- q(7636) => [
+ q(7621) => [
q(Yagomi),
],
- q(7637) => [
+ q(7622) => [
q(Gepo),
],
- q(7638) => [
+ q(7623) => [
q(Yagaria),
],
- q(7639) => [
+ q(7624) => [
q(Yolnu Sign Language),
],
- q(7640) => [
+ q(7625) => [
q(Yugul),
],
- q(7641) => [
+ q(7626) => [
q(Yagwoia),
],
- q(7642) => [
+ q(7627) => [
q(Baha Buyang),
],
- q(7643) => [
+ q(7628) => [
q(Judeo-Iraqi Arabic),
],
- q(7644) => [
+ q(7629) => [
q(Hlepho Phowa),
],
- q(7645) => [
+ q(7630) => [
q(Yan-nhanu Sign Language),
],
- q(7646) => [
+ q(7631) => [
q(Yinggarda),
],
- q(7647) => [
+ q(7632) => [
q(Wusa Nasu),
],
- q(7648) => [
+ q(7633) => [
q(Western Yiddish),
],
- q(7649) => [
+ q(7634) => [
q(Yidiny),
],
- q(7650) => [
+ q(7635) => [
q(Yindjibarndi),
],
- q(7651) => [
+ q(7636) => [
q(Dongshanba Lalo),
],
- q(7652) => [
+ q(7637) => [
q(Yindjilandji),
],
- q(7653) => [
+ q(7638) => [
q(Yimchungru Naga),
],
- q(7654) => [
+ q(7639) => [
q(Yinchia),
],
- q(7655) => [
+ q(7640) => [
q(Pholo),
],
- q(7656) => [
+ q(7641) => [
q(Miqie),
],
- q(7657) => [
+ q(7642) => [
q(North Awyu),
],
- q(7658) => [
+ q(7643) => [
q(Yis),
],
- q(7659) => [
+ q(7644) => [
q(Eastern Lalu),
],
- q(7660) => [
+ q(7645) => [
q(Awu),
],
- q(7661) => [
+ q(7646) => [
q(Northern Nisu),
],
- q(7662) => [
+ q(7647) => [
q(Axi Yi),
],
- q(7663) => [
+ q(7648) => [
q(Azhe),
],
- q(7664) => [
+ q(7649) => [
q(Yakan),
],
- q(7665) => [
+ q(7650) => [
q(Northern Yukaghir),
],
- q(7666) => [
+ q(7651) => [
q(Yoke),
],
- q(7667) => [
+ q(7652) => [
q(Yakaikeke),
],
- q(7668) => [
+ q(7653) => [
q(Khlula),
],
- q(7669) => [
+ q(7654) => [
q(Kap),
],
- q(7670) => [
+ q(7655) => [
q(Kua-nsi),
],
- q(7671) => [
+ q(7656) => [
q(Yasa),
],
- q(7672) => [
+ q(7657) => [
q(Yekora),
],
- q(7673) => [
+ q(7658) => [
q(Kathu),
],
- q(7674) => [
+ q(7659) => [
q(Kuamasi),
],
- q(7675) => [
+ q(7660) => [
q(Yakoma),
],
- q(7676) => [
+ q(7661) => [
q(Yaul),
],
- q(7677) => [
+ q(7662) => [
q(Yaleba),
],
- q(7678) => [
+ q(7663) => [
q(Yele),
],
- q(7679) => [
+ q(7664) => [
q(Yelogu),
],
- q(7680) => [
+ q(7665) => [
q(Angguruk Yali),
],
- q(7681) => [
+ q(7666) => [
q(Yil),
],
- q(7682) => [
+ q(7667) => [
q(Limi),
],
- q(7683) => [
+ q(7668) => [
q(Langnian Buyang),
],
- q(7684) => [
+ q(7669) => [
q(Naluo Yi),
],
- q(7685) => [
+ q(7670) => [
q(Yalarnnga),
],
- q(7686) => [
+ q(7671) => [
q(Aribwaung),
],
- q(7687) => [
+ q(7672) => [
q(Nyalayu),
q(Nyelayu),
],
- q(7688) => [
+ q(7673) => [
q(Yambes),
],
- q(7689) => [
+ q(7674) => [
q(Southern Muji),
],
- q(7690) => [
+ q(7675) => [
q(Muda),
],
- q(7691) => [
+ q(7676) => [
q(Yameo),
],
- q(7692) => [
+ q(7677) => [
q(Yamongeri),
],
- q(7693) => [
+ q(7678) => [
q(Mili),
],
- q(7694) => [
+ q(7679) => [
q(Moji),
],
- q(7695) => [
+ q(7680) => [
q(Makwe),
],
- q(7696) => [
+ q(7681) => [
q(Iamalele),
],
- q(7697) => [
+ q(7682) => [
q(Maay),
],
- q(7698) => [
+ q(7683) => [
q(Yamna),
q(Sunum),
],
- q(7699) => [
+ q(7684) => [
q(Yangum Mon),
],
- q(7700) => [
+ q(7685) => [
q(Yamap),
],
- q(7701) => [
+ q(7686) => [
q(Qila Muji),
],
- q(7702) => [
+ q(7687) => [
q(Malasar),
],
- q(7703) => [
+ q(7688) => [
q(Mysian),
],
- q(7704) => [
+ q(7689) => [
q(Northern Muji),
],
- q(7705) => [
+ q(7690) => [
q(Muzi),
],
- q(7706) => [
+ q(7691) => [
q(Aluo),
],
- q(7707) => [
+ q(7692) => [
q(Yandruwandha),
],
- q(7708) => [
+ q(7693) => [
q(Lang'e),
],
- q(7709) => [
+ q(7694) => [
q(Yango),
],
- q(7710) => [
+ q(7695) => [
q(Naukan Yupik),
],
- q(7711) => [
+ q(7696) => [
q(Yangulam),
],
- q(7712) => [
+ q(7697) => [
q(Yana),
],
- q(7713) => [
+ q(7698) => [
q(Yong),
],
- q(7714) => [
+ q(7699) => [
q(Yendang),
],
- q(7715) => [
+ q(7700) => [
q(Yansi),
],
- q(7716) => [
+ q(7701) => [
q(Yahuna),
],
- q(7717) => [
+ q(7702) => [
q(Yoba),
],
- q(7718) => [
+ q(7703) => [
q(Yogad),
],
- q(7719) => [
+ q(7704) => [
q(Yonaguni),
],
- q(7720) => [
+ q(7705) => [
q(Yokuts),
],
- q(7721) => [
+ q(7706) => [
q(Yola),
],
- q(7722) => [
+ q(7707) => [
q(Yombe),
],
- q(7723) => [
+ q(7708) => [
q(Yongkom),
],
- q(7724) => [
+ q(7709) => [
q(Yotti),
],
- q(7725) => [
+ q(7710) => [
q(Yoron),
],
- q(7726) => [
+ q(7711) => [
q(Yoy),
],
- q(7727) => [
+ q(7712) => [
q(Phala),
],
- q(7728) => [
+ q(7713) => [
q(Labo Phowa),
],
- q(7729) => [
+ q(7714) => [
q(Phola),
],
- q(7730) => [
+ q(7715) => [
q(Phupha),
],
- q(7731) => [
+ q(7716) => [
q(Phuma),
],
- q(7732) => [
+ q(7717) => [
q(Ani Phowa),
],
- q(7733) => [
+ q(7718) => [
q(Alo Phola),
],
- q(7734) => [
+ q(7719) => [
q(Phupa),
],
- q(7735) => [
+ q(7720) => [
q(Phuza),
],
- q(7736) => [
+ q(7721) => [
q(Yerakai),
],
- q(7737) => [
+ q(7722) => [
q(Yareba),
],
- q(7738) => [
+ q(7723) => [
q(Yaoure),
],
- q(7739) => [
- q(Yari),
- ],
- q(7740) => [
+ q(7724) => [
q(Nenets),
],
- q(7741) => [
+ q(7725) => [
q(Nhengatu),
],
- q(7742) => [
+ q(7726) => [
q(Yirrk-Mel),
],
- q(7743) => [
+ q(7727) => [
q(Yerong),
],
- q(7744) => [
+ q(7728) => [
+ q(Yaroame),
+ ],
+ q(7729) => [
q(Yarsun),
],
- q(7745) => [
+ q(7730) => [
q(Yarawata),
],
- q(7746) => [
+ q(7731) => [
q(Yarluyandi),
],
- q(7747) => [
+ q(7732) => [
q(Yassic),
],
- q(7748) => [
+ q(7733) => [
q(Samatao),
],
- q(7749) => [
+ q(7734) => [
q(Sonaga),
],
- q(7750) => [
+ q(7735) => [
q(Yugoslavian Sign Language),
],
- q(7751) => [
+ q(7736) => [
q(Sani),
],
- q(7752) => [
+ q(7737) => [
q(Nisi (China)),
],
- q(7753) => [
+ q(7738) => [
q(Southern Lolopo),
],
- q(7754) => [
+ q(7739) => [
q(Sirenik Yupik),
],
- q(7755) => [
+ q(7740) => [
q(Yessan-Mayo),
],
- q(7756) => [
+ q(7741) => [
q(Sanie),
],
- q(7757) => [
+ q(7742) => [
q(Talu),
],
- q(7758) => [
+ q(7743) => [
q(Tanglang),
],
- q(7759) => [
+ q(7744) => [
q(Thopho),
],
- q(7760) => [
+ q(7745) => [
q(Yout Wam),
],
- q(7761) => [
+ q(7746) => [
q(Yatay),
],
- q(7762) => [
+ q(7747) => [
q(Yucateco),
q(Yucatec Maya),
],
- q(7763) => [
+ q(7748) => [
q(Yugambal),
],
- q(7764) => [
+ q(7749) => [
q(Yuchi),
],
- q(7765) => [
+ q(7750) => [
q(Judeo-Tripolitanian Arabic),
],
- q(7766) => [
+ q(7751) => [
q(Yue Chinese),
q(Cantonese),
],
- q(7767) => [
+ q(7752) => [
q(Havasupai-Walapai-Yavapai),
],
- q(7768) => [
+ q(7753) => [
q(Yug),
],
- q(7769) => [
+ q(7754) => [
q(Yuruti),
],
- q(7770) => [
+ q(7755) => [
q(Karkar-Yuri),
],
- q(7771) => [
+ q(7756) => [
q(Yuki),
],
- q(7772) => [
+ q(7757) => [
q(Yulu),
],
- q(7773) => [
+ q(7758) => [
q(Quechan),
],
- q(7774) => [
+ q(7759) => [
q(Bena (Nigeria)),
],
- q(7775) => [
+ q(7760) => [
q(Yukpa),
],
- q(7776) => [
+ q(7761) => [
q(Yuqui),
],
- q(7777) => [
+ q(7762) => [
q(Yurok),
],
- q(7778) => [
+ q(7763) => [
q(Yopno),
],
- q(7779) => [
+ q(7764) => [
q(Yau (Morobe Province)),
],
- q(7780) => [
+ q(7765) => [
q(Southern Yukaghir),
],
- q(7781) => [
+ q(7766) => [
q(East Yugur),
],
- q(7782) => [
+ q(7767) => [
q(Yuracare),
],
- q(7783) => [
+ q(7768) => [
q(Yawa),
],
- q(7784) => [
+ q(7769) => [
q(Yavitero),
],
- q(7785) => [
+ q(7770) => [
q(Kalou),
],
- q(7786) => [
+ q(7771) => [
q(Yinhawangka),
],
- q(7787) => [
+ q(7772) => [
q(Western Lalu),
],
- q(7788) => [
+ q(7773) => [
q(Yawanawa),
],
- q(7789) => [
+ q(7774) => [
q(Wuding-Luquan Yi),
],
- q(7790) => [
+ q(7775) => [
q(Yawuru),
],
- q(7791) => [
+ q(7776) => [
q(Xishanba Lalo),
q(Central Lalo),
],
- q(7792) => [
+ q(7777) => [
q(Wumeng Nasu),
],
- q(7793) => [
+ q(7778) => [
q(Yawarawarga),
],
- q(7794) => [
+ q(7779) => [
q(Mayawali),
],
- q(7795) => [
+ q(7780) => [
q(Yagara),
],
- q(7796) => [
+ q(7781) => [
q(Yardliyawarra),
],
- q(7797) => [
+ q(7782) => [
q(Yinwum),
],
- q(7798) => [
+ q(7783) => [
q(Yuyu),
],
- q(7799) => [
+ q(7784) => [
q(Yabula Yabula),
],
- q(7800) => [
+ q(7785) => [
q(Yir Yoront),
],
- q(7801) => [
+ q(7786) => [
q(Yau (Sandaun Province)),
],
- q(7802) => [
+ q(7787) => [
q(Ayizi),
],
- q(7803) => [
+ q(7788) => [
q(E'ma Buyang),
],
- q(7804) => [
+ q(7789) => [
q(Zokhuo),
],
- q(7805) => [
+ q(7790) => [
q(Sierra de Juarez Zapotec),
],
- q(7806) => [
+ q(7791) => [
+ q(Western Tlacolula Valley Zapotec),
q(San Juan Guelavia Zapotec),
],
- q(7807) => [
+ q(7792) => [
q(Ocotlan Zapotec),
],
- q(7808) => [
+ q(7793) => [
q(Cajonos Zapotec),
],
- q(7809) => [
+ q(7794) => [
q(Yareni Zapotec),
],
- q(7810) => [
+ q(7795) => [
q(Ayoquesco Zapotec),
],
- q(7811) => [
+ q(7796) => [
q(Zaghawa),
],
- q(7812) => [
+ q(7797) => [
q(Zangwal),
],
- q(7813) => [
+ q(7798) => [
q(Isthmus Zapotec),
],
- q(7814) => [
+ q(7799) => [
q(Zaramo),
],
- q(7815) => [
+ q(7800) => [
q(Zanaki),
],
- q(7816) => [
+ q(7801) => [
q(Zauzou),
],
- q(7817) => [
+ q(7802) => [
q(Miahuatlan Zapotec),
],
- q(7818) => [
+ q(7803) => [
q(Ozolotepec Zapotec),
],
- q(7819) => [
+ q(7804) => [
q(Aloapam Zapotec),
],
- q(7820) => [
+ q(7805) => [
q(Rincon Zapotec),
],
- q(7821) => [
+ q(7806) => [
q(Santo Domingo Albarradas Zapotec),
],
- q(7822) => [
+ q(7807) => [
q(Tabaa Zapotec),
],
- q(7823) => [
+ q(7808) => [
q(Zangskari),
],
- q(7824) => [
+ q(7809) => [
q(Yatzachi Zapotec),
],
- q(7825) => [
+ q(7810) => [
q(Mitla Zapotec),
],
- q(7826) => [
+ q(7811) => [
q(Xadani Zapotec),
],
- q(7827) => [
+ q(7812) => [
q(Zayse-Zergulla),
q(Zaysete),
],
- q(7828) => [
+ q(7813) => [
q(Zari),
],
- q(7829) => [
+ q(7814) => [
q(Central Berawan),
],
- q(7830) => [
+ q(7815) => [
q(East Berawan),
],
- q(7831) => [
+ q(7816) => [
q(Batui),
],
- q(7832) => [
+ q(7817) => [
q(West Berawan),
],
- q(7833) => [
+ q(7818) => [
q(Coatecas Altas Zapotec),
],
- q(7834) => [
+ q(7819) => [
q(Central Hongshuihe Zhuang),
],
- q(7835) => [
+ q(7820) => [
q(Ngazidja Comorian),
],
- q(7836) => [
+ q(7821) => [
q(Zeeuws),
],
- q(7837) => [
+ q(7822) => [
q(Zenag),
],
- q(7838) => [
+ q(7823) => [
q(Eastern Hongshuihe Zhuang),
],
- q(7839) => [
+ q(7824) => [
q(Kinga),
],
- q(7840) => [
+ q(7825) => [
q(Guibei Zhuang),
],
- q(7841) => [
+ q(7826) => [
q(Minz Zhuang),
],
- q(7842) => [
+ q(7827) => [
q(Guibian Zhuang),
],
- q(7843) => [
+ q(7828) => [
q(Magori),
],
- q(7844) => [
+ q(7829) => [
q(Zhaba),
],
- q(7845) => [
+ q(7830) => [
q(Dai Zhuang),
],
- q(7846) => [
+ q(7831) => [
q(Zhire),
],
- q(7847) => [
+ q(7832) => [
q(Nong Zhuang),
],
- q(7848) => [
+ q(7833) => [
q(Zhoa),
],
- q(7849) => [
+ q(7834) => [
q(Zia),
],
- q(7850) => [
+ q(7835) => [
q(Zimbabwe Sign Language),
],
- q(7851) => [
+ q(7836) => [
q(Zimakani),
],
- q(7852) => [
+ q(7837) => [
q(Zialo),
],
- q(7853) => [
+ q(7838) => [
q(Mesme),
],
- q(7854) => [
+ q(7839) => [
q(Zinza),
],
- q(7855) => [
+ q(7840) => [
q(Ziriya),
],
- q(7856) => [
+ q(7841) => [
q(Zigula),
],
- q(7857) => [
+ q(7842) => [
q(Zizilivakan),
],
- q(7858) => [
+ q(7843) => [
q(Kaimbulawa),
],
- q(7859) => [
+ q(7844) => [
q(Koibal),
],
- q(7860) => [
+ q(7845) => [
q(Kadu),
],
- q(7861) => [
+ q(7846) => [
q(Koguryo),
],
- q(7862) => [
+ q(7847) => [
q(Khorezmian),
],
- q(7863) => [
+ q(7848) => [
q(Karankawa),
],
- q(7864) => [
+ q(7849) => [
q(Kanan),
],
- q(7865) => [
+ q(7850) => [
q(Kott),
],
- q(7866) => [
+ q(7851) => [
q(Sao Paulo Kaingang),
],
- q(7867) => [
+ q(7852) => [
q(Zakhring),
],
- q(7868) => [
+ q(7853) => [
q(Kitan),
],
- q(7869) => [
+ q(7854) => [
q(Kaurna),
],
- q(7870) => [
+ q(7855) => [
q(Krevinian),
],
- q(7871) => [
+ q(7856) => [
q(Khazar),
],
- q(7872) => [
+ q(7857) => [
q(Liujiang Zhuang),
],
- q(7873) => [
+ q(7858) => [
q(Malay (individual language)),
],
- q(7874) => [
+ q(7859) => [
q(Lianshan Zhuang),
],
- q(7875) => [
+ q(7860) => [
q(Liuqian Zhuang),
],
- q(7876) => [
+ q(7861) => [
q(Manda (Australia)),
],
- q(7877) => [
+ q(7862) => [
q(Zimba),
],
- q(7878) => [
+ q(7863) => [
q(Margany),
],
- q(7879) => [
+ q(7864) => [
q(Maridan),
],
- q(7880) => [
+ q(7865) => [
q(Mangerr),
],
- q(7881) => [
+ q(7866) => [
q(Mfinu),
],
- q(7882) => [
+ q(7867) => [
q(Marti Ke),
],
- q(7883) => [
+ q(7868) => [
q(Makolkol),
],
- q(7884) => [
+ q(7869) => [
q(Negeri Sembilan Malay),
],
- q(7885) => [
+ q(7870) => [
q(Maridjabin),
],
- q(7886) => [
+ q(7871) => [
q(Mandandanyi),
],
- q(7887) => [
+ q(7872) => [
q(Madngele),
],
- q(7888) => [
+ q(7873) => [
q(Marimanindji),
],
- q(7889) => [
+ q(7874) => [
q(Mbangwe),
],
- q(7890) => [
+ q(7875) => [
q(Molo),
],
- q(7891) => [
+ q(7876) => [
q(Mpuono),
],
- q(7892) => [
+ q(7877) => [
q(Mituku),
],
- q(7893) => [
+ q(7878) => [
q(Maranunggu),
],
- q(7894) => [
+ q(7879) => [
q(Mbesa),
],
- q(7895) => [
+ q(7880) => [
q(Maringarr),
],
- q(7896) => [
+ q(7881) => [
q(Muruwari),
],
- q(7897) => [
+ q(7882) => [
q(Mbariman-Gudhinma),
],
- q(7898) => [
+ q(7883) => [
q(Mbo (Democratic Republic of Congo)),
],
- q(7899) => [
+ q(7884) => [
q(Bomitaba),
],
- q(7900) => [
+ q(7885) => [
q(Mariyedi),
],
- q(7901) => [
+ q(7886) => [
q(Mbandja),
],
- q(7902) => [
+ q(7887) => [
q(Zan Gula),
],
- q(7903) => [
+ q(7888) => [
q(Zande (individual language)),
],
- q(7904) => [
+ q(7889) => [
q(Mang),
],
- q(7905) => [
+ q(7890) => [
q(Manangkari),
],
- q(7906) => [
+ q(7891) => [
q(Mangas),
],
- q(7907) => [
+ q(7892) => [
q(Copainala Zoque),
],
- q(7908) => [
+ q(7893) => [
q(Chimalapa Zoque),
],
- q(7909) => [
+ q(7894) => [
q(Zou),
],
- q(7910) => [
+ q(7895) => [
q(Asuncion Mixtepec Zapotec),
],
- q(7911) => [
+ q(7896) => [
q(Tabasco Zoque),
],
- q(7912) => [
+ q(7897) => [
q(Rayon Zoque),
],
- q(7913) => [
+ q(7898) => [
q(Francisco Leon Zoque),
],
- q(7914) => [
+ q(7899) => [
q(Lachiguiri Zapotec),
],
- q(7915) => [
+ q(7900) => [
q(Yautepec Zapotec),
],
- q(7916) => [
+ q(7901) => [
q(Choapan Zapotec),
],
- q(7917) => [
+ q(7902) => [
q(Southeastern Ixtlan Zapotec),
],
- q(7918) => [
+ q(7903) => [
q(Petapa Zapotec),
],
- q(7919) => [
+ q(7904) => [
q(San Pedro Quiatoni Zapotec),
],
- q(7920) => [
+ q(7905) => [
q(Guevea De Humboldt Zapotec),
],
- q(7921) => [
+ q(7906) => [
q(Totomachapan Zapotec),
],
- q(7922) => [
+ q(7907) => [
q(Santa Maria Quiegolani Zapotec),
],
- q(7923) => [
+ q(7908) => [
q(Quiavicuzas Zapotec),
],
- q(7924) => [
+ q(7909) => [
q(Tlacolulita Zapotec),
],
- q(7925) => [
+ q(7910) => [
q(Lachixio Zapotec),
],
- q(7926) => [
+ q(7911) => [
q(Mixtepec Zapotec),
],
- q(7927) => [
+ q(7912) => [
q(Santa Ines Yatzechi Zapotec),
],
- q(7928) => [
+ q(7913) => [
q(Amatlan Zapotec),
],
- q(7929) => [
+ q(7914) => [
q(El Alto Zapotec),
],
- q(7930) => [
+ q(7915) => [
q(Zoogocho Zapotec),
],
- q(7931) => [
+ q(7916) => [
q(Santiago Xanica Zapotec),
],
- q(7932) => [
+ q(7917) => [
q(Coatlan Zapotec),
],
- q(7933) => [
+ q(7918) => [
q(San Vicente Coatlan Zapotec),
],
- q(7934) => [
+ q(7919) => [
q(Yalalag Zapotec),
],
- q(7935) => [
+ q(7920) => [
q(Chichicapan Zapotec),
],
- q(7936) => [
+ q(7921) => [
q(Zaniza Zapotec),
],
- q(7937) => [
+ q(7922) => [
q(San Baltazar Loxicha Zapotec),
],
- q(7938) => [
+ q(7923) => [
q(Mazaltepec Zapotec),
],
- q(7939) => [
+ q(7924) => [
q(Texmelucan Zapotec),
],
- q(7940) => [
+ q(7925) => [
q(Qiubei Zhuang),
],
- q(7941) => [
+ q(7926) => [
q(Kara (Korea)),
],
- q(7942) => [
+ q(7927) => [
q(Mirgan),
],
- q(7943) => [
+ q(7928) => [
q(Zerenkel),
],
- q(7944) => [
+ q(7929) => [
q(Zaparo),
],
- q(7945) => [
+ q(7930) => [
q(Zarphatic),
],
- q(7946) => [
+ q(7931) => [
q(Mairasi),
],
- q(7947) => [
+ q(7932) => [
q(Sarasira),
],
- q(7948) => [
+ q(7933) => [
q(Kaskean),
],
- q(7949) => [
+ q(7934) => [
q(Zambian Sign Language),
],
- q(7950) => [
+ q(7935) => [
q(Standard Malay),
],
- q(7951) => [
+ q(7936) => [
q(Southern Rincon Zapotec),
],
- q(7952) => [
+ q(7937) => [
q(Sukurum),
],
- q(7953) => [
+ q(7938) => [
q(Elotepec Zapotec),
],
- q(7954) => [
+ q(7939) => [
q(Xanaguia Zapotec),
],
- q(7955) => [
+ q(7940) => [
q(Lapaguia-Guivini Zapotec),
],
- q(7956) => [
+ q(7941) => [
q(San Agustin Mixtepec Zapotec),
],
- q(7957) => [
+ q(7942) => [
q(Santa Catarina Albarradas Zapotec),
],
- q(7958) => [
+ q(7943) => [
q(Loxicha Zapotec),
],
- q(7959) => [
+ q(7944) => [
q(Quioquitani-Quieri Zapotec),
],
- q(7960) => [
+ q(7945) => [
q(Tilquiapan Zapotec),
],
- q(7961) => [
+ q(7946) => [
q(Tejalapan Zapotec),
],
- q(7962) => [
+ q(7947) => [
q(Guila Zapotec),
],
- q(7963) => [
+ q(7948) => [
q(Zaachila Zapotec),
],
- q(7964) => [
+ q(7949) => [
q(Yatee Zapotec),
],
- q(7965) => [
+ q(7950) => [
q(Zeem),
],
- q(7966) => [
+ q(7951) => [
q(Tokano),
],
- q(7967) => [
+ q(7952) => [
q(Kumzari),
],
- q(7968) => [
+ q(7953) => [
q(Zumaya),
],
- q(7969) => [
+ q(7954) => [
q(Zay),
],
- q(7970) => [
+ q(7955) => [
q(Yongbei Zhuang),
],
- q(7971) => [
+ q(7956) => [
q(Yang Zhuang),
],
- q(7972) => [
+ q(7957) => [
q(Youjiang Zhuang),
],
- q(7973) => [
+ q(7958) => [
q(Yongnan Zhuang),
],
- q(7974) => [
+ q(7959) => [
q(Zyphe Chin),
],
- q(7975) => [
+ q(7960) => [
q(Zuojiang Zhuang),
],
};
$Locale::Codes::Data{'language'}{'alias2id'} = {
q(!xoo) => [
- q(4975),
+ q(4968),
q(0),
],
q('are'are) => [
- q(0761),
+ q(0762),
q(0),
],
q('auhelawa) => [
- q(3648),
+ q(3642),
q(0),
],
q('oroe) => [
@@ -24302,95 +24279,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(//ani) => [
- q(2803),
+ q(2800),
q(0),
],
q(//gana) => [
- q(2575),
+ q(2573),
q(0),
],
q(//xegwi) => [
- q(7330),
+ q(7317),
q(0),
],
q(/gwi) => [
- q(2686),
+ q(2683),
q(0),
],
q(/xam) => [
- q(7280),
+ q(7268),
q(0),
],
q(=/hua) => [
- q(2853),
+ q(2850),
q(0),
],
q(=/ungkue) => [
- q(2542),
+ q(2540),
q(1),
],
q(a'ou) => [
- q(0831),
+ q(0832),
q(0),
],
q(a'tong) => [
- q(0830),
+ q(0831),
q(1),
],
q(a-hmaos) => [
- q(2780),
+ q(2777),
q(1),
],
q(a-pucikwar) => [
- q(0849),
+ q(0850),
q(0),
],
q(aari) => [
- q(0710),
+ q(0711),
q(0),
],
q(aasax) => [
- q(0553),
+ q(0554),
q(0),
],
q(abadi) => [
- q(3202),
+ q(3201),
q(0),
],
q(abaga) => [
- q(0565),
+ q(0566),
q(0),
],
q(abai sungai) => [
- q(0564),
+ q(0565),
q(0),
],
q(abanyom) => [
- q(0570),
+ q(0571),
q(0),
],
q(abar) => [
- q(4307),
+ q(4299),
q(0),
],
q(abau) => [
- q(0555),
+ q(0556),
q(0),
],
q(abaza) => [
- q(0574),
+ q(0575),
q(0),
],
q(abe) => [
- q(0559),
+ q(0560),
q(0),
],
q(abellen ayta) => [
- q(0573),
+ q(0574),
q(0),
],
q(abidji) => [
- q(0567),
+ q(0568),
q(0),
],
q(abinomn) => [
@@ -24398,11 +24375,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abipon) => [
- q(0985),
+ q(0986),
q(0),
],
q(abishira) => [
- q(0892),
+ q(0893),
q(0),
],
q(abkhazian) => [
@@ -24410,71 +24387,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abom) => [
- q(0815),
+ q(0816),
q(0),
],
q(abon) => [
- q(0572),
+ q(0573),
q(0),
],
q(abron) => [
- q(0575),
+ q(0576),
q(0),
],
q(abu) => [
- q(0614),
+ q(0615),
q(0),
],
q(abu' arapesh) => [
- q(0545),
+ q(0546),
q(0),
],
q(abua) => [
- q(0571),
+ q(0572),
q(0),
],
q(abui) => [
- q(0583),
+ q(0584),
q(0),
],
q(abun) => [
- q(3325),
+ q(3322),
q(0),
],
q(abure) => [
- q(0578),
+ q(0579),
q(0),
],
q(abureni) => [
- q(4259),
+ q(4251),
q(0),
],
q(acatepec me'phaa) => [
- q(6674),
+ q(6658),
q(0),
],
q(acatepec tlapanec) => [
- q(6674),
+ q(6658),
q(1),
],
q(achagua) => [
- q(0584),
+ q(0585),
q(0),
],
q(achang) => [
- q(0592),
+ q(0593),
q(0),
],
q(ache) => [
- q(2657),
+ q(2655),
q(0),
],
q(acheron) => [
- q(0603),
+ q(0604),
q(0),
],
q(achi) => [
- q(0595),
+ q(0596),
q(0),
],
q(achinese) => [
@@ -24482,15 +24459,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(achterhoeks) => [
- q(0597),
+ q(0598),
q(0),
],
q(achuar-shiwiar) => [
- q(0598),
+ q(0599),
q(0),
],
q(achumawi) => [
- q(0599),
+ q(0600),
q(0),
],
q(acoli) => [
@@ -24498,31 +24475,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(acroa) => [
- q(0596),
+ q(0597),
q(0),
],
q(adabe) => [
- q(0604),
+ q(0605),
q(0),
],
q(adai) => [
- q(7275),
+ q(7262),
q(0),
],
q(adamawa fulfulde) => [
- q(2380),
+ q(2378),
q(0),
],
q(adamorobe sign language) => [
- q(0617),
+ q(0618),
q(0),
],
q(adang) => [
- q(0613),
+ q(0614),
q(0),
],
q(adangbe) => [
- q(0615),
+ q(0616),
q(0),
],
q(adangme) => [
@@ -24530,51 +24507,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(adara) => [
- q(3171),
+ q(3170),
q(0),
],
q(adasen) => [
- q(6533),
+ q(6520),
q(0),
],
q(adele) => [
- q(0606),
+ q(0607),
q(0),
],
q(adhola) => [
- q(0609),
+ q(0610),
q(0),
],
q(adi) => [
- q(0610),
+ q(0611),
+ q(0),
+ ],
+ q(adilabad gondi) => [
+ q(7220),
q(0),
],
q(adioukrou) => [
- q(0611),
+ q(0612),
q(0),
],
q(adithinngithigh) => [
- q(2159),
+ q(2153),
q(0),
],
q(adivasi oriya) => [
- q(5303),
+ q(5298),
q(0),
],
q(adiwasi garasia) => [
- q(2415),
+ q(2413),
q(0),
],
q(adnyamathanha) => [
- q(0618),
+ q(0619),
q(0),
],
q(adonara) => [
- q(0616),
+ q(0617),
q(0),
],
q(aduge) => [
- q(0619),
+ q(0620),
q(0),
],
q(adygei) => [
@@ -24586,27 +24567,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(adzera) => [
- q(0622),
+ q(0623),
q(0),
],
q(aeka) => [
- q(0638),
+ q(0639),
q(0),
],
q(aekyom) => [
- q(0972),
+ q(0973),
q(0),
],
q(aequian) => [
- q(7276),
+ q(7263),
q(0),
],
q(aer) => [
- q(0632),
+ q(0633),
q(0),
],
q(afade) => [
- q(0548),
+ q(0549),
q(0),
],
q(afar) => [
@@ -24614,19 +24595,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(afghan persian) => [
- q(5602),
+ q(5595),
q(1),
],
q(afghan sign language) => [
- q(0642),
+ q(0643),
q(0),
],
q(afitti) => [
- q(0649),
+ q(0650),
q(0),
],
q(afra) => [
- q(6894),
+ q(6879),
q(1),
],
q(afrihili) => [
@@ -24642,143 +24623,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(afro-seminole creole) => [
- q(0648),
+ q(0649),
q(0),
],
q(agarabi) => [
- q(0655),
+ q(0656),
q(0),
],
q(agariya) => [
- q(0660),
+ q(0661),
q(0),
],
q(agatu) => [
- q(0654),
+ q(0655),
q(0),
],
q(agavotaguerra) => [
- q(0962),
+ q(0963),
q(0),
],
q(aghem) => [
- q(0667),
+ q(0668),
q(0),
],
q(aghu) => [
- q(0680),
+ q(0681),
q(0),
],
q(aghu-tharnggala) => [
- q(2641),
+ q(2639),
q(0),
],
q(aghul) => [
- q(0674),
+ q(0675),
q(0),
],
q(aghwan) => [
- q(7277),
+ q(7264),
q(0),
],
q(agi) => [
- q(0696),
+ q(0697),
q(0),
],
q(agob) => [
- q(3371),
+ q(3368),
q(0),
],
q(agoi) => [
- q(2893),
+ q(2890),
q(0),
],
q(aguacateco) => [
- q(0671),
+ q(0672),
q(0),
],
q(aguano) => [
- q(0652),
+ q(0653),
q(0),
],
q(aguaruna) => [
- q(0668),
+ q(0669),
q(0),
],
q(aguna) => [
- q(0937),
+ q(0938),
q(0),
],
q(agusan manobo) => [
- q(4542),
+ q(4535),
q(0),
],
q(agutaynen) => [
- q(0665),
+ q(0666),
q(0),
],
q(agwagwune) => [
- q(7597),
+ q(7582),
q(0),
],
q(ahan) => [
- q(0685),
+ q(0686),
q(0),
],
q(ahanta) => [
- q(0677),
+ q(0678),
+ q(0),
+ ],
+ q(aheri gondi) => [
+ q(2288),
q(0),
],
q(aheu) => [
- q(6505),
+ q(6493),
q(0),
],
q(ahirani) => [
- q(0688),
+ q(0689),
q(0),
],
q(ahom) => [
- q(0686),
+ q(0687),
q(0),
],
q(ahtena) => [
- q(0690),
+ q(0691),
q(0),
],
q(ahwai) => [
- q(4831),
+ q(4824),
q(0),
],
q(ai-cham) => [
- q(0698),
+ q(0699),
q(0),
],
q(aighon) => [
- q(0711),
+ q(0712),
q(0),
],
q(aikana) => [
- q(6380),
+ q(6369),
q(0),
],
q(aiklep) => [
- q(4630),
+ q(4623),
q(0),
],
q(aimaq) => [
- q(0706),
+ q(0707),
q(0),
],
q(aimele) => [
- q(0702),
+ q(0703),
q(0),
],
q(aimol) => [
- q(0703),
+ q(0704),
q(0),
],
q(ainbai) => [
- q(0693),
+ q(0694),
q(0),
],
q(ainu) => [
@@ -24786,7 +24771,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ainu (china)) => [
- q(0692),
+ q(0693),
q(0),
],
q(ainu (japan)) => [
@@ -24794,83 +24779,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(aiome) => [
- q(0729),
+ q(0730),
q(0),
],
q(airoran) => [
- q(0707),
+ q(0708),
q(0),
],
q(aiton) => [
- q(0704),
+ q(0705),
q(0),
],
q(aiwoo) => [
- q(4832),
+ q(4825),
q(1),
],
q(aja (benin)) => [
- q(0714),
+ q(0715),
q(0),
],
q(aja (sudan)) => [
- q(0713),
+ q(0714),
q(0),
],
q(ajawa) => [
- q(0720),
+ q(0721),
q(0),
],
q(ajie) => [
- q(0715),
+ q(0716),
q(0),
],
q(ajiya) => [
- q(2904),
+ q(2901),
q(1),
],
q(ajumbu) => [
- q(4582),
+ q(4575),
q(0),
],
q(ajyininka apurucayali) => [
- q(1833),
+ q(1829),
q(0),
],
q(ak) => [
- q(0735),
+ q(0736),
q(0),
],
q(aka) => [
- q(6162),
+ q(6151),
q(0),
],
q(aka-bea) => [
- q(0568),
+ q(0569),
q(0),
],
q(aka-bo) => [
- q(0732),
+ q(0733),
q(0),
],
q(aka-cari) => [
- q(0588),
+ q(0589),
q(0),
],
q(aka-jeru) => [
- q(0730),
+ q(0731),
q(0),
],
q(aka-kede) => [
- q(0742),
+ q(0743),
q(0),
],
q(aka-kol) => [
- q(0743),
+ q(0744),
q(0),
],
q(aka-kora) => [
- q(0589),
+ q(0590),
q(0),
],
q(akan) => [
@@ -24878,39 +24863,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akar-bale) => [
- q(0590),
+ q(0591),
q(0),
],
q(akaselem) => [
- q(0737),
+ q(0738),
q(0),
],
q(akawaio) => [
- q(0725),
+ q(0726),
q(0),
],
q(ake) => [
- q(0701),
+ q(0702),
q(0),
],
q(akebu) => [
- q(3277),
+ q(3276),
q(0),
],
q(akei) => [
- q(6726),
+ q(6710),
q(0),
],
q(akeu) => [
- q(0635),
+ q(0636),
q(0),
],
q(akha) => [
- q(0682),
+ q(0683),
q(0),
],
q(akhvakh) => [
- q(0740),
+ q(0741),
q(0),
],
q(akkadian) => [
@@ -24918,15 +24903,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akkala sami) => [
- q(6034),
+ q(6025),
q(0),
],
q(aklanon) => [
- q(0731),
+ q(0732),
q(0),
],
q(akolet) => [
- q(0738),
+ q(0739),
q(0),
],
q(akoose) => [
@@ -24934,103 +24919,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akoye) => [
- q(4317),
+ q(4309),
q(0),
],
q(akpa) => [
- q(0726),
+ q(0727),
q(0),
],
q(akpes) => [
- q(2890),
+ q(2886),
q(0),
],
q(akrukay) => [
- q(0643),
+ q(0644),
q(0),
],
q(akukem) => [
- q(6186),
+ q(6175),
q(0),
],
q(akuku) => [
- q(1000),
+ q(1001),
q(0),
],
q(akum) => [
- q(0739),
+ q(0740),
q(0),
],
q(akuntsu) => [
- q(0867),
+ q(0868),
q(0),
],
q(akurio) => [
- q(0733),
+ q(0734),
q(0),
],
q(akwa) => [
- q(0741),
+ q(0742),
q(0),
],
q(akyaung ari naga) => [
- q(5048),
+ q(5043),
q(0),
],
q(al-sayyid bedouin sign language) => [
- q(6346),
+ q(6334),
q(0),
],
q(alaba-k'abeena) => [
- q(0762),
+ q(0763),
q(0),
],
q(alabama) => [
- q(0744),
+ q(0745),
q(0),
],
q(alabat island agta) => [
- q(2180),
+ q(2174),
q(0),
],
q(alacalufan languages) => [
- q(0489),
+ q(0490),
q(0),
],
q(alacatlatzala mixtec) => [
- q(4310),
+ q(4302),
q(0),
],
q(alago) => [
- q(0745),
+ q(0746),
q(0),
],
q(alagwa) => [
- q(7083),
+ q(7068),
q(0),
],
q(alak) => [
- q(0752),
+ q(0753),
q(0),
],
q(alamblak) => [
- q(0779),
+ q(0780),
q(0),
],
q(alangan) => [
- q(0751),
+ q(0752),
q(0),
],
q(alanic) => [
- q(7401),
+ q(7386),
q(0),
],
q(alapmunte) => [
- q(0854),
+ q(0855),
q(0),
],
q(alawa) => [
- q(0749),
+ q(0750),
q(0),
],
q(albanian) => [
@@ -25038,27 +25023,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(albanian languages) => [
- q(0525),
+ q(0526),
q(0),
],
q(albanian sign language) => [
- q(6200),
+ q(6189),
q(0),
],
q(alcozauca mixtec) => [
- q(7507),
+ q(7492),
q(0),
],
q(alege) => [
- q(0748),
+ q(0749),
q(0),
],
q(alekano) => [
- q(2404),
+ q(2402),
q(0),
],
q(alemannic) => [
- q(0166),
+ q(0167),
q(1),
],
q(aleut) => [
@@ -25066,19 +25051,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(algerian arabic) => [
- q(0877),
+ q(0878),
q(0),
],
q(algerian saharan arabic) => [
- q(0550),
+ q(0551),
q(0),
],
q(algerian sign language) => [
- q(0899),
+ q(0900),
q(0),
],
q(algic languages) => [
- q(0490),
+ q(0491),
q(0),
],
q(algonquian languages) => [
@@ -25086,207 +25071,207 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(algonquin) => [
- q(0758),
+ q(0759),
q(0),
],
q(ali) => [
- q(0712),
+ q(0713),
q(0),
],
q(alladian) => [
- q(0747),
+ q(0748),
q(0),
],
q(allar) => [
- q(0753),
+ q(0754),
q(0),
],
q(alngith) => [
- q(0694),
+ q(0695),
q(0),
],
q(alo phola) => [
- q(7733),
+ q(7718),
q(0),
],
q(aloapam zapotec) => [
- q(7819),
+ q(7804),
q(0),
],
q(alor) => [
- q(0825),
+ q(0826),
q(0),
],
q(alsatian) => [
- q(0166),
+ q(0167),
q(2),
],
q(alsea) => [
- q(0634),
+ q(0635),
q(0),
],
q(altaic languages) => [
- q(0445),
+ q(0446),
q(0),
],
q(alu kurumba) => [
- q(7530),
+ q(7515),
q(0),
],
q(alugu) => [
- q(0934),
+ q(0935),
q(0),
],
q(alumu-tesu) => [
- q(0539),
+ q(0540),
q(0),
],
q(alune) => [
- q(0757),
+ q(0758),
q(0),
],
q(aluo) => [
- q(7706),
+ q(7691),
q(0),
],
q(alur) => [
- q(0765),
+ q(0766),
q(0),
],
q(alutor) => [
- q(0759),
+ q(0760),
q(0),
],
q(alviri-vidari) => [
- q(0956),
+ q(0957),
q(0),
],
q(alyawarr) => [
- q(0764),
+ q(0765),
q(0),
],
q(ama (papua new guinea)) => [
- q(0776),
+ q(0777),
q(0),
],
q(ama (sudan)) => [
- q(5163),
+ q(5158),
q(0),
],
q(amahai) => [
- q(0780),
+ q(0781),
q(0),
],
q(amahuaca) => [
- q(0768),
+ q(0769),
q(0),
],
q(amaimon) => [
- q(0750),
+ q(0751),
q(0),
],
q(amal) => [
- q(0541),
+ q(0542),
q(0),
],
q(amanab) => [
- q(0777),
+ q(0778),
q(0),
],
q(amanaye) => [
- q(0766),
+ q(0767),
q(0),
],
q(amara) => [
- q(0695),
+ q(0696),
q(0),
],
q(amarakaeri) => [
- q(0781),
+ q(0782),
q(0),
],
q(amarasi) => [
- q(0558),
+ q(0559),
q(0),
],
q(amatlan zapotec) => [
- q(7928),
+ q(7913),
q(0),
],
q(amba (solomon islands)) => [
- q(6956),
+ q(6941),
q(0),
],
q(amba (uganda)) => [
- q(5878),
+ q(5867),
q(0),
],
q(ambai) => [
- q(0774),
+ q(0775),
q(0),
],
q(ambakich) => [
- q(0636),
+ q(0637),
q(0),
],
q(ambala ayta) => [
- q(0561),
+ q(0562),
q(0),
],
q(ambelau) => [
- q(0785),
+ q(0786),
q(0),
],
q(ambele) => [
- q(0629),
+ q(0630),
q(0),
],
q(amblong) => [
- q(0754),
+ q(0755),
q(0),
],
q(ambo) => [
- q(0767),
+ q(0768),
q(0),
],
q(ambo-pasco quechua) => [
- q(5700),
+ q(5691),
q(0),
],
q(ambonese malay) => [
- q(0576),
+ q(0577),
q(0),
],
q(ambrak) => [
- q(0544),
+ q(0545),
q(0),
],
q(ambul) => [
- q(0847),
+ q(0848),
q(0),
],
q(ambulas) => [
- q(0577),
+ q(0578),
q(0),
],
q(amdang) => [
- q(0773),
+ q(0774),
q(0),
],
q(amdo tibetan) => [
- q(0621),
+ q(0622),
q(0),
],
q(amele) => [
- q(0637),
+ q(0638),
q(0),
],
q(american sign language) => [
- q(0889),
+ q(0890),
q(0),
],
q(amganad ifugao) => [
- q(2912),
+ q(2909),
q(0),
],
q(amharic) => [
@@ -25294,79 +25279,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ami) => [
- q(0788),
+ q(0789),
q(0),
],
q(amio-gelimi) => [
- q(3878),
+ q(3869),
q(1),
],
q(amis) => [
- q(0772),
+ q(0773),
q(0),
],
q(amo) => [
- q(0778),
+ q(0779),
q(0),
],
q(amol) => [
- q(0763),
+ q(0764),
q(0),
],
q(amoltepec mixtec) => [
- q(4152),
+ q(4144),
q(0),
],
q(ampanang) => [
- q(0839),
+ q(0840),
q(0),
],
q(ampari dogon) => [
- q(0860),
+ q(0861),
q(0),
],
q(amri karbi) => [
- q(0721),
+ q(0722),
q(0),
],
q(amto) => [
- q(0783),
+ q(0784),
q(0),
],
q(amundava) => [
- q(0620),
+ q(0621),
q(0),
],
q(amurdak) => [
- q(0771),
+ q(0772),
q(0),
],
q(ana tinga dogon) => [
- q(2160),
+ q(2154),
q(0),
],
q(anaang) => [
- q(0810),
+ q(0811),
q(0),
],
q(anakalangu) => [
- q(0727),
+ q(0728),
q(0),
],
q(anal) => [
- q(0801),
+ q(0802),
q(0),
],
q(anam) => [
- q(5397),
+ q(5393),
q(0),
],
q(anambe) => [
- q(0549),
+ q(0550),
q(0),
],
q(anamgura) => [
- q(2962),
+ q(2960),
q(0),
],
q(anasi) => [
@@ -25374,131 +25359,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anca) => [
- q(0585),
+ q(0586),
q(0),
],
q(ancient aramaic (up to 700 bce)) => [
- q(5187),
+ q(5182),
q(1),
],
q(ancient greek (to 1453)) => [
- q(0163),
+ q(0164),
q(1),
],
q(ancient hebrew) => [
- q(2735),
+ q(2732),
q(0),
],
q(ancient macedonian) => [
- q(7416),
+ q(7401),
q(0),
],
q(ancient north arabian) => [
- q(7432),
+ q(7417),
q(0),
],
q(ancient zapotec) => [
- q(7574),
+ q(7559),
q(0),
],
q(andaandi) => [
- q(2013),
+ q(2007),
q(0),
],
q(andai) => [
- q(0640),
+ q(0641),
q(0),
],
q(andajin) => [
- q(0716),
+ q(0717),
q(0),
],
q(andalusian arabic) => [
- q(7272),
+ q(7259),
q(0),
],
q(andaman creole hindi) => [
- q(2737),
+ q(2734),
q(0),
],
q(andaqui) => [
- q(0790),
+ q(0791),
q(0),
],
q(andarum) => [
- q(0817),
+ q(0818),
q(0),
],
q(andegerebinha) => [
- q(0608),
+ q(0609),
q(0),
],
q(andh) => [
- q(0805),
+ q(0806),
q(0),
],
q(andi) => [
- q(0797),
+ q(0798),
q(0),
],
q(andio) => [
- q(1614),
+ q(1613),
q(0),
],
q(andoa) => [
- q(0791),
+ q(0792),
q(0),
],
q(andoque) => [
- q(0803),
+ q(0804),
q(0),
],
q(andra-hus) => [
- q(0811),
+ q(0812),
q(0),
],
q(aneityum) => [
- q(0931),
+ q(0932),
q(0),
],
q(anem) => [
- q(0813),
+ q(0814),
q(0),
],
q(aneme wake) => [
- q(0582),
+ q(0583),
q(0),
],
q(anfillo) => [
- q(4685),
+ q(4678),
q(0),
],
q(angaataha) => [
- q(0664),
+ q(0665),
q(0),
],
q(angaite) => [
- q(0866),
+ q(0867),
q(0),
],
q(angal) => [
- q(0656),
+ q(0657),
q(0),
],
q(angal enen) => [
- q(0818),
+ q(0819),
q(0),
],
q(angal heneng) => [
- q(0728),
+ q(0729),
q(0),
],
q(angami naga) => [
- q(4912),
+ q(4905),
q(0),
],
q(angguruk yali) => [
- q(7680),
+ q(7665),
q(0),
],
q(angika) => [
@@ -25506,43 +25491,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(angkamuthi) => [
- q(0960),
+ q(0961),
q(0),
],
q(anglo-norman) => [
- q(7439),
+ q(7424),
q(0),
],
q(angloromani) => [
- q(5809),
+ q(5799),
q(0),
],
q(angolar) => [
- q(0814),
+ q(0815),
q(0),
],
q(angor) => [
- q(0658),
+ q(0659),
q(0),
],
q(angoram) => [
- q(0820),
+ q(0821),
q(0),
],
q(angosturas tunebo) => [
- q(6614),
+ q(6600),
q(0),
],
q(anguthimri) => [
- q(0970),
+ q(0971),
q(0),
],
q(ani) => [
- q(2803),
+ q(2800),
q(1),
],
q(ani phowa) => [
- q(7732),
+ q(7717),
q(0),
],
q(anii) => [
@@ -25550,11 +25535,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(animere) => [
- q(0795),
+ q(0796),
q(0),
],
q(anindilyakwa) => [
- q(0822),
+ q(0823),
q(0),
],
q(anjam) => [
@@ -25562,87 +25547,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ankave) => [
- q(0547),
+ q(0548),
q(0),
],
q(anmatyerre) => [
- q(0787),
+ q(0788),
q(0),
],
q(anong) => [
- q(5116),
+ q(5111),
q(0),
],
q(anor) => [
- q(0798),
+ q(0799),
q(0),
],
q(anserma) => [
- q(0806),
+ q(0807),
q(0),
],
q(ansus) => [
- q(0793),
+ q(0794),
q(0),
],
q(antakarinya) => [
- q(0807),
+ q(0808),
q(0),
],
q(antankarana malagasy) => [
- q(7427),
+ q(7412),
q(0),
],
q(antigua and barbuda creole english) => [
- q(0697),
+ q(0698),
q(0),
],
q(anu-hkongso chin) => [
- q(0800),
+ q(0801),
q(0),
],
q(anuak) => [
- q(0808),
+ q(0809),
q(0),
],
q(anufo) => [
- q(1759),
+ q(1756),
q(0),
],
q(anuki) => [
- q(0939),
+ q(0940),
q(0),
],
q(anus) => [
- q(0947),
+ q(0948),
q(0),
],
q(anuta) => [
- q(0936),
+ q(0937),
q(0),
],
q(anyin) => [
- q(0812),
+ q(0813),
q(0),
],
q(anyin morofo) => [
- q(4556),
+ q(4549),
q(0),
],
q(ao naga) => [
- q(4914),
+ q(4907),
q(0),
],
q(aoheng) => [
- q(5536),
+ q(5532),
q(0),
],
q(aore) => [
- q(0828),
+ q(0829),
q(0),
],
q(ap ma) => [
- q(3206),
+ q(3205),
q(0),
],
q(apache languages) => [
@@ -25650,59 +25635,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(apalachee) => [
- q(7283),
+ q(7271),
q(0),
],
q(apalai) => [
- q(0857),
+ q(0858),
q(0),
],
q(apali) => [
- q(2264),
+ q(2260),
q(0),
],
q(apasco-apoala mixtec) => [
- q(4312),
+ q(4304),
q(0),
],
q(apatani) => [
- q(0852),
+ q(0853),
q(0),
],
q(apiaka) => [
- q(0841),
+ q(0842),
q(0),
],
q(apinaye) => [
- q(0846),
+ q(0847),
q(0),
],
q(apma) => [
- q(0848),
+ q(0849),
q(0),
],
q(aproumu aizi) => [
- q(0687),
+ q(0688),
q(0),
],
q(apurina) => [
- q(0853),
+ q(0854),
q(0),
],
q(aputai) => [
- q(0856),
+ q(0857),
q(0),
],
q(aquitanian) => [
- q(7284),
+ q(7272),
q(0),
],
q(arabana) => [
- q(0869),
+ q(0870),
q(0),
],
q(arabela) => [
- q(0875),
+ q(0876),
q(0),
],
q(arabic) => [
@@ -25714,35 +25699,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(araki) => [
- q(0736),
+ q(0737),
q(0),
],
q(arakwal) => [
- q(5804),
+ q(5794),
q(0),
],
q(aralle-tabulahan) => [
- q(0923),
+ q(0924),
q(0),
],
q(arammba) => [
- q(6263),
+ q(6252),
q(0),
],
q(aranadan) => [
- q(0543),
+ q(0544),
q(0),
],
q(aranama-tamique) => [
- q(7486),
+ q(7471),
q(0),
],
q(arandai) => [
- q(3062),
+ q(3061),
q(0),
],
q(araona) => [
- q(0876),
+ q(0877),
q(0),
],
q(arapaho) => [
@@ -25750,19 +25735,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arapaso) => [
- q(0873),
+ q(0874),
q(0),
],
q(ararandewara) => [
- q(7279),
+ q(7266),
q(0),
],
q(arauan languages) => [
- q(0491),
+ q(0492),
q(0),
],
q(arawa) => [
- q(0880),
+ q(0881),
q(1),
],
q(arawak) => [
@@ -25770,119 +25755,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arawakan languages) => [
- q(0492),
+ q(0493),
q(0),
],
q(arawete) => [
- q(0979),
+ q(0980),
q(0),
],
q(arawum) => [
- q(0974),
+ q(0975),
q(0),
],
q(arbereshe albanian) => [
- q(0542),
+ q(0543),
q(0),
],
q(arbore) => [
- q(0881),
+ q(0882),
q(0),
],
q(archi) => [
- q(0859),
+ q(0860),
q(0),
],
q(ardhamagadhi prakrit) => [
- q(5474),
+ q(5471),
q(0),
],
q(are) => [
- q(4627),
+ q(4620),
q(0),
],
q(areba) => [
- q(0623),
+ q(0624),
q(0),
],
q(arem) => [
- q(0630),
+ q(0631),
q(0),
],
q(arequipa-la union quechua) => [
- q(5732),
+ q(5723),
q(0),
],
q(argentine sign language) => [
- q(0626),
+ q(0627),
q(0),
],
q(argobba) => [
- q(0661),
+ q(0662),
q(0),
],
q(arguni) => [
- q(0657),
+ q(0658),
q(0),
],
q(arha) => [
- q(0865),
+ q(0866),
q(0),
],
q(arho) => [
- q(0824),
+ q(0825),
q(0),
],
q(arhuaco) => [
- q(0871),
+ q(0872),
q(0),
],
q(ari) => [
- q(0540),
+ q(0541),
q(0),
],
q(aribwatsa) => [
- q(3812),
+ q(3803),
q(0),
],
q(aribwaung) => [
- q(7686),
+ q(7671),
q(0),
],
q(arifama-miniafia) => [
- q(0546),
+ q(0547),
q(0),
],
q(arigidi) => [
- q(0861),
+ q(0862),
q(0),
],
q(arikapu) => [
- q(0874),
+ q(0875),
q(0),
],
q(arikara) => [
- q(0872),
+ q(0873),
q(0),
],
q(arikem) => [
- q(0709),
+ q(0710),
q(0),
],
q(arin) => [
- q(7483),
+ q(7468),
q(0),
],
q(aringa) => [
- q(4077),
+ q(4069),
q(0),
],
q(arma) => [
- q(0821),
+ q(0822),
q(0),
],
q(armazic) => [
- q(7482),
+ q(7467),
q(0),
],
q(armenian) => [
@@ -25890,39 +25875,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(armenian (family)) => [
- q(0511),
+ q(0512),
q(0),
],
q(armenian sign language) => [
- q(0631),
+ q(0632),
q(0),
],
q(aromanian) => [
- q(0362),
+ q(0363),
q(0),
],
q(arop-lokep) => [
- q(0850),
+ q(0851),
q(0),
],
q(arop-sissano) => [
- q(0851),
+ q(0852),
q(0),
],
q(arosi) => [
- q(0691),
+ q(0692),
q(0),
],
q(arpitan) => [
- q(2374),
+ q(2372),
q(0),
],
q(arritinngithigh) => [
- q(5853),
+ q(5842),
q(0),
],
q(arta) => [
- q(0932),
+ q(0933),
q(0),
],
q(artificial languages) => [
@@ -25930,87 +25915,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arua (amazonas state)) => [
- q(0880),
+ q(0881),
q(0),
],
q(arua (rodonia state)) => [
- q(0882),
+ q(0883),
q(0),
],
q(aruamu) => [
- q(4553),
+ q(4546),
q(0),
],
q(aruek) => [
- q(0948),
+ q(0949),
q(0),
],
q(arumanian) => [
- q(0362),
+ q(0363),
q(1),
],
q(aruop) => [
- q(4066),
+ q(4057),
q(0),
],
q(arutani) => [
- q(0930),
+ q(0931),
q(0),
],
q(arvanitika albanian) => [
- q(0554),
+ q(0555),
q(0),
],
q(as) => [
- q(0908),
+ q(0909),
q(0),
],
q(asaro'o) => [
- q(4576),
+ q(4569),
q(0),
],
q(asas) => [
- q(0888),
+ q(0889),
q(0),
],
q(ashaninka) => [
- q(1800),
+ q(1797),
q(0),
],
q(ashe) => [
- q(0689),
+ q(0690),
q(0),
],
q(asheninka pajonal) => [
- q(1750),
+ q(1747),
q(0),
],
q(asheninka perene) => [
- q(5600),
+ q(5593),
q(0),
],
q(ashkun) => [
- q(0895),
+ q(0896),
q(0),
],
q(asho chin) => [
- q(1872),
+ q(1867),
q(0),
],
q(ashtiani) => [
- q(0920),
+ q(0921),
q(0),
],
q(asilulu) => [
- q(0896),
+ q(0897),
q(0),
],
q(askopan) => [
- q(2230),
+ q(2226),
q(0),
],
q(asoa) => [
- q(0904),
+ q(0905),
q(0),
],
q(assamese) => [
@@ -26018,19 +26003,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(assan) => [
- q(7503),
+ q(7488),
q(0),
],
q(assangori) => [
- q(6059),
+ q(6050),
q(0),
],
q(assiniboine) => [
- q(0886),
+ q(0887),
q(0),
],
q(assyrian neo-aramaic) => [
- q(0699),
+ q(0700),
q(0),
],
q(asturian) => [
@@ -26042,55 +26027,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(asu (nigeria)) => [
- q(0943),
+ q(0944),
q(0),
],
q(asu (tanzania)) => [
- q(0885),
+ q(0886),
q(0),
],
q(asue awyu) => [
- q(5609),
+ q(5601),
q(0),
],
q(asumboa) => [
- q(0933),
+ q(0934),
q(0),
],
q(asuncion mixtepec zapotec) => [
- q(7910),
+ q(7895),
q(0),
],
q(asuri) => [
- q(0901),
+ q(0902),
q(0),
],
q(ata) => [
- q(0919),
+ q(0920),
q(0),
],
q(ata manobo) => [
- q(0912),
+ q(0913),
q(0),
],
q(atakapa) => [
- q(0864),
+ q(0865),
q(0),
],
q(atampaya) => [
- q(0789),
+ q(0790),
q(0),
],
q(atatlahuca mixtec) => [
- q(4300),
+ q(4292),
q(0),
],
q(atayal) => [
- q(6378),
+ q(6367),
q(0),
],
q(atemble) => [
- q(0913),
+ q(0914),
q(0),
],
q(athapascan languages) => [
@@ -26098,87 +26083,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(athpariya) => [
- q(0840),
+ q(0841),
q(0),
],
q(ati) => [
- q(0917),
+ q(0918),
q(0),
],
q(atikamekw) => [
- q(0916),
+ q(0917),
q(0),
],
q(atlantic-congo languages) => [
- q(0488),
+ q(0489),
q(0),
],
q(atohwaim) => [
- q(0862),
+ q(0863),
q(0),
],
q(atong (cameroon)) => [
- q(0921),
+ q(0922),
q(0),
],
q(atong (india)) => [
- q(0830),
+ q(0831),
q(0),
],
q(atorada) => [
- q(0832),
+ q(0833),
q(0),
],
q(atsahuaca) => [
- q(0911),
+ q(0912),
q(0),
],
q(atsam) => [
- q(1685),
+ q(1682),
q(0),
],
q(atsugewi) => [
- q(0929),
+ q(0930),
q(0),
],
q(attapady kurumba) => [
- q(5482),
+ q(5479),
q(0),
],
q(attie) => [
- q(0915),
+ q(0916),
q(0),
],
q(atzingo matlatzinca) => [
- q(5200),
+ q(5195),
q(0),
],
q(au) => [
- q(0964),
+ q(0965),
q(0),
],
q(aulua) => [
- q(0942),
+ q(0943),
q(0),
],
q(aura) => [
- q(0952),
+ q(0953),
q(0),
],
q(aushi) => [
- q(0938),
+ q(0939),
q(0),
],
q(aushiri) => [
- q(0963),
+ q(0964),
q(0),
],
q(austral) => [
- q(0949),
+ q(0950),
q(0),
],
q(australian aborigines sign language) => [
- q(0905),
+ q(0906),
q(0),
],
q(australian languages) => [
@@ -26186,39 +26171,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(australian sign language) => [
- q(0890),
+ q(0891),
q(0),
],
q(austrian sign language) => [
- q(0900),
+ q(0901),
q(0),
],
q(austro-asiatic languages) => [
- q(0487),
+ q(0488),
q(0),
],
q(austronesian languages) => [
- q(0271),
+ q(0272),
q(0),
],
q(auwe) => [
- q(6119),
+ q(6109),
q(0),
],
q(auye) => [
- q(0950),
+ q(0951),
q(0),
],
q(auyokawa) => [
- q(0945),
+ q(0946),
q(0),
],
q(ava guarani) => [
- q(4863),
+ q(4856),
q(1),
],
q(ava-canoeiro) => [
- q(0966),
+ q(0967),
q(0),
],
q(avaric) => [
@@ -26226,15 +26211,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(avatime) => [
- q(0961),
+ q(0962),
q(0),
],
q(avau) => [
- q(0955),
+ q(0956),
q(0),
],
q(avava) => [
- q(6588),
+ q(6575),
q(1),
],
q(avestan) => [
@@ -26242,31 +26227,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(avikam) => [
- q(0957),
+ q(0958),
q(0),
],
q(avokaya) => [
- q(0965),
+ q(0966),
q(0),
],
q(awa (china)) => [
- q(7055),
+ q(7040),
q(0),
],
q(awa (papua new guinea)) => [
- q(0967),
+ q(0968),
q(0),
],
q(awa-cuaiquer) => [
- q(3701),
+ q(3694),
q(0),
],
q(awabakal) => [
- q(0973),
+ q(0974),
q(0),
],
q(awad bing) => [
- q(1084),
+ q(1085),
q(0),
],
q(awadhi) => [
@@ -26274,19 +26259,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(awak) => [
- q(0976),
+ q(0977),
q(0),
],
q(awar) => [
- q(0992),
+ q(0993),
q(0),
],
q(awara) => [
- q(0983),
+ q(0984),
q(0),
],
q(awbono) => [
- q(0971),
+ q(0972),
q(0),
],
q(aweer) => [
@@ -26294,99 +26279,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(awera) => [
- q(0977),
+ q(0978),
q(0),
],
q(aweti) => [
- q(0969),
+ q(0970),
q(0),
],
q(awing) => [
- q(1019),
+ q(1020),
q(0),
],
q(awiyaana) => [
- q(0953),
+ q(0954),
q(0),
],
q(awjilah) => [
- q(0940),
+ q(0941),
q(0),
],
q(awngi) => [
- q(0975),
+ q(0976),
q(0),
],
q(awngthim) => [
- q(2687),
+ q(2684),
q(0),
],
q(awtuw) => [
- q(3467),
+ q(3464),
q(0),
],
q(awu) => [
- q(7660),
+ q(7645),
q(0),
],
q(awun) => [
- q(0982),
+ q(0983),
q(0),
],
q(awutu) => [
- q(0650),
+ q(0651),
q(0),
],
q(awyi) => [
- q(0951),
+ q(0952),
q(0),
],
q(axamb) => [
- q(0678),
+ q(0679),
q(0),
],
q(axi yi) => [
- q(7662),
+ q(7647),
q(0),
],
q(ayabadhu) => [
- q(0995),
+ q(0996),
q(0),
],
q(ayacucho quechua) => [
- q(5698),
+ q(5689),
q(0),
],
q(ayangan ifugao) => [
- q(2913),
+ q(2910),
q(1),
],
q(ayautla mazatec) => [
- q(7039),
+ q(7024),
q(0),
],
q(ayere) => [
- q(0996),
+ q(0997),
q(0),
],
q(ayerrerenge) => [
- q(0986),
+ q(0987),
q(0),
],
q(ayi (papua new guinea)) => [
- q(1005),
+ q(1006),
q(0),
],
q(ayiwo) => [
- q(4832),
+ q(4825),
q(0),
],
q(ayizi) => [
- q(7802),
+ q(7787),
q(0),
],
q(ayizo gbe) => [
- q(0993),
+ q(0994),
q(0),
],
q(aymara) => [
@@ -26394,19 +26379,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ayoquesco zapotec) => [
- q(7810),
+ q(7795),
q(0),
],
q(ayoreo) => [
- q(1003),
+ q(1004),
q(0),
],
q(ayu) => [
- q(1009),
+ q(1010),
q(0),
],
q(ayutla mixtec) => [
- q(4319),
+ q(4311),
q(0),
],
q(azerbaijani) => [
@@ -26414,23 +26399,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(azha) => [
- q(1012),
+ q(1013),
q(0),
],
q(azhe) => [
- q(7663),
+ q(7648),
q(0),
],
q(azoyu me'phaa) => [
- q(6657),
+ q(6641),
q(0),
],
q(azoyu tlapanec) => [
- q(6657),
+ q(6641),
q(1),
],
q(baan) => [
- q(1526),
+ q(1525),
q(0),
],
q(baangi) => [
@@ -26438,35 +26423,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baatonum) => [
- q(1038),
+ q(1039),
q(0),
],
q(baba) => [
- q(1060),
+ q(1061),
q(0),
],
q(baba malay) => [
- q(4133),
+ q(4125),
q(0),
],
q(babalia creole arabic) => [
- q(1063),
+ q(1064),
q(0),
],
q(babango) => [
- q(1050),
+ q(1051),
q(0),
],
q(babanki) => [
- q(1048),
+ q(1049),
q(0),
],
q(babatana) => [
- q(1022),
+ q(1023),
q(0),
],
q(babine) => [
- q(1081),
+ q(1082),
q(0),
],
q(bable) => [
@@ -26474,11 +26459,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(babuza) => [
- q(1619),
+ q(1618),
q(0),
],
q(bacama) => [
- q(1087),
+ q(1088),
q(0),
],
q(bacanese malay) => [
@@ -26486,7 +26471,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bactrian) => [
- q(7294),
+ q(7281),
q(0),
],
q(bada (indonesia)) => [
@@ -26494,23 +26479,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bada (nigeria)) => [
- q(1033),
+ q(1034),
q(0),
],
q(badaga) => [
- q(1152),
+ q(1153),
q(0),
],
q(bade) => [
- q(1093),
+ q(1094),
q(0),
],
q(badeshi) => [
- q(1114),
+ q(1115),
q(0),
],
q(badi kanum) => [
- q(3335),
+ q(3332),
q(0),
],
q(badimaya) => [
@@ -26518,47 +26503,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(badjiri) => [
- q(3061),
+ q(3060),
q(0),
],
q(badui) => [
- q(1024),
+ q(1025),
q(0),
],
q(badyara) => [
- q(5374),
+ q(5370),
q(0),
],
q(baeggu) => [
- q(1520),
+ q(1519),
q(0),
],
q(baelelea) => [
- q(1519),
+ q(1518),
q(0),
],
q(baetora) => [
- q(1486),
+ q(1485),
q(0),
],
q(bafanji) => [
- q(1145),
+ q(1146),
q(0),
],
q(bafaw-balong) => [
- q(1561),
+ q(1560),
q(0),
],
q(bafia) => [
- q(3599),
+ q(3594),
q(0),
],
q(bafut) => [
- q(1139),
- q(0),
- ],
- q(baga binari) => [
- q(1070),
+ q(1140),
q(0),
],
q(baga kaloum) => [
@@ -26573,8 +26554,8 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1306),
q(0),
],
- q(baga mboteni) => [
- q(1172),
+ q(baga pokur) => [
+ q(1071),
q(0),
],
q(baga sitemu) => [
@@ -26586,7 +26567,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bagheli) => [
- q(1159),
+ q(1160),
q(0),
],
q(bagirmi) => [
@@ -26594,7 +26575,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bagirmi fulfulde) => [
- q(2386),
+ q(2384),
q(0),
],
q(bago-kusuntu) => [
@@ -26614,23 +26595,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bagvalal) => [
- q(3667),
+ q(3661),
q(0),
],
q(baha buyang) => [
- q(7642),
+ q(7627),
q(0),
],
q(baham) => [
- q(1111),
+ q(1112),
q(0),
],
q(bahamas creole english) => [
- q(1028),
+ q(1029),
q(0),
],
q(baharna arabic) => [
- q(0579),
+ q(0580),
q(0),
],
q(bahau) => [
@@ -26646,7 +26627,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bahnar) => [
- q(1105),
+ q(1106),
q(0),
],
q(bahonsuai) => [
@@ -26654,11 +26635,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bai) => [
- q(1098),
+ q(1099),
q(0),
],
q(baibai) => [
- q(1043),
+ q(1044),
q(0),
],
q(baikeno) => [
@@ -26674,15 +26655,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bainouk-gunyaamolo) => [
- q(1088),
+ q(1089),
q(0),
],
q(bainouk-gunyuno) => [
- q(1023),
+ q(1024),
q(0),
],
q(bainouk-samik) => [
- q(1065),
+ q(1066),
q(0),
],
q(baiso) => [
@@ -26690,7 +26671,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baissa fali) => [
- q(2327),
+ q(2324),
q(0),
],
q(bajan) => [
@@ -26706,7 +26687,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baka (sudan)) => [
- q(1096),
+ q(1097),
q(0),
],
q(bakairi) => [
@@ -26730,11 +26711,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bakole) => [
- q(3458),
+ q(3455),
q(0),
],
q(bakpinka) => [
- q(1056),
+ q(1057),
q(0),
],
q(bakumpai) => [
@@ -26754,7 +26735,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(balangingi) => [
- q(6233),
+ q(6222),
q(0),
],
q(balanta-ganja) => [
@@ -26774,15 +26755,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baldemu) => [
- q(1102),
+ q(1103),
q(0),
],
q(bali (democratic republic of congo)) => [
- q(1079),
+ q(1080),
q(0),
],
q(bali (nigeria)) => [
- q(1077),
+ q(1078),
q(0),
],
q(balinese) => [
@@ -26790,7 +26771,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(balinese malay) => [
- q(4289),
+ q(4281),
q(0),
],
q(balkan gagauz turkish) => [
@@ -26798,7 +26779,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(balkan romani) => [
- q(5817),
+ q(5807),
q(0),
],
q(balo) => [
@@ -26810,7 +26791,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(balti) => [
- q(1155),
+ q(1156),
q(0),
],
q(baltic languages) => [
@@ -26818,7 +26799,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baltic romani) => [
- q(5815),
+ q(5805),
q(0),
],
q(baluan-pam) => [
@@ -26834,7 +26815,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bamali) => [
- q(1054),
+ q(1055),
q(0),
],
q(bambalang) => [
@@ -26842,7 +26823,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bambam) => [
- q(5637),
+ q(5629),
q(0),
],
q(bambara) => [
@@ -26850,15 +26831,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bambassi) => [
- q(4677),
+ q(4670),
q(0),
],
q(bambili-bambui) => [
- q(1035),
+ q(1036),
q(0),
],
q(bamenyam) => [
- q(1068),
+ q(1069),
q(0),
],
q(bamileke languages) => [
@@ -26866,7 +26847,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bamu) => [
- q(1069),
+ q(1070),
q(0),
],
q(bamukumbit) => [
@@ -26874,11 +26855,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bamun) => [
- q(1036),
+ q(1037),
q(0),
],
q(bamunka) => [
- q(1529),
+ q(1528),
q(0),
],
q(bamwe) => [
@@ -26886,15 +26867,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ban khor sign language) => [
- q(1146),
+ q(1147),
q(0),
],
q(bana) => [
- q(1086),
+ q(1087),
q(0),
],
q(banam bay) => [
- q(7047),
+ q(7032),
q(1),
],
q(banao itneg) => [
@@ -26902,7 +26883,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(banaro) => [
- q(1612),
+ q(1611),
q(0),
],
q(banda (indonesia)) => [
@@ -26918,7 +26899,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(banda-bambari) => [
- q(3930),
+ q(3921),
q(0),
],
q(banda-banda) => [
@@ -26930,15 +26911,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(banda-ndele) => [
- q(1147),
+ q(1148),
q(0),
],
q(banda-yangere) => [
- q(7584),
+ q(7569),
q(0),
],
q(bandi) => [
- q(1613),
+ q(1612),
q(0),
],
q(bandial) => [
@@ -26946,19 +26927,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bandjalang) => [
- q(1113),
+ q(1114),
q(0),
],
q(bangala) => [
- q(1573),
+ q(1572),
q(0),
],
q(bangandu) => [
- q(1166),
+ q(1167),
q(0),
],
q(bangba) => [
- q(1042),
+ q(1043),
q(0),
],
q(banggai) => [
@@ -26974,19 +26955,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bangime) => [
- q(1956),
+ q(1950),
q(0),
],
q(bangingih sama) => [
- q(6233),
+ q(6222),
q(1),
],
q(bangka) => [
- q(4226),
+ q(4218),
q(0),
],
+ q(bangla) => [
+ q(0050),
+ q(1),
+ ],
q(bangolan) => [
- q(1169),
+ q(1170),
q(0),
],
q(bangubangu) => [
@@ -26998,11 +26983,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baniva) => [
- q(1537),
+ q(1536),
q(0),
],
q(baniwa) => [
- q(1550),
+ q(1549),
q(0),
],
q(banjar) => [
@@ -27010,31 +26995,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bankagooma) => [
- q(1588),
+ q(1587),
q(0),
],
q(bankal) => [
- q(3108),
+ q(3106),
q(0),
],
q(bankan tey dogon) => [
- q(1974),
+ q(1968),
q(0),
],
q(bankon) => [
- q(0560),
+ q(0561),
q(0),
],
q(bannoni) => [
- q(1076),
+ q(1077),
q(0),
],
q(bantawa) => [
- q(1031),
+ q(1032),
q(0),
],
q(bantayanon) => [
- q(1158),
+ q(1159),
q(0),
],
q(bantik) => [
@@ -27054,7 +27039,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(baoule) => [
- q(1072),
+ q(1073),
q(0),
],
q(bara malagasy) => [
@@ -27066,23 +27051,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(barababaraba) => [
- q(5761),
+ q(5752),
q(0),
],
q(barai) => [
- q(1039),
+ q(1040),
q(0),
],
q(barakai) => [
- q(1029),
+ q(1030),
q(0),
],
q(baram kayan) => [
- q(3760),
+ q(3753),
q(0),
],
q(barama) => [
- q(1044),
+ q(1045),
q(0),
],
q(barambu) => [
@@ -27110,7 +27095,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(barbaram) => [
- q(7019),
+ q(7004),
q(0),
],
q(barbareno) => [
@@ -27118,31 +27103,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(barclayville grebo) => [
- q(2630),
+ q(2628),
q(0),
],
q(bardi) => [
- q(1073),
+ q(1074),
q(0),
],
q(bare) => [
- q(1025),
+ q(1026),
q(0),
],
q(barein) => [
- q(1517),
+ q(1516),
q(0),
],
q(bargam) => [
- q(4381),
+ q(4374),
q(0),
],
q(bari) => [
- q(1136),
+ q(1137),
q(0),
],
q(bariai) => [
- q(1071),
+ q(1072),
q(0),
],
q(bariji) => [
@@ -27150,11 +27135,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(barikanchi) => [
- q(1581),
+ q(1580),
q(0),
],
q(barikewa) => [
- q(3063),
+ q(3062),
q(0),
],
q(barok) => [
@@ -27162,11 +27147,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(barombi) => [
- q(1046),
+ q(1047),
q(0),
],
q(barro negro tunebo) => [
- q(6393),
+ q(6382),
q(0),
],
q(barrow point) => [
@@ -27178,11 +27163,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baruya) => [
- q(1606),
+ q(1605),
q(0),
],
q(barwe) => [
- q(1548),
+ q(1547),
q(0),
],
q(barzani jewish neo-aramaic) => [
@@ -27198,7 +27183,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(basa (nigeria)) => [
- q(1635),
+ q(1634),
q(0),
],
q(basa-gumna) => [
@@ -27206,15 +27191,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(basa-gurmana) => [
- q(1502),
+ q(1501),
q(0),
],
q(basap) => [
- q(1090),
+ q(1091),
q(0),
],
q(basay) => [
- q(1605),
+ q(1604),
q(0),
],
q(bashkardi) => [
@@ -27234,7 +27219,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(basque (family)) => [
- q(0503),
+ q(0504),
q(0),
],
q(bassa) => [
@@ -27258,19 +27243,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batad ifugao) => [
- q(2913),
+ q(2910),
q(0),
],
q(batak) => [
- q(1590),
+ q(1589),
q(0),
],
q(batak alas-kluet) => [
- q(1494),
+ q(1493),
q(0),
],
q(batak angkola) => [
- q(0722),
+ q(0723),
q(0),
],
q(batak dairi) => [
@@ -27278,7 +27263,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batak karo) => [
- q(1492),
+ q(1491),
q(0),
],
q(batak languages) => [
@@ -27286,15 +27271,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batak mandailing) => [
- q(1481),
+ q(1480),
q(0),
],
q(batak simalungun) => [
- q(1487),
+ q(1486),
q(0),
],
q(batak toba) => [
- q(1040),
+ q(1041),
q(0),
],
q(batanga) => [
@@ -27302,11 +27287,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batek) => [
- q(1485),
+ q(1484),
q(0),
],
q(bateri) => [
- q(1490),
+ q(1489),
q(0),
],
q(bathari) => [
@@ -27318,35 +27303,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bati (indonesia)) => [
- q(1535),
+ q(1534),
q(0),
],
q(bats) => [
- q(1049),
+ q(1050),
q(0),
],
q(batu) => [
- q(1489),
+ q(1488),
q(0),
],
q(batui) => [
- q(7831),
+ q(7816),
q(0),
],
q(batuley) => [
- q(1037),
+ q(1038),
q(0),
],
q(batyala) => [
- q(7307),
+ q(7293),
q(0),
],
q(bau) => [
- q(1041),
+ q(1042),
q(0),
],
q(bau bidayuh) => [
- q(6137),
+ q(6127),
q(0),
],
q(bauchi) => [
@@ -27358,19 +27343,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bauria) => [
- q(1165),
+ q(1166),
q(0),
],
q(bauwaki) => [
- q(1552),
+ q(1551),
q(0),
],
q(bauzi) => [
- q(1541),
+ q(1540),
q(0),
],
q(bavarian) => [
- q(1032),
+ q(1033),
q(0),
],
q(bawm chin) => [
@@ -27378,7 +27363,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bay miwok) => [
- q(4358),
+ q(4351),
q(0),
],
q(bayali) => [
@@ -27386,51 +27371,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baybayanon) => [
- q(1540),
+ q(1539),
q(0),
],
q(baygo) => [
- q(1596),
+ q(1595),
q(0),
],
q(bayono) => [
- q(1601),
+ q(1600),
q(0),
],
q(bayot) => [
- q(1089),
+ q(1090),
q(0),
],
q(bayungu) => [
- q(1576),
+ q(1575),
q(0),
],
q(bazigar) => [
- q(1153),
+ q(1154),
q(0),
],
q(beami) => [
- q(1125),
+ q(1126),
q(0),
],
q(beaver) => [
- q(1115),
+ q(1116),
q(0),
],
q(beba) => [
- q(1151),
+ q(1152),
q(0),
],
q(bebele) => [
- q(1116),
+ q(1117),
q(0),
],
q(bebeli) => [
- q(1124),
+ q(1125),
q(0),
],
q(bebil) => [
- q(1582),
+ q(1581),
q(0),
],
q(bedawiyet) => [
@@ -27442,7 +27427,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bedoanas) => [
- q(1118),
+ q(1119),
q(0),
],
q(beeke) => [
@@ -27450,11 +27435,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(beele) => [
- q(1583),
+ q(1582),
q(0),
],
q(beembe) => [
- q(1127),
+ q(1128),
q(0),
],
q(beezen) => [
@@ -27462,7 +27447,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(befang) => [
- q(1062),
+ q(1063),
q(0),
],
q(begbere-ejar) => [
@@ -27474,7 +27459,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bekati') => [
- q(1123),
+ q(1124),
q(0),
],
q(bekwarra) => [
@@ -27486,15 +27471,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(belait) => [
- q(1121),
+ q(1122),
q(0),
],
q(belanda bor) => [
- q(1568),
+ q(1567),
q(0),
],
q(belanda viri) => [
- q(1525),
+ q(1524),
q(0),
],
q(belarusian) => [
@@ -27502,11 +27487,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(belhariya) => [
- q(1610),
+ q(1609),
q(0),
],
q(beli (papua new guinea)) => [
- q(1134),
+ q(1135),
q(0),
],
q(beli (sudan)) => [
@@ -27514,7 +27499,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(belize kriol english) => [
- q(1622),
+ q(1621),
q(0),
],
q(bella coola) => [
@@ -27538,31 +27523,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ben tey dogon) => [
- q(1971),
+ q(1965),
q(0),
],
q(bena (nigeria)) => [
- q(7774),
+ q(7759),
q(0),
],
q(bena (tanzania)) => [
- q(1135),
+ q(1136),
q(0),
],
q(benabena) => [
- q(1120),
+ q(1121),
q(0),
],
q(bench) => [
- q(1080),
+ q(1081),
q(0),
],
q(bende) => [
- q(1104),
+ q(1105),
q(0),
],
q(bendi) => [
- q(1083),
+ q(1084),
q(0),
],
q(beneraf) => [
@@ -27570,7 +27555,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(beng) => [
- q(4861),
+ q(4854),
q(0),
],
q(benga) => [
@@ -27594,11 +27579,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(benyadu') => [
- q(1593),
+ q(1592),
q(0),
],
q(beothuk) => [
- q(1498),
+ q(1497),
q(0),
],
q(bepour) => [
@@ -27610,11 +27595,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(berakou) => [
- q(1587),
+ q(1586),
q(0),
],
q(berau malay) => [
- q(1521),
+ q(1520),
q(0),
],
q(berber languages) => [
@@ -27638,51 +27623,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(berta) => [
- q(7242),
+ q(7229),
q(0),
],
q(berti) => [
- q(1608),
+ q(1607),
q(0),
],
q(besisi) => [
- q(4279),
+ q(4271),
q(0),
],
q(besme) => [
- q(1128),
+ q(1129),
q(0),
],
q(besoa) => [
- q(1126),
+ q(1127),
q(0),
],
q(betaf) => [
- q(1140),
+ q(1141),
q(0),
],
q(betawi) => [
- q(1132),
+ q(1133),
q(0),
],
q(bete) => [
- q(1595),
+ q(1594),
q(0),
],
q(bete-bendi) => [
- q(1488),
+ q(1487),
q(0),
],
q(beti (cote d'ivoire)) => [
- q(2279),
+ q(2275),
q(0),
],
q(betta kurumba) => [
- q(7531),
+ q(7516),
q(0),
],
q(bezhta) => [
- q(3180),
+ q(3179),
q(0),
],
q(bhadrawahi) => [
@@ -27697,10 +27682,6 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1186),
q(0),
],
- q(bhatola) => [
- q(1480),
- q(0),
- ],
q(bhatri) => [
q(1182),
q(0),
@@ -27730,11 +27711,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bhoti kinnauri) => [
- q(4823),
+ q(4816),
q(0),
],
q(bhujel) => [
- q(1597),
+ q(1596),
q(0),
],
q(bhunjia) => [
@@ -27746,7 +27727,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(biage) => [
- q(1094),
+ q(1095),
q(0),
],
q(biak) => [
@@ -27754,7 +27735,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(biali) => [
- q(1122),
+ q(1123),
q(0),
],
q(bian marind) => [
@@ -27766,7 +27747,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(biao) => [
- q(1600),
+ q(1599),
q(0),
],
q(biao mon) => [
@@ -27782,11 +27763,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bibbulman) => [
- q(7303),
+ q(7290),
q(0),
],
q(bidhawal) => [
- q(2932),
+ q(2929),
q(0),
],
q(bidiyo) => [
@@ -27794,7 +27775,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bidyara) => [
- q(1602),
+ q(1601),
q(0),
],
q(bidyogo) => [
@@ -27818,7 +27799,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(big nambas) => [
- q(4963),
+ q(4956),
q(0),
],
q(biga) => [
@@ -27826,7 +27807,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bigambal) => [
- q(7296),
+ q(7283),
+ q(0),
+ ],
+ q(bih) => [
+ q(2888),
q(0),
],
q(bihari languages) => [
@@ -27846,7 +27831,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bikya) => [
- q(1591),
+ q(1590),
q(0),
],
q(bila) => [
@@ -27858,7 +27843,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bilaspuri) => [
- q(3301),
+ q(3300),
q(0),
],
q(bilba) => [
@@ -27890,7 +27875,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bilur) => [
- q(1572),
+ q(1571),
q(0),
],
q(bima) => [
@@ -27906,7 +27891,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bina (nigeria)) => [
- q(1599),
+ q(1598),
q(0),
],
q(bina (papua new guinea)) => [
@@ -27914,7 +27899,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(binahari) => [
- q(1589),
+ q(1588),
q(0),
],
q(binandere) => [
@@ -27922,7 +27907,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bindal) => [
- q(7295),
+ q(7282),
q(0),
],
q(bine) => [
@@ -27938,7 +27923,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(binongan itneg) => [
- q(3010),
+ q(3008),
q(0),
],
q(bintauna) => [
@@ -27962,7 +27947,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(birale) => [
- q(1571),
+ q(1570),
q(0),
],
q(birao) => [
@@ -27978,7 +27963,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(biri) => [
- q(1630),
+ q(1629),
q(0),
],
q(biritai) => [
@@ -27990,11 +27975,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(birri) => [
- q(1533),
+ q(1532),
q(0),
],
q(birrpayi) => [
- q(7299),
+ q(7286),
q(0),
],
q(birwa) => [
@@ -28006,7 +27991,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(biseni) => [
- q(2935),
+ q(2932),
q(0),
],
q(bishnupriya) => [
@@ -28014,7 +27999,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bishuo) => [
- q(1549),
+ q(1548),
q(0),
],
q(bisis) => [
@@ -28034,11 +28019,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bisu) => [
- q(1621),
+ q(1620),
q(0),
],
q(bit) => [
- q(1170),
+ q(1171),
q(0),
],
q(bitare) => [
@@ -28046,15 +28031,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bitur) => [
- q(4155),
+ q(4147),
q(0),
],
q(biwat) => [
- q(1554),
+ q(1553),
q(0),
],
q(biyo) => [
- q(1603),
+ q(1602),
q(0),
],
q(biyom) => [
@@ -28066,11 +28051,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(blafe) => [
- q(1143),
+ q(1144),
q(0),
],
q(blagar) => [
- q(1130),
+ q(1131),
q(0),
],
q(blang) => [
@@ -28082,19 +28067,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bliss) => [
- q(0478),
+ q(0479),
q(2),
],
q(blissymbolics) => [
- q(0478),
+ q(0479),
q(1),
],
q(blissymbols) => [
- q(0478),
+ q(0479),
q(0),
],
q(bo (laos)) => [
- q(1171),
+ q(1172),
q(0),
],
q(bo (papua new guinea)) => [
@@ -28102,27 +28087,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bo-rukul) => [
- q(4117),
+ q(4109),
q(0),
],
q(bo-ung) => [
- q(4598),
+ q(4591),
q(0),
],
q(boano (maluku)) => [
- q(1626),
+ q(1625),
q(0),
],
q(boano (sulawesi)) => [
- q(1624),
+ q(1623),
q(0),
],
q(bobongko) => [
- q(1162),
+ q(1163),
q(0),
],
q(bobot) => [
- q(1493),
+ q(1492),
q(0),
],
q(bodo (central african republic)) => [
@@ -28134,19 +28119,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bodo gadaba) => [
- q(2428),
+ q(2426),
q(0),
],
q(bodo parja) => [
- q(1110),
+ q(1111),
q(0),
],
q(bofi) => [
- q(1141),
+ q(1142),
q(0),
],
q(boga) => [
- q(1538),
+ q(1537),
q(0),
],
q(bogaya) => [
@@ -28154,7 +28139,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(boghom) => [
- q(1514),
+ q(1513),
q(0),
],
q(boguru) => [
@@ -28166,15 +28151,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(boikin) => [
- q(1618),
+ q(1617),
q(0),
],
q(bokha) => [
- q(7605),
+ q(7590),
q(0),
],
q(bokmal, norwegian) => [
- q(0313),
+ q(0314),
q(0),
],
q(boko (benin)) => [
@@ -28186,11 +28171,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bokobaru) => [
- q(1509),
+ q(1508),
q(0),
],
q(bokoto) => [
- q(1108),
+ q(1109),
q(0),
],
q(bokyi) => [
@@ -28210,11 +28195,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bolgarian) => [
- q(7302),
+ q(7289),
q(0),
],
q(bolgo) => [
- q(1531),
+ q(1530),
q(0),
],
q(bolia) => [
@@ -28222,16 +28207,16 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bolinao) => [
- q(6122),
+ q(6112),
q(0),
],
q(bolivian sign language) => [
- q(1528),
+ q(1527),
q(0),
],
q(bolo) => [
q(1298),
- q(0),
+ q(1),
],
q(boloki) => [
q(1272),
@@ -28242,7 +28227,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bolondo) => [
- q(1625),
+ q(1624),
q(0),
],
q(bolongan) => [
@@ -28250,10 +28235,10 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bolyu) => [
- q(5506),
+ q(5503),
q(0),
],
- q(bom) => [
+ q(bom-kim) => [
q(1308),
q(0),
],
@@ -28266,11 +28251,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bomboma) => [
- q(1560),
+ q(1559),
q(0),
],
q(bomitaba) => [
- q(7899),
+ q(7884),
q(0),
],
q(bomu) => [
@@ -28282,11 +28267,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bon gula) => [
- q(2543),
+ q(2541),
q(0),
],
q(bonan) => [
- q(5410),
+ q(5406),
q(0),
],
q(bondei) => [
@@ -28294,15 +28279,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bondo) => [
- q(1157),
+ q(1158),
q(0),
],
q(bondoukou kulango) => [
- q(3770),
+ q(3763),
q(0),
],
q(bondum dom dogon) => [
- q(1972),
+ q(1966),
q(0),
],
q(bonerate) => [
@@ -28314,7 +28299,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bonggi) => [
- q(1095),
+ q(1096),
q(0),
],
q(bonggo) => [
@@ -28322,7 +28307,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bongili) => [
- q(1501),
+ q(1500),
q(0),
],
q(bongo) => [
@@ -28338,7 +28323,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bonkeng) => [
- q(1523),
+ q(1522),
q(0),
],
q(bonkiman) => [
@@ -28362,7 +28347,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(boor) => [
- q(1522),
+ q(1521),
q(0),
],
q(bora) => [
@@ -28370,35 +28355,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(borana-arsi-guji oromo) => [
- q(2419),
+ q(2417),
q(0),
],
q(border kuna) => [
- q(3680),
+ q(3674),
q(0),
],
q(borei) => [
- q(2405),
+ q(2403),
q(0),
],
q(borgu fulfulde) => [
- q(2383),
+ q(2381),
q(0),
],
q(borna (ethiopia)) => [
- q(1556),
+ q(1555),
q(1),
],
q(boro (ethiopia)) => [
- q(1556),
+ q(1555),
q(0),
],
q(boro (ghana)) => [
- q(7560),
+ q(7545),
q(0),
],
q(borong) => [
- q(3611),
+ q(3606),
q(0),
],
q(bororo) => [
@@ -28410,7 +28395,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(boselewa) => [
- q(1547),
+ q(1546),
q(0),
],
q(bosngun) => [
@@ -28430,23 +28415,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(botolan sambal) => [
- q(5913),
+ q(5903),
q(0),
],
q(bouna kulango) => [
- q(4941),
+ q(4934),
q(0),
],
q(bouyei) => [
- q(5383),
+ q(5379),
q(0),
],
q(bozaba) => [
- q(1627),
+ q(1626),
q(0),
],
q(bragat) => [
- q(0819),
+ q(0820),
q(0),
],
q(brahui) => [
@@ -28458,11 +28443,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(brazilian sign language) => [
- q(1631),
+ q(1630),
q(0),
],
q(brem) => [
- q(1508),
+ q(1507),
q(0),
],
q(breri) => [
@@ -28474,15 +28459,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bribri) => [
- q(1616),
+ q(1615),
q(0),
],
q(brithenig) => [
- q(1632),
+ q(1631),
q(0),
],
q(british sign language) => [
- q(1144),
+ q(1145),
q(0),
],
q(brokkat) => [
@@ -28490,7 +28475,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(brokpake) => [
- q(6004),
+ q(5995),
q(0),
],
q(brokskat) => [
@@ -28498,7 +28483,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(brooke's point palawano) => [
- q(5505),
+ q(5502),
q(0),
],
q(broome pearling lugger pidgin) => [
@@ -28506,7 +28491,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(brunei) => [
- q(3721),
+ q(3714),
q(0),
],
q(brunei bisaya) => [
@@ -28514,19 +28499,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bu) => [
- q(3094),
+ q(3092),
q(0),
],
q(bu-nao bunu) => [
- q(1564),
+ q(1563),
q(0),
],
q(bua) => [
- q(1495),
+ q(1494),
q(0),
],
q(bualkhaw chin) => [
- q(1669),
+ q(1666),
q(0),
],
q(buamu) => [
@@ -28534,39 +28519,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bube) => [
- q(1518),
+ q(1517),
q(0),
],
q(bubi) => [
- q(1513),
+ q(1512),
q(0),
],
q(bubia) => [
- q(1061),
+ q(1062),
q(0),
],
q(budeh stieng) => [
- q(6272),
+ q(6261),
q(0),
],
q(budibud) => [
- q(1484),
+ q(1483),
q(0),
],
q(budong-budong) => [
- q(1112),
+ q(1113),
q(0),
],
q(budu) => [
- q(1511),
+ q(1510),
q(0),
],
q(budukh) => [
- q(1099),
+ q(1100),
q(0),
],
q(buduma) => [
- q(1101),
+ q(1102),
q(0),
],
q(budza) => [
@@ -28574,11 +28559,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bugan) => [
- q(1045),
+ q(1046),
q(0),
],
q(bugawac) => [
- q(1503),
+ q(1502),
q(0),
],
q(bughotu) => [
@@ -28590,15 +28575,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buglere) => [
- q(5887),
+ q(5877),
q(0),
],
q(bugun) => [
- q(1167),
+ q(1168),
q(0),
],
q(buhi'non bikol) => [
- q(6857),
+ q(6841),
q(0),
],
q(buhid) => [
@@ -28606,15 +28591,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buhutu) => [
- q(1574),
+ q(1573),
q(0),
],
q(bukar-sadung bidayuh) => [
- q(5955),
+ q(5946),
q(0),
],
q(bukat) => [
- q(1527),
+ q(1526),
q(0),
],
q(bukharic) => [
@@ -28622,7 +28607,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bukit malay) => [
- q(1536),
+ q(1535),
q(0),
],
q(bukitan) => [
@@ -28630,19 +28615,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bukiyip) => [
- q(0837),
+ q(0838),
q(0),
],
q(buksa) => [
- q(6549),
+ q(6536),
q(0),
],
q(bukusu) => [
- q(1577),
+ q(1576),
q(0),
],
q(bukwen) => [
- q(1516),
+ q(1515),
q(0),
],
q(bulgarian) => [
@@ -28658,23 +28643,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buli (ghana)) => [
- q(1562),
+ q(1561),
q(0),
],
q(buli (indonesia)) => [
- q(1629),
+ q(1628),
q(0),
],
q(bullom so) => [
- q(1515),
+ q(1514),
q(0),
],
q(bulo stieng) => [
- q(6261),
+ q(6250),
q(0),
],
q(bulu (cameroon)) => [
- q(1504),
+ q(1503),
q(0),
],
q(bulu (papua new guinea)) => [
@@ -28686,39 +28671,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bumaji) => [
- q(1604),
+ q(1603),
q(0),
],
q(bumang) => [
- q(1532),
+ q(1531),
q(0),
],
q(bumbita arapesh) => [
- q(0827),
+ q(0828),
q(0),
],
q(bumthangkha) => [
- q(3402),
+ q(3399),
q(0),
],
q(bun) => [
- q(1512),
+ q(1511),
q(0),
],
q(buna) => [
- q(1530),
+ q(1529),
q(0),
],
q(bunaba) => [
- q(1074),
+ q(1075),
q(0),
],
q(bunak) => [
- q(1149),
+ q(1150),
q(0),
],
q(bunama) => [
- q(1092),
+ q(1093),
q(0),
],
q(bundeli) => [
@@ -28730,11 +28715,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bungain) => [
- q(1510),
+ q(1509),
q(0),
],
q(bunganditj) => [
- q(7297),
+ q(7284),
q(0),
],
q(bungku) => [
@@ -28742,11 +28727,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bungu) => [
- q(7252),
+ q(7239),
q(0),
],
q(bunoge dogon) => [
- q(2005),
+ q(1999),
q(0),
],
q(bunun) => [
@@ -28758,11 +28743,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bura-pabir) => [
- q(1559),
+ q(1558),
q(0),
],
q(burak) => [
- q(1607),
+ q(1606),
q(0),
],
q(buraka) => [
@@ -28770,7 +28755,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burarra) => [
- q(1534),
+ q(1533),
q(0),
],
q(burate) => [
@@ -28778,11 +28763,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burduna) => [
- q(1580),
+ q(1579),
q(0),
],
q(bure) => [
- q(1524),
+ q(1523),
q(0),
],
q(buriat) => [
@@ -28794,7 +28779,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burmbar) => [
- q(7047),
+ q(7032),
q(0),
],
q(burmese) => [
@@ -28802,11 +28787,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burmeso) => [
- q(1633),
+ q(1632),
q(0),
],
q(buru (indonesia)) => [
- q(4292),
+ q(4284),
q(0),
],
q(buru (nigeria)) => [
@@ -28818,15 +28803,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burumakok) => [
- q(0705),
+ q(0706),
q(0),
],
q(burun) => [
- q(1097),
+ q(1098),
q(0),
],
q(burunge) => [
- q(1107),
+ q(1108),
q(0),
],
q(burushaski) => [
@@ -28838,7 +28823,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buruwai) => [
- q(0893),
+ q(0894),
q(0),
],
q(busa) => [
@@ -28846,7 +28831,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(busam) => [
- q(1585),
+ q(1584),
q(0),
],
q(busami) => [
@@ -28854,19 +28839,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(busang kayan) => [
- q(1142),
+ q(1143),
q(0),
],
q(bushi) => [
- q(1496),
+ q(1495),
q(0),
],
q(bushoong) => [
- q(1499),
+ q(1498),
q(0),
],
q(businenge tongo) => [
- q(2066),
+ q(2060),
q(1),
],
q(buso) => [
@@ -28874,11 +28859,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(busoa) => [
- q(1507),
+ q(1506),
q(0),
],
q(bussa) => [
- q(2130),
+ q(2124),
q(0),
],
q(busuu) => [
@@ -28886,7 +28871,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(butbut kalinga) => [
- q(3743),
+ q(3736),
q(0),
],
q(butmas-tur) => [
@@ -28894,7 +28879,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(butuanon) => [
- q(1491),
+ q(1490),
q(0),
],
q(buwal) => [
@@ -28902,87 +28887,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buxinhua) => [
- q(1170),
+ q(1171),
q(1),
],
q(buyu) => [
- q(1598),
+ q(1597),
q(0),
],
q(buyuan jinuo) => [
- q(3106),
+ q(3104),
q(0),
],
q(bwa) => [
- q(1563),
+ q(1562),
q(0),
],
q(bwaidoka) => [
- q(1545),
+ q(1544),
q(0),
],
q(bwanabwana) => [
- q(6739),
+ q(6723),
q(0),
],
q(bwatoo) => [
- q(1542),
+ q(1541),
q(0),
],
q(bwe karen) => [
- q(1546),
+ q(1545),
q(0),
],
q(bwela) => [
- q(1553),
+ q(1552),
q(0),
],
q(bwile) => [
- q(1544),
+ q(1543),
q(0),
],
q(bwisi) => [
- q(1566),
+ q(1565),
q(0),
],
q(byangsi) => [
- q(1119),
+ q(1120),
q(0),
],
q(byep) => [
- q(4352),
+ q(4345),
q(0),
],
q(c'lela) => [
- q(2139),
+ q(2133),
q(0),
],
q(caac) => [
- q(4546),
+ q(4539),
q(0),
],
q(cabecar) => [
- q(1751),
+ q(1748),
q(0),
],
q(cabiyari) => [
- q(1660),
+ q(1659),
q(0),
],
q(cacaloxtepec mixtec) => [
- q(4316),
+ q(4308),
q(0),
],
q(cacaopera) => [
- q(1691),
+ q(1688),
q(0),
],
q(cacgia roglai) => [
- q(5838),
+ q(5827),
q(0),
],
q(cacua) => [
- q(1677),
+ q(1674),
q(0),
],
q(caddo) => [
@@ -28990,227 +28975,223 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(caddoan languages) => [
- q(0498),
+ q(0499),
q(0),
],
q(cafundo creole) => [
- q(1682),
- q(0),
- ],
- q(cagua) => [
- q(1665),
+ q(1679),
q(0),
],
q(cahuarano) => [
- q(1645),
+ q(1644),
q(0),
],
q(cahuilla) => [
- q(1724),
+ q(1721),
q(0),
],
q(cahungwarya) => [
- q(4735),
+ q(4727),
q(0),
],
q(cajamarca quechua) => [
- q(5701),
+ q(5692),
q(0),
],
q(cajatambo north lima quechua) => [
- q(5706),
+ q(5697),
q(0),
],
q(cajonos zapotec) => [
- q(7808),
+ q(7793),
q(0),
],
q(cajun french) => [
- q(2371),
+ q(2369),
q(0),
],
q(caka) => [
- q(1766),
+ q(1763),
q(0),
],
q(cakchiquel) => [
- q(1647),
+ q(1646),
q(1),
],
q(cakchiquel-quiche mixed language) => [
- q(1768),
+ q(1765),
q(0),
],
q(cakfem-mushere) => [
- q(1767),
+ q(1764),
q(0),
],
q(calamian tagbanwa) => [
- q(6390),
+ q(6379),
q(0),
],
q(calderon highland quichua) => [
- q(5682),
+ q(5673),
q(0),
],
q(callawalla) => [
- q(1656),
+ q(1655),
q(0),
],
q(calo) => [
- q(5820),
+ q(5810),
q(0),
],
q(caluyanun) => [
- q(1781),
+ q(1778),
q(0),
],
q(cameroon mambila) => [
- q(4173),
+ q(4165),
q(0),
],
q(cameroon pidgin) => [
- q(7111),
+ q(7097),
q(0),
],
q(camling) => [
- q(5737),
+ q(5728),
q(0),
],
q(campalagian) => [
- q(1788),
+ q(1785),
q(0),
],
q(campidanese sardinian) => [
- q(6220),
+ q(6209),
q(0),
],
q(camsa) => [
- q(3190),
+ q(3189),
q(0),
],
q(camtho) => [
- q(1794),
+ q(1791),
q(0),
],
q(camunic) => [
- q(7309),
+ q(7295),
q(0),
],
q(canar highland quichua) => [
- q(5729),
+ q(5720),
q(0),
],
q(candoshi-shapra) => [
- q(1676),
+ q(1673),
q(0),
],
q(canela) => [
- q(5746),
+ q(5737),
q(0),
],
q(canichana) => [
- q(1659),
+ q(1658),
q(0),
],
q(cantonese) => [
- q(7766),
+ q(7751),
q(1),
],
q(cao lan) => [
- q(4370),
+ q(4363),
q(0),
],
q(cao miao) => [
- q(1826),
+ q(1823),
q(0),
],
q(capanahua) => [
- q(3181),
+ q(3180),
q(0),
],
q(capiznon) => [
- q(1838),
+ q(1834),
q(0),
],
q(cappadocian greek) => [
- q(1834),
+ q(1830),
q(0),
],
q(caquinte) => [
- q(1824),
+ q(1821),
q(0),
],
q(car nicobarese) => [
- q(1653),
+ q(1652),
q(0),
],
q(cara) => [
- q(1712),
+ q(1709),
q(0),
],
q(carabayo) => [
- q(1679),
+ q(1676),
q(0),
],
q(caramanta) => [
- q(1848),
+ q(1843),
q(0),
],
q(carapana) => [
- q(1661),
+ q(1660),
q(0),
],
q(carian) => [
- q(7317),
+ q(7303),
q(0),
],
q(caribbean hindustani) => [
- q(2808),
+ q(2805),
q(0),
],
q(caribbean javanese) => [
- q(3166),
+ q(3165),
q(0),
],
q(carijona) => [
- q(1662),
+ q(1661),
q(0),
],
q(carolina algonquian) => [
- q(1858),
+ q(1853),
q(0),
],
q(carolinian) => [
- q(1648),
+ q(1647),
q(0),
],
q(carpathian romani) => [
- q(5807),
+ q(5797),
q(0),
],
q(carrier) => [
- q(1863),
+ q(1858),
q(0),
],
q(cashibo-cacataibo) => [
- q(1673),
+ q(1670),
q(0),
],
q(cashinahua) => [
- q(1674),
+ q(1671),
q(0),
],
q(casiguran dumagat agta) => [
- q(2006),
+ q(2000),
q(0),
],
q(castilian) => [
- q(0401),
+ q(0402),
q(1),
],
q(casuarina coast asmat) => [
- q(0887),
+ q(0888),
q(0),
],
q(catalan) => [
@@ -29218,15 +29199,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(catalan sign language) => [
- q(1867),
+ q(1862),
q(0),
],
q(catawba) => [
- q(1719),
+ q(1716),
q(0),
],
q(cauca) => [
- q(1680),
+ q(1677),
q(0),
],
q(caucasian languages) => [
@@ -29234,23 +29215,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cavinena) => [
- q(1655),
+ q(1654),
q(0),
],
q(cayubaba) => [
- q(1931),
+ q(1925),
q(0),
],
q(cayuga) => [
- q(1658),
+ q(1657),
q(0),
],
q(cayuse) => [
- q(7322),
+ q(7308),
q(0),
],
q(cebaara senoufo) => [
- q(5968),
+ q(5959),
q(0),
],
q(cebuano) => [
@@ -29258,7 +29239,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(celtiberian) => [
- q(7310),
+ q(7296),
q(0),
],
q(celtic languages) => [
@@ -29266,11 +29247,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cemuhi) => [
- q(1649),
+ q(1648),
q(0),
],
q(cen) => [
- q(1709),
+ q(1706),
q(0),
],
q(central american indian languages) => [
@@ -29278,231 +29259,231 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central asmat) => [
- q(1804),
+ q(1801),
q(0),
],
q(central atlas tamazight) => [
- q(6848),
+ q(6832),
q(0),
],
q(central awyu) => [
- q(0980),
+ q(0981),
q(0),
],
q(central aymara) => [
- q(1006),
+ q(1007),
q(0),
],
q(central bai) => [
- q(1064),
+ q(1065),
q(0),
],
q(central berawan) => [
- q(7829),
+ q(7814),
q(0),
],
q(central bikol) => [
- q(1075),
+ q(1076),
q(0),
],
q(central bontok) => [
- q(3821),
+ q(3812),
q(0),
],
q(central cagayan agta) => [
- q(0670),
+ q(0671),
q(0),
],
q(central dusun) => [
- q(2164),
- q(0),
+ q(2159),
+ q(1),
],
q(central grebo) => [
- q(2627),
+ q(2625),
q(0),
],
q(central hongshuihe zhuang) => [
- q(7834),
+ q(7819),
q(0),
],
q(central huasteca nahuatl) => [
- q(4769),
+ q(4761),
q(0),
],
q(central huishui hmong) => [
- q(2779),
+ q(2776),
q(0),
],
q(central huishui miao) => [
- q(2779),
+ q(2776),
q(1),
],
q(central kanuri) => [
- q(3482),
+ q(3479),
q(0),
],
q(central khmer) => [
- q(0222),
+ q(0223),
q(0),
],
q(central kurdish) => [
- q(1755),
+ q(1752),
q(0),
],
q(central lalo) => [
- q(7791),
+ q(7776),
q(1),
],
q(central maewo) => [
- q(4636),
+ q(4629),
q(0),
],
q(central malay) => [
- q(5612),
+ q(5604),
q(0),
],
q(central malayo-polynesian languages) => [
- q(0519),
+ q(0520),
q(0),
],
q(central masela) => [
- q(4672),
+ q(4665),
q(0),
],
q(central mashan hmong) => [
- q(2789),
+ q(2786),
q(0),
],
q(central mashan miao) => [
- q(2789),
+ q(2786),
q(1),
],
q(central mazahua) => [
- q(4127),
+ q(4119),
q(0),
],
q(central melanau) => [
- q(4212),
+ q(4204),
q(0),
],
q(central mnong) => [
- q(1791),
+ q(1788),
q(0),
],
q(central nahuatl) => [
- q(4871),
+ q(4864),
q(0),
],
q(central nicobarese) => [
- q(4763),
+ q(4755),
q(0),
],
q(central ojibwa) => [
- q(5219),
+ q(5214),
q(0),
],
q(central okinawan) => [
- q(5885),
+ q(5874),
q(0),
],
q(central palawano) => [
- q(5488),
+ q(5485),
q(0),
],
q(central pame) => [
- q(5376),
+ q(5372),
q(0),
],
q(central pashto) => [
- q(5624),
+ q(5616),
q(0),
],
q(central pomo) => [
- q(5563),
+ q(5558),
q(0),
],
q(central puebla nahuatl) => [
- q(4782),
+ q(4775),
q(0),
],
q(central sama) => [
- q(6123),
+ q(6113),
q(0),
],
q(central siberian yupik) => [
- q(2300),
+ q(2297),
q(0),
],
q(central sierra miwok) => [
- q(1877),
+ q(1872),
q(0),
],
q(central subanen) => [
- q(6336),
+ q(6324),
q(0),
],
q(central sudanic languages) => [
- q(0499),
+ q(0500),
q(0),
],
q(central tagbanwa) => [
- q(6490),
+ q(6479),
q(0),
],
q(central tarahumara) => [
- q(6372),
+ q(6361),
q(0),
],
q(central tunebo) => [
- q(6765),
+ q(6749),
q(0),
],
q(central yupik) => [
- q(2301),
+ q(2298),
q(0),
],
q(central-eastern niger fulfulde) => [
- q(2390),
+ q(2388),
q(0),
],
q(centuum) => [
- q(1710),
+ q(1707),
q(0),
],
q(cerma) => [
- q(1785),
+ q(1782),
q(0),
],
q(chabu) => [
- q(5907),
+ q(5897),
q(0),
],
q(chachapoyas quechua) => [
- q(5687),
+ q(5678),
q(0),
],
q(chachi) => [
- q(1666),
+ q(1663),
q(0),
],
q(chacobo) => [
- q(1651),
+ q(1650),
q(0),
],
q(chadian arabic) => [
- q(6028),
+ q(6019),
q(0),
],
q(chadian sign language) => [
- q(1703),
+ q(1700),
q(0),
],
q(chadic languages) => [
- q(0497),
+ q(0498),
q(0),
],
q(chadong) => [
- q(1704),
+ q(1701),
q(0),
],
q(chagatai) => [
@@ -29510,51 +29491,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chaima) => [
- q(1742),
+ q(1739),
q(0),
],
q(chak) => [
- q(1756),
+ q(1753),
q(0),
],
q(chakali) => [
- q(1774),
+ q(1771),
q(0),
],
q(chakma) => [
- q(1690),
+ q(1687),
q(0),
],
q(chala) => [
- q(1777),
+ q(1774),
q(0),
],
q(chaldean neo-aramaic) => [
- q(1771),
+ q(1768),
q(0),
],
q(chalikha) => [
- q(6480),
+ q(6469),
q(0),
],
q(chamacoco) => [
- q(1707),
+ q(1704),
q(0),
],
q(chamalal) => [
- q(1746),
+ q(1743),
q(0),
],
q(chamari) => [
- q(1695),
+ q(1692),
q(0),
],
q(chambeali) => [
- q(1696),
+ q(1693),
q(0),
],
q(chambri) => [
- q(1650),
+ q(1649),
q(0),
],
q(chamic languages) => [
@@ -29562,7 +29543,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chamicuro) => [
- q(1681),
+ q(1678),
q(0),
],
q(chamorro) => [
@@ -29570,55 +29551,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chane) => [
- q(1646),
+ q(1645),
q(0),
],
q(chang naga) => [
- q(4742),
+ q(4734),
q(0),
],
q(changriwa) => [
- q(1715),
+ q(1712),
q(0),
],
q(changthang) => [
- q(1795),
+ q(1792),
q(0),
],
q(chantyal) => [
- q(1728),
+ q(1725),
q(0),
],
q(chara) => [
- q(1844),
+ q(1839),
q(0),
],
q(chaudangsi) => [
- q(1700),
+ q(1697),
q(0),
],
q(chaura) => [
- q(1861),
+ q(1856),
q(0),
],
q(chavacano) => [
- q(1668),
+ q(1665),
q(0),
],
q(chayahuita) => [
- q(1675),
+ q(1672),
q(0),
],
q(chayuco mixtec) => [
- q(4305),
+ q(4297),
q(0),
],
q(chazumba mixtec) => [
- q(7508),
+ q(7493),
q(0),
],
q(che) => [
- q(5869),
+ q(5858),
q(0),
],
q(chechen) => [
@@ -29626,39 +29607,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cheke holo) => [
- q(4518),
+ q(4511),
q(0),
],
q(chemakum) => [
- q(7312),
+ q(7298),
q(0),
],
q(chenapian) => [
- q(1749),
+ q(1746),
q(0),
],
q(chenchu) => [
- q(1693),
+ q(1690),
q(0),
],
q(chenoua) => [
- q(1806),
+ q(1803),
q(0),
],
q(chepang) => [
- q(1699),
+ q(1696),
q(0),
],
q(chepya) => [
- q(7615),
+ q(7600),
q(0),
],
q(cheq wong) => [
- q(1928),
+ q(1922),
q(1),
],
q(cherepon) => [
- q(1836),
+ q(1832),
q(0),
],
q(cherokee) => [
@@ -29666,19 +29647,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chesu) => [
- q(7612),
+ q(7597),
q(0),
],
q(chetco) => [
- q(1889),
+ q(1884),
q(0),
],
q(chewa) => [
- q(0321),
+ q(0322),
q(1),
],
q(chewong) => [
- q(1928),
+ q(1922),
q(0),
],
q(cheyenne) => [
@@ -29686,23 +29667,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chhattisgarhi) => [
- q(2802),
+ q(2799),
q(0),
],
q(chhintange) => [
- q(1896),
+ q(1891),
q(0),
],
q(chhulung) => [
- q(1916),
+ q(1910),
q(0),
],
q(chiangmai sign language) => [
- q(1868),
+ q(1863),
q(0),
],
q(chiapanec) => [
- q(1739),
+ q(1736),
q(0),
],
q(chibcha) => [
@@ -29710,107 +29691,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chibchan languages) => [
- q(0494),
+ q(0495),
q(0),
],
q(chicahuaxtla triqui) => [
- q(6705),
+ q(6689),
q(0),
],
q(chichewa) => [
- q(0321),
+ q(0322),
q(0),
],
q(chichicapan zapotec) => [
- q(7935),
+ q(7920),
q(0),
],
q(chichimeca-jonaz) => [
- q(5411),
+ q(5407),
q(0),
],
q(chichonyi-chidzihana-chikauma) => [
- q(1816),
+ q(1813),
q(1),
],
q(chickasaw) => [
- q(1732),
+ q(1729),
q(0),
],
q(chicomuceltec) => [
- q(1810),
+ q(1807),
q(0),
],
q(chidigo) => [
- q(2040),
+ q(2034),
q(1),
],
q(chiduruma) => [
- q(2175),
+ q(2170),
q(1),
],
q(chiga) => [
- q(1717),
+ q(1714),
q(0),
],
q(chigmecatitlan mixtec) => [
- q(4306),
+ q(4298),
q(0),
],
q(chilcotin) => [
- q(1770),
- q(0),
- ],
- q(chilean quechua) => [
- q(1843),
+ q(1767),
q(0),
],
q(chilean sign language) => [
- q(1871),
+ q(1866),
q(0),
],
q(chilisso) => [
- q(1773),
+ q(1770),
q(0),
],
q(chiltepec chinantec) => [
- q(1866),
+ q(1861),
q(0),
],
q(chimakum) => [
- q(7312),
+ q(7298),
q(1),
],
q(chimalapa zoque) => [
- q(7908),
+ q(7893),
q(0),
],
q(chimariko) => [
- q(1733),
+ q(1730),
q(0),
],
q(chimborazo highland quichua) => [
- q(5684),
+ q(5675),
q(0),
],
q(chimila) => [
- q(1664),
+ q(1662),
q(0),
],
q(china buriat) => [
- q(1586),
+ q(1585),
q(0),
],
q(chinali) => [
- q(1735),
+ q(1732),
q(0),
],
q(chinbon chin) => [
- q(1796),
+ q(1793),
q(0),
],
q(chincha quechua) => [
- q(5722),
+ q(5713),
q(0),
],
q(chinese) => [
@@ -29818,23 +29795,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chinese (family)) => [
- q(0533),
+ q(0534),
q(0),
],
q(chinese pidgin english) => [
- q(1835),
+ q(1831),
q(0),
],
q(chinese sign language) => [
- q(1876),
+ q(1871),
q(0),
],
q(chini) => [
- q(0643),
+ q(0644),
q(1),
],
q(chinook) => [
- q(1722),
+ q(1719),
q(0),
],
q(chinook jargon) => [
@@ -29842,67 +29819,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chipaya) => [
- q(1652),
+ q(1651),
q(0),
],
q(chipewyan) => [
q(0084),
q(0),
],
- q(chipiajes) => [
- q(1663),
- q(0),
- ],
q(chippewa) => [
- q(1741),
+ q(1738),
q(0),
],
q(chiquian ancash quechua) => [
- q(5721),
+ q(5712),
q(0),
],
q(chiquihuitlan mazatec) => [
- q(4121),
+ q(4113),
q(0),
],
q(chiquitano) => [
- q(1657),
+ q(1656),
q(0),
],
q(chiripa) => [
- q(4863),
+ q(4856),
q(0),
],
q(chiru) => [
- q(1694),
+ q(1691),
q(0),
],
q(chitimacha) => [
- q(1895),
+ q(1890),
q(0),
],
q(chitkuli kinnauri) => [
- q(1736),
+ q(1733),
q(0),
],
q(chittagonian) => [
- q(1892),
+ q(1887),
q(0),
],
q(chitwania tharu) => [
- q(6499),
+ q(6487),
q(0),
],
q(choapan zapotec) => [
- q(7916),
+ q(7901),
q(0),
],
q(chocangacakha) => [
- q(1718),
+ q(1715),
q(0),
],
q(chochotec) => [
- q(1830),
+ q(1826),
q(0),
],
q(choctaw) => [
@@ -29910,103 +29883,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chodri) => [
- q(1697),
+ q(1694),
q(0),
],
q(chokri naga) => [
- q(5055),
+ q(5050),
q(0),
],
q(chokwe) => [
- q(1747),
+ q(1744),
q(0),
],
q(chol) => [
- q(1901),
+ q(1896),
q(0),
],
q(cholon) => [
- q(1726),
+ q(1723),
q(0),
],
q(chong) => [
- q(1815),
+ q(1812),
q(0),
],
q(choni) => [
- q(1692),
+ q(1689),
q(0),
],
q(chonyi-dzihana-kauma) => [
- q(1816),
+ q(1813),
q(0),
],
q(chopi) => [
- q(1683),
+ q(1680),
q(0),
],
q(chorasmian) => [
- q(7316),
+ q(7302),
q(0),
],
q(chorti) => [
- q(1639),
+ q(1638),
q(0),
],
q(chothe naga) => [
- q(4780),
+ q(4773),
q(0),
],
q(chrau) => [
- q(1862),
+ q(1857),
q(0),
],
q(chru) => [
- q(1744),
+ q(1741),
q(0),
],
q(chuang) => [
- q(0481),
+ q(0482),
q(1),
],
q(chuanqiandian cluster miao) => [
- q(1842),
+ q(1838),
q(0),
],
q(chuave) => [
- q(1753),
+ q(1750),
q(0),
],
q(chug) => [
- q(1922),
+ q(1916),
q(0),
],
q(chuj) => [
- q(1641),
+ q(1640),
q(0),
],
q(chuka) => [
- q(1907),
+ q(1902),
q(0),
],
q(chukot) => [
- q(1763),
+ q(1760),
q(0),
],
q(chukwa) => [
- q(1920),
+ q(1914),
q(0),
],
q(chulym) => [
- q(1782),
+ q(1779),
q(0),
],
q(chumburung) => [
- q(4781),
+ q(4774),
+ q(0),
+ ],
+ q(chungmboko) => [
+ q(1901),
q(0),
],
q(churahi) => [
- q(1698),
+ q(1695),
q(0),
],
q(church slavic) => [
@@ -30018,7 +29995,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(chut) => [
- q(5928),
+ q(5918),
q(0),
],
q(chuukese) => [
@@ -30026,7 +30003,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chuvantsy) => [
- q(7320),
+ q(7306),
q(0),
],
q(chuvash) => [
@@ -30034,463 +30011,447 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chuwabu) => [
- q(1727),
+ q(1724),
q(0),
],
q(ci gbe) => [
- q(1731),
+ q(1728),
q(0),
],
q(cia-cia) => [
- q(1730),
+ q(1727),
q(0),
],
q(cibak) => [
- q(1757),
+ q(1754),
q(0),
],
q(cicipu) => [
- q(0968),
+ q(0969),
q(0),
],
q(cimbrian) => [
- q(1737),
+ q(1734),
q(0),
],
q(cinda-regi-tiyal) => [
- q(1702),
+ q(1699),
q(0),
],
q(cineni) => [
- q(1734),
+ q(1731),
q(0),
],
q(cinta larga) => [
- q(1738),
+ q(1735),
q(0),
],
q(cisalpine gaulish) => [
- q(7311),
+ q(7297),
q(0),
],
q(cishingini) => [
- q(0891),
+ q(0892),
q(0),
],
q(citak) => [
- q(6826),
+ q(6810),
q(0),
],
q(ciwogai) => [
- q(6478),
+ q(6467),
q(0),
],
q(clallam) => [
- q(1778),
+ q(1775),
q(0),
],
q(classical armenian) => [
- q(7313),
+ q(7299),
q(0),
],
q(classical mandaic) => [
- q(4693),
+ q(4686),
q(0),
],
q(classical mongolian) => [
- q(1786),
+ q(1783),
q(0),
],
q(classical nahuatl) => [
- q(4770),
+ q(4762),
q(0),
],
q(classical nepal bhasa) => [
- q(0320),
+ q(0321),
q(2),
],
q(classical newari) => [
- q(0320),
+ q(0321),
q(0),
],
q(classical quechua) => [
- q(5716),
+ q(5707),
q(0),
],
q(classical syriac) => [
- q(0414),
+ q(0415),
q(0),
],
q(classical tibetan) => [
- q(7318),
+ q(7304),
q(0),
],
q(coahuilteco) => [
- q(7321),
+ q(7307),
q(0),
],
q(coast miwok) => [
- q(1873),
- q(0),
- ],
- q(coastal kadazan) => [
- q(3776),
+ q(1868),
q(0),
],
q(coastal konjo) => [
- q(3380),
+ q(3377),
q(0),
],
q(coatecas altas zapotec) => [
- q(7833),
+ q(7818),
q(0),
],
q(coatepec nahuatl) => [
- q(4739),
+ q(4731),
q(0),
],
q(coatlan mixe) => [
- q(4167),
+ q(4159),
q(0),
],
q(coatlan zapotec) => [
- q(7932),
+ q(7917),
q(0),
],
q(coatzospan mixtec) => [
- q(4320),
+ q(4312),
q(0),
],
q(cocama-cocamilla) => [
- q(1812),
+ q(1809),
q(0),
],
q(cochimi) => [
- q(1817),
+ q(1814),
q(0),
],
q(cocopa) => [
- q(1811),
+ q(1808),
q(0),
],
q(cocos islands malay) => [
- q(1809),
+ q(1806),
q(0),
],
q(coeur d'alene) => [
- q(1847),
+ q(1842),
q(0),
],
q(cofan) => [
- q(1821),
+ q(1818),
q(0),
],
q(cogui) => [
- q(3510),
+ q(3507),
q(0),
],
q(col) => [
- q(3928),
+ q(3919),
q(0),
],
q(colombian sign language) => [
- q(1878),
+ q(1873),
q(0),
],
q(colonia tovar german) => [
- q(2451),
+ q(2449),
q(0),
],
q(colorado) => [
- q(1814),
+ q(1811),
q(0),
],
q(columbia-wenatchi) => [
- q(1819),
+ q(1816),
q(0),
],
q(comaltepec chinantec) => [
- q(1689),
+ q(1686),
q(0),
],
q(comanche) => [
- q(1820),
+ q(1817),
q(0),
],
q(comecrudo) => [
- q(7314),
+ q(7300),
q(0),
],
q(como karim) => [
- q(1713),
+ q(1710),
q(0),
],
q(comox) => [
- q(1822),
+ q(1819),
q(0),
],
q(con) => [
- q(1803),
+ q(1800),
q(0),
],
q(congo swahili) => [
- q(6301),
+ q(6289),
q(0),
],
q(cook islands maori) => [
- q(0356),
+ q(0357),
q(1),
],
q(coong) => [
- q(1797),
+ q(1794),
q(0),
],
q(coos) => [
- q(1887),
+ q(1882),
q(0),
],
q(copainala zoque) => [
- q(7907),
+ q(7892),
q(0),
],
q(copala triqui) => [
- q(6690),
+ q(6674),
q(0),
],
q(coptic) => [
- q(0090),
+ q(0091),
q(0),
],
q(coquille) => [
- q(1823),
+ q(1820),
q(0),
],
q(cori) => [
- q(1864),
+ q(1859),
q(0),
],
q(cornish) => [
- q(0091),
+ q(0092),
q(0),
],
q(corongo ancash quechua) => [
- q(5715),
+ q(5706),
q(0),
],
q(corsican) => [
- q(0092),
+ q(0093),
q(0),
],
q(costa rican sign language) => [
- q(1881),
+ q(1876),
q(0),
],
q(cotabato manobo) => [
- q(4555),
+ q(4548),
q(0),
],
q(cotoname) => [
- q(7315),
+ q(7301),
q(0),
],
q(cowlitz) => [
- q(1827),
- q(0),
- ],
- q(coxima) => [
- q(3521),
- q(0),
- ],
- q(coyaima) => [
- q(1829),
+ q(1824),
q(0),
],
q(coyotepec popoloca) => [
- q(5367),
+ q(5363),
q(0),
],
q(coyutla totonac) => [
- q(6636),
+ q(6621),
q(0),
],
q(cree) => [
- q(0096),
+ q(0097),
q(0),
],
q(creek) => [
- q(0293),
+ q(0294),
q(0),
],
q(creoles and pidgins) => [
- q(0098),
+ q(0099),
q(1),
],
q(creoles and pidgins ) => [
- q(0098),
+ q(0099),
q(0),
],
q(creoles and pidgins, english based) => [
- q(0093),
+ q(0094),
q(0),
],
q(creoles and pidgins, english-based) => [
- q(0093),
+ q(0094),
q(1),
],
q(creoles and pidgins, french-based) => [
- q(0094),
+ q(0095),
q(1),
],
q(creoles and pidgins, french-based ) => [
- q(0094),
+ q(0095),
q(0),
],
q(creoles and pidgins, portuguese-based) => [
- q(0095),
+ q(0096),
q(1),
],
q(creoles and pidgins, portuguese-based ) => [
- q(0095),
+ q(0096),
q(0),
],
q(crimean tatar) => [
- q(0097),
+ q(0098),
q(0),
],
q(crimean turkish) => [
- q(0097),
+ q(0098),
q(1),
],
q(croatia sign language) => [
- q(1880),
+ q(1875),
q(0),
],
q(croatian) => [
- q(0181),
+ q(0182),
q(0),
],
q(cross river mbembe) => [
- q(4238),
+ q(4230),
q(0),
],
q(crow) => [
- q(1856),
+ q(1851),
q(0),
],
q(cruzeno) => [
- q(1865),
+ q(1860),
q(0),
],
q(cua) => [
- q(1903),
+ q(1898),
q(0),
],
q(cuba) => [
- q(1672),
+ q(1669),
q(1),
],
q(cuba sign language) => [
- q(1870),
+ q(1865),
q(0),
],
q(cubeo) => [
- q(1904),
+ q(1899),
q(0),
],
q(cuiba) => [
- q(1908),
+ q(1903),
q(0),
],
q(culina) => [
- q(1911),
+ q(1906),
q(0),
],
q(cumanagoto) => [
- q(1913),
+ q(1907),
q(0),
],
q(cumbric) => [
- q(7308),
- q(0),
- ],
- q(cumeral) => [
- q(1912),
+ q(7294),
q(0),
],
q(cun) => [
- q(1915),
+ q(1909),
q(0),
],
q(cuneiform luwian) => [
- q(7405),
+ q(7390),
q(0),
],
q(cung) => [
- q(1906),
- q(0),
+ q(1901),
+ q(1),
],
q(cupeno) => [
- q(1914),
+ q(1908),
q(0),
],
q(curonian) => [
- q(7319),
+ q(7305),
q(0),
],
q(curripaco) => [
- q(3526),
+ q(3522),
q(0),
],
q(cusco quechua) => [
- q(5699),
+ q(5690),
q(0),
],
q(cushitic languages) => [
- q(0100),
+ q(0101),
q(0),
],
q(cutchi-swahili) => [
- q(1687),
+ q(1684),
q(0),
],
q(cuvok) => [
- q(1919),
+ q(1913),
q(0),
],
q(cuyamecalco mixtec) => [
- q(7525),
+ q(7510),
q(0),
],
q(cuyonon) => [
- q(1932),
+ q(1926),
q(0),
],
q(cwi bwamu) => [
- q(1565),
+ q(1564),
q(0),
],
q(cypriot arabic) => [
- q(0602),
+ q(0603),
q(0),
],
q(czech) => [
- q(0101),
+ q(0102),
q(0),
],
q(czech sign language) => [
- q(1869),
+ q(1864),
q(0),
],
q(da'a kaili) => [
- q(3773),
+ q(3766),
q(0),
],
q(da-hua miao) => [
- q(2780),
+ q(2777),
q(2),
],
q(daai chin) => [
- q(1948),
+ q(1942),
q(0),
],
q(daakaka) => [
@@ -30498,363 +30459,367 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(daantanai') => [
- q(4004),
+ q(3995),
q(0),
],
q(daasanach) => [
- q(2150),
+ q(2144),
+ q(0),
+ ],
+ q(daats'iin) => [
+ q(2157),
q(0),
],
q(daba) => [
- q(1969),
+ q(1963),
q(0),
],
q(dabarre) => [
- q(1970),
+ q(1964),
q(0),
],
q(dabe) => [
- q(1959),
+ q(1953),
q(0),
],
q(dacian) => [
- q(7324),
+ q(7310),
q(0),
],
q(dadi dadi) => [
- q(1978),
+ q(1972),
q(0),
],
q(dadibi) => [
- q(4473),
+ q(4466),
q(0),
],
q(dadiya) => [
- q(1958),
+ q(1952),
q(0),
],
q(daga) => [
- q(2021),
+ q(2015),
q(0),
],
q(dagaari dioula) => [
- q(2007),
+ q(2001),
q(0),
],
q(dagba) => [
- q(2012),
+ q(2006),
q(0),
],
q(dagbani) => [
- q(1942),
+ q(1936),
q(0),
],
q(dagik) => [
- q(1989),
+ q(1983),
q(0),
],
q(dagoman) => [
- q(2014),
+ q(2008),
q(0),
],
q(dahalik) => [
- q(2079),
+ q(2073),
q(0),
],
q(dahalo) => [
- q(1946),
+ q(1940),
q(0),
],
q(daho-doo) => [
- q(1950),
+ q(1944),
q(0),
],
q(dai) => [
- q(2043),
+ q(2037),
q(0),
],
q(dai zhuang) => [
- q(7845),
+ q(7830),
q(0),
],
q(dair) => [
- q(2134),
+ q(2128),
q(0),
],
q(dakka) => [
- q(2074),
+ q(2068),
q(0),
],
q(dakota) => [
- q(0102),
+ q(0103),
q(0),
],
q(dakpakha) => [
- q(2073),
+ q(2067),
q(0),
],
q(dalabon) => [
- q(4844),
+ q(4837),
q(0),
],
q(dalmatian) => [
- q(2080),
+ q(2074),
q(0),
],
q(daloa bete) => [
- q(1131),
+ q(1132),
q(0),
],
q(dama) => [
- q(2090),
+ q(2084),
q(0),
],
q(damakawa) => [
- q(1947),
+ q(1941),
q(0),
],
q(damal) => [
- q(6876),
+ q(6860),
q(0),
],
q(dambi) => [
- q(1939),
+ q(1933),
q(0),
],
q(dameli) => [
- q(2089),
+ q(2083),
q(0),
],
q(dampelas) => [
- q(2093),
+ q(2087),
q(0),
],
q(dan) => [
- q(2104),
+ q(2098),
q(0),
],
q(danaru) => [
- q(2107),
+ q(2101),
q(0),
],
q(danau) => [
- q(2109),
+ q(2103),
q(0),
],
q(dandami maria) => [
- q(1949),
+ q(1943),
q(0),
],
q(dangaleat) => [
- q(1938),
+ q(1932),
q(0),
],
q(dangaura tharu) => [
- q(6504),
+ q(6492),
q(0),
],
q(danish) => [
- q(0103),
+ q(0104),
q(0),
],
q(danish sign language) => [
- q(2152),
+ q(2146),
q(0),
],
q(dano) => [
- q(0898),
+ q(0899),
q(0),
],
q(danu) => [
- q(2110),
+ q(2104),
q(0),
],
q(dao) => [
- q(1955),
+ q(1949),
q(0),
],
q(daonda) => [
- q(2100),
+ q(2094),
q(0),
],
q(dar daju daju) => [
- q(2060),
+ q(2054),
q(0),
],
q(dar fur daju) => [
- q(1945),
+ q(1939),
q(0),
],
q(dar sila daju) => [
- q(1951),
+ q(1945),
q(0),
],
q(darai) => [
- q(2148),
+ q(2142),
q(0),
],
q(darang deng) => [
- q(4294),
+ q(4286),
q(1),
],
q(dargwa) => [
- q(0104),
+ q(0105),
q(0),
],
q(dari) => [
- q(5602),
+ q(5595),
q(0),
],
q(darkinyung) => [
- q(7323),
+ q(7309),
q(0),
],
q(darlong) => [
- q(2081),
+ q(2075),
q(0),
],
q(darmiya) => [
- q(2136),
+ q(2130),
q(0),
],
q(daro-matu melanau) => [
- q(2142),
+ q(2136),
q(0),
],
q(dass) => [
- q(2127),
+ q(2121),
q(0),
],
q(datooga) => [
- q(6407),
+ q(6396),
q(0),
],
q(daungwurrung) => [
- q(2019),
+ q(2013),
q(0),
],
q(daur) => [
- q(2156),
+ q(2150),
q(0),
],
q(davawenyo) => [
- q(1953),
+ q(1947),
q(0),
],
q(daw) => [
- q(3693),
+ q(3686),
q(0),
],
q(dawawa) => [
- q(2197),
+ q(2192),
q(0),
],
q(dawera-daweloor) => [
- q(1988),
+ q(1982),
q(0),
],
q(dawida) => [
- q(1952),
+ q(1946),
q(1),
],
q(dawro) => [
- q(2195),
+ q(2189),
q(0),
],
q(day) => [
- q(1944),
+ q(1938),
q(0),
],
q(dayi) => [
- q(1954),
+ q(1948),
q(0),
],
q(dazaga) => [
- q(2209),
+ q(2205),
q(0),
],
q(deccan) => [
- q(1976),
+ q(1970),
q(0),
],
q(dedua) => [
- q(1990),
+ q(1984),
q(0),
],
q(defaka) => [
- q(0645),
+ q(0646),
q(0),
],
q(defi gbe) => [
- q(2426),
+ q(2424),
q(0),
],
q(deg) => [
- q(4715),
+ q(4708),
q(0),
],
q(degaru) => [
- q(2018),
+ q(2012),
q(0),
],
q(degema) => [
- q(1993),
+ q(1987),
q(0),
],
q(degenan) => [
- q(2008),
+ q(2002),
q(0),
],
q(degexit'an) => [
- q(2970),
+ q(2968),
q(0),
],
q(dehu) => [
- q(2032),
+ q(2026),
q(0),
],
q(dehwari) => [
- q(1994),
+ q(1988),
q(0),
],
q(dek) => [
- q(1996),
+ q(1990),
q(0),
],
q(dela-oenale) => [
- q(5848),
+ q(5837),
q(0),
],
q(delaware) => [
- q(0106),
+ q(0107),
q(0),
],
q(delo) => [
- q(5097),
+ q(5093),
q(0),
],
q(dem) => [
- q(1997),
+ q(1991),
q(0),
],
q(dema) => [
- q(2097),
+ q(2091),
q(0),
],
q(demisa) => [
- q(1995),
+ q(1989),
q(0),
],
q(demta) => [
- q(2098),
+ q(2092),
q(0),
],
q(dendi (benin)) => [
- q(1984),
+ q(1978),
q(0),
],
q(dendi (central african republic)) => [
- q(1999),
+ q(1993),
q(0),
],
q(dene suline) => [
@@ -30862,747 +30827,755 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(dengese) => [
- q(2003),
+ q(1997),
q(0),
],
q(dengka) => [
- q(2105),
+ q(2099),
q(0),
],
q(deni) => [
- q(2112),
+ q(2106),
q(0),
],
q(deno) => [
- q(1957),
+ q(1951),
q(0),
],
q(denya) => [
- q(0809),
+ q(0810),
q(0),
],
q(deori) => [
- q(2000),
+ q(1994),
q(0),
],
q(dera (indonesia)) => [
- q(3204),
+ q(3203),
q(0),
],
q(dera (nigeria)) => [
- q(3480),
+ q(3477),
q(0),
],
q(desano) => [
- q(2001),
+ q(1995),
q(0),
],
q(desiya) => [
- q(2154),
+ q(2148),
q(0),
],
q(dewoin) => [
- q(1991),
+ q(1985),
q(0),
],
q(dezfuli) => [
- q(1992),
+ q(1986),
q(0),
],
q(dghwede) => [
- q(2010),
+ q(2004),
q(0),
],
q(dhaiso) => [
- q(2030),
+ q(2024),
q(0),
],
q(dhalandji) => [
- q(2025),
+ q(2019),
q(0),
],
q(dhangu) => [
- q(2023),
+ q(2017),
+ q(1),
+ ],
+ q(dhangu-djangu) => [
+ q(2017),
q(0),
],
q(dhanki) => [
- q(2027),
+ q(2021),
q(0),
],
q(dhanwar (nepal)) => [
- q(2033),
+ q(2027),
q(0),
],
q(dhao) => [
- q(4830),
+ q(4823),
q(0),
],
q(dhargari) => [
- q(2029),
+ q(2023),
q(0),
],
q(dharuk) => [
- q(7325),
+ q(7311),
q(0),
],
q(dharumbal) => [
- q(7346),
+ q(7333),
q(0),
],
q(dhatki) => [
- q(4350),
+ q(4343),
q(0),
],
q(dhimal) => [
- q(2024),
+ q(2018),
q(0),
],
q(dhivehi) => [
- q(0110),
+ q(0111),
q(1),
],
q(dhodia) => [
- q(2028),
+ q(2022),
q(0),
],
q(dhofari arabic) => [
- q(0607),
+ q(0608),
q(0),
],
q(dholuo) => [
- q(0260),
+ q(0261),
q(1),
],
q(dhudhuroa) => [
- q(1986),
+ q(1980),
q(0),
],
q(dhundari) => [
- q(2022),
+ q(2016),
q(0),
],
q(dhungaloo) => [
- q(2034),
+ q(2028),
q(0),
],
q(dhurga) => [
- q(2031),
+ q(2025),
q(0),
],
q(dhuwal) => [
- q(2178),
+ q(2191),
+ q(0),
+ ],
+ q(dhuwaya) => [
+ q(2193),
q(0),
],
q(dia) => [
- q(2035),
+ q(2029),
q(0),
],
q(dibabawon manobo) => [
- q(4131),
+ q(4123),
q(0),
],
q(dibiyaso) => [
- q(1975),
+ q(1969),
q(0),
],
q(dibo) => [
- q(2047),
+ q(2041),
q(0),
],
q(dibole) => [
- q(1539),
+ q(1538),
q(0),
],
q(dicamay agta) => [
- q(2191),
+ q(2185),
q(0),
],
q(didinga) => [
- q(2038),
+ q(2032),
q(0),
],
q(dido) => [
- q(1985),
+ q(1979),
q(0),
],
q(diebroud) => [
- q(6395),
+ q(6384),
q(1),
],
q(dieri) => [
- q(2039),
+ q(2033),
q(0),
],
q(digaro-mishmi) => [
- q(4294),
+ q(4286),
q(0),
],
q(digo) => [
- q(2040),
+ q(2034),
q(0),
],
q(dii) => [
- q(2185),
+ q(2179),
q(0),
],
q(dijim-bwilim) => [
- q(1711),
+ q(1708),
q(0),
],
q(dilling) => [
- q(2045),
+ q(2039),
q(0),
],
q(dima) => [
- q(3116),
+ q(3115),
q(0),
],
q(dimasa) => [
- q(2051),
+ q(2045),
q(0),
],
q(dimbong) => [
- q(2042),
+ q(2036),
q(0),
],
q(dime) => [
- q(2046),
+ q(2040),
q(0),
],
q(dimili) => [
- q(0486),
+ q(0487),
q(1),
],
q(dimli) => [
- q(0486),
+ q(0487),
q(2),
],
q(dimli (individual language)) => [
- q(2049),
+ q(2043),
q(0),
],
q(dimli (macrolanguage)) => [
- q(0486),
+ q(0487),
q(6),
],
q(dineor) => [
- q(4528),
+ q(4521),
q(1),
],
q(ding) => [
- q(2057),
+ q(2051),
q(0),
],
q(dinka) => [
- q(0109),
+ q(0110),
q(0),
],
q(dirari) => [
- q(2052),
+ q(2046),
q(0),
],
q(dirasha) => [
- q(2463),
+ q(2461),
q(0),
],
q(diri) => [
- q(2194),
+ q(2188),
q(0),
],
q(diriku) => [
- q(2053),
+ q(2047),
q(0),
],
q(dirim) => [
- q(2050),
+ q(2044),
q(0),
],
q(disa) => [
- q(2151),
+ q(2145),
q(0),
],
q(ditammari) => [
- q(6404),
+ q(6393),
q(0),
],
q(ditidaht) => [
- q(2158),
+ q(2152),
q(0),
],
q(diuwe) => [
- q(2056),
+ q(2050),
q(0),
],
q(diuxi-tilantongo mixtec) => [
- q(7510),
+ q(7495),
q(0),
],
q(divehi) => [
- q(0110),
+ q(0111),
q(0),
],
q(dixon reef) => [
- q(2055),
+ q(2049),
q(0),
],
q(dizin) => [
- q(4199),
+ q(4191),
q(0),
],
q(djabwurrung) => [
- q(6547),
+ q(6534),
q(0),
],
q(djadjawurrung) => [
- q(2058),
+ q(2052),
q(0),
],
q(djambarrpuyngu) => [
- q(2070),
+ q(2064),
q(0),
],
q(djamindjung) => [
- q(2061),
+ q(2055),
q(0),
],
q(djangu) => [
- q(2023),
- q(1),
+ q(2017),
+ q(2),
],
q(djangun) => [
- q(2063),
+ q(2057),
q(0),
],
q(djauan) => [
- q(2068),
+ q(2062),
q(0),
],
q(djawi) => [
- q(2072),
+ q(2066),
q(0),
],
q(djeebbana) => [
- q(2065),
+ q(2059),
q(0),
],
q(djimini senoufo) => [
- q(2202),
+ q(2198),
q(0),
],
q(djinang) => [
- q(2064),
+ q(2058),
q(0),
],
q(djinba) => [
- q(2059),
+ q(2053),
q(0),
],
q(djingili) => [
- q(3096),
+ q(3094),
q(0),
],
q(djiwarli) => [
- q(2208),
+ q(2204),
q(0),
],
q(dobel) => [
- q(3681),
+ q(3675),
q(0),
],
q(dobu) => [
- q(2114),
+ q(2108),
q(0),
],
q(doe) => [
- q(2116),
+ q(2110),
q(0),
],
q(doga) => [
- q(2009),
+ q(2003),
q(0),
],
q(doghoro) => [
- q(2020),
+ q(2014),
q(0),
],
q(dogose) => [
- q(2126),
+ q(2120),
q(0),
],
q(dogoso) => [
- q(2016),
+ q(2010),
q(0),
],
q(dogri) => [
- q(0111),
+ q(0112),
q(0),
],
q(dogri (individual language)) => [
- q(2015),
+ q(2009),
q(0),
],
q(dogri (macrolanguage)) => [
- q(0111),
+ q(0112),
q(1),
],
q(dogrib) => [
- q(0108),
+ q(0109),
q(0),
],
q(dogul dom dogon) => [
- q(1961),
+ q(1955),
q(0),
],
q(doka) => [
- q(1962),
+ q(1956),
q(0),
],
q(doko-uyanga) => [
- q(6967),
+ q(6952),
q(0),
],
q(dolgan) => [
- q(2078),
+ q(2072),
q(0),
],
q(dolpo) => [
- q(2137),
+ q(2131),
q(0),
],
q(dom) => [
- q(2113),
+ q(2107),
q(0),
],
q(domaaki) => [
- q(2088),
+ q(2082),
q(0),
],
q(domari) => [
- q(5822),
+ q(5812),
q(0),
],
q(dombe) => [
- q(2128),
+ q(2122),
q(0),
],
q(dominican sign language) => [
- q(2124),
+ q(2118),
q(0),
],
q(dompo) => [
- q(2131),
+ q(2125),
q(0),
],
q(domu) => [
- q(2117),
+ q(2111),
q(0),
],
q(domung) => [
- q(2002),
+ q(1996),
q(0),
],
q(dondo) => [
- q(2119),
+ q(2113),
q(0),
],
q(dong) => [
- q(2118),
+ q(2112),
q(0),
],
q(dongo) => [
- q(2122),
+ q(2116),
q(0),
],
q(dongolawi) => [
- q(2013),
+ q(2007),
q(1),
],
q(dongotono) => [
- q(1979),
+ q(1973),
q(0),
],
q(dongshanba lalo) => [
- q(7651),
+ q(7636),
q(0),
],
q(dongxiang) => [
- q(5929),
+ q(5919),
q(0),
],
q(donno so dogon) => [
- q(1987),
+ q(1981),
q(0),
],
q(doondo) => [
- q(1980),
+ q(1974),
q(0),
],
q(dori'o) => [
- q(2125),
+ q(2119),
q(0),
],
q(dorig) => [
- q(7261),
+ q(7248),
q(1),
],
q(doromu-koki) => [
- q(3550),
+ q(3546),
q(0),
],
q(dororo) => [
- q(2144),
+ q(2138),
q(0),
],
q(dorze) => [
- q(2132),
+ q(2126),
q(0),
],
q(doso) => [
- q(2120),
+ q(2114),
q(0),
],
q(dotyali) => [
- q(2169),
+ q(2164),
q(0),
],
q(doutai) => [
- q(6444),
+ q(6434),
q(0),
],
q(doyayo) => [
- q(2129),
+ q(2123),
q(0),
],
q(dravidian languages) => [
- q(0112),
+ q(0113),
q(0),
],
q(drehu) => [
- q(2032),
+ q(2026),
q(1),
],
q(drents) => [
- q(2146),
+ q(2140),
q(0),
],
q(drubea) => [
- q(2174),
+ q(2169),
q(1),
],
q(drung) => [
- q(2187),
+ q(2181),
q(0),
],
q(duala) => [
- q(0114),
+ q(0115),
q(0),
],
q(duano) => [
- q(2183),
+ q(2177),
q(0),
],
q(duau) => [
- q(2193),
+ q(2187),
q(0),
],
q(dubli) => [
- q(2170),
+ q(2165),
q(0),
],
q(dubu) => [
- q(2094),
+ q(2088),
q(0),
],
q(dugun) => [
- q(4801),
+ q(4794),
q(0),
],
q(duguri) => [
- q(1965),
+ q(1959),
q(0),
],
q(dugwor) => [
- q(2086),
+ q(2080),
q(0),
],
q(duhwa) => [
- q(3208),
+ q(3207),
q(0),
],
q(duke) => [
- q(4926),
+ q(4919),
q(0),
],
q(dulbu) => [
- q(1967),
+ q(1961),
q(0),
],
- q(duli) => [
- q(2192),
+ q(duli-gey) => [
+ q(2186),
q(0),
],
q(duma) => [
- q(2082),
+ q(2076),
q(0),
],
q(dumbea) => [
- q(2174),
+ q(2169),
q(0),
],
q(dumi) => [
- q(2186),
+ q(2180),
q(0),
],
q(dumpas) => [
- q(2095),
+ q(2089),
q(0),
],
q(dumun) => [
- q(2177),
+ q(2172),
q(0),
],
q(duna) => [
- q(2171),
+ q(2166),
q(0),
],
q(dungan) => [
- q(2102),
+ q(2096),
q(0),
],
q(dungmali) => [
- q(5736),
+ q(5727),
q(0),
],
q(dungra bhil) => [
- q(2176),
+ q(2171),
q(0),
],
q(dungu) => [
- q(1973),
+ q(1967),
q(0),
],
q(dupaninan agta) => [
- q(2182),
+ q(2176),
q(0),
],
q(dura) => [
- q(2143),
+ q(2137),
q(0),
],
q(duri) => [
- q(4614),
+ q(4607),
q(0),
],
q(duriankere) => [
- q(1966),
+ q(1960),
q(0),
],
q(duruma) => [
- q(2175),
+ q(2170),
q(0),
],
q(duruwa) => [
- q(5389),
+ q(5385),
q(0),
],
q(dusner) => [
- q(2153),
+ q(2147),
q(0),
],
q(dusun deyah) => [
- q(2181),
+ q(2175),
q(0),
],
q(dusun malang) => [
- q(2184),
+ q(2178),
q(0),
],
q(dusun witu) => [
- q(2189),
+ q(2183),
q(0),
],
q(dutch) => [
- q(0116),
+ q(0117),
q(0),
],
q(dutch sign language) => [
- q(2149),
+ q(2143),
q(0),
],
q(dutch, middle (ca.1050-1350)) => [
- q(0115),
+ q(0116),
q(0),
],
q(dutton world speedwords) => [
- q(2196),
+ q(2190),
q(0),
],
q(duungooma) => [
- q(2190),
+ q(2184),
q(0),
],
q(duupa) => [
- q(1941),
+ q(1935),
q(0),
],
q(duvle) => [
- q(2188),
+ q(2182),
q(0),
],
q(duwai) => [
- q(1968),
+ q(1962),
q(0),
],
q(duwet) => [
- q(2668),
+ q(2665),
q(0),
],
q(duya) => [
- q(3847),
+ q(3838),
q(0),
],
q(dwang) => [
- q(5007),
+ q(5000),
q(0),
],
q(dyaabugay) => [
- q(2206),
+ q(2202),
q(0),
],
q(dyaberdyaber) => [
- q(2199),
+ q(2195),
q(0),
],
q(dyan) => [
- q(2198),
+ q(2194),
q(0),
],
q(dyangadi) => [
- q(2204),
+ q(2200),
q(0),
],
q(dyirbal) => [
- q(1964),
+ q(1958),
q(0),
],
q(dyugun) => [
- q(2200),
+ q(2196),
q(0),
],
q(dyula) => [
- q(0117),
+ q(0118),
q(0),
],
q(dza) => [
- q(3081),
+ q(3079),
q(0),
],
q(dzalakha) => [
- q(2210),
+ q(2206),
q(0),
],
q(dzando) => [
- q(2211),
+ q(2207),
q(0),
],
q(dzao min) => [
@@ -31610,99 +31583,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dzodinka) => [
- q(0605),
+ q(0606),
q(0),
],
q(dzongkha) => [
- q(0118),
+ q(0119),
q(0),
],
q(dzuungoo) => [
- q(2106),
+ q(2100),
q(0),
],
q(e) => [
- q(2221),
+ q(2217),
q(0),
],
q(e'ma buyang) => [
- q(7803),
+ q(7788),
q(0),
],
q(e'napa woromaipu) => [
- q(5369),
+ q(5365),
q(0),
],
q(early tripuri) => [
- q(7522),
+ q(7507),
q(0),
],
q(east ambae) => [
- q(5252),
+ q(5248),
q(0),
],
q(east berawan) => [
- q(7830),
+ q(7815),
q(0),
],
q(east damar) => [
- q(2092),
+ q(2086),
q(0),
],
q(east futuna) => [
- q(2382),
+ q(2380),
q(0),
],
q(east germanic languages) => [
- q(0505),
+ q(0506),
q(0),
],
q(east kewa) => [
- q(3396),
+ q(3393),
q(0),
],
q(east limba) => [
- q(3976),
+ q(3967),
q(0),
],
q(east makian) => [
- q(4366),
+ q(4359),
q(0),
],
q(east masela) => [
- q(7022),
+ q(7007),
q(0),
],
q(east nyala) => [
- q(4948),
+ q(4941),
q(0),
],
q(east slavic languages) => [
- q(0534),
+ q(0535),
q(0),
],
q(east tarangan) => [
- q(6692),
+ q(6676),
q(0),
],
q(east yugur) => [
- q(7781),
+ q(7766),
q(0),
],
q(eastern abnaki) => [
- q(0552),
+ q(0553),
q(0),
],
q(eastern acipa) => [
- q(0593),
+ q(0594),
q(0),
],
q(eastern apurimac quechua) => [
- q(5702),
+ q(5693),
q(0),
],
q(eastern arrernte) => [
- q(0633),
+ q(0634),
q(0),
],
q(eastern balochi) => [
@@ -31710,11 +31683,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern bolivian guarani) => [
- q(2650),
+ q(2648),
q(0),
],
q(eastern bontok) => [
- q(2214),
+ q(2210),
q(0),
],
q(eastern bru) => [
@@ -31722,167 +31695,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern canadian inuktitut) => [
- q(2939),
+ q(2936),
q(0),
],
q(eastern cham) => [
- q(1748),
+ q(1745),
q(0),
],
q(eastern durango nahuatl) => [
- q(1014),
+ q(1015),
q(0),
],
q(eastern egyptian bedawi arabic) => [
- q(0959),
+ q(0960),
q(0),
],
q(eastern frisian) => [
- q(0141),
+ q(0142),
q(0),
],
q(eastern gorkha tamang) => [
- q(6479),
- q(0),
- ],
- q(eastern gurung) => [
- q(2498),
+ q(6468),
q(0),
],
q(eastern highland chatino) => [
- q(1783),
+ q(1780),
q(0),
],
q(eastern highland otomi) => [
- q(5323),
+ q(5318),
q(0),
],
q(eastern hongshuihe zhuang) => [
- q(7838),
+ q(7823),
q(0),
],
q(eastern huasteca nahuatl) => [
- q(4864),
+ q(4857),
q(0),
],
q(eastern huishui hmong) => [
- q(2781),
+ q(2778),
q(0),
],
q(eastern huishui miao) => [
- q(2781),
+ q(2778),
q(1),
],
q(eastern karaboro) => [
- q(7477),
+ q(7462),
q(0),
],
q(eastern karnic) => [
- q(2232),
+ q(2228),
q(0),
],
q(eastern katu) => [
- q(3641),
+ q(3635),
q(0),
],
q(eastern kayah) => [
- q(2242),
+ q(2238),
q(0),
],
q(eastern keres) => [
- q(3261),
+ q(3260),
q(0),
],
q(eastern khumi chin) => [
- q(1708),
+ q(1705),
q(0),
],
q(eastern krahn) => [
- q(3562),
+ q(3558),
q(0),
],
q(eastern lalu) => [
- q(7659),
+ q(7644),
q(0),
],
q(eastern lawa) => [
- q(4102),
+ q(4094),
q(0),
],
q(eastern magar) => [
- q(4265),
+ q(4257),
q(0),
],
q(eastern malayo-polynesian languages) => [
- q(0521),
+ q(0522),
q(0),
],
q(eastern maninkakan) => [
- q(2255),
+ q(2251),
q(0),
],
q(eastern mari) => [
- q(4291),
+ q(4283),
q(0),
],
q(eastern maroon creole) => [
- q(2066),
+ q(2060),
q(0),
],
q(eastern meohang) => [
- q(2253),
+ q(2249),
q(0),
],
q(eastern mnong) => [
- q(4420),
+ q(4413),
q(0),
],
q(eastern muria) => [
- q(2260),
+ q(2256),
q(0),
],
q(eastern ngad'a) => [
- q(4807),
+ q(4800),
q(0),
],
q(eastern nisu) => [
- q(5025),
+ q(5018),
q(0),
],
q(eastern ojibwa) => [
- q(5220),
+ q(5215),
q(0),
],
q(eastern oromo) => [
- q(2714),
+ q(2711),
q(0),
],
q(eastern parbate kham) => [
- q(3360),
+ q(3357),
q(0),
],
q(eastern penan) => [
- q(5422),
+ q(5418),
q(0),
],
q(eastern pomo) => [
- q(5405),
+ q(5401),
q(0),
],
q(eastern qiandong miao) => [
- q(2791),
+ q(2788),
q(0),
],
q(eastern subanen) => [
- q(5987),
+ q(5978),
q(0),
],
q(eastern sudanic languages) => [
- q(0524),
+ q(0525),
q(0),
],
q(eastern tamang) => [
- q(6365),
+ q(6354),
q(0),
],
q(eastern tawbuid) => [
@@ -31890,55 +31859,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern xiangxi miao) => [
- q(4593),
+ q(4586),
q(0),
],
q(eastern xwla gbe) => [
- q(2441),
+ q(2439),
q(0),
],
q(eastern yiddish) => [
- q(7617),
+ q(7602),
q(0),
],
q(ebira) => [
- q(2920),
+ q(2917),
q(0),
],
q(eblan) => [
- q(7328),
+ q(7315),
q(0),
],
q(ebrie) => [
- q(2216),
+ q(2212),
q(0),
],
q(ebughu) => [
- q(2213),
+ q(2209),
q(0),
],
q(ecuadorian sign language) => [
- q(2219),
+ q(2215),
q(0),
],
q(ede cabe) => [
- q(1667),
+ q(1664),
q(0),
],
q(ede ica) => [
- q(2898),
+ q(2895),
q(0),
],
q(ede idaca) => [
- q(2905),
+ q(2902),
q(0),
],
q(ede ije) => [
- q(2936),
+ q(2933),
q(0),
],
q(edera awyu) => [
- q(0984),
+ q(0985),
q(0),
],
q(edo) => [
@@ -31946,15 +31915,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(edolo) => [
- q(2308),
+ q(2305),
q(0),
],
q(edomite) => [
- q(7326),
+ q(7312),
q(0),
],
q(edopi) => [
- q(1960),
+ q(1954),
q(0),
],
q(edwas) => [
@@ -31962,235 +31931,239 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(efai) => [
- q(2222),
+ q(2218),
q(0),
],
q(efe) => [
- q(2223),
+ q(2219),
q(0),
],
q(efik) => [
- q(0119),
+ q(0120),
q(0),
],
q(efutop) => [
- q(5207),
+ q(5202),
q(0),
],
q(ega) => [
- q(2224),
+ q(2220),
q(0),
],
q(eggon) => [
- q(2226),
+ q(2222),
q(0),
],
q(egypt sign language) => [
- q(2295),
+ q(2292),
q(0),
],
q(egyptian (ancient)) => [
- q(0120),
+ q(0121),
q(0),
],
q(egyptian arabic) => [
- q(0884),
+ q(0885),
q(0),
],
q(egyptian languages) => [
- q(0501),
+ q(0502),
q(0),
],
q(ehueun) => [
- q(2227),
+ q(2223),
q(0),
],
q(eipomek) => [
- q(2228),
+ q(2224),
q(0),
],
q(eitiep) => [
- q(2229),
+ q(2225),
q(0),
],
q(ejagham) => [
- q(2311),
+ q(2308),
q(0),
],
q(ejamat) => [
- q(2231),
+ q(2227),
q(0),
],
q(ekajuk) => [
- q(0121),
+ q(0122),
q(0),
],
q(ekari) => [
- q(2234),
+ q(2230),
q(0),
],
q(ekegusii) => [
- q(2665),
+ q(2662),
q(1),
],
q(eki) => [
- q(2235),
+ q(2231),
q(0),
],
q(ekit) => [
- q(2233),
+ q(2229),
q(0),
],
q(ekpeye) => [
- q(2240),
+ q(2236),
q(0),
],
q(el alto zapotec) => [
- q(7929),
+ q(7914),
q(0),
],
q(el hugeirat) => [
- q(2244),
+ q(2240),
q(0),
],
q(el molo) => [
- q(2248),
+ q(2244),
q(0),
],
q(el nayar cora) => [
- q(1855),
+ q(1850),
q(0),
],
q(elamite) => [
- q(0122),
+ q(0123),
q(0),
],
q(eleme) => [
- q(2247),
+ q(2243),
q(0),
],
q(elepi) => [
- q(2243),
+ q(2239),
+ q(0),
+ ],
+ q(elfdalian) => [
+ q(5334),
q(0),
],
q(elip) => [
- q(2238),
+ q(2234),
q(0),
],
q(elkei) => [
- q(2246),
+ q(2242),
q(0),
],
q(elotepec zapotec) => [
- q(7953),
+ q(7938),
q(0),
],
q(eloyi) => [
- q(0646),
+ q(0647),
q(0),
],
q(elseng) => [
- q(4511),
+ q(4504),
q(0),
],
q(elu) => [
- q(2249),
+ q(2245),
q(0),
],
q(elymian) => [
- q(7406),
+ q(7391),
q(0),
],
q(emae) => [
- q(4411),
+ q(4404),
q(0),
],
q(emai-iuleha-ora) => [
- q(2250),
+ q(2246),
q(0),
],
q(eman) => [
- q(2257),
+ q(2253),
q(0),
],
q(embaloh) => [
- q(2251),
+ q(2247),
q(0),
],
q(embera-baudo) => [
- q(1091),
+ q(1092),
q(0),
],
q(embera-catio) => [
- q(1897),
+ q(1892),
q(0),
],
q(embera-chami) => [
- q(1787),
+ q(1784),
q(0),
],
q(embera-tado) => [
- q(6430),
+ q(6419),
q(0),
],
q(embu) => [
- q(2217),
+ q(2213),
q(0),
],
q(emem) => [
- q(2274),
+ q(2270),
q(1),
],
q(emerillon) => [
- q(2252),
+ q(2248),
q(0),
],
q(emilian) => [
- q(2225),
+ q(2221),
q(0),
],
q(emplawas) => [
- q(2261),
+ q(2257),
q(0),
],
q(emumu) => [
- q(2274),
+ q(2270),
q(0),
],
q(en) => [
- q(2266),
+ q(2262),
q(0),
],
q(enawene-nawe) => [
- q(6917),
+ q(6902),
q(0),
],
q(ende) => [
- q(2267),
+ q(2263),
q(0),
],
q(enga) => [
- q(2273),
+ q(2269),
q(0),
],
q(engdewu) => [
- q(4851),
+ q(4844),
q(0),
],
q(engenni) => [
- q(2271),
+ q(2267),
q(0),
],
q(enggano) => [
- q(2272),
+ q(2268),
q(0),
],
q(english) => [
- q(0123),
+ q(0124),
q(0),
],
q(english, middle (1100-1500)) => [
- q(0124),
+ q(0125),
q(0),
],
q(english, old (ca.450-1100)) => [
@@ -32198,643 +32171,651 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(english-based creoles and pidgins) => [
- q(0093),
+ q(0094),
q(2),
],
q(enlhet) => [
- q(2270),
+ q(2266),
q(0),
],
q(enrekang) => [
- q(5636),
+ q(5628),
q(0),
],
q(enu) => [
- q(2275),
+ q(2271),
q(0),
],
q(enwan (akwa ibom state)) => [
- q(2277),
+ q(2273),
q(0),
],
q(enwan (edu state)) => [
- q(2276),
+ q(2272),
q(0),
],
q(enxet) => [
- q(2278),
+ q(2274),
q(0),
],
q(enya) => [
- q(2488),
+ q(2486),
q(0),
],
q(epena) => [
- q(6055),
+ q(6046),
q(0),
],
q(epi-olmec) => [
- q(7333),
+ q(7320),
q(0),
],
q(epie) => [
- q(2280),
+ q(2276),
q(0),
],
q(epigraphic mayan) => [
- q(2263),
+ q(2259),
q(0),
],
q(eravallan) => [
- q(2281),
+ q(2277),
q(0),
],
q(erave) => [
- q(3401),
+ q(3398),
q(0),
],
q(ere) => [
- q(6804),
+ q(6788),
q(0),
],
q(eritai) => [
- q(2289),
+ q(2285),
q(0),
],
q(erokwanas) => [
- q(2290),
+ q(2286),
q(0),
],
q(erre) => [
- q(2287),
+ q(2283),
q(0),
],
q(erromintxela) => [
- q(2262),
+ q(2258),
q(0),
],
q(ersu) => [
- q(2288),
+ q(2284),
q(0),
],
q(eruwa) => [
- q(2283),
+ q(2279),
q(0),
],
q(erzya) => [
- q(0297),
+ q(0298),
q(0),
],
q(esan) => [
- q(3001),
+ q(2999),
q(0),
],
q(ese) => [
- q(4169),
+ q(4161),
q(0),
],
q(ese ejja) => [
- q(2291),
+ q(2287),
q(0),
],
q(eshtehardi) => [
- q(2292),
+ q(2289),
q(0),
],
q(esimbi) => [
- q(0669),
+ q(0670),
q(0),
],
q(eskayan) => [
- q(2302),
+ q(2299),
q(0),
],
q(eskimo-aleut languages) => [
- q(0502),
+ q(0503),
q(0),
],
q(esperanto) => [
- q(0125),
+ q(0126),
q(0),
],
q(esselen) => [
- q(2299),
+ q(2296),
q(0),
],
q(estado de mexico otomi) => [
- q(5327),
+ q(5322),
q(0),
],
q(estonian) => [
- q(0126),
+ q(0127),
q(0),
],
q(estonian sign language) => [
- q(2298),
+ q(2295),
q(0),
],
q(esuma) => [
- q(2296),
+ q(2293),
q(0),
],
q(etchemin) => [
- q(2304),
+ q(2301),
q(0),
],
q(etebi) => [
- q(2303),
+ q(2300),
q(0),
],
q(eten) => [
- q(2312),
+ q(2309),
q(0),
],
q(eteocretan) => [
- q(2218),
+ q(2214),
q(0),
],
q(eteocypriot) => [
- q(2220),
+ q(2216),
q(0),
],
q(ethiopian sign language) => [
- q(2305),
+ q(2302),
q(0),
],
q(etkywan) => [
- q(2899),
+ q(2896),
q(0),
],
q(eton (cameroon)) => [
- q(2307),
+ q(2304),
q(0),
],
q(eton (vanuatu)) => [
- q(2306),
+ q(2303),
q(0),
],
q(etruscan) => [
- q(2310),
+ q(2307),
q(0),
],
q(etulo) => [
- q(6957),
+ q(6942),
q(0),
],
q(evant) => [
- q(1638),
+ q(1637),
q(0),
],
q(even) => [
- q(2314),
+ q(2311),
q(0),
],
q(evenki) => [
- q(2316),
+ q(2313),
q(0),
],
q(eviya) => [
- q(2485),
+ q(2483),
q(0),
],
q(ewage-notu) => [
- q(5027),
+ q(5020),
q(0),
],
q(ewe) => [
- q(0127),
+ q(0128),
q(0),
],
q(ewondo) => [
- q(0128),
+ q(0129),
q(0),
],
q(extremaduran) => [
- q(2317),
+ q(2314),
q(0),
],
q(eyak) => [
- q(2318),
+ q(2315),
q(0),
],
q(ezaa) => [
- q(2320),
+ q(2317),
q(0),
],
q(fa d'ambu) => [
- q(2323),
+ q(2320),
q(0),
],
q(fagani) => [
- q(2325),
+ q(2322),
q(0),
],
q(fagauvea) => [
- q(6963),
+ q(6948),
q(1),
],
q(faire atta) => [
- q(1020),
+ q(1021),
q(0),
],
q(faita) => [
- q(2329),
+ q(2326),
q(0),
],
q(faiwol) => [
- q(2328),
+ q(2325),
q(0),
],
q(fala) => [
- q(2336),
+ q(2333),
q(0),
],
q(falam chin) => [
- q(1714),
+ q(1711),
q(0),
],
q(fali) => [
- q(2355),
+ q(2352),
q(0),
],
q(faliscan) => [
- q(7338),
+ q(7325),
q(0),
],
q(fam) => [
- q(2332),
+ q(2329),
q(0),
],
q(fanagalo) => [
- q(2362),
+ q(2360),
q(0),
],
q(fanamaket) => [
q(1245),
q(0),
],
+ q(fanbak) => [
+ q(2359),
+ q(0),
+ ],
q(fang) => [
- q(0129),
+ q(0130),
q(0),
],
q(fang (cameroon)) => [
- q(2330),
+ q(2327),
q(0),
],
q(fang (equatorial guinea)) => [
- q(0129),
+ q(0130),
q(1),
],
q(fania) => [
- q(2363),
+ q(2361),
q(0),
],
q(fanti) => [
- q(0131),
+ q(0132),
q(0),
],
q(far western muria) => [
- q(2361),
+ q(2358),
q(0),
],
q(farefare) => [
- q(2658),
+ q(2656),
q(0),
],
q(faroese) => [
- q(0130),
+ q(0131),
q(0),
],
q(fas) => [
- q(2370),
+ q(2368),
q(0),
],
q(fasu) => [
- q(2322),
+ q(2319),
q(0),
],
q(fataleka) => [
- q(2334),
+ q(2331),
q(0),
],
q(fataluku) => [
- q(1981),
+ q(1975),
q(0),
],
q(fayu) => [
- q(2335),
+ q(2332),
q(0),
],
q(fe'fe') => [
- q(2360),
+ q(2357),
q(0),
],
q(fedan) => [
- q(5400),
+ q(5396),
q(1),
],
q(fembe) => [
- q(0663),
+ q(0664),
q(0),
],
q(fernando po creole english) => [
- q(2369),
+ q(2367),
q(0),
],
q(feroge) => [
- q(2341),
+ q(2338),
q(0),
],
q(fiji hindi) => [
- q(2756),
+ q(2753),
q(0),
],
q(fijian) => [
- q(0132),
+ q(0133),
q(0),
],
q(filipino) => [
- q(0133),
+ q(0134),
q(0),
],
q(filomena mata-coahuitlan totonac) => [
- q(6578),
+ q(6565),
q(0),
],
q(finland-swedish sign language) => [
- q(2379),
+ q(2377),
q(0),
],
q(finlandssvenskt teckensprak) => [
- q(2379),
+ q(2377),
q(1),
],
q(finnish) => [
- q(0134),
+ q(0135),
q(0),
],
q(finnish sign language) => [
- q(2377),
+ q(2375),
q(0),
],
q(finno-ugrian languages) => [
- q(0135),
+ q(0136),
q(0),
],
q(finongan) => [
- q(2326),
+ q(2323),
q(0),
],
q(fipa) => [
- q(2347),
+ q(2344),
q(0),
],
q(firan) => [
- q(2348),
+ q(2345),
q(0),
],
q(fiwaga) => [
- q(2350),
+ q(2347),
q(0),
],
q(flaaitaal) => [
- q(2359),
+ q(2356),
q(0),
],
q(flemish) => [
- q(0116),
+ q(0117),
q(1),
],
q(flemish sign language) => [
- q(6996),
+ q(6981),
q(1),
],
q(flinders island) => [
- q(2357),
+ q(2354),
q(0),
],
q(foau) => [
- q(2354),
+ q(2351),
q(0),
],
q(foi) => [
- q(2365),
+ q(2363),
q(0),
],
q(foia foia) => [
- q(2342),
+ q(2339),
q(0),
],
q(folopa) => [
- q(5579),
+ q(5573),
q(0),
],
q(foma) => [
- q(2366),
+ q(2364),
q(0),
],
q(fon) => [
- q(0136),
+ q(0137),
q(0),
],
q(fongoro) => [
- q(2344),
+ q(2341),
q(0),
],
q(foodo) => [
- q(2364),
+ q(2362),
q(0),
],
q(forak) => [
- q(2375),
+ q(2373),
q(0),
],
q(fordata) => [
- q(2372),
+ q(2370),
q(0),
],
q(fore) => [
- q(2367),
+ q(2365),
q(0),
],
q(forest enets) => [
- q(2268),
+ q(2264),
q(0),
],
q(formosan languages) => [
- q(0504),
+ q(0505),
q(0),
],
q(fortsenal) => [
- q(2376),
+ q(2374),
q(0),
],
q(francisco leon zoque) => [
- q(7913),
+ q(7898),
q(0),
],
q(francoprovencal) => [
- q(2374),
+ q(2372),
q(1),
],
q(frankish) => [
- q(2373),
+ q(2371),
q(0),
],
q(french) => [
- q(0137),
+ q(0138),
q(0),
],
q(french belgian sign language) => [
- q(5986),
+ q(5977),
q(1),
],
q(french sign language) => [
- q(2378),
+ q(2376),
q(0),
],
q(french, middle (ca.1400-1600)) => [
- q(0138),
+ q(0139),
q(0),
],
q(french, old (842-ca.1400)) => [
- q(0139),
+ q(0140),
q(0),
],
q(french-based creoles and pidgins) => [
- q(0094),
+ q(0095),
q(2),
],
q(friulian) => [
- q(0144),
+ q(0145),
q(0),
],
q(fulah) => [
- q(0143),
+ q(0144),
q(0),
],
q(fuliiru) => [
- q(2358),
+ q(2355),
q(0),
],
q(fulnio) => [
- q(2389),
+ q(2387),
q(0),
],
q(fum) => [
- q(2388),
+ q(2386),
q(0),
],
q(fungwa) => [
- q(6890),
+ q(6875),
q(0),
],
q(fur) => [
- q(2395),
+ q(2393),
q(0),
],
q(furu) => [
- q(2392),
+ q(2390),
q(0),
],
q(futuna-aniwa) => [
- q(2391),
+ q(2389),
q(0),
],
q(fuyug) => [
- q(2394),
+ q(2392),
q(0),
],
q(fwai) => [
- q(2396),
+ q(2394),
q(0),
],
q(fwe) => [
- q(2397),
+ q(2395),
q(0),
],
q(fyam) => [
- q(5672),
+ q(5663),
q(0),
],
q(fyer) => [
- q(2346),
+ q(2343),
q(0),
],
q(ga) => [
- q(0145),
+ q(0146),
q(0),
],
q(ga'anda) => [
- q(2609),
+ q(2607),
q(0),
],
q(ga'dang) => [
- q(2458),
+ q(2456),
q(0),
],
q(gaa) => [
- q(6736),
+ q(6720),
q(0),
],
q(gaam) => [
- q(6388),
+ q(6377),
q(0),
],
q(gabi-gabi) => [
- q(2440),
+ q(2438),
+ q(0),
+ ],
+ q(gabogbo) => [
+ q(2514),
q(0),
],
q(gabri) => [
- q(2398),
+ q(2396),
q(0),
],
q(gabrielino-fernandeno) => [
- q(7342),
+ q(7329),
q(0),
],
q(gadang) => [
- q(2462),
+ q(2460),
q(0),
],
q(gaddang) => [
- q(2400),
+ q(2398),
q(0),
],
q(gaddi) => [
- q(2429),
+ q(2427),
q(0),
],
q(gade) => [
- q(2476),
+ q(2474),
q(0),
],
q(gade lohar) => [
- q(2452),
+ q(2450),
q(0),
],
q(gadjerawang) => [
- q(2459),
+ q(2457),
q(0),
],
q(gadsup) => [
- q(2406),
+ q(2404),
q(0),
],
q(gaelic) => [
- q(0153),
+ q(0154),
q(0),
],
q(gafat) => [
- q(2490),
+ q(2488),
q(0),
],
q(gagadu) => [
- q(2438),
+ q(2436),
q(0),
],
q(gagauz) => [
- q(2403),
+ q(2401),
q(0),
],
q(gagnoa bete) => [
@@ -32842,43 +32823,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gagu) => [
- q(2501),
+ q(2497),
q(0),
],
q(gahri) => [
- q(1156),
+ q(1157),
q(0),
],
q(gaikundi) => [
- q(2424),
+ q(2422),
q(0),
],
q(gail) => [
- q(2516),
+ q(2512),
q(0),
],
q(gaina) => [
- q(2449),
+ q(2447),
q(0),
],
q(gal) => [
- q(2412),
+ q(2410),
q(0),
],
q(galambu) => [
- q(2550),
+ q(2548),
q(0),
],
q(galatian) => [
- q(7339),
+ q(7326),
q(0),
],
q(galela) => [
- q(2427),
+ q(2425),
q(0),
],
q(galeya) => [
- q(2414),
+ q(2412),
q(0),
],
q(galibi carib) => [
@@ -32886,55 +32867,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(galice) => [
- q(2446),
+ q(2444),
q(0),
],
q(galician) => [
- q(0155),
+ q(0156),
q(0),
],
q(galindan) => [
- q(7345),
+ q(7332),
q(0),
],
q(gallurese sardinian) => [
- q(5954),
+ q(5945),
q(0),
],
q(galo) => [
- q(0612),
+ q(0613),
q(0),
],
q(galolen) => [
- q(2408),
+ q(2406),
q(0),
],
q(gamale kham) => [
- q(3317),
+ q(3314),
q(0),
],
q(gambera) => [
- q(2555),
+ q(2553),
q(0),
],
q(gambian wolof) => [
- q(7201),
+ q(7187),
q(0),
],
q(gamilaraay) => [
- q(3432),
+ q(3429),
q(0),
],
q(gamit) => [
- q(2430),
+ q(2428),
q(0),
],
q(gamkonora) => [
- q(2407),
+ q(2405),
q(0),
],
q(gamo) => [
- q(2563),
+ q(2561),
q(0),
],
q(gamo-ningi) => [
@@ -32942,343 +32923,339 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gan chinese) => [
- q(2410),
+ q(2408),
q(0),
],
q(gana) => [
- q(2575),
+ q(2573),
q(1),
],
q(ganang) => [
- q(2571),
+ q(2569),
q(0),
],
q(ganda) => [
- q(0257),
+ q(0258),
q(0),
],
q(gandhari) => [
- q(5427),
+ q(5423),
q(0),
],
q(gane) => [
- q(2709),
+ q(2706),
q(0),
],
q(ganggalida) => [
- q(2445),
+ q(2443),
q(0),
],
q(ganglau) => [
- q(2497),
+ q(2495),
q(0),
],
q(gangte) => [
- q(2568),
+ q(2566),
q(0),
],
q(gangulu) => [
- q(2576),
+ q(2574),
q(0),
],
q(gants) => [
- q(2411),
+ q(2409),
q(0),
],
q(ganza) => [
- q(2707),
+ q(2704),
q(0),
],
q(ganzi) => [
- q(2584),
+ q(2582),
q(0),
],
q(gao) => [
- q(2491),
+ q(2489),
q(0),
],
q(gapapaiwa) => [
- q(5663),
+ q(5654),
q(0),
],
q(garhwali) => [
- q(2431),
+ q(2429),
q(0),
],
q(garifuna) => [
- q(1640),
+ q(1639),
q(0),
],
q(garig-ilgar) => [
- q(2954),
+ q(2951),
q(0),
],
q(garingbal) => [
- q(7344),
+ q(7331),
q(0),
],
q(garlali) => [
- q(2549),
+ q(2547),
q(0),
],
q(garo) => [
- q(2625),
+ q(2623),
q(0),
],
q(garre) => [
- q(2487),
+ q(2485),
q(0),
],
q(garrwa) => [
- q(7219),
+ q(7205),
q(0),
],
q(garus) => [
- q(2696),
+ q(2693),
q(0),
],
q(garza) => [
- q(7347),
+ q(7334),
q(0),
],
q(gata') => [
- q(2413),
+ q(2411),
q(0),
],
q(gavak) => [
- q(2084),
+ q(2078),
q(0),
],
q(gavar) => [
- q(2601),
+ q(2599),
q(0),
],
q(gaviao do jiparana) => [
- q(2674),
+ q(2671),
q(0),
],
q(gawar-bati) => [
- q(2690),
+ q(2687),
q(0),
],
q(gawwada) => [
- q(2682),
+ q(2679),
q(0),
],
q(gayil) => [
- q(2702),
+ q(2699),
q(0),
],
q(gayo) => [
- q(0146),
+ q(0147),
q(0),
],
q(gazi) => [
- q(2708),
+ q(2705),
q(0),
],
q(gbagyi) => [
- q(2436),
+ q(2434),
q(0),
],
q(gban) => [
- q(2501),
+ q(2497),
q(1),
],
q(gbanu) => [
- q(2439),
+ q(2437),
q(0),
],
q(gbanziri) => [
- q(2425),
+ q(2423),
q(0),
],
q(gbari) => [
- q(2442),
+ q(2440),
q(0),
],
q(gbaya) => [
- q(0147),
+ q(0148),
q(0),
],
q(gbaya (central african republic)) => [
- q(0147),
+ q(0148),
q(1),
],
q(gbaya (sudan)) => [
- q(3587),
+ q(3582),
q(0),
],
q(gbaya-bossangoa) => [
- q(2434),
+ q(2432),
q(0),
],
q(gbaya-bozoum) => [
- q(2435),
+ q(2433),
q(0),
],
q(gbaya-mbodomo) => [
- q(2560),
+ q(2558),
q(0),
],
q(gbayi) => [
- q(2700),
+ q(2697),
q(0),
],
q(gbesi gbe) => [
- q(2437),
+ q(2435),
q(0),
],
q(gbii) => [
- q(2492),
+ q(2490),
q(0),
],
q(gbin) => [
- q(7340),
+ q(7327),
q(0),
],
q(gbiri-niragu) => [
- q(2617),
+ q(2615),
q(0),
],
q(gboloo grebo) => [
- q(2475),
+ q(2473),
q(0),
],
q(ge) => [
- q(2786),
+ q(2783),
q(0),
],
q(geba karen) => [
- q(3683),
+ q(3677),
q(0),
],
q(gebe) => [
- q(2479),
+ q(2477),
q(0),
],
q(gedaged) => [
- q(2455),
+ q(2453),
q(0),
],
q(gedeo) => [
- q(2145),
+ q(2139),
q(0),
],
q(geez) => [
- q(0151),
+ q(0152),
q(0),
],
q(geji) => [
- q(2532),
+ q(2529),
q(0),
],
q(gejia) => [
- q(2786),
+ q(2783),
q(1),
],
q(geko karen) => [
- q(2507),
+ q(2503),
q(0),
],
q(gela) => [
- q(4949),
+ q(4942),
q(0),
],
q(geman deng) => [
- q(4656),
+ q(4649),
q(1),
],
q(geme) => [
- q(2483),
+ q(2481),
q(0),
],
q(gen) => [
- q(2480),
+ q(2478),
q(0),
],
q(gende) => [
- q(2402),
+ q(2400),
q(0),
],
q(gengle) => [
- q(2477),
+ q(2475),
q(0),
],
q(georgian) => [
- q(0149),
+ q(0150),
q(0),
],
q(gepo) => [
- q(7637),
+ q(7622),
q(0),
],
q(gera) => [
- q(2486),
+ q(2484),
q(0),
],
q(gergiko) => [
- q(4455),
+ q(4448),
q(1),
],
q(german) => [
- q(0150),
+ q(0151),
q(0),
],
q(german sign language) => [
- q(2633),
+ q(2631),
q(0),
],
q(german, low) => [
- q(0306),
+ q(0307),
q(2),
],
q(german, middle high (ca.1050-1500)) => [
- q(0157),
+ q(0158),
q(0),
],
q(german, old high (ca.750-1050)) => [
- q(0158),
+ q(0159),
q(0),
],
q(germanic languages) => [
- q(0148),
+ q(0149),
q(0),
],
q(geruma) => [
- q(2473),
+ q(2471),
q(0),
],
q(geser-gorom) => [
- q(2484),
- q(0),
- ],
- q(gey) => [
- q(2662),
+ q(2482),
q(0),
],
q(ghadames) => [
- q(2503),
+ q(2499),
q(0),
],
q(ghanaian pidgin english) => [
- q(2607),
+ q(2605),
q(0),
],
q(ghanaian sign language) => [
- q(2632),
+ q(2630),
q(0),
],
q(ghandruk sign language) => [
- q(2469),
+ q(2467),
q(0),
],
q(ghanongga) => [
- q(2509),
+ q(2505),
q(0),
],
q(ghari) => [
- q(2618),
+ q(2616),
q(0),
],
q(ghayavi) => [
@@ -33286,1819 +33263,1831 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gheg albanian) => [
- q(0755),
+ q(0756),
q(0),
],
q(ghera) => [
- q(2511),
+ q(2507),
q(0),
],
q(ghodoberi) => [
- q(2466),
+ q(2464),
q(0),
],
q(ghomala') => [
- q(1047),
+ q(1048),
q(0),
],
q(ghomara) => [
- q(2510),
+ q(2506),
q(0),
],
q(ghotuo) => [
- q(0538),
+ q(0539),
q(0),
],
q(ghulfan) => [
- q(2508),
+ q(2504),
q(0),
],
q(giangan) => [
- q(1168),
+ q(1169),
q(0),
],
q(gibanawa) => [
- q(2515),
+ q(2511),
q(0),
],
q(gichuka) => [
- q(1907),
+ q(1902),
q(1),
],
q(gidar) => [
- q(2517),
+ q(2513),
q(0),
],
q(giiwo) => [
- q(3421),
+ q(3418),
q(0),
],
q(gikuyu) => [
- q(0224),
+ q(0225),
q(1),
],
q(gikyode) => [
- q(0586),
+ q(0587),
q(0),
],
q(gilaki) => [
- q(2548),
+ q(2546),
q(0),
],
q(gilbertese) => [
- q(0152),
+ q(0153),
q(0),
],
q(gilima) => [
- q(2529),
+ q(2526),
q(0),
],
q(gilyak) => [
- q(4900),
+ q(4893),
q(0),
],
q(gimi (eastern highlands)) => [
- q(2520),
+ q(2517),
q(0),
],
q(gimi (west new britain)) => [
- q(2522),
+ q(2519),
q(0),
],
q(gimme) => [
- q(3469),
+ q(3466),
q(0),
],
q(gimnime) => [
- q(2561),
+ q(2559),
q(0),
],
q(ginuman) => [
- q(2577),
+ q(2575),
q(0),
],
q(ginyanga) => [
- q(0997),
+ q(0998),
q(0),
],
q(girawa) => [
- q(1055),
+ q(1056),
q(0),
],
q(giryama) => [
- q(5160),
+ q(5155),
q(0),
],
q(githabul) => [
- q(2519),
+ q(2516),
q(0),
],
q(gitonga) => [
- q(6640),
+ q(6624),
q(0),
],
q(gitua) => [
- q(2500),
+ q(2496),
q(0),
],
q(gitxsan) => [
- q(2526),
+ q(2523),
q(0),
],
q(giyug) => [
- q(2530),
+ q(2527),
q(0),
],
q(gizrra) => [
- q(6639),
+ q(6623),
q(0),
],
q(glaro-twabo) => [
- q(2551),
+ q(2549),
q(0),
],
q(glavda) => [
- q(2553),
+ q(2551),
q(0),
],
q(glio-oubi) => [
- q(5335),
+ q(5330),
q(0),
],
q(gnau) => [
- q(2582),
+ q(2580),
q(0),
],
q(goan konkani) => [
- q(2596),
+ q(2594),
q(0),
],
q(goaria) => [
- q(2518),
+ q(2515),
q(0),
],
q(gobasi) => [
- q(2592),
+ q(2590),
q(0),
],
q(gobu) => [
- q(2603),
+ q(2601),
q(0),
],
q(godie) => [
- q(2588),
+ q(2586),
q(0),
],
q(godwari) => [
- q(2472),
+ q(2470),
q(0),
],
q(goemai) => [
- q(0799),
+ q(0800),
q(0),
],
q(gofa) => [
- q(2590),
+ q(2588),
q(0),
],
q(gogo) => [
- q(2591),
+ q(2589),
q(0),
],
q(gogodala) => [
- q(2502),
+ q(2498),
q(0),
],
q(gokana) => [
- q(2539),
+ q(2537),
q(0),
],
q(gola) => [
- q(2595),
+ q(2593),
q(0),
],
q(golin) => [
- q(2669),
+ q(2666),
q(0),
],
q(golpa) => [
- q(3932),
+ q(3923),
q(0),
],
q(gondi) => [
- q(0159),
+ q(0160),
q(0),
],
q(gone dau) => [
- q(2597),
+ q(2595),
q(0),
],
q(gongduk) => [
- q(2589),
+ q(2587),
q(0),
],
q(gonja) => [
- q(2535),
+ q(2532),
q(0),
],
q(gooniyandi) => [
- q(2574),
+ q(2572),
q(0),
],
q(gor) => [
- q(2612),
+ q(2610),
q(0),
],
q(gorakor) => [
- q(2587),
+ q(2585),
q(0),
],
q(gorap) => [
- q(2599),
+ q(2597),
q(0),
],
q(goreng) => [
- q(7343),
+ q(7330),
q(0),
],
q(gorontalo) => [
- q(0160),
+ q(0161),
q(0),
],
q(gorovu) => [
- q(2622),
+ q(2620),
q(0),
],
q(gorowa) => [
- q(2602),
+ q(2600),
q(0),
],
q(gothic) => [
- q(0161),
+ q(0162),
q(0),
],
q(goundo) => [
- q(2604),
+ q(2602),
q(0),
],
q(gourmanchema) => [
- q(2664),
+ q(2661),
q(0),
],
q(gowlan) => [
- q(2593),
+ q(2591),
q(0),
],
q(gowli) => [
- q(2594),
+ q(2592),
q(0),
],
q(gowro) => [
- q(2684),
+ q(2681),
q(0),
],
q(gozarkhani) => [
- q(2605),
+ q(2603),
q(0),
],
q(grangali) => [
- q(4950),
+ q(4943),
q(0),
],
q(grass koiari) => [
- q(3193),
+ q(3192),
q(0),
],
q(grebo) => [
- q(0162),
+ q(0163),
q(0),
],
q(greek) => [
- q(0164),
+ q(0165),
q(1),
],
q(greek languages) => [
- q(0508),
+ q(0509),
q(0),
],
q(greek sign language) => [
- q(2639),
+ q(2637),
q(0),
],
q(greek, ancient (to 1453)) => [
- q(0163),
+ q(0164),
q(0),
],
q(greek, modern (1453-)) => [
- q(0164),
+ q(0165),
q(0),
],
q(green gelao) => [
- q(2523),
+ q(2520),
q(0),
],
q(greenlandic) => [
- q(0211),
+ q(0212),
q(1),
],
q(grenadian creole english) => [
- q(2448),
+ q(2446),
q(0),
],
q(gresi) => [
- q(2624),
+ q(2622),
q(0),
],
q(groma) => [
- q(2621),
+ q(2619),
q(0),
],
q(gronings) => [
- q(2600),
+ q(2598),
q(0),
],
q(gros ventre) => [
- q(0925),
+ q(0926),
q(0),
],
q(gua) => [
- q(2693),
+ q(2690),
q(0),
],
q(guadeloupean creole french) => [
- q(2447),
+ q(2445),
q(0),
],
q(guahibo) => [
- q(2649),
+ q(2647),
q(0),
],
q(guaja) => [
- q(2670),
+ q(2667),
q(0),
],
q(guajajara) => [
- q(2643),
+ q(2641),
q(0),
],
q(guambiano) => [
- q(2653),
+ q(2651),
q(0),
],
q(guana (brazil)) => [
- q(2611),
+ q(2609),
q(0),
],
q(guana (paraguay)) => [
- q(2666),
+ q(2663),
q(0),
],
q(guanano) => [
- q(2667),
+ q(2664),
q(0),
],
q(guanche) => [
- q(2569),
+ q(2567),
q(0),
],
q(guanyinqiao) => [
- q(3102),
+ q(3100),
q(0),
],
q(guarani) => [
- q(0165),
+ q(0166),
q(0),
],
q(guarayu) => [
- q(2705),
+ q(2702),
q(0),
],
q(guarequena) => [
- q(2401),
+ q(2399),
q(0),
],
q(guatemalan sign language) => [
- q(2635),
+ q(2633),
q(0),
],
q(guato) => [
- q(2640),
+ q(2638),
q(0),
],
q(guayabero) => [
- q(2655),
+ q(2653),
q(0),
],
q(gudang) => [
- q(7341),
+ q(7328),
q(0),
],
q(gudanji) => [
- q(4909),
+ q(4902),
q(0),
],
q(gude) => [
- q(2456),
+ q(2454),
q(0),
],
q(gudu) => [
- q(2471),
+ q(2469),
q(0),
],
q(guduf-gava) => [
- q(2457),
+ q(2455),
q(0),
],
+ q(guebie) => [
+ q(2514),
+ q(1),
+ ],
q(guernesiais) => [
- q(5053),
+ q(5048),
q(1),
],
q(guerrero amuzgo) => [
- q(0784),
+ q(0785),
q(0),
],
q(guerrero nahuatl) => [
- q(4854),
+ q(4847),
q(0),
],
q(guevea de humboldt zapotec) => [
- q(7920),
+ q(7905),
q(0),
],
q(gugadj) => [
- q(2493),
+ q(2491),
q(0),
],
q(gugu badhun) => [
- q(2454),
+ q(2452),
q(0),
],
q(gugu warra) => [
- q(7229),
+ q(7215),
q(0),
],
q(gugubera) => [
- q(3418),
+ q(3415),
q(0),
],
q(guguyimidjir) => [
- q(3427),
+ q(3424),
q(0),
],
q(guhu-samane) => [
- q(2512),
+ q(2508),
q(0),
],
q(guianese creole french) => [
- q(2450),
+ q(2448),
q(0),
],
q(guibei zhuang) => [
- q(7840),
+ q(7825),
q(0),
],
q(guiberoua bete) => [
- q(1129),
+ q(1130),
q(0),
],
q(guibian zhuang) => [
- q(7842),
+ q(7827),
q(0),
],
q(guila zapotec) => [
- q(7962),
+ q(7947),
q(0),
],
q(guinea kpelle) => [
- q(2541),
+ q(2539),
q(0),
],
q(guinean sign language) => [
- q(2659),
+ q(2657),
q(0),
],
q(guiqiong) => [
- q(2610),
+ q(2608),
q(0),
],
q(gujarati) => [
- q(0167),
+ q(0168),
q(0),
],
q(gujari) => [
- q(2536),
+ q(2534),
q(0),
],
q(gula (central african republic)) => [
- q(3221),
+ q(3220),
q(0),
],
q(gula (chad)) => [
- q(2552),
+ q(2550),
q(0),
],
q(gula iro) => [
- q(2547),
+ q(2545),
q(0),
],
q(gula'alaa) => [
- q(2556),
+ q(2554),
q(0),
],
q(gulay) => [
- q(2671),
+ q(2668),
q(0),
],
q(gule) => [
- q(2554),
+ q(2552),
q(0),
],
q(gulf arabic) => [
- q(0639),
+ q(0640),
q(0),
],
q(guliguli) => [
- q(2546),
+ q(2544),
q(0),
],
q(gumalu) => [
- q(2562),
+ q(2560),
q(0),
],
q(gumatj) => [
- q(2578),
+ q(2576),
q(0),
],
q(gumawana) => [
- q(2677),
+ q(2674),
q(0),
],
q(gumuz) => [
- q(2651),
+ q(2649),
q(0),
],
q(gun) => [
- q(2663),
+ q(2660),
q(0),
],
q(gundi) => [
- q(2460),
+ q(2458),
q(0),
],
q(gunditjmara) => [
- q(2534),
+ q(2531),
q(0),
],
q(gundungurra) => [
- q(7478),
+ q(7463),
q(0),
],
q(gungabula) => [
- q(2699),
+ q(2696),
q(0),
],
q(gungu) => [
- q(5862),
+ q(5851),
q(0),
],
q(guntai) => [
- q(2581),
+ q(2579),
q(0),
],
q(gunwinggu) => [
- q(2656),
+ q(2654),
q(0),
],
q(gunya) => [
- q(2706),
+ q(2703),
q(0),
],
q(gupa-abawa) => [
- q(2606),
+ q(2604),
q(0),
],
q(gupapuyngu) => [
- q(2647),
+ q(2645),
q(0),
],
q(guragone) => [
- q(2494),
+ q(2492),
q(0),
],
q(guramalum) => [
- q(2631),
+ q(2629),
q(0),
],
q(gurani) => [
- q(2712),
+ q(2709),
q(0),
],
q(gurdjar) => [
- q(2461),
+ q(2459),
q(0),
],
q(gureng gureng) => [
- q(2580),
+ q(2578),
q(0),
],
q(gurgula) => [
- q(2495),
+ q(2493),
q(0),
],
q(guriaso) => [
- q(2629),
+ q(2627),
+ q(0),
+ ],
+ q(gurindji kriol) => [
+ q(2533),
q(0),
],
q(gurinji) => [
- q(2646),
+ q(2644),
q(0),
],
q(gurmana) => [
- q(2672),
+ q(2669),
q(0),
],
q(guro) => [
- q(2585),
+ q(2583),
+ q(0),
+ ],
+ q(gurung) => [
+ q(2673),
q(0),
],
q(guruntum-mbaaru) => [
- q(2615),
+ q(2613),
q(0),
],
q(gusan) => [
- q(2636),
- q(0),
+ q(2634),
+ q(1),
],
q(gusii) => [
- q(2665),
+ q(2662),
q(0),
],
q(gusilay) => [
- q(2634),
+ q(2632),
q(0),
],
q(guwa) => [
- q(7349),
+ q(7336),
q(0),
],
q(guwamu) => [
- q(2691),
+ q(2688),
q(0),
],
q(guwinmal) => [
- q(7346),
+ q(7333),
q(1),
],
q(guya) => [
- q(2537),
+ q(2535),
q(0),
],
q(guyanese creole english) => [
- q(2704),
+ q(2701),
q(0),
],
q(guyani) => [
- q(2678),
+ q(2675),
q(0),
],
q(gvoko) => [
- q(4852),
+ q(4845),
q(0),
],
q(gwa) => [
- q(2680),
+ q(2677),
q(0),
],
q(gwahatike) => [
- q(1943),
+ q(1937),
q(0),
],
q(gwak) => [
- q(3087),
+ q(3085),
q(0),
],
q(gwamhi-wuri) => [
- q(1161),
+ q(1162),
q(0),
],
q(gwandara) => [
- q(2688),
+ q(2685),
q(0),
],
q(gweda) => [
- q(2628),
+ q(2626),
q(0),
],
q(gweno) => [
- q(2683),
+ q(2680),
q(0),
],
q(gwere) => [
- q(2689),
+ q(2686),
q(0),
],
q(gwi) => [
- q(2686),
+ q(2683),
q(1),
],
q(gwich'in) => [
- q(0168),
+ q(0169),
q(0),
],
q(gyele) => [
- q(2701),
+ q(2698),
q(0),
],
q(gyem) => [
- q(2698),
+ q(2695),
q(0),
],
q(ha) => [
- q(2725),
+ q(2722),
q(0),
],
q(habu) => [
- q(2736),
+ q(2733),
q(0),
],
q(hadiyya) => [
- q(2741),
+ q(2738),
q(0),
],
q(hadothi) => [
- q(2817),
+ q(2814),
q(0),
],
q(hadrami) => [
- q(7352),
+ q(7339),
q(0),
],
q(hadrami arabic) => [
- q(0998),
+ q(0999),
q(0),
],
q(hadza) => [
- q(2849),
+ q(2846),
q(0),
],
q(haeke) => [
- q(0628),
+ q(0629),
q(0),
],
q(hahon) => [
- q(2717),
+ q(2714),
q(0),
],
q(hai//om) => [
- q(2748),
+ q(2745),
q(0),
],
q(haida) => [
- q(0169),
+ q(0170),
q(0),
],
q(haigwai) => [
- q(2749),
+ q(2746),
q(0),
],
q(haiom) => [
- q(2748),
+ q(2745),
q(1),
],
q(haiphong sign language) => [
- q(2715),
+ q(2712),
q(0),
],
q(haisla) => [
- q(2727),
+ q(2724),
q(0),
],
q(haitian) => [
- q(0170),
+ q(0171),
q(0),
],
q(haitian creole) => [
- q(0170),
+ q(0171),
q(1),
],
q(haitian vodoun culture language) => [
- q(2875),
+ q(2872),
q(0),
],
q(haji) => [
- q(2766),
+ q(2763),
q(0),
],
q(hajong) => [
- q(2718),
+ q(2715),
q(0),
],
q(haka chin) => [
- q(1799),
+ q(1796),
+ q(1),
+ ],
+ q(hakha chin) => [
+ q(1796),
q(0),
],
q(hakka chinese) => [
- q(2719),
+ q(2716),
q(0),
],
q(hako) => [
- q(2723),
+ q(2720),
q(0),
],
q(halang) => [
- q(2720),
+ q(2717),
q(0),
],
q(halang doan) => [
- q(2773),
+ q(2770),
q(0),
],
q(halbi) => [
- q(2772),
+ q(2769),
q(0),
],
q(halh mongolian) => [
- q(3341),
+ q(3338),
q(0),
],
q(halia) => [
- q(2771),
+ q(2768),
q(0),
],
q(halkomelem) => [
- q(2866),
+ q(2863),
q(0),
],
q(hamap) => [
- q(2795),
+ q(2792),
q(0),
],
q(hamba) => [
- q(2732),
+ q(2729),
q(0),
],
q(hamea) => [
- q(1740),
+ q(1737),
q(1),
],
q(hamer-banna) => [
- q(0770),
+ q(0771),
q(0),
],
q(hamtai) => [
- q(2794),
+ q(2791),
q(0),
],
q(han) => [
- q(2710),
+ q(2707),
q(0),
],
q(hanga) => [
- q(2716),
+ q(2713),
q(0),
],
q(hanga hundi) => [
- q(7209),
+ q(7195),
q(0),
],
q(hangaza) => [
- q(2722),
+ q(2719),
q(0),
],
q(hani) => [
- q(2804),
+ q(2801),
q(0),
],
q(hano) => [
- q(3987),
+ q(3978),
q(0),
],
q(hanoi sign language) => [
- q(2711),
+ q(2708),
q(0),
],
q(hanunoo) => [
- q(2806),
+ q(2803),
q(0),
],
q(harami) => [
- q(7350),
+ q(7337),
q(0),
],
q(harari) => [
- q(2726),
+ q(2723),
q(0),
],
q(harijan kinnauri) => [
- q(3392),
+ q(3389),
q(0),
],
q(haroi) => [
- q(2836),
+ q(2833),
q(0),
],
q(haroti) => [
- q(2817),
+ q(2814),
q(1),
],
q(harsusi) => [
- q(2846),
+ q(2843),
q(0),
],
q(haruai) => [
- q(6590),
+ q(6577),
q(0),
],
q(haruku) => [
- q(2834),
+ q(2831),
q(0),
],
q(haryanvi) => [
- q(1163),
+ q(1164),
q(0),
],
q(harzani) => [
- q(2842),
+ q(2839),
q(0),
],
q(hasha) => [
- q(7604),
+ q(7589),
q(0),
],
q(hassaniyya) => [
- q(4223),
+ q(4215),
q(0),
],
q(hatam) => [
- q(2713),
+ q(2710),
q(0),
],
q(hattic) => [
- q(7355),
+ q(7342),
q(0),
],
q(hausa) => [
- q(0171),
+ q(0172),
q(0),
],
q(hausa sign language) => [
- q(2844),
+ q(2841),
q(0),
],
q(havasupai-walapai-yavapai) => [
- q(7767),
+ q(7752),
q(0),
],
q(haveke) => [
- q(2877),
+ q(2874),
q(0),
],
q(havu) => [
- q(2728),
+ q(2725),
q(0),
],
q(hawai'i creole english) => [
- q(2881),
+ q(2878),
q(0),
],
q(hawai'i pidgin) => [
- q(2881),
+ q(2878),
q(1),
],
q(hawai'i pidgin sign language) => [
- q(2830),
+ q(2827),
q(1),
],
q(hawai'i sign language (hsl)) => [
- q(2830),
+ q(2827),
q(0),
],
q(hawaiian) => [
- q(0172),
+ q(0173),
q(0),
],
q(haya) => [
- q(2730),
+ q(2727),
q(0),
],
q(hazaragi) => [
- q(2731),
+ q(2728),
q(0),
],
q(hdi) => [
- q(7329),
+ q(7316),
q(0),
],
q(hebrew) => [
- q(0173),
+ q(0174),
q(0),
],
q(hehe) => [
- q(2745),
+ q(2742),
q(0),
],
q(heiban) => [
- q(2734),
+ q(2731),
q(0),
],
q(heiltsuk) => [
- q(2746),
+ q(2743),
q(0),
],
q(helambu sherpa) => [
- q(5936),
+ q(5926),
q(0),
],
q(helong) => [
- q(2744),
+ q(2741),
q(0),
],
q(hema) => [
- q(4902),
+ q(4895),
q(0),
],
q(hemba) => [
- q(2747),
+ q(2744),
q(0),
],
q(herde) => [
- q(2743),
+ q(2740),
q(0),
],
q(herero) => [
- q(0174),
+ q(0175),
q(0),
],
q(hermit) => [
- q(3961),
+ q(3952),
q(0),
],
q(hernican) => [
- q(7354),
+ q(7341),
q(0),
],
q(hertevin) => [
- q(2838),
+ q(2835),
q(0),
],
q(heung kong sau yue) => [
- q(2770),
+ q(2767),
q(1),
],
q(hewa) => [
- q(2721),
+ q(2718),
q(0),
],
q(heyo) => [
- q(0941),
+ q(0942),
q(0),
],
q(hiberno-scottish gaelic) => [
- q(2504),
+ q(2500),
q(0),
],
q(hibito) => [
- q(2754),
+ q(2751),
q(0),
],
q(hidatsa) => [
- q(2755),
+ q(2752),
q(0),
],
q(hieroglyphic luwian) => [
- q(2776),
+ q(2773),
q(0),
],
q(higaonon) => [
- q(4128),
+ q(4120),
q(0),
],
q(highland konjo) => [
- q(3388),
+ q(3385),
q(0),
],
q(highland oaxaca chontal) => [
- q(1720),
+ q(1717),
q(0),
],
q(highland popoluca) => [
- q(5560),
+ q(5555),
q(0),
],
q(highland puebla nahuatl) => [
- q(1021),
+ q(1022),
q(0),
],
q(highland totonac) => [
- q(6649),
+ q(6633),
q(0),
],
q(hijazi arabic) => [
- q(0600),
+ q(0601),
q(0),
],
q(hijuk) => [
- q(2760),
+ q(2757),
q(0),
],
q(hiligaynon) => [
- q(0175),
+ q(0176),
q(0),
],
q(himachali languages) => [
- q(0176),
+ q(0177),
q(0),
],
q(himarima) => [
- q(2763),
+ q(2760),
q(0),
],
q(hindi) => [
- q(0177),
+ q(0178),
q(0),
],
q(hinduri) => [
- q(2759),
+ q(2756),
q(0),
],
q(hinukh) => [
- q(2521),
+ q(2518),
q(0),
],
q(hiri motu) => [
- q(0180),
+ q(0181),
q(0),
],
q(hittite) => [
- q(0178),
+ q(0179),
q(0),
],
q(hitu) => [
- q(2850),
+ q(2847),
q(0),
],
q(hiw) => [
- q(2764),
+ q(2761),
q(0),
],
q(hixkaryana) => [
- q(2765),
+ q(2762),
q(0),
],
q(hlai) => [
- q(3912),
+ q(3903),
q(0),
],
q(hlepho phowa) => [
- q(7644),
+ q(7629),
q(0),
],
q(hlersu) => [
- q(2774),
+ q(2771),
q(0),
],
q(hmar) => [
- q(2792),
+ q(2789),
q(0),
],
q(hmong) => [
- q(0179),
+ q(0180),
q(0),
],
q(hmong daw) => [
- q(4643),
+ q(4636),
q(0),
],
q(hmong do) => [
- q(2796),
+ q(2793),
q(0),
],
q(hmong don) => [
- q(2782),
+ q(2779),
q(0),
],
q(hmong njua) => [
- q(2805),
+ q(2802),
q(0),
],
q(hmong shua) => [
- q(2799),
+ q(2796),
q(0),
],
q(hmong-mien languages) => [
- q(0509),
+ q(0510),
q(0),
],
q(hmwaveke) => [
- q(4515),
+ q(4508),
q(0),
],
q(ho) => [
- q(2812),
+ q(2809),
q(0),
],
q(ho chi minh city sign language) => [
- q(2823),
+ q(2820),
q(0),
],
q(ho-chunk) => [
- q(7138),
+ q(7124),
q(0),
],
q(hoava) => [
- q(2810),
+ q(2807),
q(0),
],
q(hobyot) => [
- q(2815),
+ q(2812),
q(0),
],
q(hoia hoia) => [
- q(2750),
+ q(2747),
q(0),
],
q(hokan languages) => [
- q(0510),
+ q(0511),
q(0),
],
q(holikachuk) => [
- q(2816),
+ q(2813),
q(0),
],
q(holiya) => [
- q(2827),
+ q(2824),
q(0),
],
q(holma) => [
- q(2813),
+ q(2810),
q(0),
],
q(holoholo) => [
- q(2820),
+ q(2817),
q(0),
],
q(holu) => [
- q(2818),
+ q(2815),
q(0),
],
q(homa) => [
- q(2819),
+ q(2816),
q(0),
],
q(honduras sign language) => [
- q(2740),
+ q(2737),
q(0),
],
q(hone) => [
- q(3151),
+ q(3150),
q(0),
],
q(hong kong sign language) => [
- q(2770),
+ q(2767),
q(0),
],
q(honi) => [
- q(2826),
+ q(2823),
q(0),
],
q(hopi) => [
- q(2821),
+ q(2818),
q(0),
],
q(horned miao) => [
- q(2835),
+ q(2832),
q(0),
],
q(horo) => [
- q(2822),
+ q(2819),
q(0),
],
q(horom) => [
- q(2814),
+ q(2811),
q(0),
],
q(horpa) => [
- q(2286),
+ q(2282),
q(0),
],
q(hote) => [
- q(2824),
+ q(2821),
q(0),
],
q(hoti) => [
- q(2847),
+ q(2844),
q(0),
],
q(hovongan) => [
- q(2825),
+ q(2822),
q(0),
],
q(hoyahoya) => [
- q(2752),
+ q(2749),
q(0),
],
q(hozo) => [
- q(2828),
+ q(2825),
q(0),
],
q(hpon) => [
- q(2829),
+ q(2826),
q(0),
],
q(hrangkhol) => [
- q(2831),
+ q(2828),
q(0),
],
q(hre) => [
- q(2833),
+ q(2830),
q(0),
],
q(hruso) => [
- q(2839),
+ q(2836),
q(0),
],
q(hu) => [
- q(2864),
+ q(2861),
q(0),
],
q(hua) => [
- q(2853),
+ q(2850),
q(1),
],
q(huachipaeri) => [
- q(2857),
+ q(2854),
q(0),
],
q(huallaga huanuco quechua) => [
- q(5680),
+ q(5671),
q(0),
],
q(huamalies-dos de mayo huanuco quechua) => [
- q(5703),
+ q(5694),
q(0),
],
q(huambisa) => [
- q(2852),
+ q(2849),
q(0),
],
q(huarijio) => [
- q(6981),
+ q(6966),
q(0),
],
q(huastec) => [
- q(2867),
+ q(2864),
q(0),
],
q(huaulu) => [
- q(2854),
+ q(2851),
q(0),
],
q(huautla mazatec) => [
- q(4123),
+ q(4115),
q(0),
],
q(huaxcaleca nahuatl) => [
- q(4874),
+ q(4867),
q(0),
],
q(huaylas ancash quechua) => [
- q(5717),
+ q(5708),
q(0),
],
q(huaylla wanca quechua) => [
- q(5712),
+ q(5703),
q(0),
],
q(huba) => [
- q(2733),
+ q(2730),
q(0),
],
q(huehuetla tepehua) => [
- q(6454),
+ q(6443),
q(0),
],
q(huichol) => [
- q(2738),
+ q(2735),
q(0),
],
q(huilliche) => [
- q(2858),
+ q(2855),
q(0),
],
q(huitepec mixtec) => [
- q(4665),
+ q(4658),
q(0),
],
q(huizhou chinese) => [
- q(1933),
+ q(1927),
q(0),
],
q(hukumina) => [
- q(2871),
+ q(2868),
q(0),
],
q(hula) => [
- q(2862),
+ q(2859),
q(0),
],
q(hulaula) => [
- q(2873),
+ q(2870),
q(0),
],
q(huli) => [
- q(2859),
+ q(2856),
q(0),
],
q(hulung) => [
- q(2861),
+ q(2858),
q(0),
],
q(humburi senni songhay) => [
- q(2778),
+ q(2775),
q(0),
],
q(humene) => [
- q(2856),
+ q(2853),
q(0),
],
q(humla) => [
- q(2868),
+ q(2865),
q(0),
],
q(hun-saare) => [
- q(2172),
+ q(2167),
q(0),
],
q(hunde) => [
- q(2768),
+ q(2765),
q(0),
],
q(hung) => [
- q(2809),
+ q(2806),
q(0),
],
q(hungana) => [
- q(2863),
+ q(2860),
q(0),
],
q(hungarian) => [
- q(0183),
+ q(0184),
q(0),
],
q(hungarian sign language) => [
- q(2843),
+ q(2840),
q(0),
],
q(hungworo) => [
- q(4735),
+ q(4727),
q(1),
],
q(hunjara-kaina ke) => [
- q(2769),
+ q(2766),
q(0),
],
q(hunnic) => [
- q(7351),
+ q(7338),
q(0),
],
q(hunsrik) => [
- q(2841),
+ q(2838),
q(0),
],
q(hunzib) => [
- q(2874),
+ q(2871),
q(0),
],
q(hupa) => [
- q(0184),
+ q(0185),
q(0),
],
q(hupde) => [
- q(3158),
+ q(3157),
q(0),
],
q(hupla) => [
- q(2724),
+ q(2721),
q(0),
],
q(hurrian) => [
- q(7356),
+ q(7343),
q(0),
],
q(hutterisch) => [
- q(2478),
+ q(2476),
q(1),
],
q(hutterite german) => [
- q(2478),
+ q(2476),
q(0),
],
q(hwana) => [
- q(2882),
+ q(2879),
q(0),
],
q(hya) => [
- q(2883),
+ q(2880),
q(0),
],
q(hyam) => [
- q(3041),
+ q(3040),
q(0),
],
q(i'saka) => [
- q(3602),
+ q(3597),
q(1),
],
q(i-wak) => [
- q(3028),
+ q(3027),
q(0),
],
q(iaai) => [
- q(2884),
+ q(2881),
q(0),
],
q(iamalele) => [
- q(7696),
- q(0),
- ],
- q(iapama) => [
- q(2886),
+ q(7681),
q(0),
],
q(iatmul) => [
- q(2885),
+ q(2882),
q(0),
],
q(iau) => [
- q(6606),
+ q(6592),
q(0),
],
q(ibali teke) => [
- q(6459),
+ q(6448),
q(0),
],
q(ibaloi) => [
- q(2892),
+ q(2889),
q(0),
],
q(iban) => [
- q(0185),
+ q(0186),
q(0),
],
q(ibanag) => [
- q(2891),
+ q(2887),
q(0),
],
q(ibani) => [
- q(2897),
+ q(2894),
q(0),
],
q(ibatan) => [
- q(3026),
+ q(3025),
q(0),
],
q(iberian) => [
- q(7358),
+ q(7345),
q(0),
],
q(ibibio) => [
- q(2888),
+ q(2884),
q(0),
],
q(ibino) => [
- q(2894),
+ q(2891),
q(0),
],
q(ibu) => [
- q(2896),
+ q(2893),
q(0),
],
q(ibuoro) => [
- q(2895),
+ q(2892),
q(0),
],
q(icelandic) => [
- q(0187),
+ q(0188),
q(0),
],
q(icelandic sign language) => [
- q(2900),
+ q(2897),
q(0),
],
q(iceve-maci) => [
- q(1117),
+ q(1118),
q(0),
],
q(ida'an) => [
- q(1963),
+ q(1957),
q(0),
],
q(idakho-isukha-tiriki) => [
- q(2902),
+ q(2899),
q(0),
],
q(idate) => [
- q(2910),
+ q(2907),
q(0),
],
q(idere) => [
- q(2906),
+ q(2903),
q(0),
],
q(idesa) => [
- q(2909),
+ q(2906),
q(0),
],
q(idi) => [
- q(2907),
+ q(2904),
q(0),
],
q(ido) => [
- q(0188),
+ q(0189),
q(0),
],
q(idoma) => [
- q(2911),
+ q(2908),
q(0),
],
q(idon) => [
- q(2904),
+ q(2901),
q(0),
],
q(idu-mishmi) => [
- q(1776),
+ q(1773),
q(0),
],
q(iduna) => [
- q(7005),
+ q(6990),
q(0),
],
q(ife) => [
- q(2914),
+ q(2911),
q(0),
],
q(ifo) => [
- q(2915),
+ q(2912),
q(0),
],
q(igala) => [
- q(2923),
+ q(2920),
q(0),
],
q(igana) => [
- q(2922),
+ q(2919),
q(0),
],
q(igbo) => [
- q(0186),
+ q(0187),
q(0),
],
q(igede) => [
- q(2921),
+ q(2918),
q(0),
],
q(ignaciano) => [
- q(2925),
+ q(2922),
q(0),
],
q(igo) => [
- q(0683),
+ q(0684),
q(0),
],
q(iguta) => [
- q(4733),
+ q(4725),
q(0),
],
q(igwe) => [
- q(2928),
+ q(2925),
q(0),
],
q(iha) => [
- q(2931),
+ q(2928),
q(0),
],
q(iha based pidgin) => [
- q(2929),
+ q(2926),
q(0),
],
q(ihievbe) => [
- q(2930),
+ q(2927),
q(0),
],
q(ija-zuba) => [
- q(7007),
+ q(6992),
q(0),
],
q(ijo languages) => [
- q(0190),
+ q(0191),
q(0),
],
q(ik) => [
- q(2950),
+ q(2947),
q(0),
],
q(ika) => [
- q(2941),
+ q(2938),
q(0),
],
q(ikaranggal) => [
- q(2945),
+ q(2942),
q(0),
],
q(ikizu) => [
- q(2951),
+ q(2948),
q(0),
],
q(iko) => [
- q(2940),
+ q(2937),
q(0),
],
q(ikobi) => [
- q(4203),
+ q(4195),
q(0),
],
q(ikoma-nata-isenye) => [
- q(5093),
+ q(5089),
q(0),
],
q(ikpeng) => [
- q(6818),
+ q(6802),
q(0),
],
q(ikpeshi) => [
- q(2944),
+ q(2941),
q(0),
],
q(ikposo) => [
- q(3537),
+ q(3533),
q(0),
],
q(iku-gora-ankwa) => [
- q(2948),
+ q(2945),
q(0),
],
q(ikulu) => [
- q(2942),
+ q(2939),
q(0),
],
q(ikwere) => [
- q(2949),
+ q(2946),
q(0),
],
q(ikwo) => [
- q(2986),
+ q(2984),
q(0),
],
q(ila) => [
- q(2953),
+ q(2950),
q(0),
],
q(ile ape) => [
- q(2952),
+ q(2949),
q(0),
],
q(ili turki) => [
- q(2955),
+ q(2952),
q(0),
],
q(ili'uun) => [
- q(2959),
+ q(2957),
q(0),
],
q(ilianen manobo) => [
- q(4135),
+ q(4127),
q(0),
],
q(illyrian) => [
- q(7360),
+ q(7347),
q(0),
],
q(iloko) => [
- q(0193),
+ q(0194),
q(0),
],
q(ilongot) => [
- q(2956),
+ q(2953),
q(0),
],
q(ilue) => [
- q(2960),
+ q(2958),
q(0),
],
q(ilwana) => [
- q(4376),
+ q(4369),
q(0),
],
q(imbabura highland quichua) => [
- q(5704),
+ q(5695),
q(0),
],
q(imbongu) => [
- q(2965),
+ q(2963),
q(0),
],
q(imonda) => [
- q(2964),
+ q(2962),
q(0),
],
q(imperial aramaic (700-300 bce)) => [
@@ -35106,1447 +35095,1455 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(imroing) => [
- q(2966),
+ q(2964),
q(0),
],
q(inabaknon) => [
- q(0581),
+ q(0582),
q(0),
],
q(inapang) => [
- q(4713),
+ q(4706),
q(0),
],
q(inapari) => [
- q(2976),
+ q(2974),
q(0),
],
q(inari sami) => [
- q(0391),
+ q(0392),
q(0),
],
q(indian sign language) => [
- q(2977),
+ q(2975),
q(0),
],
q(indic languages) => [
- q(0195),
+ q(0196),
q(0),
],
q(indo-european languages) => [
- q(0197),
+ q(0198),
q(0),
],
q(indo-iranian languages) => [
- q(0512),
+ q(0513),
q(0),
],
q(indo-portuguese) => [
- q(2903),
+ q(2900),
q(0),
],
q(indonesian) => [
- q(0196),
+ q(0197),
q(0),
],
q(indonesian bajau) => [
- q(1100),
+ q(1101),
q(0),
],
q(indonesian sign language) => [
- q(2972),
+ q(2970),
q(0),
],
q(indri) => [
- q(2908),
+ q(2905),
q(0),
],
q(indus kohistani) => [
- q(4623),
+ q(4616),
q(0),
],
q(indus valley language) => [
- q(7365),
+ q(7351),
q(0),
],
q(inebu one) => [
- q(5217),
+ q(5212),
q(0),
],
q(ineseno) => [
- q(2979),
+ q(2977),
q(0),
],
q(inga) => [
- q(2969),
+ q(2967),
q(0),
],
q(ingrian) => [
- q(3037),
+ q(3036),
q(0),
],
q(ingush) => [
- q(0198),
+ q(0199),
q(0),
],
q(inlaod itneg) => [
- q(3012),
+ q(3011),
q(0),
],
q(inoke-yate) => [
- q(2975),
+ q(2973),
q(0),
],
q(inonhan) => [
- q(4016),
+ q(4007),
q(0),
],
q(inor) => [
- q(2980),
+ q(2978),
q(0),
],
q(inpui naga) => [
- q(4927),
+ q(4920),
q(0),
],
q(interglossa) => [
- q(2927),
+ q(2924),
q(0),
],
q(interlingua (international auxiliary language association)) => [
- q(0194),
+ q(0195),
q(0),
],
q(interlingue) => [
- q(0192),
+ q(0193),
q(0),
],
q(international sign) => [
- q(2958),
+ q(2956),
q(0),
],
q(intha) => [
- q(2978),
+ q(2976),
q(0),
],
q(inuinnaqtun) => [
- q(2947),
+ q(2944),
q(0),
],
q(inuit sign language) => [
- q(2946),
+ q(2943),
q(0),
],
q(inuktitut) => [
- q(0191),
+ q(0192),
q(0),
],
q(inupiaq) => [
- q(0199),
+ q(0200),
q(0),
],
q(iowa-oto) => [
- q(2982),
+ q(2980),
q(0),
],
q(ipalapa amuzgo) => [
- q(1017),
+ q(1018),
q(0),
],
q(ipiko) => [
- q(2984),
+ q(2982),
q(0),
],
q(ipili) => [
- q(2983),
+ q(2981),
q(0),
],
q(ipulo) => [
- q(0902),
+ q(0903),
q(0),
],
q(iquito) => [
- q(2985),
+ q(2983),
q(0),
],
q(ir) => [
- q(2992),
+ q(2990),
q(0),
],
q(iranian languages) => [
- q(0200),
+ q(0201),
q(0),
],
q(iranian persian) => [
- q(5418),
+ q(5414),
q(0),
],
q(irantxe) => [
- q(2991),
+ q(2989),
q(0),
],
- q(iranun) => [
- q(2957),
+ q(iranun (malaysia)) => [
+ q(2954),
+ q(0),
+ ],
+ q(iranun (philippines)) => [
+ q(2955),
q(0),
],
q(iraqw) => [
- q(2990),
+ q(2988),
q(0),
],
q(irarutu) => [
- q(2988),
+ q(2986),
q(0),
],
q(iraya) => [
- q(2995),
+ q(2993),
q(0),
],
q(iresim) => [
- q(2987),
+ q(2985),
q(0),
],
q(irigwe) => [
- q(2989),
+ q(2987),
q(0),
],
q(irish) => [
- q(0154),
+ q(0155),
q(0),
],
q(irish sign language) => [
- q(3000),
+ q(2998),
q(0),
],
q(irish, middle (900-1200)) => [
- q(0278),
+ q(0279),
q(0),
],
q(irish, old (to 900)) => [
- q(0377),
+ q(0378),
q(0),
],
q(iroquoian languages) => [
- q(0201),
+ q(0202),
q(0),
],
q(irula) => [
- q(2993),
+ q(2991),
q(0),
],
q(isabi) => [
- q(2996),
+ q(2994),
q(0),
],
q(isanzu) => [
- q(3005),
+ q(3003),
q(0),
],
q(isarog agta) => [
- q(0662),
+ q(0663),
q(0),
],
q(isconahua) => [
- q(2997),
+ q(2995),
q(0),
],
q(isebe) => [
- q(2926),
+ q(2923),
q(0),
],
q(isekiri) => [
- q(3018),
+ q(3017),
q(0),
],
q(ishkashimi) => [
- q(3003),
+ q(3001),
q(0),
],
q(isinai) => [
- q(2974),
+ q(2972),
q(0),
],
q(isirawa) => [
- q(6218),
+ q(6207),
q(0),
],
q(island carib) => [
- q(1845),
+ q(1840),
q(0),
],
q(islander creole english) => [
- q(2901),
+ q(2898),
q(0),
],
q(isnag) => [
- q(2998),
+ q(2996),
q(0),
],
q(isoko) => [
- q(3006),
+ q(3004),
q(0),
],
q(israeli sign language) => [
- q(3007),
+ q(3005),
q(0),
],
q(isthmus mixe) => [
- q(4314),
+ q(4306),
q(0),
],
q(isthmus zapotec) => [
- q(7813),
+ q(7798),
q(0),
],
q(isthmus-cosoleacaque nahuatl) => [
- q(4869),
+ q(4862),
q(0),
],
q(isthmus-mecayapan nahuatl) => [
- q(4880),
+ q(4873),
q(0),
],
q(isthmus-pajapan nahuatl) => [
- q(4873),
+ q(4866),
q(0),
],
q(istriot) => [
- q(3008),
+ q(3006),
q(0),
],
q(istro romanian) => [
- q(5870),
+ q(5859),
q(0),
],
q(isu (fako division)) => [
- q(6356),
+ q(6345),
q(0),
],
q(isu (menchum division)) => [
- q(3009),
+ q(3007),
q(0),
],
q(italian) => [
- q(0202),
+ q(0203),
q(0),
],
q(italian sign language) => [
- q(2999),
+ q(2997),
q(0),
],
q(italic languages) => [
- q(0513),
+ q(0514),
q(0),
],
q(itawit) => [
- q(3020),
+ q(3019),
q(0),
],
q(itelmen) => [
- q(3014),
+ q(3013),
q(0),
],
q(itene) => [
- q(3011),
+ q(3010),
q(0),
],
q(iteri) => [
- q(3017),
+ q(3016),
q(0),
],
q(itik) => [
- q(3022),
+ q(3021),
q(0),
],
q(ito) => [
- q(3021),
+ q(3020),
q(0),
],
q(itonama) => [
- q(3016),
+ q(3015),
q(0),
],
q(itu mbon uzo) => [
- q(3015),
+ q(3014),
q(0),
],
q(itundujia mixtec) => [
- q(4157),
+ q(4149),
q(0),
],
q(itza) => [
- q(3024),
+ q(3023),
q(0),
],
q(iu mien) => [
- q(3025),
+ q(3024),
q(0),
],
q(ivatan) => [
- q(3027),
+ q(3026),
q(0),
],
q(ivbie north-okpela-arhe) => [
- q(0914),
+ q(0915),
q(0),
],
q(iwaidja) => [
- q(2889),
+ q(2885),
q(0),
],
q(iwal) => [
- q(3195),
+ q(3194),
q(0),
],
q(iwam) => [
- q(3029),
+ q(3028),
q(0),
],
q(iwur) => [
- q(3030),
+ q(3029),
q(0),
],
q(ixcatec) => [
- q(3032),
+ q(3031),
q(0),
],
q(ixcatlan mazatec) => [
- q(4701),
+ q(4694),
q(0),
],
q(ixil) => [
- q(3033),
+ q(3032),
q(0),
],
q(ixtayutla mixtec) => [
- q(7027),
+ q(7012),
q(0),
],
q(ixtenco otomi) => [
- q(5333),
+ q(5328),
q(0),
],
q(iyayu) => [
- q(3034),
+ q(3033),
q(0),
],
q(iyive) => [
- q(6878),
+ q(6862),
q(0),
],
q(iyo) => [
- q(4762),
+ q(4754),
q(0),
],
q(iyo'wujwa chorote) => [
- q(1857),
+ q(1852),
q(0),
],
q(iyojwa'ja chorote) => [
- q(1860),
+ q(1855),
q(0),
],
q(izere) => [
- q(3038),
+ q(3037),
q(0),
],
q(izii) => [
- q(3039),
+ q(3038),
q(0),
],
q(izon) => [
- q(2934),
+ q(2931),
q(0),
],
q(izora) => [
- q(1671),
+ q(1668),
q(0),
],
q(jabuti) => [
- q(3066),
+ q(3065),
q(0),
],
q(jad) => [
- q(3071),
+ q(3070),
q(0),
],
q(jadgali) => [
- q(3072),
+ q(3071),
q(0),
],
q(jah hut) => [
- q(3046),
+ q(3045),
q(0),
],
q(jahanka) => [
- q(3043),
+ q(3042),
q(0),
],
q(jair awyu) => [
- q(0981),
+ q(0982),
q(0),
],
q(jaitmatang) => [
- q(7368),
+ q(7354),
q(0),
],
q(jakalteko) => [
- q(3042),
+ q(3041),
q(1),
],
q(jakati) => [
- q(3055),
+ q(3054),
q(0),
],
q(jakun) => [
- q(3048),
+ q(3047),
q(0),
],
q(jalapa de diaz mazatec) => [
- q(4119),
+ q(4111),
q(0),
],
q(jalkunan) => [
- q(1578),
+ q(1577),
q(0),
],
q(jamaican country sign language) => [
- q(3069),
+ q(3068),
q(0),
],
q(jamaican creole english) => [
- q(3050),
+ q(3049),
q(0),
],
q(jamaican sign language) => [
- q(3115),
+ q(3114),
q(0),
],
q(jamamadi) => [
- q(3040),
+ q(3039),
q(0),
],
q(jambi malay) => [
- q(3057),
+ q(3056),
q(0),
],
q(jamiltepec mixtec) => [
- q(4666),
+ q(4659),
q(0),
],
q(jamsay dogon) => [
- q(2067),
+ q(2061),
q(0),
],
q(jandai) => [
- q(3051),
+ q(3050),
q(0),
],
q(jandavra) => [
- q(3128),
+ q(3127),
q(0),
],
q(jangkang) => [
- q(2069),
+ q(2063),
q(0),
],
q(jangshung) => [
- q(3127),
+ q(3126),
q(0),
],
q(janji) => [
- q(3130),
+ q(3129),
q(0),
],
q(japanese) => [
- q(0205),
+ q(0206),
q(0),
],
q(japanese (family)) => [
- q(0514),
+ q(0515),
q(0),
],
q(japanese sign language) => [
- q(3146),
+ q(3145),
q(0),
],
q(japreria) => [
- q(3145),
+ q(3144),
q(0),
],
q(jaqaru) => [
- q(3141),
+ q(3140),
q(0),
],
q(jara) => [
- q(3045),
+ q(3044),
q(0),
],
q(jarai) => [
- q(3142),
+ q(3141),
q(0),
],
q(jarawa (india)) => [
- q(0804),
+ q(0805),
q(0),
],
q(jaru) => [
- q(1983),
+ q(1977),
q(0),
],
q(jauja wanca quechua) => [
- q(5733),
+ q(5724),
q(0),
],
q(jaunsari) => [
- q(3133),
+ q(3132),
q(0),
],
q(javanese) => [
- q(0203),
+ q(0204),
q(0),
],
q(javindo) => [
- q(3165),
+ q(3164),
q(0),
],
q(jawe) => [
- q(3059),
+ q(3058),
q(0),
],
q(jaya) => [
- q(3170),
+ q(3169),
q(0),
],
q(jebero) => [
- q(3074),
+ q(3073),
q(0),
],
q(jeh) => [
- q(3077),
+ q(3075),
q(0),
],
q(jehai) => [
- q(3089),
+ q(3087),
q(0),
],
q(jejueo) => [
- q(3107),
+ q(3105),
q(0),
],
q(jemez) => [
- q(6652),
+ q(6636),
q(0),
],
q(jenaama bozo) => [
- q(1617),
- q(0),
- ],
- q(jeng) => [
- q(3076),
+ q(1616),
q(0),
],
q(jennu kurumba) => [
- q(7534),
+ q(7519),
q(0),
],
q(jere) => [
- q(3082),
+ q(3080),
q(0),
],
q(jeri kuo) => [
- q(3079),
+ q(3077),
q(0),
],
q(jerriais) => [
- q(5053),
+ q(5048),
q(0),
],
q(jerung) => [
- q(3075),
+ q(3074),
q(0),
],
q(jewish babylonian aramaic (ca. 200-1200 ce)) => [
- q(6603),
+ q(6589),
q(0),
],
q(jewish palestinian aramaic) => [
- q(3140),
+ q(3139),
q(0),
],
q(jhankot sign language) => [
- q(3090),
+ q(3088),
q(0),
],
q(jiamao) => [
- q(3101),
+ q(3099),
q(0),
],
q(jiarong) => [
- q(3168),
+ q(3167),
q(0),
],
q(jiba) => [
- q(3157),
+ q(3156),
q(0),
],
q(jibu) => [
- q(3092),
+ q(3090),
q(0),
],
q(jicarilla apache) => [
- q(0842),
+ q(0843),
q(0),
],
q(jiiddu) => [
- q(3098),
+ q(3096),
q(0),
],
q(jilbe) => [
- q(3095),
+ q(3093),
q(0),
],
q(jilim) => [
- q(3099),
+ q(3097),
q(0),
],
q(jimi (cameroon)) => [
- q(3100),
+ q(3098),
q(0),
],
q(jimi (nigeria)) => [
- q(3120),
+ q(3119),
q(0),
],
q(jina) => [
- q(3091),
+ q(3089),
q(0),
],
q(jingpho) => [
- q(0210),
+ q(0211),
q(1),
],
q(jinyu chinese) => [
- q(1754),
+ q(1751),
q(0),
],
q(jiongnai bunu) => [
- q(5548),
+ q(5544),
q(0),
],
q(jirel) => [
- q(3154),
+ q(3153),
q(0),
],
q(jiru) => [
- q(3143),
+ q(3142),
q(0),
],
q(jita) => [
- q(3103),
+ q(3101),
q(0),
],
q(jju) => [
- q(3177),
+ q(3176),
q(0),
],
q(joba) => [
- q(3134),
+ q(3133),
q(0),
],
q(jofotek-bromnya) => [
- q(3065),
+ q(3064),
q(0),
],
q(jogi) => [
- q(3136),
+ q(3135),
q(0),
],
q(jola-fonyi) => [
- q(2205),
+ q(2201),
q(0),
],
q(jola-kasa) => [
- q(1875),
+ q(1870),
q(0),
],
q(jonkor bourmataguil) => [
- q(3084),
+ q(3082),
q(0),
],
q(jora) => [
- q(3137),
+ q(3136),
q(0),
],
q(jordanian sign language) => [
- q(3138),
+ q(3137),
q(0),
],
q(jorto) => [
- q(3144),
+ q(3143),
q(0),
],
q(jowulu) => [
- q(3139),
+ q(3138),
q(0),
],
q(ju) => [
- q(3162),
+ q(3161),
q(0),
],
q(ju/'hoan) => [
- q(3645),
+ q(3639),
q(0),
],
q(juang) => [
- q(3156),
+ q(3155),
q(0),
],
q(judeo-arabic) => [
- q(0207),
+ q(0208),
q(0),
],
q(judeo-berber) => [
- q(3060),
+ q(3059),
q(0),
],
q(judeo-georgian) => [
- q(3086),
+ q(3084),
q(0),
],
q(judeo-iraqi arabic) => [
- q(7643),
+ q(7628),
q(0),
],
q(judeo-italian) => [
- q(3013),
+ q(3012),
q(0),
],
q(judeo-moroccan arabic) => [
- q(0719),
+ q(0720),
q(0),
],
q(judeo-persian) => [
- q(0206),
+ q(0207),
q(0),
],
q(judeo-tat) => [
- q(3073),
+ q(3072),
q(0),
],
q(judeo-tripolitanian arabic) => [
- q(7765),
+ q(7750),
q(0),
],
q(judeo-tunisian arabic) => [
- q(0718),
+ q(0719),
q(0),
],
q(judeo-yemeni arabic) => [
- q(3169),
+ q(3168),
q(0),
],
q(juhoan) => [
- q(3645),
+ q(3639),
q(1),
],
q(jukun takum) => [
- q(3067),
+ q(3066),
q(0),
],
q(juma) => [
- q(3147),
+ q(3146),
q(0),
],
q(jumjum) => [
- q(3155),
+ q(3154),
q(0),
],
q(jumla sign language) => [
- q(3160),
+ q(3159),
q(0),
],
q(jumli) => [
- q(3121),
+ q(3120),
q(0),
],
q(jungle inga) => [
- q(2971),
+ q(2969),
q(0),
],
q(juquila mixe) => [
- q(4663),
+ q(4656),
q(0),
],
q(jur modo) => [
- q(1133),
+ q(1134),
q(0),
],
q(juray) => [
- q(3164),
+ q(3163),
q(0),
],
q(jurchen) => [
- q(3149),
+ q(3148),
q(0),
],
q(juruna) => [
- q(3159),
+ q(3158),
q(0),
],
q(jutish) => [
- q(3161),
+ q(3160),
q(0),
],
q(juwal) => [
- q(4626),
+ q(4619),
q(0),
],
q(juxtlahuaca mixtec) => [
- q(7020),
+ q(7005),
q(0),
],
+ q(ju|'hoansi) => [
+ q(3639),
+ q(2),
+ ],
q(jwira-pepesa) => [
- q(3167),
+ q(3166),
q(0),
],
q(k'iche') => [
- q(5681),
+ q(5672),
q(0),
],
q(kaamba) => [
- q(7388),
+ q(7373),
q(0),
],
q(kaan) => [
- q(3854),
+ q(3845),
q(0),
],
q(kaang chin) => [
- q(1758),
+ q(1755),
q(0),
],
q(kaansa) => [
- q(2567),
+ q(2565),
q(0),
],
q(kaapor) => [
- q(6927),
+ q(6912),
q(1),
],
q(kaapor sign language) => [
- q(6886),
+ q(6871),
q(1),
],
q(kaba) => [
- q(3609),
+ q(3604),
q(0),
],
q(kabalai) => [
- q(3672),
+ q(3666),
q(0),
],
q(kabardian) => [
- q(0219),
+ q(0220),
q(0),
],
q(kabatei) => [
- q(7383),
- q(0),
- ],
- q(kabixi) => [
- q(7306),
+ q(7368),
q(0),
],
q(kabiye) => [
- q(3198),
+ q(3197),
q(0),
],
q(kabola) => [
- q(3454),
+ q(3451),
q(0),
],
q(kabore one) => [
- q(5273),
+ q(5268),
q(0),
],
q(kabras) => [
- q(3940),
+ q(3931),
q(0),
],
q(kaburi) => [
- q(6880),
+ q(6864),
q(0),
],
q(kabutra) => [
- q(3203),
+ q(3202),
q(0),
],
q(kabuverdianu) => [
- q(3257),
+ q(3256),
q(0),
],
q(kabwa) => [
- q(1924),
+ q(1918),
q(0),
],
q(kabwari) => [
- q(3231),
+ q(3230),
q(0),
],
q(kabyle) => [
- q(0209),
+ q(0210),
q(0),
],
q(kachama-ganjule) => [
- q(3232),
+ q(3231),
q(0),
],
q(kachari) => [
- q(7274),
+ q(7261),
q(0),
],
- q(kachchi) => [
- q(3300),
+ q(kachhi) => [
+ q(3299),
q(0),
],
q(kachi koli) => [
- q(2533),
+ q(2530),
q(0),
],
q(kachin) => [
- q(0210),
+ q(0211),
q(0),
],
q(kacipo-balesi) => [
- q(3508),
+ q(3505),
q(0),
],
q(kaco') => [
- q(7379),
+ q(7364),
q(0),
],
q(kadai) => [
- q(3771),
+ q(3764),
q(0),
],
q(kadar) => [
- q(3266),
+ q(3265),
q(0),
],
q(kadaru) => [
- q(3252),
+ q(3251),
+ q(0),
+ ],
+ q(kadazan dusun) => [
+ q(2159),
q(0),
],
q(kadiweu) => [
- q(3187),
+ q(3186),
q(0),
],
q(kadu) => [
- q(7860),
+ q(7845),
q(0),
],
q(kaduo) => [
- q(3635),
+ q(3630),
+ q(0),
+ ],
+ q(kaera) => [
+ q(3107),
q(0),
],
q(kafa) => [
- q(3200),
+ q(3199),
q(0),
],
q(kafoa) => [
- q(3542),
+ q(3538),
q(0),
],
q(kagan kalagan) => [
- q(3440),
+ q(3437),
q(0),
],
q(kagate) => [
- q(6344),
+ q(6332),
q(0),
],
q(kagayanen) => [
- q(1716),
+ q(1713),
q(0),
],
q(kagoma) => [
- q(3246),
+ q(3245),
q(0),
],
q(kagoro) => [
- q(7375),
+ q(7361),
q(0),
],
q(kagulu) => [
- q(3411),
+ q(3408),
q(0),
],
q(kahe) => [
- q(2767),
+ q(2764),
q(0),
],
q(kahua) => [
- q(0673),
+ q(0674),
q(0),
],
q(kaian) => [
- q(3228),
+ q(3227),
q(0),
],
q(kaibobo) => [
- q(3769),
+ q(3762),
q(0),
],
q(kaidipang) => [
- q(3782),
+ q(3774),
q(0),
],
q(kaiep) => [
- q(3205),
+ q(3204),
q(0),
],
q(kaikadi) => [
- q(3272),
+ q(3271),
q(0),
],
q(kaikavian literary language) => [
- q(3399),
+ q(3396),
q(0),
],
q(kaike) => [
- q(3783),
+ q(3775),
q(0),
],
q(kaiku) => [
- q(3419),
+ q(3416),
q(0),
],
q(kaimbe) => [
- q(7278),
+ q(7265),
q(0),
],
q(kaimbulawa) => [
- q(7858),
+ q(7843),
q(0),
],
q(kaingang) => [
- q(3323),
+ q(3320),
q(0),
],
q(kairak) => [
- q(1761),
+ q(1758),
q(0),
],
q(kairiru) => [
- q(3718),
+ q(3711),
q(0),
],
q(kairui-midiki) => [
- q(3576),
+ q(3572),
q(0),
],
q(kais) => [
- q(3779),
+ q(3771),
q(0),
],
q(kaivi) => [
- q(3213),
+ q(3212),
q(0),
],
q(kaiwa) => [
- q(3318),
+ q(3315),
q(0),
],
q(kaiy) => [
- q(6420),
+ q(6409),
q(0),
],
q(kajakse) => [
- q(1760),
+ q(1757),
q(0),
],
q(kajali) => [
- q(7378),
+ q(7363),
q(0),
],
q(kajaman) => [
- q(3174),
+ q(3173),
q(0),
],
q(kakabai) => [
- q(3553),
+ q(3549),
q(0),
],
q(kakabe) => [
- q(3407),
+ q(3404),
q(0),
],
q(kakanda) => [
- q(3403),
+ q(3400),
q(0),
],
q(kaki ae) => [
- q(6383),
+ q(6372),
q(0),
],
q(kako) => [
- q(3412),
+ q(3409),
q(0),
],
q(kakwa) => [
- q(3271),
+ q(3270),
q(0),
],
q(kala) => [
- q(3220),
+ q(3219),
q(1),
],
q(kala lagaw ya) => [
- q(4637),
+ q(4630),
q(0),
],
q(kalaallisut) => [
- q(0211),
+ q(0212),
q(0),
],
q(kalaamaya) => [
- q(3948),
+ q(3939),
q(0),
],
q(kalabakan) => [
- q(3671),
+ q(3665),
q(0),
],
q(kalabari) => [
- q(2937),
+ q(2934),
q(0),
],
q(kalabra) => [
- q(3792),
+ q(3783),
q(0),
],
q(kalagan) => [
- q(3552),
+ q(3548),
q(0),
],
q(kalaktang monpa) => [
- q(3408),
+ q(3405),
q(0),
],
q(kalam) => [
- q(3461),
+ q(3458),
q(0),
],
q(kalami) => [
- q(2681),
+ q(2678),
q(0),
],
q(kalamse) => [
- q(3504),
+ q(3501),
q(0),
],
q(kalanadi) => [
- q(7148),
+ q(7134),
q(0),
],
q(kalanga) => [
- q(3219),
+ q(3218),
+ q(0),
+ ],
+ q(kalanguya) => [
+ q(3177),
q(0),
],
q(kalao) => [
- q(3453),
+ q(3450),
q(0),
],
q(kalapuya) => [
- q(3753),
+ q(3746),
q(0),
],
q(kalarko) => [
- q(3185),
+ q(3184),
q(0),
],
q(kalasha) => [
- q(3447),
+ q(3444),
q(0),
],
q(kalenjin) => [
- q(3442),
+ q(3439),
q(0),
],
q(kalispel-pend d'oreille) => [
- q(2353),
+ q(2350),
q(0),
],
q(kalkoti) => [
- q(7369),
+ q(7355),
q(0),
],
q(kalkutung) => [
- q(3626),
+ q(3621),
q(0),
],
q(kalmyk) => [
- q(0470),
+ q(0471),
q(0),
],
q(kalo finnish romani) => [
- q(5810),
+ q(5800),
q(0),
],
q(kalou) => [
- q(7785),
+ q(7770),
q(0),
],
q(kaluli) => [
- q(1078),
+ q(1079),
q(0),
],
q(kalumpang) => [
- q(3437),
+ q(3434),
q(0),
],
q(kam) => [
- q(3254),
+ q(3253),
q(0),
],
q(kamakan) => [
- q(7011),
+ q(6996),
q(0),
],
q(kamang) => [
- q(7203),
+ q(7189),
q(0),
],
q(kamano) => [
- q(3199),
+ q(3198),
q(0),
],
q(kamantan) => [
- q(3217),
+ q(3216),
q(0),
],
q(kamar) => [
- q(3273),
+ q(3272),
q(0),
],
q(kamara) => [
- q(3123),
+ q(3122),
q(0),
],
q(kamarian) => [
- q(3790),
+ q(3781),
q(0),
],
q(kamaru) => [
- q(3331),
+ q(3328),
q(0),
],
q(kamas) => [
- q(7286),
+ q(7274),
q(0),
],
q(kamasa) => [
- q(3444),
+ q(3441),
q(0),
],
q(kamasau) => [
- q(3472),
+ q(3469),
q(0),
],
q(kamayo) => [
- q(3752),
+ q(3745),
q(0),
],
q(kamayura) => [
- q(3184),
+ q(3183),
q(0),
],
q(kamba) => [
- q(0212),
- q(0),
- ],
- q(kamba (brazil)) => [
- q(7292),
+ q(0213),
q(0),
],
q(kamba (kenya)) => [
- q(0212),
+ q(0213),
q(1),
],
q(kambaata) => [
- q(3621),
+ q(3616),
q(0),
],
q(kambaira) => [
- q(3766),
+ q(3759),
q(0),
],
q(kambera) => [
- q(7304),
+ q(7291),
q(0),
],
q(kamberau) => [
- q(2994),
+ q(2992),
q(0),
],
q(kambiwa) => [
- q(7305),
+ q(7292),
q(0),
],
q(kami (nigeria)) => [
- q(3462),
+ q(3459),
q(0),
],
q(kami (tanzania)) => [
- q(3229),
+ q(3228),
q(0),
],
q(kamo) => [
- q(3225),
+ q(3224),
q(0),
],
q(kamoro) => [
- q(3324),
+ q(3321),
q(0),
],
q(kamta) => [
- q(5803),
+ q(5793),
q(1),
],
q(kamu) => [
- q(7426),
+ q(7411),
q(0),
],
q(kamula) => [
- q(7394),
+ q(7379),
q(0),
],
q(kamviri) => [
- q(7544),
+ q(7529),
q(0),
],
q(kamwe) => [
- q(2757),
+ q(2754),
q(0),
],
q(kanakanabu) => [
- q(7433),
+ q(7418),
q(0),
],
q(kanamari) => [
- q(3491),
+ q(3488),
q(0),
],
q(kanan) => [
- q(7864),
+ q(7849),
q(0),
],
q(kanashi) => [
- q(7441),
+ q(7426),
q(0),
],
q(kanasi) => [
- q(6169),
+ q(6158),
q(0),
],
q(kanauji) => [
@@ -36554,455 +36551,443 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kandas) => [
- q(3570),
+ q(3566),
q(0),
],
q(kandawo) => [
- q(2409),
+ q(2407),
q(0),
],
q(kande) => [
- q(3201),
+ q(3200),
q(0),
],
q(kanembu) => [
- q(3194),
+ q(3193),
q(0),
],
q(kang) => [
- q(3757),
+ q(3750),
q(0),
],
q(kanga) => [
- q(3224),
+ q(3223),
q(0),
],
q(kangean) => [
- q(3424),
+ q(3421),
q(0),
],
q(kanggape) => [
- q(2924),
+ q(2921),
q(0),
],
q(kangjia) => [
- q(3734),
+ q(3727),
q(0),
],
q(kango (bas-uele district)) => [
- q(3644),
+ q(3638),
q(0),
],
q(kango (tshopo district)) => [
- q(3791),
+ q(3782),
q(0),
],
q(kangri) => [
- q(7440),
+ q(7425),
q(0),
],
q(kaniet) => [
- q(3630),
+ q(3625),
q(0),
],
q(kanikkaran) => [
- q(3278),
+ q(3277),
q(0),
],
q(kaningdon-nindem) => [
- q(3248),
+ q(3247),
q(0),
],
q(kaningi) => [
- q(3781),
+ q(3773),
q(0),
],
q(kaningra) => [
- q(3496),
+ q(3493),
q(0),
],
q(kaninuwa) => [
- q(7071),
+ q(7056),
q(0),
],
q(kanite) => [
- q(3474),
+ q(3471),
q(0),
],
q(kanjari) => [
- q(3302),
+ q(3301),
q(0),
],
q(kanjobal) => [
- q(3379),
+ q(3376),
q(1),
],
q(kanju) => [
- q(3188),
+ q(3187),
q(0),
],
q(kankanaey) => [
- q(3484),
+ q(3481),
q(0),
],
q(kannada) => [
- q(0213),
+ q(0214),
q(0),
],
q(kannada kurumba) => [
- q(3291),
+ q(3290),
q(0),
],
q(kanoe) => [
- q(3730),
+ q(3723),
q(0),
],
q(kanowit-tanjong melanau) => [
- q(3729),
+ q(3722),
q(0),
],
q(kansa) => [
- q(3604),
+ q(3599),
q(0),
],
q(kantosi) => [
- q(7387),
+ q(7372),
q(0),
],
q(kanu) => [
- q(3352),
+ q(3349),
q(0),
],
q(kanufi) => [
- q(3487),
+ q(3484),
q(0),
],
q(kanuri) => [
- q(0216),
+ q(0217),
q(0),
],
q(kanyok) => [
- q(3503),
+ q(3500),
q(0),
],
q(kao) => [
- q(3183),
+ q(3182),
q(0),
],
q(kaonde) => [
- q(3561),
+ q(3557),
q(0),
],
q(kap) => [
- q(7669),
+ q(7654),
q(0),
],
q(kapampangan) => [
- q(0337),
+ q(0338),
q(1),
],
q(kapauri) => [
- q(3344),
+ q(3341),
q(1),
],
q(kapin) => [
- q(6402),
+ q(6391),
q(0),
],
q(kapinawa) => [
- q(7465),
+ q(7450),
q(0),
],
q(kapingamarangi) => [
- q(3529),
+ q(3525),
q(0),
],
q(kapori) => [
- q(3344),
+ q(3341),
q(0),
],
q(kapriman) => [
- q(2071),
+ q(2065),
q(0),
],
q(kaptiau) => [
- q(3191),
+ q(3190),
q(0),
],
q(kapya) => [
- q(3443),
+ q(3440),
q(0),
],
q(kaqchikel) => [
- q(1647),
+ q(1646),
q(0),
],
q(kara (central african republic)) => [
- q(3175),
+ q(3174),
q(0),
],
q(kara (korea)) => [
- q(7941),
+ q(7926),
q(0),
],
q(kara (papua new guinea)) => [
- q(3879),
+ q(3870),
q(0),
],
q(kara (tanzania)) => [
- q(5767),
+ q(5758),
q(0),
],
q(kara-kalpak) => [
- q(0208),
+ q(0209),
q(0),
],
q(karachay-balkar) => [
- q(0234),
+ q(0235),
q(0),
],
q(karadjeri) => [
- q(2422),
+ q(2420),
q(0),
],
q(karagas) => [
- q(3366),
- q(0),
- ],
- q(karahawyana) => [
- q(7376),
+ q(3363),
q(0),
],
q(karaim) => [
- q(3250),
+ q(3249),
q(0),
],
q(karaja) => [
- q(3532),
+ q(3528),
q(0),
],
q(karakhanid) => [
- q(7474),
+ q(7459),
q(0),
],
q(karami) => [
- q(7285),
+ q(7273),
q(0),
],
q(karamojong) => [
- q(3243),
+ q(3242),
q(0),
],
q(karang) => [
- q(3784),
+ q(3776),
q(0),
],
q(karanga) => [
- q(3627),
+ q(3622),
q(0),
],
q(karankawa) => [
- q(7863),
+ q(7848),
q(0),
],
q(karao) => [
- q(3751),
+ q(3744),
q(0),
],
q(karas) => [
- q(3329),
+ q(3326),
q(0),
],
q(karata) => [
- q(3541),
+ q(3537),
q(0),
],
q(karawa) => [
- q(7488),
+ q(7473),
q(0),
],
q(karbi) => [
- q(4340),
+ q(4333),
q(0),
],
q(kare (central african republic)) => [
- q(3196),
+ q(3195),
q(0),
],
q(kare (papua new guinea)) => [
- q(3459),
+ q(3456),
q(0),
],
q(karekare) => [
- q(3176),
+ q(3175),
q(0),
],
q(karelian) => [
- q(0235),
+ q(0236),
q(0),
],
q(karen languages) => [
- q(0214),
+ q(0215),
q(0),
],
q(karenggapa) => [
- q(2212),
+ q(2208),
q(0),
],
q(karey) => [
- q(3745),
+ q(3738),
q(0),
],
q(kari) => [
- q(3192),
+ q(3191),
q(0),
],
q(karingani) => [
- q(3321),
+ q(3318),
q(0),
],
q(karipuna) => [
- q(3320),
+ q(3317),
q(0),
],
q(karipuna creole french) => [
- q(3475),
+ q(3472),
q(0),
],
q(kariri-xoco) => [
- q(3789),
+ q(3780),
q(0),
],
q(karitiana) => [
- q(3633),
+ q(3628),
q(0),
],
q(kariya) => [
- q(3365),
+ q(3362),
q(0),
],
q(kariyarra) => [
- q(7006),
+ q(6991),
q(0),
],
q(karkar-yuri) => [
- q(7770),
+ q(7755),
q(0),
],
q(karkin) => [
- q(3575),
+ q(3571),
q(0),
],
q(karko) => [
- q(3417),
+ q(3414),
q(0),
],
q(karnai) => [
- q(1059),
+ q(1060),
q(0),
],
q(karo (brazil)) => [
- q(0878),
+ q(0879),
q(0),
],
q(karo (ethiopia)) => [
- q(3723),
+ q(3716),
q(0),
],
q(karok) => [
- q(3749),
+ q(3742),
q(0),
],
q(karon) => [
- q(3591),
+ q(3586),
q(0),
],
q(karon dori) => [
- q(3330),
+ q(3327),
q(0),
],
q(karore) => [
- q(7391),
+ q(7376),
q(0),
],
q(karranga) => [
- q(7484),
+ q(7469),
q(0),
],
q(karuwali) => [
- q(5882),
+ q(5871),
q(0),
],
q(kasanga) => [
- q(1686),
+ q(1683),
q(0),
],
q(kasem) => [
- q(7497),
+ q(7482),
q(0),
],
q(kashaya) => [
- q(3398),
+ q(3395),
q(0),
],
q(kashmiri) => [
- q(0215),
+ q(0216),
q(0),
],
q(kashubian) => [
- q(0099),
+ q(0100),
q(0),
],
q(kasiguranin) => [
- q(3607),
+ q(3602),
q(0),
],
q(kaska) => [
- q(3428),
+ q(3425),
q(0),
],
q(kaskean) => [
- q(7948),
- q(0),
- ],
- q(kasseng) => [
- q(3311),
+ q(7933),
q(0),
],
q(kasua) => [
- q(3347),
- q(0),
- ],
- q(kataang) => [
- q(3312),
+ q(3344),
q(0),
],
q(katabaga) => [
- q(3636),
+ q(3631),
q(0),
],
q(katawixi) => [
- q(7287),
+ q(7275),
q(0),
],
q(katbol) => [
- q(6588),
+ q(6575),
q(0),
],
q(katcha-kadugli-miri) => [
- q(7509),
+ q(7494),
q(0),
],
q(kate) => [
- q(3460),
+ q(3457),
q(0),
],
q(kathoriya tharu) => [
- q(6560),
+ q(6547),
q(0),
],
q(kathu) => [
- q(7673),
+ q(7658),
q(0),
],
q(kati) => [
@@ -37010,35 +36995,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(katkari) => [
- q(3303),
+ q(3302),
q(0),
],
q(katla) => [
- q(3226),
+ q(3225),
q(0),
],
q(kato) => [
- q(3642),
+ q(3636),
q(0),
],
q(katso) => [
- q(3173),
+ q(3172),
q(0),
],
q(katua) => [
- q(3620),
+ q(3615),
q(0),
],
q(katukina) => [
- q(3182),
+ q(3181),
q(0),
],
q(kaulong) => [
- q(5623),
+ q(5615),
q(0),
],
q(kaur) => [
- q(7009),
+ q(6994),
q(0),
],
q(kaure) => [
@@ -37046,147 +37031,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kaurna) => [
- q(7869),
+ q(7854),
q(0),
],
q(kauwera) => [
- q(7288),
+ q(7276),
q(0),
],
q(kavalan) => [
- q(1765),
+ q(1762),
q(0),
],
q(kavet) => [
- q(3589),
+ q(3584),
q(0),
],
q(kawacha) => [
- q(3210),
+ q(3209),
q(0),
],
q(kawaiisu) => [
- q(7290),
+ q(7278),
q(0),
],
q(kawe) => [
- q(3310),
+ q(3309),
q(0),
],
q(kawi) => [
- q(0217),
+ q(0218),
q(0),
],
q(kaxarari) => [
- q(3643),
+ q(3637),
q(0),
],
q(kaxuiana) => [
- q(3186),
+ q(3185),
q(0),
],
q(kayabi) => [
- q(3767),
+ q(3760),
q(0),
],
q(kayagar) => [
- q(3761),
+ q(3754),
q(0),
],
q(kayan) => [
- q(5403),
+ q(5399),
q(0),
],
q(kayan mahakam) => [
- q(7291),
+ q(7279),
q(0),
],
q(kayan river kayan) => [
- q(7381),
+ q(7366),
q(0),
],
q(kayapa kallahan) => [
- q(3178),
- q(0),
+ q(3177),
+ q(1),
],
q(kayapo) => [
- q(6827),
+ q(6811),
q(0),
],
q(kayardild) => [
- q(2697),
+ q(2694),
q(0),
],
q(kayaw) => [
- q(3678),
+ q(3672),
q(0),
],
q(kayeli) => [
- q(3778),
+ q(3770),
q(0),
],
q(kayong) => [
- q(3740),
+ q(3733),
q(0),
],
q(kayort) => [
- q(3763),
+ q(3756),
q(0),
],
q(kaytetye) => [
- q(2421),
+ q(2419),
q(0),
],
q(kayupulau) => [
- q(3787),
+ q(3778),
q(0),
],
q(kazakh) => [
- q(0218),
+ q(0219),
q(0),
],
q(kazukuru) => [
- q(3777),
+ q(3769),
q(0),
],
q(ke'o) => [
- q(7561),
+ q(7546),
q(0),
],
q(keak) => [
- q(3264),
+ q(3263),
q(0),
],
q(keapara) => [
- q(3354),
+ q(3351),
q(0),
],
q(kedah malay) => [
- q(4214),
+ q(4206),
q(0),
],
q(kedang) => [
- q(3617),
+ q(3612),
q(0),
],
q(keder) => [
- q(3255),
+ q(3254),
q(0),
],
q(kehu) => [
- q(3339),
+ q(3336),
q(0),
],
q(kei) => [
- q(3265),
+ q(3264),
q(0),
],
q(keiga) => [
- q(3259),
+ q(3258),
q(0),
],
q(keijar) => [
- q(3255),
+ q(3254),
q(1),
],
q(kein) => [
@@ -37194,843 +37179,851 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(keiyo) => [
- q(2319),
+ q(2316),
q(0),
],
q(kekchi) => [
- q(3267),
+ q(3266),
q(0),
],
q(kela (democratic republic of congo)) => [
- q(3268),
+ q(3267),
q(0),
],
q(kela (papua new guinea)) => [
- q(3220),
+ q(3219),
q(0),
],
q(kelabit) => [
- q(3775),
+ q(3768),
q(0),
],
q(kele) => [
- q(3258),
+ q(3257),
q(0),
],
q(kele (democratic republic of congo)) => [
- q(3353),
+ q(3350),
q(0),
],
q(kele (papua new guinea)) => [
- q(5904),
+ q(5894),
q(0),
],
q(kelengazxo bozo) => [
- q(1636),
+ q(1635),
q(0),
],
q(keley-i kallahan) => [
- q(2919),
+ q(2916),
q(0),
],
q(keliko) => [
- q(3197),
+ q(3196),
q(0),
],
q(kelo) => [
- q(7331),
+ q(7318),
q(0),
],
q(kelon) => [
- q(3756),
+ q(3749),
q(0),
],
q(kemak) => [
- q(3269),
+ q(3268),
q(0),
],
q(kembayan) => [
- q(7332),
+ q(7319),
q(0),
],
q(kemberano) => [
- q(1628),
+ q(1627),
q(0),
],
q(kembra) => [
- q(7390),
+ q(7375),
q(0),
],
q(kemedzung) => [
- q(2091),
+ q(2085),
q(0),
],
q(kemi sami) => [
- q(6060),
+ q(6051),
q(0),
],
q(kemiehua) => [
- q(3292),
+ q(3291),
q(0),
],
q(kemtuik) => [
- q(3473),
+ q(3470),
q(0),
],
q(kenaboi) => [
- q(7301),
+ q(7288),
q(0),
],
q(kenati) => [
- q(2416),
+ q(2414),
q(0),
],
q(kendayan) => [
- q(3502),
+ q(3499),
q(0),
],
q(kendeje) => [
- q(3434),
+ q(3431),
q(0),
],
q(kendem) => [
- q(3679),
+ q(3673),
q(0),
],
q(kenga) => [
- q(3758),
+ q(3751),
q(0),
],
q(keningau murut) => [
- q(3724),
+ q(3717),
q(0),
],
q(keninjal) => [
- q(3490),
+ q(3487),
q(0),
],
q(kensiu) => [
- q(3497),
+ q(3494),
q(0),
],
q(kenswei nsei) => [
- q(4785),
+ q(4778),
q(0),
],
q(kenyan sign language) => [
- q(7377),
+ q(7362),
q(0),
],
q(kenyang) => [
- q(3270),
+ q(3269),
q(0),
],
q(kenyi) => [
- q(3943),
+ q(3934),
q(0),
],
q(kenzi) => [
- q(7445),
+ q(7430),
q(0),
],
q(keoru-ahia) => [
- q(7337),
+ q(7324),
q(0),
],
q(kepkiriwat) => [
- q(3536),
+ q(3532),
q(0),
],
q(kepo') => [
- q(3655),
+ q(3649),
q(0),
],
q(kera) => [
- q(3274),
+ q(3273),
q(0),
],
q(kerak) => [
- q(2751),
+ q(2748),
q(0),
],
q(kereho) => [
- q(7373),
+ q(7359),
q(0),
],
q(kerek) => [
- q(3582),
+ q(3578),
q(0),
],
q(kerewe) => [
- q(3260),
+ q(3259),
q(0),
],
q(kerewo) => [
- q(3741),
+ q(3734),
q(0),
],
q(kerinci) => [
- q(3684),
+ q(3678),
q(0),
],
q(kesawai) => [
- q(7335),
+ q(7322),
q(0),
],
q(ket) => [
- q(3276),
+ q(3275),
q(0),
],
q(ketangalan) => [
- q(3172),
+ q(3171),
q(0),
],
q(kete) => [
- q(3230),
+ q(3229),
q(0),
],
q(ketengban) => [
- q(7511),
+ q(7496),
q(0),
],
q(ketum) => [
- q(3639),
+ q(3633),
q(0),
],
q(keyagana) => [
- q(3748),
+ q(3741),
q(0),
],
q(kgalagadi) => [
- q(7389),
+ q(7374),
q(0),
],
q(khakas) => [
- q(3385),
+ q(3382),
q(0),
],
q(khalaj) => [
- q(3383),
+ q(3380),
q(0),
],
q(khaling) => [
- q(3446),
+ q(3443),
q(0),
],
q(khamba) => [
- q(3189),
+ q(3188),
q(0),
],
q(khams tibetan) => [
- q(3338),
+ q(3335),
q(0),
],
q(khamti) => [
- q(3348),
+ q(3345),
q(0),
],
q(khamyang) => [
- q(3614),
+ q(3609),
q(0),
],
q(khana) => [
- q(5212),
+ q(5207),
q(0),
],
q(khandesi) => [
- q(3343),
+ q(3340),
q(0),
],
q(khang) => [
- q(3390),
+ q(3387),
q(0),
],
q(khanty) => [
- q(3209),
+ q(3208),
q(0),
],
q(khao) => [
- q(7282),
+ q(7270),
q(0),
],
q(kharam naga) => [
- q(3305),
+ q(3304),
q(0),
],
q(kharia) => [
- q(3346),
+ q(3343),
q(0),
],
q(kharia thar) => [
- q(3618),
+ q(3613),
q(0),
],
q(khasi) => [
- q(0220),
+ q(0221),
q(0),
],
q(khayo) => [
- q(3950),
+ q(3941),
q(0),
],
q(khazar) => [
- q(7871),
+ q(7856),
q(0),
],
q(khe) => [
- q(3554),
+ q(3550),
q(0),
],
q(khehek) => [
- q(6585),
+ q(6572),
q(0),
],
q(khengkha) => [
- q(7374),
+ q(7360),
q(0),
],
q(khetrani) => [
- q(7353),
+ q(7340),
q(0),
],
q(khezha naga) => [
- q(4929),
+ q(4922),
q(0),
],
q(khiamniungan naga) => [
- q(3375),
+ q(3372),
q(0),
],
q(khinalugh) => [
- q(3387),
+ q(3384),
q(0),
],
q(khirwar) => [
- q(3715),
+ q(3708),
q(0),
],
q(khisa) => [
- q(3560),
+ q(3556),
q(0),
],
q(khlor) => [
- q(3970),
+ q(3961),
q(0),
],
q(khlula) => [
- q(7668),
+ q(7653),
q(0),
],
q(khmu) => [
- q(3384),
+ q(3381),
q(0),
],
q(kho'ini) => [
- q(7371),
+ q(7357),
q(0),
],
q(khoekhoe) => [
- q(4732),
+ q(4724),
q(0),
],
q(khoibu naga) => [
- q(4923),
+ q(4916),
q(0),
],
q(khoisan languages) => [
- q(0221),
+ q(0222),
q(0),
],
q(kholok) => [
- q(3622),
+ q(3617),
q(0),
],
q(khonso) => [
- q(3720),
+ q(3713),
q(1),
],
q(khorasani turkish) => [
- q(3479),
+ q(3476),
q(0),
],
q(khorezmian) => [
- q(7862),
+ q(7847),
q(0),
],
q(khotanese) => [
- q(0223),
+ q(0224),
q(0),
],
q(khowar) => [
- q(3351),
+ q(3348),
q(0),
],
q(khua) => [
- q(7357),
+ q(7344),
q(0),
],
q(khuen) => [
- q(3337),
+ q(3334),
q(0),
],
q(khumi chin) => [
- q(1801),
+ q(1798),
q(0),
],
q(khun) => [
- q(3410),
+ q(3407),
q(0),
],
q(khunsari) => [
- q(3295),
+ q(3294),
q(0),
],
q(khvarshi) => [
- q(3350),
+ q(3347),
+ q(0),
+ ],
+ q(khwedam) => [
+ q(7527),
+ q(1),
+ ],
+ q(kibala) => [
+ q(1298),
q(0),
],
q(kibet) => [
- q(3359),
+ q(3356),
q(0),
],
q(kibiri) => [
- q(5597),
+ q(5590),
q(0),
],
q(kickapoo) => [
- q(3357),
+ q(3354),
q(0),
],
q(kiembu) => [
- q(2217),
+ q(2213),
q(1),
],
q(kigiryama) => [
- q(5160),
+ q(5155),
q(1),
],
q(kikai) => [
- q(3774),
+ q(3767),
q(0),
],
q(kikuyu) => [
- q(0224),
+ q(0225),
q(0),
],
q(kildin sami) => [
- q(6057),
+ q(6048),
q(0),
],
q(kilivila) => [
- q(3364),
+ q(3361),
q(0),
],
q(kiliwa) => [
- q(3430),
+ q(3427),
q(0),
],
q(kilmeri) => [
- q(3362),
+ q(3359),
q(0),
],
q(kim) => [
- q(3355),
+ q(3352),
q(0),
],
q(kim mun) => [
- q(4326),
+ q(4319),
q(0),
],
q(kimaama) => [
- q(3361),
+ q(3358),
q(0),
],
q(kimaghima) => [
- q(3361),
+ q(3358),
q(1),
],
q(kimaragang) => [
- q(3565),
+ q(3561),
q(0),
],
q(kimbu) => [
- q(3373),
+ q(3370),
q(0),
],
q(kimbundu) => [
- q(0227),
+ q(0228),
q(0),
],
q(kimki) => [
- q(5921),
+ q(5911),
q(0),
],
q(kimre) => [
- q(3563),
+ q(3559),
q(0),
],
q(kinabalian) => [
- q(1678),
+ q(1675),
q(0),
],
q(kinalakna) => [
- q(3223),
+ q(3222),
q(0),
],
q(kinamiging manobo) => [
- q(4365),
+ q(4358),
q(0),
],
q(kinaray-a) => [
- q(3581),
+ q(3577),
q(0),
],
q(kinga) => [
- q(7839),
+ q(7824),
q(0),
],
q(kinnauri) => [
- q(3293),
+ q(3292),
q(0),
],
q(kintaq) => [
- q(3495),
+ q(3492),
q(0),
],
q(kinuku) => [
- q(3406),
+ q(3403),
q(0),
],
q(kinyarwanda) => [
- q(0225),
+ q(0226),
q(0),
],
q(kioko) => [
- q(6868),
+ q(6852),
q(0),
],
q(kiong) => [
- q(3415),
+ q(3412),
q(0),
],
q(kiorr) => [
- q(7382),
+ q(7367),
q(0),
],
q(kiowa) => [
- q(3367),
+ q(3364),
q(0),
],
q(kiowa apache) => [
- q(0843),
+ q(0844),
q(0),
],
q(kipfokomo) => [
- q(5475),
+ q(5472),
q(1),
],
q(kipsigis) => [
- q(5992),
+ q(5983),
q(0),
],
q(kiput) => [
- q(3750),
+ q(3743),
q(0),
],
q(kir-balar) => [
- q(3420),
+ q(3417),
q(0),
],
q(kirdki) => [
- q(0486),
+ q(0487),
q(3),
],
q(kire) => [
- q(2474),
+ q(2472),
q(0),
],
q(kirghiz) => [
- q(0226),
+ q(0227),
q(0),
],
q(kirike) => [
- q(5238),
+ q(5233),
q(0),
],
q(kirikiri) => [
- q(3376),
+ q(3373),
q(0),
],
q(kirmanjki) => [
- q(0486),
+ q(0487),
q(4),
],
q(kirmanjki (individual language)) => [
- q(3372),
+ q(3369),
q(0),
],
q(kirmanjki (macrolanguage)) => [
- q(0486),
+ q(0487),
q(7),
],
q(kirya-konzel) => [
- q(2351),
+ q(2348),
q(0),
],
q(kis) => [
- q(3370),
+ q(3367),
q(0),
],
q(kisa) => [
- q(3952),
+ q(3943),
q(0),
],
q(kisan) => [
- q(7364),
+ q(7350),
q(0),
],
q(kisankasa) => [
- q(3555),
+ q(3551),
q(0),
],
q(kisar) => [
- q(3382),
+ q(3379),
q(0),
],
q(kisi) => [
- q(3377),
+ q(3374),
q(0),
],
q(kistane) => [
- q(2626),
+ q(2624),
q(0),
],
q(kiswahili) => [
- q(6304),
+ q(6292),
q(1),
],
q(kita maninkakan) => [
- q(4633),
+ q(4626),
q(0),
],
q(kitan) => [
- q(7868),
+ q(7853),
q(0),
],
q(kitharaka) => [
- q(6503),
+ q(6491),
q(1),
],
q(kitja) => [
- q(2514),
+ q(2510),
q(0),
],
q(kitsai) => [
- q(3363),
+ q(3360),
q(0),
],
q(kituba (congo)) => [
- q(4364),
+ q(4357),
q(0),
],
q(kituba (democratic republic of congo)) => [
- q(3640),
+ q(3634),
q(0),
],
q(kiunum) => [
- q(7106),
+ q(7092),
q(0),
],
q(kiwilwana) => [
- q(4376),
+ q(4369),
q(1),
],
q(kla-dan) => [
- q(3846),
+ q(3837),
q(0),
],
q(klamath-modoc) => [
- q(3429),
+ q(3426),
q(0),
],
q(klao) => [
- q(3449),
+ q(3446),
q(0),
],
q(klias river kadazan) => [
- q(3567),
+ q(3563),
q(0),
],
q(klingon) => [
- q(0432),
+ q(0433),
q(0),
],
q(knaanic) => [
- q(1934),
+ q(1928),
q(0),
],
q(ko) => [
- q(2387),
+ q(2385),
q(0),
],
q(koalib) => [
- q(3356),
+ q(3353),
q(0),
],
q(koasati) => [
- q(1764),
+ q(1761),
q(0),
],
q(koba) => [
- q(3527),
+ q(3523),
q(0),
],
q(kobiana) => [
- q(3218),
+ q(3217),
q(0),
],
q(kobol) => [
- q(3328),
+ q(3325),
q(0),
],
q(kobon) => [
- q(3544),
+ q(3540),
q(0),
],
q(koch) => [
- q(3249),
+ q(3248),
q(0),
],
q(kochila tharu) => [
- q(6508),
+ q(6496),
q(0),
],
q(koda) => [
- q(1705),
+ q(1702),
q(0),
],
q(kodaku) => [
- q(3619),
+ q(3614),
q(0),
],
q(kodava) => [
- q(3283),
+ q(3282),
q(0),
],
q(kodeoha) => [
- q(7012),
+ q(6997),
q(0),
],
q(kodi) => [
- q(3507),
+ q(3504),
q(0),
],
q(kodia) => [
- q(3708),
+ q(3701),
q(0),
],
q(koenoem) => [
- q(3227),
+ q(3226),
q(0),
],
q(kofa) => [
- q(3608),
+ q(3603),
q(0),
],
q(kofei) => [
- q(3531),
+ q(3527),
q(0),
],
q(kofyar) => [
- q(3704),
+ q(3697),
q(0),
],
q(kogi) => [
- q(3510),
+ q(3507),
q(1),
],
q(koguryo) => [
- q(7861),
+ q(7846),
q(0),
],
q(kohin) => [
- q(3426),
+ q(3423),
q(0),
],
q(kohistani shina) => [
- q(5494),
+ q(5491),
q(0),
],
q(koho) => [
- q(3535),
+ q(3531),
q(0),
],
q(kohumono) => [
- q(1082),
+ q(1083),
q(0),
],
q(koi) => [
- q(3422),
+ q(3419),
q(0),
],
q(koibal) => [
- q(7859),
+ q(7844),
q(0),
],
q(koireng) => [
- q(4925),
+ q(4918),
q(0),
],
q(koitabu) => [
- q(3556),
+ q(3552),
q(0),
],
q(koiwat) => [
- q(3735),
+ q(3728),
q(0),
],
q(kok borok) => [
- q(6702),
+ q(6686),
q(0),
],
q(kok-nar) => [
- q(2540),
+ q(2538),
q(0),
],
q(kokata) => [
- q(3623),
+ q(3618),
q(0),
],
q(koke) => [
- q(3518),
+ q(3515),
q(0),
],
q(koki naga) => [
- q(5147),
+ q(5142),
q(0),
],
q(koko babangk) => [
- q(5229),
+ q(5224),
q(0),
],
q(kokoda) => [
- q(7447),
+ q(7432),
q(0),
],
q(kokola) => [
- q(3780),
+ q(3772),
q(0),
],
q(kokota) => [
- q(3413),
+ q(3410),
q(0),
],
q(kol) => [
- q(2237),
+ q(2233),
q(1),
],
q(kol (bangladesh)) => [
- q(2237),
+ q(2233),
q(0),
],
q(kol (cameroon)) => [
@@ -38038,27 +38031,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kol (papua new guinea)) => [
- q(3513),
+ q(3510),
q(0),
],
q(kola) => [
- q(3688),
+ q(3681),
q(0),
],
q(kolbila) => [
- q(3431),
+ q(3428),
q(0),
],
q(kolibugan subanon) => [
- q(6083),
+ q(6073),
q(0),
],
q(kolsch) => [
- q(3601),
+ q(3596),
q(0),
],
q(koluwawa) => [
- q(3452),
+ q(3449),
q(0),
],
q(kom (cameroon)) => [
@@ -38066,227 +38059,227 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kom (india)) => [
- q(3466),
+ q(3463),
q(0),
],
q(koma) => [
- q(3478),
+ q(3475),
q(0),
],
q(komba) => [
- q(3528),
+ q(3524),
q(0),
],
q(kombai) => [
- q(6836),
+ q(6820),
q(0),
],
q(kombio) => [
- q(7298),
+ q(7285),
q(0),
],
q(komering) => [
- q(3313),
+ q(3310),
q(0),
],
q(komi) => [
- q(0229),
+ q(0230),
q(0),
],
q(komi-permyak) => [
- q(3512),
+ q(3509),
q(0),
],
q(komi-zyrian) => [
- q(3543),
+ q(3539),
q(0),
],
q(kominimung) => [
- q(7449),
+ q(7434),
q(0),
],
q(komo (democratic republic of congo)) => [
- q(3476),
+ q(3473),
q(0),
],
q(komo (sudan)) => [
- q(7451),
+ q(7436),
q(0),
],
q(komodo) => [
- q(3674),
+ q(3668),
q(0),
],
q(kompane) => [
- q(3682),
+ q(3676),
q(0),
],
q(komyandaret) => [
- q(3788),
+ q(3779),
q(0),
],
q(kon keu) => [
- q(3416),
+ q(3413),
q(0),
],
q(konabere) => [
- q(1052),
+ q(1053),
q(1),
],
q(konai) => [
- q(3738),
+ q(3731),
q(0),
],
q(konda) => [
- q(3483),
+ q(3480),
q(0),
],
q(konda-dora) => [
- q(3285),
+ q(3284),
q(0),
],
q(koneraw) => [
- q(3253),
+ q(3252),
q(0),
],
q(kongo) => [
- q(0230),
+ q(0231),
q(0),
],
q(konkani) => [
- q(0228),
+ q(0229),
q(0),
],
q(konkani (individual language)) => [
- q(3492),
+ q(3489),
q(0),
],
q(konkani (macrolanguage)) => [
- q(0228),
+ q(0229),
q(1),
],
q(konkomba) => [
- q(7452),
+ q(7437),
q(0),
],
q(konni) => [
- q(3455),
+ q(3452),
q(0),
],
q(kono (guinea)) => [
- q(3499),
+ q(3496),
q(0),
],
q(kono (nigeria)) => [
- q(3439),
+ q(3436),
q(0),
],
q(kono (sierra leone)) => [
- q(3493),
+ q(3490),
q(0),
],
q(konomala) => [
- q(3505),
+ q(3502),
q(0),
],
q(konongo) => [
- q(3234),
+ q(3233),
q(0),
],
q(konso) => [
- q(3720),
+ q(3713),
q(0),
],
q(konyak naga) => [
- q(4744),
+ q(4736),
q(0),
],
q(konyanka maninka) => [
- q(4362),
+ q(4355),
q(0),
],
q(konzo) => [
- q(3514),
+ q(3511),
q(0),
],
q(koongo) => [
- q(3486),
+ q(3483),
q(0),
],
q(koonzime) => [
- q(5345),
+ q(5341),
q(0),
],
q(koorete) => [
- q(3572),
+ q(3568),
q(0),
],
q(kopar) => [
- q(7454),
+ q(7439),
q(0),
],
q(kopkaka) => [
- q(5289),
+ q(5284),
q(0),
],
q(korafe-yegha) => [
- q(3539),
+ q(3535),
q(0),
],
q(korak) => [
- q(3523),
+ q(3519),
q(0),
],
q(korana) => [
- q(3573),
+ q(3569),
q(0),
],
q(korandje) => [
- q(3233),
+ q(3232),
q(0),
],
q(kordofanian languages) => [
- q(0515),
+ q(0516),
q(0),
],
q(korean) => [
- q(0231),
+ q(0232),
q(0),
],
q(korean sign language) => [
- q(3677),
+ q(3671),
q(0),
],
q(koreguaje) => [
- q(1813),
+ q(1810),
q(0),
],
q(koresh-e rostam) => [
- q(5230),
+ q(5225),
q(0),
],
q(korku) => [
- q(3299),
+ q(3298),
q(0),
],
q(korlai creole portuguese) => [
- q(7013),
+ q(6998),
q(0),
],
q(koro (cote d'ivoire)) => [
- q(3297),
+ q(3296),
q(0),
],
q(koro (india)) => [
- q(3112),
+ q(3111),
q(0),
],
q(koro (papua new guinea)) => [
- q(3733),
+ q(3726),
q(0),
],
q(koro (vanuatu)) => [
- q(3578),
+ q(3574),
q(0),
],
q(koro wachi) => [
@@ -38294,11 +38287,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(koromfe) => [
- q(3308),
+ q(3307),
q(0),
],
q(koromira) => [
- q(3557),
+ q(3553),
q(0),
],
q(koronadal blaan) => [
@@ -38306,731 +38299,731 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(koroni) => [
- q(7384),
+ q(7369),
q(0),
],
q(korop) => [
- q(3585),
+ q(3580),
q(0),
],
q(koropo) => [
- q(7563),
+ q(7548),
q(0),
],
q(koroshi) => [
- q(3631),
+ q(3626),
q(0),
],
q(korowai) => [
- q(3336),
+ q(3333),
q(0),
],
q(korra koraga) => [
- q(3286),
+ q(3285),
q(0),
],
q(korubo) => [
- q(7455),
+ q(7440),
q(0),
],
q(korupun-sela) => [
- q(3538),
+ q(3534),
q(0),
],
q(korur) => [
- q(0947),
+ q(0948),
q(1),
],
q(korwa) => [
- q(3298),
+ q(3297),
q(0),
],
q(koryak) => [
- q(3546),
+ q(3542),
q(0),
],
q(kosadle) => [
- q(3369),
+ q(3366),
q(0),
],
q(kosare) => [
- q(3369),
+ q(3366),
q(1),
],
q(kosarek yale) => [
- q(3414),
+ q(3411),
q(0),
],
q(kosena) => [
- q(3772),
+ q(3765),
q(0),
],
q(koshin) => [
- q(3358),
+ q(3355),
q(0),
],
q(kosli) => [
- q(6195),
+ q(6184),
q(1),
],
q(kosraean) => [
- q(0232),
+ q(0233),
q(0),
],
q(kota (gabon)) => [
- q(3516),
+ q(3513),
q(0),
],
q(kota (india)) => [
- q(3287),
+ q(3286),
q(0),
],
q(kota bangun kutai malay) => [
- q(4486),
+ q(4479),
q(0),
],
q(kota marudu talantang) => [
- q(2620),
- q(0),
- ],
- q(kota marudu tinagas) => [
- q(3637),
+ q(2618),
q(0),
],
q(kotafon gbe) => [
- q(3558),
+ q(3554),
q(0),
],
q(kotava) => [
- q(0958),
+ q(0959),
q(0),
],
q(koti) => [
- q(2239),
+ q(2235),
q(0),
],
q(kott) => [
- q(7865),
+ q(7850),
q(0),
],
q(kouya) => [
- q(3747),
+ q(3740),
q(0),
],
q(kovai) => [
- q(3549),
+ q(3545),
q(0),
],
q(kove) => [
- q(3669),
+ q(3663),
q(0),
],
q(kowaki) => [
- q(7456),
+ q(7441),
q(0),
],
q(kowiai) => [
- q(3700),
+ q(3693),
q(0),
],
q(koy sanjaq surat) => [
- q(3551),
+ q(3547),
q(0),
],
q(koya) => [
- q(3288),
+ q(3287),
q(0),
],
q(koyaga) => [
- q(3309),
+ q(3308),
q(0),
],
q(koyo) => [
- q(3511),
+ q(3508),
q(0),
],
q(koyra chiini songhay) => [
- q(3345),
+ q(3342),
q(0),
],
q(koyraboro senni songhai) => [
- q(5979),
+ q(5970),
q(0),
],
q(koyukon) => [
- q(3522),
+ q(3518),
q(0),
],
q(kpagua) => [
- q(3663),
+ q(3657),
q(0),
],
q(kpala) => [
- q(3534),
+ q(3530),
q(0),
],
q(kpan) => [
- q(3533),
+ q(3529),
q(0),
],
q(kpasam) => [
- q(5372),
+ q(5368),
q(0),
],
q(kpati) => [
- q(3506),
+ q(3503),
q(0),
],
q(kpatili) => [
- q(3754),
+ q(3747),
q(0),
],
q(kpeego) => [
- q(1837),
+ q(1833),
q(0),
],
q(kpelle) => [
- q(0233),
+ q(0234),
q(0),
],
q(kpessi) => [
- q(3262),
+ q(3261),
q(0),
],
q(kplang) => [
- q(3530),
+ q(3526),
q(0),
],
q(krache) => [
- q(3746),
+ q(3739),
q(0),
],
q(kraho) => [
- q(7476),
+ q(7461),
q(0),
],
q(kraol) => [
- q(5798),
+ q(5788),
q(0),
],
q(krenak) => [
- q(3564),
+ q(3560),
q(0),
],
q(krevinian) => [
- q(7870),
+ q(7855),
q(0),
],
q(kreye) => [
- q(7479),
+ q(7464),
q(0),
],
- q(krikati-timbira) => [
- q(7481),
+ q(kriang) => [
+ q(4846),
q(0),
],
- q(krim) => [
- q(3583),
+ q(krikati-timbira) => [
+ q(7466),
q(0),
],
q(krio) => [
- q(3580),
+ q(3576),
q(0),
],
q(kriol) => [
- q(5845),
+ q(5834),
q(0),
],
q(krisa) => [
- q(3602),
+ q(3597),
q(0),
],
q(krobu) => [
- q(3719),
+ q(3712),
q(0),
],
q(krongo) => [
- q(3322),
+ q(3319),
q(0),
],
q(kru languages) => [
- q(0236),
+ q(0237),
q(0),
],
- q(kru'ng 2) => [
- q(3586),
+ q(krung) => [
+ q(3581),
q(0),
],
q(krymchak) => [
- q(3070),
+ q(3069),
q(0),
],
q(kryts) => [
- q(3592),
+ q(3587),
q(0),
],
q(kua) => [
- q(6841),
+ q(6825),
q(0),
],
q(kua-nsi) => [
- q(7670),
+ q(7655),
q(0),
],
q(kuamasi) => [
- q(7674),
+ q(7659),
q(0),
],
q(kuan) => [
- q(6853),
+ q(6837),
q(0),
],
q(kuanhua) => [
- q(7435),
+ q(7420),
q(0),
],
q(kuanua) => [
- q(3597),
+ q(3592),
q(0),
],
q(kuanyama) => [
- q(0238),
+ q(0239),
q(0),
],
q(kube) => [
- q(3314),
+ q(3311),
q(0),
],
q(kubi) => [
- q(3509),
+ q(3506),
q(0),
],
q(kubo) => [
- q(3110),
+ q(3109),
q(0),
],
q(kubu) => [
- q(3668),
+ q(3662),
q(0),
],
q(kucong) => [
- q(3941),
+ q(3932),
q(0),
],
q(kudiya) => [
- q(3289),
+ q(3288),
q(0),
],
q(kudmali) => [
- q(3764),
+ q(3757),
q(0),
],
q(kudu-camo) => [
- q(3519),
+ q(3516),
q(0),
],
q(kugama) => [
- q(3520),
+ q(3517),
q(0),
],
q(kugbo) => [
- q(3275),
+ q(3274),
q(0),
],
q(kui (india)) => [
- q(3736),
+ q(3729),
q(0),
],
q(kui (indonesia)) => [
- q(3670),
+ q(3664),
q(0),
],
q(kuijau) => [
- q(2075),
+ q(2069),
q(0),
],
q(kuikuro-kalapalo) => [
- q(3653),
+ q(3647),
q(0),
],
q(kujarge) => [
- q(7008),
+ q(6993),
q(0),
],
q(kuk) => [
- q(3296),
+ q(3295),
q(0),
],
q(kukatja) => [
- q(3664),
+ q(3658),
q(0),
],
q(kuke) => [
- q(2513),
+ q(2509),
q(0),
],
q(kukele) => [
- q(3282),
+ q(3281),
q(0),
],
q(kukna) => [
- q(3280),
+ q(3279),
q(0),
],
q(kuku-mangk) => [
- q(7422),
+ q(7407),
q(0),
],
q(kuku-mu'inh) => [
- q(7421),
+ q(7406),
q(0),
],
q(kuku-muminh) => [
- q(7414),
+ q(7399),
q(0),
],
q(kuku-ugbanh) => [
- q(6870),
+ q(6854),
q(0),
],
q(kuku-uwanh) => [
- q(6966),
+ q(6951),
q(0),
],
q(kuku-yalanji) => [
- q(2673),
+ q(2670),
q(0),
],
q(kula) => [
- q(6660),
+ q(6644),
q(0),
],
q(kulere) => [
- q(3656),
+ q(3650),
q(0),
],
q(kulfa) => [
- q(3725),
+ q(3718),
q(0),
],
q(kulina) => [
- q(1911),
+ q(1906),
q(1),
],
q(kulina pano) => [
- q(7463),
+ q(7448),
q(0),
],
q(kulisusu) => [
- q(7010),
+ q(6995),
q(0),
],
q(kullu pahari) => [
- q(3306),
+ q(3305),
q(0),
],
q(kulon-pazeh) => [
- q(6960),
+ q(6945),
q(0),
],
q(kulung (nepal)) => [
- q(3433),
+ q(3430),
q(0),
],
q(kulung (nigeria)) => [
- q(1058),
+ q(1059),
q(0),
],
q(kumalu) => [
- q(3605),
+ q(3600),
q(0),
],
q(kumam) => [
- q(3242),
+ q(3241),
q(0),
],
q(kuman (papua new guinea)) => [
- q(3649),
+ q(3643),
q(0),
],
q(kuman (russia)) => [
- q(5718),
+ q(5709),
q(0),
],
q(kumaoni) => [
- q(3307),
+ q(3306),
q(0),
],
q(kumarbhag paharia) => [
- q(3463),
+ q(3460),
q(0),
],
q(kumba) => [
- q(3606),
+ q(3601),
q(0),
],
q(kumbainggar) => [
- q(3326),
+ q(3323),
q(0),
],
q(kumbaran) => [
- q(7146),
+ q(7132),
q(0),
],
q(kumbewaha) => [
- q(7386),
+ q(7371),
q(0),
],
q(kumhali) => [
- q(3574),
+ q(3570),
q(0),
],
q(kumiai) => [
- q(2041),
+ q(2035),
q(0),
],
q(kumukio) => [
- q(3658),
+ q(3652),
q(0),
],
q(kumyk) => [
- q(0239),
+ q(0240),
q(0),
],
q(kumzari) => [
- q(7967),
+ q(7952),
q(0),
],
q(kunama) => [
- q(3657),
+ q(3651),
q(0),
],
q(kunbarlang) => [
- q(7155),
+ q(7141),
q(0),
],
q(kunda) => [
- q(3247),
+ q(3246),
q(0),
],
q(kundal shahi) => [
- q(6013),
+ q(6004),
q(0),
],
q(kunduvadi) => [
- q(7149),
+ q(7135),
q(0),
],
q(kung) => [
- q(3294),
+ q(3293),
q(0),
],
q(kung-ekoka) => [
- q(3501),
+ q(3498),
q(0),
],
q(kungarakany) => [
- q(2496),
+ q(2494),
q(0),
],
q(kungardutyi) => [
- q(2470),
- q(0),
- ],
- q(kunggara) => [
- q(3685),
+ q(2468),
q(0),
],
q(kunggari) => [
- q(3319),
+ q(3316),
q(0),
],
q(kungkari) => [
- q(3954),
+ q(3945),
q(0),
],
q(kuni) => [
- q(3598),
+ q(3593),
q(0),
],
q(kuni-boazi) => [
- q(3673),
+ q(3667),
q(0),
],
q(kunigami) => [
- q(7533),
+ q(7518),
q(0),
],
q(kunimaipa) => [
- q(3659),
+ q(3653),
q(0),
],
q(kunja) => [
- q(5416),
+ q(5412),
q(0),
],
q(kunjen) => [
- q(3391),
+ q(3388),
q(0),
],
q(kunyi) => [
- q(4919),
+ q(4912),
q(0),
],
q(kunza) => [
- q(3666),
+ q(3660),
q(0),
],
q(kuo) => [
- q(7538),
+ q(7523),
q(0),
],
q(kuot) => [
- q(3634),
+ q(3629),
q(0),
],
q(kupa) => [
- q(3651),
+ q(3645),
q(0),
],
q(kupang malay) => [
- q(4355),
+ q(4348),
q(0),
],
q(kupia) => [
- q(3281),
+ q(3280),
q(0),
],
q(kupsabiny) => [
- q(3547),
+ q(3543),
q(0),
],
q(kur) => [
- q(3662),
+ q(3656),
q(0),
],
q(kura ede nago) => [
- q(5044),
+ q(5038),
q(0),
],
q(kurama) => [
- q(3579),
+ q(3575),
q(0),
],
q(kuranko) => [
- q(3489),
+ q(3486),
q(0),
],
q(kurdish) => [
- q(0240),
+ q(0241),
q(0),
],
q(kuri) => [
- q(4751),
+ q(4743),
q(0),
],
q(kuria) => [
- q(3654),
+ q(3648),
q(0),
],
q(kurichiya) => [
- q(3290),
+ q(3289),
q(0),
],
q(kurmukar) => [
- q(3304),
+ q(3303),
q(0),
],
q(kurnai) => [
- q(6919),
+ q(6904),
q(0),
],
q(kurrama) => [
- q(7015),
+ q(7000),
q(0),
],
q(kurti) => [
- q(3632),
+ q(3627),
q(0),
],
q(kurtokha) => [
- q(7393),
+ q(7378),
q(0),
],
q(kuruaya) => [
- q(3759),
+ q(3752),
q(0),
],
q(kurudu) => [
- q(3395),
+ q(3392),
q(0),
],
q(kurukh) => [
- q(0237),
+ q(0238),
q(0),
],
q(kusaal) => [
- q(3660),
+ q(3654),
q(0),
],
q(kusaghe) => [
- q(3600),
+ q(3595),
q(0),
],
q(kushi) => [
- q(3652),
+ q(3646),
q(0),
],
q(kusu) => [
- q(3615),
+ q(3610),
q(0),
],
q(kusunda) => [
- q(3315),
+ q(3312),
q(0),
],
q(kutang ghale) => [
- q(2513),
+ q(2509),
+ q(1),
+ ],
+ q(kutchi) => [
+ q(3299),
q(1),
],
q(kutenai) => [
- q(0241),
+ q(0242),
q(0),
],
q(kutep) => [
- q(3646),
+ q(3640),
q(0),
],
q(kuthant) => [
- q(7541),
+ q(7526),
q(0),
],
q(kutong) => [
- q(6082),
+ q(6072),
q(0),
],
q(kutto) => [
- q(3524),
+ q(3520),
q(0),
],
q(kutu) => [
- q(3236),
+ q(3235),
q(0),
],
q(kuturmi) => [
- q(3340),
+ q(3337),
q(0),
],
q(kuuk-yak) => [
- q(6889),
+ q(6874),
q(0),
],
q(kuuku-ya'u) => [
- q(3665),
+ q(3659),
+ q(0),
+ ],
+ q(kuvale) => [
+ q(5246),
q(0),
],
q(kuvi) => [
- q(3737),
+ q(3730),
q(0),
],
q(kuwaa) => [
@@ -39038,23 +39031,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kuwaataay) => [
- q(1929),
+ q(1923),
q(0),
],
q(kuy) => [
- q(3251),
+ q(3250),
q(0),
],
q(kven finnish) => [
- q(2352),
+ q(2349),
q(0),
],
q(kw'adza) => [
- q(7145),
+ q(7131),
q(0),
],
q(kwa) => [
- q(3694),
+ q(3687),
q(0),
],
q(kwa') => [
@@ -39062,147 +39055,151 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kwaami) => [
- q(3610),
+ q(3605),
q(0),
],
q(kwadi) => [
- q(3717),
+ q(3710),
q(0),
],
q(kwaio) => [
- q(3696),
+ q(3689),
q(0),
],
q(kwaja) => [
- q(3256),
+ q(3255),
q(0),
],
q(kwakiutl) => [
- q(3703),
+ q(3696),
q(0),
],
q(kwakum) => [
- q(3712),
+ q(3705),
q(0),
],
q(kwalhioqua-tlatskanai) => [
- q(5720),
+ q(5711),
q(0),
],
q(kwama) => [
- q(3470),
+ q(3467),
q(0),
],
q(kwambi) => [
- q(3705),
+ q(3698),
q(0),
],
q(kwamera) => [
- q(6619),
+ q(6604),
q(0),
],
q(kwami) => [
- q(3625),
+ q(3620),
q(0),
],
q(kwamtim one) => [
- q(5233),
+ q(5228),
+ q(0),
+ ],
+ q(kwandu) => [
+ q(7313),
q(0),
],
q(kwang) => [
- q(3675),
+ q(3669),
q(0),
],
q(kwanga) => [
- q(3702),
+ q(3695),
q(0),
],
q(kwangali) => [
- q(3706),
+ q(3699),
q(0),
],
q(kwanja) => [
- q(3494),
+ q(3491),
q(0),
],
q(kwanyama) => [
- q(0238),
+ q(0239),
q(1),
],
q(kwara'ae) => [
- q(3698),
+ q(3691),
q(0),
],
q(kwasio) => [
- q(4968),
+ q(4961),
q(0),
],
q(kwaya) => [
- q(3742),
+ q(3735),
q(0),
],
q(kwaza) => [
- q(7548),
+ q(7533),
q(0),
],
q(kwegu) => [
- q(7552),
+ q(7537),
q(0),
],
q(kwenyi) => [
- q(3244),
+ q(3243),
q(1),
],
q(kwer) => [
- q(3709),
+ q(3702),
q(0),
],
q(kwerba) => [
- q(3697),
+ q(3690),
q(0),
],
q(kwerba mamberamo) => [
- q(7557),
+ q(7542),
q(0),
],
q(kwere) => [
- q(1927),
+ q(1921),
q(0),
],
q(kwerisa) => [
- q(3404),
+ q(3401),
q(0),
],
q(kwese) => [
- q(3710),
+ q(3703),
q(0),
],
q(kwesten) => [
- q(3711),
+ q(3704),
q(0),
],
q(kwini) => [
- q(2692),
+ q(2689),
q(0),
],
q(kwinsu) => [
- q(3647),
+ q(3641),
q(0),
],
q(kwinti) => [
- q(3714),
+ q(3707),
q(0),
],
q(kwoma) => [
- q(3468),
+ q(3465),
q(0),
],
q(kwomtari) => [
- q(3707),
+ q(3700),
q(0),
],
q(kxoe) => [
- q(7542),
+ q(7527),
q(0),
],
q(kyak) => [
@@ -39210,295 +39207,295 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kyaka) => [
- q(3744),
+ q(3737),
q(0),
],
q(kyan-karyaw naga) => [
- q(5047),
+ q(5042),
q(0),
],
q(kyanga) => [
- q(6831),
+ q(6815),
q(0),
],
q(kyenele) => [
- q(3559),
+ q(3555),
q(0),
],
q(kyerung) => [
- q(3332),
+ q(3329),
q(0),
],
q(kyrgyz) => [
- q(0226),
+ q(0227),
q(1),
],
q(la'bi) => [
- q(3819),
+ q(3810),
q(0),
],
q(laa laa bwamu) => [
- q(1551),
+ q(1550),
q(0),
],
q(laadan) => [
- q(3856),
+ q(3847),
q(0),
],
q(laal) => [
- q(2464),
+ q(2462),
q(0),
],
q(laalaa) => [
- q(1642),
+ q(1641),
q(1),
],
q(laari) => [
- q(3851),
+ q(3842),
q(0),
],
q(laba) => [
- q(3808),
+ q(3799),
q(0),
],
q(label) => [
- q(3814),
+ q(3805),
q(0),
],
q(labir) => [
- q(3113),
+ q(3112),
q(0),
],
q(labo) => [
- q(4632),
+ q(4625),
q(0),
],
q(labo phowa) => [
- q(7728),
+ q(7713),
q(0),
],
q(labu) => [
- q(3830),
+ q(3821),
q(0),
],
q(labuk-kinabatangan kadazan) => [
- q(2157),
+ q(2151),
q(0),
],
q(lacandon) => [
- q(3795),
+ q(3786),
q(0),
],
q(lachi) => [
- q(3829),
+ q(3820),
q(0),
],
q(lachiguiri zapotec) => [
- q(7914),
+ q(7899),
q(0),
],
q(lachixio zapotec) => [
- q(7925),
+ q(7910),
q(0),
],
q(ladakhi) => [
- q(3820),
+ q(3811),
q(0),
],
q(ladin) => [
- q(3959),
+ q(3950),
q(0),
],
q(ladino) => [
- q(0242),
+ q(0243),
q(0),
],
q(ladji ladji) => [
- q(3965),
+ q(3956),
q(0),
],
q(laeko-libuat) => [
- q(3947),
+ q(3938),
q(0),
],
q(lafofa) => [
- q(3797),
+ q(3788),
q(0),
],
q(laghu) => [
- q(3887),
+ q(3878),
q(0),
],
q(laghuu) => [
- q(3889),
+ q(3880),
q(0),
],
q(lagwan) => [
- q(3517),
+ q(3514),
q(0),
],
q(laha (indonesia)) => [
- q(3901),
+ q(3892),
q(0),
],
q(laha (viet nam)) => [
- q(3900),
+ q(3891),
q(0),
],
q(lahanan) => [
- q(3905),
+ q(3896),
q(0),
],
q(lahnda) => [
- q(0243),
+ q(0244),
q(0),
],
q(lahta) => [
- q(3686),
+ q(3679),
q(1),
],
q(lahta karen) => [
- q(3686),
+ q(3679),
q(0),
],
q(lahu) => [
- q(3909),
+ q(3900),
q(0),
],
q(lahu shi) => [
- q(3902),
+ q(3893),
q(0),
],
q(lahul lohar) => [
- q(3903),
+ q(3894),
q(0),
],
q(laimbue) => [
- q(3996),
+ q(3987),
q(0),
],
q(laitu chin) => [
- q(1775),
+ q(1772),
q(0),
],
q(laiyolo) => [
- q(3934),
+ q(3925),
q(0),
],
q(lak) => [
- q(3816),
+ q(3807),
q(0),
],
q(laka (chad)) => [
- q(3804),
+ q(3795),
q(0),
],
q(laka (nigeria)) => [
- q(3801),
+ q(3792),
q(0),
],
q(lakalei) => [
- q(3939),
+ q(3930),
q(0),
],
q(lake miwok) => [
- q(3995),
+ q(3986),
q(0),
],
q(lakha) => [
- q(3944),
+ q(3935),
q(0),
],
q(laki) => [
- q(3945),
+ q(3936),
q(0),
],
q(lakkia) => [
- q(3815),
+ q(3806),
q(0),
],
q(lakon) => [
- q(3949),
+ q(3940),
q(0),
],
q(lakonde) => [
- q(3942),
+ q(3933),
q(0),
],
q(lakota) => [
- q(3953),
+ q(3944),
q(0),
],
q(lakota dida) => [
- q(2037),
+ q(2031),
q(0),
],
q(lala) => [
- q(5065),
+ q(5060),
q(0),
],
q(lala-bisa) => [
- q(3861),
+ q(3852),
q(0),
],
q(lala-roba) => [
- q(3956),
+ q(3947),
q(0),
],
q(lalana chinantec) => [
- q(1802),
+ q(1799),
q(0),
],
q(lalia) => [
- q(3802),
+ q(3793),
q(0),
],
q(lama (togo)) => [
- q(3807),
+ q(3798),
q(0),
],
q(lama bai) => [
- q(3811),
+ q(3802),
q(0),
],
q(lamaholot) => [
- q(6106),
+ q(6096),
q(0),
],
q(lamalera) => [
- q(3992),
+ q(3983),
q(0),
],
q(lamang) => [
- q(2753),
+ q(2750),
q(0),
],
q(lamatuka) => [
- q(3991),
+ q(3982),
q(0),
],
q(lamba) => [
- q(0244),
+ q(0245),
q(0),
],
q(lambadi) => [
- q(3988),
+ q(3979),
q(0),
],
q(lambayeque quechua) => [
- q(5683),
+ q(5674),
q(0),
],
q(lambichhong) => [
- q(3983),
+ q(3974),
q(0),
],
q(lamboya) => [
- q(3997),
+ q(3988),
q(0),
],
q(lambya) => [
- q(3799),
+ q(3790),
q(0),
],
q(lame) => [
@@ -39506,243 +39503,243 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lamenu) => [
- q(3993),
+ q(3984),
q(0),
],
q(lamet) => [
- q(3824),
+ q(3815),
q(0),
],
q(lamja-dengsa-tola) => [
- q(3850),
+ q(3841),
q(0),
],
q(lamkang) => [
- q(3986),
+ q(3977),
q(0),
],
q(lamma) => [
- q(3880),
+ q(3871),
q(0),
],
q(lamnso') => [
- q(4010),
+ q(4001),
q(0),
],
q(lamogai) => [
- q(3982),
+ q(3973),
q(0),
],
q(lampung api) => [
- q(3936),
+ q(3927),
q(0),
],
q(lampung nyo) => [
- q(0569),
+ q(0570),
q(0),
],
q(lamu) => [
- q(3963),
+ q(3954),
q(0),
],
q(lamu-lamu) => [
- q(3834),
+ q(3825),
q(0),
],
q(lanas lobu) => [
- q(5873),
+ q(5862),
q(0),
],
q(land dayak languages) => [
- q(0105),
+ q(0106),
q(0),
],
q(landoma) => [
- q(3855),
+ q(3846),
q(0),
],
q(lang'e) => [
- q(7708),
+ q(7693),
q(0),
],
q(langam) => [
- q(4007),
+ q(3998),
q(0),
],
q(langbashe) => [
- q(3999),
+ q(3990),
q(0),
],
q(langi) => [
- q(3798),
+ q(3789),
q(0),
],
q(langnian buyang) => [
- q(7683),
+ q(7668),
q(0),
],
q(lango (sudan)) => [
- q(4009),
+ q(4000),
q(0),
],
q(lango (uganda)) => [
- q(3800),
+ q(3791),
q(0),
],
q(langobardic) => [
- q(4002),
+ q(3993),
q(0),
],
q(langue des signes de belgique francophone) => [
- q(5986),
+ q(5977),
q(0),
],
q(lanima) => [
- q(4012),
+ q(4003),
q(0),
],
q(lanoh) => [
- q(4003),
+ q(3994),
q(0),
],
q(lao) => [
- q(0245),
+ q(0246),
q(0),
],
q(lao naga) => [
- q(4955),
+ q(4948),
q(0),
],
q(laomian) => [
- q(4103),
+ q(4095),
q(0),
],
q(laopang) => [
- q(3818),
+ q(3809),
q(0),
],
q(laos sign language) => [
- q(4064),
+ q(4055),
q(0),
],
q(lapaguia-guivini zapotec) => [
- q(7955),
+ q(7940),
q(0),
],
q(laragia) => [
- q(4045),
+ q(4036),
q(0),
],
q(larantuka malay) => [
- q(4053),
+ q(4044),
q(0),
],
q(lardil) => [
- q(3835),
+ q(3826),
q(0),
],
q(larevat) => [
- q(4054),
+ q(4045),
q(0),
],
q(large flowery miao) => [
- q(2780),
+ q(2777),
q(0),
],
q(lari) => [
- q(4048),
+ q(4039),
q(0),
],
q(larike-wakasihu) => [
- q(0756),
+ q(0757),
q(0),
],
q(laro) => [
- q(4051),
+ q(4042),
q(0),
],
q(larteh) => [
- q(3806),
+ q(3797),
q(0),
],
q(laru) => [
- q(3803),
+ q(3794),
q(0),
],
q(lasalimu) => [
- q(3968),
+ q(3959),
q(0),
],
q(lasgerdi) => [
- q(4056),
+ q(4047),
q(0),
],
q(lashi) => [
- q(4061),
+ q(4052),
q(0),
],
q(lasi) => [
- q(4067),
+ q(4058),
q(0),
],
q(late middle chinese) => [
- q(4070),
+ q(4061),
q(0),
],
q(latgalian) => [
- q(4071),
+ q(4062),
q(0),
],
q(latin) => [
- q(0246),
+ q(0247),
q(0),
],
q(latu) => [
- q(4076),
+ q(4068),
q(0),
],
q(latunde) => [
- q(4073),
+ q(4065),
q(0),
],
q(latvian) => [
- q(0247),
+ q(0248),
q(0),
],
q(latvian sign language) => [
- q(4062),
+ q(4053),
q(0),
],
q(lau) => [
- q(3974),
+ q(3965),
q(0),
],
q(laua) => [
- q(4080),
+ q(4072),
q(0),
],
q(lauan) => [
- q(3975),
+ q(3966),
q(0),
],
q(lauje) => [
- q(3809),
+ q(3800),
q(0),
],
q(laura) => [
- q(4087),
+ q(4079),
q(0),
],
q(laurentian) => [
- q(4044),
+ q(4035),
q(0),
],
q(lautu chin) => [
- q(1780),
+ q(1777),
q(0),
],
q(lavatbura-lamusong) => [
- q(3831),
+ q(3822),
q(0),
],
q(lave) => [
@@ -39750,195 +39747,195 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(laven) => [
- q(3825),
+ q(3816),
q(0),
],
q(lavrung) => [
- q(3102),
+ q(3100),
q(1),
],
q(lavukaleve) => [
- q(4095),
+ q(4087),
q(0),
],
q(lawangan) => [
- q(3833),
+ q(3824),
q(0),
],
q(lawu) => [
- q(4106),
+ q(4098),
q(0),
],
q(lawunuia) => [
- q(6482),
+ q(6471),
q(0),
],
q(layakha) => [
- q(4108),
+ q(4100),
q(0),
],
q(laz) => [
- q(4114),
+ q(4106),
q(0),
],
q(lealao chinantec) => [
- q(1772),
+ q(1769),
q(0),
],
q(leco) => [
- q(3862),
+ q(3853),
q(0),
],
q(ledo kaili) => [
- q(3881),
+ q(3872),
q(0),
],
q(leelau) => [
- q(3853),
+ q(3844),
q(0),
],
q(lefa) => [
- q(3884),
+ q(3875),
q(0),
],
q(lega-mwenga) => [
- q(3893),
+ q(3884),
q(0),
],
q(lega-shabunda) => [
- q(3860),
+ q(3851),
q(0),
],
q(legbo) => [
- q(0653),
+ q(0654),
q(0),
],
q(legenyem) => [
- q(3836),
+ q(3827),
q(0),
],
q(lehali) => [
- q(6678),
+ q(6662),
q(0),
],
q(lehalurup) => [
- q(6940),
+ q(6925),
q(0),
],
q(lehar) => [
- q(1642),
+ q(1641),
q(0),
],
q(leinong naga) => [
- q(4113),
+ q(4105),
q(0),
],
q(leipon) => [
- q(3869),
+ q(3860),
q(0),
],
q(lelak) => [
- q(3966),
+ q(3957),
q(0),
],
q(lele (chad)) => [
- q(3969),
+ q(3960),
q(0),
],
q(lele (democratic republic of congo)) => [
- q(3870),
+ q(3861),
q(0),
],
q(lele (guinea)) => [
- q(3958),
+ q(3949),
q(0),
],
q(lele (papua new guinea)) => [
- q(3960),
+ q(3951),
q(0),
],
q(lelemi) => [
- q(3865),
+ q(3856),
q(0),
],
q(lelepa) => [
- q(4037),
+ q(4028),
q(0),
],
q(lembena) => [
- q(3875),
+ q(3866),
q(0),
],
q(lemerig) => [
- q(4055),
+ q(4046),
q(0),
],
q(lemio) => [
- q(3867),
+ q(3858),
q(0),
],
q(lemnian) => [
- q(7398),
+ q(7383),
q(0),
],
q(lemolang) => [
- q(3883),
+ q(3874),
q(0),
],
q(lemoro) => [
- q(3852),
+ q(3843),
q(0),
],
q(lenakel) => [
- q(6620),
+ q(6605),
q(0),
],
q(lenca) => [
- q(3872),
+ q(3863),
q(0),
],
q(lendu) => [
- q(3863),
+ q(3854),
q(0),
],
q(lengilu) => [
- q(3890),
+ q(3881),
q(0),
],
q(lengo) => [
- q(3896),
+ q(3887),
q(0),
],
q(lengola) => [
- q(3868),
+ q(3859),
q(0),
],
q(lengua de senas catalana) => [
- q(1867),
+ q(1862),
q(1),
],
q(lengua de senas del paraguay) => [
- q(5674),
+ q(5665),
q(1),
],
q(lengua de senas panamenas) => [
- q(4065),
+ q(4056),
q(1),
],
q(leningitij) => [
- q(4005),
+ q(3996),
q(0),
],
q(lenje) => [
- q(3866),
+ q(3857),
q(0),
],
q(lenkau) => [
- q(3876),
+ q(3867),
q(0),
],
q(lenyima) => [
- q(3849),
+ q(3840),
q(0),
],
q(leonese) => [
@@ -39946,187 +39943,187 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(lepcha) => [
- q(3874),
+ q(3865),
q(0),
],
q(lepki) => [
- q(4038),
+ q(4029),
q(0),
],
q(lepontic) => [
- q(7403),
+ q(7388),
q(0),
],
q(lere) => [
- q(2573),
+ q(2571),
q(0),
],
q(lese) => [
- q(3877),
+ q(3868),
q(0),
],
q(lesing-gelimi) => [
- q(3878),
+ q(3869),
q(0),
],
q(letemboi) => [
- q(4980),
+ q(4973),
q(0),
],
q(leti (cameroon)) => [
- q(3873),
+ q(3864),
q(0),
],
q(leti (indonesia)) => [
- q(4072),
+ q(4064),
q(0),
],
q(letzeburgesch) => [
- q(0254),
+ q(0255),
q(1),
],
q(levuka) => [
- q(4097),
+ q(4089),
q(0),
],
q(lewo) => [
- q(4107),
+ q(4099),
q(0),
],
q(lewo eleng) => [
- q(4099),
+ q(4091),
q(0),
],
q(lewotobi) => [
- q(4105),
+ q(4097),
q(0),
],
q(leyigha) => [
- q(0999),
+ q(1000),
q(0),
],
q(lezghian) => [
- q(0248),
+ q(0249),
q(0),
],
q(lhaovo) => [
- q(4296),
+ q(4288),
q(1),
],
q(lhokpu) => [
- q(3906),
+ q(3897),
q(0),
],
q(lhomi) => [
- q(3904),
+ q(3895),
q(0),
],
q(li'o) => [
- q(3935),
+ q(3926),
q(0),
],
q(liabuku) => [
- q(3929),
+ q(3920),
q(0),
],
q(liana-seti) => [
- q(6257),
+ q(6246),
q(0),
],
q(liangmai naga) => [
- q(4913),
+ q(4906),
q(0),
],
q(lianshan zhuang) => [
- q(7874),
+ q(7859),
q(0),
],
q(liberia kpelle) => [
- q(7459),
+ q(7444),
q(0),
],
q(liberian english) => [
- q(3924),
+ q(3915),
q(0),
],
q(libido) => [
- q(3923),
+ q(3914),
q(0),
],
q(libinza) => [
- q(3931),
+ q(3922),
q(0),
],
q(libon bikol) => [
- q(3822),
+ q(3813),
q(0),
],
q(liburnian) => [
- q(7400),
+ q(7385),
q(0),
],
q(libyan arabic) => [
- q(1001),
+ q(1002),
q(0),
],
q(libyan sign language) => [
- q(3828),
+ q(3819),
q(0),
],
q(ligbi) => [
- q(3916),
+ q(3907),
q(0),
],
q(ligenza) => [
- q(3899),
+ q(3890),
q(0),
],
q(ligurian) => [
- q(3918),
+ q(3909),
q(0),
],
q(ligurian (ancient)) => [
- q(7399),
+ q(7384),
q(0),
],
q(lihir) => [
- q(3917),
+ q(3908),
q(0),
],
q(lijili) => [
- q(4258),
+ q(4250),
q(0),
],
q(lika) => [
- q(3919),
+ q(3910),
q(0),
],
q(liki) => [
- q(3921),
+ q(3912),
q(0),
],
q(likila) => [
- q(3914),
+ q(3905),
q(0),
],
q(likuba) => [
- q(3739),
+ q(3732),
q(0),
],
q(likum) => [
- q(3911),
+ q(3902),
q(0),
],
q(likwala) => [
- q(3695),
+ q(3688),
q(0),
],
q(lilau) => [
- q(3967),
+ q(3958),
q(0),
],
q(lillooet) => [
- q(3920),
+ q(3911),
q(0),
],
q(limassa) => [
@@ -40134,843 +40131,839 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(limbu) => [
- q(3915),
+ q(3906),
q(0),
],
q(limbum) => [
- q(3990),
+ q(3981),
q(0),
],
q(limburgan) => [
- q(0249),
+ q(0250),
q(0),
],
q(limburger) => [
- q(0249),
+ q(0250),
q(1),
],
q(limburgish) => [
- q(0249),
+ q(0250),
q(2),
],
q(limi) => [
- q(7682),
+ q(7667),
q(0),
],
q(limilngan) => [
- q(3978),
+ q(3969),
q(0),
],
q(limos kalinga) => [
- q(3464),
+ q(3461),
q(0),
],
q(lindu) => [
- q(3451),
- q(0),
+ q(3448),
+ q(1),
],
q(linear a) => [
- q(3794),
+ q(3785),
q(0),
],
q(lingala) => [
- q(0250),
+ q(0251),
q(0),
],
q(lingao) => [
- q(5268),
+ q(5263),
q(0),
],
q(lingarak) => [
- q(3891),
+ q(3882),
q(0),
],
q(lingua franca) => [
- q(5518),
+ q(5514),
q(0),
],
q(lingua franca nova) => [
- q(3885),
+ q(3876),
q(0),
],
q(lipan apache) => [
- q(0844),
+ q(0845),
q(0),
],
q(lipo) => [
- q(4040),
+ q(4031),
q(0),
],
q(lisabata-nuniali) => [
- q(3845),
+ q(3836),
q(0),
],
q(lisela) => [
- q(3841),
+ q(3832),
q(0),
],
q(lish) => [
- q(4060),
+ q(4051),
q(0),
],
q(lishan didan) => [
- q(6694),
+ q(6678),
q(0),
],
q(lishana deni) => [
- q(4057),
+ q(4048),
q(0),
],
q(lishanid noshan) => [
- q(0700),
+ q(0701),
q(0),
],
q(lisu) => [
- q(3925),
+ q(3916),
q(0),
],
q(literary chinese) => [
- q(4111),
+ q(4103),
q(0),
],
q(lithuanian) => [
- q(0251),
+ q(0252),
q(0),
],
q(lithuanian sign language) => [
- q(3973),
+ q(3964),
q(0),
],
q(litzlitz) => [
- q(4112),
+ q(4104),
q(0),
],
q(liujiang zhuang) => [
- q(7872),
+ q(7857),
q(0),
],
q(liuqian zhuang) => [
- q(7875),
+ q(7860),
q(0),
],
q(liv) => [
- q(3927),
+ q(3918),
q(0),
],
q(livvi) => [
- q(5248),
+ q(5243),
q(0),
],
q(llengua de signes catalana) => [
- q(1867),
+ q(1862),
q(2),
],
q(llengua de signes valenciana) => [
- q(7050),
+ q(7035),
q(1),
],
q(lo-toga) => [
- q(3908),
+ q(3899),
q(0),
],
q(loarki) => [
- q(4047),
+ q(4038),
q(0),
],
q(lobala) => [
- q(4028),
+ q(4019),
q(0),
],
q(lobi) => [
- q(4015),
+ q(4006),
q(0),
],
q(lodhi) => [
- q(3823),
+ q(3814),
q(0),
],
q(logba) => [
- q(3895),
+ q(3886),
q(0),
],
q(logo) => [
- q(4019),
+ q(4010),
q(0),
],
q(logol) => [
- q(4018),
+ q(4009),
q(0),
],
q(logooli) => [
- q(5741),
+ q(5732),
q(0),
],
q(logorik) => [
- q(3926),
+ q(3917),
q(0),
],
q(logudorese sardinian) => [
- q(6211),
+ q(6200),
q(0),
],
q(lohorung) => [
- q(3827),
+ q(3818),
q(0),
],
q(loja highland quichua) => [
- q(5705),
+ q(5696),
q(0),
],
q(lojban) => [
- q(0204),
+ q(0205),
q(0),
],
q(lokaa) => [
- q(7598),
+ q(7583),
q(0),
],
q(loke) => [
- q(4036),
+ q(4027),
q(0),
],
q(loko) => [
- q(4023),
+ q(4014),
q(0),
],
q(lokoya) => [
- q(3955),
+ q(3946),
q(0),
],
q(lola) => [
- q(3837),
+ q(3828),
q(0),
],
q(lolak) => [
- q(3972),
+ q(3963),
q(0),
],
q(lole) => [
- q(3962),
+ q(3953),
q(0),
],
q(lolo) => [
- q(3957),
+ q(3948),
q(0),
],
q(loloda) => [
- q(4014),
+ q(4005),
q(0),
],
q(lolopo) => [
- q(7613),
+ q(7598),
q(0),
],
q(loma (cote d'ivoire)) => [
- q(4021),
+ q(4012),
q(0),
],
q(loma (liberia)) => [
- q(4024),
+ q(4015),
q(0),
],
q(lomaiviti) => [
- q(3994),
+ q(3985),
q(0),
],
q(lomavren) => [
- q(5813),
+ q(5803),
q(0),
],
q(lombard) => [
- q(3989),
+ q(3980),
q(0),
],
q(lombi) => [
- q(3984),
+ q(3975),
q(0),
],
q(lombo) => [
- q(4026),
+ q(4017),
q(0),
],
q(lomwe) => [
- q(4845),
+ q(4838),
q(0),
],
q(loncong) => [
- q(3838),
+ q(3829),
q(0),
],
q(long phuri naga) => [
- q(4039),
+ q(4030),
q(0),
],
q(long wat) => [
- q(6757),
+ q(6741),
q(0),
],
q(longgu) => [
- q(3898),
+ q(3889),
q(0),
],
q(longto) => [
- q(7204),
+ q(7190),
q(0),
],
q(longuda) => [
- q(4011),
+ q(4002),
q(0),
],
q(loniu) => [
- q(4030),
+ q(4021),
q(0),
],
q(lonwolwol) => [
- q(1846),
+ q(1841),
q(0),
],
q(lonzo) => [
- q(4013),
+ q(4004),
q(0),
],
q(loo) => [
- q(3857),
+ q(3848),
q(0),
],
q(lopa) => [
- q(4027),
+ q(4018),
q(0),
],
q(lopi) => [
- q(4033),
+ q(4024),
q(0),
],
q(lopit) => [
- q(4041),
+ q(4032),
q(0),
],
q(lorang) => [
- q(4050),
+ q(4041),
q(0),
],
q(lorediakarkar) => [
- q(4008),
+ q(3999),
q(0),
],
q(loreto-ucayali spanish) => [
- q(6190),
+ q(6179),
q(0),
],
q(lote) => [
- q(6965),
+ q(6950),
q(0),
],
q(lotha naga) => [
- q(4908),
+ q(4901),
q(0),
],
q(lotud) => [
- q(2165),
+ q(2160),
q(0),
],
q(lou) => [
- q(4022),
+ q(4013),
q(0),
],
- q(louisiana creole french) => [
- q(4032),
+ q(louisiana creole) => [
+ q(4023),
q(0),
],
q(loun) => [
- q(4035),
+ q(4026),
q(0),
],
q(loup a) => [
- q(7402),
+ q(7387),
q(0),
],
q(loup b) => [
- q(7395),
+ q(7380),
q(0),
],
q(lovono) => [
- q(7041),
+ q(7026),
q(1),
],
q(low german) => [
- q(0306),
+ q(0307),
q(0),
],
q(low saxon) => [
- q(0306),
+ q(0307),
q(1),
],
q(lower burdekin) => [
- q(7293),
+ q(7280),
q(0),
],
q(lower chehalis) => [
- q(1706),
+ q(1703),
q(0),
],
q(lower grand valley dani) => [
- q(2103),
+ q(2097),
q(0),
],
q(lower silesian) => [
- q(6101),
+ q(6091),
q(0),
],
q(lower sorbian) => [
- q(0113),
+ q(0114),
q(0),
],
q(lower southern aranda) => [
- q(0989),
+ q(0990),
q(0),
],
q(lower ta'oih) => [
- q(6749),
+ q(6733),
q(0),
],
q(lower tanana) => [
- q(6358),
+ q(6347),
q(0),
],
q(lowland oaxaca chontal) => [
- q(1779),
+ q(1776),
q(0),
],
q(lowland tarahumara) => [
- q(6360),
+ q(6349),
q(0),
],
q(loxicha zapotec) => [
- q(7958),
+ q(7943),
q(0),
],
q(loyop) => [
- q(6940),
+ q(6925),
q(1),
],
q(lozi) => [
- q(0253),
+ q(0254),
q(0),
],
q(lu) => [
- q(3333),
- q(0),
- ],
- q(lua') => [
- q(5587),
+ q(3330),
q(0),
],
q(luang) => [
- q(3882),
+ q(3873),
q(0),
],
q(luba-katanga) => [
- q(0256),
+ q(0257),
q(0),
],
q(luba-lulua) => [
- q(0255),
+ q(0256),
q(0),
],
q(lubila) => [
- q(3211),
+ q(3210),
q(0),
],
q(lubu) => [
- q(3839),
+ q(3830),
q(0),
],
q(lubuagan kalinga) => [
- q(3481),
+ q(3478),
q(0),
],
q(lubukusu) => [
- q(1577),
+ q(1576),
q(1),
],
q(luchazi) => [
- q(3840),
+ q(3831),
q(0),
],
q(lucumi) => [
- q(4086),
+ q(4078),
q(0),
],
q(ludian) => [
- q(4078),
+ q(4070),
q(0),
],
q(lufu) => [
- q(3859),
+ q(3850),
q(0),
],
q(lugbara) => [
- q(3888),
+ q(3879),
q(0),
],
q(luguru) => [
- q(5865),
+ q(5854),
q(0),
],
q(luhu) => [
- q(3844),
+ q(3835),
q(0),
],
q(lui) => [
- q(3813),
+ q(3804),
q(0),
],
q(luidakho-luisukha-lutirichi) => [
- q(2902),
+ q(2899),
q(1),
],
q(luimbi) => [
- q(4084),
+ q(4076),
q(0),
],
q(luiseno) => [
- q(0258),
+ q(0259),
q(0),
],
q(lukabaras) => [
- q(3940),
+ q(3931),
q(1),
],
q(lukpa) => [
- q(2123),
+ q(2117),
q(0),
],
q(lule) => [
- q(6893),
+ q(6878),
q(0),
],
q(lule sami) => [
- q(0390),
+ q(0391),
q(0),
],
q(lulogooli) => [
- q(5741),
+ q(5732),
q(1),
],
q(lumba-yakkha) => [
- q(4089),
+ q(4081),
q(0),
],
q(lumbee) => [
- q(3998),
+ q(3989),
q(0),
],
q(lumbu) => [
- q(4085),
+ q(4077),
q(0),
],
q(lumun) => [
- q(3979),
+ q(3970),
q(0),
],
q(lun bawang) => [
- q(4001),
+ q(3992),
q(1),
],
q(luna) => [
- q(4081),
+ q(4073),
q(0),
],
q(lunanakha) => [
- q(4082),
+ q(4074),
q(0),
],
q(lunda) => [
- q(0259),
+ q(0260),
q(0),
],
q(lundayeh) => [
- q(4001),
+ q(3992),
q(0),
],
q(lungalunga) => [
- q(7024),
+ q(7009),
q(0),
],
q(lungga) => [
- q(3886),
+ q(3877),
q(0),
],
q(luo (cameroon)) => [
- q(4091),
+ q(4083),
q(0),
],
q(luo (kenya and tanzania)) => [
- q(0260),
+ q(0261),
q(0),
],
q(luopohe hmong) => [
- q(2788),
+ q(2785),
q(0),
],
q(luopohe miao) => [
- q(2788),
+ q(2785),
q(1),
],
q(luri) => [
- q(3848),
+ q(3839),
q(0),
],
q(lusengo) => [
- q(4058),
+ q(4049),
q(0),
],
q(lushai) => [
- q(0261),
+ q(0262),
q(0),
],
q(lushootseed) => [
- q(4088),
+ q(4080),
q(0),
],
q(lusi) => [
- q(3342),
+ q(3339),
q(0),
],
q(lusitanian) => [
- q(7404),
+ q(7389),
q(0),
],
q(lutachoni) => [
- q(4075),
+ q(4067),
q(1),
],
q(lutos) => [
- q(4805),
+ q(4798),
q(0),
],
q(luvale) => [
- q(4079),
+ q(4071),
q(0),
],
q(luwati) => [
- q(4090),
+ q(4082),
q(0),
],
q(luwo) => [
- q(4104),
+ q(4096),
q(0),
],
q(luxembourgish) => [
- q(0254),
+ q(0255),
q(0),
],
q(luyana) => [
- q(4110),
+ q(4102),
q(0),
],
q(luyia) => [
- q(4092),
+ q(4084),
q(0),
],
q(lwalu) => [
- q(4098),
+ q(4090),
q(0),
],
q(lycian) => [
- q(7396),
+ q(7381),
q(0),
],
q(lydian) => [
- q(7397),
+ q(7382),
q(0),
],
q(lyele) => [
- q(3864),
+ q(3855),
q(0),
],
q(lyngngam) => [
- q(4109),
+ q(4101),
q(0),
],
q(lyons sign language) => [
- q(4059),
+ q(4050),
q(0),
],
q(ma (democratic republic of congo)) => [
- q(4539),
+ q(4532),
q(0),
],
q(ma (papua new guinea)) => [
- q(4331),
+ q(4324),
q(0),
],
q(ma manda) => [
- q(6073),
+ q(6064),
q(0),
],
q(ma'anyan) => [
- q(4297),
+ q(4289),
q(0),
],
q(ma'di) => [
- q(4282),
+ q(4274),
q(0),
],
q(ma'ya) => [
- q(6115),
+ q(6105),
q(0),
],
q(maa) => [
- q(1784),
+ q(1781),
q(0),
],
q(maaka) => [
- q(4222),
+ q(4214),
q(0),
],
q(maasina fulfulde) => [
- q(2343),
+ q(2340),
q(0),
],
q(maay) => [
- q(7697),
+ q(7682),
q(0),
],
q(maba (chad)) => [
- q(4183),
+ q(4175),
q(0),
],
q(maba (indonesia)) => [
- q(4481),
+ q(4474),
q(0),
],
q(mabaale) => [
- q(4414),
+ q(4407),
q(0),
],
q(mabaan) => [
- q(4250),
+ q(4242),
q(0),
],
q(mabaka valley kalinga) => [
- q(3409),
+ q(3406),
q(0),
],
q(mabire) => [
- q(4588),
+ q(4581),
q(0),
],
q(maca) => [
- q(4153),
+ q(4145),
q(0),
],
q(macaguaje) => [
- q(4164),
+ q(4156),
q(0),
],
q(macaguan) => [
- q(4140),
+ q(4132),
q(0),
],
q(macanese) => [
- q(4711),
+ q(4704),
q(0),
],
q(macedo-romanian) => [
- q(0362),
+ q(0363),
q(2),
],
q(macedonian) => [
- q(0262),
+ q(0263),
q(0),
],
q(machame) => [
- q(3118),
+ q(3117),
q(0),
],
q(machiguenga) => [
- q(4154),
+ q(4146),
q(0),
],
q(machinere) => [
- q(4459),
+ q(4452),
q(0),
],
q(machinga) => [
- q(4621),
+ q(4614),
q(0),
],
q(maco) => [
- q(7212),
+ q(7198),
q(0),
],
q(macuna) => [
- q(4692),
+ q(4685),
q(0),
],
q(macushi) => [
- q(4130),
+ q(4122),
q(0),
],
q(mada (cameroon)) => [
- q(4667),
+ q(4660),
q(0),
],
q(mada (nigeria)) => [
- q(4179),
+ q(4171),
q(0),
],
q(madagascar sign language) => [
- q(4696),
+ q(4689),
q(0),
],
q(madak) => [
- q(4412),
+ q(4405),
q(0),
],
q(maden) => [
- q(7429),
+ q(7414),
q(0),
],
q(madhi madhi) => [
- q(2085),
+ q(2079),
q(0),
],
q(madi) => [
- q(2616),
+ q(2614),
q(0),
],
q(madngele) => [
- q(7887),
+ q(7872),
q(0),
],
q(madurese) => [
- q(0263),
+ q(0264),
q(0),
],
q(mae) => [
- q(4394),
+ q(4387),
q(0),
],
q(maek) => [
- q(2787),
+ q(2784),
q(0),
],
q(maeng itneg) => [
- q(3019),
+ q(3018),
q(0),
],
q(mafa) => [
- q(4118),
+ q(4110),
q(0),
],
q(mafea) => [
- q(4363),
+ q(4356),
q(0),
],
q(mag-antsi ayta) => [
- q(5991),
+ q(5982),
q(0),
],
q(mag-indi ayta) => [
@@ -40978,819 +40971,827 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(magahi) => [
- q(0264),
+ q(0265),
q(0),
],
q(magbukun ayta) => [
- q(1008),
+ q(1009),
q(0),
],
q(magdalena penasco mixtec) => [
- q(7517),
+ q(7502),
q(0),
],
q(maghdi) => [
- q(2557),
+ q(2555),
q(0),
],
q(magoma) => [
- q(2564),
+ q(2562),
q(0),
],
q(magori) => [
- q(7843),
+ q(7828),
q(0),
],
q(maguindanaon) => [
- q(4185),
+ q(4177),
q(0),
],
q(magyi) => [
- q(2558),
+ q(2556),
q(0),
],
q(mah meri) => [
- q(4279),
+ q(4271),
q(1),
],
q(mahali) => [
- q(4341),
+ q(4334),
q(0),
],
q(maharastri prakrit) => [
- q(5514),
+ q(5510),
q(0),
],
q(mahasu pahari) => [
- q(1160),
+ q(1161),
q(0),
],
q(mahican) => [
- q(4342),
+ q(4335),
q(0),
],
q(mahongwe) => [
- q(4276),
+ q(4268),
q(0),
],
q(mahou) => [
- q(4670),
+ q(4663),
q(0),
],
q(mai brat) => [
- q(1011),
+ q(1012),
q(0),
],
q(maia) => [
- q(6088),
+ q(6078),
q(0),
],
q(maiadomu) => [
- q(4718),
+ q(4711),
q(0),
],
q(maiani) => [
- q(6617),
+ q(6602),
q(0),
],
q(maii) => [
- q(4402),
+ q(4395),
q(0),
],
q(mailu) => [
- q(4270),
+ q(4262),
q(0),
],
q(maindo) => [
- q(1925),
+ q(1919),
q(0),
],
q(mainfrankisch) => [
- q(7023),
+ q(7008),
q(0),
],
q(mainstream kenyah) => [
- q(7380),
+ q(7365),
q(0),
],
q(mairasi) => [
- q(7946),
+ q(7931),
q(0),
],
q(maisin) => [
- q(4143),
+ q(4135),
q(0),
],
q(maithili) => [
- q(0266),
+ q(0267),
q(0),
],
q(maiwa (indonesia)) => [
- q(7175),
+ q(7161),
q(0),
],
q(maiwa (papua new guinea)) => [
- q(4563),
+ q(4556),
q(0),
],
q(maiwala) => [
- q(4590),
+ q(4583),
q(0),
],
q(majang) => [
- q(4460),
+ q(4453),
q(0),
],
q(majera) => [
- q(7415),
+ q(7400),
q(0),
],
q(majhi) => [
- q(4343),
+ q(4336),
q(0),
],
q(majhwar) => [
- q(4399),
+ q(4392),
q(0),
],
q(majukayang kalinga) => [
- q(3457),
+ q(3454),
q(0),
],
q(mak (china)) => [
- q(4349),
+ q(4342),
q(0),
],
q(mak (nigeria)) => [
- q(5371),
+ q(5367),
q(0),
],
q(makaa) => [
- q(4168),
+ q(4160),
q(0),
],
q(makah) => [
- q(4679),
+ q(4672),
+ q(0),
+ ],
+ q(makalero) => [
+ q(4313),
q(0),
],
q(makasae) => [
- q(4367),
+ q(4360),
q(0),
],
q(makasar) => [
- q(0267),
+ q(0268),
q(0),
],
q(makassar malay) => [
- q(4240),
+ q(4232),
q(0),
],
q(makayam) => [
- q(0946),
+ q(0947),
q(0),
],
q(makhuwa) => [
- q(7037),
+ q(7022),
q(0),
],
q(makhuwa-marrevone) => [
- q(7409),
+ q(7394),
q(0),
],
q(makhuwa-meetto) => [
- q(4257),
+ q(4249),
q(0),
],
q(makhuwa-moniga) => [
- q(4286),
+ q(4278),
q(0),
],
q(makhuwa-saka) => [
- q(7501),
+ q(7486),
q(0),
],
q(makhuwa-shirima) => [
- q(7028),
+ q(7013),
q(0),
],
q(maklew) => [
- q(4255),
+ q(4247),
q(0),
],
q(makolkol) => [
- q(7883),
+ q(7868),
q(0),
],
q(makonde) => [
- q(3238),
+ q(3237),
+ q(0),
+ ],
+ q(maku) => [
+ q(7267),
q(0),
],
q(maku'a) => [
- q(4094),
+ q(4086),
q(0),
],
q(makurap) => [
- q(4475),
+ q(4468),
q(0),
],
q(makuri naga) => [
- q(3122),
+ q(3121),
q(0),
],
q(makwe) => [
- q(7695),
+ q(7680),
q(0),
],
q(makyan naga) => [
- q(6908),
+ q(6893),
q(0),
],
q(mal) => [
- q(4372),
+ q(4365),
q(0),
],
q(mal paharia) => [
- q(4345),
+ q(4338),
q(0),
],
q(mala (nigeria)) => [
- q(5874),
+ q(5863),
q(0),
],
q(mala (papua new guinea)) => [
- q(5406),
+ q(5402),
q(0),
],
q(mala malasar) => [
- q(2961),
+ q(2959),
q(0),
],
q(malaccan creole malay) => [
- q(1688),
+ q(1685),
q(0),
],
q(malaccan creole portuguese) => [
- q(4165),
+ q(4157),
q(0),
],
q(malagasy) => [
- q(0283),
+ q(0284),
q(0),
],
q(malalamai) => [
- q(4408),
+ q(4401),
q(0),
],
q(malango) => [
- q(4379),
+ q(4372),
q(0),
],
q(malankuravan) => [
- q(4332),
+ q(4325),
q(0),
],
q(malapandaram) => [
- q(4333),
+ q(4326),
q(0),
],
q(malaryan) => [
- q(4334),
+ q(4327),
q(0),
],
q(malas) => [
- q(4359),
+ q(4352),
q(0),
],
q(malasar) => [
- q(7702),
+ q(7687),
q(0),
],
q(malavedan) => [
- q(4335),
+ q(4328),
q(0),
],
q(malawi lomwe) => [
- q(4025),
+ q(4016),
q(0),
],
q(malawi sena) => [
- q(6307),
+ q(6295),
q(0),
],
q(malay) => [
- q(0274),
+ q(0275),
q(0),
],
q(malay (individual language)) => [
- q(7873),
+ q(7858),
q(0),
],
q(malay (macrolanguage)) => [
- q(0274),
+ q(0275),
q(1),
],
q(malayalam) => [
- q(0268),
+ q(0269),
q(0),
],
q(malayic dayak) => [
- q(7327),
+ q(7314),
q(0),
],
q(malaynon) => [
- q(4389),
+ q(4382),
q(0),
],
q(malayo) => [
- q(4142),
+ q(4134),
q(0),
],
q(malayo-polynesian languages) => [
- q(0520),
+ q(0521),
q(0),
],
q(malaysian sign language) => [
- q(7417),
+ q(7402),
q(0),
],
q(malba birifor) => [
- q(1150),
+ q(1151),
q(0),
],
q(maldivian) => [
- q(0110),
+ q(0111),
q(2),
],
q(male) => [
- q(2824),
+ q(2821),
q(1),
],
q(male (ethiopia)) => [
- q(4200),
+ q(4192),
q(0),
],
q(male (papua new guinea)) => [
- q(4181),
+ q(4173),
q(0),
],
q(malecite-passamaquoddy) => [
- q(5586),
+ q(5580),
q(0),
],
q(maleku jaika) => [
- q(2660),
+ q(2658),
q(0),
],
q(maleng) => [
- q(5484),
+ q(5481),
q(0),
],
q(maleu-kilenge) => [
- q(4261),
+ q(4253),
q(0),
],
q(malfaxal) => [
- q(4388),
+ q(4381),
q(0),
],
q(malgana) => [
- q(7029),
+ q(7014),
q(0),
],
q(malgbe) => [
- q(4652),
+ q(4645),
q(0),
],
q(mali) => [
- q(2444),
+ q(2442),
q(0),
],
q(malila) => [
- q(4266),
+ q(4258),
q(0),
],
q(malimba) => [
- q(4697),
+ q(4690),
q(0),
],
q(malimpung) => [
- q(4374),
+ q(4367),
q(0),
],
q(malinaltepec me'phaa) => [
- q(6410),
+ q(6399),
q(0),
],
q(malinaltepec tlapanec) => [
- q(6410),
+ q(6399),
q(1),
],
q(malo) => [
- q(4368),
+ q(4361),
q(0),
],
q(malol) => [
- q(4137),
+ q(4129),
q(0),
],
q(maltese) => [
- q(0284),
+ q(0285),
q(0),
],
q(maltese sign language) => [
- q(4189),
+ q(4181),
q(0),
],
q(malua bay) => [
- q(4377),
+ q(4370),
q(0),
],
q(malvi) => [
- q(4592),
+ q(4585),
q(0),
],
q(malyangapa) => [
- q(7633),
+ q(7618),
q(0),
],
q(mam) => [
- q(4120),
+ q(4112),
q(0),
],
q(mama) => [
- q(4390),
+ q(4383),
q(0),
],
q(mamaa) => [
- q(4280),
+ q(4272),
q(0),
],
q(mamainde) => [
- q(7171),
+ q(7157),
q(0),
],
q(mamanwa) => [
- q(4403),
+ q(4396),
q(0),
],
q(mamara senoufo) => [
- q(4682),
+ q(4675),
q(0),
],
q(mamasa) => [
- q(4489),
+ q(4482),
q(0),
],
q(mambae) => [
- q(4262),
+ q(4254),
q(0),
],
q(mambai) => [
- q(4171),
+ q(4163),
q(0),
],
q(mamboru) => [
- q(4603),
+ q(4596),
q(0),
],
q(mambwe-lungu) => [
- q(4267),
+ q(4259),
q(0),
],
q(mampruli) => [
- q(4125),
+ q(4117),
q(0),
],
q(mamuju) => [
- q(4503),
+ q(4496),
q(0),
],
q(mamulique) => [
- q(2256),
+ q(2252),
q(0),
],
q(mamusi) => [
- q(3239),
+ q(3238),
q(0),
],
q(mamvu) => [
- q(4186),
+ q(4178),
q(0),
],
q(man met) => [
- q(4401),
+ q(4394),
q(0),
],
q(manado malay) => [
- q(7418),
+ q(7403),
q(0),
],
q(manam) => [
- q(4601),
+ q(4594),
q(0),
],
q(manambu) => [
- q(4371),
+ q(4364),
q(0),
],
q(manangba) => [
- q(4974),
+ q(4967),
q(0),
],
q(manangkari) => [
- q(7905),
+ q(7890),
q(0),
],
q(manchu) => [
- q(0285),
+ q(0286),
q(0),
],
q(manda (australia)) => [
- q(7876),
+ q(7861),
q(0),
],
q(manda (india)) => [
- q(4275),
+ q(4267),
q(0),
],
q(manda (tanzania)) => [
- q(4268),
+ q(4260),
q(0),
],
q(mandahuaca) => [
- q(4293),
+ q(4285),
q(0),
],
q(mandaic) => [
- q(4301),
+ q(4293),
q(0),
],
q(mandan) => [
- q(4290),
+ q(4282),
q(0),
],
q(mandandanyi) => [
- q(7886),
+ q(7871),
q(0),
],
q(mandar) => [
- q(0276),
+ q(0277),
q(0),
],
q(mandara) => [
- q(6385),
+ q(6374),
q(0),
],
q(mandari) => [
- q(4500),
+ q(4493),
q(0),
],
q(mandarin chinese) => [
- q(1790),
+ q(1787),
q(0),
],
q(mandaya) => [
- q(4529),
+ q(4522),
q(0),
],
q(mande languages) => [
- q(0500),
+ q(0501),
q(0),
],
q(mandeali) => [
- q(4329),
+ q(4322),
q(0),
],
q(mander) => [
- q(4497),
+ q(4490),
q(0),
],
q(manding) => [
- q(0269),
+ q(0270),
q(1),
],
q(mandingo) => [
- q(0269),
+ q(0270),
q(0),
],
q(mandinka) => [
- q(4423),
+ q(4416),
q(0),
],
q(mandjak) => [
- q(4246),
+ q(4238),
q(0),
],
q(mandobo atas) => [
- q(0557),
+ q(0558),
q(0),
],
q(mandobo bawah) => [
- q(1557),
+ q(1556),
q(0),
],
q(manem) => [
- q(3083),
+ q(3081),
q(0),
],
q(mang) => [
- q(7904),
+ q(7889),
q(0),
],
q(manga kanuri) => [
- q(3207),
+ q(3206),
q(0),
],
q(mangala) => [
- q(4213),
+ q(4205),
q(0),
],
q(mangarayi) => [
- q(4458),
+ q(4451),
q(0),
],
q(mangareva) => [
- q(4526),
+ q(4519),
q(0),
],
q(mangas) => [
- q(7906),
+ q(7891),
q(0),
],
q(mangayat) => [
- q(4681),
+ q(4674),
q(0),
],
q(mangbetu) => [
- q(4187),
+ q(4179),
q(0),
],
q(mangbutu) => [
- q(4188),
+ q(4180),
q(0),
],
q(mangerr) => [
- q(7880),
+ q(7865),
q(0),
],
q(mangga buang) => [
- q(4404),
+ q(4397),
q(0),
],
q(manggarai) => [
- q(4504),
+ q(4497),
q(0),
],
q(mango) => [
- q(4254),
+ q(4246),
q(0),
],
q(mangole) => [
- q(4483),
+ q(4476),
q(0),
],
q(mangseng) => [
- q(4134),
+ q(4126),
q(0),
],
q(mangue) => [
- q(4445),
+ q(4438),
q(0),
],
q(manichaean middle persian) => [
- q(7419),
+ q(7404),
q(0),
],
q(manide) => [
- q(0562),
+ q(0563),
q(0),
],
q(manikion) => [
- q(4434),
+ q(4427),
q(0),
],
q(manipa) => [
- q(4495),
+ q(4488),
q(0),
],
q(manipuri) => [
- q(0286),
+ q(0287),
q(0),
],
q(mankanya) => [
- q(3485),
+ q(3482),
q(0),
],
q(manna-dora) => [
- q(4338),
+ q(4331),
q(0),
],
q(mannan) => [
- q(4339),
+ q(4332),
q(0),
],
q(mano) => [
- q(4221),
+ q(4213),
q(0),
],
q(manobo languages) => [
- q(0287),
+ q(0288),
q(0),
],
q(manombai) => [
- q(7207),
+ q(7193),
q(0),
],
q(mansaka) => [
- q(4540),
+ q(4533),
q(0),
],
q(mansi) => [
- q(4430),
+ q(4423),
q(0),
],
q(mansoanka) => [
- q(4551),
+ q(4544),
q(0),
],
q(manta) => [
- q(4678),
+ q(4671),
q(0),
],
q(mantsi) => [
- q(5102),
+ q(5097),
q(0),
],
q(manumanaw) => [
- q(3722),
+ q(3715),
q(1),
],
q(manumanaw karen) => [
- q(3722),
+ q(3715),
q(0),
],
q(manusela) => [
- q(7123),
- q(0),
+ q(7109),
+ q(1),
],
q(manx) => [
- q(0156),
+ q(0157),
q(0),
],
q(manya) => [
- q(4702),
+ q(4695),
q(0),
],
q(manyawa) => [
- q(4435),
+ q(4428),
q(0),
],
q(manyika) => [
- q(4649),
+ q(4642),
q(0),
],
q(manza) => [
- q(4714),
+ q(4707),
q(0),
],
q(mao naga) => [
- q(4747),
+ q(4739),
q(0),
],
q(maonan) => [
- q(4393),
+ q(4386),
q(0),
],
q(maore comorian) => [
- q(6300),
+ q(6288),
q(0),
],
q(maori) => [
- q(0270),
+ q(0271),
q(0),
],
q(mape) => [
- q(4373),
+ q(4366),
q(0),
],
q(mapena) => [
- q(4425),
+ q(4418),
q(0),
],
q(mapia) => [
- q(4479),
+ q(4472),
q(0),
],
q(mapidian) => [
- q(4477),
+ q(4470),
q(0),
],
q(mapos buang) => [
- q(1620),
+ q(1619),
q(0),
],
q(mapoyo) => [
- q(4159),
+ q(4151),
q(0),
],
q(mapuche) => [
@@ -41802,103 +41803,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mapun) => [
- q(6062),
+ q(6053),
q(0),
],
q(maquiritari) => [
- q(4160),
+ q(4152),
q(0),
],
q(mara) => [
- q(4204),
+ q(4196),
q(0),
],
q(mara chin) => [
- q(4513),
+ q(4506),
q(0),
],
q(marachi) => [
- q(4046),
+ q(4037),
q(0),
],
q(maraghei) => [
- q(7025),
+ q(7010),
q(0),
],
q(maragus) => [
- q(4523),
+ q(4516),
q(0),
],
q(maram naga) => [
- q(4962),
+ q(4955),
q(0),
],
q(marama) => [
- q(4049),
+ q(4040),
q(0),
],
q(maramba) => [
- q(4675),
+ q(4668),
q(0),
],
q(maranao) => [
- q(4527),
+ q(4520),
q(0),
],
q(marangis) => [
- q(7075),
+ q(7060),
q(1),
],
q(maranunggu) => [
- q(7893),
+ q(7878),
q(0),
],
q(mararit) => [
- q(4251),
+ q(4243),
q(0),
],
q(marathi) => [
- q(0272),
+ q(0273),
q(0),
],
q(marau) => [
- q(4616),
+ q(4609),
q(0),
],
q(marba) => [
- q(4461),
+ q(4454),
q(0),
],
q(maremgi) => [
- q(4528),
+ q(4521),
q(0),
],
q(marenje) => [
- q(7033),
+ q(7018),
q(0),
],
q(marfa) => [
- q(4619),
+ q(4612),
q(0),
],
q(margany) => [
- q(7878),
+ q(7863),
q(0),
],
q(marghi central) => [
- q(4524),
+ q(4517),
q(0),
],
q(marghi south) => [
- q(4237),
+ q(4229),
q(0),
],
q(margos-yarowilca-lauricocha quechua) => [
- q(5707),
+ q(5698),
q(0),
],
q(margu) => [
- q(4281),
+ q(4273),
q(0),
],
q(mari) => [
@@ -41906,11 +41907,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mari (east sepik province)) => [
- q(4150),
+ q(4142),
q(0),
],
q(mari (madang province)) => [
- q(2811),
+ q(2808),
q(0),
],
q(mari (russia)) => [
@@ -41918,183 +41919,183 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(maria (india)) => [
- q(4522),
+ q(4515),
q(0),
],
q(maria (papua new guinea)) => [
- q(4194),
+ q(4186),
q(0),
],
q(maricopa) => [
- q(4508),
+ q(4501),
q(0),
],
q(maridan) => [
- q(7879),
+ q(7864),
q(0),
],
q(maridjabin) => [
- q(7885),
+ q(7870),
q(0),
],
q(marik) => [
- q(1940),
+ q(1934),
q(0),
],
q(marimanindji) => [
- q(7888),
+ q(7873),
q(0),
],
q(marind) => [
- q(4530),
+ q(4523),
q(0),
],
q(maring) => [
- q(4149),
+ q(4141),
q(0),
],
q(maring naga) => [
- q(4994),
+ q(4987),
q(0),
],
q(maringarr) => [
- q(7895),
+ q(7880),
q(0),
],
q(marino) => [
- q(4507),
+ q(4500),
q(0),
],
q(mariri) => [
- q(4488),
+ q(4481),
q(0),
],
q(marithiel) => [
- q(4242),
+ q(4234),
q(0),
],
q(maritime sign language) => [
- q(5080),
+ q(5075),
q(0),
],
q(maritsaua) => [
- q(4545),
+ q(4538),
q(0),
],
q(mariyedi) => [
- q(7900),
+ q(7885),
q(0),
],
q(marka) => [
- q(5802),
+ q(5792),
q(0),
],
q(markweeta) => [
- q(2265),
+ q(2261),
q(0),
],
q(marma) => [
- q(5828),
+ q(5818),
q(0),
],
q(marovo) => [
- q(4613),
+ q(4606),
q(0),
],
q(marriammu) => [
- q(7487),
+ q(7472),
q(0),
],
q(marrucinian) => [
- q(6903),
+ q(6888),
q(0),
],
q(marshallese) => [
- q(0265),
+ q(0266),
q(0),
],
q(marsian) => [
- q(2967),
+ q(2965),
q(0),
],
q(martha's vineyard sign language) => [
- q(4510),
+ q(4503),
q(0),
],
q(marti ke) => [
- q(7882),
+ q(7867),
q(0),
],
q(martu wangka) => [
- q(4464),
+ q(4457),
q(0),
],
q(martuyhunira) => [
- q(7018),
+ q(7003),
q(0),
],
q(maru) => [
- q(4296),
+ q(4288),
q(0),
],
q(marubo) => [
- q(4710),
+ q(4703),
q(0),
],
q(marwari) => [
- q(0295),
+ q(0296),
q(0),
],
q(marwari (india)) => [
- q(5880),
+ q(5869),
q(0),
],
q(marwari (pakistan)) => [
- q(4604),
+ q(4597),
q(0),
],
q(masaaba) => [
- q(4691),
+ q(4684),
q(0),
],
q(masadiit itneg) => [
- q(6531),
+ q(6518),
q(0),
],
q(masai) => [
- q(0273),
+ q(0274),
q(0),
],
q(masalit) => [
- q(4384),
+ q(4377),
q(0),
],
q(masana) => [
- q(4166),
+ q(4158),
q(0),
],
q(masbatenyo) => [
- q(4531),
+ q(4524),
q(0),
],
q(mashco piro) => [
- q(1909),
+ q(1904),
q(0),
],
q(mashi (nigeria)) => [
- q(3124),
+ q(3123),
q(0),
],
q(mashi (zambia)) => [
- q(4288),
+ q(4280),
q(0),
],
q(masikoro malagasy) => [
- q(4537),
+ q(4530),
q(0),
],
q(masimasi) => [
- q(3004),
+ q(3002),
q(0),
],
q(masiwang) => [
@@ -42102,311 +42103,311 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(maskelynes) => [
- q(3450),
+ q(3447),
q(0),
],
q(maslam) => [
- q(4550),
+ q(4543),
q(0),
],
q(masmaje) => [
- q(4218),
+ q(4210),
q(0),
],
q(massalat) => [
- q(4184),
+ q(4176),
q(0),
],
q(massep) => [
- q(4617),
+ q(4610),
q(0),
],
q(matagalpa) => [
- q(4568),
+ q(4561),
q(0),
],
q(matal) => [
- q(4232),
+ q(4224),
q(0),
],
q(matbat) => [
- q(7425),
+ q(7410),
q(0),
],
q(matengo) => [
- q(4271),
+ q(4263),
q(0),
],
q(matepi) => [
- q(4484),
+ q(4477),
q(0),
],
q(matigsalug manobo) => [
- q(4146),
+ q(4138),
q(0),
],
q(matipuhy) => [
- q(4707),
+ q(4700),
q(0),
],
q(matis) => [
- q(4471),
+ q(4464),
q(0),
],
q(mato) => [
- q(4219),
+ q(4211),
q(0),
],
q(mato grosso arara) => [
- q(0987),
+ q(0988),
q(0),
],
q(mator) => [
- q(4567),
+ q(4560),
q(0),
],
q(matses) => [
- q(4158),
+ q(4150),
q(0),
],
q(mattoki) => [
- q(7445),
+ q(7430),
q(1),
],
q(mattole) => [
- q(4602),
+ q(4595),
q(0),
],
q(matu chin) => [
- q(2775),
+ q(2772),
q(0),
],
q(matukar) => [
- q(4328),
+ q(4321),
q(0),
],
q(matumbi) => [
- q(4272),
+ q(4264),
q(0),
],
q(matya samo) => [
- q(6262),
+ q(6251),
q(0),
],
q(maung) => [
- q(4462),
+ q(4455),
q(0),
],
q(mauritian sign language) => [
- q(4069),
+ q(4060),
q(0),
],
q(mauwake) => [
- q(4285),
+ q(4277),
q(0),
],
q(mawa (chad)) => [
- q(4175),
+ q(4167),
q(0),
],
q(mawa (nigeria)) => [
- q(7168),
+ q(7154),
q(0),
],
q(mawak) => [
- q(4327),
+ q(4320),
q(0),
],
q(mawan) => [
- q(4178),
+ q(4170),
q(0),
],
q(mawayana) => [
- q(4716),
+ q(4709),
q(0),
],
q(mawchi) => [
- q(4347),
+ q(4340),
q(0),
],
q(mawes) => [
- q(4260),
+ q(4252),
q(0),
],
q(mawukakan) => [
- q(4670),
+ q(4663),
q(1),
],
q(maxakali) => [
- q(4138),
+ q(4130),
q(0),
],
q(maxi gbe) => [
- q(4658),
+ q(4651),
q(0),
],
q(maya samo) => [
- q(6340),
+ q(6328),
q(0),
],
q(mayaguduna) => [
- q(7430),
+ q(7415),
q(0),
],
q(mayan languages) => [
- q(0296),
+ q(0297),
q(0),
],
q(mayangna) => [
- q(7588),
+ q(7573),
q(0),
],
q(mayawali) => [
- q(7794),
+ q(7779),
q(0),
],
q(mayeka) => [
- q(4674),
+ q(4667),
q(0),
],
q(mayi-kulan) => [
- q(7568),
+ q(7553),
q(0),
],
q(mayi-thakurti) => [
- q(7570),
+ q(7555),
q(0),
],
q(mayi-yapi) => [
- q(7567),
+ q(7552),
q(0),
],
q(mayo) => [
- q(4249),
+ q(4241),
q(0),
],
q(mayogo) => [
- q(4190),
+ q(4182),
q(0),
],
q(mayoyao ifugao) => [
- q(2918),
+ q(2915),
q(0),
],
q(mazagway) => [
- q(2077),
+ q(2071),
q(0),
],
q(mazaltepec zapotec) => [
- q(7938),
+ q(7923),
q(0),
],
q(mazanderani) => [
- q(4706),
+ q(4699),
q(0),
],
q(mazatlan mazatec) => [
- q(7040),
+ q(7025),
q(0),
],
q(mazatlan mixe) => [
- q(4704),
+ q(4697),
q(0),
],
q(mba) => [
- q(4227),
+ q(4219),
q(0),
],
q(mbala) => [
- q(4192),
+ q(4184),
q(0),
],
q(mbalanhu) => [
- q(4000),
+ q(3991),
q(0),
],
q(mbandja) => [
- q(7901),
+ q(7886),
q(0),
],
q(mbangala) => [
- q(4653),
+ q(4646),
q(0),
],
q(mbangi) => [
- q(4263),
+ q(4255),
q(0),
],
q(mbangwe) => [
- q(7889),
+ q(7874),
q(0),
],
q(mbara (australia)) => [
- q(4610),
+ q(4603),
q(0),
],
q(mbara (chad)) => [
- q(4465),
+ q(4458),
q(0),
],
q(mbariman-gudhinma) => [
- q(7897),
+ q(7882),
q(0),
],
q(mbati) => [
- q(4191),
+ q(4183),
q(0),
],
q(mbato) => [
- q(2679),
+ q(2676),
q(0),
],
q(mbay) => [
- q(4673),
+ q(4666),
q(0),
],
q(mbe) => [
- q(4239),
+ q(4231),
q(0),
],
q(mbe') => [
- q(4565),
+ q(4558),
q(0),
],
q(mbelime) => [
- q(4491),
+ q(4484),
q(0),
],
q(mbere) => [
- q(4195),
+ q(4187),
q(0),
],
q(mbesa) => [
- q(7894),
+ q(7879),
q(0),
],
q(mbo (cameroon)) => [
- q(4141),
+ q(4133),
q(0),
],
q(mbo (democratic republic of congo)) => [
- q(7898),
+ q(7883),
q(0),
],
q(mboi) => [
- q(4442),
+ q(4435),
q(0),
],
q(mboko) => [
- q(4196),
+ q(4188),
q(0),
],
q(mbole) => [
- q(4193),
+ q(4185),
q(0),
],
q(mbonga) => [
- q(7408),
+ q(7393),
q(0),
],
q(mbongno) => [
@@ -42414,375 +42415,375 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mbosi) => [
- q(4198),
+ q(4190),
q(0),
],
q(mbowe) => [
- q(4661),
+ q(4654),
q(0),
],
q(mbre) => [
- q(4344),
+ q(4337),
q(0),
],
q(mbudum) => [
- q(7410),
+ q(7395),
q(0),
],
q(mbugu) => [
- q(4278),
+ q(4270),
q(0),
],
q(mbugwe) => [
- q(4274),
+ q(4266),
q(0),
],
q(mbuko) => [
- q(4482),
+ q(4475),
q(0),
],
q(mbukushu) => [
- q(4295),
+ q(4287),
q(0),
],
q(mbula) => [
- q(4415),
+ q(4408),
q(0),
],
q(mbula-bwazza) => [
- q(4147),
+ q(4139),
q(0),
],
q(mbule) => [
- q(4369),
+ q(4362),
q(0),
],
q(mbulungish) => [
- q(4148),
+ q(4140),
q(0),
],
q(mbum) => [
- q(4182),
+ q(4174),
q(0),
],
q(mbunda) => [
- q(4163),
+ q(4155),
q(0),
],
q(mbunga) => [
- q(4273),
+ q(4265),
q(0),
],
q(mburku) => [
- q(1057),
+ q(1058),
q(0),
],
q(mbwela) => [
- q(4245),
+ q(4237),
q(0),
],
q(mbya guarani) => [
- q(2654),
+ q(2652),
q(0),
],
q(me'en) => [
- q(4684),
+ q(4677),
q(0),
],
q(mea) => [
- q(1740),
+ q(1737),
q(2),
],
q(medebur) => [
- q(4330),
+ q(4323),
q(0),
],
q(media lengua) => [
- q(4584),
+ q(4577),
q(0),
],
q(mediak) => [
- q(4644),
+ q(4637),
q(0),
],
q(median) => [
- q(7411),
+ q(7396),
q(0),
],
q(mednyj aleut) => [
- q(4583),
+ q(4576),
q(0),
],
q(medumba) => [
- q(1609),
+ q(1608),
q(0),
],
q(mefele) => [
- q(4234),
+ q(4226),
q(0),
],
q(megam) => [
- q(4207),
+ q(4199),
q(0),
],
q(megleno romanian) => [
- q(5871),
+ q(5860),
q(0),
],
q(mehek) => [
- q(5126),
+ q(5121),
q(0),
],
q(mehinaku) => [
- q(4397),
+ q(4390),
q(0),
],
q(mehri) => [
- q(2467),
+ q(2465),
q(0),
],
q(mekeo) => [
- q(4211),
+ q(4203),
q(0),
],
q(mekmek) => [
- q(4609),
+ q(4602),
q(0),
],
q(mekwei) => [
- q(4535),
+ q(4528),
q(0),
],
q(mele-fila) => [
- q(4651),
+ q(4644),
q(0),
],
q(melo) => [
- q(4248),
+ q(4240),
q(0),
],
q(melpa) => [
- q(4205),
+ q(4197),
q(0),
],
q(memoni) => [
- q(4151),
+ q(4143),
q(0),
],
q(mendalam kayan) => [
- q(7372),
+ q(7358),
q(0),
],
q(mendankwe-nkwen) => [
- q(4228),
+ q(4220),
q(0),
],
q(mende) => [
- q(0277),
+ q(0278),
q(0),
],
q(mende (papua new guinea)) => [
- q(6044),
+ q(6035),
q(0),
],
q(mende (sierra leone)) => [
- q(0277),
+ q(0278),
q(1),
],
q(mengaka) => [
- q(7413),
+ q(7398),
q(0),
],
q(mengen) => [
- q(4206),
+ q(4198),
q(0),
],
q(mengisa) => [
- q(4172),
+ q(4164),
q(0),
],
q(menik) => [
- q(6626),
+ q(6611),
q(0),
],
q(menka) => [
- q(4202),
+ q(4194),
q(0),
],
q(menominee) => [
- q(4224),
+ q(4216),
q(0),
],
q(mentawai) => [
- q(4642),
+ q(4635),
q(0),
],
q(menya) => [
- q(4170),
+ q(4162),
q(0),
],
q(meoswar) => [
- q(4622),
+ q(4615),
q(0),
],
q(mer) => [
- q(4431),
+ q(4424),
q(0),
],
q(meramera) => [
- q(4659),
+ q(4652),
q(0),
],
q(merei) => [
- q(3977),
+ q(3968),
q(0),
],
q(merey) => [
- q(4216),
+ q(4208),
q(0),
],
q(meriam) => [
- q(6896),
+ q(6881),
q(0),
],
q(merlav) => [
- q(4517),
+ q(4510),
q(0),
],
q(meroitic) => [
- q(7423),
+ q(7408),
q(0),
],
q(meru) => [
- q(4217),
+ q(4209),
q(0),
],
q(merwari) => [
- q(7231),
+ q(7217),
q(0),
],
q(mesaka) => [
- q(3035),
+ q(3034),
q(0),
],
q(mescalero-chiricahua apache) => [
- q(0845),
+ q(0846),
q(0),
],
q(mese) => [
- q(4161),
+ q(4153),
q(0),
],
q(meskwaki) => [
- q(5888),
+ q(5878),
q(0),
],
q(mesme) => [
- q(7853),
+ q(7838),
q(0),
],
q(mesmes) => [
- q(4688),
+ q(4681),
q(0),
],
q(mesopotamian arabic) => [
- q(0591),
+ q(0592),
q(0),
],
q(mesqan) => [
- q(4624),
+ q(4617),
q(0),
],
q(messapic) => [
- q(1793),
+ q(1790),
q(0),
],
q(meta') => [
- q(4264),
+ q(4256),
q(0),
],
q(metlatonoc mixtec) => [
- q(4668),
+ q(4661),
q(0),
],
q(mewari) => [
- q(4572),
+ q(4565),
q(0),
],
q(mewati) => [
- q(7244),
+ q(7231),
q(0),
],
q(mexican sign language) => [
- q(4243),
+ q(4235),
q(0),
],
q(meyah) => [
- q(4210),
+ q(4202),
q(0),
],
q(mezontla popoloca) => [
- q(5366),
+ q(5362),
q(0),
],
q(mezquital otomi) => [
- q(5319),
+ q(5314),
q(0),
],
q(mfinu) => [
- q(7881),
+ q(7866),
q(0),
],
q(mfumte) => [
- q(4834),
+ q(4827),
q(0),
],
q(mgbolizhia) => [
- q(2566),
+ q(2564),
q(0),
],
q(mi'kmaq) => [
- q(0279),
+ q(0280),
q(0),
],
q(miahuatlan zapotec) => [
- q(7817),
+ q(7802),
q(0),
],
q(miami) => [
- q(4299),
+ q(4291),
q(0),
],
q(mian) => [
- q(4474),
+ q(4467),
q(0),
],
q(miani) => [
- q(5486),
+ q(5483),
q(0),
],
q(michif) => [
- q(1849),
+ q(1844),
q(0),
],
q(michigamea) => [
- q(1789),
+ q(1786),
q(0),
],
q(michoacan mazahua) => [
- q(4392),
+ q(4385),
q(0),
],
q(michoacan nahuatl) => [
- q(4773),
+ q(4765),
q(0),
],
q(micmac) => [
- q(0279),
+ q(0280),
q(1),
],
q(mid grand valley dani) => [
- q(2108),
+ q(2102),
q(0),
],
q(mid-southern banda) => [
@@ -42790,455 +42791,459 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(middle armenian) => [
- q(0990),
+ q(0991),
q(0),
],
q(middle breton) => [
- q(7300),
+ q(7287),
q(0),
],
q(middle cornish) => [
- q(1808),
+ q(1805),
q(0),
],
q(middle dutch (ca. 1050-1350)) => [
- q(0115),
+ q(0116),
q(1),
],
q(middle english (1100-1500)) => [
- q(0124),
+ q(0125),
q(1),
],
q(middle french (ca. 1400-1600)) => [
- q(0138),
+ q(0139),
q(1),
],
q(middle high german (ca. 1050-1500)) => [
- q(0157),
+ q(0158),
q(1),
],
q(middle hittite) => [
- q(2851),
+ q(2848),
q(0),
],
q(middle irish (900-1200)) => [
- q(0278),
+ q(0279),
q(1),
],
q(middle korean (10th-16th cent.)) => [
- q(5235),
+ q(5230),
q(0),
],
q(middle low german) => [
- q(2559),
+ q(2557),
q(0),
],
q(middle mongolian) => [
- q(7434),
+ q(7419),
q(0),
],
q(middle newar) => [
- q(5140),
+ q(5135),
q(0),
],
q(middle watut) => [
- q(4466),
+ q(4459),
q(0),
],
q(middle welsh) => [
- q(7159),
+ q(7145),
q(0),
],
q(midob) => [
- q(4209),
+ q(4201),
q(0),
],
q(migaama) => [
- q(4413),
+ q(4406),
q(0),
],
q(migabac) => [
- q(4470),
+ q(4463),
q(0),
],
q(migum) => [
- q(3441),
+ q(3438),
q(0),
],
q(miji) => [
- q(6061),
+ q(6052),
q(1),
],
q(miju-mishmi) => [
- q(4656),
+ q(4649),
q(0),
],
q(mikasuki) => [
- q(4308),
+ q(4300),
q(0),
],
q(mili) => [
- q(7693),
+ q(7678),
q(0),
],
q(miltu) => [
- q(4375),
+ q(4368),
q(0),
],
q(miluk) => [
- q(2963),
+ q(2961),
q(0),
],
q(milyan) => [
- q(2968),
+ q(2966),
q(0),
],
q(min bei chinese) => [
- q(4427),
+ q(4420),
q(0),
],
q(min dong chinese) => [
- q(1701),
+ q(1698),
q(0),
],
q(min nan chinese) => [
- q(4730),
+ q(4722),
q(0),
],
q(min zhong chinese) => [
- q(1936),
+ q(1930),
q(0),
],
q(mina (cameroon)) => [
- q(2800),
+ q(2797),
q(0),
],
q(mina (india)) => [
- q(4680),
+ q(4673),
q(0),
],
q(minaean) => [
- q(2973),
+ q(2971),
q(0),
],
q(minang) => [
- q(7480),
+ q(7465),
q(0),
],
q(minangkabau) => [
- q(0280),
+ q(0281),
q(0),
],
q(minanibai) => [
- q(4174),
+ q(4166),
q(0),
],
q(minaveha) => [
- q(4612),
+ q(4605),
q(0),
],
q(minderico) => [
- q(2135),
+ q(2129),
q(0),
],
q(mindiri) => [
- q(4468),
+ q(4461),
q(0),
],
q(mingang doso) => [
- q(4356),
+ q(4349),
q(0),
],
q(mingrelian) => [
- q(7412),
+ q(7397),
q(0),
],
q(minica huitoto) => [
- q(2848),
+ q(2845),
q(0),
],
q(minidien) => [
- q(7133),
+ q(7119),
q(0),
],
q(minigir) => [
- q(1572),
+ q(1571),
q(1),
],
q(minjungbal) => [
- q(7367),
+ q(7353),
q(0),
],
q(minkin) => [
- q(7562),
+ q(7547),
q(0),
],
q(minoan) => [
- q(5259),
+ q(5254),
q(0),
],
q(minokok) => [
- q(4496),
+ q(4489),
q(0),
],
q(minriq) => [
- q(4428),
+ q(4421),
q(0),
],
q(mintil) => [
- q(4712),
+ q(4705),
q(0),
],
q(minz zhuang) => [
- q(7841),
+ q(7826),
q(0),
],
q(miqie) => [
- q(7656),
+ q(7641),
q(0),
],
q(mirandese) => [
- q(0294),
+ q(0295),
q(0),
],
q(miraya bikol) => [
- q(5760),
+ q(5751),
q(0),
],
q(mirgan) => [
- q(7942),
+ q(7927),
q(0),
],
q(miriti) => [
- q(4410),
+ q(4403),
+ q(0),
+ ],
+ q(miriwoong sign language) => [
+ q(5845),
q(0),
],
q(miriwung) => [
- q(4215),
+ q(4207),
q(0),
],
q(miship) => [
- q(4336),
+ q(4329),
q(0),
],
q(misima-panaeati) => [
- q(4478),
+ q(4471),
q(0),
],
q(mising) => [
- q(4512),
+ q(4505),
q(0),
],
q(miskito) => [
- q(4313),
+ q(4305),
q(0),
],
q(mitla zapotec) => [
- q(7825),
+ q(7810),
q(0),
],
q(mitlatongo mixtec) => [
- q(7030),
+ q(7015),
q(0),
],
q(mittu) => [
- q(4641),
+ q(4634),
q(0),
],
q(mituku) => [
- q(7892),
+ q(7877),
q(0),
],
q(miu) => [
- q(4469),
+ q(4462),
q(0),
],
q(miwa) => [
- q(7026),
+ q(7011),
q(0),
],
q(mixed great andamanese) => [
- q(2399),
+ q(2397),
q(0),
],
q(mixtepec mixtec) => [
- q(4318),
+ q(4310),
q(0),
],
q(mixtepec zapotec) => [
- q(7926),
+ q(7911),
q(0),
],
q(miya) => [
- q(4348),
+ q(4341),
q(0),
],
q(miyako) => [
- q(4608),
+ q(4601),
q(0),
],
q(miyobe) => [
- q(6176),
+ q(6165),
q(0),
],
q(mlabri) => [
- q(4506),
+ q(4499),
q(0),
],
q(mlahso) => [
- q(3907),
+ q(3898),
q(0),
],
q(mlap) => [
- q(3378),
+ q(3375),
q(0),
],
q(mlomp) => [
- q(4380),
+ q(4373),
q(0),
],
q(mmaala) => [
- q(4409),
+ q(4402),
q(0),
],
q(mmen) => [
- q(1148),
+ q(1149),
q(0),
],
q(mo) => [
- q(7147),
+ q(7133),
q(1),
],
q(mo'da) => [
- q(2432),
+ q(2430),
q(0),
],
q(moabite) => [
- q(5192),
+ q(5187),
q(0),
],
q(moba) => [
- q(4241),
+ q(4233),
q(0),
],
q(mobilian) => [
- q(4439),
+ q(4432),
q(0),
],
q(mobumrin aizi) => [
- q(0684),
+ q(0685),
q(0),
],
q(mobwa karen) => [
- q(3109),
+ q(3108),
q(0),
],
q(mocheno) => [
- q(4287),
+ q(4279),
q(0),
],
q(mochi) => [
- q(5244),
+ q(5239),
q(0),
],
q(mochica) => [
- q(5253),
+ q(5249),
q(0),
],
q(mocho) => [
- q(4277),
+ q(4269),
q(0),
],
q(mocovi) => [
- q(4438),
+ q(4431),
q(0),
],
q(modang) => [
- q(4650),
+ q(4643),
q(0),
],
q(modern greek (1453-)) => [
- q(0164),
+ q(0165),
q(2),
],
q(modole) => [
- q(4494),
+ q(4487),
q(0),
],
q(moere) => [
- q(4615),
+ q(4608),
q(0),
],
q(mofu-gudur) => [
- q(4303),
+ q(4295),
q(0),
],
q(mogholi) => [
- q(4283),
+ q(4275),
q(0),
],
q(mogofin) => [
- q(4231),
+ q(4223),
q(0),
],
q(mogum) => [
- q(4450),
+ q(4443),
q(0),
],
q(mohave) => [
- q(4451),
+ q(4444),
q(0),
],
q(mohawk) => [
- q(0288),
+ q(0289),
q(0),
],
q(mohegan-pequot) => [
- q(7468),
+ q(7453),
q(0),
],
q(moi (congo)) => [
- q(4452),
+ q(4445),
q(0),
],
q(moi (indonesia)) => [
- q(4660),
+ q(4653),
q(0),
],
q(moikodi) => [
- q(4357),
+ q(4350),
q(0),
],
q(moingi) => [
- q(4646),
+ q(4639),
q(0),
],
q(moji) => [
- q(7694),
+ q(7679),
q(0),
],
q(mok) => [
- q(4499),
+ q(4492),
q(0),
],
q(moken) => [
- q(4640),
+ q(4633),
q(0),
],
q(mokerang) => [
- q(4244),
+ q(4236),
q(0),
],
q(mokilese) => [
- q(4351),
+ q(4344),
q(0),
],
q(moklen) => [
- q(4354),
+ q(4347),
q(0),
],
q(mokole) => [
- q(4353),
+ q(4346),
q(0),
],
q(mokpwe) => [
@@ -43246,439 +43251,447 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(moksela) => [
- q(7034),
+ q(7019),
q(0),
],
q(moksha) => [
- q(0275),
+ q(0276),
q(0),
],
q(molale) => [
- q(4132),
+ q(4124),
q(0),
],
q(molbog) => [
- q(5665),
+ q(5656),
q(0),
],
q(moldavian) => [
- q(0360),
+ q(0361),
q(1),
],
q(moldova sign language) => [
- q(7048),
+ q(7033),
q(0),
],
q(moldovan) => [
- q(0360),
+ q(0361),
q(2),
],
q(molengue) => [
- q(1569),
+ q(1568),
q(0),
],
q(molima) => [
- q(4453),
+ q(4446),
q(0),
],
q(molmo one) => [
- q(0944),
+ q(0945),
q(0),
],
q(molo) => [
- q(7890),
+ q(7875),
q(0),
],
q(molof) => [
- q(4541),
+ q(4534),
q(0),
],
q(moloko) => [
- q(4387),
+ q(4380),
q(0),
],
q(mom jango) => [
- q(6994),
+ q(6979),
q(0),
],
q(moma) => [
- q(4683),
+ q(4676),
q(0),
],
q(momare) => [
- q(4554),
+ q(4547),
q(0),
],
q(mombo dogon) => [
- q(2083),
+ q(2077),
q(0),
],
q(mombum) => [
- q(4544),
+ q(4537),
q(0),
],
q(momina) => [
- q(4391),
+ q(4384),
q(0),
],
q(momuna) => [
- q(4485),
+ q(4478),
q(0),
],
q(mon) => [
- q(4433),
+ q(4426),
q(0),
],
q(mon-khmer languages) => [
- q(0282),
+ q(0283),
q(0),
],
q(monastic sign language) => [
- q(4699),
+ q(4692),
q(0),
],
q(monde) => [
- q(4417),
+ q(4410),
q(0),
],
q(mondropolon) => [
- q(5038),
+ q(5031),
q(0),
],
q(mong) => [
- q(0179),
+ q(0180),
q(1),
],
q(mong leng) => [
- q(2805),
+ q(2802),
q(1),
],
q(mong njua) => [
- q(2805),
+ q(2802),
q(2),
],
q(mongo) => [
- q(0252),
+ q(0253),
q(0),
],
q(mongol) => [
- q(4269),
+ q(4261),
q(0),
],
q(mongolia buriat) => [
- q(1579),
+ q(1578),
q(0),
],
q(mongolian) => [
- q(0289),
+ q(0290),
q(0),
],
q(mongolian languages) => [
- q(0531),
+ q(0532),
q(0),
],
q(mongolian sign language) => [
- q(4547),
+ q(4540),
q(0),
],
q(mongondow) => [
- q(4441),
+ q(4434),
q(0),
],
q(moni) => [
- q(4436),
+ q(4429),
q(0),
],
q(mono (cameroon)) => [
- q(4525),
+ q(4518),
q(0),
],
q(mono (democratic republic of congo)) => [
- q(4421),
+ q(4414),
q(0),
],
q(mono (solomon islands)) => [
- q(4559),
+ q(4552),
q(0),
],
q(mono (usa)) => [
- q(4429),
+ q(4422),
q(0),
],
q(monom) => [
- q(4446),
+ q(4439),
q(0),
],
q(monsang naga) => [
- q(4969),
+ q(4962),
q(0),
],
q(montagnais) => [
- q(4440),
+ q(4433),
+ q(0),
+ ],
+ q(montenegrin) => [
+ q(0090),
q(0),
],
q(montol) => [
- q(4566),
+ q(4559),
q(0),
],
q(monumbo) => [
- q(4657),
+ q(4650),
q(0),
],
q(monzombo) => [
- q(4443),
+ q(4436),
q(0),
],
q(moo) => [
- q(2685),
+ q(2682),
q(0),
],
q(moose cree) => [
- q(1854),
+ q(1849),
q(0),
],
q(mopan maya) => [
- q(4447),
+ q(4440),
q(0),
],
q(mor (bomberai peninsula)) => [
- q(4448),
+ q(4441),
q(0),
],
q(mor (mor islands)) => [
- q(4298),
+ q(4290),
q(0),
],
q(moraid) => [
- q(4536),
+ q(4529),
q(0),
],
q(morawa) => [
- q(4698),
+ q(4691),
q(0),
],
q(morelos nahuatl) => [
- q(4870),
+ q(4863),
q(0),
],
q(morerebi) => [
- q(7420),
+ q(7405),
q(0),
],
q(moresada) => [
- q(4552),
+ q(4545),
q(0),
],
q(mori atas) => [
- q(4709),
+ q(4702),
q(0),
],
q(mori bawah) => [
- q(7431),
+ q(7416),
q(0),
],
q(morigi) => [
- q(4180),
+ q(4172),
q(0),
],
q(morisyen) => [
- q(4229),
+ q(4221),
q(0),
],
q(moro) => [
- q(4449),
+ q(4442),
q(0),
],
q(moroccan arabic) => [
- q(0883),
+ q(0884),
q(0),
],
q(moroccan sign language) => [
- q(7424),
+ q(7409),
q(0),
],
q(morokodo) => [
- q(4252),
+ q(4244),
q(0),
],
q(morom) => [
- q(1103),
+ q(1104),
q(0),
],
q(moronene) => [
- q(4493),
+ q(4486),
q(0),
],
q(morori) => [
- q(4444),
+ q(4437),
q(0),
],
q(morouas) => [
- q(4520),
+ q(4513),
q(0),
],
q(mortlockese) => [
- q(4516),
+ q(4509),
q(0),
],
q(moru) => [
- q(4253),
+ q(4245),
q(0),
],
q(mosimo) => [
- q(4501),
+ q(4494),
q(0),
],
q(mosiro) => [
- q(4645),
+ q(4638),
q(0),
],
q(moskona) => [
- q(4564),
+ q(4557),
q(0),
],
q(mossi) => [
- q(0290),
+ q(0291),
q(0),
],
q(mota) => [
- q(4574),
+ q(4567),
q(0),
],
q(motlav) => [
- q(4386),
+ q(4379),
q(0),
],
q(motu) => [
- q(4220),
+ q(4212),
q(0),
],
q(mouk-aria) => [
- q(4631),
+ q(4624),
q(0),
],
q(mountain koiali) => [
- q(3545),
+ q(3541),
q(0),
],
q(mouwase) => [
- q(3125),
+ q(3124),
q(0),
],
q(movima) => [
- q(4708),
+ q(4701),
q(0),
],
q(moyadan itneg) => [
- q(3023),
+ q(3022),
q(0),
],
q(moyon naga) => [
- q(4976),
+ q(4969),
q(0),
],
q(mozambican sign language) => [
- q(4717),
+ q(4710),
q(0),
],
q(mozarabic) => [
- q(4655),
+ q(4648),
q(0),
],
q(mpade) => [
- q(4463),
+ q(4456),
q(0),
],
q(mpalitjanh) => [
- q(7462),
+ q(7447),
q(0),
],
q(mpi) => [
- q(4480),
+ q(4473),
q(0),
],
q(mpiemo) => [
- q(4176),
+ q(4168),
q(0),
],
q(mpoto) => [
- q(4456),
+ q(4449),
q(0),
],
q(mpotovoro) => [
- q(4618),
+ q(4611),
q(0),
],
q(mpumpong) => [
- q(4256),
+ q(4248),
q(0),
],
q(mpuono) => [
- q(7891),
+ q(7876),
q(0),
],
q(mpur) => [
- q(0723),
+ q(0724),
q(0),
],
q(mro-khimi chin) => [
- q(1792),
+ q(1789),
q(0),
],
q(mru) => [
- q(4519),
+ q(4512),
q(0),
],
q(mser) => [
- q(3571),
+ q(3567),
q(0),
],
q(mt. iraya agta) => [
- q(0918),
+ q(0919),
q(0),
],
q(mt. iriga agta) => [
- q(0676),
+ q(0677),
+ q(0),
+ ],
+ q(muak sa-aak) => [
+ q(6867),
q(0),
],
q(mualang) => [
- q(4558),
+ q(4551),
q(0),
],
q(mubami) => [
- q(6732),
+ q(6716),
q(0),
],
q(mubi) => [
- q(4581),
+ q(4574),
q(0),
],
q(muda) => [
- q(7690),
+ q(7675),
q(0),
],
q(mudburra) => [
- q(2096),
+ q(2090),
q(0),
],
q(mudhili gadaba) => [
- q(2417),
+ q(2415),
q(0),
],
q(mudu koraga) => [
- q(7021),
+ q(7006),
q(0),
],
q(muduga) => [
- q(6863),
+ q(6847),
q(0),
],
q(mufian) => [
- q(0823),
+ q(0824),
q(0),
],
q(mugom) => [
- q(4589),
+ q(4582),
q(0),
],
q(muinane) => [
@@ -43686,67 +43699,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mukha-dora) => [
- q(4400),
+ q(4393),
q(0),
],
q(mukulu) => [
- q(4455),
+ q(4448),
q(0),
],
q(mulaha) => [
- q(4247),
+ q(4239),
q(0),
],
q(mulam) => [
- q(4378),
+ q(4371),
q(0),
],
q(mulao) => [
- q(2527),
+ q(2524),
q(0),
],
q(mulgi) => [
- q(4607),
+ q(4600),
q(0),
],
q(mullu kurumba) => [
- q(3525),
+ q(3521),
q(0),
],
q(mullukmulluk) => [
- q(4457),
+ q(4450),
q(0),
],
q(multiple languages) => [
- q(0291),
+ q(0292),
q(0),
],
q(muluridyi) => [
- q(7035),
+ q(7020),
q(0),
],
q(mum) => [
- q(3548),
+ q(3544),
q(0),
],
q(mumuye) => [
- q(4705),
+ q(4698),
q(0),
],
q(mun chin) => [
- q(4638),
+ q(4631),
q(0),
],
q(muna) => [
- q(4416),
+ q(4409),
q(0),
],
q(munda) => [
- q(6922),
+ q(6907),
q(0),
],
q(munda languages) => [
- q(0292),
+ q(0293),
q(0),
],
q(mundabli) => [
@@ -43754,347 +43767,347 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mundang) => [
- q(4580),
+ q(4573),
q(0),
],
q(mundani) => [
- q(4419),
+ q(4412),
q(0),
],
q(mundari) => [
- q(6920),
+ q(6905),
q(0),
],
q(mundat) => [
- q(4395),
+ q(4388),
q(0),
],
q(mundu) => [
- q(4586),
+ q(4579),
q(0),
],
q(munduruku) => [
- q(4689),
+ q(4682),
q(0),
],
q(mungaka) => [
- q(4284),
+ q(4276),
q(0),
],
q(mungbam) => [
- q(4307),
+ q(4299),
q(1),
],
q(munggui) => [
- q(4562),
+ q(4555),
q(0),
],
q(mungkip) => [
- q(4476),
+ q(4469),
q(0),
],
q(muniche) => [
- q(4687),
+ q(4680),
q(0),
],
q(munit) => [
- q(4557),
+ q(4550),
q(0),
],
q(munji) => [
- q(4422),
+ q(4415),
q(0),
],
q(munsee) => [
- q(6913),
+ q(6898),
q(0),
],
q(muong) => [
- q(4571),
+ q(4564),
q(0),
],
q(mur pano) => [
- q(6562),
+ q(6549),
q(0),
],
q(muratayak) => [
- q(0906),
+ q(0907),
q(0),
],
q(murik (malaysia)) => [
- q(4664),
+ q(4657),
q(0),
],
q(murik (papua new guinea)) => [
- q(4560),
+ q(4553),
q(0),
],
q(murkim) => [
- q(5812),
+ q(5802),
q(0),
],
q(murle) => [
- q(4594),
+ q(4587),
q(0),
],
q(murrinh-patha) => [
- q(4629),
+ q(4622),
q(0),
],
q(mursi) => [
- q(4600),
+ q(4593),
q(0),
],
q(murui huitoto) => [
- q(2869),
+ q(2866),
q(0),
],
q(murupi) => [
- q(4502),
+ q(4495),
q(0),
],
q(muruwari) => [
- q(7896),
+ q(7881),
q(0),
],
q(musak) => [
- q(4406),
+ q(4399),
q(0),
],
q(musar) => [
- q(4398),
+ q(4391),
q(0),
],
q(musasa) => [
- q(6124),
+ q(6114),
q(0),
],
q(musey) => [
- q(4534),
+ q(4527),
q(0),
],
q(musgu) => [
- q(4585),
+ q(4578),
q(0),
],
q(mushungulu) => [
- q(7407),
+ q(7392),
q(0),
],
q(musi) => [
- q(4587),
+ q(4580),
q(0),
],
q(muskum) => [
- q(4323),
+ q(4316),
q(0),
],
q(muslim tat) => [
- q(6754),
+ q(6738),
q(0),
],
q(musom) => [
- q(4549),
+ q(4542),
q(0),
],
q(mussau-emira) => [
- q(2254),
+ q(2250),
q(0),
],
q(muthuvan) => [
- q(4597),
+ q(4590),
q(0),
],
q(mutu) => [
- q(6762),
+ q(6746),
q(0),
],
q(muya) => [
- q(4611),
+ q(4604),
q(0),
],
q(muyang) => [
- q(4599),
+ q(4592),
q(0),
],
q(muyuw) => [
- q(4690),
+ q(4683),
q(0),
],
q(muzi) => [
- q(7705),
+ q(7690),
q(0),
],
q(mvanip) => [
- q(4162),
+ q(4154),
q(0),
],
q(mvuba) => [
- q(4654),
+ q(4647),
q(0),
],
q(mwaghavul) => [
- q(6285),
+ q(6274),
q(0),
],
q(mwali comorian) => [
- q(7153),
+ q(7139),
q(0),
],
q(mwan) => [
- q(4437),
+ q(4430),
q(0),
],
q(mwani) => [
- q(7180),
+ q(7166),
q(0),
],
q(mwatebu) => [
- q(4625),
+ q(4618),
q(0),
],
q(mwera (chimwera)) => [
- q(4628),
+ q(4621),
q(0),
],
q(mwera (nyasa)) => [
- q(4325),
+ q(4318),
q(0),
],
q(mwerlap) => [
- q(4517),
+ q(4510),
q(1),
],
q(mwimbi-muthambi) => [
- q(4639),
+ q(4632),
q(0),
],
q(mwotlap) => [
- q(4386),
+ q(4379),
q(1),
],
q(mycenaean greek) => [
- q(2565),
+ q(2563),
q(0),
],
q(myene) => [
- q(4676),
+ q(4669),
q(0),
],
q(mysian) => [
- q(7703),
+ q(7688),
q(0),
],
q(mzieme naga) => [
- q(4966),
+ q(4959),
q(0),
],
q(n'ko) => [
- q(0317),
+ q(0318),
q(0),
],
q(n/u) => [
- q(4841),
+ q(4834),
q(0),
],
q(na) => [
- q(4757),
+ q(4749),
q(0),
],
q(na-dene languages) => [
- q(0532),
+ q(0533),
q(0),
],
q(na-meo) => [
- q(4820),
+ q(4813),
q(0),
],
q(naaba) => [
- q(4731),
+ q(4723),
q(0),
],
q(naami) => [
- q(1634),
+ q(1633),
q(0),
],
q(naasioi) => [
- q(4734),
+ q(4726),
q(0),
],
q(naba) => [
- q(4418),
+ q(4411),
q(0),
],
q(nabak) => [
- q(4724),
+ q(4716),
q(0),
],
q(nabi) => [
- q(4579),
+ q(4572),
q(0),
],
q(nachering) => [
- q(4765),
+ q(4757),
q(0),
],
q(nadeb) => [
- q(4136),
+ q(4128),
q(0),
],
q(nadruvian) => [
- q(4788),
+ q(4781),
q(0),
],
q(nafaanra) => [
- q(4833),
+ q(4826),
q(0),
],
q(nafi) => [
- q(6213),
+ q(6202),
q(0),
],
q(nafri) => [
- q(5155),
+ q(5150),
q(0),
],
q(nafusi) => [
- q(3064),
+ q(3063),
q(0),
],
q(naga pidgin) => [
- q(4725),
+ q(4717),
q(0),
],
q(nagarchal) => [
- q(4745),
+ q(4737),
q(0),
],
q(nage) => [
- q(5144),
+ q(5139),
q(0),
],
q(nagumi) => [
- q(4855),
+ q(4848),
q(0),
],
q(naha'ai) => [
- q(4388),
+ q(4381),
q(1),
],
q(nahali) => [
- q(4959),
+ q(4952),
q(0),
],
q(nahari) => [
- q(4867),
+ q(4860),
q(0),
],
q(nahavaq) => [
- q(6150),
+ q(6139),
q(1),
],
q(nahuatl languages) => [
- q(0298),
+ q(0299),
q(0),
],
q(nai) => [
@@ -44102,1447 +44115,1451 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(najdi arabic) => [
- q(0879),
+ q(0880),
q(0),
],
q(naka'ela) => [
- q(4723),
+ q(4715),
q(0),
],
q(nakai) => [
- q(4931),
+ q(4924),
q(0),
],
q(nakame) => [
- q(4883),
+ q(4876),
q(0),
],
q(nakanai) => [
- q(4727),
+ q(4719),
q(0),
],
q(nakara) => [
- q(4772),
+ q(4764),
q(0),
],
q(nake) => [
- q(4749),
+ q(4741),
q(0),
],
q(naki) => [
- q(4230),
+ q(4222),
q(0),
],
q(nakwi) => [
- q(4737),
+ q(4729),
q(0),
],
q(nalca) => [
- q(4947),
+ q(4940),
q(0),
],
q(nali) => [
- q(5081),
+ q(5076),
q(0),
],
q(nalik) => [
- q(4728),
+ q(4720),
q(0),
],
q(nalogo) => [
- q(4961),
+ q(4954),
q(0),
],
q(nalu) => [
- q(4726),
+ q(4718),
q(0),
],
q(naluo yi) => [
- q(7684),
+ q(7669),
q(0),
],
q(nama (namibia)) => [
- q(4732),
+ q(4724),
q(1),
],
q(nama (papua new guinea)) => [
- q(4985),
+ q(4978),
q(0),
],
q(namakura) => [
- q(4972),
+ q(4965),
q(0),
],
q(namat) => [
- q(4933),
+ q(4926),
q(0),
],
q(nambo) => [
- q(4774),
+ q(4766),
q(0),
],
q(nambya) => [
- q(4978),
+ q(4971),
q(0),
],
q(namia) => [
- q(5000),
+ q(4993),
q(0),
],
q(namiae) => [
- q(5130),
+ q(5125),
q(0),
],
q(namibian sign language) => [
- q(4756),
+ q(4748),
q(0),
],
q(namla) => [
- q(4719),
+ q(4712),
q(0),
],
q(namo) => [
- q(4669),
+ q(4662),
q(0),
],
q(namonuito) => [
- q(4981),
+ q(4974),
q(0),
],
q(namosi-naitasiri-serua) => [
- q(1543),
+ q(1542),
q(0),
],
q(namuyi) => [
- q(4986),
+ q(4979),
q(0),
],
q(nanai) => [
- q(2544),
+ q(2542),
q(0),
],
q(nancere) => [
- q(4990),
+ q(4983),
q(0),
],
q(nande) => [
- q(4989),
+ q(4982),
q(0),
],
q(nandi) => [
- q(4896),
+ q(4889),
q(0),
],
q(nanerige senoufo) => [
- q(5974),
+ q(5965),
q(0),
],
q(nanga dama dogon) => [
- q(5184),
+ q(5179),
q(0),
],
q(nankina) => [
- q(4998),
+ q(4991),
q(0),
],
q(nanti) => [
- q(1828),
+ q(1825),
q(0),
],
q(nanticoke) => [
- q(5006),
+ q(4999),
q(0),
],
q(nanubae) => [
- q(0644),
+ q(0645),
q(0),
],
q(napo lowland quechua) => [
- q(5709),
+ q(5700),
q(0),
],
q(napu) => [
- q(5042),
+ q(5036),
q(0),
],
q(nar phu) => [
- q(5032),
+ q(5025),
q(0),
],
q(nara) => [
- q(5050),
+ q(5045),
q(0),
],
q(narak) => [
- q(4721),
+ q(4714),
q(0),
],
q(narango) => [
- q(5054),
+ q(5049),
q(0),
],
q(narau) => [
- q(5154),
+ q(5149),
q(0),
],
q(nari nari) => [
- q(5835),
+ q(5824),
q(0),
],
q(narim) => [
- q(4020),
+ q(4011),
q(0),
],
q(naro) => [
- q(4875),
+ q(4868),
q(0),
],
q(narom) => [
- q(5058),
+ q(5053),
q(0),
],
q(narragansett) => [
- q(7442),
+ q(7427),
q(0),
],
q(narrinyeri) => [
- q(4738),
+ q(4730),
q(0),
],
q(narua) => [
- q(5063),
+ q(5058),
q(0),
],
q(narungga) => [
- q(5004),
+ q(4997),
q(0),
],
q(nasal) => [
- q(5087),
+ q(5082),
q(0),
],
q(nasarian) => [
- q(5129),
+ q(5124),
q(0),
],
q(naskapi) => [
- q(5074),
- q(0),
- ],
- q(natagaimas) => [
- q(5098),
+ q(5069),
q(0),
],
q(natanzi) => [
- q(5103),
+ q(5098),
q(0),
],
q(nataoran amis) => [
- q(0708),
+ q(0709),
q(0),
],
q(natchez) => [
- q(4783),
+ q(4776),
q(0),
],
q(nateni) => [
- q(5094),
+ q(5090),
q(0),
],
q(nathembo) => [
- q(5089),
+ q(5085),
q(0),
],
q(natioro) => [
- q(5091),
+ q(5087),
q(0),
],
q(natugu) => [
- q(5099),
+ q(5094),
q(0),
],
q(nauete) => [
- q(5142),
+ q(5137),
q(0),
],
q(naukan yupik) => [
- q(7710),
+ q(7695),
q(0),
],
q(nauna) => [
- q(4775),
+ q(4767),
q(0),
],
q(nauo) => [
- q(5138),
+ q(5133),
q(0),
],
q(nauru) => [
- q(0301),
+ q(0302),
q(0),
],
q(navaho) => [
- q(0302),
+ q(0303),
q(1),
],
q(navajo) => [
- q(0302),
+ q(0303),
q(0),
],
q(navut) => [
- q(5085),
+ q(5080),
q(0),
],
q(nawaru) => [
- q(5139),
+ q(5134),
q(0),
],
q(nawathinehena) => [
- q(5132),
+ q(5127),
q(0),
],
q(nawdm) => [
- q(4987),
+ q(4980),
q(0),
],
q(nawuri) => [
- q(4736),
+ q(4728),
q(0),
],
q(naxi) => [
- q(5152),
+ q(5147),
q(0),
],
q(nayi) => [
- q(5031),
+ q(5024),
q(0),
],
q(nayini) => [
- q(5168),
+ q(5163),
q(0),
],
q(ncane) => [
- q(4778),
+ q(4771),
q(0),
],
q(nchumbulu) => [
- q(4956),
+ q(4949),
q(0),
],
q(nda'nda') => [
- q(5011),
+ q(5004),
q(0),
],
q(ndai) => [
- q(2538),
+ q(2536),
q(0),
],
q(ndaka) => [
- q(4793),
+ q(4786),
q(0),
],
q(ndaktup) => [
- q(4777),
+ q(4769),
q(0),
],
q(ndali) => [
- q(4790),
+ q(4783),
q(0),
],
q(ndam) => [
- q(4795),
+ q(4788),
q(0),
],
q(ndamba) => [
- q(4792),
+ q(4785),
q(0),
],
q(ndambomo) => [
- q(5151),
+ q(5146),
q(0),
],
q(ndasa) => [
- q(4784),
+ q(4777),
q(0),
],
q(ndau) => [
- q(4786),
+ q(4779),
q(0),
],
q(nde-gbite) => [
- q(4810),
+ q(4803),
q(0),
],
q(nde-nsele-nta) => [
- q(4787),
+ q(4780),
q(0),
],
q(ndebele, north) => [
- q(0304),
+ q(0305),
q(0),
],
q(ndebele, south) => [
- q(0303),
+ q(0304),
q(0),
],
q(ndemli) => [
- q(4973),
+ q(4966),
q(0),
],
q(ndendeule) => [
- q(2101),
+ q(2095),
q(0),
],
q(ndengereko) => [
- q(4789),
+ q(4782),
q(0),
],
q(nding) => [
- q(2245),
+ q(2241),
q(0),
],
q(ndo) => [
- q(4797),
+ q(4790),
q(0),
],
q(ndobo) => [
- q(4803),
+ q(4796),
q(0),
],
q(ndoe) => [
- q(4741),
+ q(4733),
q(0),
],
q(ndogo) => [
- q(4806),
+ q(4799),
q(0),
],
q(ndolo) => [
- q(4794),
+ q(4787),
q(0),
],
q(ndom) => [
- q(5045),
+ q(5040),
q(0),
],
q(ndombe) => [
- q(4798),
+ q(4791),
q(0),
],
q(ndonde hamba) => [
- q(4907),
+ q(4900),
q(0),
],
q(ndonga) => [
- q(0305),
+ q(0306),
q(0),
],
q(ndoola) => [
- q(4799),
+ q(4792),
q(0),
],
q(ndra'ngith) => [
- q(2017),
+ q(2011),
q(0),
],
q(nduga) => [
- q(4804),
+ q(4797),
q(0),
],
q(ndumu) => [
- q(4965),
+ q(4958),
q(0),
],
q(ndunda) => [
- q(5110),
+ q(5105),
q(0),
],
q(ndunga) => [
- q(4800),
+ q(4793),
q(0),
],
q(ndut) => [
- q(4802),
+ q(4795),
q(0),
],
q(ndyuka-trio pidgin) => [
- q(4917),
+ q(4910),
q(0),
],
q(ndzwani comorian) => [
- q(7187),
+ q(7173),
q(0),
],
q(neapolitan) => [
- q(0300),
+ q(0301),
q(0),
],
q(nedebang) => [
- q(4809),
+ q(4802),
q(0),
],
q(nefamese) => [
- q(4812),
+ q(4805),
q(0),
],
q(negerhollands) => [
- q(1977),
+ q(1971),
q(0),
],
q(negeri sembilan malay) => [
- q(7884),
+ q(7869),
q(0),
],
q(negidal) => [
- q(4813),
+ q(4806),
q(0),
],
q(nehan) => [
- q(5077),
+ q(5072),
q(0),
],
q(nek) => [
- q(4886),
+ q(4879),
q(0),
],
q(nekgini) => [
- q(4928),
+ q(4921),
q(0),
],
q(neko) => [
- q(4816),
+ q(4809),
q(0),
],
q(neku) => [
- q(4817),
+ q(4810),
q(0),
],
q(nelemwa-nixumwak) => [
- q(4811),
+ q(4804),
+ q(0),
+ ],
+ q(nema) => [
+ q(2634),
q(0),
],
q(neme) => [
- q(4827),
+ q(4820),
q(0),
],
q(nemi) => [
- q(4818),
+ q(4811),
q(0),
],
q(nen) => [
- q(5046),
+ q(5041),
q(0),
],
q(nend) => [
- q(0796),
+ q(0797),
q(0),
],
q(nenets) => [
- q(7740),
+ q(7724),
q(0),
],
q(nenge) => [
- q(2066),
+ q(2060),
q(2),
],
q(nengone) => [
- q(4819),
+ q(4812),
q(0),
],
q(neo) => [
- q(4825),
+ q(4818),
q(0),
],
q(neo-hittite) => [
- q(4815),
+ q(4808),
q(0),
],
q(nepal bhasa) => [
- q(0308),
+ q(0309),
q(0),
],
q(nepalese sign language) => [
- q(5078),
+ q(5073),
q(0),
],
q(nepali) => [
- q(0307),
+ q(0308),
q(0),
],
q(nepali (individual language)) => [
- q(5036),
+ q(5029),
q(0),
],
q(nepali (macrolanguage)) => [
- q(0307),
+ q(0308),
q(1),
],
q(nepali kurux) => [
- q(3727),
+ q(3720),
q(0),
],
q(nete) => [
- q(4824),
+ q(4817),
q(0),
],
q(neve'ei) => [
- q(7042),
+ q(7027),
q(1),
],
q(neverver) => [
- q(3891),
+ q(3882),
q(1),
],
q(new caledonian javanese) => [
- q(3054),
+ q(3053),
q(0),
],
q(new zealand sign language) => [
- q(5181),
+ q(5176),
q(0),
],
q(newari) => [
- q(0308),
+ q(0309),
q(1),
],
q(neyo) => [
- q(4828),
+ q(4821),
q(0),
],
q(nez perce) => [
- q(4829),
+ q(4822),
q(0),
],
q(ngaanyatjarra) => [
- q(5092),
+ q(5088),
q(0),
],
q(ngabere) => [
- q(2703),
+ q(2700),
q(0),
],
q(ngad'a) => [
- q(5145),
+ q(5140),
q(0),
],
q(ngadjunmaya) => [
- q(4918),
+ q(4911),
q(0),
],
q(ngadjuri) => [
- q(3152),
+ q(3151),
q(0),
],
q(ngaing) => [
- q(4993),
+ q(4986),
q(0),
],
q(ngaju) => [
- q(4890),
+ q(4883),
q(0),
],
q(ngala) => [
- q(5106),
+ q(5101),
q(0),
],
q(ngalakan) => [
- q(4887),
+ q(4880),
q(0),
],
q(ngalum) => [
- q(6348),
+ q(6336),
q(0),
],
q(ngam) => [
- q(4964),
+ q(4957),
q(0),
],
q(ngamambo) => [
- q(4759),
+ q(4751),
q(0),
],
q(ngambay) => [
- q(5902),
+ q(5892),
q(0),
],
q(ngamini) => [
- q(4983),
+ q(4976),
q(0),
],
q(ngamo) => [
- q(4746),
+ q(4738),
q(0),
],
q(ngan'gityemerri) => [
- q(4729),
+ q(4721),
q(0),
],
q(nganakarti) => [
- q(7437),
+ q(7422),
q(0),
],
q(nganasan) => [
- q(4895),
+ q(4888),
q(0),
],
q(ngandi) => [
- q(4884),
+ q(4877),
q(0),
],
q(ngando (central african republic)) => [
- q(4838),
+ q(4831),
q(0),
],
q(ngando (democratic republic of congo)) => [
- q(5143),
+ q(5138),
q(0),
],
q(ngandyera) => [
- q(4992),
+ q(4985),
q(0),
],
q(ngangam) => [
- q(2572),
+ q(2570),
q(0),
],
q(ngantangarra) => [
- q(5090),
+ q(5086),
q(0),
],
q(nganyaywana) => [
- q(5175),
+ q(5170),
q(0),
],
q(ngardi) => [
- q(5881),
+ q(5870),
q(0),
],
q(ngarigu) => [
- q(7436),
+ q(7421),
q(0),
],
q(ngarinman) => [
- q(4748),
+ q(4740),
q(0),
],
q(ngarinyin) => [
- q(6916),
+ q(6901),
q(0),
],
q(ngarla) => [
- q(5056),
+ q(5051),
q(0),
],
q(ngarluma) => [
- q(5057),
+ q(5052),
q(0),
],
q(ngas) => [
- q(0792),
+ q(0793),
q(0),
],
q(ngasa) => [
- q(5071),
+ q(5066),
q(0),
],
q(ngatik men's creole) => [
- q(4846),
+ q(4839),
q(0),
],
q(ngawn chin) => [
- q(1807),
+ q(1804),
q(0),
],
q(ngawun) => [
- q(5150),
+ q(5145),
q(0),
],
q(ngayawung) => [
- q(5135),
+ q(5130),
q(0),
],
q(ngazidja comorian) => [
- q(7835),
+ q(7820),
q(0),
],
q(ngbaka) => [
- q(4835),
+ q(4828),
q(0),
],
q(ngbaka ma'bo) => [
- q(4750),
+ q(4742),
q(0),
],
q(ngbaka manza) => [
- q(4840),
+ q(4833),
q(0),
],
q(ngbee) => [
- q(3085),
+ q(3083),
q(0),
],
q(ngbinda) => [
- q(4743),
+ q(4735),
q(0),
],
q(ngbundu) => [
- q(5123),
+ q(5118),
q(0),
],
q(ngelima) => [
- q(0659),
+ q(0660),
q(0),
],
q(ngemba) => [
- q(4839),
+ q(4832),
q(0),
],
- q(ngeq) => [
- q(4853),
+ q(ngendelengo) => [
+ q(5039),
q(0),
],
+ q(ngeq) => [
+ q(4846),
+ q(1),
+ ],
q(ngete) => [
- q(5001),
+ q(4994),
q(0),
],
q(nggem) => [
- q(4754),
+ q(4746),
q(0),
],
q(nggwahyi) => [
- q(4857),
+ q(4850),
q(0),
],
q(ngie) => [
- q(4843),
+ q(4836),
q(0),
],
q(ngiemboon) => [
- q(4995),
+ q(4988),
q(0),
],
q(ngile) => [
- q(3114),
+ q(3113),
q(0),
],
q(ngindo) => [
- q(5003),
+ q(4996),
q(0),
],
q(ngiti) => [
- q(4903),
+ q(4896),
q(0),
],
q(ngizim) => [
- q(4842),
+ q(4835),
q(0),
],
q(ngkalmpw kanum) => [
- q(3212),
+ q(3211),
q(0),
],
q(ngom) => [
- q(5049),
+ q(5044),
q(0),
],
q(ngomba) => [
- q(3088),
+ q(3086),
q(0),
],
q(ngombale) => [
- q(4946),
+ q(4939),
q(0),
],
q(ngombe (central african republic)) => [
- q(4971),
+ q(4964),
q(0),
],
q(ngombe (democratic republic of congo)) => [
- q(4837),
+ q(4830),
q(0),
],
q(ngongo) => [
- q(5024),
+ q(5017),
q(0),
],
q(ngoni) => [
- q(4848),
+ q(4841),
q(0),
],
q(ngoreme) => [
- q(4850),
+ q(4843),
q(1),
],
q(ngoshie) => [
- q(5072),
+ q(5067),
q(0),
],
q(ngul) => [
- q(4954),
+ q(4947),
q(0),
],
q(ngulu) => [
- q(4849),
+ q(4842),
q(0),
],
q(nguluwan) => [
- q(5125),
+ q(5120),
q(0),
],
q(ngumbi) => [
- q(5111),
+ q(5106),
q(0),
],
q(ngunawal) => [
- q(7535),
+ q(7520),
q(0),
],
q(ngundi) => [
- q(4796),
+ q(4789),
q(0),
],
q(ngundu) => [
- q(5107),
+ q(5102),
q(0),
],
q(ngungwel) => [
- q(4859),
+ q(4852),
q(0),
],
q(nguon) => [
- q(5117),
+ q(5112),
q(0),
],
q(ngurimi) => [
- q(4850),
+ q(4843),
q(0),
],
q(ngurmbur) => [
- q(5064),
+ q(5059),
q(0),
],
q(ngwaba) => [
- q(4856),
+ q(4849),
q(0),
],
q(ngwe) => [
- q(5134),
+ q(5129),
q(0),
],
q(ngwo) => [
- q(4847),
+ q(4840),
q(0),
],
q(nhanda) => [
- q(4860),
+ q(4853),
q(0),
],
q(nhengatu) => [
- q(7741),
+ q(7725),
q(0),
],
q(nhirrpi) => [
- q(2837),
+ q(2834),
q(0),
],
q(nhuwala) => [
- q(4865),
+ q(4858),
q(0),
],
q(nias) => [
- q(0309),
+ q(0310),
q(0),
],
q(nicaragua creole english) => [
- q(1623),
+ q(1622),
q(0),
],
q(nicaraguan sign language) => [
- q(4779),
+ q(4772),
q(0),
],
q(nicarao) => [
- q(5576),
+ q(5570),
q(1),
],
q(niellim) => [
- q(4885),
+ q(4878),
q(0),
],
q(niger-kordofanian languages) => [
- q(0310),
+ q(0311),
q(0),
],
q(nigeria mambila) => [
- q(4703),
+ q(4696),
q(0),
],
q(nigerian fulfulde) => [
- q(2393),
+ q(2391),
q(0),
],
q(nigerian pidgin) => [
- q(5393),
+ q(5389),
q(0),
],
q(nigerian sign language) => [
- q(5073),
+ q(5068),
q(0),
],
q(nihali) => [
- q(4953),
+ q(4946),
q(0),
],
q(nii) => [
- q(4889),
- q(0),
- ],
- q(nijadali) => [
- q(4722),
+ q(4882),
q(0),
],
q(niksek) => [
- q(2423),
+ q(2421),
q(0),
],
q(nila) => [
- q(4892),
+ q(4885),
q(0),
],
q(nilamba) => [
- q(4893),
+ q(4886),
q(0),
],
q(nilo-saharan languages) => [
- q(0406),
+ q(0407),
q(0),
],
q(nimadi) => [
- q(5015),
+ q(5008),
q(0),
],
q(nimanbur) => [
- q(4977),
+ q(4970),
q(0),
],
q(nimbari) => [
- q(4979),
+ q(4972),
q(0),
],
q(nimboran) => [
- q(4897),
+ q(4890),
q(0),
],
q(nimi) => [
- q(4898),
+ q(4891),
q(0),
],
q(nimo) => [
- q(4901),
+ q(4894),
q(0),
],
q(nimoa) => [
- q(4984),
+ q(4977),
q(0),
],
q(ninam) => [
- q(6011),
+ q(6002),
q(0),
],
q(ninde) => [
- q(4632),
+ q(4625),
q(1),
],
q(nindi) => [
- q(5146),
+ q(5141),
q(0),
],
q(ningera) => [
- q(4761),
+ q(4753),
q(0),
],
q(ninggerum) => [
- q(5153),
+ q(5148),
q(0),
],
q(ningil) => [
- q(4904),
+ q(4897),
q(0),
],
q(ningye) => [
- q(5005),
+ q(4998),
q(0),
],
q(ninia yali) => [
- q(4952),
+ q(4945),
q(0),
],
q(ninzo) => [
- q(4894),
+ q(4887),
q(0),
],
q(nipsan) => [
- q(5040),
+ q(5033),
q(0),
],
q(nisa) => [
- q(4916),
+ q(4909),
q(0),
],
q(nisenan) => [
- q(5088),
+ q(5083),
q(0),
],
q(nisga'a) => [
- q(4768),
+ q(4760),
q(0),
],
q(nisi (china)) => [
- q(7752),
+ q(7737),
q(0),
],
q(niuafo'ou) => [
- q(5115),
+ q(5110),
q(0),
],
q(niuatoputapu) => [
- q(4936),
+ q(4929),
q(0),
],
q(niuean) => [
- q(0311),
+ q(0312),
q(0),
],
q(nivacle) => [
- q(1644),
+ q(1643),
q(0),
],
q(niwer mil) => [
- q(2832),
+ q(2829),
q(0),
],
q(njalgulgule) => [
- q(4911),
+ q(4904),
q(0),
],
q(njebi) => [
- q(5178),
+ q(5173),
q(0),
],
q(njen) => [
- q(4910),
+ q(4903),
q(0),
],
q(njerep) => [
- q(4915),
+ q(4908),
q(0),
],
q(njyem) => [
- q(4920),
+ q(4913),
q(0),
],
q(nkami) => [
- q(4937),
+ q(4930),
q(0),
],
q(nkangala) => [
- q(4934),
+ q(4927),
q(0),
],
q(nkari) => [
- q(4945),
+ q(4938),
q(0),
],
q(nkem-nkum) => [
- q(3002),
+ q(3000),
q(0),
],
q(nkhumbi) => [
- q(3349),
+ q(3346),
q(0),
],
q(nkongho) => [
- q(4924),
+ q(4917),
q(0),
],
q(nkonya) => [
- q(4935),
+ q(4928),
q(0),
],
q(nkoroo) => [
- q(4944),
+ q(4937),
q(0),
],
q(nkoya) => [
- q(4922),
+ q(4915),
q(0),
],
q(nkukoli) => [
- q(4752),
+ q(4744),
q(0),
],
q(nkutu) => [
- q(4943),
+ q(4936),
q(0),
],
q(nnam) => [
- q(4753),
+ q(4745),
q(0),
],
q(no linguistic content) => [
- q(0485),
+ q(0486),
q(0),
],
q(nobiin) => [
- q(2345),
+ q(2342),
q(0),
],
q(nobonob) => [
- q(2418),
+ q(2416),
q(0),
],
q(nocaman) => [
- q(5022),
+ q(5015),
q(0),
],
q(nocte naga) => [
- q(4906),
+ q(4899),
q(0),
],
q(nogai) => [
- q(0314),
+ q(0315),
+ q(0),
+ ],
+ q(noipx) => [
+ q(5035),
q(0),
],
q(noiri) => [
- q(5018),
+ q(5011),
q(0),
],
q(nokuku) => [
- q(4932),
+ q(4925),
q(0),
],
q(nomaande) => [
- q(3871),
+ q(3862),
q(0),
],
q(nomane) => [
- q(5016),
+ q(5009),
q(0),
],
q(nomatsiguenga) => [
- q(5026),
+ q(5019),
q(0),
],
q(nomlaki) => [
- q(5021),
+ q(5014),
q(0),
],
q(nomu) => [
- q(5017),
+ q(5010),
q(0),
],
q(nong zhuang) => [
- q(7847),
+ q(7832),
q(0),
],
q(nonuya) => [
- q(5019),
+ q(5012),
q(0),
],
q(nooksack) => [
- q(5020),
+ q(5013),
q(0),
],
q(noon) => [
- q(6138),
+ q(6128),
q(0),
],
q(noone) => [
- q(4877),
+ q(4870),
q(0),
],
q(nopala chatino) => [
- q(1930),
+ q(1924),
q(0),
],
q(nora) => [
- q(5061),
+ q(5056),
q(1),
],
q(noric) => [
- q(5051),
+ q(5046),
q(0),
],
q(norn) => [
- q(5059),
+ q(5054),
q(0),
],
q(norra) => [
- q(5061),
+ q(5056),
q(0),
],
q(norse, old) => [
- q(0315),
+ q(0316),
q(0),
],
q(north alaskan inupiatun) => [
- q(2293),
+ q(2290),
q(0),
],
q(north ambrym) => [
- q(4396),
+ q(4389),
q(0),
],
q(north american indian languages) => [
- q(0299),
+ q(0300),
q(0),
],
q(north asmat) => [
- q(4939),
+ q(4932),
q(0),
],
q(north awyu) => [
- q(7657),
+ q(7642),
q(0),
],
q(north azerbaijani) => [
- q(1016),
+ q(1017),
q(0),
],
q(north babar) => [
- q(1067),
+ q(1068),
q(0),
],
q(north bolivian quechua) => [
- q(5688),
+ q(5679),
q(0),
],
q(north caucasian languages) => [
- q(0495),
+ q(0496),
q(0),
],
q(north central mixe) => [
- q(4821),
+ q(4814),
q(0),
],
q(north efate) => [
- q(3971),
+ q(3962),
q(0),
],
q(north fali) => [
- q(2356),
+ q(2353),
q(0),
],
q(north germanic languages) => [
- q(0506),
+ q(0507),
q(0),
],
q(north giziga) => [
- q(2525),
+ q(2522),
q(0),
],
q(north junin quechua) => [
- q(5708),
+ q(5699),
q(0),
],
q(north levantine arabic) => [
- q(0835),
+ q(0836),
q(0),
],
q(north marquesan) => [
- q(4521),
+ q(4514),
q(0),
],
q(north mesopotamian arabic) => [
- q(1004),
+ q(1005),
q(0),
],
q(north mofu) => [
- q(4235),
+ q(4227),
q(0),
],
q(north moluccan malay) => [
- q(4126),
+ q(4118),
q(0),
],
q(north muyu) => [
- q(3628),
+ q(3623),
q(0),
],
q(north ndebele) => [
- q(0304),
+ q(0305),
q(1),
],
q(north nuaulu) => [
- q(4996),
+ q(4989),
q(0),
],
q(north picene) => [
- q(5060),
+ q(5055),
q(0),
],
q(north slavey) => [
- q(5938),
+ q(5928),
q(0),
],
q(north tairora) => [
- q(6386),
+ q(6375),
q(0),
],
q(north tanna) => [
- q(6622),
+ q(6607),
q(0),
],
q(north wahgi) => [
- q(7124),
+ q(7110),
q(0),
],
q(north watut) => [
- q(6914),
+ q(6899),
q(0),
],
q(northeast kiwai) => [
- q(3374),
+ q(3371),
q(0),
],
q(northeast maidu) => [
- q(4982),
+ q(4975),
q(0),
],
q(northeast pashai) => [
- q(0627),
+ q(0628),
q(0),
],
q(northeast pashayi) => [
- q(0627),
+ q(0628),
q(1),
],
q(northeastern dinka) => [
- q(2048),
+ q(2042),
q(0),
],
q(northeastern pomo) => [
- q(5408),
+ q(5404),
q(0),
],
q(northeastern thai) => [
- q(6753),
+ q(6737),
q(0),
],
q(northern alta) => [
- q(0863),
+ q(0864),
q(0),
],
q(northern altai) => [
- q(0928),
+ q(0929),
q(0),
],
q(northern amami-oshima) => [
- q(5883),
+ q(5872),
q(0),
],
q(northern bai) => [
- q(1138),
+ q(1139),
q(1),
],
q(northern betsimisaraka malagasy) => [
@@ -45550,195 +45567,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(northern binukidnon) => [
- q(3755),
+ q(3748),
q(0),
],
q(northern bobo madare) => [
- q(1052),
+ q(1053),
q(0),
],
q(northern bontok) => [
- q(5759),
+ q(5750),
q(0),
],
q(northern catanduanes bikol) => [
- q(1899),
+ q(1894),
q(0),
],
q(northern conchucos ancash quechua) => [
- q(5725),
+ q(5716),
q(0),
],
q(northern dagara) => [
- q(2011),
+ q(2005),
q(0),
],
q(northern dong) => [
- q(2115),
+ q(2109),
q(0),
],
q(northern east cree) => [
- q(1853),
+ q(1848),
q(0),
],
q(northern embera) => [
- q(2258),
+ q(2254),
q(0),
],
q(northern frisian) => [
- q(0140),
+ q(0141),
q(0),
],
q(northern ghale) => [
- q(2506),
+ q(2502),
q(0),
],
q(northern gondi) => [
- q(2579),
+ q(2577),
q(0),
],
q(northern grebo) => [
- q(2433),
+ q(2431),
q(0),
],
q(northern guiyang hmong) => [
- q(2860),
+ q(2857),
q(0),
],
q(northern guiyang miao) => [
- q(2860),
+ q(2857),
q(1),
],
q(northern haida) => [
- q(2739),
+ q(2736),
q(0),
],
q(northern hindko) => [
- q(2807),
+ q(2804),
q(0),
],
q(northern huishui hmong) => [
- q(2785),
+ q(2782),
q(0),
],
q(northern huishui miao) => [
- q(2785),
+ q(2782),
q(1),
],
q(northern kalapuya) => [
- q(5062),
+ q(5057),
q(0),
],
q(northern kankanay) => [
- q(7438),
+ q(7423),
+ q(0),
+ ],
+ q(northern katang) => [
+ q(4770),
q(0),
],
q(northern khmer) => [
- q(3728),
+ q(3721),
q(0),
],
q(northern kissi) => [
- q(3566),
+ q(3562),
q(0),
],
q(northern kurdish) => [
- q(3471),
+ q(3468),
q(0),
],
q(northern luri) => [
- q(4043),
+ q(4034),
q(0),
],
q(northern mashan hmong) => [
- q(2790),
+ q(2787),
q(0),
],
q(northern mashan miao) => [
- q(2790),
+ q(2787),
q(1),
],
q(northern muji) => [
- q(7704),
+ q(7689),
q(0),
],
q(northern nago) => [
- q(7370),
+ q(7356),
q(0),
],
q(northern ngbandi) => [
- q(4836),
+ q(4829),
q(0),
],
q(northern nisu) => [
- q(7661),
+ q(7646),
q(0),
],
q(northern nuni) => [
- q(5124),
+ q(5119),
q(0),
],
q(northern oaxaca nahuatl) => [
- q(4881),
+ q(4874),
q(0),
],
q(northern ohlone) => [
- q(1883),
+ q(1878),
q(0),
],
q(northern one) => [
- q(5277),
+ q(5272),
q(0),
],
q(northern paiute) => [
- q(5354),
+ q(5350),
q(0),
],
q(northern pame) => [
- q(5522),
+ q(5518),
q(0),
],
q(northern pashto) => [
- q(5378),
+ q(5374),
q(0),
],
q(northern pastaza quichua) => [
- q(5714),
+ q(5705),
q(0),
],
q(northern pomo) => [
- q(5412),
+ q(5408),
q(0),
],
q(northern puebla nahuatl) => [
- q(4771),
+ q(4763),
q(0),
],
q(northern pumi) => [
- q(5515),
+ q(5511),
q(0),
],
q(northern qiandong miao) => [
- q(2742),
+ q(2739),
q(0),
],
q(northern qiang) => [
- q(1798),
+ q(1795),
q(0),
],
q(northern rengma naga) => [
- q(4999),
+ q(4992),
q(0),
],
q(northern roglai) => [
- q(5842),
+ q(5831),
q(0),
],
q(northern sami) => [
- q(0388),
+ q(0389),
q(0),
],
q(northern sierra miwok) => [
- q(5079),
+ q(5074),
q(0),
],
q(northern sorsoganon) => [
@@ -45746,123 +45767,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(northern sotho) => [
- q(0318),
+ q(0319),
q(2),
],
q(northern subanen) => [
- q(6255),
+ q(6244),
q(0),
],
q(northern tarahumara) => [
- q(6501),
+ q(6489),
q(0),
],
q(northern tepehuan) => [
- q(5096),
+ q(5092),
q(0),
],
q(northern thai) => [
- q(5014),
+ q(5007),
+ q(0),
+ ],
+ q(northern tidung) => [
+ q(5084),
q(0),
],
q(northern tiwa) => [
- q(6797),
+ q(6781),
q(0),
],
q(northern tlaxiaco mixtec) => [
- q(7518),
+ q(7503),
q(0),
],
q(northern toussian) => [
- q(6724),
+ q(6708),
q(0),
],
q(northern tujia) => [
- q(6540),
+ q(6527),
q(0),
],
q(northern tutchone) => [
- q(6747),
+ q(6731),
q(0),
],
q(northern uzbek) => [
- q(6968),
+ q(6953),
q(0),
],
q(northern yukaghir) => [
- q(7665),
+ q(7650),
q(0),
],
q(northwest alaska inupiatun) => [
- q(2294),
+ q(2291),
q(0),
],
q(northwest gbaya) => [
- q(2695),
+ q(2692),
q(0),
],
q(northwest maidu) => [
- q(4322),
+ q(4315),
q(0),
],
q(northwest oaxaca mixtec) => [
- q(4647),
+ q(4640),
q(0),
],
q(northwest pashai) => [
- q(2545),
+ q(2543),
q(0),
],
q(northwest pashayi) => [
- q(2545),
+ q(2543),
q(1),
],
q(northwestern dinka) => [
- q(2054),
+ q(2048),
q(0),
],
q(northwestern fars) => [
- q(2338),
+ q(2335),
q(0),
],
q(northwestern kolami) => [
- q(3284),
+ q(3283),
q(0),
],
q(northwestern kung) => [
- q(6975),
- q(2),
+ q(6960),
+ q(1),
],
q(northwestern nisu) => [
- q(5070),
+ q(5065),
q(0),
],
q(northwestern ojibwa) => [
- q(5218),
+ q(5213),
q(0),
],
q(northwestern tamang) => [
- q(6596),
+ q(6583),
q(0),
],
q(norwegian) => [
- q(0316),
+ q(0317),
q(0),
],
q(norwegian bokmal) => [
- q(0313),
+ q(0314),
q(1),
],
q(norwegian nynorsk) => [
- q(0312),
+ q(0313),
q(0),
],
q(norwegian sign language) => [
- q(5075),
+ q(5070),
q(0),
],
q(not applicable) => [
- q(0485),
+ q(0486),
q(1),
],
q(notre) => [
@@ -45870,475 +45895,483 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(notsi) => [
- q(4767),
+ q(4759),
q(0),
],
q(nottoway) => [
- q(5100),
+ q(5095),
q(0),
],
q(nottoway-meherrin) => [
- q(5141),
+ q(5136),
q(0),
],
q(novial) => [
- q(5028),
+ q(5021),
q(0),
],
q(noy) => [
- q(5030),
+ q(5023),
q(0),
],
q(nsenga) => [
- q(5069),
+ q(5064),
q(0),
],
q(nshi) => [
- q(5067),
+ q(5062),
q(0),
],
q(nsongo) => [
- q(5086),
+ q(5081),
q(0),
],
q(ntcham) => [
- q(1497),
+ q(1496),
q(0),
],
q(ntomba) => [
- q(5095),
+ q(5091),
q(0),
],
q(nu) => [
- q(4841),
+ q(4834),
q(1),
],
q(nubaca) => [
- q(1026),
+ q(1027),
q(0),
],
q(nubi) => [
- q(3222),
+ q(3221),
q(0),
],
q(nubian languages) => [
- q(0319),
+ q(0320),
q(0),
],
q(nubri) => [
- q(3624),
+ q(3619),
q(0),
],
q(nuer) => [
- q(5121),
+ q(5116),
q(0),
],
q(nugunu (australia)) => [
- q(5008),
+ q(5001),
q(0),
],
q(nugunu (cameroon)) => [
- q(7591),
+ q(7576),
q(0),
],
q(nuk) => [
- q(5013),
+ q(5006),
q(0),
],
q(nukak maku) => [
- q(4144),
+ q(4136),
q(0),
],
q(nukna) => [
- q(3448),
+ q(3445),
q(0),
],
q(nukuini) => [
- q(5105),
+ q(5100),
q(0),
],
q(nukumanu) => [
- q(5119),
+ q(5114),
q(0),
],
q(nukunul) => [
- q(7443),
+ q(7428),
q(0),
],
q(nukuoro) => [
- q(4938),
+ q(4931),
q(0),
],
q(nukuria) => [
- q(5120),
+ q(5115),
q(0),
],
q(numana-nunku-gbantu-numbu) => [
- q(4755),
+ q(4747),
q(0),
],
q(numanggang) => [
- q(5023),
+ q(5016),
q(0),
],
q(numbami) => [
- q(6041),
+ q(6032),
q(0),
],
q(nume) => [
- q(6489),
+ q(6478),
q(0),
],
q(numee) => [
- q(3244),
+ q(3243),
q(0),
],
q(numidian) => [
- q(5149),
+ q(5144),
q(0),
],
q(nung (viet nam)) => [
- q(5122),
+ q(5117),
q(0),
],
q(nungali) => [
- q(5109),
+ q(5104),
q(0),
],
q(nunggubuyu) => [
- q(5127),
+ q(5122),
q(0),
],
q(nungu) => [
- q(5791),
+ q(5781),
q(0),
],
q(nuosu) => [
- q(0189),
+ q(0190),
q(1),
],
q(nupbikha) => [
- q(5033),
+ q(5026),
q(0),
],
q(nupe-nupe-tako) => [
- q(5118),
+ q(5113),
q(0),
],
q(nupode huitoto) => [
- q(2872),
+ q(2869),
q(0),
],
q(nusa laut) => [
- q(5114),
+ q(5109),
q(0),
],
q(nusu) => [
- q(5108),
+ q(5103),
q(0),
],
q(nuu-chah-nulth) => [
- q(5113),
+ q(5108),
q(0),
],
q(nuuchahnulth) => [
- q(5113),
+ q(5108),
q(1),
],
q(nyabwa) => [
- q(5133),
+ q(5128),
q(0),
],
q(nyaheun) => [
- q(4826),
+ q(4819),
q(0),
],
q(nyahkur) => [
- q(1670),
+ q(1667),
q(0),
],
q(nyakyusa-ngonde) => [
- q(5176),
+ q(5171),
q(0),
],
q(nyalayu) => [
- q(7687),
+ q(7672),
q(0),
],
q(nyali) => [
- q(4951),
+ q(4944),
q(0),
],
q(nyam) => [
- q(4970),
+ q(4963),
q(0),
],
q(nyamal) => [
- q(4960),
+ q(4953),
q(0),
],
q(nyambo) => [
- q(5029),
+ q(5022),
q(0),
],
q(nyamusa-molo) => [
- q(5137),
+ q(5132),
q(0),
],
q(nyamwanga) => [
- q(4635),
+ q(4628),
q(0),
],
q(nyamwezi) => [
- q(0322),
+ q(0323),
q(0),
],
q(nyaneka) => [
- q(5165),
+ q(5160),
q(0),
],
q(nyang'i) => [
- q(5167),
+ q(5162),
q(0),
],
q(nyanga) => [
- q(5164),
+ q(5159),
q(0),
],
q(nyanga-li) => [
- q(5157),
+ q(5152),
q(0),
],
q(nyangatom) => [
- q(4997),
+ q(4990),
q(0),
],
q(nyangbo) => [
- q(5156),
+ q(5151),
q(0),
],
q(nyangga) => [
- q(5010),
+ q(5003),
q(0),
],
q(nyangumarta) => [
- q(4988),
+ q(4981),
q(0),
],
q(nyanja) => [
- q(0321),
+ q(0322),
q(2),
],
q(nyankole) => [
- q(0323),
+ q(0324),
q(0),
],
q(nyankpa) => [
- q(7628),
+ q(7613),
q(0),
],
q(nyarafolo senoufo) => [
- q(5982),
+ q(5973),
q(0),
],
q(nyaturu) => [
- q(5790),
+ q(5780),
q(0),
],
q(nyaw) => [
- q(5174),
+ q(5169),
q(0),
],
q(nyawaygi) => [
- q(5171),
+ q(5166),
q(0),
],
q(nyelayu) => [
- q(7687),
+ q(7672),
q(1),
],
q(nyemba) => [
- q(4740),
+ q(4732),
q(0),
],
q(nyengo) => [
- q(5159),
+ q(5154),
q(0),
],
q(nyenkha) => [
- q(4814),
+ q(4807),
q(0),
],
q(nyeu) => [
- q(5166),
+ q(5161),
q(0),
],
q(nyigina) => [
- q(5162),
+ q(5157),
q(0),
],
q(nyiha (malawi)) => [
- q(5169),
+ q(5164),
q(0),
],
q(nyiha (tanzania)) => [
- q(4888),
+ q(4881),
q(0),
],
q(nyika (malawi and zambia)) => [
- q(4942),
+ q(4935),
q(0),
],
q(nyika (tanzania)) => [
- q(4940),
+ q(4933),
q(0),
],
q(nyindrou) => [
- q(3913),
+ q(3904),
q(0),
],
q(nyindu) => [
- q(5161),
+ q(5156),
q(0),
],
q(nyishi) => [
- q(4921),
+ q(4914),
q(0),
],
q(nyiyaparli) => [
- q(7444),
+ q(7429),
q(0),
],
q(nynorsk, norwegian) => [
- q(0312),
+ q(0313),
q(1),
],
q(nyokon) => [
- q(5131),
+ q(5126),
q(0),
],
q(nyole) => [
- q(5112),
+ q(5107),
q(0),
],
q(nyong) => [
- q(4591),
+ q(4584),
q(0),
],
q(nyore) => [
- q(5158),
+ q(5153),
q(0),
],
q(nyoro) => [
- q(0324),
+ q(0325),
q(0),
],
q(nyulnyul) => [
- q(5173),
+ q(5168),
q(0),
],
q(nyunga) => [
- q(5170),
+ q(5165),
q(0),
],
q(nyungwe) => [
- q(5172),
+ q(5167),
q(0),
],
q(nzakambay) => [
- q(5183),
+ q(5178),
q(0),
],
q(nzakara) => [
- q(5179),
+ q(5174),
q(0),
],
q(nzanyi) => [
- q(4905),
+ q(4898),
q(0),
],
q(nzima) => [
- q(0325),
+ q(0326),
q(0),
],
q(o'chi'chi') => [
- q(7446),
+ q(7431),
q(0),
],
q(o'du) => [
- q(6832),
+ q(6816),
q(0),
],
q(obanliku) => [
- q(1637),
+ q(1636),
q(0),
],
q(obispeno) => [
- q(5189),
+ q(5184),
q(0),
],
q(oblo) => [
- q(5191),
+ q(5186),
q(0),
],
q(obo manobo) => [
- q(5193),
+ q(5188),
q(0),
],
q(obokuitai) => [
- q(0651),
+ q(0652),
q(0),
],
q(obolo) => [
- q(0802),
+ q(0803),
q(0),
],
q(obulom) => [
- q(5196),
+ q(5191),
q(0),
],
q(ocaina) => [
- q(5197),
+ q(5192),
q(0),
],
q(occidental) => [
- q(0192),
+ q(0193),
q(1),
],
q(occitan (post 1500)) => [
- q(0326),
+ q(0327),
q(0),
],
q(ocotepec mixtec) => [
- q(4302),
+ q(4294),
q(0),
],
q(ocotlan zapotec) => [
- q(7807),
+ q(7792),
q(0),
],
q(od) => [
- q(5202),
+ q(5197),
+ q(0),
+ ],
+ q(odia (individual language)) => [
+ q(5303),
q(0),
],
+ q(odia (macrolanguage)) => [
+ q(0329),
+ q(2),
+ ],
q(odiai) => [
q(1191),
q(0),
],
q(odoodee) => [
- q(3405),
+ q(3402),
q(0),
],
q(odual) => [
- q(5204),
+ q(5199),
q(0),
],
q(odut) => [
- q(5201),
+ q(5196),
q(0),
],
q(ofaye) => [
- q(5293),
+ q(5288),
q(0),
],
q(official aramaic (700-300 bce)) => [
@@ -46346,107 +46379,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ofo) => [
- q(5205),
+ q(5200),
q(0),
],
q(ogbah) => [
- q(5209),
+ q(5204),
q(0),
],
q(ogbia) => [
- q(5208),
+ q(5203),
q(0),
],
q(ogbogolo) => [
- q(5211),
+ q(5206),
q(0),
],
q(ogbronuagum) => [
- q(5213),
+ q(5208),
q(0),
],
q(ogea) => [
- q(2284),
+ q(2280),
q(0),
],
q(oirat) => [
- q(0470),
+ q(0471),
q(1),
],
q(oirata) => [
- q(5216),
+ q(5211),
q(0),
],
q(ojibwa) => [
- q(0327),
+ q(0328),
q(0),
],
q(ojitlan chinantec) => [
- q(1723),
+ q(1720),
q(0),
],
q(okanagan) => [
- q(5225),
+ q(5220),
q(0),
],
q(oki-no-erabu) => [
- q(5236),
+ q(5231),
q(0),
],
q(okiek) => [
- q(5231),
+ q(5226),
q(0),
],
q(oko-eni-osayen) => [
- q(5239),
+ q(5234),
q(0),
],
q(oko-juwoi) => [
- q(5232),
+ q(5227),
q(0),
],
q(okobo) => [
- q(5226),
+ q(5221),
q(0),
],
q(okodia) => [
- q(5227),
+ q(5222),
q(0),
],
q(okolod) => [
- q(3569),
+ q(3565),
q(0),
],
q(okpamheri) => [
- q(5288),
+ q(5283),
q(0),
],
q(okpe (northwestern edo)) => [
- q(5242),
+ q(5237),
q(0),
],
q(okpe (southwestern edo)) => [
- q(5228),
+ q(5223),
q(0),
],
q(oksapmin) => [
- q(5290),
+ q(5285),
q(0),
],
q(oku) => [
- q(5240),
+ q(5235),
q(0),
],
q(old aramaic (up to 700 bce)) => [
- q(5187),
+ q(5182),
q(0),
],
q(old avar) => [
- q(5188),
+ q(5183),
q(0),
],
q(old breton) => [
- q(5195),
+ q(5190),
q(0),
],
q(old bulgarian) => [
@@ -46454,11 +46487,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(old burmese) => [
- q(5194),
+ q(5189),
q(0),
],
q(old chinese) => [
- q(5198),
+ q(5193),
q(0),
],
q(old church slavonic) => [
@@ -46466,11 +46499,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(4),
],
q(old cornish) => [
- q(5199),
+ q(5194),
q(0),
],
q(old dutch) => [
- q(5203),
+ q(5198),
q(0),
],
q(old english (ca. 450-1100)) => [
@@ -46478,95 +46511,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old french (842-ca. 1400)) => [
- q(0139),
+ q(0140),
q(1),
],
q(old frisian) => [
- q(5206),
+ q(5201),
q(0),
],
q(old georgian) => [
- q(5210),
+ q(5205),
q(0),
],
q(old high german (ca. 750-1050)) => [
- q(0158),
+ q(0159),
q(1),
],
q(old hittite) => [
- q(5214),
+ q(5209),
q(0),
],
q(old hungarian) => [
- q(5215),
+ q(5210),
q(0),
],
q(old irish (to 900)) => [
- q(0377),
+ q(0378),
q(1),
],
q(old japanese) => [
- q(5221),
+ q(5216),
q(0),
],
q(old kentish sign language) => [
- q(5234),
+ q(5229),
q(0),
],
q(old korean (3rd-9th cent.)) => [
- q(5237),
+ q(5232),
q(0),
],
q(old lithuanian) => [
- q(5250),
+ q(5245),
q(0),
],
q(old manipuri) => [
- q(5261),
+ q(5256),
q(0),
],
q(old marathi) => [
- q(5262),
+ q(5257),
q(0),
],
q(old mon) => [
- q(5266),
+ q(5261),
q(0),
],
q(old newari) => [
- q(0320),
+ q(0321),
q(1),
],
q(old norse) => [
- q(0315),
+ q(0316),
q(1),
],
q(old nubian) => [
- q(5281),
+ q(5276),
q(0),
],
q(old occitan (to 1500)) => [
- q(0350),
+ q(0351),
q(2),
],
q(old ossetic) => [
- q(5287),
+ q(5282),
q(0),
],
q(old persian (ca. 600-400 b.c.)) => [
- q(0341),
+ q(0342),
q(1),
],
q(old provencal (to 1500)) => [
- q(0350),
+ q(0351),
q(1),
],
q(old russian) => [
- q(5305),
+ q(5300),
q(0),
],
q(old saxon) => [
- q(5316),
+ q(5311),
q(0),
],
q(old slavonic) => [
@@ -46574,171 +46607,167 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old spanish) => [
- q(5313),
+ q(5308),
q(0),
],
q(old tamil) => [
- q(5332),
+ q(5327),
q(0),
],
q(old tibetan) => [
- q(5317),
+ q(5312),
q(0),
],
q(old turkish) => [
- q(5321),
+ q(5316),
q(0),
],
q(old uighur) => [
- q(5337),
+ q(5332),
q(0),
],
q(old welsh) => [
- q(5340),
+ q(5336),
q(0),
],
q(olekha) => [
- q(5245),
+ q(5240),
q(0),
],
q(olkol) => [
- q(5246),
+ q(5241),
q(0),
],
q(olo) => [
- q(5270),
+ q(5265),
q(0),
],
q(oloma) => [
- q(5247),
+ q(5242),
q(0),
],
q(olrat) => [
- q(5249),
+ q(5244),
q(0),
],
q(olu'bo) => [
- q(4083),
+ q(4075),
q(0),
],
q(olukhayo) => [
- q(3950),
+ q(3941),
q(1),
],
q(olulumo-ikom) => [
- q(2943),
+ q(2940),
q(0),
],
q(oluluyia) => [
- q(4092),
+ q(4084),
q(1),
],
q(olumarachi) => [
- q(4046),
+ q(4037),
q(1),
],
q(olumarama) => [
- q(4049),
+ q(4040),
q(1),
],
q(olunyole) => [
- q(5158),
+ q(5153),
q(1),
],
q(olusamia) => [
- q(4063),
+ q(4054),
q(1),
],
q(olushisa) => [
- q(3952),
+ q(3943),
q(1),
],
q(oluta popoluca) => [
- q(5497),
+ q(5494),
q(0),
],
q(olutsotso) => [
- q(4074),
+ q(4066),
q(1),
],
q(oluwanga) => [
- q(4100),
+ q(4092),
q(1),
],
q(omagua) => [
- q(5255),
+ q(5250),
q(0),
],
q(omaha-ponca) => [
- q(5251),
+ q(5247),
q(0),
],
q(omani arabic) => [
- q(0601),
+ q(0602),
q(0),
],
q(ombamba) => [
- q(4139),
+ q(4131),
q(0),
],
q(ombo) => [
- q(5258),
- q(0),
- ],
- q(omejes) => [
- q(5254),
+ q(5253),
q(0),
],
q(ometepec nahuatl) => [
- q(4876),
+ q(4869),
q(0),
],
q(omi) => [
- q(5256),
+ q(5251),
q(0),
],
q(omie) => [
- q(0826),
+ q(0827),
q(0),
],
q(omok) => [
- q(5257),
+ q(5252),
q(0),
],
q(omotic languages) => [
- q(0518),
+ q(0519),
q(0),
],
q(omotik) => [
- q(5263),
+ q(5258),
q(0),
],
q(omurano) => [
- q(5264),
+ q(5259),
q(0),
],
q(ona) => [
- q(5267),
+ q(5262),
q(0),
],
q(oneida) => [
- q(5269),
+ q(5264),
q(0),
],
q(ong) => [
- q(5284),
+ q(5279),
q(0),
],
q(onge) => [
- q(5285),
+ q(5280),
q(0),
],
q(onin) => [
- q(5271),
+ q(5266),
q(0),
],
q(onin based pidgin) => [
- q(5282),
+ q(5277),
q(0),
],
q(oniyan) => [
@@ -46746,131 +46775,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(onjob) => [
- q(5272),
+ q(5267),
q(0),
],
q(ono) => [
- q(5278),
+ q(5273),
q(0),
],
q(onobasulu) => [
- q(5274),
+ q(5269),
q(0),
],
q(onondaga) => [
- q(5275),
+ q(5270),
q(0),
],
q(ontenu) => [
- q(5279),
+ q(5274),
q(0),
],
q(ontong java) => [
- q(5223),
+ q(5218),
q(0),
],
q(oorlams) => [
- q(5286),
+ q(5281),
q(0),
],
q(opao) => [
- q(5291),
+ q(5286),
q(0),
],
q(opata) => [
- q(5292),
+ q(5287),
q(0),
],
q(opuuo) => [
- q(3894),
- q(0),
+ q(3885),
+ q(1),
],
q(orang kanaq) => [
- q(5299),
+ q(5294),
q(0),
],
q(orang seletar) => [
- q(5302),
+ q(5297),
q(0),
],
q(oraon sadri) => [
- q(5957),
+ q(5948),
q(0),
],
q(orejon) => [
- q(5296),
+ q(5291),
q(0),
],
q(oring) => [
- q(5297),
+ q(5292),
q(0),
],
q(oriya) => [
- q(0328),
+ q(0329),
q(0),
],
q(oriya (individual language)) => [
- q(5308),
- q(0),
+ q(5303),
+ q(1),
],
q(oriya (macrolanguage)) => [
- q(0328),
+ q(0329),
q(1),
],
q(orizaba nahuatl) => [
- q(4957),
+ q(4950),
q(0),
],
q(orma) => [
- q(5295),
+ q(5290),
q(0),
],
q(ormu) => [
- q(5309),
+ q(5304),
q(0),
],
q(ormuri) => [
- q(5304),
+ q(5299),
q(0),
],
q(oro) => [
- q(5307),
+ q(5302),
q(0),
],
q(oro win) => [
- q(5306),
+ q(5301),
q(0),
],
q(oroch) => [
- q(5186),
+ q(5181),
q(0),
],
q(oroha) => [
- q(5294),
+ q(5289),
q(0),
],
q(orok) => [
- q(5185),
+ q(5180),
q(0),
],
q(orokaiva) => [
- q(5241),
+ q(5236),
q(0),
],
q(oroko) => [
- q(1109),
+ q(1110),
q(0),
],
q(orokolo) => [
- q(5300),
+ q(5295),
q(0),
],
q(oromo) => [
- q(0329),
+ q(0330),
q(0),
],
q(oroqen) => [
- q(5298),
+ q(5293),
q(0),
],
q(orowe) => [
@@ -46878,127 +46907,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(oruma) => [
- q(5301),
+ q(5296),
q(0),
],
q(orya) => [
- q(6946),
+ q(6931),
q(0),
],
q(osage) => [
- q(0330),
+ q(0331),
q(0),
],
q(osatu) => [
- q(5314),
+ q(5309),
q(0),
],
q(oscan) => [
- q(5310),
+ q(5305),
q(0),
],
q(osing) => [
- q(5311),
+ q(5306),
q(0),
],
q(ososo) => [
- q(5312),
+ q(5307),
q(0),
],
q(ossetian) => [
- q(0331),
+ q(0332),
q(0),
],
q(ossetic) => [
- q(0331),
+ q(0332),
q(1),
],
q(ot danum) => [
- q(5318),
+ q(5313),
q(0),
],
q(otank) => [
- q(6954),
+ q(6939),
q(0),
],
q(oti) => [
- q(5320),
+ q(5315),
q(0),
],
q(oto-manguean languages) => [
- q(0517),
+ q(0518),
q(0),
],
q(otomian languages) => [
- q(0333),
+ q(0334),
q(0),
],
q(otoro) => [
- q(5326),
+ q(5321),
q(0),
],
q(ottawa) => [
- q(5330),
+ q(5325),
q(0),
],
q(ottoman turkish (1500-1928)) => [
- q(0332),
+ q(0333),
q(1),
],
q(otuho) => [
- q(4031),
+ q(4022),
q(0),
],
q(otuke) => [
- q(5329),
+ q(5324),
q(0),
],
q(ouma) => [
- q(5338),
+ q(5333),
q(0),
],
q(oune) => [
- q(5336),
+ q(5331),
q(0),
],
+ q(ovdalian) => [
+ q(5334),
+ q(1),
+ ],
q(owa) => [
- q(6266),
+ q(6255),
q(0),
],
q(owenia) => [
- q(7236),
+ q(7223),
q(0),
],
q(owiniga) => [
- q(5339),
+ q(5335),
q(0),
],
q(oy) => [
- q(5341),
+ q(5337),
q(0),
],
q(oya'oya) => [
- q(5344),
+ q(5340),
q(0),
],
q(oyda) => [
- q(5342),
+ q(5338),
q(0),
],
q(ozolotepec zapotec) => [
- q(7818),
+ q(7803),
q(0),
],
q(ozumacin chinantec) => [
- q(1729),
+ q(1726),
q(0),
],
q(pa di) => [
- q(5399),
+ q(5395),
q(0),
],
q(pa'a) => [
- q(5585),
+ q(5579),
q(0),
],
q(pa'o) => [
@@ -47010,271 +47043,267 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pa-hng) => [
- q(5435),
+ q(5432),
q(0),
],
q(paafang) => [
- q(5423),
+ q(5419),
q(0),
],
q(paakantyi) => [
- q(2140),
+ q(2134),
q(0),
],
q(paama) => [
- q(5508),
+ q(5505),
q(0),
],
q(paasaal) => [
- q(6038),
+ q(6029),
q(0),
],
q(pacahuara) => [
- q(5395),
+ q(5391),
q(0),
],
q(pacaraos quechua) => [
- q(5710),
+ q(5701),
q(0),
],
q(pacific gulf yupik) => [
- q(2259),
+ q(2255),
q(0),
],
q(pacoh) => [
- q(5347),
+ q(5343),
q(0),
],
q(padoe) => [
- q(5401),
+ q(5397),
q(0),
],
q(paekche) => [
- q(5476),
+ q(5473),
q(0),
],
q(paelignian) => [
- q(5432),
+ q(5428),
q(0),
],
q(paez) => [
- q(5364),
+ q(5360),
q(0),
],
q(pagi) => [
- q(5429),
+ q(5425),
q(0),
],
q(pagibete) => [
- q(5349),
+ q(5345),
q(0),
],
q(pagu) => [
- q(5434),
+ q(5430),
q(0),
],
q(pahanan agta) => [
- q(0838),
+ q(0839),
q(0),
],
q(pahari-potwari) => [
- q(5444),
+ q(5441),
q(0),
],
q(pahi) => [
- q(3897),
+ q(3888),
q(0),
],
q(pahlavani) => [
- q(5447),
+ q(5444),
q(0),
],
q(pahlavi) => [
- q(0336),
+ q(0337),
q(0),
],
q(pai tavytera) => [
- q(5628),
+ q(5620),
q(0),
],
q(paici) => [
- q(5594),
+ q(5587),
q(0),
],
q(paipai) => [
- q(5574),
+ q(5568),
q(0),
],
q(paite chin) => [
- q(5391),
+ q(5387),
q(0),
],
q(paiwan) => [
- q(5666),
+ q(5657),
q(0),
],
q(pak-tong) => [
- q(5477),
+ q(5474),
q(0),
],
q(pakaasnovos) => [
- q(5359),
+ q(5355),
q(0),
],
q(pakanha) => [
- q(5479),
+ q(5476),
q(0),
],
q(pakistan sign language) => [
- q(5483),
+ q(5480),
q(0),
],
q(paku) => [
- q(5485),
+ q(5482),
q(0),
],
q(paku karen) => [
- q(3111),
+ q(3110),
q(0),
],
q(pal) => [
- q(0580),
+ q(0581),
q(0),
],
q(palaic) => [
- q(5499),
+ q(5496),
q(0),
],
q(palaka senoufo) => [
- q(5500),
+ q(5497),
q(0),
],
q(palantla chinantec) => [
- q(1831),
+ q(1827),
q(0),
],
q(palauan) => [
- q(0340),
+ q(0341),
q(0),
],
q(paleni) => [
- q(5539),
+ q(5535),
q(0),
],
q(palenquero) => [
- q(5496),
+ q(5493),
q(0),
],
q(pali) => [
- q(0345),
+ q(0346),
q(0),
],
q(palikur) => [
- q(5503),
+ q(5500),
q(0),
],
q(paliyan) => [
- q(5386),
+ q(5382),
q(0),
],
q(pallanganmiddang) => [
- q(5511),
+ q(5507),
q(0),
],
q(palor) => [
- q(2333),
+ q(2330),
q(0),
],
q(palpa) => [
- q(5498),
+ q(5495),
q(0),
],
q(palu'e) => [
- q(5490),
+ q(5487),
q(0),
],
q(paluan) => [
- q(5507),
+ q(5504),
q(0),
],
q(palula) => [
- q(5440),
+ q(5437),
q(1),
],
- q(palumata) => [
- q(5510),
- q(0),
- ],
q(palya bareli) => [
q(1395),
q(0),
],
q(pam) => [
- q(5520),
+ q(5516),
q(0),
],
q(pambia) => [
- q(5509),
+ q(5506),
q(0),
],
q(pamlico) => [
- q(5517),
+ q(5513),
q(0),
],
q(pamona) => [
- q(5513),
+ q(5509),
q(0),
],
q(pamosu) => [
- q(2758),
+ q(2755),
q(0),
],
q(pampanga) => [
- q(0337),
+ q(0338),
q(0),
],
q(pamplona atta) => [
- q(0926),
+ q(0927),
q(0),
],
q(pana (burkina faso)) => [
- q(5544),
+ q(5540),
q(0),
],
q(pana (central african republic)) => [
- q(5553),
+ q(5549),
q(0),
],
q(panamanian sign language) => [
- q(4065),
+ q(4056),
q(0),
],
q(panamint) => [
- q(5356),
+ q(5352),
q(0),
],
q(panao huanuco quechua) => [
- q(5723),
+ q(5714),
q(0),
],
q(panara) => [
- q(3577),
+ q(3573),
q(0),
],
q(panasuan) => [
- q(5618),
+ q(5610),
q(0),
],
q(panawa) => [
- q(5662),
+ q(5653),
q(0),
],
q(pancana) => [
- q(5543),
+ q(5539),
q(0),
],
q(panchpargania) => [
- q(6429),
+ q(6418),
q(0),
],
q(pande) => [
@@ -47282,1483 +47311,1475 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pangasinan) => [
- q(0335),
+ q(0336),
q(0),
],
q(pangseng) => [
- q(5433),
+ q(5429),
q(0),
],
q(pangutaran sama) => [
- q(6104),
+ q(6094),
q(0),
],
q(pangwa) => [
- q(5375),
+ q(5371),
q(0),
],
q(pangwali) => [
- q(5428),
+ q(5424),
q(0),
],
q(panim) => [
- q(5545),
+ q(5541),
q(0),
],
q(paniya) => [
- q(5387),
+ q(5383),
q(0),
],
q(panjabi) => [
- q(0338),
+ q(0339),
q(0),
],
q(pankarare) => [
- q(5361),
+ q(5357),
q(0),
],
q(pankararu) => [
- q(5363),
+ q(5359),
q(0),
],
q(pankhu) => [
- q(5478),
+ q(5475),
q(0),
],
q(pannei) => [
- q(5532),
+ q(5528),
q(0),
],
q(pano) => [
- q(4505),
+ q(4498),
q(0),
],
q(panoan katukina) => [
- q(3498),
+ q(3495),
q(0),
],
q(panobo) => [
- q(5542),
+ q(5538),
q(0),
],
q(panyi bai) => [
- q(1138),
+ q(1139),
q(0),
],
q(panytyima) => [
- q(5550),
- q(0),
- ],
- q(pao) => [
- q(5572),
+ q(5546),
q(0),
],
q(papantla totonac) => [
- q(6646),
+ q(6630),
q(0),
],
q(papapana) => [
- q(5578),
+ q(5572),
q(0),
],
q(papar) => [
- q(2133),
+ q(2127),
q(0),
],
q(papasena) => [
- q(5357),
+ q(5353),
q(0),
],
q(papel) => [
- q(5373),
+ q(5369),
q(0),
],
q(papi) => [
- q(5573),
+ q(5567),
q(0),
],
q(papiamento) => [
- q(0339),
+ q(0340),
q(0),
],
q(papitalai) => [
- q(5358),
+ q(5354),
q(0),
],
q(papora) => [
- q(5584),
+ q(5578),
+ q(0),
+ ],
+ q(papua new guinean sign language) => [
+ q(5431),
q(0),
],
q(papuan languages) => [
- q(0334),
+ q(0335),
q(0),
],
q(papuan malay) => [
- q(5528),
+ q(5524),
q(0),
],
q(papuma) => [
- q(5577),
+ q(5571),
q(0),
],
q(para arara) => [
- q(0551),
+ q(0552),
q(0),
],
q(para gaviao) => [
- q(2675),
+ q(2672),
q(0),
],
q(para naga) => [
- q(5678),
+ q(5669),
q(0),
],
q(parachi) => [
- q(5588),
+ q(5581),
q(0),
],
q(paraguayan guarani) => [
- q(2648),
+ q(2646),
q(0),
],
q(paraguayan sign language) => [
- q(5674),
+ q(5665),
q(0),
],
q(parakana) => [
- q(5353),
+ q(5349),
q(0),
],
q(paranan) => [
- q(5591),
+ q(5584),
q(0),
],
q(paranawat) => [
- q(5350),
+ q(5346),
q(0),
],
q(paraujano) => [
- q(5368),
+ q(5364),
q(0),
],
q(parauk) => [
- q(5595),
+ q(5588),
q(0),
],
q(parawen) => [
- q(5605),
+ q(5598),
q(0),
],
q(pardhan) => [
- q(5388),
+ q(5384),
q(0),
],
q(pardhi) => [
- q(5392),
+ q(5388),
q(0),
],
q(pare) => [
- q(5583),
+ q(5577),
q(0),
],
q(parecis) => [
- q(5346),
+ q(5342),
q(0),
],
q(parenga) => [
- q(5390),
+ q(5386),
q(0),
],
q(pari) => [
- q(3951),
+ q(3942),
q(0),
],
q(parkari koli) => [
- q(3690),
+ q(3683),
q(0),
],
q(parkwa) => [
- q(5370),
+ q(5366),
q(0),
],
q(parsi) => [
- q(5599),
+ q(5592),
q(0),
],
q(parsi-dari) => [
- q(5589),
+ q(5582),
q(0),
],
q(parthian) => [
- q(7469),
+ q(7454),
q(0),
],
q(parya) => [
- q(5355),
+ q(5351),
q(0),
],
q(pashto) => [
- q(0351),
+ q(0352),
q(1),
],
q(pasi) => [
- q(5621),
+ q(5613),
q(0),
],
q(pass valley yali) => [
- q(7577),
+ q(7562),
q(0),
],
q(patamona) => [
- q(5365),
+ q(5361),
q(0),
],
q(patani) => [
- q(5631),
+ q(5623),
q(0),
],
q(pataxo ha-ha-hae) => [
- q(5629),
+ q(5621),
q(0),
],
q(patep) => [
- q(5633),
+ q(5625),
q(0),
],
q(pathiya) => [
- q(5640),
+ q(5632),
q(0),
],
q(patpatar) => [
- q(2489),
+ q(2487),
q(0),
],
q(pattani) => [
- q(3796),
+ q(3787),
q(0),
],
q(pattani malay) => [
- q(4225),
+ q(4217),
q(0),
],
q(pattapu) => [
- q(5634),
+ q(5626),
q(0),
],
q(patwin) => [
- q(5664),
+ q(5655),
q(0),
],
q(paulohi) => [
- q(5492),
+ q(5489),
q(0),
],
q(paumari) => [
- q(5348),
+ q(5344),
q(0),
],
q(paunaka) => [
- q(5538),
+ q(5534),
q(0),
],
q(pauri bareli) => [
- q(1137),
+ q(1138),
q(0),
],
q(pauserna) => [
- q(5617),
+ q(5609),
q(0),
],
q(pawaia) => [
- q(5661),
+ q(5652),
q(0),
],
q(pawnee) => [
- q(5360),
+ q(5356),
q(0),
],
q(paynamar) => [
- q(5523),
+ q(5519),
q(0),
],
q(pe) => [
- q(5352),
+ q(5348),
q(0),
],
q(pear) => [
- q(5382),
+ q(5378),
q(0),
],
q(pech) => [
- q(5362),
+ q(5358),
q(0),
],
q(pecheneg) => [
- q(7458),
+ q(7443),
q(0),
],
q(pedi) => [
- q(0318),
+ q(0319),
q(0),
],
q(peere) => [
- q(5424),
+ q(5420),
q(0),
],
q(pei) => [
- q(5581),
+ q(5575),
q(0),
],
q(pekal) => [
- q(5414),
+ q(5410),
q(0),
],
q(pela) => [
- q(1570),
+ q(1569),
q(0),
],
q(pele-ata) => [
- q(0909),
+ q(0910),
q(0),
],
q(pelende) => [
- q(5580),
+ q(5574),
q(0),
],
q(pemon) => [
- q(0816),
+ q(0817),
q(0),
],
q(pemono) => [
- q(5419),
+ q(5415),
q(0),
],
q(penang sign language) => [
- q(5613),
+ q(5605),
q(0),
],
q(penchal) => [
- q(5413),
+ q(5409),
q(0),
],
q(pendau) => [
- q(6912),
+ q(6897),
q(0),
],
q(pengo) => [
- q(5409),
+ q(5405),
q(0),
],
q(pennsylvania german) => [
- q(5398),
+ q(5394),
q(0),
],
q(penoles mixtec) => [
- q(4309),
+ q(4301),
q(0),
],
q(penrhyn) => [
- q(5535),
+ q(5531),
q(0),
],
q(pentlatch) => [
- q(5639),
+ q(5631),
q(0),
],
q(perai) => [
- q(7112),
+ q(7098),
q(0),
],
q(peranakan indonesian) => [
- q(5404),
+ q(5400),
q(0),
],
q(peripheral mongolian) => [
- q(4605),
+ q(4598),
q(0),
],
q(pero) => [
- q(5463),
+ q(5460),
q(0),
],
q(persian) => [
- q(0342),
+ q(0343),
q(0),
],
q(persian sign language) => [
- q(5610),
+ q(5602),
q(0),
],
q(persian, old (ca.600-400 b.c.)) => [
- q(0341),
+ q(0342),
q(0),
],
q(peruvian sign language) => [
- q(5596),
+ q(5589),
q(0),
],
q(petapa zapotec) => [
- q(7918),
+ q(7903),
q(0),
],
q(petats) => [
- q(5420),
+ q(5416),
q(0),
],
q(petjo) => [
- q(5421),
+ q(5417),
q(0),
],
q(peve) => [
- q(3980),
+ q(3971),
q(0),
],
q(pfaelzisch) => [
- q(5425),
+ q(5421),
q(0),
],
q(phai) => [
- q(5603),
+ q(5596),
q(0),
],
q(phake) => [
- q(5439),
+ q(5436),
q(0),
],
q(phala) => [
- q(7727),
+ q(7712),
q(0),
],
q(phalura) => [
- q(5440),
+ q(5437),
q(0),
],
q(phana') => [
- q(5443),
+ q(5440),
q(0),
],
q(phangduwali) => [
- q(5448),
+ q(5445),
q(0),
],
q(phende) => [
- q(5415),
+ q(5411),
q(0),
],
q(philippine languages) => [
- q(0343),
+ q(0344),
q(0),
],
q(philippine sign language) => [
- q(5620),
+ q(5612),
q(0),
],
q(phimbi) => [
- q(5441),
+ q(5438),
q(0),
],
q(phoenician) => [
- q(0344),
+ q(0345),
q(0),
],
q(phola) => [
- q(7729),
+ q(7714),
q(0),
],
q(pholo) => [
- q(7655),
+ q(7640),
q(0),
],
q(phom naga) => [
- q(5035),
+ q(5028),
q(0),
],
q(phong-kniang) => [
- q(5551),
+ q(5547),
q(0),
],
q(phrae pwo karen) => [
- q(3397),
+ q(3394),
q(0),
],
q(phrygian) => [
- q(7460),
+ q(7445),
q(0),
],
q(phu thai) => [
- q(5445),
+ q(5442),
q(0),
],
q(phuan) => [
- q(5446),
+ q(5443),
q(0),
],
q(phudagi) => [
- q(5436),
+ q(5433),
q(0),
],
q(phuie) => [
- q(5647),
+ q(5639),
q(0),
],
q(phukha) => [
- q(5438),
+ q(5435),
q(0),
],
q(phuma) => [
- q(7731),
+ q(7716),
q(0),
],
q(phunoi) => [
- q(5442),
+ q(5439),
q(0),
],
q(phuong) => [
- q(5437),
+ q(5434),
q(0),
],
q(phupa) => [
- q(7734),
+ q(7719),
q(0),
],
q(phupha) => [
- q(7730),
+ q(7715),
q(0),
],
q(phuza) => [
- q(7735),
+ q(7720),
q(0),
],
q(piamatsina) => [
- q(5635),
+ q(5627),
q(0),
],
q(piame) => [
- q(5461),
+ q(5458),
q(0),
],
q(piapoco) => [
- q(5462),
+ q(5459),
q(0),
],
q(piaroa) => [
- q(5452),
+ q(5449),
q(0),
],
q(picard) => [
- q(5384),
+ q(5380),
q(0),
],
q(pichis asheninka) => [
- q(1839),
+ q(1835),
q(0),
],
q(pictish) => [
- q(7461),
+ q(7446),
q(0),
],
q(pidgin delaware) => [
- q(1998),
+ q(1992),
q(0),
],
q(piemontese) => [
- q(5524),
+ q(5520),
q(0),
],
q(pijao) => [
- q(5458),
+ q(5455),
q(0),
],
q(pije) => [
- q(5472),
+ q(5469),
q(0),
],
q(pijin) => [
- q(5465),
+ q(5462),
q(0),
],
q(pilaga) => [
- q(5491),
+ q(5488),
q(0),
],
q(pileni) => [
- q(5468),
+ q(5465),
q(0),
],
q(pilipino) => [
- q(0133),
+ q(0134),
q(1),
],
q(pima bajo) => [
- q(5449),
+ q(5446),
q(0),
],
q(pimbwe) => [
- q(5469),
+ q(5466),
q(0),
],
q(pinai-hagahai) => [
- q(5541),
+ q(5537),
q(0),
],
q(pingelapese) => [
- q(5454),
+ q(5451),
q(0),
],
q(pini) => [
- q(5457),
+ q(5454),
q(0),
],
q(pinigura) => [
- q(5549),
+ q(5545),
q(0),
],
q(pinjarup) => [
- q(5537),
+ q(5533),
q(0),
],
q(pinji) => [
- q(5451),
+ q(5448),
q(0),
],
q(pinotepa nacional mixtec) => [
- q(4311),
+ q(4303),
q(0),
],
q(pintiini) => [
- q(5630),
+ q(5622),
q(0),
],
q(pintupi-luritja) => [
- q(5467),
+ q(5464),
q(0),
],
q(pinyin) => [
- q(5552),
+ q(5548),
q(0),
],
q(pipil) => [
- q(5576),
+ q(5570),
q(0),
],
q(piraha) => [
- q(4686),
+ q(4679),
q(0),
],
q(piratapuyo) => [
- q(5464),
+ q(5461),
q(0),
],
q(pirlatapa) => [
- q(1575),
+ q(1574),
q(0),
],
q(piro) => [
- q(5453),
+ q(5450),
q(0),
],
q(pirriya) => [
- q(7457),
+ q(7442),
q(0),
],
q(pisabo) => [
- q(5455),
+ q(5452),
q(0),
],
q(pisaflores tepehua) => [
- q(6667),
+ q(6651),
q(0),
],
q(piscataway) => [
- q(5627),
+ q(5619),
q(0),
],
q(pisidian) => [
- q(7470),
+ q(7455),
q(0),
],
q(pitcairn-norfolk) => [
- q(5456),
+ q(5453),
q(0),
],
q(pite sami) => [
- q(6058),
+ q(6049),
q(0),
],
q(piti) => [
- q(5394),
+ q(5390),
q(0),
],
q(pitjantjatjara) => [
- q(5473),
+ q(5470),
q(0),
],
q(pitta pitta) => [
- q(5466),
+ q(5463),
q(0),
],
q(piu) => [
- q(5470),
+ q(5467),
q(0),
],
q(piya-kwonci) => [
- q(5471),
+ q(5468),
q(0),
],
q(plains cree) => [
- q(1852),
+ q(1847),
q(0),
],
q(plains indian sign language) => [
- q(5611),
+ q(5603),
q(0),
],
q(plains miwok) => [
- q(5526),
+ q(5522),
q(0),
],
q(plapo krumen) => [
- q(3629),
+ q(3624),
q(0),
],
q(plateau malagasy) => [
- q(5502),
+ q(5499),
q(0),
],
q(plautdietsch) => [
- q(5402),
+ q(5398),
q(0),
],
q(playero) => [
- q(2586),
+ q(2584),
q(0),
],
q(pnar) => [
- q(5379),
+ q(5375),
q(0),
],
q(pochuri naga) => [
- q(5039),
+ q(5032),
q(0),
],
q(pochutec) => [
- q(7466),
+ q(7451),
q(0),
],
q(podena) => [
- q(5400),
+ q(5396),
q(0),
],
q(pogolo) => [
- q(5571),
+ q(5566),
q(0),
],
q(pohnpeian) => [
- q(0347),
+ q(0348),
q(0),
],
q(pokanga) => [
- q(5561),
+ q(5556),
q(0),
],
q(poke) => [
- q(5557),
+ q(5552),
q(0),
],
q(pokomo) => [
- q(5475),
+ q(5472),
q(0),
],
q(pokoot) => [
- q(5480),
+ q(5477),
q(0),
],
q(polabian) => [
- q(5570),
+ q(5565),
q(0),
],
q(polari) => [
- q(5489),
+ q(5486),
q(0),
],
q(polci) => [
- q(5493),
+ q(5490),
q(0),
],
q(polish) => [
- q(0346),
+ q(0347),
q(0),
],
q(polish sign language) => [
- q(5619),
+ q(5611),
q(0),
],
q(polonombauk) => [
- q(5487),
+ q(5484),
q(0),
],
q(pom) => [
- q(5521),
+ q(5517),
q(0),
],
q(pomo) => [
- q(5519),
+ q(5515),
q(0),
],
q(ponam) => [
- q(4764),
- q(0),
- ],
- q(ponares) => [
- q(5555),
+ q(4756),
q(0),
],
q(pongu) => [
- q(5534),
+ q(5530),
q(0),
],
q(ponosakan) => [
- q(5546),
+ q(5542),
q(0),
],
q(pontic) => [
- q(5547),
+ q(5543),
q(0),
],
q(ponyo-gongwang naga) => [
- q(5034),
+ q(5027),
q(0),
],
q(popti') => [
- q(3042),
+ q(3041),
q(0),
],
q(poqomam) => [
- q(5554),
+ q(5550),
q(0),
],
q(poqomchi') => [
- q(5559),
+ q(5554),
q(0),
],
q(porohanon) => [
- q(5593),
+ q(5586),
q(0),
],
q(port sandwich) => [
- q(5626),
+ q(5618),
q(0),
],
q(port vato) => [
- q(5638),
+ q(5630),
q(0),
],
q(portuguese) => [
- q(0348),
+ q(0349),
q(0),
],
q(portuguese sign language) => [
- q(5622),
+ q(5614),
q(0),
],
q(portuguese-based creoles and pidgins) => [
- q(0095),
+ q(0096),
q(2),
],
q(potawatomi) => [
- q(5567),
+ q(5562),
q(0),
],
q(potiguara) => [
- q(5558),
+ q(5553),
q(0),
],
q(pottangi ollar gadaba) => [
- q(2453),
+ q(2451),
q(0),
],
q(poule) => [
- q(4541),
+ q(4534),
q(1),
],
q(poumei naga) => [
- q(5527),
+ q(5523),
q(0),
],
q(pouye) => [
- q(1594),
+ q(1593),
q(0),
],
q(powari) => [
- q(5668),
+ q(5659),
q(0),
],
q(powhatan) => [
- q(5460),
+ q(5457),
q(0),
],
q(poyanawa) => [
- q(5673),
+ q(5664),
q(0),
],
q(prakrit languages) => [
- q(0349),
+ q(0350),
q(0),
],
q(prasuni) => [
- q(5598),
- q(0),
- ],
- q(pray 3) => [
- q(5607),
+ q(5591),
q(0),
],
q(primitive irish) => [
- q(5431),
+ q(5427),
q(0),
],
q(principense) => [
- q(5590),
+ q(5583),
q(0),
],
q(provencal) => [
- q(0326),
+ q(0327),
q(1),
],
q(provencal, old (to 1500)) => [
- q(0350),
+ q(0351),
q(0),
],
q(providencia sign language) => [
- q(5608),
+ q(5600),
q(0),
],
q(prussian) => [
- q(5592),
+ q(5585),
q(0),
],
q(psikye) => [
- q(3676),
- q(0),
- ],
- q(pu ko) => [
- q(5650),
+ q(3670),
q(0),
],
q(pu-xian chinese) => [
- q(1840),
+ q(1836),
q(0),
],
q(puare) => [
- q(5659),
+ q(5650),
q(0),
],
q(pudtol atta) => [
- q(0922),
+ q(0923),
q(0),
],
q(puelche) => [
- q(5645),
+ q(5637),
q(0),
],
q(puerto rican sign language) => [
- q(5616),
+ q(5608),
q(0),
],
q(puimei naga) => [
- q(5041),
+ q(5034),
q(0),
],
q(puinave) => [
- q(5648),
+ q(5640),
q(0),
],
q(pukapuka) => [
- q(5481),
+ q(5478),
q(0),
],
q(pulaar) => [
- q(2381),
+ q(2379),
q(0),
],
q(pulabu) => [
- q(5653),
+ q(5644),
q(0),
],
q(pular) => [
- q(2384),
+ q(2382),
q(0),
],
q(puluwatese) => [
- q(5658),
+ q(5649),
q(0),
],
q(puma) => [
- q(5651),
+ q(5642),
q(0),
],
q(pume) => [
- q(7579),
+ q(7564),
q(0),
],
q(pumpokol) => [
- q(7464),
+ q(7449),
q(0),
],
q(punan aput) => [
- q(5644),
+ q(5636),
q(0),
],
q(punan bah-biau) => [
- q(5530),
+ q(5526),
q(0),
],
q(punan batu 1) => [
- q(5540),
+ q(5536),
q(0),
],
q(punan merah) => [
- q(5646),
+ q(5638),
q(0),
],
q(punan merap) => [
- q(5643),
+ q(5635),
q(0),
],
q(punan tubu) => [
- q(5649),
+ q(5641),
q(0),
],
q(punic) => [
- q(7472),
+ q(7457),
q(0),
],
q(punjabi) => [
- q(0338),
+ q(0339),
q(1),
],
q(puno quechua) => [
- q(5727),
+ q(5718),
q(0),
],
q(punthamara) => [
- q(7471),
+ q(7456),
q(0),
],
q(punu) => [
- q(5657),
+ q(5648),
q(0),
],
q(puoc) => [
- q(5652),
+ q(5643),
q(0),
],
q(puquina) => [
- q(5654),
+ q(5645),
q(0),
],
q(puragi) => [
- q(5604),
+ q(5597),
q(0),
],
q(purari) => [
- q(2887),
+ q(2883),
q(0),
],
q(purepecha) => [
- q(6734),
+ q(6718),
q(0),
],
q(puri) => [
- q(5601),
+ q(5594),
q(0),
],
q(purik) => [
- q(5606),
+ q(5599),
q(0),
],
q(purisimeno) => [
- q(5660),
+ q(5651),
q(0),
],
q(puroik) => [
- q(6287),
+ q(6276),
q(0),
],
q(purubora) => [
- q(5655),
+ q(5646),
q(0),
],
q(purum) => [
- q(5642),
+ q(5634),
q(0),
],
q(pushto) => [
- q(0351),
+ q(0352),
q(0),
],
q(putai) => [
- q(4236),
+ q(4228),
q(0),
],
q(putoh) => [
- q(5656),
+ q(5647),
q(0),
],
q(putukwam) => [
- q(0641),
+ q(0642),
q(0),
],
q(puyo) => [
- q(7473),
+ q(7458),
q(0),
],
q(puyo-paekche) => [
- q(7467),
+ q(7452),
q(0),
],
q(puyuma) => [
- q(5675),
+ q(5666),
q(0),
],
q(pwaamei) => [
- q(5512),
+ q(5508),
q(0),
],
q(pwapwa) => [
- q(5564),
+ q(5559),
q(0),
],
q(pwo eastern karen) => [
- q(3393),
+ q(3390),
q(0),
],
q(pwo northern karen) => [
- q(5669),
+ q(5660),
q(0),
],
q(pwo western karen) => [
- q(5667),
+ q(5658),
q(0),
],
q(pyapun) => [
- q(5396),
+ q(5392),
q(0),
],
q(pye krumen) => [
- q(5671),
+ q(5662),
q(0),
],
q(pyen) => [
- q(5677),
+ q(5668),
q(0),
],
q(pyu (myanmar)) => [
- q(5676),
+ q(5667),
q(0),
],
q(pyu (papua new guinea)) => [
- q(5380),
+ q(5376),
q(0),
],
q(q'anjob'al) => [
- q(3379),
+ q(3376),
q(0),
],
q(qabiao) => [
- q(3805),
+ q(3796),
q(0),
],
q(qaqet) => [
- q(1611),
+ q(1610),
q(0),
],
q(qashqa'i) => [
- q(5728),
+ q(5719),
q(0),
],
q(qatabanian) => [
- q(7475),
+ q(7460),
q(0),
],
q(qau) => [
- q(2613),
+ q(2611),
q(0),
],
q(qawasqar) => [
- q(0746),
+ q(0747),
q(0),
],
q(qila muji) => [
- q(7701),
+ q(7686),
q(0),
],
q(qimant) => [
- q(0679),
+ q(0680),
q(0),
],
q(qiubei zhuang) => [
- q(7940),
+ q(7925),
q(0),
],
q(quapaw) => [
- q(5679),
+ q(5670),
q(0),
],
q(quebec sign language) => [
- q(2340),
+ q(2337),
q(0),
],
q(quechan) => [
- q(7773),
+ q(7758),
q(0),
],
q(quechua) => [
- q(0353),
+ q(0354),
q(0),
],
q(quechuan (family)) => [
- q(0523),
+ q(0524),
q(0),
],
q(quenya) => [
- q(5734),
+ q(5725),
q(0),
],
q(queretaro otomi) => [
- q(5325),
+ q(5320),
q(0),
],
q(quetzaltepec mixe) => [
- q(5670),
+ q(5661),
q(0),
],
q(queyu) => [
- q(5713),
+ q(5704),
q(0),
],
q(quiavicuzas zapotec) => [
- q(7923),
+ q(7908),
q(0),
],
q(quiche) => [
- q(5681),
+ q(5672),
q(1),
],
q(quileute) => [
- q(5686),
+ q(5677),
q(0),
],
q(quinault) => [
- q(5690),
+ q(5681),
q(0),
],
q(quinqui) => [
- q(5692),
+ q(5683),
q(0),
],
q(quioquitani-quieri zapotec) => [
- q(7959),
+ q(7944),
q(0),
],
q(quiotepec chinantec) => [
- q(1725),
+ q(1722),
q(0),
],
q(quiripi) => [
- q(5735),
+ q(5726),
q(0),
],
q(rabha) => [
- q(5742),
+ q(5733),
q(0),
],
q(rade) => [
- q(5739),
+ q(5730),
q(0),
],
q(raetic) => [
- q(7485),
+ q(7470),
q(0),
],
q(rahambuu) => [
- q(5757),
+ q(5748),
q(0),
],
q(rajah kabunsuwan manobo) => [
- q(4490),
+ q(4483),
q(0),
],
q(rajasthani) => [
- q(0354),
+ q(0355),
q(0),
],
q(rajbanshi) => [
- q(5797),
+ q(5787),
q(0),
],
q(raji) => [
- q(5796),
+ q(5786),
q(0),
],
q(rajong) => [
- q(5795),
+ q(5785),
q(0),
],
q(rajput garasia) => [
- q(2614),
+ q(2612),
q(0),
],
q(rakahanga-manihiki) => [
- q(5800),
+ q(5790),
q(0),
],
q(rakhine) => [
- q(5801),
+ q(5791),
q(0),
],
q(ralte) => [
- q(5745),
+ q(5736),
q(0),
],
q(rama) => [
- q(5805),
+ q(5795),
q(0),
],
q(ramoaaina) => [
- q(5743),
+ q(5734),
q(0),
],
q(ramopa) => [
- q(3400),
+ q(3397),
q(0),
],
q(rampi) => [
- q(3933),
+ q(3924),
q(0),
],
q(rana tharu) => [
- q(6509),
+ q(6497),
q(0),
],
q(rang) => [
- q(5755),
+ q(5746),
q(0),
],
q(rangkas) => [
- q(5779),
+ q(5770),
q(0),
],
q(ranglong) => [
- q(5832),
+ q(5821),
q(0),
],
q(rangpuri) => [
- q(5803),
+ q(5793),
q(0),
],
q(rao) => [
- q(5748),
+ q(5739),
q(0),
],
q(rapa) => [
- q(5756),
+ q(5747),
q(0),
],
q(rapanui) => [
- q(0355),
+ q(0356),
q(0),
],
q(rapoisi) => [
- q(3765),
+ q(3758),
q(0),
],
q(rapting) => [
- q(5850),
+ q(5839),
q(0),
],
q(rara bakati') => [
- q(4042),
+ q(4033),
q(0),
],
q(rarotongan) => [
- q(0356),
+ q(0357),
q(0),
],
q(rasawa) => [
- q(5738),
+ q(5729),
q(0),
],
q(ratagnon) => [
- q(1482),
+ q(1481),
q(0),
],
q(ratahan) => [
- q(5858),
+ q(5847),
q(0),
],
q(rathawi) => [
- q(5861),
+ q(5850),
q(0),
],
q(rathwi bareli) => [
- q(1164),
+ q(1165),
q(0),
],
q(raute) => [
- q(5752),
+ q(5743),
q(0),
],
q(ravula) => [
- q(7621),
+ q(7606),
q(0),
],
q(rawa) => [
- q(5879),
+ q(5868),
q(0),
],
q(rawang) => [
- q(5754),
+ q(5745),
q(0),
],
q(rawat) => [
- q(3132),
+ q(3131),
q(0),
],
q(rawngtu chin) => [
- q(7113),
+ q(7099),
q(0),
],
q(rawo) => [
- q(5876),
+ q(5865),
q(0),
],
q(rayon zoque) => [
- q(7912),
+ q(7897),
q(0),
],
q(razajerdi) => [
- q(5751),
+ q(5742),
+ q(0),
+ ],
+ q(razihi) => [
+ q(5875),
q(0),
],
q(red gelao) => [
- q(2524),
+ q(2521),
q(0),
],
q(reel) => [
- q(0927),
+ q(0928),
q(0),
],
q(rejang) => [
- q(5769),
+ q(5760),
q(0),
],
q(rejang kayan) => [
- q(5766),
+ q(5757),
q(0),
],
q(reli) => [
- q(5768),
+ q(5759),
q(0),
],
q(rema) => [
@@ -48766,379 +48787,367 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rembarunga) => [
- q(5806),
+ q(5796),
q(0),
],
q(rembong) => [
- q(5765),
+ q(5756),
q(0),
],
q(remo) => [
- q(5771),
+ q(5762),
q(0),
],
q(remontado dumagat) => [
- q(0672),
+ q(0673),
q(0),
],
q(rempi) => [
- q(5819),
+ q(5809),
q(0),
],
q(remun) => [
- q(3946),
+ q(3937),
q(0),
],
q(rendille) => [
- q(5770),
+ q(5761),
q(0),
],
q(rengao) => [
- q(5772),
+ q(5763),
q(0),
],
q(rennell-bellona) => [
- q(4432),
- q(0),
- ],
- q(rennellese sign language) => [
- q(5855),
+ q(4425),
q(0),
],
q(repanbitip) => [
- q(5849),
+ q(5838),
q(0),
],
q(rer bare) => [
- q(5773),
+ q(5764),
q(0),
],
q(rerau) => [
- q(5764),
+ q(5755),
q(0),
],
q(rerep) => [
- q(5430),
+ q(5426),
q(0),
],
q(reserved for local use) => [
- q(0352),
+ q(0353),
q(0),
],
q(reshe) => [
- q(5774),
+ q(5765),
q(0),
],
q(resigaro) => [
- q(5781),
+ q(5772),
q(0),
],
q(retta) => [
- q(5775),
+ q(5766),
q(0),
],
q(reunion creole french) => [
- q(5762),
+ q(5753),
q(0),
],
q(reyesano) => [
- q(5776),
+ q(5767),
q(0),
],
q(riang (india)) => [
- q(5786),
+ q(5777),
q(0),
],
q(riang (myanmar)) => [
- q(5789),
+ q(5779),
q(0),
],
q(riantana) => [
- q(5747),
+ q(5738),
q(0),
],
q(ribun) => [
- q(5792),
- q(0),
- ],
- q(rien) => [
- q(5787),
+ q(5782),
q(0),
],
q(rifao) => [
- q(4984),
+ q(4977),
q(1),
],
q(rikbaktsa) => [
- q(5799),
+ q(5789),
q(0),
],
q(rincon zapotec) => [
- q(7820),
+ q(7805),
q(0),
],
q(rinconada bikol) => [
- q(1483),
+ q(1482),
q(0),
],
q(ringgou) => [
- q(5783),
+ q(5774),
q(0),
],
q(ririo) => [
- q(5851),
+ q(5840),
q(0),
],
q(ritarungo) => [
- q(5793),
+ q(5783),
q(0),
],
q(riung) => [
- q(5794),
+ q(5784),
q(0),
],
q(riverain sango) => [
- q(6142),
+ q(6131),
q(0),
],
q(rogo) => [
- q(5839),
+ q(5828),
q(0),
],
q(rohingya) => [
- q(5784),
+ q(5775),
q(0),
],
q(roma) => [
- q(5816),
+ q(5806),
q(0),
],
q(romagnol) => [
- q(5780),
+ q(5771),
q(0),
],
q(romam) => [
- q(5826),
+ q(5816),
q(0),
],
q(romance languages) => [
- q(0357),
+ q(0358),
q(0),
],
q(romanian) => [
- q(0360),
+ q(0361),
q(0),
],
q(romanian sign language) => [
- q(5821),
+ q(5811),
q(0),
],
q(romano-greek) => [
- q(5778),
+ q(5769),
q(0),
],
q(romano-serbian) => [
- q(5854),
+ q(5843),
q(0),
],
q(romanova) => [
- q(5824),
+ q(5814),
q(0),
],
q(romansh) => [
- q(0358),
+ q(0359),
q(0),
],
q(romany) => [
- q(0359),
+ q(0360),
q(0),
],
q(romblomanon) => [
- q(5843),
+ q(5832),
q(0),
],
q(rombo) => [
- q(5841),
+ q(5830),
q(0),
],
q(romkun) => [
- q(5814),
+ q(5804),
q(0),
],
q(ron) => [
- q(1769),
+ q(1766),
q(0),
],
q(ronga) => [
- q(5831),
+ q(5820),
q(0),
],
q(rongga) => [
- q(5846),
+ q(5835),
q(0),
],
q(rongmei naga) => [
- q(4758),
+ q(4750),
q(0),
],
q(rongpo) => [
- q(5834),
+ q(5823),
q(0),
],
q(ronji) => [
- q(5840),
+ q(5829),
q(0),
],
q(roon) => [
- q(5833),
+ q(5822),
q(0),
],
q(roria) => [
- q(5777),
+ q(5768),
q(0),
],
q(rotokas) => [
- q(5844),
+ q(5833),
q(0),
],
q(rotuman) => [
- q(5859),
+ q(5848),
q(0),
],
q(roviana) => [
- q(5866),
+ q(5855),
q(0),
],
q(ruching palaung) => [
- q(5385),
+ q(5381),
q(0),
],
q(rudbari) => [
- q(5763),
+ q(5754),
q(0),
],
q(rufiji) => [
- q(5868),
+ q(5857),
q(0),
],
q(ruga) => [
- q(5867),
+ q(5856),
q(0),
],
q(rukai) => [
- q(2147),
+ q(2141),
q(0),
],
q(ruma) => [
- q(5875),
+ q(5864),
q(0),
],
q(rumai palaung) => [
- q(5758),
+ q(5749),
q(0),
],
q(rumu) => [
- q(3445),
- q(0),
- ],
- q(runa) => [
- q(5829),
+ q(3442),
q(0),
],
q(rundi) => [
- q(0361),
+ q(0362),
q(0),
],
q(runga) => [
- q(5847),
+ q(5836),
q(0),
],
q(rungtu chin) => [
- q(5857),
+ q(5846),
q(0),
],
q(rungus) => [
- q(2138),
+ q(2132),
q(0),
],
q(rungwa) => [
- q(5836),
+ q(5825),
q(0),
],
q(russia buriat) => [
- q(1584),
+ q(1583),
q(0),
],
q(russian) => [
- q(0363),
+ q(0364),
q(0),
],
q(russian sign language) => [
- q(5856),
+ q(5844),
q(0),
],
q(rusyn) => [
- q(5864),
+ q(5853),
q(0),
],
q(rutul) => [
- q(5872),
+ q(5861),
q(0),
],
q(ruuli) => [
- q(5863),
+ q(5852),
q(0),
],
q(ruund) => [
- q(5830),
+ q(5819),
q(0),
],
q(rwa) => [
- q(5877),
+ q(5866),
q(0),
],
q(s'gaw karen) => [
- q(3616),
+ q(3611),
q(0),
],
q(sa) => [
- q(5899),
+ q(5889),
q(0),
],
q(sa'a) => [
- q(0834),
+ q(0835),
q(0),
],
q(sa'ban) => [
- q(6152),
+ q(6141),
q(0),
],
q(sa'och) => [
- q(5937),
+ q(5927),
q(0),
],
q(saafi-saafi) => [
- q(5897),
+ q(5887),
q(0),
],
q(saam) => [
- q(5749),
+ q(5740),
q(0),
],
q(saamia) => [
- q(4063),
+ q(4054),
q(0),
],
q(saaroa) => [
- q(6331),
+ q(6319),
q(0),
],
q(saba) => [
- q(5886),
+ q(5876),
q(0),
],
q(sabaean) => [
- q(7489),
+ q(7474),
q(0),
],
q(sabah bisaya) => [
@@ -49146,591 +49155,591 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sabah malay) => [
- q(4538),
+ q(4531),
q(0),
],
q(sabane) => [
- q(5889),
+ q(5879),
q(0),
],
q(sabaot) => [
- q(6197),
+ q(6186),
q(0),
],
q(sabine) => [
- q(5923),
+ q(5913),
q(0),
],
q(sabu) => [
- q(2878),
+ q(2875),
q(0),
],
q(sabum) => [
- q(5916),
+ q(5906),
q(0),
],
q(sacapulteco) => [
- q(5695),
+ q(5686),
q(0),
],
q(sadri) => [
- q(5934),
+ q(5924),
q(0),
],
q(saek) => [
- q(6072),
+ q(6063),
q(0),
],
q(saep) => [
- q(6180),
+ q(6169),
q(0),
],
q(safaliba) => [
- q(5890),
+ q(5880),
q(0),
],
q(safeyoka) => [
- q(0858),
+ q(0859),
q(0),
],
q(safwa) => [
- q(5912),
+ q(5902),
q(0),
],
q(sagala) => [
- q(5914),
+ q(5904),
q(0),
],
q(sagalla) => [
- q(6475),
+ q(6464),
q(0),
],
q(saho) => [
- q(6252),
+ q(6241),
q(0),
],
q(sahu) => [
- q(5891),
+ q(5881),
q(0),
],
q(saidi arabic) => [
- q(0625),
+ q(0626),
q(0),
],
q(saint lucian creole french) => [
- q(0587),
+ q(0588),
q(0),
],
q(saisiyat) => [
- q(7506),
+ q(7491),
q(0),
],
q(sajalong) => [
- q(6061),
+ q(6052),
q(0),
],
q(sajau basap) => [
- q(6056),
+ q(6047),
q(0),
],
q(sakachep) => [
- q(5932),
+ q(5922),
q(0),
],
q(sakalava malagasy) => [
- q(6077),
+ q(6068),
q(0),
],
q(sakan) => [
- q(0223),
+ q(0224),
q(1),
],
q(sakao) => [
- q(6090),
+ q(6080),
q(0),
],
q(sakata) => [
- q(6089),
+ q(6079),
q(0),
],
q(sake) => [
- q(5892),
+ q(5882),
q(0),
],
q(sakirabia) => [
- q(6076),
+ q(6067),
q(0),
],
q(sala) => [
- q(6024),
+ q(6015),
q(0),
],
q(salako) => [
- q(3502),
+ q(3499),
q(1),
],
q(salampasu) => [
- q(6113),
+ q(6103),
q(0),
],
q(salar) => [
- q(6108),
+ q(6098),
q(0),
],
q(salas) => [
- q(6005),
+ q(5996),
q(0),
],
q(salasaca highland quichua) => [
- q(5724),
+ q(5715),
q(0),
],
q(salchuq) => [
- q(6107),
+ q(6097),
q(0),
],
q(saleman) => [
- q(5896),
+ q(5886),
q(0),
],
q(saliba) => [
- q(5906),
+ q(5896),
q(0),
],
q(salinan) => [
- q(6105),
+ q(6095),
q(0),
],
q(salishan languages) => [
- q(0368),
+ q(0369),
q(0),
],
q(sallands) => [
- q(5962),
+ q(5953),
q(0),
],
q(salt-yui) => [
- q(6103),
+ q(6093),
q(0),
],
q(saluan) => [
- q(4017),
+ q(4008),
q(0),
],
q(saluma) => [
- q(6102),
+ q(6092),
q(0),
],
q(salvadoran sign language) => [
- q(2297),
+ q(2294),
q(0),
],
q(sam) => [
- q(6154),
+ q(6143),
q(0),
],
q(sama) => [
- q(6118),
+ q(6108),
q(0),
],
q(samaritan) => [
- q(6125),
+ q(6115),
q(0),
],
q(samaritan aramaic) => [
- q(0369),
+ q(0370),
q(0),
],
q(samarokena) => [
- q(6595),
+ q(6582),
q(0),
],
q(samatao) => [
- q(7748),
+ q(7733),
q(0),
],
q(samay) => [
- q(6345),
+ q(6333),
q(0),
],
q(samba) => [
- q(6132),
+ q(6122),
q(0),
],
q(samba daka) => [
- q(1684),
+ q(1681),
q(0),
],
q(samba leko) => [
- q(4791),
+ q(4784),
q(0),
],
q(sambal) => [
- q(7490),
+ q(7475),
q(0),
],
q(sambalpuri) => [
- q(6195),
+ q(6184),
q(0),
],
q(sambe) => [
- q(7273),
+ q(7260),
q(0),
],
q(samberigi) => [
- q(6251),
+ q(6240),
q(0),
],
q(samburu) => [
- q(5894),
+ q(5884),
q(0),
],
q(samei) => [
- q(6121),
+ q(6111),
q(0),
],
q(sami languages) => [
- q(0389),
+ q(0390),
q(0),
],
q(samo) => [
- q(6126),
+ q(6116),
q(0),
],
q(samoan) => [
- q(0392),
+ q(0393),
q(0),
],
q(samogitian) => [
- q(6003),
+ q(5994),
q(0),
],
q(samosa) => [
- q(6309),
+ q(6297),
q(0),
],
q(samoyedic languages) => [
- q(0526),
+ q(0527),
q(0),
],
q(sampang) => [
- q(5753),
+ q(5744),
q(0),
],
q(samre) => [
- q(6328),
+ q(6316),
q(0),
],
q(samtao) => [
- q(6273),
+ q(6262),
q(0),
],
q(samvedi) => [
- q(6130),
+ q(6120),
q(0),
],
q(san agustin mixtepec zapotec) => [
- q(7956),
+ q(7941),
q(0),
],
q(san baltazar loxicha zapotec) => [
- q(7937),
+ q(7922),
q(0),
],
q(san blas kuna) => [
- q(1910),
+ q(1905),
q(0),
],
q(san dionisio del mar huave) => [
- q(2876),
+ q(2873),
q(0),
],
q(san felipe otlaltepec popoloca) => [
- q(5569),
+ q(5564),
q(0),
],
q(san francisco del mar huave) => [
- q(2855),
+ q(2852),
q(0),
],
q(san francisco matlatzinca) => [
- q(4122),
+ q(4114),
q(0),
],
q(san jeronimo tecoatl mazatec) => [
- q(4115),
+ q(4107),
q(0),
],
q(san juan atzingo popoloca) => [
- q(5556),
+ q(5551),
q(0),
],
q(san juan colorado mixtec) => [
- q(4321),
+ q(4314),
q(0),
],
q(san juan guelavia zapotec) => [
- q(7806),
- q(0),
+ q(7791),
+ q(1),
],
q(san juan teita mixtec) => [
- q(7515),
+ q(7500),
q(0),
],
q(san luis temalacayuca popoloca) => [
- q(5582),
+ q(5576),
q(0),
],
q(san marcos tlacoyalco popoloca) => [
- q(5501),
+ q(5498),
q(0),
],
q(san marcos tlalcoyalco popoloca) => [
- q(5501),
+ q(5498),
q(1),
],
q(san martin itunyoso triqui) => [
- q(6703),
+ q(6687),
q(0),
],
q(san martin quechua) => [
- q(5711),
+ q(5702),
q(0),
],
q(san mateo del mar huave) => [
- q(2870),
+ q(2867),
q(0),
],
q(san miguel creole french) => [
- q(5930),
+ q(5920),
q(0),
],
q(san miguel el grande mixtec) => [
- q(4304),
+ q(4296),
q(0),
],
q(san miguel piedras mixtec) => [
- q(7520),
+ q(7505),
q(0),
],
q(san pedro amuzgos amuzgo) => [
- q(1015),
+ q(1016),
q(0),
],
q(san pedro quiatoni zapotec) => [
- q(7919),
+ q(7904),
q(0),
],
q(san salvador kongo) => [
- q(3716),
+ q(3709),
q(0),
],
q(san vicente coatlan zapotec) => [
- q(7933),
+ q(7918),
q(0),
],
q(sanaani arabic) => [
- q(1002),
+ q(1003),
q(0),
],
q(sanapana) => [
- q(6187),
+ q(6176),
q(0),
],
q(sandawe) => [
- q(0364),
+ q(0365),
q(0),
],
q(sanga (democratic republic of congo)) => [
- q(6139),
+ q(6129),
q(0),
],
q(sanga (nigeria)) => [
- q(7498),
+ q(7483),
q(0),
],
q(sanggau) => [
- q(5931),
+ q(5921),
q(0),
],
q(sangil) => [
- q(6143),
+ q(6132),
q(0),
],
q(sangir) => [
- q(6329),
+ q(6317),
q(0),
],
q(sangisari) => [
- q(6002),
+ q(5993),
q(0),
],
q(sangkong) => [
- q(5999),
+ q(5990),
q(0),
],
q(sanglechi) => [
- q(6008),
+ q(5999),
q(0),
],
q(sango) => [
- q(0365),
+ q(0366),
q(0),
],
q(sangtam naga) => [
- q(5066),
+ q(5061),
q(0),
],
q(sangu (gabon)) => [
- q(6148),
+ q(6137),
q(0),
],
q(sangu (tanzania)) => [
- q(5917),
+ q(5907),
q(0),
],
q(sani) => [
- q(7751),
+ q(7736),
q(0),
],
q(sanie) => [
- q(7756),
+ q(7741),
q(0),
],
q(saniyo-hiyewe) => [
- q(6155),
+ q(6144),
q(0),
],
q(sankaran maninka) => [
- q(4532),
+ q(4525),
q(0),
],
q(sansi) => [
- q(6237),
+ q(6226),
q(0),
],
q(sanskrit) => [
- q(0370),
+ q(0371),
q(0),
],
q(santa ana de tusi pasco quechua) => [
- q(5731),
+ q(5722),
q(0),
],
q(santa catarina albarradas zapotec) => [
- q(7957),
+ q(7942),
q(0),
],
q(santa ines ahuatempan popoloca) => [
- q(5381),
+ q(5377),
q(0),
],
q(santa ines yatzechi zapotec) => [
- q(7927),
+ q(7912),
q(0),
],
q(santa lucia monteverde mixtec) => [
- q(4197),
+ q(4189),
q(0),
],
q(santa maria del mar huave) => [
- q(2879),
+ q(2876),
q(0),
],
q(santa maria la alta nahuatl) => [
- q(4882),
+ q(4875),
q(0),
],
q(santa maria quiegolani zapotec) => [
- q(7922),
+ q(7907),
q(0),
],
q(santa maria zacatepec mixtec) => [
- q(4694),
+ q(4687),
q(0),
],
q(santa teresa cora) => [
- q(1818),
+ q(1815),
q(0),
],
q(santali) => [
- q(0372),
+ q(0373),
q(0),
],
q(santiago del estero quichua) => [
- q(5694),
+ q(5685),
q(0),
],
q(santiago xanica zapotec) => [
- q(7931),
+ q(7916),
q(0),
],
q(santo domingo albarradas zapotec) => [
- q(7821),
+ q(7806),
q(0),
],
q(sanuma) => [
- q(7504),
+ q(7489),
q(0),
],
q(sao paulo kaingang) => [
- q(7866),
+ q(7851),
q(0),
],
q(saotomense) => [
- q(1850),
+ q(1845),
q(0),
],
q(saparua) => [
- q(6191),
+ q(6180),
q(0),
],
q(sape) => [
- q(6179),
+ q(6168),
q(0),
],
q(sapo) => [
- q(3584),
+ q(3579),
q(0),
],
q(saponi) => [
- q(6183),
+ q(6172),
q(0),
],
q(saposa) => [
- q(6192),
+ q(6181),
q(0),
],
q(sapuan) => [
- q(6194),
+ q(6183),
q(0),
],
q(sar) => [
- q(4634),
+ q(4627),
q(0),
],
q(sara) => [
- q(6212),
+ q(6201),
q(0),
],
q(sara kaba) => [
- q(5927),
+ q(5917),
q(0),
],
q(sara kaba deme) => [
- q(3699),
+ q(3692),
q(0),
],
q(sara kaba naa) => [
- q(3713),
+ q(3706),
q(0),
],
q(saraiki) => [
- q(6087),
+ q(6077),
q(0),
],
q(saramaccan) => [
- q(6219),
+ q(6208),
q(0),
],
q(sarangani blaan) => [
@@ -49738,867 +49747,863 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sarangani manobo) => [
- q(4145),
+ q(4137),
q(0),
],
q(sarasira) => [
- q(7947),
+ q(7932),
q(0),
],
q(saraveca) => [
- q(5895),
+ q(5885),
q(0),
],
q(sardinian) => [
- q(0402),
+ q(0403),
q(0),
],
q(sari) => [
- q(0894),
+ q(0895),
q(0),
],
q(sarikoli) => [
- q(6215),
+ q(6204),
q(0),
],
q(sarli) => [
- q(5947),
+ q(5938),
q(0),
],
q(sarsi) => [
- q(6222),
+ q(6211),
q(0),
],
q(sartang) => [
- q(5276),
+ q(5271),
q(0),
],
q(sarua) => [
- q(6321),
+ q(6309),
q(0),
],
q(sarudu) => [
- q(5960),
+ q(5951),
q(0),
],
q(saruga) => [
- q(6209),
+ q(6198),
q(0),
],
q(sasak) => [
- q(0371),
+ q(0372),
q(0),
],
q(sasaru) => [
- q(6332),
+ q(6320),
q(0),
],
q(sassarese sardinian) => [
- q(5945),
+ q(5936),
q(0),
],
q(satawalese) => [
- q(6275),
+ q(6264),
q(0),
],
q(satere-mawe) => [
- q(4124),
+ q(4116),
q(0),
],
q(saterfriesisch) => [
- q(6269),
+ q(6258),
q(0),
],
q(saudi arabian sign language) => [
- q(5952),
+ q(5943),
q(0),
],
q(sauraseni prakrit) => [
- q(5625),
+ q(5617),
q(0),
],
q(saurashtra) => [
- q(5901),
+ q(5891),
q(0),
],
q(sauri) => [
- q(6223),
+ q(6212),
q(0),
],
q(sauria paharia) => [
- q(4337),
+ q(4330),
q(0),
],
q(sause) => [
- q(5893),
+ q(5883),
q(0),
],
q(sausi) => [
- q(6238),
- q(0),
- ],
- q(savara) => [
- q(6297),
+ q(6227),
q(0),
],
q(savi) => [
- q(5948),
+ q(5939),
q(0),
],
q(savosavo) => [
- q(6298),
+ q(6286),
q(0),
],
q(sawai) => [
- q(6357),
+ q(6346),
q(0),
],
q(saweru) => [
- q(6314),
+ q(6302),
q(0),
],
q(sawi) => [
- q(5898),
+ q(5888),
q(0),
],
q(sawila) => [
- q(6316),
+ q(6304),
q(0),
],
q(sawknah) => [
- q(6310),
+ q(6298),
q(0),
],
q(saxon, low) => [
- q(0306),
+ q(0307),
q(3),
],
q(saxwe gbe) => [
- q(6334),
+ q(6322),
q(0),
],
q(saya) => [
- q(5900),
+ q(5890),
q(0),
],
q(sayula popoluca) => [
- q(5566),
+ q(5561),
q(0),
],
q(scots) => [
- q(0374),
+ q(0375),
q(0),
],
q(scottish gaelic) => [
- q(0153),
+ q(0154),
q(1),
],
q(scythian) => [
- q(7491),
+ q(7476),
q(0),
],
q(sea island creole english) => [
- q(2652),
+ q(2650),
q(0),
],
q(seba) => [
- q(3240),
+ q(3239),
q(0),
],
q(sebat bet gurage) => [
- q(6006),
+ q(5997),
q(0),
],
q(seberuang) => [
- q(5925),
+ q(5915),
q(0),
],
q(sebop) => [
- q(6035),
+ q(6026),
q(0),
],
q(sebuyau) => [
- q(6135),
+ q(6125),
q(0),
],
q(sechelt) => [
- q(5965),
+ q(5956),
q(0),
],
q(secoya) => [
- q(5984),
+ q(5975),
q(0),
],
q(sedang) => [
- q(5966),
+ q(5957),
q(0),
],
q(sedoa) => [
- q(6790),
+ q(6774),
q(0),
],
q(seeku) => [
- q(6171),
+ q(6160),
q(0),
],
q(segai) => [
- q(5994),
+ q(5985),
q(0),
],
q(segeju) => [
- q(5969),
+ q(5960),
q(0),
],
q(seget) => [
- q(5908),
+ q(5898),
q(0),
],
q(sehwi) => [
- q(5990),
+ q(5981),
q(0),
],
q(seimat) => [
- q(6235),
+ q(6224),
q(0),
],
q(seit-kaitetu) => [
- q(2761),
+ q(2758),
q(0),
],
+ q(sekak) => [
+ q(3829),
+ q(1),
+ ],
q(sekani) => [
- q(5973),
+ q(5964),
q(0),
],
q(sekapan) => [
- q(6085),
+ q(6075),
q(0),
],
q(sekar) => [
- q(6095),
+ q(6085),
q(0),
],
q(seke (nepal)) => [
- q(6080),
+ q(6071),
q(0),
],
q(seke (vanuatu)) => [
- q(6075),
+ q(6066),
q(0),
],
q(sekele) => [
- q(6975),
+ q(6960),
q(0),
],
q(seki) => [
- q(6337),
+ q(6325),
q(0),
],
q(seko padang) => [
- q(6093),
+ q(6083),
q(0),
],
q(seko tengah) => [
- q(6084),
+ q(6074),
q(0),
],
q(sekpele) => [
- q(3922),
+ q(3913),
q(0),
],
q(selangor sign language) => [
- q(3316),
+ q(3313),
q(0),
],
q(selaru) => [
- q(6111),
+ q(6101),
q(0),
],
q(selayar) => [
- q(6114),
+ q(6104),
q(0),
],
q(selee) => [
- q(6153),
+ q(6142),
q(0),
],
q(selepet) => [
- q(6185),
+ q(6174),
q(0),
],
q(selian) => [
- q(6327),
+ q(6315),
q(0),
],
q(selkup) => [
- q(0375),
+ q(0376),
q(0),
],
q(selungai murut) => [
- q(6099),
+ q(6089),
q(0),
],
q(seluwasan) => [
- q(6315),
+ q(6303),
q(0),
],
q(semai) => [
- q(5963),
+ q(5954),
q(0),
],
q(semandang) => [
- q(5953),
+ q(5944),
q(0),
],
q(semaq beri) => [
- q(6349),
+ q(6337),
q(0),
],
q(sembakung murut) => [
- q(5919),
+ q(5909),
q(0),
],
q(semelai) => [
- q(6347),
+ q(6335),
q(0),
],
q(semimi) => [
- q(2313),
+ q(2310),
q(0),
],
q(semitic languages) => [
- q(0376),
+ q(0377),
q(0),
],
q(semnam) => [
- q(6241),
+ q(6230),
q(0),
],
q(semnani) => [
- q(6133),
+ q(6123),
q(0),
],
q(sempan) => [
- q(7493),
+ q(7478),
q(0),
],
q(sena) => [
- q(5970),
+ q(5961),
q(0),
],
q(senara senoufo) => [
- q(5977),
+ q(5968),
q(0),
],
q(senaya) => [
- q(6341),
+ q(6329),
q(0),
],
q(sene) => [
- q(5972),
+ q(5963),
q(0),
],
q(seneca) => [
- q(5967),
+ q(5958),
q(0),
],
q(sened) => [
- q(5958),
+ q(5949),
q(0),
],
q(sengele) => [
- q(6352),
+ q(6340),
q(0),
],
q(senggi) => [
- q(6151),
+ q(6140),
q(0),
],
q(sengo) => [
- q(6184),
+ q(6173),
q(0),
],
q(sengseng) => [
- q(6253),
+ q(6242),
q(0),
],
q(senhaja de srair) => [
- q(6067),
+ q(6058),
q(0),
],
q(sensi) => [
- q(6141),
+ q(6130),
q(0),
],
q(sentani) => [
- q(5980),
+ q(5971),
q(0),
],
q(senthang chin) => [
- q(5985),
+ q(5976),
q(0),
],
q(sentinel) => [
- q(6256),
+ q(6245),
q(0),
],
q(sepa (indonesia)) => [
- q(6178),
+ q(6167),
q(0),
],
q(sepa (papua new guinea)) => [
- q(6181),
+ q(6170),
q(0),
],
q(sepedi) => [
- q(0318),
+ q(0319),
q(1),
],
q(sepik iwam) => [
- q(3031),
+ q(3030),
q(0),
],
q(sera) => [
- q(6228),
+ q(6217),
q(0),
],
q(seraiki) => [
- q(6087),
+ q(6077),
q(1),
],
q(serbian) => [
- q(0404),
+ q(0405),
q(0),
],
q(serbo-croatian) => [
- q(0537),
+ q(0538),
q(0),
],
q(sere) => [
- q(6302),
+ q(6290),
q(0),
],
q(serer) => [
- q(0405),
+ q(0406),
q(0),
],
q(seri) => [
- q(5971),
+ q(5962),
q(0),
],
q(serili) => [
- q(6294),
+ q(6283),
q(0),
],
q(seroa) => [
- q(3568),
+ q(3564),
q(0),
],
q(serrano) => [
- q(5978),
+ q(5969),
q(0),
],
q(seru) => [
- q(6350),
+ q(6338),
q(0),
],
q(serua) => [
- q(6226),
+ q(6215),
q(0),
],
q(serudung murut) => [
- q(6217),
+ q(6206),
q(0),
],
q(serui-laut) => [
- q(5981),
+ q(5972),
q(0),
],
q(seselwa creole french) => [
- q(1859),
+ q(1854),
q(0),
],
q(seta) => [
- q(6258),
+ q(6247),
q(0),
],
q(setaman) => [
- q(6265),
+ q(6254),
q(0),
],
q(seti) => [
- q(5910),
+ q(5900),
q(0),
],
q(settla) => [
- q(6254),
+ q(6243),
q(0),
],
q(severn ojibwa) => [
- q(5222),
+ q(5217),
q(0),
],
q(sewa bay) => [
- q(5983),
+ q(5974),
q(0),
],
q(seze) => [
- q(6351),
+ q(6339),
q(0),
],
q(sha) => [
- q(5941),
+ q(5932),
q(0),
],
q(shabak) => [
- q(5944),
+ q(5935),
q(0),
],
q(shabo) => [
- q(5907),
+ q(5897),
q(1),
],
q(shahmirzadi) => [
- q(6229),
+ q(6218),
q(0),
],
q(shahrudi) => [
- q(6021),
+ q(6012),
q(0),
],
q(shall-zwall) => [
- q(6010),
+ q(6001),
q(0),
],
q(shama-sambuga) => [
- q(6198),
+ q(6187),
q(0),
],
q(shamang) => [
- q(7494),
+ q(7479),
q(0),
],
q(shambala) => [
- q(3595),
+ q(3590),
q(0),
],
q(shan) => [
- q(0379),
+ q(0380),
q(0),
],
q(shanenawa) => [
- q(6311),
+ q(6299),
q(0),
],
q(shanga) => [
- q(6022),
+ q(6013),
q(0),
],
q(shangzhai) => [
- q(3097),
+ q(3095),
q(1),
],
q(sharanahua) => [
- q(4156),
+ q(4148),
q(0),
],
q(shark bay) => [
- q(6250),
+ q(6239),
q(0),
],
q(sharwa) => [
- q(6313),
+ q(6301),
q(0),
],
q(shasta) => [
- q(6027),
+ q(6018),
q(0),
],
q(shatt) => [
- q(6018),
+ q(6009),
q(0),
],
q(shau) => [
- q(6199),
+ q(6188),
q(0),
],
q(shawnee) => [
- q(6070),
+ q(6061),
q(0),
],
q(she) => [
- q(6031),
+ q(6022),
q(0),
],
q(shehri) => [
- q(6029),
+ q(6020),
q(0),
],
q(shekhawati) => [
- q(6318),
+ q(6306),
q(0),
],
q(shekkacho) => [
- q(4454),
+ q(4447),
q(0),
],
q(sheko) => [
- q(6014),
+ q(6005),
q(0),
],
q(shelta) => [
- q(6260),
+ q(6249),
q(0),
],
q(shempire senoufo) => [
- q(5964),
+ q(5955),
q(0),
],
q(shendu) => [
- q(6020),
+ q(6011),
q(0),
],
q(sheni) => [
- q(5940),
+ q(5931),
q(0),
],
q(sherbro) => [
- q(1505),
+ q(1504),
q(0),
],
q(sherdukpen) => [
- q(5956),
+ q(5947),
q(0),
],
q(sherpa) => [
- q(7502),
+ q(7487),
q(0),
],
q(sheshi kham) => [
- q(3368),
+ q(3365),
q(0),
],
q(shi) => [
- q(6025),
+ q(6016),
q(0),
],
q(shihhi arabic) => [
- q(6236),
+ q(6225),
q(0),
],
q(shiki) => [
- q(2642),
+ q(2640),
q(0),
],
q(shilluk) => [
- q(6019),
+ q(6010),
q(0),
],
q(shina) => [
- q(5935),
- q(0),
- ],
- q(shinabo) => [
- q(6140),
+ q(5925),
q(0),
],
q(shipibo-conibo) => [
- q(6023),
+ q(6014),
q(0),
],
q(shixing) => [
- q(6325),
+ q(6313),
q(0),
],
q(sholaga) => [
- q(6097),
+ q(6087),
q(0),
],
q(shom peng) => [
- q(6040),
+ q(6031),
q(0),
],
q(shona) => [
- q(0394),
+ q(0395),
q(0),
],
q(shoo-minda-nye) => [
- q(1085),
+ q(1086),
q(0),
],
q(shor) => [
- q(1752),
+ q(1749),
q(0),
],
q(shoshoni) => [
- q(6016),
+ q(6007),
q(0),
],
q(shua) => [
- q(6015),
+ q(6006),
q(0),
],
q(shuadit) => [
- q(5959),
+ q(5950),
q(0),
],
q(shuar) => [
- q(3105),
+ q(3103),
q(0),
],
q(shubi) => [
- q(6283),
+ q(6272),
q(0),
],
q(shughni) => [
- q(5996),
+ q(5987),
q(0),
],
q(shumashti) => [
- q(6271),
+ q(6260),
q(0),
],
q(shumcho) => [
- q(5939),
+ q(5930),
q(0),
],
q(shuswap) => [
- q(6026),
+ q(6017),
q(0),
],
q(shuwa-zamani) => [
- q(3594),
+ q(3589),
q(0),
],
q(shwai) => [
- q(6030),
+ q(6021),
q(0),
],
q(shwe palaung) => [
- q(5495),
+ q(5492),
q(0),
],
q(sialum) => [
- q(6112),
+ q(6102),
q(0),
],
q(siamou) => [
- q(6037),
+ q(6028),
q(0),
],
q(sian) => [
- q(6182),
+ q(6171),
q(0),
],
q(siane) => [
- q(6147),
+ q(6136),
q(0),
],
q(siang) => [
- q(6335),
+ q(6323),
q(0),
],
q(siar-lak) => [
- q(6066),
+ q(6057),
q(0),
],
q(siawi) => [
- q(4405),
+ q(4398),
q(0),
],
q(sibe) => [
- q(4776),
+ q(4768),
q(0),
],
q(siberian tatar) => [
- q(6276),
+ q(6265),
q(0),
],
q(sibu melanau) => [
- q(5961),
+ q(5952),
q(0),
],
q(sicanian) => [
- q(6323),
+ q(6311),
q(0),
],
q(sicel) => [
- q(5942),
+ q(5933),
q(0),
],
q(sichuan yi) => [
- q(0189),
+ q(0190),
q(0),
],
q(sicilian) => [
- q(0373),
+ q(0374),
q(0),
],
q(sicite senoufo) => [
- q(5976),
+ q(5967),
q(0),
],
q(siculo arabic) => [
- q(6205),
+ q(6194),
q(0),
],
q(sidamo) => [
- q(0380),
+ q(0381),
q(0),
],
q(sidetic) => [
- q(7492),
+ q(7477),
q(0),
],
q(sie) => [
- q(2282),
+ q(2278),
q(0),
],
q(sierra de juarez zapotec) => [
- q(7805),
+ q(7790),
q(0),
],
q(sierra leone sign language) => [
- q(6007),
+ q(5998),
q(0),
],
q(sierra negra nahuatl) => [
- q(5083),
+ q(5078),
q(0),
],
q(sighu) => [
- q(6324),
+ q(6312),
q(0),
],
q(sign languages) => [
- q(0378),
+ q(0379),
q(0),
],
q(sihan) => [
- q(6149),
+ q(6138),
q(0),
],
q(sihuas ancash quechua) => [
- q(5719),
+ q(5710),
q(0),
],
q(sika) => [
- q(6079),
+ q(6070),
q(0),
],
q(sikaiana) => [
- q(6094),
+ q(6084),
q(0),
],
q(sikaritai) => [
- q(6758),
+ q(6742),
q(0),
],
q(sikiana) => [
- q(6042),
+ q(6033),
q(0),
],
q(sikkimese) => [
- q(6045),
+ q(6036),
q(0),
],
q(siksika) => [
@@ -50606,355 +50611,355 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sikule) => [
- q(6078),
+ q(6069),
q(0),
],
q(sila) => [
- q(6110),
+ q(6100),
q(0),
],
q(silacayoapan mixtec) => [
- q(4360),
+ q(4353),
q(0),
],
q(sileibi) => [
- q(5918),
+ q(5908),
q(0),
],
q(silesian) => [
- q(6353),
+ q(6341),
q(0),
],
q(silimo) => [
- q(7250),
+ q(7237),
q(0),
],
q(siliput) => [
- q(4346),
+ q(4339),
q(0),
],
q(silopi) => [
- q(7500),
+ q(7485),
q(0),
],
q(silt'e) => [
- q(6274),
+ q(6263),
q(0),
],
q(simaa) => [
- q(6036),
+ q(6027),
q(0),
],
q(simba) => [
- q(5924),
+ q(5914),
q(0),
],
q(simbali) => [
- q(6120),
+ q(6110),
q(0),
],
q(simbari) => [
- q(6116),
+ q(6106),
q(0),
],
q(simbo) => [
- q(5903),
+ q(5893),
q(0),
],
q(simeku) => [
- q(6134),
+ q(6124),
q(0),
],
q(simeulue) => [
- q(6127),
+ q(6117),
q(0),
],
q(simte) => [
- q(6128),
+ q(6118),
q(0),
],
q(sinagen) => [
- q(6049),
+ q(6040),
q(0),
],
q(sinasina) => [
- q(6248),
+ q(6237),
q(0),
],
q(sinaugoro) => [
- q(6136),
+ q(6126),
q(0),
],
q(sindarin) => [
- q(6063),
+ q(6054),
q(0),
],
q(sindhi) => [
- q(0395),
+ q(0396),
q(0),
],
q(sindhi bhil) => [
- q(5915),
+ q(5905),
q(0),
],
q(sindihui mixtec) => [
- q(7523),
+ q(7508),
q(0),
],
q(singa) => [
- q(6000),
+ q(5991),
q(0),
],
q(singapore sign language) => [
- q(6109),
+ q(6099),
q(0),
],
q(singpho) => [
- q(6001),
+ q(5992),
q(0),
],
q(sinhala) => [
- q(0381),
+ q(0382),
q(0),
],
q(sinhalese) => [
- q(0381),
+ q(0382),
q(1),
],
q(sinicahua mixtec) => [
- q(7514),
+ q(7499),
q(0),
],
q(sinicized miao) => [
- q(2799),
+ q(2796),
q(1),
],
q(sininkere) => [
- q(6086),
+ q(6076),
q(0),
],
q(sino-tibetan languages) => [
- q(0383),
+ q(0384),
q(0),
],
q(sinsauru) => [
- q(6156),
+ q(6145),
q(0),
],
q(sinte romani) => [
- q(5818),
+ q(5808),
q(0),
],
q(sinyar) => [
- q(6343),
+ q(6331),
q(0),
],
q(sio) => [
- q(7495),
+ q(7480),
q(0),
],
q(siona) => [
- q(6145),
+ q(6134),
q(0),
],
q(siouan languages) => [
- q(0382),
+ q(0383),
q(0),
],
q(sipacapense) => [
- q(5689),
+ q(5680),
q(0),
],
q(sira) => [
- q(6306),
+ q(6294),
q(0),
],
q(siraya) => [
- q(2368),
+ q(2366),
q(0),
],
q(sirenik yupik) => [
- q(7754),
+ q(7739),
q(0),
],
q(siri) => [
- q(6047),
+ q(6038),
q(0),
],
q(siriano) => [
- q(6216),
+ q(6205),
q(0),
],
q(siriono) => [
- q(6221),
+ q(6210),
q(0),
],
q(sirmauri) => [
- q(6227),
+ q(6216),
q(0),
],
q(siroi) => [
- q(6232),
+ q(6221),
q(0),
],
q(sishee) => [
- q(6039),
+ q(6030),
q(1),
],
q(sissala) => [
- q(6096),
+ q(6086),
q(0),
],
q(sissano) => [
- q(6243),
+ q(6232),
q(0),
],
q(siuslaw) => [
- q(6048),
+ q(6039),
q(0),
],
q(sivandi) => [
- q(6053),
+ q(6044),
q(0),
],
q(siwai) => [
- q(6051),
+ q(6042),
q(0),
],
q(siwi) => [
- q(6054),
+ q(6045),
q(0),
],
q(siwu) => [
- q(0734),
+ q(0735),
q(0),
],
q(siyin chin) => [
- q(1886),
+ q(1881),
q(0),
],
q(skagit) => [
- q(6071),
+ q(6062),
q(0),
],
q(skalvian) => [
- q(6299),
+ q(6287),
q(0),
],
q(skepi creole dutch) => [
- q(6092),
+ q(6082),
q(0),
],
q(skolt sami) => [
- q(0393),
+ q(0394),
q(0),
],
q(skou) => [
- q(6091),
+ q(6081),
q(0),
],
q(slave (athapascan)) => [
- q(0107),
+ q(0108),
q(0),
],
q(slavic languages) => [
- q(0384),
+ q(0385),
q(0),
],
q(slavomolisano) => [
- q(6296),
+ q(6285),
q(0),
],
q(slovak) => [
- q(0385),
+ q(0386),
q(0),
],
q(slovakian sign language) => [
- q(6295),
+ q(6284),
q(0),
],
q(slovenian) => [
- q(0386),
+ q(0387),
q(0),
],
q(small flowery miao) => [
- q(5988),
+ q(5979),
q(0),
],
q(smarky kanum) => [
- q(3732),
+ q(3725),
q(0),
],
q(snohomish) => [
- q(6146),
+ q(6135),
q(0),
],
q(so) => [
- q(6247),
+ q(6236),
q(0),
],
q(so (democratic republic of congo)) => [
- q(6159),
+ q(6148),
q(0),
],
q(so'a) => [
- q(6245),
+ q(6234),
q(0),
],
q(sobei) => [
- q(6158),
+ q(6147),
q(0),
],
q(sochiapam chinantec) => [
- q(1879),
+ q(1874),
q(0),
],
q(sochiapan chinantec) => [
- q(1879),
+ q(1874),
q(1),
],
q(soga) => [
- q(7448),
+ q(7433),
q(0),
],
q(sogdian) => [
- q(0397),
+ q(0398),
q(0),
],
q(soi) => [
- q(6164),
- q(0),
- ],
- q(sok) => [
- q(6081),
+ q(6153),
q(0),
],
q(sokoro) => [
- q(6165),
+ q(6154),
q(0),
],
q(solano) => [
- q(7499),
+ q(7484),
q(0),
],
q(soli) => [
- q(5926),
+ q(5916),
+ q(0),
+ ],
+ q(solomon islands sign language) => [
+ q(6344),
q(0),
],
q(solong) => [
- q(0556),
+ q(0557),
q(0),
],
q(solos) => [
- q(6166),
+ q(6155),
q(0),
],
q(som) => [
- q(6117),
+ q(6107),
q(0),
],
q(somali) => [
- q(0398),
+ q(0399),
q(0),
],
q(somba-siawari) => [
@@ -50962,271 +50967,279 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(somrai) => [
- q(6170),
+ q(6159),
q(0),
],
q(somray) => [
- q(6129),
+ q(6119),
q(0),
],
q(somyev) => [
- q(3327),
+ q(3324),
q(0),
],
q(sonaga) => [
- q(7749),
+ q(7734),
q(0),
],
q(sonde) => [
- q(6012),
+ q(6003),
q(0),
],
q(songe) => [
- q(6168),
+ q(6157),
q(0),
],
q(songhai languages) => [
- q(0399),
+ q(0400),
q(0),
],
q(songlai chin) => [
- q(1874),
+ q(1869),
q(0),
],
q(songo) => [
- q(6167),
+ q(6156),
q(0),
],
q(songomeno) => [
- q(6161),
+ q(6150),
q(0),
],
q(songoora) => [
- q(6160),
+ q(6149),
q(0),
],
q(sonha) => [
- q(6163),
+ q(6152),
q(0),
],
q(sonia) => [
- q(6046),
+ q(6037),
q(0),
],
q(soninke) => [
- q(0396),
+ q(0397),
q(0),
],
q(sonsorol) => [
- q(6173),
+ q(6162),
q(0),
],
q(soo) => [
- q(6465),
+ q(6454),
q(0),
],
q(sop) => [
- q(6944),
+ q(6929),
q(0),
],
q(soqotri) => [
- q(6207),
+ q(6196),
q(0),
],
q(sora) => [
- q(6210),
+ q(6199),
q(0),
],
q(sorbian languages) => [
- q(0467),
+ q(0468),
q(0),
],
q(sori-harengan) => [
- q(5909),
+ q(5899),
q(0),
],
q(sorkhei) => [
- q(6203),
+ q(6192),
q(0),
],
q(sorothaptic) => [
- q(6330),
+ q(6318),
q(0),
],
q(sorsogon ayta) => [
- q(1007),
+ q(1008),
q(0),
],
q(sos kundi) => [
- q(5951),
+ q(5942),
q(0),
],
q(sota kanum) => [
- q(3593),
+ q(3588),
q(0),
],
q(sotho, southern) => [
- q(0400),
+ q(0401),
q(0),
],
q(sou) => [
- q(6204),
+ q(6193),
+ q(0),
+ ],
+ q(sou nama) => [
+ q(6569),
+ q(0),
+ ],
+ q(sou upaa) => [
+ q(7109),
q(0),
],
q(south african sign language) => [
- q(5989),
+ q(5980),
q(0),
],
q(south american indian (other)) => [
- q(0367),
+ q(0368),
q(0),
],
q(south american indian languages) => [
- q(0367),
+ q(0368),
q(1),
],
q(south awyu) => [
- q(0978),
+ q(0979),
q(0),
],
q(south azerbaijani) => [
- q(1013),
+ q(1014),
q(0),
],
q(south bolivian quechua) => [
- q(5685),
+ q(5676),
q(0),
],
q(south caucasian languages) => [
- q(0496),
+ q(0497),
q(0),
],
q(south central banda) => [
- q(4006),
+ q(3997),
q(0),
],
q(south central dinka) => [
- q(2036),
+ q(2030),
q(0),
],
q(south efate) => [
- q(2285),
+ q(2281),
q(0),
],
q(south fali) => [
- q(2331),
+ q(2328),
q(0),
],
q(south giziga) => [
- q(2531),
+ q(2528),
q(0),
],
q(south lembata) => [
- q(3981),
+ q(3972),
q(0),
],
q(south levantine arabic) => [
- q(0717),
+ q(0718),
q(0),
],
q(south marquesan) => [
- q(4492),
+ q(4485),
q(0),
],
q(south muyu) => [
- q(3638),
+ q(3632),
q(0),
],
q(south ndebele) => [
- q(0303),
+ q(0304),
q(1),
],
q(south nuaulu) => [
- q(5148),
+ q(5143),
q(0),
],
q(south picene) => [
- q(6196),
+ q(6185),
q(0),
],
q(south slavey) => [
- q(7496),
+ q(7481),
q(0),
],
q(south slavic languages) => [
- q(0535),
+ q(0536),
q(0),
],
q(south tairora) => [
- q(5265),
+ q(5260),
q(0),
],
q(south ucayali asheninka) => [
- q(1841),
+ q(1837),
q(0),
],
q(south watut) => [
- q(4177),
+ q(4169),
q(0),
],
q(south west bay) => [
- q(6150),
+ q(6139),
q(0),
],
q(southeast ambrym) => [
- q(6783),
+ q(6767),
q(0),
],
q(southeast babar) => [
- q(6986),
+ q(6971),
q(0),
],
q(southeast ijo) => [
- q(2938),
+ q(2935),
q(0),
],
q(southeast pashai) => [
- q(5615),
+ q(5607),
q(0),
],
q(southeast pashayi) => [
- q(5615),
+ q(5607),
q(1),
],
q(southeastern dinka) => [
- q(2076),
+ q(2070),
q(0),
],
q(southeastern ixtlan zapotec) => [
- q(7917),
+ q(7902),
q(0),
],
q(southeastern kolami) => [
- q(4899),
+ q(4892),
q(0),
],
q(southeastern nochixtlan mixtec) => [
- q(4671),
+ q(4664),
q(0),
],
q(southeastern pomo) => [
- q(5562),
+ q(5557),
q(0),
],
q(southeastern puebla nahuatl) => [
- q(5037),
+ q(5030),
q(0),
],
q(southeastern tarahumara) => [
- q(6423),
+ q(6412),
q(0),
],
q(southeastern tepehuan) => [
- q(6268),
+ q(6257),
q(0),
],
q(southern alta) => [
- q(0675),
+ q(0676),
q(0),
],
q(southern altai) => [
@@ -51234,27 +51247,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(southern amami-oshima) => [
- q(0782),
+ q(0783),
q(0),
],
q(southern aymara) => [
- q(0994),
+ q(0995),
q(0),
],
q(southern bai) => [
- q(1154),
+ q(1155),
q(0),
],
q(southern balochi) => [
- q(1066),
+ q(1067),
q(0),
],
q(southern betsimisaraka malagasy) => [
- q(1615),
+ q(1614),
q(0),
],
q(southern binukidnon) => [
- q(4577),
+ q(4570),
q(0),
],
q(southern birifor) => [
@@ -51262,15 +51275,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(southern bobo madare) => [
- q(1558),
+ q(1557),
q(0),
],
q(southern bontok) => [
- q(5190),
+ q(5185),
q(0),
],
q(southern carrier) => [
- q(1643),
+ q(1642),
q(0),
],
q(southern catanduanes bikol) => [
@@ -51278,767 +51291,779 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(southern conchucos ancash quechua) => [
- q(5726),
+ q(5717),
q(0),
],
q(southern dagaare) => [
- q(2004),
+ q(1998),
q(0),
],
q(southern dong) => [
- q(3456),
+ q(3453),
q(0),
],
q(southern east cree) => [
- q(1851),
+ q(1846),
q(0),
],
q(southern ghale) => [
- q(2505),
- q(0),
- ],
- q(southern gondi) => [
- q(2499),
+ q(2501),
q(0),
],
q(southern grebo) => [
- q(2619),
+ q(2617),
q(0),
],
q(southern guiyang hmong) => [
- q(2798),
+ q(2795),
q(0),
],
q(southern guiyang miao) => [
- q(2798),
+ q(2795),
q(1),
],
q(southern haida) => [
- q(2729),
+ q(2726),
q(0),
],
q(southern hindko) => [
- q(2801),
+ q(2798),
q(0),
],
q(southern kalapuya) => [
- q(6326),
+ q(6314),
q(0),
],
q(southern kalinga) => [
- q(3596),
+ q(3591),
+ q(0),
+ ],
+ q(southern katang) => [
+ q(5929),
q(0),
],
q(southern kisi) => [
- q(3612),
+ q(3607),
q(0),
],
q(southern kiwai) => [
- q(3381),
+ q(3378),
q(0),
],
q(southern kurdish) => [
- q(5949),
+ q(5940),
q(0),
],
q(southern lolopo) => [
- q(7753),
+ q(7738),
q(0),
],
q(southern luri) => [
- q(4093),
+ q(4085),
q(0),
],
q(southern ma'di) => [
- q(6144),
+ q(6133),
q(0),
],
q(southern mashan hmong) => [
- q(2777),
+ q(2774),
q(0),
],
q(southern mashan miao) => [
- q(2777),
+ q(2774),
q(1),
],
q(southern mnong) => [
- q(4426),
+ q(4419),
q(0),
],
q(southern muji) => [
- q(7689),
+ q(7674),
q(0),
],
q(southern nago) => [
- q(5043),
+ q(5037),
q(0),
],
q(southern nambikuara) => [
- q(4720),
+ q(4713),
q(0),
],
q(southern ngbandi) => [
- q(4760),
+ q(4752),
q(0),
],
q(southern nicobarese) => [
- q(4891),
+ q(4884),
q(0),
],
q(southern nisu) => [
- q(5068),
+ q(5063),
q(0),
],
q(southern nuni) => [
- q(5009),
+ q(5002),
q(0),
],
q(southern ohlone) => [
- q(1882),
+ q(1877),
q(0),
],
q(southern one) => [
- q(5315),
+ q(5310),
q(0),
],
q(southern pame) => [
- q(5529),
+ q(5525),
q(0),
],
q(southern pashto) => [
- q(5377),
+ q(5373),
q(0),
],
q(southern pastaza quechua) => [
- q(5691),
+ q(5682),
q(0),
],
q(southern pomo) => [
- q(5417),
+ q(5413),
q(0),
],
q(southern puebla mixtec) => [
- q(4315),
+ q(4307),
q(0),
],
q(southern puget sound salish) => [
- q(6100),
+ q(6090),
q(0),
],
q(southern pumi) => [
- q(5516),
+ q(5512),
q(0),
],
q(southern qiandong miao) => [
- q(2793),
+ q(2790),
q(0),
],
q(southern qiang) => [
- q(5730),
+ q(5721),
q(0),
],
q(southern rengma naga) => [
- q(5052),
+ q(5047),
q(0),
],
q(southern rincon zapotec) => [
- q(7951),
+ q(7936),
q(0),
],
q(southern roglai) => [
- q(5782),
+ q(5773),
q(0),
],
q(southern sama) => [
- q(6230),
+ q(6219),
q(0),
],
q(southern sami) => [
- q(0387),
+ q(0388),
q(0),
],
q(southern samo) => [
- q(5905),
+ q(5895),
q(0),
],
q(southern sierra miwok) => [
- q(6074),
+ q(6065),
q(0),
],
q(southern sorsoganon) => [
- q(6225),
+ q(6214),
q(0),
],
q(southern sotho) => [
- q(0400),
+ q(0401),
q(1),
],
q(southern subanen) => [
- q(3793),
+ q(3784),
q(0),
],
q(southern thai) => [
- q(6172),
+ q(6161),
+ q(0),
+ ],
+ q(southern tidung) => [
+ q(3009),
q(0),
],
q(southern tiwa) => [
- q(6535),
+ q(6522),
q(0),
],
q(southern toussian) => [
- q(7127),
+ q(7113),
q(0),
],
q(southern tujia) => [
- q(6545),
+ q(6532),
q(0),
],
q(southern tutchone) => [
- q(6409),
+ q(6398),
q(0),
],
q(southern uzbek) => [
- q(6969),
+ q(6954),
q(0),
],
q(southern yamphu) => [
- q(4052),
+ q(4043),
q(0),
],
q(southern yukaghir) => [
- q(7780),
+ q(7765),
q(0),
],
q(southwest gbaya) => [
- q(2637),
+ q(2635),
q(0),
],
q(southwest palawano) => [
- q(5504),
+ q(5501),
q(0),
],
q(southwest pashai) => [
- q(5614),
+ q(5606),
q(0),
],
q(southwest pashayi) => [
- q(5614),
+ q(5606),
q(1),
],
q(southwest tanna) => [
- q(5136),
+ q(5131),
q(0),
],
q(southwestern bontok) => [
- q(6987),
+ q(6972),
q(0),
],
q(southwestern dinka) => [
- q(2044),
+ q(2038),
q(0),
],
q(southwestern fars) => [
- q(2337),
+ q(2334),
q(0),
],
q(southwestern guiyang hmong) => [
- q(2783),
+ q(2780),
q(0),
],
q(southwestern huishui hmong) => [
- q(2784),
+ q(2781),
q(0),
],
q(southwestern huishui miao) => [
- q(2784),
+ q(2781),
q(1),
],
q(southwestern nisu) => [
- q(5084),
+ q(5079),
q(0),
],
q(southwestern tarahumara) => [
- q(6806),
+ q(6790),
q(0),
],
q(southwestern tepehuan) => [
- q(6566),
+ q(6553),
q(0),
],
q(southwestern tlaxiaco mixtec) => [
- q(4208),
+ q(4200),
q(0),
],
q(sowa) => [
- q(6319),
+ q(6307),
q(0),
],
q(sowanda) => [
- q(6174),
+ q(6163),
q(0),
],
q(sowari) => [
- q(2098),
+ q(2092),
q(1),
],
q(soyaltepec mazatec) => [
- q(7031),
+ q(7016),
q(0),
],
q(soyaltepec mixtec) => [
- q(7032),
+ q(7017),
q(0),
],
q(spanish) => [
- q(0401),
+ q(0402),
q(0),
],
q(spanish sign language) => [
- q(6244),
+ q(6233),
q(0),
],
q(spiti bhoti) => [
- q(6193),
+ q(6182),
q(0),
],
q(spokane) => [
- q(6188),
+ q(6177),
q(0),
],
q(squamish) => [
- q(6208),
+ q(6197),
q(0),
],
q(sranan tongo) => [
- q(0403),
+ q(0404),
q(0),
],
q(sri lankan creole malay) => [
- q(5933),
+ q(5923),
q(0),
],
q(sri lankan sign language) => [
- q(6206),
+ q(6195),
q(0),
],
q(standard arabic) => [
- q(0868),
+ q(0869),
q(0),
],
q(standard estonian) => [
- q(2236),
+ q(2232),
q(0),
],
q(standard latvian) => [
- q(4096),
+ q(4088),
q(0),
],
q(standard malay) => [
- q(7950),
+ q(7935),
q(0),
],
q(standard moroccan tamazight) => [
- q(0480),
+ q(0481),
q(0),
],
q(stellingwerfs) => [
- q(6264),
+ q(6253),
q(0),
],
q(stod bhoti) => [
- q(5922),
+ q(5912),
q(0),
],
q(stodsde) => [
- q(3097),
+ q(3095),
q(0),
],
q(stoney) => [
- q(6267),
+ q(6256),
q(0),
],
q(straits salish) => [
- q(6270),
+ q(6259),
q(0),
],
q(suabo) => [
- q(6355),
+ q(6343),
q(0),
],
q(suarmin) => [
- q(5975),
+ q(5966),
q(0),
],
q(suau) => [
- q(6312),
+ q(6300),
q(0),
],
q(suba) => [
- q(6322),
+ q(6310),
q(0),
],
q(suba-simbiti) => [
- q(6231),
+ q(6220),
q(0),
],
q(subiya) => [
- q(5920),
+ q(5910),
q(0),
],
q(subtiaba) => [
- q(6286),
+ q(6275),
q(0),
],
q(sudanese arabic) => [
- q(0836),
+ q(0837),
q(0),
],
q(sudanese creole arabic) => [
- q(5426),
+ q(5422),
q(0),
],
q(sudest) => [
- q(6485),
+ q(6474),
q(0),
],
q(sudovian) => [
- q(7505),
+ q(7490),
q(0),
],
q(suena) => [
- q(6280),
+ q(6269),
q(0),
],
q(suga) => [
- q(5997),
+ q(5988),
q(0),
],
q(suganga) => [
- q(6281),
+ q(6270),
q(0),
],
q(sugut dusun) => [
- q(3785),
+ q(3777),
q(0),
],
q(sui) => [
- q(6305),
+ q(6293),
q(0),
],
q(suki) => [
- q(6282),
+ q(6271),
q(0),
],
q(suku) => [
- q(6278),
+ q(6267),
q(0),
],
q(sukuma) => [
- q(0408),
+ q(0409),
q(0),
],
q(sukur) => [
- q(6338),
+ q(6326),
q(0),
],
q(sukurum) => [
- q(7952),
+ q(7937),
q(0),
],
q(sula) => [
- q(6354),
+ q(6342),
q(0),
],
q(sulka) => [
- q(6277),
+ q(6266),
q(0),
],
q(sulod) => [
- q(6214),
+ q(6203),
q(0),
],
q(suma) => [
- q(6201),
+ q(6190),
q(0),
],
q(sumariup) => [
- q(6050),
+ q(6041),
q(0),
],
q(sumau) => [
- q(6052),
+ q(6043),
q(0),
],
q(sumbawa) => [
- q(6131),
+ q(6121),
q(0),
],
q(sumbwa) => [
- q(6288),
+ q(6277),
q(0),
],
q(sumerian) => [
- q(0411),
+ q(0412),
q(0),
],
q(sumi naga) => [
- q(5076),
+ q(5071),
q(0),
],
q(sumtu chin) => [
- q(1884),
+ q(1879),
q(0),
],
q(sunam) => [
- q(6239),
+ q(6228),
q(0),
],
q(sundanese) => [
- q(0409),
+ q(0410),
q(0),
],
q(sunum) => [
- q(7698),
+ q(7683),
q(1),
],
q(sunwar) => [
- q(6290),
+ q(6279),
q(0),
],
q(suomenruotsalainen viittomakieli) => [
- q(2379),
+ q(2377),
q(2),
],
q(suoy) => [
- q(6342),
+ q(6330),
q(0),
],
q(supyire senoufo) => [
- q(6189),
+ q(6178),
q(0),
],
q(sur) => [
- q(6439),
+ q(6428),
q(0),
],
q(surayt) => [
- q(6707),
+ q(6691),
q(1),
],
q(surbakhal) => [
- q(5911),
+ q(5901),
q(0),
],
q(surgujia) => [
- q(5998),
+ q(5989),
q(0),
],
q(suri) => [
- q(6284),
+ q(6273),
q(0),
],
q(surigaonon) => [
- q(5993),
+ q(5984),
q(0),
],
q(surjapuri) => [
- q(6065),
+ q(6056),
q(0),
],
q(sursurunga) => [
- q(6009),
+ q(6000),
q(0),
],
q(suruaha) => [
- q(6320),
+ q(6308),
q(0),
],
q(surubu) => [
- q(5946),
+ q(5937),
q(0),
],
q(surui) => [
- q(6224),
+ q(6213),
q(0),
],
q(surui do para) => [
- q(4201),
+ q(4193),
q(0),
],
q(susquehannock) => [
- q(6202),
+ q(6191),
q(0),
],
q(susu) => [
- q(0410),
+ q(0411),
q(0),
],
q(susuami) => [
- q(6249),
+ q(6238),
q(0),
],
q(suundi) => [
- q(5950),
+ q(5941),
q(0),
],
q(suwawa) => [
- q(6317),
+ q(6305),
q(0),
],
q(suya) => [
- q(6289),
+ q(6278),
q(0),
],
q(svan) => [
- q(6291),
+ q(6280),
q(0),
],
q(swabian) => [
- q(6303),
+ q(6291),
q(0),
],
q(swahili) => [
- q(0412),
+ q(0413),
q(0),
],
q(swahili (individual language)) => [
- q(6304),
+ q(6292),
q(0),
],
q(swahili (macrolanguage)) => [
- q(0412),
+ q(0413),
q(1),
],
q(swampy cree) => [
- q(1885),
+ q(1880),
q(0),
],
q(swati) => [
- q(0407),
+ q(0408),
q(0),
],
q(swedish) => [
- q(0413),
+ q(0414),
q(0),
],
q(swedish sign language) => [
- q(6308),
+ q(6296),
q(0),
],
q(swiss german) => [
- q(0166),
+ q(0167),
q(0),
],
q(swiss-french sign language) => [
- q(6246),
+ q(6235),
q(0),
],
q(swiss-german sign language) => [
- q(5995),
+ q(5986),
q(0),
],
q(swiss-italian sign language) => [
- q(6098),
+ q(6088),
q(0),
],
q(swo) => [
- q(6175),
+ q(6164),
q(0),
],
q(syenara senoufo) => [
- q(6033),
+ q(6024),
q(0),
],
q(sylheti) => [
- q(6339),
+ q(6327),
q(0),
],
q(syriac) => [
- q(0415),
+ q(0416),
+ q(0),
+ ],
+ q(t'apo) => [
+ q(3885),
q(0),
],
q(t'en) => [
- q(6422),
+ q(6411),
q(0),
],
q(ta'izzi-adeni arabic) => [
- q(0594),
+ q(0595),
q(0),
],
q(taabwa) => [
- q(6370),
+ q(6359),
q(0),
],
q(tabaa zapotec) => [
- q(7822),
+ q(7807),
q(0),
],
q(tabaru) => [
- q(6403),
+ q(6392),
q(0),
],
q(tabasco chontal) => [
- q(1721),
+ q(1718),
q(0),
],
q(tabasco nahuatl) => [
- q(4862),
+ q(4855),
q(0),
],
q(tabasco zoque) => [
- q(7911),
+ q(7896),
q(0),
],
q(tabassaran) => [
- q(6359),
+ q(6348),
q(0),
],
q(tabla) => [
- q(6621),
+ q(6606),
q(0),
],
q(tabo) => [
- q(3500),
+ q(3497),
q(0),
],
q(tabriak) => [
- q(6851),
+ q(6835),
q(0),
],
q(tacahua mixtec) => [
- q(7524),
+ q(7509),
q(0),
],
q(tacana) => [
- q(6611),
+ q(6597),
q(0),
],
q(tachawit) => [
- q(6032),
+ q(6023),
q(0),
],
q(tachelhit) => [
- q(6017),
+ q(6008),
q(0),
],
q(tachoni) => [
- q(4075),
+ q(4067),
q(0),
],
q(tadaksahak) => [
- q(2155),
+ q(2149),
+ q(0),
+ ],
+ q(tado) => [
+ q(3448),
q(0),
],
q(tadyawan) => [
- q(6449),
+ q(6438),
q(0),
],
q(tae') => [
- q(5837),
+ q(5826),
q(0),
],
q(tafi) => [
- q(6408),
+ q(6397),
q(0),
],
q(tagabawa) => [
@@ -52046,71 +52071,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tagakaulo) => [
- q(3435),
+ q(3432),
q(0),
],
q(tagal murut) => [
- q(4620),
+ q(4613),
q(0),
],
q(tagalaka) => [
- q(6496),
+ q(6485),
q(0),
],
q(tagalog) => [
- q(0425),
+ q(0426),
q(0),
],
q(tagargrent) => [
- q(5334),
+ q(5329),
q(0),
],
q(tagbanwa) => [
- q(6401),
+ q(6390),
q(0),
],
q(tagbu) => [
- q(6392),
+ q(6381),
q(0),
],
q(tagdal) => [
- q(6428),
+ q(6417),
q(0),
],
q(tagin) => [
- q(6483),
+ q(6472),
q(0),
],
q(tagish) => [
- q(6494),
+ q(6483),
q(0),
],
q(tagoi) => [
- q(6364),
+ q(6353),
q(0),
],
q(tagwana senoufo) => [
- q(6493),
+ q(6482),
q(0),
],
q(tahaggart tamahaq) => [
- q(6513),
+ q(6501),
q(0),
],
q(tahitian) => [
- q(0416),
+ q(0417),
q(0),
],
q(tahltan) => [
- q(6511),
+ q(6499),
q(0),
],
q(tai) => [
- q(6376),
+ q(6365),
q(0),
],
q(tai daeng) => [
- q(6838),
+ q(6822),
q(0),
],
q(tai dam) => [
@@ -52118,139 +52143,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tai do) => [
- q(6834),
+ q(6818),
q(0),
],
q(tai don) => [
- q(6799),
- q(0),
- ],
- q(tai hang tong) => [
- q(6497),
+ q(6783),
q(0),
],
q(tai hongjin) => [
- q(6537),
+ q(6524),
q(0),
],
q(tai laing) => [
- q(6541),
+ q(6528),
q(0),
],
q(tai languages) => [
- q(0417),
+ q(0418),
q(0),
],
q(tai loi) => [
- q(6579),
+ q(6566),
q(0),
],
q(tai long) => [
- q(6502),
- q(0),
- ],
- q(tai mene) => [
- q(6601),
+ q(6490),
q(0),
],
q(tai nua) => [
- q(6431),
+ q(6420),
q(0),
],
q(tai pao) => [
- q(6666),
+ q(6650),
q(0),
],
q(tai thanh) => [
- q(6598),
+ q(6585),
q(0),
],
q(tai ya) => [
- q(1918),
+ q(1912),
q(0),
],
+ q(tai yo) => [
+ q(6818),
+ q(1),
+ ],
q(taiap) => [
- q(2608),
+ q(2606),
q(0),
],
q(taikat) => [
- q(0829),
+ q(0830),
q(0),
],
q(tainae) => [
- q(0666),
+ q(0667),
q(0),
],
q(taino) => [
- q(6625),
+ q(6610),
q(0),
],
q(tairaha) => [
- q(1567),
+ q(1566),
q(0),
],
q(tairuma) => [
- q(6854),
+ q(6838),
q(0),
],
q(taita) => [
- q(1952),
+ q(1946),
q(0),
],
q(taiwan sign language) => [
- q(6727),
+ q(6711),
q(0),
],
q(taje) => [
- q(5407),
+ q(5403),
q(0),
],
q(tajik) => [
- q(0424),
+ q(0425),
q(0),
],
q(tajiki arabic) => [
- q(0566),
+ q(0567),
q(0),
],
q(tajio) => [
- q(6437),
+ q(6426),
q(0),
],
q(tajuasohn) => [
- q(6538),
+ q(6525),
q(0),
],
q(takelma) => [
- q(6554),
+ q(6541),
q(0),
],
q(takestani) => [
- q(6559),
+ q(6546),
q(0),
],
q(takia) => [
- q(6382),
+ q(6371),
q(0),
],
q(takua) => [
- q(6565),
+ q(6552),
q(0),
],
q(takuu) => [
- q(4872),
+ q(4865),
q(0),
],
q(takwane) => [
- q(6551),
+ q(6538),
q(0),
],
q(tal) => [
- q(6367),
+ q(6356),
q(0),
],
q(tala) => [
- q(6366),
+ q(6355),
q(0),
],
q(talaandig) => [
@@ -52258,431 +52279,431 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(talaud) => [
- q(6569),
+ q(6556),
q(0),
],
q(taliabu) => [
- q(6584),
+ q(6571),
q(0),
],
q(talieng) => [
- q(6433),
+ q(6422),
q(0),
],
q(talinga-bwisi) => [
- q(6572),
+ q(6559),
q(0),
],
q(talise) => [
- q(6580),
+ q(6567),
q(0),
],
q(talodi) => [
- q(6577),
+ q(6564),
q(0),
],
q(taloki) => [
- q(6573),
+ q(6560),
q(0),
],
q(talondo') => [
- q(6576),
+ q(6563),
q(0),
],
q(talossan) => [
- q(6847),
+ q(6831),
q(0),
],
q(talu) => [
- q(7757),
+ q(7742),
q(0),
],
q(talysh) => [
- q(6586),
+ q(6573),
q(0),
],
q(tama (chad)) => [
- q(6587),
+ q(6574),
q(0),
],
q(tama (colombia)) => [
- q(6460),
+ q(6449),
q(0),
],
q(tamagario) => [
- q(6411),
+ q(6400),
q(0),
],
q(taman (indonesia)) => [
- q(6599),
+ q(6586),
q(0),
],
q(taman (myanmar)) => [
- q(6415),
+ q(6404),
q(0),
],
q(tamanaku) => [
- q(6610),
+ q(6596),
q(0),
],
q(tamashek) => [
- q(0434),
+ q(0435),
q(0),
],
q(tamasheq) => [
- q(6371),
+ q(6360),
q(0),
],
q(tamazola mixtec) => [
- q(7038),
+ q(7023),
q(0),
],
q(tambas) => [
- q(6438),
+ q(6427),
q(0),
],
q(tambora) => [
- q(7564),
+ q(7549),
q(0),
],
q(tambotalo) => [
- q(6581),
- q(0),
- ],
- q(tambunan dusun) => [
- q(3786),
+ q(6568),
q(0),
],
q(tami) => [
- q(6609),
+ q(6595),
q(0),
],
q(tamil) => [
- q(0418),
+ q(0419),
q(0),
],
q(tamki) => [
- q(6377),
+ q(6366),
q(0),
],
q(tamnim citak) => [
- q(6597),
+ q(6584),
q(0),
],
q(tampias lobu) => [
- q(4034),
+ q(4025),
q(0),
],
q(tampuan) => [
- q(6671),
+ q(6655),
q(0),
],
q(tampulma) => [
- q(6664),
+ q(6648),
q(0),
],
q(tanacross) => [
- q(6406),
+ q(6395),
q(0),
],
q(tanahmerah) => [
- q(6416),
+ q(6405),
q(0),
],
q(tanaina) => [
- q(6471),
+ q(6460),
q(0),
],
q(tanapag) => [
- q(6672),
+ q(6656),
q(0),
],
q(tandaganon) => [
- q(6484),
+ q(6473),
q(0),
],
q(tandia) => [
- q(6618),
+ q(6603),
q(0),
],
q(tandroy-mahafaly malagasy) => [
- q(6448),
+ q(6437),
q(0),
],
q(tanema) => [
- q(6632),
+ q(6617),
q(0),
],
q(tangale) => [
- q(6368),
+ q(6357),
q(0),
],
q(tangchangya) => [
- q(6630),
+ q(6615),
q(0),
],
q(tanggu) => [
- q(6491),
+ q(6480),
q(0),
],
q(tangkhul naga (india)) => [
- q(4967),
+ q(4960),
q(0),
],
q(tangkhul naga (myanmar)) => [
- q(5101),
+ q(5096),
q(0),
],
q(tangko) => [
- q(6564),
+ q(6551),
q(0),
],
q(tanglang) => [
- q(7758),
+ q(7743),
q(0),
],
q(tangoa) => [
- q(6486),
+ q(6475),
q(0),
],
q(tanguat) => [
- q(6397),
+ q(6386),
q(0),
],
q(tangut) => [
- q(6816),
+ q(6800),
q(0),
],
q(tanimbili) => [
- q(6384),
+ q(6373),
q(0),
],
q(tanimuca-retuara) => [
- q(6613),
+ q(6599),
q(0),
],
q(tanjijili) => [
- q(6879),
+ q(6863),
q(0),
],
q(tankarana malagasy) => [
- q(7427),
+ q(7412),
q(1),
],
q(tanosy malagasy) => [
- q(6829),
+ q(6813),
q(0),
],
q(tanudan kalinga) => [
- q(3465),
+ q(3462),
q(0),
],
q(tanzanian sign language) => [
- q(6844),
+ q(6828),
q(0),
],
q(tapeba) => [
- q(6381),
+ q(6370),
q(0),
],
q(tapei) => [
- q(0647),
+ q(0648),
q(0),
],
q(tapiete) => [
- q(6661),
+ q(6645),
q(0),
],
q(tapirape) => [
- q(6363),
+ q(6352),
q(0),
],
q(tarao naga) => [
- q(6701),
+ q(6685),
q(0),
],
q(tareng) => [
- q(6488),
+ q(6477),
q(0),
],
q(tariana) => [
- q(6362),
+ q(6351),
q(0),
],
q(tarifit) => [
- q(5788),
+ q(5778),
q(0),
],
q(tarjumo) => [
- q(6819),
+ q(6803),
q(0),
],
q(tarok) => [
- q(7627),
+ q(7612),
q(0),
],
q(taroko) => [
- q(6708),
+ q(6692),
q(0),
],
q(tarpia) => [
- q(6659),
+ q(6643),
q(0),
],
q(tartessian) => [
- q(6824),
+ q(6808),
+ q(0),
+ ],
+ q(taruma) => [
+ q(6429),
q(0),
],
q(tasawaq) => [
- q(6805),
+ q(6789),
q(0),
],
q(tase naga) => [
- q(5082),
+ q(5077),
q(0),
],
q(tasmanian) => [
- q(7529),
+ q(7514),
q(0),
],
q(tasmate) => [
- q(6605),
+ q(6591),
q(0),
],
q(tataltepec chatino) => [
- q(1888),
+ q(1883),
q(0),
],
q(tatana) => [
- q(6828),
+ q(6812),
q(0),
],
q(tatar) => [
- q(0419),
+ q(0420),
q(0),
],
q(tatuyo) => [
- q(6375),
+ q(6364),
q(0),
],
q(tauade) => [
- q(6738),
+ q(6722),
q(0),
],
q(taulil) => [
- q(6767),
+ q(6751),
q(0),
],
q(taungyo) => [
- q(6418),
+ q(6407),
q(0),
],
q(taupota) => [
- q(6656),
+ q(6640),
q(0),
],
q(tause) => [
- q(6361),
+ q(6350),
q(0),
],
q(taushiro) => [
- q(6704),
+ q(6688),
q(0),
],
q(tausug) => [
- q(6718),
+ q(6702),
q(0),
],
q(tauya) => [
- q(6830),
+ q(6814),
q(0),
],
q(taveta) => [
- q(6787),
+ q(6771),
q(0),
],
q(tavoyan) => [
- q(6785),
+ q(6769),
q(0),
],
q(tavringer romani) => [
- q(5823),
+ q(5813),
q(0),
],
q(tawala) => [
- q(6394),
+ q(6383),
q(0),
],
q(tawallammat tamajaq) => [
- q(6751),
+ q(6735),
q(0),
],
q(tawande) => [
- q(7527),
+ q(7512),
q(0),
],
q(tawang monpa) => [
- q(6801),
+ q(6785),
q(0),
],
q(tawara) => [
- q(6800),
+ q(6784),
q(0),
],
q(taworta) => [
- q(6395),
+ q(6384),
q(0),
],
q(tawoyan) => [
- q(6811),
+ q(6795),
q(0),
],
q(tawr chin) => [
- q(6419),
+ q(6408),
q(0),
],
q(tay) => [
- q(6843),
+ q(6827),
q(0),
],
q(tay boi) => [
- q(6373),
+ q(6362),
q(0),
],
q(tay khang) => [
- q(6629),
+ q(6614),
q(0),
],
q(tay sa pa) => [
- q(6839),
+ q(6823),
q(0),
],
q(tay tac) => [
- q(6840),
+ q(6824),
q(0),
],
q(tayabas ayta) => [
- q(1010),
+ q(1011),
q(0),
],
q(tayart tamajeq) => [
- q(6516),
+ q(6504),
q(0),
],
q(tayo) => [
- q(1762),
+ q(1759),
q(0),
],
q(taznatit) => [
- q(2623),
+ q(2621),
q(0),
],
q(tboli) => [
- q(6391),
+ q(6380),
q(0),
],
q(tchitchege) => [
- q(6414),
+ q(6403),
q(0),
],
q(tchumbuli) => [
@@ -52690,507 +52711,507 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(te'un) => [
- q(6782),
+ q(6766),
q(0),
],
q(teanu) => [
- q(6563),
+ q(6550),
q(0),
],
q(tebi) => [
- q(2094),
+ q(2088),
q(1),
],
q(tebul sign language) => [
- q(6733),
+ q(6717),
q(0),
],
q(tebul ure dogon) => [
- q(2168),
+ q(2163),
q(0),
],
q(tecpatlan totonac) => [
- q(6424),
+ q(6413),
q(0),
],
q(tedaga) => [
- q(6773),
+ q(6757),
q(0),
],
q(tedim chin) => [
- q(1890),
+ q(1885),
q(0),
],
q(tee) => [
- q(6557),
+ q(6544),
q(0),
],
q(teen) => [
- q(4029),
+ q(4020),
q(0),
],
q(tefaro) => [
- q(6472),
+ q(6461),
q(0),
],
q(tegali) => [
- q(5750),
+ q(5741),
q(0),
],
q(tehit) => [
- q(3540),
+ q(3536),
q(0),
],
q(tehuelche) => [
- q(6457),
+ q(6446),
q(0),
],
q(tejalapan zapotec) => [
- q(7961),
+ q(7946),
q(0),
],
q(teke-ebo) => [
- q(2215),
+ q(2211),
q(0),
],
q(teke-fuumu) => [
- q(2917),
+ q(2914),
q(0),
],
q(teke-kukuya) => [
- q(3425),
+ q(3422),
q(0),
],
q(teke-laali) => [
- q(3964),
+ q(3955),
q(0),
],
q(teke-nzikou) => [
- q(5182),
+ q(5177),
q(0),
],
q(teke-tege) => [
- q(6456),
+ q(6445),
q(0),
],
q(teke-tsaayi) => [
- q(6833),
+ q(6817),
q(0),
],
q(teke-tyee) => [
- q(6842),
+ q(6826),
q(0),
],
q(tektiteko) => [
- q(6737),
+ q(6721),
q(0),
],
q(tela-masbuar) => [
- q(6784),
+ q(6768),
q(0),
],
q(telefol) => [
- q(6570),
+ q(6557),
q(0),
],
q(telugu) => [
- q(0420),
+ q(0421),
q(0),
],
q(teluti) => [
- q(6582),
- q(0),
+ q(6569),
+ q(1),
],
q(tem) => [
- q(3241),
+ q(3240),
q(0),
],
q(temacine tamazight) => [
- q(6544),
+ q(6531),
q(0),
],
q(temascaltepec nahuatl) => [
- q(4878),
+ q(4871),
q(0),
],
q(tembe) => [
- q(6677),
+ q(6661),
q(0),
],
q(tembo (kitembo)) => [
- q(6398),
+ q(6387),
q(0),
],
q(tembo (motembo)) => [
- q(6607),
+ q(6593),
q(0),
],
q(teme) => [
- q(6441),
+ q(6431),
q(0),
],
q(temein) => [
- q(6463),
+ q(6452),
q(0),
],
q(temi) => [
- q(6177),
+ q(6166),
q(0),
],
q(temiar) => [
- q(6450),
+ q(6439),
q(0),
],
q(temoaya otomi) => [
- q(5328),
+ q(5323),
q(0),
],
q(temoq) => [
- q(6600),
+ q(6587),
q(0),
],
- q(tempasuk dusun) => [
- q(6446),
+ q(temuan) => [
+ q(6594),
q(0),
],
- q(temuan) => [
- q(6608),
+ q(ten'edn) => [
+ q(6619),
q(0),
],
q(tena) => [
- q(1140),
+ q(1141),
q(1),
],
q(tena lowland quichua) => [
- q(5696),
+ q(5687),
q(0),
],
q(tenango otomi) => [
- q(5324),
+ q(5319),
q(0),
],
q(tene kan dogon) => [
- q(2161),
+ q(2155),
q(0),
],
q(tenggarong kutai malay) => [
- q(7014),
+ q(6999),
q(0),
],
q(tengger) => [
- q(6464),
+ q(6453),
q(0),
],
q(tenharim) => [
- q(5351),
+ q(5347),
q(0),
],
q(tenino) => [
- q(6680),
+ q(6664),
q(0),
],
q(tenis) => [
- q(6627),
+ q(6612),
q(0),
],
q(tennet) => [
- q(6468),
+ q(6457),
q(0),
],
q(teop) => [
- q(6528),
+ q(6515),
q(0),
],
q(teor) => [
- q(6466),
+ q(6455),
q(0),
],
q(tepecano) => [
- q(6462),
+ q(6451),
q(0),
],
q(tepetotutla chinantec) => [
- q(1805),
+ q(1802),
q(0),
],
q(tepeuxila cuicatec) => [
- q(1921),
+ q(1915),
q(0),
],
q(tepinapa chinantec) => [
- q(1891),
+ q(1886),
q(0),
],
q(tepo krumen) => [
- q(6453),
+ q(6442),
q(0),
],
q(ter sami) => [
- q(6068),
+ q(6059),
q(0),
],
q(tera) => [
- q(6752),
+ q(6736),
q(0),
],
q(terebu) => [
- q(6689),
+ q(6673),
q(0),
],
q(terei) => [
- q(1506),
+ q(1505),
q(0),
],
q(tereno) => [
- q(0422),
+ q(0423),
q(0),
],
q(teressa) => [
- q(6455),
+ q(6444),
q(0),
],
q(tereweng) => [
- q(6798),
+ q(6782),
q(0),
],
q(teribe) => [
- q(6473),
+ q(6462),
q(0),
],
q(terik) => [
- q(6452),
+ q(6441),
q(0),
],
q(termanu) => [
- q(6808),
+ q(6792),
q(0),
],
q(ternate) => [
- q(6474),
+ q(6463),
q(0),
],
q(ternateno) => [
- q(6593),
+ q(6580),
q(0),
],
q(tesaka malagasy) => [
- q(6553),
+ q(6540),
q(0),
],
q(tese) => [
- q(3263),
+ q(3262),
q(0),
],
q(teshenawa) => [
- q(6794),
+ q(6778),
q(0),
],
q(teso) => [
- q(6461),
+ q(6450),
q(0),
],
q(tetela) => [
- q(6574),
+ q(6561),
q(0),
],
q(tetelcingo nahuatl) => [
- q(4866),
+ q(4859),
q(0),
],
q(tetete) => [
- q(6451),
+ q(6440),
q(0),
],
q(tetum) => [
- q(0423),
+ q(0424),
q(0),
],
q(tetun dili) => [
- q(6445),
+ q(6435),
q(0),
],
q(teutila cuicatec) => [
- q(1917),
+ q(1911),
q(0),
],
q(tewa (indonesia)) => [
- q(6796),
+ q(6780),
q(0),
],
q(tewa (usa)) => [
- q(6467),
+ q(6456),
q(0),
],
q(tewe) => [
- q(6810),
+ q(6794),
q(0),
],
q(texcatepec otomi) => [
- q(5331),
+ q(5326),
q(0),
],
q(texistepec popoluca) => [
- q(5565),
+ q(5560),
q(0),
],
q(texmelucan zapotec) => [
- q(7939),
+ q(7924),
q(0),
],
q(tezoatlan mixtec) => [
- q(4648),
+ q(4641),
q(0),
],
q(tha) => [
- q(6515),
+ q(6503),
q(0),
],
q(thachanadan) => [
- q(6506),
+ q(6494),
q(0),
],
q(thado chin) => [
- q(6427),
+ q(6416),
q(0),
],
q(thai) => [
- q(0426),
+ q(0427),
q(0),
],
q(thai sign language) => [
- q(6725),
+ q(6709),
q(0),
],
q(thai song) => [
- q(6157),
+ q(6146),
q(0),
],
q(thaiphum chin) => [
- q(1893),
+ q(1888),
q(0),
],
q(thakali) => [
- q(6510),
+ q(6498),
q(0),
],
q(thangal naga) => [
- q(4930),
+ q(4923),
q(0),
],
q(thangmi) => [
- q(6500),
+ q(6488),
q(0),
],
q(thao) => [
- q(6234),
+ q(6223),
q(0),
],
q(tharaka) => [
- q(6503),
+ q(6491),
q(0),
],
q(thawa) => [
- q(7526),
+ q(7511),
q(0),
],
q(thayore) => [
- q(6498),
+ q(6486),
q(0),
],
q(thaypan) => [
- q(6837),
+ q(6821),
q(0),
],
q(thiin) => [
- q(2933),
+ q(2930),
q(0),
],
q(tho) => [
- q(6650),
+ q(6634),
q(0),
],
q(thompson) => [
- q(6507),
+ q(6495),
q(0),
],
q(thopho) => [
- q(7759),
+ q(7744),
q(0),
],
q(thracian) => [
- q(6817),
+ q(6801),
q(0),
],
q(thu lao) => [
- q(6835),
+ q(6819),
q(0),
],
q(thudam) => [
- q(6514),
+ q(6502),
q(0),
],
q(thulung) => [
- q(6435),
+ q(6424),
+ q(0),
+ ],
+ q(thur) => [
+ q(4063),
q(0),
],
q(thurawal) => [
- q(6387),
+ q(6376),
q(0),
],
q(thuri) => [
- q(6512),
+ q(6500),
q(0),
],
q(tiagbamrin aizi) => [
- q(0681),
+ q(0682),
q(0),
],
q(tiale) => [
- q(4424),
+ q(4417),
q(0),
],
q(tiang) => [
- q(6389),
+ q(6378),
q(0),
],
q(tibea) => [
- q(4858),
+ q(4851),
q(0),
],
q(tibetan) => [
- q(0427),
+ q(0428),
q(0),
],
q(tibeto-burman languages) => [
- q(0527),
+ q(0528),
q(0),
],
q(tichurong) => [
- q(6417),
+ q(6406),
q(0),
],
q(ticuna) => [
- q(6405),
+ q(6394),
q(0),
],
q(tidaa mixtec) => [
- q(4578),
+ q(4571),
q(0),
],
q(tidikelt tamazight) => [
- q(6517),
- q(0),
- ],
- q(tidong) => [
- q(6519),
+ q(6505),
q(0),
],
q(tidore) => [
- q(6786),
+ q(6770),
q(0),
],
q(tiefo) => [
- q(6530),
+ q(6517),
q(0),
],
q(tiemacewe bozo) => [
@@ -53198,7 +53219,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tiene) => [
- q(6522),
+ q(6509),
q(0),
],
q(tieyaxo bozo) => [
@@ -53206,747 +53227,735 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tifal) => [
- q(6520),
+ q(6507),
q(0),
],
q(tigak) => [
- q(6477),
+ q(6466),
q(0),
],
q(tigon mbembe) => [
- q(5177),
+ q(5172),
q(0),
],
q(tigre) => [
- q(0428),
+ q(0429),
q(0),
],
q(tigrinya) => [
- q(0429),
+ q(0430),
q(0),
],
q(tii) => [
- q(6823),
+ q(6807),
q(0),
],
q(tijaltepec mixtec) => [
- q(7516),
+ q(7501),
q(0),
],
q(tikar) => [
- q(6524),
+ q(6511),
q(0),
],
q(tikopia) => [
- q(6556),
+ q(6543),
q(0),
],
q(tilapa otomi) => [
- q(5322),
+ q(5317),
q(0),
],
q(tillamook) => [
- q(6525),
+ q(6512),
q(0),
],
q(tilquiapan zapotec) => [
- q(7960),
+ q(7945),
q(0),
],
q(tilung) => [
- q(6523),
+ q(6510),
q(0),
],
q(tima) => [
- q(6604),
+ q(6590),
q(0),
],
q(timbe) => [
- q(6526),
+ q(6513),
q(0),
],
q(timbisha) => [
- q(5356),
+ q(5352),
q(1),
],
q(timne) => [
- q(0421),
+ q(0422),
q(0),
],
q(timor pidgin) => [
- q(6791),
+ q(6775),
q(0),
],
q(timucua) => [
- q(6542),
+ q(6529),
q(0),
],
q(timugon murut) => [
- q(6521),
+ q(6508),
q(0),
],
q(tinani) => [
- q(3817),
+ q(3808),
q(0),
],
q(tindi) => [
- q(6527),
+ q(6514),
q(0),
],
q(tingui-boto) => [
- q(6492),
+ q(6481),
q(0),
],
q(tinigua) => [
- q(6532),
- q(0),
- ],
- q(tinoc kallahan) => [
- q(6615),
+ q(6519),
q(0),
],
q(tinputz) => [
- q(6676),
+ q(6660),
q(0),
],
q(tippera) => [
- q(6658),
+ q(6642),
q(0),
],
q(tira) => [
- q(6518),
+ q(6506),
q(0),
],
q(tirahi) => [
- q(6688),
+ q(6672),
q(0),
],
q(tiranige diga dogon) => [
- q(6432),
+ q(6421),
q(0),
],
q(tiri) => [
- q(1740),
+ q(1737),
q(0),
],
q(tiruray) => [
- q(6536),
+ q(6523),
q(0),
],
q(tita) => [
- q(6442),
+ q(6432),
q(0),
],
q(titan) => [
- q(6756),
+ q(6740),
q(0),
],
q(tiv) => [
- q(0430),
+ q(0431),
q(0),
],
q(tiwa) => [
- q(3810),
+ q(3801),
q(0),
],
q(tiwi) => [
- q(6534),
+ q(6521),
q(0),
],
q(tjurruru) => [
- q(6546),
+ q(6533),
q(0),
],
q(tlachichilco tepehua) => [
- q(6670),
+ q(6654),
q(0),
],
q(tlacoapa me'phaa) => [
- q(6663),
+ q(6647),
q(0),
],
q(tlacoapa tlapanec) => [
- q(6663),
+ q(6647),
q(1),
],
q(tlacoatzintepec chinantec) => [
- q(1894),
+ q(1889),
q(0),
],
q(tlacolulita zapotec) => [
- q(7924),
+ q(7909),
q(0),
],
q(tlahuitoltepec mixe) => [
- q(4662),
+ q(4655),
q(0),
],
q(tlamacazapa nahuatl) => [
- q(5128),
+ q(5123),
q(0),
],
q(tlazoyaltepec mixtec) => [
- q(4487),
+ q(4480),
q(0),
],
q(tlhingan-hol) => [
- q(0432),
+ q(0433),
q(1),
],
q(tlingit) => [
- q(0433),
+ q(0434),
q(0),
],
q(to) => [
- q(6655),
+ q(6639),
q(0),
],
q(to'abaita) => [
- q(4385),
+ q(4378),
q(0),
],
q(toaripi) => [
- q(6681),
+ q(6665),
q(0),
],
q(toba) => [
- q(6635),
+ q(6620),
q(0),
],
q(toba-maskoy) => [
- q(6592),
+ q(6579),
q(0),
],
q(tobagonian creole english) => [
- q(6481),
+ q(6470),
q(0),
],
q(tobanga) => [
- q(6616),
+ q(6601),
q(0),
],
q(tobati) => [
- q(6743),
+ q(6727),
q(0),
],
q(tobelo) => [
- q(6567),
+ q(6554),
q(0),
],
q(tobian) => [
- q(6653),
+ q(6637),
q(0),
],
q(tobilung) => [
- q(6476),
+ q(6465),
q(0),
],
q(tobo) => [
- q(6400),
+ q(6389),
q(0),
],
q(tocantins asurini) => [
- q(0903),
+ q(0904),
q(0),
],
q(tocho) => [
- q(6379),
+ q(6368),
q(0),
],
q(toda) => [
- q(6425),
+ q(6414),
q(0),
],
q(todrah) => [
- q(6443),
+ q(6433),
q(0),
],
q(tofanma) => [
- q(6571),
+ q(6558),
q(0),
],
q(tofin gbe) => [
- q(6470),
+ q(6459),
q(0),
],
q(togbo-vara banda) => [
- q(6648),
+ q(6632),
q(0),
],
q(togoyo) => [
- q(6495),
+ q(6484),
q(0),
],
q(tohono o'odham) => [
- q(5283),
+ q(5278),
q(0),
],
q(tojolabal) => [
- q(6642),
+ q(6626),
q(0),
],
q(tok pisin) => [
- q(0437),
+ q(0438),
q(0),
],
q(tokano) => [
- q(7966),
+ q(7951),
q(0),
],
q(tokelau) => [
- q(0431),
+ q(0432),
q(0),
],
q(tokharian a) => [
- q(7519),
+ q(7504),
q(0),
],
q(tokharian b) => [
- q(6813),
+ q(6797),
q(0),
],
q(toku-no-shima) => [
- q(6555),
+ q(6542),
q(0),
],
q(tol) => [
- q(3093),
+ q(3091),
q(0),
],
q(tolaki) => [
- q(3832),
+ q(3823),
q(0),
],
q(tolomako) => [
- q(6575),
+ q(6562),
q(0),
],
q(tolowa) => [
- q(6643),
+ q(6627),
q(0),
],
q(toma) => [
- q(6637),
+ q(6622),
q(0),
],
q(tomadino) => [
- q(6436),
+ q(6425),
q(0),
],
q(tombelala) => [
- q(6750),
+ q(6734),
q(0),
],
q(tombonuo) => [
- q(6812),
+ q(6796),
q(0),
],
q(tombulu) => [
- q(6644),
- q(0),
- ],
- q(tomedes) => [
- q(6638),
+ q(6628),
q(0),
],
q(tomini) => [
- q(6820),
+ q(6804),
q(0),
],
q(tommo so dogon) => [
- q(2163),
+ q(2158),
q(0),
],
q(tomo kan dogon) => [
- q(2162),
+ q(2156),
q(0),
],
q(tomoip) => [
- q(6682),
+ q(6666),
q(0),
],
q(tondano) => [
- q(6440),
+ q(6430),
q(0),
],
q(tondi songway kiini) => [
- q(6728),
+ q(6712),
q(0),
],
q(tonga) => [
- q(0436),
+ q(0437),
q(1),
],
q(tonga (nyasa)) => [
- q(0435),
- q(0),
- ],
- q(tonga (thailand)) => [
- q(6634),
+ q(0436),
q(0),
],
q(tonga (tonga islands)) => [
- q(0436),
+ q(0437),
q(0),
],
q(tonga (zambia)) => [
- q(6641),
+ q(6625),
q(0),
],
q(tongwe) => [
- q(6633),
+ q(6618),
q(0),
],
q(tonjon) => [
- q(6543),
+ q(6530),
q(0),
],
q(tonkawa) => [
- q(6687),
+ q(6671),
q(0),
],
q(tonsawang) => [
- q(6631),
+ q(6616),
q(0),
],
q(tonsea) => [
- q(6825),
+ q(6809),
q(0),
],
q(tontemboan) => [
- q(6628),
+ q(6613),
q(0),
],
q(tooro) => [
- q(6744),
+ q(6728),
q(0),
],
q(topoiyo) => [
- q(6654),
+ q(6638),
q(0),
],
q(toposa) => [
- q(6647),
+ q(6631),
q(0),
],
q(tora) => [
- q(6712),
+ q(6696),
q(0),
],
q(toraja-sa'dan) => [
- q(5943),
+ q(5934),
q(0),
],
q(toram) => [
- q(6697),
+ q(6681),
q(0),
],
q(torau) => [
- q(6755),
+ q(6739),
q(0),
],
q(tornedalen finnish) => [
- q(2349),
+ q(2346),
q(0),
],
q(toro) => [
- q(6447),
+ q(6436),
q(0),
],
q(toro so dogon) => [
- q(2166),
+ q(2161),
q(0),
],
q(toro tegu dogon) => [
- q(2167),
+ q(2162),
q(0),
],
q(toromono) => [
- q(6623),
+ q(6608),
q(0),
],
q(torona) => [
- q(6684),
+ q(6668),
q(0),
],
q(torres strait creole) => [
- q(6421),
+ q(6410),
q(0),
],
q(torricelli) => [
- q(6458),
+ q(6447),
q(0),
],
q(torwali) => [
- q(6709),
+ q(6693),
q(0),
],
q(tosk albanian) => [
- q(0760),
+ q(0761),
q(0),
],
q(totela) => [
- q(6746),
+ q(6730),
q(0),
],
q(toto) => [
- q(6822),
+ q(6806),
q(0),
],
q(totoli) => [
- q(6815),
+ q(6799),
q(0),
],
q(totomachapan zapotec) => [
- q(7921),
+ q(7906),
q(0),
],
q(totontepec mixe) => [
- q(4569),
+ q(4562),
q(0),
],
q(totoro) => [
- q(6745),
+ q(6729),
q(0),
],
q(touo) => [
- q(6686),
+ q(6670),
q(0),
],
q(toura (cote d'ivoire)) => [
- q(4808),
+ q(4801),
q(0),
],
q(toura (papua new guinea)) => [
- q(2121),
+ q(2115),
q(0),
],
q(towei) => [
- q(6748),
+ q(6732),
q(0),
],
q(trans-new guinea languages) => [
- q(0516),
+ q(0517),
q(0),
],
q(transalpine gaulish) => [
- q(7512),
+ q(7497),
q(0),
],
q(traveller danish) => [
- q(5808),
+ q(5798),
q(0),
],
q(traveller norwegian) => [
- q(5811),
+ q(5801),
q(0),
],
q(traveller scottish) => [
- q(6698),
+ q(6682),
q(0),
],
q(tregami) => [
- q(6699),
+ q(6683),
q(0),
],
q(tremembe) => [
- q(6591),
+ q(6578),
q(0),
],
q(trieng) => [
- q(6259),
+ q(6248),
q(0),
],
q(trimuris) => [
- q(6529),
+ q(6516),
q(0),
],
q(tring) => [
- q(6487),
+ q(6476),
q(0),
],
q(tringgus-sembaan bidayuh) => [
- q(6710),
+ q(6694),
q(0),
],
q(trinidad and tobago sign language) => [
- q(4068),
+ q(4059),
q(0),
],
q(trinidadian creole english) => [
- q(6693),
+ q(6677),
q(0),
],
q(trinitario) => [
- q(6700),
+ q(6684),
q(0),
],
q(trio) => [
- q(6696),
+ q(6680),
q(0),
],
q(truka) => [
- q(6548),
+ q(6535),
q(0),
],
q(trumai) => [
- q(6675),
+ q(6659),
q(0),
],
q(ts'un-lao) => [
- q(6722),
+ q(6706),
q(0),
],
q(tsaangi) => [
- q(6713),
+ q(6697),
q(0),
],
q(tsakhur) => [
- q(6558),
+ q(6545),
q(0),
],
q(tsakonian) => [
- q(6716),
+ q(6700),
q(0),
],
q(tsakwambo) => [
- q(3692),
+ q(3685),
q(0),
],
q(tsamai) => [
- q(6714),
+ q(6698),
q(0),
],
q(tsat) => [
- q(2865),
+ q(2862),
q(0),
],
q(tsaukambo) => [
- q(3692),
+ q(3685),
q(1),
],
q(tseku) => [
- q(6721),
+ q(6705),
q(0),
],
q(tsetsaut) => [
- q(6814),
+ q(6798),
q(0),
],
q(tshangla) => [
- q(6720),
+ q(6704),
q(0),
],
q(tsikimba) => [
- q(3245),
+ q(3244),
q(0),
],
q(tsimane) => [
- q(1654),
+ q(1653),
q(0),
],
q(tsimihety malagasy) => [
- q(7428),
+ q(7413),
q(0),
],
q(tsimshian) => [
- q(0438),
+ q(0439),
q(0),
],
q(tsishingini) => [
- q(6731),
+ q(6715),
q(0),
],
q(tso) => [
- q(3858),
+ q(3849),
q(0),
],
q(tsoa) => [
- q(2762),
+ q(2759),
q(0),
],
q(tsogo) => [
- q(6730),
+ q(6714),
q(0),
],
q(tsonga) => [
- q(0440),
+ q(0441),
q(0),
],
q(tsotsitaal) => [
- q(2359),
+ q(2356),
q(1),
],
q(tsotso) => [
- q(4074),
+ q(4066),
q(0),
],
q(tsou) => [
- q(6729),
+ q(6713),
q(0),
],
q(tsucuba) => [
- q(1672),
+ q(1669),
q(0),
],
q(tsum) => [
- q(6759),
+ q(6743),
q(0),
],
q(tsuvadi) => [
- q(6781),
+ q(6765),
q(0),
],
q(tsuvan) => [
- q(6719),
+ q(6703),
q(0),
],
q(tswa) => [
- q(6715),
+ q(6699),
q(0),
],
q(tswana) => [
- q(0439),
+ q(0440),
q(0),
],
q(tswapong) => [
- q(6803),
+ q(6787),
q(0),
],
q(tu) => [
- q(4324),
+ q(4317),
q(0),
],
q(tuamotuan) => [
- q(5525),
+ q(5521),
q(0),
],
q(tubar) => [
- q(6399),
+ q(6388),
q(0),
],
q(tubatulabal) => [
- q(6761),
+ q(6745),
q(0),
],
q(tucano) => [
- q(6772),
+ q(6756),
q(0),
],
q(tugen) => [
- q(6778),
+ q(6762),
q(0),
],
q(tugun) => [
- q(6849),
+ q(6833),
q(0),
],
q(tugutil) => [
- q(6769),
+ q(6753),
q(0),
],
q(tukang besi north) => [
- q(3334),
+ q(3331),
q(0),
],
q(tukang besi south) => [
@@ -53954,263 +53963,263 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tuki) => [
- q(1027),
+ q(1028),
q(0),
],
q(tukpa) => [
- q(6668),
+ q(6652),
q(0),
],
q(tukudede) => [
- q(6550),
+ q(6537),
q(0),
],
q(tukumanfed) => [
- q(6552),
+ q(6539),
q(0),
],
q(tula) => [
- q(6770),
+ q(6754),
q(0),
],
q(tulehu) => [
- q(6583),
+ q(6570),
q(0),
],
q(tulishi) => [
- q(6469),
+ q(6458),
q(0),
],
q(tulu) => [
- q(6426),
+ q(6415),
q(0),
],
q(tulu-bohuai) => [
- q(5744),
+ q(5735),
q(0),
],
q(tuma-irumu) => [
- q(2981),
+ q(2979),
q(0),
],
q(tumak) => [
- q(6589),
+ q(6576),
q(0),
],
q(tumari kanuri) => [
- q(3588),
+ q(3583),
q(0),
],
q(tumbuka) => [
- q(0442),
+ q(0443),
q(0),
],
q(tumi) => [
- q(3423),
+ q(3420),
q(0),
],
q(tumleo) => [
- q(6602),
+ q(6588),
q(0),
],
q(tumshuqese) => [
- q(7521),
+ q(7506),
q(0),
],
q(tumtum) => [
- q(6396),
+ q(6385),
q(0),
],
q(tumulung sisaala) => [
- q(6043),
+ q(6034),
q(0),
],
q(tumzabt) => [
- q(4695),
+ q(4688),
q(0),
],
q(tundra enets) => [
- q(2269),
+ q(2265),
q(0),
],
q(tunen) => [
- q(6789),
+ q(6773),
q(0),
],
q(tungag) => [
- q(3842),
+ q(3833),
q(0),
],
q(tunggare) => [
- q(6706),
+ q(6690),
q(0),
],
q(tungus languages) => [
- q(0529),
+ q(0530),
q(0),
],
q(tunia) => [
- q(6766),
+ q(6750),
q(0),
],
q(tunica) => [
- q(6771),
+ q(6755),
q(0),
],
q(tunisian arabic) => [
- q(0624),
+ q(0625),
q(0),
],
q(tunisian sign language) => [
- q(6717),
+ q(6701),
q(0),
],
q(tunjung) => [
- q(6539),
+ q(6526),
q(0),
],
q(tunni) => [
- q(6683),
+ q(6667),
q(0),
],
q(tunzu) => [
- q(2207),
+ q(2203),
q(0),
],
q(tuotomb) => [
- q(6740),
+ q(6724),
q(0),
],
q(tupari) => [
- q(6669),
+ q(6653),
q(0),
],
q(tupi) => [
- q(6673),
+ q(6657),
q(0),
],
q(tupi languages) => [
- q(0443),
+ q(0444),
q(0),
],
q(tupinamba) => [
- q(6665),
+ q(6649),
q(0),
],
q(tupinikin) => [
- q(6662),
+ q(6646),
q(0),
],
q(tupuri) => [
- q(6768),
+ q(6752),
q(0),
],
q(turaka) => [
- q(6695),
+ q(6679),
q(0),
],
q(turi) => [
- q(6691),
+ q(6675),
q(0),
],
q(turiwara) => [
- q(6807),
+ q(6791),
q(0),
],
q(turk isaret dili) => [
- q(6723),
+ q(6707),
q(1),
],
q(turka) => [
- q(6779),
+ q(6763),
q(0),
],
q(turkana) => [
- q(6776),
+ q(6760),
q(0),
],
q(turkic khalaj) => [
- q(3438),
+ q(3435),
q(0),
],
q(turkic languages) => [
- q(0528),
+ q(0529),
q(0),
],
q(turkish) => [
- q(0444),
+ q(0445),
q(0),
],
q(turkish sign language) => [
- q(6723),
+ q(6707),
q(0),
],
q(turkish, ottoman (1500-1928)) => [
- q(0332),
+ q(0333),
q(0),
],
q(turkmen) => [
- q(0441),
+ q(0442),
q(0),
],
q(turks and caicos creole english) => [
- q(6412),
+ q(6401),
q(0),
],
q(turoyo) => [
- q(6707),
+ q(6691),
q(0),
],
q(turumsa) => [
- q(6679),
+ q(6663),
q(0),
],
q(turung) => [
- q(6711),
+ q(6695),
q(0),
],
q(tuscarora) => [
- q(6774),
+ q(6758),
q(0),
],
q(tutelo) => [
- q(6735),
+ q(6719),
q(0),
],
q(tutong) => [
- q(6741),
+ q(6725),
q(0),
],
q(tutsa naga) => [
- q(6788),
+ q(6772),
q(0),
],
q(tutuba) => [
- q(6594),
+ q(6581),
q(0),
],
q(tututepec mixtec) => [
- q(4575),
+ q(4568),
q(0),
],
q(tututni) => [
- q(6775),
+ q(6759),
q(0),
],
q(tuvalu) => [
- q(0446),
+ q(0447),
q(0),
],
q(tuvinian) => [
- q(0448),
+ q(0449),
q(0),
],
q(tuwali ifugao) => [
- q(2916),
+ q(2913),
q(0),
],
q(tuwari) => [
- q(6809),
+ q(6793),
q(0),
],
q(tuwuli) => [
@@ -54218,599 +54227,599 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tuxa) => [
- q(6763),
+ q(6747),
q(0),
],
q(tuxinawa) => [
- q(6777),
+ q(6761),
q(0),
],
q(tuyuca) => [
- q(6764),
+ q(6748),
q(0),
],
q(twana) => [
- q(6792),
+ q(6776),
q(0),
],
q(twendi) => [
- q(6802),
+ q(6786),
q(0),
],
q(twents) => [
- q(6795),
+ q(6779),
q(0),
],
q(twi) => [
- q(0447),
+ q(0448),
q(0),
],
q(tyap) => [
- q(3215),
+ q(3214),
q(0),
],
q(tyaraity) => [
- q(7196),
+ q(7182),
q(0),
],
q(tz'utujil) => [
- q(6846),
+ q(6830),
q(0),
],
q(tzeltal) => [
- q(6845),
+ q(6829),
q(0),
],
q(tzotzil) => [
- q(6850),
+ q(6834),
q(0),
],
q(u) => [
- q(6962),
+ q(6947),
q(0),
],
q(uab meto) => [
- q(0833),
+ q(0834),
q(0),
],
q(uamue) => [
- q(6852),
+ q(6836),
q(0),
],
q(uare) => [
- q(3603),
+ q(3598),
q(0),
],
q(ubaghara) => [
- q(1592),
+ q(1591),
q(0),
],
q(ubang) => [
- q(6855),
+ q(6839),
q(0),
],
q(ubi) => [
- q(6856),
+ q(6840),
q(0),
],
q(ubir) => [
- q(6858),
+ q(6842),
q(0),
],
q(ubykh) => [
- q(6860),
+ q(6844),
q(0),
],
q(ucayali-yurua asheninka) => [
- q(1832),
+ q(1828),
q(0),
],
q(uda) => [
- q(6861),
+ q(6845),
q(0),
],
q(udi) => [
- q(6864),
+ q(6848),
q(0),
],
q(udihe) => [
- q(6862),
+ q(6846),
q(0),
],
q(udmurt) => [
- q(0449),
+ q(0450),
q(0),
],
q(uduk) => [
- q(6867),
+ q(6851),
q(0),
],
q(ufim) => [
- q(6869),
+ q(6853),
q(0),
],
q(ugandan sign language) => [
- q(6872),
+ q(6856),
q(0),
],
q(ugaritic) => [
- q(0450),
+ q(0451),
q(0),
],
q(ughele) => [
- q(6871),
+ q(6855),
q(0),
],
q(ugong) => [
- q(6873),
+ q(6857),
q(0),
],
q(uhami) => [
- q(6875),
+ q(6859),
q(0),
],
q(uighur) => [
- q(0451),
+ q(0452),
q(0),
],
q(uisai) => [
- q(6877),
+ q(6861),
q(0),
],
q(ujir) => [
- q(6865),
+ q(6849),
q(0),
],
q(ukaan) => [
- q(3214),
+ q(3213),
q(0),
],
q(ukhwejo) => [
- q(6882),
+ q(6866),
q(0),
],
q(ukit) => [
- q(6906),
+ q(6891),
q(0),
],
q(ukpe-bayobiri) => [
- q(6884),
+ q(6869),
q(0),
],
q(ukpet-ehom) => [
- q(0724),
+ q(0725),
q(0),
],
q(ukrainian) => [
- q(0452),
+ q(0453),
q(0),
],
q(ukrainian sign language) => [
- q(6883),
+ q(6868),
q(0),
],
q(ukue) => [
- q(6887),
+ q(6872),
q(0),
],
q(ukuriguma) => [
- q(6881),
+ q(6865),
q(0),
],
q(ukwa) => [
- q(6885),
+ q(6870),
q(0),
],
q(ukwuani-aboh-ndoni) => [
- q(6888),
+ q(6873),
q(0),
],
q(ulau-suain) => [
- q(6292),
+ q(6281),
q(0),
],
q(ulch) => [
- q(6892),
+ q(6877),
q(0),
],
q(ulithian) => [
- q(6895),
+ q(6880),
q(0),
],
q(ullatan) => [
- q(6897),
+ q(6882),
q(0),
],
q(ulukwumi) => [
- q(6891),
+ q(6876),
q(0),
],
q(ulumanda') => [
- q(6898),
+ q(6883),
q(0),
],
q(ulwa) => [
- q(6901),
+ q(6886),
q(0),
],
q(uma) => [
- q(5575),
+ q(5569),
q(0),
],
q(uma' lasan) => [
- q(7392),
+ q(7377),
q(0),
],
q(uma' lung) => [
- q(6900),
+ q(6885),
q(0),
],
q(umanakaina) => [
- q(2465),
+ q(2463),
q(0),
],
q(umatilla) => [
- q(6902),
+ q(6887),
q(0),
],
q(umbindhamu) => [
- q(6904),
+ q(6889),
q(0),
],
q(umbrian) => [
- q(7536),
+ q(7521),
q(0),
],
q(umbu-ungu) => [
- q(6859),
+ q(6843),
q(0),
],
q(umbugarla) => [
- q(6911),
+ q(6896),
q(0),
],
q(umbundu) => [
- q(0453),
+ q(0454),
q(0),
],
q(umbuygamu) => [
- q(6905),
+ q(6890),
q(0),
],
q(ume sami) => [
- q(6069),
+ q(6060),
q(0),
],
q(umeda) => [
- q(6924),
+ q(6909),
q(0),
],
q(umiida) => [
- q(7532),
+ q(7517),
q(0),
],
q(umiray dumaget agta) => [
- q(2173),
+ q(2168),
q(0),
],
q(umon) => [
- q(6907),
+ q(6892),
q(0),
],
q(umotina) => [
- q(6909),
+ q(6894),
q(0),
],
q(umpila) => [
- q(6910),
+ q(6895),
q(0),
],
q(una) => [
- q(4561),
+ q(4554),
q(0),
],
q(unami) => [
- q(6918),
+ q(6903),
q(0),
],
q(uncoded languages) => [
- q(0281),
+ q(0282),
q(0),
],
q(unde kaili) => [
- q(6923),
+ q(6908),
q(0),
],
q(undetermined) => [
- q(0454),
+ q(0455),
q(0),
],
q(uneapa) => [
- q(1051),
+ q(1052),
q(0),
],
q(uneme) => [
- q(6915),
+ q(6900),
q(0),
],
q(unggaranggu) => [
- q(7537),
+ q(7522),
q(0),
],
q(unggumi) => [
- q(7348),
+ q(7335),
q(0),
],
q(ungkue) => [
- q(2542),
+ q(2540),
q(0),
],
q(unserdeutsch) => [
- q(6899),
+ q(6884),
q(0),
],
q(unua) => [
- q(5280),
+ q(5275),
q(0),
],
q(unubahe) => [
- q(6921),
+ q(6906),
q(0),
],
q(upper chehalis) => [
- q(1745),
+ q(1742),
q(0),
],
q(upper grand valley dani) => [
- q(2099),
+ q(2093),
q(0),
],
q(upper guinea crioulo) => [
- q(5568),
+ q(5563),
q(0),
],
q(upper kinabatangan) => [
- q(2087),
+ q(2081),
q(0),
],
q(upper kuskokwim) => [
- q(3661),
+ q(3655),
q(0),
],
q(upper necaxa totonac) => [
- q(6561),
+ q(6548),
q(0),
],
q(upper saxon) => [
- q(6333),
+ q(6321),
q(0),
],
q(upper sorbian) => [
- q(0182),
+ q(0183),
q(0),
],
q(upper ta'oih) => [
- q(6742),
+ q(6726),
q(0),
],
q(upper tanana) => [
- q(6374),
+ q(6363),
q(0),
],
q(upper taromi) => [
- q(6651),
+ q(6635),
q(0),
],
q(upper umpqua) => [
- q(7539),
+ q(7524),
q(0),
],
q(ura (papua new guinea)) => [
- q(6938),
+ q(6923),
q(0),
],
q(ura (vanuatu)) => [
- q(6961),
+ q(6946),
q(0),
],
q(uradhi) => [
- q(6930),
+ q(6915),
q(0),
],
q(urak lawoi') => [
- q(6934),
+ q(6919),
q(0),
],
q(urali) => [
- q(6935),
+ q(6920),
q(0),
],
q(uralic languages) => [
- q(0530),
+ q(0531),
q(0),
],
q(urapmin) => [
- q(6936),
+ q(6921),
q(0),
],
q(urarina) => [
- q(6926),
+ q(6911),
q(0),
],
q(urartian) => [
- q(7540),
+ q(7525),
q(0),
],
q(urat) => [
- q(6941),
+ q(6926),
q(0),
],
q(urdu) => [
- q(0455),
+ q(0456),
q(0),
],
q(urhobo) => [
- q(6932),
+ q(6917),
q(0),
],
q(uri) => [
- q(6964),
+ q(6949),
q(0),
],
q(urigina) => [
- q(6931),
+ q(6916),
q(0),
],
q(urim) => [
- q(6933),
+ q(6918),
q(0),
],
q(urimo) => [
- q(6945),
+ q(6930),
q(0),
],
q(uripiv-wala-rano-atchin) => [
- q(6925),
+ q(6910),
q(0),
],
q(urningangg) => [
- q(6928),
+ q(6913),
q(0),
],
q(uru) => [
- q(6929),
+ q(6914),
q(0),
],
q(uru-eu-wau-wau) => [
- q(6947),
+ q(6932),
q(0),
],
q(uru-pa-in) => [
- q(6939),
+ q(6924),
q(0),
],
q(uruangnirin) => [
- q(6937),
+ q(6922),
q(0),
],
q(uruava) => [
- q(6943),
+ q(6928),
q(0),
],
q(urubu-kaapor) => [
- q(6927),
+ q(6912),
q(0),
],
q(urubu-kaapor sign language) => [
- q(6886),
+ q(6871),
q(0),
],
q(uruguayan sign language) => [
- q(6874),
+ q(6858),
q(0),
],
q(urum) => [
- q(6959),
+ q(6944),
q(0),
],
q(urumi) => [
- q(6942),
+ q(6927),
q(0),
],
q(usaghade) => [
- q(6951),
+ q(6936),
q(0),
],
q(usan) => [
- q(7193),
+ q(7179),
q(0),
],
q(usarufa) => [
- q(6948),
+ q(6933),
q(0),
],
q(ushojo) => [
- q(6949),
+ q(6934),
q(0),
],
q(usila chinantec) => [
- q(1905),
+ q(1900),
q(0),
],
q(usku) => [
- q(6894),
+ q(6879),
q(0),
],
q(uspanteco) => [
- q(6952),
+ q(6937),
q(0),
],
q(usui) => [
- q(6950),
+ q(6935),
q(0),
],
q(ut-ma'in) => [
- q(2482),
+ q(2480),
q(0),
],
q(utarmbung) => [
- q(5260),
+ q(5255),
q(0),
],
q(ute-southern paiute) => [
- q(6955),
+ q(6940),
q(0),
],
q(uto-aztecan languages) => [
- q(0493),
+ q(0494),
q(0),
],
q(utu) => [
- q(6958),
+ q(6943),
q(0),
],
q(uvbie) => [
- q(2315),
+ q(2312),
q(0),
],
q(uya) => [
- q(6953),
+ q(6938),
q(0),
],
q(uyajitaya) => [
- q(2179),
+ q(2173),
q(0),
],
q(uyghur) => [
- q(0451),
+ q(0452),
q(1),
],
q(uzbek) => [
- q(0456),
+ q(0457),
q(0),
],
q(uzbeki arabic) => [
- q(0954),
+ q(0955),
q(0),
],
q(uzekwe) => [
- q(2321),
+ q(2318),
q(0),
],
q(v'enen taut) => [
- q(4963),
+ q(4956),
q(1),
],
q(vaagri booli) => [
- q(6970),
+ q(6955),
q(0),
],
q(vaeakau-taumako) => [
- q(5468),
+ q(5465),
q(1),
],
q(vafsi) => [
- q(6972),
+ q(6957),
q(0),
],
q(vaghat-ya-bijim-legeri) => [
@@ -54818,27 +54827,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(vaghri) => [
- q(6995),
+ q(6980),
q(0),
],
q(vaghua) => [
- q(6780),
+ q(6764),
q(0),
],
q(vagla) => [
- q(6973),
+ q(6958),
q(0),
],
q(vai) => [
- q(0457),
+ q(0458),
q(0),
],
q(vaiphei) => [
- q(6980),
+ q(6965),
q(0),
],
q(vale) => [
- q(6971),
+ q(6956),
q(0),
],
q(valencian) => [
@@ -54846,711 +54855,711 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(valencian sign language) => [
- q(7050),
+ q(7035),
q(0),
],
q(valle nacional chinantec) => [
- q(1923),
+ q(1917),
q(0),
],
q(valley maidu) => [
- q(7036),
+ q(7021),
q(0),
],
q(valman) => [
- q(6978),
+ q(6963),
q(0),
],
q(valpei) => [
- q(7016),
+ q(7001),
q(0),
],
q(vamale) => [
- q(4361),
+ q(4354),
q(0),
],
q(vame) => [
- q(4383),
+ q(4376),
q(0),
],
q(vandalic) => [
- q(7545),
+ q(7530),
q(0),
],
q(vangunu) => [
- q(4472),
+ q(4465),
q(0),
],
q(vanimo) => [
- q(6977),
+ q(6962),
q(0),
],
q(vano) => [
- q(7041),
+ q(7026),
q(0),
],
q(vanuma) => [
- q(6983),
+ q(6968),
q(0),
],
q(vao) => [
- q(6979),
+ q(6964),
q(0),
],
q(varhadi-nagpuri) => [
- q(6974),
+ q(6959),
q(0),
],
q(varisi) => [
- q(7046),
+ q(7031),
q(0),
],
q(varli) => [
- q(6984),
+ q(6969),
q(0),
],
q(vasavi) => [
- q(6982),
+ q(6967),
q(0),
],
q(vasekele) => [
- q(6975),
- q(3),
+ q(6960),
+ q(2),
],
q(veddah) => [
- q(6989),
+ q(6974),
q(0),
],
q(vehes) => [
- q(6976),
+ q(6961),
q(0),
],
q(veluws) => [
- q(6990),
+ q(6975),
q(0),
],
q(vemgo-mabas) => [
- q(6991),
+ q(6976),
q(0),
],
q(venda) => [
- q(0458),
+ q(0459),
q(0),
],
q(venetian) => [
- q(6988),
+ q(6973),
q(0),
],
q(venetic) => [
- q(7543),
+ q(7528),
q(0),
],
q(venezuelan sign language) => [
- q(7049),
+ q(7034),
q(0),
],
q(vengo) => [
- q(1034),
+ q(1035),
q(0),
],
q(ventureno) => [
- q(6992),
+ q(6977),
q(0),
],
q(veps) => [
- q(6993),
+ q(6978),
q(0),
],
q(vera'a) => [
- q(7045),
+ q(7030),
q(0),
],
q(vestinian) => [
- q(7547),
+ q(7532),
q(0),
],
q(vidunda) => [
- q(6998),
+ q(6983),
q(0),
],
q(viemo) => [
- q(7000),
+ q(6985),
q(0),
],
q(vietnamese) => [
- q(0459),
+ q(0460),
q(0),
],
q(viid) => [
- q(6151),
+ q(6140),
q(1),
],
q(vilela) => [
- q(7001),
+ q(6986),
q(0),
],
q(vili) => [
- q(6999),
+ q(6984),
q(0),
],
q(villa viciosa agta) => [
- q(2201),
+ q(2197),
q(0),
],
q(vincentian creole english) => [
- q(6293),
+ q(6282),
q(0),
],
q(vinmavis) => [
- q(7042),
+ q(7027),
q(0),
],
q(vinza) => [
- q(7002),
+ q(6987),
q(0),
],
q(virgin islands creole english) => [
- q(6997),
+ q(6982),
q(0),
],
q(vishavan) => [
- q(7003),
+ q(6988),
q(0),
],
q(viti) => [
- q(7004),
+ q(6989),
q(0),
],
q(vitou) => [
- q(7051),
+ q(7036),
q(0),
],
q(vitu) => [
- q(7141),
+ q(7127),
q(0),
],
q(vlaams) => [
- q(7017),
+ q(7002),
q(0),
],
q(vlaamse gebarentaal) => [
- q(6996),
+ q(6981),
q(0),
],
q(vlax romani) => [
- q(5827),
+ q(5817),
q(0),
],
q(volapuk) => [
- q(0460),
+ q(0461),
q(0),
],
q(volscian) => [
- q(7546),
+ q(7531),
q(0),
],
q(vono) => [
- q(3216),
+ q(3215),
q(0),
],
q(voro) => [
- q(7044),
+ q(7029),
q(0),
],
q(votic) => [
- q(0461),
+ q(0462),
q(0),
],
q(vumbu) => [
- q(7052),
+ q(7037),
q(0),
],
q(vunapu) => [
- q(7043),
+ q(7028),
q(0),
],
q(vunjo) => [
- q(7053),
+ q(7038),
q(0),
],
q(vure) => [
- q(3949),
+ q(3940),
q(1),
],
q(vures) => [
- q(4543),
+ q(4536),
q(0),
],
q(vute) => [
- q(7054),
+ q(7039),
q(0),
],
q(vwanji) => [
- q(7082),
+ q(7067),
q(0),
],
q(wa) => [
- q(7086),
+ q(7071),
q(0),
],
q(wa'ema) => [
- q(7062),
+ q(7047),
q(0),
],
q(waama) => [
- q(7259),
+ q(7246),
q(0),
],
q(waamwang) => [
- q(7176),
+ q(7162),
q(0),
],
q(waata) => [
- q(6242),
+ q(6231),
q(0),
],
q(wab) => [
- q(7057),
+ q(7042),
q(0),
],
q(wabo) => [
- q(7079),
+ q(7064),
q(0),
],
q(waboda) => [
- q(3477),
+ q(3474),
q(0),
],
q(waci gbe) => [
- q(7094),
+ q(7080),
q(0),
],
q(wadaginam) => [
- q(7096),
+ q(7082),
q(0),
],
q(waddar) => [
- q(7088),
+ q(7073),
q(0),
],
q(wadi wadi) => [
- q(7550),
+ q(7535),
q(0),
],
q(wadikali) => [
- q(7098),
+ q(7084),
q(0),
],
q(wadiyara koli) => [
- q(3731),
+ q(3724),
q(0),
],
q(wadjabangayi) => [
- q(7100),
+ q(7086),
q(0),
],
q(wadjiginy) => [
- q(7097),
+ q(7083),
q(0),
],
q(wadjigu) => [
- q(7099),
+ q(7085),
q(0),
],
q(wae rana) => [
- q(7230),
+ q(7216),
q(0),
],
q(waffa) => [
- q(7065),
+ q(7050),
q(0),
],
q(wagawaga) => [
- q(7117),
+ q(7103),
q(0),
],
q(wagaya) => [
- q(7116),
+ q(7102),
q(0),
],
q(wagdi) => [
- q(7089),
+ q(7074),
q(0),
],
q(wageman) => [
- q(7070),
+ q(7055),
q(0),
],
q(wagi) => [
- q(2324),
+ q(2321),
q(0),
],
q(wahau kayan) => [
- q(7126),
+ q(7112),
q(0),
],
q(wahau kenyah) => [
- q(7125),
+ q(7111),
q(0),
],
q(wahgi) => [
- q(7119),
+ q(7105),
q(0),
],
q(waigali) => [
- q(7084),
+ q(7069),
q(0),
],
q(waigeo) => [
- q(7120),
+ q(7106),
q(0),
],
q(wailaki) => [
- q(7157),
+ q(7143),
q(0),
],
q(wailapa) => [
- q(7161),
+ q(7147),
q(0),
],
q(waima) => [
- q(5852),
+ q(5841),
q(0),
],
q(waima'a) => [
- q(7173),
+ q(7159),
q(0),
],
q(waimaha) => [
- q(1030),
+ q(1031),
q(0),
],
q(waimiri-atroari) => [
- q(0924),
+ q(0925),
q(0),
],
q(waioli) => [
- q(7156),
+ q(7142),
q(0),
],
q(waiwai) => [
- q(7074),
+ q(7059),
q(0),
],
q(waja) => [
- q(7143),
+ q(7129),
q(0),
],
q(wajarri) => [
- q(7091),
+ q(7077),
q(0),
],
q(wajuk) => [
- q(7553),
+ q(7538),
q(0),
],
q(waka) => [
- q(7073),
+ q(7058),
q(0),
],
q(wakabunga) => [
- q(7260),
+ q(7247),
q(0),
],
q(wakashan languages) => [
- q(0462),
+ q(0463),
q(0),
],
q(wakawaka) => [
- q(7150),
+ q(7136),
q(0),
],
q(wakde) => [
- q(7147),
+ q(7133),
q(0),
],
q(wakhi) => [
- q(7085),
+ q(7070),
q(0),
],
q(wakona) => [
- q(7061),
+ q(7046),
q(0),
],
q(wala) => [
- q(3892),
+ q(3883),
q(0),
],
q(walak) => [
- q(7165),
+ q(7151),
q(0),
],
q(walamo) => [
- q(0463),
+ q(0464),
q(0),
],
q(walangama) => [
- q(4958),
+ q(4951),
q(0),
],
q(wali (ghana)) => [
- q(7166),
+ q(7152),
q(0),
],
q(wali (sudan)) => [
- q(7158),
+ q(7144),
q(0),
],
q(waling) => [
- q(7167),
+ q(7153),
q(0),
],
q(walio) => [
- q(7152),
+ q(7138),
q(0),
],
q(walla walla) => [
- q(7056),
+ q(7041),
q(0),
],
q(wallisian) => [
- q(7162),
+ q(7148),
q(0),
],
q(walloon) => [
- q(0468),
+ q(0469),
q(0),
],
q(walmajarri) => [
- q(7179),
+ q(7165),
q(0),
],
q(walser) => [
- q(7060),
+ q(7045),
q(0),
],
q(walungge) => [
- q(5243),
+ q(5238),
q(0),
],
q(wamas) => [
- q(7170),
+ q(7156),
q(0),
],
q(wambaya) => [
- q(7169),
+ q(7155),
q(0),
],
q(wambon) => [
- q(7178),
+ q(7164),
q(0),
],
q(wambule) => [
- q(7172),
+ q(7158),
q(0),
],
q(wamey) => [
- q(1825),
+ q(1822),
q(0),
],
q(wamin) => [
- q(7174),
+ q(7160),
q(0),
],
q(wampanoag) => [
- q(7066),
+ q(7051),
q(0),
],
q(wampar) => [
- q(3826),
+ q(3817),
q(0),
],
q(wampur) => [
- q(7077),
+ q(7062),
q(0),
],
q(wan) => [
- q(7067),
+ q(7052),
q(0),
],
q(wanambre) => [
- q(7182),
+ q(7168),
q(0),
],
q(wanap) => [
- q(7192),
+ q(7178),
q(0),
],
q(wanbasana) => [
- q(0762),
+ q(0763),
q(1),
],
q(wancho naga) => [
- q(5002),
+ q(4995),
q(0),
],
q(wanda) => [
- q(7081),
+ q(7066),
q(0),
],
q(wandala) => [
- q(4233),
+ q(4225),
q(0),
],
q(wandamen) => [
- q(7059),
+ q(7044),
q(0),
],
q(wandarang) => [
- q(7184),
+ q(7170),
q(0),
],
q(wandji) => [
- q(7095),
+ q(7081),
q(0),
],
q(wane) => [
- q(2880),
+ q(2877),
q(0),
],
q(waneci) => [
- q(7185),
+ q(7171),
q(0),
],
q(wanga) => [
- q(4100),
+ q(4092),
q(0),
],
q(wangaaybuwan-ngiyambaa) => [
- q(7267),
+ q(7254),
q(0),
],
q(wanggamala) => [
- q(7189),
+ q(7175),
q(0),
],
q(wangganguru) => [
- q(7118),
+ q(7104),
q(0),
],
q(wanggom) => [
- q(7186),
+ q(7172),
q(0),
],
q(wangkayutyuru) => [
- q(7151),
+ q(7137),
q(0),
],
q(wangkumara) => [
- q(7554),
+ q(7539),
q(0),
],
q(wanman) => [
- q(7090),
+ q(7076),
q(0),
],
q(wannu) => [
- q(3148),
+ q(3147),
q(0),
],
q(wano) => [
- q(7191),
+ q(7177),
q(0),
],
q(wantoat) => [
- q(7183),
+ q(7169),
q(0),
],
q(wanukaka) => [
- q(7188),
+ q(7174),
q(0),
],
q(wanyi) => [
- q(7195),
+ q(7181),
q(0),
],
q(waorani) => [
- q(0935),
+ q(0936),
q(0),
],
q(wapan) => [
- q(3153),
+ q(3152),
q(0),
],
q(wapha) => [
- q(3163),
+ q(3162),
q(0),
],
q(wapishana) => [
- q(7069),
+ q(7054),
q(0),
],
q(wappo) => [
- q(7068),
+ q(7053),
q(0),
],
q(war-jaintia) => [
- q(0775),
+ q(0776),
q(0),
],
q(wara) => [
- q(6413),
+ q(6402),
q(0),
],
q(warao) => [
- q(7078),
+ q(7063),
q(0),
],
q(warapu) => [
- q(7213),
+ q(7199),
q(0),
],
q(waray) => [
- q(0464),
+ q(0465),
q(0),
],
q(waray (australia)) => [
- q(7232),
+ q(7218),
q(0),
],
q(waray (philippines)) => [
- q(0464),
+ q(0465),
q(1),
],
q(wardaman) => [
- q(7225),
+ q(7211),
q(0),
],
q(wardandi) => [
- q(7265),
+ q(7252),
q(0),
],
q(warduji) => [
- q(7215),
+ q(7201),
q(0),
],
q(warembori) => [
- q(7233),
+ q(7219),
q(0),
],
q(wares) => [
- q(7064),
+ q(7049),
q(0),
],
q(waris) => [
- q(7226),
+ q(7212),
q(0),
],
q(waritai) => [
- q(7080),
+ q(7065),
q(0),
],
q(wariyangga) => [
- q(7218),
+ q(7204),
q(0),
],
q(warji) => [
- q(7144),
+ q(7130),
q(0),
],
q(warkay-bipim) => [
@@ -55558,287 +55567,291 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(warlmanpa) => [
- q(7220),
+ q(7206),
q(0),
],
q(warlpiri) => [
- q(7087),
+ q(7072),
q(0),
],
q(warluwara) => [
- q(7214),
+ q(7200),
q(0),
],
q(warnang) => [
- q(7222),
+ q(7208),
q(0),
],
q(waropen) => [
- q(7224),
+ q(7210),
q(0),
],
q(warrgamay) => [
- q(7122),
+ q(7108),
q(0),
],
q(warrwa) => [
- q(7262),
+ q(7249),
q(0),
],
q(waru) => [
- q(7227),
+ q(7213),
q(0),
],
q(warumungu) => [
- q(7221),
+ q(7207),
q(0),
],
q(waruna) => [
- q(7228),
+ q(7214),
q(0),
],
q(warungu) => [
- q(7216),
+ q(7202),
q(0),
],
q(warwar feni) => [
- q(2840),
+ q(2837),
q(0),
],
q(wasa) => [
- q(7237),
+ q(7224),
q(0),
],
q(wasco-wishram) => [
- q(7058),
+ q(7043),
q(0),
],
q(wasembo) => [
- q(2638),
+ q(2636),
q(0),
],
q(washo) => [
- q(0465),
+ q(0466),
q(0),
],
q(waskia) => [
- q(7235),
+ q(7222),
q(0),
],
q(wasu) => [
- q(7238),
+ q(7225),
q(0),
],
q(watakataui) => [
- q(7243),
+ q(7230),
q(0),
],
q(watam) => [
- q(7075),
+ q(7060),
q(0),
],
q(wathawurrung) => [
- q(7241),
+ q(7228),
q(0),
],
q(watiwa) => [
- q(7240),
+ q(7227),
q(0),
],
q(watubela) => [
- q(7063),
+ q(7048),
q(0),
],
q(waube) => [
- q(3515),
+ q(3512),
q(0),
],
q(waura) => [
- q(7072),
+ q(7057),
q(0),
],
q(wauyai) => [
- q(7258),
+ q(7245),
q(0),
],
q(wawa) => [
- q(7263),
+ q(7250),
q(0),
],
q(wawonii) => [
- q(7210),
+ q(7196),
q(0),
],
q(waxianghua) => [
- q(7264),
+ q(7251),
q(0),
],
q(wayampi) => [
- q(5343),
+ q(5339),
q(0),
],
q(wayana) => [
- q(7076),
+ q(7061),
q(0),
],
q(wayanad chetti) => [
- q(1900),
+ q(1895),
q(0),
],
q(wayoro) => [
- q(7270),
+ q(7257),
q(0),
],
q(wayu) => [
- q(6985),
+ q(6970),
q(0),
],
q(wayuu) => [
- q(2644),
+ q(2642),
q(0),
],
q(we northern) => [
- q(7197),
+ q(7183),
q(0),
],
q(we southern) => [
- q(2694),
+ q(2691),
q(0),
],
q(we western) => [
- q(7102),
+ q(7088),
q(0),
],
q(wedau) => [
- q(7103),
+ q(7089),
q(0),
],
q(weh) => [
- q(7105),
+ q(7091),
q(0),
],
q(wejewa) => [
- q(7114),
+ q(7100),
q(0),
],
q(weliki) => [
- q(3436),
+ q(3433),
q(0),
],
q(welsh) => [
- q(0466),
+ q(0467),
q(0),
],
q(welsh romani) => [
- q(5825),
+ q(5815),
q(0),
],
q(wemale) => [
- q(7108),
+ q(7094),
q(0),
],
q(wemba wemba) => [
- q(7559),
+ q(7544),
q(0),
],
q(weme gbe) => [
- q(7107),
+ q(7093),
q(0),
],
q(wergaia) => [
- q(7104),
+ q(7090),
q(0),
],
q(weri) => [
- q(7110),
+ q(7096),
q(0),
],
q(wersing) => [
- q(3689),
+ q(3682),
q(0),
],
q(west albay bikol) => [
- q(2339),
+ q(2336),
q(0),
],
q(west ambae) => [
- q(4991),
+ q(4984),
+ q(0),
+ ],
+ q(west bengal sign language) => [
+ q(7075),
q(0),
],
q(west berawan) => [
- q(7832),
+ q(7817),
q(0),
],
q(west central banda) => [
- q(1053),
+ q(1054),
q(0),
],
q(west central oromo) => [
- q(2420),
+ q(2418),
q(0),
],
q(west coast bajau) => [
- q(1106),
+ q(1107),
q(0),
],
q(west damar) => [
- q(2141),
+ q(2135),
q(0),
],
q(west germanic languages) => [
- q(0507),
+ q(0508),
q(0),
],
q(west goodenough) => [
- q(1982),
+ q(1976),
q(0),
],
q(west kewa) => [
- q(3279),
+ q(3278),
q(0),
],
q(west lembata) => [
- q(3985),
+ q(3976),
q(0),
],
q(west makian) => [
- q(4498),
+ q(4491),
q(0),
],
q(west masela) => [
- q(4548),
+ q(4541),
q(0),
],
q(west slavic languages) => [
- q(0536),
+ q(0537),
q(0),
],
q(west tarangan) => [
- q(6821),
+ q(6805),
q(0),
],
q(west uvean) => [
- q(6963),
+ q(6948),
q(0),
],
q(west yugur) => [
- q(7601),
+ q(7586),
q(0),
],
q(west-central limba) => [
- q(3910),
+ q(3901),
q(0),
],
q(western abnaki) => [
- q(0563),
+ q(0564),
q(0),
],
q(western apache) => [
- q(0855),
+ q(0856),
q(0),
],
q(western arrarnta) => [
- q(0870),
+ q(0871),
q(0),
],
q(western balochi) => [
@@ -55846,7 +55859,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(western bolivian guarani) => [
- q(2583),
+ q(2581),
q(0),
],
q(western bru) => [
@@ -55854,423 +55867,423 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(western bukidnon manobo) => [
- q(4129),
+ q(4121),
q(0),
],
q(western canadian inuktitut) => [
- q(2947),
+ q(2944),
q(1),
],
q(western cham) => [
- q(1743),
+ q(1740),
q(0),
],
q(western dani) => [
- q(2111),
+ q(2105),
q(0),
],
q(western durango nahuatl) => [
- q(1018),
+ q(1019),
q(0),
],
q(western fijian) => [
- q(7271),
+ q(7258),
q(0),
],
q(western frisian) => [
- q(0142),
- q(0),
- ],
- q(western gurung) => [
- q(2676),
+ q(0143),
q(0),
],
q(western highland chatino) => [
- q(1898),
+ q(1893),
q(0),
],
q(western highland purepecha) => [
- q(5641),
+ q(5633),
q(0),
],
q(western huasteca nahuatl) => [
- q(4879),
+ q(4872),
q(0),
],
q(western juxtlahuaca mixtec) => [
- q(3126),
+ q(3125),
q(0),
],
q(western kanjobal) => [
- q(3488),
+ q(3485),
q(0),
],
q(western karaboro) => [
- q(3768),
+ q(3761),
q(0),
],
q(western katu) => [
- q(3650),
+ q(3644),
q(0),
],
q(western kayah) => [
- q(3762),
+ q(3755),
q(0),
],
q(western keres) => [
- q(3394),
+ q(3391),
q(0),
],
q(western krahn) => [
- q(3590),
+ q(3585),
q(0),
],
q(western lalu) => [
- q(7787),
+ q(7772),
q(0),
],
q(western lawa) => [
- q(3843),
+ q(3834),
q(0),
],
q(western magar) => [
- q(4509),
+ q(4502),
q(0),
],
q(western malayo-polynesian languages) => [
- q(0522),
+ q(0523),
q(0),
],
q(western maninkakan) => [
- q(4382),
+ q(4375),
q(0),
],
q(western mari) => [
- q(4514),
+ q(4507),
q(0),
],
q(western mashan hmong) => [
- q(2797),
+ q(2794),
q(0),
],
q(western mashan miao) => [
- q(2797),
+ q(2794),
q(1),
],
q(western meohang) => [
- q(5740),
+ q(5731),
q(0),
],
q(western muria) => [
- q(4595),
+ q(4588),
q(0),
],
q(western neo-aramaic) => [
- q(0786),
+ q(0787),
q(0),
],
q(western niger fulfulde) => [
- q(2385),
+ q(2383),
q(0),
],
q(western ojibwa) => [
- q(5224),
+ q(5219),
q(0),
],
q(western pahari languages) => [
- q(0176),
+ q(0177),
q(1),
],
q(western panjabi) => [
- q(5531),
+ q(5527),
q(0),
],
q(western parbate kham) => [
- q(3389),
+ q(3386),
q(0),
],
q(western penan) => [
- q(5533),
+ q(5529),
q(0),
],
q(western sisaala) => [
- q(6240),
+ q(6229),
q(0),
],
q(western subanon) => [
- q(6279),
+ q(6268),
q(0),
],
q(western tamang) => [
- q(6434),
+ q(6423),
q(0),
],
q(western tawbuid) => [
- q(6793),
+ q(6777),
+ q(0),
+ ],
+ q(western tlacolula valley zapotec) => [
+ q(7791),
q(0),
],
q(western totonac) => [
- q(6685),
+ q(6669),
q(0),
],
q(western tunebo) => [
- q(6612),
+ q(6598),
q(0),
],
q(western xiangxi miao) => [
- q(4407),
+ q(4400),
q(0),
],
q(western xwla gbe) => [
- q(7555),
+ q(7540),
q(0),
],
q(western yiddish) => [
- q(7648),
+ q(7633),
q(0),
],
q(westphalien) => [
- q(7109),
+ q(7095),
q(0),
],
q(wetamut) => [
- q(7261),
+ q(7248),
q(0),
],
q(wewaw) => [
- q(7101),
+ q(7087),
q(0),
],
q(weyto) => [
- q(7211),
+ q(7197),
q(0),
],
q(white gelao) => [
- q(2528),
+ q(2525),
q(0),
],
q(white lachi) => [
- q(4101),
+ q(4093),
q(0),
],
q(whitesands) => [
- q(6624),
+ q(6609),
q(0),
],
q(wiarumus) => [
- q(6760),
+ q(6744),
q(0),
],
q(wichi lhamtes guisnay) => [
- q(4700),
+ q(4693),
q(0),
],
q(wichi lhamtes nocten) => [
- q(4570),
+ q(4563),
q(0),
],
q(wichi lhamtes vejoz) => [
- q(7164),
+ q(7150),
q(0),
],
q(wichita) => [
- q(7128),
+ q(7114),
q(0),
],
q(wik-epa) => [
- q(7129),
+ q(7115),
q(0),
],
q(wik-iiyanh) => [
- q(7134),
+ q(7120),
q(0),
],
q(wik-keyangan) => [
- q(7130),
+ q(7116),
q(0),
],
q(wik-me'anha) => [
- q(7132),
+ q(7118),
q(0),
],
q(wik-mungkan) => [
- q(7137),
+ q(7123),
q(0),
],
q(wik-ngathana) => [
- q(7131),
+ q(7117),
q(0),
],
q(wikalkan) => [
- q(7135),
+ q(7121),
q(0),
],
q(wikngenchera) => [
- q(7246),
+ q(7233),
q(0),
],
q(wilawila) => [
- q(7136),
+ q(7122),
q(0),
],
q(wintu) => [
- q(7194),
+ q(7180),
q(0),
],
q(winye) => [
- q(3613),
+ q(3608),
q(0),
],
q(wipi) => [
- q(2468),
+ q(2466),
q(0),
],
q(wiradhuri) => [
- q(7217),
+ q(7203),
q(0),
],
q(wirafed) => [
- q(7139),
+ q(7125),
q(0),
],
q(wirangu) => [
- q(7121),
+ q(7107),
q(0),
],
q(wiru) => [
- q(7140),
+ q(7126),
q(0),
],
q(wiyot) => [
- q(7142),
+ q(7128),
q(0),
],
q(woccon) => [
- q(7549),
+ q(7534),
q(0),
],
q(wogamusin) => [
- q(7202),
+ q(7188),
q(0),
],
q(wogeo) => [
- q(7198),
+ q(7184),
q(0),
],
q(woi) => [
- q(7092),
+ q(7078),
q(0),
],
q(woiwurrung) => [
- q(7268),
+ q(7255),
q(0),
],
q(wojenaka) => [
- q(3135),
+ q(3134),
q(0),
],
q(wolaitta) => [
- q(0463),
+ q(0464),
q(2),
],
q(wolane) => [
- q(7154),
+ q(7140),
q(0),
],
q(wolani) => [
- q(7199),
+ q(7185),
q(0),
],
q(wolaytta) => [
- q(0463),
+ q(0464),
q(1),
],
q(woleaian) => [
- q(7200),
+ q(7186),
q(0),
],
q(wolio) => [
- q(7160),
+ q(7146),
q(0),
],
q(wolof) => [
- q(0469),
+ q(0470),
q(0),
],
q(wom (nigeria)) => [
- q(7205),
+ q(7191),
q(0),
],
q(wom (papua new guinea)) => [
- q(7177),
+ q(7163),
q(0),
],
q(womo) => [
- q(7181),
+ q(7167),
q(0),
],
q(wongo) => [
- q(7206),
+ q(7192),
q(0),
],
q(woods cree) => [
- q(1926),
+ q(1920),
q(0),
],
q(woria) => [
- q(7208),
+ q(7194),
q(0),
],
q(worimi) => [
- q(3235),
+ q(3234),
q(0),
],
q(worodougou) => [
- q(3150),
+ q(3149),
q(0),
],
q(worrorra) => [
- q(7223),
+ q(7209),
q(0),
],
q(wotapuri-katarqalai) => [
- q(7239),
+ q(7226),
q(0),
],
q(wotjobaluk) => [
- q(7558),
+ q(7543),
q(0),
],
q(wotu) => [
- q(7245),
+ q(7232),
q(0),
],
q(woun meu) => [
- q(5012),
+ q(5005),
q(0),
],
q(written oirat) => [
- q(7556),
+ q(7541),
q(0),
],
q(wu chinese) => [
- q(7255),
+ q(7242),
q(0),
],
q(wuding-luquan yi) => [
- q(7789),
+ q(7774),
q(0),
],
q(wudu) => [
- q(7248),
+ q(7235),
q(0),
],
q(wuliwuli) => [
- q(7163),
+ q(7149),
q(0),
],
q(wulna) => [
- q(7257),
+ q(7244),
q(0),
],
q(wumboko) => [
@@ -56278,31 +56291,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(wumbvu) => [
- q(7251),
+ q(7238),
q(0),
],
q(wumeng nasu) => [
- q(7792),
+ q(7777),
q(0),
],
q(wunai bunu) => [
- q(1555),
+ q(1554),
q(0),
],
q(wunambal) => [
- q(7247),
+ q(7234),
q(0),
],
q(wunumara) => [
- q(7190),
+ q(7176),
q(0),
],
q(wurrugu) => [
- q(7253),
+ q(7240),
q(0),
],
q(wusa nasu) => [
- q(7647),
+ q(7632),
q(0),
],
q(wushi) => [
@@ -56310,375 +56323,371 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(wusi) => [
- q(7234),
+ q(7221),
q(0),
],
q(wutung) => [
- q(7254),
+ q(7241),
q(0),
],
q(wutunhua) => [
- q(7249),
+ q(7236),
q(0),
],
q(wuvulu-aua) => [
- q(7256),
+ q(7243),
q(0),
],
q(wuzlam) => [
- q(6866),
+ q(6850),
q(0),
],
q(wyandot) => [
- q(7266),
+ q(7253),
q(0),
],
q(wymysorys) => [
- q(7269),
+ q(7256),
q(0),
],
q(xaasongaxango) => [
- q(3179),
+ q(3178),
q(0),
],
q(xadani zapotec) => [
- q(7826),
+ q(7811),
q(0),
],
q(xakriaba) => [
- q(7385),
+ q(7370),
q(0),
],
q(xam) => [
- q(7280),
+ q(7268),
q(1),
],
q(xamtanga) => [
- q(7281),
+ q(7269),
q(0),
],
q(xanaguia zapotec) => [
- q(7954),
+ q(7939),
q(0),
],
q(xaracuu) => [
- q(0794),
+ q(0795),
q(0),
],
q(xaragure) => [
- q(0991),
+ q(0992),
q(0),
],
q(xavante) => [
- q(7289),
+ q(7277),
q(0),
],
q(xegwi) => [
- q(7330),
+ q(7317),
q(1),
],
q(xerente) => [
- q(7334),
+ q(7321),
q(0),
],
q(xeta) => [
- q(7336),
+ q(7323),
q(0),
],
q(xhosa) => [
- q(0471),
+ q(0472),
q(0),
],
q(xiang chinese) => [
- q(2845),
+ q(2842),
q(0),
],
q(xibe) => [
- q(6064),
+ q(6055),
q(0),
],
q(xicotepec de juarez totonac) => [
- q(6645),
+ q(6629),
q(0),
],
q(xinca) => [
- q(7361),
+ q(7348),
q(0),
],
q(xingu asurini) => [
- q(0897),
+ q(0898),
q(0),
],
q(xipaya) => [
- q(7366),
- q(0),
- ],
- q(xipinawa) => [
- q(7362),
+ q(7352),
q(0),
],
q(xiri) => [
- q(7359),
+ q(7346),
q(0),
],
q(xiriana) => [
- q(7363),
+ q(7349),
q(0),
],
q(xishanba lalo) => [
- q(7791),
+ q(7776),
q(0),
],
q(xokleng) => [
- q(7450),
+ q(7435),
q(0),
],
q(xoo) => [
- q(4975),
+ q(4968),
q(1),
],
q(xukuru) => [
- q(7453),
+ q(7438),
q(0),
],
q(xwela gbe) => [
- q(7551),
+ q(7536),
q(0),
],
q(yaaku) => [
- q(4596),
+ q(4589),
q(0),
],
q(yabaana) => [
- q(7608),
+ q(7593),
q(0),
],
q(yabarana) => [
- q(7590),
+ q(7575),
q(0),
],
q(yabem) => [
- q(3044),
+ q(3043),
q(0),
],
q(yaben) => [
- q(7607),
+ q(7592),
q(0),
],
q(yabong) => [
- q(7609),
+ q(7594),
q(0),
],
q(yabula yabula) => [
- q(7799),
+ q(7784),
q(0),
],
q(yace) => [
- q(2241),
+ q(2237),
q(0),
],
q(yaeyama) => [
- q(5884),
+ q(5873),
q(0),
],
q(yafi) => [
- q(7115),
+ q(7101),
q(0),
],
q(yagara) => [
- q(7795),
+ q(7780),
q(0),
],
q(yagaria) => [
- q(7638),
+ q(7623),
q(0),
],
q(yagnobi) => [
- q(7583),
+ q(7568),
q(0),
],
q(yagomi) => [
- q(7636),
+ q(7621),
q(0),
],
q(yagua) => [
- q(7578),
+ q(7563),
q(0),
],
q(yagwoia) => [
- q(7641),
+ q(7626),
q(0),
],
q(yahadian) => [
- q(4822),
+ q(4815),
q(0),
],
q(yahang) => [
- q(5785),
+ q(5776),
q(0),
],
q(yahuna) => [
- q(7716),
+ q(7701),
q(0),
],
q(yaka (central african republic)) => [
- q(0988),
+ q(0989),
q(0),
],
q(yaka (congo)) => [
- q(3036),
+ q(3035),
q(0),
],
q(yaka (democratic republic of congo)) => [
- q(7580),
+ q(7565),
q(0),
],
q(yakaikeke) => [
- q(7667),
+ q(7652),
q(0),
],
q(yakama) => [
- q(7585),
+ q(7570),
q(0),
],
q(yakan) => [
- q(7664),
+ q(7649),
q(0),
],
q(yakha) => [
- q(7602),
+ q(7587),
q(0),
],
q(yakoma) => [
- q(7675),
+ q(7660),
q(0),
],
q(yakut) => [
- q(0366),
+ q(0367),
q(0),
],
q(yala) => [
- q(7599),
+ q(7584),
q(0),
],
q(yalahatan) => [
- q(3049),
+ q(3048),
q(0),
],
q(yalakalore) => [
- q(7569),
+ q(7554),
q(0),
],
q(yalalag zapotec) => [
- q(7934),
+ q(7919),
q(0),
],
q(yalarnnga) => [
- q(7685),
+ q(7670),
q(0),
],
q(yale) => [
- q(4766),
+ q(4758),
q(0),
],
q(yaleba) => [
- q(7677),
+ q(7662),
q(0),
],
q(yalunka) => [
- q(7586),
+ q(7571),
q(0),
],
q(yamana) => [
- q(7581),
+ q(7566),
q(0),
],
q(yamap) => [
- q(7700),
+ q(7685),
q(0),
],
q(yamba) => [
- q(7587),
+ q(7572),
q(0),
],
q(yambes) => [
- q(7688),
+ q(7673),
q(0),
],
q(yambeta) => [
- q(7592),
+ q(7577),
q(0),
],
q(yamdena) => [
- q(3119),
+ q(3118),
q(0),
],
q(yameo) => [
- q(7691),
+ q(7676),
q(0),
],
q(yami) => [
- q(6369),
+ q(6358),
q(0),
],
q(yaminahua) => [
- q(7575),
+ q(7560),
q(0),
],
q(yamna) => [
- q(7698),
+ q(7683),
q(0),
],
q(yamongeri) => [
- q(7692),
+ q(7677),
q(0),
],
q(yamphu) => [
- q(7603),
+ q(7588),
q(0),
],
q(yan-nhangu) => [
- q(3058),
+ q(3057),
q(0),
],
q(yan-nhanu sign language) => [
- q(7645),
+ q(7630),
q(0),
],
q(yana) => [
- q(7712),
+ q(7697),
q(0),
],
q(yanahuanca pasco quechua) => [
- q(5693),
+ q(5684),
q(0),
],
q(yanda) => [
- q(7616),
+ q(7601),
q(0),
],
q(yanda dom dogon) => [
- q(2203),
+ q(2199),
q(0),
],
q(yandjibara) => [
- q(7566),
+ q(7551),
q(0),
],
q(yandruwandha) => [
- q(7707),
+ q(7692),
q(0),
],
q(yanesha') => [
- q(0769),
+ q(0770),
q(0),
],
q(yang zhuang) => [
- q(7971),
+ q(7956),
q(0),
],
q(yangben) => [
- q(7594),
+ q(7579),
q(0),
],
q(yangkam) => [
@@ -56686,863 +56695,863 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yangman) => [
- q(3129),
+ q(3128),
q(0),
],
q(yango) => [
- q(7709),
+ q(7694),
q(0),
],
q(yangulam) => [
- q(7711),
+ q(7696),
q(0),
],
q(yangum dey) => [
- q(7618),
+ q(7603),
q(0),
],
q(yangum gel) => [
- q(7635),
+ q(7620),
q(0),
],
q(yangum mon) => [
- q(7699),
+ q(7684),
q(0),
],
q(yankunytjatjara) => [
- q(3237),
+ q(3236),
q(0),
],
q(yanomami) => [
- q(7093),
+ q(7079),
q(0),
],
q(yanomamo) => [
- q(2661),
+ q(2659),
q(0),
],
q(yansi) => [
- q(7715),
+ q(7700),
q(0),
],
q(yanyuwa) => [
- q(3052),
+ q(3051),
q(0),
],
q(yao) => [
- q(0472),
+ q(0473),
q(0),
],
q(yaosakor asmat) => [
- q(0907),
+ q(0908),
q(0),
],
q(yaoure) => [
- q(7738),
+ q(7723),
q(0),
],
q(yapese) => [
- q(0473),
+ q(0474),
q(0),
],
q(yapunda) => [
- q(7631),
+ q(7616),
q(0),
],
q(yaqay) => [
- q(3053),
+ q(3052),
q(0),
],
q(yaqui) => [
- q(7589),
+ q(7574),
q(0),
],
q(yarawata) => [
- q(7745),
+ q(7730),
q(0),
],
q(yardliyawarra) => [
- q(7796),
+ q(7781),
q(0),
],
q(yareba) => [
- q(7737),
+ q(7722),
q(0),
],
q(yareni zapotec) => [
- q(7809),
+ q(7794),
q(0),
],
- q(yari) => [
- q(7739),
+ q(yarluyandi) => [
+ q(7731),
q(0),
],
- q(yarluyandi) => [
- q(7746),
+ q(yaroame) => [
+ q(7728),
q(0),
],
q(yarsun) => [
- q(7744),
+ q(7729),
q(0),
],
q(yasa) => [
- q(7671),
+ q(7656),
q(0),
],
q(yassic) => [
- q(7747),
+ q(7732),
q(0),
],
q(yatay) => [
- q(7761),
+ q(7746),
q(0),
],
q(yatee zapotec) => [
- q(7964),
+ q(7949),
q(0),
],
q(yatzachi zapotec) => [
- q(7824),
+ q(7809),
q(0),
],
q(yau (morobe province)) => [
- q(7779),
+ q(7764),
q(0),
],
q(yau (sandaun province)) => [
- q(7801),
+ q(7786),
q(0),
],
q(yaul) => [
- q(7676),
+ q(7661),
q(0),
],
q(yauma) => [
- q(7596),
+ q(7581),
q(0),
],
q(yaur) => [
- q(3056),
+ q(3055),
q(0),
],
q(yautepec zapotec) => [
- q(7915),
+ q(7900),
q(0),
],
q(yauyos quechua) => [
- q(5697),
+ q(5688),
q(0),
],
q(yavitero) => [
- q(7784),
+ q(7769),
q(0),
],
q(yawa) => [
- q(7783),
+ q(7768),
q(0),
],
q(yawalapiti) => [
- q(7595),
+ q(7580),
q(0),
],
q(yawanawa) => [
- q(7788),
+ q(7773),
q(0),
],
q(yawarawarga) => [
- q(7793),
+ q(7778),
q(0),
],
q(yaweyuha) => [
- q(7611),
+ q(7596),
q(0),
],
q(yawijibaya) => [
- q(3068),
+ q(3067),
q(0),
],
q(yawiyo) => [
- q(7610),
+ q(7595),
q(0),
],
q(yawuru) => [
- q(7790),
+ q(7775),
q(0),
],
q(yaygir) => [
- q(7565),
+ q(7550),
q(0),
],
q(yazgulyam) => [
- q(7582),
+ q(7567),
q(0),
],
q(yecuatla totonac) => [
- q(6568),
+ q(6555),
q(0),
],
q(yei) => [
- q(3078),
+ q(3076),
q(0),
],
q(yekhee) => [
- q(2309),
+ q(2306),
q(0),
],
q(yekora) => [
- q(7672),
+ q(7657),
q(0),
],
q(yela) => [
- q(7626),
+ q(7611),
q(0),
],
q(yele) => [
- q(7678),
+ q(7663),
q(0),
],
q(yelmek) => [
- q(3080),
+ q(3078),
q(0),
],
q(yelogu) => [
- q(7679),
+ q(7664),
q(0),
],
q(yemba) => [
- q(7600),
+ q(7585),
q(0),
],
q(yemsa) => [
- q(3131),
+ q(3130),
q(0),
],
q(yendang) => [
- q(7714),
+ q(7699),
q(0),
],
q(yeni) => [
- q(7624),
+ q(7609),
q(0),
],
q(yeniche) => [
- q(7622),
+ q(7607),
q(0),
],
q(yerakai) => [
- q(7736),
+ q(7721),
q(0),
],
q(yeretuar) => [
- q(2598),
+ q(2596),
q(0),
],
q(yerong) => [
- q(7743),
+ q(7727),
q(0),
],
q(yerukula) => [
- q(7630),
+ q(7615),
q(0),
],
q(yessan-mayo) => [
- q(7755),
+ q(7740),
q(0),
],
q(yetfa) => [
- q(7629),
+ q(7614),
q(0),
],
q(yevanic) => [
- q(7625),
+ q(7610),
q(0),
],
q(yeyi) => [
- q(7632),
+ q(7617),
q(0),
],
q(yiddish) => [
- q(0474),
+ q(0475),
q(0),
],
q(yidgha) => [
- q(7619),
+ q(7604),
q(0),
],
q(yidiny) => [
- q(7649),
+ q(7634),
q(0),
],
q(yil) => [
- q(7681),
+ q(7666),
q(0),
],
q(yimas) => [
- q(7623),
+ q(7608),
q(0),
],
q(yimchungru naga) => [
- q(7653),
+ q(7638),
q(0),
],
q(yinbaw karen) => [
- q(3687),
+ q(3680),
q(0),
],
q(yinchia) => [
- q(7654),
+ q(7639),
q(0),
],
q(yindjibarndi) => [
- q(7650),
+ q(7635),
q(0),
],
q(yindjilandji) => [
- q(7652),
+ q(7637),
q(0),
],
q(yine) => [
- q(5450),
+ q(5447),
q(0),
],
q(yinggarda) => [
- q(7646),
+ q(7631),
q(0),
],
q(yinhawangka) => [
- q(7786),
+ q(7771),
q(0),
],
q(yiningayi) => [
- q(7634),
+ q(7619),
q(0),
],
q(yintale) => [
- q(3691),
+ q(3684),
q(1),
],
q(yintale karen) => [
- q(3691),
+ q(3684),
q(0),
],
q(yinwum) => [
- q(7797),
+ q(7782),
q(0),
],
q(yipma) => [
- q(1606),
+ q(1605),
q(1),
],
q(yir yoront) => [
- q(7800),
+ q(7785),
q(0),
],
q(yirandali) => [
- q(3937),
+ q(3928),
q(0),
],
q(yirrk-mel) => [
- q(7742),
+ q(7726),
q(0),
],
q(yis) => [
- q(7658),
+ q(7643),
q(0),
],
q(yitha yitha) => [
- q(7513),
- q(0),
- ],
- q(yiwom) => [
- q(2481),
+ q(7498),
q(0),
],
q(yoba) => [
- q(7717),
+ q(7702),
q(0),
],
q(yocoboue dida) => [
- q(2645),
+ q(2643),
q(0),
],
q(yogad) => [
- q(7718),
+ q(7703),
q(0),
],
q(yoidik) => [
- q(7620),
+ q(7605),
q(0),
],
q(yoke) => [
- q(7666),
+ q(7651),
q(0),
],
q(yokuts) => [
- q(7720),
+ q(7705),
q(0),
],
q(yola) => [
- q(7721),
+ q(7706),
q(0),
],
q(yolnu sign language) => [
- q(7639),
+ q(7624),
q(0),
],
q(yoloxochitl mixtec) => [
- q(7528),
+ q(7513),
q(0),
],
q(yom) => [
- q(5459),
+ q(5456),
q(0),
],
q(yombe) => [
- q(7722),
+ q(7707),
q(0),
],
q(yonaguni) => [
- q(7719),
+ q(7704),
q(0),
],
q(yong) => [
- q(7713),
+ q(7698),
q(0),
],
q(yongbei zhuang) => [
- q(7970),
+ q(7955),
q(0),
],
q(yongkom) => [
- q(7723),
+ q(7708),
q(0),
],
q(yongnan zhuang) => [
- q(7973),
+ q(7958),
q(0),
],
q(yopno) => [
- q(7778),
+ q(7763),
q(0),
],
q(yora) => [
- q(4573),
+ q(4566),
q(0),
],
q(yoron) => [
- q(7725),
+ q(7710),
q(0),
],
q(yorta yorta) => [
- q(7571),
+ q(7556),
q(0),
],
q(yoruba) => [
- q(0475),
+ q(0476),
q(0),
],
q(yosondua mixtec) => [
- q(4467),
+ q(4460),
q(0),
],
q(yotti) => [
- q(7724),
+ q(7709),
q(0),
],
q(youjiang zhuang) => [
- q(7972),
+ q(7957),
q(0),
],
q(youle jinuo) => [
- q(3104),
+ q(3102),
q(0),
],
q(younuo bunu) => [
- q(1500),
+ q(1499),
q(0),
],
q(yout wam) => [
- q(7760),
+ q(7745),
q(0),
],
q(yoy) => [
- q(7726),
+ q(7711),
q(0),
],
q(yuanga) => [
- q(5104),
+ q(5099),
q(0),
],
q(yucatec maya) => [
- q(7762),
+ q(7747),
q(1),
],
q(yucatec maya sign language) => [
- q(4533),
+ q(4526),
q(0),
],
q(yucateco) => [
- q(7762),
+ q(7747),
q(0),
],
q(yuchi) => [
- q(7764),
+ q(7749),
q(0),
],
q(yucuane mixtec) => [
- q(4606),
+ q(4599),
q(0),
],
q(yucuna) => [
- q(7614),
+ q(7599),
q(0),
],
q(yue chinese) => [
- q(7766),
+ q(7751),
q(0),
],
q(yug) => [
- q(7768),
+ q(7753),
q(0),
],
q(yugambal) => [
- q(7763),
+ q(7748),
q(0),
],
q(yugoslavian sign language) => [
- q(7750),
+ q(7735),
q(0),
],
q(yugul) => [
- q(7640),
+ q(7625),
q(0),
],
q(yuhup) => [
- q(7576),
+ q(7561),
q(0),
],
q(yuki) => [
- q(7771),
+ q(7756),
q(0),
],
q(yukpa) => [
- q(7775),
+ q(7760),
q(0),
],
q(yukuben) => [
- q(7606),
+ q(7591),
q(0),
],
q(yulu) => [
- q(7772),
+ q(7757),
q(0),
],
q(yupik languages) => [
- q(0476),
+ q(0477),
q(0),
],
q(yuqui) => [
- q(7776),
+ q(7761),
q(0),
],
q(yuracare) => [
- q(7782),
+ q(7767),
q(0),
],
q(yurats) => [
- q(5860),
+ q(5849),
q(0),
],
q(yurok) => [
- q(7777),
+ q(7762),
q(0),
],
q(yuru) => [
- q(3938),
+ q(3929),
q(0),
],
q(yuruti) => [
- q(7769),
+ q(7754),
q(0),
],
q(yutanduchi mixtec) => [
- q(4116),
+ q(4108),
q(0),
],
q(yuwana) => [
- q(7593),
+ q(7578),
q(0),
],
q(yuyu) => [
- q(7798),
+ q(7783),
+ q(0),
+ ],
+ q(ywom) => [
+ q(2479),
q(0),
],
q(zaachila zapotec) => [
- q(7963),
+ q(7948),
q(0),
],
q(zabana) => [
- q(3386),
+ q(3383),
q(0),
],
q(zacatepec chatino) => [
- q(1902),
+ q(1897),
q(0),
],
q(zacatlan-ahuacatlan-tepetzintla nahuatl) => [
- q(4868),
+ q(4861),
q(0),
],
q(zaghawa) => [
- q(7811),
+ q(7796),
q(0),
],
q(zaiwa) => [
- q(0910),
+ q(0911),
q(0),
],
q(zakhring) => [
- q(7867),
+ q(7852),
q(0),
],
q(zambian sign language) => [
- q(7949),
+ q(7934),
q(0),
],
q(zan gula) => [
- q(7902),
+ q(7887),
q(0),
],
q(zanaki) => [
- q(7815),
+ q(7800),
q(0),
],
q(zande (individual language)) => [
- q(7903),
+ q(7888),
q(0),
],
q(zande languages) => [
- q(0482),
+ q(0483),
q(0),
],
q(zangskari) => [
- q(7823),
+ q(7808),
q(0),
],
q(zangwal) => [
- q(7812),
+ q(7797),
q(0),
],
q(zaniza zapotec) => [
- q(7936),
+ q(7921),
q(0),
],
q(zaparo) => [
- q(7944),
+ q(7929),
q(0),
],
q(zapotec) => [
- q(0477),
+ q(0478),
q(0),
],
q(zaramo) => [
- q(7814),
+ q(7799),
q(0),
],
q(zari) => [
- q(7828),
+ q(7813),
q(0),
],
q(zarma) => [
- q(2062),
+ q(2056),
q(0),
],
q(zarphatic) => [
- q(7945),
+ q(7930),
q(0),
],
q(zauzou) => [
- q(7816),
+ q(7801),
q(0),
],
q(zay) => [
- q(7969),
+ q(7954),
q(0),
],
q(zayein karen) => [
- q(3726),
+ q(3719),
q(0),
],
q(zayse-zergulla) => [
- q(7827),
+ q(7812),
q(0),
],
q(zaysete) => [
- q(7827),
+ q(7812),
q(1),
],
q(zaza) => [
- q(0486),
+ q(0487),
q(0),
],
q(zazaki) => [
- q(0486),
+ q(0487),
q(5),
],
q(zazao) => [
- q(3047),
+ q(3046),
q(0),
],
q(zeem) => [
- q(7965),
+ q(7950),
q(0),
],
q(zeeuws) => [
- q(7836),
+ q(7821),
q(0),
],
q(zemba) => [
- q(2026),
+ q(2020),
q(0),
],
q(zeme naga) => [
- q(5180),
+ q(5175),
q(0),
],
q(zemgalian) => [
- q(7573),
+ q(7558),
q(0),
],
q(zenag) => [
- q(7837),
+ q(7822),
q(0),
],
q(zenaga) => [
- q(0479),
+ q(0480),
q(0),
],
q(zenzontepec chatino) => [
- q(1935),
+ q(1929),
q(0),
],
q(zerenkel) => [
- q(7943),
+ q(7928),
q(0),
],
q(zhaba) => [
- q(7844),
+ q(7829),
q(0),
],
q(zhang-zhung) => [
- q(7572),
+ q(7557),
q(0),
],
q(zhire) => [
- q(7846),
+ q(7831),
q(0),
],
q(zhoa) => [
- q(7848),
+ q(7833),
q(0),
],
q(zhuang) => [
- q(0481),
+ q(0482),
q(0),
],
q(zia) => [
- q(7849),
+ q(7834),
q(0),
],
q(zialo) => [
- q(7852),
+ q(7837),
q(0),
],
q(zigula) => [
- q(7856),
+ q(7841),
q(0),
],
q(zimakani) => [
- q(7851),
+ q(7836),
q(0),
],
q(zimba) => [
- q(7877),
+ q(7862),
q(0),
],
q(zimbabwe sign language) => [
- q(7850),
+ q(7835),
q(0),
],
q(zinza) => [
- q(7854),
+ q(7839),
q(0),
],
q(zire) => [
- q(6039),
+ q(6030),
q(0),
],
q(ziriya) => [
- q(7855),
+ q(7840),
q(0),
],
q(zizilivakan) => [
- q(7857),
+ q(7842),
q(0),
],
q(zo'e) => [
- q(5632),
+ q(5624),
q(0),
],
q(zokhuo) => [
- q(7804),
+ q(7789),
q(0),
],
q(zoogocho zapotec) => [
- q(7930),
+ q(7915),
q(0),
],
q(zoroastrian dari) => [
- q(2443),
+ q(2441),
q(0),
],
q(zorop) => [
- q(7115),
+ q(7101),
q(1),
],
q(zotung chin) => [
- q(1937),
+ q(1931),
q(0),
],
q(zou) => [
- q(7909),
+ q(7894),
q(0),
],
q(zulgo-gemzek) => [
- q(2570),
+ q(2568),
q(0),
],
q(zulu) => [
- q(0483),
+ q(0484),
q(0),
],
q(zumaya) => [
- q(7968),
+ q(7953),
q(0),
],
q(zumbun) => [
- q(3117),
+ q(3116),
q(0),
],
q(zuni) => [
- q(0484),
+ q(0485),
q(0),
],
q(zuojiang zhuang) => [
- q(7975),
+ q(7960),
q(0),
],
q(zyphe chin) => [
- q(7974),
+ q(7959),
q(0),
],
};
@@ -57626,7 +57635,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bo) => [
- q(0427),
+ q(0428),
q(0),
],
q(br) => [
@@ -57650,15 +57659,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(co) => [
- q(0092),
+ q(0093),
q(0),
],
q(cr) => [
- q(0096),
+ q(0097),
q(0),
],
q(cs) => [
- q(0101),
+ q(0102),
q(0),
],
q(cu) => [
@@ -57670,47 +57679,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cy) => [
- q(0466),
+ q(0467),
q(0),
],
q(da) => [
- q(0103),
+ q(0104),
q(0),
],
q(de) => [
- q(0150),
+ q(0151),
q(0),
],
q(dv) => [
- q(0110),
+ q(0111),
q(1),
],
q(dz) => [
- q(0118),
+ q(0119),
q(0),
],
q(ee) => [
- q(0127),
+ q(0128),
q(0),
],
q(el) => [
- q(0164),
+ q(0165),
q(2),
],
q(en) => [
- q(0123),
+ q(0124),
q(0),
],
q(eo) => [
- q(0125),
+ q(0126),
q(0),
],
q(es) => [
- q(0401),
+ q(0402),
q(0),
],
q(et) => [
- q(0126),
+ q(0127),
q(0),
],
q(eu) => [
@@ -57718,83 +57727,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fa) => [
- q(0342),
+ q(0343),
q(0),
],
q(ff) => [
- q(0143),
+ q(0144),
q(0),
],
q(fi) => [
- q(0134),
+ q(0135),
q(0),
],
q(fj) => [
- q(0132),
+ q(0133),
q(0),
],
q(fo) => [
- q(0130),
+ q(0131),
q(0),
],
q(fr) => [
- q(0137),
+ q(0138),
q(0),
],
q(fy) => [
- q(0142),
+ q(0143),
q(0),
],
q(ga) => [
- q(0154),
+ q(0155),
q(0),
],
q(gd) => [
- q(0153),
+ q(0154),
q(1),
],
q(gl) => [
- q(0155),
+ q(0156),
q(0),
],
q(gn) => [
- q(0165),
+ q(0166),
q(0),
],
q(gu) => [
- q(0167),
+ q(0168),
q(0),
],
q(gv) => [
- q(0156),
+ q(0157),
q(0),
],
q(ha) => [
- q(0171),
+ q(0172),
q(0),
],
q(he) => [
- q(0173),
+ q(0174),
q(0),
],
q(hi) => [
- q(0177),
+ q(0178),
q(0),
],
q(ho) => [
- q(0180),
+ q(0181),
q(0),
],
q(hr) => [
- q(0181),
+ q(0182),
q(0),
],
q(ht) => [
- q(0170),
+ q(0171),
q(0),
],
q(hu) => [
- q(0183),
+ q(0184),
q(0),
],
q(hy) => [
@@ -57802,187 +57811,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hz) => [
- q(0174),
+ q(0175),
q(0),
],
q(ia) => [
- q(0194),
+ q(0195),
q(0),
],
q(id) => [
- q(0196),
+ q(0197),
q(0),
],
q(ie) => [
- q(0192),
+ q(0193),
q(0),
],
q(ig) => [
- q(0186),
+ q(0187),
q(0),
],
q(ii) => [
- q(0189),
+ q(0190),
q(0),
],
q(ik) => [
- q(0199),
+ q(0200),
q(0),
],
q(io) => [
- q(0188),
+ q(0189),
q(0),
],
q(is) => [
- q(0187),
+ q(0188),
q(0),
],
q(it) => [
- q(0202),
+ q(0203),
q(0),
],
q(iu) => [
- q(0191),
+ q(0192),
q(0),
],
q(ja) => [
- q(0205),
+ q(0206),
q(0),
],
q(jv) => [
- q(0203),
+ q(0204),
q(0),
],
q(ka) => [
- q(0149),
+ q(0150),
q(0),
],
q(kg) => [
- q(0230),
+ q(0231),
q(0),
],
q(ki) => [
- q(0224),
+ q(0225),
q(0),
],
q(kj) => [
- q(0238),
+ q(0239),
q(0),
],
q(kk) => [
- q(0218),
+ q(0219),
q(0),
],
q(kl) => [
- q(0211),
+ q(0212),
q(0),
],
q(km) => [
- q(0222),
+ q(0223),
q(0),
],
q(kn) => [
- q(0213),
+ q(0214),
q(0),
],
q(ko) => [
- q(0231),
+ q(0232),
q(0),
],
q(kr) => [
- q(0216),
+ q(0217),
q(0),
],
q(ks) => [
- q(0215),
+ q(0216),
q(0),
],
q(ku) => [
- q(0240),
+ q(0241),
q(0),
],
q(kv) => [
- q(0229),
+ q(0230),
q(0),
],
q(kw) => [
- q(0091),
+ q(0092),
q(0),
],
q(ky) => [
- q(0226),
+ q(0227),
q(0),
],
q(la) => [
- q(0246),
+ q(0247),
q(0),
],
q(lb) => [
- q(0254),
+ q(0255),
q(0),
],
q(lg) => [
- q(0257),
+ q(0258),
q(0),
],
q(li) => [
- q(0249),
+ q(0250),
q(0),
],
q(ln) => [
- q(0250),
+ q(0251),
q(0),
],
q(lo) => [
- q(0245),
+ q(0246),
q(0),
],
q(lt) => [
- q(0251),
+ q(0252),
q(0),
],
q(lu) => [
- q(0256),
+ q(0257),
q(0),
],
q(lv) => [
- q(0247),
+ q(0248),
q(0),
],
q(mg) => [
- q(0283),
+ q(0284),
q(0),
],
q(mh) => [
- q(0265),
+ q(0266),
q(0),
],
q(mi) => [
- q(0270),
+ q(0271),
q(0),
],
q(mk) => [
- q(0262),
+ q(0263),
q(0),
],
q(ml) => [
- q(0268),
+ q(0269),
q(0),
],
q(mn) => [
- q(0289),
+ q(0290),
q(0),
],
q(mr) => [
- q(0272),
+ q(0273),
q(0),
],
q(ms) => [
- q(0274),
+ q(0275),
q(1),
],
q(mt) => [
- q(0284),
+ q(0285),
q(0),
],
q(my) => [
@@ -57990,159 +57999,159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(na) => [
- q(0301),
+ q(0302),
q(0),
],
q(nb) => [
- q(0313),
+ q(0314),
q(1),
],
q(nd) => [
- q(0304),
+ q(0305),
q(1),
],
q(ne) => [
- q(0307),
+ q(0308),
q(1),
],
q(ng) => [
- q(0305),
+ q(0306),
q(0),
],
q(nl) => [
- q(0116),
+ q(0117),
q(0),
],
q(nn) => [
- q(0312),
+ q(0313),
q(0),
],
q(no) => [
- q(0316),
+ q(0317),
q(0),
],
q(nr) => [
- q(0303),
+ q(0304),
q(1),
],
q(nv) => [
- q(0302),
+ q(0303),
q(0),
],
q(ny) => [
- q(0321),
+ q(0322),
q(2),
],
q(oc) => [
- q(0326),
+ q(0327),
q(0),
],
q(oj) => [
- q(0327),
+ q(0328),
q(0),
],
q(om) => [
- q(0329),
+ q(0330),
q(0),
],
q(or) => [
- q(0328),
+ q(0329),
q(1),
],
q(os) => [
- q(0331),
+ q(0332),
q(0),
],
q(pa) => [
- q(0338),
+ q(0339),
q(0),
],
q(pi) => [
- q(0345),
+ q(0346),
q(0),
],
q(pl) => [
- q(0346),
+ q(0347),
q(0),
],
q(ps) => [
- q(0351),
+ q(0352),
q(0),
],
q(pt) => [
- q(0348),
+ q(0349),
q(0),
],
q(qu) => [
- q(0353),
+ q(0354),
q(0),
],
q(rm) => [
- q(0358),
+ q(0359),
q(0),
],
q(rn) => [
- q(0361),
+ q(0362),
q(0),
],
q(ro) => [
- q(0360),
+ q(0361),
q(0),
],
q(ru) => [
- q(0363),
+ q(0364),
q(0),
],
q(rw) => [
- q(0225),
+ q(0226),
q(0),
],
q(sa) => [
- q(0370),
+ q(0371),
q(0),
],
q(sc) => [
- q(0402),
+ q(0403),
q(0),
],
q(sd) => [
- q(0395),
+ q(0396),
q(0),
],
q(se) => [
- q(0388),
+ q(0389),
q(0),
],
q(sg) => [
- q(0365),
+ q(0366),
q(0),
],
q(sh) => [
- q(0537),
+ q(0538),
q(0),
],
q(si) => [
- q(0381),
+ q(0382),
q(0),
],
q(sk) => [
- q(0385),
+ q(0386),
q(0),
],
q(sl) => [
- q(0386),
+ q(0387),
q(0),
],
q(sm) => [
- q(0392),
+ q(0393),
q(0),
],
q(sn) => [
- q(0394),
+ q(0395),
q(0),
],
q(so) => [
- q(0398),
+ q(0399),
q(0),
],
q(sq) => [
@@ -58150,135 +58159,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sr) => [
- q(0404),
+ q(0405),
q(0),
],
q(ss) => [
- q(0407),
+ q(0408),
q(0),
],
q(st) => [
- q(0400),
+ q(0401),
q(1),
],
q(su) => [
- q(0409),
+ q(0410),
q(0),
],
q(sv) => [
- q(0413),
+ q(0414),
q(0),
],
q(sw) => [
- q(0412),
+ q(0413),
q(1),
],
q(ta) => [
- q(0418),
+ q(0419),
q(0),
],
q(te) => [
- q(0420),
+ q(0421),
q(0),
],
q(tg) => [
- q(0424),
+ q(0425),
q(0),
],
q(th) => [
- q(0426),
+ q(0427),
q(0),
],
q(ti) => [
- q(0429),
+ q(0430),
q(0),
],
q(tk) => [
- q(0441),
+ q(0442),
q(0),
],
q(tl) => [
- q(0425),
+ q(0426),
q(0),
],
q(tn) => [
- q(0439),
+ q(0440),
q(0),
],
q(to) => [
- q(0436),
+ q(0437),
q(0),
],
q(tr) => [
- q(0444),
+ q(0445),
q(0),
],
q(ts) => [
- q(0440),
+ q(0441),
q(0),
],
q(tt) => [
- q(0419),
+ q(0420),
q(0),
],
q(tw) => [
- q(0447),
+ q(0448),
q(0),
],
q(ty) => [
- q(0416),
+ q(0417),
q(0),
],
q(ug) => [
- q(0451),
+ q(0452),
q(0),
],
q(uk) => [
- q(0452),
+ q(0453),
q(0),
],
q(ur) => [
- q(0455),
+ q(0456),
q(0),
],
q(uz) => [
- q(0456),
+ q(0457),
q(0),
],
q(ve) => [
- q(0458),
+ q(0459),
q(0),
],
q(vi) => [
- q(0459),
+ q(0460),
q(0),
],
q(vo) => [
- q(0460),
+ q(0461),
q(0),
],
q(wa) => [
- q(0468),
+ q(0469),
q(0),
],
q(wo) => [
- q(0469),
+ q(0470),
q(0),
],
q(xh) => [
- q(0471),
+ q(0472),
q(0),
],
q(yi) => [
- q(0474),
+ q(0475),
q(0),
],
q(yo) => [
- q(0475),
+ q(0476),
q(0),
],
q(za) => [
- q(0481),
+ q(0482),
q(0),
],
q(zh) => [
@@ -58286,69 +58295,69 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zu) => [
- q(0483),
+ q(0484),
q(0),
],
},
q(alpha-3) => {
q(aaa) => [
- q(0538),
+ q(0539),
q(0),
],
q(aab) => [
- q(0539),
+ q(0540),
q(0),
],
q(aac) => [
- q(0540),
+ q(0541),
q(0),
],
q(aad) => [
- q(0541),
+ q(0542),
q(0),
],
q(aae) => [
- q(0542),
+ q(0543),
q(0),
],
q(aaf) => [
- q(0543),
+ q(0544),
q(0),
],
q(aag) => [
- q(0544),
+ q(0545),
q(0),
],
q(aah) => [
- q(0545),
+ q(0546),
q(0),
],
q(aai) => [
- q(0546),
+ q(0547),
q(0),
],
q(aak) => [
- q(0547),
+ q(0548),
q(0),
],
q(aal) => [
- q(0548),
+ q(0549),
q(0),
],
q(aan) => [
- q(0549),
+ q(0550),
q(0),
],
q(aao) => [
- q(0550),
+ q(0551),
q(0),
],
q(aap) => [
- q(0551),
+ q(0552),
q(0),
],
q(aaq) => [
- q(0552),
+ q(0553),
q(0),
],
q(aar) => [
@@ -58356,71 +58365,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aas) => [
- q(0553),
+ q(0554),
q(0),
],
q(aat) => [
- q(0554),
+ q(0555),
q(0),
],
q(aau) => [
- q(0555),
+ q(0556),
q(0),
],
q(aav) => [
- q(0487),
+ q(0488),
q(0),
],
q(aaw) => [
- q(0556),
+ q(0557),
q(0),
],
q(aax) => [
- q(0557),
+ q(0558),
q(0),
],
q(aaz) => [
- q(0558),
+ q(0559),
q(0),
],
q(aba) => [
- q(0559),
+ q(0560),
q(0),
],
q(abb) => [
- q(0560),
+ q(0561),
q(0),
],
q(abc) => [
- q(0561),
+ q(0562),
q(0),
],
q(abd) => [
- q(0562),
+ q(0563),
q(0),
],
q(abe) => [
- q(0563),
+ q(0564),
q(0),
],
q(abf) => [
- q(0564),
+ q(0565),
q(0),
],
q(abg) => [
- q(0565),
+ q(0566),
q(0),
],
q(abh) => [
- q(0566),
+ q(0567),
q(0),
],
q(abi) => [
- q(0567),
+ q(0568),
q(0),
],
q(abj) => [
- q(0568),
+ q(0569),
q(0),
],
q(abk) => [
@@ -58428,75 +58437,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(abl) => [
- q(0569),
+ q(0570),
q(0),
],
q(abm) => [
- q(0570),
+ q(0571),
q(0),
],
q(abn) => [
- q(0571),
+ q(0572),
q(0),
],
q(abo) => [
- q(0572),
+ q(0573),
q(0),
],
q(abp) => [
- q(0573),
+ q(0574),
q(0),
],
q(abq) => [
- q(0574),
+ q(0575),
q(0),
],
q(abr) => [
- q(0575),
+ q(0576),
q(0),
],
q(abs) => [
- q(0576),
+ q(0577),
q(0),
],
q(abt) => [
- q(0577),
+ q(0578),
q(0),
],
q(abu) => [
- q(0578),
+ q(0579),
q(0),
],
q(abv) => [
- q(0579),
+ q(0580),
q(0),
],
q(abw) => [
- q(0580),
+ q(0581),
q(0),
],
q(abx) => [
- q(0581),
+ q(0582),
q(0),
],
q(aby) => [
- q(0582),
+ q(0583),
q(0),
],
q(abz) => [
- q(0583),
+ q(0584),
q(0),
],
q(aca) => [
- q(0584),
+ q(0585),
q(0),
],
q(acb) => [
- q(0585),
+ q(0586),
q(0),
],
q(acd) => [
- q(0586),
+ q(0587),
q(0),
],
q(ace) => [
@@ -58504,7 +58513,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(acf) => [
- q(0587),
+ q(0588),
q(0),
],
q(ach) => [
@@ -58512,67 +58521,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aci) => [
- q(0588),
+ q(0589),
q(0),
],
q(ack) => [
- q(0589),
+ q(0590),
q(0),
],
q(acl) => [
- q(0590),
+ q(0591),
q(0),
],
q(acm) => [
- q(0591),
+ q(0592),
q(0),
],
q(acn) => [
- q(0592),
+ q(0593),
q(0),
],
q(acp) => [
- q(0593),
+ q(0594),
q(0),
],
q(acq) => [
- q(0594),
+ q(0595),
q(0),
],
q(acr) => [
- q(0595),
+ q(0596),
q(0),
],
q(acs) => [
- q(0596),
+ q(0597),
q(0),
],
q(act) => [
- q(0597),
+ q(0598),
q(0),
],
q(acu) => [
- q(0598),
+ q(0599),
q(0),
],
q(acv) => [
- q(0599),
+ q(0600),
q(0),
],
q(acw) => [
- q(0600),
+ q(0601),
q(0),
],
q(acx) => [
- q(0601),
+ q(0602),
q(0),
],
q(acy) => [
- q(0602),
+ q(0603),
q(0),
],
q(acz) => [
- q(0603),
+ q(0604),
q(0),
],
q(ada) => [
@@ -58580,75 +58589,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(adb) => [
- q(0604),
+ q(0605),
q(0),
],
q(add) => [
- q(0605),
+ q(0606),
q(0),
],
q(ade) => [
- q(0606),
+ q(0607),
q(0),
],
q(adf) => [
- q(0607),
+ q(0608),
q(0),
],
q(adg) => [
- q(0608),
+ q(0609),
q(0),
],
q(adh) => [
- q(0609),
+ q(0610),
q(0),
],
q(adi) => [
- q(0610),
+ q(0611),
q(0),
],
q(adj) => [
- q(0611),
+ q(0612),
q(0),
],
q(adl) => [
- q(0612),
+ q(0613),
q(0),
],
q(adn) => [
- q(0613),
+ q(0614),
q(0),
],
q(ado) => [
- q(0614),
+ q(0615),
q(0),
],
q(adq) => [
- q(0615),
+ q(0616),
q(0),
],
q(adr) => [
- q(0616),
+ q(0617),
q(0),
],
q(ads) => [
- q(0617),
+ q(0618),
q(0),
],
q(adt) => [
- q(0618),
+ q(0619),
q(0),
],
q(adu) => [
- q(0619),
+ q(0620),
q(0),
],
q(adw) => [
- q(0620),
+ q(0621),
q(0),
],
q(adx) => [
- q(0621),
+ q(0622),
q(0),
],
q(ady) => [
@@ -58656,71 +58665,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(adz) => [
- q(0622),
+ q(0623),
q(0),
],
q(aea) => [
- q(0623),
+ q(0624),
q(0),
],
q(aeb) => [
- q(0624),
+ q(0625),
q(0),
],
q(aec) => [
- q(0625),
+ q(0626),
q(0),
],
q(aed) => [
- q(0626),
+ q(0627),
q(0),
],
q(aee) => [
- q(0627),
+ q(0628),
q(0),
],
q(aek) => [
- q(0628),
+ q(0629),
q(0),
],
q(ael) => [
- q(0629),
+ q(0630),
q(0),
],
q(aem) => [
- q(0630),
+ q(0631),
q(0),
],
q(aen) => [
- q(0631),
+ q(0632),
q(0),
],
q(aeq) => [
- q(0632),
+ q(0633),
q(0),
],
q(aer) => [
- q(0633),
+ q(0634),
q(0),
],
q(aes) => [
- q(0634),
+ q(0635),
q(0),
],
q(aeu) => [
- q(0635),
+ q(0636),
q(0),
],
q(aew) => [
- q(0636),
+ q(0637),
q(0),
],
q(aey) => [
- q(0637),
+ q(0638),
q(0),
],
q(aez) => [
- q(0638),
+ q(0639),
q(0),
],
q(afa) => [
@@ -58728,19 +58737,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(afb) => [
- q(0639),
+ q(0640),
q(0),
],
q(afd) => [
- q(0640),
+ q(0641),
q(0),
],
q(afe) => [
- q(0641),
+ q(0642),
q(0),
],
q(afg) => [
- q(0642),
+ q(0643),
q(0),
],
q(afh) => [
@@ -58748,23 +58757,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(afi) => [
- q(0643),
+ q(0644),
q(0),
],
q(afk) => [
- q(0644),
+ q(0645),
q(0),
],
q(afn) => [
- q(0645),
+ q(0646),
q(0),
],
q(afo) => [
- q(0646),
+ q(0647),
q(0),
],
q(afp) => [
- q(0647),
+ q(0648),
q(0),
],
q(afr) => [
@@ -58772,227 +58781,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(afs) => [
- q(0648),
+ q(0649),
q(0),
],
q(aft) => [
- q(0649),
+ q(0650),
q(0),
],
q(afu) => [
- q(0650),
+ q(0651),
q(0),
],
q(afz) => [
- q(0651),
+ q(0652),
q(0),
],
q(aga) => [
- q(0652),
+ q(0653),
q(0),
],
q(agb) => [
- q(0653),
+ q(0654),
q(0),
],
q(agc) => [
- q(0654),
+ q(0655),
q(0),
],
q(agd) => [
- q(0655),
+ q(0656),
q(0),
],
q(age) => [
- q(0656),
+ q(0657),
q(0),
],
q(agf) => [
- q(0657),
+ q(0658),
q(0),
],
q(agg) => [
- q(0658),
+ q(0659),
q(0),
],
q(agh) => [
- q(0659),
+ q(0660),
q(0),
],
q(agi) => [
- q(0660),
+ q(0661),
q(0),
],
q(agj) => [
- q(0661),
+ q(0662),
q(0),
],
q(agk) => [
- q(0662),
+ q(0663),
q(0),
],
q(agl) => [
- q(0663),
+ q(0664),
q(0),
],
q(agm) => [
- q(0664),
+ q(0665),
q(0),
],
q(agn) => [
- q(0665),
+ q(0666),
q(0),
],
q(ago) => [
- q(0666),
+ q(0667),
q(0),
],
q(agq) => [
- q(0667),
+ q(0668),
q(0),
],
q(agr) => [
- q(0668),
+ q(0669),
q(0),
],
q(ags) => [
- q(0669),
+ q(0670),
q(0),
],
q(agt) => [
- q(0670),
+ q(0671),
q(0),
],
q(agu) => [
- q(0671),
+ q(0672),
q(0),
],
q(agv) => [
- q(0672),
+ q(0673),
q(0),
],
q(agw) => [
- q(0673),
+ q(0674),
q(0),
],
q(agx) => [
- q(0674),
+ q(0675),
q(0),
],
q(agy) => [
- q(0675),
+ q(0676),
q(0),
],
q(agz) => [
- q(0676),
+ q(0677),
q(0),
],
q(aha) => [
- q(0677),
+ q(0678),
q(0),
],
q(ahb) => [
- q(0678),
+ q(0679),
q(0),
],
q(ahg) => [
- q(0679),
+ q(0680),
q(0),
],
q(ahh) => [
- q(0680),
+ q(0681),
q(0),
],
q(ahi) => [
- q(0681),
+ q(0682),
q(0),
],
q(ahk) => [
- q(0682),
+ q(0683),
q(0),
],
q(ahl) => [
- q(0683),
+ q(0684),
q(0),
],
q(ahm) => [
- q(0684),
+ q(0685),
q(0),
],
q(ahn) => [
- q(0685),
+ q(0686),
q(0),
],
q(aho) => [
- q(0686),
+ q(0687),
q(0),
],
q(ahp) => [
- q(0687),
+ q(0688),
q(0),
],
q(ahr) => [
- q(0688),
+ q(0689),
q(0),
],
q(ahs) => [
- q(0689),
+ q(0690),
q(0),
],
q(aht) => [
- q(0690),
+ q(0691),
q(0),
],
q(aia) => [
- q(0691),
+ q(0692),
q(0),
],
q(aib) => [
- q(0692),
+ q(0693),
q(0),
],
q(aic) => [
- q(0693),
+ q(0694),
q(0),
],
q(aid) => [
- q(0694),
+ q(0695),
q(0),
],
q(aie) => [
- q(0695),
+ q(0696),
q(0),
],
q(aif) => [
- q(0696),
+ q(0697),
q(0),
],
q(aig) => [
- q(0697),
+ q(0698),
q(0),
],
q(aih) => [
- q(0698),
+ q(0699),
q(0),
],
q(aii) => [
- q(0699),
+ q(0700),
q(0),
],
q(aij) => [
- q(0700),
+ q(0701),
q(0),
],
q(aik) => [
- q(0701),
+ q(0702),
q(0),
],
q(ail) => [
- q(0702),
+ q(0703),
q(0),
],
q(aim) => [
- q(0703),
+ q(0704),
q(0),
],
q(ain) => [
@@ -59000,75 +59009,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(aio) => [
- q(0704),
+ q(0705),
q(0),
],
q(aip) => [
- q(0705),
+ q(0706),
q(0),
],
q(aiq) => [
- q(0706),
+ q(0707),
q(0),
],
q(air) => [
- q(0707),
+ q(0708),
q(0),
],
q(ais) => [
- q(0708),
+ q(0709),
q(0),
],
q(ait) => [
- q(0709),
+ q(0710),
q(0),
],
q(aiw) => [
- q(0710),
+ q(0711),
q(0),
],
q(aix) => [
- q(0711),
+ q(0712),
q(0),
],
q(aiy) => [
- q(0712),
+ q(0713),
q(0),
],
q(aja) => [
- q(0713),
+ q(0714),
q(0),
],
q(ajg) => [
- q(0714),
+ q(0715),
q(0),
],
q(aji) => [
- q(0715),
+ q(0716),
q(0),
],
q(ajn) => [
- q(0716),
+ q(0717),
q(0),
],
q(ajp) => [
- q(0717),
+ q(0718),
q(0),
],
q(ajt) => [
- q(0718),
+ q(0719),
q(0),
],
q(aju) => [
- q(0719),
+ q(0720),
q(0),
],
q(ajw) => [
- q(0720),
+ q(0721),
q(0),
],
q(ajz) => [
- q(0721),
+ q(0722),
q(0),
],
q(aka) => [
@@ -59076,39 +59085,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(akb) => [
- q(0722),
+ q(0723),
q(0),
],
q(akc) => [
- q(0723),
+ q(0724),
q(0),
],
q(akd) => [
- q(0724),
+ q(0725),
q(0),
],
q(ake) => [
- q(0725),
+ q(0726),
q(0),
],
q(akf) => [
- q(0726),
+ q(0727),
q(0),
],
q(akg) => [
- q(0727),
+ q(0728),
q(0),
],
q(akh) => [
- q(0728),
+ q(0729),
q(0),
],
q(aki) => [
- q(0729),
+ q(0730),
q(0),
],
q(akj) => [
- q(0730),
+ q(0731),
q(0),
],
q(akk) => [
@@ -59116,63 +59125,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(akl) => [
- q(0731),
+ q(0732),
q(0),
],
q(akm) => [
- q(0732),
+ q(0733),
q(0),
],
q(ako) => [
- q(0733),
+ q(0734),
q(0),
],
q(akp) => [
- q(0734),
+ q(0735),
q(0),
],
q(akq) => [
- q(0735),
+ q(0736),
q(0),
],
q(akr) => [
- q(0736),
+ q(0737),
q(0),
],
q(aks) => [
- q(0737),
+ q(0738),
q(0),
],
q(akt) => [
- q(0738),
+ q(0739),
q(0),
],
q(aku) => [
- q(0739),
+ q(0740),
q(0),
],
q(akv) => [
- q(0740),
+ q(0741),
q(0),
],
q(akw) => [
- q(0741),
+ q(0742),
q(0),
],
q(akx) => [
- q(0742),
+ q(0743),
q(0),
],
q(aky) => [
- q(0743),
+ q(0744),
q(0),
],
q(akz) => [
- q(0744),
+ q(0745),
q(0),
],
q(ala) => [
- q(0745),
+ q(0746),
q(0),
],
q(alb) => [
@@ -59180,11 +59189,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alc) => [
- q(0746),
+ q(0747),
q(0),
],
q(ald) => [
- q(0747),
+ q(0748),
q(0),
],
q(ale) => [
@@ -59192,7 +59201,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alf) => [
- q(0748),
+ q(0749),
q(0),
],
q(alg) => [
@@ -59200,51 +59209,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alh) => [
- q(0749),
+ q(0750),
q(0),
],
q(ali) => [
- q(0750),
+ q(0751),
q(0),
],
q(alj) => [
- q(0751),
+ q(0752),
q(0),
],
q(alk) => [
- q(0752),
+ q(0753),
q(0),
],
q(all) => [
- q(0753),
+ q(0754),
q(0),
],
q(alm) => [
- q(0754),
+ q(0755),
q(0),
],
q(aln) => [
- q(0755),
+ q(0756),
q(0),
],
q(alo) => [
- q(0756),
+ q(0757),
q(0),
],
q(alp) => [
- q(0757),
+ q(0758),
q(0),
],
q(alq) => [
- q(0758),
+ q(0759),
q(0),
],
q(alr) => [
- q(0759),
+ q(0760),
q(0),
],
q(als) => [
- q(0760),
+ q(0761),
q(0),
],
q(alt) => [
@@ -59252,51 +59261,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(alu) => [
- q(0761),
+ q(0762),
q(0),
],
q(alv) => [
- q(0488),
+ q(0489),
q(0),
],
q(alw) => [
- q(0762),
+ q(0763),
q(0),
],
q(alx) => [
- q(0763),
+ q(0764),
q(0),
],
q(aly) => [
- q(0764),
+ q(0765),
q(0),
],
q(alz) => [
- q(0765),
+ q(0766),
q(0),
],
q(ama) => [
- q(0766),
+ q(0767),
q(0),
],
q(amb) => [
- q(0767),
+ q(0768),
q(0),
],
q(amc) => [
- q(0768),
+ q(0769),
q(0),
],
q(ame) => [
- q(0769),
+ q(0770),
q(0),
],
q(amf) => [
- q(0770),
+ q(0771),
q(0),
],
q(amg) => [
- q(0771),
+ q(0772),
q(0),
],
q(amh) => [
@@ -59304,99 +59313,99 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ami) => [
- q(0772),
+ q(0773),
q(0),
],
q(amj) => [
- q(0773),
+ q(0774),
q(0),
],
q(amk) => [
- q(0774),
+ q(0775),
q(0),
],
q(aml) => [
- q(0775),
+ q(0776),
q(0),
],
q(amm) => [
- q(0776),
+ q(0777),
q(0),
],
q(amn) => [
- q(0777),
+ q(0778),
q(0),
],
q(amo) => [
- q(0778),
+ q(0779),
q(0),
],
q(amp) => [
- q(0779),
+ q(0780),
q(0),
],
q(amq) => [
- q(0780),
+ q(0781),
q(0),
],
q(amr) => [
- q(0781),
+ q(0782),
q(0),
],
q(ams) => [
- q(0782),
+ q(0783),
q(0),
],
q(amt) => [
- q(0783),
+ q(0784),
q(0),
],
q(amu) => [
- q(0784),
+ q(0785),
q(0),
],
q(amv) => [
- q(0785),
+ q(0786),
q(0),
],
q(amw) => [
- q(0786),
+ q(0787),
q(0),
],
q(amx) => [
- q(0787),
+ q(0788),
q(0),
],
q(amy) => [
- q(0788),
+ q(0789),
q(0),
],
q(amz) => [
- q(0789),
+ q(0790),
q(0),
],
q(ana) => [
- q(0790),
+ q(0791),
q(0),
],
q(anb) => [
- q(0791),
+ q(0792),
q(0),
],
q(anc) => [
- q(0792),
+ q(0793),
q(0),
],
q(and) => [
- q(0793),
+ q(0794),
q(0),
],
q(ane) => [
- q(0794),
+ q(0795),
q(0),
],
q(anf) => [
- q(0795),
+ q(0796),
q(0),
],
q(ang) => [
@@ -59404,35 +59413,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(anh) => [
- q(0796),
+ q(0797),
q(0),
],
q(ani) => [
- q(0797),
+ q(0798),
q(0),
],
q(anj) => [
- q(0798),
+ q(0799),
q(0),
],
q(ank) => [
- q(0799),
+ q(0800),
q(0),
],
q(anl) => [
- q(0800),
+ q(0801),
q(0),
],
q(anm) => [
- q(0801),
+ q(0802),
q(0),
],
q(ann) => [
- q(0802),
+ q(0803),
q(0),
],
q(ano) => [
- q(0803),
+ q(0804),
q(0),
],
q(anp) => [
@@ -59440,123 +59449,123 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(anq) => [
- q(0804),
+ q(0805),
q(0),
],
q(anr) => [
- q(0805),
+ q(0806),
q(0),
],
q(ans) => [
- q(0806),
+ q(0807),
q(0),
],
q(ant) => [
- q(0807),
+ q(0808),
q(0),
],
q(anu) => [
- q(0808),
+ q(0809),
q(0),
],
q(anv) => [
- q(0809),
+ q(0810),
q(0),
],
q(anw) => [
- q(0810),
+ q(0811),
q(0),
],
q(anx) => [
- q(0811),
+ q(0812),
q(0),
],
q(any) => [
- q(0812),
+ q(0813),
q(0),
],
q(anz) => [
- q(0813),
+ q(0814),
q(0),
],
q(aoa) => [
- q(0814),
+ q(0815),
q(0),
],
q(aob) => [
- q(0815),
+ q(0816),
q(0),
],
q(aoc) => [
- q(0816),
+ q(0817),
q(0),
],
q(aod) => [
- q(0817),
+ q(0818),
q(0),
],
q(aoe) => [
- q(0818),
+ q(0819),
q(0),
],
q(aof) => [
- q(0819),
+ q(0820),
q(0),
],
q(aog) => [
- q(0820),
+ q(0821),
q(0),
],
q(aoh) => [
- q(0821),
+ q(0822),
q(0),
],
q(aoi) => [
- q(0822),
+ q(0823),
q(0),
],
q(aoj) => [
- q(0823),
+ q(0824),
q(0),
],
q(aok) => [
- q(0824),
+ q(0825),
q(0),
],
q(aol) => [
- q(0825),
+ q(0826),
q(0),
],
q(aom) => [
- q(0826),
+ q(0827),
q(0),
],
q(aon) => [
- q(0827),
+ q(0828),
q(0),
],
q(aor) => [
- q(0828),
+ q(0829),
q(0),
],
q(aos) => [
- q(0829),
+ q(0830),
q(0),
],
q(aot) => [
- q(0830),
+ q(0831),
q(0),
],
q(aou) => [
- q(0831),
+ q(0832),
q(0),
],
q(aox) => [
- q(0832),
+ q(0833),
q(0),
],
q(aoz) => [
- q(0833),
+ q(0834),
q(0),
],
q(apa) => [
@@ -59564,147 +59573,147 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(apb) => [
- q(0834),
+ q(0835),
q(0),
],
q(apc) => [
- q(0835),
+ q(0836),
q(0),
],
q(apd) => [
- q(0836),
+ q(0837),
q(0),
],
q(ape) => [
- q(0837),
+ q(0838),
q(0),
],
q(apf) => [
- q(0838),
+ q(0839),
q(0),
],
q(apg) => [
- q(0839),
+ q(0840),
q(0),
],
q(aph) => [
- q(0840),
+ q(0841),
q(0),
],
q(api) => [
- q(0841),
+ q(0842),
q(0),
],
q(apj) => [
- q(0842),
+ q(0843),
q(0),
],
q(apk) => [
- q(0843),
+ q(0844),
q(0),
],
q(apl) => [
- q(0844),
+ q(0845),
q(0),
],
q(apm) => [
- q(0845),
+ q(0846),
q(0),
],
q(apn) => [
- q(0846),
+ q(0847),
q(0),
],
q(apo) => [
- q(0847),
+ q(0848),
q(0),
],
q(app) => [
- q(0848),
+ q(0849),
q(0),
],
q(apq) => [
- q(0849),
+ q(0850),
q(0),
],
q(apr) => [
- q(0850),
+ q(0851),
q(0),
],
q(aps) => [
- q(0851),
+ q(0852),
q(0),
],
q(apt) => [
- q(0852),
+ q(0853),
q(0),
],
q(apu) => [
- q(0853),
+ q(0854),
q(0),
],
q(apv) => [
- q(0854),
+ q(0855),
q(0),
],
q(apw) => [
- q(0855),
+ q(0856),
q(0),
],
q(apx) => [
- q(0856),
+ q(0857),
q(0),
],
q(apy) => [
- q(0857),
+ q(0858),
q(0),
],
q(apz) => [
- q(0858),
+ q(0859),
q(0),
],
q(aqa) => [
- q(0489),
+ q(0490),
q(0),
],
q(aqc) => [
- q(0859),
+ q(0860),
q(0),
],
q(aqd) => [
- q(0860),
+ q(0861),
q(0),
],
q(aqg) => [
- q(0861),
+ q(0862),
q(0),
],
q(aql) => [
- q(0490),
+ q(0491),
q(0),
],
q(aqm) => [
- q(0862),
+ q(0863),
q(0),
],
q(aqn) => [
- q(0863),
+ q(0864),
q(0),
],
q(aqp) => [
- q(0864),
+ q(0865),
q(0),
],
q(aqr) => [
- q(0865),
+ q(0866),
q(0),
],
q(aqt) => [
- q(0866),
+ q(0867),
q(0),
],
q(aqz) => [
- q(0867),
+ q(0868),
q(0),
],
q(ara) => [
@@ -59712,7 +59721,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(arb) => [
- q(0868),
+ q(0869),
q(0),
],
q(arc) => [
@@ -59720,11 +59729,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ard) => [
- q(0869),
+ q(0870),
q(0),
],
q(are) => [
- q(0870),
+ q(0871),
q(0),
],
q(arg) => [
@@ -59732,23 +59741,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(arh) => [
- q(0871),
+ q(0872),
q(0),
],
q(ari) => [
- q(0872),
+ q(0873),
q(0),
],
q(arj) => [
- q(0873),
+ q(0874),
q(0),
],
q(ark) => [
- q(0874),
+ q(0875),
q(0),
],
q(arl) => [
- q(0875),
+ q(0876),
q(0),
],
q(arm) => [
@@ -59760,7 +59769,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aro) => [
- q(0876),
+ q(0877),
q(0),
],
q(arp) => [
@@ -59768,15 +59777,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(arq) => [
- q(0877),
+ q(0878),
q(0),
],
q(arr) => [
- q(0878),
+ q(0879),
q(0),
],
q(ars) => [
- q(0879),
+ q(0880),
q(0),
],
q(art) => [
@@ -59784,11 +59793,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aru) => [
- q(0880),
+ q(0881),
q(0),
],
q(arv) => [
- q(0881),
+ q(0882),
q(0),
],
q(arw) => [
@@ -59796,63 +59805,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(arx) => [
- q(0882),
+ q(0883),
q(0),
],
q(ary) => [
- q(0883),
+ q(0884),
q(0),
],
q(arz) => [
- q(0884),
+ q(0885),
q(0),
],
q(asa) => [
- q(0885),
+ q(0886),
q(0),
],
q(asb) => [
- q(0886),
+ q(0887),
q(0),
],
q(asc) => [
- q(0887),
+ q(0888),
q(0),
],
q(asd) => [
- q(0888),
+ q(0889),
q(0),
],
q(ase) => [
- q(0889),
+ q(0890),
q(0),
],
q(asf) => [
- q(0890),
+ q(0891),
q(0),
],
q(asg) => [
- q(0891),
+ q(0892),
q(0),
],
q(ash) => [
- q(0892),
+ q(0893),
q(0),
],
q(asi) => [
- q(0893),
+ q(0894),
q(0),
],
q(asj) => [
- q(0894),
+ q(0895),
q(0),
],
q(ask) => [
- q(0895),
+ q(0896),
q(0),
],
q(asl) => [
- q(0896),
+ q(0897),
q(0),
],
q(asm) => [
@@ -59860,27 +59869,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(asn) => [
- q(0897),
+ q(0898),
q(0),
],
q(aso) => [
- q(0898),
+ q(0899),
q(0),
],
q(asp) => [
- q(0899),
+ q(0900),
q(0),
],
q(asq) => [
- q(0900),
+ q(0901),
q(0),
],
q(asr) => [
- q(0901),
+ q(0902),
q(0),
],
q(ass) => [
- q(0902),
+ q(0903),
q(0),
],
q(ast) => [
@@ -59888,51 +59897,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(asu) => [
- q(0903),
+ q(0904),
q(0),
],
q(asv) => [
- q(0904),
+ q(0905),
q(0),
],
q(asw) => [
- q(0905),
+ q(0906),
q(0),
],
q(asx) => [
- q(0906),
+ q(0907),
q(0),
],
q(asy) => [
- q(0907),
+ q(0908),
q(0),
],
q(asz) => [
- q(0908),
+ q(0909),
q(0),
],
q(ata) => [
- q(0909),
+ q(0910),
q(0),
],
q(atb) => [
- q(0910),
+ q(0911),
q(0),
],
q(atc) => [
- q(0911),
+ q(0912),
q(0),
],
q(atd) => [
- q(0912),
+ q(0913),
q(0),
],
q(ate) => [
- q(0913),
+ q(0914),
q(0),
],
q(atg) => [
- q(0914),
+ q(0915),
q(0),
],
q(ath) => [
@@ -59940,143 +59949,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ati) => [
- q(0915),
+ q(0916),
q(0),
],
q(atj) => [
- q(0916),
+ q(0917),
q(0),
],
q(atk) => [
- q(0917),
+ q(0918),
q(0),
],
q(atl) => [
- q(0918),
+ q(0919),
q(0),
],
q(atm) => [
- q(0919),
+ q(0920),
q(0),
],
q(atn) => [
- q(0920),
+ q(0921),
q(0),
],
q(ato) => [
- q(0921),
+ q(0922),
q(0),
],
q(atp) => [
- q(0922),
+ q(0923),
q(0),
],
q(atq) => [
- q(0923),
+ q(0924),
q(0),
],
q(atr) => [
- q(0924),
+ q(0925),
q(0),
],
q(ats) => [
- q(0925),
+ q(0926),
q(0),
],
q(att) => [
- q(0926),
+ q(0927),
q(0),
],
q(atu) => [
- q(0927),
+ q(0928),
q(0),
],
q(atv) => [
- q(0928),
+ q(0929),
q(0),
],
q(atw) => [
- q(0929),
+ q(0930),
q(0),
],
q(atx) => [
- q(0930),
+ q(0931),
q(0),
],
q(aty) => [
- q(0931),
+ q(0932),
q(0),
],
q(atz) => [
- q(0932),
+ q(0933),
q(0),
],
q(aua) => [
- q(0933),
+ q(0934),
q(0),
],
q(aub) => [
- q(0934),
+ q(0935),
q(0),
],
q(auc) => [
- q(0935),
+ q(0936),
q(0),
],
q(aud) => [
- q(0936),
+ q(0937),
q(0),
],
q(auf) => [
- q(0491),
+ q(0492),
q(0),
],
q(aug) => [
- q(0937),
+ q(0938),
q(0),
],
q(auh) => [
- q(0938),
+ q(0939),
q(0),
],
q(aui) => [
- q(0939),
+ q(0940),
q(0),
],
q(auj) => [
- q(0940),
+ q(0941),
q(0),
],
q(auk) => [
- q(0941),
+ q(0942),
q(0),
],
q(aul) => [
- q(0942),
+ q(0943),
q(0),
],
q(aum) => [
- q(0943),
+ q(0944),
q(0),
],
q(aun) => [
- q(0944),
+ q(0945),
q(0),
],
q(auo) => [
- q(0945),
+ q(0946),
q(0),
],
q(aup) => [
- q(0946),
+ q(0947),
q(0),
],
q(auq) => [
- q(0947),
+ q(0948),
q(0),
],
q(aur) => [
- q(0948),
+ q(0949),
q(0),
],
q(aus) => [
@@ -60084,27 +60093,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(aut) => [
- q(0949),
+ q(0950),
q(0),
],
q(auu) => [
- q(0950),
+ q(0951),
q(0),
],
q(auw) => [
- q(0951),
+ q(0952),
q(0),
],
q(aux) => [
- q(0952),
+ q(0953),
q(0),
],
q(auy) => [
- q(0953),
+ q(0954),
q(0),
],
q(auz) => [
- q(0954),
+ q(0955),
q(0),
],
q(ava) => [
@@ -60112,11 +60121,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(avb) => [
- q(0955),
+ q(0956),
q(0),
],
q(avd) => [
- q(0956),
+ q(0957),
q(0),
],
q(ave) => [
@@ -60124,43 +60133,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(avi) => [
- q(0957),
+ q(0958),
q(0),
],
q(avk) => [
- q(0958),
+ q(0959),
q(0),
],
q(avl) => [
- q(0959),
+ q(0960),
q(0),
],
q(avm) => [
- q(0960),
+ q(0961),
q(0),
],
q(avn) => [
- q(0961),
+ q(0962),
q(0),
],
q(avo) => [
- q(0962),
+ q(0963),
q(0),
],
q(avs) => [
- q(0963),
+ q(0964),
q(0),
],
q(avt) => [
- q(0964),
+ q(0965),
q(0),
],
q(avu) => [
- q(0965),
+ q(0966),
q(0),
],
q(avv) => [
- q(0966),
+ q(0967),
q(0),
],
q(awa) => [
@@ -60168,147 +60177,147 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(awb) => [
- q(0967),
+ q(0968),
q(0),
],
q(awc) => [
- q(0968),
+ q(0969),
q(0),
],
q(awd) => [
- q(0492),
+ q(0493),
q(0),
],
q(awe) => [
- q(0969),
+ q(0970),
q(0),
],
q(awg) => [
- q(0970),
+ q(0971),
q(0),
],
q(awh) => [
- q(0971),
+ q(0972),
q(0),
],
q(awi) => [
- q(0972),
+ q(0973),
q(0),
],
q(awk) => [
- q(0973),
+ q(0974),
q(0),
],
q(awm) => [
- q(0974),
+ q(0975),
q(0),
],
q(awn) => [
- q(0975),
+ q(0976),
q(0),
],
q(awo) => [
- q(0976),
+ q(0977),
q(0),
],
q(awr) => [
- q(0977),
+ q(0978),
q(0),
],
q(aws) => [
- q(0978),
+ q(0979),
q(0),
],
q(awt) => [
- q(0979),
+ q(0980),
q(0),
],
q(awu) => [
- q(0980),
+ q(0981),
q(0),
],
q(awv) => [
- q(0981),
+ q(0982),
q(0),
],
q(aww) => [
- q(0982),
+ q(0983),
q(0),
],
q(awx) => [
- q(0983),
+ q(0984),
q(0),
],
q(awy) => [
- q(0984),
+ q(0985),
q(0),
],
q(axb) => [
- q(0985),
+ q(0986),
q(0),
],
q(axe) => [
- q(0986),
+ q(0987),
q(0),
],
q(axg) => [
- q(0987),
+ q(0988),
q(0),
],
q(axk) => [
- q(0988),
+ q(0989),
q(0),
],
q(axl) => [
- q(0989),
+ q(0990),
q(0),
],
q(axm) => [
- q(0990),
+ q(0991),
q(0),
],
q(axx) => [
- q(0991),
+ q(0992),
q(0),
],
q(aya) => [
- q(0992),
+ q(0993),
q(0),
],
q(ayb) => [
- q(0993),
+ q(0994),
q(0),
],
q(ayc) => [
- q(0994),
+ q(0995),
q(0),
],
q(ayd) => [
- q(0995),
+ q(0996),
q(0),
],
q(aye) => [
- q(0996),
+ q(0997),
q(0),
],
q(ayg) => [
- q(0997),
+ q(0998),
q(0),
],
q(ayh) => [
- q(0998),
+ q(0999),
q(0),
],
q(ayi) => [
- q(0999),
+ q(1000),
q(0),
],
q(ayk) => [
- q(1000),
+ q(1001),
q(0),
],
q(ayl) => [
- q(1001),
+ q(1002),
q(0),
],
q(aym) => [
@@ -60316,59 +60325,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ayn) => [
- q(1002),
+ q(1003),
q(0),
],
q(ayo) => [
- q(1003),
+ q(1004),
q(0),
],
q(ayp) => [
- q(1004),
+ q(1005),
q(0),
],
q(ayq) => [
- q(1005),
+ q(1006),
q(0),
],
q(ayr) => [
- q(1006),
+ q(1007),
q(0),
],
q(ays) => [
- q(1007),
+ q(1008),
q(0),
],
q(ayt) => [
- q(1008),
+ q(1009),
q(0),
],
q(ayu) => [
- q(1009),
+ q(1010),
q(0),
],
q(ayy) => [
- q(1010),
+ q(1011),
q(0),
],
q(ayz) => [
- q(1011),
+ q(1012),
q(0),
],
q(aza) => [
- q(1012),
+ q(1013),
q(0),
],
q(azb) => [
- q(1013),
+ q(1014),
q(0),
],
q(azc) => [
- q(0493),
+ q(0494),
q(0),
],
q(azd) => [
- q(1014),
+ q(1015),
q(0),
],
q(aze) => [
@@ -60376,43 +60385,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(azg) => [
- q(1015),
+ q(1016),
q(0),
],
q(azj) => [
- q(1016),
+ q(1017),
q(0),
],
q(azm) => [
- q(1017),
+ q(1018),
q(0),
],
q(azn) => [
- q(1018),
+ q(1019),
q(0),
],
q(azo) => [
- q(1019),
+ q(1020),
q(0),
],
q(azt) => [
- q(1020),
+ q(1021),
q(0),
],
q(azz) => [
- q(1021),
+ q(1022),
q(0),
],
q(baa) => [
- q(1022),
+ q(1023),
q(0),
],
q(bab) => [
- q(1023),
+ q(1024),
q(0),
],
q(bac) => [
- q(1024),
+ q(1025),
q(0),
],
q(bad) => [
@@ -60420,19 +60429,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bae) => [
- q(1025),
+ q(1026),
q(0),
],
q(baf) => [
- q(1026),
+ q(1027),
q(0),
],
q(bag) => [
- q(1027),
+ q(1028),
q(0),
],
q(bah) => [
- q(1028),
+ q(1029),
q(0),
],
q(bai) => [
@@ -60440,7 +60449,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(baj) => [
- q(1029),
+ q(1030),
q(0),
],
q(bak) => [
@@ -60460,11 +60469,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bao) => [
- q(1030),
+ q(1031),
q(0),
],
q(bap) => [
- q(1031),
+ q(1032),
q(0),
],
q(baq) => [
@@ -60472,7 +60481,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bar) => [
- q(1032),
+ q(1033),
q(0),
],
q(bas) => [
@@ -60484,367 +60493,367 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bau) => [
- q(1033),
+ q(1034),
q(0),
],
q(bav) => [
- q(1034),
+ q(1035),
q(0),
],
q(baw) => [
- q(1035),
+ q(1036),
q(0),
],
q(bax) => [
- q(1036),
+ q(1037),
q(0),
],
q(bay) => [
- q(1037),
+ q(1038),
q(0),
],
q(bba) => [
- q(1038),
+ q(1039),
q(0),
],
q(bbb) => [
- q(1039),
+ q(1040),
q(0),
],
q(bbc) => [
- q(1040),
+ q(1041),
q(0),
],
q(bbd) => [
- q(1041),
+ q(1042),
q(0),
],
q(bbe) => [
- q(1042),
+ q(1043),
q(0),
],
q(bbf) => [
- q(1043),
+ q(1044),
q(0),
],
q(bbg) => [
- q(1044),
+ q(1045),
q(0),
],
q(bbh) => [
- q(1045),
+ q(1046),
q(0),
],
q(bbi) => [
- q(1046),
+ q(1047),
q(0),
],
q(bbj) => [
- q(1047),
+ q(1048),
q(0),
],
q(bbk) => [
- q(1048),
+ q(1049),
q(0),
],
q(bbl) => [
- q(1049),
+ q(1050),
q(0),
],
q(bbm) => [
- q(1050),
+ q(1051),
q(0),
],
q(bbn) => [
- q(1051),
+ q(1052),
q(0),
],
q(bbo) => [
- q(1052),
+ q(1053),
q(0),
],
q(bbp) => [
- q(1053),
+ q(1054),
q(0),
],
q(bbq) => [
- q(1054),
+ q(1055),
q(0),
],
q(bbr) => [
- q(1055),
+ q(1056),
q(0),
],
q(bbs) => [
- q(1056),
+ q(1057),
q(0),
],
q(bbt) => [
- q(1057),
+ q(1058),
q(0),
],
q(bbu) => [
- q(1058),
+ q(1059),
q(0),
],
q(bbv) => [
- q(1059),
+ q(1060),
q(0),
],
q(bbw) => [
- q(1060),
+ q(1061),
q(0),
],
q(bbx) => [
- q(1061),
+ q(1062),
q(0),
],
q(bby) => [
- q(1062),
+ q(1063),
q(0),
],
q(bbz) => [
- q(1063),
+ q(1064),
q(0),
],
q(bca) => [
- q(1064),
+ q(1065),
q(0),
],
q(bcb) => [
- q(1065),
+ q(1066),
q(0),
],
q(bcc) => [
- q(1066),
+ q(1067),
q(0),
],
q(bcd) => [
- q(1067),
+ q(1068),
q(0),
],
q(bce) => [
- q(1068),
+ q(1069),
q(0),
],
q(bcf) => [
- q(1069),
+ q(1070),
q(0),
],
q(bcg) => [
- q(1070),
+ q(1071),
q(0),
],
q(bch) => [
- q(1071),
+ q(1072),
q(0),
],
q(bci) => [
- q(1072),
+ q(1073),
q(0),
],
q(bcj) => [
- q(1073),
+ q(1074),
q(0),
],
q(bck) => [
- q(1074),
+ q(1075),
q(0),
],
q(bcl) => [
- q(1075),
+ q(1076),
q(0),
],
q(bcm) => [
- q(1076),
+ q(1077),
q(0),
],
q(bcn) => [
- q(1077),
+ q(1078),
q(0),
],
q(bco) => [
- q(1078),
+ q(1079),
q(0),
],
q(bcp) => [
- q(1079),
+ q(1080),
q(0),
],
q(bcq) => [
- q(1080),
+ q(1081),
q(0),
],
q(bcr) => [
- q(1081),
+ q(1082),
q(0),
],
q(bcs) => [
- q(1082),
+ q(1083),
q(0),
],
q(bct) => [
- q(1083),
+ q(1084),
q(0),
],
q(bcu) => [
- q(1084),
+ q(1085),
q(0),
],
q(bcv) => [
- q(1085),
+ q(1086),
q(0),
],
q(bcw) => [
- q(1086),
+ q(1087),
q(0),
],
q(bcy) => [
- q(1087),
+ q(1088),
q(0),
],
q(bcz) => [
- q(1088),
+ q(1089),
q(0),
],
q(bda) => [
- q(1089),
+ q(1090),
q(0),
],
q(bdb) => [
- q(1090),
+ q(1091),
q(0),
],
q(bdc) => [
- q(1091),
+ q(1092),
q(0),
],
q(bdd) => [
- q(1092),
+ q(1093),
q(0),
],
q(bde) => [
- q(1093),
+ q(1094),
q(0),
],
q(bdf) => [
- q(1094),
+ q(1095),
q(0),
],
q(bdg) => [
- q(1095),
+ q(1096),
q(0),
],
q(bdh) => [
- q(1096),
+ q(1097),
q(0),
],
q(bdi) => [
- q(1097),
+ q(1098),
q(0),
],
q(bdj) => [
- q(1098),
+ q(1099),
q(0),
],
q(bdk) => [
- q(1099),
+ q(1100),
q(0),
],
q(bdl) => [
- q(1100),
+ q(1101),
q(0),
],
q(bdm) => [
- q(1101),
+ q(1102),
q(0),
],
q(bdn) => [
- q(1102),
+ q(1103),
q(0),
],
q(bdo) => [
- q(1103),
+ q(1104),
q(0),
],
q(bdp) => [
- q(1104),
+ q(1105),
q(0),
],
q(bdq) => [
- q(1105),
+ q(1106),
q(0),
],
q(bdr) => [
- q(1106),
+ q(1107),
q(0),
],
q(bds) => [
- q(1107),
+ q(1108),
q(0),
],
q(bdt) => [
- q(1108),
+ q(1109),
q(0),
],
q(bdu) => [
- q(1109),
+ q(1110),
q(0),
],
q(bdv) => [
- q(1110),
+ q(1111),
q(0),
],
q(bdw) => [
- q(1111),
+ q(1112),
q(0),
],
q(bdx) => [
- q(1112),
+ q(1113),
q(0),
],
q(bdy) => [
- q(1113),
+ q(1114),
q(0),
],
q(bdz) => [
- q(1114),
+ q(1115),
q(0),
],
q(bea) => [
- q(1115),
+ q(1116),
q(0),
],
q(beb) => [
- q(1116),
+ q(1117),
q(0),
],
q(bec) => [
- q(1117),
+ q(1118),
q(0),
],
q(bed) => [
- q(1118),
+ q(1119),
q(0),
],
q(bee) => [
- q(1119),
+ q(1120),
q(0),
],
q(bef) => [
- q(1120),
+ q(1121),
q(0),
],
q(beg) => [
- q(1121),
+ q(1122),
q(0),
],
q(beh) => [
- q(1122),
+ q(1123),
q(0),
],
q(bei) => [
- q(1123),
+ q(1124),
q(0),
],
q(bej) => [
@@ -60852,7 +60861,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bek) => [
- q(1124),
+ q(1125),
q(0),
],
q(bel) => [
@@ -60868,15 +60877,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(beo) => [
- q(1125),
+ q(1126),
q(0),
],
q(bep) => [
- q(1126),
+ q(1127),
q(0),
],
q(beq) => [
- q(1127),
+ q(1128),
q(0),
],
q(ber) => [
@@ -60884,182 +60893,178 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bes) => [
- q(1128),
- q(0),
- ],
- q(bet) => [
q(1129),
q(0),
],
- q(beu) => [
+ q(bet) => [
q(1130),
q(0),
],
- q(bev) => [
+ q(beu) => [
q(1131),
q(0),
],
- q(bew) => [
+ q(bev) => [
q(1132),
q(0),
],
- q(bex) => [
+ q(bew) => [
q(1133),
q(0),
],
- q(bey) => [
+ q(bex) => [
q(1134),
q(0),
],
- q(bez) => [
+ q(bey) => [
q(1135),
q(0),
],
- q(bfa) => [
+ q(bez) => [
q(1136),
q(0),
],
- q(bfb) => [
+ q(bfa) => [
q(1137),
q(0),
],
- q(bfc) => [
+ q(bfb) => [
q(1138),
q(0),
],
- q(bfd) => [
+ q(bfc) => [
q(1139),
q(0),
],
- q(bfe) => [
+ q(bfd) => [
q(1140),
q(0),
],
- q(bff) => [
+ q(bfe) => [
q(1141),
q(0),
],
- q(bfg) => [
+ q(bff) => [
q(1142),
q(0),
],
- q(bfh) => [
+ q(bfg) => [
q(1143),
q(0),
],
- q(bfi) => [
+ q(bfh) => [
q(1144),
q(0),
],
- q(bfj) => [
+ q(bfi) => [
q(1145),
q(0),
],
- q(bfk) => [
+ q(bfj) => [
q(1146),
q(0),
],
- q(bfl) => [
+ q(bfk) => [
q(1147),
q(0),
],
- q(bfm) => [
+ q(bfl) => [
q(1148),
q(0),
],
- q(bfn) => [
+ q(bfm) => [
q(1149),
q(0),
],
- q(bfo) => [
+ q(bfn) => [
q(1150),
q(0),
],
- q(bfp) => [
+ q(bfo) => [
q(1151),
q(0),
],
- q(bfq) => [
+ q(bfp) => [
q(1152),
q(0),
],
- q(bfr) => [
+ q(bfq) => [
q(1153),
q(0),
],
- q(bfs) => [
+ q(bfr) => [
q(1154),
q(0),
],
- q(bft) => [
+ q(bfs) => [
q(1155),
q(0),
],
- q(bfu) => [
+ q(bft) => [
q(1156),
q(0),
],
- q(bfw) => [
+ q(bfu) => [
q(1157),
q(0),
],
- q(bfx) => [
+ q(bfw) => [
q(1158),
q(0),
],
- q(bfy) => [
+ q(bfx) => [
q(1159),
q(0),
],
- q(bfz) => [
+ q(bfy) => [
q(1160),
q(0),
],
- q(bga) => [
+ q(bfz) => [
q(1161),
q(0),
],
- q(bgb) => [
+ q(bga) => [
q(1162),
q(0),
],
- q(bgc) => [
+ q(bgb) => [
q(1163),
q(0),
],
- q(bgd) => [
+ q(bgc) => [
q(1164),
q(0),
],
- q(bge) => [
+ q(bgd) => [
q(1165),
q(0),
],
- q(bgf) => [
+ q(bge) => [
q(1166),
q(0),
],
- q(bgg) => [
+ q(bgf) => [
q(1167),
q(0),
],
- q(bgi) => [
+ q(bgg) => [
q(1168),
q(0),
],
- q(bgj) => [
+ q(bgi) => [
q(1169),
q(0),
],
- q(bgk) => [
+ q(bgj) => [
q(1170),
q(0),
],
- q(bgl) => [
+ q(bgk) => [
q(1171),
q(0),
],
- q(bgm) => [
+ q(bgl) => [
q(1172),
q(0),
],
@@ -62335,64 +62340,60 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0062),
q(0),
],
- q(btl) => [
- q(1480),
- q(0),
- ],
q(btm) => [
- q(1481),
+ q(1480),
q(0),
],
q(btn) => [
- q(1482),
+ q(1481),
q(0),
],
q(bto) => [
- q(1483),
+ q(1482),
q(0),
],
q(btp) => [
- q(1484),
+ q(1483),
q(0),
],
q(btq) => [
- q(1485),
+ q(1484),
q(0),
],
q(btr) => [
- q(1486),
+ q(1485),
q(0),
],
q(bts) => [
- q(1487),
+ q(1486),
q(0),
],
q(btt) => [
- q(1488),
+ q(1487),
q(0),
],
q(btu) => [
- q(1489),
+ q(1488),
q(0),
],
q(btv) => [
- q(1490),
+ q(1489),
q(0),
],
q(btw) => [
- q(1491),
+ q(1490),
q(0),
],
q(btx) => [
- q(1492),
+ q(1491),
q(0),
],
q(bty) => [
- q(1493),
+ q(1492),
q(0),
],
q(btz) => [
- q(1494),
+ q(1493),
q(0),
],
q(bua) => [
@@ -62400,23 +62401,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bub) => [
- q(1495),
+ q(1494),
q(0),
],
q(buc) => [
- q(1496),
+ q(1495),
q(0),
],
q(bud) => [
- q(1497),
+ q(1496),
q(0),
],
q(bue) => [
- q(1498),
+ q(1497),
q(0),
],
q(buf) => [
- q(1499),
+ q(1498),
q(0),
],
q(bug) => [
@@ -62424,19 +62425,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(buh) => [
- q(1500),
+ q(1499),
q(0),
],
q(bui) => [
- q(1501),
+ q(1500),
q(0),
],
q(buj) => [
- q(1502),
+ q(1501),
q(0),
],
q(buk) => [
- q(1503),
+ q(1502),
q(0),
],
q(bul) => [
@@ -62444,23 +62445,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bum) => [
- q(1504),
+ q(1503),
q(0),
],
q(bun) => [
- q(1505),
+ q(1504),
q(0),
],
q(buo) => [
- q(1506),
+ q(1505),
q(0),
],
q(bup) => [
- q(1507),
+ q(1506),
q(0),
],
q(buq) => [
- q(1508),
+ q(1507),
q(0),
],
q(bur) => [
@@ -62468,379 +62469,379 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bus) => [
- q(1509),
+ q(1508),
q(0),
],
q(but) => [
- q(1510),
+ q(1509),
q(0),
],
q(buu) => [
- q(1511),
+ q(1510),
q(0),
],
q(buv) => [
- q(1512),
+ q(1511),
q(0),
],
q(buw) => [
- q(1513),
+ q(1512),
q(0),
],
q(bux) => [
- q(1514),
+ q(1513),
q(0),
],
q(buy) => [
- q(1515),
+ q(1514),
q(0),
],
q(buz) => [
- q(1516),
+ q(1515),
q(0),
],
q(bva) => [
- q(1517),
+ q(1516),
q(0),
],
q(bvb) => [
- q(1518),
+ q(1517),
q(0),
],
q(bvc) => [
- q(1519),
+ q(1518),
q(0),
],
q(bvd) => [
- q(1520),
+ q(1519),
q(0),
],
q(bve) => [
- q(1521),
+ q(1520),
q(0),
],
q(bvf) => [
- q(1522),
+ q(1521),
q(0),
],
q(bvg) => [
- q(1523),
+ q(1522),
q(0),
],
q(bvh) => [
- q(1524),
+ q(1523),
q(0),
],
q(bvi) => [
- q(1525),
+ q(1524),
q(0),
],
q(bvj) => [
- q(1526),
+ q(1525),
q(0),
],
q(bvk) => [
- q(1527),
+ q(1526),
q(0),
],
q(bvl) => [
- q(1528),
+ q(1527),
q(0),
],
q(bvm) => [
- q(1529),
+ q(1528),
q(0),
],
q(bvn) => [
- q(1530),
+ q(1529),
q(0),
],
q(bvo) => [
- q(1531),
+ q(1530),
q(0),
],
q(bvp) => [
- q(1532),
+ q(1531),
q(0),
],
q(bvq) => [
- q(1533),
+ q(1532),
q(0),
],
q(bvr) => [
- q(1534),
+ q(1533),
q(0),
],
q(bvt) => [
- q(1535),
+ q(1534),
q(0),
],
q(bvu) => [
- q(1536),
+ q(1535),
q(0),
],
q(bvv) => [
- q(1537),
+ q(1536),
q(0),
],
q(bvw) => [
- q(1538),
+ q(1537),
q(0),
],
q(bvx) => [
- q(1539),
+ q(1538),
q(0),
],
q(bvy) => [
- q(1540),
+ q(1539),
q(0),
],
q(bvz) => [
- q(1541),
+ q(1540),
q(0),
],
q(bwa) => [
- q(1542),
+ q(1541),
q(0),
],
q(bwb) => [
- q(1543),
+ q(1542),
q(0),
],
q(bwc) => [
- q(1544),
+ q(1543),
q(0),
],
q(bwd) => [
- q(1545),
+ q(1544),
q(0),
],
q(bwe) => [
- q(1546),
+ q(1545),
q(0),
],
q(bwf) => [
- q(1547),
+ q(1546),
q(0),
],
q(bwg) => [
- q(1548),
+ q(1547),
q(0),
],
q(bwh) => [
- q(1549),
+ q(1548),
q(0),
],
q(bwi) => [
- q(1550),
+ q(1549),
q(0),
],
q(bwj) => [
- q(1551),
+ q(1550),
q(0),
],
q(bwk) => [
- q(1552),
+ q(1551),
q(0),
],
q(bwl) => [
- q(1553),
+ q(1552),
q(0),
],
q(bwm) => [
- q(1554),
+ q(1553),
q(0),
],
q(bwn) => [
- q(1555),
+ q(1554),
q(0),
],
q(bwo) => [
- q(1556),
+ q(1555),
q(0),
],
q(bwp) => [
- q(1557),
+ q(1556),
q(0),
],
q(bwq) => [
- q(1558),
+ q(1557),
q(0),
],
q(bwr) => [
- q(1559),
+ q(1558),
q(0),
],
q(bws) => [
- q(1560),
+ q(1559),
q(0),
],
q(bwt) => [
- q(1561),
+ q(1560),
q(0),
],
q(bwu) => [
- q(1562),
+ q(1561),
q(0),
],
q(bww) => [
- q(1563),
+ q(1562),
q(0),
],
q(bwx) => [
- q(1564),
+ q(1563),
q(0),
],
q(bwy) => [
- q(1565),
+ q(1564),
q(0),
],
q(bwz) => [
- q(1566),
+ q(1565),
q(0),
],
q(bxa) => [
- q(1567),
+ q(1566),
q(0),
],
q(bxb) => [
- q(1568),
+ q(1567),
q(0),
],
q(bxc) => [
- q(1569),
+ q(1568),
q(0),
],
q(bxd) => [
- q(1570),
+ q(1569),
q(0),
],
q(bxe) => [
- q(1571),
+ q(1570),
q(0),
],
q(bxf) => [
- q(1572),
+ q(1571),
q(0),
],
q(bxg) => [
- q(1573),
+ q(1572),
q(0),
],
q(bxh) => [
- q(1574),
+ q(1573),
q(0),
],
q(bxi) => [
- q(1575),
+ q(1574),
q(0),
],
q(bxj) => [
- q(1576),
+ q(1575),
q(0),
],
q(bxk) => [
- q(1577),
+ q(1576),
q(0),
],
q(bxl) => [
- q(1578),
+ q(1577),
q(0),
],
q(bxm) => [
- q(1579),
+ q(1578),
q(0),
],
q(bxn) => [
- q(1580),
+ q(1579),
q(0),
],
q(bxo) => [
- q(1581),
+ q(1580),
q(0),
],
q(bxp) => [
- q(1582),
+ q(1581),
q(0),
],
q(bxq) => [
- q(1583),
+ q(1582),
q(0),
],
q(bxr) => [
- q(1584),
+ q(1583),
q(0),
],
q(bxs) => [
- q(1585),
+ q(1584),
q(0),
],
q(bxu) => [
- q(1586),
+ q(1585),
q(0),
],
q(bxv) => [
- q(1587),
+ q(1586),
q(0),
],
q(bxw) => [
- q(1588),
+ q(1587),
q(0),
],
q(bxz) => [
- q(1589),
+ q(1588),
q(0),
],
q(bya) => [
- q(1590),
+ q(1589),
q(0),
],
q(byb) => [
- q(1591),
+ q(1590),
q(0),
],
q(byc) => [
- q(1592),
+ q(1591),
q(0),
],
q(byd) => [
- q(1593),
+ q(1592),
q(0),
],
q(bye) => [
- q(1594),
+ q(1593),
q(0),
],
q(byf) => [
- q(1595),
+ q(1594),
q(0),
],
q(byg) => [
- q(1596),
+ q(1595),
q(0),
],
q(byh) => [
- q(1597),
+ q(1596),
q(0),
],
q(byi) => [
- q(1598),
+ q(1597),
q(0),
],
q(byj) => [
- q(1599),
+ q(1598),
q(0),
],
q(byk) => [
- q(1600),
+ q(1599),
q(0),
],
q(byl) => [
- q(1601),
+ q(1600),
q(0),
],
q(bym) => [
- q(1602),
+ q(1601),
q(0),
],
q(byn) => [
@@ -62848,159 +62849,159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(byo) => [
- q(1603),
+ q(1602),
q(0),
],
q(byp) => [
- q(1604),
+ q(1603),
q(0),
],
q(byq) => [
- q(1605),
+ q(1604),
q(0),
],
q(byr) => [
- q(1606),
+ q(1605),
q(0),
],
q(bys) => [
- q(1607),
+ q(1606),
q(0),
],
q(byt) => [
- q(1608),
+ q(1607),
q(0),
],
q(byv) => [
- q(1609),
+ q(1608),
q(0),
],
q(byw) => [
- q(1610),
+ q(1609),
q(0),
],
q(byx) => [
- q(1611),
+ q(1610),
q(0),
],
q(byz) => [
- q(1612),
+ q(1611),
q(0),
],
q(bza) => [
- q(1613),
+ q(1612),
q(0),
],
q(bzb) => [
- q(1614),
+ q(1613),
q(0),
],
q(bzc) => [
- q(1615),
+ q(1614),
q(0),
],
q(bzd) => [
- q(1616),
+ q(1615),
q(0),
],
q(bze) => [
- q(1617),
+ q(1616),
q(0),
],
q(bzf) => [
- q(1618),
+ q(1617),
q(0),
],
q(bzg) => [
- q(1619),
+ q(1618),
q(0),
],
q(bzh) => [
- q(1620),
+ q(1619),
q(0),
],
q(bzi) => [
- q(1621),
+ q(1620),
q(0),
],
q(bzj) => [
- q(1622),
+ q(1621),
q(0),
],
q(bzk) => [
- q(1623),
+ q(1622),
q(0),
],
q(bzl) => [
- q(1624),
+ q(1623),
q(0),
],
q(bzm) => [
- q(1625),
+ q(1624),
q(0),
],
q(bzn) => [
- q(1626),
+ q(1625),
q(0),
],
q(bzo) => [
- q(1627),
+ q(1626),
q(0),
],
q(bzp) => [
- q(1628),
+ q(1627),
q(0),
],
q(bzq) => [
- q(1629),
+ q(1628),
q(0),
],
q(bzr) => [
- q(1630),
+ q(1629),
q(0),
],
q(bzs) => [
- q(1631),
+ q(1630),
q(0),
],
q(bzt) => [
- q(1632),
+ q(1631),
q(0),
],
q(bzu) => [
- q(1633),
+ q(1632),
q(0),
],
q(bzv) => [
- q(1634),
+ q(1633),
q(0),
],
q(bzw) => [
- q(1635),
+ q(1634),
q(0),
],
q(bzx) => [
- q(1636),
+ q(1635),
q(0),
],
q(bzy) => [
- q(1637),
+ q(1636),
q(0),
],
q(bzz) => [
- q(1638),
+ q(1637),
q(0),
],
q(caa) => [
- q(1639),
+ q(1638),
q(0),
],
q(cab) => [
- q(1640),
+ q(1639),
q(0),
],
q(cac) => [
- q(1641),
+ q(1640),
q(0),
],
q(cad) => [
@@ -63008,19 +63009,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cae) => [
- q(1642),
+ q(1641),
q(0),
],
q(caf) => [
- q(1643),
+ q(1642),
q(0),
],
q(cag) => [
- q(1644),
+ q(1643),
q(0),
],
q(cah) => [
- q(1645),
+ q(1644),
q(0),
],
q(cai) => [
@@ -63028,35 +63029,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(caj) => [
- q(1646),
+ q(1645),
q(0),
],
q(cak) => [
- q(1647),
+ q(1646),
q(0),
],
q(cal) => [
- q(1648),
+ q(1647),
q(0),
],
q(cam) => [
- q(1649),
+ q(1648),
q(0),
],
q(can) => [
- q(1650),
+ q(1649),
q(0),
],
q(cao) => [
- q(1651),
+ q(1650),
q(0),
],
q(cap) => [
- q(1652),
+ q(1651),
q(0),
],
q(caq) => [
- q(1653),
+ q(1652),
q(0),
],
q(car) => [
@@ -63064,7 +63065,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cas) => [
- q(1654),
+ q(1653),
q(0),
],
q(cat) => [
@@ -63076,231 +63077,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cav) => [
- q(1655),
+ q(1654),
q(0),
],
q(caw) => [
- q(1656),
+ q(1655),
q(0),
],
q(cax) => [
- q(1657),
+ q(1656),
q(0),
],
q(cay) => [
- q(1658),
+ q(1657),
q(0),
],
q(caz) => [
- q(1659),
+ q(1658),
q(0),
],
q(cba) => [
- q(0494),
+ q(0495),
q(0),
],
q(cbb) => [
- q(1660),
+ q(1659),
q(0),
],
q(cbc) => [
- q(1661),
+ q(1660),
q(0),
],
q(cbd) => [
- q(1662),
- q(0),
- ],
- q(cbe) => [
- q(1663),
+ q(1661),
q(0),
],
q(cbg) => [
- q(1664),
- q(0),
- ],
- q(cbh) => [
- q(1665),
+ q(1662),
q(0),
],
q(cbi) => [
- q(1666),
+ q(1663),
q(0),
],
q(cbj) => [
- q(1667),
+ q(1664),
q(0),
],
q(cbk) => [
- q(1668),
+ q(1665),
q(0),
],
q(cbl) => [
- q(1669),
+ q(1666),
q(0),
],
q(cbn) => [
- q(1670),
+ q(1667),
q(0),
],
q(cbo) => [
- q(1671),
+ q(1668),
q(0),
],
q(cbq) => [
- q(1672),
+ q(1669),
q(0),
],
q(cbr) => [
- q(1673),
+ q(1670),
q(0),
],
q(cbs) => [
- q(1674),
+ q(1671),
q(0),
],
q(cbt) => [
- q(1675),
+ q(1672),
q(0),
],
q(cbu) => [
- q(1676),
+ q(1673),
q(0),
],
q(cbv) => [
- q(1677),
+ q(1674),
q(0),
],
q(cbw) => [
- q(1678),
+ q(1675),
q(0),
],
q(cby) => [
- q(1679),
+ q(1676),
q(0),
],
q(cca) => [
- q(1680),
+ q(1677),
q(0),
],
q(ccc) => [
- q(1681),
+ q(1678),
q(0),
],
q(ccd) => [
- q(1682),
+ q(1679),
q(0),
],
q(cce) => [
- q(1683),
+ q(1680),
q(0),
],
q(ccg) => [
- q(1684),
+ q(1681),
q(0),
],
q(cch) => [
- q(1685),
+ q(1682),
q(0),
],
q(ccj) => [
- q(1686),
+ q(1683),
q(0),
],
q(ccl) => [
- q(1687),
+ q(1684),
q(0),
],
q(ccm) => [
- q(1688),
+ q(1685),
q(0),
],
q(ccn) => [
- q(0495),
+ q(0496),
q(0),
],
q(cco) => [
- q(1689),
+ q(1686),
q(0),
],
q(ccp) => [
- q(1690),
+ q(1687),
q(0),
],
q(ccr) => [
- q(1691),
+ q(1688),
q(0),
],
q(ccs) => [
- q(0496),
+ q(0497),
q(0),
],
q(cda) => [
- q(1692),
+ q(1689),
q(0),
],
q(cdc) => [
- q(0497),
+ q(0498),
q(0),
],
q(cdd) => [
- q(0498),
+ q(0499),
q(0),
],
q(cde) => [
- q(1693),
+ q(1690),
q(0),
],
q(cdf) => [
- q(1694),
+ q(1691),
q(0),
],
q(cdg) => [
- q(1695),
+ q(1692),
q(0),
],
q(cdh) => [
- q(1696),
+ q(1693),
q(0),
],
q(cdi) => [
- q(1697),
+ q(1694),
q(0),
],
q(cdj) => [
- q(1698),
+ q(1695),
q(0),
],
q(cdm) => [
- q(1699),
+ q(1696),
q(0),
],
q(cdn) => [
- q(1700),
+ q(1697),
q(0),
],
q(cdo) => [
- q(1701),
+ q(1698),
q(0),
],
q(cdr) => [
- q(1702),
+ q(1699),
q(0),
],
q(cds) => [
- q(1703),
+ q(1700),
q(0),
],
q(cdy) => [
- q(1704),
+ q(1701),
q(0),
],
q(cdz) => [
- q(1705),
+ q(1702),
q(0),
],
q(cea) => [
- q(1706),
+ q(1703),
q(0),
],
q(ceb) => [
@@ -63308,11 +63301,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ceg) => [
- q(1707),
+ q(1704),
q(0),
],
q(cek) => [
- q(1708),
+ q(1705),
q(0),
],
q(cel) => [
@@ -63320,43 +63313,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cen) => [
- q(1709),
+ q(1706),
q(0),
],
q(cet) => [
- q(1710),
+ q(1707),
q(0),
],
q(cfa) => [
- q(1711),
+ q(1708),
q(0),
],
q(cfd) => [
- q(1712),
+ q(1709),
q(0),
],
q(cfg) => [
- q(1713),
+ q(1710),
q(0),
],
q(cfm) => [
- q(1714),
+ q(1711),
q(0),
],
q(cga) => [
- q(1715),
+ q(1712),
q(0),
],
q(cgc) => [
- q(1716),
+ q(1713),
q(0),
],
q(cgg) => [
- q(1717),
+ q(1714),
q(0),
],
q(cgk) => [
- q(1718),
+ q(1715),
q(0),
],
q(cha) => [
@@ -63368,11 +63361,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chc) => [
- q(1719),
+ q(1716),
q(0),
],
q(chd) => [
- q(1720),
+ q(1717),
q(0),
],
q(che) => [
@@ -63380,7 +63373,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chf) => [
- q(1721),
+ q(1718),
q(0),
],
q(chg) => [
@@ -63388,7 +63381,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chh) => [
- q(1722),
+ q(1719),
q(0),
],
q(chi) => [
@@ -63396,7 +63389,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chj) => [
- q(1723),
+ q(1720),
q(0),
],
q(chk) => [
@@ -63404,7 +63397,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chl) => [
- q(1724),
+ q(1721),
q(0),
],
q(chm) => [
@@ -63424,7 +63417,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chq) => [
- q(1725),
+ q(1722),
q(0),
],
q(chr) => [
@@ -63432,7 +63425,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cht) => [
- q(1726),
+ q(1723),
q(0),
],
q(chu) => [
@@ -63444,11 +63437,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chw) => [
- q(1727),
+ q(1724),
q(0),
],
q(chx) => [
- q(1728),
+ q(1725),
q(0),
],
q(chy) => [
@@ -63456,227 +63449,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chz) => [
- q(1729),
+ q(1726),
q(0),
],
q(cia) => [
- q(1730),
+ q(1727),
q(0),
],
q(cib) => [
- q(1731),
+ q(1728),
q(0),
],
q(cic) => [
- q(1732),
+ q(1729),
q(0),
],
q(cid) => [
- q(1733),
+ q(1730),
q(0),
],
q(cie) => [
- q(1734),
+ q(1731),
q(0),
],
q(cih) => [
- q(1735),
+ q(1732),
q(0),
],
q(cik) => [
- q(1736),
+ q(1733),
q(0),
],
q(cim) => [
- q(1737),
+ q(1734),
q(0),
],
q(cin) => [
- q(1738),
+ q(1735),
q(0),
],
q(cip) => [
- q(1739),
+ q(1736),
q(0),
],
q(cir) => [
- q(1740),
+ q(1737),
q(0),
],
q(ciw) => [
- q(1741),
+ q(1738),
q(0),
],
q(ciy) => [
- q(1742),
+ q(1739),
q(0),
],
q(cja) => [
- q(1743),
+ q(1740),
q(0),
],
q(cje) => [
- q(1744),
+ q(1741),
q(0),
],
q(cjh) => [
- q(1745),
+ q(1742),
q(0),
],
q(cji) => [
- q(1746),
+ q(1743),
q(0),
],
q(cjk) => [
- q(1747),
+ q(1744),
q(0),
],
q(cjm) => [
- q(1748),
+ q(1745),
q(0),
],
q(cjn) => [
- q(1749),
+ q(1746),
q(0),
],
q(cjo) => [
- q(1750),
+ q(1747),
q(0),
],
q(cjp) => [
- q(1751),
+ q(1748),
q(0),
],
q(cjs) => [
- q(1752),
+ q(1749),
q(0),
],
q(cjv) => [
- q(1753),
+ q(1750),
q(0),
],
q(cjy) => [
- q(1754),
+ q(1751),
q(0),
],
q(ckb) => [
- q(1755),
+ q(1752),
q(0),
],
q(ckh) => [
- q(1756),
+ q(1753),
q(0),
],
q(ckl) => [
- q(1757),
+ q(1754),
q(0),
],
q(ckn) => [
- q(1758),
+ q(1755),
q(0),
],
q(cko) => [
- q(1759),
+ q(1756),
q(0),
],
q(ckq) => [
- q(1760),
+ q(1757),
q(0),
],
q(ckr) => [
- q(1761),
+ q(1758),
q(0),
],
q(cks) => [
- q(1762),
+ q(1759),
q(0),
],
q(ckt) => [
- q(1763),
+ q(1760),
q(0),
],
q(cku) => [
- q(1764),
+ q(1761),
q(0),
],
q(ckv) => [
- q(1765),
+ q(1762),
q(0),
],
q(ckx) => [
- q(1766),
+ q(1763),
q(0),
],
q(cky) => [
- q(1767),
+ q(1764),
q(0),
],
q(ckz) => [
- q(1768),
+ q(1765),
q(0),
],
q(cla) => [
- q(1769),
+ q(1766),
q(0),
],
q(clc) => [
- q(1770),
+ q(1767),
q(0),
],
q(cld) => [
- q(1771),
+ q(1768),
q(0),
],
q(cle) => [
- q(1772),
+ q(1769),
q(0),
],
q(clh) => [
- q(1773),
+ q(1770),
q(0),
],
q(cli) => [
- q(1774),
+ q(1771),
q(0),
],
q(clj) => [
- q(1775),
+ q(1772),
q(0),
],
q(clk) => [
- q(1776),
+ q(1773),
q(0),
],
q(cll) => [
- q(1777),
+ q(1774),
q(0),
],
q(clm) => [
- q(1778),
+ q(1775),
q(0),
],
q(clo) => [
- q(1779),
+ q(1776),
q(0),
],
q(clt) => [
- q(1780),
+ q(1777),
q(0),
],
q(clu) => [
- q(1781),
+ q(1778),
q(0),
],
q(clw) => [
- q(1782),
+ q(1779),
q(0),
],
q(cly) => [
- q(1783),
+ q(1780),
q(0),
],
q(cma) => [
- q(1784),
+ q(1781),
q(0),
],
q(cmc) => [
@@ -63684,26535 +63677,26491 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cme) => [
- q(1785),
+ q(1782),
q(0),
],
q(cmg) => [
- q(1786),
+ q(1783),
q(0),
],
q(cmi) => [
- q(1787),
+ q(1784),
q(0),
],
q(cml) => [
- q(1788),
+ q(1785),
q(0),
],
q(cmm) => [
- q(1789),
+ q(1786),
q(0),
],
q(cmn) => [
- q(1790),
+ q(1787),
q(0),
],
q(cmo) => [
- q(1791),
+ q(1788),
q(0),
],
q(cmr) => [
- q(1792),
+ q(1789),
q(0),
],
q(cms) => [
- q(1793),
+ q(1790),
q(0),
],
q(cmt) => [
- q(1794),
+ q(1791),
q(0),
],
q(cna) => [
- q(1795),
+ q(1792),
q(0),
],
q(cnb) => [
- q(1796),
+ q(1793),
q(0),
],
q(cnc) => [
- q(1797),
+ q(1794),
q(0),
],
q(cng) => [
- q(1798),
+ q(1795),
q(0),
],
q(cnh) => [
- q(1799),
+ q(1796),
q(0),
],
q(cni) => [
- q(1800),
+ q(1797),
q(0),
],
q(cnk) => [
- q(1801),
+ q(1798),
q(0),
],
q(cnl) => [
- q(1802),
+ q(1799),
q(0),
],
q(cno) => [
- q(1803),
+ q(1800),
+ q(0),
+ ],
+ q(cnr) => [
+ q(0090),
q(0),
],
q(cns) => [
- q(1804),
+ q(1801),
q(0),
],
q(cnt) => [
- q(1805),
+ q(1802),
q(0),
],
q(cnu) => [
- q(1806),
+ q(1803),
q(0),
],
q(cnw) => [
- q(1807),
+ q(1804),
q(0),
],
q(cnx) => [
- q(1808),
+ q(1805),
q(0),
],
q(coa) => [
- q(1809),
+ q(1806),
q(0),
],
q(cob) => [
- q(1810),
+ q(1807),
q(0),
],
q(coc) => [
- q(1811),
+ q(1808),
q(0),
],
q(cod) => [
- q(1812),
+ q(1809),
q(0),
],
q(coe) => [
- q(1813),
+ q(1810),
q(0),
],
q(cof) => [
- q(1814),
+ q(1811),
q(0),
],
q(cog) => [
- q(1815),
+ q(1812),
q(0),
],
q(coh) => [
- q(1816),
+ q(1813),
q(0),
],
q(coj) => [
- q(1817),
+ q(1814),
q(0),
],
q(cok) => [
- q(1818),
+ q(1815),
q(0),
],
q(col) => [
- q(1819),
+ q(1816),
q(0),
],
q(com) => [
- q(1820),
+ q(1817),
q(0),
],
q(con) => [
- q(1821),
+ q(1818),
q(0),
],
q(coo) => [
- q(1822),
+ q(1819),
q(0),
],
q(cop) => [
- q(0090),
+ q(0091),
q(0),
],
q(coq) => [
- q(1823),
+ q(1820),
q(0),
],
q(cor) => [
- q(0091),
+ q(0092),
q(0),
],
q(cos) => [
- q(0092),
+ q(0093),
q(0),
],
q(cot) => [
- q(1824),
+ q(1821),
q(0),
],
q(cou) => [
- q(1825),
+ q(1822),
q(0),
],
q(cov) => [
- q(1826),
+ q(1823),
q(0),
],
q(cow) => [
- q(1827),
+ q(1824),
q(0),
],
q(cox) => [
- q(1828),
- q(0),
- ],
- q(coy) => [
- q(1829),
+ q(1825),
q(0),
],
q(coz) => [
- q(1830),
+ q(1826),
q(0),
],
q(cpa) => [
- q(1831),
+ q(1827),
q(0),
],
q(cpb) => [
- q(1832),
+ q(1828),
q(0),
],
q(cpc) => [
- q(1833),
+ q(1829),
q(0),
],
q(cpe) => [
- q(0093),
+ q(0094),
q(2),
],
q(cpf) => [
- q(0094),
+ q(0095),
q(2),
],
q(cpg) => [
- q(1834),
+ q(1830),
q(0),
],
q(cpi) => [
- q(1835),
+ q(1831),
q(0),
],
q(cpn) => [
- q(1836),
+ q(1832),
q(0),
],
q(cpo) => [
- q(1837),
+ q(1833),
q(0),
],
q(cpp) => [
- q(0095),
+ q(0096),
q(2),
],
q(cps) => [
- q(1838),
+ q(1834),
q(0),
],
q(cpu) => [
- q(1839),
+ q(1835),
q(0),
],
q(cpx) => [
- q(1840),
+ q(1836),
q(0),
],
q(cpy) => [
- q(1841),
+ q(1837),
q(0),
],
q(cqd) => [
- q(1842),
- q(0),
- ],
- q(cqu) => [
- q(1843),
+ q(1838),
q(0),
],
q(cra) => [
- q(1844),
+ q(1839),
q(0),
],
q(crb) => [
- q(1845),
+ q(1840),
q(0),
],
q(crc) => [
- q(1846),
+ q(1841),
q(0),
],
q(crd) => [
- q(1847),
+ q(1842),
q(0),
],
q(cre) => [
- q(0096),
+ q(0097),
q(0),
],
q(crf) => [
- q(1848),
+ q(1843),
q(0),
],
q(crg) => [
- q(1849),
+ q(1844),
q(0),
],
q(crh) => [
- q(0097),
+ q(0098),
q(0),
],
q(cri) => [
- q(1850),
+ q(1845),
q(0),
],
q(crj) => [
- q(1851),
+ q(1846),
q(0),
],
q(crk) => [
- q(1852),
+ q(1847),
q(0),
],
q(crl) => [
- q(1853),
+ q(1848),
q(0),
],
q(crm) => [
- q(1854),
+ q(1849),
q(0),
],
q(crn) => [
- q(1855),
+ q(1850),
q(0),
],
q(cro) => [
- q(1856),
+ q(1851),
q(0),
],
q(crp) => [
- q(0098),
+ q(0099),
q(1),
],
q(crq) => [
- q(1857),
+ q(1852),
q(0),
],
q(crr) => [
- q(1858),
+ q(1853),
q(0),
],
q(crs) => [
- q(1859),
+ q(1854),
q(0),
],
q(crt) => [
- q(1860),
+ q(1855),
q(0),
],
q(crv) => [
- q(1861),
+ q(1856),
q(0),
],
q(crw) => [
- q(1862),
+ q(1857),
q(0),
],
q(crx) => [
- q(1863),
+ q(1858),
q(0),
],
q(cry) => [
- q(1864),
+ q(1859),
q(0),
],
q(crz) => [
- q(1865),
+ q(1860),
q(0),
],
q(csa) => [
- q(1866),
+ q(1861),
q(0),
],
q(csb) => [
- q(0099),
+ q(0100),
q(0),
],
q(csc) => [
- q(1867),
+ q(1862),
q(0),
],
q(csd) => [
- q(1868),
+ q(1863),
q(0),
],
q(cse) => [
- q(1869),
+ q(1864),
q(0),
],
q(csf) => [
- q(1870),
+ q(1865),
q(0),
],
q(csg) => [
- q(1871),
+ q(1866),
q(0),
],
q(csh) => [
- q(1872),
+ q(1867),
q(0),
],
q(csi) => [
- q(1873),
+ q(1868),
q(0),
],
q(csj) => [
- q(1874),
+ q(1869),
q(0),
],
q(csk) => [
- q(1875),
+ q(1870),
q(0),
],
q(csl) => [
- q(1876),
+ q(1871),
q(0),
],
q(csm) => [
- q(1877),
+ q(1872),
q(0),
],
q(csn) => [
- q(1878),
+ q(1873),
q(0),
],
q(cso) => [
- q(1879),
+ q(1874),
q(0),
],
q(csq) => [
- q(1880),
+ q(1875),
q(0),
],
q(csr) => [
- q(1881),
+ q(1876),
q(0),
],
q(css) => [
- q(1882),
+ q(1877),
q(0),
],
q(cst) => [
- q(1883),
+ q(1878),
q(0),
],
q(csu) => [
- q(0499),
+ q(0500),
q(0),
],
q(csv) => [
- q(1884),
+ q(1879),
q(0),
],
q(csw) => [
- q(1885),
+ q(1880),
q(0),
],
q(csy) => [
- q(1886),
+ q(1881),
q(0),
],
q(csz) => [
- q(1887),
+ q(1882),
q(0),
],
q(cta) => [
- q(1888),
+ q(1883),
q(0),
],
q(ctc) => [
- q(1889),
+ q(1884),
q(0),
],
q(ctd) => [
- q(1890),
+ q(1885),
q(0),
],
q(cte) => [
- q(1891),
+ q(1886),
q(0),
],
q(ctg) => [
- q(1892),
+ q(1887),
q(0),
],
q(cth) => [
- q(1893),
+ q(1888),
q(0),
],
q(ctl) => [
- q(1894),
+ q(1889),
q(0),
],
q(ctm) => [
- q(1895),
+ q(1890),
q(0),
],
q(ctn) => [
- q(1896),
+ q(1891),
q(0),
],
q(cto) => [
- q(1897),
+ q(1892),
q(0),
],
q(ctp) => [
- q(1898),
+ q(1893),
q(0),
],
q(cts) => [
- q(1899),
+ q(1894),
q(0),
],
q(ctt) => [
- q(1900),
+ q(1895),
q(0),
],
q(ctu) => [
- q(1901),
+ q(1896),
q(0),
],
q(ctz) => [
- q(1902),
+ q(1897),
q(0),
],
q(cua) => [
- q(1903),
+ q(1898),
q(0),
],
q(cub) => [
- q(1904),
+ q(1899),
q(0),
],
q(cuc) => [
- q(1905),
+ q(1900),
q(0),
],
q(cug) => [
- q(1906),
+ q(1901),
q(0),
],
q(cuh) => [
- q(1907),
+ q(1902),
q(0),
],
q(cui) => [
- q(1908),
+ q(1903),
q(0),
],
q(cuj) => [
- q(1909),
+ q(1904),
q(0),
],
q(cuk) => [
- q(1910),
+ q(1905),
q(0),
],
q(cul) => [
- q(1911),
- q(0),
- ],
- q(cum) => [
- q(1912),
+ q(1906),
q(0),
],
q(cuo) => [
- q(1913),
+ q(1907),
q(0),
],
q(cup) => [
- q(1914),
+ q(1908),
q(0),
],
q(cuq) => [
- q(1915),
+ q(1909),
q(0),
],
q(cur) => [
- q(1916),
+ q(1910),
q(0),
],
q(cus) => [
- q(0100),
+ q(0101),
q(0),
],
q(cut) => [
- q(1917),
+ q(1911),
q(0),
],
q(cuu) => [
- q(1918),
+ q(1912),
q(0),
],
q(cuv) => [
- q(1919),
+ q(1913),
q(0),
],
q(cuw) => [
- q(1920),
+ q(1914),
q(0),
],
q(cux) => [
- q(1921),
+ q(1915),
q(0),
],
q(cvg) => [
- q(1922),
+ q(1916),
q(0),
],
q(cvn) => [
- q(1923),
+ q(1917),
q(0),
],
q(cwa) => [
- q(1924),
+ q(1918),
q(0),
],
q(cwb) => [
- q(1925),
+ q(1919),
q(0),
],
q(cwd) => [
- q(1926),
+ q(1920),
q(0),
],
q(cwe) => [
- q(1927),
+ q(1921),
q(0),
],
q(cwg) => [
- q(1928),
+ q(1922),
q(0),
],
q(cwt) => [
- q(1929),
+ q(1923),
q(0),
],
q(cya) => [
- q(1930),
+ q(1924),
q(0),
],
q(cyb) => [
- q(1931),
+ q(1925),
q(0),
],
q(cyo) => [
- q(1932),
+ q(1926),
q(0),
],
q(cze) => [
- q(0101),
+ q(0102),
q(0),
],
q(czh) => [
- q(1933),
+ q(1927),
q(0),
],
q(czk) => [
- q(1934),
+ q(1928),
q(0),
],
q(czn) => [
- q(1935),
+ q(1929),
q(0),
],
q(czo) => [
- q(1936),
+ q(1930),
q(0),
],
q(czt) => [
- q(1937),
+ q(1931),
q(0),
],
q(daa) => [
- q(1938),
+ q(1932),
q(0),
],
q(dac) => [
- q(1939),
+ q(1933),
q(0),
],
q(dad) => [
- q(1940),
+ q(1934),
q(0),
],
q(dae) => [
- q(1941),
+ q(1935),
q(0),
],
q(dag) => [
- q(1942),
+ q(1936),
q(0),
],
q(dah) => [
- q(1943),
+ q(1937),
q(0),
],
q(dai) => [
- q(1944),
+ q(1938),
q(0),
],
q(daj) => [
- q(1945),
+ q(1939),
q(0),
],
q(dak) => [
- q(0102),
+ q(0103),
q(0),
],
q(dal) => [
- q(1946),
+ q(1940),
q(0),
],
q(dam) => [
- q(1947),
+ q(1941),
q(0),
],
q(dan) => [
- q(0103),
+ q(0104),
q(0),
],
q(dao) => [
- q(1948),
+ q(1942),
q(0),
],
q(daq) => [
- q(1949),
+ q(1943),
q(0),
],
q(dar) => [
- q(0104),
+ q(0105),
q(0),
],
q(das) => [
- q(1950),
+ q(1944),
q(0),
],
q(dau) => [
- q(1951),
+ q(1945),
q(0),
],
q(dav) => [
- q(1952),
+ q(1946),
q(0),
],
q(daw) => [
- q(1953),
+ q(1947),
q(0),
],
q(dax) => [
- q(1954),
+ q(1948),
q(0),
],
q(day) => [
- q(0105),
+ q(0106),
q(0),
],
q(daz) => [
- q(1955),
+ q(1949),
q(0),
],
q(dba) => [
- q(1956),
+ q(1950),
q(0),
],
q(dbb) => [
- q(1957),
+ q(1951),
q(0),
],
q(dbd) => [
- q(1958),
+ q(1952),
q(0),
],
q(dbe) => [
- q(1959),
+ q(1953),
q(0),
],
q(dbf) => [
- q(1960),
+ q(1954),
q(0),
],
q(dbg) => [
- q(1961),
+ q(1955),
q(0),
],
q(dbi) => [
- q(1962),
+ q(1956),
q(0),
],
q(dbj) => [
- q(1963),
+ q(1957),
q(0),
],
q(dbl) => [
- q(1964),
+ q(1958),
q(0),
],
q(dbm) => [
- q(1965),
+ q(1959),
q(0),
],
q(dbn) => [
- q(1966),
+ q(1960),
q(0),
],
q(dbo) => [
- q(1967),
+ q(1961),
q(0),
],
q(dbp) => [
- q(1968),
+ q(1962),
q(0),
],
q(dbq) => [
- q(1969),
+ q(1963),
q(0),
],
q(dbr) => [
- q(1970),
+ q(1964),
q(0),
],
q(dbt) => [
- q(1971),
+ q(1965),
q(0),
],
q(dbu) => [
- q(1972),
+ q(1966),
q(0),
],
q(dbv) => [
- q(1973),
+ q(1967),
q(0),
],
q(dbw) => [
- q(1974),
+ q(1968),
q(0),
],
q(dby) => [
- q(1975),
+ q(1969),
q(0),
],
q(dcc) => [
- q(1976),
+ q(1970),
q(0),
],
q(dcr) => [
- q(1977),
+ q(1971),
q(0),
],
q(dda) => [
- q(1978),
+ q(1972),
q(0),
],
q(ddd) => [
- q(1979),
+ q(1973),
q(0),
],
q(dde) => [
- q(1980),
+ q(1974),
q(0),
],
q(ddg) => [
- q(1981),
+ q(1975),
q(0),
],
q(ddi) => [
- q(1982),
+ q(1976),
q(0),
],
q(ddj) => [
- q(1983),
+ q(1977),
q(0),
],
q(ddn) => [
- q(1984),
+ q(1978),
q(0),
],
q(ddo) => [
- q(1985),
+ q(1979),
q(0),
],
q(ddr) => [
- q(1986),
+ q(1980),
q(0),
],
q(dds) => [
- q(1987),
+ q(1981),
q(0),
],
q(ddw) => [
- q(1988),
+ q(1982),
q(0),
],
q(dec) => [
- q(1989),
+ q(1983),
q(0),
],
q(ded) => [
- q(1990),
+ q(1984),
q(0),
],
q(dee) => [
- q(1991),
+ q(1985),
q(0),
],
q(def) => [
- q(1992),
+ q(1986),
q(0),
],
q(deg) => [
- q(1993),
+ q(1987),
q(0),
],
q(deh) => [
- q(1994),
+ q(1988),
q(0),
],
q(dei) => [
- q(1995),
+ q(1989),
q(0),
],
q(dek) => [
- q(1996),
+ q(1990),
q(0),
],
q(del) => [
- q(0106),
+ q(0107),
q(0),
],
q(dem) => [
- q(1997),
+ q(1991),
q(0),
],
q(den) => [
- q(0107),
+ q(0108),
q(0),
],
q(dep) => [
- q(1998),
+ q(1992),
q(0),
],
q(deq) => [
- q(1999),
+ q(1993),
q(0),
],
q(der) => [
- q(2000),
+ q(1994),
q(0),
],
q(des) => [
- q(2001),
+ q(1995),
q(0),
],
q(dev) => [
- q(2002),
+ q(1996),
q(0),
],
q(dez) => [
- q(2003),
+ q(1997),
q(0),
],
q(dga) => [
- q(2004),
+ q(1998),
q(0),
],
q(dgb) => [
- q(2005),
+ q(1999),
q(0),
],
q(dgc) => [
- q(2006),
+ q(2000),
q(0),
],
q(dgd) => [
- q(2007),
+ q(2001),
q(0),
],
q(dge) => [
- q(2008),
+ q(2002),
q(0),
],
q(dgg) => [
- q(2009),
+ q(2003),
q(0),
],
q(dgh) => [
- q(2010),
+ q(2004),
q(0),
],
q(dgi) => [
- q(2011),
+ q(2005),
q(0),
],
q(dgk) => [
- q(2012),
+ q(2006),
q(0),
],
q(dgl) => [
- q(2013),
+ q(2007),
q(0),
],
q(dgn) => [
- q(2014),
+ q(2008),
q(0),
],
q(dgo) => [
- q(2015),
+ q(2009),
q(0),
],
q(dgr) => [
- q(0108),
+ q(0109),
q(0),
],
q(dgs) => [
- q(2016),
+ q(2010),
q(0),
],
q(dgt) => [
- q(2017),
+ q(2011),
q(0),
],
q(dgu) => [
- q(2018),
+ q(2012),
q(0),
],
q(dgw) => [
- q(2019),
+ q(2013),
q(0),
],
q(dgx) => [
- q(2020),
+ q(2014),
q(0),
],
q(dgz) => [
- q(2021),
+ q(2015),
q(0),
],
q(dhd) => [
- q(2022),
+ q(2016),
q(0),
],
q(dhg) => [
- q(2023),
+ q(2017),
q(0),
],
q(dhi) => [
- q(2024),
+ q(2018),
q(0),
],
q(dhl) => [
- q(2025),
+ q(2019),
q(0),
],
q(dhm) => [
- q(2026),
+ q(2020),
q(0),
],
q(dhn) => [
- q(2027),
+ q(2021),
q(0),
],
q(dho) => [
- q(2028),
+ q(2022),
q(0),
],
q(dhr) => [
- q(2029),
+ q(2023),
q(0),
],
q(dhs) => [
- q(2030),
+ q(2024),
q(0),
],
q(dhu) => [
- q(2031),
+ q(2025),
q(0),
],
q(dhv) => [
- q(2032),
+ q(2026),
q(0),
],
q(dhw) => [
- q(2033),
+ q(2027),
q(0),
],
q(dhx) => [
- q(2034),
+ q(2028),
q(0),
],
q(dia) => [
- q(2035),
+ q(2029),
q(0),
],
q(dib) => [
- q(2036),
+ q(2030),
q(0),
],
q(dic) => [
- q(2037),
+ q(2031),
q(0),
],
q(did) => [
- q(2038),
+ q(2032),
q(0),
],
q(dif) => [
- q(2039),
+ q(2033),
q(0),
],
q(dig) => [
- q(2040),
+ q(2034),
q(0),
],
q(dih) => [
- q(2041),
+ q(2035),
q(0),
],
q(dii) => [
- q(2042),
+ q(2036),
q(0),
],
q(dij) => [
- q(2043),
+ q(2037),
q(0),
],
q(dik) => [
- q(2044),
+ q(2038),
q(0),
],
q(dil) => [
- q(2045),
+ q(2039),
q(0),
],
q(dim) => [
- q(2046),
+ q(2040),
q(0),
],
q(din) => [
- q(0109),
+ q(0110),
q(0),
],
q(dio) => [
- q(2047),
+ q(2041),
q(0),
],
q(dip) => [
- q(2048),
+ q(2042),
q(0),
],
q(diq) => [
- q(2049),
+ q(2043),
q(0),
],
q(dir) => [
- q(2050),
+ q(2044),
q(0),
],
q(dis) => [
- q(2051),
+ q(2045),
q(0),
],
q(dit) => [
- q(2052),
+ q(2046),
q(0),
],
q(diu) => [
- q(2053),
+ q(2047),
q(0),
],
q(div) => [
- q(0110),
+ q(0111),
q(0),
],
q(diw) => [
- q(2054),
+ q(2048),
q(0),
],
q(dix) => [
- q(2055),
+ q(2049),
q(0),
],
q(diy) => [
- q(2056),
+ q(2050),
q(0),
],
q(diz) => [
- q(2057),
+ q(2051),
q(0),
],
q(dja) => [
- q(2058),
+ q(2052),
q(0),
],
q(djb) => [
- q(2059),
+ q(2053),
q(0),
],
q(djc) => [
- q(2060),
+ q(2054),
q(0),
],
q(djd) => [
- q(2061),
+ q(2055),
q(0),
],
q(dje) => [
- q(2062),
+ q(2056),
q(0),
],
q(djf) => [
- q(2063),
+ q(2057),
q(0),
],
q(dji) => [
- q(2064),
+ q(2058),
q(0),
],
q(djj) => [
- q(2065),
+ q(2059),
q(0),
],
q(djk) => [
- q(2066),
+ q(2060),
q(0),
],
q(djm) => [
- q(2067),
+ q(2061),
q(0),
],
q(djn) => [
- q(2068),
+ q(2062),
q(0),
],
q(djo) => [
- q(2069),
+ q(2063),
q(0),
],
q(djr) => [
- q(2070),
+ q(2064),
q(0),
],
q(dju) => [
- q(2071),
+ q(2065),
q(0),
],
q(djw) => [
- q(2072),
+ q(2066),
q(0),
],
q(dka) => [
- q(2073),
+ q(2067),
q(0),
],
q(dkk) => [
- q(2074),
+ q(2068),
q(0),
],
q(dkr) => [
- q(2075),
+ q(2069),
q(0),
],
q(dks) => [
- q(2076),
+ q(2070),
q(0),
],
q(dkx) => [
- q(2077),
+ q(2071),
q(0),
],
q(dlg) => [
- q(2078),
+ q(2072),
q(0),
],
q(dlk) => [
- q(2079),
+ q(2073),
q(0),
],
q(dlm) => [
- q(2080),
+ q(2074),
q(0),
],
q(dln) => [
- q(2081),
+ q(2075),
q(0),
],
q(dma) => [
- q(2082),
+ q(2076),
q(0),
],
q(dmb) => [
- q(2083),
+ q(2077),
q(0),
],
q(dmc) => [
- q(2084),
+ q(2078),
q(0),
],
q(dmd) => [
- q(2085),
+ q(2079),
q(0),
],
q(dme) => [
- q(2086),
+ q(2080),
q(0),
],
q(dmg) => [
- q(2087),
+ q(2081),
q(0),
],
q(dmk) => [
- q(2088),
+ q(2082),
q(0),
],
q(dml) => [
- q(2089),
+ q(2083),
q(0),
],
q(dmm) => [
- q(2090),
+ q(2084),
q(0),
],
q(dmn) => [
- q(0500),
+ q(0501),
q(0),
],
q(dmo) => [
- q(2091),
+ q(2085),
q(0),
],
q(dmr) => [
- q(2092),
+ q(2086),
q(0),
],
q(dms) => [
- q(2093),
+ q(2087),
q(0),
],
q(dmu) => [
- q(2094),
+ q(2088),
q(0),
],
q(dmv) => [
- q(2095),
+ q(2089),
q(0),
],
q(dmw) => [
- q(2096),
+ q(2090),
q(0),
],
q(dmx) => [
- q(2097),
+ q(2091),
q(0),
],
q(dmy) => [
- q(2098),
+ q(2092),
q(0),
],
q(dna) => [
- q(2099),
+ q(2093),
q(0),
],
q(dnd) => [
- q(2100),
+ q(2094),
q(0),
],
q(dne) => [
- q(2101),
+ q(2095),
q(0),
],
q(dng) => [
- q(2102),
+ q(2096),
q(0),
],
q(dni) => [
- q(2103),
+ q(2097),
q(0),
],
q(dnj) => [
- q(2104),
+ q(2098),
q(0),
],
q(dnk) => [
- q(2105),
+ q(2099),
q(0),
],
q(dnn) => [
- q(2106),
+ q(2100),
q(0),
],
q(dnr) => [
- q(2107),
+ q(2101),
q(0),
],
q(dnt) => [
- q(2108),
+ q(2102),
q(0),
],
q(dnu) => [
- q(2109),
+ q(2103),
q(0),
],
q(dnv) => [
- q(2110),
+ q(2104),
q(0),
],
q(dnw) => [
- q(2111),
+ q(2105),
q(0),
],
q(dny) => [
- q(2112),
+ q(2106),
q(0),
],
q(doa) => [
- q(2113),
+ q(2107),
q(0),
],
q(dob) => [
- q(2114),
+ q(2108),
q(0),
],
q(doc) => [
- q(2115),
+ q(2109),
q(0),
],
q(doe) => [
- q(2116),
+ q(2110),
q(0),
],
q(dof) => [
- q(2117),
+ q(2111),
q(0),
],
q(doh) => [
- q(2118),
+ q(2112),
q(0),
],
q(doi) => [
- q(0111),
+ q(0112),
q(1),
],
q(dok) => [
- q(2119),
+ q(2113),
q(0),
],
q(dol) => [
- q(2120),
+ q(2114),
q(0),
],
q(don) => [
- q(2121),
+ q(2115),
q(0),
],
q(doo) => [
- q(2122),
+ q(2116),
q(0),
],
q(dop) => [
- q(2123),
+ q(2117),
q(0),
],
q(doq) => [
- q(2124),
+ q(2118),
q(0),
],
q(dor) => [
- q(2125),
+ q(2119),
q(0),
],
q(dos) => [
- q(2126),
+ q(2120),
q(0),
],
q(dot) => [
- q(2127),
+ q(2121),
q(0),
],
q(dov) => [
- q(2128),
+ q(2122),
q(0),
],
q(dow) => [
- q(2129),
+ q(2123),
q(0),
],
q(dox) => [
- q(2130),
+ q(2124),
q(0),
],
q(doy) => [
- q(2131),
+ q(2125),
q(0),
],
q(doz) => [
- q(2132),
+ q(2126),
q(0),
],
q(dpp) => [
- q(2133),
+ q(2127),
q(0),
],
q(dra) => [
- q(0112),
+ q(0113),
q(0),
],
q(drb) => [
- q(2134),
+ q(2128),
q(0),
],
q(drc) => [
- q(2135),
+ q(2129),
q(0),
],
q(drd) => [
- q(2136),
+ q(2130),
q(0),
],
q(dre) => [
- q(2137),
+ q(2131),
q(0),
],
q(drg) => [
- q(2138),
+ q(2132),
q(0),
],
q(dri) => [
- q(2139),
+ q(2133),
q(0),
],
q(drl) => [
- q(2140),
+ q(2134),
q(0),
],
q(drn) => [
- q(2141),
+ q(2135),
q(0),
],
q(dro) => [
- q(2142),
+ q(2136),
q(0),
],
q(drq) => [
- q(2143),
+ q(2137),
q(0),
],
q(drr) => [
- q(2144),
+ q(2138),
q(0),
],
q(drs) => [
- q(2145),
+ q(2139),
q(0),
],
q(drt) => [
- q(2146),
+ q(2140),
q(0),
],
q(dru) => [
- q(2147),
+ q(2141),
q(0),
],
q(dry) => [
- q(2148),
+ q(2142),
q(0),
],
q(dsb) => [
- q(0113),
+ q(0114),
q(0),
],
q(dse) => [
- q(2149),
+ q(2143),
q(0),
],
q(dsh) => [
- q(2150),
+ q(2144),
q(0),
],
q(dsi) => [
- q(2151),
+ q(2145),
q(0),
],
q(dsl) => [
- q(2152),
+ q(2146),
q(0),
],
q(dsn) => [
- q(2153),
+ q(2147),
q(0),
],
q(dso) => [
- q(2154),
+ q(2148),
q(0),
],
q(dsq) => [
- q(2155),
+ q(2149),
q(0),
],
q(dta) => [
- q(2156),
+ q(2150),
q(0),
],
q(dtb) => [
- q(2157),
+ q(2151),
q(0),
],
q(dtd) => [
- q(2158),
+ q(2152),
q(0),
],
q(dth) => [
- q(2159),
+ q(2153),
q(0),
],
q(dti) => [
- q(2160),
+ q(2154),
q(0),
],
q(dtk) => [
- q(2161),
+ q(2155),
q(0),
],
q(dtm) => [
- q(2162),
+ q(2156),
+ q(0),
+ ],
+ q(dtn) => [
+ q(2157),
q(0),
],
q(dto) => [
- q(2163),
+ q(2158),
q(0),
],
q(dtp) => [
- q(2164),
+ q(2159),
q(0),
],
q(dtr) => [
- q(2165),
+ q(2160),
q(0),
],
q(dts) => [
- q(2166),
+ q(2161),
q(0),
],
q(dtt) => [
- q(2167),
+ q(2162),
q(0),
],
q(dtu) => [
- q(2168),
+ q(2163),
q(0),
],
q(dty) => [
- q(2169),
+ q(2164),
q(0),
],
q(dua) => [
- q(0114),
+ q(0115),
q(0),
],
q(dub) => [
- q(2170),
+ q(2165),
q(0),
],
q(duc) => [
- q(2171),
+ q(2166),
q(0),
],
q(dud) => [
- q(2172),
+ q(2167),
q(0),
],
q(due) => [
- q(2173),
+ q(2168),
q(0),
],
q(duf) => [
- q(2174),
+ q(2169),
q(0),
],
q(dug) => [
- q(2175),
+ q(2170),
q(0),
],
q(duh) => [
- q(2176),
+ q(2171),
q(0),
],
q(dui) => [
- q(2177),
- q(0),
- ],
- q(duj) => [
- q(2178),
+ q(2172),
q(0),
],
q(duk) => [
- q(2179),
+ q(2173),
q(0),
],
q(dul) => [
- q(2180),
+ q(2174),
q(0),
],
q(dum) => [
- q(0115),
+ q(0116),
q(1),
],
q(dun) => [
- q(2181),
+ q(2175),
q(0),
],
q(duo) => [
- q(2182),
+ q(2176),
q(0),
],
q(dup) => [
- q(2183),
+ q(2177),
q(0),
],
q(duq) => [
- q(2184),
+ q(2178),
q(0),
],
q(dur) => [
- q(2185),
+ q(2179),
q(0),
],
q(dus) => [
- q(2186),
+ q(2180),
q(0),
],
q(dut) => [
- q(0116),
+ q(0117),
q(0),
],
q(duu) => [
- q(2187),
+ q(2181),
q(0),
],
q(duv) => [
- q(2188),
+ q(2182),
q(0),
],
q(duw) => [
- q(2189),
+ q(2183),
q(0),
],
q(dux) => [
- q(2190),
+ q(2184),
q(0),
],
q(duy) => [
- q(2191),
+ q(2185),
q(0),
],
q(duz) => [
- q(2192),
+ q(2186),
q(0),
],
q(dva) => [
- q(2193),
+ q(2187),
q(0),
],
q(dwa) => [
- q(2194),
+ q(2188),
q(0),
],
q(dwr) => [
- q(2195),
+ q(2189),
q(0),
],
q(dws) => [
- q(2196),
+ q(2190),
+ q(0),
+ ],
+ q(dwu) => [
+ q(2191),
q(0),
],
q(dww) => [
- q(2197),
+ q(2192),
+ q(0),
+ ],
+ q(dwy) => [
+ q(2193),
q(0),
],
q(dya) => [
- q(2198),
+ q(2194),
q(0),
],
q(dyb) => [
- q(2199),
+ q(2195),
q(0),
],
q(dyd) => [
- q(2200),
+ q(2196),
q(0),
],
q(dyg) => [
- q(2201),
+ q(2197),
q(0),
],
q(dyi) => [
- q(2202),
+ q(2198),
q(0),
],
q(dym) => [
- q(2203),
+ q(2199),
q(0),
],
q(dyn) => [
- q(2204),
+ q(2200),
q(0),
],
q(dyo) => [
- q(2205),
+ q(2201),
q(0),
],
q(dyu) => [
- q(0117),
+ q(0118),
q(0),
],
q(dyy) => [
- q(2206),
+ q(2202),
q(0),
],
q(dza) => [
- q(2207),
+ q(2203),
q(0),
],
q(dze) => [
- q(2208),
+ q(2204),
q(0),
],
q(dzg) => [
- q(2209),
+ q(2205),
q(0),
],
q(dzl) => [
- q(2210),
+ q(2206),
q(0),
],
q(dzn) => [
- q(2211),
+ q(2207),
q(0),
],
q(dzo) => [
- q(0118),
+ q(0119),
q(0),
],
q(eaa) => [
- q(2212),
+ q(2208),
q(0),
],
q(ebg) => [
- q(2213),
+ q(2209),
q(0),
],
q(ebk) => [
- q(2214),
+ q(2210),
q(0),
],
q(ebo) => [
- q(2215),
+ q(2211),
q(0),
],
q(ebr) => [
- q(2216),
+ q(2212),
q(0),
],
q(ebu) => [
- q(2217),
+ q(2213),
q(0),
],
q(ecr) => [
- q(2218),
+ q(2214),
q(0),
],
q(ecs) => [
- q(2219),
+ q(2215),
q(0),
],
q(ecy) => [
- q(2220),
+ q(2216),
q(0),
],
q(eee) => [
- q(2221),
+ q(2217),
q(0),
],
q(efa) => [
- q(2222),
+ q(2218),
q(0),
],
q(efe) => [
- q(2223),
+ q(2219),
q(0),
],
q(efi) => [
- q(0119),
+ q(0120),
q(0),
],
q(ega) => [
- q(2224),
+ q(2220),
q(0),
],
q(egl) => [
- q(2225),
+ q(2221),
q(0),
],
q(ego) => [
- q(2226),
+ q(2222),
q(0),
],
q(egx) => [
- q(0501),
+ q(0502),
q(0),
],
q(egy) => [
- q(0120),
+ q(0121),
q(0),
],
q(ehu) => [
- q(2227),
+ q(2223),
q(0),
],
q(eip) => [
- q(2228),
+ q(2224),
q(0),
],
q(eit) => [
- q(2229),
+ q(2225),
q(0),
],
q(eiv) => [
- q(2230),
+ q(2226),
q(0),
],
q(eja) => [
- q(2231),
+ q(2227),
q(0),
],
q(eka) => [
- q(0121),
+ q(0122),
q(0),
],
q(ekc) => [
- q(2232),
+ q(2228),
q(0),
],
q(eke) => [
- q(2233),
+ q(2229),
q(0),
],
q(ekg) => [
- q(2234),
+ q(2230),
q(0),
],
q(eki) => [
- q(2235),
+ q(2231),
q(0),
],
q(ekk) => [
- q(2236),
+ q(2232),
q(0),
],
q(ekl) => [
- q(2237),
+ q(2233),
q(0),
],
q(ekm) => [
- q(2238),
+ q(2234),
q(0),
],
q(eko) => [
- q(2239),
+ q(2235),
q(0),
],
q(ekp) => [
- q(2240),
+ q(2236),
q(0),
],
q(ekr) => [
- q(2241),
+ q(2237),
q(0),
],
q(eky) => [
- q(2242),
+ q(2238),
q(0),
],
q(ele) => [
- q(2243),
+ q(2239),
q(0),
],
q(elh) => [
- q(2244),
+ q(2240),
q(0),
],
q(eli) => [
- q(2245),
+ q(2241),
q(0),
],
q(elk) => [
- q(2246),
+ q(2242),
q(0),
],
q(elm) => [
- q(2247),
+ q(2243),
q(0),
],
q(elo) => [
- q(2248),
+ q(2244),
q(0),
],
q(elu) => [
- q(2249),
+ q(2245),
q(0),
],
q(elx) => [
- q(0122),
+ q(0123),
q(0),
],
q(ema) => [
- q(2250),
+ q(2246),
q(0),
],
q(emb) => [
- q(2251),
+ q(2247),
q(0),
],
q(eme) => [
- q(2252),
+ q(2248),
q(0),
],
q(emg) => [
- q(2253),
+ q(2249),
q(0),
],
q(emi) => [
- q(2254),
+ q(2250),
q(0),
],
q(emk) => [
- q(2255),
+ q(2251),
q(0),
],
q(emm) => [
- q(2256),
+ q(2252),
q(0),
],
q(emn) => [
- q(2257),
+ q(2253),
q(0),
],
q(emp) => [
- q(2258),
+ q(2254),
q(0),
],
q(ems) => [
- q(2259),
+ q(2255),
q(0),
],
q(emu) => [
- q(2260),
+ q(2256),
q(0),
],
q(emw) => [
- q(2261),
+ q(2257),
q(0),
],
q(emx) => [
- q(2262),
+ q(2258),
q(0),
],
q(emy) => [
- q(2263),
+ q(2259),
q(0),
],
q(ena) => [
- q(2264),
+ q(2260),
q(0),
],
q(enb) => [
- q(2265),
+ q(2261),
q(0),
],
q(enc) => [
- q(2266),
+ q(2262),
q(0),
],
q(end) => [
- q(2267),
+ q(2263),
q(0),
],
q(enf) => [
- q(2268),
+ q(2264),
q(0),
],
q(eng) => [
- q(0123),
+ q(0124),
q(0),
],
q(enh) => [
- q(2269),
+ q(2265),
q(0),
],
q(enl) => [
- q(2270),
+ q(2266),
q(0),
],
q(enm) => [
- q(0124),
+ q(0125),
q(1),
],
q(enn) => [
- q(2271),
+ q(2267),
q(0),
],
q(eno) => [
- q(2272),
+ q(2268),
q(0),
],
q(enq) => [
- q(2273),
+ q(2269),
q(0),
],
q(enr) => [
- q(2274),
+ q(2270),
q(0),
],
q(enu) => [
- q(2275),
+ q(2271),
q(0),
],
q(env) => [
- q(2276),
+ q(2272),
q(0),
],
q(enw) => [
- q(2277),
+ q(2273),
q(0),
],
q(enx) => [
- q(2278),
+ q(2274),
q(0),
],
q(eot) => [
- q(2279),
+ q(2275),
q(0),
],
q(epi) => [
- q(2280),
+ q(2276),
q(0),
],
q(epo) => [
- q(0125),
+ q(0126),
q(0),
],
q(era) => [
- q(2281),
+ q(2277),
q(0),
],
q(erg) => [
- q(2282),
+ q(2278),
q(0),
],
q(erh) => [
- q(2283),
+ q(2279),
q(0),
],
q(eri) => [
- q(2284),
+ q(2280),
q(0),
],
q(erk) => [
- q(2285),
+ q(2281),
q(0),
],
q(ero) => [
- q(2286),
+ q(2282),
q(0),
],
q(err) => [
- q(2287),
+ q(2283),
q(0),
],
q(ers) => [
- q(2288),
+ q(2284),
q(0),
],
q(ert) => [
- q(2289),
+ q(2285),
q(0),
],
q(erw) => [
- q(2290),
+ q(2286),
q(0),
],
q(ese) => [
- q(2291),
+ q(2287),
+ q(0),
+ ],
+ q(esg) => [
+ q(2288),
q(0),
],
q(esh) => [
- q(2292),
+ q(2289),
q(0),
],
q(esi) => [
- q(2293),
+ q(2290),
q(0),
],
q(esk) => [
- q(2294),
+ q(2291),
q(0),
],
q(esl) => [
- q(2295),
+ q(2292),
q(0),
],
q(esm) => [
- q(2296),
+ q(2293),
q(0),
],
q(esn) => [
- q(2297),
+ q(2294),
q(0),
],
q(eso) => [
- q(2298),
+ q(2295),
q(0),
],
q(esq) => [
- q(2299),
+ q(2296),
q(0),
],
q(ess) => [
- q(2300),
+ q(2297),
q(0),
],
q(est) => [
- q(0126),
+ q(0127),
q(0),
],
q(esu) => [
- q(2301),
+ q(2298),
q(0),
],
q(esx) => [
- q(0502),
+ q(0503),
q(0),
],
q(esy) => [
- q(2302),
+ q(2299),
q(0),
],
q(etb) => [
- q(2303),
+ q(2300),
q(0),
],
q(etc) => [
- q(2304),
+ q(2301),
q(0),
],
q(eth) => [
- q(2305),
+ q(2302),
q(0),
],
q(etn) => [
- q(2306),
+ q(2303),
q(0),
],
q(eto) => [
- q(2307),
+ q(2304),
q(0),
],
q(etr) => [
- q(2308),
+ q(2305),
q(0),
],
q(ets) => [
- q(2309),
+ q(2306),
q(0),
],
q(ett) => [
- q(2310),
+ q(2307),
q(0),
],
q(etu) => [
- q(2311),
+ q(2308),
q(0),
],
q(etx) => [
- q(2312),
+ q(2309),
q(0),
],
q(etz) => [
- q(2313),
+ q(2310),
q(0),
],
q(euq) => [
- q(0503),
+ q(0504),
q(0),
],
q(eve) => [
- q(2314),
+ q(2311),
q(0),
],
q(evh) => [
- q(2315),
+ q(2312),
q(0),
],
q(evn) => [
- q(2316),
+ q(2313),
q(0),
],
q(ewe) => [
- q(0127),
+ q(0128),
q(0),
],
q(ewo) => [
- q(0128),
+ q(0129),
q(0),
],
q(ext) => [
- q(2317),
+ q(2314),
q(0),
],
q(eya) => [
- q(2318),
+ q(2315),
q(0),
],
q(eyo) => [
- q(2319),
+ q(2316),
q(0),
],
q(eza) => [
- q(2320),
+ q(2317),
q(0),
],
q(eze) => [
- q(2321),
+ q(2318),
q(0),
],
q(faa) => [
- q(2322),
+ q(2319),
q(0),
],
q(fab) => [
- q(2323),
+ q(2320),
q(0),
],
q(fad) => [
- q(2324),
+ q(2321),
q(0),
],
q(faf) => [
- q(2325),
+ q(2322),
q(0),
],
q(fag) => [
- q(2326),
+ q(2323),
q(0),
],
q(fah) => [
- q(2327),
+ q(2324),
q(0),
],
q(fai) => [
- q(2328),
+ q(2325),
q(0),
],
q(faj) => [
- q(2329),
+ q(2326),
q(0),
],
q(fak) => [
- q(2330),
+ q(2327),
q(0),
],
q(fal) => [
- q(2331),
+ q(2328),
q(0),
],
q(fam) => [
- q(2332),
+ q(2329),
q(0),
],
q(fan) => [
- q(0129),
+ q(0130),
q(1),
],
q(fao) => [
- q(0130),
+ q(0131),
q(0),
],
q(fap) => [
- q(2333),
+ q(2330),
q(0),
],
q(far) => [
- q(2334),
+ q(2331),
q(0),
],
q(fat) => [
- q(0131),
+ q(0132),
q(0),
],
q(fau) => [
- q(2335),
+ q(2332),
q(0),
],
q(fax) => [
- q(2336),
+ q(2333),
q(0),
],
q(fay) => [
- q(2337),
+ q(2334),
q(0),
],
q(faz) => [
- q(2338),
+ q(2335),
q(0),
],
q(fbl) => [
- q(2339),
+ q(2336),
q(0),
],
q(fcs) => [
- q(2340),
+ q(2337),
q(0),
],
q(fer) => [
- q(2341),
+ q(2338),
q(0),
],
q(ffi) => [
- q(2342),
+ q(2339),
q(0),
],
q(ffm) => [
- q(2343),
+ q(2340),
q(0),
],
q(fgr) => [
- q(2344),
+ q(2341),
q(0),
],
q(fia) => [
- q(2345),
+ q(2342),
q(0),
],
q(fie) => [
- q(2346),
+ q(2343),
q(0),
],
q(fij) => [
- q(0132),
+ q(0133),
q(0),
],
q(fil) => [
- q(0133),
+ q(0134),
q(0),
],
q(fin) => [
- q(0134),
+ q(0135),
q(0),
],
q(fip) => [
- q(2347),
+ q(2344),
q(0),
],
q(fir) => [
- q(2348),
+ q(2345),
q(0),
],
q(fit) => [
- q(2349),
+ q(2346),
q(0),
],
q(fiu) => [
- q(0135),
+ q(0136),
q(0),
],
q(fiw) => [
- q(2350),
+ q(2347),
q(0),
],
q(fkk) => [
- q(2351),
+ q(2348),
q(0),
],
q(fkv) => [
- q(2352),
+ q(2349),
q(0),
],
q(fla) => [
- q(2353),
+ q(2350),
q(0),
],
q(flh) => [
- q(2354),
+ q(2351),
q(0),
],
q(fli) => [
- q(2355),
+ q(2352),
q(0),
],
q(fll) => [
- q(2356),
+ q(2353),
q(0),
],
q(fln) => [
- q(2357),
+ q(2354),
q(0),
],
q(flr) => [
- q(2358),
+ q(2355),
q(0),
],
q(fly) => [
- q(2359),
+ q(2356),
q(0),
],
q(fmp) => [
- q(2360),
+ q(2357),
q(0),
],
q(fmu) => [
- q(2361),
+ q(2358),
+ q(0),
+ ],
+ q(fnb) => [
+ q(2359),
q(0),
],
q(fng) => [
- q(2362),
+ q(2360),
q(0),
],
q(fni) => [
- q(2363),
+ q(2361),
q(0),
],
q(fod) => [
- q(2364),
+ q(2362),
q(0),
],
q(foi) => [
- q(2365),
+ q(2363),
q(0),
],
q(fom) => [
- q(2366),
+ q(2364),
q(0),
],
q(fon) => [
- q(0136),
+ q(0137),
q(0),
],
q(for) => [
- q(2367),
+ q(2365),
q(0),
],
q(fos) => [
- q(2368),
+ q(2366),
q(0),
],
q(fox) => [
- q(0504),
+ q(0505),
q(0),
],
q(fpe) => [
- q(2369),
+ q(2367),
q(0),
],
q(fqs) => [
- q(2370),
+ q(2368),
q(0),
],
q(frc) => [
- q(2371),
+ q(2369),
q(0),
],
q(frd) => [
- q(2372),
+ q(2370),
q(0),
],
q(fre) => [
- q(0137),
+ q(0138),
q(0),
],
q(frk) => [
- q(2373),
+ q(2371),
q(0),
],
q(frm) => [
- q(0138),
+ q(0139),
q(1),
],
q(fro) => [
- q(0139),
+ q(0140),
q(1),
],
q(frp) => [
- q(2374),
+ q(2372),
q(0),
],
q(frq) => [
- q(2375),
+ q(2373),
q(0),
],
q(frr) => [
- q(0140),
+ q(0141),
q(0),
],
q(frs) => [
- q(0141),
+ q(0142),
q(0),
],
q(frt) => [
- q(2376),
+ q(2374),
q(0),
],
q(fry) => [
- q(0142),
+ q(0143),
q(0),
],
q(fse) => [
- q(2377),
+ q(2375),
q(0),
],
q(fsl) => [
- q(2378),
+ q(2376),
q(0),
],
q(fss) => [
- q(2379),
+ q(2377),
q(0),
],
q(fub) => [
- q(2380),
+ q(2378),
q(0),
],
q(fuc) => [
- q(2381),
+ q(2379),
q(0),
],
q(fud) => [
- q(2382),
+ q(2380),
q(0),
],
q(fue) => [
- q(2383),
+ q(2381),
q(0),
],
q(fuf) => [
- q(2384),
+ q(2382),
q(0),
],
q(fuh) => [
- q(2385),
+ q(2383),
q(0),
],
q(fui) => [
- q(2386),
+ q(2384),
q(0),
],
q(fuj) => [
- q(2387),
+ q(2385),
q(0),
],
q(ful) => [
- q(0143),
+ q(0144),
q(0),
],
q(fum) => [
- q(2388),
+ q(2386),
q(0),
],
q(fun) => [
- q(2389),
+ q(2387),
q(0),
],
q(fuq) => [
- q(2390),
+ q(2388),
q(0),
],
q(fur) => [
- q(0144),
+ q(0145),
q(0),
],
q(fut) => [
- q(2391),
+ q(2389),
q(0),
],
q(fuu) => [
- q(2392),
+ q(2390),
q(0),
],
q(fuv) => [
- q(2393),
+ q(2391),
q(0),
],
q(fuy) => [
- q(2394),
+ q(2392),
q(0),
],
q(fvr) => [
- q(2395),
+ q(2393),
q(0),
],
q(fwa) => [
- q(2396),
+ q(2394),
q(0),
],
q(fwe) => [
- q(2397),
+ q(2395),
q(0),
],
q(gaa) => [
- q(0145),
+ q(0146),
q(0),
],
q(gab) => [
- q(2398),
+ q(2396),
q(0),
],
q(gac) => [
- q(2399),
+ q(2397),
q(0),
],
q(gad) => [
- q(2400),
+ q(2398),
q(0),
],
q(gae) => [
- q(2401),
+ q(2399),
q(0),
],
q(gaf) => [
- q(2402),
+ q(2400),
q(0),
],
q(gag) => [
- q(2403),
+ q(2401),
q(0),
],
q(gah) => [
- q(2404),
+ q(2402),
q(0),
],
q(gai) => [
- q(2405),
+ q(2403),
q(0),
],
q(gaj) => [
- q(2406),
+ q(2404),
q(0),
],
q(gak) => [
- q(2407),
+ q(2405),
q(0),
],
q(gal) => [
- q(2408),
+ q(2406),
q(0),
],
q(gam) => [
- q(2409),
+ q(2407),
q(0),
],
q(gan) => [
- q(2410),
+ q(2408),
q(0),
],
q(gao) => [
- q(2411),
+ q(2409),
q(0),
],
q(gap) => [
- q(2412),
+ q(2410),
q(0),
],
q(gaq) => [
- q(2413),
+ q(2411),
q(0),
],
q(gar) => [
- q(2414),
+ q(2412),
q(0),
],
q(gas) => [
- q(2415),
+ q(2413),
q(0),
],
q(gat) => [
- q(2416),
+ q(2414),
q(0),
],
q(gau) => [
- q(2417),
+ q(2415),
q(0),
],
q(gaw) => [
- q(2418),
+ q(2416),
q(0),
],
q(gax) => [
- q(2419),
+ q(2417),
q(0),
],
q(gay) => [
- q(0146),
+ q(0147),
q(0),
],
q(gaz) => [
- q(2420),
+ q(2418),
q(0),
],
q(gba) => [
- q(0147),
+ q(0148),
q(1),
],
q(gbb) => [
- q(2421),
+ q(2419),
q(0),
],
q(gbd) => [
- q(2422),
+ q(2420),
q(0),
],
q(gbe) => [
- q(2423),
+ q(2421),
q(0),
],
q(gbf) => [
- q(2424),
+ q(2422),
q(0),
],
q(gbg) => [
- q(2425),
+ q(2423),
q(0),
],
q(gbh) => [
- q(2426),
+ q(2424),
q(0),
],
q(gbi) => [
- q(2427),
+ q(2425),
q(0),
],
q(gbj) => [
- q(2428),
+ q(2426),
q(0),
],
q(gbk) => [
- q(2429),
+ q(2427),
q(0),
],
q(gbl) => [
- q(2430),
+ q(2428),
q(0),
],
q(gbm) => [
- q(2431),
+ q(2429),
q(0),
],
q(gbn) => [
- q(2432),
+ q(2430),
q(0),
],
q(gbo) => [
- q(2433),
+ q(2431),
q(0),
],
q(gbp) => [
- q(2434),
+ q(2432),
q(0),
],
q(gbq) => [
- q(2435),
+ q(2433),
q(0),
],
q(gbr) => [
- q(2436),
+ q(2434),
q(0),
],
q(gbs) => [
- q(2437),
+ q(2435),
q(0),
],
q(gbu) => [
- q(2438),
+ q(2436),
q(0),
],
q(gbv) => [
- q(2439),
+ q(2437),
q(0),
],
q(gbw) => [
- q(2440),
+ q(2438),
q(0),
],
q(gbx) => [
- q(2441),
+ q(2439),
q(0),
],
q(gby) => [
- q(2442),
+ q(2440),
q(0),
],
q(gbz) => [
- q(2443),
+ q(2441),
q(0),
],
q(gcc) => [
- q(2444),
+ q(2442),
q(0),
],
q(gcd) => [
- q(2445),
+ q(2443),
q(0),
],
q(gce) => [
- q(2446),
+ q(2444),
q(0),
],
q(gcf) => [
- q(2447),
+ q(2445),
q(0),
],
q(gcl) => [
- q(2448),
+ q(2446),
q(0),
],
q(gcn) => [
- q(2449),
+ q(2447),
q(0),
],
q(gcr) => [
- q(2450),
+ q(2448),
q(0),
],
q(gct) => [
- q(2451),
+ q(2449),
q(0),
],
q(gda) => [
- q(2452),
+ q(2450),
q(0),
],
q(gdb) => [
- q(2453),
+ q(2451),
q(0),
],
q(gdc) => [
- q(2454),
+ q(2452),
q(0),
],
q(gdd) => [
- q(2455),
+ q(2453),
q(0),
],
q(gde) => [
- q(2456),
+ q(2454),
q(0),
],
q(gdf) => [
- q(2457),
+ q(2455),
q(0),
],
q(gdg) => [
- q(2458),
+ q(2456),
q(0),
],
q(gdh) => [
- q(2459),
+ q(2457),
q(0),
],
q(gdi) => [
- q(2460),
+ q(2458),
q(0),
],
q(gdj) => [
- q(2461),
+ q(2459),
q(0),
],
q(gdk) => [
- q(2462),
+ q(2460),
q(0),
],
q(gdl) => [
- q(2463),
+ q(2461),
q(0),
],
q(gdm) => [
- q(2464),
+ q(2462),
q(0),
],
q(gdn) => [
- q(2465),
+ q(2463),
q(0),
],
q(gdo) => [
- q(2466),
+ q(2464),
q(0),
],
q(gdq) => [
- q(2467),
+ q(2465),
q(0),
],
q(gdr) => [
- q(2468),
+ q(2466),
q(0),
],
q(gds) => [
- q(2469),
+ q(2467),
q(0),
],
q(gdt) => [
- q(2470),
+ q(2468),
q(0),
],
q(gdu) => [
- q(2471),
+ q(2469),
q(0),
],
q(gdx) => [
- q(2472),
+ q(2470),
q(0),
],
q(gea) => [
- q(2473),
+ q(2471),
q(0),
],
q(geb) => [
- q(2474),
+ q(2472),
q(0),
],
q(gec) => [
- q(2475),
+ q(2473),
q(0),
],
q(ged) => [
- q(2476),
+ q(2474),
q(0),
],
q(geg) => [
- q(2477),
+ q(2475),
q(0),
],
q(geh) => [
- q(2478),
+ q(2476),
q(0),
],
q(gei) => [
- q(2479),
+ q(2477),
q(0),
],
q(gej) => [
- q(2480),
+ q(2478),
q(0),
],
q(gek) => [
- q(2481),
+ q(2479),
q(0),
],
q(gel) => [
- q(2482),
+ q(2480),
q(0),
],
q(gem) => [
- q(0148),
+ q(0149),
q(0),
],
q(geo) => [
- q(0149),
+ q(0150),
q(0),
],
q(geq) => [
- q(2483),
+ q(2481),
q(0),
],
q(ger) => [
- q(0150),
+ q(0151),
q(0),
],
q(ges) => [
- q(2484),
+ q(2482),
q(0),
],
q(gev) => [
- q(2485),
+ q(2483),
q(0),
],
q(gew) => [
- q(2486),
+ q(2484),
q(0),
],
q(gex) => [
- q(2487),
+ q(2485),
q(0),
],
q(gey) => [
- q(2488),
+ q(2486),
q(0),
],
q(gez) => [
- q(0151),
+ q(0152),
q(0),
],
q(gfk) => [
- q(2489),
+ q(2487),
q(0),
],
q(gft) => [
- q(2490),
+ q(2488),
q(0),
],
q(gga) => [
- q(2491),
+ q(2489),
q(0),
],
q(ggb) => [
- q(2492),
+ q(2490),
q(0),
],
q(ggd) => [
- q(2493),
+ q(2491),
q(0),
],
q(gge) => [
- q(2494),
+ q(2492),
q(0),
],
q(ggg) => [
- q(2495),
+ q(2493),
q(0),
],
q(ggk) => [
- q(2496),
+ q(2494),
q(0),
],
q(ggl) => [
- q(2497),
- q(0),
- ],
- q(ggn) => [
- q(2498),
- q(0),
- ],
- q(ggo) => [
- q(2499),
+ q(2495),
q(0),
],
q(ggt) => [
- q(2500),
+ q(2496),
q(0),
],
q(ggu) => [
- q(2501),
+ q(2497),
q(0),
],
q(ggw) => [
- q(2502),
+ q(2498),
q(0),
],
q(gha) => [
- q(2503),
+ q(2499),
q(0),
],
q(ghc) => [
- q(2504),
+ q(2500),
q(0),
],
q(ghe) => [
- q(2505),
+ q(2501),
q(0),
],
q(ghh) => [
- q(2506),
+ q(2502),
q(0),
],
q(ghk) => [
- q(2507),
+ q(2503),
q(0),
],
q(ghl) => [
- q(2508),
+ q(2504),
q(0),
],
q(ghn) => [
- q(2509),
+ q(2505),
q(0),
],
q(gho) => [
- q(2510),
+ q(2506),
q(0),
],
q(ghr) => [
- q(2511),
+ q(2507),
q(0),
],
q(ghs) => [
- q(2512),
+ q(2508),
q(0),
],
q(ght) => [
- q(2513),
+ q(2509),
q(0),
],
q(gia) => [
- q(2514),
+ q(2510),
q(0),
],
q(gib) => [
- q(2515),
+ q(2511),
q(0),
],
q(gic) => [
- q(2516),
+ q(2512),
q(0),
],
q(gid) => [
- q(2517),
+ q(2513),
+ q(0),
+ ],
+ q(gie) => [
+ q(2514),
q(0),
],
q(gig) => [
- q(2518),
+ q(2515),
q(0),
],
q(gih) => [
- q(2519),
+ q(2516),
q(0),
],
q(gil) => [
- q(0152),
+ q(0153),
q(0),
],
q(gim) => [
- q(2520),
+ q(2517),
q(0),
],
q(gin) => [
- q(2521),
+ q(2518),
q(0),
],
q(gip) => [
- q(2522),
+ q(2519),
q(0),
],
q(giq) => [
- q(2523),
+ q(2520),
q(0),
],
q(gir) => [
- q(2524),
+ q(2521),
q(0),
],
q(gis) => [
- q(2525),
+ q(2522),
q(0),
],
q(git) => [
- q(2526),
+ q(2523),
q(0),
],
q(giu) => [
- q(2527),
+ q(2524),
q(0),
],
q(giw) => [
- q(2528),
+ q(2525),
q(0),
],
q(gix) => [
- q(2529),
+ q(2526),
q(0),
],
q(giy) => [
- q(2530),
+ q(2527),
q(0),
],
q(giz) => [
- q(2531),
+ q(2528),
q(0),
],
q(gji) => [
- q(2532),
+ q(2529),
q(0),
],
q(gjk) => [
- q(2533),
+ q(2530),
q(0),
],
q(gjm) => [
- q(2534),
+ q(2531),
q(0),
],
q(gjn) => [
- q(2535),
+ q(2532),
+ q(0),
+ ],
+ q(gjr) => [
+ q(2533),
q(0),
],
q(gju) => [
- q(2536),
+ q(2534),
q(0),
],
q(gka) => [
- q(2537),
+ q(2535),
q(0),
],
q(gke) => [
- q(2538),
+ q(2536),
q(0),
],
q(gkn) => [
- q(2539),
+ q(2537),
q(0),
],
q(gko) => [
- q(2540),
+ q(2538),
q(0),
],
q(gkp) => [
- q(2541),
+ q(2539),
q(0),
],
q(gku) => [
- q(2542),
+ q(2540),
q(0),
],
q(gla) => [
- q(0153),
+ q(0154),
q(0),
],
q(glc) => [
- q(2543),
+ q(2541),
q(0),
],
q(gld) => [
- q(2544),
+ q(2542),
q(0),
],
q(gle) => [
- q(0154),
+ q(0155),
q(0),
],
q(glg) => [
- q(0155),
+ q(0156),
q(0),
],
q(glh) => [
- q(2545),
+ q(2543),
q(0),
],
q(gli) => [
- q(2546),
+ q(2544),
q(0),
],
q(glj) => [
- q(2547),
+ q(2545),
q(0),
],
q(glk) => [
- q(2548),
+ q(2546),
q(0),
],
q(gll) => [
- q(2549),
+ q(2547),
q(0),
],
q(glo) => [
- q(2550),
+ q(2548),
q(0),
],
q(glr) => [
- q(2551),
+ q(2549),
q(0),
],
q(glu) => [
- q(2552),
+ q(2550),
q(0),
],
q(glv) => [
- q(0156),
+ q(0157),
q(0),
],
q(glw) => [
- q(2553),
+ q(2551),
q(0),
],
q(gly) => [
- q(2554),
+ q(2552),
q(0),
],
q(gma) => [
- q(2555),
+ q(2553),
q(0),
],
q(gmb) => [
- q(2556),
+ q(2554),
q(0),
],
q(gmd) => [
- q(2557),
+ q(2555),
q(0),
],
q(gme) => [
- q(0505),
+ q(0506),
q(0),
],
q(gmg) => [
- q(2558),
+ q(2556),
q(0),
],
q(gmh) => [
- q(0157),
+ q(0158),
q(1),
],
q(gml) => [
- q(2559),
+ q(2557),
q(0),
],
q(gmm) => [
- q(2560),
+ q(2558),
q(0),
],
q(gmn) => [
- q(2561),
+ q(2559),
q(0),
],
q(gmq) => [
- q(0506),
+ q(0507),
q(0),
],
q(gmu) => [
- q(2562),
+ q(2560),
q(0),
],
q(gmv) => [
- q(2563),
+ q(2561),
q(0),
],
q(gmw) => [
- q(0507),
+ q(0508),
q(0),
],
q(gmx) => [
- q(2564),
+ q(2562),
q(0),
],
q(gmy) => [
- q(2565),
+ q(2563),
q(0),
],
q(gmz) => [
- q(2566),
+ q(2564),
q(0),
],
q(gna) => [
- q(2567),
+ q(2565),
q(0),
],
q(gnb) => [
- q(2568),
+ q(2566),
q(0),
],
q(gnc) => [
- q(2569),
+ q(2567),
q(0),
],
q(gnd) => [
- q(2570),
+ q(2568),
q(0),
],
q(gne) => [
- q(2571),
+ q(2569),
q(0),
],
q(gng) => [
- q(2572),
+ q(2570),
q(0),
],
q(gnh) => [
- q(2573),
+ q(2571),
q(0),
],
q(gni) => [
- q(2574),
+ q(2572),
q(0),
],
q(gnk) => [
- q(2575),
+ q(2573),
q(0),
],
q(gnl) => [
- q(2576),
+ q(2574),
q(0),
],
q(gnm) => [
- q(2577),
+ q(2575),
q(0),
],
q(gnn) => [
- q(2578),
+ q(2576),
q(0),
],
q(gno) => [
- q(2579),
+ q(2577),
q(0),
],
q(gnq) => [
- q(2575),
+ q(2573),
q(1),
],
q(gnr) => [
- q(2580),
+ q(2578),
q(0),
],
q(gnt) => [
- q(2581),
+ q(2579),
q(0),
],
q(gnu) => [
- q(2582),
+ q(2580),
q(0),
],
q(gnw) => [
- q(2583),
+ q(2581),
q(0),
],
q(gnz) => [
- q(2584),
+ q(2582),
q(0),
],
q(goa) => [
- q(2585),
+ q(2583),
q(0),
],
q(gob) => [
- q(2586),
+ q(2584),
q(0),
],
q(goc) => [
- q(2587),
+ q(2585),
q(0),
],
q(god) => [
- q(2588),
+ q(2586),
q(0),
],
q(goe) => [
- q(2589),
+ q(2587),
q(0),
],
q(gof) => [
- q(2590),
+ q(2588),
q(0),
],
q(gog) => [
- q(2591),
+ q(2589),
q(0),
],
q(goh) => [
- q(0158),
+ q(0159),
q(1),
],
q(goi) => [
- q(2592),
+ q(2590),
q(0),
],
q(goj) => [
- q(2593),
+ q(2591),
q(0),
],
q(gok) => [
- q(2594),
+ q(2592),
q(0),
],
q(gol) => [
- q(2595),
+ q(2593),
q(0),
],
q(gom) => [
- q(2596),
+ q(2594),
q(0),
],
q(gon) => [
- q(0159),
+ q(0160),
q(0),
],
q(goo) => [
- q(2597),
+ q(2595),
q(0),
],
q(gop) => [
- q(2598),
+ q(2596),
q(0),
],
q(goq) => [
- q(2599),
+ q(2597),
q(0),
],
q(gor) => [
- q(0160),
+ q(0161),
q(0),
],
q(gos) => [
- q(2600),
+ q(2598),
q(0),
],
q(got) => [
- q(0161),
+ q(0162),
q(0),
],
q(gou) => [
- q(2601),
+ q(2599),
q(0),
],
q(gow) => [
- q(2602),
+ q(2600),
q(0),
],
q(gox) => [
- q(2603),
+ q(2601),
q(0),
],
q(goy) => [
- q(2604),
+ q(2602),
q(0),
],
q(goz) => [
- q(2605),
+ q(2603),
q(0),
],
q(gpa) => [
- q(2606),
+ q(2604),
q(0),
],
q(gpe) => [
- q(2607),
+ q(2605),
q(0),
],
q(gpn) => [
- q(2608),
+ q(2606),
q(0),
],
q(gqa) => [
- q(2609),
+ q(2607),
q(0),
],
q(gqi) => [
- q(2610),
+ q(2608),
q(0),
],
q(gqn) => [
- q(2611),
+ q(2609),
q(0),
],
q(gqr) => [
- q(2612),
+ q(2610),
q(0),
],
q(gqu) => [
- q(2613),
+ q(2611),
q(0),
],
q(gra) => [
- q(2614),
+ q(2612),
q(0),
],
q(grb) => [
- q(0162),
+ q(0163),
q(0),
],
q(grc) => [
- q(0163),
+ q(0164),
q(1),
],
q(grd) => [
- q(2615),
+ q(2613),
q(0),
],
q(gre) => [
- q(0164),
+ q(0165),
q(0),
],
q(grg) => [
- q(2616),
+ q(2614),
q(0),
],
q(grh) => [
- q(2617),
+ q(2615),
q(0),
],
q(gri) => [
- q(2618),
+ q(2616),
q(0),
],
q(grj) => [
- q(2619),
+ q(2617),
q(0),
],
q(grk) => [
- q(0508),
+ q(0509),
q(0),
],
q(grm) => [
- q(2620),
+ q(2618),
q(0),
],
q(grn) => [
- q(0165),
+ q(0166),
q(0),
],
q(gro) => [
- q(2621),
+ q(2619),
q(0),
],
q(grq) => [
- q(2622),
+ q(2620),
q(0),
],
q(grr) => [
- q(2623),
+ q(2621),
q(0),
],
q(grs) => [
- q(2624),
+ q(2622),
q(0),
],
q(grt) => [
- q(2625),
+ q(2623),
q(0),
],
q(gru) => [
- q(2626),
+ q(2624),
q(0),
],
q(grv) => [
- q(2627),
+ q(2625),
q(0),
],
q(grw) => [
- q(2628),
+ q(2626),
q(0),
],
q(grx) => [
- q(2629),
+ q(2627),
q(0),
],
q(gry) => [
- q(2630),
+ q(2628),
q(0),
],
q(grz) => [
- q(2631),
+ q(2629),
q(0),
],
q(gse) => [
- q(2632),
+ q(2630),
q(0),
],
q(gsg) => [
- q(2633),
+ q(2631),
q(0),
],
q(gsl) => [
- q(2634),
+ q(2632),
q(0),
],
q(gsm) => [
- q(2635),
+ q(2633),
q(0),
],
q(gsn) => [
- q(2636),
+ q(2634),
q(0),
],
q(gso) => [
- q(2637),
+ q(2635),
q(0),
],
q(gsp) => [
- q(2638),
+ q(2636),
q(0),
],
q(gss) => [
- q(2639),
+ q(2637),
q(0),
],
q(gsw) => [
- q(0166),
+ q(0167),
q(0),
],
q(gta) => [
- q(2640),
+ q(2638),
q(0),
],
q(gtu) => [
- q(2641),
+ q(2639),
q(0),
],
q(gua) => [
- q(2642),
+ q(2640),
q(0),
],
q(gub) => [
- q(2643),
+ q(2641),
q(0),
],
q(guc) => [
- q(2644),
+ q(2642),
q(0),
],
q(gud) => [
- q(2645),
+ q(2643),
q(0),
],
q(gue) => [
- q(2646),
+ q(2644),
q(0),
],
q(guf) => [
- q(2647),
+ q(2645),
q(0),
],
q(gug) => [
- q(2648),
+ q(2646),
q(0),
],
q(guh) => [
- q(2649),
+ q(2647),
q(0),
],
q(gui) => [
- q(2650),
+ q(2648),
q(0),
],
q(guj) => [
- q(0167),
+ q(0168),
q(0),
],
q(guk) => [
- q(2651),
+ q(2649),
q(0),
],
q(gul) => [
- q(2652),
+ q(2650),
q(0),
],
q(gum) => [
- q(2653),
+ q(2651),
q(0),
],
q(gun) => [
- q(2654),
+ q(2652),
q(0),
],
q(guo) => [
- q(2655),
+ q(2653),
q(0),
],
q(gup) => [
- q(2656),
+ q(2654),
q(0),
],
q(guq) => [
- q(2657),
+ q(2655),
q(0),
],
q(gur) => [
- q(2658),
+ q(2656),
q(0),
],
q(gus) => [
- q(2659),
+ q(2657),
q(0),
],
q(gut) => [
- q(2660),
+ q(2658),
q(0),
],
q(guu) => [
- q(2661),
- q(0),
- ],
- q(guv) => [
- q(2662),
+ q(2659),
q(0),
],
q(guw) => [
- q(2663),
+ q(2660),
q(0),
],
q(gux) => [
- q(2664),
+ q(2661),
q(0),
],
q(guz) => [
- q(2665),
+ q(2662),
q(0),
],
q(gva) => [
- q(2666),
+ q(2663),
q(0),
],
q(gvc) => [
- q(2667),
+ q(2664),
q(0),
],
q(gve) => [
- q(2668),
+ q(2665),
q(0),
],
q(gvf) => [
- q(2669),
+ q(2666),
q(0),
],
q(gvj) => [
- q(2670),
+ q(2667),
q(0),
],
q(gvl) => [
- q(2671),
+ q(2668),
q(0),
],
q(gvm) => [
- q(2672),
+ q(2669),
q(0),
],
q(gvn) => [
- q(2673),
+ q(2670),
q(0),
],
q(gvo) => [
- q(2674),
+ q(2671),
q(0),
],
q(gvp) => [
- q(2675),
+ q(2672),
q(0),
],
q(gvr) => [
- q(2676),
+ q(2673),
q(0),
],
q(gvs) => [
- q(2677),
+ q(2674),
q(0),
],
q(gvy) => [
- q(2678),
+ q(2675),
q(0),
],
q(gwa) => [
- q(2679),
+ q(2676),
q(0),
],
q(gwb) => [
- q(2680),
+ q(2677),
q(0),
],
q(gwc) => [
- q(2681),
+ q(2678),
q(0),
],
q(gwd) => [
- q(2682),
+ q(2679),
q(0),
],
q(gwe) => [
- q(2683),
+ q(2680),
q(0),
],
q(gwf) => [
- q(2684),
+ q(2681),
q(0),
],
q(gwg) => [
- q(2685),
+ q(2682),
q(0),
],
q(gwi) => [
- q(0168),
+ q(0169),
q(0),
],
q(gwj) => [
- q(2686),
+ q(2683),
q(0),
],
q(gwm) => [
- q(2687),
+ q(2684),
q(0),
],
q(gwn) => [
- q(2688),
+ q(2685),
q(0),
],
q(gwr) => [
- q(2689),
+ q(2686),
q(0),
],
q(gwt) => [
- q(2690),
+ q(2687),
q(0),
],
q(gwu) => [
- q(2691),
+ q(2688),
q(0),
],
q(gww) => [
- q(2692),
+ q(2689),
q(0),
],
q(gwx) => [
- q(2693),
+ q(2690),
q(0),
],
q(gxx) => [
- q(2694),
+ q(2691),
q(0),
],
q(gya) => [
- q(2695),
+ q(2692),
q(0),
],
q(gyb) => [
- q(2696),
+ q(2693),
q(0),
],
q(gyd) => [
- q(2697),
+ q(2694),
q(0),
],
q(gye) => [
- q(2698),
+ q(2695),
q(0),
],
q(gyf) => [
- q(2699),
+ q(2696),
q(0),
],
q(gyg) => [
- q(2700),
+ q(2697),
q(0),
],
q(gyi) => [
- q(2701),
+ q(2698),
q(0),
],
q(gyl) => [
- q(2702),
+ q(2699),
q(0),
],
q(gym) => [
- q(2703),
+ q(2700),
q(0),
],
q(gyn) => [
- q(2704),
+ q(2701),
q(0),
],
q(gyr) => [
- q(2705),
+ q(2702),
q(0),
],
q(gyy) => [
- q(2706),
+ q(2703),
q(0),
],
q(gza) => [
- q(2707),
+ q(2704),
q(0),
],
q(gzi) => [
- q(2708),
+ q(2705),
q(0),
],
q(gzn) => [
- q(2709),
+ q(2706),
q(0),
],
q(haa) => [
- q(2710),
+ q(2707),
q(0),
],
q(hab) => [
- q(2711),
+ q(2708),
q(0),
],
q(hac) => [
- q(2712),
+ q(2709),
q(0),
],
q(had) => [
- q(2713),
+ q(2710),
q(0),
],
q(hae) => [
- q(2714),
+ q(2711),
q(0),
],
q(haf) => [
- q(2715),
+ q(2712),
q(0),
],
q(hag) => [
- q(2716),
+ q(2713),
q(0),
],
q(hah) => [
- q(2717),
+ q(2714),
q(0),
],
q(hai) => [
- q(0169),
+ q(0170),
q(0),
],
q(haj) => [
- q(2718),
+ q(2715),
q(0),
],
q(hak) => [
- q(2719),
+ q(2716),
q(0),
],
q(hal) => [
- q(2720),
+ q(2717),
q(0),
],
q(ham) => [
- q(2721),
+ q(2718),
q(0),
],
q(han) => [
- q(2722),
+ q(2719),
q(0),
],
q(hao) => [
- q(2723),
+ q(2720),
q(0),
],
q(hap) => [
- q(2724),
+ q(2721),
q(0),
],
q(haq) => [
- q(2725),
+ q(2722),
q(0),
],
q(har) => [
- q(2726),
+ q(2723),
q(0),
],
q(has) => [
- q(2727),
+ q(2724),
q(0),
],
q(hat) => [
- q(0170),
+ q(0171),
q(0),
],
q(hau) => [
- q(0171),
+ q(0172),
q(0),
],
q(hav) => [
- q(2728),
+ q(2725),
q(0),
],
q(haw) => [
- q(0172),
+ q(0173),
q(0),
],
q(hax) => [
- q(2729),
+ q(2726),
q(0),
],
q(hay) => [
- q(2730),
+ q(2727),
q(0),
],
q(haz) => [
- q(2731),
+ q(2728),
q(0),
],
q(hba) => [
- q(2732),
+ q(2729),
q(0),
],
q(hbb) => [
- q(2733),
+ q(2730),
q(0),
],
q(hbn) => [
- q(2734),
+ q(2731),
q(0),
],
q(hbo) => [
- q(2735),
+ q(2732),
q(0),
],
q(hbu) => [
- q(2736),
+ q(2733),
q(0),
],
q(hca) => [
- q(2737),
+ q(2734),
q(0),
],
q(hch) => [
- q(2738),
+ q(2735),
q(0),
],
q(hdn) => [
- q(2739),
+ q(2736),
q(0),
],
q(hds) => [
- q(2740),
+ q(2737),
q(0),
],
q(hdy) => [
- q(2741),
+ q(2738),
q(0),
],
q(hea) => [
- q(2742),
+ q(2739),
q(0),
],
q(heb) => [
- q(0173),
+ q(0174),
q(0),
],
q(hed) => [
- q(2743),
+ q(2740),
q(0),
],
q(heg) => [
- q(2744),
+ q(2741),
q(0),
],
q(heh) => [
- q(2745),
+ q(2742),
q(0),
],
q(hei) => [
- q(2746),
+ q(2743),
q(0),
],
q(hem) => [
- q(2747),
+ q(2744),
q(0),
],
q(her) => [
- q(0174),
+ q(0175),
q(0),
],
q(hgm) => [
- q(2748),
+ q(2745),
q(0),
],
q(hgw) => [
- q(2749),
+ q(2746),
q(0),
],
q(hhi) => [
- q(2750),
+ q(2747),
q(0),
],
q(hhr) => [
- q(2751),
+ q(2748),
q(0),
],
q(hhy) => [
- q(2752),
+ q(2749),
q(0),
],
q(hia) => [
- q(2753),
+ q(2750),
q(0),
],
q(hib) => [
- q(2754),
+ q(2751),
q(0),
],
q(hid) => [
- q(2755),
+ q(2752),
q(0),
],
q(hif) => [
- q(2756),
+ q(2753),
q(0),
],
q(hig) => [
- q(2757),
+ q(2754),
q(0),
],
q(hih) => [
- q(2758),
+ q(2755),
q(0),
],
q(hii) => [
- q(2759),
+ q(2756),
q(0),
],
q(hij) => [
- q(2760),
+ q(2757),
q(0),
],
q(hik) => [
- q(2761),
+ q(2758),
q(0),
],
q(hil) => [
- q(0175),
+ q(0176),
q(0),
],
q(him) => [
- q(0176),
+ q(0177),
q(0),
],
q(hin) => [
- q(0177),
+ q(0178),
q(0),
],
q(hio) => [
- q(2762),
+ q(2759),
q(0),
],
q(hir) => [
- q(2763),
+ q(2760),
q(0),
],
q(hit) => [
- q(0178),
+ q(0179),
q(0),
],
q(hiw) => [
- q(2764),
+ q(2761),
q(0),
],
q(hix) => [
- q(2765),
+ q(2762),
q(0),
],
q(hji) => [
- q(2766),
+ q(2763),
q(0),
],
q(hka) => [
- q(2767),
+ q(2764),
q(0),
],
q(hke) => [
- q(2768),
+ q(2765),
q(0),
],
q(hkk) => [
- q(2769),
+ q(2766),
q(0),
],
q(hks) => [
- q(2770),
+ q(2767),
q(0),
],
q(hla) => [
- q(2771),
+ q(2768),
q(0),
],
q(hlb) => [
- q(2772),
+ q(2769),
q(0),
],
q(hld) => [
- q(2773),
+ q(2770),
q(0),
],
q(hle) => [
- q(2774),
+ q(2771),
q(0),
],
q(hlt) => [
- q(2775),
+ q(2772),
q(0),
],
q(hlu) => [
- q(2776),
+ q(2773),
q(0),
],
q(hma) => [
- q(2777),
+ q(2774),
q(0),
],
q(hmb) => [
- q(2778),
+ q(2775),
q(0),
],
q(hmc) => [
- q(2779),
+ q(2776),
q(0),
],
q(hmd) => [
- q(2780),
+ q(2777),
q(0),
],
q(hme) => [
- q(2781),
+ q(2778),
q(0),
],
q(hmf) => [
- q(2782),
+ q(2779),
q(0),
],
q(hmg) => [
- q(2783),
+ q(2780),
q(0),
],
q(hmh) => [
- q(2784),
+ q(2781),
q(0),
],
q(hmi) => [
- q(2785),
+ q(2782),
q(0),
],
q(hmj) => [
- q(2786),
+ q(2783),
q(0),
],
q(hmk) => [
- q(2787),
+ q(2784),
q(0),
],
q(hml) => [
- q(2788),
+ q(2785),
q(0),
],
q(hmm) => [
- q(2789),
+ q(2786),
q(0),
],
q(hmn) => [
- q(0179),
+ q(0180),
q(0),
],
q(hmo) => [
- q(0180),
+ q(0181),
q(0),
],
q(hmp) => [
- q(2790),
+ q(2787),
q(0),
],
q(hmq) => [
- q(2791),
+ q(2788),
q(0),
],
q(hmr) => [
- q(2792),
+ q(2789),
q(0),
],
q(hms) => [
- q(2793),
+ q(2790),
q(0),
],
q(hmt) => [
- q(2794),
+ q(2791),
q(0),
],
q(hmu) => [
- q(2795),
+ q(2792),
q(0),
],
q(hmv) => [
- q(2796),
+ q(2793),
q(0),
],
q(hmw) => [
- q(2797),
+ q(2794),
q(0),
],
q(hmx) => [
- q(0509),
+ q(0510),
q(0),
],
q(hmy) => [
- q(2798),
+ q(2795),
q(0),
],
q(hmz) => [
- q(2799),
+ q(2796),
q(0),
],
q(hna) => [
- q(2800),
+ q(2797),
q(0),
],
q(hnd) => [
- q(2801),
+ q(2798),
q(0),
],
q(hne) => [
- q(2802),
+ q(2799),
q(0),
],
q(hnh) => [
- q(2803),
+ q(2800),
q(0),
],
q(hni) => [
- q(2804),
+ q(2801),
q(0),
],
q(hnj) => [
- q(2805),
+ q(2802),
q(0),
],
q(hnn) => [
- q(2806),
+ q(2803),
q(0),
],
q(hno) => [
- q(2807),
+ q(2804),
q(0),
],
q(hns) => [
- q(2808),
+ q(2805),
q(0),
],
q(hnu) => [
- q(2809),
+ q(2806),
q(0),
],
q(hoa) => [
- q(2810),
+ q(2807),
q(0),
],
q(hob) => [
- q(2811),
+ q(2808),
q(0),
],
q(hoc) => [
- q(2812),
+ q(2809),
q(0),
],
q(hod) => [
- q(2813),
+ q(2810),
q(0),
],
q(hoe) => [
- q(2814),
+ q(2811),
q(0),
],
q(hoh) => [
- q(2815),
+ q(2812),
q(0),
],
q(hoi) => [
- q(2816),
+ q(2813),
q(0),
],
q(hoj) => [
- q(2817),
+ q(2814),
q(0),
],
q(hok) => [
- q(0510),
+ q(0511),
q(0),
],
q(hol) => [
- q(2818),
+ q(2815),
q(0),
],
q(hom) => [
- q(2819),
+ q(2816),
q(0),
],
q(hoo) => [
- q(2820),
+ q(2817),
q(0),
],
q(hop) => [
- q(2821),
+ q(2818),
q(0),
],
q(hor) => [
- q(2822),
+ q(2819),
q(0),
],
q(hos) => [
- q(2823),
+ q(2820),
q(0),
],
q(hot) => [
- q(2824),
+ q(2821),
q(0),
],
q(hov) => [
- q(2825),
+ q(2822),
q(0),
],
q(how) => [
- q(2826),
+ q(2823),
q(0),
],
q(hoy) => [
- q(2827),
+ q(2824),
q(0),
],
q(hoz) => [
- q(2828),
+ q(2825),
q(0),
],
q(hpo) => [
- q(2829),
+ q(2826),
q(0),
],
q(hps) => [
- q(2830),
+ q(2827),
q(0),
],
q(hra) => [
- q(2831),
+ q(2828),
q(0),
],
q(hrc) => [
- q(2832),
+ q(2829),
q(0),
],
q(hre) => [
- q(2833),
+ q(2830),
q(0),
],
q(hrk) => [
- q(2834),
+ q(2831),
q(0),
],
q(hrm) => [
- q(2835),
+ q(2832),
q(0),
],
q(hro) => [
- q(2836),
+ q(2833),
q(0),
],
q(hrp) => [
- q(2837),
+ q(2834),
q(0),
],
q(hrt) => [
- q(2838),
+ q(2835),
q(0),
],
q(hru) => [
- q(2839),
+ q(2836),
q(0),
],
q(hrv) => [
- q(0181),
+ q(0182),
q(0),
],
q(hrw) => [
- q(2840),
+ q(2837),
q(0),
],
q(hrx) => [
- q(2841),
+ q(2838),
q(0),
],
q(hrz) => [
- q(2842),
+ q(2839),
q(0),
],
q(hsb) => [
- q(0182),
+ q(0183),
q(0),
],
q(hsh) => [
- q(2843),
+ q(2840),
q(0),
],
q(hsl) => [
- q(2844),
+ q(2841),
q(0),
],
q(hsn) => [
- q(2845),
+ q(2842),
q(0),
],
q(hss) => [
- q(2846),
+ q(2843),
q(0),
],
q(hti) => [
- q(2847),
+ q(2844),
q(0),
],
q(hto) => [
- q(2848),
+ q(2845),
q(0),
],
q(hts) => [
- q(2849),
+ q(2846),
q(0),
],
q(htu) => [
- q(2850),
+ q(2847),
q(0),
],
q(htx) => [
- q(2851),
+ q(2848),
q(0),
],
q(hub) => [
- q(2852),
+ q(2849),
q(0),
],
q(huc) => [
- q(2853),
+ q(2850),
q(0),
],
q(hud) => [
- q(2854),
+ q(2851),
q(0),
],
q(hue) => [
- q(2855),
+ q(2852),
q(0),
],
q(huf) => [
- q(2856),
+ q(2853),
q(0),
],
q(hug) => [
- q(2857),
+ q(2854),
q(0),
],
q(huh) => [
- q(2858),
+ q(2855),
q(0),
],
q(hui) => [
- q(2859),
+ q(2856),
q(0),
],
q(huj) => [
- q(2860),
+ q(2857),
q(0),
],
q(huk) => [
- q(2861),
+ q(2858),
q(0),
],
q(hul) => [
- q(2862),
+ q(2859),
q(0),
],
q(hum) => [
- q(2863),
+ q(2860),
q(0),
],
q(hun) => [
- q(0183),
+ q(0184),
q(0),
],
q(huo) => [
- q(2864),
+ q(2861),
q(0),
],
q(hup) => [
- q(0184),
+ q(0185),
q(0),
],
q(huq) => [
- q(2865),
+ q(2862),
q(0),
],
q(hur) => [
- q(2866),
+ q(2863),
q(0),
],
q(hus) => [
- q(2867),
+ q(2864),
q(0),
],
q(hut) => [
- q(2868),
+ q(2865),
q(0),
],
q(huu) => [
- q(2869),
+ q(2866),
q(0),
],
q(huv) => [
- q(2870),
+ q(2867),
q(0),
],
q(huw) => [
- q(2871),
+ q(2868),
q(0),
],
q(hux) => [
- q(2872),
+ q(2869),
q(0),
],
q(huy) => [
- q(2873),
+ q(2870),
q(0),
],
q(huz) => [
- q(2874),
+ q(2871),
q(0),
],
q(hvc) => [
- q(2875),
+ q(2872),
q(0),
],
q(hve) => [
- q(2876),
+ q(2873),
q(0),
],
q(hvk) => [
- q(2877),
+ q(2874),
q(0),
],
q(hvn) => [
- q(2878),
+ q(2875),
q(0),
],
q(hvv) => [
- q(2879),
+ q(2876),
q(0),
],
q(hwa) => [
- q(2880),
+ q(2877),
q(0),
],
q(hwc) => [
- q(2881),
+ q(2878),
q(0),
],
q(hwo) => [
- q(2882),
+ q(2879),
q(0),
],
q(hya) => [
- q(2883),
+ q(2880),
q(0),
],
q(hyx) => [
- q(0511),
+ q(0512),
q(0),
],
q(iai) => [
- q(2884),
+ q(2881),
q(0),
],
q(ian) => [
- q(2885),
- q(0),
- ],
- q(iap) => [
- q(2886),
+ q(2882),
q(0),
],
q(iar) => [
- q(2887),
+ q(2883),
q(0),
],
q(iba) => [
- q(0185),
+ q(0186),
q(0),
],
q(ibb) => [
- q(2888),
+ q(2884),
q(0),
],
q(ibd) => [
- q(2889),
+ q(2885),
q(0),
],
q(ibe) => [
- q(2890),
+ q(2886),
q(0),
],
q(ibg) => [
- q(2891),
+ q(2887),
+ q(0),
+ ],
+ q(ibh) => [
+ q(2888),
q(0),
],
q(ibl) => [
- q(2892),
+ q(2889),
q(0),
],
q(ibm) => [
- q(2893),
+ q(2890),
q(0),
],
q(ibn) => [
- q(2894),
+ q(2891),
q(0),
],
q(ibo) => [
- q(0186),
+ q(0187),
q(0),
],
q(ibr) => [
- q(2895),
+ q(2892),
q(0),
],
q(ibu) => [
- q(2896),
+ q(2893),
q(0),
],
q(iby) => [
- q(2897),
+ q(2894),
q(0),
],
q(ica) => [
- q(2898),
+ q(2895),
q(0),
],
q(ice) => [
- q(0187),
+ q(0188),
q(0),
],
q(ich) => [
- q(2899),
+ q(2896),
q(0),
],
q(icl) => [
- q(2900),
+ q(2897),
q(0),
],
q(icr) => [
- q(2901),
+ q(2898),
q(0),
],
q(ida) => [
- q(2902),
+ q(2899),
q(0),
],
q(idb) => [
- q(2903),
+ q(2900),
q(0),
],
q(idc) => [
- q(2904),
+ q(2901),
q(0),
],
q(idd) => [
- q(2905),
+ q(2902),
q(0),
],
q(ide) => [
- q(2906),
+ q(2903),
q(0),
],
q(idi) => [
- q(2907),
+ q(2904),
q(0),
],
q(ido) => [
- q(0188),
+ q(0189),
q(0),
],
q(idr) => [
- q(2908),
+ q(2905),
q(0),
],
q(ids) => [
- q(2909),
+ q(2906),
q(0),
],
q(idt) => [
- q(2910),
+ q(2907),
q(0),
],
q(idu) => [
- q(2911),
+ q(2908),
q(0),
],
q(ifa) => [
- q(2912),
+ q(2909),
q(0),
],
q(ifb) => [
- q(2913),
+ q(2910),
q(0),
],
q(ife) => [
- q(2914),
+ q(2911),
q(0),
],
q(iff) => [
- q(2915),
+ q(2912),
q(0),
],
q(ifk) => [
- q(2916),
+ q(2913),
q(0),
],
q(ifm) => [
- q(2917),
+ q(2914),
q(0),
],
q(ifu) => [
- q(2918),
+ q(2915),
q(0),
],
q(ify) => [
- q(2919),
+ q(2916),
q(0),
],
q(igb) => [
- q(2920),
+ q(2917),
q(0),
],
q(ige) => [
- q(2921),
+ q(2918),
q(0),
],
q(igg) => [
- q(2922),
+ q(2919),
q(0),
],
q(igl) => [
- q(2923),
+ q(2920),
q(0),
],
q(igm) => [
- q(2924),
+ q(2921),
q(0),
],
q(ign) => [
- q(2925),
+ q(2922),
q(0),
],
q(igo) => [
- q(2926),
+ q(2923),
q(0),
],
q(igs) => [
- q(2927),
+ q(2924),
q(0),
],
q(igw) => [
- q(2928),
+ q(2925),
q(0),
],
q(ihb) => [
- q(2929),
+ q(2926),
q(0),
],
q(ihi) => [
- q(2930),
+ q(2927),
q(0),
],
q(ihp) => [
- q(2931),
+ q(2928),
q(0),
],
q(ihw) => [
- q(2932),
+ q(2929),
q(0),
],
q(iii) => [
- q(0189),
+ q(0190),
q(0),
],
q(iin) => [
- q(2933),
+ q(2930),
q(0),
],
q(iir) => [
- q(0512),
+ q(0513),
q(0),
],
q(ijc) => [
- q(2934),
+ q(2931),
q(0),
],
q(ije) => [
- q(2935),
+ q(2932),
q(0),
],
q(ijj) => [
- q(2936),
+ q(2933),
q(0),
],
q(ijn) => [
- q(2937),
+ q(2934),
q(0),
],
q(ijo) => [
- q(0190),
+ q(0191),
q(0),
],
q(ijs) => [
- q(2938),
+ q(2935),
q(0),
],
q(ike) => [
- q(2939),
+ q(2936),
q(0),
],
q(iki) => [
- q(2940),
+ q(2937),
q(0),
],
q(ikk) => [
- q(2941),
+ q(2938),
q(0),
],
q(ikl) => [
- q(2942),
+ q(2939),
q(0),
],
q(iko) => [
- q(2943),
+ q(2940),
q(0),
],
q(ikp) => [
- q(2944),
+ q(2941),
q(0),
],
q(ikr) => [
- q(2945),
+ q(2942),
q(0),
],
q(iks) => [
- q(2946),
+ q(2943),
q(0),
],
q(ikt) => [
- q(2947),
+ q(2944),
q(0),
],
q(iku) => [
- q(0191),
+ q(0192),
q(0),
],
q(ikv) => [
- q(2948),
+ q(2945),
q(0),
],
q(ikw) => [
- q(2949),
+ q(2946),
q(0),
],
q(ikx) => [
- q(2950),
+ q(2947),
q(0),
],
q(ikz) => [
- q(2951),
+ q(2948),
q(0),
],
q(ila) => [
- q(2952),
+ q(2949),
q(0),
],
q(ilb) => [
- q(2953),
+ q(2950),
q(0),
],
q(ile) => [
- q(0192),
+ q(0193),
q(0),
],
q(ilg) => [
- q(2954),
+ q(2951),
q(0),
],
q(ili) => [
- q(2955),
+ q(2952),
q(0),
],
q(ilk) => [
- q(2956),
+ q(2953),
q(0),
],
- q(ill) => [
- q(2957),
+ q(ilm) => [
+ q(2954),
q(0),
],
q(ilo) => [
- q(0193),
+ q(0194),
+ q(0),
+ ],
+ q(ilp) => [
+ q(2955),
q(0),
],
q(ils) => [
- q(2958),
+ q(2956),
q(0),
],
q(ilu) => [
- q(2959),
+ q(2957),
q(0),
],
q(ilv) => [
- q(2960),
+ q(2958),
q(0),
],
q(ima) => [
- q(2961),
+ q(2959),
q(0),
],
q(imi) => [
- q(2962),
+ q(2960),
q(0),
],
q(iml) => [
- q(2963),
+ q(2961),
q(0),
],
q(imn) => [
- q(2964),
+ q(2962),
q(0),
],
q(imo) => [
- q(2965),
+ q(2963),
q(0),
],
q(imr) => [
- q(2966),
+ q(2964),
q(0),
],
q(ims) => [
- q(2967),
+ q(2965),
q(0),
],
q(imy) => [
- q(2968),
+ q(2966),
q(0),
],
q(ina) => [
- q(0194),
+ q(0195),
q(0),
],
q(inb) => [
- q(2969),
+ q(2967),
q(0),
],
q(inc) => [
- q(0195),
+ q(0196),
q(0),
],
q(ind) => [
- q(0196),
+ q(0197),
q(0),
],
q(ine) => [
- q(0197),
+ q(0198),
q(0),
],
q(ing) => [
- q(2970),
+ q(2968),
q(0),
],
q(inh) => [
- q(0198),
+ q(0199),
q(0),
],
q(inj) => [
- q(2971),
+ q(2969),
q(0),
],
q(inl) => [
- q(2972),
+ q(2970),
q(0),
],
q(inm) => [
- q(2973),
+ q(2971),
q(0),
],
q(inn) => [
- q(2974),
+ q(2972),
q(0),
],
q(ino) => [
- q(2975),
+ q(2973),
q(0),
],
q(inp) => [
- q(2976),
+ q(2974),
q(0),
],
q(ins) => [
- q(2977),
+ q(2975),
q(0),
],
q(int) => [
- q(2978),
+ q(2976),
q(0),
],
q(inz) => [
- q(2979),
+ q(2977),
q(0),
],
q(ior) => [
- q(2980),
+ q(2978),
q(0),
],
q(iou) => [
- q(2981),
+ q(2979),
q(0),
],
q(iow) => [
- q(2982),
+ q(2980),
q(0),
],
q(ipi) => [
- q(2983),
+ q(2981),
q(0),
],
q(ipk) => [
- q(0199),
+ q(0200),
q(0),
],
q(ipo) => [
- q(2984),
+ q(2982),
q(0),
],
q(iqu) => [
- q(2985),
+ q(2983),
q(0),
],
q(iqw) => [
- q(2986),
+ q(2984),
q(0),
],
q(ira) => [
- q(0200),
+ q(0201),
q(0),
],
q(ire) => [
- q(2987),
+ q(2985),
q(0),
],
q(irh) => [
- q(2988),
+ q(2986),
q(0),
],
q(iri) => [
- q(2989),
+ q(2987),
q(0),
],
q(irk) => [
- q(2990),
+ q(2988),
q(0),
],
q(irn) => [
- q(2991),
+ q(2989),
q(0),
],
q(iro) => [
- q(0201),
+ q(0202),
q(0),
],
q(irr) => [
- q(2992),
+ q(2990),
q(0),
],
q(iru) => [
- q(2993),
+ q(2991),
q(0),
],
q(irx) => [
- q(2994),
+ q(2992),
q(0),
],
q(iry) => [
- q(2995),
+ q(2993),
q(0),
],
q(isa) => [
- q(2996),
+ q(2994),
q(0),
],
q(isc) => [
- q(2997),
+ q(2995),
q(0),
],
q(isd) => [
- q(2998),
+ q(2996),
q(0),
],
q(ise) => [
- q(2999),
+ q(2997),
q(0),
],
q(isg) => [
- q(3000),
+ q(2998),
q(0),
],
q(ish) => [
- q(3001),
+ q(2999),
q(0),
],
q(isi) => [
- q(3002),
+ q(3000),
q(0),
],
q(isk) => [
- q(3003),
+ q(3001),
q(0),
],
q(ism) => [
- q(3004),
+ q(3002),
q(0),
],
q(isn) => [
- q(3005),
+ q(3003),
q(0),
],
q(iso) => [
- q(3006),
+ q(3004),
q(0),
],
q(isr) => [
- q(3007),
+ q(3005),
q(0),
],
q(ist) => [
- q(3008),
+ q(3006),
q(0),
],
q(isu) => [
- q(3009),
+ q(3007),
q(0),
],
q(ita) => [
- q(0202),
+ q(0203),
q(0),
],
q(itb) => [
- q(3010),
+ q(3008),
q(0),
],
q(itc) => [
- q(0513),
+ q(0514),
+ q(0),
+ ],
+ q(itd) => [
+ q(3009),
q(0),
],
q(ite) => [
- q(3011),
+ q(3010),
q(0),
],
q(iti) => [
- q(3012),
+ q(3011),
q(0),
],
q(itk) => [
- q(3013),
+ q(3012),
q(0),
],
q(itl) => [
- q(3014),
+ q(3013),
q(0),
],
q(itm) => [
- q(3015),
+ q(3014),
q(0),
],
q(ito) => [
- q(3016),
+ q(3015),
q(0),
],
q(itr) => [
- q(3017),
+ q(3016),
q(0),
],
q(its) => [
- q(3018),
+ q(3017),
q(0),
],
q(itt) => [
- q(3019),
+ q(3018),
q(0),
],
q(itv) => [
- q(3020),
+ q(3019),
q(0),
],
q(itw) => [
- q(3021),
+ q(3020),
q(0),
],
q(itx) => [
- q(3022),
+ q(3021),
q(0),
],
q(ity) => [
- q(3023),
+ q(3022),
q(0),
],
q(itz) => [
- q(3024),
+ q(3023),
q(0),
],
q(ium) => [
- q(3025),
+ q(3024),
q(0),
],
q(ivb) => [
- q(3026),
+ q(3025),
q(0),
],
q(ivv) => [
- q(3027),
+ q(3026),
q(0),
],
q(iwk) => [
- q(3028),
+ q(3027),
q(0),
],
q(iwm) => [
- q(3029),
+ q(3028),
q(0),
],
q(iwo) => [
- q(3030),
+ q(3029),
q(0),
],
q(iws) => [
- q(3031),
+ q(3030),
q(0),
],
q(ixc) => [
- q(3032),
+ q(3031),
q(0),
],
q(ixl) => [
- q(3033),
+ q(3032),
q(0),
],
q(iya) => [
- q(3034),
+ q(3033),
q(0),
],
q(iyo) => [
- q(3035),
+ q(3034),
q(0),
],
q(iyx) => [
- q(3036),
+ q(3035),
q(0),
],
q(izh) => [
- q(3037),
+ q(3036),
q(0),
],
q(izr) => [
- q(3038),
+ q(3037),
q(0),
],
q(izz) => [
- q(3039),
+ q(3038),
q(0),
],
q(jaa) => [
- q(3040),
+ q(3039),
q(0),
],
q(jab) => [
- q(3041),
+ q(3040),
q(0),
],
q(jac) => [
- q(3042),
+ q(3041),
q(0),
],
q(jad) => [
- q(3043),
+ q(3042),
q(0),
],
q(jae) => [
- q(3044),
+ q(3043),
q(0),
],
q(jaf) => [
- q(3045),
+ q(3044),
q(0),
],
q(jah) => [
- q(3046),
+ q(3045),
q(0),
],
q(jaj) => [
- q(3047),
+ q(3046),
q(0),
],
q(jak) => [
- q(3048),
+ q(3047),
q(0),
],
q(jal) => [
- q(3049),
+ q(3048),
q(0),
],
q(jam) => [
- q(3050),
+ q(3049),
q(0),
],
q(jan) => [
- q(3051),
+ q(3050),
q(0),
],
q(jao) => [
- q(3052),
+ q(3051),
q(0),
],
q(jaq) => [
- q(3053),
+ q(3052),
q(0),
],
q(jas) => [
- q(3054),
+ q(3053),
q(0),
],
q(jat) => [
- q(3055),
+ q(3054),
q(0),
],
q(jau) => [
- q(3056),
+ q(3055),
q(0),
],
q(jav) => [
- q(0203),
+ q(0204),
q(0),
],
q(jax) => [
- q(3057),
+ q(3056),
q(0),
],
q(jay) => [
- q(3058),
+ q(3057),
q(0),
],
q(jaz) => [
- q(3059),
+ q(3058),
q(0),
],
q(jbe) => [
- q(3060),
+ q(3059),
q(0),
],
q(jbi) => [
- q(3061),
+ q(3060),
q(0),
],
q(jbj) => [
- q(3062),
+ q(3061),
q(0),
],
q(jbk) => [
- q(3063),
+ q(3062),
q(0),
],
q(jbn) => [
- q(3064),
+ q(3063),
q(0),
],
q(jbo) => [
- q(0204),
+ q(0205),
q(0),
],
q(jbr) => [
- q(3065),
+ q(3064),
q(0),
],
q(jbt) => [
- q(3066),
+ q(3065),
q(0),
],
q(jbu) => [
- q(3067),
+ q(3066),
q(0),
],
q(jbw) => [
- q(3068),
+ q(3067),
q(0),
],
q(jcs) => [
- q(3069),
+ q(3068),
q(0),
],
q(jct) => [
- q(3070),
+ q(3069),
q(0),
],
q(jda) => [
- q(3071),
+ q(3070),
q(0),
],
q(jdg) => [
- q(3072),
+ q(3071),
q(0),
],
q(jdt) => [
- q(3073),
+ q(3072),
q(0),
],
q(jeb) => [
- q(3074),
+ q(3073),
q(0),
],
q(jee) => [
+ q(3074),
+ q(0),
+ ],
+ q(jeh) => [
q(3075),
q(0),
],
- q(jeg) => [
+ q(jei) => [
q(3076),
q(0),
],
- q(jeh) => [
+ q(jek) => [
q(3077),
q(0),
],
- q(jei) => [
+ q(jel) => [
q(3078),
q(0),
],
- q(jek) => [
+ q(jen) => [
q(3079),
q(0),
],
- q(jel) => [
+ q(jer) => [
q(3080),
q(0),
],
- q(jen) => [
+ q(jet) => [
q(3081),
q(0),
],
- q(jer) => [
+ q(jeu) => [
q(3082),
q(0),
],
- q(jet) => [
+ q(jgb) => [
q(3083),
q(0),
],
- q(jeu) => [
+ q(jge) => [
q(3084),
q(0),
],
- q(jgb) => [
+ q(jgk) => [
q(3085),
q(0),
],
- q(jge) => [
+ q(jgo) => [
q(3086),
q(0),
],
- q(jgk) => [
+ q(jhi) => [
q(3087),
q(0),
],
- q(jgo) => [
+ q(jhs) => [
q(3088),
q(0),
],
- q(jhi) => [
+ q(jia) => [
q(3089),
q(0),
],
- q(jhs) => [
+ q(jib) => [
q(3090),
q(0),
],
- q(jia) => [
+ q(jic) => [
q(3091),
q(0),
],
- q(jib) => [
+ q(jid) => [
q(3092),
q(0),
],
- q(jic) => [
+ q(jie) => [
q(3093),
q(0),
],
- q(jid) => [
+ q(jig) => [
q(3094),
q(0),
],
- q(jie) => [
+ q(jih) => [
q(3095),
q(0),
],
- q(jig) => [
+ q(jii) => [
q(3096),
q(0),
],
- q(jih) => [
+ q(jil) => [
q(3097),
q(0),
],
- q(jii) => [
+ q(jim) => [
q(3098),
q(0),
],
- q(jil) => [
+ q(jio) => [
q(3099),
q(0),
],
- q(jim) => [
+ q(jiq) => [
q(3100),
q(0),
],
- q(jio) => [
+ q(jit) => [
q(3101),
q(0),
],
- q(jiq) => [
+ q(jiu) => [
q(3102),
q(0),
],
- q(jit) => [
+ q(jiv) => [
q(3103),
q(0),
],
- q(jiu) => [
+ q(jiy) => [
q(3104),
q(0),
],
- q(jiv) => [
+ q(jje) => [
q(3105),
q(0),
],
- q(jiy) => [
+ q(jjr) => [
q(3106),
q(0),
],
- q(jje) => [
+ q(jka) => [
q(3107),
q(0),
],
- q(jjr) => [
- q(3108),
- q(0),
- ],
q(jkm) => [
- q(3109),
+ q(3108),
q(0),
],
q(jko) => [
- q(3110),
+ q(3109),
q(0),
],
q(jkp) => [
- q(3111),
+ q(3110),
q(0),
],
q(jkr) => [
- q(3112),
+ q(3111),
q(0),
],
q(jku) => [
- q(3113),
+ q(3112),
q(0),
],
q(jle) => [
- q(3114),
+ q(3113),
q(0),
],
q(jls) => [
- q(3115),
+ q(3114),
q(0),
],
q(jma) => [
- q(3116),
+ q(3115),
q(0),
],
q(jmb) => [
- q(3117),
+ q(3116),
q(0),
],
q(jmc) => [
- q(3118),
+ q(3117),
q(0),
],
q(jmd) => [
- q(3119),
+ q(3118),
q(0),
],
q(jmi) => [
- q(3120),
+ q(3119),
q(0),
],
q(jml) => [
- q(3121),
+ q(3120),
q(0),
],
q(jmn) => [
- q(3122),
+ q(3121),
q(0),
],
q(jmr) => [
- q(3123),
+ q(3122),
q(0),
],
q(jms) => [
- q(3124),
+ q(3123),
q(0),
],
q(jmw) => [
- q(3125),
+ q(3124),
q(0),
],
q(jmx) => [
- q(3126),
+ q(3125),
q(0),
],
q(jna) => [
- q(3127),
+ q(3126),
q(0),
],
q(jnd) => [
- q(3128),
+ q(3127),
q(0),
],
q(jng) => [
- q(3129),
+ q(3128),
q(0),
],
q(jni) => [
- q(3130),
+ q(3129),
q(0),
],
q(jnj) => [
- q(3131),
+ q(3130),
q(0),
],
q(jnl) => [
- q(3132),
+ q(3131),
q(0),
],
q(jns) => [
- q(3133),
+ q(3132),
q(0),
],
q(job) => [
- q(3134),
+ q(3133),
q(0),
],
q(jod) => [
- q(3135),
+ q(3134),
q(0),
],
q(jog) => [
- q(3136),
+ q(3135),
q(0),
],
q(jor) => [
- q(3137),
+ q(3136),
q(0),
],
q(jos) => [
- q(3138),
+ q(3137),
q(0),
],
q(jow) => [
- q(3139),
+ q(3138),
q(0),
],
q(jpa) => [
- q(3140),
+ q(3139),
q(0),
],
q(jpn) => [
- q(0205),
+ q(0206),
q(0),
],
q(jpr) => [
- q(0206),
+ q(0207),
q(0),
],
q(jpx) => [
- q(0514),
+ q(0515),
q(0),
],
q(jqr) => [
- q(3141),
+ q(3140),
q(0),
],
q(jra) => [
- q(3142),
+ q(3141),
q(0),
],
q(jrb) => [
- q(0207),
+ q(0208),
q(0),
],
q(jrr) => [
- q(3143),
+ q(3142),
q(0),
],
q(jrt) => [
- q(3144),
+ q(3143),
q(0),
],
q(jru) => [
- q(3145),
+ q(3144),
q(0),
],
q(jsl) => [
- q(3146),
+ q(3145),
q(0),
],
q(jua) => [
- q(3147),
+ q(3146),
q(0),
],
q(jub) => [
- q(3148),
+ q(3147),
q(0),
],
q(juc) => [
- q(3149),
+ q(3148),
q(0),
],
q(jud) => [
- q(3150),
+ q(3149),
q(0),
],
q(juh) => [
- q(3151),
+ q(3150),
q(0),
],
q(jui) => [
- q(3152),
+ q(3151),
q(0),
],
q(juk) => [
- q(3153),
+ q(3152),
q(0),
],
q(jul) => [
- q(3154),
+ q(3153),
q(0),
],
q(jum) => [
- q(3155),
+ q(3154),
q(0),
],
q(jun) => [
- q(3156),
+ q(3155),
q(0),
],
q(juo) => [
- q(3157),
+ q(3156),
q(0),
],
q(jup) => [
- q(3158),
+ q(3157),
q(0),
],
q(jur) => [
- q(3159),
+ q(3158),
q(0),
],
q(jus) => [
- q(3160),
+ q(3159),
q(0),
],
q(jut) => [
- q(3161),
+ q(3160),
q(0),
],
q(juu) => [
- q(3162),
+ q(3161),
q(0),
],
q(juw) => [
- q(3163),
+ q(3162),
q(0),
],
q(juy) => [
- q(3164),
+ q(3163),
q(0),
],
q(jvd) => [
- q(3165),
+ q(3164),
q(0),
],
q(jvn) => [
- q(3166),
+ q(3165),
q(0),
],
q(jwi) => [
- q(3167),
+ q(3166),
q(0),
],
q(jya) => [
- q(3168),
+ q(3167),
q(0),
],
q(jye) => [
- q(3169),
+ q(3168),
q(0),
],
q(jyy) => [
- q(3170),
+ q(3169),
q(0),
],
q(kaa) => [
- q(0208),
+ q(0209),
q(0),
],
q(kab) => [
- q(0209),
+ q(0210),
q(0),
],
q(kac) => [
- q(0210),
+ q(0211),
q(0),
],
q(kad) => [
- q(3171),
+ q(3170),
q(0),
],
q(kae) => [
- q(3172),
+ q(3171),
q(0),
],
q(kaf) => [
- q(3173),
+ q(3172),
q(0),
],
q(kag) => [
- q(3174),
+ q(3173),
q(0),
],
q(kah) => [
- q(3175),
+ q(3174),
q(0),
],
q(kai) => [
- q(3176),
+ q(3175),
q(0),
],
q(kaj) => [
- q(3177),
+ q(3176),
q(0),
],
q(kak) => [
- q(3178),
+ q(3177),
q(0),
],
q(kal) => [
- q(0211),
+ q(0212),
q(0),
],
q(kam) => [
- q(0212),
+ q(0213),
q(1),
],
q(kan) => [
- q(0213),
+ q(0214),
q(0),
],
q(kao) => [
- q(3179),
+ q(3178),
q(0),
],
q(kap) => [
- q(3180),
+ q(3179),
q(0),
],
q(kaq) => [
- q(3181),
+ q(3180),
q(0),
],
q(kar) => [
- q(0214),
+ q(0215),
q(0),
],
q(kas) => [
- q(0215),
+ q(0216),
q(0),
],
q(kau) => [
- q(0216),
+ q(0217),
q(0),
],
q(kav) => [
- q(3182),
+ q(3181),
q(0),
],
q(kaw) => [
- q(0217),
+ q(0218),
q(0),
],
q(kax) => [
- q(3183),
+ q(3182),
q(0),
],
q(kay) => [
- q(3184),
+ q(3183),
q(0),
],
q(kaz) => [
- q(0218),
+ q(0219),
q(0),
],
q(kba) => [
- q(3185),
+ q(3184),
q(0),
],
q(kbb) => [
- q(3186),
+ q(3185),
q(0),
],
q(kbc) => [
- q(3187),
+ q(3186),
q(0),
],
q(kbd) => [
- q(0219),
+ q(0220),
q(0),
],
q(kbe) => [
- q(3188),
+ q(3187),
q(0),
],
q(kbg) => [
- q(3189),
+ q(3188),
q(0),
],
q(kbh) => [
- q(3190),
+ q(3189),
q(0),
],
q(kbi) => [
- q(3191),
+ q(3190),
q(0),
],
q(kbj) => [
- q(3192),
+ q(3191),
q(0),
],
q(kbk) => [
- q(3193),
+ q(3192),
q(0),
],
q(kbl) => [
- q(3194),
+ q(3193),
q(0),
],
q(kbm) => [
- q(3195),
+ q(3194),
q(0),
],
q(kbn) => [
- q(3196),
+ q(3195),
q(0),
],
q(kbo) => [
- q(3197),
+ q(3196),
q(0),
],
q(kbp) => [
- q(3198),
+ q(3197),
q(0),
],
q(kbq) => [
- q(3199),
+ q(3198),
q(0),
],
q(kbr) => [
- q(3200),
+ q(3199),
q(0),
],
q(kbs) => [
- q(3201),
+ q(3200),
q(0),
],
q(kbt) => [
- q(3202),
+ q(3201),
q(0),
],
q(kbu) => [
- q(3203),
+ q(3202),
q(0),
],
q(kbv) => [
- q(3204),
+ q(3203),
q(0),
],
q(kbw) => [
- q(3205),
+ q(3204),
q(0),
],
q(kbx) => [
- q(3206),
+ q(3205),
q(0),
],
q(kby) => [
- q(3207),
+ q(3206),
q(0),
],
q(kbz) => [
- q(3208),
+ q(3207),
q(0),
],
q(kca) => [
- q(3209),
+ q(3208),
q(0),
],
q(kcb) => [
- q(3210),
+ q(3209),
q(0),
],
q(kcc) => [
- q(3211),
+ q(3210),
q(0),
],
q(kcd) => [
- q(3212),
+ q(3211),
q(0),
],
q(kce) => [
- q(3213),
+ q(3212),
q(0),
],
q(kcf) => [
- q(3214),
+ q(3213),
q(0),
],
q(kcg) => [
- q(3215),
+ q(3214),
q(0),
],
q(kch) => [
- q(3216),
+ q(3215),
q(0),
],
q(kci) => [
- q(3217),
+ q(3216),
q(0),
],
q(kcj) => [
- q(3218),
+ q(3217),
q(0),
],
q(kck) => [
- q(3219),
+ q(3218),
q(0),
],
q(kcl) => [
- q(3220),
+ q(3219),
q(0),
],
q(kcm) => [
- q(3221),
+ q(3220),
q(0),
],
q(kcn) => [
- q(3222),
+ q(3221),
q(0),
],
q(kco) => [
- q(3223),
+ q(3222),
q(0),
],
q(kcp) => [
- q(3224),
+ q(3223),
q(0),
],
q(kcq) => [
- q(3225),
+ q(3224),
q(0),
],
q(kcr) => [
- q(3226),
+ q(3225),
q(0),
],
q(kcs) => [
- q(3227),
+ q(3226),
q(0),
],
q(kct) => [
- q(3228),
+ q(3227),
q(0),
],
q(kcu) => [
- q(3229),
+ q(3228),
q(0),
],
q(kcv) => [
- q(3230),
+ q(3229),
q(0),
],
q(kcw) => [
- q(3231),
+ q(3230),
q(0),
],
q(kcx) => [
- q(3232),
+ q(3231),
q(0),
],
q(kcy) => [
- q(3233),
+ q(3232),
q(0),
],
q(kcz) => [
- q(3234),
+ q(3233),
q(0),
],
q(kda) => [
- q(3235),
+ q(3234),
q(0),
],
q(kdc) => [
- q(3236),
+ q(3235),
q(0),
],
q(kdd) => [
- q(3237),
+ q(3236),
q(0),
],
q(kde) => [
- q(3238),
+ q(3237),
q(0),
],
q(kdf) => [
- q(3239),
+ q(3238),
q(0),
],
q(kdg) => [
- q(3240),
+ q(3239),
q(0),
],
q(kdh) => [
- q(3241),
+ q(3240),
q(0),
],
q(kdi) => [
- q(3242),
+ q(3241),
q(0),
],
q(kdj) => [
- q(3243),
+ q(3242),
q(0),
],
q(kdk) => [
- q(3244),
+ q(3243),
q(0),
],
q(kdl) => [
- q(3245),
+ q(3244),
q(0),
],
q(kdm) => [
- q(3246),
+ q(3245),
q(0),
],
q(kdn) => [
- q(3247),
+ q(3246),
q(0),
],
q(kdo) => [
- q(0515),
+ q(0516),
q(0),
],
q(kdp) => [
- q(3248),
+ q(3247),
q(0),
],
q(kdq) => [
- q(3249),
+ q(3248),
q(0),
],
q(kdr) => [
- q(3250),
+ q(3249),
q(0),
],
q(kdt) => [
- q(3251),
+ q(3250),
q(0),
],
q(kdu) => [
- q(3252),
+ q(3251),
q(0),
],
q(kdw) => [
- q(3253),
+ q(3252),
q(0),
],
q(kdx) => [
- q(3254),
+ q(3253),
q(0),
],
q(kdy) => [
- q(3255),
+ q(3254),
q(0),
],
q(kdz) => [
- q(3256),
+ q(3255),
q(0),
],
q(kea) => [
- q(3257),
+ q(3256),
q(0),
],
q(keb) => [
- q(3258),
+ q(3257),
q(0),
],
q(kec) => [
- q(3259),
+ q(3258),
q(0),
],
q(ked) => [
- q(3260),
+ q(3259),
q(0),
],
q(kee) => [
- q(3261),
+ q(3260),
q(0),
],
q(kef) => [
- q(3262),
+ q(3261),
q(0),
],
q(keg) => [
- q(3263),
+ q(3262),
q(0),
],
q(keh) => [
- q(3264),
+ q(3263),
q(0),
],
q(kei) => [
- q(3265),
+ q(3264),
q(0),
],
q(kej) => [
- q(3266),
+ q(3265),
q(0),
],
q(kek) => [
- q(3267),
+ q(3266),
q(0),
],
q(kel) => [
- q(3268),
+ q(3267),
q(0),
],
q(kem) => [
- q(3269),
+ q(3268),
q(0),
],
q(ken) => [
- q(3270),
+ q(3269),
q(0),
],
q(keo) => [
- q(3271),
+ q(3270),
q(0),
],
q(kep) => [
- q(3272),
+ q(3271),
q(0),
],
q(keq) => [
- q(3273),
+ q(3272),
q(0),
],
q(ker) => [
- q(3274),
+ q(3273),
q(0),
],
q(kes) => [
- q(3275),
+ q(3274),
q(0),
],
q(ket) => [
- q(3276),
+ q(3275),
q(0),
],
q(keu) => [
- q(3277),
+ q(3276),
q(0),
],
q(kev) => [
- q(3278),
+ q(3277),
q(0),
],
q(kew) => [
- q(3279),
+ q(3278),
q(0),
],
q(kex) => [
- q(3280),
+ q(3279),
q(0),
],
q(key) => [
- q(3281),
+ q(3280),
q(0),
],
q(kez) => [
- q(3282),
+ q(3281),
q(0),
],
q(kfa) => [
- q(3283),
+ q(3282),
q(0),
],
q(kfb) => [
- q(3284),
+ q(3283),
q(0),
],
q(kfc) => [
- q(3285),
+ q(3284),
q(0),
],
q(kfd) => [
- q(3286),
+ q(3285),
q(0),
],
q(kfe) => [
- q(3287),
+ q(3286),
q(0),
],
q(kff) => [
- q(3288),
+ q(3287),
q(0),
],
q(kfg) => [
- q(3289),
+ q(3288),
q(0),
],
q(kfh) => [
- q(3290),
+ q(3289),
q(0),
],
q(kfi) => [
- q(3291),
+ q(3290),
q(0),
],
q(kfj) => [
- q(3292),
+ q(3291),
q(0),
],
q(kfk) => [
- q(3293),
+ q(3292),
q(0),
],
q(kfl) => [
- q(3294),
+ q(3293),
q(0),
],
q(kfm) => [
- q(3295),
+ q(3294),
q(0),
],
q(kfn) => [
- q(3296),
+ q(3295),
q(0),
],
q(kfo) => [
- q(3297),
+ q(3296),
q(0),
],
q(kfp) => [
- q(3298),
+ q(3297),
q(0),
],
q(kfq) => [
- q(3299),
+ q(3298),
q(0),
],
q(kfr) => [
- q(3300),
+ q(3299),
q(0),
],
q(kfs) => [
- q(3301),
+ q(3300),
q(0),
],
q(kft) => [
- q(3302),
+ q(3301),
q(0),
],
q(kfu) => [
- q(3303),
+ q(3302),
q(0),
],
q(kfv) => [
- q(3304),
+ q(3303),
q(0),
],
q(kfw) => [
- q(3305),
+ q(3304),
q(0),
],
q(kfx) => [
- q(3306),
+ q(3305),
q(0),
],
q(kfy) => [
- q(3307),
+ q(3306),
q(0),
],
q(kfz) => [
- q(3308),
+ q(3307),
q(0),
],
q(kga) => [
- q(3309),
+ q(3308),
q(0),
],
q(kgb) => [
- q(3310),
- q(0),
- ],
- q(kgc) => [
- q(3311),
- q(0),
- ],
- q(kgd) => [
- q(3312),
+ q(3309),
q(0),
],
q(kge) => [
- q(3313),
+ q(3310),
q(0),
],
q(kgf) => [
- q(3314),
+ q(3311),
q(0),
],
q(kgg) => [
- q(3315),
+ q(3312),
q(0),
],
q(kgi) => [
- q(3316),
+ q(3313),
q(0),
],
q(kgj) => [
- q(3317),
+ q(3314),
q(0),
],
q(kgk) => [
- q(3318),
+ q(3315),
q(0),
],
q(kgl) => [
- q(3319),
+ q(3316),
q(0),
],
q(kgm) => [
- q(3320),
+ q(3317),
q(0),
],
q(kgn) => [
- q(3321),
+ q(3318),
q(0),
],
q(kgo) => [
- q(3322),
+ q(3319),
q(0),
],
q(kgp) => [
- q(3323),
+ q(3320),
q(0),
],
q(kgq) => [
- q(3324),
+ q(3321),
q(0),
],
q(kgr) => [
- q(3325),
+ q(3322),
q(0),
],
q(kgs) => [
- q(3326),
+ q(3323),
q(0),
],
q(kgt) => [
- q(3327),
+ q(3324),
q(0),
],
q(kgu) => [
- q(3328),
+ q(3325),
q(0),
],
q(kgv) => [
- q(3329),
+ q(3326),
q(0),
],
q(kgw) => [
- q(3330),
+ q(3327),
q(0),
],
q(kgx) => [
- q(3331),
+ q(3328),
q(0),
],
q(kgy) => [
- q(3332),
+ q(3329),
q(0),
],
q(kha) => [
- q(0220),
+ q(0221),
q(0),
],
q(khb) => [
- q(3333),
+ q(3330),
q(0),
],
q(khc) => [
- q(3334),
+ q(3331),
q(0),
],
q(khd) => [
- q(3335),
+ q(3332),
q(0),
],
q(khe) => [
- q(3336),
+ q(3333),
q(0),
],
q(khf) => [
- q(3337),
+ q(3334),
q(0),
],
q(khg) => [
- q(3338),
+ q(3335),
q(0),
],
q(khh) => [
- q(3339),
+ q(3336),
q(0),
],
q(khi) => [
- q(0221),
+ q(0222),
q(0),
],
q(khj) => [
- q(3340),
+ q(3337),
q(0),
],
q(khk) => [
- q(3341),
+ q(3338),
q(0),
],
q(khl) => [
- q(3342),
+ q(3339),
q(0),
],
q(khm) => [
- q(0222),
+ q(0223),
q(0),
],
q(khn) => [
- q(3343),
+ q(3340),
q(0),
],
q(kho) => [
- q(0223),
+ q(0224),
q(0),
],
q(khp) => [
- q(3344),
+ q(3341),
q(0),
],
q(khq) => [
- q(3345),
+ q(3342),
q(0),
],
q(khr) => [
- q(3346),
+ q(3343),
q(0),
],
q(khs) => [
- q(3347),
+ q(3344),
q(0),
],
q(kht) => [
- q(3348),
+ q(3345),
q(0),
],
q(khu) => [
- q(3349),
+ q(3346),
q(0),
],
q(khv) => [
- q(3350),
+ q(3347),
q(0),
],
q(khw) => [
- q(3351),
+ q(3348),
q(0),
],
q(khx) => [
- q(3352),
+ q(3349),
q(0),
],
q(khy) => [
- q(3353),
+ q(3350),
q(0),
],
q(khz) => [
- q(3354),
+ q(3351),
q(0),
],
q(kia) => [
- q(3355),
+ q(3352),
q(0),
],
q(kib) => [
- q(3356),
+ q(3353),
q(0),
],
q(kic) => [
- q(3357),
+ q(3354),
q(0),
],
q(kid) => [
- q(3358),
+ q(3355),
q(0),
],
q(kie) => [
- q(3359),
+ q(3356),
q(0),
],
q(kif) => [
- q(3360),
+ q(3357),
q(0),
],
q(kig) => [
- q(3361),
+ q(3358),
q(0),
],
q(kih) => [
- q(3362),
+ q(3359),
q(0),
],
q(kii) => [
- q(3363),
+ q(3360),
q(0),
],
q(kij) => [
- q(3364),
+ q(3361),
q(0),
],
q(kik) => [
- q(0224),
+ q(0225),
q(0),
],
q(kil) => [
- q(3365),
+ q(3362),
q(0),
],
q(kim) => [
- q(3366),
+ q(3363),
q(0),
],
q(kin) => [
- q(0225),
+ q(0226),
q(0),
],
q(kio) => [
- q(3367),
+ q(3364),
q(0),
],
q(kip) => [
- q(3368),
+ q(3365),
q(0),
],
q(kiq) => [
- q(3369),
+ q(3366),
q(0),
],
q(kir) => [
- q(0226),
+ q(0227),
q(0),
],
q(kis) => [
- q(3370),
+ q(3367),
q(0),
],
q(kit) => [
- q(3371),
+ q(3368),
q(0),
],
q(kiu) => [
- q(3372),
+ q(3369),
q(0),
],
q(kiv) => [
- q(3373),
+ q(3370),
q(0),
],
q(kiw) => [
- q(3374),
+ q(3371),
q(0),
],
q(kix) => [
- q(3375),
+ q(3372),
q(0),
],
q(kiy) => [
- q(3376),
+ q(3373),
q(0),
],
q(kiz) => [
- q(3377),
+ q(3374),
q(0),
],
q(kja) => [
- q(3378),
+ q(3375),
q(0),
],
q(kjb) => [
- q(3379),
+ q(3376),
q(0),
],
q(kjc) => [
- q(3380),
+ q(3377),
q(0),
],
q(kjd) => [
- q(3381),
+ q(3378),
q(0),
],
q(kje) => [
- q(3382),
+ q(3379),
q(0),
],
q(kjf) => [
- q(3383),
+ q(3380),
q(0),
],
q(kjg) => [
- q(3384),
+ q(3381),
q(0),
],
q(kjh) => [
- q(3385),
+ q(3382),
q(0),
],
q(kji) => [
- q(3386),
+ q(3383),
q(0),
],
q(kjj) => [
- q(3387),
+ q(3384),
q(0),
],
q(kjk) => [
- q(3388),
+ q(3385),
q(0),
],
q(kjl) => [
- q(3389),
+ q(3386),
q(0),
],
q(kjm) => [
- q(3390),
+ q(3387),
q(0),
],
q(kjn) => [
- q(3391),
+ q(3388),
q(0),
],
q(kjo) => [
- q(3392),
+ q(3389),
q(0),
],
q(kjp) => [
- q(3393),
+ q(3390),
q(0),
],
q(kjq) => [
- q(3394),
+ q(3391),
q(0),
],
q(kjr) => [
- q(3395),
+ q(3392),
q(0),
],
q(kjs) => [
- q(3396),
+ q(3393),
q(0),
],
q(kjt) => [
- q(3397),
+ q(3394),
q(0),
],
q(kju) => [
- q(3398),
+ q(3395),
q(0),
],
q(kjv) => [
- q(3399),
+ q(3396),
q(0),
],
q(kjx) => [
- q(3400),
+ q(3397),
q(0),
],
q(kjy) => [
- q(3401),
+ q(3398),
q(0),
],
q(kjz) => [
- q(3402),
+ q(3399),
q(0),
],
q(kka) => [
- q(3403),
+ q(3400),
q(0),
],
q(kkb) => [
- q(3404),
+ q(3401),
q(0),
],
q(kkc) => [
- q(3405),
+ q(3402),
q(0),
],
q(kkd) => [
- q(3406),
+ q(3403),
q(0),
],
q(kke) => [
- q(3407),
+ q(3404),
q(0),
],
q(kkf) => [
- q(3408),
+ q(3405),
q(0),
],
q(kkg) => [
- q(3409),
+ q(3406),
q(0),
],
q(kkh) => [
- q(3410),
+ q(3407),
q(0),
],
q(kki) => [
- q(3411),
+ q(3408),
q(0),
],
q(kkj) => [
- q(3412),
+ q(3409),
q(0),
],
q(kkk) => [
- q(3413),
+ q(3410),
q(0),
],
q(kkl) => [
- q(3414),
+ q(3411),
q(0),
],
q(kkm) => [
- q(3415),
+ q(3412),
q(0),
],
q(kkn) => [
- q(3416),
+ q(3413),
q(0),
],
q(kko) => [
- q(3417),
+ q(3414),
q(0),
],
q(kkp) => [
- q(3418),
+ q(3415),
q(0),
],
q(kkq) => [
- q(3419),
+ q(3416),
q(0),
],
q(kkr) => [
- q(3420),
+ q(3417),
q(0),
],
q(kks) => [
- q(3421),
+ q(3418),
q(0),
],
q(kkt) => [
- q(3422),
+ q(3419),
q(0),
],
q(kku) => [
- q(3423),
+ q(3420),
q(0),
],
q(kkv) => [
- q(3424),
+ q(3421),
q(0),
],
q(kkw) => [
- q(3425),
+ q(3422),
q(0),
],
q(kkx) => [
- q(3426),
+ q(3423),
q(0),
],
q(kky) => [
- q(3427),
+ q(3424),
q(0),
],
q(kkz) => [
- q(3428),
+ q(3425),
q(0),
],
q(kla) => [
- q(3429),
+ q(3426),
q(0),
],
q(klb) => [
- q(3430),
+ q(3427),
q(0),
],
q(klc) => [
- q(3431),
+ q(3428),
q(0),
],
q(kld) => [
- q(3432),
+ q(3429),
q(0),
],
q(kle) => [
- q(3433),
+ q(3430),
q(0),
],
q(klf) => [
- q(3434),
+ q(3431),
q(0),
],
q(klg) => [
- q(3435),
+ q(3432),
q(0),
],
q(klh) => [
- q(3436),
+ q(3433),
q(0),
],
q(kli) => [
- q(3437),
+ q(3434),
q(0),
],
q(klj) => [
- q(3438),
+ q(3435),
q(0),
],
q(klk) => [
- q(3439),
+ q(3436),
q(0),
],
q(kll) => [
- q(3440),
+ q(3437),
q(0),
],
q(klm) => [
- q(3441),
+ q(3438),
q(0),
],
q(kln) => [
- q(3442),
+ q(3439),
q(0),
],
q(klo) => [
- q(3443),
+ q(3440),
q(0),
],
q(klp) => [
- q(3444),
+ q(3441),
q(0),
],
q(klq) => [
- q(3445),
+ q(3442),
q(0),
],
q(klr) => [
- q(3446),
+ q(3443),
q(0),
],
q(kls) => [
- q(3447),
+ q(3444),
q(0),
],
q(klt) => [
- q(3448),
+ q(3445),
q(0),
],
q(klu) => [
- q(3449),
+ q(3446),
q(0),
],
q(klv) => [
- q(3450),
+ q(3447),
q(0),
],
q(klw) => [
- q(3451),
+ q(3448),
q(0),
],
q(klx) => [
- q(3452),
+ q(3449),
q(0),
],
q(kly) => [
- q(3453),
+ q(3450),
q(0),
],
q(klz) => [
- q(3454),
+ q(3451),
q(0),
],
q(kma) => [
- q(3455),
+ q(3452),
q(0),
],
q(kmb) => [
- q(0227),
+ q(0228),
q(0),
],
q(kmc) => [
- q(3456),
+ q(3453),
q(0),
],
q(kmd) => [
- q(3457),
+ q(3454),
q(0),
],
q(kme) => [
- q(3458),
+ q(3455),
q(0),
],
q(kmf) => [
- q(3459),
+ q(3456),
q(0),
],
q(kmg) => [
- q(3460),
+ q(3457),
q(0),
],
q(kmh) => [
- q(3461),
+ q(3458),
q(0),
],
q(kmi) => [
- q(3462),
+ q(3459),
q(0),
],
q(kmj) => [
- q(3463),
+ q(3460),
q(0),
],
q(kmk) => [
- q(3464),
+ q(3461),
q(0),
],
q(kml) => [
- q(3465),
+ q(3462),
q(0),
],
q(kmm) => [
- q(3466),
+ q(3463),
q(0),
],
q(kmn) => [
- q(3467),
+ q(3464),
q(0),
],
q(kmo) => [
- q(3468),
+ q(3465),
q(0),
],
q(kmp) => [
- q(3469),
+ q(3466),
q(0),
],
q(kmq) => [
- q(3470),
+ q(3467),
q(0),
],
q(kmr) => [
- q(3471),
+ q(3468),
q(0),
],
q(kms) => [
- q(3472),
+ q(3469),
q(0),
],
q(kmt) => [
- q(3473),
+ q(3470),
q(0),
],
q(kmu) => [
- q(3474),
+ q(3471),
q(0),
],
q(kmv) => [
- q(3475),
+ q(3472),
q(0),
],
q(kmw) => [
- q(3476),
+ q(3473),
q(0),
],
q(kmx) => [
- q(3477),
+ q(3474),
q(0),
],
q(kmy) => [
- q(3478),
+ q(3475),
q(0),
],
q(kmz) => [
- q(3479),
+ q(3476),
q(0),
],
q(kna) => [
- q(3480),
+ q(3477),
q(0),
],
q(knb) => [
- q(3481),
+ q(3478),
q(0),
],
q(knc) => [
- q(3482),
+ q(3479),
q(0),
],
q(knd) => [
- q(3483),
+ q(3480),
q(0),
],
q(kne) => [
- q(3484),
+ q(3481),
q(0),
],
q(knf) => [
- q(3485),
+ q(3482),
q(0),
],
q(kng) => [
- q(3486),
+ q(3483),
q(0),
],
q(kni) => [
- q(3487),
+ q(3484),
q(0),
],
q(knj) => [
- q(3488),
+ q(3485),
q(0),
],
q(knk) => [
- q(3489),
+ q(3486),
q(0),
],
q(knl) => [
- q(3490),
+ q(3487),
q(0),
],
q(knm) => [
- q(3491),
+ q(3488),
q(0),
],
q(knn) => [
- q(3492),
+ q(3489),
q(0),
],
q(kno) => [
- q(3493),
+ q(3490),
q(0),
],
q(knp) => [
- q(3494),
+ q(3491),
q(0),
],
q(knq) => [
- q(3495),
+ q(3492),
q(0),
],
q(knr) => [
- q(3496),
+ q(3493),
q(0),
],
q(kns) => [
- q(3497),
+ q(3494),
q(0),
],
q(knt) => [
- q(3498),
+ q(3495),
q(0),
],
q(knu) => [
- q(3499),
+ q(3496),
q(0),
],
q(knv) => [
- q(3500),
+ q(3497),
q(0),
],
q(knw) => [
- q(3501),
+ q(3498),
q(0),
],
q(knx) => [
- q(3502),
+ q(3499),
q(0),
],
q(kny) => [
- q(3503),
+ q(3500),
q(0),
],
q(knz) => [
- q(3504),
+ q(3501),
q(0),
],
q(koa) => [
- q(3505),
+ q(3502),
q(0),
],
q(koc) => [
- q(3506),
+ q(3503),
q(0),
],
q(kod) => [
- q(3507),
+ q(3504),
q(0),
],
q(koe) => [
- q(3508),
+ q(3505),
q(0),
],
q(kof) => [
- q(3509),
+ q(3506),
q(0),
],
q(kog) => [
- q(3510),
+ q(3507),
q(0),
],
q(koh) => [
- q(3511),
+ q(3508),
q(0),
],
q(koi) => [
- q(3512),
+ q(3509),
q(0),
],
q(kok) => [
- q(0228),
+ q(0229),
q(1),
],
q(kol) => [
- q(3513),
+ q(3510),
q(0),
],
q(kom) => [
- q(0229),
+ q(0230),
q(0),
],
q(kon) => [
- q(0230),
+ q(0231),
q(0),
],
q(koo) => [
- q(3514),
+ q(3511),
q(0),
],
q(kop) => [
- q(3515),
+ q(3512),
q(0),
],
q(koq) => [
- q(3516),
+ q(3513),
q(0),
],
q(kor) => [
- q(0231),
+ q(0232),
q(0),
],
q(kos) => [
- q(0232),
+ q(0233),
q(0),
],
q(kot) => [
- q(3517),
+ q(3514),
q(0),
],
q(kou) => [
- q(3518),
+ q(3515),
q(0),
],
q(kov) => [
- q(3519),
+ q(3516),
q(0),
],
q(kow) => [
- q(3520),
- q(0),
- ],
- q(kox) => [
- q(3521),
+ q(3517),
q(0),
],
q(koy) => [
- q(3522),
+ q(3518),
q(0),
],
q(koz) => [
- q(3523),
+ q(3519),
q(0),
],
q(kpa) => [
- q(3524),
+ q(3520),
q(0),
],
q(kpb) => [
- q(3525),
+ q(3521),
q(0),
],
q(kpc) => [
- q(3526),
+ q(3522),
q(0),
],
q(kpd) => [
- q(3527),
+ q(3523),
q(0),
],
q(kpe) => [
- q(0233),
+ q(0234),
q(0),
],
q(kpf) => [
- q(3528),
+ q(3524),
q(0),
],
q(kpg) => [
- q(3529),
+ q(3525),
q(0),
],
q(kph) => [
- q(3530),
+ q(3526),
q(0),
],
q(kpi) => [
- q(3531),
+ q(3527),
q(0),
],
q(kpj) => [
- q(3532),
+ q(3528),
q(0),
],
q(kpk) => [
- q(3533),
+ q(3529),
q(0),
],
q(kpl) => [
- q(3534),
+ q(3530),
q(0),
],
q(kpm) => [
- q(3535),
+ q(3531),
q(0),
],
q(kpn) => [
- q(3536),
+ q(3532),
q(0),
],
q(kpo) => [
- q(3537),
+ q(3533),
q(0),
],
q(kpq) => [
- q(3538),
+ q(3534),
q(0),
],
q(kpr) => [
- q(3539),
+ q(3535),
q(0),
],
q(kps) => [
- q(3540),
+ q(3536),
q(0),
],
q(kpt) => [
- q(3541),
+ q(3537),
q(0),
],
q(kpu) => [
- q(3542),
+ q(3538),
q(0),
],
q(kpv) => [
- q(3543),
+ q(3539),
q(0),
],
q(kpw) => [
- q(3544),
+ q(3540),
q(0),
],
q(kpx) => [
- q(3545),
+ q(3541),
q(0),
],
q(kpy) => [
- q(3546),
+ q(3542),
q(0),
],
q(kpz) => [
- q(3547),
+ q(3543),
q(0),
],
q(kqa) => [
- q(3548),
+ q(3544),
q(0),
],
q(kqb) => [
- q(3549),
+ q(3545),
q(0),
],
q(kqc) => [
- q(3550),
+ q(3546),
q(0),
],
q(kqd) => [
- q(3551),
+ q(3547),
q(0),
],
q(kqe) => [
- q(3552),
+ q(3548),
q(0),
],
q(kqf) => [
- q(3553),
+ q(3549),
q(0),
],
q(kqg) => [
- q(3554),
+ q(3550),
q(0),
],
q(kqh) => [
- q(3555),
+ q(3551),
q(0),
],
q(kqi) => [
- q(3556),
+ q(3552),
q(0),
],
q(kqj) => [
- q(3557),
+ q(3553),
q(0),
],
q(kqk) => [
- q(3558),
+ q(3554),
q(0),
],
q(kql) => [
- q(3559),
+ q(3555),
q(0),
],
q(kqm) => [
- q(3560),
+ q(3556),
q(0),
],
q(kqn) => [
- q(3561),
+ q(3557),
q(0),
],
q(kqo) => [
- q(3562),
+ q(3558),
q(0),
],
q(kqp) => [
- q(3563),
+ q(3559),
q(0),
],
q(kqq) => [
- q(3564),
+ q(3560),
q(0),
],
q(kqr) => [
- q(3565),
+ q(3561),
q(0),
],
q(kqs) => [
- q(3566),
+ q(3562),
q(0),
],
q(kqt) => [
- q(3567),
+ q(3563),
q(0),
],
q(kqu) => [
- q(3568),
+ q(3564),
q(0),
],
q(kqv) => [
- q(3569),
+ q(3565),
q(0),
],
q(kqw) => [
- q(3570),
+ q(3566),
q(0),
],
q(kqx) => [
- q(3571),
+ q(3567),
q(0),
],
q(kqy) => [
- q(3572),
+ q(3568),
q(0),
],
q(kqz) => [
- q(3573),
+ q(3569),
q(0),
],
q(kra) => [
- q(3574),
+ q(3570),
q(0),
],
q(krb) => [
- q(3575),
+ q(3571),
q(0),
],
q(krc) => [
- q(0234),
+ q(0235),
q(0),
],
q(krd) => [
- q(3576),
+ q(3572),
q(0),
],
q(kre) => [
- q(3577),
+ q(3573),
q(0),
],
q(krf) => [
- q(3578),
+ q(3574),
q(0),
],
q(krh) => [
- q(3579),
+ q(3575),
q(0),
],
q(kri) => [
- q(3580),
+ q(3576),
q(0),
],
q(krj) => [
- q(3581),
+ q(3577),
q(0),
],
q(krk) => [
- q(3582),
+ q(3578),
q(0),
],
q(krl) => [
- q(0235),
- q(0),
- ],
- q(krm) => [
- q(3583),
+ q(0236),
q(0),
],
q(krn) => [
- q(3584),
+ q(3579),
q(0),
],
q(kro) => [
- q(0236),
+ q(0237),
q(0),
],
q(krp) => [
- q(3585),
+ q(3580),
q(0),
],
q(krr) => [
- q(3586),
+ q(3581),
q(0),
],
q(krs) => [
- q(3587),
+ q(3582),
q(0),
],
q(krt) => [
- q(3588),
+ q(3583),
q(0),
],
q(kru) => [
- q(0237),
+ q(0238),
q(0),
],
q(krv) => [
- q(3589),
+ q(3584),
q(0),
],
q(krw) => [
- q(3590),
+ q(3585),
q(0),
],
q(krx) => [
- q(3591),
+ q(3586),
q(0),
],
q(kry) => [
- q(3592),
+ q(3587),
q(0),
],
q(krz) => [
- q(3593),
+ q(3588),
q(0),
],
q(ksa) => [
- q(3594),
+ q(3589),
q(0),
],
q(ksb) => [
- q(3595),
+ q(3590),
q(0),
],
q(ksc) => [
- q(3596),
+ q(3591),
q(0),
],
q(ksd) => [
- q(3597),
+ q(3592),
q(0),
],
q(kse) => [
- q(3598),
+ q(3593),
q(0),
],
q(ksf) => [
- q(3599),
+ q(3594),
q(0),
],
q(ksg) => [
- q(3600),
+ q(3595),
q(0),
],
q(ksh) => [
- q(3601),
+ q(3596),
q(0),
],
q(ksi) => [
- q(3602),
+ q(3597),
q(0),
],
q(ksj) => [
- q(3603),
+ q(3598),
q(0),
],
q(ksk) => [
- q(3604),
+ q(3599),
q(0),
],
q(ksl) => [
- q(3605),
+ q(3600),
q(0),
],
q(ksm) => [
- q(3606),
+ q(3601),
q(0),
],
q(ksn) => [
- q(3607),
+ q(3602),
q(0),
],
q(kso) => [
- q(3608),
+ q(3603),
q(0),
],
q(ksp) => [
- q(3609),
+ q(3604),
q(0),
],
q(ksq) => [
- q(3610),
+ q(3605),
q(0),
],
q(ksr) => [
- q(3611),
+ q(3606),
q(0),
],
q(kss) => [
- q(3612),
+ q(3607),
q(0),
],
q(kst) => [
- q(3613),
+ q(3608),
q(0),
],
q(ksu) => [
- q(3614),
+ q(3609),
q(0),
],
q(ksv) => [
- q(3615),
+ q(3610),
q(0),
],
q(ksw) => [
- q(3616),
+ q(3611),
q(0),
],
q(ksx) => [
- q(3617),
+ q(3612),
q(0),
],
q(ksy) => [
- q(3618),
+ q(3613),
q(0),
],
q(ksz) => [
- q(3619),
+ q(3614),
q(0),
],
q(kta) => [
- q(3620),
+ q(3615),
q(0),
],
q(ktb) => [
- q(3621),
+ q(3616),
q(0),
],
q(ktc) => [
- q(3622),
+ q(3617),
q(0),
],
q(ktd) => [
- q(3623),
+ q(3618),
q(0),
],
q(kte) => [
- q(3624),
+ q(3619),
q(0),
],
q(ktf) => [
- q(3625),
+ q(3620),
q(0),
],
q(ktg) => [
- q(3626),
+ q(3621),
q(0),
],
q(kth) => [
- q(3627),
+ q(3622),
q(0),
],
q(kti) => [
- q(3628),
+ q(3623),
q(0),
],
q(ktj) => [
- q(3629),
+ q(3624),
q(0),
],
q(ktk) => [
- q(3630),
+ q(3625),
q(0),
],
q(ktl) => [
- q(3631),
+ q(3626),
q(0),
],
q(ktm) => [
- q(3632),
+ q(3627),
q(0),
],
q(ktn) => [
- q(3633),
+ q(3628),
q(0),
],
q(kto) => [
- q(3634),
+ q(3629),
q(0),
],
q(ktp) => [
- q(3635),
+ q(3630),
q(0),
],
q(ktq) => [
- q(3636),
- q(0),
- ],
- q(ktr) => [
- q(3637),
+ q(3631),
q(0),
],
q(kts) => [
- q(3638),
+ q(3632),
q(0),
],
q(ktt) => [
- q(3639),
+ q(3633),
q(0),
],
q(ktu) => [
- q(3640),
+ q(3634),
q(0),
],
q(ktv) => [
- q(3641),
+ q(3635),
q(0),
],
q(ktw) => [
- q(3642),
+ q(3636),
q(0),
],
q(ktx) => [
- q(3643),
+ q(3637),
q(0),
],
q(kty) => [
- q(3644),
+ q(3638),
q(0),
],
q(ktz) => [
- q(3645),
+ q(3639),
q(0),
],
q(kua) => [
- q(0238),
+ q(0239),
q(0),
],
q(kub) => [
- q(3646),
+ q(3640),
q(0),
],
q(kuc) => [
- q(3647),
+ q(3641),
q(0),
],
q(kud) => [
- q(3648),
+ q(3642),
q(0),
],
q(kue) => [
- q(3649),
+ q(3643),
q(0),
],
q(kuf) => [
- q(3650),
+ q(3644),
q(0),
],
q(kug) => [
- q(3651),
+ q(3645),
q(0),
],
q(kuh) => [
- q(3652),
+ q(3646),
q(0),
],
q(kui) => [
- q(3653),
+ q(3647),
q(0),
],
q(kuj) => [
- q(3654),
+ q(3648),
q(0),
],
q(kuk) => [
- q(3655),
+ q(3649),
q(0),
],
q(kul) => [
- q(3656),
+ q(3650),
q(0),
],
q(kum) => [
- q(0239),
+ q(0240),
q(0),
],
q(kun) => [
- q(3657),
+ q(3651),
q(0),
],
q(kuo) => [
- q(3658),
+ q(3652),
q(0),
],
q(kup) => [
- q(3659),
+ q(3653),
q(0),
],
q(kuq) => [
- q(3320),
+ q(3317),
q(0),
],
q(kur) => [
- q(0240),
+ q(0241),
q(0),
],
q(kus) => [
- q(3660),
+ q(3654),
q(0),
],
q(kut) => [
- q(0241),
+ q(0242),
q(0),
],
q(kuu) => [
- q(3661),
+ q(3655),
q(0),
],
q(kuv) => [
- q(3662),
+ q(3656),
q(0),
],
q(kuw) => [
- q(3663),
+ q(3657),
q(0),
],
q(kux) => [
- q(3664),
+ q(3658),
q(0),
],
q(kuy) => [
- q(3665),
+ q(3659),
q(0),
],
q(kuz) => [
- q(3666),
+ q(3660),
q(0),
],
q(kva) => [
- q(3667),
+ q(3661),
q(0),
],
q(kvb) => [
- q(3668),
+ q(3662),
q(0),
],
q(kvc) => [
- q(3669),
+ q(3663),
q(0),
],
q(kvd) => [
- q(3670),
+ q(3664),
q(0),
],
q(kve) => [
- q(3671),
+ q(3665),
q(0),
],
q(kvf) => [
- q(3672),
+ q(3666),
q(0),
],
q(kvg) => [
- q(3673),
+ q(3667),
q(0),
],
q(kvh) => [
- q(3674),
+ q(3668),
q(0),
],
q(kvi) => [
- q(3675),
+ q(3669),
q(0),
],
q(kvj) => [
- q(3676),
+ q(3670),
q(0),
],
q(kvk) => [
- q(3677),
+ q(3671),
q(0),
],
q(kvl) => [
- q(3678),
+ q(3672),
q(0),
],
q(kvm) => [
- q(3679),
+ q(3673),
q(0),
],
q(kvn) => [
- q(3680),
+ q(3674),
q(0),
],
q(kvo) => [
- q(3681),
+ q(3675),
q(0),
],
q(kvp) => [
- q(3682),
+ q(3676),
q(0),
],
q(kvq) => [
- q(3683),
+ q(3677),
q(0),
],
q(kvr) => [
- q(3684),
- q(0),
- ],
- q(kvs) => [
- q(3685),
+ q(3678),
q(0),
],
q(kvt) => [
- q(3686),
+ q(3679),
q(0),
],
q(kvu) => [
- q(3687),
+ q(3680),
q(0),
],
q(kvv) => [
- q(3688),
+ q(3681),
q(0),
],
q(kvw) => [
- q(3689),
+ q(3682),
q(0),
],
q(kvx) => [
- q(3690),
+ q(3683),
q(0),
],
q(kvy) => [
- q(3691),
+ q(3684),
q(0),
],
q(kvz) => [
- q(3692),
+ q(3685),
q(0),
],
q(kwa) => [
- q(3693),
+ q(3686),
q(0),
],
q(kwb) => [
- q(3694),
+ q(3687),
q(0),
],
q(kwc) => [
- q(3695),
+ q(3688),
q(0),
],
q(kwd) => [
- q(3696),
+ q(3689),
q(0),
],
q(kwe) => [
- q(3697),
+ q(3690),
q(0),
],
q(kwf) => [
- q(3698),
+ q(3691),
q(0),
],
q(kwg) => [
- q(3699),
+ q(3692),
q(0),
],
q(kwh) => [
- q(3700),
+ q(3693),
q(0),
],
q(kwi) => [
- q(3701),
+ q(3694),
q(0),
],
q(kwj) => [
- q(3702),
+ q(3695),
q(0),
],
q(kwk) => [
- q(3703),
+ q(3696),
q(0),
],
q(kwl) => [
- q(3704),
+ q(3697),
q(0),
],
q(kwm) => [
- q(3705),
+ q(3698),
q(0),
],
q(kwn) => [
- q(3706),
+ q(3699),
q(0),
],
q(kwo) => [
- q(3707),
+ q(3700),
q(0),
],
q(kwp) => [
- q(3708),
+ q(3701),
q(0),
],
q(kwr) => [
- q(3709),
+ q(3702),
q(0),
],
q(kws) => [
- q(3710),
+ q(3703),
q(0),
],
q(kwt) => [
- q(3711),
+ q(3704),
q(0),
],
q(kwu) => [
- q(3712),
+ q(3705),
q(0),
],
q(kwv) => [
- q(3713),
+ q(3706),
q(0),
],
q(kww) => [
- q(3714),
+ q(3707),
q(0),
],
q(kwx) => [
- q(3715),
+ q(3708),
q(0),
],
q(kwy) => [
- q(3716),
+ q(3709),
q(0),
],
q(kwz) => [
- q(3717),
+ q(3710),
q(0),
],
q(kxa) => [
- q(3718),
+ q(3711),
q(0),
],
q(kxb) => [
- q(3719),
+ q(3712),
q(0),
],
q(kxc) => [
- q(3720),
+ q(3713),
q(0),
],
q(kxd) => [
- q(3721),
+ q(3714),
q(0),
],
q(kxf) => [
- q(3722),
+ q(3715),
q(0),
],
q(kxh) => [
- q(3723),
+ q(3716),
q(0),
],
q(kxi) => [
- q(3724),
+ q(3717),
q(0),
],
q(kxj) => [
- q(3725),
+ q(3718),
q(0),
],
q(kxk) => [
- q(3726),
+ q(3719),
q(0),
],
q(kxl) => [
- q(3727),
+ q(3720),
q(0),
],
q(kxm) => [
- q(3728),
+ q(3721),
q(0),
],
q(kxn) => [
- q(3729),
+ q(3722),
q(0),
],
q(kxo) => [
- q(3730),
+ q(3723),
q(0),
],
q(kxp) => [
- q(3731),
+ q(3724),
q(0),
],
q(kxq) => [
- q(3732),
+ q(3725),
q(0),
],
q(kxr) => [
- q(3733),
+ q(3726),
q(0),
],
q(kxs) => [
- q(3734),
+ q(3727),
q(0),
],
q(kxt) => [
- q(3735),
+ q(3728),
q(0),
],
q(kxu) => [
- q(3736),
+ q(3729),
q(0),
],
q(kxv) => [
- q(3737),
+ q(3730),
q(0),
],
q(kxw) => [
- q(3738),
+ q(3731),
q(0),
],
q(kxx) => [
- q(3739),
+ q(3732),
q(0),
],
q(kxy) => [
- q(3740),
+ q(3733),
q(0),
],
q(kxz) => [
- q(3741),
+ q(3734),
q(0),
],
q(kya) => [
- q(3742),
+ q(3735),
q(0),
],
q(kyb) => [
- q(3743),
+ q(3736),
q(0),
],
q(kyc) => [
- q(3744),
+ q(3737),
q(0),
],
q(kyd) => [
- q(3745),
+ q(3738),
q(0),
],
q(kye) => [
- q(3746),
+ q(3739),
q(0),
],
q(kyf) => [
- q(3747),
+ q(3740),
q(0),
],
q(kyg) => [
- q(3748),
+ q(3741),
q(0),
],
q(kyh) => [
- q(3749),
+ q(3742),
q(0),
],
q(kyi) => [
- q(3750),
+ q(3743),
q(0),
],
q(kyj) => [
- q(3751),
+ q(3744),
q(0),
],
q(kyk) => [
- q(3752),
+ q(3745),
q(0),
],
q(kyl) => [
- q(3753),
+ q(3746),
q(0),
],
q(kym) => [
- q(3754),
+ q(3747),
q(0),
],
q(kyn) => [
- q(3755),
+ q(3748),
q(0),
],
q(kyo) => [
- q(3756),
+ q(3749),
q(0),
],
q(kyp) => [
- q(3757),
+ q(3750),
q(0),
],
q(kyq) => [
- q(3758),
+ q(3751),
q(0),
],
q(kyr) => [
- q(3759),
+ q(3752),
q(0),
],
q(kys) => [
- q(3760),
+ q(3753),
q(0),
],
q(kyt) => [
- q(3761),
+ q(3754),
q(0),
],
q(kyu) => [
- q(3762),
+ q(3755),
q(0),
],
q(kyv) => [
- q(3763),
+ q(3756),
q(0),
],
q(kyw) => [
- q(3764),
+ q(3757),
q(0),
],
q(kyx) => [
- q(3765),
+ q(3758),
q(0),
],
q(kyy) => [
- q(3766),
+ q(3759),
q(0),
],
q(kyz) => [
- q(3767),
+ q(3760),
q(0),
],
q(kza) => [
- q(3768),
+ q(3761),
q(0),
],
q(kzb) => [
- q(3769),
+ q(3762),
q(0),
],
q(kzc) => [
- q(3770),
+ q(3763),
q(0),
],
q(kzd) => [
- q(3771),
+ q(3764),
q(0),
],
q(kze) => [
- q(3772),
+ q(3765),
q(0),
],
q(kzf) => [
- q(3773),
+ q(3766),
q(0),
],
q(kzg) => [
- q(3774),
+ q(3767),
q(0),
],
q(kzi) => [
- q(3775),
- q(0),
- ],
- q(kzj) => [
- q(3776),
+ q(3768),
q(0),
],
q(kzk) => [
- q(3777),
+ q(3769),
q(0),
],
q(kzl) => [
- q(3778),
+ q(3770),
q(0),
],
q(kzm) => [
- q(3779),
+ q(3771),
q(0),
],
q(kzn) => [
- q(3780),
+ q(3772),
q(0),
],
q(kzo) => [
- q(3781),
+ q(3773),
q(0),
],
q(kzp) => [
- q(3782),
+ q(3774),
q(0),
],
q(kzq) => [
- q(3783),
+ q(3775),
q(0),
],
q(kzr) => [
- q(3784),
+ q(3776),
q(0),
],
q(kzs) => [
- q(3785),
- q(0),
- ],
- q(kzt) => [
- q(3786),
+ q(3777),
q(0),
],
q(kzu) => [
- q(3787),
+ q(3778),
q(0),
],
q(kzv) => [
- q(3788),
+ q(3779),
q(0),
],
q(kzw) => [
- q(3789),
+ q(3780),
q(0),
],
q(kzx) => [
- q(3790),
+ q(3781),
q(0),
],
q(kzy) => [
- q(3791),
+ q(3782),
q(0),
],
q(kzz) => [
- q(3792),
+ q(3783),
q(0),
],
q(laa) => [
- q(3793),
+ q(3784),
q(0),
],
q(lab) => [
- q(3794),
+ q(3785),
q(0),
],
q(lac) => [
- q(3795),
+ q(3786),
q(0),
],
q(lad) => [
- q(0242),
+ q(0243),
q(0),
],
q(lae) => [
- q(3796),
+ q(3787),
q(0),
],
q(laf) => [
- q(3797),
+ q(3788),
q(0),
],
q(lag) => [
- q(3798),
+ q(3789),
q(0),
],
q(lah) => [
- q(0243),
+ q(0244),
q(0),
],
q(lai) => [
- q(3799),
+ q(3790),
q(0),
],
q(laj) => [
- q(3800),
+ q(3791),
q(0),
],
q(lak) => [
- q(3801),
+ q(3792),
q(0),
],
q(lal) => [
- q(3802),
+ q(3793),
q(0),
],
q(lam) => [
- q(0244),
+ q(0245),
q(0),
],
q(lan) => [
- q(3803),
+ q(3794),
q(0),
],
q(lao) => [
- q(0245),
+ q(0246),
q(0),
],
q(lap) => [
- q(3804),
+ q(3795),
q(0),
],
q(laq) => [
- q(3805),
+ q(3796),
q(0),
],
q(lar) => [
- q(3806),
+ q(3797),
q(0),
],
q(las) => [
- q(3807),
+ q(3798),
q(0),
],
q(lat) => [
- q(0246),
+ q(0247),
q(0),
],
q(lau) => [
- q(3808),
+ q(3799),
q(0),
],
q(lav) => [
- q(0247),
+ q(0248),
q(0),
],
q(law) => [
- q(3809),
+ q(3800),
q(0),
],
q(lax) => [
- q(3810),
+ q(3801),
q(0),
],
q(lay) => [
- q(3811),
+ q(3802),
q(0),
],
q(laz) => [
- q(3812),
+ q(3803),
q(0),
],
q(lba) => [
- q(3813),
+ q(3804),
q(0),
],
q(lbb) => [
- q(3814),
+ q(3805),
q(0),
],
q(lbc) => [
- q(3815),
+ q(3806),
q(0),
],
q(lbe) => [
- q(3816),
+ q(3807),
q(0),
],
q(lbf) => [
- q(3817),
+ q(3808),
q(0),
],
q(lbg) => [
- q(3818),
+ q(3809),
q(0),
],
q(lbi) => [
- q(3819),
+ q(3810),
q(0),
],
q(lbj) => [
- q(3820),
+ q(3811),
q(0),
],
q(lbk) => [
- q(3821),
+ q(3812),
q(0),
],
q(lbl) => [
- q(3822),
+ q(3813),
q(0),
],
q(lbm) => [
- q(3823),
+ q(3814),
q(0),
],
q(lbn) => [
- q(3824),
+ q(3815),
q(0),
],
q(lbo) => [
- q(3825),
+ q(3816),
q(0),
],
q(lbq) => [
- q(3826),
+ q(3817),
q(0),
],
q(lbr) => [
- q(3827),
+ q(3818),
q(0),
],
q(lbs) => [
- q(3828),
+ q(3819),
q(0),
],
q(lbt) => [
- q(3829),
+ q(3820),
q(0),
],
q(lbu) => [
- q(3830),
+ q(3821),
q(0),
],
q(lbv) => [
- q(3831),
+ q(3822),
q(0),
],
q(lbw) => [
- q(3832),
+ q(3823),
q(0),
],
q(lbx) => [
- q(3833),
+ q(3824),
q(0),
],
q(lby) => [
- q(3834),
+ q(3825),
q(0),
],
q(lbz) => [
- q(3835),
+ q(3826),
q(0),
],
q(lcc) => [
- q(3836),
+ q(3827),
q(0),
],
q(lcd) => [
- q(3837),
+ q(3828),
q(0),
],
q(lce) => [
- q(3838),
+ q(3829),
q(0),
],
q(lcf) => [
- q(3839),
+ q(3830),
q(0),
],
q(lch) => [
- q(3840),
+ q(3831),
q(0),
],
q(lcl) => [
- q(3841),
+ q(3832),
q(0),
],
q(lcm) => [
- q(3842),
+ q(3833),
q(0),
],
q(lcp) => [
- q(3843),
+ q(3834),
q(0),
],
q(lcq) => [
- q(3844),
+ q(3835),
q(0),
],
q(lcs) => [
- q(3845),
+ q(3836),
q(0),
],
q(lda) => [
- q(3846),
+ q(3837),
q(0),
],
q(ldb) => [
- q(3847),
+ q(3838),
q(0),
],
q(ldd) => [
- q(3848),
+ q(3839),
q(0),
],
q(ldg) => [
- q(3849),
+ q(3840),
q(0),
],
q(ldh) => [
- q(3850),
+ q(3841),
q(0),
],
q(ldi) => [
- q(3851),
+ q(3842),
q(0),
],
q(ldj) => [
- q(3852),
+ q(3843),
q(0),
],
q(ldk) => [
- q(3853),
+ q(3844),
q(0),
],
q(ldl) => [
- q(3854),
+ q(3845),
q(0),
],
q(ldm) => [
- q(3855),
+ q(3846),
q(0),
],
q(ldn) => [
- q(3856),
+ q(3847),
q(0),
],
q(ldo) => [
- q(3857),
+ q(3848),
q(0),
],
q(ldp) => [
- q(3858),
+ q(3849),
q(0),
],
q(ldq) => [
- q(3859),
+ q(3850),
q(0),
],
q(lea) => [
- q(3860),
+ q(3851),
q(0),
],
q(leb) => [
- q(3861),
+ q(3852),
q(0),
],
q(lec) => [
- q(3862),
+ q(3853),
q(0),
],
q(led) => [
- q(3863),
+ q(3854),
q(0),
],
q(lee) => [
- q(3864),
+ q(3855),
q(0),
],
q(lef) => [
- q(3865),
+ q(3856),
q(0),
],
q(leh) => [
- q(3866),
+ q(3857),
q(0),
],
q(lei) => [
- q(3867),
+ q(3858),
q(0),
],
q(lej) => [
- q(3868),
+ q(3859),
q(0),
],
q(lek) => [
- q(3869),
+ q(3860),
q(0),
],
q(lel) => [
- q(3870),
+ q(3861),
q(0),
],
q(lem) => [
- q(3871),
+ q(3862),
q(0),
],
q(len) => [
- q(3872),
+ q(3863),
q(0),
],
q(leo) => [
- q(3873),
+ q(3864),
q(0),
],
q(lep) => [
- q(3874),
+ q(3865),
q(0),
],
q(leq) => [
- q(3875),
+ q(3866),
q(0),
],
q(ler) => [
- q(3876),
+ q(3867),
q(0),
],
q(les) => [
- q(3877),
+ q(3868),
q(0),
],
q(let) => [
- q(3878),
+ q(3869),
q(0),
],
q(leu) => [
- q(3879),
+ q(3870),
q(0),
],
q(lev) => [
- q(3880),
+ q(3871),
q(0),
],
q(lew) => [
- q(3881),
+ q(3872),
q(0),
],
q(lex) => [
- q(3882),
+ q(3873),
q(0),
],
q(ley) => [
- q(3883),
+ q(3874),
q(0),
],
q(lez) => [
- q(0248),
+ q(0249),
q(0),
],
q(lfa) => [
- q(3884),
+ q(3875),
q(0),
],
q(lfn) => [
- q(3885),
+ q(3876),
q(0),
],
q(lga) => [
- q(3886),
+ q(3877),
q(0),
],
q(lgb) => [
- q(3887),
+ q(3878),
q(0),
],
q(lgg) => [
- q(3888),
+ q(3879),
q(0),
],
q(lgh) => [
- q(3889),
+ q(3880),
q(0),
],
q(lgi) => [
- q(3890),
+ q(3881),
q(0),
],
q(lgk) => [
- q(3891),
+ q(3882),
q(0),
],
q(lgl) => [
- q(3892),
+ q(3883),
q(0),
],
q(lgm) => [
- q(3893),
+ q(3884),
q(0),
],
q(lgn) => [
- q(3894),
+ q(3885),
q(0),
],
q(lgq) => [
- q(3895),
+ q(3886),
q(0),
],
q(lgr) => [
- q(3896),
+ q(3887),
q(0),
],
q(lgt) => [
- q(3897),
+ q(3888),
q(0),
],
q(lgu) => [
- q(3898),
+ q(3889),
q(0),
],
q(lgz) => [
- q(3899),
+ q(3890),
q(0),
],
q(lha) => [
- q(3900),
+ q(3891),
q(0),
],
q(lhh) => [
- q(3901),
+ q(3892),
q(0),
],
q(lhi) => [
- q(3902),
+ q(3893),
q(0),
],
q(lhl) => [
- q(3903),
+ q(3894),
q(0),
],
q(lhm) => [
- q(3904),
+ q(3895),
q(0),
],
q(lhn) => [
- q(3905),
+ q(3896),
q(0),
],
q(lhp) => [
- q(3906),
+ q(3897),
q(0),
],
q(lhs) => [
- q(3907),
+ q(3898),
q(0),
],
q(lht) => [
- q(3908),
+ q(3899),
q(0),
],
q(lhu) => [
- q(3909),
+ q(3900),
q(0),
],
q(lia) => [
- q(3910),
+ q(3901),
q(0),
],
q(lib) => [
- q(3911),
+ q(3902),
q(0),
],
q(lic) => [
- q(3912),
+ q(3903),
q(0),
],
q(lid) => [
- q(3913),
+ q(3904),
q(0),
],
q(lie) => [
- q(3914),
+ q(3905),
q(0),
],
q(lif) => [
- q(3915),
+ q(3906),
q(0),
],
q(lig) => [
- q(3916),
+ q(3907),
q(0),
],
q(lih) => [
- q(3917),
+ q(3908),
q(0),
],
q(lij) => [
- q(3918),
+ q(3909),
q(0),
],
q(lik) => [
- q(3919),
+ q(3910),
q(0),
],
q(lil) => [
- q(3920),
+ q(3911),
q(0),
],
q(lim) => [
- q(0249),
+ q(0250),
q(0),
],
q(lin) => [
- q(0250),
+ q(0251),
q(0),
],
q(lio) => [
- q(3921),
+ q(3912),
q(0),
],
q(lip) => [
- q(3922),
+ q(3913),
q(0),
],
q(liq) => [
- q(3923),
+ q(3914),
q(0),
],
q(lir) => [
- q(3924),
+ q(3915),
q(0),
],
q(lis) => [
- q(3925),
+ q(3916),
q(0),
],
q(lit) => [
- q(0251),
+ q(0252),
q(0),
],
q(liu) => [
- q(3926),
+ q(3917),
q(0),
],
q(liv) => [
- q(3927),
+ q(3918),
q(0),
],
q(liw) => [
- q(3928),
+ q(3919),
q(0),
],
q(lix) => [
- q(3929),
+ q(3920),
q(0),
],
q(liy) => [
- q(3930),
+ q(3921),
q(0),
],
q(liz) => [
- q(3931),
+ q(3922),
q(0),
],
q(lja) => [
- q(3932),
+ q(3923),
q(0),
],
q(lje) => [
- q(3933),
+ q(3924),
q(0),
],
q(lji) => [
- q(3934),
+ q(3925),
q(0),
],
q(ljl) => [
- q(3935),
+ q(3926),
q(0),
],
q(ljp) => [
- q(3936),
+ q(3927),
q(0),
],
q(ljw) => [
- q(3937),
+ q(3928),
q(0),
],
q(ljx) => [
- q(3938),
+ q(3929),
q(0),
],
q(lka) => [
- q(3939),
+ q(3930),
q(0),
],
q(lkb) => [
- q(3940),
+ q(3931),
q(0),
],
q(lkc) => [
- q(3941),
+ q(3932),
q(0),
],
q(lkd) => [
- q(3942),
+ q(3933),
q(0),
],
q(lke) => [
- q(3943),
+ q(3934),
q(0),
],
q(lkh) => [
- q(3944),
+ q(3935),
q(0),
],
q(lki) => [
- q(3945),
+ q(3936),
q(0),
],
q(lkj) => [
- q(3946),
+ q(3937),
q(0),
],
q(lkl) => [
- q(3947),
+ q(3938),
q(0),
],
q(lkm) => [
- q(3948),
+ q(3939),
q(0),
],
q(lkn) => [
- q(3949),
+ q(3940),
q(0),
],
q(lko) => [
- q(3950),
+ q(3941),
q(0),
],
q(lkr) => [
- q(3951),
+ q(3942),
q(0),
],
q(lks) => [
- q(3952),
+ q(3943),
q(0),
],
q(lkt) => [
- q(3953),
+ q(3944),
q(0),
],
q(lku) => [
- q(3954),
+ q(3945),
q(0),
],
q(lky) => [
- q(3955),
+ q(3946),
q(0),
],
q(lla) => [
- q(3956),
+ q(3947),
q(0),
],
q(llb) => [
- q(3957),
+ q(3948),
q(0),
],
q(llc) => [
- q(3958),
+ q(3949),
q(0),
],
q(lld) => [
- q(3959),
+ q(3950),
q(0),
],
q(lle) => [
- q(3960),
+ q(3951),
q(0),
],
q(llf) => [
- q(3961),
+ q(3952),
q(0),
],
q(llg) => [
- q(3962),
+ q(3953),
q(0),
],
q(llh) => [
- q(3963),
+ q(3954),
q(0),
],
q(lli) => [
- q(3964),
+ q(3955),
q(0),
],
q(llj) => [
- q(3965),
+ q(3956),
q(0),
],
q(llk) => [
- q(3966),
+ q(3957),
q(0),
],
q(lll) => [
- q(3967),
+ q(3958),
q(0),
],
q(llm) => [
- q(3968),
+ q(3959),
q(0),
],
q(lln) => [
- q(3969),
+ q(3960),
q(0),
],
q(llo) => [
- q(3970),
+ q(3961),
q(0),
],
q(llp) => [
- q(3971),
+ q(3962),
q(0),
],
q(llq) => [
- q(3972),
+ q(3963),
q(0),
],
q(lls) => [
- q(3973),
+ q(3964),
q(0),
],
q(llu) => [
- q(3974),
+ q(3965),
q(0),
],
q(llx) => [
- q(3975),
+ q(3966),
q(0),
],
q(lma) => [
- q(3976),
+ q(3967),
q(0),
],
q(lmb) => [
- q(3977),
+ q(3968),
q(0),
],
q(lmc) => [
- q(3978),
+ q(3969),
q(0),
],
q(lmd) => [
- q(3979),
+ q(3970),
q(0),
],
q(lme) => [
- q(3980),
+ q(3971),
q(0),
],
q(lmf) => [
- q(3981),
+ q(3972),
q(0),
],
q(lmg) => [
- q(3982),
+ q(3973),
q(0),
],
q(lmh) => [
- q(3983),
+ q(3974),
q(0),
],
q(lmi) => [
- q(3984),
+ q(3975),
q(0),
],
q(lmj) => [
- q(3985),
+ q(3976),
q(0),
],
q(lmk) => [
- q(3986),
+ q(3977),
q(0),
],
q(lml) => [
- q(3987),
+ q(3978),
q(0),
],
q(lmn) => [
- q(3988),
+ q(3979),
q(0),
],
q(lmo) => [
- q(3989),
+ q(3980),
q(0),
],
q(lmp) => [
- q(3990),
+ q(3981),
q(0),
],
q(lmq) => [
- q(3991),
+ q(3982),
q(0),
],
q(lmr) => [
- q(3992),
+ q(3983),
q(0),
],
q(lmu) => [
- q(3993),
+ q(3984),
q(0),
],
q(lmv) => [
- q(3994),
+ q(3985),
q(0),
],
q(lmw) => [
- q(3995),
+ q(3986),
q(0),
],
q(lmx) => [
- q(3996),
+ q(3987),
q(0),
],
q(lmy) => [
- q(3997),
+ q(3988),
q(0),
],
q(lmz) => [
- q(3998),
+ q(3989),
q(0),
],
q(lna) => [
- q(3999),
+ q(3990),
q(0),
],
q(lnb) => [
- q(4000),
+ q(3991),
q(0),
],
q(lnd) => [
- q(4001),
+ q(3992),
q(0),
],
q(lng) => [
- q(4002),
+ q(3993),
q(0),
],
q(lnh) => [
- q(4003),
+ q(3994),
q(0),
],
q(lni) => [
- q(4004),
+ q(3995),
q(0),
],
q(lnj) => [
- q(4005),
+ q(3996),
q(0),
],
q(lnl) => [
- q(4006),
+ q(3997),
q(0),
],
q(lnm) => [
- q(4007),
+ q(3998),
q(0),
],
q(lnn) => [
- q(4008),
+ q(3999),
q(0),
],
q(lno) => [
- q(4009),
+ q(4000),
q(0),
],
q(lns) => [
- q(4010),
+ q(4001),
q(0),
],
q(lnu) => [
- q(4011),
+ q(4002),
q(0),
],
q(lnw) => [
- q(4012),
+ q(4003),
q(0),
],
q(lnz) => [
- q(4013),
+ q(4004),
q(0),
],
q(loa) => [
- q(4014),
+ q(4005),
q(0),
],
q(lob) => [
- q(4015),
+ q(4006),
q(0),
],
q(loc) => [
- q(4016),
+ q(4007),
q(0),
],
q(loe) => [
- q(4017),
+ q(4008),
q(0),
],
q(lof) => [
- q(4018),
+ q(4009),
q(0),
],
q(log) => [
- q(4019),
+ q(4010),
q(0),
],
q(loh) => [
- q(4020),
+ q(4011),
q(0),
],
q(loi) => [
- q(4021),
+ q(4012),
q(0),
],
q(loj) => [
- q(4022),
+ q(4013),
q(0),
],
q(lok) => [
- q(4023),
+ q(4014),
q(0),
],
q(lol) => [
- q(0252),
+ q(0253),
q(0),
],
q(lom) => [
- q(4024),
+ q(4015),
q(0),
],
q(lon) => [
- q(4025),
+ q(4016),
q(0),
],
q(loo) => [
- q(4026),
+ q(4017),
q(0),
],
q(lop) => [
- q(4027),
+ q(4018),
q(0),
],
q(loq) => [
- q(4028),
+ q(4019),
q(0),
],
q(lor) => [
- q(4029),
+ q(4020),
q(0),
],
q(los) => [
- q(4030),
+ q(4021),
q(0),
],
q(lot) => [
- q(4031),
+ q(4022),
q(0),
],
q(lou) => [
- q(4032),
+ q(4023),
q(0),
],
q(lov) => [
- q(4033),
+ q(4024),
q(0),
],
q(low) => [
- q(4034),
+ q(4025),
q(0),
],
q(lox) => [
- q(4035),
+ q(4026),
q(0),
],
q(loy) => [
- q(4036),
+ q(4027),
q(0),
],
q(loz) => [
- q(0253),
+ q(0254),
q(0),
],
q(lpa) => [
- q(4037),
+ q(4028),
q(0),
],
q(lpe) => [
- q(4038),
+ q(4029),
q(0),
],
q(lpn) => [
- q(4039),
+ q(4030),
q(0),
],
q(lpo) => [
- q(4040),
+ q(4031),
q(0),
],
q(lpx) => [
- q(4041),
+ q(4032),
q(0),
],
q(lra) => [
- q(4042),
+ q(4033),
q(0),
],
q(lrc) => [
- q(4043),
+ q(4034),
q(0),
],
q(lre) => [
- q(4044),
+ q(4035),
q(0),
],
q(lrg) => [
- q(4045),
+ q(4036),
q(0),
],
q(lri) => [
- q(4046),
+ q(4037),
q(0),
],
q(lrk) => [
- q(4047),
+ q(4038),
q(0),
],
q(lrl) => [
- q(4048),
+ q(4039),
q(0),
],
q(lrm) => [
- q(4049),
+ q(4040),
q(0),
],
q(lrn) => [
- q(4050),
+ q(4041),
q(0),
],
q(lro) => [
- q(4051),
+ q(4042),
q(0),
],
q(lrr) => [
- q(4052),
+ q(4043),
q(0),
],
q(lrt) => [
- q(4053),
+ q(4044),
q(0),
],
q(lrv) => [
- q(4054),
+ q(4045),
q(0),
],
q(lrz) => [
- q(4055),
+ q(4046),
q(0),
],
q(lsa) => [
- q(4056),
+ q(4047),
q(0),
],
q(lsd) => [
- q(4057),
+ q(4048),
q(0),
],
q(lse) => [
- q(4058),
+ q(4049),
q(0),
],
q(lsg) => [
- q(4059),
+ q(4050),
q(0),
],
q(lsh) => [
- q(4060),
+ q(4051),
q(0),
],
q(lsi) => [
- q(4061),
+ q(4052),
q(0),
],
q(lsl) => [
- q(4062),
+ q(4053),
q(0),
],
q(lsm) => [
- q(4063),
+ q(4054),
q(0),
],
q(lso) => [
- q(4064),
+ q(4055),
q(0),
],
q(lsp) => [
- q(4065),
+ q(4056),
q(0),
],
q(lsr) => [
- q(4066),
+ q(4057),
q(0),
],
q(lss) => [
- q(4067),
+ q(4058),
q(0),
],
q(lst) => [
- q(4068),
+ q(4059),
q(0),
],
q(lsy) => [
- q(4069),
+ q(4060),
q(0),
],
q(ltc) => [
- q(4070),
+ q(4061),
q(0),
],
q(ltg) => [
- q(4071),
+ q(4062),
+ q(0),
+ ],
+ q(lth) => [
+ q(4063),
q(0),
],
q(lti) => [
- q(4072),
+ q(4064),
q(0),
],
q(ltn) => [
- q(4073),
+ q(4065),
q(0),
],
q(lto) => [
- q(4074),
+ q(4066),
q(0),
],
q(lts) => [
- q(4075),
+ q(4067),
q(0),
],
q(ltu) => [
- q(4076),
+ q(4068),
q(0),
],
q(ltz) => [
- q(0254),
+ q(0255),
q(0),
],
q(lua) => [
- q(0255),
+ q(0256),
q(0),
],
q(lub) => [
- q(0256),
+ q(0257),
q(0),
],
q(luc) => [
- q(4077),
+ q(4069),
q(0),
],
q(lud) => [
- q(4078),
+ q(4070),
q(0),
],
q(lue) => [
- q(4079),
+ q(4071),
q(0),
],
q(luf) => [
- q(4080),
+ q(4072),
q(0),
],
q(lug) => [
- q(0257),
+ q(0258),
q(0),
],
q(lui) => [
- q(0258),
+ q(0259),
q(0),
],
q(luj) => [
- q(4081),
+ q(4073),
q(0),
],
q(luk) => [
- q(4082),
+ q(4074),
q(0),
],
q(lul) => [
- q(4083),
+ q(4075),
q(0),
],
q(lum) => [
- q(4084),
+ q(4076),
q(0),
],
q(lun) => [
- q(0259),
+ q(0260),
q(0),
],
q(luo) => [
- q(0260),
+ q(0261),
q(0),
],
q(lup) => [
- q(4085),
+ q(4077),
q(0),
],
q(luq) => [
- q(4086),
+ q(4078),
q(0),
],
q(lur) => [
- q(4087),
+ q(4079),
q(0),
],
q(lus) => [
- q(0261),
+ q(0262),
q(0),
],
q(lut) => [
- q(4088),
+ q(4080),
q(0),
],
q(luu) => [
- q(4089),
+ q(4081),
q(0),
],
q(luv) => [
- q(4090),
+ q(4082),
q(0),
],
q(luw) => [
- q(4091),
+ q(4083),
q(0),
],
q(luy) => [
- q(4092),
+ q(4084),
q(0),
],
q(luz) => [
- q(4093),
+ q(4085),
q(0),
],
q(lva) => [
- q(4094),
+ q(4086),
q(0),
],
q(lvk) => [
- q(4095),
+ q(4087),
q(0),
],
q(lvs) => [
- q(4096),
+ q(4088),
q(0),
],
q(lvu) => [
- q(4097),
+ q(4089),
q(0),
],
q(lwa) => [
- q(4098),
+ q(4090),
q(0),
],
q(lwe) => [
- q(4099),
+ q(4091),
q(0),
],
q(lwg) => [
- q(4100),
+ q(4092),
q(0),
],
q(lwh) => [
- q(4101),
+ q(4093),
q(0),
],
q(lwl) => [
- q(4102),
+ q(4094),
q(0),
],
q(lwm) => [
- q(4103),
+ q(4095),
q(0),
],
q(lwo) => [
- q(4104),
+ q(4096),
q(0),
],
q(lwt) => [
- q(4105),
+ q(4097),
q(0),
],
q(lwu) => [
- q(4106),
+ q(4098),
q(0),
],
q(lww) => [
- q(4107),
+ q(4099),
q(0),
],
q(lya) => [
- q(4108),
+ q(4100),
q(0),
],
q(lyg) => [
- q(4109),
+ q(4101),
q(0),
],
q(lyn) => [
- q(4110),
+ q(4102),
q(0),
],
q(lzh) => [
- q(4111),
+ q(4103),
q(0),
],
q(lzl) => [
- q(4112),
+ q(4104),
q(0),
],
q(lzn) => [
- q(4113),
+ q(4105),
q(0),
],
q(lzz) => [
- q(4114),
+ q(4106),
q(0),
],
q(maa) => [
- q(4115),
+ q(4107),
q(0),
],
q(mab) => [
- q(4116),
+ q(4108),
q(0),
],
q(mac) => [
- q(0262),
+ q(0263),
q(0),
],
q(mad) => [
- q(0263),
+ q(0264),
q(0),
],
q(mae) => [
- q(4117),
+ q(4109),
q(0),
],
q(maf) => [
- q(4118),
+ q(4110),
q(0),
],
q(mag) => [
- q(0264),
+ q(0265),
q(0),
],
q(mah) => [
- q(0265),
+ q(0266),
q(0),
],
q(mai) => [
- q(0266),
+ q(0267),
q(0),
],
q(maj) => [
- q(4119),
+ q(4111),
q(0),
],
q(mak) => [
- q(0267),
+ q(0268),
q(0),
],
q(mal) => [
- q(0268),
+ q(0269),
q(0),
],
q(mam) => [
- q(4120),
+ q(4112),
q(0),
],
q(man) => [
- q(0269),
+ q(0270),
q(0),
],
q(mao) => [
- q(0270),
+ q(0271),
q(0),
],
q(map) => [
- q(0271),
+ q(0272),
q(0),
],
q(maq) => [
- q(4121),
+ q(4113),
q(0),
],
q(mar) => [
- q(0272),
+ q(0273),
q(0),
],
q(mas) => [
- q(0273),
+ q(0274),
q(0),
],
q(mat) => [
- q(4122),
+ q(4114),
q(0),
],
q(mau) => [
- q(4123),
+ q(4115),
q(0),
],
q(mav) => [
- q(4124),
+ q(4116),
q(0),
],
q(maw) => [
- q(4125),
+ q(4117),
q(0),
],
q(max) => [
- q(4126),
+ q(4118),
q(0),
],
q(may) => [
- q(0274),
+ q(0275),
q(0),
],
q(maz) => [
- q(4127),
+ q(4119),
q(0),
],
q(mba) => [
- q(4128),
+ q(4120),
q(0),
],
q(mbb) => [
- q(4129),
+ q(4121),
q(0),
],
q(mbc) => [
- q(4130),
+ q(4122),
q(0),
],
q(mbd) => [
- q(4131),
+ q(4123),
q(0),
],
q(mbe) => [
- q(4132),
+ q(4124),
q(0),
],
q(mbf) => [
- q(4133),
+ q(4125),
q(0),
],
q(mbh) => [
- q(4134),
+ q(4126),
q(0),
],
q(mbi) => [
- q(4135),
+ q(4127),
q(0),
],
q(mbj) => [
- q(4136),
+ q(4128),
q(0),
],
q(mbk) => [
- q(4137),
+ q(4129),
q(0),
],
q(mbl) => [
- q(4138),
+ q(4130),
q(0),
],
q(mbm) => [
- q(4139),
+ q(4131),
q(0),
],
q(mbn) => [
- q(4140),
+ q(4132),
q(0),
],
q(mbo) => [
- q(4141),
+ q(4133),
q(0),
],
q(mbp) => [
- q(4142),
+ q(4134),
q(0),
],
q(mbq) => [
- q(4143),
+ q(4135),
q(0),
],
q(mbr) => [
- q(4144),
+ q(4136),
q(0),
],
q(mbs) => [
- q(4145),
+ q(4137),
q(0),
],
q(mbt) => [
- q(4146),
+ q(4138),
q(0),
],
q(mbu) => [
- q(4147),
+ q(4139),
q(0),
],
q(mbv) => [
- q(4148),
+ q(4140),
q(0),
],
q(mbw) => [
- q(4149),
+ q(4141),
q(0),
],
q(mbx) => [
- q(4150),
+ q(4142),
q(0),
],
q(mby) => [
- q(4151),
+ q(4143),
q(0),
],
q(mbz) => [
- q(4152),
+ q(4144),
q(0),
],
q(mca) => [
- q(4153),
+ q(4145),
q(0),
],
q(mcb) => [
- q(4154),
+ q(4146),
q(0),
],
q(mcc) => [
- q(4155),
+ q(4147),
q(0),
],
q(mcd) => [
- q(4156),
+ q(4148),
q(0),
],
q(mce) => [
- q(4157),
+ q(4149),
q(0),
],
q(mcf) => [
- q(4158),
+ q(4150),
q(0),
],
q(mcg) => [
- q(4159),
+ q(4151),
q(0),
],
q(mch) => [
- q(4160),
+ q(4152),
q(0),
],
q(mci) => [
- q(4161),
+ q(4153),
q(0),
],
q(mcj) => [
- q(4162),
+ q(4154),
q(0),
],
q(mck) => [
- q(4163),
+ q(4155),
q(0),
],
q(mcl) => [
- q(4164),
+ q(4156),
q(0),
],
q(mcm) => [
- q(4165),
+ q(4157),
q(0),
],
q(mcn) => [
- q(4166),
+ q(4158),
q(0),
],
q(mco) => [
- q(4167),
+ q(4159),
q(0),
],
q(mcp) => [
- q(4168),
+ q(4160),
q(0),
],
q(mcq) => [
- q(4169),
+ q(4161),
q(0),
],
q(mcr) => [
- q(4170),
+ q(4162),
q(0),
],
q(mcs) => [
- q(4171),
+ q(4163),
q(0),
],
q(mct) => [
- q(4172),
+ q(4164),
q(0),
],
q(mcu) => [
- q(4173),
+ q(4165),
q(0),
],
q(mcv) => [
- q(4174),
+ q(4166),
q(0),
],
q(mcw) => [
- q(4175),
+ q(4167),
q(0),
],
q(mcx) => [
- q(4176),
+ q(4168),
q(0),
],
q(mcy) => [
- q(4177),
+ q(4169),
q(0),
],
q(mcz) => [
- q(4178),
+ q(4170),
q(0),
],
q(mda) => [
- q(4179),
+ q(4171),
q(0),
],
q(mdb) => [
- q(4180),
+ q(4172),
q(0),
],
q(mdc) => [
- q(4181),
+ q(4173),
q(0),
],
q(mdd) => [
- q(4182),
+ q(4174),
q(0),
],
q(mde) => [
- q(4183),
+ q(4175),
q(0),
],
q(mdf) => [
- q(0275),
+ q(0276),
q(0),
],
q(mdg) => [
- q(4184),
+ q(4176),
q(0),
],
q(mdh) => [
- q(4185),
+ q(4177),
q(0),
],
q(mdi) => [
- q(4186),
+ q(4178),
q(0),
],
q(mdj) => [
- q(4187),
+ q(4179),
q(0),
],
q(mdk) => [
- q(4188),
+ q(4180),
q(0),
],
q(mdl) => [
- q(4189),
+ q(4181),
q(0),
],
q(mdm) => [
- q(4190),
+ q(4182),
q(0),
],
q(mdn) => [
- q(4191),
+ q(4183),
q(0),
],
q(mdp) => [
- q(4192),
+ q(4184),
q(0),
],
q(mdq) => [
- q(4193),
+ q(4185),
q(0),
],
q(mdr) => [
- q(0276),
+ q(0277),
q(0),
],
q(mds) => [
- q(4194),
+ q(4186),
q(0),
],
q(mdt) => [
- q(4195),
+ q(4187),
q(0),
],
q(mdu) => [
- q(4196),
+ q(4188),
q(0),
],
q(mdv) => [
- q(4197),
+ q(4189),
q(0),
],
q(mdw) => [
- q(4198),
+ q(4190),
q(0),
],
q(mdx) => [
- q(4199),
+ q(4191),
q(0),
],
q(mdy) => [
- q(4200),
+ q(4192),
q(0),
],
q(mdz) => [
- q(4201),
+ q(4193),
q(0),
],
q(mea) => [
- q(4202),
+ q(4194),
q(0),
],
q(meb) => [
- q(4203),
+ q(4195),
q(0),
],
q(mec) => [
- q(4204),
+ q(4196),
q(0),
],
q(med) => [
- q(4205),
+ q(4197),
q(0),
],
q(mee) => [
- q(4206),
+ q(4198),
q(0),
],
q(mef) => [
- q(4207),
+ q(4199),
q(0),
],
q(meh) => [
- q(4208),
+ q(4200),
q(0),
],
q(mei) => [
- q(4209),
+ q(4201),
q(0),
],
q(mej) => [
- q(4210),
+ q(4202),
q(0),
],
q(mek) => [
- q(4211),
+ q(4203),
q(0),
],
q(mel) => [
- q(4212),
+ q(4204),
q(0),
],
q(mem) => [
- q(4213),
+ q(4205),
q(0),
],
q(men) => [
- q(0277),
+ q(0278),
q(1),
],
q(meo) => [
- q(4214),
+ q(4206),
q(0),
],
q(mep) => [
- q(4215),
+ q(4207),
q(0),
],
q(meq) => [
- q(4216),
+ q(4208),
q(0),
],
q(mer) => [
- q(4217),
+ q(4209),
q(0),
],
q(mes) => [
- q(4218),
+ q(4210),
q(0),
],
q(met) => [
- q(4219),
+ q(4211),
q(0),
],
q(meu) => [
- q(4220),
+ q(4212),
q(0),
],
q(mev) => [
- q(4221),
+ q(4213),
q(0),
],
q(mew) => [
- q(4222),
+ q(4214),
q(0),
],
q(mey) => [
- q(4223),
+ q(4215),
q(0),
],
q(mez) => [
- q(4224),
+ q(4216),
q(0),
],
q(mfa) => [
- q(4225),
+ q(4217),
q(0),
],
q(mfb) => [
- q(4226),
+ q(4218),
q(0),
],
q(mfc) => [
- q(4227),
+ q(4219),
q(0),
],
q(mfd) => [
- q(4228),
+ q(4220),
q(0),
],
q(mfe) => [
- q(4229),
+ q(4221),
q(0),
],
q(mff) => [
- q(4230),
+ q(4222),
q(0),
],
q(mfg) => [
- q(4231),
+ q(4223),
q(0),
],
q(mfh) => [
- q(4232),
+ q(4224),
q(0),
],
q(mfi) => [
- q(4233),
+ q(4225),
q(0),
],
q(mfj) => [
- q(4234),
+ q(4226),
q(0),
],
q(mfk) => [
- q(4235),
+ q(4227),
q(0),
],
q(mfl) => [
- q(4236),
+ q(4228),
q(0),
],
q(mfm) => [
- q(4237),
+ q(4229),
q(0),
],
q(mfn) => [
- q(4238),
+ q(4230),
q(0),
],
q(mfo) => [
- q(4239),
+ q(4231),
q(0),
],
q(mfp) => [
- q(4240),
+ q(4232),
q(0),
],
q(mfq) => [
- q(4241),
+ q(4233),
q(0),
],
q(mfr) => [
- q(4242),
+ q(4234),
q(0),
],
q(mfs) => [
- q(4243),
+ q(4235),
q(0),
],
q(mft) => [
- q(4244),
+ q(4236),
q(0),
],
q(mfu) => [
- q(4245),
+ q(4237),
q(0),
],
q(mfv) => [
- q(4246),
+ q(4238),
q(0),
],
q(mfw) => [
- q(4247),
+ q(4239),
q(0),
],
q(mfx) => [
- q(4248),
+ q(4240),
q(0),
],
q(mfy) => [
- q(4249),
+ q(4241),
q(0),
],
q(mfz) => [
- q(4250),
+ q(4242),
q(0),
],
q(mga) => [
- q(0278),
+ q(0279),
q(1),
],
q(mgb) => [
- q(4251),
+ q(4243),
q(0),
],
q(mgc) => [
- q(4252),
+ q(4244),
q(0),
],
q(mgd) => [
- q(4253),
+ q(4245),
q(0),
],
q(mge) => [
- q(4254),
+ q(4246),
q(0),
],
q(mgf) => [
- q(4255),
+ q(4247),
q(0),
],
q(mgg) => [
- q(4256),
+ q(4248),
q(0),
],
q(mgh) => [
- q(4257),
+ q(4249),
q(0),
],
q(mgi) => [
- q(4258),
+ q(4250),
q(0),
],
q(mgj) => [
- q(4259),
+ q(4251),
q(0),
],
q(mgk) => [
- q(4260),
+ q(4252),
q(0),
],
q(mgl) => [
- q(4261),
+ q(4253),
q(0),
],
q(mgm) => [
- q(4262),
+ q(4254),
q(0),
],
q(mgn) => [
- q(4263),
+ q(4255),
q(0),
],
q(mgo) => [
- q(4264),
+ q(4256),
q(0),
],
q(mgp) => [
- q(4265),
+ q(4257),
q(0),
],
q(mgq) => [
- q(4266),
+ q(4258),
q(0),
],
q(mgr) => [
- q(4267),
+ q(4259),
q(0),
],
q(mgs) => [
- q(4268),
+ q(4260),
q(0),
],
q(mgt) => [
- q(4269),
+ q(4261),
q(0),
],
q(mgu) => [
- q(4270),
+ q(4262),
q(0),
],
q(mgv) => [
- q(4271),
+ q(4263),
q(0),
],
q(mgw) => [
- q(4272),
+ q(4264),
q(0),
],
q(mgy) => [
- q(4273),
+ q(4265),
q(0),
],
q(mgz) => [
- q(4274),
+ q(4266),
q(0),
],
q(mha) => [
- q(4275),
+ q(4267),
q(0),
],
q(mhb) => [
- q(4276),
+ q(4268),
q(0),
],
q(mhc) => [
- q(4277),
+ q(4269),
q(0),
],
q(mhd) => [
- q(4278),
+ q(4270),
q(0),
],
q(mhe) => [
- q(4279),
+ q(4271),
q(0),
],
q(mhf) => [
- q(4280),
+ q(4272),
q(0),
],
q(mhg) => [
- q(4281),
+ q(4273),
q(0),
],
q(mhi) => [
- q(4282),
+ q(4274),
q(0),
],
q(mhj) => [
- q(4283),
+ q(4275),
q(0),
],
q(mhk) => [
- q(4284),
+ q(4276),
q(0),
],
q(mhl) => [
- q(4285),
+ q(4277),
q(0),
],
q(mhm) => [
- q(4286),
+ q(4278),
q(0),
],
q(mhn) => [
- q(4287),
+ q(4279),
q(0),
],
q(mho) => [
- q(4288),
+ q(4280),
q(0),
],
q(mhp) => [
- q(4289),
+ q(4281),
q(0),
],
q(mhq) => [
- q(4290),
+ q(4282),
q(0),
],
q(mhr) => [
- q(4291),
+ q(4283),
q(0),
],
q(mhs) => [
- q(4292),
+ q(4284),
q(0),
],
q(mht) => [
- q(4293),
+ q(4285),
q(0),
],
q(mhu) => [
- q(4294),
+ q(4286),
q(0),
],
q(mhw) => [
- q(4295),
+ q(4287),
q(0),
],
q(mhx) => [
- q(4296),
+ q(4288),
q(0),
],
q(mhy) => [
- q(4297),
+ q(4289),
q(0),
],
q(mhz) => [
- q(4298),
+ q(4290),
q(0),
],
q(mia) => [
- q(4299),
+ q(4291),
q(0),
],
q(mib) => [
- q(4300),
+ q(4292),
q(0),
],
q(mic) => [
- q(0279),
+ q(0280),
q(0),
],
q(mid) => [
- q(4301),
+ q(4293),
q(0),
],
q(mie) => [
- q(4302),
+ q(4294),
q(0),
],
q(mif) => [
- q(4303),
+ q(4295),
q(0),
],
q(mig) => [
- q(4304),
+ q(4296),
q(0),
],
q(mih) => [
- q(4305),
+ q(4297),
q(0),
],
q(mii) => [
- q(4306),
+ q(4298),
q(0),
],
q(mij) => [
- q(4307),
+ q(4299),
q(0),
],
q(mik) => [
- q(4308),
+ q(4300),
q(0),
],
q(mil) => [
- q(4309),
+ q(4301),
q(0),
],
q(mim) => [
- q(4310),
+ q(4302),
q(0),
],
q(min) => [
- q(0280),
+ q(0281),
q(0),
],
q(mio) => [
- q(4311),
+ q(4303),
q(0),
],
q(mip) => [
- q(4312),
+ q(4304),
q(0),
],
q(miq) => [
- q(4313),
+ q(4305),
q(0),
],
q(mir) => [
- q(4314),
+ q(4306),
q(0),
],
q(mis) => [
- q(0281),
+ q(0282),
q(0),
],
q(mit) => [
- q(4315),
+ q(4307),
q(0),
],
q(miu) => [
- q(4316),
+ q(4308),
q(0),
],
q(miw) => [
- q(4317),
+ q(4309),
q(0),
],
q(mix) => [
- q(4318),
+ q(4310),
q(0),
],
q(miy) => [
- q(4319),
+ q(4311),
q(0),
],
q(miz) => [
- q(4320),
+ q(4312),
+ q(0),
+ ],
+ q(mjb) => [
+ q(4313),
q(0),
],
q(mjc) => [
- q(4321),
+ q(4314),
q(0),
],
q(mjd) => [
- q(4322),
+ q(4315),
q(0),
],
q(mje) => [
- q(4323),
+ q(4316),
q(0),
],
q(mjg) => [
- q(4324),
+ q(4317),
q(0),
],
q(mjh) => [
- q(4325),
+ q(4318),
q(0),
],
q(mji) => [
- q(4326),
+ q(4319),
q(0),
],
q(mjj) => [
- q(4327),
+ q(4320),
q(0),
],
q(mjk) => [
- q(4328),
+ q(4321),
q(0),
],
q(mjl) => [
- q(4329),
+ q(4322),
q(0),
],
q(mjm) => [
- q(4330),
+ q(4323),
q(0),
],
q(mjn) => [
- q(4331),
+ q(4324),
q(0),
],
q(mjo) => [
- q(4332),
+ q(4325),
q(0),
],
q(mjp) => [
- q(4333),
+ q(4326),
q(0),
],
q(mjq) => [
- q(4334),
+ q(4327),
q(0),
],
q(mjr) => [
- q(4335),
+ q(4328),
q(0),
],
q(mjs) => [
- q(4336),
+ q(4329),
q(0),
],
q(mjt) => [
- q(4337),
+ q(4330),
q(0),
],
q(mju) => [
- q(4338),
+ q(4331),
q(0),
],
q(mjv) => [
- q(4339),
+ q(4332),
q(0),
],
q(mjw) => [
- q(4340),
+ q(4333),
q(0),
],
q(mjx) => [
- q(4341),
+ q(4334),
q(0),
],
q(mjy) => [
- q(4342),
+ q(4335),
q(0),
],
q(mjz) => [
- q(4343),
+ q(4336),
q(0),
],
q(mka) => [
- q(4344),
+ q(4337),
q(0),
],
q(mkb) => [
- q(4345),
+ q(4338),
q(0),
],
q(mkc) => [
- q(4346),
+ q(4339),
q(0),
],
q(mke) => [
- q(4347),
+ q(4340),
q(0),
],
q(mkf) => [
- q(4348),
+ q(4341),
q(0),
],
q(mkg) => [
- q(4349),
+ q(4342),
q(0),
],
q(mkh) => [
- q(0282),
+ q(0283),
q(0),
],
q(mki) => [
- q(4350),
+ q(4343),
q(0),
],
q(mkj) => [
- q(4351),
+ q(4344),
q(0),
],
q(mkk) => [
- q(4352),
+ q(4345),
q(0),
],
q(mkl) => [
- q(4353),
+ q(4346),
q(0),
],
q(mkm) => [
- q(4354),
+ q(4347),
q(0),
],
q(mkn) => [
- q(4355),
+ q(4348),
q(0),
],
q(mko) => [
- q(4356),
+ q(4349),
q(0),
],
q(mkp) => [
- q(4357),
+ q(4350),
q(0),
],
q(mkq) => [
- q(4358),
+ q(4351),
q(0),
],
q(mkr) => [
- q(4359),
+ q(4352),
q(0),
],
q(mks) => [
- q(4360),
+ q(4353),
q(0),
],
q(mkt) => [
- q(4361),
+ q(4354),
q(0),
],
q(mku) => [
- q(4362),
+ q(4355),
q(0),
],
q(mkv) => [
- q(4363),
+ q(4356),
q(0),
],
q(mkw) => [
- q(4364),
+ q(4357),
q(0),
],
q(mkx) => [
- q(4365),
+ q(4358),
q(0),
],
q(mky) => [
- q(4366),
+ q(4359),
q(0),
],
q(mkz) => [
- q(4367),
+ q(4360),
q(0),
],
q(mla) => [
- q(4368),
+ q(4361),
q(0),
],
q(mlb) => [
- q(4369),
+ q(4362),
q(0),
],
q(mlc) => [
- q(4370),
+ q(4363),
q(0),
],
q(mle) => [
- q(4371),
+ q(4364),
q(0),
],
q(mlf) => [
- q(4372),
+ q(4365),
q(0),
],
q(mlg) => [
- q(0283),
+ q(0284),
q(0),
],
q(mlh) => [
- q(4373),
+ q(4366),
q(0),
],
q(mli) => [
- q(4374),
+ q(4367),
q(0),
],
q(mlj) => [
- q(4375),
+ q(4368),
q(0),
],
q(mlk) => [
- q(4376),
+ q(4369),
q(0),
],
q(mll) => [
- q(4377),
+ q(4370),
q(0),
],
q(mlm) => [
- q(4378),
+ q(4371),
q(0),
],
q(mln) => [
- q(4379),
+ q(4372),
q(0),
],
q(mlo) => [
- q(4380),
+ q(4373),
q(0),
],
q(mlp) => [
- q(4381),
+ q(4374),
q(0),
],
q(mlq) => [
- q(4382),
+ q(4375),
q(0),
],
q(mlr) => [
- q(4383),
+ q(4376),
q(0),
],
q(mls) => [
- q(4384),
+ q(4377),
q(0),
],
q(mlt) => [
- q(0284),
+ q(0285),
q(0),
],
q(mlu) => [
- q(4385),
+ q(4378),
q(0),
],
q(mlv) => [
- q(4386),
+ q(4379),
q(0),
],
q(mlw) => [
- q(4387),
+ q(4380),
q(0),
],
q(mlx) => [
- q(4388),
+ q(4381),
q(0),
],
q(mlz) => [
- q(4389),
+ q(4382),
q(0),
],
q(mma) => [
- q(4390),
+ q(4383),
q(0),
],
q(mmb) => [
- q(4391),
+ q(4384),
q(0),
],
q(mmc) => [
- q(4392),
+ q(4385),
q(0),
],
q(mmd) => [
- q(4393),
+ q(4386),
q(0),
],
q(mme) => [
- q(4394),
+ q(4387),
q(0),
],
q(mmf) => [
- q(4395),
+ q(4388),
q(0),
],
q(mmg) => [
- q(4396),
+ q(4389),
q(0),
],
q(mmh) => [
- q(4397),
+ q(4390),
q(0),
],
q(mmi) => [
- q(4398),
+ q(4391),
q(0),
],
q(mmj) => [
- q(4399),
+ q(4392),
q(0),
],
q(mmk) => [
- q(4400),
+ q(4393),
q(0),
],
q(mml) => [
- q(4401),
+ q(4394),
q(0),
],
q(mmm) => [
- q(4402),
+ q(4395),
q(0),
],
q(mmn) => [
- q(4403),
+ q(4396),
q(0),
],
q(mmo) => [
- q(4404),
+ q(4397),
q(0),
],
q(mmp) => [
- q(4405),
+ q(4398),
q(0),
],
q(mmq) => [
- q(4406),
+ q(4399),
q(0),
],
q(mmr) => [
- q(4407),
+ q(4400),
q(0),
],
q(mmt) => [
- q(4408),
+ q(4401),
q(0),
],
q(mmu) => [
- q(4409),
+ q(4402),
q(0),
],
q(mmv) => [
- q(4410),
+ q(4403),
q(0),
],
q(mmw) => [
- q(4411),
+ q(4404),
q(0),
],
q(mmx) => [
- q(4412),
+ q(4405),
q(0),
],
q(mmy) => [
- q(4413),
+ q(4406),
q(0),
],
q(mmz) => [
- q(4414),
+ q(4407),
q(0),
],
q(mna) => [
- q(4415),
+ q(4408),
q(0),
],
q(mnb) => [
- q(4416),
+ q(4409),
q(0),
],
q(mnc) => [
- q(0285),
+ q(0286),
q(0),
],
q(mnd) => [
- q(4417),
+ q(4410),
q(0),
],
q(mne) => [
- q(4418),
+ q(4411),
q(0),
],
q(mnf) => [
- q(4419),
+ q(4412),
q(0),
],
q(mng) => [
- q(4420),
+ q(4413),
q(0),
],
q(mnh) => [
- q(4421),
+ q(4414),
q(0),
],
q(mni) => [
- q(0286),
+ q(0287),
q(0),
],
q(mnj) => [
- q(4422),
+ q(4415),
q(0),
],
q(mnk) => [
- q(4423),
+ q(4416),
q(0),
],
q(mnl) => [
- q(4424),
+ q(4417),
q(0),
],
q(mnm) => [
- q(4425),
+ q(4418),
q(0),
],
q(mnn) => [
- q(4426),
+ q(4419),
q(0),
],
q(mno) => [
- q(0287),
+ q(0288),
q(0),
],
q(mnp) => [
- q(4427),
+ q(4420),
q(0),
],
q(mnq) => [
- q(4428),
+ q(4421),
q(0),
],
q(mnr) => [
- q(4429),
+ q(4422),
q(0),
],
q(mns) => [
- q(4430),
+ q(4423),
q(0),
],
q(mnu) => [
- q(4431),
+ q(4424),
q(0),
],
q(mnv) => [
- q(4432),
+ q(4425),
q(0),
],
q(mnw) => [
- q(4433),
+ q(4426),
q(0),
],
q(mnx) => [
- q(4434),
+ q(4427),
q(0),
],
q(mny) => [
- q(4435),
+ q(4428),
q(0),
],
q(mnz) => [
- q(4436),
+ q(4429),
q(0),
],
q(moa) => [
- q(4437),
+ q(4430),
q(0),
],
q(moc) => [
- q(4438),
+ q(4431),
q(0),
],
q(mod) => [
- q(4439),
+ q(4432),
q(0),
],
q(moe) => [
- q(4440),
+ q(4433),
q(0),
],
q(mog) => [
- q(4441),
+ q(4434),
q(0),
],
q(moh) => [
- q(0288),
+ q(0289),
q(0),
],
q(moi) => [
- q(4442),
+ q(4435),
q(0),
],
q(moj) => [
- q(4443),
+ q(4436),
q(0),
],
q(mok) => [
- q(4444),
+ q(4437),
q(0),
],
q(mom) => [
- q(4445),
+ q(4438),
q(0),
],
q(mon) => [
- q(0289),
+ q(0290),
q(0),
],
q(moo) => [
- q(4446),
+ q(4439),
q(0),
],
q(mop) => [
- q(4447),
+ q(4440),
q(0),
],
q(moq) => [
- q(4448),
+ q(4441),
q(0),
],
q(mor) => [
- q(4449),
+ q(4442),
q(0),
],
q(mos) => [
- q(0290),
+ q(0291),
q(0),
],
q(mot) => [
- q(1136),
+ q(1137),
q(0),
],
q(mou) => [
- q(4450),
+ q(4443),
q(0),
],
q(mov) => [
- q(4451),
+ q(4444),
q(0),
],
q(mow) => [
- q(4452),
+ q(4445),
q(0),
],
q(mox) => [
- q(4453),
+ q(4446),
q(0),
],
q(moy) => [
- q(4454),
+ q(4447),
q(0),
],
q(moz) => [
- q(4455),
+ q(4448),
q(0),
],
q(mpa) => [
- q(4456),
+ q(4449),
q(0),
],
q(mpb) => [
- q(4457),
+ q(4450),
q(0),
],
q(mpc) => [
- q(4458),
+ q(4451),
q(0),
],
q(mpd) => [
- q(4459),
+ q(4452),
q(0),
],
q(mpe) => [
- q(4460),
+ q(4453),
q(0),
],
q(mpg) => [
- q(4461),
+ q(4454),
q(0),
],
q(mph) => [
- q(4462),
+ q(4455),
q(0),
],
q(mpi) => [
- q(4463),
+ q(4456),
q(0),
],
q(mpj) => [
- q(4464),
+ q(4457),
q(0),
],
q(mpk) => [
- q(4465),
+ q(4458),
q(0),
],
q(mpl) => [
- q(4466),
+ q(4459),
q(0),
],
q(mpm) => [
- q(4467),
+ q(4460),
q(0),
],
q(mpn) => [
- q(4468),
+ q(4461),
q(0),
],
q(mpo) => [
- q(4469),
+ q(4462),
q(0),
],
q(mpp) => [
- q(4470),
+ q(4463),
q(0),
],
q(mpq) => [
- q(4471),
+ q(4464),
q(0),
],
q(mpr) => [
- q(4472),
+ q(4465),
q(0),
],
q(mps) => [
- q(4473),
+ q(4466),
q(0),
],
q(mpt) => [
- q(4474),
+ q(4467),
q(0),
],
q(mpu) => [
- q(4475),
+ q(4468),
q(0),
],
q(mpv) => [
- q(4476),
+ q(4469),
q(0),
],
q(mpw) => [
- q(4477),
+ q(4470),
q(0),
],
q(mpx) => [
- q(4478),
+ q(4471),
q(0),
],
q(mpy) => [
- q(4479),
+ q(4472),
q(0),
],
q(mpz) => [
- q(4480),
+ q(4473),
q(0),
],
q(mqa) => [
- q(4481),
+ q(4474),
q(0),
],
q(mqb) => [
- q(4482),
+ q(4475),
q(0),
],
q(mqc) => [
- q(4483),
+ q(4476),
q(0),
],
q(mqe) => [
- q(4484),
+ q(4477),
q(0),
],
q(mqf) => [
- q(4485),
+ q(4478),
q(0),
],
q(mqg) => [
- q(4486),
+ q(4479),
q(0),
],
q(mqh) => [
- q(4487),
+ q(4480),
q(0),
],
q(mqi) => [
- q(4488),
+ q(4481),
q(0),
],
q(mqj) => [
- q(4489),
+ q(4482),
q(0),
],
q(mqk) => [
- q(4490),
+ q(4483),
q(0),
],
q(mql) => [
- q(4491),
+ q(4484),
q(0),
],
q(mqm) => [
- q(4492),
+ q(4485),
q(0),
],
q(mqn) => [
- q(4493),
+ q(4486),
q(0),
],
q(mqo) => [
- q(4494),
+ q(4487),
q(0),
],
q(mqp) => [
- q(4495),
+ q(4488),
q(0),
],
q(mqq) => [
- q(4496),
+ q(4489),
q(0),
],
q(mqr) => [
- q(4497),
+ q(4490),
q(0),
],
q(mqs) => [
- q(4498),
+ q(4491),
q(0),
],
q(mqt) => [
- q(4499),
+ q(4492),
q(0),
],
q(mqu) => [
- q(4500),
+ q(4493),
q(0),
],
q(mqv) => [
- q(4501),
+ q(4494),
q(0),
],
q(mqw) => [
- q(4502),
+ q(4495),
q(0),
],
q(mqx) => [
- q(4503),
+ q(4496),
q(0),
],
q(mqy) => [
- q(4504),
+ q(4497),
q(0),
],
q(mqz) => [
- q(4505),
+ q(4498),
q(0),
],
q(mra) => [
- q(4506),
+ q(4499),
q(0),
],
q(mrb) => [
- q(4507),
+ q(4500),
q(0),
],
q(mrc) => [
- q(4508),
+ q(4501),
q(0),
],
q(mrd) => [
- q(4509),
+ q(4502),
q(0),
],
q(mre) => [
- q(4510),
+ q(4503),
q(0),
],
q(mrf) => [
- q(4511),
+ q(4504),
q(0),
],
q(mrg) => [
- q(4512),
+ q(4505),
q(0),
],
q(mrh) => [
- q(4513),
+ q(4506),
q(0),
],
q(mrj) => [
- q(4514),
+ q(4507),
q(0),
],
q(mrk) => [
- q(4515),
+ q(4508),
q(0),
],
q(mrl) => [
- q(4516),
+ q(4509),
q(0),
],
q(mrm) => [
- q(4517),
+ q(4510),
q(0),
],
q(mrn) => [
- q(4518),
+ q(4511),
q(0),
],
q(mro) => [
- q(4519),
+ q(4512),
q(0),
],
q(mrp) => [
- q(4520),
+ q(4513),
q(0),
],
q(mrq) => [
- q(4521),
+ q(4514),
q(0),
],
q(mrr) => [
- q(4522),
+ q(4515),
q(0),
],
q(mrs) => [
- q(4523),
+ q(4516),
q(0),
],
q(mrt) => [
- q(4524),
+ q(4517),
q(0),
],
q(mru) => [
- q(4525),
+ q(4518),
q(0),
],
q(mrv) => [
- q(4526),
+ q(4519),
q(0),
],
q(mrw) => [
- q(4527),
+ q(4520),
q(0),
],
q(mrx) => [
- q(4528),
+ q(4521),
q(0),
],
q(mry) => [
- q(4529),
+ q(4522),
q(0),
],
q(mrz) => [
- q(4530),
+ q(4523),
q(0),
],
q(msb) => [
- q(4531),
+ q(4524),
q(0),
],
q(msc) => [
- q(4532),
+ q(4525),
q(0),
],
q(msd) => [
- q(4533),
+ q(4526),
q(0),
],
q(mse) => [
- q(4534),
+ q(4527),
q(0),
],
q(msf) => [
- q(4535),
+ q(4528),
q(0),
],
q(msg) => [
- q(4536),
+ q(4529),
q(0),
],
q(msh) => [
- q(4537),
+ q(4530),
q(0),
],
q(msi) => [
- q(4538),
+ q(4531),
q(0),
],
q(msj) => [
- q(4539),
+ q(4532),
q(0),
],
q(msk) => [
- q(4540),
+ q(4533),
q(0),
],
q(msl) => [
- q(4541),
+ q(4534),
q(0),
],
q(msm) => [
- q(4542),
+ q(4535),
q(0),
],
q(msn) => [
- q(4543),
+ q(4536),
q(0),
],
q(mso) => [
- q(4544),
+ q(4537),
q(0),
],
q(msp) => [
- q(4545),
+ q(4538),
q(0),
],
q(msq) => [
- q(4546),
+ q(4539),
q(0),
],
q(msr) => [
- q(4547),
+ q(4540),
q(0),
],
q(mss) => [
- q(4548),
+ q(4541),
q(0),
],
q(msu) => [
- q(4549),
+ q(4542),
q(0),
],
q(msv) => [
- q(4550),
+ q(4543),
q(0),
],
q(msw) => [
- q(4551),
+ q(4544),
q(0),
],
q(msx) => [
- q(4552),
+ q(4545),
q(0),
],
q(msy) => [
- q(4553),
+ q(4546),
q(0),
],
q(msz) => [
- q(4554),
+ q(4547),
q(0),
],
q(mta) => [
- q(4555),
+ q(4548),
q(0),
],
q(mtb) => [
- q(4556),
+ q(4549),
q(0),
],
q(mtc) => [
- q(4557),
+ q(4550),
q(0),
],
q(mtd) => [
- q(4558),
+ q(4551),
q(0),
],
q(mte) => [
- q(4559),
+ q(4552),
q(0),
],
q(mtf) => [
- q(4560),
+ q(4553),
q(0),
],
q(mtg) => [
- q(4561),
+ q(4554),
q(0),
],
q(mth) => [
- q(4562),
+ q(4555),
q(0),
],
q(mti) => [
- q(4563),
+ q(4556),
q(0),
],
q(mtj) => [
- q(4564),
+ q(4557),
q(0),
],
q(mtk) => [
- q(4565),
+ q(4558),
q(0),
],
q(mtl) => [
- q(4566),
+ q(4559),
q(0),
],
q(mtm) => [
- q(4567),
+ q(4560),
q(0),
],
q(mtn) => [
- q(4568),
+ q(4561),
q(0),
],
q(mto) => [
- q(4569),
+ q(4562),
q(0),
],
q(mtp) => [
- q(4570),
+ q(4563),
q(0),
],
q(mtq) => [
- q(4571),
+ q(4564),
q(0),
],
q(mtr) => [
- q(4572),
+ q(4565),
q(0),
],
q(mts) => [
- q(4573),
+ q(4566),
q(0),
],
q(mtt) => [
- q(4574),
+ q(4567),
q(0),
],
q(mtu) => [
- q(4575),
+ q(4568),
q(0),
],
q(mtv) => [
- q(4576),
+ q(4569),
q(0),
],
q(mtw) => [
- q(4577),
+ q(4570),
q(0),
],
q(mtx) => [
- q(4578),
+ q(4571),
q(0),
],
q(mty) => [
- q(4579),
+ q(4572),
q(0),
],
q(mua) => [
- q(4580),
+ q(4573),
q(0),
],
q(mub) => [
- q(4581),
+ q(4574),
q(0),
],
q(muc) => [
- q(4582),
+ q(4575),
q(0),
],
q(mud) => [
- q(4583),
+ q(4576),
q(0),
],
q(mue) => [
- q(4584),
+ q(4577),
q(0),
],
q(mug) => [
- q(4585),
+ q(4578),
q(0),
],
q(muh) => [
- q(4586),
+ q(4579),
q(0),
],
q(mui) => [
- q(4587),
+ q(4580),
q(0),
],
q(muj) => [
- q(4588),
+ q(4581),
q(0),
],
q(muk) => [
- q(4589),
+ q(4582),
q(0),
],
q(mul) => [
- q(0291),
+ q(0292),
q(0),
],
q(mum) => [
- q(4590),
+ q(4583),
q(0),
],
q(mun) => [
- q(0292),
+ q(0293),
q(0),
],
q(muo) => [
- q(4591),
+ q(4584),
q(0),
],
q(mup) => [
- q(4592),
+ q(4585),
q(0),
],
q(muq) => [
- q(4593),
+ q(4586),
q(0),
],
q(mur) => [
- q(4594),
+ q(4587),
q(0),
],
q(mus) => [
- q(0293),
+ q(0294),
q(0),
],
q(mut) => [
- q(4595),
+ q(4588),
q(0),
],
q(muu) => [
- q(4596),
+ q(4589),
q(0),
],
q(muv) => [
- q(4597),
+ q(4590),
q(0),
],
q(mux) => [
- q(4598),
+ q(4591),
q(0),
],
q(muy) => [
- q(4599),
+ q(4592),
q(0),
],
q(muz) => [
- q(4600),
+ q(4593),
q(0),
],
q(mva) => [
- q(4601),
+ q(4594),
q(0),
],
q(mvb) => [
- q(4602),
+ q(4595),
q(0),
],
q(mvd) => [
- q(4603),
+ q(4596),
q(0),
],
q(mve) => [
- q(4604),
+ q(4597),
q(0),
],
q(mvf) => [
- q(4605),
+ q(4598),
q(0),
],
q(mvg) => [
- q(4606),
+ q(4599),
q(0),
],
q(mvh) => [
- q(4607),
+ q(4600),
q(0),
],
q(mvi) => [
- q(4608),
+ q(4601),
q(0),
],
q(mvk) => [
- q(4609),
+ q(4602),
q(0),
],
q(mvl) => [
- q(4610),
+ q(4603),
q(0),
],
q(mvm) => [
- q(4611),
+ q(4604),
q(0),
],
q(mvn) => [
- q(4612),
+ q(4605),
q(0),
],
q(mvo) => [
- q(4613),
+ q(4606),
q(0),
],
q(mvp) => [
- q(4614),
+ q(4607),
q(0),
],
q(mvq) => [
- q(4615),
+ q(4608),
q(0),
],
q(mvr) => [
- q(4616),
+ q(4609),
q(0),
],
q(mvs) => [
- q(4617),
+ q(4610),
q(0),
],
q(mvt) => [
- q(4618),
+ q(4611),
q(0),
],
q(mvu) => [
- q(4619),
+ q(4612),
q(0),
],
q(mvv) => [
- q(4620),
+ q(4613),
q(0),
],
q(mvw) => [
- q(4621),
+ q(4614),
q(0),
],
q(mvx) => [
- q(4622),
+ q(4615),
q(0),
],
q(mvy) => [
- q(4623),
+ q(4616),
q(0),
],
q(mvz) => [
- q(4624),
+ q(4617),
q(0),
],
q(mwa) => [
- q(4625),
+ q(4618),
q(0),
],
q(mwb) => [
- q(4626),
+ q(4619),
q(0),
],
q(mwc) => [
- q(4627),
+ q(4620),
q(0),
],
q(mwe) => [
- q(4628),
+ q(4621),
q(0),
],
q(mwf) => [
- q(4629),
+ q(4622),
q(0),
],
q(mwg) => [
- q(4630),
+ q(4623),
q(0),
],
q(mwh) => [
- q(4631),
+ q(4624),
q(0),
],
q(mwi) => [
- q(4632),
+ q(4625),
q(0),
],
q(mwk) => [
- q(4633),
+ q(4626),
q(0),
],
q(mwl) => [
- q(0294),
+ q(0295),
q(0),
],
q(mwm) => [
- q(4634),
+ q(4627),
q(0),
],
q(mwn) => [
- q(4635),
+ q(4628),
q(0),
],
q(mwo) => [
- q(4636),
+ q(4629),
q(0),
],
q(mwp) => [
- q(4637),
+ q(4630),
q(0),
],
q(mwq) => [
- q(4638),
+ q(4631),
q(0),
],
q(mwr) => [
- q(0295),
+ q(0296),
q(0),
],
q(mws) => [
- q(4639),
+ q(4632),
q(0),
],
q(mwt) => [
- q(4640),
+ q(4633),
q(0),
],
q(mwu) => [
- q(4641),
+ q(4634),
q(0),
],
q(mwv) => [
- q(4642),
+ q(4635),
q(0),
],
q(mww) => [
- q(4643),
+ q(4636),
q(0),
],
q(mwx) => [
- q(4644),
+ q(4637),
q(0),
],
q(mwy) => [
- q(4645),
+ q(4638),
q(0),
],
q(mwz) => [
- q(4646),
+ q(4639),
q(0),
],
q(mxa) => [
- q(4647),
+ q(4640),
q(0),
],
q(mxb) => [
- q(4648),
+ q(4641),
q(0),
],
q(mxc) => [
- q(4649),
+ q(4642),
q(0),
],
q(mxd) => [
- q(4650),
+ q(4643),
q(0),
],
q(mxe) => [
- q(4651),
+ q(4644),
q(0),
],
q(mxf) => [
- q(4652),
+ q(4645),
q(0),
],
q(mxg) => [
- q(4653),
+ q(4646),
q(0),
],
q(mxh) => [
- q(4654),
+ q(4647),
q(0),
],
q(mxi) => [
- q(4655),
+ q(4648),
q(0),
],
q(mxj) => [
- q(4656),
+ q(4649),
q(0),
],
q(mxk) => [
- q(4657),
+ q(4650),
q(0),
],
q(mxl) => [
- q(4658),
+ q(4651),
q(0),
],
q(mxm) => [
- q(4659),
+ q(4652),
q(0),
],
q(mxn) => [
- q(4660),
+ q(4653),
q(0),
],
q(mxo) => [
- q(4661),
+ q(4654),
q(0),
],
q(mxp) => [
- q(4662),
+ q(4655),
q(0),
],
q(mxq) => [
- q(4663),
+ q(4656),
q(0),
],
q(mxr) => [
- q(4664),
+ q(4657),
q(0),
],
q(mxs) => [
- q(4665),
+ q(4658),
q(0),
],
q(mxt) => [
- q(4666),
+ q(4659),
q(0),
],
q(mxu) => [
- q(4667),
+ q(4660),
q(0),
],
q(mxv) => [
- q(4668),
+ q(4661),
q(0),
],
q(mxw) => [
- q(4669),
+ q(4662),
q(0),
],
q(mxx) => [
- q(4670),
+ q(4663),
q(0),
],
q(mxy) => [
- q(4671),
+ q(4664),
q(0),
],
q(mxz) => [
- q(4672),
+ q(4665),
q(0),
],
q(myb) => [
- q(4673),
+ q(4666),
q(0),
],
q(myc) => [
- q(4674),
+ q(4667),
q(0),
],
q(myd) => [
- q(4675),
+ q(4668),
q(0),
],
q(mye) => [
- q(4676),
+ q(4669),
q(0),
],
q(myf) => [
- q(4677),
+ q(4670),
q(0),
],
q(myg) => [
- q(4678),
+ q(4671),
q(0),
],
q(myh) => [
- q(4679),
+ q(4672),
q(0),
],
q(myi) => [
- q(4680),
+ q(4673),
q(0),
],
q(myj) => [
- q(4681),
+ q(4674),
q(0),
],
q(myk) => [
- q(4682),
+ q(4675),
q(0),
],
q(myl) => [
- q(4683),
+ q(4676),
q(0),
],
q(mym) => [
- q(4684),
+ q(4677),
q(0),
],
q(myn) => [
- q(0296),
+ q(0297),
q(0),
],
q(myo) => [
- q(4685),
+ q(4678),
q(0),
],
q(myp) => [
- q(4686),
+ q(4679),
q(0),
],
q(myr) => [
- q(4687),
+ q(4680),
q(0),
],
q(mys) => [
- q(4688),
+ q(4681),
q(0),
],
q(myu) => [
- q(4689),
+ q(4682),
q(0),
],
q(myv) => [
- q(0297),
+ q(0298),
q(0),
],
q(myw) => [
- q(4690),
+ q(4683),
q(0),
],
q(myx) => [
- q(4691),
+ q(4684),
q(0),
],
q(myy) => [
- q(4692),
+ q(4685),
q(0),
],
q(myz) => [
- q(4693),
+ q(4686),
q(0),
],
q(mza) => [
- q(4694),
+ q(4687),
q(0),
],
q(mzb) => [
- q(4695),
+ q(4688),
q(0),
],
q(mzc) => [
- q(4696),
+ q(4689),
q(0),
],
q(mzd) => [
- q(4697),
+ q(4690),
q(0),
],
q(mze) => [
- q(4698),
+ q(4691),
q(0),
],
q(mzg) => [
- q(4699),
+ q(4692),
q(0),
],
q(mzh) => [
- q(4700),
+ q(4693),
q(0),
],
q(mzi) => [
- q(4701),
+ q(4694),
q(0),
],
q(mzj) => [
- q(4702),
+ q(4695),
q(0),
],
q(mzk) => [
- q(4703),
+ q(4696),
q(0),
],
q(mzl) => [
- q(4704),
+ q(4697),
q(0),
],
q(mzm) => [
- q(4705),
+ q(4698),
q(0),
],
q(mzn) => [
- q(4706),
+ q(4699),
q(0),
],
q(mzo) => [
- q(4707),
+ q(4700),
q(0),
],
q(mzp) => [
- q(4708),
+ q(4701),
q(0),
],
q(mzq) => [
- q(4709),
+ q(4702),
q(0),
],
q(mzr) => [
- q(4710),
+ q(4703),
q(0),
],
q(mzs) => [
- q(4711),
+ q(4704),
q(0),
],
q(mzt) => [
- q(4712),
+ q(4705),
q(0),
],
q(mzu) => [
- q(4713),
+ q(4706),
q(0),
],
q(mzv) => [
- q(4714),
+ q(4707),
q(0),
],
q(mzw) => [
- q(4715),
+ q(4708),
q(0),
],
q(mzx) => [
- q(4716),
+ q(4709),
q(0),
],
q(mzy) => [
- q(4717),
+ q(4710),
q(0),
],
q(mzz) => [
- q(4718),
+ q(4711),
q(0),
],
q(naa) => [
- q(4719),
+ q(4712),
q(0),
],
q(nab) => [
- q(4720),
+ q(4713),
q(0),
],
q(nac) => [
- q(4721),
- q(0),
- ],
- q(nad) => [
- q(4722),
+ q(4714),
q(0),
],
q(nae) => [
- q(4723),
+ q(4715),
q(0),
],
q(naf) => [
- q(4724),
+ q(4716),
q(0),
],
q(nag) => [
- q(4725),
+ q(4717),
q(0),
],
q(nah) => [
- q(0298),
+ q(0299),
q(0),
],
q(nai) => [
- q(0299),
+ q(0300),
q(0),
],
q(naj) => [
- q(4726),
+ q(4718),
q(0),
],
q(nak) => [
- q(4727),
+ q(4719),
q(0),
],
q(nal) => [
- q(4728),
+ q(4720),
q(0),
],
q(nam) => [
- q(4729),
+ q(4721),
q(0),
],
q(nan) => [
- q(4730),
+ q(4722),
q(0),
],
q(nao) => [
- q(4731),
+ q(4723),
q(0),
],
q(nap) => [
- q(0300),
+ q(0301),
q(0),
],
q(naq) => [
- q(4732),
+ q(4724),
q(0),
],
q(nar) => [
- q(4733),
+ q(4725),
q(0),
],
q(nas) => [
- q(4734),
+ q(4726),
q(0),
],
q(nat) => [
- q(4735),
+ q(4727),
q(0),
],
q(nau) => [
- q(0301),
+ q(0302),
q(0),
],
q(nav) => [
- q(0302),
+ q(0303),
q(0),
],
q(naw) => [
- q(4736),
+ q(4728),
q(0),
],
q(nax) => [
- q(4737),
+ q(4729),
q(0),
],
q(nay) => [
- q(4738),
+ q(4730),
q(0),
],
q(naz) => [
- q(4739),
+ q(4731),
q(0),
],
q(nba) => [
- q(4740),
+ q(4732),
q(0),
],
q(nbb) => [
- q(4741),
+ q(4733),
q(0),
],
q(nbc) => [
- q(4742),
+ q(4734),
q(0),
],
q(nbd) => [
- q(4743),
+ q(4735),
q(0),
],
q(nbe) => [
- q(4744),
+ q(4736),
q(0),
],
q(nbg) => [
- q(4745),
+ q(4737),
q(0),
],
q(nbh) => [
- q(4746),
+ q(4738),
q(0),
],
q(nbi) => [
- q(4747),
+ q(4739),
q(0),
],
q(nbj) => [
- q(4748),
+ q(4740),
q(0),
],
q(nbk) => [
- q(4749),
+ q(4741),
q(0),
],
q(nbl) => [
- q(0303),
+ q(0304),
q(0),
],
q(nbm) => [
- q(4750),
+ q(4742),
q(0),
],
q(nbn) => [
- q(4751),
+ q(4743),
q(0),
],
q(nbo) => [
- q(4752),
+ q(4744),
q(0),
],
q(nbp) => [
- q(4753),
+ q(4745),
q(0),
],
q(nbq) => [
- q(4754),
+ q(4746),
q(0),
],
q(nbr) => [
- q(4755),
+ q(4747),
q(0),
],
q(nbs) => [
- q(4756),
+ q(4748),
q(0),
],
q(nbt) => [
- q(4757),
+ q(4749),
q(0),
],
q(nbu) => [
- q(4758),
+ q(4750),
q(0),
],
q(nbv) => [
- q(4759),
+ q(4751),
q(0),
],
q(nbw) => [
- q(4760),
+ q(4752),
q(0),
],
q(nby) => [
- q(4761),
+ q(4753),
q(0),
],
q(nca) => [
- q(4762),
+ q(4754),
q(0),
],
q(ncb) => [
- q(4763),
+ q(4755),
q(0),
],
q(ncc) => [
- q(4764),
+ q(4756),
q(0),
],
q(ncd) => [
- q(4765),
+ q(4757),
q(0),
],
q(nce) => [
- q(4766),
+ q(4758),
q(0),
],
q(ncf) => [
- q(4767),
+ q(4759),
q(0),
],
q(ncg) => [
- q(4768),
+ q(4760),
q(0),
],
q(nch) => [
- q(4769),
+ q(4761),
q(0),
],
q(nci) => [
- q(4770),
+ q(4762),
q(0),
],
q(ncj) => [
- q(4771),
+ q(4763),
q(0),
],
q(nck) => [
- q(4772),
+ q(4764),
q(0),
],
q(ncl) => [
- q(4773),
+ q(4765),
q(0),
],
q(ncm) => [
- q(4774),
+ q(4766),
q(0),
],
q(ncn) => [
- q(4775),
+ q(4767),
q(0),
],
q(nco) => [
- q(4776),
+ q(4768),
q(0),
],
q(ncp) => [
- q(4777),
+ q(4769),
+ q(0),
+ ],
+ q(ncq) => [
+ q(4770),
q(0),
],
q(ncr) => [
- q(4778),
+ q(4771),
q(0),
],
q(ncs) => [
- q(4779),
+ q(4772),
q(0),
],
q(nct) => [
- q(4780),
+ q(4773),
q(0),
],
q(ncu) => [
- q(4781),
+ q(4774),
q(0),
],
q(ncx) => [
- q(4782),
+ q(4775),
q(0),
],
q(ncz) => [
- q(4783),
+ q(4776),
q(0),
],
q(nda) => [
- q(4784),
+ q(4777),
q(0),
],
q(ndb) => [
- q(4785),
+ q(4778),
q(0),
],
q(ndc) => [
- q(4786),
+ q(4779),
q(0),
],
q(ndd) => [
- q(4787),
+ q(4780),
q(0),
],
q(nde) => [
- q(0304),
+ q(0305),
q(0),
],
q(ndf) => [
- q(4788),
+ q(4781),
q(0),
],
q(ndg) => [
- q(4789),
+ q(4782),
q(0),
],
q(ndh) => [
- q(4790),
+ q(4783),
q(0),
],
q(ndi) => [
- q(4791),
+ q(4784),
q(0),
],
q(ndj) => [
- q(4792),
+ q(4785),
q(0),
],
q(ndk) => [
- q(4793),
+ q(4786),
q(0),
],
q(ndl) => [
- q(4794),
+ q(4787),
q(0),
],
q(ndm) => [
- q(4795),
+ q(4788),
q(0),
],
q(ndn) => [
- q(4796),
+ q(4789),
q(0),
],
q(ndo) => [
- q(0305),
+ q(0306),
q(0),
],
q(ndp) => [
- q(4797),
+ q(4790),
q(0),
],
q(ndq) => [
- q(4798),
+ q(4791),
q(0),
],
q(ndr) => [
- q(4799),
+ q(4792),
q(0),
],
q(nds) => [
- q(0306),
+ q(0307),
q(0),
],
q(ndt) => [
- q(4800),
+ q(4793),
q(0),
],
q(ndu) => [
- q(4801),
+ q(4794),
q(0),
],
q(ndv) => [
- q(4802),
+ q(4795),
q(0),
],
q(ndw) => [
- q(4803),
+ q(4796),
q(0),
],
q(ndx) => [
- q(4804),
+ q(4797),
q(0),
],
q(ndy) => [
- q(4805),
+ q(4798),
q(0),
],
q(ndz) => [
- q(4806),
+ q(4799),
q(0),
],
q(nea) => [
- q(4807),
+ q(4800),
q(0),
],
q(neb) => [
- q(4808),
+ q(4801),
q(0),
],
q(nec) => [
- q(4809),
+ q(4802),
q(0),
],
q(ned) => [
- q(4810),
+ q(4803),
q(0),
],
q(nee) => [
- q(4811),
+ q(4804),
q(0),
],
q(nef) => [
- q(4812),
+ q(4805),
q(0),
],
q(neg) => [
- q(4813),
+ q(4806),
q(0),
],
q(neh) => [
- q(4814),
+ q(4807),
q(0),
],
q(nei) => [
- q(4815),
+ q(4808),
q(0),
],
q(nej) => [
- q(4816),
+ q(4809),
q(0),
],
q(nek) => [
- q(4817),
+ q(4810),
q(0),
],
q(nem) => [
- q(4818),
+ q(4811),
q(0),
],
q(nen) => [
- q(4819),
+ q(4812),
q(0),
],
q(neo) => [
- q(4820),
+ q(4813),
q(0),
],
q(nep) => [
- q(0307),
+ q(0308),
q(0),
],
q(neq) => [
- q(4821),
+ q(4814),
q(0),
],
q(ner) => [
- q(4822),
+ q(4815),
q(0),
],
q(nes) => [
- q(4823),
+ q(4816),
q(0),
],
q(net) => [
- q(4824),
+ q(4817),
q(0),
],
q(neu) => [
- q(4825),
+ q(4818),
q(0),
],
q(nev) => [
- q(4826),
+ q(4819),
q(0),
],
q(new) => [
- q(0308),
+ q(0309),
q(1),
],
q(nex) => [
- q(4827),
+ q(4820),
q(0),
],
q(ney) => [
- q(4828),
+ q(4821),
q(0),
],
q(nez) => [
- q(4829),
+ q(4822),
q(0),
],
q(nfa) => [
- q(4830),
+ q(4823),
q(0),
],
q(nfd) => [
- q(4831),
+ q(4824),
q(0),
],
q(nfl) => [
- q(4832),
+ q(4825),
q(0),
],
q(nfr) => [
- q(4833),
+ q(4826),
q(0),
],
q(nfu) => [
- q(4834),
+ q(4827),
q(0),
],
q(nga) => [
- q(4835),
+ q(4828),
q(0),
],
q(ngb) => [
- q(4836),
+ q(4829),
q(0),
],
q(ngc) => [
- q(4837),
+ q(4830),
q(0),
],
q(ngd) => [
- q(4838),
+ q(4831),
q(0),
],
q(nge) => [
- q(4839),
+ q(4832),
q(0),
],
q(ngf) => [
- q(0516),
+ q(0517),
q(0),
],
q(ngg) => [
- q(4840),
+ q(4833),
q(0),
],
q(ngh) => [
- q(4841),
+ q(4834),
q(0),
],
q(ngi) => [
- q(4842),
+ q(4835),
q(0),
],
q(ngj) => [
- q(4843),
+ q(4836),
q(0),
],
q(ngk) => [
- q(4844),
+ q(4837),
q(0),
],
q(ngl) => [
- q(4845),
+ q(4838),
q(0),
],
q(ngm) => [
- q(4846),
+ q(4839),
q(0),
],
q(ngn) => [
- q(4847),
+ q(4840),
q(0),
],
q(ngo) => [
- q(4848),
+ q(4841),
q(0),
],
q(ngp) => [
- q(4849),
+ q(4842),
q(0),
],
q(ngq) => [
- q(4850),
+ q(4843),
q(0),
],
q(ngr) => [
- q(4851),
+ q(4844),
q(0),
],
q(ngs) => [
- q(4852),
+ q(4845),
q(0),
],
q(ngt) => [
- q(4853),
+ q(4846),
q(0),
],
q(ngu) => [
- q(4854),
+ q(4847),
q(0),
],
q(ngv) => [
- q(4855),
+ q(4848),
q(0),
],
q(ngw) => [
- q(4856),
+ q(4849),
q(0),
],
q(ngx) => [
- q(4857),
+ q(4850),
q(0),
],
q(ngy) => [
- q(4858),
+ q(4851),
q(0),
],
q(ngz) => [
- q(4859),
+ q(4852),
q(0),
],
q(nha) => [
- q(4860),
+ q(4853),
q(0),
],
q(nhb) => [
- q(4861),
+ q(4854),
q(0),
],
q(nhc) => [
- q(4862),
+ q(4855),
q(0),
],
q(nhd) => [
- q(4863),
+ q(4856),
q(0),
],
q(nhe) => [
- q(4864),
+ q(4857),
q(0),
],
q(nhf) => [
- q(4865),
+ q(4858),
q(0),
],
q(nhg) => [
- q(4866),
+ q(4859),
q(0),
],
q(nhh) => [
- q(4867),
+ q(4860),
q(0),
],
q(nhi) => [
- q(4868),
+ q(4861),
q(0),
],
q(nhk) => [
- q(4869),
+ q(4862),
q(0),
],
q(nhm) => [
- q(4870),
+ q(4863),
q(0),
],
q(nhn) => [
- q(4871),
+ q(4864),
q(0),
],
q(nho) => [
- q(4872),
+ q(4865),
q(0),
],
q(nhp) => [
- q(4873),
+ q(4866),
q(0),
],
q(nhq) => [
- q(4874),
+ q(4867),
q(0),
],
q(nhr) => [
- q(4875),
+ q(4868),
q(0),
],
q(nht) => [
- q(4876),
+ q(4869),
q(0),
],
q(nhu) => [
- q(4877),
+ q(4870),
q(0),
],
q(nhv) => [
- q(4878),
+ q(4871),
q(0),
],
q(nhw) => [
- q(4879),
+ q(4872),
q(0),
],
q(nhx) => [
- q(4880),
+ q(4873),
q(0),
],
q(nhy) => [
- q(4881),
+ q(4874),
q(0),
],
q(nhz) => [
- q(4882),
+ q(4875),
q(0),
],
q(nia) => [
- q(0309),
+ q(0310),
q(0),
],
q(nib) => [
- q(4883),
+ q(4876),
q(0),
],
q(nic) => [
- q(0310),
+ q(0311),
q(0),
],
q(nid) => [
- q(4884),
+ q(4877),
q(0),
],
q(nie) => [
- q(4885),
+ q(4878),
q(0),
],
q(nif) => [
- q(4886),
+ q(4879),
q(0),
],
q(nig) => [
- q(4887),
+ q(4880),
q(0),
],
q(nih) => [
- q(4888),
+ q(4881),
q(0),
],
q(nii) => [
- q(4889),
+ q(4882),
q(0),
],
q(nij) => [
- q(4890),
+ q(4883),
q(0),
],
q(nik) => [
- q(4891),
+ q(4884),
q(0),
],
q(nil) => [
- q(4892),
+ q(4885),
q(0),
],
q(nim) => [
- q(4893),
+ q(4886),
q(0),
],
q(nin) => [
- q(4894),
+ q(4887),
q(0),
],
q(nio) => [
- q(4895),
+ q(4888),
q(0),
],
q(niq) => [
- q(4896),
+ q(4889),
q(0),
],
q(nir) => [
- q(4897),
+ q(4890),
q(0),
],
q(nis) => [
- q(4898),
+ q(4891),
q(0),
],
q(nit) => [
- q(4899),
+ q(4892),
q(0),
],
q(niu) => [
- q(0311),
+ q(0312),
q(0),
],
q(niv) => [
- q(4900),
+ q(4893),
q(0),
],
q(niw) => [
- q(4901),
+ q(4894),
q(0),
],
q(nix) => [
- q(4902),
+ q(4895),
q(0),
],
q(niy) => [
- q(4903),
+ q(4896),
q(0),
],
q(niz) => [
- q(4904),
+ q(4897),
q(0),
],
q(nja) => [
- q(4905),
+ q(4898),
q(0),
],
q(njb) => [
- q(4906),
+ q(4899),
q(0),
],
q(njd) => [
- q(4907),
+ q(4900),
q(0),
],
q(njh) => [
- q(4908),
+ q(4901),
q(0),
],
q(nji) => [
- q(4909),
+ q(4902),
q(0),
],
q(njj) => [
- q(4910),
+ q(4903),
q(0),
],
q(njl) => [
- q(4911),
+ q(4904),
q(0),
],
q(njm) => [
- q(4912),
+ q(4905),
q(0),
],
q(njn) => [
- q(4913),
+ q(4906),
q(0),
],
q(njo) => [
- q(4914),
+ q(4907),
q(0),
],
q(njr) => [
- q(4915),
+ q(4908),
q(0),
],
q(njs) => [
- q(4916),
+ q(4909),
q(0),
],
q(njt) => [
- q(4917),
+ q(4910),
q(0),
],
q(nju) => [
- q(4918),
+ q(4911),
q(0),
],
q(njx) => [
- q(4919),
+ q(4912),
q(0),
],
q(njy) => [
- q(4920),
+ q(4913),
q(0),
],
q(njz) => [
- q(4921),
+ q(4914),
q(0),
],
q(nka) => [
- q(4922),
+ q(4915),
q(0),
],
q(nkb) => [
- q(4923),
+ q(4916),
q(0),
],
q(nkc) => [
- q(4924),
+ q(4917),
q(0),
],
q(nkd) => [
- q(4925),
+ q(4918),
q(0),
],
q(nke) => [
- q(4926),
+ q(4919),
q(0),
],
q(nkf) => [
- q(4927),
+ q(4920),
q(0),
],
q(nkg) => [
- q(4928),
+ q(4921),
q(0),
],
q(nkh) => [
- q(4929),
+ q(4922),
q(0),
],
q(nki) => [
- q(4930),
+ q(4923),
q(0),
],
q(nkj) => [
- q(4931),
+ q(4924),
q(0),
],
q(nkk) => [
- q(4932),
+ q(4925),
q(0),
],
q(nkm) => [
- q(4933),
+ q(4926),
q(0),
],
q(nkn) => [
- q(4934),
+ q(4927),
q(0),
],
q(nko) => [
- q(4935),
+ q(4928),
q(0),
],
q(nkp) => [
- q(4936),
+ q(4929),
q(0),
],
q(nkq) => [
- q(4937),
+ q(4930),
q(0),
],
q(nkr) => [
- q(4938),
+ q(4931),
q(0),
],
q(nks) => [
- q(4939),
+ q(4932),
q(0),
],
q(nkt) => [
- q(4940),
+ q(4933),
q(0),
],
q(nku) => [
- q(4941),
+ q(4934),
q(0),
],
q(nkv) => [
- q(4942),
+ q(4935),
q(0),
],
q(nkw) => [
- q(4943),
+ q(4936),
q(0),
],
q(nkx) => [
- q(4944),
+ q(4937),
q(0),
],
q(nkz) => [
- q(4945),
+ q(4938),
q(0),
],
q(nla) => [
- q(4946),
+ q(4939),
q(0),
],
q(nlc) => [
- q(4947),
+ q(4940),
q(0),
],
q(nle) => [
- q(4948),
+ q(4941),
q(0),
],
q(nlg) => [
- q(4949),
+ q(4942),
q(0),
],
q(nli) => [
- q(4950),
+ q(4943),
q(0),
],
q(nlj) => [
- q(4951),
+ q(4944),
q(0),
],
q(nlk) => [
- q(4952),
+ q(4945),
q(0),
],
q(nll) => [
- q(4953),
+ q(4946),
q(0),
],
q(nlo) => [
- q(4954),
+ q(4947),
q(0),
],
q(nlq) => [
- q(4955),
+ q(4948),
q(0),
],
q(nlu) => [
- q(4956),
+ q(4949),
q(0),
],
q(nlv) => [
- q(4957),
+ q(4950),
q(0),
],
q(nlw) => [
- q(4958),
+ q(4951),
q(0),
],
q(nlx) => [
- q(4959),
+ q(4952),
q(0),
],
q(nly) => [
- q(4960),
+ q(4953),
q(0),
],
q(nlz) => [
- q(4961),
+ q(4954),
q(0),
],
q(nma) => [
- q(4962),
+ q(4955),
q(0),
],
q(nmb) => [
- q(4963),
+ q(4956),
q(0),
],
q(nmc) => [
- q(4964),
+ q(4957),
q(0),
],
q(nmd) => [
- q(4965),
+ q(4958),
q(0),
],
q(nme) => [
- q(4966),
+ q(4959),
q(0),
],
q(nmf) => [
- q(4967),
+ q(4960),
q(0),
],
q(nmg) => [
- q(4968),
+ q(4961),
q(0),
],
q(nmh) => [
- q(4969),
+ q(4962),
q(0),
],
q(nmi) => [
- q(4970),
+ q(4963),
q(0),
],
q(nmj) => [
- q(4971),
+ q(4964),
q(0),
],
q(nmk) => [
- q(4972),
+ q(4965),
q(0),
],
q(nml) => [
- q(4973),
+ q(4966),
q(0),
],
q(nmm) => [
- q(4974),
+ q(4967),
q(0),
],
q(nmn) => [
- q(4975),
+ q(4968),
q(0),
],
q(nmo) => [
- q(4976),
+ q(4969),
q(0),
],
q(nmp) => [
- q(4977),
+ q(4970),
q(0),
],
q(nmq) => [
- q(4978),
+ q(4971),
q(0),
],
q(nmr) => [
- q(4979),
+ q(4972),
q(0),
],
q(nms) => [
- q(4980),
+ q(4973),
q(0),
],
q(nmt) => [
- q(4981),
+ q(4974),
q(0),
],
q(nmu) => [
- q(4982),
+ q(4975),
q(0),
],
q(nmv) => [
- q(4983),
+ q(4976),
q(0),
],
q(nmw) => [
- q(4984),
+ q(4977),
q(0),
],
q(nmx) => [
- q(4985),
+ q(4978),
q(0),
],
q(nmy) => [
- q(4986),
+ q(4979),
q(0),
],
q(nmz) => [
- q(4987),
+ q(4980),
q(0),
],
q(nna) => [
- q(4988),
+ q(4981),
q(0),
],
q(nnb) => [
- q(4989),
+ q(4982),
q(0),
],
q(nnc) => [
- q(4990),
+ q(4983),
q(0),
],
q(nnd) => [
- q(4991),
+ q(4984),
q(0),
],
q(nne) => [
- q(4992),
+ q(4985),
q(0),
],
q(nnf) => [
- q(4993),
+ q(4986),
q(0),
],
q(nng) => [
- q(4994),
+ q(4987),
q(0),
],
q(nnh) => [
- q(4995),
+ q(4988),
q(0),
],
q(nni) => [
- q(4996),
+ q(4989),
q(0),
],
q(nnj) => [
- q(4997),
+ q(4990),
q(0),
],
q(nnk) => [
- q(4998),
+ q(4991),
q(0),
],
q(nnl) => [
- q(4999),
+ q(4992),
q(0),
],
q(nnm) => [
- q(5000),
+ q(4993),
q(0),
],
q(nnn) => [
- q(5001),
+ q(4994),
q(0),
],
q(nno) => [
- q(0312),
+ q(0313),
q(0),
],
q(nnp) => [
- q(5002),
+ q(4995),
q(0),
],
q(nnq) => [
- q(5003),
+ q(4996),
q(0),
],
q(nnr) => [
- q(5004),
+ q(4997),
q(0),
],
q(nns) => [
- q(5005),
+ q(4998),
q(0),
],
q(nnt) => [
- q(5006),
+ q(4999),
q(0),
],
q(nnu) => [
- q(5007),
+ q(5000),
q(0),
],
q(nnv) => [
- q(5008),
+ q(5001),
q(0),
],
q(nnw) => [
- q(5009),
+ q(5002),
q(0),
],
q(nny) => [
- q(5010),
+ q(5003),
q(0),
],
q(nnz) => [
- q(5011),
+ q(5004),
q(0),
],
q(noa) => [
- q(5012),
+ q(5005),
q(0),
],
q(nob) => [
- q(0313),
+ q(0314),
q(0),
],
q(noc) => [
- q(5013),
+ q(5006),
q(0),
],
q(nod) => [
- q(5014),
+ q(5007),
q(0),
],
q(noe) => [
- q(5015),
+ q(5008),
q(0),
],
q(nof) => [
- q(5016),
+ q(5009),
q(0),
],
q(nog) => [
- q(0314),
+ q(0315),
q(0),
],
q(noh) => [
- q(5017),
+ q(5010),
q(0),
],
q(noi) => [
- q(5018),
+ q(5011),
q(0),
],
q(noj) => [
- q(5019),
+ q(5012),
q(0),
],
q(nok) => [
- q(5020),
+ q(5013),
q(0),
],
q(nol) => [
- q(5021),
+ q(5014),
q(0),
],
q(nom) => [
- q(5022),
+ q(5015),
q(0),
],
q(non) => [
- q(0315),
+ q(0316),
q(1),
],
q(nop) => [
- q(5023),
+ q(5016),
q(0),
],
q(noq) => [
- q(5024),
+ q(5017),
q(0),
],
q(nor) => [
- q(0316),
+ q(0317),
q(0),
],
q(nos) => [
- q(5025),
+ q(5018),
q(0),
],
q(not) => [
- q(5026),
+ q(5019),
q(0),
],
q(nou) => [
- q(5027),
+ q(5020),
q(0),
],
q(nov) => [
- q(5028),
+ q(5021),
q(0),
],
q(now) => [
- q(5029),
+ q(5022),
q(0),
],
q(noy) => [
- q(5030),
+ q(5023),
q(0),
],
q(noz) => [
- q(5031),
+ q(5024),
q(0),
],
q(npa) => [
- q(5032),
+ q(5025),
q(0),
],
q(npb) => [
- q(5033),
+ q(5026),
q(0),
],
q(npg) => [
- q(5034),
+ q(5027),
q(0),
],
q(nph) => [
- q(5035),
+ q(5028),
q(0),
],
q(npi) => [
- q(5036),
+ q(5029),
q(0),
],
q(npl) => [
- q(5037),
+ q(5030),
q(0),
],
q(npn) => [
- q(5038),
+ q(5031),
q(0),
],
q(npo) => [
- q(5039),
+ q(5032),
q(0),
],
q(nps) => [
- q(5040),
+ q(5033),
q(0),
],
q(npu) => [
- q(5041),
+ q(5034),
+ q(0),
+ ],
+ q(npx) => [
+ q(5035),
q(0),
],
q(npy) => [
- q(5042),
+ q(5036),
q(0),
],
q(nqg) => [
- q(5043),
+ q(5037),
q(0),
],
q(nqk) => [
- q(5044),
+ q(5038),
+ q(0),
+ ],
+ q(nql) => [
+ q(5039),
q(0),
],
q(nqm) => [
- q(5045),
+ q(5040),
q(0),
],
q(nqn) => [
- q(5046),
+ q(5041),
q(0),
],
q(nqo) => [
- q(0317),
+ q(0318),
q(0),
],
q(nqq) => [
- q(5047),
+ q(5042),
q(0),
],
q(nqy) => [
- q(5048),
+ q(5043),
q(0),
],
q(nra) => [
- q(5049),
+ q(5044),
q(0),
],
q(nrb) => [
- q(5050),
+ q(5045),
q(0),
],
q(nrc) => [
- q(5051),
+ q(5046),
q(0),
],
q(nre) => [
- q(5052),
+ q(5047),
q(0),
],
q(nrf) => [
- q(5053),
+ q(5048),
q(0),
],
q(nrg) => [
- q(5054),
+ q(5049),
q(0),
],
q(nri) => [
- q(5055),
+ q(5050),
q(0),
],
q(nrk) => [
- q(5056),
+ q(5051),
q(0),
],
q(nrl) => [
- q(5057),
+ q(5052),
q(0),
],
q(nrm) => [
- q(5058),
+ q(5053),
q(0),
],
q(nrn) => [
- q(5059),
+ q(5054),
q(0),
],
q(nrp) => [
- q(5060),
+ q(5055),
q(0),
],
q(nrr) => [
- q(5061),
+ q(5056),
q(0),
],
q(nrt) => [
- q(5062),
+ q(5057),
q(0),
],
q(nru) => [
- q(5063),
+ q(5058),
q(0),
],
q(nrx) => [
- q(5064),
+ q(5059),
q(0),
],
q(nrz) => [
- q(5065),
+ q(5060),
q(0),
],
q(nsa) => [
- q(5066),
+ q(5061),
q(0),
],
q(nsc) => [
- q(5067),
+ q(5062),
q(0),
],
q(nsd) => [
- q(5068),
+ q(5063),
q(0),
],
q(nse) => [
- q(5069),
+ q(5064),
q(0),
],
q(nsf) => [
- q(5070),
+ q(5065),
q(0),
],
q(nsg) => [
- q(5071),
+ q(5066),
q(0),
],
q(nsh) => [
- q(5072),
+ q(5067),
q(0),
],
q(nsi) => [
- q(5073),
+ q(5068),
q(0),
],
q(nsk) => [
- q(5074),
+ q(5069),
q(0),
],
q(nsl) => [
- q(5075),
+ q(5070),
q(0),
],
q(nsm) => [
- q(5076),
+ q(5071),
q(0),
],
q(nsn) => [
- q(5077),
+ q(5072),
q(0),
],
q(nso) => [
- q(0318),
+ q(0319),
q(0),
],
q(nsp) => [
- q(5078),
+ q(5073),
q(0),
],
q(nsq) => [
- q(5079),
+ q(5074),
q(0),
],
q(nsr) => [
- q(5080),
+ q(5075),
q(0),
],
q(nss) => [
- q(5081),
+ q(5076),
q(0),
],
q(nst) => [
- q(5082),
+ q(5077),
q(0),
],
q(nsu) => [
- q(5083),
+ q(5078),
q(0),
],
q(nsv) => [
- q(5084),
+ q(5079),
q(0),
],
q(nsw) => [
- q(5085),
+ q(5080),
q(0),
],
q(nsx) => [
- q(5086),
+ q(5081),
q(0),
],
q(nsy) => [
- q(5087),
+ q(5082),
q(0),
],
q(nsz) => [
- q(5088),
+ q(5083),
+ q(0),
+ ],
+ q(ntd) => [
+ q(5084),
q(0),
],
q(nte) => [
- q(5089),
+ q(5085),
q(0),
],
q(ntg) => [
- q(5090),
+ q(5086),
q(0),
],
q(nti) => [
- q(5091),
+ q(5087),
q(0),
],
q(ntj) => [
- q(5092),
+ q(5088),
q(0),
],
q(ntk) => [
- q(5093),
+ q(5089),
q(0),
],
q(ntm) => [
- q(5094),
+ q(5090),
q(0),
],
q(nto) => [
- q(5095),
+ q(5091),
q(0),
],
q(ntp) => [
- q(5096),
+ q(5092),
q(0),
],
q(ntr) => [
- q(5097),
- q(0),
- ],
- q(nts) => [
- q(5098),
+ q(5093),
q(0),
],
q(ntu) => [
- q(5099),
+ q(5094),
q(0),
],
q(ntw) => [
- q(5100),
+ q(5095),
q(0),
],
q(ntx) => [
- q(5101),
+ q(5096),
q(0),
],
q(nty) => [
- q(5102),
+ q(5097),
q(0),
],
q(ntz) => [
- q(5103),
+ q(5098),
q(0),
],
q(nua) => [
- q(5104),
+ q(5099),
q(0),
],
q(nub) => [
- q(0319),
+ q(0320),
q(0),
],
q(nuc) => [
- q(5105),
+ q(5100),
q(0),
],
q(nud) => [
- q(5106),
+ q(5101),
q(0),
],
q(nue) => [
- q(5107),
+ q(5102),
q(0),
],
q(nuf) => [
- q(5108),
+ q(5103),
q(0),
],
q(nug) => [
- q(5109),
+ q(5104),
q(0),
],
q(nuh) => [
- q(5110),
+ q(5105),
q(0),
],
q(nui) => [
- q(5111),
+ q(5106),
q(0),
],
q(nuj) => [
- q(5112),
+ q(5107),
q(0),
],
q(nuk) => [
- q(5113),
+ q(5108),
q(0),
],
q(nul) => [
- q(5114),
+ q(5109),
q(0),
],
q(num) => [
- q(5115),
+ q(5110),
q(0),
],
q(nun) => [
- q(5116),
+ q(5111),
q(0),
],
q(nuo) => [
- q(5117),
+ q(5112),
q(0),
],
q(nup) => [
- q(5118),
+ q(5113),
q(0),
],
q(nuq) => [
- q(5119),
+ q(5114),
q(0),
],
q(nur) => [
- q(5120),
+ q(5115),
q(0),
],
q(nus) => [
- q(5121),
+ q(5116),
q(0),
],
q(nut) => [
- q(5122),
+ q(5117),
q(0),
],
q(nuu) => [
- q(5123),
+ q(5118),
q(0),
],
q(nuv) => [
- q(5124),
+ q(5119),
q(0),
],
q(nuw) => [
- q(5125),
+ q(5120),
q(0),
],
q(nux) => [
- q(5126),
+ q(5121),
q(0),
],
q(nuy) => [
- q(5127),
+ q(5122),
q(0),
],
q(nuz) => [
- q(5128),
+ q(5123),
q(0),
],
q(nvh) => [
- q(5129),
+ q(5124),
q(0),
],
q(nvm) => [
- q(5130),
+ q(5125),
q(0),
],
q(nvo) => [
- q(5131),
+ q(5126),
q(0),
],
q(nwa) => [
- q(5132),
+ q(5127),
q(0),
],
q(nwb) => [
- q(5133),
+ q(5128),
q(0),
],
q(nwc) => [
- q(0320),
+ q(0321),
q(0),
],
q(nwe) => [
- q(5134),
+ q(5129),
q(0),
],
q(nwg) => [
- q(5135),
+ q(5130),
q(0),
],
q(nwi) => [
- q(5136),
+ q(5131),
q(0),
],
q(nwm) => [
- q(5137),
+ q(5132),
q(0),
],
q(nwo) => [
- q(5138),
+ q(5133),
q(0),
],
q(nwr) => [
- q(5139),
+ q(5134),
q(0),
],
q(nwx) => [
- q(5140),
+ q(5135),
q(0),
],
q(nwy) => [
- q(5141),
+ q(5136),
q(0),
],
q(nxa) => [
- q(5142),
+ q(5137),
q(0),
],
q(nxd) => [
- q(5143),
+ q(5138),
q(0),
],
q(nxe) => [
- q(5144),
+ q(5139),
q(0),
],
q(nxg) => [
- q(5145),
+ q(5140),
q(0),
],
q(nxi) => [
- q(5146),
+ q(5141),
q(0),
],
q(nxk) => [
- q(5147),
+ q(5142),
q(0),
],
q(nxl) => [
- q(5148),
+ q(5143),
q(0),
],
q(nxm) => [
- q(5149),
+ q(5144),
q(0),
],
q(nxn) => [
- q(5150),
+ q(5145),
q(0),
],
q(nxo) => [
- q(5151),
+ q(5146),
q(0),
],
q(nxq) => [
- q(5152),
+ q(5147),
q(0),
],
q(nxr) => [
- q(5153),
+ q(5148),
q(0),
],
q(nxu) => [
- q(5154),
+ q(5149),
q(0),
],
q(nxx) => [
- q(5155),
+ q(5150),
q(0),
],
q(nya) => [
- q(0321),
+ q(0322),
q(0),
],
q(nyb) => [
- q(5156),
+ q(5151),
q(0),
],
q(nyc) => [
- q(5157),
+ q(5152),
q(0),
],
q(nyd) => [
- q(5158),
+ q(5153),
q(0),
],
q(nye) => [
- q(5159),
+ q(5154),
q(0),
],
q(nyf) => [
- q(5160),
+ q(5155),
q(0),
],
q(nyg) => [
- q(5161),
+ q(5156),
q(0),
],
q(nyh) => [
- q(5162),
+ q(5157),
q(0),
],
q(nyi) => [
- q(5163),
+ q(5158),
q(0),
],
q(nyj) => [
- q(5164),
+ q(5159),
q(0),
],
q(nyk) => [
- q(5165),
+ q(5160),
q(0),
],
q(nyl) => [
- q(5166),
+ q(5161),
q(0),
],
q(nym) => [
- q(0322),
+ q(0323),
q(0),
],
q(nyn) => [
- q(0323),
+ q(0324),
q(0),
],
q(nyo) => [
- q(0324),
+ q(0325),
q(0),
],
q(nyp) => [
- q(5167),
+ q(5162),
q(0),
],
q(nyq) => [
- q(5168),
+ q(5163),
q(0),
],
q(nyr) => [
- q(5169),
+ q(5164),
q(0),
],
q(nys) => [
- q(5170),
+ q(5165),
q(0),
],
q(nyt) => [
- q(5171),
+ q(5166),
q(0),
],
q(nyu) => [
- q(5172),
+ q(5167),
q(0),
],
q(nyv) => [
- q(5173),
+ q(5168),
q(0),
],
q(nyw) => [
- q(5174),
+ q(5169),
q(0),
],
q(nyx) => [
- q(5175),
+ q(5170),
q(0),
],
q(nyy) => [
- q(5176),
+ q(5171),
q(0),
],
q(nza) => [
- q(5177),
+ q(5172),
q(0),
],
q(nzb) => [
- q(5178),
+ q(5173),
q(0),
],
q(nzi) => [
- q(0325),
+ q(0326),
q(0),
],
q(nzk) => [
- q(5179),
+ q(5174),
q(0),
],
q(nzm) => [
- q(5180),
+ q(5175),
q(0),
],
q(nzs) => [
- q(5181),
+ q(5176),
q(0),
],
q(nzu) => [
- q(5182),
+ q(5177),
q(0),
],
q(nzy) => [
- q(5183),
+ q(5178),
q(0),
],
q(nzz) => [
- q(5184),
+ q(5179),
q(0),
],
q(oaa) => [
- q(5185),
+ q(5180),
q(0),
],
q(oac) => [
- q(5186),
+ q(5181),
q(0),
],
q(oar) => [
- q(5187),
+ q(5182),
q(0),
],
q(oav) => [
- q(5188),
+ q(5183),
q(0),
],
q(obi) => [
- q(5189),
+ q(5184),
q(0),
],
q(obk) => [
- q(5190),
+ q(5185),
q(0),
],
q(obl) => [
- q(5191),
+ q(5186),
q(0),
],
q(obm) => [
- q(5192),
+ q(5187),
q(0),
],
q(obo) => [
- q(5193),
+ q(5188),
q(0),
],
q(obr) => [
- q(5194),
+ q(5189),
q(0),
],
q(obt) => [
- q(5195),
+ q(5190),
q(0),
],
q(obu) => [
- q(5196),
+ q(5191),
q(0),
],
q(oca) => [
- q(5197),
+ q(5192),
q(0),
],
q(och) => [
- q(5198),
+ q(5193),
q(0),
],
q(oci) => [
- q(0326),
+ q(0327),
q(0),
],
q(oco) => [
- q(5199),
+ q(5194),
q(0),
],
q(ocu) => [
- q(5200),
+ q(5195),
q(0),
],
q(oda) => [
- q(5201),
+ q(5196),
q(0),
],
q(odk) => [
- q(5202),
+ q(5197),
q(0),
],
q(odt) => [
- q(5203),
+ q(5198),
q(0),
],
q(odu) => [
- q(5204),
+ q(5199),
q(0),
],
q(ofo) => [
- q(5205),
+ q(5200),
q(0),
],
q(ofs) => [
- q(5206),
+ q(5201),
q(0),
],
q(ofu) => [
- q(5207),
+ q(5202),
q(0),
],
q(ogb) => [
- q(5208),
+ q(5203),
q(0),
],
q(ogc) => [
- q(5209),
+ q(5204),
q(0),
],
q(oge) => [
- q(5210),
+ q(5205),
q(0),
],
q(ogg) => [
- q(5211),
+ q(5206),
q(0),
],
q(ogo) => [
- q(5212),
+ q(5207),
q(0),
],
q(ogu) => [
- q(5213),
+ q(5208),
q(0),
],
q(oht) => [
- q(5214),
+ q(5209),
q(0),
],
q(ohu) => [
- q(5215),
+ q(5210),
q(0),
],
q(oia) => [
- q(5216),
+ q(5211),
q(0),
],
q(oin) => [
- q(5217),
+ q(5212),
q(0),
],
q(ojb) => [
- q(5218),
+ q(5213),
q(0),
],
q(ojc) => [
- q(5219),
+ q(5214),
q(0),
],
q(ojg) => [
- q(5220),
+ q(5215),
q(0),
],
q(oji) => [
- q(0327),
+ q(0328),
q(0),
],
q(ojp) => [
- q(5221),
+ q(5216),
q(0),
],
q(ojs) => [
- q(5222),
+ q(5217),
q(0),
],
q(ojv) => [
- q(5223),
+ q(5218),
q(0),
],
q(ojw) => [
- q(5224),
+ q(5219),
q(0),
],
q(oka) => [
- q(5225),
+ q(5220),
q(0),
],
q(okb) => [
- q(5226),
+ q(5221),
q(0),
],
q(okd) => [
- q(5227),
+ q(5222),
q(0),
],
q(oke) => [
- q(5228),
+ q(5223),
q(0),
],
q(okg) => [
- q(5229),
+ q(5224),
q(0),
],
q(okh) => [
- q(5230),
+ q(5225),
q(0),
],
q(oki) => [
- q(5231),
+ q(5226),
q(0),
],
q(okj) => [
- q(5232),
+ q(5227),
q(0),
],
q(okk) => [
- q(5233),
+ q(5228),
q(0),
],
q(okl) => [
- q(5234),
+ q(5229),
q(0),
],
q(okm) => [
- q(5235),
+ q(5230),
q(0),
],
q(okn) => [
- q(5236),
+ q(5231),
q(0),
],
q(oko) => [
- q(5237),
+ q(5232),
q(0),
],
q(okr) => [
- q(5238),
+ q(5233),
q(0),
],
q(oks) => [
- q(5239),
+ q(5234),
q(0),
],
q(oku) => [
- q(5240),
+ q(5235),
q(0),
],
q(okv) => [
- q(5241),
+ q(5236),
q(0),
],
q(okx) => [
- q(5242),
+ q(5237),
q(0),
],
q(ola) => [
- q(5243),
+ q(5238),
q(0),
],
q(old) => [
- q(5244),
+ q(5239),
q(0),
],
q(ole) => [
- q(5245),
+ q(5240),
q(0),
],
q(olk) => [
- q(5246),
+ q(5241),
q(0),
],
q(olm) => [
- q(5247),
+ q(5242),
q(0),
],
q(olo) => [
- q(5248),
+ q(5243),
q(0),
],
q(olr) => [
- q(5249),
+ q(5244),
q(0),
],
q(olt) => [
- q(5250),
+ q(5245),
+ q(0),
+ ],
+ q(olu) => [
+ q(5246),
q(0),
],
q(oma) => [
- q(5251),
+ q(5247),
q(0),
],
q(omb) => [
- q(5252),
+ q(5248),
q(0),
],
q(omc) => [
- q(5253),
- q(0),
- ],
- q(ome) => [
- q(5254),
+ q(5249),
q(0),
],
q(omg) => [
- q(5255),
+ q(5250),
q(0),
],
q(omi) => [
- q(5256),
+ q(5251),
q(0),
],
q(omk) => [
- q(5257),
+ q(5252),
q(0),
],
q(oml) => [
- q(5258),
+ q(5253),
q(0),
],
q(omn) => [
- q(5259),
+ q(5254),
q(0),
],
q(omo) => [
- q(5260),
+ q(5255),
q(0),
],
q(omp) => [
- q(5261),
+ q(5256),
q(0),
],
q(omq) => [
- q(0517),
+ q(0518),
q(0),
],
q(omr) => [
- q(5262),
+ q(5257),
q(0),
],
q(omt) => [
- q(5263),
+ q(5258),
q(0),
],
q(omu) => [
- q(5264),
+ q(5259),
q(0),
],
q(omv) => [
- q(0518),
+ q(0519),
q(0),
],
q(omw) => [
- q(5265),
+ q(5260),
q(0),
],
q(omx) => [
- q(5266),
+ q(5261),
q(0),
],
q(ona) => [
- q(5267),
+ q(5262),
q(0),
],
q(onb) => [
- q(5268),
+ q(5263),
q(0),
],
q(one) => [
- q(5269),
+ q(5264),
q(0),
],
q(ong) => [
- q(5270),
+ q(5265),
q(0),
],
q(oni) => [
- q(5271),
+ q(5266),
q(0),
],
q(onj) => [
- q(5272),
+ q(5267),
q(0),
],
q(onk) => [
- q(5273),
+ q(5268),
q(0),
],
q(onn) => [
- q(5274),
+ q(5269),
q(0),
],
q(ono) => [
- q(5275),
+ q(5270),
q(0),
],
q(onp) => [
- q(5276),
+ q(5271),
q(0),
],
q(onr) => [
- q(5277),
+ q(5272),
q(0),
],
q(ons) => [
- q(5278),
+ q(5273),
q(0),
],
q(ont) => [
- q(5279),
+ q(5274),
q(0),
],
q(onu) => [
- q(5280),
+ q(5275),
q(0),
],
q(onw) => [
- q(5281),
+ q(5276),
q(0),
],
q(onx) => [
- q(5282),
+ q(5277),
q(0),
],
q(ood) => [
- q(5283),
+ q(5278),
q(0),
],
q(oog) => [
- q(5284),
+ q(5279),
q(0),
],
q(oon) => [
- q(5285),
+ q(5280),
q(0),
],
q(oor) => [
- q(5286),
+ q(5281),
q(0),
],
q(oos) => [
- q(5287),
+ q(5282),
q(0),
],
q(opa) => [
- q(5288),
+ q(5283),
q(0),
],
q(opk) => [
- q(5289),
+ q(5284),
q(0),
],
q(opm) => [
- q(5290),
+ q(5285),
q(0),
],
q(opo) => [
- q(5291),
+ q(5286),
q(0),
],
q(opt) => [
- q(5292),
+ q(5287),
q(0),
],
q(opy) => [
- q(5293),
+ q(5288),
q(0),
],
q(ora) => [
- q(5294),
+ q(5289),
q(0),
],
q(orc) => [
- q(5295),
+ q(5290),
q(0),
],
q(ore) => [
- q(5296),
+ q(5291),
q(0),
],
q(org) => [
- q(5297),
+ q(5292),
q(0),
],
q(orh) => [
- q(5298),
+ q(5293),
q(0),
],
q(ori) => [
- q(0328),
+ q(0329),
q(0),
],
q(orm) => [
- q(0329),
+ q(0330),
q(0),
],
q(orn) => [
- q(5299),
+ q(5294),
q(0),
],
q(oro) => [
- q(5300),
+ q(5295),
q(0),
],
q(orr) => [
- q(5301),
+ q(5296),
q(0),
],
q(ors) => [
- q(5302),
+ q(5297),
q(0),
],
q(ort) => [
- q(5303),
+ q(5298),
q(0),
],
q(oru) => [
- q(5304),
+ q(5299),
q(0),
],
q(orv) => [
- q(5305),
+ q(5300),
q(0),
],
q(orw) => [
- q(5306),
+ q(5301),
q(0),
],
q(orx) => [
- q(5307),
+ q(5302),
q(0),
],
q(ory) => [
- q(5308),
+ q(5303),
q(0),
],
q(orz) => [
- q(5309),
+ q(5304),
q(0),
],
q(osa) => [
- q(0330),
+ q(0331),
q(0),
],
q(osc) => [
- q(5310),
+ q(5305),
q(0),
],
q(osi) => [
- q(5311),
+ q(5306),
q(0),
],
q(oso) => [
- q(5312),
+ q(5307),
q(0),
],
q(osp) => [
- q(5313),
+ q(5308),
q(0),
],
q(oss) => [
- q(0331),
+ q(0332),
q(0),
],
q(ost) => [
- q(5314),
+ q(5309),
q(0),
],
q(osu) => [
- q(5315),
+ q(5310),
q(0),
],
q(osx) => [
- q(5316),
+ q(5311),
q(0),
],
q(ota) => [
- q(0332),
+ q(0333),
q(1),
],
q(otb) => [
- q(5317),
+ q(5312),
q(0),
],
q(otd) => [
- q(5318),
+ q(5313),
q(0),
],
q(ote) => [
- q(5319),
+ q(5314),
q(0),
],
q(oti) => [
- q(5320),
+ q(5315),
q(0),
],
q(otk) => [
- q(5321),
+ q(5316),
q(0),
],
q(otl) => [
- q(5322),
+ q(5317),
q(0),
],
q(otm) => [
- q(5323),
+ q(5318),
q(0),
],
q(otn) => [
- q(5324),
+ q(5319),
q(0),
],
q(oto) => [
- q(0333),
+ q(0334),
q(0),
],
q(otq) => [
- q(5325),
+ q(5320),
q(0),
],
q(otr) => [
- q(5326),
+ q(5321),
q(0),
],
q(ots) => [
- q(5327),
+ q(5322),
q(0),
],
q(ott) => [
- q(5328),
+ q(5323),
q(0),
],
q(otu) => [
- q(5329),
+ q(5324),
q(0),
],
q(otw) => [
- q(5330),
+ q(5325),
q(0),
],
q(otx) => [
- q(5331),
+ q(5326),
q(0),
],
q(oty) => [
- q(5332),
+ q(5327),
q(0),
],
q(otz) => [
- q(5333),
+ q(5328),
q(0),
],
q(oua) => [
- q(5334),
+ q(5329),
q(0),
],
q(oub) => [
- q(5335),
+ q(5330),
q(0),
],
q(oue) => [
- q(5336),
+ q(5331),
q(0),
],
q(oui) => [
- q(5337),
+ q(5332),
q(0),
],
q(oum) => [
- q(5338),
+ q(5333),
+ q(0),
+ ],
+ q(ovd) => [
+ q(5334),
q(0),
],
q(owi) => [
- q(5339),
+ q(5335),
q(0),
],
q(owl) => [
- q(5340),
+ q(5336),
q(0),
],
q(oyb) => [
- q(5341),
+ q(5337),
q(0),
],
q(oyd) => [
- q(5342),
+ q(5338),
q(0),
],
q(oym) => [
- q(5343),
+ q(5339),
q(0),
],
q(oyy) => [
- q(5344),
+ q(5340),
q(0),
],
q(ozm) => [
- q(5345),
+ q(5341),
q(0),
],
q(paa) => [
- q(0334),
+ q(0335),
q(0),
],
q(pab) => [
- q(5346),
+ q(5342),
q(0),
],
q(pac) => [
- q(5347),
+ q(5343),
q(0),
],
q(pad) => [
- q(5348),
+ q(5344),
q(0),
],
q(pae) => [
- q(5349),
+ q(5345),
q(0),
],
q(paf) => [
- q(5350),
+ q(5346),
q(0),
],
q(pag) => [
- q(0335),
+ q(0336),
q(0),
],
q(pah) => [
- q(5351),
+ q(5347),
q(0),
],
q(pai) => [
- q(5352),
+ q(5348),
q(0),
],
q(pak) => [
- q(5353),
+ q(5349),
q(0),
],
q(pal) => [
- q(0336),
+ q(0337),
q(0),
],
q(pam) => [
- q(0337),
+ q(0338),
q(0),
],
q(pan) => [
- q(0338),
+ q(0339),
q(0),
],
q(pao) => [
- q(5354),
+ q(5350),
q(0),
],
q(pap) => [
- q(0339),
+ q(0340),
q(0),
],
q(paq) => [
- q(5355),
+ q(5351),
q(0),
],
q(par) => [
- q(5356),
+ q(5352),
q(0),
],
q(pas) => [
- q(5357),
+ q(5353),
q(0),
],
q(pat) => [
- q(5358),
+ q(5354),
q(0),
],
q(pau) => [
- q(0340),
+ q(0341),
q(0),
],
q(pav) => [
- q(5359),
+ q(5355),
q(0),
],
q(paw) => [
- q(5360),
+ q(5356),
q(0),
],
q(pax) => [
- q(5361),
+ q(5357),
q(0),
],
q(pay) => [
- q(5362),
+ q(5358),
q(0),
],
q(paz) => [
- q(5363),
+ q(5359),
q(0),
],
q(pbb) => [
- q(5364),
+ q(5360),
q(0),
],
q(pbc) => [
- q(5365),
+ q(5361),
q(0),
],
q(pbe) => [
- q(5366),
+ q(5362),
q(0),
],
q(pbf) => [
- q(5367),
+ q(5363),
q(0),
],
q(pbg) => [
- q(5368),
+ q(5364),
q(0),
],
q(pbh) => [
- q(5369),
+ q(5365),
q(0),
],
q(pbi) => [
- q(5370),
+ q(5366),
q(0),
],
q(pbl) => [
- q(5371),
+ q(5367),
q(0),
],
q(pbn) => [
- q(5372),
+ q(5368),
q(0),
],
q(pbo) => [
- q(5373),
+ q(5369),
q(0),
],
q(pbp) => [
- q(5374),
+ q(5370),
q(0),
],
q(pbr) => [
- q(5375),
+ q(5371),
q(0),
],
q(pbs) => [
- q(5376),
+ q(5372),
q(0),
],
q(pbt) => [
- q(5377),
+ q(5373),
q(0),
],
q(pbu) => [
- q(5378),
+ q(5374),
q(0),
],
q(pbv) => [
- q(5379),
+ q(5375),
q(0),
],
q(pby) => [
- q(5380),
+ q(5376),
q(0),
],
q(pca) => [
- q(5381),
+ q(5377),
q(0),
],
q(pcb) => [
- q(5382),
+ q(5378),
q(0),
],
q(pcc) => [
- q(5383),
+ q(5379),
q(0),
],
q(pcd) => [
- q(5384),
+ q(5380),
q(0),
],
q(pce) => [
- q(5385),
+ q(5381),
q(0),
],
q(pcf) => [
- q(5386),
+ q(5382),
q(0),
],
q(pcg) => [
- q(5387),
+ q(5383),
q(0),
],
q(pch) => [
- q(5388),
+ q(5384),
q(0),
],
q(pci) => [
- q(5389),
+ q(5385),
q(0),
],
q(pcj) => [
- q(5390),
+ q(5386),
q(0),
],
q(pck) => [
- q(5391),
+ q(5387),
q(0),
],
q(pcl) => [
- q(5392),
+ q(5388),
q(0),
],
q(pcm) => [
- q(5393),
+ q(5389),
q(0),
],
q(pcn) => [
- q(5394),
+ q(5390),
q(0),
],
q(pcp) => [
- q(5395),
+ q(5391),
q(0),
],
q(pcw) => [
- q(5396),
+ q(5392),
q(0),
],
q(pda) => [
- q(5397),
+ q(5393),
q(0),
],
q(pdc) => [
- q(5398),
+ q(5394),
q(0),
],
q(pdi) => [
- q(5399),
+ q(5395),
q(0),
],
q(pdn) => [
- q(5400),
+ q(5396),
q(0),
],
q(pdo) => [
- q(5401),
+ q(5397),
q(0),
],
q(pdt) => [
- q(5402),
+ q(5398),
q(0),
],
q(pdu) => [
- q(5403),
+ q(5399),
q(0),
],
q(pea) => [
- q(5404),
+ q(5400),
q(0),
],
q(peb) => [
- q(5405),
+ q(5401),
q(0),
],
q(ped) => [
- q(5406),
+ q(5402),
q(0),
],
q(pee) => [
- q(5407),
+ q(5403),
q(0),
],
q(pef) => [
- q(5408),
+ q(5404),
q(0),
],
q(peg) => [
- q(5409),
+ q(5405),
q(0),
],
q(peh) => [
- q(5410),
+ q(5406),
q(0),
],
q(pei) => [
- q(5411),
+ q(5407),
q(0),
],
q(pej) => [
- q(5412),
+ q(5408),
q(0),
],
q(pek) => [
- q(5413),
+ q(5409),
q(0),
],
q(pel) => [
- q(5414),
+ q(5410),
q(0),
],
q(pem) => [
- q(5415),
+ q(5411),
q(0),
],
q(peo) => [
- q(0341),
+ q(0342),
q(1),
],
q(pep) => [
- q(5416),
+ q(5412),
q(0),
],
q(peq) => [
- q(5417),
+ q(5413),
q(0),
],
q(per) => [
- q(0342),
+ q(0343),
q(0),
],
q(pes) => [
- q(5418),
+ q(5414),
q(0),
],
q(pev) => [
- q(5419),
+ q(5415),
q(0),
],
q(pex) => [
- q(5420),
+ q(5416),
q(0),
],
q(pey) => [
- q(5421),
+ q(5417),
q(0),
],
q(pez) => [
- q(5422),
+ q(5418),
q(0),
],
q(pfa) => [
- q(5423),
+ q(5419),
q(0),
],
q(pfe) => [
- q(5424),
+ q(5420),
q(0),
],
q(pfl) => [
- q(5425),
+ q(5421),
q(0),
],
q(pga) => [
- q(5426),
+ q(5422),
q(0),
],
q(pgd) => [
- q(5427),
+ q(5423),
q(0),
],
q(pgg) => [
- q(5428),
+ q(5424),
q(0),
],
q(pgi) => [
- q(5429),
+ q(5425),
q(0),
],
q(pgk) => [
- q(5430),
+ q(5426),
q(0),
],
q(pgl) => [
- q(5431),
+ q(5427),
q(0),
],
q(pgn) => [
- q(5432),
+ q(5428),
q(0),
],
q(pgs) => [
- q(5433),
+ q(5429),
q(0),
],
q(pgu) => [
- q(5434),
+ q(5430),
+ q(0),
+ ],
+ q(pgz) => [
+ q(5431),
q(0),
],
q(pha) => [
- q(5435),
+ q(5432),
q(0),
],
q(phd) => [
- q(5436),
+ q(5433),
q(0),
],
q(phg) => [
- q(5437),
+ q(5434),
q(0),
],
q(phh) => [
- q(5438),
+ q(5435),
q(0),
],
q(phi) => [
- q(0343),
+ q(0344),
q(0),
],
q(phk) => [
- q(5439),
+ q(5436),
q(0),
],
q(phl) => [
- q(5440),
+ q(5437),
q(0),
],
q(phm) => [
- q(5441),
+ q(5438),
q(0),
],
q(phn) => [
- q(0344),
+ q(0345),
q(0),
],
q(pho) => [
- q(5442),
+ q(5439),
q(0),
],
q(phq) => [
- q(5443),
+ q(5440),
q(0),
],
q(phr) => [
- q(5444),
+ q(5441),
q(0),
],
q(pht) => [
- q(5445),
+ q(5442),
q(0),
],
q(phu) => [
- q(5446),
+ q(5443),
q(0),
],
q(phv) => [
- q(5447),
+ q(5444),
q(0),
],
q(phw) => [
- q(5448),
+ q(5445),
q(0),
],
q(pia) => [
- q(5449),
+ q(5446),
q(0),
],
q(pib) => [
- q(5450),
+ q(5447),
q(0),
],
q(pic) => [
- q(5451),
+ q(5448),
q(0),
],
q(pid) => [
- q(5452),
+ q(5449),
q(0),
],
q(pie) => [
- q(5453),
+ q(5450),
q(0),
],
q(pif) => [
- q(5454),
+ q(5451),
q(0),
],
q(pig) => [
- q(5455),
+ q(5452),
q(0),
],
q(pih) => [
- q(5456),
+ q(5453),
q(0),
],
q(pii) => [
- q(5457),
+ q(5454),
q(0),
],
q(pij) => [
- q(5458),
+ q(5455),
q(0),
],
q(pil) => [
- q(5459),
+ q(5456),
q(0),
],
q(pim) => [
- q(5460),
+ q(5457),
q(0),
],
q(pin) => [
- q(5461),
+ q(5458),
q(0),
],
q(pio) => [
- q(5462),
+ q(5459),
q(0),
],
q(pip) => [
- q(5463),
+ q(5460),
q(0),
],
q(pir) => [
- q(5464),
+ q(5461),
q(0),
],
q(pis) => [
- q(5465),
+ q(5462),
q(0),
],
q(pit) => [
- q(5466),
+ q(5463),
q(0),
],
q(piu) => [
- q(5467),
+ q(5464),
q(0),
],
q(piv) => [
- q(5468),
+ q(5465),
q(0),
],
q(piw) => [
- q(5469),
+ q(5466),
q(0),
],
q(pix) => [
- q(5470),
+ q(5467),
q(0),
],
q(piy) => [
- q(5471),
+ q(5468),
q(0),
],
q(piz) => [
- q(5472),
+ q(5469),
q(0),
],
q(pjt) => [
- q(5473),
+ q(5470),
q(0),
],
q(pka) => [
- q(5474),
+ q(5471),
q(0),
],
q(pkb) => [
- q(5475),
+ q(5472),
q(0),
],
q(pkc) => [
- q(5476),
+ q(5473),
q(0),
],
q(pkg) => [
- q(5477),
+ q(5474),
q(0),
],
q(pkh) => [
- q(5478),
+ q(5475),
q(0),
],
q(pkn) => [
- q(5479),
+ q(5476),
q(0),
],
q(pko) => [
- q(5480),
+ q(5477),
q(0),
],
q(pkp) => [
- q(5481),
+ q(5478),
q(0),
],
q(pkr) => [
- q(5482),
+ q(5479),
q(0),
],
q(pks) => [
- q(5483),
+ q(5480),
q(0),
],
q(pkt) => [
- q(5484),
+ q(5481),
q(0),
],
q(pku) => [
- q(5485),
+ q(5482),
q(0),
],
q(pla) => [
- q(5486),
+ q(5483),
q(0),
],
q(plb) => [
- q(5487),
+ q(5484),
q(0),
],
q(plc) => [
- q(5488),
+ q(5485),
q(0),
],
q(pld) => [
- q(5489),
+ q(5486),
q(0),
],
q(ple) => [
- q(5490),
+ q(5487),
q(0),
],
q(plf) => [
- q(0519),
+ q(0520),
q(0),
],
q(plg) => [
- q(5491),
+ q(5488),
q(0),
],
q(plh) => [
- q(5492),
+ q(5489),
q(0),
],
q(pli) => [
- q(0345),
+ q(0346),
q(0),
],
q(plj) => [
- q(5493),
+ q(5490),
q(0),
],
q(plk) => [
- q(5494),
+ q(5491),
q(0),
],
q(pll) => [
- q(5495),
+ q(5492),
q(0),
],
q(pln) => [
- q(5496),
+ q(5493),
q(0),
],
q(plo) => [
- q(5497),
+ q(5494),
q(0),
],
q(plp) => [
- q(5498),
+ q(5495),
q(0),
],
q(plq) => [
- q(5499),
+ q(5496),
q(0),
],
q(plr) => [
- q(5500),
+ q(5497),
q(0),
],
q(pls) => [
- q(5501),
+ q(5498),
q(0),
],
q(plt) => [
- q(5502),
+ q(5499),
q(0),
],
q(plu) => [
- q(5503),
+ q(5500),
q(0),
],
q(plv) => [
- q(5504),
+ q(5501),
q(0),
],
q(plw) => [
- q(5505),
+ q(5502),
q(0),
],
q(ply) => [
- q(5506),
+ q(5503),
q(0),
],
q(plz) => [
- q(5507),
+ q(5504),
q(0),
],
q(pma) => [
- q(5508),
+ q(5505),
q(0),
],
q(pmb) => [
- q(5509),
- q(0),
- ],
- q(pmc) => [
- q(5510),
+ q(5506),
q(0),
],
q(pmd) => [
- q(5511),
+ q(5507),
q(0),
],
q(pme) => [
- q(5512),
+ q(5508),
q(0),
],
q(pmf) => [
- q(5513),
+ q(5509),
q(0),
],
q(pmh) => [
- q(5514),
+ q(5510),
q(0),
],
q(pmi) => [
- q(5515),
+ q(5511),
q(0),
],
q(pmj) => [
- q(5516),
+ q(5512),
q(0),
],
q(pmk) => [
- q(5517),
+ q(5513),
q(0),
],
q(pml) => [
- q(5518),
+ q(5514),
q(0),
],
q(pmm) => [
- q(5519),
+ q(5515),
q(0),
],
q(pmn) => [
- q(5520),
+ q(5516),
q(0),
],
q(pmo) => [
- q(5521),
+ q(5517),
q(0),
],
q(pmq) => [
- q(5522),
+ q(5518),
q(0),
],
q(pmr) => [
- q(5523),
+ q(5519),
q(0),
],
q(pms) => [
- q(5524),
+ q(5520),
q(0),
],
q(pmt) => [
- q(5525),
+ q(5521),
q(0),
],
q(pmw) => [
- q(5526),
+ q(5522),
q(0),
],
q(pmx) => [
- q(5527),
+ q(5523),
q(0),
],
q(pmy) => [
- q(5528),
+ q(5524),
q(0),
],
q(pmz) => [
- q(5529),
+ q(5525),
q(0),
],
q(pna) => [
- q(5530),
+ q(5526),
q(0),
],
q(pnb) => [
- q(5531),
+ q(5527),
q(0),
],
q(pnc) => [
- q(5532),
+ q(5528),
q(0),
],
q(pne) => [
- q(5533),
+ q(5529),
q(0),
],
q(png) => [
- q(5534),
+ q(5530),
q(0),
],
q(pnh) => [
- q(5535),
+ q(5531),
q(0),
],
q(pni) => [
- q(5536),
+ q(5532),
q(0),
],
q(pnj) => [
- q(5537),
+ q(5533),
q(0),
],
q(pnk) => [
- q(5538),
+ q(5534),
q(0),
],
q(pnl) => [
- q(5539),
+ q(5535),
q(0),
],
q(pnm) => [
- q(5540),
+ q(5536),
q(0),
],
q(pnn) => [
- q(5541),
+ q(5537),
q(0),
],
q(pno) => [
- q(5542),
+ q(5538),
q(0),
],
q(pnp) => [
- q(5543),
+ q(5539),
q(0),
],
q(pnq) => [
- q(5544),
+ q(5540),
q(0),
],
q(pnr) => [
- q(5545),
+ q(5541),
q(0),
],
q(pns) => [
- q(5546),
+ q(5542),
q(0),
],
q(pnt) => [
- q(5547),
+ q(5543),
q(0),
],
q(pnu) => [
- q(5548),
+ q(5544),
q(0),
],
q(pnv) => [
- q(5549),
+ q(5545),
q(0),
],
q(pnw) => [
- q(5550),
+ q(5546),
q(0),
],
q(pnx) => [
- q(5551),
+ q(5547),
q(0),
],
q(pny) => [
- q(5552),
+ q(5548),
q(0),
],
q(pnz) => [
- q(5553),
+ q(5549),
q(0),
],
q(poc) => [
- q(5554),
- q(0),
- ],
- q(pod) => [
- q(5555),
+ q(5550),
q(0),
],
q(poe) => [
- q(5556),
+ q(5551),
q(0),
],
q(pof) => [
- q(5557),
+ q(5552),
q(0),
],
q(pog) => [
- q(5558),
+ q(5553),
q(0),
],
q(poh) => [
- q(5559),
+ q(5554),
q(0),
],
q(poi) => [
- q(5560),
+ q(5555),
q(0),
],
q(pok) => [
- q(5561),
+ q(5556),
q(0),
],
q(pol) => [
- q(0346),
+ q(0347),
q(0),
],
q(pom) => [
- q(5562),
+ q(5557),
q(0),
],
q(pon) => [
- q(0347),
+ q(0348),
q(0),
],
q(poo) => [
- q(5563),
+ q(5558),
q(0),
],
q(pop) => [
- q(5564),
+ q(5559),
q(0),
],
q(poq) => [
- q(5565),
+ q(5560),
q(0),
],
q(por) => [
- q(0348),
+ q(0349),
q(0),
],
q(pos) => [
- q(5566),
+ q(5561),
q(0),
],
q(pot) => [
- q(5567),
+ q(5562),
q(0),
],
q(pov) => [
- q(5568),
+ q(5563),
q(0),
],
q(pow) => [
- q(5569),
+ q(5564),
q(0),
],
q(pox) => [
- q(5570),
+ q(5565),
q(0),
],
q(poy) => [
- q(5571),
+ q(5566),
q(0),
],
q(poz) => [
- q(0520),
- q(0),
- ],
- q(ppa) => [
- q(5572),
+ q(0521),
q(0),
],
q(ppe) => [
- q(5573),
+ q(5567),
q(0),
],
q(ppi) => [
- q(5574),
+ q(5568),
q(0),
],
q(ppk) => [
- q(5575),
+ q(5569),
q(0),
],
q(ppl) => [
- q(5576),
+ q(5570),
q(0),
],
q(ppm) => [
- q(5577),
+ q(5571),
q(0),
],
q(ppn) => [
- q(5578),
+ q(5572),
q(0),
],
q(ppo) => [
- q(5579),
+ q(5573),
q(0),
],
q(ppp) => [
- q(5580),
+ q(5574),
q(0),
],
q(ppq) => [
- q(5581),
+ q(5575),
q(0),
],
q(pps) => [
- q(5582),
+ q(5576),
q(0),
],
q(ppt) => [
- q(5583),
+ q(5577),
q(0),
],
q(ppu) => [
- q(5584),
+ q(5578),
q(0),
],
q(pqa) => [
- q(5585),
+ q(5579),
q(0),
],
q(pqe) => [
- q(0521),
+ q(0522),
q(0),
],
q(pqm) => [
- q(5586),
+ q(5580),
q(0),
],
q(pqw) => [
- q(0522),
+ q(0523),
q(0),
],
q(pra) => [
- q(0349),
- q(0),
- ],
- q(prb) => [
- q(5587),
+ q(0350),
q(0),
],
q(prc) => [
- q(5588),
+ q(5581),
q(0),
],
q(prd) => [
- q(5589),
+ q(5582),
q(0),
],
q(pre) => [
- q(5590),
+ q(5583),
q(0),
],
q(prf) => [
- q(5591),
+ q(5584),
q(0),
],
q(prg) => [
- q(5592),
+ q(5585),
q(0),
],
q(prh) => [
- q(5593),
+ q(5586),
q(0),
],
q(pri) => [
- q(5594),
+ q(5587),
q(0),
],
q(prk) => [
- q(5595),
+ q(5588),
q(0),
],
q(prl) => [
- q(5596),
+ q(5589),
q(0),
],
q(prm) => [
- q(5597),
+ q(5590),
q(0),
],
q(prn) => [
- q(5598),
+ q(5591),
q(0),
],
q(pro) => [
- q(0350),
+ q(0351),
q(1),
],
q(prp) => [
- q(5599),
+ q(5592),
q(0),
],
q(prq) => [
- q(5600),
+ q(5593),
q(0),
],
q(prr) => [
- q(5601),
+ q(5594),
q(0),
],
q(prs) => [
- q(5602),
+ q(5595),
q(0),
],
q(prt) => [
- q(5603),
+ q(5596),
q(0),
],
q(pru) => [
- q(5604),
+ q(5597),
q(0),
],
q(prw) => [
- q(5605),
+ q(5598),
q(0),
],
q(prx) => [
- q(5606),
- q(0),
- ],
- q(pry) => [
- q(5607),
+ q(5599),
q(0),
],
q(prz) => [
- q(5608),
+ q(5600),
q(0),
],
q(psa) => [
- q(5609),
+ q(5601),
q(0),
],
q(psc) => [
- q(5610),
+ q(5602),
q(0),
],
q(psd) => [
- q(5611),
+ q(5603),
q(0),
],
q(pse) => [
- q(5612),
+ q(5604),
q(0),
],
q(psg) => [
- q(5613),
+ q(5605),
q(0),
],
q(psh) => [
- q(5614),
+ q(5606),
q(0),
],
q(psi) => [
- q(5615),
+ q(5607),
q(0),
],
q(psl) => [
- q(5616),
+ q(5608),
q(0),
],
q(psm) => [
- q(5617),
+ q(5609),
q(0),
],
q(psn) => [
- q(5618),
+ q(5610),
q(0),
],
q(pso) => [
- q(5619),
+ q(5611),
q(0),
],
q(psp) => [
- q(5620),
+ q(5612),
q(0),
],
q(psq) => [
- q(5621),
+ q(5613),
q(0),
],
q(psr) => [
- q(5622),
+ q(5614),
q(0),
],
q(pss) => [
- q(5623),
+ q(5615),
q(0),
],
q(pst) => [
- q(5624),
+ q(5616),
q(0),
],
q(psu) => [
- q(5625),
+ q(5617),
q(0),
],
q(psw) => [
- q(5626),
+ q(5618),
q(0),
],
q(psy) => [
- q(5627),
+ q(5619),
q(0),
],
q(pta) => [
- q(5628),
+ q(5620),
q(0),
],
q(pth) => [
- q(5629),
+ q(5621),
q(0),
],
q(pti) => [
- q(5630),
+ q(5622),
q(0),
],
q(ptn) => [
- q(5631),
+ q(5623),
q(0),
],
q(pto) => [
- q(5632),
+ q(5624),
q(0),
],
q(ptp) => [
- q(5633),
+ q(5625),
q(0),
],
q(ptq) => [
- q(5634),
+ q(5626),
q(0),
],
q(ptr) => [
- q(5635),
+ q(5627),
q(0),
],
q(ptt) => [
- q(5636),
+ q(5628),
q(0),
],
q(ptu) => [
- q(5637),
+ q(5629),
q(0),
],
q(ptv) => [
- q(5638),
+ q(5630),
q(0),
],
q(ptw) => [
- q(5639),
+ q(5631),
q(0),
],
q(pty) => [
- q(5640),
+ q(5632),
q(0),
],
q(pua) => [
- q(5641),
+ q(5633),
q(0),
],
q(pub) => [
- q(5642),
+ q(5634),
q(0),
],
q(puc) => [
- q(5643),
+ q(5635),
q(0),
],
q(pud) => [
- q(5644),
+ q(5636),
q(0),
],
q(pue) => [
- q(5645),
+ q(5637),
q(0),
],
q(puf) => [
- q(5646),
+ q(5638),
q(0),
],
q(pug) => [
- q(5647),
+ q(5639),
q(0),
],
q(pui) => [
- q(5648),
+ q(5640),
q(0),
],
q(puj) => [
- q(5649),
- q(0),
- ],
- q(puk) => [
- q(5650),
+ q(5641),
q(0),
],
q(pum) => [
- q(5651),
+ q(5642),
q(0),
],
q(puo) => [
- q(5652),
+ q(5643),
q(0),
],
q(pup) => [
- q(5653),
+ q(5644),
q(0),
],
q(puq) => [
- q(5654),
+ q(5645),
q(0),
],
q(pur) => [
- q(5655),
+ q(5646),
q(0),
],
q(pus) => [
- q(0351),
+ q(0352),
q(0),
],
q(put) => [
- q(5656),
+ q(5647),
q(0),
],
q(puu) => [
- q(5657),
+ q(5648),
q(0),
],
q(puw) => [
- q(5658),
+ q(5649),
q(0),
],
q(pux) => [
- q(5659),
+ q(5650),
q(0),
],
q(puy) => [
- q(5660),
+ q(5651),
q(0),
],
q(pwa) => [
- q(5661),
+ q(5652),
q(0),
],
q(pwb) => [
- q(5662),
+ q(5653),
q(0),
],
q(pwg) => [
- q(5663),
+ q(5654),
q(0),
],
q(pwi) => [
- q(5664),
+ q(5655),
q(0),
],
q(pwm) => [
- q(5665),
+ q(5656),
q(0),
],
q(pwn) => [
- q(5666),
+ q(5657),
q(0),
],
q(pwo) => [
- q(5667),
+ q(5658),
q(0),
],
q(pwr) => [
- q(5668),
+ q(5659),
q(0),
],
q(pww) => [
- q(5669),
+ q(5660),
q(0),
],
q(pxm) => [
- q(5670),
+ q(5661),
q(0),
],
q(pye) => [
- q(5671),
+ q(5662),
q(0),
],
q(pym) => [
- q(5672),
+ q(5663),
q(0),
],
q(pyn) => [
- q(5673),
+ q(5664),
q(0),
],
q(pys) => [
- q(5674),
+ q(5665),
q(0),
],
q(pyu) => [
- q(5675),
+ q(5666),
q(0),
],
q(pyx) => [
- q(5676),
+ q(5667),
q(0),
],
q(pyy) => [
- q(5677),
+ q(5668),
q(0),
],
q(pzn) => [
- q(5678),
+ q(5669),
q(0),
],
q(qtz) => [
- q(0352),
+ q(0353),
q(0),
],
q(qua) => [
- q(5679),
+ q(5670),
q(0),
],
q(qub) => [
- q(5680),
+ q(5671),
q(0),
],
q(quc) => [
- q(5681),
+ q(5672),
q(0),
],
q(qud) => [
- q(5682),
+ q(5673),
q(0),
],
q(que) => [
- q(0353),
+ q(0354),
q(0),
],
q(quf) => [
- q(5683),
+ q(5674),
q(0),
],
q(qug) => [
- q(5684),
+ q(5675),
q(0),
],
q(quh) => [
- q(5685),
+ q(5676),
q(0),
],
q(qui) => [
- q(5686),
+ q(5677),
q(0),
],
q(quk) => [
- q(5687),
+ q(5678),
q(0),
],
q(qul) => [
- q(5688),
+ q(5679),
q(0),
],
q(qum) => [
- q(5689),
+ q(5680),
q(0),
],
q(qun) => [
- q(5690),
+ q(5681),
q(0),
],
q(qup) => [
- q(5691),
+ q(5682),
q(0),
],
q(quq) => [
- q(5692),
+ q(5683),
q(0),
],
q(qur) => [
- q(5693),
+ q(5684),
q(0),
],
q(qus) => [
- q(5694),
+ q(5685),
q(0),
],
q(quv) => [
- q(5695),
+ q(5686),
q(0),
],
q(quw) => [
- q(5696),
+ q(5687),
q(0),
],
q(qux) => [
- q(5697),
+ q(5688),
q(0),
],
q(quy) => [
- q(5698),
+ q(5689),
q(0),
],
q(quz) => [
- q(5699),
+ q(5690),
q(0),
],
q(qva) => [
- q(5700),
+ q(5691),
q(0),
],
q(qvc) => [
- q(5701),
+ q(5692),
q(0),
],
q(qve) => [
- q(5702),
+ q(5693),
q(0),
],
q(qvh) => [
- q(5703),
+ q(5694),
q(0),
],
q(qvi) => [
- q(5704),
+ q(5695),
q(0),
],
q(qvj) => [
- q(5705),
+ q(5696),
q(0),
],
q(qvl) => [
- q(5706),
+ q(5697),
q(0),
],
q(qvm) => [
- q(5707),
+ q(5698),
q(0),
],
q(qvn) => [
- q(5708),
+ q(5699),
q(0),
],
q(qvo) => [
- q(5709),
+ q(5700),
q(0),
],
q(qvp) => [
- q(5710),
+ q(5701),
q(0),
],
q(qvs) => [
- q(5711),
+ q(5702),
q(0),
],
q(qvw) => [
- q(5712),
+ q(5703),
q(0),
],
q(qvy) => [
- q(5713),
+ q(5704),
q(0),
],
q(qvz) => [
- q(5714),
+ q(5705),
q(0),
],
q(qwa) => [
- q(5715),
+ q(5706),
q(0),
],
q(qwc) => [
- q(5716),
+ q(5707),
q(0),
],
q(qwe) => [
- q(0523),
+ q(0524),
q(0),
],
q(qwh) => [
- q(5717),
+ q(5708),
q(0),
],
q(qwm) => [
- q(5718),
+ q(5709),
q(0),
],
q(qws) => [
- q(5719),
+ q(5710),
q(0),
],
q(qwt) => [
- q(5720),
+ q(5711),
q(0),
],
q(qxa) => [
- q(5721),
+ q(5712),
q(0),
],
q(qxc) => [
- q(5722),
+ q(5713),
q(0),
],
q(qxh) => [
- q(5723),
+ q(5714),
q(0),
],
q(qxl) => [
- q(5724),
+ q(5715),
q(0),
],
q(qxn) => [
- q(5725),
+ q(5716),
q(0),
],
q(qxo) => [
- q(5726),
+ q(5717),
q(0),
],
q(qxp) => [
- q(5727),
+ q(5718),
q(0),
],
q(qxq) => [
- q(5728),
+ q(5719),
q(0),
],
q(qxr) => [
- q(5729),
+ q(5720),
q(0),
],
q(qxs) => [
- q(5730),
+ q(5721),
q(0),
],
q(qxt) => [
- q(5731),
+ q(5722),
q(0),
],
q(qxu) => [
- q(5732),
+ q(5723),
q(0),
],
q(qxw) => [
- q(5733),
+ q(5724),
q(0),
],
q(qya) => [
- q(5734),
+ q(5725),
q(0),
],
q(qyp) => [
- q(5735),
+ q(5726),
q(0),
],
q(raa) => [
- q(5736),
+ q(5727),
q(0),
],
q(rab) => [
- q(5737),
+ q(5728),
q(0),
],
q(rac) => [
- q(5738),
+ q(5729),
q(0),
],
q(rad) => [
- q(5739),
+ q(5730),
q(0),
],
q(raf) => [
- q(5740),
+ q(5731),
q(0),
],
q(rag) => [
- q(5741),
+ q(5732),
q(0),
],
q(rah) => [
- q(5742),
+ q(5733),
q(0),
],
q(rai) => [
- q(5743),
+ q(5734),
q(0),
],
q(raj) => [
- q(0354),
+ q(0355),
q(0),
],
q(rak) => [
- q(5744),
+ q(5735),
q(0),
],
q(ral) => [
- q(5745),
+ q(5736),
q(0),
],
q(ram) => [
- q(5746),
+ q(5737),
q(0),
],
q(ran) => [
- q(5747),
+ q(5738),
q(0),
],
q(rao) => [
- q(5748),
+ q(5739),
q(0),
],
q(rap) => [
- q(0355),
+ q(0356),
q(0),
],
q(raq) => [
- q(5749),
+ q(5740),
q(0),
],
q(rar) => [
- q(0356),
+ q(0357),
q(0),
],
q(ras) => [
- q(5750),
+ q(5741),
q(0),
],
q(rat) => [
- q(5751),
+ q(5742),
q(0),
],
q(rau) => [
- q(5752),
+ q(5743),
q(0),
],
q(rav) => [
- q(5753),
+ q(5744),
q(0),
],
q(raw) => [
- q(5754),
+ q(5745),
q(0),
],
q(rax) => [
- q(5755),
+ q(5746),
q(0),
],
q(ray) => [
- q(5756),
+ q(5747),
q(0),
],
q(raz) => [
- q(5757),
+ q(5748),
q(0),
],
q(rbb) => [
- q(5758),
+ q(5749),
q(0),
],
q(rbk) => [
- q(5759),
+ q(5750),
q(0),
],
q(rbl) => [
- q(5760),
+ q(5751),
q(0),
],
q(rbp) => [
- q(5761),
+ q(5752),
q(0),
],
q(rcf) => [
- q(5762),
+ q(5753),
q(0),
],
q(rdb) => [
- q(5763),
+ q(5754),
q(0),
],
q(rea) => [
- q(5764),
+ q(5755),
q(0),
],
q(reb) => [
- q(5765),
+ q(5756),
q(0),
],
q(ree) => [
- q(5766),
+ q(5757),
q(0),
],
q(reg) => [
- q(5767),
+ q(5758),
q(0),
],
q(rei) => [
- q(5768),
+ q(5759),
q(0),
],
q(rej) => [
- q(5769),
+ q(5760),
q(0),
],
q(rel) => [
- q(5770),
+ q(5761),
q(0),
],
q(rem) => [
- q(5771),
+ q(5762),
q(0),
],
q(ren) => [
- q(5772),
+ q(5763),
q(0),
],
q(rer) => [
- q(5773),
+ q(5764),
q(0),
],
q(res) => [
- q(5774),
+ q(5765),
q(0),
],
q(ret) => [
- q(5775),
+ q(5766),
q(0),
],
q(rey) => [
- q(5776),
+ q(5767),
q(0),
],
q(rga) => [
- q(5777),
+ q(5768),
q(0),
],
q(rge) => [
- q(5778),
+ q(5769),
q(0),
],
q(rgk) => [
- q(5779),
+ q(5770),
q(0),
],
q(rgn) => [
- q(5780),
+ q(5771),
q(0),
],
q(rgr) => [
- q(5781),
+ q(5772),
q(0),
],
q(rgs) => [
- q(5782),
+ q(5773),
q(0),
],
q(rgu) => [
- q(5783),
+ q(5774),
q(0),
],
q(rhg) => [
- q(5784),
+ q(5775),
q(0),
],
q(rhp) => [
- q(5785),
+ q(5776),
q(0),
],
q(ria) => [
- q(5786),
- q(0),
- ],
- q(rie) => [
- q(5787),
+ q(5777),
q(0),
],
q(rif) => [
- q(5788),
+ q(5778),
q(0),
],
q(ril) => [
- q(5789),
+ q(5779),
q(0),
],
q(rim) => [
- q(5790),
+ q(5780),
q(0),
],
q(rin) => [
- q(5791),
+ q(5781),
q(0),
],
q(rir) => [
- q(5792),
+ q(5782),
q(0),
],
q(rit) => [
- q(5793),
+ q(5783),
q(0),
],
q(riu) => [
- q(5794),
+ q(5784),
q(0),
],
q(rjg) => [
- q(5795),
+ q(5785),
q(0),
],
q(rji) => [
- q(5796),
+ q(5786),
q(0),
],
q(rjs) => [
- q(5797),
+ q(5787),
q(0),
],
q(rka) => [
- q(5798),
+ q(5788),
q(0),
],
q(rkb) => [
- q(5799),
+ q(5789),
q(0),
],
q(rkh) => [
- q(5800),
+ q(5790),
q(0),
],
q(rki) => [
- q(5801),
+ q(5791),
q(0),
],
q(rkm) => [
- q(5802),
+ q(5792),
q(0),
],
q(rkt) => [
- q(5803),
+ q(5793),
q(0),
],
q(rkw) => [
- q(5804),
+ q(5794),
q(0),
],
q(rma) => [
- q(5805),
+ q(5795),
q(0),
],
q(rmb) => [
- q(5806),
+ q(5796),
q(0),
],
q(rmc) => [
- q(5807),
+ q(5797),
q(0),
],
q(rmd) => [
- q(5808),
+ q(5798),
q(0),
],
q(rme) => [
- q(5809),
+ q(5799),
q(0),
],
q(rmf) => [
- q(5810),
+ q(5800),
q(0),
],
q(rmg) => [
- q(5811),
+ q(5801),
q(0),
],
q(rmh) => [
- q(5812),
+ q(5802),
q(0),
],
q(rmi) => [
- q(5813),
+ q(5803),
q(0),
],
q(rmk) => [
- q(5814),
+ q(5804),
q(0),
],
q(rml) => [
- q(5815),
+ q(5805),
q(0),
],
q(rmm) => [
- q(5816),
+ q(5806),
q(0),
],
q(rmn) => [
- q(5817),
+ q(5807),
q(0),
],
q(rmo) => [
- q(5818),
+ q(5808),
q(0),
],
q(rmp) => [
- q(5819),
+ q(5809),
q(0),
],
q(rmq) => [
- q(5820),
+ q(5810),
q(0),
],
q(rms) => [
- q(5821),
+ q(5811),
q(0),
],
q(rmt) => [
- q(5822),
+ q(5812),
q(0),
],
q(rmu) => [
- q(5823),
+ q(5813),
q(0),
],
q(rmv) => [
- q(5824),
+ q(5814),
q(0),
],
q(rmw) => [
- q(5825),
+ q(5815),
q(0),
],
q(rmx) => [
- q(5826),
+ q(5816),
q(0),
],
q(rmy) => [
- q(5827),
+ q(5817),
q(0),
],
q(rmz) => [
- q(5828),
- q(0),
- ],
- q(rna) => [
- q(5829),
+ q(5818),
q(0),
],
q(rnd) => [
- q(5830),
+ q(5819),
q(0),
],
q(rng) => [
- q(5831),
+ q(5820),
q(0),
],
q(rnl) => [
- q(5832),
+ q(5821),
q(0),
],
q(rnn) => [
- q(5833),
+ q(5822),
q(0),
],
q(rnp) => [
- q(5834),
+ q(5823),
q(0),
],
q(rnr) => [
- q(5835),
+ q(5824),
q(0),
],
q(rnw) => [
- q(5836),
+ q(5825),
q(0),
],
q(roa) => [
- q(0357),
+ q(0358),
q(0),
],
q(rob) => [
- q(5837),
+ q(5826),
q(0),
],
q(roc) => [
- q(5838),
+ q(5827),
q(0),
],
q(rod) => [
- q(5839),
+ q(5828),
q(0),
],
q(roe) => [
- q(5840),
+ q(5829),
q(0),
],
q(rof) => [
- q(5841),
+ q(5830),
q(0),
],
q(rog) => [
- q(5842),
+ q(5831),
q(0),
],
q(roh) => [
- q(0358),
+ q(0359),
q(0),
],
q(rol) => [
- q(5843),
+ q(5832),
q(0),
],
q(rom) => [
- q(0359),
+ q(0360),
q(0),
],
q(roo) => [
- q(5844),
+ q(5833),
q(0),
],
q(rop) => [
- q(5845),
+ q(5834),
q(0),
],
q(ror) => [
- q(5846),
+ q(5835),
q(0),
],
q(rou) => [
- q(5847),
+ q(5836),
q(0),
],
q(row) => [
- q(5848),
+ q(5837),
q(0),
],
q(rpn) => [
- q(5849),
+ q(5838),
q(0),
],
q(rpt) => [
- q(5850),
+ q(5839),
q(0),
],
q(rri) => [
- q(5851),
+ q(5840),
q(0),
],
q(rro) => [
- q(5852),
+ q(5841),
q(0),
],
q(rrt) => [
- q(5853),
+ q(5842),
q(0),
],
q(rsb) => [
- q(5854),
+ q(5843),
q(0),
],
- q(rsi) => [
- q(5855),
+ q(rsl) => [
+ q(5844),
q(0),
],
- q(rsl) => [
- q(5856),
+ q(rsm) => [
+ q(5845),
q(0),
],
q(rtc) => [
- q(5857),
+ q(5846),
q(0),
],
q(rth) => [
- q(5858),
+ q(5847),
q(0),
],
q(rtm) => [
- q(5859),
+ q(5848),
q(0),
],
q(rts) => [
- q(5860),
+ q(5849),
q(0),
],
q(rtw) => [
- q(5861),
+ q(5850),
q(0),
],
q(rub) => [
- q(5862),
+ q(5851),
q(0),
],
q(ruc) => [
- q(5863),
+ q(5852),
q(0),
],
q(rue) => [
- q(5864),
+ q(5853),
q(0),
],
q(ruf) => [
- q(5865),
+ q(5854),
q(0),
],
q(rug) => [
- q(5866),
+ q(5855),
q(0),
],
q(ruh) => [
- q(5867),
+ q(5856),
q(0),
],
q(rui) => [
- q(5868),
+ q(5857),
q(0),
],
q(ruk) => [
- q(5869),
+ q(5858),
q(0),
],
q(rum) => [
- q(0360),
+ q(0361),
q(0),
],
q(run) => [
- q(0361),
+ q(0362),
q(0),
],
q(ruo) => [
- q(5870),
+ q(5859),
q(0),
],
q(rup) => [
- q(0362),
+ q(0363),
q(2),
],
q(ruq) => [
- q(5871),
+ q(5860),
q(0),
],
q(rus) => [
- q(0363),
+ q(0364),
q(0),
],
q(rut) => [
- q(5872),
+ q(5861),
q(0),
],
q(ruu) => [
- q(5873),
+ q(5862),
q(0),
],
q(ruy) => [
- q(5874),
+ q(5863),
q(0),
],
q(ruz) => [
- q(5875),
+ q(5864),
q(0),
],
q(rwa) => [
- q(5876),
+ q(5865),
q(0),
],
q(rwk) => [
- q(5877),
+ q(5866),
q(0),
],
q(rwm) => [
- q(5878),
+ q(5867),
q(0),
],
q(rwo) => [
- q(5879),
+ q(5868),
q(0),
],
q(rwr) => [
- q(5880),
+ q(5869),
q(0),
],
q(rxd) => [
- q(5881),
+ q(5870),
q(0),
],
q(rxw) => [
- q(5882),
+ q(5871),
q(0),
],
q(ryn) => [
- q(5883),
+ q(5872),
q(0),
],
q(rys) => [
- q(5884),
+ q(5873),
q(0),
],
q(ryu) => [
- q(5885),
+ q(5874),
+ q(0),
+ ],
+ q(rzh) => [
+ q(5875),
q(0),
],
q(saa) => [
- q(5886),
+ q(5876),
q(0),
],
q(sab) => [
- q(5887),
+ q(5877),
q(0),
],
q(sac) => [
- q(5888),
+ q(5878),
q(0),
],
q(sad) => [
- q(0364),
+ q(0365),
q(0),
],
q(sae) => [
- q(5889),
+ q(5879),
q(0),
],
q(saf) => [
- q(5890),
+ q(5880),
q(0),
],
q(sag) => [
- q(0365),
+ q(0366),
q(0),
],
q(sah) => [
- q(0366),
+ q(0367),
q(0),
],
q(sai) => [
- q(0367),
+ q(0368),
q(1),
],
q(saj) => [
- q(5891),
+ q(5881),
q(0),
],
q(sak) => [
- q(5892),
+ q(5882),
q(0),
],
q(sal) => [
- q(0368),
+ q(0369),
q(0),
],
q(sam) => [
- q(0369),
+ q(0370),
q(0),
],
q(san) => [
- q(0370),
+ q(0371),
q(0),
],
q(sao) => [
- q(5893),
+ q(5883),
q(0),
],
q(saq) => [
- q(5894),
+ q(5884),
q(0),
],
q(sar) => [
- q(5895),
+ q(5885),
q(0),
],
q(sas) => [
- q(0371),
+ q(0372),
q(0),
],
q(sat) => [
- q(0372),
+ q(0373),
q(0),
],
q(sau) => [
- q(5896),
+ q(5886),
q(0),
],
q(sav) => [
- q(5897),
+ q(5887),
q(0),
],
q(saw) => [
- q(5898),
+ q(5888),
q(0),
],
q(sax) => [
- q(5899),
+ q(5889),
q(0),
],
q(say) => [
- q(5900),
+ q(5890),
q(0),
],
q(saz) => [
- q(5901),
+ q(5891),
q(0),
],
q(sba) => [
- q(5902),
+ q(5892),
q(0),
],
q(sbb) => [
- q(5903),
+ q(5893),
q(0),
],
q(sbc) => [
- q(5904),
+ q(5894),
q(0),
],
q(sbd) => [
- q(5905),
+ q(5895),
q(0),
],
q(sbe) => [
- q(5906),
+ q(5896),
q(0),
],
q(sbf) => [
- q(5907),
+ q(5897),
q(0),
],
q(sbg) => [
- q(5908),
+ q(5898),
q(0),
],
q(sbh) => [
- q(5909),
+ q(5899),
q(0),
],
q(sbi) => [
- q(5910),
+ q(5900),
q(0),
],
q(sbj) => [
- q(5911),
+ q(5901),
q(0),
],
q(sbk) => [
- q(5912),
+ q(5902),
q(0),
],
q(sbl) => [
- q(5913),
+ q(5903),
q(0),
],
q(sbm) => [
- q(5914),
+ q(5904),
q(0),
],
q(sbn) => [
- q(5915),
+ q(5905),
q(0),
],
q(sbo) => [
- q(5916),
+ q(5906),
q(0),
],
q(sbp) => [
- q(5917),
+ q(5907),
q(0),
],
q(sbq) => [
- q(5918),
+ q(5908),
q(0),
],
q(sbr) => [
- q(5919),
+ q(5909),
q(0),
],
q(sbs) => [
- q(5920),
+ q(5910),
q(0),
],
q(sbt) => [
- q(5921),
+ q(5911),
q(0),
],
q(sbu) => [
- q(5922),
+ q(5912),
q(0),
],
q(sbv) => [
- q(5923),
+ q(5913),
q(0),
],
q(sbw) => [
- q(5924),
+ q(5914),
q(0),
],
q(sbx) => [
- q(5925),
+ q(5915),
q(0),
],
q(sby) => [
- q(5926),
+ q(5916),
q(0),
],
q(sbz) => [
- q(5927),
+ q(5917),
q(0),
],
q(scb) => [
- q(5928),
+ q(5918),
q(0),
],
q(sce) => [
- q(5929),
+ q(5919),
q(0),
],
q(scf) => [
- q(5930),
+ q(5920),
q(0),
],
q(scg) => [
- q(5931),
+ q(5921),
q(0),
],
q(sch) => [
- q(5932),
+ q(5922),
q(0),
],
q(sci) => [
- q(5933),
+ q(5923),
q(0),
],
q(sck) => [
- q(5934),
+ q(5924),
q(0),
],
q(scl) => [
- q(5935),
+ q(5925),
q(0),
],
q(scn) => [
- q(0373),
+ q(0374),
q(0),
],
q(sco) => [
- q(0374),
+ q(0375),
q(0),
],
q(scp) => [
- q(5936),
+ q(5926),
q(0),
],
q(scq) => [
- q(5937),
+ q(5927),
q(0),
],
q(scs) => [
- q(5938),
+ q(5928),
+ q(0),
+ ],
+ q(sct) => [
+ q(5929),
q(0),
],
q(scu) => [
- q(5939),
+ q(5930),
q(0),
],
q(scv) => [
- q(5940),
+ q(5931),
q(0),
],
q(scw) => [
- q(5941),
+ q(5932),
q(0),
],
q(scx) => [
- q(5942),
+ q(5933),
q(0),
],
q(sda) => [
- q(5943),
+ q(5934),
q(0),
],
q(sdb) => [
- q(5944),
+ q(5935),
q(0),
],
q(sdc) => [
- q(5945),
+ q(5936),
q(0),
],
q(sde) => [
- q(5946),
+ q(5937),
q(0),
],
q(sdf) => [
- q(5947),
+ q(5938),
q(0),
],
q(sdg) => [
- q(5948),
+ q(5939),
q(0),
],
q(sdh) => [
- q(5949),
+ q(5940),
q(0),
],
q(sdj) => [
- q(5950),
+ q(5941),
q(0),
],
q(sdk) => [
- q(5951),
+ q(5942),
q(0),
],
q(sdl) => [
- q(5952),
+ q(5943),
q(0),
],
q(sdm) => [
- q(5953),
+ q(5944),
q(0),
],
q(sdn) => [
- q(5954),
+ q(5945),
q(0),
],
q(sdo) => [
- q(5955),
+ q(5946),
q(0),
],
q(sdp) => [
- q(5956),
+ q(5947),
q(0),
],
q(sdr) => [
- q(5957),
+ q(5948),
q(0),
],
q(sds) => [
- q(5958),
+ q(5949),
q(0),
],
q(sdt) => [
- q(5959),
+ q(5950),
q(0),
],
q(sdu) => [
- q(5960),
+ q(5951),
q(0),
],
q(sdv) => [
- q(0524),
+ q(0525),
q(0),
],
q(sdx) => [
- q(5961),
+ q(5952),
q(0),
],
q(sdz) => [
- q(5962),
+ q(5953),
q(0),
],
q(sea) => [
- q(5963),
+ q(5954),
q(0),
],
q(seb) => [
- q(5964),
+ q(5955),
q(0),
],
q(sec) => [
- q(5965),
+ q(5956),
q(0),
],
q(sed) => [
- q(5966),
+ q(5957),
q(0),
],
q(see) => [
- q(5967),
+ q(5958),
q(0),
],
q(sef) => [
- q(5968),
+ q(5959),
q(0),
],
q(seg) => [
- q(5969),
+ q(5960),
q(0),
],
q(seh) => [
- q(5970),
+ q(5961),
q(0),
],
q(sei) => [
- q(5971),
+ q(5962),
q(0),
],
q(sej) => [
- q(5972),
+ q(5963),
q(0),
],
q(sek) => [
- q(5973),
+ q(5964),
q(0),
],
q(sel) => [
- q(0375),
+ q(0376),
q(0),
],
q(sem) => [
- q(0376),
+ q(0377),
q(0),
],
q(sen) => [
- q(5974),
+ q(5965),
q(0),
],
q(seo) => [
- q(5975),
+ q(5966),
q(0),
],
q(sep) => [
- q(5976),
+ q(5967),
q(0),
],
q(seq) => [
- q(5977),
+ q(5968),
q(0),
],
q(ser) => [
- q(5978),
+ q(5969),
q(0),
],
q(ses) => [
- q(5979),
+ q(5970),
q(0),
],
q(set) => [
- q(5980),
+ q(5971),
q(0),
],
q(seu) => [
- q(5981),
+ q(5972),
q(0),
],
q(sev) => [
- q(5982),
+ q(5973),
q(0),
],
q(sew) => [
- q(5983),
+ q(5974),
q(0),
],
q(sey) => [
- q(5984),
+ q(5975),
q(0),
],
q(sez) => [
- q(5985),
+ q(5976),
q(0),
],
q(sfb) => [
- q(5986),
+ q(5977),
q(0),
],
q(sfe) => [
- q(5987),
+ q(5978),
q(0),
],
q(sfm) => [
- q(5988),
+ q(5979),
q(0),
],
q(sfs) => [
- q(5989),
+ q(5980),
q(0),
],
q(sfw) => [
- q(5990),
+ q(5981),
q(0),
],
q(sga) => [
- q(0377),
+ q(0378),
q(1),
],
q(sgb) => [
- q(5991),
+ q(5982),
q(0),
],
q(sgc) => [
- q(5992),
+ q(5983),
q(0),
],
q(sgd) => [
- q(5993),
+ q(5984),
q(0),
],
q(sge) => [
- q(5994),
+ q(5985),
q(0),
],
q(sgg) => [
- q(5995),
+ q(5986),
q(0),
],
q(sgh) => [
- q(5996),
+ q(5987),
q(0),
],
q(sgi) => [
- q(5997),
+ q(5988),
q(0),
],
q(sgj) => [
- q(5998),
+ q(5989),
q(0),
],
q(sgk) => [
- q(5999),
+ q(5990),
q(0),
],
q(sgm) => [
- q(6000),
+ q(5991),
q(0),
],
q(sgn) => [
- q(0378),
+ q(0379),
q(0),
],
q(sgp) => [
- q(6001),
+ q(5992),
q(0),
],
q(sgr) => [
- q(6002),
+ q(5993),
q(0),
],
q(sgs) => [
- q(6003),
+ q(5994),
q(0),
],
q(sgt) => [
- q(6004),
+ q(5995),
q(0),
],
q(sgu) => [
- q(6005),
+ q(5996),
q(0),
],
q(sgw) => [
- q(6006),
+ q(5997),
q(0),
],
q(sgx) => [
- q(6007),
+ q(5998),
q(0),
],
q(sgy) => [
- q(6008),
+ q(5999),
q(0),
],
q(sgz) => [
- q(6009),
+ q(6000),
q(0),
],
q(sha) => [
- q(6010),
+ q(6001),
q(0),
],
q(shb) => [
- q(6011),
+ q(6002),
q(0),
],
q(shc) => [
- q(6012),
+ q(6003),
q(0),
],
q(shd) => [
- q(6013),
+ q(6004),
q(0),
],
q(she) => [
- q(6014),
+ q(6005),
q(0),
],
q(shg) => [
- q(6015),
+ q(6006),
q(0),
],
q(shh) => [
- q(6016),
+ q(6007),
q(0),
],
q(shi) => [
- q(6017),
+ q(6008),
q(0),
],
q(shj) => [
- q(6018),
+ q(6009),
q(0),
],
q(shk) => [
- q(6019),
+ q(6010),
q(0),
],
q(shl) => [
- q(6020),
+ q(6011),
q(0),
],
q(shm) => [
- q(6021),
+ q(6012),
q(0),
],
q(shn) => [
- q(0379),
+ q(0380),
q(0),
],
q(sho) => [
- q(6022),
+ q(6013),
q(0),
],
q(shp) => [
- q(6023),
+ q(6014),
q(0),
],
q(shq) => [
- q(6024),
+ q(6015),
q(0),
],
q(shr) => [
- q(6025),
+ q(6016),
q(0),
],
q(shs) => [
- q(6026),
+ q(6017),
q(0),
],
q(sht) => [
- q(6027),
+ q(6018),
q(0),
],
q(shu) => [
- q(6028),
+ q(6019),
q(0),
],
q(shv) => [
- q(6029),
+ q(6020),
q(0),
],
q(shw) => [
- q(6030),
+ q(6021),
q(0),
],
q(shx) => [
- q(6031),
+ q(6022),
q(0),
],
q(shy) => [
- q(6032),
+ q(6023),
q(0),
],
q(shz) => [
- q(6033),
+ q(6024),
q(0),
],
q(sia) => [
- q(6034),
+ q(6025),
q(0),
],
q(sib) => [
- q(6035),
+ q(6026),
q(0),
],
q(sid) => [
- q(0380),
+ q(0381),
q(0),
],
q(sie) => [
- q(6036),
+ q(6027),
q(0),
],
q(sif) => [
- q(6037),
+ q(6028),
q(0),
],
q(sig) => [
- q(6038),
+ q(6029),
q(0),
],
q(sih) => [
- q(6039),
+ q(6030),
q(0),
],
q(sii) => [
- q(6040),
+ q(6031),
q(0),
],
q(sij) => [
- q(6041),
+ q(6032),
q(0),
],
q(sik) => [
- q(6042),
+ q(6033),
q(0),
],
q(sil) => [
- q(6043),
+ q(6034),
q(0),
],
q(sim) => [
- q(6044),
+ q(6035),
q(0),
],
q(sin) => [
- q(0381),
+ q(0382),
q(0),
],
q(sio) => [
- q(0382),
+ q(0383),
q(0),
],
q(sip) => [
- q(6045),
+ q(6036),
q(0),
],
q(siq) => [
- q(6046),
+ q(6037),
q(0),
],
q(sir) => [
- q(6047),
+ q(6038),
q(0),
],
q(sis) => [
- q(6048),
+ q(6039),
q(0),
],
q(sit) => [
- q(0383),
+ q(0384),
q(0),
],
q(siu) => [
- q(6049),
+ q(6040),
q(0),
],
q(siv) => [
- q(6050),
+ q(6041),
q(0),
],
q(siw) => [
- q(6051),
+ q(6042),
q(0),
],
q(six) => [
- q(6052),
+ q(6043),
q(0),
],
q(siy) => [
- q(6053),
+ q(6044),
q(0),
],
q(siz) => [
- q(6054),
+ q(6045),
q(0),
],
q(sja) => [
- q(6055),
+ q(6046),
q(0),
],
q(sjb) => [
- q(6056),
+ q(6047),
q(0),
],
q(sjd) => [
- q(6057),
+ q(6048),
q(0),
],
q(sje) => [
- q(6058),
+ q(6049),
q(0),
],
q(sjg) => [
- q(6059),
+ q(6050),
q(0),
],
q(sjk) => [
- q(6060),
+ q(6051),
q(0),
],
q(sjl) => [
- q(6061),
+ q(6052),
q(0),
],
q(sjm) => [
- q(6062),
+ q(6053),
q(0),
],
q(sjn) => [
- q(6063),
+ q(6054),
q(0),
],
q(sjo) => [
- q(6064),
+ q(6055),
q(0),
],
q(sjp) => [
- q(6065),
+ q(6056),
q(0),
],
q(sjr) => [
- q(6066),
+ q(6057),
q(0),
],
q(sjs) => [
- q(6067),
+ q(6058),
q(0),
],
q(sjt) => [
- q(6068),
+ q(6059),
q(0),
],
q(sju) => [
- q(6069),
+ q(6060),
q(0),
],
q(sjw) => [
- q(6070),
+ q(6061),
q(0),
],
q(ska) => [
- q(6071),
+ q(6062),
q(0),
],
q(skb) => [
- q(6072),
+ q(6063),
q(0),
],
q(skc) => [
- q(6073),
+ q(6064),
q(0),
],
q(skd) => [
- q(6074),
+ q(6065),
q(0),
],
q(ske) => [
- q(6075),
+ q(6066),
q(0),
],
q(skf) => [
- q(6076),
+ q(6067),
q(0),
],
q(skg) => [
- q(6077),
+ q(6068),
q(0),
],
q(skh) => [
- q(6078),
+ q(6069),
q(0),
],
q(ski) => [
- q(6079),
+ q(6070),
q(0),
],
q(skj) => [
- q(6080),
- q(0),
- ],
- q(skk) => [
- q(6081),
+ q(6071),
q(0),
],
q(skm) => [
- q(6082),
+ q(6072),
q(0),
],
q(skn) => [
- q(6083),
+ q(6073),
q(0),
],
q(sko) => [
- q(6084),
+ q(6074),
q(0),
],
q(skp) => [
- q(6085),
+ q(6075),
q(0),
],
q(skq) => [
- q(6086),
+ q(6076),
q(0),
],
q(skr) => [
- q(6087),
+ q(6077),
q(0),
],
q(sks) => [
- q(6088),
+ q(6078),
q(0),
],
q(skt) => [
- q(6089),
+ q(6079),
q(0),
],
q(sku) => [
- q(6090),
+ q(6080),
q(0),
],
q(skv) => [
- q(6091),
+ q(6081),
q(0),
],
q(skw) => [
- q(6092),
+ q(6082),
q(0),
],
q(skx) => [
- q(6093),
+ q(6083),
q(0),
],
q(sky) => [
- q(6094),
+ q(6084),
q(0),
],
q(skz) => [
- q(6095),
+ q(6085),
q(0),
],
q(sla) => [
- q(0384),
+ q(0385),
q(0),
],
q(slc) => [
- q(5906),
+ q(5896),
q(0),
],
q(sld) => [
- q(6096),
+ q(6086),
q(0),
],
q(sle) => [
- q(6097),
+ q(6087),
q(0),
],
q(slf) => [
- q(6098),
+ q(6088),
q(0),
],
q(slg) => [
- q(6099),
+ q(6089),
q(0),
],
q(slh) => [
- q(6100),
+ q(6090),
q(0),
],
q(sli) => [
- q(6101),
+ q(6091),
q(0),
],
q(slj) => [
- q(6102),
+ q(6092),
q(0),
],
q(sll) => [
- q(6103),
+ q(6093),
q(0),
],
q(slm) => [
- q(6104),
+ q(6094),
q(0),
],
q(sln) => [
- q(6105),
+ q(6095),
q(0),
],
q(slo) => [
- q(0385),
+ q(0386),
q(0),
],
q(slp) => [
- q(6106),
+ q(6096),
q(0),
],
q(slq) => [
- q(6107),
+ q(6097),
q(0),
],
q(slr) => [
- q(6108),
+ q(6098),
q(0),
],
q(sls) => [
- q(6109),
+ q(6099),
q(0),
],
q(slt) => [
- q(6110),
+ q(6100),
q(0),
],
q(slu) => [
- q(6111),
+ q(6101),
q(0),
],
q(slv) => [
- q(0386),
+ q(0387),
q(0),
],
q(slw) => [
- q(6112),
+ q(6102),
q(0),
],
q(slx) => [
- q(6113),
+ q(6103),
q(0),
],
q(sly) => [
- q(6114),
+ q(6104),
q(0),
],
q(slz) => [
- q(6115),
+ q(6105),
q(0),
],
q(sma) => [
- q(0387),
+ q(0388),
q(0),
],
q(smb) => [
- q(6116),
+ q(6106),
q(0),
],
q(smc) => [
- q(6117),
+ q(6107),
q(0),
],
q(smd) => [
- q(6118),
+ q(6108),
q(0),
],
q(sme) => [
- q(0388),
+ q(0389),
q(0),
],
q(smf) => [
- q(6119),
+ q(6109),
q(0),
],
q(smg) => [
- q(6120),
+ q(6110),
q(0),
],
q(smh) => [
- q(6121),
+ q(6111),
q(0),
],
q(smi) => [
- q(0389),
+ q(0390),
q(0),
],
q(smj) => [
- q(0390),
+ q(0391),
q(0),
],
q(smk) => [
- q(6122),
+ q(6112),
q(0),
],
q(sml) => [
- q(6123),
+ q(6113),
q(0),
],
q(smm) => [
- q(6124),
+ q(6114),
q(0),
],
q(smn) => [
- q(0391),
+ q(0392),
q(0),
],
q(smo) => [
- q(0392),
+ q(0393),
q(0),
],
q(smp) => [
- q(6125),
+ q(6115),
q(0),
],
q(smq) => [
- q(6126),
+ q(6116),
q(0),
],
q(smr) => [
- q(6127),
+ q(6117),
q(0),
],
q(sms) => [
- q(0393),
+ q(0394),
q(0),
],
q(smt) => [
- q(6128),
+ q(6118),
q(0),
],
q(smu) => [
- q(6129),
+ q(6119),
q(0),
],
q(smv) => [
- q(6130),
+ q(6120),
q(0),
],
q(smw) => [
- q(6131),
+ q(6121),
q(0),
],
q(smx) => [
- q(6132),
+ q(6122),
q(0),
],
q(smy) => [
- q(6133),
+ q(6123),
q(0),
],
q(smz) => [
- q(6134),
+ q(6124),
q(0),
],
q(sna) => [
- q(0394),
+ q(0395),
q(0),
],
q(snb) => [
- q(6135),
+ q(6125),
q(0),
],
q(snc) => [
- q(6136),
+ q(6126),
q(0),
],
q(snd) => [
- q(0395),
+ q(0396),
q(0),
],
q(sne) => [
- q(6137),
+ q(6127),
q(0),
],
q(snf) => [
- q(6138),
+ q(6128),
q(0),
],
q(sng) => [
- q(6139),
- q(0),
- ],
- q(snh) => [
- q(6140),
+ q(6129),
q(0),
],
q(sni) => [
- q(6141),
+ q(6130),
q(0),
],
q(snj) => [
- q(6142),
+ q(6131),
q(0),
],
q(snk) => [
- q(0396),
+ q(0397),
q(0),
],
q(snl) => [
- q(6143),
+ q(6132),
q(0),
],
q(snm) => [
- q(6144),
+ q(6133),
q(0),
],
q(snn) => [
- q(6145),
+ q(6134),
q(0),
],
q(sno) => [
- q(6146),
+ q(6135),
q(0),
],
q(snp) => [
- q(6147),
+ q(6136),
q(0),
],
q(snq) => [
- q(6148),
+ q(6137),
q(0),
],
q(snr) => [
- q(6149),
+ q(6138),
q(0),
],
q(sns) => [
- q(6150),
+ q(6139),
q(0),
],
q(snu) => [
- q(6151),
+ q(6140),
q(0),
],
q(snv) => [
- q(6152),
+ q(6141),
q(0),
],
q(snw) => [
- q(6153),
+ q(6142),
q(0),
],
q(snx) => [
- q(6154),
+ q(6143),
q(0),
],
q(sny) => [
- q(6155),
+ q(6144),
q(0),
],
q(snz) => [
- q(6156),
+ q(6145),
q(0),
],
q(soa) => [
- q(6157),
+ q(6146),
q(0),
],
q(sob) => [
- q(6158),
+ q(6147),
q(0),
],
q(soc) => [
- q(6159),
+ q(6148),
q(0),
],
q(sod) => [
- q(6160),
+ q(6149),
q(0),
],
q(soe) => [
- q(6161),
+ q(6150),
q(0),
],
q(sog) => [
- q(0397),
+ q(0398),
q(0),
],
q(soh) => [
- q(6162),
+ q(6151),
q(0),
],
q(soi) => [
- q(6163),
+ q(6152),
q(0),
],
q(soj) => [
- q(6164),
+ q(6153),
q(0),
],
q(sok) => [
- q(6165),
+ q(6154),
q(0),
],
q(sol) => [
- q(6166),
+ q(6155),
q(0),
],
q(som) => [
- q(0398),
+ q(0399),
q(0),
],
q(son) => [
- q(0399),
+ q(0400),
q(0),
],
q(soo) => [
- q(6167),
+ q(6156),
q(0),
],
q(sop) => [
- q(6168),
+ q(6157),
q(0),
],
q(soq) => [
- q(6169),
+ q(6158),
q(0),
],
q(sor) => [
- q(6170),
+ q(6159),
q(0),
],
q(sos) => [
- q(6171),
+ q(6160),
q(0),
],
q(sot) => [
- q(0400),
+ q(0401),
q(0),
],
q(sou) => [
- q(6172),
+ q(6161),
q(0),
],
q(sov) => [
- q(6173),
+ q(6162),
q(0),
],
q(sow) => [
- q(6174),
+ q(6163),
q(0),
],
q(sox) => [
- q(6175),
+ q(6164),
q(0),
],
q(soy) => [
- q(6176),
+ q(6165),
q(0),
],
q(soz) => [
- q(6177),
+ q(6166),
q(0),
],
q(spa) => [
- q(0401),
+ q(0402),
q(0),
],
q(spb) => [
- q(6178),
+ q(6167),
q(0),
],
q(spc) => [
- q(6179),
+ q(6168),
q(0),
],
q(spd) => [
- q(6180),
+ q(6169),
q(0),
],
q(spe) => [
- q(6181),
+ q(6170),
q(0),
],
q(spg) => [
- q(6182),
+ q(6171),
q(0),
],
q(spi) => [
- q(6183),
+ q(6172),
q(0),
],
q(spk) => [
- q(6184),
+ q(6173),
q(0),
],
q(spl) => [
- q(6185),
+ q(6174),
q(0),
],
q(spm) => [
- q(6186),
+ q(6175),
q(0),
],
q(spn) => [
- q(6187),
+ q(6176),
q(0),
],
q(spo) => [
- q(6188),
+ q(6177),
q(0),
],
q(spp) => [
- q(6189),
+ q(6178),
q(0),
],
q(spq) => [
- q(6190),
+ q(6179),
q(0),
],
q(spr) => [
- q(6191),
+ q(6180),
q(0),
],
q(sps) => [
- q(6192),
+ q(6181),
q(0),
],
q(spt) => [
- q(6193),
+ q(6182),
q(0),
],
q(spu) => [
- q(6194),
+ q(6183),
q(0),
],
q(spv) => [
- q(6195),
+ q(6184),
q(0),
],
q(spx) => [
- q(6196),
+ q(6185),
q(0),
],
q(spy) => [
- q(6197),
+ q(6186),
q(0),
],
q(sqa) => [
- q(6198),
+ q(6187),
q(0),
],
q(sqh) => [
- q(6199),
+ q(6188),
q(0),
],
q(sqj) => [
- q(0525),
+ q(0526),
q(0),
],
q(sqk) => [
- q(6200),
+ q(6189),
q(0),
],
q(sqm) => [
- q(6201),
+ q(6190),
q(0),
],
q(sqn) => [
- q(6202),
+ q(6191),
q(0),
],
q(sqo) => [
- q(6203),
+ q(6192),
q(0),
],
q(sqq) => [
- q(6204),
+ q(6193),
q(0),
],
q(sqr) => [
- q(6205),
+ q(6194),
q(0),
],
q(sqs) => [
- q(6206),
+ q(6195),
q(0),
],
q(sqt) => [
- q(6207),
+ q(6196),
q(0),
],
q(squ) => [
- q(6208),
+ q(6197),
q(0),
],
q(sra) => [
- q(6209),
+ q(6198),
q(0),
],
q(srb) => [
- q(6210),
+ q(6199),
q(0),
],
q(src) => [
- q(6211),
+ q(6200),
q(0),
],
q(srd) => [
- q(0402),
+ q(0403),
q(0),
],
q(sre) => [
- q(6212),
+ q(6201),
q(0),
],
q(srf) => [
- q(6213),
+ q(6202),
q(0),
],
q(srg) => [
- q(6214),
+ q(6203),
q(0),
],
q(srh) => [
- q(6215),
+ q(6204),
q(0),
],
q(sri) => [
- q(6216),
+ q(6205),
q(0),
],
q(srk) => [
- q(6217),
+ q(6206),
q(0),
],
q(srl) => [
- q(6218),
+ q(6207),
q(0),
],
q(srm) => [
- q(6219),
+ q(6208),
q(0),
],
q(srn) => [
- q(0403),
+ q(0404),
q(0),
],
q(sro) => [
- q(6220),
+ q(6209),
q(0),
],
q(srp) => [
- q(0404),
+ q(0405),
q(0),
],
q(srq) => [
- q(6221),
+ q(6210),
q(0),
],
q(srr) => [
- q(0405),
+ q(0406),
q(0),
],
q(srs) => [
- q(6222),
+ q(6211),
q(0),
],
q(srt) => [
- q(6223),
+ q(6212),
q(0),
],
q(sru) => [
- q(6224),
+ q(6213),
q(0),
],
q(srv) => [
- q(6225),
+ q(6214),
q(0),
],
q(srw) => [
- q(6226),
+ q(6215),
q(0),
],
q(srx) => [
- q(6227),
+ q(6216),
q(0),
],
q(sry) => [
- q(6228),
+ q(6217),
q(0),
],
q(srz) => [
- q(6229),
+ q(6218),
q(0),
],
q(ssa) => [
- q(0406),
+ q(0407),
q(0),
],
q(ssb) => [
- q(6230),
+ q(6219),
q(0),
],
q(ssc) => [
- q(6231),
+ q(6220),
q(0),
],
q(ssd) => [
- q(6232),
+ q(6221),
q(0),
],
q(sse) => [
- q(6233),
+ q(6222),
q(0),
],
q(ssf) => [
- q(6234),
+ q(6223),
q(0),
],
q(ssg) => [
- q(6235),
+ q(6224),
q(0),
],
q(ssh) => [
- q(6236),
+ q(6225),
q(0),
],
q(ssi) => [
- q(6237),
+ q(6226),
q(0),
],
q(ssj) => [
- q(6238),
+ q(6227),
q(0),
],
q(ssk) => [
- q(6239),
+ q(6228),
q(0),
],
q(ssl) => [
- q(6240),
+ q(6229),
q(0),
],
q(ssm) => [
- q(6241),
+ q(6230),
q(0),
],
q(ssn) => [
- q(6242),
+ q(6231),
q(0),
],
q(sso) => [
- q(6243),
+ q(6232),
q(0),
],
q(ssp) => [
- q(6244),
+ q(6233),
q(0),
],
q(ssq) => [
- q(6245),
+ q(6234),
q(0),
],
q(ssr) => [
- q(6246),
+ q(6235),
q(0),
],
q(sss) => [
- q(6247),
+ q(6236),
q(0),
],
q(sst) => [
- q(6248),
+ q(6237),
q(0),
],
q(ssu) => [
- q(6249),
+ q(6238),
q(0),
],
q(ssv) => [
- q(6250),
+ q(6239),
q(0),
],
q(ssw) => [
- q(0407),
+ q(0408),
q(0),
],
q(ssx) => [
- q(6251),
+ q(6240),
q(0),
],
q(ssy) => [
- q(6252),
+ q(6241),
q(0),
],
q(ssz) => [
- q(6253),
+ q(6242),
q(0),
],
q(sta) => [
- q(6254),
+ q(6243),
q(0),
],
q(stb) => [
- q(6255),
+ q(6244),
q(0),
],
q(std) => [
- q(6256),
+ q(6245),
q(0),
],
q(ste) => [
- q(6257),
+ q(6246),
q(0),
],
q(stf) => [
- q(6258),
+ q(6247),
q(0),
],
q(stg) => [
- q(6259),
+ q(6248),
q(0),
],
q(sth) => [
- q(6260),
+ q(6249),
q(0),
],
q(sti) => [
- q(6261),
+ q(6250),
q(0),
],
q(stj) => [
- q(6262),
+ q(6251),
q(0),
],
q(stk) => [
- q(6263),
+ q(6252),
q(0),
],
q(stl) => [
- q(6264),
+ q(6253),
q(0),
],
q(stm) => [
- q(6265),
+ q(6254),
q(0),
],
q(stn) => [
- q(6266),
+ q(6255),
q(0),
],
q(sto) => [
- q(6267),
+ q(6256),
q(0),
],
q(stp) => [
- q(6268),
+ q(6257),
q(0),
],
q(stq) => [
- q(6269),
+ q(6258),
q(0),
],
q(str) => [
- q(6270),
+ q(6259),
q(0),
],
q(sts) => [
- q(6271),
+ q(6260),
q(0),
],
q(stt) => [
- q(6272),
+ q(6261),
q(0),
],
q(stu) => [
- q(6273),
+ q(6262),
q(0),
],
q(stv) => [
- q(6274),
+ q(6263),
q(0),
],
q(stw) => [
- q(6275),
+ q(6264),
q(0),
],
q(sty) => [
- q(6276),
+ q(6265),
q(0),
],
q(sua) => [
- q(6277),
+ q(6266),
q(0),
],
q(sub) => [
- q(6278),
+ q(6267),
q(0),
],
q(suc) => [
- q(6279),
+ q(6268),
q(0),
],
q(sue) => [
- q(6280),
+ q(6269),
q(0),
],
q(sug) => [
- q(6281),
+ q(6270),
q(0),
],
q(sui) => [
- q(6282),
+ q(6271),
q(0),
],
q(suj) => [
- q(6283),
+ q(6272),
q(0),
],
q(suk) => [
- q(0408),
+ q(0409),
q(0),
],
q(sun) => [
- q(0409),
+ q(0410),
q(0),
],
q(suq) => [
- q(6284),
+ q(6273),
q(0),
],
q(sur) => [
- q(6285),
+ q(6274),
q(0),
],
q(sus) => [
- q(0410),
+ q(0411),
q(0),
],
q(sut) => [
- q(6286),
+ q(6275),
q(0),
],
q(suv) => [
- q(6287),
+ q(6276),
q(0),
],
q(suw) => [
- q(6288),
+ q(6277),
q(0),
],
q(sux) => [
- q(0411),
+ q(0412),
q(0),
],
q(suy) => [
- q(6289),
+ q(6278),
q(0),
],
q(suz) => [
- q(6290),
+ q(6279),
q(0),
],
q(sva) => [
- q(6291),
+ q(6280),
q(0),
],
q(svb) => [
- q(6292),
+ q(6281),
q(0),
],
q(svc) => [
- q(6293),
+ q(6282),
q(0),
],
q(sve) => [
- q(6294),
+ q(6283),
q(0),
],
q(svk) => [
- q(6295),
+ q(6284),
q(0),
],
q(svm) => [
- q(6296),
- q(0),
- ],
- q(svr) => [
- q(6297),
+ q(6285),
q(0),
],
q(svs) => [
- q(6298),
+ q(6286),
q(0),
],
q(svx) => [
- q(6299),
+ q(6287),
q(0),
],
q(swa) => [
- q(0412),
+ q(0413),
q(0),
],
q(swb) => [
- q(6300),
+ q(6288),
q(0),
],
q(swc) => [
- q(6301),
+ q(6289),
q(0),
],
q(swe) => [
- q(0413),
+ q(0414),
q(0),
],
q(swf) => [
- q(6302),
+ q(6290),
q(0),
],
q(swg) => [
- q(6303),
+ q(6291),
q(0),
],
q(swh) => [
- q(6304),
+ q(6292),
q(0),
],
q(swi) => [
- q(6305),
+ q(6293),
q(0),
],
q(swj) => [
- q(6306),
+ q(6294),
q(0),
],
q(swk) => [
- q(6307),
+ q(6295),
q(0),
],
q(swl) => [
- q(6308),
+ q(6296),
q(0),
],
q(swm) => [
- q(6309),
+ q(6297),
q(0),
],
q(swn) => [
- q(6310),
+ q(6298),
q(0),
],
q(swo) => [
- q(6311),
+ q(6299),
q(0),
],
q(swp) => [
- q(6312),
+ q(6300),
q(0),
],
q(swq) => [
- q(6313),
+ q(6301),
q(0),
],
q(swr) => [
- q(6314),
+ q(6302),
q(0),
],
q(sws) => [
- q(6315),
+ q(6303),
q(0),
],
q(swt) => [
- q(6316),
+ q(6304),
q(0),
],
q(swu) => [
- q(6317),
+ q(6305),
q(0),
],
q(swv) => [
- q(6318),
+ q(6306),
q(0),
],
q(sww) => [
- q(6319),
+ q(6307),
q(0),
],
q(swx) => [
- q(6320),
+ q(6308),
q(0),
],
q(swy) => [
- q(6321),
+ q(6309),
q(0),
],
q(sxb) => [
- q(6322),
+ q(6310),
q(0),
],
q(sxc) => [
- q(6323),
+ q(6311),
q(0),
],
q(sxe) => [
- q(6324),
+ q(6312),
q(0),
],
q(sxg) => [
- q(6325),
+ q(6313),
q(0),
],
q(sxk) => [
- q(6326),
+ q(6314),
q(0),
],
q(sxl) => [
- q(6327),
+ q(6315),
q(0),
],
q(sxm) => [
- q(6328),
+ q(6316),
q(0),
],
q(sxn) => [
- q(6329),
+ q(6317),
q(0),
],
q(sxo) => [
- q(6330),
+ q(6318),
q(0),
],
q(sxr) => [
- q(6331),
+ q(6319),
q(0),
],
q(sxs) => [
- q(6332),
+ q(6320),
q(0),
],
q(sxu) => [
- q(6333),
+ q(6321),
q(0),
],
q(sxw) => [
- q(6334),
+ q(6322),
q(0),
],
q(sya) => [
- q(6335),
+ q(6323),
q(0),
],
q(syb) => [
- q(6336),
+ q(6324),
q(0),
],
q(syc) => [
- q(0414),
+ q(0415),
q(0),
],
q(syd) => [
- q(0526),
+ q(0527),
q(0),
],
q(syi) => [
- q(6337),
+ q(6325),
q(0),
],
q(syk) => [
- q(6338),
+ q(6326),
q(0),
],
q(syl) => [
- q(6339),
+ q(6327),
q(0),
],
q(sym) => [
- q(6340),
+ q(6328),
q(0),
],
q(syn) => [
- q(6341),
+ q(6329),
q(0),
],
q(syo) => [
- q(6342),
+ q(6330),
q(0),
],
q(syr) => [
- q(0415),
+ q(0416),
q(0),
],
q(sys) => [
- q(6343),
+ q(6331),
q(0),
],
q(syw) => [
- q(6344),
+ q(6332),
q(0),
],
q(syx) => [
- q(6345),
+ q(6333),
q(0),
],
q(syy) => [
- q(6346),
+ q(6334),
q(0),
],
q(sza) => [
- q(6347),
+ q(6335),
q(0),
],
q(szb) => [
- q(6348),
+ q(6336),
q(0),
],
q(szc) => [
- q(6349),
+ q(6337),
q(0),
],
q(szd) => [
- q(6350),
+ q(6338),
q(0),
],
q(sze) => [
- q(6351),
+ q(6339),
q(0),
],
q(szg) => [
- q(6352),
+ q(6340),
q(0),
],
q(szl) => [
- q(6353),
+ q(6341),
q(0),
],
q(szn) => [
- q(6354),
+ q(6342),
q(0),
],
q(szp) => [
- q(6355),
+ q(6343),
+ q(0),
+ ],
+ q(szs) => [
+ q(6344),
q(0),
],
q(szv) => [
- q(6356),
+ q(6345),
q(0),
],
q(szw) => [
- q(6357),
+ q(6346),
q(0),
],
q(taa) => [
- q(6358),
+ q(6347),
q(0),
],
q(tab) => [
- q(6359),
+ q(6348),
q(0),
],
q(tac) => [
- q(6360),
+ q(6349),
q(0),
],
q(tad) => [
- q(6361),
+ q(6350),
q(0),
],
q(tae) => [
- q(6362),
+ q(6351),
q(0),
],
q(taf) => [
- q(6363),
+ q(6352),
q(0),
],
q(tag) => [
- q(6364),
+ q(6353),
q(0),
],
q(tah) => [
- q(0416),
+ q(0417),
q(0),
],
q(tai) => [
- q(0417),
+ q(0418),
q(0),
],
q(taj) => [
- q(6365),
+ q(6354),
q(0),
],
q(tak) => [
- q(6366),
+ q(6355),
q(0),
],
q(tal) => [
- q(6367),
+ q(6356),
q(0),
],
q(tam) => [
- q(0418),
+ q(0419),
q(0),
],
q(tan) => [
- q(6368),
+ q(6357),
q(0),
],
q(tao) => [
- q(6369),
+ q(6358),
q(0),
],
q(tap) => [
- q(6370),
+ q(6359),
q(0),
],
q(taq) => [
- q(6371),
+ q(6360),
q(0),
],
q(tar) => [
- q(6372),
+ q(6361),
q(0),
],
q(tas) => [
- q(6373),
+ q(6362),
q(0),
],
q(tat) => [
- q(0419),
+ q(0420),
q(0),
],
q(tau) => [
- q(6374),
+ q(6363),
q(0),
],
q(tav) => [
- q(6375),
+ q(6364),
q(0),
],
q(taw) => [
- q(6376),
+ q(6365),
q(0),
],
q(tax) => [
- q(6377),
+ q(6366),
q(0),
],
q(tay) => [
- q(6378),
+ q(6367),
q(0),
],
q(taz) => [
- q(6379),
+ q(6368),
q(0),
],
q(tba) => [
- q(6380),
+ q(6369),
q(0),
],
q(tbb) => [
- q(6381),
+ q(6370),
q(0),
],
q(tbc) => [
- q(6382),
+ q(6371),
q(0),
],
q(tbd) => [
- q(6383),
+ q(6372),
q(0),
],
q(tbe) => [
- q(6384),
+ q(6373),
q(0),
],
q(tbf) => [
- q(6385),
+ q(6374),
q(0),
],
q(tbg) => [
- q(6386),
+ q(6375),
q(0),
],
q(tbh) => [
- q(6387),
+ q(6376),
q(0),
],
q(tbi) => [
- q(6388),
+ q(6377),
q(0),
],
q(tbj) => [
- q(6389),
+ q(6378),
q(0),
],
q(tbk) => [
- q(6390),
+ q(6379),
q(0),
],
q(tbl) => [
- q(6391),
+ q(6380),
q(0),
],
q(tbm) => [
- q(6392),
+ q(6381),
q(0),
],
q(tbn) => [
- q(6393),
+ q(6382),
q(0),
],
q(tbo) => [
- q(6394),
+ q(6383),
q(0),
],
q(tbp) => [
- q(6395),
+ q(6384),
q(0),
],
q(tbq) => [
- q(0527),
+ q(0528),
q(0),
],
q(tbr) => [
- q(6396),
+ q(6385),
q(0),
],
q(tbs) => [
- q(6397),
+ q(6386),
q(0),
],
q(tbt) => [
- q(6398),
+ q(6387),
q(0),
],
q(tbu) => [
- q(6399),
+ q(6388),
q(0),
],
q(tbv) => [
- q(6400),
+ q(6389),
q(0),
],
q(tbw) => [
- q(6401),
+ q(6390),
q(0),
],
q(tbx) => [
- q(6402),
+ q(6391),
q(0),
],
q(tby) => [
- q(6403),
+ q(6392),
q(0),
],
q(tbz) => [
- q(6404),
+ q(6393),
q(0),
],
q(tca) => [
- q(6405),
+ q(6394),
q(0),
],
q(tcb) => [
- q(6406),
+ q(6395),
q(0),
],
q(tcc) => [
- q(6407),
+ q(6396),
q(0),
],
q(tcd) => [
- q(6408),
+ q(6397),
q(0),
],
q(tce) => [
- q(6409),
+ q(6398),
q(0),
],
q(tcf) => [
- q(6410),
+ q(6399),
q(0),
],
q(tcg) => [
- q(6411),
+ q(6400),
q(0),
],
q(tch) => [
- q(6412),
+ q(6401),
q(0),
],
q(tci) => [
- q(6413),
+ q(6402),
q(0),
],
q(tck) => [
- q(6414),
+ q(6403),
q(0),
],
q(tcl) => [
- q(6415),
+ q(6404),
q(0),
],
q(tcm) => [
- q(6416),
+ q(6405),
q(0),
],
q(tcn) => [
- q(6417),
+ q(6406),
q(0),
],
q(tco) => [
- q(6418),
+ q(6407),
q(0),
],
q(tcp) => [
- q(6419),
+ q(6408),
q(0),
],
q(tcq) => [
- q(6420),
+ q(6409),
q(0),
],
q(tcs) => [
- q(6421),
+ q(6410),
q(0),
],
q(tct) => [
- q(6422),
+ q(6411),
q(0),
],
q(tcu) => [
- q(6423),
+ q(6412),
q(0),
],
q(tcw) => [
- q(6424),
+ q(6413),
q(0),
],
q(tcx) => [
- q(6425),
+ q(6414),
q(0),
],
q(tcy) => [
- q(6426),
+ q(6415),
q(0),
],
q(tcz) => [
- q(6427),
+ q(6416),
q(0),
],
q(tda) => [
- q(6428),
+ q(6417),
q(0),
],
q(tdb) => [
- q(6429),
+ q(6418),
q(0),
],
q(tdc) => [
- q(6430),
+ q(6419),
q(0),
],
q(tdd) => [
- q(6431),
+ q(6420),
q(0),
],
q(tde) => [
- q(6432),
+ q(6421),
q(0),
],
q(tdf) => [
- q(6433),
+ q(6422),
q(0),
],
q(tdg) => [
- q(6434),
+ q(6423),
q(0),
],
q(tdh) => [
- q(6435),
+ q(6424),
q(0),
],
q(tdi) => [
- q(6436),
+ q(6425),
q(0),
],
q(tdj) => [
- q(6437),
+ q(6426),
q(0),
],
q(tdk) => [
- q(6438),
+ q(6427),
q(0),
],
q(tdl) => [
- q(6439),
+ q(6428),
+ q(0),
+ ],
+ q(tdm) => [
+ q(6429),
q(0),
],
q(tdn) => [
- q(6440),
+ q(6430),
q(0),
],
q(tdo) => [
- q(6441),
+ q(6431),
q(0),
],
q(tdq) => [
- q(6442),
+ q(6432),
q(0),
],
q(tdr) => [
- q(6443),
+ q(6433),
q(0),
],
q(tds) => [
- q(6444),
+ q(6434),
q(0),
],
q(tdt) => [
- q(6445),
- q(0),
- ],
- q(tdu) => [
- q(6446),
+ q(6435),
q(0),
],
q(tdv) => [
- q(6447),
+ q(6436),
q(0),
],
q(tdx) => [
- q(6448),
+ q(6437),
q(0),
],
q(tdy) => [
- q(6449),
+ q(6438),
q(0),
],
q(tea) => [
- q(6450),
+ q(6439),
q(0),
],
q(teb) => [
- q(6451),
+ q(6440),
q(0),
],
q(tec) => [
- q(6452),
+ q(6441),
q(0),
],
q(ted) => [
- q(6453),
+ q(6442),
q(0),
],
q(tee) => [
- q(6454),
+ q(6443),
q(0),
],
q(tef) => [
- q(6455),
+ q(6444),
q(0),
],
q(teg) => [
- q(6456),
+ q(6445),
q(0),
],
q(teh) => [
- q(6457),
+ q(6446),
q(0),
],
q(tei) => [
- q(6458),
+ q(6447),
q(0),
],
q(tek) => [
- q(6459),
+ q(6448),
q(0),
],
q(tel) => [
- q(0420),
+ q(0421),
q(0),
],
q(tem) => [
- q(0421),
+ q(0422),
q(0),
],
q(ten) => [
- q(6460),
+ q(6449),
q(0),
],
q(teo) => [
- q(6461),
+ q(6450),
q(0),
],
q(tep) => [
- q(6462),
+ q(6451),
q(0),
],
q(teq) => [
- q(6463),
+ q(6452),
q(0),
],
q(ter) => [
- q(0422),
+ q(0423),
q(0),
],
q(tes) => [
- q(6464),
+ q(6453),
q(0),
],
q(tet) => [
- q(0423),
+ q(0424),
q(0),
],
q(teu) => [
- q(6465),
+ q(6454),
q(0),
],
q(tev) => [
- q(6466),
+ q(6455),
q(0),
],
q(tew) => [
- q(6467),
+ q(6456),
q(0),
],
q(tex) => [
- q(6468),
+ q(6457),
q(0),
],
q(tey) => [
- q(6469),
+ q(6458),
q(0),
],
q(tfi) => [
- q(6470),
+ q(6459),
q(0),
],
q(tfn) => [
- q(6471),
+ q(6460),
q(0),
],
q(tfo) => [
- q(6472),
+ q(6461),
q(0),
],
q(tfr) => [
- q(6473),
+ q(6462),
q(0),
],
q(tft) => [
- q(6474),
+ q(6463),
q(0),
],
q(tga) => [
- q(6475),
+ q(6464),
q(0),
],
q(tgb) => [
- q(6476),
+ q(6465),
q(0),
],
q(tgc) => [
- q(6477),
+ q(6466),
q(0),
],
q(tgd) => [
- q(6478),
+ q(6467),
q(0),
],
q(tge) => [
- q(6479),
+ q(6468),
q(0),
],
q(tgf) => [
- q(6480),
+ q(6469),
q(0),
],
q(tgh) => [
- q(6481),
+ q(6470),
q(0),
],
q(tgi) => [
- q(6482),
+ q(6471),
q(0),
],
q(tgj) => [
- q(6483),
+ q(6472),
q(0),
],
q(tgk) => [
- q(0424),
+ q(0425),
q(0),
],
q(tgl) => [
- q(0425),
+ q(0426),
q(0),
],
q(tgn) => [
- q(6484),
+ q(6473),
q(0),
],
q(tgo) => [
- q(6485),
+ q(6474),
q(0),
],
q(tgp) => [
- q(6486),
+ q(6475),
q(0),
],
q(tgq) => [
- q(6487),
+ q(6476),
q(0),
],
q(tgr) => [
- q(6488),
+ q(6477),
q(0),
],
q(tgs) => [
- q(6489),
+ q(6478),
q(0),
],
q(tgt) => [
- q(6490),
+ q(6479),
q(0),
],
q(tgu) => [
- q(6491),
+ q(6480),
q(0),
],
q(tgv) => [
- q(6492),
+ q(6481),
q(0),
],
q(tgw) => [
- q(6493),
+ q(6482),
q(0),
],
q(tgx) => [
- q(6494),
+ q(6483),
q(0),
],
q(tgy) => [
- q(6495),
+ q(6484),
q(0),
],
q(tgz) => [
- q(6496),
+ q(6485),
q(0),
],
q(tha) => [
- q(0426),
- q(0),
- ],
- q(thc) => [
- q(6497),
+ q(0427),
q(0),
],
q(thd) => [
- q(6498),
+ q(6486),
q(0),
],
q(the) => [
- q(6499),
+ q(6487),
q(0),
],
q(thf) => [
- q(6500),
+ q(6488),
q(0),
],
q(thh) => [
- q(6501),
+ q(6489),
q(0),
],
q(thi) => [
- q(6502),
+ q(6490),
q(0),
],
q(thk) => [
- q(6503),
+ q(6491),
q(0),
],
q(thl) => [
- q(6504),
+ q(6492),
q(0),
],
q(thm) => [
- q(6505),
+ q(6493),
q(0),
],
q(thn) => [
- q(6506),
+ q(6494),
q(0),
],
q(thp) => [
- q(6507),
+ q(6495),
q(0),
],
q(thq) => [
- q(6508),
+ q(6496),
q(0),
],
q(thr) => [
- q(6509),
+ q(6497),
q(0),
],
q(ths) => [
- q(6510),
+ q(6498),
q(0),
],
q(tht) => [
- q(6511),
+ q(6499),
q(0),
],
q(thu) => [
- q(6512),
+ q(6500),
q(0),
],
q(thv) => [
- q(6513),
+ q(6501),
q(0),
],
q(thw) => [
- q(6514),
+ q(6502),
q(0),
],
q(thy) => [
- q(6515),
+ q(6503),
q(0),
],
q(thz) => [
- q(6516),
+ q(6504),
q(0),
],
q(tia) => [
- q(6517),
+ q(6505),
q(0),
],
q(tib) => [
- q(0427),
+ q(0428),
q(0),
],
q(tic) => [
- q(6518),
- q(0),
- ],
- q(tid) => [
- q(6519),
+ q(6506),
q(0),
],
q(tif) => [
- q(6520),
+ q(6507),
q(0),
],
q(tig) => [
- q(0428),
+ q(0429),
q(0),
],
q(tih) => [
- q(6521),
+ q(6508),
q(0),
],
q(tii) => [
- q(6522),
+ q(6509),
q(0),
],
q(tij) => [
- q(6523),
+ q(6510),
q(0),
],
q(tik) => [
- q(6524),
+ q(6511),
q(0),
],
q(til) => [
- q(6525),
+ q(6512),
q(0),
],
q(tim) => [
- q(6526),
+ q(6513),
q(0),
],
q(tin) => [
- q(6527),
+ q(6514),
q(0),
],
q(tio) => [
- q(6528),
+ q(6515),
q(0),
],
q(tip) => [
- q(6529),
+ q(6516),
q(0),
],
q(tiq) => [
- q(6530),
+ q(6517),
q(0),
],
q(tir) => [
- q(0429),
+ q(0430),
q(0),
],
q(tis) => [
- q(6531),
+ q(6518),
q(0),
],
q(tit) => [
- q(6532),
+ q(6519),
q(0),
],
q(tiu) => [
- q(6533),
+ q(6520),
q(0),
],
q(tiv) => [
- q(0430),
+ q(0431),
q(0),
],
q(tiw) => [
- q(6534),
+ q(6521),
q(0),
],
q(tix) => [
- q(6535),
+ q(6522),
q(0),
],
q(tiy) => [
- q(6536),
+ q(6523),
q(0),
],
q(tiz) => [
- q(6537),
+ q(6524),
q(0),
],
q(tja) => [
- q(6538),
+ q(6525),
q(0),
],
q(tjg) => [
- q(6539),
+ q(6526),
q(0),
],
q(tji) => [
- q(6540),
+ q(6527),
q(0),
],
q(tjl) => [
- q(6541),
+ q(6528),
q(0),
],
q(tjm) => [
- q(6542),
+ q(6529),
q(0),
],
q(tjn) => [
- q(6543),
+ q(6530),
q(0),
],
q(tjo) => [
- q(6544),
+ q(6531),
q(0),
],
q(tjs) => [
- q(6545),
+ q(6532),
q(0),
],
q(tju) => [
- q(6546),
+ q(6533),
q(0),
],
q(tjw) => [
- q(6547),
+ q(6534),
q(0),
],
q(tka) => [
- q(6548),
+ q(6535),
q(0),
],
q(tkb) => [
- q(6549),
+ q(6536),
q(0),
],
q(tkd) => [
- q(6550),
+ q(6537),
q(0),
],
q(tke) => [
- q(6551),
+ q(6538),
q(0),
],
q(tkf) => [
- q(6552),
+ q(6539),
q(0),
],
q(tkg) => [
- q(6553),
+ q(6540),
q(0),
],
q(tkl) => [
- q(0431),
+ q(0432),
q(0),
],
q(tkm) => [
- q(6554),
+ q(6541),
q(0),
],
q(tkn) => [
- q(6555),
+ q(6542),
q(0),
],
q(tkp) => [
- q(6556),
+ q(6543),
q(0),
],
q(tkq) => [
- q(6557),
+ q(6544),
q(0),
],
q(tkr) => [
- q(6558),
+ q(6545),
q(0),
],
q(tks) => [
- q(6559),
+ q(6546),
q(0),
],
q(tkt) => [
- q(6560),
+ q(6547),
q(0),
],
q(tku) => [
- q(6561),
+ q(6548),
q(0),
],
q(tkv) => [
- q(6562),
+ q(6549),
q(0),
],
q(tkw) => [
- q(6563),
+ q(6550),
q(0),
],
q(tkx) => [
- q(6564),
+ q(6551),
q(0),
],
q(tkz) => [
- q(6565),
+ q(6552),
q(0),
],
q(tla) => [
- q(6566),
+ q(6553),
q(0),
],
q(tlb) => [
- q(6567),
+ q(6554),
q(0),
],
q(tlc) => [
- q(6568),
+ q(6555),
q(0),
],
q(tld) => [
- q(6569),
+ q(6556),
q(0),
],
q(tlf) => [
- q(6570),
+ q(6557),
q(0),
],
q(tlg) => [
- q(6571),
+ q(6558),
q(0),
],
q(tlh) => [
- q(0432),
+ q(0433),
q(0),
],
q(tli) => [
- q(0433),
+ q(0434),
q(0),
],
q(tlj) => [
- q(6572),
+ q(6559),
q(0),
],
q(tlk) => [
- q(6573),
+ q(6560),
q(0),
],
q(tll) => [
- q(6574),
+ q(6561),
q(0),
],
q(tlm) => [
- q(6575),
+ q(6562),
q(0),
],
q(tln) => [
- q(6576),
+ q(6563),
q(0),
],
q(tlo) => [
- q(6577),
+ q(6564),
q(0),
],
q(tlp) => [
- q(6578),
+ q(6565),
q(0),
],
q(tlq) => [
- q(6579),
+ q(6566),
q(0),
],
q(tlr) => [
- q(6580),
+ q(6567),
q(0),
],
q(tls) => [
- q(6581),
+ q(6568),
q(0),
],
q(tlt) => [
- q(6582),
+ q(6569),
q(0),
],
q(tlu) => [
- q(6583),
+ q(6570),
q(0),
],
q(tlv) => [
- q(6584),
+ q(6571),
q(0),
],
q(tlx) => [
- q(6585),
+ q(6572),
q(0),
],
q(tly) => [
- q(6586),
+ q(6573),
q(0),
],
q(tma) => [
- q(6587),
+ q(6574),
q(0),
],
q(tmb) => [
- q(6588),
+ q(6575),
q(0),
],
q(tmc) => [
- q(6589),
+ q(6576),
q(0),
],
q(tmd) => [
- q(6590),
+ q(6577),
q(0),
],
q(tme) => [
- q(6591),
+ q(6578),
q(0),
],
q(tmf) => [
- q(6592),
+ q(6579),
q(0),
],
q(tmg) => [
- q(6593),
+ q(6580),
q(0),
],
q(tmh) => [
- q(0434),
+ q(0435),
q(0),
],
q(tmi) => [
- q(6594),
+ q(6581),
q(0),
],
q(tmj) => [
- q(6595),
+ q(6582),
q(0),
],
q(tmk) => [
- q(6596),
+ q(6583),
q(0),
],
q(tml) => [
- q(6597),
+ q(6584),
q(0),
],
q(tmm) => [
- q(6598),
+ q(6585),
q(0),
],
q(tmn) => [
- q(6599),
+ q(6586),
q(0),
],
q(tmo) => [
- q(6600),
- q(0),
- ],
- q(tmp) => [
- q(6601),
+ q(6587),
q(0),
],
q(tmq) => [
- q(6602),
+ q(6588),
q(0),
],
q(tmr) => [
- q(6603),
+ q(6589),
q(0),
],
q(tms) => [
- q(6604),
+ q(6590),
q(0),
],
q(tmt) => [
- q(6605),
+ q(6591),
q(0),
],
q(tmu) => [
- q(6606),
+ q(6592),
q(0),
],
q(tmv) => [
- q(6607),
+ q(6593),
q(0),
],
q(tmw) => [
- q(6608),
+ q(6594),
q(0),
],
q(tmy) => [
- q(6609),
+ q(6595),
q(0),
],
q(tmz) => [
- q(6610),
+ q(6596),
q(0),
],
q(tna) => [
- q(6611),
+ q(6597),
q(0),
],
q(tnb) => [
- q(6612),
+ q(6598),
q(0),
],
q(tnc) => [
- q(6613),
+ q(6599),
q(0),
],
q(tnd) => [
- q(6614),
- q(0),
- ],
- q(tne) => [
- q(6615),
+ q(6600),
q(0),
],
q(tng) => [
- q(6616),
+ q(6601),
q(0),
],
q(tnh) => [
- q(6617),
+ q(6602),
q(0),
],
q(tni) => [
- q(6618),
+ q(6603),
q(0),
],
q(tnk) => [
- q(6619),
+ q(6604),
q(0),
],
q(tnl) => [
- q(6620),
+ q(6605),
q(0),
],
q(tnm) => [
- q(6621),
+ q(6606),
q(0),
],
q(tnn) => [
- q(6622),
+ q(6607),
q(0),
],
q(tno) => [
- q(6623),
+ q(6608),
q(0),
],
q(tnp) => [
- q(6624),
+ q(6609),
q(0),
],
q(tnq) => [
- q(6625),
+ q(6610),
q(0),
],
q(tnr) => [
- q(6626),
+ q(6611),
q(0),
],
q(tns) => [
- q(6627),
+ q(6612),
q(0),
],
q(tnt) => [
- q(6628),
+ q(6613),
q(0),
],
q(tnu) => [
- q(6629),
+ q(6614),
q(0),
],
q(tnv) => [
- q(6630),
+ q(6615),
q(0),
],
q(tnw) => [
- q(6631),
+ q(6616),
q(0),
],
q(tnx) => [
- q(6632),
+ q(6617),
q(0),
],
q(tny) => [
- q(6633),
+ q(6618),
q(0),
],
q(tnz) => [
- q(6634),
+ q(6619),
q(0),
],
q(tob) => [
- q(6635),
+ q(6620),
q(0),
],
q(toc) => [
- q(6636),
+ q(6621),
q(0),
],
q(tod) => [
- q(6637),
- q(0),
- ],
- q(toe) => [
- q(6638),
+ q(6622),
q(0),
],
q(tof) => [
- q(6639),
+ q(6623),
q(0),
],
q(tog) => [
- q(0435),
+ q(0436),
q(0),
],
q(toh) => [
- q(6640),
+ q(6624),
q(0),
],
q(toi) => [
- q(6641),
+ q(6625),
q(0),
],
q(toj) => [
- q(6642),
+ q(6626),
q(0),
],
q(tol) => [
- q(6643),
+ q(6627),
q(0),
],
q(tom) => [
- q(6644),
+ q(6628),
q(0),
],
q(ton) => [
- q(0436),
+ q(0437),
q(0),
],
q(too) => [
- q(6645),
+ q(6629),
q(0),
],
q(top) => [
- q(6646),
+ q(6630),
q(0),
],
q(toq) => [
- q(6647),
+ q(6631),
q(0),
],
q(tor) => [
- q(6648),
+ q(6632),
q(0),
],
q(tos) => [
- q(6649),
+ q(6633),
q(0),
],
q(tou) => [
- q(6650),
+ q(6634),
q(0),
],
q(tov) => [
- q(6651),
+ q(6635),
q(0),
],
q(tow) => [
- q(6652),
+ q(6636),
q(0),
],
q(tox) => [
- q(6653),
+ q(6637),
q(0),
],
q(toy) => [
- q(6654),
+ q(6638),
q(0),
],
q(toz) => [
- q(6655),
+ q(6639),
q(0),
],
q(tpa) => [
- q(6656),
+ q(6640),
q(0),
],
q(tpc) => [
- q(6657),
+ q(6641),
q(0),
],
q(tpe) => [
- q(6658),
+ q(6642),
q(0),
],
q(tpf) => [
- q(6659),
+ q(6643),
q(0),
],
q(tpg) => [
- q(6660),
+ q(6644),
q(0),
],
q(tpi) => [
- q(0437),
+ q(0438),
q(0),
],
q(tpj) => [
- q(6661),
+ q(6645),
q(0),
],
q(tpk) => [
- q(6662),
+ q(6646),
q(0),
],
q(tpl) => [
- q(6663),
+ q(6647),
q(0),
],
q(tpm) => [
- q(6664),
+ q(6648),
q(0),
],
q(tpn) => [
- q(6665),
+ q(6649),
q(0),
],
q(tpo) => [
- q(6666),
+ q(6650),
q(0),
],
q(tpp) => [
- q(6667),
+ q(6651),
q(0),
],
q(tpq) => [
- q(6668),
+ q(6652),
q(0),
],
q(tpr) => [
- q(6669),
+ q(6653),
q(0),
],
q(tpt) => [
- q(6670),
+ q(6654),
q(0),
],
q(tpu) => [
- q(6671),
+ q(6655),
q(0),
],
q(tpv) => [
- q(6672),
+ q(6656),
q(0),
],
q(tpw) => [
- q(6673),
+ q(6657),
q(0),
],
q(tpx) => [
- q(6674),
+ q(6658),
q(0),
],
q(tpy) => [
- q(6675),
+ q(6659),
q(0),
],
q(tpz) => [
- q(6676),
+ q(6660),
q(0),
],
q(tqb) => [
- q(6677),
+ q(6661),
q(0),
],
q(tql) => [
- q(6678),
+ q(6662),
q(0),
],
q(tqm) => [
- q(6679),
+ q(6663),
q(0),
],
q(tqn) => [
- q(6680),
+ q(6664),
q(0),
],
q(tqo) => [
- q(6681),
+ q(6665),
q(0),
],
q(tqp) => [
- q(6682),
+ q(6666),
q(0),
],
q(tqq) => [
- q(6683),
+ q(6667),
q(0),
],
q(tqr) => [
- q(6684),
+ q(6668),
q(0),
],
q(tqt) => [
- q(6685),
+ q(6669),
q(0),
],
q(tqu) => [
- q(6686),
+ q(6670),
q(0),
],
q(tqw) => [
- q(6687),
+ q(6671),
q(0),
],
q(tra) => [
- q(6688),
+ q(6672),
q(0),
],
q(trb) => [
- q(6689),
+ q(6673),
q(0),
],
q(trc) => [
- q(6690),
+ q(6674),
q(0),
],
q(trd) => [
- q(6691),
+ q(6675),
q(0),
],
q(tre) => [
- q(6692),
+ q(6676),
q(0),
],
q(trf) => [
- q(6693),
+ q(6677),
q(0),
],
q(trg) => [
- q(6694),
+ q(6678),
q(0),
],
q(trh) => [
- q(6695),
+ q(6679),
q(0),
],
q(tri) => [
- q(6696),
+ q(6680),
q(0),
],
q(trj) => [
- q(6697),
+ q(6681),
q(0),
],
q(trk) => [
- q(0528),
+ q(0529),
q(0),
],
q(trl) => [
- q(6698),
+ q(6682),
q(0),
],
q(trm) => [
- q(6699),
+ q(6683),
q(0),
],
q(trn) => [
- q(6700),
+ q(6684),
q(0),
],
q(tro) => [
- q(6701),
+ q(6685),
q(0),
],
q(trp) => [
- q(6702),
+ q(6686),
q(0),
],
q(trq) => [
- q(6703),
+ q(6687),
q(0),
],
q(trr) => [
- q(6704),
+ q(6688),
q(0),
],
q(trs) => [
- q(6705),
+ q(6689),
q(0),
],
q(trt) => [
- q(6706),
+ q(6690),
q(0),
],
q(tru) => [
- q(6707),
+ q(6691),
q(0),
],
q(trv) => [
- q(6708),
+ q(6692),
q(0),
],
q(trw) => [
- q(6709),
+ q(6693),
q(0),
],
q(trx) => [
- q(6710),
+ q(6694),
q(0),
],
q(try) => [
- q(6711),
+ q(6695),
q(0),
],
q(trz) => [
- q(6712),
+ q(6696),
q(0),
],
q(tsa) => [
- q(6713),
+ q(6697),
q(0),
],
q(tsb) => [
- q(6714),
+ q(6698),
q(0),
],
q(tsc) => [
- q(6715),
+ q(6699),
q(0),
],
q(tsd) => [
- q(6716),
+ q(6700),
q(0),
],
q(tse) => [
- q(6717),
+ q(6701),
q(0),
],
q(tsg) => [
- q(6718),
+ q(6702),
q(0),
],
q(tsh) => [
- q(6719),
+ q(6703),
q(0),
],
q(tsi) => [
- q(0438),
+ q(0439),
q(0),
],
q(tsj) => [
- q(6720),
+ q(6704),
q(0),
],
q(tsk) => [
- q(6721),
+ q(6705),
q(0),
],
q(tsl) => [
- q(6722),
+ q(6706),
q(0),
],
q(tsm) => [
- q(6723),
+ q(6707),
q(0),
],
q(tsn) => [
- q(0439),
+ q(0440),
q(0),
],
q(tso) => [
- q(0440),
+ q(0441),
q(0),
],
q(tsp) => [
- q(6724),
+ q(6708),
q(0),
],
q(tsq) => [
- q(6725),
+ q(6709),
q(0),
],
q(tsr) => [
- q(6726),
+ q(6710),
q(0),
],
q(tss) => [
- q(6727),
+ q(6711),
q(0),
],
q(tst) => [
- q(6728),
+ q(6712),
q(0),
],
q(tsu) => [
- q(6729),
+ q(6713),
q(0),
],
q(tsv) => [
- q(6730),
+ q(6714),
q(0),
],
q(tsw) => [
- q(6731),
+ q(6715),
q(0),
],
q(tsx) => [
- q(6732),
+ q(6716),
q(0),
],
q(tsy) => [
- q(6733),
+ q(6717),
q(0),
],
q(tsz) => [
- q(6734),
+ q(6718),
q(0),
],
q(tta) => [
- q(6735),
+ q(6719),
q(0),
],
q(ttb) => [
- q(6736),
+ q(6720),
q(0),
],
q(ttc) => [
- q(6737),
+ q(6721),
q(0),
],
q(ttd) => [
- q(6738),
+ q(6722),
q(0),
],
q(tte) => [
- q(6739),
+ q(6723),
q(0),
],
q(ttf) => [
- q(6740),
+ q(6724),
q(0),
],
q(ttg) => [
- q(6741),
+ q(6725),
q(0),
],
q(tth) => [
- q(6742),
+ q(6726),
q(0),
],
q(tti) => [
- q(6743),
+ q(6727),
q(0),
],
q(ttj) => [
- q(6744),
+ q(6728),
q(0),
],
q(ttk) => [
- q(6745),
+ q(6729),
q(0),
],
q(ttl) => [
- q(6746),
+ q(6730),
q(0),
],
q(ttm) => [
- q(6747),
+ q(6731),
q(0),
],
q(ttn) => [
- q(6748),
+ q(6732),
q(0),
],
q(tto) => [
- q(6749),
+ q(6733),
q(0),
],
q(ttp) => [
- q(6750),
+ q(6734),
q(0),
],
q(ttq) => [
- q(6751),
+ q(6735),
q(0),
],
q(ttr) => [
- q(6752),
+ q(6736),
q(0),
],
q(tts) => [
- q(6753),
+ q(6737),
q(0),
],
q(ttt) => [
- q(6754),
+ q(6738),
q(0),
],
q(ttu) => [
- q(6755),
+ q(6739),
q(0),
],
q(ttv) => [
- q(6756),
+ q(6740),
q(0),
],
q(ttw) => [
- q(6757),
+ q(6741),
q(0),
],
q(tty) => [
- q(6758),
+ q(6742),
q(0),
],
q(ttz) => [
- q(6759),
+ q(6743),
q(0),
],
q(tua) => [
- q(6760),
+ q(6744),
q(0),
],
q(tub) => [
- q(6761),
+ q(6745),
q(0),
],
q(tuc) => [
- q(6762),
+ q(6746),
q(0),
],
q(tud) => [
- q(6763),
+ q(6747),
q(0),
],
q(tue) => [
- q(6764),
+ q(6748),
q(0),
],
q(tuf) => [
- q(6765),
+ q(6749),
q(0),
],
q(tug) => [
- q(6766),
+ q(6750),
q(0),
],
q(tuh) => [
- q(6767),
+ q(6751),
q(0),
],
q(tui) => [
- q(6768),
+ q(6752),
q(0),
],
q(tuj) => [
- q(6769),
+ q(6753),
q(0),
],
q(tuk) => [
- q(0441),
+ q(0442),
q(0),
],
q(tul) => [
- q(6770),
+ q(6754),
q(0),
],
q(tum) => [
- q(0442),
+ q(0443),
q(0),
],
q(tun) => [
- q(6771),
+ q(6755),
q(0),
],
q(tuo) => [
- q(6772),
+ q(6756),
q(0),
],
q(tup) => [
- q(0443),
+ q(0444),
q(0),
],
q(tuq) => [
- q(6773),
+ q(6757),
q(0),
],
q(tur) => [
- q(0444),
+ q(0445),
q(0),
],
q(tus) => [
- q(6774),
+ q(6758),
q(0),
],
q(tut) => [
- q(0445),
+ q(0446),
q(0),
],
q(tuu) => [
- q(6775),
+ q(6759),
q(0),
],
q(tuv) => [
- q(6776),
+ q(6760),
q(0),
],
q(tuw) => [
- q(0529),
+ q(0530),
q(0),
],
q(tux) => [
- q(6777),
+ q(6761),
q(0),
],
q(tuy) => [
- q(6778),
+ q(6762),
q(0),
],
q(tuz) => [
- q(6779),
+ q(6763),
q(0),
],
q(tva) => [
- q(6780),
+ q(6764),
q(0),
],
q(tvd) => [
- q(6781),
+ q(6765),
q(0),
],
q(tve) => [
- q(6782),
+ q(6766),
q(0),
],
q(tvk) => [
- q(6783),
+ q(6767),
q(0),
],
q(tvl) => [
- q(0446),
+ q(0447),
q(0),
],
q(tvm) => [
- q(6784),
+ q(6768),
q(0),
],
q(tvn) => [
- q(6785),
+ q(6769),
q(0),
],
q(tvo) => [
- q(6786),
+ q(6770),
q(0),
],
q(tvs) => [
- q(6787),
+ q(6771),
q(0),
],
q(tvt) => [
- q(6788),
+ q(6772),
q(0),
],
q(tvu) => [
- q(6789),
+ q(6773),
q(0),
],
q(tvw) => [
- q(6790),
+ q(6774),
q(0),
],
q(tvy) => [
- q(6791),
+ q(6775),
q(0),
],
q(twa) => [
- q(6792),
+ q(6776),
q(0),
],
q(twb) => [
- q(6793),
+ q(6777),
q(0),
],
q(twc) => [
- q(6794),
+ q(6778),
q(0),
],
q(twd) => [
- q(6795),
+ q(6779),
q(0),
],
q(twe) => [
- q(6796),
+ q(6780),
q(0),
],
q(twf) => [
- q(6797),
+ q(6781),
q(0),
],
q(twg) => [
- q(6798),
+ q(6782),
q(0),
],
q(twh) => [
- q(6799),
+ q(6783),
q(0),
],
q(twi) => [
- q(0447),
+ q(0448),
q(0),
],
q(twl) => [
- q(6800),
+ q(6784),
q(0),
],
q(twm) => [
- q(6801),
+ q(6785),
q(0),
],
q(twn) => [
- q(6802),
+ q(6786),
q(0),
],
q(two) => [
- q(6803),
+ q(6787),
q(0),
],
q(twp) => [
- q(6804),
+ q(6788),
q(0),
],
q(twq) => [
- q(6805),
+ q(6789),
q(0),
],
q(twr) => [
- q(6806),
+ q(6790),
q(0),
],
q(twt) => [
- q(6807),
+ q(6791),
q(0),
],
q(twu) => [
- q(6808),
+ q(6792),
q(0),
],
q(tww) => [
- q(6809),
+ q(6793),
q(0),
],
q(twx) => [
- q(6810),
+ q(6794),
q(0),
],
q(twy) => [
- q(6811),
+ q(6795),
q(0),
],
q(txa) => [
- q(6812),
+ q(6796),
q(0),
],
q(txb) => [
- q(6813),
+ q(6797),
q(0),
],
q(txc) => [
- q(6814),
+ q(6798),
q(0),
],
q(txe) => [
- q(6815),
+ q(6799),
q(0),
],
q(txg) => [
- q(6816),
+ q(6800),
q(0),
],
q(txh) => [
- q(6817),
+ q(6801),
q(0),
],
q(txi) => [
- q(6818),
+ q(6802),
q(0),
],
q(txj) => [
- q(6819),
+ q(6803),
q(0),
],
q(txm) => [
- q(6820),
+ q(6804),
q(0),
],
q(txn) => [
- q(6821),
+ q(6805),
q(0),
],
q(txo) => [
- q(6822),
+ q(6806),
q(0),
],
q(txq) => [
- q(6823),
+ q(6807),
q(0),
],
q(txr) => [
- q(6824),
+ q(6808),
q(0),
],
q(txs) => [
- q(6825),
+ q(6809),
q(0),
],
q(txt) => [
- q(6826),
+ q(6810),
q(0),
],
q(txu) => [
- q(6827),
+ q(6811),
q(0),
],
q(txx) => [
- q(6828),
+ q(6812),
q(0),
],
q(txy) => [
- q(6829),
+ q(6813),
q(0),
],
q(tya) => [
- q(6830),
+ q(6814),
q(0),
],
q(tye) => [
- q(6831),
+ q(6815),
q(0),
],
q(tyh) => [
- q(6832),
+ q(6816),
q(0),
],
q(tyi) => [
- q(6833),
+ q(6817),
q(0),
],
q(tyj) => [
- q(6834),
+ q(6818),
q(0),
],
q(tyl) => [
- q(6835),
+ q(6819),
q(0),
],
q(tyn) => [
- q(6836),
+ q(6820),
q(0),
],
q(typ) => [
- q(6837),
+ q(6821),
q(0),
],
q(tyr) => [
- q(6838),
+ q(6822),
q(0),
],
q(tys) => [
- q(6839),
+ q(6823),
q(0),
],
q(tyt) => [
- q(6840),
+ q(6824),
q(0),
],
q(tyu) => [
- q(6841),
+ q(6825),
q(0),
],
q(tyv) => [
- q(0448),
+ q(0449),
q(0),
],
q(tyx) => [
- q(6842),
+ q(6826),
q(0),
],
q(tyz) => [
- q(6843),
+ q(6827),
q(0),
],
q(tza) => [
- q(6844),
+ q(6828),
q(0),
],
q(tzh) => [
- q(6845),
+ q(6829),
q(0),
],
q(tzj) => [
- q(6846),
+ q(6830),
q(0),
],
q(tzl) => [
- q(6847),
+ q(6831),
q(0),
],
q(tzm) => [
- q(6848),
+ q(6832),
q(0),
],
q(tzn) => [
- q(6849),
+ q(6833),
q(0),
],
q(tzo) => [
- q(6850),
+ q(6834),
q(0),
],
q(tzx) => [
- q(6851),
+ q(6835),
q(0),
],
q(uam) => [
- q(6852),
+ q(6836),
q(0),
],
q(uan) => [
- q(6853),
+ q(6837),
q(0),
],
q(uar) => [
- q(6854),
+ q(6838),
q(0),
],
q(uba) => [
- q(6855),
+ q(6839),
q(0),
],
q(ubi) => [
- q(6856),
+ q(6840),
q(0),
],
q(ubl) => [
- q(6857),
+ q(6841),
q(0),
],
q(ubr) => [
- q(6858),
+ q(6842),
q(0),
],
q(ubu) => [
- q(6859),
+ q(6843),
q(0),
],
q(uby) => [
- q(6860),
+ q(6844),
q(0),
],
q(uda) => [
- q(6861),
+ q(6845),
q(0),
],
q(ude) => [
- q(6862),
+ q(6846),
q(0),
],
q(udg) => [
- q(6863),
+ q(6847),
q(0),
],
q(udi) => [
- q(6864),
+ q(6848),
q(0),
],
q(udj) => [
- q(6865),
+ q(6849),
q(0),
],
q(udl) => [
- q(6866),
+ q(6850),
q(0),
],
q(udm) => [
- q(0449),
+ q(0450),
q(0),
],
q(udu) => [
- q(6867),
+ q(6851),
q(0),
],
q(ues) => [
- q(6868),
+ q(6852),
q(0),
],
q(ufi) => [
- q(6869),
+ q(6853),
q(0),
],
q(uga) => [
- q(0450),
+ q(0451),
q(0),
],
q(ugb) => [
- q(6870),
+ q(6854),
q(0),
],
q(uge) => [
- q(6871),
+ q(6855),
q(0),
],
q(ugn) => [
- q(6872),
+ q(6856),
q(0),
],
q(ugo) => [
- q(6873),
+ q(6857),
q(0),
],
q(ugy) => [
- q(6874),
+ q(6858),
q(0),
],
q(uha) => [
- q(6875),
+ q(6859),
q(0),
],
q(uhn) => [
- q(6876),
+ q(6860),
q(0),
],
q(uig) => [
- q(0451),
+ q(0452),
q(0),
],
q(uis) => [
- q(6877),
+ q(6861),
q(0),
],
q(uiv) => [
- q(6878),
+ q(6862),
q(0),
],
q(uji) => [
- q(6879),
+ q(6863),
q(0),
],
q(uka) => [
- q(6880),
+ q(6864),
q(0),
],
q(ukg) => [
- q(6881),
+ q(6865),
q(0),
],
q(ukh) => [
- q(6882),
+ q(6866),
+ q(0),
+ ],
+ q(ukk) => [
+ q(6867),
q(0),
],
q(ukl) => [
- q(6883),
+ q(6868),
q(0),
],
q(ukp) => [
- q(6884),
+ q(6869),
q(0),
],
q(ukq) => [
- q(6885),
+ q(6870),
q(0),
],
q(ukr) => [
- q(0452),
+ q(0453),
q(0),
],
q(uks) => [
- q(6886),
+ q(6871),
q(0),
],
q(uku) => [
- q(6887),
+ q(6872),
q(0),
],
q(ukw) => [
- q(6888),
+ q(6873),
q(0),
],
q(uky) => [
- q(6889),
+ q(6874),
q(0),
],
q(ula) => [
- q(6890),
+ q(6875),
q(0),
],
q(ulb) => [
- q(6891),
+ q(6876),
q(0),
],
q(ulc) => [
- q(6892),
+ q(6877),
q(0),
],
q(ule) => [
- q(6893),
+ q(6878),
q(0),
],
q(ulf) => [
- q(6894),
+ q(6879),
q(0),
],
q(uli) => [
- q(6895),
+ q(6880),
q(0),
],
q(ulk) => [
- q(6896),
+ q(6881),
q(0),
],
q(ull) => [
- q(6897),
+ q(6882),
q(0),
],
q(ulm) => [
- q(6898),
+ q(6883),
q(0),
],
q(uln) => [
- q(6899),
+ q(6884),
q(0),
],
q(ulu) => [
- q(6900),
+ q(6885),
q(0),
],
q(ulw) => [
- q(6901),
+ q(6886),
q(0),
],
q(uma) => [
- q(6902),
+ q(6887),
q(0),
],
q(umb) => [
- q(0453),
+ q(0454),
q(0),
],
q(umc) => [
- q(6903),
+ q(6888),
q(0),
],
q(umd) => [
- q(6904),
+ q(6889),
q(0),
],
q(umg) => [
- q(6905),
+ q(6890),
q(0),
],
q(umi) => [
- q(6906),
+ q(6891),
q(0),
],
q(umm) => [
- q(6907),
+ q(6892),
q(0),
],
q(umn) => [
- q(6908),
+ q(6893),
q(0),
],
q(umo) => [
- q(6909),
+ q(6894),
q(0),
],
q(ump) => [
- q(6910),
+ q(6895),
q(0),
],
q(umr) => [
- q(6911),
+ q(6896),
q(0),
],
q(ums) => [
- q(6912),
+ q(6897),
q(0),
],
q(umu) => [
- q(6913),
+ q(6898),
q(0),
],
q(una) => [
- q(6914),
+ q(6899),
q(0),
],
q(und) => [
- q(0454),
+ q(0455),
q(0),
],
q(une) => [
- q(6915),
+ q(6900),
q(0),
],
q(ung) => [
- q(6916),
+ q(6901),
q(0),
],
q(unk) => [
- q(6917),
+ q(6902),
q(0),
],
q(unm) => [
- q(6918),
+ q(6903),
q(0),
],
q(unn) => [
- q(6919),
+ q(6904),
q(0),
],
q(unr) => [
- q(6920),
+ q(6905),
q(0),
],
q(unu) => [
- q(6921),
+ q(6906),
q(0),
],
q(unx) => [
- q(6922),
+ q(6907),
q(0),
],
q(unz) => [
- q(6923),
+ q(6908),
q(0),
],
q(upi) => [
- q(6924),
+ q(6909),
q(0),
],
q(upv) => [
- q(6925),
+ q(6910),
q(0),
],
q(ura) => [
- q(6926),
+ q(6911),
q(0),
],
q(urb) => [
- q(6927),
+ q(6912),
q(0),
],
q(urc) => [
- q(6928),
+ q(6913),
q(0),
],
q(urd) => [
- q(0455),
+ q(0456),
q(0),
],
q(ure) => [
- q(6929),
+ q(6914),
q(0),
],
q(urf) => [
- q(6930),
+ q(6915),
q(0),
],
q(urg) => [
- q(6931),
+ q(6916),
q(0),
],
q(urh) => [
- q(6932),
+ q(6917),
q(0),
],
q(uri) => [
- q(6933),
+ q(6918),
q(0),
],
q(urj) => [
- q(0530),
+ q(0531),
q(0),
],
q(urk) => [
- q(6934),
+ q(6919),
q(0),
],
q(url) => [
- q(6935),
+ q(6920),
q(0),
],
q(urm) => [
- q(6936),
+ q(6921),
q(0),
],
q(urn) => [
- q(6937),
+ q(6922),
q(0),
],
q(uro) => [
- q(6938),
+ q(6923),
q(0),
],
q(urp) => [
- q(6939),
+ q(6924),
q(0),
],
q(urr) => [
- q(6940),
+ q(6925),
q(0),
],
q(urt) => [
- q(6941),
+ q(6926),
q(0),
],
q(uru) => [
- q(6942),
+ q(6927),
q(0),
],
q(urv) => [
- q(6943),
+ q(6928),
q(0),
],
q(urw) => [
- q(6944),
+ q(6929),
q(0),
],
q(urx) => [
- q(6945),
+ q(6930),
q(0),
],
q(ury) => [
- q(6946),
+ q(6931),
q(0),
],
q(urz) => [
- q(6947),
+ q(6932),
q(0),
],
q(usa) => [
- q(6948),
+ q(6933),
q(0),
],
q(ush) => [
- q(6949),
+ q(6934),
q(0),
],
q(usi) => [
- q(6950),
+ q(6935),
q(0),
],
q(usk) => [
- q(6951),
+ q(6936),
q(0),
],
q(usp) => [
- q(6952),
+ q(6937),
q(0),
],
q(usu) => [
- q(6953),
+ q(6938),
q(0),
],
q(uta) => [
- q(6954),
+ q(6939),
q(0),
],
q(ute) => [
- q(6955),
+ q(6940),
q(0),
],
q(utp) => [
- q(6956),
+ q(6941),
q(0),
],
q(utr) => [
- q(6957),
+ q(6942),
q(0),
],
q(utu) => [
- q(6958),
+ q(6943),
q(0),
],
q(uum) => [
- q(6959),
+ q(6944),
q(0),
],
q(uun) => [
- q(6960),
+ q(6945),
q(0),
],
q(uur) => [
- q(6961),
+ q(6946),
q(0),
],
q(uuu) => [
- q(6962),
+ q(6947),
q(0),
],
q(uve) => [
- q(6963),
+ q(6948),
q(0),
],
q(uvh) => [
- q(6964),
+ q(6949),
q(0),
],
q(uvl) => [
- q(6965),
+ q(6950),
q(0),
],
q(uwa) => [
- q(6966),
+ q(6951),
q(0),
],
q(uya) => [
- q(6967),
+ q(6952),
q(0),
],
q(uzb) => [
- q(0456),
+ q(0457),
q(0),
],
q(uzn) => [
- q(6968),
+ q(6953),
q(0),
],
q(uzs) => [
- q(6969),
+ q(6954),
q(0),
],
q(vaa) => [
- q(6970),
+ q(6955),
q(0),
],
q(vae) => [
- q(6971),
+ q(6956),
q(0),
],
q(vaf) => [
- q(6972),
+ q(6957),
q(0),
],
q(vag) => [
- q(6973),
+ q(6958),
q(0),
],
q(vah) => [
- q(6974),
+ q(6959),
q(0),
],
q(vai) => [
- q(0457),
+ q(0458),
q(0),
],
q(vaj) => [
- q(6975),
+ q(6960),
q(0),
],
q(val) => [
- q(6976),
+ q(6961),
q(0),
],
q(vam) => [
- q(6977),
+ q(6962),
q(0),
],
q(van) => [
- q(6978),
+ q(6963),
q(0),
],
q(vao) => [
- q(6979),
+ q(6964),
q(0),
],
q(vap) => [
- q(6980),
+ q(6965),
q(0),
],
q(var) => [
- q(6981),
+ q(6966),
q(0),
],
q(vas) => [
- q(6982),
+ q(6967),
q(0),
],
q(vau) => [
- q(6983),
+ q(6968),
q(0),
],
q(vav) => [
- q(6984),
+ q(6969),
q(0),
],
q(vay) => [
- q(6985),
+ q(6970),
q(0),
],
q(vbb) => [
- q(6986),
+ q(6971),
q(0),
],
q(vbk) => [
- q(6987),
+ q(6972),
q(0),
],
q(vec) => [
- q(6988),
+ q(6973),
q(0),
],
q(ved) => [
- q(6989),
+ q(6974),
q(0),
],
q(vel) => [
- q(6990),
+ q(6975),
q(0),
],
q(vem) => [
- q(6991),
+ q(6976),
q(0),
],
q(ven) => [
- q(0458),
+ q(0459),
q(0),
],
q(veo) => [
- q(6992),
+ q(6977),
q(0),
],
q(vep) => [
- q(6993),
+ q(6978),
q(0),
],
q(ver) => [
- q(6994),
+ q(6979),
q(0),
],
q(vgr) => [
- q(6995),
+ q(6980),
q(0),
],
q(vgt) => [
- q(6996),
+ q(6981),
q(0),
],
q(vic) => [
- q(6997),
+ q(6982),
q(0),
],
q(vid) => [
- q(6998),
+ q(6983),
q(0),
],
q(vie) => [
- q(0459),
+ q(0460),
q(0),
],
q(vif) => [
- q(6999),
+ q(6984),
q(0),
],
q(vig) => [
- q(7000),
+ q(6985),
q(0),
],
q(vil) => [
- q(7001),
+ q(6986),
q(0),
],
q(vin) => [
- q(7002),
+ q(6987),
q(0),
],
q(vis) => [
- q(7003),
+ q(6988),
q(0),
],
q(vit) => [
- q(7004),
+ q(6989),
q(0),
],
q(viv) => [
- q(7005),
+ q(6990),
q(0),
],
q(vka) => [
- q(7006),
+ q(6991),
q(0),
],
q(vki) => [
- q(7007),
+ q(6992),
q(0),
],
q(vkj) => [
- q(7008),
+ q(6993),
q(0),
],
q(vkk) => [
- q(7009),
+ q(6994),
q(0),
],
q(vkl) => [
- q(7010),
+ q(6995),
q(0),
],
q(vkm) => [
- q(7011),
+ q(6996),
q(0),
],
q(vko) => [
- q(7012),
+ q(6997),
q(0),
],
q(vkp) => [
- q(7013),
+ q(6998),
q(0),
],
q(vkt) => [
- q(7014),
+ q(6999),
q(0),
],
q(vku) => [
- q(7015),
+ q(7000),
q(0),
],
q(vlp) => [
- q(7016),
+ q(7001),
q(0),
],
q(vls) => [
- q(7017),
+ q(7002),
q(0),
],
q(vma) => [
- q(7018),
+ q(7003),
q(0),
],
q(vmb) => [
- q(7019),
+ q(7004),
q(0),
],
q(vmc) => [
- q(7020),
+ q(7005),
q(0),
],
q(vmd) => [
- q(7021),
+ q(7006),
q(0),
],
q(vme) => [
- q(7022),
+ q(7007),
q(0),
],
q(vmf) => [
- q(7023),
+ q(7008),
q(0),
],
q(vmg) => [
- q(7024),
+ q(7009),
q(0),
],
q(vmh) => [
- q(7025),
+ q(7010),
q(0),
],
q(vmi) => [
- q(7026),
+ q(7011),
q(0),
],
q(vmj) => [
- q(7027),
+ q(7012),
q(0),
],
q(vmk) => [
- q(7028),
+ q(7013),
q(0),
],
q(vml) => [
- q(7029),
+ q(7014),
q(0),
],
q(vmm) => [
- q(7030),
+ q(7015),
q(0),
],
q(vmp) => [
- q(7031),
+ q(7016),
q(0),
],
q(vmq) => [
- q(7032),
+ q(7017),
q(0),
],
q(vmr) => [
- q(7033),
+ q(7018),
q(0),
],
q(vms) => [
- q(7034),
+ q(7019),
q(0),
],
q(vmu) => [
- q(7035),
+ q(7020),
q(0),
],
q(vmv) => [
- q(7036),
+ q(7021),
q(0),
],
q(vmw) => [
- q(7037),
+ q(7022),
q(0),
],
q(vmx) => [
- q(7038),
+ q(7023),
q(0),
],
q(vmy) => [
- q(7039),
+ q(7024),
q(0),
],
q(vmz) => [
- q(7040),
+ q(7025),
q(0),
],
q(vnk) => [
- q(7041),
+ q(7026),
q(0),
],
q(vnm) => [
- q(7042),
+ q(7027),
q(0),
],
q(vnp) => [
- q(7043),
+ q(7028),
q(0),
],
q(vol) => [
- q(0460),
+ q(0461),
q(0),
],
q(vor) => [
- q(7044),
+ q(7029),
q(0),
],
q(vot) => [
- q(0461),
+ q(0462),
q(0),
],
q(vra) => [
- q(7045),
+ q(7030),
q(0),
],
q(vro) => [
- q(7044),
+ q(7029),
q(0),
],
q(vrs) => [
- q(7046),
+ q(7031),
q(0),
],
q(vrt) => [
- q(7047),
+ q(7032),
q(0),
],
q(vsi) => [
- q(7048),
+ q(7033),
q(0),
],
q(vsl) => [
- q(7049),
+ q(7034),
q(0),
],
q(vsv) => [
- q(7050),
+ q(7035),
q(0),
],
q(vto) => [
- q(7051),
+ q(7036),
q(0),
],
q(vum) => [
- q(7052),
+ q(7037),
q(0),
],
q(vun) => [
- q(7053),
+ q(7038),
q(0),
],
q(vut) => [
- q(7054),
+ q(7039),
q(0),
],
q(vwa) => [
- q(7055),
+ q(7040),
q(0),
],
q(waa) => [
- q(7056),
+ q(7041),
q(0),
],
q(wab) => [
- q(7057),
+ q(7042),
q(0),
],
q(wac) => [
- q(7058),
+ q(7043),
q(0),
],
q(wad) => [
- q(7059),
+ q(7044),
q(0),
],
q(wae) => [
- q(7060),
+ q(7045),
q(0),
],
q(waf) => [
- q(7061),
+ q(7046),
q(0),
],
q(wag) => [
- q(7062),
+ q(7047),
q(0),
],
q(wah) => [
- q(7063),
+ q(7048),
q(0),
],
q(wai) => [
- q(7064),
+ q(7049),
q(0),
],
q(waj) => [
- q(7065),
+ q(7050),
q(0),
],
q(wak) => [
- q(0462),
+ q(0463),
q(0),
],
q(wal) => [
- q(0463),
+ q(0464),
q(1),
],
q(wam) => [
- q(7066),
+ q(7051),
q(0),
],
q(wan) => [
- q(7067),
+ q(7052),
q(0),
],
q(wao) => [
- q(7068),
+ q(7053),
q(0),
],
q(wap) => [
- q(7069),
+ q(7054),
q(0),
],
q(waq) => [
- q(7070),
+ q(7055),
q(0),
],
q(war) => [
- q(0464),
+ q(0465),
q(1),
],
q(was) => [
- q(0465),
+ q(0466),
q(0),
],
q(wat) => [
- q(7071),
+ q(7056),
q(0),
],
q(wau) => [
- q(7072),
+ q(7057),
q(0),
],
q(wav) => [
- q(7073),
+ q(7058),
q(0),
],
q(waw) => [
- q(7074),
+ q(7059),
q(0),
],
q(wax) => [
- q(7075),
+ q(7060),
q(0),
],
q(way) => [
- q(7076),
+ q(7061),
q(0),
],
q(waz) => [
- q(7077),
+ q(7062),
q(0),
],
q(wba) => [
- q(7078),
+ q(7063),
q(0),
],
q(wbb) => [
- q(7079),
+ q(7064),
q(0),
],
q(wbe) => [
- q(7080),
+ q(7065),
q(0),
],
q(wbf) => [
- q(6413),
+ q(6402),
q(0),
],
q(wbh) => [
- q(7081),
+ q(7066),
q(0),
],
q(wbi) => [
- q(7082),
+ q(7067),
q(0),
],
q(wbj) => [
- q(7083),
+ q(7068),
q(0),
],
q(wbk) => [
- q(7084),
+ q(7069),
q(0),
],
q(wbl) => [
- q(7085),
+ q(7070),
q(0),
],
q(wbm) => [
- q(7086),
+ q(7071),
q(0),
],
q(wbp) => [
- q(7087),
+ q(7072),
q(0),
],
q(wbq) => [
- q(7088),
+ q(7073),
q(0),
],
q(wbr) => [
- q(7089),
+ q(7074),
+ q(0),
+ ],
+ q(wbs) => [
+ q(7075),
q(0),
],
q(wbt) => [
- q(7090),
+ q(7076),
q(0),
],
q(wbv) => [
- q(7091),
+ q(7077),
q(0),
],
q(wbw) => [
- q(7092),
+ q(7078),
q(0),
],
q(wca) => [
- q(7093),
+ q(7079),
q(0),
],
q(wci) => [
- q(7094),
+ q(7080),
q(0),
],
q(wdd) => [
- q(7095),
+ q(7081),
q(0),
],
q(wdg) => [
- q(7096),
+ q(7082),
q(0),
],
q(wdj) => [
- q(7097),
+ q(7083),
q(0),
],
q(wdk) => [
- q(7098),
+ q(7084),
q(0),
],
q(wdu) => [
- q(7099),
+ q(7085),
q(0),
],
q(wdy) => [
- q(7100),
+ q(7086),
q(0),
],
q(wea) => [
- q(7101),
+ q(7087),
q(0),
],
q(wec) => [
- q(7102),
+ q(7088),
q(0),
],
q(wed) => [
- q(7103),
+ q(7089),
q(0),
],
q(weg) => [
- q(7104),
+ q(7090),
q(0),
],
q(weh) => [
- q(7105),
+ q(7091),
q(0),
],
q(wei) => [
- q(7106),
+ q(7092),
q(0),
],
q(wel) => [
- q(0466),
+ q(0467),
q(0),
],
q(wem) => [
- q(7107),
+ q(7093),
q(0),
],
q(wen) => [
- q(0467),
+ q(0468),
q(0),
],
q(weo) => [
- q(7108),
+ q(7094),
q(0),
],
q(wep) => [
- q(7109),
+ q(7095),
q(0),
],
q(wer) => [
- q(7110),
+ q(7096),
q(0),
],
q(wes) => [
- q(7111),
+ q(7097),
q(0),
],
q(wet) => [
- q(7112),
+ q(7098),
q(0),
],
q(weu) => [
- q(7113),
+ q(7099),
q(0),
],
q(wew) => [
- q(7114),
+ q(7100),
q(0),
],
q(wfg) => [
- q(7115),
+ q(7101),
q(0),
],
q(wga) => [
- q(7116),
+ q(7102),
q(0),
],
q(wgb) => [
- q(7117),
+ q(7103),
q(0),
],
q(wgg) => [
- q(7118),
+ q(7104),
q(0),
],
q(wgi) => [
- q(7119),
+ q(7105),
q(0),
],
q(wgo) => [
- q(7120),
+ q(7106),
q(0),
],
q(wgu) => [
- q(7121),
+ q(7107),
q(0),
],
q(wgy) => [
- q(7122),
+ q(7108),
q(0),
],
q(wha) => [
- q(7123),
+ q(7109),
q(0),
],
q(whg) => [
- q(7124),
+ q(7110),
q(0),
],
q(whk) => [
- q(7125),
+ q(7111),
q(0),
],
q(whu) => [
- q(7126),
+ q(7112),
q(0),
],
q(wib) => [
- q(7127),
+ q(7113),
q(0),
],
q(wic) => [
- q(7128),
+ q(7114),
q(0),
],
q(wie) => [
- q(7129),
+ q(7115),
q(0),
],
q(wif) => [
- q(7130),
+ q(7116),
q(0),
],
q(wig) => [
- q(7131),
+ q(7117),
q(0),
],
q(wih) => [
- q(7132),
+ q(7118),
q(0),
],
q(wii) => [
- q(7133),
+ q(7119),
q(0),
],
q(wij) => [
- q(7134),
+ q(7120),
q(0),
],
q(wik) => [
- q(7135),
+ q(7121),
q(0),
],
q(wil) => [
- q(7136),
+ q(7122),
q(0),
],
q(wim) => [
- q(7137),
+ q(7123),
q(0),
],
q(win) => [
- q(7138),
+ q(7124),
q(0),
],
q(wir) => [
- q(7139),
+ q(7125),
q(0),
],
q(wiu) => [
- q(7140),
+ q(7126),
q(0),
],
q(wiv) => [
- q(7141),
+ q(7127),
q(0),
],
q(wiy) => [
- q(7142),
+ q(7128),
q(0),
],
q(wja) => [
- q(7143),
+ q(7129),
q(0),
],
q(wji) => [
- q(7144),
+ q(7130),
q(0),
],
q(wka) => [
- q(7145),
+ q(7131),
q(0),
],
q(wkb) => [
- q(7146),
+ q(7132),
q(0),
],
q(wkd) => [
- q(7147),
+ q(7133),
q(0),
],
q(wkl) => [
- q(7148),
+ q(7134),
q(0),
],
q(wku) => [
- q(7149),
+ q(7135),
q(0),
],
q(wkw) => [
- q(7150),
+ q(7136),
q(0),
],
q(wky) => [
- q(7151),
+ q(7137),
q(0),
],
q(wla) => [
- q(7152),
+ q(7138),
q(0),
],
q(wlc) => [
- q(7153),
+ q(7139),
q(0),
],
q(wle) => [
- q(7154),
+ q(7140),
q(0),
],
q(wlg) => [
- q(7155),
+ q(7141),
q(0),
],
q(wli) => [
- q(7156),
+ q(7142),
q(0),
],
q(wlk) => [
- q(7157),
+ q(7143),
q(0),
],
q(wll) => [
- q(7158),
+ q(7144),
q(0),
],
q(wlm) => [
- q(7159),
+ q(7145),
q(0),
],
q(wln) => [
- q(0468),
+ q(0469),
q(0),
],
q(wlo) => [
- q(7160),
+ q(7146),
q(0),
],
q(wlr) => [
- q(7161),
+ q(7147),
q(0),
],
q(wls) => [
- q(7162),
+ q(7148),
q(0),
],
q(wlu) => [
- q(7163),
+ q(7149),
q(0),
],
q(wlv) => [
- q(7164),
+ q(7150),
q(0),
],
q(wlw) => [
- q(7165),
+ q(7151),
q(0),
],
q(wlx) => [
- q(7166),
+ q(7152),
q(0),
],
q(wly) => [
- q(7167),
+ q(7153),
q(0),
],
q(wma) => [
- q(7168),
+ q(7154),
q(0),
],
q(wmb) => [
- q(7169),
+ q(7155),
q(0),
],
q(wmc) => [
- q(7170),
+ q(7156),
q(0),
],
q(wmd) => [
- q(7171),
+ q(7157),
q(0),
],
q(wme) => [
- q(7172),
+ q(7158),
q(0),
],
q(wmh) => [
- q(7173),
+ q(7159),
q(0),
],
q(wmi) => [
- q(7174),
+ q(7160),
q(0),
],
q(wmm) => [
- q(7175),
+ q(7161),
q(0),
],
q(wmn) => [
- q(7176),
+ q(7162),
q(0),
],
q(wmo) => [
- q(7177),
+ q(7163),
q(0),
],
q(wms) => [
- q(7178),
+ q(7164),
q(0),
],
q(wmt) => [
- q(7179),
+ q(7165),
q(0),
],
q(wmw) => [
- q(7180),
+ q(7166),
q(0),
],
q(wmx) => [
- q(7181),
+ q(7167),
q(0),
],
q(wnb) => [
- q(7182),
+ q(7168),
q(0),
],
q(wnc) => [
- q(7183),
+ q(7169),
q(0),
],
q(wnd) => [
- q(7184),
+ q(7170),
q(0),
],
q(wne) => [
- q(7185),
+ q(7171),
q(0),
],
q(wng) => [
- q(7186),
+ q(7172),
q(0),
],
q(wni) => [
- q(7187),
+ q(7173),
q(0),
],
q(wnk) => [
- q(7188),
+ q(7174),
q(0),
],
q(wnm) => [
- q(7189),
+ q(7175),
q(0),
],
q(wnn) => [
- q(7190),
+ q(7176),
q(0),
],
q(wno) => [
- q(7191),
+ q(7177),
q(0),
],
q(wnp) => [
- q(7192),
+ q(7178),
q(0),
],
q(wnu) => [
- q(7193),
+ q(7179),
q(0),
],
q(wnw) => [
- q(7194),
+ q(7180),
q(0),
],
q(wny) => [
- q(7195),
+ q(7181),
q(0),
],
q(woa) => [
- q(7196),
+ q(7182),
q(0),
],
q(wob) => [
- q(7197),
+ q(7183),
q(0),
],
q(woc) => [
- q(7198),
+ q(7184),
q(0),
],
q(wod) => [
- q(7199),
+ q(7185),
q(0),
],
q(woe) => [
- q(7200),
+ q(7186),
q(0),
],
q(wof) => [
- q(7201),
+ q(7187),
q(0),
],
q(wog) => [
- q(7202),
+ q(7188),
q(0),
],
q(woi) => [
- q(7203),
+ q(7189),
q(0),
],
q(wok) => [
- q(7204),
+ q(7190),
q(0),
],
q(wol) => [
- q(0469),
+ q(0470),
q(0),
],
q(wom) => [
- q(7205),
+ q(7191),
q(0),
],
q(won) => [
- q(7206),
+ q(7192),
q(0),
],
q(woo) => [
- q(7207),
+ q(7193),
q(0),
],
q(wor) => [
- q(7208),
+ q(7194),
q(0),
],
q(wos) => [
- q(7209),
+ q(7195),
q(0),
],
q(wow) => [
- q(7210),
+ q(7196),
q(0),
],
q(woy) => [
- q(7211),
+ q(7197),
q(0),
],
q(wpc) => [
- q(7212),
+ q(7198),
q(0),
],
q(wra) => [
- q(7213),
+ q(7199),
q(0),
],
q(wrb) => [
- q(7214),
+ q(7200),
q(0),
],
q(wrd) => [
- q(7215),
+ q(7201),
q(0),
],
q(wrg) => [
- q(7216),
+ q(7202),
q(0),
],
q(wrh) => [
- q(7217),
+ q(7203),
q(0),
],
q(wri) => [
- q(7218),
+ q(7204),
q(0),
],
q(wrk) => [
- q(7219),
+ q(7205),
q(0),
],
q(wrl) => [
- q(7220),
+ q(7206),
q(0),
],
q(wrm) => [
- q(7221),
+ q(7207),
q(0),
],
q(wrn) => [
- q(7222),
+ q(7208),
q(0),
],
q(wro) => [
- q(7223),
+ q(7209),
q(0),
],
q(wrp) => [
- q(7224),
+ q(7210),
q(0),
],
q(wrr) => [
- q(7225),
+ q(7211),
q(0),
],
q(wrs) => [
- q(7226),
+ q(7212),
q(0),
],
q(wru) => [
- q(7227),
+ q(7213),
q(0),
],
q(wrv) => [
- q(7228),
+ q(7214),
q(0),
],
q(wrw) => [
- q(7229),
+ q(7215),
q(0),
],
q(wrx) => [
- q(7230),
+ q(7216),
q(0),
],
q(wry) => [
- q(7231),
+ q(7217),
q(0),
],
q(wrz) => [
- q(7232),
+ q(7218),
q(0),
],
q(wsa) => [
- q(7233),
+ q(7219),
+ q(0),
+ ],
+ q(wsg) => [
+ q(7220),
q(0),
],
q(wsi) => [
- q(7234),
+ q(7221),
q(0),
],
q(wsk) => [
- q(7235),
+ q(7222),
q(0),
],
q(wsr) => [
- q(7236),
+ q(7223),
q(0),
],
q(wss) => [
- q(7237),
+ q(7224),
q(0),
],
q(wsu) => [
- q(7238),
+ q(7225),
q(0),
],
q(wsv) => [
- q(7239),
+ q(7226),
q(0),
],
q(wtf) => [
- q(7240),
+ q(7227),
q(0),
],
q(wth) => [
- q(7241),
+ q(7228),
q(0),
],
q(wti) => [
- q(7242),
+ q(7229),
q(0),
],
q(wtk) => [
- q(7243),
+ q(7230),
q(0),
],
q(wtm) => [
- q(7244),
+ q(7231),
q(0),
],
q(wtw) => [
- q(7245),
+ q(7232),
q(0),
],
q(wua) => [
- q(7246),
+ q(7233),
q(0),
],
q(wub) => [
- q(7247),
+ q(7234),
q(0),
],
q(wud) => [
- q(7248),
+ q(7235),
q(0),
],
q(wuh) => [
- q(7249),
+ q(7236),
q(0),
],
q(wul) => [
- q(7250),
+ q(7237),
q(0),
],
q(wum) => [
- q(7251),
+ q(7238),
q(0),
],
q(wun) => [
- q(7252),
+ q(7239),
q(0),
],
q(wur) => [
- q(7253),
+ q(7240),
q(0),
],
q(wut) => [
- q(7254),
+ q(7241),
q(0),
],
q(wuu) => [
- q(7255),
+ q(7242),
q(0),
],
q(wuv) => [
- q(7256),
+ q(7243),
q(0),
],
q(wux) => [
- q(7257),
+ q(7244),
q(0),
],
q(wuy) => [
- q(7258),
+ q(7245),
q(0),
],
q(wwa) => [
- q(7259),
+ q(7246),
q(0),
],
q(wwb) => [
- q(7260),
+ q(7247),
q(0),
],
q(wwo) => [
- q(7261),
+ q(7248),
q(0),
],
q(wwr) => [
- q(7262),
+ q(7249),
q(0),
],
q(www) => [
- q(7263),
+ q(7250),
q(0),
],
q(wxa) => [
- q(7264),
+ q(7251),
q(0),
],
q(wxw) => [
- q(7265),
+ q(7252),
q(0),
],
q(wya) => [
- q(7266),
+ q(7253),
q(0),
],
q(wyb) => [
- q(7267),
+ q(7254),
q(0),
],
q(wyi) => [
- q(7268),
+ q(7255),
q(0),
],
q(wym) => [
- q(7269),
+ q(7256),
q(0),
],
q(wyr) => [
- q(7270),
+ q(7257),
q(0),
],
q(wyy) => [
- q(7271),
+ q(7258),
q(0),
],
q(xaa) => [
- q(7272),
+ q(7259),
q(0),
],
q(xab) => [
- q(7273),
+ q(7260),
q(0),
],
q(xac) => [
- q(7274),
+ q(7261),
q(0),
],
q(xad) => [
- q(7275),
+ q(7262),
q(0),
],
q(xae) => [
- q(7276),
+ q(7263),
q(0),
],
q(xag) => [
- q(7277),
+ q(7264),
q(0),
],
q(xai) => [
- q(7278),
+ q(7265),
q(0),
],
q(xaj) => [
- q(7279),
+ q(7266),
+ q(0),
+ ],
+ q(xak) => [
+ q(7267),
q(0),
],
q(xal) => [
- q(0470),
+ q(0471),
q(0),
],
q(xam) => [
- q(7280),
+ q(7268),
q(0),
],
q(xan) => [
- q(7281),
+ q(7269),
q(0),
],
q(xao) => [
- q(7282),
+ q(7270),
q(0),
],
q(xap) => [
- q(7283),
+ q(7271),
q(0),
],
q(xaq) => [
- q(7284),
+ q(7272),
q(0),
],
q(xar) => [
- q(7285),
+ q(7273),
q(0),
],
q(xas) => [
- q(7286),
+ q(7274),
q(0),
],
q(xat) => [
- q(7287),
+ q(7275),
q(0),
],
q(xau) => [
- q(7288),
+ q(7276),
q(0),
],
q(xav) => [
- q(7289),
+ q(7277),
q(0),
],
q(xaw) => [
- q(7290),
+ q(7278),
q(0),
],
q(xay) => [
- q(7291),
- q(0),
- ],
- q(xba) => [
- q(7292),
+ q(7279),
q(0),
],
q(xbb) => [
- q(7293),
+ q(7280),
q(0),
],
q(xbc) => [
- q(7294),
+ q(7281),
q(0),
],
q(xbd) => [
- q(7295),
+ q(7282),
q(0),
],
q(xbe) => [
- q(7296),
+ q(7283),
q(0),
],
q(xbg) => [
- q(7297),
+ q(7284),
q(0),
],
q(xbi) => [
- q(7298),
+ q(7285),
q(0),
],
q(xbj) => [
- q(7299),
+ q(7286),
q(0),
],
q(xbm) => [
- q(7300),
+ q(7287),
q(0),
],
q(xbn) => [
- q(7301),
+ q(7288),
q(0),
],
q(xbo) => [
- q(7302),
+ q(7289),
q(0),
],
q(xbp) => [
- q(7303),
+ q(7290),
q(0),
],
q(xbr) => [
- q(7304),
+ q(7291),
q(0),
],
q(xbw) => [
- q(7305),
- q(0),
- ],
- q(xbx) => [
- q(7306),
+ q(7292),
q(0),
],
q(xby) => [
- q(7307),
+ q(7293),
q(0),
],
q(xcb) => [
- q(7308),
+ q(7294),
q(0),
],
q(xcc) => [
- q(7309),
+ q(7295),
q(0),
],
q(xce) => [
- q(7310),
+ q(7296),
q(0),
],
q(xcg) => [
- q(7311),
+ q(7297),
q(0),
],
q(xch) => [
- q(7312),
+ q(7298),
q(0),
],
q(xcl) => [
- q(7313),
+ q(7299),
q(0),
],
q(xcm) => [
- q(7314),
+ q(7300),
q(0),
],
q(xcn) => [
- q(7315),
+ q(7301),
q(0),
],
q(xco) => [
- q(7316),
+ q(7302),
q(0),
],
q(xcr) => [
- q(7317),
+ q(7303),
q(0),
],
q(xct) => [
- q(7318),
+ q(7304),
q(0),
],
q(xcu) => [
- q(7319),
+ q(7305),
q(0),
],
q(xcv) => [
- q(7320),
+ q(7306),
q(0),
],
q(xcw) => [
- q(7321),
+ q(7307),
q(0),
],
q(xcy) => [
- q(7322),
+ q(7308),
q(0),
],
q(xda) => [
- q(7323),
+ q(7309),
q(0),
],
q(xdc) => [
- q(7324),
+ q(7310),
q(0),
],
q(xdk) => [
- q(7325),
+ q(7311),
q(0),
],
q(xdm) => [
- q(7326),
+ q(7312),
+ q(0),
+ ],
+ q(xdo) => [
+ q(7313),
q(0),
],
q(xdy) => [
- q(7327),
+ q(7314),
q(0),
],
q(xeb) => [
- q(7328),
+ q(7315),
q(0),
],
q(xed) => [
- q(7329),
+ q(7316),
q(0),
],
q(xeg) => [
- q(7330),
+ q(7317),
q(0),
],
q(xel) => [
- q(7331),
+ q(7318),
q(0),
],
q(xem) => [
- q(7332),
+ q(7319),
q(0),
],
q(xep) => [
- q(7333),
+ q(7320),
q(0),
],
q(xer) => [
- q(7334),
+ q(7321),
q(0),
],
q(xes) => [
- q(7335),
+ q(7322),
q(0),
],
q(xet) => [
- q(7336),
+ q(7323),
q(0),
],
q(xeu) => [
- q(7337),
+ q(7324),
q(0),
],
q(xfa) => [
- q(7338),
+ q(7325),
q(0),
],
q(xga) => [
- q(7339),
+ q(7326),
q(0),
],
q(xgb) => [
- q(7340),
+ q(7327),
q(0),
],
q(xgd) => [
- q(7341),
+ q(7328),
q(0),
],
q(xgf) => [
- q(7342),
+ q(7329),
q(0),
],
q(xgg) => [
- q(7343),
+ q(7330),
q(0),
],
q(xgi) => [
- q(7344),
+ q(7331),
q(0),
],
q(xgl) => [
- q(7345),
+ q(7332),
q(0),
],
q(xgm) => [
- q(7346),
+ q(7333),
q(0),
],
q(xgn) => [
- q(0531),
+ q(0532),
q(0),
],
q(xgr) => [
- q(7347),
+ q(7334),
q(0),
],
q(xgu) => [
- q(7348),
+ q(7335),
q(0),
],
q(xgw) => [
- q(7349),
+ q(7336),
q(0),
],
q(xha) => [
- q(7350),
+ q(7337),
q(0),
],
q(xhc) => [
- q(7351),
+ q(7338),
q(0),
],
q(xhd) => [
- q(7352),
+ q(7339),
q(0),
],
q(xhe) => [
- q(7353),
+ q(7340),
q(0),
],
q(xho) => [
- q(0471),
+ q(0472),
q(0),
],
q(xhr) => [
- q(7354),
+ q(7341),
q(0),
],
q(xht) => [
- q(7355),
+ q(7342),
q(0),
],
q(xhu) => [
- q(7356),
+ q(7343),
q(0),
],
q(xhv) => [
- q(7357),
+ q(7344),
q(0),
],
q(xib) => [
- q(7358),
+ q(7345),
q(0),
],
q(xii) => [
- q(7359),
+ q(7346),
q(0),
],
q(xil) => [
- q(7360),
+ q(7347),
q(0),
],
q(xin) => [
- q(7361),
- q(0),
- ],
- q(xip) => [
- q(7362),
+ q(7348),
q(0),
],
q(xir) => [
- q(7363),
+ q(7349),
q(0),
],
q(xis) => [
- q(7364),
+ q(7350),
q(0),
],
q(xiv) => [
- q(7365),
+ q(7351),
q(0),
],
q(xiy) => [
- q(7366),
+ q(7352),
q(0),
],
q(xjb) => [
- q(7367),
+ q(7353),
q(0),
],
q(xjt) => [
- q(7368),
+ q(7354),
q(0),
],
q(xka) => [
- q(7369),
+ q(7355),
q(0),
],
q(xkb) => [
- q(7370),
+ q(7356),
q(0),
],
q(xkc) => [
- q(7371),
+ q(7357),
q(0),
],
q(xkd) => [
- q(7372),
+ q(7358),
q(0),
],
q(xke) => [
- q(7373),
+ q(7359),
q(0),
],
q(xkf) => [
- q(7374),
+ q(7360),
q(0),
],
q(xkg) => [
- q(7375),
- q(0),
- ],
- q(xkh) => [
- q(7376),
+ q(7361),
q(0),
],
q(xki) => [
- q(7377),
+ q(7362),
q(0),
],
q(xkj) => [
- q(7378),
+ q(7363),
q(0),
],
q(xkk) => [
- q(7379),
+ q(7364),
q(0),
],
q(xkl) => [
- q(7380),
+ q(7365),
q(0),
],
q(xkn) => [
- q(7381),
+ q(7366),
q(0),
],
q(xko) => [
- q(7382),
+ q(7367),
q(0),
],
q(xkp) => [
- q(7383),
+ q(7368),
q(0),
],
q(xkq) => [
- q(7384),
+ q(7369),
q(0),
],
q(xkr) => [
- q(7385),
+ q(7370),
q(0),
],
q(xks) => [
- q(7386),
+ q(7371),
q(0),
],
q(xkt) => [
- q(7387),
+ q(7372),
q(0),
],
q(xku) => [
- q(7388),
+ q(7373),
q(0),
],
q(xkv) => [
- q(7389),
+ q(7374),
q(0),
],
q(xkw) => [
- q(7390),
+ q(7375),
q(0),
],
q(xkx) => [
- q(7391),
+ q(7376),
q(0),
],
q(xky) => [
- q(7392),
+ q(7377),
q(0),
],
q(xkz) => [
- q(7393),
+ q(7378),
q(0),
],
q(xla) => [
- q(7394),
+ q(7379),
q(0),
],
q(xlb) => [
- q(7395),
+ q(7380),
q(0),
],
q(xlc) => [
- q(7396),
+ q(7381),
q(0),
],
q(xld) => [
- q(7397),
+ q(7382),
q(0),
],
q(xle) => [
- q(7398),
+ q(7383),
q(0),
],
q(xlg) => [
- q(7399),
+ q(7384),
q(0),
],
q(xli) => [
- q(7400),
+ q(7385),
q(0),
],
q(xln) => [
- q(7401),
+ q(7386),
q(0),
],
q(xlo) => [
- q(7402),
+ q(7387),
q(0),
],
q(xlp) => [
- q(7403),
+ q(7388),
q(0),
],
q(xls) => [
- q(7404),
+ q(7389),
q(0),
],
q(xlu) => [
- q(7405),
+ q(7390),
q(0),
],
q(xly) => [
- q(7406),
+ q(7391),
q(0),
],
q(xma) => [
- q(7407),
+ q(7392),
q(0),
],
q(xmb) => [
- q(7408),
+ q(7393),
q(0),
],
q(xmc) => [
- q(7409),
+ q(7394),
q(0),
],
q(xmd) => [
- q(7410),
+ q(7395),
q(0),
],
q(xme) => [
- q(7411),
+ q(7396),
q(0),
],
q(xmf) => [
- q(7412),
+ q(7397),
q(0),
],
q(xmg) => [
- q(7413),
+ q(7398),
q(0),
],
q(xmh) => [
- q(7414),
+ q(7399),
q(0),
],
q(xmj) => [
- q(7415),
+ q(7400),
q(0),
],
q(xmk) => [
- q(7416),
+ q(7401),
q(0),
],
q(xml) => [
- q(7417),
+ q(7402),
q(0),
],
q(xmm) => [
- q(7418),
+ q(7403),
q(0),
],
q(xmn) => [
- q(7419),
+ q(7404),
q(0),
],
q(xmo) => [
- q(7420),
+ q(7405),
q(0),
],
q(xmp) => [
- q(7421),
+ q(7406),
q(0),
],
q(xmq) => [
- q(7422),
+ q(7407),
q(0),
],
q(xmr) => [
- q(7423),
+ q(7408),
q(0),
],
q(xms) => [
- q(7424),
+ q(7409),
q(0),
],
q(xmt) => [
- q(7425),
+ q(7410),
q(0),
],
q(xmu) => [
- q(7426),
+ q(7411),
q(0),
],
q(xmv) => [
- q(7427),
+ q(7412),
q(0),
],
q(xmw) => [
- q(7428),
+ q(7413),
q(0),
],
q(xmx) => [
- q(7429),
+ q(7414),
q(0),
],
q(xmy) => [
- q(7430),
+ q(7415),
q(0),
],
q(xmz) => [
- q(7431),
+ q(7416),
q(0),
],
q(xna) => [
- q(7432),
+ q(7417),
q(0),
],
q(xnb) => [
- q(7433),
+ q(7418),
q(0),
],
q(xnd) => [
- q(0532),
+ q(0533),
q(0),
],
q(xng) => [
- q(7434),
+ q(7419),
q(0),
],
q(xnh) => [
- q(7435),
+ q(7420),
q(0),
],
q(xni) => [
- q(7436),
+ q(7421),
q(0),
],
q(xnk) => [
- q(7437),
+ q(7422),
q(0),
],
q(xnn) => [
- q(7438),
+ q(7423),
q(0),
],
q(xno) => [
- q(7439),
+ q(7424),
q(0),
],
q(xnr) => [
- q(7440),
+ q(7425),
q(0),
],
q(xns) => [
- q(7441),
+ q(7426),
q(0),
],
q(xnt) => [
- q(7442),
+ q(7427),
q(0),
],
q(xnu) => [
- q(7443),
+ q(7428),
q(0),
],
q(xny) => [
- q(7444),
+ q(7429),
q(0),
],
q(xnz) => [
- q(7445),
+ q(7430),
q(0),
],
q(xoc) => [
- q(7446),
+ q(7431),
q(0),
],
q(xod) => [
- q(7447),
+ q(7432),
q(0),
],
q(xog) => [
- q(7448),
+ q(7433),
q(0),
],
q(xoi) => [
- q(7449),
+ q(7434),
q(0),
],
q(xok) => [
- q(7450),
+ q(7435),
q(0),
],
q(xom) => [
- q(7451),
+ q(7436),
q(0),
],
q(xon) => [
- q(7452),
+ q(7437),
q(0),
],
q(xoo) => [
- q(7453),
+ q(7438),
q(0),
],
q(xop) => [
- q(7454),
+ q(7439),
q(0),
],
q(xor) => [
- q(7455),
+ q(7440),
q(0),
],
q(xow) => [
- q(7456),
+ q(7441),
q(0),
],
q(xpa) => [
- q(7457),
+ q(7442),
q(0),
],
q(xpc) => [
- q(7458),
+ q(7443),
q(0),
],
q(xpe) => [
- q(7459),
+ q(7444),
q(0),
],
q(xpg) => [
- q(7460),
+ q(7445),
q(0),
],
q(xpi) => [
- q(7461),
+ q(7446),
q(0),
],
q(xpj) => [
- q(7462),
+ q(7447),
q(0),
],
q(xpk) => [
- q(7463),
+ q(7448),
q(0),
],
q(xpm) => [
- q(7464),
+ q(7449),
q(0),
],
q(xpn) => [
- q(7465),
+ q(7450),
q(0),
],
q(xpo) => [
- q(7466),
+ q(7451),
q(0),
],
q(xpp) => [
- q(7467),
+ q(7452),
q(0),
],
q(xpq) => [
- q(7468),
+ q(7453),
q(0),
],
q(xpr) => [
- q(7469),
+ q(7454),
q(0),
],
q(xps) => [
- q(7470),
+ q(7455),
q(0),
],
q(xpt) => [
- q(7471),
+ q(7456),
q(0),
],
q(xpu) => [
- q(7472),
+ q(7457),
q(0),
],
q(xpy) => [
- q(7473),
+ q(7458),
q(0),
],
q(xqa) => [
- q(7474),
+ q(7459),
q(0),
],
q(xqt) => [
- q(7475),
+ q(7460),
q(0),
],
q(xra) => [
- q(7476),
+ q(7461),
q(0),
],
q(xrb) => [
- q(7477),
+ q(7462),
q(0),
],
q(xrd) => [
- q(7478),
+ q(7463),
q(0),
],
q(xre) => [
- q(7479),
+ q(7464),
q(0),
],
q(xrg) => [
- q(7480),
+ q(7465),
q(0),
],
q(xri) => [
- q(7481),
+ q(7466),
q(0),
],
q(xrm) => [
- q(7482),
+ q(7467),
q(0),
],
q(xrn) => [
- q(7483),
+ q(7468),
q(0),
],
q(xrq) => [
- q(7484),
+ q(7469),
q(0),
],
q(xrr) => [
- q(7485),
+ q(7470),
q(0),
],
q(xrt) => [
- q(7486),
+ q(7471),
q(0),
],
q(xru) => [
- q(7487),
+ q(7472),
q(0),
],
q(xrw) => [
- q(7488),
+ q(7473),
q(0),
],
q(xsa) => [
- q(7489),
+ q(7474),
q(0),
],
q(xsb) => [
- q(7490),
+ q(7475),
q(0),
],
q(xsc) => [
- q(7491),
+ q(7476),
q(0),
],
q(xsd) => [
- q(7492),
+ q(7477),
q(0),
],
q(xse) => [
- q(7493),
+ q(7478),
q(0),
],
q(xsh) => [
- q(7494),
+ q(7479),
q(0),
],
q(xsi) => [
- q(7495),
+ q(7480),
q(0),
],
q(xsl) => [
- q(7496),
+ q(7481),
q(0),
],
q(xsm) => [
- q(7497),
+ q(7482),
q(0),
],
q(xsn) => [
- q(7498),
+ q(7483),
q(0),
],
q(xso) => [
- q(7499),
+ q(7484),
q(0),
],
q(xsp) => [
- q(7500),
+ q(7485),
q(0),
],
q(xsq) => [
- q(7501),
+ q(7486),
q(0),
],
q(xsr) => [
- q(7502),
+ q(7487),
q(0),
],
q(xss) => [
- q(7503),
+ q(7488),
q(0),
],
q(xsu) => [
- q(7504),
+ q(7489),
q(0),
],
q(xsv) => [
- q(7505),
+ q(7490),
q(0),
],
q(xsy) => [
- q(7506),
+ q(7491),
q(0),
],
q(xta) => [
- q(7507),
+ q(7492),
q(0),
],
q(xtb) => [
- q(7508),
+ q(7493),
q(0),
],
q(xtc) => [
- q(7509),
+ q(7494),
q(0),
],
q(xtd) => [
- q(7510),
+ q(7495),
q(0),
],
q(xte) => [
- q(7511),
+ q(7496),
q(0),
],
q(xtg) => [
- q(7512),
+ q(7497),
q(0),
],
q(xth) => [
- q(7513),
+ q(7498),
q(0),
],
q(xti) => [
- q(7514),
+ q(7499),
q(0),
],
q(xtj) => [
- q(7515),
+ q(7500),
q(0),
],
q(xtl) => [
- q(7516),
+ q(7501),
q(0),
],
q(xtm) => [
- q(7517),
+ q(7502),
q(0),
],
q(xtn) => [
- q(7518),
+ q(7503),
q(0),
],
q(xto) => [
- q(7519),
+ q(7504),
q(0),
],
q(xtp) => [
- q(7520),
+ q(7505),
q(0),
],
q(xtq) => [
- q(7521),
+ q(7506),
q(0),
],
q(xtr) => [
- q(7522),
+ q(7507),
q(0),
],
q(xts) => [
- q(7523),
+ q(7508),
q(0),
],
q(xtt) => [
- q(7524),
+ q(7509),
q(0),
],
q(xtu) => [
- q(7525),
+ q(7510),
q(0),
],
q(xtv) => [
- q(7526),
+ q(7511),
q(0),
],
q(xtw) => [
- q(7527),
+ q(7512),
q(0),
],
q(xty) => [
- q(7528),
+ q(7513),
q(0),
],
q(xtz) => [
- q(7529),
+ q(7514),
q(0),
],
q(xua) => [
- q(7530),
+ q(7515),
q(0),
],
q(xub) => [
- q(7531),
+ q(7516),
q(0),
],
q(xud) => [
- q(7532),
+ q(7517),
q(0),
],
q(xug) => [
- q(7533),
+ q(7518),
q(0),
],
q(xuj) => [
- q(7534),
+ q(7519),
q(0),
],
q(xul) => [
- q(7535),
+ q(7520),
q(0),
],
q(xum) => [
- q(7536),
+ q(7521),
q(0),
],
q(xun) => [
- q(7537),
+ q(7522),
q(0),
],
q(xuo) => [
- q(7538),
+ q(7523),
q(0),
],
q(xup) => [
- q(7539),
+ q(7524),
q(0),
],
q(xur) => [
- q(7540),
+ q(7525),
q(0),
],
q(xut) => [
- q(7541),
+ q(7526),
q(0),
],
q(xuu) => [
- q(7542),
+ q(7527),
q(0),
],
q(xve) => [
- q(7543),
+ q(7528),
q(0),
],
q(xvi) => [
- q(7544),
+ q(7529),
q(0),
],
q(xvn) => [
- q(7545),
+ q(7530),
q(0),
],
q(xvo) => [
- q(7546),
+ q(7531),
q(0),
],
q(xvs) => [
- q(7547),
+ q(7532),
q(0),
],
q(xwa) => [
- q(7548),
+ q(7533),
q(0),
],
q(xwc) => [
- q(7549),
+ q(7534),
q(0),
],
q(xwd) => [
- q(7550),
+ q(7535),
q(0),
],
q(xwe) => [
- q(7551),
+ q(7536),
q(0),
],
q(xwg) => [
- q(7552),
+ q(7537),
q(0),
],
q(xwj) => [
- q(7553),
+ q(7538),
q(0),
],
q(xwk) => [
- q(7554),
+ q(7539),
q(0),
],
q(xwl) => [
- q(7555),
+ q(7540),
q(0),
],
q(xwo) => [
- q(7556),
+ q(7541),
q(0),
],
q(xwr) => [
- q(7557),
+ q(7542),
q(0),
],
q(xwt) => [
- q(7558),
+ q(7543),
q(0),
],
q(xww) => [
- q(7559),
+ q(7544),
q(0),
],
q(xxb) => [
- q(7560),
+ q(7545),
q(0),
],
q(xxk) => [
- q(7561),
+ q(7546),
q(0),
],
q(xxm) => [
- q(7562),
+ q(7547),
q(0),
],
q(xxr) => [
- q(7563),
+ q(7548),
q(0),
],
q(xxt) => [
- q(7564),
+ q(7549),
q(0),
],
q(xya) => [
- q(7565),
+ q(7550),
q(0),
],
q(xyb) => [
- q(7566),
+ q(7551),
q(0),
],
q(xyj) => [
- q(7567),
+ q(7552),
q(0),
],
q(xyk) => [
- q(7568),
+ q(7553),
q(0),
],
q(xyl) => [
- q(7569),
+ q(7554),
q(0),
],
q(xyt) => [
- q(7570),
+ q(7555),
q(0),
],
q(xyy) => [
- q(7571),
+ q(7556),
q(0),
],
q(xzh) => [
- q(7572),
+ q(7557),
q(0),
],
q(xzm) => [
- q(7573),
+ q(7558),
q(0),
],
q(xzp) => [
- q(7574),
+ q(7559),
q(0),
],
q(yaa) => [
- q(7575),
+ q(7560),
q(0),
],
q(yab) => [
- q(7576),
+ q(7561),
q(0),
],
q(yac) => [
- q(7577),
+ q(7562),
q(0),
],
q(yad) => [
- q(7578),
+ q(7563),
q(0),
],
q(yae) => [
- q(7579),
+ q(7564),
q(0),
],
q(yaf) => [
- q(7580),
+ q(7565),
q(0),
],
q(yag) => [
- q(7581),
+ q(7566),
q(0),
],
q(yah) => [
- q(7582),
+ q(7567),
q(0),
],
q(yai) => [
- q(7583),
+ q(7568),
q(0),
],
q(yaj) => [
- q(7584),
+ q(7569),
q(0),
],
q(yak) => [
- q(7585),
+ q(7570),
q(0),
],
q(yal) => [
- q(7586),
+ q(7571),
q(0),
],
q(yam) => [
- q(7587),
+ q(7572),
q(0),
],
q(yan) => [
- q(7588),
+ q(7573),
q(0),
],
q(yao) => [
- q(0472),
+ q(0473),
q(0),
],
q(yap) => [
- q(0473),
+ q(0474),
q(0),
],
q(yaq) => [
- q(7589),
+ q(7574),
q(0),
],
q(yar) => [
- q(7590),
+ q(7575),
q(0),
],
q(yas) => [
- q(7591),
+ q(7576),
q(0),
],
q(yat) => [
- q(7592),
+ q(7577),
q(0),
],
q(yau) => [
- q(7593),
+ q(7578),
q(0),
],
q(yav) => [
- q(7594),
+ q(7579),
q(0),
],
q(yaw) => [
- q(7595),
+ q(7580),
q(0),
],
q(yax) => [
- q(7596),
+ q(7581),
q(0),
],
q(yay) => [
- q(7597),
+ q(7582),
q(0),
],
q(yaz) => [
- q(7598),
+ q(7583),
q(0),
],
q(yba) => [
- q(7599),
+ q(7584),
q(0),
],
q(ybb) => [
- q(7600),
+ q(7585),
q(0),
],
q(ybe) => [
- q(7601),
+ q(7586),
q(0),
],
q(ybh) => [
- q(7602),
+ q(7587),
q(0),
],
q(ybi) => [
- q(7603),
+ q(7588),
q(0),
],
q(ybj) => [
- q(7604),
+ q(7589),
q(0),
],
q(ybk) => [
- q(7605),
+ q(7590),
q(0),
],
q(ybl) => [
- q(7606),
+ q(7591),
q(0),
],
q(ybm) => [
- q(7607),
+ q(7592),
q(0),
],
q(ybn) => [
- q(7608),
+ q(7593),
q(0),
],
q(ybo) => [
- q(7609),
+ q(7594),
q(0),
],
q(ybx) => [
- q(7610),
+ q(7595),
q(0),
],
q(yby) => [
- q(7611),
+ q(7596),
q(0),
],
q(ych) => [
- q(7612),
+ q(7597),
q(0),
],
q(ycl) => [
- q(7613),
+ q(7598),
q(0),
],
q(ycn) => [
- q(7614),
+ q(7599),
q(0),
],
q(ycp) => [
- q(7615),
+ q(7600),
q(0),
],
q(yda) => [
- q(7616),
+ q(7601),
q(0),
],
q(ydd) => [
- q(7617),
+ q(7602),
q(0),
],
q(yde) => [
- q(7618),
+ q(7603),
q(0),
],
q(ydg) => [
- q(7619),
+ q(7604),
q(0),
],
q(ydk) => [
- q(7620),
+ q(7605),
q(0),
],
q(yea) => [
- q(7621),
+ q(7606),
q(0),
],
q(yec) => [
- q(7622),
+ q(7607),
q(0),
],
q(yee) => [
- q(7623),
+ q(7608),
q(0),
],
q(yei) => [
- q(7624),
+ q(7609),
q(0),
],
q(yej) => [
- q(7625),
+ q(7610),
q(0),
],
q(yel) => [
- q(7626),
+ q(7611),
q(0),
],
q(yer) => [
- q(7627),
+ q(7612),
q(0),
],
q(yes) => [
- q(7628),
+ q(7613),
q(0),
],
q(yet) => [
- q(7629),
+ q(7614),
q(0),
],
q(yeu) => [
- q(7630),
+ q(7615),
q(0),
],
q(yev) => [
- q(7631),
+ q(7616),
q(0),
],
q(yey) => [
- q(7632),
+ q(7617),
q(0),
],
q(yga) => [
- q(7633),
+ q(7618),
q(0),
],
q(ygi) => [
- q(7634),
+ q(7619),
q(0),
],
q(ygl) => [
- q(7635),
+ q(7620),
q(0),
],
q(ygm) => [
- q(7636),
+ q(7621),
q(0),
],
q(ygp) => [
- q(7637),
+ q(7622),
q(0),
],
q(ygr) => [
- q(7638),
+ q(7623),
q(0),
],
q(ygs) => [
- q(7639),
+ q(7624),
q(0),
],
q(ygu) => [
- q(7640),
+ q(7625),
q(0),
],
q(ygw) => [
- q(7641),
+ q(7626),
q(0),
],
q(yha) => [
- q(7642),
+ q(7627),
q(0),
],
q(yhd) => [
- q(7643),
+ q(7628),
q(0),
],
q(yhl) => [
- q(7644),
+ q(7629),
q(0),
],
q(yhs) => [
- q(7645),
+ q(7630),
q(0),
],
q(yia) => [
- q(7646),
+ q(7631),
q(0),
],
q(yid) => [
- q(0474),
+ q(0475),
q(0),
],
q(yif) => [
- q(2657),
+ q(2655),
q(0),
],
q(yig) => [
- q(7647),
+ q(7632),
q(0),
],
q(yih) => [
- q(7648),
+ q(7633),
q(0),
],
q(yii) => [
- q(7649),
+ q(7634),
q(0),
],
q(yij) => [
- q(7650),
+ q(7635),
q(0),
],
q(yik) => [
- q(7651),
+ q(7636),
q(0),
],
q(yil) => [
- q(7652),
+ q(7637),
q(0),
],
q(yim) => [
- q(7653),
+ q(7638),
q(0),
],
q(yin) => [
- q(7654),
+ q(7639),
q(0),
],
q(yip) => [
- q(7655),
+ q(7640),
q(0),
],
q(yiq) => [
- q(7656),
+ q(7641),
q(0),
],
q(yir) => [
- q(7657),
+ q(7642),
q(0),
],
q(yis) => [
- q(7658),
+ q(7643),
q(0),
],
q(yit) => [
- q(7659),
+ q(7644),
q(0),
],
q(yiu) => [
- q(7660),
+ q(7645),
q(0),
],
q(yiv) => [
- q(7661),
+ q(7646),
q(0),
],
q(yix) => [
- q(7662),
+ q(7647),
q(0),
],
q(yiz) => [
- q(7663),
+ q(7648),
q(0),
],
q(yka) => [
- q(7664),
+ q(7649),
q(0),
],
q(ykg) => [
- q(7665),
+ q(7650),
q(0),
],
q(yki) => [
- q(7666),
+ q(7651),
q(0),
],
q(ykk) => [
- q(7667),
+ q(7652),
q(0),
],
q(ykl) => [
- q(7668),
+ q(7653),
q(0),
],
q(ykm) => [
- q(7669),
+ q(7654),
q(0),
],
q(ykn) => [
- q(7670),
+ q(7655),
q(0),
],
q(yko) => [
- q(7671),
+ q(7656),
q(0),
],
q(ykr) => [
- q(7672),
+ q(7657),
q(0),
],
q(ykt) => [
- q(7673),
+ q(7658),
q(0),
],
q(yku) => [
- q(7674),
+ q(7659),
q(0),
],
q(yky) => [
- q(7675),
+ q(7660),
q(0),
],
q(yla) => [
- q(7676),
+ q(7661),
q(0),
],
q(ylb) => [
- q(7677),
+ q(7662),
q(0),
],
q(yle) => [
- q(7678),
+ q(7663),
q(0),
],
q(ylg) => [
- q(7679),
+ q(7664),
q(0),
],
q(yli) => [
- q(7680),
+ q(7665),
q(0),
],
q(yll) => [
- q(7681),
+ q(7666),
q(0),
],
q(ylm) => [
- q(7682),
+ q(7667),
q(0),
],
q(yln) => [
- q(7683),
+ q(7668),
q(0),
],
q(ylo) => [
- q(7684),
+ q(7669),
q(0),
],
q(ylr) => [
- q(7685),
+ q(7670),
q(0),
],
q(ylu) => [
- q(7686),
+ q(7671),
q(0),
],
q(yly) => [
- q(7687),
+ q(7672),
q(0),
],
q(ymb) => [
- q(7688),
+ q(7673),
q(0),
],
q(ymc) => [
- q(7689),
+ q(7674),
q(0),
],
q(ymd) => [
- q(7690),
+ q(7675),
q(0),
],
q(yme) => [
- q(7691),
+ q(7676),
q(0),
],
q(ymg) => [
- q(7692),
+ q(7677),
q(0),
],
q(ymh) => [
- q(7693),
+ q(7678),
q(0),
],
q(ymi) => [
- q(7694),
+ q(7679),
q(0),
],
q(ymk) => [
- q(7695),
+ q(7680),
q(0),
],
q(yml) => [
- q(7696),
+ q(7681),
q(0),
],
q(ymm) => [
- q(7697),
+ q(7682),
q(0),
],
q(ymn) => [
- q(7698),
+ q(7683),
q(0),
],
q(ymo) => [
- q(7699),
+ q(7684),
q(0),
],
q(ymp) => [
- q(7700),
+ q(7685),
q(0),
],
q(ymq) => [
- q(7701),
+ q(7686),
q(0),
],
q(ymr) => [
- q(7702),
+ q(7687),
q(0),
],
q(yms) => [
- q(7703),
+ q(7688),
q(0),
],
q(ymx) => [
- q(7704),
+ q(7689),
q(0),
],
q(ymz) => [
- q(7705),
+ q(7690),
q(0),
],
q(yna) => [
- q(7706),
+ q(7691),
q(0),
],
q(ynd) => [
- q(7707),
+ q(7692),
q(0),
],
q(yne) => [
- q(7708),
+ q(7693),
q(0),
],
q(yng) => [
- q(7709),
+ q(7694),
q(0),
],
q(ynk) => [
- q(7710),
+ q(7695),
q(0),
],
q(ynl) => [
- q(7711),
+ q(7696),
q(0),
],
q(ynn) => [
- q(7712),
+ q(7697),
q(0),
],
q(yno) => [
- q(7713),
+ q(7698),
q(0),
],
q(ynq) => [
- q(7714),
+ q(7699),
q(0),
],
q(yns) => [
- q(7715),
+ q(7700),
q(0),
],
q(ynu) => [
- q(7716),
+ q(7701),
q(0),
],
q(yob) => [
- q(7717),
+ q(7702),
q(0),
],
q(yog) => [
- q(7718),
+ q(7703),
q(0),
],
q(yoi) => [
- q(7719),
+ q(7704),
q(0),
],
q(yok) => [
- q(7720),
+ q(7705),
q(0),
],
q(yol) => [
- q(7721),
+ q(7706),
q(0),
],
q(yom) => [
- q(7722),
+ q(7707),
q(0),
],
q(yon) => [
- q(7723),
+ q(7708),
q(0),
],
q(yor) => [
- q(0475),
+ q(0476),
q(0),
],
q(yot) => [
- q(7724),
+ q(7709),
q(0),
],
q(yox) => [
- q(7725),
+ q(7710),
q(0),
],
q(yoy) => [
- q(7726),
+ q(7711),
q(0),
],
q(ypa) => [
- q(7727),
+ q(7712),
q(0),
],
q(ypb) => [
- q(7728),
+ q(7713),
q(0),
],
q(ypg) => [
- q(7729),
+ q(7714),
q(0),
],
q(yph) => [
- q(7730),
+ q(7715),
q(0),
],
q(ypk) => [
- q(0476),
+ q(0477),
q(0),
],
q(ypm) => [
- q(7731),
+ q(7716),
q(0),
],
q(ypn) => [
- q(7732),
+ q(7717),
q(0),
],
q(ypo) => [
- q(7733),
+ q(7718),
q(0),
],
q(ypp) => [
- q(7734),
+ q(7719),
q(0),
],
q(ypz) => [
- q(7735),
+ q(7720),
q(0),
],
q(yra) => [
- q(7736),
+ q(7721),
q(0),
],
q(yrb) => [
- q(7737),
+ q(7722),
q(0),
],
q(yre) => [
- q(7738),
- q(0),
- ],
- q(yri) => [
- q(7739),
+ q(7723),
q(0),
],
q(yrk) => [
- q(7740),
+ q(7724),
q(0),
],
q(yrl) => [
- q(7741),
+ q(7725),
q(0),
],
q(yrm) => [
- q(7742),
+ q(7726),
q(0),
],
q(yrn) => [
- q(7743),
+ q(7727),
+ q(0),
+ ],
+ q(yro) => [
+ q(7728),
q(0),
],
q(yrs) => [
- q(7744),
+ q(7729),
q(0),
],
q(yrw) => [
- q(7745),
+ q(7730),
q(0),
],
q(yry) => [
- q(7746),
+ q(7731),
q(0),
],
q(ysc) => [
- q(7747),
+ q(7732),
q(0),
],
q(ysd) => [
- q(7748),
+ q(7733),
q(0),
],
q(ysg) => [
- q(7749),
+ q(7734),
q(0),
],
q(ysl) => [
- q(7750),
+ q(7735),
q(0),
],
q(ysn) => [
- q(7751),
+ q(7736),
q(0),
],
q(yso) => [
- q(7752),
+ q(7737),
q(0),
],
q(ysp) => [
- q(7753),
+ q(7738),
q(0),
],
q(ysr) => [
- q(7754),
+ q(7739),
q(0),
],
q(yss) => [
- q(7755),
+ q(7740),
q(0),
],
q(ysy) => [
- q(7756),
+ q(7741),
q(0),
],
q(yta) => [
- q(7757),
+ q(7742),
q(0),
],
q(ytl) => [
- q(7758),
+ q(7743),
q(0),
],
q(ytp) => [
- q(7759),
+ q(7744),
q(0),
],
q(ytw) => [
- q(7760),
+ q(7745),
q(0),
],
q(yty) => [
- q(7761),
+ q(7746),
q(0),
],
q(yua) => [
- q(7762),
+ q(7747),
q(0),
],
q(yub) => [
- q(7763),
+ q(7748),
q(0),
],
q(yuc) => [
- q(7764),
+ q(7749),
q(0),
],
q(yud) => [
- q(7765),
+ q(7750),
q(0),
],
q(yue) => [
- q(7766),
+ q(7751),
q(0),
],
q(yuf) => [
- q(7767),
+ q(7752),
q(0),
],
q(yug) => [
- q(7768),
+ q(7753),
q(0),
],
q(yui) => [
- q(7769),
+ q(7754),
q(0),
],
q(yuj) => [
- q(7770),
+ q(7755),
q(0),
],
q(yuk) => [
- q(7771),
+ q(7756),
q(0),
],
q(yul) => [
- q(7772),
+ q(7757),
q(0),
],
q(yum) => [
- q(7773),
+ q(7758),
q(0),
],
q(yun) => [
- q(7774),
+ q(7759),
q(0),
],
q(yup) => [
- q(7775),
+ q(7760),
q(0),
],
q(yuq) => [
- q(7776),
+ q(7761),
q(0),
],
q(yur) => [
- q(7777),
+ q(7762),
q(0),
],
q(yut) => [
- q(7778),
+ q(7763),
q(0),
],
q(yuw) => [
- q(7779),
+ q(7764),
q(0),
],
q(yux) => [
- q(7780),
+ q(7765),
q(0),
],
q(yuy) => [
- q(7781),
+ q(7766),
q(0),
],
q(yuz) => [
- q(7782),
+ q(7767),
q(0),
],
q(yva) => [
- q(7783),
+ q(7768),
q(0),
],
q(yvt) => [
- q(7784),
+ q(7769),
q(0),
],
q(ywa) => [
- q(7785),
+ q(7770),
q(0),
],
q(ywg) => [
- q(7786),
+ q(7771),
q(0),
],
q(ywl) => [
- q(7787),
+ q(7772),
q(0),
],
q(ywn) => [
- q(7788),
+ q(7773),
q(0),
],
q(ywq) => [
- q(7789),
+ q(7774),
q(0),
],
q(ywr) => [
- q(7790),
+ q(7775),
q(0),
],
q(ywt) => [
- q(7791),
+ q(7776),
q(0),
],
q(ywu) => [
- q(7792),
+ q(7777),
q(0),
],
q(yww) => [
- q(7793),
+ q(7778),
q(0),
],
q(yxa) => [
- q(7794),
+ q(7779),
q(0),
],
q(yxg) => [
- q(7795),
+ q(7780),
q(0),
],
q(yxl) => [
- q(7796),
+ q(7781),
q(0),
],
q(yxm) => [
- q(7797),
+ q(7782),
q(0),
],
q(yxu) => [
- q(7798),
+ q(7783),
q(0),
],
q(yxy) => [
- q(7799),
+ q(7784),
q(0),
],
q(yyr) => [
- q(7800),
+ q(7785),
q(0),
],
q(yyu) => [
- q(7801),
+ q(7786),
q(0),
],
q(yyz) => [
- q(7802),
+ q(7787),
q(0),
],
q(yzg) => [
- q(7803),
+ q(7788),
q(0),
],
q(yzk) => [
- q(7804),
+ q(7789),
q(0),
],
q(zaa) => [
- q(7805),
+ q(7790),
q(0),
],
q(zab) => [
- q(7806),
+ q(7791),
q(0),
],
q(zac) => [
- q(7807),
+ q(7792),
q(0),
],
q(zad) => [
- q(7808),
+ q(7793),
q(0),
],
q(zae) => [
- q(7809),
+ q(7794),
q(0),
],
q(zaf) => [
- q(7810),
+ q(7795),
q(0),
],
q(zag) => [
- q(7811),
+ q(7796),
q(0),
],
q(zah) => [
- q(7812),
+ q(7797),
q(0),
],
q(zai) => [
- q(7813),
+ q(7798),
q(0),
],
q(zaj) => [
- q(7814),
+ q(7799),
q(0),
],
q(zak) => [
- q(7815),
+ q(7800),
q(0),
],
q(zal) => [
- q(7816),
+ q(7801),
q(0),
],
q(zam) => [
- q(7817),
+ q(7802),
q(0),
],
q(zao) => [
- q(7818),
+ q(7803),
q(0),
],
q(zap) => [
- q(0477),
+ q(0478),
q(0),
],
q(zaq) => [
- q(7819),
+ q(7804),
q(0),
],
q(zar) => [
- q(7820),
+ q(7805),
q(0),
],
q(zas) => [
- q(7821),
+ q(7806),
q(0),
],
q(zat) => [
- q(7822),
+ q(7807),
q(0),
],
q(zau) => [
- q(7823),
+ q(7808),
q(0),
],
q(zav) => [
- q(7824),
+ q(7809),
q(0),
],
q(zaw) => [
- q(7825),
+ q(7810),
q(0),
],
q(zax) => [
- q(7826),
+ q(7811),
q(0),
],
q(zay) => [
- q(7827),
+ q(7812),
q(0),
],
q(zaz) => [
- q(7828),
+ q(7813),
q(0),
],
q(zbc) => [
- q(7829),
+ q(7814),
q(0),
],
q(zbe) => [
- q(7830),
+ q(7815),
q(0),
],
q(zbl) => [
- q(0478),
+ q(0479),
q(0),
],
q(zbt) => [
- q(7831),
+ q(7816),
q(0),
],
q(zbw) => [
- q(7832),
+ q(7817),
q(0),
],
q(zca) => [
- q(7833),
+ q(7818),
q(0),
],
q(zch) => [
- q(7834),
+ q(7819),
q(0),
],
q(zdj) => [
- q(7835),
+ q(7820),
q(0),
],
q(zea) => [
- q(7836),
+ q(7821),
q(0),
],
q(zeg) => [
- q(7837),
+ q(7822),
q(0),
],
q(zeh) => [
- q(7838),
+ q(7823),
q(0),
],
q(zen) => [
- q(0479),
+ q(0480),
q(0),
],
q(zga) => [
- q(7839),
+ q(7824),
q(0),
],
q(zgb) => [
- q(7840),
+ q(7825),
q(0),
],
q(zgh) => [
- q(0480),
+ q(0481),
q(0),
],
q(zgm) => [
- q(7841),
+ q(7826),
q(0),
],
q(zgn) => [
- q(7842),
+ q(7827),
q(0),
],
q(zgr) => [
- q(7843),
+ q(7828),
q(0),
],
q(zha) => [
- q(0481),
+ q(0482),
q(0),
],
q(zhb) => [
- q(7844),
+ q(7829),
q(0),
],
q(zhd) => [
- q(7845),
+ q(7830),
q(0),
],
q(zhi) => [
- q(7846),
+ q(7831),
q(0),
],
q(zhn) => [
- q(7847),
+ q(7832),
q(0),
],
q(zhw) => [
- q(7848),
+ q(7833),
q(0),
],
q(zhx) => [
- q(0533),
+ q(0534),
q(0),
],
q(zia) => [
- q(7849),
+ q(7834),
q(0),
],
q(zib) => [
- q(7850),
+ q(7835),
q(0),
],
q(zik) => [
- q(7851),
+ q(7836),
q(0),
],
q(zil) => [
- q(7852),
+ q(7837),
q(0),
],
q(zim) => [
- q(7853),
+ q(7838),
q(0),
],
q(zin) => [
- q(7854),
+ q(7839),
q(0),
],
q(zir) => [
- q(7855),
+ q(7840),
q(0),
],
q(ziw) => [
- q(7856),
+ q(7841),
q(0),
],
q(ziz) => [
- q(7857),
+ q(7842),
q(0),
],
q(zka) => [
- q(7858),
+ q(7843),
q(0),
],
q(zkb) => [
- q(7859),
+ q(7844),
q(0),
],
q(zkd) => [
- q(7860),
+ q(7845),
q(0),
],
q(zkg) => [
- q(7861),
+ q(7846),
q(0),
],
q(zkh) => [
- q(7862),
+ q(7847),
q(0),
],
q(zkk) => [
- q(7863),
+ q(7848),
q(0),
],
q(zkn) => [
- q(7864),
+ q(7849),
q(0),
],
q(zko) => [
- q(7865),
+ q(7850),
q(0),
],
q(zkp) => [
- q(7866),
+ q(7851),
q(0),
],
q(zkr) => [
- q(7867),
+ q(7852),
q(0),
],
q(zkt) => [
- q(7868),
+ q(7853),
q(0),
],
q(zku) => [
- q(7869),
+ q(7854),
q(0),
],
q(zkv) => [
- q(7870),
+ q(7855),
q(0),
],
q(zkz) => [
- q(7871),
+ q(7856),
q(0),
],
q(zle) => [
- q(0534),
+ q(0535),
q(0),
],
q(zlj) => [
- q(7872),
+ q(7857),
q(0),
],
q(zlm) => [
- q(7873),
+ q(7858),
q(0),
],
q(zln) => [
- q(7874),
+ q(7859),
q(0),
],
q(zlq) => [
- q(7875),
+ q(7860),
q(0),
],
q(zls) => [
- q(0535),
+ q(0536),
q(0),
],
q(zlw) => [
- q(0536),
+ q(0537),
q(0),
],
q(zma) => [
- q(7876),
+ q(7861),
q(0),
],
q(zmb) => [
- q(7877),
+ q(7862),
q(0),
],
q(zmc) => [
- q(7878),
+ q(7863),
q(0),
],
q(zmd) => [
- q(7879),
+ q(7864),
q(0),
],
q(zme) => [
- q(7880),
+ q(7865),
q(0),
],
q(zmf) => [
- q(7881),
+ q(7866),
q(0),
],
q(zmg) => [
- q(7882),
+ q(7867),
q(0),
],
q(zmh) => [
- q(7883),
+ q(7868),
q(0),
],
q(zmi) => [
- q(7884),
+ q(7869),
q(0),
],
q(zmj) => [
- q(7885),
+ q(7870),
q(0),
],
q(zmk) => [
- q(7886),
+ q(7871),
q(0),
],
q(zml) => [
- q(7887),
+ q(7872),
q(0),
],
q(zmm) => [
- q(7888),
+ q(7873),
q(0),
],
q(zmn) => [
- q(7889),
+ q(7874),
q(0),
],
q(zmo) => [
- q(7890),
+ q(7875),
q(0),
],
q(zmp) => [
- q(7891),
+ q(7876),
q(0),
],
q(zmq) => [
- q(7892),
+ q(7877),
q(0),
],
q(zmr) => [
- q(7893),
+ q(7878),
q(0),
],
q(zms) => [
- q(7894),
+ q(7879),
q(0),
],
q(zmt) => [
- q(7895),
+ q(7880),
q(0),
],
q(zmu) => [
- q(7896),
+ q(7881),
q(0),
],
q(zmv) => [
- q(7897),
+ q(7882),
q(0),
],
q(zmw) => [
- q(7898),
+ q(7883),
q(0),
],
q(zmx) => [
- q(7899),
+ q(7884),
q(0),
],
q(zmy) => [
- q(7900),
+ q(7885),
q(0),
],
q(zmz) => [
- q(7901),
+ q(7886),
q(0),
],
q(zna) => [
- q(7902),
+ q(7887),
q(0),
],
q(znd) => [
- q(0482),
+ q(0483),
q(0),
],
q(zne) => [
- q(7903),
+ q(7888),
q(0),
],
q(zng) => [
- q(7904),
+ q(7889),
q(0),
],
q(znk) => [
- q(7905),
+ q(7890),
q(0),
],
q(zns) => [
- q(7906),
+ q(7891),
q(0),
],
q(zoc) => [
- q(7907),
+ q(7892),
q(0),
],
q(zoh) => [
- q(7908),
+ q(7893),
q(0),
],
q(zom) => [
- q(7909),
+ q(7894),
q(0),
],
q(zoo) => [
- q(7910),
+ q(7895),
q(0),
],
q(zoq) => [
- q(7911),
+ q(7896),
q(0),
],
q(zor) => [
- q(7912),
+ q(7897),
q(0),
],
q(zos) => [
- q(7913),
+ q(7898),
q(0),
],
q(zpa) => [
- q(7914),
+ q(7899),
q(0),
],
q(zpb) => [
- q(7915),
+ q(7900),
q(0),
],
q(zpc) => [
- q(7916),
+ q(7901),
q(0),
],
q(zpd) => [
- q(7917),
+ q(7902),
q(0),
],
q(zpe) => [
- q(7918),
+ q(7903),
q(0),
],
q(zpf) => [
- q(7919),
+ q(7904),
q(0),
],
q(zpg) => [
- q(7920),
+ q(7905),
q(0),
],
q(zph) => [
- q(7921),
+ q(7906),
q(0),
],
q(zpi) => [
- q(7922),
+ q(7907),
q(0),
],
q(zpj) => [
- q(7923),
+ q(7908),
q(0),
],
q(zpk) => [
- q(7924),
+ q(7909),
q(0),
],
q(zpl) => [
- q(7925),
+ q(7910),
q(0),
],
q(zpm) => [
- q(7926),
+ q(7911),
q(0),
],
q(zpn) => [
- q(7927),
+ q(7912),
q(0),
],
q(zpo) => [
- q(7928),
+ q(7913),
q(0),
],
q(zpp) => [
- q(7929),
+ q(7914),
q(0),
],
q(zpq) => [
- q(7930),
+ q(7915),
q(0),
],
q(zpr) => [
- q(7931),
+ q(7916),
q(0),
],
q(zps) => [
- q(7932),
+ q(7917),
q(0),
],
q(zpt) => [
- q(7933),
+ q(7918),
q(0),
],
q(zpu) => [
- q(7934),
+ q(7919),
q(0),
],
q(zpv) => [
- q(7935),
+ q(7920),
q(0),
],
q(zpw) => [
- q(7936),
+ q(7921),
q(0),
],
q(zpx) => [
- q(7937),
+ q(7922),
q(0),
],
q(zpy) => [
- q(7938),
+ q(7923),
q(0),
],
q(zpz) => [
- q(7939),
+ q(7924),
q(0),
],
q(zqe) => [
- q(7940),
+ q(7925),
q(0),
],
q(zra) => [
- q(7941),
+ q(7926),
q(0),
],
q(zrg) => [
- q(7942),
+ q(7927),
q(0),
],
q(zrn) => [
- q(7943),
+ q(7928),
q(0),
],
q(zro) => [
- q(7944),
+ q(7929),
q(0),
],
q(zrp) => [
- q(7945),
+ q(7930),
q(0),
],
q(zrs) => [
- q(7946),
+ q(7931),
q(0),
],
q(zsa) => [
- q(7947),
+ q(7932),
q(0),
],
q(zsk) => [
- q(7948),
+ q(7933),
q(0),
],
q(zsl) => [
- q(7949),
+ q(7934),
q(0),
],
q(zsm) => [
- q(7950),
+ q(7935),
q(0),
],
q(zsr) => [
- q(7951),
+ q(7936),
q(0),
],
q(zsu) => [
- q(7952),
+ q(7937),
q(0),
],
q(zte) => [
- q(7953),
+ q(7938),
q(0),
],
q(ztg) => [
- q(7954),
+ q(7939),
q(0),
],
q(ztl) => [
- q(7955),
+ q(7940),
q(0),
],
q(ztm) => [
- q(7956),
+ q(7941),
q(0),
],
q(ztn) => [
- q(7957),
+ q(7942),
q(0),
],
q(ztp) => [
- q(7958),
+ q(7943),
q(0),
],
q(ztq) => [
- q(7959),
+ q(7944),
q(0),
],
q(zts) => [
- q(7960),
+ q(7945),
q(0),
],
q(ztt) => [
- q(7961),
+ q(7946),
q(0),
],
q(ztu) => [
- q(7962),
+ q(7947),
q(0),
],
q(ztx) => [
- q(7963),
+ q(7948),
q(0),
],
q(zty) => [
- q(7964),
+ q(7949),
q(0),
],
q(zua) => [
- q(7965),
+ q(7950),
q(0),
],
q(zuh) => [
- q(7966),
+ q(7951),
q(0),
],
q(zul) => [
- q(0483),
+ q(0484),
q(0),
],
q(zum) => [
- q(7967),
+ q(7952),
q(0),
],
q(zun) => [
- q(0484),
+ q(0485),
q(0),
],
q(zuy) => [
- q(7968),
+ q(7953),
q(0),
],
q(zwa) => [
- q(7969),
+ q(7954),
q(0),
],
q(zxx) => [
- q(0485),
+ q(0486),
q(0),
],
q(zyb) => [
- q(7970),
+ q(7955),
q(0),
],
q(zyg) => [
- q(7971),
+ q(7956),
q(0),
],
q(zyj) => [
- q(7972),
+ q(7957),
q(0),
],
q(zyn) => [
- q(7973),
+ q(7958),
q(0),
],
q(zyp) => [
- q(7974),
+ q(7959),
q(0),
],
q(zza) => [
- q(0486),
+ q(0487),
q(0),
],
q(zzj) => [
- q(7975),
+ q(7960),
q(0),
],
},
@@ -90438,7 +90387,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bod) => [
- q(0427),
+ q(0428),
q(0),
],
q(bos) => [
@@ -90502,7 +90451,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ces) => [
- q(0101),
+ q(0102),
q(0),
],
q(cha) => [
@@ -90561,156 +90510,160 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0089),
q(0),
],
- q(cop) => [
+ q(cnr) => [
q(0090),
q(0),
],
- q(cor) => [
+ q(cop) => [
q(0091),
q(0),
],
- q(cos) => [
+ q(cor) => [
q(0092),
q(0),
],
- q(cpe) => [
+ q(cos) => [
q(0093),
q(0),
],
- q(cpf) => [
+ q(cpe) => [
q(0094),
q(0),
],
- q(cpp) => [
+ q(cpf) => [
q(0095),
q(0),
],
- q(cre) => [
+ q(cpp) => [
q(0096),
q(0),
],
- q(crh) => [
+ q(cre) => [
q(0097),
q(0),
],
- q(crp) => [
+ q(crh) => [
q(0098),
q(0),
],
- q(csb) => [
+ q(crp) => [
q(0099),
q(0),
],
- q(cus) => [
+ q(csb) => [
q(0100),
q(0),
],
+ q(cus) => [
+ q(0101),
+ q(0),
+ ],
q(cym) => [
- q(0466),
+ q(0467),
q(0),
],
q(dak) => [
- q(0102),
+ q(0103),
q(0),
],
q(dan) => [
- q(0103),
+ q(0104),
q(0),
],
q(dar) => [
- q(0104),
+ q(0105),
q(0),
],
q(day) => [
- q(0105),
+ q(0106),
q(0),
],
q(del) => [
- q(0106),
+ q(0107),
q(0),
],
q(den) => [
- q(0107),
+ q(0108),
q(0),
],
q(deu) => [
- q(0150),
+ q(0151),
q(0),
],
q(dgr) => [
- q(0108),
+ q(0109),
q(0),
],
q(din) => [
- q(0109),
+ q(0110),
q(0),
],
q(div) => [
- q(0110),
+ q(0111),
q(0),
],
q(doi) => [
- q(0111),
+ q(0112),
q(0),
],
q(dra) => [
- q(0112),
+ q(0113),
q(0),
],
q(dsb) => [
- q(0113),
+ q(0114),
q(0),
],
q(dua) => [
- q(0114),
+ q(0115),
q(0),
],
q(dum) => [
- q(0115),
+ q(0116),
q(0),
],
q(dyu) => [
- q(0117),
+ q(0118),
q(0),
],
q(dzo) => [
- q(0118),
+ q(0119),
q(0),
],
q(efi) => [
- q(0119),
+ q(0120),
q(0),
],
q(egy) => [
- q(0120),
+ q(0121),
q(0),
],
q(eka) => [
- q(0121),
+ q(0122),
q(0),
],
q(ell) => [
- q(0164),
+ q(0165),
q(0),
],
q(elx) => [
- q(0122),
+ q(0123),
q(0),
],
q(eng) => [
- q(0123),
+ q(0124),
q(0),
],
q(enm) => [
- q(0124),
+ q(0125),
q(0),
],
q(epo) => [
- q(0125),
+ q(0126),
q(0),
],
q(est) => [
- q(0126),
+ q(0127),
q(0),
],
q(eus) => [
@@ -90718,227 +90671,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ewe) => [
- q(0127),
+ q(0128),
q(0),
],
q(ewo) => [
- q(0128),
+ q(0129),
q(0),
],
q(fan) => [
- q(0129),
+ q(0130),
q(0),
],
q(fao) => [
- q(0130),
+ q(0131),
q(0),
],
q(fas) => [
- q(0342),
+ q(0343),
q(0),
],
q(fat) => [
- q(0131),
+ q(0132),
q(0),
],
q(fij) => [
- q(0132),
+ q(0133),
q(0),
],
q(fil) => [
- q(0133),
+ q(0134),
q(0),
],
q(fin) => [
- q(0134),
+ q(0135),
q(0),
],
q(fiu) => [
- q(0135),
+ q(0136),
q(0),
],
q(fon) => [
- q(0136),
+ q(0137),
q(0),
],
q(fra) => [
- q(0137),
+ q(0138),
q(0),
],
q(frm) => [
- q(0138),
+ q(0139),
q(0),
],
q(fro) => [
- q(0139),
+ q(0140),
q(0),
],
q(frr) => [
- q(0140),
+ q(0141),
q(0),
],
q(frs) => [
- q(0141),
+ q(0142),
q(0),
],
q(fry) => [
- q(0142),
+ q(0143),
q(0),
],
q(ful) => [
- q(0143),
+ q(0144),
q(0),
],
q(fur) => [
- q(0144),
+ q(0145),
q(0),
],
q(gaa) => [
- q(0145),
+ q(0146),
q(0),
],
q(gay) => [
- q(0146),
+ q(0147),
q(0),
],
q(gba) => [
- q(0147),
+ q(0148),
q(0),
],
q(gem) => [
- q(0148),
+ q(0149),
q(0),
],
q(gez) => [
- q(0151),
+ q(0152),
q(0),
],
q(gil) => [
- q(0152),
+ q(0153),
q(0),
],
q(gla) => [
- q(0153),
+ q(0154),
q(0),
],
q(gle) => [
- q(0154),
+ q(0155),
q(0),
],
q(glg) => [
- q(0155),
+ q(0156),
q(0),
],
q(glv) => [
- q(0156),
+ q(0157),
q(0),
],
q(gmh) => [
- q(0157),
+ q(0158),
q(0),
],
q(goh) => [
- q(0158),
+ q(0159),
q(0),
],
q(gon) => [
- q(0159),
+ q(0160),
q(0),
],
q(gor) => [
- q(0160),
+ q(0161),
q(0),
],
q(got) => [
- q(0161),
+ q(0162),
q(0),
],
q(grb) => [
- q(0162),
+ q(0163),
q(0),
],
q(grc) => [
- q(0163),
+ q(0164),
q(0),
],
q(grn) => [
- q(0165),
+ q(0166),
q(0),
],
q(gsw) => [
- q(0166),
+ q(0167),
q(0),
],
q(guj) => [
- q(0167),
+ q(0168),
q(0),
],
q(gwi) => [
- q(0168),
+ q(0169),
q(0),
],
q(hai) => [
- q(0169),
+ q(0170),
q(0),
],
q(hat) => [
- q(0170),
+ q(0171),
q(0),
],
q(hau) => [
- q(0171),
+ q(0172),
q(0),
],
q(haw) => [
- q(0172),
+ q(0173),
q(0),
],
q(heb) => [
- q(0173),
+ q(0174),
q(0),
],
q(her) => [
- q(0174),
+ q(0175),
q(0),
],
q(hil) => [
- q(0175),
+ q(0176),
q(0),
],
q(him) => [
- q(0176),
+ q(0177),
q(0),
],
q(hin) => [
- q(0177),
+ q(0178),
q(0),
],
q(hit) => [
- q(0178),
+ q(0179),
q(0),
],
q(hmn) => [
- q(0179),
+ q(0180),
q(0),
],
q(hmo) => [
- q(0180),
+ q(0181),
q(0),
],
q(hrv) => [
- q(0181),
+ q(0182),
q(0),
],
q(hsb) => [
- q(0182),
+ q(0183),
q(0),
],
q(hun) => [
- q(0183),
+ q(0184),
q(0),
],
q(hup) => [
- q(0184),
+ q(0185),
q(0),
],
q(hye) => [
@@ -90946,451 +90899,451 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(iba) => [
- q(0185),
+ q(0186),
q(0),
],
q(ibo) => [
- q(0186),
+ q(0187),
q(0),
],
q(ido) => [
- q(0188),
+ q(0189),
q(0),
],
q(iii) => [
- q(0189),
+ q(0190),
q(0),
],
q(ijo) => [
- q(0190),
+ q(0191),
q(0),
],
q(iku) => [
- q(0191),
+ q(0192),
q(0),
],
q(ile) => [
- q(0192),
+ q(0193),
q(0),
],
q(ilo) => [
- q(0193),
+ q(0194),
q(0),
],
q(ina) => [
- q(0194),
+ q(0195),
q(0),
],
q(inc) => [
- q(0195),
+ q(0196),
q(0),
],
q(ind) => [
- q(0196),
+ q(0197),
q(0),
],
q(ine) => [
- q(0197),
+ q(0198),
q(0),
],
q(inh) => [
- q(0198),
+ q(0199),
q(0),
],
q(ipk) => [
- q(0199),
+ q(0200),
q(0),
],
q(ira) => [
- q(0200),
+ q(0201),
q(0),
],
q(iro) => [
- q(0201),
+ q(0202),
q(0),
],
q(isl) => [
- q(0187),
+ q(0188),
q(0),
],
q(ita) => [
- q(0202),
+ q(0203),
q(0),
],
q(jav) => [
- q(0203),
+ q(0204),
q(0),
],
q(jbo) => [
- q(0204),
+ q(0205),
q(0),
],
q(jpn) => [
- q(0205),
+ q(0206),
q(0),
],
q(jpr) => [
- q(0206),
+ q(0207),
q(0),
],
q(jrb) => [
- q(0207),
+ q(0208),
q(0),
],
q(kaa) => [
- q(0208),
+ q(0209),
q(0),
],
q(kab) => [
- q(0209),
+ q(0210),
q(0),
],
q(kac) => [
- q(0210),
+ q(0211),
q(0),
],
q(kal) => [
- q(0211),
+ q(0212),
q(0),
],
q(kam) => [
- q(0212),
+ q(0213),
q(0),
],
q(kan) => [
- q(0213),
+ q(0214),
q(0),
],
q(kar) => [
- q(0214),
+ q(0215),
q(0),
],
q(kas) => [
- q(0215),
+ q(0216),
q(0),
],
q(kat) => [
- q(0149),
+ q(0150),
q(0),
],
q(kau) => [
- q(0216),
+ q(0217),
q(0),
],
q(kaw) => [
- q(0217),
+ q(0218),
q(0),
],
q(kaz) => [
- q(0218),
+ q(0219),
q(0),
],
q(kbd) => [
- q(0219),
+ q(0220),
q(0),
],
q(kha) => [
- q(0220),
+ q(0221),
q(0),
],
q(khi) => [
- q(0221),
+ q(0222),
q(0),
],
q(khm) => [
- q(0222),
+ q(0223),
q(0),
],
q(kho) => [
- q(0223),
+ q(0224),
q(0),
],
q(kik) => [
- q(0224),
+ q(0225),
q(0),
],
q(kin) => [
- q(0225),
+ q(0226),
q(0),
],
q(kir) => [
- q(0226),
+ q(0227),
q(0),
],
q(kmb) => [
- q(0227),
+ q(0228),
q(0),
],
q(kok) => [
- q(0228),
+ q(0229),
q(0),
],
q(kom) => [
- q(0229),
+ q(0230),
q(0),
],
q(kon) => [
- q(0230),
+ q(0231),
q(0),
],
q(kor) => [
- q(0231),
+ q(0232),
q(0),
],
q(kos) => [
- q(0232),
+ q(0233),
q(0),
],
q(kpe) => [
- q(0233),
+ q(0234),
q(0),
],
q(krc) => [
- q(0234),
+ q(0235),
q(0),
],
q(krl) => [
- q(0235),
+ q(0236),
q(0),
],
q(kro) => [
- q(0236),
+ q(0237),
q(0),
],
q(kru) => [
- q(0237),
+ q(0238),
q(0),
],
q(kua) => [
- q(0238),
+ q(0239),
q(0),
],
q(kum) => [
- q(0239),
+ q(0240),
q(0),
],
q(kur) => [
- q(0240),
+ q(0241),
q(0),
],
q(kut) => [
- q(0241),
+ q(0242),
q(0),
],
q(lad) => [
- q(0242),
+ q(0243),
q(0),
],
q(lah) => [
- q(0243),
+ q(0244),
q(0),
],
q(lam) => [
- q(0244),
+ q(0245),
q(0),
],
q(lao) => [
- q(0245),
+ q(0246),
q(0),
],
q(lat) => [
- q(0246),
+ q(0247),
q(0),
],
q(lav) => [
- q(0247),
+ q(0248),
q(0),
],
q(lez) => [
- q(0248),
+ q(0249),
q(0),
],
q(lim) => [
- q(0249),
+ q(0250),
q(0),
],
q(lin) => [
- q(0250),
+ q(0251),
q(0),
],
q(lit) => [
- q(0251),
+ q(0252),
q(0),
],
q(lol) => [
- q(0252),
+ q(0253),
q(0),
],
q(loz) => [
- q(0253),
+ q(0254),
q(0),
],
q(ltz) => [
- q(0254),
+ q(0255),
q(0),
],
q(lua) => [
- q(0255),
+ q(0256),
q(0),
],
q(lub) => [
- q(0256),
+ q(0257),
q(0),
],
q(lug) => [
- q(0257),
+ q(0258),
q(0),
],
q(lui) => [
- q(0258),
+ q(0259),
q(0),
],
q(lun) => [
- q(0259),
+ q(0260),
q(0),
],
q(luo) => [
- q(0260),
+ q(0261),
q(0),
],
q(lus) => [
- q(0261),
+ q(0262),
q(0),
],
q(mad) => [
- q(0263),
+ q(0264),
q(0),
],
q(mag) => [
- q(0264),
+ q(0265),
q(0),
],
q(mah) => [
- q(0265),
+ q(0266),
q(0),
],
q(mai) => [
- q(0266),
+ q(0267),
q(0),
],
q(mak) => [
- q(0267),
+ q(0268),
q(0),
],
q(mal) => [
- q(0268),
+ q(0269),
q(0),
],
q(man) => [
- q(0269),
+ q(0270),
q(0),
],
q(map) => [
- q(0271),
+ q(0272),
q(0),
],
q(mar) => [
- q(0272),
+ q(0273),
q(0),
],
q(mas) => [
- q(0273),
+ q(0274),
q(0),
],
q(mdf) => [
- q(0275),
+ q(0276),
q(0),
],
q(mdr) => [
- q(0276),
+ q(0277),
q(0),
],
q(men) => [
- q(0277),
+ q(0278),
q(0),
],
q(mga) => [
- q(0278),
+ q(0279),
q(0),
],
q(mic) => [
- q(0279),
+ q(0280),
q(0),
],
q(min) => [
- q(0280),
+ q(0281),
q(0),
],
q(mis) => [
- q(0281),
+ q(0282),
q(0),
],
q(mkd) => [
- q(0262),
+ q(0263),
q(0),
],
q(mkh) => [
- q(0282),
+ q(0283),
q(0),
],
q(mlg) => [
- q(0283),
+ q(0284),
q(0),
],
q(mlt) => [
- q(0284),
+ q(0285),
q(0),
],
q(mnc) => [
- q(0285),
+ q(0286),
q(0),
],
q(mni) => [
- q(0286),
+ q(0287),
q(0),
],
q(mno) => [
- q(0287),
+ q(0288),
q(0),
],
q(moh) => [
- q(0288),
+ q(0289),
q(0),
],
q(mon) => [
- q(0289),
+ q(0290),
q(0),
],
q(mos) => [
- q(0290),
+ q(0291),
q(0),
],
q(mri) => [
- q(0270),
+ q(0271),
q(0),
],
q(msa) => [
- q(0274),
+ q(0275),
q(0),
],
q(mul) => [
- q(0291),
+ q(0292),
q(0),
],
q(mun) => [
- q(0292),
+ q(0293),
q(0),
],
q(mus) => [
- q(0293),
+ q(0294),
q(0),
],
q(mwl) => [
- q(0294),
+ q(0295),
q(0),
],
q(mwr) => [
- q(0295),
+ q(0296),
q(0),
],
q(mya) => [
@@ -91398,427 +91351,427 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(myn) => [
- q(0296),
+ q(0297),
q(0),
],
q(myv) => [
- q(0297),
+ q(0298),
q(0),
],
q(nah) => [
- q(0298),
+ q(0299),
q(0),
],
q(nai) => [
- q(0299),
+ q(0300),
q(0),
],
q(nap) => [
- q(0300),
+ q(0301),
q(0),
],
q(nau) => [
- q(0301),
+ q(0302),
q(0),
],
q(nav) => [
- q(0302),
+ q(0303),
q(0),
],
q(nbl) => [
- q(0303),
+ q(0304),
q(0),
],
q(nde) => [
- q(0304),
+ q(0305),
q(0),
],
q(ndo) => [
- q(0305),
+ q(0306),
q(0),
],
q(nds) => [
- q(0306),
+ q(0307),
q(0),
],
q(nep) => [
- q(0307),
+ q(0308),
q(0),
],
q(new) => [
- q(0308),
+ q(0309),
q(0),
],
q(nia) => [
- q(0309),
+ q(0310),
q(0),
],
q(nic) => [
- q(0310),
+ q(0311),
q(0),
],
q(niu) => [
- q(0311),
+ q(0312),
q(0),
],
q(nld) => [
- q(0116),
+ q(0117),
q(0),
],
q(nno) => [
- q(0312),
+ q(0313),
q(0),
],
q(nob) => [
- q(0313),
+ q(0314),
q(0),
],
q(nog) => [
- q(0314),
+ q(0315),
q(0),
],
q(non) => [
- q(0315),
+ q(0316),
q(0),
],
q(nor) => [
- q(0316),
+ q(0317),
q(0),
],
q(nqo) => [
- q(0317),
+ q(0318),
q(0),
],
q(nso) => [
- q(0318),
+ q(0319),
q(0),
],
q(nub) => [
- q(0319),
+ q(0320),
q(0),
],
q(nwc) => [
- q(0320),
+ q(0321),
q(0),
],
q(nya) => [
- q(0321),
+ q(0322),
q(0),
],
q(nym) => [
- q(0322),
+ q(0323),
q(0),
],
q(nyn) => [
- q(0323),
+ q(0324),
q(0),
],
q(nyo) => [
- q(0324),
+ q(0325),
q(0),
],
q(nzi) => [
- q(0325),
+ q(0326),
q(0),
],
q(oci) => [
- q(0326),
+ q(0327),
q(0),
],
q(oji) => [
- q(0327),
+ q(0328),
q(0),
],
q(ori) => [
- q(0328),
+ q(0329),
q(0),
],
q(orm) => [
- q(0329),
+ q(0330),
q(0),
],
q(osa) => [
- q(0330),
+ q(0331),
q(0),
],
q(oss) => [
- q(0331),
+ q(0332),
q(0),
],
q(ota) => [
- q(0332),
+ q(0333),
q(0),
],
q(oto) => [
- q(0333),
+ q(0334),
q(0),
],
q(paa) => [
- q(0334),
+ q(0335),
q(0),
],
q(pag) => [
- q(0335),
+ q(0336),
q(0),
],
q(pal) => [
- q(0336),
+ q(0337),
q(0),
],
q(pam) => [
- q(0337),
+ q(0338),
q(0),
],
q(pan) => [
- q(0338),
+ q(0339),
q(0),
],
q(pap) => [
- q(0339),
+ q(0340),
q(0),
],
q(pau) => [
- q(0340),
+ q(0341),
q(0),
],
q(peo) => [
- q(0341),
+ q(0342),
q(0),
],
q(phi) => [
- q(0343),
+ q(0344),
q(0),
],
q(phn) => [
- q(0344),
+ q(0345),
q(0),
],
q(pli) => [
- q(0345),
+ q(0346),
q(0),
],
q(pol) => [
- q(0346),
+ q(0347),
q(0),
],
q(pon) => [
- q(0347),
+ q(0348),
q(0),
],
q(por) => [
- q(0348),
+ q(0349),
q(0),
],
q(pra) => [
- q(0349),
+ q(0350),
q(0),
],
q(pro) => [
- q(0350),
+ q(0351),
q(0),
],
q(pus) => [
- q(0351),
+ q(0352),
q(0),
],
q(qtz) => [
- q(0352),
+ q(0353),
q(0),
],
q(que) => [
- q(0353),
+ q(0354),
q(0),
],
q(raj) => [
- q(0354),
+ q(0355),
q(0),
],
q(rap) => [
- q(0355),
+ q(0356),
q(0),
],
q(rar) => [
- q(0356),
+ q(0357),
q(0),
],
q(roa) => [
- q(0357),
+ q(0358),
q(0),
],
q(roh) => [
- q(0358),
+ q(0359),
q(0),
],
q(rom) => [
- q(0359),
+ q(0360),
q(0),
],
q(ron) => [
- q(0360),
+ q(0361),
q(0),
],
q(run) => [
- q(0361),
+ q(0362),
q(0),
],
q(rup) => [
- q(0362),
+ q(0363),
q(0),
],
q(rus) => [
- q(0363),
+ q(0364),
q(0),
],
q(sad) => [
- q(0364),
+ q(0365),
q(0),
],
q(sag) => [
- q(0365),
+ q(0366),
q(0),
],
q(sah) => [
- q(0366),
+ q(0367),
q(0),
],
q(sai) => [
- q(0367),
+ q(0368),
q(0),
],
q(sal) => [
- q(0368),
+ q(0369),
q(0),
],
q(sam) => [
- q(0369),
+ q(0370),
q(0),
],
q(san) => [
- q(0370),
+ q(0371),
q(0),
],
q(sas) => [
- q(0371),
+ q(0372),
q(0),
],
q(sat) => [
- q(0372),
+ q(0373),
q(0),
],
q(scn) => [
- q(0373),
+ q(0374),
q(0),
],
q(sco) => [
- q(0374),
+ q(0375),
q(0),
],
q(sel) => [
- q(0375),
+ q(0376),
q(0),
],
q(sem) => [
- q(0376),
+ q(0377),
q(0),
],
q(sga) => [
- q(0377),
+ q(0378),
q(0),
],
q(sgn) => [
- q(0378),
+ q(0379),
q(0),
],
q(shn) => [
- q(0379),
+ q(0380),
q(0),
],
q(sid) => [
- q(0380),
+ q(0381),
q(0),
],
q(sin) => [
- q(0381),
+ q(0382),
q(0),
],
q(sio) => [
- q(0382),
+ q(0383),
q(0),
],
q(sit) => [
- q(0383),
+ q(0384),
q(0),
],
q(sla) => [
- q(0384),
+ q(0385),
q(0),
],
q(slk) => [
- q(0385),
+ q(0386),
q(0),
],
q(slv) => [
- q(0386),
+ q(0387),
q(0),
],
q(sma) => [
- q(0387),
+ q(0388),
q(0),
],
q(sme) => [
- q(0388),
+ q(0389),
q(0),
],
q(smi) => [
- q(0389),
+ q(0390),
q(0),
],
q(smj) => [
- q(0390),
+ q(0391),
q(0),
],
q(smn) => [
- q(0391),
+ q(0392),
q(0),
],
q(smo) => [
- q(0392),
+ q(0393),
q(0),
],
q(sms) => [
- q(0393),
+ q(0394),
q(0),
],
q(sna) => [
- q(0394),
+ q(0395),
q(0),
],
q(snd) => [
- q(0395),
+ q(0396),
q(0),
],
q(snk) => [
- q(0396),
+ q(0397),
q(0),
],
q(sog) => [
- q(0397),
+ q(0398),
q(0),
],
q(som) => [
- q(0398),
+ q(0399),
q(0),
],
q(son) => [
- q(0399),
+ q(0400),
q(0),
],
q(sot) => [
- q(0400),
+ q(0401),
q(0),
],
q(spa) => [
- q(0401),
+ q(0402),
q(0),
],
q(sqi) => [
@@ -91826,315 +91779,315 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(srd) => [
- q(0402),
+ q(0403),
q(0),
],
q(srn) => [
- q(0403),
+ q(0404),
q(0),
],
q(srp) => [
- q(0404),
+ q(0405),
q(0),
],
q(srr) => [
- q(0405),
+ q(0406),
q(0),
],
q(ssa) => [
- q(0406),
+ q(0407),
q(0),
],
q(ssw) => [
- q(0407),
+ q(0408),
q(0),
],
q(suk) => [
- q(0408),
+ q(0409),
q(0),
],
q(sun) => [
- q(0409),
+ q(0410),
q(0),
],
q(sus) => [
- q(0410),
+ q(0411),
q(0),
],
q(sux) => [
- q(0411),
+ q(0412),
q(0),
],
q(swa) => [
- q(0412),
+ q(0413),
q(0),
],
q(swe) => [
- q(0413),
+ q(0414),
q(0),
],
q(syc) => [
- q(0414),
+ q(0415),
q(0),
],
q(syr) => [
- q(0415),
+ q(0416),
q(0),
],
q(tah) => [
- q(0416),
+ q(0417),
q(0),
],
q(tai) => [
- q(0417),
+ q(0418),
q(0),
],
q(tam) => [
- q(0418),
+ q(0419),
q(0),
],
q(tat) => [
- q(0419),
+ q(0420),
q(0),
],
q(tel) => [
- q(0420),
+ q(0421),
q(0),
],
q(tem) => [
- q(0421),
+ q(0422),
q(0),
],
q(ter) => [
- q(0422),
+ q(0423),
q(0),
],
q(tet) => [
- q(0423),
+ q(0424),
q(0),
],
q(tgk) => [
- q(0424),
+ q(0425),
q(0),
],
q(tgl) => [
- q(0425),
+ q(0426),
q(0),
],
q(tha) => [
- q(0426),
+ q(0427),
q(0),
],
q(tig) => [
- q(0428),
+ q(0429),
q(0),
],
q(tir) => [
- q(0429),
+ q(0430),
q(0),
],
q(tiv) => [
- q(0430),
+ q(0431),
q(0),
],
q(tkl) => [
- q(0431),
+ q(0432),
q(0),
],
q(tlh) => [
- q(0432),
+ q(0433),
q(0),
],
q(tli) => [
- q(0433),
+ q(0434),
q(0),
],
q(tmh) => [
- q(0434),
+ q(0435),
q(0),
],
q(tog) => [
- q(0435),
+ q(0436),
q(0),
],
q(ton) => [
- q(0436),
+ q(0437),
q(0),
],
q(tpi) => [
- q(0437),
+ q(0438),
q(0),
],
q(tsi) => [
- q(0438),
+ q(0439),
q(0),
],
q(tsn) => [
- q(0439),
+ q(0440),
q(0),
],
q(tso) => [
- q(0440),
+ q(0441),
q(0),
],
q(tuk) => [
- q(0441),
+ q(0442),
q(0),
],
q(tum) => [
- q(0442),
+ q(0443),
q(0),
],
q(tup) => [
- q(0443),
+ q(0444),
q(0),
],
q(tur) => [
- q(0444),
+ q(0445),
q(0),
],
q(tut) => [
- q(0445),
+ q(0446),
q(0),
],
q(tvl) => [
- q(0446),
+ q(0447),
q(0),
],
q(twi) => [
- q(0447),
+ q(0448),
q(0),
],
q(tyv) => [
- q(0448),
+ q(0449),
q(0),
],
q(udm) => [
- q(0449),
+ q(0450),
q(0),
],
q(uga) => [
- q(0450),
+ q(0451),
q(0),
],
q(uig) => [
- q(0451),
+ q(0452),
q(0),
],
q(ukr) => [
- q(0452),
+ q(0453),
q(0),
],
q(umb) => [
- q(0453),
+ q(0454),
q(0),
],
q(und) => [
- q(0454),
+ q(0455),
q(0),
],
q(urd) => [
- q(0455),
+ q(0456),
q(0),
],
q(uzb) => [
- q(0456),
+ q(0457),
q(0),
],
q(vai) => [
- q(0457),
+ q(0458),
q(0),
],
q(ven) => [
- q(0458),
+ q(0459),
q(0),
],
q(vie) => [
- q(0459),
+ q(0460),
q(0),
],
q(vol) => [
- q(0460),
+ q(0461),
q(0),
],
q(vot) => [
- q(0461),
+ q(0462),
q(0),
],
q(wak) => [
- q(0462),
+ q(0463),
q(0),
],
q(wal) => [
- q(0463),
+ q(0464),
q(0),
],
q(war) => [
- q(0464),
+ q(0465),
q(0),
],
q(was) => [
- q(0465),
+ q(0466),
q(0),
],
q(wen) => [
- q(0467),
+ q(0468),
q(0),
],
q(wln) => [
- q(0468),
+ q(0469),
q(0),
],
q(wol) => [
- q(0469),
+ q(0470),
q(0),
],
q(xal) => [
- q(0470),
+ q(0471),
q(0),
],
q(xho) => [
- q(0471),
+ q(0472),
q(0),
],
q(yao) => [
- q(0472),
+ q(0473),
q(0),
],
q(yap) => [
- q(0473),
+ q(0474),
q(0),
],
q(yid) => [
- q(0474),
+ q(0475),
q(0),
],
q(yor) => [
- q(0475),
+ q(0476),
q(0),
],
q(ypk) => [
- q(0476),
+ q(0477),
q(0),
],
q(zap) => [
- q(0477),
+ q(0478),
q(0),
],
q(zbl) => [
- q(0478),
+ q(0479),
q(0),
],
q(zen) => [
- q(0479),
+ q(0480),
q(0),
],
q(zgh) => [
- q(0480),
+ q(0481),
q(0),
],
q(zha) => [
- q(0481),
+ q(0482),
q(0),
],
q(zho) => [
@@ -92142,23 +92095,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(znd) => [
- q(0482),
+ q(0483),
q(0),
],
q(zul) => [
- q(0483),
+ q(0484),
q(0),
],
q(zun) => [
- q(0484),
+ q(0485),
q(0),
],
q(zxx) => [
- q(0485),
+ q(0486),
q(0),
],
q(zza) => [
- q(0486),
+ q(0487),
q(0),
],
},
@@ -92197,160 +92150,160 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
q(0079) => q(zh),
q(0086) => q(cu),
q(0087) => q(cv),
- q(0091) => q(kw),
- q(0092) => q(co),
- q(0096) => q(cr),
- q(0101) => q(cs),
- q(0103) => q(da),
- q(0110) => q(dv),
- q(0116) => q(nl),
- q(0118) => q(dz),
- q(0123) => q(en),
- q(0125) => q(eo),
- q(0126) => q(et),
- q(0127) => q(ee),
- q(0130) => q(fo),
- q(0132) => q(fj),
- q(0134) => q(fi),
- q(0137) => q(fr),
- q(0142) => q(fy),
- q(0143) => q(ff),
- q(0149) => q(ka),
- q(0150) => q(de),
- q(0153) => q(gd),
- q(0154) => q(ga),
- q(0155) => q(gl),
- q(0156) => q(gv),
- q(0164) => q(el),
- q(0165) => q(gn),
- q(0167) => q(gu),
- q(0170) => q(ht),
- q(0171) => q(ha),
- q(0173) => q(he),
- q(0174) => q(hz),
- q(0177) => q(hi),
- q(0180) => q(ho),
- q(0181) => q(hr),
- q(0183) => q(hu),
- q(0186) => q(ig),
- q(0187) => q(is),
- q(0188) => q(io),
- q(0189) => q(ii),
- q(0191) => q(iu),
- q(0192) => q(ie),
- q(0194) => q(ia),
- q(0196) => q(id),
- q(0199) => q(ik),
- q(0202) => q(it),
- q(0203) => q(jv),
- q(0205) => q(ja),
- q(0211) => q(kl),
- q(0213) => q(kn),
- q(0215) => q(ks),
- q(0216) => q(kr),
- q(0218) => q(kk),
- q(0222) => q(km),
- q(0224) => q(ki),
- q(0225) => q(rw),
- q(0226) => q(ky),
- q(0229) => q(kv),
- q(0230) => q(kg),
- q(0231) => q(ko),
- q(0238) => q(kj),
- q(0240) => q(ku),
- q(0245) => q(lo),
- q(0246) => q(la),
- q(0247) => q(lv),
- q(0249) => q(li),
- q(0250) => q(ln),
- q(0251) => q(lt),
- q(0254) => q(lb),
- q(0256) => q(lu),
- q(0257) => q(lg),
- q(0262) => q(mk),
- q(0265) => q(mh),
- q(0268) => q(ml),
- q(0270) => q(mi),
- q(0272) => q(mr),
- q(0274) => q(ms),
- q(0283) => q(mg),
- q(0284) => q(mt),
- q(0289) => q(mn),
- q(0301) => q(na),
- q(0302) => q(nv),
- q(0303) => q(nr),
- q(0304) => q(nd),
- q(0305) => q(ng),
- q(0307) => q(ne),
- q(0312) => q(nn),
- q(0313) => q(nb),
- q(0316) => q(no),
- q(0321) => q(ny),
- q(0326) => q(oc),
- q(0327) => q(oj),
- q(0328) => q(or),
- q(0329) => q(om),
- q(0331) => q(os),
- q(0338) => q(pa),
- q(0342) => q(fa),
- q(0345) => q(pi),
- q(0346) => q(pl),
- q(0348) => q(pt),
- q(0351) => q(ps),
- q(0353) => q(qu),
- q(0358) => q(rm),
- q(0360) => q(ro),
- q(0361) => q(rn),
- q(0363) => q(ru),
- q(0365) => q(sg),
- q(0370) => q(sa),
- q(0381) => q(si),
- q(0385) => q(sk),
- q(0386) => q(sl),
- q(0388) => q(se),
- q(0392) => q(sm),
- q(0394) => q(sn),
- q(0395) => q(sd),
- q(0398) => q(so),
- q(0400) => q(st),
- q(0401) => q(es),
- q(0402) => q(sc),
- q(0404) => q(sr),
- q(0407) => q(ss),
- q(0409) => q(su),
- q(0412) => q(sw),
- q(0413) => q(sv),
- q(0416) => q(ty),
- q(0418) => q(ta),
- q(0419) => q(tt),
- q(0420) => q(te),
- q(0424) => q(tg),
- q(0425) => q(tl),
- q(0426) => q(th),
- q(0427) => q(bo),
- q(0429) => q(ti),
- q(0436) => q(to),
- q(0439) => q(tn),
- q(0440) => q(ts),
- q(0441) => q(tk),
- q(0444) => q(tr),
- q(0447) => q(tw),
- q(0451) => q(ug),
- q(0452) => q(uk),
- q(0455) => q(ur),
- q(0456) => q(uz),
- q(0458) => q(ve),
- q(0459) => q(vi),
- q(0460) => q(vo),
- q(0466) => q(cy),
- q(0468) => q(wa),
- q(0469) => q(wo),
- q(0471) => q(xh),
- q(0474) => q(yi),
- q(0475) => q(yo),
- q(0481) => q(za),
- q(0483) => q(zu),
- q(0537) => q(sh),
+ q(0092) => q(kw),
+ q(0093) => q(co),
+ q(0097) => q(cr),
+ q(0102) => q(cs),
+ q(0104) => q(da),
+ q(0111) => q(dv),
+ q(0117) => q(nl),
+ q(0119) => q(dz),
+ q(0124) => q(en),
+ q(0126) => q(eo),
+ q(0127) => q(et),
+ q(0128) => q(ee),
+ q(0131) => q(fo),
+ q(0133) => q(fj),
+ q(0135) => q(fi),
+ q(0138) => q(fr),
+ q(0143) => q(fy),
+ q(0144) => q(ff),
+ q(0150) => q(ka),
+ q(0151) => q(de),
+ q(0154) => q(gd),
+ q(0155) => q(ga),
+ q(0156) => q(gl),
+ q(0157) => q(gv),
+ q(0165) => q(el),
+ q(0166) => q(gn),
+ q(0168) => q(gu),
+ q(0171) => q(ht),
+ q(0172) => q(ha),
+ q(0174) => q(he),
+ q(0175) => q(hz),
+ q(0178) => q(hi),
+ q(0181) => q(ho),
+ q(0182) => q(hr),
+ q(0184) => q(hu),
+ q(0187) => q(ig),
+ q(0188) => q(is),
+ q(0189) => q(io),
+ q(0190) => q(ii),
+ q(0192) => q(iu),
+ q(0193) => q(ie),
+ q(0195) => q(ia),
+ q(0197) => q(id),
+ q(0200) => q(ik),
+ q(0203) => q(it),
+ q(0204) => q(jv),
+ q(0206) => q(ja),
+ q(0212) => q(kl),
+ q(0214) => q(kn),
+ q(0216) => q(ks),
+ q(0217) => q(kr),
+ q(0219) => q(kk),
+ q(0223) => q(km),
+ q(0225) => q(ki),
+ q(0226) => q(rw),
+ q(0227) => q(ky),
+ q(0230) => q(kv),
+ q(0231) => q(kg),
+ q(0232) => q(ko),
+ q(0239) => q(kj),
+ q(0241) => q(ku),
+ q(0246) => q(lo),
+ q(0247) => q(la),
+ q(0248) => q(lv),
+ q(0250) => q(li),
+ q(0251) => q(ln),
+ q(0252) => q(lt),
+ q(0255) => q(lb),
+ q(0257) => q(lu),
+ q(0258) => q(lg),
+ q(0263) => q(mk),
+ q(0266) => q(mh),
+ q(0269) => q(ml),
+ q(0271) => q(mi),
+ q(0273) => q(mr),
+ q(0275) => q(ms),
+ q(0284) => q(mg),
+ q(0285) => q(mt),
+ q(0290) => q(mn),
+ q(0302) => q(na),
+ q(0303) => q(nv),
+ q(0304) => q(nr),
+ q(0305) => q(nd),
+ q(0306) => q(ng),
+ q(0308) => q(ne),
+ q(0313) => q(nn),
+ q(0314) => q(nb),
+ q(0317) => q(no),
+ q(0322) => q(ny),
+ q(0327) => q(oc),
+ q(0328) => q(oj),
+ q(0329) => q(or),
+ q(0330) => q(om),
+ q(0332) => q(os),
+ q(0339) => q(pa),
+ q(0343) => q(fa),
+ q(0346) => q(pi),
+ q(0347) => q(pl),
+ q(0349) => q(pt),
+ q(0352) => q(ps),
+ q(0354) => q(qu),
+ q(0359) => q(rm),
+ q(0361) => q(ro),
+ q(0362) => q(rn),
+ q(0364) => q(ru),
+ q(0366) => q(sg),
+ q(0371) => q(sa),
+ q(0382) => q(si),
+ q(0386) => q(sk),
+ q(0387) => q(sl),
+ q(0389) => q(se),
+ q(0393) => q(sm),
+ q(0395) => q(sn),
+ q(0396) => q(sd),
+ q(0399) => q(so),
+ q(0401) => q(st),
+ q(0402) => q(es),
+ q(0403) => q(sc),
+ q(0405) => q(sr),
+ q(0408) => q(ss),
+ q(0410) => q(su),
+ q(0413) => q(sw),
+ q(0414) => q(sv),
+ q(0417) => q(ty),
+ q(0419) => q(ta),
+ q(0420) => q(tt),
+ q(0421) => q(te),
+ q(0425) => q(tg),
+ q(0426) => q(tl),
+ q(0427) => q(th),
+ q(0428) => q(bo),
+ q(0430) => q(ti),
+ q(0437) => q(to),
+ q(0440) => q(tn),
+ q(0441) => q(ts),
+ q(0442) => q(tk),
+ q(0445) => q(tr),
+ q(0448) => q(tw),
+ q(0452) => q(ug),
+ q(0453) => q(uk),
+ q(0456) => q(ur),
+ q(0457) => q(uz),
+ q(0459) => q(ve),
+ q(0460) => q(vi),
+ q(0461) => q(vo),
+ q(0467) => q(cy),
+ q(0469) => q(wa),
+ q(0470) => q(wo),
+ q(0472) => q(xh),
+ q(0475) => q(yi),
+ q(0476) => q(yo),
+ q(0482) => q(za),
+ q(0484) => q(zu),
+ q(0538) => q(sh),
},
q(alpha-3) => {
q(0001) => q(aar),
@@ -92442,1088 +92395,1088 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
q(0087) => q(chv),
q(0088) => q(chy),
q(0089) => q(cmc),
- q(0090) => q(cop),
- q(0091) => q(cor),
- q(0092) => q(cos),
- q(0093) => q(cpe),
- q(0094) => q(cpf),
- q(0095) => q(cpp),
- q(0096) => q(cre),
- q(0097) => q(crh),
- q(0098) => q(crp),
- q(0099) => q(csb),
- q(0100) => q(cus),
- q(0101) => q(cze),
- q(0102) => q(dak),
- q(0103) => q(dan),
- q(0104) => q(dar),
- q(0105) => q(day),
- q(0106) => q(del),
- q(0107) => q(den),
- q(0108) => q(dgr),
- q(0109) => q(din),
- q(0110) => q(div),
- q(0111) => q(doi),
- q(0112) => q(dra),
- q(0113) => q(dsb),
- q(0114) => q(dua),
- q(0115) => q(dum),
- q(0116) => q(dut),
- q(0117) => q(dyu),
- q(0118) => q(dzo),
- q(0119) => q(efi),
- q(0120) => q(egy),
- q(0121) => q(eka),
- q(0122) => q(elx),
- q(0123) => q(eng),
- q(0124) => q(enm),
- q(0125) => q(epo),
- q(0126) => q(est),
- q(0127) => q(ewe),
- q(0128) => q(ewo),
- q(0129) => q(fan),
- q(0130) => q(fao),
- q(0131) => q(fat),
- q(0132) => q(fij),
- q(0133) => q(fil),
- q(0134) => q(fin),
- q(0135) => q(fiu),
- q(0136) => q(fon),
- q(0137) => q(fre),
- q(0138) => q(frm),
- q(0139) => q(fro),
- q(0140) => q(frr),
- q(0141) => q(frs),
- q(0142) => q(fry),
- q(0143) => q(ful),
- q(0144) => q(fur),
- q(0145) => q(gaa),
- q(0146) => q(gay),
- q(0147) => q(gba),
- q(0148) => q(gem),
- q(0149) => q(geo),
- q(0150) => q(ger),
- q(0151) => q(gez),
- q(0152) => q(gil),
- q(0153) => q(gla),
- q(0154) => q(gle),
- q(0155) => q(glg),
- q(0156) => q(glv),
- q(0157) => q(gmh),
- q(0158) => q(goh),
- q(0159) => q(gon),
- q(0160) => q(gor),
- q(0161) => q(got),
- q(0162) => q(grb),
- q(0163) => q(grc),
- q(0164) => q(gre),
- q(0165) => q(grn),
- q(0166) => q(gsw),
- q(0167) => q(guj),
- q(0168) => q(gwi),
- q(0169) => q(hai),
- q(0170) => q(hat),
- q(0171) => q(hau),
- q(0172) => q(haw),
- q(0173) => q(heb),
- q(0174) => q(her),
- q(0175) => q(hil),
- q(0176) => q(him),
- q(0177) => q(hin),
- q(0178) => q(hit),
- q(0179) => q(hmn),
- q(0180) => q(hmo),
- q(0181) => q(hrv),
- q(0182) => q(hsb),
- q(0183) => q(hun),
- q(0184) => q(hup),
- q(0185) => q(iba),
- q(0186) => q(ibo),
- q(0187) => q(ice),
- q(0188) => q(ido),
- q(0189) => q(iii),
- q(0190) => q(ijo),
- q(0191) => q(iku),
- q(0192) => q(ile),
- q(0193) => q(ilo),
- q(0194) => q(ina),
- q(0195) => q(inc),
- q(0196) => q(ind),
- q(0197) => q(ine),
- q(0198) => q(inh),
- q(0199) => q(ipk),
- q(0200) => q(ira),
- q(0201) => q(iro),
- q(0202) => q(ita),
- q(0203) => q(jav),
- q(0204) => q(jbo),
- q(0205) => q(jpn),
- q(0206) => q(jpr),
- q(0207) => q(jrb),
- q(0208) => q(kaa),
- q(0209) => q(kab),
- q(0210) => q(kac),
- q(0211) => q(kal),
- q(0212) => q(kam),
- q(0213) => q(kan),
- q(0214) => q(kar),
- q(0215) => q(kas),
- q(0216) => q(kau),
- q(0217) => q(kaw),
- q(0218) => q(kaz),
- q(0219) => q(kbd),
- q(0220) => q(kha),
- q(0221) => q(khi),
- q(0222) => q(khm),
- q(0223) => q(kho),
- q(0224) => q(kik),
- q(0225) => q(kin),
- q(0226) => q(kir),
- q(0227) => q(kmb),
- q(0228) => q(kok),
- q(0229) => q(kom),
- q(0230) => q(kon),
- q(0231) => q(kor),
- q(0232) => q(kos),
- q(0233) => q(kpe),
- q(0234) => q(krc),
- q(0235) => q(krl),
- q(0236) => q(kro),
- q(0237) => q(kru),
- q(0238) => q(kua),
- q(0239) => q(kum),
- q(0240) => q(kur),
- q(0241) => q(kut),
- q(0242) => q(lad),
- q(0243) => q(lah),
- q(0244) => q(lam),
- q(0245) => q(lao),
- q(0246) => q(lat),
- q(0247) => q(lav),
- q(0248) => q(lez),
- q(0249) => q(lim),
- q(0250) => q(lin),
- q(0251) => q(lit),
- q(0252) => q(lol),
- q(0253) => q(loz),
- q(0254) => q(ltz),
- q(0255) => q(lua),
- q(0256) => q(lub),
- q(0257) => q(lug),
- q(0258) => q(lui),
- q(0259) => q(lun),
- q(0260) => q(luo),
- q(0261) => q(lus),
- q(0262) => q(mac),
- q(0263) => q(mad),
- q(0264) => q(mag),
- q(0265) => q(mah),
- q(0266) => q(mai),
- q(0267) => q(mak),
- q(0268) => q(mal),
- q(0269) => q(man),
- q(0270) => q(mao),
- q(0271) => q(map),
- q(0272) => q(mar),
- q(0273) => q(mas),
- q(0274) => q(may),
- q(0275) => q(mdf),
- q(0276) => q(mdr),
- q(0277) => q(men),
- q(0278) => q(mga),
- q(0279) => q(mic),
- q(0280) => q(min),
- q(0281) => q(mis),
- q(0282) => q(mkh),
- q(0283) => q(mlg),
- q(0284) => q(mlt),
- q(0285) => q(mnc),
- q(0286) => q(mni),
- q(0287) => q(mno),
- q(0288) => q(moh),
- q(0289) => q(mon),
- q(0290) => q(mos),
- q(0291) => q(mul),
- q(0292) => q(mun),
- q(0293) => q(mus),
- q(0294) => q(mwl),
- q(0295) => q(mwr),
- q(0296) => q(myn),
- q(0297) => q(myv),
- q(0298) => q(nah),
- q(0299) => q(nai),
- q(0300) => q(nap),
- q(0301) => q(nau),
- q(0302) => q(nav),
- q(0303) => q(nbl),
- q(0304) => q(nde),
- q(0305) => q(ndo),
- q(0306) => q(nds),
- q(0307) => q(nep),
- q(0308) => q(new),
- q(0309) => q(nia),
- q(0310) => q(nic),
- q(0311) => q(niu),
- q(0312) => q(nno),
- q(0313) => q(nob),
- q(0314) => q(nog),
- q(0315) => q(non),
- q(0316) => q(nor),
- q(0317) => q(nqo),
- q(0318) => q(nso),
- q(0319) => q(nub),
- q(0320) => q(nwc),
- q(0321) => q(nya),
- q(0322) => q(nym),
- q(0323) => q(nyn),
- q(0324) => q(nyo),
- q(0325) => q(nzi),
- q(0326) => q(oci),
- q(0327) => q(oji),
- q(0328) => q(ori),
- q(0329) => q(orm),
- q(0330) => q(osa),
- q(0331) => q(oss),
- q(0332) => q(ota),
- q(0333) => q(oto),
- q(0334) => q(paa),
- q(0335) => q(pag),
- q(0336) => q(pal),
- q(0337) => q(pam),
- q(0338) => q(pan),
- q(0339) => q(pap),
- q(0340) => q(pau),
- q(0341) => q(peo),
- q(0342) => q(per),
- q(0343) => q(phi),
- q(0344) => q(phn),
- q(0345) => q(pli),
- q(0346) => q(pol),
- q(0347) => q(pon),
- q(0348) => q(por),
- q(0349) => q(pra),
- q(0350) => q(pro),
- q(0351) => q(pus),
- q(0352) => q(qtz),
- q(0353) => q(que),
- q(0354) => q(raj),
- q(0355) => q(rap),
- q(0356) => q(rar),
- q(0357) => q(roa),
- q(0358) => q(roh),
- q(0359) => q(rom),
- q(0360) => q(rum),
- q(0361) => q(run),
- q(0362) => q(rup),
- q(0363) => q(rus),
- q(0364) => q(sad),
- q(0365) => q(sag),
- q(0366) => q(sah),
- q(0367) => q(sai),
- q(0368) => q(sal),
- q(0369) => q(sam),
- q(0370) => q(san),
- q(0371) => q(sas),
- q(0372) => q(sat),
- q(0373) => q(scn),
- q(0374) => q(sco),
- q(0375) => q(sel),
- q(0376) => q(sem),
- q(0377) => q(sga),
- q(0378) => q(sgn),
- q(0379) => q(shn),
- q(0380) => q(sid),
- q(0381) => q(sin),
- q(0382) => q(sio),
- q(0383) => q(sit),
- q(0384) => q(sla),
- q(0385) => q(slo),
- q(0386) => q(slv),
- q(0387) => q(sma),
- q(0388) => q(sme),
- q(0389) => q(smi),
- q(0390) => q(smj),
- q(0391) => q(smn),
- q(0392) => q(smo),
- q(0393) => q(sms),
- q(0394) => q(sna),
- q(0395) => q(snd),
- q(0396) => q(snk),
- q(0397) => q(sog),
- q(0398) => q(som),
- q(0399) => q(son),
- q(0400) => q(sot),
- q(0401) => q(spa),
- q(0402) => q(srd),
- q(0403) => q(srn),
- q(0404) => q(srp),
- q(0405) => q(srr),
- q(0406) => q(ssa),
- q(0407) => q(ssw),
- q(0408) => q(suk),
- q(0409) => q(sun),
- q(0410) => q(sus),
- q(0411) => q(sux),
- q(0412) => q(swa),
- q(0413) => q(swe),
- q(0414) => q(syc),
- q(0415) => q(syr),
- q(0416) => q(tah),
- q(0417) => q(tai),
- q(0418) => q(tam),
- q(0419) => q(tat),
- q(0420) => q(tel),
- q(0421) => q(tem),
- q(0422) => q(ter),
- q(0423) => q(tet),
- q(0424) => q(tgk),
- q(0425) => q(tgl),
- q(0426) => q(tha),
- q(0427) => q(tib),
- q(0428) => q(tig),
- q(0429) => q(tir),
- q(0430) => q(tiv),
- q(0431) => q(tkl),
- q(0432) => q(tlh),
- q(0433) => q(tli),
- q(0434) => q(tmh),
- q(0435) => q(tog),
- q(0436) => q(ton),
- q(0437) => q(tpi),
- q(0438) => q(tsi),
- q(0439) => q(tsn),
- q(0440) => q(tso),
- q(0441) => q(tuk),
- q(0442) => q(tum),
- q(0443) => q(tup),
- q(0444) => q(tur),
- q(0445) => q(tut),
- q(0446) => q(tvl),
- q(0447) => q(twi),
- q(0448) => q(tyv),
- q(0449) => q(udm),
- q(0450) => q(uga),
- q(0451) => q(uig),
- q(0452) => q(ukr),
- q(0453) => q(umb),
- q(0454) => q(und),
- q(0455) => q(urd),
- q(0456) => q(uzb),
- q(0457) => q(vai),
- q(0458) => q(ven),
- q(0459) => q(vie),
- q(0460) => q(vol),
- q(0461) => q(vot),
- q(0462) => q(wak),
- q(0463) => q(wal),
- q(0464) => q(war),
- q(0465) => q(was),
- q(0466) => q(wel),
- q(0467) => q(wen),
- q(0468) => q(wln),
- q(0469) => q(wol),
- q(0470) => q(xal),
- q(0471) => q(xho),
- q(0472) => q(yao),
- q(0473) => q(yap),
- q(0474) => q(yid),
- q(0475) => q(yor),
- q(0476) => q(ypk),
- q(0477) => q(zap),
- q(0478) => q(zbl),
- q(0479) => q(zen),
- q(0480) => q(zgh),
- q(0481) => q(zha),
- q(0482) => q(znd),
- q(0483) => q(zul),
- q(0484) => q(zun),
- q(0485) => q(zxx),
- q(0486) => q(zza),
- q(0487) => q(aav),
- q(0488) => q(alv),
- q(0489) => q(aqa),
- q(0490) => q(aql),
- q(0491) => q(auf),
- q(0492) => q(awd),
- q(0493) => q(azc),
- q(0494) => q(cba),
- q(0495) => q(ccn),
- q(0496) => q(ccs),
- q(0497) => q(cdc),
- q(0498) => q(cdd),
- q(0499) => q(csu),
- q(0500) => q(dmn),
- q(0501) => q(egx),
- q(0502) => q(esx),
- q(0503) => q(euq),
- q(0504) => q(fox),
- q(0505) => q(gme),
- q(0506) => q(gmq),
- q(0507) => q(gmw),
- q(0508) => q(grk),
- q(0509) => q(hmx),
- q(0510) => q(hok),
- q(0511) => q(hyx),
- q(0512) => q(iir),
- q(0513) => q(itc),
- q(0514) => q(jpx),
- q(0515) => q(kdo),
- q(0516) => q(ngf),
- q(0517) => q(omq),
- q(0518) => q(omv),
- q(0519) => q(plf),
- q(0520) => q(poz),
- q(0521) => q(pqe),
- q(0522) => q(pqw),
- q(0523) => q(qwe),
- q(0524) => q(sdv),
- q(0525) => q(sqj),
- q(0526) => q(syd),
- q(0527) => q(tbq),
- q(0528) => q(trk),
- q(0529) => q(tuw),
- q(0530) => q(urj),
- q(0531) => q(xgn),
- q(0532) => q(xnd),
- q(0533) => q(zhx),
- q(0534) => q(zle),
- q(0535) => q(zls),
- q(0536) => q(zlw),
- q(0538) => q(aaa),
- q(0539) => q(aab),
- q(0540) => q(aac),
- q(0541) => q(aad),
- q(0542) => q(aae),
- q(0543) => q(aaf),
- q(0544) => q(aag),
- q(0545) => q(aah),
- q(0546) => q(aai),
- q(0547) => q(aak),
- q(0548) => q(aal),
- q(0549) => q(aan),
- q(0550) => q(aao),
- q(0551) => q(aap),
- q(0552) => q(aaq),
- q(0553) => q(aas),
- q(0554) => q(aat),
- q(0555) => q(aau),
- q(0556) => q(aaw),
- q(0557) => q(aax),
- q(0558) => q(aaz),
- q(0559) => q(aba),
- q(0560) => q(abb),
- q(0561) => q(abc),
- q(0562) => q(abd),
- q(0563) => q(abe),
- q(0564) => q(abf),
- q(0565) => q(abg),
- q(0566) => q(abh),
- q(0567) => q(abi),
- q(0568) => q(abj),
- q(0569) => q(abl),
- q(0570) => q(abm),
- q(0571) => q(abn),
- q(0572) => q(abo),
- q(0573) => q(abp),
- q(0574) => q(abq),
- q(0575) => q(abr),
- q(0576) => q(abs),
- q(0577) => q(abt),
- q(0578) => q(abu),
- q(0579) => q(abv),
- q(0580) => q(abw),
- q(0581) => q(abx),
- q(0582) => q(aby),
- q(0583) => q(abz),
- q(0584) => q(aca),
- q(0585) => q(acb),
- q(0586) => q(acd),
- q(0587) => q(acf),
- q(0588) => q(aci),
- q(0589) => q(ack),
- q(0590) => q(acl),
- q(0591) => q(acm),
- q(0592) => q(acn),
- q(0593) => q(acp),
- q(0594) => q(acq),
- q(0595) => q(acr),
- q(0596) => q(acs),
- q(0597) => q(act),
- q(0598) => q(acu),
- q(0599) => q(acv),
- q(0600) => q(acw),
- q(0601) => q(acx),
- q(0602) => q(acy),
- q(0603) => q(acz),
- q(0604) => q(adb),
- q(0605) => q(add),
- q(0606) => q(ade),
- q(0607) => q(adf),
- q(0608) => q(adg),
- q(0609) => q(adh),
- q(0610) => q(adi),
- q(0611) => q(adj),
- q(0612) => q(adl),
- q(0613) => q(adn),
- q(0614) => q(ado),
- q(0615) => q(adq),
- q(0616) => q(adr),
- q(0617) => q(ads),
- q(0618) => q(adt),
- q(0619) => q(adu),
- q(0620) => q(adw),
- q(0621) => q(adx),
- q(0622) => q(adz),
- q(0623) => q(aea),
- q(0624) => q(aeb),
- q(0625) => q(aec),
- q(0626) => q(aed),
- q(0627) => q(aee),
- q(0628) => q(aek),
- q(0629) => q(ael),
- q(0630) => q(aem),
- q(0631) => q(aen),
- q(0632) => q(aeq),
- q(0633) => q(aer),
- q(0634) => q(aes),
- q(0635) => q(aeu),
- q(0636) => q(aew),
- q(0637) => q(aey),
- q(0638) => q(aez),
- q(0639) => q(afb),
- q(0640) => q(afd),
- q(0641) => q(afe),
- q(0642) => q(afg),
- q(0643) => q(afi),
- q(0644) => q(afk),
- q(0645) => q(afn),
- q(0646) => q(afo),
- q(0647) => q(afp),
- q(0648) => q(afs),
- q(0649) => q(aft),
- q(0650) => q(afu),
- q(0651) => q(afz),
- q(0652) => q(aga),
- q(0653) => q(agb),
- q(0654) => q(agc),
- q(0655) => q(agd),
- q(0656) => q(age),
- q(0657) => q(agf),
- q(0658) => q(agg),
- q(0659) => q(agh),
- q(0660) => q(agi),
- q(0661) => q(agj),
- q(0662) => q(agk),
- q(0663) => q(agl),
- q(0664) => q(agm),
- q(0665) => q(agn),
- q(0666) => q(ago),
- q(0667) => q(agq),
- q(0668) => q(agr),
- q(0669) => q(ags),
- q(0670) => q(agt),
- q(0671) => q(agu),
- q(0672) => q(agv),
- q(0673) => q(agw),
- q(0674) => q(agx),
- q(0675) => q(agy),
- q(0676) => q(agz),
- q(0677) => q(aha),
- q(0678) => q(ahb),
- q(0679) => q(ahg),
- q(0680) => q(ahh),
- q(0681) => q(ahi),
- q(0682) => q(ahk),
- q(0683) => q(ahl),
- q(0684) => q(ahm),
- q(0685) => q(ahn),
- q(0686) => q(aho),
- q(0687) => q(ahp),
- q(0688) => q(ahr),
- q(0689) => q(ahs),
- q(0690) => q(aht),
- q(0691) => q(aia),
- q(0692) => q(aib),
- q(0693) => q(aic),
- q(0694) => q(aid),
- q(0695) => q(aie),
- q(0696) => q(aif),
- q(0697) => q(aig),
- q(0698) => q(aih),
- q(0699) => q(aii),
- q(0700) => q(aij),
- q(0701) => q(aik),
- q(0702) => q(ail),
- q(0703) => q(aim),
- q(0704) => q(aio),
- q(0705) => q(aip),
- q(0706) => q(aiq),
- q(0707) => q(air),
- q(0708) => q(ais),
- q(0709) => q(ait),
- q(0710) => q(aiw),
- q(0711) => q(aix),
- q(0712) => q(aiy),
- q(0713) => q(aja),
- q(0714) => q(ajg),
- q(0715) => q(aji),
- q(0716) => q(ajn),
- q(0717) => q(ajp),
- q(0718) => q(ajt),
- q(0719) => q(aju),
- q(0720) => q(ajw),
- q(0721) => q(ajz),
- q(0722) => q(akb),
- q(0723) => q(akc),
- q(0724) => q(akd),
- q(0725) => q(ake),
- q(0726) => q(akf),
- q(0727) => q(akg),
- q(0728) => q(akh),
- q(0729) => q(aki),
- q(0730) => q(akj),
- q(0731) => q(akl),
- q(0732) => q(akm),
- q(0733) => q(ako),
- q(0734) => q(akp),
- q(0735) => q(akq),
- q(0736) => q(akr),
- q(0737) => q(aks),
- q(0738) => q(akt),
- q(0739) => q(aku),
- q(0740) => q(akv),
- q(0741) => q(akw),
- q(0742) => q(akx),
- q(0743) => q(aky),
- q(0744) => q(akz),
- q(0745) => q(ala),
- q(0746) => q(alc),
- q(0747) => q(ald),
- q(0748) => q(alf),
- q(0749) => q(alh),
- q(0750) => q(ali),
- q(0751) => q(alj),
- q(0752) => q(alk),
- q(0753) => q(all),
- q(0754) => q(alm),
- q(0755) => q(aln),
- q(0756) => q(alo),
- q(0757) => q(alp),
- q(0758) => q(alq),
- q(0759) => q(alr),
- q(0760) => q(als),
- q(0761) => q(alu),
- q(0762) => q(alw),
- q(0763) => q(alx),
- q(0764) => q(aly),
- q(0765) => q(alz),
- q(0766) => q(ama),
- q(0767) => q(amb),
- q(0768) => q(amc),
- q(0769) => q(ame),
- q(0770) => q(amf),
- q(0771) => q(amg),
- q(0772) => q(ami),
- q(0773) => q(amj),
- q(0774) => q(amk),
- q(0775) => q(aml),
- q(0776) => q(amm),
- q(0777) => q(amn),
- q(0778) => q(amo),
- q(0779) => q(amp),
- q(0780) => q(amq),
- q(0781) => q(amr),
- q(0782) => q(ams),
- q(0783) => q(amt),
- q(0784) => q(amu),
- q(0785) => q(amv),
- q(0786) => q(amw),
- q(0787) => q(amx),
- q(0788) => q(amy),
- q(0789) => q(amz),
- q(0790) => q(ana),
- q(0791) => q(anb),
- q(0792) => q(anc),
- q(0793) => q(and),
- q(0794) => q(ane),
- q(0795) => q(anf),
- q(0796) => q(anh),
- q(0797) => q(ani),
- q(0798) => q(anj),
- q(0799) => q(ank),
- q(0800) => q(anl),
- q(0801) => q(anm),
- q(0802) => q(ann),
- q(0803) => q(ano),
- q(0804) => q(anq),
- q(0805) => q(anr),
- q(0806) => q(ans),
- q(0807) => q(ant),
- q(0808) => q(anu),
- q(0809) => q(anv),
- q(0810) => q(anw),
- q(0811) => q(anx),
- q(0812) => q(any),
- q(0813) => q(anz),
- q(0814) => q(aoa),
- q(0815) => q(aob),
- q(0816) => q(aoc),
- q(0817) => q(aod),
- q(0818) => q(aoe),
- q(0819) => q(aof),
- q(0820) => q(aog),
- q(0821) => q(aoh),
- q(0822) => q(aoi),
- q(0823) => q(aoj),
- q(0824) => q(aok),
- q(0825) => q(aol),
- q(0826) => q(aom),
- q(0827) => q(aon),
- q(0828) => q(aor),
- q(0829) => q(aos),
- q(0830) => q(aot),
- q(0831) => q(aou),
- q(0832) => q(aox),
- q(0833) => q(aoz),
- q(0834) => q(apb),
- q(0835) => q(apc),
- q(0836) => q(apd),
- q(0837) => q(ape),
- q(0838) => q(apf),
- q(0839) => q(apg),
- q(0840) => q(aph),
- q(0841) => q(api),
- q(0842) => q(apj),
- q(0843) => q(apk),
- q(0844) => q(apl),
- q(0845) => q(apm),
- q(0846) => q(apn),
- q(0847) => q(apo),
- q(0848) => q(app),
- q(0849) => q(apq),
- q(0850) => q(apr),
- q(0851) => q(aps),
- q(0852) => q(apt),
- q(0853) => q(apu),
- q(0854) => q(apv),
- q(0855) => q(apw),
- q(0856) => q(apx),
- q(0857) => q(apy),
- q(0858) => q(apz),
- q(0859) => q(aqc),
- q(0860) => q(aqd),
- q(0861) => q(aqg),
- q(0862) => q(aqm),
- q(0863) => q(aqn),
- q(0864) => q(aqp),
- q(0865) => q(aqr),
- q(0866) => q(aqt),
- q(0867) => q(aqz),
- q(0868) => q(arb),
- q(0869) => q(ard),
- q(0870) => q(are),
- q(0871) => q(arh),
- q(0872) => q(ari),
- q(0873) => q(arj),
- q(0874) => q(ark),
- q(0875) => q(arl),
- q(0876) => q(aro),
- q(0877) => q(arq),
- q(0878) => q(arr),
- q(0879) => q(ars),
- q(0880) => q(aru),
- q(0881) => q(arv),
- q(0882) => q(arx),
- q(0883) => q(ary),
- q(0884) => q(arz),
- q(0885) => q(asa),
- q(0886) => q(asb),
- q(0887) => q(asc),
- q(0888) => q(asd),
- q(0889) => q(ase),
- q(0890) => q(asf),
- q(0891) => q(asg),
- q(0892) => q(ash),
- q(0893) => q(asi),
- q(0894) => q(asj),
- q(0895) => q(ask),
- q(0896) => q(asl),
- q(0897) => q(asn),
- q(0898) => q(aso),
- q(0899) => q(asp),
- q(0900) => q(asq),
- q(0901) => q(asr),
- q(0902) => q(ass),
- q(0903) => q(asu),
- q(0904) => q(asv),
- q(0905) => q(asw),
- q(0906) => q(asx),
- q(0907) => q(asy),
- q(0908) => q(asz),
- q(0909) => q(ata),
- q(0910) => q(atb),
- q(0911) => q(atc),
- q(0912) => q(atd),
- q(0913) => q(ate),
- q(0914) => q(atg),
- q(0915) => q(ati),
- q(0916) => q(atj),
- q(0917) => q(atk),
- q(0918) => q(atl),
- q(0919) => q(atm),
- q(0920) => q(atn),
- q(0921) => q(ato),
- q(0922) => q(atp),
- q(0923) => q(atq),
- q(0924) => q(atr),
- q(0925) => q(ats),
- q(0926) => q(att),
- q(0927) => q(atu),
- q(0928) => q(atv),
- q(0929) => q(atw),
- q(0930) => q(atx),
- q(0931) => q(aty),
- q(0932) => q(atz),
- q(0933) => q(aua),
- q(0934) => q(aub),
- q(0935) => q(auc),
- q(0936) => q(aud),
- q(0937) => q(aug),
- q(0938) => q(auh),
- q(0939) => q(aui),
- q(0940) => q(auj),
- q(0941) => q(auk),
- q(0942) => q(aul),
- q(0943) => q(aum),
- q(0944) => q(aun),
- q(0945) => q(auo),
- q(0946) => q(aup),
- q(0947) => q(auq),
- q(0948) => q(aur),
- q(0949) => q(aut),
- q(0950) => q(auu),
- q(0951) => q(auw),
- q(0952) => q(aux),
- q(0953) => q(auy),
- q(0954) => q(auz),
- q(0955) => q(avb),
- q(0956) => q(avd),
- q(0957) => q(avi),
- q(0958) => q(avk),
- q(0959) => q(avl),
- q(0960) => q(avm),
- q(0961) => q(avn),
- q(0962) => q(avo),
- q(0963) => q(avs),
- q(0964) => q(avt),
- q(0965) => q(avu),
- q(0966) => q(avv),
- q(0967) => q(awb),
- q(0968) => q(awc),
- q(0969) => q(awe),
- q(0970) => q(awg),
- q(0971) => q(awh),
- q(0972) => q(awi),
- q(0973) => q(awk),
- q(0974) => q(awm),
- q(0975) => q(awn),
- q(0976) => q(awo),
- q(0977) => q(awr),
- q(0978) => q(aws),
- q(0979) => q(awt),
- q(0980) => q(awu),
- q(0981) => q(awv),
- q(0982) => q(aww),
- q(0983) => q(awx),
- q(0984) => q(awy),
- q(0985) => q(axb),
- q(0986) => q(axe),
- q(0987) => q(axg),
- q(0988) => q(axk),
- q(0989) => q(axl),
- q(0990) => q(axm),
- q(0991) => q(axx),
- q(0992) => q(aya),
- q(0993) => q(ayb),
- q(0994) => q(ayc),
- q(0995) => q(ayd),
- q(0996) => q(aye),
- q(0997) => q(ayg),
- q(0998) => q(ayh),
- q(0999) => q(ayi),
- q(1000) => q(ayk),
- q(1001) => q(ayl),
- q(1002) => q(ayn),
- q(1003) => q(ayo),
- q(1004) => q(ayp),
- q(1005) => q(ayq),
- q(1006) => q(ayr),
- q(1007) => q(ays),
- q(1008) => q(ayt),
- q(1009) => q(ayu),
- q(1010) => q(ayy),
- q(1011) => q(ayz),
- q(1012) => q(aza),
- q(1013) => q(azb),
- q(1014) => q(azd),
- q(1015) => q(azg),
- q(1016) => q(azj),
- q(1017) => q(azm),
- q(1018) => q(azn),
- q(1019) => q(azo),
- q(1020) => q(azt),
- q(1021) => q(azz),
- q(1022) => q(baa),
- q(1023) => q(bab),
- q(1024) => q(bac),
- q(1025) => q(bae),
- q(1026) => q(baf),
- q(1027) => q(bag),
- q(1028) => q(bah),
- q(1029) => q(baj),
- q(1030) => q(bao),
- q(1031) => q(bap),
- q(1032) => q(bar),
- q(1033) => q(bau),
- q(1034) => q(bav),
- q(1035) => q(baw),
- q(1036) => q(bax),
- q(1037) => q(bay),
- q(1038) => q(bba),
- q(1039) => q(bbb),
- q(1040) => q(bbc),
- q(1041) => q(bbd),
- q(1042) => q(bbe),
- q(1043) => q(bbf),
- q(1044) => q(bbg),
- q(1045) => q(bbh),
- q(1046) => q(bbi),
- q(1047) => q(bbj),
- q(1048) => q(bbk),
- q(1049) => q(bbl),
- q(1050) => q(bbm),
- q(1051) => q(bbn),
- q(1052) => q(bbo),
- q(1053) => q(bbp),
- q(1054) => q(bbq),
- q(1055) => q(bbr),
- q(1056) => q(bbs),
- q(1057) => q(bbt),
- q(1058) => q(bbu),
- q(1059) => q(bbv),
- q(1060) => q(bbw),
- q(1061) => q(bbx),
- q(1062) => q(bby),
- q(1063) => q(bbz),
- q(1064) => q(bca),
- q(1065) => q(bcb),
- q(1066) => q(bcc),
- q(1067) => q(bcd),
- q(1068) => q(bce),
- q(1069) => q(bcf),
- q(1070) => q(bcg),
- q(1071) => q(bch),
- q(1072) => q(bci),
- q(1073) => q(bcj),
- q(1074) => q(bck),
- q(1075) => q(bcl),
- q(1076) => q(bcm),
- q(1077) => q(bcn),
- q(1078) => q(bco),
- q(1079) => q(bcp),
- q(1080) => q(bcq),
- q(1081) => q(bcr),
- q(1082) => q(bcs),
- q(1083) => q(bct),
- q(1084) => q(bcu),
- q(1085) => q(bcv),
- q(1086) => q(bcw),
- q(1087) => q(bcy),
- q(1088) => q(bcz),
- q(1089) => q(bda),
- q(1090) => q(bdb),
- q(1091) => q(bdc),
- q(1092) => q(bdd),
- q(1093) => q(bde),
- q(1094) => q(bdf),
- q(1095) => q(bdg),
- q(1096) => q(bdh),
- q(1097) => q(bdi),
- q(1098) => q(bdj),
- q(1099) => q(bdk),
- q(1100) => q(bdl),
- q(1101) => q(bdm),
- q(1102) => q(bdn),
- q(1103) => q(bdo),
- q(1104) => q(bdp),
- q(1105) => q(bdq),
- q(1106) => q(bdr),
- q(1107) => q(bds),
- q(1108) => q(bdt),
- q(1109) => q(bdu),
- q(1110) => q(bdv),
- q(1111) => q(bdw),
- q(1112) => q(bdx),
- q(1113) => q(bdy),
- q(1114) => q(bdz),
- q(1115) => q(bea),
- q(1116) => q(beb),
- q(1117) => q(bec),
- q(1118) => q(bed),
- q(1119) => q(bee),
- q(1120) => q(bef),
- q(1121) => q(beg),
- q(1122) => q(beh),
- q(1123) => q(bei),
- q(1124) => q(bek),
- q(1125) => q(beo),
- q(1126) => q(bep),
- q(1127) => q(beq),
- q(1128) => q(bes),
- q(1129) => q(bet),
- q(1130) => q(beu),
- q(1131) => q(bev),
- q(1132) => q(bew),
- q(1133) => q(bex),
- q(1134) => q(bey),
- q(1135) => q(bez),
- q(1136) => q(mot),
- q(1137) => q(bfb),
- q(1138) => q(bfc),
- q(1139) => q(bfd),
- q(1140) => q(bfe),
- q(1141) => q(bff),
- q(1142) => q(bfg),
- q(1143) => q(bfh),
- q(1144) => q(bfi),
- q(1145) => q(bfj),
- q(1146) => q(bfk),
- q(1147) => q(bfl),
- q(1148) => q(bfm),
- q(1149) => q(bfn),
- q(1150) => q(bfo),
- q(1151) => q(bfp),
- q(1152) => q(bfq),
- q(1153) => q(bfr),
- q(1154) => q(bfs),
- q(1155) => q(bft),
- q(1156) => q(bfu),
- q(1157) => q(bfw),
- q(1158) => q(bfx),
- q(1159) => q(bfy),
- q(1160) => q(bfz),
- q(1161) => q(bga),
- q(1162) => q(bgb),
- q(1163) => q(bgc),
- q(1164) => q(bgd),
- q(1165) => q(bge),
- q(1166) => q(bgf),
- q(1167) => q(bgg),
- q(1168) => q(bgi),
- q(1169) => q(bgj),
- q(1170) => q(bgk),
- q(1171) => q(bgl),
- q(1172) => q(bgm),
+ q(0090) => q(cnr),
+ q(0091) => q(cop),
+ q(0092) => q(cor),
+ q(0093) => q(cos),
+ q(0094) => q(cpe),
+ q(0095) => q(cpf),
+ q(0096) => q(cpp),
+ q(0097) => q(cre),
+ q(0098) => q(crh),
+ q(0099) => q(crp),
+ q(0100) => q(csb),
+ q(0101) => q(cus),
+ q(0102) => q(cze),
+ q(0103) => q(dak),
+ q(0104) => q(dan),
+ q(0105) => q(dar),
+ q(0106) => q(day),
+ q(0107) => q(del),
+ q(0108) => q(den),
+ q(0109) => q(dgr),
+ q(0110) => q(din),
+ q(0111) => q(div),
+ q(0112) => q(doi),
+ q(0113) => q(dra),
+ q(0114) => q(dsb),
+ q(0115) => q(dua),
+ q(0116) => q(dum),
+ q(0117) => q(dut),
+ q(0118) => q(dyu),
+ q(0119) => q(dzo),
+ q(0120) => q(efi),
+ q(0121) => q(egy),
+ q(0122) => q(eka),
+ q(0123) => q(elx),
+ q(0124) => q(eng),
+ q(0125) => q(enm),
+ q(0126) => q(epo),
+ q(0127) => q(est),
+ q(0128) => q(ewe),
+ q(0129) => q(ewo),
+ q(0130) => q(fan),
+ q(0131) => q(fao),
+ q(0132) => q(fat),
+ q(0133) => q(fij),
+ q(0134) => q(fil),
+ q(0135) => q(fin),
+ q(0136) => q(fiu),
+ q(0137) => q(fon),
+ q(0138) => q(fre),
+ q(0139) => q(frm),
+ q(0140) => q(fro),
+ q(0141) => q(frr),
+ q(0142) => q(frs),
+ q(0143) => q(fry),
+ q(0144) => q(ful),
+ q(0145) => q(fur),
+ q(0146) => q(gaa),
+ q(0147) => q(gay),
+ q(0148) => q(gba),
+ q(0149) => q(gem),
+ q(0150) => q(geo),
+ q(0151) => q(ger),
+ q(0152) => q(gez),
+ q(0153) => q(gil),
+ q(0154) => q(gla),
+ q(0155) => q(gle),
+ q(0156) => q(glg),
+ q(0157) => q(glv),
+ q(0158) => q(gmh),
+ q(0159) => q(goh),
+ q(0160) => q(gon),
+ q(0161) => q(gor),
+ q(0162) => q(got),
+ q(0163) => q(grb),
+ q(0164) => q(grc),
+ q(0165) => q(gre),
+ q(0166) => q(grn),
+ q(0167) => q(gsw),
+ q(0168) => q(guj),
+ q(0169) => q(gwi),
+ q(0170) => q(hai),
+ q(0171) => q(hat),
+ q(0172) => q(hau),
+ q(0173) => q(haw),
+ q(0174) => q(heb),
+ q(0175) => q(her),
+ q(0176) => q(hil),
+ q(0177) => q(him),
+ q(0178) => q(hin),
+ q(0179) => q(hit),
+ q(0180) => q(hmn),
+ q(0181) => q(hmo),
+ q(0182) => q(hrv),
+ q(0183) => q(hsb),
+ q(0184) => q(hun),
+ q(0185) => q(hup),
+ q(0186) => q(iba),
+ q(0187) => q(ibo),
+ q(0188) => q(ice),
+ q(0189) => q(ido),
+ q(0190) => q(iii),
+ q(0191) => q(ijo),
+ q(0192) => q(iku),
+ q(0193) => q(ile),
+ q(0194) => q(ilo),
+ q(0195) => q(ina),
+ q(0196) => q(inc),
+ q(0197) => q(ind),
+ q(0198) => q(ine),
+ q(0199) => q(inh),
+ q(0200) => q(ipk),
+ q(0201) => q(ira),
+ q(0202) => q(iro),
+ q(0203) => q(ita),
+ q(0204) => q(jav),
+ q(0205) => q(jbo),
+ q(0206) => q(jpn),
+ q(0207) => q(jpr),
+ q(0208) => q(jrb),
+ q(0209) => q(kaa),
+ q(0210) => q(kab),
+ q(0211) => q(kac),
+ q(0212) => q(kal),
+ q(0213) => q(kam),
+ q(0214) => q(kan),
+ q(0215) => q(kar),
+ q(0216) => q(kas),
+ q(0217) => q(kau),
+ q(0218) => q(kaw),
+ q(0219) => q(kaz),
+ q(0220) => q(kbd),
+ q(0221) => q(kha),
+ q(0222) => q(khi),
+ q(0223) => q(khm),
+ q(0224) => q(kho),
+ q(0225) => q(kik),
+ q(0226) => q(kin),
+ q(0227) => q(kir),
+ q(0228) => q(kmb),
+ q(0229) => q(kok),
+ q(0230) => q(kom),
+ q(0231) => q(kon),
+ q(0232) => q(kor),
+ q(0233) => q(kos),
+ q(0234) => q(kpe),
+ q(0235) => q(krc),
+ q(0236) => q(krl),
+ q(0237) => q(kro),
+ q(0238) => q(kru),
+ q(0239) => q(kua),
+ q(0240) => q(kum),
+ q(0241) => q(kur),
+ q(0242) => q(kut),
+ q(0243) => q(lad),
+ q(0244) => q(lah),
+ q(0245) => q(lam),
+ q(0246) => q(lao),
+ q(0247) => q(lat),
+ q(0248) => q(lav),
+ q(0249) => q(lez),
+ q(0250) => q(lim),
+ q(0251) => q(lin),
+ q(0252) => q(lit),
+ q(0253) => q(lol),
+ q(0254) => q(loz),
+ q(0255) => q(ltz),
+ q(0256) => q(lua),
+ q(0257) => q(lub),
+ q(0258) => q(lug),
+ q(0259) => q(lui),
+ q(0260) => q(lun),
+ q(0261) => q(luo),
+ q(0262) => q(lus),
+ q(0263) => q(mac),
+ q(0264) => q(mad),
+ q(0265) => q(mag),
+ q(0266) => q(mah),
+ q(0267) => q(mai),
+ q(0268) => q(mak),
+ q(0269) => q(mal),
+ q(0270) => q(man),
+ q(0271) => q(mao),
+ q(0272) => q(map),
+ q(0273) => q(mar),
+ q(0274) => q(mas),
+ q(0275) => q(may),
+ q(0276) => q(mdf),
+ q(0277) => q(mdr),
+ q(0278) => q(men),
+ q(0279) => q(mga),
+ q(0280) => q(mic),
+ q(0281) => q(min),
+ q(0282) => q(mis),
+ q(0283) => q(mkh),
+ q(0284) => q(mlg),
+ q(0285) => q(mlt),
+ q(0286) => q(mnc),
+ q(0287) => q(mni),
+ q(0288) => q(mno),
+ q(0289) => q(moh),
+ q(0290) => q(mon),
+ q(0291) => q(mos),
+ q(0292) => q(mul),
+ q(0293) => q(mun),
+ q(0294) => q(mus),
+ q(0295) => q(mwl),
+ q(0296) => q(mwr),
+ q(0297) => q(myn),
+ q(0298) => q(myv),
+ q(0299) => q(nah),
+ q(0300) => q(nai),
+ q(0301) => q(nap),
+ q(0302) => q(nau),
+ q(0303) => q(nav),
+ q(0304) => q(nbl),
+ q(0305) => q(nde),
+ q(0306) => q(ndo),
+ q(0307) => q(nds),
+ q(0308) => q(nep),
+ q(0309) => q(new),
+ q(0310) => q(nia),
+ q(0311) => q(nic),
+ q(0312) => q(niu),
+ q(0313) => q(nno),
+ q(0314) => q(nob),
+ q(0315) => q(nog),
+ q(0316) => q(non),
+ q(0317) => q(nor),
+ q(0318) => q(nqo),
+ q(0319) => q(nso),
+ q(0320) => q(nub),
+ q(0321) => q(nwc),
+ q(0322) => q(nya),
+ q(0323) => q(nym),
+ q(0324) => q(nyn),
+ q(0325) => q(nyo),
+ q(0326) => q(nzi),
+ q(0327) => q(oci),
+ q(0328) => q(oji),
+ q(0329) => q(ori),
+ q(0330) => q(orm),
+ q(0331) => q(osa),
+ q(0332) => q(oss),
+ q(0333) => q(ota),
+ q(0334) => q(oto),
+ q(0335) => q(paa),
+ q(0336) => q(pag),
+ q(0337) => q(pal),
+ q(0338) => q(pam),
+ q(0339) => q(pan),
+ q(0340) => q(pap),
+ q(0341) => q(pau),
+ q(0342) => q(peo),
+ q(0343) => q(per),
+ q(0344) => q(phi),
+ q(0345) => q(phn),
+ q(0346) => q(pli),
+ q(0347) => q(pol),
+ q(0348) => q(pon),
+ q(0349) => q(por),
+ q(0350) => q(pra),
+ q(0351) => q(pro),
+ q(0352) => q(pus),
+ q(0353) => q(qtz),
+ q(0354) => q(que),
+ q(0355) => q(raj),
+ q(0356) => q(rap),
+ q(0357) => q(rar),
+ q(0358) => q(roa),
+ q(0359) => q(roh),
+ q(0360) => q(rom),
+ q(0361) => q(rum),
+ q(0362) => q(run),
+ q(0363) => q(rup),
+ q(0364) => q(rus),
+ q(0365) => q(sad),
+ q(0366) => q(sag),
+ q(0367) => q(sah),
+ q(0368) => q(sai),
+ q(0369) => q(sal),
+ q(0370) => q(sam),
+ q(0371) => q(san),
+ q(0372) => q(sas),
+ q(0373) => q(sat),
+ q(0374) => q(scn),
+ q(0375) => q(sco),
+ q(0376) => q(sel),
+ q(0377) => q(sem),
+ q(0378) => q(sga),
+ q(0379) => q(sgn),
+ q(0380) => q(shn),
+ q(0381) => q(sid),
+ q(0382) => q(sin),
+ q(0383) => q(sio),
+ q(0384) => q(sit),
+ q(0385) => q(sla),
+ q(0386) => q(slo),
+ q(0387) => q(slv),
+ q(0388) => q(sma),
+ q(0389) => q(sme),
+ q(0390) => q(smi),
+ q(0391) => q(smj),
+ q(0392) => q(smn),
+ q(0393) => q(smo),
+ q(0394) => q(sms),
+ q(0395) => q(sna),
+ q(0396) => q(snd),
+ q(0397) => q(snk),
+ q(0398) => q(sog),
+ q(0399) => q(som),
+ q(0400) => q(son),
+ q(0401) => q(sot),
+ q(0402) => q(spa),
+ q(0403) => q(srd),
+ q(0404) => q(srn),
+ q(0405) => q(srp),
+ q(0406) => q(srr),
+ q(0407) => q(ssa),
+ q(0408) => q(ssw),
+ q(0409) => q(suk),
+ q(0410) => q(sun),
+ q(0411) => q(sus),
+ q(0412) => q(sux),
+ q(0413) => q(swa),
+ q(0414) => q(swe),
+ q(0415) => q(syc),
+ q(0416) => q(syr),
+ q(0417) => q(tah),
+ q(0418) => q(tai),
+ q(0419) => q(tam),
+ q(0420) => q(tat),
+ q(0421) => q(tel),
+ q(0422) => q(tem),
+ q(0423) => q(ter),
+ q(0424) => q(tet),
+ q(0425) => q(tgk),
+ q(0426) => q(tgl),
+ q(0427) => q(tha),
+ q(0428) => q(tib),
+ q(0429) => q(tig),
+ q(0430) => q(tir),
+ q(0431) => q(tiv),
+ q(0432) => q(tkl),
+ q(0433) => q(tlh),
+ q(0434) => q(tli),
+ q(0435) => q(tmh),
+ q(0436) => q(tog),
+ q(0437) => q(ton),
+ q(0438) => q(tpi),
+ q(0439) => q(tsi),
+ q(0440) => q(tsn),
+ q(0441) => q(tso),
+ q(0442) => q(tuk),
+ q(0443) => q(tum),
+ q(0444) => q(tup),
+ q(0445) => q(tur),
+ q(0446) => q(tut),
+ q(0447) => q(tvl),
+ q(0448) => q(twi),
+ q(0449) => q(tyv),
+ q(0450) => q(udm),
+ q(0451) => q(uga),
+ q(0452) => q(uig),
+ q(0453) => q(ukr),
+ q(0454) => q(umb),
+ q(0455) => q(und),
+ q(0456) => q(urd),
+ q(0457) => q(uzb),
+ q(0458) => q(vai),
+ q(0459) => q(ven),
+ q(0460) => q(vie),
+ q(0461) => q(vol),
+ q(0462) => q(vot),
+ q(0463) => q(wak),
+ q(0464) => q(wal),
+ q(0465) => q(war),
+ q(0466) => q(was),
+ q(0467) => q(wel),
+ q(0468) => q(wen),
+ q(0469) => q(wln),
+ q(0470) => q(wol),
+ q(0471) => q(xal),
+ q(0472) => q(xho),
+ q(0473) => q(yao),
+ q(0474) => q(yap),
+ q(0475) => q(yid),
+ q(0476) => q(yor),
+ q(0477) => q(ypk),
+ q(0478) => q(zap),
+ q(0479) => q(zbl),
+ q(0480) => q(zen),
+ q(0481) => q(zgh),
+ q(0482) => q(zha),
+ q(0483) => q(znd),
+ q(0484) => q(zul),
+ q(0485) => q(zun),
+ q(0486) => q(zxx),
+ q(0487) => q(zza),
+ q(0488) => q(aav),
+ q(0489) => q(alv),
+ q(0490) => q(aqa),
+ q(0491) => q(aql),
+ q(0492) => q(auf),
+ q(0493) => q(awd),
+ q(0494) => q(azc),
+ q(0495) => q(cba),
+ q(0496) => q(ccn),
+ q(0497) => q(ccs),
+ q(0498) => q(cdc),
+ q(0499) => q(cdd),
+ q(0500) => q(csu),
+ q(0501) => q(dmn),
+ q(0502) => q(egx),
+ q(0503) => q(esx),
+ q(0504) => q(euq),
+ q(0505) => q(fox),
+ q(0506) => q(gme),
+ q(0507) => q(gmq),
+ q(0508) => q(gmw),
+ q(0509) => q(grk),
+ q(0510) => q(hmx),
+ q(0511) => q(hok),
+ q(0512) => q(hyx),
+ q(0513) => q(iir),
+ q(0514) => q(itc),
+ q(0515) => q(jpx),
+ q(0516) => q(kdo),
+ q(0517) => q(ngf),
+ q(0518) => q(omq),
+ q(0519) => q(omv),
+ q(0520) => q(plf),
+ q(0521) => q(poz),
+ q(0522) => q(pqe),
+ q(0523) => q(pqw),
+ q(0524) => q(qwe),
+ q(0525) => q(sdv),
+ q(0526) => q(sqj),
+ q(0527) => q(syd),
+ q(0528) => q(tbq),
+ q(0529) => q(trk),
+ q(0530) => q(tuw),
+ q(0531) => q(urj),
+ q(0532) => q(xgn),
+ q(0533) => q(xnd),
+ q(0534) => q(zhx),
+ q(0535) => q(zle),
+ q(0536) => q(zls),
+ q(0537) => q(zlw),
+ q(0539) => q(aaa),
+ q(0540) => q(aab),
+ q(0541) => q(aac),
+ q(0542) => q(aad),
+ q(0543) => q(aae),
+ q(0544) => q(aaf),
+ q(0545) => q(aag),
+ q(0546) => q(aah),
+ q(0547) => q(aai),
+ q(0548) => q(aak),
+ q(0549) => q(aal),
+ q(0550) => q(aan),
+ q(0551) => q(aao),
+ q(0552) => q(aap),
+ q(0553) => q(aaq),
+ q(0554) => q(aas),
+ q(0555) => q(aat),
+ q(0556) => q(aau),
+ q(0557) => q(aaw),
+ q(0558) => q(aax),
+ q(0559) => q(aaz),
+ q(0560) => q(aba),
+ q(0561) => q(abb),
+ q(0562) => q(abc),
+ q(0563) => q(abd),
+ q(0564) => q(abe),
+ q(0565) => q(abf),
+ q(0566) => q(abg),
+ q(0567) => q(abh),
+ q(0568) => q(abi),
+ q(0569) => q(abj),
+ q(0570) => q(abl),
+ q(0571) => q(abm),
+ q(0572) => q(abn),
+ q(0573) => q(abo),
+ q(0574) => q(abp),
+ q(0575) => q(abq),
+ q(0576) => q(abr),
+ q(0577) => q(abs),
+ q(0578) => q(abt),
+ q(0579) => q(abu),
+ q(0580) => q(abv),
+ q(0581) => q(abw),
+ q(0582) => q(abx),
+ q(0583) => q(aby),
+ q(0584) => q(abz),
+ q(0585) => q(aca),
+ q(0586) => q(acb),
+ q(0587) => q(acd),
+ q(0588) => q(acf),
+ q(0589) => q(aci),
+ q(0590) => q(ack),
+ q(0591) => q(acl),
+ q(0592) => q(acm),
+ q(0593) => q(acn),
+ q(0594) => q(acp),
+ q(0595) => q(acq),
+ q(0596) => q(acr),
+ q(0597) => q(acs),
+ q(0598) => q(act),
+ q(0599) => q(acu),
+ q(0600) => q(acv),
+ q(0601) => q(acw),
+ q(0602) => q(acx),
+ q(0603) => q(acy),
+ q(0604) => q(acz),
+ q(0605) => q(adb),
+ q(0606) => q(add),
+ q(0607) => q(ade),
+ q(0608) => q(adf),
+ q(0609) => q(adg),
+ q(0610) => q(adh),
+ q(0611) => q(adi),
+ q(0612) => q(adj),
+ q(0613) => q(adl),
+ q(0614) => q(adn),
+ q(0615) => q(ado),
+ q(0616) => q(adq),
+ q(0617) => q(adr),
+ q(0618) => q(ads),
+ q(0619) => q(adt),
+ q(0620) => q(adu),
+ q(0621) => q(adw),
+ q(0622) => q(adx),
+ q(0623) => q(adz),
+ q(0624) => q(aea),
+ q(0625) => q(aeb),
+ q(0626) => q(aec),
+ q(0627) => q(aed),
+ q(0628) => q(aee),
+ q(0629) => q(aek),
+ q(0630) => q(ael),
+ q(0631) => q(aem),
+ q(0632) => q(aen),
+ q(0633) => q(aeq),
+ q(0634) => q(aer),
+ q(0635) => q(aes),
+ q(0636) => q(aeu),
+ q(0637) => q(aew),
+ q(0638) => q(aey),
+ q(0639) => q(aez),
+ q(0640) => q(afb),
+ q(0641) => q(afd),
+ q(0642) => q(afe),
+ q(0643) => q(afg),
+ q(0644) => q(afi),
+ q(0645) => q(afk),
+ q(0646) => q(afn),
+ q(0647) => q(afo),
+ q(0648) => q(afp),
+ q(0649) => q(afs),
+ q(0650) => q(aft),
+ q(0651) => q(afu),
+ q(0652) => q(afz),
+ q(0653) => q(aga),
+ q(0654) => q(agb),
+ q(0655) => q(agc),
+ q(0656) => q(agd),
+ q(0657) => q(age),
+ q(0658) => q(agf),
+ q(0659) => q(agg),
+ q(0660) => q(agh),
+ q(0661) => q(agi),
+ q(0662) => q(agj),
+ q(0663) => q(agk),
+ q(0664) => q(agl),
+ q(0665) => q(agm),
+ q(0666) => q(agn),
+ q(0667) => q(ago),
+ q(0668) => q(agq),
+ q(0669) => q(agr),
+ q(0670) => q(ags),
+ q(0671) => q(agt),
+ q(0672) => q(agu),
+ q(0673) => q(agv),
+ q(0674) => q(agw),
+ q(0675) => q(agx),
+ q(0676) => q(agy),
+ q(0677) => q(agz),
+ q(0678) => q(aha),
+ q(0679) => q(ahb),
+ q(0680) => q(ahg),
+ q(0681) => q(ahh),
+ q(0682) => q(ahi),
+ q(0683) => q(ahk),
+ q(0684) => q(ahl),
+ q(0685) => q(ahm),
+ q(0686) => q(ahn),
+ q(0687) => q(aho),
+ q(0688) => q(ahp),
+ q(0689) => q(ahr),
+ q(0690) => q(ahs),
+ q(0691) => q(aht),
+ q(0692) => q(aia),
+ q(0693) => q(aib),
+ q(0694) => q(aic),
+ q(0695) => q(aid),
+ q(0696) => q(aie),
+ q(0697) => q(aif),
+ q(0698) => q(aig),
+ q(0699) => q(aih),
+ q(0700) => q(aii),
+ q(0701) => q(aij),
+ q(0702) => q(aik),
+ q(0703) => q(ail),
+ q(0704) => q(aim),
+ q(0705) => q(aio),
+ q(0706) => q(aip),
+ q(0707) => q(aiq),
+ q(0708) => q(air),
+ q(0709) => q(ais),
+ q(0710) => q(ait),
+ q(0711) => q(aiw),
+ q(0712) => q(aix),
+ q(0713) => q(aiy),
+ q(0714) => q(aja),
+ q(0715) => q(ajg),
+ q(0716) => q(aji),
+ q(0717) => q(ajn),
+ q(0718) => q(ajp),
+ q(0719) => q(ajt),
+ q(0720) => q(aju),
+ q(0721) => q(ajw),
+ q(0722) => q(ajz),
+ q(0723) => q(akb),
+ q(0724) => q(akc),
+ q(0725) => q(akd),
+ q(0726) => q(ake),
+ q(0727) => q(akf),
+ q(0728) => q(akg),
+ q(0729) => q(akh),
+ q(0730) => q(aki),
+ q(0731) => q(akj),
+ q(0732) => q(akl),
+ q(0733) => q(akm),
+ q(0734) => q(ako),
+ q(0735) => q(akp),
+ q(0736) => q(akq),
+ q(0737) => q(akr),
+ q(0738) => q(aks),
+ q(0739) => q(akt),
+ q(0740) => q(aku),
+ q(0741) => q(akv),
+ q(0742) => q(akw),
+ q(0743) => q(akx),
+ q(0744) => q(aky),
+ q(0745) => q(akz),
+ q(0746) => q(ala),
+ q(0747) => q(alc),
+ q(0748) => q(ald),
+ q(0749) => q(alf),
+ q(0750) => q(alh),
+ q(0751) => q(ali),
+ q(0752) => q(alj),
+ q(0753) => q(alk),
+ q(0754) => q(all),
+ q(0755) => q(alm),
+ q(0756) => q(aln),
+ q(0757) => q(alo),
+ q(0758) => q(alp),
+ q(0759) => q(alq),
+ q(0760) => q(alr),
+ q(0761) => q(als),
+ q(0762) => q(alu),
+ q(0763) => q(alw),
+ q(0764) => q(alx),
+ q(0765) => q(aly),
+ q(0766) => q(alz),
+ q(0767) => q(ama),
+ q(0768) => q(amb),
+ q(0769) => q(amc),
+ q(0770) => q(ame),
+ q(0771) => q(amf),
+ q(0772) => q(amg),
+ q(0773) => q(ami),
+ q(0774) => q(amj),
+ q(0775) => q(amk),
+ q(0776) => q(aml),
+ q(0777) => q(amm),
+ q(0778) => q(amn),
+ q(0779) => q(amo),
+ q(0780) => q(amp),
+ q(0781) => q(amq),
+ q(0782) => q(amr),
+ q(0783) => q(ams),
+ q(0784) => q(amt),
+ q(0785) => q(amu),
+ q(0786) => q(amv),
+ q(0787) => q(amw),
+ q(0788) => q(amx),
+ q(0789) => q(amy),
+ q(0790) => q(amz),
+ q(0791) => q(ana),
+ q(0792) => q(anb),
+ q(0793) => q(anc),
+ q(0794) => q(and),
+ q(0795) => q(ane),
+ q(0796) => q(anf),
+ q(0797) => q(anh),
+ q(0798) => q(ani),
+ q(0799) => q(anj),
+ q(0800) => q(ank),
+ q(0801) => q(anl),
+ q(0802) => q(anm),
+ q(0803) => q(ann),
+ q(0804) => q(ano),
+ q(0805) => q(anq),
+ q(0806) => q(anr),
+ q(0807) => q(ans),
+ q(0808) => q(ant),
+ q(0809) => q(anu),
+ q(0810) => q(anv),
+ q(0811) => q(anw),
+ q(0812) => q(anx),
+ q(0813) => q(any),
+ q(0814) => q(anz),
+ q(0815) => q(aoa),
+ q(0816) => q(aob),
+ q(0817) => q(aoc),
+ q(0818) => q(aod),
+ q(0819) => q(aoe),
+ q(0820) => q(aof),
+ q(0821) => q(aog),
+ q(0822) => q(aoh),
+ q(0823) => q(aoi),
+ q(0824) => q(aoj),
+ q(0825) => q(aok),
+ q(0826) => q(aol),
+ q(0827) => q(aom),
+ q(0828) => q(aon),
+ q(0829) => q(aor),
+ q(0830) => q(aos),
+ q(0831) => q(aot),
+ q(0832) => q(aou),
+ q(0833) => q(aox),
+ q(0834) => q(aoz),
+ q(0835) => q(apb),
+ q(0836) => q(apc),
+ q(0837) => q(apd),
+ q(0838) => q(ape),
+ q(0839) => q(apf),
+ q(0840) => q(apg),
+ q(0841) => q(aph),
+ q(0842) => q(api),
+ q(0843) => q(apj),
+ q(0844) => q(apk),
+ q(0845) => q(apl),
+ q(0846) => q(apm),
+ q(0847) => q(apn),
+ q(0848) => q(apo),
+ q(0849) => q(app),
+ q(0850) => q(apq),
+ q(0851) => q(apr),
+ q(0852) => q(aps),
+ q(0853) => q(apt),
+ q(0854) => q(apu),
+ q(0855) => q(apv),
+ q(0856) => q(apw),
+ q(0857) => q(apx),
+ q(0858) => q(apy),
+ q(0859) => q(apz),
+ q(0860) => q(aqc),
+ q(0861) => q(aqd),
+ q(0862) => q(aqg),
+ q(0863) => q(aqm),
+ q(0864) => q(aqn),
+ q(0865) => q(aqp),
+ q(0866) => q(aqr),
+ q(0867) => q(aqt),
+ q(0868) => q(aqz),
+ q(0869) => q(arb),
+ q(0870) => q(ard),
+ q(0871) => q(are),
+ q(0872) => q(arh),
+ q(0873) => q(ari),
+ q(0874) => q(arj),
+ q(0875) => q(ark),
+ q(0876) => q(arl),
+ q(0877) => q(aro),
+ q(0878) => q(arq),
+ q(0879) => q(arr),
+ q(0880) => q(ars),
+ q(0881) => q(aru),
+ q(0882) => q(arv),
+ q(0883) => q(arx),
+ q(0884) => q(ary),
+ q(0885) => q(arz),
+ q(0886) => q(asa),
+ q(0887) => q(asb),
+ q(0888) => q(asc),
+ q(0889) => q(asd),
+ q(0890) => q(ase),
+ q(0891) => q(asf),
+ q(0892) => q(asg),
+ q(0893) => q(ash),
+ q(0894) => q(asi),
+ q(0895) => q(asj),
+ q(0896) => q(ask),
+ q(0897) => q(asl),
+ q(0898) => q(asn),
+ q(0899) => q(aso),
+ q(0900) => q(asp),
+ q(0901) => q(asq),
+ q(0902) => q(asr),
+ q(0903) => q(ass),
+ q(0904) => q(asu),
+ q(0905) => q(asv),
+ q(0906) => q(asw),
+ q(0907) => q(asx),
+ q(0908) => q(asy),
+ q(0909) => q(asz),
+ q(0910) => q(ata),
+ q(0911) => q(atb),
+ q(0912) => q(atc),
+ q(0913) => q(atd),
+ q(0914) => q(ate),
+ q(0915) => q(atg),
+ q(0916) => q(ati),
+ q(0917) => q(atj),
+ q(0918) => q(atk),
+ q(0919) => q(atl),
+ q(0920) => q(atm),
+ q(0921) => q(atn),
+ q(0922) => q(ato),
+ q(0923) => q(atp),
+ q(0924) => q(atq),
+ q(0925) => q(atr),
+ q(0926) => q(ats),
+ q(0927) => q(att),
+ q(0928) => q(atu),
+ q(0929) => q(atv),
+ q(0930) => q(atw),
+ q(0931) => q(atx),
+ q(0932) => q(aty),
+ q(0933) => q(atz),
+ q(0934) => q(aua),
+ q(0935) => q(aub),
+ q(0936) => q(auc),
+ q(0937) => q(aud),
+ q(0938) => q(aug),
+ q(0939) => q(auh),
+ q(0940) => q(aui),
+ q(0941) => q(auj),
+ q(0942) => q(auk),
+ q(0943) => q(aul),
+ q(0944) => q(aum),
+ q(0945) => q(aun),
+ q(0946) => q(auo),
+ q(0947) => q(aup),
+ q(0948) => q(auq),
+ q(0949) => q(aur),
+ q(0950) => q(aut),
+ q(0951) => q(auu),
+ q(0952) => q(auw),
+ q(0953) => q(aux),
+ q(0954) => q(auy),
+ q(0955) => q(auz),
+ q(0956) => q(avb),
+ q(0957) => q(avd),
+ q(0958) => q(avi),
+ q(0959) => q(avk),
+ q(0960) => q(avl),
+ q(0961) => q(avm),
+ q(0962) => q(avn),
+ q(0963) => q(avo),
+ q(0964) => q(avs),
+ q(0965) => q(avt),
+ q(0966) => q(avu),
+ q(0967) => q(avv),
+ q(0968) => q(awb),
+ q(0969) => q(awc),
+ q(0970) => q(awe),
+ q(0971) => q(awg),
+ q(0972) => q(awh),
+ q(0973) => q(awi),
+ q(0974) => q(awk),
+ q(0975) => q(awm),
+ q(0976) => q(awn),
+ q(0977) => q(awo),
+ q(0978) => q(awr),
+ q(0979) => q(aws),
+ q(0980) => q(awt),
+ q(0981) => q(awu),
+ q(0982) => q(awv),
+ q(0983) => q(aww),
+ q(0984) => q(awx),
+ q(0985) => q(awy),
+ q(0986) => q(axb),
+ q(0987) => q(axe),
+ q(0988) => q(axg),
+ q(0989) => q(axk),
+ q(0990) => q(axl),
+ q(0991) => q(axm),
+ q(0992) => q(axx),
+ q(0993) => q(aya),
+ q(0994) => q(ayb),
+ q(0995) => q(ayc),
+ q(0996) => q(ayd),
+ q(0997) => q(aye),
+ q(0998) => q(ayg),
+ q(0999) => q(ayh),
+ q(1000) => q(ayi),
+ q(1001) => q(ayk),
+ q(1002) => q(ayl),
+ q(1003) => q(ayn),
+ q(1004) => q(ayo),
+ q(1005) => q(ayp),
+ q(1006) => q(ayq),
+ q(1007) => q(ayr),
+ q(1008) => q(ays),
+ q(1009) => q(ayt),
+ q(1010) => q(ayu),
+ q(1011) => q(ayy),
+ q(1012) => q(ayz),
+ q(1013) => q(aza),
+ q(1014) => q(azb),
+ q(1015) => q(azd),
+ q(1016) => q(azg),
+ q(1017) => q(azj),
+ q(1018) => q(azm),
+ q(1019) => q(azn),
+ q(1020) => q(azo),
+ q(1021) => q(azt),
+ q(1022) => q(azz),
+ q(1023) => q(baa),
+ q(1024) => q(bab),
+ q(1025) => q(bac),
+ q(1026) => q(bae),
+ q(1027) => q(baf),
+ q(1028) => q(bag),
+ q(1029) => q(bah),
+ q(1030) => q(baj),
+ q(1031) => q(bao),
+ q(1032) => q(bap),
+ q(1033) => q(bar),
+ q(1034) => q(bau),
+ q(1035) => q(bav),
+ q(1036) => q(baw),
+ q(1037) => q(bax),
+ q(1038) => q(bay),
+ q(1039) => q(bba),
+ q(1040) => q(bbb),
+ q(1041) => q(bbc),
+ q(1042) => q(bbd),
+ q(1043) => q(bbe),
+ q(1044) => q(bbf),
+ q(1045) => q(bbg),
+ q(1046) => q(bbh),
+ q(1047) => q(bbi),
+ q(1048) => q(bbj),
+ q(1049) => q(bbk),
+ q(1050) => q(bbl),
+ q(1051) => q(bbm),
+ q(1052) => q(bbn),
+ q(1053) => q(bbo),
+ q(1054) => q(bbp),
+ q(1055) => q(bbq),
+ q(1056) => q(bbr),
+ q(1057) => q(bbs),
+ q(1058) => q(bbt),
+ q(1059) => q(bbu),
+ q(1060) => q(bbv),
+ q(1061) => q(bbw),
+ q(1062) => q(bbx),
+ q(1063) => q(bby),
+ q(1064) => q(bbz),
+ q(1065) => q(bca),
+ q(1066) => q(bcb),
+ q(1067) => q(bcc),
+ q(1068) => q(bcd),
+ q(1069) => q(bce),
+ q(1070) => q(bcf),
+ q(1071) => q(bcg),
+ q(1072) => q(bch),
+ q(1073) => q(bci),
+ q(1074) => q(bcj),
+ q(1075) => q(bck),
+ q(1076) => q(bcl),
+ q(1077) => q(bcm),
+ q(1078) => q(bcn),
+ q(1079) => q(bco),
+ q(1080) => q(bcp),
+ q(1081) => q(bcq),
+ q(1082) => q(bcr),
+ q(1083) => q(bcs),
+ q(1084) => q(bct),
+ q(1085) => q(bcu),
+ q(1086) => q(bcv),
+ q(1087) => q(bcw),
+ q(1088) => q(bcy),
+ q(1089) => q(bcz),
+ q(1090) => q(bda),
+ q(1091) => q(bdb),
+ q(1092) => q(bdc),
+ q(1093) => q(bdd),
+ q(1094) => q(bde),
+ q(1095) => q(bdf),
+ q(1096) => q(bdg),
+ q(1097) => q(bdh),
+ q(1098) => q(bdi),
+ q(1099) => q(bdj),
+ q(1100) => q(bdk),
+ q(1101) => q(bdl),
+ q(1102) => q(bdm),
+ q(1103) => q(bdn),
+ q(1104) => q(bdo),
+ q(1105) => q(bdp),
+ q(1106) => q(bdq),
+ q(1107) => q(bdr),
+ q(1108) => q(bds),
+ q(1109) => q(bdt),
+ q(1110) => q(bdu),
+ q(1111) => q(bdv),
+ q(1112) => q(bdw),
+ q(1113) => q(bdx),
+ q(1114) => q(bdy),
+ q(1115) => q(bdz),
+ q(1116) => q(bea),
+ q(1117) => q(beb),
+ q(1118) => q(bec),
+ q(1119) => q(bed),
+ q(1120) => q(bee),
+ q(1121) => q(bef),
+ q(1122) => q(beg),
+ q(1123) => q(beh),
+ q(1124) => q(bei),
+ q(1125) => q(bek),
+ q(1126) => q(beo),
+ q(1127) => q(bep),
+ q(1128) => q(beq),
+ q(1129) => q(bes),
+ q(1130) => q(bet),
+ q(1131) => q(beu),
+ q(1132) => q(bev),
+ q(1133) => q(bew),
+ q(1134) => q(bex),
+ q(1135) => q(bey),
+ q(1136) => q(bez),
+ q(1137) => q(mot),
+ q(1138) => q(bfb),
+ q(1139) => q(bfc),
+ q(1140) => q(bfd),
+ q(1141) => q(bfe),
+ q(1142) => q(bff),
+ q(1143) => q(bfg),
+ q(1144) => q(bfh),
+ q(1145) => q(bfi),
+ q(1146) => q(bfj),
+ q(1147) => q(bfk),
+ q(1148) => q(bfl),
+ q(1149) => q(bfm),
+ q(1150) => q(bfn),
+ q(1151) => q(bfo),
+ q(1152) => q(bfp),
+ q(1153) => q(bfq),
+ q(1154) => q(bfr),
+ q(1155) => q(bfs),
+ q(1156) => q(bft),
+ q(1157) => q(bfu),
+ q(1158) => q(bfw),
+ q(1159) => q(bfx),
+ q(1160) => q(bfy),
+ q(1161) => q(bfz),
+ q(1162) => q(bga),
+ q(1163) => q(bgb),
+ q(1164) => q(bgc),
+ q(1165) => q(bgd),
+ q(1166) => q(bge),
+ q(1167) => q(bgf),
+ q(1168) => q(bgg),
+ q(1169) => q(bgi),
+ q(1170) => q(bgj),
+ q(1171) => q(bgk),
+ q(1172) => q(bgl),
q(1173) => q(bgn),
q(1174) => q(bgo),
q(1175) => q(bgp),
@@ -93831,6502 +93784,6487 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
q(1477) => q(bth),
q(1478) => q(bti),
q(1479) => q(btj),
- q(1480) => q(btl),
- q(1481) => q(btm),
- q(1482) => q(btn),
- q(1483) => q(bto),
- q(1484) => q(btp),
- q(1485) => q(btq),
- q(1486) => q(btr),
- q(1487) => q(bts),
- q(1488) => q(btt),
- q(1489) => q(btu),
- q(1490) => q(btv),
- q(1491) => q(btw),
- q(1492) => q(btx),
- q(1493) => q(bty),
- q(1494) => q(btz),
- q(1495) => q(bub),
- q(1496) => q(buc),
- q(1497) => q(bud),
- q(1498) => q(bue),
- q(1499) => q(buf),
- q(1500) => q(buh),
- q(1501) => q(bui),
- q(1502) => q(buj),
- q(1503) => q(buk),
- q(1504) => q(bum),
- q(1505) => q(bun),
- q(1506) => q(buo),
- q(1507) => q(bup),
- q(1508) => q(buq),
- q(1509) => q(bus),
- q(1510) => q(but),
- q(1511) => q(buu),
- q(1512) => q(buv),
- q(1513) => q(buw),
- q(1514) => q(bux),
- q(1515) => q(buy),
- q(1516) => q(buz),
- q(1517) => q(bva),
- q(1518) => q(bvb),
- q(1519) => q(bvc),
- q(1520) => q(bvd),
- q(1521) => q(bve),
- q(1522) => q(bvf),
- q(1523) => q(bvg),
- q(1524) => q(bvh),
- q(1525) => q(bvi),
- q(1526) => q(bvj),
- q(1527) => q(bvk),
- q(1528) => q(bvl),
- q(1529) => q(bvm),
- q(1530) => q(bvn),
- q(1531) => q(bvo),
- q(1532) => q(bvp),
- q(1533) => q(bvq),
- q(1534) => q(bvr),
- q(1535) => q(bvt),
- q(1536) => q(bvu),
- q(1537) => q(bvv),
- q(1538) => q(bvw),
- q(1539) => q(bvx),
- q(1540) => q(bvy),
- q(1541) => q(bvz),
- q(1542) => q(bwa),
- q(1543) => q(bwb),
- q(1544) => q(bwc),
- q(1545) => q(bwd),
- q(1546) => q(bwe),
- q(1547) => q(bwf),
- q(1548) => q(bwg),
- q(1549) => q(bwh),
- q(1550) => q(bwi),
- q(1551) => q(bwj),
- q(1552) => q(bwk),
- q(1553) => q(bwl),
- q(1554) => q(bwm),
- q(1555) => q(bwn),
- q(1556) => q(bwo),
- q(1557) => q(bwp),
- q(1558) => q(bwq),
- q(1559) => q(bwr),
- q(1560) => q(bws),
- q(1561) => q(bwt),
- q(1562) => q(bwu),
- q(1563) => q(bww),
- q(1564) => q(bwx),
- q(1565) => q(bwy),
- q(1566) => q(bwz),
- q(1567) => q(bxa),
- q(1568) => q(bxb),
- q(1569) => q(bxc),
- q(1570) => q(bxd),
- q(1571) => q(bxe),
- q(1572) => q(bxf),
- q(1573) => q(bxg),
- q(1574) => q(bxh),
- q(1575) => q(bxi),
- q(1576) => q(bxj),
- q(1577) => q(bxk),
- q(1578) => q(bxl),
- q(1579) => q(bxm),
- q(1580) => q(bxn),
- q(1581) => q(bxo),
- q(1582) => q(bxp),
- q(1583) => q(bxq),
- q(1584) => q(bxr),
- q(1585) => q(bxs),
- q(1586) => q(bxu),
- q(1587) => q(bxv),
- q(1588) => q(bxw),
- q(1589) => q(bxz),
- q(1590) => q(bya),
- q(1591) => q(byb),
- q(1592) => q(byc),
- q(1593) => q(byd),
- q(1594) => q(bye),
- q(1595) => q(byf),
- q(1596) => q(byg),
- q(1597) => q(byh),
- q(1598) => q(byi),
- q(1599) => q(byj),
- q(1600) => q(byk),
- q(1601) => q(byl),
- q(1602) => q(bym),
- q(1603) => q(byo),
- q(1604) => q(byp),
- q(1605) => q(byq),
- q(1606) => q(byr),
- q(1607) => q(bys),
- q(1608) => q(byt),
- q(1609) => q(byv),
- q(1610) => q(byw),
- q(1611) => q(byx),
- q(1612) => q(byz),
- q(1613) => q(bza),
- q(1614) => q(bzb),
- q(1615) => q(bzc),
- q(1616) => q(bzd),
- q(1617) => q(bze),
- q(1618) => q(bzf),
- q(1619) => q(bzg),
- q(1620) => q(bzh),
- q(1621) => q(bzi),
- q(1622) => q(bzj),
- q(1623) => q(bzk),
- q(1624) => q(bzl),
- q(1625) => q(bzm),
- q(1626) => q(bzn),
- q(1627) => q(bzo),
- q(1628) => q(bzp),
- q(1629) => q(bzq),
- q(1630) => q(bzr),
- q(1631) => q(bzs),
- q(1632) => q(bzt),
- q(1633) => q(bzu),
- q(1634) => q(bzv),
- q(1635) => q(bzw),
- q(1636) => q(bzx),
- q(1637) => q(bzy),
- q(1638) => q(bzz),
- q(1639) => q(caa),
- q(1640) => q(cab),
- q(1641) => q(cac),
- q(1642) => q(cae),
- q(1643) => q(caf),
- q(1644) => q(cag),
- q(1645) => q(cah),
- q(1646) => q(caj),
- q(1647) => q(cak),
- q(1648) => q(cal),
- q(1649) => q(cam),
- q(1650) => q(can),
- q(1651) => q(cao),
- q(1652) => q(cap),
- q(1653) => q(caq),
- q(1654) => q(cas),
- q(1655) => q(cav),
- q(1656) => q(caw),
- q(1657) => q(cax),
- q(1658) => q(cay),
- q(1659) => q(caz),
- q(1660) => q(cbb),
- q(1661) => q(cbc),
- q(1662) => q(cbd),
- q(1663) => q(cbe),
- q(1664) => q(cbg),
- q(1665) => q(cbh),
- q(1666) => q(cbi),
- q(1667) => q(cbj),
- q(1668) => q(cbk),
- q(1669) => q(cbl),
- q(1670) => q(cbn),
- q(1671) => q(cbo),
- q(1672) => q(cbq),
- q(1673) => q(cbr),
- q(1674) => q(cbs),
- q(1675) => q(cbt),
- q(1676) => q(cbu),
- q(1677) => q(cbv),
- q(1678) => q(cbw),
- q(1679) => q(cby),
- q(1680) => q(cca),
- q(1681) => q(ccc),
- q(1682) => q(ccd),
- q(1683) => q(cce),
- q(1684) => q(ccg),
- q(1685) => q(cch),
- q(1686) => q(ccj),
- q(1687) => q(ccl),
- q(1688) => q(ccm),
- q(1689) => q(cco),
- q(1690) => q(ccp),
- q(1691) => q(ccr),
- q(1692) => q(cda),
- q(1693) => q(cde),
- q(1694) => q(cdf),
- q(1695) => q(cdg),
- q(1696) => q(cdh),
- q(1697) => q(cdi),
- q(1698) => q(cdj),
- q(1699) => q(cdm),
- q(1700) => q(cdn),
- q(1701) => q(cdo),
- q(1702) => q(cdr),
- q(1703) => q(cds),
- q(1704) => q(cdy),
- q(1705) => q(cdz),
- q(1706) => q(cea),
- q(1707) => q(ceg),
- q(1708) => q(cek),
- q(1709) => q(cen),
- q(1710) => q(cet),
- q(1711) => q(cfa),
- q(1712) => q(cfd),
- q(1713) => q(cfg),
- q(1714) => q(cfm),
- q(1715) => q(cga),
- q(1716) => q(cgc),
- q(1717) => q(cgg),
- q(1718) => q(cgk),
- q(1719) => q(chc),
- q(1720) => q(chd),
- q(1721) => q(chf),
- q(1722) => q(chh),
- q(1723) => q(chj),
- q(1724) => q(chl),
- q(1725) => q(chq),
- q(1726) => q(cht),
- q(1727) => q(chw),
- q(1728) => q(chx),
- q(1729) => q(chz),
- q(1730) => q(cia),
- q(1731) => q(cib),
- q(1732) => q(cic),
- q(1733) => q(cid),
- q(1734) => q(cie),
- q(1735) => q(cih),
- q(1736) => q(cik),
- q(1737) => q(cim),
- q(1738) => q(cin),
- q(1739) => q(cip),
- q(1740) => q(cir),
- q(1741) => q(ciw),
- q(1742) => q(ciy),
- q(1743) => q(cja),
- q(1744) => q(cje),
- q(1745) => q(cjh),
- q(1746) => q(cji),
- q(1747) => q(cjk),
- q(1748) => q(cjm),
- q(1749) => q(cjn),
- q(1750) => q(cjo),
- q(1751) => q(cjp),
- q(1752) => q(cjs),
- q(1753) => q(cjv),
- q(1754) => q(cjy),
- q(1755) => q(ckb),
- q(1756) => q(ckh),
- q(1757) => q(ckl),
- q(1758) => q(ckn),
- q(1759) => q(cko),
- q(1760) => q(ckq),
- q(1761) => q(ckr),
- q(1762) => q(cks),
- q(1763) => q(ckt),
- q(1764) => q(cku),
- q(1765) => q(ckv),
- q(1766) => q(ckx),
- q(1767) => q(cky),
- q(1768) => q(ckz),
- q(1769) => q(cla),
- q(1770) => q(clc),
- q(1771) => q(cld),
- q(1772) => q(cle),
- q(1773) => q(clh),
- q(1774) => q(cli),
- q(1775) => q(clj),
- q(1776) => q(clk),
- q(1777) => q(cll),
- q(1778) => q(clm),
- q(1779) => q(clo),
- q(1780) => q(clt),
- q(1781) => q(clu),
- q(1782) => q(clw),
- q(1783) => q(cly),
- q(1784) => q(cma),
- q(1785) => q(cme),
- q(1786) => q(cmg),
- q(1787) => q(cmi),
- q(1788) => q(cml),
- q(1789) => q(cmm),
- q(1790) => q(cmn),
- q(1791) => q(cmo),
- q(1792) => q(cmr),
- q(1793) => q(cms),
- q(1794) => q(cmt),
- q(1795) => q(cna),
- q(1796) => q(cnb),
- q(1797) => q(cnc),
- q(1798) => q(cng),
- q(1799) => q(cnh),
- q(1800) => q(cni),
- q(1801) => q(cnk),
- q(1802) => q(cnl),
- q(1803) => q(cno),
- q(1804) => q(cns),
- q(1805) => q(cnt),
- q(1806) => q(cnu),
- q(1807) => q(cnw),
- q(1808) => q(cnx),
- q(1809) => q(coa),
- q(1810) => q(cob),
- q(1811) => q(coc),
- q(1812) => q(cod),
- q(1813) => q(coe),
- q(1814) => q(cof),
- q(1815) => q(cog),
- q(1816) => q(coh),
- q(1817) => q(coj),
- q(1818) => q(cok),
- q(1819) => q(col),
- q(1820) => q(com),
- q(1821) => q(con),
- q(1822) => q(coo),
- q(1823) => q(coq),
- q(1824) => q(cot),
- q(1825) => q(cou),
- q(1826) => q(cov),
- q(1827) => q(cow),
- q(1828) => q(cox),
- q(1829) => q(coy),
- q(1830) => q(coz),
- q(1831) => q(cpa),
- q(1832) => q(cpb),
- q(1833) => q(cpc),
- q(1834) => q(cpg),
- q(1835) => q(cpi),
- q(1836) => q(cpn),
- q(1837) => q(cpo),
- q(1838) => q(cps),
- q(1839) => q(cpu),
- q(1840) => q(cpx),
- q(1841) => q(cpy),
- q(1842) => q(cqd),
- q(1843) => q(cqu),
- q(1844) => q(cra),
- q(1845) => q(crb),
- q(1846) => q(crc),
- q(1847) => q(crd),
- q(1848) => q(crf),
- q(1849) => q(crg),
- q(1850) => q(cri),
- q(1851) => q(crj),
- q(1852) => q(crk),
- q(1853) => q(crl),
- q(1854) => q(crm),
- q(1855) => q(crn),
- q(1856) => q(cro),
- q(1857) => q(crq),
- q(1858) => q(crr),
- q(1859) => q(crs),
- q(1860) => q(crt),
- q(1861) => q(crv),
- q(1862) => q(crw),
- q(1863) => q(crx),
- q(1864) => q(cry),
- q(1865) => q(crz),
- q(1866) => q(csa),
- q(1867) => q(csc),
- q(1868) => q(csd),
- q(1869) => q(cse),
- q(1870) => q(csf),
- q(1871) => q(csg),
- q(1872) => q(csh),
- q(1873) => q(csi),
- q(1874) => q(csj),
- q(1875) => q(csk),
- q(1876) => q(csl),
- q(1877) => q(csm),
- q(1878) => q(csn),
- q(1879) => q(cso),
- q(1880) => q(csq),
- q(1881) => q(csr),
- q(1882) => q(css),
- q(1883) => q(cst),
- q(1884) => q(csv),
- q(1885) => q(csw),
- q(1886) => q(csy),
- q(1887) => q(csz),
- q(1888) => q(cta),
- q(1889) => q(ctc),
- q(1890) => q(ctd),
- q(1891) => q(cte),
- q(1892) => q(ctg),
- q(1893) => q(cth),
- q(1894) => q(ctl),
- q(1895) => q(ctm),
- q(1896) => q(ctn),
- q(1897) => q(cto),
- q(1898) => q(ctp),
- q(1899) => q(cts),
- q(1900) => q(ctt),
- q(1901) => q(ctu),
- q(1902) => q(ctz),
- q(1903) => q(cua),
- q(1904) => q(cub),
- q(1905) => q(cuc),
- q(1906) => q(cug),
- q(1907) => q(cuh),
- q(1908) => q(cui),
- q(1909) => q(cuj),
- q(1910) => q(cuk),
- q(1911) => q(cul),
- q(1912) => q(cum),
- q(1913) => q(cuo),
- q(1914) => q(cup),
- q(1915) => q(cuq),
- q(1916) => q(cur),
- q(1917) => q(cut),
- q(1918) => q(cuu),
- q(1919) => q(cuv),
- q(1920) => q(cuw),
- q(1921) => q(cux),
- q(1922) => q(cvg),
- q(1923) => q(cvn),
- q(1924) => q(cwa),
- q(1925) => q(cwb),
- q(1926) => q(cwd),
- q(1927) => q(cwe),
- q(1928) => q(cwg),
- q(1929) => q(cwt),
- q(1930) => q(cya),
- q(1931) => q(cyb),
- q(1932) => q(cyo),
- q(1933) => q(czh),
- q(1934) => q(czk),
- q(1935) => q(czn),
- q(1936) => q(czo),
- q(1937) => q(czt),
- q(1938) => q(daa),
- q(1939) => q(dac),
- q(1940) => q(dad),
- q(1941) => q(dae),
- q(1942) => q(dag),
- q(1943) => q(dah),
- q(1944) => q(dai),
- q(1945) => q(daj),
- q(1946) => q(dal),
- q(1947) => q(dam),
- q(1948) => q(dao),
- q(1949) => q(daq),
- q(1950) => q(das),
- q(1951) => q(dau),
- q(1952) => q(dav),
- q(1953) => q(daw),
- q(1954) => q(dax),
- q(1955) => q(daz),
- q(1956) => q(dba),
- q(1957) => q(dbb),
- q(1958) => q(dbd),
- q(1959) => q(dbe),
- q(1960) => q(dbf),
- q(1961) => q(dbg),
- q(1962) => q(dbi),
- q(1963) => q(dbj),
- q(1964) => q(dbl),
- q(1965) => q(dbm),
- q(1966) => q(dbn),
- q(1967) => q(dbo),
- q(1968) => q(dbp),
- q(1969) => q(dbq),
- q(1970) => q(dbr),
- q(1971) => q(dbt),
- q(1972) => q(dbu),
- q(1973) => q(dbv),
- q(1974) => q(dbw),
- q(1975) => q(dby),
- q(1976) => q(dcc),
- q(1977) => q(dcr),
- q(1978) => q(dda),
- q(1979) => q(ddd),
- q(1980) => q(dde),
- q(1981) => q(ddg),
- q(1982) => q(ddi),
- q(1983) => q(ddj),
- q(1984) => q(ddn),
- q(1985) => q(ddo),
- q(1986) => q(ddr),
- q(1987) => q(dds),
- q(1988) => q(ddw),
- q(1989) => q(dec),
- q(1990) => q(ded),
- q(1991) => q(dee),
- q(1992) => q(def),
- q(1993) => q(deg),
- q(1994) => q(deh),
- q(1995) => q(dei),
- q(1996) => q(dek),
- q(1997) => q(dem),
- q(1998) => q(dep),
- q(1999) => q(deq),
- q(2000) => q(der),
- q(2001) => q(des),
- q(2002) => q(dev),
- q(2003) => q(dez),
- q(2004) => q(dga),
- q(2005) => q(dgb),
- q(2006) => q(dgc),
- q(2007) => q(dgd),
- q(2008) => q(dge),
- q(2009) => q(dgg),
- q(2010) => q(dgh),
- q(2011) => q(dgi),
- q(2012) => q(dgk),
- q(2013) => q(dgl),
- q(2014) => q(dgn),
- q(2015) => q(dgo),
- q(2016) => q(dgs),
- q(2017) => q(dgt),
- q(2018) => q(dgu),
- q(2019) => q(dgw),
- q(2020) => q(dgx),
- q(2021) => q(dgz),
- q(2022) => q(dhd),
- q(2023) => q(dhg),
- q(2024) => q(dhi),
- q(2025) => q(dhl),
- q(2026) => q(dhm),
- q(2027) => q(dhn),
- q(2028) => q(dho),
- q(2029) => q(dhr),
- q(2030) => q(dhs),
- q(2031) => q(dhu),
- q(2032) => q(dhv),
- q(2033) => q(dhw),
- q(2034) => q(dhx),
- q(2035) => q(dia),
- q(2036) => q(dib),
- q(2037) => q(dic),
- q(2038) => q(did),
- q(2039) => q(dif),
- q(2040) => q(dig),
- q(2041) => q(dih),
- q(2042) => q(dii),
- q(2043) => q(dij),
- q(2044) => q(dik),
- q(2045) => q(dil),
- q(2046) => q(dim),
- q(2047) => q(dio),
- q(2048) => q(dip),
- q(2049) => q(diq),
- q(2050) => q(dir),
- q(2051) => q(dis),
- q(2052) => q(dit),
- q(2053) => q(diu),
- q(2054) => q(diw),
- q(2055) => q(dix),
- q(2056) => q(diy),
- q(2057) => q(diz),
- q(2058) => q(dja),
- q(2059) => q(djb),
- q(2060) => q(djc),
- q(2061) => q(djd),
- q(2062) => q(dje),
- q(2063) => q(djf),
- q(2064) => q(dji),
- q(2065) => q(djj),
- q(2066) => q(djk),
- q(2067) => q(djm),
- q(2068) => q(djn),
- q(2069) => q(djo),
- q(2070) => q(djr),
- q(2071) => q(dju),
- q(2072) => q(djw),
- q(2073) => q(dka),
- q(2074) => q(dkk),
- q(2075) => q(dkr),
- q(2076) => q(dks),
- q(2077) => q(dkx),
- q(2078) => q(dlg),
- q(2079) => q(dlk),
- q(2080) => q(dlm),
- q(2081) => q(dln),
- q(2082) => q(dma),
- q(2083) => q(dmb),
- q(2084) => q(dmc),
- q(2085) => q(dmd),
- q(2086) => q(dme),
- q(2087) => q(dmg),
- q(2088) => q(dmk),
- q(2089) => q(dml),
- q(2090) => q(dmm),
- q(2091) => q(dmo),
- q(2092) => q(dmr),
- q(2093) => q(dms),
- q(2094) => q(dmu),
- q(2095) => q(dmv),
- q(2096) => q(dmw),
- q(2097) => q(dmx),
- q(2098) => q(dmy),
- q(2099) => q(dna),
- q(2100) => q(dnd),
- q(2101) => q(dne),
- q(2102) => q(dng),
- q(2103) => q(dni),
- q(2104) => q(dnj),
- q(2105) => q(dnk),
- q(2106) => q(dnn),
- q(2107) => q(dnr),
- q(2108) => q(dnt),
- q(2109) => q(dnu),
- q(2110) => q(dnv),
- q(2111) => q(dnw),
- q(2112) => q(dny),
- q(2113) => q(doa),
- q(2114) => q(dob),
- q(2115) => q(doc),
- q(2116) => q(doe),
- q(2117) => q(dof),
- q(2118) => q(doh),
- q(2119) => q(dok),
- q(2120) => q(dol),
- q(2121) => q(don),
- q(2122) => q(doo),
- q(2123) => q(dop),
- q(2124) => q(doq),
- q(2125) => q(dor),
- q(2126) => q(dos),
- q(2127) => q(dot),
- q(2128) => q(dov),
- q(2129) => q(dow),
- q(2130) => q(dox),
- q(2131) => q(doy),
- q(2132) => q(doz),
- q(2133) => q(dpp),
- q(2134) => q(drb),
- q(2135) => q(drc),
- q(2136) => q(drd),
- q(2137) => q(dre),
- q(2138) => q(drg),
- q(2139) => q(dri),
- q(2140) => q(drl),
- q(2141) => q(drn),
- q(2142) => q(dro),
- q(2143) => q(drq),
- q(2144) => q(drr),
- q(2145) => q(drs),
- q(2146) => q(drt),
- q(2147) => q(dru),
- q(2148) => q(dry),
- q(2149) => q(dse),
- q(2150) => q(dsh),
- q(2151) => q(dsi),
- q(2152) => q(dsl),
- q(2153) => q(dsn),
- q(2154) => q(dso),
- q(2155) => q(dsq),
- q(2156) => q(dta),
- q(2157) => q(dtb),
- q(2158) => q(dtd),
- q(2159) => q(dth),
- q(2160) => q(dti),
- q(2161) => q(dtk),
- q(2162) => q(dtm),
- q(2163) => q(dto),
- q(2164) => q(dtp),
- q(2165) => q(dtr),
- q(2166) => q(dts),
- q(2167) => q(dtt),
- q(2168) => q(dtu),
- q(2169) => q(dty),
- q(2170) => q(dub),
- q(2171) => q(duc),
- q(2172) => q(dud),
- q(2173) => q(due),
- q(2174) => q(duf),
- q(2175) => q(dug),
- q(2176) => q(duh),
- q(2177) => q(dui),
- q(2178) => q(duj),
- q(2179) => q(duk),
- q(2180) => q(dul),
- q(2181) => q(dun),
- q(2182) => q(duo),
- q(2183) => q(dup),
- q(2184) => q(duq),
- q(2185) => q(dur),
- q(2186) => q(dus),
- q(2187) => q(duu),
- q(2188) => q(duv),
- q(2189) => q(duw),
- q(2190) => q(dux),
- q(2191) => q(duy),
- q(2192) => q(duz),
- q(2193) => q(dva),
- q(2194) => q(dwa),
- q(2195) => q(dwr),
- q(2196) => q(dws),
- q(2197) => q(dww),
- q(2198) => q(dya),
- q(2199) => q(dyb),
- q(2200) => q(dyd),
- q(2201) => q(dyg),
- q(2202) => q(dyi),
- q(2203) => q(dym),
- q(2204) => q(dyn),
- q(2205) => q(dyo),
- q(2206) => q(dyy),
- q(2207) => q(dza),
- q(2208) => q(dze),
- q(2209) => q(dzg),
- q(2210) => q(dzl),
- q(2211) => q(dzn),
- q(2212) => q(eaa),
- q(2213) => q(ebg),
- q(2214) => q(ebk),
- q(2215) => q(ebo),
- q(2216) => q(ebr),
- q(2217) => q(ebu),
- q(2218) => q(ecr),
- q(2219) => q(ecs),
- q(2220) => q(ecy),
- q(2221) => q(eee),
- q(2222) => q(efa),
- q(2223) => q(efe),
- q(2224) => q(ega),
- q(2225) => q(egl),
- q(2226) => q(ego),
- q(2227) => q(ehu),
- q(2228) => q(eip),
- q(2229) => q(eit),
- q(2230) => q(eiv),
- q(2231) => q(eja),
- q(2232) => q(ekc),
- q(2233) => q(eke),
- q(2234) => q(ekg),
- q(2235) => q(eki),
- q(2236) => q(ekk),
- q(2237) => q(ekl),
- q(2238) => q(ekm),
- q(2239) => q(eko),
- q(2240) => q(ekp),
- q(2241) => q(ekr),
- q(2242) => q(eky),
- q(2243) => q(ele),
- q(2244) => q(elh),
- q(2245) => q(eli),
- q(2246) => q(elk),
- q(2247) => q(elm),
- q(2248) => q(elo),
- q(2249) => q(elu),
- q(2250) => q(ema),
- q(2251) => q(emb),
- q(2252) => q(eme),
- q(2253) => q(emg),
- q(2254) => q(emi),
- q(2255) => q(emk),
- q(2256) => q(emm),
- q(2257) => q(emn),
- q(2258) => q(emp),
- q(2259) => q(ems),
- q(2260) => q(emu),
- q(2261) => q(emw),
- q(2262) => q(emx),
- q(2263) => q(emy),
- q(2264) => q(ena),
- q(2265) => q(enb),
- q(2266) => q(enc),
- q(2267) => q(end),
- q(2268) => q(enf),
- q(2269) => q(enh),
- q(2270) => q(enl),
- q(2271) => q(enn),
- q(2272) => q(eno),
- q(2273) => q(enq),
- q(2274) => q(enr),
- q(2275) => q(enu),
- q(2276) => q(env),
- q(2277) => q(enw),
- q(2278) => q(enx),
- q(2279) => q(eot),
- q(2280) => q(epi),
- q(2281) => q(era),
- q(2282) => q(erg),
- q(2283) => q(erh),
- q(2284) => q(eri),
- q(2285) => q(erk),
- q(2286) => q(ero),
- q(2287) => q(err),
- q(2288) => q(ers),
- q(2289) => q(ert),
- q(2290) => q(erw),
- q(2291) => q(ese),
- q(2292) => q(esh),
- q(2293) => q(esi),
- q(2294) => q(esk),
- q(2295) => q(esl),
- q(2296) => q(esm),
- q(2297) => q(esn),
- q(2298) => q(eso),
- q(2299) => q(esq),
- q(2300) => q(ess),
- q(2301) => q(esu),
- q(2302) => q(esy),
- q(2303) => q(etb),
- q(2304) => q(etc),
- q(2305) => q(eth),
- q(2306) => q(etn),
- q(2307) => q(eto),
- q(2308) => q(etr),
- q(2309) => q(ets),
- q(2310) => q(ett),
- q(2311) => q(etu),
- q(2312) => q(etx),
- q(2313) => q(etz),
- q(2314) => q(eve),
- q(2315) => q(evh),
- q(2316) => q(evn),
- q(2317) => q(ext),
- q(2318) => q(eya),
- q(2319) => q(eyo),
- q(2320) => q(eza),
- q(2321) => q(eze),
- q(2322) => q(faa),
- q(2323) => q(fab),
- q(2324) => q(fad),
- q(2325) => q(faf),
- q(2326) => q(fag),
- q(2327) => q(fah),
- q(2328) => q(fai),
- q(2329) => q(faj),
- q(2330) => q(fak),
- q(2331) => q(fal),
- q(2332) => q(fam),
- q(2333) => q(fap),
- q(2334) => q(far),
- q(2335) => q(fau),
- q(2336) => q(fax),
- q(2337) => q(fay),
- q(2338) => q(faz),
- q(2339) => q(fbl),
- q(2340) => q(fcs),
- q(2341) => q(fer),
- q(2342) => q(ffi),
- q(2343) => q(ffm),
- q(2344) => q(fgr),
- q(2345) => q(fia),
- q(2346) => q(fie),
- q(2347) => q(fip),
- q(2348) => q(fir),
- q(2349) => q(fit),
- q(2350) => q(fiw),
- q(2351) => q(fkk),
- q(2352) => q(fkv),
- q(2353) => q(fla),
- q(2354) => q(flh),
- q(2355) => q(fli),
- q(2356) => q(fll),
- q(2357) => q(fln),
- q(2358) => q(flr),
- q(2359) => q(fly),
- q(2360) => q(fmp),
- q(2361) => q(fmu),
- q(2362) => q(fng),
- q(2363) => q(fni),
- q(2364) => q(fod),
- q(2365) => q(foi),
- q(2366) => q(fom),
- q(2367) => q(for),
- q(2368) => q(fos),
- q(2369) => q(fpe),
- q(2370) => q(fqs),
- q(2371) => q(frc),
- q(2372) => q(frd),
- q(2373) => q(frk),
- q(2374) => q(frp),
- q(2375) => q(frq),
- q(2376) => q(frt),
- q(2377) => q(fse),
- q(2378) => q(fsl),
- q(2379) => q(fss),
- q(2380) => q(fub),
- q(2381) => q(fuc),
- q(2382) => q(fud),
- q(2383) => q(fue),
- q(2384) => q(fuf),
- q(2385) => q(fuh),
- q(2386) => q(fui),
- q(2387) => q(fuj),
- q(2388) => q(fum),
- q(2389) => q(fun),
- q(2390) => q(fuq),
- q(2391) => q(fut),
- q(2392) => q(fuu),
- q(2393) => q(fuv),
- q(2394) => q(fuy),
- q(2395) => q(fvr),
- q(2396) => q(fwa),
- q(2397) => q(fwe),
- q(2398) => q(gab),
- q(2399) => q(gac),
- q(2400) => q(gad),
- q(2401) => q(gae),
- q(2402) => q(gaf),
- q(2403) => q(gag),
- q(2404) => q(gah),
- q(2405) => q(gai),
- q(2406) => q(gaj),
- q(2407) => q(gak),
- q(2408) => q(gal),
- q(2409) => q(gam),
- q(2410) => q(gan),
- q(2411) => q(gao),
- q(2412) => q(gap),
- q(2413) => q(gaq),
- q(2414) => q(gar),
- q(2415) => q(gas),
- q(2416) => q(gat),
- q(2417) => q(gau),
- q(2418) => q(gaw),
- q(2419) => q(gax),
- q(2420) => q(gaz),
- q(2421) => q(gbb),
- q(2422) => q(gbd),
- q(2423) => q(gbe),
- q(2424) => q(gbf),
- q(2425) => q(gbg),
- q(2426) => q(gbh),
- q(2427) => q(gbi),
- q(2428) => q(gbj),
- q(2429) => q(gbk),
- q(2430) => q(gbl),
- q(2431) => q(gbm),
- q(2432) => q(gbn),
- q(2433) => q(gbo),
- q(2434) => q(gbp),
- q(2435) => q(gbq),
- q(2436) => q(gbr),
- q(2437) => q(gbs),
- q(2438) => q(gbu),
- q(2439) => q(gbv),
- q(2440) => q(gbw),
- q(2441) => q(gbx),
- q(2442) => q(gby),
- q(2443) => q(gbz),
- q(2444) => q(gcc),
- q(2445) => q(gcd),
- q(2446) => q(gce),
- q(2447) => q(gcf),
- q(2448) => q(gcl),
- q(2449) => q(gcn),
- q(2450) => q(gcr),
- q(2451) => q(gct),
- q(2452) => q(gda),
- q(2453) => q(gdb),
- q(2454) => q(gdc),
- q(2455) => q(gdd),
- q(2456) => q(gde),
- q(2457) => q(gdf),
- q(2458) => q(gdg),
- q(2459) => q(gdh),
- q(2460) => q(gdi),
- q(2461) => q(gdj),
- q(2462) => q(gdk),
- q(2463) => q(gdl),
- q(2464) => q(gdm),
- q(2465) => q(gdn),
- q(2466) => q(gdo),
- q(2467) => q(gdq),
- q(2468) => q(gdr),
- q(2469) => q(gds),
- q(2470) => q(gdt),
- q(2471) => q(gdu),
- q(2472) => q(gdx),
- q(2473) => q(gea),
- q(2474) => q(geb),
- q(2475) => q(gec),
- q(2476) => q(ged),
- q(2477) => q(geg),
- q(2478) => q(geh),
- q(2479) => q(gei),
- q(2480) => q(gej),
- q(2481) => q(gek),
- q(2482) => q(gel),
- q(2483) => q(geq),
- q(2484) => q(ges),
- q(2485) => q(gev),
- q(2486) => q(gew),
- q(2487) => q(gex),
- q(2488) => q(gey),
- q(2489) => q(gfk),
- q(2490) => q(gft),
- q(2491) => q(gga),
- q(2492) => q(ggb),
- q(2493) => q(ggd),
- q(2494) => q(gge),
- q(2495) => q(ggg),
- q(2496) => q(ggk),
- q(2497) => q(ggl),
- q(2498) => q(ggn),
- q(2499) => q(ggo),
- q(2500) => q(ggt),
- q(2501) => q(ggu),
- q(2502) => q(ggw),
- q(2503) => q(gha),
- q(2504) => q(ghc),
- q(2505) => q(ghe),
- q(2506) => q(ghh),
- q(2507) => q(ghk),
- q(2508) => q(ghl),
- q(2509) => q(ghn),
- q(2510) => q(gho),
- q(2511) => q(ghr),
- q(2512) => q(ghs),
- q(2513) => q(ght),
- q(2514) => q(gia),
- q(2515) => q(gib),
- q(2516) => q(gic),
- q(2517) => q(gid),
- q(2518) => q(gig),
- q(2519) => q(gih),
- q(2520) => q(gim),
- q(2521) => q(gin),
- q(2522) => q(gip),
- q(2523) => q(giq),
- q(2524) => q(gir),
- q(2525) => q(gis),
- q(2526) => q(git),
- q(2527) => q(giu),
- q(2528) => q(giw),
- q(2529) => q(gix),
- q(2530) => q(giy),
- q(2531) => q(giz),
- q(2532) => q(gji),
- q(2533) => q(gjk),
- q(2534) => q(gjm),
- q(2535) => q(gjn),
- q(2536) => q(gju),
- q(2537) => q(gka),
- q(2538) => q(gke),
- q(2539) => q(gkn),
- q(2540) => q(gko),
- q(2541) => q(gkp),
- q(2542) => q(gku),
- q(2543) => q(glc),
- q(2544) => q(gld),
- q(2545) => q(glh),
- q(2546) => q(gli),
- q(2547) => q(glj),
- q(2548) => q(glk),
- q(2549) => q(gll),
- q(2550) => q(glo),
- q(2551) => q(glr),
- q(2552) => q(glu),
- q(2553) => q(glw),
- q(2554) => q(gly),
- q(2555) => q(gma),
- q(2556) => q(gmb),
- q(2557) => q(gmd),
- q(2558) => q(gmg),
- q(2559) => q(gml),
- q(2560) => q(gmm),
- q(2561) => q(gmn),
- q(2562) => q(gmu),
- q(2563) => q(gmv),
- q(2564) => q(gmx),
- q(2565) => q(gmy),
- q(2566) => q(gmz),
- q(2567) => q(gna),
- q(2568) => q(gnb),
- q(2569) => q(gnc),
- q(2570) => q(gnd),
- q(2571) => q(gne),
- q(2572) => q(gng),
- q(2573) => q(gnh),
- q(2574) => q(gni),
- q(2575) => q(gnq),
- q(2576) => q(gnl),
- q(2577) => q(gnm),
- q(2578) => q(gnn),
- q(2579) => q(gno),
- q(2580) => q(gnr),
- q(2581) => q(gnt),
- q(2582) => q(gnu),
- q(2583) => q(gnw),
- q(2584) => q(gnz),
- q(2585) => q(goa),
- q(2586) => q(gob),
- q(2587) => q(goc),
- q(2588) => q(god),
- q(2589) => q(goe),
- q(2590) => q(gof),
- q(2591) => q(gog),
- q(2592) => q(goi),
- q(2593) => q(goj),
- q(2594) => q(gok),
- q(2595) => q(gol),
- q(2596) => q(gom),
- q(2597) => q(goo),
- q(2598) => q(gop),
- q(2599) => q(goq),
- q(2600) => q(gos),
- q(2601) => q(gou),
- q(2602) => q(gow),
- q(2603) => q(gox),
- q(2604) => q(goy),
- q(2605) => q(goz),
- q(2606) => q(gpa),
- q(2607) => q(gpe),
- q(2608) => q(gpn),
- q(2609) => q(gqa),
- q(2610) => q(gqi),
- q(2611) => q(gqn),
- q(2612) => q(gqr),
- q(2613) => q(gqu),
- q(2614) => q(gra),
- q(2615) => q(grd),
- q(2616) => q(grg),
- q(2617) => q(grh),
- q(2618) => q(gri),
- q(2619) => q(grj),
- q(2620) => q(grm),
- q(2621) => q(gro),
- q(2622) => q(grq),
- q(2623) => q(grr),
- q(2624) => q(grs),
- q(2625) => q(grt),
- q(2626) => q(gru),
- q(2627) => q(grv),
- q(2628) => q(grw),
- q(2629) => q(grx),
- q(2630) => q(gry),
- q(2631) => q(grz),
- q(2632) => q(gse),
- q(2633) => q(gsg),
- q(2634) => q(gsl),
- q(2635) => q(gsm),
- q(2636) => q(gsn),
- q(2637) => q(gso),
- q(2638) => q(gsp),
- q(2639) => q(gss),
- q(2640) => q(gta),
- q(2641) => q(gtu),
- q(2642) => q(gua),
- q(2643) => q(gub),
- q(2644) => q(guc),
- q(2645) => q(gud),
- q(2646) => q(gue),
- q(2647) => q(guf),
- q(2648) => q(gug),
- q(2649) => q(guh),
- q(2650) => q(gui),
- q(2651) => q(guk),
- q(2652) => q(gul),
- q(2653) => q(gum),
- q(2654) => q(gun),
- q(2655) => q(guo),
- q(2656) => q(gup),
- q(2657) => q(yif),
- q(2658) => q(gur),
- q(2659) => q(gus),
- q(2660) => q(gut),
- q(2661) => q(guu),
- q(2662) => q(guv),
- q(2663) => q(guw),
- q(2664) => q(gux),
- q(2665) => q(guz),
- q(2666) => q(gva),
- q(2667) => q(gvc),
- q(2668) => q(gve),
- q(2669) => q(gvf),
- q(2670) => q(gvj),
- q(2671) => q(gvl),
- q(2672) => q(gvm),
- q(2673) => q(gvn),
- q(2674) => q(gvo),
- q(2675) => q(gvp),
- q(2676) => q(gvr),
- q(2677) => q(gvs),
- q(2678) => q(gvy),
- q(2679) => q(gwa),
- q(2680) => q(gwb),
- q(2681) => q(gwc),
- q(2682) => q(gwd),
- q(2683) => q(gwe),
- q(2684) => q(gwf),
- q(2685) => q(gwg),
- q(2686) => q(gwj),
- q(2687) => q(gwm),
- q(2688) => q(gwn),
- q(2689) => q(gwr),
- q(2690) => q(gwt),
- q(2691) => q(gwu),
- q(2692) => q(gww),
- q(2693) => q(gwx),
- q(2694) => q(gxx),
- q(2695) => q(gya),
- q(2696) => q(gyb),
- q(2697) => q(gyd),
- q(2698) => q(gye),
- q(2699) => q(gyf),
- q(2700) => q(gyg),
- q(2701) => q(gyi),
- q(2702) => q(gyl),
- q(2703) => q(gym),
- q(2704) => q(gyn),
- q(2705) => q(gyr),
- q(2706) => q(gyy),
- q(2707) => q(gza),
- q(2708) => q(gzi),
- q(2709) => q(gzn),
- q(2710) => q(haa),
- q(2711) => q(hab),
- q(2712) => q(hac),
- q(2713) => q(had),
- q(2714) => q(hae),
- q(2715) => q(haf),
- q(2716) => q(hag),
- q(2717) => q(hah),
- q(2718) => q(haj),
- q(2719) => q(hak),
- q(2720) => q(hal),
- q(2721) => q(ham),
- q(2722) => q(han),
- q(2723) => q(hao),
- q(2724) => q(hap),
- q(2725) => q(haq),
- q(2726) => q(har),
- q(2727) => q(has),
- q(2728) => q(hav),
- q(2729) => q(hax),
- q(2730) => q(hay),
- q(2731) => q(haz),
- q(2732) => q(hba),
- q(2733) => q(hbb),
- q(2734) => q(hbn),
- q(2735) => q(hbo),
- q(2736) => q(hbu),
- q(2737) => q(hca),
- q(2738) => q(hch),
- q(2739) => q(hdn),
- q(2740) => q(hds),
- q(2741) => q(hdy),
- q(2742) => q(hea),
- q(2743) => q(hed),
- q(2744) => q(heg),
- q(2745) => q(heh),
- q(2746) => q(hei),
- q(2747) => q(hem),
- q(2748) => q(hgm),
- q(2749) => q(hgw),
- q(2750) => q(hhi),
- q(2751) => q(hhr),
- q(2752) => q(hhy),
- q(2753) => q(hia),
- q(2754) => q(hib),
- q(2755) => q(hid),
- q(2756) => q(hif),
- q(2757) => q(hig),
- q(2758) => q(hih),
- q(2759) => q(hii),
- q(2760) => q(hij),
- q(2761) => q(hik),
- q(2762) => q(hio),
- q(2763) => q(hir),
- q(2764) => q(hiw),
- q(2765) => q(hix),
- q(2766) => q(hji),
- q(2767) => q(hka),
- q(2768) => q(hke),
- q(2769) => q(hkk),
- q(2770) => q(hks),
- q(2771) => q(hla),
- q(2772) => q(hlb),
- q(2773) => q(hld),
- q(2774) => q(hle),
- q(2775) => q(hlt),
- q(2776) => q(hlu),
- q(2777) => q(hma),
- q(2778) => q(hmb),
- q(2779) => q(hmc),
- q(2780) => q(hmd),
- q(2781) => q(hme),
- q(2782) => q(hmf),
- q(2783) => q(hmg),
- q(2784) => q(hmh),
- q(2785) => q(hmi),
- q(2786) => q(hmj),
- q(2787) => q(hmk),
- q(2788) => q(hml),
- q(2789) => q(hmm),
- q(2790) => q(hmp),
- q(2791) => q(hmq),
- q(2792) => q(hmr),
- q(2793) => q(hms),
- q(2794) => q(hmt),
- q(2795) => q(hmu),
- q(2796) => q(hmv),
- q(2797) => q(hmw),
- q(2798) => q(hmy),
- q(2799) => q(hmz),
- q(2800) => q(hna),
- q(2801) => q(hnd),
- q(2802) => q(hne),
- q(2803) => q(hnh),
- q(2804) => q(hni),
- q(2805) => q(hnj),
- q(2806) => q(hnn),
- q(2807) => q(hno),
- q(2808) => q(hns),
- q(2809) => q(hnu),
- q(2810) => q(hoa),
- q(2811) => q(hob),
- q(2812) => q(hoc),
- q(2813) => q(hod),
- q(2814) => q(hoe),
- q(2815) => q(hoh),
- q(2816) => q(hoi),
- q(2817) => q(hoj),
- q(2818) => q(hol),
- q(2819) => q(hom),
- q(2820) => q(hoo),
- q(2821) => q(hop),
- q(2822) => q(hor),
- q(2823) => q(hos),
- q(2824) => q(hot),
- q(2825) => q(hov),
- q(2826) => q(how),
- q(2827) => q(hoy),
- q(2828) => q(hoz),
- q(2829) => q(hpo),
- q(2830) => q(hps),
- q(2831) => q(hra),
- q(2832) => q(hrc),
- q(2833) => q(hre),
- q(2834) => q(hrk),
- q(2835) => q(hrm),
- q(2836) => q(hro),
- q(2837) => q(hrp),
- q(2838) => q(hrt),
- q(2839) => q(hru),
- q(2840) => q(hrw),
- q(2841) => q(hrx),
- q(2842) => q(hrz),
- q(2843) => q(hsh),
- q(2844) => q(hsl),
- q(2845) => q(hsn),
- q(2846) => q(hss),
- q(2847) => q(hti),
- q(2848) => q(hto),
- q(2849) => q(hts),
- q(2850) => q(htu),
- q(2851) => q(htx),
- q(2852) => q(hub),
- q(2853) => q(huc),
- q(2854) => q(hud),
- q(2855) => q(hue),
- q(2856) => q(huf),
- q(2857) => q(hug),
- q(2858) => q(huh),
- q(2859) => q(hui),
- q(2860) => q(huj),
- q(2861) => q(huk),
- q(2862) => q(hul),
- q(2863) => q(hum),
- q(2864) => q(huo),
- q(2865) => q(huq),
- q(2866) => q(hur),
- q(2867) => q(hus),
- q(2868) => q(hut),
- q(2869) => q(huu),
- q(2870) => q(huv),
- q(2871) => q(huw),
- q(2872) => q(hux),
- q(2873) => q(huy),
- q(2874) => q(huz),
- q(2875) => q(hvc),
- q(2876) => q(hve),
- q(2877) => q(hvk),
- q(2878) => q(hvn),
- q(2879) => q(hvv),
- q(2880) => q(hwa),
- q(2881) => q(hwc),
- q(2882) => q(hwo),
- q(2883) => q(hya),
- q(2884) => q(iai),
- q(2885) => q(ian),
- q(2886) => q(iap),
- q(2887) => q(iar),
- q(2888) => q(ibb),
- q(2889) => q(ibd),
- q(2890) => q(ibe),
- q(2891) => q(ibg),
- q(2892) => q(ibl),
- q(2893) => q(ibm),
- q(2894) => q(ibn),
- q(2895) => q(ibr),
- q(2896) => q(ibu),
- q(2897) => q(iby),
- q(2898) => q(ica),
- q(2899) => q(ich),
- q(2900) => q(icl),
- q(2901) => q(icr),
- q(2902) => q(ida),
- q(2903) => q(idb),
- q(2904) => q(idc),
- q(2905) => q(idd),
- q(2906) => q(ide),
- q(2907) => q(idi),
- q(2908) => q(idr),
- q(2909) => q(ids),
- q(2910) => q(idt),
- q(2911) => q(idu),
- q(2912) => q(ifa),
- q(2913) => q(ifb),
- q(2914) => q(ife),
- q(2915) => q(iff),
- q(2916) => q(ifk),
- q(2917) => q(ifm),
- q(2918) => q(ifu),
- q(2919) => q(ify),
- q(2920) => q(igb),
- q(2921) => q(ige),
- q(2922) => q(igg),
- q(2923) => q(igl),
- q(2924) => q(igm),
- q(2925) => q(ign),
- q(2926) => q(igo),
- q(2927) => q(igs),
- q(2928) => q(igw),
- q(2929) => q(ihb),
- q(2930) => q(ihi),
- q(2931) => q(ihp),
- q(2932) => q(ihw),
- q(2933) => q(iin),
- q(2934) => q(ijc),
- q(2935) => q(ije),
- q(2936) => q(ijj),
- q(2937) => q(ijn),
- q(2938) => q(ijs),
- q(2939) => q(ike),
- q(2940) => q(iki),
- q(2941) => q(ikk),
- q(2942) => q(ikl),
- q(2943) => q(iko),
- q(2944) => q(ikp),
- q(2945) => q(ikr),
- q(2946) => q(iks),
- q(2947) => q(ikt),
- q(2948) => q(ikv),
- q(2949) => q(ikw),
- q(2950) => q(ikx),
- q(2951) => q(ikz),
- q(2952) => q(ila),
- q(2953) => q(ilb),
- q(2954) => q(ilg),
- q(2955) => q(ili),
- q(2956) => q(ilk),
- q(2957) => q(ill),
- q(2958) => q(ils),
- q(2959) => q(ilu),
- q(2960) => q(ilv),
- q(2961) => q(ima),
- q(2962) => q(imi),
- q(2963) => q(iml),
- q(2964) => q(imn),
- q(2965) => q(imo),
- q(2966) => q(imr),
- q(2967) => q(ims),
- q(2968) => q(imy),
- q(2969) => q(inb),
- q(2970) => q(ing),
- q(2971) => q(inj),
- q(2972) => q(inl),
- q(2973) => q(inm),
- q(2974) => q(inn),
- q(2975) => q(ino),
- q(2976) => q(inp),
- q(2977) => q(ins),
- q(2978) => q(int),
- q(2979) => q(inz),
- q(2980) => q(ior),
- q(2981) => q(iou),
- q(2982) => q(iow),
- q(2983) => q(ipi),
- q(2984) => q(ipo),
- q(2985) => q(iqu),
- q(2986) => q(iqw),
- q(2987) => q(ire),
- q(2988) => q(irh),
- q(2989) => q(iri),
- q(2990) => q(irk),
- q(2991) => q(irn),
- q(2992) => q(irr),
- q(2993) => q(iru),
- q(2994) => q(irx),
- q(2995) => q(iry),
- q(2996) => q(isa),
- q(2997) => q(isc),
- q(2998) => q(isd),
- q(2999) => q(ise),
- q(3000) => q(isg),
- q(3001) => q(ish),
- q(3002) => q(isi),
- q(3003) => q(isk),
- q(3004) => q(ism),
- q(3005) => q(isn),
- q(3006) => q(iso),
- q(3007) => q(isr),
- q(3008) => q(ist),
- q(3009) => q(isu),
- q(3010) => q(itb),
- q(3011) => q(ite),
- q(3012) => q(iti),
- q(3013) => q(itk),
- q(3014) => q(itl),
- q(3015) => q(itm),
- q(3016) => q(ito),
- q(3017) => q(itr),
- q(3018) => q(its),
- q(3019) => q(itt),
- q(3020) => q(itv),
- q(3021) => q(itw),
- q(3022) => q(itx),
- q(3023) => q(ity),
- q(3024) => q(itz),
- q(3025) => q(ium),
- q(3026) => q(ivb),
- q(3027) => q(ivv),
- q(3028) => q(iwk),
- q(3029) => q(iwm),
- q(3030) => q(iwo),
- q(3031) => q(iws),
- q(3032) => q(ixc),
- q(3033) => q(ixl),
- q(3034) => q(iya),
- q(3035) => q(iyo),
- q(3036) => q(iyx),
- q(3037) => q(izh),
- q(3038) => q(izr),
- q(3039) => q(izz),
- q(3040) => q(jaa),
- q(3041) => q(jab),
- q(3042) => q(jac),
- q(3043) => q(jad),
- q(3044) => q(jae),
- q(3045) => q(jaf),
- q(3046) => q(jah),
- q(3047) => q(jaj),
- q(3048) => q(jak),
- q(3049) => q(jal),
- q(3050) => q(jam),
- q(3051) => q(jan),
- q(3052) => q(jao),
- q(3053) => q(jaq),
- q(3054) => q(jas),
- q(3055) => q(jat),
- q(3056) => q(jau),
- q(3057) => q(jax),
- q(3058) => q(jay),
- q(3059) => q(jaz),
- q(3060) => q(jbe),
- q(3061) => q(jbi),
- q(3062) => q(jbj),
- q(3063) => q(jbk),
- q(3064) => q(jbn),
- q(3065) => q(jbr),
- q(3066) => q(jbt),
- q(3067) => q(jbu),
- q(3068) => q(jbw),
- q(3069) => q(jcs),
- q(3070) => q(jct),
- q(3071) => q(jda),
- q(3072) => q(jdg),
- q(3073) => q(jdt),
- q(3074) => q(jeb),
- q(3075) => q(jee),
- q(3076) => q(jeg),
- q(3077) => q(jeh),
- q(3078) => q(jei),
- q(3079) => q(jek),
- q(3080) => q(jel),
- q(3081) => q(jen),
- q(3082) => q(jer),
- q(3083) => q(jet),
- q(3084) => q(jeu),
- q(3085) => q(jgb),
- q(3086) => q(jge),
- q(3087) => q(jgk),
- q(3088) => q(jgo),
- q(3089) => q(jhi),
- q(3090) => q(jhs),
- q(3091) => q(jia),
- q(3092) => q(jib),
- q(3093) => q(jic),
- q(3094) => q(jid),
- q(3095) => q(jie),
- q(3096) => q(jig),
- q(3097) => q(jih),
- q(3098) => q(jii),
- q(3099) => q(jil),
- q(3100) => q(jim),
- q(3101) => q(jio),
- q(3102) => q(jiq),
- q(3103) => q(jit),
- q(3104) => q(jiu),
- q(3105) => q(jiv),
- q(3106) => q(jiy),
- q(3107) => q(jje),
- q(3108) => q(jjr),
- q(3109) => q(jkm),
- q(3110) => q(jko),
- q(3111) => q(jkp),
- q(3112) => q(jkr),
- q(3113) => q(jku),
- q(3114) => q(jle),
- q(3115) => q(jls),
- q(3116) => q(jma),
- q(3117) => q(jmb),
- q(3118) => q(jmc),
- q(3119) => q(jmd),
- q(3120) => q(jmi),
- q(3121) => q(jml),
- q(3122) => q(jmn),
- q(3123) => q(jmr),
- q(3124) => q(jms),
- q(3125) => q(jmw),
- q(3126) => q(jmx),
- q(3127) => q(jna),
- q(3128) => q(jnd),
- q(3129) => q(jng),
- q(3130) => q(jni),
- q(3131) => q(jnj),
- q(3132) => q(jnl),
- q(3133) => q(jns),
- q(3134) => q(job),
- q(3135) => q(jod),
- q(3136) => q(jog),
- q(3137) => q(jor),
- q(3138) => q(jos),
- q(3139) => q(jow),
- q(3140) => q(jpa),
- q(3141) => q(jqr),
- q(3142) => q(jra),
- q(3143) => q(jrr),
- q(3144) => q(jrt),
- q(3145) => q(jru),
- q(3146) => q(jsl),
- q(3147) => q(jua),
- q(3148) => q(jub),
- q(3149) => q(juc),
- q(3150) => q(jud),
- q(3151) => q(juh),
- q(3152) => q(jui),
- q(3153) => q(juk),
- q(3154) => q(jul),
- q(3155) => q(jum),
- q(3156) => q(jun),
- q(3157) => q(juo),
- q(3158) => q(jup),
- q(3159) => q(jur),
- q(3160) => q(jus),
- q(3161) => q(jut),
- q(3162) => q(juu),
- q(3163) => q(juw),
- q(3164) => q(juy),
- q(3165) => q(jvd),
- q(3166) => q(jvn),
- q(3167) => q(jwi),
- q(3168) => q(jya),
- q(3169) => q(jye),
- q(3170) => q(jyy),
- q(3171) => q(kad),
- q(3172) => q(kae),
- q(3173) => q(kaf),
- q(3174) => q(kag),
- q(3175) => q(kah),
- q(3176) => q(kai),
- q(3177) => q(kaj),
- q(3178) => q(kak),
- q(3179) => q(kao),
- q(3180) => q(kap),
- q(3181) => q(kaq),
- q(3182) => q(kav),
- q(3183) => q(kax),
- q(3184) => q(kay),
- q(3185) => q(kba),
- q(3186) => q(kbb),
- q(3187) => q(kbc),
- q(3188) => q(kbe),
- q(3189) => q(kbg),
- q(3190) => q(kbh),
- q(3191) => q(kbi),
- q(3192) => q(kbj),
- q(3193) => q(kbk),
- q(3194) => q(kbl),
- q(3195) => q(kbm),
- q(3196) => q(kbn),
- q(3197) => q(kbo),
- q(3198) => q(kbp),
- q(3199) => q(kbq),
- q(3200) => q(kbr),
- q(3201) => q(kbs),
- q(3202) => q(kbt),
- q(3203) => q(kbu),
- q(3204) => q(kbv),
- q(3205) => q(kbw),
- q(3206) => q(kbx),
- q(3207) => q(kby),
- q(3208) => q(kbz),
- q(3209) => q(kca),
- q(3210) => q(kcb),
- q(3211) => q(kcc),
- q(3212) => q(kcd),
- q(3213) => q(kce),
- q(3214) => q(kcf),
- q(3215) => q(kcg),
- q(3216) => q(kch),
- q(3217) => q(kci),
- q(3218) => q(kcj),
- q(3219) => q(kck),
- q(3220) => q(kcl),
- q(3221) => q(kcm),
- q(3222) => q(kcn),
- q(3223) => q(kco),
- q(3224) => q(kcp),
- q(3225) => q(kcq),
- q(3226) => q(kcr),
- q(3227) => q(kcs),
- q(3228) => q(kct),
- q(3229) => q(kcu),
- q(3230) => q(kcv),
- q(3231) => q(kcw),
- q(3232) => q(kcx),
- q(3233) => q(kcy),
- q(3234) => q(kcz),
- q(3235) => q(kda),
- q(3236) => q(kdc),
- q(3237) => q(kdd),
- q(3238) => q(kde),
- q(3239) => q(kdf),
- q(3240) => q(kdg),
- q(3241) => q(kdh),
- q(3242) => q(kdi),
- q(3243) => q(kdj),
- q(3244) => q(kdk),
- q(3245) => q(kdl),
- q(3246) => q(kdm),
- q(3247) => q(kdn),
- q(3248) => q(kdp),
- q(3249) => q(kdq),
- q(3250) => q(kdr),
- q(3251) => q(kdt),
- q(3252) => q(kdu),
- q(3253) => q(kdw),
- q(3254) => q(kdx),
- q(3255) => q(kdy),
- q(3256) => q(kdz),
- q(3257) => q(kea),
- q(3258) => q(keb),
- q(3259) => q(kec),
- q(3260) => q(ked),
- q(3261) => q(kee),
- q(3262) => q(kef),
- q(3263) => q(keg),
- q(3264) => q(keh),
- q(3265) => q(kei),
- q(3266) => q(kej),
- q(3267) => q(kek),
- q(3268) => q(kel),
- q(3269) => q(kem),
- q(3270) => q(ken),
- q(3271) => q(keo),
- q(3272) => q(kep),
- q(3273) => q(keq),
- q(3274) => q(ker),
- q(3275) => q(kes),
- q(3276) => q(ket),
- q(3277) => q(keu),
- q(3278) => q(kev),
- q(3279) => q(kew),
- q(3280) => q(kex),
- q(3281) => q(key),
- q(3282) => q(kez),
- q(3283) => q(kfa),
- q(3284) => q(kfb),
- q(3285) => q(kfc),
- q(3286) => q(kfd),
- q(3287) => q(kfe),
- q(3288) => q(kff),
- q(3289) => q(kfg),
- q(3290) => q(kfh),
- q(3291) => q(kfi),
- q(3292) => q(kfj),
- q(3293) => q(kfk),
- q(3294) => q(kfl),
- q(3295) => q(kfm),
- q(3296) => q(kfn),
- q(3297) => q(kfo),
- q(3298) => q(kfp),
- q(3299) => q(kfq),
- q(3300) => q(kfr),
- q(3301) => q(kfs),
- q(3302) => q(kft),
- q(3303) => q(kfu),
- q(3304) => q(kfv),
- q(3305) => q(kfw),
- q(3306) => q(kfx),
- q(3307) => q(kfy),
- q(3308) => q(kfz),
- q(3309) => q(kga),
- q(3310) => q(kgb),
- q(3311) => q(kgc),
- q(3312) => q(kgd),
- q(3313) => q(kge),
- q(3314) => q(kgf),
- q(3315) => q(kgg),
- q(3316) => q(kgi),
- q(3317) => q(kgj),
- q(3318) => q(kgk),
- q(3319) => q(kgl),
- q(3320) => q(kuq),
- q(3321) => q(kgn),
- q(3322) => q(kgo),
- q(3323) => q(kgp),
- q(3324) => q(kgq),
- q(3325) => q(kgr),
- q(3326) => q(kgs),
- q(3327) => q(kgt),
- q(3328) => q(kgu),
- q(3329) => q(kgv),
- q(3330) => q(kgw),
- q(3331) => q(kgx),
- q(3332) => q(kgy),
- q(3333) => q(khb),
- q(3334) => q(khc),
- q(3335) => q(khd),
- q(3336) => q(khe),
- q(3337) => q(khf),
- q(3338) => q(khg),
- q(3339) => q(khh),
- q(3340) => q(khj),
- q(3341) => q(khk),
- q(3342) => q(khl),
- q(3343) => q(khn),
- q(3344) => q(khp),
- q(3345) => q(khq),
- q(3346) => q(khr),
- q(3347) => q(khs),
- q(3348) => q(kht),
- q(3349) => q(khu),
- q(3350) => q(khv),
- q(3351) => q(khw),
- q(3352) => q(khx),
- q(3353) => q(khy),
- q(3354) => q(khz),
- q(3355) => q(kia),
- q(3356) => q(kib),
- q(3357) => q(kic),
- q(3358) => q(kid),
- q(3359) => q(kie),
- q(3360) => q(kif),
- q(3361) => q(kig),
- q(3362) => q(kih),
- q(3363) => q(kii),
- q(3364) => q(kij),
- q(3365) => q(kil),
- q(3366) => q(kim),
- q(3367) => q(kio),
- q(3368) => q(kip),
- q(3369) => q(kiq),
- q(3370) => q(kis),
- q(3371) => q(kit),
- q(3372) => q(kiu),
- q(3373) => q(kiv),
- q(3374) => q(kiw),
- q(3375) => q(kix),
- q(3376) => q(kiy),
- q(3377) => q(kiz),
- q(3378) => q(kja),
- q(3379) => q(kjb),
- q(3380) => q(kjc),
- q(3381) => q(kjd),
- q(3382) => q(kje),
- q(3383) => q(kjf),
- q(3384) => q(kjg),
- q(3385) => q(kjh),
- q(3386) => q(kji),
- q(3387) => q(kjj),
- q(3388) => q(kjk),
- q(3389) => q(kjl),
- q(3390) => q(kjm),
- q(3391) => q(kjn),
- q(3392) => q(kjo),
- q(3393) => q(kjp),
- q(3394) => q(kjq),
- q(3395) => q(kjr),
- q(3396) => q(kjs),
- q(3397) => q(kjt),
- q(3398) => q(kju),
- q(3399) => q(kjv),
- q(3400) => q(kjx),
- q(3401) => q(kjy),
- q(3402) => q(kjz),
- q(3403) => q(kka),
- q(3404) => q(kkb),
- q(3405) => q(kkc),
- q(3406) => q(kkd),
- q(3407) => q(kke),
- q(3408) => q(kkf),
- q(3409) => q(kkg),
- q(3410) => q(kkh),
- q(3411) => q(kki),
- q(3412) => q(kkj),
- q(3413) => q(kkk),
- q(3414) => q(kkl),
- q(3415) => q(kkm),
- q(3416) => q(kkn),
- q(3417) => q(kko),
- q(3418) => q(kkp),
- q(3419) => q(kkq),
- q(3420) => q(kkr),
- q(3421) => q(kks),
- q(3422) => q(kkt),
- q(3423) => q(kku),
- q(3424) => q(kkv),
- q(3425) => q(kkw),
- q(3426) => q(kkx),
- q(3427) => q(kky),
- q(3428) => q(kkz),
- q(3429) => q(kla),
- q(3430) => q(klb),
- q(3431) => q(klc),
- q(3432) => q(kld),
- q(3433) => q(kle),
- q(3434) => q(klf),
- q(3435) => q(klg),
- q(3436) => q(klh),
- q(3437) => q(kli),
- q(3438) => q(klj),
- q(3439) => q(klk),
- q(3440) => q(kll),
- q(3441) => q(klm),
- q(3442) => q(kln),
- q(3443) => q(klo),
- q(3444) => q(klp),
- q(3445) => q(klq),
- q(3446) => q(klr),
- q(3447) => q(kls),
- q(3448) => q(klt),
- q(3449) => q(klu),
- q(3450) => q(klv),
- q(3451) => q(klw),
- q(3452) => q(klx),
- q(3453) => q(kly),
- q(3454) => q(klz),
- q(3455) => q(kma),
- q(3456) => q(kmc),
- q(3457) => q(kmd),
- q(3458) => q(kme),
- q(3459) => q(kmf),
- q(3460) => q(kmg),
- q(3461) => q(kmh),
- q(3462) => q(kmi),
- q(3463) => q(kmj),
- q(3464) => q(kmk),
- q(3465) => q(kml),
- q(3466) => q(kmm),
- q(3467) => q(kmn),
- q(3468) => q(kmo),
- q(3469) => q(kmp),
- q(3470) => q(kmq),
- q(3471) => q(kmr),
- q(3472) => q(kms),
- q(3473) => q(kmt),
- q(3474) => q(kmu),
- q(3475) => q(kmv),
- q(3476) => q(kmw),
- q(3477) => q(kmx),
- q(3478) => q(kmy),
- q(3479) => q(kmz),
- q(3480) => q(kna),
- q(3481) => q(knb),
- q(3482) => q(knc),
- q(3483) => q(knd),
- q(3484) => q(kne),
- q(3485) => q(knf),
- q(3486) => q(kng),
- q(3487) => q(kni),
- q(3488) => q(knj),
- q(3489) => q(knk),
- q(3490) => q(knl),
- q(3491) => q(knm),
- q(3492) => q(knn),
- q(3493) => q(kno),
- q(3494) => q(knp),
- q(3495) => q(knq),
- q(3496) => q(knr),
- q(3497) => q(kns),
- q(3498) => q(knt),
- q(3499) => q(knu),
- q(3500) => q(knv),
- q(3501) => q(knw),
- q(3502) => q(knx),
- q(3503) => q(kny),
- q(3504) => q(knz),
- q(3505) => q(koa),
- q(3506) => q(koc),
- q(3507) => q(kod),
- q(3508) => q(koe),
- q(3509) => q(kof),
- q(3510) => q(kog),
- q(3511) => q(koh),
- q(3512) => q(koi),
- q(3513) => q(kol),
- q(3514) => q(koo),
- q(3515) => q(kop),
- q(3516) => q(koq),
- q(3517) => q(kot),
- q(3518) => q(kou),
- q(3519) => q(kov),
- q(3520) => q(kow),
- q(3521) => q(kox),
- q(3522) => q(koy),
- q(3523) => q(koz),
- q(3524) => q(kpa),
- q(3525) => q(kpb),
- q(3526) => q(kpc),
- q(3527) => q(kpd),
- q(3528) => q(kpf),
- q(3529) => q(kpg),
- q(3530) => q(kph),
- q(3531) => q(kpi),
- q(3532) => q(kpj),
- q(3533) => q(kpk),
- q(3534) => q(kpl),
- q(3535) => q(kpm),
- q(3536) => q(kpn),
- q(3537) => q(kpo),
- q(3538) => q(kpq),
- q(3539) => q(kpr),
- q(3540) => q(kps),
- q(3541) => q(kpt),
- q(3542) => q(kpu),
- q(3543) => q(kpv),
- q(3544) => q(kpw),
- q(3545) => q(kpx),
- q(3546) => q(kpy),
- q(3547) => q(kpz),
- q(3548) => q(kqa),
- q(3549) => q(kqb),
- q(3550) => q(kqc),
- q(3551) => q(kqd),
- q(3552) => q(kqe),
- q(3553) => q(kqf),
- q(3554) => q(kqg),
- q(3555) => q(kqh),
- q(3556) => q(kqi),
- q(3557) => q(kqj),
- q(3558) => q(kqk),
- q(3559) => q(kql),
- q(3560) => q(kqm),
- q(3561) => q(kqn),
- q(3562) => q(kqo),
- q(3563) => q(kqp),
- q(3564) => q(kqq),
- q(3565) => q(kqr),
- q(3566) => q(kqs),
- q(3567) => q(kqt),
- q(3568) => q(kqu),
- q(3569) => q(kqv),
- q(3570) => q(kqw),
- q(3571) => q(kqx),
- q(3572) => q(kqy),
- q(3573) => q(kqz),
- q(3574) => q(kra),
- q(3575) => q(krb),
- q(3576) => q(krd),
- q(3577) => q(kre),
- q(3578) => q(krf),
- q(3579) => q(krh),
- q(3580) => q(kri),
- q(3581) => q(krj),
- q(3582) => q(krk),
- q(3583) => q(krm),
- q(3584) => q(krn),
- q(3585) => q(krp),
- q(3586) => q(krr),
- q(3587) => q(krs),
- q(3588) => q(krt),
- q(3589) => q(krv),
- q(3590) => q(krw),
- q(3591) => q(krx),
- q(3592) => q(kry),
- q(3593) => q(krz),
- q(3594) => q(ksa),
- q(3595) => q(ksb),
- q(3596) => q(ksc),
- q(3597) => q(ksd),
- q(3598) => q(kse),
- q(3599) => q(ksf),
- q(3600) => q(ksg),
- q(3601) => q(ksh),
- q(3602) => q(ksi),
- q(3603) => q(ksj),
- q(3604) => q(ksk),
- q(3605) => q(ksl),
- q(3606) => q(ksm),
- q(3607) => q(ksn),
- q(3608) => q(kso),
- q(3609) => q(ksp),
- q(3610) => q(ksq),
- q(3611) => q(ksr),
- q(3612) => q(kss),
- q(3613) => q(kst),
- q(3614) => q(ksu),
- q(3615) => q(ksv),
- q(3616) => q(ksw),
- q(3617) => q(ksx),
- q(3618) => q(ksy),
- q(3619) => q(ksz),
- q(3620) => q(kta),
- q(3621) => q(ktb),
- q(3622) => q(ktc),
- q(3623) => q(ktd),
- q(3624) => q(kte),
- q(3625) => q(ktf),
- q(3626) => q(ktg),
- q(3627) => q(kth),
- q(3628) => q(kti),
- q(3629) => q(ktj),
- q(3630) => q(ktk),
- q(3631) => q(ktl),
- q(3632) => q(ktm),
- q(3633) => q(ktn),
- q(3634) => q(kto),
- q(3635) => q(ktp),
- q(3636) => q(ktq),
- q(3637) => q(ktr),
- q(3638) => q(kts),
- q(3639) => q(ktt),
- q(3640) => q(ktu),
- q(3641) => q(ktv),
- q(3642) => q(ktw),
- q(3643) => q(ktx),
- q(3644) => q(kty),
- q(3645) => q(ktz),
- q(3646) => q(kub),
- q(3647) => q(kuc),
- q(3648) => q(kud),
- q(3649) => q(kue),
- q(3650) => q(kuf),
- q(3651) => q(kug),
- q(3652) => q(kuh),
- q(3653) => q(kui),
- q(3654) => q(kuj),
- q(3655) => q(kuk),
- q(3656) => q(kul),
- q(3657) => q(kun),
- q(3658) => q(kuo),
- q(3659) => q(kup),
- q(3660) => q(kus),
- q(3661) => q(kuu),
- q(3662) => q(kuv),
- q(3663) => q(kuw),
- q(3664) => q(kux),
- q(3665) => q(kuy),
- q(3666) => q(kuz),
- q(3667) => q(kva),
- q(3668) => q(kvb),
- q(3669) => q(kvc),
- q(3670) => q(kvd),
- q(3671) => q(kve),
- q(3672) => q(kvf),
- q(3673) => q(kvg),
- q(3674) => q(kvh),
- q(3675) => q(kvi),
- q(3676) => q(kvj),
- q(3677) => q(kvk),
- q(3678) => q(kvl),
- q(3679) => q(kvm),
- q(3680) => q(kvn),
- q(3681) => q(kvo),
- q(3682) => q(kvp),
- q(3683) => q(kvq),
- q(3684) => q(kvr),
- q(3685) => q(kvs),
- q(3686) => q(kvt),
- q(3687) => q(kvu),
- q(3688) => q(kvv),
- q(3689) => q(kvw),
- q(3690) => q(kvx),
- q(3691) => q(kvy),
- q(3692) => q(kvz),
- q(3693) => q(kwa),
- q(3694) => q(kwb),
- q(3695) => q(kwc),
- q(3696) => q(kwd),
- q(3697) => q(kwe),
- q(3698) => q(kwf),
- q(3699) => q(kwg),
- q(3700) => q(kwh),
- q(3701) => q(kwi),
- q(3702) => q(kwj),
- q(3703) => q(kwk),
- q(3704) => q(kwl),
- q(3705) => q(kwm),
- q(3706) => q(kwn),
- q(3707) => q(kwo),
- q(3708) => q(kwp),
- q(3709) => q(kwr),
- q(3710) => q(kws),
- q(3711) => q(kwt),
- q(3712) => q(kwu),
- q(3713) => q(kwv),
- q(3714) => q(kww),
- q(3715) => q(kwx),
- q(3716) => q(kwy),
- q(3717) => q(kwz),
- q(3718) => q(kxa),
- q(3719) => q(kxb),
- q(3720) => q(kxc),
- q(3721) => q(kxd),
- q(3722) => q(kxf),
- q(3723) => q(kxh),
- q(3724) => q(kxi),
- q(3725) => q(kxj),
- q(3726) => q(kxk),
- q(3727) => q(kxl),
- q(3728) => q(kxm),
- q(3729) => q(kxn),
- q(3730) => q(kxo),
- q(3731) => q(kxp),
- q(3732) => q(kxq),
- q(3733) => q(kxr),
- q(3734) => q(kxs),
- q(3735) => q(kxt),
- q(3736) => q(kxu),
- q(3737) => q(kxv),
- q(3738) => q(kxw),
- q(3739) => q(kxx),
- q(3740) => q(kxy),
- q(3741) => q(kxz),
- q(3742) => q(kya),
- q(3743) => q(kyb),
- q(3744) => q(kyc),
- q(3745) => q(kyd),
- q(3746) => q(kye),
- q(3747) => q(kyf),
- q(3748) => q(kyg),
- q(3749) => q(kyh),
- q(3750) => q(kyi),
- q(3751) => q(kyj),
- q(3752) => q(kyk),
- q(3753) => q(kyl),
- q(3754) => q(kym),
- q(3755) => q(kyn),
- q(3756) => q(kyo),
- q(3757) => q(kyp),
- q(3758) => q(kyq),
- q(3759) => q(kyr),
- q(3760) => q(kys),
- q(3761) => q(kyt),
- q(3762) => q(kyu),
- q(3763) => q(kyv),
- q(3764) => q(kyw),
- q(3765) => q(kyx),
- q(3766) => q(kyy),
- q(3767) => q(kyz),
- q(3768) => q(kza),
- q(3769) => q(kzb),
- q(3770) => q(kzc),
- q(3771) => q(kzd),
- q(3772) => q(kze),
- q(3773) => q(kzf),
- q(3774) => q(kzg),
- q(3775) => q(kzi),
- q(3776) => q(kzj),
- q(3777) => q(kzk),
- q(3778) => q(kzl),
- q(3779) => q(kzm),
- q(3780) => q(kzn),
- q(3781) => q(kzo),
- q(3782) => q(kzp),
- q(3783) => q(kzq),
- q(3784) => q(kzr),
- q(3785) => q(kzs),
- q(3786) => q(kzt),
- q(3787) => q(kzu),
- q(3788) => q(kzv),
- q(3789) => q(kzw),
- q(3790) => q(kzx),
- q(3791) => q(kzy),
- q(3792) => q(kzz),
- q(3793) => q(laa),
- q(3794) => q(lab),
- q(3795) => q(lac),
- q(3796) => q(lae),
- q(3797) => q(laf),
- q(3798) => q(lag),
- q(3799) => q(lai),
- q(3800) => q(laj),
- q(3801) => q(lak),
- q(3802) => q(lal),
- q(3803) => q(lan),
- q(3804) => q(lap),
- q(3805) => q(laq),
- q(3806) => q(lar),
- q(3807) => q(las),
- q(3808) => q(lau),
- q(3809) => q(law),
- q(3810) => q(lax),
- q(3811) => q(lay),
- q(3812) => q(laz),
- q(3813) => q(lba),
- q(3814) => q(lbb),
- q(3815) => q(lbc),
- q(3816) => q(lbe),
- q(3817) => q(lbf),
- q(3818) => q(lbg),
- q(3819) => q(lbi),
- q(3820) => q(lbj),
- q(3821) => q(lbk),
- q(3822) => q(lbl),
- q(3823) => q(lbm),
- q(3824) => q(lbn),
- q(3825) => q(lbo),
- q(3826) => q(lbq),
- q(3827) => q(lbr),
- q(3828) => q(lbs),
- q(3829) => q(lbt),
- q(3830) => q(lbu),
- q(3831) => q(lbv),
- q(3832) => q(lbw),
- q(3833) => q(lbx),
- q(3834) => q(lby),
- q(3835) => q(lbz),
- q(3836) => q(lcc),
- q(3837) => q(lcd),
- q(3838) => q(lce),
- q(3839) => q(lcf),
- q(3840) => q(lch),
- q(3841) => q(lcl),
- q(3842) => q(lcm),
- q(3843) => q(lcp),
- q(3844) => q(lcq),
- q(3845) => q(lcs),
- q(3846) => q(lda),
- q(3847) => q(ldb),
- q(3848) => q(ldd),
- q(3849) => q(ldg),
- q(3850) => q(ldh),
- q(3851) => q(ldi),
- q(3852) => q(ldj),
- q(3853) => q(ldk),
- q(3854) => q(ldl),
- q(3855) => q(ldm),
- q(3856) => q(ldn),
- q(3857) => q(ldo),
- q(3858) => q(ldp),
- q(3859) => q(ldq),
- q(3860) => q(lea),
- q(3861) => q(leb),
- q(3862) => q(lec),
- q(3863) => q(led),
- q(3864) => q(lee),
- q(3865) => q(lef),
- q(3866) => q(leh),
- q(3867) => q(lei),
- q(3868) => q(lej),
- q(3869) => q(lek),
- q(3870) => q(lel),
- q(3871) => q(lem),
- q(3872) => q(len),
- q(3873) => q(leo),
- q(3874) => q(lep),
- q(3875) => q(leq),
- q(3876) => q(ler),
- q(3877) => q(les),
- q(3878) => q(let),
- q(3879) => q(leu),
- q(3880) => q(lev),
- q(3881) => q(lew),
- q(3882) => q(lex),
- q(3883) => q(ley),
- q(3884) => q(lfa),
- q(3885) => q(lfn),
- q(3886) => q(lga),
- q(3887) => q(lgb),
- q(3888) => q(lgg),
- q(3889) => q(lgh),
- q(3890) => q(lgi),
- q(3891) => q(lgk),
- q(3892) => q(lgl),
- q(3893) => q(lgm),
- q(3894) => q(lgn),
- q(3895) => q(lgq),
- q(3896) => q(lgr),
- q(3897) => q(lgt),
- q(3898) => q(lgu),
- q(3899) => q(lgz),
- q(3900) => q(lha),
- q(3901) => q(lhh),
- q(3902) => q(lhi),
- q(3903) => q(lhl),
- q(3904) => q(lhm),
- q(3905) => q(lhn),
- q(3906) => q(lhp),
- q(3907) => q(lhs),
- q(3908) => q(lht),
- q(3909) => q(lhu),
- q(3910) => q(lia),
- q(3911) => q(lib),
- q(3912) => q(lic),
- q(3913) => q(lid),
- q(3914) => q(lie),
- q(3915) => q(lif),
- q(3916) => q(lig),
- q(3917) => q(lih),
- q(3918) => q(lij),
- q(3919) => q(lik),
- q(3920) => q(lil),
- q(3921) => q(lio),
- q(3922) => q(lip),
- q(3923) => q(liq),
- q(3924) => q(lir),
- q(3925) => q(lis),
- q(3926) => q(liu),
- q(3927) => q(liv),
- q(3928) => q(liw),
- q(3929) => q(lix),
- q(3930) => q(liy),
- q(3931) => q(liz),
- q(3932) => q(lja),
- q(3933) => q(lje),
- q(3934) => q(lji),
- q(3935) => q(ljl),
- q(3936) => q(ljp),
- q(3937) => q(ljw),
- q(3938) => q(ljx),
- q(3939) => q(lka),
- q(3940) => q(lkb),
- q(3941) => q(lkc),
- q(3942) => q(lkd),
- q(3943) => q(lke),
- q(3944) => q(lkh),
- q(3945) => q(lki),
- q(3946) => q(lkj),
- q(3947) => q(lkl),
- q(3948) => q(lkm),
- q(3949) => q(lkn),
- q(3950) => q(lko),
- q(3951) => q(lkr),
- q(3952) => q(lks),
- q(3953) => q(lkt),
- q(3954) => q(lku),
- q(3955) => q(lky),
- q(3956) => q(lla),
- q(3957) => q(llb),
- q(3958) => q(llc),
- q(3959) => q(lld),
- q(3960) => q(lle),
- q(3961) => q(llf),
- q(3962) => q(llg),
- q(3963) => q(llh),
- q(3964) => q(lli),
- q(3965) => q(llj),
- q(3966) => q(llk),
- q(3967) => q(lll),
- q(3968) => q(llm),
- q(3969) => q(lln),
- q(3970) => q(llo),
- q(3971) => q(llp),
- q(3972) => q(llq),
- q(3973) => q(lls),
- q(3974) => q(llu),
- q(3975) => q(llx),
- q(3976) => q(lma),
- q(3977) => q(lmb),
- q(3978) => q(lmc),
- q(3979) => q(lmd),
- q(3980) => q(lme),
- q(3981) => q(lmf),
- q(3982) => q(lmg),
- q(3983) => q(lmh),
- q(3984) => q(lmi),
- q(3985) => q(lmj),
- q(3986) => q(lmk),
- q(3987) => q(lml),
- q(3988) => q(lmn),
- q(3989) => q(lmo),
- q(3990) => q(lmp),
- q(3991) => q(lmq),
- q(3992) => q(lmr),
- q(3993) => q(lmu),
- q(3994) => q(lmv),
- q(3995) => q(lmw),
- q(3996) => q(lmx),
- q(3997) => q(lmy),
- q(3998) => q(lmz),
- q(3999) => q(lna),
- q(4000) => q(lnb),
- q(4001) => q(lnd),
- q(4002) => q(lng),
- q(4003) => q(lnh),
- q(4004) => q(lni),
- q(4005) => q(lnj),
- q(4006) => q(lnl),
- q(4007) => q(lnm),
- q(4008) => q(lnn),
- q(4009) => q(lno),
- q(4010) => q(lns),
- q(4011) => q(lnu),
- q(4012) => q(lnw),
- q(4013) => q(lnz),
- q(4014) => q(loa),
- q(4015) => q(lob),
- q(4016) => q(loc),
- q(4017) => q(loe),
- q(4018) => q(lof),
- q(4019) => q(log),
- q(4020) => q(loh),
- q(4021) => q(loi),
- q(4022) => q(loj),
- q(4023) => q(lok),
- q(4024) => q(lom),
- q(4025) => q(lon),
- q(4026) => q(loo),
- q(4027) => q(lop),
- q(4028) => q(loq),
- q(4029) => q(lor),
- q(4030) => q(los),
- q(4031) => q(lot),
- q(4032) => q(lou),
- q(4033) => q(lov),
- q(4034) => q(low),
- q(4035) => q(lox),
- q(4036) => q(loy),
- q(4037) => q(lpa),
- q(4038) => q(lpe),
- q(4039) => q(lpn),
- q(4040) => q(lpo),
- q(4041) => q(lpx),
- q(4042) => q(lra),
- q(4043) => q(lrc),
- q(4044) => q(lre),
- q(4045) => q(lrg),
- q(4046) => q(lri),
- q(4047) => q(lrk),
- q(4048) => q(lrl),
- q(4049) => q(lrm),
- q(4050) => q(lrn),
- q(4051) => q(lro),
- q(4052) => q(lrr),
- q(4053) => q(lrt),
- q(4054) => q(lrv),
- q(4055) => q(lrz),
- q(4056) => q(lsa),
- q(4057) => q(lsd),
- q(4058) => q(lse),
- q(4059) => q(lsg),
- q(4060) => q(lsh),
- q(4061) => q(lsi),
- q(4062) => q(lsl),
- q(4063) => q(lsm),
- q(4064) => q(lso),
- q(4065) => q(lsp),
- q(4066) => q(lsr),
- q(4067) => q(lss),
- q(4068) => q(lst),
- q(4069) => q(lsy),
- q(4070) => q(ltc),
- q(4071) => q(ltg),
- q(4072) => q(lti),
- q(4073) => q(ltn),
- q(4074) => q(lto),
- q(4075) => q(lts),
- q(4076) => q(ltu),
- q(4077) => q(luc),
- q(4078) => q(lud),
- q(4079) => q(lue),
- q(4080) => q(luf),
- q(4081) => q(luj),
- q(4082) => q(luk),
- q(4083) => q(lul),
- q(4084) => q(lum),
- q(4085) => q(lup),
- q(4086) => q(luq),
- q(4087) => q(lur),
- q(4088) => q(lut),
- q(4089) => q(luu),
- q(4090) => q(luv),
- q(4091) => q(luw),
- q(4092) => q(luy),
- q(4093) => q(luz),
- q(4094) => q(lva),
- q(4095) => q(lvk),
- q(4096) => q(lvs),
- q(4097) => q(lvu),
- q(4098) => q(lwa),
- q(4099) => q(lwe),
- q(4100) => q(lwg),
- q(4101) => q(lwh),
- q(4102) => q(lwl),
- q(4103) => q(lwm),
- q(4104) => q(lwo),
- q(4105) => q(lwt),
- q(4106) => q(lwu),
- q(4107) => q(lww),
- q(4108) => q(lya),
- q(4109) => q(lyg),
- q(4110) => q(lyn),
- q(4111) => q(lzh),
- q(4112) => q(lzl),
- q(4113) => q(lzn),
- q(4114) => q(lzz),
- q(4115) => q(maa),
- q(4116) => q(mab),
- q(4117) => q(mae),
- q(4118) => q(maf),
- q(4119) => q(maj),
- q(4120) => q(mam),
- q(4121) => q(maq),
- q(4122) => q(mat),
- q(4123) => q(mau),
- q(4124) => q(mav),
- q(4125) => q(maw),
- q(4126) => q(max),
- q(4127) => q(maz),
- q(4128) => q(mba),
- q(4129) => q(mbb),
- q(4130) => q(mbc),
- q(4131) => q(mbd),
- q(4132) => q(mbe),
- q(4133) => q(mbf),
- q(4134) => q(mbh),
- q(4135) => q(mbi),
- q(4136) => q(mbj),
- q(4137) => q(mbk),
- q(4138) => q(mbl),
- q(4139) => q(mbm),
- q(4140) => q(mbn),
- q(4141) => q(mbo),
- q(4142) => q(mbp),
- q(4143) => q(mbq),
- q(4144) => q(mbr),
- q(4145) => q(mbs),
- q(4146) => q(mbt),
- q(4147) => q(mbu),
- q(4148) => q(mbv),
- q(4149) => q(mbw),
- q(4150) => q(mbx),
- q(4151) => q(mby),
- q(4152) => q(mbz),
- q(4153) => q(mca),
- q(4154) => q(mcb),
- q(4155) => q(mcc),
- q(4156) => q(mcd),
- q(4157) => q(mce),
- q(4158) => q(mcf),
- q(4159) => q(mcg),
- q(4160) => q(mch),
- q(4161) => q(mci),
- q(4162) => q(mcj),
- q(4163) => q(mck),
- q(4164) => q(mcl),
- q(4165) => q(mcm),
- q(4166) => q(mcn),
- q(4167) => q(mco),
- q(4168) => q(mcp),
- q(4169) => q(mcq),
- q(4170) => q(mcr),
- q(4171) => q(mcs),
- q(4172) => q(mct),
- q(4173) => q(mcu),
- q(4174) => q(mcv),
- q(4175) => q(mcw),
- q(4176) => q(mcx),
- q(4177) => q(mcy),
- q(4178) => q(mcz),
- q(4179) => q(mda),
- q(4180) => q(mdb),
- q(4181) => q(mdc),
- q(4182) => q(mdd),
- q(4183) => q(mde),
- q(4184) => q(mdg),
- q(4185) => q(mdh),
- q(4186) => q(mdi),
- q(4187) => q(mdj),
- q(4188) => q(mdk),
- q(4189) => q(mdl),
- q(4190) => q(mdm),
- q(4191) => q(mdn),
- q(4192) => q(mdp),
- q(4193) => q(mdq),
- q(4194) => q(mds),
- q(4195) => q(mdt),
- q(4196) => q(mdu),
- q(4197) => q(mdv),
- q(4198) => q(mdw),
- q(4199) => q(mdx),
- q(4200) => q(mdy),
- q(4201) => q(mdz),
- q(4202) => q(mea),
- q(4203) => q(meb),
- q(4204) => q(mec),
- q(4205) => q(med),
- q(4206) => q(mee),
- q(4207) => q(mef),
- q(4208) => q(meh),
- q(4209) => q(mei),
- q(4210) => q(mej),
- q(4211) => q(mek),
- q(4212) => q(mel),
- q(4213) => q(mem),
- q(4214) => q(meo),
- q(4215) => q(mep),
- q(4216) => q(meq),
- q(4217) => q(mer),
- q(4218) => q(mes),
- q(4219) => q(met),
- q(4220) => q(meu),
- q(4221) => q(mev),
- q(4222) => q(mew),
- q(4223) => q(mey),
- q(4224) => q(mez),
- q(4225) => q(mfa),
- q(4226) => q(mfb),
- q(4227) => q(mfc),
- q(4228) => q(mfd),
- q(4229) => q(mfe),
- q(4230) => q(mff),
- q(4231) => q(mfg),
- q(4232) => q(mfh),
- q(4233) => q(mfi),
- q(4234) => q(mfj),
- q(4235) => q(mfk),
- q(4236) => q(mfl),
- q(4237) => q(mfm),
- q(4238) => q(mfn),
- q(4239) => q(mfo),
- q(4240) => q(mfp),
- q(4241) => q(mfq),
- q(4242) => q(mfr),
- q(4243) => q(mfs),
- q(4244) => q(mft),
- q(4245) => q(mfu),
- q(4246) => q(mfv),
- q(4247) => q(mfw),
- q(4248) => q(mfx),
- q(4249) => q(mfy),
- q(4250) => q(mfz),
- q(4251) => q(mgb),
- q(4252) => q(mgc),
- q(4253) => q(mgd),
- q(4254) => q(mge),
- q(4255) => q(mgf),
- q(4256) => q(mgg),
- q(4257) => q(mgh),
- q(4258) => q(mgi),
- q(4259) => q(mgj),
- q(4260) => q(mgk),
- q(4261) => q(mgl),
- q(4262) => q(mgm),
- q(4263) => q(mgn),
- q(4264) => q(mgo),
- q(4265) => q(mgp),
- q(4266) => q(mgq),
- q(4267) => q(mgr),
- q(4268) => q(mgs),
- q(4269) => q(mgt),
- q(4270) => q(mgu),
- q(4271) => q(mgv),
- q(4272) => q(mgw),
- q(4273) => q(mgy),
- q(4274) => q(mgz),
- q(4275) => q(mha),
- q(4276) => q(mhb),
- q(4277) => q(mhc),
- q(4278) => q(mhd),
- q(4279) => q(mhe),
- q(4280) => q(mhf),
- q(4281) => q(mhg),
- q(4282) => q(mhi),
- q(4283) => q(mhj),
- q(4284) => q(mhk),
- q(4285) => q(mhl),
- q(4286) => q(mhm),
- q(4287) => q(mhn),
- q(4288) => q(mho),
- q(4289) => q(mhp),
- q(4290) => q(mhq),
- q(4291) => q(mhr),
- q(4292) => q(mhs),
- q(4293) => q(mht),
- q(4294) => q(mhu),
- q(4295) => q(mhw),
- q(4296) => q(mhx),
- q(4297) => q(mhy),
- q(4298) => q(mhz),
- q(4299) => q(mia),
- q(4300) => q(mib),
- q(4301) => q(mid),
- q(4302) => q(mie),
- q(4303) => q(mif),
- q(4304) => q(mig),
- q(4305) => q(mih),
- q(4306) => q(mii),
- q(4307) => q(mij),
- q(4308) => q(mik),
- q(4309) => q(mil),
- q(4310) => q(mim),
- q(4311) => q(mio),
- q(4312) => q(mip),
- q(4313) => q(miq),
- q(4314) => q(mir),
- q(4315) => q(mit),
- q(4316) => q(miu),
- q(4317) => q(miw),
- q(4318) => q(mix),
- q(4319) => q(miy),
- q(4320) => q(miz),
- q(4321) => q(mjc),
- q(4322) => q(mjd),
- q(4323) => q(mje),
- q(4324) => q(mjg),
- q(4325) => q(mjh),
- q(4326) => q(mji),
- q(4327) => q(mjj),
- q(4328) => q(mjk),
- q(4329) => q(mjl),
- q(4330) => q(mjm),
- q(4331) => q(mjn),
- q(4332) => q(mjo),
- q(4333) => q(mjp),
- q(4334) => q(mjq),
- q(4335) => q(mjr),
- q(4336) => q(mjs),
- q(4337) => q(mjt),
- q(4338) => q(mju),
- q(4339) => q(mjv),
- q(4340) => q(mjw),
- q(4341) => q(mjx),
- q(4342) => q(mjy),
- q(4343) => q(mjz),
- q(4344) => q(mka),
- q(4345) => q(mkb),
- q(4346) => q(mkc),
- q(4347) => q(mke),
- q(4348) => q(mkf),
- q(4349) => q(mkg),
- q(4350) => q(mki),
- q(4351) => q(mkj),
- q(4352) => q(mkk),
- q(4353) => q(mkl),
- q(4354) => q(mkm),
- q(4355) => q(mkn),
- q(4356) => q(mko),
- q(4357) => q(mkp),
- q(4358) => q(mkq),
- q(4359) => q(mkr),
- q(4360) => q(mks),
- q(4361) => q(mkt),
- q(4362) => q(mku),
- q(4363) => q(mkv),
- q(4364) => q(mkw),
- q(4365) => q(mkx),
- q(4366) => q(mky),
- q(4367) => q(mkz),
- q(4368) => q(mla),
- q(4369) => q(mlb),
- q(4370) => q(mlc),
- q(4371) => q(mle),
- q(4372) => q(mlf),
- q(4373) => q(mlh),
- q(4374) => q(mli),
- q(4375) => q(mlj),
- q(4376) => q(mlk),
- q(4377) => q(mll),
- q(4378) => q(mlm),
- q(4379) => q(mln),
- q(4380) => q(mlo),
- q(4381) => q(mlp),
- q(4382) => q(mlq),
- q(4383) => q(mlr),
- q(4384) => q(mls),
- q(4385) => q(mlu),
- q(4386) => q(mlv),
- q(4387) => q(mlw),
- q(4388) => q(mlx),
- q(4389) => q(mlz),
- q(4390) => q(mma),
- q(4391) => q(mmb),
- q(4392) => q(mmc),
- q(4393) => q(mmd),
- q(4394) => q(mme),
- q(4395) => q(mmf),
- q(4396) => q(mmg),
- q(4397) => q(mmh),
- q(4398) => q(mmi),
- q(4399) => q(mmj),
- q(4400) => q(mmk),
- q(4401) => q(mml),
- q(4402) => q(mmm),
- q(4403) => q(mmn),
- q(4404) => q(mmo),
- q(4405) => q(mmp),
- q(4406) => q(mmq),
- q(4407) => q(mmr),
- q(4408) => q(mmt),
- q(4409) => q(mmu),
- q(4410) => q(mmv),
- q(4411) => q(mmw),
- q(4412) => q(mmx),
- q(4413) => q(mmy),
- q(4414) => q(mmz),
- q(4415) => q(mna),
- q(4416) => q(mnb),
- q(4417) => q(mnd),
- q(4418) => q(mne),
- q(4419) => q(mnf),
- q(4420) => q(mng),
- q(4421) => q(mnh),
- q(4422) => q(mnj),
- q(4423) => q(mnk),
- q(4424) => q(mnl),
- q(4425) => q(mnm),
- q(4426) => q(mnn),
- q(4427) => q(mnp),
- q(4428) => q(mnq),
- q(4429) => q(mnr),
- q(4430) => q(mns),
- q(4431) => q(mnu),
- q(4432) => q(mnv),
- q(4433) => q(mnw),
- q(4434) => q(mnx),
- q(4435) => q(mny),
- q(4436) => q(mnz),
- q(4437) => q(moa),
- q(4438) => q(moc),
- q(4439) => q(mod),
- q(4440) => q(moe),
- q(4441) => q(mog),
- q(4442) => q(moi),
- q(4443) => q(moj),
- q(4444) => q(mok),
- q(4445) => q(mom),
- q(4446) => q(moo),
- q(4447) => q(mop),
- q(4448) => q(moq),
- q(4449) => q(mor),
- q(4450) => q(mou),
- q(4451) => q(mov),
- q(4452) => q(mow),
- q(4453) => q(mox),
- q(4454) => q(moy),
- q(4455) => q(moz),
- q(4456) => q(mpa),
- q(4457) => q(mpb),
- q(4458) => q(mpc),
- q(4459) => q(mpd),
- q(4460) => q(mpe),
- q(4461) => q(mpg),
- q(4462) => q(mph),
- q(4463) => q(mpi),
- q(4464) => q(mpj),
- q(4465) => q(mpk),
- q(4466) => q(mpl),
- q(4467) => q(mpm),
- q(4468) => q(mpn),
- q(4469) => q(mpo),
- q(4470) => q(mpp),
- q(4471) => q(mpq),
- q(4472) => q(mpr),
- q(4473) => q(mps),
- q(4474) => q(mpt),
- q(4475) => q(mpu),
- q(4476) => q(mpv),
- q(4477) => q(mpw),
- q(4478) => q(mpx),
- q(4479) => q(mpy),
- q(4480) => q(mpz),
- q(4481) => q(mqa),
- q(4482) => q(mqb),
- q(4483) => q(mqc),
- q(4484) => q(mqe),
- q(4485) => q(mqf),
- q(4486) => q(mqg),
- q(4487) => q(mqh),
- q(4488) => q(mqi),
- q(4489) => q(mqj),
- q(4490) => q(mqk),
- q(4491) => q(mql),
- q(4492) => q(mqm),
- q(4493) => q(mqn),
- q(4494) => q(mqo),
- q(4495) => q(mqp),
- q(4496) => q(mqq),
- q(4497) => q(mqr),
- q(4498) => q(mqs),
- q(4499) => q(mqt),
- q(4500) => q(mqu),
- q(4501) => q(mqv),
- q(4502) => q(mqw),
- q(4503) => q(mqx),
- q(4504) => q(mqy),
- q(4505) => q(mqz),
- q(4506) => q(mra),
- q(4507) => q(mrb),
- q(4508) => q(mrc),
- q(4509) => q(mrd),
- q(4510) => q(mre),
- q(4511) => q(mrf),
- q(4512) => q(mrg),
- q(4513) => q(mrh),
- q(4514) => q(mrj),
- q(4515) => q(mrk),
- q(4516) => q(mrl),
- q(4517) => q(mrm),
- q(4518) => q(mrn),
- q(4519) => q(mro),
- q(4520) => q(mrp),
- q(4521) => q(mrq),
- q(4522) => q(mrr),
- q(4523) => q(mrs),
- q(4524) => q(mrt),
- q(4525) => q(mru),
- q(4526) => q(mrv),
- q(4527) => q(mrw),
- q(4528) => q(mrx),
- q(4529) => q(mry),
- q(4530) => q(mrz),
- q(4531) => q(msb),
- q(4532) => q(msc),
- q(4533) => q(msd),
- q(4534) => q(mse),
- q(4535) => q(msf),
- q(4536) => q(msg),
- q(4537) => q(msh),
- q(4538) => q(msi),
- q(4539) => q(msj),
- q(4540) => q(msk),
- q(4541) => q(msl),
- q(4542) => q(msm),
- q(4543) => q(msn),
- q(4544) => q(mso),
- q(4545) => q(msp),
- q(4546) => q(msq),
- q(4547) => q(msr),
- q(4548) => q(mss),
- q(4549) => q(msu),
- q(4550) => q(msv),
- q(4551) => q(msw),
- q(4552) => q(msx),
- q(4553) => q(msy),
- q(4554) => q(msz),
- q(4555) => q(mta),
- q(4556) => q(mtb),
- q(4557) => q(mtc),
- q(4558) => q(mtd),
- q(4559) => q(mte),
- q(4560) => q(mtf),
- q(4561) => q(mtg),
- q(4562) => q(mth),
- q(4563) => q(mti),
- q(4564) => q(mtj),
- q(4565) => q(mtk),
- q(4566) => q(mtl),
- q(4567) => q(mtm),
- q(4568) => q(mtn),
- q(4569) => q(mto),
- q(4570) => q(mtp),
- q(4571) => q(mtq),
- q(4572) => q(mtr),
- q(4573) => q(mts),
- q(4574) => q(mtt),
- q(4575) => q(mtu),
- q(4576) => q(mtv),
- q(4577) => q(mtw),
- q(4578) => q(mtx),
- q(4579) => q(mty),
- q(4580) => q(mua),
- q(4581) => q(mub),
- q(4582) => q(muc),
- q(4583) => q(mud),
- q(4584) => q(mue),
- q(4585) => q(mug),
- q(4586) => q(muh),
- q(4587) => q(mui),
- q(4588) => q(muj),
- q(4589) => q(muk),
- q(4590) => q(mum),
- q(4591) => q(muo),
- q(4592) => q(mup),
- q(4593) => q(muq),
- q(4594) => q(mur),
- q(4595) => q(mut),
- q(4596) => q(muu),
- q(4597) => q(muv),
- q(4598) => q(mux),
- q(4599) => q(muy),
- q(4600) => q(muz),
- q(4601) => q(mva),
- q(4602) => q(mvb),
- q(4603) => q(mvd),
- q(4604) => q(mve),
- q(4605) => q(mvf),
- q(4606) => q(mvg),
- q(4607) => q(mvh),
- q(4608) => q(mvi),
- q(4609) => q(mvk),
- q(4610) => q(mvl),
- q(4611) => q(mvm),
- q(4612) => q(mvn),
- q(4613) => q(mvo),
- q(4614) => q(mvp),
- q(4615) => q(mvq),
- q(4616) => q(mvr),
- q(4617) => q(mvs),
- q(4618) => q(mvt),
- q(4619) => q(mvu),
- q(4620) => q(mvv),
- q(4621) => q(mvw),
- q(4622) => q(mvx),
- q(4623) => q(mvy),
- q(4624) => q(mvz),
- q(4625) => q(mwa),
- q(4626) => q(mwb),
- q(4627) => q(mwc),
- q(4628) => q(mwe),
- q(4629) => q(mwf),
- q(4630) => q(mwg),
- q(4631) => q(mwh),
- q(4632) => q(mwi),
- q(4633) => q(mwk),
- q(4634) => q(mwm),
- q(4635) => q(mwn),
- q(4636) => q(mwo),
- q(4637) => q(mwp),
- q(4638) => q(mwq),
- q(4639) => q(mws),
- q(4640) => q(mwt),
- q(4641) => q(mwu),
- q(4642) => q(mwv),
- q(4643) => q(mww),
- q(4644) => q(mwx),
- q(4645) => q(mwy),
- q(4646) => q(mwz),
- q(4647) => q(mxa),
- q(4648) => q(mxb),
- q(4649) => q(mxc),
- q(4650) => q(mxd),
- q(4651) => q(mxe),
- q(4652) => q(mxf),
- q(4653) => q(mxg),
- q(4654) => q(mxh),
- q(4655) => q(mxi),
- q(4656) => q(mxj),
- q(4657) => q(mxk),
- q(4658) => q(mxl),
- q(4659) => q(mxm),
- q(4660) => q(mxn),
- q(4661) => q(mxo),
- q(4662) => q(mxp),
- q(4663) => q(mxq),
- q(4664) => q(mxr),
- q(4665) => q(mxs),
- q(4666) => q(mxt),
- q(4667) => q(mxu),
- q(4668) => q(mxv),
- q(4669) => q(mxw),
- q(4670) => q(mxx),
- q(4671) => q(mxy),
- q(4672) => q(mxz),
- q(4673) => q(myb),
- q(4674) => q(myc),
- q(4675) => q(myd),
- q(4676) => q(mye),
- q(4677) => q(myf),
- q(4678) => q(myg),
- q(4679) => q(myh),
- q(4680) => q(myi),
- q(4681) => q(myj),
- q(4682) => q(myk),
- q(4683) => q(myl),
- q(4684) => q(mym),
- q(4685) => q(myo),
- q(4686) => q(myp),
- q(4687) => q(myr),
- q(4688) => q(mys),
- q(4689) => q(myu),
- q(4690) => q(myw),
- q(4691) => q(myx),
- q(4692) => q(myy),
- q(4693) => q(myz),
- q(4694) => q(mza),
- q(4695) => q(mzb),
- q(4696) => q(mzc),
- q(4697) => q(mzd),
- q(4698) => q(mze),
- q(4699) => q(mzg),
- q(4700) => q(mzh),
- q(4701) => q(mzi),
- q(4702) => q(mzj),
- q(4703) => q(mzk),
- q(4704) => q(mzl),
- q(4705) => q(mzm),
- q(4706) => q(mzn),
- q(4707) => q(mzo),
- q(4708) => q(mzp),
- q(4709) => q(mzq),
- q(4710) => q(mzr),
- q(4711) => q(mzs),
- q(4712) => q(mzt),
- q(4713) => q(mzu),
- q(4714) => q(mzv),
- q(4715) => q(mzw),
- q(4716) => q(mzx),
- q(4717) => q(mzy),
- q(4718) => q(mzz),
- q(4719) => q(naa),
- q(4720) => q(nab),
- q(4721) => q(nac),
- q(4722) => q(nad),
- q(4723) => q(nae),
- q(4724) => q(naf),
- q(4725) => q(nag),
- q(4726) => q(naj),
- q(4727) => q(nak),
- q(4728) => q(nal),
- q(4729) => q(nam),
- q(4730) => q(nan),
- q(4731) => q(nao),
- q(4732) => q(naq),
- q(4733) => q(nar),
- q(4734) => q(nas),
- q(4735) => q(nat),
- q(4736) => q(naw),
- q(4737) => q(nax),
- q(4738) => q(nay),
- q(4739) => q(naz),
- q(4740) => q(nba),
- q(4741) => q(nbb),
- q(4742) => q(nbc),
- q(4743) => q(nbd),
- q(4744) => q(nbe),
- q(4745) => q(nbg),
- q(4746) => q(nbh),
- q(4747) => q(nbi),
- q(4748) => q(nbj),
- q(4749) => q(nbk),
- q(4750) => q(nbm),
- q(4751) => q(nbn),
- q(4752) => q(nbo),
- q(4753) => q(nbp),
- q(4754) => q(nbq),
- q(4755) => q(nbr),
- q(4756) => q(nbs),
- q(4757) => q(nbt),
- q(4758) => q(nbu),
- q(4759) => q(nbv),
- q(4760) => q(nbw),
- q(4761) => q(nby),
- q(4762) => q(nca),
- q(4763) => q(ncb),
- q(4764) => q(ncc),
- q(4765) => q(ncd),
- q(4766) => q(nce),
- q(4767) => q(ncf),
- q(4768) => q(ncg),
- q(4769) => q(nch),
- q(4770) => q(nci),
- q(4771) => q(ncj),
- q(4772) => q(nck),
- q(4773) => q(ncl),
- q(4774) => q(ncm),
- q(4775) => q(ncn),
- q(4776) => q(nco),
- q(4777) => q(ncp),
- q(4778) => q(ncr),
- q(4779) => q(ncs),
- q(4780) => q(nct),
- q(4781) => q(ncu),
- q(4782) => q(ncx),
- q(4783) => q(ncz),
- q(4784) => q(nda),
- q(4785) => q(ndb),
- q(4786) => q(ndc),
- q(4787) => q(ndd),
- q(4788) => q(ndf),
- q(4789) => q(ndg),
- q(4790) => q(ndh),
- q(4791) => q(ndi),
- q(4792) => q(ndj),
- q(4793) => q(ndk),
- q(4794) => q(ndl),
- q(4795) => q(ndm),
- q(4796) => q(ndn),
- q(4797) => q(ndp),
- q(4798) => q(ndq),
- q(4799) => q(ndr),
- q(4800) => q(ndt),
- q(4801) => q(ndu),
- q(4802) => q(ndv),
- q(4803) => q(ndw),
- q(4804) => q(ndx),
- q(4805) => q(ndy),
- q(4806) => q(ndz),
- q(4807) => q(nea),
- q(4808) => q(neb),
- q(4809) => q(nec),
- q(4810) => q(ned),
- q(4811) => q(nee),
- q(4812) => q(nef),
- q(4813) => q(neg),
- q(4814) => q(neh),
- q(4815) => q(nei),
- q(4816) => q(nej),
- q(4817) => q(nek),
- q(4818) => q(nem),
- q(4819) => q(nen),
- q(4820) => q(neo),
- q(4821) => q(neq),
- q(4822) => q(ner),
- q(4823) => q(nes),
- q(4824) => q(net),
- q(4825) => q(neu),
- q(4826) => q(nev),
- q(4827) => q(nex),
- q(4828) => q(ney),
- q(4829) => q(nez),
- q(4830) => q(nfa),
- q(4831) => q(nfd),
- q(4832) => q(nfl),
- q(4833) => q(nfr),
- q(4834) => q(nfu),
- q(4835) => q(nga),
- q(4836) => q(ngb),
- q(4837) => q(ngc),
- q(4838) => q(ngd),
- q(4839) => q(nge),
- q(4840) => q(ngg),
- q(4841) => q(ngh),
- q(4842) => q(ngi),
- q(4843) => q(ngj),
- q(4844) => q(ngk),
- q(4845) => q(ngl),
- q(4846) => q(ngm),
- q(4847) => q(ngn),
- q(4848) => q(ngo),
- q(4849) => q(ngp),
- q(4850) => q(ngq),
- q(4851) => q(ngr),
- q(4852) => q(ngs),
- q(4853) => q(ngt),
- q(4854) => q(ngu),
- q(4855) => q(ngv),
- q(4856) => q(ngw),
- q(4857) => q(ngx),
- q(4858) => q(ngy),
- q(4859) => q(ngz),
- q(4860) => q(nha),
- q(4861) => q(nhb),
- q(4862) => q(nhc),
- q(4863) => q(nhd),
- q(4864) => q(nhe),
- q(4865) => q(nhf),
- q(4866) => q(nhg),
- q(4867) => q(nhh),
- q(4868) => q(nhi),
- q(4869) => q(nhk),
- q(4870) => q(nhm),
- q(4871) => q(nhn),
- q(4872) => q(nho),
- q(4873) => q(nhp),
- q(4874) => q(nhq),
- q(4875) => q(nhr),
- q(4876) => q(nht),
- q(4877) => q(nhu),
- q(4878) => q(nhv),
- q(4879) => q(nhw),
- q(4880) => q(nhx),
- q(4881) => q(nhy),
- q(4882) => q(nhz),
- q(4883) => q(nib),
- q(4884) => q(nid),
- q(4885) => q(nie),
- q(4886) => q(nif),
- q(4887) => q(nig),
- q(4888) => q(nih),
- q(4889) => q(nii),
- q(4890) => q(nij),
- q(4891) => q(nik),
- q(4892) => q(nil),
- q(4893) => q(nim),
- q(4894) => q(nin),
- q(4895) => q(nio),
- q(4896) => q(niq),
- q(4897) => q(nir),
- q(4898) => q(nis),
- q(4899) => q(nit),
- q(4900) => q(niv),
- q(4901) => q(niw),
- q(4902) => q(nix),
- q(4903) => q(niy),
- q(4904) => q(niz),
- q(4905) => q(nja),
- q(4906) => q(njb),
- q(4907) => q(njd),
- q(4908) => q(njh),
- q(4909) => q(nji),
- q(4910) => q(njj),
- q(4911) => q(njl),
- q(4912) => q(njm),
- q(4913) => q(njn),
- q(4914) => q(njo),
- q(4915) => q(njr),
- q(4916) => q(njs),
- q(4917) => q(njt),
- q(4918) => q(nju),
- q(4919) => q(njx),
- q(4920) => q(njy),
- q(4921) => q(njz),
- q(4922) => q(nka),
- q(4923) => q(nkb),
- q(4924) => q(nkc),
- q(4925) => q(nkd),
- q(4926) => q(nke),
- q(4927) => q(nkf),
- q(4928) => q(nkg),
- q(4929) => q(nkh),
- q(4930) => q(nki),
- q(4931) => q(nkj),
- q(4932) => q(nkk),
- q(4933) => q(nkm),
- q(4934) => q(nkn),
- q(4935) => q(nko),
- q(4936) => q(nkp),
- q(4937) => q(nkq),
- q(4938) => q(nkr),
- q(4939) => q(nks),
- q(4940) => q(nkt),
- q(4941) => q(nku),
- q(4942) => q(nkv),
- q(4943) => q(nkw),
- q(4944) => q(nkx),
- q(4945) => q(nkz),
- q(4946) => q(nla),
- q(4947) => q(nlc),
- q(4948) => q(nle),
- q(4949) => q(nlg),
- q(4950) => q(nli),
- q(4951) => q(nlj),
- q(4952) => q(nlk),
- q(4953) => q(nll),
- q(4954) => q(nlo),
- q(4955) => q(nlq),
- q(4956) => q(nlu),
- q(4957) => q(nlv),
- q(4958) => q(nlw),
- q(4959) => q(nlx),
- q(4960) => q(nly),
- q(4961) => q(nlz),
- q(4962) => q(nma),
- q(4963) => q(nmb),
- q(4964) => q(nmc),
- q(4965) => q(nmd),
- q(4966) => q(nme),
- q(4967) => q(nmf),
- q(4968) => q(nmg),
- q(4969) => q(nmh),
- q(4970) => q(nmi),
- q(4971) => q(nmj),
- q(4972) => q(nmk),
- q(4973) => q(nml),
- q(4974) => q(nmm),
- q(4975) => q(nmn),
- q(4976) => q(nmo),
- q(4977) => q(nmp),
- q(4978) => q(nmq),
- q(4979) => q(nmr),
- q(4980) => q(nms),
- q(4981) => q(nmt),
- q(4982) => q(nmu),
- q(4983) => q(nmv),
- q(4984) => q(nmw),
- q(4985) => q(nmx),
- q(4986) => q(nmy),
- q(4987) => q(nmz),
- q(4988) => q(nna),
- q(4989) => q(nnb),
- q(4990) => q(nnc),
- q(4991) => q(nnd),
- q(4992) => q(nne),
- q(4993) => q(nnf),
- q(4994) => q(nng),
- q(4995) => q(nnh),
- q(4996) => q(nni),
- q(4997) => q(nnj),
- q(4998) => q(nnk),
- q(4999) => q(nnl),
- q(5000) => q(nnm),
- q(5001) => q(nnn),
- q(5002) => q(nnp),
- q(5003) => q(nnq),
- q(5004) => q(nnr),
- q(5005) => q(nns),
- q(5006) => q(nnt),
- q(5007) => q(nnu),
- q(5008) => q(nnv),
- q(5009) => q(nnw),
- q(5010) => q(nny),
- q(5011) => q(nnz),
- q(5012) => q(noa),
- q(5013) => q(noc),
- q(5014) => q(nod),
- q(5015) => q(noe),
- q(5016) => q(nof),
- q(5017) => q(noh),
- q(5018) => q(noi),
- q(5019) => q(noj),
- q(5020) => q(nok),
- q(5021) => q(nol),
- q(5022) => q(nom),
- q(5023) => q(nop),
- q(5024) => q(noq),
- q(5025) => q(nos),
- q(5026) => q(not),
- q(5027) => q(nou),
- q(5028) => q(nov),
- q(5029) => q(now),
- q(5030) => q(noy),
- q(5031) => q(noz),
- q(5032) => q(npa),
- q(5033) => q(npb),
- q(5034) => q(npg),
- q(5035) => q(nph),
- q(5036) => q(npi),
- q(5037) => q(npl),
- q(5038) => q(npn),
- q(5039) => q(npo),
- q(5040) => q(nps),
- q(5041) => q(npu),
- q(5042) => q(npy),
- q(5043) => q(nqg),
- q(5044) => q(nqk),
- q(5045) => q(nqm),
- q(5046) => q(nqn),
- q(5047) => q(nqq),
- q(5048) => q(nqy),
- q(5049) => q(nra),
- q(5050) => q(nrb),
- q(5051) => q(nrc),
- q(5052) => q(nre),
- q(5053) => q(nrf),
- q(5054) => q(nrg),
- q(5055) => q(nri),
- q(5056) => q(nrk),
- q(5057) => q(nrl),
- q(5058) => q(nrm),
- q(5059) => q(nrn),
- q(5060) => q(nrp),
- q(5061) => q(nrr),
- q(5062) => q(nrt),
- q(5063) => q(nru),
- q(5064) => q(nrx),
- q(5065) => q(nrz),
- q(5066) => q(nsa),
- q(5067) => q(nsc),
- q(5068) => q(nsd),
- q(5069) => q(nse),
- q(5070) => q(nsf),
- q(5071) => q(nsg),
- q(5072) => q(nsh),
- q(5073) => q(nsi),
- q(5074) => q(nsk),
- q(5075) => q(nsl),
- q(5076) => q(nsm),
- q(5077) => q(nsn),
- q(5078) => q(nsp),
- q(5079) => q(nsq),
- q(5080) => q(nsr),
- q(5081) => q(nss),
- q(5082) => q(nst),
- q(5083) => q(nsu),
- q(5084) => q(nsv),
- q(5085) => q(nsw),
- q(5086) => q(nsx),
- q(5087) => q(nsy),
- q(5088) => q(nsz),
- q(5089) => q(nte),
- q(5090) => q(ntg),
- q(5091) => q(nti),
- q(5092) => q(ntj),
- q(5093) => q(ntk),
- q(5094) => q(ntm),
- q(5095) => q(nto),
- q(5096) => q(ntp),
- q(5097) => q(ntr),
- q(5098) => q(nts),
- q(5099) => q(ntu),
- q(5100) => q(ntw),
- q(5101) => q(ntx),
- q(5102) => q(nty),
- q(5103) => q(ntz),
- q(5104) => q(nua),
- q(5105) => q(nuc),
- q(5106) => q(nud),
- q(5107) => q(nue),
- q(5108) => q(nuf),
- q(5109) => q(nug),
- q(5110) => q(nuh),
- q(5111) => q(nui),
- q(5112) => q(nuj),
- q(5113) => q(nuk),
- q(5114) => q(nul),
- q(5115) => q(num),
- q(5116) => q(nun),
- q(5117) => q(nuo),
- q(5118) => q(nup),
- q(5119) => q(nuq),
- q(5120) => q(nur),
- q(5121) => q(nus),
- q(5122) => q(nut),
- q(5123) => q(nuu),
- q(5124) => q(nuv),
- q(5125) => q(nuw),
- q(5126) => q(nux),
- q(5127) => q(nuy),
- q(5128) => q(nuz),
- q(5129) => q(nvh),
- q(5130) => q(nvm),
- q(5131) => q(nvo),
- q(5132) => q(nwa),
- q(5133) => q(nwb),
- q(5134) => q(nwe),
- q(5135) => q(nwg),
- q(5136) => q(nwi),
- q(5137) => q(nwm),
- q(5138) => q(nwo),
- q(5139) => q(nwr),
- q(5140) => q(nwx),
- q(5141) => q(nwy),
- q(5142) => q(nxa),
- q(5143) => q(nxd),
- q(5144) => q(nxe),
- q(5145) => q(nxg),
- q(5146) => q(nxi),
- q(5147) => q(nxk),
- q(5148) => q(nxl),
- q(5149) => q(nxm),
- q(5150) => q(nxn),
- q(5151) => q(nxo),
- q(5152) => q(nxq),
- q(5153) => q(nxr),
- q(5154) => q(nxu),
- q(5155) => q(nxx),
- q(5156) => q(nyb),
- q(5157) => q(nyc),
- q(5158) => q(nyd),
- q(5159) => q(nye),
- q(5160) => q(nyf),
- q(5161) => q(nyg),
- q(5162) => q(nyh),
- q(5163) => q(nyi),
- q(5164) => q(nyj),
- q(5165) => q(nyk),
- q(5166) => q(nyl),
- q(5167) => q(nyp),
- q(5168) => q(nyq),
- q(5169) => q(nyr),
- q(5170) => q(nys),
- q(5171) => q(nyt),
- q(5172) => q(nyu),
- q(5173) => q(nyv),
- q(5174) => q(nyw),
- q(5175) => q(nyx),
- q(5176) => q(nyy),
- q(5177) => q(nza),
- q(5178) => q(nzb),
- q(5179) => q(nzk),
- q(5180) => q(nzm),
- q(5181) => q(nzs),
- q(5182) => q(nzu),
- q(5183) => q(nzy),
- q(5184) => q(nzz),
- q(5185) => q(oaa),
- q(5186) => q(oac),
- q(5187) => q(oar),
- q(5188) => q(oav),
- q(5189) => q(obi),
- q(5190) => q(obk),
- q(5191) => q(obl),
- q(5192) => q(obm),
- q(5193) => q(obo),
- q(5194) => q(obr),
- q(5195) => q(obt),
- q(5196) => q(obu),
- q(5197) => q(oca),
- q(5198) => q(och),
- q(5199) => q(oco),
- q(5200) => q(ocu),
- q(5201) => q(oda),
- q(5202) => q(odk),
- q(5203) => q(odt),
- q(5204) => q(odu),
- q(5205) => q(ofo),
- q(5206) => q(ofs),
- q(5207) => q(ofu),
- q(5208) => q(ogb),
- q(5209) => q(ogc),
- q(5210) => q(oge),
- q(5211) => q(ogg),
- q(5212) => q(ogo),
- q(5213) => q(ogu),
- q(5214) => q(oht),
- q(5215) => q(ohu),
- q(5216) => q(oia),
- q(5217) => q(oin),
- q(5218) => q(ojb),
- q(5219) => q(ojc),
- q(5220) => q(ojg),
- q(5221) => q(ojp),
- q(5222) => q(ojs),
- q(5223) => q(ojv),
- q(5224) => q(ojw),
- q(5225) => q(oka),
- q(5226) => q(okb),
- q(5227) => q(okd),
- q(5228) => q(oke),
- q(5229) => q(okg),
- q(5230) => q(okh),
- q(5231) => q(oki),
- q(5232) => q(okj),
- q(5233) => q(okk),
- q(5234) => q(okl),
- q(5235) => q(okm),
- q(5236) => q(okn),
- q(5237) => q(oko),
- q(5238) => q(okr),
- q(5239) => q(oks),
- q(5240) => q(oku),
- q(5241) => q(okv),
- q(5242) => q(okx),
- q(5243) => q(ola),
- q(5244) => q(old),
- q(5245) => q(ole),
- q(5246) => q(olk),
- q(5247) => q(olm),
- q(5248) => q(olo),
- q(5249) => q(olr),
- q(5250) => q(olt),
- q(5251) => q(oma),
- q(5252) => q(omb),
- q(5253) => q(omc),
- q(5254) => q(ome),
- q(5255) => q(omg),
- q(5256) => q(omi),
- q(5257) => q(omk),
- q(5258) => q(oml),
- q(5259) => q(omn),
- q(5260) => q(omo),
- q(5261) => q(omp),
- q(5262) => q(omr),
- q(5263) => q(omt),
- q(5264) => q(omu),
- q(5265) => q(omw),
- q(5266) => q(omx),
- q(5267) => q(ona),
- q(5268) => q(onb),
- q(5269) => q(one),
- q(5270) => q(ong),
- q(5271) => q(oni),
- q(5272) => q(onj),
- q(5273) => q(onk),
- q(5274) => q(onn),
- q(5275) => q(ono),
- q(5276) => q(onp),
- q(5277) => q(onr),
- q(5278) => q(ons),
- q(5279) => q(ont),
- q(5280) => q(onu),
- q(5281) => q(onw),
- q(5282) => q(onx),
- q(5283) => q(ood),
- q(5284) => q(oog),
- q(5285) => q(oon),
- q(5286) => q(oor),
- q(5287) => q(oos),
- q(5288) => q(opa),
- q(5289) => q(opk),
- q(5290) => q(opm),
- q(5291) => q(opo),
- q(5292) => q(opt),
- q(5293) => q(opy),
- q(5294) => q(ora),
- q(5295) => q(orc),
- q(5296) => q(ore),
- q(5297) => q(org),
- q(5298) => q(orh),
- q(5299) => q(orn),
- q(5300) => q(oro),
- q(5301) => q(orr),
- q(5302) => q(ors),
- q(5303) => q(ort),
- q(5304) => q(oru),
- q(5305) => q(orv),
- q(5306) => q(orw),
- q(5307) => q(orx),
- q(5308) => q(ory),
- q(5309) => q(orz),
- q(5310) => q(osc),
- q(5311) => q(osi),
- q(5312) => q(oso),
- q(5313) => q(osp),
- q(5314) => q(ost),
- q(5315) => q(osu),
- q(5316) => q(osx),
- q(5317) => q(otb),
- q(5318) => q(otd),
- q(5319) => q(ote),
- q(5320) => q(oti),
- q(5321) => q(otk),
- q(5322) => q(otl),
- q(5323) => q(otm),
- q(5324) => q(otn),
- q(5325) => q(otq),
- q(5326) => q(otr),
- q(5327) => q(ots),
- q(5328) => q(ott),
- q(5329) => q(otu),
- q(5330) => q(otw),
- q(5331) => q(otx),
- q(5332) => q(oty),
- q(5333) => q(otz),
- q(5334) => q(oua),
- q(5335) => q(oub),
- q(5336) => q(oue),
- q(5337) => q(oui),
- q(5338) => q(oum),
- q(5339) => q(owi),
- q(5340) => q(owl),
- q(5341) => q(oyb),
- q(5342) => q(oyd),
- q(5343) => q(oym),
- q(5344) => q(oyy),
- q(5345) => q(ozm),
- q(5346) => q(pab),
- q(5347) => q(pac),
- q(5348) => q(pad),
- q(5349) => q(pae),
- q(5350) => q(paf),
- q(5351) => q(pah),
- q(5352) => q(pai),
- q(5353) => q(pak),
- q(5354) => q(pao),
- q(5355) => q(paq),
- q(5356) => q(par),
- q(5357) => q(pas),
- q(5358) => q(pat),
- q(5359) => q(pav),
- q(5360) => q(paw),
- q(5361) => q(pax),
- q(5362) => q(pay),
- q(5363) => q(paz),
- q(5364) => q(pbb),
- q(5365) => q(pbc),
- q(5366) => q(pbe),
- q(5367) => q(pbf),
- q(5368) => q(pbg),
- q(5369) => q(pbh),
- q(5370) => q(pbi),
- q(5371) => q(pbl),
- q(5372) => q(pbn),
- q(5373) => q(pbo),
- q(5374) => q(pbp),
- q(5375) => q(pbr),
- q(5376) => q(pbs),
- q(5377) => q(pbt),
- q(5378) => q(pbu),
- q(5379) => q(pbv),
- q(5380) => q(pby),
- q(5381) => q(pca),
- q(5382) => q(pcb),
- q(5383) => q(pcc),
- q(5384) => q(pcd),
- q(5385) => q(pce),
- q(5386) => q(pcf),
- q(5387) => q(pcg),
- q(5388) => q(pch),
- q(5389) => q(pci),
- q(5390) => q(pcj),
- q(5391) => q(pck),
- q(5392) => q(pcl),
- q(5393) => q(pcm),
- q(5394) => q(pcn),
- q(5395) => q(pcp),
- q(5396) => q(pcw),
- q(5397) => q(pda),
- q(5398) => q(pdc),
- q(5399) => q(pdi),
- q(5400) => q(pdn),
- q(5401) => q(pdo),
- q(5402) => q(pdt),
- q(5403) => q(pdu),
- q(5404) => q(pea),
- q(5405) => q(peb),
- q(5406) => q(ped),
- q(5407) => q(pee),
- q(5408) => q(pef),
- q(5409) => q(peg),
- q(5410) => q(peh),
- q(5411) => q(pei),
- q(5412) => q(pej),
- q(5413) => q(pek),
- q(5414) => q(pel),
- q(5415) => q(pem),
- q(5416) => q(pep),
- q(5417) => q(peq),
- q(5418) => q(pes),
- q(5419) => q(pev),
- q(5420) => q(pex),
- q(5421) => q(pey),
- q(5422) => q(pez),
- q(5423) => q(pfa),
- q(5424) => q(pfe),
- q(5425) => q(pfl),
- q(5426) => q(pga),
- q(5427) => q(pgd),
- q(5428) => q(pgg),
- q(5429) => q(pgi),
- q(5430) => q(pgk),
- q(5431) => q(pgl),
- q(5432) => q(pgn),
- q(5433) => q(pgs),
- q(5434) => q(pgu),
- q(5435) => q(pha),
- q(5436) => q(phd),
- q(5437) => q(phg),
- q(5438) => q(phh),
- q(5439) => q(phk),
- q(5440) => q(phl),
- q(5441) => q(phm),
- q(5442) => q(pho),
- q(5443) => q(phq),
- q(5444) => q(phr),
- q(5445) => q(pht),
- q(5446) => q(phu),
- q(5447) => q(phv),
- q(5448) => q(phw),
- q(5449) => q(pia),
- q(5450) => q(pib),
- q(5451) => q(pic),
- q(5452) => q(pid),
- q(5453) => q(pie),
- q(5454) => q(pif),
- q(5455) => q(pig),
- q(5456) => q(pih),
- q(5457) => q(pii),
- q(5458) => q(pij),
- q(5459) => q(pil),
- q(5460) => q(pim),
- q(5461) => q(pin),
- q(5462) => q(pio),
- q(5463) => q(pip),
- q(5464) => q(pir),
- q(5465) => q(pis),
- q(5466) => q(pit),
- q(5467) => q(piu),
- q(5468) => q(piv),
- q(5469) => q(piw),
- q(5470) => q(pix),
- q(5471) => q(piy),
- q(5472) => q(piz),
- q(5473) => q(pjt),
- q(5474) => q(pka),
- q(5475) => q(pkb),
- q(5476) => q(pkc),
- q(5477) => q(pkg),
- q(5478) => q(pkh),
- q(5479) => q(pkn),
- q(5480) => q(pko),
- q(5481) => q(pkp),
- q(5482) => q(pkr),
- q(5483) => q(pks),
- q(5484) => q(pkt),
- q(5485) => q(pku),
- q(5486) => q(pla),
- q(5487) => q(plb),
- q(5488) => q(plc),
- q(5489) => q(pld),
- q(5490) => q(ple),
- q(5491) => q(plg),
- q(5492) => q(plh),
- q(5493) => q(plj),
- q(5494) => q(plk),
- q(5495) => q(pll),
- q(5496) => q(pln),
- q(5497) => q(plo),
- q(5498) => q(plp),
- q(5499) => q(plq),
- q(5500) => q(plr),
- q(5501) => q(pls),
- q(5502) => q(plt),
- q(5503) => q(plu),
- q(5504) => q(plv),
- q(5505) => q(plw),
- q(5506) => q(ply),
- q(5507) => q(plz),
- q(5508) => q(pma),
- q(5509) => q(pmb),
- q(5510) => q(pmc),
- q(5511) => q(pmd),
- q(5512) => q(pme),
- q(5513) => q(pmf),
- q(5514) => q(pmh),
- q(5515) => q(pmi),
- q(5516) => q(pmj),
- q(5517) => q(pmk),
- q(5518) => q(pml),
- q(5519) => q(pmm),
- q(5520) => q(pmn),
- q(5521) => q(pmo),
- q(5522) => q(pmq),
- q(5523) => q(pmr),
- q(5524) => q(pms),
- q(5525) => q(pmt),
- q(5526) => q(pmw),
- q(5527) => q(pmx),
- q(5528) => q(pmy),
- q(5529) => q(pmz),
- q(5530) => q(pna),
- q(5531) => q(pnb),
- q(5532) => q(pnc),
- q(5533) => q(pne),
- q(5534) => q(png),
- q(5535) => q(pnh),
- q(5536) => q(pni),
- q(5537) => q(pnj),
- q(5538) => q(pnk),
- q(5539) => q(pnl),
- q(5540) => q(pnm),
- q(5541) => q(pnn),
- q(5542) => q(pno),
- q(5543) => q(pnp),
- q(5544) => q(pnq),
- q(5545) => q(pnr),
- q(5546) => q(pns),
- q(5547) => q(pnt),
- q(5548) => q(pnu),
- q(5549) => q(pnv),
- q(5550) => q(pnw),
- q(5551) => q(pnx),
- q(5552) => q(pny),
- q(5553) => q(pnz),
- q(5554) => q(poc),
- q(5555) => q(pod),
- q(5556) => q(poe),
- q(5557) => q(pof),
- q(5558) => q(pog),
- q(5559) => q(poh),
- q(5560) => q(poi),
- q(5561) => q(pok),
- q(5562) => q(pom),
- q(5563) => q(poo),
- q(5564) => q(pop),
- q(5565) => q(poq),
- q(5566) => q(pos),
- q(5567) => q(pot),
- q(5568) => q(pov),
- q(5569) => q(pow),
- q(5570) => q(pox),
- q(5571) => q(poy),
- q(5572) => q(ppa),
- q(5573) => q(ppe),
- q(5574) => q(ppi),
- q(5575) => q(ppk),
- q(5576) => q(ppl),
- q(5577) => q(ppm),
- q(5578) => q(ppn),
- q(5579) => q(ppo),
- q(5580) => q(ppp),
- q(5581) => q(ppq),
- q(5582) => q(pps),
- q(5583) => q(ppt),
- q(5584) => q(ppu),
- q(5585) => q(pqa),
- q(5586) => q(pqm),
- q(5587) => q(prb),
- q(5588) => q(prc),
- q(5589) => q(prd),
- q(5590) => q(pre),
- q(5591) => q(prf),
- q(5592) => q(prg),
- q(5593) => q(prh),
- q(5594) => q(pri),
- q(5595) => q(prk),
- q(5596) => q(prl),
- q(5597) => q(prm),
- q(5598) => q(prn),
- q(5599) => q(prp),
- q(5600) => q(prq),
- q(5601) => q(prr),
- q(5602) => q(prs),
- q(5603) => q(prt),
- q(5604) => q(pru),
- q(5605) => q(prw),
- q(5606) => q(prx),
- q(5607) => q(pry),
- q(5608) => q(prz),
- q(5609) => q(psa),
- q(5610) => q(psc),
- q(5611) => q(psd),
- q(5612) => q(pse),
- q(5613) => q(psg),
- q(5614) => q(psh),
- q(5615) => q(psi),
- q(5616) => q(psl),
- q(5617) => q(psm),
- q(5618) => q(psn),
- q(5619) => q(pso),
- q(5620) => q(psp),
- q(5621) => q(psq),
- q(5622) => q(psr),
- q(5623) => q(pss),
- q(5624) => q(pst),
- q(5625) => q(psu),
- q(5626) => q(psw),
- q(5627) => q(psy),
- q(5628) => q(pta),
- q(5629) => q(pth),
- q(5630) => q(pti),
- q(5631) => q(ptn),
- q(5632) => q(pto),
- q(5633) => q(ptp),
- q(5634) => q(ptq),
- q(5635) => q(ptr),
- q(5636) => q(ptt),
- q(5637) => q(ptu),
- q(5638) => q(ptv),
- q(5639) => q(ptw),
- q(5640) => q(pty),
- q(5641) => q(pua),
- q(5642) => q(pub),
- q(5643) => q(puc),
- q(5644) => q(pud),
- q(5645) => q(pue),
- q(5646) => q(puf),
- q(5647) => q(pug),
- q(5648) => q(pui),
- q(5649) => q(puj),
- q(5650) => q(puk),
- q(5651) => q(pum),
- q(5652) => q(puo),
- q(5653) => q(pup),
- q(5654) => q(puq),
- q(5655) => q(pur),
- q(5656) => q(put),
- q(5657) => q(puu),
- q(5658) => q(puw),
- q(5659) => q(pux),
- q(5660) => q(puy),
- q(5661) => q(pwa),
- q(5662) => q(pwb),
- q(5663) => q(pwg),
- q(5664) => q(pwi),
- q(5665) => q(pwm),
- q(5666) => q(pwn),
- q(5667) => q(pwo),
- q(5668) => q(pwr),
- q(5669) => q(pww),
- q(5670) => q(pxm),
- q(5671) => q(pye),
- q(5672) => q(pym),
- q(5673) => q(pyn),
- q(5674) => q(pys),
- q(5675) => q(pyu),
- q(5676) => q(pyx),
- q(5677) => q(pyy),
- q(5678) => q(pzn),
- q(5679) => q(qua),
- q(5680) => q(qub),
- q(5681) => q(quc),
- q(5682) => q(qud),
- q(5683) => q(quf),
- q(5684) => q(qug),
- q(5685) => q(quh),
- q(5686) => q(qui),
- q(5687) => q(quk),
- q(5688) => q(qul),
- q(5689) => q(qum),
- q(5690) => q(qun),
- q(5691) => q(qup),
- q(5692) => q(quq),
- q(5693) => q(qur),
- q(5694) => q(qus),
- q(5695) => q(quv),
- q(5696) => q(quw),
- q(5697) => q(qux),
- q(5698) => q(quy),
- q(5699) => q(quz),
- q(5700) => q(qva),
- q(5701) => q(qvc),
- q(5702) => q(qve),
- q(5703) => q(qvh),
- q(5704) => q(qvi),
- q(5705) => q(qvj),
- q(5706) => q(qvl),
- q(5707) => q(qvm),
- q(5708) => q(qvn),
- q(5709) => q(qvo),
- q(5710) => q(qvp),
- q(5711) => q(qvs),
- q(5712) => q(qvw),
- q(5713) => q(qvy),
- q(5714) => q(qvz),
- q(5715) => q(qwa),
- q(5716) => q(qwc),
- q(5717) => q(qwh),
- q(5718) => q(qwm),
- q(5719) => q(qws),
- q(5720) => q(qwt),
- q(5721) => q(qxa),
- q(5722) => q(qxc),
- q(5723) => q(qxh),
- q(5724) => q(qxl),
- q(5725) => q(qxn),
- q(5726) => q(qxo),
- q(5727) => q(qxp),
- q(5728) => q(qxq),
- q(5729) => q(qxr),
- q(5730) => q(qxs),
- q(5731) => q(qxt),
- q(5732) => q(qxu),
- q(5733) => q(qxw),
- q(5734) => q(qya),
- q(5735) => q(qyp),
- q(5736) => q(raa),
- q(5737) => q(rab),
- q(5738) => q(rac),
- q(5739) => q(rad),
- q(5740) => q(raf),
- q(5741) => q(rag),
- q(5742) => q(rah),
- q(5743) => q(rai),
- q(5744) => q(rak),
- q(5745) => q(ral),
- q(5746) => q(ram),
- q(5747) => q(ran),
- q(5748) => q(rao),
- q(5749) => q(raq),
- q(5750) => q(ras),
- q(5751) => q(rat),
- q(5752) => q(rau),
- q(5753) => q(rav),
- q(5754) => q(raw),
- q(5755) => q(rax),
- q(5756) => q(ray),
- q(5757) => q(raz),
- q(5758) => q(rbb),
- q(5759) => q(rbk),
- q(5760) => q(rbl),
- q(5761) => q(rbp),
- q(5762) => q(rcf),
- q(5763) => q(rdb),
- q(5764) => q(rea),
- q(5765) => q(reb),
- q(5766) => q(ree),
- q(5767) => q(reg),
- q(5768) => q(rei),
- q(5769) => q(rej),
- q(5770) => q(rel),
- q(5771) => q(rem),
- q(5772) => q(ren),
- q(5773) => q(rer),
- q(5774) => q(res),
- q(5775) => q(ret),
- q(5776) => q(rey),
- q(5777) => q(rga),
- q(5778) => q(rge),
- q(5779) => q(rgk),
- q(5780) => q(rgn),
- q(5781) => q(rgr),
- q(5782) => q(rgs),
- q(5783) => q(rgu),
- q(5784) => q(rhg),
- q(5785) => q(rhp),
- q(5786) => q(ria),
- q(5787) => q(rie),
- q(5788) => q(rif),
- q(5789) => q(ril),
- q(5790) => q(rim),
- q(5791) => q(rin),
- q(5792) => q(rir),
- q(5793) => q(rit),
- q(5794) => q(riu),
- q(5795) => q(rjg),
- q(5796) => q(rji),
- q(5797) => q(rjs),
- q(5798) => q(rka),
- q(5799) => q(rkb),
- q(5800) => q(rkh),
- q(5801) => q(rki),
- q(5802) => q(rkm),
- q(5803) => q(rkt),
- q(5804) => q(rkw),
- q(5805) => q(rma),
- q(5806) => q(rmb),
- q(5807) => q(rmc),
- q(5808) => q(rmd),
- q(5809) => q(rme),
- q(5810) => q(rmf),
- q(5811) => q(rmg),
- q(5812) => q(rmh),
- q(5813) => q(rmi),
- q(5814) => q(rmk),
- q(5815) => q(rml),
- q(5816) => q(rmm),
- q(5817) => q(rmn),
- q(5818) => q(rmo),
- q(5819) => q(rmp),
- q(5820) => q(rmq),
- q(5821) => q(rms),
- q(5822) => q(rmt),
- q(5823) => q(rmu),
- q(5824) => q(rmv),
- q(5825) => q(rmw),
- q(5826) => q(rmx),
- q(5827) => q(rmy),
- q(5828) => q(rmz),
- q(5829) => q(rna),
- q(5830) => q(rnd),
- q(5831) => q(rng),
- q(5832) => q(rnl),
- q(5833) => q(rnn),
- q(5834) => q(rnp),
- q(5835) => q(rnr),
- q(5836) => q(rnw),
- q(5837) => q(rob),
- q(5838) => q(roc),
- q(5839) => q(rod),
- q(5840) => q(roe),
- q(5841) => q(rof),
- q(5842) => q(rog),
- q(5843) => q(rol),
- q(5844) => q(roo),
- q(5845) => q(rop),
- q(5846) => q(ror),
- q(5847) => q(rou),
- q(5848) => q(row),
- q(5849) => q(rpn),
- q(5850) => q(rpt),
- q(5851) => q(rri),
- q(5852) => q(rro),
- q(5853) => q(rrt),
- q(5854) => q(rsb),
- q(5855) => q(rsi),
- q(5856) => q(rsl),
- q(5857) => q(rtc),
- q(5858) => q(rth),
- q(5859) => q(rtm),
- q(5860) => q(rts),
- q(5861) => q(rtw),
- q(5862) => q(rub),
- q(5863) => q(ruc),
- q(5864) => q(rue),
- q(5865) => q(ruf),
- q(5866) => q(rug),
- q(5867) => q(ruh),
- q(5868) => q(rui),
- q(5869) => q(ruk),
- q(5870) => q(ruo),
- q(5871) => q(ruq),
- q(5872) => q(rut),
- q(5873) => q(ruu),
- q(5874) => q(ruy),
- q(5875) => q(ruz),
- q(5876) => q(rwa),
- q(5877) => q(rwk),
- q(5878) => q(rwm),
- q(5879) => q(rwo),
- q(5880) => q(rwr),
- q(5881) => q(rxd),
- q(5882) => q(rxw),
- q(5883) => q(ryn),
- q(5884) => q(rys),
- q(5885) => q(ryu),
- q(5886) => q(saa),
- q(5887) => q(sab),
- q(5888) => q(sac),
- q(5889) => q(sae),
- q(5890) => q(saf),
- q(5891) => q(saj),
- q(5892) => q(sak),
- q(5893) => q(sao),
- q(5894) => q(saq),
- q(5895) => q(sar),
- q(5896) => q(sau),
- q(5897) => q(sav),
- q(5898) => q(saw),
- q(5899) => q(sax),
- q(5900) => q(say),
- q(5901) => q(saz),
- q(5902) => q(sba),
- q(5903) => q(sbb),
- q(5904) => q(sbc),
- q(5905) => q(sbd),
- q(5906) => q(slc),
- q(5907) => q(sbf),
- q(5908) => q(sbg),
- q(5909) => q(sbh),
- q(5910) => q(sbi),
- q(5911) => q(sbj),
- q(5912) => q(sbk),
- q(5913) => q(sbl),
- q(5914) => q(sbm),
- q(5915) => q(sbn),
- q(5916) => q(sbo),
- q(5917) => q(sbp),
- q(5918) => q(sbq),
- q(5919) => q(sbr),
- q(5920) => q(sbs),
- q(5921) => q(sbt),
- q(5922) => q(sbu),
- q(5923) => q(sbv),
- q(5924) => q(sbw),
- q(5925) => q(sbx),
- q(5926) => q(sby),
- q(5927) => q(sbz),
- q(5928) => q(scb),
- q(5929) => q(sce),
- q(5930) => q(scf),
- q(5931) => q(scg),
- q(5932) => q(sch),
- q(5933) => q(sci),
- q(5934) => q(sck),
- q(5935) => q(scl),
- q(5936) => q(scp),
- q(5937) => q(scq),
- q(5938) => q(scs),
- q(5939) => q(scu),
- q(5940) => q(scv),
- q(5941) => q(scw),
- q(5942) => q(scx),
- q(5943) => q(sda),
- q(5944) => q(sdb),
- q(5945) => q(sdc),
- q(5946) => q(sde),
- q(5947) => q(sdf),
- q(5948) => q(sdg),
- q(5949) => q(sdh),
- q(5950) => q(sdj),
- q(5951) => q(sdk),
- q(5952) => q(sdl),
- q(5953) => q(sdm),
- q(5954) => q(sdn),
- q(5955) => q(sdo),
- q(5956) => q(sdp),
- q(5957) => q(sdr),
- q(5958) => q(sds),
- q(5959) => q(sdt),
- q(5960) => q(sdu),
- q(5961) => q(sdx),
- q(5962) => q(sdz),
- q(5963) => q(sea),
- q(5964) => q(seb),
- q(5965) => q(sec),
- q(5966) => q(sed),
- q(5967) => q(see),
- q(5968) => q(sef),
- q(5969) => q(seg),
- q(5970) => q(seh),
- q(5971) => q(sei),
- q(5972) => q(sej),
- q(5973) => q(sek),
- q(5974) => q(sen),
- q(5975) => q(seo),
- q(5976) => q(sep),
- q(5977) => q(seq),
- q(5978) => q(ser),
- q(5979) => q(ses),
- q(5980) => q(set),
- q(5981) => q(seu),
- q(5982) => q(sev),
- q(5983) => q(sew),
- q(5984) => q(sey),
- q(5985) => q(sez),
- q(5986) => q(sfb),
- q(5987) => q(sfe),
- q(5988) => q(sfm),
- q(5989) => q(sfs),
- q(5990) => q(sfw),
- q(5991) => q(sgb),
- q(5992) => q(sgc),
- q(5993) => q(sgd),
- q(5994) => q(sge),
- q(5995) => q(sgg),
- q(5996) => q(sgh),
- q(5997) => q(sgi),
- q(5998) => q(sgj),
- q(5999) => q(sgk),
- q(6000) => q(sgm),
- q(6001) => q(sgp),
- q(6002) => q(sgr),
- q(6003) => q(sgs),
- q(6004) => q(sgt),
- q(6005) => q(sgu),
- q(6006) => q(sgw),
- q(6007) => q(sgx),
- q(6008) => q(sgy),
- q(6009) => q(sgz),
- q(6010) => q(sha),
- q(6011) => q(shb),
- q(6012) => q(shc),
- q(6013) => q(shd),
- q(6014) => q(she),
- q(6015) => q(shg),
- q(6016) => q(shh),
- q(6017) => q(shi),
- q(6018) => q(shj),
- q(6019) => q(shk),
- q(6020) => q(shl),
- q(6021) => q(shm),
- q(6022) => q(sho),
- q(6023) => q(shp),
- q(6024) => q(shq),
- q(6025) => q(shr),
- q(6026) => q(shs),
- q(6027) => q(sht),
- q(6028) => q(shu),
- q(6029) => q(shv),
- q(6030) => q(shw),
- q(6031) => q(shx),
- q(6032) => q(shy),
- q(6033) => q(shz),
- q(6034) => q(sia),
- q(6035) => q(sib),
- q(6036) => q(sie),
- q(6037) => q(sif),
- q(6038) => q(sig),
- q(6039) => q(sih),
- q(6040) => q(sii),
- q(6041) => q(sij),
- q(6042) => q(sik),
- q(6043) => q(sil),
- q(6044) => q(sim),
- q(6045) => q(sip),
- q(6046) => q(siq),
- q(6047) => q(sir),
- q(6048) => q(sis),
- q(6049) => q(siu),
- q(6050) => q(siv),
- q(6051) => q(siw),
- q(6052) => q(six),
- q(6053) => q(siy),
- q(6054) => q(siz),
- q(6055) => q(sja),
- q(6056) => q(sjb),
- q(6057) => q(sjd),
- q(6058) => q(sje),
- q(6059) => q(sjg),
- q(6060) => q(sjk),
- q(6061) => q(sjl),
- q(6062) => q(sjm),
- q(6063) => q(sjn),
- q(6064) => q(sjo),
- q(6065) => q(sjp),
- q(6066) => q(sjr),
- q(6067) => q(sjs),
- q(6068) => q(sjt),
- q(6069) => q(sju),
- q(6070) => q(sjw),
- q(6071) => q(ska),
- q(6072) => q(skb),
- q(6073) => q(skc),
- q(6074) => q(skd),
- q(6075) => q(ske),
- q(6076) => q(skf),
- q(6077) => q(skg),
- q(6078) => q(skh),
- q(6079) => q(ski),
- q(6080) => q(skj),
- q(6081) => q(skk),
- q(6082) => q(skm),
- q(6083) => q(skn),
- q(6084) => q(sko),
- q(6085) => q(skp),
- q(6086) => q(skq),
- q(6087) => q(skr),
- q(6088) => q(sks),
- q(6089) => q(skt),
- q(6090) => q(sku),
- q(6091) => q(skv),
- q(6092) => q(skw),
- q(6093) => q(skx),
- q(6094) => q(sky),
- q(6095) => q(skz),
- q(6096) => q(sld),
- q(6097) => q(sle),
- q(6098) => q(slf),
- q(6099) => q(slg),
- q(6100) => q(slh),
- q(6101) => q(sli),
- q(6102) => q(slj),
- q(6103) => q(sll),
- q(6104) => q(slm),
- q(6105) => q(sln),
- q(6106) => q(slp),
- q(6107) => q(slq),
- q(6108) => q(slr),
- q(6109) => q(sls),
- q(6110) => q(slt),
- q(6111) => q(slu),
- q(6112) => q(slw),
- q(6113) => q(slx),
- q(6114) => q(sly),
- q(6115) => q(slz),
- q(6116) => q(smb),
- q(6117) => q(smc),
- q(6118) => q(smd),
- q(6119) => q(smf),
- q(6120) => q(smg),
- q(6121) => q(smh),
- q(6122) => q(smk),
- q(6123) => q(sml),
- q(6124) => q(smm),
- q(6125) => q(smp),
- q(6126) => q(smq),
- q(6127) => q(smr),
- q(6128) => q(smt),
- q(6129) => q(smu),
- q(6130) => q(smv),
- q(6131) => q(smw),
- q(6132) => q(smx),
- q(6133) => q(smy),
- q(6134) => q(smz),
- q(6135) => q(snb),
- q(6136) => q(snc),
- q(6137) => q(sne),
- q(6138) => q(snf),
- q(6139) => q(sng),
- q(6140) => q(snh),
- q(6141) => q(sni),
- q(6142) => q(snj),
- q(6143) => q(snl),
- q(6144) => q(snm),
- q(6145) => q(snn),
- q(6146) => q(sno),
- q(6147) => q(snp),
- q(6148) => q(snq),
- q(6149) => q(snr),
- q(6150) => q(sns),
- q(6151) => q(snu),
- q(6152) => q(snv),
- q(6153) => q(snw),
- q(6154) => q(snx),
- q(6155) => q(sny),
- q(6156) => q(snz),
- q(6157) => q(soa),
- q(6158) => q(sob),
- q(6159) => q(soc),
- q(6160) => q(sod),
- q(6161) => q(soe),
- q(6162) => q(soh),
- q(6163) => q(soi),
- q(6164) => q(soj),
- q(6165) => q(sok),
- q(6166) => q(sol),
- q(6167) => q(soo),
- q(6168) => q(sop),
- q(6169) => q(soq),
- q(6170) => q(sor),
- q(6171) => q(sos),
- q(6172) => q(sou),
- q(6173) => q(sov),
- q(6174) => q(sow),
- q(6175) => q(sox),
- q(6176) => q(soy),
- q(6177) => q(soz),
- q(6178) => q(spb),
- q(6179) => q(spc),
- q(6180) => q(spd),
- q(6181) => q(spe),
- q(6182) => q(spg),
- q(6183) => q(spi),
- q(6184) => q(spk),
- q(6185) => q(spl),
- q(6186) => q(spm),
- q(6187) => q(spn),
- q(6188) => q(spo),
- q(6189) => q(spp),
- q(6190) => q(spq),
- q(6191) => q(spr),
- q(6192) => q(sps),
- q(6193) => q(spt),
- q(6194) => q(spu),
- q(6195) => q(spv),
- q(6196) => q(spx),
- q(6197) => q(spy),
- q(6198) => q(sqa),
- q(6199) => q(sqh),
- q(6200) => q(sqk),
- q(6201) => q(sqm),
- q(6202) => q(sqn),
- q(6203) => q(sqo),
- q(6204) => q(sqq),
- q(6205) => q(sqr),
- q(6206) => q(sqs),
- q(6207) => q(sqt),
- q(6208) => q(squ),
- q(6209) => q(sra),
- q(6210) => q(srb),
- q(6211) => q(src),
- q(6212) => q(sre),
- q(6213) => q(srf),
- q(6214) => q(srg),
- q(6215) => q(srh),
- q(6216) => q(sri),
- q(6217) => q(srk),
- q(6218) => q(srl),
- q(6219) => q(srm),
- q(6220) => q(sro),
- q(6221) => q(srq),
- q(6222) => q(srs),
- q(6223) => q(srt),
- q(6224) => q(sru),
- q(6225) => q(srv),
- q(6226) => q(srw),
- q(6227) => q(srx),
- q(6228) => q(sry),
- q(6229) => q(srz),
- q(6230) => q(ssb),
- q(6231) => q(ssc),
- q(6232) => q(ssd),
- q(6233) => q(sse),
- q(6234) => q(ssf),
- q(6235) => q(ssg),
- q(6236) => q(ssh),
- q(6237) => q(ssi),
- q(6238) => q(ssj),
- q(6239) => q(ssk),
- q(6240) => q(ssl),
- q(6241) => q(ssm),
- q(6242) => q(ssn),
- q(6243) => q(sso),
- q(6244) => q(ssp),
- q(6245) => q(ssq),
- q(6246) => q(ssr),
- q(6247) => q(sss),
- q(6248) => q(sst),
- q(6249) => q(ssu),
- q(6250) => q(ssv),
- q(6251) => q(ssx),
- q(6252) => q(ssy),
- q(6253) => q(ssz),
- q(6254) => q(sta),
- q(6255) => q(stb),
- q(6256) => q(std),
- q(6257) => q(ste),
- q(6258) => q(stf),
- q(6259) => q(stg),
- q(6260) => q(sth),
- q(6261) => q(sti),
- q(6262) => q(stj),
- q(6263) => q(stk),
- q(6264) => q(stl),
- q(6265) => q(stm),
- q(6266) => q(stn),
- q(6267) => q(sto),
- q(6268) => q(stp),
- q(6269) => q(stq),
- q(6270) => q(str),
- q(6271) => q(sts),
- q(6272) => q(stt),
- q(6273) => q(stu),
- q(6274) => q(stv),
- q(6275) => q(stw),
- q(6276) => q(sty),
- q(6277) => q(sua),
- q(6278) => q(sub),
- q(6279) => q(suc),
- q(6280) => q(sue),
- q(6281) => q(sug),
- q(6282) => q(sui),
- q(6283) => q(suj),
- q(6284) => q(suq),
- q(6285) => q(sur),
- q(6286) => q(sut),
- q(6287) => q(suv),
- q(6288) => q(suw),
- q(6289) => q(suy),
- q(6290) => q(suz),
- q(6291) => q(sva),
- q(6292) => q(svb),
- q(6293) => q(svc),
- q(6294) => q(sve),
- q(6295) => q(svk),
- q(6296) => q(svm),
- q(6297) => q(svr),
- q(6298) => q(svs),
- q(6299) => q(svx),
- q(6300) => q(swb),
- q(6301) => q(swc),
- q(6302) => q(swf),
- q(6303) => q(swg),
- q(6304) => q(swh),
- q(6305) => q(swi),
- q(6306) => q(swj),
- q(6307) => q(swk),
- q(6308) => q(swl),
- q(6309) => q(swm),
- q(6310) => q(swn),
- q(6311) => q(swo),
- q(6312) => q(swp),
- q(6313) => q(swq),
- q(6314) => q(swr),
- q(6315) => q(sws),
- q(6316) => q(swt),
- q(6317) => q(swu),
- q(6318) => q(swv),
- q(6319) => q(sww),
- q(6320) => q(swx),
- q(6321) => q(swy),
- q(6322) => q(sxb),
- q(6323) => q(sxc),
- q(6324) => q(sxe),
- q(6325) => q(sxg),
- q(6326) => q(sxk),
- q(6327) => q(sxl),
- q(6328) => q(sxm),
- q(6329) => q(sxn),
- q(6330) => q(sxo),
- q(6331) => q(sxr),
- q(6332) => q(sxs),
- q(6333) => q(sxu),
- q(6334) => q(sxw),
- q(6335) => q(sya),
- q(6336) => q(syb),
- q(6337) => q(syi),
- q(6338) => q(syk),
- q(6339) => q(syl),
- q(6340) => q(sym),
- q(6341) => q(syn),
- q(6342) => q(syo),
- q(6343) => q(sys),
- q(6344) => q(syw),
- q(6345) => q(syx),
- q(6346) => q(syy),
- q(6347) => q(sza),
- q(6348) => q(szb),
- q(6349) => q(szc),
- q(6350) => q(szd),
- q(6351) => q(sze),
- q(6352) => q(szg),
- q(6353) => q(szl),
- q(6354) => q(szn),
- q(6355) => q(szp),
- q(6356) => q(szv),
- q(6357) => q(szw),
- q(6358) => q(taa),
- q(6359) => q(tab),
- q(6360) => q(tac),
- q(6361) => q(tad),
- q(6362) => q(tae),
- q(6363) => q(taf),
- q(6364) => q(tag),
- q(6365) => q(taj),
- q(6366) => q(tak),
- q(6367) => q(tal),
- q(6368) => q(tan),
- q(6369) => q(tao),
- q(6370) => q(tap),
- q(6371) => q(taq),
- q(6372) => q(tar),
- q(6373) => q(tas),
- q(6374) => q(tau),
- q(6375) => q(tav),
- q(6376) => q(taw),
- q(6377) => q(tax),
- q(6378) => q(tay),
- q(6379) => q(taz),
- q(6380) => q(tba),
- q(6381) => q(tbb),
- q(6382) => q(tbc),
- q(6383) => q(tbd),
- q(6384) => q(tbe),
- q(6385) => q(tbf),
- q(6386) => q(tbg),
- q(6387) => q(tbh),
- q(6388) => q(tbi),
- q(6389) => q(tbj),
- q(6390) => q(tbk),
- q(6391) => q(tbl),
- q(6392) => q(tbm),
- q(6393) => q(tbn),
- q(6394) => q(tbo),
- q(6395) => q(tbp),
- q(6396) => q(tbr),
- q(6397) => q(tbs),
- q(6398) => q(tbt),
- q(6399) => q(tbu),
- q(6400) => q(tbv),
- q(6401) => q(tbw),
- q(6402) => q(tbx),
- q(6403) => q(tby),
- q(6404) => q(tbz),
- q(6405) => q(tca),
- q(6406) => q(tcb),
- q(6407) => q(tcc),
- q(6408) => q(tcd),
- q(6409) => q(tce),
- q(6410) => q(tcf),
- q(6411) => q(tcg),
- q(6412) => q(tch),
- q(6413) => q(wbf),
- q(6414) => q(tck),
- q(6415) => q(tcl),
- q(6416) => q(tcm),
- q(6417) => q(tcn),
- q(6418) => q(tco),
- q(6419) => q(tcp),
- q(6420) => q(tcq),
- q(6421) => q(tcs),
- q(6422) => q(tct),
- q(6423) => q(tcu),
- q(6424) => q(tcw),
- q(6425) => q(tcx),
- q(6426) => q(tcy),
- q(6427) => q(tcz),
- q(6428) => q(tda),
- q(6429) => q(tdb),
- q(6430) => q(tdc),
- q(6431) => q(tdd),
- q(6432) => q(tde),
- q(6433) => q(tdf),
- q(6434) => q(tdg),
- q(6435) => q(tdh),
- q(6436) => q(tdi),
- q(6437) => q(tdj),
- q(6438) => q(tdk),
- q(6439) => q(tdl),
- q(6440) => q(tdn),
- q(6441) => q(tdo),
- q(6442) => q(tdq),
- q(6443) => q(tdr),
- q(6444) => q(tds),
- q(6445) => q(tdt),
- q(6446) => q(tdu),
- q(6447) => q(tdv),
- q(6448) => q(tdx),
- q(6449) => q(tdy),
- q(6450) => q(tea),
- q(6451) => q(teb),
- q(6452) => q(tec),
- q(6453) => q(ted),
- q(6454) => q(tee),
- q(6455) => q(tef),
- q(6456) => q(teg),
- q(6457) => q(teh),
- q(6458) => q(tei),
- q(6459) => q(tek),
- q(6460) => q(ten),
- q(6461) => q(teo),
- q(6462) => q(tep),
- q(6463) => q(teq),
- q(6464) => q(tes),
- q(6465) => q(teu),
- q(6466) => q(tev),
- q(6467) => q(tew),
- q(6468) => q(tex),
- q(6469) => q(tey),
- q(6470) => q(tfi),
- q(6471) => q(tfn),
- q(6472) => q(tfo),
- q(6473) => q(tfr),
- q(6474) => q(tft),
- q(6475) => q(tga),
- q(6476) => q(tgb),
- q(6477) => q(tgc),
- q(6478) => q(tgd),
- q(6479) => q(tge),
- q(6480) => q(tgf),
- q(6481) => q(tgh),
- q(6482) => q(tgi),
- q(6483) => q(tgj),
- q(6484) => q(tgn),
- q(6485) => q(tgo),
- q(6486) => q(tgp),
- q(6487) => q(tgq),
- q(6488) => q(tgr),
- q(6489) => q(tgs),
- q(6490) => q(tgt),
- q(6491) => q(tgu),
- q(6492) => q(tgv),
- q(6493) => q(tgw),
- q(6494) => q(tgx),
- q(6495) => q(tgy),
- q(6496) => q(tgz),
- q(6497) => q(thc),
- q(6498) => q(thd),
- q(6499) => q(the),
- q(6500) => q(thf),
- q(6501) => q(thh),
- q(6502) => q(thi),
- q(6503) => q(thk),
- q(6504) => q(thl),
- q(6505) => q(thm),
- q(6506) => q(thn),
- q(6507) => q(thp),
- q(6508) => q(thq),
- q(6509) => q(thr),
- q(6510) => q(ths),
- q(6511) => q(tht),
- q(6512) => q(thu),
- q(6513) => q(thv),
- q(6514) => q(thw),
- q(6515) => q(thy),
- q(6516) => q(thz),
- q(6517) => q(tia),
- q(6518) => q(tic),
- q(6519) => q(tid),
- q(6520) => q(tif),
- q(6521) => q(tih),
- q(6522) => q(tii),
- q(6523) => q(tij),
- q(6524) => q(tik),
- q(6525) => q(til),
- q(6526) => q(tim),
- q(6527) => q(tin),
- q(6528) => q(tio),
- q(6529) => q(tip),
- q(6530) => q(tiq),
- q(6531) => q(tis),
- q(6532) => q(tit),
- q(6533) => q(tiu),
- q(6534) => q(tiw),
- q(6535) => q(tix),
- q(6536) => q(tiy),
- q(6537) => q(tiz),
- q(6538) => q(tja),
- q(6539) => q(tjg),
- q(6540) => q(tji),
- q(6541) => q(tjl),
- q(6542) => q(tjm),
- q(6543) => q(tjn),
- q(6544) => q(tjo),
- q(6545) => q(tjs),
- q(6546) => q(tju),
- q(6547) => q(tjw),
- q(6548) => q(tka),
- q(6549) => q(tkb),
- q(6550) => q(tkd),
- q(6551) => q(tke),
- q(6552) => q(tkf),
- q(6553) => q(tkg),
- q(6554) => q(tkm),
- q(6555) => q(tkn),
- q(6556) => q(tkp),
- q(6557) => q(tkq),
- q(6558) => q(tkr),
- q(6559) => q(tks),
- q(6560) => q(tkt),
- q(6561) => q(tku),
- q(6562) => q(tkv),
- q(6563) => q(tkw),
- q(6564) => q(tkx),
- q(6565) => q(tkz),
- q(6566) => q(tla),
- q(6567) => q(tlb),
- q(6568) => q(tlc),
- q(6569) => q(tld),
- q(6570) => q(tlf),
- q(6571) => q(tlg),
- q(6572) => q(tlj),
- q(6573) => q(tlk),
- q(6574) => q(tll),
- q(6575) => q(tlm),
- q(6576) => q(tln),
- q(6577) => q(tlo),
- q(6578) => q(tlp),
- q(6579) => q(tlq),
- q(6580) => q(tlr),
- q(6581) => q(tls),
- q(6582) => q(tlt),
- q(6583) => q(tlu),
- q(6584) => q(tlv),
- q(6585) => q(tlx),
- q(6586) => q(tly),
- q(6587) => q(tma),
- q(6588) => q(tmb),
- q(6589) => q(tmc),
- q(6590) => q(tmd),
- q(6591) => q(tme),
- q(6592) => q(tmf),
- q(6593) => q(tmg),
- q(6594) => q(tmi),
- q(6595) => q(tmj),
- q(6596) => q(tmk),
- q(6597) => q(tml),
- q(6598) => q(tmm),
- q(6599) => q(tmn),
- q(6600) => q(tmo),
- q(6601) => q(tmp),
- q(6602) => q(tmq),
- q(6603) => q(tmr),
- q(6604) => q(tms),
- q(6605) => q(tmt),
- q(6606) => q(tmu),
- q(6607) => q(tmv),
- q(6608) => q(tmw),
- q(6609) => q(tmy),
- q(6610) => q(tmz),
- q(6611) => q(tna),
- q(6612) => q(tnb),
- q(6613) => q(tnc),
- q(6614) => q(tnd),
- q(6615) => q(tne),
- q(6616) => q(tng),
- q(6617) => q(tnh),
- q(6618) => q(tni),
- q(6619) => q(tnk),
- q(6620) => q(tnl),
- q(6621) => q(tnm),
- q(6622) => q(tnn),
- q(6623) => q(tno),
- q(6624) => q(tnp),
- q(6625) => q(tnq),
- q(6626) => q(tnr),
- q(6627) => q(tns),
- q(6628) => q(tnt),
- q(6629) => q(tnu),
- q(6630) => q(tnv),
- q(6631) => q(tnw),
- q(6632) => q(tnx),
- q(6633) => q(tny),
- q(6634) => q(tnz),
- q(6635) => q(tob),
- q(6636) => q(toc),
- q(6637) => q(tod),
- q(6638) => q(toe),
- q(6639) => q(tof),
- q(6640) => q(toh),
- q(6641) => q(toi),
- q(6642) => q(toj),
- q(6643) => q(tol),
- q(6644) => q(tom),
- q(6645) => q(too),
- q(6646) => q(top),
- q(6647) => q(toq),
- q(6648) => q(tor),
- q(6649) => q(tos),
- q(6650) => q(tou),
- q(6651) => q(tov),
- q(6652) => q(tow),
- q(6653) => q(tox),
- q(6654) => q(toy),
- q(6655) => q(toz),
- q(6656) => q(tpa),
- q(6657) => q(tpc),
- q(6658) => q(tpe),
- q(6659) => q(tpf),
- q(6660) => q(tpg),
- q(6661) => q(tpj),
- q(6662) => q(tpk),
- q(6663) => q(tpl),
- q(6664) => q(tpm),
- q(6665) => q(tpn),
- q(6666) => q(tpo),
- q(6667) => q(tpp),
- q(6668) => q(tpq),
- q(6669) => q(tpr),
- q(6670) => q(tpt),
- q(6671) => q(tpu),
- q(6672) => q(tpv),
- q(6673) => q(tpw),
- q(6674) => q(tpx),
- q(6675) => q(tpy),
- q(6676) => q(tpz),
- q(6677) => q(tqb),
- q(6678) => q(tql),
- q(6679) => q(tqm),
- q(6680) => q(tqn),
- q(6681) => q(tqo),
- q(6682) => q(tqp),
- q(6683) => q(tqq),
- q(6684) => q(tqr),
- q(6685) => q(tqt),
- q(6686) => q(tqu),
- q(6687) => q(tqw),
- q(6688) => q(tra),
- q(6689) => q(trb),
- q(6690) => q(trc),
- q(6691) => q(trd),
- q(6692) => q(tre),
- q(6693) => q(trf),
- q(6694) => q(trg),
- q(6695) => q(trh),
- q(6696) => q(tri),
- q(6697) => q(trj),
- q(6698) => q(trl),
- q(6699) => q(trm),
- q(6700) => q(trn),
- q(6701) => q(tro),
- q(6702) => q(trp),
- q(6703) => q(trq),
- q(6704) => q(trr),
- q(6705) => q(trs),
- q(6706) => q(trt),
- q(6707) => q(tru),
- q(6708) => q(trv),
- q(6709) => q(trw),
- q(6710) => q(trx),
- q(6711) => q(try),
- q(6712) => q(trz),
- q(6713) => q(tsa),
- q(6714) => q(tsb),
- q(6715) => q(tsc),
- q(6716) => q(tsd),
- q(6717) => q(tse),
- q(6718) => q(tsg),
- q(6719) => q(tsh),
- q(6720) => q(tsj),
- q(6721) => q(tsk),
- q(6722) => q(tsl),
- q(6723) => q(tsm),
- q(6724) => q(tsp),
- q(6725) => q(tsq),
- q(6726) => q(tsr),
- q(6727) => q(tss),
- q(6728) => q(tst),
- q(6729) => q(tsu),
- q(6730) => q(tsv),
- q(6731) => q(tsw),
- q(6732) => q(tsx),
- q(6733) => q(tsy),
- q(6734) => q(tsz),
- q(6735) => q(tta),
- q(6736) => q(ttb),
- q(6737) => q(ttc),
- q(6738) => q(ttd),
- q(6739) => q(tte),
- q(6740) => q(ttf),
- q(6741) => q(ttg),
- q(6742) => q(tth),
- q(6743) => q(tti),
- q(6744) => q(ttj),
- q(6745) => q(ttk),
- q(6746) => q(ttl),
- q(6747) => q(ttm),
- q(6748) => q(ttn),
- q(6749) => q(tto),
- q(6750) => q(ttp),
- q(6751) => q(ttq),
- q(6752) => q(ttr),
- q(6753) => q(tts),
- q(6754) => q(ttt),
- q(6755) => q(ttu),
- q(6756) => q(ttv),
- q(6757) => q(ttw),
- q(6758) => q(tty),
- q(6759) => q(ttz),
- q(6760) => q(tua),
- q(6761) => q(tub),
- q(6762) => q(tuc),
- q(6763) => q(tud),
- q(6764) => q(tue),
- q(6765) => q(tuf),
- q(6766) => q(tug),
- q(6767) => q(tuh),
- q(6768) => q(tui),
- q(6769) => q(tuj),
- q(6770) => q(tul),
- q(6771) => q(tun),
- q(6772) => q(tuo),
- q(6773) => q(tuq),
- q(6774) => q(tus),
- q(6775) => q(tuu),
- q(6776) => q(tuv),
- q(6777) => q(tux),
- q(6778) => q(tuy),
- q(6779) => q(tuz),
- q(6780) => q(tva),
- q(6781) => q(tvd),
- q(6782) => q(tve),
- q(6783) => q(tvk),
- q(6784) => q(tvm),
- q(6785) => q(tvn),
- q(6786) => q(tvo),
- q(6787) => q(tvs),
- q(6788) => q(tvt),
- q(6789) => q(tvu),
- q(6790) => q(tvw),
- q(6791) => q(tvy),
- q(6792) => q(twa),
- q(6793) => q(twb),
- q(6794) => q(twc),
- q(6795) => q(twd),
- q(6796) => q(twe),
- q(6797) => q(twf),
- q(6798) => q(twg),
- q(6799) => q(twh),
- q(6800) => q(twl),
- q(6801) => q(twm),
- q(6802) => q(twn),
- q(6803) => q(two),
- q(6804) => q(twp),
- q(6805) => q(twq),
- q(6806) => q(twr),
- q(6807) => q(twt),
- q(6808) => q(twu),
- q(6809) => q(tww),
- q(6810) => q(twx),
- q(6811) => q(twy),
- q(6812) => q(txa),
- q(6813) => q(txb),
- q(6814) => q(txc),
- q(6815) => q(txe),
- q(6816) => q(txg),
- q(6817) => q(txh),
- q(6818) => q(txi),
- q(6819) => q(txj),
- q(6820) => q(txm),
- q(6821) => q(txn),
- q(6822) => q(txo),
- q(6823) => q(txq),
- q(6824) => q(txr),
- q(6825) => q(txs),
- q(6826) => q(txt),
- q(6827) => q(txu),
- q(6828) => q(txx),
- q(6829) => q(txy),
- q(6830) => q(tya),
- q(6831) => q(tye),
- q(6832) => q(tyh),
- q(6833) => q(tyi),
- q(6834) => q(tyj),
- q(6835) => q(tyl),
- q(6836) => q(tyn),
- q(6837) => q(typ),
- q(6838) => q(tyr),
- q(6839) => q(tys),
- q(6840) => q(tyt),
- q(6841) => q(tyu),
- q(6842) => q(tyx),
- q(6843) => q(tyz),
- q(6844) => q(tza),
- q(6845) => q(tzh),
- q(6846) => q(tzj),
- q(6847) => q(tzl),
- q(6848) => q(tzm),
- q(6849) => q(tzn),
- q(6850) => q(tzo),
- q(6851) => q(tzx),
- q(6852) => q(uam),
- q(6853) => q(uan),
- q(6854) => q(uar),
- q(6855) => q(uba),
- q(6856) => q(ubi),
- q(6857) => q(ubl),
- q(6858) => q(ubr),
- q(6859) => q(ubu),
- q(6860) => q(uby),
- q(6861) => q(uda),
- q(6862) => q(ude),
- q(6863) => q(udg),
- q(6864) => q(udi),
- q(6865) => q(udj),
- q(6866) => q(udl),
- q(6867) => q(udu),
- q(6868) => q(ues),
- q(6869) => q(ufi),
- q(6870) => q(ugb),
- q(6871) => q(uge),
- q(6872) => q(ugn),
- q(6873) => q(ugo),
- q(6874) => q(ugy),
- q(6875) => q(uha),
- q(6876) => q(uhn),
- q(6877) => q(uis),
- q(6878) => q(uiv),
- q(6879) => q(uji),
- q(6880) => q(uka),
- q(6881) => q(ukg),
- q(6882) => q(ukh),
- q(6883) => q(ukl),
- q(6884) => q(ukp),
- q(6885) => q(ukq),
- q(6886) => q(uks),
- q(6887) => q(uku),
- q(6888) => q(ukw),
- q(6889) => q(uky),
- q(6890) => q(ula),
- q(6891) => q(ulb),
- q(6892) => q(ulc),
- q(6893) => q(ule),
- q(6894) => q(ulf),
- q(6895) => q(uli),
- q(6896) => q(ulk),
- q(6897) => q(ull),
- q(6898) => q(ulm),
- q(6899) => q(uln),
- q(6900) => q(ulu),
- q(6901) => q(ulw),
- q(6902) => q(uma),
- q(6903) => q(umc),
- q(6904) => q(umd),
- q(6905) => q(umg),
- q(6906) => q(umi),
- q(6907) => q(umm),
- q(6908) => q(umn),
- q(6909) => q(umo),
- q(6910) => q(ump),
- q(6911) => q(umr),
- q(6912) => q(ums),
- q(6913) => q(umu),
- q(6914) => q(una),
- q(6915) => q(une),
- q(6916) => q(ung),
- q(6917) => q(unk),
- q(6918) => q(unm),
- q(6919) => q(unn),
- q(6920) => q(unr),
- q(6921) => q(unu),
- q(6922) => q(unx),
- q(6923) => q(unz),
- q(6924) => q(upi),
- q(6925) => q(upv),
- q(6926) => q(ura),
- q(6927) => q(urb),
- q(6928) => q(urc),
- q(6929) => q(ure),
- q(6930) => q(urf),
- q(6931) => q(urg),
- q(6932) => q(urh),
- q(6933) => q(uri),
- q(6934) => q(urk),
- q(6935) => q(url),
- q(6936) => q(urm),
- q(6937) => q(urn),
- q(6938) => q(uro),
- q(6939) => q(urp),
- q(6940) => q(urr),
- q(6941) => q(urt),
- q(6942) => q(uru),
- q(6943) => q(urv),
- q(6944) => q(urw),
- q(6945) => q(urx),
- q(6946) => q(ury),
- q(6947) => q(urz),
- q(6948) => q(usa),
- q(6949) => q(ush),
- q(6950) => q(usi),
- q(6951) => q(usk),
- q(6952) => q(usp),
- q(6953) => q(usu),
- q(6954) => q(uta),
- q(6955) => q(ute),
- q(6956) => q(utp),
- q(6957) => q(utr),
- q(6958) => q(utu),
- q(6959) => q(uum),
- q(6960) => q(uun),
- q(6961) => q(uur),
- q(6962) => q(uuu),
- q(6963) => q(uve),
- q(6964) => q(uvh),
- q(6965) => q(uvl),
- q(6966) => q(uwa),
- q(6967) => q(uya),
- q(6968) => q(uzn),
- q(6969) => q(uzs),
- q(6970) => q(vaa),
- q(6971) => q(vae),
- q(6972) => q(vaf),
- q(6973) => q(vag),
- q(6974) => q(vah),
- q(6975) => q(vaj),
- q(6976) => q(val),
- q(6977) => q(vam),
- q(6978) => q(van),
- q(6979) => q(vao),
- q(6980) => q(vap),
- q(6981) => q(var),
- q(6982) => q(vas),
- q(6983) => q(vau),
- q(6984) => q(vav),
- q(6985) => q(vay),
- q(6986) => q(vbb),
- q(6987) => q(vbk),
- q(6988) => q(vec),
- q(6989) => q(ved),
- q(6990) => q(vel),
- q(6991) => q(vem),
- q(6992) => q(veo),
- q(6993) => q(vep),
- q(6994) => q(ver),
- q(6995) => q(vgr),
- q(6996) => q(vgt),
- q(6997) => q(vic),
- q(6998) => q(vid),
- q(6999) => q(vif),
- q(7000) => q(vig),
- q(7001) => q(vil),
- q(7002) => q(vin),
- q(7003) => q(vis),
- q(7004) => q(vit),
- q(7005) => q(viv),
- q(7006) => q(vka),
- q(7007) => q(vki),
- q(7008) => q(vkj),
- q(7009) => q(vkk),
- q(7010) => q(vkl),
- q(7011) => q(vkm),
- q(7012) => q(vko),
- q(7013) => q(vkp),
- q(7014) => q(vkt),
- q(7015) => q(vku),
- q(7016) => q(vlp),
- q(7017) => q(vls),
- q(7018) => q(vma),
- q(7019) => q(vmb),
- q(7020) => q(vmc),
- q(7021) => q(vmd),
- q(7022) => q(vme),
- q(7023) => q(vmf),
- q(7024) => q(vmg),
- q(7025) => q(vmh),
- q(7026) => q(vmi),
- q(7027) => q(vmj),
- q(7028) => q(vmk),
- q(7029) => q(vml),
- q(7030) => q(vmm),
- q(7031) => q(vmp),
- q(7032) => q(vmq),
- q(7033) => q(vmr),
- q(7034) => q(vms),
- q(7035) => q(vmu),
- q(7036) => q(vmv),
- q(7037) => q(vmw),
- q(7038) => q(vmx),
- q(7039) => q(vmy),
- q(7040) => q(vmz),
- q(7041) => q(vnk),
- q(7042) => q(vnm),
- q(7043) => q(vnp),
- q(7044) => q(vro),
- q(7045) => q(vra),
- q(7046) => q(vrs),
- q(7047) => q(vrt),
- q(7048) => q(vsi),
- q(7049) => q(vsl),
- q(7050) => q(vsv),
- q(7051) => q(vto),
- q(7052) => q(vum),
- q(7053) => q(vun),
- q(7054) => q(vut),
- q(7055) => q(vwa),
- q(7056) => q(waa),
- q(7057) => q(wab),
- q(7058) => q(wac),
- q(7059) => q(wad),
- q(7060) => q(wae),
- q(7061) => q(waf),
- q(7062) => q(wag),
- q(7063) => q(wah),
- q(7064) => q(wai),
- q(7065) => q(waj),
- q(7066) => q(wam),
- q(7067) => q(wan),
- q(7068) => q(wao),
- q(7069) => q(wap),
- q(7070) => q(waq),
- q(7071) => q(wat),
- q(7072) => q(wau),
- q(7073) => q(wav),
- q(7074) => q(waw),
- q(7075) => q(wax),
- q(7076) => q(way),
- q(7077) => q(waz),
- q(7078) => q(wba),
- q(7079) => q(wbb),
- q(7080) => q(wbe),
- q(7081) => q(wbh),
- q(7082) => q(wbi),
- q(7083) => q(wbj),
- q(7084) => q(wbk),
- q(7085) => q(wbl),
- q(7086) => q(wbm),
- q(7087) => q(wbp),
- q(7088) => q(wbq),
- q(7089) => q(wbr),
- q(7090) => q(wbt),
- q(7091) => q(wbv),
- q(7092) => q(wbw),
- q(7093) => q(wca),
- q(7094) => q(wci),
- q(7095) => q(wdd),
- q(7096) => q(wdg),
- q(7097) => q(wdj),
- q(7098) => q(wdk),
- q(7099) => q(wdu),
- q(7100) => q(wdy),
- q(7101) => q(wea),
- q(7102) => q(wec),
- q(7103) => q(wed),
- q(7104) => q(weg),
- q(7105) => q(weh),
- q(7106) => q(wei),
- q(7107) => q(wem),
- q(7108) => q(weo),
- q(7109) => q(wep),
- q(7110) => q(wer),
- q(7111) => q(wes),
- q(7112) => q(wet),
- q(7113) => q(weu),
- q(7114) => q(wew),
- q(7115) => q(wfg),
- q(7116) => q(wga),
- q(7117) => q(wgb),
- q(7118) => q(wgg),
- q(7119) => q(wgi),
- q(7120) => q(wgo),
- q(7121) => q(wgu),
- q(7122) => q(wgy),
- q(7123) => q(wha),
- q(7124) => q(whg),
- q(7125) => q(whk),
- q(7126) => q(whu),
- q(7127) => q(wib),
- q(7128) => q(wic),
- q(7129) => q(wie),
- q(7130) => q(wif),
- q(7131) => q(wig),
- q(7132) => q(wih),
- q(7133) => q(wii),
- q(7134) => q(wij),
- q(7135) => q(wik),
- q(7136) => q(wil),
- q(7137) => q(wim),
- q(7138) => q(win),
- q(7139) => q(wir),
- q(7140) => q(wiu),
- q(7141) => q(wiv),
- q(7142) => q(wiy),
- q(7143) => q(wja),
- q(7144) => q(wji),
- q(7145) => q(wka),
- q(7146) => q(wkb),
- q(7147) => q(wkd),
- q(7148) => q(wkl),
- q(7149) => q(wku),
- q(7150) => q(wkw),
- q(7151) => q(wky),
- q(7152) => q(wla),
- q(7153) => q(wlc),
- q(7154) => q(wle),
- q(7155) => q(wlg),
- q(7156) => q(wli),
- q(7157) => q(wlk),
- q(7158) => q(wll),
- q(7159) => q(wlm),
- q(7160) => q(wlo),
- q(7161) => q(wlr),
- q(7162) => q(wls),
- q(7163) => q(wlu),
- q(7164) => q(wlv),
- q(7165) => q(wlw),
- q(7166) => q(wlx),
- q(7167) => q(wly),
- q(7168) => q(wma),
- q(7169) => q(wmb),
- q(7170) => q(wmc),
- q(7171) => q(wmd),
- q(7172) => q(wme),
- q(7173) => q(wmh),
- q(7174) => q(wmi),
- q(7175) => q(wmm),
- q(7176) => q(wmn),
- q(7177) => q(wmo),
- q(7178) => q(wms),
- q(7179) => q(wmt),
- q(7180) => q(wmw),
- q(7181) => q(wmx),
- q(7182) => q(wnb),
- q(7183) => q(wnc),
- q(7184) => q(wnd),
- q(7185) => q(wne),
- q(7186) => q(wng),
- q(7187) => q(wni),
- q(7188) => q(wnk),
- q(7189) => q(wnm),
- q(7190) => q(wnn),
- q(7191) => q(wno),
- q(7192) => q(wnp),
- q(7193) => q(wnu),
- q(7194) => q(wnw),
- q(7195) => q(wny),
- q(7196) => q(woa),
- q(7197) => q(wob),
- q(7198) => q(woc),
- q(7199) => q(wod),
- q(7200) => q(woe),
- q(7201) => q(wof),
- q(7202) => q(wog),
- q(7203) => q(woi),
- q(7204) => q(wok),
- q(7205) => q(wom),
- q(7206) => q(won),
- q(7207) => q(woo),
- q(7208) => q(wor),
- q(7209) => q(wos),
- q(7210) => q(wow),
- q(7211) => q(woy),
- q(7212) => q(wpc),
- q(7213) => q(wra),
- q(7214) => q(wrb),
- q(7215) => q(wrd),
- q(7216) => q(wrg),
- q(7217) => q(wrh),
- q(7218) => q(wri),
- q(7219) => q(wrk),
- q(7220) => q(wrl),
- q(7221) => q(wrm),
- q(7222) => q(wrn),
- q(7223) => q(wro),
- q(7224) => q(wrp),
- q(7225) => q(wrr),
- q(7226) => q(wrs),
- q(7227) => q(wru),
- q(7228) => q(wrv),
- q(7229) => q(wrw),
- q(7230) => q(wrx),
- q(7231) => q(wry),
- q(7232) => q(wrz),
- q(7233) => q(wsa),
- q(7234) => q(wsi),
- q(7235) => q(wsk),
- q(7236) => q(wsr),
- q(7237) => q(wss),
- q(7238) => q(wsu),
- q(7239) => q(wsv),
- q(7240) => q(wtf),
- q(7241) => q(wth),
- q(7242) => q(wti),
- q(7243) => q(wtk),
- q(7244) => q(wtm),
- q(7245) => q(wtw),
- q(7246) => q(wua),
- q(7247) => q(wub),
- q(7248) => q(wud),
- q(7249) => q(wuh),
- q(7250) => q(wul),
- q(7251) => q(wum),
- q(7252) => q(wun),
- q(7253) => q(wur),
- q(7254) => q(wut),
- q(7255) => q(wuu),
- q(7256) => q(wuv),
- q(7257) => q(wux),
- q(7258) => q(wuy),
- q(7259) => q(wwa),
- q(7260) => q(wwb),
- q(7261) => q(wwo),
- q(7262) => q(wwr),
- q(7263) => q(www),
- q(7264) => q(wxa),
- q(7265) => q(wxw),
- q(7266) => q(wya),
- q(7267) => q(wyb),
- q(7268) => q(wyi),
- q(7269) => q(wym),
- q(7270) => q(wyr),
- q(7271) => q(wyy),
- q(7272) => q(xaa),
- q(7273) => q(xab),
- q(7274) => q(xac),
- q(7275) => q(xad),
- q(7276) => q(xae),
- q(7277) => q(xag),
- q(7278) => q(xai),
- q(7279) => q(xaj),
- q(7280) => q(xam),
- q(7281) => q(xan),
- q(7282) => q(xao),
- q(7283) => q(xap),
- q(7284) => q(xaq),
- q(7285) => q(xar),
- q(7286) => q(xas),
- q(7287) => q(xat),
- q(7288) => q(xau),
- q(7289) => q(xav),
- q(7290) => q(xaw),
- q(7291) => q(xay),
- q(7292) => q(xba),
- q(7293) => q(xbb),
- q(7294) => q(xbc),
- q(7295) => q(xbd),
- q(7296) => q(xbe),
- q(7297) => q(xbg),
- q(7298) => q(xbi),
- q(7299) => q(xbj),
- q(7300) => q(xbm),
- q(7301) => q(xbn),
- q(7302) => q(xbo),
- q(7303) => q(xbp),
- q(7304) => q(xbr),
- q(7305) => q(xbw),
- q(7306) => q(xbx),
- q(7307) => q(xby),
- q(7308) => q(xcb),
- q(7309) => q(xcc),
- q(7310) => q(xce),
- q(7311) => q(xcg),
- q(7312) => q(xch),
- q(7313) => q(xcl),
- q(7314) => q(xcm),
- q(7315) => q(xcn),
- q(7316) => q(xco),
- q(7317) => q(xcr),
- q(7318) => q(xct),
- q(7319) => q(xcu),
- q(7320) => q(xcv),
- q(7321) => q(xcw),
- q(7322) => q(xcy),
- q(7323) => q(xda),
- q(7324) => q(xdc),
- q(7325) => q(xdk),
- q(7326) => q(xdm),
- q(7327) => q(xdy),
- q(7328) => q(xeb),
- q(7329) => q(xed),
- q(7330) => q(xeg),
- q(7331) => q(xel),
- q(7332) => q(xem),
- q(7333) => q(xep),
- q(7334) => q(xer),
- q(7335) => q(xes),
- q(7336) => q(xet),
- q(7337) => q(xeu),
- q(7338) => q(xfa),
- q(7339) => q(xga),
- q(7340) => q(xgb),
- q(7341) => q(xgd),
- q(7342) => q(xgf),
- q(7343) => q(xgg),
- q(7344) => q(xgi),
- q(7345) => q(xgl),
- q(7346) => q(xgm),
- q(7347) => q(xgr),
- q(7348) => q(xgu),
- q(7349) => q(xgw),
- q(7350) => q(xha),
- q(7351) => q(xhc),
- q(7352) => q(xhd),
- q(7353) => q(xhe),
- q(7354) => q(xhr),
- q(7355) => q(xht),
- q(7356) => q(xhu),
- q(7357) => q(xhv),
- q(7358) => q(xib),
- q(7359) => q(xii),
- q(7360) => q(xil),
- q(7361) => q(xin),
- q(7362) => q(xip),
- q(7363) => q(xir),
- q(7364) => q(xis),
- q(7365) => q(xiv),
- q(7366) => q(xiy),
- q(7367) => q(xjb),
- q(7368) => q(xjt),
- q(7369) => q(xka),
- q(7370) => q(xkb),
- q(7371) => q(xkc),
- q(7372) => q(xkd),
- q(7373) => q(xke),
- q(7374) => q(xkf),
- q(7375) => q(xkg),
- q(7376) => q(xkh),
- q(7377) => q(xki),
- q(7378) => q(xkj),
- q(7379) => q(xkk),
- q(7380) => q(xkl),
- q(7381) => q(xkn),
- q(7382) => q(xko),
- q(7383) => q(xkp),
- q(7384) => q(xkq),
- q(7385) => q(xkr),
- q(7386) => q(xks),
- q(7387) => q(xkt),
- q(7388) => q(xku),
- q(7389) => q(xkv),
- q(7390) => q(xkw),
- q(7391) => q(xkx),
- q(7392) => q(xky),
- q(7393) => q(xkz),
- q(7394) => q(xla),
- q(7395) => q(xlb),
- q(7396) => q(xlc),
- q(7397) => q(xld),
- q(7398) => q(xle),
- q(7399) => q(xlg),
- q(7400) => q(xli),
- q(7401) => q(xln),
- q(7402) => q(xlo),
- q(7403) => q(xlp),
- q(7404) => q(xls),
- q(7405) => q(xlu),
- q(7406) => q(xly),
- q(7407) => q(xma),
- q(7408) => q(xmb),
- q(7409) => q(xmc),
- q(7410) => q(xmd),
- q(7411) => q(xme),
- q(7412) => q(xmf),
- q(7413) => q(xmg),
- q(7414) => q(xmh),
- q(7415) => q(xmj),
- q(7416) => q(xmk),
- q(7417) => q(xml),
- q(7418) => q(xmm),
- q(7419) => q(xmn),
- q(7420) => q(xmo),
- q(7421) => q(xmp),
- q(7422) => q(xmq),
- q(7423) => q(xmr),
- q(7424) => q(xms),
- q(7425) => q(xmt),
- q(7426) => q(xmu),
- q(7427) => q(xmv),
- q(7428) => q(xmw),
- q(7429) => q(xmx),
- q(7430) => q(xmy),
- q(7431) => q(xmz),
- q(7432) => q(xna),
- q(7433) => q(xnb),
- q(7434) => q(xng),
- q(7435) => q(xnh),
- q(7436) => q(xni),
- q(7437) => q(xnk),
- q(7438) => q(xnn),
- q(7439) => q(xno),
- q(7440) => q(xnr),
- q(7441) => q(xns),
- q(7442) => q(xnt),
- q(7443) => q(xnu),
- q(7444) => q(xny),
- q(7445) => q(xnz),
- q(7446) => q(xoc),
- q(7447) => q(xod),
- q(7448) => q(xog),
- q(7449) => q(xoi),
- q(7450) => q(xok),
- q(7451) => q(xom),
- q(7452) => q(xon),
- q(7453) => q(xoo),
- q(7454) => q(xop),
- q(7455) => q(xor),
- q(7456) => q(xow),
- q(7457) => q(xpa),
- q(7458) => q(xpc),
- q(7459) => q(xpe),
- q(7460) => q(xpg),
- q(7461) => q(xpi),
- q(7462) => q(xpj),
- q(7463) => q(xpk),
- q(7464) => q(xpm),
- q(7465) => q(xpn),
- q(7466) => q(xpo),
- q(7467) => q(xpp),
- q(7468) => q(xpq),
- q(7469) => q(xpr),
- q(7470) => q(xps),
- q(7471) => q(xpt),
- q(7472) => q(xpu),
- q(7473) => q(xpy),
- q(7474) => q(xqa),
- q(7475) => q(xqt),
- q(7476) => q(xra),
- q(7477) => q(xrb),
- q(7478) => q(xrd),
- q(7479) => q(xre),
- q(7480) => q(xrg),
- q(7481) => q(xri),
- q(7482) => q(xrm),
- q(7483) => q(xrn),
- q(7484) => q(xrq),
- q(7485) => q(xrr),
- q(7486) => q(xrt),
- q(7487) => q(xru),
- q(7488) => q(xrw),
- q(7489) => q(xsa),
- q(7490) => q(xsb),
- q(7491) => q(xsc),
- q(7492) => q(xsd),
- q(7493) => q(xse),
- q(7494) => q(xsh),
- q(7495) => q(xsi),
- q(7496) => q(xsl),
- q(7497) => q(xsm),
- q(7498) => q(xsn),
- q(7499) => q(xso),
- q(7500) => q(xsp),
- q(7501) => q(xsq),
- q(7502) => q(xsr),
- q(7503) => q(xss),
- q(7504) => q(xsu),
- q(7505) => q(xsv),
- q(7506) => q(xsy),
- q(7507) => q(xta),
- q(7508) => q(xtb),
- q(7509) => q(xtc),
- q(7510) => q(xtd),
- q(7511) => q(xte),
- q(7512) => q(xtg),
- q(7513) => q(xth),
- q(7514) => q(xti),
- q(7515) => q(xtj),
- q(7516) => q(xtl),
- q(7517) => q(xtm),
- q(7518) => q(xtn),
- q(7519) => q(xto),
- q(7520) => q(xtp),
- q(7521) => q(xtq),
- q(7522) => q(xtr),
- q(7523) => q(xts),
- q(7524) => q(xtt),
- q(7525) => q(xtu),
- q(7526) => q(xtv),
- q(7527) => q(xtw),
- q(7528) => q(xty),
- q(7529) => q(xtz),
- q(7530) => q(xua),
- q(7531) => q(xub),
- q(7532) => q(xud),
- q(7533) => q(xug),
- q(7534) => q(xuj),
- q(7535) => q(xul),
- q(7536) => q(xum),
- q(7537) => q(xun),
- q(7538) => q(xuo),
- q(7539) => q(xup),
- q(7540) => q(xur),
- q(7541) => q(xut),
- q(7542) => q(xuu),
- q(7543) => q(xve),
- q(7544) => q(xvi),
- q(7545) => q(xvn),
- q(7546) => q(xvo),
- q(7547) => q(xvs),
- q(7548) => q(xwa),
- q(7549) => q(xwc),
- q(7550) => q(xwd),
- q(7551) => q(xwe),
- q(7552) => q(xwg),
- q(7553) => q(xwj),
- q(7554) => q(xwk),
- q(7555) => q(xwl),
- q(7556) => q(xwo),
- q(7557) => q(xwr),
- q(7558) => q(xwt),
- q(7559) => q(xww),
- q(7560) => q(xxb),
- q(7561) => q(xxk),
- q(7562) => q(xxm),
- q(7563) => q(xxr),
- q(7564) => q(xxt),
- q(7565) => q(xya),
- q(7566) => q(xyb),
- q(7567) => q(xyj),
- q(7568) => q(xyk),
- q(7569) => q(xyl),
- q(7570) => q(xyt),
- q(7571) => q(xyy),
- q(7572) => q(xzh),
- q(7573) => q(xzm),
- q(7574) => q(xzp),
- q(7575) => q(yaa),
- q(7576) => q(yab),
- q(7577) => q(yac),
- q(7578) => q(yad),
- q(7579) => q(yae),
- q(7580) => q(yaf),
- q(7581) => q(yag),
- q(7582) => q(yah),
- q(7583) => q(yai),
- q(7584) => q(yaj),
- q(7585) => q(yak),
- q(7586) => q(yal),
- q(7587) => q(yam),
- q(7588) => q(yan),
- q(7589) => q(yaq),
- q(7590) => q(yar),
- q(7591) => q(yas),
- q(7592) => q(yat),
- q(7593) => q(yau),
- q(7594) => q(yav),
- q(7595) => q(yaw),
- q(7596) => q(yax),
- q(7597) => q(yay),
- q(7598) => q(yaz),
- q(7599) => q(yba),
- q(7600) => q(ybb),
- q(7601) => q(ybe),
- q(7602) => q(ybh),
- q(7603) => q(ybi),
- q(7604) => q(ybj),
- q(7605) => q(ybk),
- q(7606) => q(ybl),
- q(7607) => q(ybm),
- q(7608) => q(ybn),
- q(7609) => q(ybo),
- q(7610) => q(ybx),
- q(7611) => q(yby),
- q(7612) => q(ych),
- q(7613) => q(ycl),
- q(7614) => q(ycn),
- q(7615) => q(ycp),
- q(7616) => q(yda),
- q(7617) => q(ydd),
- q(7618) => q(yde),
- q(7619) => q(ydg),
- q(7620) => q(ydk),
- q(7621) => q(yea),
- q(7622) => q(yec),
- q(7623) => q(yee),
- q(7624) => q(yei),
- q(7625) => q(yej),
- q(7626) => q(yel),
- q(7627) => q(yer),
- q(7628) => q(yes),
- q(7629) => q(yet),
- q(7630) => q(yeu),
- q(7631) => q(yev),
- q(7632) => q(yey),
- q(7633) => q(yga),
- q(7634) => q(ygi),
- q(7635) => q(ygl),
- q(7636) => q(ygm),
- q(7637) => q(ygp),
- q(7638) => q(ygr),
- q(7639) => q(ygs),
- q(7640) => q(ygu),
- q(7641) => q(ygw),
- q(7642) => q(yha),
- q(7643) => q(yhd),
- q(7644) => q(yhl),
- q(7645) => q(yhs),
- q(7646) => q(yia),
- q(7647) => q(yig),
- q(7648) => q(yih),
- q(7649) => q(yii),
- q(7650) => q(yij),
- q(7651) => q(yik),
- q(7652) => q(yil),
- q(7653) => q(yim),
- q(7654) => q(yin),
- q(7655) => q(yip),
- q(7656) => q(yiq),
- q(7657) => q(yir),
- q(7658) => q(yis),
- q(7659) => q(yit),
- q(7660) => q(yiu),
- q(7661) => q(yiv),
- q(7662) => q(yix),
- q(7663) => q(yiz),
- q(7664) => q(yka),
- q(7665) => q(ykg),
- q(7666) => q(yki),
- q(7667) => q(ykk),
- q(7668) => q(ykl),
- q(7669) => q(ykm),
- q(7670) => q(ykn),
- q(7671) => q(yko),
- q(7672) => q(ykr),
- q(7673) => q(ykt),
- q(7674) => q(yku),
- q(7675) => q(yky),
- q(7676) => q(yla),
- q(7677) => q(ylb),
- q(7678) => q(yle),
- q(7679) => q(ylg),
- q(7680) => q(yli),
- q(7681) => q(yll),
- q(7682) => q(ylm),
- q(7683) => q(yln),
- q(7684) => q(ylo),
- q(7685) => q(ylr),
- q(7686) => q(ylu),
- q(7687) => q(yly),
- q(7688) => q(ymb),
- q(7689) => q(ymc),
- q(7690) => q(ymd),
- q(7691) => q(yme),
- q(7692) => q(ymg),
- q(7693) => q(ymh),
- q(7694) => q(ymi),
- q(7695) => q(ymk),
- q(7696) => q(yml),
- q(7697) => q(ymm),
- q(7698) => q(ymn),
- q(7699) => q(ymo),
- q(7700) => q(ymp),
- q(7701) => q(ymq),
- q(7702) => q(ymr),
- q(7703) => q(yms),
- q(7704) => q(ymx),
- q(7705) => q(ymz),
- q(7706) => q(yna),
- q(7707) => q(ynd),
- q(7708) => q(yne),
- q(7709) => q(yng),
- q(7710) => q(ynk),
- q(7711) => q(ynl),
- q(7712) => q(ynn),
- q(7713) => q(yno),
- q(7714) => q(ynq),
- q(7715) => q(yns),
- q(7716) => q(ynu),
- q(7717) => q(yob),
- q(7718) => q(yog),
- q(7719) => q(yoi),
- q(7720) => q(yok),
- q(7721) => q(yol),
- q(7722) => q(yom),
- q(7723) => q(yon),
- q(7724) => q(yot),
- q(7725) => q(yox),
- q(7726) => q(yoy),
- q(7727) => q(ypa),
- q(7728) => q(ypb),
- q(7729) => q(ypg),
- q(7730) => q(yph),
- q(7731) => q(ypm),
- q(7732) => q(ypn),
- q(7733) => q(ypo),
- q(7734) => q(ypp),
- q(7735) => q(ypz),
- q(7736) => q(yra),
- q(7737) => q(yrb),
- q(7738) => q(yre),
- q(7739) => q(yri),
- q(7740) => q(yrk),
- q(7741) => q(yrl),
- q(7742) => q(yrm),
- q(7743) => q(yrn),
- q(7744) => q(yrs),
- q(7745) => q(yrw),
- q(7746) => q(yry),
- q(7747) => q(ysc),
- q(7748) => q(ysd),
- q(7749) => q(ysg),
- q(7750) => q(ysl),
- q(7751) => q(ysn),
- q(7752) => q(yso),
- q(7753) => q(ysp),
- q(7754) => q(ysr),
- q(7755) => q(yss),
- q(7756) => q(ysy),
- q(7757) => q(yta),
- q(7758) => q(ytl),
- q(7759) => q(ytp),
- q(7760) => q(ytw),
- q(7761) => q(yty),
- q(7762) => q(yua),
- q(7763) => q(yub),
- q(7764) => q(yuc),
- q(7765) => q(yud),
- q(7766) => q(yue),
- q(7767) => q(yuf),
- q(7768) => q(yug),
- q(7769) => q(yui),
- q(7770) => q(yuj),
- q(7771) => q(yuk),
- q(7772) => q(yul),
- q(7773) => q(yum),
- q(7774) => q(yun),
- q(7775) => q(yup),
- q(7776) => q(yuq),
- q(7777) => q(yur),
- q(7778) => q(yut),
- q(7779) => q(yuw),
- q(7780) => q(yux),
- q(7781) => q(yuy),
- q(7782) => q(yuz),
- q(7783) => q(yva),
- q(7784) => q(yvt),
- q(7785) => q(ywa),
- q(7786) => q(ywg),
- q(7787) => q(ywl),
- q(7788) => q(ywn),
- q(7789) => q(ywq),
- q(7790) => q(ywr),
- q(7791) => q(ywt),
- q(7792) => q(ywu),
- q(7793) => q(yww),
- q(7794) => q(yxa),
- q(7795) => q(yxg),
- q(7796) => q(yxl),
- q(7797) => q(yxm),
- q(7798) => q(yxu),
- q(7799) => q(yxy),
- q(7800) => q(yyr),
- q(7801) => q(yyu),
- q(7802) => q(yyz),
- q(7803) => q(yzg),
- q(7804) => q(yzk),
- q(7805) => q(zaa),
- q(7806) => q(zab),
- q(7807) => q(zac),
- q(7808) => q(zad),
- q(7809) => q(zae),
- q(7810) => q(zaf),
- q(7811) => q(zag),
- q(7812) => q(zah),
- q(7813) => q(zai),
- q(7814) => q(zaj),
- q(7815) => q(zak),
- q(7816) => q(zal),
- q(7817) => q(zam),
- q(7818) => q(zao),
- q(7819) => q(zaq),
- q(7820) => q(zar),
- q(7821) => q(zas),
- q(7822) => q(zat),
- q(7823) => q(zau),
- q(7824) => q(zav),
- q(7825) => q(zaw),
- q(7826) => q(zax),
- q(7827) => q(zay),
- q(7828) => q(zaz),
- q(7829) => q(zbc),
- q(7830) => q(zbe),
- q(7831) => q(zbt),
- q(7832) => q(zbw),
- q(7833) => q(zca),
- q(7834) => q(zch),
- q(7835) => q(zdj),
- q(7836) => q(zea),
- q(7837) => q(zeg),
- q(7838) => q(zeh),
- q(7839) => q(zga),
- q(7840) => q(zgb),
- q(7841) => q(zgm),
- q(7842) => q(zgn),
- q(7843) => q(zgr),
- q(7844) => q(zhb),
- q(7845) => q(zhd),
- q(7846) => q(zhi),
- q(7847) => q(zhn),
- q(7848) => q(zhw),
- q(7849) => q(zia),
- q(7850) => q(zib),
- q(7851) => q(zik),
- q(7852) => q(zil),
- q(7853) => q(zim),
- q(7854) => q(zin),
- q(7855) => q(zir),
- q(7856) => q(ziw),
- q(7857) => q(ziz),
- q(7858) => q(zka),
- q(7859) => q(zkb),
- q(7860) => q(zkd),
- q(7861) => q(zkg),
- q(7862) => q(zkh),
- q(7863) => q(zkk),
- q(7864) => q(zkn),
- q(7865) => q(zko),
- q(7866) => q(zkp),
- q(7867) => q(zkr),
- q(7868) => q(zkt),
- q(7869) => q(zku),
- q(7870) => q(zkv),
- q(7871) => q(zkz),
- q(7872) => q(zlj),
- q(7873) => q(zlm),
- q(7874) => q(zln),
- q(7875) => q(zlq),
- q(7876) => q(zma),
- q(7877) => q(zmb),
- q(7878) => q(zmc),
- q(7879) => q(zmd),
- q(7880) => q(zme),
- q(7881) => q(zmf),
- q(7882) => q(zmg),
- q(7883) => q(zmh),
- q(7884) => q(zmi),
- q(7885) => q(zmj),
- q(7886) => q(zmk),
- q(7887) => q(zml),
- q(7888) => q(zmm),
- q(7889) => q(zmn),
- q(7890) => q(zmo),
- q(7891) => q(zmp),
- q(7892) => q(zmq),
- q(7893) => q(zmr),
- q(7894) => q(zms),
- q(7895) => q(zmt),
- q(7896) => q(zmu),
- q(7897) => q(zmv),
- q(7898) => q(zmw),
- q(7899) => q(zmx),
- q(7900) => q(zmy),
- q(7901) => q(zmz),
- q(7902) => q(zna),
- q(7903) => q(zne),
- q(7904) => q(zng),
- q(7905) => q(znk),
- q(7906) => q(zns),
- q(7907) => q(zoc),
- q(7908) => q(zoh),
- q(7909) => q(zom),
- q(7910) => q(zoo),
- q(7911) => q(zoq),
- q(7912) => q(zor),
- q(7913) => q(zos),
- q(7914) => q(zpa),
- q(7915) => q(zpb),
- q(7916) => q(zpc),
- q(7917) => q(zpd),
- q(7918) => q(zpe),
- q(7919) => q(zpf),
- q(7920) => q(zpg),
- q(7921) => q(zph),
- q(7922) => q(zpi),
- q(7923) => q(zpj),
- q(7924) => q(zpk),
- q(7925) => q(zpl),
- q(7926) => q(zpm),
- q(7927) => q(zpn),
- q(7928) => q(zpo),
- q(7929) => q(zpp),
- q(7930) => q(zpq),
- q(7931) => q(zpr),
- q(7932) => q(zps),
- q(7933) => q(zpt),
- q(7934) => q(zpu),
- q(7935) => q(zpv),
- q(7936) => q(zpw),
- q(7937) => q(zpx),
- q(7938) => q(zpy),
- q(7939) => q(zpz),
- q(7940) => q(zqe),
- q(7941) => q(zra),
- q(7942) => q(zrg),
- q(7943) => q(zrn),
- q(7944) => q(zro),
- q(7945) => q(zrp),
- q(7946) => q(zrs),
- q(7947) => q(zsa),
- q(7948) => q(zsk),
- q(7949) => q(zsl),
- q(7950) => q(zsm),
- q(7951) => q(zsr),
- q(7952) => q(zsu),
- q(7953) => q(zte),
- q(7954) => q(ztg),
- q(7955) => q(ztl),
- q(7956) => q(ztm),
- q(7957) => q(ztn),
- q(7958) => q(ztp),
- q(7959) => q(ztq),
- q(7960) => q(zts),
- q(7961) => q(ztt),
- q(7962) => q(ztu),
- q(7963) => q(ztx),
- q(7964) => q(zty),
- q(7965) => q(zua),
- q(7966) => q(zuh),
- q(7967) => q(zum),
- q(7968) => q(zuy),
- q(7969) => q(zwa),
- q(7970) => q(zyb),
- q(7971) => q(zyg),
- q(7972) => q(zyj),
- q(7973) => q(zyn),
- q(7974) => q(zyp),
- q(7975) => q(zzj),
+ q(1480) => q(btm),
+ q(1481) => q(btn),
+ q(1482) => q(bto),
+ q(1483) => q(btp),
+ q(1484) => q(btq),
+ q(1485) => q(btr),
+ q(1486) => q(bts),
+ q(1487) => q(btt),
+ q(1488) => q(btu),
+ q(1489) => q(btv),
+ q(1490) => q(btw),
+ q(1491) => q(btx),
+ q(1492) => q(bty),
+ q(1493) => q(btz),
+ q(1494) => q(bub),
+ q(1495) => q(buc),
+ q(1496) => q(bud),
+ q(1497) => q(bue),
+ q(1498) => q(buf),
+ q(1499) => q(buh),
+ q(1500) => q(bui),
+ q(1501) => q(buj),
+ q(1502) => q(buk),
+ q(1503) => q(bum),
+ q(1504) => q(bun),
+ q(1505) => q(buo),
+ q(1506) => q(bup),
+ q(1507) => q(buq),
+ q(1508) => q(bus),
+ q(1509) => q(but),
+ q(1510) => q(buu),
+ q(1511) => q(buv),
+ q(1512) => q(buw),
+ q(1513) => q(bux),
+ q(1514) => q(buy),
+ q(1515) => q(buz),
+ q(1516) => q(bva),
+ q(1517) => q(bvb),
+ q(1518) => q(bvc),
+ q(1519) => q(bvd),
+ q(1520) => q(bve),
+ q(1521) => q(bvf),
+ q(1522) => q(bvg),
+ q(1523) => q(bvh),
+ q(1524) => q(bvi),
+ q(1525) => q(bvj),
+ q(1526) => q(bvk),
+ q(1527) => q(bvl),
+ q(1528) => q(bvm),
+ q(1529) => q(bvn),
+ q(1530) => q(bvo),
+ q(1531) => q(bvp),
+ q(1532) => q(bvq),
+ q(1533) => q(bvr),
+ q(1534) => q(bvt),
+ q(1535) => q(bvu),
+ q(1536) => q(bvv),
+ q(1537) => q(bvw),
+ q(1538) => q(bvx),
+ q(1539) => q(bvy),
+ q(1540) => q(bvz),
+ q(1541) => q(bwa),
+ q(1542) => q(bwb),
+ q(1543) => q(bwc),
+ q(1544) => q(bwd),
+ q(1545) => q(bwe),
+ q(1546) => q(bwf),
+ q(1547) => q(bwg),
+ q(1548) => q(bwh),
+ q(1549) => q(bwi),
+ q(1550) => q(bwj),
+ q(1551) => q(bwk),
+ q(1552) => q(bwl),
+ q(1553) => q(bwm),
+ q(1554) => q(bwn),
+ q(1555) => q(bwo),
+ q(1556) => q(bwp),
+ q(1557) => q(bwq),
+ q(1558) => q(bwr),
+ q(1559) => q(bws),
+ q(1560) => q(bwt),
+ q(1561) => q(bwu),
+ q(1562) => q(bww),
+ q(1563) => q(bwx),
+ q(1564) => q(bwy),
+ q(1565) => q(bwz),
+ q(1566) => q(bxa),
+ q(1567) => q(bxb),
+ q(1568) => q(bxc),
+ q(1569) => q(bxd),
+ q(1570) => q(bxe),
+ q(1571) => q(bxf),
+ q(1572) => q(bxg),
+ q(1573) => q(bxh),
+ q(1574) => q(bxi),
+ q(1575) => q(bxj),
+ q(1576) => q(bxk),
+ q(1577) => q(bxl),
+ q(1578) => q(bxm),
+ q(1579) => q(bxn),
+ q(1580) => q(bxo),
+ q(1581) => q(bxp),
+ q(1582) => q(bxq),
+ q(1583) => q(bxr),
+ q(1584) => q(bxs),
+ q(1585) => q(bxu),
+ q(1586) => q(bxv),
+ q(1587) => q(bxw),
+ q(1588) => q(bxz),
+ q(1589) => q(bya),
+ q(1590) => q(byb),
+ q(1591) => q(byc),
+ q(1592) => q(byd),
+ q(1593) => q(bye),
+ q(1594) => q(byf),
+ q(1595) => q(byg),
+ q(1596) => q(byh),
+ q(1597) => q(byi),
+ q(1598) => q(byj),
+ q(1599) => q(byk),
+ q(1600) => q(byl),
+ q(1601) => q(bym),
+ q(1602) => q(byo),
+ q(1603) => q(byp),
+ q(1604) => q(byq),
+ q(1605) => q(byr),
+ q(1606) => q(bys),
+ q(1607) => q(byt),
+ q(1608) => q(byv),
+ q(1609) => q(byw),
+ q(1610) => q(byx),
+ q(1611) => q(byz),
+ q(1612) => q(bza),
+ q(1613) => q(bzb),
+ q(1614) => q(bzc),
+ q(1615) => q(bzd),
+ q(1616) => q(bze),
+ q(1617) => q(bzf),
+ q(1618) => q(bzg),
+ q(1619) => q(bzh),
+ q(1620) => q(bzi),
+ q(1621) => q(bzj),
+ q(1622) => q(bzk),
+ q(1623) => q(bzl),
+ q(1624) => q(bzm),
+ q(1625) => q(bzn),
+ q(1626) => q(bzo),
+ q(1627) => q(bzp),
+ q(1628) => q(bzq),
+ q(1629) => q(bzr),
+ q(1630) => q(bzs),
+ q(1631) => q(bzt),
+ q(1632) => q(bzu),
+ q(1633) => q(bzv),
+ q(1634) => q(bzw),
+ q(1635) => q(bzx),
+ q(1636) => q(bzy),
+ q(1637) => q(bzz),
+ q(1638) => q(caa),
+ q(1639) => q(cab),
+ q(1640) => q(cac),
+ q(1641) => q(cae),
+ q(1642) => q(caf),
+ q(1643) => q(cag),
+ q(1644) => q(cah),
+ q(1645) => q(caj),
+ q(1646) => q(cak),
+ q(1647) => q(cal),
+ q(1648) => q(cam),
+ q(1649) => q(can),
+ q(1650) => q(cao),
+ q(1651) => q(cap),
+ q(1652) => q(caq),
+ q(1653) => q(cas),
+ q(1654) => q(cav),
+ q(1655) => q(caw),
+ q(1656) => q(cax),
+ q(1657) => q(cay),
+ q(1658) => q(caz),
+ q(1659) => q(cbb),
+ q(1660) => q(cbc),
+ q(1661) => q(cbd),
+ q(1662) => q(cbg),
+ q(1663) => q(cbi),
+ q(1664) => q(cbj),
+ q(1665) => q(cbk),
+ q(1666) => q(cbl),
+ q(1667) => q(cbn),
+ q(1668) => q(cbo),
+ q(1669) => q(cbq),
+ q(1670) => q(cbr),
+ q(1671) => q(cbs),
+ q(1672) => q(cbt),
+ q(1673) => q(cbu),
+ q(1674) => q(cbv),
+ q(1675) => q(cbw),
+ q(1676) => q(cby),
+ q(1677) => q(cca),
+ q(1678) => q(ccc),
+ q(1679) => q(ccd),
+ q(1680) => q(cce),
+ q(1681) => q(ccg),
+ q(1682) => q(cch),
+ q(1683) => q(ccj),
+ q(1684) => q(ccl),
+ q(1685) => q(ccm),
+ q(1686) => q(cco),
+ q(1687) => q(ccp),
+ q(1688) => q(ccr),
+ q(1689) => q(cda),
+ q(1690) => q(cde),
+ q(1691) => q(cdf),
+ q(1692) => q(cdg),
+ q(1693) => q(cdh),
+ q(1694) => q(cdi),
+ q(1695) => q(cdj),
+ q(1696) => q(cdm),
+ q(1697) => q(cdn),
+ q(1698) => q(cdo),
+ q(1699) => q(cdr),
+ q(1700) => q(cds),
+ q(1701) => q(cdy),
+ q(1702) => q(cdz),
+ q(1703) => q(cea),
+ q(1704) => q(ceg),
+ q(1705) => q(cek),
+ q(1706) => q(cen),
+ q(1707) => q(cet),
+ q(1708) => q(cfa),
+ q(1709) => q(cfd),
+ q(1710) => q(cfg),
+ q(1711) => q(cfm),
+ q(1712) => q(cga),
+ q(1713) => q(cgc),
+ q(1714) => q(cgg),
+ q(1715) => q(cgk),
+ q(1716) => q(chc),
+ q(1717) => q(chd),
+ q(1718) => q(chf),
+ q(1719) => q(chh),
+ q(1720) => q(chj),
+ q(1721) => q(chl),
+ q(1722) => q(chq),
+ q(1723) => q(cht),
+ q(1724) => q(chw),
+ q(1725) => q(chx),
+ q(1726) => q(chz),
+ q(1727) => q(cia),
+ q(1728) => q(cib),
+ q(1729) => q(cic),
+ q(1730) => q(cid),
+ q(1731) => q(cie),
+ q(1732) => q(cih),
+ q(1733) => q(cik),
+ q(1734) => q(cim),
+ q(1735) => q(cin),
+ q(1736) => q(cip),
+ q(1737) => q(cir),
+ q(1738) => q(ciw),
+ q(1739) => q(ciy),
+ q(1740) => q(cja),
+ q(1741) => q(cje),
+ q(1742) => q(cjh),
+ q(1743) => q(cji),
+ q(1744) => q(cjk),
+ q(1745) => q(cjm),
+ q(1746) => q(cjn),
+ q(1747) => q(cjo),
+ q(1748) => q(cjp),
+ q(1749) => q(cjs),
+ q(1750) => q(cjv),
+ q(1751) => q(cjy),
+ q(1752) => q(ckb),
+ q(1753) => q(ckh),
+ q(1754) => q(ckl),
+ q(1755) => q(ckn),
+ q(1756) => q(cko),
+ q(1757) => q(ckq),
+ q(1758) => q(ckr),
+ q(1759) => q(cks),
+ q(1760) => q(ckt),
+ q(1761) => q(cku),
+ q(1762) => q(ckv),
+ q(1763) => q(ckx),
+ q(1764) => q(cky),
+ q(1765) => q(ckz),
+ q(1766) => q(cla),
+ q(1767) => q(clc),
+ q(1768) => q(cld),
+ q(1769) => q(cle),
+ q(1770) => q(clh),
+ q(1771) => q(cli),
+ q(1772) => q(clj),
+ q(1773) => q(clk),
+ q(1774) => q(cll),
+ q(1775) => q(clm),
+ q(1776) => q(clo),
+ q(1777) => q(clt),
+ q(1778) => q(clu),
+ q(1779) => q(clw),
+ q(1780) => q(cly),
+ q(1781) => q(cma),
+ q(1782) => q(cme),
+ q(1783) => q(cmg),
+ q(1784) => q(cmi),
+ q(1785) => q(cml),
+ q(1786) => q(cmm),
+ q(1787) => q(cmn),
+ q(1788) => q(cmo),
+ q(1789) => q(cmr),
+ q(1790) => q(cms),
+ q(1791) => q(cmt),
+ q(1792) => q(cna),
+ q(1793) => q(cnb),
+ q(1794) => q(cnc),
+ q(1795) => q(cng),
+ q(1796) => q(cnh),
+ q(1797) => q(cni),
+ q(1798) => q(cnk),
+ q(1799) => q(cnl),
+ q(1800) => q(cno),
+ q(1801) => q(cns),
+ q(1802) => q(cnt),
+ q(1803) => q(cnu),
+ q(1804) => q(cnw),
+ q(1805) => q(cnx),
+ q(1806) => q(coa),
+ q(1807) => q(cob),
+ q(1808) => q(coc),
+ q(1809) => q(cod),
+ q(1810) => q(coe),
+ q(1811) => q(cof),
+ q(1812) => q(cog),
+ q(1813) => q(coh),
+ q(1814) => q(coj),
+ q(1815) => q(cok),
+ q(1816) => q(col),
+ q(1817) => q(com),
+ q(1818) => q(con),
+ q(1819) => q(coo),
+ q(1820) => q(coq),
+ q(1821) => q(cot),
+ q(1822) => q(cou),
+ q(1823) => q(cov),
+ q(1824) => q(cow),
+ q(1825) => q(cox),
+ q(1826) => q(coz),
+ q(1827) => q(cpa),
+ q(1828) => q(cpb),
+ q(1829) => q(cpc),
+ q(1830) => q(cpg),
+ q(1831) => q(cpi),
+ q(1832) => q(cpn),
+ q(1833) => q(cpo),
+ q(1834) => q(cps),
+ q(1835) => q(cpu),
+ q(1836) => q(cpx),
+ q(1837) => q(cpy),
+ q(1838) => q(cqd),
+ q(1839) => q(cra),
+ q(1840) => q(crb),
+ q(1841) => q(crc),
+ q(1842) => q(crd),
+ q(1843) => q(crf),
+ q(1844) => q(crg),
+ q(1845) => q(cri),
+ q(1846) => q(crj),
+ q(1847) => q(crk),
+ q(1848) => q(crl),
+ q(1849) => q(crm),
+ q(1850) => q(crn),
+ q(1851) => q(cro),
+ q(1852) => q(crq),
+ q(1853) => q(crr),
+ q(1854) => q(crs),
+ q(1855) => q(crt),
+ q(1856) => q(crv),
+ q(1857) => q(crw),
+ q(1858) => q(crx),
+ q(1859) => q(cry),
+ q(1860) => q(crz),
+ q(1861) => q(csa),
+ q(1862) => q(csc),
+ q(1863) => q(csd),
+ q(1864) => q(cse),
+ q(1865) => q(csf),
+ q(1866) => q(csg),
+ q(1867) => q(csh),
+ q(1868) => q(csi),
+ q(1869) => q(csj),
+ q(1870) => q(csk),
+ q(1871) => q(csl),
+ q(1872) => q(csm),
+ q(1873) => q(csn),
+ q(1874) => q(cso),
+ q(1875) => q(csq),
+ q(1876) => q(csr),
+ q(1877) => q(css),
+ q(1878) => q(cst),
+ q(1879) => q(csv),
+ q(1880) => q(csw),
+ q(1881) => q(csy),
+ q(1882) => q(csz),
+ q(1883) => q(cta),
+ q(1884) => q(ctc),
+ q(1885) => q(ctd),
+ q(1886) => q(cte),
+ q(1887) => q(ctg),
+ q(1888) => q(cth),
+ q(1889) => q(ctl),
+ q(1890) => q(ctm),
+ q(1891) => q(ctn),
+ q(1892) => q(cto),
+ q(1893) => q(ctp),
+ q(1894) => q(cts),
+ q(1895) => q(ctt),
+ q(1896) => q(ctu),
+ q(1897) => q(ctz),
+ q(1898) => q(cua),
+ q(1899) => q(cub),
+ q(1900) => q(cuc),
+ q(1901) => q(cug),
+ q(1902) => q(cuh),
+ q(1903) => q(cui),
+ q(1904) => q(cuj),
+ q(1905) => q(cuk),
+ q(1906) => q(cul),
+ q(1907) => q(cuo),
+ q(1908) => q(cup),
+ q(1909) => q(cuq),
+ q(1910) => q(cur),
+ q(1911) => q(cut),
+ q(1912) => q(cuu),
+ q(1913) => q(cuv),
+ q(1914) => q(cuw),
+ q(1915) => q(cux),
+ q(1916) => q(cvg),
+ q(1917) => q(cvn),
+ q(1918) => q(cwa),
+ q(1919) => q(cwb),
+ q(1920) => q(cwd),
+ q(1921) => q(cwe),
+ q(1922) => q(cwg),
+ q(1923) => q(cwt),
+ q(1924) => q(cya),
+ q(1925) => q(cyb),
+ q(1926) => q(cyo),
+ q(1927) => q(czh),
+ q(1928) => q(czk),
+ q(1929) => q(czn),
+ q(1930) => q(czo),
+ q(1931) => q(czt),
+ q(1932) => q(daa),
+ q(1933) => q(dac),
+ q(1934) => q(dad),
+ q(1935) => q(dae),
+ q(1936) => q(dag),
+ q(1937) => q(dah),
+ q(1938) => q(dai),
+ q(1939) => q(daj),
+ q(1940) => q(dal),
+ q(1941) => q(dam),
+ q(1942) => q(dao),
+ q(1943) => q(daq),
+ q(1944) => q(das),
+ q(1945) => q(dau),
+ q(1946) => q(dav),
+ q(1947) => q(daw),
+ q(1948) => q(dax),
+ q(1949) => q(daz),
+ q(1950) => q(dba),
+ q(1951) => q(dbb),
+ q(1952) => q(dbd),
+ q(1953) => q(dbe),
+ q(1954) => q(dbf),
+ q(1955) => q(dbg),
+ q(1956) => q(dbi),
+ q(1957) => q(dbj),
+ q(1958) => q(dbl),
+ q(1959) => q(dbm),
+ q(1960) => q(dbn),
+ q(1961) => q(dbo),
+ q(1962) => q(dbp),
+ q(1963) => q(dbq),
+ q(1964) => q(dbr),
+ q(1965) => q(dbt),
+ q(1966) => q(dbu),
+ q(1967) => q(dbv),
+ q(1968) => q(dbw),
+ q(1969) => q(dby),
+ q(1970) => q(dcc),
+ q(1971) => q(dcr),
+ q(1972) => q(dda),
+ q(1973) => q(ddd),
+ q(1974) => q(dde),
+ q(1975) => q(ddg),
+ q(1976) => q(ddi),
+ q(1977) => q(ddj),
+ q(1978) => q(ddn),
+ q(1979) => q(ddo),
+ q(1980) => q(ddr),
+ q(1981) => q(dds),
+ q(1982) => q(ddw),
+ q(1983) => q(dec),
+ q(1984) => q(ded),
+ q(1985) => q(dee),
+ q(1986) => q(def),
+ q(1987) => q(deg),
+ q(1988) => q(deh),
+ q(1989) => q(dei),
+ q(1990) => q(dek),
+ q(1991) => q(dem),
+ q(1992) => q(dep),
+ q(1993) => q(deq),
+ q(1994) => q(der),
+ q(1995) => q(des),
+ q(1996) => q(dev),
+ q(1997) => q(dez),
+ q(1998) => q(dga),
+ q(1999) => q(dgb),
+ q(2000) => q(dgc),
+ q(2001) => q(dgd),
+ q(2002) => q(dge),
+ q(2003) => q(dgg),
+ q(2004) => q(dgh),
+ q(2005) => q(dgi),
+ q(2006) => q(dgk),
+ q(2007) => q(dgl),
+ q(2008) => q(dgn),
+ q(2009) => q(dgo),
+ q(2010) => q(dgs),
+ q(2011) => q(dgt),
+ q(2012) => q(dgu),
+ q(2013) => q(dgw),
+ q(2014) => q(dgx),
+ q(2015) => q(dgz),
+ q(2016) => q(dhd),
+ q(2017) => q(dhg),
+ q(2018) => q(dhi),
+ q(2019) => q(dhl),
+ q(2020) => q(dhm),
+ q(2021) => q(dhn),
+ q(2022) => q(dho),
+ q(2023) => q(dhr),
+ q(2024) => q(dhs),
+ q(2025) => q(dhu),
+ q(2026) => q(dhv),
+ q(2027) => q(dhw),
+ q(2028) => q(dhx),
+ q(2029) => q(dia),
+ q(2030) => q(dib),
+ q(2031) => q(dic),
+ q(2032) => q(did),
+ q(2033) => q(dif),
+ q(2034) => q(dig),
+ q(2035) => q(dih),
+ q(2036) => q(dii),
+ q(2037) => q(dij),
+ q(2038) => q(dik),
+ q(2039) => q(dil),
+ q(2040) => q(dim),
+ q(2041) => q(dio),
+ q(2042) => q(dip),
+ q(2043) => q(diq),
+ q(2044) => q(dir),
+ q(2045) => q(dis),
+ q(2046) => q(dit),
+ q(2047) => q(diu),
+ q(2048) => q(diw),
+ q(2049) => q(dix),
+ q(2050) => q(diy),
+ q(2051) => q(diz),
+ q(2052) => q(dja),
+ q(2053) => q(djb),
+ q(2054) => q(djc),
+ q(2055) => q(djd),
+ q(2056) => q(dje),
+ q(2057) => q(djf),
+ q(2058) => q(dji),
+ q(2059) => q(djj),
+ q(2060) => q(djk),
+ q(2061) => q(djm),
+ q(2062) => q(djn),
+ q(2063) => q(djo),
+ q(2064) => q(djr),
+ q(2065) => q(dju),
+ q(2066) => q(djw),
+ q(2067) => q(dka),
+ q(2068) => q(dkk),
+ q(2069) => q(dkr),
+ q(2070) => q(dks),
+ q(2071) => q(dkx),
+ q(2072) => q(dlg),
+ q(2073) => q(dlk),
+ q(2074) => q(dlm),
+ q(2075) => q(dln),
+ q(2076) => q(dma),
+ q(2077) => q(dmb),
+ q(2078) => q(dmc),
+ q(2079) => q(dmd),
+ q(2080) => q(dme),
+ q(2081) => q(dmg),
+ q(2082) => q(dmk),
+ q(2083) => q(dml),
+ q(2084) => q(dmm),
+ q(2085) => q(dmo),
+ q(2086) => q(dmr),
+ q(2087) => q(dms),
+ q(2088) => q(dmu),
+ q(2089) => q(dmv),
+ q(2090) => q(dmw),
+ q(2091) => q(dmx),
+ q(2092) => q(dmy),
+ q(2093) => q(dna),
+ q(2094) => q(dnd),
+ q(2095) => q(dne),
+ q(2096) => q(dng),
+ q(2097) => q(dni),
+ q(2098) => q(dnj),
+ q(2099) => q(dnk),
+ q(2100) => q(dnn),
+ q(2101) => q(dnr),
+ q(2102) => q(dnt),
+ q(2103) => q(dnu),
+ q(2104) => q(dnv),
+ q(2105) => q(dnw),
+ q(2106) => q(dny),
+ q(2107) => q(doa),
+ q(2108) => q(dob),
+ q(2109) => q(doc),
+ q(2110) => q(doe),
+ q(2111) => q(dof),
+ q(2112) => q(doh),
+ q(2113) => q(dok),
+ q(2114) => q(dol),
+ q(2115) => q(don),
+ q(2116) => q(doo),
+ q(2117) => q(dop),
+ q(2118) => q(doq),
+ q(2119) => q(dor),
+ q(2120) => q(dos),
+ q(2121) => q(dot),
+ q(2122) => q(dov),
+ q(2123) => q(dow),
+ q(2124) => q(dox),
+ q(2125) => q(doy),
+ q(2126) => q(doz),
+ q(2127) => q(dpp),
+ q(2128) => q(drb),
+ q(2129) => q(drc),
+ q(2130) => q(drd),
+ q(2131) => q(dre),
+ q(2132) => q(drg),
+ q(2133) => q(dri),
+ q(2134) => q(drl),
+ q(2135) => q(drn),
+ q(2136) => q(dro),
+ q(2137) => q(drq),
+ q(2138) => q(drr),
+ q(2139) => q(drs),
+ q(2140) => q(drt),
+ q(2141) => q(dru),
+ q(2142) => q(dry),
+ q(2143) => q(dse),
+ q(2144) => q(dsh),
+ q(2145) => q(dsi),
+ q(2146) => q(dsl),
+ q(2147) => q(dsn),
+ q(2148) => q(dso),
+ q(2149) => q(dsq),
+ q(2150) => q(dta),
+ q(2151) => q(dtb),
+ q(2152) => q(dtd),
+ q(2153) => q(dth),
+ q(2154) => q(dti),
+ q(2155) => q(dtk),
+ q(2156) => q(dtm),
+ q(2157) => q(dtn),
+ q(2158) => q(dto),
+ q(2159) => q(dtp),
+ q(2160) => q(dtr),
+ q(2161) => q(dts),
+ q(2162) => q(dtt),
+ q(2163) => q(dtu),
+ q(2164) => q(dty),
+ q(2165) => q(dub),
+ q(2166) => q(duc),
+ q(2167) => q(dud),
+ q(2168) => q(due),
+ q(2169) => q(duf),
+ q(2170) => q(dug),
+ q(2171) => q(duh),
+ q(2172) => q(dui),
+ q(2173) => q(duk),
+ q(2174) => q(dul),
+ q(2175) => q(dun),
+ q(2176) => q(duo),
+ q(2177) => q(dup),
+ q(2178) => q(duq),
+ q(2179) => q(dur),
+ q(2180) => q(dus),
+ q(2181) => q(duu),
+ q(2182) => q(duv),
+ q(2183) => q(duw),
+ q(2184) => q(dux),
+ q(2185) => q(duy),
+ q(2186) => q(duz),
+ q(2187) => q(dva),
+ q(2188) => q(dwa),
+ q(2189) => q(dwr),
+ q(2190) => q(dws),
+ q(2191) => q(dwu),
+ q(2192) => q(dww),
+ q(2193) => q(dwy),
+ q(2194) => q(dya),
+ q(2195) => q(dyb),
+ q(2196) => q(dyd),
+ q(2197) => q(dyg),
+ q(2198) => q(dyi),
+ q(2199) => q(dym),
+ q(2200) => q(dyn),
+ q(2201) => q(dyo),
+ q(2202) => q(dyy),
+ q(2203) => q(dza),
+ q(2204) => q(dze),
+ q(2205) => q(dzg),
+ q(2206) => q(dzl),
+ q(2207) => q(dzn),
+ q(2208) => q(eaa),
+ q(2209) => q(ebg),
+ q(2210) => q(ebk),
+ q(2211) => q(ebo),
+ q(2212) => q(ebr),
+ q(2213) => q(ebu),
+ q(2214) => q(ecr),
+ q(2215) => q(ecs),
+ q(2216) => q(ecy),
+ q(2217) => q(eee),
+ q(2218) => q(efa),
+ q(2219) => q(efe),
+ q(2220) => q(ega),
+ q(2221) => q(egl),
+ q(2222) => q(ego),
+ q(2223) => q(ehu),
+ q(2224) => q(eip),
+ q(2225) => q(eit),
+ q(2226) => q(eiv),
+ q(2227) => q(eja),
+ q(2228) => q(ekc),
+ q(2229) => q(eke),
+ q(2230) => q(ekg),
+ q(2231) => q(eki),
+ q(2232) => q(ekk),
+ q(2233) => q(ekl),
+ q(2234) => q(ekm),
+ q(2235) => q(eko),
+ q(2236) => q(ekp),
+ q(2237) => q(ekr),
+ q(2238) => q(eky),
+ q(2239) => q(ele),
+ q(2240) => q(elh),
+ q(2241) => q(eli),
+ q(2242) => q(elk),
+ q(2243) => q(elm),
+ q(2244) => q(elo),
+ q(2245) => q(elu),
+ q(2246) => q(ema),
+ q(2247) => q(emb),
+ q(2248) => q(eme),
+ q(2249) => q(emg),
+ q(2250) => q(emi),
+ q(2251) => q(emk),
+ q(2252) => q(emm),
+ q(2253) => q(emn),
+ q(2254) => q(emp),
+ q(2255) => q(ems),
+ q(2256) => q(emu),
+ q(2257) => q(emw),
+ q(2258) => q(emx),
+ q(2259) => q(emy),
+ q(2260) => q(ena),
+ q(2261) => q(enb),
+ q(2262) => q(enc),
+ q(2263) => q(end),
+ q(2264) => q(enf),
+ q(2265) => q(enh),
+ q(2266) => q(enl),
+ q(2267) => q(enn),
+ q(2268) => q(eno),
+ q(2269) => q(enq),
+ q(2270) => q(enr),
+ q(2271) => q(enu),
+ q(2272) => q(env),
+ q(2273) => q(enw),
+ q(2274) => q(enx),
+ q(2275) => q(eot),
+ q(2276) => q(epi),
+ q(2277) => q(era),
+ q(2278) => q(erg),
+ q(2279) => q(erh),
+ q(2280) => q(eri),
+ q(2281) => q(erk),
+ q(2282) => q(ero),
+ q(2283) => q(err),
+ q(2284) => q(ers),
+ q(2285) => q(ert),
+ q(2286) => q(erw),
+ q(2287) => q(ese),
+ q(2288) => q(esg),
+ q(2289) => q(esh),
+ q(2290) => q(esi),
+ q(2291) => q(esk),
+ q(2292) => q(esl),
+ q(2293) => q(esm),
+ q(2294) => q(esn),
+ q(2295) => q(eso),
+ q(2296) => q(esq),
+ q(2297) => q(ess),
+ q(2298) => q(esu),
+ q(2299) => q(esy),
+ q(2300) => q(etb),
+ q(2301) => q(etc),
+ q(2302) => q(eth),
+ q(2303) => q(etn),
+ q(2304) => q(eto),
+ q(2305) => q(etr),
+ q(2306) => q(ets),
+ q(2307) => q(ett),
+ q(2308) => q(etu),
+ q(2309) => q(etx),
+ q(2310) => q(etz),
+ q(2311) => q(eve),
+ q(2312) => q(evh),
+ q(2313) => q(evn),
+ q(2314) => q(ext),
+ q(2315) => q(eya),
+ q(2316) => q(eyo),
+ q(2317) => q(eza),
+ q(2318) => q(eze),
+ q(2319) => q(faa),
+ q(2320) => q(fab),
+ q(2321) => q(fad),
+ q(2322) => q(faf),
+ q(2323) => q(fag),
+ q(2324) => q(fah),
+ q(2325) => q(fai),
+ q(2326) => q(faj),
+ q(2327) => q(fak),
+ q(2328) => q(fal),
+ q(2329) => q(fam),
+ q(2330) => q(fap),
+ q(2331) => q(far),
+ q(2332) => q(fau),
+ q(2333) => q(fax),
+ q(2334) => q(fay),
+ q(2335) => q(faz),
+ q(2336) => q(fbl),
+ q(2337) => q(fcs),
+ q(2338) => q(fer),
+ q(2339) => q(ffi),
+ q(2340) => q(ffm),
+ q(2341) => q(fgr),
+ q(2342) => q(fia),
+ q(2343) => q(fie),
+ q(2344) => q(fip),
+ q(2345) => q(fir),
+ q(2346) => q(fit),
+ q(2347) => q(fiw),
+ q(2348) => q(fkk),
+ q(2349) => q(fkv),
+ q(2350) => q(fla),
+ q(2351) => q(flh),
+ q(2352) => q(fli),
+ q(2353) => q(fll),
+ q(2354) => q(fln),
+ q(2355) => q(flr),
+ q(2356) => q(fly),
+ q(2357) => q(fmp),
+ q(2358) => q(fmu),
+ q(2359) => q(fnb),
+ q(2360) => q(fng),
+ q(2361) => q(fni),
+ q(2362) => q(fod),
+ q(2363) => q(foi),
+ q(2364) => q(fom),
+ q(2365) => q(for),
+ q(2366) => q(fos),
+ q(2367) => q(fpe),
+ q(2368) => q(fqs),
+ q(2369) => q(frc),
+ q(2370) => q(frd),
+ q(2371) => q(frk),
+ q(2372) => q(frp),
+ q(2373) => q(frq),
+ q(2374) => q(frt),
+ q(2375) => q(fse),
+ q(2376) => q(fsl),
+ q(2377) => q(fss),
+ q(2378) => q(fub),
+ q(2379) => q(fuc),
+ q(2380) => q(fud),
+ q(2381) => q(fue),
+ q(2382) => q(fuf),
+ q(2383) => q(fuh),
+ q(2384) => q(fui),
+ q(2385) => q(fuj),
+ q(2386) => q(fum),
+ q(2387) => q(fun),
+ q(2388) => q(fuq),
+ q(2389) => q(fut),
+ q(2390) => q(fuu),
+ q(2391) => q(fuv),
+ q(2392) => q(fuy),
+ q(2393) => q(fvr),
+ q(2394) => q(fwa),
+ q(2395) => q(fwe),
+ q(2396) => q(gab),
+ q(2397) => q(gac),
+ q(2398) => q(gad),
+ q(2399) => q(gae),
+ q(2400) => q(gaf),
+ q(2401) => q(gag),
+ q(2402) => q(gah),
+ q(2403) => q(gai),
+ q(2404) => q(gaj),
+ q(2405) => q(gak),
+ q(2406) => q(gal),
+ q(2407) => q(gam),
+ q(2408) => q(gan),
+ q(2409) => q(gao),
+ q(2410) => q(gap),
+ q(2411) => q(gaq),
+ q(2412) => q(gar),
+ q(2413) => q(gas),
+ q(2414) => q(gat),
+ q(2415) => q(gau),
+ q(2416) => q(gaw),
+ q(2417) => q(gax),
+ q(2418) => q(gaz),
+ q(2419) => q(gbb),
+ q(2420) => q(gbd),
+ q(2421) => q(gbe),
+ q(2422) => q(gbf),
+ q(2423) => q(gbg),
+ q(2424) => q(gbh),
+ q(2425) => q(gbi),
+ q(2426) => q(gbj),
+ q(2427) => q(gbk),
+ q(2428) => q(gbl),
+ q(2429) => q(gbm),
+ q(2430) => q(gbn),
+ q(2431) => q(gbo),
+ q(2432) => q(gbp),
+ q(2433) => q(gbq),
+ q(2434) => q(gbr),
+ q(2435) => q(gbs),
+ q(2436) => q(gbu),
+ q(2437) => q(gbv),
+ q(2438) => q(gbw),
+ q(2439) => q(gbx),
+ q(2440) => q(gby),
+ q(2441) => q(gbz),
+ q(2442) => q(gcc),
+ q(2443) => q(gcd),
+ q(2444) => q(gce),
+ q(2445) => q(gcf),
+ q(2446) => q(gcl),
+ q(2447) => q(gcn),
+ q(2448) => q(gcr),
+ q(2449) => q(gct),
+ q(2450) => q(gda),
+ q(2451) => q(gdb),
+ q(2452) => q(gdc),
+ q(2453) => q(gdd),
+ q(2454) => q(gde),
+ q(2455) => q(gdf),
+ q(2456) => q(gdg),
+ q(2457) => q(gdh),
+ q(2458) => q(gdi),
+ q(2459) => q(gdj),
+ q(2460) => q(gdk),
+ q(2461) => q(gdl),
+ q(2462) => q(gdm),
+ q(2463) => q(gdn),
+ q(2464) => q(gdo),
+ q(2465) => q(gdq),
+ q(2466) => q(gdr),
+ q(2467) => q(gds),
+ q(2468) => q(gdt),
+ q(2469) => q(gdu),
+ q(2470) => q(gdx),
+ q(2471) => q(gea),
+ q(2472) => q(geb),
+ q(2473) => q(gec),
+ q(2474) => q(ged),
+ q(2475) => q(geg),
+ q(2476) => q(geh),
+ q(2477) => q(gei),
+ q(2478) => q(gej),
+ q(2479) => q(gek),
+ q(2480) => q(gel),
+ q(2481) => q(geq),
+ q(2482) => q(ges),
+ q(2483) => q(gev),
+ q(2484) => q(gew),
+ q(2485) => q(gex),
+ q(2486) => q(gey),
+ q(2487) => q(gfk),
+ q(2488) => q(gft),
+ q(2489) => q(gga),
+ q(2490) => q(ggb),
+ q(2491) => q(ggd),
+ q(2492) => q(gge),
+ q(2493) => q(ggg),
+ q(2494) => q(ggk),
+ q(2495) => q(ggl),
+ q(2496) => q(ggt),
+ q(2497) => q(ggu),
+ q(2498) => q(ggw),
+ q(2499) => q(gha),
+ q(2500) => q(ghc),
+ q(2501) => q(ghe),
+ q(2502) => q(ghh),
+ q(2503) => q(ghk),
+ q(2504) => q(ghl),
+ q(2505) => q(ghn),
+ q(2506) => q(gho),
+ q(2507) => q(ghr),
+ q(2508) => q(ghs),
+ q(2509) => q(ght),
+ q(2510) => q(gia),
+ q(2511) => q(gib),
+ q(2512) => q(gic),
+ q(2513) => q(gid),
+ q(2514) => q(gie),
+ q(2515) => q(gig),
+ q(2516) => q(gih),
+ q(2517) => q(gim),
+ q(2518) => q(gin),
+ q(2519) => q(gip),
+ q(2520) => q(giq),
+ q(2521) => q(gir),
+ q(2522) => q(gis),
+ q(2523) => q(git),
+ q(2524) => q(giu),
+ q(2525) => q(giw),
+ q(2526) => q(gix),
+ q(2527) => q(giy),
+ q(2528) => q(giz),
+ q(2529) => q(gji),
+ q(2530) => q(gjk),
+ q(2531) => q(gjm),
+ q(2532) => q(gjn),
+ q(2533) => q(gjr),
+ q(2534) => q(gju),
+ q(2535) => q(gka),
+ q(2536) => q(gke),
+ q(2537) => q(gkn),
+ q(2538) => q(gko),
+ q(2539) => q(gkp),
+ q(2540) => q(gku),
+ q(2541) => q(glc),
+ q(2542) => q(gld),
+ q(2543) => q(glh),
+ q(2544) => q(gli),
+ q(2545) => q(glj),
+ q(2546) => q(glk),
+ q(2547) => q(gll),
+ q(2548) => q(glo),
+ q(2549) => q(glr),
+ q(2550) => q(glu),
+ q(2551) => q(glw),
+ q(2552) => q(gly),
+ q(2553) => q(gma),
+ q(2554) => q(gmb),
+ q(2555) => q(gmd),
+ q(2556) => q(gmg),
+ q(2557) => q(gml),
+ q(2558) => q(gmm),
+ q(2559) => q(gmn),
+ q(2560) => q(gmu),
+ q(2561) => q(gmv),
+ q(2562) => q(gmx),
+ q(2563) => q(gmy),
+ q(2564) => q(gmz),
+ q(2565) => q(gna),
+ q(2566) => q(gnb),
+ q(2567) => q(gnc),
+ q(2568) => q(gnd),
+ q(2569) => q(gne),
+ q(2570) => q(gng),
+ q(2571) => q(gnh),
+ q(2572) => q(gni),
+ q(2573) => q(gnq),
+ q(2574) => q(gnl),
+ q(2575) => q(gnm),
+ q(2576) => q(gnn),
+ q(2577) => q(gno),
+ q(2578) => q(gnr),
+ q(2579) => q(gnt),
+ q(2580) => q(gnu),
+ q(2581) => q(gnw),
+ q(2582) => q(gnz),
+ q(2583) => q(goa),
+ q(2584) => q(gob),
+ q(2585) => q(goc),
+ q(2586) => q(god),
+ q(2587) => q(goe),
+ q(2588) => q(gof),
+ q(2589) => q(gog),
+ q(2590) => q(goi),
+ q(2591) => q(goj),
+ q(2592) => q(gok),
+ q(2593) => q(gol),
+ q(2594) => q(gom),
+ q(2595) => q(goo),
+ q(2596) => q(gop),
+ q(2597) => q(goq),
+ q(2598) => q(gos),
+ q(2599) => q(gou),
+ q(2600) => q(gow),
+ q(2601) => q(gox),
+ q(2602) => q(goy),
+ q(2603) => q(goz),
+ q(2604) => q(gpa),
+ q(2605) => q(gpe),
+ q(2606) => q(gpn),
+ q(2607) => q(gqa),
+ q(2608) => q(gqi),
+ q(2609) => q(gqn),
+ q(2610) => q(gqr),
+ q(2611) => q(gqu),
+ q(2612) => q(gra),
+ q(2613) => q(grd),
+ q(2614) => q(grg),
+ q(2615) => q(grh),
+ q(2616) => q(gri),
+ q(2617) => q(grj),
+ q(2618) => q(grm),
+ q(2619) => q(gro),
+ q(2620) => q(grq),
+ q(2621) => q(grr),
+ q(2622) => q(grs),
+ q(2623) => q(grt),
+ q(2624) => q(gru),
+ q(2625) => q(grv),
+ q(2626) => q(grw),
+ q(2627) => q(grx),
+ q(2628) => q(gry),
+ q(2629) => q(grz),
+ q(2630) => q(gse),
+ q(2631) => q(gsg),
+ q(2632) => q(gsl),
+ q(2633) => q(gsm),
+ q(2634) => q(gsn),
+ q(2635) => q(gso),
+ q(2636) => q(gsp),
+ q(2637) => q(gss),
+ q(2638) => q(gta),
+ q(2639) => q(gtu),
+ q(2640) => q(gua),
+ q(2641) => q(gub),
+ q(2642) => q(guc),
+ q(2643) => q(gud),
+ q(2644) => q(gue),
+ q(2645) => q(guf),
+ q(2646) => q(gug),
+ q(2647) => q(guh),
+ q(2648) => q(gui),
+ q(2649) => q(guk),
+ q(2650) => q(gul),
+ q(2651) => q(gum),
+ q(2652) => q(gun),
+ q(2653) => q(guo),
+ q(2654) => q(gup),
+ q(2655) => q(yif),
+ q(2656) => q(gur),
+ q(2657) => q(gus),
+ q(2658) => q(gut),
+ q(2659) => q(guu),
+ q(2660) => q(guw),
+ q(2661) => q(gux),
+ q(2662) => q(guz),
+ q(2663) => q(gva),
+ q(2664) => q(gvc),
+ q(2665) => q(gve),
+ q(2666) => q(gvf),
+ q(2667) => q(gvj),
+ q(2668) => q(gvl),
+ q(2669) => q(gvm),
+ q(2670) => q(gvn),
+ q(2671) => q(gvo),
+ q(2672) => q(gvp),
+ q(2673) => q(gvr),
+ q(2674) => q(gvs),
+ q(2675) => q(gvy),
+ q(2676) => q(gwa),
+ q(2677) => q(gwb),
+ q(2678) => q(gwc),
+ q(2679) => q(gwd),
+ q(2680) => q(gwe),
+ q(2681) => q(gwf),
+ q(2682) => q(gwg),
+ q(2683) => q(gwj),
+ q(2684) => q(gwm),
+ q(2685) => q(gwn),
+ q(2686) => q(gwr),
+ q(2687) => q(gwt),
+ q(2688) => q(gwu),
+ q(2689) => q(gww),
+ q(2690) => q(gwx),
+ q(2691) => q(gxx),
+ q(2692) => q(gya),
+ q(2693) => q(gyb),
+ q(2694) => q(gyd),
+ q(2695) => q(gye),
+ q(2696) => q(gyf),
+ q(2697) => q(gyg),
+ q(2698) => q(gyi),
+ q(2699) => q(gyl),
+ q(2700) => q(gym),
+ q(2701) => q(gyn),
+ q(2702) => q(gyr),
+ q(2703) => q(gyy),
+ q(2704) => q(gza),
+ q(2705) => q(gzi),
+ q(2706) => q(gzn),
+ q(2707) => q(haa),
+ q(2708) => q(hab),
+ q(2709) => q(hac),
+ q(2710) => q(had),
+ q(2711) => q(hae),
+ q(2712) => q(haf),
+ q(2713) => q(hag),
+ q(2714) => q(hah),
+ q(2715) => q(haj),
+ q(2716) => q(hak),
+ q(2717) => q(hal),
+ q(2718) => q(ham),
+ q(2719) => q(han),
+ q(2720) => q(hao),
+ q(2721) => q(hap),
+ q(2722) => q(haq),
+ q(2723) => q(har),
+ q(2724) => q(has),
+ q(2725) => q(hav),
+ q(2726) => q(hax),
+ q(2727) => q(hay),
+ q(2728) => q(haz),
+ q(2729) => q(hba),
+ q(2730) => q(hbb),
+ q(2731) => q(hbn),
+ q(2732) => q(hbo),
+ q(2733) => q(hbu),
+ q(2734) => q(hca),
+ q(2735) => q(hch),
+ q(2736) => q(hdn),
+ q(2737) => q(hds),
+ q(2738) => q(hdy),
+ q(2739) => q(hea),
+ q(2740) => q(hed),
+ q(2741) => q(heg),
+ q(2742) => q(heh),
+ q(2743) => q(hei),
+ q(2744) => q(hem),
+ q(2745) => q(hgm),
+ q(2746) => q(hgw),
+ q(2747) => q(hhi),
+ q(2748) => q(hhr),
+ q(2749) => q(hhy),
+ q(2750) => q(hia),
+ q(2751) => q(hib),
+ q(2752) => q(hid),
+ q(2753) => q(hif),
+ q(2754) => q(hig),
+ q(2755) => q(hih),
+ q(2756) => q(hii),
+ q(2757) => q(hij),
+ q(2758) => q(hik),
+ q(2759) => q(hio),
+ q(2760) => q(hir),
+ q(2761) => q(hiw),
+ q(2762) => q(hix),
+ q(2763) => q(hji),
+ q(2764) => q(hka),
+ q(2765) => q(hke),
+ q(2766) => q(hkk),
+ q(2767) => q(hks),
+ q(2768) => q(hla),
+ q(2769) => q(hlb),
+ q(2770) => q(hld),
+ q(2771) => q(hle),
+ q(2772) => q(hlt),
+ q(2773) => q(hlu),
+ q(2774) => q(hma),
+ q(2775) => q(hmb),
+ q(2776) => q(hmc),
+ q(2777) => q(hmd),
+ q(2778) => q(hme),
+ q(2779) => q(hmf),
+ q(2780) => q(hmg),
+ q(2781) => q(hmh),
+ q(2782) => q(hmi),
+ q(2783) => q(hmj),
+ q(2784) => q(hmk),
+ q(2785) => q(hml),
+ q(2786) => q(hmm),
+ q(2787) => q(hmp),
+ q(2788) => q(hmq),
+ q(2789) => q(hmr),
+ q(2790) => q(hms),
+ q(2791) => q(hmt),
+ q(2792) => q(hmu),
+ q(2793) => q(hmv),
+ q(2794) => q(hmw),
+ q(2795) => q(hmy),
+ q(2796) => q(hmz),
+ q(2797) => q(hna),
+ q(2798) => q(hnd),
+ q(2799) => q(hne),
+ q(2800) => q(hnh),
+ q(2801) => q(hni),
+ q(2802) => q(hnj),
+ q(2803) => q(hnn),
+ q(2804) => q(hno),
+ q(2805) => q(hns),
+ q(2806) => q(hnu),
+ q(2807) => q(hoa),
+ q(2808) => q(hob),
+ q(2809) => q(hoc),
+ q(2810) => q(hod),
+ q(2811) => q(hoe),
+ q(2812) => q(hoh),
+ q(2813) => q(hoi),
+ q(2814) => q(hoj),
+ q(2815) => q(hol),
+ q(2816) => q(hom),
+ q(2817) => q(hoo),
+ q(2818) => q(hop),
+ q(2819) => q(hor),
+ q(2820) => q(hos),
+ q(2821) => q(hot),
+ q(2822) => q(hov),
+ q(2823) => q(how),
+ q(2824) => q(hoy),
+ q(2825) => q(hoz),
+ q(2826) => q(hpo),
+ q(2827) => q(hps),
+ q(2828) => q(hra),
+ q(2829) => q(hrc),
+ q(2830) => q(hre),
+ q(2831) => q(hrk),
+ q(2832) => q(hrm),
+ q(2833) => q(hro),
+ q(2834) => q(hrp),
+ q(2835) => q(hrt),
+ q(2836) => q(hru),
+ q(2837) => q(hrw),
+ q(2838) => q(hrx),
+ q(2839) => q(hrz),
+ q(2840) => q(hsh),
+ q(2841) => q(hsl),
+ q(2842) => q(hsn),
+ q(2843) => q(hss),
+ q(2844) => q(hti),
+ q(2845) => q(hto),
+ q(2846) => q(hts),
+ q(2847) => q(htu),
+ q(2848) => q(htx),
+ q(2849) => q(hub),
+ q(2850) => q(huc),
+ q(2851) => q(hud),
+ q(2852) => q(hue),
+ q(2853) => q(huf),
+ q(2854) => q(hug),
+ q(2855) => q(huh),
+ q(2856) => q(hui),
+ q(2857) => q(huj),
+ q(2858) => q(huk),
+ q(2859) => q(hul),
+ q(2860) => q(hum),
+ q(2861) => q(huo),
+ q(2862) => q(huq),
+ q(2863) => q(hur),
+ q(2864) => q(hus),
+ q(2865) => q(hut),
+ q(2866) => q(huu),
+ q(2867) => q(huv),
+ q(2868) => q(huw),
+ q(2869) => q(hux),
+ q(2870) => q(huy),
+ q(2871) => q(huz),
+ q(2872) => q(hvc),
+ q(2873) => q(hve),
+ q(2874) => q(hvk),
+ q(2875) => q(hvn),
+ q(2876) => q(hvv),
+ q(2877) => q(hwa),
+ q(2878) => q(hwc),
+ q(2879) => q(hwo),
+ q(2880) => q(hya),
+ q(2881) => q(iai),
+ q(2882) => q(ian),
+ q(2883) => q(iar),
+ q(2884) => q(ibb),
+ q(2885) => q(ibd),
+ q(2886) => q(ibe),
+ q(2887) => q(ibg),
+ q(2888) => q(ibh),
+ q(2889) => q(ibl),
+ q(2890) => q(ibm),
+ q(2891) => q(ibn),
+ q(2892) => q(ibr),
+ q(2893) => q(ibu),
+ q(2894) => q(iby),
+ q(2895) => q(ica),
+ q(2896) => q(ich),
+ q(2897) => q(icl),
+ q(2898) => q(icr),
+ q(2899) => q(ida),
+ q(2900) => q(idb),
+ q(2901) => q(idc),
+ q(2902) => q(idd),
+ q(2903) => q(ide),
+ q(2904) => q(idi),
+ q(2905) => q(idr),
+ q(2906) => q(ids),
+ q(2907) => q(idt),
+ q(2908) => q(idu),
+ q(2909) => q(ifa),
+ q(2910) => q(ifb),
+ q(2911) => q(ife),
+ q(2912) => q(iff),
+ q(2913) => q(ifk),
+ q(2914) => q(ifm),
+ q(2915) => q(ifu),
+ q(2916) => q(ify),
+ q(2917) => q(igb),
+ q(2918) => q(ige),
+ q(2919) => q(igg),
+ q(2920) => q(igl),
+ q(2921) => q(igm),
+ q(2922) => q(ign),
+ q(2923) => q(igo),
+ q(2924) => q(igs),
+ q(2925) => q(igw),
+ q(2926) => q(ihb),
+ q(2927) => q(ihi),
+ q(2928) => q(ihp),
+ q(2929) => q(ihw),
+ q(2930) => q(iin),
+ q(2931) => q(ijc),
+ q(2932) => q(ije),
+ q(2933) => q(ijj),
+ q(2934) => q(ijn),
+ q(2935) => q(ijs),
+ q(2936) => q(ike),
+ q(2937) => q(iki),
+ q(2938) => q(ikk),
+ q(2939) => q(ikl),
+ q(2940) => q(iko),
+ q(2941) => q(ikp),
+ q(2942) => q(ikr),
+ q(2943) => q(iks),
+ q(2944) => q(ikt),
+ q(2945) => q(ikv),
+ q(2946) => q(ikw),
+ q(2947) => q(ikx),
+ q(2948) => q(ikz),
+ q(2949) => q(ila),
+ q(2950) => q(ilb),
+ q(2951) => q(ilg),
+ q(2952) => q(ili),
+ q(2953) => q(ilk),
+ q(2954) => q(ilm),
+ q(2955) => q(ilp),
+ q(2956) => q(ils),
+ q(2957) => q(ilu),
+ q(2958) => q(ilv),
+ q(2959) => q(ima),
+ q(2960) => q(imi),
+ q(2961) => q(iml),
+ q(2962) => q(imn),
+ q(2963) => q(imo),
+ q(2964) => q(imr),
+ q(2965) => q(ims),
+ q(2966) => q(imy),
+ q(2967) => q(inb),
+ q(2968) => q(ing),
+ q(2969) => q(inj),
+ q(2970) => q(inl),
+ q(2971) => q(inm),
+ q(2972) => q(inn),
+ q(2973) => q(ino),
+ q(2974) => q(inp),
+ q(2975) => q(ins),
+ q(2976) => q(int),
+ q(2977) => q(inz),
+ q(2978) => q(ior),
+ q(2979) => q(iou),
+ q(2980) => q(iow),
+ q(2981) => q(ipi),
+ q(2982) => q(ipo),
+ q(2983) => q(iqu),
+ q(2984) => q(iqw),
+ q(2985) => q(ire),
+ q(2986) => q(irh),
+ q(2987) => q(iri),
+ q(2988) => q(irk),
+ q(2989) => q(irn),
+ q(2990) => q(irr),
+ q(2991) => q(iru),
+ q(2992) => q(irx),
+ q(2993) => q(iry),
+ q(2994) => q(isa),
+ q(2995) => q(isc),
+ q(2996) => q(isd),
+ q(2997) => q(ise),
+ q(2998) => q(isg),
+ q(2999) => q(ish),
+ q(3000) => q(isi),
+ q(3001) => q(isk),
+ q(3002) => q(ism),
+ q(3003) => q(isn),
+ q(3004) => q(iso),
+ q(3005) => q(isr),
+ q(3006) => q(ist),
+ q(3007) => q(isu),
+ q(3008) => q(itb),
+ q(3009) => q(itd),
+ q(3010) => q(ite),
+ q(3011) => q(iti),
+ q(3012) => q(itk),
+ q(3013) => q(itl),
+ q(3014) => q(itm),
+ q(3015) => q(ito),
+ q(3016) => q(itr),
+ q(3017) => q(its),
+ q(3018) => q(itt),
+ q(3019) => q(itv),
+ q(3020) => q(itw),
+ q(3021) => q(itx),
+ q(3022) => q(ity),
+ q(3023) => q(itz),
+ q(3024) => q(ium),
+ q(3025) => q(ivb),
+ q(3026) => q(ivv),
+ q(3027) => q(iwk),
+ q(3028) => q(iwm),
+ q(3029) => q(iwo),
+ q(3030) => q(iws),
+ q(3031) => q(ixc),
+ q(3032) => q(ixl),
+ q(3033) => q(iya),
+ q(3034) => q(iyo),
+ q(3035) => q(iyx),
+ q(3036) => q(izh),
+ q(3037) => q(izr),
+ q(3038) => q(izz),
+ q(3039) => q(jaa),
+ q(3040) => q(jab),
+ q(3041) => q(jac),
+ q(3042) => q(jad),
+ q(3043) => q(jae),
+ q(3044) => q(jaf),
+ q(3045) => q(jah),
+ q(3046) => q(jaj),
+ q(3047) => q(jak),
+ q(3048) => q(jal),
+ q(3049) => q(jam),
+ q(3050) => q(jan),
+ q(3051) => q(jao),
+ q(3052) => q(jaq),
+ q(3053) => q(jas),
+ q(3054) => q(jat),
+ q(3055) => q(jau),
+ q(3056) => q(jax),
+ q(3057) => q(jay),
+ q(3058) => q(jaz),
+ q(3059) => q(jbe),
+ q(3060) => q(jbi),
+ q(3061) => q(jbj),
+ q(3062) => q(jbk),
+ q(3063) => q(jbn),
+ q(3064) => q(jbr),
+ q(3065) => q(jbt),
+ q(3066) => q(jbu),
+ q(3067) => q(jbw),
+ q(3068) => q(jcs),
+ q(3069) => q(jct),
+ q(3070) => q(jda),
+ q(3071) => q(jdg),
+ q(3072) => q(jdt),
+ q(3073) => q(jeb),
+ q(3074) => q(jee),
+ q(3075) => q(jeh),
+ q(3076) => q(jei),
+ q(3077) => q(jek),
+ q(3078) => q(jel),
+ q(3079) => q(jen),
+ q(3080) => q(jer),
+ q(3081) => q(jet),
+ q(3082) => q(jeu),
+ q(3083) => q(jgb),
+ q(3084) => q(jge),
+ q(3085) => q(jgk),
+ q(3086) => q(jgo),
+ q(3087) => q(jhi),
+ q(3088) => q(jhs),
+ q(3089) => q(jia),
+ q(3090) => q(jib),
+ q(3091) => q(jic),
+ q(3092) => q(jid),
+ q(3093) => q(jie),
+ q(3094) => q(jig),
+ q(3095) => q(jih),
+ q(3096) => q(jii),
+ q(3097) => q(jil),
+ q(3098) => q(jim),
+ q(3099) => q(jio),
+ q(3100) => q(jiq),
+ q(3101) => q(jit),
+ q(3102) => q(jiu),
+ q(3103) => q(jiv),
+ q(3104) => q(jiy),
+ q(3105) => q(jje),
+ q(3106) => q(jjr),
+ q(3107) => q(jka),
+ q(3108) => q(jkm),
+ q(3109) => q(jko),
+ q(3110) => q(jkp),
+ q(3111) => q(jkr),
+ q(3112) => q(jku),
+ q(3113) => q(jle),
+ q(3114) => q(jls),
+ q(3115) => q(jma),
+ q(3116) => q(jmb),
+ q(3117) => q(jmc),
+ q(3118) => q(jmd),
+ q(3119) => q(jmi),
+ q(3120) => q(jml),
+ q(3121) => q(jmn),
+ q(3122) => q(jmr),
+ q(3123) => q(jms),
+ q(3124) => q(jmw),
+ q(3125) => q(jmx),
+ q(3126) => q(jna),
+ q(3127) => q(jnd),
+ q(3128) => q(jng),
+ q(3129) => q(jni),
+ q(3130) => q(jnj),
+ q(3131) => q(jnl),
+ q(3132) => q(jns),
+ q(3133) => q(job),
+ q(3134) => q(jod),
+ q(3135) => q(jog),
+ q(3136) => q(jor),
+ q(3137) => q(jos),
+ q(3138) => q(jow),
+ q(3139) => q(jpa),
+ q(3140) => q(jqr),
+ q(3141) => q(jra),
+ q(3142) => q(jrr),
+ q(3143) => q(jrt),
+ q(3144) => q(jru),
+ q(3145) => q(jsl),
+ q(3146) => q(jua),
+ q(3147) => q(jub),
+ q(3148) => q(juc),
+ q(3149) => q(jud),
+ q(3150) => q(juh),
+ q(3151) => q(jui),
+ q(3152) => q(juk),
+ q(3153) => q(jul),
+ q(3154) => q(jum),
+ q(3155) => q(jun),
+ q(3156) => q(juo),
+ q(3157) => q(jup),
+ q(3158) => q(jur),
+ q(3159) => q(jus),
+ q(3160) => q(jut),
+ q(3161) => q(juu),
+ q(3162) => q(juw),
+ q(3163) => q(juy),
+ q(3164) => q(jvd),
+ q(3165) => q(jvn),
+ q(3166) => q(jwi),
+ q(3167) => q(jya),
+ q(3168) => q(jye),
+ q(3169) => q(jyy),
+ q(3170) => q(kad),
+ q(3171) => q(kae),
+ q(3172) => q(kaf),
+ q(3173) => q(kag),
+ q(3174) => q(kah),
+ q(3175) => q(kai),
+ q(3176) => q(kaj),
+ q(3177) => q(kak),
+ q(3178) => q(kao),
+ q(3179) => q(kap),
+ q(3180) => q(kaq),
+ q(3181) => q(kav),
+ q(3182) => q(kax),
+ q(3183) => q(kay),
+ q(3184) => q(kba),
+ q(3185) => q(kbb),
+ q(3186) => q(kbc),
+ q(3187) => q(kbe),
+ q(3188) => q(kbg),
+ q(3189) => q(kbh),
+ q(3190) => q(kbi),
+ q(3191) => q(kbj),
+ q(3192) => q(kbk),
+ q(3193) => q(kbl),
+ q(3194) => q(kbm),
+ q(3195) => q(kbn),
+ q(3196) => q(kbo),
+ q(3197) => q(kbp),
+ q(3198) => q(kbq),
+ q(3199) => q(kbr),
+ q(3200) => q(kbs),
+ q(3201) => q(kbt),
+ q(3202) => q(kbu),
+ q(3203) => q(kbv),
+ q(3204) => q(kbw),
+ q(3205) => q(kbx),
+ q(3206) => q(kby),
+ q(3207) => q(kbz),
+ q(3208) => q(kca),
+ q(3209) => q(kcb),
+ q(3210) => q(kcc),
+ q(3211) => q(kcd),
+ q(3212) => q(kce),
+ q(3213) => q(kcf),
+ q(3214) => q(kcg),
+ q(3215) => q(kch),
+ q(3216) => q(kci),
+ q(3217) => q(kcj),
+ q(3218) => q(kck),
+ q(3219) => q(kcl),
+ q(3220) => q(kcm),
+ q(3221) => q(kcn),
+ q(3222) => q(kco),
+ q(3223) => q(kcp),
+ q(3224) => q(kcq),
+ q(3225) => q(kcr),
+ q(3226) => q(kcs),
+ q(3227) => q(kct),
+ q(3228) => q(kcu),
+ q(3229) => q(kcv),
+ q(3230) => q(kcw),
+ q(3231) => q(kcx),
+ q(3232) => q(kcy),
+ q(3233) => q(kcz),
+ q(3234) => q(kda),
+ q(3235) => q(kdc),
+ q(3236) => q(kdd),
+ q(3237) => q(kde),
+ q(3238) => q(kdf),
+ q(3239) => q(kdg),
+ q(3240) => q(kdh),
+ q(3241) => q(kdi),
+ q(3242) => q(kdj),
+ q(3243) => q(kdk),
+ q(3244) => q(kdl),
+ q(3245) => q(kdm),
+ q(3246) => q(kdn),
+ q(3247) => q(kdp),
+ q(3248) => q(kdq),
+ q(3249) => q(kdr),
+ q(3250) => q(kdt),
+ q(3251) => q(kdu),
+ q(3252) => q(kdw),
+ q(3253) => q(kdx),
+ q(3254) => q(kdy),
+ q(3255) => q(kdz),
+ q(3256) => q(kea),
+ q(3257) => q(keb),
+ q(3258) => q(kec),
+ q(3259) => q(ked),
+ q(3260) => q(kee),
+ q(3261) => q(kef),
+ q(3262) => q(keg),
+ q(3263) => q(keh),
+ q(3264) => q(kei),
+ q(3265) => q(kej),
+ q(3266) => q(kek),
+ q(3267) => q(kel),
+ q(3268) => q(kem),
+ q(3269) => q(ken),
+ q(3270) => q(keo),
+ q(3271) => q(kep),
+ q(3272) => q(keq),
+ q(3273) => q(ker),
+ q(3274) => q(kes),
+ q(3275) => q(ket),
+ q(3276) => q(keu),
+ q(3277) => q(kev),
+ q(3278) => q(kew),
+ q(3279) => q(kex),
+ q(3280) => q(key),
+ q(3281) => q(kez),
+ q(3282) => q(kfa),
+ q(3283) => q(kfb),
+ q(3284) => q(kfc),
+ q(3285) => q(kfd),
+ q(3286) => q(kfe),
+ q(3287) => q(kff),
+ q(3288) => q(kfg),
+ q(3289) => q(kfh),
+ q(3290) => q(kfi),
+ q(3291) => q(kfj),
+ q(3292) => q(kfk),
+ q(3293) => q(kfl),
+ q(3294) => q(kfm),
+ q(3295) => q(kfn),
+ q(3296) => q(kfo),
+ q(3297) => q(kfp),
+ q(3298) => q(kfq),
+ q(3299) => q(kfr),
+ q(3300) => q(kfs),
+ q(3301) => q(kft),
+ q(3302) => q(kfu),
+ q(3303) => q(kfv),
+ q(3304) => q(kfw),
+ q(3305) => q(kfx),
+ q(3306) => q(kfy),
+ q(3307) => q(kfz),
+ q(3308) => q(kga),
+ q(3309) => q(kgb),
+ q(3310) => q(kge),
+ q(3311) => q(kgf),
+ q(3312) => q(kgg),
+ q(3313) => q(kgi),
+ q(3314) => q(kgj),
+ q(3315) => q(kgk),
+ q(3316) => q(kgl),
+ q(3317) => q(kuq),
+ q(3318) => q(kgn),
+ q(3319) => q(kgo),
+ q(3320) => q(kgp),
+ q(3321) => q(kgq),
+ q(3322) => q(kgr),
+ q(3323) => q(kgs),
+ q(3324) => q(kgt),
+ q(3325) => q(kgu),
+ q(3326) => q(kgv),
+ q(3327) => q(kgw),
+ q(3328) => q(kgx),
+ q(3329) => q(kgy),
+ q(3330) => q(khb),
+ q(3331) => q(khc),
+ q(3332) => q(khd),
+ q(3333) => q(khe),
+ q(3334) => q(khf),
+ q(3335) => q(khg),
+ q(3336) => q(khh),
+ q(3337) => q(khj),
+ q(3338) => q(khk),
+ q(3339) => q(khl),
+ q(3340) => q(khn),
+ q(3341) => q(khp),
+ q(3342) => q(khq),
+ q(3343) => q(khr),
+ q(3344) => q(khs),
+ q(3345) => q(kht),
+ q(3346) => q(khu),
+ q(3347) => q(khv),
+ q(3348) => q(khw),
+ q(3349) => q(khx),
+ q(3350) => q(khy),
+ q(3351) => q(khz),
+ q(3352) => q(kia),
+ q(3353) => q(kib),
+ q(3354) => q(kic),
+ q(3355) => q(kid),
+ q(3356) => q(kie),
+ q(3357) => q(kif),
+ q(3358) => q(kig),
+ q(3359) => q(kih),
+ q(3360) => q(kii),
+ q(3361) => q(kij),
+ q(3362) => q(kil),
+ q(3363) => q(kim),
+ q(3364) => q(kio),
+ q(3365) => q(kip),
+ q(3366) => q(kiq),
+ q(3367) => q(kis),
+ q(3368) => q(kit),
+ q(3369) => q(kiu),
+ q(3370) => q(kiv),
+ q(3371) => q(kiw),
+ q(3372) => q(kix),
+ q(3373) => q(kiy),
+ q(3374) => q(kiz),
+ q(3375) => q(kja),
+ q(3376) => q(kjb),
+ q(3377) => q(kjc),
+ q(3378) => q(kjd),
+ q(3379) => q(kje),
+ q(3380) => q(kjf),
+ q(3381) => q(kjg),
+ q(3382) => q(kjh),
+ q(3383) => q(kji),
+ q(3384) => q(kjj),
+ q(3385) => q(kjk),
+ q(3386) => q(kjl),
+ q(3387) => q(kjm),
+ q(3388) => q(kjn),
+ q(3389) => q(kjo),
+ q(3390) => q(kjp),
+ q(3391) => q(kjq),
+ q(3392) => q(kjr),
+ q(3393) => q(kjs),
+ q(3394) => q(kjt),
+ q(3395) => q(kju),
+ q(3396) => q(kjv),
+ q(3397) => q(kjx),
+ q(3398) => q(kjy),
+ q(3399) => q(kjz),
+ q(3400) => q(kka),
+ q(3401) => q(kkb),
+ q(3402) => q(kkc),
+ q(3403) => q(kkd),
+ q(3404) => q(kke),
+ q(3405) => q(kkf),
+ q(3406) => q(kkg),
+ q(3407) => q(kkh),
+ q(3408) => q(kki),
+ q(3409) => q(kkj),
+ q(3410) => q(kkk),
+ q(3411) => q(kkl),
+ q(3412) => q(kkm),
+ q(3413) => q(kkn),
+ q(3414) => q(kko),
+ q(3415) => q(kkp),
+ q(3416) => q(kkq),
+ q(3417) => q(kkr),
+ q(3418) => q(kks),
+ q(3419) => q(kkt),
+ q(3420) => q(kku),
+ q(3421) => q(kkv),
+ q(3422) => q(kkw),
+ q(3423) => q(kkx),
+ q(3424) => q(kky),
+ q(3425) => q(kkz),
+ q(3426) => q(kla),
+ q(3427) => q(klb),
+ q(3428) => q(klc),
+ q(3429) => q(kld),
+ q(3430) => q(kle),
+ q(3431) => q(klf),
+ q(3432) => q(klg),
+ q(3433) => q(klh),
+ q(3434) => q(kli),
+ q(3435) => q(klj),
+ q(3436) => q(klk),
+ q(3437) => q(kll),
+ q(3438) => q(klm),
+ q(3439) => q(kln),
+ q(3440) => q(klo),
+ q(3441) => q(klp),
+ q(3442) => q(klq),
+ q(3443) => q(klr),
+ q(3444) => q(kls),
+ q(3445) => q(klt),
+ q(3446) => q(klu),
+ q(3447) => q(klv),
+ q(3448) => q(klw),
+ q(3449) => q(klx),
+ q(3450) => q(kly),
+ q(3451) => q(klz),
+ q(3452) => q(kma),
+ q(3453) => q(kmc),
+ q(3454) => q(kmd),
+ q(3455) => q(kme),
+ q(3456) => q(kmf),
+ q(3457) => q(kmg),
+ q(3458) => q(kmh),
+ q(3459) => q(kmi),
+ q(3460) => q(kmj),
+ q(3461) => q(kmk),
+ q(3462) => q(kml),
+ q(3463) => q(kmm),
+ q(3464) => q(kmn),
+ q(3465) => q(kmo),
+ q(3466) => q(kmp),
+ q(3467) => q(kmq),
+ q(3468) => q(kmr),
+ q(3469) => q(kms),
+ q(3470) => q(kmt),
+ q(3471) => q(kmu),
+ q(3472) => q(kmv),
+ q(3473) => q(kmw),
+ q(3474) => q(kmx),
+ q(3475) => q(kmy),
+ q(3476) => q(kmz),
+ q(3477) => q(kna),
+ q(3478) => q(knb),
+ q(3479) => q(knc),
+ q(3480) => q(knd),
+ q(3481) => q(kne),
+ q(3482) => q(knf),
+ q(3483) => q(kng),
+ q(3484) => q(kni),
+ q(3485) => q(knj),
+ q(3486) => q(knk),
+ q(3487) => q(knl),
+ q(3488) => q(knm),
+ q(3489) => q(knn),
+ q(3490) => q(kno),
+ q(3491) => q(knp),
+ q(3492) => q(knq),
+ q(3493) => q(knr),
+ q(3494) => q(kns),
+ q(3495) => q(knt),
+ q(3496) => q(knu),
+ q(3497) => q(knv),
+ q(3498) => q(knw),
+ q(3499) => q(knx),
+ q(3500) => q(kny),
+ q(3501) => q(knz),
+ q(3502) => q(koa),
+ q(3503) => q(koc),
+ q(3504) => q(kod),
+ q(3505) => q(koe),
+ q(3506) => q(kof),
+ q(3507) => q(kog),
+ q(3508) => q(koh),
+ q(3509) => q(koi),
+ q(3510) => q(kol),
+ q(3511) => q(koo),
+ q(3512) => q(kop),
+ q(3513) => q(koq),
+ q(3514) => q(kot),
+ q(3515) => q(kou),
+ q(3516) => q(kov),
+ q(3517) => q(kow),
+ q(3518) => q(koy),
+ q(3519) => q(koz),
+ q(3520) => q(kpa),
+ q(3521) => q(kpb),
+ q(3522) => q(kpc),
+ q(3523) => q(kpd),
+ q(3524) => q(kpf),
+ q(3525) => q(kpg),
+ q(3526) => q(kph),
+ q(3527) => q(kpi),
+ q(3528) => q(kpj),
+ q(3529) => q(kpk),
+ q(3530) => q(kpl),
+ q(3531) => q(kpm),
+ q(3532) => q(kpn),
+ q(3533) => q(kpo),
+ q(3534) => q(kpq),
+ q(3535) => q(kpr),
+ q(3536) => q(kps),
+ q(3537) => q(kpt),
+ q(3538) => q(kpu),
+ q(3539) => q(kpv),
+ q(3540) => q(kpw),
+ q(3541) => q(kpx),
+ q(3542) => q(kpy),
+ q(3543) => q(kpz),
+ q(3544) => q(kqa),
+ q(3545) => q(kqb),
+ q(3546) => q(kqc),
+ q(3547) => q(kqd),
+ q(3548) => q(kqe),
+ q(3549) => q(kqf),
+ q(3550) => q(kqg),
+ q(3551) => q(kqh),
+ q(3552) => q(kqi),
+ q(3553) => q(kqj),
+ q(3554) => q(kqk),
+ q(3555) => q(kql),
+ q(3556) => q(kqm),
+ q(3557) => q(kqn),
+ q(3558) => q(kqo),
+ q(3559) => q(kqp),
+ q(3560) => q(kqq),
+ q(3561) => q(kqr),
+ q(3562) => q(kqs),
+ q(3563) => q(kqt),
+ q(3564) => q(kqu),
+ q(3565) => q(kqv),
+ q(3566) => q(kqw),
+ q(3567) => q(kqx),
+ q(3568) => q(kqy),
+ q(3569) => q(kqz),
+ q(3570) => q(kra),
+ q(3571) => q(krb),
+ q(3572) => q(krd),
+ q(3573) => q(kre),
+ q(3574) => q(krf),
+ q(3575) => q(krh),
+ q(3576) => q(kri),
+ q(3577) => q(krj),
+ q(3578) => q(krk),
+ q(3579) => q(krn),
+ q(3580) => q(krp),
+ q(3581) => q(krr),
+ q(3582) => q(krs),
+ q(3583) => q(krt),
+ q(3584) => q(krv),
+ q(3585) => q(krw),
+ q(3586) => q(krx),
+ q(3587) => q(kry),
+ q(3588) => q(krz),
+ q(3589) => q(ksa),
+ q(3590) => q(ksb),
+ q(3591) => q(ksc),
+ q(3592) => q(ksd),
+ q(3593) => q(kse),
+ q(3594) => q(ksf),
+ q(3595) => q(ksg),
+ q(3596) => q(ksh),
+ q(3597) => q(ksi),
+ q(3598) => q(ksj),
+ q(3599) => q(ksk),
+ q(3600) => q(ksl),
+ q(3601) => q(ksm),
+ q(3602) => q(ksn),
+ q(3603) => q(kso),
+ q(3604) => q(ksp),
+ q(3605) => q(ksq),
+ q(3606) => q(ksr),
+ q(3607) => q(kss),
+ q(3608) => q(kst),
+ q(3609) => q(ksu),
+ q(3610) => q(ksv),
+ q(3611) => q(ksw),
+ q(3612) => q(ksx),
+ q(3613) => q(ksy),
+ q(3614) => q(ksz),
+ q(3615) => q(kta),
+ q(3616) => q(ktb),
+ q(3617) => q(ktc),
+ q(3618) => q(ktd),
+ q(3619) => q(kte),
+ q(3620) => q(ktf),
+ q(3621) => q(ktg),
+ q(3622) => q(kth),
+ q(3623) => q(kti),
+ q(3624) => q(ktj),
+ q(3625) => q(ktk),
+ q(3626) => q(ktl),
+ q(3627) => q(ktm),
+ q(3628) => q(ktn),
+ q(3629) => q(kto),
+ q(3630) => q(ktp),
+ q(3631) => q(ktq),
+ q(3632) => q(kts),
+ q(3633) => q(ktt),
+ q(3634) => q(ktu),
+ q(3635) => q(ktv),
+ q(3636) => q(ktw),
+ q(3637) => q(ktx),
+ q(3638) => q(kty),
+ q(3639) => q(ktz),
+ q(3640) => q(kub),
+ q(3641) => q(kuc),
+ q(3642) => q(kud),
+ q(3643) => q(kue),
+ q(3644) => q(kuf),
+ q(3645) => q(kug),
+ q(3646) => q(kuh),
+ q(3647) => q(kui),
+ q(3648) => q(kuj),
+ q(3649) => q(kuk),
+ q(3650) => q(kul),
+ q(3651) => q(kun),
+ q(3652) => q(kuo),
+ q(3653) => q(kup),
+ q(3654) => q(kus),
+ q(3655) => q(kuu),
+ q(3656) => q(kuv),
+ q(3657) => q(kuw),
+ q(3658) => q(kux),
+ q(3659) => q(kuy),
+ q(3660) => q(kuz),
+ q(3661) => q(kva),
+ q(3662) => q(kvb),
+ q(3663) => q(kvc),
+ q(3664) => q(kvd),
+ q(3665) => q(kve),
+ q(3666) => q(kvf),
+ q(3667) => q(kvg),
+ q(3668) => q(kvh),
+ q(3669) => q(kvi),
+ q(3670) => q(kvj),
+ q(3671) => q(kvk),
+ q(3672) => q(kvl),
+ q(3673) => q(kvm),
+ q(3674) => q(kvn),
+ q(3675) => q(kvo),
+ q(3676) => q(kvp),
+ q(3677) => q(kvq),
+ q(3678) => q(kvr),
+ q(3679) => q(kvt),
+ q(3680) => q(kvu),
+ q(3681) => q(kvv),
+ q(3682) => q(kvw),
+ q(3683) => q(kvx),
+ q(3684) => q(kvy),
+ q(3685) => q(kvz),
+ q(3686) => q(kwa),
+ q(3687) => q(kwb),
+ q(3688) => q(kwc),
+ q(3689) => q(kwd),
+ q(3690) => q(kwe),
+ q(3691) => q(kwf),
+ q(3692) => q(kwg),
+ q(3693) => q(kwh),
+ q(3694) => q(kwi),
+ q(3695) => q(kwj),
+ q(3696) => q(kwk),
+ q(3697) => q(kwl),
+ q(3698) => q(kwm),
+ q(3699) => q(kwn),
+ q(3700) => q(kwo),
+ q(3701) => q(kwp),
+ q(3702) => q(kwr),
+ q(3703) => q(kws),
+ q(3704) => q(kwt),
+ q(3705) => q(kwu),
+ q(3706) => q(kwv),
+ q(3707) => q(kww),
+ q(3708) => q(kwx),
+ q(3709) => q(kwy),
+ q(3710) => q(kwz),
+ q(3711) => q(kxa),
+ q(3712) => q(kxb),
+ q(3713) => q(kxc),
+ q(3714) => q(kxd),
+ q(3715) => q(kxf),
+ q(3716) => q(kxh),
+ q(3717) => q(kxi),
+ q(3718) => q(kxj),
+ q(3719) => q(kxk),
+ q(3720) => q(kxl),
+ q(3721) => q(kxm),
+ q(3722) => q(kxn),
+ q(3723) => q(kxo),
+ q(3724) => q(kxp),
+ q(3725) => q(kxq),
+ q(3726) => q(kxr),
+ q(3727) => q(kxs),
+ q(3728) => q(kxt),
+ q(3729) => q(kxu),
+ q(3730) => q(kxv),
+ q(3731) => q(kxw),
+ q(3732) => q(kxx),
+ q(3733) => q(kxy),
+ q(3734) => q(kxz),
+ q(3735) => q(kya),
+ q(3736) => q(kyb),
+ q(3737) => q(kyc),
+ q(3738) => q(kyd),
+ q(3739) => q(kye),
+ q(3740) => q(kyf),
+ q(3741) => q(kyg),
+ q(3742) => q(kyh),
+ q(3743) => q(kyi),
+ q(3744) => q(kyj),
+ q(3745) => q(kyk),
+ q(3746) => q(kyl),
+ q(3747) => q(kym),
+ q(3748) => q(kyn),
+ q(3749) => q(kyo),
+ q(3750) => q(kyp),
+ q(3751) => q(kyq),
+ q(3752) => q(kyr),
+ q(3753) => q(kys),
+ q(3754) => q(kyt),
+ q(3755) => q(kyu),
+ q(3756) => q(kyv),
+ q(3757) => q(kyw),
+ q(3758) => q(kyx),
+ q(3759) => q(kyy),
+ q(3760) => q(kyz),
+ q(3761) => q(kza),
+ q(3762) => q(kzb),
+ q(3763) => q(kzc),
+ q(3764) => q(kzd),
+ q(3765) => q(kze),
+ q(3766) => q(kzf),
+ q(3767) => q(kzg),
+ q(3768) => q(kzi),
+ q(3769) => q(kzk),
+ q(3770) => q(kzl),
+ q(3771) => q(kzm),
+ q(3772) => q(kzn),
+ q(3773) => q(kzo),
+ q(3774) => q(kzp),
+ q(3775) => q(kzq),
+ q(3776) => q(kzr),
+ q(3777) => q(kzs),
+ q(3778) => q(kzu),
+ q(3779) => q(kzv),
+ q(3780) => q(kzw),
+ q(3781) => q(kzx),
+ q(3782) => q(kzy),
+ q(3783) => q(kzz),
+ q(3784) => q(laa),
+ q(3785) => q(lab),
+ q(3786) => q(lac),
+ q(3787) => q(lae),
+ q(3788) => q(laf),
+ q(3789) => q(lag),
+ q(3790) => q(lai),
+ q(3791) => q(laj),
+ q(3792) => q(lak),
+ q(3793) => q(lal),
+ q(3794) => q(lan),
+ q(3795) => q(lap),
+ q(3796) => q(laq),
+ q(3797) => q(lar),
+ q(3798) => q(las),
+ q(3799) => q(lau),
+ q(3800) => q(law),
+ q(3801) => q(lax),
+ q(3802) => q(lay),
+ q(3803) => q(laz),
+ q(3804) => q(lba),
+ q(3805) => q(lbb),
+ q(3806) => q(lbc),
+ q(3807) => q(lbe),
+ q(3808) => q(lbf),
+ q(3809) => q(lbg),
+ q(3810) => q(lbi),
+ q(3811) => q(lbj),
+ q(3812) => q(lbk),
+ q(3813) => q(lbl),
+ q(3814) => q(lbm),
+ q(3815) => q(lbn),
+ q(3816) => q(lbo),
+ q(3817) => q(lbq),
+ q(3818) => q(lbr),
+ q(3819) => q(lbs),
+ q(3820) => q(lbt),
+ q(3821) => q(lbu),
+ q(3822) => q(lbv),
+ q(3823) => q(lbw),
+ q(3824) => q(lbx),
+ q(3825) => q(lby),
+ q(3826) => q(lbz),
+ q(3827) => q(lcc),
+ q(3828) => q(lcd),
+ q(3829) => q(lce),
+ q(3830) => q(lcf),
+ q(3831) => q(lch),
+ q(3832) => q(lcl),
+ q(3833) => q(lcm),
+ q(3834) => q(lcp),
+ q(3835) => q(lcq),
+ q(3836) => q(lcs),
+ q(3837) => q(lda),
+ q(3838) => q(ldb),
+ q(3839) => q(ldd),
+ q(3840) => q(ldg),
+ q(3841) => q(ldh),
+ q(3842) => q(ldi),
+ q(3843) => q(ldj),
+ q(3844) => q(ldk),
+ q(3845) => q(ldl),
+ q(3846) => q(ldm),
+ q(3847) => q(ldn),
+ q(3848) => q(ldo),
+ q(3849) => q(ldp),
+ q(3850) => q(ldq),
+ q(3851) => q(lea),
+ q(3852) => q(leb),
+ q(3853) => q(lec),
+ q(3854) => q(led),
+ q(3855) => q(lee),
+ q(3856) => q(lef),
+ q(3857) => q(leh),
+ q(3858) => q(lei),
+ q(3859) => q(lej),
+ q(3860) => q(lek),
+ q(3861) => q(lel),
+ q(3862) => q(lem),
+ q(3863) => q(len),
+ q(3864) => q(leo),
+ q(3865) => q(lep),
+ q(3866) => q(leq),
+ q(3867) => q(ler),
+ q(3868) => q(les),
+ q(3869) => q(let),
+ q(3870) => q(leu),
+ q(3871) => q(lev),
+ q(3872) => q(lew),
+ q(3873) => q(lex),
+ q(3874) => q(ley),
+ q(3875) => q(lfa),
+ q(3876) => q(lfn),
+ q(3877) => q(lga),
+ q(3878) => q(lgb),
+ q(3879) => q(lgg),
+ q(3880) => q(lgh),
+ q(3881) => q(lgi),
+ q(3882) => q(lgk),
+ q(3883) => q(lgl),
+ q(3884) => q(lgm),
+ q(3885) => q(lgn),
+ q(3886) => q(lgq),
+ q(3887) => q(lgr),
+ q(3888) => q(lgt),
+ q(3889) => q(lgu),
+ q(3890) => q(lgz),
+ q(3891) => q(lha),
+ q(3892) => q(lhh),
+ q(3893) => q(lhi),
+ q(3894) => q(lhl),
+ q(3895) => q(lhm),
+ q(3896) => q(lhn),
+ q(3897) => q(lhp),
+ q(3898) => q(lhs),
+ q(3899) => q(lht),
+ q(3900) => q(lhu),
+ q(3901) => q(lia),
+ q(3902) => q(lib),
+ q(3903) => q(lic),
+ q(3904) => q(lid),
+ q(3905) => q(lie),
+ q(3906) => q(lif),
+ q(3907) => q(lig),
+ q(3908) => q(lih),
+ q(3909) => q(lij),
+ q(3910) => q(lik),
+ q(3911) => q(lil),
+ q(3912) => q(lio),
+ q(3913) => q(lip),
+ q(3914) => q(liq),
+ q(3915) => q(lir),
+ q(3916) => q(lis),
+ q(3917) => q(liu),
+ q(3918) => q(liv),
+ q(3919) => q(liw),
+ q(3920) => q(lix),
+ q(3921) => q(liy),
+ q(3922) => q(liz),
+ q(3923) => q(lja),
+ q(3924) => q(lje),
+ q(3925) => q(lji),
+ q(3926) => q(ljl),
+ q(3927) => q(ljp),
+ q(3928) => q(ljw),
+ q(3929) => q(ljx),
+ q(3930) => q(lka),
+ q(3931) => q(lkb),
+ q(3932) => q(lkc),
+ q(3933) => q(lkd),
+ q(3934) => q(lke),
+ q(3935) => q(lkh),
+ q(3936) => q(lki),
+ q(3937) => q(lkj),
+ q(3938) => q(lkl),
+ q(3939) => q(lkm),
+ q(3940) => q(lkn),
+ q(3941) => q(lko),
+ q(3942) => q(lkr),
+ q(3943) => q(lks),
+ q(3944) => q(lkt),
+ q(3945) => q(lku),
+ q(3946) => q(lky),
+ q(3947) => q(lla),
+ q(3948) => q(llb),
+ q(3949) => q(llc),
+ q(3950) => q(lld),
+ q(3951) => q(lle),
+ q(3952) => q(llf),
+ q(3953) => q(llg),
+ q(3954) => q(llh),
+ q(3955) => q(lli),
+ q(3956) => q(llj),
+ q(3957) => q(llk),
+ q(3958) => q(lll),
+ q(3959) => q(llm),
+ q(3960) => q(lln),
+ q(3961) => q(llo),
+ q(3962) => q(llp),
+ q(3963) => q(llq),
+ q(3964) => q(lls),
+ q(3965) => q(llu),
+ q(3966) => q(llx),
+ q(3967) => q(lma),
+ q(3968) => q(lmb),
+ q(3969) => q(lmc),
+ q(3970) => q(lmd),
+ q(3971) => q(lme),
+ q(3972) => q(lmf),
+ q(3973) => q(lmg),
+ q(3974) => q(lmh),
+ q(3975) => q(lmi),
+ q(3976) => q(lmj),
+ q(3977) => q(lmk),
+ q(3978) => q(lml),
+ q(3979) => q(lmn),
+ q(3980) => q(lmo),
+ q(3981) => q(lmp),
+ q(3982) => q(lmq),
+ q(3983) => q(lmr),
+ q(3984) => q(lmu),
+ q(3985) => q(lmv),
+ q(3986) => q(lmw),
+ q(3987) => q(lmx),
+ q(3988) => q(lmy),
+ q(3989) => q(lmz),
+ q(3990) => q(lna),
+ q(3991) => q(lnb),
+ q(3992) => q(lnd),
+ q(3993) => q(lng),
+ q(3994) => q(lnh),
+ q(3995) => q(lni),
+ q(3996) => q(lnj),
+ q(3997) => q(lnl),
+ q(3998) => q(lnm),
+ q(3999) => q(lnn),
+ q(4000) => q(lno),
+ q(4001) => q(lns),
+ q(4002) => q(lnu),
+ q(4003) => q(lnw),
+ q(4004) => q(lnz),
+ q(4005) => q(loa),
+ q(4006) => q(lob),
+ q(4007) => q(loc),
+ q(4008) => q(loe),
+ q(4009) => q(lof),
+ q(4010) => q(log),
+ q(4011) => q(loh),
+ q(4012) => q(loi),
+ q(4013) => q(loj),
+ q(4014) => q(lok),
+ q(4015) => q(lom),
+ q(4016) => q(lon),
+ q(4017) => q(loo),
+ q(4018) => q(lop),
+ q(4019) => q(loq),
+ q(4020) => q(lor),
+ q(4021) => q(los),
+ q(4022) => q(lot),
+ q(4023) => q(lou),
+ q(4024) => q(lov),
+ q(4025) => q(low),
+ q(4026) => q(lox),
+ q(4027) => q(loy),
+ q(4028) => q(lpa),
+ q(4029) => q(lpe),
+ q(4030) => q(lpn),
+ q(4031) => q(lpo),
+ q(4032) => q(lpx),
+ q(4033) => q(lra),
+ q(4034) => q(lrc),
+ q(4035) => q(lre),
+ q(4036) => q(lrg),
+ q(4037) => q(lri),
+ q(4038) => q(lrk),
+ q(4039) => q(lrl),
+ q(4040) => q(lrm),
+ q(4041) => q(lrn),
+ q(4042) => q(lro),
+ q(4043) => q(lrr),
+ q(4044) => q(lrt),
+ q(4045) => q(lrv),
+ q(4046) => q(lrz),
+ q(4047) => q(lsa),
+ q(4048) => q(lsd),
+ q(4049) => q(lse),
+ q(4050) => q(lsg),
+ q(4051) => q(lsh),
+ q(4052) => q(lsi),
+ q(4053) => q(lsl),
+ q(4054) => q(lsm),
+ q(4055) => q(lso),
+ q(4056) => q(lsp),
+ q(4057) => q(lsr),
+ q(4058) => q(lss),
+ q(4059) => q(lst),
+ q(4060) => q(lsy),
+ q(4061) => q(ltc),
+ q(4062) => q(ltg),
+ q(4063) => q(lth),
+ q(4064) => q(lti),
+ q(4065) => q(ltn),
+ q(4066) => q(lto),
+ q(4067) => q(lts),
+ q(4068) => q(ltu),
+ q(4069) => q(luc),
+ q(4070) => q(lud),
+ q(4071) => q(lue),
+ q(4072) => q(luf),
+ q(4073) => q(luj),
+ q(4074) => q(luk),
+ q(4075) => q(lul),
+ q(4076) => q(lum),
+ q(4077) => q(lup),
+ q(4078) => q(luq),
+ q(4079) => q(lur),
+ q(4080) => q(lut),
+ q(4081) => q(luu),
+ q(4082) => q(luv),
+ q(4083) => q(luw),
+ q(4084) => q(luy),
+ q(4085) => q(luz),
+ q(4086) => q(lva),
+ q(4087) => q(lvk),
+ q(4088) => q(lvs),
+ q(4089) => q(lvu),
+ q(4090) => q(lwa),
+ q(4091) => q(lwe),
+ q(4092) => q(lwg),
+ q(4093) => q(lwh),
+ q(4094) => q(lwl),
+ q(4095) => q(lwm),
+ q(4096) => q(lwo),
+ q(4097) => q(lwt),
+ q(4098) => q(lwu),
+ q(4099) => q(lww),
+ q(4100) => q(lya),
+ q(4101) => q(lyg),
+ q(4102) => q(lyn),
+ q(4103) => q(lzh),
+ q(4104) => q(lzl),
+ q(4105) => q(lzn),
+ q(4106) => q(lzz),
+ q(4107) => q(maa),
+ q(4108) => q(mab),
+ q(4109) => q(mae),
+ q(4110) => q(maf),
+ q(4111) => q(maj),
+ q(4112) => q(mam),
+ q(4113) => q(maq),
+ q(4114) => q(mat),
+ q(4115) => q(mau),
+ q(4116) => q(mav),
+ q(4117) => q(maw),
+ q(4118) => q(max),
+ q(4119) => q(maz),
+ q(4120) => q(mba),
+ q(4121) => q(mbb),
+ q(4122) => q(mbc),
+ q(4123) => q(mbd),
+ q(4124) => q(mbe),
+ q(4125) => q(mbf),
+ q(4126) => q(mbh),
+ q(4127) => q(mbi),
+ q(4128) => q(mbj),
+ q(4129) => q(mbk),
+ q(4130) => q(mbl),
+ q(4131) => q(mbm),
+ q(4132) => q(mbn),
+ q(4133) => q(mbo),
+ q(4134) => q(mbp),
+ q(4135) => q(mbq),
+ q(4136) => q(mbr),
+ q(4137) => q(mbs),
+ q(4138) => q(mbt),
+ q(4139) => q(mbu),
+ q(4140) => q(mbv),
+ q(4141) => q(mbw),
+ q(4142) => q(mbx),
+ q(4143) => q(mby),
+ q(4144) => q(mbz),
+ q(4145) => q(mca),
+ q(4146) => q(mcb),
+ q(4147) => q(mcc),
+ q(4148) => q(mcd),
+ q(4149) => q(mce),
+ q(4150) => q(mcf),
+ q(4151) => q(mcg),
+ q(4152) => q(mch),
+ q(4153) => q(mci),
+ q(4154) => q(mcj),
+ q(4155) => q(mck),
+ q(4156) => q(mcl),
+ q(4157) => q(mcm),
+ q(4158) => q(mcn),
+ q(4159) => q(mco),
+ q(4160) => q(mcp),
+ q(4161) => q(mcq),
+ q(4162) => q(mcr),
+ q(4163) => q(mcs),
+ q(4164) => q(mct),
+ q(4165) => q(mcu),
+ q(4166) => q(mcv),
+ q(4167) => q(mcw),
+ q(4168) => q(mcx),
+ q(4169) => q(mcy),
+ q(4170) => q(mcz),
+ q(4171) => q(mda),
+ q(4172) => q(mdb),
+ q(4173) => q(mdc),
+ q(4174) => q(mdd),
+ q(4175) => q(mde),
+ q(4176) => q(mdg),
+ q(4177) => q(mdh),
+ q(4178) => q(mdi),
+ q(4179) => q(mdj),
+ q(4180) => q(mdk),
+ q(4181) => q(mdl),
+ q(4182) => q(mdm),
+ q(4183) => q(mdn),
+ q(4184) => q(mdp),
+ q(4185) => q(mdq),
+ q(4186) => q(mds),
+ q(4187) => q(mdt),
+ q(4188) => q(mdu),
+ q(4189) => q(mdv),
+ q(4190) => q(mdw),
+ q(4191) => q(mdx),
+ q(4192) => q(mdy),
+ q(4193) => q(mdz),
+ q(4194) => q(mea),
+ q(4195) => q(meb),
+ q(4196) => q(mec),
+ q(4197) => q(med),
+ q(4198) => q(mee),
+ q(4199) => q(mef),
+ q(4200) => q(meh),
+ q(4201) => q(mei),
+ q(4202) => q(mej),
+ q(4203) => q(mek),
+ q(4204) => q(mel),
+ q(4205) => q(mem),
+ q(4206) => q(meo),
+ q(4207) => q(mep),
+ q(4208) => q(meq),
+ q(4209) => q(mer),
+ q(4210) => q(mes),
+ q(4211) => q(met),
+ q(4212) => q(meu),
+ q(4213) => q(mev),
+ q(4214) => q(mew),
+ q(4215) => q(mey),
+ q(4216) => q(mez),
+ q(4217) => q(mfa),
+ q(4218) => q(mfb),
+ q(4219) => q(mfc),
+ q(4220) => q(mfd),
+ q(4221) => q(mfe),
+ q(4222) => q(mff),
+ q(4223) => q(mfg),
+ q(4224) => q(mfh),
+ q(4225) => q(mfi),
+ q(4226) => q(mfj),
+ q(4227) => q(mfk),
+ q(4228) => q(mfl),
+ q(4229) => q(mfm),
+ q(4230) => q(mfn),
+ q(4231) => q(mfo),
+ q(4232) => q(mfp),
+ q(4233) => q(mfq),
+ q(4234) => q(mfr),
+ q(4235) => q(mfs),
+ q(4236) => q(mft),
+ q(4237) => q(mfu),
+ q(4238) => q(mfv),
+ q(4239) => q(mfw),
+ q(4240) => q(mfx),
+ q(4241) => q(mfy),
+ q(4242) => q(mfz),
+ q(4243) => q(mgb),
+ q(4244) => q(mgc),
+ q(4245) => q(mgd),
+ q(4246) => q(mge),
+ q(4247) => q(mgf),
+ q(4248) => q(mgg),
+ q(4249) => q(mgh),
+ q(4250) => q(mgi),
+ q(4251) => q(mgj),
+ q(4252) => q(mgk),
+ q(4253) => q(mgl),
+ q(4254) => q(mgm),
+ q(4255) => q(mgn),
+ q(4256) => q(mgo),
+ q(4257) => q(mgp),
+ q(4258) => q(mgq),
+ q(4259) => q(mgr),
+ q(4260) => q(mgs),
+ q(4261) => q(mgt),
+ q(4262) => q(mgu),
+ q(4263) => q(mgv),
+ q(4264) => q(mgw),
+ q(4265) => q(mgy),
+ q(4266) => q(mgz),
+ q(4267) => q(mha),
+ q(4268) => q(mhb),
+ q(4269) => q(mhc),
+ q(4270) => q(mhd),
+ q(4271) => q(mhe),
+ q(4272) => q(mhf),
+ q(4273) => q(mhg),
+ q(4274) => q(mhi),
+ q(4275) => q(mhj),
+ q(4276) => q(mhk),
+ q(4277) => q(mhl),
+ q(4278) => q(mhm),
+ q(4279) => q(mhn),
+ q(4280) => q(mho),
+ q(4281) => q(mhp),
+ q(4282) => q(mhq),
+ q(4283) => q(mhr),
+ q(4284) => q(mhs),
+ q(4285) => q(mht),
+ q(4286) => q(mhu),
+ q(4287) => q(mhw),
+ q(4288) => q(mhx),
+ q(4289) => q(mhy),
+ q(4290) => q(mhz),
+ q(4291) => q(mia),
+ q(4292) => q(mib),
+ q(4293) => q(mid),
+ q(4294) => q(mie),
+ q(4295) => q(mif),
+ q(4296) => q(mig),
+ q(4297) => q(mih),
+ q(4298) => q(mii),
+ q(4299) => q(mij),
+ q(4300) => q(mik),
+ q(4301) => q(mil),
+ q(4302) => q(mim),
+ q(4303) => q(mio),
+ q(4304) => q(mip),
+ q(4305) => q(miq),
+ q(4306) => q(mir),
+ q(4307) => q(mit),
+ q(4308) => q(miu),
+ q(4309) => q(miw),
+ q(4310) => q(mix),
+ q(4311) => q(miy),
+ q(4312) => q(miz),
+ q(4313) => q(mjb),
+ q(4314) => q(mjc),
+ q(4315) => q(mjd),
+ q(4316) => q(mje),
+ q(4317) => q(mjg),
+ q(4318) => q(mjh),
+ q(4319) => q(mji),
+ q(4320) => q(mjj),
+ q(4321) => q(mjk),
+ q(4322) => q(mjl),
+ q(4323) => q(mjm),
+ q(4324) => q(mjn),
+ q(4325) => q(mjo),
+ q(4326) => q(mjp),
+ q(4327) => q(mjq),
+ q(4328) => q(mjr),
+ q(4329) => q(mjs),
+ q(4330) => q(mjt),
+ q(4331) => q(mju),
+ q(4332) => q(mjv),
+ q(4333) => q(mjw),
+ q(4334) => q(mjx),
+ q(4335) => q(mjy),
+ q(4336) => q(mjz),
+ q(4337) => q(mka),
+ q(4338) => q(mkb),
+ q(4339) => q(mkc),
+ q(4340) => q(mke),
+ q(4341) => q(mkf),
+ q(4342) => q(mkg),
+ q(4343) => q(mki),
+ q(4344) => q(mkj),
+ q(4345) => q(mkk),
+ q(4346) => q(mkl),
+ q(4347) => q(mkm),
+ q(4348) => q(mkn),
+ q(4349) => q(mko),
+ q(4350) => q(mkp),
+ q(4351) => q(mkq),
+ q(4352) => q(mkr),
+ q(4353) => q(mks),
+ q(4354) => q(mkt),
+ q(4355) => q(mku),
+ q(4356) => q(mkv),
+ q(4357) => q(mkw),
+ q(4358) => q(mkx),
+ q(4359) => q(mky),
+ q(4360) => q(mkz),
+ q(4361) => q(mla),
+ q(4362) => q(mlb),
+ q(4363) => q(mlc),
+ q(4364) => q(mle),
+ q(4365) => q(mlf),
+ q(4366) => q(mlh),
+ q(4367) => q(mli),
+ q(4368) => q(mlj),
+ q(4369) => q(mlk),
+ q(4370) => q(mll),
+ q(4371) => q(mlm),
+ q(4372) => q(mln),
+ q(4373) => q(mlo),
+ q(4374) => q(mlp),
+ q(4375) => q(mlq),
+ q(4376) => q(mlr),
+ q(4377) => q(mls),
+ q(4378) => q(mlu),
+ q(4379) => q(mlv),
+ q(4380) => q(mlw),
+ q(4381) => q(mlx),
+ q(4382) => q(mlz),
+ q(4383) => q(mma),
+ q(4384) => q(mmb),
+ q(4385) => q(mmc),
+ q(4386) => q(mmd),
+ q(4387) => q(mme),
+ q(4388) => q(mmf),
+ q(4389) => q(mmg),
+ q(4390) => q(mmh),
+ q(4391) => q(mmi),
+ q(4392) => q(mmj),
+ q(4393) => q(mmk),
+ q(4394) => q(mml),
+ q(4395) => q(mmm),
+ q(4396) => q(mmn),
+ q(4397) => q(mmo),
+ q(4398) => q(mmp),
+ q(4399) => q(mmq),
+ q(4400) => q(mmr),
+ q(4401) => q(mmt),
+ q(4402) => q(mmu),
+ q(4403) => q(mmv),
+ q(4404) => q(mmw),
+ q(4405) => q(mmx),
+ q(4406) => q(mmy),
+ q(4407) => q(mmz),
+ q(4408) => q(mna),
+ q(4409) => q(mnb),
+ q(4410) => q(mnd),
+ q(4411) => q(mne),
+ q(4412) => q(mnf),
+ q(4413) => q(mng),
+ q(4414) => q(mnh),
+ q(4415) => q(mnj),
+ q(4416) => q(mnk),
+ q(4417) => q(mnl),
+ q(4418) => q(mnm),
+ q(4419) => q(mnn),
+ q(4420) => q(mnp),
+ q(4421) => q(mnq),
+ q(4422) => q(mnr),
+ q(4423) => q(mns),
+ q(4424) => q(mnu),
+ q(4425) => q(mnv),
+ q(4426) => q(mnw),
+ q(4427) => q(mnx),
+ q(4428) => q(mny),
+ q(4429) => q(mnz),
+ q(4430) => q(moa),
+ q(4431) => q(moc),
+ q(4432) => q(mod),
+ q(4433) => q(moe),
+ q(4434) => q(mog),
+ q(4435) => q(moi),
+ q(4436) => q(moj),
+ q(4437) => q(mok),
+ q(4438) => q(mom),
+ q(4439) => q(moo),
+ q(4440) => q(mop),
+ q(4441) => q(moq),
+ q(4442) => q(mor),
+ q(4443) => q(mou),
+ q(4444) => q(mov),
+ q(4445) => q(mow),
+ q(4446) => q(mox),
+ q(4447) => q(moy),
+ q(4448) => q(moz),
+ q(4449) => q(mpa),
+ q(4450) => q(mpb),
+ q(4451) => q(mpc),
+ q(4452) => q(mpd),
+ q(4453) => q(mpe),
+ q(4454) => q(mpg),
+ q(4455) => q(mph),
+ q(4456) => q(mpi),
+ q(4457) => q(mpj),
+ q(4458) => q(mpk),
+ q(4459) => q(mpl),
+ q(4460) => q(mpm),
+ q(4461) => q(mpn),
+ q(4462) => q(mpo),
+ q(4463) => q(mpp),
+ q(4464) => q(mpq),
+ q(4465) => q(mpr),
+ q(4466) => q(mps),
+ q(4467) => q(mpt),
+ q(4468) => q(mpu),
+ q(4469) => q(mpv),
+ q(4470) => q(mpw),
+ q(4471) => q(mpx),
+ q(4472) => q(mpy),
+ q(4473) => q(mpz),
+ q(4474) => q(mqa),
+ q(4475) => q(mqb),
+ q(4476) => q(mqc),
+ q(4477) => q(mqe),
+ q(4478) => q(mqf),
+ q(4479) => q(mqg),
+ q(4480) => q(mqh),
+ q(4481) => q(mqi),
+ q(4482) => q(mqj),
+ q(4483) => q(mqk),
+ q(4484) => q(mql),
+ q(4485) => q(mqm),
+ q(4486) => q(mqn),
+ q(4487) => q(mqo),
+ q(4488) => q(mqp),
+ q(4489) => q(mqq),
+ q(4490) => q(mqr),
+ q(4491) => q(mqs),
+ q(4492) => q(mqt),
+ q(4493) => q(mqu),
+ q(4494) => q(mqv),
+ q(4495) => q(mqw),
+ q(4496) => q(mqx),
+ q(4497) => q(mqy),
+ q(4498) => q(mqz),
+ q(4499) => q(mra),
+ q(4500) => q(mrb),
+ q(4501) => q(mrc),
+ q(4502) => q(mrd),
+ q(4503) => q(mre),
+ q(4504) => q(mrf),
+ q(4505) => q(mrg),
+ q(4506) => q(mrh),
+ q(4507) => q(mrj),
+ q(4508) => q(mrk),
+ q(4509) => q(mrl),
+ q(4510) => q(mrm),
+ q(4511) => q(mrn),
+ q(4512) => q(mro),
+ q(4513) => q(mrp),
+ q(4514) => q(mrq),
+ q(4515) => q(mrr),
+ q(4516) => q(mrs),
+ q(4517) => q(mrt),
+ q(4518) => q(mru),
+ q(4519) => q(mrv),
+ q(4520) => q(mrw),
+ q(4521) => q(mrx),
+ q(4522) => q(mry),
+ q(4523) => q(mrz),
+ q(4524) => q(msb),
+ q(4525) => q(msc),
+ q(4526) => q(msd),
+ q(4527) => q(mse),
+ q(4528) => q(msf),
+ q(4529) => q(msg),
+ q(4530) => q(msh),
+ q(4531) => q(msi),
+ q(4532) => q(msj),
+ q(4533) => q(msk),
+ q(4534) => q(msl),
+ q(4535) => q(msm),
+ q(4536) => q(msn),
+ q(4537) => q(mso),
+ q(4538) => q(msp),
+ q(4539) => q(msq),
+ q(4540) => q(msr),
+ q(4541) => q(mss),
+ q(4542) => q(msu),
+ q(4543) => q(msv),
+ q(4544) => q(msw),
+ q(4545) => q(msx),
+ q(4546) => q(msy),
+ q(4547) => q(msz),
+ q(4548) => q(mta),
+ q(4549) => q(mtb),
+ q(4550) => q(mtc),
+ q(4551) => q(mtd),
+ q(4552) => q(mte),
+ q(4553) => q(mtf),
+ q(4554) => q(mtg),
+ q(4555) => q(mth),
+ q(4556) => q(mti),
+ q(4557) => q(mtj),
+ q(4558) => q(mtk),
+ q(4559) => q(mtl),
+ q(4560) => q(mtm),
+ q(4561) => q(mtn),
+ q(4562) => q(mto),
+ q(4563) => q(mtp),
+ q(4564) => q(mtq),
+ q(4565) => q(mtr),
+ q(4566) => q(mts),
+ q(4567) => q(mtt),
+ q(4568) => q(mtu),
+ q(4569) => q(mtv),
+ q(4570) => q(mtw),
+ q(4571) => q(mtx),
+ q(4572) => q(mty),
+ q(4573) => q(mua),
+ q(4574) => q(mub),
+ q(4575) => q(muc),
+ q(4576) => q(mud),
+ q(4577) => q(mue),
+ q(4578) => q(mug),
+ q(4579) => q(muh),
+ q(4580) => q(mui),
+ q(4581) => q(muj),
+ q(4582) => q(muk),
+ q(4583) => q(mum),
+ q(4584) => q(muo),
+ q(4585) => q(mup),
+ q(4586) => q(muq),
+ q(4587) => q(mur),
+ q(4588) => q(mut),
+ q(4589) => q(muu),
+ q(4590) => q(muv),
+ q(4591) => q(mux),
+ q(4592) => q(muy),
+ q(4593) => q(muz),
+ q(4594) => q(mva),
+ q(4595) => q(mvb),
+ q(4596) => q(mvd),
+ q(4597) => q(mve),
+ q(4598) => q(mvf),
+ q(4599) => q(mvg),
+ q(4600) => q(mvh),
+ q(4601) => q(mvi),
+ q(4602) => q(mvk),
+ q(4603) => q(mvl),
+ q(4604) => q(mvm),
+ q(4605) => q(mvn),
+ q(4606) => q(mvo),
+ q(4607) => q(mvp),
+ q(4608) => q(mvq),
+ q(4609) => q(mvr),
+ q(4610) => q(mvs),
+ q(4611) => q(mvt),
+ q(4612) => q(mvu),
+ q(4613) => q(mvv),
+ q(4614) => q(mvw),
+ q(4615) => q(mvx),
+ q(4616) => q(mvy),
+ q(4617) => q(mvz),
+ q(4618) => q(mwa),
+ q(4619) => q(mwb),
+ q(4620) => q(mwc),
+ q(4621) => q(mwe),
+ q(4622) => q(mwf),
+ q(4623) => q(mwg),
+ q(4624) => q(mwh),
+ q(4625) => q(mwi),
+ q(4626) => q(mwk),
+ q(4627) => q(mwm),
+ q(4628) => q(mwn),
+ q(4629) => q(mwo),
+ q(4630) => q(mwp),
+ q(4631) => q(mwq),
+ q(4632) => q(mws),
+ q(4633) => q(mwt),
+ q(4634) => q(mwu),
+ q(4635) => q(mwv),
+ q(4636) => q(mww),
+ q(4637) => q(mwx),
+ q(4638) => q(mwy),
+ q(4639) => q(mwz),
+ q(4640) => q(mxa),
+ q(4641) => q(mxb),
+ q(4642) => q(mxc),
+ q(4643) => q(mxd),
+ q(4644) => q(mxe),
+ q(4645) => q(mxf),
+ q(4646) => q(mxg),
+ q(4647) => q(mxh),
+ q(4648) => q(mxi),
+ q(4649) => q(mxj),
+ q(4650) => q(mxk),
+ q(4651) => q(mxl),
+ q(4652) => q(mxm),
+ q(4653) => q(mxn),
+ q(4654) => q(mxo),
+ q(4655) => q(mxp),
+ q(4656) => q(mxq),
+ q(4657) => q(mxr),
+ q(4658) => q(mxs),
+ q(4659) => q(mxt),
+ q(4660) => q(mxu),
+ q(4661) => q(mxv),
+ q(4662) => q(mxw),
+ q(4663) => q(mxx),
+ q(4664) => q(mxy),
+ q(4665) => q(mxz),
+ q(4666) => q(myb),
+ q(4667) => q(myc),
+ q(4668) => q(myd),
+ q(4669) => q(mye),
+ q(4670) => q(myf),
+ q(4671) => q(myg),
+ q(4672) => q(myh),
+ q(4673) => q(myi),
+ q(4674) => q(myj),
+ q(4675) => q(myk),
+ q(4676) => q(myl),
+ q(4677) => q(mym),
+ q(4678) => q(myo),
+ q(4679) => q(myp),
+ q(4680) => q(myr),
+ q(4681) => q(mys),
+ q(4682) => q(myu),
+ q(4683) => q(myw),
+ q(4684) => q(myx),
+ q(4685) => q(myy),
+ q(4686) => q(myz),
+ q(4687) => q(mza),
+ q(4688) => q(mzb),
+ q(4689) => q(mzc),
+ q(4690) => q(mzd),
+ q(4691) => q(mze),
+ q(4692) => q(mzg),
+ q(4693) => q(mzh),
+ q(4694) => q(mzi),
+ q(4695) => q(mzj),
+ q(4696) => q(mzk),
+ q(4697) => q(mzl),
+ q(4698) => q(mzm),
+ q(4699) => q(mzn),
+ q(4700) => q(mzo),
+ q(4701) => q(mzp),
+ q(4702) => q(mzq),
+ q(4703) => q(mzr),
+ q(4704) => q(mzs),
+ q(4705) => q(mzt),
+ q(4706) => q(mzu),
+ q(4707) => q(mzv),
+ q(4708) => q(mzw),
+ q(4709) => q(mzx),
+ q(4710) => q(mzy),
+ q(4711) => q(mzz),
+ q(4712) => q(naa),
+ q(4713) => q(nab),
+ q(4714) => q(nac),
+ q(4715) => q(nae),
+ q(4716) => q(naf),
+ q(4717) => q(nag),
+ q(4718) => q(naj),
+ q(4719) => q(nak),
+ q(4720) => q(nal),
+ q(4721) => q(nam),
+ q(4722) => q(nan),
+ q(4723) => q(nao),
+ q(4724) => q(naq),
+ q(4725) => q(nar),
+ q(4726) => q(nas),
+ q(4727) => q(nat),
+ q(4728) => q(naw),
+ q(4729) => q(nax),
+ q(4730) => q(nay),
+ q(4731) => q(naz),
+ q(4732) => q(nba),
+ q(4733) => q(nbb),
+ q(4734) => q(nbc),
+ q(4735) => q(nbd),
+ q(4736) => q(nbe),
+ q(4737) => q(nbg),
+ q(4738) => q(nbh),
+ q(4739) => q(nbi),
+ q(4740) => q(nbj),
+ q(4741) => q(nbk),
+ q(4742) => q(nbm),
+ q(4743) => q(nbn),
+ q(4744) => q(nbo),
+ q(4745) => q(nbp),
+ q(4746) => q(nbq),
+ q(4747) => q(nbr),
+ q(4748) => q(nbs),
+ q(4749) => q(nbt),
+ q(4750) => q(nbu),
+ q(4751) => q(nbv),
+ q(4752) => q(nbw),
+ q(4753) => q(nby),
+ q(4754) => q(nca),
+ q(4755) => q(ncb),
+ q(4756) => q(ncc),
+ q(4757) => q(ncd),
+ q(4758) => q(nce),
+ q(4759) => q(ncf),
+ q(4760) => q(ncg),
+ q(4761) => q(nch),
+ q(4762) => q(nci),
+ q(4763) => q(ncj),
+ q(4764) => q(nck),
+ q(4765) => q(ncl),
+ q(4766) => q(ncm),
+ q(4767) => q(ncn),
+ q(4768) => q(nco),
+ q(4769) => q(ncp),
+ q(4770) => q(ncq),
+ q(4771) => q(ncr),
+ q(4772) => q(ncs),
+ q(4773) => q(nct),
+ q(4774) => q(ncu),
+ q(4775) => q(ncx),
+ q(4776) => q(ncz),
+ q(4777) => q(nda),
+ q(4778) => q(ndb),
+ q(4779) => q(ndc),
+ q(4780) => q(ndd),
+ q(4781) => q(ndf),
+ q(4782) => q(ndg),
+ q(4783) => q(ndh),
+ q(4784) => q(ndi),
+ q(4785) => q(ndj),
+ q(4786) => q(ndk),
+ q(4787) => q(ndl),
+ q(4788) => q(ndm),
+ q(4789) => q(ndn),
+ q(4790) => q(ndp),
+ q(4791) => q(ndq),
+ q(4792) => q(ndr),
+ q(4793) => q(ndt),
+ q(4794) => q(ndu),
+ q(4795) => q(ndv),
+ q(4796) => q(ndw),
+ q(4797) => q(ndx),
+ q(4798) => q(ndy),
+ q(4799) => q(ndz),
+ q(4800) => q(nea),
+ q(4801) => q(neb),
+ q(4802) => q(nec),
+ q(4803) => q(ned),
+ q(4804) => q(nee),
+ q(4805) => q(nef),
+ q(4806) => q(neg),
+ q(4807) => q(neh),
+ q(4808) => q(nei),
+ q(4809) => q(nej),
+ q(4810) => q(nek),
+ q(4811) => q(nem),
+ q(4812) => q(nen),
+ q(4813) => q(neo),
+ q(4814) => q(neq),
+ q(4815) => q(ner),
+ q(4816) => q(nes),
+ q(4817) => q(net),
+ q(4818) => q(neu),
+ q(4819) => q(nev),
+ q(4820) => q(nex),
+ q(4821) => q(ney),
+ q(4822) => q(nez),
+ q(4823) => q(nfa),
+ q(4824) => q(nfd),
+ q(4825) => q(nfl),
+ q(4826) => q(nfr),
+ q(4827) => q(nfu),
+ q(4828) => q(nga),
+ q(4829) => q(ngb),
+ q(4830) => q(ngc),
+ q(4831) => q(ngd),
+ q(4832) => q(nge),
+ q(4833) => q(ngg),
+ q(4834) => q(ngh),
+ q(4835) => q(ngi),
+ q(4836) => q(ngj),
+ q(4837) => q(ngk),
+ q(4838) => q(ngl),
+ q(4839) => q(ngm),
+ q(4840) => q(ngn),
+ q(4841) => q(ngo),
+ q(4842) => q(ngp),
+ q(4843) => q(ngq),
+ q(4844) => q(ngr),
+ q(4845) => q(ngs),
+ q(4846) => q(ngt),
+ q(4847) => q(ngu),
+ q(4848) => q(ngv),
+ q(4849) => q(ngw),
+ q(4850) => q(ngx),
+ q(4851) => q(ngy),
+ q(4852) => q(ngz),
+ q(4853) => q(nha),
+ q(4854) => q(nhb),
+ q(4855) => q(nhc),
+ q(4856) => q(nhd),
+ q(4857) => q(nhe),
+ q(4858) => q(nhf),
+ q(4859) => q(nhg),
+ q(4860) => q(nhh),
+ q(4861) => q(nhi),
+ q(4862) => q(nhk),
+ q(4863) => q(nhm),
+ q(4864) => q(nhn),
+ q(4865) => q(nho),
+ q(4866) => q(nhp),
+ q(4867) => q(nhq),
+ q(4868) => q(nhr),
+ q(4869) => q(nht),
+ q(4870) => q(nhu),
+ q(4871) => q(nhv),
+ q(4872) => q(nhw),
+ q(4873) => q(nhx),
+ q(4874) => q(nhy),
+ q(4875) => q(nhz),
+ q(4876) => q(nib),
+ q(4877) => q(nid),
+ q(4878) => q(nie),
+ q(4879) => q(nif),
+ q(4880) => q(nig),
+ q(4881) => q(nih),
+ q(4882) => q(nii),
+ q(4883) => q(nij),
+ q(4884) => q(nik),
+ q(4885) => q(nil),
+ q(4886) => q(nim),
+ q(4887) => q(nin),
+ q(4888) => q(nio),
+ q(4889) => q(niq),
+ q(4890) => q(nir),
+ q(4891) => q(nis),
+ q(4892) => q(nit),
+ q(4893) => q(niv),
+ q(4894) => q(niw),
+ q(4895) => q(nix),
+ q(4896) => q(niy),
+ q(4897) => q(niz),
+ q(4898) => q(nja),
+ q(4899) => q(njb),
+ q(4900) => q(njd),
+ q(4901) => q(njh),
+ q(4902) => q(nji),
+ q(4903) => q(njj),
+ q(4904) => q(njl),
+ q(4905) => q(njm),
+ q(4906) => q(njn),
+ q(4907) => q(njo),
+ q(4908) => q(njr),
+ q(4909) => q(njs),
+ q(4910) => q(njt),
+ q(4911) => q(nju),
+ q(4912) => q(njx),
+ q(4913) => q(njy),
+ q(4914) => q(njz),
+ q(4915) => q(nka),
+ q(4916) => q(nkb),
+ q(4917) => q(nkc),
+ q(4918) => q(nkd),
+ q(4919) => q(nke),
+ q(4920) => q(nkf),
+ q(4921) => q(nkg),
+ q(4922) => q(nkh),
+ q(4923) => q(nki),
+ q(4924) => q(nkj),
+ q(4925) => q(nkk),
+ q(4926) => q(nkm),
+ q(4927) => q(nkn),
+ q(4928) => q(nko),
+ q(4929) => q(nkp),
+ q(4930) => q(nkq),
+ q(4931) => q(nkr),
+ q(4932) => q(nks),
+ q(4933) => q(nkt),
+ q(4934) => q(nku),
+ q(4935) => q(nkv),
+ q(4936) => q(nkw),
+ q(4937) => q(nkx),
+ q(4938) => q(nkz),
+ q(4939) => q(nla),
+ q(4940) => q(nlc),
+ q(4941) => q(nle),
+ q(4942) => q(nlg),
+ q(4943) => q(nli),
+ q(4944) => q(nlj),
+ q(4945) => q(nlk),
+ q(4946) => q(nll),
+ q(4947) => q(nlo),
+ q(4948) => q(nlq),
+ q(4949) => q(nlu),
+ q(4950) => q(nlv),
+ q(4951) => q(nlw),
+ q(4952) => q(nlx),
+ q(4953) => q(nly),
+ q(4954) => q(nlz),
+ q(4955) => q(nma),
+ q(4956) => q(nmb),
+ q(4957) => q(nmc),
+ q(4958) => q(nmd),
+ q(4959) => q(nme),
+ q(4960) => q(nmf),
+ q(4961) => q(nmg),
+ q(4962) => q(nmh),
+ q(4963) => q(nmi),
+ q(4964) => q(nmj),
+ q(4965) => q(nmk),
+ q(4966) => q(nml),
+ q(4967) => q(nmm),
+ q(4968) => q(nmn),
+ q(4969) => q(nmo),
+ q(4970) => q(nmp),
+ q(4971) => q(nmq),
+ q(4972) => q(nmr),
+ q(4973) => q(nms),
+ q(4974) => q(nmt),
+ q(4975) => q(nmu),
+ q(4976) => q(nmv),
+ q(4977) => q(nmw),
+ q(4978) => q(nmx),
+ q(4979) => q(nmy),
+ q(4980) => q(nmz),
+ q(4981) => q(nna),
+ q(4982) => q(nnb),
+ q(4983) => q(nnc),
+ q(4984) => q(nnd),
+ q(4985) => q(nne),
+ q(4986) => q(nnf),
+ q(4987) => q(nng),
+ q(4988) => q(nnh),
+ q(4989) => q(nni),
+ q(4990) => q(nnj),
+ q(4991) => q(nnk),
+ q(4992) => q(nnl),
+ q(4993) => q(nnm),
+ q(4994) => q(nnn),
+ q(4995) => q(nnp),
+ q(4996) => q(nnq),
+ q(4997) => q(nnr),
+ q(4998) => q(nns),
+ q(4999) => q(nnt),
+ q(5000) => q(nnu),
+ q(5001) => q(nnv),
+ q(5002) => q(nnw),
+ q(5003) => q(nny),
+ q(5004) => q(nnz),
+ q(5005) => q(noa),
+ q(5006) => q(noc),
+ q(5007) => q(nod),
+ q(5008) => q(noe),
+ q(5009) => q(nof),
+ q(5010) => q(noh),
+ q(5011) => q(noi),
+ q(5012) => q(noj),
+ q(5013) => q(nok),
+ q(5014) => q(nol),
+ q(5015) => q(nom),
+ q(5016) => q(nop),
+ q(5017) => q(noq),
+ q(5018) => q(nos),
+ q(5019) => q(not),
+ q(5020) => q(nou),
+ q(5021) => q(nov),
+ q(5022) => q(now),
+ q(5023) => q(noy),
+ q(5024) => q(noz),
+ q(5025) => q(npa),
+ q(5026) => q(npb),
+ q(5027) => q(npg),
+ q(5028) => q(nph),
+ q(5029) => q(npi),
+ q(5030) => q(npl),
+ q(5031) => q(npn),
+ q(5032) => q(npo),
+ q(5033) => q(nps),
+ q(5034) => q(npu),
+ q(5035) => q(npx),
+ q(5036) => q(npy),
+ q(5037) => q(nqg),
+ q(5038) => q(nqk),
+ q(5039) => q(nql),
+ q(5040) => q(nqm),
+ q(5041) => q(nqn),
+ q(5042) => q(nqq),
+ q(5043) => q(nqy),
+ q(5044) => q(nra),
+ q(5045) => q(nrb),
+ q(5046) => q(nrc),
+ q(5047) => q(nre),
+ q(5048) => q(nrf),
+ q(5049) => q(nrg),
+ q(5050) => q(nri),
+ q(5051) => q(nrk),
+ q(5052) => q(nrl),
+ q(5053) => q(nrm),
+ q(5054) => q(nrn),
+ q(5055) => q(nrp),
+ q(5056) => q(nrr),
+ q(5057) => q(nrt),
+ q(5058) => q(nru),
+ q(5059) => q(nrx),
+ q(5060) => q(nrz),
+ q(5061) => q(nsa),
+ q(5062) => q(nsc),
+ q(5063) => q(nsd),
+ q(5064) => q(nse),
+ q(5065) => q(nsf),
+ q(5066) => q(nsg),
+ q(5067) => q(nsh),
+ q(5068) => q(nsi),
+ q(5069) => q(nsk),
+ q(5070) => q(nsl),
+ q(5071) => q(nsm),
+ q(5072) => q(nsn),
+ q(5073) => q(nsp),
+ q(5074) => q(nsq),
+ q(5075) => q(nsr),
+ q(5076) => q(nss),
+ q(5077) => q(nst),
+ q(5078) => q(nsu),
+ q(5079) => q(nsv),
+ q(5080) => q(nsw),
+ q(5081) => q(nsx),
+ q(5082) => q(nsy),
+ q(5083) => q(nsz),
+ q(5084) => q(ntd),
+ q(5085) => q(nte),
+ q(5086) => q(ntg),
+ q(5087) => q(nti),
+ q(5088) => q(ntj),
+ q(5089) => q(ntk),
+ q(5090) => q(ntm),
+ q(5091) => q(nto),
+ q(5092) => q(ntp),
+ q(5093) => q(ntr),
+ q(5094) => q(ntu),
+ q(5095) => q(ntw),
+ q(5096) => q(ntx),
+ q(5097) => q(nty),
+ q(5098) => q(ntz),
+ q(5099) => q(nua),
+ q(5100) => q(nuc),
+ q(5101) => q(nud),
+ q(5102) => q(nue),
+ q(5103) => q(nuf),
+ q(5104) => q(nug),
+ q(5105) => q(nuh),
+ q(5106) => q(nui),
+ q(5107) => q(nuj),
+ q(5108) => q(nuk),
+ q(5109) => q(nul),
+ q(5110) => q(num),
+ q(5111) => q(nun),
+ q(5112) => q(nuo),
+ q(5113) => q(nup),
+ q(5114) => q(nuq),
+ q(5115) => q(nur),
+ q(5116) => q(nus),
+ q(5117) => q(nut),
+ q(5118) => q(nuu),
+ q(5119) => q(nuv),
+ q(5120) => q(nuw),
+ q(5121) => q(nux),
+ q(5122) => q(nuy),
+ q(5123) => q(nuz),
+ q(5124) => q(nvh),
+ q(5125) => q(nvm),
+ q(5126) => q(nvo),
+ q(5127) => q(nwa),
+ q(5128) => q(nwb),
+ q(5129) => q(nwe),
+ q(5130) => q(nwg),
+ q(5131) => q(nwi),
+ q(5132) => q(nwm),
+ q(5133) => q(nwo),
+ q(5134) => q(nwr),
+ q(5135) => q(nwx),
+ q(5136) => q(nwy),
+ q(5137) => q(nxa),
+ q(5138) => q(nxd),
+ q(5139) => q(nxe),
+ q(5140) => q(nxg),
+ q(5141) => q(nxi),
+ q(5142) => q(nxk),
+ q(5143) => q(nxl),
+ q(5144) => q(nxm),
+ q(5145) => q(nxn),
+ q(5146) => q(nxo),
+ q(5147) => q(nxq),
+ q(5148) => q(nxr),
+ q(5149) => q(nxu),
+ q(5150) => q(nxx),
+ q(5151) => q(nyb),
+ q(5152) => q(nyc),
+ q(5153) => q(nyd),
+ q(5154) => q(nye),
+ q(5155) => q(nyf),
+ q(5156) => q(nyg),
+ q(5157) => q(nyh),
+ q(5158) => q(nyi),
+ q(5159) => q(nyj),
+ q(5160) => q(nyk),
+ q(5161) => q(nyl),
+ q(5162) => q(nyp),
+ q(5163) => q(nyq),
+ q(5164) => q(nyr),
+ q(5165) => q(nys),
+ q(5166) => q(nyt),
+ q(5167) => q(nyu),
+ q(5168) => q(nyv),
+ q(5169) => q(nyw),
+ q(5170) => q(nyx),
+ q(5171) => q(nyy),
+ q(5172) => q(nza),
+ q(5173) => q(nzb),
+ q(5174) => q(nzk),
+ q(5175) => q(nzm),
+ q(5176) => q(nzs),
+ q(5177) => q(nzu),
+ q(5178) => q(nzy),
+ q(5179) => q(nzz),
+ q(5180) => q(oaa),
+ q(5181) => q(oac),
+ q(5182) => q(oar),
+ q(5183) => q(oav),
+ q(5184) => q(obi),
+ q(5185) => q(obk),
+ q(5186) => q(obl),
+ q(5187) => q(obm),
+ q(5188) => q(obo),
+ q(5189) => q(obr),
+ q(5190) => q(obt),
+ q(5191) => q(obu),
+ q(5192) => q(oca),
+ q(5193) => q(och),
+ q(5194) => q(oco),
+ q(5195) => q(ocu),
+ q(5196) => q(oda),
+ q(5197) => q(odk),
+ q(5198) => q(odt),
+ q(5199) => q(odu),
+ q(5200) => q(ofo),
+ q(5201) => q(ofs),
+ q(5202) => q(ofu),
+ q(5203) => q(ogb),
+ q(5204) => q(ogc),
+ q(5205) => q(oge),
+ q(5206) => q(ogg),
+ q(5207) => q(ogo),
+ q(5208) => q(ogu),
+ q(5209) => q(oht),
+ q(5210) => q(ohu),
+ q(5211) => q(oia),
+ q(5212) => q(oin),
+ q(5213) => q(ojb),
+ q(5214) => q(ojc),
+ q(5215) => q(ojg),
+ q(5216) => q(ojp),
+ q(5217) => q(ojs),
+ q(5218) => q(ojv),
+ q(5219) => q(ojw),
+ q(5220) => q(oka),
+ q(5221) => q(okb),
+ q(5222) => q(okd),
+ q(5223) => q(oke),
+ q(5224) => q(okg),
+ q(5225) => q(okh),
+ q(5226) => q(oki),
+ q(5227) => q(okj),
+ q(5228) => q(okk),
+ q(5229) => q(okl),
+ q(5230) => q(okm),
+ q(5231) => q(okn),
+ q(5232) => q(oko),
+ q(5233) => q(okr),
+ q(5234) => q(oks),
+ q(5235) => q(oku),
+ q(5236) => q(okv),
+ q(5237) => q(okx),
+ q(5238) => q(ola),
+ q(5239) => q(old),
+ q(5240) => q(ole),
+ q(5241) => q(olk),
+ q(5242) => q(olm),
+ q(5243) => q(olo),
+ q(5244) => q(olr),
+ q(5245) => q(olt),
+ q(5246) => q(olu),
+ q(5247) => q(oma),
+ q(5248) => q(omb),
+ q(5249) => q(omc),
+ q(5250) => q(omg),
+ q(5251) => q(omi),
+ q(5252) => q(omk),
+ q(5253) => q(oml),
+ q(5254) => q(omn),
+ q(5255) => q(omo),
+ q(5256) => q(omp),
+ q(5257) => q(omr),
+ q(5258) => q(omt),
+ q(5259) => q(omu),
+ q(5260) => q(omw),
+ q(5261) => q(omx),
+ q(5262) => q(ona),
+ q(5263) => q(onb),
+ q(5264) => q(one),
+ q(5265) => q(ong),
+ q(5266) => q(oni),
+ q(5267) => q(onj),
+ q(5268) => q(onk),
+ q(5269) => q(onn),
+ q(5270) => q(ono),
+ q(5271) => q(onp),
+ q(5272) => q(onr),
+ q(5273) => q(ons),
+ q(5274) => q(ont),
+ q(5275) => q(onu),
+ q(5276) => q(onw),
+ q(5277) => q(onx),
+ q(5278) => q(ood),
+ q(5279) => q(oog),
+ q(5280) => q(oon),
+ q(5281) => q(oor),
+ q(5282) => q(oos),
+ q(5283) => q(opa),
+ q(5284) => q(opk),
+ q(5285) => q(opm),
+ q(5286) => q(opo),
+ q(5287) => q(opt),
+ q(5288) => q(opy),
+ q(5289) => q(ora),
+ q(5290) => q(orc),
+ q(5291) => q(ore),
+ q(5292) => q(org),
+ q(5293) => q(orh),
+ q(5294) => q(orn),
+ q(5295) => q(oro),
+ q(5296) => q(orr),
+ q(5297) => q(ors),
+ q(5298) => q(ort),
+ q(5299) => q(oru),
+ q(5300) => q(orv),
+ q(5301) => q(orw),
+ q(5302) => q(orx),
+ q(5303) => q(ory),
+ q(5304) => q(orz),
+ q(5305) => q(osc),
+ q(5306) => q(osi),
+ q(5307) => q(oso),
+ q(5308) => q(osp),
+ q(5309) => q(ost),
+ q(5310) => q(osu),
+ q(5311) => q(osx),
+ q(5312) => q(otb),
+ q(5313) => q(otd),
+ q(5314) => q(ote),
+ q(5315) => q(oti),
+ q(5316) => q(otk),
+ q(5317) => q(otl),
+ q(5318) => q(otm),
+ q(5319) => q(otn),
+ q(5320) => q(otq),
+ q(5321) => q(otr),
+ q(5322) => q(ots),
+ q(5323) => q(ott),
+ q(5324) => q(otu),
+ q(5325) => q(otw),
+ q(5326) => q(otx),
+ q(5327) => q(oty),
+ q(5328) => q(otz),
+ q(5329) => q(oua),
+ q(5330) => q(oub),
+ q(5331) => q(oue),
+ q(5332) => q(oui),
+ q(5333) => q(oum),
+ q(5334) => q(ovd),
+ q(5335) => q(owi),
+ q(5336) => q(owl),
+ q(5337) => q(oyb),
+ q(5338) => q(oyd),
+ q(5339) => q(oym),
+ q(5340) => q(oyy),
+ q(5341) => q(ozm),
+ q(5342) => q(pab),
+ q(5343) => q(pac),
+ q(5344) => q(pad),
+ q(5345) => q(pae),
+ q(5346) => q(paf),
+ q(5347) => q(pah),
+ q(5348) => q(pai),
+ q(5349) => q(pak),
+ q(5350) => q(pao),
+ q(5351) => q(paq),
+ q(5352) => q(par),
+ q(5353) => q(pas),
+ q(5354) => q(pat),
+ q(5355) => q(pav),
+ q(5356) => q(paw),
+ q(5357) => q(pax),
+ q(5358) => q(pay),
+ q(5359) => q(paz),
+ q(5360) => q(pbb),
+ q(5361) => q(pbc),
+ q(5362) => q(pbe),
+ q(5363) => q(pbf),
+ q(5364) => q(pbg),
+ q(5365) => q(pbh),
+ q(5366) => q(pbi),
+ q(5367) => q(pbl),
+ q(5368) => q(pbn),
+ q(5369) => q(pbo),
+ q(5370) => q(pbp),
+ q(5371) => q(pbr),
+ q(5372) => q(pbs),
+ q(5373) => q(pbt),
+ q(5374) => q(pbu),
+ q(5375) => q(pbv),
+ q(5376) => q(pby),
+ q(5377) => q(pca),
+ q(5378) => q(pcb),
+ q(5379) => q(pcc),
+ q(5380) => q(pcd),
+ q(5381) => q(pce),
+ q(5382) => q(pcf),
+ q(5383) => q(pcg),
+ q(5384) => q(pch),
+ q(5385) => q(pci),
+ q(5386) => q(pcj),
+ q(5387) => q(pck),
+ q(5388) => q(pcl),
+ q(5389) => q(pcm),
+ q(5390) => q(pcn),
+ q(5391) => q(pcp),
+ q(5392) => q(pcw),
+ q(5393) => q(pda),
+ q(5394) => q(pdc),
+ q(5395) => q(pdi),
+ q(5396) => q(pdn),
+ q(5397) => q(pdo),
+ q(5398) => q(pdt),
+ q(5399) => q(pdu),
+ q(5400) => q(pea),
+ q(5401) => q(peb),
+ q(5402) => q(ped),
+ q(5403) => q(pee),
+ q(5404) => q(pef),
+ q(5405) => q(peg),
+ q(5406) => q(peh),
+ q(5407) => q(pei),
+ q(5408) => q(pej),
+ q(5409) => q(pek),
+ q(5410) => q(pel),
+ q(5411) => q(pem),
+ q(5412) => q(pep),
+ q(5413) => q(peq),
+ q(5414) => q(pes),
+ q(5415) => q(pev),
+ q(5416) => q(pex),
+ q(5417) => q(pey),
+ q(5418) => q(pez),
+ q(5419) => q(pfa),
+ q(5420) => q(pfe),
+ q(5421) => q(pfl),
+ q(5422) => q(pga),
+ q(5423) => q(pgd),
+ q(5424) => q(pgg),
+ q(5425) => q(pgi),
+ q(5426) => q(pgk),
+ q(5427) => q(pgl),
+ q(5428) => q(pgn),
+ q(5429) => q(pgs),
+ q(5430) => q(pgu),
+ q(5431) => q(pgz),
+ q(5432) => q(pha),
+ q(5433) => q(phd),
+ q(5434) => q(phg),
+ q(5435) => q(phh),
+ q(5436) => q(phk),
+ q(5437) => q(phl),
+ q(5438) => q(phm),
+ q(5439) => q(pho),
+ q(5440) => q(phq),
+ q(5441) => q(phr),
+ q(5442) => q(pht),
+ q(5443) => q(phu),
+ q(5444) => q(phv),
+ q(5445) => q(phw),
+ q(5446) => q(pia),
+ q(5447) => q(pib),
+ q(5448) => q(pic),
+ q(5449) => q(pid),
+ q(5450) => q(pie),
+ q(5451) => q(pif),
+ q(5452) => q(pig),
+ q(5453) => q(pih),
+ q(5454) => q(pii),
+ q(5455) => q(pij),
+ q(5456) => q(pil),
+ q(5457) => q(pim),
+ q(5458) => q(pin),
+ q(5459) => q(pio),
+ q(5460) => q(pip),
+ q(5461) => q(pir),
+ q(5462) => q(pis),
+ q(5463) => q(pit),
+ q(5464) => q(piu),
+ q(5465) => q(piv),
+ q(5466) => q(piw),
+ q(5467) => q(pix),
+ q(5468) => q(piy),
+ q(5469) => q(piz),
+ q(5470) => q(pjt),
+ q(5471) => q(pka),
+ q(5472) => q(pkb),
+ q(5473) => q(pkc),
+ q(5474) => q(pkg),
+ q(5475) => q(pkh),
+ q(5476) => q(pkn),
+ q(5477) => q(pko),
+ q(5478) => q(pkp),
+ q(5479) => q(pkr),
+ q(5480) => q(pks),
+ q(5481) => q(pkt),
+ q(5482) => q(pku),
+ q(5483) => q(pla),
+ q(5484) => q(plb),
+ q(5485) => q(plc),
+ q(5486) => q(pld),
+ q(5487) => q(ple),
+ q(5488) => q(plg),
+ q(5489) => q(plh),
+ q(5490) => q(plj),
+ q(5491) => q(plk),
+ q(5492) => q(pll),
+ q(5493) => q(pln),
+ q(5494) => q(plo),
+ q(5495) => q(plp),
+ q(5496) => q(plq),
+ q(5497) => q(plr),
+ q(5498) => q(pls),
+ q(5499) => q(plt),
+ q(5500) => q(plu),
+ q(5501) => q(plv),
+ q(5502) => q(plw),
+ q(5503) => q(ply),
+ q(5504) => q(plz),
+ q(5505) => q(pma),
+ q(5506) => q(pmb),
+ q(5507) => q(pmd),
+ q(5508) => q(pme),
+ q(5509) => q(pmf),
+ q(5510) => q(pmh),
+ q(5511) => q(pmi),
+ q(5512) => q(pmj),
+ q(5513) => q(pmk),
+ q(5514) => q(pml),
+ q(5515) => q(pmm),
+ q(5516) => q(pmn),
+ q(5517) => q(pmo),
+ q(5518) => q(pmq),
+ q(5519) => q(pmr),
+ q(5520) => q(pms),
+ q(5521) => q(pmt),
+ q(5522) => q(pmw),
+ q(5523) => q(pmx),
+ q(5524) => q(pmy),
+ q(5525) => q(pmz),
+ q(5526) => q(pna),
+ q(5527) => q(pnb),
+ q(5528) => q(pnc),
+ q(5529) => q(pne),
+ q(5530) => q(png),
+ q(5531) => q(pnh),
+ q(5532) => q(pni),
+ q(5533) => q(pnj),
+ q(5534) => q(pnk),
+ q(5535) => q(pnl),
+ q(5536) => q(pnm),
+ q(5537) => q(pnn),
+ q(5538) => q(pno),
+ q(5539) => q(pnp),
+ q(5540) => q(pnq),
+ q(5541) => q(pnr),
+ q(5542) => q(pns),
+ q(5543) => q(pnt),
+ q(5544) => q(pnu),
+ q(5545) => q(pnv),
+ q(5546) => q(pnw),
+ q(5547) => q(pnx),
+ q(5548) => q(pny),
+ q(5549) => q(pnz),
+ q(5550) => q(poc),
+ q(5551) => q(poe),
+ q(5552) => q(pof),
+ q(5553) => q(pog),
+ q(5554) => q(poh),
+ q(5555) => q(poi),
+ q(5556) => q(pok),
+ q(5557) => q(pom),
+ q(5558) => q(poo),
+ q(5559) => q(pop),
+ q(5560) => q(poq),
+ q(5561) => q(pos),
+ q(5562) => q(pot),
+ q(5563) => q(pov),
+ q(5564) => q(pow),
+ q(5565) => q(pox),
+ q(5566) => q(poy),
+ q(5567) => q(ppe),
+ q(5568) => q(ppi),
+ q(5569) => q(ppk),
+ q(5570) => q(ppl),
+ q(5571) => q(ppm),
+ q(5572) => q(ppn),
+ q(5573) => q(ppo),
+ q(5574) => q(ppp),
+ q(5575) => q(ppq),
+ q(5576) => q(pps),
+ q(5577) => q(ppt),
+ q(5578) => q(ppu),
+ q(5579) => q(pqa),
+ q(5580) => q(pqm),
+ q(5581) => q(prc),
+ q(5582) => q(prd),
+ q(5583) => q(pre),
+ q(5584) => q(prf),
+ q(5585) => q(prg),
+ q(5586) => q(prh),
+ q(5587) => q(pri),
+ q(5588) => q(prk),
+ q(5589) => q(prl),
+ q(5590) => q(prm),
+ q(5591) => q(prn),
+ q(5592) => q(prp),
+ q(5593) => q(prq),
+ q(5594) => q(prr),
+ q(5595) => q(prs),
+ q(5596) => q(prt),
+ q(5597) => q(pru),
+ q(5598) => q(prw),
+ q(5599) => q(prx),
+ q(5600) => q(prz),
+ q(5601) => q(psa),
+ q(5602) => q(psc),
+ q(5603) => q(psd),
+ q(5604) => q(pse),
+ q(5605) => q(psg),
+ q(5606) => q(psh),
+ q(5607) => q(psi),
+ q(5608) => q(psl),
+ q(5609) => q(psm),
+ q(5610) => q(psn),
+ q(5611) => q(pso),
+ q(5612) => q(psp),
+ q(5613) => q(psq),
+ q(5614) => q(psr),
+ q(5615) => q(pss),
+ q(5616) => q(pst),
+ q(5617) => q(psu),
+ q(5618) => q(psw),
+ q(5619) => q(psy),
+ q(5620) => q(pta),
+ q(5621) => q(pth),
+ q(5622) => q(pti),
+ q(5623) => q(ptn),
+ q(5624) => q(pto),
+ q(5625) => q(ptp),
+ q(5626) => q(ptq),
+ q(5627) => q(ptr),
+ q(5628) => q(ptt),
+ q(5629) => q(ptu),
+ q(5630) => q(ptv),
+ q(5631) => q(ptw),
+ q(5632) => q(pty),
+ q(5633) => q(pua),
+ q(5634) => q(pub),
+ q(5635) => q(puc),
+ q(5636) => q(pud),
+ q(5637) => q(pue),
+ q(5638) => q(puf),
+ q(5639) => q(pug),
+ q(5640) => q(pui),
+ q(5641) => q(puj),
+ q(5642) => q(pum),
+ q(5643) => q(puo),
+ q(5644) => q(pup),
+ q(5645) => q(puq),
+ q(5646) => q(pur),
+ q(5647) => q(put),
+ q(5648) => q(puu),
+ q(5649) => q(puw),
+ q(5650) => q(pux),
+ q(5651) => q(puy),
+ q(5652) => q(pwa),
+ q(5653) => q(pwb),
+ q(5654) => q(pwg),
+ q(5655) => q(pwi),
+ q(5656) => q(pwm),
+ q(5657) => q(pwn),
+ q(5658) => q(pwo),
+ q(5659) => q(pwr),
+ q(5660) => q(pww),
+ q(5661) => q(pxm),
+ q(5662) => q(pye),
+ q(5663) => q(pym),
+ q(5664) => q(pyn),
+ q(5665) => q(pys),
+ q(5666) => q(pyu),
+ q(5667) => q(pyx),
+ q(5668) => q(pyy),
+ q(5669) => q(pzn),
+ q(5670) => q(qua),
+ q(5671) => q(qub),
+ q(5672) => q(quc),
+ q(5673) => q(qud),
+ q(5674) => q(quf),
+ q(5675) => q(qug),
+ q(5676) => q(quh),
+ q(5677) => q(qui),
+ q(5678) => q(quk),
+ q(5679) => q(qul),
+ q(5680) => q(qum),
+ q(5681) => q(qun),
+ q(5682) => q(qup),
+ q(5683) => q(quq),
+ q(5684) => q(qur),
+ q(5685) => q(qus),
+ q(5686) => q(quv),
+ q(5687) => q(quw),
+ q(5688) => q(qux),
+ q(5689) => q(quy),
+ q(5690) => q(quz),
+ q(5691) => q(qva),
+ q(5692) => q(qvc),
+ q(5693) => q(qve),
+ q(5694) => q(qvh),
+ q(5695) => q(qvi),
+ q(5696) => q(qvj),
+ q(5697) => q(qvl),
+ q(5698) => q(qvm),
+ q(5699) => q(qvn),
+ q(5700) => q(qvo),
+ q(5701) => q(qvp),
+ q(5702) => q(qvs),
+ q(5703) => q(qvw),
+ q(5704) => q(qvy),
+ q(5705) => q(qvz),
+ q(5706) => q(qwa),
+ q(5707) => q(qwc),
+ q(5708) => q(qwh),
+ q(5709) => q(qwm),
+ q(5710) => q(qws),
+ q(5711) => q(qwt),
+ q(5712) => q(qxa),
+ q(5713) => q(qxc),
+ q(5714) => q(qxh),
+ q(5715) => q(qxl),
+ q(5716) => q(qxn),
+ q(5717) => q(qxo),
+ q(5718) => q(qxp),
+ q(5719) => q(qxq),
+ q(5720) => q(qxr),
+ q(5721) => q(qxs),
+ q(5722) => q(qxt),
+ q(5723) => q(qxu),
+ q(5724) => q(qxw),
+ q(5725) => q(qya),
+ q(5726) => q(qyp),
+ q(5727) => q(raa),
+ q(5728) => q(rab),
+ q(5729) => q(rac),
+ q(5730) => q(rad),
+ q(5731) => q(raf),
+ q(5732) => q(rag),
+ q(5733) => q(rah),
+ q(5734) => q(rai),
+ q(5735) => q(rak),
+ q(5736) => q(ral),
+ q(5737) => q(ram),
+ q(5738) => q(ran),
+ q(5739) => q(rao),
+ q(5740) => q(raq),
+ q(5741) => q(ras),
+ q(5742) => q(rat),
+ q(5743) => q(rau),
+ q(5744) => q(rav),
+ q(5745) => q(raw),
+ q(5746) => q(rax),
+ q(5747) => q(ray),
+ q(5748) => q(raz),
+ q(5749) => q(rbb),
+ q(5750) => q(rbk),
+ q(5751) => q(rbl),
+ q(5752) => q(rbp),
+ q(5753) => q(rcf),
+ q(5754) => q(rdb),
+ q(5755) => q(rea),
+ q(5756) => q(reb),
+ q(5757) => q(ree),
+ q(5758) => q(reg),
+ q(5759) => q(rei),
+ q(5760) => q(rej),
+ q(5761) => q(rel),
+ q(5762) => q(rem),
+ q(5763) => q(ren),
+ q(5764) => q(rer),
+ q(5765) => q(res),
+ q(5766) => q(ret),
+ q(5767) => q(rey),
+ q(5768) => q(rga),
+ q(5769) => q(rge),
+ q(5770) => q(rgk),
+ q(5771) => q(rgn),
+ q(5772) => q(rgr),
+ q(5773) => q(rgs),
+ q(5774) => q(rgu),
+ q(5775) => q(rhg),
+ q(5776) => q(rhp),
+ q(5777) => q(ria),
+ q(5778) => q(rif),
+ q(5779) => q(ril),
+ q(5780) => q(rim),
+ q(5781) => q(rin),
+ q(5782) => q(rir),
+ q(5783) => q(rit),
+ q(5784) => q(riu),
+ q(5785) => q(rjg),
+ q(5786) => q(rji),
+ q(5787) => q(rjs),
+ q(5788) => q(rka),
+ q(5789) => q(rkb),
+ q(5790) => q(rkh),
+ q(5791) => q(rki),
+ q(5792) => q(rkm),
+ q(5793) => q(rkt),
+ q(5794) => q(rkw),
+ q(5795) => q(rma),
+ q(5796) => q(rmb),
+ q(5797) => q(rmc),
+ q(5798) => q(rmd),
+ q(5799) => q(rme),
+ q(5800) => q(rmf),
+ q(5801) => q(rmg),
+ q(5802) => q(rmh),
+ q(5803) => q(rmi),
+ q(5804) => q(rmk),
+ q(5805) => q(rml),
+ q(5806) => q(rmm),
+ q(5807) => q(rmn),
+ q(5808) => q(rmo),
+ q(5809) => q(rmp),
+ q(5810) => q(rmq),
+ q(5811) => q(rms),
+ q(5812) => q(rmt),
+ q(5813) => q(rmu),
+ q(5814) => q(rmv),
+ q(5815) => q(rmw),
+ q(5816) => q(rmx),
+ q(5817) => q(rmy),
+ q(5818) => q(rmz),
+ q(5819) => q(rnd),
+ q(5820) => q(rng),
+ q(5821) => q(rnl),
+ q(5822) => q(rnn),
+ q(5823) => q(rnp),
+ q(5824) => q(rnr),
+ q(5825) => q(rnw),
+ q(5826) => q(rob),
+ q(5827) => q(roc),
+ q(5828) => q(rod),
+ q(5829) => q(roe),
+ q(5830) => q(rof),
+ q(5831) => q(rog),
+ q(5832) => q(rol),
+ q(5833) => q(roo),
+ q(5834) => q(rop),
+ q(5835) => q(ror),
+ q(5836) => q(rou),
+ q(5837) => q(row),
+ q(5838) => q(rpn),
+ q(5839) => q(rpt),
+ q(5840) => q(rri),
+ q(5841) => q(rro),
+ q(5842) => q(rrt),
+ q(5843) => q(rsb),
+ q(5844) => q(rsl),
+ q(5845) => q(rsm),
+ q(5846) => q(rtc),
+ q(5847) => q(rth),
+ q(5848) => q(rtm),
+ q(5849) => q(rts),
+ q(5850) => q(rtw),
+ q(5851) => q(rub),
+ q(5852) => q(ruc),
+ q(5853) => q(rue),
+ q(5854) => q(ruf),
+ q(5855) => q(rug),
+ q(5856) => q(ruh),
+ q(5857) => q(rui),
+ q(5858) => q(ruk),
+ q(5859) => q(ruo),
+ q(5860) => q(ruq),
+ q(5861) => q(rut),
+ q(5862) => q(ruu),
+ q(5863) => q(ruy),
+ q(5864) => q(ruz),
+ q(5865) => q(rwa),
+ q(5866) => q(rwk),
+ q(5867) => q(rwm),
+ q(5868) => q(rwo),
+ q(5869) => q(rwr),
+ q(5870) => q(rxd),
+ q(5871) => q(rxw),
+ q(5872) => q(ryn),
+ q(5873) => q(rys),
+ q(5874) => q(ryu),
+ q(5875) => q(rzh),
+ q(5876) => q(saa),
+ q(5877) => q(sab),
+ q(5878) => q(sac),
+ q(5879) => q(sae),
+ q(5880) => q(saf),
+ q(5881) => q(saj),
+ q(5882) => q(sak),
+ q(5883) => q(sao),
+ q(5884) => q(saq),
+ q(5885) => q(sar),
+ q(5886) => q(sau),
+ q(5887) => q(sav),
+ q(5888) => q(saw),
+ q(5889) => q(sax),
+ q(5890) => q(say),
+ q(5891) => q(saz),
+ q(5892) => q(sba),
+ q(5893) => q(sbb),
+ q(5894) => q(sbc),
+ q(5895) => q(sbd),
+ q(5896) => q(slc),
+ q(5897) => q(sbf),
+ q(5898) => q(sbg),
+ q(5899) => q(sbh),
+ q(5900) => q(sbi),
+ q(5901) => q(sbj),
+ q(5902) => q(sbk),
+ q(5903) => q(sbl),
+ q(5904) => q(sbm),
+ q(5905) => q(sbn),
+ q(5906) => q(sbo),
+ q(5907) => q(sbp),
+ q(5908) => q(sbq),
+ q(5909) => q(sbr),
+ q(5910) => q(sbs),
+ q(5911) => q(sbt),
+ q(5912) => q(sbu),
+ q(5913) => q(sbv),
+ q(5914) => q(sbw),
+ q(5915) => q(sbx),
+ q(5916) => q(sby),
+ q(5917) => q(sbz),
+ q(5918) => q(scb),
+ q(5919) => q(sce),
+ q(5920) => q(scf),
+ q(5921) => q(scg),
+ q(5922) => q(sch),
+ q(5923) => q(sci),
+ q(5924) => q(sck),
+ q(5925) => q(scl),
+ q(5926) => q(scp),
+ q(5927) => q(scq),
+ q(5928) => q(scs),
+ q(5929) => q(sct),
+ q(5930) => q(scu),
+ q(5931) => q(scv),
+ q(5932) => q(scw),
+ q(5933) => q(scx),
+ q(5934) => q(sda),
+ q(5935) => q(sdb),
+ q(5936) => q(sdc),
+ q(5937) => q(sde),
+ q(5938) => q(sdf),
+ q(5939) => q(sdg),
+ q(5940) => q(sdh),
+ q(5941) => q(sdj),
+ q(5942) => q(sdk),
+ q(5943) => q(sdl),
+ q(5944) => q(sdm),
+ q(5945) => q(sdn),
+ q(5946) => q(sdo),
+ q(5947) => q(sdp),
+ q(5948) => q(sdr),
+ q(5949) => q(sds),
+ q(5950) => q(sdt),
+ q(5951) => q(sdu),
+ q(5952) => q(sdx),
+ q(5953) => q(sdz),
+ q(5954) => q(sea),
+ q(5955) => q(seb),
+ q(5956) => q(sec),
+ q(5957) => q(sed),
+ q(5958) => q(see),
+ q(5959) => q(sef),
+ q(5960) => q(seg),
+ q(5961) => q(seh),
+ q(5962) => q(sei),
+ q(5963) => q(sej),
+ q(5964) => q(sek),
+ q(5965) => q(sen),
+ q(5966) => q(seo),
+ q(5967) => q(sep),
+ q(5968) => q(seq),
+ q(5969) => q(ser),
+ q(5970) => q(ses),
+ q(5971) => q(set),
+ q(5972) => q(seu),
+ q(5973) => q(sev),
+ q(5974) => q(sew),
+ q(5975) => q(sey),
+ q(5976) => q(sez),
+ q(5977) => q(sfb),
+ q(5978) => q(sfe),
+ q(5979) => q(sfm),
+ q(5980) => q(sfs),
+ q(5981) => q(sfw),
+ q(5982) => q(sgb),
+ q(5983) => q(sgc),
+ q(5984) => q(sgd),
+ q(5985) => q(sge),
+ q(5986) => q(sgg),
+ q(5987) => q(sgh),
+ q(5988) => q(sgi),
+ q(5989) => q(sgj),
+ q(5990) => q(sgk),
+ q(5991) => q(sgm),
+ q(5992) => q(sgp),
+ q(5993) => q(sgr),
+ q(5994) => q(sgs),
+ q(5995) => q(sgt),
+ q(5996) => q(sgu),
+ q(5997) => q(sgw),
+ q(5998) => q(sgx),
+ q(5999) => q(sgy),
+ q(6000) => q(sgz),
+ q(6001) => q(sha),
+ q(6002) => q(shb),
+ q(6003) => q(shc),
+ q(6004) => q(shd),
+ q(6005) => q(she),
+ q(6006) => q(shg),
+ q(6007) => q(shh),
+ q(6008) => q(shi),
+ q(6009) => q(shj),
+ q(6010) => q(shk),
+ q(6011) => q(shl),
+ q(6012) => q(shm),
+ q(6013) => q(sho),
+ q(6014) => q(shp),
+ q(6015) => q(shq),
+ q(6016) => q(shr),
+ q(6017) => q(shs),
+ q(6018) => q(sht),
+ q(6019) => q(shu),
+ q(6020) => q(shv),
+ q(6021) => q(shw),
+ q(6022) => q(shx),
+ q(6023) => q(shy),
+ q(6024) => q(shz),
+ q(6025) => q(sia),
+ q(6026) => q(sib),
+ q(6027) => q(sie),
+ q(6028) => q(sif),
+ q(6029) => q(sig),
+ q(6030) => q(sih),
+ q(6031) => q(sii),
+ q(6032) => q(sij),
+ q(6033) => q(sik),
+ q(6034) => q(sil),
+ q(6035) => q(sim),
+ q(6036) => q(sip),
+ q(6037) => q(siq),
+ q(6038) => q(sir),
+ q(6039) => q(sis),
+ q(6040) => q(siu),
+ q(6041) => q(siv),
+ q(6042) => q(siw),
+ q(6043) => q(six),
+ q(6044) => q(siy),
+ q(6045) => q(siz),
+ q(6046) => q(sja),
+ q(6047) => q(sjb),
+ q(6048) => q(sjd),
+ q(6049) => q(sje),
+ q(6050) => q(sjg),
+ q(6051) => q(sjk),
+ q(6052) => q(sjl),
+ q(6053) => q(sjm),
+ q(6054) => q(sjn),
+ q(6055) => q(sjo),
+ q(6056) => q(sjp),
+ q(6057) => q(sjr),
+ q(6058) => q(sjs),
+ q(6059) => q(sjt),
+ q(6060) => q(sju),
+ q(6061) => q(sjw),
+ q(6062) => q(ska),
+ q(6063) => q(skb),
+ q(6064) => q(skc),
+ q(6065) => q(skd),
+ q(6066) => q(ske),
+ q(6067) => q(skf),
+ q(6068) => q(skg),
+ q(6069) => q(skh),
+ q(6070) => q(ski),
+ q(6071) => q(skj),
+ q(6072) => q(skm),
+ q(6073) => q(skn),
+ q(6074) => q(sko),
+ q(6075) => q(skp),
+ q(6076) => q(skq),
+ q(6077) => q(skr),
+ q(6078) => q(sks),
+ q(6079) => q(skt),
+ q(6080) => q(sku),
+ q(6081) => q(skv),
+ q(6082) => q(skw),
+ q(6083) => q(skx),
+ q(6084) => q(sky),
+ q(6085) => q(skz),
+ q(6086) => q(sld),
+ q(6087) => q(sle),
+ q(6088) => q(slf),
+ q(6089) => q(slg),
+ q(6090) => q(slh),
+ q(6091) => q(sli),
+ q(6092) => q(slj),
+ q(6093) => q(sll),
+ q(6094) => q(slm),
+ q(6095) => q(sln),
+ q(6096) => q(slp),
+ q(6097) => q(slq),
+ q(6098) => q(slr),
+ q(6099) => q(sls),
+ q(6100) => q(slt),
+ q(6101) => q(slu),
+ q(6102) => q(slw),
+ q(6103) => q(slx),
+ q(6104) => q(sly),
+ q(6105) => q(slz),
+ q(6106) => q(smb),
+ q(6107) => q(smc),
+ q(6108) => q(smd),
+ q(6109) => q(smf),
+ q(6110) => q(smg),
+ q(6111) => q(smh),
+ q(6112) => q(smk),
+ q(6113) => q(sml),
+ q(6114) => q(smm),
+ q(6115) => q(smp),
+ q(6116) => q(smq),
+ q(6117) => q(smr),
+ q(6118) => q(smt),
+ q(6119) => q(smu),
+ q(6120) => q(smv),
+ q(6121) => q(smw),
+ q(6122) => q(smx),
+ q(6123) => q(smy),
+ q(6124) => q(smz),
+ q(6125) => q(snb),
+ q(6126) => q(snc),
+ q(6127) => q(sne),
+ q(6128) => q(snf),
+ q(6129) => q(sng),
+ q(6130) => q(sni),
+ q(6131) => q(snj),
+ q(6132) => q(snl),
+ q(6133) => q(snm),
+ q(6134) => q(snn),
+ q(6135) => q(sno),
+ q(6136) => q(snp),
+ q(6137) => q(snq),
+ q(6138) => q(snr),
+ q(6139) => q(sns),
+ q(6140) => q(snu),
+ q(6141) => q(snv),
+ q(6142) => q(snw),
+ q(6143) => q(snx),
+ q(6144) => q(sny),
+ q(6145) => q(snz),
+ q(6146) => q(soa),
+ q(6147) => q(sob),
+ q(6148) => q(soc),
+ q(6149) => q(sod),
+ q(6150) => q(soe),
+ q(6151) => q(soh),
+ q(6152) => q(soi),
+ q(6153) => q(soj),
+ q(6154) => q(sok),
+ q(6155) => q(sol),
+ q(6156) => q(soo),
+ q(6157) => q(sop),
+ q(6158) => q(soq),
+ q(6159) => q(sor),
+ q(6160) => q(sos),
+ q(6161) => q(sou),
+ q(6162) => q(sov),
+ q(6163) => q(sow),
+ q(6164) => q(sox),
+ q(6165) => q(soy),
+ q(6166) => q(soz),
+ q(6167) => q(spb),
+ q(6168) => q(spc),
+ q(6169) => q(spd),
+ q(6170) => q(spe),
+ q(6171) => q(spg),
+ q(6172) => q(spi),
+ q(6173) => q(spk),
+ q(6174) => q(spl),
+ q(6175) => q(spm),
+ q(6176) => q(spn),
+ q(6177) => q(spo),
+ q(6178) => q(spp),
+ q(6179) => q(spq),
+ q(6180) => q(spr),
+ q(6181) => q(sps),
+ q(6182) => q(spt),
+ q(6183) => q(spu),
+ q(6184) => q(spv),
+ q(6185) => q(spx),
+ q(6186) => q(spy),
+ q(6187) => q(sqa),
+ q(6188) => q(sqh),
+ q(6189) => q(sqk),
+ q(6190) => q(sqm),
+ q(6191) => q(sqn),
+ q(6192) => q(sqo),
+ q(6193) => q(sqq),
+ q(6194) => q(sqr),
+ q(6195) => q(sqs),
+ q(6196) => q(sqt),
+ q(6197) => q(squ),
+ q(6198) => q(sra),
+ q(6199) => q(srb),
+ q(6200) => q(src),
+ q(6201) => q(sre),
+ q(6202) => q(srf),
+ q(6203) => q(srg),
+ q(6204) => q(srh),
+ q(6205) => q(sri),
+ q(6206) => q(srk),
+ q(6207) => q(srl),
+ q(6208) => q(srm),
+ q(6209) => q(sro),
+ q(6210) => q(srq),
+ q(6211) => q(srs),
+ q(6212) => q(srt),
+ q(6213) => q(sru),
+ q(6214) => q(srv),
+ q(6215) => q(srw),
+ q(6216) => q(srx),
+ q(6217) => q(sry),
+ q(6218) => q(srz),
+ q(6219) => q(ssb),
+ q(6220) => q(ssc),
+ q(6221) => q(ssd),
+ q(6222) => q(sse),
+ q(6223) => q(ssf),
+ q(6224) => q(ssg),
+ q(6225) => q(ssh),
+ q(6226) => q(ssi),
+ q(6227) => q(ssj),
+ q(6228) => q(ssk),
+ q(6229) => q(ssl),
+ q(6230) => q(ssm),
+ q(6231) => q(ssn),
+ q(6232) => q(sso),
+ q(6233) => q(ssp),
+ q(6234) => q(ssq),
+ q(6235) => q(ssr),
+ q(6236) => q(sss),
+ q(6237) => q(sst),
+ q(6238) => q(ssu),
+ q(6239) => q(ssv),
+ q(6240) => q(ssx),
+ q(6241) => q(ssy),
+ q(6242) => q(ssz),
+ q(6243) => q(sta),
+ q(6244) => q(stb),
+ q(6245) => q(std),
+ q(6246) => q(ste),
+ q(6247) => q(stf),
+ q(6248) => q(stg),
+ q(6249) => q(sth),
+ q(6250) => q(sti),
+ q(6251) => q(stj),
+ q(6252) => q(stk),
+ q(6253) => q(stl),
+ q(6254) => q(stm),
+ q(6255) => q(stn),
+ q(6256) => q(sto),
+ q(6257) => q(stp),
+ q(6258) => q(stq),
+ q(6259) => q(str),
+ q(6260) => q(sts),
+ q(6261) => q(stt),
+ q(6262) => q(stu),
+ q(6263) => q(stv),
+ q(6264) => q(stw),
+ q(6265) => q(sty),
+ q(6266) => q(sua),
+ q(6267) => q(sub),
+ q(6268) => q(suc),
+ q(6269) => q(sue),
+ q(6270) => q(sug),
+ q(6271) => q(sui),
+ q(6272) => q(suj),
+ q(6273) => q(suq),
+ q(6274) => q(sur),
+ q(6275) => q(sut),
+ q(6276) => q(suv),
+ q(6277) => q(suw),
+ q(6278) => q(suy),
+ q(6279) => q(suz),
+ q(6280) => q(sva),
+ q(6281) => q(svb),
+ q(6282) => q(svc),
+ q(6283) => q(sve),
+ q(6284) => q(svk),
+ q(6285) => q(svm),
+ q(6286) => q(svs),
+ q(6287) => q(svx),
+ q(6288) => q(swb),
+ q(6289) => q(swc),
+ q(6290) => q(swf),
+ q(6291) => q(swg),
+ q(6292) => q(swh),
+ q(6293) => q(swi),
+ q(6294) => q(swj),
+ q(6295) => q(swk),
+ q(6296) => q(swl),
+ q(6297) => q(swm),
+ q(6298) => q(swn),
+ q(6299) => q(swo),
+ q(6300) => q(swp),
+ q(6301) => q(swq),
+ q(6302) => q(swr),
+ q(6303) => q(sws),
+ q(6304) => q(swt),
+ q(6305) => q(swu),
+ q(6306) => q(swv),
+ q(6307) => q(sww),
+ q(6308) => q(swx),
+ q(6309) => q(swy),
+ q(6310) => q(sxb),
+ q(6311) => q(sxc),
+ q(6312) => q(sxe),
+ q(6313) => q(sxg),
+ q(6314) => q(sxk),
+ q(6315) => q(sxl),
+ q(6316) => q(sxm),
+ q(6317) => q(sxn),
+ q(6318) => q(sxo),
+ q(6319) => q(sxr),
+ q(6320) => q(sxs),
+ q(6321) => q(sxu),
+ q(6322) => q(sxw),
+ q(6323) => q(sya),
+ q(6324) => q(syb),
+ q(6325) => q(syi),
+ q(6326) => q(syk),
+ q(6327) => q(syl),
+ q(6328) => q(sym),
+ q(6329) => q(syn),
+ q(6330) => q(syo),
+ q(6331) => q(sys),
+ q(6332) => q(syw),
+ q(6333) => q(syx),
+ q(6334) => q(syy),
+ q(6335) => q(sza),
+ q(6336) => q(szb),
+ q(6337) => q(szc),
+ q(6338) => q(szd),
+ q(6339) => q(sze),
+ q(6340) => q(szg),
+ q(6341) => q(szl),
+ q(6342) => q(szn),
+ q(6343) => q(szp),
+ q(6344) => q(szs),
+ q(6345) => q(szv),
+ q(6346) => q(szw),
+ q(6347) => q(taa),
+ q(6348) => q(tab),
+ q(6349) => q(tac),
+ q(6350) => q(tad),
+ q(6351) => q(tae),
+ q(6352) => q(taf),
+ q(6353) => q(tag),
+ q(6354) => q(taj),
+ q(6355) => q(tak),
+ q(6356) => q(tal),
+ q(6357) => q(tan),
+ q(6358) => q(tao),
+ q(6359) => q(tap),
+ q(6360) => q(taq),
+ q(6361) => q(tar),
+ q(6362) => q(tas),
+ q(6363) => q(tau),
+ q(6364) => q(tav),
+ q(6365) => q(taw),
+ q(6366) => q(tax),
+ q(6367) => q(tay),
+ q(6368) => q(taz),
+ q(6369) => q(tba),
+ q(6370) => q(tbb),
+ q(6371) => q(tbc),
+ q(6372) => q(tbd),
+ q(6373) => q(tbe),
+ q(6374) => q(tbf),
+ q(6375) => q(tbg),
+ q(6376) => q(tbh),
+ q(6377) => q(tbi),
+ q(6378) => q(tbj),
+ q(6379) => q(tbk),
+ q(6380) => q(tbl),
+ q(6381) => q(tbm),
+ q(6382) => q(tbn),
+ q(6383) => q(tbo),
+ q(6384) => q(tbp),
+ q(6385) => q(tbr),
+ q(6386) => q(tbs),
+ q(6387) => q(tbt),
+ q(6388) => q(tbu),
+ q(6389) => q(tbv),
+ q(6390) => q(tbw),
+ q(6391) => q(tbx),
+ q(6392) => q(tby),
+ q(6393) => q(tbz),
+ q(6394) => q(tca),
+ q(6395) => q(tcb),
+ q(6396) => q(tcc),
+ q(6397) => q(tcd),
+ q(6398) => q(tce),
+ q(6399) => q(tcf),
+ q(6400) => q(tcg),
+ q(6401) => q(tch),
+ q(6402) => q(wbf),
+ q(6403) => q(tck),
+ q(6404) => q(tcl),
+ q(6405) => q(tcm),
+ q(6406) => q(tcn),
+ q(6407) => q(tco),
+ q(6408) => q(tcp),
+ q(6409) => q(tcq),
+ q(6410) => q(tcs),
+ q(6411) => q(tct),
+ q(6412) => q(tcu),
+ q(6413) => q(tcw),
+ q(6414) => q(tcx),
+ q(6415) => q(tcy),
+ q(6416) => q(tcz),
+ q(6417) => q(tda),
+ q(6418) => q(tdb),
+ q(6419) => q(tdc),
+ q(6420) => q(tdd),
+ q(6421) => q(tde),
+ q(6422) => q(tdf),
+ q(6423) => q(tdg),
+ q(6424) => q(tdh),
+ q(6425) => q(tdi),
+ q(6426) => q(tdj),
+ q(6427) => q(tdk),
+ q(6428) => q(tdl),
+ q(6429) => q(tdm),
+ q(6430) => q(tdn),
+ q(6431) => q(tdo),
+ q(6432) => q(tdq),
+ q(6433) => q(tdr),
+ q(6434) => q(tds),
+ q(6435) => q(tdt),
+ q(6436) => q(tdv),
+ q(6437) => q(tdx),
+ q(6438) => q(tdy),
+ q(6439) => q(tea),
+ q(6440) => q(teb),
+ q(6441) => q(tec),
+ q(6442) => q(ted),
+ q(6443) => q(tee),
+ q(6444) => q(tef),
+ q(6445) => q(teg),
+ q(6446) => q(teh),
+ q(6447) => q(tei),
+ q(6448) => q(tek),
+ q(6449) => q(ten),
+ q(6450) => q(teo),
+ q(6451) => q(tep),
+ q(6452) => q(teq),
+ q(6453) => q(tes),
+ q(6454) => q(teu),
+ q(6455) => q(tev),
+ q(6456) => q(tew),
+ q(6457) => q(tex),
+ q(6458) => q(tey),
+ q(6459) => q(tfi),
+ q(6460) => q(tfn),
+ q(6461) => q(tfo),
+ q(6462) => q(tfr),
+ q(6463) => q(tft),
+ q(6464) => q(tga),
+ q(6465) => q(tgb),
+ q(6466) => q(tgc),
+ q(6467) => q(tgd),
+ q(6468) => q(tge),
+ q(6469) => q(tgf),
+ q(6470) => q(tgh),
+ q(6471) => q(tgi),
+ q(6472) => q(tgj),
+ q(6473) => q(tgn),
+ q(6474) => q(tgo),
+ q(6475) => q(tgp),
+ q(6476) => q(tgq),
+ q(6477) => q(tgr),
+ q(6478) => q(tgs),
+ q(6479) => q(tgt),
+ q(6480) => q(tgu),
+ q(6481) => q(tgv),
+ q(6482) => q(tgw),
+ q(6483) => q(tgx),
+ q(6484) => q(tgy),
+ q(6485) => q(tgz),
+ q(6486) => q(thd),
+ q(6487) => q(the),
+ q(6488) => q(thf),
+ q(6489) => q(thh),
+ q(6490) => q(thi),
+ q(6491) => q(thk),
+ q(6492) => q(thl),
+ q(6493) => q(thm),
+ q(6494) => q(thn),
+ q(6495) => q(thp),
+ q(6496) => q(thq),
+ q(6497) => q(thr),
+ q(6498) => q(ths),
+ q(6499) => q(tht),
+ q(6500) => q(thu),
+ q(6501) => q(thv),
+ q(6502) => q(thw),
+ q(6503) => q(thy),
+ q(6504) => q(thz),
+ q(6505) => q(tia),
+ q(6506) => q(tic),
+ q(6507) => q(tif),
+ q(6508) => q(tih),
+ q(6509) => q(tii),
+ q(6510) => q(tij),
+ q(6511) => q(tik),
+ q(6512) => q(til),
+ q(6513) => q(tim),
+ q(6514) => q(tin),
+ q(6515) => q(tio),
+ q(6516) => q(tip),
+ q(6517) => q(tiq),
+ q(6518) => q(tis),
+ q(6519) => q(tit),
+ q(6520) => q(tiu),
+ q(6521) => q(tiw),
+ q(6522) => q(tix),
+ q(6523) => q(tiy),
+ q(6524) => q(tiz),
+ q(6525) => q(tja),
+ q(6526) => q(tjg),
+ q(6527) => q(tji),
+ q(6528) => q(tjl),
+ q(6529) => q(tjm),
+ q(6530) => q(tjn),
+ q(6531) => q(tjo),
+ q(6532) => q(tjs),
+ q(6533) => q(tju),
+ q(6534) => q(tjw),
+ q(6535) => q(tka),
+ q(6536) => q(tkb),
+ q(6537) => q(tkd),
+ q(6538) => q(tke),
+ q(6539) => q(tkf),
+ q(6540) => q(tkg),
+ q(6541) => q(tkm),
+ q(6542) => q(tkn),
+ q(6543) => q(tkp),
+ q(6544) => q(tkq),
+ q(6545) => q(tkr),
+ q(6546) => q(tks),
+ q(6547) => q(tkt),
+ q(6548) => q(tku),
+ q(6549) => q(tkv),
+ q(6550) => q(tkw),
+ q(6551) => q(tkx),
+ q(6552) => q(tkz),
+ q(6553) => q(tla),
+ q(6554) => q(tlb),
+ q(6555) => q(tlc),
+ q(6556) => q(tld),
+ q(6557) => q(tlf),
+ q(6558) => q(tlg),
+ q(6559) => q(tlj),
+ q(6560) => q(tlk),
+ q(6561) => q(tll),
+ q(6562) => q(tlm),
+ q(6563) => q(tln),
+ q(6564) => q(tlo),
+ q(6565) => q(tlp),
+ q(6566) => q(tlq),
+ q(6567) => q(tlr),
+ q(6568) => q(tls),
+ q(6569) => q(tlt),
+ q(6570) => q(tlu),
+ q(6571) => q(tlv),
+ q(6572) => q(tlx),
+ q(6573) => q(tly),
+ q(6574) => q(tma),
+ q(6575) => q(tmb),
+ q(6576) => q(tmc),
+ q(6577) => q(tmd),
+ q(6578) => q(tme),
+ q(6579) => q(tmf),
+ q(6580) => q(tmg),
+ q(6581) => q(tmi),
+ q(6582) => q(tmj),
+ q(6583) => q(tmk),
+ q(6584) => q(tml),
+ q(6585) => q(tmm),
+ q(6586) => q(tmn),
+ q(6587) => q(tmo),
+ q(6588) => q(tmq),
+ q(6589) => q(tmr),
+ q(6590) => q(tms),
+ q(6591) => q(tmt),
+ q(6592) => q(tmu),
+ q(6593) => q(tmv),
+ q(6594) => q(tmw),
+ q(6595) => q(tmy),
+ q(6596) => q(tmz),
+ q(6597) => q(tna),
+ q(6598) => q(tnb),
+ q(6599) => q(tnc),
+ q(6600) => q(tnd),
+ q(6601) => q(tng),
+ q(6602) => q(tnh),
+ q(6603) => q(tni),
+ q(6604) => q(tnk),
+ q(6605) => q(tnl),
+ q(6606) => q(tnm),
+ q(6607) => q(tnn),
+ q(6608) => q(tno),
+ q(6609) => q(tnp),
+ q(6610) => q(tnq),
+ q(6611) => q(tnr),
+ q(6612) => q(tns),
+ q(6613) => q(tnt),
+ q(6614) => q(tnu),
+ q(6615) => q(tnv),
+ q(6616) => q(tnw),
+ q(6617) => q(tnx),
+ q(6618) => q(tny),
+ q(6619) => q(tnz),
+ q(6620) => q(tob),
+ q(6621) => q(toc),
+ q(6622) => q(tod),
+ q(6623) => q(tof),
+ q(6624) => q(toh),
+ q(6625) => q(toi),
+ q(6626) => q(toj),
+ q(6627) => q(tol),
+ q(6628) => q(tom),
+ q(6629) => q(too),
+ q(6630) => q(top),
+ q(6631) => q(toq),
+ q(6632) => q(tor),
+ q(6633) => q(tos),
+ q(6634) => q(tou),
+ q(6635) => q(tov),
+ q(6636) => q(tow),
+ q(6637) => q(tox),
+ q(6638) => q(toy),
+ q(6639) => q(toz),
+ q(6640) => q(tpa),
+ q(6641) => q(tpc),
+ q(6642) => q(tpe),
+ q(6643) => q(tpf),
+ q(6644) => q(tpg),
+ q(6645) => q(tpj),
+ q(6646) => q(tpk),
+ q(6647) => q(tpl),
+ q(6648) => q(tpm),
+ q(6649) => q(tpn),
+ q(6650) => q(tpo),
+ q(6651) => q(tpp),
+ q(6652) => q(tpq),
+ q(6653) => q(tpr),
+ q(6654) => q(tpt),
+ q(6655) => q(tpu),
+ q(6656) => q(tpv),
+ q(6657) => q(tpw),
+ q(6658) => q(tpx),
+ q(6659) => q(tpy),
+ q(6660) => q(tpz),
+ q(6661) => q(tqb),
+ q(6662) => q(tql),
+ q(6663) => q(tqm),
+ q(6664) => q(tqn),
+ q(6665) => q(tqo),
+ q(6666) => q(tqp),
+ q(6667) => q(tqq),
+ q(6668) => q(tqr),
+ q(6669) => q(tqt),
+ q(6670) => q(tqu),
+ q(6671) => q(tqw),
+ q(6672) => q(tra),
+ q(6673) => q(trb),
+ q(6674) => q(trc),
+ q(6675) => q(trd),
+ q(6676) => q(tre),
+ q(6677) => q(trf),
+ q(6678) => q(trg),
+ q(6679) => q(trh),
+ q(6680) => q(tri),
+ q(6681) => q(trj),
+ q(6682) => q(trl),
+ q(6683) => q(trm),
+ q(6684) => q(trn),
+ q(6685) => q(tro),
+ q(6686) => q(trp),
+ q(6687) => q(trq),
+ q(6688) => q(trr),
+ q(6689) => q(trs),
+ q(6690) => q(trt),
+ q(6691) => q(tru),
+ q(6692) => q(trv),
+ q(6693) => q(trw),
+ q(6694) => q(trx),
+ q(6695) => q(try),
+ q(6696) => q(trz),
+ q(6697) => q(tsa),
+ q(6698) => q(tsb),
+ q(6699) => q(tsc),
+ q(6700) => q(tsd),
+ q(6701) => q(tse),
+ q(6702) => q(tsg),
+ q(6703) => q(tsh),
+ q(6704) => q(tsj),
+ q(6705) => q(tsk),
+ q(6706) => q(tsl),
+ q(6707) => q(tsm),
+ q(6708) => q(tsp),
+ q(6709) => q(tsq),
+ q(6710) => q(tsr),
+ q(6711) => q(tss),
+ q(6712) => q(tst),
+ q(6713) => q(tsu),
+ q(6714) => q(tsv),
+ q(6715) => q(tsw),
+ q(6716) => q(tsx),
+ q(6717) => q(tsy),
+ q(6718) => q(tsz),
+ q(6719) => q(tta),
+ q(6720) => q(ttb),
+ q(6721) => q(ttc),
+ q(6722) => q(ttd),
+ q(6723) => q(tte),
+ q(6724) => q(ttf),
+ q(6725) => q(ttg),
+ q(6726) => q(tth),
+ q(6727) => q(tti),
+ q(6728) => q(ttj),
+ q(6729) => q(ttk),
+ q(6730) => q(ttl),
+ q(6731) => q(ttm),
+ q(6732) => q(ttn),
+ q(6733) => q(tto),
+ q(6734) => q(ttp),
+ q(6735) => q(ttq),
+ q(6736) => q(ttr),
+ q(6737) => q(tts),
+ q(6738) => q(ttt),
+ q(6739) => q(ttu),
+ q(6740) => q(ttv),
+ q(6741) => q(ttw),
+ q(6742) => q(tty),
+ q(6743) => q(ttz),
+ q(6744) => q(tua),
+ q(6745) => q(tub),
+ q(6746) => q(tuc),
+ q(6747) => q(tud),
+ q(6748) => q(tue),
+ q(6749) => q(tuf),
+ q(6750) => q(tug),
+ q(6751) => q(tuh),
+ q(6752) => q(tui),
+ q(6753) => q(tuj),
+ q(6754) => q(tul),
+ q(6755) => q(tun),
+ q(6756) => q(tuo),
+ q(6757) => q(tuq),
+ q(6758) => q(tus),
+ q(6759) => q(tuu),
+ q(6760) => q(tuv),
+ q(6761) => q(tux),
+ q(6762) => q(tuy),
+ q(6763) => q(tuz),
+ q(6764) => q(tva),
+ q(6765) => q(tvd),
+ q(6766) => q(tve),
+ q(6767) => q(tvk),
+ q(6768) => q(tvm),
+ q(6769) => q(tvn),
+ q(6770) => q(tvo),
+ q(6771) => q(tvs),
+ q(6772) => q(tvt),
+ q(6773) => q(tvu),
+ q(6774) => q(tvw),
+ q(6775) => q(tvy),
+ q(6776) => q(twa),
+ q(6777) => q(twb),
+ q(6778) => q(twc),
+ q(6779) => q(twd),
+ q(6780) => q(twe),
+ q(6781) => q(twf),
+ q(6782) => q(twg),
+ q(6783) => q(twh),
+ q(6784) => q(twl),
+ q(6785) => q(twm),
+ q(6786) => q(twn),
+ q(6787) => q(two),
+ q(6788) => q(twp),
+ q(6789) => q(twq),
+ q(6790) => q(twr),
+ q(6791) => q(twt),
+ q(6792) => q(twu),
+ q(6793) => q(tww),
+ q(6794) => q(twx),
+ q(6795) => q(twy),
+ q(6796) => q(txa),
+ q(6797) => q(txb),
+ q(6798) => q(txc),
+ q(6799) => q(txe),
+ q(6800) => q(txg),
+ q(6801) => q(txh),
+ q(6802) => q(txi),
+ q(6803) => q(txj),
+ q(6804) => q(txm),
+ q(6805) => q(txn),
+ q(6806) => q(txo),
+ q(6807) => q(txq),
+ q(6808) => q(txr),
+ q(6809) => q(txs),
+ q(6810) => q(txt),
+ q(6811) => q(txu),
+ q(6812) => q(txx),
+ q(6813) => q(txy),
+ q(6814) => q(tya),
+ q(6815) => q(tye),
+ q(6816) => q(tyh),
+ q(6817) => q(tyi),
+ q(6818) => q(tyj),
+ q(6819) => q(tyl),
+ q(6820) => q(tyn),
+ q(6821) => q(typ),
+ q(6822) => q(tyr),
+ q(6823) => q(tys),
+ q(6824) => q(tyt),
+ q(6825) => q(tyu),
+ q(6826) => q(tyx),
+ q(6827) => q(tyz),
+ q(6828) => q(tza),
+ q(6829) => q(tzh),
+ q(6830) => q(tzj),
+ q(6831) => q(tzl),
+ q(6832) => q(tzm),
+ q(6833) => q(tzn),
+ q(6834) => q(tzo),
+ q(6835) => q(tzx),
+ q(6836) => q(uam),
+ q(6837) => q(uan),
+ q(6838) => q(uar),
+ q(6839) => q(uba),
+ q(6840) => q(ubi),
+ q(6841) => q(ubl),
+ q(6842) => q(ubr),
+ q(6843) => q(ubu),
+ q(6844) => q(uby),
+ q(6845) => q(uda),
+ q(6846) => q(ude),
+ q(6847) => q(udg),
+ q(6848) => q(udi),
+ q(6849) => q(udj),
+ q(6850) => q(udl),
+ q(6851) => q(udu),
+ q(6852) => q(ues),
+ q(6853) => q(ufi),
+ q(6854) => q(ugb),
+ q(6855) => q(uge),
+ q(6856) => q(ugn),
+ q(6857) => q(ugo),
+ q(6858) => q(ugy),
+ q(6859) => q(uha),
+ q(6860) => q(uhn),
+ q(6861) => q(uis),
+ q(6862) => q(uiv),
+ q(6863) => q(uji),
+ q(6864) => q(uka),
+ q(6865) => q(ukg),
+ q(6866) => q(ukh),
+ q(6867) => q(ukk),
+ q(6868) => q(ukl),
+ q(6869) => q(ukp),
+ q(6870) => q(ukq),
+ q(6871) => q(uks),
+ q(6872) => q(uku),
+ q(6873) => q(ukw),
+ q(6874) => q(uky),
+ q(6875) => q(ula),
+ q(6876) => q(ulb),
+ q(6877) => q(ulc),
+ q(6878) => q(ule),
+ q(6879) => q(ulf),
+ q(6880) => q(uli),
+ q(6881) => q(ulk),
+ q(6882) => q(ull),
+ q(6883) => q(ulm),
+ q(6884) => q(uln),
+ q(6885) => q(ulu),
+ q(6886) => q(ulw),
+ q(6887) => q(uma),
+ q(6888) => q(umc),
+ q(6889) => q(umd),
+ q(6890) => q(umg),
+ q(6891) => q(umi),
+ q(6892) => q(umm),
+ q(6893) => q(umn),
+ q(6894) => q(umo),
+ q(6895) => q(ump),
+ q(6896) => q(umr),
+ q(6897) => q(ums),
+ q(6898) => q(umu),
+ q(6899) => q(una),
+ q(6900) => q(une),
+ q(6901) => q(ung),
+ q(6902) => q(unk),
+ q(6903) => q(unm),
+ q(6904) => q(unn),
+ q(6905) => q(unr),
+ q(6906) => q(unu),
+ q(6907) => q(unx),
+ q(6908) => q(unz),
+ q(6909) => q(upi),
+ q(6910) => q(upv),
+ q(6911) => q(ura),
+ q(6912) => q(urb),
+ q(6913) => q(urc),
+ q(6914) => q(ure),
+ q(6915) => q(urf),
+ q(6916) => q(urg),
+ q(6917) => q(urh),
+ q(6918) => q(uri),
+ q(6919) => q(urk),
+ q(6920) => q(url),
+ q(6921) => q(urm),
+ q(6922) => q(urn),
+ q(6923) => q(uro),
+ q(6924) => q(urp),
+ q(6925) => q(urr),
+ q(6926) => q(urt),
+ q(6927) => q(uru),
+ q(6928) => q(urv),
+ q(6929) => q(urw),
+ q(6930) => q(urx),
+ q(6931) => q(ury),
+ q(6932) => q(urz),
+ q(6933) => q(usa),
+ q(6934) => q(ush),
+ q(6935) => q(usi),
+ q(6936) => q(usk),
+ q(6937) => q(usp),
+ q(6938) => q(usu),
+ q(6939) => q(uta),
+ q(6940) => q(ute),
+ q(6941) => q(utp),
+ q(6942) => q(utr),
+ q(6943) => q(utu),
+ q(6944) => q(uum),
+ q(6945) => q(uun),
+ q(6946) => q(uur),
+ q(6947) => q(uuu),
+ q(6948) => q(uve),
+ q(6949) => q(uvh),
+ q(6950) => q(uvl),
+ q(6951) => q(uwa),
+ q(6952) => q(uya),
+ q(6953) => q(uzn),
+ q(6954) => q(uzs),
+ q(6955) => q(vaa),
+ q(6956) => q(vae),
+ q(6957) => q(vaf),
+ q(6958) => q(vag),
+ q(6959) => q(vah),
+ q(6960) => q(vaj),
+ q(6961) => q(val),
+ q(6962) => q(vam),
+ q(6963) => q(van),
+ q(6964) => q(vao),
+ q(6965) => q(vap),
+ q(6966) => q(var),
+ q(6967) => q(vas),
+ q(6968) => q(vau),
+ q(6969) => q(vav),
+ q(6970) => q(vay),
+ q(6971) => q(vbb),
+ q(6972) => q(vbk),
+ q(6973) => q(vec),
+ q(6974) => q(ved),
+ q(6975) => q(vel),
+ q(6976) => q(vem),
+ q(6977) => q(veo),
+ q(6978) => q(vep),
+ q(6979) => q(ver),
+ q(6980) => q(vgr),
+ q(6981) => q(vgt),
+ q(6982) => q(vic),
+ q(6983) => q(vid),
+ q(6984) => q(vif),
+ q(6985) => q(vig),
+ q(6986) => q(vil),
+ q(6987) => q(vin),
+ q(6988) => q(vis),
+ q(6989) => q(vit),
+ q(6990) => q(viv),
+ q(6991) => q(vka),
+ q(6992) => q(vki),
+ q(6993) => q(vkj),
+ q(6994) => q(vkk),
+ q(6995) => q(vkl),
+ q(6996) => q(vkm),
+ q(6997) => q(vko),
+ q(6998) => q(vkp),
+ q(6999) => q(vkt),
+ q(7000) => q(vku),
+ q(7001) => q(vlp),
+ q(7002) => q(vls),
+ q(7003) => q(vma),
+ q(7004) => q(vmb),
+ q(7005) => q(vmc),
+ q(7006) => q(vmd),
+ q(7007) => q(vme),
+ q(7008) => q(vmf),
+ q(7009) => q(vmg),
+ q(7010) => q(vmh),
+ q(7011) => q(vmi),
+ q(7012) => q(vmj),
+ q(7013) => q(vmk),
+ q(7014) => q(vml),
+ q(7015) => q(vmm),
+ q(7016) => q(vmp),
+ q(7017) => q(vmq),
+ q(7018) => q(vmr),
+ q(7019) => q(vms),
+ q(7020) => q(vmu),
+ q(7021) => q(vmv),
+ q(7022) => q(vmw),
+ q(7023) => q(vmx),
+ q(7024) => q(vmy),
+ q(7025) => q(vmz),
+ q(7026) => q(vnk),
+ q(7027) => q(vnm),
+ q(7028) => q(vnp),
+ q(7029) => q(vro),
+ q(7030) => q(vra),
+ q(7031) => q(vrs),
+ q(7032) => q(vrt),
+ q(7033) => q(vsi),
+ q(7034) => q(vsl),
+ q(7035) => q(vsv),
+ q(7036) => q(vto),
+ q(7037) => q(vum),
+ q(7038) => q(vun),
+ q(7039) => q(vut),
+ q(7040) => q(vwa),
+ q(7041) => q(waa),
+ q(7042) => q(wab),
+ q(7043) => q(wac),
+ q(7044) => q(wad),
+ q(7045) => q(wae),
+ q(7046) => q(waf),
+ q(7047) => q(wag),
+ q(7048) => q(wah),
+ q(7049) => q(wai),
+ q(7050) => q(waj),
+ q(7051) => q(wam),
+ q(7052) => q(wan),
+ q(7053) => q(wao),
+ q(7054) => q(wap),
+ q(7055) => q(waq),
+ q(7056) => q(wat),
+ q(7057) => q(wau),
+ q(7058) => q(wav),
+ q(7059) => q(waw),
+ q(7060) => q(wax),
+ q(7061) => q(way),
+ q(7062) => q(waz),
+ q(7063) => q(wba),
+ q(7064) => q(wbb),
+ q(7065) => q(wbe),
+ q(7066) => q(wbh),
+ q(7067) => q(wbi),
+ q(7068) => q(wbj),
+ q(7069) => q(wbk),
+ q(7070) => q(wbl),
+ q(7071) => q(wbm),
+ q(7072) => q(wbp),
+ q(7073) => q(wbq),
+ q(7074) => q(wbr),
+ q(7075) => q(wbs),
+ q(7076) => q(wbt),
+ q(7077) => q(wbv),
+ q(7078) => q(wbw),
+ q(7079) => q(wca),
+ q(7080) => q(wci),
+ q(7081) => q(wdd),
+ q(7082) => q(wdg),
+ q(7083) => q(wdj),
+ q(7084) => q(wdk),
+ q(7085) => q(wdu),
+ q(7086) => q(wdy),
+ q(7087) => q(wea),
+ q(7088) => q(wec),
+ q(7089) => q(wed),
+ q(7090) => q(weg),
+ q(7091) => q(weh),
+ q(7092) => q(wei),
+ q(7093) => q(wem),
+ q(7094) => q(weo),
+ q(7095) => q(wep),
+ q(7096) => q(wer),
+ q(7097) => q(wes),
+ q(7098) => q(wet),
+ q(7099) => q(weu),
+ q(7100) => q(wew),
+ q(7101) => q(wfg),
+ q(7102) => q(wga),
+ q(7103) => q(wgb),
+ q(7104) => q(wgg),
+ q(7105) => q(wgi),
+ q(7106) => q(wgo),
+ q(7107) => q(wgu),
+ q(7108) => q(wgy),
+ q(7109) => q(wha),
+ q(7110) => q(whg),
+ q(7111) => q(whk),
+ q(7112) => q(whu),
+ q(7113) => q(wib),
+ q(7114) => q(wic),
+ q(7115) => q(wie),
+ q(7116) => q(wif),
+ q(7117) => q(wig),
+ q(7118) => q(wih),
+ q(7119) => q(wii),
+ q(7120) => q(wij),
+ q(7121) => q(wik),
+ q(7122) => q(wil),
+ q(7123) => q(wim),
+ q(7124) => q(win),
+ q(7125) => q(wir),
+ q(7126) => q(wiu),
+ q(7127) => q(wiv),
+ q(7128) => q(wiy),
+ q(7129) => q(wja),
+ q(7130) => q(wji),
+ q(7131) => q(wka),
+ q(7132) => q(wkb),
+ q(7133) => q(wkd),
+ q(7134) => q(wkl),
+ q(7135) => q(wku),
+ q(7136) => q(wkw),
+ q(7137) => q(wky),
+ q(7138) => q(wla),
+ q(7139) => q(wlc),
+ q(7140) => q(wle),
+ q(7141) => q(wlg),
+ q(7142) => q(wli),
+ q(7143) => q(wlk),
+ q(7144) => q(wll),
+ q(7145) => q(wlm),
+ q(7146) => q(wlo),
+ q(7147) => q(wlr),
+ q(7148) => q(wls),
+ q(7149) => q(wlu),
+ q(7150) => q(wlv),
+ q(7151) => q(wlw),
+ q(7152) => q(wlx),
+ q(7153) => q(wly),
+ q(7154) => q(wma),
+ q(7155) => q(wmb),
+ q(7156) => q(wmc),
+ q(7157) => q(wmd),
+ q(7158) => q(wme),
+ q(7159) => q(wmh),
+ q(7160) => q(wmi),
+ q(7161) => q(wmm),
+ q(7162) => q(wmn),
+ q(7163) => q(wmo),
+ q(7164) => q(wms),
+ q(7165) => q(wmt),
+ q(7166) => q(wmw),
+ q(7167) => q(wmx),
+ q(7168) => q(wnb),
+ q(7169) => q(wnc),
+ q(7170) => q(wnd),
+ q(7171) => q(wne),
+ q(7172) => q(wng),
+ q(7173) => q(wni),
+ q(7174) => q(wnk),
+ q(7175) => q(wnm),
+ q(7176) => q(wnn),
+ q(7177) => q(wno),
+ q(7178) => q(wnp),
+ q(7179) => q(wnu),
+ q(7180) => q(wnw),
+ q(7181) => q(wny),
+ q(7182) => q(woa),
+ q(7183) => q(wob),
+ q(7184) => q(woc),
+ q(7185) => q(wod),
+ q(7186) => q(woe),
+ q(7187) => q(wof),
+ q(7188) => q(wog),
+ q(7189) => q(woi),
+ q(7190) => q(wok),
+ q(7191) => q(wom),
+ q(7192) => q(won),
+ q(7193) => q(woo),
+ q(7194) => q(wor),
+ q(7195) => q(wos),
+ q(7196) => q(wow),
+ q(7197) => q(woy),
+ q(7198) => q(wpc),
+ q(7199) => q(wra),
+ q(7200) => q(wrb),
+ q(7201) => q(wrd),
+ q(7202) => q(wrg),
+ q(7203) => q(wrh),
+ q(7204) => q(wri),
+ q(7205) => q(wrk),
+ q(7206) => q(wrl),
+ q(7207) => q(wrm),
+ q(7208) => q(wrn),
+ q(7209) => q(wro),
+ q(7210) => q(wrp),
+ q(7211) => q(wrr),
+ q(7212) => q(wrs),
+ q(7213) => q(wru),
+ q(7214) => q(wrv),
+ q(7215) => q(wrw),
+ q(7216) => q(wrx),
+ q(7217) => q(wry),
+ q(7218) => q(wrz),
+ q(7219) => q(wsa),
+ q(7220) => q(wsg),
+ q(7221) => q(wsi),
+ q(7222) => q(wsk),
+ q(7223) => q(wsr),
+ q(7224) => q(wss),
+ q(7225) => q(wsu),
+ q(7226) => q(wsv),
+ q(7227) => q(wtf),
+ q(7228) => q(wth),
+ q(7229) => q(wti),
+ q(7230) => q(wtk),
+ q(7231) => q(wtm),
+ q(7232) => q(wtw),
+ q(7233) => q(wua),
+ q(7234) => q(wub),
+ q(7235) => q(wud),
+ q(7236) => q(wuh),
+ q(7237) => q(wul),
+ q(7238) => q(wum),
+ q(7239) => q(wun),
+ q(7240) => q(wur),
+ q(7241) => q(wut),
+ q(7242) => q(wuu),
+ q(7243) => q(wuv),
+ q(7244) => q(wux),
+ q(7245) => q(wuy),
+ q(7246) => q(wwa),
+ q(7247) => q(wwb),
+ q(7248) => q(wwo),
+ q(7249) => q(wwr),
+ q(7250) => q(www),
+ q(7251) => q(wxa),
+ q(7252) => q(wxw),
+ q(7253) => q(wya),
+ q(7254) => q(wyb),
+ q(7255) => q(wyi),
+ q(7256) => q(wym),
+ q(7257) => q(wyr),
+ q(7258) => q(wyy),
+ q(7259) => q(xaa),
+ q(7260) => q(xab),
+ q(7261) => q(xac),
+ q(7262) => q(xad),
+ q(7263) => q(xae),
+ q(7264) => q(xag),
+ q(7265) => q(xai),
+ q(7266) => q(xaj),
+ q(7267) => q(xak),
+ q(7268) => q(xam),
+ q(7269) => q(xan),
+ q(7270) => q(xao),
+ q(7271) => q(xap),
+ q(7272) => q(xaq),
+ q(7273) => q(xar),
+ q(7274) => q(xas),
+ q(7275) => q(xat),
+ q(7276) => q(xau),
+ q(7277) => q(xav),
+ q(7278) => q(xaw),
+ q(7279) => q(xay),
+ q(7280) => q(xbb),
+ q(7281) => q(xbc),
+ q(7282) => q(xbd),
+ q(7283) => q(xbe),
+ q(7284) => q(xbg),
+ q(7285) => q(xbi),
+ q(7286) => q(xbj),
+ q(7287) => q(xbm),
+ q(7288) => q(xbn),
+ q(7289) => q(xbo),
+ q(7290) => q(xbp),
+ q(7291) => q(xbr),
+ q(7292) => q(xbw),
+ q(7293) => q(xby),
+ q(7294) => q(xcb),
+ q(7295) => q(xcc),
+ q(7296) => q(xce),
+ q(7297) => q(xcg),
+ q(7298) => q(xch),
+ q(7299) => q(xcl),
+ q(7300) => q(xcm),
+ q(7301) => q(xcn),
+ q(7302) => q(xco),
+ q(7303) => q(xcr),
+ q(7304) => q(xct),
+ q(7305) => q(xcu),
+ q(7306) => q(xcv),
+ q(7307) => q(xcw),
+ q(7308) => q(xcy),
+ q(7309) => q(xda),
+ q(7310) => q(xdc),
+ q(7311) => q(xdk),
+ q(7312) => q(xdm),
+ q(7313) => q(xdo),
+ q(7314) => q(xdy),
+ q(7315) => q(xeb),
+ q(7316) => q(xed),
+ q(7317) => q(xeg),
+ q(7318) => q(xel),
+ q(7319) => q(xem),
+ q(7320) => q(xep),
+ q(7321) => q(xer),
+ q(7322) => q(xes),
+ q(7323) => q(xet),
+ q(7324) => q(xeu),
+ q(7325) => q(xfa),
+ q(7326) => q(xga),
+ q(7327) => q(xgb),
+ q(7328) => q(xgd),
+ q(7329) => q(xgf),
+ q(7330) => q(xgg),
+ q(7331) => q(xgi),
+ q(7332) => q(xgl),
+ q(7333) => q(xgm),
+ q(7334) => q(xgr),
+ q(7335) => q(xgu),
+ q(7336) => q(xgw),
+ q(7337) => q(xha),
+ q(7338) => q(xhc),
+ q(7339) => q(xhd),
+ q(7340) => q(xhe),
+ q(7341) => q(xhr),
+ q(7342) => q(xht),
+ q(7343) => q(xhu),
+ q(7344) => q(xhv),
+ q(7345) => q(xib),
+ q(7346) => q(xii),
+ q(7347) => q(xil),
+ q(7348) => q(xin),
+ q(7349) => q(xir),
+ q(7350) => q(xis),
+ q(7351) => q(xiv),
+ q(7352) => q(xiy),
+ q(7353) => q(xjb),
+ q(7354) => q(xjt),
+ q(7355) => q(xka),
+ q(7356) => q(xkb),
+ q(7357) => q(xkc),
+ q(7358) => q(xkd),
+ q(7359) => q(xke),
+ q(7360) => q(xkf),
+ q(7361) => q(xkg),
+ q(7362) => q(xki),
+ q(7363) => q(xkj),
+ q(7364) => q(xkk),
+ q(7365) => q(xkl),
+ q(7366) => q(xkn),
+ q(7367) => q(xko),
+ q(7368) => q(xkp),
+ q(7369) => q(xkq),
+ q(7370) => q(xkr),
+ q(7371) => q(xks),
+ q(7372) => q(xkt),
+ q(7373) => q(xku),
+ q(7374) => q(xkv),
+ q(7375) => q(xkw),
+ q(7376) => q(xkx),
+ q(7377) => q(xky),
+ q(7378) => q(xkz),
+ q(7379) => q(xla),
+ q(7380) => q(xlb),
+ q(7381) => q(xlc),
+ q(7382) => q(xld),
+ q(7383) => q(xle),
+ q(7384) => q(xlg),
+ q(7385) => q(xli),
+ q(7386) => q(xln),
+ q(7387) => q(xlo),
+ q(7388) => q(xlp),
+ q(7389) => q(xls),
+ q(7390) => q(xlu),
+ q(7391) => q(xly),
+ q(7392) => q(xma),
+ q(7393) => q(xmb),
+ q(7394) => q(xmc),
+ q(7395) => q(xmd),
+ q(7396) => q(xme),
+ q(7397) => q(xmf),
+ q(7398) => q(xmg),
+ q(7399) => q(xmh),
+ q(7400) => q(xmj),
+ q(7401) => q(xmk),
+ q(7402) => q(xml),
+ q(7403) => q(xmm),
+ q(7404) => q(xmn),
+ q(7405) => q(xmo),
+ q(7406) => q(xmp),
+ q(7407) => q(xmq),
+ q(7408) => q(xmr),
+ q(7409) => q(xms),
+ q(7410) => q(xmt),
+ q(7411) => q(xmu),
+ q(7412) => q(xmv),
+ q(7413) => q(xmw),
+ q(7414) => q(xmx),
+ q(7415) => q(xmy),
+ q(7416) => q(xmz),
+ q(7417) => q(xna),
+ q(7418) => q(xnb),
+ q(7419) => q(xng),
+ q(7420) => q(xnh),
+ q(7421) => q(xni),
+ q(7422) => q(xnk),
+ q(7423) => q(xnn),
+ q(7424) => q(xno),
+ q(7425) => q(xnr),
+ q(7426) => q(xns),
+ q(7427) => q(xnt),
+ q(7428) => q(xnu),
+ q(7429) => q(xny),
+ q(7430) => q(xnz),
+ q(7431) => q(xoc),
+ q(7432) => q(xod),
+ q(7433) => q(xog),
+ q(7434) => q(xoi),
+ q(7435) => q(xok),
+ q(7436) => q(xom),
+ q(7437) => q(xon),
+ q(7438) => q(xoo),
+ q(7439) => q(xop),
+ q(7440) => q(xor),
+ q(7441) => q(xow),
+ q(7442) => q(xpa),
+ q(7443) => q(xpc),
+ q(7444) => q(xpe),
+ q(7445) => q(xpg),
+ q(7446) => q(xpi),
+ q(7447) => q(xpj),
+ q(7448) => q(xpk),
+ q(7449) => q(xpm),
+ q(7450) => q(xpn),
+ q(7451) => q(xpo),
+ q(7452) => q(xpp),
+ q(7453) => q(xpq),
+ q(7454) => q(xpr),
+ q(7455) => q(xps),
+ q(7456) => q(xpt),
+ q(7457) => q(xpu),
+ q(7458) => q(xpy),
+ q(7459) => q(xqa),
+ q(7460) => q(xqt),
+ q(7461) => q(xra),
+ q(7462) => q(xrb),
+ q(7463) => q(xrd),
+ q(7464) => q(xre),
+ q(7465) => q(xrg),
+ q(7466) => q(xri),
+ q(7467) => q(xrm),
+ q(7468) => q(xrn),
+ q(7469) => q(xrq),
+ q(7470) => q(xrr),
+ q(7471) => q(xrt),
+ q(7472) => q(xru),
+ q(7473) => q(xrw),
+ q(7474) => q(xsa),
+ q(7475) => q(xsb),
+ q(7476) => q(xsc),
+ q(7477) => q(xsd),
+ q(7478) => q(xse),
+ q(7479) => q(xsh),
+ q(7480) => q(xsi),
+ q(7481) => q(xsl),
+ q(7482) => q(xsm),
+ q(7483) => q(xsn),
+ q(7484) => q(xso),
+ q(7485) => q(xsp),
+ q(7486) => q(xsq),
+ q(7487) => q(xsr),
+ q(7488) => q(xss),
+ q(7489) => q(xsu),
+ q(7490) => q(xsv),
+ q(7491) => q(xsy),
+ q(7492) => q(xta),
+ q(7493) => q(xtb),
+ q(7494) => q(xtc),
+ q(7495) => q(xtd),
+ q(7496) => q(xte),
+ q(7497) => q(xtg),
+ q(7498) => q(xth),
+ q(7499) => q(xti),
+ q(7500) => q(xtj),
+ q(7501) => q(xtl),
+ q(7502) => q(xtm),
+ q(7503) => q(xtn),
+ q(7504) => q(xto),
+ q(7505) => q(xtp),
+ q(7506) => q(xtq),
+ q(7507) => q(xtr),
+ q(7508) => q(xts),
+ q(7509) => q(xtt),
+ q(7510) => q(xtu),
+ q(7511) => q(xtv),
+ q(7512) => q(xtw),
+ q(7513) => q(xty),
+ q(7514) => q(xtz),
+ q(7515) => q(xua),
+ q(7516) => q(xub),
+ q(7517) => q(xud),
+ q(7518) => q(xug),
+ q(7519) => q(xuj),
+ q(7520) => q(xul),
+ q(7521) => q(xum),
+ q(7522) => q(xun),
+ q(7523) => q(xuo),
+ q(7524) => q(xup),
+ q(7525) => q(xur),
+ q(7526) => q(xut),
+ q(7527) => q(xuu),
+ q(7528) => q(xve),
+ q(7529) => q(xvi),
+ q(7530) => q(xvn),
+ q(7531) => q(xvo),
+ q(7532) => q(xvs),
+ q(7533) => q(xwa),
+ q(7534) => q(xwc),
+ q(7535) => q(xwd),
+ q(7536) => q(xwe),
+ q(7537) => q(xwg),
+ q(7538) => q(xwj),
+ q(7539) => q(xwk),
+ q(7540) => q(xwl),
+ q(7541) => q(xwo),
+ q(7542) => q(xwr),
+ q(7543) => q(xwt),
+ q(7544) => q(xww),
+ q(7545) => q(xxb),
+ q(7546) => q(xxk),
+ q(7547) => q(xxm),
+ q(7548) => q(xxr),
+ q(7549) => q(xxt),
+ q(7550) => q(xya),
+ q(7551) => q(xyb),
+ q(7552) => q(xyj),
+ q(7553) => q(xyk),
+ q(7554) => q(xyl),
+ q(7555) => q(xyt),
+ q(7556) => q(xyy),
+ q(7557) => q(xzh),
+ q(7558) => q(xzm),
+ q(7559) => q(xzp),
+ q(7560) => q(yaa),
+ q(7561) => q(yab),
+ q(7562) => q(yac),
+ q(7563) => q(yad),
+ q(7564) => q(yae),
+ q(7565) => q(yaf),
+ q(7566) => q(yag),
+ q(7567) => q(yah),
+ q(7568) => q(yai),
+ q(7569) => q(yaj),
+ q(7570) => q(yak),
+ q(7571) => q(yal),
+ q(7572) => q(yam),
+ q(7573) => q(yan),
+ q(7574) => q(yaq),
+ q(7575) => q(yar),
+ q(7576) => q(yas),
+ q(7577) => q(yat),
+ q(7578) => q(yau),
+ q(7579) => q(yav),
+ q(7580) => q(yaw),
+ q(7581) => q(yax),
+ q(7582) => q(yay),
+ q(7583) => q(yaz),
+ q(7584) => q(yba),
+ q(7585) => q(ybb),
+ q(7586) => q(ybe),
+ q(7587) => q(ybh),
+ q(7588) => q(ybi),
+ q(7589) => q(ybj),
+ q(7590) => q(ybk),
+ q(7591) => q(ybl),
+ q(7592) => q(ybm),
+ q(7593) => q(ybn),
+ q(7594) => q(ybo),
+ q(7595) => q(ybx),
+ q(7596) => q(yby),
+ q(7597) => q(ych),
+ q(7598) => q(ycl),
+ q(7599) => q(ycn),
+ q(7600) => q(ycp),
+ q(7601) => q(yda),
+ q(7602) => q(ydd),
+ q(7603) => q(yde),
+ q(7604) => q(ydg),
+ q(7605) => q(ydk),
+ q(7606) => q(yea),
+ q(7607) => q(yec),
+ q(7608) => q(yee),
+ q(7609) => q(yei),
+ q(7610) => q(yej),
+ q(7611) => q(yel),
+ q(7612) => q(yer),
+ q(7613) => q(yes),
+ q(7614) => q(yet),
+ q(7615) => q(yeu),
+ q(7616) => q(yev),
+ q(7617) => q(yey),
+ q(7618) => q(yga),
+ q(7619) => q(ygi),
+ q(7620) => q(ygl),
+ q(7621) => q(ygm),
+ q(7622) => q(ygp),
+ q(7623) => q(ygr),
+ q(7624) => q(ygs),
+ q(7625) => q(ygu),
+ q(7626) => q(ygw),
+ q(7627) => q(yha),
+ q(7628) => q(yhd),
+ q(7629) => q(yhl),
+ q(7630) => q(yhs),
+ q(7631) => q(yia),
+ q(7632) => q(yig),
+ q(7633) => q(yih),
+ q(7634) => q(yii),
+ q(7635) => q(yij),
+ q(7636) => q(yik),
+ q(7637) => q(yil),
+ q(7638) => q(yim),
+ q(7639) => q(yin),
+ q(7640) => q(yip),
+ q(7641) => q(yiq),
+ q(7642) => q(yir),
+ q(7643) => q(yis),
+ q(7644) => q(yit),
+ q(7645) => q(yiu),
+ q(7646) => q(yiv),
+ q(7647) => q(yix),
+ q(7648) => q(yiz),
+ q(7649) => q(yka),
+ q(7650) => q(ykg),
+ q(7651) => q(yki),
+ q(7652) => q(ykk),
+ q(7653) => q(ykl),
+ q(7654) => q(ykm),
+ q(7655) => q(ykn),
+ q(7656) => q(yko),
+ q(7657) => q(ykr),
+ q(7658) => q(ykt),
+ q(7659) => q(yku),
+ q(7660) => q(yky),
+ q(7661) => q(yla),
+ q(7662) => q(ylb),
+ q(7663) => q(yle),
+ q(7664) => q(ylg),
+ q(7665) => q(yli),
+ q(7666) => q(yll),
+ q(7667) => q(ylm),
+ q(7668) => q(yln),
+ q(7669) => q(ylo),
+ q(7670) => q(ylr),
+ q(7671) => q(ylu),
+ q(7672) => q(yly),
+ q(7673) => q(ymb),
+ q(7674) => q(ymc),
+ q(7675) => q(ymd),
+ q(7676) => q(yme),
+ q(7677) => q(ymg),
+ q(7678) => q(ymh),
+ q(7679) => q(ymi),
+ q(7680) => q(ymk),
+ q(7681) => q(yml),
+ q(7682) => q(ymm),
+ q(7683) => q(ymn),
+ q(7684) => q(ymo),
+ q(7685) => q(ymp),
+ q(7686) => q(ymq),
+ q(7687) => q(ymr),
+ q(7688) => q(yms),
+ q(7689) => q(ymx),
+ q(7690) => q(ymz),
+ q(7691) => q(yna),
+ q(7692) => q(ynd),
+ q(7693) => q(yne),
+ q(7694) => q(yng),
+ q(7695) => q(ynk),
+ q(7696) => q(ynl),
+ q(7697) => q(ynn),
+ q(7698) => q(yno),
+ q(7699) => q(ynq),
+ q(7700) => q(yns),
+ q(7701) => q(ynu),
+ q(7702) => q(yob),
+ q(7703) => q(yog),
+ q(7704) => q(yoi),
+ q(7705) => q(yok),
+ q(7706) => q(yol),
+ q(7707) => q(yom),
+ q(7708) => q(yon),
+ q(7709) => q(yot),
+ q(7710) => q(yox),
+ q(7711) => q(yoy),
+ q(7712) => q(ypa),
+ q(7713) => q(ypb),
+ q(7714) => q(ypg),
+ q(7715) => q(yph),
+ q(7716) => q(ypm),
+ q(7717) => q(ypn),
+ q(7718) => q(ypo),
+ q(7719) => q(ypp),
+ q(7720) => q(ypz),
+ q(7721) => q(yra),
+ q(7722) => q(yrb),
+ q(7723) => q(yre),
+ q(7724) => q(yrk),
+ q(7725) => q(yrl),
+ q(7726) => q(yrm),
+ q(7727) => q(yrn),
+ q(7728) => q(yro),
+ q(7729) => q(yrs),
+ q(7730) => q(yrw),
+ q(7731) => q(yry),
+ q(7732) => q(ysc),
+ q(7733) => q(ysd),
+ q(7734) => q(ysg),
+ q(7735) => q(ysl),
+ q(7736) => q(ysn),
+ q(7737) => q(yso),
+ q(7738) => q(ysp),
+ q(7739) => q(ysr),
+ q(7740) => q(yss),
+ q(7741) => q(ysy),
+ q(7742) => q(yta),
+ q(7743) => q(ytl),
+ q(7744) => q(ytp),
+ q(7745) => q(ytw),
+ q(7746) => q(yty),
+ q(7747) => q(yua),
+ q(7748) => q(yub),
+ q(7749) => q(yuc),
+ q(7750) => q(yud),
+ q(7751) => q(yue),
+ q(7752) => q(yuf),
+ q(7753) => q(yug),
+ q(7754) => q(yui),
+ q(7755) => q(yuj),
+ q(7756) => q(yuk),
+ q(7757) => q(yul),
+ q(7758) => q(yum),
+ q(7759) => q(yun),
+ q(7760) => q(yup),
+ q(7761) => q(yuq),
+ q(7762) => q(yur),
+ q(7763) => q(yut),
+ q(7764) => q(yuw),
+ q(7765) => q(yux),
+ q(7766) => q(yuy),
+ q(7767) => q(yuz),
+ q(7768) => q(yva),
+ q(7769) => q(yvt),
+ q(7770) => q(ywa),
+ q(7771) => q(ywg),
+ q(7772) => q(ywl),
+ q(7773) => q(ywn),
+ q(7774) => q(ywq),
+ q(7775) => q(ywr),
+ q(7776) => q(ywt),
+ q(7777) => q(ywu),
+ q(7778) => q(yww),
+ q(7779) => q(yxa),
+ q(7780) => q(yxg),
+ q(7781) => q(yxl),
+ q(7782) => q(yxm),
+ q(7783) => q(yxu),
+ q(7784) => q(yxy),
+ q(7785) => q(yyr),
+ q(7786) => q(yyu),
+ q(7787) => q(yyz),
+ q(7788) => q(yzg),
+ q(7789) => q(yzk),
+ q(7790) => q(zaa),
+ q(7791) => q(zab),
+ q(7792) => q(zac),
+ q(7793) => q(zad),
+ q(7794) => q(zae),
+ q(7795) => q(zaf),
+ q(7796) => q(zag),
+ q(7797) => q(zah),
+ q(7798) => q(zai),
+ q(7799) => q(zaj),
+ q(7800) => q(zak),
+ q(7801) => q(zal),
+ q(7802) => q(zam),
+ q(7803) => q(zao),
+ q(7804) => q(zaq),
+ q(7805) => q(zar),
+ q(7806) => q(zas),
+ q(7807) => q(zat),
+ q(7808) => q(zau),
+ q(7809) => q(zav),
+ q(7810) => q(zaw),
+ q(7811) => q(zax),
+ q(7812) => q(zay),
+ q(7813) => q(zaz),
+ q(7814) => q(zbc),
+ q(7815) => q(zbe),
+ q(7816) => q(zbt),
+ q(7817) => q(zbw),
+ q(7818) => q(zca),
+ q(7819) => q(zch),
+ q(7820) => q(zdj),
+ q(7821) => q(zea),
+ q(7822) => q(zeg),
+ q(7823) => q(zeh),
+ q(7824) => q(zga),
+ q(7825) => q(zgb),
+ q(7826) => q(zgm),
+ q(7827) => q(zgn),
+ q(7828) => q(zgr),
+ q(7829) => q(zhb),
+ q(7830) => q(zhd),
+ q(7831) => q(zhi),
+ q(7832) => q(zhn),
+ q(7833) => q(zhw),
+ q(7834) => q(zia),
+ q(7835) => q(zib),
+ q(7836) => q(zik),
+ q(7837) => q(zil),
+ q(7838) => q(zim),
+ q(7839) => q(zin),
+ q(7840) => q(zir),
+ q(7841) => q(ziw),
+ q(7842) => q(ziz),
+ q(7843) => q(zka),
+ q(7844) => q(zkb),
+ q(7845) => q(zkd),
+ q(7846) => q(zkg),
+ q(7847) => q(zkh),
+ q(7848) => q(zkk),
+ q(7849) => q(zkn),
+ q(7850) => q(zko),
+ q(7851) => q(zkp),
+ q(7852) => q(zkr),
+ q(7853) => q(zkt),
+ q(7854) => q(zku),
+ q(7855) => q(zkv),
+ q(7856) => q(zkz),
+ q(7857) => q(zlj),
+ q(7858) => q(zlm),
+ q(7859) => q(zln),
+ q(7860) => q(zlq),
+ q(7861) => q(zma),
+ q(7862) => q(zmb),
+ q(7863) => q(zmc),
+ q(7864) => q(zmd),
+ q(7865) => q(zme),
+ q(7866) => q(zmf),
+ q(7867) => q(zmg),
+ q(7868) => q(zmh),
+ q(7869) => q(zmi),
+ q(7870) => q(zmj),
+ q(7871) => q(zmk),
+ q(7872) => q(zml),
+ q(7873) => q(zmm),
+ q(7874) => q(zmn),
+ q(7875) => q(zmo),
+ q(7876) => q(zmp),
+ q(7877) => q(zmq),
+ q(7878) => q(zmr),
+ q(7879) => q(zms),
+ q(7880) => q(zmt),
+ q(7881) => q(zmu),
+ q(7882) => q(zmv),
+ q(7883) => q(zmw),
+ q(7884) => q(zmx),
+ q(7885) => q(zmy),
+ q(7886) => q(zmz),
+ q(7887) => q(zna),
+ q(7888) => q(zne),
+ q(7889) => q(zng),
+ q(7890) => q(znk),
+ q(7891) => q(zns),
+ q(7892) => q(zoc),
+ q(7893) => q(zoh),
+ q(7894) => q(zom),
+ q(7895) => q(zoo),
+ q(7896) => q(zoq),
+ q(7897) => q(zor),
+ q(7898) => q(zos),
+ q(7899) => q(zpa),
+ q(7900) => q(zpb),
+ q(7901) => q(zpc),
+ q(7902) => q(zpd),
+ q(7903) => q(zpe),
+ q(7904) => q(zpf),
+ q(7905) => q(zpg),
+ q(7906) => q(zph),
+ q(7907) => q(zpi),
+ q(7908) => q(zpj),
+ q(7909) => q(zpk),
+ q(7910) => q(zpl),
+ q(7911) => q(zpm),
+ q(7912) => q(zpn),
+ q(7913) => q(zpo),
+ q(7914) => q(zpp),
+ q(7915) => q(zpq),
+ q(7916) => q(zpr),
+ q(7917) => q(zps),
+ q(7918) => q(zpt),
+ q(7919) => q(zpu),
+ q(7920) => q(zpv),
+ q(7921) => q(zpw),
+ q(7922) => q(zpx),
+ q(7923) => q(zpy),
+ q(7924) => q(zpz),
+ q(7925) => q(zqe),
+ q(7926) => q(zra),
+ q(7927) => q(zrg),
+ q(7928) => q(zrn),
+ q(7929) => q(zro),
+ q(7930) => q(zrp),
+ q(7931) => q(zrs),
+ q(7932) => q(zsa),
+ q(7933) => q(zsk),
+ q(7934) => q(zsl),
+ q(7935) => q(zsm),
+ q(7936) => q(zsr),
+ q(7937) => q(zsu),
+ q(7938) => q(zte),
+ q(7939) => q(ztg),
+ q(7940) => q(ztl),
+ q(7941) => q(ztm),
+ q(7942) => q(ztn),
+ q(7943) => q(ztp),
+ q(7944) => q(ztq),
+ q(7945) => q(zts),
+ q(7946) => q(ztt),
+ q(7947) => q(ztu),
+ q(7948) => q(ztx),
+ q(7949) => q(zty),
+ q(7950) => q(zua),
+ q(7951) => q(zuh),
+ q(7952) => q(zum),
+ q(7953) => q(zuy),
+ q(7954) => q(zwa),
+ q(7955) => q(zyb),
+ q(7956) => q(zyg),
+ q(7957) => q(zyj),
+ q(7958) => q(zyn),
+ q(7959) => q(zyp),
+ q(7960) => q(zzj),
},
q(term) => {
q(0001) => q(aar),
@@ -100418,403 +100356,404 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
q(0087) => q(chv),
q(0088) => q(chy),
q(0089) => q(cmc),
- q(0090) => q(cop),
- q(0091) => q(cor),
- q(0092) => q(cos),
- q(0093) => q(cpe),
- q(0094) => q(cpf),
- q(0095) => q(cpp),
- q(0096) => q(cre),
- q(0097) => q(crh),
- q(0098) => q(crp),
- q(0099) => q(csb),
- q(0100) => q(cus),
- q(0101) => q(ces),
- q(0102) => q(dak),
- q(0103) => q(dan),
- q(0104) => q(dar),
- q(0105) => q(day),
- q(0106) => q(del),
- q(0107) => q(den),
- q(0108) => q(dgr),
- q(0109) => q(din),
- q(0110) => q(div),
- q(0111) => q(doi),
- q(0112) => q(dra),
- q(0113) => q(dsb),
- q(0114) => q(dua),
- q(0115) => q(dum),
- q(0116) => q(nld),
- q(0117) => q(dyu),
- q(0118) => q(dzo),
- q(0119) => q(efi),
- q(0120) => q(egy),
- q(0121) => q(eka),
- q(0122) => q(elx),
- q(0123) => q(eng),
- q(0124) => q(enm),
- q(0125) => q(epo),
- q(0126) => q(est),
- q(0127) => q(ewe),
- q(0128) => q(ewo),
- q(0129) => q(fan),
- q(0130) => q(fao),
- q(0131) => q(fat),
- q(0132) => q(fij),
- q(0133) => q(fil),
- q(0134) => q(fin),
- q(0135) => q(fiu),
- q(0136) => q(fon),
- q(0137) => q(fra),
- q(0138) => q(frm),
- q(0139) => q(fro),
- q(0140) => q(frr),
- q(0141) => q(frs),
- q(0142) => q(fry),
- q(0143) => q(ful),
- q(0144) => q(fur),
- q(0145) => q(gaa),
- q(0146) => q(gay),
- q(0147) => q(gba),
- q(0148) => q(gem),
- q(0149) => q(kat),
- q(0150) => q(deu),
- q(0151) => q(gez),
- q(0152) => q(gil),
- q(0153) => q(gla),
- q(0154) => q(gle),
- q(0155) => q(glg),
- q(0156) => q(glv),
- q(0157) => q(gmh),
- q(0158) => q(goh),
- q(0159) => q(gon),
- q(0160) => q(gor),
- q(0161) => q(got),
- q(0162) => q(grb),
- q(0163) => q(grc),
- q(0164) => q(ell),
- q(0165) => q(grn),
- q(0166) => q(gsw),
- q(0167) => q(guj),
- q(0168) => q(gwi),
- q(0169) => q(hai),
- q(0170) => q(hat),
- q(0171) => q(hau),
- q(0172) => q(haw),
- q(0173) => q(heb),
- q(0174) => q(her),
- q(0175) => q(hil),
- q(0176) => q(him),
- q(0177) => q(hin),
- q(0178) => q(hit),
- q(0179) => q(hmn),
- q(0180) => q(hmo),
- q(0181) => q(hrv),
- q(0182) => q(hsb),
- q(0183) => q(hun),
- q(0184) => q(hup),
- q(0185) => q(iba),
- q(0186) => q(ibo),
- q(0187) => q(isl),
- q(0188) => q(ido),
- q(0189) => q(iii),
- q(0190) => q(ijo),
- q(0191) => q(iku),
- q(0192) => q(ile),
- q(0193) => q(ilo),
- q(0194) => q(ina),
- q(0195) => q(inc),
- q(0196) => q(ind),
- q(0197) => q(ine),
- q(0198) => q(inh),
- q(0199) => q(ipk),
- q(0200) => q(ira),
- q(0201) => q(iro),
- q(0202) => q(ita),
- q(0203) => q(jav),
- q(0204) => q(jbo),
- q(0205) => q(jpn),
- q(0206) => q(jpr),
- q(0207) => q(jrb),
- q(0208) => q(kaa),
- q(0209) => q(kab),
- q(0210) => q(kac),
- q(0211) => q(kal),
- q(0212) => q(kam),
- q(0213) => q(kan),
- q(0214) => q(kar),
- q(0215) => q(kas),
- q(0216) => q(kau),
- q(0217) => q(kaw),
- q(0218) => q(kaz),
- q(0219) => q(kbd),
- q(0220) => q(kha),
- q(0221) => q(khi),
- q(0222) => q(khm),
- q(0223) => q(kho),
- q(0224) => q(kik),
- q(0225) => q(kin),
- q(0226) => q(kir),
- q(0227) => q(kmb),
- q(0228) => q(kok),
- q(0229) => q(kom),
- q(0230) => q(kon),
- q(0231) => q(kor),
- q(0232) => q(kos),
- q(0233) => q(kpe),
- q(0234) => q(krc),
- q(0235) => q(krl),
- q(0236) => q(kro),
- q(0237) => q(kru),
- q(0238) => q(kua),
- q(0239) => q(kum),
- q(0240) => q(kur),
- q(0241) => q(kut),
- q(0242) => q(lad),
- q(0243) => q(lah),
- q(0244) => q(lam),
- q(0245) => q(lao),
- q(0246) => q(lat),
- q(0247) => q(lav),
- q(0248) => q(lez),
- q(0249) => q(lim),
- q(0250) => q(lin),
- q(0251) => q(lit),
- q(0252) => q(lol),
- q(0253) => q(loz),
- q(0254) => q(ltz),
- q(0255) => q(lua),
- q(0256) => q(lub),
- q(0257) => q(lug),
- q(0258) => q(lui),
- q(0259) => q(lun),
- q(0260) => q(luo),
- q(0261) => q(lus),
- q(0262) => q(mkd),
- q(0263) => q(mad),
- q(0264) => q(mag),
- q(0265) => q(mah),
- q(0266) => q(mai),
- q(0267) => q(mak),
- q(0268) => q(mal),
- q(0269) => q(man),
- q(0270) => q(mri),
- q(0271) => q(map),
- q(0272) => q(mar),
- q(0273) => q(mas),
- q(0274) => q(msa),
- q(0275) => q(mdf),
- q(0276) => q(mdr),
- q(0277) => q(men),
- q(0278) => q(mga),
- q(0279) => q(mic),
- q(0280) => q(min),
- q(0281) => q(mis),
- q(0282) => q(mkh),
- q(0283) => q(mlg),
- q(0284) => q(mlt),
- q(0285) => q(mnc),
- q(0286) => q(mni),
- q(0287) => q(mno),
- q(0288) => q(moh),
- q(0289) => q(mon),
- q(0290) => q(mos),
- q(0291) => q(mul),
- q(0292) => q(mun),
- q(0293) => q(mus),
- q(0294) => q(mwl),
- q(0295) => q(mwr),
- q(0296) => q(myn),
- q(0297) => q(myv),
- q(0298) => q(nah),
- q(0299) => q(nai),
- q(0300) => q(nap),
- q(0301) => q(nau),
- q(0302) => q(nav),
- q(0303) => q(nbl),
- q(0304) => q(nde),
- q(0305) => q(ndo),
- q(0306) => q(nds),
- q(0307) => q(nep),
- q(0308) => q(new),
- q(0309) => q(nia),
- q(0310) => q(nic),
- q(0311) => q(niu),
- q(0312) => q(nno),
- q(0313) => q(nob),
- q(0314) => q(nog),
- q(0315) => q(non),
- q(0316) => q(nor),
- q(0317) => q(nqo),
- q(0318) => q(nso),
- q(0319) => q(nub),
- q(0320) => q(nwc),
- q(0321) => q(nya),
- q(0322) => q(nym),
- q(0323) => q(nyn),
- q(0324) => q(nyo),
- q(0325) => q(nzi),
- q(0326) => q(oci),
- q(0327) => q(oji),
- q(0328) => q(ori),
- q(0329) => q(orm),
- q(0330) => q(osa),
- q(0331) => q(oss),
- q(0332) => q(ota),
- q(0333) => q(oto),
- q(0334) => q(paa),
- q(0335) => q(pag),
- q(0336) => q(pal),
- q(0337) => q(pam),
- q(0338) => q(pan),
- q(0339) => q(pap),
- q(0340) => q(pau),
- q(0341) => q(peo),
- q(0342) => q(fas),
- q(0343) => q(phi),
- q(0344) => q(phn),
- q(0345) => q(pli),
- q(0346) => q(pol),
- q(0347) => q(pon),
- q(0348) => q(por),
- q(0349) => q(pra),
- q(0350) => q(pro),
- q(0351) => q(pus),
- q(0352) => q(qtz),
- q(0353) => q(que),
- q(0354) => q(raj),
- q(0355) => q(rap),
- q(0356) => q(rar),
- q(0357) => q(roa),
- q(0358) => q(roh),
- q(0359) => q(rom),
- q(0360) => q(ron),
- q(0361) => q(run),
- q(0362) => q(rup),
- q(0363) => q(rus),
- q(0364) => q(sad),
- q(0365) => q(sag),
- q(0366) => q(sah),
- q(0367) => q(sai),
- q(0368) => q(sal),
- q(0369) => q(sam),
- q(0370) => q(san),
- q(0371) => q(sas),
- q(0372) => q(sat),
- q(0373) => q(scn),
- q(0374) => q(sco),
- q(0375) => q(sel),
- q(0376) => q(sem),
- q(0377) => q(sga),
- q(0378) => q(sgn),
- q(0379) => q(shn),
- q(0380) => q(sid),
- q(0381) => q(sin),
- q(0382) => q(sio),
- q(0383) => q(sit),
- q(0384) => q(sla),
- q(0385) => q(slk),
- q(0386) => q(slv),
- q(0387) => q(sma),
- q(0388) => q(sme),
- q(0389) => q(smi),
- q(0390) => q(smj),
- q(0391) => q(smn),
- q(0392) => q(smo),
- q(0393) => q(sms),
- q(0394) => q(sna),
- q(0395) => q(snd),
- q(0396) => q(snk),
- q(0397) => q(sog),
- q(0398) => q(som),
- q(0399) => q(son),
- q(0400) => q(sot),
- q(0401) => q(spa),
- q(0402) => q(srd),
- q(0403) => q(srn),
- q(0404) => q(srp),
- q(0405) => q(srr),
- q(0406) => q(ssa),
- q(0407) => q(ssw),
- q(0408) => q(suk),
- q(0409) => q(sun),
- q(0410) => q(sus),
- q(0411) => q(sux),
- q(0412) => q(swa),
- q(0413) => q(swe),
- q(0414) => q(syc),
- q(0415) => q(syr),
- q(0416) => q(tah),
- q(0417) => q(tai),
- q(0418) => q(tam),
- q(0419) => q(tat),
- q(0420) => q(tel),
- q(0421) => q(tem),
- q(0422) => q(ter),
- q(0423) => q(tet),
- q(0424) => q(tgk),
- q(0425) => q(tgl),
- q(0426) => q(tha),
- q(0427) => q(bod),
- q(0428) => q(tig),
- q(0429) => q(tir),
- q(0430) => q(tiv),
- q(0431) => q(tkl),
- q(0432) => q(tlh),
- q(0433) => q(tli),
- q(0434) => q(tmh),
- q(0435) => q(tog),
- q(0436) => q(ton),
- q(0437) => q(tpi),
- q(0438) => q(tsi),
- q(0439) => q(tsn),
- q(0440) => q(tso),
- q(0441) => q(tuk),
- q(0442) => q(tum),
- q(0443) => q(tup),
- q(0444) => q(tur),
- q(0445) => q(tut),
- q(0446) => q(tvl),
- q(0447) => q(twi),
- q(0448) => q(tyv),
- q(0449) => q(udm),
- q(0450) => q(uga),
- q(0451) => q(uig),
- q(0452) => q(ukr),
- q(0453) => q(umb),
- q(0454) => q(und),
- q(0455) => q(urd),
- q(0456) => q(uzb),
- q(0457) => q(vai),
- q(0458) => q(ven),
- q(0459) => q(vie),
- q(0460) => q(vol),
- q(0461) => q(vot),
- q(0462) => q(wak),
- q(0463) => q(wal),
- q(0464) => q(war),
- q(0465) => q(was),
- q(0466) => q(cym),
- q(0467) => q(wen),
- q(0468) => q(wln),
- q(0469) => q(wol),
- q(0470) => q(xal),
- q(0471) => q(xho),
- q(0472) => q(yao),
- q(0473) => q(yap),
- q(0474) => q(yid),
- q(0475) => q(yor),
- q(0476) => q(ypk),
- q(0477) => q(zap),
- q(0478) => q(zbl),
- q(0479) => q(zen),
- q(0480) => q(zgh),
- q(0481) => q(zha),
- q(0482) => q(znd),
- q(0483) => q(zul),
- q(0484) => q(zun),
- q(0485) => q(zxx),
- q(0486) => q(zza),
+ q(0090) => q(cnr),
+ q(0091) => q(cop),
+ q(0092) => q(cor),
+ q(0093) => q(cos),
+ q(0094) => q(cpe),
+ q(0095) => q(cpf),
+ q(0096) => q(cpp),
+ q(0097) => q(cre),
+ q(0098) => q(crh),
+ q(0099) => q(crp),
+ q(0100) => q(csb),
+ q(0101) => q(cus),
+ q(0102) => q(ces),
+ q(0103) => q(dak),
+ q(0104) => q(dan),
+ q(0105) => q(dar),
+ q(0106) => q(day),
+ q(0107) => q(del),
+ q(0108) => q(den),
+ q(0109) => q(dgr),
+ q(0110) => q(din),
+ q(0111) => q(div),
+ q(0112) => q(doi),
+ q(0113) => q(dra),
+ q(0114) => q(dsb),
+ q(0115) => q(dua),
+ q(0116) => q(dum),
+ q(0117) => q(nld),
+ q(0118) => q(dyu),
+ q(0119) => q(dzo),
+ q(0120) => q(efi),
+ q(0121) => q(egy),
+ q(0122) => q(eka),
+ q(0123) => q(elx),
+ q(0124) => q(eng),
+ q(0125) => q(enm),
+ q(0126) => q(epo),
+ q(0127) => q(est),
+ q(0128) => q(ewe),
+ q(0129) => q(ewo),
+ q(0130) => q(fan),
+ q(0131) => q(fao),
+ q(0132) => q(fat),
+ q(0133) => q(fij),
+ q(0134) => q(fil),
+ q(0135) => q(fin),
+ q(0136) => q(fiu),
+ q(0137) => q(fon),
+ q(0138) => q(fra),
+ q(0139) => q(frm),
+ q(0140) => q(fro),
+ q(0141) => q(frr),
+ q(0142) => q(frs),
+ q(0143) => q(fry),
+ q(0144) => q(ful),
+ q(0145) => q(fur),
+ q(0146) => q(gaa),
+ q(0147) => q(gay),
+ q(0148) => q(gba),
+ q(0149) => q(gem),
+ q(0150) => q(kat),
+ q(0151) => q(deu),
+ q(0152) => q(gez),
+ q(0153) => q(gil),
+ q(0154) => q(gla),
+ q(0155) => q(gle),
+ q(0156) => q(glg),
+ q(0157) => q(glv),
+ q(0158) => q(gmh),
+ q(0159) => q(goh),
+ q(0160) => q(gon),
+ q(0161) => q(gor),
+ q(0162) => q(got),
+ q(0163) => q(grb),
+ q(0164) => q(grc),
+ q(0165) => q(ell),
+ q(0166) => q(grn),
+ q(0167) => q(gsw),
+ q(0168) => q(guj),
+ q(0169) => q(gwi),
+ q(0170) => q(hai),
+ q(0171) => q(hat),
+ q(0172) => q(hau),
+ q(0173) => q(haw),
+ q(0174) => q(heb),
+ q(0175) => q(her),
+ q(0176) => q(hil),
+ q(0177) => q(him),
+ q(0178) => q(hin),
+ q(0179) => q(hit),
+ q(0180) => q(hmn),
+ q(0181) => q(hmo),
+ q(0182) => q(hrv),
+ q(0183) => q(hsb),
+ q(0184) => q(hun),
+ q(0185) => q(hup),
+ q(0186) => q(iba),
+ q(0187) => q(ibo),
+ q(0188) => q(isl),
+ q(0189) => q(ido),
+ q(0190) => q(iii),
+ q(0191) => q(ijo),
+ q(0192) => q(iku),
+ q(0193) => q(ile),
+ q(0194) => q(ilo),
+ q(0195) => q(ina),
+ q(0196) => q(inc),
+ q(0197) => q(ind),
+ q(0198) => q(ine),
+ q(0199) => q(inh),
+ q(0200) => q(ipk),
+ q(0201) => q(ira),
+ q(0202) => q(iro),
+ q(0203) => q(ita),
+ q(0204) => q(jav),
+ q(0205) => q(jbo),
+ q(0206) => q(jpn),
+ q(0207) => q(jpr),
+ q(0208) => q(jrb),
+ q(0209) => q(kaa),
+ q(0210) => q(kab),
+ q(0211) => q(kac),
+ q(0212) => q(kal),
+ q(0213) => q(kam),
+ q(0214) => q(kan),
+ q(0215) => q(kar),
+ q(0216) => q(kas),
+ q(0217) => q(kau),
+ q(0218) => q(kaw),
+ q(0219) => q(kaz),
+ q(0220) => q(kbd),
+ q(0221) => q(kha),
+ q(0222) => q(khi),
+ q(0223) => q(khm),
+ q(0224) => q(kho),
+ q(0225) => q(kik),
+ q(0226) => q(kin),
+ q(0227) => q(kir),
+ q(0228) => q(kmb),
+ q(0229) => q(kok),
+ q(0230) => q(kom),
+ q(0231) => q(kon),
+ q(0232) => q(kor),
+ q(0233) => q(kos),
+ q(0234) => q(kpe),
+ q(0235) => q(krc),
+ q(0236) => q(krl),
+ q(0237) => q(kro),
+ q(0238) => q(kru),
+ q(0239) => q(kua),
+ q(0240) => q(kum),
+ q(0241) => q(kur),
+ q(0242) => q(kut),
+ q(0243) => q(lad),
+ q(0244) => q(lah),
+ q(0245) => q(lam),
+ q(0246) => q(lao),
+ q(0247) => q(lat),
+ q(0248) => q(lav),
+ q(0249) => q(lez),
+ q(0250) => q(lim),
+ q(0251) => q(lin),
+ q(0252) => q(lit),
+ q(0253) => q(lol),
+ q(0254) => q(loz),
+ q(0255) => q(ltz),
+ q(0256) => q(lua),
+ q(0257) => q(lub),
+ q(0258) => q(lug),
+ q(0259) => q(lui),
+ q(0260) => q(lun),
+ q(0261) => q(luo),
+ q(0262) => q(lus),
+ q(0263) => q(mkd),
+ q(0264) => q(mad),
+ q(0265) => q(mag),
+ q(0266) => q(mah),
+ q(0267) => q(mai),
+ q(0268) => q(mak),
+ q(0269) => q(mal),
+ q(0270) => q(man),
+ q(0271) => q(mri),
+ q(0272) => q(map),
+ q(0273) => q(mar),
+ q(0274) => q(mas),
+ q(0275) => q(msa),
+ q(0276) => q(mdf),
+ q(0277) => q(mdr),
+ q(0278) => q(men),
+ q(0279) => q(mga),
+ q(0280) => q(mic),
+ q(0281) => q(min),
+ q(0282) => q(mis),
+ q(0283) => q(mkh),
+ q(0284) => q(mlg),
+ q(0285) => q(mlt),
+ q(0286) => q(mnc),
+ q(0287) => q(mni),
+ q(0288) => q(mno),
+ q(0289) => q(moh),
+ q(0290) => q(mon),
+ q(0291) => q(mos),
+ q(0292) => q(mul),
+ q(0293) => q(mun),
+ q(0294) => q(mus),
+ q(0295) => q(mwl),
+ q(0296) => q(mwr),
+ q(0297) => q(myn),
+ q(0298) => q(myv),
+ q(0299) => q(nah),
+ q(0300) => q(nai),
+ q(0301) => q(nap),
+ q(0302) => q(nau),
+ q(0303) => q(nav),
+ q(0304) => q(nbl),
+ q(0305) => q(nde),
+ q(0306) => q(ndo),
+ q(0307) => q(nds),
+ q(0308) => q(nep),
+ q(0309) => q(new),
+ q(0310) => q(nia),
+ q(0311) => q(nic),
+ q(0312) => q(niu),
+ q(0313) => q(nno),
+ q(0314) => q(nob),
+ q(0315) => q(nog),
+ q(0316) => q(non),
+ q(0317) => q(nor),
+ q(0318) => q(nqo),
+ q(0319) => q(nso),
+ q(0320) => q(nub),
+ q(0321) => q(nwc),
+ q(0322) => q(nya),
+ q(0323) => q(nym),
+ q(0324) => q(nyn),
+ q(0325) => q(nyo),
+ q(0326) => q(nzi),
+ q(0327) => q(oci),
+ q(0328) => q(oji),
+ q(0329) => q(ori),
+ q(0330) => q(orm),
+ q(0331) => q(osa),
+ q(0332) => q(oss),
+ q(0333) => q(ota),
+ q(0334) => q(oto),
+ q(0335) => q(paa),
+ q(0336) => q(pag),
+ q(0337) => q(pal),
+ q(0338) => q(pam),
+ q(0339) => q(pan),
+ q(0340) => q(pap),
+ q(0341) => q(pau),
+ q(0342) => q(peo),
+ q(0343) => q(fas),
+ q(0344) => q(phi),
+ q(0345) => q(phn),
+ q(0346) => q(pli),
+ q(0347) => q(pol),
+ q(0348) => q(pon),
+ q(0349) => q(por),
+ q(0350) => q(pra),
+ q(0351) => q(pro),
+ q(0352) => q(pus),
+ q(0353) => q(qtz),
+ q(0354) => q(que),
+ q(0355) => q(raj),
+ q(0356) => q(rap),
+ q(0357) => q(rar),
+ q(0358) => q(roa),
+ q(0359) => q(roh),
+ q(0360) => q(rom),
+ q(0361) => q(ron),
+ q(0362) => q(run),
+ q(0363) => q(rup),
+ q(0364) => q(rus),
+ q(0365) => q(sad),
+ q(0366) => q(sag),
+ q(0367) => q(sah),
+ q(0368) => q(sai),
+ q(0369) => q(sal),
+ q(0370) => q(sam),
+ q(0371) => q(san),
+ q(0372) => q(sas),
+ q(0373) => q(sat),
+ q(0374) => q(scn),
+ q(0375) => q(sco),
+ q(0376) => q(sel),
+ q(0377) => q(sem),
+ q(0378) => q(sga),
+ q(0379) => q(sgn),
+ q(0380) => q(shn),
+ q(0381) => q(sid),
+ q(0382) => q(sin),
+ q(0383) => q(sio),
+ q(0384) => q(sit),
+ q(0385) => q(sla),
+ q(0386) => q(slk),
+ q(0387) => q(slv),
+ q(0388) => q(sma),
+ q(0389) => q(sme),
+ q(0390) => q(smi),
+ q(0391) => q(smj),
+ q(0392) => q(smn),
+ q(0393) => q(smo),
+ q(0394) => q(sms),
+ q(0395) => q(sna),
+ q(0396) => q(snd),
+ q(0397) => q(snk),
+ q(0398) => q(sog),
+ q(0399) => q(som),
+ q(0400) => q(son),
+ q(0401) => q(sot),
+ q(0402) => q(spa),
+ q(0403) => q(srd),
+ q(0404) => q(srn),
+ q(0405) => q(srp),
+ q(0406) => q(srr),
+ q(0407) => q(ssa),
+ q(0408) => q(ssw),
+ q(0409) => q(suk),
+ q(0410) => q(sun),
+ q(0411) => q(sus),
+ q(0412) => q(sux),
+ q(0413) => q(swa),
+ q(0414) => q(swe),
+ q(0415) => q(syc),
+ q(0416) => q(syr),
+ q(0417) => q(tah),
+ q(0418) => q(tai),
+ q(0419) => q(tam),
+ q(0420) => q(tat),
+ q(0421) => q(tel),
+ q(0422) => q(tem),
+ q(0423) => q(ter),
+ q(0424) => q(tet),
+ q(0425) => q(tgk),
+ q(0426) => q(tgl),
+ q(0427) => q(tha),
+ q(0428) => q(bod),
+ q(0429) => q(tig),
+ q(0430) => q(tir),
+ q(0431) => q(tiv),
+ q(0432) => q(tkl),
+ q(0433) => q(tlh),
+ q(0434) => q(tli),
+ q(0435) => q(tmh),
+ q(0436) => q(tog),
+ q(0437) => q(ton),
+ q(0438) => q(tpi),
+ q(0439) => q(tsi),
+ q(0440) => q(tsn),
+ q(0441) => q(tso),
+ q(0442) => q(tuk),
+ q(0443) => q(tum),
+ q(0444) => q(tup),
+ q(0445) => q(tur),
+ q(0446) => q(tut),
+ q(0447) => q(tvl),
+ q(0448) => q(twi),
+ q(0449) => q(tyv),
+ q(0450) => q(udm),
+ q(0451) => q(uga),
+ q(0452) => q(uig),
+ q(0453) => q(ukr),
+ q(0454) => q(umb),
+ q(0455) => q(und),
+ q(0456) => q(urd),
+ q(0457) => q(uzb),
+ q(0458) => q(vai),
+ q(0459) => q(ven),
+ q(0460) => q(vie),
+ q(0461) => q(vol),
+ q(0462) => q(vot),
+ q(0463) => q(wak),
+ q(0464) => q(wal),
+ q(0465) => q(war),
+ q(0466) => q(was),
+ q(0467) => q(cym),
+ q(0468) => q(wen),
+ q(0469) => q(wln),
+ q(0470) => q(wol),
+ q(0471) => q(xal),
+ q(0472) => q(xho),
+ q(0473) => q(yao),
+ q(0474) => q(yap),
+ q(0475) => q(yid),
+ q(0476) => q(yor),
+ q(0477) => q(ypk),
+ q(0478) => q(zap),
+ q(0479) => q(zbl),
+ q(0480) => q(zen),
+ q(0481) => q(zgh),
+ q(0482) => q(zha),
+ q(0483) => q(znd),
+ q(0484) => q(zul),
+ q(0485) => q(zun),
+ q(0486) => q(zxx),
+ q(0487) => q(zza),
},
};
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm
index 98908dd486f..dc866c0ed11 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::Language_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Feb 23 12:58:17 EST 2018
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Retired{'language'}{'alpha-2'}{'code'} = {
q(in) => q(Indonesian),
@@ -27,41 +27,63 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
q(aue) => q(=/Kx'au//'ein),
q(ayx) => q(Ayi (China)),
q(baz) => q(Tunen),
+ q(bgm) => q(Baga Mboteni),
q(bjd) => q(Bandjigali),
q(bjq) => q(Southern Betsimisaraka Malagasy),
q(bmy) => q(Bemba (Democratic Republic of Congo)),
+ q(btl) => q(Bhatola),
q(bxx) => q(Borna (Democratic Republic of Congo)),
q(byy) => q(Buya),
+ q(cbe) => q(Chipiajes),
+ q(cbh) => q(Cagua),
q(ccq) => q(Chaungtha),
q(cka) => q(Khumi Awa Chin),
+ q(coy) => q(Coyaima),
+ q(cqu) => q(Chilean Quechua),
+ q(cum) => q(Cumeral),
q(daf) => q(Dan),
q(dap) => q(Nisi (India)),
q(dha) => q(Dhanwar (India)),
q(djl) => q(Djiwarli),
q(dkl) => q(Kolum So Dogon),
+ q(duj) => q(Dhuwal),
q(dwl) => q(Walo Kumbe Dogon),
q(dzd) => q(Daza),
q(elp) => q(Elpaputih),
q(emo) => q(Emok),
q(gbc) => q(Garawa),
q(gfx) => q(Mangetti Dune !Xung),
+ q(ggn) => q(Eastern Gurung),
+ q(ggo) => q(Southern Gondi),
q(ggr) => q(Aghu Tharnggalu),
q(gio) => q(Gelao),
q(gti) => q(Gbati-ri),
+ q(guv) => q(Gey),
q(hrr) => q(Horuru),
+ q(iap) => q(Iapama),
q(ibi) => q(Ibilo),
+ q(ill) => q(Iranun),
q(ilw) => q(Talur),
q(ime) => q(Imeraguen),
q(izi) => q(Izi-Ezaa-Ikwo-Mgbo),
q(jar) => q(Jarawa (Nigeria)),
+ q(jeg) => q(Jeng),
q(kbf) => q(Kakauhua),
q(kdv) => q(Kado),
+ q(kgc) => q(Kasseng),
+ q(kgd) => q(Kataang),
q(kgh) => q(Upper Tanudan Kalinga),
q(koj) => q(Sara Dunjo),
+ q(kox) => q(Coxima),
q(kpp) => q(Paku Karen),
+ q(krm) => q(Krim),
+ q(ktr) => q(Kota Marudu Tinagas),
+ q(kvs) => q(Kunggara),
q(kwq) => q(Kwak),
q(kxe) => q(Kakihum),
q(kzh) => q(Kenuzi-Dongola),
+ q(kzj) => q(Coastal Kadazan),
+ q(kzt) => q(Tambunan Dusun),
q(lcq) => q(Luhu),
q(leg) => q(Lengua),
q(lii) => q(Lingkhim),
@@ -75,33 +97,58 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
q(mwd) => q(Mudbura),
q(mwj) => q(Maligo),
q(myq) => q(Forest Maninka),
+ q(nad) => q(Nijadali),
q(nbf) => q(Naxi),
q(nbx) => q(Ngura),
q(nln) => q(Durango Nahuatl),
q(nlr) => q(Ngarla),
q(nnx) => q(Ngong),
q(noo) => q(Nootka),
+ q(nts) => q(Natagaimas),
+ q(ome) => q(Omejes),
q(oun) => q(!O!ung),
q(pbz) => q(Palu),
q(pcr) => q(Panang),
q(pgy) => q(Pongyong),
+ q(pmc) => q(Palumata),
q(pmu) => q(Mirpur Panjabi),
+ q(pod) => q(Ponares),
+ q(ppa) => q(Pao),
q(ppr) => q(Piru),
+ q(prb) => q(Lua'),
+ q(pry) => q(Pray 3),
+ q(puk) => q(Pu Ko),
q(puz) => q(Purum Naga),
+ q(rie) => q(Rien),
+ q(rna) => q(Runa),
+ q(rsi) => q(Rennellese Sign Language),
q(sap) => q(Sanapana),
q(sca) => q(Sansu),
q(sgo) => q(Songa),
+ q(skk) => q(Sok),
+ q(snh) => q(Shinabo),
+ q(svr) => q(Savara),
+ q(tdu) => q(Tempasuk Dusun),
q(tgg) => q(Tangga),
+ q(thc) => q(Tai Hang Tong),
q(thx) => q(The),
+ q(tid) => q(Tidong),
q(tie) => q(Tingal),
q(tkk) => q(Takpa),
q(tlw) => q(South Wemale),
+ q(tmp) => q(Tai Mene),
+ q(tne) => q(Tinoc Kallahan),
+ q(toe) => q(Tomedes),
q(tsf) => q(Southwestern Tamang),
q(unp) => q(Worora),
q(uok) => q(Uokha),
q(wit) => q(Wintu),
q(wiw) => q(Wirangu),
+ q(xba) => q(Kamba (Brazil)),
+ q(xbx) => q(Kabixi),
q(xia) => q(Xiandao),
+ q(xip) => q(Xipinawa),
+ q(xkh) => q(Karahawyana),
q(xsj) => q(Subi),
q(ybd) => q(Yangbye),
q(yds) => q(Yiddish Sign Language),
@@ -111,6 +158,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
q(ymt) => q(Mator-Taygi-Karagas),
q(ynh) => q(Yangho),
q(yos) => q(Yos),
+ q(yri) => q(Yari),
q(yuu) => q(Yugh),
};
@@ -187,6 +235,8 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(aromanian) => [ q(rup), q(Aromanian) ],
q(atong) => [ q(ato), q(Atong) ],
q(ayi (china)) => [ q(ayx), q(Ayi (China)) ],
+ q(baga binari) => [ q(bcg), q(Baga Binari) ],
+ q(baga mboteni) => [ q(bgm), q(Baga Mboteni) ],
q(bandjigali) => [ q(bjd), q(Bandjigali) ],
q(bangi me) => [ q(dba), q(Bangi Me) ],
q(bantu (other)) => [ q(bnt), q(Bantu (Other)) ],
@@ -198,17 +248,29 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(bekwil) => [ q(bkw), q(Bekwil) ],
q(bemba) => [ q(bem), q(Bemba) ],
q(bemba (democratic republic of congo)) => [ q(bmy), q(Bemba (Democratic Republic of Congo)) ],
+ q(bhatola) => [ q(btl), q(Bhatola) ],
q(blin) => [ q(byn), q(Blin) ],
+ q(bolo) => [ q(blv), q(Bolo) ],
+ q(bom) => [ q(bmf), q(Bom) ],
q(borna (democratic republic of congo)) => [ q(bxx), q(Borna (Democratic Republic of Congo)) ],
q(brek karen) => [ q(kvl), q(Brek Karen) ],
q(burum-mindik) => [ q(bmu), q(Burum-Mindik) ],
q(buya) => [ q(byy), q(Buya) ],
+ q(cagua) => [ q(cbh), q(Cagua) ],
q(central bicolano) => [ q(bcl), q(Central Bicolano) ],
+ q(central dusun) => [ q(dtp), q(Central Dusun) ],
q(chaungtha) => [ q(ccq), q(Chaungtha) ],
+ q(chilean quechua) => [ q(cqu), q(Chilean Quechua) ],
+ q(chipiajes) => [ q(cbe), q(Chipiajes) ],
+ q(coastal kadazan) => [ q(kzj), q(Coastal Kadazan) ],
+ q(coxima) => [ q(kox), q(Coxima) ],
+ q(coyaima) => [ q(coy), q(Coyaima) ],
q(creoles and pidgins ) => [ q(crp), q(Creoles and pidgins ) ],
q(creoles and pidgins, english based) => [ q(cpe), q(Creoles and pidgins, English based) ],
q(creoles and pidgins, french-based ) => [ q(cpf), q(Creoles and pidgins, French-based ) ],
q(creoles and pidgins, portuguese-based ) => [ q(cpp), q(Creoles and pidgins, Portuguese-based ) ],
+ q(cumeral) => [ q(cum), q(Cumeral) ],
+ q(cung) => [ q(cug), q(Cung) ],
q(dakaka) => [ q(bpa), q(Dakaka) ],
q(darling) => [ q(drl), q(Darling) ],
q(daza) => [ q(dzd), q(Daza) ],
@@ -218,9 +280,11 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(djangu) => [ q(dhg), q(Djangu) ],
q(dogri) => [ q(doi), q(Dogri) ],
q(duduela) => [ q(duk), q(Duduela) ],
+ q(duli) => [ q(duz), q(Duli) ],
q(dumpu) => [ q(wtf), q(Dumpu) ],
q(durango nahuatl) => [ q(nln), q(Durango Nahuatl) ],
q(dutch, middle (ca.1050-1350)) => [ q(dum), q(Dutch, Middle (ca.1050-1350)) ],
+ q(eastern gurung) => [ q(ggn), q(Eastern Gurung) ],
q(elpaputih) => [ q(elp), q(Elpaputih) ],
q(emok) => [ q(emo), q(Emok) ],
q(english, middle (1100-1500)) => [ q(enm), q(English, Middle (1100-1500)) ],
@@ -236,34 +300,51 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(gelao) => [ q(gio), q(Gelao) ],
q(german, middle high (ca.1050-1500)) => [ q(gmh), q(German, Middle High (ca.1050-1500)) ],
q(german, old high (ca.750-1050)) => [ q(goh), q(German, Old High (ca.750-1050)) ],
+ q(gey) => [ q(guv), q(Gey) ],
q(greek, ancient (to 1453)) => [ q(grc), q(Greek, Ancient (to 1453)) ],
+ q(gusan) => [ q(gsn), q(Gusan) ],
q(guwinmal) => [ q(xgm), q(Guwinmal) ],
q(hainyaxo bozo) => [ q(bzx), q(Hainyaxo Bozo) ],
+ q(haka chin) => [ q(cnh), q(Haka Chin) ],
q(hawai'i pidgin sign language) => [ q(hps), q(Hawai'i Pidgin Sign Language) ],
q(horuru) => [ q(hrr), q(Horuru) ],
q(hungworo) => [ q(nat), q(Hungworo) ],
+ q(iapama) => [ q(iap), q(Iapama) ],
q(ibilo) => [ q(ibi), q(Ibilo) ],
q(idun) => [ q(ldb), q(Idun) ],
q(ikobi-mena) => [ q(meb), q(Ikobi-Mena) ],
q(imeraguen) => [ q(ime), q(Imeraguen) ],
+ q(iranun) => [ q(ill), q(Iranun) ],
q(irish, middle (900-1200)) => [ q(mga), q(Irish, Middle (900-1200)) ],
q(irish, old (to 900)) => [ q(sga), q(Irish, Old (to 900)) ],
q(izi-ezaa-ikwo-mgbo) => [ q(izi), q(Izi-Ezaa-Ikwo-Mgbo) ],
q(jarawa (nigeria)) => [ q(jar), q(Jarawa (Nigeria)) ],
+ q(jeng) => [ q(jeg), q(Jeng) ],
+ q(kabixi) => [ q(xbx), q(Kabixi) ],
+ q(kachchi) => [ q(kfr), q(Kachchi) ],
q(kadara) => [ q(kad), q(Kadara) ],
q(kado) => [ q(kdv), q(Kado) ],
q(kag-fer-jiir-koor-ror-us-zuksun) => [ q(gel), q(Kag-Fer-Jiir-Koor-Ror-Us-Zuksun) ],
q(kakauhua) => [ q(kbf), q(Kakauhua) ],
q(kakihum) => [ q(kxe), q(Kakihum) ],
q(kamba) => [ q(kam), q(Kamba) ],
+ q(kamba (brazil)) => [ q(xba), q(Kamba (Brazil)) ],
+ q(karahawyana) => [ q(xkh), q(Karahawyana) ],
+ q(kasseng) => [ q(kgc), q(Kasseng) ],
+ q(kataang) => [ q(kgd), q(Kataang) ],
+ q(kayapa kallahan) => [ q(kak), q(Kayapa Kallahan) ],
q(kemezung) => [ q(dmo), q(Kemezung) ],
q(kenuzi-dongola) => [ q(kzh), q(Kenuzi-Dongola) ],
q(khumi awa chin) => [ q(cka), q(Khumi Awa Chin) ],
q(kol) => [ q(ekl), q(Kol) ],
q(kolum so dogon) => [ q(dkl), q(Kolum So Dogon) ],
q(konkani) => [ q(kok), q(Konkani) ],
+ q(kota marudu tinagas) => [ q(ktr), q(Kota Marudu Tinagas) ],
+ q(krim) => [ q(krm), q(Krim) ],
+ q(kru'ng 2) => [ q(krr), q(Kru'ng 2) ],
q(kumak) => [ q(nee), q(Kumak) ],
q(kuman) => [ q(kue), q(Kuman) ],
+ q(kunggara) => [ q(kvs), q(Kunggara) ],
q(kutang ghale) => [ q(ght), q(Kutang Ghale) ],
q(kwak) => [ q(kwq), q(Kwak) ],
q(kwato) => [ q(kop), q(Kwato) ],
@@ -271,9 +352,12 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(lama (myanmar)) => [ q(lay), q(Lama (Myanmar)) ],
q(lamam) => [ q(lmm), q(Lamam) ],
q(lengua) => [ q(leg), q(Lengua) ],
+ q(lindu) => [ q(klw), q(Lindu) ],
q(lingkhim) => [ q(lii), q(Lingkhim) ],
+ q(louisiana creole french) => [ q(lou), q(Louisiana Creole French) ],
q(lowa) => [ q(loy), q(Lowa) ],
q(lower tanudan kalinga) => [ q(kml), q(Lower Tanudan Kalinga) ],
+ q(lua') => [ q(prb), q(Lua') ],
q(luhu) => [ q(lcq), q(Luhu) ],
q(mahei) => [ q(mja), q(Mahei) ],
q(malakhel) => [ q(mld), q(Malakhel) ],
@@ -281,6 +365,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(maligo) => [ q(mwj), q(Maligo) ],
q(mangetti dune !xung) => [ q(gfx), q(Mangetti Dune !Xung) ],
q(mann) => [ q(mev), q(Mann) ],
+ q(manusela) => [ q(wha), q(Manusela) ],
q(mari) => [ q(chm), q(Mari) ],
q(maskoy pidgin) => [ q(mhh), q(Maskoy Pidgin) ],
q(mator-taygi-karagas) => [ q(ymt), q(Mator-Taygi-Karagas) ],
@@ -304,12 +389,15 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(nama (namibia)) => [ q(naq), q(Nama (Namibia)) ],
q(nanggu) => [ q(ngr), q(Nanggu) ],
q(nangikurrunggurr) => [ q(nam), q(Nangikurrunggurr) ],
+ q(natagaimas) => [ q(nts), q(Natagaimas) ],
q(ndrag'ngith) => [ q(dgt), q(Ndrag'ngith) ],
q(nepal bhasa) => [ q(new), q(Nepal Bhasa) ],
q(nga la) => [ q(hlt), q(Nga La) ],
q(ngalkbun) => [ q(ngk), q(Ngalkbun) ],
+ q(ngeq) => [ q(ngt), q(Ngeq) ],
q(ngong) => [ q(nnx), q(Ngong) ],
q(ngura) => [ q(nbx), q(Ngura) ],
+ q(nijadali) => [ q(nad), q(Nijadali) ],
q(nisi (india)) => [ q(dap), q(Nisi (India)) ],
q(nootka) => [ q(noo), q(Nootka) ],
q(norse, old) => [ q(non), q(Norse, Old) ],
@@ -322,42 +410,68 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(nsari) => [ q(asj), q(Nsari) ],
q(nung (myanmar)) => [ q(nun), q(Nung (Myanmar)) ],
q(omati) => [ q(mgx), q(Omati) ],
+ q(omejes) => [ q(ome), q(Omejes) ],
+ q(opuuo) => [ q(lgn), q(Opuuo) ],
+ q(oriya (individual language)) => [ q(ory), q(Oriya (individual language)) ],
q(ounge) => [ q(oue), q(Ounge) ],
+ q(ovdalian) => [ q(ovd), q(Ovdalian) ],
q(palu) => [ q(pbz), q(Palu) ],
+ q(palumata) => [ q(pmc), q(Palumata) ],
q(panang) => [ q(pcr), q(Panang) ],
+ q(pao) => [ q(ppa), q(Pao) ],
q(persian, old (ca.600-400 b.c.)) => [ q(peo), q(Persian, Old (ca.600-400 B.C.)) ],
q(piru) => [ q(ppr), q(Piru) ],
+ q(ponares) => [ q(pod), q(Ponares) ],
q(pongyong) => [ q(pgy), q(Pongyong) ],
+ q(pray 3) => [ q(pry), q(Pray 3) ],
q(provencal, old (to 1500)) => [ q(pro), q(Provencal, Old (to 1500)) ],
+ q(pu ko) => [ q(puk), q(Pu Ko) ],
q(purum naga) => [ q(puz), q(Purum Naga) ],
q(pyu) => [ q(pby), q(Pyu) ],
+ q(rennellese sign language) => [ q(rsi), q(Rennellese Sign Language) ],
+ q(rien) => [ q(rie), q(Rien) ],
+ q(runa) => [ q(rna), q(Runa) ],
q(sakam) => [ q(skm), q(Sakam) ],
+ q(san juan guelavia zapotec) => [ q(zab), q(San Juan Guelavia Zapotec) ],
q(san marcos tlalcoyalco popoloca) => [ q(pls), q(San Marcos Tlalcoyalco Popoloca) ],
q(sansu) => [ q(sca), q(Sansu) ],
q(sara dunjo) => [ q(koj), q(Sara Dunjo) ],
q(sauk) => [ q(skc), q(Sauk) ],
+ q(savara) => [ q(svr), q(Savara) ],
q(sepen) => [ q(spm), q(Sepen) ],
q(seraiki) => [ q(skr), q(Seraiki) ],
q(shabo) => [ q(sbf), q(Shabo) ],
q(shangzhai) => [ q(jih), q(Shangzhai) ],
+ q(shinabo) => [ q(snh), q(Shinabo) ],
q(so (cameroon)) => [ q(sox), q(So (Cameroon)) ],
+ q(sok) => [ q(skk), q(Sok) ],
q(songa) => [ q(sgo), q(Songa) ],
q(south american indian (other)) => [ q(sai), q(South American Indian (Other)) ],
q(south wemale) => [ q(tlw), q(South Wemale) ],
q(southeast pashayi) => [ q(psi), q(Southeast Pashayi) ],
q(southern catanduanes bicolano) => [ q(bln), q(Southern Catanduanes Bicolano) ],
+ q(southern gondi) => [ q(ggo), q(Southern Gondi) ],
q(southern lorung) => [ q(lrr), q(Southern Lorung) ],
q(southwest pashayi) => [ q(psh), q(Southwest Pashayi) ],
q(southwestern tamang) => [ q(tsf), q(Southwestern Tamang) ],
q(subi) => [ q(xsj), q(Subi) ],
q(sulung) => [ q(suv), q(Sulung) ],
+ q(tai hang tong) => [ q(thc), q(Tai Hang Tong) ],
+ q(tai mene) => [ q(tmp), q(Tai Mene) ],
q(takpa) => [ q(tkk), q(Takpa) ],
q(talur) => [ q(ilw), q(Talur) ],
+ q(tambunan dusun) => [ q(kzt), q(Tambunan Dusun) ],
q(tangga) => [ q(tgg), q(Tangga) ],
q(tangkhul naga) => [ q(nmf), q(Tangkhul Naga) ],
+ q(teluti) => [ q(tlt), q(Teluti) ],
+ q(tempasuk dusun) => [ q(tdu), q(Tempasuk Dusun) ],
q(the) => [ q(thx), q(The) ],
+ q(tidong) => [ q(tid), q(Tidong) ],
q(tina sambal) => [ q(xsb), q(Tina Sambal) ],
q(tingal) => [ q(tie), q(Tingal) ],
+ q(tinoc kallahan) => [ q(tne), q(Tinoc Kallahan) ],
+ q(tomedes) => [ q(toe), q(Tomedes) ],
+ q(tonga (thailand)) => [ q(tnz), q(Tonga (Thailand)) ],
q(tsotsitaal) => [ q(fly), q(Tsotsitaal) ],
q(turkish, ottoman (1500-1928)) => [ q(ota), q(Turkish, Ottoman (1500-1928)) ],
q(unggarranggu) => [ q(xun), q(Unggarranggu) ],
@@ -370,13 +484,17 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(welaung) => [ q(weu), q(Welaung) ],
q(were) => [ q(wei), q(Were) ],
q(western canadian inuktitut) => [ q(ikt), q(Western Canadian Inuktitut) ],
+ q(western gurung) => [ q(gvr), q(Western Gurung) ],
q(worora) => [ q(unp), q(Worora) ],
q(xiandao) => [ q(xia), q(Xiandao) ],
+ q(xipinawa) => [ q(xip), q(Xipinawa) ],
q(yamphe) => [ q(yma), q(Yamphe) ],
q(yangbye) => [ q(ybd), q(Yangbye) ],
q(yangho) => [ q(ynh), q(Yangho) ],
+ q(yari) => [ q(yri), q(Yari) ],
q(yeskwa) => [ q(yes), q(Yeskwa) ],
q(yiddish sign language) => [ q(yds), q(Yiddish Sign Language) ],
+ q(yiwom) => [ q(gek), q(Yiwom) ],
q(yonggom) => [ q(yon), q(Yonggom) ],
q(yos) => [ q(yos), q(Yos) ],
q(yuaga) => [ q(nua), q(Yuaga) ],
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pm
index b188cf072b0..1b7003f8ad2 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pm
@@ -1,98 +1,94 @@
package Locale::Codes::Script;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
-require 5.006;
use warnings;
+require 5.006;
+use Exporter qw(import);
-require Exporter;
-use Carp;
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
+
+################################################################################
+use if $] >= 5.027007, 'deprecate';
use Locale::Codes;
use Locale::Codes::Constants;
-use Locale::Codes::Script_Codes;
-use Locale::Codes::Script_Retired;
-
-#=======================================================================
-# Public Global Variables
-#=======================================================================
-our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-
-$VERSION='3.37';
-@ISA = qw(Exporter);
-@EXPORT = qw(code2script
+@EXPORT = qw(
+ code2script
script2code
all_script_codes
all_script_names
script_code2code
- LOCALE_SCRIPT_ALPHA
- LOCALE_SCRIPT_NUMERIC
);
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_SCRIPT);
+
+our $obj = new Locale::Codes('script');
+$obj->show_errors(0);
+
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
sub code2script {
- return Locale::Codes::_code2name('script',@_);
+ return $obj->code2name(@_);
}
sub script2code {
- return Locale::Codes::_name2code('script',@_);
+ return $obj->name2code(@_);
}
sub script_code2code {
- return Locale::Codes::_code2code('script',@_);
+ return $obj->code2code(@_);
}
sub all_script_codes {
- return Locale::Codes::_all_codes('script',@_);
+ return $obj->all_codes(@_);
}
sub all_script_names {
- return Locale::Codes::_all_names('script',@_);
+ return $obj->all_names(@_);
}
sub rename_script {
- return Locale::Codes::_rename('script',@_);
+ return $obj->rename_code(@_);
}
sub add_script {
- return Locale::Codes::_add_code('script',@_);
+ return $obj->add_code(@_);
}
sub delete_script {
- return Locale::Codes::_delete_code('script',@_);
+ return $obj->delete_code(@_);
}
sub add_script_alias {
- return Locale::Codes::_add_alias('script',@_);
+ return $obj->add_alias(@_);
}
sub delete_script_alias {
- return Locale::Codes::_delete_alias('script',@_);
+ return $obj->delete_alias(@_);
}
sub rename_script_code {
- return Locale::Codes::_rename_code('script',@_);
+ return $obj->replace_code(@_);
}
sub add_script_code_alias {
- return Locale::Codes::_add_code_alias('script',@_);
+ return $obj->add_code_alias(@_);
}
sub delete_script_code_alias {
- return Locale::Codes::_delete_code_alias('script',@_);
+ return $obj->delete_code_alias(@_);
}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pod
index e4e1d4053f1..655fb4fe3c4 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script.pod
@@ -2,92 +2,107 @@
=head1 NAME
-Locale::Codes::Script - standard codes for script identification
+Locale::Codes::Script - module for dealing with script code sets
=head1 SYNOPSIS
use Locale::Codes::Script;
- $script = code2script('phnx'); # 'Phoenician'
- $code = script2code('Phoenician'); # 'Phnx'
- $code = script2code('Phoenician',
- LOCALE_CODE_NUMERIC); # 115
+ $name = code2script(CODE);
+ $code = script2code(NAME);
@codes = all_script_codes();
- @scripts = all_script_names();
+ @names = all_script_names();
=head1 DESCRIPTION
-This module provides access to standards codes used
-for identifying scripts, such as those defined in ISO 15924.
+This module provides access to script code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO
-15924 four-letter codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
+
+=head1 ROUTINES
+
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: script
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-=head1 SUPPORTED CODE SETS
+The following functions are exported automatically:
-There are several different code sets you can use for identifying
-scripts. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+=over 4
-For example, the two are equivalent:
+=item B<code2script(CODE [,CODESET] [,'retired'])>
- $script = code2script('phnx','alpha');
- $script = code2script('phnx',LOCALE_SCRIPT_ALPHA);
+See B<code2name> in L<Locale::Codes>
-The codesets currently supported are:
+=item B<script2code(NAME [,CODESET] [,'retired'])>
-=over 4
+See B<name2code> in L<Locale::Codes>
-=item B<alpha, LOCALE_SCRIPT_ALPHA>
+=item B<script_code2code(CODE ,CODESET ,CODESET2)>
-This is a set of four-letter (capitalized) codes from ISO 15924
-such as 'Phnx' for Phoenician. It also includes additions to this
-set included in the IANA language registry.
+See B<code2code> in L<Locale::Codes>
-The Zxxx, Zyyy, and Zzzz codes are not used.
+=item B<all_script_codes([CODESET] [,'retired'])>
-This is the default code set.
+See B<all_codes> in L<Locale::Codes>
-=item B<num, LOCALE_SCRIPT_NUMERIC>
+=item B<all_script_names([CODESET] [,'retired'])>
-This is a set of three-digit numeric codes from ISO 15924 such as 115
-for Phoenician.
+See B<all_names> in L<Locale::Codes>
=back
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2script(CODE [,CODESET] [,'retired'])>
-
-=item B<script2code(NAME [,CODESET] [,'retired'])>
-
-=item B<script_code2code(CODE ,CODESET ,CODESET2)>
+=item B<Locale::Codes::Script::show_errors(FLAG)>
-=item B<all_script_codes([CODESET] [,'retired'])>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<all_script_names([CODESET] [,'retired'])>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
=item B<Locale::Codes::Script::rename_script(CODE ,NEW_NAME [,CODESET])>
+See B<rename_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Script::add_script(CODE ,NAME [,CODESET])>
+See B<add_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Script::delete_script(CODE [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Script::add_script_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Script::delete_script_alias(NAME)>
+See B<delete_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Script::rename_script_code(CODE ,NEW_CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
+
=item B<Locale::Codes::Script::add_script_code_alias(CODE ,NEW_CODE [,CODESET])>
+See B<add_code_alias> in L<Locale::Codes>
+
=item B<Locale::Codes::Script::delete_script_code_alias(CODE [,CODESET])>
-These routines are all documented in the L<Locale::Codes::API> man page.
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -99,18 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.unicode.org/iso15924/>
-
-Home page for ISO 15924.
-
-=item L<http://www.iana.org/assignments/language-subtag-registry>
-
-The IANA language subtag registry.
-
=back
=head1 AUTHOR
@@ -121,9 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Codes.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Codes.pm
index 451a4e4b373..c9094c96804 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Codes.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::Script_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:11 EST 2015
+# Generated on: Fri Feb 23 12:55:05 EST 2018
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
-$Locale::Codes::Data{'script'}{'id'} = '0175';
+$Locale::Codes::Data{'script'}{'id'} = '0195';
$Locale::Codes::Data{'script'}{'id2names'} = {
q(0001) => [
@@ -58,7 +58,9 @@ $Locale::Codes::Data{'script'}{'id2names'} = {
q(Batak),
],
q(0014) => [
+ q(Bengali (Bangla)),
q(Bengali),
+ q(Bangla),
],
q(0015) => [
q(Bhaiksuki),
@@ -103,525 +105,599 @@ $Locale::Codes::Data{'script'}{'id2names'} = {
q(Coptic),
],
q(0029) => [
- q(Cypriot),
+ q(Cypro-Minoan),
],
q(0030) => [
- q(Cyrillic),
+ q(Cypriot syllabary),
],
q(0031) => [
- q(Cyrillic (Old Church Slavonic variant)),
+ q(Cyrillic),
],
q(0032) => [
+ q(Cyrillic (Old Church Slavonic variant)),
+ ],
+ q(0033) => [
q(Devanagari (Nagari)),
q(Devanagari),
q(Nagari),
],
- q(0033) => [
+ q(0034) => [
+ q(Dogra),
+ ],
+ q(0035) => [
q(Deseret (Mormon)),
q(Deseret),
q(Mormon),
],
- q(0034) => [
+ q(0036) => [
q(Duployan shorthand, Duployan stenography),
q(Duployan shorthand),
q(Duployan stenography),
],
- q(0035) => [
+ q(0037) => [
q(Egyptian demotic),
],
- q(0036) => [
+ q(0038) => [
q(Egyptian hieratic),
],
- q(0037) => [
+ q(0039) => [
q(Egyptian hieroglyphs),
],
- q(0038) => [
+ q(0040) => [
q(Elbasan),
],
- q(0039) => [
+ q(0041) => [
q(Ethiopic (Geez)),
q(Ethiopic),
q(Ge'ez),
],
- q(0040) => [
+ q(0042) => [
q(Khutsuri (Asomtavruli and Nuskhuri)),
],
- q(0041) => [
- q(Georgian (Mkhedruli)),
+ q(0043) => [
+ q(Georgian (Mkhedruli and Mtavruli)),
],
- q(0042) => [
+ q(0044) => [
q(Glagolitic),
],
- q(0043) => [
+ q(0045) => [
+ q(Gunjala Gondi),
+ ],
+ q(0046) => [
+ q(Masaram Gondi),
+ ],
+ q(0047) => [
q(Gothic),
],
- q(0044) => [
+ q(0048) => [
q(Grantha),
],
- q(0045) => [
+ q(0049) => [
q(Greek),
],
- q(0046) => [
+ q(0050) => [
q(Gujarati),
],
- q(0047) => [
+ q(0051) => [
q(Gurmukhi),
],
- q(0048) => [
+ q(0052) => [
+ q(Han with Bopomofo (alias for Han + Bopomofo)),
+ ],
+ q(0053) => [
q(Hangul (Hangul, Hangeul)),
q(Hangul),
q(Hangeul),
],
- q(0049) => [
+ q(0054) => [
q(Han (Hanzi, Kanji, Hanja)),
q(Han),
q(Hanzi),
q(Kanji),
q(Hanja),
],
- q(0050) => [
+ q(0055) => [
q(Hanunoo (Hanunoo)),
q(Hanunoo),
],
- q(0051) => [
+ q(0056) => [
q(Han (Simplified variant)),
],
- q(0052) => [
+ q(0057) => [
q(Han (Traditional variant)),
],
- q(0053) => [
+ q(0058) => [
q(Hatran),
],
- q(0054) => [
+ q(0059) => [
q(Hebrew),
],
- q(0055) => [
+ q(0060) => [
q(Hiragana),
],
- q(0056) => [
+ q(0061) => [
q(Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)),
q(Anatolian Hieroglyphs),
q(Luwian Hieroglyphs),
q(Hittite Hieroglyphs),
],
- q(0057) => [
+ q(0062) => [
q(Pahawh Hmong),
],
- q(0058) => [
+ q(0063) => [
+ q(Nyiakeng Puachue Hmong),
+ ],
+ q(0064) => [
q(Japanese syllabaries (alias for Hiragana + Katakana)),
],
- q(0059) => [
+ q(0065) => [
q(Old Hungarian (Hungarian Runic)),
q(Old Hungarian),
q(Hungarian Runic),
],
- q(0060) => [
+ q(0066) => [
q(Indus (Harappan)),
q(Indus),
q(Harappan),
],
- q(0061) => [
+ q(0067) => [
q(Old Italic (Etruscan, Oscan, etc.)),
],
- q(0062) => [
+ q(0068) => [
+ q(Jamo (alias for Jamo subset of Hangul)),
+ ],
+ q(0069) => [
q(Javanese),
],
- q(0063) => [
+ q(0070) => [
q(Japanese (alias for Han + Hiragana + Katakana)),
],
- q(0064) => [
+ q(0071) => [
q(Jurchen),
],
- q(0065) => [
+ q(0072) => [
q(Kayah Li),
],
- q(0066) => [
+ q(0073) => [
q(Katakana),
],
- q(0067) => [
+ q(0074) => [
q(Kharoshthi),
],
- q(0068) => [
+ q(0075) => [
q(Khmer),
],
- q(0069) => [
+ q(0076) => [
q(Khojki),
],
- q(0070) => [
+ q(0077) => [
q(Khitan large script),
],
- q(0071) => [
+ q(0078) => [
q(Khitan small script),
],
- q(0072) => [
+ q(0079) => [
q(Kannada),
],
- q(0073) => [
+ q(0080) => [
q(Korean (alias for Hangul + Han)),
],
- q(0074) => [
+ q(0081) => [
q(Kpelle),
],
- q(0075) => [
+ q(0082) => [
q(Kaithi),
],
- q(0076) => [
+ q(0083) => [
q(Tai Tham (Lanna)),
q(Tai Tham),
q(Lanna),
],
- q(0077) => [
+ q(0084) => [
q(Lao),
],
- q(0078) => [
+ q(0085) => [
q(Latin (Fraktur variant)),
],
- q(0079) => [
+ q(0086) => [
q(Latin (Gaelic variant)),
],
- q(0080) => [
+ q(0087) => [
q(Latin),
],
- q(0081) => [
+ q(0088) => [
q(Leke),
],
- q(0082) => [
+ q(0089) => [
q(Lepcha (Rong)),
q(Lepcha),
q(Rong),
],
- q(0083) => [
+ q(0090) => [
q(Limbu),
],
- q(0084) => [
+ q(0091) => [
q(Linear A),
],
- q(0085) => [
+ q(0092) => [
q(Linear B),
],
- q(0086) => [
+ q(0093) => [
q(Lisu (Fraser)),
q(Lisu),
q(Fraser),
],
- q(0087) => [
+ q(0094) => [
q(Loma),
],
- q(0088) => [
+ q(0095) => [
q(Lycian),
],
- q(0089) => [
+ q(0096) => [
q(Lydian),
],
- q(0090) => [
+ q(0097) => [
q(Mahajani),
],
- q(0091) => [
+ q(0098) => [
+ q(Makasar),
+ ],
+ q(0099) => [
q(Mandaic, Mandaean),
q(Mandaic),
q(Mandaean),
],
- q(0092) => [
+ q(0100) => [
q(Manichaean),
],
- q(0093) => [
+ q(0101) => [
q(Marchen),
],
- q(0094) => [
+ q(0102) => [
q(Mayan hieroglyphs),
],
- q(0095) => [
+ q(0103) => [
+ q(Medefaidrin (Oberi Okaime, Oberi Okaime)),
+ q(Medefaidrin),
+ q(Oberi Okaime),
+ ],
+ q(0104) => [
q(Mende Kikakui),
],
- q(0096) => [
+ q(0105) => [
q(Meroitic Cursive),
],
- q(0097) => [
+ q(0106) => [
q(Meroitic Hieroglyphs),
],
- q(0098) => [
+ q(0107) => [
q(Malayalam),
],
- q(0099) => [
+ q(0108) => [
q(Modi, Modi),
q(Modi),
],
- q(0100) => [
+ q(0109) => [
q(Mongolian),
],
- q(0101) => [
+ q(0110) => [
q(Moon (Moon code, Moon script, Moon type)),
q(Moon),
q(Moon code),
q(Moon script),
q(Moon type),
],
- q(0102) => [
+ q(0111) => [
q(Mro, Mru),
q(Mro),
q(Mru),
],
- q(0103) => [
+ q(0112) => [
q(Meitei Mayek (Meithei, Meetei)),
q(Meitei Mayek),
q(Meithei),
q(Meetei),
],
- q(0104) => [
+ q(0113) => [
q(Multani),
],
- q(0105) => [
+ q(0114) => [
q(Myanmar (Burmese)),
q(Myanmar),
q(Burmese),
],
- q(0106) => [
+ q(0115) => [
q(Old North Arabian (Ancient North Arabian)),
q(Old North Arabian),
q(Ancient North Arabian),
],
- q(0107) => [
+ q(0116) => [
q(Nabataean),
],
- q(0108) => [
- q(Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)),
+ q(0117) => [
+ q(Newa, Newar, Newari, Nepala lipi),
+ q(Newa),
+ q(Newar),
+ q(Newari),
+ q(Nepala lipi),
+ ],
+ q(0118) => [
+ q(Naxi Dongba (Nakhi Tomba)),
+ q(Naxi Dongba),
+ q(Nakhi Tomba),
+ ],
+ q(0119) => [
+ q(Naxi Geba (Nakhi Geba, 'Na-'Khi Ggo-baw)),
+ q(Naxi Geba),
q(Nakhi Geba),
q('Na-'Khi Ggo-baw),
- q(Naxi Geba),
],
- q(0109) => [
+ q(0120) => [
q(N'Ko),
],
- q(0110) => [
+ q(0121) => [
q(Nushu),
],
- q(0111) => [
+ q(0122) => [
q(Ogham),
],
- q(0112) => [
+ q(0123) => [
q(Ol Chiki (Ol Cemet, Ol, Santali)),
q(Ol Chiki),
q(Ol Cemet'),
q(Ol),
q(Santali),
],
- q(0113) => [
+ q(0124) => [
q(Old Turkic, Orkhon Runic),
q(Old Turkic),
q(Orkhon Runic),
],
- q(0114) => [
+ q(0125) => [
+ q(Oriya (Odia)),
q(Oriya),
+ q(Odia),
],
- q(0115) => [
+ q(0126) => [
q(Osage),
],
- q(0116) => [
+ q(0127) => [
q(Osmanya),
],
- q(0117) => [
+ q(0128) => [
q(Palmyrene),
],
- q(0118) => [
+ q(0129) => [
q(Pau Cin Hau),
],
- q(0119) => [
+ q(0130) => [
q(Old Permic),
],
- q(0120) => [
+ q(0131) => [
q(Phags-pa),
],
- q(0121) => [
+ q(0132) => [
q(Inscriptional Pahlavi),
],
- q(0122) => [
+ q(0133) => [
q(Psalter Pahlavi),
],
- q(0123) => [
+ q(0134) => [
q(Book Pahlavi),
],
- q(0124) => [
+ q(0135) => [
q(Phoenician),
],
- q(0125) => [
+ q(0136) => [
q(Miao (Pollard)),
q(Miao),
q(Pollard),
],
- q(0126) => [
+ q(0137) => [
+ q(Klingon (KLI pIqaD)),
+ ],
+ q(0138) => [
q(Inscriptional Parthian),
],
- q(0127) => [
+ q(0139) => [
q(Reserved for private use (start)),
],
- q(0128) => [
+ q(0140) => [
q(Reserved for private use (end)),
],
- q(0129) => [
+ q(0141) => [
q(Rejang (Redjang, Kaganga)),
q(Rejang),
q(Redjang),
q(Kaganga),
],
- q(0130) => [
+ q(0142) => [
+ q(Hanifi Rohingya),
+ ],
+ q(0143) => [
q(Rongorongo),
],
- q(0131) => [
+ q(0144) => [
q(Runic),
],
- q(0132) => [
+ q(0145) => [
q(Samaritan),
],
- q(0133) => [
+ q(0146) => [
q(Sarati),
],
- q(0134) => [
+ q(0147) => [
q(Old South Arabian),
],
- q(0135) => [
+ q(0148) => [
q(Saurashtra),
],
- q(0136) => [
+ q(0149) => [
q(SignWriting),
],
- q(0137) => [
+ q(0150) => [
q(Shavian (Shaw)),
q(Shavian),
q(Shaw),
],
- q(0138) => [
+ q(0151) => [
q(Sharada, Sarada),
q(Sharada),
q(Sarada),
],
- q(0139) => [
+ q(0152) => [
+ q(Shuishu),
+ ],
+ q(0153) => [
q(Siddham, Siddham, Siddhamatrka),
q(Siddham),
q(Siddhamatrka),
],
- q(0140) => [
+ q(0154) => [
q(Khudawadi, Sindhi),
q(Khudawadi),
q(Sindhi),
],
- q(0141) => [
+ q(0155) => [
q(Sinhala),
],
- q(0142) => [
+ q(0156) => [
+ q(Sogdian),
+ ],
+ q(0157) => [
+ q(Old Sogdian),
+ ],
+ q(0158) => [
q(Sora Sompeng),
],
- q(0143) => [
+ q(0159) => [
+ q(Soyombo),
+ ],
+ q(0160) => [
q(Sundanese),
],
- q(0144) => [
+ q(0161) => [
q(Syloti Nagri),
],
- q(0145) => [
+ q(0162) => [
q(Syriac),
],
- q(0146) => [
+ q(0163) => [
q(Syriac (Estrangelo variant)),
],
- q(0147) => [
+ q(0164) => [
q(Syriac (Western variant)),
],
- q(0148) => [
+ q(0165) => [
q(Syriac (Eastern variant)),
],
- q(0149) => [
+ q(0166) => [
q(Tagbanwa),
],
- q(0150) => [
+ q(0167) => [
q(Takri, Takri, Tankri),
q(Takri),
q(Tankri),
],
- q(0151) => [
+ q(0168) => [
q(Tai Le),
],
- q(0152) => [
+ q(0169) => [
q(New Tai Lue),
],
- q(0153) => [
+ q(0170) => [
q(Tamil),
],
- q(0154) => [
+ q(0171) => [
q(Tangut),
],
- q(0155) => [
+ q(0172) => [
q(Tai Viet),
],
- q(0156) => [
+ q(0173) => [
q(Telugu),
],
- q(0157) => [
+ q(0174) => [
q(Tengwar),
],
- q(0158) => [
+ q(0175) => [
q(Tifinagh (Berber)),
q(Tifinagh),
q(Berber),
],
- q(0159) => [
+ q(0176) => [
q(Tagalog (Baybayin, Alibata)),
q(Tagalog),
q(Baybayin),
q(Alibata),
],
- q(0160) => [
+ q(0177) => [
q(Thaana),
],
- q(0161) => [
+ q(0178) => [
q(Thai),
],
- q(0162) => [
+ q(0179) => [
q(Tibetan),
],
- q(0163) => [
+ q(0180) => [
q(Tirhuta),
],
- q(0164) => [
+ q(0181) => [
q(Ugaritic),
],
- q(0165) => [
+ q(0182) => [
q(Vai),
],
- q(0166) => [
+ q(0183) => [
q(Visible Speech),
],
- q(0167) => [
+ q(0184) => [
q(Warang Citi (Varang Kshiti)),
q(Warang Citi),
q(Varang Kshiti),
],
- q(0168) => [
+ q(0185) => [
+ q(Wancho),
+ ],
+ q(0186) => [
q(Woleai),
],
- q(0169) => [
+ q(0187) => [
q(Old Persian),
],
- q(0170) => [
+ q(0188) => [
q(Cuneiform, Sumero-Akkadian),
q(Sumero-Akkadian cuneiform),
],
- q(0171) => [
+ q(0189) => [
q(Yi),
],
- q(0172) => [
+ q(0190) => [
+ q(Zanabazar Square (Zanabazarin Dorboljin Useg, Xewtee Dorboljin Bicig, Horizontal Square Script)),
+ q(Zanabazar Square),
+ q(Zanabazarin Dorboljin Useg),
+ q(Xewtee Dorboljin Bicig),
+ q(Horizontal Square Script),
+ ],
+ q(0191) => [
q(Code for inherited script),
],
- q(0173) => [
+ q(0192) => [
q(Mathematical notation),
],
- q(0174) => [
+ q(0193) => [
+ q(Symbols (Emoji variant)),
+ ],
+ q(0194) => [
q(Symbols),
],
};
$Locale::Codes::Data{'script'}{'alias2id'} = {
q('na-'khi ggo-baw) => [
- q(0108),
- q(2),
+ q(0119),
+ q(3),
],
q(adlam) => [
q(0001),
@@ -640,19 +716,19 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(alibata) => [
- q(0159),
+ q(0176),
q(3),
],
q(anatolian hieroglyphs) => [
- q(0056),
+ q(0061),
q(1),
],
q(anatolian hieroglyphs (luwian hieroglyphs, hittite hieroglyphs)) => [
- q(0056),
+ q(0061),
q(0),
],
q(ancient north arabian) => [
- q(0106),
+ q(0115),
q(2),
],
q(arabic) => [
@@ -679,6 +755,10 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0011),
q(0),
],
+ q(bangla) => [
+ q(0014),
+ q(2),
+ ],
q(bassa vah) => [
q(0012),
q(0),
@@ -688,15 +768,19 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(baybayin) => [
- q(0159),
+ q(0176),
q(2),
],
q(bengali) => [
q(0014),
+ q(1),
+ ],
+ q(bengali (bangla)) => [
+ q(0014),
q(0),
],
q(berber) => [
- q(0158),
+ q(0175),
q(2),
],
q(bhaiksuki) => [
@@ -708,7 +792,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(book pahlavi) => [
- q(0123),
+ q(0134),
q(0),
],
q(bopomofo) => [
@@ -732,7 +816,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(burmese) => [
- q(0105),
+ q(0114),
q(2),
],
q(carian) => [
@@ -760,7 +844,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(code for inherited script) => [
- q(0172),
+ q(0191),
q(0),
],
q(coptic) => [
@@ -768,175 +852,199 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(cuneiform, sumero-akkadian) => [
- q(0170),
+ q(0188),
q(0),
],
- q(cypriot) => [
+ q(cypriot syllabary) => [
+ q(0030),
+ q(0),
+ ],
+ q(cypro-minoan) => [
q(0029),
q(0),
],
q(cyrillic) => [
- q(0030),
+ q(0031),
q(0),
],
q(cyrillic (old church slavonic variant)) => [
- q(0031),
+ q(0032),
q(0),
],
q(deseret) => [
- q(0033),
+ q(0035),
q(1),
],
q(deseret (mormon)) => [
- q(0033),
+ q(0035),
q(0),
],
q(devanagari) => [
- q(0032),
+ q(0033),
q(1),
],
q(devanagari (nagari)) => [
- q(0032),
+ q(0033),
q(0),
],
- q(duployan shorthand) => [
+ q(dogra) => [
q(0034),
+ q(0),
+ ],
+ q(duployan shorthand) => [
+ q(0036),
q(1),
],
q(duployan shorthand, duployan stenography) => [
- q(0034),
+ q(0036),
q(0),
],
q(duployan stenography) => [
- q(0034),
+ q(0036),
q(2),
],
q(egyptian demotic) => [
- q(0035),
+ q(0037),
q(0),
],
q(egyptian hieratic) => [
- q(0036),
+ q(0038),
q(0),
],
q(egyptian hieroglyphs) => [
- q(0037),
+ q(0039),
q(0),
],
q(elbasan) => [
- q(0038),
+ q(0040),
q(0),
],
q(ethiopic) => [
- q(0039),
+ q(0041),
q(1),
],
q(ethiopic (geez)) => [
- q(0039),
+ q(0041),
q(0),
],
q(fraser) => [
- q(0086),
+ q(0093),
q(2),
],
q(ge'ez) => [
- q(0039),
+ q(0041),
q(2),
],
- q(georgian (mkhedruli)) => [
- q(0041),
+ q(georgian (mkhedruli and mtavruli)) => [
+ q(0043),
q(0),
],
q(glagolitic) => [
- q(0042),
+ q(0044),
q(0),
],
q(gothic) => [
- q(0043),
+ q(0047),
q(0),
],
q(grantha) => [
- q(0044),
+ q(0048),
q(0),
],
q(greek) => [
- q(0045),
+ q(0049),
q(0),
],
q(gujarati) => [
- q(0046),
+ q(0050),
+ q(0),
+ ],
+ q(gunjala gondi) => [
+ q(0045),
q(0),
],
q(gurmukhi) => [
- q(0047),
+ q(0051),
q(0),
],
q(han) => [
- q(0049),
+ q(0054),
q(1),
],
q(han (hanzi, kanji, hanja)) => [
- q(0049),
+ q(0054),
q(0),
],
q(han (simplified variant)) => [
- q(0051),
+ q(0056),
q(0),
],
q(han (traditional variant)) => [
+ q(0057),
+ q(0),
+ ],
+ q(han with bopomofo (alias for han + bopomofo)) => [
q(0052),
q(0),
],
q(hangeul) => [
- q(0048),
+ q(0053),
q(2),
],
q(hangul) => [
- q(0048),
+ q(0053),
q(1),
],
q(hangul (hangul, hangeul)) => [
- q(0048),
+ q(0053),
+ q(0),
+ ],
+ q(hanifi rohingya) => [
+ q(0142),
q(0),
],
q(hanja) => [
- q(0049),
+ q(0054),
q(4),
],
q(hanunoo) => [
- q(0050),
+ q(0055),
q(1),
],
q(hanunoo (hanunoo)) => [
- q(0050),
+ q(0055),
q(0),
],
q(hanzi) => [
- q(0049),
+ q(0054),
q(2),
],
q(harappan) => [
- q(0060),
+ q(0066),
q(2),
],
q(hatran) => [
- q(0053),
+ q(0058),
q(0),
],
q(hebrew) => [
- q(0054),
+ q(0059),
q(0),
],
q(hiragana) => [
- q(0055),
+ q(0060),
q(0),
],
q(hittite hieroglyphs) => [
- q(0056),
+ q(0061),
q(3),
],
+ q(horizontal square script) => [
+ q(0190),
+ q(4),
+ ],
q(hungarian runic) => [
- q(0059),
+ q(0065),
q(2),
],
q(imperial aramaic) => [
@@ -944,579 +1052,671 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(indus) => [
- q(0060),
+ q(0066),
q(1),
],
q(indus (harappan)) => [
- q(0060),
+ q(0066),
q(0),
],
q(inscriptional pahlavi) => [
- q(0121),
+ q(0132),
q(0),
],
q(inscriptional parthian) => [
- q(0126),
+ q(0138),
+ q(0),
+ ],
+ q(jamo (alias for jamo subset of hangul)) => [
+ q(0068),
q(0),
],
q(japanese (alias for han + hiragana + katakana)) => [
- q(0063),
+ q(0070),
q(0),
],
q(japanese syllabaries (alias for hiragana + katakana)) => [
- q(0058),
+ q(0064),
q(0),
],
q(javanese) => [
- q(0062),
+ q(0069),
q(0),
],
q(jurchen) => [
- q(0064),
+ q(0071),
q(0),
],
q(kaganga) => [
- q(0129),
+ q(0141),
q(3),
],
q(kaithi) => [
- q(0075),
+ q(0082),
q(0),
],
q(kanji) => [
- q(0049),
+ q(0054),
q(3),
],
q(kannada) => [
- q(0072),
+ q(0079),
q(0),
],
q(katakana) => [
- q(0066),
+ q(0073),
q(0),
],
q(kayah li) => [
- q(0065),
+ q(0072),
q(0),
],
q(kharoshthi) => [
- q(0067),
+ q(0074),
q(0),
],
q(khitan large script) => [
- q(0070),
+ q(0077),
q(0),
],
q(khitan small script) => [
- q(0071),
+ q(0078),
q(0),
],
q(khmer) => [
- q(0068),
+ q(0075),
q(0),
],
q(khojki) => [
- q(0069),
+ q(0076),
q(0),
],
q(khudawadi) => [
- q(0140),
+ q(0154),
q(1),
],
q(khudawadi, sindhi) => [
- q(0140),
+ q(0154),
q(0),
],
q(khutsuri (asomtavruli and nuskhuri)) => [
- q(0040),
+ q(0042),
+ q(0),
+ ],
+ q(klingon (kli piqad)) => [
+ q(0137),
q(0),
],
q(korean (alias for hangul + han)) => [
- q(0073),
+ q(0080),
q(0),
],
q(kpelle) => [
- q(0074),
+ q(0081),
q(0),
],
q(lanna) => [
- q(0076),
+ q(0083),
q(2),
],
q(lao) => [
- q(0077),
+ q(0084),
q(0),
],
q(latin) => [
- q(0080),
+ q(0087),
q(0),
],
q(latin (fraktur variant)) => [
- q(0078),
+ q(0085),
q(0),
],
q(latin (gaelic variant)) => [
- q(0079),
+ q(0086),
q(0),
],
q(leke) => [
- q(0081),
+ q(0088),
q(0),
],
q(lepcha) => [
- q(0082),
+ q(0089),
q(1),
],
q(lepcha (rong)) => [
- q(0082),
+ q(0089),
q(0),
],
q(limbu) => [
- q(0083),
+ q(0090),
q(0),
],
q(linear a) => [
- q(0084),
+ q(0091),
q(0),
],
q(linear b) => [
- q(0085),
+ q(0092),
q(0),
],
q(lisu) => [
- q(0086),
+ q(0093),
q(1),
],
q(lisu (fraser)) => [
- q(0086),
+ q(0093),
q(0),
],
q(loma) => [
- q(0087),
+ q(0094),
q(0),
],
q(luwian hieroglyphs) => [
- q(0056),
+ q(0061),
q(2),
],
q(lycian) => [
- q(0088),
+ q(0095),
q(0),
],
q(lydian) => [
- q(0089),
+ q(0096),
q(0),
],
q(mahajani) => [
- q(0090),
+ q(0097),
q(0),
],
- q(malayalam) => [
+ q(makasar) => [
q(0098),
q(0),
],
+ q(malayalam) => [
+ q(0107),
+ q(0),
+ ],
q(mandaean) => [
- q(0091),
+ q(0099),
q(2),
],
q(mandaic) => [
- q(0091),
+ q(0099),
q(1),
],
q(mandaic, mandaean) => [
- q(0091),
+ q(0099),
q(0),
],
q(manichaean) => [
- q(0092),
+ q(0100),
q(0),
],
q(marchen) => [
- q(0093),
+ q(0101),
+ q(0),
+ ],
+ q(masaram gondi) => [
+ q(0046),
q(0),
],
q(mathematical notation) => [
- q(0173),
+ q(0192),
q(0),
],
q(mayan hieroglyphs) => [
- q(0094),
+ q(0102),
q(0),
],
- q(meetei) => [
+ q(medefaidrin) => [
+ q(0103),
+ q(1),
+ ],
+ q(medefaidrin (oberi okaime, oberi okaime)) => [
q(0103),
+ q(0),
+ ],
+ q(meetei) => [
+ q(0112),
q(3),
],
q(meitei mayek) => [
- q(0103),
+ q(0112),
q(1),
],
q(meitei mayek (meithei, meetei)) => [
- q(0103),
+ q(0112),
q(0),
],
q(meithei) => [
- q(0103),
+ q(0112),
q(2),
],
q(mende kikakui) => [
- q(0095),
+ q(0104),
q(0),
],
q(meroitic cursive) => [
- q(0096),
+ q(0105),
q(0),
],
q(meroitic hieroglyphs) => [
- q(0097),
+ q(0106),
q(0),
],
q(miao) => [
- q(0125),
+ q(0136),
q(1),
],
q(miao (pollard)) => [
- q(0125),
+ q(0136),
q(0),
],
q(modi) => [
- q(0099),
+ q(0108),
q(1),
],
q(modi, modi) => [
- q(0099),
+ q(0108),
q(0),
],
q(mongolian) => [
- q(0100),
+ q(0109),
q(0),
],
q(moon) => [
- q(0101),
+ q(0110),
q(1),
],
q(moon (moon code, moon script, moon type)) => [
- q(0101),
+ q(0110),
q(0),
],
q(moon code) => [
- q(0101),
+ q(0110),
q(2),
],
q(moon script) => [
- q(0101),
+ q(0110),
q(3),
],
q(moon type) => [
- q(0101),
+ q(0110),
q(4),
],
q(mormon) => [
- q(0033),
+ q(0035),
q(2),
],
q(mro) => [
- q(0102),
+ q(0111),
q(1),
],
q(mro, mru) => [
- q(0102),
+ q(0111),
q(0),
],
q(mru) => [
- q(0102),
+ q(0111),
q(2),
],
q(multani) => [
- q(0104),
+ q(0113),
q(0),
],
q(myanmar) => [
- q(0105),
+ q(0114),
q(1),
],
q(myanmar (burmese)) => [
- q(0105),
+ q(0114),
q(0),
],
q(n'ko) => [
- q(0109),
+ q(0120),
q(0),
],
q(nabataean) => [
- q(0107),
+ q(0116),
q(0),
],
q(nagari) => [
- q(0032),
+ q(0033),
q(2),
],
q(nakhi geba) => [
- q(0108),
+ q(0119),
+ q(2),
+ ],
+ q(nakhi tomba) => [
+ q(0118),
+ q(2),
+ ],
+ q(naxi dongba) => [
+ q(0118),
q(1),
],
- q(nakhi geba ('na-'khi ggo-baw, naxi geba)) => [
- q(0108),
+ q(naxi dongba (nakhi tomba)) => [
+ q(0118),
q(0),
],
q(naxi geba) => [
- q(0108),
- q(3),
+ q(0119),
+ q(1),
+ ],
+ q(naxi geba (nakhi geba, 'na-'khi ggo-baw)) => [
+ q(0119),
+ q(0),
+ ],
+ q(nepala lipi) => [
+ q(0117),
+ q(4),
],
q(new tai lue) => [
- q(0152),
+ q(0169),
+ q(0),
+ ],
+ q(newa) => [
+ q(0117),
+ q(1),
+ ],
+ q(newa, newar, newari, nepala lipi) => [
+ q(0117),
q(0),
],
+ q(newar) => [
+ q(0117),
+ q(2),
+ ],
+ q(newari) => [
+ q(0117),
+ q(3),
+ ],
q(nushu) => [
- q(0110),
+ q(0121),
+ q(0),
+ ],
+ q(nyiakeng puachue hmong) => [
+ q(0063),
q(0),
],
+ q(oberi okaime) => [
+ q(0103),
+ q(2),
+ ],
+ q(odia) => [
+ q(0125),
+ q(2),
+ ],
q(ogham) => [
- q(0111),
+ q(0122),
q(0),
],
q(ol) => [
- q(0112),
+ q(0123),
q(3),
],
q(ol cemet') => [
- q(0112),
+ q(0123),
q(2),
],
q(ol chiki) => [
- q(0112),
+ q(0123),
q(1),
],
q(ol chiki (ol cemet, ol, santali)) => [
- q(0112),
+ q(0123),
q(0),
],
q(old hungarian) => [
- q(0059),
+ q(0065),
q(1),
],
q(old hungarian (hungarian runic)) => [
- q(0059),
+ q(0065),
q(0),
],
q(old italic (etruscan, oscan, etc.)) => [
- q(0061),
+ q(0067),
q(0),
],
q(old north arabian) => [
- q(0106),
+ q(0115),
q(1),
],
q(old north arabian (ancient north arabian)) => [
- q(0106),
+ q(0115),
q(0),
],
q(old permic) => [
- q(0119),
+ q(0130),
q(0),
],
q(old persian) => [
- q(0169),
+ q(0187),
+ q(0),
+ ],
+ q(old sogdian) => [
+ q(0157),
q(0),
],
q(old south arabian) => [
- q(0134),
+ q(0147),
q(0),
],
q(old turkic) => [
- q(0113),
+ q(0124),
q(1),
],
q(old turkic, orkhon runic) => [
- q(0113),
+ q(0124),
q(0),
],
q(oriya) => [
- q(0114),
+ q(0125),
+ q(1),
+ ],
+ q(oriya (odia)) => [
+ q(0125),
q(0),
],
q(orkhon runic) => [
- q(0113),
+ q(0124),
q(2),
],
q(osage) => [
- q(0115),
+ q(0126),
q(0),
],
q(osmanya) => [
- q(0116),
+ q(0127),
q(0),
],
q(pahawh hmong) => [
- q(0057),
+ q(0062),
q(0),
],
q(palmyrene) => [
- q(0117),
+ q(0128),
q(0),
],
q(pau cin hau) => [
- q(0118),
+ q(0129),
q(0),
],
q(phags-pa) => [
- q(0120),
+ q(0131),
q(0),
],
q(phoenician) => [
- q(0124),
+ q(0135),
q(0),
],
q(pollard) => [
- q(0125),
+ q(0136),
q(2),
],
q(psalter pahlavi) => [
- q(0122),
+ q(0133),
q(0),
],
q(redjang) => [
- q(0129),
+ q(0141),
q(2),
],
q(rejang) => [
- q(0129),
+ q(0141),
q(1),
],
q(rejang (redjang, kaganga)) => [
- q(0129),
+ q(0141),
q(0),
],
q(reserved for private use (end)) => [
- q(0128),
+ q(0140),
q(0),
],
q(reserved for private use (start)) => [
- q(0127),
+ q(0139),
q(0),
],
q(rong) => [
- q(0082),
+ q(0089),
q(2),
],
q(rongorongo) => [
- q(0130),
+ q(0143),
q(0),
],
q(runic) => [
- q(0131),
+ q(0144),
q(0),
],
q(samaritan) => [
- q(0132),
+ q(0145),
q(0),
],
q(santali) => [
- q(0112),
+ q(0123),
q(4),
],
q(sarada) => [
- q(0138),
+ q(0151),
q(2),
],
q(sarati) => [
- q(0133),
+ q(0146),
q(0),
],
q(saurashtra) => [
- q(0135),
+ q(0148),
q(0),
],
q(sharada) => [
- q(0138),
+ q(0151),
q(1),
],
q(sharada, sarada) => [
- q(0138),
+ q(0151),
q(0),
],
q(shavian) => [
- q(0137),
+ q(0150),
q(1),
],
q(shavian (shaw)) => [
- q(0137),
+ q(0150),
q(0),
],
q(shaw) => [
- q(0137),
+ q(0150),
q(2),
],
+ q(shuishu) => [
+ q(0152),
+ q(0),
+ ],
q(siddham) => [
- q(0139),
+ q(0153),
q(1),
],
q(siddham, siddham, siddhamatrka) => [
- q(0139),
+ q(0153),
q(0),
],
q(siddhamatrka) => [
- q(0139),
+ q(0153),
q(2),
],
q(signwriting) => [
- q(0136),
+ q(0149),
q(0),
],
q(sindhi) => [
- q(0140),
+ q(0154),
q(2),
],
q(sinhala) => [
- q(0141),
+ q(0155),
+ q(0),
+ ],
+ q(sogdian) => [
+ q(0156),
q(0),
],
q(sora sompeng) => [
- q(0142),
+ q(0158),
+ q(0),
+ ],
+ q(soyombo) => [
+ q(0159),
q(0),
],
q(sumero-akkadian cuneiform) => [
- q(0170),
+ q(0188),
q(1),
],
q(sundanese) => [
- q(0143),
+ q(0160),
q(0),
],
q(syloti nagri) => [
- q(0144),
+ q(0161),
q(0),
],
q(symbols) => [
- q(0174),
+ q(0194),
+ q(0),
+ ],
+ q(symbols (emoji variant)) => [
+ q(0193),
q(0),
],
q(syriac) => [
- q(0145),
+ q(0162),
q(0),
],
q(syriac (eastern variant)) => [
- q(0148),
+ q(0165),
q(0),
],
q(syriac (estrangelo variant)) => [
- q(0146),
+ q(0163),
q(0),
],
q(syriac (western variant)) => [
- q(0147),
+ q(0164),
q(0),
],
q(tagalog) => [
- q(0159),
+ q(0176),
q(1),
],
q(tagalog (baybayin, alibata)) => [
- q(0159),
+ q(0176),
q(0),
],
q(tagbanwa) => [
- q(0149),
+ q(0166),
q(0),
],
q(tai ahom) => [
@@ -1524,75 +1724,75 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(2),
],
q(tai le) => [
- q(0151),
+ q(0168),
q(0),
],
q(tai tham) => [
- q(0076),
+ q(0083),
q(1),
],
q(tai tham (lanna)) => [
- q(0076),
+ q(0083),
q(0),
],
q(tai viet) => [
- q(0155),
+ q(0172),
q(0),
],
q(takri) => [
- q(0150),
+ q(0167),
q(1),
],
q(takri, takri, tankri) => [
- q(0150),
+ q(0167),
q(0),
],
q(tamil) => [
- q(0153),
+ q(0170),
q(0),
],
q(tangut) => [
- q(0154),
+ q(0171),
q(0),
],
q(tankri) => [
- q(0150),
+ q(0167),
q(2),
],
q(telugu) => [
- q(0156),
+ q(0173),
q(0),
],
q(tengwar) => [
- q(0157),
+ q(0174),
q(0),
],
q(thaana) => [
- q(0160),
+ q(0177),
q(0),
],
q(thai) => [
- q(0161),
+ q(0178),
q(0),
],
q(tibetan) => [
- q(0162),
+ q(0179),
q(0),
],
q(tifinagh) => [
- q(0158),
+ q(0175),
q(1),
],
q(tifinagh (berber)) => [
- q(0158),
+ q(0175),
q(0),
],
q(tirhuta) => [
- q(0163),
+ q(0180),
q(0),
],
q(ugaritic) => [
- q(0164),
+ q(0181),
q(0),
],
q(unified canadian aboriginal syllabics) => [
@@ -1600,33 +1800,53 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(vai) => [
- q(0165),
+ q(0182),
q(0),
],
q(varang kshiti) => [
- q(0167),
+ q(0184),
q(2),
],
q(visible speech) => [
- q(0166),
+ q(0183),
+ q(0),
+ ],
+ q(wancho) => [
+ q(0185),
q(0),
],
q(warang citi) => [
- q(0167),
+ q(0184),
q(1),
],
q(warang citi (varang kshiti)) => [
- q(0167),
+ q(0184),
q(0),
],
q(woleai) => [
- q(0168),
+ q(0186),
q(0),
],
+ q(xewtee dorboljin bicig) => [
+ q(0190),
+ q(3),
+ ],
q(yi) => [
- q(0171),
+ q(0189),
+ q(0),
+ ],
+ q(zanabazar square) => [
+ q(0190),
+ q(1),
+ ],
+ q(zanabazar square (zanabazarin dorboljin useg, xewtee dorboljin bicig, horizontal square script)) => [
+ q(0190),
q(0),
],
+ q(zanabazarin dorboljin useg) => [
+ q(0190),
+ q(2),
+ ],
};
$Locale::Codes::Data{'script'}{'code2id'} = {
@@ -1685,7 +1905,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
],
q(Beng) => [
q(0014),
- q(0),
+ q(1),
],
q(Bhks) => [
q(0015),
@@ -1743,658 +1963,742 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0028),
q(0),
],
- q(Cprt) => [
+ q(Cpmn) => [
q(0029),
q(0),
],
- q(Cyrl) => [
+ q(Cprt) => [
q(0030),
q(0),
],
- q(Cyrs) => [
+ q(Cyrl) => [
q(0031),
q(0),
],
- q(Deva) => [
+ q(Cyrs) => [
q(0032),
+ q(0),
+ ],
+ q(Deva) => [
+ q(0033),
q(1),
],
+ q(Dogr) => [
+ q(0034),
+ q(0),
+ ],
q(Dsrt) => [
- q(0033),
+ q(0035),
q(1),
],
q(Dupl) => [
- q(0034),
+ q(0036),
q(1),
],
q(Egyd) => [
- q(0035),
+ q(0037),
q(0),
],
q(Egyh) => [
- q(0036),
+ q(0038),
q(0),
],
q(Egyp) => [
- q(0037),
+ q(0039),
q(0),
],
q(Elba) => [
- q(0038),
+ q(0040),
q(0),
],
q(Ethi) => [
- q(0039),
+ q(0041),
q(1),
],
q(Geok) => [
- q(0040),
+ q(0042),
q(0),
],
q(Geor) => [
- q(0041),
+ q(0043),
q(0),
],
q(Glag) => [
- q(0042),
+ q(0044),
+ q(0),
+ ],
+ q(Gong) => [
+ q(0045),
+ q(0),
+ ],
+ q(Gonm) => [
+ q(0046),
q(0),
],
q(Goth) => [
- q(0043),
+ q(0047),
q(0),
],
q(Gran) => [
- q(0044),
+ q(0048),
q(0),
],
q(Grek) => [
- q(0045),
+ q(0049),
q(0),
],
q(Gujr) => [
- q(0046),
+ q(0050),
q(0),
],
q(Guru) => [
- q(0047),
+ q(0051),
+ q(0),
+ ],
+ q(Hanb) => [
+ q(0052),
q(0),
],
q(Hang) => [
- q(0048),
+ q(0053),
q(1),
],
q(Hani) => [
- q(0049),
+ q(0054),
q(1),
],
q(Hano) => [
- q(0050),
+ q(0055),
q(1),
],
q(Hans) => [
- q(0051),
+ q(0056),
q(0),
],
q(Hant) => [
- q(0052),
+ q(0057),
q(0),
],
q(Hatr) => [
- q(0053),
+ q(0058),
q(0),
],
q(Hebr) => [
- q(0054),
+ q(0059),
q(0),
],
q(Hira) => [
- q(0055),
+ q(0060),
q(0),
],
q(Hluw) => [
- q(0056),
+ q(0061),
q(1),
],
q(Hmng) => [
- q(0057),
+ q(0062),
+ q(0),
+ ],
+ q(Hmnp) => [
+ q(0063),
q(0),
],
q(Hrkt) => [
- q(0058),
+ q(0064),
q(0),
],
q(Hung) => [
- q(0059),
+ q(0065),
q(1),
],
q(Inds) => [
- q(0060),
+ q(0066),
q(1),
],
q(Ital) => [
- q(0061),
+ q(0067),
+ q(0),
+ ],
+ q(Jamo) => [
+ q(0068),
q(0),
],
q(Java) => [
- q(0062),
+ q(0069),
q(0),
],
q(Jpan) => [
- q(0063),
+ q(0070),
q(0),
],
q(Jurc) => [
- q(0064),
+ q(0071),
q(0),
],
q(Kali) => [
- q(0065),
+ q(0072),
q(0),
],
q(Kana) => [
- q(0066),
+ q(0073),
q(0),
],
q(Khar) => [
- q(0067),
+ q(0074),
q(0),
],
q(Khmr) => [
- q(0068),
+ q(0075),
q(0),
],
q(Khoj) => [
- q(0069),
+ q(0076),
q(0),
],
q(Kitl) => [
- q(0070),
+ q(0077),
q(0),
],
q(Kits) => [
- q(0071),
+ q(0078),
q(0),
],
q(Knda) => [
- q(0072),
+ q(0079),
q(0),
],
q(Kore) => [
- q(0073),
+ q(0080),
q(0),
],
q(Kpel) => [
- q(0074),
+ q(0081),
q(0),
],
q(Kthi) => [
- q(0075),
+ q(0082),
q(0),
],
q(Lana) => [
- q(0076),
+ q(0083),
q(1),
],
q(Laoo) => [
- q(0077),
+ q(0084),
q(0),
],
q(Latf) => [
- q(0078),
+ q(0085),
q(0),
],
q(Latg) => [
- q(0079),
+ q(0086),
q(0),
],
q(Latn) => [
- q(0080),
+ q(0087),
q(0),
],
q(Leke) => [
- q(0081),
+ q(0088),
q(0),
],
q(Lepc) => [
- q(0082),
+ q(0089),
q(1),
],
q(Limb) => [
- q(0083),
+ q(0090),
q(0),
],
q(Lina) => [
- q(0084),
+ q(0091),
q(0),
],
q(Linb) => [
- q(0085),
+ q(0092),
q(0),
],
q(Lisu) => [
- q(0086),
+ q(0093),
q(1),
],
q(Loma) => [
- q(0087),
+ q(0094),
q(0),
],
q(Lyci) => [
- q(0088),
+ q(0095),
q(0),
],
q(Lydi) => [
- q(0089),
+ q(0096),
q(0),
],
q(Mahj) => [
- q(0090),
+ q(0097),
+ q(0),
+ ],
+ q(Maka) => [
+ q(0098),
q(0),
],
q(Mand) => [
- q(0091),
+ q(0099),
q(1),
],
q(Mani) => [
- q(0092),
+ q(0100),
q(0),
],
q(Marc) => [
- q(0093),
+ q(0101),
q(0),
],
q(Maya) => [
- q(0094),
+ q(0102),
q(0),
],
+ q(Medf) => [
+ q(0103),
+ q(1),
+ ],
q(Mend) => [
- q(0095),
+ q(0104),
q(0),
],
q(Merc) => [
- q(0096),
+ q(0105),
q(0),
],
q(Mero) => [
- q(0097),
+ q(0106),
q(0),
],
q(Mlym) => [
- q(0098),
+ q(0107),
q(0),
],
q(Modi) => [
- q(0099),
+ q(0108),
q(1),
],
q(Mong) => [
- q(0100),
+ q(0109),
q(0),
],
q(Moon) => [
- q(0101),
+ q(0110),
q(1),
],
q(Mroo) => [
- q(0102),
+ q(0111),
q(1),
],
q(Mtei) => [
- q(0103),
+ q(0112),
q(1),
],
q(Mult) => [
- q(0104),
+ q(0113),
q(0),
],
q(Mymr) => [
- q(0105),
+ q(0114),
q(1),
],
q(Narb) => [
- q(0106),
+ q(0115),
q(1),
],
q(Nbat) => [
- q(0107),
+ q(0116),
q(0),
],
+ q(Newa) => [
+ q(0117),
+ q(1),
+ ],
+ q(Nkdb) => [
+ q(0118),
+ q(1),
+ ],
q(Nkgb) => [
- q(0108),
+ q(0119),
q(1),
],
q(Nkoo) => [
- q(0109),
+ q(0120),
q(0),
],
q(Nshu) => [
- q(0110),
+ q(0121),
q(0),
],
q(Ogam) => [
- q(0111),
+ q(0122),
q(0),
],
q(Olck) => [
- q(0112),
+ q(0123),
q(1),
],
q(Orkh) => [
- q(0113),
+ q(0124),
q(1),
],
q(Orya) => [
- q(0114),
- q(0),
+ q(0125),
+ q(1),
],
q(Osge) => [
- q(0115),
+ q(0126),
q(0),
],
q(Osma) => [
- q(0116),
+ q(0127),
q(0),
],
q(Palm) => [
- q(0117),
+ q(0128),
q(0),
],
q(Pauc) => [
- q(0118),
+ q(0129),
q(0),
],
q(Perm) => [
- q(0119),
+ q(0130),
q(0),
],
q(Phag) => [
- q(0120),
+ q(0131),
q(0),
],
q(Phli) => [
- q(0121),
+ q(0132),
q(0),
],
q(Phlp) => [
- q(0122),
+ q(0133),
q(0),
],
q(Phlv) => [
- q(0123),
+ q(0134),
q(0),
],
q(Phnx) => [
- q(0124),
+ q(0135),
+ q(0),
+ ],
+ q(Piqd) => [
+ q(0137),
q(0),
],
q(Plrd) => [
- q(0125),
+ q(0136),
q(1),
],
q(Prti) => [
- q(0126),
+ q(0138),
q(0),
],
q(Qaaa) => [
- q(0127),
+ q(0139),
q(0),
],
q(Qabx) => [
- q(0128),
+ q(0140),
q(0),
],
q(Rjng) => [
- q(0129),
+ q(0141),
q(1),
],
+ q(Rohg) => [
+ q(0142),
+ q(0),
+ ],
q(Roro) => [
- q(0130),
+ q(0143),
q(0),
],
q(Runr) => [
- q(0131),
+ q(0144),
q(0),
],
q(Samr) => [
- q(0132),
+ q(0145),
q(0),
],
q(Sara) => [
- q(0133),
+ q(0146),
q(0),
],
q(Sarb) => [
- q(0134),
+ q(0147),
q(0),
],
q(Saur) => [
- q(0135),
+ q(0148),
q(0),
],
q(Sgnw) => [
- q(0136),
+ q(0149),
q(0),
],
q(Shaw) => [
- q(0137),
+ q(0150),
q(1),
],
q(Shrd) => [
- q(0138),
+ q(0151),
q(1),
],
+ q(Shui) => [
+ q(0152),
+ q(0),
+ ],
q(Sidd) => [
- q(0139),
+ q(0153),
q(1),
],
q(Sind) => [
- q(0140),
+ q(0154),
q(1),
],
q(Sinh) => [
- q(0141),
+ q(0155),
+ q(0),
+ ],
+ q(Sogd) => [
+ q(0156),
+ q(0),
+ ],
+ q(Sogo) => [
+ q(0157),
q(0),
],
q(Sora) => [
- q(0142),
+ q(0158),
+ q(0),
+ ],
+ q(Soyo) => [
+ q(0159),
q(0),
],
q(Sund) => [
- q(0143),
+ q(0160),
q(0),
],
q(Sylo) => [
- q(0144),
+ q(0161),
q(0),
],
q(Syrc) => [
- q(0145),
+ q(0162),
q(0),
],
q(Syre) => [
- q(0146),
+ q(0163),
q(0),
],
q(Syrj) => [
- q(0147),
+ q(0164),
q(0),
],
q(Syrn) => [
- q(0148),
+ q(0165),
q(0),
],
q(Tagb) => [
- q(0149),
+ q(0166),
q(0),
],
q(Takr) => [
- q(0150),
+ q(0167),
q(1),
],
q(Tale) => [
- q(0151),
+ q(0168),
q(0),
],
q(Talu) => [
- q(0152),
+ q(0169),
q(0),
],
q(Taml) => [
- q(0153),
+ q(0170),
q(0),
],
q(Tang) => [
- q(0154),
+ q(0171),
q(0),
],
q(Tavt) => [
- q(0155),
+ q(0172),
q(0),
],
q(Telu) => [
- q(0156),
+ q(0173),
q(0),
],
q(Teng) => [
- q(0157),
+ q(0174),
q(0),
],
q(Tfng) => [
- q(0158),
+ q(0175),
q(1),
],
q(Tglg) => [
- q(0159),
+ q(0176),
q(1),
],
q(Thaa) => [
- q(0160),
+ q(0177),
q(0),
],
q(Thai) => [
- q(0161),
+ q(0178),
q(0),
],
q(Tibt) => [
- q(0162),
+ q(0179),
q(0),
],
q(Tirh) => [
- q(0163),
+ q(0180),
q(0),
],
q(Ugar) => [
- q(0164),
+ q(0181),
q(0),
],
q(Vaii) => [
- q(0165),
+ q(0182),
q(0),
],
q(Visp) => [
- q(0166),
+ q(0183),
q(0),
],
q(Wara) => [
- q(0167),
+ q(0184),
q(1),
],
+ q(Wcho) => [
+ q(0185),
+ q(0),
+ ],
q(Wole) => [
- q(0168),
+ q(0186),
q(0),
],
q(Xpeo) => [
- q(0169),
+ q(0187),
q(0),
],
q(Xsux) => [
- q(0170),
+ q(0188),
q(1),
],
q(Yiii) => [
- q(0171),
+ q(0189),
q(0),
],
+ q(Zanb) => [
+ q(0190),
+ q(1),
+ ],
q(Zinh) => [
- q(0172),
+ q(0191),
q(0),
],
q(Zmth) => [
- q(0173),
+ q(0192),
+ q(0),
+ ],
+ q(Zsye) => [
+ q(0193),
q(0),
],
q(Zsym) => [
- q(0174),
+ q(0194),
q(0),
],
},
q(num) => {
q(020) => [
- q(0170),
+ q(0188),
q(0),
],
q(030) => [
- q(0169),
+ q(0187),
q(0),
],
q(040) => [
- q(0164),
+ q(0181),
q(0),
],
q(050) => [
- q(0037),
+ q(0039),
q(0),
],
q(060) => [
- q(0036),
+ q(0038),
q(0),
],
q(070) => [
- q(0035),
+ q(0037),
q(0),
],
q(080) => [
- q(0056),
+ q(0061),
+ q(0),
+ ],
+ q(085) => [
+ q(0118),
q(0),
],
q(090) => [
- q(0094),
+ q(0102),
q(0),
],
q(095) => [
- q(0136),
+ q(0149),
q(0),
],
q(100) => [
- q(0097),
+ q(0106),
q(0),
],
q(101) => [
- q(0096),
+ q(0105),
q(0),
],
q(105) => [
- q(0134),
+ q(0147),
q(0),
],
q(106) => [
- q(0106),
+ q(0115),
q(0),
],
q(115) => [
- q(0124),
+ q(0135),
q(0),
],
q(116) => [
- q(0089),
+ q(0096),
q(0),
],
q(120) => [
- q(0158),
+ q(0175),
q(0),
],
q(123) => [
- q(0132),
+ q(0145),
q(0),
],
q(124) => [
@@ -2402,31 +2706,31 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(125) => [
- q(0054),
+ q(0059),
q(0),
],
q(126) => [
- q(0117),
+ q(0128),
q(0),
],
q(127) => [
- q(0053),
+ q(0058),
q(0),
],
q(130) => [
- q(0126),
+ q(0138),
q(0),
],
q(131) => [
- q(0121),
+ q(0132),
q(0),
],
q(132) => [
- q(0122),
+ q(0133),
q(0),
],
q(133) => [
- q(0123),
+ q(0134),
q(0),
],
q(134) => [
@@ -2434,35 +2738,43 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(135) => [
- q(0145),
+ q(0162),
q(0),
],
q(136) => [
- q(0148),
+ q(0165),
q(0),
],
q(137) => [
- q(0147),
+ q(0164),
q(0),
],
q(138) => [
- q(0146),
+ q(0163),
q(0),
],
q(139) => [
- q(0092),
+ q(0100),
q(0),
],
q(140) => [
- q(0091),
+ q(0099),
+ q(0),
+ ],
+ q(141) => [
+ q(0156),
+ q(0),
+ ],
+ q(142) => [
+ q(0157),
q(0),
],
q(145) => [
- q(0100),
+ q(0109),
q(0),
],
q(159) => [
- q(0107),
+ q(0116),
q(0),
],
q(160) => [
@@ -2474,31 +2786,31 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(165) => [
- q(0109),
+ q(0120),
q(0),
],
q(166) => [
q(0001),
q(0),
],
+ q(167) => [
+ q(0142),
+ q(0),
+ ],
q(170) => [
- q(0160),
+ q(0177),
q(0),
],
q(175) => [
- q(0113),
+ q(0124),
q(0),
],
q(176) => [
- q(0059),
- q(0),
- ],
- q(199) => [
- q(0102),
+ q(0065),
q(0),
],
q(200) => [
- q(0045),
+ q(0049),
q(0),
],
q(201) => [
@@ -2506,7 +2818,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(202) => [
- q(0088),
+ q(0095),
q(0),
],
q(204) => [
@@ -2514,59 +2826,59 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(206) => [
- q(0043),
+ q(0047),
q(0),
],
q(210) => [
- q(0061),
+ q(0067),
q(0),
],
q(211) => [
- q(0131),
+ q(0144),
q(0),
],
q(212) => [
- q(0111),
+ q(0122),
q(0),
],
q(215) => [
- q(0080),
+ q(0087),
q(0),
],
q(216) => [
- q(0079),
+ q(0086),
q(0),
],
q(217) => [
- q(0078),
+ q(0085),
q(0),
],
q(218) => [
- q(0101),
+ q(0110),
q(0),
],
q(219) => [
- q(0115),
+ q(0126),
q(0),
],
q(220) => [
- q(0030),
+ q(0031),
q(0),
],
q(221) => [
- q(0031),
+ q(0032),
q(0),
],
q(225) => [
- q(0042),
+ q(0044),
q(0),
],
q(226) => [
- q(0038),
+ q(0040),
q(0),
],
q(227) => [
- q(0119),
+ q(0130),
q(0),
],
q(230) => [
@@ -2578,15 +2890,15 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(240) => [
- q(0041),
+ q(0043),
q(0),
],
q(241) => [
- q(0040),
+ q(0042),
q(0),
],
q(250) => [
- q(0033),
+ q(0035),
q(0),
],
q(259) => [
@@ -2594,31 +2906,47 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(260) => [
- q(0116),
+ q(0127),
q(0),
],
q(261) => [
- q(0112),
+ q(0123),
q(0),
],
q(262) => [
- q(0167),
+ q(0184),
q(0),
],
q(263) => [
- q(0118),
+ q(0129),
+ q(0),
+ ],
+ q(264) => [
+ q(0111),
+ q(0),
+ ],
+ q(265) => [
+ q(0103),
q(0),
],
q(280) => [
- q(0166),
+ q(0183),
q(0),
],
q(281) => [
- q(0137),
+ q(0150),
q(0),
],
q(282) => [
- q(0125),
+ q(0136),
+ q(0),
+ ],
+ q(283) => [
+ q(0185),
+ q(0),
+ ],
+ q(284) => [
+ q(0068),
q(0),
],
q(285) => [
@@ -2626,19 +2954,19 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(286) => [
- q(0048),
+ q(0053),
q(0),
],
q(287) => [
- q(0073),
+ q(0080),
q(0),
],
q(288) => [
- q(0071),
+ q(0078),
q(0),
],
q(290) => [
- q(0157),
+ q(0174),
q(0),
],
q(291) => [
@@ -2646,7 +2974,11 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(292) => [
- q(0133),
+ q(0146),
+ q(0),
+ ],
+ q(293) => [
+ q(0137),
q(0),
],
q(300) => [
@@ -2654,59 +2986,67 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(302) => [
- q(0139),
+ q(0153),
q(0),
],
q(305) => [
- q(0067),
+ q(0074),
q(0),
],
q(310) => [
- q(0047),
+ q(0051),
+ q(0),
+ ],
+ q(312) => [
+ q(0045),
+ q(0),
+ ],
+ q(313) => [
+ q(0046),
q(0),
],
q(314) => [
- q(0090),
+ q(0097),
q(0),
],
q(315) => [
- q(0032),
+ q(0033),
q(0),
],
q(316) => [
- q(0144),
+ q(0161),
q(0),
],
q(317) => [
- q(0075),
+ q(0082),
q(0),
],
q(318) => [
- q(0140),
+ q(0154),
q(0),
],
q(319) => [
- q(0138),
+ q(0151),
q(0),
],
q(320) => [
- q(0046),
+ q(0050),
q(0),
],
q(321) => [
- q(0150),
+ q(0167),
q(0),
],
q(322) => [
- q(0069),
+ q(0076),
q(0),
],
q(323) => [
- q(0104),
+ q(0113),
q(0),
],
q(324) => [
- q(0099),
+ q(0108),
q(0),
],
q(325) => [
@@ -2714,23 +3054,35 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(326) => [
- q(0163),
+ q(0180),
q(0),
],
q(327) => [
- q(0114),
+ q(0125),
+ q(0),
+ ],
+ q(328) => [
+ q(0034),
+ q(0),
+ ],
+ q(329) => [
+ q(0159),
q(0),
],
q(330) => [
- q(0162),
+ q(0179),
q(0),
],
q(331) => [
- q(0120),
+ q(0131),
q(0),
],
q(332) => [
- q(0093),
+ q(0101),
+ q(0),
+ ],
+ q(333) => [
+ q(0117),
q(0),
],
q(334) => [
@@ -2738,47 +3090,51 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(335) => [
- q(0082),
+ q(0089),
q(0),
],
q(336) => [
- q(0083),
+ q(0090),
q(0),
],
q(337) => [
- q(0103),
+ q(0112),
q(0),
],
q(338) => [
q(0004),
q(0),
],
+ q(339) => [
+ q(0190),
+ q(0),
+ ],
q(340) => [
- q(0156),
+ q(0173),
q(0),
],
q(343) => [
- q(0044),
+ q(0048),
q(0),
],
q(344) => [
- q(0135),
+ q(0148),
q(0),
],
q(345) => [
- q(0072),
+ q(0079),
q(0),
],
q(346) => [
- q(0153),
+ q(0170),
q(0),
],
q(347) => [
- q(0098),
+ q(0107),
q(0),
],
q(348) => [
- q(0141),
+ q(0155),
q(0),
],
q(349) => [
@@ -2786,35 +3142,35 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(350) => [
- q(0105),
+ q(0114),
q(0),
],
q(351) => [
- q(0076),
+ q(0083),
q(0),
],
q(352) => [
- q(0161),
+ q(0178),
q(0),
],
q(353) => [
- q(0151),
+ q(0168),
q(0),
],
q(354) => [
- q(0152),
+ q(0169),
q(0),
],
q(355) => [
- q(0068),
+ q(0075),
q(0),
],
q(356) => [
- q(0077),
+ q(0084),
q(0),
],
q(357) => [
- q(0065),
+ q(0072),
q(0),
],
q(358) => [
@@ -2822,7 +3178,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(359) => [
- q(0155),
+ q(0172),
q(0),
],
q(360) => [
@@ -2830,35 +3186,39 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(361) => [
- q(0062),
+ q(0069),
q(0),
],
q(362) => [
- q(0143),
+ q(0160),
q(0),
],
q(363) => [
- q(0129),
+ q(0141),
q(0),
],
q(364) => [
- q(0081),
+ q(0088),
q(0),
],
q(365) => [
q(0013),
q(0),
],
+ q(366) => [
+ q(0098),
+ q(0),
+ ],
q(367) => [
q(0020),
q(0),
],
q(370) => [
- q(0159),
+ q(0176),
q(0),
],
q(371) => [
- q(0050),
+ q(0055),
q(0),
],
q(372) => [
@@ -2866,51 +3226,55 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(373) => [
- q(0149),
+ q(0166),
q(0),
],
q(398) => [
- q(0142),
+ q(0158),
q(0),
],
q(399) => [
- q(0086),
+ q(0093),
q(0),
],
q(400) => [
- q(0084),
+ q(0091),
q(0),
],
q(401) => [
- q(0085),
+ q(0092),
q(0),
],
- q(403) => [
+ q(402) => [
q(0029),
q(0),
],
+ q(403) => [
+ q(0030),
+ q(0),
+ ],
q(410) => [
- q(0055),
+ q(0060),
q(0),
],
q(411) => [
- q(0066),
+ q(0073),
q(0),
],
q(412) => [
- q(0058),
+ q(0064),
q(0),
],
q(413) => [
- q(0063),
+ q(0070),
q(0),
],
q(420) => [
- q(0108),
+ q(0119),
q(0),
],
q(430) => [
- q(0039),
+ q(0041),
q(0),
],
q(435) => [
@@ -2918,15 +3282,15 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(436) => [
- q(0074),
+ q(0081),
q(0),
],
q(437) => [
- q(0087),
+ q(0094),
q(0),
],
q(438) => [
- q(0095),
+ q(0104),
q(0),
],
q(439) => [
@@ -2942,47 +3306,59 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(450) => [
- q(0057),
+ q(0062),
+ q(0),
+ ],
+ q(451) => [
+ q(0063),
q(0),
],
q(460) => [
- q(0171),
+ q(0189),
q(0),
],
q(470) => [
- q(0165),
+ q(0182),
q(0),
],
q(480) => [
- q(0168),
+ q(0186),
q(0),
],
q(499) => [
- q(0110),
+ q(0121),
q(0),
],
q(500) => [
- q(0049),
+ q(0054),
q(0),
],
q(501) => [
- q(0051),
+ q(0056),
q(0),
],
q(502) => [
+ q(0057),
+ q(0),
+ ],
+ q(503) => [
q(0052),
q(0),
],
q(505) => [
- q(0070),
+ q(0077),
q(0),
],
q(510) => [
- q(0064),
+ q(0071),
q(0),
],
q(520) => [
- q(0154),
+ q(0171),
+ q(0),
+ ],
+ q(530) => [
+ q(0152),
q(0),
],
q(550) => [
@@ -2994,35 +3370,39 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(610) => [
- q(0060),
+ q(0066),
q(0),
],
q(620) => [
- q(0130),
+ q(0143),
q(0),
],
q(755) => [
- q(0034),
+ q(0036),
q(0),
],
q(900) => [
- q(0127),
+ q(0139),
q(0),
],
q(949) => [
- q(0128),
+ q(0140),
+ q(0),
+ ],
+ q(993) => [
+ q(0193),
q(0),
],
q(994) => [
- q(0172),
+ q(0191),
q(0),
],
q(995) => [
- q(0173),
+ q(0192),
q(0),
],
q(996) => [
- q(0174),
+ q(0194),
q(0),
],
},
@@ -3058,152 +3438,172 @@ $Locale::Codes::Data{'script'}{'id2code'} = {
q(0026) => q(Cher),
q(0027) => q(Cirt),
q(0028) => q(Copt),
- q(0029) => q(Cprt),
- q(0030) => q(Cyrl),
- q(0031) => q(Cyrs),
- q(0032) => q(Deva),
- q(0033) => q(Dsrt),
- q(0034) => q(Dupl),
- q(0035) => q(Egyd),
- q(0036) => q(Egyh),
- q(0037) => q(Egyp),
- q(0038) => q(Elba),
- q(0039) => q(Ethi),
- q(0040) => q(Geok),
- q(0041) => q(Geor),
- q(0042) => q(Glag),
- q(0043) => q(Goth),
- q(0044) => q(Gran),
- q(0045) => q(Grek),
- q(0046) => q(Gujr),
- q(0047) => q(Guru),
- q(0048) => q(Hang),
- q(0049) => q(Hani),
- q(0050) => q(Hano),
- q(0051) => q(Hans),
- q(0052) => q(Hant),
- q(0053) => q(Hatr),
- q(0054) => q(Hebr),
- q(0055) => q(Hira),
- q(0056) => q(Hluw),
- q(0057) => q(Hmng),
- q(0058) => q(Hrkt),
- q(0059) => q(Hung),
- q(0060) => q(Inds),
- q(0061) => q(Ital),
- q(0062) => q(Java),
- q(0063) => q(Jpan),
- q(0064) => q(Jurc),
- q(0065) => q(Kali),
- q(0066) => q(Kana),
- q(0067) => q(Khar),
- q(0068) => q(Khmr),
- q(0069) => q(Khoj),
- q(0070) => q(Kitl),
- q(0071) => q(Kits),
- q(0072) => q(Knda),
- q(0073) => q(Kore),
- q(0074) => q(Kpel),
- q(0075) => q(Kthi),
- q(0076) => q(Lana),
- q(0077) => q(Laoo),
- q(0078) => q(Latf),
- q(0079) => q(Latg),
- q(0080) => q(Latn),
- q(0081) => q(Leke),
- q(0082) => q(Lepc),
- q(0083) => q(Limb),
- q(0084) => q(Lina),
- q(0085) => q(Linb),
- q(0086) => q(Lisu),
- q(0087) => q(Loma),
- q(0088) => q(Lyci),
- q(0089) => q(Lydi),
- q(0090) => q(Mahj),
- q(0091) => q(Mand),
- q(0092) => q(Mani),
- q(0093) => q(Marc),
- q(0094) => q(Maya),
- q(0095) => q(Mend),
- q(0096) => q(Merc),
- q(0097) => q(Mero),
- q(0098) => q(Mlym),
- q(0099) => q(Modi),
- q(0100) => q(Mong),
- q(0101) => q(Moon),
- q(0102) => q(Mroo),
- q(0103) => q(Mtei),
- q(0104) => q(Mult),
- q(0105) => q(Mymr),
- q(0106) => q(Narb),
- q(0107) => q(Nbat),
- q(0108) => q(Nkgb),
- q(0109) => q(Nkoo),
- q(0110) => q(Nshu),
- q(0111) => q(Ogam),
- q(0112) => q(Olck),
- q(0113) => q(Orkh),
- q(0114) => q(Orya),
- q(0115) => q(Osge),
- q(0116) => q(Osma),
- q(0117) => q(Palm),
- q(0118) => q(Pauc),
- q(0119) => q(Perm),
- q(0120) => q(Phag),
- q(0121) => q(Phli),
- q(0122) => q(Phlp),
- q(0123) => q(Phlv),
- q(0124) => q(Phnx),
- q(0125) => q(Plrd),
- q(0126) => q(Prti),
- q(0127) => q(Qaaa),
- q(0128) => q(Qabx),
- q(0129) => q(Rjng),
- q(0130) => q(Roro),
- q(0131) => q(Runr),
- q(0132) => q(Samr),
- q(0133) => q(Sara),
- q(0134) => q(Sarb),
- q(0135) => q(Saur),
- q(0136) => q(Sgnw),
- q(0137) => q(Shaw),
- q(0138) => q(Shrd),
- q(0139) => q(Sidd),
- q(0140) => q(Sind),
- q(0141) => q(Sinh),
- q(0142) => q(Sora),
- q(0143) => q(Sund),
- q(0144) => q(Sylo),
- q(0145) => q(Syrc),
- q(0146) => q(Syre),
- q(0147) => q(Syrj),
- q(0148) => q(Syrn),
- q(0149) => q(Tagb),
- q(0150) => q(Takr),
- q(0151) => q(Tale),
- q(0152) => q(Talu),
- q(0153) => q(Taml),
- q(0154) => q(Tang),
- q(0155) => q(Tavt),
- q(0156) => q(Telu),
- q(0157) => q(Teng),
- q(0158) => q(Tfng),
- q(0159) => q(Tglg),
- q(0160) => q(Thaa),
- q(0161) => q(Thai),
- q(0162) => q(Tibt),
- q(0163) => q(Tirh),
- q(0164) => q(Ugar),
- q(0165) => q(Vaii),
- q(0166) => q(Visp),
- q(0167) => q(Wara),
- q(0168) => q(Wole),
- q(0169) => q(Xpeo),
- q(0170) => q(Xsux),
- q(0171) => q(Yiii),
- q(0172) => q(Zinh),
- q(0173) => q(Zmth),
- q(0174) => q(Zsym),
+ q(0029) => q(Cpmn),
+ q(0030) => q(Cprt),
+ q(0031) => q(Cyrl),
+ q(0032) => q(Cyrs),
+ q(0033) => q(Deva),
+ q(0034) => q(Dogr),
+ q(0035) => q(Dsrt),
+ q(0036) => q(Dupl),
+ q(0037) => q(Egyd),
+ q(0038) => q(Egyh),
+ q(0039) => q(Egyp),
+ q(0040) => q(Elba),
+ q(0041) => q(Ethi),
+ q(0042) => q(Geok),
+ q(0043) => q(Geor),
+ q(0044) => q(Glag),
+ q(0045) => q(Gong),
+ q(0046) => q(Gonm),
+ q(0047) => q(Goth),
+ q(0048) => q(Gran),
+ q(0049) => q(Grek),
+ q(0050) => q(Gujr),
+ q(0051) => q(Guru),
+ q(0052) => q(Hanb),
+ q(0053) => q(Hang),
+ q(0054) => q(Hani),
+ q(0055) => q(Hano),
+ q(0056) => q(Hans),
+ q(0057) => q(Hant),
+ q(0058) => q(Hatr),
+ q(0059) => q(Hebr),
+ q(0060) => q(Hira),
+ q(0061) => q(Hluw),
+ q(0062) => q(Hmng),
+ q(0063) => q(Hmnp),
+ q(0064) => q(Hrkt),
+ q(0065) => q(Hung),
+ q(0066) => q(Inds),
+ q(0067) => q(Ital),
+ q(0068) => q(Jamo),
+ q(0069) => q(Java),
+ q(0070) => q(Jpan),
+ q(0071) => q(Jurc),
+ q(0072) => q(Kali),
+ q(0073) => q(Kana),
+ q(0074) => q(Khar),
+ q(0075) => q(Khmr),
+ q(0076) => q(Khoj),
+ q(0077) => q(Kitl),
+ q(0078) => q(Kits),
+ q(0079) => q(Knda),
+ q(0080) => q(Kore),
+ q(0081) => q(Kpel),
+ q(0082) => q(Kthi),
+ q(0083) => q(Lana),
+ q(0084) => q(Laoo),
+ q(0085) => q(Latf),
+ q(0086) => q(Latg),
+ q(0087) => q(Latn),
+ q(0088) => q(Leke),
+ q(0089) => q(Lepc),
+ q(0090) => q(Limb),
+ q(0091) => q(Lina),
+ q(0092) => q(Linb),
+ q(0093) => q(Lisu),
+ q(0094) => q(Loma),
+ q(0095) => q(Lyci),
+ q(0096) => q(Lydi),
+ q(0097) => q(Mahj),
+ q(0098) => q(Maka),
+ q(0099) => q(Mand),
+ q(0100) => q(Mani),
+ q(0101) => q(Marc),
+ q(0102) => q(Maya),
+ q(0103) => q(Medf),
+ q(0104) => q(Mend),
+ q(0105) => q(Merc),
+ q(0106) => q(Mero),
+ q(0107) => q(Mlym),
+ q(0108) => q(Modi),
+ q(0109) => q(Mong),
+ q(0110) => q(Moon),
+ q(0111) => q(Mroo),
+ q(0112) => q(Mtei),
+ q(0113) => q(Mult),
+ q(0114) => q(Mymr),
+ q(0115) => q(Narb),
+ q(0116) => q(Nbat),
+ q(0117) => q(Newa),
+ q(0118) => q(Nkdb),
+ q(0119) => q(Nkgb),
+ q(0120) => q(Nkoo),
+ q(0121) => q(Nshu),
+ q(0122) => q(Ogam),
+ q(0123) => q(Olck),
+ q(0124) => q(Orkh),
+ q(0125) => q(Orya),
+ q(0126) => q(Osge),
+ q(0127) => q(Osma),
+ q(0128) => q(Palm),
+ q(0129) => q(Pauc),
+ q(0130) => q(Perm),
+ q(0131) => q(Phag),
+ q(0132) => q(Phli),
+ q(0133) => q(Phlp),
+ q(0134) => q(Phlv),
+ q(0135) => q(Phnx),
+ q(0136) => q(Plrd),
+ q(0137) => q(Piqd),
+ q(0138) => q(Prti),
+ q(0139) => q(Qaaa),
+ q(0140) => q(Qabx),
+ q(0141) => q(Rjng),
+ q(0142) => q(Rohg),
+ q(0143) => q(Roro),
+ q(0144) => q(Runr),
+ q(0145) => q(Samr),
+ q(0146) => q(Sara),
+ q(0147) => q(Sarb),
+ q(0148) => q(Saur),
+ q(0149) => q(Sgnw),
+ q(0150) => q(Shaw),
+ q(0151) => q(Shrd),
+ q(0152) => q(Shui),
+ q(0153) => q(Sidd),
+ q(0154) => q(Sind),
+ q(0155) => q(Sinh),
+ q(0156) => q(Sogd),
+ q(0157) => q(Sogo),
+ q(0158) => q(Sora),
+ q(0159) => q(Soyo),
+ q(0160) => q(Sund),
+ q(0161) => q(Sylo),
+ q(0162) => q(Syrc),
+ q(0163) => q(Syre),
+ q(0164) => q(Syrj),
+ q(0165) => q(Syrn),
+ q(0166) => q(Tagb),
+ q(0167) => q(Takr),
+ q(0168) => q(Tale),
+ q(0169) => q(Talu),
+ q(0170) => q(Taml),
+ q(0171) => q(Tang),
+ q(0172) => q(Tavt),
+ q(0173) => q(Telu),
+ q(0174) => q(Teng),
+ q(0175) => q(Tfng),
+ q(0176) => q(Tglg),
+ q(0177) => q(Thaa),
+ q(0178) => q(Thai),
+ q(0179) => q(Tibt),
+ q(0180) => q(Tirh),
+ q(0181) => q(Ugar),
+ q(0182) => q(Vaii),
+ q(0183) => q(Visp),
+ q(0184) => q(Wara),
+ q(0185) => q(Wcho),
+ q(0186) => q(Wole),
+ q(0187) => q(Xpeo),
+ q(0188) => q(Xsux),
+ q(0189) => q(Yiii),
+ q(0190) => q(Zanb),
+ q(0191) => q(Zinh),
+ q(0192) => q(Zmth),
+ q(0193) => q(Zsye),
+ q(0194) => q(Zsym),
},
q(num) => {
q(0001) => q(166),
@@ -3234,152 +3634,172 @@ $Locale::Codes::Data{'script'}{'id2code'} = {
q(0026) => q(445),
q(0027) => q(291),
q(0028) => q(204),
- q(0029) => q(403),
- q(0030) => q(220),
- q(0031) => q(221),
- q(0032) => q(315),
- q(0033) => q(250),
- q(0034) => q(755),
- q(0035) => q(070),
- q(0036) => q(060),
- q(0037) => q(050),
- q(0038) => q(226),
- q(0039) => q(430),
- q(0040) => q(241),
- q(0041) => q(240),
- q(0042) => q(225),
- q(0043) => q(206),
- q(0044) => q(343),
- q(0045) => q(200),
- q(0046) => q(320),
- q(0047) => q(310),
- q(0048) => q(286),
- q(0049) => q(500),
- q(0050) => q(371),
- q(0051) => q(501),
- q(0052) => q(502),
- q(0053) => q(127),
- q(0054) => q(125),
- q(0055) => q(410),
- q(0056) => q(080),
- q(0057) => q(450),
- q(0058) => q(412),
- q(0059) => q(176),
- q(0060) => q(610),
- q(0061) => q(210),
- q(0062) => q(361),
- q(0063) => q(413),
- q(0064) => q(510),
- q(0065) => q(357),
- q(0066) => q(411),
- q(0067) => q(305),
- q(0068) => q(355),
- q(0069) => q(322),
- q(0070) => q(505),
- q(0071) => q(288),
- q(0072) => q(345),
- q(0073) => q(287),
- q(0074) => q(436),
- q(0075) => q(317),
- q(0076) => q(351),
- q(0077) => q(356),
- q(0078) => q(217),
- q(0079) => q(216),
- q(0080) => q(215),
- q(0081) => q(364),
- q(0082) => q(335),
- q(0083) => q(336),
- q(0084) => q(400),
- q(0085) => q(401),
- q(0086) => q(399),
- q(0087) => q(437),
- q(0088) => q(202),
- q(0089) => q(116),
- q(0090) => q(314),
- q(0091) => q(140),
- q(0092) => q(139),
- q(0093) => q(332),
- q(0094) => q(090),
- q(0095) => q(438),
- q(0096) => q(101),
- q(0097) => q(100),
- q(0098) => q(347),
- q(0099) => q(324),
- q(0100) => q(145),
- q(0101) => q(218),
- q(0102) => q(199),
- q(0103) => q(337),
- q(0104) => q(323),
- q(0105) => q(350),
- q(0106) => q(106),
- q(0107) => q(159),
- q(0108) => q(420),
- q(0109) => q(165),
- q(0110) => q(499),
- q(0111) => q(212),
- q(0112) => q(261),
- q(0113) => q(175),
- q(0114) => q(327),
- q(0115) => q(219),
- q(0116) => q(260),
- q(0117) => q(126),
- q(0118) => q(263),
- q(0119) => q(227),
- q(0120) => q(331),
- q(0121) => q(131),
- q(0122) => q(132),
- q(0123) => q(133),
- q(0124) => q(115),
- q(0125) => q(282),
- q(0126) => q(130),
- q(0127) => q(900),
- q(0128) => q(949),
- q(0129) => q(363),
- q(0130) => q(620),
- q(0131) => q(211),
- q(0132) => q(123),
- q(0133) => q(292),
- q(0134) => q(105),
- q(0135) => q(344),
- q(0136) => q(095),
- q(0137) => q(281),
- q(0138) => q(319),
- q(0139) => q(302),
- q(0140) => q(318),
- q(0141) => q(348),
- q(0142) => q(398),
- q(0143) => q(362),
- q(0144) => q(316),
- q(0145) => q(135),
- q(0146) => q(138),
- q(0147) => q(137),
- q(0148) => q(136),
- q(0149) => q(373),
- q(0150) => q(321),
- q(0151) => q(353),
- q(0152) => q(354),
- q(0153) => q(346),
- q(0154) => q(520),
- q(0155) => q(359),
- q(0156) => q(340),
- q(0157) => q(290),
- q(0158) => q(120),
- q(0159) => q(370),
- q(0160) => q(170),
- q(0161) => q(352),
- q(0162) => q(330),
- q(0163) => q(326),
- q(0164) => q(040),
- q(0165) => q(470),
- q(0166) => q(280),
- q(0167) => q(262),
- q(0168) => q(480),
- q(0169) => q(030),
- q(0170) => q(020),
- q(0171) => q(460),
- q(0172) => q(994),
- q(0173) => q(995),
- q(0174) => q(996),
+ q(0029) => q(402),
+ q(0030) => q(403),
+ q(0031) => q(220),
+ q(0032) => q(221),
+ q(0033) => q(315),
+ q(0034) => q(328),
+ q(0035) => q(250),
+ q(0036) => q(755),
+ q(0037) => q(070),
+ q(0038) => q(060),
+ q(0039) => q(050),
+ q(0040) => q(226),
+ q(0041) => q(430),
+ q(0042) => q(241),
+ q(0043) => q(240),
+ q(0044) => q(225),
+ q(0045) => q(312),
+ q(0046) => q(313),
+ q(0047) => q(206),
+ q(0048) => q(343),
+ q(0049) => q(200),
+ q(0050) => q(320),
+ q(0051) => q(310),
+ q(0052) => q(503),
+ q(0053) => q(286),
+ q(0054) => q(500),
+ q(0055) => q(371),
+ q(0056) => q(501),
+ q(0057) => q(502),
+ q(0058) => q(127),
+ q(0059) => q(125),
+ q(0060) => q(410),
+ q(0061) => q(080),
+ q(0062) => q(450),
+ q(0063) => q(451),
+ q(0064) => q(412),
+ q(0065) => q(176),
+ q(0066) => q(610),
+ q(0067) => q(210),
+ q(0068) => q(284),
+ q(0069) => q(361),
+ q(0070) => q(413),
+ q(0071) => q(510),
+ q(0072) => q(357),
+ q(0073) => q(411),
+ q(0074) => q(305),
+ q(0075) => q(355),
+ q(0076) => q(322),
+ q(0077) => q(505),
+ q(0078) => q(288),
+ q(0079) => q(345),
+ q(0080) => q(287),
+ q(0081) => q(436),
+ q(0082) => q(317),
+ q(0083) => q(351),
+ q(0084) => q(356),
+ q(0085) => q(217),
+ q(0086) => q(216),
+ q(0087) => q(215),
+ q(0088) => q(364),
+ q(0089) => q(335),
+ q(0090) => q(336),
+ q(0091) => q(400),
+ q(0092) => q(401),
+ q(0093) => q(399),
+ q(0094) => q(437),
+ q(0095) => q(202),
+ q(0096) => q(116),
+ q(0097) => q(314),
+ q(0098) => q(366),
+ q(0099) => q(140),
+ q(0100) => q(139),
+ q(0101) => q(332),
+ q(0102) => q(090),
+ q(0103) => q(265),
+ q(0104) => q(438),
+ q(0105) => q(101),
+ q(0106) => q(100),
+ q(0107) => q(347),
+ q(0108) => q(324),
+ q(0109) => q(145),
+ q(0110) => q(218),
+ q(0111) => q(264),
+ q(0112) => q(337),
+ q(0113) => q(323),
+ q(0114) => q(350),
+ q(0115) => q(106),
+ q(0116) => q(159),
+ q(0117) => q(333),
+ q(0118) => q(085),
+ q(0119) => q(420),
+ q(0120) => q(165),
+ q(0121) => q(499),
+ q(0122) => q(212),
+ q(0123) => q(261),
+ q(0124) => q(175),
+ q(0125) => q(327),
+ q(0126) => q(219),
+ q(0127) => q(260),
+ q(0128) => q(126),
+ q(0129) => q(263),
+ q(0130) => q(227),
+ q(0131) => q(331),
+ q(0132) => q(131),
+ q(0133) => q(132),
+ q(0134) => q(133),
+ q(0135) => q(115),
+ q(0136) => q(282),
+ q(0137) => q(293),
+ q(0138) => q(130),
+ q(0139) => q(900),
+ q(0140) => q(949),
+ q(0141) => q(363),
+ q(0142) => q(167),
+ q(0143) => q(620),
+ q(0144) => q(211),
+ q(0145) => q(123),
+ q(0146) => q(292),
+ q(0147) => q(105),
+ q(0148) => q(344),
+ q(0149) => q(095),
+ q(0150) => q(281),
+ q(0151) => q(319),
+ q(0152) => q(530),
+ q(0153) => q(302),
+ q(0154) => q(318),
+ q(0155) => q(348),
+ q(0156) => q(141),
+ q(0157) => q(142),
+ q(0158) => q(398),
+ q(0159) => q(329),
+ q(0160) => q(362),
+ q(0161) => q(316),
+ q(0162) => q(135),
+ q(0163) => q(138),
+ q(0164) => q(137),
+ q(0165) => q(136),
+ q(0166) => q(373),
+ q(0167) => q(321),
+ q(0168) => q(353),
+ q(0169) => q(354),
+ q(0170) => q(346),
+ q(0171) => q(520),
+ q(0172) => q(359),
+ q(0173) => q(340),
+ q(0174) => q(290),
+ q(0175) => q(120),
+ q(0176) => q(370),
+ q(0177) => q(170),
+ q(0178) => q(352),
+ q(0179) => q(330),
+ q(0180) => q(326),
+ q(0181) => q(040),
+ q(0182) => q(470),
+ q(0183) => q(280),
+ q(0184) => q(262),
+ q(0185) => q(283),
+ q(0186) => q(480),
+ q(0187) => q(030),
+ q(0188) => q(020),
+ q(0189) => q(460),
+ q(0190) => q(339),
+ q(0191) => q(994),
+ q(0192) => q(995),
+ q(0193) => q(993),
+ q(0194) => q(996),
},
};
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm
index 89a0f4718b9..6700519d128 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::Script_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Feb 23 12:58:17 EST 2018
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.56';
$Locale::Codes::Retired{'script'}{'alpha'}{'code'} = {
};
@@ -24,6 +24,7 @@ $Locale::Codes::Retired{'script'}{'alpha'}{'name'} = {
q((alias for hiragana + katakana)) => [ q(Hrkt), q((alias for Hiragana + Katakana)) ],
q(ahom, tai ahom) => [ q(Ahom), q(Ahom, Tai Ahom) ],
q(cuneiform, sumero-akkadian) => [ q(Xsux), q(Cuneiform, Sumero-Akkadian) ],
+ q(cypriot) => [ q(Cprt), q(Cypriot) ],
q(deseret (mormon)) => [ q(Dsrt), q(Deseret (Mormon)) ],
q(devanagari (nagari)) => [ q(Deva), q(Devanagari (Nagari)) ],
q(duployan shorthand, duployan stenography) => [ q(Dupl), q(Duployan shorthand, Duployan stenography) ],
@@ -43,6 +44,7 @@ $Locale::Codes::Retired{'script'}{'alpha'}{'name'} = {
q(moon (moon code, moon script, moon type)) => [ q(Moon), q(Moon (Moon code, Moon script, Moon type)) ],
q(mro, mru) => [ q(Mroo), q(Mro, Mru) ],
q(myanmar (burmese)) => [ q(Mymr), q(Myanmar (Burmese)) ],
+ q(nakhi geba) => [ q(Nkgb), q(Nakhi Geba) ],
q(nakhi geba ('na-'khi ggo-baw, naxi geba)) => [ q(Nkgb), q(Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)) ],
q(ol chiki (ol cemet, ol, santali)) => [ q(Olck), q(Ol Chiki (Ol Cemet, Ol, Santali)) ],
q(old north arabian (ancient north arabian)) => [ q(Narb), q(Old North Arabian (Ancient North Arabian)) ],
@@ -62,7 +64,9 @@ $Locale::Codes::Retired{'script'}{'alpha'}{'name'} = {
$Locale::Codes::Retired{'script'}{'num'}{'name'} = {
q( multani) => [ q(323), q( Multani) ],
+ q(cypriot) => [ q(403), q(Cypriot) ],
q(mende) => [ q(438), q(Mende) ],
+ q(nakhi geba ('na-'khi ggo-baw, naxi geba)) => [ q(420), q(Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)) ],
q(old hungarian) => [ q(176), q(Old Hungarian) ],
q(tiruta) => [ q(326), q(Tiruta) ],
};
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pm
index 4c4d7c198fd..0ee45c1544a 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pm
@@ -1,48 +1,94 @@
package Locale::Country;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
use warnings;
-use Exporter;
+require 5.006;
+use Exporter qw(import);
+
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
-our $VERSION;
-$VERSION='3.37';
+################################################################################
+use if $] >= 5.027007, 'deprecate';
+use Locale::Codes;
+use Locale::Codes::Constants;
-our (@ISA,@EXPORT);
+@EXPORT = qw(
+ code2country
+ country2code
+ all_country_codes
+ all_country_names
+ country_code2code
+ );
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_COUNTRY);
-my $backend = 'Locale::Codes::Country';
-my $backend_exp = $backend . "::EXPORT";
+our $obj = new Locale::Codes('country');
+$obj->show_errors(0);
-eval "require $backend; $backend->import(); return 1;";
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
-{
- no strict 'refs';
- @EXPORT = @{ $backend_exp };
+sub code2country {
+ return $obj->code2name(@_);
}
-unshift (@ISA, $backend);
+sub country2code {
+ return $obj->name2code(@_);
+}
-sub rename_country { Locale::Codes::Country::rename_country(@_) }
-sub add_country { Locale::Codes::Country::add_country(@_) }
-sub delete_country { Locale::Codes::Country::delete_country(@_) }
-sub add_country_alias { Locale::Codes::Country::add_country_alias(@_) }
-sub delete_country_alias { Locale::Codes::Country::delete_country_alias(@_) }
-sub rename_country_code { Locale::Codes::Country::rename_country_code(@_) }
-sub add_country_code_alias { Locale::Codes::Country::add_country_code_alias(@_) }
-sub delete_country_code_alias { Locale::Codes::Country::delete_country_code_alias(@_) }
+sub country_code2code {
+ return $obj->code2code(@_);
+}
+
+sub all_country_codes {
+ return $obj->all_codes(@_);
+}
+
+sub all_country_names {
+ return $obj->all_names(@_);
+}
+
+sub rename_country {
+ return $obj->rename_code(@_);
+}
+
+sub add_country {
+ return $obj->add_code(@_);
+}
+
+sub delete_country {
+ return $obj->delete_code(@_);
+}
+
+sub add_country_alias {
+ return $obj->add_alias(@_);
+}
+
+sub delete_country_alias {
+ return $obj->delete_alias(@_);
+}
+
+sub rename_country_code {
+ return $obj->replace_code(@_);
+}
+
+sub add_country_code_alias {
+ return $obj->add_code_alias(@_);
+}
+
+sub delete_country_code_alias {
+ return $obj->delete_code_alias(@_);
+}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pod
index ae36beb6014..0bf72252e0a 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Country.pod
@@ -2,110 +2,107 @@
=head1 NAME
-Locale::Country - standard codes for country identification
+Locale::Country - module for dealing with country code sets
=head1 SYNOPSIS
use Locale::Country;
- $country = code2country('jp' [,CODESET]); # $country gets 'Japan'
- $code = country2code('Norway' [,CODESET]); # $code gets 'no'
+ $name = code2country(CODE);
+ $code = country2code(NAME);
- @codes = all_country_codes( [CODESET]);
+ @codes = all_country_codes();
@names = all_country_names();
- # semi-private routines
- Locale::Country::rename_country('gb' => 'Great Britain');
-
=head1 DESCRIPTION
-This module provides access to several code sets
-that can be used for identifying countries, such as those defined in
-ISO 3166-1.
-
-Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO
-3166-1 two-letter codes will be used.
+This module provides access to country code sets.
-=head1 SUPPORTED CODE SETS
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
-There are several different code sets you can use for identifying
-countries. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+Most of the routines take an optional additional argument which
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
-For example, the two are equivalent:
+=head1 ROUTINES
- $country = code2country('jp','alpha-2');
- $country = code2country('jp',LOCALE_CODE_ALPHA_2);
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: country
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-The codesets currently supported are:
+The following functions are exported automatically:
=over 4
-=item B<alpha-2, LOCALE_CODE_ALPHA_2>
+=item B<code2country(CODE [,CODESET] [,'retired'])>
-This is the set of two-letter (lowercase) codes from ISO 3166-1, such
-as 'tv' for Tuvalu.
+See B<code2name> in L<Locale::Codes>
-This is the default code set.
+=item B<country2code(NAME [,CODESET] [,'retired'])>
-=item B<alpha-3, LOCALE_CODE_ALPHA_3>
+See B<name2code> in L<Locale::Codes>
-This is the set of three-letter (lowercase) codes from ISO 3166-1,
-such as 'brb' for Barbados. These codes are actually defined and
-maintained by the U.N. Statistics division.
+=item B<country_code2code(CODE ,CODESET ,CODESET2)>
-=item B<numeric, LOCALE_CODE_NUMERIC>
+See B<code2code> in L<Locale::Codes>
-This is the set of three-digit numeric codes from ISO 3166-1, such as
-064 for Bhutan. These codes are actually defined and maintained by the
-U.N. Statistics division.
+=item B<all_country_codes([CODESET] [,'retired'])>
-If a 2-digit code is entered, it is converted to 3 digits by prepending
-a 0.
+See B<all_codes> in L<Locale::Codes>
-=item B<dom, LOCALE_CODE_DOM>
+=item B<all_country_names([CODESET] [,'retired'])>
-The IANA is responsible for delegating management of the top level country
-domains. The country domains are the two-letter (lowercase) codes from ISO 3166
-with a few other additions.
+See B<all_names> in L<Locale::Codes>
=back
-NOTE: As of version 3.27, the FIPS code set is no longer supported. See the
-Locale::Codes::Changes document for details.
-
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2country(CODE [,CODESET] [,'retired'])>
-
-=item B<country2code(NAME [,CODESET] [,'retired'])>
+=item B<Locale::Country::show_errors(FLAG)>
-=item B<country_code2code(CODE ,CODESET ,CODESET2)>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<all_country_codes([CODESET] [,'retired'])>
-
-=item B<all_country_names([CODESET] [,'retired'])>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
=item B<Locale::Country::rename_country(CODE ,NEW_NAME [,CODESET])>
+See B<rename_code> in L<Locale::Codes>
+
=item B<Locale::Country::add_country(CODE ,NAME [,CODESET])>
+See B<add_code> in L<Locale::Codes>
+
=item B<Locale::Country::delete_country(CODE [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
+
=item B<Locale::Country::add_country_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
+
=item B<Locale::Country::delete_country_alias(NAME)>
+See B<delete_alias> in L<Locale::Codes>
+
=item B<Locale::Country::rename_country_code(CODE ,NEW_CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
+
=item B<Locale::Country::add_country_code_alias(CODE ,NEW_CODE [,CODESET])>
+See B<add_code_alias> in L<Locale::Codes>
+
=item B<Locale::Country::delete_country_code_alias(CODE [,CODESET])>
-These routines are all documented in the L<Locale::Codes::API> man page.
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -117,51 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<Locale::SubCountry>
-
-ISO codes for country sub-divisions (states, counties, provinces,
-etc), as defined in ISO 3166-2. This module is not part of the
-Locale-Codes distribution, but is available from CPAN in
-CPAN/modules/by-module/Locale/
-
-=item L<http://www.iso.org/iso/home/standards/country_codes.htm>
-
-Official home page for the ISO 3166 maintenance agency.
-
-=item L<http://www.iso.org/iso/home/standards/country_codes/iso-3166-1_decoding_table.htm>
-
-The source of ISO 3166-1 two-letter codes used by this
-module.
-
-=item L<http://www.iana.org/domains/root/db/>
-
-Official source of the top-level domain names.
-
-=item L<http://unstats.un.org/unsd/methods/m49/m49alpha.htm>
-
-The source of the official ISO 3166-1 three-letter codes and
-three-digit codes.
-
-For some reason, this table is incomplete! Several countries are
-missing from it, and I cannot find them anywhere on the UN site. I
-no longer use this as a source of data.
-
-=item L<https://www.cia.gov/library/publications/the-world-factbook/appendix/print_appendix-d.html>
-
-The World Factbook maintained by the CIA is a potential source of
-the data. Unfortunately, it adds/preserves non-standard codes, so it is no
-longer used as a source of data.
-
-=item L<http://www.statoids.com/wab.html>
-
-Another unofficial source of data. Currently, it is not used to get
-data, but the notes and explanatory material were very useful for
-understanding discrepancies between the sources.
-
=back
=head1 AUTHOR
@@ -172,9 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pm
index c930ff964f5..cb0849d93ad 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pm
@@ -1,48 +1,94 @@
package Locale::Currency;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
use warnings;
-use Exporter;
+require 5.006;
+use Exporter qw(import);
+
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
-our $VERSION;
-$VERSION='3.37';
+################################################################################
+use if $] >= 5.027007, 'deprecate';
+use Locale::Codes;
+use Locale::Codes::Constants;
-our (@ISA,@EXPORT);
+@EXPORT = qw(
+ code2currency
+ currency2code
+ all_currency_codes
+ all_currency_names
+ currency_code2code
+ );
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_CURRENCY);
-my $backend = 'Locale::Codes::Currency';
-my $backend_exp = $backend . "::EXPORT";
+our $obj = new Locale::Codes('currency');
+$obj->show_errors(0);
-eval "require $backend; $backend->import(); return 1;";
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
-{
- no strict 'refs';
- @EXPORT = @{ $backend_exp };
+sub code2currency {
+ return $obj->code2name(@_);
}
-unshift (@ISA, $backend);
+sub currency2code {
+ return $obj->name2code(@_);
+}
-sub rename_currency { Locale::Codes::Currency::rename_currency(@_) }
-sub add_currency { Locale::Codes::Currency::add_currency(@_) }
-sub delete_currency { Locale::Codes::Currency::delete_currency(@_) }
-sub add_currency_alias { Locale::Codes::Currency::add_currency_alias(@_) }
-sub delete_currency_alias { Locale::Codes::Currency::delete_currency_alias(@_) }
-sub rename_currency_code { Locale::Codes::Currency::rename_currency_code(@_) }
-sub add_currency_code_alias { Locale::Codes::Currency::add_currency_code_alias(@_) }
-sub delete_currency_code_alias { Locale::Codes::Currency::delete_currency_code_alias(@_) }
+sub currency_code2code {
+ return $obj->code2code(@_);
+}
+
+sub all_currency_codes {
+ return $obj->all_codes(@_);
+}
+
+sub all_currency_names {
+ return $obj->all_names(@_);
+}
+
+sub rename_currency {
+ return $obj->rename_code(@_);
+}
+
+sub add_currency {
+ return $obj->add_code(@_);
+}
+
+sub delete_currency {
+ return $obj->delete_code(@_);
+}
+
+sub add_currency_alias {
+ return $obj->add_alias(@_);
+}
+
+sub delete_currency_alias {
+ return $obj->delete_alias(@_);
+}
+
+sub rename_currency_code {
+ return $obj->replace_code(@_);
+}
+
+sub add_currency_code_alias {
+ return $obj->add_code_alias(@_);
+}
+
+sub delete_currency_code_alias {
+ return $obj->delete_code_alias(@_);
+}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pod
index 22cafafa273..ff6364b73c9 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Currency.pod
@@ -2,90 +2,107 @@
=head1 NAME
-Locale::Currency - standard codes for currency identification
+Locale::Currency - module for dealing with currency code sets
=head1 SYNOPSIS
- use Locale::Currency;
+ use Locale::Currency;
- $curr = code2currency('usd'); # $curr gets 'US Dollar'
- $code = currency2code('Euro'); # $code gets 'eur'
+ $name = code2currency(CODE);
+ $code = currency2code(NAME);
- @codes = all_currency_codes();
- @names = all_currency_names();
+ @codes = all_currency_codes();
+ @names = all_currency_names();
=head1 DESCRIPTION
-This module provides access to standard codes used for identifying
-currencies and funds, such as those defined in ISO 4217.
+This module provides access to currency code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO
-4217 three-letter codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
-=head1 SUPPORTED CODE SETS
+=head1 ROUTINES
-There are several different code sets you can use for identifying
-currencies. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: currency
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-For example, the two are equivalent:
+The following functions are exported automatically:
- $curr = code2currency('usd','alpha');
- $curr = code2currency('usd',LOCALE_CURR_ALPHA);
+=over 4
-The codesets currently supported are:
+=item B<code2currency(CODE [,CODESET] [,'retired'])>
-=over 4
+See B<code2name> in L<Locale::Codes>
-=item B<alpha, LOCALE_CURR_ALPHA>
+=item B<currency2code(NAME [,CODESET] [,'retired'])>
-This is a set of three-letter (uppercase) codes from ISO 4217 such
-as EUR for Euro.
+See B<name2code> in L<Locale::Codes>
-Two of the codes specified by the standard (XTS which is reserved
-for testing purposes and XXX which is for transactions where no
-currency is involved) are omitted.
+=item B<currency_code2code(CODE ,CODESET ,CODESET2)>
-This is the default code set.
+See B<code2code> in L<Locale::Codes>
-=item B<num, LOCALE_CURR_NUMERIC>
+=item B<all_currency_codes([CODESET] [,'retired'])>
-This is the set of three-digit numeric codes from ISO 4217.
+See B<all_codes> in L<Locale::Codes>
-=back
+=item B<all_currency_names([CODESET] [,'retired'])>
-=head1 ROUTINES
+See B<all_names> in L<Locale::Codes>
-=over 4
+=back
-=item B<code2currency(CODE [,CODESET] [,'retired'])>
+The following functions are not exported and must be called fully
+qualified with the package name:
-=item B<currency2code(NAME [,CODESET] [,'retired'])>
+=over 4
-=item B<currency_code2code(CODE ,CODESET ,CODESET2)>
+=item B<Locale::Currency::show_errors(FLAG)>
-=item B<all_currency_codes([CODESET] [,'retired'])>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<all_currency_names([CODESET] [,'retired'])>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
=item B<Locale::Currency::rename_currency(CODE ,NEW_NAME [,CODESET])>
+See B<rename_code> in L<Locale::Codes>
+
=item B<Locale::Currency::add_currency(CODE ,NAME [,CODESET])>
+See B<add_code> in L<Locale::Codes>
+
=item B<Locale::Currency::delete_currency(CODE [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
+
=item B<Locale::Currency::add_currency_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
+
=item B<Locale::Currency::delete_currency_alias(NAME)>
+See B<delete_alias> in L<Locale::Codes>
+
=item B<Locale::Currency::rename_currency_code(CODE ,NEW_CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
+
=item B<Locale::Currency::add_currency_code_alias(CODE ,NEW_CODE [,CODESET])>
-=item B<Locale::Currency::delete_currency_code_alias( ODE [,CODESET])>
+See B<add_code_alias> in L<Locale::Codes>
-These routines are all documented in the L<Locale::Codes::API> man page.
+=item B<Locale::Currency::delete_currency_code_alias(CODE [,CODESET])>
+
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -97,14 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.iso.org/iso/support/currency_codes_list-1.htm>
-
-The ISO 4217 data.
-
=back
=head1 AUTHOR
@@ -115,10 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001 Michael Hennecke
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pm
index ab4d2145b05..be848c98938 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pm
@@ -1,48 +1,94 @@
package Locale::Language;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
use warnings;
-use Exporter;
+require 5.006;
+use Exporter qw(import);
+
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
-our $VERSION;
-$VERSION='3.37';
+################################################################################
+use if $] >= 5.027007, 'deprecate';
+use Locale::Codes;
+use Locale::Codes::Constants;
-our (@ISA,@EXPORT);
+@EXPORT = qw(
+ code2language
+ language2code
+ all_language_codes
+ all_language_names
+ language_code2code
+ );
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_LANGUAGE);
-my $backend = 'Locale::Codes::Language';
-my $backend_exp = $backend . "::EXPORT";
+our $obj = new Locale::Codes('language');
+$obj->show_errors(0);
-eval "require $backend; $backend->import(); return 1;";
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
-{
- no strict 'refs';
- @EXPORT = @{ $backend_exp };
+sub code2language {
+ return $obj->code2name(@_);
}
-unshift (@ISA, $backend);
+sub language2code {
+ return $obj->name2code(@_);
+}
-sub rename_language { Locale::Codes::Language::rename_language(@_) }
-sub add_language { Locale::Codes::Language::add_language(@_) }
-sub delete_language { Locale::Codes::Language::delete_language(@_) }
-sub add_language_alias { Locale::Codes::Language::add_language_alias(@_) }
-sub delete_language_alias { Locale::Codes::Language::delete_language_alias(@_) }
-sub rename_language_code { Locale::Codes::Language::rename_language_code(@_) }
-sub add_language_code_alias { Locale::Codes::Language::add_language_code_alias(@_) }
-sub delete_language_code_alias { Locale::Codes::Language::delete_language_code_alias(@_) }
+sub language_code2code {
+ return $obj->code2code(@_);
+}
+
+sub all_language_codes {
+ return $obj->all_codes(@_);
+}
+
+sub all_language_names {
+ return $obj->all_names(@_);
+}
+
+sub rename_language {
+ return $obj->rename_code(@_);
+}
+
+sub add_language {
+ return $obj->add_code(@_);
+}
+
+sub delete_language {
+ return $obj->delete_code(@_);
+}
+
+sub add_language_alias {
+ return $obj->add_alias(@_);
+}
+
+sub delete_language_alias {
+ return $obj->delete_alias(@_);
+}
+
+sub rename_language_code {
+ return $obj->replace_code(@_);
+}
+
+sub add_language_code_alias {
+ return $obj->add_code_alias(@_);
+}
+
+sub delete_language_code_alias {
+ return $obj->delete_code_alias(@_);
+}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pod
index d7e4bd8bf8c..2b7aaa03a67 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Language.pod
@@ -2,94 +2,107 @@
=head1 NAME
-Locale::Language - standard codes for language identification
+Locale::Language - module for dealing with language code sets
=head1 SYNOPSIS
use Locale::Language;
- $lang = code2language('en'); # $lang gets 'English'
- $code = language2code('French'); # $code gets 'fr'
+ $name = code2language(CODE);
+ $code = language2code(NAME);
@codes = all_language_codes();
@names = all_language_names();
=head1 DESCRIPTION
-This module provides access to standard codes used
-for identifying languages, such as those as defined in ISO 639.
+This module provides access to language code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO
-639 two-letter codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
-=head1 SUPPORTED CODE SETS
+=head1 ROUTINES
-There are several different code sets you can use for identifying
-languages. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: language
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-For example, the two are equivalent:
+The following functions are exported automatically:
- $lang = code2language('en','alpha-2');
- $lang = code2language('en',LOCALE_LANG_ALPHA_2);
+=over 4
-The codesets currently supported are:
+=item B<code2language(CODE [,CODESET] [,'retired'])>
-=over 4
+See B<code2name> in L<Locale::Codes>
-=item B<alpha-2, LOCALE_LANG_ALPHA_2>
+=item B<language2code(NAME [,CODESET] [,'retired'])>
-This is the set of two-letter (lowercase) codes from ISO 639-1, such
-as 'he' for Hebrew. It also includes additions to this set included
-in the IANA language registry.
+See B<name2code> in L<Locale::Codes>
-This is the default code set.
+=item B<language_code2code(CODE ,CODESET ,CODESET2)>
-=item B<alpha-3, LOCALE_LANG_ALPHA_3>
+See B<code2code> in L<Locale::Codes>
-This is the set of three-letter (lowercase) bibliographic codes from
-ISO 639-2 and 639-5, such as 'heb' for Hebrew. It also includes
-additions to this set included in the IANA language registry.
+=item B<all_language_codes([CODESET] [,'retired'])>
-=item B<term, LOCALE_LANG_TERM>
+See B<all_codes> in L<Locale::Codes>
-This is the set of three-letter (lowercase) terminologic codes from
-ISO 639.
+=item B<all_language_names([CODESET] [,'retired'])>
+
+See B<all_names> in L<Locale::Codes>
=back
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2language(CODE [,CODESET] [,'retired'])>
-
-=item B<language2code(NAME [,CODESET] [,'retired'])>
+=item B<Locale::Language::show_errors(FLAG)>
-=item B<language_code2code(CODE ,CODESET ,CODESET2)>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<all_language_codes([CODESET] [,'retired'])>
-
-=item B<all_language_names([CODESET] [,'retired'])>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
=item B<Locale::Language::rename_language(CODE ,NEW_NAME [,CODESET])>
+See B<rename_code> in L<Locale::Codes>
+
=item B<Locale::Language::add_language(CODE ,NAME [,CODESET])>
+See B<add_code> in L<Locale::Codes>
+
=item B<Locale::Language::delete_language(CODE [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
+
=item B<Locale::Language::add_language_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
+
=item B<Locale::Language::delete_language_alias(NAME)>
+See B<delete_alias> in L<Locale::Codes>
+
=item B<Locale::Language::rename_language_code(CODE ,NEW_CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
+
=item B<Locale::Language::add_language_code_alias(CODE ,NEW_CODE [,CODESET])>
+See B<add_code_alias> in L<Locale::Codes>
+
=item B<Locale::Language::delete_language_code_alias(CODE [,CODESET])>
-These routines are all documented in the L<Locale::Codes::API> man page.
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -101,22 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.loc.gov/standards/iso639-2/>
-
-Source of the ISO 639-2 codes.
-
-=item L<http://www.loc.gov/standards/iso639-5/>
-
-Source of the ISO 639-5 codes.
-
-=item L<http://www.iana.org/assignments/language-subtag-registry>
-
-The IANA language subtag registry.
-
=back
=head1 AUTHOR
@@ -127,9 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pm b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pm
index 1ea0e188fe6..0b3d8fddcb0 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pm
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pm
@@ -1,48 +1,94 @@
package Locale::Script;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2018 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
+# This file was automatically generated. Any changes to this file will
+# be lost the next time 'gen_mods' is run.
+# Generated on: Fri Feb 23 12:55:25 EST 2018
+
use strict;
use warnings;
-use Exporter;
+require 5.006;
+use Exporter qw(import);
+
+our($VERSION,@EXPORT);
+$VERSION = '3.56';
-our $VERSION;
-$VERSION='3.37';
+################################################################################
+use if $] >= 5.027007, 'deprecate';
+use Locale::Codes;
+use Locale::Codes::Constants;
-our (@ISA,@EXPORT);
+@EXPORT = qw(
+ code2script
+ script2code
+ all_script_codes
+ all_script_names
+ script_code2code
+ );
+push(@EXPORT,@Locale::Codes::Constants::CONSTANTS_SCRIPT);
-my $backend = 'Locale::Codes::Script';
-my $backend_exp = $backend . "::EXPORT";
+our $obj = new Locale::Codes('script');
+$obj->show_errors(0);
-eval "require $backend; $backend->import(); return 1;";
+sub show_errors {
+ my($val) = @_;
+ $obj->show_errors($val);
+}
-{
- no strict 'refs';
- @EXPORT = @{ $backend_exp };
+sub code2script {
+ return $obj->code2name(@_);
}
-unshift (@ISA, $backend);
+sub script2code {
+ return $obj->name2code(@_);
+}
-sub rename_script { Locale::Codes::Script::rename_script(@_) }
-sub add_script { Locale::Codes::Script::add_script(@_) }
-sub delete_script { Locale::Codes::Script::delete_script(@_) }
-sub add_script_alias { Locale::Codes::Script::add_script_alias(@_) }
-sub delete_script_alias { Locale::Codes::Script::delete_script_alias(@_) }
-sub rename_script_code { Locale::Codes::Script::rename_script_code(@_) }
-sub add_script_code_alias { Locale::Codes::Script::add_script_code_alias(@_) }
-sub delete_script_code_alias { Locale::Codes::Script::delete_script_code_alias(@_) }
+sub script_code2code {
+ return $obj->code2code(@_);
+}
+
+sub all_script_codes {
+ return $obj->all_codes(@_);
+}
+
+sub all_script_names {
+ return $obj->all_names(@_);
+}
+
+sub rename_script {
+ return $obj->rename_code(@_);
+}
+
+sub add_script {
+ return $obj->add_code(@_);
+}
+
+sub delete_script {
+ return $obj->delete_code(@_);
+}
+
+sub add_script_alias {
+ return $obj->add_alias(@_);
+}
+
+sub delete_script_alias {
+ return $obj->delete_alias(@_);
+}
+
+sub rename_script_code {
+ return $obj->replace_code(@_);
+}
+
+sub add_script_code_alias {
+ return $obj->add_code_alias(@_);
+}
+
+sub delete_script_code_alias {
+ return $obj->delete_code_alias(@_);
+}
1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pod b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pod
index c06f1b16774..06924843b5f 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pod
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/lib/Locale/Script.pod
@@ -2,92 +2,107 @@
=head1 NAME
-Locale::Script - standard codes for script identification
+Locale::Script - module for dealing with script code sets
=head1 SYNOPSIS
use Locale::Script;
- $script = code2script('phnx'); # 'Phoenician'
- $code = script2code('Phoenician'); # 'Phnx'
- $code = script2code('Phoenician',
- LOCALE_CODE_NUMERIC); # 115
+ $name = code2script(CODE);
+ $code = script2code(NAME);
@codes = all_script_codes();
- @scripts = all_script_names();
+ @names = all_script_names();
=head1 DESCRIPTION
-This module provides access to standards codes used
-for identifying scripts, such as those defined in ISO 15924.
+This module provides access to script code sets.
+
+Please refer to the L<Locale::Codes::Types> document for a description
+of the code sets available.
Most of the routines take an optional additional argument which
-specifies the code set to use. If not specified, the default ISO
-15924 four-letter codes will be used.
+specifies the code set to use. The code set can be specified using the
+name of a code set, or the perl constant specified in the above
+document. If not specified, the default code set will be used.
+
+=head1 ROUTINES
+
+All routines in this module call the appropriate method in the
+L<Locale::Codes> module, using an object of type: script
+Please refer to the documentation of the L<Locale::Codes> module
+for details about each function.
-=head1 SUPPORTED CODE SETS
+The following functions are exported automatically:
-There are several different code sets you can use for identifying
-scripts. A code set may be specified using either a name, or a
-constant that is automatically exported by this module.
+=over 4
-For example, the two are equivalent:
+=item B<code2script(CODE [,CODESET] [,'retired'])>
- $script = code2script('phnx','alpha');
- $script = code2script('phnx',LOCALE_SCRIPT_ALPHA);
+See B<code2name> in L<Locale::Codes>
-The codesets currently supported are:
+=item B<script2code(NAME [,CODESET] [,'retired'])>
-=over 4
+See B<name2code> in L<Locale::Codes>
-=item B<alpha, LOCALE_SCRIPT_ALPHA>
+=item B<script_code2code(CODE ,CODESET ,CODESET2)>
-This is a set of four-letter (capitalized) codes from ISO 15924
-such as 'Phnx' for Phoenician. It also includes additions to this
-set included in the IANA language registry.
+See B<code2code> in L<Locale::Codes>
-The Zxxx, Zyyy, and Zzzz codes are not used.
+=item B<all_script_codes([CODESET] [,'retired'])>
-This is the default code set.
+See B<all_codes> in L<Locale::Codes>
-=item B<num, LOCALE_SCRIPT_NUMERIC>
+=item B<all_script_names([CODESET] [,'retired'])>
-This is a set of three-digit numeric codes from ISO 15924 such as 115
-for Phoenician.
+See B<all_names> in L<Locale::Codes>
=back
-=head1 ROUTINES
+The following functions are not exported and must be called fully
+qualified with the package name:
=over 4
-=item B<code2script(CODE [,CODESET] [,'retired'])>
-
-=item B<script2code(NAME [,CODESET] [,'retired'])>
-
-=item B<script_code2code(CODE ,CODESET ,CODESET2)>
+=item B<Locale::Script::show_errors(FLAG)>
-=item B<all_script_codes([CODESET] [,'retired'])>
+By default, invalid input will produce empty results, but no errors. By
+passing in a non-zero value of FLAG, errors will be produced.
-=item B<all_script_names([CODESET] [,'retired'])>
+See B<show_errors> in L<Locale::Codes> but note that the default for
+the non-OO modules are to NOT produce errors.
=item B<Locale::Script::rename_script(CODE ,NEW_NAME [,CODESET])>
+See B<rename_code> in L<Locale::Codes>
+
=item B<Locale::Script::add_script(CODE ,NAME [,CODESET])>
+See B<add_code> in L<Locale::Codes>
+
=item B<Locale::Script::delete_script(CODE [,CODESET])>
+See B<delete_code> in L<Locale::Codes>
+
=item B<Locale::Script::add_script_alias(NAME ,NEW_NAME)>
+See B<add_alias> in L<Locale::Codes>
+
=item B<Locale::Script::delete_script_alias(NAME)>
+See B<delete_alias> in L<Locale::Codes>
+
=item B<Locale::Script::rename_script_code(CODE ,NEW_CODE [,CODESET])>
+See B<replace_code> in L<Locale::Codes>
+
=item B<Locale::Script::add_script_code_alias(CODE ,NEW_CODE [,CODESET])>
+See B<add_code_alias> in L<Locale::Codes>
+
=item B<Locale::Script::delete_script_code_alias(CODE [,CODESET])>
-These routines are all documented in the L<Locale::Codes::API> man page.
+See B<delete_code_alias> in L<Locale::Codes>
=back
@@ -99,18 +114,6 @@ These routines are all documented in the L<Locale::Codes::API> man page.
The Locale-Codes distribution.
-=item L<Locale::Codes::API>
-
-The list of functions supported by this module.
-
-=item L<http://www.unicode.org/iso15924/>
-
-Home page for ISO 15924.
-
-=item L<http://www.iana.org/assignments/language-subtag-registry>
-
-The IANA language subtag registry.
-
=back
=head1 AUTHOR
@@ -121,9 +124,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
- Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2011-2018 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2country.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2country.t
deleted file mode 100644
index 4fb69c9b6e7..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2country.t
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Country;
-
-%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
- "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
- "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]} if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2country(@test);
-}
-
-$tests = "
-
-~ _undef_
-
-_undef_ ~ _undef_
-
-zz ~ _undef_
-
-zz LOCALE_CODE_ALPHA_2 ~ _undef_
-
-zz LOCALE_CODE_ALPHA_3 ~ _undef_
-
-zz LOCALE_CODE_NUMERIC ~ _undef_
-
-ja ~ _undef_
-
-uk ~ _undef_
-
-BO
- ~
- Bolivia (Plurinational State of)
-
-BO
-LOCALE_CODE_ALPHA_2
- ~
- Bolivia (Plurinational State of)
-
-bol
-LOCALE_CODE_ALPHA_3
- ~
- Bolivia (Plurinational State of)
-
-pk ~ Pakistan
-
-sn ~ Senegal
-
-us
- ~
- United States of America
-
-ad ~ Andorra
-
-ad LOCALE_CODE_ALPHA_2 ~ Andorra
-
-and LOCALE_CODE_ALPHA_3 ~ Andorra
-
-020 LOCALE_CODE_NUMERIC ~ Andorra
-
-48 LOCALE_CODE_NUMERIC ~ Bahrain
-
-zw ~ Zimbabwe
-
-gb
- ~
- United Kingdom of Great Britain and Northern Ireland
-
-kz ~ Kazakhstan
-
-mo ~ Macao
-
-tl LOCALE_CODE_ALPHA_2 ~ Timor-Leste
-
-tls LOCALE_CODE_ALPHA_3 ~ Timor-Leste
-
-626 LOCALE_CODE_NUMERIC ~ Timor-Leste
-
-BO LOCALE_CODE_ALPHA_3 ~ _undef_
-
-BO LOCALE_CODE_NUMERIC ~ _undef_
-
-ax
- ~
- Aland Islands
-
-ala
-LOCALE_CODE_ALPHA_3
- ~
- Aland Islands
-
-248
-LOCALE_CODE_NUMERIC
- ~
- Aland Islands
-
-scg
-LOCALE_CODE_ALPHA_3
- ~
- _undef_
-
-891
-LOCALE_CODE_NUMERIC
- ~
- _undef_
-
-rou LOCALE_CODE_ALPHA_3 ~ Romania
-
-zr ~ _undef_
-
-zr retired ~ Zaire
-
-jp alpha-2 not_retired other_arg ~ _undef_
-
-jp _blank_ ~ Japan
-
-jp alpha-15 ~ _undef_
-
-jp alpha-2 retired ~ Japan
-
-";
-
-print "code2country...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
-
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2country_old.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2country_old.t
deleted file mode 100644
index d33e9aa7508..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2country_old.t
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Country;
-
-%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
- "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
- "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]} if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2country(@test);
-}
-
-$tests = "
-
-~ _undef_
-
-_undef_ ~ _undef_
-
-zz ~ _undef_
-
-zz LOCALE_CODE_ALPHA_2 ~ _undef_
-
-zz LOCALE_CODE_ALPHA_3 ~ _undef_
-
-zz LOCALE_CODE_NUMERIC ~ _undef_
-
-ja ~ _undef_
-
-uk ~ _undef_
-
-BO
- ~
- Bolivia (Plurinational State of)
-
-BO
-LOCALE_CODE_ALPHA_2
- ~
- Bolivia (Plurinational State of)
-
-bol
-LOCALE_CODE_ALPHA_3
- ~
- Bolivia (Plurinational State of)
-
-pk ~ Pakistan
-
-sn ~ Senegal
-
-us
- ~
- United States of America
-
-ad ~ Andorra
-
-ad LOCALE_CODE_ALPHA_2 ~ Andorra
-
-and LOCALE_CODE_ALPHA_3 ~ Andorra
-
-020 LOCALE_CODE_NUMERIC ~ Andorra
-
-48 LOCALE_CODE_NUMERIC ~ Bahrain
-
-zw ~ Zimbabwe
-
-gb
- ~
- United Kingdom of Great Britain and Northern Ireland
-
-kz ~ Kazakhstan
-
-mo ~ Macao
-
-tl LOCALE_CODE_ALPHA_2 ~ Timor-Leste
-
-tls LOCALE_CODE_ALPHA_3 ~ Timor-Leste
-
-626 LOCALE_CODE_NUMERIC ~ Timor-Leste
-
-BO LOCALE_CODE_ALPHA_3 ~ _undef_
-
-BO LOCALE_CODE_NUMERIC ~ _undef_
-
-ax
- ~
- Aland Islands
-
-ala
-LOCALE_CODE_ALPHA_3
- ~
- Aland Islands
-
-248
-LOCALE_CODE_NUMERIC
- ~
- Aland Islands
-
-scg
-LOCALE_CODE_ALPHA_3
- ~
- _undef_
-
-891
-LOCALE_CODE_NUMERIC
- ~
- _undef_
-
-rou LOCALE_CODE_ALPHA_3 ~ Romania
-
-";
-
-print "code2country (old)...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
-
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2currency.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2currency.t
deleted file mode 100644
index cab22db1bb4..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2currency.t
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Currency;
-
-%type = ( "LOCALE_CURR_ALPHA" => LOCALE_CURR_ALPHA,
- "LOCALE_CURR_NUMERIC" => LOCALE_CURR_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2currency(@test);
-}
-
-$tests = "
-
-ukp ~ _undef_
-
-zz ~ _undef_
-
-zzz ~ _undef_
-
-zzzz ~ _undef_
-
-~ _undef_
-
-_undef_ ~ _undef_
-
-BOB
- ~
- Boliviano
-
-all
- ~
- Lek
-
-bnd
- ~
- Brunei Dollar
-
-bob
- ~
- Boliviano
-
-byr
- ~
- Belarussian Ruble
-
-chf
- ~
- Swiss Franc
-
-cop
- ~
- Colombian Peso
-
-dkk
- ~
- Danish Krone
-
-fjd
- ~
- Fiji Dollar
-
-idr
- ~
- Rupiah
-
-mmk
- ~
- Kyat
-
-mvr
- ~
- Rufiyaa
-
-mwk
- ~
- Kwacha
-
-rub
- ~
- Russian Ruble
-
-zmw
- ~
- Zambian Kwacha
-
-zwl
- ~
- Zimbabwe Dollar
-
-";
-
-print "code2currency...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langext.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langext.t
deleted file mode 100644
index 77bea862f97..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langext.t
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::LangExt;
-
-%type = ( "LOCALE_LANGEXT_ALPHA" => LOCALE_LANGEXT_ALPHA,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2langext(@test);
-}
-
-$tests = "
-
-zzz ~ _undef_
-
-acm
- ~
- Mesopotamian Arabic
-
-";
-
-print "code2langext...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langfam.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langfam.t
deleted file mode 100644
index 691a69fb9ce..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langfam.t
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::LangFam;
-
-%type = ( "LOCALE_LANGFAM_ALPHA" => LOCALE_LANGFAM_ALPHA,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2langfam(@test);
-}
-
-$tests = "
-
-zzz ~ _undef_
-
-apa
- ~
- Apache languages
-
-";
-
-print "code2langfam...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2language.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2language.t
deleted file mode 100644
index 2b69e5f52ea..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2language.t
+++ /dev/null
@@ -1,220 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Language;
-
-%type = ( "LOCALE_LANG_ALPHA_2" => LOCALE_LANG_ALPHA_2,
- "LOCALE_LANG_ALPHA_3" => LOCALE_LANG_ALPHA_3,
- "LOCALE_LANG_TERM" => LOCALE_LANG_TERM,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2language(@test);
-}
-
-$tests = "
-
-in ~ _undef_
-
-iw ~ _undef_
-
-ji ~ _undef_
-
-jp ~ _undef_
-
-zz ~ _undef_
-
-~ _undef_
-
-_undef_ ~ _undef_
-
-DA
- ~
- Danish
-
-aa
- ~
- Afar
-
-ae
- ~
- Avestan
-
-bs
- ~
- Bosnian
-
-ce
- ~
- Chechen
-
-ch
- ~
- Chamorro
-
-cu
- ~
- Church Slavic
-
-cv
- ~
- Chuvash
-
-en
- ~
- English
-
-eo
- ~
- Esperanto
-
-fi
- ~
- Finnish
-
-gv
- ~
- Manx
-
-he
- ~
- Hebrew
-
-ho
- ~
- Hiri Motu
-
-hz
- ~
- Herero
-
-id
- ~
- Indonesian
-
-iu
- ~
- Inuktitut
-
-ki
- ~
- Kikuyu
-
-kj
- ~
- Kuanyama
-
-kv
- ~
- Komi
-
-kw
- ~
- Cornish
-
-lb
- ~
- Luxembourgish
-
-mh
- ~
- Marshallese
-
-nb
- ~
- Norwegian Bokmal
-
-nd
- ~
- North Ndebele
-
-ng
- ~
- Ndonga
-
-nn
- ~
- Norwegian Nynorsk
-
-nr
- ~
- South Ndebele
-
-nv
- ~
- Navajo
-
-ny
- ~
- Nyanja
-
-oc
- ~
- Occitan (post 1500)
-
-os
- ~
- Ossetian
-
-pi
- ~
- Pali
-
-sc
- ~
- Sardinian
-
-se
- ~
- Northern Sami
-
-ug
- ~
- Uighur
-
-yi
- ~
- Yiddish
-
-za
- ~
- Zhuang
-
-zu
- ~
- Zulu
-
-";
-
-print "code2language...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langvar.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langvar.t
deleted file mode 100644
index 6e43a81e261..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2langvar.t
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::LangVar;
-
-%type = ( "LOCALE_LANGVAR_ALPHA" => LOCALE_LANGVAR_ALPHA,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2langvar(@test);
-}
-
-$tests = "
-
-zzz ~ _undef_
-
-arevela
- ~
- Eastern Armenian
-
-";
-
-print "code2langvar...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2script.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2script.t
deleted file mode 100644
index 63621a4a361..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/code2script.t
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Script;
-
-%type = ( "LOCALE_SCRIPT_ALPHA" => LOCALE_SCRIPT_ALPHA,
- "LOCALE_SCRIPT_NUMERIC" => LOCALE_SCRIPT_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2script(@test);
-}
-
-$tests = "
-
-~ _undef_
-
-Phnx ~ Phoenician
-
-phnx ~ Phoenician
-
-115 LOCALE_SCRIPT_NUMERIC ~ Phoenician
-
-";
-
-print "code2script...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/country.t
deleted file mode 100755
index 89c30e98b2f..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country.t
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Country;
-
-%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
- "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
- "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
-
- if ($test[0] eq "rename_country") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Codes::Country::rename_country(@test,"nowarn");
-
- } elsif ($test[0] eq "add_country") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Codes::Country::add_country(@test,"nowarn");
-
- } elsif ($test[0] eq "delete_country") {
- shift(@test);
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return Locale::Codes::Country::delete_country(@test,"nowarn");
-
- } elsif ($test[0] eq "add_country_alias") {
- shift(@test);
- return Locale::Codes::Country::add_country_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "delete_country_alias") {
- shift(@test);
- return Locale::Codes::Country::delete_country_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "rename_country_code") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Codes::Country::rename_country_code(@test,"nowarn");
-
- } elsif ($test[0] eq "add_country_code_alias") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Codes::Country::add_country_code_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "delete_country_code_alias") {
- shift(@test);
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return Locale::Codes::Country::delete_country_code_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "country2code") {
- shift(@test);
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return country2code(@test);
-
- } else {
- shift(@test) if ($test[0] eq "code2country");
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2country(@test);
- }
-}
-
-$tests = "
-
-###################################
-# Test rename_country
-
-gb
- ~
- United Kingdom of Great Britain and Northern Ireland
-
-rename_country x1 NewName ~ 0
-
-rename_country gb NewName LOCALE_CODE_FOO ~ 0
-
-rename_country gb Macao ~ 0
-
-rename_country gb NewName LOCALE_CODE_ALPHA_3 ~ 0
-
-gb
- ~
- United Kingdom of Great Britain and Northern Ireland
-
-rename_country gb NewName ~ 1
-
-gb
- ~
- NewName
-
-us
- ~
- United States of America
-
-rename_country
-us
-The United States
- ~
- 1
-
-us
- ~
- The United States
-
-###################################
-# Test add_country
-
-xx ~ _undef_
-
-add_country xx Bolivia ~ 0
-
-add_country fi Xxxxx ~ 0
-
-add_country xx Xxxxx ~ 1
-
-xx ~ Xxxxx
-
-###################################
-# Test add_country_alias
-
-add_country_alias FooBar NewName ~ 0
-
-add_country_alias Australia Angola ~ 0
-
-country2code Australia ~ au
-
-country2code DownUnder ~ _undef_
-
-add_country_alias Australia DownUnder ~ 1
-
-country2code DownUnder ~ au
-
-###################################
-# Test delete_country_alias
-
-country2code uk ~ gb
-
-delete_country_alias Foobar ~ 0
-
-delete_country_alias UK ~ 1
-
-country2code uk ~ _undef_
-
-delete_country_alias Angola ~ 0
-
-###################################
-# Test delete_country
-
-country2code Angola ~ ao
-
-country2code Angola LOCALE_CODE_ALPHA_3 ~ ago
-
-delete_country ao ~ 1
-
-country2code Angola ~ _undef_
-
-country2code Angola LOCALE_CODE_ALPHA_3 ~ ago
-
-###################################
-# Test rename_country_code
-
-code2country zz ~ _undef_
-
-code2country ar ~ Argentina
-
-country2code Argentina ~ ar
-
-rename_country_code ar us ~ 0
-
-rename_country_code ar zz ~ 1
-
-rename_country_code us ar ~ 0
-
-code2country zz ~ Argentina
-
-code2country ar ~ Argentina
-
-country2code Argentina ~ zz
-
-rename_country_code zz ar ~ 1
-
-code2country zz ~ Argentina
-
-code2country ar ~ Argentina
-
-country2code Argentina ~ ar
-
-###################################
-# Test add_country_code_alias and
-# delete_country_code_alias
-
-code2country bm ~ Bermuda
-
-code2country yy ~ _undef_
-
-country2code Bermuda ~ bm
-
-add_country_code_alias bm us ~ 0
-
-add_country_code_alias bm zz ~ 0
-
-add_country_code_alias bm yy ~ 1
-
-code2country bm ~ Bermuda
-
-code2country yy ~ Bermuda
-
-country2code Bermuda ~ bm
-
-delete_country_code_alias us ~ 0
-
-delete_country_code_alias ww ~ 0
-
-delete_country_code_alias yy ~ 1
-
-code2country bm ~ Bermuda
-
-code2country yy ~ _undef_
-
-country2code Bermuda ~ bm
-
-";
-
-print "country (semi-private)...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country2code.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/country2code.t
deleted file mode 100644
index 03c70b8c6f1..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country2code.t
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Country;
-
-%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
- "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
- "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
- "LOCALE_CODE_DOM" => LOCALE_CODE_DOM,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]} if (@test == 2 && $test[1] && exists $type{$test[1]});
- return country2code(@test);
-}
-
-$tests = "
-
-kazakhstan
- ~
- kz
-
-kazakstan
- ~
- kz
-
-macao
- ~
- mo
-
-macau
- ~
- mo
-
-
-~ _undef_
-
-_undef_
- ~
- _undef_
-
-Banana
- ~
- _undef_
-
-japan
- ~
- jp
-
-Japan
- ~
- jp
-
-United States
- ~
- us
-
-United Kingdom
- ~
- gb
-
-Andorra
- ~
- ad
-
-Zimbabwe
- ~
- zw
-
-Iran
- ~
- ir
-
-North Korea
- ~
- kp
-
-South Korea
- ~
- kr
-
-Libya
- ~
- ly
-
-Syrian Arab Republic
- ~
- sy
-
-Svalbard
- ~
- _undef_
-
-Jan Mayen
- ~
- _undef_
-
-USA
- ~
- us
-
-United States of America
- ~
- us
-
-Great Britain
- ~
- gb
-
-Burma
- ~
- mm
-
-French Southern and Antarctic Lands
- ~
- tf
-
-Aland Islands
- ~
- ax
-
-Yugoslavia
- ~
- _undef_
-
-Serbia and Montenegro
- ~
- _undef_
-
-East Timor
- ~
- tl
-
-Zaire
- ~
- _undef_
-
-Zaire
-retired
- ~
- zr
-
-Congo, The Democratic Republic of the
- ~
- cd
-
-Congo, The Democratic Republic of the
-LOCALE_CODE_ALPHA_3
- ~
- cod
-
-Congo, The Democratic Republic of the
-LOCALE_CODE_NUMERIC
- ~
- 180
-
-Syria
- ~
- sy
-
-# Last codes in each set (we'll assume that if we got these, there's a good
-# possiblity that we got all the others).
-
-Zimbabwe
-LOCALE_CODE_ALPHA_2
- ~
- zw
-
-Zimbabwe
-LOCALE_CODE_ALPHA_3
- ~
- zwe
-
-Zimbabwe
-LOCALE_CODE_NUMERIC
- ~
- 716
-
-Zimbabwe
-LOCALE_CODE_DOM
- ~
- zw
-
-";
-
-print "country2code...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
-
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country2code_old.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/country2code_old.t
deleted file mode 100644
index 1f5fd5ebb87..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country2code_old.t
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Country;
-
-%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
- "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
- "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]} if (@test == 2 && $test[1] && exists $type{$test[1]});
- return country2code(@test);
-}
-
-$tests = "
-
-kazakhstan
- ~
- kz
-
-kazakstan
- ~
- kz
-
-macao
- ~
- mo
-
-macau
- ~
- mo
-
-
-~ _undef_
-
-_undef_
- ~
- _undef_
-
-Banana
- ~
- _undef_
-
-japan
- ~
- jp
-
-Japan
- ~
- jp
-
-United States
- ~
- us
-
-United Kingdom
- ~
- gb
-
-Andorra
- ~
- ad
-
-Zimbabwe
- ~
- zw
-
-Iran
- ~
- ir
-
-North Korea
- ~
- kp
-
-South Korea
- ~
- kr
-
-Libya
- ~
- ly
-
-Syrian Arab Republic
- ~
- sy
-
-Svalbard
- ~
- _undef_
-
-Jan Mayen
- ~
- _undef_
-
-USA
- ~
- us
-
-United States of America
- ~
- us
-
-Great Britain
- ~
- gb
-
-Burma
- ~
- mm
-
-French Southern and Antarctic Lands
- ~
- tf
-
-Aland Islands
- ~
- ax
-
-Yugoslavia
- ~
- _undef_
-
-Serbia and Montenegro
- ~
- _undef_
-
-East Timor
- ~
- tl
-
-Zaire
- ~
- _undef_
-
-Congo, The Democratic Republic of the
- ~
- cd
-
-Congo, The Democratic Republic of the
-LOCALE_CODE_ALPHA_3
- ~
- cod
-
-Congo, The Democratic Republic of the
-LOCALE_CODE_NUMERIC
- ~
- 180
-
-";
-
-print "country2code (old)...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
-
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_code2code.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_code2code.t
deleted file mode 100644
index d10a9e1018c..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_code2code.t
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Country;
-use Locale::Codes::Constants;
-
-%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
- "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
- "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
- );
-
-sub test {
- my($code,$type_in,$type_out) = @_;
- $type_in = $type{$type_in} if ($type_in && exists $type{$type_in});
- $type_out = $type{$type_out} if ($type_out && exists $type{$type_out});
-
- return country_code2code($code,$type_in,$type_out);
-}
-
-$tests = "
-
-bo LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_2 ~ bo
-
-bo LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_3 ~ _undef_
-
-zz LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 ~ _undef_
-
-zz LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_3 ~ _undef_
-
-zz LOCALE_CODE_ALPHA_2 0 ~ _undef_
-
-bo LOCALE_CODE_ALPHA_2 0 ~ _undef_
-
-_blank_ 0 0 ~ _undef_
-
-BO LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 ~ bol
-
-bol LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_2 ~ bo
-
-zwe LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_2 ~ zw
-
-858 LOCALE_CODE_NUMERIC LOCALE_CODE_ALPHA_3 ~ ury
-
-858 LOCALE_CODE_NUMERIC LOCALE_CODE_ALPHA_3 ~ ury
-
-tr LOCALE_CODE_ALPHA_2 LOCALE_CODE_NUMERIC ~ 792
-
-";
-
-print "country_code2code...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_code2code_old.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_code2code_old.t
deleted file mode 100644
index 1feb7c1e4ff..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_code2code_old.t
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Country;
-use Locale::Codes::Constants;
-
-%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
- "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
- "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
- );
-
-sub test {
- my($code,$type_in,$type_out) = @_;
- $type_in = $type{$type_in} if ($type_in && exists $type{$type_in});
- $type_out = $type{$type_out} if ($type_out && exists $type{$type_out});
-
- return country_code2code($code,$type_in,$type_out);
-}
-
-$tests = "
-
-bo LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_2 ~ bo
-
-bo LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_3 ~ _undef_
-
-zz LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 ~ _undef_
-
-zz LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_3 ~ _undef_
-
-zz LOCALE_CODE_ALPHA_2 0 ~ _undef_
-
-bo LOCALE_CODE_ALPHA_2 0 ~ _undef_
-
-_blank_ 0 0 ~ _undef_
-
-BO LOCALE_CODE_ALPHA_2 LOCALE_CODE_ALPHA_3 ~ bol
-
-bol LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_2 ~ bo
-
-zwe LOCALE_CODE_ALPHA_3 LOCALE_CODE_ALPHA_2 ~ zw
-
-858 LOCALE_CODE_NUMERIC LOCALE_CODE_ALPHA_3 ~ ury
-
-858 LOCALE_CODE_NUMERIC LOCALE_CODE_ALPHA_3 ~ ury
-
-tr LOCALE_CODE_ALPHA_2 LOCALE_CODE_NUMERIC ~ 792
-
-";
-
-print "country_code2code (old)...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_old.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_old.t
index 38eeaacc5f9..1c9addd3ea2 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_old.t
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/t/country_old.t
@@ -1,237 +1,18 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
+use warnings;
+use strict;
require 5.002;
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
+if ( -f "t/do_tests.pl" ) {
+ require "./t/do_tests.pl";
+} elsif (-f "do_tests.pl") {
+ require "./do_tests.pl";
} else {
- die "ERROR: cannot find testfunc.pl\n";
+ die "ERROR: cannot find do_tests.pl\n";
}
-unshift(@INC,$dir);
-use Locale::Country;
-
-%type = ( "LOCALE_CODE_ALPHA_2" => LOCALE_CODE_ALPHA_2,
- "LOCALE_CODE_ALPHA_3" => LOCALE_CODE_ALPHA_3,
- "LOCALE_CODE_NUMERIC" => LOCALE_CODE_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
-
- if ($test[0] eq "rename_country") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Country::rename_country(@test,"nowarn");
-
- } elsif ($test[0] eq "add_country") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Country::add_country(@test,"nowarn");
-
- } elsif ($test[0] eq "delete_country") {
- shift(@test);
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return Locale::Country::delete_country(@test,"nowarn");
-
- } elsif ($test[0] eq "add_country_alias") {
- shift(@test);
- return Locale::Country::add_country_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "delete_country_alias") {
- shift(@test);
- return Locale::Country::delete_country_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "rename_country_code") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Country::rename_country_code(@test,"nowarn");
-
- } elsif ($test[0] eq "add_country_code_alias") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Country::add_country_code_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "delete_country_code_alias") {
- shift(@test);
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return Locale::Country::delete_country_code_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "country2code") {
- shift(@test);
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return country2code(@test);
-
- } else {
- shift(@test) if ($test[0] eq "code2country");
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2country(@test);
- }
-}
-
-$tests = "
-
-###################################
-# Test rename_country
-
-gb
- ~
- United Kingdom of Great Britain and Northern Ireland
-
-rename_country x1 NewName ~ 0
-
-rename_country gb NewName LOCALE_CODE_FOO ~ 0
-
-rename_country gb Macao ~ 0
-
-rename_country gb NewName LOCALE_CODE_ALPHA_3 ~ 0
-
-gb
- ~
- United Kingdom of Great Britain and Northern Ireland
-
-rename_country gb NewName ~ 1
-
-gb
- ~
- NewName
-
-###################################
-# Test add_country
-
-xx ~ _undef_
-
-add_country xx Bolivia ~ 0
-
-add_country fi Xxxxx ~ 0
-
-add_country xx Xxxxx ~ 1
-
-xx ~ Xxxxx
-
-###################################
-# Test add_country_alias
-
-add_country_alias FooBar NewName ~ 0
-
-add_country_alias Australia Angola ~ 0
-
-country2code Australia ~ au
-
-country2code DownUnder ~ _undef_
-
-add_country_alias Australia DownUnder ~ 1
-
-country2code DownUnder ~ au
-
-###################################
-# Test delete_country_alias
-
-country2code uk ~ gb
-
-delete_country_alias Foobar ~ 0
-
-delete_country_alias UK ~ 1
-
-country2code uk ~ _undef_
-
-delete_country_alias Angola ~ 0
-
-###################################
-# Test delete_country
-
-country2code Angola ~ ao
-
-country2code Angola LOCALE_CODE_ALPHA_3 ~ ago
-
-delete_country ao ~ 1
-
-country2code Angola ~ _undef_
-
-country2code Angola LOCALE_CODE_ALPHA_3 ~ ago
-
-###################################
-# Test rename_country_code
-
-code2country zz ~ _undef_
-
-code2country ar ~ Argentina
-
-country2code Argentina ~ ar
-
-rename_country_code ar us ~ 0
-
-rename_country_code ar zz ~ 1
-
-rename_country_code us ar ~ 0
-
-code2country zz ~ Argentina
-
-code2country ar ~ Argentina
-
-country2code Argentina ~ zz
-
-rename_country_code zz ar ~ 1
-
-code2country zz ~ Argentina
-
-code2country ar ~ Argentina
-
-country2code Argentina ~ ar
-
-###################################
-# Test add_country_code_alias and
-# delete_country_code_alias
-
-code2country bm ~ Bermuda
-
-code2country yy ~ _undef_
-
-country2code Bermuda ~ bm
-
-add_country_code_alias bm us ~ 0
-
-add_country_code_alias bm zz ~ 0
-
-add_country_code_alias bm yy ~ 1
-
-code2country bm ~ Bermuda
-
-code2country yy ~ Bermuda
-
-country2code Bermuda ~ bm
-
-delete_country_code_alias us ~ 0
-
-delete_country_code_alias ww ~ 0
-
-delete_country_code_alias yy ~ 1
-
-code2country bm ~ Bermuda
-
-code2country yy ~ _undef_
-
-country2code Bermuda ~ bm
-
-";
-
-print "country (old; semi-private)...\n";
-test_Func(\&test,$tests,$runtests);
+do_tests('country','','old');
1;
# Local Variables:
@@ -242,5 +23,5 @@ test_Func(\&test,$tests,$runtests);
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/currency2code.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/currency2code.t
deleted file mode 100644
index bfe358fc400..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/currency2code.t
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Currency;
-
-%type = ( "LOCALE_CURR_ALPHA" => LOCALE_CURR_ALPHA,
- "LOCALE_CURR_NUMERIC" => LOCALE_CURR_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return currency2code(@test);
-}
-
-$tests = "
-
-_blank_ ~ _undef_
-
-Banana ~ _undef_
-
-~ _undef_
-
-_undef_ ~ _undef_
-
-
-Canadian Dollar
- ~
- CAD
-
-Belize Dollar
- ~
- BZD
-
-PULA
- ~
- BWP
-
-Riel
- ~
- KHR
-
-Zimbabwe Dollar
- ~
- ZWL
-
-";
-
-print "currency2code...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/currency2code_old.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/currency2code_old.t
deleted file mode 100644
index 1a3cc3d7649..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/currency2code_old.t
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Currency;
-
-%type = ( "LOCALE_CURR_ALPHA" => LOCALE_CURR_ALPHA,
- "LOCALE_CURR_NUMERIC" => LOCALE_CURR_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return currency2code(@test);
-}
-
-$tests = "
-
-_blank_ ~ _undef_
-
-Banana ~ _undef_
-
-~ _undef_
-
-_undef_ ~ _undef_
-
-
-Canadian Dollar
- ~
- CAD
-
-Belize Dollar
- ~
- BZD
-
-PULA
- ~
- BWP
-
-Riel
- ~
- KHR
-
-Zimbabwe Dollar
- ~
- ZWL
-
-";
-
-print "currency2code (old)...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/langext2code.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/langext2code.t
deleted file mode 100644
index 0313f1a13fd..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/langext2code.t
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::LangExt;
-
-%type = ( "LOCALE_LANGEXT_ALPHA" => LOCALE_LANGEXT_ALPHA,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return langext2code(@test);
-}
-
-$tests = "
-
-_blank_ ~ _undef_
-
-Mesopotamian Arabic
- ~
- acm
-
-";
-
-print "langext2code...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/langfam2code.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/langfam2code.t
deleted file mode 100644
index b3026f04f75..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/langfam2code.t
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::LangFam;
-
-%type = ( "LOCALE_LANGFAM_ALPHA" => LOCALE_LANGFAM_ALPHA,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return langfam2code(@test);
-}
-
-$tests = "
-
-_blank_ ~ _undef_
-
-Apache languages
- ~
- apa
-
-";
-
-print "langfam2code...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/language.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/language.t
deleted file mode 100755
index 82051b956a4..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/language.t
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Language;
-
-%type = ( "LOCALE_LANG_ALPHA_2" => LOCALE_LANG_ALPHA_2,
- "LOCALE_LANG_ALPHA_3" => LOCALE_LANG_ALPHA_3,
- "LOCALE_LANG_TERM" => LOCALE_LANG_TERM,
- );
-
-sub test {
- my(@test) = @_;
-
- if ($test[0] eq "rename_language") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Codes::Language::rename_language(@test,"nowarn");
-
- } elsif ($test[0] eq "add_language") {
- shift(@test);
- $test[2] = $type{$test[2]}
- if (@test == 3 && $test[2] && exists $type{$test[2]});
- return Locale::Codes::Language::add_language(@test,"nowarn");
-
- } elsif ($test[0] eq "delete_language") {
- shift(@test);
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return Locale::Codes::Language::delete_language(@test,"nowarn");
-
- } elsif ($test[0] eq "add_language_alias") {
- shift(@test);
- return Locale::Codes::Language::add_language_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "delete_language_alias") {
- shift(@test);
- return Locale::Codes::Language::delete_language_alias(@test,"nowarn");
-
- } elsif ($test[0] eq "language2code") {
- shift(@test);
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return language2code(@test);
-
- } else {
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return code2language(@test);
- }
-}
-
-$tests = "
-
-zu ~ Zulu
-
-rename_language zu NewName LOCALE_LANG_FOO ~ 0
-
-rename_language zu English LOCALE_LANG_ALPHA_2 ~ 0
-
-rename_language zu NewName LOCALE_LANG_ALPHA_3 ~ 0
-
-zu ~ Zulu
-
-rename_language zu NewName LOCALE_LANG_ALPHA_2 ~ 1
-
-zu ~ NewName
-
-";
-
-print "language (semi-private)...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/language2code.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/language2code.t
deleted file mode 100644
index 111b81219c3..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/language2code.t
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Language;
-
-%type = ( "LOCALE_LANG_ALPHA_2" => LOCALE_LANG_ALPHA_2,
- "LOCALE_LANG_ALPHA_3" => LOCALE_LANG_ALPHA_3,
- "LOCALE_LANG_TERM" => LOCALE_LANG_TERM,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return language2code(@test);
-}
-
-$tests = "
-
-Banana ~ _undef_
-
-~ _undef_
-
-_undef_ ~ _undef_
-
-Afar
- ~
- aa
-
-ESTONIAN
- ~
- et
-
-French
- ~
- fr
-
-Greek
- ~
- el
-
-Japanese
- ~
- ja
-
-Zulu
- ~
- zu
-
-english
- ~
- en
-
-japanese
- ~
- ja
-
-# Last ones in the list
-
-Zulu
-LOCALE_LANG_ALPHA_2
- ~
- zu
-
-Zaza
-LOCALE_LANG_ALPHA_3
- ~
- zza
-
-Welsh
-LOCALE_LANG_TERM
- ~
- cym
-
-Zande languages
-LOCALE_LANG_ALPHA_3
- ~
- znd
-
-Zuojiang Zhuang
-LOCALE_LANG_ALPHA_3
- ~
- zzj
-
-";
-
-print "language2code...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/langvar2code.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/langvar2code.t
deleted file mode 100644
index 089c87ba52e..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/langvar2code.t
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::LangVar;
-
-%type = ( "LOCALE_LANGVAR_ALPHA" => LOCALE_LANGVAR_ALPHA,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return langvar2code(@test);
-}
-
-$tests = "
-
-_blank_ ~ _undef_
-
-Eastern Armenian
- ~
- arevela
-
-";
-
-print "langvar2code...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/script2code.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/script2code.t
deleted file mode 100644
index ae04118e8e9..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/script2code.t
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Codes::Script;
-
-%type = ( "LOCALE_SCRIPT_ALPHA" => LOCALE_SCRIPT_ALPHA,
- "LOCALE_SCRIPT_NUMERIC" => LOCALE_SCRIPT_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return script2code(@test);
-}
-
-$tests = "
-
-~ _undef_
-
-Phoenician ~ Phnx
-
-Phoenician LOCALE_SCRIPT_NUMERIC ~ 115
-
-";
-
-print "script2code...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/script2code_old.t b/gnu/usr.bin/perl/cpan/Locale-Codes/t/script2code_old.t
deleted file mode 100644
index ea8a09531ec..00000000000
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/script2code_old.t
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.002;
-
-$runtests=shift(@ARGV);
-if ( -f "t/testfunc.pl" ) {
- require "t/testfunc.pl";
- $dir="./lib";
- $tdir="t";
-} elsif ( -f "testfunc.pl" ) {
- require "testfunc.pl";
- $dir="../lib";
- $tdir=".";
-} else {
- die "ERROR: cannot find testfunc.pl\n";
-}
-
-unshift(@INC,$dir);
-use Locale::Script;
-
-%type = ( "LOCALE_SCRIPT_ALPHA" => LOCALE_SCRIPT_ALPHA,
- "LOCALE_SCRIPT_NUMERIC" => LOCALE_SCRIPT_NUMERIC,
- );
-
-sub test {
- my(@test) = @_;
- $test[1] = $type{$test[1]}
- if (@test == 2 && $test[1] && exists $type{$test[1]});
- return script2code(@test);
-}
-
-$tests = "
-
-~ _undef_
-
-Phoenician ~ Phnx
-
-Phoenician LOCALE_SCRIPT_NUMERIC ~ 115
-
-";
-
-print "script2code (old)...\n";
-test_Func(\&test,$tests,$runtests);
-
-1;
-# Local Variables:
-# mode: cperl
-# indent-tabs-mode: nil
-# cperl-indent-level: 3
-# cperl-continued-statement-offset: 2
-# cperl-continued-brace-offset: 0
-# cperl-brace-offset: 0
-# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
-# End:
diff --git a/gnu/usr.bin/perl/cpan/Locale-Codes/t/testfunc.pl b/gnu/usr.bin/perl/cpan/Locale-Codes/t/testfunc.pl
index bd6a8aaf479..497e6776234 100644
--- a/gnu/usr.bin/perl/cpan/Locale-Codes/t/testfunc.pl
+++ b/gnu/usr.bin/perl/cpan/Locale-Codes/t/testfunc.pl
@@ -1,5 +1,5 @@
#!/usr/bin/perl -w
-# Copyright (c) 1996-2015 Sullivan Beck. All rights reserved.
+# Copyright (c) 1996-2018 Sullivan Beck. All rights reserved.
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -475,6 +475,6 @@ sub vals_to_print {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/FastCalc.xs b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/FastCalc.xs
index eb228e4ca56..f8bb3140e89 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/FastCalc.xs
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/FastCalc.xs
@@ -152,7 +152,7 @@ __strip_zeros(x)
elems = av_len(a); /* number of elems in array */
ST(0) = x; /* we return x */
if (elems == -1)
- {
+ {
av_push (a, newSViv(0)); /* correct empty arrays */
XSRETURN(1);
}
@@ -210,13 +210,13 @@ _dec(class,x)
}
sv_setnv (temp, MAX); /* overflow, so set this to $MAX */
index++;
- }
+ }
/* do have more than one element? */
/* (more than one because [0] should be kept as single-element) */
if (elems > 0)
{
temp = *av_fetch(a, elems, 0); /* fetch last element */
- if (SvIV(temp) == 0) /* did last elem overflow? */
+ if (SvIV(temp) == 0) /* did last elem overflow? */
{
av_pop(a); /* yes, so shrink array */
/* aka remove leading zeros */
@@ -254,7 +254,7 @@ _inc(class,x)
}
sv_setiv (temp, 0); /* overflow, so set this elem to 0 */
index++;
- }
+ }
temp = *av_fetch(a, elems, 0); /* fetch last element */
if (SvIV(temp) == 0) /* did last elem overflow? */
{
@@ -394,10 +394,10 @@ _acmp(class, cx, cy);
diff_nv = SvNV(tempx) - SvNV(tempy);
if (diff_nv != 0)
{
- break;
+ break;
}
elemsx--;
- }
+ }
if (diff_nv > 0)
{
RETURN_MORTAL_INT(1);
@@ -407,4 +407,3 @@ _acmp(class, cx, cy);
RETURN_MORTAL_INT(-1);
}
ST(0) = sv_2mortal(newSViv(0)); /* X and Y are equal */
-
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bigintfc.t b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bigintfc.t
index c8751ad81bd..a3dd4a8d37c 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bigintfc.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bigintfc.t
@@ -148,17 +148,17 @@ $x = $C->_new("123000"); is ($C->_zeros($x),3);
$x = $C->_new("0"); is ($C->_zeros($x),0);
# _lsft, _rsft
-$x = $C->_new("10"); $y = $C->_new("3");
+$x = $C->_new("10"); $y = $C->_new("3");
is ($C->_str($C->_lsft($x,$y,10)),10000);
-$x = $C->_new("20"); $y = $C->_new("3");
+$x = $C->_new("20"); $y = $C->_new("3");
is ($C->_str($C->_lsft($x,$y,10)),20000);
$x = $C->_new("128"); $y = $C->_new("4");
is ($C->_str($C->_lsft($x,$y,2)), 128 << 4);
-$x = $C->_new("1000"); $y = $C->_new("3");
+$x = $C->_new("1000"); $y = $C->_new("3");
is ($C->_str($C->_rsft($x,$y,10)),1);
-$x = $C->_new("20000"); $y = $C->_new("3");
+$x = $C->_new("20000"); $y = $C->_new("3");
is ($C->_str($C->_rsft($x,$y,10)),20);
$x = $C->_new("256"); $y = $C->_new("4");
is ($C->_str($C->_rsft($x,$y,2)),256 >> 4);
@@ -211,13 +211,13 @@ $x = $C->_new("3333"); $y = $C->_new("1111");
is ($C->_str(scalar $C->_div($x,$y)),3);
$x = $C->_new("33333"); $y = $C->_new("1111"); ($x,$y) = $C->_div($x,$y);
is ($C->_str($x),30); is ($C->_str($y),3);
-$x = $C->_new("123"); $y = $C->_new("1111");
+$x = $C->_new("123"); $y = $C->_new("1111");
($x,$y) = $C->_div($x,$y); is ($C->_str($x),0); is ($C->_str($y),123);
# _num
foreach (qw/1 12 123 1234 12345 1234567 12345678 123456789 1234567890/)
{
- $x = $C->_new("$_");
+ $x = $C->_new("$_");
is (ref($x),'ARRAY'); is ($C->_str($x),"$_");
$x = $C->_num($x); is (ref($x),''); is ($x,$_);
}
@@ -242,7 +242,7 @@ is ($C->_str($C->_pow($x,$n)), 1);
$x = $C->_new("5"); $n = $C->_new("1"); # x ** 1 => x
is ($C->_str($C->_pow($x,$n)), 5);
-$x = $C->_new("81"); $n = $C->_new("3"); # 81 ** 3 == 531441
+$x = $C->_new("81"); $n = $C->_new("3"); # 81 ** 3 == 531441
is ($C->_str($C->_pow($x,$n)),81 ** 3);
is ($C->_str($C->_root($x,$n)),81);
@@ -254,7 +254,7 @@ is ($C->_str($C->_pow($x,$n)),'150094635296999121'); # 531441 ** 3 ==
is ($C->_str($C->_root($x,$n)),'531441');
is ($C->_str($C->_root($x,$n)),'81');
-$x = $C->_new("81"); $n = $C->_new("14");
+$x = $C->_new("81"); $n = $C->_new("14");
is ($C->_str($C->_pow($x,$n)),'523347633027360537213511521');
is ($C->_str($C->_root($x,$n)),'81');
@@ -274,7 +274,7 @@ for my $i (2 .. 9)
my $rc = '9' x ($i-1). '8' . '0' x ($i-1) . '1';
print "# _pow( ", '9' x $i, ", 2) \n" unless
is ($C->_str($C->_pow($x,$n)),$rc);
-
+
if ($i <= 7)
{
$x = '9' x $i; $x = $C->_new($x);
@@ -333,11 +333,7 @@ foreach (qw/999 9999 99999 9999999 99999999 999999999 9999999999 99999999999/)
$x = $C->_new("1000"); $C->_inc($x); is ($C->_str($x),'1001');
$C->_dec($x); is ($C->_str($x),'1000');
-my $BL;
-{
- no strict 'refs';
- $BL = &{"$C"."::_base_len"}();
-}
+my $BL = $C -> _base_len();
$x = '1' . '0' x $BL;
$z = '1' . '0' x ($BL-1); $z .= '1';
@@ -427,4 +423,3 @@ is ($C->_check(123),'123 is not a reference');
# done
1;
-
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bootstrap.t b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bootstrap.t
index d73afcb47c1..6f94bebc883 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bootstrap.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/bootstrap.t
@@ -5,4 +5,3 @@ use Test::More tests => 1;
BEGIN {
use_ok('Math::BigInt::FastCalc');
}
-
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/leak.t b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/leak.t
index 5db38e1dbd9..6d0f7464a57 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/leak.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/leak.t
@@ -12,7 +12,9 @@ use Math::BigInt::FastCalc;
#############################################################################
package Math::BigInt::FastCalc::LeakCheck;
-use parent qw(Math::BigInt::FastCalc);
+
+use Math::BigInt::FastCalc;
+our @ISA = qw< Math::BigInt::FastCalc >;
my $destroyed = 0;
sub DESTROY { $destroyed++; }
@@ -76,4 +78,3 @@ sub _test_acmp
my $n_2 = Math::BigInt::FastCalc->_str($n2);
is ($destroyed, 1, "_acmp($n_1,$n_2) does not leak memory");
}
-
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/mbi_rand.t b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/mbi_rand.t
index 4ad473d8823..1186e2e144c 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/mbi_rand.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/mbi_rand.t
@@ -1,55 +1,100 @@
-#!/usr/bin/perl -w
+#!perl
use strict;
+use warnings;
+
use Test::More;
my $count = 128;
-plan(($^O eq 'os390')
- ? (skip_all => 'takes too long on os390') : (tests => $count*2));
+plan(($^O eq 'os390') ? (skip_all => 'takes too long on os390')
+ : (tests => $count*4));
-use Math::BigInt lib => 'FastCalc';
-my $c = 'Math::BigInt';
+use Math::BigInt only => 'FastCalc';
my $length = 128;
# If you get a failure here, please re-run the test with the printed seed
-# value as input: perl t/mbi_rand.t seed
+# value as input "perl t/mbi_rand.t seed" and send me the output
+
+my $seed = @ARGV == 1 ? $ARGV[0] : int(rand(1165537));
+#diag(" seed: $seed\n");
+srand($seed);
+
+my $_base_len;
+my @_base_len;
-my $seed = ($#ARGV == 0) ? $ARGV[0] : int(rand(65537));
-print "# seed: $seed\n"; srand($seed);
+#diag(" lib: ", Math::BigInt->config('lib'));
+if (Math::BigInt->config('lib') =~ /::Calc/) {
+ $_base_len = Math::BigInt::Calc->_base_len();
+ @_base_len = Math::BigInt::Calc->_base_len();
+ #diag("base len: $_base_len (scalar context)");
+ #diag("base len: @_base_len (list contex)");
+}
-my ($A,$B,$As,$Bs,$ADB,$AMB,$la,$lb);
+my ($A, $B, $A_str, $B_str, $AdivB, $AmodB, $A_len, $B_len);
my $two = Math::BigInt->new(2);
-for (my $i = 0; $i < $count; $i++)
- {
- # length of A and B
- $la = int(rand($length)+1); $lb = int(rand($length)+1);
- $As = ''; $Bs = '';
- # we create the numbers from "patterns", e.g. get a random number and a
- # random count and string them together. This means things like
- # "100000999999999999911122222222" are much more likely. If we just strung
- # together digits, we would end up with "1272398823211223" etc.
- while (length($As) < $la) { $As .= int(rand(100)) x int(rand(16)); }
- while (length($Bs) < $lb) { $Bs .= int(rand(100)) x int(rand(16)); }
- $As =~ s/^0+//; $Bs =~ s/^0+//;
- $As = $As || '0'; $Bs = $Bs || '0';
- # print "# As $As\n# Bs $Bs\n";
- $A = $c->new($As); $B = $c->new($Bs);
- # print "# A $A\n# B $B\n";
- if ($A->is_zero() || $B->is_zero())
- {
- is (1,1); is (1,1); next;
+for (my $i = 0; $i < $count; $i++) {
+ #diag("");
+
+ # length of A and B
+ $A_len = int(rand($length) + 1);
+ $B_len = int(rand($length) + 1);
+ $A_str = '';
+ $B_str = '';
+
+ # We create the numbers from "patterns", e.g. get a random number and a
+ # random count and string them together. This means things like
+ # "100000999999999999911122222222" are much more likely. If we just strung
+ # together digits, we would end up with "1272398823211223" etc. It also
+ # means that we get more frequently equal numbers or other special cases.
+
+ while (length($A_str) < $A_len) {
+ $A_str .= int(rand(100)) x int(rand(16));
+ }
+ while (length($B_str) < $B_len) {
+ $B_str .= int(rand(100)) x int(rand(16));
}
- # check that int(A/B)*B + A % B == A holds for all inputs
- # $X = ($A/$B)*$B + 2 * ($A % $B) - ($A % $B);
- ($ADB,$AMB) = $A->copy()->bdiv($B);
- print "# ". join(' ',Math::BigInt::Calc->_base_len()),"\n"
- unless is ($ADB*$B+$two*$AMB-$AMB,$As);
- # swap 'em and try this, too
- # $X = ($B/$A)*$A + $B % $A;
- ($ADB,$AMB) = $B->copy()->bdiv($A);
- print "# ". join(' ',Math::BigInt::Calc->_base_len()),"\n"
- unless is ($ADB*$A+$two*$AMB-$AMB,$Bs);
- }
+ $A_str =~ s/^0+(?=\d)//;
+ $B_str =~ s/^0+(?=\d)//;
+ #diag(" As: $A_str");
+ #diag(" Bs: $B_str");
+ $A = Math::BigInt->new($A_str);
+ $B = Math::BigInt->new($B_str);
+ #diag(" A: $A");
+ #diag(" B: $B");
+
+ SKIP: {
+ skip '$A and/or $B are zero.', 4 if $A->is_zero() || $B->is_zero();
+
+ # check that int(A / B) * B + A % B == A holds for all inputs
+
+ # $X = ($A / $B) * $B + 2 * ($A % $B) - ($A % $B);
+
+ ($AdivB, $AmodB) = $A->copy()->bdiv($B);
+
+ #diag(" A / B: $AdivB");
+ #diag(" A % B: $AmodB");
+
+ is($AdivB * $B + $two * $AmodB - $AmodB, $A_str,
+ "AdivB * B + 2 * AmodB - AmodB == A");
+
+ if (is($AdivB * $B / $B, $AdivB, "AdivB * B / B == AdivB")) {
+ if (Math::BigInt->config('lib') =~ /::Calc/) {
+ #diag("AdivB->[-1]: ", $AdivB->{value}->[-1]);
+ #diag(" B->[-1]: ", $B->{value}->[-1]);
+ }
+ }
+
+ # swap 'em and try this, too
+ # $X = ($B/$A)*$A + $B % $A;
+ ($AdivB, $AmodB) = $B->copy()->bdiv($A);
+ # print "check: $AdivB $AmodB";
+
+ is($AdivB * $A + $two * $AmodB - $AmodB, $B_str,
+ "AdivB * A + 2 * AmodB - AmodB == B");
+
+ is($AdivB * $A / $A, $AdivB, "AdivB * A / A == AdivB");
+ }
+}
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm
index 4c2c9b80f0a..b716b88a348 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm
@@ -1,27 +1,29 @@
package Math::BigFloat;
-#
+#
# Mike grinned. 'Two down, infinity to go' - Mike Nostrus in 'Before and After'
#
-# The following hash values are internally used:
-# _e : exponent (ref to $CALC object)
-# _m : mantissa (ref to $CALC object)
-# _es : sign of _e
-# sign : +,-,+inf,-inf, or "NaN" if not a number
-# _a : accuracy
-# _p : precision
+# The following hash values are used internally:
+# sign : "+", "-", "+inf", "-inf", or "NaN" if not a number
+# _m : mantissa ($CALC object)
+# _es : sign of _e
+# _e : exponent ($CALC object)
+# _a : accuracy
+# _p : precision
use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999715';
-$VERSION = eval $VERSION;
+use Carp ();
+use Math::BigInt ();
+
+our $VERSION = '1.999811';
require Exporter;
-our @ISA = qw/Math::BigInt/;
-our @EXPORT_OK = qw/bpi/;
+our @ISA = qw/Math::BigInt/;
+our @EXPORT_OK = qw/bpi/;
# $_trap_inf/$_trap_nan are internal and should never be accessed from outside
our ($AUTOLOAD, $accuracy, $precision, $div_scale, $round_mode, $rnd_mode,
@@ -30,20 +32,174 @@ our ($AUTOLOAD, $accuracy, $precision, $div_scale, $round_mode, $rnd_mode,
my $class = "Math::BigFloat";
use overload
- '<=>' => sub { my $rc = $_[2] ? ref($_[0])->bcmp($_[1], $_[0])
- : ref($_[0])->bcmp($_[0], $_[1]);
- $rc = 1 unless defined $rc;
- $rc <=> 0;
- },
-# we need '>=' to get things like "1 >= NaN" right:
- '>=' => sub { my $rc = $_[2] ? ref($_[0])->bcmp($_[1],$_[0])
- : ref($_[0])->bcmp($_[0],$_[1]);
- # if there was a NaN involved, return false
- return '' unless defined $rc;
- $rc >= 0;
- },
- 'int' => sub { $_[0]->as_number() }, # 'trunc' to bigint
-;
+
+ # overload key: with_assign
+
+ '+' => sub { $_[0] -> copy() -> badd($_[1]); },
+
+ '-' => sub { my $c = $_[0] -> copy();
+ $_[2] ? $c -> bneg() -> badd($_[1])
+ : $c -> bsub($_[1]); },
+
+ '*' => sub { $_[0] -> copy() -> bmul($_[1]); },
+
+ '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0])
+ : $_[0] -> copy() -> bdiv($_[1]); },
+
+ '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0])
+ : $_[0] -> copy() -> bmod($_[1]); },
+
+ '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0])
+ : $_[0] -> copy() -> bpow($_[1]); },
+
+ '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blsft($_[0])
+ : $_[0] -> copy() -> blsft($_[1]); },
+
+ '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> brsft($_[0])
+ : $_[0] -> copy() -> brsft($_[1]); },
+
+ # overload key: assign
+
+ '+=' => sub { $_[0]->badd($_[1]); },
+
+ '-=' => sub { $_[0]->bsub($_[1]); },
+
+ '*=' => sub { $_[0]->bmul($_[1]); },
+
+ '/=' => sub { scalar $_[0]->bdiv($_[1]); },
+
+ '%=' => sub { $_[0]->bmod($_[1]); },
+
+ '**=' => sub { $_[0]->bpow($_[1]); },
+
+
+ '<<=' => sub { $_[0]->blsft($_[1]); },
+
+ '>>=' => sub { $_[0]->brsft($_[1]); },
+
+# 'x=' => sub { },
+
+# '.=' => sub { },
+
+ # overload key: num_comparison
+
+ '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0])
+ : $_[0] -> blt($_[1]); },
+
+ '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0])
+ : $_[0] -> ble($_[1]); },
+
+ '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0])
+ : $_[0] -> bgt($_[1]); },
+
+ '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0])
+ : $_[0] -> bge($_[1]); },
+
+ '==' => sub { $_[0] -> beq($_[1]); },
+
+ '!=' => sub { $_[0] -> bne($_[1]); },
+
+ # overload key: 3way_comparison
+
+ '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]);
+ defined($cmp) && $_[2] ? -$cmp : $cmp; },
+
+ 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr()
+ : $_[0] -> bstr() cmp "$_[1]"; },
+
+ # overload key: str_comparison
+
+# 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0])
+# : $_[0] -> bstrlt($_[1]); },
+#
+# 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0])
+# : $_[0] -> bstrle($_[1]); },
+#
+# 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0])
+# : $_[0] -> bstrgt($_[1]); },
+#
+# 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0])
+# : $_[0] -> bstrge($_[1]); },
+#
+# 'eq' => sub { $_[0] -> bstreq($_[1]); },
+#
+# 'ne' => sub { $_[0] -> bstrne($_[1]); },
+
+ # overload key: binary
+
+ '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0])
+ : $_[0] -> copy() -> band($_[1]); },
+
+ '&=' => sub { $_[0] -> band($_[1]); },
+
+ '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0])
+ : $_[0] -> copy() -> bior($_[1]); },
+
+ '|=' => sub { $_[0] -> bior($_[1]); },
+
+ '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0])
+ : $_[0] -> copy() -> bxor($_[1]); },
+
+ '^=' => sub { $_[0] -> bxor($_[1]); },
+
+# '&.' => sub { },
+
+# '&.=' => sub { },
+
+# '|.' => sub { },
+
+# '|.=' => sub { },
+
+# '^.' => sub { },
+
+# '^.=' => sub { },
+
+ # overload key: unary
+
+ 'neg' => sub { $_[0] -> copy() -> bneg(); },
+
+# '!' => sub { },
+
+ '~' => sub { $_[0] -> copy() -> bnot(); },
+
+# '~.' => sub { },
+
+ # overload key: mutators
+
+ '++' => sub { $_[0] -> binc() },
+
+ '--' => sub { $_[0] -> bdec() },
+
+ # overload key: func
+
+ 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0])
+ : $_[0] -> copy() -> batan2($_[1]); },
+
+ 'cos' => sub { $_[0] -> copy() -> bcos(); },
+
+ 'sin' => sub { $_[0] -> copy() -> bsin(); },
+
+ 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); },
+
+ 'abs' => sub { $_[0] -> copy() -> babs(); },
+
+ 'log' => sub { $_[0] -> copy() -> blog(); },
+
+ 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); },
+
+ 'int' => sub { $_[0] -> copy() -> bint(); },
+
+ # overload key: conversion
+
+ 'bool' => sub { $_[0] -> is_zero() ? '' : 1; },
+
+ '""' => sub { $_[0] -> bstr(); },
+
+ '0+' => sub { $_[0] -> numify(); },
+
+ '=' => sub { $_[0]->copy(); },
+
+ ;
##############################################################################
# global constants, flags and assorted stuff
@@ -61,7 +217,7 @@ $div_scale = 40;
$upgrade = undef;
$downgrade = undef;
# the package we are using for our private parts, defaults to:
-# Math::BigInt->config()->{lib}
+# Math::BigInt->config('lib')
my $MBI = 'Math::BigInt::Calc';
# are NaNs ok? (otherwise it dies when encountering an NaN) set w/ config()
@@ -70,67 +226,134 @@ $_trap_nan = 0;
$_trap_inf = 0;
# constant for easier life
-my $nan = 'NaN';
+my $nan = 'NaN';
-my $IMPORT = 0; # was import() called yet? used to make require work
+my $IMPORT = 0; # was import() called yet? used to make require work
-# some digits of accuracy for blog(undef,10); which we use in blog() for speed
-my $LOG_10 =
+# some digits of accuracy for blog(undef, 10); which we use in blog() for speed
+my $LOG_10 =
'2.3025850929940456840179914546843642076011014886287729760333279009675726097';
my $LOG_10_A = length($LOG_10)-1;
# ditto for log(2)
-my $LOG_2 =
+my $LOG_2 =
'0.6931471805599453094172321214581765680755001343602552541206800094933936220';
my $LOG_2_A = length($LOG_2)-1;
-my $HALF = '0.5'; # made into an object if nec.
+my $HALF = '0.5'; # made into an object if nec.
##############################################################################
# the old code had $rnd_mode, so we need to support it, too
-sub TIESCALAR { my ($class) = @_; bless \$round_mode, $class; }
-sub FETCH { return $round_mode; }
-sub STORE { $rnd_mode = $_[0]->round_mode($_[1]); }
+sub TIESCALAR {
+ my ($class) = @_;
+ bless \$round_mode, $class;
+}
+
+sub FETCH {
+ return $round_mode;
+}
+
+sub STORE {
+ $rnd_mode = $_[0]->round_mode($_[1]);
+}
+
+BEGIN {
+ # when someone sets $rnd_mode, we catch this and check the value to see
+ # whether it is valid or not.
+ $rnd_mode = 'even';
+ tie $rnd_mode, 'Math::BigFloat';
+
+ # we need both of them in this package:
+ *as_int = \&as_number;
+}
-BEGIN
- {
- # when someone sets $rnd_mode, we catch this and check the value to see
- # whether it is valid or not.
- $rnd_mode = 'even'; tie $rnd_mode, 'Math::BigFloat';
+sub DESTROY {
+ # going through AUTOLOAD for every DESTROY is costly, avoid it by empty sub
+}
+
+sub AUTOLOAD {
+ # make fxxx and bxxx both work by selectively mapping fxxx() to MBF::bxxx()
+ my $name = $AUTOLOAD;
+
+ $name =~ s/(.*):://; # split package
+ my $c = $1 || $class;
+ no strict 'refs';
+ $c->import() if $IMPORT == 0;
+ if (!_method_alias($name)) {
+ if (!defined $name) {
+ # delayed load of Carp and avoid recursion
+ Carp::croak("$c: Can't call a method without name");
+ }
+ if (!_method_hand_up($name)) {
+ # delayed load of Carp and avoid recursion
+ Carp::croak("Can't call $c\-\>$name, not a valid method");
+ }
+ # try one level up, but subst. bxxx() for fxxx() since MBI only got bxxx()
+ $name =~ s/^f/b/;
+ return &{"Math::BigInt"."::$name"}(@_);
+ }
+ my $bname = $name;
+ $bname =~ s/^f/b/;
+ $c .= "::$name";
+ *{$c} = \&{$bname};
+ &{$c}; # uses @_
+}
- # we need both of them in this package:
- *as_int = \&as_number;
- }
-
##############################################################################
{
- # valid method aliases for AUTOLOAD
- my %methods = map { $_ => 1 }
- qw / fadd fsub fmul fdiv fround ffround fsqrt fmod fstr fsstr fpow fnorm
- fint facmp fcmp fzero fnan finf finc fdec ffac fneg
- fceil ffloor frsft flsft fone flog froot fexp
- /;
- # valid methods that can be handed up (for AUTOLOAD)
- my %hand_ups = map { $_ => 1 }
- qw / is_nan is_inf is_negative is_positive is_pos is_neg
- accuracy precision div_scale round_mode fabs fnot
- objectify upgrade downgrade
- bone binf bnan bzero
- bsub
- /;
-
- sub _method_alias { exists $methods{$_[0]||''}; }
- sub _method_hand_up { exists $hand_ups{$_[0]||''}; }
+ # valid method aliases for AUTOLOAD
+ my %methods = map { $_ => 1 }
+ qw / fadd fsub fmul fdiv fround ffround fsqrt fmod fstr fsstr fpow fnorm
+ fint facmp fcmp fzero fnan finf finc fdec ffac fneg
+ fceil ffloor frsft flsft fone flog froot fexp
+ /;
+ # valid methods that can be handed up (for AUTOLOAD)
+ my %hand_ups = map { $_ => 1 }
+ qw / is_nan is_inf is_negative is_positive is_pos is_neg
+ accuracy precision div_scale round_mode fabs fnot
+ objectify upgrade downgrade
+ bone binf bnan bzero
+ bsub
+ /;
+
+ sub _method_alias { exists $methods{$_[0]||''}; }
+ sub _method_hand_up { exists $hand_ups{$_[0]||''}; }
}
-##############################################################################
-# constructors
+sub DEBUG () { 0; }
+
+sub isa {
+ my ($self, $class) = @_;
+ return if $class =~ /^Math::BigInt/; # we aren't one of these
+ UNIVERSAL::isa($self, $class);
+}
+
+sub config {
+ # return (later set?) configuration data as hash ref
+ my $class = shift || 'Math::BigFloat';
+
+ if (@_ == 1 && ref($_[0]) ne 'HASH') {
+ my $cfg = $class->SUPER::config();
+ return $cfg->{$_[0]};
+ }
+
+ my $cfg = $class->SUPER::config(@_);
+
+ # now we need only to override the ones that are different from our parent
+ $cfg->{class} = $class;
+ $cfg->{with} = $MBI;
+ $cfg;
+}
+
+###############################################################################
+# Constructor methods
+###############################################################################
sub new {
- # Create a new BigFloat object from a string or another bigfloat object.
+ # Create a new Math::BigFloat object from a string or another bigfloat object.
# _e: exponent
# _m: mantissa
- # sign => sign ("+", "-", "+inf", "-inf", or "NaN"
+ # sign => ("+", "-", "+inf", "-inf", or "NaN")
my $self = shift;
my $selfref = ref $self;
@@ -141,8 +364,7 @@ sub new {
# avoid numify-calls by not using || on $wanted!
unless (defined $wanted) {
- require Carp;
- Carp::carp("Use of uninitialized value in new");
+ #Carp::carp("Use of uninitialized value in new");
return $self->bzero(@r);
}
@@ -185,1695 +407,1372 @@ sub new {
return $self->binf($sgn);
}
+ # Handle explicit NaNs (not the ones returned due to invalid input).
+
+ if ($wanted =~ /^\s*([+-]?)nan\s*\z/i) {
+ return $downgrade->new($wanted) if $downgrade;
+ $self = $class -> bnan();
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
+
+ # Handle hexadecimal numbers.
+
+ if ($wanted =~ /^\s*[+-]?0[Xx]/) {
+ $self = $class -> from_hex($wanted);
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
+
+ # Handle binary numbers.
+
+ if ($wanted =~ /^\s*[+-]?0[Bb]/) {
+ $self = $class -> from_bin($wanted);
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
+
# Shortcut for simple forms like '12' that have no trailing zeros.
if ($wanted =~ /^([+-]?)0*([1-9][0-9]*[1-9])$/) {
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
+ $self->{_e} = $MBI -> _zero();
+ $self->{_es} = '+';
$self->{sign} = $1 || '+';
- $self->{_m} = $MBI->_new($2);
- return $self->round(@r) if !$downgrade;
+ $self->{_m} = $MBI -> _new($2);
+ if (!$downgrade) {
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
}
- my ($mis,$miv,$mfv,$es,$ev) = Math::BigInt::_split($wanted);
- if (!ref $mis)
- {
- if ($_trap_nan)
- {
- require Carp;
- Carp::croak ("$wanted is not a number initialized to $class");
- }
-
- return $downgrade->bnan() if $downgrade;
-
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- $self->{_m} = $MBI->_zero();
- $self->{sign} = $nan;
- }
- else
- {
- # make integer from mantissa by adjusting exp, then convert to int
- $self->{_e} = $MBI->_new($$ev); # exponent
- $self->{_es} = $$es || '+';
- my $mantissa = "$$miv$$mfv"; # create mant.
- $mantissa =~ s/^0+(\d)/$1/; # strip leading zeros
- $self->{_m} = $MBI->_new($mantissa); # create mant.
-
- # 3.123E0 = 3123E-3, and 3.123E-2 => 3123E-5
- if (CORE::length($$mfv) != 0)
- {
- my $len = $MBI->_new( CORE::length($$mfv));
- ($self->{_e}, $self->{_es}) =
- _e_sub ($self->{_e}, $len, $self->{_es}, '+');
- }
- # we can only have trailing zeros on the mantissa if $$mfv eq ''
- else
- {
- # Use a regexp to count the trailing zeros in $$miv instead of _zeros()
- # because that is faster, especially when _m is not stored in base 10.
- my $zeros = 0; $zeros = CORE::length($1) if $$miv =~ /[1-9](0*)$/;
- if ($zeros != 0)
- {
- my $z = $MBI->_new($zeros);
- # turn '120e2' into '12e3'
- $MBI->_rsft ( $self->{_m}, $z, 10);
- ($self->{_e}, $self->{_es}) =
- _e_add ( $self->{_e}, $z, $self->{_es}, '+');
+ my ($mis, $miv, $mfv, $es, $ev) = Math::BigInt::_split($wanted);
+ if (!ref $mis) {
+ if ($_trap_nan) {
+ Carp::croak("$wanted is not a number initialized to $class");
}
- }
- $self->{sign} = $$mis;
- # for something like 0Ey, set y to 0, and -0 => +0
- # Check $$miv for being '0' and $$mfv eq '', because otherwise _m could not
- # have become 0. That's faster than to call $MBI->_is_zero().
- $self->{sign} = '+', $self->{_e} = $MBI->_zero()
- if $$miv eq '0' and $$mfv eq '';
+ return $downgrade->bnan() if $downgrade;
- return $self->round(@r) if !$downgrade;
+ $self->{_e} = $MBI->_zero();
+ $self->{_es} = '+';
+ $self->{_m} = $MBI->_zero();
+ $self->{sign} = $nan;
+ } else {
+ # make integer from mantissa by adjusting exp, then convert to int
+ $self->{_e} = $MBI->_new($$ev); # exponent
+ $self->{_es} = $$es || '+';
+ my $mantissa = "$$miv$$mfv"; # create mant.
+ $mantissa =~ s/^0+(\d)/$1/; # strip leading zeros
+ $self->{_m} = $MBI->_new($mantissa); # create mant.
+
+ # 3.123E0 = 3123E-3, and 3.123E-2 => 3123E-5
+ if (CORE::length($$mfv) != 0) {
+ my $len = $MBI->_new(CORE::length($$mfv));
+ ($self->{_e}, $self->{_es}) =
+ _e_sub($self->{_e}, $len, $self->{_es}, '+');
+ }
+ # we can only have trailing zeros on the mantissa if $$mfv eq ''
+ else {
+ # Use a regexp to count the trailing zeros in $$miv instead of
+ # _zeros() because that is faster, especially when _m is not stored
+ # in base 10.
+ my $zeros = 0;
+ $zeros = CORE::length($1) if $$miv =~ /[1-9](0*)$/;
+ if ($zeros != 0) {
+ my $z = $MBI->_new($zeros);
+ # turn '120e2' into '12e3'
+ $self->{_m} = $MBI->_rsft($self->{_m}, $z, 10);
+ ($self->{_e}, $self->{_es}) =
+ _e_add($self->{_e}, $z, $self->{_es}, '+');
+ }
+ }
+ $self->{sign} = $$mis;
+
+ # for something like 0Ey, set y to 0, and -0 => +0
+ # Check $$miv for being '0' and $$mfv eq '', because otherwise _m could not
+ # have become 0. That's faster than to call $MBI->_is_zero().
+ $self->{sign} = '+', $self->{_e} = $MBI->_zero()
+ if $$miv eq '0' and $$mfv eq '';
+
+ if (!$downgrade) {
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
}
- # if downgrade, inf, NaN or integers go down
- if ($downgrade && $self->{_es} eq '+')
- {
- if ($MBI->_is_zero( $self->{_e} ))
- {
- return $downgrade->new($$mis . $MBI->_str( $self->{_m} ));
- }
- return $downgrade->new($self->bsstr());
+ # if downgrade, inf, NaN or integers go down
+
+ if ($downgrade && $self->{_es} eq '+') {
+ if ($MBI->_is_zero($self->{_e})) {
+ return $downgrade->new($$mis . $MBI->_str($self->{_m}));
+ }
+ return $downgrade->new($self->bsstr());
}
- $self->bnorm()->round(@r); # first normalize, then round
- }
+ $self->bnorm();
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+}
-sub copy {
+sub from_hex {
my $self = shift;
my $selfref = ref $self;
my $class = $selfref || $self;
- # If called as a class method, the object to copy is the next argument.
+ # Don't modify constant (read-only) objects.
- $self = shift() unless $selfref;
+ return if $selfref && $self->modify('from_hex');
- my $copy = bless {}, $class;
+ my $str = shift;
- $copy->{sign} = $self->{sign};
- $copy->{_es} = $self->{_es};
- $copy->{_m} = $MBI->_copy($self->{_m});
- $copy->{_e} = $MBI->_copy($self->{_e});
- $copy->{_a} = $self->{_a} if exists $self->{_a};
- $copy->{_p} = $self->{_p} if exists $self->{_p};
+ # If called as a class method, initialize a new object.
- return $copy;
-}
+ $self = $class -> bzero() unless $selfref;
-sub _bnan
- {
- # used by parent class bone() to initialize number to NaN
- my $self = shift;
-
- if ($_trap_nan)
- {
- require Carp;
- my $class = ref($self);
- Carp::croak ("Tried to set $self to NaN in $class\::_bnan()");
- }
-
- $IMPORT=1; # call our import only once
- $self->{_m} = $MBI->_zero();
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- }
-
-sub _binf
- {
- # used by parent class bone() to initialize number to +-inf
- my $self = shift;
-
- if ($_trap_inf)
- {
- require Carp;
- my $class = ref($self);
- Carp::croak ("Tried to set $self to +-inf in $class\::_binf()");
- }
-
- $IMPORT=1; # call our import only once
- $self->{_m} = $MBI->_zero();
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- }
-
-sub _bone
- {
- # used by parent class bone() to initialize number to 1
- my $self = shift;
- $IMPORT=1; # call our import only once
- $self->{_m} = $MBI->_one();
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- }
-
-sub _bzero
- {
- # used by parent class bzero() to initialize number to 0
- my $self = shift;
- $IMPORT=1; # call our import only once
- $self->{_m} = $MBI->_zero();
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- }
-
-sub isa
- {
- my ($self,$class) = @_;
- return if $class =~ /^Math::BigInt/; # we aren't one of these
- UNIVERSAL::isa($self,$class);
- }
-
-sub config
- {
- # return (later set?) configuration data as hash ref
- my $class = shift || 'Math::BigFloat';
-
- if (@_ == 1 && ref($_[0]) ne 'HASH')
- {
- my $cfg = $class->SUPER::config();
- return $cfg->{$_[0]};
- }
+ if ($str =~ s/
+ ^
+ \s*
- my $cfg = $class->SUPER::config(@_);
+ # sign
+ ( [+-]? )
- # now we need only to override the ones that are different from our parent
- $cfg->{class} = $class;
- $cfg->{with} = $MBI;
- $cfg;
- }
+ # optional "hex marker"
+ (?: 0? x )?
-##############################################################################
-# string conversion
+ # significand using the hex digits 0..9 and a..f
+ (
+ [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
+ (?:
+ \.
+ (?: [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )* )?
+ )?
+ |
+ \.
+ [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
+ )
-sub bstr
- {
- # (ref to BFLOAT or num_str ) return num_str
- # Convert number from internal format to (non-scientific) string format.
- # internal format is always normalized (no leading zeros, "-0" => "+0")
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ # exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _ \d+ )* )
+ )?
- if ($x->{sign} !~ /^[+-]$/)
+ \s*
+ $
+ //x)
{
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
- }
+ my $s_sign = $1 || '+';
+ my $s_value = $2;
+ my $e_sign = $3 || '+';
+ my $e_value = $4 || '0';
+ $s_value =~ tr/_//d;
+ $e_value =~ tr/_//d;
- my $es = '0'; my $len = 1; my $cad = 0; my $dot = '.';
+ # The significand must be multiplied by 2 raised to this exponent.
- # $x is zero?
- my $not_zero = !($x->{sign} eq '+' && $MBI->_is_zero($x->{_m}));
- if ($not_zero)
- {
- $es = $MBI->_str($x->{_m});
- $len = CORE::length($es);
- my $e = $MBI->_num($x->{_e});
- $e = -$e if $x->{_es} eq '-';
- if ($e < 0)
- {
- $dot = '';
- # if _e is bigger than a scalar, the following will blow your memory
- if ($e <= -$len)
- {
- my $r = abs($e) - $len;
- $es = '0.'. ('0' x $r) . $es; $cad = -($len+$r);
- }
- else
- {
- substr($es,$e,0) = '.'; $cad = $MBI->_num($x->{_e});
- $cad = -$cad if $x->{_es} eq '-';
+ my $two_expon = $class -> new($e_value);
+ $two_expon -> bneg() if $e_sign eq '-';
+
+ # If there is a dot in the significand, remove it and adjust the
+ # exponent according to the number of digits in the fraction part of
+ # the significand. Since the digits in the significand are in base 16,
+ # but the exponent is only in base 2, multiply the exponent adjustment
+ # value by log(16) / log(2) = 4.
+
+ my $idx = index($s_value, '.');
+ if ($idx >= 0) {
+ substr($s_value, $idx, 1) = '';
+ $two_expon -= $class -> new(CORE::length($s_value))
+ -> bsub($idx)
+ -> bmul("4");
}
- }
- elsif ($e > 0)
- {
- # expand with zeros
- $es .= '0' x $e; $len += $e; $cad = 0;
- }
- } # if not zero
-
- $es = '-'.$es if $x->{sign} eq '-';
- # if set accuracy or precision, pad with zeros on the right side
- if ((defined $x->{_a}) && ($not_zero))
- {
- # 123400 => 6, 0.1234 => 4, 0.001234 => 4
- my $zeros = $x->{_a} - $cad; # cad == 0 => 12340
- $zeros = $x->{_a} - $len if $cad != $len;
- $es .= $dot.'0' x $zeros if $zeros > 0;
- }
- elsif ((($x->{_p} || 0) < 0))
- {
- # 123400 => 6, 0.1234 => 4, 0.001234 => 6
- my $zeros = -$x->{_p} + $cad;
- $es .= $dot.'0' x $zeros if $zeros > 0;
- }
- $es;
- }
-sub bsstr
- {
- # (ref to BFLOAT or num_str ) return num_str
- # Convert number from internal format to scientific string format.
- # internal format is always normalized (no leading zeros, "-0E0" => "+0E0")
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ $self -> {sign} = $s_sign;
+ $self -> {_m} = $MBI -> _from_hex('0x' . $s_value);
- if ($x->{sign} !~ /^[+-]$/)
- {
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
- }
- my $sep = 'e'.$x->{_es};
- my $sign = $x->{sign}; $sign = '' if $sign eq '+';
- $sign . $MBI->_str($x->{_m}) . $sep . $MBI->_str($x->{_e});
- }
-
-sub numify
- {
- # Make a Perl scalar number from a Math::BigFloat object.
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- if ($x -> is_nan()) {
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- return $inf - $inf;
- }
-
- if ($x -> is_inf()) {
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- return $x -> is_negative() ? -$inf : $inf;
- }
-
- # Create a string and let Perl's atoi()/atof() handle the rest.
- return 0 + $x -> bsstr();
- }
+ if ($two_expon > 0) {
+ my $factor = $class -> new("2") -> bpow($two_expon);
+ $self -> bmul($factor);
+ } elsif ($two_expon < 0) {
+ my $factor = $class -> new("0.5") -> bpow(-$two_expon);
+ $self -> bmul($factor);
+ }
-##############################################################################
-# public stuff (usually prefixed with "b")
-
-sub bneg
- {
- # (BINT or num_str) return BINT
- # negate number or make a negated number from string
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return $x if $x->modify('bneg');
-
- # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
- $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_m}));
- $x;
- }
-
-# tels 2001-08-04
-# XXX TODO this must be overwritten and return NaN for non-integer values
-# band(), bior(), bxor(), too
-#sub bnot
-# {
-# $class->SUPER::bnot($class,@_);
-# }
-
-sub bcmp
- {
- # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
-
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
+ return $self;
}
- return $upgrade->bcmp($x,$y) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ return $self->bnan();
+}
- # Handle all 'nan' cases.
+sub from_oct {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- return undef if ($x->{sign} eq $nan) || ($y->{sign} eq $nan);
+ # Don't modify constant (read-only) objects.
- # Handle all '+inf' and '-inf' cases.
+ return if $selfref && $self->modify('from_oct');
- return 0 if ($x->{sign} eq '+inf' && $y->{sign} eq '+inf' ||
- $x->{sign} eq '-inf' && $y->{sign} eq '-inf');
- return +1 if $x->{sign} eq '+inf'; # x = +inf and y < +inf
- return -1 if $x->{sign} eq '-inf'; # x = -inf and y > -inf
- return -1 if $y->{sign} eq '+inf'; # x < +inf and y = +inf
- return +1 if $y->{sign} eq '-inf'; # x > -inf and y = -inf
+ my $str = shift;
- # Handle all cases with opposite signs.
+ # If called as a class method, initialize a new object.
- return +1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # also does 0 <=> -y
- return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # also does -x <=> 0
+ $self = $class -> bzero() unless $selfref;
- # Handle all remaining zero cases.
+ if ($str =~ s/
+ ^
+ \s*
- my $xz = $x->is_zero();
- my $yz = $y->is_zero();
- return 0 if $xz && $yz; # 0 <=> 0
- return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y
- return +1 if $yz && $x->{sign} eq '+'; # +x <=> 0
+ # sign
+ ( [+-]? )
- # Both arguments are now finite, non-zero numbers with the same sign.
+ # significand using the octal digits 0..7
+ (
+ [0-7]+ (?: _ [0-7]+ )*
+ (?:
+ \.
+ (?: [0-7]+ (?: _ [0-7]+ )* )?
+ )?
+ |
+ \.
+ [0-7]+ (?: _ [0-7]+ )*
+ )
- my $cmp;
+ # exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _ \d+ )* )
+ )?
- # The next step is to compare the exponents, but since each mantissa is an
- # integer of arbitrary value, the exponents must be normalized by the length
- # of the mantissas before we can compare them.
+ \s*
+ $
+ //x)
+ {
+ my $s_sign = $1 || '+';
+ my $s_value = $2;
+ my $e_sign = $3 || '+';
+ my $e_value = $4 || '0';
+ $s_value =~ tr/_//d;
+ $e_value =~ tr/_//d;
- my $mxl = $MBI->_len($x->{_m});
- my $myl = $MBI->_len($y->{_m});
+ # The significand must be multiplied by 2 raised to this exponent.
- # If the mantissas have the same length, there is no point in normalizing the
- # exponents by the length of the mantissas, so treat that as a special case.
+ my $two_expon = $class -> new($e_value);
+ $two_expon -> bneg() if $e_sign eq '-';
- if ($mxl == $myl) {
+ # If there is a dot in the significand, remove it and adjust the
+ # exponent according to the number of digits in the fraction part of
+ # the significand. Since the digits in the significand are in base 8,
+ # but the exponent is only in base 2, multiply the exponent adjustment
+ # value by log(8) / log(2) = 3.
- # First handle the two cases where the exponents have different signs.
+ my $idx = index($s_value, '.');
+ if ($idx >= 0) {
+ substr($s_value, $idx, 1) = '';
+ $two_expon -= $class -> new(CORE::length($s_value))
+ -> bsub($idx)
+ -> bmul("3");
+ }
- if ($x->{_es} eq '+' && $y->{_es} eq '-') {
- $cmp = +1;
- }
+ $self -> {sign} = $s_sign;
+ $self -> {_m} = $MBI -> _from_oct($s_value);
- elsif ($x->{_es} eq '-' && $y->{_es} eq '+') {
- $cmp = -1;
- }
+ if ($two_expon > 0) {
+ my $factor = $class -> new("2") -> bpow($two_expon);
+ $self -> bmul($factor);
+ } elsif ($two_expon < 0) {
+ my $factor = $class -> new("0.5") -> bpow(-$two_expon);
+ $self -> bmul($factor);
+ }
- # Then handle the case where the exponents have the same sign.
+ return $self;
+ }
- else {
- $cmp = $MBI->_acmp($x->{_e}, $y->{_e});
- $cmp = -$cmp if $x->{_es} eq '-';
- }
+ return $self->bnan();
+}
- # Adjust for the sign, which is the same for x and y, and bail out if
- # we're done.
+sub from_bin {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
- return $cmp if $cmp;
+ # Don't modify constant (read-only) objects.
- }
+ return if $selfref && $self->modify('from_bin');
- # We must normalize each exponent by the length of the corresponding
- # mantissa. Life is a lot easier if we first make both exponents
- # non-negative. We do this by adding the same positive value to both
- # exponent. This is safe, because when comparing the exponents, only the
- # relative difference is important.
+ my $str = shift;
- my $ex;
- my $ey;
+ # If called as a class method, initialize a new object.
- if ($x->{_es} eq '+') {
+ $self = $class -> bzero() unless $selfref;
- # If the exponent of x is >= 0 and the exponent of y is >= 0, there is no
- # need to do anything special.
+ if ($str =~ s/
+ ^
+ \s*
- if ($y->{_es} eq '+') {
- $ex = $MBI->_copy($x->{_e});
- $ey = $MBI->_copy($y->{_e});
- }
+ # sign
+ ( [+-]? )
- # If the exponent of x is >= 0 and the exponent of y is < 0, add the
- # absolute value of the exponent of y to both.
+ # optional "bin marker"
+ (?: 0? b )?
- else {
- $ex = $MBI->_copy($x->{_e});
- $ex = $MBI->_add($ex, $y->{_e}); # ex + |ey|
- $ey = $MBI->_zero(); # -ex + |ey| = 0
- }
+ # significand using the binary digits 0 and 1
+ (
+ [01]+ (?: _ [01]+ )*
+ (?:
+ \.
+ (?: [01]+ (?: _ [01]+ )* )?
+ )?
+ |
+ \.
+ [01]+ (?: _ [01]+ )*
+ )
- } else {
+ # exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _ \d+ )* )
+ )?
- # If the exponent of x is < 0 and the exponent of y is >= 0, add the
- # absolute value of the exponent of x to both.
+ \s*
+ $
+ //x)
+ {
+ my $s_sign = $1 || '+';
+ my $s_value = $2;
+ my $e_sign = $3 || '+';
+ my $e_value = $4 || '0';
+ $s_value =~ tr/_//d;
+ $e_value =~ tr/_//d;
- if ($y->{_es} eq '+') {
- $ex = $MBI->_zero(); # -ex + |ex| = 0
- $ey = $MBI->_copy($y->{_e});
- $ey = $MBI->_add($ey, $x->{_e}); # ey + |ex|
- }
+ # The significand must be multiplied by 2 raised to this exponent.
- # If the exponent of x is < 0 and the exponent of y is < 0, add the
- # absolute values of both exponents to both exponents.
+ my $two_expon = $class -> new($e_value);
+ $two_expon -> bneg() if $e_sign eq '-';
- else {
- $ex = $MBI->_copy($y->{_e}); # -ex + |ey| + |ex| = |ey|
- $ey = $MBI->_copy($x->{_e}); # -ey + |ex| + |ey| = |ex|
- }
+ # If there is a dot in the significand, remove it and adjust the
+ # exponent according to the number of digits in the fraction part of
+ # the significand.
- }
+ my $idx = index($s_value, '.');
+ if ($idx >= 0) {
+ substr($s_value, $idx, 1) = '';
+ $two_expon -= $class -> new(CORE::length($s_value))
+ -> bsub($idx);
+ }
- # Now we can normalize the exponents by adding lengths of the mantissas.
+ $self -> {sign} = $s_sign;
+ $self -> {_m} = $MBI -> _from_bin('0b' . $s_value);
- $MBI->_add($ex, $MBI->_new($mxl));
- $MBI->_add($ey, $MBI->_new($myl));
+ if ($two_expon > 0) {
+ my $factor = $class -> new("2") -> bpow($two_expon);
+ $self -> bmul($factor);
+ } elsif ($two_expon < 0) {
+ my $factor = $class -> new("0.5") -> bpow(-$two_expon);
+ $self -> bmul($factor);
+ }
- # We're done if the exponents are different.
+ return $self;
+ }
+
+ return $self->bnan();
+}
- $cmp = $MBI->_acmp($ex, $ey);
- $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
- return $cmp if $cmp;
+sub bzero {
+ # create/assign '+0'
- # Compare the mantissas, but first normalize them by padding the shorter
- # mantissa with zeros (shift left) until it has the same length as the longer
- # mantissa.
+ if (@_ == 0) {
+ #Carp::carp("Using bone() as a function is deprecated;",
+ # " use bone() as a method instead");
+ unshift @_, __PACKAGE__;
+ }
- my $mx = $x->{_m};
- my $my = $y->{_m};
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- if ($mxl > $myl) {
- $my = $MBI->_lsft($MBI->_copy($my), $MBI->_new($mxl - $myl), 10);
- } elsif ($mxl < $myl) {
- $mx = $MBI->_lsft($MBI->_copy($mx), $MBI->_new($myl - $mxl), 10);
- }
+ $self->import() if $IMPORT == 0; # make require work
+ return if $selfref && $self->modify('bzero');
- $cmp = $MBI->_acmp($mx, $my);
- $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
- return $cmp;
+ $self = bless {}, $class unless $selfref;
- }
+ $self -> {sign} = '+';
+ $self -> {_m} = $MBI -> _zero();
+ $self -> {_es} = '+';
+ $self -> {_e} = $MBI -> _zero();
-sub bacmp
- {
- # Compares 2 values, ignoring their signs.
- # Returns one of undef, <0, =0, >0. (suitable for sort)
-
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
+ if (@_ > 0) {
+ if (@_ > 3) {
+ # call like: $x->bzero($a, $p, $r, $y);
+ ($self, $self->{_a}, $self->{_p}) = $self->_find_round_parameters(@_);
+ } else {
+ # call like: $x->bzero($a, $p, $r);
+ $self->{_a} = $_[0]
+ if !defined $self->{_a} || (defined $_[0] && $_[0] > $self->{_a});
+ $self->{_p} = $_[1]
+ if !defined $self->{_p} || (defined $_[1] && $_[1] > $self->{_p});
+ }
}
- return $upgrade->bacmp($x,$y) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ return $self;
+}
- # handle +-inf and NaN's
- if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/)
- {
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if ($x->is_inf() && $y->is_inf());
- return 1 if ($x->is_inf() && !$y->is_inf());
- return -1;
- }
-
- # shortcut
- my $xz = $x->is_zero();
- my $yz = $y->is_zero();
- return 0 if $xz && $yz; # 0 <=> 0
- return -1 if $xz && !$yz; # 0 <=> +y
- return 1 if $yz && !$xz; # +x <=> 0
-
- # adjust so that exponents are equal
- my $lxm = $MBI->_len($x->{_m});
- my $lym = $MBI->_len($y->{_m});
- my ($xes,$yes) = (1,1);
- $xes = -1 if $x->{_es} ne '+';
- $yes = -1 if $y->{_es} ne '+';
- # the numify somewhat limits our length, but makes it much faster
- my $lx = $lxm + $xes * $MBI->_num($x->{_e});
- my $ly = $lym + $yes * $MBI->_num($y->{_e});
- my $l = $lx - $ly;
- return $l <=> 0 if $l != 0;
-
- # lengths (corrected by exponent) are equal
- # so make mantissa equal-length by padding with zero (shift left)
- my $diff = $lxm - $lym;
- my $xm = $x->{_m}; # not yet copy it
- my $ym = $y->{_m};
- if ($diff > 0)
- {
- $ym = $MBI->_copy($y->{_m});
- $ym = $MBI->_lsft($ym, $MBI->_new($diff), 10);
+sub bone {
+ # Create or assign '+1' (or -1 if given sign '-').
+
+ if (@_ == 0 || (defined($_[0]) && ($_[0] eq '+' || $_[0] eq '-'))) {
+ #Carp::carp("Using bone() as a function is deprecated;",
+ # " use bone() as a method instead");
+ unshift @_, __PACKAGE__;
}
- elsif ($diff < 0)
- {
- $xm = $MBI->_copy($x->{_m});
- $xm = $MBI->_lsft($xm, $MBI->_new(-$diff), 10);
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self->import() if $IMPORT == 0; # make require work
+ return if $selfref && $self->modify('bone');
+
+ my $sign = shift;
+ $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+
+ $self = bless {}, $class unless $selfref;
+
+ $self -> {sign} = $sign;
+ $self -> {_m} = $MBI -> _one();
+ $self -> {_es} = '+';
+ $self -> {_e} = $MBI -> _zero();
+
+ if (@_ > 0) {
+ if (@_ > 3) {
+ # call like: $x->bone($sign, $a, $p, $r, $y, ...);
+ ($self, $self->{_a}, $self->{_p}) = $self->_find_round_parameters(@_);
+ } else {
+ # call like: $x->bone($sign, $a, $p, $r);
+ $self->{_a} = $_[0]
+ if ((!defined $self->{_a}) || (defined $_[0] && $_[0] > $self->{_a}));
+ $self->{_p} = $_[1]
+ if ((!defined $self->{_p}) || (defined $_[1] && $_[1] > $self->{_p}));
+ }
}
- $MBI->_acmp($xm,$ym);
- }
-sub badd
- {
- # add second arg (BFLOAT or string) to first (BFLOAT) (modifies first)
- # return result as BFLOAT
+ return $self;
+}
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
+sub binf {
+ # create/assign a '+inf' or '-inf'
+
+ if (@_ == 0 || (defined($_[0]) && !ref($_[0]) &&
+ $_[0] =~ /^\s*[+-](inf(inity)?)?\s*$/))
{
- ($self,$x,$y,@r) = objectify(2,@_);
+ #Carp::carp("Using binf() as a function is deprecated;",
+ # " use binf() as a method instead");
+ unshift @_, __PACKAGE__;
}
-
- return $x if $x->modify('badd');
- # inf and NaN handling
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
{
- # NaN first
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
- {
- # +inf++inf or -inf+-inf => same, rest is NaN
- return $x if $x->{sign} eq $y->{sign};
- return $x->bnan();
- }
- # +-inf + something => +inf; something +-inf => +-inf
- $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
- return $x;
+ no strict 'refs';
+ if (${"${class}::_trap_inf"}) {
+ Carp::croak("Tried to create +-inf in $class->binf()");
+ }
}
- return $upgrade->badd($x,$y,@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ $self->import() if $IMPORT == 0; # make require work
+ return if $selfref && $self->modify('binf');
- $r[3] = $y; # no push!
+ my $sign = shift;
+ $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
- # speed: no add for 0+y or x+0
- return $x->bround(@r) if $y->is_zero(); # x+0
- if ($x->is_zero()) # 0+y
- {
- # make copy, clobbering up x (modify in place!)
- $x->{_e} = $MBI->_copy($y->{_e});
- $x->{_es} = $y->{_es};
- $x->{_m} = $MBI->_copy($y->{_m});
- $x->{sign} = $y->{sign} || $nan;
- return $x->round(@r);
- }
-
- # take lower of the two e's and adapt m1 to it to match m2
- my $e = $y->{_e};
- $e = $MBI->_zero() if !defined $e; # if no BFLOAT?
- $e = $MBI->_copy($e); # make copy (didn't do it yet)
+ $self = bless {}, $class unless $selfref;
- my $es;
+ $self -> {sign} = $sign . 'inf';
+ $self -> {_m} = $MBI -> _zero();
+ $self -> {_es} = '+';
+ $self -> {_e} = $MBI -> _zero();
- ($e,$es) = _e_sub($e, $x->{_e}, $y->{_es} || '+', $x->{_es});
+ return $self;
+}
- my $add = $MBI->_copy($y->{_m});
+sub bnan {
+ # create/assign a 'NaN'
- if ($es eq '-') # < 0
- {
- $MBI->_lsft( $x->{_m}, $e, 10);
- ($x->{_e},$x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
+ if (@_ == 0) {
+ #Carp::carp("Using bnan() as a function is deprecated;",
+ # " use bnan() as a method instead");
+ unshift @_, __PACKAGE__;
}
- elsif (!$MBI->_is_zero($e)) # > 0
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
{
- $MBI->_lsft($add, $e, 10);
+ no strict 'refs';
+ if (${"${class}::_trap_nan"}) {
+ Carp::croak("Tried to create NaN in $class->bnan()");
+ }
}
- # else: both e are the same, so just leave them
- if ($x->{sign} eq $y->{sign})
+ $self->import() if $IMPORT == 0; # make require work
+ return if $selfref && $self->modify('bnan');
+
+ $self = bless {}, $class unless $selfref;
+
+ $self -> {sign} = $nan;
+ $self -> {_m} = $MBI -> _zero();
+ $self -> {_es} = '+';
+ $self -> {_e} = $MBI -> _zero();
+
+ return $self;
+}
+
+sub bpi {
+
+ # Called as Argument list
+ # --------- -------------
+ # Math::BigFloat->bpi() ("Math::BigFloat")
+ # Math::BigFloat->bpi(10) ("Math::BigFloat", 10)
+ # $x->bpi() ($x)
+ # $x->bpi(10) ($x, 10)
+ # Math::BigFloat::bpi() ()
+ # Math::BigFloat::bpi(10) (10)
+ #
+ # In ambiguous cases, we favour the OO-style, so the following case
+ #
+ # $n = Math::BigFloat->new("10");
+ # $x = Math::BigFloat->bpi($n);
+ #
+ # which gives an argument list with the single element $n, is resolved as
+ #
+ # $n->bpi();
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ my @r; # rounding paramters
+
+ # If bpi() is called as a function ...
+ #
+ # This cludge is necessary because we still support bpi() as a function. If
+ # bpi() is called with either no argument or one argument, and that one
+ # argument is either undefined or a scalar that looks like a number, then
+ # we assume bpi() is called as a function.
+
+ if (@_ == 0 &&
+ (defined($self) && !ref($self) && $self =~ /^\s*[+-]?\d/i)
+ ||
+ !defined($self))
{
- # add
- $x->{_m} = $MBI->_add($x->{_m}, $add);
+ $r[0] = $self;
+ $class = __PACKAGE__;
+ $self = $class -> bzero(@r); # initialize
}
- else
- {
- ($x->{_m}, $x->{sign}) =
- _e_add($x->{_m}, $add, $x->{sign}, $y->{sign});
+
+ # ... or if bpi() is called as a method ...
+
+ else {
+ @r = @_;
+ if ($selfref) { # bpi() called as instance method
+ return $self if $self -> modify('bpi');
+ } else { # bpi() called as class method
+ $self = $class -> bzero(@r); # initialize
+ }
}
- # delete trailing zeros, then round
- $x->bnorm()->round(@r);
- }
+ ($self, @r) = $self -> _find_round_parameters(@r);
-# sub bsub is inherited from Math::BigInt!
+ # The accuracy, i.e., the number of digits. Pi has one digit before the
+ # dot, so a precision of 4 digits is equivalent to an accuracy of 5 digits.
-sub binc
- {
- # increment arg by one
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ my $n = defined $r[0] ? $r[0]
+ : defined $r[1] ? 1 - $r[1]
+ : $self -> div_scale();
- return $x if $x->modify('binc');
+ my $rmode = defined $r[2] ? $r[2] : $self -> round_mode();
- if ($x->{_es} eq '-')
- {
- return $x->badd($self->bone(),@r); # digits after dot
- }
+ my $pi;
- if (!$MBI->_is_zero($x->{_e})) # _e == 0 for NaN, inf, -inf
- {
- # 1e2 => 100, so after the shift below _m has a '0' as last digit
- $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e},10); # 1e2 => 100
- $x->{_e} = $MBI->_zero(); # normalize
- $x->{_es} = '+';
- # we know that the last digit of $x will be '1' or '9', depending on the
- # sign
+ if ($n <= 1000) {
+
+ # 75 x 14 = 1050 digits
+
+ my $all_digits = <<EOF;
+314159265358979323846264338327950288419716939937510582097494459230781640628
+620899862803482534211706798214808651328230664709384460955058223172535940812
+848111745028410270193852110555964462294895493038196442881097566593344612847
+564823378678316527120190914564856692346034861045432664821339360726024914127
+372458700660631558817488152092096282925409171536436789259036001133053054882
+046652138414695194151160943305727036575959195309218611738193261179310511854
+807446237996274956735188575272489122793818301194912983367336244065664308602
+139494639522473719070217986094370277053921717629317675238467481846766940513
+200056812714526356082778577134275778960917363717872146844090122495343014654
+958537105079227968925892354201995611212902196086403441815981362977477130996
+051870721134999999837297804995105973173281609631859502445945534690830264252
+230825334468503526193118817101000313783875288658753320838142061717766914730
+359825349042875546873115956286388235378759375195778185778053217122680661300
+192787661119590921642019893809525720106548586327886593615338182796823030195
+EOF
+
+ # Should we round up?
+
+ my $round_up;
+
+ # From the string above, we need to extract the number of digits we
+ # want plus extra characters for the newlines.
+
+ my $nchrs = $n + int($n / 75);
+
+ # Extract the digits we want.
+
+ my $digits = substr($all_digits, 0, $nchrs);
+
+ # Find out whether we should round up or down. Since pi is a
+ # transcendental number, we only have to look at one digit after the
+ # last digit we want.
+
+ if ($rmode eq '+inf') {
+ $round_up = 1;
+ } elsif ($rmode eq 'trunc' || $rmode eq 'zero' || $rmode eq '-inf') {
+ $round_up = 0;
+ } else {
+ my $next_digit = substr($all_digits, $nchrs, 1);
+ $round_up = $next_digit lt '5' ? 0 : 1;
+ }
+
+ # Remove the newlines.
+
+ $digits =~ tr/0-9//cd;
+
+ # Now do the rounding. We could easily make the regex substitution
+ # handle all cases, but we avoid using the regex engine when it is
+ # simple to avoid it.
+
+ if ($round_up) {
+ my $last_digit = substr($digits, -1, 1);
+ if ($last_digit lt '9') {
+ substr($digits, -1, 1) = ++$last_digit;
+ } else {
+ $digits =~ s/([0-8])(9+)$/ ($1 + 1) . ("0" x CORE::length($2)) /e;
+ }
+ }
+
+ # Append the exponent and convert to an object.
+
+ $pi = Math::BigFloat -> new($digits . 'e-' . ($n - 1));
+
+ } else {
+
+ # For large accuracy, the arctan formulas become very inefficient with
+ # Math::BigFloat, so use Brent-Salamin (aka AGM or Gauss-Legendre).
+
+ # Use a few more digits in the intermediate computations.
+ my $nextra = 8;
+
+ $HALF = $class -> new($HALF) unless ref($HALF);
+ my ($an, $bn, $tn, $pn) = ($class -> bone, $HALF -> copy() -> bsqrt($n),
+ $HALF -> copy() -> bmul($HALF), $class -> bone);
+ while ($pn < $n) {
+ my $prev_an = $an -> copy();
+ $an -> badd($bn) -> bmul($HALF, $n);
+ $bn -> bmul($prev_an) -> bsqrt($n);
+ $prev_an -> bsub($an);
+ $tn -> bsub($pn * $prev_an * $prev_an);
+ $pn -> badd($pn);
+ }
+ $an -> badd($bn);
+ $an -> bmul($an, $n) -> bdiv(4 * $tn, $n);
+
+ $an -> round(@r);
+ $pi = $an;
}
- # now $x->{_e} == 0
- if ($x->{sign} eq '+')
- {
- $MBI->_inc($x->{_m});
- return $x->bnorm()->bround(@r);
+
+ if (defined $r[0]) {
+ $pi -> accuracy($r[0]);
+ } elsif (defined $r[1]) {
+ $pi -> precision($r[1]);
}
- elsif ($x->{sign} eq '-')
- {
- $MBI->_dec($x->{_m});
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # -1 +1 => -0 => +0
- return $x->bnorm()->bround(@r);
+
+ for my $key (qw/ sign _m _es _e _a _p /) {
+ $self -> {$key} = $pi -> {$key};
}
- # inf, nan handling etc
- $x->badd($self->bone(),@r); # badd() does round
- }
-sub bdec
- {
- # decrement arg by one
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ return $self;
+}
- return $x if $x->modify('bdec');
+sub copy {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- if ($x->{_es} eq '-')
- {
- return $x->badd($self->bone('-'),@r); # digits after dot
- }
+ # If called as a class method, the object to copy is the next argument.
- if (!$MBI->_is_zero($x->{_e}))
- {
- $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e},10); # 1e2 => 100
- $x->{_e} = $MBI->_zero(); # normalize
- $x->{_es} = '+';
+ $self = shift() unless $selfref;
+
+ my $copy = bless {}, $class;
+
+ $copy->{sign} = $self->{sign};
+ $copy->{_es} = $self->{_es};
+ $copy->{_m} = $MBI->_copy($self->{_m});
+ $copy->{_e} = $MBI->_copy($self->{_e});
+ $copy->{_a} = $self->{_a} if exists $self->{_a};
+ $copy->{_p} = $self->{_p} if exists $self->{_p};
+
+ return $copy;
+}
+
+sub as_number {
+ # return copy as a bigint representation of this Math::BigFloat number
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x if $x->modify('as_number');
+
+ if (!$x->isa('Math::BigFloat')) {
+ # if the object can as_number(), use it
+ return $x->as_number() if $x->can('as_number');
+ # otherwise, get us a float and then a number
+ $x = $x->can('as_float') ? $x->as_float() : $class->new(0+"$x");
}
- # now $x->{_e} == 0
- my $zero = $x->is_zero();
- # <= 0
- if (($x->{sign} eq '-') || $zero)
- {
- $MBI->_inc($x->{_m});
- $x->{sign} = '-' if $zero; # 0 => 1 => -1
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # -1 +1 => -0 => +0
- return $x->bnorm()->round(@r);
+
+ return Math::BigInt->binf($x->sign()) if $x->is_inf();
+ return Math::BigInt->bnan() if $x->is_nan();
+
+ my $z = $MBI->_copy($x->{_m});
+ if ($x->{_es} eq '-') { # < 0
+ $z = $MBI->_rsft($z, $x->{_e}, 10);
+ } elsif (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
}
- # > 0
- elsif ($x->{sign} eq '+')
- {
- $MBI->_dec($x->{_m});
- return $x->bnorm()->round(@r);
+ $z = Math::BigInt->new($x->{sign} . $MBI->_str($z));
+ $z;
+}
+
+###############################################################################
+# Boolean methods
+###############################################################################
+
+sub is_zero {
+ # return true if arg (BFLOAT or num_str) is zero
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ ($x->{sign} eq '+' && $MBI->_is_zero($x->{_m})) ? 1 : 0;
+}
+
+sub is_one {
+ # return true if arg (BFLOAT or num_str) is +1 or -1 if signis given
+ my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $sign = '+' if !defined $sign || $sign ne '-';
+
+ ($x->{sign} eq $sign &&
+ $MBI->_is_zero($x->{_e}) &&
+ $MBI->_is_one($x->{_m})) ? 1 : 0;
+}
+
+sub is_odd {
+ # return true if arg (BFLOAT or num_str) is odd or false if even
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
+ ($MBI->_is_zero($x->{_e})) &&
+ ($MBI->_is_odd($x->{_m}))) ? 1 : 0;
+}
+
+sub is_even {
+ # return true if arg (BINT or num_str) is even or false if odd
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
+ ($x->{_es} eq '+') && # 123.45 isn't
+ ($MBI->_is_even($x->{_m}))) ? 1 : 0; # but 1200 is
+}
+
+sub is_int {
+ # return true if arg (BFLOAT or num_str) is an integer
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ (($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
+ ($x->{_es} eq '+')) ? 1 : 0; # 1e-1 => no integer
+}
+
+###############################################################################
+# Comparison methods
+###############################################################################
+
+sub bcmp {
+ # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
+
+ # set up parameters
+ my ($class, $x, $y) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y) = objectify(2, @_);
}
- # inf, nan handling etc
- $x->badd($self->bone('-'),@r); # does round
- }
-sub DEBUG () { 0; }
+ return $upgrade->bcmp($x, $y) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
-sub blog
- {
- my ($self,$x,$base,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ # Handle all 'nan' cases.
- # If called as $x -> blog() or $x -> blog(undef), don't objectify the
- # undefined base, since undef signals that the base is Euler's number.
- #unless (ref($x) && !defined($base)) {
- # # objectify is costly, so avoid it
- # if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- # ($self,$x,$base,$a,$p,$r) = objectify(2,@_);
- # }
- #}
+ return undef if ($x->{sign} eq $nan) || ($y->{sign} eq $nan);
- return $x if $x->modify('blog');
+ # Handle all '+inf' and '-inf' cases.
- return $x -> bnan() if $x -> is_nan();
+ return 0 if ($x->{sign} eq '+inf' && $y->{sign} eq '+inf' ||
+ $x->{sign} eq '-inf' && $y->{sign} eq '-inf');
+ return +1 if $x->{sign} eq '+inf'; # x = +inf and y < +inf
+ return -1 if $x->{sign} eq '-inf'; # x = -inf and y > -inf
+ return -1 if $y->{sign} eq '+inf'; # x < +inf and y = +inf
+ return +1 if $y->{sign} eq '-inf'; # x > -inf and y = -inf
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r);
+ # Handle all cases with opposite signs.
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # P = undef
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- my $done = 0;
- if (defined $base) {
- $base = $self -> new($base) unless ref $base;
- if ($base -> is_nan() || $base -> is_one()) {
- $x -> bnan();
- $done = 1;
- } elsif ($base -> is_inf() || $base -> is_zero()) {
- if ($x -> is_inf() || $x -> is_zero()) {
- $x -> bnan();
- } else {
- $x -> bzero(@params);
- }
- $done = 1;
- } elsif ($base -> is_negative()) { # -inf < base < 0
- if ($x -> is_one()) { # x = 1
- $x -> bzero(@params);
- } elsif ($x == $base) {
- $x -> bone('+', @params); # x = base
- } else {
- $x -> bnan(); # otherwise
- }
- $done = 1;
- } elsif ($x == $base) {
- $x -> bone('+', @params); # 0 < base && 0 < x < inf
- $done = 1;
- }
- }
-
- # We now know that the base is either undefined or positive and finite.
-
- unless ($done) {
- if ($x -> is_inf()) { # x = +/-inf
- my $sign = defined $base && $base < 1 ? '-' : '+';
- $x -> binf($sign);
- $done = 1;
- } elsif ($x -> is_neg()) { # -inf < x < 0
- $x -> bnan();
- $done = 1;
- } elsif ($x -> is_one()) { # x = 1
- $x -> bzero(@params);
- $done = 1;
- } elsif ($x -> is_zero()) { # x = 0
- my $sign = defined $base && $base < 1 ? '+' : '-';
- $x -> binf($sign);
- $done = 1;
- }
- }
-
- if ($done) {
- if ($fallback) {
- # clear a/p after round, since user did not request it
- delete $x->{_a};
- delete $x->{_p};
+ return +1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # also does 0 <=> -y
+ return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # also does -x <=> 0
+
+ # Handle all remaining zero cases.
+
+ my $xz = $x->is_zero();
+ my $yz = $y->is_zero();
+ return 0 if $xz && $yz; # 0 <=> 0
+ return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y
+ return +1 if $yz && $x->{sign} eq '+'; # +x <=> 0
+
+ # Both arguments are now finite, non-zero numbers with the same sign.
+
+ my $cmp;
+
+ # The next step is to compare the exponents, but since each mantissa is an
+ # integer of arbitrary value, the exponents must be normalized by the length
+ # of the mantissas before we can compare them.
+
+ my $mxl = $MBI->_len($x->{_m});
+ my $myl = $MBI->_len($y->{_m});
+
+ # If the mantissas have the same length, there is no point in normalizing the
+ # exponents by the length of the mantissas, so treat that as a special case.
+
+ if ($mxl == $myl) {
+
+ # First handle the two cases where the exponents have different signs.
+
+ if ($x->{_es} eq '+' && $y->{_es} eq '-') {
+ $cmp = +1;
+ } elsif ($x->{_es} eq '-' && $y->{_es} eq '+') {
+ $cmp = -1;
}
- return $x;
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
- local $Math::BigFloat::downgrade = undef;
-
- # upgrade $x if $x is not a BigFloat (handle BigInt input)
- # XXX TODO: rebless!
- if (!$x->isa('Math::BigFloat'))
- {
- $x = Math::BigFloat->new($x);
- $self = ref($x);
- }
-
- $done = 0;
- # If the base is defined and an integer, try to calculate integer result
- # first. This is very fast, and in case the real result was found, we can
- # stop right here.
- if (defined $base && $base->is_int() && $x->is_int())
- {
- my $i = $MBI->_copy( $x->{_m} );
- $MBI->_lsft( $i, $x->{_e}, 10 ) unless $MBI->_is_zero($x->{_e});
- my $int = Math::BigInt->bzero();
- $int->{value} = $i;
- $int->blog($base->as_number());
- # if ($exact)
- if ($base->as_number()->bpow($int) == $x)
- {
- # found result, return it
- $x->{_m} = $int->{value};
- $x->{_e} = $MBI->_zero();
- $x->{_es} = '+';
- $x->bnorm();
- $done = 1;
- }
- }
-
- if ($done == 0)
- {
- # base is undef, so base should be e (Euler's number), so first calculate the
- # log to base e (using reduction by 10 (and probably 2)):
- $self->_log_10($x,$scale);
-
- # and if a different base was requested, convert it
- if (defined $base)
- {
- $base = Math::BigFloat->new($base) unless $base->isa('Math::BigFloat');
- # not ln, but some other base (don't modify $base)
- $x->bdiv( $base->copy()->blog(undef,$scale), $scale );
- }
- }
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
+ # Then handle the case where the exponents have the same sign.
+
+ else {
+ $cmp = $MBI->_acmp($x->{_e}, $y->{_e});
+ $cmp = -$cmp if $x->{_es} eq '-';
+ }
+
+ # Adjust for the sign, which is the same for x and y, and bail out if
+ # we're done.
+
+ $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
+ return $cmp if $cmp;
+
}
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+
+ # We must normalize each exponent by the length of the corresponding
+ # mantissa. Life is a lot easier if we first make both exponents
+ # non-negative. We do this by adding the same positive value to both
+ # exponent. This is safe, because when comparing the exponents, only the
+ # relative difference is important.
+
+ my $ex;
+ my $ey;
+
+ if ($x->{_es} eq '+') {
+
+ # If the exponent of x is >= 0 and the exponent of y is >= 0, there is no
+ # need to do anything special.
+
+ if ($y->{_es} eq '+') {
+ $ex = $MBI->_copy($x->{_e});
+ $ey = $MBI->_copy($y->{_e});
+ }
+
+ # If the exponent of x is >= 0 and the exponent of y is < 0, add the
+ # absolute value of the exponent of y to both.
+
+ else {
+ $ex = $MBI->_copy($x->{_e});
+ $ex = $MBI->_add($ex, $y->{_e}); # ex + |ey|
+ $ey = $MBI->_zero(); # -ex + |ey| = 0
+ }
+
+ } else {
+
+ # If the exponent of x is < 0 and the exponent of y is >= 0, add the
+ # absolute value of the exponent of x to both.
+
+ if ($y->{_es} eq '+') {
+ $ex = $MBI->_zero(); # -ex + |ex| = 0
+ $ey = $MBI->_copy($y->{_e});
+ $ey = $MBI->_add($ey, $x->{_e}); # ey + |ex|
+ }
+
+ # If the exponent of x is < 0 and the exponent of y is < 0, add the
+ # absolute values of both exponents to both exponents.
+
+ else {
+ $ex = $MBI->_copy($y->{_e}); # -ex + |ey| + |ex| = |ey|
+ $ey = $MBI->_copy($x->{_e}); # -ey + |ex| + |ey| = |ex|
+ }
+
}
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
+ # Now we can normalize the exponents by adding lengths of the mantissas.
-sub _len_to_steps
- {
- # Given D (digits in decimal), compute N so that N! (N factorial) is
- # at least D digits long. D should be at least 50.
- my $d = shift;
+ $ex = $MBI->_add($ex, $MBI->_new($mxl));
+ $ey = $MBI->_add($ey, $MBI->_new($myl));
- # two constants for the Ramanujan estimate of ln(N!)
- my $lg2 = log(2 * 3.14159265) / 2;
- my $lg10 = log(10);
+ # We're done if the exponents are different.
- # D = 50 => N => 42, so L = 40 and R = 50
- my $l = 40; my $r = $d;
+ $cmp = $MBI->_acmp($ex, $ey);
+ $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
+ return $cmp if $cmp;
- # Otherwise this does not work under -Mbignum and we do not yet have "no bignum;" :(
- $l = $l->numify if ref($l);
- $r = $r->numify if ref($r);
- $lg2 = $lg2->numify if ref($lg2);
- $lg10 = $lg10->numify if ref($lg10);
+ # Compare the mantissas, but first normalize them by padding the shorter
+ # mantissa with zeros (shift left) until it has the same length as the longer
+ # mantissa.
- # binary search for the right value (could this be written as the reverse of lg(n!)?)
- while ($r - $l > 1)
- {
- my $n = int(($r - $l) / 2) + $l;
- my $ramanujan =
- int(($n * log($n) - $n + log( $n * (1 + 4*$n*(1+2*$n)) ) / 6 + $lg2) / $lg10);
- $ramanujan > $d ? $r = $n : $l = $n;
- }
- $l;
- }
-
-sub bnok
- {
- # Calculate n over k (binomial coefficient or "choose" function) as integer.
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ my $mx = $x->{_m};
+ my $my = $y->{_m};
+
+ if ($mxl > $myl) {
+ $my = $MBI->_lsft($MBI->_copy($my), $MBI->_new($mxl - $myl), 10);
+ } elsif ($mxl < $myl) {
+ $mx = $MBI->_lsft($MBI->_copy($mx), $MBI->_new($myl - $mxl), 10);
}
- return $x if $x->modify('bnok');
+ $cmp = $MBI->_acmp($mx, $my);
+ $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
+ return $cmp;
+
+}
- return $x->bnan() if $x->is_nan() || $y->is_nan();
- return $x->binf() if $x->is_inf();
+sub bacmp {
+ # Compares 2 values, ignoring their signs.
+ # Returns one of undef, <0, =0, >0. (suitable for sort)
- my $u = $x->as_int();
- $u->bnok($y->as_int());
+ # set up parameters
+ my ($class, $x, $y) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y) = objectify(2, @_);
+ }
+
+ return $upgrade->bacmp($x, $y) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
+
+ # handle +-inf and NaN's
+ if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
+ return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if ($x->is_inf() && $y->is_inf());
+ return 1 if ($x->is_inf() && !$y->is_inf());
+ return -1;
+ }
+
+ # shortcut
+ my $xz = $x->is_zero();
+ my $yz = $y->is_zero();
+ return 0 if $xz && $yz; # 0 <=> 0
+ return -1 if $xz && !$yz; # 0 <=> +y
+ return 1 if $yz && !$xz; # +x <=> 0
+
+ # adjust so that exponents are equal
+ my $lxm = $MBI->_len($x->{_m});
+ my $lym = $MBI->_len($y->{_m});
+ my ($xes, $yes) = (1, 1);
+ $xes = -1 if $x->{_es} ne '+';
+ $yes = -1 if $y->{_es} ne '+';
+ # the numify somewhat limits our length, but makes it much faster
+ my $lx = $lxm + $xes * $MBI->_num($x->{_e});
+ my $ly = $lym + $yes * $MBI->_num($y->{_e});
+ my $l = $lx - $ly;
+ return $l <=> 0 if $l != 0;
+
+ # lengths (corrected by exponent) are equal
+ # so make mantissa equal-length by padding with zero (shift left)
+ my $diff = $lxm - $lym;
+ my $xm = $x->{_m}; # not yet copy it
+ my $ym = $y->{_m};
+ if ($diff > 0) {
+ $ym = $MBI->_copy($y->{_m});
+ $ym = $MBI->_lsft($ym, $MBI->_new($diff), 10);
+ } elsif ($diff < 0) {
+ $xm = $MBI->_copy($x->{_m});
+ $xm = $MBI->_lsft($xm, $MBI->_new(-$diff), 10);
+ }
+ $MBI->_acmp($xm, $ym);
+}
- $x->{_m} = $u->{value};
- $x->{_e} = $MBI->_zero();
- $x->{_es} = '+';
- $x->{sign} = '+';
- $x->bnorm(@r);
- }
+###############################################################################
+# Arithmetic methods
+###############################################################################
-sub bexp
- {
- # Calculate e ** X (Euler's number to the power of X)
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+sub bneg {
+ # (BINT or num_str) return BINT
+ # negate number or make a negated number from string
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $x if $x->modify('bexp');
+ return $x if $x->modify('bneg');
- return $x->binf() if $x->{sign} eq '+inf';
- return $x->bzero() if $x->{sign} eq '-inf';
+ # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
+ $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_m}));
+ $x;
+}
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r);
+sub bnorm {
+ # adjust m and e so that m is smallest possible
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- # also takes care of the "error in _find_round_parameters?" case
- return $x if $x->{sign} eq 'NaN';
+ return $x if $x->{sign} !~ /^[+-]$/; # inf, nan etc
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # P = undef
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it's not enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ my $zeros = $MBI->_zeros($x->{_m}); # correct for trailing zeros
+ if ($zeros != 0) {
+ my $z = $MBI->_new($zeros);
+ $x->{_m} = $MBI->_rsft($x->{_m}, $z, 10);
+ if ($x->{_es} eq '-') {
+ if ($MBI->_acmp($x->{_e}, $z) >= 0) {
+ $x->{_e} = $MBI->_sub($x->{_e}, $z);
+ $x->{_es} = '+' if $MBI->_is_zero($x->{_e});
+ } else {
+ $x->{_e} = $MBI->_sub($MBI->_copy($z), $x->{_e});
+ $x->{_es} = '+';
+ }
+ } else {
+ $x->{_e} = $MBI->_add($x->{_e}, $z);
+ }
+ } else {
+ # $x can only be 0Ey if there are no trailing zeros ('0' has 0 trailing
+ # zeros). So, for something like 0Ey, set y to 1, and -0 => +0
+ $x->{sign} = '+', $x->{_es} = '+', $x->{_e} = $MBI->_one()
+ if $MBI->_is_zero($x->{_m});
}
- return $x->bone(@params) if $x->is_zero();
+ $x;
+}
- if (!$x->isa('Math::BigFloat'))
- {
- $x = Math::BigFloat->new($x);
- $self = ref($x);
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
- local $Math::BigFloat::downgrade = undef;
-
- my $x_org = $x->copy();
-
- # We use the following Taylor series:
-
- # x x^2 x^3 x^4
- # e = 1 + --- + --- + --- + --- ...
- # 1! 2! 3! 4!
-
- # The difference for each term is X and N, which would result in:
- # 2 copy, 2 mul, 2 add, 1 inc, 1 div operations per term
-
- # But it is faster to compute exp(1) and then raising it to the
- # given power, esp. if $x is really big and an integer because:
-
- # * The numerator is always 1, making the computation faster
- # * the series converges faster in the case of x == 1
- # * We can also easily check when we have reached our limit: when the
- # term to be added is smaller than "1E$scale", we can stop - f.i.
- # scale == 5, and we have 1/40320, then we stop since 1/40320 < 1E-5.
- # * we can compute the *exact* result by simulating bigrat math:
-
- # 1 1 gcd(3,4) = 1 1*24 + 1*6 5
- # - + - = ---------- = --
- # 6 24 6*24 24
-
- # We do not compute the gcd() here, but simple do:
- # 1 1 1*24 + 1*6 30
- # - + - = --------- = --
- # 6 24 6*24 144
-
- # In general:
- # a c a*d + c*b and note that c is always 1 and d = (b*f)
- # - + - = ---------
- # b d b*d
-
- # This leads to: which can be reduced by b to:
- # a 1 a*b*f + b a*f + 1
- # - + - = --------- = -------
- # b b*f b*b*f b*f
-
- # The first terms in the series are:
-
- # 1 1 1 1 1 1 1 1 13700
- # -- + -- + -- + -- + -- + --- + --- + ---- = -----
- # 1 1 2 6 24 120 720 5040 5040
-
- # Note that we cannot simple reduce 13700/5040 to 685/252, but must keep A and B!
-
- if ($scale <= 75)
- {
- # set $x directly from a cached string form
- $x->{_m} = $MBI->_new(
- "27182818284590452353602874713526624977572470936999595749669676277240766303535476");
- $x->{sign} = '+';
- $x->{_es} = '-';
- $x->{_e} = $MBI->_new(79);
+sub binc {
+ # increment arg by one
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('binc');
+
+ if ($x->{_es} eq '-') {
+ return $x->badd($class->bone(), @r); # digits after dot
}
- else
+
+ if (!$MBI->_is_zero($x->{_e})) # _e == 0 for NaN, inf, -inf
{
- # compute A and B so that e = A / B.
-
- # After some terms we end up with this, so we use it as a starting point:
- my $A = $MBI->_new("90933395208605785401971970164779391644753259799242");
- my $F = $MBI->_new(42); my $step = 42;
-
- # Compute how many steps we need to take to get $A and $B sufficiently big
- my $steps = _len_to_steps($scale - 4);
-# print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
- while ($step++ <= $steps)
- {
- # calculate $a * $f + 1
- $A = $MBI->_mul($A, $F);
- $A = $MBI->_inc($A);
- # increment f
- $F = $MBI->_inc($F);
- }
- # compute $B as factorial of $steps (this is faster than doing it manually)
- my $B = $MBI->_fac($MBI->_new($steps));
-
-# print "A ", $MBI->_str($A), "\nB ", $MBI->_str($B), "\n";
-
- # compute A/B with $scale digits in the result (truncate, not round)
- $A = $MBI->_lsft( $A, $MBI->_new($scale), 10);
- $A = $MBI->_div( $A, $B );
-
- $x->{_m} = $A;
- $x->{sign} = '+';
- $x->{_es} = '-';
- $x->{_e} = $MBI->_new($scale);
+ # 1e2 => 100, so after the shift below _m has a '0' as last digit
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100
+ $x->{_e} = $MBI->_zero(); # normalize
+ $x->{_es} = '+';
+ # we know that the last digit of $x will be '1' or '9', depending on the
+ # sign
}
+ # now $x->{_e} == 0
+ if ($x->{sign} eq '+') {
+ $x->{_m} = $MBI->_inc($x->{_m});
+ return $x->bnorm()->bround(@r);
+ } elsif ($x->{sign} eq '-') {
+ $x->{_m} = $MBI->_dec($x->{_m});
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # -1 +1 => -0 => +0
+ return $x->bnorm()->bround(@r);
+ }
+ # inf, nan handling etc
+ $x->badd($class->bone(), @r); # badd() does round
+}
- # $x contains now an estimate of e, with some surplus digits, so we can round
- if (!$x_org->is_one())
- {
- # Reduce size of fractional part, followup with integer power of two.
- my $lshift = 0;
- while ($lshift < 30 && $x_org->bacmp(2 << $lshift) > 0)
- {
- $lshift++;
- }
- # Raise $x to the wanted power and round it.
- if ($lshift == 0)
- {
- $x->bpow($x_org, @params);
- }
- else
- {
- my($mul, $rescale) = (1 << $lshift, $scale+1+$lshift);
- $x->bpow(scalar $x_org->bdiv($mul,$rescale),$rescale)->bpow($mul, @params);
- }
- }
- else
- {
- # else just round the already computed result
- delete $x->{_a}; delete $x->{_p};
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+sub bdec {
+ # decrement arg by one
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('bdec');
+
+ if ($x->{_es} eq '-') {
+ return $x->badd($class->bone('-'), @r); # digits after dot
}
- # restore globals
- $$abr = $ab; $$pbr = $pb;
-
- $x; # return modified $x
- }
-
-sub _log
- {
- # internal log function to calculate ln() based on Taylor series.
- # Modifies $x in place.
- my ($self,$x,$scale) = @_;
-
- # in case of $x == 1, result is 0
- return $x->bzero() if $x->is_one();
-
- # XXX TODO: rewrite this in a similar manner to bexp()
-
- # http://www.efunda.com/math/taylor_series/logarithmic.cfm?search_string=log
-
- # u = x-1, v = x+1
- # _ _
- # Taylor: | u 1 u^3 1 u^5 |
- # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 0
- # |_ v 3 v^3 5 v^5 _|
-
- # This takes much more steps to calculate the result and is thus not used
- # u = x-1
- # _ _
- # Taylor: | u 1 u^2 1 u^3 |
- # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 1/2
- # |_ x 2 x^2 3 x^3 _|
-
- my ($limit,$v,$u,$below,$factor,$two,$next,$over,$f);
-
- $v = $x->copy(); $v->binc(); # v = x+1
- $x->bdec(); $u = $x->copy(); # u = x-1; x = x-1
- $x->bdiv($v,$scale); # first term: u/v
- $below = $v->copy();
- $over = $u->copy();
- $u *= $u; $v *= $v; # u^2, v^2
- $below->bmul($v); # u^3, v^3
- $over->bmul($u);
- $factor = $self->new(3); $f = $self->new(2);
-
- my $steps = 0;
- $limit = $self->new("1E-". ($scale-1));
- while (3 < 5)
- {
- # we calculate the next term, and add it to the last
- # when the next term is below our limit, it won't affect the outcome
- # anymore, so we stop
-
- # calculating the next term simple from over/below will result in quite
- # a time hog if the input has many digits, since over and below will
- # accumulate more and more digits, and the result will also have many
- # digits, but in the end it is rounded to $scale digits anyway. So if we
- # round $over and $below first, we save a lot of time for the division
- # (not with log(1.2345), but try log (123**123) to see what I mean. This
- # can introduce a rounding error if the division result would be f.i.
- # 0.1234500000001 and we round it to 5 digits it would become 0.12346, but
- # if we truncated $over and $below we might get 0.12345. Does this matter
- # for the end result? So we give $over and $below 4 more digits to be
- # on the safe side (unscientific error handling as usual... :+D
-
- $next = $over->copy->bround($scale+4)->bdiv(
- $below->copy->bmul($factor)->bround($scale+4),
- $scale);
-
-## old version:
-## $next = $over->copy()->bdiv($below->copy()->bmul($factor),$scale);
-
- last if $next->bacmp($limit) <= 0;
-
- delete $next->{_a}; delete $next->{_p};
- $x->badd($next);
- # calculate things for the next term
- $over *= $u; $below *= $v; $factor->badd($f);
- if (DEBUG)
- {
- $steps++; print "step $steps = $x\n" if $steps % 10 == 0;
- }
- }
- print "took $steps steps\n" if DEBUG;
- $x->bmul($f); # $x *= 2
- }
-
-sub _log_10
- {
- # Internal log function based on reducing input to the range of 0.1 .. 9.99
- # and then "correcting" the result to the proper one. Modifies $x in place.
- my ($self,$x,$scale) = @_;
-
- # Taking blog() from numbers greater than 10 takes a *very long* time, so we
- # break the computation down into parts based on the observation that:
- # blog(X*Y) = blog(X) + blog(Y)
- # We set Y here to multiples of 10 so that $x becomes below 1 - the smaller
- # $x is the faster it gets. Since 2*$x takes about 10 times as
- # long, we make it faster by about a factor of 100 by dividing $x by 10.
-
- # The same observation is valid for numbers smaller than 0.1, e.g. computing
- # log(1) is fastest, and the further away we get from 1, the longer it takes.
- # So we also 'break' this down by multiplying $x with 10 and subtract the
- # log(10) afterwards to get the correct result.
-
- # To get $x even closer to 1, we also divide by 2 and then use log(2) to
- # correct for this. For instance if $x is 2.4, we use the formula:
- # blog(2.4 * 2) == blog (1.2) + blog(2)
- # and thus calculate only blog(1.2) and blog(2), which is faster in total
- # than calculating blog(2.4).
-
- # In addition, the values for blog(2) and blog(10) are cached.
-
- # Calculate nr of digits before dot:
- my $dbd = $MBI->_num($x->{_e});
- $dbd = -$dbd if $x->{_es} eq '-';
- $dbd += $MBI->_len($x->{_m});
-
- # more than one digit (e.g. at least 10), but *not* exactly 10 to avoid
- # infinite recursion
-
- my $calc = 1; # do some calculation?
-
- # disable the shortcut for 10, since we need log(10) and this would recurse
- # infinitely deep
- if ($x->{_es} eq '+' && $MBI->_is_one($x->{_e}) && $MBI->_is_one($x->{_m}))
- {
- $dbd = 0; # disable shortcut
- # we can use the cached value in these cases
- if ($scale <= $LOG_10_A)
- {
- $x->bzero(); $x->badd($LOG_10); # modify $x in place
- $calc = 0; # no need to calc, but round
- }
- # if we can't use the shortcut, we continue normally
- }
- else
- {
- # disable the shortcut for 2, since we maybe have it cached
- if (($MBI->_is_zero($x->{_e}) && $MBI->_is_two($x->{_m})))
- {
- $dbd = 0; # disable shortcut
- # we can use the cached value in these cases
- if ($scale <= $LOG_2_A)
- {
- $x->bzero(); $x->badd($LOG_2); # modify $x in place
- $calc = 0; # no need to calc, but round
+
+ if (!$MBI->_is_zero($x->{_e})) {
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100
+ $x->{_e} = $MBI->_zero(); # normalize
+ $x->{_es} = '+';
+ }
+ # now $x->{_e} == 0
+ my $zero = $x->is_zero();
+ # <= 0
+ if (($x->{sign} eq '-') || $zero) {
+ $x->{_m} = $MBI->_inc($x->{_m});
+ $x->{sign} = '-' if $zero; # 0 => 1 => -1
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # -1 +1 => -0 => +0
+ return $x->bnorm()->round(@r);
+ }
+ # > 0
+ elsif ($x->{sign} eq '+') {
+ $x->{_m} = $MBI->_dec($x->{_m});
+ return $x->bnorm()->round(@r);
+ }
+ # inf, nan handling etc
+ $x->badd($class->bone('-'), @r); # does round
+}
+
+sub badd {
+ # add second arg (BFLOAT or string) to first (BFLOAT) (modifies first)
+ # return result as BFLOAT
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x->modify('badd');
+
+ # inf and NaN handling
+ if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
+ # NaN first
+ return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
+ # +inf++inf or -inf+-inf => same, rest is NaN
+ return $x if $x->{sign} eq $y->{sign};
+ return $x->bnan();
}
- # if we can't use the shortcut, we continue normally
- }
+ # +-inf + something => +inf; something +-inf => +-inf
+ $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
+ return $x;
}
- # if $x = 0.1, we know the result must be 0-log(10)
- if ($calc != 0 && $x->{_es} eq '-' && $MBI->_is_one($x->{_e}) &&
- $MBI->_is_one($x->{_m}))
+ return $upgrade->badd($x, $y, @r) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
+
+ $r[3] = $y; # no push!
+
+ # speed: no add for 0+y or x+0
+ return $x->bround(@r) if $y->is_zero(); # x+0
+ if ($x->is_zero()) # 0+y
{
- $dbd = 0; # disable shortcut
- # we can use the cached value in these cases
- if ($scale <= $LOG_10_A)
- {
- $x->bzero(); $x->bsub($LOG_10);
- $calc = 0; # no need to calc, but round
- }
+ # make copy, clobbering up x (modify in place!)
+ $x->{_e} = $MBI->_copy($y->{_e});
+ $x->{_es} = $y->{_es};
+ $x->{_m} = $MBI->_copy($y->{_m});
+ $x->{sign} = $y->{sign} || $nan;
+ return $x->round(@r);
}
- return if $calc == 0; # already have the result
+ # take lower of the two e's and adapt m1 to it to match m2
+ my $e = $y->{_e};
+ $e = $MBI->_zero() if !defined $e; # if no BFLOAT?
+ $e = $MBI->_copy($e); # make copy (didn't do it yet)
- # default: these correction factors are undef and thus not used
- my $l_10; # value of ln(10) to A of $scale
- my $l_2; # value of ln(2) to A of $scale
+ my $es;
- my $two = $self->new(2);
+ ($e, $es) = _e_sub($e, $x->{_e}, $y->{_es} || '+', $x->{_es});
- # $x == 2 => 1, $x == 13 => 2, $x == 0.1 => 0, $x == 0.01 => -1
- # so don't do this shortcut for 1 or 0
- if (($dbd > 1) || ($dbd < 0))
- {
- # convert our cached value to an object if not already (avoid doing this
- # at import() time, since not everybody needs this)
- $LOG_10 = $self->new($LOG_10,undef,undef) unless ref $LOG_10;
-
- #print "x = $x, dbd = $dbd, calc = $calc\n";
- # got more than one digit before the dot, or more than one zero after the
- # dot, so do:
- # log(123) == log(1.23) + log(10) * 2
- # log(0.0123) == log(1.23) - log(10) * 2
-
- if ($scale <= $LOG_10_A)
- {
- # use cached value
- $l_10 = $LOG_10->copy(); # copy for mul
- }
- else
- {
- # else: slower, compute and cache result
- # also disable downgrade for this code path
- local $Math::BigFloat::downgrade = undef;
-
- # shorten the time to calculate log(10) based on the following:
- # log(1.25 * 8) = log(1.25) + log(8)
- # = log(1.25) + log(2) + log(2) + log(2)
-
- # first get $l_2 (and possible compute and cache log(2))
- $LOG_2 = $self->new($LOG_2,undef,undef) unless ref $LOG_2;
- if ($scale <= $LOG_2_A)
- {
- # use cached value
- $l_2 = $LOG_2->copy(); # copy() for the mul below
- }
- else
- {
- # else: slower, compute and cache result
- $l_2 = $two->copy(); $self->_log($l_2, $scale); # scale+4, actually
- $LOG_2 = $l_2->copy(); # cache the result for later
- # the copy() is for mul below
- $LOG_2_A = $scale;
- }
+ my $add = $MBI->_copy($y->{_m});
- # now calculate log(1.25):
- $l_10 = $self->new('1.25'); $self->_log($l_10, $scale); # scale+4, actually
-
- # log(1.25) + log(2) + log(2) + log(2):
- $l_10->badd($l_2);
- $l_10->badd($l_2);
- $l_10->badd($l_2);
- $LOG_10 = $l_10->copy(); # cache the result for later
- # the copy() is for mul below
- $LOG_10_A = $scale;
- }
- $dbd-- if ($dbd > 1); # 20 => dbd=2, so make it dbd=1
- $l_10->bmul( $self->new($dbd)); # log(10) * (digits_before_dot-1)
- my $dbd_sign = '+';
- if ($dbd < 0)
- {
- $dbd = -$dbd;
- $dbd_sign = '-';
- }
- ($x->{_e}, $x->{_es}) =
- _e_sub( $x->{_e}, $MBI->_new($dbd), $x->{_es}, $dbd_sign); # 123 => 1.23
-
- }
-
- # Now: 0.1 <= $x < 10 (and possible correction in l_10)
-
- ### Since $x in the range 0.5 .. 1.5 is MUCH faster, we do a repeated div
- ### or mul by 2 (maximum times 3, since x < 10 and x > 0.1)
-
- $HALF = $self->new($HALF) unless ref($HALF);
-
- my $twos = 0; # default: none (0 times)
- while ($x->bacmp($HALF) <= 0) # X <= 0.5
+ if ($es eq '-') # < 0
{
- $twos--; $x->bmul($two);
- }
- while ($x->bacmp($two) >= 0) # X >= 2
+ $x->{_m} = $MBI->_lsft($x->{_m}, $e, 10);
+ ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
+ } elsif (!$MBI->_is_zero($e)) # > 0
{
- $twos++; $x->bdiv($two,$scale+4); # keep all digits
+ $add = $MBI->_lsft($add, $e, 10);
}
- $x->bround($scale+4);
- # $twos > 0 => did mul 2, < 0 => did div 2 (but we never did both)
- # So calculate correction factor based on ln(2):
- if ($twos != 0)
- {
- $LOG_2 = $self->new($LOG_2,undef,undef) unless ref $LOG_2;
- if ($scale <= $LOG_2_A)
- {
- # use cached value
- $l_2 = $LOG_2->copy(); # copy() for the mul below
- }
- else
- {
- # else: slower, compute and cache result
- # also disable downgrade for this code path
- local $Math::BigFloat::downgrade = undef;
- $l_2 = $two->copy(); $self->_log($l_2, $scale); # scale+4, actually
- $LOG_2 = $l_2->copy(); # cache the result for later
- # the copy() is for mul below
- $LOG_2_A = $scale;
- }
- $l_2->bmul($twos); # * -2 => subtract, * 2 => add
- }
- else
- {
- undef $l_2;
- }
-
- $self->_log($x,$scale); # need to do the "normal" way
- $x->badd($l_10) if defined $l_10; # correct it by ln(10)
- $x->badd($l_2) if defined $l_2; # and maybe by ln(2)
-
- # all done, $x contains now the result
- $x;
- }
-
-sub blcm
- {
- # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
- # does not modify arguments, but returns new object
- # Lowest Common Multiplicator
-
- my ($self,@arg) = objectify(0,@_);
- my $x = $self->new(shift @arg);
- while (@arg) { $x = Math::BigInt::__lcm($x,shift @arg); }
- $x;
- }
-
-sub bgcd
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # does not modify arguments, but returns new object
-
- my $y = shift;
- $y = __PACKAGE__->new($y) if !ref($y);
- my $self = ref($y);
- my $x = $y->copy()->babs(); # keep arguments
-
- return $x->bnan() if $x->{sign} !~ /^[+-]$/ # x NaN?
- || !$x->is_int(); # only for integers now
-
- while (@_)
- {
- my $t = shift; $t = $self->new($t) if !ref($t);
- $y = $t->copy()->babs();
-
- return $x->bnan() if $y->{sign} !~ /^[+-]$/ # y NaN?
- || !$y->is_int(); # only for integers now
+ # else: both e are the same, so just leave them
- # greatest common divisor
- while (! $y->is_zero())
- {
- ($x,$y) = ($y->copy(), $x->copy()->bmod($y));
- }
-
- last if $x->is_one();
+ if ($x->{sign} eq $y->{sign}) {
+ # add
+ $x->{_m} = $MBI->_add($x->{_m}, $add);
+ } else {
+ ($x->{_m}, $x->{sign}) =
+ _e_add($x->{_m}, $add, $x->{sign}, $y->{sign});
}
- $x;
- }
-##############################################################################
+ # delete trailing zeros, then round
+ $x->bnorm()->round(@r);
+}
-sub _e_add {
- # Internal helper sub to take two positive integers and their signs and
- # then add them. Input ($CALC, $CALC, ('+'|'-'), ('+'|'-')), output
- # ($CALC, ('+'|'-')).
+sub bsub {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # subtract second arg from first, modify first
- my ($x, $y, $xs, $ys) = @_;
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # if the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8)
- if ($xs eq $ys) {
- $x = $MBI->_add($x, $y); # +a + +b or -a + -b
- } else {
- my $a = $MBI->_acmp($x, $y);
- if ($a == 0) {
- # This does NOT modify $x in-place. TODO: Fix this?
- $x = $MBI->_zero(); # result is 0
- $xs = '+';
- return ($x, $xs);
- }
- if ($a > 0) {
- $x = $MBI->_sub($x, $y); # abs sub
- } else { # a < 0
- $x = $MBI->_sub ( $y, $x, 1 ); # abs sub
- $xs = $ys;
- }
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- $xs = '+' if $xs eq '-' && $MBI->_is_zero($x); # no "-0"
+ return $x if $x -> modify('bsub');
- return ($x, $xs);
+ return $upgrade -> new($x) -> bsub($upgrade -> new($y), @r)
+ if defined $upgrade && (!$x -> isa($class) || !$y -> isa($class));
+
+ return $x -> round(@r) if $y -> is_zero();
+
+ # To correctly handle the lone special case $x -> bsub($x), we note the
+ # sign of $x, then flip the sign from $y, and if the sign of $x did change,
+ # too, then we caught the special case:
+
+ my $xsign = $x -> {sign};
+ $y -> {sign} =~ tr/+-/-+/; # does nothing for NaN
+ if ($xsign ne $x -> {sign}) {
+ # special case of $x -> bsub($x) results in 0
+ return $x -> bzero(@r) if $xsign =~ /^[+-]$/;
+ return $x -> bnan(); # NaN, -inf, +inf
+ }
+ $x -> badd($y, @r); # badd does not leave internal zeros
+ $y -> {sign} =~ tr/+-/-+/; # refix $y (does nothing for NaN)
+ $x; # already rounded by badd() or no rounding
}
-sub _e_sub {
- # Internal helper sub to take two positive integers and their signs and
- # then subtract them. Input ($CALC,$CALC,('+'|'-'),('+'|'-')),
- # output ($CALC,('+'|'-'))
- my ($x,$y,$xs,$ys) = @_;
+sub bmul {
+ # multiply two numbers
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
- # flip sign
- $ys = $ys eq '+' ? '-' : '+'; # swap sign of second operand ...
- _e_add($x, $y, $xs, $ys); # ... and let _e_add() do the job
- }
+ return $x if $x->modify('bmul');
-###############################################################################
-# is_foo methods (is_negative, is_positive are inherited from BigInt)
-
-sub is_int
- {
- # return true if arg (BFLOAT or num_str) is an integer
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- (($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
- ($x->{_es} eq '+')) ? 1 : 0; # 1e-1 => no integer
- }
-
-sub is_zero
- {
- # return true if arg (BFLOAT or num_str) is zero
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- ($x->{sign} eq '+' && $MBI->_is_zero($x->{_m})) ? 1 : 0;
- }
-
-sub is_one
- {
- # return true if arg (BFLOAT or num_str) is +1 or -1 if signis given
- my ($self,$x,$sign) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
-
- $sign = '+' if !defined $sign || $sign ne '-';
-
- ($x->{sign} eq $sign &&
- $MBI->_is_zero($x->{_e}) &&
- $MBI->_is_one($x->{_m}) ) ? 1 : 0;
- }
-
-sub is_odd
- {
- # return true if arg (BFLOAT or num_str) is odd or false if even
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
- ($MBI->_is_zero($x->{_e})) &&
- ($MBI->_is_odd($x->{_m}))) ? 1 : 0;
- }
-
-sub is_even
- {
- # return true if arg (BINT or num_str) is even or false if odd
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
- ($x->{_es} eq '+') && # 123.45 isn't
- ($MBI->_is_even($x->{_m}))) ? 1 : 0; # but 1200 is
- }
-
-sub bmul
- {
- # multiply two numbers
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
}
- return $x if $x->modify('bmul');
+ return $upgrade->bmul($x, $y, @r) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ # aEb * cEd = (a*c)E(b+d)
+ $x->{_m} = $MBI->_mul($x->{_m}, $y->{_m});
+ ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
- }
-
- return $upgrade->bmul($x,$y,@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
-
- # aEb * cEd = (a*c)E(b+d)
- $MBI->_mul($x->{_m},$y->{_m});
- ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
-
- $r[3] = $y; # no push!
-
- # adjust sign:
- $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
- $x->bnorm->round(@r);
- }
-
-sub bmuladd
- {
- # multiply two numbers and add the third to the result
-
- # set up parameters
- my ($self,$x,$y,$z,@r) = objectify(3,@_);
-
- return $x if $x->modify('bmuladd');
-
- return $x->bnan() if (($x->{sign} eq $nan) ||
- ($y->{sign} eq $nan) ||
- ($z->{sign} eq $nan));
-
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ $r[3] = $y; # no push!
+
+ # adjust sign:
+ $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
+ $x->bnorm->round(@r);
+}
+
+sub bmuladd {
+ # multiply two numbers and add the third to the result
+
+ # set up parameters
+ my ($class, $x, $y, $z, @r) = objectify(3, @_);
+
+ return $x if $x->modify('bmuladd');
+
+ return $x->bnan() if (($x->{sign} eq $nan) ||
+ ($y->{sign} eq $nan) ||
+ ($z->{sign} eq $nan));
+
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
}
- return $upgrade->bmul($x,$y,@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ return $upgrade->bmul($x, $y, @r) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
- # aEb * cEd = (a*c)E(b+d)
- $MBI->_mul($x->{_m},$y->{_m});
- ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
+ # aEb * cEd = (a*c)E(b+d)
+ $x->{_m} = $MBI->_mul($x->{_m}, $y->{_m});
+ ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
- $r[3] = $y; # no push!
+ $r[3] = $y; # no push!
- # adjust sign:
- $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
+ # adjust sign:
+ $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
- # z=inf handling (z=NaN handled above)
- $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
+ # z=inf handling (z=NaN handled above)
+ $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
- # take lower of the two e's and adapt m1 to it to match m2
- my $e = $z->{_e};
- $e = $MBI->_zero() if !defined $e; # if no BFLOAT?
- $e = $MBI->_copy($e); # make copy (didn't do it yet)
+ # take lower of the two e's and adapt m1 to it to match m2
+ my $e = $z->{_e};
+ $e = $MBI->_zero() if !defined $e; # if no BFLOAT?
+ $e = $MBI->_copy($e); # make copy (didn't do it yet)
- my $es;
+ my $es;
- ($e,$es) = _e_sub($e, $x->{_e}, $z->{_es} || '+', $x->{_es});
+ ($e, $es) = _e_sub($e, $x->{_e}, $z->{_es} || '+', $x->{_es});
- my $add = $MBI->_copy($z->{_m});
+ my $add = $MBI->_copy($z->{_m});
- if ($es eq '-') # < 0
+ if ($es eq '-') # < 0
{
- $MBI->_lsft( $x->{_m}, $e, 10);
- ($x->{_e},$x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
- }
- elsif (!$MBI->_is_zero($e)) # > 0
+ $x->{_m} = $MBI->_lsft($x->{_m}, $e, 10);
+ ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
+ } elsif (!$MBI->_is_zero($e)) # > 0
{
- $MBI->_lsft($add, $e, 10);
+ $add = $MBI->_lsft($add, $e, 10);
}
- # else: both e are the same, so just leave them
+ # else: both e are the same, so just leave them
- if ($x->{sign} eq $z->{sign})
- {
- # add
- $x->{_m} = $MBI->_add($x->{_m}, $add);
- }
- else
- {
- ($x->{_m}, $x->{sign}) =
- _e_add($x->{_m}, $add, $x->{sign}, $z->{sign});
+ if ($x->{sign} eq $z->{sign}) {
+ # add
+ $x->{_m} = $MBI->_add($x->{_m}, $add);
+ } else {
+ ($x->{_m}, $x->{sign}) =
+ _e_add($x->{_m}, $add, $x->{sign}, $z->{sign});
}
- # delete trailing zeros, then round
- $x->bnorm()->round(@r);
- }
+ # delete trailing zeros, then round
+ $x->bnorm()->round(@r);
+}
-sub bdiv
- {
- # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return
+sub bdiv {
+ # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return
# (BFLOAT, BFLOAT) (quo, rem) or BFLOAT (only quo)
- # set up parameters
- my ($self,$x,$y,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$a,$p,$r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- return $x if $x->modify('bdiv');
+ return $x if $x->modify('bdiv');
- my $wantarray = wantarray; # call only once
+ my $wantarray = wantarray; # call only once
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bdiv().
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $self -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
}
# Divide by zero and modulo zero. This is handled the same way as in
@@ -1899,7 +1798,7 @@ sub bdiv
if ($x -> is_inf()) {
my ($quo, $rem);
- $rem = $self -> bnan() if $wantarray;
+ $rem = $class -> bnan() if $wantarray;
if ($y -> is_inf()) {
$quo = $x -> bnan();
} else {
@@ -1909,180 +1808,165 @@ sub bdiv
return $wantarray ? ($quo, $rem) : $quo;
}
- # Denominator (divisor) is +/-inf. This is handled the same way as in
- # Math::BigInt -> bdiv(), with one exception: In scalar context,
- # Math::BigFloat does true division (although rounded), not floored division
- # (F-division), so a finite number divided by +/-inf is always zero. See the
- # comment in the code for Math::BigInt -> bdiv() for further details.
-
- if ($y -> is_inf()) {
- my ($quo, $rem);
- if ($wantarray) {
- if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
- $rem = $x -> copy();
- $quo = $x -> bzero();
- } else {
- $rem = $self -> binf($y -> {sign});
- $quo = $x -> bone('-');
- }
- return ($quo, $rem);
- } else {
- if ($y -> is_inf()) {
- if ($x -> is_nan() || $x -> is_inf()) {
- return $x -> bnan();
+ # Denominator (divisor) is +/-inf. This is handled the same way as in
+ # Math::BigInt -> bdiv(), with one exception: In scalar context,
+ # Math::BigFloat does true division (although rounded), not floored division
+ # (F-division), so a finite number divided by +/-inf is always zero. See the
+ # comment in the code for Math::BigInt -> bdiv() for further details.
+
+ if ($y -> is_inf()) {
+ my ($quo, $rem);
+ if ($wantarray) {
+ if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
+ $rem = $x -> copy();
+ $quo = $x -> bzero();
} else {
- return $x -> bzero();
+ $rem = $class -> binf($y -> {sign});
+ $quo = $x -> bone('-');
+ }
+ return ($quo, $rem);
+ } else {
+ if ($y -> is_inf()) {
+ if ($x -> is_nan() || $x -> is_inf()) {
+ return $x -> bnan();
+ } else {
+ return $x -> bzero();
+ }
}
}
}
- }
- # At this point, both the numerator and denominator are finite numbers, and
- # the denominator (divisor) is non-zero.
+ # At this point, both the numerator and denominator are finite numbers, and
+ # the denominator (divisor) is non-zero.
- # x == 0?
- return wantarray ? ($x,$self->bzero()) : $x if $x->is_zero();
+ # x == 0?
+ return wantarray ? ($x, $class->bzero()) : $x if $x->is_zero();
- # upgrade ?
- return $upgrade->bdiv($upgrade->new($x),$y,$a,$p,$r) if defined $upgrade;
+ # upgrade ?
+ return $upgrade->bdiv($upgrade->new($x), $y, $a, $p, $r) if defined $upgrade;
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my (@params,$scale);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r,$y);
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my (@params, $scale);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r, $y);
- return $x if $x->is_nan(); # error in _find_round_parameters?
+ return $x if $x->is_nan(); # error in _find_round_parameters?
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
} else {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
my $rem;
- $rem = $self -> bzero() if wantarray;
-
- $y = $self->new($y) unless $y->isa('Math::BigFloat');
+ $rem = $class -> bzero() if wantarray;
- my $lx = $MBI -> _len($x->{_m}); my $ly = $MBI -> _len($y->{_m});
- $scale = $lx if $lx > $scale;
- $scale = $ly if $ly > $scale;
- my $diff = $ly - $lx;
- $scale += $diff if $diff > 0; # if lx << ly, but not if ly << lx!
+ $y = $class->new($y) unless $y->isa('Math::BigFloat');
- # check that $y is not 1 nor -1 and cache the result:
- my $y_not_one = !($MBI->_is_zero($y->{_e}) && $MBI->_is_one($y->{_m}));
+ my $lx = $MBI -> _len($x->{_m}); my $ly = $MBI -> _len($y->{_m});
+ $scale = $lx if $lx > $scale;
+ $scale = $ly if $ly > $scale;
+ my $diff = $ly - $lx;
+ $scale += $diff if $diff > 0; # if lx << ly, but not if ly << lx!
- # flipping the sign of $y will also flip the sign of $x for the special
- # case of $x->bsub($x); so we can catch it below:
- my $xsign = $x->{sign};
- $y->{sign} =~ tr/+-/-+/;
+ # check that $y is not 1 nor -1 and cache the result:
+ my $y_not_one = !($MBI->_is_zero($y->{_e}) && $MBI->_is_one($y->{_m}));
- if ($xsign ne $x->{sign})
- {
- # special case of $x /= $x results in 1
- $x->bone(); # "fixes" also sign of $y, since $x is $y
- }
- else
- {
- # correct $y's sign again
+ # flipping the sign of $y will also flip the sign of $x for the special
+ # case of $x->bsub($x); so we can catch it below:
+ my $xsign = $x->{sign};
$y->{sign} =~ tr/+-/-+/;
- # continue with normal div code:
-
- # make copy of $x in case of list context for later remainder calculation
- if (wantarray && $y_not_one)
- {
- $rem = $x->copy();
- }
-
- $x->{sign} = $x->{sign} ne $y->sign() ? '-' : '+';
-
- # check for / +-1 ( +/- 1E0)
- if ($y_not_one)
- {
- # promote BigInts and it's subclasses (except when already a BigFloat)
- $y = $self->new($y) unless $y->isa('Math::BigFloat');
-
- # calculate the result to $scale digits and then round it
- # a * 10 ** b / c * 10 ** d => a/c * 10 ** (b-d)
- $MBI->_lsft($x->{_m},$MBI->_new($scale),10);
- $MBI->_div ($x->{_m},$y->{_m}); # a/c
-
- # correct exponent of $x
- ($x->{_e},$x->{_es}) = _e_sub($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
- # correct for 10**scale
- ($x->{_e},$x->{_es}) = _e_sub($x->{_e}, $MBI->_new($scale), $x->{_es}, '+');
- $x->bnorm(); # remove trailing 0's
- }
- } # end else $x != $y
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- delete $x->{_a}; # clear before round
- $x->bround($params[0],$params[2]); # then round accordingly
+
+ if ($xsign ne $x->{sign}) {
+ # special case of $x /= $x results in 1
+ $x->bone(); # "fixes" also sign of $y, since $x is $y
+ } else {
+ # correct $y's sign again
+ $y->{sign} =~ tr/+-/-+/;
+ # continue with normal div code:
+
+ # make copy of $x in case of list context for later remainder calculation
+ if (wantarray && $y_not_one) {
+ $rem = $x->copy();
+ }
+
+ $x->{sign} = $x->{sign} ne $y->sign() ? '-' : '+';
+
+ # check for / +-1 (+/- 1E0)
+ if ($y_not_one) {
+ # promote BigInts and it's subclasses (except when already a Math::BigFloat)
+ $y = $class->new($y) unless $y->isa('Math::BigFloat');
+
+ # calculate the result to $scale digits and then round it
+ # a * 10 ** b / c * 10 ** d => a/c * 10 ** (b-d)
+ $x->{_m} = $MBI->_lsft($x->{_m}, $MBI->_new($scale), 10);
+ $x->{_m} = $MBI->_div($x->{_m}, $y->{_m}); # a/c
+
+ # correct exponent of $x
+ ($x->{_e}, $x->{_es}) = _e_sub($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
+ # correct for 10**scale
+ ($x->{_e}, $x->{_es}) = _e_sub($x->{_e}, $MBI->_new($scale), $x->{_es}, '+');
+ $x->bnorm(); # remove trailing 0's
+ }
+ } # end else $x != $y
+
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ delete $x->{_a}; # clear before round
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ delete $x->{_p}; # clear before round
+ $x->bfround($params[1], $params[2]); # then round accordingly
}
- else
- {
- delete $x->{_p}; # clear before round
- $x->bfround($params[1],$params[2]); # then round accordingly
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a}; delete $x->{_p};
}
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+
+ if (wantarray) {
+ if ($y_not_one) {
+ $x -> bfloor();
+ $rem->bmod($y, @params); # copy already done
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $rem->{_a}; delete $rem->{_p};
+ }
+ return ($x, $rem);
}
+ $x;
+}
- if (wantarray)
- {
- if ($y_not_one)
- {
- $x -> bfloor();
- $rem->bmod($y,@params); # copy already done
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $rem->{_a}; delete $rem->{_p};
- }
- return ($x,$rem);
- }
- $x;
- }
-
-sub bmod
- {
- # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return remainder
-
- # set up parameters
- my ($self,$x,$y,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$a,$p,$r) = objectify(2,@_);
+sub bmod {
+ # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return remainder
+
+ # set up parameters
+ my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- return $x if $x->modify('bmod');
+ return $x if $x->modify('bmod');
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bmod().
if ($x -> is_nan() || $y -> is_nan()) {
return $x -> bnan();
- }
+ }
# Modulo zero. This is handled the same way as in Math::BigInt -> bmod().
if ($y -> is_zero()) {
- return $x;
+ return $x;
}
# Numerator (dividend) is +/-inf. This is handled the same way as in
@@ -2103,1210 +1987,713 @@ sub bmod
}
}
- return $x->bzero() if $x->is_zero()
- || ($x->is_int() &&
- # check that $y == +1 or $y == -1:
- ($MBI->_is_zero($y->{_e}) && $MBI->_is_one($y->{_m})));
+ return $x->bzero() if $x->is_zero()
+ || ($x->is_int() &&
+ # check that $y == +1 or $y == -1:
+ ($MBI->_is_zero($y->{_e}) && $MBI->_is_one($y->{_m})));
- my $cmp = $x->bacmp($y); # equal or $x < $y?
- if ($cmp == 0) { # $x == $y => result 0
+ my $cmp = $x->bacmp($y); # equal or $x < $y?
+ if ($cmp == 0) { # $x == $y => result 0
return $x -> bzero($a, $p);
}
- # only $y of the operands negative?
+ # only $y of the operands negative?
my $neg = $x->{sign} ne $y->{sign} ? 1 : 0;
- $x->{sign} = $y->{sign}; # calc sign first
- if ($cmp < 0 && $neg == 0) { # $x < $y => result $x
+ $x->{sign} = $y->{sign}; # calc sign first
+ if ($cmp < 0 && $neg == 0) { # $x < $y => result $x
return $x -> round($a, $p, $r);
}
-
- my $ym = $MBI->_copy($y->{_m});
-
- # 2e1 => 20
- $MBI->_lsft( $ym, $y->{_e}, 10)
- if $y->{_es} eq '+' && !$MBI->_is_zero($y->{_e});
-
- # if $y has digits after dot
- my $shifty = 0; # correct _e of $x by this
- if ($y->{_es} eq '-') # has digits after dot
+
+ my $ym = $MBI->_copy($y->{_m});
+
+ # 2e1 => 20
+ $ym = $MBI->_lsft($ym, $y->{_e}, 10)
+ if $y->{_es} eq '+' && !$MBI->_is_zero($y->{_e});
+
+ # if $y has digits after dot
+ my $shifty = 0; # correct _e of $x by this
+ if ($y->{_es} eq '-') # has digits after dot
{
- # 123 % 2.5 => 1230 % 25 => 5 => 0.5
- $shifty = $MBI->_num($y->{_e}); # no more digits after dot
- $MBI->_lsft($x->{_m}, $y->{_e}, 10);# 123 => 1230, $y->{_m} is already 25
+ # 123 % 2.5 => 1230 % 25 => 5 => 0.5
+ $shifty = $MBI->_num($y->{_e}); # no more digits after dot
+ $x->{_m} = $MBI->_lsft($x->{_m}, $y->{_e}, 10); # 123 => 1230, $y->{_m} is already 25
}
- # $ym is now mantissa of $y based on exponent 0
+ # $ym is now mantissa of $y based on exponent 0
- my $shiftx = 0; # correct _e of $x by this
- if ($x->{_es} eq '-') # has digits after dot
+ my $shiftx = 0; # correct _e of $x by this
+ if ($x->{_es} eq '-') # has digits after dot
{
- # 123.4 % 20 => 1234 % 200
- $shiftx = $MBI->_num($x->{_e}); # no more digits after dot
- $MBI->_lsft($ym, $x->{_e}, 10); # 123 => 1230
+ # 123.4 % 20 => 1234 % 200
+ $shiftx = $MBI->_num($x->{_e}); # no more digits after dot
+ $ym = $MBI->_lsft($ym, $x->{_e}, 10); # 123 => 1230
}
- # 123e1 % 20 => 1230 % 20
- if ($x->{_es} eq '+' && !$MBI->_is_zero($x->{_e}))
- {
- $MBI->_lsft( $x->{_m}, $x->{_e},10); # es => '+' here
+ # 123e1 % 20 => 1230 % 20
+ if ($x->{_es} eq '+' && !$MBI->_is_zero($x->{_e})) {
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # es => '+' here
}
- $x->{_e} = $MBI->_new($shiftx);
- $x->{_es} = '+';
- $x->{_es} = '-' if $shiftx != 0 || $shifty != 0;
- $MBI->_add( $x->{_e}, $MBI->_new($shifty)) if $shifty != 0;
-
- # now mantissas are equalized, exponent of $x is adjusted, so calc result
+ $x->{_e} = $MBI->_new($shiftx);
+ $x->{_es} = '+';
+ $x->{_es} = '-' if $shiftx != 0 || $shifty != 0;
+ $x->{_e} = $MBI->_add($x->{_e}, $MBI->_new($shifty)) if $shifty != 0;
- $x->{_m} = $MBI->_mod( $x->{_m}, $ym);
+ # now mantissas are equalized, exponent of $x is adjusted, so calc result
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # fix sign for -0
- $x->bnorm();
+ $x->{_m} = $MBI->_mod($x->{_m}, $ym);
- if ($neg != 0 && ! $x -> is_zero()) # one of them negative => correct in place
- {
- my $r = $y - $x;
- $x->{_m} = $r->{_m};
- $x->{_e} = $r->{_e};
- $x->{_es} = $r->{_es};
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # fix sign for -0
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # fix sign for -0
$x->bnorm();
- }
-
- $x->round($a,$p,$r,$y); # round and return
- }
-sub broot
- {
- # calculate $y'th root of $x
-
- # set up parameters
- my ($self,$x,$y,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
+ if ($neg != 0 && ! $x -> is_zero()) # one of them negative => correct in place
{
- ($self,$x,$y,$a,$p,$r) = objectify(2,@_);
+ my $r = $y - $x;
+ $x->{_m} = $r->{_m};
+ $x->{_e} = $r->{_e};
+ $x->{_es} = $r->{_es};
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # fix sign for -0
+ $x->bnorm();
}
- return $x if $x->modify('broot');
-
- # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
- return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
- $y->{sign} !~ /^\+$/;
+ $x->round($a, $p, $r, $y); # round and return
+}
- return $x if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
-
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my (@params,$scale);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r);
+sub bmodpow {
+ # takes a very large number to a very large exponent in a given very
+ # large modulus, quickly, thanks to binary exponentiation. Supports
+ # negative exponents.
+ my ($class, $num, $exp, $mod, @r) = objectify(3, @_);
- return $x if $x->is_nan(); # error in _find_round_parameters?
+ return $num if $num->modify('bmodpow');
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
-
- # remember sign and make $x positive, since -4 ** (1/2) => -2
- my $sign = 0; $sign = 1 if $x->{sign} eq '-'; $x->{sign} = '+';
-
- my $is_two = 0;
- if ($y->isa('Math::BigFloat'))
- {
- $is_two = ($y->{sign} eq '+' && $MBI->_is_two($y->{_m}) && $MBI->_is_zero($y->{_e}));
- }
- else
- {
- $is_two = ($y == 2);
- }
+ # check modulus for valid values
+ return $num->bnan() if ($mod->{sign} ne '+' # NaN, -, -inf, +inf
+ || $mod->is_zero());
- # normal square root if $y == 2:
- if ($is_two)
- {
- $x->bsqrt($scale+4);
- }
- elsif ($y->is_one('-'))
- {
- # $x ** -1 => 1/$x
- my $u = $self->bone()->bdiv($x,$scale);
- # copy private parts over
- $x->{_m} = $u->{_m};
- $x->{_e} = $u->{_e};
- $x->{_es} = $u->{_es};
- }
- else
- {
- # calculate the broot() as integer result first, and if it fits, return
- # it rightaway (but only if $x and $y are integer):
-
- my $done = 0; # not yet
- if ($y->is_int() && $x->is_int())
- {
- my $i = $MBI->_copy( $x->{_m} );
- $MBI->_lsft( $i, $x->{_e}, 10 ) unless $MBI->_is_zero($x->{_e});
- my $int = Math::BigInt->bzero();
- $int->{value} = $i;
- $int->broot($y->as_number());
- # if ($exact)
- if ($int->copy()->bpow($y) == $x)
- {
- # found result, return it
- $x->{_m} = $int->{value};
- $x->{_e} = $MBI->_zero();
- $x->{_es} = '+';
- $x->bnorm();
- $done = 1;
- }
- }
- if ($done == 0)
- {
- my $u = $self->bone()->bdiv($y,$scale+4);
- delete $u->{_a}; delete $u->{_p}; # otherwise it conflicts
- $x->bpow($u,$scale+4); # el cheapo
- }
- }
- $x->bneg() if $sign == 1;
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+ # check exponent for valid values
+ if ($exp->{sign} =~ /\w/) {
+ # i.e., if it's NaN, +inf, or -inf...
+ return $num->bnan();
}
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
-sub bsqrt
- {
- # calculate square root
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ $num->bmodinv ($mod) if ($exp->{sign} eq '-');
- return $x if $x->modify('bsqrt');
+ # check num for valid values (also NaN if there was no inverse but $exp < 0)
+ return $num->bnan() if $num->{sign} !~ /^[+-]$/;
- return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0
- return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
- return $x->round($a,$p,$r) if $x->is_zero() || $x->is_one();
+ # $mod is positive, sign on $exp is ignored, result also positive
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my (@params,$scale);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r);
+ # XXX TODO: speed it up when all three numbers are integers
+ $num->bpow($exp)->bmod($mod);
+}
- return $x if $x->is_nan(); # error in _find_round_parameters?
+sub bpow {
+ # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
+ # compute power of two numbers, second arg is used as integer
+ # modifies first argument
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
-
- my $i = $MBI->_copy( $x->{_m} );
- $MBI->_lsft( $i, $x->{_e}, 10 ) unless $MBI->_is_zero($x->{_e});
- my $xas = Math::BigInt->bzero();
- $xas->{value} = $i;
-
- my $gs = $xas->copy()->bsqrt(); # some guess
-
- if (($x->{_es} ne '-') # guess can't be accurate if there are
- # digits after the dot
- && ($xas->bacmp($gs * $gs) == 0)) # guess hit the nail on the head?
- {
- # exact result, copy result over to keep $x
- $x->{_m} = $gs->{value}; $x->{_e} = $MBI->_zero(); $x->{_es} = '+';
- $x->bnorm();
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
- }
- # re-enable A and P, upgrade is taken care of by "local"
- ${"$self\::accuracy"} = $ab; ${"$self\::precision"} = $pb;
- return $x;
- }
-
- # sqrt(2) = 1.4 because sqrt(2*100) = 1.4*10; so we can increase the accuracy
- # of the result by multiplying the input by 100 and then divide the integer
- # result of sqrt(input) by 10. Rounding afterwards returns the real result.
-
- # The following steps will transform 123.456 (in $x) into 123456 (in $y1)
- my $y1 = $MBI->_copy($x->{_m});
-
- my $length = $MBI->_len($y1);
-
- # Now calculate how many digits the result of sqrt(y1) would have
- my $digits = int($length / 2);
-
- # But we need at least $scale digits, so calculate how many are missing
- my $shift = $scale - $digits;
-
- # This happens if the input had enough digits
- # (we take care of integer guesses above)
- $shift = 0 if $shift < 0;
-
- # Multiply in steps of 100, by shifting left two times the "missing" digits
- my $s2 = $shift * 2;
-
- # We now make sure that $y1 has the same odd or even number of digits than
- # $x had. So when _e of $x is odd, we must shift $y1 by one digit left,
- # because we always must multiply by steps of 100 (sqrt(100) is 10) and not
- # steps of 10. The length of $x does not count, since an even or odd number
- # of digits before the dot is not changed by adding an even number of digits
- # after the dot (the result is still odd or even digits long).
- $s2++ if $MBI->_is_odd($x->{_e});
-
- $MBI->_lsft( $y1, $MBI->_new($s2), 10);
-
- # now take the square root and truncate to integer
- $y1 = $MBI->_sqrt($y1);
-
- # By "shifting" $y1 right (by creating a negative _e) we calculate the final
- # result, which is than later rounded to the desired scale.
-
- # calculate how many zeros $x had after the '.' (or before it, depending
- # on sign of $dat, the result should have half as many:
- my $dat = $MBI->_num($x->{_e});
- $dat = -$dat if $x->{_es} eq '-';
- $dat += $length;
-
- if ($dat > 0)
- {
- # no zeros after the dot (e.g. 1.23, 0.49 etc)
- # preserve half as many digits before the dot than the input had
- # (but round this "up")
- $dat = int(($dat+1)/2);
- }
- else
- {
- $dat = int(($dat)/2);
- }
- $dat -= $MBI->_len($y1);
- if ($dat < 0)
- {
- $dat = abs($dat);
- $x->{_e} = $MBI->_new( $dat );
- $x->{_es} = '-';
- }
- else
- {
- $x->{_e} = $MBI->_new( $dat );
- $x->{_es} = '+';
+ # set up parameters
+ my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- $x->{_m} = $y1;
- $x->bnorm();
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
- }
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
+ return $x if $x->modify('bpow');
-sub bfac
- {
- # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
- # compute factorial number, modifies first argument
+ return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+ return $x if $x->{sign} =~ /^[+-]inf$/;
- # set up parameters
- my ($self,$x,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- ($self,$x,@r) = objectify(1,@_) if !ref($x);
+ # cache the result of is_zero
+ my $y_is_zero = $y->is_zero();
+ return $x->bone() if $y_is_zero;
+ return $x if $x->is_one() || $y->is_one();
- # inf => inf
- return $x if $x->modify('bfac') || $x->{sign} eq '+inf';
+ my $x_is_zero = $x->is_zero();
+ return $x->_pow($y, $a, $p, $r) if !$x_is_zero && !$y->is_int(); # non-integer power
- return $x->bnan()
- if (($x->{sign} ne '+') || # inf, NaN, <0 etc => NaN
- ($x->{_es} ne '+')); # digits after dot?
+ my $y1 = $y->as_number()->{value}; # make MBI part
- # use BigInt's bfac() for faster calc
- if (! $MBI->_is_zero($x->{_e}))
- {
- $MBI->_lsft($x->{_m}, $x->{_e},10); # change 12e1 to 120e0
- $x->{_e} = $MBI->_zero(); # normalize
- $x->{_es} = '+';
+ # if ($x == -1)
+ if ($x->{sign} eq '-' && $MBI->_is_one($x->{_m}) && $MBI->_is_zero($x->{_e})) {
+ # if $x == -1 and odd/even y => +1/-1 because +-1 ^ (+-1) => +-1
+ return $MBI->_is_odd($y1) ? $x : $x->babs(1);
+ }
+ if ($x_is_zero) {
+ return $x if $y->{sign} eq '+'; # 0**y => 0 (if not y <= 0)
+ # 0 ** -y => 1 / (0 ** y) => 1 / 0! (1 / 0 => +inf)
+ return $x->binf();
}
- $MBI->_fac($x->{_m}); # calculate factorial
- $x->bnorm()->round(@r); # norm again and round result
- }
-
-sub _pow
- {
- # Calculate a power where $y is a non-integer, like 2 ** 0.3
- my ($x,$y,@r) = @_;
- my $self = ref($x);
-
- # if $y == 0.5, it is sqrt($x)
- $HALF = $self->new($HALF) unless ref($HALF);
- return $x->bsqrt(@r,$y) if $y->bcmp($HALF) == 0;
-
- # Using:
- # a ** x == e ** (x * ln a)
-
- # u = y * ln x
- # _ _
- # Taylor: | u u^2 u^3 |
- # x ** y = 1 + | --- + --- + ----- + ... |
- # |_ 1 1*2 1*2*3 _|
-
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters(@r);
-
- return $x if $x->is_nan(); # error in _find_round_parameters?
-
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
-
- my ($limit,$v,$u,$below,$factor,$next,$over);
-
- $u = $x->copy()->blog(undef,$scale)->bmul($y);
- my $do_invert = ($u->{sign} eq '-');
- $u->bneg() if $do_invert;
- $v = $self->bone(); # 1
- $factor = $self->new(2); # 2
- $x->bone(); # first term: 1
-
- $below = $v->copy();
- $over = $u->copy();
-
- $limit = $self->new("1E-". ($scale-1));
- #my $steps = 0;
- while (3 < 5)
- {
- # we calculate the next term, and add it to the last
- # when the next term is below our limit, it won't affect the outcome
- # anymore, so we stop:
- $next = $over->copy()->bdiv($below,$scale);
- last if $next->bacmp($limit) <= 0;
- $x->badd($next);
- # calculate things for the next term
- $over *= $u; $below *= $factor; $factor->binc();
- last if $x->{sign} !~ /^[-+]$/;
+ my $new_sign = '+';
+ $new_sign = $MBI->_is_odd($y1) ? '-' : '+' if $x->{sign} ne '+';
- #$steps++;
- }
+ # calculate $x->{_m} ** $y and $x->{_e} * $y separately (faster)
+ $x->{_m} = $MBI->_pow($x->{_m}, $y1);
+ $x->{_e} = $MBI->_mul ($x->{_e}, $y1);
- if ($do_invert)
- {
- my $x_copy = $x->copy;
- $x->bone->bdiv($x_copy, $scale);
- }
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
- }
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
-
-sub bpow
- {
- # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
- # compute power of two numbers, second arg is used as integer
- # modifies first argument
-
- # set up parameters
- my ($self,$x,$y,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$a,$p,$r) = objectify(2,@_);
+ $x->{sign} = $new_sign;
+ $x->bnorm();
+ if ($y->{sign} eq '-') {
+ # modify $x in place!
+ my $z = $x->copy(); $x->bone();
+ return scalar $x->bdiv($z, $a, $p, $r); # round in one go (might ignore y's A!)
}
+ $x->round($a, $p, $r, $y);
+}
- return $x if $x->modify('bpow');
-
- return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
- return $x if $x->{sign} =~ /^[+-]inf$/;
-
- # cache the result of is_zero
- my $y_is_zero = $y->is_zero();
- return $x->bone() if $y_is_zero;
- return $x if $x->is_one() || $y->is_one();
+sub blog {
+ # Return the logarithm of the operand. If a second operand is defined, that
+ # value is used as the base, otherwise the base is assumed to be Euler's
+ # constant.
- my $x_is_zero = $x->is_zero();
- return $x->_pow($y,$a,$p,$r) if !$x_is_zero && !$y->is_int(); # non-integer power
+ my ($class, $x, $base, $a, $p, $r);
- my $y1 = $y->as_number()->{value}; # make MBI part
+ # Don't objectify the base, since an undefined base, as in $x->blog() or
+ # $x->blog(undef) signals that the base is Euler's number.
- # if ($x == -1)
- if ($x->{sign} eq '-' && $MBI->_is_one($x->{_m}) && $MBI->_is_zero($x->{_e}))
- {
- # if $x == -1 and odd/even y => +1/-1 because +-1 ^ (+-1) => +-1
- return $MBI->_is_odd($y1) ? $x : $x->babs(1);
- }
- if ($x_is_zero)
- {
- return $x if $y->{sign} eq '+'; # 0**y => 0 (if not y <= 0)
- # 0 ** -y => 1 / (0 ** y) => 1 / 0! (1 / 0 => +inf)
- return $x->binf();
+ if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+ # E.g., Math::BigFloat->blog(256, 2)
+ ($class, $x, $base, $a, $p, $r) =
+ defined $_[2] ? objectify(2, @_) : objectify(1, @_);
+ } else {
+ # E.g., Math::BigFloat::blog(256, 2) or $x->blog(2)
+ ($class, $x, $base, $a, $p, $r) =
+ defined $_[1] ? objectify(2, @_) : objectify(1, @_);
}
- my $new_sign = '+';
- $new_sign = $MBI->_is_odd($y1) ? '-' : '+' if $x->{sign} ne '+';
+ return $x if $x->modify('blog');
- # calculate $x->{_m} ** $y and $x->{_e} * $y separately (faster)
- $x->{_m} = $MBI->_pow( $x->{_m}, $y1);
- $x->{_e} = $MBI->_mul ($x->{_e}, $y1);
+ return $x -> bnan() if $x -> is_nan();
- $x->{sign} = $new_sign;
- $x->bnorm();
- if ($y->{sign} eq '-')
- {
- # modify $x in place!
- my $z = $x->copy(); $x->bone();
- return scalar $x->bdiv($z,$a,$p,$r); # round in one go (might ignore y's A!)
- }
- $x->round($a,$p,$r,$y);
- }
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r);
-sub bmodpow
- {
- # takes a very large number to a very large exponent in a given very
- # large modulus, quickly, thanks to binary exponentiation. Supports
- # negative exponents.
- my ($self,$num,$exp,$mod,@r) = objectify(3,@_);
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # P = undef
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
- return $num if $num->modify('bmodpow');
+ my $done = 0;
+ if (defined $base) {
+ $base = $class -> new($base) unless ref $base;
+ if ($base -> is_nan() || $base -> is_one()) {
+ $x -> bnan();
+ $done = 1;
+ } elsif ($base -> is_inf() || $base -> is_zero()) {
+ if ($x -> is_inf() || $x -> is_zero()) {
+ $x -> bnan();
+ } else {
+ $x -> bzero(@params);
+ }
+ $done = 1;
+ } elsif ($base -> is_negative()) { # -inf < base < 0
+ if ($x -> is_one()) { # x = 1
+ $x -> bzero(@params);
+ } elsif ($x == $base) {
+ $x -> bone('+', @params); # x = base
+ } else {
+ $x -> bnan(); # otherwise
+ }
+ $done = 1;
+ } elsif ($x == $base) {
+ $x -> bone('+', @params); # 0 < base && 0 < x < inf
+ $done = 1;
+ }
+ }
- # check modulus for valid values
- return $num->bnan() if ($mod->{sign} ne '+' # NaN, - , -inf, +inf
- || $mod->is_zero());
+ # We now know that the base is either undefined or positive and finite.
+
+ unless ($done) {
+ if ($x -> is_inf()) { # x = +/-inf
+ my $sign = defined $base && $base < 1 ? '-' : '+';
+ $x -> binf($sign);
+ $done = 1;
+ } elsif ($x -> is_neg()) { # -inf < x < 0
+ $x -> bnan();
+ $done = 1;
+ } elsif ($x -> is_one()) { # x = 1
+ $x -> bzero(@params);
+ $done = 1;
+ } elsif ($x -> is_zero()) { # x = 0
+ my $sign = defined $base && $base < 1 ? '+' : '-';
+ $x -> binf($sign);
+ $done = 1;
+ }
+ }
- # check exponent for valid values
- if ($exp->{sign} =~ /\w/)
- {
- # i.e., if it's NaN, +inf, or -inf...
- return $num->bnan();
+ if ($done) {
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ return $x;
}
- $num->bmodinv ($mod) if ($exp->{sign} eq '-');
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a}; delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
+
+ # upgrade $x if $x is not a Math::BigFloat (handle BigInt input)
+ # XXX TODO: rebless!
+ if (!$x->isa('Math::BigFloat')) {
+ $x = Math::BigFloat->new($x);
+ $class = ref($x);
+ }
+
+ $done = 0;
+
+ # If the base is defined and an integer, try to calculate integer result
+ # first. This is very fast, and in case the real result was found, we can
+ # stop right here.
+ if (defined $base && $base->is_int() && $x->is_int()) {
+ my $i = $MBI->_copy($x->{_m});
+ $i = $MBI->_lsft($i, $x->{_e}, 10) unless $MBI->_is_zero($x->{_e});
+ my $int = Math::BigInt->bzero();
+ $int->{value} = $i;
+ $int->blog($base->as_number());
+ # if ($exact)
+ if ($base->as_number()->bpow($int) == $x) {
+ # found result, return it
+ $x->{_m} = $int->{value};
+ $x->{_e} = $MBI->_zero();
+ $x->{_es} = '+';
+ $x->bnorm();
+ $done = 1;
+ }
+ }
- # check num for valid values (also NaN if there was no inverse but $exp < 0)
- return $num->bnan() if $num->{sign} !~ /^[+-]$/;
+ if ($done == 0) {
+ # base is undef, so base should be e (Euler's number), so first calculate the
+ # log to base e (using reduction by 10 (and probably 2)):
+ $class->_log_10($x, $scale);
- # $mod is positive, sign on $exp is ignored, result also positive
+ # and if a different base was requested, convert it
+ if (defined $base) {
+ $base = Math::BigFloat->new($base) unless $base->isa('Math::BigFloat');
+ # not ln, but some other base (don't modify $base)
+ $x->bdiv($base->copy()->blog(undef, $scale), $scale);
+ }
+ }
- # XXX TODO: speed it up when all three numbers are integers
- $num->bpow($exp)->bmod($mod);
- }
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
-###############################################################################
-# trigonometric functions
-
-# helper function for bpi() and batan2(), calculates arcus tanges (1/x)
-
-sub _atan_inv
- {
- # return a/b so that a/b approximates atan(1/x) to at least limit digits
- my ($self, $x, $limit) = @_;
-
- # Taylor: x^3 x^5 x^7 x^9
- # atan = x - --- + --- - --- + --- - ...
- # 3 5 7 9
-
- # 1 1 1 1
- # atan 1/x = - - ------- + ------- - ------- + ...
- # x x^3 * 3 x^5 * 5 x^7 * 7
-
- # 1 1 1 1
- # atan 1/x = - - --------- + ---------- - ----------- + ...
- # 5 3 * 125 5 * 3125 7 * 78125
-
- # Subtraction/addition of a rational:
-
- # 5 7 5*3 +- 7*4
- # - +- - = ----------
- # 4 3 4*3
-
- # Term: N N+1
- #
- # a 1 a * d * c +- b
- # ----- +- ------------------ = ----------------
- # b d * c b * d * c
-
- # since b1 = b0 * (d-2) * c
-
- # a 1 a * d +- b / c
- # ----- +- ------------------ = ----------------
- # b d * c b * d
-
- # and d = d + 2
- # and c = c * x * x
-
- # u = d * c
- # stop if length($u) > limit
- # a = a * u +- b
- # b = b * u
- # d = d + 2
- # c = c * x * x
- # sign = 1 - sign
-
- my $a = $MBI->_one();
- my $b = $MBI->_copy($x);
-
- my $x2 = $MBI->_mul( $MBI->_copy($x), $b); # x2 = x * x
- my $d = $MBI->_new( 3 ); # d = 3
- my $c = $MBI->_mul( $MBI->_copy($x), $x2); # c = x ^ 3
- my $two = $MBI->_new( 2 );
-
- # run the first step unconditionally
- my $u = $MBI->_mul( $MBI->_copy($d), $c);
- $a = $MBI->_mul($a, $u);
- $a = $MBI->_sub($a, $b);
- $b = $MBI->_mul($b, $u);
- $d = $MBI->_add($d, $two);
- $c = $MBI->_mul($c, $x2);
-
- # a is now a * (d-3) * c
- # b is now b * (d-2) * c
-
- # run the second step unconditionally
- $u = $MBI->_mul( $MBI->_copy($d), $c);
- $a = $MBI->_mul($a, $u);
- $a = $MBI->_add($a, $b);
- $b = $MBI->_mul($b, $u);
- $d = $MBI->_add($d, $two);
- $c = $MBI->_mul($c, $x2);
-
- # a is now a * (d-3) * (d-5) * c * c
- # b is now b * (d-2) * (d-4) * c * c
-
- # so we can remove c * c from both a and b to shorten the numbers involved:
- $a = $MBI->_div($a, $x2);
- $b = $MBI->_div($b, $x2);
- $a = $MBI->_div($a, $x2);
- $b = $MBI->_div($b, $x2);
-
-# my $step = 0;
- my $sign = 0; # 0 => -, 1 => +
- while (3 < 5)
- {
-# $step++;
-# if (($i++ % 100) == 0)
-# {
-# print "a=",$MBI->_str($a),"\n";
-# print "b=",$MBI->_str($b),"\n";
-# }
-# print "d=",$MBI->_str($d),"\n";
-# print "x2=",$MBI->_str($x2),"\n";
-# print "c=",$MBI->_str($c),"\n";
-
- my $u = $MBI->_mul( $MBI->_copy($d), $c);
- # use _alen() for libs like GMP where _len() would be O(N^2)
- last if $MBI->_alen($u) > $limit;
- my ($bc,$r) = $MBI->_div( $MBI->_copy($b), $c);
- if ($MBI->_is_zero($r))
- {
- # b / c is an integer, so we can remove c from all terms
- # this happens almost every time:
- $a = $MBI->_mul($a, $d);
- $a = $MBI->_sub($a, $bc) if $sign == 0;
- $a = $MBI->_add($a, $bc) if $sign == 1;
- $b = $MBI->_mul($b, $d);
- }
- else
- {
- # b / c is not an integer, so we keep c in the terms
- # this happens very rarely, for instance for x = 5, this happens only
- # at the following steps:
- # 1, 5, 14, 32, 72, 157, 340, ...
- $a = $MBI->_mul($a, $u);
- $a = $MBI->_sub($a, $b) if $sign == 0;
- $a = $MBI->_add($a, $b) if $sign == 1;
- $b = $MBI->_mul($b, $u);
- }
- $d = $MBI->_add($d, $two);
- $c = $MBI->_mul($c, $x2);
- $sign = 1 - $sign;
-
- }
-
-# print "Took $step steps for ", $MBI->_str($x),"\n";
-# print "a=",$MBI->_str($a),"\n"; print "b=",$MBI->_str($b),"\n";
- # return a/b so that a/b approximates atan(1/x)
- ($a,$b);
- }
+ $x;
+}
-sub bpi {
+sub bexp {
+ # Calculate e ** X (Euler's number to the power of X)
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # Called as Argument list
- # --------- -------------
- # Math::BigFloat->bpi() ("Math::BigFloat")
- # Math::BigFloat->bpi(10) ("Math::BigFloat", 10)
- # $x->bpi() ($x)
- # $x->bpi(10) ($x, 10)
- # Math::BigFloat::bpi() ()
- # Math::BigFloat::bpi(10) (10)
- #
- # In ambiguous cases, we favour the OO-style, so the following case
- #
- # $n = Math::BigFloat->new("10");
- # $x = Math::BigFloat->bpi($n);
- #
- # which gives an argument list with the single element $n, is resolved as
- #
- # $n->bpi();
+ return $x if $x->modify('bexp');
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+ return $x->binf() if $x->{sign} eq '+inf';
+ return $x->bzero() if $x->{sign} eq '-inf';
- my $accu; # accuracy (number of digits)
- my $prec; # precision
- my $rndm; # round mode
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r);
- # If bpi() is called as a function ...
- #
- # This cludge is necessary because we still support bpi() as a function. If
- # bpi() is called with either no argument or one argument, and that one
- # argument is either undefined or a scalar that looks like a number, then
- # we assume bpi() is called as a function.
+ # also takes care of the "error in _find_round_parameters?" case
+ return $x if $x->{sign} eq 'NaN';
- if (@_ == 0 &&
- (defined($self) && !ref($self) && $self =~ /^\s*[+-]?\d/i)
- ||
- !defined($self))
- {
- $accu = $self;
- $class = __PACKAGE__;
- $self = $class -> bzero(); # initialize
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # P = undef
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it's not enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- # ... or if bpi() is called as a method ...
+ return $x->bone(@params) if $x->is_zero();
- else {
- if ($selfref) { # bpi() called as instance method
- return $self if $self -> modify('bpi');
- } else { # bpi() called as class method
- $self = $class -> bzero(); # initialize
- }
- $accu = shift;
- $prec = shift;
- $rndm = shift;
+ if (!$x->isa('Math::BigFloat')) {
+ $x = Math::BigFloat->new($x);
+ $class = ref($x);
}
- my @r = ($accu, $prec, $rndm);
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
- # We need to limit the accuracy to protect against overflow.
- my $fallback = 0;
- my ($scale, @params);
- ($self, @params) = $self -> _find_round_parameters(@r);
+ my $x_org = $x->copy();
- # Error in _find_round_parameters?
- #
- # We can't return here, because that will fail if $self was a NaN when
- # bpi() was invoked, and we want to assign pi to $x. It is probably not a
- # good idea that _find_round_parameters() signals invalid round parameters
- # by silently returning a NaN. Fixme!
- #return $self if $self && $self->is_nan();
+ # We use the following Taylor series:
- # No rounding at all, so must use fallback.
- if (scalar @params == 0) {
- # Simulate old behaviour
- $params[0] = $self -> div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
+ # x x^2 x^3 x^4
+ # e = 1 + --- + --- + --- + --- ...
+ # 1! 2! 3! 4!
- # The accuracy, i.e., the number of digits. Pi has one digit before the
- # dot, so a precision of 4 digits is equivalent to an accuracy of 5 digits.
+ # The difference for each term is X and N, which would result in:
+ # 2 copy, 2 mul, 2 add, 1 inc, 1 div operations per term
- my $n = $params[0] || 1 - $params[1];
+ # But it is faster to compute exp(1) and then raising it to the
+ # given power, esp. if $x is really big and an integer because:
- if ($n < 1000) {
+ # * The numerator is always 1, making the computation faster
+ # * the series converges faster in the case of x == 1
+ # * We can also easily check when we have reached our limit: when the
+ # term to be added is smaller than "1E$scale", we can stop - f.i.
+ # scale == 5, and we have 1/40320, then we stop since 1/40320 < 1E-5.
+ # * we can compute the *exact* result by simulating bigrat math:
- # after 黃見利 (Hwang Chien-Lih) (1997)
- # pi/4 = 183 * atan(1/239) + 32 * atan(1/1023) – 68 * atan(1/5832)
- # + 12 * atan(1/110443) - 12 * atan(1/4841182) - 100 * atan(1/6826318)
+ # 1 1 gcd(3, 4) = 1 1*24 + 1*6 5
+ # - + - = ---------- = --
+ # 6 24 6*24 24
- # Use a few more digits in the intermediate computations.
+ # We do not compute the gcd() here, but simple do:
+ # 1 1 1*24 + 1*6 30
+ # - + - = --------- = --
+ # 6 24 6*24 144
- my $nextra = $n < 800 ? 4 : 5;
- $n += $nextra;
-
- my ($a, $b) = $class->_atan_inv($MBI->_new(239), $n);
- my ($c, $d) = $class->_atan_inv($MBI->_new(1023), $n);
- my ($e, $f) = $class->_atan_inv($MBI->_new(5832), $n);
- my ($g, $h) = $class->_atan_inv($MBI->_new(110443), $n);
- my ($i, $j) = $class->_atan_inv($MBI->_new(4841182), $n);
- my ($k, $l) = $class->_atan_inv($MBI->_new(6826318), $n);
-
- $MBI->_mul($a, $MBI->_new(732));
- $MBI->_mul($c, $MBI->_new(128));
- $MBI->_mul($e, $MBI->_new(272));
- $MBI->_mul($g, $MBI->_new(48));
- $MBI->_mul($i, $MBI->_new(48));
- $MBI->_mul($k, $MBI->_new(400));
-
- my $x = $class->bone(); $x->{_m} = $a; my $x_d = $class->bone(); $x_d->{_m} = $b;
- my $y = $class->bone(); $y->{_m} = $c; my $y_d = $class->bone(); $y_d->{_m} = $d;
- my $z = $class->bone(); $z->{_m} = $e; my $z_d = $class->bone(); $z_d->{_m} = $f;
- my $u = $class->bone(); $u->{_m} = $g; my $u_d = $class->bone(); $u_d->{_m} = $h;
- my $v = $class->bone(); $v->{_m} = $i; my $v_d = $class->bone(); $v_d->{_m} = $j;
- my $w = $class->bone(); $w->{_m} = $k; my $w_d = $class->bone(); $w_d->{_m} = $l;
- $x->bdiv($x_d, $n);
- $y->bdiv($y_d, $n);
- $z->bdiv($z_d, $n);
- $u->bdiv($u_d, $n);
- $v->bdiv($v_d, $n);
- $w->bdiv($w_d, $n);
-
- delete $x->{_a}; delete $y->{_a}; delete $z->{_a};
- delete $u->{_a}; delete $v->{_a}; delete $w->{_a};
- $x->badd($y)->bsub($z)->badd($u)->bsub($v)->bsub($w);
-
- for my $key (qw/ sign _m _es _e _a _p /) {
- $self -> {$key} = $x -> {$key} if exists $x -> {$key};
- }
+ # In general:
+ # a c a*d + c*b and note that c is always 1 and d = (b*f)
+ # - + - = ---------
+ # b d b*d
- } else {
+ # This leads to: which can be reduced by b to:
+ # a 1 a*b*f + b a*f + 1
+ # - + - = --------- = -------
+ # b b*f b*b*f b*f
- # For large accuracy, the arctan formulas become very inefficient with
- # Math::BigFloat. Switch to Brent-Salamin (aka AGM or Gauss-Legendre).
+ # The first terms in the series are:
- # Use a few more digits in the intermediate computations.
- my $nextra = 8;
+ # 1 1 1 1 1 1 1 1 13700
+ # -- + -- + -- + -- + -- + --- + --- + ---- = -----
+ # 1 1 2 6 24 120 720 5040 5040
- $HALF = $class -> new($HALF) unless ref($HALF);
- my ($an, $bn, $tn, $pn) = ($class -> bone, $HALF -> copy -> bsqrt($n),
- $HALF -> copy -> bmul($HALF), $class -> bone);
- while ($pn < $n) {
- my $prev_an = $an -> copy;
- $an -> badd($bn) -> bmul($HALF, $n);
- $bn -> bmul($prev_an) -> bsqrt($n);
- $prev_an -> bsub($an);
- $tn -> bsub($pn * $prev_an * $prev_an);
- $pn -> badd($pn);
- }
- $an -> badd($bn);
- $an -> bmul($an, $n) -> bdiv(4 * $tn, $n);
+ # Note that we cannot simple reduce 13700/5040 to 685/252, but must keep A and B!
- for my $key (qw/ sign _m _es _e _a _p /) {
- $self -> {$key} = $an -> {$key} if exists $an -> {$key};;
+ if ($scale <= 75) {
+ # set $x directly from a cached string form
+ $x->{_m} = $MBI->_new(
+ "27182818284590452353602874713526624977572470936999595749669676277240766303535476");
+ $x->{sign} = '+';
+ $x->{_es} = '-';
+ $x->{_e} = $MBI->_new(79);
+ } else {
+ # compute A and B so that e = A / B.
+
+ # After some terms we end up with this, so we use it as a starting point:
+ my $A = $MBI->_new("90933395208605785401971970164779391644753259799242");
+ my $F = $MBI->_new(42);
+ my $step = 42;
+
+ # Compute how many steps we need to take to get $A and $B sufficiently big
+ my $steps = _len_to_steps($scale - 4);
+ # print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
+ while ($step++ <= $steps) {
+ # calculate $a * $f + 1
+ $A = $MBI->_mul($A, $F);
+ $A = $MBI->_inc($A);
+ # increment f
+ $F = $MBI->_inc($F);
}
- }
+ # compute $B as factorial of $steps (this is faster than doing it manually)
+ my $B = $MBI->_fac($MBI->_new($steps));
+
+ # print "A ", $MBI->_str($A), "\nB ", $MBI->_str($B), "\n";
+
+ # compute A/B with $scale digits in the result (truncate, not round)
+ $A = $MBI->_lsft($A, $MBI->_new($scale), 10);
+ $A = $MBI->_div($A, $B);
- $self -> round(@params);
+ $x->{_m} = $A;
+ $x->{sign} = '+';
+ $x->{_es} = '-';
+ $x->{_e} = $MBI->_new($scale);
+ }
+ # $x contains now an estimate of e, with some surplus digits, so we can round
+ if (!$x_org->is_one()) {
+ # Reduce size of fractional part, followup with integer power of two.
+ my $lshift = 0;
+ while ($lshift < 30 && $x_org->bacmp(2 << $lshift) > 0) {
+ $lshift++;
+ }
+ # Raise $x to the wanted power and round it.
+ if ($lshift == 0) {
+ $x->bpow($x_org, @params);
+ } else {
+ my($mul, $rescale) = (1 << $lshift, $scale+1+$lshift);
+ $x->bpow(scalar $x_org->bdiv($mul, $rescale), $rescale)->bpow($mul, @params);
+ }
+ } else {
+ # else just round the already computed result
+ delete $x->{_a};
+ delete $x->{_p};
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ }
if ($fallback) {
- delete $self->{_a};
- delete $self->{_p};
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
}
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
- return $self;
+ $x; # return modified $x
}
-sub bcos
- {
- # Calculate a cosinus of x.
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+sub bnok {
+ # Calculate n over k (binomial coefficient or "choose" function) as integer.
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # Taylor: x^2 x^4 x^6 x^8
- # cos = 1 - --- + --- - --- + --- ...
- # 2! 4! 6! 8!
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters(@r);
-
- # constant object or error in _find_round_parameters?
- return $x if $x->modify('bcos') || $x->is_nan();
+ return $x if $x->modify('bnok');
- return $x->bone(@r) if $x->is_zero();
+ return $x->bnan() if $x->is_nan() || $y->is_nan();
+ return $x->binf() if $x->is_inf();
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
-
- my $last = 0;
- my $over = $x * $x; # X ^ 2
- my $x2 = $over->copy(); # X ^ 2; difference between terms
- my $sign = 1; # start with -=
- my $below = $self->new(2); my $factorial = $self->new(3);
- $x->bone(); delete $x->{_a}; delete $x->{_p};
-
- my $limit = $self->new("1E-". ($scale-1));
- #my $steps = 0;
- while (3 < 5)
- {
- # we calculate the next term, and add it to the last
- # when the next term is below our limit, it won't affect the outcome
- # anymore, so we stop:
- my $next = $over->copy()->bdiv($below,$scale);
- last if $next->bacmp($limit) <= 0;
-
- if ($sign == 0)
- {
- $x->badd($next);
- }
- else
- {
- $x->bsub($next);
- }
- $sign = 1-$sign; # alternate
- # calculate things for the next term
- $over->bmul($x2); # $x*$x
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- }
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
- }
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
+ my $u = $x->as_int();
+ $u->bnok($y->as_int());
-sub bsin
- {
- # Calculate a sinus of x.
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ $x->{_m} = $u->{value};
+ $x->{_e} = $MBI->_zero();
+ $x->{_es} = '+';
+ $x->{sign} = '+';
+ $x->bnorm(@r);
+}
- # taylor: x^3 x^5 x^7 x^9
- # sin = x - --- + --- - --- + --- ...
- # 3! 5! 7! 9!
+sub bsin {
+ # Calculate a sinus of x.
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters(@r);
-
- # constant object or error in _find_round_parameters?
- return $x if $x->modify('bsin') || $x->is_nan();
+ # taylor: x^3 x^5 x^7 x^9
+ # sin = x - --- + --- - --- + --- ...
+ # 3! 5! 7! 9!
- return $x->bzero(@r) if $x->is_zero();
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters(@r);
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
-
- my $last = 0;
- my $over = $x * $x; # X ^ 2
- my $x2 = $over->copy(); # X ^ 2; difference between terms
- $over->bmul($x); # X ^ 3 as starting value
- my $sign = 1; # start with -=
- my $below = $self->new(6); my $factorial = $self->new(4);
- delete $x->{_a}; delete $x->{_p};
-
- my $limit = $self->new("1E-". ($scale-1));
- #my $steps = 0;
- while (3 < 5)
- {
- # we calculate the next term, and add it to the last
- # when the next term is below our limit, it won't affect the outcome
- # anymore, so we stop:
- my $next = $over->copy()->bdiv($below,$scale);
- last if $next->bacmp($limit) <= 0;
-
- if ($sign == 0)
- {
- $x->badd($next);
- }
- else
- {
- $x->bsub($next);
- }
- $sign = 1-$sign; # alternate
- # calculate things for the next term
- $over->bmul($x2); # $x*$x
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- }
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+ # constant object or error in _find_round_parameters?
+ return $x if $x->modify('bsin') || $x->is_nan();
+
+ return $x->bzero(@r) if $x->is_zero();
+
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # disable P
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
-sub batan2 {
- # $y -> batan2($x) returns the arcus tangens of $y / $x.
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
- # Set up parameters.
- my ($self, $y, $x, @r) = (ref($_[0]), @_);
+ my $last = 0;
+ my $over = $x * $x; # X ^ 2
+ my $x2 = $over->copy(); # X ^ 2; difference between terms
+ $over->bmul($x); # X ^ 3 as starting value
+ my $sign = 1; # start with -=
+ my $below = $class->new(6); my $factorial = $class->new(4);
+ delete $x->{_a};
+ delete $x->{_p};
- # Objectify is costly, so avoid it if we can.
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($self, $y, $x, @r) = objectify(2, @_);
+ my $limit = $class->new("1E-". ($scale-1));
+ #my $steps = 0;
+ while (3 < 5) {
+ # we calculate the next term, and add it to the last
+ # when the next term is below our limit, it won't affect the outcome
+ # anymore, so we stop:
+ my $next = $over->copy()->bdiv($below, $scale);
+ last if $next->bacmp($limit) <= 0;
+
+ if ($sign == 0) {
+ $x->badd($next);
+ } else {
+ $x->bsub($next);
+ }
+ $sign = 1-$sign; # alternate
+ # calculate things for the next term
+ $over->bmul($x2); # $x*$x
+ $below->bmul($factorial); $factorial->binc(); # n*(n+1)
+ $below->bmul($factorial); $factorial->binc(); # n*(n+1)
}
- # Quick exit if $y is read-only.
- return $y if $y -> modify('batan2');
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
+}
- # Handle all NaN cases.
- return $y -> bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+sub bcos {
+ # Calculate a cosinus of x.
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # We need to limit the accuracy to protect against overflow.
+ # Taylor: x^2 x^4 x^6 x^8
+ # cos = 1 - --- + --- - --- + --- ...
+ # 2! 4! 6! 8!
+
+ # we need to limit the accuracy to protect against overflow
my $fallback = 0;
my ($scale, @params);
- ($y, @params) = $y -> _find_round_parameters(@r);
+ ($x, @params) = $x->_find_round_parameters(@r);
- # Error in _find_round_parameters?
- return $y if $y->is_nan();
+ # constant object or error in _find_round_parameters?
+ return $x if $x->modify('bcos') || $x->is_nan();
- # No rounding at all, so must use fallback.
+ return $x->bone(@r) if $x->is_zero();
+
+ # no rounding at all, so must use fallback
if (scalar @params == 0) {
- # Simulate old behaviour
- $params[0] = $self -> div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $scale = $params[0] + 4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # disable P
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
} else {
- # The 4 below is empirical, and there might be cases where it is not
- # enough ...
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
$scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- if ($x -> is_inf("+")) { # x = inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.25"); # pi/4
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.25"); # -pi/4
- } else { # -inf < y < inf
- return $y -> bzero(@r); # 0
- }
- }
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a}; delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
- elsif ($x -> is_inf("-")) { # x = -inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.75"); # 3/4 pi
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.75"); # -3/4 pi
- } elsif ($y >= 0) { # y >= 0
- $y -> bpi($scale); # pi
- } else { # y < 0
- $y -> bpi($scale) -> bneg(); # -pi
- }
- }
+ my $last = 0;
+ my $over = $x * $x; # X ^ 2
+ my $x2 = $over->copy(); # X ^ 2; difference between terms
+ my $sign = 1; # start with -=
+ my $below = $class->new(2);
+ my $factorial = $class->new(3);
+ $x->bone();
+ delete $x->{_a};
+ delete $x->{_p};
- elsif ($x > 0) { # 0 < x < inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.5"); # pi/2
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
- } else { # -inf < y < inf
- $y -> bdiv($x, $scale) -> batan($scale); # atan(y/x)
- }
- }
+ my $limit = $class->new("1E-". ($scale-1));
+ #my $steps = 0;
+ while (3 < 5) {
+ # we calculate the next term, and add it to the last
+ # when the next term is below our limit, it won't affect the outcome
+ # anymore, so we stop:
+ my $next = $over->copy()->bdiv($below, $scale);
+ last if $next->bacmp($limit) <= 0;
- elsif ($x < 0) { # -inf < x < 0
- my $pi = $class -> bpi($scale);
- if ($y >= 0) { # y >= 0
- $y -> bdiv($x, $scale) -> batan() # atan(y/x) + pi
- -> badd($pi);
- } else { # y < 0
- $y -> bdiv($x, $scale) -> batan() # atan(y/x) - pi
- -> bsub($pi);
+ if ($sign == 0) {
+ $x->badd($next);
+ } else {
+ $x->bsub($next);
}
+ $sign = 1-$sign; # alternate
+ # calculate things for the next term
+ $over->bmul($x2); # $x*$x
+ $below->bmul($factorial); $factorial->binc(); # n*(n+1)
+ $below->bmul($factorial); $factorial->binc(); # n*(n+1)
}
- else { # x = 0
- if ($y > 0) { # y > 0
- $y -> bpi($scale) -> bmul("0.5"); # pi/2
- } elsif ($y < 0) { # y < 0
- $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
- } else { # y = 0
- return $y -> bzero(@r); # 0
- }
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
}
-
- $y -> round(@r);
-
if ($fallback) {
- delete $y->{_a};
- delete $y->{_p};
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
}
-
- return $y;
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
}
sub batan {
@@ -3342,8 +2729,8 @@ sub batan {
$self->{_e} = $pi->{_e};
$self->{_es} = $pi->{_es};
# -y => -PI/2, +y => PI/2
- $self->{sign} = substr($self->{sign}, 0, 1); # "+inf" => "+"
- $MBI->_div($self->{_m}, $MBI->_new(2));
+ $self->{sign} = substr($self->{sign}, 0, 1); # "+inf" => "+"
+ $self -> {_m} = $MBI->_div($self->{_m}, $MBI->_new(2));
return $self;
}
@@ -3352,7 +2739,7 @@ sub batan {
# no rounding at all, so must use fallback
if (scalar @params == 0) {
# simulate old behaviour
- $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[0] = $class->div_scale(); # and round to it as accuracy
$params[1] = undef; # disable P
$scale = $params[0]+4; # at least four more for proper round
$params[2] = $r[2]; # round mode by caller or undef
@@ -3372,7 +2759,7 @@ sub batan {
$self->{_e} = $pi->{_e};
$self->{_es} = $pi->{_es};
# leave the sign of $self alone (+1 => +PI/4, -1 => -PI/4)
- $MBI->_div($self->{_m}, $MBI->_new(4));
+ $self->{_m} = $MBI->_div($self->{_m}, $MBI->_new(4));
return $self;
}
@@ -3380,20 +2767,21 @@ sub batan {
# calculate PI/2 - atan(1/x):
my $one = $MBI->_new(1);
my $pi = undef;
- if ($self->bacmp($self->copy->bone) >= 0) {
+ if ($self->bacmp($self->copy()->bone) >= 0) {
# calculate PI/2
$pi = $class->bpi($scale - 3);
- $MBI->_div($pi->{_m}, $MBI->_new(2));
+ $pi->{_m} = $MBI->_div($pi->{_m}, $MBI->_new(2));
# calculate 1/$self:
my $self_copy = $self->copy();
# modify $self in place
- $self->bone(); $self->bdiv($self_copy, $scale);
+ $self->bone();
+ $self->bdiv($self_copy, $scale);
}
my $fmul = 1;
foreach my $k (0 .. int($scale / 20)) {
$fmul *= 2;
- $self->bdiv($self->copy->bmul($self)->binc->bsqrt($scale + 4)->binc, $scale + 4);
+ $self->bdiv($self->copy()->bmul($self)->binc->bsqrt($scale + 4)->binc, $scale + 4);
}
# When user set globals, they would interfere with our calculation, so
@@ -3403,18 +2791,20 @@ sub batan {
my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
# We also need to disable any set A or P on $self (_find_round_parameters
# took them already into account), since these would interfere, too
- delete $self->{_a}; delete $self->{_p};
+ delete $self->{_a};
+ delete $self->{_p};
# Need to disable $upgrade in BigInt, to avoid deep recursion.
local $Math::BigInt::upgrade = undef;
my $last = 0;
- my $over = $self * $self; # X ^ 2
- my $self2 = $over->copy(); # X ^ 2; difference between terms
- $over->bmul($self); # X ^ 3 as starting value
- my $sign = 1; # start with -=
+ my $over = $self * $self; # X ^ 2
+ my $self2 = $over->copy(); # X ^ 2; difference between terms
+ $over->bmul($self); # X ^ 3 as starting value
+ my $sign = 1; # start with -=
my $below = $class->new(3);
my $two = $class->new(2);
- delete $self->{_a}; delete $self->{_p};
+ delete $self->{_a};
+ delete $self->{_p};
my $limit = $class->new("1E-". ($scale-1));
#my $steps = 0;
@@ -3455,1191 +2845,2115 @@ sub batan {
}
if ($fallback) {
# Clear a/p after round, since user did not request it.
- delete $self->{_a}; delete $self->{_p};
+ delete $self->{_a};
+ delete $self->{_p};
}
# restore globals
- $$abr = $ab; $$pbr = $pb;
+ $$abr = $ab;
+ $$pbr = $pb;
$self;
}
-###############################################################################
-# rounding functions
-
-sub bfround
- {
- # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
- # $n == 0 means round to integer
- # expects and returns normalized numbers!
- my $x = shift; my $self = ref($x) || $x; $x = $self->new(shift) if !ref($x);
+sub batan2 {
+ # $y -> batan2($x) returns the arcus tangens of $y / $x.
- my ($scale,$mode) = $x->_scale_p(@_);
- return $x if !defined $scale || $x->modify('bfround'); # no-op
+ # Set up parameters.
+ my ($class, $y, $x, @r) = (ref($_[0]), @_);
- # never round a 0, +-inf, NaN
- if ($x->is_zero())
- {
- $x->{_p} = $scale if !defined $x->{_p} || $x->{_p} < $scale; # -3 < -2
- return $x;
+ # Objectify is costly, so avoid it if we can.
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $y, $x, @r) = objectify(2, @_);
}
- return $x if $x->{sign} !~ /^[+-]$/;
- # don't round if x already has lower precision
- return $x if (defined $x->{_p} && $x->{_p} < 0 && $scale < $x->{_p});
+ # Quick exit if $y is read-only.
+ return $y if $y -> modify('batan2');
+
+ # Handle all NaN cases.
+ return $y -> bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
- $x->{_p} = $scale; # remember round in any case
- delete $x->{_a}; # and clear A
- if ($scale < 0)
- {
- # round right from the '.'
-
- return $x if $x->{_es} eq '+'; # e >= 0 => nothing to round
-
- $scale = -$scale; # positive for simplicity
- my $len = $MBI->_len($x->{_m}); # length of mantissa
-
- # the following poses a restriction on _e, but if _e is bigger than a
- # scalar, you got other problems (memory etc) anyway
- my $dad = -(0+ ($x->{_es}.$MBI->_num($x->{_e}))); # digits after dot
- my $zad = 0; # zeros after dot
- $zad = $dad - $len if (-$dad < -$len); # for 0.00..00xxx style
-
- # print "scale $scale dad $dad zad $zad len $len\n";
- # number bsstr len zad dad
- # 0.123 123e-3 3 0 3
- # 0.0123 123e-4 3 1 4
- # 0.001 1e-3 1 2 3
- # 1.23 123e-2 3 0 2
- # 1.2345 12345e-4 5 0 4
-
- # do not round after/right of the $dad
- return $x if $scale > $dad; # 0.123, scale >= 3 => exit
-
- # round to zero if rounding inside the $zad, but not for last zero like:
- # 0.0065, scale -2, round last '0' with following '65' (scale == zad case)
- return $x->bzero() if $scale < $zad;
- if ($scale == $zad) # for 0.006, scale -3 and trunc
- {
- $scale = -$len;
- }
- else
- {
- # adjust round-point to be inside mantissa
- if ($zad != 0)
- {
- $scale = $scale-$zad;
+ # We need to limit the accuracy to protect against overflow.
+ my $fallback = 0;
+ my ($scale, @params);
+ ($y, @params) = $y -> _find_round_parameters(@r);
+
+ # Error in _find_round_parameters?
+ return $y if $y->is_nan();
+
+ # No rounding at all, so must use fallback.
+ if (scalar @params == 0) {
+ # Simulate old behaviour
+ $params[0] = $class -> div_scale(); # and round to it as accuracy
+ $params[1] = undef; # disable P
+ $scale = $params[0] + 4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # The 4 below is empirical, and there might be cases where it is not
+ # enough ...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
+
+ if ($x -> is_inf("+")) { # x = inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y -> bpi($scale) -> bmul("0.25"); # pi/4
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y -> bpi($scale) -> bmul("-0.25"); # -pi/4
+ } else { # -inf < y < inf
+ return $y -> bzero(@r); # 0
}
- else
- {
- my $dbd = $len - $dad; $dbd = 0 if $dbd < 0; # digits before dot
- $scale = $dbd+$scale;
+ } elsif ($x -> is_inf("-")) { # x = -inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y -> bpi($scale) -> bmul("0.75"); # 3/4 pi
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y -> bpi($scale) -> bmul("-0.75"); # -3/4 pi
+ } elsif ($y >= 0) { # y >= 0
+ $y -> bpi($scale); # pi
+ } else { # y < 0
+ $y -> bpi($scale) -> bneg(); # -pi
+ }
+ } elsif ($x > 0) { # 0 < x < inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y -> bpi($scale) -> bmul("0.5"); # pi/2
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
+ } else { # -inf < y < inf
+ $y -> bdiv($x, $scale) -> batan($scale); # atan(y/x)
+ }
+ } elsif ($x < 0) { # -inf < x < 0
+ my $pi = $class -> bpi($scale);
+ if ($y >= 0) { # y >= 0
+ $y -> bdiv($x, $scale) -> batan() # atan(y/x) + pi
+ -> badd($pi);
+ } else { # y < 0
+ $y -> bdiv($x, $scale) -> batan() # atan(y/x) - pi
+ -> bsub($pi);
+ }
+ } else { # x = 0
+ if ($y > 0) { # y > 0
+ $y -> bpi($scale) -> bmul("0.5"); # pi/2
+ } elsif ($y < 0) { # y < 0
+ $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
+ } else { # y = 0
+ return $y -> bzero(@r); # 0
}
- }
}
- else
- {
- # round left from the '.'
-
- # 123 => 100 means length(123) = 3 - $scale (2) => 1
-
- my $dbt = $MBI->_len($x->{_m});
- # digits before dot
- my $dbd = $dbt + ($x->{_es} . $MBI->_num($x->{_e}));
- # should be the same, so treat it as this
- $scale = 1 if $scale == 0;
- # shortcut if already integer
- return $x if $scale == 1 && $dbt <= $dbd;
- # maximum digits before dot
- ++$dbd;
-
- if ($scale > $dbd)
- {
- # not enough digits before dot, so round to zero
- return $x->bzero;
- }
- elsif ( $scale == $dbd )
- {
- # maximum
- $scale = -$dbt;
- }
- else
- {
- $scale = $dbd - $scale;
- }
- }
- # pass sign to bround for rounding modes '+inf' and '-inf'
- my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
- $m->bround($scale,$mode);
- $x->{_m} = $m->{value}; # get our mantissa back
- $x->bnorm();
- }
-
-sub bround
- {
- # accuracy: preserve $N digits, and overwrite the rest with 0's
- my $x = shift; my $self = ref($x) || $x; $x = $self->new(shift) if !ref($x);
-
- if (($_[0] || 0) < 0)
- {
- require Carp; Carp::croak ('bround() needs positive accuracy');
+
+ $y -> round(@r);
+
+ if ($fallback) {
+ delete $y->{_a};
+ delete $y->{_p};
}
- my ($scale,$mode) = $x->_scale_a(@_);
- return $x if !defined $scale || $x->modify('bround'); # no-op
+ return $y;
+}
+##############################################################################
+
+sub bsqrt {
+ # calculate square root
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # scale is now either $x->{_a}, $accuracy, or the user parameter
- # test whether $x already has lower accuracy, do nothing in this case
- # but do round if the accuracy is the same, since a math operation might
- # want to round a number with A=5 to 5 digits afterwards again
- return $x if defined $x->{_a} && $x->{_a} < $scale;
+ return $x if $x->modify('bsqrt');
- # scale < 0 makes no sense
- # scale == 0 => keep all digits
- # never round a +-inf, NaN
- return $x if ($scale <= 0) || $x->{sign} !~ /^[+-]$/;
+ return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0
+ return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
+ return $x->round($a, $p, $r) if $x->is_zero() || $x->is_one();
- # 1: never round a 0
- # 2: if we should keep more digits than the mantissa has, do nothing
- if ($x->is_zero() || $MBI->_len($x->{_m}) <= $scale)
- {
- $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale;
- return $x;
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my (@params, $scale);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+
+ return $x if $x->is_nan(); # error in _find_round_parameters?
+
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
+
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
+
+ my $i = $MBI->_copy($x->{_m});
+ $i = $MBI->_lsft($i, $x->{_e}, 10) unless $MBI->_is_zero($x->{_e});
+ my $xas = Math::BigInt->bzero();
+ $xas->{value} = $i;
+
+ my $gs = $xas->copy()->bsqrt(); # some guess
+
+ if (($x->{_es} ne '-') # guess can't be accurate if there are
+ # digits after the dot
+ && ($xas->bacmp($gs * $gs) == 0)) # guess hit the nail on the head?
+ {
+ # exact result, copy result over to keep $x
+ $x->{_m} = $gs->{value};
+ $x->{_e} = $MBI->_zero();
+ $x->{_es} = '+';
+ $x->bnorm();
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # re-enable A and P, upgrade is taken care of by "local"
+ ${"$class\::accuracy"} = $ab;
+ ${"$class\::precision"} = $pb;
+ return $x;
}
- # pass sign to bround for '+inf' and '-inf' rounding modes
- my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
+ # sqrt(2) = 1.4 because sqrt(2*100) = 1.4*10; so we can increase the accuracy
+ # of the result by multiplying the input by 100 and then divide the integer
+ # result of sqrt(input) by 10. Rounding afterwards returns the real result.
- $m->bround($scale,$mode); # round mantissa
- $x->{_m} = $m->{value}; # get our mantissa back
- $x->{_a} = $scale; # remember rounding
- delete $x->{_p}; # and clear P
- $x->bnorm(); # del trailing zeros gen. by bround()
- }
+ # The following steps will transform 123.456 (in $x) into 123456 (in $y1)
+ my $y1 = $MBI->_copy($x->{_m});
-sub bfloor
- {
- # round towards minus infinity
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ my $length = $MBI->_len($y1);
- return $x if $x->modify('bfloor');
-
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+ # Now calculate how many digits the result of sqrt(y1) would have
+ my $digits = int($length / 2);
- # if $x has digits after dot
- if ($x->{_es} eq '-')
- {
- $x->{_m} = $MBI->_rsft($x->{_m},$x->{_e},10); # cut off digits after dot
- $x->{_e} = $MBI->_zero(); # trunc/norm
- $x->{_es} = '+'; # abs e
- $MBI->_inc($x->{_m}) if $x->{sign} eq '-'; # increment if negative
- }
- $x->round($a,$p,$r);
- }
+ # But we need at least $scale digits, so calculate how many are missing
+ my $shift = $scale - $digits;
-sub bceil
- {
- # round towards plus infinity
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ # This happens if the input had enough digits
+ # (we take care of integer guesses above)
+ $shift = 0 if $shift < 0;
- return $x if $x->modify('bceil');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+ # Multiply in steps of 100, by shifting left two times the "missing" digits
+ my $s2 = $shift * 2;
- # if $x has digits after dot
- if ($x->{_es} eq '-')
- {
- $x->{_m} = $MBI->_rsft($x->{_m},$x->{_e},10); # cut off digits after dot
- $x->{_e} = $MBI->_zero(); # trunc/norm
- $x->{_es} = '+'; # abs e
- if ($x->{sign} eq '+') {
- $MBI->_inc($x->{_m}); # increment if positive
+ # We now make sure that $y1 has the same odd or even number of digits than
+ # $x had. So when _e of $x is odd, we must shift $y1 by one digit left,
+ # because we always must multiply by steps of 100 (sqrt(100) is 10) and not
+ # steps of 10. The length of $x does not count, since an even or odd number
+ # of digits before the dot is not changed by adding an even number of digits
+ # after the dot (the result is still odd or even digits long).
+ $s2++ if $MBI->_is_odd($x->{_e});
+
+ $y1 = $MBI->_lsft($y1, $MBI->_new($s2), 10);
+
+ # now take the square root and truncate to integer
+ $y1 = $MBI->_sqrt($y1);
+
+ # By "shifting" $y1 right (by creating a negative _e) we calculate the final
+ # result, which is than later rounded to the desired scale.
+
+ # calculate how many zeros $x had after the '.' (or before it, depending
+ # on sign of $dat, the result should have half as many:
+ my $dat = $MBI->_num($x->{_e});
+ $dat = -$dat if $x->{_es} eq '-';
+ $dat += $length;
+
+ if ($dat > 0) {
+ # no zeros after the dot (e.g. 1.23, 0.49 etc)
+ # preserve half as many digits before the dot than the input had
+ # (but round this "up")
+ $dat = int(($dat+1)/2);
} else {
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # avoid -0
+ $dat = int(($dat)/2);
}
+ $dat -= $MBI->_len($y1);
+ if ($dat < 0) {
+ $dat = abs($dat);
+ $x->{_e} = $MBI->_new($dat);
+ $x->{_es} = '-';
+ } else {
+ $x->{_e} = $MBI->_new($dat);
+ $x->{_es} = '+';
}
- $x->round($a,$p,$r);
- }
+ $x->{_m} = $y1;
+ $x->bnorm();
-sub bint
- {
- # round towards zero
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
+}
- return $x if $x->modify('bint');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+sub broot {
+ # calculate $y'th root of $x
- # if $x has digits after the decimal point
- if ($x->{_es} eq '-')
- {
- $x->{_m} = $MBI->_rsft($x->{_m},$x->{_e},10); # cut off digits after dot
- $x->{_e} = $MBI->_zero(); # truncate/normalize
- $x->{_es} = '+'; # abs e
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # avoid -0
- }
- $x->round($a,$p,$r);
- }
-
-sub brsft
- {
- # shift right by $y (divide by power of $n)
-
- # set up parameters
- my ($self,$x,$y,$n,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$n,$a,$p,$r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- return $x if $x->modify('brsft');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+ return $x if $x->modify('broot');
- $n = 2 if !defined $n; $n = $self->new($n);
+ # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
+ return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
+ $y->{sign} !~ /^\+$/;
- # negative amount?
- return $x->blsft($y->copy()->babs(),$n) if $y->{sign} =~ /^-/;
+ return $x if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
- # the following call to bdiv() will return either quo or (quo,remainder):
- $x->bdiv($n->bpow($y),$a,$p,$r,$y);
- }
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my (@params, $scale);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r);
-sub blsft
- {
- # shift left by $y (multiply by power of $n)
-
- # set up parameters
- my ($self,$x,$y,$n,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$n,$a,$p,$r) = objectify(2,@_);
+ return $x if $x->is_nan(); # error in _find_round_parameters?
+
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- return $x if $x->modify('blsft');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
+
+ # remember sign and make $x positive, since -4 ** (1/2) => -2
+ my $sign = 0;
+ $sign = 1 if $x->{sign} eq '-';
+ $x->{sign} = '+';
- $n = 2 if !defined $n; $n = $self->new($n);
+ my $is_two = 0;
+ if ($y->isa('Math::BigFloat')) {
+ $is_two = ($y->{sign} eq '+' && $MBI->_is_two($y->{_m}) && $MBI->_is_zero($y->{_e}));
+ } else {
+ $is_two = ($y == 2);
+ }
+
+ # normal square root if $y == 2:
+ if ($is_two) {
+ $x->bsqrt($scale+4);
+ } elsif ($y->is_one('-')) {
+ # $x ** -1 => 1/$x
+ my $u = $class->bone()->bdiv($x, $scale);
+ # copy private parts over
+ $x->{_m} = $u->{_m};
+ $x->{_e} = $u->{_e};
+ $x->{_es} = $u->{_es};
+ } else {
+ # calculate the broot() as integer result first, and if it fits, return
+ # it rightaway (but only if $x and $y are integer):
+
+ my $done = 0; # not yet
+ if ($y->is_int() && $x->is_int()) {
+ my $i = $MBI->_copy($x->{_m});
+ $i = $MBI->_lsft($i, $x->{_e}, 10) unless $MBI->_is_zero($x->{_e});
+ my $int = Math::BigInt->bzero();
+ $int->{value} = $i;
+ $int->broot($y->as_number());
+ # if ($exact)
+ if ($int->copy()->bpow($y) == $x) {
+ # found result, return it
+ $x->{_m} = $int->{value};
+ $x->{_e} = $MBI->_zero();
+ $x->{_es} = '+';
+ $x->bnorm();
+ $done = 1;
+ }
+ }
+ if ($done == 0) {
+ my $u = $class->bone()->bdiv($y, $scale+4);
+ delete $u->{_a}; delete $u->{_p}; # otherwise it conflicts
+ $x->bpow($u, $scale+4); # el cheapo
+ }
+ }
+ $x->bneg() if $sign == 1;
- # negative amount?
- return $x->brsft($y->copy()->babs(),$n) if $y->{sign} =~ /^-/;
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
+}
- $x->bmul($n->bpow($y),$a,$p,$r,$y);
- }
+sub bfac {
+ # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
+ # compute factorial number, modifies first argument
-###############################################################################
+ # set up parameters
+ my ($class, $x, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ ($class, $x, @r) = objectify(1, @_) if !ref($x);
-sub DESTROY
- {
- # going through AUTOLOAD for every DESTROY is costly, avoid it by empty sub
- }
-
-sub AUTOLOAD
- {
- # make fxxx and bxxx both work by selectively mapping fxxx() to MBF::bxxx()
- # or falling back to MBI::bxxx()
- my $name = $AUTOLOAD;
-
- $name =~ s/(.*):://; # split package
- my $c = $1 || $class;
- no strict 'refs';
- $c->import() if $IMPORT == 0;
- if (!_method_alias($name))
- {
- if (!defined $name)
- {
- # delayed load of Carp and avoid recursion
- require Carp;
- Carp::croak ("$c: Can't call a method without name");
- }
- if (!_method_hand_up($name))
- {
- # delayed load of Carp and avoid recursion
- require Carp;
- Carp::croak ("Can't call $c\-\>$name, not a valid method");
- }
- # try one level up, but subst. bxxx() for fxxx() since MBI only got bxxx()
- $name =~ s/^f/b/;
- return &{"Math::BigInt"."::$name"}(@_);
- }
- my $bname = $name; $bname =~ s/^f/b/;
- $c .= "::$name";
- *{$c} = \&{$bname};
- &{$c}; # uses @_
- }
-
-sub exponent
- {
- # return a copy of the exponent
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
-
- if ($x->{sign} !~ /^[+-]$/)
- {
- my $s = $x->{sign}; $s =~ s/^[+-]//;
- return Math::BigInt->new($s); # -inf, +inf => +inf
- }
- Math::BigInt->new( $x->{_es} . $MBI->_str($x->{_e}));
- }
-
-sub mantissa
- {
- # return a copy of the mantissa
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
-
- if ($x->{sign} !~ /^[+-]$/)
- {
- my $s = $x->{sign}; $s =~ s/^[+]//;
- return Math::BigInt->new($s); # -inf, +inf => +inf
+ # inf => inf
+ return $x if $x->modify('bfac') || $x->{sign} eq '+inf';
+
+ return $x->bnan()
+ if (($x->{sign} ne '+') || # inf, NaN, <0 etc => NaN
+ ($x->{_es} ne '+')); # digits after dot?
+
+ if (! $MBI->_is_zero($x->{_e})) {
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # change 12e1 to 120e0
+ $x->{_e} = $MBI->_zero(); # normalize
+ $x->{_es} = '+';
}
- my $m = Math::BigInt->new( $MBI->_str($x->{_m}));
- $m->bneg() if $x->{sign} eq '-';
+ $x->{_m} = $MBI->_fac($x->{_m}); # calculate factorial
+ $x->bnorm()->round(@r); # norm again and round result
+}
- $m;
- }
+sub bdfac {
+ # compute double factorial
-sub parts
- {
- # return a copy of both the exponent and the mantissa
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+ # set up parameters
+ my ($class, $x, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ ($class, $x, @r) = objectify(1, @_) if !ref($x);
- if ($x->{sign} !~ /^[+-]$/)
- {
- my $s = $x->{sign}; $s =~ s/^[+]//; my $se = $s; $se =~ s/^[-]//;
- return ($self->new($s),$self->new($se)); # +inf => inf and -inf,+inf => inf
+ # inf => inf
+ return $x if $x->modify('bfac') || $x->{sign} eq '+inf';
+
+ return $x->bnan()
+ if (($x->{sign} ne '+') || # inf, NaN, <0 etc => NaN
+ ($x->{_es} ne '+')); # digits after dot?
+
+ Carp::croak("bdfac() requires a newer version of the $MBI library.")
+ unless $MBI->can('_dfac');
+
+ if (! $MBI->_is_zero($x->{_e})) {
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # change 12e1 to 120e0
+ $x->{_e} = $MBI->_zero(); # normalize
+ $x->{_es} = '+';
}
- my $m = Math::BigInt->bzero();
- $m->{value} = $MBI->_copy($x->{_m});
- $m->bneg() if $x->{sign} eq '-';
- ($m, Math::BigInt->new( $x->{_es} . $MBI->_num($x->{_e}) ));
- }
+ $x->{_m} = $MBI->_dfac($x->{_m}); # calculate factorial
+ $x->bnorm()->round(@r); # norm again and round result
+}
-##############################################################################
-# private stuff (internal use only)
-
-sub import
- {
- my $self = shift;
- my $l = scalar @_;
- my $lib = ''; my @a;
- my $lib_kind = 'try';
- $IMPORT=1;
- for ( my $i = 0; $i < $l ; $i++)
- {
- if ( $_[$i] eq ':constant' )
- {
- # This causes overlord er load to step in. 'binary' and 'integer'
- # are handled by BigInt.
- overload::constant float => sub { $self->new(shift); };
- }
- elsif ($_[$i] eq 'upgrade')
- {
- # this causes upgrading
- $upgrade = $_[$i+1]; # or undef to disable
- $i++;
- }
- elsif ($_[$i] eq 'downgrade')
- {
- # this causes downgrading
- $downgrade = $_[$i+1]; # or undef to disable
- $i++;
- }
- elsif ($_[$i] =~ /^(lib|try|only)\z/)
- {
- # alternative library
- $lib = $_[$i+1] || ''; # default Calc
- $lib_kind = $1; # lib, try or only
- $i++;
- }
- elsif ($_[$i] eq 'with')
- {
- # alternative class for our private parts()
- # XXX: no longer supported
- # $MBI = $_[$i+1] || 'Math::BigInt';
- $i++;
- }
- else
- {
- push @a, $_[$i];
- }
- }
-
- $lib =~ tr/a-zA-Z0-9,://cd; # restrict to sane characters
- # let use Math::BigInt lib => 'GMP'; use Math::BigFloat; still work
- my $mbilib = eval { Math::BigInt->config()->{lib} };
- if ((defined $mbilib) && ($MBI eq 'Math::BigInt::Calc'))
- {
- # MBI already loaded
- Math::BigInt->import( $lib_kind, "$lib,$mbilib", 'objectify');
+sub blsft {
+ # shift left by $y (multiply by $b ** $y)
+
+ # set up parameters
+ my ($class, $x, $y, $b, $a, $p, $r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $b, $a, $p, $r) = objectify(2, @_);
}
- else
- {
- # MBI not loaded, or with ne "Math::BigInt::Calc"
- $lib .= ",$mbilib" if defined $mbilib;
- $lib =~ s/^,//; # don't leave empty
-
- # replacement library can handle lib statement, but also could ignore it
-
- # Perl < 5.6.0 dies with "out of memory!" when eval() and ':constant' is
- # used in the same script, or eval inside import(). So we require MBI:
- require Math::BigInt;
- Math::BigInt->import( $lib_kind => $lib, 'objectify' );
- }
- if ($@)
- {
- require Carp; Carp::croak ("Couldn't load $lib: $! $@");
+
+ return $x if $x -> modify('blsft');
+ return $x if $x -> {sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+ $b = 2 if !defined $b;
+ $b = $class -> new($b) unless ref($b) && $b -> isa($class);
+
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+
+ # shift by a negative amount?
+ return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
+
+ $x -> bmul($b -> bpow($y), $a, $p, $r, $y);
+}
+
+sub brsft {
+ # shift right by $y (divide $b ** $y)
+
+ # set up parameters
+ my ($class, $x, $y, $b, $a, $p, $r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $b, $a, $p, $r) = objectify(2, @_);
}
- # find out which one was actually loaded
- $MBI = Math::BigInt->config()->{lib};
- # register us with MBI to get notified of future lib changes
- Math::BigInt::_register_callback( $self, sub { $MBI = $_[0]; } );
+ return $x if $x -> modify('brsft');
+ return $x if $x -> {sign} !~ /^[+-]$/; # nan, +inf, -inf
- $self->export_to_level(1,$self,@a); # export wanted functions
- }
+ $b = 2 if !defined $b;
+ $b = $class -> new($b) unless ref($b) && $b -> isa($class);
-sub bnorm
- {
- # adjust m and e so that m is smallest possible
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
- return $x if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ # shift by a negative amount?
+ return $x -> blsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
- my $zeros = $MBI->_zeros($x->{_m}); # correct for trailing zeros
- if ($zeros != 0)
- {
- my $z = $MBI->_new($zeros);
- $x->{_m} = $MBI->_rsft ($x->{_m}, $z, 10);
- if ($x->{_es} eq '-')
- {
- if ($MBI->_acmp($x->{_e},$z) >= 0)
+ # the following call to bdiv() will return either quotient (scalar context)
+ # or quotient and remainder (list context).
+ $x -> bdiv($b -> bpow($y), $a, $p, $r, $y);
+}
+
+###############################################################################
+# Bitwise methods
+###############################################################################
+
+sub band {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'band() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for band()' if @_ < 1;
+
+ return if $x -> modify('band');
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> band($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_m} = $xtmp -> {_m};
+ $x -> {_es} = $xtmp -> {_es};
+ $x -> {_e} = $xtmp -> {_e};
+
+ return $x -> round(@r);
+}
+
+sub bior {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bior() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for bior()' if @_ < 1;
+
+ return if $x -> modify('bior');
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bior($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_m} = $xtmp -> {_m};
+ $x -> {_es} = $xtmp -> {_es};
+ $x -> {_e} = $xtmp -> {_e};
+
+ return $x -> round(@r);
+}
+
+sub bxor {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bxor() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for bxor()' if @_ < 1;
+
+ return if $x -> modify('bxor');
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bxor($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_m} = $xtmp -> {_m};
+ $x -> {_es} = $xtmp -> {_es};
+ $x -> {_e} = $xtmp -> {_e};
+
+ return $x -> round(@r);
+}
+
+sub bnot {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bnot() is an instance method, not a class method' unless $xref;
+
+ return if $x -> modify('bnot');
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bnot();
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_m} = $xtmp -> {_m};
+ $x -> {_es} = $xtmp -> {_es};
+ $x -> {_e} = $xtmp -> {_e};
+
+ return $x -> round(@r);
+}
+
+###############################################################################
+# Rounding methods
+###############################################################################
+
+sub bround {
+ # accuracy: preserve $N digits, and overwrite the rest with 0's
+ my $x = shift;
+ my $class = ref($x) || $x;
+ $x = $class->new(shift) if !ref($x);
+
+ if (($_[0] || 0) < 0) {
+ Carp::croak('bround() needs positive accuracy');
+ }
+
+ my ($scale, $mode) = $x->_scale_a(@_);
+ return $x if !defined $scale || $x->modify('bround'); # no-op
+
+ # scale is now either $x->{_a}, $accuracy, or the user parameter
+ # test whether $x already has lower accuracy, do nothing in this case
+ # but do round if the accuracy is the same, since a math operation might
+ # want to round a number with A=5 to 5 digits afterwards again
+ return $x if defined $x->{_a} && $x->{_a} < $scale;
+
+ # scale < 0 makes no sense
+ # scale == 0 => keep all digits
+ # never round a +-inf, NaN
+ return $x if ($scale <= 0) || $x->{sign} !~ /^[+-]$/;
+
+ # 1: never round a 0
+ # 2: if we should keep more digits than the mantissa has, do nothing
+ if ($x->is_zero() || $MBI->_len($x->{_m}) <= $scale) {
+ $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale;
+ return $x;
+ }
+
+ # pass sign to bround for '+inf' and '-inf' rounding modes
+ my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
+
+ $m->bround($scale, $mode); # round mantissa
+ $x->{_m} = $m->{value}; # get our mantissa back
+ $x->{_a} = $scale; # remember rounding
+ delete $x->{_p}; # and clear P
+ $x->bnorm(); # del trailing zeros gen. by bround()
+}
+
+sub bfround {
+ # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
+ # $n == 0 means round to integer
+ # expects and returns normalized numbers!
+ my $x = shift;
+ my $class = ref($x) || $x;
+ $x = $class->new(shift) if !ref($x);
+
+ my ($scale, $mode) = $x->_scale_p(@_);
+ return $x if !defined $scale || $x->modify('bfround'); # no-op
+
+ # never round a 0, +-inf, NaN
+ if ($x->is_zero()) {
+ $x->{_p} = $scale if !defined $x->{_p} || $x->{_p} < $scale; # -3 < -2
+ return $x;
+ }
+ return $x if $x->{sign} !~ /^[+-]$/;
+
+ # don't round if x already has lower precision
+ return $x if (defined $x->{_p} && $x->{_p} < 0 && $scale < $x->{_p});
+
+ $x->{_p} = $scale; # remember round in any case
+ delete $x->{_a}; # and clear A
+ if ($scale < 0) {
+ # round right from the '.'
+
+ return $x if $x->{_es} eq '+'; # e >= 0 => nothing to round
+
+ $scale = -$scale; # positive for simplicity
+ my $len = $MBI->_len($x->{_m}); # length of mantissa
+
+ # the following poses a restriction on _e, but if _e is bigger than a
+ # scalar, you got other problems (memory etc) anyway
+ my $dad = -(0+ ($x->{_es}.$MBI->_num($x->{_e}))); # digits after dot
+ my $zad = 0; # zeros after dot
+ $zad = $dad - $len if (-$dad < -$len); # for 0.00..00xxx style
+
+ # print "scale $scale dad $dad zad $zad len $len\n";
+ # number bsstr len zad dad
+ # 0.123 123e-3 3 0 3
+ # 0.0123 123e-4 3 1 4
+ # 0.001 1e-3 1 2 3
+ # 1.23 123e-2 3 0 2
+ # 1.2345 12345e-4 5 0 4
+
+ # do not round after/right of the $dad
+ return $x if $scale > $dad; # 0.123, scale >= 3 => exit
+
+ # round to zero if rounding inside the $zad, but not for last zero like:
+ # 0.0065, scale -2, round last '0' with following '65' (scale == zad case)
+ return $x->bzero() if $scale < $zad;
+ if ($scale == $zad) # for 0.006, scale -3 and trunc
{
- $x->{_e} = $MBI->_sub ($x->{_e}, $z);
- $x->{_es} = '+' if $MBI->_is_zero($x->{_e});
+ $scale = -$len;
+ } else {
+ # adjust round-point to be inside mantissa
+ if ($zad != 0) {
+ $scale = $scale-$zad;
+ } else {
+ my $dbd = $len - $dad;
+ $dbd = 0 if $dbd < 0; # digits before dot
+ $scale = $dbd+$scale;
+ }
}
- else
- {
- $x->{_e} = $MBI->_sub ( $MBI->_copy($z), $x->{_e});
- $x->{_es} = '+';
+ } else {
+ # round left from the '.'
+
+ # 123 => 100 means length(123) = 3 - $scale (2) => 1
+
+ my $dbt = $MBI->_len($x->{_m});
+ # digits before dot
+ my $dbd = $dbt + ($x->{_es} . $MBI->_num($x->{_e}));
+ # should be the same, so treat it as this
+ $scale = 1 if $scale == 0;
+ # shortcut if already integer
+ return $x if $scale == 1 && $dbt <= $dbd;
+ # maximum digits before dot
+ ++$dbd;
+
+ if ($scale > $dbd) {
+ # not enough digits before dot, so round to zero
+ return $x->bzero;
+ } elsif ($scale == $dbd) {
+ # maximum
+ $scale = -$dbt;
+ } else {
+ $scale = $dbd - $scale;
}
- }
- else
- {
- $x->{_e} = $MBI->_add ($x->{_e}, $z);
- }
}
- else
- {
- # $x can only be 0Ey if there are no trailing zeros ('0' has 0 trailing
- # zeros). So, for something like 0Ey, set y to 1, and -0 => +0
- $x->{sign} = '+', $x->{_es} = '+', $x->{_e} = $MBI->_one()
- if $MBI->_is_zero($x->{_m});
+ # pass sign to bround for rounding modes '+inf' and '-inf'
+ my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
+ $m->bround($scale, $mode);
+ $x->{_m} = $m->{value}; # get our mantissa back
+ $x->bnorm();
+}
+
+sub bfloor {
+ # round towards minus infinity
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('bfloor');
+ return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+ # if $x has digits after dot
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $MBI->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
+ $x->{_e} = $MBI->_zero(); # trunc/norm
+ $x->{_es} = '+'; # abs e
+ $x->{_m} = $MBI->_inc($x->{_m}) if $x->{sign} eq '-'; # increment if negative
}
+ $x->round($a, $p, $r);
+}
- $x; # MBI bnorm is no-op, so do not call it
- }
-
-##############################################################################
+sub bceil {
+ # round towards plus infinity
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('bceil');
+ return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
-sub as_hex
- {
- # return number as hexadecimal string (only for integers defined)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+ # if $x has digits after dot
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $MBI->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
+ $x->{_e} = $MBI->_zero(); # trunc/norm
+ $x->{_es} = '+'; # abs e
+ if ($x->{sign} eq '+') {
+ $x->{_m} = $MBI->_inc($x->{_m}); # increment if positive
+ } else {
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # avoid -0
+ }
+ }
+ $x->round($a, $p, $r);
+}
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
- return '0x0' if $x->is_zero();
+sub bint {
+ # round towards zero
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex!?
+ return $x if $x->modify('bint');
+ return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
- my $z = $MBI->_copy($x->{_m});
- if (! $MBI->_is_zero($x->{_e})) # > 0
- {
- $MBI->_lsft( $z, $x->{_e},10);
+ # if $x has digits after the decimal point
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $MBI->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
+ $x->{_e} = $MBI->_zero(); # truncate/normalize
+ $x->{_es} = '+'; # abs e
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # avoid -0
}
- $z = Math::BigInt->new( $x->{sign} . $MBI->_num($z));
- $z->as_hex();
- }
+ $x->round($a, $p, $r);
+}
+
+###############################################################################
+# Other mathematical methods
+###############################################################################
-sub as_bin
- {
- # return number as binary digit string (only for integers defined)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub bgcd {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # does not modify arguments, but returns new object
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
- return '0b0' if $x->is_zero();
+ unshift @_, __PACKAGE__
+ unless ref($_[0]) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i;
- return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex!?
+ my ($class, @args) = objectify(0, @_);
- my $z = $MBI->_copy($x->{_m});
- if (! $MBI->_is_zero($x->{_e})) # > 0
- {
- $MBI->_lsft( $z, $x->{_e},10);
+ my $x = shift @args;
+ $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
+ return $class->bnan() unless $x -> is_int();
+
+ while (@args) {
+ my $y = shift @args;
+ $y = $class->new($y) unless ref($y) && $y -> isa($class);
+ return $class->bnan() unless $y -> is_int();
+
+ # greatest common divisor
+ while (! $y->is_zero()) {
+ ($x, $y) = ($y->copy(), $x->copy()->bmod($y));
+ }
+
+ last if $x -> is_one();
}
- $z = Math::BigInt->new( $x->{sign} . $MBI->_num($z));
- $z->as_bin();
- }
+ return $x -> babs();
+}
-sub as_oct
- {
- # return number as octal digit string (only for integers defined)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub blcm {
+ # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
+ # does not modify arguments, but returns new object
+ # Least Common Multiple
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
- return '0' if $x->is_zero();
+ unshift @_, __PACKAGE__
+ unless ref($_[0]) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i;
- return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex!?
+ my ($class, @args) = objectify(0, @_);
- my $z = $MBI->_copy($x->{_m});
- if (! $MBI->_is_zero($x->{_e})) # > 0
- {
- $MBI->_lsft( $z, $x->{_e},10);
+ my $x = shift @args;
+ $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
+ return $class->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
+
+ while (@args) {
+ my $y = shift @args;
+ $y = $class -> new($y) unless ref($y) && $y -> isa($class);
+ return $x->bnan() unless $y -> is_int();
+ my $gcd = $x -> bgcd($y);
+ $x -> bdiv($gcd) -> bmul($y);
}
- $z = Math::BigInt->new( $x->{sign} . $MBI->_num($z));
- $z->as_oct();
- }
-sub as_number
- {
- # return copy as a bigint representation of this BigFloat number
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+ return $x -> babs();
+}
+
+###############################################################################
+# Object property methods
+###############################################################################
+
+sub length {
+ my $x = shift;
+ my $class = ref($x) || $x;
+ $x = $class->new(shift) unless ref($x);
- return $x if $x->modify('as_number');
+ return 1 if $MBI->_is_zero($x->{_m});
- if (!$x->isa('Math::BigFloat'))
- {
- # if the object can as_number(), use it
- return $x->as_number() if $x->can('as_number');
- # otherwise, get us a float and then a number
- $x = $x->can('as_float') ? $x->as_float() : $self->new(0+"$x");
+ my $len = $MBI->_len($x->{_m});
+ $len += $MBI->_num($x->{_e}) if $x->{_es} eq '+';
+ if (wantarray()) {
+ my $t = 0;
+ $t = $MBI->_num($x->{_e}) if $x->{_es} eq '-';
+ return ($len, $t);
}
+ $len;
+}
- return Math::BigInt->binf($x->sign()) if $x->is_inf();
- return Math::BigInt->bnan() if $x->is_nan();
+sub mantissa {
+ # return a copy of the mantissa
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my $z = $MBI->_copy($x->{_m});
- if ($x->{_es} eq '-') # < 0
- {
- $MBI->_rsft( $z, $x->{_e},10);
- }
- elsif (! $MBI->_is_zero($x->{_e})) # > 0
- {
- $MBI->_lsft( $z, $x->{_e},10);
+ if ($x->{sign} !~ /^[+-]$/) {
+ my $s = $x->{sign};
+ $s =~ s/^[+]//;
+ return Math::BigInt->new($s, undef, undef); # -inf, +inf => +inf
}
- $z = Math::BigInt->new( $x->{sign} . $MBI->_str($z));
- $z;
- }
+ my $m = Math::BigInt->new($MBI->_str($x->{_m}), undef, undef);
+ $m->bneg() if $x->{sign} eq '-';
-sub length
- {
- my $x = shift;
- my $class = ref($x) || $x;
- $x = $class->new(shift) unless ref($x);
+ $m;
+}
- return 1 if $MBI->_is_zero($x->{_m});
+sub exponent {
+ # return a copy of the exponent
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my $len = $MBI->_len($x->{_m});
- $len += $MBI->_num($x->{_e}) if $x->{_es} eq '+';
- if (wantarray())
- {
- my $t = 0;
- $t = $MBI->_num($x->{_e}) if $x->{_es} eq '-';
- return ($len, $t);
+ if ($x->{sign} !~ /^[+-]$/) {
+ my $s = $x->{sign};
+$s =~ s/^[+-]//;
+ return Math::BigInt->new($s, undef, undef); # -inf, +inf => +inf
}
- $len;
- }
+ Math::BigInt->new($x->{_es} . $MBI->_str($x->{_e}), undef, undef);
+}
-sub from_hex {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+sub parts {
+ # return a copy of both the exponent and the mantissa
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ my $s = $x->{sign};
+$s =~ s/^[+]//;
+my $se = $s;
+$se =~ s/^[-]//;
+ return ($class->new($s), $class->new($se)); # +inf => inf and -inf, +inf => inf
+ }
+ my $m = Math::BigInt->bzero();
+ $m->{value} = $MBI->_copy($x->{_m});
+ $m->bneg() if $x->{sign} eq '-';
+ ($m, Math::BigInt->new($x->{_es} . $MBI->_num($x->{_e})));
+}
- my $str = shift;
+sub sparts {
+ my $self = shift;
+ my $class = ref $self;
- # If called as a class method, initialize a new object.
+ Carp::croak("sparts() is an instance method, not a class method")
+ unless $class;
- $self = $class -> bzero() unless $selfref;
+ # Not-a-number.
- if ($str =~ s/
- ^
+ if ($self -> is_nan()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> bnan(); # exponent
+ return ($mant, $expo); # list context
+ }
- # sign
- ( [+-]? )
+ # Infinity.
- # optional "hex marker"
- (?: 0? x )?
+ if ($self -> is_inf()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+'); # exponent
+ return ($mant, $expo); # list context
+ }
- # significand using the hex digits 0..9 and a..f
- (
- [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
- (?:
- \.
- (?: [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )* )?
- )?
- |
- \.
- [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
- )
+ # Finite number.
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
+ my $mant = $class -> bzero();
+ $mant -> {sign} = $self -> {sign};
+ $mant -> {_m} = $MBI->_copy($self -> {_m});
+ return $mant unless wantarray;
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
+ my $expo = $class -> bzero();
+ $expo -> {sign} = $self -> {_es};
+ $expo -> {_m} = $MBI->_copy($self -> {_e});
- # The significand must be multiplied by 2 raised to this exponent.
+ return ($mant, $expo);
+}
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
+sub nparts {
+ my $self = shift;
+ my $class = ref $self;
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand. Since the digits in the significand are in base 16,
- # but the exponent is only in base 2, multiply the exponent adjustment
- # value by log(16) / log(2) = 4.
+ Carp::croak("nparts() is an instance method, not a class method")
+ unless $class;
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx)
- -> bmul("4");
+ # Not-a-number.
+
+ if ($self -> is_nan()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> bnan(); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Infinity.
+
+ if ($self -> is_inf()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+'); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Finite number.
+
+ my ($mant, $expo) = $self -> sparts();
+
+ if ($mant -> bcmp(0)) {
+ my ($ndigtot, $ndigfrac) = $mant -> length();
+ my $expo10adj = $ndigtot - $ndigfrac - 1;
+
+ if ($expo10adj != 0) {
+ my $factor = "1e" . -$expo10adj;
+ $mant -> bmul($factor);
+ return $mant unless wantarray;
+ $expo -> badd($expo10adj);
+ return ($mant, $expo);
}
+ }
- $self -> {sign} = $s_sign;
- $self -> {_m} = $MBI -> _from_hex('0x' . $s_value);
+ return $mant unless wantarray;
+ return ($mant, $expo);
+}
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
+sub eparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("eparts() is an instance method, not a class method")
+ unless $class;
+
+ # Not-a-number and Infinity.
+
+ return $self -> sparts() if $self -> is_nan() || $self -> is_inf();
+
+ # Finite number.
+
+ my ($mant, $expo) = $self -> nparts();
+
+ my $c = $expo -> copy() -> bmod(3);
+ $mant -> blsft($c, 10);
+ return $mant unless wantarray;
+
+ $expo -> bsub($c);
+ return ($mant, $expo);
+}
+
+sub dparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("dparts() is an instance method, not a class method")
+ unless $class;
+
+ # Not-a-number and Infinity.
+
+ if ($self -> is_nan() || $self -> is_inf()) {
+ my $int = $self -> copy();
+ return $int unless wantarray;
+ my $frc = $class -> bzero();
+ return ($int, $frc);
+ }
+
+ my $int = $self -> copy();
+ my $frc = $class -> bzero();
+
+ # If the input has a fraction part.
+
+ if ($int->{_es} eq '-') {
+ $int->{_m} = $MBI -> _rsft($int->{_m}, $int->{_e}, 10);
+ $int->{_e} = $MBI -> _zero();
+ $int->{_es} = '+';
+ $int->{sign} = '+' if $MBI->_is_zero($int->{_m}); # avoid -0
+
+ return $int unless wantarray;
+ $frc = $self -> copy() -> bsub($int);
+ return ($int, $frc);
+ }
+
+ return $int unless wantarray;
+ return ($int, $frc);
+}
+
+###############################################################################
+# String conversion methods
+###############################################################################
+
+sub bstr {
+ # (ref to BFLOAT or num_str) return num_str
+ # Convert number from internal format to (non-scientific) string format.
+ # internal format is always normalized (no leading zeros, "-0" => "+0")
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ my $es = '0';
+my $len = 1;
+my $cad = 0;
+my $dot = '.';
+
+ # $x is zero?
+ my $not_zero = !($x->{sign} eq '+' && $MBI->_is_zero($x->{_m}));
+ if ($not_zero) {
+ $es = $MBI->_str($x->{_m});
+ $len = CORE::length($es);
+ my $e = $MBI->_num($x->{_e});
+ $e = -$e if $x->{_es} eq '-';
+ if ($e < 0) {
+ $dot = '';
+ # if _e is bigger than a scalar, the following will blow your memory
+ if ($e <= -$len) {
+ my $r = abs($e) - $len;
+ $es = '0.'. ('0' x $r) . $es;
+ $cad = -($len+$r);
+ } else {
+ substr($es, $e, 0) = '.';
+ $cad = $MBI->_num($x->{_e});
+ $cad = -$cad if $x->{_es} eq '-';
+ }
+ } elsif ($e > 0) {
+ # expand with zeros
+ $es .= '0' x $e;
+$len += $e;
+$cad = 0;
}
+ } # if not zero
+
+ $es = '-'.$es if $x->{sign} eq '-';
+ # if set accuracy or precision, pad with zeros on the right side
+ if ((defined $x->{_a}) && ($not_zero)) {
+ # 123400 => 6, 0.1234 => 4, 0.001234 => 4
+ my $zeros = $x->{_a} - $cad; # cad == 0 => 12340
+ $zeros = $x->{_a} - $len if $cad != $len;
+ $es .= $dot.'0' x $zeros if $zeros > 0;
+ } elsif ((($x->{_p} || 0) < 0)) {
+ # 123400 => 6, 0.1234 => 4, 0.001234 => 6
+ my $zeros = -$x->{_p} + $cad;
+ $es .= $dot.'0' x $zeros if $zeros > 0;
+ }
+ $es;
+}
- return $self;
+# Decimal notation, e.g., "12345.6789".
+
+sub bdstr {
+ my $x = shift;
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
- return $self->bnan();
+ my $mant = $MBI->_str($x->{_m});
+ my $expo = $x -> exponent();
+
+ my $str = $mant;
+ if ($expo >= 0) {
+ $str .= "0" x $expo;
+ } else {
+ my $mantlen = CORE::length($mant);
+ my $c = $mantlen + $expo;
+ $str = "0" x (1 - $c) . $str if $c <= 0;
+ substr($str, $expo, 0) = '.';
+ }
+
+ return $x->{sign} eq '-' ? "-$str" : $str;
}
-sub from_oct {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+# Scientific notation with significand/mantissa as an integer, e.g., "12345.6789"
+# is written as "123456789e-4".
- my $str = shift;
+sub bsstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- # If called as a class method, initialize a new object.
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
- $self = $class -> bzero() unless $selfref;
+ my $str = $MBI->_str($x->{_m}) . 'e' . $x->{_es}. $MBI->_str($x->{_e});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
- if ($str =~ s/
- ^
+# Normalized notation, e.g., "12345.6789" is written as "1.23456789e+4".
- # sign
- ( [+-]? )
+sub bnstr {
+ my $x = shift;
- # significand using the octal digits 0..7
- (
- [0-7]+ (?: _ [0-7]+ )*
- (?:
- \.
- (?: [0-7]+ (?: _ [0-7]+ )* )?
- )?
- |
- \.
- [0-7]+ (?: _ [0-7]+ )*
- )
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
+ my ($mant, $expo) = $x -> nparts();
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
+ my $esgn = $expo < 0 ? '-' : '+';
+ my $eabs = $expo -> babs() -> bfround(0) -> bstr();
+ #$eabs = '0' . $eabs if length($eabs) < 2;
- # The significand must be multiplied by 2 raised to this exponent.
+ return $mant . 'e' . $esgn . $eabs;
+}
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
+# Engineering notation, e.g., "12345.6789" is written as "12.3456789e+3".
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand. Since the digits in the significand are in base 8,
- # but the exponent is only in base 2, multiply the exponent adjustment
- # value by log(8) / log(2) = 3.
+sub bestr {
+ my $x = shift;
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx)
- -> bmul("3");
- }
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
- $self -> {sign} = $s_sign;
- $self -> {_m} = $MBI -> _from_oct($s_value);
+ my ($mant, $expo) = $x -> eparts();
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
- }
+ my $esgn = $expo < 0 ? '-' : '+';
+ my $eabs = $expo -> babs() -> bfround(0) -> bstr();
+ #$eabs = '0' . $eabs if length($eabs) < 2;
- return $self;
+ return $mant . 'e' . $esgn . $eabs;
+}
+
+sub to_hex {
+ # return number as hexadecimal string (only for integers defined)
+
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '0' if $x->is_zero();
+
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex?
+
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
}
+ my $str = $MBI->_to_hex($z);
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
- return $self->bnan();
+sub to_oct {
+ # return number as octal digit string (only for integers defined)
+
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '0' if $x->is_zero();
+
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in octal?
+
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
+ }
+ my $str = $MBI->_to_oct($z);
+ return $x->{sign} eq '-' ? "-$str" : $str;
}
-sub from_bin {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+sub to_bin {
+ # return number as binary digit string (only for integers defined)
- my $str = shift;
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- # If called as a class method, initialize a new object.
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '0' if $x->is_zero();
- $self = $class -> bzero() unless $selfref;
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in binary?
- if ($str =~ s/
- ^
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
+ }
+ my $str = $MBI->_to_bin($z);
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
- # sign
- ( [+-]? )
+sub as_hex {
+ # return number as hexadecimal string (only for integers defined)
- # optional "bin marker"
- (?: 0? b )?
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- # significand using the binary digits 0 and 1
- (
- [01]+ (?: _ [01]+ )*
- (?:
- \.
- (?: [01]+ (?: _ [01]+ )* )?
- )?
- |
- \.
- [01]+ (?: _ [01]+ )*
- )
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '0x0' if $x->is_zero();
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex?
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
+ }
+ my $str = $MBI->_as_hex($z);
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
- # The significand must be multiplied by 2 raised to this exponent.
+sub as_oct {
+ # return number as octal digit string (only for integers defined)
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand.
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '00' if $x->is_zero();
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx);
- }
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in octal?
- $self -> {sign} = $s_sign;
- $self -> {_m} = $MBI -> _from_bin('0b' . $s_value);
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
+ }
+ my $str = $MBI->_as_oct($z);
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
+sub as_bin {
+ # return number as binary digit string (only for integers defined)
+
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '0b0' if $x->is_zero();
+
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in binary?
+
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
+ }
+ my $str = $MBI->_as_bin($z);
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+sub numify {
+ # Make a Perl scalar number from a Math::BigFloat object.
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ if ($x -> is_nan()) {
+ require Math::Complex;
+ my $inf = Math::Complex::Inf();
+ return $inf - $inf;
+ }
+
+ if ($x -> is_inf()) {
+ require Math::Complex;
+ my $inf = Math::Complex::Inf();
+ return $x -> is_negative() ? -$inf : $inf;
+ }
+
+ # Create a string and let Perl's atoi()/atof() handle the rest.
+ return 0 + $x -> bsstr();
+}
+
+###############################################################################
+# Private methods and functions.
+###############################################################################
+
+sub import {
+ my $class = shift;
+ my $l = scalar @_;
+ my $lib = '';
+my @a;
+ my $lib_kind = 'try';
+ $IMPORT=1;
+ for (my $i = 0; $i < $l ; $i++) {
+ if ($_[$i] eq ':constant') {
+ # This causes overlord er load to step in. 'binary' and 'integer'
+ # are handled by BigInt.
+ overload::constant float => sub { $class->new(shift); };
+ } elsif ($_[$i] eq 'upgrade') {
+ # this causes upgrading
+ $upgrade = $_[$i+1]; # or undef to disable
+ $i++;
+ } elsif ($_[$i] eq 'downgrade') {
+ # this causes downgrading
+ $downgrade = $_[$i+1]; # or undef to disable
+ $i++;
+ } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
+ # alternative library
+ $lib = $_[$i+1] || ''; # default Calc
+ $lib_kind = $1; # lib, try or only
+ $i++;
+ } elsif ($_[$i] eq 'with') {
+ # alternative class for our private parts()
+ # XXX: no longer supported
+ # $MBI = $_[$i+1] || 'Math::BigInt';
+ $i++;
+ } else {
+ push @a, $_[$i];
}
+ }
- return $self;
+ $lib =~ tr/a-zA-Z0-9,://cd; # restrict to sane characters
+ # let use Math::BigInt lib => 'GMP'; use Math::BigFloat; still work
+ my $mbilib = eval { Math::BigInt->config('lib') };
+ if ((defined $mbilib) && ($MBI eq 'Math::BigInt::Calc')) {
+ # MBI already loaded
+ Math::BigInt->import($lib_kind, "$lib, $mbilib", 'objectify');
+ } else {
+ # MBI not loaded, or with ne "Math::BigInt::Calc"
+ $lib .= ",$mbilib" if defined $mbilib;
+ $lib =~ s/^,//; # don't leave empty
+
+ # replacement library can handle lib statement, but also could ignore it
+
+ # Perl < 5.6.0 dies with "out of memory!" when eval() and ':constant' is
+ # used in the same script, or eval inside import(). So we require MBI:
+ require Math::BigInt;
+ Math::BigInt->import($lib_kind => $lib, 'objectify');
}
+ if ($@) {
+ Carp::croak("Couldn't load $lib: $! $@");
+ }
+ # find out which one was actually loaded
+ $MBI = Math::BigInt->config('lib');
- return $self->bnan();
+ # register us with MBI to get notified of future lib changes
+ Math::BigInt::_register_callback($class, sub { $MBI = $_[0]; });
+
+ $class->export_to_level(1, $class, @a); # export wanted functions
}
-1;
+sub _len_to_steps {
+ # Given D (digits in decimal), compute N so that N! (N factorial) is
+ # at least D digits long. D should be at least 50.
+ my $d = shift;
+
+ # two constants for the Ramanujan estimate of ln(N!)
+ my $lg2 = log(2 * 3.14159265) / 2;
+ my $lg10 = log(10);
+
+ # D = 50 => N => 42, so L = 40 and R = 50
+ my $l = 40;
+my $r = $d;
+
+ # Otherwise this does not work under -Mbignum and we do not yet have "no bignum;" :(
+ $l = $l->numify if ref($l);
+ $r = $r->numify if ref($r);
+ $lg2 = $lg2->numify if ref($lg2);
+ $lg10 = $lg10->numify if ref($lg10);
+
+ # binary search for the right value (could this be written as the reverse of lg(n!)?)
+ while ($r - $l > 1) {
+ my $n = int(($r - $l) / 2) + $l;
+ my $ramanujan =
+ int(($n * log($n) - $n + log($n * (1 + 4*$n*(1+2*$n))) / 6 + $lg2) / $lg10);
+ $ramanujan > $d ? $r = $n : $l = $n;
+ }
+ $l;
+}
-__END__
+sub _log {
+ # internal log function to calculate ln() based on Taylor series.
+ # Modifies $x in place.
+ my ($class, $x, $scale) = @_;
+
+ # in case of $x == 1, result is 0
+ return $x->bzero() if $x->is_one();
+
+ # XXX TODO: rewrite this in a similar manner to bexp()
+
+ # http://www.efunda.com/math/taylor_series/logarithmic.cfm?search_string=log
+
+ # u = x-1, v = x+1
+ # _ _
+ # Taylor: | u 1 u^3 1 u^5 |
+ # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 0
+ # |_ v 3 v^3 5 v^5 _|
+
+ # This takes much more steps to calculate the result and is thus not used
+ # u = x-1
+ # _ _
+ # Taylor: | u 1 u^2 1 u^3 |
+ # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 1/2
+ # |_ x 2 x^2 3 x^3 _|
+
+ my ($limit, $v, $u, $below, $factor, $two, $next, $over, $f);
+
+ $v = $x->copy(); $v->binc(); # v = x+1
+ $x->bdec(); $u = $x->copy(); # u = x-1; x = x-1
+ $x->bdiv($v, $scale); # first term: u/v
+ $below = $v->copy();
+ $over = $u->copy();
+ $u *= $u; $v *= $v; # u^2, v^2
+ $below->bmul($v); # u^3, v^3
+ $over->bmul($u);
+ $factor = $class->new(3); $f = $class->new(2);
+
+ my $steps = 0;
+ $limit = $class->new("1E-". ($scale-1));
+ while (3 < 5) {
+ # we calculate the next term, and add it to the last
+ # when the next term is below our limit, it won't affect the outcome
+ # anymore, so we stop
+
+ # calculating the next term simple from over/below will result in quite
+ # a time hog if the input has many digits, since over and below will
+ # accumulate more and more digits, and the result will also have many
+ # digits, but in the end it is rounded to $scale digits anyway. So if we
+ # round $over and $below first, we save a lot of time for the division
+ # (not with log(1.2345), but try log (123**123) to see what I mean. This
+ # can introduce a rounding error if the division result would be f.i.
+ # 0.1234500000001 and we round it to 5 digits it would become 0.12346, but
+ # if we truncated $over and $below we might get 0.12345. Does this matter
+ # for the end result? So we give $over and $below 4 more digits to be
+ # on the safe side (unscientific error handling as usual... :+D
+
+ $next = $over->copy()->bround($scale+4)
+ ->bdiv($below->copy()->bmul($factor)->bround($scale+4),
+ $scale);
+
+ ## old version:
+ ## $next = $over->copy()->bdiv($below->copy()->bmul($factor), $scale);
-=pod
+ last if $next->bacmp($limit) <= 0;
-=head1 NAME
+ delete $next->{_a};
+ delete $next->{_p};
+ $x->badd($next);
+ # calculate things for the next term
+ $over *= $u;
+ $below *= $v;
+ $factor->badd($f);
+ if (DEBUG) {
+ $steps++;
+ print "step $steps = $x\n" if $steps % 10 == 0;
+ }
+ }
+ print "took $steps steps\n" if DEBUG;
+ $x->bmul($f); # $x *= 2
+}
-Math::BigFloat - Arbitrary size floating point math package
+sub _log_10 {
+ # Internal log function based on reducing input to the range of 0.1 .. 9.99
+ # and then "correcting" the result to the proper one. Modifies $x in place.
+ my ($class, $x, $scale) = @_;
+
+ # Taking blog() from numbers greater than 10 takes a *very long* time, so we
+ # break the computation down into parts based on the observation that:
+ # blog(X*Y) = blog(X) + blog(Y)
+ # We set Y here to multiples of 10 so that $x becomes below 1 - the smaller
+ # $x is the faster it gets. Since 2*$x takes about 10 times as
+ # long, we make it faster by about a factor of 100 by dividing $x by 10.
+
+ # The same observation is valid for numbers smaller than 0.1, e.g. computing
+ # log(1) is fastest, and the further away we get from 1, the longer it takes.
+ # So we also 'break' this down by multiplying $x with 10 and subtract the
+ # log(10) afterwards to get the correct result.
+
+ # To get $x even closer to 1, we also divide by 2 and then use log(2) to
+ # correct for this. For instance if $x is 2.4, we use the formula:
+ # blog(2.4 * 2) == blog (1.2) + blog(2)
+ # and thus calculate only blog(1.2) and blog(2), which is faster in total
+ # than calculating blog(2.4).
+
+ # In addition, the values for blog(2) and blog(10) are cached.
+
+ # Calculate nr of digits before dot:
+ my $dbd = $MBI->_num($x->{_e});
+ $dbd = -$dbd if $x->{_es} eq '-';
+ $dbd += $MBI->_len($x->{_m});
+
+ # more than one digit (e.g. at least 10), but *not* exactly 10 to avoid
+ # infinite recursion
+
+ my $calc = 1; # do some calculation?
+
+ # disable the shortcut for 10, since we need log(10) and this would recurse
+ # infinitely deep
+ if ($x->{_es} eq '+' && $MBI->_is_one($x->{_e}) && $MBI->_is_one($x->{_m})) {
+ $dbd = 0; # disable shortcut
+ # we can use the cached value in these cases
+ if ($scale <= $LOG_10_A) {
+ $x->bzero();
+ $x->badd($LOG_10); # modify $x in place
+ $calc = 0; # no need to calc, but round
+ }
+ # if we can't use the shortcut, we continue normally
+ } else {
+ # disable the shortcut for 2, since we maybe have it cached
+ if (($MBI->_is_zero($x->{_e}) && $MBI->_is_two($x->{_m}))) {
+ $dbd = 0; # disable shortcut
+ # we can use the cached value in these cases
+ if ($scale <= $LOG_2_A) {
+ $x->bzero();
+ $x->badd($LOG_2); # modify $x in place
+ $calc = 0; # no need to calc, but round
+ }
+ # if we can't use the shortcut, we continue normally
+ }
+ }
-=head1 SYNOPSIS
+ # if $x = 0.1, we know the result must be 0-log(10)
+ if ($calc != 0 && $x->{_es} eq '-' && $MBI->_is_one($x->{_e}) &&
+ $MBI->_is_one($x->{_m})) {
+ $dbd = 0; # disable shortcut
+ # we can use the cached value in these cases
+ if ($scale <= $LOG_10_A) {
+ $x->bzero();
+ $x->bsub($LOG_10);
+ $calc = 0; # no need to calc, but round
+ }
+ }
- use Math::BigFloat;
-
- # Number creation
- my $x = Math::BigFloat->new($str); # defaults to 0
- my $y = $x->copy(); # make a true copy
- my $nan = Math::BigFloat->bnan(); # create a NotANumber
- my $zero = Math::BigFloat->bzero(); # create a +0
- my $inf = Math::BigFloat->binf(); # create a +inf
- my $inf = Math::BigFloat->binf('-'); # create a -inf
- my $one = Math::BigFloat->bone(); # create a +1
- my $mone = Math::BigFloat->bone('-'); # create a -1
- my $x = Math::BigFloat->bone('-'); #
-
- my $x = Math::BigFloat->from_hex('0xc.afep+3'); # from hexadecimal
- my $x = Math::BigFloat->from_bin('0b1.1001p-4'); # from binary
- my $x = Math::BigFloat->from_oct('1.3267p-4'); # from octal
-
- my $pi = Math::BigFloat->bpi(100); # PI to 100 digits
-
- # the following examples compute their result to 100 digits accuracy:
- my $cos = Math::BigFloat->new(1)->bcos(100); # cosinus(1)
- my $sin = Math::BigFloat->new(1)->bsin(100); # sinus(1)
- my $atan = Math::BigFloat->new(1)->batan(100); # arcus tangens(1)
-
- my $atan2 = Math::BigFloat->new( 1 )->batan2( 1 ,100); # batan(1)
- my $atan2 = Math::BigFloat->new( 1 )->batan2( 8 ,100); # batan(1/8)
- my $atan2 = Math::BigFloat->new( -2 )->batan2( 1 ,100); # batan(-2)
-
- # Testing
- $x->is_zero(); # true if arg is +0
- $x->is_nan(); # true if arg is NaN
- $x->is_one(); # true if arg is +1
- $x->is_one('-'); # true if arg is -1
- $x->is_odd(); # true if odd, false for even
- $x->is_even(); # true if even, false for odd
- $x->is_pos(); # true if >= 0
- $x->is_neg(); # true if < 0
- $x->is_inf(sign); # true if +inf, or -inf (default is '+')
-
- $x->bcmp($y); # compare numbers (undef,<0,=0,>0)
- $x->bacmp($y); # compare absolutely (undef,<0,=0,>0)
- $x->sign(); # return the sign, either +,- or NaN
- $x->digit($n); # return the nth digit, counting from right
- $x->digit(-$n); # return the nth digit, counting from left
-
- # The following all modify their first argument. If you want to pre-
- # serve $x, use $z = $x->copy()->bXXX($y); See under L</CAVEATS> for
- # necessary when mixing $a = $b assignments with non-overloaded math.
-
- # set
- $x->bzero(); # set $i to 0
- $x->bnan(); # set $i to NaN
- $x->bone(); # set $x to +1
- $x->bone('-'); # set $x to -1
- $x->binf(); # set $x to inf
- $x->binf('-'); # set $x to -inf
-
- $x->bneg(); # negation
- $x->babs(); # absolute value
- $x->bnorm(); # normalize (no-op)
- $x->bnot(); # two's complement (bit wise not)
- $x->binc(); # increment x by 1
- $x->bdec(); # decrement x by 1
-
- $x->badd($y); # addition (add $y to $x)
- $x->bsub($y); # subtraction (subtract $y from $x)
- $x->bmul($y); # multiplication (multiply $x by $y)
- $x->bdiv($y); # divide, set $x to quotient
- # return (quo,rem) or quo if scalar
-
- $x->bmod($y); # modulus ($x % $y)
- $x->bpow($y); # power of arguments ($x ** $y)
- $x->bmodpow($exp,$mod); # modular exponentiation (($num**$exp) % $mod))
- $x->blsft($y, $n); # left shift by $y places in base $n
- $x->brsft($y, $n); # right shift by $y places in base $n
- # returns (quo,rem) or quo if in scalar context
-
- $x->blog(); # logarithm of $x to base e (Euler's number)
- $x->blog($base); # logarithm of $x to base $base (f.i. 2)
- $x->bexp(); # calculate e ** $x where e is Euler's number
-
- $x->band($y); # bit-wise and
- $x->bior($y); # bit-wise inclusive or
- $x->bxor($y); # bit-wise exclusive or
- $x->bnot(); # bit-wise not (two's complement)
-
- $x->bsqrt(); # calculate square-root
- $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
- $x->bfac(); # factorial of $x (1*2*3*4*..$x)
-
- $x->bround($N); # accuracy: preserve $N digits
- $x->bfround($N); # precision: round to the $Nth digit
-
- $x->bfloor(); # return integer less or equal than $x
- $x->bceil(); # return integer greater or equal than $x
- $x->bint(); # round towards zero
-
- # The following do not modify their arguments:
-
- bgcd(@values); # greatest common divisor
- blcm(@values); # lowest common multiplicator
-
- $x->bstr(); # return string
- $x->bsstr(); # return string in scientific notation
-
- $x->as_int(); # return $x as BigInt
- $x->exponent(); # return exponent as BigInt
- $x->mantissa(); # return mantissa as BigInt
- $x->parts(); # return (mantissa,exponent) as BigInt
-
- $x->length(); # number of digits (w/o sign and '.')
- ($l,$f) = $x->length(); # number of digits, and length of fraction
-
- $x->precision(); # return P of $x (or global, if P of $x undef)
- $x->precision($n); # set P of $x to $n
- $x->accuracy(); # return A of $x (or global, if A of $x undef)
- $x->accuracy($n); # set A $x to $n
-
- # these get/set the appropriate global value for all BigFloat objects
- Math::BigFloat->precision(); # Precision
- Math::BigFloat->accuracy(); # Accuracy
- Math::BigFloat->round_mode(); # rounding mode
+ return if $calc == 0; # already have the result
-=head1 DESCRIPTION
+ # default: these correction factors are undef and thus not used
+ my $l_10; # value of ln(10) to A of $scale
+ my $l_2; # value of ln(2) to A of $scale
-All operators (including basic math operations) are overloaded if you
-declare your big floating point numbers as
+ my $two = $class->new(2);
- $i = Math::BigFloat -> new('12_3.456_789_123_456_789E-2');
+ # $x == 2 => 1, $x == 13 => 2, $x == 0.1 => 0, $x == 0.01 => -1
+ # so don't do this shortcut for 1 or 0
+ if (($dbd > 1) || ($dbd < 0)) {
+ # convert our cached value to an object if not already (avoid doing this
+ # at import() time, since not everybody needs this)
+ $LOG_10 = $class->new($LOG_10, undef, undef) unless ref $LOG_10;
+
+ #print "x = $x, dbd = $dbd, calc = $calc\n";
+ # got more than one digit before the dot, or more than one zero after the
+ # dot, so do:
+ # log(123) == log(1.23) + log(10) * 2
+ # log(0.0123) == log(1.23) - log(10) * 2
+
+ if ($scale <= $LOG_10_A) {
+ # use cached value
+ $l_10 = $LOG_10->copy(); # copy for mul
+ } else {
+ # else: slower, compute and cache result
+ # also disable downgrade for this code path
+ local $Math::BigFloat::downgrade = undef;
+
+ # shorten the time to calculate log(10) based on the following:
+ # log(1.25 * 8) = log(1.25) + log(8)
+ # = log(1.25) + log(2) + log(2) + log(2)
+
+ # first get $l_2 (and possible compute and cache log(2))
+ $LOG_2 = $class->new($LOG_2, undef, undef) unless ref $LOG_2;
+ if ($scale <= $LOG_2_A) {
+ # use cached value
+ $l_2 = $LOG_2->copy(); # copy() for the mul below
+ } else {
+ # else: slower, compute and cache result
+ $l_2 = $two->copy();
+ $class->_log($l_2, $scale); # scale+4, actually
+ $LOG_2 = $l_2->copy(); # cache the result for later
+ # the copy() is for mul below
+ $LOG_2_A = $scale;
+ }
-Operations with overloaded operators preserve the arguments, which is
-exactly what you expect.
+ # now calculate log(1.25):
+ $l_10 = $class->new('1.25');
+ $class->_log($l_10, $scale); # scale+4, actually
+
+ # log(1.25) + log(2) + log(2) + log(2):
+ $l_10->badd($l_2);
+ $l_10->badd($l_2);
+ $l_10->badd($l_2);
+ $LOG_10 = $l_10->copy(); # cache the result for later
+ # the copy() is for mul below
+ $LOG_10_A = $scale;
+ }
+ $dbd-- if ($dbd > 1); # 20 => dbd=2, so make it dbd=1
+ $l_10->bmul($class->new($dbd)); # log(10) * (digits_before_dot-1)
+ my $dbd_sign = '+';
+ if ($dbd < 0) {
+ $dbd = -$dbd;
+ $dbd_sign = '-';
+ }
+ ($x->{_e}, $x->{_es}) =
+ _e_sub($x->{_e}, $MBI->_new($dbd), $x->{_es}, $dbd_sign); # 123 => 1.23
-=head2 Input
+ }
-Input to these routines are either BigFloat objects, or strings of the
-following four forms:
+ # Now: 0.1 <= $x < 10 (and possible correction in l_10)
-=over
+ ### Since $x in the range 0.5 .. 1.5 is MUCH faster, we do a repeated div
+ ### or mul by 2 (maximum times 3, since x < 10 and x > 0.1)
-=item *
+ $HALF = $class->new($HALF) unless ref($HALF);
-C</^[+-]\d+$/>
+ my $twos = 0; # default: none (0 times)
+ while ($x->bacmp($HALF) <= 0) { # X <= 0.5
+ $twos--;
+ $x->bmul($two);
+ }
+ while ($x->bacmp($two) >= 0) { # X >= 2
+ $twos++;
+ $x->bdiv($two, $scale+4); # keep all digits
+ }
+ $x->bround($scale+4);
+ # $twos > 0 => did mul 2, < 0 => did div 2 (but we never did both)
+ # So calculate correction factor based on ln(2):
+ if ($twos != 0) {
+ $LOG_2 = $class->new($LOG_2, undef, undef) unless ref $LOG_2;
+ if ($scale <= $LOG_2_A) {
+ # use cached value
+ $l_2 = $LOG_2->copy(); # copy() for the mul below
+ } else {
+ # else: slower, compute and cache result
+ # also disable downgrade for this code path
+ local $Math::BigFloat::downgrade = undef;
+ $l_2 = $two->copy();
+ $class->_log($l_2, $scale); # scale+4, actually
+ $LOG_2 = $l_2->copy(); # cache the result for later
+ # the copy() is for mul below
+ $LOG_2_A = $scale;
+ }
+ $l_2->bmul($twos); # * -2 => subtract, * 2 => add
+ } else {
+ undef $l_2;
+ }
-=item *
+ $class->_log($x, $scale); # need to do the "normal" way
+ $x->badd($l_10) if defined $l_10; # correct it by ln(10)
+ $x->badd($l_2) if defined $l_2; # and maybe by ln(2)
-C</^[+-]\d+\.\d*$/>
+ # all done, $x contains now the result
+ $x;
+}
-=item *
+sub _e_add {
+ # Internal helper sub to take two positive integers and their signs and
+ # then add them. Input ($CALC, $CALC, ('+'|'-'), ('+'|'-')), output
+ # ($CALC, ('+'|'-')).
-C</^[+-]\d+E[+-]?\d+$/>
+ my ($x, $y, $xs, $ys) = @_;
-=item *
+ # if the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8)
+ if ($xs eq $ys) {
+ $x = $MBI->_add($x, $y); # +a + +b or -a + -b
+ } else {
+ my $a = $MBI->_acmp($x, $y);
+ if ($a == 0) {
+ # This does NOT modify $x in-place. TODO: Fix this?
+ $x = $MBI->_zero(); # result is 0
+ $xs = '+';
+ return ($x, $xs);
+ }
+ if ($a > 0) {
+ $x = $MBI->_sub($x, $y); # abs sub
+ } else { # a < 0
+ $x = $MBI->_sub ($y, $x, 1); # abs sub
+ $xs = $ys;
+ }
+ }
-C</^[+-]\d*\.\d+E[+-]?\d+$/>
+ $xs = '+' if $xs eq '-' && $MBI->_is_zero($x); # no "-0"
-=back
+ return ($x, $xs);
+}
-all with optional leading and trailing zeros and/or spaces. Additionally,
-numbers are allowed to have an underscore between any two digits.
+sub _e_sub {
+ # Internal helper sub to take two positive integers and their signs and
+ # then subtract them. Input ($CALC, $CALC, ('+'|'-'), ('+'|'-')),
+ # output ($CALC, ('+'|'-'))
+ my ($x, $y, $xs, $ys) = @_;
-Empty strings as well as other illegal numbers results in 'NaN'.
+ # flip sign
+ $ys = $ys eq '+' ? '-' : '+'; # swap sign of second operand ...
+ _e_add($x, $y, $xs, $ys); # ... and let _e_add() do the job
+}
-bnorm() on a BigFloat object is now effectively a no-op, since the numbers
-are always stored in normalized form. On a string, it creates a BigFloat
-object.
+sub _pow {
+ # Calculate a power where $y is a non-integer, like 2 ** 0.3
+ my ($x, $y, @r) = @_;
+ my $class = ref($x);
-=head2 Output
+ # if $y == 0.5, it is sqrt($x)
+ $HALF = $class->new($HALF) unless ref($HALF);
+ return $x->bsqrt(@r, $y) if $y->bcmp($HALF) == 0;
-Output values are BigFloat objects (normalized), except for bstr() and bsstr().
+ # Using:
+ # a ** x == e ** (x * ln a)
-The string output will always have leading and trailing zeros stripped and drop
-a plus sign. C<bstr()> will give you always the form with a decimal point,
-while C<bsstr()> (s for scientific) gives you the scientific notation.
+ # u = y * ln x
+ # _ _
+ # Taylor: | u u^2 u^3 |
+ # x ** y = 1 + | --- + --- + ----- + ... |
+ # |_ 1 1*2 1*2*3 _|
- Input bstr() bsstr()
- '-0' '0' '0E1'
- ' -123 123 123' '-123123123' '-123123123E0'
- '00.0123' '0.0123' '123E-4'
- '123.45E-2' '1.2345' '12345E-4'
- '10E+3' '10000' '1E4'
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters(@r);
-Some routines (C<is_odd()>, C<is_even()>, C<is_zero()>, C<is_one()>,
-C<is_nan()>) return true or false, while others (C<bcmp()>, C<bacmp()>)
-return either undef, <0, 0 or >0 and are suited for sort.
+ return $x if $x->is_nan(); # error in _find_round_parameters?
-Actual math is done by using the class defined with C<< with => Class; >>
-(which defaults to BigInts) to represent the mantissa and exponent.
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # disable P
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
-The sign C</^[+-]$/> is stored separately. The string 'NaN' is used to
-represent the result when input arguments are not numbers, and 'inf' and
-'-inf' are used to represent positive and negative infinity, respectively.
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
-=head2 mantissa(), exponent() and parts()
+ my ($limit, $v, $u, $below, $factor, $next, $over);
-mantissa() and exponent() return the said parts of the BigFloat
-as BigInts such that:
+ $u = $x->copy()->blog(undef, $scale)->bmul($y);
+ my $do_invert = ($u->{sign} eq '-');
+ $u->bneg() if $do_invert;
+ $v = $class->bone(); # 1
+ $factor = $class->new(2); # 2
+ $x->bone(); # first term: 1
- $m = $x->mantissa();
- $e = $x->exponent();
- $y = $m * ( 10 ** $e );
- print "ok\n" if $x == $y;
+ $below = $v->copy();
+ $over = $u->copy();
-C<< ($m,$e) = $x->parts(); >> is just a shortcut giving you both of them.
+ $limit = $class->new("1E-". ($scale-1));
+ #my $steps = 0;
+ while (3 < 5) {
+ # we calculate the next term, and add it to the last
+ # when the next term is below our limit, it won't affect the outcome
+ # anymore, so we stop:
+ $next = $over->copy()->bdiv($below, $scale);
+ last if $next->bacmp($limit) <= 0;
+ $x->badd($next);
+ # calculate things for the next term
+ $over *= $u;
+ $below *= $factor;
+ $factor->binc();
-Currently the mantissa is reduced as much as possible, favouring higher
-exponents over lower ones (e.g. returning 1e7 instead of 10e6 or 10000000e0).
-This might change in the future, so do not depend on it.
+ last if $x->{sign} !~ /^[-+]$/;
-=head2 Accuracy vs. Precision
+ #$steps++;
+ }
-See also: L<Rounding|/Rounding>.
+ if ($do_invert) {
+ my $x_copy = $x->copy();
+ $x->bone->bdiv($x_copy, $scale);
+ }
-Math::BigFloat supports both precision (rounding to a certain place before or
-after the dot) and accuracy (rounding to a certain number of digits). For a
-full documentation, examples and tips on these topics please see the large
-section about rounding in L<Math::BigInt>.
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
+}
-Since things like C<sqrt(2)> or C<1 / 3> must presented with a limited
-accuracy lest a operation consumes all resources, each operation produces
-no more than the requested number of digits.
+1;
-If there is no global precision or accuracy set, B<and> the operation in
-question was not called with a requested precision or accuracy, B<and> the
-input $x has no accuracy or precision set, then a fallback parameter will
-be used. For historical reasons, it is called C<div_scale> and can be accessed
-via:
+__END__
- $d = Math::BigFloat->div_scale(); # query
- Math::BigFloat->div_scale($n); # set to $n digits
+=pod
-The default value for C<div_scale> is 40.
+=head1 NAME
-In case the result of one operation has more digits than specified,
-it is rounded. The rounding mode taken is either the default mode, or the one
-supplied to the operation after the I<scale>:
+Math::BigFloat - Arbitrary size floating point math package
- $x = Math::BigFloat->new(2);
- Math::BigFloat->accuracy(5); # 5 digits max
- $y = $x->copy()->bdiv(3); # will give 0.66667
- $y = $x->copy()->bdiv(3,6); # will give 0.666667
- $y = $x->copy()->bdiv(3,6,undef,'odd'); # will give 0.666667
- Math::BigFloat->round_mode('zero');
- $y = $x->copy()->bdiv(3,6); # will also give 0.666667
+=head1 SYNOPSIS
-Note that C<< Math::BigFloat->accuracy() >> and C<< Math::BigFloat->precision() >>
-set the global variables, and thus B<any> newly created number will be subject
-to the global rounding B<immediately>. This means that in the examples above, the
-C<3> as argument to C<bdiv()> will also get an accuracy of B<5>.
+ use Math::BigFloat;
+
+ # Configuration methods (may be used as class methods and instance methods)
+
+ Math::BigFloat->accuracy(); # get class accuracy
+ Math::BigFloat->accuracy($n); # set class accuracy
+ Math::BigFloat->precision(); # get class precision
+ Math::BigFloat->precision($n); # set class precision
+ Math::BigFloat->round_mode(); # get class rounding mode
+ Math::BigFloat->round_mode($m); # set global round mode, must be one of
+ # 'even', 'odd', '+inf', '-inf', 'zero',
+ # 'trunc', or 'common'
+ Math::BigFloat->config(); # return hash with configuration
+
+ # Constructor methods (when the class methods below are used as instance
+ # methods, the value is assigned the invocand)
+
+ $x = Math::BigFloat->new($str); # defaults to 0
+ $x = Math::BigFloat->new('0x123'); # from hexadecimal
+ $x = Math::BigFloat->new('0b101'); # from binary
+ $x = Math::BigFloat->from_hex('0xc.afep+3'); # from hex
+ $x = Math::BigFloat->from_hex('cafe'); # ditto
+ $x = Math::BigFloat->from_oct('1.3267p-4'); # from octal
+ $x = Math::BigFloat->from_oct('0377'); # ditto
+ $x = Math::BigFloat->from_bin('0b1.1001p-4'); # from binary
+ $x = Math::BigFloat->from_bin('0101'); # ditto
+ $x = Math::BigFloat->bzero(); # create a +0
+ $x = Math::BigFloat->bone(); # create a +1
+ $x = Math::BigFloat->bone('-'); # create a -1
+ $x = Math::BigFloat->binf(); # create a +inf
+ $x = Math::BigFloat->binf('-'); # create a -inf
+ $x = Math::BigFloat->bnan(); # create a Not-A-Number
+ $x = Math::BigFloat->bpi(); # returns pi
+
+ $y = $x->copy(); # make a copy (unlike $y = $x)
+ $y = $x->as_int(); # return as BigInt
+
+ # Boolean methods (these don't modify the invocand)
+
+ $x->is_zero(); # if $x is 0
+ $x->is_one(); # if $x is +1
+ $x->is_one("+"); # ditto
+ $x->is_one("-"); # if $x is -1
+ $x->is_inf(); # if $x is +inf or -inf
+ $x->is_inf("+"); # if $x is +inf
+ $x->is_inf("-"); # if $x is -inf
+ $x->is_nan(); # if $x is NaN
+
+ $x->is_positive(); # if $x > 0
+ $x->is_pos(); # ditto
+ $x->is_negative(); # if $x < 0
+ $x->is_neg(); # ditto
+
+ $x->is_odd(); # if $x is odd
+ $x->is_even(); # if $x is even
+ $x->is_int(); # if $x is an integer
+
+ # Comparison methods
+
+ $x->bcmp($y); # compare numbers (undef, < 0, == 0, > 0)
+ $x->bacmp($y); # compare absolutely (undef, < 0, == 0, > 0)
+ $x->beq($y); # true if and only if $x == $y
+ $x->bne($y); # true if and only if $x != $y
+ $x->blt($y); # true if and only if $x < $y
+ $x->ble($y); # true if and only if $x <= $y
+ $x->bgt($y); # true if and only if $x > $y
+ $x->bge($y); # true if and only if $x >= $y
+
+ # Arithmetic methods
+
+ $x->bneg(); # negation
+ $x->babs(); # absolute value
+ $x->bsgn(); # sign function (-1, 0, 1, or NaN)
+ $x->bnorm(); # normalize (no-op)
+ $x->binc(); # increment $x by 1
+ $x->bdec(); # decrement $x by 1
+ $x->badd($y); # addition (add $y to $x)
+ $x->bsub($y); # subtraction (subtract $y from $x)
+ $x->bmul($y); # multiplication (multiply $x by $y)
+ $x->bmuladd($y,$z); # $x = $x * $y + $z
+ $x->bdiv($y); # division (floored), set $x to quotient
+ # return (quo,rem) or quo if scalar
+ $x->btdiv($y); # division (truncated), set $x to quotient
+ # return (quo,rem) or quo if scalar
+ $x->bmod($y); # modulus (x % y)
+ $x->btmod($y); # modulus (truncated)
+ $x->bmodinv($mod); # modular multiplicative inverse
+ $x->bmodpow($y,$mod); # modular exponentiation (($x ** $y) % $mod)
+ $x->bpow($y); # power of arguments (x ** y)
+ $x->blog(); # logarithm of $x to base e (Euler's number)
+ $x->blog($base); # logarithm of $x to base $base (e.g., base 2)
+ $x->bexp(); # calculate e ** $x where e is Euler's number
+ $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bsin(); # sine
+ $x->bcos(); # cosine
+ $x->batan(); # inverse tangent
+ $x->batan2($y); # two-argument inverse tangent
+ $x->bsqrt(); # calculate square-root
+ $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
+ $x->bfac(); # factorial of $x (1*2*3*4*..$x)
+
+ $x->blsft($n); # left shift $n places in base 2
+ $x->blsft($n,$b); # left shift $n places in base $b
+ # returns (quo,rem) or quo (scalar context)
+ $x->brsft($n); # right shift $n places in base 2
+ $x->brsft($n,$b); # right shift $n places in base $b
+ # returns (quo,rem) or quo (scalar context)
+
+ # Bitwise methods
+
+ $x->band($y); # bitwise and
+ $x->bior($y); # bitwise inclusive or
+ $x->bxor($y); # bitwise exclusive or
+ $x->bnot(); # bitwise not (two's complement)
+
+ # Rounding methods
+ $x->round($A,$P,$mode); # round to accuracy or precision using
+ # rounding mode $mode
+ $x->bround($n); # accuracy: preserve $n digits
+ $x->bfround($n); # $n > 0: round to $nth digit left of dec. point
+ # $n < 0: round to $nth digit right of dec. point
+ $x->bfloor(); # round towards minus infinity
+ $x->bceil(); # round towards plus infinity
+ $x->bint(); # round towards zero
+
+ # Other mathematical methods
+
+ $x->bgcd($y); # greatest common divisor
+ $x->blcm($y); # least common multiple
+
+ # Object property methods (do not modify the invocand)
+
+ $x->sign(); # the sign, either +, - or NaN
+ $x->digit($n); # the nth digit, counting from the right
+ $x->digit(-$n); # the nth digit, counting from the left
+ $x->length(); # return number of digits in number
+ ($xl,$f) = $x->length(); # length of number and length of fraction
+ # part, latter is always 0 digits long
+ # for Math::BigInt objects
+ $x->mantissa(); # return (signed) mantissa as BigInt
+ $x->exponent(); # return exponent as BigInt
+ $x->parts(); # return (mantissa,exponent) as BigInt
+ $x->sparts(); # mantissa and exponent (as integers)
+ $x->nparts(); # mantissa and exponent (normalised)
+ $x->eparts(); # mantissa and exponent (engineering notation)
+ $x->dparts(); # integer and fraction part
+
+ # Conversion methods (do not modify the invocand)
+
+ $x->bstr(); # decimal notation, possibly zero padded
+ $x->bsstr(); # string in scientific notation with integers
+ $x->bnstr(); # string in normalized notation
+ $x->bestr(); # string in engineering notation
+ $x->bdstr(); # string in decimal notation
+ $x->as_hex(); # as signed hexadecimal string with prefixed 0x
+ $x->as_bin(); # as signed binary string with prefixed 0b
+ $x->as_oct(); # as signed octal string with prefixed 0
+
+ # Other conversion methods
+
+ $x->numify(); # return as scalar (might overflow or underflow)
-It is less confusing to either calculate the result fully, and afterwards
-round it explicitly, or use the additional parameters to the math
-functions like so:
+=head1 DESCRIPTION
- use Math::BigFloat;
- $x = Math::BigFloat->new(2);
- $y = $x->copy()->bdiv(3);
- print $y->bround(5),"\n"; # will give 0.66667
+Math::BigFloat provides support for arbitrary precision floating point.
+Overloading is also provided for Perl operators.
+
+All operators (including basic math operations) are overloaded if you
+declare your big floating point numbers as
- or
+ $x = Math::BigFloat -> new('12_3.456_789_123_456_789E-2');
- use Math::BigFloat;
- $x = Math::BigFloat->new(2);
- $y = $x->copy()->bdiv(3,5); # will give 0.66667
- print "$y\n";
+Operations with overloaded operators preserve the arguments, which is
+exactly what you expect.
-=head2 Rounding
+=head2 Input
+
+Input values to these routines may be any scalar number or string that looks
+like a number and represents a floating point number.
=over
-=item bfround ( +$scale )
+=item *
-Rounds to the $scale'th place left from the '.', counting from the dot.
-The first digit is numbered 1.
+Leading and trailing whitespace is ignored.
-=item bfround ( -$scale )
+=item *
-Rounds to the $scale'th place right from the '.', counting from the dot.
+Leading and trailing zeros are ignored.
-=item bfround ( 0 )
+=item *
-Rounds to an integer.
+If the string has a "0x" prefix, it is interpreted as a hexadecimal number.
-=item bround ( +$scale )
+=item *
-Preserves accuracy to $scale digits from the left (aka significant digits)
-and pads the rest with zeros. If the number is between 1 and -1, the
-significant digits count from the first non-zero after the '.'
+If the string has a "0b" prefix, it is interpreted as a binary number.
-=item bround ( -$scale ) and bround ( 0 )
+=item *
-These are effectively no-ops.
+For hexadecimal and binary numbers, the exponent must be separated from the
+significand (mantissa) by the letter "p" or "P", not "e" or "E" as with decimal
+numbers.
+
+=item *
+
+One underline is allowed between any two digits, including hexadecimal and
+binary digits.
+
+=item *
+
+If the string can not be interpreted, NaN is returned.
=back
-All rounding functions take as a second parameter a rounding mode from one of
-the following: 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'.
+Octal numbers are typically prefixed by "0", but since leading zeros are
+stripped, these methods can not automatically recognize octal numbers, so use
+the constructor from_oct() to interpret octal strings.
-The default rounding mode is 'even'. By using
-C<< Math::BigFloat->round_mode($round_mode); >> you can get and set the default
-mode for subsequent rounding. The usage of C<$Math::BigFloat::$round_mode> is
-no longer supported.
-The second parameter to the round functions then overrides the default
-temporarily.
+Some examples of valid string input
-The C<as_number()> function returns a BigInt from a Math::BigFloat. It uses
-'trunc' as rounding mode to make it equivalent to:
+ Input string Resulting value
+ 123 123
+ 1.23e2 123
+ 12300e-2 123
+ 0xcafe 51966
+ 0b1101 13
+ 67_538_754 67538754
+ -4_5_6.7_8_9e+0_1_0 -4567890000000
+ 0x1.921fb5p+1 3.14159262180328369140625e+0
+ 0b1.1001p-4 9.765625e-2
+
+=head2 Output
- $x = 2.5;
- $y = int($x) + 2;
+Output values are usually Math::BigFloat objects.
-You can override this by passing the desired rounding mode as parameter to
-C<as_number()>:
+Boolean operators C<is_zero()>, C<is_one()>, C<is_inf()>, etc. return true or
+false.
- $x = Math::BigFloat->new(2.5);
- $y = $x->as_number('odd'); # $y = 3
+Comparison operators C<bcmp()> and C<bacmp()>) return -1, 0, 1, or
+undef.
=head1 METHODS
Math::BigFloat supports all methods that Math::BigInt supports, except it
-calculates non-integer results when possible. Please see L<Math::BigInt>
-for a full description of each method. Below are just the most important
-differences:
+calculates non-integer results when possible. Please see L<Math::BigInt> for a
+full description of each method. Below are just the most important differences:
+
+=head2 Configuration methods
=over
=item accuracy()
- $x->accuracy(5); # local for $x
- CLASS->accuracy(5); # global for all members of CLASS
- # Note: This also applies to new()!
+ $x->accuracy(5); # local for $x
+ CLASS->accuracy(5); # global for all members of CLASS
+ # Note: This also applies to new()!
- $A = $x->accuracy(); # read out accuracy that affects $x
- $A = CLASS->accuracy(); # read out global accuracy
+ $A = $x->accuracy(); # read out accuracy that affects $x
+ $A = CLASS->accuracy(); # read out global accuracy
Set or get the global or local accuracy, aka how many significant digits the
results have. If you set a global accuracy, then this also applies to new()!
@@ -4649,36 +4963,101 @@ influence of C<< CLASS->accuracy($A) >>, all results from math operations with
that number will also be rounded.
In most cases, you should probably round the results explicitly using one of
-L<Math::BigInt/round()>, L<Math::BigInt/bround()> or L<Math::BigInt/bfround()> or by passing the desired accuracy
-to the math operation as additional parameter:
+L<Math::BigInt/round()>, L<Math::BigInt/bround()> or L<Math::BigInt/bfround()>
+or by passing the desired accuracy to the math operation as additional
+parameter:
- my $x = Math::BigInt->new(30000);
- my $y = Math::BigInt->new(7);
- print scalar $x->copy()->bdiv($y, 2); # print 4300
- print scalar $x->copy()->bdiv($y)->bround(2); # print 4300
+ my $x = Math::BigInt->new(30000);
+ my $y = Math::BigInt->new(7);
+ print scalar $x->copy()->bdiv($y, 2); # print 4300
+ print scalar $x->copy()->bdiv($y)->bround(2); # print 4300
=item precision()
- $x->precision(-2); # local for $x, round at the second
+ $x->precision(-2); # local for $x, round at the second
# digit right of the dot
- $x->precision(2); # ditto, round at the second digit
+ $x->precision(2); # ditto, round at the second digit
# left of the dot
- CLASS->precision(5); # Global for all members of CLASS
+ CLASS->precision(5); # Global for all members of CLASS
# This also applies to new()!
- CLASS->precision(-5); # ditto
+ CLASS->precision(-5); # ditto
- $P = CLASS->precision(); # read out global precision
- $P = $x->precision(); # read out precision that affects $x
+ $P = CLASS->precision(); # read out global precision
+ $P = $x->precision(); # read out precision that affects $x
Note: You probably want to use L</accuracy()> instead. With L</accuracy()> you
set the number of digits each result should have, with L</precision()> you
set the place where to round!
+=back
+
+=head2 Constructor methods
+
+=over
+
+=item from_hex()
+
+ $x -> from_hex("0x1.921fb54442d18p+1");
+ $x = Math::BigFloat -> from_hex("0x1.921fb54442d18p+1");
+
+Interpret input as a hexadecimal string.A prefix ("0x", "x", ignoring case) is
+optional. A single underscore character ("_") may be placed between any two
+digits. If the input is invalid, a NaN is returned. The exponent is in base 2
+using decimal digits.
+
+If called as an instance method, the value is assigned to the invocand.
+
+=item from_oct()
+
+ $x -> from_oct("1.3267p-4");
+ $x = Math::BigFloat -> from_oct("1.3267p-4");
+
+Interpret input as an octal string. A single underscore character ("_") may be
+placed between any two digits. If the input is invalid, a NaN is returned. The
+exponent is in base 2 using decimal digits.
+
+If called as an instance method, the value is assigned to the invocand.
+
+=item from_bin()
+
+ $x -> from_bin("0b1.1001p-4");
+ $x = Math::BigFloat -> from_bin("0b1.1001p-4");
+
+Interpret input as a hexadecimal string. A prefix ("0b" or "b", ignoring case)
+is optional. A single underscore character ("_") may be placed between any two
+digits. If the input is invalid, a NaN is returned. The exponent is in base 2
+using decimal digits.
+
+If called as an instance method, the value is assigned to the invocand.
+
+=item bpi()
+
+ print Math::BigFloat->bpi(100), "\n";
+
+Calculate PI to N digits (including the 3 before the dot). The result is
+rounded according to the current rounding mode, which defaults to "even".
+
+This method was added in v1.87 of Math::BigInt (June 2007).
+
+=back
+
+=head2 Arithmetic methods
+
+=over
+
+=item bmuladd()
+
+ $x->bmuladd($y,$z);
+
+Multiply $x by $y, and then add $z to the result.
+
+This method was added in v1.87 of Math::BigInt (June 2007).
+
=item bdiv()
- $q = $x->bdiv($y);
- ($q, $r) = $x->bdiv($y);
+ $q = $x->bdiv($y);
+ ($q, $r) = $x->bdiv($y);
In scalar context, divides $x by $y and returns the result to the given or
default accuracy/precision. In list context, does floored division
@@ -4687,7 +5066,7 @@ $r. The remainer (modulo) is equal to what is returned by C<$x->bmod($y)>.
=item bmod()
- $x->bmod($y);
+ $x->bmod($y);
Returns $x modulo $y. When $x is finite, and $y is finite and non-zero, the
result is identical to the remainder after floored division (F-division). If,
@@ -4696,7 +5075,7 @@ from Perl's % operator.
=item bexp()
- $x->bexp($accuracy); # calculate e ** X
+ $x->bexp($accuracy); # calculate e ** X
Calculates the expression C<e ** $x> where C<e> is Euler's number.
@@ -4704,72 +5083,55 @@ This method was added in v1.82 of Math::BigInt (April 2007).
=item bnok()
- $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bnok($y); # x over y (binomial coefficient n over k)
Calculates the binomial coefficient n over k, also called the "choose"
function. The result is equivalent to:
- ( n ) n!
- | - | = -------
- ( k ) k!(n-k)!
+ ( n ) n!
+ | - | = -------
+ ( k ) k!(n-k)!
This method was added in v1.84 of Math::BigInt (April 2007).
-=item bpi()
+=item bsin()
- print Math::BigFloat->bpi(100), "\n";
+ my $x = Math::BigFloat->new(1);
+ print $x->bsin(100), "\n";
-Calculate PI to N digits (including the 3 before the dot). The result is
-rounded according to the current rounding mode, which defaults to "even".
+Calculate the sinus of $x, modifying $x in place.
This method was added in v1.87 of Math::BigInt (June 2007).
=item bcos()
- my $x = Math::BigFloat->new(1);
- print $x->bcos(100), "\n";
+ my $x = Math::BigFloat->new(1);
+ print $x->bcos(100), "\n";
Calculate the cosinus of $x, modifying $x in place.
This method was added in v1.87 of Math::BigInt (June 2007).
-=item bsin()
+=item batan()
- my $x = Math::BigFloat->new(1);
- print $x->bsin(100), "\n";
+ my $x = Math::BigFloat->new(1);
+ print $x->batan(100), "\n";
-Calculate the sinus of $x, modifying $x in place.
+Calculate the arcus tanges of $x, modifying $x in place. See also L</batan2()>.
This method was added in v1.87 of Math::BigInt (June 2007).
=item batan2()
- my $y = Math::BigFloat->new(2);
- my $x = Math::BigFloat->new(3);
- print $y->batan2($x), "\n";
+ my $y = Math::BigFloat->new(2);
+ my $x = Math::BigFloat->new(3);
+ print $y->batan2($x), "\n";
Calculate the arcus tanges of C<$y> divided by C<$x>, modifying $y in place.
See also L</batan()>.
This method was added in v1.87 of Math::BigInt (June 2007).
-=item batan()
-
- my $x = Math::BigFloat->new(1);
- print $x->batan(100), "\n";
-
-Calculate the arcus tanges of $x, modifying $x in place. See also L</batan2()>.
-
-This method was added in v1.87 of Math::BigInt (June 2007).
-
-=item bmuladd()
-
- $x->bmuladd($y,$z);
-
-Multiply $x by $y, and then add $z to the result.
-
-This method was added in v1.87 of Math::BigInt (June 2007).
-
=item as_float()
This method is called when Math::BigFloat encounters an object it doesn't know
@@ -4788,43 +5150,116 @@ C<ref($x)-E<gt>new()> can parse to create an object.
In Math::BigFloat, C<as_float()> has the same effect as C<copy()>.
-=item from_hex()
+=back
- $x -> from_hex("0x1.921fb54442d18p+1");
- $x = Math::BigFloat -> from_hex("0x1.921fb54442d18p+1");
+=head2 ACCURACY AND PRECISION
-Interpret input as a hexadecimal string.A prefix ("0x", "x", ignoring case) is
-optional. A single underscore character ("_") may be placed between any two
-digits. If the input is invalid, a NaN is returned. The exponent is in base 2
-using decimal digits.
+See also: L<Rounding|/Rounding>.
-If called as an instance method, the value is assigned to the invocand.
+Math::BigFloat supports both precision (rounding to a certain place before or
+after the dot) and accuracy (rounding to a certain number of digits). For a
+full documentation, examples and tips on these topics please see the large
+section about rounding in L<Math::BigInt>.
-=item from_bin()
+Since things like C<sqrt(2)> or C<1 / 3> must presented with a limited
+accuracy lest a operation consumes all resources, each operation produces
+no more than the requested number of digits.
- $x -> from_bin("0b1.1001p-4");
- $x = Math::BigFloat -> from_bin("0b1.1001p-4");
+If there is no global precision or accuracy set, B<and> the operation in
+question was not called with a requested precision or accuracy, B<and> the
+input $x has no accuracy or precision set, then a fallback parameter will
+be used. For historical reasons, it is called C<div_scale> and can be accessed
+via:
-Interpret input as a hexadecimal string. A prefix ("0b" or "b", ignoring case)
-is optional. A single underscore character ("_") may be placed between any two
-digits. If the input is invalid, a NaN is returned. The exponent is in base 2
-using decimal digits.
+ $d = Math::BigFloat->div_scale(); # query
+ Math::BigFloat->div_scale($n); # set to $n digits
-If called as an instance method, the value is assigned to the invocand.
+The default value for C<div_scale> is 40.
-=item from_oct()
+In case the result of one operation has more digits than specified,
+it is rounded. The rounding mode taken is either the default mode, or the one
+supplied to the operation after the I<scale>:
- $x -> from_oct("1.3267p-4");
- $x = Math::BigFloat -> from_oct("1.3267p-4");
+ $x = Math::BigFloat->new(2);
+ Math::BigFloat->accuracy(5); # 5 digits max
+ $y = $x->copy()->bdiv(3); # gives 0.66667
+ $y = $x->copy()->bdiv(3,6); # gives 0.666667
+ $y = $x->copy()->bdiv(3,6,undef,'odd'); # gives 0.666667
+ Math::BigFloat->round_mode('zero');
+ $y = $x->copy()->bdiv(3,6); # will also give 0.666667
-Interpret input as an octal string. A single underscore character ("_") may be
-placed between any two digits. If the input is invalid, a NaN is returned. The
-exponent is in base 2 using decimal digits.
+Note that C<< Math::BigFloat->accuracy() >> and C<< Math::BigFloat->precision() >>
+set the global variables, and thus B<any> newly created number will be subject
+to the global rounding B<immediately>. This means that in the examples above, the
+C<3> as argument to C<bdiv()> will also get an accuracy of B<5>.
-If called as an instance method, the value is assigned to the invocand.
+It is less confusing to either calculate the result fully, and afterwards
+round it explicitly, or use the additional parameters to the math
+functions like so:
+
+ use Math::BigFloat;
+ $x = Math::BigFloat->new(2);
+ $y = $x->copy()->bdiv(3);
+ print $y->bround(5),"\n"; # gives 0.66667
+
+ or
+
+ use Math::BigFloat;
+ $x = Math::BigFloat->new(2);
+ $y = $x->copy()->bdiv(3,5); # gives 0.66667
+ print "$y\n";
+
+=head2 Rounding
+
+=over
+
+=item bfround ( +$scale )
+
+Rounds to the $scale'th place left from the '.', counting from the dot.
+The first digit is numbered 1.
+
+=item bfround ( -$scale )
+
+Rounds to the $scale'th place right from the '.', counting from the dot.
+
+=item bfround ( 0 )
+
+Rounds to an integer.
+
+=item bround ( +$scale )
+
+Preserves accuracy to $scale digits from the left (aka significant digits) and
+pads the rest with zeros. If the number is between 1 and -1, the significant
+digits count from the first non-zero after the '.'
+
+=item bround ( -$scale ) and bround ( 0 )
+
+These are effectively no-ops.
=back
+All rounding functions take as a second parameter a rounding mode from one of
+the following: 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'.
+
+The default rounding mode is 'even'. By using
+C<< Math::BigFloat->round_mode($round_mode); >> you can get and set the default
+mode for subsequent rounding. The usage of C<$Math::BigFloat::$round_mode> is
+no longer supported.
+The second parameter to the round functions then overrides the default
+temporarily.
+
+The C<as_number()> function returns a BigInt from a Math::BigFloat. It uses
+'trunc' as rounding mode to make it equivalent to:
+
+ $x = 2.5;
+ $y = int($x) + 2;
+
+You can override this by passing the desired rounding mode as parameter to
+C<as_number()>:
+
+ $x = Math::BigFloat->new(2.5);
+ $y = $x->as_number('odd'); # $y = 3
+
=head1 Autocreating constants
After C<use Math::BigFloat ':constant'> all the floating point constants
@@ -4833,13 +5268,13 @@ happens at compile time.
In particular
- perl -MMath::BigFloat=:constant -e 'print 2E-100,"\n"'
+ perl -MMath::BigFloat=:constant -e 'print 2E-100,"\n"'
-prints the value of C<2E-100>. Note that without conversion of
-constants the expression 2E-100 will be calculated as normal floating point
+prints the value of C<2E-100>. Note that without conversion of
+constants the expression 2E-100 will be calculated as normal floating point
number.
-Please note that ':constant' does not affect integer constants, nor binary
+Please note that ':constant' does not affect integer constants, nor binary
nor hexadecimal constants. Use L<bignum> or L<Math::BigInt> to get this to
work.
@@ -4848,11 +5283,11 @@ work.
Math with the numbers is done (by default) by a module called
Math::BigInt::Calc. This is equivalent to saying:
- use Math::BigFloat lib => 'Calc';
+ use Math::BigFloat lib => 'Calc';
You can change this by using:
- use Math::BigFloat lib => 'GMP';
+ use Math::BigFloat lib => 'GMP';
B<Note>: General purpose packages should not be explicit about the library
to use; let the script author decide which is best.
@@ -4860,18 +5295,18 @@ to use; let the script author decide which is best.
Note: The keyword 'lib' will warn when the requested library could not be
loaded. To suppress the warning use 'try' instead:
- use Math::BigFloat try => 'GMP';
+ use Math::BigFloat try => 'GMP';
If your script works with huge numbers and Calc is too slow for them,
you can also for the loading of one of these libraries and if none
of them can be used, the code will die:
- use Math::BigFloat only => 'GMP,Pari';
+ use Math::BigFloat only => 'GMP,Pari';
The following would first try to find Math::BigInt::Foo, then
Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
- use Math::BigFloat lib => 'Foo,Math::BigInt::Bar';
+ use Math::BigFloat lib => 'Foo,Math::BigInt::Bar';
See the respective low-level library documentation for further details.
@@ -4879,16 +5314,16 @@ Please note that Math::BigFloat does B<not> use the denoted library itself,
but it merely passes the lib argument to Math::BigInt. So, instead of the need
to do:
- use Math::BigInt lib => 'GMP';
- use Math::BigFloat;
+ use Math::BigInt lib => 'GMP';
+ use Math::BigFloat;
you can roll it all into one line:
- use Math::BigFloat lib => 'GMP';
+ use Math::BigFloat lib => 'GMP';
It is also possible to just require Math::BigFloat:
- require Math::BigFloat;
+ require Math::BigFloat;
This will load the necessary things (like BigInt) when they are needed, and
automatically.
@@ -4901,7 +5336,7 @@ a different low-level library.
For backwards compatibility reasons it is still possible to
request a different storage class for use with Math::BigFloat:
- use Math::BigFloat with => 'Math::BigInt::Lite';
+ use Math::BigFloat with => 'Math::BigInt::Lite';
However, this request is ignored, as the current code now uses the low-level
math library for directly storing the number parts.
@@ -4910,9 +5345,9 @@ math library for directly storing the number parts.
C<Math::BigFloat> exports nothing by default, but can export the C<bpi()> method:
- use Math::BigFloat qw/bpi/;
+ use Math::BigFloat qw/bpi/;
- print bpi(10), "\n";
+ print bpi(10), "\n";
=head1 CAVEATS
@@ -4920,14 +5355,14 @@ Do not try to be clever to insert some operations in between switching
libraries:
require Math::BigFloat;
- my $matter = Math::BigFloat->bone() + 4; # load BigInt and Calc
- Math::BigFloat->import( lib => 'Pari' ); # load Pari, too
- my $anti_matter = Math::BigFloat->bone()+4; # now use Pari
+ my $matter = Math::BigFloat->bone() + 4; # load BigInt and Calc
+ Math::BigFloat->import( lib => 'Pari' ); # load Pari, too
+ my $anti_matter = Math::BigFloat->bone()+4; # now use Pari
This will create objects with numbers stored in two different backend libraries,
and B<VERY BAD THINGS> will happen when you use these together:
- my $flash_and_bang = $matter + $anti_matter; # Don't do this!
+ my $flash_and_bang = $matter + $anti_matter; # Don't do this!
=over
@@ -4937,35 +5372,20 @@ Both stringify and bstr() now drop the leading '+'. The old code would return
'+1.23', the new returns '1.23'. See the documentation in L<Math::BigInt> for
reasoning and details.
-=item bdiv()
-
-The following will probably not print what you expect:
-
- print $c->bdiv(123.456),"\n";
-
-It prints both quotient and remainder since print works in list context. Also,
-bdiv() will modify $c, so be careful. You probably want to use
-
- print $c / 123.456,"\n";
- # or if you want to modify $c:
- print scalar $c->bdiv(123.456),"\n";
-
-instead.
-
=item brsft()
The following will probably not print what you expect:
- my $c = Math::BigFloat->new('3.14159');
- print $c->brsft(3,10),"\n"; # prints 0.00314153.1415
+ my $c = Math::BigFloat->new('3.14159');
+ print $c->brsft(3,10),"\n"; # prints 0.00314153.1415
It prints both quotient and remainder, since print calls C<brsft()> in list
context. Also, C<< $c->brsft() >> will modify $c, so be careful.
You probably want to use
- print scalar $c->copy()->brsft(3,10),"\n";
- # or if you really want to modify $c
- print scalar $c->brsft(3,10),"\n";
+ print scalar $c->copy()->brsft(3,10),"\n";
+ # or if you really want to modify $c
+ print scalar $c->brsft(3,10),"\n";
instead.
@@ -4973,24 +5393,14 @@ instead.
Beware of:
- $x = Math::BigFloat->new(5);
- $y = $x;
+ $x = Math::BigFloat->new(5);
+ $y = $x;
It will not do what you think, e.g. making a copy of $x. Instead it just makes
a second reference to the B<same> object and stores it in $y. Thus anything
that modifies $x will modify $y (except overloaded math operators), and vice
versa. See L<Math::BigInt> for details and how to avoid that.
-=item bpow()
-
-C<bpow()> now modifies the first argument, unlike the old code which left
-it alone and only returned the result. This is to be consistent with
-C<badd()> etc. The first will modify $x, the second one won't:
-
- print bpow($x,$i),"\n"; # modify $x
- print $x->bpow($i),"\n"; # ditto
- print $x ** $i,"\n"; # leave $x alone
-
=item precision() vs. accuracy()
A common pitfall is to use L</precision()> when you want to round a result to
@@ -4998,39 +5408,39 @@ a certain number of digits:
use Math::BigFloat;
- Math::BigFloat->precision(4); # does not do what you
- # think it does
- my $x = Math::BigFloat->new(12345); # rounds $x to "12000"!
- print "$x\n"; # print "12000"
- my $y = Math::BigFloat->new(3); # rounds $y to "0"!
- print "$y\n"; # print "0"
- $z = $x / $y; # 12000 / 0 => NaN!
+ Math::BigFloat->precision(4); # does not do what you
+ # think it does
+ my $x = Math::BigFloat->new(12345); # rounds $x to "12000"!
+ print "$x\n"; # print "12000"
+ my $y = Math::BigFloat->new(3); # rounds $y to "0"!
+ print "$y\n"; # print "0"
+ $z = $x / $y; # 12000 / 0 => NaN!
print "$z\n";
- print $z->precision(),"\n"; # 4
+ print $z->precision(),"\n"; # 4
Replacing L</precision()> with L</accuracy()> is probably not what you want, either:
use Math::BigFloat;
- Math::BigFloat->accuracy(4); # enables global rounding:
+ Math::BigFloat->accuracy(4); # enables global rounding:
my $x = Math::BigFloat->new(123456); # rounded immediately
# to "12350"
- print "$x\n"; # print "123500"
- my $y = Math::BigFloat->new(3); # rounded to "3
- print "$y\n"; # print "3"
+ print "$x\n"; # print "123500"
+ my $y = Math::BigFloat->new(3); # rounded to "3
+ print "$y\n"; # print "3"
print $z = $x->copy()->bdiv($y),"\n"; # 41170
- print $z->accuracy(),"\n"; # 4
+ print $z->accuracy(),"\n"; # 4
What you want to use instead is:
use Math::BigFloat;
my $x = Math::BigFloat->new(123456); # no rounding
- print "$x\n"; # print "123456"
- my $y = Math::BigFloat->new(3); # no rounding
- print "$y\n"; # print "3"
+ print "$x\n"; # print "123456"
+ my $y = Math::BigFloat->new(3); # no rounding
+ print "$y\n"; # print "3"
print $z = $x->copy()->bdiv($y,4),"\n"; # 41150
- print $z->accuracy(),"\n"; # undef
+ print $z->accuracy(),"\n"; # undef
In addition to computing what you expected, the last example also does B<not>
"taint" the result with an accuracy or precision setting, which would
@@ -5124,11 +5534,11 @@ Completely rewritten by Tels L<http://bloodgate.com> in 2001-2008.
=item *
-Florian Ragwitz L<flora@cpan.org>, 2010.
+Florian Ragwitz E<lt>flora@cpan.orgE<gt>, 2010.
=item *
-Peter John Acklam, L<pjacklam@online.no>, 2011-.
+Peter John Acklam E<lt>pjacklam@online.noE<gt>, 2011-.
=back
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm
index a50b37e832a..9fd9bd02ba3 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm
@@ -7,10 +7,9 @@ package Math::BigInt;
# The following hash values are used:
# value: unsigned int with actual value (as a Math::BigInt::Calc or similar)
-# sign : +,-,NaN,+inf,-inf
+# sign : +, -, NaN, +inf, -inf
# _a : accuracy
# _p : precision
-# _f : flags, used by MBF to flag parts of a float as untouchable
# Remember not to take shortcuts ala $xs = $x->{value}; $CALC->foo($xs); since
# underlying lib might change the reference!
@@ -19,17 +18,13 @@ use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999715';
-$VERSION = eval $VERSION;
+use Carp ();
+
+our $VERSION = '1.999811';
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(objectify bgcd blcm);
-# _trap_inf and _trap_nan are internal and should never be accessed from the
-# outside
-our ($round_mode, $accuracy, $precision, $div_scale, $rnd_mode,
- $upgrade, $downgrade, $_trap_nan, $_trap_inf);
-
my $class = "Math::BigInt";
# Inside overload, the first arg is always an object. If the original code had
@@ -43,120 +38,175 @@ my $class = "Math::BigInt";
# Thus inheritance of overload operators becomes possible and transparent for
# our subclasses without the need to repeat the entire overload section there.
-# We register ops that are not registerable yet, so suppress warnings
-{ no warnings;
use overload
-'=' => sub { $_[0]->copy(); },
-
-# some shortcuts for speed (assumes that reversed order of arguments is routed
-# to normal '+' and we thus can always modify first arg. If this is changed,
-# this breaks and must be adjusted.)
-'+=' => sub { $_[0]->badd($_[1]); },
-'-=' => sub { $_[0]->bsub($_[1]); },
-'*=' => sub { $_[0]->bmul($_[1]); },
-'/=' => sub { scalar $_[0]->bdiv($_[1]); },
-'%=' => sub { $_[0]->bmod($_[1]); },
-'^=' => sub { $_[0]->bxor($_[1]); },
-'&=' => sub { $_[0]->band($_[1]); },
-'|=' => sub { $_[0]->bior($_[1]); },
-
-'**=' => sub { $_[0]->bpow($_[1]); },
-'<<=' => sub { $_[0]->blsft($_[1]); },
-'>>=' => sub { $_[0]->brsft($_[1]); },
-
-# not supported by Perl yet
-'..' => \&_pointpoint,
-
-'<=>' => sub { my $rc = $_[2] ?
- ref($_[0])->bcmp($_[1],$_[0]) :
- $_[0]->bcmp($_[1]);
- $rc = 1 unless defined $rc;
- $rc <=> 0;
- },
-# we need '>=' to get things like "1 >= NaN" right:
-'>=' => sub { my $rc = $_[2] ?
- ref($_[0])->bcmp($_[1],$_[0]) :
- $_[0]->bcmp($_[1]);
- # if there was a NaN involved, return false
- return '' unless defined $rc;
- $rc >= 0;
- },
-'cmp' => sub {
- $_[2] ?
- "$_[1]" cmp $_[0]->bstr() :
- $_[0]->bstr() cmp "$_[1]" },
-
-'cos' => sub { $_[0]->copy->bcos(); },
-'sin' => sub { $_[0]->copy->bsin(); },
-'atan2' => sub { $_[2] ?
- ref($_[0])->new($_[1])->batan2($_[0]) :
- $_[0]->copy()->batan2($_[1]) },
-
-# are not yet overloadable
-#'hex' => sub { print "hex"; $_[0]; },
-#'oct' => sub { print "oct"; $_[0]; },
-
-# log(N) is log(N, e), where e is Euler's number
-'log' => sub { $_[0]->copy()->blog(); },
-'exp' => sub { $_[0]->copy()->bexp($_[1]); },
-'int' => sub { $_[0]->copy(); },
-'neg' => sub { $_[0]->copy()->bneg(); },
-'abs' => sub { $_[0]->copy()->babs(); },
-'sqrt' => sub { $_[0]->copy()->bsqrt(); },
-'~' => sub { $_[0]->copy()->bnot(); },
-
-# for subtract it's a bit tricky to not modify b: b-a => -a+b
-'-' => sub { my $c = $_[0]->copy; $_[2] ?
- $c->bneg()->badd( $_[1]) :
- $c->bsub( $_[1]) },
-'+' => sub { $_[0]->copy()->badd($_[1]); },
-'*' => sub { $_[0]->copy()->bmul($_[1]); },
-
-'/' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bdiv($_[0]) : $_[0]->copy->bdiv($_[1]);
- },
-'%' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bmod($_[0]) : $_[0]->copy->bmod($_[1]);
- },
-'**' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bpow($_[0]) : $_[0]->copy->bpow($_[1]);
- },
-'<<' => sub {
- $_[2] ? ref($_[0])->new($_[1])->blsft($_[0]) : $_[0]->copy->blsft($_[1]);
- },
-'>>' => sub {
- $_[2] ? ref($_[0])->new($_[1])->brsft($_[0]) : $_[0]->copy->brsft($_[1]);
- },
-'&' => sub {
- $_[2] ? ref($_[0])->new($_[1])->band($_[0]) : $_[0]->copy->band($_[1]);
- },
-'|' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bior($_[0]) : $_[0]->copy->bior($_[1]);
- },
-'^' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bxor($_[0]) : $_[0]->copy->bxor($_[1]);
- },
-
-# can modify arg of ++ and --, so avoid a copy() for speed, but don't
-# use $_[0]->bone(), it would modify $_[0] to be 1!
-'++' => sub { $_[0]->binc() },
-'--' => sub { $_[0]->bdec() },
-
-# if overloaded, O(1) instead of O(N) and twice as fast for small numbers
-'bool' => sub {
- # this kludge is needed for perl prior 5.6.0 since returning 0 here fails :-/
- # v5.6.1 dumps on this: return !$_[0]->is_zero() || undef; :-(
- my $t = undef;
- $t = 1 if !$_[0]->is_zero();
- $t;
- },
-
-# the original qw() does not work with the TIESCALAR below, why?
-# Order of arguments insignificant
-'""' => sub { $_[0]->bstr(); },
-'0+' => sub { $_[0]->numify(); }
-;
-} # no warnings scope
+
+ # overload key: with_assign
+
+ '+' => sub { $_[0] -> copy() -> badd($_[1]); },
+
+ '-' => sub { my $c = $_[0] -> copy;
+ $_[2] ? $c -> bneg() -> badd($_[1])
+ : $c -> bsub($_[1]); },
+
+ '*' => sub { $_[0] -> copy() -> bmul($_[1]); },
+
+ '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0])
+ : $_[0] -> copy -> bdiv($_[1]); },
+
+ '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0])
+ : $_[0] -> copy -> bmod($_[1]); },
+
+ '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0])
+ : $_[0] -> copy -> bpow($_[1]); },
+
+ '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blsft($_[0])
+ : $_[0] -> copy -> blsft($_[1]); },
+
+ '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> brsft($_[0])
+ : $_[0] -> copy -> brsft($_[1]); },
+
+ # overload key: assign
+
+ '+=' => sub { $_[0]->badd($_[1]); },
+
+ '-=' => sub { $_[0]->bsub($_[1]); },
+
+ '*=' => sub { $_[0]->bmul($_[1]); },
+
+ '/=' => sub { scalar $_[0]->bdiv($_[1]); },
+
+ '%=' => sub { $_[0]->bmod($_[1]); },
+
+ '**=' => sub { $_[0]->bpow($_[1]); },
+
+
+ '<<=' => sub { $_[0]->blsft($_[1]); },
+
+ '>>=' => sub { $_[0]->brsft($_[1]); },
+
+# 'x=' => sub { },
+
+# '.=' => sub { },
+
+ # overload key: num_comparison
+
+ '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0])
+ : $_[0] -> blt($_[1]); },
+
+ '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0])
+ : $_[0] -> ble($_[1]); },
+
+ '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0])
+ : $_[0] -> bgt($_[1]); },
+
+ '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0])
+ : $_[0] -> bge($_[1]); },
+
+ '==' => sub { $_[0] -> beq($_[1]); },
+
+ '!=' => sub { $_[0] -> bne($_[1]); },
+
+ # overload key: 3way_comparison
+
+ '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]);
+ defined($cmp) && $_[2] ? -$cmp : $cmp; },
+
+ 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr()
+ : $_[0] -> bstr() cmp "$_[1]"; },
+
+ # overload key: str_comparison
+
+# 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0])
+# : $_[0] -> bstrlt($_[1]); },
+#
+# 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0])
+# : $_[0] -> bstrle($_[1]); },
+#
+# 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0])
+# : $_[0] -> bstrgt($_[1]); },
+#
+# 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0])
+# : $_[0] -> bstrge($_[1]); },
+#
+# 'eq' => sub { $_[0] -> bstreq($_[1]); },
+#
+# 'ne' => sub { $_[0] -> bstrne($_[1]); },
+
+ # overload key: binary
+
+ '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0])
+ : $_[0] -> copy -> band($_[1]); },
+
+ '&=' => sub { $_[0] -> band($_[1]); },
+
+ '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0])
+ : $_[0] -> copy -> bior($_[1]); },
+
+ '|=' => sub { $_[0] -> bior($_[1]); },
+
+ '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0])
+ : $_[0] -> copy -> bxor($_[1]); },
+
+ '^=' => sub { $_[0] -> bxor($_[1]); },
+
+# '&.' => sub { },
+
+# '&.=' => sub { },
+
+# '|.' => sub { },
+
+# '|.=' => sub { },
+
+# '^.' => sub { },
+
+# '^.=' => sub { },
+
+ # overload key: unary
+
+ 'neg' => sub { $_[0] -> copy() -> bneg(); },
+
+# '!' => sub { },
+
+ '~' => sub { $_[0] -> copy() -> bnot(); },
+
+# '~.' => sub { },
+
+ # overload key: mutators
+
+ '++' => sub { $_[0] -> binc() },
+
+ '--' => sub { $_[0] -> bdec() },
+
+ # overload key: func
+
+ 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0])
+ : $_[0] -> copy() -> batan2($_[1]); },
+
+ 'cos' => sub { $_[0] -> copy -> bcos(); },
+
+ 'sin' => sub { $_[0] -> copy -> bsin(); },
+
+ 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); },
+
+ 'abs' => sub { $_[0] -> copy() -> babs(); },
+
+ 'log' => sub { $_[0] -> copy() -> blog(); },
+
+ 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); },
+
+ 'int' => sub { $_[0] -> copy() -> bint(); },
+
+ # overload key: conversion
+
+ 'bool' => sub { $_[0] -> is_zero() ? '' : 1; },
+
+ '""' => sub { $_[0] -> bstr(); },
+
+ '0+' => sub { $_[0] -> numify(); },
+
+ '=' => sub { $_[0]->copy(); },
+
+ ;
##############################################################################
# global constants, flags and accessory
@@ -164,18 +214,18 @@ use overload
# These vars are public, but their direct usage is not recommended, use the
# accessor methods instead
-$round_mode = 'even'; # one of 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'
-$accuracy = undef;
-$precision = undef;
-$div_scale = 40;
-
-$upgrade = undef; # default is no upgrade
-$downgrade = undef; # default is no downgrade
+our $round_mode = 'even'; # one of 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'
+our $accuracy = undef;
+our $precision = undef;
+our $div_scale = 40;
+our $upgrade = undef; # default is no upgrade
+our $downgrade = undef; # default is no downgrade
# These are internally, and not to be used from the outside at all
-$_trap_nan = 0; # are NaNs ok? set w/ config()
-$_trap_inf = 0; # are infs ok? set w/ config()
+our $_trap_nan = 0; # are NaNs ok? set w/ config()
+our $_trap_inf = 0; # are infs ok? set w/ config()
+
my $nan = 'NaN'; # constants for easier life
my $CALC = 'Math::BigInt::Calc'; # module to do the low level math
@@ -190,328 +240,287 @@ my $EMU_LIB = 'Math/BigInt/CalcEmu.pm'; # emulate low-level math
##############################################################################
# the old code had $rnd_mode, so we need to support it, too
-$rnd_mode = 'even';
-sub TIESCALAR { my ($class) = @_; bless \$round_mode, $class; }
-sub FETCH { return $round_mode; }
-sub STORE { $rnd_mode = $_[0]->round_mode($_[1]); }
+our $rnd_mode = 'even';
-BEGIN
- {
- # tie to enable $rnd_mode to work transparently
- tie $rnd_mode, 'Math::BigInt';
+sub TIESCALAR {
+ my ($class) = @_;
+ bless \$round_mode, $class;
+}
- # set up some handy alias names
- *as_int = \&as_number;
- *is_pos = \&is_positive;
- *is_neg = \&is_negative;
- }
+sub FETCH {
+ return $round_mode;
+}
-##############################################################################
+sub STORE {
+ $rnd_mode = $_[0]->round_mode($_[1]);
+}
-sub round_mode
- {
- no strict 'refs';
- # make Class->round_mode() work
- my $self = shift;
- my $class = ref($self) || $self || __PACKAGE__;
- if (defined $_[0])
- {
- my $m = shift;
- if ($m !~ /^(even|odd|\+inf|\-inf|zero|trunc|common)$/)
- {
- require Carp; Carp::croak ("Unknown round mode '$m'");
- }
- return ${"${class}::round_mode"} = $m;
- }
- ${"${class}::round_mode"};
- }
-
-sub upgrade
- {
- no strict 'refs';
- # make Class->upgrade() work
- my $self = shift;
- my $class = ref($self) || $self || __PACKAGE__;
- # need to set new value?
- if (@_ > 0)
- {
- return ${"${class}::upgrade"} = $_[0];
- }
- ${"${class}::upgrade"};
- }
-
-sub downgrade
- {
- no strict 'refs';
- # make Class->downgrade() work
- my $self = shift;
- my $class = ref($self) || $self || __PACKAGE__;
- # need to set new value?
- if (@_ > 0)
- {
- return ${"${class}::downgrade"} = $_[0];
- }
- ${"${class}::downgrade"};
- }
-
-sub div_scale
- {
- no strict 'refs';
- # make Class->div_scale() work
- my $self = shift;
- my $class = ref($self) || $self || __PACKAGE__;
- if (defined $_[0])
- {
- if ($_[0] < 0)
- {
- require Carp; Carp::croak ('div_scale must be greater than zero');
- }
- ${"${class}::div_scale"} = $_[0];
- }
- ${"${class}::div_scale"};
- }
-
-sub accuracy
- {
- # $x->accuracy($a); ref($x) $a
- # $x->accuracy(); ref($x)
- # Class->accuracy(); class
- # Class->accuracy($a); class $a
-
- my $x = shift;
- my $class = ref($x) || $x || __PACKAGE__;
-
- no strict 'refs';
- # need to set new value?
- if (@_ > 0)
- {
- my $a = shift;
- # convert objects to scalars to avoid deep recursion. If object doesn't
- # have numify(), then hopefully it will have overloading for int() and
- # boolean test without wandering into a deep recursion path...
- $a = $a->numify() if ref($a) && $a->can('numify');
-
- if (defined $a)
- {
- # also croak on non-numerical
- if (!$a || $a <= 0)
- {
- require Carp;
- Carp::croak ('Argument to accuracy must be greater than zero');
- }
- if (int($a) != $a)
- {
- require Carp;
- Carp::croak ('Argument to accuracy must be an integer');
- }
- }
- if (ref($x))
- {
- # $object->accuracy() or fallback to global
- $x->bround($a) if $a; # not for undef, 0
- $x->{_a} = $a; # set/overwrite, even if not rounded
- delete $x->{_p}; # clear P
- $a = ${"${class}::accuracy"} unless defined $a; # proper return value
- }
- else
- {
- ${"${class}::accuracy"} = $a; # set global A
- ${"${class}::precision"} = undef; # clear global P
- }
- return $a; # shortcut
- }
-
- my $a;
- # $object->accuracy() or fallback to global
- $a = $x->{_a} if ref($x);
- # but don't return global undef, when $x's accuracy is 0!
- $a = ${"${class}::accuracy"} if !defined $a;
- $a;
- }
-
-sub precision
- {
- # $x->precision($p); ref($x) $p
- # $x->precision(); ref($x)
- # Class->precision(); class
- # Class->precision($p); class $p
-
- my $x = shift;
- my $class = ref($x) || $x || __PACKAGE__;
-
- no strict 'refs';
- if (@_ > 0)
- {
- my $p = shift;
- # convert objects to scalars to avoid deep recursion. If object doesn't
- # have numify(), then hopefully it will have overloading for int() and
- # boolean test without wandering into a deep recursion path...
- $p = $p->numify() if ref($p) && $p->can('numify');
- if ((defined $p) && (int($p) != $p))
- {
- require Carp; Carp::croak ('Argument to precision must be an integer');
- }
- if (ref($x))
- {
- # $object->precision() or fallback to global
- $x->bfround($p) if $p; # not for undef, 0
- $x->{_p} = $p; # set/overwrite, even if not rounded
- delete $x->{_a}; # clear A
- $p = ${"${class}::precision"} unless defined $p; # proper return value
- }
- else
- {
- ${"${class}::precision"} = $p; # set global P
- ${"${class}::accuracy"} = undef; # clear global A
- }
- return $p; # shortcut
- }
-
- my $p;
- # $object->precision() or fallback to global
- $p = $x->{_p} if ref($x);
- # but don't return global undef, when $x's precision is 0!
- $p = ${"${class}::precision"} if !defined $p;
- $p;
- }
-
-sub config
- {
- # return (or set) configuration data as hash ref
- my $class = shift || 'Math::BigInt';
-
- no strict 'refs';
- if (@_ > 1 || (@_ == 1 && (ref($_[0]) eq 'HASH')))
- {
- # try to set given options as arguments from hash
-
- my $args = $_[0];
- if (ref($args) ne 'HASH')
- {
- $args = { @_ };
- }
- # these values can be "set"
- my $set_args = {};
- foreach my $key (
- qw/trap_inf trap_nan
- upgrade downgrade precision accuracy round_mode div_scale/
- )
- {
- $set_args->{$key} = $args->{$key} if exists $args->{$key};
- delete $args->{$key};
- }
- if (keys %$args > 0)
- {
- require Carp;
- Carp::croak ("Illegal key(s) '",
- join("','",keys %$args),"' passed to $class\->config()");
- }
- foreach my $key (keys %$set_args)
- {
- if ($key =~ /^trap_(inf|nan)\z/)
- {
- ${"${class}::_trap_$1"} = ($set_args->{"trap_$1"} ? 1 : 0);
- next;
+BEGIN {
+ # tie to enable $rnd_mode to work transparently
+ tie $rnd_mode, 'Math::BigInt';
+
+ # set up some handy alias names
+ *as_int = \&as_number;
+ *is_pos = \&is_positive;
+ *is_neg = \&is_negative;
+}
+
+###############################################################################
+# Configuration methods
+###############################################################################
+
+sub round_mode {
+ no strict 'refs';
+ # make Class->round_mode() work
+ my $self = shift;
+ my $class = ref($self) || $self || __PACKAGE__;
+ if (defined $_[0]) {
+ my $m = shift;
+ if ($m !~ /^(even|odd|\+inf|\-inf|zero|trunc|common)$/) {
+ Carp::croak("Unknown round mode '$m'");
}
- # use a call instead of just setting the $variable to check argument
- $class->$key($set_args->{$key});
- }
- }
-
- # now return actual configuration
-
- my $cfg = {
- lib => $CALC,
- lib_version => ${"${CALC}::VERSION"},
- class => $class,
- trap_nan => ${"${class}::_trap_nan"},
- trap_inf => ${"${class}::_trap_inf"},
- version => ${"${class}::VERSION"},
- };
- foreach my $key (qw/
- upgrade downgrade precision accuracy round_mode div_scale
- /)
- {
- $cfg->{$key} = ${"${class}::$key"};
- };
- if (@_ == 1 && (ref($_[0]) ne 'HASH'))
- {
- # calls of the style config('lib') return just this value
- return $cfg->{$_[0]};
+ return ${"${class}::round_mode"} = $m;
+ }
+ ${"${class}::round_mode"};
+}
+
+sub upgrade {
+ no strict 'refs';
+ # make Class->upgrade() work
+ my $self = shift;
+ my $class = ref($self) || $self || __PACKAGE__;
+ # need to set new value?
+ if (@_ > 0) {
+ return ${"${class}::upgrade"} = $_[0];
}
- $cfg;
- }
+ ${"${class}::upgrade"};
+}
-sub _scale_a
- {
- # select accuracy parameter based on precedence,
- # used by bround() and bfround(), may return undef for scale (means no op)
- my ($x,$scale,$mode) = @_;
+sub downgrade {
+ no strict 'refs';
+ # make Class->downgrade() work
+ my $self = shift;
+ my $class = ref($self) || $self || __PACKAGE__;
+ # need to set new value?
+ if (@_ > 0) {
+ return ${"${class}::downgrade"} = $_[0];
+ }
+ ${"${class}::downgrade"};
+}
- $scale = $x->{_a} unless defined $scale;
+sub div_scale {
+ no strict 'refs';
+ # make Class->div_scale() work
+ my $self = shift;
+ my $class = ref($self) || $self || __PACKAGE__;
+ if (defined $_[0]) {
+ if ($_[0] < 0) {
+ Carp::croak('div_scale must be greater than zero');
+ }
+ ${"${class}::div_scale"} = $_[0];
+ }
+ ${"${class}::div_scale"};
+}
- no strict 'refs';
- my $class = ref($x);
+sub accuracy {
+ # $x->accuracy($a); ref($x) $a
+ # $x->accuracy(); ref($x)
+ # Class->accuracy(); class
+ # Class->accuracy($a); class $a
- $scale = ${ $class . '::accuracy' } unless defined $scale;
- $mode = ${ $class . '::round_mode' } unless defined $mode;
+ my $x = shift;
+ my $class = ref($x) || $x || __PACKAGE__;
- if (defined $scale)
- {
- $scale = $scale->can('numify') ? $scale->numify()
- : "$scale" if ref($scale);
- $scale = int($scale);
+ no strict 'refs';
+ # need to set new value?
+ if (@_ > 0) {
+ my $a = shift;
+ # convert objects to scalars to avoid deep recursion. If object doesn't
+ # have numify(), then hopefully it will have overloading for int() and
+ # boolean test without wandering into a deep recursion path...
+ $a = $a->numify() if ref($a) && $a->can('numify');
+
+ if (defined $a) {
+ # also croak on non-numerical
+ if (!$a || $a <= 0) {
+ Carp::croak('Argument to accuracy must be greater than zero');
+ }
+ if (int($a) != $a) {
+ Carp::croak('Argument to accuracy must be an integer');
+ }
+ }
+ if (ref($x)) {
+ # $object->accuracy() or fallback to global
+ $x->bround($a) if $a; # not for undef, 0
+ $x->{_a} = $a; # set/overwrite, even if not rounded
+ delete $x->{_p}; # clear P
+ $a = ${"${class}::accuracy"} unless defined $a; # proper return value
+ } else {
+ ${"${class}::accuracy"} = $a; # set global A
+ ${"${class}::precision"} = undef; # clear global P
+ }
+ return $a; # shortcut
}
- ($scale,$mode);
- }
+ my $a;
+ # $object->accuracy() or fallback to global
+ $a = $x->{_a} if ref($x);
+ # but don't return global undef, when $x's accuracy is 0!
+ $a = ${"${class}::accuracy"} if !defined $a;
+ $a;
+}
-sub _scale_p
- {
- # select precision parameter based on precedence,
- # used by bround() and bfround(), may return undef for scale (means no op)
- my ($x,$scale,$mode) = @_;
+sub precision {
+ # $x->precision($p); ref($x) $p
+ # $x->precision(); ref($x)
+ # Class->precision(); class
+ # Class->precision($p); class $p
- $scale = $x->{_p} unless defined $scale;
+ my $x = shift;
+ my $class = ref($x) || $x || __PACKAGE__;
- no strict 'refs';
- my $class = ref($x);
+ no strict 'refs';
+ if (@_ > 0) {
+ my $p = shift;
+ # convert objects to scalars to avoid deep recursion. If object doesn't
+ # have numify(), then hopefully it will have overloading for int() and
+ # boolean test without wandering into a deep recursion path...
+ $p = $p->numify() if ref($p) && $p->can('numify');
+ if ((defined $p) && (int($p) != $p)) {
+ Carp::croak('Argument to precision must be an integer');
+ }
+ if (ref($x)) {
+ # $object->precision() or fallback to global
+ $x->bfround($p) if $p; # not for undef, 0
+ $x->{_p} = $p; # set/overwrite, even if not rounded
+ delete $x->{_a}; # clear A
+ $p = ${"${class}::precision"} unless defined $p; # proper return value
+ } else {
+ ${"${class}::precision"} = $p; # set global P
+ ${"${class}::accuracy"} = undef; # clear global A
+ }
+ return $p; # shortcut
+ }
+
+ my $p;
+ # $object->precision() or fallback to global
+ $p = $x->{_p} if ref($x);
+ # but don't return global undef, when $x's precision is 0!
+ $p = ${"${class}::precision"} if !defined $p;
+ $p;
+}
- $scale = ${ $class . '::precision' } unless defined $scale;
- $mode = ${ $class . '::round_mode' } unless defined $mode;
+sub config {
+ # return (or set) configuration data as hash ref
+ my $class = shift || __PACKAGE__;
+
+ no strict 'refs';
+ if (@_ > 1 || (@_ == 1 && (ref($_[0]) eq 'HASH'))) {
+ # try to set given options as arguments from hash
- if (defined $scale)
+ my $args = $_[0];
+ if (ref($args) ne 'HASH') {
+ $args = { @_ };
+ }
+ # these values can be "set"
+ my $set_args = {};
+ foreach my $key (qw/
+ accuracy precision
+ round_mode div_scale
+ upgrade downgrade
+ trap_inf trap_nan
+ /)
+ {
+ $set_args->{$key} = $args->{$key} if exists $args->{$key};
+ delete $args->{$key};
+ }
+ if (keys %$args > 0) {
+ Carp::croak("Illegal key(s) '", join("', '", keys %$args),
+ "' passed to $class\->config()");
+ }
+ foreach my $key (keys %$set_args) {
+ if ($key =~ /^trap_(inf|nan)\z/) {
+ ${"${class}::_trap_$1"} = ($set_args->{"trap_$1"} ? 1 : 0);
+ next;
+ }
+ # use a call instead of just setting the $variable to check argument
+ $class->$key($set_args->{$key});
+ }
+ }
+
+ # now return actual configuration
+
+ my $cfg = {
+ lib => $CALC,
+ lib_version => ${"${CALC}::VERSION"},
+ class => $class,
+ trap_nan => ${"${class}::_trap_nan"},
+ trap_inf => ${"${class}::_trap_inf"},
+ version => ${"${class}::VERSION"},
+ };
+ foreach my $key (qw/
+ accuracy precision
+ round_mode div_scale
+ upgrade downgrade
+ /)
{
- $scale = $scale->can('numify') ? $scale->numify()
- : "$scale" if ref($scale);
- $scale = int($scale);
+ $cfg->{$key} = ${"${class}::$key"};
+ }
+ if (@_ == 1 && (ref($_[0]) ne 'HASH')) {
+ # calls of the style config('lib') return just this value
+ return $cfg->{$_[0]};
}
+ $cfg;
+}
- ($scale,$mode);
- }
+sub _scale_a {
+ # select accuracy parameter based on precedence,
+ # used by bround() and bfround(), may return undef for scale (means no op)
+ my ($x, $scale, $mode) = @_;
-##############################################################################
-# constructors
+ $scale = $x->{_a} unless defined $scale;
-sub copy {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+ no strict 'refs';
+ my $class = ref($x);
- # If called as a class method, the object to copy is the next argument.
+ $scale = ${ $class . '::accuracy' } unless defined $scale;
+ $mode = ${ $class . '::round_mode' } unless defined $mode;
- $self = shift() unless $selfref;
+ if (defined $scale) {
+ $scale = $scale->can('numify') ? $scale->numify()
+ : "$scale" if ref($scale);
+ $scale = int($scale);
+ }
- my $copy = bless {}, $class;
+ ($scale, $mode);
+}
- $copy->{sign} = $self->{sign};
- $copy->{value} = $CALC->_copy($self->{value});
- $copy->{_a} = $self->{_a} if exists $self->{_a};
- $copy->{_p} = $self->{_p} if exists $self->{_p};
+sub _scale_p {
+ # select precision parameter based on precedence,
+ # used by bround() and bfround(), may return undef for scale (means no op)
+ my ($x, $scale, $mode) = @_;
- return $copy;
+ $scale = $x->{_p} unless defined $scale;
+
+ no strict 'refs';
+ my $class = ref($x);
+
+ $scale = ${ $class . '::precision' } unless defined $scale;
+ $mode = ${ $class . '::round_mode' } unless defined $mode;
+
+ if (defined $scale) {
+ $scale = $scale->can('numify') ? $scale->numify()
+ : "$scale" if ref($scale);
+ $scale = int($scale);
+ }
+
+ ($scale, $mode);
}
+###############################################################################
+# Constructor methods
+###############################################################################
+
sub new {
# Create a new Math::BigInt object from a string or another Math::BigInt
# object. See hash keys documented at top.
@@ -524,15 +533,29 @@ sub new {
my $selfref = ref $self;
my $class = $selfref || $self;
+ # The POD says:
+ #
+ # "Currently, Math::BigInt->new() defaults to 0, while Math::BigInt->new('')
+ # results in 'NaN'. This might change in the future, so use always the
+ # following explicit forms to get a zero or NaN:
+ # $zero = Math::BigInt->bzero();
+ # $nan = Math::BigInt->bnan();
+ #
+ # But although this use has been discouraged for more than 10 years, people
+ # apparently still use it, so we still support it.
+
+ return $self->bzero() unless @_;
+
my ($wanted, $a, $p, $r) = @_;
- # If called as a class method, initialize a new object.
+ # Always return a new object, so it called as an instance method, copy the
+ # invocand, and if called as a class method, initialize a new object.
- $self = bless {}, $class unless $selfref;
+ $self = $selfref ? $self -> copy()
+ : bless {}, $class;
unless (defined $wanted) {
- require Carp;
- Carp::carp("Use of uninitialized value in new");
+ #Carp::carp("Use of uninitialized value in new()");
return $self->bzero($a, $p, $r);
}
@@ -571,7 +594,7 @@ sub new {
|| defined(${"${class}::accuracy"}))
{
$self->round($a, $p, $r)
- unless @_ == 4 && !defined $a && !defined $p;
+ unless @_ >= 3 && !defined $a && !defined $p;
}
return $self;
@@ -582,28 +605,38 @@ sub new {
if ($wanted =~ /^\s*([+-]?)inf(inity)?\s*\z/i) {
my $sgn = $1 || '+';
$self->{sign} = $sgn . 'inf'; # set a default sign for bstr()
- return $self->binf($sgn);
+ return $class->binf($sgn);
}
# Handle explicit NaNs (not the ones returned due to invalid input).
if ($wanted =~ /^\s*([+-]?)nan\s*\z/i) {
- return $self->bnan();
+ $self = $class -> bnan();
+ $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
+ return $self;
}
+ # Handle hexadecimal numbers.
+
if ($wanted =~ /^\s*[+-]?0[Xx]/) {
- return $class -> from_hex($wanted);
+ $self = $class -> from_hex($wanted);
+ $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
+ return $self;
}
+ # Handle binary numbers.
+
if ($wanted =~ /^\s*[+-]?0[Bb]/) {
- return $class -> from_bin($wanted);
+ $self = $class -> from_bin($wanted);
+ $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
+ return $self;
}
# Split string into mantissa, exponent, integer, fraction, value, and sign.
my ($mis, $miv, $mfv, $es, $ev) = _split($wanted);
if (!ref $mis) {
if ($_trap_nan) {
- require Carp; Carp::croak("$wanted is not a number in $class");
+ Carp::croak("$wanted is not a number in $class");
}
$self->{value} = $CALC->_zero();
$self->{sign} = $nan;
@@ -626,7 +659,7 @@ sub new {
my $diff = $e - CORE::length($$mfv);
if ($diff < 0) { # Not integer
if ($_trap_nan) {
- require Carp; Carp::croak("$wanted not an integer in $class");
+ Carp::croak("$wanted not an integer in $class");
}
#print "NOI 1\n";
return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
@@ -642,7 +675,7 @@ sub new {
if ($$mfv ne '') { # e <= 0
# fraction and negative/zero E => NOI
if ($_trap_nan) {
- require Carp; Carp::croak("$wanted not an integer in $class");
+ Carp::croak("$wanted not an integer in $class");
}
#print "NOI 2 \$\$mfv '$$mfv'\n";
return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
@@ -657,7 +690,7 @@ sub new {
if ($frac =~ /[^0]/) {
if ($_trap_nan) {
- require Carp; Carp::croak("$wanted not an integer in $class");
+ Carp::croak("$wanted not an integer in $class");
}
#print "NOI 3\n";
return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
@@ -675,1056 +708,1005 @@ sub new {
# $self. Do not round for new($x, undef, undef) since that is used by MBF
# to signal no rounding.
- $self->round($a, $p, $r) unless @_ == 4 && !defined $a && !defined $p;
+ $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
$self;
}
-sub bnan
- {
- # create a bigint 'NaN', if given a BigInt, set it to 'NaN'
- my $self = shift;
- $self = $class if !defined $self;
- if (!ref($self))
- {
- my $c = $self; $self = {}; bless $self, $c;
- }
- no strict 'refs';
- if (${"${class}::_trap_nan"})
- {
- require Carp;
- Carp::croak ("Tried to set $self to NaN in $class\::bnan()");
- }
- $self->import() if $IMPORT == 0; # make require work
- return if $self->modify('bnan');
- if ($self->can('_bnan'))
- {
- # use subclass to initialize
- $self->_bnan();
- }
- else
- {
- # otherwise do our own thing
- $self->{value} = $CALC->_zero();
- }
- $self->{sign} = $nan;
- delete $self->{_a}; delete $self->{_p}; # rounding NaN is silly
- $self;
- }
-
-sub binf
- {
- # create a bigint '+-inf', if given a BigInt, set it to '+-inf'
- # the sign is either '+', or if given, used from there
- my $self = shift;
- my $sign = shift; $sign = '+' if !defined $sign || $sign !~ /^-(inf)?$/;
- $self = $class if !defined $self;
- if (!ref($self))
- {
- my $c = $self; $self = {}; bless $self, $c;
- }
- no strict 'refs';
- if (${"${class}::_trap_inf"})
- {
- require Carp;
- Carp::croak ("Tried to set $self to +-inf in $class\::binf()");
- }
- $self->import() if $IMPORT == 0; # make require work
- return if $self->modify('binf');
- if ($self->can('_binf'))
+# Create a Math::BigInt from a hexadecimal string.
+
+sub from_hex {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('from_hex');
+
+ my $str = shift;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
+
+ if ($str =~ s/
+ ^
+ \s*
+ ( [+-]? )
+ (0?x)?
+ (
+ [0-9a-fA-F]*
+ ( _ [0-9a-fA-F]+ )*
+ )
+ \s*
+ $
+ //x)
{
- # use subclass to initialize
- $self->_binf();
+ # Get a "clean" version of the string, i.e., non-emtpy and with no
+ # underscores or invalid characters.
+
+ my $sign = $1;
+ my $chrs = $3;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+
+ # The library method requires a prefix.
+
+ $self->{value} = $CALC->_from_hex('0x' . $chrs);
+
+ # Place the sign.
+
+ $self->{sign} = $sign eq '-' && ! $CALC->_is_zero($self->{value})
+ ? '-' : '+';
+
+ return $self;
}
- else
+
+ # CORE::hex() parses as much as it can, and ignores any trailing garbage.
+ # For backwards compatibility, we return NaN.
+
+ return $self->bnan();
+}
+
+# Create a Math::BigInt from an octal string.
+
+sub from_oct {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('from_oct');
+
+ my $str = shift;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
+
+ if ($str =~ s/
+ ^
+ \s*
+ ( [+-]? )
+ (
+ [0-7]*
+ ( _ [0-7]+ )*
+ )
+ \s*
+ $
+ //x)
{
- # otherwise do our own thing
- $self->{value} = $CALC->_zero();
+ # Get a "clean" version of the string, i.e., non-emtpy and with no
+ # underscores or invalid characters.
+
+ my $sign = $1;
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+
+ # The library method requires a prefix.
+
+ $self->{value} = $CALC->_from_oct('0' . $chrs);
+
+ # Place the sign.
+
+ $self->{sign} = $sign eq '-' && ! $CALC->_is_zero($self->{value})
+ ? '-' : '+';
+
+ return $self;
}
- $sign = $sign . 'inf' if $sign !~ /inf$/; # - => -inf
- $self->{sign} = $sign;
- ($self->{_a},$self->{_p}) = @_; # take over requested rounding
- $self;
- }
-sub bzero
- {
- # create a bigint '+0', if given a BigInt, set it to 0
- my $self = shift;
- $self = __PACKAGE__ if !defined $self;
+ # CORE::oct() parses as much as it can, and ignores any trailing garbage.
+ # For backwards compatibility, we return NaN.
+
+ return $self->bnan();
+}
+
+# Create a Math::BigInt from a binary string.
- if (!ref($self))
+sub from_bin {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('from_bin');
+
+ my $str = shift;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
+
+ if ($str =~ s/
+ ^
+ \s*
+ ( [+-]? )
+ (0?b)?
+ (
+ [01]*
+ ( _ [01]+ )*
+ )
+ \s*
+ $
+ //x)
{
- my $c = $self; $self = {}; bless $self, $c;
+ # Get a "clean" version of the string, i.e., non-emtpy and with no
+ # underscores or invalid characters.
+
+ my $sign = $1;
+ my $chrs = $3;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+
+ # The library method requires a prefix.
+
+ $self->{value} = $CALC->_from_bin('0b' . $chrs);
+
+ # Place the sign.
+
+ $self->{sign} = $sign eq '-' && ! $CALC->_is_zero($self->{value})
+ ? '-' : '+';
+
+ return $self;
}
- $self->import() if $IMPORT == 0; # make require work
- return if $self->modify('bzero');
- if ($self->can('_bzero'))
- {
- # use subclass to initialize
- $self->_bzero();
+ # For consistency with from_hex() and from_oct(), we return NaN when the
+ # input is invalid.
+
+ return $self->bnan();
+}
+
+# Create a Math::BigInt from a byte string.
+
+sub from_bytes {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('from_bytes');
+
+ Carp::croak("from_bytes() requires a newer version of the $CALC library.")
+ unless $CALC->can('_from_bytes');
+
+ my $str = shift;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
+ $self -> {sign} = '+';
+ $self -> {value} = $CALC -> _from_bytes($str);
+ return $self;
+}
+
+sub bzero {
+ # create/assign '+0'
+
+ if (@_ == 0) {
+ #Carp::carp("Using bzero() as a function is deprecated;",
+ # " use bzero() as a method instead");
+ unshift @_, __PACKAGE__;
}
- else
- {
- # otherwise do our own thing
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self->import() if $IMPORT == 0; # make require work
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('bzero');
+
+ $self = bless {}, $class unless $selfref;
+
+ $self->{sign} = '+';
$self->{value} = $CALC->_zero();
+
+ if (@_ > 0) {
+ if (@_ > 3) {
+ # call like: $x->bzero($a, $p, $r, $y, ...);
+ ($self, $self->{_a}, $self->{_p}) = $self->_find_round_parameters(@_);
+ } else {
+ # call like: $x->bzero($a, $p, $r);
+ $self->{_a} = $_[0]
+ if !defined $self->{_a} || (defined $_[0] && $_[0] > $self->{_a});
+ $self->{_p} = $_[1]
+ if !defined $self->{_p} || (defined $_[1] && $_[1] > $self->{_p});
+ }
}
- $self->{sign} = '+';
- if (@_ > 0)
- {
- if (@_ > 3)
- {
- # call like: $x->bzero($a,$p,$r,$y);
- ($self,$self->{_a},$self->{_p}) = $self->_find_round_parameters(@_);
- }
- else
- {
- $self->{_a} = $_[0]
- if ( (!defined $self->{_a}) || (defined $_[0] && $_[0] > $self->{_a}));
- $self->{_p} = $_[1]
- if ( (!defined $self->{_p}) || (defined $_[1] && $_[1] > $self->{_p}));
- }
- }
- $self;
- }
-
-sub bone
- {
- # create a bigint '+1' (or -1 if given sign '-'),
- # if given a BigInt, set it to +1 or -1, respectively
- my $self = shift;
- my $sign = shift; $sign = '+' if !defined $sign || $sign ne '-';
- $self = $class if !defined $self;
-
- if (!ref($self))
- {
- my $c = $self; $self = {}; bless $self, $c;
- }
- $self->import() if $IMPORT == 0; # make require work
- return if $self->modify('bone');
- if ($self->can('_bone'))
- {
- # use subclass to initialize
- $self->_bone();
+ return $self;
+}
+
+sub bone {
+ # Create or assign '+1' (or -1 if given sign '-').
+
+ if (@_ == 0 || (defined($_[0]) && ($_[0] eq '+' || $_[0] eq '-'))) {
+ #Carp::carp("Using bone() as a function is deprecated;",
+ # " use bone() as a method instead");
+ unshift @_, __PACKAGE__;
}
- else
- {
- # otherwise do our own thing
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self->import() if $IMPORT == 0; # make require work
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('bone');
+
+ my $sign = shift;
+ $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+
+ $self = bless {}, $class unless $selfref;
+
+ $self->{sign} = $sign;
$self->{value} = $CALC->_one();
+
+ if (@_ > 0) {
+ if (@_ > 3) {
+ # call like: $x->bone($sign, $a, $p, $r, $y, ...);
+ ($self, $self->{_a}, $self->{_p}) = $self->_find_round_parameters(@_);
+ } else {
+ # call like: $x->bone($sign, $a, $p, $r);
+ $self->{_a} = $_[0]
+ if !defined $self->{_a} || (defined $_[0] && $_[0] > $self->{_a});
+ $self->{_p} = $_[1]
+ if !defined $self->{_p} || (defined $_[1] && $_[1] > $self->{_p});
+ }
}
- $self->{sign} = $sign;
- if (@_ > 0)
- {
- if (@_ > 3)
- {
- # call like: $x->bone($sign,$a,$p,$r,$y);
- ($self,$self->{_a},$self->{_p}) = $self->_find_round_parameters(@_);
- }
- else
- {
- # call like: $x->bone($sign,$a,$p,$r);
- $self->{_a} = $_[0]
- if ( (!defined $self->{_a}) || (defined $_[0] && $_[0] > $self->{_a}));
- $self->{_p} = $_[1]
- if ( (!defined $self->{_p}) || (defined $_[1] && $_[1] > $self->{_p}));
- }
- }
- $self;
- }
-##############################################################################
-# string conversion
+ return $self;
+}
-sub bsstr
- {
- # (ref to BFLOAT or num_str ) return num_str
- # Convert number from internal format to scientific string format.
- # internal format is always normalized (no leading zeros, "-0E0" => "+0E0")
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub binf {
+ # create/assign a '+inf' or '-inf'
- if ($x->{sign} !~ /^[+-]$/)
+ if (@_ == 0 || (defined($_[0]) && !ref($_[0]) &&
+ $_[0] =~ /^\s*[+-](inf(inity)?)?\s*$/))
{
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
+ #Carp::carp("Using binf() as a function is deprecated;",
+ # " use binf() as a method instead");
+ unshift @_, __PACKAGE__;
}
- my ($m,$e) = $x->parts();
- #$m->bstr() . 'e+' . $e->bstr(); # e can only be positive in BigInt
- # 'e+' because E can only be positive in BigInt
- $m->bstr() . 'e+' . $CALC->_str($e->{value});
- }
-sub bstr
- {
- # make a string from bigint object
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- if ($x->{sign} !~ /^[+-]$/)
{
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
- }
- my $es = ''; $es = $x->{sign} if $x->{sign} eq '-';
- $es.$CALC->_str($x->{value});
- }
-
-sub numify
- {
- # Make a Perl scalar number from a Math::BigInt object.
- my $x = shift; $x = $class->new($x) unless ref $x;
-
- if ($x -> is_nan()) {
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- return $inf - $inf;
- }
-
- if ($x -> is_inf()) {
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- return $x -> is_negative() ? -$inf : $inf;
- }
-
- my $num = 0 + $CALC->_num($x->{value});
- return $x->{sign} eq '-' ? -$num : $num;
- }
+ no strict 'refs';
+ if (${"${class}::_trap_inf"}) {
+ Carp::croak("Tried to create +-inf in $class->binf()");
+ }
+ }
-##############################################################################
-# public stuff (usually prefixed with "b")
+ $self->import() if $IMPORT == 0; # make require work
-sub sign
- {
- # return the sign of the number: +/-/-inf/+inf/NaN
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ # Don't modify constant (read-only) objects.
- $x->{sign};
- }
+ return if $selfref && $self->modify('binf');
-sub _find_round_parameters {
- # After any operation or when calling round(), the result is rounded by
- # regarding the A & P from arguments, local parameters, or globals.
+ my $sign = shift;
+ $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
- # !!!!!!! If you change this, remember to change round(), too! !!!!!!!!!!
+ $self = bless {}, $class unless $selfref;
- # This procedure finds the round parameters, but it is for speed reasons
- # duplicated in round. Otherwise, it is tested by the testsuite and used
- # by bdiv().
+ $self -> {sign} = $sign . 'inf';
+ $self -> {value} = $CALC -> _zero();
- # returns ($self) or ($self,$a,$p,$r) - sets $self to NaN of both A and P
- # were requested/defined (locally or globally or both)
+ return $self;
+}
- my ($self, $a, $p, $r, @args) = @_;
- # $a accuracy, if given by caller
- # $p precision, if given by caller
- # $r round_mode, if given by caller
- # @args all 'other' arguments (0 for unary, 1 for binary ops)
+sub bnan {
+ # create/assign a 'NaN'
- my $class = ref($self); # find out class of argument(s)
- no strict 'refs';
+ if (@_ == 0) {
+ #Carp::carp("Using bnan() as a function is deprecated;",
+ # " use bnan() as a method instead");
+ unshift @_, __PACKAGE__;
+ }
- # convert to normal scalar for speed and correctness in inner parts
- $a = $a->can('numify') ? $a->numify() : "$a" if defined $a && ref($a);
- $p = $p->can('numify') ? $p->numify() : "$p" if defined $p && ref($p);
+ my $self = shift;
+ my $selfref = ref($self);
+ my $class = $selfref || $self;
- # now pick $a or $p, but only if we have got "arguments"
- if (!defined $a) {
- foreach ($self, @args) {
- # take the defined one, or if both defined, the one that is smaller
- $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
- }
- }
- if (!defined $p) {
- # even if $a is defined, take $p, to signal error for both defined
- foreach ($self, @args) {
- # take the defined one, or if both defined, the one that is bigger
- # -2 > -3, and 3 > 2
- $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
+ {
+ no strict 'refs';
+ if (${"${class}::_trap_nan"}) {
+ Carp::croak("Tried to create NaN in $class->bnan()");
}
}
- # if still none defined, use globals (#2)
- $a = ${"$class\::accuracy"} unless defined $a;
- $p = ${"$class\::precision"} unless defined $p;
+ $self->import() if $IMPORT == 0; # make require work
- # A == 0 is useless, so undef it to signal no rounding
- $a = undef if defined $a && $a == 0;
+ # Don't modify constant (read-only) objects.
- # no rounding today?
- return ($self) unless defined $a || defined $p; # early out
+ return if $selfref && $self->modify('bnan');
- # set A and set P is an fatal error
- return ($self->bnan()) if defined $a && defined $p; # error
+ $self = bless {}, $class unless $selfref;
- $r = ${"$class\::round_mode"} unless defined $r;
- if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) {
- require Carp; Carp::croak ("Unknown round mode '$r'");
+ $self -> {sign} = $nan;
+ $self -> {value} = $CALC -> _zero();
+
+ return $self;
+}
+
+sub bpi {
+ # Calculate PI to N digits. Unless upgrading is in effect, returns the
+ # result truncated to an integer, that is, always returns '3'.
+ my ($self, $n) = @_;
+ if (@_ == 1) {
+ # called like Math::BigInt::bpi(10);
+ $n = $self;
+ $self = $class;
}
+ $self = ref($self) if ref($self);
- $a = int($a) if defined $a;
- $p = int($p) if defined $p;
+ return $upgrade->new($n) if defined $upgrade;
- ($self, $a, $p, $r);
+ # hard-wired to "3"
+ $self->new(3);
}
-sub round {
- # Round $self according to given parameters, or given second argument's
- # parameters or global defaults
+sub copy {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- # for speed reasons, _find_round_parameters is embedded here:
+ # If called as a class method, the object to copy is the next argument.
- my ($self, $a, $p, $r, @args) = @_;
- # $a accuracy, if given by caller
- # $p precision, if given by caller
- # $r round_mode, if given by caller
- # @args all 'other' arguments (0 for unary, 1 for binary ops)
+ $self = shift() unless $selfref;
- my $class = ref($self); # find out class of argument(s)
- no strict 'refs';
+ my $copy = bless {}, $class;
- # now pick $a or $p, but only if we have got "arguments"
- if (!defined $a) {
- foreach ($self, @args) {
- # take the defined one, or if both defined, the one that is smaller
- $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
- }
- }
- if (!defined $p) {
- # even if $a is defined, take $p, to signal error for both defined
- foreach ($self, @args) {
- # take the defined one, or if both defined, the one that is bigger
- # -2 > -3, and 3 > 2
- $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
- }
- }
+ $copy->{sign} = $self->{sign};
+ $copy->{value} = $CALC->_copy($self->{value});
+ $copy->{_a} = $self->{_a} if exists $self->{_a};
+ $copy->{_p} = $self->{_p} if exists $self->{_p};
- # if still none defined, use globals (#2)
- $a = ${"$class\::accuracy"} unless defined $a;
- $p = ${"$class\::precision"} unless defined $p;
+ return $copy;
+}
- # A == 0 is useless, so undef it to signal no rounding
- $a = undef if defined $a && $a == 0;
+sub as_number {
+ # An object might be asked to return itself as bigint on certain overloaded
+ # operations. This does exactly this, so that sub classes can simple inherit
+ # it or override with their own integer conversion routine.
+ $_[0]->copy();
+}
- # no rounding today?
- return $self unless defined $a || defined $p; # early out
+###############################################################################
+# Boolean methods
+###############################################################################
- # set A and set P is an fatal error
- return $self->bnan() if defined $a && defined $p;
+sub is_zero {
+ # return true if arg (BINT or num_str) is zero (array '+', '0')
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- $r = ${"$class\::round_mode"} unless defined $r;
- if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) {
- require Carp; Carp::croak ("Unknown round mode '$r'");
- }
+ return 0 if $x->{sign} !~ /^\+$/; # -, NaN & +-inf aren't
+ $CALC->_is_zero($x->{value});
+}
- # now round, by calling either bround or bfround:
- if (defined $a) {
- $self->bround(int($a), $r) if !defined $self->{_a} || $self->{_a} >= $a;
- } else { # both can't be undefined due to early out
- $self->bfround(int($p), $r) if !defined $self->{_p} || $self->{_p} <= $p;
+sub is_one {
+ # return true if arg (BINT or num_str) is +1, or -1 if sign is given
+ my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $sign = '+' if !defined $sign || $sign ne '-';
+
+ return 0 if $x->{sign} ne $sign; # -1 != +1, NaN, +-inf aren't either
+ $CALC->_is_one($x->{value});
+}
+
+sub is_finite {
+ my $x = shift;
+ return $x->{sign} eq '+' || $x->{sign} eq '-';
+}
+
+sub is_inf {
+ # return true if arg (BINT or num_str) is +-inf
+ my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ if (defined $sign) {
+ $sign = '[+-]inf' if $sign eq ''; # +- doesn't matter, only that's inf
+ $sign = "[$1]inf" if $sign =~ /^([+-])(inf)?$/; # extract '+' or '-'
+ return $x->{sign} =~ /^$sign$/ ? 1 : 0;
}
+ $x->{sign} =~ /^[+-]inf$/ ? 1 : 0; # only +-inf is infinity
+}
- # bround() or bfround() already called bnorm() if nec.
- $self;
+sub is_nan {
+ # return true if arg (BINT or num_str) is NaN
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ $x->{sign} eq $nan ? 1 : 0;
}
-sub bnorm
- {
- # (numstr or BINT) return BINT
- # Normalize number -- no-op here
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
- $x;
- }
-
-sub babs
- {
- # (BINT or num_str) return BINT
- # make number absolute, or return absolute BINT from string
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return $x if $x->modify('babs');
- # post-normalized abs for internal use (does nothing for NaN)
- $x->{sign} =~ s/^-/+/;
- $x;
- }
+sub is_positive {
+ # return true when arg (BINT or num_str) is positive (> 0)
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub bsgn {
- # Signum function.
+ return 1 if $x->{sign} eq '+inf'; # +inf is positive
- my $self = shift;
+ # 0+ is neither positive nor negative
+ ($x->{sign} eq '+' && !$x->is_zero()) ? 1 : 0;
+}
- return $self if $self->modify('bsgn');
+sub is_negative {
+ # return true when arg (BINT or num_str) is negative (< 0)
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $self -> bone("+") if $self -> is_pos();
- return $self -> bone("-") if $self -> is_neg();
- return $self; # zero or NaN
+ $x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not
}
-sub bneg
- {
- # (BINT or num_str) return BINT
- # negate number or make a negated number from string
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub is_odd {
+ # return true when arg (BINT or num_str) is odd, false for even
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $x if $x->modify('bneg');
+ return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
+ $CALC->_is_odd($x->{value});
+}
- # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
- $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $CALC->_is_zero($x->{value}));
- $x;
- }
+sub is_even {
+ # return true when arg (BINT or num_str) is even, false for odd
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub bcmp
- {
- # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
- # (BINT or num_str, BINT or num_str) return cond_code
+ return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
+ $CALC->_is_even($x->{value});
+}
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
+sub is_int {
+ # return true when arg (BINT or num_str) is an integer
+ # always true for Math::BigInt, but different for Math::BigFloat objects
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
- }
+ $x->{sign} =~ /^[+-]$/ ? 1 : 0; # inf/-inf/NaN aren't
+}
- return $upgrade->bcmp($x,$y) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+###############################################################################
+# Comparison methods
+###############################################################################
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
- return +1 if $x->{sign} eq '+inf';
- return -1 if $x->{sign} eq '-inf';
- return -1 if $y->{sign} eq '+inf';
- return +1;
- }
- # check sign for speed first
- return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y
- return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0
-
- # have same sign, so compare absolute values. Don't make tests for zero
- # here because it's actually slower than testing in Calc (especially w/ Pari
- # et al)
-
- # post-normalized compare for internal use (honors signs)
- if ($x->{sign} eq '+')
- {
- # $x and $y both > 0
- return $CALC->_acmp($x->{value},$y->{value});
- }
+sub bcmp {
+ # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
+ # (BINT or num_str, BINT or num_str) return cond_code
- # $x && $y both < 0
- $CALC->_acmp($y->{value},$x->{value}); # swapped acmp (lib returns 0,1,-1)
- }
+ # set up parameters
+ my ($class, $x, $y) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
-sub bacmp
- {
- # Compares 2 values, ignoring their signs.
- # Returns one of undef, <0, =0, >0. (suitable for sort)
- # (BINT, BINT) return cond_code
+ return $upgrade->bcmp($x, $y) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
+ if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
+ # handle +-inf and NaN
+ return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
+ return +1 if $x->{sign} eq '+inf';
+ return -1 if $x->{sign} eq '-inf';
+ return -1 if $y->{sign} eq '+inf';
+ return +1;
}
+ # check sign for speed first
+ return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y
+ return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0
- return $upgrade->bacmp($x,$y) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ # have same sign, so compare absolute values. Don't make tests for zero
+ # here because it's actually slower than testing in Calc (especially w/ Pari
+ # et al)
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
- return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
- return -1;
- }
- $CALC->_acmp($x->{value},$y->{value}); # lib does only 0,1,-1
- }
-
-sub badd
- {
- # add second arg (BINT or string) to first (BINT) (modifies first)
- # return result as BINT
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # post-normalized compare for internal use (honors signs)
+ if ($x->{sign} eq '+') {
+ # $x and $y both > 0
+ return $CALC->_acmp($x->{value}, $y->{value});
}
- return $x if $x->modify('badd');
- return $upgrade->badd($upgrade->new($x),$upgrade->new($y),@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ # $x && $y both < 0
+ $CALC->_acmp($y->{value}, $x->{value}); # swapped acmp (lib returns 0, 1, -1)
+}
- $r[3] = $y; # no push!
- # inf and NaN handling
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # NaN first
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
- {
- # +inf++inf or -inf+-inf => same, rest is NaN
- return $x if $x->{sign} eq $y->{sign};
- return $x->bnan();
- }
- # +-inf + something => +inf
- # something +-inf => +-inf
- $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
- return $x;
- }
+sub bacmp {
+ # Compares 2 values, ignoring their signs.
+ # Returns one of undef, <0, =0, >0. (suitable for sort)
+ # (BINT, BINT) return cond_code
- my ($sx, $sy) = ( $x->{sign}, $y->{sign} ); # get signs
+ # set up parameters
+ my ($class, $x, $y) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
- if ($sx eq $sy)
- {
- $x->{value} = $CALC->_add($x->{value},$y->{value}); # same sign, abs add
- }
- else
- {
- my $a = $CALC->_acmp ($y->{value},$x->{value}); # absolute compare
- if ($a > 0)
- {
- $x->{value} = $CALC->_sub($y->{value},$x->{value},1); # abs sub w/ swap
- $x->{sign} = $sy;
- }
- elsif ($a == 0)
- {
- # speedup, if equal, set result to 0
- $x->{value} = $CALC->_zero();
- $x->{sign} = '+';
- }
- else # a < 0
- {
- $x->{value} = $CALC->_sub($x->{value}, $y->{value}); # abs sub
- }
- }
- $x->round(@r);
- }
-
-sub bsub
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # subtract second arg from first, modify first
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ return $upgrade->bacmp($x, $y) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
+
+ if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
+ # handle +-inf and NaN
+ return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
+ return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
+ return -1;
}
+ $CALC->_acmp($x->{value}, $y->{value}); # lib does only 0, 1, -1
+}
- return $x if $x->modify('bsub');
+sub beq {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- return $upgrade->new($x)->bsub($upgrade->new($y),@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ Carp::croak 'beq() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for beq()' unless @_ == 1;
- return $x->round(@r) if $y->is_zero();
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && ! $cmp;
+}
- # To correctly handle the lone special case $x->bsub($x), we note the sign
- # of $x, then flip the sign from $y, and if the sign of $x did change, too,
- # then we caught the special case:
- my $xsign = $x->{sign};
- $y->{sign} =~ tr/+\-/-+/; # does nothing for NaN
- if ($xsign ne $x->{sign})
- {
- # special case of $x->bsub($x) results in 0
- return $x->bzero(@r) if $xsign =~ /^[+-]$/;
- return $x->bnan(); # NaN, -inf, +inf
- }
- $x->badd($y,@r); # badd does not leave internal zeros
- $y->{sign} =~ tr/+\-/-+/; # refix $y (does nothing for NaN)
- $x; # already rounded by badd() or no round nec.
- }
-
-sub binc
- {
- # increment arg by one
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
- return $x if $x->modify('binc');
-
- if ($x->{sign} eq '+')
- {
- $x->{value} = $CALC->_inc($x->{value});
- return $x->round($a,$p,$r);
- }
- elsif ($x->{sign} eq '-')
- {
- $x->{value} = $CALC->_dec($x->{value});
- $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # -1 +1 => -0 => +0
- return $x->round($a,$p,$r);
- }
- # inf, nan handling etc
- $x->badd($self->bone(),$a,$p,$r); # badd does round
- }
+sub bne {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
-sub bdec
- {
- # decrement arg by one
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
- return $x if $x->modify('bdec');
+ Carp::croak 'bne() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for bne()' unless @_ == 1;
- if ($x->{sign} eq '-')
- {
- # x already < 0
- $x->{value} = $CALC->_inc($x->{value});
- }
- else
- {
- return $x->badd($self->bone('-'),@r)
- unless $x->{sign} eq '+'; # inf or NaN
- # >= 0
- if ($CALC->_is_zero($x->{value}))
- {
- # == 0
- $x->{value} = $CALC->_one(); $x->{sign} = '-'; # 0 => -1
- }
- else
- {
- # > 0
- $x->{value} = $CALC->_dec($x->{value});
- }
- }
- $x->round(@r);
- }
-
-sub blog
- {
- # Return the logarithm of the operand. If a second operand is defined, that
- # value is used as the base, otherwise the base is assumed to be Euler's
- # constant.
-
- # Don't objectify the base, since an undefined base, as in $x->blog() or
- # $x->blog(undef) signals that the base is Euler's number.
-
- # set up parameters
- my ($self,$x,$base,@r) = (undef,@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($self,$x,$base,@r) = objectify(1,@_);
- }
-
- return $x if $x->modify('blog');
-
- # Handle all exception cases and all trivial cases. I have used Wolfram Alpha
- # (http://www.wolframalpha.com) as the reference for these cases.
-
- return $x -> bnan() if $x -> is_nan();
-
- if (defined $base) {
- $base = $self -> new($base) unless ref $base;
- if ($base -> is_nan() || $base -> is_one()) {
- return $x -> bnan();
- } elsif ($base -> is_inf() || $base -> is_zero()) {
- return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
- return $x -> bzero();
- } elsif ($base -> is_negative()) { # -inf < base < 0
- return $x -> bzero() if $x -> is_one(); # x = 1
- return $x -> bone() if $x == $base; # x = base
- return $x -> bnan(); # otherwise
- }
- return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
- }
-
- # We now know that the base is either undefined or >= 2 and finite.
-
- return $x -> binf('+') if $x -> is_inf(); # x = +/-inf
- return $x -> bnan() if $x -> is_neg(); # -inf < x < 0
- return $x -> bzero() if $x -> is_one(); # x = 1
- return $x -> binf('-') if $x -> is_zero(); # x = 0
-
- # At this point we are done handling all exception cases and trivial cases.
-
- return $upgrade -> blog($upgrade -> new($x), $base, @r) if defined $upgrade;
-
- # fix for bug #24969:
- # the default base is e (Euler's number) which is not an integer
- if (!defined $base)
- {
- require Math::BigFloat;
- my $u = Math::BigFloat->blog(Math::BigFloat->new($x))->as_int();
- # modify $x in place
- $x->{value} = $u->{value};
- $x->{sign} = $u->{sign};
- return $x;
- }
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && ! $cmp ? '' : 1;
+}
- my ($rc,$exact) = $CALC->_log_int($x->{value},$base->{value});
- return $x->bnan() unless defined $rc; # not possible to take log?
- $x->{value} = $rc;
- $x->round(@r);
- }
+sub blt {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
-sub bnok
- {
- # Calculate n over k (binomial coefficient or "choose" function) as integer.
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ Carp::croak 'blt() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for blt()' unless @_ == 1;
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
- }
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp < 0;
+}
- return $x if $x->modify('bnok');
- return $x->bnan() if $x->{sign} eq 'NaN' || $y->{sign} eq 'NaN';
- return $x->binf() if $x->{sign} eq '+inf';
+sub ble {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- # k > n or k < 0 => 0
- my $cmp = $x->bacmp($y);
- return $x->bzero() if $cmp < 0 || $y->{sign} =~ /^-/;
- # k == n => 1
- return $x->bone(@r) if $cmp == 0;
+ Carp::croak 'ble() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for ble()' unless @_ == 1;
- if ($CALC->can('_nok'))
- {
- $x->{value} = $CALC->_nok($x->{value},$y->{value});
- }
- else
- {
- # ( 7 ) 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7
- # ( - ) = --------- = --------------- = --------- = 5 * - * -
- # ( 3 ) (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
-
- if (!$y->is_zero())
- {
- my $z = $x - $y;
- $z->binc();
- my $r = $z->copy(); $z->binc();
- my $d = $self->new(2);
- while ($z->bacmp($x) <= 0) # f <= x ?
- {
- $r->bmul($z); $r->bdiv($d);
- $z->binc(); $d->binc();
- }
- $x->{value} = $r->{value}; $x->{sign} = '+';
- }
- else { $x->bone(); }
- }
- $x->round(@r);
- }
-
-sub bexp
- {
- # Calculate e ** $x (Euler's number to the power of X), truncated to
- # an integer value.
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
- return $x if $x->modify('bexp');
-
- # inf, -inf, NaN, <0 => NaN
- return $x->bnan() if $x->{sign} eq 'NaN';
- return $x->bone() if $x->is_zero();
- return $x if $x->{sign} eq '+inf';
- return $x->bzero() if $x->{sign} eq '-inf';
-
- my $u;
- {
- # run through Math::BigFloat unless told otherwise
- require Math::BigFloat unless defined $upgrade;
- local $upgrade = 'Math::BigFloat' unless defined $upgrade;
- # calculate result, truncate it to integer
- $u = $upgrade->bexp($upgrade->new($x),@r);
- }
-
- if (!defined $upgrade)
- {
- $u = $u->as_int();
- # modify $x in place
- $x->{value} = $u->{value};
- $x->round(@r);
- }
- else { $x = $u; }
- }
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp <= 0;
+}
-sub blcm
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # does not modify arguments, but returns new object
- # Lowest Common Multiple
+sub bgt {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- my $y = shift; my ($x);
- if (ref($y))
- {
- $x = $y->copy();
- }
- else
- {
- $x = $class->new($y);
- }
- my $self = ref($x);
- while (@_)
- {
- my $y = shift; $y = $self->new($y) if !ref ($y);
- $x = __lcm($x,$y);
- }
- $x;
- }
+ Carp::croak 'bgt() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for bgt()' unless @_ == 1;
-sub bgcd
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # does not modify arguments, but returns new object
- # GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff)
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp > 0;
+}
- my $y = shift;
- $y = $class->new($y) if !ref($y);
- my $self = ref($y);
- my $x = $y->copy()->babs(); # keep arguments
- return $x->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
+sub bge {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- while (@_)
- {
- $y = shift; $y = $self->new($y) if !ref($y);
- return $x->bnan() if $y->{sign} !~ /^[+-]$/; # y NaN?
- $x->{value} = $CALC->_gcd($x->{value},$y->{value});
- last if $CALC->_is_one($x->{value});
- }
- $x;
- }
+ Carp::croak 'bge() is an instance method, not a class method'
+ unless $selfref;
+ Carp::croak 'Wrong number of arguments for bge()' unless @_ == 1;
-sub bnot
- {
- # (num_str or BINT) return BINT
- # represent ~x as twos-complement number
- # we don't need $self, so undef instead of ref($_[0]) make it slightly faster
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp >= 0;
+}
- return $x if $x->modify('bnot');
- $x->binc()->bneg(); # binc already does round
- }
+###############################################################################
+# Arithmetic methods
+###############################################################################
-##############################################################################
-# is_foo test routines
-# we don't need $self, so undef instead of ref($_[0]) make it slightly faster
+sub bneg {
+ # (BINT or num_str) return BINT
+ # negate number or make a negated number from string
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub is_zero
- {
- # return true if arg (BINT or num_str) is zero (array '+', '0')
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x if $x->modify('bneg');
- return 0 if $x->{sign} !~ /^\+$/; # -, NaN & +-inf aren't
- $CALC->_is_zero($x->{value});
- }
+ # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
+ $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $CALC->_is_zero($x->{value}));
+ $x;
+}
-sub is_nan
- {
- # return true if arg (BINT or num_str) is NaN
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub babs {
+ # (BINT or num_str) return BINT
+ # make number absolute, or return absolute BINT from string
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- $x->{sign} eq $nan ? 1 : 0;
- }
+ return $x if $x->modify('babs');
+ # post-normalized abs for internal use (does nothing for NaN)
+ $x->{sign} =~ s/^-/+/;
+ $x;
+}
-sub is_inf
- {
- # return true if arg (BINT or num_str) is +-inf
- my ($self,$x,$sign) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+sub bsgn {
+ # Signum function.
- if (defined $sign)
- {
- $sign = '[+-]inf' if $sign eq ''; # +- doesn't matter, only that's inf
- $sign = "[$1]inf" if $sign =~ /^([+-])(inf)?$/; # extract '+' or '-'
- return $x->{sign} =~ /^$sign$/ ? 1 : 0;
- }
- $x->{sign} =~ /^[+-]inf$/ ? 1 : 0; # only +-inf is infinity
- }
+ my $self = shift;
-sub is_one
- {
- # return true if arg (BINT or num_str) is +1, or -1 if sign is given
- my ($self,$x,$sign) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ return $self if $self->modify('bsgn');
- $sign = '+' if !defined $sign || $sign ne '-';
+ return $self -> bone("+") if $self -> is_pos();
+ return $self -> bone("-") if $self -> is_neg();
+ return $self; # zero or NaN
+}
- return 0 if $x->{sign} ne $sign; # -1 != +1, NaN, +-inf aren't either
- $CALC->_is_one($x->{value});
- }
+sub bnorm {
+ # (numstr or BINT) return BINT
+ # Normalize number -- no-op here
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ $x;
+}
-sub is_odd
- {
- # return true when arg (BINT or num_str) is odd, false for even
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub binc {
+ # increment arg by one
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ return $x if $x->modify('binc');
+
+ if ($x->{sign} eq '+') {
+ $x->{value} = $CALC->_inc($x->{value});
+ return $x->round($a, $p, $r);
+ } elsif ($x->{sign} eq '-') {
+ $x->{value} = $CALC->_dec($x->{value});
+ $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # -1 +1 => -0 => +0
+ return $x->round($a, $p, $r);
+ }
+ # inf, nan handling etc
+ $x->badd($class->bone(), $a, $p, $r); # badd does round
+}
- return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
- $CALC->_is_odd($x->{value});
- }
+sub bdec {
+ # decrement arg by one
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ return $x if $x->modify('bdec');
-sub is_even
- {
- # return true when arg (BINT or num_str) is even, false for odd
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ if ($x->{sign} eq '-') {
+ # x already < 0
+ $x->{value} = $CALC->_inc($x->{value});
+ } else {
+ return $x->badd($class->bone('-'), @r)
+ unless $x->{sign} eq '+'; # inf or NaN
+ # >= 0
+ if ($CALC->_is_zero($x->{value})) {
+ # == 0
+ $x->{value} = $CALC->_one();
+ $x->{sign} = '-'; # 0 => -1
+ } else {
+ # > 0
+ $x->{value} = $CALC->_dec($x->{value});
+ }
+ }
+ $x->round(@r);
+}
- return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
- $CALC->_is_even($x->{value});
- }
+#sub bstrcmp {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrcmp() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrcmp()' unless @_ == 1;
+#
+# return $self -> bstr() CORE::cmp shift;
+#}
+#
+#sub bstreq {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstreq() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstreq()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && ! $cmp;
+#}
+#
+#sub bstrne {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrne() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrne()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && ! $cmp ? '' : 1;
+#}
+#
+#sub bstrlt {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrlt() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrlt()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && $cmp < 0;
+#}
+#
+#sub bstrle {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrle() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrle()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && $cmp <= 0;
+#}
+#
+#sub bstrgt {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrgt() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrgt()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && $cmp > 0;
+#}
+#
+#sub bstrge {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrge() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrge()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && $cmp >= 0;
+#}
-sub is_positive
- {
- # return true when arg (BINT or num_str) is positive (> 0)
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub badd {
+ # add second arg (BINT or string) to first (BINT) (modifies first)
+ # return result as BINT
- return 1 if $x->{sign} eq '+inf'; # +inf is positive
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x->modify('badd');
+ return $upgrade->badd($upgrade->new($x), $upgrade->new($y), @r) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
+
+ $r[3] = $y; # no push!
+ # inf and NaN handling
+ if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
+ # NaN first
+ return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
+ # +inf++inf or -inf+-inf => same, rest is NaN
+ return $x if $x->{sign} eq $y->{sign};
+ return $x->bnan();
+ }
+ # +-inf + something => +inf
+ # something +-inf => +-inf
+ $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
+ return $x;
+ }
- # 0+ is neither positive nor negative
- ($x->{sign} eq '+' && !$x->is_zero()) ? 1 : 0;
- }
+ my ($sx, $sy) = ($x->{sign}, $y->{sign}); # get signs
-sub is_negative
- {
- # return true when arg (BINT or num_str) is negative (< 0)
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ if ($sx eq $sy) {
+ $x->{value} = $CALC->_add($x->{value}, $y->{value}); # same sign, abs add
+ } else {
+ my $a = $CALC->_acmp ($y->{value}, $x->{value}); # absolute compare
+ if ($a > 0) {
+ $x->{value} = $CALC->_sub($y->{value}, $x->{value}, 1); # abs sub w/ swap
+ $x->{sign} = $sy;
+ } elsif ($a == 0) {
+ # speedup, if equal, set result to 0
+ $x->{value} = $CALC->_zero();
+ $x->{sign} = '+';
+ } else # a < 0
+ {
+ $x->{value} = $CALC->_sub($x->{value}, $y->{value}); # abs sub
+ }
+ }
+ $x->round(@r);
+}
- $x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not
- }
+sub bsub {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # subtract second arg from first, modify first
-sub is_int
- {
- # return true when arg (BINT or num_str) is an integer
- # always true for BigInt, but different for BigFloats
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- $x->{sign} =~ /^[+-]$/ ? 1 : 0; # inf/-inf/NaN aren't
- }
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
-###############################################################################
+ return $x if $x -> modify('bsub');
-sub bmul
- {
- # multiply the first number by the second number
- # (BINT or num_str, BINT or num_str) return BINT
+ return $upgrade -> new($x) -> bsub($upgrade -> new($y), @r)
+ if defined $upgrade && (!$x -> isa($class) || !$y -> isa($class));
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ return $x -> round(@r) if $y -> is_zero();
+
+ # To correctly handle the lone special case $x -> bsub($x), we note the
+ # sign of $x, then flip the sign from $y, and if the sign of $x did change,
+ # too, then we caught the special case:
+
+ my $xsign = $x -> {sign};
+ $y -> {sign} =~ tr/+-/-+/; # does nothing for NaN
+ if ($xsign ne $x -> {sign}) {
+ # special case of $x -> bsub($x) results in 0
+ return $x -> bzero(@r) if $xsign =~ /^[+-]$/;
+ return $x -> bnan(); # NaN, -inf, +inf
}
+ $x -> badd($y, @r); # badd does not leave internal zeros
+ $y -> {sign} =~ tr/+-/-+/; # refix $y (does nothing for NaN)
+ $x; # already rounded by badd() or no rounding
+}
- return $x if $x->modify('bmul');
+sub bmul {
+ # multiply the first number by the second number
+ # (BINT or num_str, BINT or num_str) return BINT
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ return $x if $x->modify('bmul');
+
+ return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
}
- return $upgrade->bmul($x,$upgrade->new($y),@r)
- if defined $upgrade && !$y->isa($self);
+ return $upgrade->bmul($x, $upgrade->new($y), @r)
+ if defined $upgrade && !$y->isa($class);
- $r[3] = $y; # no push here
+ $r[3] = $y; # no push here
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
- $x->{value} = $CALC->_mul($x->{value},$y->{value}); # do actual math
- $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # no -0
+ $x->{value} = $CALC->_mul($x->{value}, $y->{value}); # do actual math
+ $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # no -0
- $x->round(@r);
- }
+ $x->round(@r);
+}
-sub bmuladd
- {
- # multiply two numbers and then add the third to the result
- # (BINT or num_str, BINT or num_str, BINT or num_str) return BINT
+sub bmuladd {
+ # multiply two numbers and then add the third to the result
+ # (BINT or num_str, BINT or num_str, BINT or num_str) return BINT
- # set up parameters
- my ($self,$x,$y,$z,@r) = objectify(3,@_);
+ # set up parameters
+ my ($class, $x, $y, $z, @r) = objectify(3, @_);
- return $x if $x->modify('bmuladd');
+ return $x if $x->modify('bmuladd');
- return $x->bnan() if ($x->{sign} eq $nan) ||
- ($y->{sign} eq $nan) ||
- ($z->{sign} eq $nan);
+ return $x->bnan() if (($x->{sign} eq $nan) ||
+ ($y->{sign} eq $nan) ||
+ ($z->{sign} eq $nan));
- # inf handling of x and y
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
- }
- # inf handling x*y and z
- if (($z->{sign} =~ /^[+-]inf$/))
- {
- # something +-inf => +-inf
- $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
+ # inf handling of x and y
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
+ }
+ # inf handling x*y and z
+ if (($z->{sign} =~ /^[+-]inf$/)) {
+ # something +-inf => +-inf
+ $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
}
- return $upgrade->bmuladd($x,$upgrade->new($y),$upgrade->new($z),@r)
- if defined $upgrade && (!$y->isa($self) || !$z->isa($self) || !$x->isa($self));
+ return $upgrade->bmuladd($x, $upgrade->new($y), $upgrade->new($z), @r)
+ if defined $upgrade && (!$y->isa($class) || !$z->isa($class) || !$x->isa($class));
- # TODO: what if $y and $z have A or P set?
- $r[3] = $z; # no push here
+ # TODO: what if $y and $z have A or P set?
+ $r[3] = $z; # no push here
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
- $x->{value} = $CALC->_mul($x->{value},$y->{value}); # do actual math
- $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # no -0
+ $x->{value} = $CALC->_mul($x->{value}, $y->{value}); # do actual math
+ $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # no -0
- my ($sx, $sz) = ( $x->{sign}, $z->{sign} ); # get signs
+ my ($sx, $sz) = ( $x->{sign}, $z->{sign} ); # get signs
- if ($sx eq $sz)
- {
- $x->{value} = $CALC->_add($x->{value},$z->{value}); # same sign, abs add
+ if ($sx eq $sz) {
+ $x->{value} = $CALC->_add($x->{value}, $z->{value}); # same sign, abs add
+ } else {
+ my $a = $CALC->_acmp ($z->{value}, $x->{value}); # absolute compare
+ if ($a > 0) {
+ $x->{value} = $CALC->_sub($z->{value}, $x->{value}, 1); # abs sub w/ swap
+ $x->{sign} = $sz;
+ } elsif ($a == 0) {
+ # speedup, if equal, set result to 0
+ $x->{value} = $CALC->_zero();
+ $x->{sign} = '+';
+ } else # a < 0
+ {
+ $x->{value} = $CALC->_sub($x->{value}, $z->{value}); # abs sub
+ }
}
- else
- {
- my $a = $CALC->_acmp ($z->{value},$x->{value}); # absolute compare
- if ($a > 0)
- {
- $x->{value} = $CALC->_sub($z->{value},$x->{value},1); # abs sub w/ swap
- $x->{sign} = $sz;
- }
- elsif ($a == 0)
- {
- # speedup, if equal, set result to 0
- $x->{value} = $CALC->_zero();
- $x->{sign} = '+';
- }
- else # a < 0
- {
- $x->{value} = $CALC->_sub($x->{value}, $z->{value}); # abs sub
- }
- }
- $x->round(@r);
- }
-
-sub bdiv
- {
-
- # This does floored division, where the quotient is floored toward negative
- # infinity and the remainder has the same sign as the divisor.
+ $x->round(@r);
+}
+
+sub bdiv {
+ # This does floored division, where the quotient is floored, i.e., rounded
+ # towards negative infinity. As a consequence, the remainder has the same
+ # sign as the divisor.
# Set up parameters.
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
# objectify() is costly, so avoid it if we can.
if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($self,$x,$y,@r) = objectify(2,@_);
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bdiv');
+ return $x if $x -> modify('bdiv');
my $wantarray = wantarray; # call only once
@@ -1732,7 +1714,7 @@ sub bdiv
# modulo/remainder.
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $self -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
}
# Divide by zero and modulo zero.
@@ -1746,23 +1728,23 @@ sub bdiv
# get z - x = 0 or z = x. This is also what earlier versions did, except
# that 0 % 0 returned NaN.
#
- # inf / 0 = inf inf % 0 = inf
- # 5 / 0 = inf 5 % 0 = 5
- # 0 / 0 = NaN 0 % 0 = 0 (before: NaN)
- # -5 / 0 = -inf -5 % 0 = -5
- # -inf / 0 = -inf -inf % 0 = -inf
+ # inf / 0 = inf inf % 0 = inf
+ # 5 / 0 = inf 5 % 0 = 5
+ # 0 / 0 = NaN 0 % 0 = 0
+ # -5 / 0 = -inf -5 % 0 = -5
+ # -inf / 0 = -inf -inf % 0 = -inf
if ($y -> is_zero()) {
- my ($quo, $rem);
+ my $rem;
if ($wantarray) {
- $rem = $x -> copy();
- }
+ $rem = $x -> copy();
+ }
if ($x -> is_zero()) {
- $quo = $x -> bnan();
+ $x -> bnan();
} else {
- $quo = $x -> binf($x -> {sign});
+ $x -> binf($x -> {sign});
}
- return $wantarray ? ($quo, $rem) : $quo;
+ return $wantarray ? ($x, $rem) : $x;
}
# Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
@@ -1770,25 +1752,25 @@ sub bdiv
# below we return the same as core Perl.
#
# inf / -inf = NaN inf % -inf = NaN
- # inf / -5 = -inf inf % -5 = NaN (before: 0)
- # inf / 5 = inf inf % 5 = NaN (before: 0)
+ # inf / -5 = -inf inf % -5 = NaN
+ # inf / 5 = inf inf % 5 = NaN
# inf / inf = NaN inf % inf = NaN
#
# -inf / -inf = NaN -inf % -inf = NaN
- # -inf / -5 = inf -inf % -5 = NaN (before: 0)
- # -inf / 5 = -inf -inf % 5 = NaN (before: 0)
+ # -inf / -5 = inf -inf % -5 = NaN
+ # -inf / 5 = -inf -inf % 5 = NaN
# -inf / inf = NaN -inf % inf = NaN
if ($x -> is_inf()) {
- my ($quo, $rem);
- $rem = $self -> bnan() if $wantarray;
+ my $rem;
+ $rem = $class -> bnan() if $wantarray;
if ($y -> is_inf()) {
- $quo = $x -> bnan();
+ $x -> bnan();
} else {
my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
- $quo = $x -> binf($sign);
- }
- return $wantarray ? ($quo, $rem) : $quo;
+ $x -> binf($sign);
+ }
+ return $wantarray ? ($x, $rem) : $x;
}
# Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
@@ -1796,112 +1778,249 @@ sub bdiv
# the same as core Perl, which does floored division, so for consistency we
# also do floored division in the division cases (in the left column).
#
- # -5 / inf = -1 (before: 0) -5 % inf = inf (before: -5)
+ # -5 / inf = -1 -5 % inf = inf
# 0 / inf = 0 0 % inf = 0
# 5 / inf = 0 5 % inf = 5
#
# -5 / -inf = 0 -5 % -inf = -5
# 0 / -inf = 0 0 % -inf = 0
- # 5 / -inf = -1 (before: 0) 5 % -inf = -inf (before: 5)
+ # 5 / -inf = -1 5 % -inf = -inf
if ($y -> is_inf()) {
- my ($quo, $rem);
+ my $rem;
if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
$rem = $x -> copy() if $wantarray;
- $quo = $x -> bzero();
+ $x -> bzero();
} else {
- $rem = $self -> binf($y -> {sign}) if $wantarray;
- $quo = $x -> bone('-');
+ $rem = $class -> binf($y -> {sign}) if $wantarray;
+ $x -> bone('-');
}
- return $wantarray ? ($quo, $rem) : $quo;
- }
+ return $wantarray ? ($x, $rem) : $x;
+ }
- # At this point, both the numerator and denominator are finite numbers, and
- # the denominator (divisor) is non-zero.
+ # At this point, both the numerator and denominator are finite numbers, and
+ # the denominator (divisor) is non-zero.
- return $upgrade->bdiv($upgrade->new($x),$upgrade->new($y),@r)
- if defined $upgrade;
+ return $upgrade -> bdiv($upgrade -> new($x), $upgrade -> new($y), @r)
+ if defined $upgrade;
- $r[3] = $y; # no push!
+ $r[3] = $y; # no push!
# Inialize remainder.
- my $rem = $self->bzero();
+ my $rem = $class -> bzero();
- # Are both operands the same object, i.e., like $x -> bdiv($x)?
- # If so, flipping the sign of $y also flips the sign of $x.
+ # Are both operands the same object, i.e., like $x -> bdiv($x)? If so,
+ # flipping the sign of $y also flips the sign of $x.
- my $xsign = $x->{sign};
- my $ysign = $y->{sign};
+ my $xsign = $x -> {sign};
+ my $ysign = $y -> {sign};
- $y->{sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ...
- my $same = $xsign ne $x->{sign}; # ... if that changed the sign of $x.
- $y->{sign} = $ysign; # Re-insert the original sign.
+ $y -> {sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ...
+ my $same = $xsign ne $x -> {sign}; # ... if that changed the sign of $x.
+ $y -> {sign} = $ysign; # Re-insert the original sign.
if ($same) {
$x -> bone();
} else {
- ($x->{value},$rem->{value}) = $CALC->_div($x->{value},$y->{value});
+ ($x -> {value}, $rem -> {value}) =
+ $CALC -> _div($x -> {value}, $y -> {value});
- if ($CALC -> _is_zero($rem->{value})) {
- if ($xsign eq $ysign || $CALC -> _is_zero($x->{value})) {
- $x->{sign} = '+';
+ if ($CALC -> _is_zero($rem -> {value})) {
+ if ($xsign eq $ysign || $CALC -> _is_zero($x -> {value})) {
+ $x -> {sign} = '+';
} else {
- $x->{sign} = '-';
+ $x -> {sign} = '-';
}
} else {
if ($xsign eq $ysign) {
- $x->{sign} = '+';
+ $x -> {sign} = '+';
} else {
if ($xsign eq '+') {
$x -> badd(1);
} else {
$x -> bsub(1);
}
- $x->{sign} = '-';
+ $x -> {sign} = '-';
}
}
}
- $x->round(@r);
+ $x -> round(@r);
if ($wantarray) {
- unless ($CALC -> _is_zero($rem->{value})) {
+ unless ($CALC -> _is_zero($rem -> {value})) {
if ($xsign ne $ysign) {
$rem = $y -> copy() -> babs() -> bsub($rem);
- }
- $rem->{sign} = $ysign;
- }
- $rem->{_a} = $x->{_a};
- $rem->{_p} = $x->{_p};
- $rem->round(@r);
- return ($x,$rem);
+ }
+ $rem -> {sign} = $ysign;
+ }
+ $rem -> {_a} = $x -> {_a};
+ $rem -> {_p} = $x -> {_p};
+ $rem -> round(@r);
+ return ($x, $rem);
}
return $x;
- }
+}
-###############################################################################
-# modulus functions
+sub btdiv {
+ # This does truncated division, where the quotient is truncted, i.e.,
+ # rounded towards zero.
+ #
+ # ($q, $r) = $x -> btdiv($y) returns $q and $r so that $q is int($x / $y)
+ # and $q * $y + $r = $x.
+
+ # Set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it if we can.
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x -> modify('btdiv');
+
+ my $wantarray = wantarray; # call only once
+
+ # At least one argument is NaN. Return NaN for both quotient and the
+ # modulo/remainder.
-sub bmod
- {
+ if ($x -> is_nan() || $y -> is_nan()) {
+ return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+ }
- # This is the remainder after floored division, where the quotient is
- # floored toward negative infinity and the remainder has the same sign as
- # the divisor.
+ # Divide by zero and modulo zero.
+ #
+ # Division: Use the common convention that x / 0 is inf with the same sign
+ # as x, except when x = 0, where we return NaN. This is also what earlier
+ # versions did.
+ #
+ # Modulo: In modular arithmetic, the congruence relation z = x (mod y)
+ # means that there is some integer k such that z - x = k y. If y = 0, we
+ # get z - x = 0 or z = x. This is also what earlier versions did, except
+ # that 0 % 0 returned NaN.
+ #
+ # inf / 0 = inf inf % 0 = inf
+ # 5 / 0 = inf 5 % 0 = 5
+ # 0 / 0 = NaN 0 % 0 = 0
+ # -5 / 0 = -inf -5 % 0 = -5
+ # -inf / 0 = -inf -inf % 0 = -inf
+
+ if ($y -> is_zero()) {
+ my $rem;
+ if ($wantarray) {
+ $rem = $x -> copy();
+ }
+ if ($x -> is_zero()) {
+ $x -> bnan();
+ } else {
+ $x -> binf($x -> {sign});
+ }
+ return $wantarray ? ($x, $rem) : $x;
+ }
+
+ # Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
+ # The divide by zero cases are covered above. In all of the cases listed
+ # below we return the same as core Perl.
+ #
+ # inf / -inf = NaN inf % -inf = NaN
+ # inf / -5 = -inf inf % -5 = NaN
+ # inf / 5 = inf inf % 5 = NaN
+ # inf / inf = NaN inf % inf = NaN
+ #
+ # -inf / -inf = NaN -inf % -inf = NaN
+ # -inf / -5 = inf -inf % -5 = NaN
+ # -inf / 5 = -inf -inf % 5 = NaN
+ # -inf / inf = NaN -inf % inf = NaN
+
+ if ($x -> is_inf()) {
+ my $rem;
+ $rem = $class -> bnan() if $wantarray;
+ if ($y -> is_inf()) {
+ $x -> bnan();
+ } else {
+ my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
+ $x -> binf($sign);
+ }
+ return $wantarray ? ($x, $rem) : $x;
+ }
+
+ # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
+ # are covered above. In the modulo cases (in the right column) we return
+ # the same as core Perl, which does floored division, so for consistency we
+ # also do floored division in the division cases (in the left column).
+ #
+ # -5 / inf = 0 -5 % inf = -5
+ # 0 / inf = 0 0 % inf = 0
+ # 5 / inf = 0 5 % inf = 5
+ #
+ # -5 / -inf = 0 -5 % -inf = -5
+ # 0 / -inf = 0 0 % -inf = 0
+ # 5 / -inf = 0 5 % -inf = 5
+
+ if ($y -> is_inf()) {
+ my $rem;
+ $rem = $x -> copy() if $wantarray;
+ $x -> bzero();
+ return $wantarray ? ($x, $rem) : $x;
+ }
+
+ return $upgrade -> btdiv($upgrade -> new($x), $upgrade -> new($y), @r)
+ if defined $upgrade;
+
+ $r[3] = $y; # no push!
+
+ # Inialize remainder.
+
+ my $rem = $class -> bzero();
+
+ # Are both operands the same object, i.e., like $x -> bdiv($x)? If so,
+ # flipping the sign of $y also flips the sign of $x.
+
+ my $xsign = $x -> {sign};
+ my $ysign = $y -> {sign};
+
+ $y -> {sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ...
+ my $same = $xsign ne $x -> {sign}; # ... if that changed the sign of $x.
+ $y -> {sign} = $ysign; # Re-insert the original sign.
+
+ if ($same) {
+ $x -> bone();
+ } else {
+ ($x -> {value}, $rem -> {value}) =
+ $CALC -> _div($x -> {value}, $y -> {value});
+
+ $x -> {sign} = $xsign eq $ysign ? '+' : '-';
+ $x -> {sign} = '+' if $CALC -> _is_zero($x -> {value});
+ $x -> round(@r);
+ }
+
+ if (wantarray) {
+ $rem -> {sign} = $xsign;
+ $rem -> {sign} = '+' if $CALC -> _is_zero($rem -> {value});
+ $rem -> {_a} = $x -> {_a};
+ $rem -> {_p} = $x -> {_p};
+ $rem -> round(@r);
+ return ($x, $rem);
+ }
+
+ return $x;
+}
+
+sub bmod {
+ # This is the remainder after floored division.
# Set up parameters.
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bmod');
- $r[3] = $y; # no push!
+ return $x if $x -> modify('bmod');
+ $r[3] = $y; # no push!
# At least one argument is NaN.
@@ -1912,8 +2031,8 @@ sub bmod
# Modulo zero. See documentation for bdiv().
if ($y -> is_zero()) {
- return $x;
- }
+ return $x;
+ }
# Numerator (dividend) is +/-inf.
@@ -1933,839 +2052,1689 @@ sub bmod
# Calc new sign and in case $y == +/- 1, return $x.
- $x->{value} = $CALC->_mod($x->{value},$y->{value});
- if ($CALC -> _is_zero($x->{value}))
- {
- $x->{sign} = '+'; # do not leave -0
+ $x -> {value} = $CALC -> _mod($x -> {value}, $y -> {value});
+ if ($CALC -> _is_zero($x -> {value})) {
+ $x -> {sign} = '+'; # do not leave -0
+ } else {
+ $x -> {value} = $CALC -> _sub($y -> {value}, $x -> {value}, 1) # $y-$x
+ if ($x -> {sign} ne $y -> {sign});
+ $x -> {sign} = $y -> {sign};
}
- else
- {
- $x->{value} = $CALC->_sub($y->{value},$x->{value},1) # $y-$x
- if ($x->{sign} ne $y->{sign});
- $x->{sign} = $y->{sign};
- }
-
- $x->round(@r);
- }
-
-sub bmodinv
- {
- # Return modular multiplicative inverse:
- #
- # z is the modular inverse of x (mod y) if and only if
- #
- # x*z ≡ 1 (mod y)
- #
- # If the modulus y is larger than one, x and z are relative primes (i.e.,
- # their greatest common divisor is one).
- #
- # If no modular multiplicative inverse exists, NaN is returned.
-
- # set up parameters
- my ($self,$x,$y,@r) = (undef,@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+
+ $x -> round(@r);
+}
+
+sub btmod {
+ # Remainder after truncated division.
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bmodinv');
+ return $x if $x -> modify('btmod');
- # Return NaN if one or both arguments is +inf, -inf, or nan.
+ # At least one argument is NaN.
- return $x->bnan() if ($y->{sign} !~ /^[+-]$/ ||
- $x->{sign} !~ /^[+-]$/);
+ if ($x -> is_nan() || $y -> is_nan()) {
+ return $x -> bnan();
+ }
- # Return NaN if $y is zero; 1 % 0 makes no sense.
+ # Modulo zero. See documentation for btdiv().
- return $x->bnan() if $y->is_zero();
+ if ($y -> is_zero()) {
+ return $x;
+ }
- # Return 0 in the trivial case. $x % 1 or $x % -1 is zero for all finite
- # integers $x.
+ # Numerator (dividend) is +/-inf.
- return $x->bzero() if ($y->is_one() ||
- $y->is_one('-'));
+ if ($x -> is_inf()) {
+ return $x -> bnan();
+ }
- # Return NaN if $x = 0, or $x modulo $y is zero. The only valid case when
- # $x = 0 is when $y = 1 or $y = -1, but that was covered above.
- #
- # Note that computing $x modulo $y here affects the value we'll feed to
- # $CALC->_modinv() below when $x and $y have opposite signs. E.g., if $x =
- # 5 and $y = 7, those two values are fed to _modinv(), but if $x = -5 and
- # $y = 7, the values fed to _modinv() are $x = 2 (= -5 % 7) and $y = 7.
- # The value if $x is affected only when $x and $y have opposite signs.
+ # Denominator (divisor) is +/-inf.
- $x->bmod($y);
- return $x->bnan() if $x->is_zero();
+ if ($y -> is_inf()) {
+ return $x;
+ }
+
+ return $upgrade -> btmod($upgrade -> new($x), $upgrade -> new($y), @r)
+ if defined $upgrade;
+
+ $r[3] = $y; # no push!
+
+ my $xsign = $x -> {sign};
+ my $ysign = $y -> {sign};
+
+ $x -> {value} = $CALC -> _mod($x -> {value}, $y -> {value});
+
+ $x -> {sign} = $xsign;
+ $x -> {sign} = '+' if $CALC -> _is_zero($x -> {value});
+ $x -> round(@r);
+ return $x;
+}
+
+sub bmodinv {
+ # Return modular multiplicative inverse:
+ #
+ # z is the modular inverse of x (mod y) if and only if
+ #
+ # x*z ≡ 1 (mod y)
+ #
+ # If the modulus y is larger than one, x and z are relative primes (i.e.,
+ # their greatest common divisor is one).
+ #
+ # If no modular multiplicative inverse exists, NaN is returned.
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (undef, @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x->modify('bmodinv');
- # Compute the modular multiplicative inverse of the absolute values. We'll
- # correct for the signs of $x and $y later. Return NaN if no GCD is found.
+ # Return NaN if one or both arguments is +inf, -inf, or nan.
- ($x->{value}, $x->{sign}) = $CALC->_modinv($x->{value}, $y->{value});
- return $x->bnan() if !defined $x->{value};
+ return $x->bnan() if ($y->{sign} !~ /^[+-]$/ ||
+ $x->{sign} !~ /^[+-]$/);
- # Library inconsistency workaround: _modinv() in Math::BigInt::GMP versions
- # <= 1.32 return undef rather than a "+" for the sign.
+ # Return NaN if $y is zero; 1 % 0 makes no sense.
- $x->{sign} = '+' unless defined $x->{sign};
+ return $x->bnan() if $y->is_zero();
- # When one or both arguments are negative, we have the following
- # relations. If x and y are positive:
- #
- # modinv(-x, -y) = -modinv(x, y)
- # modinv(-x, y) = y - modinv(x, y) = -modinv(x, y) (mod y)
- # modinv( x, -y) = modinv(x, y) - y = modinv(x, y) (mod -y)
+ # Return 0 in the trivial case. $x % 1 or $x % -1 is zero for all finite
+ # integers $x.
- # We must swap the sign of the result if the original $x is negative.
- # However, we must compensate for ignoring the signs when computing the
- # inverse modulo. The net effect is that we must swap the sign of the
- # result if $y is negative.
+ return $x->bzero() if ($y->is_one() ||
+ $y->is_one('-'));
+
+ # Return NaN if $x = 0, or $x modulo $y is zero. The only valid case when
+ # $x = 0 is when $y = 1 or $y = -1, but that was covered above.
+ #
+ # Note that computing $x modulo $y here affects the value we'll feed to
+ # $CALC->_modinv() below when $x and $y have opposite signs. E.g., if $x =
+ # 5 and $y = 7, those two values are fed to _modinv(), but if $x = -5 and
+ # $y = 7, the values fed to _modinv() are $x = 2 (= -5 % 7) and $y = 7.
+ # The value if $x is affected only when $x and $y have opposite signs.
- $x -> bneg() if $y->{sign} eq '-';
+ $x->bmod($y);
+ return $x->bnan() if $x->is_zero();
- # Compute $x modulo $y again after correcting the sign.
+ # Compute the modular multiplicative inverse of the absolute values. We'll
+ # correct for the signs of $x and $y later. Return NaN if no GCD is found.
- $x -> bmod($y) if $x->{sign} ne $y->{sign};
+ ($x->{value}, $x->{sign}) = $CALC->_modinv($x->{value}, $y->{value});
+ return $x->bnan() if !defined $x->{value};
- return $x;
- }
+ # Library inconsistency workaround: _modinv() in Math::BigInt::GMP versions
+ # <= 1.32 return undef rather than a "+" for the sign.
-sub bmodpow
- {
- # Modular exponentiation. Raises a very large number to a very large exponent
- # in a given very large modulus quickly, thanks to binary exponentiation.
- # Supports negative exponents.
- my ($self,$num,$exp,$mod,@r) = objectify(3,@_);
+ $x->{sign} = '+' unless defined $x->{sign};
- return $num if $num->modify('bmodpow');
+ # When one or both arguments are negative, we have the following
+ # relations. If x and y are positive:
+ #
+ # modinv(-x, -y) = -modinv(x, y)
+ # modinv(-x, y) = y - modinv(x, y) = -modinv(x, y) (mod y)
+ # modinv( x, -y) = modinv(x, y) - y = modinv(x, y) (mod -y)
- # When the exponent 'e' is negative, use the following relation, which is
- # based on finding the multiplicative inverse 'd' of 'b' modulo 'm':
- #
- # b^(-e) (mod m) = d^e (mod m) where b*d = 1 (mod m)
+ # We must swap the sign of the result if the original $x is negative.
+ # However, we must compensate for ignoring the signs when computing the
+ # inverse modulo. The net effect is that we must swap the sign of the
+ # result if $y is negative.
- $num->bmodinv($mod) if ($exp->{sign} eq '-');
+ $x -> bneg() if $y->{sign} eq '-';
- # Check for valid input. All operands must be finite, and the modulus must be
- # non-zero.
+ # Compute $x modulo $y again after correcting the sign.
- return $num->bnan() if ($num->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
- $exp->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
- $mod->{sign} =~ /NaN|inf/); # NaN, -inf, +inf
+ $x -> bmod($y) if $x->{sign} ne $y->{sign};
- # Modulo zero. See documentation for Math::BigInt's bmod() method.
+ return $x;
+}
- if ($mod -> is_zero()) {
- if ($num -> is_zero()) {
- return $self -> bnan();
- } else {
- return $num -> copy();
- }
- }
+sub bmodpow {
+ # Modular exponentiation. Raises a very large number to a very large exponent
+ # in a given very large modulus quickly, thanks to binary exponentiation.
+ # Supports negative exponents.
+ my ($class, $num, $exp, $mod, @r) = objectify(3, @_);
- # Compute 'a (mod m)', ignoring the signs on 'a' and 'm'. If the resulting
- # value is zero, the output is also zero, regardless of the signs on 'a' and
- # 'm'.
+ return $num if $num->modify('bmodpow');
- my $value = $CALC->_modpow($num->{value}, $exp->{value}, $mod->{value});
- my $sign = '+';
+ # When the exponent 'e' is negative, use the following relation, which is
+ # based on finding the multiplicative inverse 'd' of 'b' modulo 'm':
+ #
+ # b^(-e) (mod m) = d^e (mod m) where b*d = 1 (mod m)
- # If the resulting value is non-zero, we have four special cases, depending
- # on the signs on 'a' and 'm'.
+ $num->bmodinv($mod) if ($exp->{sign} eq '-');
- unless ($CALC->_is_zero($value)) {
+ # Check for valid input. All operands must be finite, and the modulus must be
+ # non-zero.
- # There is a negative sign on 'a' (= $num**$exp) only if the number we
- # are exponentiating ($num) is negative and the exponent ($exp) is odd.
+ return $num->bnan() if ($num->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
+ $exp->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
+ $mod->{sign} =~ /NaN|inf/); # NaN, -inf, +inf
- if ($num->{sign} eq '-' && $exp->is_odd()) {
+ # Modulo zero. See documentation for Math::BigInt's bmod() method.
- # When both the number 'a' and the modulus 'm' have a negative sign,
- # use this relation:
- #
- # -a (mod -m) = -(a (mod m))
+ if ($mod -> is_zero()) {
+ if ($num -> is_zero()) {
+ return $class -> bnan();
+ } else {
+ return $num -> copy();
+ }
+ }
- if ($mod->{sign} eq '-') {
- $sign = '-';
- }
+ # Compute 'a (mod m)', ignoring the signs on 'a' and 'm'. If the resulting
+ # value is zero, the output is also zero, regardless of the signs on 'a' and
+ # 'm'.
- # When only the number 'a' has a negative sign, use this relation:
- #
- # -a (mod m) = m - (a (mod m))
+ my $value = $CALC->_modpow($num->{value}, $exp->{value}, $mod->{value});
+ my $sign = '+';
- else {
- # Use copy of $mod since _sub() modifies the first argument.
- my $mod = $CALC->_copy($mod->{value});
- $value = $CALC->_sub($mod, $value);
- $sign = '+';
- }
+ # If the resulting value is non-zero, we have four special cases, depending
+ # on the signs on 'a' and 'm'.
- } else {
+ unless ($CALC->_is_zero($value)) {
- # When only the modulus 'm' has a negative sign, use this relation:
- #
- # a (mod -m) = (a (mod m)) - m
- # = -(m - (a (mod m)))
+ # There is a negative sign on 'a' (= $num**$exp) only if the number we
+ # are exponentiating ($num) is negative and the exponent ($exp) is odd.
- if ($mod->{sign} eq '-') {
- # Use copy of $mod since _sub() modifies the first argument.
- my $mod = $CALC->_copy($mod->{value});
- $value = $CALC->_sub($mod, $value);
- $sign = '-';
- }
+ if ($num->{sign} eq '-' && $exp->is_odd()) {
- # When neither the number 'a' nor the modulus 'm' have a negative
- # sign, directly return the already computed value.
- #
- # (a (mod m))
+ # When both the number 'a' and the modulus 'm' have a negative sign,
+ # use this relation:
+ #
+ # -a (mod -m) = -(a (mod m))
- }
+ if ($mod->{sign} eq '-') {
+ $sign = '-';
+ }
- }
+ # When only the number 'a' has a negative sign, use this relation:
+ #
+ # -a (mod m) = m - (a (mod m))
- $num->{value} = $value;
- $num->{sign} = $sign;
+ else {
+ # Use copy of $mod since _sub() modifies the first argument.
+ my $mod = $CALC->_copy($mod->{value});
+ $value = $CALC->_sub($mod, $value);
+ $sign = '+';
+ }
- return $num;
- }
+ } else {
-###############################################################################
+ # When only the modulus 'm' has a negative sign, use this relation:
+ #
+ # a (mod -m) = (a (mod m)) - m
+ # = -(m - (a (mod m)))
+
+ if ($mod->{sign} eq '-') {
+ # Use copy of $mod since _sub() modifies the first argument.
+ my $mod = $CALC->_copy($mod->{value});
+ $value = $CALC->_sub($mod, $value);
+ $sign = '-';
+ }
+
+ # When neither the number 'a' nor the modulus 'm' have a negative
+ # sign, directly return the already computed value.
+ #
+ # (a (mod m))
+
+ }
-sub bfac
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # compute factorial number from $x, modify $x in place
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
-
- return $x if $x->modify('bfac') || $x->{sign} eq '+inf'; # inf => inf
- return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 etc => NaN
-
- $x->{value} = $CALC->_fac($x->{value});
- $x->round(@r);
- }
-
-sub bpow
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # compute power of two numbers -- stolen from Knuth Vol 2 pg 233
- # modifies first argument
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
}
- return $x if $x->modify('bpow');
+ $num->{value} = $value;
+ $num->{sign} = $sign;
- return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+ return $num;
+}
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
- {
- # +-inf ** +-inf
- return $x->bnan();
- }
- # +-inf ** Y
- if ($x->{sign} =~ /^[+-]inf/)
- {
- # +inf ** 0 => NaN
- return $x->bnan() if $y->is_zero();
- # -inf ** -1 => 1/inf => 0
- return $x->bzero() if $y->is_one('-') && $x->is_negative();
-
- # +inf ** Y => inf
- return $x if $x->{sign} eq '+inf';
-
- # -inf ** Y => -inf if Y is odd
- return $x if $y->is_odd();
- return $x->babs();
- }
- # X ** +-inf
-
- # 1 ** +inf => 1
- return $x if $x->is_one();
-
- # 0 ** inf => 0
- return $x if $x->is_zero() && $y->{sign} =~ /^[+]/;
-
- # 0 ** -inf => inf
- return $x->binf() if $x->is_zero();
-
- # -1 ** -inf => NaN
- return $x->bnan() if $x->is_one('-') && $y->{sign} =~ /^[-]/;
-
- # -X ** -inf => 0
- return $x->bzero() if $x->{sign} eq '-' && $y->{sign} =~ /^[-]/;
-
- # -1 ** inf => NaN
- return $x->bnan() if $x->{sign} eq '-';
-
- # X ** inf => inf
- return $x->binf() if $y->{sign} =~ /^[+]/;
- # X ** -inf => 0
- return $x->bzero();
- }
-
- return $upgrade->bpow($upgrade->new($x),$y,@r)
- if defined $upgrade && (!$y->isa($self) || $y->{sign} eq '-');
-
- $r[3] = $y; # no push!
-
- # cases 0 ** Y, X ** 0, X ** 1, 1 ** Y are handled by Calc or Emu
-
- my $new_sign = '+';
- $new_sign = $y->is_odd() ? '-' : '+' if ($x->{sign} ne '+');
-
- # 0 ** -7 => ( 1 / (0 ** 7)) => 1 / 0 => +inf
- return $x->binf()
- if $y->{sign} eq '-' && $x->{sign} eq '+' && $CALC->_is_zero($x->{value});
- # 1 ** -y => 1 / (1 ** |y|)
- # so do test for negative $y after above's clause
- return $x->bnan() if $y->{sign} eq '-' && !$CALC->_is_one($x->{value});
-
- $x->{value} = $CALC->_pow($x->{value},$y->{value});
- $x->{sign} = $new_sign;
- $x->{sign} = '+' if $CALC->_is_zero($y->{value});
- $x->round(@r);
- }
-
-sub blsft
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # compute x << y, base n, y >= 0
-
- # set up parameters
- my ($self,$x,$y,$n,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$n,@r) = objectify(2,@_);
+sub bpow {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # compute power of two numbers -- stolen from Knuth Vol 2 pg 233
+ # modifies first argument
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('blsft');
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- return $x->round(@r) if $y->is_zero();
+ return $x if $x->modify('bpow');
+
+ return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
+ # +-inf ** +-inf
+ return $x->bnan();
+ }
+ # +-inf ** Y
+ if ($x->{sign} =~ /^[+-]inf/) {
+ # +inf ** 0 => NaN
+ return $x->bnan() if $y->is_zero();
+ # -inf ** -1 => 1/inf => 0
+ return $x->bzero() if $y->is_one('-') && $x->is_negative();
+
+ # +inf ** Y => inf
+ return $x if $x->{sign} eq '+inf';
+
+ # -inf ** Y => -inf if Y is odd
+ return $x if $y->is_odd();
+ return $x->babs();
+ }
+ # X ** +-inf
+
+ # 1 ** +inf => 1
+ return $x if $x->is_one();
- $n = 2 if !defined $n; return $x->bnan() if $n <= 0 || $y->{sign} eq '-';
+ # 0 ** inf => 0
+ return $x if $x->is_zero() && $y->{sign} =~ /^[+]/;
- $x->{value} = $CALC->_lsft($x->{value},$y->{value},$n);
- $x->round(@r);
- }
+ # 0 ** -inf => inf
+ return $x->binf() if $x->is_zero();
-sub brsft
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # compute x >> y, base n, y >= 0
+ # -1 ** -inf => NaN
+ return $x->bnan() if $x->is_one('-') && $y->{sign} =~ /^[-]/;
- # set up parameters
- my ($self,$x,$y,$n,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$n,@r) = objectify(2,@_);
+ # -X ** -inf => 0
+ return $x->bzero() if $x->{sign} eq '-' && $y->{sign} =~ /^[-]/;
+
+ # -1 ** inf => NaN
+ return $x->bnan() if $x->{sign} eq '-';
+
+ # X ** inf => inf
+ return $x->binf() if $y->{sign} =~ /^[+]/;
+ # X ** -inf => 0
+ return $x->bzero();
}
- return $x if $x->modify('brsft');
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- return $x->round(@r) if $y->is_zero();
- return $x->bzero(@r) if $x->is_zero(); # 0 => 0
+ return $upgrade->bpow($upgrade->new($x), $y, @r)
+ if defined $upgrade && (!$y->isa($class) || $y->{sign} eq '-');
- $n = 2 if !defined $n; return $x->bnan() if $n <= 0 || $y->{sign} eq '-';
+ $r[3] = $y; # no push!
- # this only works for negative numbers when shifting in base 2
- if (($x->{sign} eq '-') && ($n == 2))
- {
- return $x->round(@r) if $x->is_one('-'); # -1 => -1
- if (!$y->is_one())
- {
- # although this is O(N*N) in calc (as_bin!) it is O(N) in Pari et al
- # but perhaps there is a better emulation for two's complement shift...
- # if $y != 1, we must simulate it by doing:
- # convert to bin, flip all bits, shift, and be done
- $x->binc(); # -3 => -2
- my $bin = $x->as_bin();
- $bin =~ s/^-0b//; # strip '-0b' prefix
- $bin =~ tr/10/01/; # flip bits
- # now shift
- if ($y >= CORE::length($bin))
- {
- $bin = '0'; # shifting to far right creates -1
- # 0, because later increment makes
- # that 1, attached '-' makes it '-1'
- # because -1 >> x == -1 !
- }
- else
- {
- $bin =~ s/.{$y}$//; # cut off at the right side
- $bin = '1' . $bin; # extend left side by one dummy '1'
- $bin =~ tr/10/01/; # flip bits back
+ # cases 0 ** Y, X ** 0, X ** 1, 1 ** Y are handled by Calc or Emu
+
+ my $new_sign = '+';
+ $new_sign = $y->is_odd() ? '-' : '+' if ($x->{sign} ne '+');
+
+ # 0 ** -7 => ( 1 / (0 ** 7)) => 1 / 0 => +inf
+ return $x->binf()
+ if $y->{sign} eq '-' && $x->{sign} eq '+' && $CALC->_is_zero($x->{value});
+ # 1 ** -y => 1 / (1 ** |y|)
+ # so do test for negative $y after above's clause
+ return $x->bnan() if $y->{sign} eq '-' && !$CALC->_is_one($x->{value});
+
+ $x->{value} = $CALC->_pow($x->{value}, $y->{value});
+ $x->{sign} = $new_sign;
+ $x->{sign} = '+' if $CALC->_is_zero($y->{value});
+ $x->round(@r);
+}
+
+sub blog {
+ # Return the logarithm of the operand. If a second operand is defined, that
+ # value is used as the base, otherwise the base is assumed to be Euler's
+ # constant.
+
+ my ($class, $x, $base, @r);
+
+ # Don't objectify the base, since an undefined base, as in $x->blog() or
+ # $x->blog(undef) signals that the base is Euler's number.
+
+ if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+ # E.g., Math::BigInt->blog(256, 2)
+ ($class, $x, $base, @r) =
+ defined $_[2] ? objectify(2, @_) : objectify(1, @_);
+ } else {
+ # E.g., Math::BigInt::blog(256, 2) or $x->blog(2)
+ ($class, $x, $base, @r) =
+ defined $_[1] ? objectify(2, @_) : objectify(1, @_);
+ }
+
+ return $x if $x->modify('blog');
+
+ # Handle all exception cases and all trivial cases. I have used Wolfram
+ # Alpha (http://www.wolframalpha.com) as the reference for these cases.
+
+ return $x -> bnan() if $x -> is_nan();
+
+ if (defined $base) {
+ $base = $class -> new($base) unless ref $base;
+ if ($base -> is_nan() || $base -> is_one()) {
+ return $x -> bnan();
+ } elsif ($base -> is_inf() || $base -> is_zero()) {
+ return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
+ return $x -> bzero();
+ } elsif ($base -> is_negative()) { # -inf < base < 0
+ return $x -> bzero() if $x -> is_one(); # x = 1
+ return $x -> bone() if $x == $base; # x = base
+ return $x -> bnan(); # otherwise
}
- my $res = $self->new('0b'.$bin); # add prefix and convert back
- $res->binc(); # remember to increment
- $x->{value} = $res->{value}; # take over value
- return $x->round(@r); # we are done now, magic, isn't?
- }
- # x < 0, n == 2, y == 1
- $x->bdec(); # n == 2, but $y == 1: this fixes it
- }
-
- $x->{value} = $CALC->_rsft($x->{value},$y->{value},$n);
- $x->round(@r);
- }
-
-sub band
- {
- #(BINT or num_str, BINT or num_str) return BINT
- # compute x & y
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
}
- return $x if $x->modify('band');
+ # We now know that the base is either undefined or >= 2 and finite.
- $r[3] = $y; # no push!
+ return $x -> binf('+') if $x -> is_inf(); # x = +/-inf
+ return $x -> bnan() if $x -> is_neg(); # -inf < x < 0
+ return $x -> bzero() if $x -> is_one(); # x = 1
+ return $x -> binf('-') if $x -> is_zero(); # x = 0
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ # At this point we are done handling all exception cases and trivial cases.
- my $sx = $x->{sign} eq '+' ? 1 : -1;
- my $sy = $y->{sign} eq '+' ? 1 : -1;
+ return $upgrade -> blog($upgrade -> new($x), $base, @r) if defined $upgrade;
- if ($sx == 1 && $sy == 1)
- {
- $x->{value} = $CALC->_and($x->{value},$y->{value});
- return $x->round(@r);
+ # fix for bug #24969:
+ # the default base is e (Euler's number) which is not an integer
+ if (!defined $base) {
+ require Math::BigFloat;
+ my $u = Math::BigFloat->blog(Math::BigFloat->new($x))->as_int();
+ # modify $x in place
+ $x->{value} = $u->{value};
+ $x->{sign} = $u->{sign};
+ return $x;
}
- if ($CAN{signed_and})
+ my ($rc, $exact) = $CALC->_log_int($x->{value}, $base->{value});
+ return $x->bnan() unless defined $rc; # not possible to take log?
+ $x->{value} = $rc;
+ $x->round(@r);
+}
+
+sub bexp {
+ # Calculate e ** $x (Euler's number to the power of X), truncated to
+ # an integer value.
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ return $x if $x->modify('bexp');
+
+ # inf, -inf, NaN, <0 => NaN
+ return $x->bnan() if $x->{sign} eq 'NaN';
+ return $x->bone() if $x->is_zero();
+ return $x if $x->{sign} eq '+inf';
+ return $x->bzero() if $x->{sign} eq '-inf';
+
+ my $u;
{
- $x->{value} = $CALC->_signed_and($x->{value},$y->{value},$sx,$sy);
- return $x->round(@r);
+ # run through Math::BigFloat unless told otherwise
+ require Math::BigFloat unless defined $upgrade;
+ local $upgrade = 'Math::BigFloat' unless defined $upgrade;
+ # calculate result, truncate it to integer
+ $u = $upgrade->bexp($upgrade->new($x), @r);
}
- require $EMU_LIB;
- __emu_band($self,$x,$y,$sx,$sy,@r);
- }
+ if (defined $upgrade) {
+ $x = $u;
+ } else {
+ $u = $u->as_int();
+ # modify $x in place
+ $x->{value} = $u->{value};
+ $x->round(@r);
+ }
+}
-sub bior
- {
- #(BINT or num_str, BINT or num_str) return BINT
- # compute x | y
+sub bnok {
+ # Calculate n over k (binomial coefficient or "choose" function) as integer.
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bior');
- $r[3] = $y; # no push!
+ return $x if $x->modify('bnok');
+ return $x->bnan() if $x->{sign} eq 'NaN' || $y->{sign} eq 'NaN';
+ return $x->binf() if $x->{sign} eq '+inf';
+
+ # k > n or k < 0 => 0
+ my $cmp = $x->bacmp($y);
+ return $x->bzero() if $cmp < 0 || substr($y->{sign}, 0, 1) eq "-";
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ if ($CALC->can('_nok')) {
+ $x->{value} = $CALC->_nok($x->{value}, $y->{value});
+ } else {
+ # ( 7 ) 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7
+ # ( - ) = --------- = --------------- = --------- = 5 * - * -
+ # ( 3 ) (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
- my $sx = $x->{sign} eq '+' ? 1 : -1;
- my $sy = $y->{sign} eq '+' ? 1 : -1;
+ my $n = $x -> {value};
+ my $k = $y -> {value};
- # the sign of X follows the sign of X, e.g. sign of Y irrelevant for bior()
+ # If k > n/2, or, equivalently, 2*k > n, compute nok(n, k) as
+ # nok(n, n-k) to minimize the number if iterations in the loop.
- # don't use lib for negative values
- if ($sx == 1 && $sy == 1)
- {
- $x->{value} = $CALC->_or($x->{value},$y->{value});
- return $x->round(@r);
+ {
+ my $twok = $CALC->_mul($CALC->_two(), $CALC->_copy($k));
+ if ($CALC->_acmp($twok, $n) > 0) {
+ $k = $CALC->_sub($CALC->_copy($n), $k);
+ }
+ }
+
+ if ($CALC->_is_zero($k)) {
+ $n = $CALC->_one();
+ } else {
+
+ # Make a copy of the original n, since we'll be modifying n
+ # in-place.
+
+ my $n_orig = $CALC->_copy($n);
+
+ $CALC->_sub($n, $k);
+ $CALC->_inc($n);
+
+ my $f = $CALC->_copy($n);
+ $CALC->_inc($f);
+
+ my $d = $CALC->_two();
+
+ # while f <= n (the original n, that is) ...
+
+ while ($CALC->_acmp($f, $n_orig) <= 0) {
+ $CALC->_mul($n, $f);
+ $CALC->_div($n, $d);
+ $CALC->_inc($f);
+ $CALC->_inc($d);
+ }
+ }
+
+ $x -> {value} = $n;
}
- # if lib can do negative values, let it handle this
- if ($CAN{signed_or})
- {
- $x->{value} = $CALC->_signed_or($x->{value},$y->{value},$sx,$sy);
- return $x->round(@r);
+ $x->round(@r);
+}
+
+sub bsin {
+ # Calculate sinus(x) to N digits. Unless upgrading is in effect, returns the
+ # result truncated to an integer.
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bsin');
+
+ return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+
+ return $upgrade->new($x)->bsin(@r) if defined $upgrade;
+
+ require Math::BigFloat;
+ # calculate the result and truncate it to integer
+ my $t = Math::BigFloat->new($x)->bsin(@r)->as_int();
+
+ $x->bone() if $t->is_one();
+ $x->bzero() if $t->is_zero();
+ $x->round(@r);
+}
+
+sub bcos {
+ # Calculate cosinus(x) to N digits. Unless upgrading is in effect, returns the
+ # result truncated to an integer.
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bcos');
+
+ return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+
+ return $upgrade->new($x)->bcos(@r) if defined $upgrade;
+
+ require Math::BigFloat;
+ # calculate the result and truncate it to integer
+ my $t = Math::BigFloat->new($x)->bcos(@r)->as_int();
+
+ $x->bone() if $t->is_one();
+ $x->bzero() if $t->is_zero();
+ $x->round(@r);
+}
+
+sub batan {
+ # Calculate arcus tangens of x to N digits. Unless upgrading is in effect, returns the
+ # result truncated to an integer.
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('batan');
+
+ return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+
+ return $upgrade->new($x)->batan(@r) if defined $upgrade;
+
+ # calculate the result and truncate it to integer
+ my $t = Math::BigFloat->new($x)->batan(@r);
+
+ $x->{value} = $CALC->_new($x->as_int()->bstr());
+ $x->round(@r);
+}
+
+sub batan2 {
+ # calculate arcus tangens of ($y/$x)
+
+ # set up parameters
+ my ($class, $y, $x, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $y, $x, @r) = objectify(2, @_);
+ }
+
+ return $y if $y->modify('batan2');
+
+ return $y->bnan() if ($y->{sign} eq $nan) || ($x->{sign} eq $nan);
+
+ # Y X
+ # != 0 -inf result is +- pi
+ if ($x->is_inf() || $y->is_inf()) {
+ # upgrade to Math::BigFloat etc.
+ return $upgrade->new($y)->batan2($upgrade->new($x), @r) if defined $upgrade;
+ if ($y->is_inf()) {
+ if ($x->{sign} eq '-inf') {
+ # calculate 3 pi/4 => 2.3.. => 2
+ $y->bone(substr($y->{sign}, 0, 1));
+ $y->bmul($class->new(2));
+ } elsif ($x->{sign} eq '+inf') {
+ # calculate pi/4 => 0.7 => 0
+ $y->bzero();
+ } else {
+ # calculate pi/2 => 1.5 => 1
+ $y->bone(substr($y->{sign}, 0, 1));
+ }
+ } else {
+ if ($x->{sign} eq '+inf') {
+ # calculate pi/4 => 0.7 => 0
+ $y->bzero();
+ } else {
+ # PI => 3.1415.. => 3
+ $y->bone(substr($y->{sign}, 0, 1));
+ $y->bmul($class->new(3));
+ }
+ }
+ return $y;
}
- require $EMU_LIB;
- __emu_bior($self,$x,$y,$sx,$sy,@r);
- }
+ return $upgrade->new($y)->batan2($upgrade->new($x), @r) if defined $upgrade;
-sub bxor
- {
- #(BINT or num_str, BINT or num_str) return BINT
- # compute x ^ y
+ require Math::BigFloat;
+ my $r = Math::BigFloat->new($y)
+ ->batan2(Math::BigFloat->new($x), @r)
+ ->as_int();
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ $x->{value} = $r->{value};
+ $x->{sign} = $r->{sign};
+
+ $x;
+}
+
+sub bsqrt {
+ # calculate square root of $x
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bsqrt');
+
+ return $x->bnan() if $x->{sign} !~ /^\+/; # -x or -inf or NaN => NaN
+ return $x if $x->{sign} eq '+inf'; # sqrt(+inf) == inf
+
+ return $upgrade->bsqrt($x, @r) if defined $upgrade;
+
+ $x->{value} = $CALC->_sqrt($x->{value});
+ $x->round(@r);
+}
+
+sub broot {
+ # calculate $y'th root of $x
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ $y = $class->new(2) unless defined $y;
+
+ # objectify is costly, so avoid it
+ if ((!ref($x)) || (ref($x) ne ref($y))) {
+ ($class, $x, $y, @r) = objectify(2, $class || $class, @_);
}
- return $x if $x->modify('bxor');
- $r[3] = $y; # no push!
+ return $x if $x->modify('broot');
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
+ return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
+ $y->{sign} !~ /^\+$/;
- my $sx = $x->{sign} eq '+' ? 1 : -1;
- my $sy = $y->{sign} eq '+' ? 1 : -1;
+ return $x->round(@r)
+ if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
- # don't use lib for negative values
- if ($sx == 1 && $sy == 1)
- {
- $x->{value} = $CALC->_xor($x->{value},$y->{value});
- return $x->round(@r);
+ return $upgrade->new($x)->broot($upgrade->new($y), @r) if defined $upgrade;
+
+ $x->{value} = $CALC->_root($x->{value}, $y->{value});
+ $x->round(@r);
+}
+
+sub bfac {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # compute factorial number from $x, modify $x in place
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bfac') || $x->{sign} eq '+inf'; # inf => inf
+ return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 etc => NaN
+
+ $x->{value} = $CALC->_fac($x->{value});
+ $x->round(@r);
+}
+
+sub bdfac {
+ # compute double factorial, modify $x in place
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bdfac') || $x->{sign} eq '+inf'; # inf => inf
+ return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 etc => NaN
+
+ Carp::croak("bdfac() requires a newer version of the $CALC library.")
+ unless $CALC->can('_dfac');
+
+ $x->{value} = $CALC->_dfac($x->{value});
+ $x->round(@r);
+}
+
+sub bfib {
+ # compute Fibonacci number(s)
+ my ($class, $x, @r) = objectify(1, @_);
+
+ Carp::croak("bfib() requires a newer version of the $CALC library.")
+ unless $CALC->can('_fib');
+
+ return $x if $x->modify('bfib');
+
+ # List context.
+
+ if (wantarray) {
+ return () if $x -> is_nan();
+ Carp::croak("bfib() can't return an infinitely long list of numbers")
+ if $x -> is_inf();
+
+ # Use the backend library to compute the first $x Fibonacci numbers.
+
+ my @values = $CALC->_fib($x->{value});
+
+ # Make objects out of them. The last element in the array is the
+ # invocand.
+
+ for (my $i = 0 ; $i < $#values ; ++ $i) {
+ my $fib = $class -> bzero();
+ $fib -> {value} = $values[$i];
+ $values[$i] = $fib;
+ }
+
+ $x -> {value} = $values[-1];
+ $values[-1] = $x;
+
+ # If negative, insert sign as appropriate.
+
+ if ($x -> is_neg()) {
+ for (my $i = 2 ; $i <= $#values ; $i += 2) {
+ $values[$i]{sign} = '-';
+ }
+ }
+
+ @values = map { $_ -> round(@r) } @values;
+ return @values;
}
- # if lib can do negative values, let it handle this
- if ($CAN{signed_xor})
- {
- $x->{value} = $CALC->_signed_xor($x->{value},$y->{value},$sx,$sy);
- return $x->round(@r);
+ # Scalar context.
+
+ else {
+ return $x if $x->modify('bdfac') || $x -> is_inf('+');
+ return $x->bnan() if $x -> is_nan() || $x -> is_inf('-');
+
+ $x->{sign} = $x -> is_neg() && $x -> is_even() ? '-' : '+';
+ $x->{value} = $CALC->_fib($x->{value});
+ return $x->round(@r);
}
+}
- require $EMU_LIB;
- __emu_bxor($self,$x,$y,$sx,$sy,@r);
- }
+sub blucas {
+ # compute Lucas number(s)
+ my ($class, $x, @r) = objectify(1, @_);
-sub length
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ Carp::croak("blucas() requires a newer version of the $CALC library.")
+ unless $CALC->can('_lucas');
- my $e = $CALC->_len($x->{value});
- wantarray ? ($e,0) : $e;
- }
+ return $x if $x->modify('blucas');
-sub digit
- {
- # return the nth decimal digit, negative values count backward, 0 is right
- my ($self,$x,$n) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ # List context.
- $n = $n->numify() if ref($n);
- $CALC->_digit($x->{value},$n||0);
- }
+ if (wantarray) {
+ return () if $x -> is_nan();
+ Carp::croak("blucas() can't return an infinitely long list of numbers")
+ if $x -> is_inf();
-sub _trailing_zeros
- {
- # return the amount of trailing zeros in $x (as scalar)
- my $x = shift;
- $x = $class->new($x) unless ref $x;
+ # Use the backend library to compute the first $x Lucas numbers.
- return 0 if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf etc
+ my @values = $CALC->_lucas($x->{value});
- $CALC->_zeros($x->{value}); # must handle odd values, 0 etc
- }
+ # Make objects out of them. The last element in the array is the
+ # invocand.
-sub bsqrt
- {
- # calculate square root of $x
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ for (my $i = 0 ; $i < $#values ; ++ $i) {
+ my $lucas = $class -> bzero();
+ $lucas -> {value} = $values[$i];
+ $values[$i] = $lucas;
+ }
- return $x if $x->modify('bsqrt');
+ $x -> {value} = $values[-1];
+ $values[-1] = $x;
- return $x->bnan() if $x->{sign} !~ /^\+/; # -x or -inf or NaN => NaN
- return $x if $x->{sign} eq '+inf'; # sqrt(+inf) == inf
+ # If negative, insert sign as appropriate.
- return $upgrade->bsqrt($x,@r) if defined $upgrade;
+ if ($x -> is_neg()) {
+ for (my $i = 2 ; $i <= $#values ; $i += 2) {
+ $values[$i]{sign} = '-';
+ }
+ }
- $x->{value} = $CALC->_sqrt($x->{value});
- $x->round(@r);
- }
+ @values = map { $_ -> round(@r) } @values;
+ return @values;
+ }
-sub broot
- {
- # calculate $y'th root of $x
+ # Scalar context.
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ else {
+ return $x if $x -> is_inf('+');
+ return $x->bnan() if $x -> is_nan() || $x -> is_inf('-');
- $y = $self->new(2) unless defined $y;
+ $x->{sign} = $x -> is_neg() && $x -> is_even() ? '-' : '+';
+ $x->{value} = $CALC->_lucas($x->{value});
+ return $x->round(@r);
+ }
+}
- # objectify is costly, so avoid it
- if ((!ref($x)) || (ref($x) ne ref($y)))
- {
- ($self,$x,$y,@r) = objectify(2,$self || $class,@_);
+sub blsft {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # compute x << y, base n, y >= 0
+
+ # set up parameters
+ my ($class, $x, $y, $b, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $b, @r) = objectify(2, @_);
}
- return $x if $x->modify('broot');
+ return $x if $x -> modify('blsft');
+ return $x -> bnan() if ($x -> {sign} !~ /^[+-]$/ ||
+ $y -> {sign} !~ /^[+-]$/);
+ return $x -> round(@r) if $y -> is_zero();
- # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
- return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
- $y->{sign} !~ /^\+$/;
+ $b = 2 if !defined $b;
+ return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-';
- return $x->round(@r)
- if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
+ $x -> {value} = $CALC -> _lsft($x -> {value}, $y -> {value}, $b);
+ $x -> round(@r);
+}
- return $upgrade->new($x)->broot($upgrade->new($y),@r) if defined $upgrade;
+sub brsft {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # compute x >> y, base n, y >= 0
- $x->{value} = $CALC->_root($x->{value},$y->{value});
- $x->round(@r);
- }
+ # set up parameters
+ my ($class, $x, $y, $b, @r) = (ref($_[0]), @_);
-sub exponent
- {
- # return a copy of the exponent (here always 0, NaN or 1 for $m == 0)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $b, @r) = objectify(2, @_);
+ }
+
+ return $x if $x -> modify('brsft');
+ return $x -> bnan() if ($x -> {sign} !~ /^[+-]$/ || $y -> {sign} !~ /^[+-]$/);
+ return $x -> round(@r) if $y -> is_zero();
+ return $x -> bzero(@r) if $x -> is_zero(); # 0 => 0
+
+ $b = 2 if !defined $b;
+ return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-';
+
+ # this only works for negative numbers when shifting in base 2
+ if (($x -> {sign} eq '-') && ($b == 2)) {
+ return $x -> round(@r) if $x -> is_one('-'); # -1 => -1
+ if (!$y -> is_one()) {
+ # although this is O(N*N) in calc (as_bin!) it is O(N) in Pari et
+ # al but perhaps there is a better emulation for two's complement
+ # shift...
+ # if $y != 1, we must simulate it by doing:
+ # convert to bin, flip all bits, shift, and be done
+ $x -> binc(); # -3 => -2
+ my $bin = $x -> as_bin();
+ $bin =~ s/^-0b//; # strip '-0b' prefix
+ $bin =~ tr/10/01/; # flip bits
+ # now shift
+ if ($y >= CORE::length($bin)) {
+ $bin = '0'; # shifting to far right creates -1
+ # 0, because later increment makes
+ # that 1, attached '-' makes it '-1'
+ # because -1 >> x == -1 !
+ } else {
+ $bin =~ s/.{$y}$//; # cut off at the right side
+ $bin = '1' . $bin; # extend left side by one dummy '1'
+ $bin =~ tr/10/01/; # flip bits back
+ }
+ my $res = $class -> new('0b' . $bin); # add prefix and convert back
+ $res -> binc(); # remember to increment
+ $x -> {value} = $res -> {value}; # take over value
+ return $x -> round(@r); # we are done now, magic, isn't?
+ }
- if ($x->{sign} !~ /^[+-]$/)
- {
- my $s = $x->{sign}; $s =~ s/^[+-]//; # NaN, -inf,+inf => NaN or inf
- return $self->new($s);
+ # x < 0, n == 2, y == 1
+ $x -> bdec(); # n == 2, but $y == 1: this fixes it
}
- return $self->bzero() if $x->is_zero();
- # 12300 => 2 trailing zeros => exponent is 2
- $self->new( $CALC->_zeros($x->{value}) );
- }
+ $x -> {value} = $CALC -> _rsft($x -> {value}, $y -> {value}, $b);
+ $x -> round(@r);
+}
+
+###############################################################################
+# Bitwise methods
+###############################################################################
-sub mantissa
- {
- # return the mantissa (compatible to Math::BigFloat, e.g. reduced)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub band {
+ #(BINT or num_str, BINT or num_str) return BINT
+ # compute x & y
- if ($x->{sign} !~ /^[+-]$/)
- {
- # for NaN, +inf, -inf: keep the sign
- return $self->new($x->{sign});
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- my $m = $x->copy(); delete $m->{_p}; delete $m->{_a};
- # that's a bit inefficient:
- my $zeros = $CALC->_zeros($m->{value});
- $m->brsft($zeros,10) if $zeros != 0;
- $m;
- }
+ return $x if $x->modify('band');
-sub parts
- {
- # return a copy of both the exponent and the mantissa
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ $r[3] = $y; # no push!
- ($x->mantissa(),$x->exponent());
- }
+ return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
-##############################################################################
-# rounding functions
-
-sub bfround
- {
- # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
- # $n == 0 || $n == 1 => round to integer
- my $x = shift; my $self = ref($x) || $x; $x = $self->new($x) unless ref $x;
-
- my ($scale,$mode) = $x->_scale_p(@_);
-
- return $x if !defined $scale || $x->modify('bfround'); # no-op
-
- # no-op for BigInts if $n <= 0
- $x->bround( $x->length()-$scale, $mode) if $scale > 0;
-
- delete $x->{_a}; # delete to save memory
- $x->{_p} = $scale; # store new _p
- $x;
- }
-
-sub _scan_for_nonzero
- {
- # internal, used by bround() to scan for non-zeros after a '5'
- my ($x,$pad,$xs,$len) = @_;
-
- return 0 if $len == 1; # "5" is trailed by invisible zeros
- my $follow = $pad - 1;
- return 0 if $follow > $len || $follow < 1;
-
- # use the string form to check whether only '0's follow or not
- substr ($xs,-$follow) =~ /[^0]/ ? 1 : 0;
- }
-
-sub fround
- {
- # Exists to make life easier for switch between MBF and MBI (should we
- # autoload fxxx() like MBF does for bxxx()?)
- my $x = shift; $x = $class->new($x) unless ref $x;
- $x->bround(@_);
- }
-
-sub bround
- {
- # accuracy: +$n preserve $n digits from left,
- # -$n preserve $n digits from right (f.i. for 0.1234 style in MBF)
- # no-op for $n == 0
- # and overwrite the rest with 0's, return normalized number
- # do not return $x->bnorm(), but $x
-
- my $x = shift; $x = $class->new($x) unless ref $x;
- my ($scale,$mode) = $x->_scale_a(@_);
- return $x if !defined $scale || $x->modify('bround'); # no-op
-
- if ($x->is_zero() || $scale == 0)
- {
- $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
- return $x;
+ my $sx = $x->{sign} eq '+' ? 1 : -1;
+ my $sy = $y->{sign} eq '+' ? 1 : -1;
+
+ if ($sx == 1 && $sy == 1) {
+ $x->{value} = $CALC->_and($x->{value}, $y->{value});
+ return $x->round(@r);
}
- return $x if $x->{sign} !~ /^[+-]$/; # inf, NaN
- # we have fewer digits than we want to scale to
- my $len = $x->length();
- # convert $scale to a scalar in case it is an object (put's a limit on the
- # number length, but this would already limited by memory constraints), makes
- # it faster
- $scale = $scale->numify() if ref ($scale);
+ if ($CAN{signed_and}) {
+ $x->{value} = $CALC->_signed_and($x->{value}, $y->{value}, $sx, $sy);
+ return $x->round(@r);
+ }
- # scale < 0, but > -len (not >=!)
- if (($scale < 0 && $scale < -$len-1) || ($scale >= $len))
- {
- $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
- return $x;
+ require $EMU_LIB;
+ __emu_band($class, $x, $y, $sx, $sy, @r);
+}
+
+sub bior {
+ #(BINT or num_str, BINT or num_str) return BINT
+ # compute x | y
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # count of 0's to pad, from left (+) or right (-): 9 - +6 => 3, or |-6| => 6
- my ($pad,$digit_round,$digit_after);
- $pad = $len - $scale;
- $pad = abs($scale-1) if $scale < 0;
-
- # do not use digit(), it is very costly for binary => decimal
- # getting the entire string is also costly, but we need to do it only once
- my $xs = $CALC->_str($x->{value});
- my $pl = -$pad-1;
-
- # pad: 123: 0 => -1, at 1 => -2, at 2 => -3, at 3 => -4
- # pad+1: 123: 0 => 0, at 1 => -1, at 2 => -2, at 3 => -3
- $digit_round = '0'; $digit_round = substr($xs,$pl,1) if $pad <= $len;
- $pl++; $pl ++ if $pad >= $len;
- $digit_after = '0'; $digit_after = substr($xs,$pl,1) if $pad > 0;
-
- # in case of 01234 we round down, for 6789 up, and only in case 5 we look
- # closer at the remaining digits of the original $x, remember decision
- my $round_up = 1; # default round up
- $round_up -- if
- ($mode eq 'trunc') || # trunc by round down
- ($digit_after =~ /[01234]/) || # round down anyway,
- # 6789 => round up
- ($digit_after eq '5') && # not 5000...0000
- ($x->_scan_for_nonzero($pad,$xs,$len) == 0) &&
- (
- ($mode eq 'even') && ($digit_round =~ /[24680]/) ||
- ($mode eq 'odd') && ($digit_round =~ /[13579]/) ||
- ($mode eq '+inf') && ($x->{sign} eq '-') ||
- ($mode eq '-inf') && ($x->{sign} eq '+') ||
- ($mode eq 'zero') # round down if zero, sign adjusted below
- );
- my $put_back = 0; # not yet modified
+ return $x if $x->modify('bior');
+ $r[3] = $y; # no push!
- if (($pad > 0) && ($pad <= $len))
- {
- substr($xs,-$pad,$pad) = '0' x $pad; # replace with '00...'
- $put_back = 1; # need to put back
+ return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+
+ my $sx = $x->{sign} eq '+' ? 1 : -1;
+ my $sy = $y->{sign} eq '+' ? 1 : -1;
+
+ # the sign of X follows the sign of X, e.g. sign of Y irrelevant for bior()
+
+ # don't use lib for negative values
+ if ($sx == 1 && $sy == 1) {
+ $x->{value} = $CALC->_or($x->{value}, $y->{value});
+ return $x->round(@r);
}
- elsif ($pad > $len)
- {
- $x->bzero(); # round to '0'
+
+ # if lib can do negative values, let it handle this
+ if ($CAN{signed_or}) {
+ $x->{value} = $CALC->_signed_or($x->{value}, $y->{value}, $sx, $sy);
+ return $x->round(@r);
}
- if ($round_up) # what gave test above?
- {
- $put_back = 1; # need to put back
- $pad = $len, $xs = '0' x $pad if $scale < 0; # tlr: whack 0.51=>1.0
+ require $EMU_LIB;
+ __emu_bior($class, $x, $y, $sx, $sy, @r);
+}
- # we modify directly the string variant instead of creating a number and
- # adding it, since that is faster (we already have the string)
- my $c = 0; $pad ++; # for $pad == $len case
- while ($pad <= $len)
- {
- $c = substr($xs,-$pad,1) + 1; $c = '0' if $c eq '10';
- substr($xs,-$pad,1) = $c; $pad++;
- last if $c != 0; # no overflow => early out
- }
- $xs = '1'.$xs if $c == 0;
+sub bxor {
+ #(BINT or num_str, BINT or num_str) return BINT
+ # compute x ^ y
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- $x->{value} = $CALC->_new($xs) if $put_back == 1; # put back, if needed
- $x->{_a} = $scale if $scale >= 0;
- if ($scale < 0)
- {
- $x->{_a} = $len+$scale;
- $x->{_a} = 0 if $scale < -$len;
+ return $x if $x->modify('bxor');
+ $r[3] = $y; # no push!
+
+ return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+
+ my $sx = $x->{sign} eq '+' ? 1 : -1;
+ my $sy = $y->{sign} eq '+' ? 1 : -1;
+
+ # don't use lib for negative values
+ if ($sx == 1 && $sy == 1) {
+ $x->{value} = $CALC->_xor($x->{value}, $y->{value});
+ return $x->round(@r);
+ }
+
+ # if lib can do negative values, let it handle this
+ if ($CAN{signed_xor}) {
+ $x->{value} = $CALC->_signed_xor($x->{value}, $y->{value}, $sx, $sy);
+ return $x->round(@r);
+ }
+
+ require $EMU_LIB;
+ __emu_bxor($class, $x, $y, $sx, $sy, @r);
+}
+
+sub bnot {
+ # (num_str or BINT) return BINT
+ # represent ~x as twos-complement number
+ # we don't need $class, so undef instead of ref($_[0]) make it slightly faster
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bnot');
+ $x->binc()->bneg(); # binc already does round
+}
+
+###############################################################################
+# Rounding methods
+###############################################################################
+
+sub round {
+ # Round $self according to given parameters, or given second argument's
+ # parameters or global defaults
+
+ # for speed reasons, _find_round_parameters is embedded here:
+
+ my ($self, $a, $p, $r, @args) = @_;
+ # $a accuracy, if given by caller
+ # $p precision, if given by caller
+ # $r round_mode, if given by caller
+ # @args all 'other' arguments (0 for unary, 1 for binary ops)
+
+ my $class = ref($self); # find out class of argument(s)
+ no strict 'refs';
+
+ # now pick $a or $p, but only if we have got "arguments"
+ if (!defined $a) {
+ foreach ($self, @args) {
+ # take the defined one, or if both defined, the one that is smaller
+ $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
+ }
}
- $x;
- }
+ if (!defined $p) {
+ # even if $a is defined, take $p, to signal error for both defined
+ foreach ($self, @args) {
+ # take the defined one, or if both defined, the one that is bigger
+ # -2 > -3, and 3 > 2
+ $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
+ }
+ }
+
+ # if still none defined, use globals (#2)
+ $a = ${"$class\::accuracy"} unless defined $a;
+ $p = ${"$class\::precision"} unless defined $p;
-sub bfloor
- {
- # round towards minus infinity; no-op since it's already integer
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ # A == 0 is useless, so undef it to signal no rounding
+ $a = undef if defined $a && $a == 0;
- $x->round(@r);
- }
+ # no rounding today?
+ return $self unless defined $a || defined $p; # early out
-sub bceil
- {
- # round towards plus infinity; no-op since it's already int
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ # set A and set P is an fatal error
+ return $self->bnan() if defined $a && defined $p;
- $x->round(@r);
- }
+ $r = ${"$class\::round_mode"} unless defined $r;
+ if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) {
+ Carp::croak("Unknown round mode '$r'");
+ }
+
+ # now round, by calling either bround or bfround:
+ if (defined $a) {
+ $self->bround(int($a), $r) if !defined $self->{_a} || $self->{_a} >= $a;
+ } else { # both can't be undefined due to early out
+ $self->bfround(int($p), $r) if !defined $self->{_p} || $self->{_p} <= $p;
+ }
+
+ # bround() or bfround() already called bnorm() if nec.
+ $self;
+}
+
+sub bround {
+ # accuracy: +$n preserve $n digits from left,
+ # -$n preserve $n digits from right (f.i. for 0.1234 style in MBF)
+ # no-op for $n == 0
+ # and overwrite the rest with 0's, return normalized number
+ # do not return $x->bnorm(), but $x
+
+ my $x = shift;
+ $x = $class->new($x) unless ref $x;
+ my ($scale, $mode) = $x->_scale_a(@_);
+ return $x if !defined $scale || $x->modify('bround'); # no-op
+
+ if ($x->is_zero() || $scale == 0) {
+ $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
+ return $x;
+ }
+ return $x if $x->{sign} !~ /^[+-]$/; # inf, NaN
+
+ # we have fewer digits than we want to scale to
+ my $len = $x->length();
+ # convert $scale to a scalar in case it is an object (put's a limit on the
+ # number length, but this would already limited by memory constraints), makes
+ # it faster
+ $scale = $scale->numify() if ref ($scale);
+
+ # scale < 0, but > -len (not >=!)
+ if (($scale < 0 && $scale < -$len-1) || ($scale >= $len)) {
+ $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
+ return $x;
+ }
+
+ # count of 0's to pad, from left (+) or right (-): 9 - +6 => 3, or |-6| => 6
+ my ($pad, $digit_round, $digit_after);
+ $pad = $len - $scale;
+ $pad = abs($scale-1) if $scale < 0;
+
+ # do not use digit(), it is very costly for binary => decimal
+ # getting the entire string is also costly, but we need to do it only once
+ my $xs = $CALC->_str($x->{value});
+ my $pl = -$pad-1;
+
+ # pad: 123: 0 => -1, at 1 => -2, at 2 => -3, at 3 => -4
+ # pad+1: 123: 0 => 0, at 1 => -1, at 2 => -2, at 3 => -3
+ $digit_round = '0';
+ $digit_round = substr($xs, $pl, 1) if $pad <= $len;
+ $pl++;
+ $pl ++ if $pad >= $len;
+ $digit_after = '0';
+ $digit_after = substr($xs, $pl, 1) if $pad > 0;
+
+ # in case of 01234 we round down, for 6789 up, and only in case 5 we look
+ # closer at the remaining digits of the original $x, remember decision
+ my $round_up = 1; # default round up
+ $round_up -- if
+ ($mode eq 'trunc') || # trunc by round down
+ ($digit_after =~ /[01234]/) || # round down anyway,
+ # 6789 => round up
+ ($digit_after eq '5') && # not 5000...0000
+ ($x->_scan_for_nonzero($pad, $xs, $len) == 0) &&
+ (
+ ($mode eq 'even') && ($digit_round =~ /[24680]/) ||
+ ($mode eq 'odd') && ($digit_round =~ /[13579]/) ||
+ ($mode eq '+inf') && ($x->{sign} eq '-') ||
+ ($mode eq '-inf') && ($x->{sign} eq '+') ||
+ ($mode eq 'zero') # round down if zero, sign adjusted below
+ );
+ my $put_back = 0; # not yet modified
+
+ if (($pad > 0) && ($pad <= $len)) {
+ substr($xs, -$pad, $pad) = '0' x $pad; # replace with '00...'
+ $put_back = 1; # need to put back
+ } elsif ($pad > $len) {
+ $x->bzero(); # round to '0'
+ }
+
+ if ($round_up) { # what gave test above?
+ $put_back = 1; # need to put back
+ $pad = $len, $xs = '0' x $pad if $scale < 0; # tlr: whack 0.51=>1.0
+
+ # we modify directly the string variant instead of creating a number and
+ # adding it, since that is faster (we already have the string)
+ my $c = 0;
+ $pad ++; # for $pad == $len case
+ while ($pad <= $len) {
+ $c = substr($xs, -$pad, 1) + 1;
+ $c = '0' if $c eq '10';
+ substr($xs, -$pad, 1) = $c;
+ $pad++;
+ last if $c != 0; # no overflow => early out
+ }
+ $xs = '1'.$xs if $c == 0;
+
+ }
+ $x->{value} = $CALC->_new($xs) if $put_back == 1; # put back, if needed
+
+ $x->{_a} = $scale if $scale >= 0;
+ if ($scale < 0) {
+ $x->{_a} = $len+$scale;
+ $x->{_a} = 0 if $scale < -$len;
+ }
+ $x;
+}
+
+sub bfround {
+ # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
+ # $n == 0 || $n == 1 => round to integer
+ my $x = shift;
+ my $class = ref($x) || $x;
+ $x = $class->new($x) unless ref $x;
+
+ my ($scale, $mode) = $x->_scale_p(@_);
+
+ return $x if !defined $scale || $x->modify('bfround'); # no-op
+
+ # no-op for Math::BigInt objects if $n <= 0
+ $x->bround($x->length()-$scale, $mode) if $scale > 0;
+
+ delete $x->{_a}; # delete to save memory
+ $x->{_p} = $scale; # store new _p
+ $x;
+}
+
+sub fround {
+ # Exists to make life easier for switch between MBF and MBI (should we
+ # autoload fxxx() like MBF does for bxxx()?)
+ my $x = shift;
+ $x = $class->new($x) unless ref $x;
+ $x->bround(@_);
+}
+
+sub bfloor {
+ # round towards minus infinity; no-op since it's already integer
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $x->round(@r);
+}
+
+sub bceil {
+ # round towards plus infinity; no-op since it's already int
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $x->round(@r);
+}
sub bint {
# round towards zero; no-op since it's already integer
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
$x->round(@r);
}
-sub as_number
- {
- # An object might be asked to return itself as bigint on certain overloaded
- # operations. This does exactly this, so that sub classes can simple inherit
- # it or override with their own integer conversion routine.
- $_[0]->copy();
- }
+###############################################################################
+# Other mathematical methods
+###############################################################################
-sub as_hex
- {
- # return as hex string, with prefixed 0x
- my $x = shift; $x = $class->new($x) if !ref($x);
+sub bgcd {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # does not modify arguments, but returns new object
+ # GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff)
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ my ($class, @args) = objectify(0, @_);
- my $s = '';
- $s = $x->{sign} if $x->{sign} eq '-';
- $s . $CALC->_as_hex($x->{value});
- }
+ my $x = shift @args;
+ $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
-sub as_bin
- {
- # return as binary string, with prefixed 0b
- my $x = shift; $x = $class->new($x) if !ref($x);
+ return $class->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ while (@args) {
+ my $y = shift @args;
+ $y = $class->new($y) unless ref($y) && $y -> isa($class);
+ return $class->bnan() if $y->{sign} !~ /^[+-]$/; # y NaN?
+ $x->{value} = $CALC->_gcd($x->{value}, $y->{value});
+ last if $CALC->_is_one($x->{value});
+ }
- my $s = ''; $s = $x->{sign} if $x->{sign} eq '-';
- return $s . $CALC->_as_bin($x->{value});
- }
+ return $x -> babs();
+}
-sub as_oct
- {
- # return as octal string, with prefixed 0
- my $x = shift; $x = $class->new($x) if !ref($x);
+sub blcm {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # does not modify arguments, but returns new object
+ # Least Common Multiple
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ my ($class, @args) = objectify(0, @_);
- my $oct = $CALC->_as_oct($x->{value});
- return $x->{sign} eq '-' ? "-$oct" : $oct;
- }
+ my $x = shift @args;
+ $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
+ return $class->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
-##############################################################################
-# private stuff (internal use only)
+ while (@args) {
+ my $y = shift @args;
+ $y = $class -> new($y) unless ref($y) && $y -> isa($class);
+ return $x->bnan() if $y->{sign} !~ /^[+-]$/; # y not integer
+ $x -> {value} = $CALC->_lcm($x -> {value}, $y -> {value});
+ }
+
+ return $x -> babs();
+}
+
+###############################################################################
+# Object property methods
+###############################################################################
+
+sub sign {
+ # return the sign of the number: +/-/-inf/+inf/NaN
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ $x->{sign};
+}
+
+sub digit {
+ # return the nth decimal digit, negative values count backward, 0 is right
+ my ($class, $x, $n) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $n = $n->numify() if ref($n);
+ $CALC->_digit($x->{value}, $n || 0);
+}
+
+sub length {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ my $e = $CALC->_len($x->{value});
+ wantarray ? ($e, 0) : $e;
+}
+
+sub exponent {
+ # return a copy of the exponent (here always 0, NaN or 1 for $m == 0)
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ my $s = $x->{sign};
+ $s =~ s/^[+-]//; # NaN, -inf, +inf => NaN or inf
+ return $class->new($s);
+ }
+ return $class->bzero() if $x->is_zero();
+
+ # 12300 => 2 trailing zeros => exponent is 2
+ $class->new($CALC->_zeros($x->{value}));
+}
+
+sub mantissa {
+ # return the mantissa (compatible to Math::BigFloat, e.g. reduced)
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ # for NaN, +inf, -inf: keep the sign
+ return $class->new($x->{sign});
+ }
+ my $m = $x->copy();
+ delete $m->{_p};
+ delete $m->{_a};
+
+ # that's a bit inefficient:
+ my $zeros = $CALC->_zeros($m->{value});
+ $m->brsft($zeros, 10) if $zeros != 0;
+ $m;
+}
+
+sub parts {
+ # return a copy of both the exponent and the mantissa
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ ($x->mantissa(), $x->exponent());
+}
+
+sub sparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("sparts() is an instance method, not a class method")
+ unless $class;
+
+ # Not-a-number.
+
+ if ($self -> is_nan()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> bnan(); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Infinity.
+
+ if ($self -> is_inf()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+'); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Finite number.
+
+ my $mant = $self -> copy();
+ my $nzeros = $CALC -> _zeros($mant -> {value});
+
+ $mant -> brsft($nzeros, 10) if $nzeros != 0;
+ return $mant unless wantarray;
+
+ my $expo = $class -> new($nzeros);
+ return ($mant, $expo);
+}
+
+sub nparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("nparts() is an instance method, not a class method")
+ unless $class;
+
+ # Not-a-number.
+
+ if ($self -> is_nan()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> bnan(); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Infinity.
+
+ if ($self -> is_inf()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+'); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Finite number.
+
+ my ($mant, $expo) = $self -> sparts();
+
+ if ($mant -> bcmp(0)) {
+ my ($ndigtot, $ndigfrac) = $mant -> length();
+ my $expo10adj = $ndigtot - $ndigfrac - 1;
+
+ if ($expo10adj != 0) {
+ return $upgrade -> new($self) -> nparts() if $upgrade;
+ $mant -> bnan();
+ return $mant unless wantarray;
+ $expo -> badd($expo10adj);
+ return ($mant, $expo);
+ }
+ }
+
+ return $mant unless wantarray;
+ return ($mant, $expo);
+}
+
+sub eparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("eparts() is an instance method, not a class method")
+ unless $class;
+
+ # Not-a-number and Infinity.
+
+ return $self -> sparts() if $self -> is_nan() || $self -> is_inf();
+
+ # Finite number.
+
+ my ($mant, $expo) = $self -> sparts();
+
+ if ($mant -> bcmp(0)) {
+ my $ndigmant = $mant -> length();
+ $expo -> badd($ndigmant);
+
+ # $c is the number of digits that will be in the integer part of the
+ # final mantissa.
+
+ my $c = $expo -> copy() -> bdec() -> bmod(3) -> binc();
+ $expo -> bsub($c);
+
+ if ($ndigmant > $c) {
+ return $upgrade -> new($self) -> eparts() if $upgrade;
+ $mant -> bnan();
+ return $mant unless wantarray;
+ return ($mant, $expo);
+ }
+
+ $mant -> blsft($c - $ndigmant, 10);
+ }
+
+ return $mant unless wantarray;
+ return ($mant, $expo);
+}
+
+sub dparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("dparts() is an instance method, not a class method")
+ unless $class;
+
+ my $int = $self -> copy();
+ return $int unless wantarray;
+
+ my $frc = $class -> bzero();
+ return ($int, $frc);
+}
+
+###############################################################################
+# String conversion methods
+###############################################################################
+
+sub bstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+ my $str = $CALC->_str($x->{value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+# Scientific notation with significand/mantissa as an integer, e.g., "12345" is
+# written as "1.2345e+4".
+
+sub bsstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+ my ($m, $e) = $x -> parts();
+ my $str = $CALC->_str($m->{value}) . 'e+' . $CALC->_str($e->{value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+# Normalized notation, e.g., "12345" is written as "12345e+0".
+
+sub bnstr {
+ my $x = shift;
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ return $x -> bstr() if $x -> is_nan() || $x -> is_inf();
+
+ my ($mant, $expo) = $x -> parts();
+
+ # The "fraction posision" is the position (offset) for the decimal point
+ # relative to the end of the digit string.
+
+ my $fracpos = $mant -> length() - 1;
+ if ($fracpos == 0) {
+ my $str = $CALC->_str($mant->{value}) . "e+" . $CALC->_str($expo->{value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+ }
+
+ $expo += $fracpos;
+ my $mantstr = $CALC->_str($mant -> {value});
+ substr($mantstr, -$fracpos, 0) = '.';
+
+ my $str = $mantstr . 'e+' . $CALC->_str($expo -> {value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+# Engineering notation, e.g., "12345" is written as "12.345e+3".
+
+sub bestr {
+ my $x = shift;
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ my ($mant, $expo) = $x -> parts();
+
+ my $sign = $mant -> sign();
+ $mant -> babs();
+
+ my $mantstr = $CALC->_str($mant -> {value});
+ my $mantlen = CORE::length($mantstr);
+
+ my $dotidx = 1;
+ $expo += $mantlen - 1;
+
+ my $c = $expo -> copy() -> bmod(3);
+ $expo -= $c;
+ $dotidx += $c;
+
+ if ($mantlen < $dotidx) {
+ $mantstr .= "0" x ($dotidx - $mantlen);
+ } elsif ($mantlen > $dotidx) {
+ substr($mantstr, $dotidx, 0) = ".";
+ }
+
+ my $str = $mantstr . 'e+' . $CALC->_str($expo -> {value});
+ return $sign eq "-" ? "-$str" : $str;
+}
+
+# Decimal notation, e.g., "12345".
+
+sub bdstr {
+ my $x = shift;
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ my $str = $CALC->_str($x->{value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+sub to_hex {
+ # return as hex string, with prefixed 0x
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $hex = $CALC->_to_hex($x->{value});
+ return $x->{sign} eq '-' ? "-$hex" : $hex;
+}
+
+sub to_oct {
+ # return as octal string, with prefixed 0
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $oct = $CALC->_to_oct($x->{value});
+ return $x->{sign} eq '-' ? "-$oct" : $oct;
+}
+
+sub to_bin {
+ # return as binary string, with prefixed 0b
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $bin = $CALC->_to_bin($x->{value});
+ return $x->{sign} eq '-' ? "-$bin" : $bin;
+}
+
+sub to_bytes {
+ # return a byte string
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ Carp::croak("to_bytes() requires a finite, non-negative integer")
+ if $x -> is_neg() || ! $x -> is_int();
+
+ Carp::croak("to_bytes() requires a newer version of the $CALC library.")
+ unless $CALC->can('_to_bytes');
+
+ return $CALC->_to_bytes($x->{value});
+}
+
+sub as_hex {
+ # return as hex string, with prefixed 0x
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $hex = $CALC->_as_hex($x->{value});
+ return $x->{sign} eq '-' ? "-$hex" : $hex;
+}
+
+sub as_oct {
+ # return as octal string, with prefixed 0
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $oct = $CALC->_as_oct($x->{value});
+ return $x->{sign} eq '-' ? "-$oct" : $oct;
+}
+
+sub as_bin {
+ # return as binary string, with prefixed 0b
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $bin = $CALC->_as_bin($x->{value});
+ return $x->{sign} eq '-' ? "-$bin" : $bin;
+}
+
+*as_bytes = \&to_bytes;
+
+###############################################################################
+# Other conversion methods
+###############################################################################
+
+sub numify {
+ # Make a Perl scalar number from a Math::BigInt object.
+ my $x = shift;
+ $x = $class->new($x) unless ref $x;
+
+ if ($x -> is_nan()) {
+ require Math::Complex;
+ my $inf = Math::Complex::Inf();
+ return $inf - $inf;
+ }
+
+ if ($x -> is_inf()) {
+ require Math::Complex;
+ my $inf = Math::Complex::Inf();
+ return $x -> is_negative() ? -$inf : $inf;
+ }
+
+ my $num = 0 + $CALC->_num($x->{value});
+ return $x->{sign} eq '-' ? -$num : $num;
+}
+
+###############################################################################
+# Private methods and functions.
+###############################################################################
sub objectify {
# Convert strings and "foreign objects" to the objects we want.
@@ -2782,25 +3751,24 @@ sub objectify {
# Caller: Gives us:
#
# $x->badd(1); => ref x, scalar y
- # Class->badd(1,2); => classname x (scalar), scalar x, scalar y
- # Class->badd(Class->(1),2); => classname x (scalar), ref x, scalar y
- # Math::BigInt::badd(1,2); => scalar x, scalar y
+ # Class->badd(1, 2); => classname x (scalar), scalar x, scalar y
+ # Class->badd(Class->(1), 2); => classname x (scalar), ref x, scalar y
+ # Math::BigInt::badd(1, 2); => scalar x, scalar y
- # A shortcut for the common case $x->unary_op():
+ # A shortcut for the common case $x->unary_op(), in which case the argument
+ # list is (0, $x) or (1, $x).
- return (ref($_[1]), $_[1]) if (@_ == 2) && ($_[0]||0 == 1) && ref($_[1]);
+ return (ref($_[1]), $_[1]) if @_ == 2 && ($_[0] || 0) == 1 && ref($_[1]);
# Check the context.
unless (wantarray) {
- require Carp;
- Carp::croak ("${class}::objectify() needs list context");
+ Carp::croak("${class}::objectify() needs list context");
}
# Get the number of arguments to objectify.
my $count = shift;
- $count ||= @_;
# Initialize the output array.
@@ -2810,24 +3778,25 @@ sub objectify {
# class name. Otherwise, if the first argument looks like a class name,
# then use that as our class name. Otherwise, use the default class name.
- {
- if (ref($a[0])) { # reference?
- unshift @a, ref($a[0]);
- last;
- }
- if ($a[0] =~ /^[A-Z].*::/) { # string with class name?
- last;
- }
- unshift @a, $class; # default class name
+ my $class;
+ if (ref($a[0])) { # reference?
+ $class = ref($a[0]);
+ } elsif ($a[0] =~ /^[A-Z].*::/) { # string with class name?
+ $class = shift @a;
+ } else {
+ $class = __PACKAGE__; # default class name
}
+ $count ||= @a;
+ unshift @a, $class;
+
no strict 'refs';
# What we upgrade to, if anything.
my $up = ${"$a[0]::upgrade"};
- # Disable downgrading, because Math::BigFloat -> foo('1.0','2.0') needs
+ # Disable downgrading, because Math::BigFloat -> foo('1.0', '2.0') needs
# floats.
my $down;
@@ -2837,6 +3806,7 @@ sub objectify {
}
for my $i (1 .. $count) {
+
my $ref = ref $a[$i];
# Perl scalars are fed to the appropriate constructor.
@@ -2908,334 +3878,150 @@ sub objectify {
return @a;
}
-sub _register_callback
- {
- my ($class,$callback) = @_;
-
- if (ref($callback) ne 'CODE')
- {
- require Carp;
- Carp::croak ("$callback is not a coderef");
- }
- $CALLBACKS{$class} = $callback;
- }
-
-sub import
- {
- my $self = shift;
-
- $IMPORT++; # remember we did import()
- my @a; my $l = scalar @_;
- my $warn_or_die = 0; # 0 - no warn, 1 - warn, 2 - die
- for ( my $i = 0; $i < $l ; $i++ )
- {
- if ($_[$i] eq ':constant')
- {
- # this causes overlord er load to step in
- overload::constant
- integer => sub { $self->new(shift) },
- binary => sub { $self->new(shift) };
- }
- elsif ($_[$i] eq 'upgrade')
- {
- # this causes upgrading
- $upgrade = $_[$i+1]; # or undef to disable
- $i++;
- }
- elsif ($_[$i] =~ /^(lib|try|only)\z/)
- {
- # this causes a different low lib to take care...
- $CALC = $_[$i+1] || '';
- # lib => 1 (warn on fallback), try => 0 (no warn), only => 2 (die on fallback)
- $warn_or_die = 1 if $_[$i] eq 'lib';
- $warn_or_die = 2 if $_[$i] eq 'only';
- $i++;
- }
- else
- {
- push @a, $_[$i];
- }
- }
- # any non :constant stuff is handled by our parent, Exporter
- if (@a > 0)
- {
- require Exporter;
-
- $self->SUPER::import(@a); # need it for subclasses
- $self->export_to_level(1,$self,@a); # need it for MBF
- }
-
- # try to load core math lib
- my @c = split /\s*,\s*/,$CALC;
- foreach (@c)
- {
- $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
+sub import {
+ my $class = shift;
+
+ $IMPORT++; # remember we did import()
+ my @a;
+ my $l = scalar @_;
+ my $warn_or_die = 0; # 0 - no warn, 1 - warn, 2 - die
+ for (my $i = 0; $i < $l ; $i++) {
+ if ($_[$i] eq ':constant') {
+ # this causes overlord er load to step in
+ overload::constant
+ integer => sub { $class->new(shift) },
+ binary => sub { $class->new(shift) };
+ } elsif ($_[$i] eq 'upgrade') {
+ # this causes upgrading
+ $upgrade = $_[$i+1]; # or undef to disable
+ $i++;
+ } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
+ # this causes a different low lib to take care...
+ $CALC = $_[$i+1] || '';
+ # lib => 1 (warn on fallback), try => 0 (no warn), only => 2 (die on fallback)
+ $warn_or_die = 1 if $_[$i] eq 'lib';
+ $warn_or_die = 2 if $_[$i] eq 'only';
+ $i++;
+ } else {
+ push @a, $_[$i];
+ }
}
- push @c, \'Calc' # if all fail, try these
- if $warn_or_die < 2; # but not for "only"
- $CALC = ''; # signal error
- foreach my $l (@c)
- {
- # fallback libraries are "marked" as \'string', extract string if nec.
- my $lib = $l; $lib = $$l if ref($l);
-
- next if ($lib || '') eq '';
- $lib = 'Math::BigInt::'.$lib if $lib !~ /^Math::BigInt/i;
- $lib =~ s/\.pm$//;
- if ($] < 5.006)
- {
- # Perl < 5.6.0 dies with "out of memory!" when eval("") and ':constant' is
- # used in the same script, or eval("") inside import().
- my @parts = split /::/, $lib; # Math::BigInt => Math BigInt
- my $file = pop @parts; $file .= '.pm'; # BigInt => BigInt.pm
- require File::Spec;
- $file = File::Spec->catfile (@parts, $file);
- eval { require "$file"; $lib->import( @c ); }
- }
- else
- {
- eval "use $lib qw/@c/;";
- }
- if ($@ eq '')
- {
- my $ok = 1;
- # loaded it ok, see if the api_version() is high enough
- if ($lib->can('api_version') && $lib->api_version() >= 1.0)
- {
- $ok = 0;
- # api_version matches, check if it really provides anything we need
- for my $method (qw/
- one two ten
- str num
- add mul div sub dec inc
- acmp len digit is_one is_zero is_even is_odd
- is_two is_ten
- zeros new copy check
- from_hex from_oct from_bin as_hex as_bin as_oct
- rsft lsft xor and or
- mod sqrt root fac pow modinv modpow log_int gcd
- /)
- {
- if (!$lib->can("_$method"))
- {
- if (($WARN{$lib}||0) < 2)
- {
- require Carp;
- Carp::carp ("$lib is missing method '_$method'");
- $WARN{$lib} = 1; # still warn about the lib
- }
- $ok++; last;
+ # any non :constant stuff is handled by our parent, Exporter
+ if (@a > 0) {
+ require Exporter;
+
+ $class->SUPER::import(@a); # need it for subclasses
+ $class->export_to_level(1, $class, @a); # need it for MBF
+ }
+
+ # try to load core math lib
+ my @c = split /\s*,\s*/, $CALC;
+ foreach (@c) {
+ $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
+ }
+ push @c, \'Calc' # if all fail, try these
+ if $warn_or_die < 2; # but not for "only"
+ $CALC = ''; # signal error
+ foreach my $l (@c) {
+ # fallback libraries are "marked" as \'string', extract string if nec.
+ my $lib = $l;
+ $lib = $$l if ref($l);
+
+ next if ($lib || '') eq '';
+ $lib = 'Math::BigInt::'.$lib if $lib !~ /^Math::BigInt/i;
+ $lib =~ s/\.pm$//;
+ if ($] < 5.006) {
+ # Perl < 5.6.0 dies with "out of memory!" when eval("") and ':constant' is
+ # used in the same script, or eval("") inside import().
+ my @parts = split /::/, $lib; # Math::BigInt => Math BigInt
+ my $file = pop @parts;
+ $file .= '.pm'; # BigInt => BigInt.pm
+ require File::Spec;
+ $file = File::Spec->catfile (@parts, $file);
+ eval {
+ require "$file";
+ $lib->import(@c);
}
- }
- }
- if ($ok == 0)
- {
- $CALC = $lib;
- if ($warn_or_die > 0 && ref($l))
- {
- require Carp;
- my $msg =
- "Math::BigInt: couldn't load specified math lib(s), fallback to $lib";
- Carp::carp ($msg) if $warn_or_die == 1;
- Carp::croak ($msg) if $warn_or_die == 2;
- }
- last; # found a usable one, break
+ } else {
+ eval "use $lib qw/@c/;";
}
- else
- {
- if (($WARN{$lib}||0) < 2)
- {
- my $ver = eval "\$$lib\::VERSION" || 'unknown';
- require Carp;
- Carp::carp ("Cannot load outdated $lib v$ver, please upgrade");
- $WARN{$lib} = 2; # never warn again
- }
+ if ($@ eq '') {
+ my $ok = 1;
+ # loaded it ok, see if the api_version() is high enough
+ if ($lib->can('api_version') && $lib->api_version() >= 1.0) {
+ $ok = 0;
+ # api_version matches, check if it really provides anything we need
+ for my $method (qw/
+ one two ten
+ str num
+ add mul div sub dec inc
+ acmp len digit is_one is_zero is_even is_odd
+ is_two is_ten
+ zeros new copy check
+ from_hex from_oct from_bin as_hex as_bin as_oct
+ rsft lsft xor and or
+ mod sqrt root fac pow modinv modpow log_int gcd
+ /) {
+ if (!$lib->can("_$method")) {
+ if (($WARN{$lib} || 0) < 2) {
+ Carp::carp("$lib is missing method '_$method'");
+ $WARN{$lib} = 1; # still warn about the lib
+ }
+ $ok++;
+ last;
+ }
+ }
+ }
+ if ($ok == 0) {
+ $CALC = $lib;
+ if ($warn_or_die > 0 && ref($l)) {
+ my $msg = "Math::BigInt: couldn't load specified"
+ . " math lib(s), fallback to $lib";
+ Carp::carp($msg) if $warn_or_die == 1;
+ Carp::croak($msg) if $warn_or_die == 2;
+ }
+ last; # found a usable one, break
+ } else {
+ if (($WARN{$lib} || 0) < 2) {
+ my $ver = eval "\$$lib\::VERSION" || 'unknown';
+ Carp::carp("Cannot load outdated $lib v$ver, please upgrade");
+ $WARN{$lib} = 2; # never warn again
+ }
+ }
}
- }
- }
- if ($CALC eq '')
- {
- require Carp;
- if ($warn_or_die == 2)
- {
- Carp::croak(
- "Couldn't load specified math lib(s) and fallback disallowed");
- }
- else
- {
- Carp::croak(
- "Couldn't load any math lib(s), not even fallback to Calc.pm");
- }
- }
-
- # notify callbacks
- foreach my $class (keys %CALLBACKS)
- {
- &{$CALLBACKS{$class}}($CALC);
- }
-
- # Fill $CAN with the results of $CALC->can(...) for emulating lower math lib
- # functions
-
- %CAN = ();
- for my $method (qw/ signed_and signed_or signed_xor /)
- {
- $CAN{$method} = $CALC->can("_$method") ? 1 : 0;
}
-
- # import done
- }
-
-# Create a Math::BigInt from a hexadecimal string.
-
-sub from_hex {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
-
- my $str = shift;
-
- # If called as a class method, initialize a new object.
-
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- ( [+-]? )
- (0?x)?
- (
- [0-9a-fA-F]*
- ( _ [0-9a-fA-F]+ )*
- )
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $3;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
-
- # The library method requires a prefix.
-
- $self->{value} = $CALC->_from_hex('0x' . $chrs);
-
- # Place the sign.
-
- if ($sign eq '-' && ! $CALC->_is_zero($self->{value})) {
- $self->{sign} = '-';
+ if ($CALC eq '') {
+ if ($warn_or_die == 2) {
+ Carp::croak("Couldn't load specified math lib(s)" .
+ " and fallback disallowed");
+ } else {
+ Carp::croak("Couldn't load any math lib(s), not even fallback to Calc.pm");
}
-
- return $self;
}
- # CORE::hex() parses as much as it can, and ignores any trailing garbage.
- # For backwards compatibility, we return NaN.
-
- return $self->bnan();
-}
-
-# Create a Math::BigInt from an octal string.
-
-sub from_oct {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
-
- my $str = shift;
-
- # If called as a class method, initialize a new object.
-
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- ( [+-]? )
- (
- [0-7]*
- ( _ [0-7]+ )*
- )
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $2;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
-
- # The library method requires a prefix.
-
- $self->{value} = $CALC->_from_oct('0' . $chrs);
-
- # Place the sign.
+ # notify callbacks
+ foreach my $class (keys %CALLBACKS) {
+ &{$CALLBACKS{$class}}($CALC);
+ }
- if ($sign eq '-' && ! $CALC->_is_zero($self->{value})) {
- $self->{sign} = '-';
- }
+ # Fill $CAN with the results of $CALC->can(...) for emulating lower math lib
+ # functions
- return $self;
+ %CAN = ();
+ for my $method (qw/ signed_and signed_or signed_xor /) {
+ $CAN{$method} = $CALC->can("_$method") ? 1 : 0;
}
- # CORE::oct() parses as much as it can, and ignores any trailing garbage.
- # For backwards compatibility, we return NaN.
-
- return $self->bnan();
+ # import done
}
-# Create a Math::BigInt from a binary string.
+sub _register_callback {
+ my ($class, $callback) = @_;
-sub from_bin {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
-
- my $str = shift;
-
- # If called as a class method, initialize a new object.
-
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- ( [+-]? )
- (0?b)?
- (
- [01]*
- ( _ [01]+ )*
- )
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $3;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
-
- # The library method requires a prefix.
-
- $self->{value} = $CALC->_from_bin('0b' . $chrs);
-
- # Place the sign.
-
- if ($sign eq '-' && ! $CALC->_is_zero($self->{value})) {
- $self->{sign} = '-';
- }
-
- return $self;
+ if (ref($callback) ne 'CODE') {
+ Carp::croak("$callback is not a coderef");
}
-
- # For consistency with from_hex() and from_oct(), we return NaN when the
- # input is invalid.
-
- return $self->bnan();
+ $CALLBACKS{$class} = $callback;
}
sub _split_dec_string {
@@ -3273,8 +4059,7 @@ sub _split_dec_string {
( \D .*? )?
\z
- //x)
- {
+ //x) {
my $leading = $1;
my $significand_sgn = $2 || '+';
my $significand_abs = $3;
@@ -3312,240 +4097,160 @@ sub _split_dec_string {
return undef;
}
-sub _split
- {
- # input: num_str; output: undef for invalid or
- # (\$mantissa_sign,\$mantissa_value,\$mantissa_fraction,
- # \$exp_sign,\$exp_value)
- # Internal, take apart a string and return the pieces.
- # Strip leading/trailing whitespace, leading zeros, underscore and reject
- # invalid input.
- my $x = shift;
-
- # strip white space at front, also extraneous leading zeros
- $x =~ s/^\s*([-]?)0*([0-9])/$1$2/g; # will not strip ' .2'
- $x =~ s/^\s+//; # but this will
- $x =~ s/\s+$//g; # strip white space at end
-
- # shortcut, if nothing to split, return early
- if ($x =~ /^[+-]?[0-9]+\z/)
- {
- $x =~ s/^([+-])0*([0-9])/$2/; my $sign = $1 || '+';
- return (\$sign, \$x, \'', \'', \0);
- }
-
- # invalid starting char?
- return if $x !~ /^[+-]?(\.?[0-9]|0b[0-1]|0x[0-9a-fA-F])/;
-
- return Math::BigInt->from_hex($x) if $x =~ /^[+-]?0x/; # hex string
- return Math::BigInt->from_bin($x) if $x =~ /^[+-]?0b/; # binary string
-
- # strip underscores between digits
- $x =~ s/([0-9])_([0-9])/$1$2/g;
- $x =~ s/([0-9])_([0-9])/$1$2/g; # do twice for 1_2_3
-
- # some possible inputs:
- # 2.1234 # 0.12 # 1 # 1E1 # 2.134E1 # 434E-10 # 1.02009E-2
- # .2 # 1_2_3.4_5_6 # 1.4E1_2_3 # 1e3 # +.2 # 0e999
-
- my ($m,$e,$last) = split /[Ee]/,$x;
- return if defined $last; # last defined => 1e2E3 or others
- $e = '0' if !defined $e || $e eq "";
-
- # sign,value for exponent,mantint,mantfrac
- my ($es,$ev,$mis,$miv,$mfv);
- # valid exponent?
- if ($e =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
- {
- $es = $1; $ev = $2;
- # valid mantissa?
- return if $m eq '.' || $m eq '';
- my ($mi,$mf,$lastf) = split /\./,$m;
- return if defined $lastf; # lastf defined => 1.2.3 or others
- $mi = '0' if !defined $mi;
- $mi .= '0' if $mi =~ /^[\-\+]?$/;
- $mf = '0' if !defined $mf || $mf eq '';
- if ($mi =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
- {
- $mis = $1||'+'; $miv = $2;
- return unless ($mf =~ /^([0-9]*?)0*$/); # strip trailing zeros
- $mfv = $1;
- # handle the 0e999 case here
- $ev = 0 if $miv eq '0' && $mfv eq '';
- return (\$mis,\$miv,\$mfv,\$es,\$ev);
- }
- }
- return; # NaN, not a number
- }
-
-##############################################################################
-# internal calculation routines (others are in Math::BigInt::Calc etc)
-
-sub __lcm
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # does modify first argument
- # LCM
-
- my ($x,$ty) = @_;
- return $x->bnan() if ($x->{sign} eq $nan) || ($ty->{sign} eq $nan);
- my $method = ref($x) . '::bgcd';
- no strict 'refs';
- $x * $ty / &$method($x,$ty);
- }
-
-###############################################################################
-# trigonometric functions
-
-sub bpi
- {
- # Calculate PI to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer, that is, always returns '3'.
- my ($self,$n) = @_;
- if (@_ == 1)
+sub _split {
+ # input: num_str; output: undef for invalid or
+ # (\$mantissa_sign, \$mantissa_value, \$mantissa_fraction,
+ # \$exp_sign, \$exp_value)
+ # Internal, take apart a string and return the pieces.
+ # Strip leading/trailing whitespace, leading zeros, underscore and reject
+ # invalid input.
+ my $x = shift;
+
+ # strip white space at front, also extraneous leading zeros
+ $x =~ s/^\s*([-]?)0*([0-9])/$1$2/g; # will not strip ' .2'
+ $x =~ s/^\s+//; # but this will
+ $x =~ s/\s+$//g; # strip white space at end
+
+ # shortcut, if nothing to split, return early
+ if ($x =~ /^[+-]?[0-9]+\z/) {
+ $x =~ s/^([+-])0*([0-9])/$2/;
+ my $sign = $1 || '+';
+ return (\$sign, \$x, \'', \'', \0);
+ }
+
+ # invalid starting char?
+ return if $x !~ /^[+-]?(\.?[0-9]|0b[0-1]|0x[0-9a-fA-F])/;
+
+ return Math::BigInt->from_hex($x) if $x =~ /^[+-]?0x/; # hex string
+ return Math::BigInt->from_bin($x) if $x =~ /^[+-]?0b/; # binary string
+
+ # strip underscores between digits
+ $x =~ s/([0-9])_([0-9])/$1$2/g;
+ $x =~ s/([0-9])_([0-9])/$1$2/g; # do twice for 1_2_3
+
+ # some possible inputs:
+ # 2.1234 # 0.12 # 1 # 1E1 # 2.134E1 # 434E-10 # 1.02009E-2
+ # .2 # 1_2_3.4_5_6 # 1.4E1_2_3 # 1e3 # +.2 # 0e999
+
+ my ($m, $e, $last) = split /[Ee]/, $x;
+ return if defined $last; # last defined => 1e2E3 or others
+ $e = '0' if !defined $e || $e eq "";
+
+ # sign, value for exponent, mantint, mantfrac
+ my ($es, $ev, $mis, $miv, $mfv);
+ # valid exponent?
+ if ($e =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
{
- # called like Math::BigInt::bpi(10);
- $n = $self; $self = $class;
+ $es = $1;
+ $ev = $2;
+ # valid mantissa?
+ return if $m eq '.' || $m eq '';
+ my ($mi, $mf, $lastf) = split /\./, $m;
+ return if defined $lastf; # lastf defined => 1.2.3 or others
+ $mi = '0' if !defined $mi;
+ $mi .= '0' if $mi =~ /^[\-\+]?$/;
+ $mf = '0' if !defined $mf || $mf eq '';
+ if ($mi =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
+ {
+ $mis = $1 || '+';
+ $miv = $2;
+ return unless ($mf =~ /^([0-9]*?)0*$/); # strip trailing zeros
+ $mfv = $1;
+ # handle the 0e999 case here
+ $ev = 0 if $miv eq '0' && $mfv eq '';
+ return (\$mis, \$miv, \$mfv, \$es, \$ev);
+ }
}
- $self = ref($self) if ref($self);
-
- return $upgrade->new($n) if defined $upgrade;
-
- # hard-wired to "3"
- $self->new(3);
- }
-
-sub bcos
- {
- # Calculate cosinus(x) to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer.
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
-
- return $x if $x->modify('bcos');
-
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ return; # NaN, not a number
+}
- return $upgrade->new($x)->bcos(@r) if defined $upgrade;
+sub _trailing_zeros {
+ # return the amount of trailing zeros in $x (as scalar)
+ my $x = shift;
+ $x = $class->new($x) unless ref $x;
- require Math::BigFloat;
- # calculate the result and truncate it to integer
- my $t = Math::BigFloat->new($x)->bcos(@r)->as_int();
+ return 0 if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf etc
- $x->bone() if $t->is_one();
- $x->bzero() if $t->is_zero();
- $x->round(@r);
- }
+ $CALC->_zeros($x->{value}); # must handle odd values, 0 etc
+}
-sub bsin
- {
- # Calculate sinus(x) to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer.
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+sub _scan_for_nonzero {
+ # internal, used by bround() to scan for non-zeros after a '5'
+ my ($x, $pad, $xs, $len) = @_;
- return $x if $x->modify('bsin');
+ return 0 if $len == 1; # "5" is trailed by invisible zeros
+ my $follow = $pad - 1;
+ return 0 if $follow > $len || $follow < 1;
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ # use the string form to check whether only '0's follow or not
+ substr ($xs, -$follow) =~ /[^0]/ ? 1 : 0;
+}
- return $upgrade->new($x)->bsin(@r) if defined $upgrade;
+sub _find_round_parameters {
+ # After any operation or when calling round(), the result is rounded by
+ # regarding the A & P from arguments, local parameters, or globals.
- require Math::BigFloat;
- # calculate the result and truncate it to integer
- my $t = Math::BigFloat->new($x)->bsin(@r)->as_int();
+ # !!!!!!! If you change this, remember to change round(), too! !!!!!!!!!!
- $x->bone() if $t->is_one();
- $x->bzero() if $t->is_zero();
- $x->round(@r);
- }
+ # This procedure finds the round parameters, but it is for speed reasons
+ # duplicated in round. Otherwise, it is tested by the testsuite and used
+ # by bdiv().
-sub batan2
- {
- # calculate arcus tangens of ($y/$x)
+ # returns ($self) or ($self, $a, $p, $r) - sets $self to NaN of both A and P
+ # were requested/defined (locally or globally or both)
- # set up parameters
- my ($self,$y,$x,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$y,$x,@r) = objectify(2,@_);
- }
+ my ($self, $a, $p, $r, @args) = @_;
+ # $a accuracy, if given by caller
+ # $p precision, if given by caller
+ # $r round_mode, if given by caller
+ # @args all 'other' arguments (0 for unary, 1 for binary ops)
- return $y if $y->modify('batan2');
+ my $class = ref($self); # find out class of argument(s)
+ no strict 'refs';
- return $y->bnan() if ($y->{sign} eq $nan) || ($x->{sign} eq $nan);
+ # convert to normal scalar for speed and correctness in inner parts
+ $a = $a->can('numify') ? $a->numify() : "$a" if defined $a && ref($a);
+ $p = $p->can('numify') ? $p->numify() : "$p" if defined $p && ref($p);
- # Y X
- # != 0 -inf result is +- pi
- if ($x->is_inf() || $y->is_inf())
- {
- # upgrade to BigFloat etc.
- return $upgrade->new($y)->batan2($upgrade->new($x),@r) if defined $upgrade;
- if ($y->is_inf())
- {
- if ($x->{sign} eq '-inf')
- {
- # calculate 3 pi/4 => 2.3.. => 2
- $y->bone( substr($y->{sign},0,1) );
- $y->bmul($self->new(2));
- }
- elsif ($x->{sign} eq '+inf')
- {
- # calculate pi/4 => 0.7 => 0
- $y->bzero();
- }
- else
- {
- # calculate pi/2 => 1.5 => 1
- $y->bone( substr($y->{sign},0,1) );
- }
- }
- else
- {
- if ($x->{sign} eq '+inf')
- {
- # calculate pi/4 => 0.7 => 0
- $y->bzero();
+ # now pick $a or $p, but only if we have got "arguments"
+ if (!defined $a) {
+ foreach ($self, @args) {
+ # take the defined one, or if both defined, the one that is smaller
+ $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
}
- else
- {
- # PI => 3.1415.. => 3
- $y->bone( substr($y->{sign},0,1) );
- $y->bmul($self->new(3));
+ }
+ if (!defined $p) {
+ # even if $a is defined, take $p, to signal error for both defined
+ foreach ($self, @args) {
+ # take the defined one, or if both defined, the one that is bigger
+ # -2 > -3, and 3 > 2
+ $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
}
- }
- return $y;
}
- return $upgrade->new($y)->batan2($upgrade->new($x),@r) if defined $upgrade;
-
- require Math::BigFloat;
- my $r = Math::BigFloat->new($y)
- ->batan2(Math::BigFloat->new($x),@r)
- ->as_int();
-
- $x->{value} = $r->{value};
- $x->{sign} = $r->{sign};
-
- $x;
- }
+ # if still none defined, use globals (#2)
+ $a = ${"$class\::accuracy"} unless defined $a;
+ $p = ${"$class\::precision"} unless defined $p;
-sub batan
- {
- # Calculate arcus tangens of x to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer.
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ # A == 0 is useless, so undef it to signal no rounding
+ $a = undef if defined $a && $a == 0;
- return $x if $x->modify('batan');
+ # no rounding today?
+ return ($self) unless defined $a || defined $p; # early out
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ # set A and set P is an fatal error
+ return ($self->bnan()) if defined $a && defined $p; # error
- return $upgrade->new($x)->batan(@r) if defined $upgrade;
+ $r = ${"$class\::round_mode"} unless defined $r;
+ if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) {
+ Carp::croak("Unknown round mode '$r'");
+ }
- # calculate the result and truncate it to integer
- my $t = Math::BigFloat->new($x)->batan(@r);
+ $a = int($a) if defined $a;
+ $p = int($p) if defined $p;
- $x->{value} = $CALC->_new( $x->as_int()->bstr() );
- $x->round(@r);
- }
+ ($self, $a, $p, $r);
+}
###############################################################################
# this method returns 0 if the object can be modified, or 1 if not.
@@ -3555,6 +4260,7 @@ sub batan
sub modify () { 0; }
1;
+
__END__
=pod
@@ -3568,11 +4274,11 @@ Math::BigInt - Arbitrary size integer/float math package
use Math::BigInt;
# or make it faster with huge numbers: install (optional)
- # Math::BigInt::GMP and always use (it will fall back to
+ # Math::BigInt::GMP and always use (it falls back to
# pure Perl if the GMP library is not installed):
# (See also the L<MATH LIBRARY> section!)
- # will warn if Math::BigInt::GMP cannot be found
+ # warns if Math::BigInt::GMP cannot be found
use Math::BigInt lib => 'GMP';
# to suppress the warning use this:
@@ -3582,232 +4288,375 @@ Math::BigInt - Arbitrary size integer/float math package
# use Math::BigInt only => 'GMP';
my $str = '1234567890';
- my @values = (64,74,18);
+ my @values = (64, 74, 18);
my $n = 1; my $sign = '-';
- # Number creation
- my $x = Math::BigInt->new($str); # defaults to 0
- my $y = $x->copy(); # make a true copy
- my $nan = Math::BigInt->bnan(); # create a NotANumber
- my $zero = Math::BigInt->bzero(); # create a +0
- my $inf = Math::BigInt->binf(); # create a +inf
- my $inf = Math::BigInt->binf('-'); # create a -inf
- my $one = Math::BigInt->bone(); # create a +1
- my $mone = Math::BigInt->bone('-'); # create a -1
-
- my $pi = Math::BigInt->bpi(); # returns '3'
- # see Math::BigFloat::bpi()
-
- $h = Math::BigInt->new('0x123'); # from hexadecimal
- $b = Math::BigInt->new('0b101'); # from binary
- $o = Math::BigInt->from_oct('0101'); # from octal
- $h = Math::BigInt->from_hex('cafe'); # from hexadecimal
- $b = Math::BigInt->from_bin('0101'); # from binary
-
- # Testing (don't modify their arguments)
- # (return true if the condition is met, otherwise false)
-
- $x->is_zero(); # if $x is +0
- $x->is_nan(); # if $x is NaN
- $x->is_one(); # if $x is +1
- $x->is_one('-'); # if $x is -1
- $x->is_odd(); # if $x is odd
- $x->is_even(); # if $x is even
- $x->is_pos(); # if $x > 0
- $x->is_neg(); # if $x < 0
- $x->is_inf($sign); # if $x is +inf, or -inf (sign is default '+')
- $x->is_int(); # if $x is an integer (not a float)
-
- # comparing and digit/sign extraction
- $x->bcmp($y); # compare numbers (undef,<0,=0,>0)
- $x->bacmp($y); # compare absolutely (undef,<0,=0,>0)
- $x->sign(); # return the sign, either +,- or NaN
- $x->digit($n); # return the nth digit, counting from right
- $x->digit(-$n); # return the nth digit, counting from left
-
- # The following all modify their first argument. If you want to pre-
- # serve $x, use $z = $x->copy()->bXXX($y); See under L<CAVEATS> for
- # why this is necessary when mixing $a = $b assignments with non-over-
- # loaded math.
-
- $x->bzero(); # set $x to 0
- $x->bnan(); # set $x to NaN
- $x->bone(); # set $x to +1
- $x->bone('-'); # set $x to -1
- $x->binf(); # set $x to inf
- $x->binf('-'); # set $x to -inf
-
- $x->bneg(); # negation
- $x->babs(); # absolute value
- $x->bsgn(); # sign function (-1, 0, 1, or NaN)
- $x->bnorm(); # normalize (no-op in BigInt)
- $x->bnot(); # two's complement (bit wise not)
- $x->binc(); # increment $x by 1
- $x->bdec(); # decrement $x by 1
-
- $x->badd($y); # addition (add $y to $x)
- $x->bsub($y); # subtraction (subtract $y from $x)
- $x->bmul($y); # multiplication (multiply $x by $y)
- $x->bdiv($y); # divide, set $x to quotient
- # return (quo,rem) or quo if scalar
-
- $x->bmuladd($y,$z); # $x = $x * $y + $z
-
- $x->bmod($y); # modulus (x % y)
- $x->bmodpow($y,$mod); # modular exponentiation (($x ** $y) % $mod)
- $x->bmodinv($mod); # modular multiplicative inverse
- $x->bpow($y); # power of arguments (x ** y)
- $x->blsft($y); # left shift in base 2
- $x->brsft($y); # right shift in base 2
- # returns (quo,rem) or quo if in sca-
- # lar context
- $x->blsft($y,$n); # left shift by $y places in base $n
- $x->brsft($y,$n); # right shift by $y places in base $n
- # returns (quo,rem) or quo if in sca-
- # lar context
-
- $x->band($y); # bitwise and
- $x->bior($y); # bitwise inclusive or
- $x->bxor($y); # bitwise exclusive or
- $x->bnot(); # bitwise not (two's complement)
-
- $x->bsqrt(); # calculate square-root
- $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
- $x->bfac(); # factorial of $x (1*2*3*4*..$x)
-
- $x->bnok($y); # x over y (binomial coefficient n over k)
-
- $x->blog(); # logarithm of $x to base e (Euler's number)
- $x->blog($base); # logarithm of $x to base $base (f.i. 2)
- $x->bexp(); # calculate e ** $x where e is Euler's number
-
- $x->round($A,$P,$mode); # round to accuracy or precision using
- # mode $mode
- $x->bround($n); # accuracy: preserve $n digits
- $x->bfround($n); # $n > 0: round $nth digits,
- # $n < 0: round to the $nth digit after the
- # dot, no-op for BigInts
-
- # The following do not modify their arguments in BigInt (are no-ops),
- # but do so in BigFloat:
-
- $x->bfloor(); # round towards minus infinity
- $x->bceil(); # round towards plus infinity
- $x->bint(); # round towards zero
-
- # The following do not modify their arguments:
-
- # greatest common divisor (no OO style)
- my $gcd = Math::BigInt::bgcd(@values);
- # lowest common multiple (no OO style)
- my $lcm = Math::BigInt::blcm(@values);
-
+ # Configuration methods (may be used as class methods and instance methods)
+
+ Math::BigInt->accuracy(); # get class accuracy
+ Math::BigInt->accuracy($n); # set class accuracy
+ Math::BigInt->precision(); # get class precision
+ Math::BigInt->precision($n); # set class precision
+ Math::BigInt->round_mode(); # get class rounding mode
+ Math::BigInt->round_mode($m); # set global round mode, must be one of
+ # 'even', 'odd', '+inf', '-inf', 'zero',
+ # 'trunc', or 'common'
+ Math::BigInt->config(); # return hash with configuration
+
+ # Constructor methods (when the class methods below are used as instance
+ # methods, the value is assigned the invocand)
+
+ $x = Math::BigInt->new($str); # defaults to 0
+ $x = Math::BigInt->new('0x123'); # from hexadecimal
+ $x = Math::BigInt->new('0b101'); # from binary
+ $x = Math::BigInt->from_hex('cafe'); # from hexadecimal
+ $x = Math::BigInt->from_oct('377'); # from octal
+ $x = Math::BigInt->from_bin('1101'); # from binary
+ $x = Math::BigInt->bzero(); # create a +0
+ $x = Math::BigInt->bone(); # create a +1
+ $x = Math::BigInt->bone('-'); # create a -1
+ $x = Math::BigInt->binf(); # create a +inf
+ $x = Math::BigInt->binf('-'); # create a -inf
+ $x = Math::BigInt->bnan(); # create a Not-A-Number
+ $x = Math::BigInt->bpi(); # returns pi
+
+ $y = $x->copy(); # make a copy (unlike $y = $x)
+ $y = $x->as_int(); # return as a Math::BigInt
+
+ # Boolean methods (these don't modify the invocand)
+
+ $x->is_zero(); # if $x is 0
+ $x->is_one(); # if $x is +1
+ $x->is_one("+"); # ditto
+ $x->is_one("-"); # if $x is -1
+ $x->is_inf(); # if $x is +inf or -inf
+ $x->is_inf("+"); # if $x is +inf
+ $x->is_inf("-"); # if $x is -inf
+ $x->is_nan(); # if $x is NaN
+
+ $x->is_positive(); # if $x > 0
+ $x->is_pos(); # ditto
+ $x->is_negative(); # if $x < 0
+ $x->is_neg(); # ditto
+
+ $x->is_odd(); # if $x is odd
+ $x->is_even(); # if $x is even
+ $x->is_int(); # if $x is an integer
+
+ # Comparison methods
+
+ $x->bcmp($y); # compare numbers (undef, < 0, == 0, > 0)
+ $x->bacmp($y); # compare absolutely (undef, < 0, == 0, > 0)
+ $x->beq($y); # true if and only if $x == $y
+ $x->bne($y); # true if and only if $x != $y
+ $x->blt($y); # true if and only if $x < $y
+ $x->ble($y); # true if and only if $x <= $y
+ $x->bgt($y); # true if and only if $x > $y
+ $x->bge($y); # true if and only if $x >= $y
+
+ # Arithmetic methods
+
+ $x->bneg(); # negation
+ $x->babs(); # absolute value
+ $x->bsgn(); # sign function (-1, 0, 1, or NaN)
+ $x->bnorm(); # normalize (no-op)
+ $x->binc(); # increment $x by 1
+ $x->bdec(); # decrement $x by 1
+ $x->badd($y); # addition (add $y to $x)
+ $x->bsub($y); # subtraction (subtract $y from $x)
+ $x->bmul($y); # multiplication (multiply $x by $y)
+ $x->bmuladd($y,$z); # $x = $x * $y + $z
+ $x->bdiv($y); # division (floored), set $x to quotient
+ # return (quo,rem) or quo if scalar
+ $x->btdiv($y); # division (truncated), set $x to quotient
+ # return (quo,rem) or quo if scalar
+ $x->bmod($y); # modulus (x % y)
+ $x->btmod($y); # modulus (truncated)
+ $x->bmodinv($mod); # modular multiplicative inverse
+ $x->bmodpow($y,$mod); # modular exponentiation (($x ** $y) % $mod)
+ $x->bpow($y); # power of arguments (x ** y)
+ $x->blog(); # logarithm of $x to base e (Euler's number)
+ $x->blog($base); # logarithm of $x to base $base (e.g., base 2)
+ $x->bexp(); # calculate e ** $x where e is Euler's number
+ $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bsin(); # sine
+ $x->bcos(); # cosine
+ $x->batan(); # inverse tangent
+ $x->batan2($y); # two-argument inverse tangent
+ $x->bsqrt(); # calculate square-root
+ $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
+ $x->bfac(); # factorial of $x (1*2*3*4*..$x)
+
+ $x->blsft($n); # left shift $n places in base 2
+ $x->blsft($n,$b); # left shift $n places in base $b
+ # returns (quo,rem) or quo (scalar context)
+ $x->brsft($n); # right shift $n places in base 2
+ $x->brsft($n,$b); # right shift $n places in base $b
+ # returns (quo,rem) or quo (scalar context)
+
+ # Bitwise methods
+
+ $x->band($y); # bitwise and
+ $x->bior($y); # bitwise inclusive or
+ $x->bxor($y); # bitwise exclusive or
+ $x->bnot(); # bitwise not (two's complement)
+
+ # Rounding methods
+ $x->round($A,$P,$mode); # round to accuracy or precision using
+ # rounding mode $mode
+ $x->bround($n); # accuracy: preserve $n digits
+ $x->bfround($n); # $n > 0: round to $nth digit left of dec. point
+ # $n < 0: round to $nth digit right of dec. point
+ $x->bfloor(); # round towards minus infinity
+ $x->bceil(); # round towards plus infinity
+ $x->bint(); # round towards zero
+
+ # Other mathematical methods
+
+ $x->bgcd($y); # greatest common divisor
+ $x->blcm($y); # least common multiple
+
+ # Object property methods (do not modify the invocand)
+
+ $x->sign(); # the sign, either +, - or NaN
+ $x->digit($n); # the nth digit, counting from the right
+ $x->digit(-$n); # the nth digit, counting from the left
$x->length(); # return number of digits in number
($xl,$f) = $x->length(); # length of number and length of fraction
# part, latter is always 0 digits long
- # for BigInts
-
- $x->exponent(); # return exponent as BigInt
- $x->mantissa(); # return (signed) mantissa as BigInt
- $x->parts(); # return (mantissa,exponent) as BigInt
- $x->copy(); # make a true copy of $x (unlike $y = $x;)
- $x->as_int(); # return as BigInt (in BigInt: same as copy())
- $x->numify(); # return as scalar (might overflow!)
-
- # conversion to string (do not modify their argument)
- $x->bstr(); # normalized string (e.g. '3')
- $x->bsstr(); # norm. string in scientific notation (e.g. '3E0')
+ # for Math::BigInt objects
+ $x->mantissa(); # return (signed) mantissa as a Math::BigInt
+ $x->exponent(); # return exponent as a Math::BigInt
+ $x->parts(); # return (mantissa,exponent) as a Math::BigInt
+ $x->sparts(); # mantissa and exponent (as integers)
+ $x->nparts(); # mantissa and exponent (normalised)
+ $x->eparts(); # mantissa and exponent (engineering notation)
+ $x->dparts(); # integer and fraction part
+
+ # Conversion methods (do not modify the invocand)
+
+ $x->bstr(); # decimal notation, possibly zero padded
+ $x->bsstr(); # string in scientific notation with integers
+ $x->bnstr(); # string in normalized notation
+ $x->bestr(); # string in engineering notation
+ $x->bdstr(); # string in decimal notation
+
+ $x->to_hex(); # as signed hexadecimal string
+ $x->to_bin(); # as signed binary string
+ $x->to_oct(); # as signed octal string
+ $x->to_bytes(); # as byte string
+
$x->as_hex(); # as signed hexadecimal string with prefixed 0x
$x->as_bin(); # as signed binary string with prefixed 0b
$x->as_oct(); # as signed octal string with prefixed 0
+ # Other conversion methods
- # precision and accuracy (see section about rounding for more)
- $x->precision(); # return P of $x (or global, if P of $x undef)
- $x->precision($n); # set P of $x to $n
- $x->accuracy(); # return A of $x (or global, if A of $x undef)
- $x->accuracy($n); # set A $x to $n
-
- # Global methods
- Math::BigInt->precision(); # get/set global P for all BigInt objects
- Math::BigInt->accuracy(); # get/set global A for all BigInt objects
- Math::BigInt->round_mode(); # get/set global round mode, one of
- # 'even', 'odd', '+inf', '-inf', 'zero',
- # 'trunc' or 'common'
- Math::BigInt->config(); # return hash containing configuration
+ $x->numify(); # return as scalar (might overflow or underflow)
=head1 DESCRIPTION
-All operators (including basic math operations) are overloaded if you
-declare your big integers as
+Math::BigInt provides support for arbitrary precision integers. Overloading is
+also provided for Perl operators.
- $i = Math::BigInt -> new('123_456_789_123_456_789');
+=head2 Input
-Operations with overloaded operators preserve the arguments which is
-exactly what you expect.
+Input values to these routines may be any scalar number or string that looks
+like a number and represents an integer.
-=head2 Input
+=over
-Input values to these routines may be any string, that looks like a number
-and results in an integer, including hexadecimal and binary numbers.
+=item *
-Scalars holding numbers may also be passed, but note that non-integer numbers
-may already have lost precision due to the conversion to float. Quote
-your input if you want BigInt to see all the digits:
+Leading and trailing whitespace is ignored.
- $x = Math::BigInt->new(12345678890123456789); # bad
- $x = Math::BigInt->new('12345678901234567890'); # good
+=item *
-You can include one underscore between any two digits.
+Leading and trailing zeros are ignored.
-This means integer values like 1.01E2 or even 1000E-2 are also accepted.
-Non-integer values result in NaN.
+=item *
+
+If the string has a "0x" prefix, it is interpreted as a hexadecimal number.
+
+=item *
+
+If the string has a "0b" prefix, it is interpreted as a binary number.
+
+=item *
+
+One underline is allowed between any two digits.
-Hexadecimal (prefixed with "0x") and binary numbers (prefixed with "0b")
-are accepted, too. Please note that octal numbers are not recognized
-by new(), so the following will print "123":
+=item *
+
+If the string can not be interpreted, NaN is returned.
+
+=back
- perl -MMath::BigInt -le 'print Math::BigInt->new("0123")'
+Octal numbers are typically prefixed by "0", but since leading zeros are
+stripped, these methods can not automatically recognize octal numbers, so use
+the constructor from_oct() to interpret octal strings.
-To convert an octal number, use from_oct();
+Some examples of valid string input
- perl -MMath::BigInt -le 'print Math::BigInt->from_oct("0123")'
+ Input string Resulting value
+ 123 123
+ 1.23e2 123
+ 12300e-2 123
+ 0xcafe 51966
+ 0b1101 13
+ 67_538_754 67538754
+ -4_5_6.7_8_9e+0_1_0 -4567890000000
-Currently, Math::BigInt::new() defaults to 0, while Math::BigInt::new('')
+Input given as scalar numbers might lose precision. Quote your input to ensure
+that no digits are lost:
+
+ $x = Math::BigInt->new( 56789012345678901234 ); # bad
+ $x = Math::BigInt->new('56789012345678901234'); # good
+
+Currently, Math::BigInt->new() defaults to 0, while Math::BigInt->new('')
results in 'NaN'. This might change in the future, so use always the following
explicit forms to get a zero or NaN:
- $zero = Math::BigInt->bzero();
- $nan = Math::BigInt->bnan();
-
-C<bnorm()> on a BigInt object is now effectively a no-op, since the numbers
-are always stored in normalized form. If passed a string, creates a BigInt
-object from the input.
+ $zero = Math::BigInt->bzero();
+ $nan = Math::BigInt->bnan();
=head2 Output
-Output values are BigInt objects (normalized), except for the methods which
-return a string (see L</SYNOPSIS>).
+Output values are usually Math::BigInt objects.
+
+Boolean operators C<is_zero()>, C<is_one()>, C<is_inf()>, etc. return true or
+false.
-Some routines (C<is_odd()>, C<is_even()>, C<is_zero()>, C<is_one()>,
-C<is_nan()>, etc.) return true or false, while others (C<bcmp()>, C<bacmp()>)
-return either undef (if NaN is involved), <0, 0 or >0 and are suited for sort.
+Comparison operators C<bcmp()> and C<bacmp()>) return -1, 0, 1, or
+undef.
=head1 METHODS
-Each of the methods below (except config(), accuracy() and precision())
-accepts three additional parameters. These arguments C<$A>, C<$P> and C<$R>
-are C<accuracy>, C<precision> and C<round_mode>. Please see the section about
+=head2 Configuration methods
+
+Each of the methods below (except config(), accuracy() and precision()) accepts
+three additional parameters. These arguments C<$A>, C<$P> and C<$R> are
+C<accuracy>, C<precision> and C<round_mode>. Please see the section about
L</ACCURACY and PRECISION> for more information.
+Setting a class variable effects all object instance that are created
+afterwards.
+
=over
+=item accuracy()
+
+ Math::BigInt->accuracy(5); # set class accuracy
+ $x->accuracy(5); # set instance accuracy
+
+ $A = Math::BigInt->accuracy(); # get class accuracy
+ $A = $x->accuracy(); # get instance accuracy
+
+Set or get the accuracy, i.e., the number of significant digits. The accuracy
+must be an integer. If the accuracy is set to C<undef>, no rounding is done.
+
+Alternatively, one can round the results explicitly using one of L</round()>,
+L</bround()> or L</bfround()> or by passing the desired accuracy to the method
+as an additional parameter:
+
+ my $x = Math::BigInt->new(30000);
+ my $y = Math::BigInt->new(7);
+ print scalar $x->copy()->bdiv($y, 2); # prints 4300
+ print scalar $x->copy()->bdiv($y)->bround(2); # prints 4300
+
+Please see the section about L</ACCURACY and PRECISION> for further details.
+
+ $y = Math::BigInt->new(1234567); # $y is not rounded
+ Math::BigInt->accuracy(4); # set class accuracy to 4
+ $x = Math::BigInt->new(1234567); # $x is rounded automatically
+ print "$x $y"; # prints "1235000 1234567"
+
+ print $x->accuracy(); # prints "4"
+ print $y->accuracy(); # also prints "4", since
+ # class accuracy is 4
+
+ Math::BigInt->accuracy(5); # set class accuracy to 5
+ print $x->accuracy(); # prints "4", since instance
+ # accuracy is 4
+ print $y->accuracy(); # prints "5", since no instance
+ # accuracy, and class accuracy is 5
+
+Note: Each class has it's own globals separated from Math::BigInt, but it is
+possible to subclass Math::BigInt and make the globals of the subclass aliases
+to the ones from Math::BigInt.
+
+=item precision()
+
+ Math::BigInt->precision(-2); # set class precision
+ $x->precision(-2); # set instance precision
+
+ $P = Math::BigInt->precision(); # get class precision
+ $P = $x->precision(); # get instance precision
+
+Set or get the precision, i.e., the place to round relative to the decimal
+point. The precision must be a integer. Setting the precision to $P means that
+each number is rounded up or down, depending on the rounding mode, to the
+nearest multiple of 10**$P. If the precision is set to C<undef>, no rounding is
+done.
+
+You might want to use L</accuracy()> instead. With L</accuracy()> you set the
+number of digits each result should have, with L</precision()> you set the
+place where to round.
+
+Please see the section about L</ACCURACY and PRECISION> for further details.
+
+ $y = Math::BigInt->new(1234567); # $y is not rounded
+ Math::BigInt->precision(4); # set class precision to 4
+ $x = Math::BigInt->new(1234567); # $x is rounded automatically
+ print $x; # prints "1230000"
+
+Note: Each class has its own globals separated from Math::BigInt, but it is
+possible to subclass Math::BigInt and make the globals of the subclass aliases
+to the ones from Math::BigInt.
+
+=item div_scale()
+
+Set/get the fallback accuracy. This is the accuracy used when neither accuracy
+nor precision is set explicitly. It is used when a computation might otherwise
+attempt to return an infinite number of digits.
+
+=item round_mode()
+
+Set/get the rounding mode.
+
+=item upgrade()
+
+Set/get the class for upgrading. When a computation might result in a
+non-integer, the operands are upgraded to this class. This is used for instance
+by L<bignum>. The default is C<undef>, thus the following operation creates
+a Math::BigInt, not a Math::BigFloat:
+
+ my $i = Math::BigInt->new(123);
+ my $f = Math::BigFloat->new('123.1');
+
+ print $i + $f, "\n"; # prints 246
+
+=item downgrade()
+
+Set/get the class for downgrading. The default is C<undef>. Downgrading is not
+done by Math::BigInt.
+
+=item modify()
+
+ $x->modify('bpowd');
+
+This method returns 0 if the object can be modified with the given operation,
+or 1 if not.
+
+This is used for instance by L<Math::BigInt::Constant>.
+
=item config()
use Data::Dumper;
print Dumper ( Math::BigInt->config() );
print Math::BigInt->config()->{lib},"\n";
+ print Math::BigInt->config('lib')},"\n";
Returns a hash containing the configuration, e.g. the version number, lib
loaded etc. The following hash keys are currently filled in with the
@@ -3843,289 +4692,318 @@ appropriate information.
The following values can be set by passing C<config()> a reference to a hash:
- trap_inf trap_nan
- upgrade downgrade precision accuracy round_mode div_scale
+ accuracy precision round_mode div_scale
+ upgrade downgrade trap_inf trap_nan
Example:
- $new_cfg = Math::BigInt->config(
- { trap_inf => 1, precision => 5 }
- );
+ $new_cfg = Math::BigInt->config(
+ { trap_inf => 1, precision => 5 }
+ );
-=item accuracy()
+=back
- $x->accuracy(5); # local for $x
- CLASS->accuracy(5); # global for all members of CLASS
- # Note: This also applies to new()!
+=head2 Constructor methods
- $A = $x->accuracy(); # read out accuracy that affects $x
- $A = CLASS->accuracy(); # read out global accuracy
+=over
-Set or get the global or local accuracy, aka how many significant digits the
-results have. If you set a global accuracy, then this also applies to new()!
+=item new()
-Warning! The accuracy I<sticks>, e.g. once you created a number under the
-influence of C<< CLASS->accuracy($A) >>, all results from math operations with
-that number will also be rounded.
+ $x = Math::BigInt->new($str,$A,$P,$R);
-In most cases, you should probably round the results explicitly using one of
-L</round()>, L</bround()> or L</bfround()> or by passing the desired accuracy
-to the math operation as additional parameter:
+Creates a new Math::BigInt object from a scalar or another Math::BigInt object.
+The input is accepted as decimal, hexadecimal (with leading '0x') or binary
+(with leading '0b').
- my $x = Math::BigInt->new(30000);
- my $y = Math::BigInt->new(7);
- print scalar $x->copy()->bdiv($y, 2); # print 4300
- print scalar $x->copy()->bdiv($y)->bround(2); # print 4300
+See L</Input> for more info on accepted input formats.
-Please see the section about L</ACCURACY and PRECISION> for further details.
+=item from_hex()
-Value must be greater than zero. Pass an undef value to disable it:
-
- $x->accuracy(undef);
- Math::BigInt->accuracy(undef);
-
-Returns the current accuracy. For C<< $x->accuracy() >> it will return either
-the local accuracy, or if not defined, the global. This means the return value
-represents the accuracy that will be in effect for $x:
-
- $y = Math::BigInt->new(1234567); # unrounded
- print Math::BigInt->accuracy(4),"\n"; # set 4, print 4
- $x = Math::BigInt->new(123456); # $x will be automatic-
- # ally rounded!
- print "$x $y\n"; # '123500 1234567'
- print $x->accuracy(),"\n"; # will be 4
- print $y->accuracy(),"\n"; # also 4, since
- # global is 4
- print Math::BigInt->accuracy(5),"\n"; # set to 5, print 5
- print $x->accuracy(),"\n"; # still 4
- print $y->accuracy(),"\n"; # 5, since global is 5
-
-Note: Works also for subclasses like Math::BigFloat. Each class has it's own
-globals separated from Math::BigInt, but it is possible to subclass
-Math::BigInt and make the globals of the subclass aliases to the ones from
-Math::BigInt.
+ $x = Math::BigInt->from_hex("0xcafe"); # input is hexadecimal
-=item precision()
+Interpret input as a hexadecimal string. A "0x" or "x" prefix is optional. A
+single underscore character may be placed right after the prefix, if present,
+or between any two digits. If the input is invalid, a NaN is returned.
- $x->precision(-2); # local for $x, round at the second
- # digit right of the dot
- $x->precision(2); # ditto, round at the second digit
- # left of the dot
+=item from_oct()
- CLASS->precision(5); # Global for all members of CLASS
- # This also applies to new()!
- CLASS->precision(-5); # ditto
+ $x = Math::BigInt->from_oct("0775"); # input is octal
- $P = CLASS->precision(); # read out global precision
- $P = $x->precision(); # read out precision that affects $x
+Interpret the input as an octal string and return the corresponding value. A
+"0" (zero) prefix is optional. A single underscore character may be placed
+right after the prefix, if present, or between any two digits. If the input is
+invalid, a NaN is returned.
-Note: You probably want to use L</accuracy()> instead. With L</accuracy()> you
-set the number of digits each result should have, with L</precision()> you
-set the place where to round!
+=item from_bin()
-C<precision()> sets or gets the global or local precision, aka at which digit
-before or after the dot to round all results. A set global precision also
-applies to all newly created numbers!
+ $x = Math::BigInt->from_bin("0b10011"); # input is binary
-In Math::BigInt, passing a negative number precision has no effect since no
-numbers have digits after the dot. In L<Math::BigFloat>, it will round all
-results to P digits after the dot.
+Interpret the input as a binary string. A "0b" or "b" prefix is optional. A
+single underscore character may be placed right after the prefix, if present,
+or between any two digits. If the input is invalid, a NaN is returned.
-Please see the section about L</ACCURACY and PRECISION> for further details.
+=item from_bytes()
-Pass an undef value to disable it:
+ $x = Math::BigInt->from_bytes("\xf3\x6b"); # $x = 62315
- $x->precision(undef);
- Math::BigInt->precision(undef);
+Interpret the input as a byte string, assuming big endian byte order. The
+output is always a non-negative, finite integer.
-Returns the current precision. For C<< $x->precision() >> it will return either
-the local precision of $x, or if not defined, the global. This means the return
-value represents the prevision that will be in effect for $x:
+In some special cases, from_bytes() matches the conversion done by unpack():
- $y = Math::BigInt->new(1234567); # unrounded
- print Math::BigInt->precision(4),"\n"; # set 4, print 4
- $x = Math::BigInt->new(123456); # will be automatically rounded
- print $x; # print "120000"!
+ $b = "\x4e"; # one char byte string
+ $x = Math::BigInt->from_bytes($b); # = 78
+ $y = unpack "C", $b; # ditto, but scalar
-Note: Works also for subclasses like L<Math::BigFloat>. Each class has its
-own globals separated from Math::BigInt, but it is possible to subclass
-Math::BigInt and make the globals of the subclass aliases to the ones from
-Math::BigInt.
+ $b = "\xf3\x6b"; # two char byte string
+ $x = Math::BigInt->from_bytes($b); # = 62315
+ $y = unpack "S>", $b; # ditto, but scalar
-=item brsft()
+ $b = "\x2d\xe0\x49\xad"; # four char byte string
+ $x = Math::BigInt->from_bytes($b); # = 769673645
+ $y = unpack "L>", $b; # ditto, but scalar
- $x->brsft($y,$n);
+ $b = "\x2d\xe0\x49\xad\x2d\xe0\x49\xad"; # eight char byte string
+ $x = Math::BigInt->from_bytes($b); # = 3305723134637787565
+ $y = unpack "Q>", $b; # ditto, but scalar
-Shifts $x right by $y in base $n. Default is base 2, used are usually 10 and
-2, but others work, too.
+=item bzero()
-Right shifting usually amounts to dividing $x by $n ** $y and truncating the
-result:
+ $x = Math::BigInt->bzero();
+ $x->bzero();
+Returns a new Math::BigInt object representing zero. If used as an instance
+method, assigns the value to the invocand.
- $x = Math::BigInt->new(10);
- $x->brsft(1); # same as $x >> 1: 5
- $x = Math::BigInt->new(1234);
- $x->brsft(2,10); # result 12
+=item bone()
-There is one exception, and that is base 2 with negative $x:
+ $x = Math::BigInt->bone(); # +1
+ $x = Math::BigInt->bone("+"); # +1
+ $x = Math::BigInt->bone("-"); # -1
+ $x->bone(); # +1
+ $x->bone("+"); # +1
+ $x->bone('-'); # -1
+Creates a new Math::BigInt object representing one. The optional argument is
+either '-' or '+', indicating whether you want plus one or minus one. If used
+as an instance method, assigns the value to the invocand.
- $x = Math::BigInt->new(-5);
- print $x->brsft(1);
+=item binf()
-This will print -3, not -2 (as it would if you divide -5 by 2 and truncate the
-result).
+ $x = Math::BigInt->binf($sign);
-=item new()
+Creates a new Math::BigInt object representing infinity. The optional argument
+is either '-' or '+', indicating whether you want infinity or minus infinity.
+If used as an instance method, assigns the value to the invocand.
- $x = Math::BigInt->new($str,$A,$P,$R);
+ $x->binf();
+ $x->binf('-');
-Creates a new BigInt object from a scalar or another BigInt object. The
-input is accepted as decimal, hex (with leading '0x') or binary (with leading
-'0b').
+=item bnan()
-See L</Input> for more info on accepted input formats.
+ $x = Math::BigInt->bnan();
-=item from_oct()
+Creates a new Math::BigInt object representing NaN (Not A Number). If used as
+an instance method, assigns the value to the invocand.
- $x = Math::BigInt->from_oct("0775"); # input is octal
+ $x->bnan();
-Interpret the input as an octal string and return the corresponding value. A
-"0" (zero) prefix is optional. A single underscore character may be placed
-right after the prefix, if present, or between any two digits. If the input is
-invalid, a NaN is returned.
+=item bpi()
-=item from_hex()
+ $x = Math::BigInt->bpi(100); # 3
+ $x->bpi(100); # 3
- $x = Math::BigInt->from_hex("0xcafe"); # input is hexadecimal
+Creates a new Math::BigInt object representing PI. If used as an instance
+method, assigns the value to the invocand. With Math::BigInt this always
+returns 3.
-Interpret input as a hexadecimal string. A "0x" or "x" prefix is optional. A
-single underscore character may be placed right after the prefix, if present,
-or between any two digits. If the input is invalid, a NaN is returned.
+If upgrading is in effect, returns PI, rounded to N digits with the current
+rounding mode:
-=item from_bin()
+ use Math::BigFloat;
+ use Math::BigInt upgrade => "Math::BigFloat";
+ print Math::BigInt->bpi(3), "\n"; # 3.14
+ print Math::BigInt->bpi(100), "\n"; # 3.1415....
- $x = Math::BigInt->from_bin("0b10011"); # input is binary
+=item copy()
-Interpret the input as a binary string. A "0b" or "b" prefix is optional. A
-single underscore character may be placed right after the prefix, if present,
-or between any two digits. If the input is invalid, a NaN is returned.
+ $x->copy(); # make a true copy of $x (unlike $y = $x)
-=item bnan()
+=item as_int()
- $x = Math::BigInt->bnan();
+=item as_number()
-Creates a new BigInt object representing NaN (Not A Number).
-If used on an object, it will set it to NaN:
+These methods are called when Math::BigInt encounters an object it doesn't know
+how to handle. For instance, assume $x is a Math::BigInt, or subclass thereof,
+and $y is defined, but not a Math::BigInt, or subclass thereof. If you do
- $x->bnan();
+ $x -> badd($y);
-=item bzero()
+$y needs to be converted into an object that $x can deal with. This is done by
+first checking if $y is something that $x might be upgraded to. If that is the
+case, no further attempts are made. The next is to see if $y supports the
+method C<as_int()>. If it does, C<as_int()> is called, but if it doesn't, the
+next thing is to see if $y supports the method C<as_number()>. If it does,
+C<as_number()> is called. The method C<as_int()> (and C<as_number()>) is
+expected to return either an object that has the same class as $x, a subclass
+thereof, or a string that C<ref($x)-E<gt>new()> can parse to create an object.
- $x = Math::BigInt->bzero();
+C<as_number()> is an alias to C<as_int()>. C<as_number> was introduced in
+v1.22, while C<as_int()> was introduced in v1.68.
-Creates a new BigInt object representing zero.
-If used on an object, it will set it to zero:
+In Math::BigInt, C<as_int()> has the same effect as C<copy()>.
- $x->bzero();
+=back
-=item binf()
+=head2 Boolean methods
- $x = Math::BigInt->binf($sign);
+None of these methods modify the invocand object.
+
+=over
-Creates a new BigInt object representing infinity. The optional argument is
-either '-' or '+', indicating whether you want infinity or minus infinity.
-If used on an object, it will set it to infinity:
+=item is_zero()
- $x->binf();
- $x->binf('-');
+ $x->is_zero(); # true if $x is 0
-=item bone()
+Returns true if the invocand is zero and false otherwise.
- $x = Math::BigInt->binf($sign);
+=item is_one( [ SIGN ])
+
+ $x->is_one(); # true if $x is +1
+ $x->is_one("+"); # ditto
+ $x->is_one("-"); # true if $x is -1
+
+Returns true if the invocand is one and false otherwise.
+
+=item is_finite()
-Creates a new BigInt object representing one. The optional argument is
-either '-' or '+', indicating whether you want one or minus one.
-If used on an object, it will set it to one:
+ $x->is_finite(); # true if $x is not +inf, -inf or NaN
- $x->bone(); # +1
- $x->bone('-'); # -1
+Returns true if the invocand is a finite number, i.e., it is neither +inf,
+-inf, nor NaN.
-=item is_one()/is_zero()/is_nan()/is_inf()
+=item is_inf( [ SIGN ] )
- $x->is_zero(); # true if arg is +0
- $x->is_nan(); # true if arg is NaN
- $x->is_one(); # true if arg is +1
- $x->is_one('-'); # true if arg is -1
- $x->is_inf(); # true if +inf
- $x->is_inf('-'); # true if -inf (sign is default '+')
+ $x->is_inf(); # true if $x is +inf
+ $x->is_inf("+"); # ditto
+ $x->is_inf("-"); # true if $x is -inf
-These methods all test the BigInt for being one specific value and return
-true or false depending on the input. These are faster than doing something
-like:
+Returns true if the invocand is infinite and false otherwise.
- if ($x == 0)
+=item is_nan()
-=item is_pos()/is_neg()/is_positive()/is_negative()
+ $x->is_nan(); # true if $x is NaN
- $x->is_pos(); # true if > 0
- $x->is_neg(); # true if < 0
+=item is_positive()
-The methods return true if the argument is positive or negative, respectively.
-C<NaN> is neither positive nor negative, while C<+inf> counts as positive, and
-C<-inf> is negative. A C<zero> is neither positive nor negative.
+=item is_pos()
-These methods are only testing the sign, and not the value.
+ $x->is_positive(); # true if > 0
+ $x->is_pos(); # ditto
-C<is_positive()> and C<is_negative()> are aliases to C<is_pos()> and
-C<is_neg()>, respectively. C<is_positive()> and C<is_negative()> were
-introduced in v1.36, while C<is_pos()> and C<is_neg()> were only introduced
-in v1.68.
+Returns true if the invocand is positive and false otherwise. A C<NaN> is
+neither positive nor negative.
-=item is_odd()/is_even()/is_int()
+=item is_negative()
+
+=item is_neg()
+
+ $x->is_negative(); # true if < 0
+ $x->is_neg(); # ditto
+
+Returns true if the invocand is negative and false otherwise. A C<NaN> is
+neither positive nor negative.
+
+=item is_odd()
$x->is_odd(); # true if odd, false for even
- $x->is_even(); # true if even, false for odd
- $x->is_int(); # true if $x is an integer
-The return true when the argument satisfies the condition. C<NaN>, C<+inf>,
+Returns true if the invocand is odd and false otherwise. C<NaN>, C<+inf>, and
+C<-inf> are neither odd nor even.
+
+=item is_even()
+
+ $x->is_even(); # true if $x is even
+
+Returns true if the invocand is even and false otherwise. C<NaN>, C<+inf>,
C<-inf> are not integers and are neither odd nor even.
-In BigInt, all numbers except C<NaN>, C<+inf> and C<-inf> are integers.
+=item is_int()
+
+ $x->is_int(); # true if $x is an integer
+
+Returns true if the invocand is an integer and false otherwise. C<NaN>,
+C<+inf>, C<-inf> are not integers.
+
+=back
+
+=head2 Comparison methods
+
+None of these methods modify the invocand object. Note that a C<NaN> is neither
+less than, greater than, or equal to anything else, even a C<NaN>.
+
+=over
=item bcmp()
$x->bcmp($y);
-Compares $x with $y and takes the sign into account.
-Returns -1, 0, 1 or undef.
+Returns -1, 0, 1 depending on whether $x is less than, equal to, or grater than
+$y. Returns undef if any operand is a NaN.
=item bacmp()
$x->bacmp($y);
-Compares $x with $y while ignoring their sign. Returns -1, 0, 1 or undef.
+Returns -1, 0, 1 depending on whether the absolute value of $x is less than,
+equal to, or grater than the absolute value of $y. Returns undef if any operand
+is a NaN.
-=item sign()
+=item beq()
- $x->sign();
+ $x -> beq($y);
-Return the sign, of $x, meaning either C<+>, C<->, C<-inf>, C<+inf> or NaN.
+Returns true if and only if $x is equal to $y, and false otherwise.
-If you want $x to have a certain sign, use one of the following methods:
+=item bne()
- $x->babs(); # '+'
- $x->babs()->bneg(); # '-'
- $x->bnan(); # 'NaN'
- $x->binf(); # '+inf'
- $x->binf('-'); # '-inf'
+ $x -> bne($y);
-=item digit()
+Returns true if and only if $x is not equal to $y, and false otherwise.
- $x->digit($n); # return the nth digit, counting from right
+=item blt()
-If C<$n> is negative, returns the digit counting from left.
+ $x -> blt($y);
+
+Returns true if and only if $x is equal to $y, and false otherwise.
+
+=item ble()
+
+ $x -> ble($y);
+
+Returns true if and only if $x is less than or equal to $y, and false
+otherwise.
+
+=item bgt()
+
+ $x -> bgt($y);
+
+Returns true if and only if $x is greater than $y, and false otherwise.
+
+=item bge()
+
+ $x -> bge($y);
+
+Returns true if and only if $x is greater than or equal to $y, and false
+otherwise.
+
+=back
+
+=head2 Arithmetic methods
+
+These methods modify the invocand object and returns it.
+
+=over
=item bneg()
@@ -4153,15 +5031,8 @@ number is negative, zero, or positive, respectively. Does not modify NaNs.
$x->bnorm(); # normalize (no-op)
-=item bnot()
-
- $x->bnot();
-
-Two's complement (bitwise not). This is equivalent to
-
- $x->binc()->bneg();
-
-but faster.
+Normalize the number. This is a no-op and is provided only for backwards
+compatibility.
=item binc()
@@ -4195,18 +5066,57 @@ This method was added in v1.87 of Math::BigInt (June 2007).
$x->bdiv($y); # divide, set $x to quotient
-Returns $x divided by $y. In list context, does floored division (F-division),
-where the quotient is the greatest integer less than or equal to the quotient
-of the two operands. Consequently, the remainder is either zero or has the same
-sign as the second operand. In scalar context, only the quotient is returned.
+Divides $x by $y by doing floored division (F-division), where the quotient is
+the floored (rounded towards negative infinity) quotient of the two operands.
+In list context, returns the quotient and the remainder. The remainder is
+either zero or has the same sign as the second operand. In scalar context, only
+the quotient is returned.
+
+The quotient is always the greatest integer less than or equal to the
+real-valued quotient of the two operands, and the remainder (when it is
+non-zero) always has the same sign as the second operand; so, for example,
+
+ 1 / 4 => ( 0, 1)
+ 1 / -4 => (-1, -3)
+ -3 / 4 => (-1, 1)
+ -3 / -4 => ( 0, -3)
+ -11 / 2 => (-5, 1)
+ 11 / -2 => (-5, -1)
+
+The behavior of the overloaded operator % agrees with the behavior of Perl's
+built-in % operator (as documented in the perlop manpage), and the equation
+
+ $x == ($x / $y) * $y + ($x % $y)
+
+holds true for any finite $x and finite, non-zero $y.
+
+Perl's "use integer" might change the behaviour of % and / for scalars. This is
+because under 'use integer' Perl does what the underlying C library thinks is
+right, and this varies. However, "use integer" does not change the way things
+are done with Math::BigInt objects.
+
+=item btdiv()
+
+ $x->btdiv($y); # divide, set $x to quotient
+
+Divides $x by $y by doing truncated division (T-division), where quotient is
+the truncated (rouneded towards zero) quotient of the two operands. In list
+context, returns the quotient and the remainder. The remainder is either zero
+or has the same sign as the first operand. In scalar context, only the quotient
+is returned.
=item bmod()
$x->bmod($y); # modulus (x % y)
-Returns $x modulo $y. When $x is finite, and $y is finite and non-zero, the
-result is identical to the remainder after floored division (F-division), i.e.,
-identical to the result from Perl's % operator.
+Returns $x modulo $y, i.e., the remainder after floored division (F-division).
+This method is like Perl's % operator. See L</bdiv()>.
+
+=item btmod()
+
+ $x->btmod($y); # modulus
+
+Returns the remainer after truncated division (T-division). See L</btdiv()>.
=item bmodinv()
@@ -4249,19 +5159,31 @@ is exactly equivalent to
=item bpow()
- $x->bpow($y); # power of arguments (x ** y)
+ $x->bpow($y); # power of arguments (x ** y)
+
+C<bpow()> (and the rounding functions) now modifies the first argument and
+returns it, unlike the old code which left it alone and only returned the
+result. This is to be consistent with C<badd()> etc. The first three modifies
+$x, the last one won't:
+
+ print bpow($x,$i),"\n"; # modify $x
+ print $x->bpow($i),"\n"; # ditto
+ print $x **= $i,"\n"; # the same
+ print $x ** $i,"\n"; # leave $x alone
+
+The form C<$x **= $y> is faster than C<$x = $x ** $y;>, though.
=item blog()
- $x->blog($base, $accuracy); # logarithm of x to the base $base
+ $x->blog($base, $accuracy); # logarithm of x to the base $base
If C<$base> is not defined, Euler's number (e) is used:
- print $x->blog(undef, 100); # log(x) to 100 digits
+ print $x->blog(undef, 100); # log(x) to 100 digits
=item bexp()
- $x->bexp($accuracy); # calculate e ** X
+ $x->bexp($accuracy); # calculate e ** X
Calculates the expression C<e ** $x> where C<e> is Euler's number.
@@ -4271,31 +5193,26 @@ See also L</blog()>.
=item bnok()
- $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bnok($y); # x over y (binomial coefficient n over k)
Calculates the binomial coefficient n over k, also called the "choose"
function. The result is equivalent to:
- ( n ) n!
- | - | = -------
- ( k ) k!(n-k)!
+ ( n ) n!
+ | - | = -------
+ ( k ) k!(n-k)!
This method was added in v1.84 of Math::BigInt (April 2007).
-=item bpi()
-
- print Math::BigInt->bpi(100), "\n"; # 3
+=item bsin()
-Returns PI truncated to an integer, with the argument being ignored. This means
-under BigInt this always returns C<3>.
+ my $x = Math::BigInt->new(1);
+ print $x->bsin(100), "\n";
-If upgrading is in effect, returns PI, rounded to N digits with the
-current rounding mode:
+Calculate the sine of $x, modifying $x in place.
- use Math::BigFloat;
- use Math::BigInt upgrade => Math::BigFloat;
- print Math::BigInt->bpi(3), "\n"; # 3.14
- print Math::BigInt->bpi(100), "\n"; # 3.1415....
+In Math::BigInt, unless upgrading is in effect, the result is truncated to an
+integer.
This method was added in v1.87 of Math::BigInt (June 2007).
@@ -4304,21 +5221,21 @@ This method was added in v1.87 of Math::BigInt (June 2007).
my $x = Math::BigInt->new(1);
print $x->bcos(100), "\n";
-Calculate the cosinus of $x, modifying $x in place.
+Calculate the cosine of $x, modifying $x in place.
-In BigInt, unless upgrading is in effect, the result is truncated to an
+In Math::BigInt, unless upgrading is in effect, the result is truncated to an
integer.
This method was added in v1.87 of Math::BigInt (June 2007).
-=item bsin()
+=item batan()
- my $x = Math::BigInt->new(1);
- print $x->bsin(100), "\n";
+ my $x = Math::BigFloat->new(0.5);
+ print $x->batan(100), "\n";
-Calculate the sinus of $x, modifying $x in place.
+Calculate the arcus tangens of $x, modifying $x in place.
-In BigInt, unless upgrading is in effect, the result is truncated to an
+In Math::BigInt, unless upgrading is in effect, the result is truncated to an
integer.
This method was added in v1.87 of Math::BigInt (June 2007).
@@ -4331,32 +5248,141 @@ This method was added in v1.87 of Math::BigInt (June 2007).
Calculate the arcus tangens of C<$y> divided by C<$x>, modifying $y in place.
-In BigInt, unless upgrading is in effect, the result is truncated to an
+In Math::BigInt, unless upgrading is in effect, the result is truncated to an
integer.
This method was added in v1.87 of Math::BigInt (June 2007).
-=item batan()
+=item bsqrt()
- my $x = Math::BigFloat->new(0.5);
- print $x->batan(100), "\n";
+ $x->bsqrt(); # calculate square-root
-Calculate the arcus tangens of $x, modifying $x in place.
+C<bsqrt()> returns the square root truncated to an integer.
-In BigInt, unless upgrading is in effect, the result is truncated to an
-integer.
+If you want a better approximation of the square root, then use:
-This method was added in v1.87 of Math::BigInt (June 2007).
+ $x = Math::BigFloat->new(12);
+ Math::BigFloat->precision(0);
+ Math::BigFloat->round_mode('even');
+ print $x->copy->bsqrt(),"\n"; # 4
-=item blsft()
+ Math::BigFloat->precision(2);
+ print $x->bsqrt(),"\n"; # 3.46
+ print $x->bsqrt(3),"\n"; # 3.464
+
+=item broot()
+
+ $x->broot($N);
+
+Calculates the N'th root of C<$x>.
+
+=item bfac()
+
+ $x->bfac(); # factorial of $x (1*2*3*4*..*$x)
+
+Returns the factorial of C<$x>, i.e., the product of all positive integers up
+to and including C<$x>.
+
+=item bdfac()
+
+ $x->bdfac(); # double factorial of $x (1*2*3*4*..*$x)
+
+Returns the double factorial of C<$x>. If C<$x> is an even integer, returns the
+product of all positive, even integers up to and including C<$x>, i.e.,
+2*4*6*...*$x. If C<$x> is an odd integer, returns the product of all positive,
+odd integers, i.e., 1*3*5*...*$x.
+
+=item bfib()
+
+ $F = $n->bfib(); # a single Fibonacci number
+ @F = $n->bfib(); # a list of Fibonacci numbers
+
+In scalar context, returns a single Fibonacci number. In list context, returns
+a list of Fibonacci numbers. The invocand is the last element in the output.
+
+The Fibonacci sequence is defined by
- $x->blsft($y); # left shift in base 2
- $x->blsft($y,$n); # left shift, in base $n (like 10)
+ F(0) = 0
+ F(1) = 1
+ F(n) = F(n-1) + F(n-2)
+
+In list context, F(0) and F(n) is the first and last number in the output,
+respectively. For example, if $n is 12, then C<< @F = $n->bfib() >> returns the
+following values, F(0) to F(12):
+
+ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
+
+The sequence can also be extended to negative index n using the re-arranged
+recurrence relation
+
+ F(n-2) = F(n) - F(n-1)
+
+giving the bidirectional sequence
+
+ n -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
+ F(n) 13 -8 5 -3 2 -1 1 0 1 1 2 3 5 8 13
+
+If $n is -12, the following values, F(0) to F(12), are returned:
+
+ 0, 1, -1, 2, -3, 5, -8, 13, -21, 34, -55, 89, -144
+
+=item blucas()
+
+ $F = $n->blucas(); # a single Lucas number
+ @F = $n->blucas(); # a list of Lucas numbers
+
+In scalar context, returns a single Lucas number. In list context, returns a
+list of Lucas numbers. The invocand is the last element in the output.
+
+The Lucas sequence is defined by
+
+ L(0) = 2
+ L(1) = 1
+ L(n) = L(n-1) + L(n-2)
+
+In list context, L(0) and L(n) is the first and last number in the output,
+respectively. For example, if $n is 12, then C<< @L = $n->blucas() >> returns
+the following values, L(0) to L(12):
+
+ 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322
+
+The sequence can also be extended to negative index n using the re-arranged
+recurrence relation
+
+ L(n-2) = L(n) - L(n-1)
+
+giving the bidirectional sequence
+
+ n -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
+ L(n) 29 -18 11 -7 4 -3 1 2 1 3 4 7 11 18 29
+
+If $n is -12, the following values, L(0) to L(-12), are returned:
+
+ 2, 1, -3, 4, -7, 11, -18, 29, -47, 76, -123, 199, -322
=item brsft()
- $x->brsft($y); # right shift in base 2
- $x->brsft($y,$n); # right shift, in base $n (like 10)
+ $x->brsft($n); # right shift $n places in base 2
+ $x->brsft($n, $b); # right shift $n places in base $b
+
+The latter is equivalent to
+
+ $x -> bdiv($b -> copy() -> bpow($n))
+
+=item blsft()
+
+ $x->blsft($n); # left shift $n places in base 2
+ $x->blsft($n, $b); # left shift $n places in base $b
+
+The latter is equivalent to
+
+ $x -> bmul($b -> copy() -> bpow($n))
+
+=back
+
+=head2 Bitwise methods
+
+=over
=item band()
@@ -4374,19 +5400,15 @@ This method was added in v1.87 of Math::BigInt (June 2007).
$x->bnot(); # bitwise not (two's complement)
-=item bsqrt()
+Two's complement (bitwise not). This is equivalent to, but faster than,
- $x->bsqrt(); # calculate square-root
-
-=item broot()
-
- $x->broot($N);
+ $x->binc()->bneg();
-Calculates the N'th root of C<$x>.
+=back
-=item bfac()
+=head2 Rounding methods
- $x->bfac(); # factorial of $x (1*2*3*4*..$x)
+=over
=item round()
@@ -4399,178 +5421,291 @@ C<$round_mode>.
$x->bround($N); # accuracy: preserve $N digits
+Rounds $x to an accuracy of $N digits.
+
=item bfround()
$x->bfround($N);
-If N is > 0, rounds to the Nth digit from the left. If N < 0, rounds to
-the Nth digit after the dot. Since BigInts are integers, the case N < 0
-is a no-op for them.
+Rounds to a multiple of 10**$N. Examples:
-Examples:
+ Input N Result
- Input N Result
- ===================================================
- 123456.123456 3 123500
- 123456.123456 2 123450
- 123456.123456 -2 123456.12
- 123456.123456 -3 123456.123
+ 123456.123456 3 123500
+ 123456.123456 2 123450
+ 123456.123456 -2 123456.12
+ 123456.123456 -3 123456.123
=item bfloor()
$x->bfloor();
-Round $x towards minus infinity (i.e., set $x to the largest integer less than
-or equal to $x). This is a no-op in BigInt, but changes $x in BigFloat, if $x
-is not an integer.
+Round $x towards minus infinity, i.e., set $x to the largest integer less than
+or equal to $x.
=item bceil()
$x->bceil();
-Round $x towards plus infinity (i.e., set $x to the smallest integer greater
-than or equal to $x). This is a no-op in BigInt, but changes $x in BigFloat, if
-$x is not an integer.
+Round $x towards plus infinity, i.e., set $x to the smallest integer greater
+than or equal to $x).
=item bint()
$x->bint();
-Round $x towards zero. This is a no-op in BigInt, but changes $x in BigFloat,
-if $x is not an integer.
+Round $x towards zero.
+
+=back
+
+=head2 Other mathematical methods
+
+=over
=item bgcd()
- bgcd(@values); # greatest common divisor (no OO style)
+ $x -> bgcd($y); # GCD of $x and $y
+ $x -> bgcd($y, $z, ...); # GCD of $x, $y, $z, ...
+
+Returns the greatest common divisor (GCD).
=item blcm()
- blcm(@values); # lowest common multiple (no OO style)
+ $x -> blcm($y); # LCM of $x and $y
+ $x -> blcm($y, $z, ...); # LCM of $x, $y, $z, ...
+
+Returns the least common multiple (LCM).
+
+=back
+
+=head2 Object property methods
+
+=over
+
+=item sign()
+
+ $x->sign();
+
+Return the sign, of $x, meaning either C<+>, C<->, C<-inf>, C<+inf> or NaN.
+
+If you want $x to have a certain sign, use one of the following methods:
+
+ $x->babs(); # '+'
+ $x->babs()->bneg(); # '-'
+ $x->bnan(); # 'NaN'
+ $x->binf(); # '+inf'
+ $x->binf('-'); # '-inf'
+
+=item digit()
+
+ $x->digit($n); # return the nth digit, counting from right
+
+If C<$n> is negative, returns the digit counting from left.
=item length()
$x->length();
- ($xl,$fl) = $x->length();
+ ($xl, $fl) = $x->length();
-Returns the number of digits in the decimal representation of the number.
-In list context, returns the length of the integer and fraction part. For
-BigInt's, the length of the fraction part will always be 0.
+Returns the number of digits in the decimal representation of the number. In
+list context, returns the length of the integer and fraction part. For
+Math::BigInt objects, the length of the fraction part is always 0.
-=item exponent()
+The following probably doesn't do what you expect:
- $x->exponent();
+ $c = Math::BigInt->new(123);
+ print $c->length(),"\n"; # prints 30
+
+It prints both the number of digits in the number and in the fraction part
+since print calls C<length()> in list context. Use something like:
-Return the exponent of $x as BigInt.
+ print scalar $c->length(),"\n"; # prints 3
=item mantissa()
$x->mantissa();
-Return the signed mantissa of $x as BigInt.
+Return the signed mantissa of $x as a Math::BigInt.
+
+=item exponent()
+
+ $x->exponent();
+
+Return the exponent of $x as a Math::BigInt.
=item parts()
- $x->parts(); # return (mantissa,exponent) as BigInt
+ $x->parts();
-=item copy()
+Returns the significand (mantissa) and the exponent as integers. In
+Math::BigFloat, both are returned as Math::BigInt objects.
- $x->copy(); # make a true copy of $x (unlike $y = $x;)
+=item sparts()
-=item as_int()
+Returns the significand (mantissa) and the exponent as integers. In scalar
+context, only the significand is returned. The significand is the integer with
+the smallest absolute value. The output of C<sparts()> corresponds to the
+output from C<bsstr()>.
-=item as_number()
+In Math::BigInt, this method is identical to C<parts()>.
-These methods are called when Math::BigInt encounters an object it doesn't know
-how to handle. For instance, assume $x is a Math::BigInt, or subclass thereof,
-and $y is defined, but not a Math::BigInt, or subclass thereof. If you do
+=item nparts()
- $x -> badd($y);
+Returns the significand (mantissa) and exponent corresponding to normalized
+notation. In scalar context, only the significand is returned. For finite
+non-zero numbers, the significand's absolute value is greater than or equal to
+1 and less than 10. The output of C<nparts()> corresponds to the output from
+C<bnstr()>. In Math::BigInt, if the significand can not be represented as an
+integer, upgrading is performed or NaN is returned.
-$y needs to be converted into an object that $x can deal with. This is done by
-first checking if $y is something that $x might be upgraded to. If that is the
-case, no further attempts are made. The next is to see if $y supports the
-method C<as_int()>. If it does, C<as_int()> is called, but if it doesn't, the
-next thing is to see if $y supports the method C<as_number()>. If it does,
-C<as_number()> is called. The method C<as_int()> (and C<as_number()>) is
-expected to return either an object that has the same class as $x, a subclass
-thereof, or a string that C<ref($x)-E<gt>new()> can parse to create an object.
+=item eparts()
-C<as_number()> is an alias to C<as_int()>. C<as_number> was introduced in
-v1.22, while C<as_int()> was introduced in v1.68.
+Returns the significand (mantissa) and exponent corresponding to engineering
+notation. In scalar context, only the significand is returned. For finite
+non-zero numbers, the significand's absolute value is greater than or equal to
+1 and less than 1000, and the exponent is a multiple of 3. The output of
+C<eparts()> corresponds to the output from C<bestr()>. In Math::BigInt, if the
+significand can not be represented as an integer, upgrading is performed or NaN
+is returned.
-In Math::BigInt, C<as_int()> has the same effect as C<copy()>.
+=item dparts()
-=item bstr()
+Returns the integer part and the fraction part. If the fraction part can not be
+represented as an integer, upgrading is performed or NaN is returned. The
+output of C<dparts()> corresponds to the output from C<bdstr()>.
- $x->bstr();
+=back
+
+=head2 String conversion methods
+
+=over
-Returns a normalized string representation of C<$x>.
+=item bstr()
+
+Returns a string representing the number using decimal notation. In
+Math::BigFloat, the output is zero padded according to the current accuracy or
+precision, if any of those are defined.
=item bsstr()
- $x->bsstr(); # normalized string in scientific notation
+Returns a string representing the number using scientific notation where both
+the significand (mantissa) and the exponent are integers. The output
+corresponds to the output from C<sparts()>.
-=item as_hex()
+ 123 is returned as "123e+0"
+ 1230 is returned as "123e+1"
+ 12300 is returned as "123e+2"
+ 12000 is returned as "12e+3"
+ 10000 is returned as "1e+4"
- $x->as_hex(); # as signed hexadecimal string with prefixed 0x
+=item bnstr()
-=item as_bin()
+Returns a string representing the number using normalized notation, the most
+common variant of scientific notation. For finite non-zero numbers, the
+absolute value of the significand is less than or equal to 1 and less than 10.
+The output corresponds to the output from C<nparts()>.
- $x->as_bin(); # as signed binary string with prefixed 0b
+ 123 is returned as "1.23e+2"
+ 1230 is returned as "1.23e+3"
+ 12300 is returned as "1.23e+4"
+ 12000 is returned as "1.2e+4"
+ 10000 is returned as "1e+4"
-=item as_oct()
+=item bestr()
- $x->as_oct(); # as signed octal string with prefixed 0
+Returns a string representing the number using engineering notation. For finite
+non-zero numbers, the absolute value of the significand is less than or equal
+to 1 and less than 1000, and the exponent is a multiple of 3. The output
+corresponds to the output from C<eparts()>.
-=item numify()
+ 123 is returned as "123e+0"
+ 1230 is returned as "1.23e+3"
+ 12300 is returned as "12.3e+3"
+ 12000 is returned as "12e+3"
+ 10000 is returned as "10e+3"
- print $x->numify();
+=item bdstr()
-This returns a normal Perl scalar from $x. It is used automatically
-whenever a scalar is needed, for instance in array index operations.
+Returns a string representing the number using decimal notation. The output
+corresponds to the output from C<dparts()>.
-This loses precision, to avoid this use L</as_int()> instead.
+ 123 is returned as "123"
+ 1230 is returned as "1230"
+ 12300 is returned as "12300"
+ 12000 is returned as "12000"
+ 10000 is returned as "10000"
-=item modify()
+=item to_hex()
- $x->modify('bpowd');
+ $x->to_hex();
-This method returns 0 if the object can be modified with the given
-operation, or 1 if not.
+Returns a hexadecimal string representation of the number.
-This is used for instance by L<Math::BigInt::Constant>.
+=item to_bin()
-=item upgrade()/downgrade()
+ $x->to_bin();
-Set/get the class for downgrade/upgrade operations. Thuis is used
-for instance by L<bignum>. The defaults are '', thus the following
-operation will create a BigInt, not a BigFloat:
+Returns a binary string representation of the number.
- my $i = Math::BigInt->new(123);
- my $f = Math::BigFloat->new('123.1');
+=item to_oct()
- print $i + $f,"\n"; # print 246
+ $x->to_oct();
-=item div_scale()
+Returns an octal string representation of the number.
-Set/get the number of digits for the default precision in divide
-operations.
+=item to_bytes()
-=item round_mode()
+ $x = Math::BigInt->new("1667327589");
+ $s = $x->to_bytes(); # $s = "cafe"
+
+Returns a byte string representation of the number using big endian byte
+order. The invocand must be a non-negative, finite integer.
-Set/get the current round mode.
+=item as_hex()
+
+ $x->as_hex();
+
+As, C<to_hex()>, but with a "0x" prefix.
+
+=item as_bin()
+
+ $x->as_bin();
+
+As, C<to_bin()>, but with a "0b" prefix.
+
+=item as_oct()
+
+ $x->as_oct();
+
+As, C<to_oct()>, but with a "0" prefix.
+
+=item as_bytes()
+
+This is just an alias for C<to_bytes()>.
+
+=back
+
+=head2 Other conversion methods
+
+=over
+
+=item numify()
+
+ print $x->numify();
+
+Returns a Perl scalar from $x. It is used automatically whenever a scalar is
+needed, for instance in array index operations.
=back
=head1 ACCURACY and PRECISION
-Since version v1.33, Math::BigInt and Math::BigFloat have full support for
-accuracy and precision based rounding, both automatically after every
-operation, as well as manually.
+Math::BigInt and Math::BigFloat have full support for accuracy and precision
+based rounding, both automatically after every operation, as well as manually.
-This section describes the accuracy/precision handling in Math::Big* as it
-used to be and as it is now, complete with an explanation of all terms and
-abbreviations.
+This section describes the accuracy/precision handling in Math::BigInt and
+Math::BigFloat as it used to be and as it is now, complete with an explanation
+of all terms and abbreviations.
Not yet implemented things (but with correct description) are marked with '!',
things that need to be answered are marked with '?'.
@@ -4579,49 +5714,48 @@ In the next paragraph follows a short description of terms used here (because
these may differ from terms used by others people or documentation).
During the rest of this document, the shortcuts A (for accuracy), P (for
-precision), F (fallback) and R (rounding mode) will be used.
+precision), F (fallback) and R (rounding mode) are be used.
=head2 Precision P
-A fixed number of digits before (positive) or after (negative)
-the decimal point. For example, 123.45 has a precision of -2. 0 means an
-integer like 123 (or 120). A precision of 2 means two digits to the left
-of the decimal point are zero, so 123 with P = 1 becomes 120. Note that
-numbers with zeros before the decimal point may have different precisions,
-because 1200 can have p = 0, 1 or 2 (depending on what the initial value
-was). It could also have p < 0, when the digits after the decimal point
-are zero.
-
-The string output (of floating point numbers) will be padded with zeros:
-
- Initial value P A Result String
- ------------------------------------------------------------
- 1234.01 -3 1000 1000
- 1234 -2 1200 1200
- 1234.5 -1 1230 1230
- 1234.001 1 1234 1234.0
- 1234.01 0 1234 1234
- 1234.01 2 1234.01 1234.01
- 1234.01 5 1234.01 1234.01000
-
-For BigInts, no padding occurs.
+Precision is a fixed number of digits before (positive) or after (negative) the
+decimal point. For example, 123.45 has a precision of -2. 0 means an integer
+like 123 (or 120). A precision of 2 means at least two digits to the left of
+the decimal point are zero, so 123 with P = 1 becomes 120. Note that numbers
+with zeros before the decimal point may have different precisions, because 1200
+can have P = 0, 1 or 2 (depending on what the initial value was). It could also
+have p < 0, when the digits after the decimal point are zero.
+
+The string output (of floating point numbers) is padded with zeros:
+
+ Initial value P A Result String
+ ------------------------------------------------------------
+ 1234.01 -3 1000 1000
+ 1234 -2 1200 1200
+ 1234.5 -1 1230 1230
+ 1234.001 1 1234 1234.0
+ 1234.01 0 1234 1234
+ 1234.01 2 1234.01 1234.01
+ 1234.01 5 1234.01 1234.01000
+
+For Math::BigInt objects, no padding occurs.
=head2 Accuracy A
-Number of significant digits. Leading zeros are not counted. A
-number may have an accuracy greater than the non-zero digits
-when there are zeros in it or trailing zeros. For example, 123.456 has
-A of 6, 10203 has 5, 123.0506 has 7, 123.450000 has 8 and 0.000123 has 3.
+Number of significant digits. Leading zeros are not counted. A number may have
+an accuracy greater than the non-zero digits when there are zeros in it or
+trailing zeros. For example, 123.456 has A of 6, 10203 has 5, 123.0506 has 7,
+123.45000 has 8 and 0.000123 has 3.
-The string output (of floating point numbers) will be padded with zeros:
+The string output (of floating point numbers) is padded with zeros:
- Initial value P A Result String
- ------------------------------------------------------------
- 1234.01 3 1230 1230
- 1234.01 6 1234.01 1234.01
- 1234.1 8 1234.1 1234.1000
+ Initial value P A Result String
+ ------------------------------------------------------------
+ 1234.01 3 1230 1230
+ 1234.01 6 1234.01 1234.01
+ 1234.1 8 1234.1 1234.1000
-For BigInts, no padding occurs.
+For Math::BigInt objects, no padding occurs.
=head2 Fallback F
@@ -4630,74 +5764,67 @@ dividing numbers.
=head2 Rounding mode R
-When rounding a number, different 'styles' or 'kinds'
-of rounding are possible. (Note that random rounding, as in
-Math::Round, is not implemented.)
+When rounding a number, different 'styles' or 'kinds' of rounding are possible.
+(Note that random rounding, as in Math::Round, is not implemented.)
=over
=item 'trunc'
-truncation invariably removes all digits following the
-rounding place, replacing them with zeros. Thus, 987.65 rounded
-to tens (P=1) becomes 980, and rounded to the fourth sigdig
-becomes 987.6 (A=4). 123.456 rounded to the second place after the
-decimal point (P=-2) becomes 123.46.
-
-All other implemented styles of rounding attempt to round to the
-"nearest digit." If the digit D immediately to the right of the
-rounding place (skipping the decimal point) is greater than 5, the
-number is incremented at the rounding place (possibly causing a
-cascade of incrementation): e.g. when rounding to units, 0.9 rounds
-to 1, and -19.9 rounds to -20. If D < 5, the number is similarly
-truncated at the rounding place: e.g. when rounding to units, 0.4
+truncation invariably removes all digits following the rounding place,
+replacing them with zeros. Thus, 987.65 rounded to tens (P = 1) becomes 980,
+and rounded to the fourth sigdig becomes 987.6 (A = 4). 123.456 rounded to the
+second place after the decimal point (P = -2) becomes 123.46.
+
+All other implemented styles of rounding attempt to round to the "nearest
+digit." If the digit D immediately to the right of the rounding place (skipping
+the decimal point) is greater than 5, the number is incremented at the rounding
+place (possibly causing a cascade of incrementation): e.g. when rounding to
+units, 0.9 rounds to 1, and -19.9 rounds to -20. If D < 5, the number is
+similarly truncated at the rounding place: e.g. when rounding to units, 0.4
rounds to 0, and -19.4 rounds to -19.
-However the results of other styles of rounding differ if the
-digit immediately to the right of the rounding place (skipping the
-decimal point) is 5 and if there are no digits, or no digits other
-than 0, after that 5. In such cases:
+However the results of other styles of rounding differ if the digit immediately
+to the right of the rounding place (skipping the decimal point) is 5 and if
+there are no digits, or no digits other than 0, after that 5. In such cases:
=item 'even'
-rounds the digit at the rounding place to 0, 2, 4, 6, or 8
-if it is not already. E.g., when rounding to the first sigdig, 0.45
-becomes 0.4, -0.55 becomes -0.6, but 0.4501 becomes 0.5.
+rounds the digit at the rounding place to 0, 2, 4, 6, or 8 if it is not
+already. E.g., when rounding to the first sigdig, 0.45 becomes 0.4, -0.55
+becomes -0.6, but 0.4501 becomes 0.5.
=item 'odd'
-rounds the digit at the rounding place to 1, 3, 5, 7, or 9 if
-it is not already. E.g., when rounding to the first sigdig, 0.45
-becomes 0.5, -0.55 becomes -0.5, but 0.5501 becomes 0.6.
+rounds the digit at the rounding place to 1, 3, 5, 7, or 9 if it is not
+already. E.g., when rounding to the first sigdig, 0.45 becomes 0.5, -0.55
+becomes -0.5, but 0.5501 becomes 0.6.
=item '+inf'
-round to plus infinity, i.e. always round up. E.g., when
-rounding to the first sigdig, 0.45 becomes 0.5, -0.55 becomes -0.5,
-and 0.4501 also becomes 0.5.
+round to plus infinity, i.e. always round up. E.g., when rounding to the first
+sigdig, 0.45 becomes 0.5, -0.55 becomes -0.5, and 0.4501 also becomes 0.5.
=item '-inf'
-round to minus infinity, i.e. always round down. E.g., when
-rounding to the first sigdig, 0.45 becomes 0.4, -0.55 becomes -0.6,
-but 0.4501 becomes 0.5.
+round to minus infinity, i.e. always round down. E.g., when rounding to the
+first sigdig, 0.45 becomes 0.4, -0.55 becomes -0.6, but 0.4501 becomes 0.5.
=item 'zero'
-round to zero, i.e. positive numbers down, negative ones up.
-E.g., when rounding to the first sigdig, 0.45 becomes 0.4, -0.55
-becomes -0.5, but 0.4501 becomes 0.5.
+round to zero, i.e. positive numbers down, negative ones up. E.g., when
+rounding to the first sigdig, 0.45 becomes 0.4, -0.55 becomes -0.5, but 0.4501
+becomes 0.5.
=item 'common'
-round up if the digit immediately to the right of the rounding place
-is 5 or greater, otherwise round down. E.g., 0.15 becomes 0.2 and
-0.149 becomes 0.1.
+round up if the digit immediately to the right of the rounding place is 5 or
+greater, otherwise round down. E.g., 0.15 becomes 0.2 and 0.149 becomes 0.1.
=back
-The handling of A & P in MBI/MBF (the old core code shipped with Perl
-versions <= 5.7.2) is like this:
+The handling of A & P in MBI/MBF (the old core code shipped with Perl versions
+<= 5.7.2) is like this:
=over
@@ -4714,7 +5841,7 @@ versions <= 5.7.2) is like this:
+ other operations simply create the same number (bneg etc), or
more (bmul) of digits
+ rounding/truncating is only done when explicitly calling one
- of bround or bfround, and never for BigInt (not implemented)
+ of bround or bfround, and never for Math::BigInt (not implemented)
* bsqrt() simply hands its accuracy argument over to bdiv.
* the documentation and the comment in the code indicate two
different ways on how bdiv() determines the maximum number
@@ -4800,10 +5927,10 @@ This is how it works now:
* If A or P are enabled/defined, they are used to round the result of each
operation according to the rules below
- * Negative P is ignored in Math::BigInt, since BigInts never have digits
- after the decimal point
+ * Negative P is ignored in Math::BigInt, since Math::BigInt objects never
+ have digits after the decimal point
* Math::BigFloat uses Math::BigInt internally, but setting A or P inside
- Math::BigInt as globals does not tamper with the parts of a BigFloat.
+ Math::BigInt as globals does not tamper with the parts of a Math::BigFloat.
A flag is used to mark all Math::BigFloat numbers as 'never round'.
=item Precedence
@@ -4925,53 +6052,33 @@ This is how it works now:
=head1 Infinity and Not a Number
-While BigInt has extensive handling of inf and NaN, certain quirks remain.
+While Math::BigInt has extensive handling of inf and NaN, certain quirks
+remain.
=over
=item oct()/hex()
-These perl routines currently (as of Perl v.5.8.6) cannot handle passed
-inf.
+These perl routines currently (as of Perl v.5.8.6) cannot handle passed inf.
- te@linux:~> perl -wle 'print 2 ** 3333'
- Inf
- te@linux:~> perl -wle 'print 2 ** 3333 == 2 ** 3333'
- 1
- te@linux:~> perl -wle 'print oct(2 ** 3333)'
- 0
- te@linux:~> perl -wle 'print hex(2 ** 3333)'
- Illegal hexadecimal digit 'I' ignored at -e line 1.
- 0
+ te@linux:~> perl -wle 'print 2 ** 3333'
+ Inf
+ te@linux:~> perl -wle 'print 2 ** 3333 == 2 ** 3333'
+ 1
+ te@linux:~> perl -wle 'print oct(2 ** 3333)'
+ 0
+ te@linux:~> perl -wle 'print hex(2 ** 3333)'
+ Illegal hexadecimal digit 'I' ignored at -e line 1.
+ 0
The same problems occur if you pass them Math::BigInt->binf() objects. Since
-overloading these routines is not possible, this cannot be fixed from BigInt.
-
-=item ==, !=, <, >, <=, >= with NaNs
-
-BigInt's bcmp() routine currently returns undef to signal that a NaN was
-involved in a comparison. However, the overload code turns that into
-either 1 or '' and thus operations like C<< NaN != NaN >> might return
-wrong values.
-
-=item log(-inf)
-
-C<< log(-inf) >> is highly weird. Since log(-x)=pi*i+log(x), then
-log(-inf)=pi*i+inf. However, since the imaginary part is finite, the real
-infinity "overshadows" it, so the number might as well just be infinity.
-However, the result is a complex number, and since BigInt/BigFloat can only
-have real numbers as results, the result is NaN.
-
-=item exp(), cos(), sin(), atan2()
-
-These all might have problems handling infinity right.
+overloading these routines is not possible, this cannot be fixed from
+Math::BigInt.
=back
=head1 INTERNALS
-The actual numbers are stored as unsigned big integers (with separate sign).
-
You should neither care about nor depend on the internal representation; it
might change without notice. Use B<ONLY> method calls like C<< $x->sign(); >>
instead relying on the internal representation.
@@ -4981,35 +6088,34 @@ instead relying on the internal representation.
Math with the numbers is done (by default) by a module called
C<Math::BigInt::Calc>. This is equivalent to saying:
- use Math::BigInt try => 'Calc';
+ use Math::BigInt try => 'Calc';
You can change this backend library by using:
- use Math::BigInt try => 'GMP';
+ use Math::BigInt try => 'GMP';
-B<Note>: General purpose packages should not be explicit about the library
-to use; let the script author decide which is best.
+B<Note>: General purpose packages should not be explicit about the library to
+use; let the script author decide which is best.
-If your script works with huge numbers and Calc is too slow for them,
-you can also for the loading of one of these libraries and if none
-of them can be used, the code will die:
+If your script works with huge numbers and Calc is too slow for them, you can
+also for the loading of one of these libraries and if none of them can be used,
+the code dies:
- use Math::BigInt only => 'GMP,Pari';
+ use Math::BigInt only => 'GMP,Pari';
The following would first try to find Math::BigInt::Foo, then
Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
- use Math::BigInt try => 'Foo,Math::BigInt::Bar';
+ use Math::BigInt try => 'Foo,Math::BigInt::Bar';
-The library that is loaded last will be used. Note that this can be
-overwritten at any time by loading a different library, and numbers
-constructed with different libraries cannot be used in math operations
-together.
+The library that is loaded last is used. Note that this can be overwritten at
+any time by loading a different library, and numbers constructed with different
+libraries cannot be used in math operations together.
=head3 What library to use?
-B<Note>: General purpose packages should not be explicit about the library
-to use; let the script author decide which is best.
+B<Note>: General purpose packages should not be explicit about the library to
+use; let the script author decide which is best.
L<Math::BigInt::GMP> and L<Math::BigInt::Pari> are in cases involving big
numbers much faster than Calc, however it is slower when dealing with very
@@ -5031,30 +6137,8 @@ The sign is either '+', '-', 'NaN', '+inf' or '-inf'.
A sign of 'NaN' is used to represent the result when input arguments are not
numbers or as a result of 0/0. '+inf' and '-inf' represent plus respectively
-minus infinity. You will get '+inf' when dividing a positive number by 0, and
-'-inf' when dividing any negative number by 0.
-
-=head2 mantissa(), exponent() and parts()
-
-C<mantissa()> and C<exponent()> return the said parts of the BigInt such
-that:
-
- $m = $x->mantissa();
- $e = $x->exponent();
- $y = $m * ( 10 ** $e );
- print "ok\n" if $x == $y;
-
-C<< ($m,$e) = $x->parts() >> is just a shortcut that gives you both of them
-in one go. Both the returned mantissa and exponent have a sign.
-
-Currently, for BigInts C<$e> is always 0, except +inf and -inf, where it is
-C<+inf>; and for NaN, where it is C<NaN>; and for C<$x == 0>, where it is C<1>
-(to be compatible with Math::BigFloat's internal representation of a zero as
-C<0E1>).
-
-C<$m> is currently just a copy of the original number. The relation between
-C<$e> and C<$m> will stay always the same, though their real values might
-change.
+minus infinity. You get '+inf' when dividing a positive number by 0, and '-inf'
+when dividing any negative number by 0.
=head1 EXAMPLES
@@ -5064,18 +6148,18 @@ change.
$x = Math::BigInt->bstr("1234") # string "1234"
$x = "$x"; # same as bstr()
- $x = Math::BigInt->bneg("1234"); # BigInt "-1234"
- $x = Math::BigInt->babs("-12345"); # BigInt "12345"
- $x = Math::BigInt->bnorm("-0.00"); # BigInt "0"
- $x = bigint(1) + bigint(2); # BigInt "3"
- $x = bigint(1) + "2"; # ditto (auto-BigIntify of "2")
- $x = bigint(1); # BigInt "1"
- $x = $x + 5 / 2; # BigInt "3"
- $x = $x ** 3; # BigInt "27"
- $x *= 2; # BigInt "54"
- $x = Math::BigInt->new(0); # BigInt "0"
- $x--; # BigInt "-1"
- $x = Math::BigInt->badd(4,5) # BigInt "9"
+ $x = Math::BigInt->bneg("1234"); # Math::BigInt "-1234"
+ $x = Math::BigInt->babs("-12345"); # Math::BigInt "12345"
+ $x = Math::BigInt->bnorm("-0.00"); # Math::BigInt "0"
+ $x = bigint(1) + bigint(2); # Math::BigInt "3"
+ $x = bigint(1) + "2"; # ditto (auto-Math::BigIntify of "2")
+ $x = bigint(1); # Math::BigInt "1"
+ $x = $x + 5 / 2; # Math::BigInt "3"
+ $x = $x ** 3; # Math::BigInt "27"
+ $x *= 2; # Math::BigInt "54"
+ $x = Math::BigInt->new(0); # Math::BigInt "0"
+ $x--; # Math::BigInt "-1"
+ $x = Math::BigInt->badd(4,5) # Math::BigInt "9"
print $x->bsstr(); # 9e+0
Examples for rounding:
@@ -5110,67 +6194,67 @@ Examples for converting:
=head1 Autocreating constants
After C<use Math::BigInt ':constant'> all the B<integer> decimal, hexadecimal
-and binary constants in the given scope are converted to C<Math::BigInt>.
-This conversion happens at compile time.
+and binary constants in the given scope are converted to C<Math::BigInt>. This
+conversion happens at compile time.
In particular,
perl -MMath::BigInt=:constant -e 'print 2**100,"\n"'
prints the integer value of C<2**100>. Note that without conversion of
-constants the expression 2**100 will be calculated as perl scalar.
+constants the expression 2**100 is calculated using Perl scalars.
-Please note that strings and floating point constants are not affected,
-so that
+Please note that strings and floating point constants are not affected, so that
- use Math::BigInt qw/:constant/;
+ use Math::BigInt qw/:constant/;
- $x = 1234567890123456789012345678901234567890
- + 123456789123456789;
- $y = '1234567890123456789012345678901234567890'
- + '123456789123456789';
+ $x = 1234567890123456789012345678901234567890
+ + 123456789123456789;
+ $y = '1234567890123456789012345678901234567890'
+ + '123456789123456789';
-do not work. You need an explicit Math::BigInt->new() around one of the
-operands. You should also quote large constants to protect loss of precision:
+does not give you what you expect. You need an explicit Math::BigInt->new()
+around one of the operands. You should also quote large constants to protect
+loss of precision:
- use Math::BigInt;
+ use Math::BigInt;
- $x = Math::BigInt->new('1234567889123456789123456789123456789');
+ $x = Math::BigInt->new('1234567889123456789123456789123456789');
Without the quotes Perl would convert the large number to a floating point
-constant at compile time and then hand the result to BigInt, which results in
-an truncated result or a NaN.
+constant at compile time and then hand the result to Math::BigInt, which
+results in an truncated result or a NaN.
This also applies to integers that look like floating point constants:
- use Math::BigInt ':constant';
+ use Math::BigInt ':constant';
- print ref(123e2),"\n";
- print ref(123.2e2),"\n";
+ print ref(123e2),"\n";
+ print ref(123.2e2),"\n";
-will print nothing but newlines. Use either L<bignum> or L<Math::BigFloat>
-to get this to work.
+prints nothing but newlines. Use either L<bignum> or L<Math::BigFloat> to get
+this to work.
=head1 PERFORMANCE
Using the form $x += $y; etc over $x = $x + $y is faster, since a copy of $x
must be made in the second case. For long numbers, the copy can eat up to 20%
of the work (in the case of addition/subtraction, less for
-multiplication/division). If $y is very small compared to $x, the form
-$x += $y is MUCH faster than $x = $x + $y since making the copy of $x takes
-more time then the actual addition.
+multiplication/division). If $y is very small compared to $x, the form $x += $y
+is MUCH faster than $x = $x + $y since making the copy of $x takes more time
+then the actual addition.
With a technique called copy-on-write, the cost of copying with overload could
be minimized or even completely avoided. A test implementation of COW did show
-performance gains for overloaded math, but introduced a performance loss due
-to a constant overhead for all other operations. So Math::BigInt does currently
+performance gains for overloaded math, but introduced a performance loss due to
+a constant overhead for all other operations. So Math::BigInt does currently
not COW.
The rewritten version of this module (vs. v0.01) is slower on certain
operations, like C<new()>, C<bstr()> and C<numify()>. The reason are that it
does now more work and handles much more cases. The time spent in these
-operations is usually gained in the other math operations so that code on
-the average should get (much) faster. If they don't, please contact the author.
+operations is usually gained in the other math operations so that code on the
+average should get (much) faster. If they don't, please contact the author.
Some operations may be slower for small numbers, but are significantly faster
for big numbers. Other operations are now constant (O(1), like C<bneg()>,
@@ -5199,9 +6283,8 @@ work, as long as a few simple rules are followed:
=item *
The public API must remain consistent, i.e. if a sub-class is overloading
-addition, the sub-class must use the same name, in this case badd(). The
-reason for this is that Math::BigInt is optimized to call the object methods
-directly.
+addition, the sub-class must use the same name, in this case badd(). The reason
+for this is that Math::BigInt is optimized to call the object methods directly.
=item *
@@ -5212,41 +6295,41 @@ additional keys can be added, like C<< $x->{_custom} >>.
Accessor functions are available for all existing object hash keys and should
be used instead of directly accessing the internal hash keys. The reason for
-this is that Math::BigInt itself has a pluggable interface which permits it
-to support different storage methods.
+this is that Math::BigInt itself has a pluggable interface which permits it to
+support different storage methods.
=back
More complex sub-classes may have to replicate more of the logic internal of
-Math::BigInt if they need to change more basic behaviors. A subclass that
-needs to merely change the output only needs to overload C<bstr()>.
+Math::BigInt if they need to change more basic behaviors. A subclass that needs
+to merely change the output only needs to overload C<bstr()>.
All other object methods and overloaded functions can be directly inherited
from the parent class.
-At the very minimum, any subclass will need to provide its own C<new()> and can
+At the very minimum, any subclass needs to provide its own C<new()> and can
store additional hash keys in the object. There are also some package globals
that must be defined, e.g.:
- # Globals
- $accuracy = undef;
- $precision = -2; # round to 2 decimal places
- $round_mode = 'even';
- $div_scale = 40;
+ # Globals
+ $accuracy = undef;
+ $precision = -2; # round to 2 decimal places
+ $round_mode = 'even';
+ $div_scale = 40;
Additionally, you might want to provide the following two globals to allow
auto-upgrading and auto-downgrading to work correctly:
- $upgrade = undef;
- $downgrade = undef;
+ $upgrade = undef;
+ $downgrade = undef;
This allows Math::BigInt to correctly retrieve package globals from the
-subclass, like C<$SubClass::precision>. See t/Math/BigInt/Subclass.pm or
+subclass, like C<$SubClass::precision>. See t/Math/BigInt/Subclass.pm or
t/Math/BigFloat/SubClass.pm completely functional subclass examples.
Don't forget to
- use overload;
+ use overload;
in your subclass to automatically inherit the overloading from the parent. If
you like, you can change part of the overloading, look at Math::String for an
@@ -5256,62 +6339,43 @@ example.
When used like this:
- use Math::BigInt upgrade => 'Foo::Bar';
+ use Math::BigInt upgrade => 'Foo::Bar';
-certain operations will 'upgrade' their calculation and thus the result to
-the class Foo::Bar. Usually this is used in conjunction with Math::BigFloat:
+certain operations 'upgrade' their calculation and thus the result to the class
+Foo::Bar. Usually this is used in conjunction with Math::BigFloat:
- use Math::BigInt upgrade => 'Math::BigFloat';
+ use Math::BigInt upgrade => 'Math::BigFloat';
As a shortcut, you can use the module L<bignum>:
- use bignum;
+ use bignum;
Also good for one-liners:
- perl -Mbignum -le 'print 2 ** 255'
+ perl -Mbignum -le 'print 2 ** 255'
-This makes it possible to mix arguments of different classes (as in 2.5 + 2)
-as well es preserve accuracy (as in sqrt(3)).
+This makes it possible to mix arguments of different classes (as in 2.5 + 2) as
+well es preserve accuracy (as in sqrt(3)).
Beware: This feature is not fully implemented yet.
=head2 Auto-upgrade
-The following methods upgrade themselves unconditionally; that is if upgrade
-is in effect, they will always hand up their work:
+The following methods upgrade themselves unconditionally; that is if upgrade is
+in effect, they always hands up their work:
-=over
-
-=item bsqrt()
+ div bsqrt blog bexp bpi bsin bcos batan batan2
-=item div()
-
-=item blog()
-
-=item bexp()
-
-=item bpi()
-
-=item bcos()
-
-=item bsin()
-
-=item batan2()
-
-=item batan()
-
-=back
-
-All other methods upgrade themselves only when one (or all) of their
-arguments are of the class mentioned in $upgrade.
+All other methods upgrade themselves only when one (or all) of their arguments
+are of the class mentioned in $upgrade.
=head1 EXPORTS
-C<Math::BigInt> exports nothing by default, but can export the following methods:
+C<Math::BigInt> exports nothing by default, but can export the following
+methods:
- bgcd
- blcm
+ bgcd
+ blcm
=head1 CAVEATS
@@ -5320,242 +6384,120 @@ known to be troublesome:
=over
-=item bstr(), bsstr() and 'cmp'
+=item Comparing numbers as strings
-Both C<bstr()> and C<bsstr()> as well as automated stringify via overload now
-drop the leading '+'. The old code would return '+3', the new returns '3'.
-This is to be consistent with Perl and to make C<cmp> (especially with
-overloading) to work as you expect. It also solves problems with C<Test.pm>
-and L<Test::More>, which stringify arguments before comparing them.
+Both C<bstr()> and C<bsstr()> as well as stringify via overload drop the
+leading '+'. This is to be consistent with Perl and to make C<cmp> (especially
+with overloading) to work as you expect. It also solves problems with
+C<Test.pm> and L<Test::More>, which stringify arguments before comparing them.
Mark Biggar said, when asked about to drop the '+' altogether, or make only
C<cmp> work:
- I agree (with the first alternative), don't add the '+' on positive
- numbers. It's not as important anymore with the new internal
- form for numbers. It made doing things like abs and neg easier,
- but those have to be done differently now anyway.
+ I agree (with the first alternative), don't add the '+' on positive
+ numbers. It's not as important anymore with the new internal form
+ for numbers. It made doing things like abs and neg easier, but
+ those have to be done differently now anyway.
-So, the following examples will now work all as expected:
+So, the following examples now works as expected:
- use Test::More tests => 1;
- use Math::BigInt;
+ use Test::More tests => 1;
+ use Math::BigInt;
- my $x = Math::BigInt -> new(3*3);
- my $y = Math::BigInt -> new(3*3);
+ my $x = Math::BigInt -> new(3*3);
+ my $y = Math::BigInt -> new(3*3);
- is ($x,3*3, 'multiplication');
- print "$x eq 9" if $x eq $y;
- print "$x eq 9" if $x eq '9';
- print "$x eq 9" if $x eq 3*3;
+ is($x,3*3, 'multiplication');
+ print "$x eq 9" if $x eq $y;
+ print "$x eq 9" if $x eq '9';
+ print "$x eq 9" if $x eq 3*3;
Additionally, the following still works:
- print "$x == 9" if $x == $y;
- print "$x == 9" if $x == 9;
- print "$x == 9" if $x == 3*3;
+ print "$x == 9" if $x == $y;
+ print "$x == 9" if $x == 9;
+ print "$x == 9" if $x == 3*3;
There is now a C<bsstr()> method to get the string in scientific notation aka
C<1e+2> instead of C<100>. Be advised that overloaded 'eq' always uses bstr()
-for comparison, but Perl will represent some numbers as 100 and others
-as 1e+308. If in doubt, convert both arguments to Math::BigInt before
-comparing them as strings:
+for comparison, but Perl represents some numbers as 100 and others as 1e+308.
+If in doubt, convert both arguments to Math::BigInt before comparing them as
+strings:
- use Test::More tests => 3;
- use Math::BigInt;
+ use Test::More tests => 3;
+ use Math::BigInt;
- $x = Math::BigInt->new('1e56'); $y = 1e56;
- is ($x,$y); # will fail
- is ($x->bsstr(),$y); # okay
- $y = Math::BigInt->new($y);
- is ($x,$y); # okay
+ $x = Math::BigInt->new('1e56'); $y = 1e56;
+ is($x,$y); # fails
+ is($x->bsstr(),$y); # okay
+ $y = Math::BigInt->new($y);
+ is($x,$y); # okay
-Alternatively, simply use C<< <=> >> for comparisons, this will get it
-always right. There is not yet a way to get a number automatically represented
-as a string that matches exactly the way Perl represents it.
+Alternatively, simply use C<< <=> >> for comparisons, this always gets it
+right. There is not yet a way to get a number automatically represented as a
+string that matches exactly the way Perl represents it.
See also the section about L<Infinity and Not a Number> for problems in
comparing NaNs.
=item int()
-C<int()> will return (at least for Perl v5.7.1 and up) another BigInt, not a
+C<int()> returns (at least for Perl v5.7.1 and up) another Math::BigInt, not a
Perl scalar:
- $x = Math::BigInt->new(123);
- $y = int($x); # BigInt 123
- $x = Math::BigFloat->new(123.45);
- $y = int($x); # BigInt 123
-
-In all Perl versions you can use C<as_number()> or C<as_int> for the same
-effect:
-
- $x = Math::BigFloat->new(123.45);
- $y = $x->as_number(); # BigInt 123
- $y = $x->as_int(); # ditto
-
-This also works for other subclasses, like Math::String.
+ $x = Math::BigInt->new(123);
+ $y = int($x); # 123 as a Math::BigInt
+ $x = Math::BigFloat->new(123.45);
+ $y = int($x); # 123 as a Math::BigFloat
If you want a real Perl scalar, use C<numify()>:
- $y = $x->numify(); # 123 as scalar
+ $y = $x->numify(); # 123 as a scalar
-This is seldom necessary, though, because this is done automatically, like
-when you access an array:
-
- $z = $array[$x]; # does work automatically
-
-=item length()
-
-The following will probably not do what you expect:
-
- $c = Math::BigInt->new(123);
- print $c->length(),"\n"; # prints 30
-
-It prints both the number of digits in the number and in the fraction part
-since print calls C<length()> in list context. Use something like:
+This is seldom necessary, though, because this is done automatically, like when
+you access an array:
- print scalar $c->length(),"\n"; # prints 3
-
-=item bdiv()
-
-The following will probably not do what you expect:
-
- print $c->bdiv(10000),"\n";
-
-It prints both quotient and remainder since print calls C<bdiv()> in list
-context. Also, C<bdiv()> will modify $c, so be careful. You probably want
-to use
-
- print $c / 10000,"\n";
-
-or, if you want to modify $c instead,
-
- print scalar $c->bdiv(10000),"\n";
-
-The quotient is always the greatest integer less than or equal to the
-real-valued quotient of the two operands, and the remainder (when it is
-non-zero) always has the same sign as the second operand; so, for
-example,
-
- 1 / 4 => ( 0, 1)
- 1 / -4 => (-1,-3)
- -3 / 4 => (-1, 1)
- -3 / -4 => ( 0,-3)
- -11 / 2 => (-5,1)
- 11 /-2 => (-5,-1)
-
-As a consequence, the behavior of the operator % agrees with the
-behavior of Perl's built-in % operator (as documented in the perlop
-manpage), and the equation
-
- $x == ($x / $y) * $y + ($x % $y)
-
-holds true for any $x and $y, which justifies calling the two return
-values of bdiv() the quotient and remainder. The only exception to this rule
-are when $y == 0 and $x is negative, then the remainder will also be
-negative. See below under "infinity handling" for the reasoning behind this.
-
-Perl's 'use integer;' changes the behaviour of % and / for scalars, but will
-not change BigInt's way to do things. This is because under 'use integer' Perl
-will do what the underlying C thinks is right and this is different for each
-system. If you need BigInt's behaving exactly like Perl's 'use integer', bug
-the author to implement it ;)
-
-=item infinity handling
-
-Here are some examples that explain the reasons why certain results occur while
-handling infinity:
-
-The following table shows the result of the division and the remainder, so that
-the equation above holds true. Some "ordinary" cases are strewn in to show more
-clearly the reasoning:
-
- A / B = C, R so that C * B + R = A
- =========================================================
- 5 / 8 = 0, 5 0 * 8 + 5 = 5
- 0 / 8 = 0, 0 0 * 8 + 0 = 0
- 0 / inf = 0, 0 0 * inf + 0 = 0
- 0 /-inf = 0, 0 0 * -inf + 0 = 0
- 5 / inf = 0, 5 0 * inf + 5 = 5
- 5 /-inf = 0, 5 0 * -inf + 5 = 5
- -5/ inf = 0, -5 0 * inf + -5 = -5
- -5/-inf = 0, -5 0 * -inf + -5 = -5
- inf/ 5 = inf, 0 inf * 5 + 0 = inf
- -inf/ 5 = -inf, 0 -inf * 5 + 0 = -inf
- inf/ -5 = -inf, 0 -inf * -5 + 0 = inf
- -inf/ -5 = inf, 0 inf * -5 + 0 = -inf
- 5/ 5 = 1, 0 1 * 5 + 0 = 5
- -5/ -5 = 1, 0 1 * -5 + 0 = -5
- inf/ inf = 1, 0 1 * inf + 0 = inf
- -inf/-inf = 1, 0 1 * -inf + 0 = -inf
- inf/-inf = -1, 0 -1 * -inf + 0 = inf
- -inf/ inf = -1, 0 1 * -inf + 0 = -inf
- 8/ 0 = inf, 8 inf * 0 + 8 = 8
- inf/ 0 = inf, inf inf * 0 + inf = inf
- 0/ 0 = NaN
-
-These cases below violate the "remainder has the sign of the second of the two
-arguments", since they wouldn't match up otherwise.
-
- A / B = C, R so that C * B + R = A
- ========================================================
- -inf/ 0 = -inf, -inf -inf * 0 + inf = -inf
- -8/ 0 = -inf, -8 -inf * 0 + 8 = -8
+ $z = $array[$x]; # does work automatically
=item Modifying and =
Beware of:
- $x = Math::BigFloat->new(5);
- $y = $x;
+ $x = Math::BigFloat->new(5);
+ $y = $x;
-It will not do what you think, e.g. making a copy of $x. Instead it just makes
-a second reference to the B<same> object and stores it in $y. Thus anything
-that modifies $x (except overloaded operators) will modify $y, and vice versa.
-Or in other words, C<=> is only safe if you modify your BigInts only via
-overloaded math. As soon as you use a method call it breaks:
+This makes a second reference to the B<same> object and stores it in $y. Thus
+anything that modifies $x (except overloaded operators) also modifies $y, and
+vice versa. Or in other words, C<=> is only safe if you modify your
+Math::BigInt objects only via overloaded math. As soon as you use a method call
+it breaks:
- $x->bmul(2);
- print "$x, $y\n"; # prints '10, 10'
+ $x->bmul(2);
+ print "$x, $y\n"; # prints '10, 10'
If you want a true copy of $x, use:
- $y = $x->copy();
+ $y = $x->copy();
-You can also chain the calls like this, this will make first a copy and then
+You can also chain the calls like this, this first makes a copy and then
multiply it by 2:
- $y = $x->copy()->bmul(2);
+ $y = $x->copy()->bmul(2);
See also the documentation for overload.pm regarding C<=>.
-=item bpow
-
-C<bpow()> (and the rounding functions) now modifies the first argument and
-returns it, unlike the old code which left it alone and only returned the
-result. This is to be consistent with C<badd()> etc. The first three will
-modify $x, the last one won't:
-
- print bpow($x,$i),"\n"; # modify $x
- print $x->bpow($i),"\n"; # ditto
- print $x **= $i,"\n"; # the same
- print $x ** $i,"\n"; # leave $x alone
-
-The form C<$x **= $y> is faster than C<$x = $x ** $y;>, though.
-
=item Overloading -$x
The following:
- $x = -$x;
+ $x = -$x;
is slower than
- $x->bneg();
+ $x->bneg();
since overload calls C<sub($x,0,1);> instead of C<neg($x)>. The first variant
-needs to preserve $x since it does not know that it later will get overwritten.
+needs to preserve $x since it does not know that it later gets overwritten.
This makes a copy of $x and takes O(N), but $x->bneg() is O(1).
=item Mixing different object types
@@ -5564,80 +6506,58 @@ With overloaded operators, it is the first (dominating) operand that determines
which method is called. Here are some examples showing what actually gets
called in various cases.
- use Math::BigInt;
- use Math::BigFloat;
-
- $mbf = Math::BigFloat->new(5);
- $mbi2 = Math::BigInt->new(5);
- $mbi = Math::BigInt->new(2);
- # what actually gets called:
- $float = $mbf + $mbi; # $mbf->badd($mbi)
- $float = $mbf / $mbi; # $mbf->bdiv($mbi)
- $integer = $mbi + $mbf; # $mbi->badd($mbf)
- $integer = $mbi2 / $mbi; # $mbi2->bdiv($mbi)
- $integer = $mbi2 / $mbf; # $mbi2->bdiv($mbf)
-
-For instance, Math::BigInt->bdiv() will always return a Math::BigInt, regardless of
+ use Math::BigInt;
+ use Math::BigFloat;
+
+ $mbf = Math::BigFloat->new(5);
+ $mbi2 = Math::BigInt->new(5);
+ $mbi = Math::BigInt->new(2);
+ # what actually gets called:
+ $float = $mbf + $mbi; # $mbf->badd($mbi)
+ $float = $mbf / $mbi; # $mbf->bdiv($mbi)
+ $integer = $mbi + $mbf; # $mbi->badd($mbf)
+ $integer = $mbi2 / $mbi; # $mbi2->bdiv($mbi)
+ $integer = $mbi2 / $mbf; # $mbi2->bdiv($mbf)
+
+For instance, Math::BigInt->bdiv() always returns a Math::BigInt, regardless of
whether the second operant is a Math::BigFloat. To get a Math::BigFloat you
either need to call the operation manually, make sure each operand already is a
Math::BigFloat, or cast to that type via Math::BigFloat->new():
- $float = Math::BigFloat->new($mbi2) / $mbi; # = 2.5
+ $float = Math::BigFloat->new($mbi2) / $mbi; # = 2.5
Beware of casting the entire expression, as this would cast the
result, at which point it is too late:
- $float = Math::BigFloat->new($mbi2 / $mbi); # = 2
+ $float = Math::BigFloat->new($mbi2 / $mbi); # = 2
Beware also of the order of more complicated expressions like:
- $integer = ($mbi2 + $mbi) / $mbf; # int / float => int
- $integer = $mbi2 / Math::BigFloat->new($mbi); # ditto
+ $integer = ($mbi2 + $mbi) / $mbf; # int / float => int
+ $integer = $mbi2 / Math::BigFloat->new($mbi); # ditto
If in doubt, break the expression into simpler terms, or cast all operands
to the desired resulting type.
Scalar values are a bit different, since:
- $float = 2 + $mbf;
- $float = $mbf + 2;
+ $float = 2 + $mbf;
+ $float = $mbf + 2;
-will both result in the proper type due to the way the overloaded math works.
+both result in the proper type due to the way the overloaded math works.
This section also applies to other overloaded math packages, like Math::String.
One solution to you problem might be autoupgrading|upgrading. See the
pragmas L<bignum>, L<bigint> and L<bigrat> for an easy way to do this.
-=item bsqrt()
-
-C<bsqrt()> works only good if the result is a big integer, e.g. the square
-root of 144 is 12, but from 12 the square root is 3, regardless of rounding
-mode. The reason is that the result is always truncated to an integer.
-
-If you want a better approximation of the square root, then use:
-
- $x = Math::BigFloat->new(12);
- Math::BigFloat->precision(0);
- Math::BigFloat->round_mode('even');
- print $x->copy->bsqrt(),"\n"; # 4
-
- Math::BigFloat->precision(2);
- print $x->bsqrt(),"\n"; # 3.46
- print $x->bsqrt(3),"\n"; # 3.464
-
-=item brsft()
-
-For negative numbers in base see also L<brsft|/brsft()>.
-
=back
=head1 BUGS
Please report any bugs or feature requests to
C<bug-math-bigint at rt.cpan.org>, or through the web interface at
-L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
-(requires login).
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt> (requires login).
We will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm
index 1a7e4af9e9b..571006963f0 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm
@@ -4,8 +4,12 @@ use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999715';
-$VERSION = eval $VERSION;
+use Carp;
+use Math::BigInt::Lib;
+
+our $VERSION = '1.999811';
+
+our @ISA = ('Math::BigInt::Lib');
# Package to store unsigned big integers in decimal and do math with them
@@ -33,211 +37,218 @@ $VERSION = eval $VERSION;
# announce that we are compatible with MBI v1.83 and up
sub api_version () { 2; }
-
+
# constants for easier life
-my ($BASE,$BASE_LEN,$RBASE,$MAX_VAL);
-my ($AND_BITS,$XOR_BITS,$OR_BITS);
-my ($AND_MASK,$XOR_MASK,$OR_MASK);
-
-sub _base_len
- {
- # Set/get the BASE_LEN and assorted other, connected values.
- # Used only by the testsuite, the set variant is used only by the BEGIN
- # block below:
- shift;
-
- my ($b, $int) = @_;
- if (defined $b)
- {
- # avoid redefinitions
- undef &_mul;
- undef &_div;
-
- if ($] >= 5.008 && $int && $b > 7)
- {
- $BASE_LEN = $b;
- *_mul = \&_mul_use_div_64;
- *_div = \&_div_use_div_64;
- $BASE = int("1e".$BASE_LEN);
- $MAX_VAL = $BASE-1;
- return $BASE_LEN unless wantarray;
- return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL,);
- }
-
- # find whether we can use mul or div in mul()/div()
- $BASE_LEN = $b+1;
- my $caught = 0;
- while (--$BASE_LEN > 5)
- {
- $BASE = int("1e".$BASE_LEN);
- $RBASE = abs('1e-'.$BASE_LEN); # see USE_MUL
- $caught = 0;
- $caught += 1 if (int($BASE * $RBASE) != 1); # should be 1
- $caught += 2 if (int($BASE / $BASE) != 1); # should be 1
- last if $caught != 3;
- }
- $BASE = int("1e".$BASE_LEN);
- $RBASE = abs('1e-'.$BASE_LEN); # see USE_MUL
- $MAX_VAL = $BASE-1;
-
- # ($caught & 1) != 0 => cannot use MUL
- # ($caught & 2) != 0 => cannot use DIV
- if ($caught == 2) # 2
- {
- # must USE_MUL since we cannot use DIV
- *_mul = \&_mul_use_mul;
- *_div = \&_div_use_mul;
- }
- else # 0 or 1
- {
- # can USE_DIV instead
- *_mul = \&_mul_use_div;
- *_div = \&_div_use_div;
- }
- }
- return $BASE_LEN unless wantarray;
- return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL);
- }
+my ($BASE, $BASE_LEN, $RBASE, $MAX_VAL);
+my ($AND_BITS, $XOR_BITS, $OR_BITS);
+my ($AND_MASK, $XOR_MASK, $OR_MASK);
+
+sub _base_len {
+ # Set/get the BASE_LEN and assorted other, related values.
+ # Used only by the testsuite, the set variant is used only by the BEGIN
+ # block below:
+
+ my ($class, $b, $int) = @_;
+ if (defined $b) {
+ # avoid redefinitions
+ undef &_mul;
+ undef &_div;
+
+ if ($] >= 5.008 && $int && $b > 7) {
+ $BASE_LEN = $b;
+ *_mul = \&_mul_use_div_64;
+ *_div = \&_div_use_div_64;
+ $BASE = int("1e" . $BASE_LEN);
+ $MAX_VAL = $BASE-1;
+ return $BASE_LEN unless wantarray;
+ return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL);
+ }
+
+ # find whether we can use mul or div in mul()/div()
+ $BASE_LEN = $b + 1;
+ my $caught = 0;
+ while (--$BASE_LEN > 5) {
+ $BASE = int("1e" . $BASE_LEN);
+ $RBASE = abs('1e-' . $BASE_LEN); # see USE_MUL
+ $caught = 0;
+ $caught += 1 if (int($BASE * $RBASE) != 1); # should be 1
+ $caught += 2 if (int($BASE / $BASE) != 1); # should be 1
+ last if $caught != 3;
+ }
+ $BASE = int("1e" . $BASE_LEN);
+ $RBASE = abs('1e-' . $BASE_LEN); # see USE_MUL
+ $MAX_VAL = $BASE-1;
+
+ # ($caught & 1) != 0 => cannot use MUL
+ # ($caught & 2) != 0 => cannot use DIV
+ if ($caught == 2) # 2
+ {
+ # must USE_MUL since we cannot use DIV
+ *_mul = \&_mul_use_mul;
+ *_div = \&_div_use_mul;
+ } else # 0 or 1
+ {
+ # can USE_DIV instead
+ *_mul = \&_mul_use_div;
+ *_div = \&_div_use_div;
+ }
+ }
+ return $BASE_LEN unless wantarray;
+ return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL);
+}
sub _new {
# Given a string representing an integer, returns a reference to an array
# of integers, where each integer represents a chunk of the original input
- # integer. Assumes normalized value as input.
+ # integer.
- my ($proto, $str) = @_;
+ my ($class, $str) = @_;
+ #unless ($str =~ /^([1-9]\d*|0)\z/) {
+ # require Carp;
+ # Carp::croak("Invalid input string '$str'");
+ #}
my $input_len = length($str) - 1;
# Shortcut for small numbers.
- return [ int($str) ] if $input_len < $BASE_LEN;
+ return bless [ $str ], $class if $input_len < $BASE_LEN;
my $format = "a" . (($input_len % $BASE_LEN) + 1);
$format .= $] < 5.008 ? "a$BASE_LEN" x int($input_len / $BASE_LEN)
: "(a$BASE_LEN)*";
- [ reverse(map { 0 + $_ } unpack($format, $str)) ];
+ my $self = [ reverse(map { 0 + $_ } unpack($format, $str)) ];
+ return bless $self, $class;
}
-BEGIN
- {
- # from Daniel Pfeiffer: determine largest group of digits that is precisely
- # multipliable with itself plus carry
- # Test now changed to expect the proper pattern, not a result off by 1 or 2
- my ($e, $num) = 3; # lowest value we will use is 3+1-1 = 3
- do {
- $num = '9' x ++$e;
- $num *= $num + 1;
- } while $num =~ /9{$e}0{$e}/; # must be a certain pattern
- $e--; # last test failed, so retract one step
- # the limits below brush the problems with the test above under the rug:
- # the test should be able to find the proper $e automatically
- $e = 5 if $^O =~ /^uts/; # UTS get's some special treatment
- $e = 5 if $^O =~ /^unicos/; # unicos is also problematic (6 seems to work
- # there, but we play safe)
-
- my $int = 0;
- if ($e > 7)
- {
+BEGIN {
+ # from Daniel Pfeiffer: determine largest group of digits that is precisely
+ # multipliable with itself plus carry
+ # Test now changed to expect the proper pattern, not a result off by 1 or 2
+ my ($e, $num) = 3; # lowest value we will use is 3+1-1 = 3
+ do {
+ $num = '9' x ++$e;
+ $num *= $num + 1;
+ } while $num =~ /9{$e}0{$e}/; # must be a certain pattern
+ $e--; # last test failed, so retract one step
+ # the limits below brush the problems with the test above under the rug:
+ # the test should be able to find the proper $e automatically
+ $e = 5 if $^O =~ /^uts/; # UTS get's some special treatment
+ $e = 5 if $^O =~ /^unicos/; # unicos is also problematic (6 seems to work
+ # there, but we play safe)
+
+ my $int = 0;
+ if ($e > 7) {
+ use integer;
+ my $e1 = 7;
+ $num = 7;
+ do {
+ $num = ('9' x ++$e1) + 0;
+ $num *= $num + 1;
+ } while ("$num" =~ /9{$e1}0{$e1}/); # must be a certain pattern
+ $e1--; # last test failed, so retract one step
+ if ($e1 > 7) {
+ $int = 1;
+ $e = $e1;
+ }
+ }
+
+ __PACKAGE__ -> _base_len($e, $int); # set and store
+
use integer;
- my $e1 = 7;
- $num = 7;
- do
- {
- $num = ('9' x ++$e1) + 0;
- $num *= $num + 1;
- } while ("$num" =~ /9{$e1}0{$e1}/); # must be a certain pattern
- $e1--; # last test failed, so retract one step
- if ($e1 > 7)
- {
- $int = 1; $e = $e1;
- }
- }
-
- __PACKAGE__->_base_len($e,$int); # set and store
-
- use integer;
- # find out how many bits _and, _or and _xor can take (old default = 16)
- # I don't think anybody has yet 128 bit scalars, so let's play safe.
- local $^W = 0; # don't warn about 'nonportable number'
- $AND_BITS = 15; $XOR_BITS = 15; $OR_BITS = 15;
-
- # find max bits, we will not go higher than numberofbits that fit into $BASE
- # to make _and etc simpler (and faster for smaller, slower for large numbers)
- my $max = 16;
- while (2 ** $max < $BASE) { $max++; }
- {
- no integer;
- $max = 16 if $] < 5.006; # older Perls might not take >16 too well
- }
- my ($x,$y,$z);
- do {
- $AND_BITS++;
- $x = CORE::oct('0b' . '1' x $AND_BITS); $y = $x & $x;
- $z = (2 ** $AND_BITS) - 1;
+ # find out how many bits _and, _or and _xor can take (old default = 16)
+ # I don't think anybody has yet 128 bit scalars, so let's play safe.
+ local $^W = 0; # don't warn about 'nonportable number'
+ $AND_BITS = 15;
+ $XOR_BITS = 15;
+ $OR_BITS = 15;
+
+ # find max bits, we will not go higher than numberofbits that fit into $BASE
+ # to make _and etc simpler (and faster for smaller, slower for large numbers)
+ my $max = 16;
+ while (2 ** $max < $BASE) {
+ $max++;
+ }
+ {
+ no integer;
+ $max = 16 if $] < 5.006; # older Perls might not take >16 too well
+ }
+ my ($x, $y, $z);
+
+ do {
+ $AND_BITS++;
+ $x = CORE::oct('0b' . '1' x $AND_BITS);
+ $y = $x & $x;
+ $z = (2 ** $AND_BITS) - 1;
} while ($AND_BITS < $max && $x == $z && $y == $x);
- $AND_BITS --; # retreat one step
- do {
- $XOR_BITS++;
- $x = CORE::oct('0b' . '1' x $XOR_BITS); $y = $x ^ 0;
- $z = (2 ** $XOR_BITS) - 1;
+ $AND_BITS --; # retreat one step
+
+ do {
+ $XOR_BITS++;
+ $x = CORE::oct('0b' . '1' x $XOR_BITS);
+ $y = $x ^ 0;
+ $z = (2 ** $XOR_BITS) - 1;
} while ($XOR_BITS < $max && $x == $z && $y == $x);
- $XOR_BITS --; # retreat one step
- do {
- $OR_BITS++;
- $x = CORE::oct('0b' . '1' x $OR_BITS); $y = $x | $x;
- $z = (2 ** $OR_BITS) - 1;
+ $XOR_BITS --; # retreat one step
+
+ do {
+ $OR_BITS++;
+ $x = CORE::oct('0b' . '1' x $OR_BITS);
+ $y = $x | $x;
+ $z = (2 ** $OR_BITS) - 1;
} while ($OR_BITS < $max && $x == $z && $y == $x);
- $OR_BITS --; # retreat one step
-
- $AND_MASK = __PACKAGE__->_new( ( 2 ** $AND_BITS ));
- $XOR_MASK = __PACKAGE__->_new( ( 2 ** $XOR_BITS ));
- $OR_MASK = __PACKAGE__->_new( ( 2 ** $OR_BITS ));
+ $OR_BITS--; # retreat one step
+
+ $AND_MASK = __PACKAGE__->_new(( 2 ** $AND_BITS ));
+ $XOR_MASK = __PACKAGE__->_new(( 2 ** $XOR_BITS ));
+ $OR_MASK = __PACKAGE__->_new(( 2 ** $OR_BITS ));
- # We can compute the approximate length no faster than the real length:
- *_alen = \&_len;
- }
+ # We can compute the approximate length no faster than the real length:
+ *_alen = \&_len;
+}
###############################################################################
-sub _zero
- {
- # create a zero
- [ 0 ];
- }
-
-sub _one
- {
- # create a one
- [ 1 ];
- }
-
-sub _two
- {
- # create a two (used internally for shifting)
- [ 2 ];
- }
-
-sub _ten
- {
- # create a 10 (used internally for shifting)
- [ 10 ];
- }
-
-sub _1ex
- {
- # create a 1Ex
- my $rem = $_[1] % $BASE_LEN; # remainder
- my $parts = $_[1] / $BASE_LEN; # parts
-
- # 000000, 000000, 100
- [ (0) x $parts, '1' . ('0' x $rem) ];
- }
-
-sub _copy
- {
- # make a true copy
- [ @{$_[1]} ];
- }
+sub _zero {
+ # create a zero
+ my $class = shift;
+ return bless [ 0 ], $class;
+}
+
+sub _one {
+ # create a one
+ my $class = shift;
+ return bless [ 1 ], $class;
+}
+
+sub _two {
+ # create a two
+ my $class = shift;
+ return bless [ 2 ], $class;
+}
+
+sub _ten {
+ # create a 10
+ my $class = shift;
+ bless [ 10 ], $class;
+}
+
+sub _1ex {
+ # create a 1Ex
+ my $class = shift;
+
+ my $rem = $_[0] % $BASE_LEN; # remainder
+ my $parts = $_[0] / $BASE_LEN; # parts
+
+ # 000000, 000000, 100
+ bless [ (0) x $parts, '1' . ('0' x $rem) ], $class;
+}
+
+sub _copy {
+ # make a true copy
+ my $class = shift;
+ return bless [ @{ $_[0] } ], $class;
+}
# catch and throw away
sub import { }
@@ -250,9 +261,9 @@ sub _str {
# format is always normalized, i.e., no leading zeros.
my $ary = $_[1];
- my $idx = $#$ary; # index of last element
+ my $idx = $#$ary; # index of last element
- if ($idx < 0) { # should not happen
+ if ($idx < 0) { # should not happen
require Carp;
Carp::croak("$_[1] has no elements");
}
@@ -260,24 +271,21 @@ sub _str {
# Handle first one differently, since it should not have any leading zeros.
my $ret = int($ary->[$idx]);
if ($idx > 0) {
- $idx--;
- # Interestingly, the pre-padd method uses more time
- # the old grep variant takes longer (14 vs. 10 sec)
+ # Interestingly, the pre-padd method uses more time.
+ # The old grep variant takes longer (14 vs. 10 sec).
my $z = '0' x ($BASE_LEN - 1);
- while ($idx >= 0) {
+ while (--$idx >= 0) {
$ret .= substr($z . $ary->[$idx], -$BASE_LEN);
- $idx--;
}
}
$ret;
}
-sub _num
- {
+sub _num {
# Make a Perl scalar number (int/float) from a BigInt object.
my $x = $_[1];
- return 0 + $x->[0] if scalar @$x == 1; # below $BASE
+ return $x->[0] if @$x == 1; # below $BASE
# Start with the most significant element and work towards the least
# significant element. Avoid multiplying "inf" (which happens if the number
@@ -290,7 +298,7 @@ sub _num
$num += $x -> [$i];
}
return $num;
- }
+}
##############################################################################
# actual math code
@@ -304,9 +312,13 @@ sub _add {
my ($c, $x, $y) = @_;
- return $x if @$y == 1 && $y->[0] == 0; # $x + 0 => $x
- if (@$x == 1 && $x->[0] == 0) { # 0 + $y => $y->copy
- # Twice as slow as $x = [ @$y ], but necessary to modify $x in-place.
+ # $x + 0 => $x
+
+ return $x if @$y == 1 && $y->[0] == 0;
+
+ # 0 + $y => $y->copy
+
+ if (@$x == 1 && $x->[0] == 0) {
@$x = @$y;
return $x;
}
@@ -334,10 +346,10 @@ sub _inc {
my ($c, $x) = @_;
for my $i (@$x) {
- return $x if ($i += 1) < $BASE; # early out
- $i = 0; # overflow, next
+ return $x if ($i += 1) < $BASE; # early out
+ $i = 0; # overflow, next
}
- push @$x, 1 if $x->[-1] == 0; # last overflowed, so extend
+ push @$x, 1 if $x->[-1] == 0; # last overflowed, so extend
$x;
}
@@ -346,12 +358,12 @@ sub _dec {
# Sub 1 from $x, modify $x in place
my ($c, $x) = @_;
- my $MAX = $BASE - 1; # since MAX_VAL based on BASE
+ my $MAX = $BASE - 1; # since MAX_VAL based on BASE
for my $i (@$x) {
- last if ($i -= 1) >= 0; # early out
- $i = $MAX; # underflow, next
+ last if ($i -= 1) >= 0; # early out
+ $i = $MAX; # underflow, next
}
- pop @$x if $x->[-1] == 0 && @$x > 1; # last underflowed (but leave 0)
+ pop @$x if $x->[-1] == 0 && @$x > 1; # last underflowed (but leave 0)
$x;
}
@@ -386,783 +398,706 @@ sub _sub {
__strip_zeros($sy);
}
-sub _mul_use_mul
- {
- # (ref to int_num_array, ref to int_num_array)
- # multiply two numbers in internal representation
- # modifies first arg, second need not be different from first
- my ($c,$xv,$yv) = @_;
-
- if (@$yv == 1)
- {
- # shortcut for two very short numbers (improved by Nathan Zook)
- # works also if xv and yv are the same reference, and handles also $x == 0
- if (@$xv == 1)
- {
- if (($xv->[0] *= $yv->[0]) >= $BASE)
- {
- $xv->[0] = $xv->[0] - ($xv->[1] = int($xv->[0] * $RBASE)) * $BASE;
- };
- return $xv;
- }
- # $x * 0 => 0
- if ($yv->[0] == 0)
- {
- @$xv = (0);
- return $xv;
- }
- # multiply a large number a by a single element one, so speed up
- my $y = $yv->[0]; my $car = 0;
- foreach my $i (@$xv)
- {
- $i = $i * $y + $car; $car = int($i * $RBASE); $i -= $car * $BASE;
- }
- push @$xv, $car if $car != 0;
- return $xv;
- }
- # shortcut for result $x == 0 => result = 0
- return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
-
- # since multiplying $x with $x fails, make copy in this case
- $yv = [@$xv] if $xv == $yv; # same references?
-
- my @prod = (); my ($prod,$car,$cty,$xi,$yi);
-
- for $xi (@$xv)
- {
- $car = 0; $cty = 0;
-
- # slow variant
-# for $yi (@$yv)
-# {
-# $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
-# $prod[$cty++] =
-# $prod - ($car = int($prod * RBASE)) * $BASE; # see USE_MUL
-# }
-# $prod[$cty] += $car if $car; # need really to check for 0?
-# $xi = shift @prod;
-
- # faster variant
- # looping through this if $xi == 0 is silly - so optimize it away!
- $xi = (shift @prod || 0), next if $xi == 0;
- for $yi (@$yv)
- {
- $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
-## this is actually a tad slower
-## $prod = $prod[$cty]; $prod += ($car + $xi * $yi); # no ||0 here
- $prod[$cty++] =
- $prod - ($car = int($prod * $RBASE)) * $BASE; # see USE_MUL
- }
- $prod[$cty] += $car if $car; # need really to check for 0?
- $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
- }
- push @$xv, @prod;
- # can't have leading zeros
-# __strip_zeros($xv);
- $xv;
- }
-
-sub _mul_use_div_64
- {
- # (ref to int_num_array, ref to int_num_array)
- # multiply two numbers in internal representation
- # modifies first arg, second need not be different from first
- # works for 64 bit integer with "use integer"
- my ($c,$xv,$yv) = @_;
-
- use integer;
- if (@$yv == 1)
- {
- # shortcut for two small numbers, also handles $x == 0
- if (@$xv == 1)
- {
- # shortcut for two very short numbers (improved by Nathan Zook)
- # works also if xv and yv are the same reference, and handles also $x == 0
- if (($xv->[0] *= $yv->[0]) >= $BASE)
- {
- $xv->[0] =
- $xv->[0] - ($xv->[1] = $xv->[0] / $BASE) * $BASE;
- };
- return $xv;
- }
- # $x * 0 => 0
- if ($yv->[0] == 0)
- {
- @$xv = (0);
- return $xv;
- }
- # multiply a large number a by a single element one, so speed up
- my $y = $yv->[0]; my $car = 0;
- foreach my $i (@$xv)
- {
- #$i = $i * $y + $car; $car = $i / $BASE; $i -= $car * $BASE;
- $i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE;
- }
- push @$xv, $car if $car != 0;
- return $xv;
- }
- # shortcut for result $x == 0 => result = 0
- return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
-
- # since multiplying $x with $x fails, make copy in this case
- $yv = [@$xv] if $xv == $yv; # same references?
-
- my @prod = (); my ($prod,$car,$cty,$xi,$yi);
- for $xi (@$xv)
- {
- $car = 0; $cty = 0;
- # looping through this if $xi == 0 is silly - so optimize it away!
- $xi = (shift @prod || 0), next if $xi == 0;
- for $yi (@$yv)
- {
- $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
- $prod[$cty++] = $prod - ($car = $prod / $BASE) * $BASE;
- }
- $prod[$cty] += $car if $car; # need really to check for 0?
- $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
- }
- push @$xv, @prod;
- $xv;
- }
-
-sub _mul_use_div
- {
- # (ref to int_num_array, ref to int_num_array)
- # multiply two numbers in internal representation
- # modifies first arg, second need not be different from first
- my ($c,$xv,$yv) = @_;
-
- if (@$yv == 1)
- {
- # shortcut for two small numbers, also handles $x == 0
- if (@$xv == 1)
- {
- # shortcut for two very short numbers (improved by Nathan Zook)
- # works also if xv and yv are the same reference, and handles also $x == 0
- if (($xv->[0] *= $yv->[0]) >= $BASE)
- {
- $xv->[0] =
- $xv->[0] - ($xv->[1] = int($xv->[0] / $BASE)) * $BASE;
- };
- return $xv;
- }
- # $x * 0 => 0
- if ($yv->[0] == 0)
- {
- @$xv = (0);
- return $xv;
- }
- # multiply a large number a by a single element one, so speed up
- my $y = $yv->[0]; my $car = 0;
- foreach my $i (@$xv)
- {
- $i = $i * $y + $car; $car = int($i / $BASE); $i -= $car * $BASE;
- # This (together with use integer;) does not work on 32-bit Perls
- #$i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE;
- }
- push @$xv, $car if $car != 0;
- return $xv;
- }
- # shortcut for result $x == 0 => result = 0
- return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
-
- # since multiplying $x with $x fails, make copy in this case
- $yv = [@$xv] if $xv == $yv; # same references?
-
- my @prod = (); my ($prod,$car,$cty,$xi,$yi);
- for $xi (@$xv)
- {
- $car = 0; $cty = 0;
- # looping through this if $xi == 0 is silly - so optimize it away!
- $xi = (shift @prod || 0), next if $xi == 0;
- for $yi (@$yv)
- {
- $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
- $prod[$cty++] = $prod - ($car = int($prod / $BASE)) * $BASE;
- }
- $prod[$cty] += $car if $car; # need really to check for 0?
- $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
- }
- push @$xv, @prod;
- # can't have leading zeros
-# __strip_zeros($xv);
- $xv;
- }
-
-sub _div_use_mul
- {
- # ref to array, ref to array, modify first array and return remainder if
- # in list context
-
- # see comments in _div_use_div() for more explanations
-
- my ($c,$x,$yorg) = @_;
-
- # the general div algorithm here is about O(N*N) and thus quite slow, so
- # we first check for some special cases and use shortcuts to handle them.
-
- # This works, because we store the numbers in a chunked format where each
- # element contains 5..7 digits (depending on system).
-
- # if both numbers have only one element:
- if (@$x == 1 && @$yorg == 1)
- {
- # shortcut, $yorg and $x are two small numbers
- if (wantarray)
- {
- my $r = [ $x->[0] % $yorg->[0] ];
- $x->[0] = int($x->[0] / $yorg->[0]);
- return ($x,$r);
- }
- else
- {
- $x->[0] = int($x->[0] / $yorg->[0]);
- return $x;
- }
- }
-
- # if x has more than one, but y has only one element:
- if (@$yorg == 1)
- {
- my $rem;
- $rem = _mod($c,[ @$x ],$yorg) if wantarray;
-
- # shortcut, $y is < $BASE
- my $j = scalar @$x; my $r = 0;
- my $y = $yorg->[0]; my $b;
- while ($j-- > 0)
- {
- $b = $r * $BASE + $x->[$j];
- $x->[$j] = int($b/$y);
- $r = $b % $y;
- }
- pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
- return ($x,$rem) if wantarray;
- return $x;
+sub _mul_use_mul {
+ # (ref to int_num_array, ref to int_num_array)
+ # multiply two numbers in internal representation
+ # modifies first arg, second need not be different from first
+ my ($c, $xv, $yv) = @_;
+
+ if (@$yv == 1) {
+ # shortcut for two very short numbers (improved by Nathan Zook)
+ # works also if xv and yv are the same reference, and handles also $x == 0
+ if (@$xv == 1) {
+ if (($xv->[0] *= $yv->[0]) >= $BASE) {
+ $xv->[0] = $xv->[0] - ($xv->[1] = int($xv->[0] * $RBASE)) * $BASE;
+ }
+ ;
+ return $xv;
+ }
+ # $x * 0 => 0
+ if ($yv->[0] == 0) {
+ @$xv = (0);
+ return $xv;
+ }
+ # multiply a large number a by a single element one, so speed up
+ my $y = $yv->[0];
+ my $car = 0;
+ foreach my $i (@$xv) {
+ $i = $i * $y + $car;
+ $car = int($i * $RBASE);
+ $i -= $car * $BASE;
+ }
+ push @$xv, $car if $car != 0;
+ return $xv;
+ }
+ # shortcut for result $x == 0 => result = 0
+ return $xv if @$xv == 1 && $xv->[0] == 0;
+
+ # since multiplying $x with $x fails, make copy in this case
+ $yv = [ @$xv ] if $xv == $yv; # same references?
+
+ my @prod = ();
+ my ($prod, $car, $cty, $xi, $yi);
+
+ for $xi (@$xv) {
+ $car = 0;
+ $cty = 0;
+
+ # slow variant
+ # for $yi (@$yv)
+ # {
+ # $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
+ # $prod[$cty++] =
+ # $prod - ($car = int($prod * RBASE)) * $BASE; # see USE_MUL
+ # }
+ # $prod[$cty] += $car if $car; # need really to check for 0?
+ # $xi = shift @prod;
+
+ # faster variant
+ # looping through this if $xi == 0 is silly - so optimize it away!
+ $xi = (shift @prod || 0), next if $xi == 0;
+ for $yi (@$yv) {
+ $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
+ ## this is actually a tad slower
+ ## $prod = $prod[$cty]; $prod += ($car + $xi * $yi); # no ||0 here
+ $prod[$cty++] =
+ $prod - ($car = int($prod * $RBASE)) * $BASE; # see USE_MUL
+ }
+ $prod[$cty] += $car if $car; # need really to check for 0?
+ $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
}
+ push @$xv, @prod;
+ # can't have leading zeros
+ # __strip_zeros($xv);
+ $xv;
+}
- # now x and y have more than one element
+sub _mul_use_div_64 {
+ # (ref to int_num_array, ref to int_num_array)
+ # multiply two numbers in internal representation
+ # modifies first arg, second need not be different from first
+ # works for 64 bit integer with "use integer"
+ my ($c, $xv, $yv) = @_;
- # check whether y has more elements than x, if yet, the result will be 0
- if (@$yorg > @$x)
- {
- my $rem;
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to original array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x; # only x, which is [0] now
- }
- # check whether the numbers have the same number of elements, in that case
- # the result will fit into one element and can be computed efficiently
- if (@$yorg == @$x)
- {
- my $rem;
- # if $yorg has more digits than $x (it's leading element is longer than
- # the one from $x), the result will also be 0:
- if (length(int($yorg->[-1])) > length(int($x->[-1])))
- {
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to org array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x;
- }
- # now calculate $x / $yorg
- if (length(int($yorg->[-1])) == length(int($x->[-1])))
- {
- # same length, so make full compare
-
- my $a = 0; my $j = scalar @$x - 1;
- # manual way (abort if unequal, good for early ne)
- while ($j >= 0)
- {
- last if ($a = $x->[$j] - $yorg->[$j]); $j--;
+ use integer;
+ if (@$yv == 1) {
+ # shortcut for two small numbers, also handles $x == 0
+ if (@$xv == 1) {
+ # shortcut for two very short numbers (improved by Nathan Zook)
+ # works also if xv and yv are the same reference, and handles also $x == 0
+ if (($xv->[0] *= $yv->[0]) >= $BASE) {
+ $xv->[0] =
+ $xv->[0] - ($xv->[1] = $xv->[0] / $BASE) * $BASE;
+ }
+ return $xv;
}
- # $a contains the result of the compare between X and Y
- # a < 0: x < y, a == 0: x == y, a > 0: x > y
- if ($a <= 0)
- {
- $rem = [ 0 ]; # a = 0 => x == y => rem 0
- $rem = [@$x] if $a != 0; # a < 0 => x < y => rem = x
- splice(@$x,1); # keep single element
- $x->[0] = 0; # if $a < 0
- $x->[0] = 1 if $a == 0; # $x == $y
- return ($x,$rem) if wantarray;
- return $x;
+ # $x * 0 => 0
+ if ($yv->[0] == 0) {
+ @$xv = (0);
+ return $xv;
+ }
+ # multiply a large number a by a single element one, so speed up
+ my $y = $yv->[0];
+ my $car = 0;
+ foreach my $i (@$xv) {
+ #$i = $i * $y + $car; $car = $i / $BASE; $i -= $car * $BASE;
+ $i = $i * $y + $car;
+ $i -= ($car = $i / $BASE) * $BASE;
+ }
+ push @$xv, $car if $car != 0;
+ return $xv;
+ }
+ # shortcut for result $x == 0 => result = 0
+ return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
+
+ # since multiplying $x with $x fails, make copy in this case
+ $yv = $c->_copy($xv) if $xv == $yv; # same references?
+
+ my @prod = ();
+ my ($prod, $car, $cty, $xi, $yi);
+ for $xi (@$xv) {
+ $car = 0;
+ $cty = 0;
+ # looping through this if $xi == 0 is silly - so optimize it away!
+ $xi = (shift @prod || 0), next if $xi == 0;
+ for $yi (@$yv) {
+ $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
+ $prod[$cty++] = $prod - ($car = $prod / $BASE) * $BASE;
}
- # $x >= $y, so proceed normally
- }
+ $prod[$cty] += $car if $car; # need really to check for 0?
+ $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
}
+ push @$xv, @prod;
+ $xv;
+}
- # all other cases:
+sub _mul_use_div {
+ # (ref to int_num_array, ref to int_num_array)
+ # multiply two numbers in internal representation
+ # modifies first arg, second need not be different from first
+ my ($c, $xv, $yv) = @_;
+
+ if (@$yv == 1) {
+ # shortcut for two small numbers, also handles $x == 0
+ if (@$xv == 1) {
+ # shortcut for two very short numbers (improved by Nathan Zook)
+ # works also if xv and yv are the same reference, and handles also $x == 0
+ if (($xv->[0] *= $yv->[0]) >= $BASE) {
+ $xv->[0] =
+ $xv->[0] - ($xv->[1] = int($xv->[0] / $BASE)) * $BASE;
+ }
+ ;
+ return $xv;
+ }
+ # $x * 0 => 0
+ if ($yv->[0] == 0) {
+ @$xv = (0);
+ return $xv;
+ }
+ # multiply a large number a by a single element one, so speed up
+ my $y = $yv->[0];
+ my $car = 0;
+ foreach my $i (@$xv) {
+ $i = $i * $y + $car;
+ $car = int($i / $BASE);
+ $i -= $car * $BASE;
+ # This (together with use integer;) does not work on 32-bit Perls
+ #$i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE;
+ }
+ push @$xv, $car if $car != 0;
+ return $xv;
+ }
+ # shortcut for result $x == 0 => result = 0
+ return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
+
+ # since multiplying $x with $x fails, make copy in this case
+ $yv = $c->_copy($xv) if $xv == $yv; # same references?
+
+ my @prod = ();
+ my ($prod, $car, $cty, $xi, $yi);
+ for $xi (@$xv) {
+ $car = 0;
+ $cty = 0;
+ # looping through this if $xi == 0 is silly - so optimize it away!
+ $xi = (shift @prod || 0), next if $xi == 0;
+ for $yi (@$yv) {
+ $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
+ $prod[$cty++] = $prod - ($car = int($prod / $BASE)) * $BASE;
+ }
+ $prod[$cty] += $car if $car; # need really to check for 0?
+ $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
+ }
+ push @$xv, @prod;
+ # can't have leading zeros
+ # __strip_zeros($xv);
+ $xv;
+}
- my $y = [ @$yorg ]; # always make copy to preserve
+sub _div_use_mul {
+ # ref to array, ref to array, modify first array and return remainder if
+ # in list context
- my ($car,$bar,$prd,$dd,$xi,$yi,@q,$v2,$v1,@d,$tmp,$q,$u2,$u1,$u0);
+ # see comments in _div_use_div() for more explanations
- $car = $bar = $prd = 0;
- if (($dd = int($BASE/($y->[-1]+1))) != 1)
- {
- for $xi (@$x)
- {
- $xi = $xi * $dd + $car;
- $xi -= ($car = int($xi * $RBASE)) * $BASE; # see USE_MUL
- }
- push(@$x, $car); $car = 0;
- for $yi (@$y)
- {
- $yi = $yi * $dd + $car;
- $yi -= ($car = int($yi * $RBASE)) * $BASE; # see USE_MUL
- }
- }
- else
- {
- push(@$x, 0);
- }
- @q = (); ($v2,$v1) = @$y[-2,-1];
- $v2 = 0 unless $v2;
- while ($#$x > $#$y)
- {
- ($u2,$u1,$u0) = @$x[-3..-1];
- $u2 = 0 unless $u2;
- #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
- # if $v1 == 0;
- $q = (($u0 == $v1) ? $MAX_VAL : int(($u0*$BASE+$u1)/$v1));
- --$q while ($v2*$q > ($u0*$BASE+$u1-$q*$v1)*$BASE+$u2);
- if ($q)
- {
- ($car, $bar) = (0,0);
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $prd = $q * $y->[$yi] + $car;
- $prd -= ($car = int($prd * $RBASE)) * $BASE; # see USE_MUL
- $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
- }
- if ($x->[-1] < $car + $bar)
- {
- $car = 0; --$q;
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $x->[$xi] -= $BASE
- if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
- }
- }
- }
- pop(@$x);
- unshift(@q, $q);
- }
- if (wantarray)
- {
- @d = ();
- if ($dd != 1)
- {
- $car = 0;
- for $xi (reverse @$x)
- {
- $prd = $car * $BASE + $xi;
- $car = $prd - ($tmp = int($prd / $dd)) * $dd; # see USE_MUL
- unshift(@d, $tmp);
- }
- }
- else
- {
- @d = @$x;
- }
- @$x = @q;
- my $d = \@d;
- __strip_zeros($x);
- __strip_zeros($d);
- return ($x,$d);
- }
- @$x = @q;
- __strip_zeros($x);
- $x;
- }
-
-sub _div_use_div_64
- {
- # ref to array, ref to array, modify first array and return remainder if
- # in list context
- # This version works on 64 bit integers
- my ($c,$x,$yorg) = @_;
-
- use integer;
- # the general div algorithm here is about O(N*N) and thus quite slow, so
- # we first check for some special cases and use shortcuts to handle them.
-
- # This works, because we store the numbers in a chunked format where each
- # element contains 5..7 digits (depending on system).
-
- # if both numbers have only one element:
- if (@$x == 1 && @$yorg == 1)
- {
- # shortcut, $yorg and $x are two small numbers
- if (wantarray)
- {
- my $r = [ $x->[0] % $yorg->[0] ];
- $x->[0] = int($x->[0] / $yorg->[0]);
- return ($x,$r);
- }
- else
- {
- $x->[0] = int($x->[0] / $yorg->[0]);
- return $x;
- }
- }
- # if x has more than one, but y has only one element:
- if (@$yorg == 1)
- {
- my $rem;
- $rem = _mod($c,[ @$x ],$yorg) if wantarray;
-
- # shortcut, $y is < $BASE
- my $j = scalar @$x; my $r = 0;
- my $y = $yorg->[0]; my $b;
- while ($j-- > 0)
- {
- $b = $r * $BASE + $x->[$j];
- $x->[$j] = int($b/$y);
- $r = $b % $y;
- }
- pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
- return ($x,$rem) if wantarray;
- return $x;
+ my ($c, $x, $yorg) = @_;
+
+ # the general div algorithm here is about O(N*N) and thus quite slow, so
+ # we first check for some special cases and use shortcuts to handle them.
+
+ # This works, because we store the numbers in a chunked format where each
+ # element contains 5..7 digits (depending on system).
+
+ # if both numbers have only one element:
+ if (@$x == 1 && @$yorg == 1) {
+ # shortcut, $yorg and $x are two small numbers
+ if (wantarray) {
+ my $rem = [ $x->[0] % $yorg->[0] ];
+ bless $rem, $c;
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return ($x, $rem);
+ } else {
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return $x;
+ }
}
- # now x and y have more than one element
- # check whether y has more elements than x, if yet, the result will be 0
- if (@$yorg > @$x)
- {
- my $rem;
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to original array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x; # only x, which is [0] now
- }
- # check whether the numbers have the same number of elements, in that case
- # the result will fit into one element and can be computed efficiently
- if (@$yorg == @$x)
- {
- my $rem;
- # if $yorg has more digits than $x (it's leading element is longer than
- # the one from $x), the result will also be 0:
- if (length(int($yorg->[-1])) > length(int($x->[-1])))
- {
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to org array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x;
- }
- # now calculate $x / $yorg
-
- if (length(int($yorg->[-1])) == length(int($x->[-1])))
- {
- # same length, so make full compare
-
- my $a = 0; my $j = scalar @$x - 1;
- # manual way (abort if unequal, good for early ne)
- while ($j >= 0)
- {
- last if ($a = $x->[$j] - $yorg->[$j]); $j--;
+ # if x has more than one, but y has only one element:
+ if (@$yorg == 1) {
+ my $rem;
+ $rem = $c->_mod($c->_copy($x), $yorg) if wantarray;
+
+ # shortcut, $y is < $BASE
+ my $j = @$x;
+ my $r = 0;
+ my $y = $yorg->[0];
+ my $b;
+ while ($j-- > 0) {
+ $b = $r * $BASE + $x->[$j];
+ $x->[$j] = int($b/$y);
+ $r = $b % $y;
}
- # $a contains the result of the compare between X and Y
- # a < 0: x < y, a == 0: x == y, a > 0: x > y
- if ($a <= 0)
- {
- $rem = [ 0 ]; # a = 0 => x == y => rem 0
- $rem = [@$x] if $a != 0; # a < 0 => x < y => rem = x
- splice(@$x,1); # keep single element
- $x->[0] = 0; # if $a < 0
- $x->[0] = 1 if $a == 0; # $x == $y
- return ($x,$rem) if wantarray; # including remainder?
+ pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
+ return ($x, $rem) if wantarray;
return $x;
- }
- # $x >= $y, so proceed normally
-
- }
}
- # all other cases:
+ # now x and y have more than one element
- my $y = [ @$yorg ]; # always make copy to preserve
-
- my ($car,$bar,$prd,$dd,$xi,$yi,@q,$v2,$v1,@d,$tmp,$q,$u2,$u1,$u0);
+ # check whether y has more elements than x, if yet, the result will be 0
+ if (@$yorg > @$x) {
+ my $rem;
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x; # only x, which is [0] now
+ }
+ # check whether the numbers have the same number of elements, in that case
+ # the result will fit into one element and can be computed efficiently
+ if (@$yorg == @$x) {
- $car = $bar = $prd = 0;
- if (($dd = int($BASE/($y->[-1]+1))) != 1)
- {
- for $xi (@$x)
- {
- $xi = $xi * $dd + $car;
- $xi -= ($car = int($xi / $BASE)) * $BASE;
- }
- push(@$x, $car); $car = 0;
- for $yi (@$y)
- {
- $yi = $yi * $dd + $car;
- $yi -= ($car = int($yi / $BASE)) * $BASE;
- }
- }
- else
- {
- push(@$x, 0);
+ # if $yorg has more digits than $x (it's leading element is longer than
+ # the one from $x), the result will also be 0:
+ if (length(int($yorg->[-1])) > length(int($x->[-1]))) {
+ my $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
+ }
+ # now calculate $x / $yorg
+ if (length(int($yorg->[-1])) == length(int($x->[-1]))) {
+ # same length, so make full compare
+
+ my $a = 0;
+ my $j = @$x - 1;
+ # manual way (abort if unequal, good for early ne)
+ while ($j >= 0) {
+ last if ($a = $x->[$j] - $yorg->[$j]);
+ $j--;
+ }
+ # $a contains the result of the compare between X and Y
+ # a < 0: x < y, a == 0: x == y, a > 0: x > y
+ if ($a <= 0) {
+ # a = 0 => x == y => rem 0
+ # a < 0 => x < y => rem = x
+ my $rem = $a == 0 ? $c->_zero() : $c->_copy($x);
+ @$x = 0; # if $a < 0
+ $x->[0] = 1 if $a == 0; # $x == $y
+ return ($x, $rem) if wantarray;
+ return $x;
+ }
+ # $x >= $y, so proceed normally
+ }
}
- # @q will accumulate the final result, $q contains the current computed
- # part of the final result
+ # all other cases:
- @q = (); ($v2,$v1) = @$y[-2,-1];
- $v2 = 0 unless $v2;
- while ($#$x > $#$y)
- {
- ($u2,$u1,$u0) = @$x[-3..-1];
- $u2 = 0 unless $u2;
- #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
- # if $v1 == 0;
- $q = (($u0 == $v1) ? $MAX_VAL : int(($u0*$BASE+$u1)/$v1));
- --$q while ($v2*$q > ($u0*$BASE+$u1-$q*$v1)*$BASE+$u2);
- if ($q)
- {
- ($car, $bar) = (0,0);
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $prd = $q * $y->[$yi] + $car;
- $prd -= ($car = int($prd / $BASE)) * $BASE;
- $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
- }
- if ($x->[-1] < $car + $bar)
- {
- $car = 0; --$q;
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $x->[$xi] -= $BASE
- if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
- }
- }
- }
- pop(@$x); unshift(@q, $q);
- }
- if (wantarray)
- {
- @d = ();
- if ($dd != 1)
- {
- $car = 0;
- for $xi (reverse @$x)
- {
- $prd = $car * $BASE + $xi;
- $car = $prd - ($tmp = int($prd / $dd)) * $dd;
- unshift(@d, $tmp);
- }
- }
- else
- {
- @d = @$x;
- }
+ my $y = $c->_copy($yorg); # always make copy to preserve
+
+ my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, @d, $tmp, $q, $u2, $u1, $u0);
+
+ $car = $bar = $prd = 0;
+ if (($dd = int($BASE / ($y->[-1] + 1))) != 1) {
+ for $xi (@$x) {
+ $xi = $xi * $dd + $car;
+ $xi -= ($car = int($xi * $RBASE)) * $BASE; # see USE_MUL
+ }
+ push(@$x, $car);
+ $car = 0;
+ for $yi (@$y) {
+ $yi = $yi * $dd + $car;
+ $yi -= ($car = int($yi * $RBASE)) * $BASE; # see USE_MUL
+ }
+ } else {
+ push(@$x, 0);
+ }
+ @q = ();
+ ($v2, $v1) = @$y[-2, -1];
+ $v2 = 0 unless $v2;
+ while ($#$x > $#$y) {
+ ($u2, $u1, $u0) = @$x[-3 .. -1];
+ $u2 = 0 unless $u2;
+ #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
+ # if $v1 == 0;
+ $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1));
+ --$q while ($v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2);
+ if ($q) {
+ ($car, $bar) = (0, 0);
+ for ($yi = 0, $xi = $#$x - $#$y-1; $yi <= $#$y; ++$yi, ++$xi) {
+ $prd = $q * $y->[$yi] + $car;
+ $prd -= ($car = int($prd * $RBASE)) * $BASE; # see USE_MUL
+ $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
+ }
+ if ($x->[-1] < $car + $bar) {
+ $car = 0;
+ --$q;
+ for ($yi = 0, $xi = $#$x - $#$y-1; $yi <= $#$y; ++$yi, ++$xi) {
+ $x->[$xi] -= $BASE
+ if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
+ }
+ }
+ }
+ pop(@$x);
+ unshift(@q, $q);
+ }
+ if (wantarray) {
+ my $d = bless [], $c;
+ if ($dd != 1) {
+ $car = 0;
+ for $xi (reverse @$x) {
+ $prd = $car * $BASE + $xi;
+ $car = $prd - ($tmp = int($prd / $dd)) * $dd; # see USE_MUL
+ unshift(@$d, $tmp);
+ }
+ } else {
+ @$d = @$x;
+ }
+ @$x = @q;
+ __strip_zeros($x);
+ __strip_zeros($d);
+ return ($x, $d);
+ }
@$x = @q;
- my $d = \@d;
__strip_zeros($x);
- __strip_zeros($d);
- return ($x,$d);
+ $x;
+}
+
+sub _div_use_div_64 {
+ # ref to array, ref to array, modify first array and return remainder if
+ # in list context
+ # This version works on 64 bit integers
+ my ($c, $x, $yorg) = @_;
+
+ use integer;
+ # the general div algorithm here is about O(N*N) and thus quite slow, so
+ # we first check for some special cases and use shortcuts to handle them.
+
+ # This works, because we store the numbers in a chunked format where each
+ # element contains 5..7 digits (depending on system).
+
+ # if both numbers have only one element:
+ if (@$x == 1 && @$yorg == 1) {
+ # shortcut, $yorg and $x are two small numbers
+ if (wantarray) {
+ my $rem = [ $x->[0] % $yorg->[0] ];
+ bless $rem, $c;
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return ($x, $rem);
+ } else {
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return $x;
+ }
+ }
+ # if x has more than one, but y has only one element:
+ if (@$yorg == 1) {
+ my $rem;
+ $rem = $c->_mod($c->_copy($x), $yorg) if wantarray;
+
+ # shortcut, $y is < $BASE
+ my $j = @$x;
+ my $r = 0;
+ my $y = $yorg->[0];
+ my $b;
+ while ($j-- > 0) {
+ $b = $r * $BASE + $x->[$j];
+ $x->[$j] = int($b/$y);
+ $r = $b % $y;
+ }
+ pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
+ return ($x, $rem) if wantarray;
+ return $x;
+ }
+ # now x and y have more than one element
+
+ # check whether y has more elements than x, if yet, the result will be 0
+ if (@$yorg > @$x) {
+ my $rem;
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x; # only x, which is [0] now
+ }
+ # check whether the numbers have the same number of elements, in that case
+ # the result will fit into one element and can be computed efficiently
+ if (@$yorg == @$x) {
+ my $rem;
+ # if $yorg has more digits than $x (it's leading element is longer than
+ # the one from $x), the result will also be 0:
+ if (length(int($yorg->[-1])) > length(int($x->[-1]))) {
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
+ }
+ # now calculate $x / $yorg
+
+ if (length(int($yorg->[-1])) == length(int($x->[-1]))) {
+ # same length, so make full compare
+
+ my $a = 0;
+ my $j = @$x - 1;
+ # manual way (abort if unequal, good for early ne)
+ while ($j >= 0) {
+ last if ($a = $x->[$j] - $yorg->[$j]);
+ $j--;
+ }
+ # $a contains the result of the compare between X and Y
+ # a < 0: x < y, a == 0: x == y, a > 0: x > y
+ if ($a <= 0) {
+ $rem = $c->_zero(); # a = 0 => x == y => rem 0
+ $rem = $c->_copy($x) if $a != 0; # a < 0 => x < y => rem = x
+ @$x = 0; # if $a < 0
+ $x->[0] = 1 if $a == 0; # $x == $y
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
+ }
+ # $x >= $y, so proceed normally
+ }
}
- @$x = @q;
- __strip_zeros($x);
- $x;
- }
-sub _div_use_div
- {
- # ref to array, ref to array, modify first array and return remainder if
- # in list context
- my ($c,$x,$yorg) = @_;
+ # all other cases:
- # the general div algorithm here is about O(N*N) and thus quite slow, so
- # we first check for some special cases and use shortcuts to handle them.
+ my $y = $c->_copy($yorg); # always make copy to preserve
- # This works, because we store the numbers in a chunked format where each
- # element contains 5..7 digits (depending on system).
+ my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, @d, $tmp, $q, $u2, $u1, $u0);
- # if both numbers have only one element:
- if (@$x == 1 && @$yorg == 1)
- {
- # shortcut, $yorg and $x are two small numbers
- if (wantarray)
- {
- my $r = [ $x->[0] % $yorg->[0] ];
- $x->[0] = int($x->[0] / $yorg->[0]);
- return ($x,$r);
- }
- else
- {
- $x->[0] = int($x->[0] / $yorg->[0]);
- return $x;
- }
- }
- # if x has more than one, but y has only one element:
- if (@$yorg == 1)
- {
- my $rem;
- $rem = _mod($c,[ @$x ],$yorg) if wantarray;
-
- # shortcut, $y is < $BASE
- my $j = scalar @$x; my $r = 0;
- my $y = $yorg->[0]; my $b;
- while ($j-- > 0)
- {
- $b = $r * $BASE + $x->[$j];
- $x->[$j] = int($b/$y);
- $r = $b % $y;
- }
- pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
- return ($x,$rem) if wantarray;
- return $x;
+ $car = $bar = $prd = 0;
+ if (($dd = int($BASE / ($y->[-1] + 1))) != 1) {
+ for $xi (@$x) {
+ $xi = $xi * $dd + $car;
+ $xi -= ($car = int($xi / $BASE)) * $BASE;
+ }
+ push(@$x, $car);
+ $car = 0;
+ for $yi (@$y) {
+ $yi = $yi * $dd + $car;
+ $yi -= ($car = int($yi / $BASE)) * $BASE;
+ }
+ } else {
+ push(@$x, 0);
+ }
+
+ # @q will accumulate the final result, $q contains the current computed
+ # part of the final result
+
+ @q = ();
+ ($v2, $v1) = @$y[-2, -1];
+ $v2 = 0 unless $v2;
+ while ($#$x > $#$y) {
+ ($u2, $u1, $u0) = @$x[-3..-1];
+ $u2 = 0 unless $u2;
+ #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
+ # if $v1 == 0;
+ $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1));
+ --$q while ($v2 * $q > ($u0 * $BASE +$ u1- $q*$v1) * $BASE + $u2);
+ if ($q) {
+ ($car, $bar) = (0, 0);
+ for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
+ $prd = $q * $y->[$yi] + $car;
+ $prd -= ($car = int($prd / $BASE)) * $BASE;
+ $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
+ }
+ if ($x->[-1] < $car + $bar) {
+ $car = 0;
+ --$q;
+ for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
+ $x->[$xi] -= $BASE
+ if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
+ }
+ }
+ }
+ pop(@$x);
+ unshift(@q, $q);
+ }
+ if (wantarray) {
+ my $d = bless [], $c;
+ if ($dd != 1) {
+ $car = 0;
+ for $xi (reverse @$x) {
+ $prd = $car * $BASE + $xi;
+ $car = $prd - ($tmp = int($prd / $dd)) * $dd;
+ unshift(@$d, $tmp);
+ }
+ } else {
+ @$d = @$x;
+ }
+ @$x = @q;
+ __strip_zeros($x);
+ __strip_zeros($d);
+ return ($x, $d);
}
- # now x and y have more than one element
+ @$x = @q;
+ __strip_zeros($x);
+ $x;
+}
- # check whether y has more elements than x, if yet, the result will be 0
- if (@$yorg > @$x)
- {
- my $rem;
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to original array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x; # only x, which is [0] now
- }
- # check whether the numbers have the same number of elements, in that case
- # the result will fit into one element and can be computed efficiently
- if (@$yorg == @$x)
- {
- my $rem;
- # if $yorg has more digits than $x (it's leading element is longer than
- # the one from $x), the result will also be 0:
- if (length(int($yorg->[-1])) > length(int($x->[-1])))
- {
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to org array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x;
- }
- # now calculate $x / $yorg
-
- if (length(int($yorg->[-1])) == length(int($x->[-1])))
- {
- # same length, so make full compare
-
- my $a = 0; my $j = scalar @$x - 1;
- # manual way (abort if unequal, good for early ne)
- while ($j >= 0)
- {
- last if ($a = $x->[$j] - $yorg->[$j]); $j--;
+sub _div_use_div {
+ # ref to array, ref to array, modify first array and return remainder if
+ # in list context
+ my ($c, $x, $yorg) = @_;
+
+ # the general div algorithm here is about O(N*N) and thus quite slow, so
+ # we first check for some special cases and use shortcuts to handle them.
+
+ # This works, because we store the numbers in a chunked format where each
+ # element contains 5..7 digits (depending on system).
+
+ # if both numbers have only one element:
+ if (@$x == 1 && @$yorg == 1) {
+ # shortcut, $yorg and $x are two small numbers
+ if (wantarray) {
+ my $rem = [ $x->[0] % $yorg->[0] ];
+ bless $rem, $c;
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return ($x, $rem);
+ } else {
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return $x;
}
- # $a contains the result of the compare between X and Y
- # a < 0: x < y, a == 0: x == y, a > 0: x > y
- if ($a <= 0)
- {
- $rem = [ 0 ]; # a = 0 => x == y => rem 0
- $rem = [@$x] if $a != 0; # a < 0 => x < y => rem = x
- splice(@$x,1); # keep single element
- $x->[0] = 0; # if $a < 0
- $x->[0] = 1 if $a == 0; # $x == $y
- return ($x,$rem) if wantarray; # including remainder?
+ }
+ # if x has more than one, but y has only one element:
+ if (@$yorg == 1) {
+ my $rem;
+ $rem = $c->_mod($c->_copy($x), $yorg) if wantarray;
+
+ # shortcut, $y is < $BASE
+ my $j = @$x;
+ my $r = 0;
+ my $y = $yorg->[0];
+ my $b;
+ while ($j-- > 0) {
+ $b = $r * $BASE + $x->[$j];
+ $x->[$j] = int($b/$y);
+ $r = $b % $y;
+ }
+ pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
+ return ($x, $rem) if wantarray;
return $x;
+ }
+ # now x and y have more than one element
+
+ # check whether y has more elements than x, if yet, the result will be 0
+ if (@$yorg > @$x) {
+ my $rem;
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x; # only x, which is [0] now
+ }
+ # check whether the numbers have the same number of elements, in that case
+ # the result will fit into one element and can be computed efficiently
+ if (@$yorg == @$x) {
+ my $rem;
+ # if $yorg has more digits than $x (it's leading element is longer than
+ # the one from $x), the result will also be 0:
+ if (length(int($yorg->[-1])) > length(int($x->[-1]))) {
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
}
- # $x >= $y, so proceed normally
+ # now calculate $x / $yorg
+
+ if (length(int($yorg->[-1])) == length(int($x->[-1]))) {
+ # same length, so make full compare
+
+ my $a = 0;
+ my $j = @$x - 1;
+ # manual way (abort if unequal, good for early ne)
+ while ($j >= 0) {
+ last if ($a = $x->[$j] - $yorg->[$j]);
+ $j--;
+ }
+ # $a contains the result of the compare between X and Y
+ # a < 0: x < y, a == 0: x == y, a > 0: x > y
+ if ($a <= 0) {
+ $rem = $c->_zero(); # a = 0 => x == y => rem 0
+ $rem = $c->_copy($x) if $a != 0; # a < 0 => x < y => rem = x
+ @$x = 0;
+ $x->[0] = 0; # if $a < 0
+ $x->[0] = 1 if $a == 0; # $x == $y
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
+ }
+ # $x >= $y, so proceed normally
- }
+ }
}
- # all other cases:
+ # all other cases:
- my $y = [ @$yorg ]; # always make copy to preserve
-
- my ($car,$bar,$prd,$dd,$xi,$yi,@q,$v2,$v1,@d,$tmp,$q,$u2,$u1,$u0);
+ my $y = $c->_copy($yorg); # always make copy to preserve
- $car = $bar = $prd = 0;
- if (($dd = int($BASE/($y->[-1]+1))) != 1)
- {
- for $xi (@$x)
- {
- $xi = $xi * $dd + $car;
- $xi -= ($car = int($xi / $BASE)) * $BASE;
- }
- push(@$x, $car); $car = 0;
- for $yi (@$y)
- {
- $yi = $yi * $dd + $car;
- $yi -= ($car = int($yi / $BASE)) * $BASE;
- }
- }
- else
- {
- push(@$x, 0);
- }
+ my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, @d, $tmp, $q, $u2, $u1, $u0);
- # @q will accumulate the final result, $q contains the current computed
- # part of the final result
-
- @q = (); ($v2,$v1) = @$y[-2,-1];
- $v2 = 0 unless $v2;
- while ($#$x > $#$y)
- {
- ($u2,$u1,$u0) = @$x[-3..-1];
- $u2 = 0 unless $u2;
- #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
- # if $v1 == 0;
- $q = (($u0 == $v1) ? $MAX_VAL : int(($u0*$BASE+$u1)/$v1));
- --$q while ($v2*$q > ($u0*$BASE+$u1-$q*$v1)*$BASE+$u2);
- if ($q)
- {
- ($car, $bar) = (0,0);
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $prd = $q * $y->[$yi] + $car;
- $prd -= ($car = int($prd / $BASE)) * $BASE;
- $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
- }
- if ($x->[-1] < $car + $bar)
- {
- $car = 0; --$q;
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $x->[$xi] -= $BASE
- if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
- }
- }
- }
- pop(@$x); unshift(@q, $q);
- }
- if (wantarray)
- {
- @d = ();
- if ($dd != 1)
- {
- $car = 0;
- for $xi (reverse @$x)
- {
- $prd = $car * $BASE + $xi;
- $car = $prd - ($tmp = int($prd / $dd)) * $dd;
- unshift(@d, $tmp);
- }
- }
- else
- {
- @d = @$x;
- }
+ $car = $bar = $prd = 0;
+ if (($dd = int($BASE / ($y->[-1] + 1))) != 1) {
+ for $xi (@$x) {
+ $xi = $xi * $dd + $car;
+ $xi -= ($car = int($xi / $BASE)) * $BASE;
+ }
+ push(@$x, $car);
+ $car = 0;
+ for $yi (@$y) {
+ $yi = $yi * $dd + $car;
+ $yi -= ($car = int($yi / $BASE)) * $BASE;
+ }
+ } else {
+ push(@$x, 0);
+ }
+
+ # @q will accumulate the final result, $q contains the current computed
+ # part of the final result
+
+ @q = ();
+ ($v2, $v1) = @$y[-2, -1];
+ $v2 = 0 unless $v2;
+ while ($#$x > $#$y) {
+ ($u2, $u1, $u0) = @$x[-3..-1];
+ $u2 = 0 unless $u2;
+ #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
+ # if $v1 == 0;
+ $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1));
+ --$q while ($v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2);
+ if ($q) {
+ ($car, $bar) = (0, 0);
+ for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
+ $prd = $q * $y->[$yi] + $car;
+ $prd -= ($car = int($prd / $BASE)) * $BASE;
+ $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
+ }
+ if ($x->[-1] < $car + $bar) {
+ $car = 0;
+ --$q;
+ for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
+ $x->[$xi] -= $BASE
+ if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
+ }
+ }
+ }
+ pop(@$x);
+ unshift(@q, $q);
+ }
+ if (wantarray) {
+ my $d = bless [], $c;
+ if ($dd != 1) {
+ $car = 0;
+ for $xi (reverse @$x) {
+ $prd = $car * $BASE + $xi;
+ $car = $prd - ($tmp = int($prd / $dd)) * $dd;
+ unshift(@$d, $tmp);
+ }
+ } else {
+ @$d = @$x;
+ }
+ @$x = @q;
+ __strip_zeros($x);
+ __strip_zeros($d);
+ return ($x, $d);
+ }
@$x = @q;
- my $d = \@d;
__strip_zeros($x);
- __strip_zeros($d);
- return ($x,$d);
- }
- @$x = @q;
- __strip_zeros($x);
- $x;
- }
+ $x;
+}
##############################################################################
# testing
@@ -1175,7 +1110,7 @@ sub _acmp {
# shortcut for short numbers
return (($cx->[0] <=> $cy->[0]) <=> 0)
- if @$cx == @$cy && @$cx == 1;
+ if @$cx == 1 && @$cy == 1;
# fast comp based on number of array elements (aka pseudo-length)
my $lxy = (@$cx - @$cy)
@@ -1207,18 +1142,22 @@ sub _len {
}
sub _digit {
- # Return the nth digit. Zero is rightmost, so _digit(123,0) gives 3.
+ # Return the nth digit. Zero is rightmost, so _digit(123, 0) gives 3.
# Negative values count from the left, so _digit(123, -1) gives 1.
my ($c, $x, $n) = @_;
my $len = _len('', $x);
$n += $len if $n < 0; # -1 last, -2 second-to-last
+
+ # Math::BigInt::Calc returns 0 if N is out of range, but this is not done
+ # by the other backend libraries.
+
return "0" if $n < 0 || $n >= $len; # return 0 for digits out of range
- my $elem = int($n / $BASE_LEN); # which array element
- my $digit = $n % $BASE_LEN; # which digit in this element
- substr("$x->[$elem]", -$digit - 1, 1);
+ my $elem = int($n / $BASE_LEN); # index of array element
+ my $digit = $n % $BASE_LEN; # index of digit within the element
+ substr("0" x $BASE_LEN . "$x->[$elem]", -1 - $digit, 1);
}
sub _zeros {
@@ -1231,16 +1170,13 @@ sub _zeros {
return 0 if @$x == 1 && $x->[0] == 0;
my $zeros = 0;
- my $elem;
- foreach my $e (@$x) {
- if ($e != 0) {
- $elem = "$e"; # preserve x
- $elem =~ s/.*?(0*$)/$1/; # strip anything not zero
- $zeros *= $BASE_LEN; # elems * 5
- $zeros += length($elem); # count trailing zeros
+ foreach my $elem (@$x) {
+ if ($elem != 0) {
+ $elem =~ /[^0](0*)\z/;
+ $zeros += length($1); # count trailing zeros
last; # early out
}
- $zeros ++; # real else branch: 50% slower!
+ $zeros += $BASE_LEN;
}
$zeros;
}
@@ -1249,7 +1185,7 @@ sub _zeros {
# _is_* routines
sub _is_zero {
- # return true if arg is zero
+ # return true if arg is zero
@{$_[1]} == 1 && $_[1]->[0] == 0 ? 1 : 0;
}
@@ -1269,25 +1205,22 @@ sub _is_one {
}
sub _is_two {
- # return true if arg is two
+ # return true if arg is two
@{$_[1]} == 1 && $_[1]->[0] == 2 ? 1 : 0;
}
sub _is_ten {
- # return true if arg is ten
+ # return true if arg is ten
@{$_[1]} == 1 && $_[1]->[0] == 10 ? 1 : 0;
}
sub __strip_zeros {
# Internal normalization function that strips leading zeros from the array.
# Args: ref to array
- my $s = shift;
+ my $x = shift;
- my $cnt = @$s; # get count of parts
- my $i = $cnt - 1;
- push @$s, 0 if $i < 0; # div might return empty results, so fix it
-
- return $s if @$s == 1; # early out
+ push @$x, 0 if @$x == 0; # div might return empty results, so fix it
+ return $x if @$x == 1; # early out
#print "strip: cnt $cnt i $i\n";
# '0', '3', '4', '0', '0',
@@ -1297,13 +1230,15 @@ sub __strip_zeros {
# i = 3
# => fcnt = cnt - i (5-2 => 3, cnt => 5-1 = 4, throw away from 4th pos)
# >= 1: skip first part (this can be zero)
+
+ my $i = $#$x;
while ($i > 0) {
- last if $s->[$i] != 0;
+ last if $x->[$i] != 0;
$i--;
}
$i++;
- splice @$s, $i if $i < $cnt; # $i cant be 0
- $s;
+ splice(@$x, $i) if $i < @$x;
+ $x;
}
###############################################################################
@@ -1311,32 +1246,46 @@ sub __strip_zeros {
sub _check {
# used by the test suite
- my $x = $_[1];
+ my ($class, $x) = @_;
+
+ my $msg = $class -> SUPER::_check($x);
+ return $msg if $msg;
+
+ my $n;
+ eval { $n = @$x };
+ return "Not an array reference" unless $@ eq '';
- return "$x is not a reference" if !ref($x);
-
- # are all parts are valid?
- my $i = 0;
- my $j = @$x;
- my ($e, $try);
- while ($i < $j) {
- $e = $x->[$i]; $e = 'undef' unless defined $e;
- $try = '=~ /^[\+]?[0-9]+\$/; '."($x, $e)";
- last if $e !~ /^[+]?[0-9]+$/;
- $try = '=~ /^[\+]?[0-9]+\$/; '."($x, $e) (stringify)";
- last if "$e" !~ /^[+]?[0-9]+$/;
- $try = '=~ /^[\+]?[0-9]+\$/; '."($x, $e) (cat-stringify)";
- last if '' . "$e" !~ /^[+]?[0-9]+$/;
- $try = ' < 0 || >= $BASE; '."($x, $e)";
- last if $e <0 || $e >= $BASE;
- # This test is disabled, since new/bnorm and certain ops (like early out
- # in add/sub) are allowed/expected to leave '00000' in some elements.
- #$try = '=~ /^00+/; '."($x, $e)";
- #last if $e =~ /^00+/;
- $i++;
- }
- return "Illegal part '$e' at pos $i (tested: $try)" if $i < $j;
- 0;
+ return "Reference to an empty array" unless $n > 0;
+
+ # The following fails with Math::BigInt::FastCalc because a
+ # Math::BigInt::FastCalc "object" is an unblessed array ref.
+ #
+ #return 0 unless ref($x) eq $class;
+
+ for (my $i = 0 ; $i <= $#$x ; ++ $i) {
+ my $e = $x -> [$i];
+
+ return "Element at index $i is undefined"
+ unless defined $e;
+
+ return "Element at index $i is a '" . ref($e) .
+ "', which is not a scalar"
+ unless ref($e) eq "";
+
+ # It would be better to use the regex /^([1-9]\d*|0)\z/, but that fails
+ # in Math::BigInt::FastCalc, because it sometimes creates array
+ # elements like "000000".
+ return "Element at index $i is '$e', which does not look like an" .
+ " normal integer" unless $e =~ /^\d+\z/;
+
+ return "Element at index $i is '$e', which is not smaller than" .
+ " the base '$BASE'" if $e >= $BASE;
+
+ return "Element at index $i (last element) is zero"
+ if $#$x > 0 && $i == $#$x && $e == 0;
+ }
+
+ return 0;
}
###############################################################################
@@ -1347,7 +1296,7 @@ sub _mod {
# slow way since $y too big
if (@$yo > 1) {
- my ($xo, $rem) = _div($c, $x, $yo);
+ my ($xo, $rem) = $c->_div($x, $yo);
@$x = @$rem;
return $x;
}
@@ -1355,7 +1304,7 @@ sub _mod {
my $y = $yo->[0];
# if both are single element arrays
- if (scalar @$x == 1) {
+ if (@$x == 1) {
$x->[0] %= $y;
return $x;
}
@@ -1372,7 +1321,7 @@ sub _mod {
# simplified
my $r = 0;
foreach (@$x) {
- $r = ($r + $_) % $y; # not much faster, but heh...
+ $r = ($r + $_) % $y; # not much faster, but heh...
#$r += $_ % $y; $r %= $y;
}
$r = 0 if $r == $y;
@@ -1393,7 +1342,7 @@ sub _mod {
$r = 0 if $r == $y;
$x->[0] = $r;
}
- @$x = $x->[0]; # keep one element of @$x
+ @$x = $x->[0]; # keep one element of @$x
return $x;
}
@@ -1404,30 +1353,30 @@ sub _rsft {
my ($c, $x, $y, $n) = @_;
if ($n != 10) {
- $n = _new($c, $n);
- return _div($c, $x, _pow($c, $n, $y));
+ $n = $c->_new($n);
+ return scalar $c->_div($x, $c->_pow($n, $y));
}
# shortcut (faster) for shifting by 10)
# multiples of $BASE_LEN
- my $dst = 0; # destination
- my $src = _num($c, $y); # as normal int
+ my $dst = 0; # destination
+ my $src = $c->_num($y); # as normal int
my $xlen = (@$x - 1) * $BASE_LEN + length(int($x->[-1]));
if ($src >= $xlen or ($src == $xlen and !defined $x->[1])) {
# 12345 67890 shifted right by more than 10 digits => 0
- splice(@$x, 1); # leave only one element
- $x->[0] = 0; # set to zero
+ splice(@$x, 1); # leave only one element
+ $x->[0] = 0; # set to zero
return $x;
}
- my $rem = $src % $BASE_LEN; # remainder to shift
- $src = int($src / $BASE_LEN); # source
+ my $rem = $src % $BASE_LEN; # remainder to shift
+ $src = int($src / $BASE_LEN); # source
if ($rem == 0) {
- splice(@$x, 0, $src); # even faster, 38.4 => 39.3
+ splice(@$x, 0, $src); # even faster, 38.4 => 39.3
} else {
- my $len = @$x - $src; # elems to go
+ my $len = @$x - $src; # elems to go
my $vd;
my $z = '0' x $BASE_LEN;
- $x->[@$x] = 0; # avoid || 0 test inside loop
+ $x->[ @$x ] = 0; # avoid || 0 test inside loop
while ($dst < $len) {
$vd = $z . $x->[$src];
$vd = substr($vd, -$BASE_LEN, $BASE_LEN - $rem);
@@ -1437,47 +1386,58 @@ sub _rsft {
$x->[$dst] = int($vd);
$dst++;
}
- splice(@$x, $dst) if $dst > 0; # kill left-over array elems
- pop @$x if $x->[-1] == 0 && @$x > 1; # kill last element if 0
- } # else rem == 0
+ splice(@$x, $dst) if $dst > 0; # kill left-over array elems
+ pop @$x if $x->[-1] == 0 && @$x > 1; # kill last element if 0
+ } # else rem == 0
$x;
}
sub _lsft {
- my ($c, $x, $y, $n) = @_;
-
- if ($n != 10) {
- $n = _new($c, $n);
- return _mul($c, $x, _pow($c, $n, $y));
- }
-
- # shortcut (faster) for shifting by 10) since we are in base 10eX
- # multiples of $BASE_LEN:
- my $src = @$x; # source
- my $len = _num($c, $y); # shift-len as normal int
- my $rem = $len % $BASE_LEN; # remainder to shift
- my $dst = $src + int($len / $BASE_LEN); # destination
- my $vd; # further speedup
- $x->[$src] = 0; # avoid first ||0 for speed
- my $z = '0' x $BASE_LEN;
- while ($src >= 0) {
- $vd = $x->[$src];
- $vd = $z . $vd;
- $vd = substr($vd, -$BASE_LEN + $rem, $BASE_LEN - $rem);
- $vd .= $src > 0 ? substr($z . $x->[$src - 1], -$BASE_LEN, $rem)
- : '0' x $rem;
- $vd = substr($vd, -$BASE_LEN, $BASE_LEN) if length($vd) > $BASE_LEN;
- $x->[$dst] = int($vd);
- $dst--;
- $src--;
- }
- # set lowest parts to 0
- while ($dst >= 0) {
- $x->[$dst--] = 0;
- }
- # fix spurious last zero element
- splice @$x, -1 if $x->[-1] == 0;
- $x;
+ my ($c, $x, $n, $b) = @_;
+
+ return $x if $c->_is_zero($x);
+
+ # Handle the special case when the base is a power of 10. Don't check
+ # whether log($b)/log(10) is an integer, because log(1000)/log(10) is not
+ # exactly 3.
+
+ my $log10 = sprintf "%.0f", log($b) / log(10);
+ if ($b == 10 ** $log10) {
+ $b = 10;
+ $n = $c->_mul($n, $c->_new($log10));
+
+ # shortcut (faster) for shifting by 10) since we are in base 10eX
+ # multiples of $BASE_LEN:
+ my $src = @$x; # source
+ my $len = $c->_num($n); # shift-len as normal int
+ my $rem = $len % $BASE_LEN; # remainder to shift
+ my $dst = $src + int($len / $BASE_LEN); # destination
+ my $vd; # further speedup
+ $x->[$src] = 0; # avoid first ||0 for speed
+ my $z = '0' x $BASE_LEN;
+ while ($src >= 0) {
+ $vd = $x->[$src];
+ $vd = $z . $vd;
+ $vd = substr($vd, -$BASE_LEN + $rem, $BASE_LEN - $rem);
+ $vd .= $src > 0 ? substr($z . $x->[$src - 1], -$BASE_LEN, $rem)
+ : '0' x $rem;
+ $vd = substr($vd, -$BASE_LEN, $BASE_LEN) if length($vd) > $BASE_LEN;
+ $x->[$dst] = int($vd);
+ $dst--;
+ $src--;
+ }
+ # set lowest parts to 0
+ while ($dst >= 0) {
+ $x->[$dst--] = 0;
+ }
+ # fix spurious last zero element
+ splice @$x, -1 if $x->[-1] == 0;
+ return $x;
+ } else {
+ $b = $c->_new($b);
+ #print $c->_str($b);
+ return $c->_mul($x, $c->_pow($b, $n));
+ }
}
sub _pow {
@@ -1487,33 +1447,33 @@ sub _pow {
if (@$cy == 1 && $cy->[0] == 0) {
splice(@$cx, 1);
- $cx->[0] = 1; # y == 0 => x => 1
+ $cx->[0] = 1; # y == 0 => x => 1
return $cx;
}
- if ((@$cx == 1 && $cx->[0] == 1) || # x == 1
- (@$cy == 1 && $cy->[0] == 1)) # or y == 1
+ if ((@$cx == 1 && $cx->[0] == 1) || # x == 1
+ (@$cy == 1 && $cy->[0] == 1)) # or y == 1
{
return $cx;
}
if (@$cx == 1 && $cx->[0] == 0) {
splice (@$cx, 1);
- $cx->[0] = 0; # 0 ** y => 0 (if not y <= 0)
+ $cx->[0] = 0; # 0 ** y => 0 (if not y <= 0)
return $cx;
}
- my $pow2 = _one();
+ my $pow2 = $c->_one();
- my $y_bin = _as_bin($c, $cy);
+ my $y_bin = $c->_as_bin($cy);
$y_bin =~ s/^0b//;
my $len = length($y_bin);
while (--$len > 0) {
- _mul($c, $pow2, $cx) if substr($y_bin, $len, 1) eq '1'; # is odd?
- _mul($c, $cx, $cx);
+ $c->_mul($pow2, $cx) if substr($y_bin, $len, 1) eq '1'; # is odd?
+ $c->_mul($cx, $cx);
}
- _mul($c, $cx, $pow2);
+ $c->_mul($cx, $pow2);
$cx;
}
@@ -1528,9 +1488,9 @@ sub _nok {
# nok(n, n-k), to minimize the number if iterations in the loop.
{
- my $twok = _mul($c, _two($c), _copy($c, $k)); # 2 * k
- if (_acmp($c, $twok, $n) > 0) { # if 2*k > n
- $k = _sub($c, _copy($c, $n), $k); # k = n - k
+ my $twok = $c->_mul($c->_two(), $c->_copy($k)); # 2 * k
+ if ($c->_acmp($twok, $n) > 0) { # if 2*k > n
+ $k = $c->_sub($c->_copy($n), $k); # k = n - k
}
}
@@ -1540,39 +1500,37 @@ sub _nok {
# | | = --------- = --------------- = --------- = 5 * - * -
# \ 3 / (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
- if (_is_zero($c, $k)) {
+ if ($c->_is_zero($k)) {
@$n = 1;
- }
-
- else {
+ } else {
# Make a copy of the original n, since we'll be modifying n in-place.
- my $n_orig = _copy($c, $n);
+ my $n_orig = $c->_copy($n);
# n = 5, f = 6, d = 2 (cf. example above)
- _sub($c, $n, $k);
- _inc($c, $n);
+ $c->_sub($n, $k);
+ $c->_inc($n);
- my $f = _copy($c, $n);
- _inc($c, $f);
+ my $f = $c->_copy($n);
+ $c->_inc($f);
- my $d = _two($c);
+ my $d = $c->_two();
# while f <= n (the original n, that is) ...
- while (_acmp($c, $f, $n_orig) <= 0) {
+ while ($c->_acmp($f, $n_orig) <= 0) {
# n = (n * f / d) == 5 * 6 / 2 (cf. example above)
- _mul($c, $n, $f);
- _div($c, $n, $d);
+ $c->_mul($n, $f);
+ $c->_div($n, $d);
# f = 7, d = 3 (cf. example above)
- _inc($c, $f);
- _inc($c, $d);
+ $c->_inc($f);
+ $c->_inc($d);
}
}
@@ -1581,1429 +1539,992 @@ sub _nok {
}
my @factorials = (
- 1,
- 1,
- 2,
- 2*3,
- 2*3*4,
- 2*3*4*5,
- 2*3*4*5*6,
- 2*3*4*5*6*7,
-);
-
-sub _fac
- {
- # factorial of $x
- # ref to array, return ref to array
- my ($c,$cx) = @_;
-
- if ((@$cx == 1) && ($cx->[0] <= 7))
- {
- $cx->[0] = $factorials[$cx->[0]]; # 0 => 1, 1 => 1, 2 => 2 etc.
- return $cx;
+ 1,
+ 1,
+ 2,
+ 2*3,
+ 2*3*4,
+ 2*3*4*5,
+ 2*3*4*5*6,
+ 2*3*4*5*6*7,
+ );
+
+sub _fac {
+ # factorial of $x
+ # ref to array, return ref to array
+ my ($c, $cx) = @_;
+
+ if ((@$cx == 1) && ($cx->[0] <= 7)) {
+ $cx->[0] = $factorials[$cx->[0]]; # 0 => 1, 1 => 1, 2 => 2 etc.
+ return $cx;
}
- if ((@$cx == 1) && # we do this only if $x >= 12 and $x <= 7000
- ($cx->[0] >= 12 && $cx->[0] < 7000))
- {
+ if ((@$cx == 1) && # we do this only if $x >= 12 and $x <= 7000
+ ($cx->[0] >= 12 && $cx->[0] < 7000)) {
- # Calculate (k-j) * (k-j+1) ... k .. (k+j-1) * (k + j)
- # See http://blogten.blogspot.com/2007/01/calculating-n.html
- # The above series can be expressed as factors:
- # k * k - (j - i) * 2
- # We cache k*k, and calculate (j * j) as the sum of the first j odd integers
+ # Calculate (k-j) * (k-j+1) ... k .. (k+j-1) * (k + j)
+ # See http://blogten.blogspot.com/2007/01/calculating-n.html
+ # The above series can be expressed as factors:
+ # k * k - (j - i) * 2
+ # We cache k*k, and calculate (j * j) as the sum of the first j odd integers
- # This will not work when N exceeds the storage of a Perl scalar, however,
- # in this case the algorithm would be way to slow to terminate, anyway.
+ # This will not work when N exceeds the storage of a Perl scalar, however,
+ # in this case the algorithm would be way too slow to terminate, anyway.
- # As soon as the last element of $cx is 0, we split it up and remember
- # how many zeors we got so far. The reason is that n! will accumulate
- # zeros at the end rather fast.
- my $zero_elements = 0;
+ # As soon as the last element of $cx is 0, we split it up and remember
+ # how many zeors we got so far. The reason is that n! will accumulate
+ # zeros at the end rather fast.
+ my $zero_elements = 0;
- # If n is even, set n = n -1
- my $k = _num($c,$cx); my $even = 1;
- if (($k & 1) == 0)
- {
- $even = $k; $k --;
- }
- # set k to the center point
- $k = ($k + 1) / 2;
-# print "k $k even: $even\n";
- # now calculate k * k
- my $k2 = $k * $k;
- my $odd = 1; my $sum = 1;
- my $i = $k - 1;
- # keep reference to x
- my $new_x = _new($c, $k * $even);
- @$cx = @$new_x;
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
-# print STDERR "x = ", _str($c,$cx),"\n";
- my $BASE2 = int(sqrt($BASE))-1;
- my $j = 1;
- while ($j <= $i)
- {
- my $m = ($k2 - $sum); $odd += 2; $sum += $odd; $j++;
- while ($j <= $i && ($m < $BASE2) && (($k2 - $sum) < $BASE2))
- {
- $m *= ($k2 - $sum);
- $odd += 2; $sum += $odd; $j++;
-# print STDERR "\n k2 $k2 m $m sum $sum odd $odd\n"; sleep(1);
- }
- if ($m < $BASE)
- {
- _mul($c,$cx,[$m]);
- }
- else
- {
- _mul($c,$cx,$c->_new($m));
- }
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
-# print STDERR "Calculate $k2 - $sum = $m (x = ", _str($c,$cx),")\n";
- }
- # multiply in the zeros again
- unshift @$cx, (0) x $zero_elements;
- return $cx;
- }
-
- # go forward until $base is exceeded
- # limit is either $x steps (steps == 100 means a result always too high) or
- # $base.
- my $steps = 100; $steps = $cx->[0] if @$cx == 1;
- my $r = 2; my $cf = 3; my $step = 2; my $last = $r;
- while ($r*$cf < $BASE && $step < $steps)
- {
- $last = $r; $r *= $cf++; $step++;
- }
- if ((@$cx == 1) && $step == $cx->[0])
- {
- # completely done, so keep reference to $x and return
- $cx->[0] = $r;
- return $cx;
- }
-
- # now we must do the left over steps
- my $n; # steps still to do
- if (scalar @$cx == 1)
- {
- $n = $cx->[0];
- }
- else
- {
- $n = _copy($c,$cx);
- }
-
- # Set $cx to the last result below $BASE (but keep ref to $x)
- $cx->[0] = $last; splice (@$cx,1);
- # As soon as the last element of $cx is 0, we split it up and remember
- # how many zeors we got so far. The reason is that n! will accumulate
- # zeros at the end rather fast.
- my $zero_elements = 0;
-
- # do left-over steps fit into a scalar?
- if (ref $n eq 'ARRAY')
- {
- # No, so use slower inc() & cmp()
- # ($n is at least $BASE here)
- my $base_2 = int(sqrt($BASE)) - 1;
- #print STDERR "base_2: $base_2\n";
- while ($step < $base_2)
- {
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
- my $b = $step * ($step + 1); $step += 2;
- _mul($c,$cx,[$b]);
- }
- $step = [$step];
- while (_acmp($c,$step,$n) <= 0)
- {
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
+ # If n is even, set n = n -1
+ my $k = $c->_num($cx);
+ my $even = 1;
+ if (($k & 1) == 0) {
+ $even = $k;
+ $k --;
}
- _mul($c,$cx,$step); _inc($c,$step);
- }
- }
- else
- {
- # Yes, so we can speed it up slightly
-
-# print "# left over steps $n\n";
-
- my $base_4 = int(sqrt(sqrt($BASE))) - 2;
- #print STDERR "base_4: $base_4\n";
- my $n4 = $n - 4;
- while ($step < $n4 && $step < $base_4)
- {
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
- my $b = $step * ($step + 1); $step += 2; $b *= $step * ($step + 1); $step += 2;
- _mul($c,$cx,[$b]);
- }
- my $base_2 = int(sqrt($BASE)) - 1;
- my $n2 = $n - 2;
- #print STDERR "base_2: $base_2\n";
- while ($step < $n2 && $step < $base_2)
- {
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
- my $b = $step * ($step + 1); $step += 2;
- _mul($c,$cx,[$b]);
- }
- # do what's left over
- while ($step <= $n)
- {
- _mul($c,$cx,[$step]); $step++;
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
+ # set k to the center point
+ $k = ($k + 1) / 2;
+ # print "k $k even: $even\n";
+ # now calculate k * k
+ my $k2 = $k * $k;
+ my $odd = 1;
+ my $sum = 1;
+ my $i = $k - 1;
+ # keep reference to x
+ my $new_x = $c->_new($k * $even);
+ @$cx = @$new_x;
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
}
- }
+ # print STDERR "x = ", $c->_str($cx), "\n";
+ my $BASE2 = int(sqrt($BASE))-1;
+ my $j = 1;
+ while ($j <= $i) {
+ my $m = ($k2 - $sum);
+ $odd += 2;
+ $sum += $odd;
+ $j++;
+ while ($j <= $i && ($m < $BASE2) && (($k2 - $sum) < $BASE2)) {
+ $m *= ($k2 - $sum);
+ $odd += 2;
+ $sum += $odd;
+ $j++;
+ # print STDERR "\n k2 $k2 m $m sum $sum odd $odd\n"; sleep(1);
+ }
+ if ($m < $BASE) {
+ $c->_mul($cx, [$m]);
+ } else {
+ $c->_mul($cx, $c->_new($m));
+ }
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ # print STDERR "Calculate $k2 - $sum = $m (x = ", $c->_str($cx), ")\n";
+ }
+ # multiply in the zeros again
+ unshift @$cx, (0) x $zero_elements;
+ return $cx;
}
- # multiply in the zeros again
- unshift @$cx, (0) x $zero_elements;
- $cx; # return result
- }
-#############################################################################
-
-sub _log_int
- {
- # calculate integer log of $x to base $base
- # ref to array, ref to array - return ref to array
- my ($c,$x,$base) = @_;
-
- # X == 0 => NaN
- return if (scalar @$x == 1 && $x->[0] == 0);
- # BASE 0 or 1 => NaN
- return if (scalar @$base == 1 && $base->[0] < 2);
- my $cmp = _acmp($c,$x,$base); # X == BASE => 1
- if ($cmp == 0)
- {
- splice (@$x,1); $x->[0] = 1;
- return ($x,1)
- }
- # X < BASE
- if ($cmp < 0)
- {
- splice (@$x,1); $x->[0] = 0;
- return ($x,undef);
+ # go forward until $base is exceeded limit is either $x steps (steps == 100
+ # means a result always too high) or $base.
+ my $steps = 100;
+ $steps = $cx->[0] if @$cx == 1;
+ my $r = 2;
+ my $cf = 3;
+ my $step = 2;
+ my $last = $r;
+ while ($r * $cf < $BASE && $step < $steps) {
+ $last = $r;
+ $r *= $cf++;
+ $step++;
+ }
+ if ((@$cx == 1) && $step == $cx->[0]) {
+ # completely done, so keep reference to $x and return
+ $cx->[0] = $r;
+ return $cx;
}
- my $x_org = _copy($c,$x); # preserve x
- splice(@$x,1); $x->[0] = 1; # keep ref to $x
-
- # Compute a guess for the result based on:
- # $guess = int ( length_in_base_10(X) / ( log(base) / log(10) ) )
- my $len = _len($c,$x_org);
- my $log = log($base->[-1]) / log(10);
-
- # for each additional element in $base, we add $BASE_LEN to the result,
- # based on the observation that log($BASE,10) is BASE_LEN and
- # log(x*y) == log(x) + log(y):
- $log += ((scalar @$base)-1) * $BASE_LEN;
-
- # calculate now a guess based on the values obtained above:
- my $res = int($len / $log);
+ # now we must do the left over steps
+ my $n; # steps still to do
+ if (@$cx == 1) {
+ $n = $cx->[0];
+ } else {
+ $n = $c->_copy($cx);
+ }
+
+ # Set $cx to the last result below $BASE (but keep ref to $x)
+ $cx->[0] = $last;
+ splice (@$cx, 1);
+ # As soon as the last element of $cx is 0, we split it up and remember
+ # how many zeors we got so far. The reason is that n! will accumulate
+ # zeros at the end rather fast.
+ my $zero_elements = 0;
+
+ # do left-over steps fit into a scalar?
+ if (ref $n eq 'ARRAY') {
+ # No, so use slower inc() & cmp()
+ # ($n is at least $BASE here)
+ my $base_2 = int(sqrt($BASE)) - 1;
+ #print STDERR "base_2: $base_2\n";
+ while ($step < $base_2) {
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ my $b = $step * ($step + 1);
+ $step += 2;
+ $c->_mul($cx, [$b]);
+ }
+ $step = [$step];
+ while ($c->_acmp($step, $n) <= 0) {
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ $c->_mul($cx, $step);
+ $c->_inc($step);
+ }
+ } else {
+ # Yes, so we can speed it up slightly
+
+ # print "# left over steps $n\n";
+
+ my $base_4 = int(sqrt(sqrt($BASE))) - 2;
+ #print STDERR "base_4: $base_4\n";
+ my $n4 = $n - 4;
+ while ($step < $n4 && $step < $base_4) {
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ my $b = $step * ($step + 1);
+ $step += 2;
+ $b *= $step * ($step + 1);
+ $step += 2;
+ $c->_mul($cx, [$b]);
+ }
+ my $base_2 = int(sqrt($BASE)) - 1;
+ my $n2 = $n - 2;
+ #print STDERR "base_2: $base_2\n";
+ while ($step < $n2 && $step < $base_2) {
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ my $b = $step * ($step + 1);
+ $step += 2;
+ $c->_mul($cx, [$b]);
+ }
+ # do what's left over
+ while ($step <= $n) {
+ $c->_mul($cx, [$step]);
+ $step++;
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ }
+ }
+ # multiply in the zeros again
+ unshift @$cx, (0) x $zero_elements;
+ $cx; # return result
+}
- $x->[0] = $res;
- my $trial = _pow ($c, _copy($c, $base), $x);
- my $a = _acmp($c,$trial,$x_org);
+sub _log_int {
+ # calculate integer log of $x to base $base
+ # ref to array, ref to array - return ref to array
+ my ($c, $x, $base) = @_;
-# print STDERR "# trial ", _str($c,$x)," was: $a (0 = exact, -1 too small, +1 too big)\n";
+ # X == 0 => NaN
+ return if @$x == 1 && $x->[0] == 0;
- # found an exact result?
- return ($x,1) if $a == 0;
+ # BASE 0 or 1 => NaN
+ return if @$base == 1 && $base->[0] < 2;
- if ($a > 0)
- {
- # or too big
- _div($c,$trial,$base); _dec($c, $x);
- while (($a = _acmp($c,$trial,$x_org)) > 0)
- {
-# print STDERR "# big _log_int at ", _str($c,$x), "\n";
- _div($c,$trial,$base); _dec($c, $x);
- }
- # result is now exact (a == 0), or too small (a < 0)
- return ($x, $a == 0 ? 1 : 0);
+ # X == 1 => 0 (is exact)
+ if (@$x == 1 && $x->[0] == 1) {
+ @$x = 0;
+ return $x, 1;
}
- # else: result was to small
- _mul($c,$trial,$base);
-
- # did we now get the right result?
- $a = _acmp($c,$trial,$x_org);
+ my $cmp = $c->_acmp($x, $base);
- if ($a == 0) # yes, exactly
- {
- _inc($c, $x);
- return ($x,1);
+ # X == BASE => 1 (is exact)
+ if ($cmp == 0) {
+ @$x = 1;
+ return $x, 1;
}
- return ($x,0) if $a > 0;
-
- # Result still too small (we should come here only if the estimate above
- # was very off base):
-
- # Now let the normal trial run obtain the real result
- # Simple loop that increments $x by 2 in each step, possible overstepping
- # the real result
- my $base_mul = _mul($c, _copy($c,$base), $base); # $base * $base
-
- while (($a = _acmp($c,$trial,$x_org)) < 0)
- {
-# print STDERR "# small _log_int at ", _str($c,$x), "\n";
- _mul($c,$trial,$base_mul); _add($c, $x, [2]);
+ # 1 < X < BASE => 0 (is truncated)
+ if ($cmp < 0) {
+ @$x = 0;
+ return $x, 0;
}
- my $exact = 1;
- if ($a > 0)
- {
- # overstepped the result
- _dec($c, $x);
- _div($c,$trial,$base);
- $a = _acmp($c,$trial,$x_org);
- if ($a > 0)
- {
- _dec($c, $x);
- }
- $exact = 0 if $a != 0; # a = -1 => not exact result, a = 0 => exact
- }
-
- ($x,$exact); # return result
- }
+ my $x_org = $c->_copy($x); # preserve x
-# for debugging:
- use constant DEBUG => 0;
- my $steps = 0;
- sub steps { $steps };
-
-sub _sqrt
- {
- # square-root of $x in place
- # Compute a guess of the result (by rule of thumb), then improve it via
- # Newton's method.
- my ($c,$x) = @_;
-
- if (scalar @$x == 1)
- {
- # fits into one Perl scalar, so result can be computed directly
- $x->[0] = int(sqrt($x->[0]));
- return $x;
- }
- my $y = _copy($c,$x);
- # hopefully _len/2 is < $BASE, the -1 is to always undershot the guess
- # since our guess will "grow"
- my $l = int((_len($c,$x)-1) / 2);
-
- my $lastelem = $x->[-1]; # for guess
- my $elems = scalar @$x - 1;
- # not enough digits, but could have more?
- if ((length($lastelem) <= 3) && ($elems > 1))
- {
- # right-align with zero pad
- my $len = length($lastelem) & 1;
- print "$lastelem => " if DEBUG;
- $lastelem .= substr($x->[-2] . '0' x $BASE_LEN,0,$BASE_LEN);
- # former odd => make odd again, or former even to even again
- $lastelem = $lastelem / 10 if (length($lastelem) & 1) != $len;
- print "$lastelem\n" if DEBUG;
- }
-
- # construct $x (instead of _lsft($c,$x,$l,10)
- my $r = $l % $BASE_LEN; # 10000 00000 00000 00000 ($BASE_LEN=5)
- $l = int($l / $BASE_LEN);
- print "l = $l " if DEBUG;
-
- splice @$x,$l; # keep ref($x), but modify it
-
- # we make the first part of the guess not '1000...0' but int(sqrt($lastelem))
- # that gives us:
- # 14400 00000 => sqrt(14400) => guess first digits to be 120
- # 144000 000000 => sqrt(144000) => guess 379
-
- print "$lastelem (elems $elems) => " if DEBUG;
- $lastelem = $lastelem / 10 if ($elems & 1 == 1); # odd or even?
- my $g = sqrt($lastelem); $g =~ s/\.//; # 2.345 => 2345
- $r -= 1 if $elems & 1 == 0; # 70 => 7
-
- # padd with zeros if result is too short
- $x->[$l--] = int(substr($g . '0' x $r,0,$r+1));
- print "now ",$x->[-1] if DEBUG;
- print " would have been ", int('1' . '0' x $r),"\n" if DEBUG;
-
- # If @$x > 1, we could compute the second elem of the guess, too, to create
- # an even better guess. Not implemented yet. Does it improve performance?
- $x->[$l--] = 0 while ($l >= 0); # all other digits of guess are zero
-
- print "start x= ",_str($c,$x),"\n" if DEBUG;
- my $two = _two();
- my $last = _zero();
- my $lastlast = _zero();
- $steps = 0 if DEBUG;
- while (_acmp($c,$last,$x) != 0 && _acmp($c,$lastlast,$x) != 0)
- {
- $steps++ if DEBUG;
- $lastlast = _copy($c,$last);
- $last = _copy($c,$x);
- _add($c,$x, _div($c,_copy($c,$y),$x));
- _div($c,$x, $two );
- print " x= ",_str($c,$x),"\n" if DEBUG;
- }
- print "\nsteps in sqrt: $steps, " if DEBUG;
- _dec($c,$x) if _acmp($c,$y,_mul($c,_copy($c,$x),$x)) < 0; # overshot?
- print " final ",$x->[-1],"\n" if DEBUG;
- $x;
- }
-
-sub _root
- {
- # take n'th root of $x in place (n >= 3)
- my ($c,$x,$n) = @_;
-
- if (scalar @$x == 1)
- {
- if (scalar @$n > 1)
- {
- # result will always be smaller than 2 so trunc to 1 at once
- $x->[0] = 1;
- }
- else
- {
- # fits into one Perl scalar, so result can be computed directly
- # cannot use int() here, because it rounds wrongly (try
- # (81 ** 3) ** (1/3) to see what I mean)
- #$x->[0] = int( $x->[0] ** (1 / $n->[0]) );
- # round to 8 digits, then truncate result to integer
- $x->[0] = int ( sprintf ("%.8f", $x->[0] ** (1 / $n->[0]) ) );
- }
- return $x;
- }
+ # Compute a guess for the result based on:
+ # $guess = int ( length_in_base_10(X) / ( log(base) / log(10) ) )
+ my $len = $c->_len($x_org);
+ my $log = log($base->[-1]) / log(10);
- # we know now that X is more than one element long
+ # for each additional element in $base, we add $BASE_LEN to the result,
+ # based on the observation that log($BASE, 10) is BASE_LEN and
+ # log(x*y) == log(x) + log(y):
+ $log += (@$base - 1) * $BASE_LEN;
- # if $n is a power of two, we can repeatedly take sqrt($X) and find the
- # proper result, because sqrt(sqrt($x)) == root($x,4)
- my $b = _as_bin($c,$n);
- if ($b =~ /0b1(0+)$/)
- {
- my $count = CORE::length($1); # 0b100 => len('00') => 2
- my $cnt = $count; # counter for loop
- unshift (@$x, 0); # add one element, together with one
- # more below in the loop this makes 2
- while ($cnt-- > 0)
- {
- # 'inflate' $X by adding one element, basically computing
- # $x * $BASE * $BASE. This gives us more $BASE_LEN digits for result
- # since len(sqrt($X)) approx == len($x) / 2.
- unshift (@$x, 0);
- # calculate sqrt($x), $x is now one element to big, again. In the next
- # round we make that two, again.
- _sqrt($c,$x);
- }
- # $x is now one element to big, so truncate result by removing it
- splice (@$x,0,1);
- }
- else
- {
- # trial computation by starting with 2,4,8,16 etc until we overstep
- my $step;
- my $trial = _two();
-
- # while still to do more than X steps
- do
- {
- $step = _two();
- while (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) < 0)
- {
- _mul ($c, $step, [2]);
- _add ($c, $trial, $step);
- }
+ # calculate now a guess based on the values obtained above:
+ my $res = int($len / $log);
- # hit exactly?
- if (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) == 0)
- {
- @$x = @$trial; # make copy while preserving ref to $x
- return $x;
- }
- # overstepped, so go back on step
- _sub($c, $trial, $step);
- } while (scalar @$step > 1 || $step->[0] > 128);
-
- # reset step to 2
- $step = _two();
- # add two, because $trial cannot be exactly the result (otherwise we would
- # already have found it)
- _add($c, $trial, $step);
-
- # and now add more and more (2,4,6,8,10 etc)
- while (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) < 0)
- {
- _add ($c, $trial, $step);
- }
-
- # hit not exactly? (overstepped)
- if (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) > 0)
- {
- _dec($c,$trial);
- }
-
- # hit not exactly? (overstepped)
- # 80 too small, 81 slightly too big, 82 too big
- if (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) > 0)
- {
- _dec ($c, $trial);
- }
-
- @$x = @$trial; # make copy while preserving ref to $x
- return $x;
- }
- $x;
- }
+ @$x = $res;
+ my $trial = $c->_pow($c->_copy($base), $x);
+ my $acmp = $c->_acmp($trial, $x_org);
-##############################################################################
-# binary stuff
+ # Did we get the exact result?
-sub _and
- {
- my ($c,$x,$y) = @_;
-
- # the shortcut makes equal, large numbers _really_ fast, and makes only a
- # very small performance drop for small numbers (e.g. something with less
- # than 32 bit) Since we optimize for large numbers, this is enabled.
- return $x if _acmp($c,$x,$y) == 0; # shortcut
-
- my $m = _one(); my ($xr,$yr);
- my $mask = $AND_MASK;
-
- my $x1 = $x;
- my $y1 = _copy($c,$y); # make copy
- $x = _zero();
- my ($b,$xrr,$yrr);
- use integer;
- while (!_is_zero($c,$x1) && !_is_zero($c,$y1))
- {
- ($x1, $xr) = _div($c,$x1,$mask);
- ($y1, $yr) = _div($c,$y1,$mask);
-
- # make ints() from $xr, $yr
- # this is when the AND_BITS are greater than $BASE and is slower for
- # small (<256 bits) numbers, but faster for large numbers. Disabled
- # due to KISS principle
-
-# $b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
-# $b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
-# _add($c,$x, _mul($c, _new( $c, ($xrr & $yrr) ), $m) );
-
- # 0+ due to '&' doesn't work in strings
- _add($c,$x, _mul($c, [ 0+$xr->[0] & 0+$yr->[0] ], $m) );
- _mul($c,$m,$mask);
- }
- $x;
- }
-
-sub _xor
- {
- my ($c,$x,$y) = @_;
-
- return _zero() if _acmp($c,$x,$y) == 0; # shortcut (see -and)
-
- my $m = _one(); my ($xr,$yr);
- my $mask = $XOR_MASK;
-
- my $x1 = $x;
- my $y1 = _copy($c,$y); # make copy
- $x = _zero();
- my ($b,$xrr,$yrr);
- use integer;
- while (!_is_zero($c,$x1) && !_is_zero($c,$y1))
- {
- ($x1, $xr) = _div($c,$x1,$mask);
- ($y1, $yr) = _div($c,$y1,$mask);
- # make ints() from $xr, $yr (see _and())
- #$b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
- #$b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
- #_add($c,$x, _mul($c, _new( $c, ($xrr ^ $yrr) ), $m) );
-
- # 0+ due to '^' doesn't work in strings
- _add($c,$x, _mul($c, [ 0+$xr->[0] ^ 0+$yr->[0] ], $m) );
- _mul($c,$m,$mask);
- }
- # the loop stops when the shorter of the two numbers is exhausted
- # the remainder of the longer one will survive bit-by-bit, so we simple
- # multiply-add it in
- _add($c,$x, _mul($c, $x1, $m) ) if !_is_zero($c,$x1);
- _add($c,$x, _mul($c, $y1, $m) ) if !_is_zero($c,$y1);
-
- $x;
- }
-
-sub _or
- {
- my ($c,$x,$y) = @_;
-
- return $x if _acmp($c,$x,$y) == 0; # shortcut (see _and)
-
- my $m = _one(); my ($xr,$yr);
- my $mask = $OR_MASK;
-
- my $x1 = $x;
- my $y1 = _copy($c,$y); # make copy
- $x = _zero();
- my ($b,$xrr,$yrr);
- use integer;
- while (!_is_zero($c,$x1) && !_is_zero($c,$y1))
- {
- ($x1, $xr) = _div($c,$x1,$mask);
- ($y1, $yr) = _div($c,$y1,$mask);
- # make ints() from $xr, $yr (see _and())
-# $b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
-# $b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
-# _add($c,$x, _mul($c, _new( $c, ($xrr | $yrr) ), $m) );
-
- # 0+ due to '|' doesn't work in strings
- _add($c,$x, _mul($c, [ 0+$xr->[0] | 0+$yr->[0] ], $m) );
- _mul($c,$m,$mask);
- }
- # the loop stops when the shorter of the two numbers is exhausted
- # the remainder of the longer one will survive bit-by-bit, so we simple
- # multiply-add it in
- _add($c,$x, _mul($c, $x1, $m) ) if !_is_zero($c,$x1);
- _add($c,$x, _mul($c, $y1, $m) ) if !_is_zero($c,$y1);
-
- $x;
- }
-
-sub _as_hex
- {
- # convert a decimal number to hex (ref to array, return ref to string)
- my ($c,$x) = @_;
-
- # fits into one element (handle also 0x0 case)
- return sprintf("0x%x",$x->[0]) if @$x == 1;
-
- my $x1 = _copy($c,$x);
-
- my $es = '';
- my ($xr, $h, $x10000);
- if ($] >= 5.006)
- {
- $x10000 = [ 0x10000 ]; $h = 'h4';
- }
- else
- {
- $x10000 = [ 0x1000 ]; $h = 'h3';
- }
- while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
- {
- ($x1, $xr) = _div($c,$x1,$x10000);
- $es .= unpack($h,pack('V',$xr->[0]));
- }
- $es = reverse $es;
- $es =~ s/^[0]+//; # strip leading zeros
- '0x' . $es; # return result prepended with 0x
- }
-
-sub _as_bin
- {
- # convert a decimal number to bin (ref to array, return ref to string)
- my ($c,$x) = @_;
-
- # fits into one element (and Perl recent enough), handle also 0b0 case
- # handle zero case for older Perls
- if ($] <= 5.005 && @$x == 1 && $x->[0] == 0)
- {
- my $t = '0b0'; return $t;
- }
- if (@$x == 1 && $] >= 5.006)
- {
- my $t = sprintf("0b%b",$x->[0]);
- return $t;
- }
- my $x1 = _copy($c,$x);
+ return $x, 1 if $acmp == 0;
- my $es = '';
- my ($xr, $b, $x10000);
- if ($] >= 5.006)
- {
- $x10000 = [ 0x10000 ]; $b = 'b16';
- }
- else
- {
- $x10000 = [ 0x1000 ]; $b = 'b12';
- }
- while (!(@$x1 == 1 && $x1->[0] == 0)) # _is_zero()
- {
- ($x1, $xr) = _div($c,$x1,$x10000);
- $es .= unpack($b,pack('v',$xr->[0]));
- }
- $es = reverse $es;
- $es =~ s/^[0]+//; # strip leading zeros
- '0b' . $es; # return result prepended with 0b
- }
+ # Too small?
-sub _as_oct
- {
- # convert a decimal number to octal (ref to array, return ref to string)
- my ($c,$x) = @_;
-
- # fits into one element (handle also 0 case)
- return sprintf("0%o",$x->[0]) if @$x == 1;
+ while ($acmp < 0) {
+ $c->_mul($trial, $base);
+ $c->_inc($x);
+ $acmp = $c->_acmp($trial, $x_org);
+ }
- my $x1 = _copy($c,$x);
+ # Too big?
- my $es = '';
- my $xr;
- my $x1000 = [ 0100000 ];
- while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
- {
- ($x1, $xr) = _div($c,$x1,$x1000);
- $es .= reverse sprintf("%05o", $xr->[0]);
+ while ($acmp > 0) {
+ $c->_div($trial, $base);
+ $c->_dec($x);
+ $acmp = $c->_acmp($trial, $x_org);
}
- $es = reverse $es;
- $es =~ s/^0+//; # strip leading zeros
- '0' . $es; # return result prepended with 0
- }
-
-sub _from_oct
- {
- # convert a octal number to decimal (string, return ref to array)
- my ($c,$os) = @_;
- # for older Perls, play safe
- my $m = [ 0100000 ];
- my $d = 5; # 5 digits at a time
+ return $x, 1 if $acmp == 0; # result is exact
+ return $x, 0; # result is too small
+}
- my $mul = _one();
- my $x = _zero();
+# for debugging:
+use constant DEBUG => 0;
+my $steps = 0;
+sub steps { $steps };
+
+sub _sqrt {
+ # square-root of $x in place
+ # Compute a guess of the result (by rule of thumb), then improve it via
+ # Newton's method.
+ my ($c, $x) = @_;
- my $len = int( (length($os)-1)/$d ); # $d digit parts, w/o the '0'
- my $val; my $i = -$d;
- while ($len >= 0)
- {
- $val = substr($os,$i,$d); # get oct digits
- $val = CORE::oct($val);
- $i -= $d; $len --;
- my $adder = [ $val ];
- _add ($c, $x, _mul ($c, $adder, $mul ) ) if $val != 0;
- _mul ($c, $mul, $m ) if $len >= 0; # skip last mul
- }
- $x;
- }
-
-sub _from_hex
- {
- # convert a hex number to decimal (string, return ref to array)
- my ($c,$hs) = @_;
-
- my $m = _new($c, 0x10000000); # 28 bit at a time (<32 bit!)
- my $d = 7; # 7 digits at a time
- if ($] <= 5.006)
- {
- # for older Perls, play safe
- $m = [ 0x10000 ]; # 16 bit at a time (<32 bit!)
- $d = 4; # 4 digits at a time
+ if (@$x == 1) {
+ # fits into one Perl scalar, so result can be computed directly
+ $x->[0] = int(sqrt($x->[0]));
+ return $x;
}
+ my $y = $c->_copy($x);
+ # hopefully _len/2 is < $BASE, the -1 is to always undershot the guess
+ # since our guess will "grow"
+ my $l = int(($c->_len($x)-1) / 2);
+
+ my $lastelem = $x->[-1]; # for guess
+ my $elems = @$x - 1;
+ # not enough digits, but could have more?
+ if ((length($lastelem) <= 3) && ($elems > 1)) {
+ # right-align with zero pad
+ my $len = length($lastelem) & 1;
+ print "$lastelem => " if DEBUG;
+ $lastelem .= substr($x->[-2] . '0' x $BASE_LEN, 0, $BASE_LEN);
+ # former odd => make odd again, or former even to even again
+ $lastelem = $lastelem / 10 if (length($lastelem) & 1) != $len;
+ print "$lastelem\n" if DEBUG;
+ }
+
+ # construct $x (instead of $c->_lsft($x, $l, 10)
+ my $r = $l % $BASE_LEN; # 10000 00000 00000 00000 ($BASE_LEN=5)
+ $l = int($l / $BASE_LEN);
+ print "l = $l " if DEBUG;
+
+ splice @$x, $l; # keep ref($x), but modify it
+
+ # we make the first part of the guess not '1000...0' but int(sqrt($lastelem))
+ # that gives us:
+ # 14400 00000 => sqrt(14400) => guess first digits to be 120
+ # 144000 000000 => sqrt(144000) => guess 379
+
+ print "$lastelem (elems $elems) => " if DEBUG;
+ $lastelem = $lastelem / 10 if ($elems & 1 == 1); # odd or even?
+ my $g = sqrt($lastelem);
+ $g =~ s/\.//; # 2.345 => 2345
+ $r -= 1 if $elems & 1 == 0; # 70 => 7
+
+ # padd with zeros if result is too short
+ $x->[$l--] = int(substr($g . '0' x $r, 0, $r+1));
+ print "now ", $x->[-1] if DEBUG;
+ print " would have been ", int('1' . '0' x $r), "\n" if DEBUG;
+
+ # If @$x > 1, we could compute the second elem of the guess, too, to create
+ # an even better guess. Not implemented yet. Does it improve performance?
+ $x->[$l--] = 0 while ($l >= 0); # all other digits of guess are zero
+
+ print "start x= ", $c->_str($x), "\n" if DEBUG;
+ my $two = $c->_two();
+ my $last = $c->_zero();
+ my $lastlast = $c->_zero();
+ $steps = 0 if DEBUG;
+ while ($c->_acmp($last, $x) != 0 && $c->_acmp($lastlast, $x) != 0) {
+ $steps++ if DEBUG;
+ $lastlast = $c->_copy($last);
+ $last = $c->_copy($x);
+ $c->_add($x, $c->_div($c->_copy($y), $x));
+ $c->_div($x, $two );
+ print " x= ", $c->_str($x), "\n" if DEBUG;
+ }
+ print "\nsteps in sqrt: $steps, " if DEBUG;
+ $c->_dec($x) if $c->_acmp($y, $c->_mul($c->_copy($x), $x)) < 0; # overshot?
+ print " final ", $x->[-1], "\n" if DEBUG;
+ $x;
+}
- my $mul = _one();
- my $x = _zero();
+sub _root {
+ # Take n'th root of $x in place.
- my $len = int( (length($hs)-2)/$d ); # $d digit parts, w/o the '0x'
- my $val; my $i = -$d;
- while ($len >= 0)
- {
- $val = substr($hs,$i,$d); # get hex digits
- $val =~ s/^0x// if $len == 0; # for last part only because
- $val = CORE::hex($val); # hex does not like wrong chars
- $i -= $d; $len --;
- my $adder = [ $val ];
- # if the resulting number was to big to fit into one element, create a
- # two-element version (bug found by Mark Lakata - Thanx!)
- if (CORE::length($val) > $BASE_LEN)
- {
- $adder = _new($c,$val);
- }
- _add ($c, $x, _mul ($c, $adder, $mul ) ) if $val != 0;
- _mul ($c, $mul, $m ) if $len >= 0; # skip last mul
- }
- $x;
- }
-
-sub _from_bin
- {
- # convert a hex number to decimal (string, return ref to array)
- my ($c,$bs) = @_;
-
- # instead of converting X (8) bit at a time, it is faster to "convert" the
- # number to hex, and then call _from_hex.
-
- my $hs = $bs;
- $hs =~ s/^[+-]?0b//; # remove sign and 0b
- my $l = length($hs); # bits
- $hs = '0' x (8-($l % 8)) . $hs if ($l % 8) != 0; # padd left side w/ 0
- my $h = '0x' . unpack('H*', pack ('B*', $hs)); # repack as hex
-
- $c->_from_hex($h);
- }
+ my ($c, $x, $n) = @_;
-##############################################################################
-# special modulus functions
+ # Small numbers.
-sub _modinv
- {
- # modular multiplicative inverse
- my ($c,$x,$y) = @_;
-
- # modulo zero
- if (_is_zero($c, $y)) {
- return (undef, undef);
- }
-
- # modulo one
- if (_is_one($c, $y)) {
- return (_zero($c), '+');
- }
-
- my $u = _zero($c);
- my $v = _one($c);
- my $a = _copy($c,$y);
- my $b = _copy($c,$x);
-
- # Euclid's Algorithm for bgcd(), only that we calc bgcd() ($a) and the result
- # ($u) at the same time. See comments in BigInt for why this works.
- my $q;
- my $sign = 1;
- {
- ($a, $q, $b) = ($b, _div($c, $a, $b)); # step 1
- last if _is_zero($c, $b);
-
- my $t = _add($c, # step 2:
- _mul($c, _copy($c, $v), $q) , # t = v * q
- $u ); # + u
- $u = $v; # u = v
- $v = $t; # v = t
- $sign = -$sign;
- redo;
- }
-
- # if the gcd is not 1, then return NaN
- return (undef, undef) unless _is_one($c, $a);
-
- ($v, $sign == 1 ? '+' : '-');
- }
-
-sub _modpow
- {
- # modulus of power ($x ** $y) % $z
- my ($c,$num,$exp,$mod) = @_;
-
- # a^b (mod 1) = 0 for all a and b
- if (_is_one($c,$mod))
- {
- @$num = 0;
- return $num;
+ if (@$x == 1 && @$n == 1) {
+ # Result can be computed directly. Adjust initial result for numerical
+ # errors, e.g., int(1000**(1/3)) is 2, not 3.
+ my $y = int($x->[0] ** (1 / $n->[0]));
+ my $yp1 = $y + 1;
+ $y = $yp1 if $yp1 ** $n->[0] == $x->[0];
+ $x->[0] = $y;
+ return $x;
}
- # 0^a (mod m) = 0 if m != 0, a != 0
- # 0^0 (mod m) = 1 if m != 0
- if (_is_zero($c, $num)) {
- if (_is_zero($c, $exp)) {
- @$num = 1;
- } else {
- @$num = 0;
- }
- return $num;
- }
+ # If x <= n, the result is always (truncated to) 1.
-# $num = _mod($c,$num,$mod); # this does not make it faster
-
- my $acc = _copy($c,$num); my $t = _one();
-
- my $expbin = _as_bin($c,$exp); $expbin =~ s/^0b//;
- my $len = length($expbin);
- while (--$len >= 0)
+ if ((@$x > 1 || $x -> [0] > 0) && # if x is non-zero ...
+ $c -> _acmp($x, $n) <= 0) # ... and x <= n
{
- if ( substr($expbin,$len,1) eq '1') # is_odd
- {
- _mul($c,$t,$acc);
- $t = _mod($c,$t,$mod);
- }
- _mul($c,$acc,$acc);
- $acc = _mod($c,$acc,$mod);
- }
- @$num = @$t;
- $num;
- }
-
-sub _gcd {
- # Greatest common divisor.
-
- my ($c, $x, $y) = @_;
-
- # gcd(0,0) = 0
- # gcd(0,a) = a, if a != 0
-
- if (@$x == 1 && $x->[0] == 0) {
- if (@$y == 1 && $y->[0] == 0) {
- @$x = 0;
- } else {
- @$x = @$y;
- }
+ my $one = $x -> _one();
+ @$x = @$one;
return $x;
}
- # Until $y is zero ...
-
- until (@$y == 1 && $y->[0] == 0) {
-
- # Compute remainder.
-
- _mod($c, $x, $y);
+ # If $n is a power of two, take sqrt($x) repeatedly, e.g., root($x, 4) =
+ # sqrt(sqrt($x)), root($x, 8) = sqrt(sqrt(sqrt($x))).
+
+ my $b = $c -> _as_bin($n);
+ if ($b =~ /0b1(0+)$/) {
+ my $count = length($1); # 0b100 => len('00') => 2
+ my $cnt = $count; # counter for loop
+ unshift @$x, 0; # add one element, together with one
+ # more below in the loop this makes 2
+ while ($cnt-- > 0) {
+ # 'Inflate' $x by adding one element, basically computing
+ # $x * $BASE * $BASE. This gives us more $BASE_LEN digits for
+ # result since len(sqrt($X)) approx == len($x) / 2.
+ unshift @$x, 0;
+ # Calculate sqrt($x), $x is now one element to big, again. In the
+ # next round we make that two, again.
+ $c -> _sqrt($x);
+ }
- # Swap $x and $y.
+ # $x is now one element too big, so truncate result by removing it.
+ shift @$x;
- my $tmp = [ @$x ];
- @$x = @$y;
- $y = $tmp; # no deref here; that would modify input $y
+ return $x;
}
- return $x;
-}
-
-##############################################################################
-##############################################################################
-
-1;
-__END__
-
-=pod
-
-=head1 NAME
-
-Math::BigInt::Calc - Pure Perl module to support Math::BigInt
-
-=head1 SYNOPSIS
-
-This library provides support for big integer calculations. It is not
-intended to be used by other modules. Other modules which support the same
-API (see below) can also be used to support Math::BigInt, like
-Math::BigInt::GMP and Math::BigInt::Pari.
-
-=head1 DESCRIPTION
-
-In this library, the numbers are represented in base B = 10**N, where N is
-the largest possible value that does not cause overflow in the intermediate
-computations. The base B elements are stored in an array, with the least
-significant element stored in array element zero. There are no leading zero
-elements, except a single zero element when the number is zero.
-
-For instance, if B = 10000, the number 1234567890 is represented internally
-as [3456, 7890, 12].
-
-=head1 THE Math::BigInt API
-
-In order to allow for multiple big integer libraries, Math::BigInt was
-rewritten to use a plug-in library for core math routines. Any module which
-conforms to the API can be used by Math::BigInt by using this in your program:
-
- use Math::BigInt lib => 'libname';
-
-'libname' is either the long name, like 'Math::BigInt::Pari', or only the short
-version, like 'Pari'.
-
-=head2 General Notes
-
-A library only needs to deal with unsigned big integers. Testing of input
-parameter validity is done by the caller, so there is no need to worry about
-underflow (e.g., in C<_sub()> and C<_dec()>) nor about division by zero (e.g.,
-in C<_div()>) or similar cases.
-
-For some methods, the first parameter can be modified. That includes the
-possibility that you return a reference to a completely different object
-instead. Although keeping the reference and just changing its contents is
-preferred over creating and returning a different reference.
-
-Return values are always objects, strings, Perl scalars, or true/false for
-comparison routines.
-
-=head2 API version 1
-
-The following methods must be defined in order to support the use by
-Math::BigInt v1.70 or later.
-
-=head3 API version
-
-=over 4
-
-=item I<api_version()>
-
-Return API version as a Perl scalar, 1 for Math::BigInt v1.70, 2 for
-Math::BigInt v1.83.
-
-=back
-
-=head3 Constructors
-
-=over 4
-
-=item I<_new(STR)>
-
-Convert a string representing an unsigned decimal number to an object
-representing the same number. The input is normalize, i.e., it matches
-C<^(0|[1-9]\d*)$>.
-
-=item I<_zero()>
-
-Return an object representing the number zero.
-
-=item I<_one()>
-
-Return an object representing the number one.
-
-=item I<_two()>
-
-Return an object representing the number two.
-
-=item I<_ten()>
-
-Return an object representing the number ten.
-
-=item I<_from_bin(STR)>
-
-Return an object given a string representing a binary number. The input has a
-'0b' prefix and matches the regular expression C<^0[bB](0|1[01]*)$>.
-
-=item I<_from_oct(STR)>
-
-Return an object given a string representing an octal number. The input has a
-'0' prefix and matches the regular expression C<^0[1-7]*$>.
-
-=item I<_from_hex(STR)>
-
-Return an object given a string representing a hexadecimal number. The input
-has a '0x' prefix and matches the regular expression
-C<^0x(0|[1-9a-fA-F][\da-fA-F]*)$>.
-
-=back
-
-=head3 Mathematical functions
-
-Each of these methods may modify the first input argument, except I<_bgcd()>,
-which shall not modify any input argument, and I<_sub()> which may modify the
-second input argument.
-
-=over 4
-
-=item I<_add(OBJ1, OBJ2)>
-
-Returns the result of adding OBJ2 to OBJ1.
-
-=item I<_mul(OBJ1, OBJ2)>
-
-Returns the result of multiplying OBJ2 and OBJ1.
-
-=item I<_div(OBJ1, OBJ2)>
-
-Returns the result of dividing OBJ1 by OBJ2 and truncating the result to an
-integer.
-
-=item I<_sub(OBJ1, OBJ2, FLAG)>
-
-=item I<_sub(OBJ1, OBJ2)>
-
-Returns the result of subtracting OBJ2 by OBJ1. If C<flag> is false or omitted,
-OBJ1 might be modified. If C<flag> is true, OBJ2 might be modified.
-
-=item I<_dec(OBJ)>
-
-Decrement OBJ by one.
-
-=item I<_inc(OBJ)>
-
-Increment OBJ by one.
-
-=item I<_mod(OBJ1, OBJ2)>
-
-Return OBJ1 modulo OBJ2, i.e., the remainder after dividing OBJ1 by OBJ2.
-
-=item I<_sqrt(OBJ)>
-
-Return the square root of the object, truncated to integer.
-
-=item I<_root(OBJ, N)>
-
-Return Nth root of the object, truncated to int. N is E<gt>= 3.
-
-=item I<_fac(OBJ)>
-
-Return factorial of object (1*2*3*4*...).
-
-=item I<_pow(OBJ1, OBJ2)>
-
-Return OBJ1 to the power of OBJ2. By convention, 0**0 = 1.
-
-=item I<_modinv(OBJ1, OBJ2)>
-
-Return modular multiplicative inverse, i.e., return OBJ3 so that
-
- (OBJ3 * OBJ1) % OBJ2 = 1 % OBJ2
-
-The result is returned as two arguments. If the modular multiplicative
-inverse does not exist, both arguments are undefined. Otherwise, the
-arguments are a number (object) and its sign ("+" or "-").
-
-The output value, with its sign, must either be a positive value in the
-range 1,2,...,OBJ2-1 or the same value subtracted OBJ2. For instance, if the
-input arguments are objects representing the numbers 7 and 5, the method
-must either return an object representing the number 3 and a "+" sign, since
-(3*7) % 5 = 1 % 5, or an object representing the number 2 and "-" sign,
-since (-2*7) % 5 = 1 % 5.
-
-=item I<_modpow(OBJ1, OBJ2, OBJ3)>
-
-Return modular exponentiation, (OBJ1 ** OBJ2) % OBJ3.
-
-=item I<_rsft(OBJ, N, B)>
-
-Shift object N digits right in base B and return the resulting object. This is
-equivalent to performing integer division by B**N and discarding the remainder,
-except that it might be much faster, depending on how the number is represented
-internally.
-
-For instance, if the object $obj represents the hexadecimal number 0xabcde,
-then C<_rsft($obj, 2, 16)> returns an object representing the number 0xabc. The
-"remainer", 0xde, is discarded and not returned.
-
-=item I<_lsft(OBJ, N, B)>
-
-Shift the object N digits left in base B. This is equivalent to multiplying by
-B**N, except that it might be much faster, depending on how the number is
-represented internally.
-
-=item I<_log_int(OBJ, B)>
-
-Return integer log of OBJ to base BASE. This method has two output arguments,
-the OBJECT and a STATUS. The STATUS is Perl scalar; it is 1 if OBJ is the exact
-result, 0 if the result was truncted to give OBJ, and undef if it is unknown
-whether OBJ is the exact result.
+ my $DEBUG = 0;
-=item I<_gcd(OBJ1, OBJ2)>
+ # Now the general case. This works by finding an initial guess. If this
+ # guess is incorrect, a relatively small delta is chosen. This delta is
+ # used to find a lower and upper limit for the correct value. The delta is
+ # doubled in each iteration. When a lower and upper limit is found,
+ # bisection is applied to narrow down the region until we have the correct
+ # value.
-Return the greatest common divisor of OBJ1 and OBJ2.
-
-=back
-
-=head3 Bitwise operators
-
-Each of these methods may modify the first input argument.
-
-=over 4
-
-=item I<_and(OBJ1, OBJ2)>
-
-Return bitwise and. If necessary, the smallest number is padded with leading
-zeros.
-
-=item I<_or(OBJ1, OBJ2)>
-
-Return bitwise or. If necessary, the smallest number is padded with leading
-zeros.
-
-=item I<_xor(OBJ1, OBJ2)>
-
-Return bitwise exclusive or. If necessary, the smallest number is padded
-with leading zeros.
-
-=back
-
-=head3 Boolean operators
-
-=over 4
-
-=item I<_is_zero(OBJ)>
-
-Returns a true value if OBJ is zero, and false value otherwise.
-
-=item I<_is_one(OBJ)>
-
-Returns a true value if OBJ is one, and false value otherwise.
-
-=item I<_is_two(OBJ)>
-
-Returns a true value if OBJ is two, and false value otherwise.
-
-=item I<_is_ten(OBJ)>
-
-Returns a true value if OBJ is ten, and false value otherwise.
-
-=item I<_is_even(OBJ)>
-
-Return a true value if OBJ is an even integer, and a false value otherwise.
-
-=item I<_is_odd(OBJ)>
-
-Return a true value if OBJ is an even integer, and a false value otherwise.
-
-=item I<_acmp(OBJ1, OBJ2)>
-
-Compare OBJ1 and OBJ2 and return -1, 0, or 1, if OBJ1 is less than, equal
-to, or larger than OBJ2, respectively.
-
-=back
-
-=head3 String conversion
-
-=over 4
-
-=item I<_str(OBJ)>
-
-Return a string representing the object. The returned string should have no
-leading zeros, i.e., it should match C<^(0|[1-9]\d*)$>.
-
-=item I<_as_bin(OBJ)>
-
-Return the binary string representation of the number. The string must have a
-'0b' prefix.
+ # Split x into mantissa and exponent in base 10, so that
+ #
+ # x = xm * 10^xe, where 0 < xm < 1 and xe is an integer
-=item I<_as_oct(OBJ)>
+ my $x_str = $c -> _str($x);
+ my $xm = "." . $x_str;
+ my $xe = length($x_str);
-Return the octal string representation of the number. The string must have
-a '0x' prefix.
+ # From this we compute the base 10 logarithm of x
+ #
+ # log_10(x) = log_10(xm) + log_10(xe^10)
+ # = log(xm)/log(10) + xe
+ #
+ # and then the base 10 logarithm of y, where y = x^(1/n)
+ #
+ # log_10(y) = log_10(x)/n
-Note: This method was required from Math::BigInt version 1.78, but the required
-API version number was not incremented, so there are older libraries that
-support API version 1, but do not support C<_as_oct()>.
+ my $log10x = log($xm) / log(10) + $xe;
+ my $log10y = $log10x / $c -> _num($n);
-=item I<_as_hex(OBJ)>
+ # And from this we compute ym and ye, the mantissa and exponent (in
+ # base 10) of y, where 1 < ym <= 10 and ye is an integer.
-Return the hexadecimal string representation of the number. The string must
-have a '0x' prefix.
+ my $ye = int $log10y;
+ my $ym = 10 ** ($log10y - $ye);
-=back
+ # Finally, we scale the mantissa and exponent to incraese the integer
+ # part of ym, before building the string representing our guess of y.
-=head3 Numeric conversion
+ if ($DEBUG) {
+ print "\n";
+ print "xm = $xm\n";
+ print "xe = $xe\n";
+ print "log10x = $log10x\n";
+ print "log10y = $log10y\n";
+ print "ym = $ym\n";
+ print "ye = $ye\n";
+ print "\n";
+ }
-=over 4
+ my $d = $ye < 15 ? $ye : 15;
+ $ym *= 10 ** $d;
+ $ye -= $d;
-=item I<_num(OBJ)>
+ my $y_str = sprintf('%.0f', $ym) . "0" x $ye;
+ my $y = $c -> _new($y_str);
-Given an object, return a Perl scalar number (int/float) representing this
-number.
+ if ($DEBUG) {
+ print "ym = $ym\n";
+ print "ye = $ye\n";
+ print "\n";
+ print "y_str = $y_str (initial guess)\n";
+ print "\n";
+ }
-=back
+ # See if our guess y is correct.
-=head3 Miscellaneous
+ my $trial = $c -> _pow($c -> _copy($y), $n);
+ my $acmp = $c -> _acmp($trial, $x);
-=over 4
+ if ($acmp == 0) {
+ @$x = @$y;
+ return $x;
+ }
-=item I<_copy(OBJ)>
+ # Find a lower and upper limit for the correct value of y. Start off with a
+ # delta value that is approximately the size of the accuracy of the guess.
+
+ my $lower;
+ my $upper;
+
+ my $delta = $c -> _new("1" . ("0" x $ye));
+ my $two = $c -> _two();
+
+ if ($acmp < 0) {
+ $lower = $y;
+ while ($acmp < 0) {
+ $upper = $c -> _add($c -> _copy($lower), $delta);
+
+ if ($DEBUG) {
+ print "lower = $lower\n";
+ print "upper = $upper\n";
+ print "delta = $delta\n";
+ print "\n";
+ }
+ $acmp = $c -> _acmp($c -> _pow($c -> _copy($upper), $n), $x);
+ if ($acmp == 0) {
+ @$x = @$upper;
+ return $x;
+ }
+ $delta = $c -> _mul($delta, $two);
+ }
+ }
-Return a true copy of the object.
+ elsif ($acmp > 0) {
+ $upper = $y;
+ my $zero = $c -> _zero();
+ while ($acmp > 0) {
+ if ($c -> _acmp($upper, $delta) <= 0) {
+ $lower = $c -> _zero();
+ last;
+ }
+ $lower = $c -> _sub($c -> _copy($upper), $delta);
+
+ if ($DEBUG) {
+ print "lower = $lower\n";
+ print "upper = $upper\n";
+ print "delta = $delta\n";
+ print "\n";
+ }
+ $acmp = $c -> _acmp($c -> _pow($c -> _copy($lower), $n), $x);
+ if ($acmp == 0) {
+ @$x = @$lower;
+ return $x;
+ }
+ $delta = $c -> _mul($delta, $two);
+ }
+ }
-=item I<_len(OBJ)>
+ # Use bisection to narrow down the interval.
-Returns the number of the decimal digits in the number. The output is a
-Perl scalar.
+ my $one = $c -> _one();
+ {
-=item I<_zeros(OBJ)>
+ $delta = $c -> _sub($c -> _copy($upper), $lower);
+ if ($c -> _acmp($delta, $one) <= 0) {
+ @$x = @$lower;
+ return $x;
+ }
-Return the number of trailing decimal zeros. The output is a Perl scalar.
+ if ($DEBUG) {
+ print "lower = $lower\n";
+ print "upper = $upper\n";
+ print "delta = $delta\n";
+ print "\n";
+ }
-=item I<_digit(OBJ, N)>
+ $delta = $c -> _div($delta, $two);
+ my $middle = $c -> _add($c -> _copy($lower), $delta);
-Return the Nth digit as a Perl scalar. N is a Perl scalar, where zero refers to
-the rightmost (least significant) digit, and negative values count from the
-left (most significant digit). If $obj represents the number 123, then
-I<_digit($obj, 0)> is 3 and I<_digit(123, -1)> is 1.
+ $acmp = $c -> _acmp($c -> _pow($c -> _copy($middle), $n), $x);
+ if ($acmp < 0) {
+ $lower = $middle;
+ } elsif ($acmp > 0) {
+ $upper = $middle;
+ } else {
+ @$x = @$middle;
+ return $x;
+ }
-=item I<_check(OBJ)>
+ redo;
+ }
-Return a true value if the object is OK, and a false value otherwise. This is a
-check routine to test the internal state of the object for corruption.
+ $x;
+}
-=back
+##############################################################################
+# binary stuff
-=head2 API version 2
+sub _and {
+ my ($c, $x, $y) = @_;
-The following methods are required for an API version of 2 or greater.
+ # the shortcut makes equal, large numbers _really_ fast, and makes only a
+ # very small performance drop for small numbers (e.g. something with less
+ # than 32 bit) Since we optimize for large numbers, this is enabled.
+ return $x if $c->_acmp($x, $y) == 0; # shortcut
-=head3 Constructors
+ my $m = $c->_one();
+ my ($xr, $yr);
+ my $mask = $AND_MASK;
-=over 4
+ my $x1 = $c->_copy($x);
+ my $y1 = $c->_copy($y);
+ my $z = $c->_zero();
-=item I<_1ex(N)>
+ use integer;
+ until ($c->_is_zero($x1) || $c->_is_zero($y1)) {
+ ($x1, $xr) = $c->_div($x1, $mask);
+ ($y1, $yr) = $c->_div($y1, $mask);
-Return an object representing the number 10**N where N E<gt>= 0 is a Perl
-scalar.
+ $c->_add($z, $c->_mul([ 0 + $xr->[0] & 0 + $yr->[0] ], $m));
+ $c->_mul($m, $mask);
+ }
-=back
+ @$x = @$z;
+ return $x;
+}
-=head3 Mathematical functions
+sub _xor {
+ my ($c, $x, $y) = @_;
-=over 4
+ return $c->_zero() if $c->_acmp($x, $y) == 0; # shortcut (see -and)
-=item I<_nok(OBJ1, OBJ2)>
+ my $m = $c->_one();
+ my ($xr, $yr);
+ my $mask = $XOR_MASK;
-Return the binomial coefficient OBJ1 over OBJ1.
+ my $x1 = $c->_copy($x);
+ my $y1 = $c->_copy($y); # make copy
+ my $z = $c->_zero();
-=back
+ use integer;
+ until ($c->_is_zero($x1) || $c->_is_zero($y1)) {
+ ($x1, $xr) = $c->_div($x1, $mask);
+ ($y1, $yr) = $c->_div($y1, $mask);
+ # make ints() from $xr, $yr (see _and())
+ #$b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
+ #$b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
+ #$c->_add($x, $c->_mul($c->_new($xrr ^ $yrr)), $m) );
+
+ $c->_add($z, $c->_mul([ 0 + $xr->[0] ^ 0 + $yr->[0] ], $m));
+ $c->_mul($m, $mask);
+ }
+ # the loop stops when the shorter of the two numbers is exhausted
+ # the remainder of the longer one will survive bit-by-bit, so we simple
+ # multiply-add it in
+ $c->_add($z, $c->_mul($x1, $m) ) if !$c->_is_zero($x1);
+ $c->_add($z, $c->_mul($y1, $m) ) if !$c->_is_zero($y1);
+
+ @$x = @$z;
+ return $x;
+}
-=head3 Miscellaneous
+sub _or {
+ my ($c, $x, $y) = @_;
-=over 4
+ return $x if $c->_acmp($x, $y) == 0; # shortcut (see _and)
-=item I<_alen(OBJ)>
+ my $m = $c->_one();
+ my ($xr, $yr);
+ my $mask = $OR_MASK;
-Return the approximate number of decimal digits of the object. The
-output is one Perl scalar. This estimate must be greater than or equal
-to what C<_len()> returns.
+ my $x1 = $c->_copy($x);
+ my $y1 = $c->_copy($y); # make copy
+ my $z = $c->_zero();
-=back
+ use integer;
+ until ($c->_is_zero($x1) || $c->_is_zero($y1)) {
+ ($x1, $xr) = $c->_div($x1, $mask);
+ ($y1, $yr) = $c->_div($y1, $mask);
+ # make ints() from $xr, $yr (see _and())
+ # $b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
+ # $b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
+ # $c->_add($x, $c->_mul(_new( $c, ($xrr | $yrr) ), $m) );
+
+ $c->_add($z, $c->_mul([ 0 + $xr->[0] | 0 + $yr->[0] ], $m));
+ $c->_mul($m, $mask);
+ }
+ # the loop stops when the shorter of the two numbers is exhausted
+ # the remainder of the longer one will survive bit-by-bit, so we simple
+ # multiply-add it in
+ $c->_add($z, $c->_mul($x1, $m) ) if !$c->_is_zero($x1);
+ $c->_add($z, $c->_mul($y1, $m) ) if !$c->_is_zero($y1);
+
+ @$x = @$z;
+ return $x;
+}
-=head2 API optional methods
+sub _as_hex {
+ # convert a decimal number to hex (ref to array, return ref to string)
+ my ($c, $x) = @_;
-The following methods are optional, and can be defined if the underlying lib
-has a fast way to do them. If undefined, Math::BigInt will use pure Perl (hence
-slow) fallback routines to emulate these:
+ # fits into one element (handle also 0x0 case)
+ return sprintf("0x%x", $x->[0]) if @$x == 1;
-=head3 Signed bitwise operators.
+ my $x1 = $c->_copy($x);
-Each of these methods may modify the first input argument.
+ my $es = '';
+ my ($xr, $h, $x10000);
+ if ($] >= 5.006) {
+ $x10000 = [ 0x10000 ];
+ $h = 'h4';
+ } else {
+ $x10000 = [ 0x1000 ];
+ $h = 'h3';
+ }
+ while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
+ {
+ ($x1, $xr) = $c->_div($x1, $x10000);
+ $es .= unpack($h, pack('V', $xr->[0]));
+ }
+ $es = reverse $es;
+ $es =~ s/^[0]+//; # strip leading zeros
+ '0x' . $es; # return result prepended with 0x
+}
-=over 4
+sub _as_bin {
+ # convert a decimal number to bin (ref to array, return ref to string)
+ my ($c, $x) = @_;
-=item I<_signed_or(OBJ1, OBJ2, SIGN1, SIGN2)>
+ # fits into one element (and Perl recent enough), handle also 0b0 case
+ # handle zero case for older Perls
+ if ($] <= 5.005 && @$x == 1 && $x->[0] == 0) {
+ my $t = '0b0';
+ return $t;
+ }
+ if (@$x == 1 && $] >= 5.006) {
+ my $t = sprintf("0b%b", $x->[0]);
+ return $t;
+ }
+ my $x1 = $c->_copy($x);
-Return the signed bitwise or.
+ my $es = '';
+ my ($xr, $b, $x10000);
+ if ($] >= 5.006) {
+ $x10000 = [ 0x10000 ];
+ $b = 'b16';
+ } else {
+ $x10000 = [ 0x1000 ];
+ $b = 'b12';
+ }
+ while (!(@$x1 == 1 && $x1->[0] == 0)) # _is_zero()
+ {
+ ($x1, $xr) = $c->_div($x1, $x10000);
+ $es .= unpack($b, pack('v', $xr->[0]));
+ }
+ $es = reverse $es;
+ $es =~ s/^[0]+//; # strip leading zeros
+ '0b' . $es; # return result prepended with 0b
+}
-=item I<_signed_and(OBJ1, OBJ2, SIGN1, SIGN2)>
+sub _as_oct {
+ # convert a decimal number to octal (ref to array, return ref to string)
+ my ($c, $x) = @_;
-Return the signed bitwise and.
+ # fits into one element (handle also 0 case)
+ return sprintf("0%o", $x->[0]) if @$x == 1;
-=item I<_signed_xor(OBJ1, OBJ2, SIGN1, SIGN2)>
+ my $x1 = $c->_copy($x);
-Return the signed bitwise exclusive or.
+ my $es = '';
+ my $xr;
+ my $x1000 = [ 0100000 ];
+ while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
+ {
+ ($x1, $xr) = $c->_div($x1, $x1000);
+ $es .= reverse sprintf("%05o", $xr->[0]);
+ }
+ $es = reverse $es;
+ $es =~ s/^0+//; # strip leading zeros
+ '0' . $es; # return result prepended with 0
+}
-=back
+sub _from_oct {
+ # convert a octal number to decimal (string, return ref to array)
+ my ($c, $os) = @_;
-=head1 WRAP YOUR OWN
+ # for older Perls, play safe
+ my $m = [ 0100000 ];
+ my $d = 5; # 5 digits at a time
+
+ my $mul = $c->_one();
+ my $x = $c->_zero();
+
+ my $len = int((length($os) - 1) / $d); # $d digit parts, w/o the '0'
+ my $val;
+ my $i = -$d;
+ while ($len >= 0) {
+ $val = substr($os, $i, $d); # get oct digits
+ $val = CORE::oct($val);
+ $i -= $d;
+ $len --;
+ my $adder = [ $val ];
+ $c->_add($x, $c->_mul($adder, $mul)) if $val != 0;
+ $c->_mul($mul, $m) if $len >= 0; # skip last mul
+ }
+ $x;
+}
-If you want to port your own favourite c-lib for big numbers to the
-Math::BigInt interface, you can take any of the already existing modules as
-a rough guideline. You should really wrap up the latest BigInt and BigFloat
-testsuites with your module, and replace in them any of the following:
+sub _from_hex {
+ # convert a hex number to decimal (string, return ref to array)
+ my ($c, $hs) = @_;
+
+ my $m = $c->_new(0x10000000); # 28 bit at a time (<32 bit!)
+ my $d = 7; # 7 digits at a time
+ my $mul = $c->_one();
+ my $x = $c->_zero();
+
+ my $len = int((length($hs) - 2) / $d); # $d digit parts, w/o the '0x'
+ my $val;
+ my $i = -$d;
+ while ($len >= 0) {
+ $val = substr($hs, $i, $d); # get hex digits
+ $val =~ s/^0x// if $len == 0; # for last part only because
+ $val = CORE::hex($val); # hex does not like wrong chars
+ $i -= $d;
+ $len --;
+ my $adder = [ $val ];
+ # if the resulting number was to big to fit into one element, create a
+ # two-element version (bug found by Mark Lakata - Thanx!)
+ if (CORE::length($val) > $BASE_LEN) {
+ $adder = $c->_new($val);
+ }
+ $c->_add($x, $c->_mul($adder, $mul)) if $val != 0;
+ $c->_mul($mul, $m) if $len >= 0; # skip last mul
+ }
+ $x;
+}
- use Math::BigInt;
+sub _from_bin {
+ # convert a hex number to decimal (string, return ref to array)
+ my ($c, $bs) = @_;
-by this:
+ # instead of converting X (8) bit at a time, it is faster to "convert" the
+ # number to hex, and then call _from_hex.
- use Math::BigInt lib => 'yourlib';
+ my $hs = $bs;
+ $hs =~ s/^[+-]?0b//; # remove sign and 0b
+ my $l = length($hs); # bits
+ $hs = '0' x (8 - ($l % 8)) . $hs if ($l % 8) != 0; # padd left side w/ 0
+ my $h = '0x' . unpack('H*', pack ('B*', $hs)); # repack as hex
-This way you ensure that your library really works 100% within Math::BigInt.
+ $c->_from_hex($h);
+}
-=head1 BUGS
+##############################################################################
+# special modulus functions
-Please report any bugs or feature requests to
-C<bug-math-bigint at rt.cpan.org>, or through the web interface at
-L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
-(requires login).
-We will be notified, and then you'll automatically be notified of progress on
-your bug as I make changes.
+sub _modinv {
+ # modular multiplicative inverse
+ my ($c, $x, $y) = @_;
-=head1 SUPPORT
+ # modulo zero
+ if ($c->_is_zero($y)) {
+ return undef, undef;
+ }
-You can find documentation for this module with the perldoc command.
+ # modulo one
+ if ($c->_is_one($y)) {
+ return $c->_zero(), '+';
+ }
- perldoc Math::BigInt::Calc
+ my $u = $c->_zero();
+ my $v = $c->_one();
+ my $a = $c->_copy($y);
+ my $b = $c->_copy($x);
-You can also look for information at:
+ # Euclid's Algorithm for bgcd(), only that we calc bgcd() ($a) and the result
+ # ($u) at the same time. See comments in BigInt for why this works.
+ my $q;
+ my $sign = 1;
+ {
+ ($a, $q, $b) = ($b, $c->_div($a, $b)); # step 1
+ last if $c->_is_zero($b);
-=over 4
+ my $t = $c->_add( # step 2:
+ $c->_mul($c->_copy($v), $q), # t = v * q
+ $u); # + u
+ $u = $v; # u = v
+ $v = $t; # v = t
+ $sign = -$sign;
+ redo;
+ }
-=item * RT: CPAN's request tracker
+ # if the gcd is not 1, then return NaN
+ return (undef, undef) unless $c->_is_one($a);
-L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt>
+ ($v, $sign == 1 ? '+' : '-');
+}
-=item * AnnoCPAN: Annotated CPAN documentation
+sub _modpow {
+ # modulus of power ($x ** $y) % $z
+ my ($c, $num, $exp, $mod) = @_;
-L<http://annocpan.org/dist/Math-BigInt>
+ # a^b (mod 1) = 0 for all a and b
+ if ($c->_is_one($mod)) {
+ @$num = 0;
+ return $num;
+ }
-=item * CPAN Ratings
+ # 0^a (mod m) = 0 if m != 0, a != 0
+ # 0^0 (mod m) = 1 if m != 0
+ if ($c->_is_zero($num)) {
+ if ($c->_is_zero($exp)) {
+ @$num = 1;
+ } else {
+ @$num = 0;
+ }
+ return $num;
+ }
-L<http://cpanratings.perl.org/dist/Math-BigInt>
+ # $num = $c->_mod($num, $mod); # this does not make it faster
-=item * Search CPAN
+ my $acc = $c->_copy($num);
+ my $t = $c->_one();
-L<http://search.cpan.org/dist/Math-BigInt/>
+ my $expbin = $c->_as_bin($exp);
+ $expbin =~ s/^0b//;
+ my $len = length($expbin);
+ while (--$len >= 0) {
+ if (substr($expbin, $len, 1) eq '1') { # is_odd
+ $t = $c->_mul($t, $acc);
+ $t = $c->_mod($t, $mod);
+ }
+ $acc = $c->_mul($acc, $acc);
+ $acc = $c->_mod($acc, $mod);
+ }
+ @$num = @$t;
+ $num;
+}
-=item * CPAN Testers Matrix
+sub _gcd {
+ # Greatest common divisor.
-L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+ my ($c, $x, $y) = @_;
-=item * The Bignum mailing list
+ # gcd(0, 0) = 0
+ # gcd(0, a) = a, if a != 0
-=over 4
+ if (@$x == 1 && $x->[0] == 0) {
+ if (@$y == 1 && $y->[0] == 0) {
+ @$x = 0;
+ } else {
+ @$x = @$y;
+ }
+ return $x;
+ }
-=item * Post to mailing list
+ # Until $y is zero ...
-C<bignum at lists.scsys.co.uk>
+ until (@$y == 1 && $y->[0] == 0) {
-=item * View mailing list
+ # Compute remainder.
-L<http://lists.scsys.co.uk/pipermail/bignum/>
+ $c->_mod($x, $y);
-=item * Subscribe/Unsubscribe
+ # Swap $x and $y.
-L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+ my $tmp = $c->_copy($x);
+ @$x = @$y;
+ $y = $tmp; # no deref here; that would modify input $y
+ }
-=back
+ return $x;
+}
-=back
+1;
-=head1 LICENSE
+=pod
-This program is free software; you may redistribute it and/or modify it under
-the same terms as Perl itself.
+=head1 NAME
-=head1 AUTHORS
+Math::BigInt::Calc - Pure Perl module to support Math::BigInt
-=over 4
+=head1 SYNOPSIS
-=item *
+ # to use it with Math::BigInt
+ use Math::BigInt lib => 'Calc';
-Original math code by Mark Biggar, rewritten by Tels L<http://bloodgate.com/>
-in late 2000.
+ # to use it with Math::BigFloat
+ use Math::BigFloat lib => 'Calc';
-=item *
+ # to use it with Math::BigRat
+ use Math::BigRat lib => 'Calc';
-Separated from BigInt and shaped API with the help of John Peacock.
+=head1 DESCRIPTION
-=item *
+Math::BigInt::Calc inherits from Math::BigInt::Lib.
-Fixed, speed-up, streamlined and enhanced by Tels 2001 - 2007.
+In this library, the numbers are represented in base B = 10**N, where N is the
+largest possible value that does not cause overflow in the intermediate
+computations. The base B elements are stored in an array, with the least
+significant element stored in array element zero. There are no leading zero
+elements, except a single zero element when the number is zero.
-=item *
+For instance, if B = 10000, the number 1234567890 is represented internally
+as [7890, 3456, 12].
-API documentation corrected and extended by Peter John Acklam,
-E<lt>pjacklam@online.noE<gt>
+=head1 SEE ALSO
-=back
+L<Math::BigInt::Lib> for a description of the API.
-=head1 SEE ALSO
+Alternative libraries L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and
+L<Math::BigInt::Pari>.
-L<Math::BigInt>, L<Math::BigFloat>,
-L<Math::BigInt::GMP>, L<Math::BigInt::FastCalc> and L<Math::BigInt::Pari>.
+Some of the modules that use these libraries L<Math::BigInt>,
+L<Math::BigFloat>, and L<Math::BigRat>.
=cut
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
index 8e994ede273..69c02caffef 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
@@ -4,8 +4,7 @@ use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999715';
-$VERSION = eval $VERSION;
+our $VERSION = '1.999811';
package Math::BigInt;
@@ -15,7 +14,7 @@ my $CALC_EMU;
BEGIN
{
- $CALC_EMU = Math::BigInt->config()->{'lib'};
+ $CALC_EMU = Math::BigInt->config('lib');
# register us with MBI to get notified of future lib changes
Math::BigInt::_register_callback( __PACKAGE__, sub { $CALC_EMU = $_[0]; } );
}
@@ -25,7 +24,7 @@ sub __emu_band
my ($self,$x,$y,$sx,$sy,@r) = @_;
return $x->bzero(@r) if $y->is_zero() || $x->is_zero();
-
+
my $sign = 0; # sign of result
$sign = 1 if $sx == -1 && $sy == -1;
@@ -75,7 +74,7 @@ sub __emu_band
# if $xx eq "\x00", we can cut $by, otherwise we need to padd $bx
$bx .= $xx x abs($diff);
}
-
+
# and the strings together
my $r = $bx & $by;
@@ -380,7 +379,7 @@ L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
-the same terms as Perl itself.
+the same terms as Perl itself.
=head1 AUTHORS
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm
index f35e26710cb..c9ec01e1293 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm
@@ -14,9 +14,9 @@ use Math::BigFloat 1.38;
our ($accuracy, $precision, $round_mode, $div_scale);
-our @ISA = qw(Exporter Math::BigFloat);
+our @ISA = qw(Math::BigFloat Exporter);
-our $VERSION = "0.06";
+our $VERSION = "0.07";
use overload; # inherit overload from BigInt
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/BareCalc.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/BareCalc.pm
index c0cec45a2da..86522d5d63c 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/BareCalc.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/BareCalc.pm
@@ -2,44 +2,16 @@
package Math::BigInt::BareCalc;
-use 5.005;
use strict;
use warnings;
-require Exporter;
-
-our @ISA = qw(Exporter);
-
-our $VERSION = '0.06';
-
-sub api_version () { 1; }
+our $VERSION = '1.999803';
# Package to to test Bigint's simulation of Calc
-# Uses Calc, but only features the strictly neccessary methods.
-
-use Math::BigInt::Calc '0.51';
-
-BEGIN {
- no strict 'refs';
- foreach (qw/
- base_len new zero one two ten copy str num add sub mul div mod inc dec
- acmp alen len digit zeros
- rsft lsft
- fac pow gcd log_int sqrt root
- is_zero is_one is_odd is_even is_one is_two is_ten check
- as_hex as_bin as_oct from_hex from_bin from_oct
- modpow modinv
- and xor or
- /)
- {
- my $name = "Math::BigInt::Calc::_$_";
- *{"Math::BigInt::BareCalc::_$_"} = \&$name;
- }
- print "# BareCalc using Calc v$Math::BigInt::Calc::VERSION\n";
-}
+use Math::BigInt::Calc '1.9998';
+our @ISA = qw(Math::BigInt::Calc);
-# catch and throw away
-sub import { }
+print "# BareCalc using Calc v", Math::BigInt::Calc -> VERSION, "\n";
1;
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Subclass.pm b/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Subclass.pm
index 8876a83a089..5acdf1c24d7 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Subclass.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/Math/BigInt/Subclass.pm
@@ -14,10 +14,10 @@ use Math::BigInt 1.64;
our $lib;
our ($accuracy, $precision, $round_mode, $div_scale);
-our @ISA = qw(Exporter Math::BigInt);
+our @ISA = qw(Math::BigInt Exporter);
our @EXPORT_OK = qw(bgcd objectify);
-our $VERSION = "0.05";
+our $VERSION = "0.06";
use overload; # inherit overload from BigInt
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t
index 38fdae3c95b..783110cfb18 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbf.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 2409;
+use Test::More tests => 2482;
use lib 't';
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t
index b87625d0783..396a2a2bda5 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t
@@ -3,13 +3,13 @@
use strict;
use warnings;
-use Test::More tests => 3724; # tests in require'd file
+use Test::More tests => 3942; # tests in require'd file
use lib 't';
use Math::BigInt lib => 'BareCalc';
-print "# ", Math::BigInt->config()->{lib}, "\n";
+print "# ", Math::BigInt->config('lib'), "\n";
our ($CLASS, $CALC);
$CLASS = "Math::BigInt";
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mif.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mif.t
index 89835bb8bc7..2f94c13700c 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mif.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mif.t
@@ -6,7 +6,7 @@
use strict;
use warnings;
-use Test::More tests => 684 # tests in require'd file
+use Test::More tests => 712 # tests in require'd file
+ 1; # tests in this file
use lib 't';
@@ -18,7 +18,7 @@ our ($mbi, $mbf);
$mbi = 'Math::BigInt';
$mbf = 'Math::BigFloat';
-is(Math::BigInt->config()->{lib}, 'Math::BigInt::BareCalc',
- 'Math::BigInt->config()->{lib}');
+is(Math::BigInt->config('lib'), 'Math::BigInt::BareCalc',
+ "Math::BigInt->config('lib')");
require 't/mbimbf.inc';
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/big_pi_e.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/big_pi_e.t
index f846a95d07f..66705da1ae1 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/big_pi_e.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/big_pi_e.t
@@ -13,22 +13,22 @@ use Math::BigFloat;
my $pi = Math::BigFloat::bpi();
-ok(!exists $pi->{_a}, 'A not set');
-ok(!exists $pi->{_p}, 'P not set');
+is($pi->{_a}, undef, 'A is not defined');
+is($pi->{_p}, undef, 'P is not defined');
$pi = Math::BigFloat->bpi();
-ok(!exists $pi->{_a}, 'A not set');
-ok(!exists $pi->{_p}, 'P not set');
+is($pi->{_a}, undef, 'A is not defined');
+is($pi->{_p}, undef, 'P is not defined');
$pi = Math::BigFloat->bpi(10);
-is($pi->{_a}, 10, 'A set');
-is($pi->{_p}, undef, 'P not set');
+is($pi->{_a}, 10, 'A is defined');
+is($pi->{_p}, undef, 'P is not defined');
#############################################################################
my $e = Math::BigFloat->new(1)->bexp();
-ok(!exists $e->{_a}, 'A not set');
-ok(!exists $e->{_p}, 'P not set');
+is($e->{_a}, undef, 'A is not defined');
+is($e->{_p}, undef, 'P is not defined');
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc
index 10d05137dfe..4843975522d 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc
@@ -5,7 +5,7 @@ use warnings;
our ($CLASS, $CALC);
-is($CLASS->config()->{lib}, $CALC, "$CLASS->config()->{lib}");
+is($CLASS->config('lib'), $CALC, "$CLASS->config('lib')");
my ($x, $y, $z, @args, $try, $want, $got);
my ($f, $setup);
@@ -15,7 +15,6 @@ while (<DATA>) {
s/\s+$//; # remove trailing whitespace
next unless length; # skip empty lines
-
if (s/^&//) {
$f = $_;
next;
@@ -24,7 +23,6 @@ while (<DATA>) {
if (/^\$/) {
$setup = $_;
$setup =~ s/\$/\$${CLASS}::/g; # round_mode, div_scale
- #print "\$setup== $setup\n";
next;
}
@@ -39,7 +37,7 @@ while (<DATA>) {
$try = qq|\$x = $CLASS->new("$args[0]");|;
if ($f eq "bnorm") {
$try .= qq| \$x;|;
- } elsif ($f =~ /^is_(zero|one|negative|positive|odd|even|nan|int)$/) {
+ } elsif ($f =~ /^is_(zero|one|odd|even|negative|positive|nan|int)$/) {
$try .= qq| \$x->$f();|;
} elsif ($f eq "is_inf") {
$try .= qq| \$x->is_inf("$args[1]");|;
@@ -51,8 +49,12 @@ while (<DATA>) {
$try .= qq| \$x->accuracy($args[1]); \$x->precision($args[2]);|;
$try .= ' $x->bstr();';
# some unary ops
- } elsif ($f =~ /^b(nan|sstr|neg|floor|ceil|int|abs)$/) {
+ } elsif ($f =~ /^b(nan|floor|ceil|int|sstr|neg|abs|sgn|inc|dec|not|sqrt|exp|fac)$/) {
+ $try .= qq| \$x->$f();|;
+ } elsif ($f =~ /^(numify|length|as_number)$/) {
$try .= qq| \$x->$f();|;
+ } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) {
+ $try .= " \$x->$f();";
# overloaded functions
} elsif ($f =~ /^(log|exp|sin|cos|atan2|int|neg|abs|sqrt)$/) {
$try .= qq| \$x = $f(\$x);|;
@@ -66,14 +68,8 @@ while (<DATA>) {
} elsif ($f eq "mantissa") {
# ->bstr() to see if an object is returned
$try .= ' $x->mantissa()->bstr();';
- } elsif ($f =~ /^(numify|length|as_number|as_hex|as_bin)$/) {
- $try .= qq| \$x->$f();|;
} elsif ($f eq "bpi") {
$try .= qq| $CLASS->bpi(\$x);|;
- } elsif ($f eq "binc") {
- $try .= ' ++$x;';
- } elsif ($f eq "bdec") {
- $try .= ' --$x;';
} elsif ($f eq "bround") {
$try .= qq| $setup; \$x->bround($args[1]);|;
} elsif ($f eq "bfround") {
@@ -82,6 +78,8 @@ while (<DATA>) {
$try .= qq| $setup; \$x->bsqrt();|;
} elsif ($f eq "bfac") {
$try .= qq| $setup; \$x->bfac();|;
+ } elsif ($f eq "bdfac") {
+ $try .= qq| $setup; \$x->bdfac();|;
} elsif ($f eq "blog") {
if (defined $args[1] && $args[1] ne '') {
$try .= qq| \$y = $CLASS->new($args[1]);|;
@@ -112,7 +110,7 @@ while (<DATA>) {
} elsif ($f eq "bacmp") {
$try .= ' $x->bacmp($y);';
} elsif ($f eq "bpow") {
- $try .= ' $x ** $y;';
+ $try .= ' $x->bpow($y);';
} elsif ($f eq "bnok") {
$try .= ' $x->bnok($y);';
} elsif ($f eq "bcos") {
@@ -124,21 +122,21 @@ while (<DATA>) {
} elsif ($f eq "broot") {
$try .= qq| $setup; \$x->broot(\$y);|;
} elsif ($f eq "badd") {
- $try .= ' $x + $y;';
+ $try .= ' $x->badd($y);';
} elsif ($f eq "bsub") {
- $try .= ' $x - $y;';
+ $try .= ' $x->bsub($y);';
} elsif ($f eq "bmul") {
- $try .= ' $x * $y;';
+ $try .= ' $x->bmul($y);';
} elsif ($f eq "bdiv") {
- $try .= qq| $setup; \$x / \$y;|;
+ $try .= qq| $setup; scalar \$x->bdiv(\$y);|;
} elsif ($f eq "bdiv-list") {
$try .= qq| $setup; join(",", \$x->bdiv(\$y));|;
} elsif ($f eq "brsft") {
- $try .= ' $x >> $y;';
+ $try .= ' $x->brsft($y);';
} elsif ($f eq "blsft") {
- $try .= ' $x << $y;';
+ $try .= ' $x->blsft($y);';
} elsif ($f eq "bmod") {
- $try .= ' $x % $y;';
+ $try .= ' $x->bmod($y);';
} else {
# Functions with three arguments
$try .= qq| \$z = $CLASS->new("$args[2]");|;
@@ -260,42 +258,6 @@ $CLASS->accuracy(undef); # reset
$CLASS->precision(undef); # reset
###############################################################################
-# bug in bsstr()/numify() showed up in after-rounding in bdiv()
-
-$x = $CLASS->new("0.008");
-$y = $CLASS->new(2);
-$x->bdiv(3, $y);
-is($x, "0.0027",
- qq|\$x = $CLASS->new("0.008"); \$y = $CLASS->new(2); \$x->bdiv(3, \$y);|);
-
-###############################################################################
-# Verify that numify() returns a normalized value, and underflows and
-# overflows when given "extreme" values.
-
-like($CLASS->new("12345e67")->numify(), qr/^1\.2345e\+?0*71$/,
- qq|$CLASS->new("12345e67")->numify()|);
-
-# underflow
-like($CLASS->new("1e-9999")->numify(), qr/^\+?0$/,
- qq|$CLASS->new("1e-9999")->numify()|);
-
-# overflow
-unlike($CLASS->new("1e9999")->numify(), qr/^1(\.0*)?e\+?9+$/,
- qq|$CLASS->new("1e9999")->numify()|);
-
-###############################################################################
-# Check numify on non-finite objects.
-
-{
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- my $nan = $inf - $inf;
- is($CLASS -> binf("+") -> numify(), $inf, "numify of +Inf");
- is($CLASS -> binf("-") -> numify(), -$inf, "numify of -Inf");
- is($CLASS -> bnan() -> numify(), $nan, "numify of NaN");
-}
-
-###############################################################################
# bsqrt() with set global A/P or A/P enabled on $x, also a test whether bsqrt()
# correctly modifies $x
@@ -497,7 +459,7 @@ is($x, 2,
$x = $CLASS->new("2");
$y = $CLASS->new("18.2");
-# 2 * (2 ** 18.2);
+# 2 * (2 ** int(18.2));
$x <<= $y;
is($x->copy()->bfround(-9), "602248.763144685",
qq|\$x = $CLASS->new("2"); \$y = $CLASS->new("18.2");| .
@@ -701,7 +663,7 @@ $div_scale = 40
1::0
&brsft
-NaNbrsft:2:NaN
+invalid:2:NaN
0:2:0
1:1:0.5
2:1:1
@@ -710,7 +672,7 @@ NaNbrsft:2:NaN
32:3:4
&blsft
-NaNblsft:0:NaN
+invalid:0:NaN
2:1:4
4:3:32
5:3:40
@@ -720,7 +682,7 @@ NaNblsft:0:NaN
&bnorm
1:1
-0:0
-bnormNaN:NaN
+invalid:NaN
+inf:inf
-inf:-inf
123:123
@@ -806,20 +768,74 @@ NaN:NaN
3:abc:inf
&as_hex
+128:0x80
+-128:-0x80
+0:0x0
+-0:0x0
+1:0x1
+0x123456789123456789:0x123456789123456789
+inf:inf
-inf:-inf
-hexNaN:NaN
-0:0x0
-5:0x5
--5:-0x5
+invalid:NaN
&as_bin
+128:0b10000000
+-128:-0b10000000
+0:0b0
+-0:0b0
+1:0b1
+0b1010111101010101010110110110110110101:0b1010111101010101010110110110110110101
+0x123456789123456789:0b100100011010001010110011110001001000100100011010001010110011110001001
+inf:inf
-inf:-inf
-hexNaN:NaN
-0:0b0
-5:0b101
--5:-0b101
+invalid:NaN
+
+&as_oct
+128:0200
+-128:-0200
+0:00
+-0:00
+1:01
+0b1010111101010101010110110110110110101:01275252666665
+0x123456789123456789:044321263611044321263611
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_hex
+128:80
+-128:-80
+0:0
+-0:0
+1:1
+0x123456789123456789:123456789123456789
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_bin
+128:10000000
+-128:-10000000
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1010111101010101010110110110110110101
+0x123456789123456789:100100011010001010110011110001001000100100011010001010110011110001001
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_oct
+128:200
+-128:-200
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1275252666665
+0x123456789123456789:44321263611044321263611
++inf:inf
+-inf:-inf
+invalid:NaN
&numify
# uses bsstr() so 5 => 5e+0 to be compatible w/ Perls output
@@ -971,7 +987,7 @@ $div_scale = 20
$div_scale = 40
&bneg
-bnegNaN:NaN
+invalid:NaN
+inf:-inf
-inf:inf
+0:0
@@ -983,7 +999,7 @@ bnegNaN:NaN
-123456.789:123456.789
&babs
-babsNaN:NaN
+invalid:NaN
+inf:inf
-inf:inf
+0:0
@@ -999,7 +1015,7 @@ $round_mode = "trunc"
+inf:5:inf
-inf:5:-inf
0:5:0
-NaNfround:5:NaN
+invalid:5:NaN
+10123456789:5:10123000000
-10123456789:5:-10123000000
+10123456789.123:5:10123000000
@@ -1075,7 +1091,7 @@ $round_mode = "trunc"
+inf:5:inf
-inf:5:-inf
0:5:0
-NaNffround:5:NaN
+invalid:5:NaN
+1.23:-1:1.2
+1.234:-1:1.2
+1.2345:-1:1.2
@@ -1207,9 +1223,9 @@ $round_mode = "even"
0.01234567:-12:0.012345670000
&bcmp
-bcmpNaN:bcmpNaN:
-bcmpNaN:+0:
-+0:bcmpNaN:
+invalid:invalid:
+invalid:+0:
++0:invalid:
+0:+0:0
-1:+0:-1
+0:-1:1
@@ -1280,9 +1296,9 @@ NaN:inf:
NaN:-inf:
&bacmp
-bcmpNaN:bcmpNaN:
-bcmpNaN:+0:
-+0:bcmpNaN:
+invalid:invalid:
+invalid:+0:
++0:invalid:
+0:+0:0
-1:+0:1
+0:-1:-1
@@ -1349,13 +1365,13 @@ bcmpNaN:+0:
5:-inf:-1
-1:-inf:-1
# return undef
-+inf:bacmpNaN:
-bacmpNaN:inf:
--inf:bacmpNaN:
-bacmpNaN:-inf:
++inf:invalid:
+invalid:inf:
+-inf:invalid:
+invalid:-inf:
&bdec
-bdecNaN:NaN
+invalid:NaN
+inf:inf
-inf:-inf
+0:-1
@@ -1371,7 +1387,7 @@ bdecNaN:NaN
99:98
&binc
-bincNaN:NaN
+invalid:NaN
+inf:inf
-inf:-inf
+0:1
@@ -1393,10 +1409,10 @@ abc:+0:NaN
-inf:+inf:NaN
+inf:+inf:inf
-inf:-inf:-inf
-baddNaN:+inf:NaN
-baddNaN:+inf:NaN
-+inf:baddNaN:NaN
--inf:baddNaN:NaN
+invalid:+inf:NaN
+invalid:+inf:NaN
++inf:invalid:NaN
+-inf:invalid:NaN
+0:+0:0
+1:+0:1
+0:+1:1
@@ -1441,10 +1457,10 @@ abc:+0:NaN
-inf:+inf:-inf
+inf:+inf:NaN
-inf:-inf:NaN
-baddNaN:+inf:NaN
-baddNaN:+inf:NaN
-+inf:baddNaN:NaN
--inf:baddNaN:NaN
+invalid:+inf:NaN
+invalid:+inf:NaN
++inf:invalid:NaN
+-inf:invalid:NaN
+0:+0:0
+1:+0:1
+0:+1:-1
@@ -1485,10 +1501,10 @@ abc:abc:0:NaN
abc:+0:0:NaN
+0:abc:0:NaN
+0:0:abc:NaN
-NaNmul:+inf:0:NaN
-NaNmul:-inf:0:NaN
--inf:NaNmul:0:NaN
-+inf:NaNmul:0:NaN
+invalid:+inf:0:NaN
+invalid:-inf:0:NaN
+-inf:invalid:0:NaN
++inf:invalid:0:NaN
+inf:+inf:0:inf
+inf:-inf:0:-inf
-inf:+inf:0:-inf
@@ -1553,10 +1569,10 @@ NaNmul:-inf:0:NaN
abc:abc:NaN
abc:+0:NaN
+0:abc:NaN
-+inf:NaNmul:NaN
-+inf:NaNmul:NaN
-NaNmul:+inf:NaN
-NaNmul:-inf:NaN
++inf:invalid:NaN
++inf:invalid:NaN
+invalid:+inf:NaN
+invalid:-inf:NaN
+inf:+inf:inf
+inf:-inf:-inf
+inf:-inf:-inf
@@ -1797,6 +1813,25 @@ Nanfac:NaN
11:39916800
12:479001600
+&bdfac
+NaN:NaN
+-1:NaN
++inf:inf
+-inf:NaN
+0:1
+1:1
+2:2
+3:3
+4:8
+5:15
+6:48
+7:105
+8:384
+9:945
+10:3840
+11:10395
+12:46080
+
&broot
# sqrt()
+0:2:0
@@ -1915,7 +1950,7 @@ abc:0
2:0
&is_int
-NaNis_int:0
+invalid:0
0:1
1:1
2:1
@@ -1971,7 +2006,7 @@ NaN:0
123:123 0
-123:-123 0
-1200:-12 2
-NaNparts:NaN NaN
+invalid:NaN NaN
+inf:inf inf
-inf:-inf inf
@@ -1983,7 +2018,7 @@ NaNparts:NaN NaN
-1200:2
+inf:inf
-inf:inf
-NaNexponent:NaN
+invalid:NaN
&mantissa
0:0
@@ -1993,7 +2028,7 @@ NaNexponent:NaN
-1200:-12
+inf:inf
-inf:-inf
-NaNmantissa:NaN
+invalid:NaN
&length
123:3
@@ -2003,7 +2038,7 @@ NaNmantissa:NaN
12345678901234567890:20
&is_zero
-NaNzero:0
+invalid:0
+inf:0
-inf:0
0:1
@@ -2011,7 +2046,7 @@ NaNzero:0
1:0
&is_one
-NaNone:0
+invalid:0
+inf:0
-inf:0
0:0
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t
index 2c76155c678..a447c470de2 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.t
@@ -3,14 +3,15 @@
use strict;
use warnings;
-use Test::More tests => 2409 # tests in require'd file
- + 5; # tests in this file
+use Test::More tests => 2482 # tests in require'd file
+ + 19; # tests in this file
-use Math::BigInt lib => 'Calc';
+use Math::BigInt only => 'Calc';
use Math::BigFloat;
-our $CLASS = "Math::BigFloat";
-our $CALC = "Math::BigInt::Calc"; # backend
+our ($CLASS, $CALC);
+$CLASS = "Math::BigFloat";
+$CALC = Math::BigInt -> config('lib'); # backend library
is($CLASS->config()->{class}, $CLASS, "$CLASS->config()->{class}");
is($CLASS->config()->{with}, $CALC, "$CLASS->config()->{with}");
@@ -27,6 +28,44 @@ my $e = $c->bdiv(Math::BigFloat->new(3), $d);
is($e, '0.00267', '0.008 / 3 = 0.0027');
+my $x;
+
+#############################################################################
+# bgcd() as function, class method and instance method.
+
+my $gcd0 = Math::BigFloat::bgcd(-12, 18, 27);
+isa_ok($gcd0, "Math::BigFloat", "bgcd() as function");
+is($gcd0, 3, "bgcd() as function");
+
+my $gcd1 = Math::BigFloat->bgcd(-12, 18, 27);
+isa_ok($gcd1, "Math::BigFloat", "bgcd() as class method");
+is($gcd1, 3, "bgcd() as class method");
+
+$x = Math::BigFloat -> new(-12);
+my $gcd2 = $x -> bgcd(18, 27);
+isa_ok($gcd2, "Math::BigFloat", "bgcd() as instance method");
+is($gcd2, 3, "bgcd() as instance method");
+is($x, -12, "bgcd() does not modify invocand");
+
+#############################################################################
+# blcm() as function, class method and instance method.
+
+my $lcm0 = Math::BigFloat::blcm(-12, 18, 27);
+isa_ok($lcm0, "Math::BigFloat", "blcm() as function");
+is($lcm0, 108, "blcm() as function");
+
+my $lcm1 = Math::BigFloat->blcm(-12, 18, 27);
+isa_ok($lcm1, "Math::BigFloat", "blcm() as class method");
+is($lcm1, 108, "blcm() as class method");
+
+$x = Math::BigFloat -> new(-12);
+my $lcm2 = $x -> blcm(18, 27);
+isa_ok($lcm2, "Math::BigFloat", "blcm() as instance method");
+is($lcm2, 108, "blcm() as instance method");
+is($x, -12, "blcm() does not modify invocand");
+
+#############################################################################
+
SKIP: {
skip("skipping test which is not for this backend", 1)
unless $CALC eq 'Math::BigInt::Calc';
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t
index 48d0d47460a..863710a1ce6 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintc.t
@@ -12,7 +12,7 @@ my ($BASE_LEN, undef, $AND_BITS, $XOR_BITS, $OR_BITS,
= Math::BigInt::Calc->_base_len();
print "# BASE_LEN = $BASE_LEN\n";
-print "# MAX_VAL = $MAX_VAL\n";
+print "# MAX_VAL = $MAX_VAL\n";
print "# AND_BITS = $AND_BITS\n";
print "# XOR_BITS = $XOR_BITS\n";
print "# IOR_BITS = $OR_BITS\n";
@@ -25,7 +25,7 @@ my $CALC = 'Math::BigInt::Calc'; # pass classname to sub's
my $x = $CALC->_new("123");
my $y = $CALC->_new("321");
-is(ref($x), "ARRAY", q|ref($x) is an ARRAY|);
+is(ref($x), "Math::BigInt::Calc", q|ref($x) is an Math::BigInt::Calc|);
is($CALC->_str($x), 123, qq|$CALC->_str(\$x) = 123|);
is($CALC->_str($y), 321, qq|$CALC->_str(\$y) = 321|);
@@ -327,8 +327,9 @@ is($CALC->_str($y), 123, qq|$CALC->_str(\$y) = 123|);
foreach (qw/1 12 123 1234 12345 1234567 12345678 123456789 1234567890/) {
$x = $CALC->_new("$_");
- is(ref($x), "ARRAY", q|ref($x) = "ARRAY"|);
- is($CALC->_str($x), "$_", qq|$CALC->_str(\$x) = "$_"|);
+ is(ref($x), "Math::BigInt::Calc",
+ q|ref($x) = "Math::BigInt::Calc"|);
+ is($CALC->_str($x), "$_", qq|$CALC->_str(\$x) = "$_"|);
$x = $CALC->_num($x);
is(ref($x), "", q|ref($x) = ""|);
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc
index ad7322c2037..45ae52c0a1b 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc
@@ -11,7 +11,7 @@ our ($CLASS, $CALC);
package Math::Foo;
use Math::BigInt lib => $main::CALC;
-our @ISA = (qw/Math::BigInt/);
+our @ISA = qw/Math::BigInt/;
use overload
# customized overload for sub, since original does not use swap there
@@ -33,7 +33,7 @@ sub _swap {
##############################################################################
package main;
-is($CLASS->config()->{lib}, $CALC, "$CLASS->config()->{lib}");
+is($CLASS->config('lib'), $CALC, "$CLASS->config('lib')");
my ($x, $y, $z, @args, $try, $got, $want);
my ($f, $round_mode, $expected_class);
@@ -77,27 +77,27 @@ while (<DATA>) {
} elsif ($f eq "bone") {
$try .= qq| \$x->bone("$args[1]");|;
# some unary ops
- } elsif ($f =~ /^b(nan|floor|ceil|int|sstr|neg|abs|sgn|inc|dec|not|sqrt|fac)$/) {
+ } elsif ($f =~ /^b(nan|floor|ceil|int|sstr|neg|abs|sgn|inc|dec|not|sqrt|exp|fac)$/) {
+ $try .= " \$x->$f();";
+ } elsif ($f =~ /^(numify|length|stringify)$/) {
+ $try .= " \$x->$f();";
+ } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) {
$try .= " \$x->$f();";
# overloaded functions
} elsif ($f =~ /^(log|exp|sin|cos|atan2|int|neg|abs|sqrt)$/) {
$try .= " \$x = $f(\$x);";
- } elsif ($f =~ /^(numify|length|stringify|as_hex|as_bin|as_oct)$/) {
- $try .= " \$x->$f();";
- } elsif ($f eq "exponent") {
- # ->bstr() to see if an object is returned
- $try .= ' $x = $x->exponent()->bstr();';
- } elsif ($f eq "mantissa") {
- # ->bstr() to see if an object is returned
- $try .= ' $x = $x->mantissa()->bstr();';
} elsif ($f eq "parts") {
$try .= ' ($m, $e) = $x->parts();';
# ->bstr() to see if an object is returned
$try .= ' $m = $m->bstr(); $m = "NaN" if !defined $m;';
$try .= ' $e = $e->bstr(); $e = "NaN" if !defined $e;';
$try .= ' "$m,$e";';
- } elsif ($f eq "bexp") {
- $try .= " \$x->bexp();";
+ } elsif ($f eq "exponent") {
+ # ->bstr() to see if an object is returned
+ $try .= ' $x = $x->exponent()->bstr();';
+ } elsif ($f eq "mantissa") {
+ # ->bstr() to see if an object is returned
+ $try .= ' $x = $x->mantissa()->bstr();';
} elsif ($f eq "bpi") {
$try .= " $CLASS\->bpi(\$x);";
} else {
@@ -110,16 +110,20 @@ while (<DATA>) {
} elsif ($f eq "bacmp") {
$try .= ' $x->bacmp($y);';
} elsif ($f eq "badd") {
- $try .= ' $x + $y;';
+ $try .= ' $x->badd($y);';
} elsif ($f eq "bsub") {
- $try .= ' $x - $y;';
+ $try .= ' $x->bsub($y);';
} elsif ($f eq "bmul") {
- $try .= ' $x * $y;';
+ $try .= ' $x->bmul($y);';
} elsif ($f eq "bdiv") {
- $try .= ' $x / $y;';
+ $try .= ' $x->bdiv($y);';
} elsif ($f eq "bdiv-list") {
- $try .= ' join (",", $x->bdiv($y));';
- # overload via x=
+ $try .= ' join(",", $x->bdiv($y));';
+ } elsif ($f eq "btdiv") {
+ $try .= ' $x->btdiv($y);';
+ } elsif ($f eq "btdiv-list") {
+ $try .= ' join (",", $x->btdiv($y));';
+ # overload via x=
} elsif ($f =~ /^.=$/) {
$try .= " \$x $f \$y;";
# overload via x
@@ -206,7 +210,7 @@ while (<DATA>) {
}
# check internal state of number objects
is_valid($got, $f) if ref $got;
-} # endwhile data tests
+} # end while data tests
close DATA;
# test whether self-multiplication works correctly (result is 2**64)
@@ -560,9 +564,13 @@ is($x->bsstr(), '105e+13', # not 1.05e+15
$z = 1e+129; # definitely a float (may fail on UTS)
# don't compare to $z, since some Perl versions stringify $z into something
# like '1.e+129' or something equally ugly
-$x = $CLASS->new($z);
-is($x->bsstr(), '1e+129',
- qq|\$x = $CLASS->new($z); \$x->bsstr() = "1e+129"|);
+SKIP:{
+ my $vax_float = (pack("d", 1) =~ /^[\x80\x10]\x40/);
+ skip("vax float range smaller", 1) if $vax_float;
+ $x = $CLASS->new($z);
+ is($x -> bsstr(), '1e+129',
+ qq|\$x = $CLASS->new($z); \$x->bsstr() = "1e+129"|);
+}
###############################################################################
# test for whitespace including newlines to be handled correctly
@@ -653,18 +661,6 @@ is($x, -3, '$x = Math::Foo->new(5); $x = 8 - $x; $x = -3');
is(ref($x), 'Math::Foo', '$x is an object of class "Math::Foo"');
###############################################################################
-# Check numify on non-finite objects.
-
-{
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- my $nan = $inf - $inf;
- is($CLASS -> binf("+") -> numify(), $inf, "numify of +Inf");
- is($CLASS -> binf("-") -> numify(), -$inf, "numify of -Inf");
- is($CLASS -> bnan() -> numify(), $nan, "numify of NaN");
-}
-
-###############################################################################
# Test whether +inf eq inf
#
# This tried to test whether Math::BigInt inf equals Perl inf. Unfortunately,
@@ -999,9 +995,9 @@ __DATA__
&blog
#
-NaNlog:2:NaN
-122:NaNlog:NaN
-NaNlog1:NaNlog:NaN
+invalid:2:NaN
+122:invalid:NaN
+invalid:invalid:NaN
#
122:inf:0
inf:122:inf
@@ -1071,7 +1067,7 @@ inf:inf:NaN
1:0
+inf:0
-inf:1
-NaNneg:0
+invalid:0
&is_positive
0:0
@@ -1079,12 +1075,12 @@ NaNneg:0
1:1
+inf:1
-inf:0
-NaNneg:0
+invalid:0
&is_int
-inf:0
+inf:0
-NaNis_int:0
+invalid:0
1:1
0:1
123e12:1
@@ -1128,9 +1124,9 @@ abc:0
-987654321:+123456789:1
-123:+4567889:-1
# NaNs
-acmpNaN:123:
-123:acmpNaN:
-acmpNaN:acmpNaN:
+invalid:123:
+123:invalid:
+invalid:invalid:
# infinity
+inf:+inf:0
-inf:-inf:0
@@ -1392,8 +1388,8 @@ abc:NaN
&bone
2:+:1
2:-:-1
-boneNaN:-:-1
-boneNaN:+:1
+invalid:-:-1
+invalid:+:1
2:abc:1
3::1
@@ -1502,7 +1498,7 @@ bsstrabc:NaN
-100:-100
&bneg
-bnegNaN:NaN
+invalid:NaN
+inf:-inf
-inf:inf
abd:NaN
@@ -1513,7 +1509,7 @@ abd:NaN
-123456789:123456789
&babs
-babsNaN:NaN
+invalid:NaN
+inf:inf
-inf:inf
0:0
@@ -1531,9 +1527,9 @@ NaN:NaN
-123456789:-1
&bcmp
-bcmpNaN:bcmpNaN:
-bcmpNaN:0:
-0:bcmpNaN:
+invalid:invalid:
+invalid:0:
+0:invalid:
0:0:0
-1:0:-1
0:-1:1
@@ -1599,10 +1595,10 @@ abc:0:NaN
-inf:+inf:NaN
+inf:+inf:inf
-inf:-inf:-inf
-baddNaN:+inf:NaN
-baddNaN:+inf:NaN
-+inf:baddNaN:NaN
--inf:baddNaN:NaN
+invalid:+inf:NaN
+invalid:+inf:NaN
++inf:invalid:NaN
+-inf:invalid:NaN
0:0:0
1:0:1
0:1:1
@@ -1726,10 +1722,10 @@ abc:abc:0:NaN
abc:+0:0:NaN
+0:abc:0:NaN
+0:0:abc:NaN
-NaNmul:+inf:0:NaN
-NaNmul:-inf:0:NaN
--inf:NaNmul:0:NaN
-+inf:NaNmul:0:NaN
+invalid:+inf:0:NaN
+invalid:-inf:0:NaN
+-inf:invalid:0:NaN
++inf:invalid:0:NaN
+inf:+inf:0:inf
+inf:-inf:0:-inf
-inf:+inf:0:-inf
@@ -1786,10 +1782,10 @@ NaNmul:-inf:0:NaN
abc:abc:NaN
abc:+0:NaN
+0:abc:NaN
-NaNmul:+inf:NaN
-NaNmul:-inf:NaN
--inf:NaNmul:NaN
-+inf:NaNmul:NaN
+invalid:+inf:NaN
+invalid:-inf:NaN
+-inf:invalid:NaN
++inf:invalid:NaN
+inf:+inf:inf
+inf:-inf:-inf
-inf:+inf:-inf
@@ -1844,43 +1840,83 @@ NaNmul:-inf:NaN
9999999999999999999:10000000000000000000:99999999999999999990000000000000000000
&bdiv-list
-100:20:5,0
-4095:4095:1,0
--4095:-4095:1,0
-4095:-4095:-1,0
--4095:4095:-1,0
-123:2:61,1
-9:5:1,4
-9:4:2,1
-# inf handling and general remainder
-5:8:0,5
-0:8:0,0
-11:2:5,1
-11:-2:-6,-1
--11:2:-6,1
-# see table in documentation in MBI
-0:inf:0,0
-0:-inf:0,0
-5:inf:0,5
-5:-inf:-1,-inf
--5:inf:-1,inf
--5:-inf:0,-5
-inf:5:inf,NaN
--inf:5:-inf,NaN
+
+# Divide by zero and modulo zero.
+
+inf:0:inf,inf
+5:0:inf,5
+0:0:NaN,0
+-5:0:-inf,-5
+-inf:0:-inf,-inf
+
+# Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
+
+inf:-inf:NaN,NaN
inf:-5:-inf,NaN
--inf:-5:inf,NaN
-5:5:1,0
--5:-5:1,0
+inf:5:inf,NaN
inf:inf:NaN,NaN
+
-inf:-inf:NaN,NaN
+-inf:-5:inf,NaN
+-inf:5:-inf,NaN
-inf:inf:NaN,NaN
-inf:-inf:NaN,NaN
-8:0:inf,8
-inf:0:inf,inf
-# exceptions to remainder rule
--8:0:-inf,-8
--inf:0:-inf,-inf
-0:0:NaN,0
+
+# Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
+# are covered above.
+
+-5:inf:-1,inf
+0:inf:0,0
+5:inf:0,5
+
+-5:-inf:0,-5
+0:-inf:0,0
+5:-inf:-1,-inf
+
+# Numerator is finite, and denominator is finite and non-zero.
+
+-5:-5:1,0
+-5:-2:2,-1
+-5:-1:5,0
+-5:1:-5,0
+-5:2:-3,1
+-5:5:-1,0
+-2:-5:0,-2
+-2:-2:1,0
+-2:-1:2,0
+-2:1:-2,0
+-2:2:-1,0
+-2:5:-1,3
+-1:-5:0,-1
+-1:-2:0,-1
+-1:-1:1,0
+-1:1:-1,0
+-1:2:-1,1
+-1:5:-1,4
+0:-5:0,0
+0:-2:0,0
+0:-1:0,0
+0:1:0,0
+0:2:0,0
+0:5:0,0
+1:-5:-1,-4
+1:-2:-1,-1
+1:-1:-1,0
+1:1:1,0
+1:2:0,1
+1:5:0,1
+2:-5:-1,-3
+2:-2:-1,0
+2:-1:-2,0
+2:1:2,0
+2:2:1,0
+2:5:0,2
+5:-5:-1,0
+5:-2:-3,-1
+5:-1:-5,0
+5:1:5,0
+5:2:2,1
+5:5:1,0
+
# test the shortcut in Calc if @$x == @$yorg
1234567812345678:123456712345678:10,688888898
12345671234567:1234561234567:10,58888897
@@ -1916,32 +1952,42 @@ inf:0:inf,inf
9999999_9999999_9999999_9999999:1_0000000_0000000_0000000:9999999,999999999999999999999
&bdiv
-abc:abc:NaN
-abc:1:NaN
-1:abc:NaN
+
+# Divide by zero and modulo zero.
+
+inf:0:inf
+5:0:inf
0:0:NaN
-# inf handling (see table in doc)
+-5:0:-inf
+-inf:0:-inf
+
+# Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
+
+inf:-inf:NaN
+inf:-5:-inf
+inf:5:inf
+inf:inf:NaN
+
+-inf:-inf:NaN
+-inf:-5:inf
+-inf:5:-inf
+-inf:inf:NaN
+
+# Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
+# are covered above.
+
+-5:inf:-1
0:inf:0
-0:-inf:0
5:inf:0
-5:-inf:-1
--5:inf:-1
+
-5:-inf:0
-inf:5:inf
--inf:5:-inf
-inf:-5:-inf
--inf:-5:inf
+0:-inf:0
+5:-inf:-1
+
+# Numerator is finite, and denominator is finite and non-zero.
+
5:5:1
-5:-5:1
-inf:inf:NaN
--inf:-inf:NaN
--inf:inf:NaN
-inf:-inf:NaN
-8:0:inf
-inf:0:inf
--8:0:-inf
--inf:0:-inf
-0:0:NaN
11:2:5
-11:-2:5
-11:2:-6
@@ -2033,6 +2079,164 @@ inf:0:inf
# bug with shortcut in Calc 0.44
949418181818187070707070707070707070:181818181853535353535353535353535353:5
+&btdiv-list
+
+# Divide by zero and modulo zero.
+
+inf:0:inf,inf
+5:0:inf,5
+0:0:NaN,0
+-5:0:-inf,-5
+-inf:0:-inf,-inf
+
+# Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
+
+inf:-inf:NaN,NaN
+inf:-5:-inf,NaN
+inf:5:inf,NaN
+inf:inf:NaN,NaN
+
+-inf:-inf:NaN,NaN
+-inf:-5:inf,NaN
+-inf:5:-inf,NaN
+-inf:inf:NaN,NaN
+
+# Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
+# are covered above.
+
+-5:inf:0,-5
+0:inf:0,0
+5:inf:0,5
+
+-5:-inf:0,-5
+0:-inf:0,0
+5:-inf:0,5
+
+# Numerator is finite, and denominator is finite and non-zero.
+
+-5:-5:1,0
+-5:-2:2,-1
+-5:-1:5,0
+-5:1:-5,0
+-5:2:-2,-1
+-5:5:-1,0
+-2:-5:0,-2
+-2:-2:1,0
+-2:-1:2,0
+-2:1:-2,0
+-2:2:-1,0
+-2:5:0,-2
+-1:-5:0,-1
+-1:-2:0,-1
+-1:-1:1,0
+-1:1:-1,0
+-1:2:0,-1
+-1:5:0,-1
+0:-5:0,0
+0:-2:0,0
+0:-1:0,0
+0:1:0,0
+0:2:0,0
+0:5:0,0
+1:-5:0,1
+1:-2:0,1
+1:-1:-1,0
+1:1:1,0
+1:2:0,1
+1:5:0,1
+2:-5:0,2
+2:-2:-1,0
+2:-1:-2,0
+2:1:2,0
+2:2:1,0
+2:5:0,2
+5:-5:-1,0
+5:-2:-2,1
+5:-1:-5,0
+5:1:5,0
+5:2:2,1
+5:5:1,0
+
+&btdiv
+
+# Divide by zero and modulo zero.
+
+inf:0:inf
+5:0:inf
+0:0:NaN
+-5:0:-inf
+-inf:0:-inf
+
+# Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
+
+inf:-inf:NaN
+inf:-5:-inf
+inf:5:inf
+inf:inf:NaN
+
+-inf:-inf:NaN
+-inf:-5:inf
+-inf:5:-inf
+-inf:inf:NaN
+
+# Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
+# are covered above.
+
+-5:inf:0
+0:inf:0
+5:inf:0
+
+-5:-inf:0
+0:-inf:0
+5:-inf:0
+
+# Numerator is finite, and denominator is finite and non-zero.
+
+-5:-5:1
+-5:-2:2
+-5:-1:5
+-5:1:-5
+-5:2:-2
+-5:5:-1
+-2:-5:0
+-2:-2:1
+-2:-1:2
+-2:1:-2
+-2:2:-1
+-2:5:0
+-1:-5:0
+-1:-2:0
+-1:-1:1
+-1:1:-1
+-1:2:0
+-1:5:0
+0:-5:0
+0:-2:0
+0:-1:0
+0:1:0
+0:2:0
+0:5:0
+1:-5:0
+1:-2:0
+1:-1:-1
+1:1:1
+1:2:0
+1:5:0
+2:-5:0
+2:-2:-1
+2:-1:-2
+2:1:2
+2:2:1
+2:5:0
+5:-5:-1
+5:-2:-2
+5:-1:-5
+5:1:5
+5:2:2
+5:5:1
+
+###############################################################################
+
&bmodinv
# format: number:modulus:result
# bmodinv Data errors
@@ -2248,35 +2452,44 @@ inf:5:13:NaN
5:inf:13:NaN
&bmod
-# inf handling, see table in doc
+
+# Divide by zero and modulo zero.
+
+inf:0:inf
+5:0:5
+0:0:0
+-5:0:-5
+-inf:0:-inf
+
+# Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
+
+inf:-inf:NaN
+inf:-5:NaN
+inf:5:NaN
+inf:inf:NaN
+
+-inf:-inf:NaN
+-inf:-5:NaN
+-inf:5:NaN
+-inf:inf:NaN
+
+# Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
+# are covered above.
+
+-5:inf:inf
0:inf:0
-0:-inf:0
5:inf:5
-5:-inf:-inf
--5:inf:inf
+
-5:-inf:-5
-inf:5:NaN
--inf:5:NaN
-inf:-5:NaN
--inf:-5:NaN
+0:-inf:0
+5:-inf:-inf
+
+# Numerator is finite, and denominator is finite and non-zero.
+
5:5:0
-5:-5:0
-inf:inf:NaN
--inf:-inf:NaN
--inf:inf:NaN
-inf:-inf:NaN
-8:0:8
-inf:0:inf
--inf:0:-inf
--8:0:-8
-0:0:0
-abc:abc:NaN
-abc:1:abc:NaN
-1:abc:NaN
0:1:0
-1:0:1
0:-1:0
--1:0:-1
1:1:0
-1:-1:0
1:-1:0
@@ -2385,7 +2598,7 @@ abc:+0:NaN
abc:abc:NaN
abc:+0:NaN
+0:abc:NaN
-+0:+0:NaN
++0:+0:0
+1:+0:0
+0:+1:0
+27:+90:270
@@ -2599,7 +2812,7 @@ abc:NaN,NaN
&bfac
-1:NaN
-NaNfac:NaN
+invalid:NaN
+inf:inf
-inf:NaN
0:1
@@ -2869,7 +3082,7 @@ NaN:1:NaN
&bround
$round_mode("trunc")
0:12:0
-NaNbround:12:NaN
+invalid:12:NaN
+inf:12:inf
-inf:12:-inf
1234:0:1234
@@ -2970,7 +3183,7 @@ $round_mode("common")
&is_zero
0:1
-NaNzero:0
+invalid:0
+inf:0
-inf:0
123:0
@@ -2979,7 +3192,7 @@ NaNzero:0
&is_one
0:0
-NaNone:0
+invalid:0
+inf:0
-inf:0
1:1
@@ -2990,7 +3203,7 @@ NaNone:0
# floor, ceil, and int are pretty pointless in integer space, but play safe
&bfloor
0:0
-NaNfloor:NaN
+invalid:NaN
+inf:inf
-inf:-inf
-1:-1
@@ -3000,7 +3213,7 @@ NaNfloor:NaN
abc:NaN
&bceil
-NaNceil:NaN
+invalid:NaN
+inf:inf
-inf:-inf
0:0
@@ -3029,7 +3242,7 @@ NaN:NaN
0x123456789123456789:0x123456789123456789
+inf:inf
-inf:-inf
-NaNas_hex:NaN
+invalid:NaN
&as_bin
128:0b10000000
@@ -3041,7 +3254,7 @@ NaNas_hex:NaN
0x123456789123456789:0b100100011010001010110011110001001000100100011010001010110011110001001
+inf:inf
-inf:-inf
-NaNas_bin:NaN
+invalid:NaN
&as_oct
128:0200
@@ -3053,7 +3266,42 @@ NaNas_bin:NaN
0x123456789123456789:044321263611044321263611
+inf:inf
-inf:-inf
-NaNas_oct:NaN
+invalid:NaN
+
+&to_hex
+128:80
+-128:-80
+0:0
+-0:0
+1:1
+0x123456789123456789:123456789123456789
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_bin
+128:10000000
+-128:-10000000
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1010111101010101010110110110110110101
+0x123456789123456789:100100011010001010110011110001001000100100011010001010110011110001001
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_oct
+128:200
+-128:-200
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1275252666665
+0x123456789123456789:44321263611044321263611
++inf:inf
+-inf:-inf
+invalid:NaN
# overloaded functions
&log
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t
index 7c81c89d543..d052a878037 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t
@@ -3,18 +3,52 @@
use strict;
use warnings;
-use Test::More tests => 3724 # tests in require'd file
- + 6; # tests in this file
+use Test::More tests => 3942 # tests in require'd file
+ + 20; # tests in this file
-use Math::BigInt lib => 'Calc';
+use Math::BigInt only => 'Calc';
our ($CLASS, $CALC);
$CLASS = "Math::BigInt";
-$CALC = "Math::BigInt::Calc";
+$CALC = Math::BigInt -> config('lib'); # backend library
my $x;
#############################################################################
+# bgcd() as function, class method and instance method.
+
+my $gcd0 = Math::BigInt::bgcd(-12, 18, 27);
+isa_ok($gcd0, "Math::BigInt", "bgcd() as function");
+is($gcd0, 3, "bgcd() as function");
+
+my $gcd1 = Math::BigInt->bgcd(-12, 18, 27);
+isa_ok($gcd1, "Math::BigInt", "bgcd() as class method");
+is($gcd1, 3, "bgcd() as class method");
+
+$x = Math::BigInt -> new(-12);
+my $gcd2 = $x -> bgcd(18, 27);
+isa_ok($gcd2, "Math::BigInt", "bgcd() as instance method");
+is($gcd2, 3, "bgcd() as instance method");
+is($x, -12, "bgcd() does not modify invocand");
+
+#############################################################################
+# blcm() as function, class method and instance method.
+
+my $lcm0 = Math::BigInt::blcm(-12, 18, 27);
+isa_ok($lcm0, "Math::BigInt", "blcm() as function");
+is($lcm0, 108, "blcm() as function");
+
+my $lcm1 = Math::BigInt->blcm(-12, 18, 27);
+isa_ok($lcm1, "Math::BigInt", "blcm() as class method");
+is($lcm1, 108, "blcm() as class method");
+
+$x = Math::BigInt -> new(-12);
+my $lcm2 = $x -> blcm(18, 27);
+isa_ok($lcm2, "Math::BigInt", "blcm() as instance method");
+is($lcm2, 108, "blcm() as instance method");
+is($x, -12, "blcm() does not modify invocand");
+
+#############################################################################
# from_hex(), from_bin() and from_oct() tests
$x = Math::BigInt->from_hex('0xcafe');
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t
index b8af161f76c..122f026900e 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t
@@ -16,7 +16,7 @@ use warnings;
use Test::More tests => 73;
-use Math::BigFloat;
+use Math::BigFloat only => 'Calc';
use Math::BigInt;
my $class = "Math::BigInt";
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigroot.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigroot.t
index 9a6ab8a03d1..73720058213 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigroot.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigroot.t
@@ -13,7 +13,7 @@ use warnings; # enable optional warnings
use Test::More tests => 4 * 2;
-use Math::BigFloat;
+use Math::BigFloat only => 'Calc';
use Math::BigInt;
my $mbf = "Math::BigFloat";
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t
index fb51e2b0d72..900677542b4 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/calling.t
@@ -6,10 +6,9 @@ use strict;
use warnings;
use lib 't';
-my $VERSION = '1.999715'; # adjust manually to match latest release
-$VERSION = eval $VERSION;
+my $VERSION = '1.999811'; # adjust manually to match latest release
-use Test::More tests => 161;
+use Test::More tests => 5;
##############################################################################
@@ -24,7 +23,7 @@ use overload;
package Math::BigFloat::Test;
use Math::BigFloat;
-our @ISA = qw/Math::BigFloat/; # subclass of MBI
+our @ISA = qw/Math::BigFloat/; # subclass of MBF
use overload;
##############################################################################
@@ -34,43 +33,10 @@ package main;
use Math::BigInt try => 'Calc';
use Math::BigFloat;
-my ($x, $y, $z, $u);
-
-###############################################################################
-# check whether op's accept normal strings, even when inherited by subclasses
-
-# do one positive and one negative test to avoid false positives by "accident"
-
-my ($method, $expected);
-while (<DATA>) {
- s/#.*$//; # remove comments
- s/\s+$//; # remove trailing whitespace
- next unless length; # skip empty lines
-
- if (s/^&//) {
- $method = $_;
- next;
- }
-
- my @args = split /:/, $_, 99;
- $expected = pop @args;
- foreach my $class (qw/
- Math::BigInt Math::BigFloat
- Math::BigInt::Test Math::BigFloat::Test
- /)
- {
- my $arg = $args[0] =~ /"/ || $args[0] eq "" ? $args[0]
- : qq|"$args[0]"|;
- my $try = "$class\->$method($arg);";
- my $got = eval $try;
- is($got, $expected, $try);
- }
-}
+my ($x, $expected, $try);
my $class = 'Math::BigInt';
-my $try;
-
# test whether use Math::BigInt qw/VERSION/ works
$try = "use $class (" . ($VERSION . '1') .");";
$try .= ' $x = $class->new(123); $x = "$x";';
@@ -81,7 +47,7 @@ like($@, qr/ ^ Math::BigInt \s+ ( version \s+ )? \S+ \s+ required--this \s+
# test whether fallback to calc works
$try = qq|use $class ($VERSION, "try", "foo, bar, ");|
- . qq| $class\->config()->{lib};|;
+ . qq| $class\->config('lib');|;
$expected = eval $try;
like($expected, qr/^Math::BigInt::(Fast)?Calc\z/, $try);
@@ -102,60 +68,3 @@ $try = qq|use $class ($VERSION, "lib", "$class\::Scalar");|
. q| $x = 2**10; $x = "$x";|;
$expected = eval $try;
is($expected, "1024", $try);
-
-# all done
-
-__END__
-&is_zero
-1:0
-0:1
-&is_one
-1:1
-0:0
-&is_positive
-1:1
--1:0
-&is_negative
-1:0
--1:1
-&is_nan
-abc:1
-1:0
-&is_inf
-inf:1
-0:0
-&bstr
-5:5
-10:10
--10:-10
-abc:NaN
-"+inf":inf
-"-inf":-inf
-&bsstr
-1:1e+0
-0:0e+0
-2:2e+0
-200:2e+2
--5:-5e+0
--100:-1e+2
-abc:NaN
-"+inf":inf
-&babs
--1:1
-1:1
-&bnot
--2:1
-1:-2
-&bzero
-:0
-&bnan
-:NaN
-abc:NaN
-&bone
-:1
-"+":1
-"-":-1
-&binf
-:inf
-"+":inf
-"-":-inf
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbi_rand.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbi_rand.t
index 1f49021dc9f..fce5e20cddd 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbi_rand.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbi_rand.t
@@ -3,16 +3,14 @@
use strict;
use warnings;
-my $count;
+use Test::More;
-BEGIN {
- $count = 128;
-}
+my $count = 128;
-use Test::More tests => $count * 4;
+plan(($^O eq 'os390') ? (skip_all => 'takes too long on os390')
+ : (tests => $count*4));
-use Math::BigInt;
-my $class = 'Math::BigInt';
+use Math::BigInt only => 'Calc';
my $length = 128;
@@ -26,8 +24,8 @@ srand($seed);
my $_base_len;
my @_base_len;
-#diag(" lib: ", Math::BigInt->config()->{lib});
-if (Math::BigInt->config()->{lib} =~ /::Calc/) {
+#diag(" lib: ", Math::BigInt->config('lib'));
+if (Math::BigInt->config('lib') =~ /::Calc/) {
$_base_len = Math::BigInt::Calc->_base_len();
@_base_len = Math::BigInt::Calc->_base_len();
#diag("base len: $_base_len (scalar context)");
@@ -62,8 +60,8 @@ for (my $i = 0; $i < $count; $i++) {
$B_str =~ s/^0+(?=\d)//;
#diag(" As: $A_str");
#diag(" Bs: $B_str");
- $A = $class->new($A_str);
- $B = $class->new($B_str);
+ $A = Math::BigInt->new($A_str);
+ $B = Math::BigInt->new($B_str);
#diag(" A: $A");
#diag(" B: $B");
@@ -83,7 +81,7 @@ for (my $i = 0; $i < $count; $i++) {
"AdivB * B + 2 * AmodB - AmodB == A");
if (is($AdivB * $B / $B, $AdivB, "AdivB * B / B == AdivB")) {
- if (Math::BigInt->config()->{lib} =~ /::Calc/) {
+ if (Math::BigInt->config('lib') =~ /::Calc/) {
#diag("AdivB->[-1]: ", $AdivB->{value}->[-1]);
#diag(" B->[-1]: ", $B->{value}->[-1]);
}
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc b/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc
index 0e1a42c4f09..f0d4888ea49 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc
@@ -944,114 +944,249 @@ is($params[0], $x, q|$params[0] = $x|); # self
foreach my $class ($mbi, $mbf) {
$x = $class->new(2)->bzero();
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2)->bzero(); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2)->bzero(); \$x->{_p}|);
$x = $class->new(2)->bone();
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2)->bone(); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2)->bone(); \$x->{_p}|);
$x = $class->new(2)->binf();
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2)->binf(); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2)->binf(); \$x->{_p}|);
$x = $class->new(2)->bnan();
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2)->bnan(); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2)->bnan(); \$x->{_p}|);
+
+ note "Verify that bnan() does not delete/undefine accuracy and precision.";
$x = $class->new(2);
$x->{_a} = 1;
- $x->{_p} = 2;
$x->bnan();
+ is($x->{_a}, 1, qq|\$x = $class->new(2); \$x->{_a} = 1; \$x->bnan(); \$x->{_a}|);
+
+ $x = $class->new(2);
+ $x->{_p} = 1;
+ $x->bnan();
+ is($x->{_p}, 1, qq|\$x = $class->new(2); \$x->{_p} = 1; \$x->bnan(); \$x->{_p}|);
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ note "Verify that binf() does not delete/undefine accuracy and precision.";
$x = $class->new(2);
$x->{_a} = 1;
- $x->{_p} = 2;
$x->binf();
+ is($x->{_a}, 1, qq|\$x = $class->new(2); \$x->{_a} = 1; \$x->binf(); \$x->{_a}|);
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ $x = $class->new(2);
+ $x->{_p} = 1;
+ $x->binf();
+ is($x->{_p}, 1, qq|\$x = $class->new(2); \$x->{_p} = 1; \$x->binf(); \$x->{_p}|);
+
+ note "Verify that accuracy can be set as argument to new().";
$x = $class->new(2, 1);
- is($x->{_a}, 1, q|$x->{_a} = 1|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, 1, qq|\$x = $class->new(2, 1); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2, 1); \$x->{_p}|);
+
+ note "Verify that precision can be set as argument to new().";
$x = $class->new(2, undef, 1);
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, 1, q|$x->{_p} = 1|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2, undef, 1); \$x->{_a}|);
+ is($x->{_p}, 1, qq|\$x = $class->new(2, undef, 1); \$x->{_p}|);
+
+ note "Verify that accuracy set with new() is preserved after calling bzero().";
$x = $class->new(2, 1)->bzero();
- is($x->{_a}, 1, q|$x->{_a} = 1|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, 1, qq|\$x = $class->new(2, 1)->bzero(); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2, 1)->bzero(); \$x->{_p}|);
+
+ note "Verify that precision set with new() is preserved after calling bzero().";
$x = $class->new(2, undef, 1)->bzero();
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, 1, q|$x->{_p} = 1|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2, undef, 1)->bzero(); \$x->{_a}|);
+ is($x->{_p}, 1, qq|\$x = $class->new(2, undef, 1)->bzero(); \$x->{_p}|);
+
+ note "Verify that accuracy set with new() is preserved after calling bone().";
$x = $class->new(2, 1)->bone();
- is($x->{_a}, 1, q|$x->{_a} = 1|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, 1, qq|\$x = $class->new(2, 1)->bone(); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2, 1)->bone(); \$x->{_p}|);
+
+ note "Verify that precision set with new() is preserved after calling bone().";
$x = $class->new(2, undef, 1)->bone();
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, 1, q|$x->{_p} = 1|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2, undef, 1)->bone(); \$x->{_a}|);
+ is($x->{_p}, 1, qq|\$x = $class->new(2, undef, 1)->bone(); \$x->{_p}|);
+
+ note "Verify that accuracy can be set with instance method bone('+').";
$x = $class->new(2);
$x->bone('+', 2, undef);
- is($x->{_a}, 2, q|$x->{_a} = 2|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, 2, qq|\$x = $class->new(2); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2); \$x->{_p}|);
+
+ note "Verify that precision can be set with instance method bone('+').";
$x = $class->new(2);
$x->bone('+', undef, 2);
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, 2, q|$x->{_p} = 2|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2); \$x->bone('+', undef, 2); \$x->{_a}|);
+ is($x->{_p}, 2, qq|\$x = $class->new(2); \$x->bone('+', undef, 2); \$x->{_p}|);
+
+ note "Verify that accuracy can be set with instance method bone('-').";
$x = $class->new(2);
$x->bone('-', 2, undef);
- is($x->{_a}, 2, q|$x->{_a} = 2|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, 2, qq|\$x = $class->new(2); \$x->bone('-', 2, undef); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2); \$x->bone('-', 2, undef); \$x->{_p}|);
+
+ note "Verify that precision can be set with instance method bone('-').";
$x = $class->new(2);
$x->bone('-', undef, 2);
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, 2, q|$x->{_p} = 2|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2); \$x->bone('-', undef, 2); \$x->{_a}|);
+ is($x->{_p}, 2, qq|\$x = $class->new(2); \$x->bone('-', undef, 2); \$x->{_p}|);
+
+ note "Verify that accuracy can be set with instance method bzero().";
$x = $class->new(2);
$x->bzero(2, undef);
- is($x->{_a}, 2, q|$x->{_a} = 2|);
- is($x->{_p}, undef, q|$x->{_p} = undef|);
+ is($x->{_a}, 2, qq|\$x = $class->new(2);\$x->bzero(2, undef); \$x->{_a}|);
+ is($x->{_p}, undef, qq|\$x = $class->new(2);\$x->bzero(2, undef); \$x->{_p}|);
+
+ note "Verify that precision can be set with instance method bzero().";
$x = $class->new(2);
$x->bzero(undef, 2);
- is($x->{_a}, undef, q|$x->{_a} = undef|);
- is($x->{_p}, 2, q|$x->{_p} = 2|);
+ is($x->{_a}, undef, qq|\$x = $class->new(2); \$x->bzero(undef, 2); \$x->{_a}|);
+ is($x->{_p}, 2, qq|\$x = $class->new(2); \$x->bzero(undef, 2); \$x->{_p}|);
}
###############################################################################
-# test whether bone/bzero honour globals
+# test whether bone/bzero honour class variables
for my $class ($mbi, $mbf) {
- $class->accuracy(2);
- $x = $class->bone();
- is($x->accuracy(), 2, q|$x->accuracy() = 2|);
+ note "Verify that class accuracy is copied into new objects.";
- $x = $class->bzero();
- is($x->accuracy(), 2, q|$x->accuracy() = 2|);
+ $class->accuracy(3); # set
- $class->accuracy(undef); # reset
+ $x = $class->bzero();
+ is($x->accuracy(), 3,
+ qq|$class->accuracy(3); \$x = $class->bzero(); \$x->accuracy()|);
- $class->precision(-2);
$x = $class->bone();
- is($x->precision(), -2, q|$x->precision() = -2|);
+ is($x->accuracy(), 3,
+ qq|$class->accuracy(3); \$x = $class->bone(); \$x->accuracy()|);
+
+ $x = $class->new(2);
+ is($x->accuracy(), 3,
+ qq|$class->accuracy(3); \$x = $class->new(2); \$x->accuracy()|);
+
+ $class->accuracy(undef); # reset
+
+ note "Verify that class precision is copied into new objects.";
+
+ $class->precision(-4); # set
$x = $class->bzero();
- is($x->precision(), -2, q|$x->precision() = -2|);
+ is($x->precision(), -4,
+ qq|$class->precision(-4); \$x = $class->bzero(); \$x->precision()|);
+
+ $x = $class->bone();
+ is($x->precision(), -4,
+ qq|$class->precision(-4); \$x = $class->bone(); \$x->precision()|);
+
+ $x = $class->new(2);
+ is($x->precision(), -4,
+ qq|$class->precision(-4); \$x = $class->new(2); \$x->precision()|);
+
+ $class->precision(undef); # reset
+
+ note "Verify that setting accuracy as method argument overrides class variable";
+
+ $class->accuracy(2); # set
+
+ $x = $class->bzero(5);
+ is($x->accuracy(), 5,
+ qq|$class->accuracy(2); \$x = $class->bzero(5); \$x->accuracy()|);
+
+ SKIP: {
+ skip 1, "this won't work until we have a better OO implementation";
+
+ $x = $class->bzero(undef);
+ is($x->accuracy(), undef,
+ qq|$class->accuracy(2); \$x = $class->bzero(undef); \$x->accuracy()|);
+ }
+
+ $x = $class->bone("+", 5);
+ is($x->accuracy(), 5,
+ qq|$class->accuracy(2); \$x = $class->bone("+", 5); \$x->accuracy()|);
+
+ SKIP: {
+ skip 1, "this won't work until we have a better OO implementation";
+
+ $x = $class->bone("+", undef);
+ is($x->accuracy(), undef,
+ qq|$class->accuracy(2); \$x = $class->bone("+", undef); \$x->accuracy()|);
+ }
+
+ $x = $class->new(2, 5);
+ is($x->accuracy(), 5,
+ qq|$class->accuracy(2); \$x = $class->new(2, 5); \$x->accuracy()|);
+
+
+ SKIP: {
+ skip 1, "this won't work until we have a better OO implementation";
+
+ $x = $class->new(2, undef);
+ is($x->accuracy(), undef,
+ qq|$class->accuracy(2); \$x = $class->new(2, undef); \$x->accuracy()|);
+ }
+
+ $class->accuracy(undef); # reset
+
+ note "Verify that setting precision as method argument overrides class variable";
+
+ $class->precision(-2); # set
+
+ $x = $class->bzero(undef, -6);
+ is($x->precision(), -6,
+ qq|$class->precision(-2); \$x = $class->bzero(undef, -6); \$x->precision()|);
+
+ SKIP: {
+ skip 1, "this won't work until we have a better OO implementation";
+
+ $x = $class->bzero(undef, undef);
+ is($x->precision(), undef,
+ qq|$class->precision(-2); \$x = $class->bzero(undef, undef); \$x->precision()|);
+ }
+
+ $x = $class->bone("+", undef, -6);
+ is($x->precision(), -6,
+ qq|$class->precision(-2); \$x = $class->bone("+", undef, -6); \$x->precision()|);
+
+ SKIP: {
+ skip 1, "this won't work until we have a better OO implementation";
+
+ $x = $class->bone("+", undef, undef);
+ is($x->precision(), undef,
+ qq|$class->precision(-2); \$x = $class->bone("+", undef, undef); \$x->precision()|);
+ }
+
+ $x = $class->new(2, undef, -6);
+ is($x->precision(), -6,
+ qq|$class->precision(-2); \$x = $class->new(2, undef, -6); \$x->precision()|);
+
+ SKIP: {
+ skip 1, "this won't work until we have a better OO implementation";
+
+ $x = $class->new(2, undef, undef);
+ is($x->precision(), undef,
+ qq|$class->precision(-2); \$x = $class->new(2, undef, undef); \$x->precision()|);
+ }
- $class->precision(undef); # reset
+ $class->precision(undef); # reset
}
###############################################################################
@@ -1113,7 +1248,7 @@ foreach my $class ($mbi, $mbf) {
my ($got, $f, $a, $p, $xp, $yp, $xa, $ya, $try, $want, @args);
-my $CALC = Math::BigInt->config()->{lib};
+my $CALC = Math::BigInt->config('lib');
while (<DATA>) {
s/#.*$//; # remove comments
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.t
index afad66f423e..a5ae9b727fa 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.t
@@ -6,10 +6,10 @@
use strict;
use warnings;
-use Test::More tests => 684 # tests in require'd file
+use Test::More tests => 712 # tests in require'd file
+ 26; # tests in this file
-use Math::BigInt lib => 'Calc';
+use Math::BigInt only => 'Calc';
use Math::BigFloat;
our $mbi = 'Math::BigInt';
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t
index 9f6d58e3c94..75f7faffc4e 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 2409 # tests in require'd file
+use Test::More tests => 2482 # tests in require'd file
+ 6; # tests in this file
use lib 't';
@@ -12,7 +12,7 @@ use Math::BigFloat::Subclass;
our ($CLASS, $CALC);
$CLASS = "Math::BigFloat::Subclass";
-$CALC = Math::BigFloat->config()->{lib}; # backend
+$CALC = Math::BigFloat->config('lib'); # backend library
require 't/bigfltpm.inc'; # perform same tests as bigfltpm
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t
index a0b9e5f066d..fca01f01e24 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 3724 # tests in require'd file
+use Test::More tests => 3942 # tests in require'd file
+ 5; # tests in this file
use lib 't';
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mif.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mif.t
index 464dfb50fb6..96bf82fdd4d 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mif.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mif.t
@@ -6,7 +6,7 @@
use strict;
use warnings;
-use Test::More tests => 684;
+use Test::More tests => 712;
use lib 't';
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/trap.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/trap.t
index 5fdf4c24b22..a02a89c9e95 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/trap.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/trap.t
@@ -26,7 +26,7 @@ foreach my $class ($mbi, $mbf) {
# also test that new() still works normally
eval ("\$x = \$class->new('42'); \$x->bnan();");
- like($@, qr/^Tried to set/, 'died');
+ like($@, qr/^Tried to create/, 'died');
is($x, 42, '$x after new() never modified');
# can reset?
@@ -38,31 +38,31 @@ foreach my $class ($mbi, $mbf) {
is($cfg->{trap_inf}, 1, 'trap_inf enabled');
eval ("\$x = \$class->new('4711'); \$x->binf();");
- like($@, qr/^Tried to set/, 'died');
+ like($@, qr/^Tried to create/, 'died');
is($x, 4711, '$x after new() never modified');
eval ("\$x = \$class->new('inf');");
- like($@, qr/^Tried to set/, 'died');
+ like($@, qr/^Tried to create/, 'died');
is($x, 4711, '$x after new() never modified');
eval ("\$x = \$class->new('-inf');");
- like($@, qr/^Tried to set/, 'died');
+ like($@, qr/^Tried to create/, 'died');
is($x, 4711, '$x after new() never modified');
# +$x/0 => +inf
eval ("\$x = \$class->new('4711'); \$x->bdiv(0);");
- like($@, qr/^Tried to set/, 'died');
+ like($@, qr/^Tried to create/, 'died');
is($x, 4711, '$x after new() never modified');
# -$x/0 => -inf
eval ("\$x = \$class->new('-0815'); \$x->bdiv(0);");
- like($@, qr/^Tried to set/, 'died');
+ like($@, qr/^Tried to create/, 'died');
is($x, '-815', '$x after new not modified');
$cfg = $class->config( trap_nan => 1 );
# 0/0 => NaN
eval ("\$x = \$class->new('0'); \$x->bdiv(0);");
- like($@, qr/^Tried to set/, 'died');
+ like($@, qr/^Tried to create/, 'died');
is($x, '0', '$x after new not modified');
}
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc
index 8e77f44d36b..41428bcc5e2 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc
@@ -47,7 +47,7 @@ sub _swap {
##############################################################################
package main;
-is($CLASS->config()->{lib}, $CALC, "$CLASS->config()->{lib}");
+is($CLASS->config('lib'), $CALC, "$CLASS->config('lib')");
my ($x, $y, $z, @args, $a, $m, $e, $try, $got, $want, $exp);
my ($f, $round_mode, $expected_class);
@@ -82,10 +82,8 @@ while (<DATA>) {
$try = qq|\$x = $CLASS->bnorm("$args[0]");|;
} elsif ($f =~ /^is_(zero|one|odd|even|negative|positive|nan|int)$/) {
$try .= " \$x->$f();";
- } elsif ($f eq "as_hex") {
- $try .= ' $x->as_hex();';
- } elsif ($f eq "as_bin") {
- $try .= ' $x->as_bin();';
+ } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) {
+ $try .= " \$x->$f();";
} elsif ($f eq "is_inf") {
$try .= " \$x->is_inf('$args[1]');";
} elsif ($f eq "binf") {
@@ -93,7 +91,7 @@ while (<DATA>) {
} elsif ($f eq "bone") {
$try .= " \$x->bone('$args[1]');";
# some unary ops
- } elsif ($f =~ /^b(nan|floor|ceil|int|sstr|neg|abs|inc|dec|not|sqrt|fac)$/) {
+ } elsif ($f =~ /^b(nan|floor|ceil|int|sstr|neg|abs|inc|dec|not|sqrt|d?fac)$/) {
$try .= " \$x->$f();";
} elsif ($f eq "length") {
$try .= ' $x->length();';
@@ -257,29 +255,39 @@ sub is_valid {
}
__DATA__
+
&.=
1234:-345:1234-345
+
&+=
1:2:3
-1:-2:-3
+
&-=
1:2:-1
-1:-2:1
+
&*=
2:3:6
-1:5:-5
+
&%=
100:3:1
8:9:8
+
&/=
100:3:33.33333333333333333333333333333333333333
-8:2:-4
+
&|=
2:1:3
+
&&=
5:7:5
+
&^=
5:7:2
+
&is_negative
0:0
-1:1
@@ -287,6 +295,7 @@ __DATA__
+inf:0
-inf:1
NaNneg:0
+
&is_positive
0:0
-1:0
@@ -294,6 +303,7 @@ NaNneg:0
+inf:1
-inf:0
NaNneg:0
+
&is_odd
abc:0
0:0
@@ -306,6 +316,7 @@ abc:0
2:0
120:0
121:1
+
&is_int
NaN:0
inf:0
@@ -313,6 +324,7 @@ inf:0
1:1
12:1
123e12:1
+
&is_even
abc:0
0:1
@@ -325,6 +337,7 @@ abc:0
2:1
120:1
121:0
+
&bacmp
+0:-0:0
+0:+1:-1
@@ -355,6 +368,7 @@ acmpNaN:acmpNaN:
NaN:inf:
-inf:NaN:
NaN:-inf:
+
&bnorm
123:123
12.3:12.3^
@@ -532,10 +546,12 @@ E23:NaN
-1010E-2:-10.1^
-1.01E+1:-10.1^
-1.01E-1:-0.101^
+
&bnan
1:NaN
2:NaN
abc:NaN
+
&bone
2:+:1
2:-:-1
@@ -543,15 +559,18 @@ boneNaN:-:-1
boneNaN:+:1
2:abc:1
3::1
+
&binf
1:+:inf
2:-:-inf
3:abc:inf
+
&is_nan
123:0
abc:1
NaN:1
-123:0
+
&is_inf
+inf::1
-inf::1
@@ -565,6 +584,7 @@ NaN::0
-inf:+:0
+iNfInItY::1
-InFiNiTy::1
+
&blsft
abc:abc:NaN
+2:+2:8
@@ -579,6 +599,7 @@ abc:abc:NaN
+12:2:10:1200
+1234:-3:10:NaN
1234567890123:12:10:1234567890123000000000000
+
&brsft
abc:abc:NaN
+8:+2:2
@@ -597,11 +618,13 @@ abc:abc:NaN
1230000000000:10:10:123
09876123456789067890:12:10:9876123
1234561234567890123:13:10:123456
+
&bsstr
1e+34:1e+34
123.456E3:123456e+0
100:1e+2
abc:NaN
+
&bneg
bnegNaN:NaN
+inf:-inf
@@ -612,6 +635,7 @@ abd:NaN
-1:1
+123456789:-123456789
-123456789:123456789
+
&babs
babsNaN:NaN
+inf:inf
@@ -621,6 +645,7 @@ babsNaN:NaN
-1:1
+123456789:123456789
-123456789:123456789
+
&bcmp
bcmpNaN:bcmpNaN:
bcmpNaN:0:
@@ -665,6 +690,7 @@ bcmpNaN:0:
NaN:inf:
-inf:NaN:
NaN:-inf:
+
&binc
abc:NaN
+inf:inf
@@ -672,6 +698,7 @@ abc:NaN
+0:1
+1:2
-1:0
+
&bdec
abc:NaN
+inf:inf
@@ -679,6 +706,7 @@ abc:NaN
+0:-1
+1:0
-1:-2
+
&badd
abc:abc:NaN
abc:0:NaN
@@ -728,6 +756,7 @@ baddNaN:+inf:NaN
2:2.5:4.5^
-123:-1.5:-124.5^
-1.2:1:-0.2^
+
&bsub
abc:abc:NaN
abc:+0:NaN
@@ -770,6 +799,7 @@ abc:+0:NaN
-123456789:+987654321:-1111111110
-123456789:-987654321:864197532
+123456789:-987654321:1111111110
+
&bmul
abc:abc:NaN
abc:+0:NaN
@@ -832,6 +862,7 @@ NaNmul:-inf:NaN
9999999999999999999:10000000000000000000:99999999999999999990000000000000000000
3:3.5:10.5^
3.5:3:10.5^
+
&bdiv-list
100:20:5,0
4095:4095:1,0
@@ -870,6 +901,7 @@ inf:0:inf,inf
-8:0:-inf,-8
-inf:0:-inf,-inf
0:0:NaN,0
+
&bdiv
abc:abc:NaN
abc:1:NaN
@@ -948,6 +980,7 @@ inf:0:inf
# bug in Calc with '99999' vs $BASE-1
#10000000000000000000000000000000000000000000000000000000000000000000000000000000000:10000000375084540248994272022843165711074:999999962491547381984643365663244474111576
12:24:0.5^
+
&bmod
# inf handling, see table in doc
0:inf:0
@@ -1021,6 +1054,7 @@ abc:1:abc:NaN
100041000510123:3:0
152403346:12345:4321
9:5:4
+
&bgcd
abc:abc:NaN
abc:+0:NaN
@@ -1037,15 +1071,17 @@ abc:+0:NaN
1034:804:2
27:90:56:1
27:90:54:9
+
&blcm
abc:abc:NaN
abc:+0:NaN
+0:abc:NaN
-+0:+0:NaN
++0:+0:0
+1:+0:0
+0:+1:0
+27:+90:270
+1034:+804:415668
+
&band
abc:abc:NaN
abc:0:NaN
@@ -1079,6 +1115,7 @@ abc:0:NaN
0xF0F0F0F0F0F0:0xF0F0F0F0F0F0:0x0xF0F0F0F0F0F0
0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0x0x0F0F0F0F0F0F
0x1F0F0F0F0F0F:0x3F0F0F0F0F0F:0x0x1F0F0F0F0F0F
+
&bior
abc:abc:NaN
abc:0:NaN
@@ -1125,6 +1162,7 @@ abc:0:NaN
0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0x0x0F0F0F0F0F0F
0x0F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF
0x1F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF
+
&bxor
abc:abc:NaN
abc:0:NaN
@@ -1172,6 +1210,7 @@ abc:0:NaN
0xF0F0F0F0F0F0:0xF0F0F0F0F0F0:0
0x0F0F0F0F0F0F:0x0F0F0F0F0F0F:0
0x0F0F0F0F0F0F:0xF0F0F0F0F0F0:0x0xFFFFFFFFFFFF
+
&bnot
abc:NaN
+0:-1
@@ -1180,6 +1219,7 @@ abc:NaN
-1:0
-2:1
-12:11
+
&digit
0:0:0
12:0:2
@@ -1202,6 +1242,7 @@ abc:NaN
100000:-3:0
100000:0:0
100000:1:0
+
&mantissa
abc:NaN
1e4:1
@@ -1211,6 +1252,7 @@ abc:NaN
-2:-2
+inf:inf
-inf:-inf
+
&exponent
abc:NaN
1e4:4
@@ -1221,6 +1263,7 @@ abc:NaN
0:0
+inf:inf
-inf:inf
+
&parts
abc:NaN,NaN
1e4:1,4
@@ -1231,6 +1274,7 @@ abc:NaN,NaN
0:0,0
+inf:inf,inf
-inf:-inf,inf
+
&bfac
-1:NaN
NaNfac:NaN
@@ -1246,6 +1290,26 @@ NaNfac:NaN
10:3628800
11:39916800
12:479001600
+
+&bdfac
+NaN:NaN
+-1:NaN
++inf:inf
+-inf:NaN
+0:1
+1:1
+2:2
+3:3
+4:8
+5:15
+6:48
+7:105
+8:384
+9:945
+10:3840
+11:10395
+12:46080
+
&bpow
abc:12:NaN
12:abc:NaN
@@ -1309,6 +1373,7 @@ abc:12:NaN
10:20:100000000000000000000
123456:2:15241383936
#2:0.5:1.41^
+
&length
100:3
10:2
@@ -1319,10 +1384,12 @@ abc:12:NaN
-123:3
215960156869840440586892398248:30
# broot always upgrades
+
&broot
144:2:12^
123:2:11.09053650640941716205160010260993291846^
# bsqrt always upgrades
+
&bsqrt
145:12.04159457879229548012824103037860805243^
144:12^
@@ -1349,6 +1416,7 @@ abc:12:NaN
Nan:NaN
+inf:inf
-inf:NaN
+
&bround
$round_mode('trunc')
0:12:0
@@ -1429,6 +1497,7 @@ $round_mode('even')
+1234567:6:1234570
+12345000:4:12340000
-12345000:4:-12340000
+
&is_zero
0:1
NaNzero:0
@@ -1437,6 +1506,7 @@ NaNzero:0
123:0
-1:0
1:0
+
&is_one
0:0
NaNone:0
@@ -1447,6 +1517,7 @@ NaNone:0
-1:0
-2:0
# floor and ceil are pretty pointless in integer space, but play safe
+
&bfloor
0:0
NaNfloor:NaN
@@ -1457,6 +1528,7 @@ NaNfloor:NaN
2:2
3:3
abc:NaN
+
&bceil
NaNceil:NaN
+inf:inf
@@ -1467,6 +1539,7 @@ NaNceil:NaN
2:2
3:3
abc:NaN
+
&bint
NaN:NaN
+inf:inf
@@ -1476,6 +1549,41 @@ NaN:NaN
-2:-2
2:2
3:3
+
+&to_hex
+128:80
+-128:-80
+0:0
+-0:0
+1:1
+0x123456789123456789:123456789123456789
++inf:inf
+-inf:-inf
+NaNto_hex:NaN
+
+&to_oct
+128:200
+-128:-200
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1275252666665
+0x123456789123456789:44321263611044321263611
++inf:inf
+-inf:-inf
+NaNto_oct:NaN
+
+&to_bin
+128:10000000
+-128:-10000000
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1010111101010101010110110110110110101
++inf:inf
+-inf:-inf
+NaNto_bin:NaN
+
&as_hex
128:0x80
-128:-0x80
@@ -1486,6 +1594,7 @@ NaN:NaN
+inf:inf
-inf:-inf
NaNas_hex:NaN
+
&as_bin
128:0b10000000
-128:-0b10000000
@@ -1496,3 +1605,15 @@ NaNas_hex:NaN
+inf:inf
-inf:-inf
NaNas_bin:NaN
+
+&as_oct
+128:0200
+-128:-0200
+0:00
+-0:00
+1:01
+0b1010111101010101010110110110110110101:01275252666665
+0x123456789123456789:044321263611044321263611
++inf:inf
+-inf:-inf
+NaNas_oct:NaN
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t
index 2307a48c293..98b8d9af904 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 2124 # tests in require'd file
+use Test::More tests => 2196 # tests in require'd file
+ 2; # tests in this file
use Math::BigInt upgrade => 'Math::BigFloat';
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgradef.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgradef.t
index d2088903dfa..0663cdaa8bc 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgradef.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgradef.t
@@ -10,7 +10,7 @@ package Math::BigFloat::Test;
use Math::BigFloat;
require Exporter;
-our @ISA = qw/Exporter Math::BigFloat/;
+our @ISA = qw/Math::BigFloat Exporter/;
use overload;
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib1.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib1.t
index 5737470a1ae..c1e4bd98e2b 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib1.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib1.t
@@ -12,8 +12,8 @@ use lib 't';
use Math::BigFloat lib => 'BareCalc';
-is(Math::BigInt->config()->{lib}, 'Math::BigInt::BareCalc',
- 'Math::BigInt->config()->{lib}');
+is(Math::BigInt->config('lib'), 'Math::BigInt::BareCalc',
+ "Math::BigInt->config('lib')");
is(Math::BigFloat->new(123)->badd(123), 246,
'Math::BigFloat->new(123)->badd(123)');
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib2.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib2.t
index d66d7b25eb0..d5bcff12ad6 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib2.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib2.t
@@ -13,8 +13,8 @@ use lib 't';
use Math::BigInt;
use Math::BigFloat lib => 'BareCalc';
-is(Math::BigInt->config()->{lib}, 'Math::BigInt::BareCalc',
- 'Math::BigInt->config()->{lib}');
+is(Math::BigInt->config('lib'), 'Math::BigInt::BareCalc',
+ "Math::BigInt->config('lib')");
is(Math::BigFloat->new(123)->badd(123), 246,
'Math::BigFloat->new(123)->badd(123)');
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib3.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib3.t
index 4bb6cd5e496..f7d801ab855 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib3.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib3.t
@@ -13,8 +13,8 @@ use lib 't';
use Math::BigInt lib => 'BareCalc';
use Math::BigFloat;
-is(Math::BigInt->config()->{lib}, 'Math::BigInt::BareCalc',
- 'Math::BigInt->config()->{lib}');
+is(Math::BigInt->config('lib'), 'Math::BigInt::BareCalc',
+ "Math::BigInt->config('lib')");
is(Math::BigFloat->new(123)->badd(123), 246,
'Math::BigFloat->new(123)->badd(123)');
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib4.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib4.t
index 78fa87aa0ab..032b425893a 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib4.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_lib4.t
@@ -13,8 +13,8 @@ use Test::More tests => 2;
use Math::BigInt lib => 'BareCalc';
use Math::BigFloat lib => 'Calc';
-is(Math::BigInt->config()->{lib}, 'Math::BigInt::Calc',
- 'Math::BigInt->config()->{lib}');
+is(Math::BigInt->config('lib'), 'Math::BigInt::Calc',
+ "Math::BigInt->config('lib')");
is(Math::BigFloat->new(123)->badd(123), 246,
'Math::BigFloat->new(123)->badd(123)');
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_mbfw.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_mbfw.t
index da071f41c82..40c3bd84cb8 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_mbfw.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/use_mbfw.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
# check that using Math::BigFloat with "with" and "lib" at the same time works
# broken in versions up to v1.63
@@ -21,12 +21,12 @@ use Math::BigFloat with => 'Math::BigInt::Subclass',
lib => 'BareCalc';
is(Math::BigFloat->config()->{with}, 'Math::BigInt::BareCalc',
- 'Math::BigFloat->config()->{with}');
+ "Math::BigFloat->config()->{with}");
# is($Math::BigInt::Subclass::lib, 'BareCalc');
# it never arrives here, but that is a design decision in SubClass
-is(Math::BigInt->config->{lib}, 'Math::BigInt::BareCalc',
- 'Math::BigInt->config->{lib}');
+is(Math::BigInt->config()->{lib}, 'Math::BigInt::BareCalc',
+ 'Math::BigInt->config()->{lib}');
# all tests done
diff --git a/gnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t b/gnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t
index a1c9f65fae7..3a17fdc761c 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigInt/t/with_sub.t
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 2409 # tests in require'd file
+use Test::More tests => 2482 # tests in require'd file
+ 1; # tests in this file
use Math::BigFloat with => 'Math::BigInt::Subclass',
@@ -15,8 +15,8 @@ our ($CLASS, $CALC);
$CLASS = "Math::BigFloat";
$CALC = "Math::BigInt::Calc"; # backend
-# the with argument is ignored
+# the "with" argument should be ignored
is(Math::BigFloat->config()->{with}, 'Math::BigInt::Calc',
- 'Math::BigFloat->config()->{with}');
+ "Math::BigFloat->config()->{with}");
require 't/bigfltpm.inc'; # all tests here for sharing
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm b/gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm
index 95c2927a864..520b443b015 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm
@@ -12,40 +12,199 @@
package Math::BigRat;
-# anything older is untested, and unlikely to work
use 5.006;
use strict;
use warnings;
use Carp ();
-use Math::BigFloat;
+use Math::BigFloat 1.999718;
-our ($VERSION, @ISA, $upgrade, $downgrade,
- $accuracy, $precision, $round_mode, $div_scale, $_trap_nan, $_trap_inf);
+our $VERSION = '0.2613';
-@ISA = qw(Math::BigFloat);
+our @ISA = qw(Math::BigFloat);
-$VERSION = '0.260802';
-$VERSION = eval $VERSION;
-
-# Inherit overload from Math::BigFloat, but disable the bitwise ops that don't
-# make much sense for rationals unless they're truncated or something first.
+our ($accuracy, $precision, $round_mode, $div_scale,
+ $upgrade, $downgrade, $_trap_nan, $_trap_inf);
use overload
- map {
- my $op = $_;
- ($op => sub {
- Carp::croak("bitwise operation $op not supported in Math::BigRat");
- });
- } qw(& | ^ ~ << >> &= |= ^= <<= >>=);
+
+ # overload key: with_assign
+
+ '+' => sub { $_[0] -> copy() -> badd($_[1]); },
+
+ '-' => sub { my $c = $_[0] -> copy;
+ $_[2] ? $c -> bneg() -> badd( $_[1])
+ : $c -> bsub($_[1]); },
+
+ '*' => sub { $_[0] -> copy() -> bmul($_[1]); },
+
+ '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0])
+ : $_[0] -> copy() -> bdiv($_[1]); },
+
+
+ '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0])
+ : $_[0] -> copy() -> bmod($_[1]); },
+
+ '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0])
+ : $_[0] -> copy() -> bpow($_[1]); },
+
+ '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blsft($_[0])
+ : $_[0] -> copy() -> blsft($_[1]); },
+
+ '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> brsft($_[0])
+ : $_[0] -> copy() -> brsft($_[1]); },
+
+ # overload key: assign
+
+ '+=' => sub { $_[0]->badd($_[1]); },
+
+ '-=' => sub { $_[0]->bsub($_[1]); },
+
+ '*=' => sub { $_[0]->bmul($_[1]); },
+
+ '/=' => sub { scalar $_[0]->bdiv($_[1]); },
+
+ '%=' => sub { $_[0]->bmod($_[1]); },
+
+ '**=' => sub { $_[0]->bpow($_[1]); },
+
+
+ '<<=' => sub { $_[0]->blsft($_[1]); },
+
+ '>>=' => sub { $_[0]->brsft($_[1]); },
+
+# 'x=' => sub { },
+
+# '.=' => sub { },
+
+ # overload key: num_comparison
+
+ '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0])
+ : $_[0] -> blt($_[1]); },
+
+ '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0])
+ : $_[0] -> ble($_[1]); },
+
+ '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0])
+ : $_[0] -> bgt($_[1]); },
+
+ '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0])
+ : $_[0] -> bge($_[1]); },
+
+ '==' => sub { $_[0] -> beq($_[1]); },
+
+ '!=' => sub { $_[0] -> bne($_[1]); },
+
+ # overload key: 3way_comparison
+
+ '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]);
+ defined($cmp) && $_[2] ? -$cmp : $cmp; },
+
+ 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr()
+ : $_[0] -> bstr() cmp "$_[1]"; },
+
+ # overload key: str_comparison
+
+# 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0])
+# : $_[0] -> bstrlt($_[1]); },
+#
+# 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0])
+# : $_[0] -> bstrle($_[1]); },
+#
+# 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0])
+# : $_[0] -> bstrgt($_[1]); },
+#
+# 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0])
+# : $_[0] -> bstrge($_[1]); },
+#
+# 'eq' => sub { $_[0] -> bstreq($_[1]); },
+#
+# 'ne' => sub { $_[0] -> bstrne($_[1]); },
+
+ # overload key: binary
+
+ '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0])
+ : $_[0] -> copy() -> band($_[1]); },
+
+ '&=' => sub { $_[0] -> band($_[1]); },
+
+ '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0])
+ : $_[0] -> copy() -> bior($_[1]); },
+
+ '|=' => sub { $_[0] -> bior($_[1]); },
+
+ '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0])
+ : $_[0] -> copy() -> bxor($_[1]); },
+
+ '^=' => sub { $_[0] -> bxor($_[1]); },
+
+# '&.' => sub { },
+
+# '&.=' => sub { },
+
+# '|.' => sub { },
+
+# '|.=' => sub { },
+
+# '^.' => sub { },
+
+# '^.=' => sub { },
+
+ # overload key: unary
+
+ 'neg' => sub { $_[0] -> copy() -> bneg(); },
+
+# '!' => sub { },
+
+ '~' => sub { $_[0] -> copy() -> bnot(); },
+
+# '~.' => sub { },
+
+ # overload key: mutators
+
+ '++' => sub { $_[0] -> binc() },
+
+ '--' => sub { $_[0] -> bdec() },
+
+ # overload key: func
+
+ 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0])
+ : $_[0] -> copy() -> batan2($_[1]); },
+
+ 'cos' => sub { $_[0] -> copy() -> bcos(); },
+
+ 'sin' => sub { $_[0] -> copy() -> bsin(); },
+
+ 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); },
+
+ 'abs' => sub { $_[0] -> copy() -> babs(); },
+
+ 'log' => sub { $_[0] -> copy() -> blog(); },
+
+ 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); },
+
+ 'int' => sub { $_[0] -> copy() -> bint(); },
+
+ # overload key: conversion
+
+ 'bool' => sub { $_[0] -> is_zero() ? '' : 1; },
+
+ '""' => sub { $_[0] -> bstr(); },
+
+ '0+' => sub { $_[0] -> numify(); },
+
+ '=' => sub { $_[0]->copy(); },
+
+ ;
BEGIN {
*objectify = \&Math::BigInt::objectify; # inherit this from BigInt
*AUTOLOAD = \&Math::BigFloat::AUTOLOAD; # can't inherit AUTOLOAD
- # We inherit these from BigFloat because currently it is not possible
- # that MBF has a different $MBI variable than we, because MBF also uses
- # Math::BigInt::config->('lib'); (there is always only one library loaded)
+ # We inherit these from BigFloat because currently it is not possible that
+ # Math::BigFloat has a different $LIB variable than we, because
+ # Math::BigFloat also uses Math::BigInt::config->('lib') (there is always
+ # only one library loaded)
*_e_add = \&Math::BigFloat::_e_add;
*_e_sub = \&Math::BigFloat::_e_sub;
*as_int = \&as_number;
@@ -56,11 +215,11 @@ BEGIN {
##############################################################################
# Global constants and flags. Access these only via the accessor methods!
-$accuracy = $precision = undef;
+$accuracy = $precision = undef;
$round_mode = 'even';
-$div_scale = 40;
-$upgrade = undef;
-$downgrade = undef;
+$div_scale = 40;
+$upgrade = undef;
+$downgrade = undef;
# These are internally, and not to be used from the outside at all!
@@ -69,267 +228,298 @@ $_trap_inf = 0; # are infs ok? set w/ config()
# the package we are using for our private parts, defaults to:
# Math::BigInt->config()->{lib}
-my $MBI = 'Math::BigInt::Calc';
+
+my $LIB = 'Math::BigInt::Calc';
my $nan = 'NaN';
-my $class = 'Math::BigRat';
+#my $class = 'Math::BigRat';
sub isa {
- return 0 if $_[1] =~ /^Math::Big(Int|Float)/; # we aren't
+ return 0 if $_[1] =~ /^Math::Big(Int|Float)/; # we aren't
UNIVERSAL::isa(@_);
}
##############################################################################
-# If $x is a Math::BigRat object and $f is a Math::BigFloat object, then
-#
-# $x -> _new_from_float($f)
-#
-# converts $x into a Math::BigRat with the value of $f.
-
-sub _new_from_float
- {
- # turn a single float input into a rational number (like '0.1')
- my ($self,$f) = @_;
+sub new {
+ my $proto = shift;
+ my $protoref = ref $proto;
+ my $class = $protoref || $proto;
- return $self->bnan() if $f->is_nan();
- return $self->binf($f->{sign}) if $f->{sign} =~ /^[+-]inf$/;
+ # Check the way we are called.
- $self->{_n} = $MBI->_copy($f->{_m}); # mantissa
- $self->{_d} = $MBI->_one();
- $self->{sign} = $f->{sign} || '+';
- if ($f->{_es} eq '-')
- {
- # something like Math::BigRat->new('0.1');
- # 1 / 1 => 1/10
- $MBI->_lsft($self->{_d}, $f->{_e} ,10);
+ if ($protoref) {
+ Carp::croak("new() is a class method, not an instance method");
}
- else
- {
- # something like Math::BigRat->new('10');
- # 1 / 1 => 10/1
- $MBI->_lsft($self->{_n}, $f->{_e} ,10) unless
- $MBI->_is_zero($f->{_e});
+
+ if (@_ < 1) {
+ #Carp::carp("Using new() with no argument is deprecated;",
+ # " use bzero() or new(0) instead");
+ return $class -> bzero();
}
- return $self -> bnorm();
- }
-# If $x is a Math::BigRat object and $i is a Math::BigInt object, then
-#
-# $x -> _new_from_int($i)
-#
-# converts $x into a Math::BigRat with the value of $i.
+ if (@_ > 2) {
+ Carp::carp("Superfluous arguments to new() ignored.");
+ }
-sub _new_from_int {
- my ($self, $i) = @_;
+ # Get numerator and denominator. If any of the arguments is undefined,
+ # return zero.
- return $self -> bnan() if $i -> is_nan();
- return $self -> binf($i -> sign()) if $i -> is_inf();
+ my ($n, $d) = @_;
- $self -> {_n} = $MBI -> _copy($i -> {value});
- $self -> {_d} = $MBI -> _one();
- $self -> {sign} = $i -> {sign};
- return $self;
-}
+ if (@_ == 1 && !defined $n ||
+ @_ == 2 && (!defined $n || !defined $d))
+ {
+ #Carp::carp("Use of uninitialized value in new()");
+ return $class -> bzero();
+ }
-sub new {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+ # Initialize a new object.
- # Get numerator and denominator.
+ my $self = bless {}, $class;
- my ($n, $d) = @_;
+ # One or two input arguments may be given. First handle the numerator $n.
- # If called as a class method, initialize a new object.
+ if (ref($n)) {
+ $n = Math::BigFloat -> new($n, undef, undef)
+ unless ($n -> isa('Math::BigRat') ||
+ $n -> isa('Math::BigInt') ||
+ $n -> isa('Math::BigFloat'));
+ } else {
+ if (defined $d) {
+ # If the denominator is defined, the numerator is not a string
+ # fraction, e.g., "355/113".
+ $n = Math::BigFloat -> new($n, undef, undef);
+ } else {
+ # If the denominator is undefined, the numerator might be a string
+ # fraction, e.g., "355/113".
+ if ($n =~ m| ^ \s* (\S+) \s* / \s* (\S+) \s* $ |x) {
+ $n = Math::BigFloat -> new($1, undef, undef);
+ $d = Math::BigFloat -> new($2, undef, undef);
+ } else {
+ $n = Math::BigFloat -> new($n, undef, undef);
+ }
+ }
+ }
- $self = bless {}, $class unless $selfref;
+ # At this point $n is an object and $d is either an object or undefined. An
+ # undefined $d means that $d was not specified by the caller (not that $d
+ # was specified as an undefined value).
- # Input like $class->new($n), where there is no denominator, and where $n
- # is a Math::BigInt or Math::BigFloat.
+ unless (defined $d) {
+ #return $n -> copy($n) if $n -> isa('Math::BigRat');
+ return $class -> copy($n) if $n -> isa('Math::BigRat');
+ return $class -> bnan() if $n -> is_nan();
+ return $class -> binf($n -> sign()) if $n -> is_inf();
- if ((!defined $d) && (ref $n) && (!$n->isa('Math::BigRat'))) {
- if ($n->isa('Math::BigFloat')) {
- $self->_new_from_float($n);
+ if ($n -> isa('Math::BigInt')) {
+ $self -> {_n} = $LIB -> _new($n -> copy() -> babs() -> bstr());
+ $self -> {_d} = $LIB -> _one();
+ $self -> {sign} = $n -> sign();
+ return $self;
}
- elsif ($n->isa('Math::BigInt')) {
- # TODO: trap NaN, inf
- $self->{_n} = $MBI->_copy($n->{value}); # "mantissa" = N
- $self->{_d} = $MBI->_one(); # d => 1
- $self->{sign} = $n->{sign};
- }
- elsif ($n->isa('Math::BigInt::Lite')) {
- # TODO: trap NaN, inf
- $self->{sign} = '+';
- $self->{sign} = '-' if $$n < 0;
- $self->{_n} = $MBI->_new(abs($$n)); # "mantissa" = N
- $self->{_d} = $MBI->_one(); # d => 1
+
+ if ($n -> isa('Math::BigFloat')) {
+ my $m = $n -> mantissa() -> babs();
+ my $e = $n -> exponent();
+ $self -> {_n} = $LIB -> _new($m -> bstr());
+ $self -> {_d} = $LIB -> _one();
+
+ if ($e > 0) {
+ $self -> {_n} = $LIB -> _lsft($self -> {_n},
+ $LIB -> _new($e -> bstr()), 10);
+ } elsif ($e < 0) {
+ $self -> {_d} = $LIB -> _lsft($self -> {_d},
+ $LIB -> _new(-$e -> bstr()), 10);
+
+ my $gcd = $LIB -> _gcd($LIB -> _copy($self -> {_n}), $self -> {_d});
+ if (!$LIB -> _is_one($gcd)) {
+ $self -> {_n} = $LIB -> _div($self->{_n}, $gcd);
+ $self -> {_d} = $LIB -> _div($self->{_d}, $gcd);
+ }
+ }
+
+ $self -> {sign} = $n -> sign();
+ return $self;
}
- return $self->bnorm(); # normalize (120/100 => 6/5)
+
+ die "I don't know how to handle this"; # should never get here
}
- # Input like $class->new($n, $d) where $n and $d both are Math::BigInt
- # objects or Math::BigInt::Lite objects.
- if (ref($d) && ref($n)) {
+ # At the point we know that both $n and $d are defined. We know that $n is
+ # an object, but $d might still be a scalar. Now handle $d.
- # do N first (for $self->{sign}):
- if ($n->isa('Math::BigInt')) {
- # TODO: trap NaN, inf
- $self->{_n} = $MBI->_copy($n->{value}); # "mantissa" = N
- $self->{sign} = $n->{sign};
- }
- elsif ($n->isa('Math::BigInt::Lite')) {
- # TODO: trap NaN, inf
- $self->{sign} = '+';
- $self->{sign} = '-' if $$n < 0;
- $self->{_n} = $MBI->_new(abs($$n)); # "mantissa" = $n
- }
- else {
- Carp::croak(ref($n) . " is not a recognized object format for"
- . " Math::BigRat->new");
- }
+ $d = Math::BigFloat -> new($d, undef, undef)
+ unless ref($d) && ($d -> isa('Math::BigRat') ||
+ $d -> isa('Math::BigInt') ||
+ $d -> isa('Math::BigFloat'));
- # now D:
- if ($d->isa('Math::BigInt')) {
- # TODO: trap NaN, inf
- $self->{_d} = $MBI->_copy($d->{value}); # "mantissa" = D
- # +/+ or -/- => +, +/- or -/+ => -
- $self->{sign} = $d->{sign} ne $self->{sign} ? '-' : '+';
- } elsif ($d->isa('Math::BigInt::Lite')) {
- # TODO: trap NaN, inf
- $self->{_d} = $MBI->_new(abs($$d)); # "mantissa" = D
- my $ds = '+';
- $ds = '-' if $$d < 0;
- # +/+ or -/- => +, +/- or -/+ => -
- $self->{sign} = $ds ne $self->{sign} ? '-' : '+';
- } else {
- Carp::croak(ref($d) . " is not a recognized object format for"
- . " Math::BigRat->new");
- }
+ # At this point both $n and $d are objects.
- return $self->bnorm(); # normalize (120/100 => 6/5)
+ return $class -> bnan() if $n -> is_nan() || $d -> is_nan();
+
+ # At this point neither $n nor $d is a NaN.
+
+ if ($n -> is_zero()) {
+ return $class -> bnan() if $d -> is_zero(); # 0/0 = NaN
+ return $class -> bzero();
}
- return $n->copy() if ref $n; # already a BigRat
+ return $class -> binf($d -> sign()) if $d -> is_zero();
+
+ # At this point, neither $n nor $d is a NaN or a zero.
- if (!defined $n) {
- $self->{_n} = $MBI->_zero(); # undef => 0
- $self->{_d} = $MBI->_one();
- $self->{sign} = '+';
- return $self;
+ if ($d < 0) { # make sure denominator is positive
+ $n -> bneg();
+ $d -> bneg();
}
- # string input with / delimiter
- if ($n =~ m|\s*/\s*|) {
- return $class->bnan() if $n =~ m|/.*/|; # 1/2/3 isn't valid
- return $class->bnan() if $n =~ m|/\s*$|; # 1/ isn't valid
- ($n, $d) = split (/\//, $n);
- # try as BigFloats first
- if (($n =~ /[\.eE]/) || ($d =~ /[\.eE]/)) {
- local $Math::BigFloat::accuracy = undef;
- local $Math::BigFloat::precision = undef;
+ if ($n -> is_inf()) {
+ return $class -> bnan() if $d -> is_inf(); # Inf/Inf = NaN
+ return $class -> binf($n -> sign());
+ }
- # one of them looks like a float
- my $nf = Math::BigFloat->new($n, undef, undef);
- $self->{sign} = '+';
- return $self->bnan() if $nf->is_nan();
+ # At this point $n is finite.
- $self->{_n} = $MBI->_copy($nf->{_m}); # get mantissa
+ return $class -> bzero() if $d -> is_inf();
+ return $class -> binf($d -> sign()) if $d -> is_zero();
- # now correct $self->{_n} due to $n
- my $f = Math::BigFloat->new($d, undef, undef);
- return $self->bnan() if $f->is_nan();
- $self->{_d} = $MBI->_copy($f->{_m});
+ # At this point both $n and $d are finite and non-zero.
- # calculate the difference between nE and dE
- my $diff_e = $nf->exponent()->bsub($f->exponent);
- if ($diff_e->is_negative()) {
- # < 0: mul d with it
- $MBI->_lsft($self->{_d}, $MBI->_new($diff_e->babs()), 10);
- } elsif (!$diff_e->is_zero()) {
- # > 0: mul n with it
- $MBI->_lsft($self->{_n}, $MBI->_new($diff_e), 10);
- }
- } else {
- # both d and n look like (big)ints
-
- $self->{sign} = '+'; # no sign => '+'
- $self->{_n} = undef;
- $self->{_d} = undef;
- if ($n =~ /^([+-]?)0*([0-9]+)\z/) { # first part ok?
- $self->{sign} = $1 || '+'; # no sign => '+'
- $self->{_n} = $MBI->_new($2 || 0);
- }
+ if ($n < 0) {
+ $n -> bneg();
+ $self -> {sign} = '-';
+ } else {
+ $self -> {sign} = '+';
+ }
- if ($d =~ /^([+-]?)0*([0-9]+)\z/) { # second part ok?
- $self->{sign} =~ tr/+-/-+/ if ($1 || '') eq '-'; # negate if second part neg.
- $self->{_d} = $MBI->_new($2 || 0);
- }
+ if ($n -> isa('Math::BigRat')) {
- if (!defined $self->{_n} || !defined $self->{_d}) {
- $d = Math::BigInt->new($d, undef, undef) unless ref $d;
- $n = Math::BigInt->new($n, undef, undef) unless ref $n;
-
- if ($n->{sign} =~ /^[+-]$/ && $d->{sign} =~ /^[+-]$/) {
- # both parts are ok as integers (weird things like ' 1e0'
- $self->{_n} = $MBI->_copy($n->{value});
- $self->{_d} = $MBI->_copy($d->{value});
- $self->{sign} = $n->{sign};
- $self->{sign} =~ tr/+-/-+/ if $d->{sign} eq '-'; # -1/-2 => 1/2
- return $self->bnorm();
- }
+ if ($d -> isa('Math::BigRat')) {
- $self->{sign} = '+'; # a default sign
- return $self->bnan() if $n->is_nan() || $d->is_nan();
-
- # handle inf cases:
- if ($n->is_inf() || $d->is_inf()) {
- if ($n->is_inf()) {
- return $self->bnan() if $d->is_inf(); # both are inf => NaN
- my $s = '+'; # '+inf/+123' or '-inf/-123'
- $s = '-' if substr($n->{sign}, 0, 1) ne $d->{sign};
- # +-inf/123 => +-inf
- return $self->binf($s);
- }
- # 123/inf => 0
- return $self->bzero();
- }
- }
- }
+ # At this point both $n and $d is a Math::BigRat.
- return $self->bnorm();
- }
+ # p r p * s (p / gcd(p, r)) * (s / gcd(s, q))
+ # - / - = ----- = ---------------------------------
+ # q s q * r (q / gcd(s, q)) * (r / gcd(p, r))
- # simple string input
- if (($n =~ /[\.eE]/) && $n !~ /^0x/) {
- # looks like a float, quacks like a float, so probably is a float
- $self->{sign} = 'NaN';
- local $Math::BigFloat::accuracy = undef;
- local $Math::BigFloat::precision = undef;
- $self->_new_from_float(Math::BigFloat->new($n, undef, undef));
- } else {
- # for simple forms, use $MBI directly
- if ($n =~ /^([+-]?)0*([0-9]+)\z/) {
- $self->{sign} = $1 || '+';
- $self->{_n} = $MBI->_new($2 || 0);
- $self->{_d} = $MBI->_one();
+ my $p = $n -> {_n};
+ my $q = $n -> {_d};
+ my $r = $d -> {_n};
+ my $s = $d -> {_d};
+ my $gcd_pr = $LIB -> _gcd($LIB -> _copy($p), $r);
+ my $gcd_sq = $LIB -> _gcd($LIB -> _copy($s), $q);
+ $self -> {_n} = $LIB -> _mul($LIB -> _div($LIB -> _copy($p), $gcd_pr),
+ $LIB -> _div($LIB -> _copy($s), $gcd_sq));
+ $self -> {_d} = $LIB -> _mul($LIB -> _div($LIB -> _copy($q), $gcd_sq),
+ $LIB -> _div($LIB -> _copy($r), $gcd_pr));
+
+ return $self; # no need for $self -> bnorm() here
}
- elsif ($n =~ /^\s*([+-]?)inf(inity)?\s*\z/i) {
- my $sgn = $1 || '+';
- $self->{sign} = $sgn . 'inf'; # set a default sign for bstr()
- $self->binf($sgn);
+
+ # At this point, $n is a Math::BigRat and $d is a Math::Big(Int|Float).
+
+ my $p = $n -> {_n};
+ my $q = $n -> {_d};
+ my $m = $d -> mantissa();
+ my $e = $d -> exponent();
+
+ # / p
+ # | ------------ if e > 0
+ # | q * m * 10^e
+ # |
+ # p | p
+ # - / (m * 10^e) = | ----- if e == 0
+ # q | q * m
+ # |
+ # | p * 10^-e
+ # | -------- if e < 0
+ # \ q * m
+
+ $self -> {_n} = $LIB -> _copy($p);
+ $self -> {_d} = $LIB -> _mul($LIB -> _copy($q), $m);
+ if ($e > 0) {
+ $self -> {_d} = $LIB -> _lsft($self -> {_d}, $e, 10);
+ } elsif ($e < 0) {
+ $self -> {_n} = $LIB -> _lsft($self -> {_n}, -$e, 10);
}
- else {
- my $n = Math::BigInt->new($n, undef, undef);
- $self->{_n} = $MBI->_copy($n->{value});
- $self->{_d} = $MBI->_one();
- $self->{sign} = $n->{sign};
- return $self->bnan() if $self->{sign} eq 'NaN';
+ return $self -> bnorm();
+
+ } else {
+
+ if ($d -> isa('Math::BigRat')) {
+
+ # At this point $n is a Math::Big(Int|Float) and $d is a
+ # Math::BigRat.
+
+ my $m = $n -> mantissa();
+ my $e = $n -> exponent();
+ my $p = $d -> {_n};
+ my $q = $d -> {_d};
+
+ # / q * m * 10^e
+ # | ------------ if e > 0
+ # | p
+ # |
+ # p | m * q
+ # (m * 10^e) / - = | ----- if e == 0
+ # q | p
+ # |
+ # | q * m
+ # | --------- if e < 0
+ # \ p * 10^-e
+
+ $self -> {_n} = $LIB -> _mul($LIB -> _copy($q), $m);
+ $self -> {_d} = $LIB -> _copy($p);
+ if ($e > 0) {
+ $self -> {_n} = $LIB -> _lsft($self -> {_n}, $e, 10);
+ } elsif ($e < 0) {
+ $self -> {_d} = $LIB -> _lsft($self -> {_d}, -$e, 10);
+ }
+ return $self -> bnorm();
+
+ } else {
+
+ # At this point $n and $d are both a Math::Big(Int|Float)
+
+ my $m1 = $n -> mantissa();
+ my $e1 = $n -> exponent();
+ my $m2 = $d -> mantissa();
+ my $e2 = $d -> exponent();
+
+ # /
+ # | m1 * 10^(e1 - e2)
+ # | ----------------- if e1 > e2
+ # | m2
+ # |
+ # m1 * 10^e1 | m1
+ # ---------- = | -- if e1 = e2
+ # m2 * 10^e2 | m2
+ # |
+ # | m1
+ # | ----------------- if e1 < e2
+ # | m2 * 10^(e2 - e1)
+ # \
+
+ $self -> {_n} = $LIB -> _new($m1 -> bstr());
+ $self -> {_d} = $LIB -> _new($m2 -> bstr());
+ my $ediff = $e1 - $e2;
+ if ($ediff > 0) {
+ $self -> {_n} = $LIB -> _lsft($self -> {_n},
+ $LIB -> _new($ediff -> bstr()),
+ 10);
+ } elsif ($ediff < 0) {
+ $self -> {_d} = $LIB -> _lsft($self -> {_d},
+ $LIB -> _new(-$ediff -> bstr()),
+ 10);
+ }
+
+ return $self -> bnorm();
}
}
- $self->bnorm();
+ return $self;
}
sub copy {
@@ -344,318 +534,392 @@ sub copy {
my $copy = bless {}, $class;
$copy->{sign} = $self->{sign};
- $copy->{_d} = $MBI->_copy($self->{_d});
- $copy->{_n} = $MBI->_copy($self->{_n});
+ $copy->{_d} = $LIB->_copy($self->{_d});
+ $copy->{_n} = $LIB->_copy($self->{_n});
$copy->{_a} = $self->{_a} if defined $self->{_a};
$copy->{_p} = $self->{_p} if defined $self->{_p};
- $copy;
+ #($copy, $copy->{_a}, $copy->{_p})
+ # = $copy->_find_round_parameters(@_);
+
+ return $copy;
+}
+
+sub bnan {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self = bless {}, $class unless $selfref;
+
+ if ($_trap_nan) {
+ Carp::croak ("Tried to set a variable to NaN in $class->bnan()");
+ }
+
+ $self -> {sign} = $nan;
+ $self -> {_n} = $LIB -> _zero();
+ $self -> {_d} = $LIB -> _one();
+
+ ($self, $self->{_a}, $self->{_p})
+ = $self->_find_round_parameters(@_);
+
+ return $self;
+}
+
+sub binf {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self = bless {}, $class unless $selfref;
+
+ my $sign = shift();
+ $sign = defined($sign) && substr($sign, 0, 1) eq '-' ? '-inf' : '+inf';
+
+ if ($_trap_inf) {
+ Carp::croak ("Tried to set a variable to +-inf in $class->binf()");
+ }
+
+ $self -> {sign} = $sign;
+ $self -> {_n} = $LIB -> _zero();
+ $self -> {_d} = $LIB -> _one();
+
+ ($self, $self->{_a}, $self->{_p})
+ = $self->_find_round_parameters(@_);
+
+ return $self;
+}
+
+sub bone {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self = bless {}, $class unless $selfref;
+
+ my $sign = shift();
+ $sign = '+' unless defined($sign) && $sign eq '-';
+
+ $self -> {sign} = $sign;
+ $self -> {_n} = $LIB -> _one();
+ $self -> {_d} = $LIB -> _one();
+
+ ($self, $self->{_a}, $self->{_p})
+ = $self->_find_round_parameters(@_);
+
+ return $self;
+}
+
+sub bzero {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self = bless {}, $class unless $selfref;
+
+ $self -> {sign} = '+';
+ $self -> {_n} = $LIB -> _zero();
+ $self -> {_d} = $LIB -> _one();
+
+ ($self, $self->{_a}, $self->{_p})
+ = $self->_find_round_parameters(@_);
+
+ return $self;
}
##############################################################################
-sub config
- {
- # return (later set?) configuration data as hash ref
- my $class = shift || 'Math::BigRat';
+sub config {
+ # return (later set?) configuration data as hash ref
+ my $class = shift() || 'Math::BigRat';
- if (@_ == 1 && ref($_[0]) ne 'HASH')
- {
- my $cfg = $class->SUPER::config();
- return $cfg->{$_[0]};
+ if (@_ == 1 && ref($_[0]) ne 'HASH') {
+ my $cfg = $class->SUPER::config();
+ return $cfg->{$_[0]};
}
- my $cfg = $class->SUPER::config(@_);
+ my $cfg = $class->SUPER::config(@_);
+
+ # now we need only to override the ones that are different from our parent
+ $cfg->{class} = $class;
+ $cfg->{with} = $LIB;
- # now we need only to override the ones that are different from our parent
- $cfg->{class} = $class;
- $cfg->{with} = $MBI;
- $cfg;
- }
+ $cfg;
+}
##############################################################################
-sub bstr
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- if ($x->{sign} !~ /^[+-]$/) # inf, NaN etc
- {
- my $s = $x->{sign}; $s =~ s/^\+//; # +inf => inf
- return $s;
+ if ($x->{sign} !~ /^[+-]$/) { # inf, NaN etc
+ my $s = $x->{sign};
+ $s =~ s/^\+//; # +inf => inf
+ return $s;
}
- my $s = ''; $s = $x->{sign} if $x->{sign} ne '+'; # '+3/2' => '3/2'
+ my $s = '';
+ $s = $x->{sign} if $x->{sign} ne '+'; # '+3/2' => '3/2'
- return $s . $MBI->_str($x->{_n}) if $MBI->_is_one($x->{_d});
- $s . $MBI->_str($x->{_n}) . '/' . $MBI->_str($x->{_d});
- }
+ return $s . $LIB->_str($x->{_n}) if $LIB->_is_one($x->{_d});
+ $s . $LIB->_str($x->{_n}) . '/' . $LIB->_str($x->{_d});
+}
-sub bsstr
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bsstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- if ($x->{sign} !~ /^[+-]$/) # inf, NaN etc
- {
- my $s = $x->{sign}; $s =~ s/^\+//; # +inf => inf
- return $s;
+ if ($x->{sign} !~ /^[+-]$/) { # inf, NaN etc
+ my $s = $x->{sign};
+ $s =~ s/^\+//; # +inf => inf
+ return $s;
}
- my $s = ''; $s = $x->{sign} if $x->{sign} ne '+'; # +3 vs 3
- $s . $MBI->_str($x->{_n}) . '/' . $MBI->_str($x->{_d});
- }
+ my $s = '';
+ $s = $x->{sign} if $x->{sign} ne '+'; # +3 vs 3
+ $s . $LIB->_str($x->{_n}) . '/' . $LIB->_str($x->{_d});
+}
-sub bnorm
- {
- # reduce the number to the shortest form
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bnorm {
+ # reduce the number to the shortest form
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- # Both parts must be objects of whatever we are using today.
- if (my $c = $MBI->_check($x->{_n}))
- {
+ # Both parts must be objects of whatever we are using today.
+ if (my $c = $LIB->_check($x->{_n})) {
Carp::croak("n did not pass the self-check ($c) in bnorm()");
}
- if (my $c = $MBI->_check($x->{_d}))
- {
+ if (my $c = $LIB->_check($x->{_d})) {
Carp::croak("d did not pass the self-check ($c) in bnorm()");
}
- # no normalize for NaN, inf etc.
- return $x if $x->{sign} !~ /^[+-]$/;
+ # no normalize for NaN, inf etc.
+ return $x if $x->{sign} !~ /^[+-]$/;
- # normalize zeros to 0/1
- if ($MBI->_is_zero($x->{_n}))
- {
- $x->{sign} = '+'; # never leave a -0
- $x->{_d} = $MBI->_one() unless $MBI->_is_one($x->{_d});
- return $x;
+ # normalize zeros to 0/1
+ if ($LIB->_is_zero($x->{_n})) {
+ $x->{sign} = '+'; # never leave a -0
+ $x->{_d} = $LIB->_one() unless $LIB->_is_one($x->{_d});
+ return $x;
}
- return $x if $MBI->_is_one($x->{_d}); # no need to reduce
+ return $x if $LIB->_is_one($x->{_d}); # no need to reduce
- # reduce other numbers
- my $gcd = $MBI->_copy($x->{_n});
- $gcd = $MBI->_gcd($gcd,$x->{_d});
-
- if (!$MBI->_is_one($gcd))
- {
- $x->{_n} = $MBI->_div($x->{_n},$gcd);
- $x->{_d} = $MBI->_div($x->{_d},$gcd);
+ # Compute the GCD.
+ my $gcd = $LIB->_gcd($LIB->_copy($x->{_n}), $x->{_d});
+ if (!$LIB->_is_one($gcd)) {
+ $x->{_n} = $LIB->_div($x->{_n}, $gcd);
+ $x->{_d} = $LIB->_div($x->{_d}, $gcd);
}
- $x;
- }
+
+ $x;
+}
##############################################################################
# sign manipulation
-sub bneg
- {
- # (BRAT or num_str) return BRAT
- # negate number or make a negated number from string
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bneg {
+ # (BRAT or num_str) return BRAT
+ # negate number or make a negated number from string
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $x if $x->modify('bneg');
+ return $x if $x->modify('bneg');
- # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
- $x->{sign} =~ tr/+-/-+/
- unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_n}));
- $x;
- }
+ # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
+ $x->{sign} =~ tr/+-/-+/
+ unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{_n}));
+ $x;
+}
##############################################################################
# special values
-sub _bnan
- {
- # used by parent class bnan() to initialize number to NaN
- my $self = shift;
+sub _bnan {
+ # used by parent class bnan() to initialize number to NaN
+ my $self = shift;
- if ($_trap_nan)
- {
- my $class = ref($self);
- # "$self" below will stringify the object, this blows up if $self is a
- # partial object (happens under trap_nan), so fix it beforehand
- $self->{_d} = $MBI->_zero() unless defined $self->{_d};
- $self->{_n} = $MBI->_zero() unless defined $self->{_n};
- Carp::croak ("Tried to set $self to NaN in $class\::_bnan()");
- }
- $self->{_n} = $MBI->_zero();
- $self->{_d} = $MBI->_zero();
- }
-
-sub _binf
- {
- # used by parent class bone() to initialize number to +inf/-inf
- my $self = shift;
-
- if ($_trap_inf)
- {
- my $class = ref($self);
- # "$self" below will stringify the object, this blows up if $self is a
- # partial object (happens under trap_nan), so fix it beforehand
- $self->{_d} = $MBI->_zero() unless defined $self->{_d};
- $self->{_n} = $MBI->_zero() unless defined $self->{_n};
- Carp::croak ("Tried to set $self to inf in $class\::_binf()");
- }
- $self->{_n} = $MBI->_zero();
- $self->{_d} = $MBI->_zero();
- }
-
-sub _bone
- {
- # used by parent class bone() to initialize number to +1/-1
- my $self = shift;
- $self->{_n} = $MBI->_one();
- $self->{_d} = $MBI->_one();
- }
-
-sub _bzero
- {
- # used by parent class bzero() to initialize number to 0
- my $self = shift;
- $self->{_n} = $MBI->_zero();
- $self->{_d} = $MBI->_one();
- }
+ if ($_trap_nan) {
+ my $class = ref($self);
+ # "$self" below will stringify the object, this blows up if $self is a
+ # partial object (happens under trap_nan), so fix it beforehand
+ $self->{_d} = $LIB->_zero() unless defined $self->{_d};
+ $self->{_n} = $LIB->_zero() unless defined $self->{_n};
+ Carp::croak ("Tried to set $self to NaN in $class\::_bnan()");
+ }
+ $self->{_n} = $LIB->_zero();
+ $self->{_d} = $LIB->_zero();
+}
+
+sub _binf {
+ # used by parent class bone() to initialize number to +inf/-inf
+ my $self = shift;
+
+ if ($_trap_inf) {
+ my $class = ref($self);
+ # "$self" below will stringify the object, this blows up if $self is a
+ # partial object (happens under trap_nan), so fix it beforehand
+ $self->{_d} = $LIB->_zero() unless defined $self->{_d};
+ $self->{_n} = $LIB->_zero() unless defined $self->{_n};
+ Carp::croak ("Tried to set $self to inf in $class\::_binf()");
+ }
+ $self->{_n} = $LIB->_zero();
+ $self->{_d} = $LIB->_zero();
+}
+
+sub _bone {
+ # used by parent class bone() to initialize number to +1/-1
+ my $self = shift;
+ $self->{_n} = $LIB->_one();
+ $self->{_d} = $LIB->_one();
+}
+
+sub _bzero {
+ # used by parent class bzero() to initialize number to 0
+ my $self = shift;
+ $self->{_n} = $LIB->_zero();
+ $self->{_d} = $LIB->_one();
+}
##############################################################################
# mul/add/div etc
-sub badd
- {
- # add two rational numbers
+sub badd {
+ # add two rational numbers
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # +inf + +inf => +inf, -inf + -inf => -inf
- return $x->binf(substr($x->{sign},0,1))
- if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
+ # +inf + +inf => +inf, -inf + -inf => -inf
+ return $x->binf(substr($x->{sign}, 0, 1))
+ if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
- # +inf + -inf or -inf + +inf => NaN
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ # +inf + -inf or -inf + +inf => NaN
+ return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- # 1 1 gcd(3,4) = 1 1*3 + 1*4 7
- # - + - = --------- = --
- # 4 3 4*3 12
+ # 1 1 gcd(3, 4) = 1 1*3 + 1*4 7
+ # - + - = --------- = --
+ # 4 3 4*3 12
- # we do not compute the gcd() here, but simple do:
- # 5 7 5*3 + 7*4 43
- # - + - = --------- = --
- # 4 3 4*3 12
+ # we do not compute the gcd() here, but simple do:
+ # 5 7 5*3 + 7*4 43
+ # - + - = --------- = --
+ # 4 3 4*3 12
- # and bnorm() will then take care of the rest
+ # and bnorm() will then take care of the rest
- # 5 * 3
- $x->{_n} = $MBI->_mul($x->{_n}, $y->{_d});
+ # 5 * 3
+ $x->{_n} = $LIB->_mul($x->{_n}, $y->{_d});
- # 7 * 4
- my $m = $MBI->_mul($MBI->_copy($y->{_n}), $x->{_d});
+ # 7 * 4
+ my $m = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d});
- # 5 * 3 + 7 * 4
- ($x->{_n}, $x->{sign}) = _e_add($x->{_n}, $m, $x->{sign}, $y->{sign});
+ # 5 * 3 + 7 * 4
+ ($x->{_n}, $x->{sign}) = _e_add($x->{_n}, $m, $x->{sign}, $y->{sign});
- # 4 * 3
- $x->{_d} = $MBI->_mul($x->{_d}, $y->{_d});
+ # 4 * 3
+ $x->{_d} = $LIB->_mul($x->{_d}, $y->{_d});
- # normalize result, and possible round
- $x->bnorm()->round(@r);
- }
+ # normalize result, and possible round
+ $x->bnorm()->round(@r);
+}
-sub bsub
- {
- # subtract two rational numbers
+sub bsub {
+ # subtract two rational numbers
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
- }
-
- # flip sign of $x, call badd(), then flip sign of result
- $x->{sign} =~ tr/+-/-+/
- unless $x->{sign} eq '+' && $MBI->_is_zero($x->{_n}); # not -0
- $x->badd($y,@r); # does norm and round
- $x->{sign} =~ tr/+-/-+/
- unless $x->{sign} eq '+' && $MBI->_is_zero($x->{_n}); # not -0
- $x;
- }
-
-sub bmul
- {
- # multiply two rational numbers
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x->bnan() if ($x->{sign} eq 'NaN' || $y->{sign} eq 'NaN');
+ # flip sign of $x, call badd(), then flip sign of result
+ $x->{sign} =~ tr/+-/-+/
+ unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); # not -0
+ $x->badd($y, @r); # does norm and round
+ $x->{sign} =~ tr/+-/-+/
+ unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); # not -0
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ $x;
+}
+
+sub bmul {
+ # multiply two rational numbers
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x->bnan() if $x->{sign} eq 'NaN' || $y->{sign} eq 'NaN';
+
+ # inf handling
+ if ($x->{sign} =~ /^[+-]inf$/ || $y->{sign} =~ /^[+-]inf$/) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
}
- # x== 0 # also: or y == 1 or y == -1
- return wantarray ? ($x,$self->bzero()) : $x if $x->is_zero();
+ # x == 0 # also: or y == 1 or y == -1
+ return wantarray ? ($x, $class->bzero()) : $x if $x -> is_zero();
- # XXX TODO:
- # According to Knuth, this can be optimized by doing gcd twice (for d and n)
- # and reducing in one step. This would save us the bnorm() at the end.
+ if ($y -> is_zero()) {
+ $x -> bzero();
+ return wantarray ? ($x, $class->bzero()) : $x;
+ }
- # 1 2 1 * 2 2 1
- # - * - = ----- = - = -
- # 4 3 4 * 3 12 6
+ # According to Knuth, this can be optimized by doing gcd twice (for d
+ # and n) and reducing in one step. This saves us a bnorm() at the end.
+ #
+ # p s p * s (p / gcd(p, r)) * (s / gcd(s, q))
+ # - * - = ----- = ---------------------------------
+ # q r q * r (q / gcd(s, q)) * (r / gcd(p, r))
- $x->{_n} = $MBI->_mul($x->{_n}, $y->{_n});
- $x->{_d} = $MBI->_mul($x->{_d}, $y->{_d});
+ my $gcd_pr = $LIB -> _gcd($LIB -> _copy($x->{_n}), $y->{_d});
+ my $gcd_sq = $LIB -> _gcd($LIB -> _copy($y->{_n}), $x->{_d});
- # compute new sign
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
+ $x->{_n} = $LIB -> _mul(scalar $LIB -> _div($x->{_n}, $gcd_pr),
+ scalar $LIB -> _div($LIB -> _copy($y->{_n}),
+ $gcd_sq));
+ $x->{_d} = $LIB -> _mul(scalar $LIB -> _div($x->{_d}, $gcd_sq),
+ scalar $LIB -> _div($LIB -> _copy($y->{_d}),
+ $gcd_pr));
- $x->bnorm()->round(@r);
- }
+ # compute new sign
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
-sub bdiv
- {
- # (dividend: BRAT or num_str, divisor: BRAT or num_str) return
- # (BRAT,BRAT) (quo,rem) or BRAT (only rem)
+ $x->round(@r);
+}
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+sub bdiv {
+ # (dividend: BRAT or num_str, divisor: BRAT or num_str) return
+ # (BRAT, BRAT) (quo, rem) or BRAT (only rem)
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bdiv');
+ return $x if $x->modify('bdiv');
- my $wantarray = wantarray; # call only once
+ my $wantarray = wantarray; # call only once
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bdiv(). See the comments in the code implementing that
# method.
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $self -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
}
# Divide by zero and modulo zero. This is handled the same way as in
@@ -681,7 +945,7 @@ sub bdiv
if ($x -> is_inf()) {
my ($quo, $rem);
- $rem = $self -> bnan() if $wantarray;
+ $rem = $class -> bnan() if $wantarray;
if ($y -> is_inf()) {
$quo = $x -> bnan();
} else {
@@ -691,78 +955,76 @@ sub bdiv
return $wantarray ? ($quo, $rem) : $quo;
}
- # Denominator (divisor) is +/-inf. This is handled the same way as in
- # Math::BigFloat -> bdiv(). See the comments in the code implementing that
- # method.
-
- if ($y -> is_inf()) {
- my ($quo, $rem);
- if ($wantarray) {
- if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
- $rem = $x -> copy();
- $quo = $x -> bzero();
- } else {
- $rem = $self -> binf($y -> {sign});
- $quo = $x -> bone('-');
- }
- return ($quo, $rem);
- } else {
- if ($y -> is_inf()) {
- if ($x -> is_nan() || $x -> is_inf()) {
- return $x -> bnan();
- } else {
- return $x -> bzero();
- }
- }
- }
- }
-
- # At this point, both the numerator and denominator are finite numbers, and
- # the denominator (divisor) is non-zero.
-
- # x == 0?
- return wantarray ? ($x,$self->bzero()) : $x if $x->is_zero();
-
- # XXX TODO: list context, upgrade
- # According to Knuth, this can be optimized by doing gcd twice (for d and n)
- # and reducing in one step. This would save us the bnorm() at the end.
-
- # 1 1 1 3
- # - / - == - * -
- # 4 3 4 1
-
- $x->{_n} = $MBI->_mul($x->{_n}, $y->{_d});
- $x->{_d} = $MBI->_mul($x->{_d}, $y->{_n});
-
- # compute new sign
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
-
- $x -> bnorm();
- if (wantarray) {
- my $rem = $x -> copy();
- $x -> bfloor();
- $x -> round(@r);
- $rem -> bsub($x -> copy()) -> bmul($y);
- return $x, $rem;
- } else {
- $x -> round(@r);
- return $x;
- }
- }
-
-sub bmod
- {
- # compute "remainder" (in Perl way) of $x / $y
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # Denominator (divisor) is +/-inf. This is handled the same way as in
+ # Math::BigFloat -> bdiv(). See the comments in the code implementing that
+ # method.
+
+ if ($y -> is_inf()) {
+ my ($quo, $rem);
+ if ($wantarray) {
+ if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
+ $rem = $x -> copy();
+ $quo = $x -> bzero();
+ } else {
+ $rem = $class -> binf($y -> {sign});
+ $quo = $x -> bone('-');
+ }
+ return ($quo, $rem);
+ } else {
+ if ($y -> is_inf()) {
+ if ($x -> is_nan() || $x -> is_inf()) {
+ return $x -> bnan();
+ } else {
+ return $x -> bzero();
+ }
+ }
+ }
}
- return $x if $x->modify('bmod');
+ # At this point, both the numerator and denominator are finite numbers, and
+ # the denominator (divisor) is non-zero.
+
+ # x == 0?
+ return wantarray ? ($x, $class->bzero()) : $x if $x->is_zero();
+
+ # XXX TODO: list context, upgrade
+ # According to Knuth, this can be optimized by doing gcd twice (for d and n)
+ # and reducing in one step. This would save us the bnorm() at the end.
+ #
+ # p r p * s (p / gcd(p, r)) * (s / gcd(s, q))
+ # - / - = ----- = ---------------------------------
+ # q s q * r (q / gcd(s, q)) * (r / gcd(p, r))
+
+ $x->{_n} = $LIB->_mul($x->{_n}, $y->{_d});
+ $x->{_d} = $LIB->_mul($x->{_d}, $y->{_n});
+
+ # compute new sign
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
+
+ $x -> bnorm();
+ if (wantarray) {
+ my $rem = $x -> copy();
+ $x -> bfloor();
+ $x -> round(@r);
+ $rem -> bsub($x -> copy()) -> bmul($y);
+ return $x, $rem;
+ } else {
+ $x -> round(@r);
+ return $x;
+ }
+}
+
+sub bmod {
+ # compute "remainder" (in Perl way) of $x / $y
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x->modify('bmod');
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bmod().
@@ -795,938 +1057,1035 @@ sub bmod
}
}
- # At this point, both the numerator and denominator are finite numbers, and
- # the denominator (divisor) is non-zero.
+ # At this point, both the numerator and denominator are finite numbers, and
+ # the denominator (divisor) is non-zero.
- return $x if $x->is_zero(); # 0 / 7 = 0, mod 0
+ return $x if $x->is_zero(); # 0 / 7 = 0, mod 0
- # Compute $x - $y * floor($x/$y). This can probably be optimized by working
- # on a lower level.
+ # Compute $x - $y * floor($x/$y). This can probably be optimized by working
+ # on a lower level.
- $x -> bsub($x -> copy() -> bdiv($y) -> bfloor() -> bmul($y));
- return $x -> round(@r);
- }
+ $x -> bsub($x -> copy() -> bdiv($y) -> bfloor() -> bmul($y));
+ return $x -> round(@r);
+}
##############################################################################
# bdec/binc
-sub bdec
- {
- # decrement value (subtract 1)
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+sub bdec {
+ # decrement value (subtract 1)
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
+ return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
- if ($x->{sign} eq '-')
- {
- $x->{_n} = $MBI->_add($x->{_n}, $x->{_d}); # -5/2 => -7/2
+ if ($x->{sign} eq '-') {
+ $x->{_n} = $LIB->_add($x->{_n}, $x->{_d}); # -5/2 => -7/2
+ } else {
+ if ($LIB->_acmp($x->{_n}, $x->{_d}) < 0) # n < d?
+ {
+ # 1/3 -- => -2/3
+ $x->{_n} = $LIB->_sub($LIB->_copy($x->{_d}), $x->{_n});
+ $x->{sign} = '-';
+ } else {
+ $x->{_n} = $LIB->_sub($x->{_n}, $x->{_d}); # 5/2 => 3/2
+ }
}
- else
- {
- if ($MBI->_acmp($x->{_n},$x->{_d}) < 0) # n < d?
- {
- # 1/3 -- => -2/3
- $x->{_n} = $MBI->_sub($MBI->_copy($x->{_d}), $x->{_n});
- $x->{sign} = '-';
- }
- else
- {
- $x->{_n} = $MBI->_sub($x->{_n}, $x->{_d}); # 5/2 => 3/2
- }
- }
- $x->bnorm()->round(@r);
- }
-
-sub binc
- {
- # increment value (add 1)
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
-
- return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
-
- if ($x->{sign} eq '-')
- {
- if ($MBI->_acmp($x->{_n},$x->{_d}) < 0)
- {
- # -1/3 ++ => 2/3 (overflow at 0)
- $x->{_n} = $MBI->_sub($MBI->_copy($x->{_d}), $x->{_n});
- $x->{sign} = '+';
- }
- else
- {
- $x->{_n} = $MBI->_sub($x->{_n}, $x->{_d}); # -5/2 => -3/2
- }
- }
- else
- {
- $x->{_n} = $MBI->_add($x->{_n},$x->{_d}); # 5/2 => 7/2
+ $x->bnorm()->round(@r);
+}
+
+sub binc {
+ # increment value (add 1)
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
+
+ if ($x->{sign} eq '-') {
+ if ($LIB->_acmp($x->{_n}, $x->{_d}) < 0) {
+ # -1/3 ++ => 2/3 (overflow at 0)
+ $x->{_n} = $LIB->_sub($LIB->_copy($x->{_d}), $x->{_n});
+ $x->{sign} = '+';
+ } else {
+ $x->{_n} = $LIB->_sub($x->{_n}, $x->{_d}); # -5/2 => -3/2
+ }
+ } else {
+ $x->{_n} = $LIB->_add($x->{_n}, $x->{_d}); # 5/2 => 7/2
}
- $x->bnorm()->round(@r);
- }
+ $x->bnorm()->round(@r);
+}
##############################################################################
# is_foo methods (the rest is inherited)
-sub is_int
- {
- # return true if arg (BRAT or num_str) is an integer
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 1 if ($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
- $MBI->_is_one($x->{_d}); # x/y && y != 1 => no integer
- 0;
- }
-
-sub is_zero
- {
- # return true if arg (BRAT or num_str) is zero
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 1 if $x->{sign} eq '+' && $MBI->_is_zero($x->{_n});
- 0;
- }
-
-sub is_one
- {
- # return true if arg (BRAT or num_str) is +1 or -1 if signis given
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- my $sign = $_[2] || ''; $sign = '+' if $sign ne '-';
- return 1
- if ($x->{sign} eq $sign && $MBI->_is_one($x->{_n}) && $MBI->_is_one($x->{_d}));
- 0;
- }
-
-sub is_odd
- {
- # return true if arg (BFLOAT or num_str) is odd or false if even
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 1 if ($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
- ($MBI->_is_one($x->{_d}) && $MBI->_is_odd($x->{_n})); # x/2 is not, but 3/1
- 0;
- }
-
-sub is_even
- {
- # return true if arg (BINT or num_str) is even or false if odd
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
- return 1 if ($MBI->_is_one($x->{_d}) # x/3 is never
- && $MBI->_is_even($x->{_n})); # but 4/1 is
- 0;
- }
+sub is_int {
+ # return true if arg (BRAT or num_str) is an integer
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return 1 if ($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
+ $LIB->_is_one($x->{_d}); # x/y && y != 1 => no integer
+ 0;
+}
+
+sub is_zero {
+ # return true if arg (BRAT or num_str) is zero
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return 1 if $x->{sign} eq '+' && $LIB->_is_zero($x->{_n});
+ 0;
+}
+
+sub is_one {
+ # return true if arg (BRAT or num_str) is +1 or -1 if signis given
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ my $sign = $_[2] || ''; $sign = '+' if $sign ne '-';
+ return 1
+ if ($x->{sign} eq $sign && $LIB->_is_one($x->{_n}) && $LIB->_is_one($x->{_d}));
+ 0;
+}
+
+sub is_odd {
+ # return true if arg (BFLOAT or num_str) is odd or false if even
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return 1 if ($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
+ ($LIB->_is_one($x->{_d}) && $LIB->_is_odd($x->{_n})); # x/2 is not, but 3/1
+ 0;
+}
+
+sub is_even {
+ # return true if arg (BINT or num_str) is even or false if odd
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
+ return 1 if ($LIB->_is_one($x->{_d}) # x/3 is never
+ && $LIB->_is_even($x->{_n})); # but 4/1 is
+ 0;
+}
##############################################################################
# parts() and friends
-sub numerator
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub numerator {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- # NaN, inf, -inf
- return Math::BigInt->new($x->{sign}) if ($x->{sign} !~ /^[+-]$/);
+ # NaN, inf, -inf
+ return Math::BigInt->new($x->{sign}) if ($x->{sign} !~ /^[+-]$/);
- my $n = Math::BigInt->new($MBI->_str($x->{_n})); $n->{sign} = $x->{sign};
- $n;
- }
+ my $n = Math::BigInt->new($LIB->_str($x->{_n}));
+ $n->{sign} = $x->{sign};
+ $n;
+}
-sub denominator
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub denominator {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- # NaN
- return Math::BigInt->new($x->{sign}) if $x->{sign} eq 'NaN';
- # inf, -inf
- return Math::BigInt->bone() if $x->{sign} !~ /^[+-]$/;
+ # NaN
+ return Math::BigInt->new($x->{sign}) if $x->{sign} eq 'NaN';
+ # inf, -inf
+ return Math::BigInt->bone() if $x->{sign} !~ /^[+-]$/;
- Math::BigInt->new($MBI->_str($x->{_d}));
- }
+ Math::BigInt->new($LIB->_str($x->{_d}));
+}
-sub parts
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub parts {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my $c = 'Math::BigInt';
+ my $c = 'Math::BigInt';
- return ($c->bnan(),$c->bnan()) if $x->{sign} eq 'NaN';
- return ($c->binf(),$c->binf()) if $x->{sign} eq '+inf';
- return ($c->binf('-'),$c->binf()) if $x->{sign} eq '-inf';
+ return ($c->bnan(), $c->bnan()) if $x->{sign} eq 'NaN';
+ return ($c->binf(), $c->binf()) if $x->{sign} eq '+inf';
+ return ($c->binf('-'), $c->binf()) if $x->{sign} eq '-inf';
- my $n = $c->new($MBI->_str($x->{_n}));
- $n->{sign} = $x->{sign};
- my $d = $c->new($MBI->_str($x->{_d}));
- ($n,$d);
- }
+ my $n = $c->new($LIB->_str($x->{_n}));
+ $n->{sign} = $x->{sign};
+ my $d = $c->new($LIB->_str($x->{_d}));
+ ($n, $d);
+}
-sub length
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub length {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $nan unless $x->is_int();
- $MBI->_len($x->{_n}); # length(-123/1) => length(123)
- }
+ return $nan unless $x->is_int();
+ $LIB->_len($x->{_n}); # length(-123/1) => length(123)
+}
-sub digit
- {
- my ($self,$x,$n) = ref($_[0]) ? (undef,$_[0],$_[1]) : objectify(1,@_);
+sub digit {
+ my ($class, $x, $n) = ref($_[0]) ? (undef, $_[0], $_[1]) : objectify(1, @_);
- return $nan unless $x->is_int();
- $MBI->_digit($x->{_n},$n || 0); # digit(-123/1,2) => digit(123,2)
- }
+ return $nan unless $x->is_int();
+ $LIB->_digit($x->{_n}, $n || 0); # digit(-123/1, 2) => digit(123, 2)
+}
##############################################################################
# special calc routines
-sub bceil
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
-
- return $x if $x->{sign} !~ /^[+-]$/ || # not for NaN, inf
- $MBI->_is_one($x->{_d}); # 22/1 => 22, 0/1 => 0
-
- $x->{_n} = $MBI->_div($x->{_n},$x->{_d}); # 22/7 => 3/1 w/ truncate
- $x->{_d} = $MBI->_one(); # d => 1
- $x->{_n} = $MBI->_inc($x->{_n})
- if $x->{sign} eq '+'; # +22/7 => 4/1
- $x->{sign} = '+' if $MBI->_is_zero($x->{_n}); # -0 => 0
- $x;
- }
-
-sub bfloor
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
-
- return $x if $x->{sign} !~ /^[+-]$/ || # not for NaN, inf
- $MBI->_is_one($x->{_d}); # 22/1 => 22, 0/1 => 0
-
- $x->{_n} = $MBI->_div($x->{_n},$x->{_d}); # 22/7 => 3/1 w/ truncate
- $x->{_d} = $MBI->_one(); # d => 1
- $x->{_n} = $MBI->_inc($x->{_n})
- if $x->{sign} eq '-'; # -22/7 => -4/1
- $x;
- }
-
-sub bfac
- {
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
-
- # if $x is not an integer
- if (($x->{sign} ne '+') || (!$MBI->_is_one($x->{_d})))
- {
- return $x->bnan();
+sub bceil {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x if ($x->{sign} !~ /^[+-]$/ || # not for NaN, inf
+ $LIB->_is_one($x->{_d})); # 22/1 => 22, 0/1 => 0
+
+ $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
+ $x->{_d} = $LIB->_one(); # d => 1
+ $x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '+'; # +22/7 => 4/1
+ $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_zero($x->{_n}); # -0 => 0
+ $x;
+}
+
+sub bfloor {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x if ($x->{sign} !~ /^[+-]$/ || # not for NaN, inf
+ $LIB->_is_one($x->{_d})); # 22/1 => 22, 0/1 => 0
+
+ $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
+ $x->{_d} = $LIB->_one(); # d => 1
+ $x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '-'; # -22/7 => -4/1
+ $x;
+}
+
+sub bint {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x if ($x->{sign} !~ /^[+-]$/ || # +/-inf or NaN
+ $LIB -> _is_one($x->{_d})); # already an integer
+
+ $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
+ $x->{_d} = $LIB->_one(); # d => 1
+ $x->{sign} = '+' if $x->{sign} eq '-' && $LIB -> _is_zero($x->{_n});
+ return $x;
+}
+
+sub bfac {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ # if $x is not an integer
+ if (($x->{sign} ne '+') || (!$LIB->_is_one($x->{_d}))) {
+ return $x->bnan();
}
- $x->{_n} = $MBI->_fac($x->{_n});
- # since _d is 1, we don't need to reduce/norm the result
- $x->round(@r);
- }
+ $x->{_n} = $LIB->_fac($x->{_n});
+ # since _d is 1, we don't need to reduce/norm the result
+ $x->round(@r);
+}
-sub bpow
- {
- # power ($x ** $y)
+sub bpow {
+ # power ($x ** $y)
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->{sign} =~ /^[+-]inf$/; # -inf/+inf ** x
- return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
- return $x->bone(@r) if $y->is_zero();
- return $x->round(@r) if $x->is_one() || $y->is_one();
+ return $x if $x->{sign} =~ /^[+-]inf$/; # -inf/+inf ** x
+ return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+ return $x->bone(@r) if $y->is_zero();
+ return $x->round(@r) if $x->is_one() || $y->is_one();
- if ($x->{sign} eq '-' && $MBI->_is_one($x->{_n}) && $MBI->_is_one($x->{_d}))
- {
- # if $x == -1 and odd/even y => +1/-1
- return $y->is_odd() ? $x->round(@r) : $x->babs()->round(@r);
- # my Casio FX-5500L has a bug here: -1 ** 2 is -1, but -1 * -1 is 1;
+ if ($x->{sign} eq '-' && $LIB->_is_one($x->{_n}) && $LIB->_is_one($x->{_d})) {
+ # if $x == -1 and odd/even y => +1/-1
+ return $y->is_odd() ? $x->round(@r) : $x->babs()->round(@r);
+ # my Casio FX-5500L has a bug here: -1 ** 2 is -1, but -1 * -1 is 1;
}
- # 1 ** -y => 1 / (1 ** |y|)
- # so do test for negative $y after above's clause
+ # 1 ** -y => 1 / (1 ** |y|)
+ # so do test for negative $y after above's clause
- return $x->round(@r) if $x->is_zero(); # 0**y => 0 (if not y <= 0)
+ return $x->round(@r) if $x->is_zero(); # 0**y => 0 (if not y <= 0)
- # shortcut if y == 1/N (is then sqrt() respective broot())
- if ($MBI->_is_one($y->{_n}))
- {
- return $x->bsqrt(@r) if $MBI->_is_two($y->{_d}); # 1/2 => sqrt
- return $x->broot($MBI->_str($y->{_d}),@r); # 1/N => root(N)
+ # shortcut if y == 1/N (is then sqrt() respective broot())
+ if ($LIB->_is_one($y->{_n})) {
+ return $x->bsqrt(@r) if $LIB->_is_two($y->{_d}); # 1/2 => sqrt
+ return $x->broot($LIB->_str($y->{_d}), @r); # 1/N => root(N)
}
- # shortcut y/1 (and/or x/1)
- if ($MBI->_is_one($y->{_d}))
- {
- # shortcut for x/1 and y/1
- if ($MBI->_is_one($x->{_d}))
- {
- $x->{_n} = $MBI->_pow($x->{_n},$y->{_n}); # x/1 ** y/1 => (x ** y)/1
- if ($y->{sign} eq '-')
- {
- # 0.2 ** -3 => 1/(0.2 ** 3)
- ($x->{_n},$x->{_d}) = ($x->{_d},$x->{_n}); # swap
+ # shortcut y/1 (and/or x/1)
+ if ($LIB->_is_one($y->{_d})) {
+ # shortcut for x/1 and y/1
+ if ($LIB->_is_one($x->{_d})) {
+ $x->{_n} = $LIB->_pow($x->{_n}, $y->{_n}); # x/1 ** y/1 => (x ** y)/1
+ if ($y->{sign} eq '-') {
+ # 0.2 ** -3 => 1/(0.2 ** 3)
+ ($x->{_n}, $x->{_d}) = ($x->{_d}, $x->{_n}); # swap
+ }
+ # correct sign; + ** + => +
+ if ($x->{sign} eq '-') {
+ # - * - => +, - * - * - => -
+ $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_even($y->{_n});
+ }
+ return $x->round(@r);
}
- # correct sign; + ** + => +
- if ($x->{sign} eq '-')
- {
- # - * - => +, - * - * - => -
- $x->{sign} = '+' if $MBI->_is_even($y->{_n});
+
+ # x/z ** y/1
+ $x->{_n} = $LIB->_pow($x->{_n}, $y->{_n}); # 5/2 ** y/1 => 5 ** y / 2 ** y
+ $x->{_d} = $LIB->_pow($x->{_d}, $y->{_n});
+ if ($y->{sign} eq '-') {
+ # 0.2 ** -3 => 1/(0.2 ** 3)
+ ($x->{_n}, $x->{_d}) = ($x->{_d}, $x->{_n}); # swap
}
- return $x->round(@r);
- }
- # x/z ** y/1
- $x->{_n} = $MBI->_pow($x->{_n},$y->{_n}); # 5/2 ** y/1 => 5 ** y / 2 ** y
- $x->{_d} = $MBI->_pow($x->{_d},$y->{_n});
- if ($y->{sign} eq '-')
- {
- # 0.2 ** -3 => 1/(0.2 ** 3)
- ($x->{_n},$x->{_d}) = ($x->{_d},$x->{_n}); # swap
- }
- # correct sign; + ** + => +
- if ($x->{sign} eq '-')
- {
- # - * - => +, - * - * - => -
- $x->{sign} = '+' if $MBI->_is_even($y->{_n});
- }
- return $x->round(@r);
- }
-
-# print STDERR "# $x $y\n";
-
- # otherwise:
-
- # n/d n ______________
- # a/b = -\/ (a/b) ** d
-
- # (a/b) ** n == (a ** n) / (b ** n)
- $MBI->_pow($x->{_n}, $y->{_n});
- $MBI->_pow($x->{_d}, $y->{_n});
-
- return $x->broot($MBI->_str($y->{_d}),@r); # n/d => root(n)
- }
-
-sub blog
- {
- # Return the logarithm of the operand. If a second operand is defined, that
- # value is used as the base, otherwise the base is assumed to be Euler's
- # constant.
-
- # Don't objectify the base, since an undefined base, as in $x->blog() or
- # $x->blog(undef) signals that the base is Euler's number.
-
- # set up parameters
- my ($self,$x,$base,@r) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$base,@r) = objectify(1,$class,@_);
- }
-
- return $x if $x->modify('blog');
-
- # Handle all exception cases and all trivial cases. I have used Wolfram Alpha
- # (http://www.wolframalpha.com) as the reference for these cases.
-
- return $x -> bnan() if $x -> is_nan();
-
- if (defined $base) {
- $base = $self -> new($base) unless ref $base;
- if ($base -> is_nan() || $base -> is_one()) {
- return $x -> bnan();
- } elsif ($base -> is_inf() || $base -> is_zero()) {
- return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
- return $x -> bzero();
- } elsif ($base -> is_negative()) { # -inf < base < 0
- return $x -> bzero() if $x -> is_one(); # x = 1
- return $x -> bone() if $x == $base; # x = base
- return $x -> bnan(); # otherwise
- }
- return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
- }
-
- # We now know that the base is either undefined or positive and finite.
-
- if ($x -> is_inf()) { # x = +/-inf
- my $sign = defined $base && $base < 1 ? '-' : '+';
- return $x -> binf($sign);
- } elsif ($x -> is_neg()) { # -inf < x < 0
- return $x -> bnan();
- } elsif ($x -> is_one()) { # x = 1
- return $x -> bzero();
- } elsif ($x -> is_zero()) { # x = 0
- my $sign = defined $base && $base < 1 ? '+' : '-';
- return $x -> binf($sign);
- }
-
- # At this point we are done handling all exception cases and trivial cases.
-
- # Do it with Math::BigFloats and convert back to Math::BigRat.
- $base = $base -> _as_float() if defined $base;
- $x -> _new_from_float($x -> _as_float() -> blog($base, @r));
- }
-
-sub bexp
- {
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,$class,@_);
+ # correct sign; + ** + => +
+
+ $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_even($y->{_n});
+ return $x->round(@r);
}
- return $x->binf(@r) if $x->{sign} eq '+inf';
- return $x->bzero(@r) if $x->{sign} eq '-inf';
+ # print STDERR "# $x $y\n";
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters(@r);
+ # otherwise:
- # also takes care of the "error in _find_round_parameters?" case
- return $x if $x->{sign} eq 'NaN';
+ # n/d n ______________
+ # a/b = -\/ (a/b) ** d
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # P = undef
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it's not enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ # (a/b) ** n == (a ** n) / (b ** n)
+ $LIB->_pow($x->{_n}, $y->{_n});
+ $LIB->_pow($x->{_d}, $y->{_n});
+
+ return $x->broot($LIB->_str($y->{_d}), @r); # n/d => root(n)
+}
+
+sub blog {
+ # Return the logarithm of the operand. If a second operand is defined, that
+ # value is used as the base, otherwise the base is assumed to be Euler's
+ # constant.
+
+ my ($class, $x, $base, @r);
+
+ # Don't objectify the base, since an undefined base, as in $x->blog() or
+ # $x->blog(undef) signals that the base is Euler's number.
+
+ if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+ # E.g., Math::BigFloat->blog(256, 2)
+ ($class, $x, $base, @r) =
+ defined $_[2] ? objectify(2, @_) : objectify(1, @_);
+ } else {
+ # E.g., Math::BigFloat::blog(256, 2) or $x->blog(2)
+ ($class, $x, $base, @r) =
+ defined $_[1] ? objectify(2, @_) : objectify(1, @_);
}
- return $x->bone(@params) if $x->is_zero();
+ return $x if $x->modify('blog');
- # See the comments in Math::BigFloat on how this algorithm works.
- # Basically we calculate A and B (where B is faculty(N)) so that A/B = e
+ # Handle all exception cases and all trivial cases. I have used Wolfram Alpha
+ # (http://www.wolframalpha.com) as the reference for these cases.
- my $x_org = $x->copy();
- if ($scale <= 75)
- {
- # set $x directly from a cached string form
- $x->{_n} =
- $MBI->_new("90933395208605785401971970164779391644753259799242");
- $x->{_d} =
- $MBI->_new("33452526613163807108170062053440751665152000000000");
- $x->{sign} = '+';
- }
- else
- {
- # compute A and B so that e = A / B.
-
- # After some terms we end up with this, so we use it as a starting point:
- my $A = $MBI->_new("90933395208605785401971970164779391644753259799242");
- my $F = $MBI->_new(42); my $step = 42;
-
- # Compute how many steps we need to take to get $A and $B sufficiently big
- my $steps = Math::BigFloat::_len_to_steps($scale - 4);
-# print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
- while ($step++ <= $steps)
- {
- # calculate $a * $f + 1
- $A = $MBI->_mul($A, $F);
- $A = $MBI->_inc($A);
- # increment f
- $F = $MBI->_inc($F);
- }
- # compute $B as factorial of $steps (this is faster than doing it manually)
- my $B = $MBI->_fac($MBI->_new($steps));
-
-# print "A ", $MBI->_str($A), "\nB ", $MBI->_str($B), "\n";
-
- $x->{_n} = $A;
- $x->{_d} = $B;
- $x->{sign} = '+';
- }
-
- # $x contains now an estimate of e, with some surplus digits, so we can round
- if (!$x_org->is_one())
- {
- # raise $x to the wanted power and round it in one step:
- $x->bpow($x_org, @params);
+ return $x -> bnan() if $x -> is_nan();
+
+ if (defined $base) {
+ $base = $class -> new($base) unless ref $base;
+ if ($base -> is_nan() || $base -> is_one()) {
+ return $x -> bnan();
+ } elsif ($base -> is_inf() || $base -> is_zero()) {
+ return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
+ return $x -> bzero();
+ } elsif ($base -> is_negative()) { # -inf < base < 0
+ return $x -> bzero() if $x -> is_one(); # x = 1
+ return $x -> bone() if $x == $base; # x = base
+ return $x -> bnan(); # otherwise
+ }
+ return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
}
- else
- {
- # else just round the already computed result
- delete $x->{_a}; delete $x->{_p};
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+
+ # We now know that the base is either undefined or positive and finite.
+
+ if ($x -> is_inf()) { # x = +/-inf
+ my $sign = defined $base && $base < 1 ? '-' : '+';
+ return $x -> binf($sign);
+ } elsif ($x -> is_neg()) { # -inf < x < 0
+ return $x -> bnan();
+ } elsif ($x -> is_one()) { # x = 1
+ return $x -> bzero();
+ } elsif ($x -> is_zero()) { # x = 0
+ my $sign = defined $base && $base < 1 ? '+' : '-';
+ return $x -> binf($sign);
}
- $x;
- }
+ # At this point we are done handling all exception cases and trivial cases.
-sub bnok
- {
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ $base = Math::BigFloat -> new($base) if defined $base;
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,$class,@_);
+ my $xn = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+
+ my $xtmp = Math::BigRat -> new($xn -> bdiv($xd) -> blog($base, @r) -> bsstr());
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x;
+}
+
+sub bexp {
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(1, @_);
}
- # do it with floats
- $x->_new_from_float($x->_as_float()->bnok(Math::BigFloat->new("$y"),@r));
- }
+ return $x->binf(@r) if $x->{sign} eq '+inf';
+ return $x->bzero(@r) if $x->{sign} eq '-inf';
-sub _float_from_part
- {
- my $x = shift;
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters(@r);
- my $f = Math::BigFloat->bzero();
- $f->{_m} = $MBI->_copy($x);
- $f->{_e} = $MBI->_zero();
+ # also takes care of the "error in _find_round_parameters?" case
+ return $x if $x->{sign} eq 'NaN';
- $f;
- }
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # P = undef
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it's not enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
-sub _as_float
- {
- my $x = shift;
+ return $x->bone(@params) if $x->is_zero();
- local $Math::BigFloat::upgrade = undef;
- local $Math::BigFloat::accuracy = undef;
- local $Math::BigFloat::precision = undef;
- # 22/7 => 3.142857143..
+ # See the comments in Math::BigFloat on how this algorithm works.
+ # Basically we calculate A and B (where B is faculty(N)) so that A/B = e
- my $a = $x->accuracy() || 0;
- if ($a != 0 || !$MBI->_is_one($x->{_d}))
- {
- # n/d
- return scalar Math::BigFloat->new($x->{sign} . $MBI->_str($x->{_n}))->bdiv($MBI->_str($x->{_d}), $x->accuracy());
- }
- # just n
- Math::BigFloat->new($x->{sign} . $MBI->_str($x->{_n}));
- }
-
-sub broot
- {
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ my $x_org = $x->copy();
+ if ($scale <= 75) {
+ # set $x directly from a cached string form
+ $x->{_n} =
+ $LIB->_new("90933395208605785401971970164779391644753259799242");
+ $x->{_d} =
+ $LIB->_new("33452526613163807108170062053440751665152000000000");
+ $x->{sign} = '+';
+ } else {
+ # compute A and B so that e = A / B.
+
+ # After some terms we end up with this, so we use it as a starting point:
+ my $A = $LIB->_new("90933395208605785401971970164779391644753259799242");
+ my $F = $LIB->_new(42); my $step = 42;
+
+ # Compute how many steps we need to take to get $A and $B sufficiently big
+ my $steps = Math::BigFloat::_len_to_steps($scale - 4);
+ # print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
+ while ($step++ <= $steps) {
+ # calculate $a * $f + 1
+ $A = $LIB->_mul($A, $F);
+ $A = $LIB->_inc($A);
+ # increment f
+ $F = $LIB->_inc($F);
+ }
+ # compute $B as factorial of $steps (this is faster than doing it manually)
+ my $B = $LIB->_fac($LIB->_new($steps));
+
+ # print "A ", $LIB->_str($A), "\nB ", $LIB->_str($B), "\n";
+
+ $x->{_n} = $A;
+ $x->{_d} = $B;
+ $x->{sign} = '+';
}
- if ($x->is_int() && $y->is_int())
- {
- return $self->new($x->as_number()->broot($y->as_number(),@r));
+ # $x contains now an estimate of e, with some surplus digits, so we can round
+ if (!$x_org->is_one()) {
+ # raise $x to the wanted power and round it in one step:
+ $x->bpow($x_org, @params);
+ } else {
+ # else just round the already computed result
+ delete $x->{_a}; delete $x->{_p};
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a}; delete $x->{_p};
}
- # do it with floats
- $x->_new_from_float($x->_as_float()->broot($y->_as_float(),@r))->bnorm()->bround(@r);
- }
+ $x;
+}
-sub bmodpow
- {
- # set up parameters
- my ($self,$x,$y,$m,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$m,@r) = objectify(3,@_);
+sub bnok {
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # $x or $y or $m are NaN or +-inf => NaN
- return $x->bnan()
- if $x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/ ||
- $m->{sign} !~ /^[+-]$/;
+ my $xint = Math::BigInt -> new($x -> bint() -> bsstr());
+ my $yint = Math::BigInt -> new($y -> bint() -> bsstr());
+ $xint -> bnok($yint);
- if ($x->is_int() && $y->is_int() && $m->is_int())
- {
- return $self->new($x->as_number()->bmodpow($y->as_number(),$m,@r));
- }
+ $x -> {sign} = $xint -> {sign};
+ $x -> {_n} = $xint -> {_n};
+ $x -> {_d} = $xint -> {_d};
- warn ("bmodpow() not fully implemented");
- $x->bnan();
- }
+ return $x;
+}
-sub bmodinv
- {
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+sub broot {
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # $x or $y are NaN or +-inf => NaN
- return $x->bnan()
- if $x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/;
+ # Convert $x into a Math::BigFloat.
- if ($x->is_int() && $y->is_int())
- {
- return $self->new($x->as_number()->bmodinv($y->as_number(),@r));
- }
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+ my $xflt = Math::BigFloat -> new($LIB -> _str($x->{_n})) -> bdiv($xd);
+ $xflt -> {sign} = $x -> {sign};
- warn ("bmodinv() not fully implemented");
- $x->bnan();
- }
+ # Convert $y into a Math::BigFloat.
-sub bsqrt
- {
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ my $yd = Math::BigFloat -> new($LIB -> _str($y->{_d}));
+ my $yflt = Math::BigFloat -> new($LIB -> _str($y->{_n})) -> bdiv($yd);
+ $yflt -> {sign} = $y -> {sign};
- return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0
- return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
- return $x->round(@r) if $x->is_zero() || $x->is_one();
+ # Compute the root and convert back to a Math::BigRat.
- local $Math::BigFloat::upgrade = undef;
- local $Math::BigFloat::downgrade = undef;
- local $Math::BigFloat::precision = undef;
- local $Math::BigFloat::accuracy = undef;
- local $Math::BigInt::upgrade = undef;
- local $Math::BigInt::precision = undef;
- local $Math::BigInt::accuracy = undef;
+ $xflt -> broot($yflt, @r);
+ my $xtmp = Math::BigRat -> new($xflt -> bsstr());
- $x->{_n} = _float_from_part($x->{_n})->bsqrt();
- $x->{_d} = _float_from_part($x->{_d})->bsqrt();
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
- # XXX TODO: we probably can optimize this:
+ return $x;
+}
- # if sqrt(D) was not integer
- if ($x->{_d}->{_es} ne '+')
- {
- $x->{_n}->blsft($x->{_d}->exponent()->babs(),10); # 7.1/4.51 => 7.1/45.1
- $x->{_d} = $MBI->_copy($x->{_d}->{_m}); # 7.1/45.1 => 71/45.1
+sub bmodpow {
+ # set up parameters
+ my ($class, $x, $y, $m, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $m, @r) = objectify(3, @_);
}
- # if sqrt(N) was not integer
- if ($x->{_n}->{_es} ne '+')
- {
- $x->{_d}->blsft($x->{_n}->exponent()->babs(),10); # 71/45.1 => 710/45.1
- $x->{_n} = $MBI->_copy($x->{_n}->{_m}); # 710/45.1 => 710/451
+
+ # Convert $x, $y, and $m into Math::BigInt objects.
+
+ my $xint = Math::BigInt -> new($x -> copy() -> bint());
+ my $yint = Math::BigInt -> new($y -> copy() -> bint());
+ my $mint = Math::BigInt -> new($m -> copy() -> bint());
+
+ $xint -> bmodpow($y, $m, @r);
+ my $xtmp = Math::BigRat -> new($xint -> bsstr());
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+ return $x;
+}
+
+sub bmodinv {
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # convert parts to $MBI again
- $x->{_n} = $MBI->_lsft($MBI->_copy($x->{_n}->{_m}), $x->{_n}->{_e}, 10)
- if ref($x->{_n}) ne $MBI && ref($x->{_n}) ne 'ARRAY';
- $x->{_d} = $MBI->_lsft($MBI->_copy($x->{_d}->{_m}), $x->{_d}->{_e}, 10)
- if ref($x->{_d}) ne $MBI && ref($x->{_d}) ne 'ARRAY';
+ # Convert $x and $y into Math::BigInt objects.
+
+ my $xint = Math::BigInt -> new($x -> copy() -> bint());
+ my $yint = Math::BigInt -> new($y -> copy() -> bint());
+
+ $xint -> bmodinv($y, @r);
+ my $xtmp = Math::BigRat -> new($xint -> bsstr());
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+ return $x;
+}
+
+sub bsqrt {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0
+ return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
+ return $x->round(@r) if $x->is_zero() || $x->is_one();
+
+ local $Math::BigFloat::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
+ local $Math::BigFloat::precision = undef;
+ local $Math::BigFloat::accuracy = undef;
+ local $Math::BigInt::upgrade = undef;
+ local $Math::BigInt::precision = undef;
+ local $Math::BigInt::accuracy = undef;
+
+ my $xn = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
- $x->bnorm()->round(@r);
- }
+ my $xtmp = Math::BigRat -> new($xn -> bdiv($xd) -> bsqrt() -> bsstr());
-sub blsft
- {
- my ($self,$x,$y,$b,@r) = objectify(3,@_);
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
- $b = 2 unless defined $b;
- $b = $self->new($b) unless ref ($b);
- $x->bmul($b->copy()->bpow($y), @r);
- $x;
- }
+ $x->round(@r);
+}
+
+sub blsft {
+ my ($class, $x, $y, $b, @r) = objectify(2, @_);
+
+ $b = 2 if !defined $b;
+ $b = $class -> new($b) unless ref($b) && $b -> isa($class);
+
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+
+ # shift by a negative amount?
+ return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
+
+ $x -> bmul($b -> bpow($y));
+}
+
+sub brsft {
+ my ($class, $x, $y, $b, @r) = objectify(2, @_);
+
+ $b = 2 if !defined $b;
+ $b = $class -> new($b) unless ref($b) && $b -> isa($class);
+
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
-sub brsft
- {
- my ($self,$x,$y,$b,@r) = objectify(3,@_);
+ # shift by a negative amount?
+ return $x -> blsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
- $b = 2 unless defined $b;
- $b = $self->new($b) unless ref ($b);
- $x->bdiv($b->copy()->bpow($y), @r);
- $x;
- }
+ # the following call to bdiv() will return either quotient (scalar context)
+ # or quotient and remainder (list context).
+ $x -> bdiv($b -> bpow($y));
+}
+
+sub band {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'band() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for band()' if @_ < 1;
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> band($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigRat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x -> round(@r);
+}
+
+sub bior {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bior() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for bior()' if @_ < 1;
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bior($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigRat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x -> round(@r);
+}
+
+sub bxor {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bxor() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for bxor()' if @_ < 1;
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bxor($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigRat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x -> round(@r);
+}
+
+sub bnot {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bnot() is an instance method, not a class method' unless $xref;
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bnot();
+ $xtmp = $class -> new($xtmp); # back to Math::BigRat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x -> round(@r);
+}
##############################################################################
# round
-sub round
- {
- $_[0];
- }
+sub round {
+ $_[0];
+}
-sub bround
- {
- $_[0];
- }
+sub bround {
+ $_[0];
+}
-sub bfround
- {
- $_[0];
- }
+sub bfround {
+ $_[0];
+}
##############################################################################
# comparing
-sub bcmp
- {
- # compare two signed numbers
+sub bcmp {
+ # compare two signed numbers
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y) = objectify(2, @_);
}
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
- return +1 if $x->{sign} eq '+inf';
- return -1 if $x->{sign} eq '-inf';
- return -1 if $y->{sign} eq '+inf';
- return +1;
- }
- # check sign for speed first
- return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y
- return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0
-
- # shortcut
- my $xz = $MBI->_is_zero($x->{_n});
- my $yz = $MBI->_is_zero($y->{_n});
- return 0 if $xz && $yz; # 0 <=> 0
- return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y
- return 1 if $yz && $x->{sign} eq '+'; # +x <=> 0
-
- my $t = $MBI->_mul($MBI->_copy($x->{_n}), $y->{_d});
- my $u = $MBI->_mul($MBI->_copy($y->{_n}), $x->{_d});
-
- my $cmp = $MBI->_acmp($t,$u); # signs are equal
- $cmp = -$cmp if $x->{sign} eq '-'; # both are '-' => reverse
- $cmp;
- }
-
-sub bacmp
- {
- # compare two numbers (as unsigned)
-
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,$class,@_);
+ if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
+ # $x is NaN and/or $y is NaN
+ return undef if $x->{sign} eq $nan || $y->{sign} eq $nan;
+ # $x and $y are both either +inf or -inf
+ return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
+ # $x = +inf and $y < +inf
+ return +1 if $x->{sign} eq '+inf';
+ # $x = -inf and $y > -inf
+ return -1 if $x->{sign} eq '-inf';
+ # $x < +inf and $y = +inf
+ return -1 if $y->{sign} eq '+inf';
+ # $x > -inf and $y = -inf
+ return +1;
}
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
- return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
- return -1;
+ # $x >= 0 and $y < 0
+ return 1 if $x->{sign} eq '+' && $y->{sign} eq '-';
+ # $x < 0 and $y >= 0
+ return -1 if $x->{sign} eq '-' && $y->{sign} eq '+';
+
+ # At this point, we know that $x and $y have the same sign.
+
+ # shortcut
+ my $xz = $LIB->_is_zero($x->{_n});
+ my $yz = $LIB->_is_zero($y->{_n});
+ return 0 if $xz && $yz; # 0 <=> 0
+ return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y
+ return 1 if $yz && $x->{sign} eq '+'; # +x <=> 0
+
+ my $t = $LIB->_mul($LIB->_copy($x->{_n}), $y->{_d});
+ my $u = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d});
+
+ my $cmp = $LIB->_acmp($t, $u); # signs are equal
+ $cmp = -$cmp if $x->{sign} eq '-'; # both are '-' => reverse
+ $cmp;
+}
+
+sub bacmp {
+ # compare two numbers (as unsigned)
+
+ # set up parameters
+ my ($class, $x, $y) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y) = objectify(2, @_);
+ }
+
+ if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
+ # handle +-inf and NaN
+ return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
+ return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
+ return -1;
}
- my $t = $MBI->_mul($MBI->_copy($x->{_n}), $y->{_d});
- my $u = $MBI->_mul($MBI->_copy($y->{_n}), $x->{_d});
- $MBI->_acmp($t,$u); # ignore signs
- }
+ my $t = $LIB->_mul($LIB->_copy($x->{_n}), $y->{_d});
+ my $u = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d});
+ $LIB->_acmp($t, $u); # ignore signs
+}
+
+sub beq {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'beq() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for beq()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && ! $cmp;
+}
+
+sub bne {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'bne() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for bne()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && ! $cmp ? '' : 1;
+}
+
+sub blt {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'blt() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for blt()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp < 0;
+}
+
+sub ble {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'ble() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for ble()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp <= 0;
+}
+
+sub bgt {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'bgt() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for bgt()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp > 0;
+}
+
+sub bge {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'bge() is an instance method, not a class method'
+ unless $selfref;
+ Carp::croak 'Wrong number of arguments for bge()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp >= 0;
+}
##############################################################################
-# output conversation
+# output conversion
-sub numify
- {
- # convert 17/8 => float (aka 2.125)
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub numify {
+ # convert 17/8 => float (aka 2.125)
+ my ($self, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, NaN, etc
+ # Non-finite number.
- # N/1 => N
- my $neg = ''; $neg = '-' if $x->{sign} eq '-';
- return $neg . $MBI->_num($x->{_n}) if $MBI->_is_one($x->{_d});
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/;
- $x->_as_float()->numify() + 0.0;
- }
+ # Finite number.
-sub as_number
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my $abs = $LIB->_is_one($x->{_d})
+ ? $LIB->_num($x->{_n})
+ : Math::BigFloat -> new($LIB->_str($x->{_n}))
+ -> bdiv($LIB->_str($x->{_d}))
+ -> bstr();
+ return $x->{sign} eq '-' ? 0 - $abs : 0 + $abs;
+}
- # NaN, inf etc
- return Math::BigInt->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
+sub as_number {
+ my ($self, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- my $u = Math::BigInt->bzero();
- $u->{value} = $MBI->_div($MBI->_copy($x->{_n}), $x->{_d}); # 22/7 => 3
- $u->bneg if $x->{sign} eq '-'; # no negative zero
- $u;
- }
+ # NaN, inf etc
+ return Math::BigInt->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
-sub as_float
- {
- # return N/D as Math::BigFloat
+ my $u = Math::BigInt->bzero();
+ $u->{value} = $LIB->_div($LIB->_copy($x->{_n}), $x->{_d}); # 22/7 => 3
+ $u->bneg if $x->{sign} eq '-'; # no negative zero
+ $u;
+}
- # set up parameters
- my ($self,$x,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- ($self,$x,@r) = objectify(1,$class,@_) unless ref $_[0];
+sub as_float {
+ # return N/D as Math::BigFloat
- # NaN, inf etc
- return Math::BigFloat->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
+ # set up parameters
+ my ($class, $x, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ ($class, $x, @r) = objectify(1, @_) unless ref $_[0];
- my $u = Math::BigFloat->bzero();
- $u->{sign} = $x->{sign};
- # n
- $u->{_m} = $MBI->_copy($x->{_n});
- $u->{_e} = $MBI->_zero();
- $u->bdiv($MBI->_str($x->{_d}), @r);
- # return $u
- $u;
- }
+ # NaN, inf etc
+ return Math::BigFloat->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
-sub as_bin
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+ my $xflt = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+ $xflt -> {sign} = $x -> {sign};
+ $xflt -> bdiv($xd, @r);
- return $x unless $x->is_int();
+ return $xflt;
+}
- my $s = $x->{sign}; $s = '' if $s eq '+';
- $s . $MBI->_as_bin($x->{_n});
- }
+sub as_bin {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub as_hex
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x unless $x->is_int();
- return $x unless $x->is_int();
+ my $s = $x->{sign};
+ $s = '' if $s eq '+';
+ $s . $LIB->_as_bin($x->{_n});
+}
- my $s = $x->{sign}; $s = '' if $s eq '+';
- $s . $MBI->_as_hex($x->{_n});
- }
+sub as_hex {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub as_oct
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x unless $x->is_int();
- return $x unless $x->is_int();
+ my $s = $x->{sign}; $s = '' if $s eq '+';
+ $s . $LIB->_as_hex($x->{_n});
+}
- my $s = $x->{sign}; $s = '' if $s eq '+';
- $s . $MBI->_as_oct($x->{_n});
- }
+sub as_oct {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return $x unless $x->is_int();
+
+ my $s = $x->{sign}; $s = '' if $s eq '+';
+ $s . $LIB->_as_oct($x->{_n});
+}
##############################################################################
-sub from_hex
- {
- my $class = shift;
+sub from_hex {
+ my $class = shift;
- $class->new(@_);
- }
+ $class->new(@_);
+}
-sub from_bin
- {
- my $class = shift;
+sub from_bin {
+ my $class = shift;
- $class->new(@_);
- }
+ $class->new(@_);
+}
-sub from_oct
- {
- my $class = shift;
+sub from_oct {
+ my $class = shift;
- my @parts;
- for my $c (@_)
- {
- push @parts, Math::BigInt->from_oct($c);
+ my @parts;
+ for my $c (@_) {
+ push @parts, Math::BigInt->from_oct($c);
}
- $class->new (@parts);
- }
+ $class->new (@parts);
+}
##############################################################################
# import
-sub import
- {
- my $self = shift;
- my $l = scalar @_;
- my $lib = ''; my @a;
- my $try = 'try';
+sub import {
+ my $class = shift;
+ my $l = scalar @_;
+ my $lib = ''; my @a;
+ my $try = 'try';
- for (my $i = 0; $i < $l ; $i++)
- {
- if ($_[$i] eq ':constant')
- {
- # this rest causes overlord er load to step in
- overload::constant float => sub { $self->new(shift); };
- }
-# elsif ($_[$i] eq 'upgrade')
-# {
-# # this causes upgrading
-# $upgrade = $_[$i+1]; # or undef to disable
-# $i++;
-# }
- elsif ($_[$i] eq 'downgrade')
- {
- # this causes downgrading
- $downgrade = $_[$i+1]; # or undef to disable
- $i++;
- }
- elsif ($_[$i] =~ /^(lib|try|only)\z/)
- {
- $lib = $_[$i+1] || ''; # default Calc
- $try = $1; # lib, try or only
- $i++;
- }
- elsif ($_[$i] eq 'with')
- {
- # this argument is no longer used
- #$MBI = $_[$i+1] || 'Math::BigInt::Calc'; # default Math::BigInt::Calc
- $i++;
- }
- else
- {
- push @a, $_[$i];
- }
- }
- require Math::BigInt;
-
- # let use Math::BigInt lib => 'GMP'; use Math::BigRat; still have GMP
- if ($lib ne '')
- {
- my @c = split /\s*,\s*/, $lib;
- foreach (@c)
- {
- $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
- }
- $lib = join(",", @c);
+ for (my $i = 0; $i < $l ; $i++) {
+ if ($_[$i] eq ':constant') {
+ # this rest causes overlord er load to step in
+ overload::constant float => sub { $class->new(shift); };
+ }
+ # elsif ($_[$i] eq 'upgrade')
+ # {
+ # # this causes upgrading
+ # $upgrade = $_[$i+1]; # or undef to disable
+ # $i++;
+ # }
+ elsif ($_[$i] eq 'downgrade') {
+ # this causes downgrading
+ $downgrade = $_[$i+1]; # or undef to disable
+ $i++;
+ } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
+ $lib = $_[$i+1] || ''; # default Calc
+ $try = $1; # lib, try or only
+ $i++;
+ } elsif ($_[$i] eq 'with') {
+ # this argument is no longer used
+ #$LIB = $_[$i+1] || 'Math::BigInt::Calc'; # default Math::BigInt::Calc
+ $i++;
+ } else {
+ push @a, $_[$i];
+ }
}
- my @import = ('objectify');
- push @import, $try => $lib if $lib ne '';
+ require Math::BigInt;
- # MBI already loaded, so feed it our lib arguments
- Math::BigInt->import(@import);
+ # let use Math::BigInt lib => 'GMP'; use Math::BigRat; still have GMP
+ if ($lib ne '') {
+ my @c = split /\s*,\s*/, $lib;
+ foreach (@c) {
+ $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
+ }
+ $lib = join(",", @c);
+ }
+ my @import = ('objectify');
+ push @import, $try => $lib if $lib ne '';
- $MBI = Math::BigFloat->config()->{lib};
+ # LIB already loaded, so feed it our lib arguments
+ Math::BigInt->import(@import);
- # register us with MBI to get notified of future lib changes
- Math::BigInt::_register_callback($self, sub { $MBI = $_[0]; });
+ $LIB = Math::BigFloat->config()->{lib};
- # any non :constant stuff is handled by our parent, Exporter (loaded
- # by Math::BigFloat, even if @_ is empty, to give it a chance
- $self->SUPER::import(@a); # for subclasses
- $self->export_to_level(1,$self,@a); # need this, too
- }
+ # register us with LIB to get notified of future lib changes
+ Math::BigInt::_register_callback($class, sub { $LIB = $_[0]; });
+
+ # any non :constant stuff is handled by our parent, Exporter (loaded
+ # by Math::BigFloat, even if @_ is empty, to give it a chance
+ $class->SUPER::import(@a); # for subclasses
+ $class->export_to_level(1, $class, @a); # need this, too
+}
1;
@@ -1740,17 +2099,17 @@ Math::BigRat - Arbitrary big rational numbers
=head1 SYNOPSIS
- use Math::BigRat;
+ use Math::BigRat;
- my $x = Math::BigRat->new('3/7'); $x += '5/9';
+ my $x = Math::BigRat->new('3/7'); $x += '5/9';
- print $x->bstr(),"\n";
- print $x ** 2,"\n";
+ print $x->bstr(), "\n";
+ print $x ** 2, "\n";
- my $y = Math::BigRat->new('inf');
- print "$y ", ($y->is_inf ? 'is' : 'is not') , " infinity\n";
+ my $y = Math::BigRat->new('inf');
+ print "$y ", ($y->is_inf ? 'is' : 'is not'), " infinity\n";
- my $z = Math::BigRat->new(144); $z->bsqrt();
+ my $z = Math::BigRat->new(144); $z->bsqrt();
=head1 DESCRIPTION
@@ -1762,24 +2121,22 @@ for arbitrary big rational numbers.
You can change the underlying module that does the low-level
math operations by using:
- use Math::BigRat try => 'GMP';
+ use Math::BigRat try => 'GMP';
Note: This needs Math::BigInt::GMP installed.
The following would first try to find Math::BigInt::Foo, then
Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
- use Math::BigRat try => 'Foo,Math::BigInt::Bar';
+ use Math::BigRat try => 'Foo,Math::BigInt::Bar';
-If you want to get warned when the fallback occurs, replace "try" with
-"lib":
+If you want to get warned when the fallback occurs, replace "try" with "lib":
- use Math::BigRat lib => 'Foo,Math::BigInt::Bar';
+ use Math::BigRat lib => 'Foo,Math::BigInt::Bar';
-If you want the code to die instead, replace "try" with
-"only":
+If you want the code to die instead, replace "try" with "only":
- use Math::BigRat only => 'Foo,Math::BigInt::Bar';
+ use Math::BigRat only => 'Foo,Math::BigInt::Bar';
=head1 METHODS
@@ -1787,316 +2144,481 @@ Any methods not listed here are derived from Math::BigFloat (or
Math::BigInt), so make sure you check these two modules for further
information.
-=head2 new()
+=over
- $x = Math::BigRat->new('1/3');
+=item new()
+
+ $x = Math::BigRat->new('1/3');
Create a new Math::BigRat object. Input can come in various forms:
- $x = Math::BigRat->new(123); # scalars
- $x = Math::BigRat->new('inf'); # infinity
- $x = Math::BigRat->new('123.3'); # float
- $x = Math::BigRat->new('1/3'); # simple string
- $x = Math::BigRat->new('1 / 3'); # spaced
- $x = Math::BigRat->new('1 / 0.1'); # w/ floats
- $x = Math::BigRat->new(Math::BigInt->new(3)); # BigInt
- $x = Math::BigRat->new(Math::BigFloat->new('3.1')); # BigFloat
- $x = Math::BigRat->new(Math::BigInt::Lite->new('2')); # BigLite
+ $x = Math::BigRat->new(123); # scalars
+ $x = Math::BigRat->new('inf'); # infinity
+ $x = Math::BigRat->new('123.3'); # float
+ $x = Math::BigRat->new('1/3'); # simple string
+ $x = Math::BigRat->new('1 / 3'); # spaced
+ $x = Math::BigRat->new('1 / 0.1'); # w/ floats
+ $x = Math::BigRat->new(Math::BigInt->new(3)); # BigInt
+ $x = Math::BigRat->new(Math::BigFloat->new('3.1')); # BigFloat
+ $x = Math::BigRat->new(Math::BigInt::Lite->new('2')); # BigLite
- # You can also give D and N as different objects:
- $x = Math::BigRat->new(
- Math::BigInt->new(-123),
- Math::BigInt->new(7),
- ); # => -123/7
+ # You can also give D and N as different objects:
+ $x = Math::BigRat->new(
+ Math::BigInt->new(-123),
+ Math::BigInt->new(7),
+ ); # => -123/7
-=head2 numerator()
+=item numerator()
- $n = $x->numerator();
+ $n = $x->numerator();
Returns a copy of the numerator (the part above the line) as signed BigInt.
-=head2 denominator()
+=item denominator()
- $d = $x->denominator();
+ $d = $x->denominator();
Returns a copy of the denominator (the part under the line) as positive BigInt.
-=head2 parts()
+=item parts()
- ($n,$d) = $x->parts();
+ ($n, $d) = $x->parts();
Return a list consisting of (signed) numerator and (unsigned) denominator as
BigInts.
-=head2 numify()
+=item numify()
- my $y = $x->numify();
+ my $y = $x->numify();
Returns the object as a scalar. This will lose some data if the object
cannot be represented by a normal Perl scalar (integer or float), so
-use L<as_int()|/as_int()E<sol>as_number()> or L</as_float()> instead.
+use L<as_int()|/"as_int()/as_number()"> or L</as_float()> instead.
This routine is automatically used whenever a scalar is required:
- my $x = Math::BigRat->new('3/1');
- @array = (0,1,2,3);
- $y = $array[$x]; # set $y to 3
+ my $x = Math::BigRat->new('3/1');
+ @array = (0, 1, 2, 3);
+ $y = $array[$x]; # set $y to 3
-=head2 as_int()/as_number()
+=item as_int()/as_number()
- $x = Math::BigRat->new('13/7');
- print $x->as_int(),"\n"; # '1'
+ $x = Math::BigRat->new('13/7');
+ print $x->as_int(), "\n"; # '1'
Returns a copy of the object as BigInt, truncated to an integer.
C<as_number()> is an alias for C<as_int()>.
-=head2 as_float()
+=item as_float()
- $x = Math::BigRat->new('13/7');
- print $x->as_float(),"\n"; # '1'
+ $x = Math::BigRat->new('13/7');
+ print $x->as_float(), "\n"; # '1'
- $x = Math::BigRat->new('2/3');
- print $x->as_float(5),"\n"; # '0.66667'
+ $x = Math::BigRat->new('2/3');
+ print $x->as_float(5), "\n"; # '0.66667'
Returns a copy of the object as BigFloat, preserving the
accuracy as wanted, or the default of 40 digits.
This method was added in v0.22 of Math::BigRat (April 2008).
-=head2 as_hex()
+=item as_hex()
- $x = Math::BigRat->new('13');
- print $x->as_hex(),"\n"; # '0xd'
+ $x = Math::BigRat->new('13');
+ print $x->as_hex(), "\n"; # '0xd'
Returns the BigRat as hexadecimal string. Works only for integers.
-=head2 as_bin()
+=item as_bin()
- $x = Math::BigRat->new('13');
- print $x->as_bin(),"\n"; # '0x1101'
+ $x = Math::BigRat->new('13');
+ print $x->as_bin(), "\n"; # '0x1101'
Returns the BigRat as binary string. Works only for integers.
-=head2 as_oct()
+=item as_oct()
- $x = Math::BigRat->new('13');
- print $x->as_oct(),"\n"; # '015'
+ $x = Math::BigRat->new('13');
+ print $x->as_oct(), "\n"; # '015'
Returns the BigRat as octal string. Works only for integers.
-=head2 from_hex()/from_bin()/from_oct()
+=item from_hex()
+
+ my $h = Math::BigRat->from_hex('0x10');
+
+Create a BigRat from a hexadecimal number in string form.
+
+=item from_oct()
+
+ my $o = Math::BigRat->from_oct('020');
+
+Create a BigRat from an octal number in string form.
+
+=item from_bin()
+
+ my $b = Math::BigRat->from_bin('0b10000000');
+
+Create a BigRat from an binary number in string form.
- my $h = Math::BigRat->from_hex('0x10');
- my $b = Math::BigRat->from_bin('0b10000000');
- my $o = Math::BigRat->from_oct('020');
+=item bnan()
-Create a BigRat from an hexadecimal, binary or octal number
-in string form.
+ $x = Math::BigRat->bnan();
-=head2 length()
+Creates a new BigRat object representing NaN (Not A Number).
+If used on an object, it will set it to NaN:
- $len = $x->length();
+ $x->bnan();
+
+=item bzero()
+
+ $x = Math::BigRat->bzero();
+
+Creates a new BigRat object representing zero.
+If used on an object, it will set it to zero:
+
+ $x->bzero();
+
+=item binf()
+
+ $x = Math::BigRat->binf($sign);
+
+Creates a new BigRat object representing infinity. The optional argument is
+either '-' or '+', indicating whether you want infinity or minus infinity.
+If used on an object, it will set it to infinity:
+
+ $x->binf();
+ $x->binf('-');
+
+=item bone()
+
+ $x = Math::BigRat->bone($sign);
+
+Creates a new BigRat object representing one. The optional argument is
+either '-' or '+', indicating whether you want one or minus one.
+If used on an object, it will set it to one:
+
+ $x->bone(); # +1
+ $x->bone('-'); # -1
+
+=item length()
+
+ $len = $x->length();
Return the length of $x in digits for integer values.
-=head2 digit()
+=item digit()
- print Math::BigRat->new('123/1')->digit(1); # 1
- print Math::BigRat->new('123/1')->digit(-1); # 3
+ print Math::BigRat->new('123/1')->digit(1); # 1
+ print Math::BigRat->new('123/1')->digit(-1); # 3
Return the N'ths digit from X when X is an integer value.
-=head2 bnorm()
+=item bnorm()
- $x->bnorm();
+ $x->bnorm();
Reduce the number to the shortest form. This routine is called
automatically whenever it is needed.
-=head2 bfac()
+=item bfac()
- $x->bfac();
+ $x->bfac();
Calculates the factorial of $x. For instance:
- print Math::BigRat->new('3/1')->bfac(),"\n"; # 1*2*3
- print Math::BigRat->new('5/1')->bfac(),"\n"; # 1*2*3*4*5
+ print Math::BigRat->new('3/1')->bfac(), "\n"; # 1*2*3
+ print Math::BigRat->new('5/1')->bfac(), "\n"; # 1*2*3*4*5
Works currently only for integers.
-=head2 bround()/round()/bfround()
+=item bround()/round()/bfround()
Are not yet implemented.
-=head2 bmod()
+=item bmod()
- $x->bmod($y);
+ $x->bmod($y);
Returns $x modulo $y. When $x is finite, and $y is finite and non-zero, the
result is identical to the remainder after floored division (F-division). If,
in addition, both $x and $y are integers, the result is identical to the result
from Perl's % operator.
-=head2 bneg()
+=item bmodinv()
+
+ $x->bmodinv($mod); # modular multiplicative inverse
+
+Returns the multiplicative inverse of C<$x> modulo C<$mod>. If
+
+ $y = $x -> copy() -> bmodinv($mod)
+
+then C<$y> is the number closest to zero, and with the same sign as C<$mod>,
+satisfying
+
+ ($x * $y) % $mod = 1 % $mod
- $x->bneg();
+If C<$x> and C<$y> are non-zero, they must be relative primes, i.e.,
+C<bgcd($y, $mod)==1>. 'C<NaN>' is returned when no modular multiplicative
+inverse exists.
+
+=item bmodpow()
+
+ $num->bmodpow($exp,$mod); # modular exponentiation
+ # ($num**$exp % $mod)
+
+Returns the value of C<$num> taken to the power C<$exp> in the modulus
+C<$mod> using binary exponentiation. C<bmodpow> is far superior to
+writing
+
+ $num ** $exp % $mod
+
+because it is much faster - it reduces internal variables into
+the modulus whenever possible, so it operates on smaller numbers.
+
+C<bmodpow> also supports negative exponents.
+
+ bmodpow($num, -1, $mod)
+
+is exactly equivalent to
+
+ bmodinv($num, $mod)
+
+=item bneg()
+
+ $x->bneg();
Used to negate the object in-place.
-=head2 is_one()
+=item is_one()
- print "$x is 1\n" if $x->is_one();
+ print "$x is 1\n" if $x->is_one();
Return true if $x is exactly one, otherwise false.
-=head2 is_zero()
+=item is_zero()
- print "$x is 0\n" if $x->is_zero();
+ print "$x is 0\n" if $x->is_zero();
Return true if $x is exactly zero, otherwise false.
-=head2 is_pos()/is_positive()
+=item is_pos()/is_positive()
- print "$x is >= 0\n" if $x->is_positive();
+ print "$x is >= 0\n" if $x->is_positive();
Return true if $x is positive (greater than or equal to zero), otherwise
false. Please note that '+inf' is also positive, while 'NaN' and '-inf' aren't.
C<is_positive()> is an alias for C<is_pos()>.
-=head2 is_neg()/is_negative()
+=item is_neg()/is_negative()
- print "$x is < 0\n" if $x->is_negative();
+ print "$x is < 0\n" if $x->is_negative();
Return true if $x is negative (smaller than zero), otherwise false. Please
note that '-inf' is also negative, while 'NaN' and '+inf' aren't.
C<is_negative()> is an alias for C<is_neg()>.
-=head2 is_int()
+=item is_int()
- print "$x is an integer\n" if $x->is_int();
+ print "$x is an integer\n" if $x->is_int();
Return true if $x has a denominator of 1 (e.g. no fraction parts), otherwise
false. Please note that '-inf', 'inf' and 'NaN' aren't integer.
-=head2 is_odd()
+=item is_odd()
- print "$x is odd\n" if $x->is_odd();
+ print "$x is odd\n" if $x->is_odd();
Return true if $x is odd, otherwise false.
-=head2 is_even()
+=item is_even()
- print "$x is even\n" if $x->is_even();
+ print "$x is even\n" if $x->is_even();
Return true if $x is even, otherwise false.
-=head2 bceil()
+=item bceil()
- $x->bceil();
+ $x->bceil();
Set $x to the next bigger integer value (e.g. truncate the number to integer
and then increment it by one).
-=head2 bfloor()
+=item bfloor()
- $x->bfloor();
+ $x->bfloor();
Truncate $x to an integer value.
-=head2 bsqrt()
+=item bint()
+
+ $x->bint();
+
+Round $x towards zero.
- $x->bsqrt();
+=item bsqrt()
+
+ $x->bsqrt();
Calculate the square root of $x.
-=head2 broot()
+=item broot()
- $x->broot($n);
+ $x->broot($n);
Calculate the N'th root of $x.
-=head2 badd()
+=item badd()
- $x->badd($y);
+ $x->badd($y);
Adds $y to $x and returns the result.
-=head2 bmul()
+=item bmul()
- $x->bmul($y);
+ $x->bmul($y);
Multiplies $y to $x and returns the result.
-=head2 bsub()
+=item bsub()
- $x->bsub($y);
+ $x->bsub($y);
Subtracts $y from $x and returns the result.
-=head2 bdiv()
+=item bdiv()
- $q = $x->bdiv($y);
- ($q, $r) = $x->bdiv($y);
+ $q = $x->bdiv($y);
+ ($q, $r) = $x->bdiv($y);
In scalar context, divides $x by $y and returns the result. In list context,
does floored division (F-division), returning an integer $q and a remainder $r
so that $x = $q * $y + $r. The remainer (modulo) is equal to what is returned
by C<$x->bmod($y)>.
-=head2 bdec()
+=item bdec()
- $x->bdec();
+ $x->bdec();
Decrements $x by 1 and returns the result.
-=head2 binc()
+=item binc()
- $x->binc();
+ $x->binc();
Increments $x by 1 and returns the result.
-=head2 copy()
+=item copy()
- my $z = $x->copy();
+ my $z = $x->copy();
Makes a deep copy of the object.
Please see the documentation in L<Math::BigInt> for further details.
-=head2 bstr()/bsstr()
+=item bstr()/bsstr()
- my $x = Math::BigInt->new('8/4');
- print $x->bstr(),"\n"; # prints 1/2
- print $x->bsstr(),"\n"; # prints 1/2
+ my $x = Math::BigRat->new('8/4');
+ print $x->bstr(), "\n"; # prints 1/2
+ print $x->bsstr(), "\n"; # prints 1/2
Return a string representing this object.
-=head2 bacmp()/bcmp()
+=item bcmp()
-Used to compare numbers.
+ $x->bcmp($y);
-Please see the documentation in L<Math::BigInt> for further details.
+Compares $x with $y and takes the sign into account.
+Returns -1, 0, 1 or undef.
+
+=item bacmp()
+
+ $x->bacmp($y);
+
+Compares $x with $y while ignoring their sign. Returns -1, 0, 1 or undef.
+
+=item beq()
-=head2 blsft()/brsft()
+ $x -> beq($y);
+
+Returns true if and only if $x is equal to $y, and false otherwise.
+
+=item bne()
+
+ $x -> bne($y);
+
+Returns true if and only if $x is not equal to $y, and false otherwise.
+
+=item blt()
+
+ $x -> blt($y);
+
+Returns true if and only if $x is equal to $y, and false otherwise.
+
+=item ble()
+
+ $x -> ble($y);
+
+Returns true if and only if $x is less than or equal to $y, and false
+otherwise.
+
+=item bgt()
+
+ $x -> bgt($y);
+
+Returns true if and only if $x is greater than $y, and false otherwise.
+
+=item bge()
+
+ $x -> bge($y);
+
+Returns true if and only if $x is greater than or equal to $y, and false
+otherwise.
+
+=item blsft()/brsft()
Used to shift numbers left/right.
Please see the documentation in L<Math::BigInt> for further details.
-=head2 bpow()
+=item band()
+
+ $x->band($y); # bitwise and
+
+=item bior()
- $x->bpow($y);
+ $x->bior($y); # bitwise inclusive or
+
+=item bxor()
+
+ $x->bxor($y); # bitwise exclusive or
+
+=item bnot()
+
+ $x->bnot(); # bitwise not (two's complement)
+
+=item bpow()
+
+ $x->bpow($y);
Compute $x ** $y.
Please see the documentation in L<Math::BigInt> for further details.
-=head2 bexp()
+=item blog()
+
+ $x->blog($base, $accuracy); # logarithm of x to the base $base
+
+If C<$base> is not defined, Euler's number (e) is used:
+
+ print $x->blog(undef, 100); # log(x) to 100 digits
- $x->bexp($accuracy); # calculate e ** X
+=item bexp()
+
+ $x->bexp($accuracy); # calculate e ** X
Calculates two integers A and B so that A/B is equal to C<e ** $x>, where C<e> is
Euler's number.
@@ -2105,65 +2627,63 @@ This method was added in v0.20 of Math::BigRat (May 2007).
See also C<blog()>.
-=head2 bnok()
+=item bnok()
- $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bnok($y); # x over y (binomial coefficient n over k)
Calculates the binomial coefficient n over k, also called the "choose"
function. The result is equivalent to:
- ( n ) n!
- | - | = -------
- ( k ) k!(n-k)!
+ ( n ) n!
+ | - | = -------
+ ( k ) k!(n-k)!
This method was added in v0.20 of Math::BigRat (May 2007).
-=head2 config()
+=item config()
- use Data::Dumper;
+ use Data::Dumper;
- print Dumper ( Math::BigRat->config() );
- print Math::BigRat->config()->{lib},"\n";
+ print Dumper ( Math::BigRat->config() );
+ print Math::BigRat->config()->{lib}, "\n";
Returns a hash containing the configuration, e.g. the version number, lib
loaded etc. The following hash keys are currently filled in with the
appropriate information.
- key RO/RW Description
- Example
- ============================================================
- lib RO Name of the Math library
- Math::BigInt::Calc
- lib_version RO Version of 'lib'
- 0.30
- class RO The class of config you just called
- Math::BigRat
- version RO version number of the class you used
- 0.10
- upgrade RW To which class numbers are upgraded
- undef
- downgrade RW To which class numbers are downgraded
- undef
- precision RW Global precision
- undef
- accuracy RW Global accuracy
- undef
- round_mode RW Global round mode
- even
- div_scale RW Fallback accuracy for div
- 40
- trap_nan RW Trap creation of NaN (undef = no)
- undef
- trap_inf RW Trap creation of +inf/-inf (undef = no)
- undef
+ key RO/RW Description
+ Example
+ ============================================================
+ lib RO Name of the Math library
+ Math::BigInt::Calc
+ lib_version RO Version of 'lib'
+ 0.30
+ class RO The class of config you just called
+ Math::BigRat
+ version RO version number of the class you used
+ 0.10
+ upgrade RW To which class numbers are upgraded
+ undef
+ downgrade RW To which class numbers are downgraded
+ undef
+ precision RW Global precision
+ undef
+ accuracy RW Global accuracy
+ undef
+ round_mode RW Global round mode
+ even
+ div_scale RW Fallback accuracy for div
+ 40
+ trap_nan RW Trap creation of NaN (undef = no)
+ undef
+ trap_inf RW Trap creation of +inf/-inf (undef = no)
+ undef
By passing a reference to a hash you may set the configuration values. This
works only for values that a marked with a C<RW> above, anything else is
read-only.
-=head2 objectify()
-
-This is an internal routine that turns scalars into objects.
+=back
=head1 BUGS
@@ -2236,8 +2756,16 @@ L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
=head1 AUTHORS
-(C) by Tels L<http://bloodgate.com/> 2001 - 2009.
+=over 4
+
+=item *
-Currently maintained by Peter John Acklam <pjacklam@online.no>.
+Tels L<http://bloodgate.com/> 2001-2009.
+
+=item *
+
+Maintained by Peter John Acklam <pjacklam@online.no> 2011-
+
+=back
=cut
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/Math/BigRat/Test.pm b/gnu/usr.bin/perl/cpan/Math-BigRat/t/Math/BigRat/Test.pm
index b7150c468e6..c61b65289ba 100644
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/Math/BigRat/Test.pm
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/Math/BigRat/Test.pm
@@ -7,17 +7,17 @@ use warnings;
use Exporter;
use Math::BigRat;
use Math::BigFloat;
-our ($VERSION, @ISA, $accuracy, $precision, $round_mode, $div_scale);
-@ISA = qw(Math::BigRat Exporter);
-$VERSION = 0.04;
+our @ISA = qw(Math::BigRat Exporter);
+our $VERSION = '0.04';
use overload; # inherit overload from BigRat
# Globals
-$accuracy = $precision = undef;
-$round_mode = 'even';
-$div_scale = 40;
+our $accuracy = undef;
+our $precision = undef;
+our $round_mode = 'even';
+our $div_scale = 40;
my $class = 'Math::BigRat::Test';
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/big_ap.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/big_ap.t
index 3b45058120b..1ac46e5d9fc 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/big_ap.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/big_ap.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
# Test that accuracy() and precision() in BigInt/BigFloat do not disturb
# the rounding force in BigRat.
@@ -12,61 +12,65 @@ use Math::BigInt;
use Math::BigFloat;
use Math::BigRat;
-my $proper = Math::BigRat->new('12345678901234567890/2');
-my $proper_inc = Math::BigRat->new('12345678901234567890/2')->binc();
-my $proper_dec = Math::BigRat->new('12345678901234567890/2')->bdec();
-my $proper_int = Math::BigInt->new('12345678901234567890');
-my $proper_float = Math::BigFloat->new('12345678901234567890');
-my $proper2 = Math::BigRat->new('12345678901234567890');
+my $proper = Math::BigRat -> new('12345678901234567890/2');
+my $proper_inc = Math::BigRat -> new('12345678901234567890/2') -> binc();
+my $proper_dec = Math::BigRat -> new('12345678901234567890/2') -> bdec();
+my $proper_int = Math::BigInt -> new('12345678901234567890');
+my $proper_float = Math::BigFloat -> new('12345678901234567890');
+my $proper2 = Math::BigRat -> new('12345678901234567890');
-print "# Start\n";
-
-Math::BigInt->accuracy(3);
-Math::BigFloat->accuracy(5);
+Math::BigInt -> accuracy(3);
+Math::BigFloat -> accuracy(5);
my ($x, $y, $z);
##############################################################################
# new()
-$z = Math::BigRat->new('12345678901234567890/2');
-is($z, $proper);
+note "Test new()";
-$z = Math::BigRat->new('1234567890123456789E1');
-is($z, $proper2);
+$z = Math::BigRat->new("12345678901234567890/2");
+is($z, $proper, q|Math::BigRat->new("12345678901234567890/2")|);
-$z = Math::BigRat->new('12345678901234567890/1E0');
-is($z, $proper2);
+$z = Math::BigRat->new("1234567890123456789E1");
+is($z, $proper2, q|Math::BigRat->new("1234567890123456789E1")|);
-$z = Math::BigRat->new('1234567890123456789e1/1');
-is($z, $proper2);
+$z = Math::BigRat->new("12345678901234567890/1E0");
+is($z, $proper2, q|Math::BigRat->new("12345678901234567890/1E0")|);
-$z = Math::BigRat->new('1234567890123456789e1/1E0');
-is($z, $proper2);
+$z = Math::BigRat->new("1234567890123456789e1/1");
+is($z, $proper2, q|Math::BigRat->new("1234567890123456789e1/1")|);
+
+$z = Math::BigRat->new("1234567890123456789e1/1E0");
+is($z, $proper2, q|Math::BigRat->new("1234567890123456789e1/1E0")|);
$z = Math::BigRat->new($proper_int);
-is($z, $proper2);
+is($z, $proper2, qq|Math::BigRat->new("$proper_int")|);
$z = Math::BigRat->new($proper_float);
-is($z, $proper2);
+is($z, $proper2, qq|Math::BigRat->new("$proper_float")|);
##############################################################################
# bdiv
-$x = Math::BigRat->new('12345678901234567890');
-$y = Math::BigRat->new('2');
+note "Test bdiv()";
+
+$x = Math::BigRat->new("12345678901234567890");
+$y = Math::BigRat->new("2");
$z = $x->copy->bdiv($y);
is($z, $proper);
##############################################################################
# bmul
+note "Test bmul()";
+
$x = Math::BigRat->new("$proper");
-$y = Math::BigRat->new('1');
+$y = Math::BigRat->new("1");
$z = $x->copy->bmul($y);
is($z, $proper);
-$z = Math::BigRat->new('12345678901234567890/1E0');
+$z = Math::BigRat->new("12345678901234567890/1E0");
is($z, $proper2);
$z = Math::BigRat->new($proper_int);
@@ -78,29 +82,40 @@ is($z, $proper2);
##############################################################################
# bdiv
-$x = Math::BigRat->new('12345678901234567890');
-$y = Math::BigRat->new('2');
+note "Test bdiv()";
+
+$x = Math::BigRat->new("12345678901234567890");
+$y = Math::BigRat->new("2");
$z = $x->copy->bdiv($y);
is($z, $proper);
##############################################################################
# bmul
+note "Test bmul()";
+
$x = Math::BigRat->new("$proper");
-$y = Math::BigRat->new('1');
+$y = Math::BigRat->new("1");
$z = $x->copy->bmul($y);
is($z, $proper);
$x = Math::BigRat->new("$proper");
-$y = Math::BigRat->new('2');
+$y = Math::BigRat->new("2");
$z = $x->copy->bmul($y);
is($z, $proper2);
##############################################################################
-# binc/bdec
+# binc
+
+note "Test binc()";
$x = $proper->copy()->binc();
is($x, $proper_inc);
+##############################################################################
+# binc
+
+note "Test bdec()";
+
$x = $proper->copy()->bdec();
is($x, $proper_dec);
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigfltrt.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigfltrt.t
index 3c46000b71f..4f36bde3ea8 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigfltrt.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigfltrt.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
use strict;
use warnings;
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/biglog.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/biglog.t
index 9d729af7769..44f5962cad2 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/biglog.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/biglog.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
# Test blog function (and bpow, since it uses blog), as well as bexp().
@@ -22,53 +22,51 @@ my $cl = "Math::BigRat";
#############################################################################
# test exp($n)
-is ($cl->new(1)->bexp()->as_int(), '2', "bexp(1)");
-is ($cl->new(2)->bexp()->as_int(), '7',"bexp(2)");
-is ($cl->new(3)->bexp()->as_int(), '20', "bexp(3)");
+is($cl->new(1)->bexp()->as_int(), '2', qq|$cl->new(1)->bexp()->as_int()|);
+is($cl->new(2)->bexp()->as_int(), '7', qq|$cl->new(1)->bexp()->as_int()|);
+is($cl->new(3)->bexp()->as_int(), '20', qq|$cl->new(1)->bexp()->as_int()|);
# rounding not implemented yet
#is ($cl->new(3)->bexp(10), '20', "bexp(3,10)");
# $x < 0 => NaN
-ok ($cl->new(-2)->blog(), 'NaN');
-ok ($cl->new(-1)->blog(), 'NaN');
-ok ($cl->new(-10)->blog(), 'NaN');
-ok ($cl->new(-2,2)->blog(), 'NaN');
+is($cl->new(-2)->blog(), 'NaN', qq|$cl->new(-2)->blog()|);
+is($cl->new(-1)->blog(), 'NaN', qq|$cl->new(-1)->blog()|);
+is($cl->new(-10)->blog(), 'NaN', qq|$cl->new(-10)->blog()|);
+is($cl->new(-2,2)->blog(), 'NaN', qq|$cl->new(-2,2)->blog()|);
#############################################################################
# test bexp() with cached results
-is ($cl->new(1)->bexp(),
+is($cl->new(1)->bexp(),
'90933395208605785401971970164779391644753259799242' . '/' .
'33452526613163807108170062053440751665152000000000',
'bexp(1)');
-is ($cl->new(2)->bexp(1,40), $cl->new(1)->bexp(1,45)->bpow(2,40), 'bexp(2)');
+is($cl->new(2)->bexp(1,40), $cl->new(1)->bexp(1,45)->bpow(2,40), 'bexp(2)');
-is ($cl->new("12.5")->bexp(1,61), $cl->new(1)->bexp(1,65)->bpow(12.5,61), 'bexp(12.5)');
+is($cl->new("12.5")->bexp(1,61), $cl->new(1)->bexp(1,65)->bpow(12.5,61), 'bexp(12.5)');
#############################################################################
# test bexp() with big values (non-cached)
-is ($cl->new(1)->bexp(1,100)->as_float(100),
+is($cl->new(1)->bexp(1,100)->as_float(100),
'2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427',
'bexp(100)');
-is ($cl->new("12.5")->bexp(1,91), $cl->new(1)->bexp(1,95)->bpow(12.5,91),
+is($cl->new("12.5")->bexp(1,91), $cl->new(1)->bexp(1,95)->bpow(12.5,91),
'bexp(12.5) to 91 digits');
#############################################################################
# some integer results
-is ($cl->new(2)->bpow(32)->blog(2), '32', "2 ** 32");
-is ($cl->new(3)->bpow(32)->blog(3), '32', "3 ** 32");
-is ($cl->new(2)->bpow(65)->blog(2), '65', "2 ** 65");
-my $x = Math::BigInt->new( '777' ) ** 256;
+is($cl->new(2)->bpow(32)->blog(2), '32', "2 ** 32");
+is($cl->new(3)->bpow(32)->blog(3), '32', "3 ** 32");
+is($cl->new(2)->bpow(65)->blog(2), '65', "2 ** 65");
+
+my $x = Math::BigInt->new( '777' ) ** 256;
my $base = Math::BigInt->new( '12345678901234' );
-is ($x->copy()->blog($base), 56, 'blog(777**256, 12345678901234)');
+is($x->copy()->blog($base), 56, 'blog(777**256, 12345678901234)');
$x = Math::BigInt->new( '777' ) ** 777;
$base = Math::BigInt->new( '777' );
-is ($x->copy()->blog($base), 777, 'blog(777**777, 777)');
-
-# all done
-1;
+is($x->copy()->blog($base), 777, 'blog(777**777, 777)');
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t
index 7ca3be3672b..fec6afd568c 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
use strict;
use warnings;
@@ -27,7 +27,7 @@ is($x->isa('Math::BigInt'), 0);
##############################################################################
# new and bnorm()
-foreach my $func (qw/new bnorm/) {
+foreach my $func (qw/ new bnorm /) {
$x = $mbr->$func(1234);
is($x, 1234, qq|\$x = $mbr->$func(1234)|);
@@ -108,50 +108,50 @@ foreach my $func (qw/new bnorm/) {
my $n = 'numerator';
my $d = 'denominator';
-$x = $mbr->new('-0');
+$x = $mbr->new('-0');
is($x, '0');
- is($x->$n(), '0');
+is($x->$n(), '0');
is($x->$d(), '1');
-$x = $mbr->new('NaN');
+$x = $mbr->new('NaN');
is($x, 'NaN'); is($x->$n(), 'NaN');
is($x->$d(), 'NaN');
-$x = $mbr->new('-NaN');
+$x = $mbr->new('-NaN');
is($x, 'NaN'); is($x->$n(), 'NaN');
is($x->$d(), 'NaN');
-$x = $mbr->new('-1r4');
+$x = $mbr->new('-1r4');
is($x, 'NaN'); is($x->$n(), 'NaN');
is($x->$d(), 'NaN');
-$x = $mbr->new('+inf');
+$x = $mbr->new('+inf');
is($x, 'inf'); is($x->$n(), 'inf');
is($x->$d(), '1');
-$x = $mbr->new('-inf');
+$x = $mbr->new('-inf');
is($x, '-inf');
is($x->$n(), '-inf');
is($x->$d(), '1');
-$x = $mbr->new('123a4');
+$x = $mbr->new('123a4');
is($x, 'NaN');
is($x->$n(), 'NaN');
is($x->$d(), 'NaN');
# wrong inputs
-$x = $mbr->new('1e2e2');
+$x = $mbr->new('1e2e2');
is($x, 'NaN');
is($x->$n(), 'NaN');
is($x->$d(), 'NaN');
-$x = $mbr->new('1+2+2');
+$x = $mbr->new('1+2+2');
is($x, 'NaN');
is($x->$n(), 'NaN');
is($x->$d(), 'NaN');
# failed due to BigFloat bug
-$x = $mbr->new('1.2.2');
+$x = $mbr->new('1.2.2');
is($x, 'NaN');
is($x->$n(), 'NaN');
is($x->$d(), 'NaN');
@@ -276,8 +276,8 @@ is($x, '4');
$x = $mbr->new('3/4')->bsqrt();
is($x,
- '1732050807568877293527446341505872366943/'
- .'2000000000000000000000000000000000000000');
+ '4330127018922193233818615853764680917357/' .
+ '5000000000000000000000000000000000000000');
##############################################################################
# bpow
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.t
index 24f95ee1d99..a5bb9471e58 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
use strict;
use warnings;
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratup.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratup.t
index 46d68f34ccd..f424486a521 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratup.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratup.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
# Test whether $Math::BigInt::upgrade breaks our neck
@@ -33,7 +33,7 @@ is($x->bsqrt(), '3', 'bsqrt(144/16)');
$x = $rat->new('1/3');
is($x->bsqrt(),
- '1000000000000000000000000000000000000000/1732050807568877293527446341505872366943',
+ '1443375672974064411272871951254893639119/2500000000000000000000000000000000000000',
'bsqrt(1/3)');
# all tests successful
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigroot.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigroot.t
index 8a895598e94..5be7faa48dd 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigroot.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigroot.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
# Test broot function (and bsqrt() function, since it is used by broot()).
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/hang.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/hang.t
index 6de22e60333..21b9304cbd8 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/hang.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/hang.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
# test for bug #34584: hang in exp(1/2)
@@ -11,7 +11,7 @@ use Math::BigRat;
my $result = Math::BigRat->new('1/2')->bexp();
-is("$result", "9535900335500879457687887524133067574481/5783815921445270815783609372070483523265",
+is("$result", "824360635350064073424325393907081785827/500000000000000000000000000000000000000",
"exp(1/2) worked");
##############################################################################
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/requirer.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/requirer.t
index eba2f6622e0..6788783a290 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/requirer.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/requirer.t
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
# check that simple requiring BigRat works
diff --git a/gnu/usr.bin/perl/cpan/Math-BigRat/t/trap.t b/gnu/usr.bin/perl/cpan/Math-BigRat/t/trap.t
index a26da9f72ff..0daef7afe86 100755
--- a/gnu/usr.bin/perl/cpan/Math-BigRat/t/trap.t
+++ b/gnu/usr.bin/perl/cpan/Math-BigRat/t/trap.t
@@ -1,6 +1,6 @@
-#!/usr/bin/perl
+#!perl
-# test that config ( trap_nan => 1, trap_inf => 1) really works/dies
+# test that config( trap_nan => 1, trap_inf => 1) really works/dies
use strict;
use warnings;
@@ -10,67 +10,82 @@ use Test::More tests => 29;
use Math::BigRat;
my $mbi = 'Math::BigRat';
-my ($cfg,$x);
-
-foreach my $class ($mbi)
- {
- # can do and defaults are okay?
- can_ok ($class, 'config');
- is ($class->config()->{trap_nan}, 0);
- is ($class->config()->{trap_inf}, 0);
-
- # can set?
- $cfg = $class->config( trap_nan => 1 ); is ($cfg->{trap_nan},1);
-
- # can set via hash ref?
- $cfg = $class->config( { trap_nan => 1 } ); is ($cfg->{trap_nan},1);
-
- # also test that new() still works normally
- eval ("\$x = \$class->new('42'); \$x->bnan();");
- like ($@, qr/^Tried to set/);
- is ($x,42); # after new() never modified
-
- # can reset?
- $cfg = $class->config( trap_nan => 0 ); is ($cfg->{trap_nan},0);
-
- # can set?
- $cfg = $class->config( trap_inf => 1 ); is ($cfg->{trap_inf},1);
- eval ("\$x = \$class->new('4711'); \$x->binf();");
- like ($@, qr/^Tried to set/);
- is ($x,4711); # after new() never modified
-
- # +$x/0 => +inf
- eval ("\$x = \$class->new('4711'); \$x->bdiv(0);");
- like ($@, qr/^Tried to set/);
- is ($x,4711); # after new() never modified
-
- # -$x/0 => -inf
- eval ("\$x = \$class->new('-0815'); \$x->bdiv(0);");
- like ($@, qr/^Tried to set/);
- is ($x,-815); # after new() never modified
-
- $cfg = $class->config( trap_nan => 1 );
- # 0/0 => NaN
- eval ("\$x = \$class->new('0'); \$x->bdiv(0);");
- like ($@, qr/^Tried to set/);
- is ($x,0); # after new() never modified
- }
+my ($cfg, $x);
+
+foreach my $class ($mbi) {
+
+ # can do and defaults are okay?
+ can_ok($class, 'config');
+ is($class->config()->{trap_nan}, 0, qq|$class->config()->{trap_nan}|);
+ is($class->config()->{trap_inf}, 0, qq|$class->config()->{trap_inf}|);
+
+ # can set?
+ $cfg = $class->config( trap_nan => 1 );
+ is($cfg->{trap_nan}, 1, q|$cfg->{trap_nan}|);
+
+ # can set via hash ref?
+ $cfg = $class->config( { trap_nan => 1 } );
+ is($cfg->{trap_nan}, 1, q|$cfg->{trap_nan}|);
+
+ # also test that new() still works normally
+ eval("\$x = $class->new('42'); \$x->bnan();");
+ like($@, qr/^Tried to set/, "\$x = $class->new('42'); \$x->bnan();");
+ # after new() never modified
+ is($x, 42, "\$x = $class->new('42'); \$x->bnan();");
+
+ # can reset?
+ $cfg = $class->config( trap_nan => 0 );
+ is($cfg->{trap_nan}, 0, q|$cfg->{trap_nan}|);
+
+ # can set?
+ $cfg = $class->config( trap_inf => 1 );
+ is($cfg->{trap_inf}, 1, q|$cfg->{trap_inf}|);
+ eval("\$x = $class->new('4711'); \$x->binf();");
+ like($@, qr/^Tried to set/, "\$x = $class->new('4711'); \$x->binf();");
+ # after new() never modified
+ is($x, 4711, "\$x = $class->new('4711'); \$x->binf();");
+
+ # +$x/0 => +inf
+ eval("\$x =\$class->new('4711'); \$x->bdiv(0);");
+ like($@, qr/^Tried to set/, "\$x =\$class->new('4711'); \$x->bdiv(0);");
+ # after new() never modified
+ is($x, 4711, "\$x =\$class->new('4711'); \$x->bdiv(0);");
+
+ # -$x/0 => -inf
+ eval("\$x = $class->new('-0815'); \$x->bdiv(0);");
+ like($@, qr/^Tried to set/, "\$x = $class->new('-0815'); \$x->bdiv(0);");
+ # after new() never modified
+ is($x, -815, "\$x = $class->new('-0815'); \$x->bdiv(0);");
+
+ $cfg = $class->config( trap_nan => 1 );
+ # 0/0 => NaN
+ eval("\$x = $class->new('0'); \$x->bdiv(0);");
+ like($@, qr/^Tried to set/, "\$x = $class->new('0'); \$x->bdiv(0);");
+ # after new() never modified
+ is($x, 0, "\$x = $class->new('0'); \$x->bdiv(0);");
+}
##############################################################################
# BigRat
-$cfg = Math::BigRat->config( trap_nan => 1 );
+Math::BigRat->config(trap_nan => 1,
+ trap_inf => 1);
-for my $trap (qw/0.1a +inf inf -inf/)
- {
- my $x = Math::BigRat->new('7/4');
+for my $trap (qw/ 0.1a +inf inf -inf /) {
+ my $x = Math::BigRat->new('7/4');
- eval ("\$x = \$mbi->new('$trap');");
- is ($x,'7/4'); # never modified since it dies
- eval ("\$x = \$mbi->new('$trap');");
- is ($x,'7/4'); # never modified since it dies
- eval ("\$x = \$mbi->new('$trap/7');");
- is ($x,'7/4'); # never modified since it dies
- }
+ note(""); # this is just for some space in the output
+
+ # In each of the cases below, $x is not modified, because the code dies.
+
+ eval("\$x = $mbi->new('$trap');");
+ is($x, '7/4', "\$x = $mbi->new('$trap');");
+
+ eval("\$x = $mbi->new('$trap');");
+ is($x, '7/4', "\$x = $mbi->new('$trap');");
+
+ eval("\$x = $mbi->new('$trap/7');");
+ is($x, '7/4', "\$x = $mbi->new('$trap/7');");
+}
# all tests done
diff --git a/gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm b/gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm
index ace55ad845d..89e22b57207 100644
--- a/gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm
+++ b/gnu/usr.bin/perl/cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm
@@ -19,14 +19,15 @@ use constant QUOTE => do { ON_WIN32 ? q["] : q['] };
BEGIN {
use vars qw[ $VERSION @ISA $VERBOSE $CACHE @EXPORT_OK $DEPRECATED
- $FIND_VERSION $ERROR $CHECK_INC_HASH];
+ $FIND_VERSION $ERROR $CHECK_INC_HASH $FORCE_SAFE_INC ];
use Exporter;
@ISA = qw[Exporter];
- $VERSION = '0.64';
+ $VERSION = '0.68';
$VERBOSE = 0;
$DEPRECATED = 0;
$FIND_VERSION = 1;
$CHECK_INC_HASH = 0;
+ $FORCE_SAFE_INC = 0;
@EXPORT_OK = qw[check_install can_load requires];
}
@@ -201,6 +202,8 @@ sub check_install {
### so scan the dirs
unless( $filename ) {
+ local @INC = @INC[0..$#INC-1] if $FORCE_SAFE_INC && $INC[-1] eq '.';
+
DIR: for my $dir ( @INC ) {
my $fh;
@@ -307,6 +310,7 @@ sub check_install {
}
if ( $DEPRECATED and "$]" >= 5.011 ) {
+ local @INC = @INC[0..$#INC-1] if $FORCE_SAFE_INC && $INC[-1] eq '.';
require Module::CoreList;
require Config;
@@ -444,6 +448,8 @@ sub can_load {
if ( $CACHE->{$mod}->{uptodate} ) {
+ local @INC = @INC[0..$#INC-1] if $FORCE_SAFE_INC && $INC[-1] eq '.';
+
if ( $args->{autoload} ) {
my $who = (caller())[0];
eval { autoload_remote $who, $mod };
@@ -509,6 +515,8 @@ sub requires {
return undef;
}
+ local @INC = @INC[0..$#INC-1] if $FORCE_SAFE_INC && $INC[-1] eq '.';
+
my $lib = join " ", map { qq["-I$_"] } @INC;
my $oneliner = 'print(join(qq[\n],map{qq[BONG=$_]}keys(%INC)),qq[\n])';
my $cmd = join '', qq["$^X" $lib -M$who -e], QUOTE, $oneliner, QUOTE;
@@ -562,6 +570,12 @@ you.
The default is 0;
+=head2 $Module::Load::Conditional::FORCE_SAFE_INC
+
+This controls whether C<Module::Load::Conditional> sanitises C<@INC>
+by removing "C<.>". The current default setting is C<0>, but this
+may change in a future release.
+
=head2 $Module::Load::Conditional::CACHE
This holds the cache of the C<can_load> function. If you explicitly
diff --git a/gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm b/gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm
index f7017cf90ff..7f49da6d59a 100644
--- a/gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm
+++ b/gnu/usr.bin/perl/cpan/Module-Metadata/lib/Module/Metadata.pm
@@ -1,6 +1,6 @@
# -*- mode: cperl; tab-width: 8; indent-tabs-mode: nil; basic-offset: 2 -*-
-# vim:ts=8:sw=2:et:sta:sts=2
-package Module::Metadata; # git description: v1.000030-2-g52f466c
+# vim:ts=8:sw=2:et:sta:sts=2:tw=78
+package Module::Metadata; # git description: v1.000032-7-gb4e8a3f
# ABSTRACT: Gather package and POD information from perl module files
# Adapted from Perl-licensed code originally distributed with
@@ -14,7 +14,7 @@ sub __clean_eval { eval $_[0] }
use strict;
use warnings;
-our $VERSION = '1.000031'; # TRIAL
+our $VERSION = '1.000033';
use Carp qw/croak/;
use File::Spec;
@@ -411,15 +411,29 @@ sub _init {
}
$self->_parse_fh($handle);
+ @{$self->{packages}} = __uniq(@{$self->{packages}});
+
unless($self->{module} and length($self->{module})) {
- my ($v, $d, $f) = File::Spec->splitpath($self->{filename});
- if($f =~ /\.pm$/) {
+ # CAVEAT (possible TODO): .pmc files not treated the same as .pm
+ if ($self->{filename} =~ /\.pm$/) {
+ my ($v, $d, $f) = File::Spec->splitpath($self->{filename});
$f =~ s/\..+$//;
- my @candidates = grep /$f$/, @{$self->{packages}};
- $self->{module} = shift(@candidates); # punt
+ my @candidates = grep /(^|::)$f$/, @{$self->{packages}};
+ $self->{module} = shift(@candidates); # this may be undef
}
else {
- $self->{module} = 'main';
+ # this seems like an atrocious heuristic, albeit marginally better than
+ # what was here before. It should be rewritten entirely to be more like
+ # "if it's not a .pm file, it's not require()able as a name, therefore
+ # name() should be undef."
+ if ((grep /main/, @{$self->{packages}})
+ or (grep /main/, keys %{$self->{versions}})) {
+ $self->{module} = 'main';
+ }
+ else {
+ # TODO: this should maybe default to undef instead
+ $self->{module} = $self->{packages}[0] || '';
+ }
}
}
@@ -440,6 +454,7 @@ sub _do_find_module {
my $testfile = File::Spec->catfile($dir, $file);
return [ File::Spec->rel2abs( $testfile ), $dir ]
if -e $testfile and !-d _; # For stuff like ExtUtils::xsubpp
+ # CAVEAT (possible TODO): .pmc files are not discoverable here
$testfile .= '.pm';
return [ File::Spec->rel2abs( $testfile ), $dir ]
if -e $testfile;
@@ -649,6 +664,12 @@ sub _parse_fh {
$self->{pod_headings} = \@pod;
}
+sub __uniq (@)
+{
+ my (%seen, $key);
+ grep { not $seen{ $key = $_ }++ } @_;
+}
+
{
my $pn = 0;
sub _evaluate_version_line {
@@ -820,7 +841,7 @@ Module::Metadata - Gather package and POD information from perl module files
=head1 VERSION
-version 1.000031
+version 1.000033
=head1 SYNOPSIS
@@ -1037,7 +1058,7 @@ There is also a mailing list available for users of this distribution, at
L<http://lists.perl.org/list/cpan-workers.html>.
There is also an irc channel available for users of this distribution, at
-L<irc://irc.perl.org/#toolchain>.
+L<C<#toolchain> on C<irc.perl.org>|irc://irc.perl.org/#toolchain>.
=head1 AUTHOR
@@ -1049,7 +1070,7 @@ assistance from David Golden (xdg) <dagolden@cpan.org>.
=head1 CONTRIBUTORS
-=for stopwords Karen Etheridge David Golden Vincent Pit Matt S Trout Chris Nehren Graham Knop Olivier MenguĂŠ Tomas Doran Tatsuhiko Miyagawa tokuhirom Peter Rabbitson Steve Hay Josh Jore Craig A. Berry Mitchell Steinbrunner Edward Zborowski Gareth Harper James Raspass Jerry D. Hedden 'BinGOs' Williams Kent Fredric
+=for stopwords Karen Etheridge David Golden Vincent Pit Matt S Trout Chris Nehren Graham Knop Olivier MenguĂŠ Tomas Doran Tatsuhiko Miyagawa tokuhirom Kent Fredric Peter Rabbitson Steve Hay Jerry D. Hedden Craig A. Berry Mitchell Steinbrunner Edward Zborowski Gareth Harper James Raspass 'BinGOs' Williams Josh Jore
=over 4
@@ -1095,6 +1116,10 @@ tokuhirom <tokuhirom@gmail.com>
=item *
+Kent Fredric <kentnl@cpan.org>
+
+=item *
+
Peter Rabbitson <ribasushi@cpan.org>
=item *
@@ -1103,7 +1128,7 @@ Steve Hay <steve.m.hay@googlemail.com>
=item *
-Josh Jore <jjore@cpan.org>
+Jerry D. Hedden <jdhedden@cpan.org>
=item *
@@ -1111,6 +1136,10 @@ Craig A. Berry <cberry@cpan.org>
=item *
+Craig A. Berry <craigberry@mac.com>
+
+=item *
+
David Mitchell <davem@iabyn.com>
=item *
@@ -1131,15 +1160,11 @@ James Raspass <jraspass@gmail.com>
=item *
-Jerry D. Hedden <jdhedden@cpan.org>
-
-=item *
-
Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
=item *
-Kent Fredric <kentnl@cpan.org>
+Josh Jore <jjore@cpan.org>
=back
diff --git a/gnu/usr.bin/perl/cpan/Module-Metadata/t/contains_pod.t b/gnu/usr.bin/perl/cpan/Module-Metadata/t/contains_pod.t
index 016e7844ade..d2b7c501d3d 100644
--- a/gnu/usr.bin/perl/cpan/Module-Metadata/t/contains_pod.t
+++ b/gnu/usr.bin/perl/cpan/Module-Metadata/t/contains_pod.t
@@ -4,7 +4,7 @@ use Test::More tests => 3;
use Module::Metadata;
BEGIN {
- *fh_from_string = $] < 5.008
+ *fh_from_string = "$]" < 5.008
? require IO::Scalar && sub ($) {
IO::Scalar->new(\$_[0]);
}
diff --git a/gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t b/gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t
index 068a8657b15..5dee700bbc6 100644
--- a/gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t
+++ b/gnu/usr.bin/perl/cpan/Module-Metadata/t/metadata.t
@@ -10,9 +10,8 @@ use File::Temp;
use File::Basename;
use Cwd ();
use File::Path;
-use Data::Dumper;
-plan tests => 61;
+plan tests => 70;
require_ok('Module::Metadata');
@@ -205,12 +204,17 @@ $::VERSION = 0.01;
my ( $i, $n ) = ( 1, scalar( @scripts ) );
foreach my $script ( @scripts ) {
+ note '-------';
+ my $errs;
my $file = File::Spec->catfile('bin', 'simple.plx');
my ($dist_name, $dist_dir) = new_dist(files => { $file => $script } );
my $pm_info = Module::Metadata->new_from_file( $file );
- is( $pm_info->version, '0.01', "correct script version ($i of $n)" );
+ is( $pm_info->name, 'main', 'name for script is always main');
+ is( $pm_info->version, '0.01', "correct script version ($i of $n)" ) or $errs++;
$i++;
+
+ diag 'parsed module: ', explain($pm_info) if !$ENV{PERL_CORE} && $errs;
}
{
@@ -324,6 +328,53 @@ our $VERSION = '1.23';
is( $pm_info->version, '1.23', 'version for default package' );
}
+my $tmpdir = GeneratePackage::tmpdir();
+my $undef;
+my $test_num = 0;
+use lib 't/lib';
+use GeneratePackage;
+
+{
+ # and now a real pod file
+ # (this test case is ready to be rolled into a corpus loop, later)
+ my $test_case = {
+ name => 'file only contains pod',
+ filename => 'Simple/Documentation.pod',
+ code => <<'---',
+# PODNAME: Simple::Documentation
+# ABSTRACT: My documentation
+
+=pod
+
+Hello, this is pod.
+
+=cut
+---
+ module => '', # TODO: should probably be $undef actually
+ all_versions => { },
+ };
+
+ note $test_case->{name};
+ my $code = $test_case->{code};
+ my $expected_name = $test_case->{module};
+ local $TODO = $test_case->{TODO};
+
+ my $errs;
+
+ my ($vol, $dir, $basename) = File::Spec->splitpath(File::Spec->catfile($tmpdir, "Simple${test_num}", ($test_case->{filename} || 'Simple.pm')));
+ my $pm_info = Module::Metadata->new_from_file(generate_file($dir, $basename, $code));
+
+ my $got_name = $pm_info->name;
+ is(
+ $got_name,
+ $expected_name,
+ "case '$test_case->{name}': module name matches",
+ )
+ or $errs++;
+
+ diag 'parsed module: ', explain($pm_info) if !$ENV{PERL_CORE} && $errs;
+}
+
{
# Make sure processing stops after __DATA__
my $file = File::Spec->catfile('lib', 'Simple.pm');
diff --git a/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm b/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
index 72dbee8c51c..a2ad070f651 100644
--- a/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
+++ b/gnu/usr.bin/perl/cpan/NEXT/lib/NEXT.pm
@@ -1,9 +1,12 @@
package NEXT;
-$VERSION = '0.65';
+
use Carp;
use strict;
+use warnings;
use overload ();
+our $VERSION = '0.67_01';
+
sub NEXT::ELSEWHERE::ancestors
{
my @inlist = shift;
@@ -61,17 +64,19 @@ sub NEXT::ELSEWHERE::buildAUTOLOAD
last if shift @forebears eq $caller_class
}
no strict 'refs';
+ # Use *{"..."} when first accessing the CODE slot, to make sure
+ # any typeglob stub is upgraded to a full typeglob.
@{$NEXT::NEXT{$key,$wanted_method}} =
map {
my $stash = \%{"${_}::"};
- ($stash->{$caller_method} && (*{$stash->{$caller_method}}{CODE}))
+ ($stash->{$caller_method} && (*{"${_}::$caller_method"}{CODE}))
? *{$stash->{$caller_method}}{CODE}
: () } @forebears
unless $wanted_method eq 'AUTOLOAD';
@{$NEXT::NEXT{$key,$wanted_method}} =
map {
my $stash = \%{"${_}::"};
- ($stash->{AUTOLOAD} && (*{$stash->{AUTOLOAD}}{CODE}))
+ ($stash->{AUTOLOAD} && (*{"${_}::AUTOLOAD"}{CODE}))
? "${_}::AUTOLOAD"
: () } @forebears
unless @{$NEXT::NEXT{$key,$wanted_method}||[]};
@@ -108,7 +113,8 @@ package NEXT::ACTUAL::DISTINCT; @ISA = 'NEXT'; NEXT::ELSEWHERE::buildAUTOLOAD();
package NEXT::UNSEEN::ACTUAL; @ISA = 'NEXT'; NEXT::ELSEWHERE::buildAUTOLOAD();
package NEXT::DISTINCT::ACTUAL; @ISA = 'NEXT'; NEXT::ELSEWHERE::buildAUTOLOAD();
-package EVERY;
+package
+ EVERY;
sub EVERY::ELSEWHERE::buildAUTOLOAD {
my $autoload_name = caller() . '::AUTOLOAD';
@@ -182,7 +188,8 @@ sub EVERY::ELSEWHERE::buildAUTOLOAD {
}
package EVERY::LAST; @ISA = 'EVERY'; EVERY::ELSEWHERE::buildAUTOLOAD();
-package EVERY; @ISA = 'NEXT'; EVERY::ELSEWHERE::buildAUTOLOAD();
+package
+ EVERY; @ISA = 'NEXT'; EVERY::ELSEWHERE::buildAUTOLOAD();
1;
@@ -192,48 +199,52 @@ __END__
NEXT - Provide a pseudo-class NEXT (et al) that allows method redispatch
-
=head1 SYNOPSIS
use NEXT;
- package A;
- sub A::method { print "$_[0]: A method\n"; $_[0]->NEXT::method() }
- sub A::DESTROY { print "$_[0]: A dtor\n"; $_[0]->NEXT::DESTROY() }
+ package P;
+ sub P::method { print "$_[0]: P method\n"; $_[0]->NEXT::method() }
+ sub P::DESTROY { print "$_[0]: P dtor\n"; $_[0]->NEXT::DESTROY() }
- package B;
- use base qw( A );
- sub B::AUTOLOAD { print "$_[0]: B AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
- sub B::DESTROY { print "$_[0]: B dtor\n"; $_[0]->NEXT::DESTROY() }
+ package Q;
+ use base qw( P );
+ sub Q::AUTOLOAD { print "$_[0]: Q AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
+ sub Q::DESTROY { print "$_[0]: Q dtor\n"; $_[0]->NEXT::DESTROY() }
- package C;
- sub C::method { print "$_[0]: C method\n"; $_[0]->NEXT::method() }
- sub C::AUTOLOAD { print "$_[0]: C AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
- sub C::DESTROY { print "$_[0]: C dtor\n"; $_[0]->NEXT::DESTROY() }
+ package R;
+ sub R::method { print "$_[0]: R method\n"; $_[0]->NEXT::method() }
+ sub R::AUTOLOAD { print "$_[0]: R AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
+ sub R::DESTROY { print "$_[0]: R dtor\n"; $_[0]->NEXT::DESTROY() }
- package D;
- use base qw( B C );
- sub D::method { print "$_[0]: D method\n"; $_[0]->NEXT::method() }
- sub D::AUTOLOAD { print "$_[0]: D AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
- sub D::DESTROY { print "$_[0]: D dtor\n"; $_[0]->NEXT::DESTROY() }
+ package S;
+ use base qw( Q R );
+ sub S::method { print "$_[0]: S method\n"; $_[0]->NEXT::method() }
+ sub S::AUTOLOAD { print "$_[0]: S AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
+ sub S::DESTROY { print "$_[0]: S dtor\n"; $_[0]->NEXT::DESTROY() }
package main;
- my $obj = bless {}, "D";
+ my $obj = bless {}, "S";
- $obj->method(); # Calls D::method, A::method, C::method
- $obj->missing_method(); # Calls D::AUTOLOAD, B::AUTOLOAD, C::AUTOLOAD
+ $obj->method(); # Calls S::method, P::method, R::method
+ $obj->missing_method(); # Calls S::AUTOLOAD, Q::AUTOLOAD, R::AUTOLOAD
- # Clean-up calls D::DESTROY, B::DESTROY, A::DESTROY, C::DESTROY
+ # Clean-up calls S::DESTROY, Q::DESTROY, P::DESTROY, R::DESTROY
=head1 DESCRIPTION
-NEXT.pm adds a pseudoclass named C<NEXT> to any program
+The C<NEXT> module adds a pseudoclass named C<NEXT> to any program
that uses it. If a method C<m> calls C<$self-E<gt>NEXT::m()>, the call to
C<m> is redispatched as if the calling method had not originally been found.
+B<Note:> before using this module,
+you should look at L<next::method|https://metacpan.org/pod/mro#next::method>
+in the core L<mro> module.
+C<mro> has been a core module since Perl 5.9.5.
+
In other words, a call to C<$self-E<gt>NEXT::m()> resumes the depth-first,
left-to-right search of C<$self>'s class hierarchy that resulted in the
original call to C<m>.
@@ -245,10 +256,10 @@ past the current class -- to look for a suitable method in other
ancestors of C<$self> -- whereas C<$self-E<gt>SUPER::m()> cannot.
A typical use would be in the destructors of a class hierarchy,
-as illustrated in the synopsis above. Each class in the hierarchy
+as illustrated in the SYNOPSIS above. Each class in the hierarchy
has a DESTROY method that performs some class-specific action
and then redispatches the call up the hierarchy. As a result,
-when an object of class D is destroyed, the destructors of I<all>
+when an object of class S is destroyed, the destructors of I<all>
its parent classes are called (in depth-first, left-to-right order).
Another typical use of redispatch would be in C<AUTOLOAD>'ed methods.
@@ -267,7 +278,7 @@ Note that it is a fatal error for any method (including C<AUTOLOAD>)
to attempt to redispatch any method that does not have the
same name. For example:
- sub D::oops { print "oops!\n"; $_[0]->NEXT::other_method() }
+ sub S::oops { print "oops!\n"; $_[0]->NEXT::other_method() }
=head2 Enforcing redispatch
@@ -384,7 +395,7 @@ previous example were rewritten:
E->foo();
then it would print:
-
+
called E::foo
called C::foo
called A::foo
@@ -410,7 +421,7 @@ C<NEXT::UNSEEN> instead of C<NEXT::DISTINCT>.
=head2 Invoking all versions of a method with a single call
-Yet another pseudo-class that NEXT.pm provides is C<EVERY>.
+Yet another pseudo-class that C<NEXT> provides is C<EVERY>.
Its behaviour is considerably simpler than that of the C<NEXT> family.
A call to:
@@ -540,6 +551,11 @@ behaviour simply adds its own C<Init> method (I<not> a C<new> method),
which the call to C<EVERY::LAST::Init> in the inherited constructor
then correctly picks up.
+=head1 SEE ALSO
+
+L<mro>
+(in particular L<next::method|https://metacpan.org/pod/mro#next::method>),
+which has been a core module since Perl 5.9.5.
=head1 AUTHOR
@@ -547,7 +563,7 @@ Damian Conway (damian@conway.org)
=head1 BUGS AND IRRITATIONS
-Because it's a module, not an integral part of the interpreter, NEXT.pm
+Because it's a module, not an integral part of the interpreter, C<NEXT>
has to guess where the surrounding call was found in the method
look-up sequence. In the presence of diamond inheritance patterns
it occasionally guesses wrong.
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/BadMETA.yml b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/BadMETA.yml
deleted file mode 100644
index 79fece368c9..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/BadMETA.yml
+++ /dev/null
@@ -1,24 +0,0 @@
----
-abstract: ~
-author:
- - 'Olivier Mengué'
-build_requires:
- ExtUtils::MakeMaker: 6.36
-configure_requires:
- ExtUtils::MakeMaker: 6.36
-distribution_type: module
-dynamic_config: 1
-generated_by: 'Module::Install version 1.06'
-license: perl
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
-name: Foo
-no_index:
- directory:
- - inc
-requires:
- perl: 5.005
-resources:
- license: http://dev.perl.org/licenses/
-version: 0.01
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/META-VR.json b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/META-VR.json
deleted file mode 100644
index fbe9eca82fc..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/META-VR.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "abstract" : "a set of version requirements for a CPAN dist",
- "author" : [
- "Ricardo Signes <rjbs@cpan.org>"
- ],
- "build_requires" : {
- "Test::More" : "0.88"
- },
- "configure_requires" : {
- "ExtUtils::MakeMaker" : "6.31"
- },
- "generated_by" : "Dist::Zilla version 2.100991",
- "license" : "perl",
- "meta-spec" : {
- "url" : "http://module-build.sourceforge.net/META-spec-v1.4.html",
- "version" : 1.4
- },
- "name" : "Version-Requirements",
- "recommends" : {},
- "requires" : {
- "Carp" : "0",
- "Scalar::Util" : "0",
- "version" : "0.77"
- },
- "resources" : {
- "repository" : "git://git.codesimply.com/Version-Requirements.git"
- },
- "version" : "0.101010"
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/META-VR.yml b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/META-VR.yml
deleted file mode 100644
index 56d50ddc3d4..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/META-VR.yml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-abstract: 'a set of version requirements for a CPAN dist'
-author:
- - 'Ricardo Signes <rjbs@cpan.org>'
-build_requires:
- Test::More: 0.88
-configure_requires:
- ExtUtils::MakeMaker: 6.31
-generated_by: 'Dist::Zilla version 2.100991'
-license: perl
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
-name: Version-Requirements
-recommends: {}
-requires:
- Carp: 0
- Scalar::Util: 0
- version: 0.77
-resources:
- repository: git://git.codesimply.com/Version-Requirements.git
-version: 0.101010
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/bareyaml.meta b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/bareyaml.meta
deleted file mode 100644
index 7e4f430b9c4..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/bareyaml.meta
+++ /dev/null
@@ -1,21 +0,0 @@
-abstract: 'a set of version requirements for a CPAN dist'
-author:
- - 'Ricardo Signes <rjbs@cpan.org>'
-build_requires:
- Test::More: 0.88
-configure_requires:
- ExtUtils::MakeMaker: 6.31
-generated_by: 'Dist::Zilla version 2.100991'
-license: perl
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
-name: Version-Requirements
-recommends: {}
-requires:
- Carp: 0
- Scalar::Util: 0
- version: 0.77
-resources:
- repository: git://git.codesimply.com/Version-Requirements.git
-version: 0.101010
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/json.meta b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/json.meta
deleted file mode 100644
index fbe9eca82fc..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/json.meta
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "abstract" : "a set of version requirements for a CPAN dist",
- "author" : [
- "Ricardo Signes <rjbs@cpan.org>"
- ],
- "build_requires" : {
- "Test::More" : "0.88"
- },
- "configure_requires" : {
- "ExtUtils::MakeMaker" : "6.31"
- },
- "generated_by" : "Dist::Zilla version 2.100991",
- "license" : "perl",
- "meta-spec" : {
- "url" : "http://module-build.sourceforge.net/META-spec-v1.4.html",
- "version" : 1.4
- },
- "name" : "Version-Requirements",
- "recommends" : {},
- "requires" : {
- "Carp" : "0",
- "Scalar::Util" : "0",
- "version" : "0.77"
- },
- "resources" : {
- "repository" : "git://git.codesimply.com/Version-Requirements.git"
- },
- "version" : "0.101010"
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/yaml.meta b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/yaml.meta
deleted file mode 100644
index 56d50ddc3d4..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/corpus/yaml.meta
+++ /dev/null
@@ -1,22 +0,0 @@
----
-abstract: 'a set of version requirements for a CPAN dist'
-author:
- - 'Ricardo Signes <rjbs@cpan.org>'
-build_requires:
- Test::More: 0.88
-configure_requires:
- ExtUtils::MakeMaker: 6.31
-generated_by: 'Dist::Zilla version 2.100991'
-license: perl
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
-name: Version-Requirements
-recommends: {}
-requires:
- Carp: 0
- Scalar::Util: 0
- version: 0.77
-resources:
- repository: git://git.codesimply.com/Version-Requirements.git
-version: 0.101010
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm
deleted file mode 100644
index 56eecb45290..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm
+++ /dev/null
@@ -1,352 +0,0 @@
-use 5.008001;
-use strict;
-package Parse::CPAN::Meta;
-# ABSTRACT: Parse META.yml and META.json CPAN metadata files
-
-our $VERSION = '1.4417_001';
-
-use Exporter;
-use Carp 'croak';
-
-our @ISA = qw/Exporter/;
-our @EXPORT_OK = qw/Load LoadFile/;
-
-sub load_file {
- my ($class, $filename) = @_;
-
- my $meta = _slurp($filename);
-
- if ($filename =~ /\.ya?ml$/) {
- return $class->load_yaml_string($meta);
- }
- elsif ($filename =~ /\.json$/) {
- return $class->load_json_string($meta);
- }
- else {
- $class->load_string($meta); # try to detect yaml/json
- }
-}
-
-sub load_string {
- my ($class, $string) = @_;
- if ( $string =~ /^---/ ) { # looks like YAML
- return $class->load_yaml_string($string);
- }
- elsif ( $string =~ /^\s*\{/ ) { # looks like JSON
- return $class->load_json_string($string);
- }
- else { # maybe doc-marker-free YAML
- return $class->load_yaml_string($string);
- }
-}
-
-sub load_yaml_string {
- my ($class, $string) = @_;
- my $backend = $class->yaml_backend();
- my $data = eval { no strict 'refs'; &{"$backend\::Load"}($string) };
- croak $@ if $@;
- return $data || {}; # in case document was valid but empty
-}
-
-sub load_json_string {
- my ($class, $string) = @_;
- my $data = eval { $class->json_backend()->new->decode($string) };
- croak $@ if $@;
- return $data || {};
-}
-
-sub yaml_backend {
- if ($ENV{PERL_CORE} or not defined $ENV{PERL_YAML_BACKEND} ) {
- _can_load( 'CPAN::Meta::YAML', 0.011 )
- or croak "CPAN::Meta::YAML 0.011 is not available\n";
- return "CPAN::Meta::YAML";
- }
- else {
- my $backend = $ENV{PERL_YAML_BACKEND};
- _can_load( $backend )
- or croak "Could not load PERL_YAML_BACKEND '$backend'\n";
- $backend->can("Load")
- or croak "PERL_YAML_BACKEND '$backend' does not implement Load()\n";
- return $backend;
- }
-}
-
-sub json_backend {
- if ($ENV{PERL_CORE} or ! $ENV{PERL_JSON_BACKEND} or $ENV{PERL_JSON_BACKEND} eq 'JSON::PP') {
- _can_load( 'JSON::PP' => 2.27103 )
- or croak "JSON::PP 2.27103 is not available\n";
- return 'JSON::PP';
- }
- else {
- _can_load( 'JSON' => 2.5 )
- or croak "JSON 2.5 is required for " .
- "\$ENV{PERL_JSON_BACKEND} = '$ENV{PERL_JSON_BACKEND}'\n";
- return "JSON";
- }
-}
-
-sub _slurp {
- require Encode;
- open my $fh, "<:raw", "$_[0]" ## no critic
- or die "can't open $_[0] for reading: $!";
- my $content = do { local $/; <$fh> };
- $content = Encode::decode('UTF-8', $content, Encode::PERLQQ());
- return $content;
-}
-
-sub _can_load {
- my ($module, $version) = @_;
- (my $file = $module) =~ s{::}{/}g;
- $file .= ".pm";
- return 1 if $INC{$file};
- return 0 if exists $INC{$file}; # prior load failed
- eval { require $file; 1 }
- or return 0;
- if ( defined $version ) {
- eval { $module->VERSION($version); 1 }
- or return 0;
- }
- return 1;
-}
-
-# Kept for backwards compatibility only
-# Create an object from a file
-sub LoadFile ($) { ## no critic
- return Load(_slurp(shift));
-}
-
-# Parse a document from a string.
-sub Load ($) { ## no critic
- require CPAN::Meta::YAML;
- my $object = eval { CPAN::Meta::YAML::Load(shift) };
- croak $@ if $@;
- return $object;
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Parse::CPAN::Meta - Parse META.yml and META.json CPAN metadata files
-
-=head1 VERSION
-
-version 1.4417
-
-=head1 SYNOPSIS
-
- #############################################
- # In your file
-
- ---
- name: My-Distribution
- version: 1.23
- resources:
- homepage: "http://example.com/dist/My-Distribution"
-
-
- #############################################
- # In your program
-
- use Parse::CPAN::Meta;
-
- my $distmeta = Parse::CPAN::Meta->load_file('META.yml');
-
- # Reading properties
- my $name = $distmeta->{name};
- my $version = $distmeta->{version};
- my $homepage = $distmeta->{resources}{homepage};
-
-=head1 DESCRIPTION
-
-B<Parse::CPAN::Meta> is a parser for F<META.json> and F<META.yml> files, using
-L<JSON::PP> and/or L<CPAN::Meta::YAML>.
-
-B<Parse::CPAN::Meta> provides three methods: C<load_file>, C<load_json_string>,
-and C<load_yaml_string>. These will read and deserialize CPAN metafiles, and
-are described below in detail.
-
-B<Parse::CPAN::Meta> provides a legacy API of only two functions,
-based on the YAML functions of the same name. Wherever possible,
-identical calling semantics are used. These may only be used with YAML sources.
-
-All error reporting is done with exceptions (die'ing).
-
-Note that META files are expected to be in UTF-8 encoding, only. When
-converted string data, it must first be decoded from UTF-8.
-
-=begin Pod::Coverage
-
-
-
-
-=end Pod::Coverage
-
-=head1 METHODS
-
-=head2 load_file
-
- my $metadata_structure = Parse::CPAN::Meta->load_file('META.json');
-
- my $metadata_structure = Parse::CPAN::Meta->load_file('META.yml');
-
-This method will read the named file and deserialize it to a data structure,
-determining whether it should be JSON or YAML based on the filename.
-The file will be read using the ":utf8" IO layer.
-
-=head2 load_yaml_string
-
- my $metadata_structure = Parse::CPAN::Meta->load_yaml_string($yaml_string);
-
-This method deserializes the given string of YAML and returns the first
-document in it. (CPAN metadata files should always have only one document.)
-If the source was UTF-8 encoded, the string must be decoded before calling
-C<load_yaml_string>.
-
-=head2 load_json_string
-
- my $metadata_structure = Parse::CPAN::Meta->load_json_string($json_string);
-
-This method deserializes the given string of JSON and the result.
-If the source was UTF-8 encoded, the string must be decoded before calling
-C<load_json_string>.
-
-=head2 load_string
-
- my $metadata_structure = Parse::CPAN::Meta->load_string($some_string);
-
-If you don't know whether a string contains YAML or JSON data, this method
-will use some heuristics and guess. If it can't tell, it assumes YAML.
-
-=head2 yaml_backend
-
- my $backend = Parse::CPAN::Meta->yaml_backend;
-
-Returns the module name of the YAML serializer. See L</ENVIRONMENT>
-for details.
-
-=head2 json_backend
-
- my $backend = Parse::CPAN::Meta->json_backend;
-
-Returns the module name of the JSON serializer. This will either
-be L<JSON::PP> or L<JSON>. Even if C<PERL_JSON_BACKEND> is set,
-this will return L<JSON> as further delegation is handled by
-the L<JSON> module. See L</ENVIRONMENT> for details.
-
-=head1 FUNCTIONS
-
-For maintenance clarity, no functions are exported by default. These functions
-are available for backwards compatibility only and are best avoided in favor of
-C<load_file>.
-
-=head2 Load
-
- my @yaml = Parse::CPAN::Meta::Load( $string );
-
-Parses a string containing a valid YAML stream into a list of Perl data
-structures.
-
-=head2 LoadFile
-
- my @yaml = Parse::CPAN::Meta::LoadFile( 'META.yml' );
-
-Reads the YAML stream from a file instead of a string.
-
-=head1 ENVIRONMENT
-
-=head2 PERL_JSON_BACKEND
-
-By default, L<JSON::PP> will be used for deserializing JSON data. If the
-C<PERL_JSON_BACKEND> environment variable exists, is true and is not
-"JSON::PP", then the L<JSON> module (version 2.5 or greater) will be loaded and
-used to interpret C<PERL_JSON_BACKEND>. If L<JSON> is not installed or is too
-old, an exception will be thrown.
-
-=head2 PERL_YAML_BACKEND
-
-By default, L<CPAN::Meta::YAML> will be used for deserializing YAML data. If
-the C<PERL_YAML_BACKEND> environment variable is defined, then it is interpreted
-as a module to use for deserialization. The given module must be installed,
-must load correctly and must implement the C<Load()> function or an exception
-will be thrown.
-
-=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
-
-=head1 SUPPORT
-
-=head2 Bugs / Feature Requests
-
-Please report any bugs or feature requests through the issue tracker
-at L<https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta/issues>.
-You will be notified automatically of any progress on your issue.
-
-=head2 Source Code
-
-This is open source software. The code repository is available for
-public review and contribution under the terms of the license.
-
-L<https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta>
-
- git clone https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta.git
-
-=head1 AUTHORS
-
-=over 4
-
-=item *
-
-Adam Kennedy <adamk@cpan.org>
-
-=item *
-
-David Golden <dagolden@cpan.org>
-
-=back
-
-=head1 CONTRIBUTORS
-
-=for stopwords Graham Knop Joshua ben Jore Karen Etheridge Neil Bowers Ricardo Signes Steffen Mueller
-
-=over 4
-
-=item *
-
-Graham Knop <haarg@haarg.org>
-
-=item *
-
-Joshua ben Jore <jjore@cpan.org>
-
-=item *
-
-Karen Etheridge <ether@cpan.org>
-
-=item *
-
-Neil Bowers <neil@bowers.com>
-
-=item *
-
-Ricardo Signes <rjbs@cpan.org>
-
-=item *
-
-Steffen Mueller <smueller@cpan.org>
-
-=back
-
-=head1 COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2015 by Adam Kennedy and Contributors.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-=cut
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/02_api.t b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/02_api.t
deleted file mode 100644
index d17fb801f71..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/02_api.t
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/perl
-
-delete $ENV{PERL_YAML_BACKEND};
-delete $ENV{PERL_JSON_BACKEND};
-
-# Testing of a known-bad file from an editor
-
-use strict;
-BEGIN {
- $| = 1;
- $^W = 1;
-}
-
-use lib 't/lib';
-use File::Spec::Functions ':ALL';
-use Parse::CPAN::Meta;
-use Parse::CPAN::Meta::Test;
-# use Test::More skip_all => 'Temporarily ignoring failing test';
-use Test::More 'no_plan';
-
-#####################################################################
-# Testing that Perl::Smith config files work
-
-my $want = {
- "abstract" => "a set of version requirements for a CPAN dist",
- "author" => [ 'Ricardo Signes <rjbs@cpan.org>' ],
- "build_requires" => {
- "Test::More" => "0.88"
- },
- "configure_requires" => {
- "ExtUtils::MakeMaker" => "6.31"
- },
- "generated_by" => "Dist::Zilla version 2.100991",
- "license" => "perl",
- "meta-spec" => {
- "url" => "http://module-build.sourceforge.net/META-spec-v1.4.html",
- "version" => 1.4
- },
- "name" => "Version-Requirements",
- "recommends" => {},
- "requires" => {
- "Carp" => "0",
- "Scalar::Util" => "0",
- "version" => "0.77"
- },
- "resources" => {
- "repository" => "git://git.codesimply.com/Version-Requirements.git"
- },
- "version" => "0.101010",
-};
-
-my $meta_json = catfile( test_data_directory(), 'META-VR.json' );
-my $meta_yaml = catfile( test_data_directory(), 'META-VR.yml' );
-my $yaml_meta = catfile( test_data_directory(), 'yaml.meta' );
-my $json_meta = catfile( test_data_directory(), 'json.meta' );
-my $bare_yaml_meta = catfile( test_data_directory(), 'bareyaml.meta' );
-my $bad_yaml_meta = catfile( test_data_directory(), 'BadMETA.yml' );
-
-### YAML tests
-{
- local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML
-
- is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML');
- my $from_yaml = Parse::CPAN::Meta->load_file( $meta_yaml );
- is_deeply($from_yaml, $want, "load from YAML file results in expected data");
-}
-
-{
- local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML
-
- note '';
- is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML');
- my $from_yaml = Parse::CPAN::Meta->load_file( $yaml_meta );
- is_deeply($from_yaml, $want, "load from YAML .meta file results in expected data");
-}
-
-{
- local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML
-
- note '';
- is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML');
- my $from_yaml = Parse::CPAN::Meta->load_file( $bare_yaml_meta );
- is_deeply($from_yaml, $want, "load from bare YAML .meta file results in expected data");
-}
-
-{
- local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML
-
- note '';
- is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML');
- my $yaml = load_ok( 'META-VR.yml', $meta_yaml, 100);
- my $from_yaml = Parse::CPAN::Meta->load_yaml_string( $yaml );
- is_deeply($from_yaml, $want, "load from YAML str results in expected data");
-}
-
-{
- local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML
-
- note '';
- is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML');
- my @yaml = Parse::CPAN::Meta::LoadFile( $bad_yaml_meta );
- is($yaml[0]{author}[0], 'Olivier Mengu\xE9', "Bad UTF-8 is replaced");
-}
-
-
-SKIP: {
- note '';
- skip 'these tests are for cpan builds only', 2 if $ENV{PERL_CORE};
- skip "YAML module not installed", 2
- unless eval "require YAML; 1";
- local $ENV{PERL_YAML_BACKEND} = 'YAML';
-
- is(Parse::CPAN::Meta->yaml_backend(), 'YAML', 'yaml_backend(): YAML');
- my $yaml = load_ok( 'META-VR.yml', $meta_yaml, 100);
- my $from_yaml = Parse::CPAN::Meta->load_yaml_string( $yaml );
- is_deeply($from_yaml, $want, "load_yaml_string using PERL_YAML_BACKEND");
-}
-
-### JSON tests
-{
- # JSON tests with JSON::PP
- local $ENV{PERL_JSON_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get JSON::PP
-
- note '';
- is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP');
- my $from_json = Parse::CPAN::Meta->load_file( $meta_json );
- is_deeply($from_json, $want, "load from JSON file results in expected data");
-}
-
-{
- # JSON tests with JSON::PP
- local $ENV{PERL_JSON_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get JSON::PP
-
- note '';
- is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP');
- my $from_json = Parse::CPAN::Meta->load_file( $json_meta );
- is_deeply($from_json, $want, "load from JSON .meta file results in expected data");
-}
-
-{
- # JSON tests with JSON::PP
- local $ENV{PERL_JSON_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get JSON::PP
-
- note '';
- is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP');
- my $json = load_ok( 'META-VR.json', $meta_json, 100);
- my $from_json = Parse::CPAN::Meta->load_json_string( $json );
- is_deeply($from_json, $want, "load from JSON str results in expected data");
-}
-
-{
- # JSON tests with JSON::PP, take 2
- local $ENV{PERL_JSON_BACKEND} = 0 if not $ENV{PERL_CORE}; # request JSON::PP
-
- note '';
- is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP');
- my $json = load_ok( 'META-VR.json', $meta_json, 100);
- my $from_json = Parse::CPAN::Meta->load_json_string( $json );
- is_deeply($from_json, $want, "load_json_string with PERL_JSON_BACKEND = 0");
-}
-
-{
- # JSON tests with JSON::PP, take 3
- local $ENV{PERL_JSON_BACKEND} = 'JSON::PP' if not $ENV{PERL_CORE}; # request JSON::PP
-
- note '';
- is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP');
- my $json = load_ok( 'META-VR.json', $meta_json, 100);
- my $from_json = Parse::CPAN::Meta->load_json_string( $json );
- is_deeply($from_json, $want, "load_json_string with PERL_JSON_BACKEND = 'JSON::PP'");
-}
-
-SKIP: {
- note '';
- skip 'these tests are for cpan builds only', 2 if $ENV{PERL_CORE};
- skip "JSON module version 2.5 not installed", 2
- unless eval "require JSON; JSON->VERSION(2.5); 1";
- local $ENV{PERL_JSON_BACKEND} = 1;
-
- is(Parse::CPAN::Meta->json_backend(), 'JSON', 'json_backend(): JSON');
- my $json = load_ok( 'META-VR.json', $meta_json, 100);
- my $from_json = Parse::CPAN::Meta->load_json_string( $json );
- is_deeply($from_json, $want, "load_json_string with PERL_JSON_BACKEND = 1");
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/03_functions.t b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/03_functions.t
deleted file mode 100644
index 5f6d1d8732e..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/03_functions.t
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/perl
-
-delete $ENV{PERL_YAML_BACKEND};
-delete $ENV{PERL_JSON_BACKEND};
-
-# Testing of basic document structures
-
-use strict;
-BEGIN {
- $| = 1;
- $^W = 1;
-}
-
-use Test::More tests => 2;
-use Parse::CPAN::Meta ();
-
-my $one = <<'END_YAML';
----
-- foo
-END_YAML
-
-my $two = <<'END_YAML';
----
-- foo
----
-- bar
-END_YAML
-
-my $one_scalar_tiny = Parse::CPAN::Meta::Load( $one );
-my $two_scalar_tiny = Parse::CPAN::Meta::Load( $two );
-
-is_deeply( $one_scalar_tiny, [ 'foo' ], 'one: Parsed correctly' );
-is_deeply( $two_scalar_tiny, [ 'bar' ], 'two: Parsed correctly' );
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/04_export.t b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/04_export.t
deleted file mode 100644
index b4766aa5582..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/04_export.t
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/perl
-
-delete $ENV{PERL_YAML_BACKEND};
-delete $ENV{PERL_JSON_BACKEND};
-
-# Testing of basic document structures
-
-use strict;
-BEGIN {
- $| = 1;
- $^W = 1;
-}
-
-use Test::More tests => 4;
-use Parse::CPAN::Meta;
-
-
-
-ok not(defined &main::Load), 'Load is not exported';
-ok not(defined &main::Dump), 'Dump is not exported';
-ok not(defined &main::LoadFile), 'LoadFile is not exported';
-ok not(defined &main::DumpFile), 'DumpFile is not exported';
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/05_errors.t b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/05_errors.t
deleted file mode 100644
index 671d73bce07..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/05_errors.t
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/perl
-
-delete $ENV{PERL_YAML_BACKEND};
-delete $ENV{PERL_JSON_BACKEND};
-
-# Testing of basic document structures
-
-use strict;
-BEGIN {
- $| = 1;
- $^W = 1;
-}
-
-use Test::More tests => 1;
-use Parse::CPAN::Meta ();
-
-my $one = <<'END_YAML';
----
-- foo: - bar
-END_YAML
-
-my $one_scalar_tiny = eval { Parse::CPAN::Meta->load_yaml_string( $one ) };
-like( $@, '/illegal characters/', "error causes exception");
-
diff --git a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm b/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm
deleted file mode 100644
index b6bb4f74553..00000000000
--- a/gnu/usr.bin/perl/cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm
+++ /dev/null
@@ -1,82 +0,0 @@
-package Parse::CPAN::Meta::Test;
-
-use strict;
-use Test::More ();
-use Parse::CPAN::Meta;
-use File::Spec;
-
-use vars qw{@ISA @EXPORT};
-BEGIN {
- require Exporter;
- @ISA = qw{ Exporter };
- @EXPORT = qw{
- tests yaml_ok yaml_error slurp load_ok
- test_data_directory
- };
-}
-
-sub test_data_directory {
- return( "corpus" );
-}
-
-# 22 tests per call to yaml_ok
-# 4 tests per call to load_ok
-sub tests {
- return ( tests => count(@_) );
-}
-
-sub count {
- my $yaml_ok = shift || 0;
- my $load_ok = shift || 0;
- my $single = shift || 0;
- my $count = $yaml_ok * 3 + $load_ok * 4 + $single;
- return $count;
-}
-
-sub yaml_ok {
- my $string = shift;
- my $array = shift;
- my $name = shift || 'unnamed';
-
- # Does the string parse to the structure
- my $yaml_copy = $string;
- my @yaml = eval { Parse::CPAN::Meta::Load( $yaml_copy ); };
- Test::More::is( $@, '', "$name: Parse::CPAN::Meta parses without error" );
- Test::More::is( $yaml_copy, $string, "$name: Parse::CPAN::Meta does not modify the input string" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 1 ) if $@;
- Test::More::is_deeply( \@yaml, $array, "$name: Parse::CPAN::Meta parses correctly" );
- }
-
- # Return true as a convenience
- return 1;
-}
-
-sub yaml_error {
- my $string = shift;
- my $yaml = eval { Parse::CPAN::Meta::Load( $string ); };
- Test::More::like( $@, qr/$_[0]/, "CPAN::Meta::YAML throws expected error" );
-}
-
-sub slurp {
- my $file = shift;
- local $/ = undef;
- open( FILE, " $file" ) or die "open($file) failed: $!";
- my $source = <FILE>;
- close( FILE ) or die "close($file) failed: $!";
- $source;
-}
-
-sub load_ok {
- my $name = shift;
- my $file = shift;
- my $size = shift;
- Test::More::ok( -f $file, "Found $name" ) or Test::More::diag("Searched at '$file'");
- Test::More::ok( -r $file, "Can read $name" );
- my $content = slurp( $file );
- Test::More::ok( (defined $content and ! ref $content), "Loaded $name" );
- Test::More::ok( ($size < length $content), "Content of $name larger than $size bytes" );
- return $content;
-}
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/Perl-OSType/lib/Perl/OSType.pm b/gnu/usr.bin/perl/cpan/Perl-OSType/lib/Perl/OSType.pm
index 8a915771bd7..a72dd024b57 100644
--- a/gnu/usr.bin/perl/cpan/Perl-OSType/lib/Perl/OSType.pm
+++ b/gnu/usr.bin/perl/cpan/Perl-OSType/lib/Perl/OSType.pm
@@ -4,7 +4,7 @@ use warnings;
package Perl::OSType;
# ABSTRACT: Map Perl operating system names to generic types
-our $VERSION = '1.009';
+our $VERSION = '1.010';
require Exporter;
our @ISA = qw(Exporter);
@@ -47,6 +47,7 @@ my %OSTYPES = qw(
solaris Unix
sunos Unix
cygwin Unix
+ msys Unix
os2 Unix
interix Unix
gnu Unix
@@ -96,7 +97,7 @@ Perl::OSType - Map Perl operating system names to generic types
=head1 VERSION
-version 1.009
+version 1.010
=head1 SYNOPSIS
@@ -175,7 +176,7 @@ David Golden <dagolden@cpan.org>
=head1 CONTRIBUTORS
-=for stopwords Chris 'BinGOs' Williams Jonas B. Nielsen Owain G. Ainsworth Paul Green Piotr Roszatycki
+=for stopwords Chris 'BinGOs' Williams David Golden Graham Ollis Jonas B. Nielsen Owain G. Ainsworth Paul Green Piotr Roszatycki
=over 4
@@ -185,6 +186,14 @@ Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
=item *
+David Golden <xdg@xdg.me>
+
+=item *
+
+Graham Ollis <plicease@cpan.org>
+
+=item *
+
Jonas B. Nielsen <jonasbn@hoarfrost.local>
=item *
@@ -203,7 +212,7 @@ Piotr Roszatycki <piotr.roszatycki@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2015 by David Golden.
+This software is copyright (c) 2016 by David Golden.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
index 03252e93c71..3db4d903cd6 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Parser/lib/Pod/PlainText.pm
@@ -139,19 +139,6 @@ sub initialize {
return $self->SUPER::initialize;
}
-# pod2text and pod2man re-use the same parser on a list of files,
-# and will lose some information if some intermediate documents produce
-# unbalanced calls to begin_cmd/end_cmd.
-# via r1.4 of OpenBSD src/gnu/usr.bin/perl/lib/Pod/PlainText.pm
-sub begin_pod {
- my $self = shift;
-
- $$self{VERBATIM} = 0;
- $$self{EXCLUDE} = 0;
-
- return $self->SUPER::begin_pod(@_);
-}
-
############################################################################
# Core overrides
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
index 787353ba588..bb6ffc83efb 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
@@ -12,8 +12,7 @@ use File::Spec::Functions qw(catfile catdir splitdir);
use vars qw($VERSION @Pagers $Bindir $Pod2man
$Temp_Files_Created $Temp_File_Lifetime
);
-$VERSION = '3.25_03'; # patched in perl5.git
-$VERSION =~ s/_//;
+$VERSION = '3.2801';
#..........................................................................
@@ -285,7 +284,8 @@ Options:
-m Display module's file in its entirety
-n Specify replacement for groff
-l Display the module's file name
- -F Arguments are file names, not modules
+ -U Don't attempt to drop privs for security
+ -F Arguments are file names, not modules (implies -U)
-D Verbosely describe what's going on
-T Send output to STDOUT without any pager
-d output_filename_to_send_to
@@ -393,7 +393,7 @@ sub usage_brief {
my $program_name = $self->program_name;
CORE::die( <<"EOUSAGE" );
-Usage: $program_name [-hVriDtumFXlT] [-n nroffer_program]
+Usage: $program_name [-hVriDtumUFXlT] [-n nroffer_program]
[-d output_filename] [-o output_format] [-M FormatterModule]
[-w formatter_option:option_value] [-L translation_code]
PageName|ModuleName|ProgramName
@@ -486,10 +486,6 @@ sub init_formatter_class_list {
$self->opt_M_with('Pod::Perldoc::ToPod'); # the always-there fallthru
$self->opt_o_with('text');
- $self->opt_o_with('term') unless $self->is_mswin32 || $self->is_dos || $self->is_amigaos
- || !($ENV{TERM} && (
- ($ENV{TERM} || '') !~ /dumb|emacs|none|unknown/i
- ));
return;
}
@@ -521,7 +517,7 @@ sub process {
$self->options_reading;
$self->pagers_guessing;
$self->aside(sprintf "$0 => %s v%s\n", ref($self), $self->VERSION);
- $self->drop_privs_maybe unless $self->opt_U;
+ $self->drop_privs_maybe unless ($self->opt_U || $self->opt_F);
$self->options_processing;
# Hm, we have @pages and @found, but we only really act on one
@@ -850,8 +846,11 @@ sub grand_search_init {
=~ s/\.P(?:[ML]|OD)\z//;
}
else {
- print STDERR "No " .
+ print STDERR "No " .
($self->opt_m ? "module" : "documentation") . " found for \"$_\".\n";
+ if ( /^https/ ) {
+ print STDERR "You may need an SSL library (such as IO::Socket::SSL) for that URL.\n";
+ }
}
next;
}
@@ -1326,7 +1325,7 @@ sub search_perlfunc {
local $_;
while (<$fh>) {
/^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
- last if /^=head2 $re/;
+ last if /^=head2 (?:$re|Alphabetical Listing of Perl Functions)/;
}
# Look for our function
@@ -1360,7 +1359,7 @@ sub search_perlfunc {
last if $found > 1 and $inlist < 2;
}
}
- elsif (/^=item/) {
+ elsif (/^=item|^=back/) {
last if $found > 1 and $inlist < 2;
}
elsif ($found and /^X<[^>]+>/) {
@@ -1669,9 +1668,9 @@ sub pagers_guessing {
push @pagers, qw( less.exe more.com< );
unshift @pagers, $ENV{PAGER} if $ENV{PAGER};
}
- elsif ( $self->is_amigaos) {
- push @pagers, qw( /SYS/Utilities/MultiView /SYS/Utilities/More /C/TYPE );
- unshift @pagers, "$ENV{PAGER}" if $ENV{PAGER};
+ elsif ( $self->is_amigaos) {
+ push @pagers, qw( /SYS/Utilities/MultiView /SYS/Utilities/More /C/TYPE );
+ unshift @pagers, "$ENV{PAGER}" if $ENV{PAGER};
}
else {
if ($self->is_os2) {
@@ -1696,7 +1695,7 @@ sub pagers_guessing {
unshift @pagers, "$ENV{PERLDOC_PAGER} <" if $ENV{PERLDOC_PAGER};
}
- $self->aside("Pagers: ", @pagers);
+ $self->aside("Pagers: ", (join ", ", @pagers));
return;
}
@@ -1923,19 +1922,16 @@ sub page { # apply a pager to the output file
# many many corners of the OS don't like it. So we
# have to force it to be "\" to make everyone happy.
- # if we are on an amiga convert unix path to an amiga one
- $output =~ s/^\/(.*)\/(.*)/$1:$2/ if $self->is_amigaos;
+ # if we are on an amiga convert unix path to an amiga one
+ $output =~ s/^\/(.*)\/(.*)/$1:$2/ if $self->is_amigaos;
foreach my $pager (@pagers) {
$self->aside("About to try calling $pager $output\n");
if ($self->is_vms) {
last if system("$pager $output") == 0;
- } elsif($self->is_amigaos) {
+ } elsif($self->is_amigaos) {
last if system($pager, $output) == 0;
} else {
- # fix visible escape codes in ToTerm output
- # https://bugs.debian.org/758689
- local $ENV{LESS} = defined $ENV{LESS} ? "$ENV{LESS} -R" : "-R";
last if system("$pager \"$output\"") == 0;
}
}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/BaseTo.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/BaseTo.pm
index 304da44ede2..37f651047d6 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/BaseTo.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/BaseTo.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use Carp qw(croak carp);
use Config qw(%Config);
@@ -33,6 +33,7 @@ BEGIN {
*is_linux = $^O eq 'linux' ? \&TRUE : \&FALSE unless defined &is_linux;
*is_hpux = $^O =~ m/hpux/ ? \&TRUE : \&FALSE unless defined &is_hpux;
*is_openbsd = $^O =~ m/openbsd/ ? \&TRUE : \&FALSE unless defined &is_openbsd;
+ *is_freebsd = $^O =~ m/freebsd/ ? \&TRUE : \&FALSE unless defined &is_freebsd;
*is_bitrig = $^O =~ m/bitrig/ ? \&TRUE : \&FALSE unless defined &is_bitrig;
}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/GetOptsOO.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/GetOptsOO.pm
index 71fcc7bc9a2..afa2574ec7e 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/GetOptsOO.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/GetOptsOO.pm
@@ -2,7 +2,7 @@ package Pod::Perldoc::GetOptsOO;
use strict;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
BEGIN { # Make a DEBUG constant ASAP
*DEBUG = defined( &Pod::Perldoc::DEBUG )
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToANSI.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToANSI.pm
index 26a11d3c809..8217c7b1bc4 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToANSI.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToANSI.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
sub is_pageable { 1 }
sub write_with_binmode { 0 }
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToChecker.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToChecker.pm
index 3d161acf51c..a6dbbe3f033 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToChecker.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToChecker.pm
@@ -4,7 +4,7 @@ use warnings;
use vars qw(@ISA);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
# Pick our superclass...
#
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
index e22e05044d1..bfcb5c40ee6 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
@@ -5,7 +5,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use File::Spec::Functions qw(catfile);
use Pod::Man 2.18;
@@ -63,7 +63,7 @@ sub init {
sub _roffer_candidates {
my( $self ) = @_;
- if( $self->is_openbsd || $self->is_bitrig ) { qw( mandoc groff nroff ) }
+ if( $self->is_openbsd || $self->is_freebsd || $self->is_bitrig ) { qw( mandoc groff nroff ) }
else { qw( groff nroff mandoc ) }
}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToNroff.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToNroff.pm
index ac4a8aa17d4..a52f6160192 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToNroff.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToNroff.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
# This is unlike ToMan.pm in that it emits the raw nroff source!
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToPod.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToPod.pm
index 8433e8ca409..825a1caaf5b 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToPod.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToPod.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
sub is_pageable { 1 }
sub write_with_binmode { 0 }
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToRtf.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToRtf.pm
index 81f019f8a20..d084816cab2 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToRtf.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToRtf.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw( Pod::Simple::RTF );
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
sub is_pageable { 0 }
sub write_with_binmode { 0 }
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTerm.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTerm.pm
index e97a775e10e..9501d6310e7 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTerm.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTerm.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use parent qw(Pod::Perldoc::BaseTo);
@@ -26,6 +26,34 @@ sub width {
$self->_get_default_width;
}
+sub pager_configuration {
+ my($self, $pager, $perldoc) = @_;
+
+ # do not modify anything on Windows or DOS
+ return if ( $perldoc->is_mswin32 || $perldoc->is_dos );
+
+ if ( $pager =~ /less/ ) {
+ $self->_maybe_modify_environment('LESS');
+ }
+ elsif ( $pager =~ /more/ ) {
+ $self->_maybe_modify_environment('MORE');
+ }
+
+ return;
+}
+
+sub _maybe_modify_environment {
+ my($self, $name) = @_;
+
+ if ( ! defined $ENV{$name} ) {
+ $ENV{$name} = "-R";
+ }
+
+ # if the environment is set, don't modify
+ # anything
+
+}
+
sub _get_stty { `stty -a` }
sub _get_columns_from_stty {
@@ -89,7 +117,7 @@ sub parse_from_file {
=head1 NAME
-Pod::Perldoc::ToTerm - render Pod with terminal escapes
+Pod::Perldoc::ToTerm - render Pod with terminal escapes
=head1 SYNOPSIS
@@ -107,6 +135,14 @@ For example:
perldoc -o term -w indent:5 Some::Modulename
+=head1 PAGER FORMATTING
+
+Depending on the platform, and because this class emits terminal escapes it
+will attempt to set the C<-R> flag on your pager by injecting the flag into
+your environment variable for C<less> or C<more>.
+
+On Windows and DOS, this class will not modify any environment variables.
+
=head1 CAVEAT
This module may change to use a different text formatter class in the
@@ -118,7 +154,7 @@ L<Pod::Text>, L<Pod::Text::Termcap>, L<Pod::Perldoc>
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2011 Mark Allen.
+Copyright (c) 2017 Mark Allen.
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToText.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToText.pm
index dbd47438d3a..99ab66c3048 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToText.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToText.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use parent qw(Pod::Perldoc::BaseTo);
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTk.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTk.pm
index 40b51c5b438..6ca7542c7af 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTk.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTk.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use parent qw(Pod::Perldoc::BaseTo);
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToXml.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToXml.pm
index 9da514f7f61..0161c048a9c 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToXml.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToXml.pm
@@ -6,7 +6,7 @@ use vars qw($VERSION);
use parent qw( Pod::Simple::XMLOutStream );
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
sub is_pageable { 0 }
sub write_with_binmode { 0 }
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/t/load.t b/gnu/usr.bin/perl/cpan/Pod-Perldoc/t/load.t
deleted file mode 100644
index 936f8a4d211..00000000000
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/t/load.t
+++ /dev/null
@@ -1,23 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-my @classes = ('Pod::Perldoc', map { "Pod::Perldoc::$_" } qw(
- BaseTo ToChecker ToNroff ToRtf
- GetOptsOO ToMan ToPod ToText ToXml
- ToANSI ToTerm
-) );
-
-if( eval { require Tk; require Tk::Pod; 1 } ) { push @classes, 'Pod::Perldoc::ToTk' }
-else {
- note "Skip testing Pod::Perldoc::ToTk because there's no Tk";
- }
-
-plan tests => scalar @classes;
-
-foreach my $class ( @classes ) {
- require_ok( $class );
- my $version = do { no strict 'refs'; ${ '$' . $class . '::VERSION' } };
- note( "$class $version" ) if defined $version
- }
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm
index d8521b2e8be..20924153b65 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple.pm
@@ -18,7 +18,7 @@ use vars qw(
);
@ISA = ('Pod::Simple::BlackBox');
-$VERSION = '3.32';
+$VERSION = '3.35';
@Known_formatting_codes = qw(I B C L E F S X Z);
%Known_formatting_codes = map(($_=>1), @Known_formatting_codes);
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm
index 7021e6c9f15..9fe3f702ef9 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm
@@ -22,7 +22,7 @@ use integer; # vroom!
use strict;
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
#use constant DEBUG => 7;
BEGIN {
require Pod::Simple;
@@ -198,7 +198,12 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines)
# On Perls that have this function, we can see if the sequence is
# valid UTF-8 or not.
- if (! utf8::decode($non_ascii_seq)) {
+ my $is_utf8;
+ {
+ no warnings 'utf8';
+ $is_utf8 = utf8::decode($non_ascii_seq);
+ }
+ if (! $is_utf8) {
$encoding = 'CP1252';
goto guessed;
}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm
index a32d8b813c2..83415f8e25e 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Checker.pm
@@ -9,7 +9,7 @@ use Carp ();
use Pod::Simple::Methody ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm
index 603d4a5b2d0..428cc723594 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Debug.pm
@@ -2,7 +2,7 @@ require 5;
package Pod::Simple::Debug;
use strict;
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
sub import {
my($value,$variable);
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm
index a2325626f08..71bef5070be 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsText.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsText;
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm
index bd3919852c7..9d84878cb78 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/DumpAsXML.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsXML;
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm
index 9d8f978eea1..9cdbed217e5 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTML.pm
@@ -9,7 +9,7 @@ use vars qw(
$Doctype_decl $Content_decl
);
@ISA = ('Pod::Simple::PullParser');
-$VERSION = '3.32';
+$VERSION = '3.35';
BEGIN {
if(defined &DEBUG) { } # no-op
elsif( defined &Pod::Simple::DEBUG ) { *DEBUG = \&Pod::Simple::DEBUG }
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm
index 5758645073a..661266d0de4 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/HTMLBatch.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw( $VERSION $HTML_RENDER_CLASS $HTML_EXTENSION
$CSS $JAVASCRIPT $SLEEPY $SEARCH_CLASS @ISA
);
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = (); # Yup, we're NOT a subclass of Pod::Simple::HTML!
# TODO: nocontents stylesheets. Strike some of the color variations?
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm
index 0d487313b2d..04612f202e9 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/LinkSection.pm
@@ -3,12 +3,12 @@ require 5;
package Pod::Simple::LinkSection;
# Based somewhat dimly on Array::Autojoin
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
use strict;
use Pod::Simple::BlackBox;
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
use overload( # So it'll stringify nice
'""' => \&Pod::Simple::BlackBox::stringify_lol,
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm
index 29ed32090be..67b87067416 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Methody.pm
@@ -4,7 +4,7 @@ package Pod::Simple::Methody;
use strict;
use Pod::Simple ();
use vars qw(@ISA $VERSION);
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = ('Pod::Simple');
# Yes, we could use named variables, but I want this to be impose
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm
index af24049f11f..0c18a5b37d6 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Progress.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::Progress;
-$VERSION = '3.32';
+$VERSION = '3.35';
use strict;
# Objects of this class are used for noting progress of an
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm
index 758f42d6594..7c326ec6aee 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParser.pm
@@ -1,6 +1,6 @@
require 5;
package Pod::Simple::PullParser;
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm
index 0d68841d095..d3066a8e87c 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserEndToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.32';
+$VERSION = '3.35';
sub new { # Class->new(tagname);
my $class = shift;
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm
index f09c10915e1..d938e0adb21 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserStartToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.32';
+$VERSION = '3.35';
sub new { # Class->new(tagname, optional_attrhash);
my $class = shift;
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm
index 17d065535cd..a11ce0fd92d 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserTextToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.32';
+$VERSION = '3.35';
sub new { # Class->new(text);
my $class = shift;
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm
index 7f493b964d7..c6618168e6b 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/PullParserToken.pm
@@ -3,7 +3,7 @@ require 5;
package Pod::Simple::PullParserToken;
# Base class for tokens gotten from Pod::Simple::PullParser's $parser->get_token
@ISA = ();
-$VERSION = '3.32';
+$VERSION = '3.35';
use strict;
sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm
index 9aea743a7e0..153c3d3e287 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/RTF.pm
@@ -8,7 +8,7 @@ package Pod::Simple::RTF;
use strict;
use vars qw($VERSION @ISA %Escape $WRAP %Tagmap);
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple::PullParser ();
BEGIN {@ISA = ('Pod::Simple::PullParser')}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm
index d5a4a020811..df499cacf2d 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Search.pm
@@ -3,7 +3,7 @@ package Pod::Simple::Search;
use strict;
use vars qw($VERSION $MAX_VERSION_WITHIN $SLEEPY);
-$VERSION = '3.32'; ## Current version of this package
+$VERSION = '3.35'; ## Current version of this package
BEGIN { *DEBUG = sub () {0} unless defined &DEBUG; } # set DEBUG level
use Carp ();
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm
index 436cd25e462..bff5af84c4b 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/SimpleTree.pm
@@ -5,7 +5,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.32';
+$VERSION = '3.35';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm
index e1c2d0b21f0..66e15f48cce 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Text.pm
@@ -6,7 +6,7 @@ use Carp ();
use Pod::Simple::Methody ();
use Pod::Simple ();
use vars qw( @ISA $VERSION $FREAKYMODE);
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm
index e0db26defb4..980612b3132 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TextContent.pm
@@ -6,7 +6,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = ('Pod::Simple');
sub new {
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm
index 6abba4defab..a7364dfa585 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TiedOutFH.pm
@@ -4,7 +4,7 @@ package Pod::Simple::TiedOutFH;
use Symbol ('gensym');
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm
index ae9298ef311..a4bb29ffdb6 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/Transcode.pm
@@ -3,7 +3,7 @@ require 5;
package Pod::Simple::Transcode;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '3.32';
+$VERSION = '3.35';
BEGIN {
if(defined &DEBUG) {;} # Okay
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm
index 80b828a753f..c2069056574 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeDumb.pm
@@ -5,7 +5,7 @@ require 5;
package Pod::Simple::TranscodeDumb;
use strict;
use vars qw($VERSION %Supported);
-$VERSION = '3.32';
+$VERSION = '3.35';
# This module basically pretends it knows how to transcode, except
# only for null-transcodings! We use this when Encode isn't
# available.
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm
index 335654998ec..e4d4f7eb60e 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/TranscodeSmart.pm
@@ -9,7 +9,7 @@ use strict;
use Pod::Simple;
require Encode;
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
sub is_dumb {0}
sub is_smart {1}
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm
index 67b259cb98f..8c2cf1a01ba 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XHTML.pm
@@ -45,7 +45,7 @@ declare the output character set as UTF-8 before parsing, like so:
package Pod::Simple::XHTML;
use strict;
use vars qw( $VERSION @ISA $HAS_HTML_ENTITIES );
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple::Methody ();
@ISA = ('Pod::Simple::Methody');
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm
index 03f2930e967..62fe39549da 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/lib/Pod/Simple/XMLOutStream.pm
@@ -5,7 +5,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.32';
+$VERSION = '3.35';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
diff --git a/gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t b/gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t
index 2463a66a5fb..126f24a7b1e 100755
--- a/gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t
+++ b/gnu/usr.bin/perl/cpan/Pod-Simple/t/search50.t
@@ -72,12 +72,18 @@ while (my ($testmod, $testpath) = each %{ $name2where }) {
}
my @x = ($x->find($testmod)||'(nil)', $testpath);
# print "# Comparing \"$x[0]\" to \"$x[1]\"\n";
- # print "# => \"$x[0]\" to \"$x[1]\"\n";
- is(
- File::Spec->rel2abs($x[0]),
- $x[1],
- " find('$testmod') should match survey's name2where{$testmod}"
- );
+ my $result = File::Spec->rel2abs($x[0]);
+ # print "# => \"$result\" to \"$x[1]\"\n";
+ if ($result ne $x[1]) {
+ TODO: {
+ local $TODO = 'unstable Pod::Simple::Search';
+ is( $result, $x[1],
+ " find('$testmod') should match survey's name2where{$testmod}");
+ }
+ } else {
+ is( $result, $x[1],
+ " find('$testmod') should match survey's name2where{$testmod}");
+ }
}
pass;
diff --git a/gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm b/gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm
index cc4f2e1e4fd..8f7985040f3 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm
@@ -12,7 +12,7 @@ package Pod::Usage;
use strict;
use vars qw($VERSION @ISA @EXPORT);
-$VERSION = '1.68'; ## Current version of this package
+$VERSION = '1.69'; ## Current version of this package
require 5.006; ## requires this Perl version or later
#use diagnostics;
diff --git a/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t b/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t
index c0bbfdb5745..7eb54022e90 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t
+++ b/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t
@@ -8,7 +8,7 @@ BEGIN {
plan skip_all => "Not portable on Win32 or VMS\n";
}
else {
- plan tests => 34;
+ plan tests => 33;
}
use_ok ("Pod::Usage");
}
@@ -217,14 +217,14 @@ ok (compare ($text, <<'EOT'), "Output test pod2usage with USAGE and verbose=99")
#
EOT
-# test with pod_where
-use_ok('Pod::Find', qw(pod_where));
+# test with self
-($exit, $text) = getoutput( sub { pod2usage( -input => pod_where({-inc => 1}, 'Pod::Usage'),
+my $src = File::Spec->catfile(qw(lib Pod Usage.pm));
+($exit, $text) = getoutput( sub { pod2usage( -input => $src,
-exitval => 0, -verbose => 0) } );
$text =~ s{#Using.*/blib.*\n}{}; # older blib's emit something to STDERR
-is ($exit, 0, "Exit status pod2usage with Pod::Find");
-ok (compare ($text, <<'EOT'), "Output test pod2usage with Pod::Find") or diag "Got:\n$text\n";
+is ($exit, 0, "Exit status pod2usage with self");
+ok (compare ($text, <<'EOT'), "Output test pod2usage with self") or diag "Got:\n$text\n";
#Usage:
# use Pod::Usage
#
diff --git a/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl b/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl
index 308cd1ccd6b..cd312453273 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl
+++ b/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/testp2pt.pl
@@ -1,5 +1,7 @@
package TestPodIncPlainText;
+my $PARENTDIR;
+
BEGIN {
use File::Basename;
use File::Spec;
@@ -9,7 +11,7 @@ BEGIN {
unshift @INC, $THISDIR;
require "testcmp.pl";
import TestCompare;
- my $PARENTDIR = dirname $THISDIR;
+ $PARENTDIR = dirname $THISDIR;
push @INC, map { File::Spec->catfile($_, 'lib') } ($PARENTDIR, $THISDIR);
}
@@ -24,6 +26,10 @@ use vars qw($MYPKG @EXPORT @ISA);
$MYPKG = eval { (caller)[0] };
@EXPORT = qw(&testpodplaintext);
BEGIN {
+ # we want this for testing only
+ unshift(@INC, File::Spec->catfile($PARENTDIR, 'inc'));
+print "INC=@INC\n";
+
require Pod::PlainText;
@ISA = qw( Pod::PlainText );
require VMS::Filespec if $^O eq 'VMS';
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs
index 04dca10eba3..12f98cde192 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs
@@ -7,22 +7,76 @@
#include <perl.h>
#include <XSUB.h>
-#define NEED_sv_2pv_flags 1
-#include "ppport.h"
+#ifdef USE_PPPORT_H
+# define NEED_sv_2pv_flags 1
+# define NEED_newSVpvn_flags 1
+# define NEED_sv_catpvn_flags
+# include "ppport.h"
+#endif
-#if PERL_BCDVERSION >= 0x5006000
+#ifndef PERL_VERSION_DECIMAL
+# define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s)
+#endif
+#ifndef PERL_DECIMAL_VERSION
+# define PERL_DECIMAL_VERSION \
+ PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)
+#endif
+#ifndef PERL_VERSION_GE
+# define PERL_VERSION_GE(r,v,s) \
+ (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s))
+#endif
+#ifndef PERL_VERSION_LE
+# define PERL_VERSION_LE(r,v,s) \
+ (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s))
+#endif
+
+#if PERL_VERSION_GE(5,6,0)
# include "multicall.h"
#endif
+#if !PERL_VERSION_GE(5,23,8)
+# define UNUSED_VAR_newsp PERL_UNUSED_VAR(newsp)
+#else
+# define UNUSED_VAR_newsp NOOP
+#endif
+
#ifndef CvISXSUB
# define CvISXSUB(cv) CvXSUB(cv)
#endif
+#ifndef HvNAMELEN_get
+#define HvNAMELEN_get(stash) strlen(HvNAME(stash))
+#endif
+
+#ifndef HvNAMEUTF8
+#define HvNAMEUTF8(stash) 0
+#endif
+
+#ifndef GvNAMEUTF8
+#ifdef GvNAME_HEK
+#define GvNAMEUTF8(gv) HEK_UTF8(GvNAME_HEK(gv))
+#else
+#define GvNAMEUTF8(gv) 0
+#endif
+#endif
+
+#ifndef SV_CATUTF8
+#define SV_CATUTF8 0
+#endif
+
+#ifndef SV_CATBYTES
+#define SV_CATBYTES 0
+#endif
+
+#ifndef sv_catpvn_flags
+#define sv_catpvn_flags(b,n,l,f) sv_catpvn(b,n,l)
+#endif
+
/* Some platforms have strict exports. And before 5.7.3 cxinc (or Perl_cxinc)
was not exported. Therefore platforms like win32, VMS etc have problems
so we redefine it here -- GMB
*/
-#if PERL_BCDVERSION < 0x5007000
+#if !PERL_VERSION_GE(5,7,0)
/* Not in 5.6.1. */
# ifdef cxinc
# undef cxinc
@@ -66,6 +120,10 @@ my_sv_copypv(pTHX_ SV *const dsv, SV *const ssv)
# define croak_no_modify() croak("%s", PL_no_modify)
#endif
+#ifndef SvNV_nomg
+# define SvNV_nomg SvNV
+#endif
+
enum slu_accum {
ACC_IV,
ACC_NV,
@@ -96,7 +154,7 @@ ALIAS:
CODE:
{
int index;
- NV retval;
+ NV retval = 0.0; /* avoid 'uninit var' warning */
SV *retsv;
int magic;
@@ -104,6 +162,7 @@ CODE:
XSRETURN_UNDEF;
retsv = ST(0);
+ SvGETMAGIC(retsv);
magic = SvAMAGIC(retsv);
if(!magic)
retval = slu_sv_value(retsv);
@@ -111,6 +170,7 @@ CODE:
for(index = 1 ; index < items ; index++) {
SV *stacksv = ST(index);
SV *tmpsv;
+ SvGETMAGIC(stacksv);
if((magic || SvAMAGIC(stacksv)) && (tmpsv = amagic_call(retsv, stacksv, gt_amg, 0))) {
if(SvTRUE(tmpsv) ? !ix : ix) {
retsv = stacksv;
@@ -159,11 +219,12 @@ CODE:
if(!items)
switch(ix) {
case 0: XSRETURN_UNDEF;
- case 1: ST(0) = newSViv(0); XSRETURN(1);
- case 2: ST(0) = newSViv(1); XSRETURN(1);
+ case 1: ST(0) = sv_2mortal(newSViv(0)); XSRETURN(1);
+ case 2: ST(0) = sv_2mortal(newSViv(1)); XSRETURN(1);
}
sv = ST(0);
+ SvGETMAGIC(sv);
switch((accum = accum_type(sv))) {
case ACC_SV:
retsv = TARG;
@@ -179,6 +240,7 @@ CODE:
for(index = 1 ; index < items ; index++) {
sv = ST(index);
+ SvGETMAGIC(sv);
if(accum < ACC_SV && SvAMAGIC(sv)){
if(!retsv)
retsv = TARG;
@@ -212,17 +274,72 @@ CODE:
break;
case ACC_IV:
if(is_product) {
- if(retiv == 0 ||
- (!SvNOK(sv) && SvIOK(sv) && (SvIV(sv) < IV_MAX / retiv))) {
- retiv *= SvIV(sv);
- break;
+ /* TODO: Consider if product() should shortcircuit the moment its
+ * accumulator becomes zero
+ */
+ /* XXX testing flags before running get_magic may
+ * cause some valid tied values to fallback to the NV path
+ * - DAPM */
+ if(!SvNOK(sv) && SvIOK(sv)) {
+ IV i = SvIV(sv);
+ if (retiv == 0) /* avoid later division by zero */
+ break;
+ if (retiv < 0) {
+ if (i < 0) {
+ if (i >= IV_MAX / retiv) {
+ retiv *= i;
+ break;
+ }
+ }
+ else {
+ if (i <= IV_MIN / retiv) {
+ retiv *= i;
+ break;
+ }
+ }
+ }
+ else {
+ if (i < 0) {
+ if (i >= IV_MIN / retiv) {
+ retiv *= i;
+ break;
+ }
+ }
+ else {
+ if (i <= IV_MAX / retiv) {
+ retiv *= i;
+ break;
+ }
+ }
+ }
}
/* else fallthrough */
}
else {
- if(!SvNOK(sv) && SvIOK(sv) && (SvIV(sv) < IV_MAX - retiv)) {
- retiv += SvIV(sv);
- break;
+ /* XXX testing flags before running get_magic may
+ * cause some valid tied values to fallback to the NV path
+ * - DAPM */
+ if(!SvNOK(sv) && SvIOK(sv)) {
+ IV i = SvIV(sv);
+ if (retiv >= 0 && i >= 0) {
+ if (retiv <= IV_MAX - i) {
+ retiv += i;
+ break;
+ }
+ /* else fallthrough */
+ }
+ else if (retiv < 0 && i < 0) {
+ if (retiv >= IV_MIN - i) {
+ retiv += i;
+ break;
+ }
+ /* else fallthrough */
+ }
+ else {
+ /* mixed signs can't overflow */
+ retiv += i;
+ break;
+ }
}
/* else fallthrough */
}
@@ -324,10 +441,12 @@ CODE:
GvSV(agv) = ret;
SvSetMagicSV(ret, args[1]);
#ifdef dMULTICALL
+ assert(cv);
if(!CvISXSUB(cv)) {
dMULTICALL;
I32 gimme = G_SCALAR;
+ UNUSED_VAR_newsp;
PUSH_MULTICALL(cv);
for(index = 2 ; index < items ; index++) {
GvSV(bgv) = args[index];
@@ -378,13 +497,19 @@ CODE:
SAVESPTR(GvSV(PL_defgv));
#ifdef dMULTICALL
+ assert(cv);
if(!CvISXSUB(cv)) {
dMULTICALL;
I32 gimme = G_SCALAR;
+
+ UNUSED_VAR_newsp;
PUSH_MULTICALL(cv);
for(index = 1 ; index < items ; index++) {
- GvSV(PL_defgv) = args[index];
+ SV *def_sv = GvSV(PL_defgv) = args[index];
+# ifdef SvTEMP_off
+ SvTEMP_off(def_sv);
+# endif
MULTICALL;
if(SvTRUEx(*PL_stack_sp)) {
# ifdef PERL_HAS_BAD_MULTICALL_REFCOUNT
@@ -444,14 +569,19 @@ PPCODE:
SAVESPTR(GvSV(PL_defgv));
#ifdef dMULTICALL
+ assert(cv);
if(!CvISXSUB(cv)) {
dMULTICALL;
I32 gimme = G_SCALAR;
int index;
+ UNUSED_VAR_newsp;
PUSH_MULTICALL(cv);
for(index = 1; index < items; index++) {
- GvSV(PL_defgv) = args[index];
+ SV *def_sv = GvSV(PL_defgv) = args[index];
+# ifdef SvTEMP_off
+ SvTEMP_off(def_sv);
+# endif
MULTICALL;
if(SvTRUEx(*PL_stack_sp) ^ invert) {
@@ -484,6 +614,56 @@ PPCODE:
}
void
+head(size,...)
+PROTOTYPE: $@
+ALIAS:
+ head = 0
+ tail = 1
+PPCODE:
+{
+ int size = 0;
+ int start = 0;
+ int end = 0;
+ int i = 0;
+
+ size = SvIV( ST(0) );
+
+ if ( ix == 0 ) {
+ start = 1;
+ end = start + size;
+ if ( size < 0 ) {
+ end += items - 1;
+ }
+ if ( end > items ) {
+ end = items;
+ }
+ }
+ else {
+ end = items;
+ if ( size < 0 ) {
+ start = -size + 1;
+ }
+ else {
+ start = end - size;
+ }
+ if ( start < 1 ) {
+ start = 1;
+ }
+ }
+
+ if ( end < start ) {
+ XSRETURN(0);
+ }
+ else {
+ EXTEND( SP, end - start );
+ for ( i = start; i <= end; i++ ) {
+ PUSHs( sv_2mortal( newSVsv( ST(i) ) ) );
+ }
+ XSRETURN( end - start );
+ }
+}
+
+void
pairs(...)
PROTOTYPE: @
PPCODE:
@@ -535,11 +715,11 @@ PPCODE:
SvGETMAGIC(pair);
if(SvTYPE(pair) != SVt_RV)
- croak("Not a reference at List::Util::unpack() argument %d", i);
+ croak("Not a reference at List::Util::unpairs() argument %d", i);
if(SvTYPE(SvRV(pair)) != SVt_PVAV)
- croak("Not an ARRAY reference at List::Util::unpack() argument %d", i);
+ croak("Not an ARRAY reference at List::Util::unpairs() argument %d", i);
- // TODO: assert pair is an ARRAY ref
+ /* TODO: assert pair is an ARRAY ref */
pairav = (AV *)SvRV(pair);
EXTEND(SP, 2);
@@ -622,6 +802,7 @@ PPCODE:
SAVESPTR(GvSV(agv));
SAVESPTR(GvSV(bgv));
#ifdef dMULTICALL
+ assert(cv);
if(!CvISXSUB(cv)) {
/* Since MULTICALL is about to move it */
SV **stack = PL_stack_base + ax;
@@ -629,6 +810,7 @@ PPCODE:
dMULTICALL;
I32 gimme = G_SCALAR;
+ UNUSED_VAR_newsp;
PUSH_MULTICALL(cv);
for(; argi < items; argi += 2) {
SV *a = GvSV(agv) = stack[argi];
@@ -705,6 +887,7 @@ PPCODE:
SAVESPTR(GvSV(agv));
SAVESPTR(GvSV(bgv));
#ifdef dMULTICALL
+ assert(cv);
if(!CvISXSUB(cv)) {
/* Since MULTICALL is about to move it */
SV **stack = PL_stack_base + ax;
@@ -713,6 +896,7 @@ PPCODE:
dMULTICALL;
I32 gimme = G_SCALAR;
+ UNUSED_VAR_newsp;
PUSH_MULTICALL(cv);
for(; argi < items; argi += 2) {
SV *a = GvSV(agv) = stack[argi];
@@ -793,67 +977,95 @@ PPCODE:
/* This MULTICALL-based code appears to fail on perl 5.10.0 and 5.8.9
* Skip it on those versions (RT#87857)
*/
-#if defined(dMULTICALL) && (PERL_BCDVERSION > 0x5010000 || PERL_BCDVERSION < 0x5008009)
+#if defined(dMULTICALL) && (PERL_VERSION_GE(5,10,1) || PERL_VERSION_LE(5,8,8))
+ assert(cv);
if(!CvISXSUB(cv)) {
/* Since MULTICALL is about to move it */
SV **stack = PL_stack_base + ax;
I32 ret_gimme = GIMME_V;
int i;
+ AV *spill = NULL; /* accumulates results if too big for stack */
dMULTICALL;
I32 gimme = G_ARRAY;
+ UNUSED_VAR_newsp;
PUSH_MULTICALL(cv);
for(; argi < items; argi += 2) {
- SV *a = GvSV(agv) = args_copy ? args_copy[argi] : stack[argi];
- SV *b = GvSV(bgv) = argi < items-1 ?
- (args_copy ? args_copy[argi+1] : stack[argi+1]) :
- &PL_sv_undef;
int count;
+ GvSV(agv) = stack[argi];
+ GvSV(bgv) = argi < items-1 ? stack[argi+1]: &PL_sv_undef;
+
MULTICALL;
count = PL_stack_sp - PL_stack_base;
- if(count > 2 && !args_copy) {
+ if (count > 2 || spill) {
/* We can't return more than 2 results for a given input pair
- * without trashing the remaining argmuents on the stack still
- * to be processed. So, we'll copy them out to a temporary
- * buffer and work from there instead.
+ * without trashing the remaining arguments on the stack still
+ * to be processed, or possibly overrunning the stack end.
+ * So, we'll accumulate the results in a temporary buffer
+ * instead.
* We didn't do this initially because in the common case, most
* code blocks will return only 1 or 2 items so it won't be
* necessary
*/
- int n_args = items - argi;
- Newx(args_copy, n_args, SV *);
- SAVEFREEPV(args_copy);
-
- Copy(stack + argi, args_copy, n_args, SV *);
+ int fill;
+
+ if (!spill) {
+ spill = newAV();
+ AvREAL_off(spill); /* don't ref count its contents */
+ /* can't mortalize here as every nextstate in the code
+ * block frees temps */
+ SAVEFREESV(spill);
+ }
- argi = 0;
- items = n_args;
+ fill = (int)AvFILL(spill);
+ av_extend(spill, fill + count);
+ for(i = 0; i < count; i++)
+ (void)av_store(spill, ++fill,
+ newSVsv(PL_stack_base[i + 1]));
}
-
- for(i = 0; i < count; i++)
- stack[reti++] = newSVsv(PL_stack_sp[i - count + 1]);
+ else
+ for(i = 0; i < count; i++)
+ stack[reti++] = newSVsv(PL_stack_base[i + 1]);
}
+
+ if (spill)
+ /* the POP_MULTICALL will trigger the SAVEFREESV above;
+ * keep it alive it on the temps stack instead */
+ SvREFCNT_inc_simple_void_NN(spill);
+ sv_2mortal((SV*)spill);
+
POP_MULTICALL;
+ if (spill) {
+ int n = (int)AvFILL(spill) + 1;
+ SP = &ST(reti - 1);
+ EXTEND(SP, n);
+ for (i = 0; i < n; i++)
+ *++SP = *av_fetch(spill, i, FALSE);
+ reti += n;
+ av_clear(spill);
+ }
+
if(ret_gimme == G_ARRAY)
for(i = 0; i < reti; i++)
- sv_2mortal(stack[i]);
+ sv_2mortal(ST(i));
}
else
#endif
{
for(; argi < items; argi += 2) {
dSP;
- SV *a = GvSV(agv) = args_copy ? args_copy[argi] : ST(argi);
- SV *b = GvSV(bgv) = argi < items-1 ?
- (args_copy ? args_copy[argi+1] : ST(argi+1)) :
- &PL_sv_undef;
int count;
int i;
+ GvSV(agv) = args_copy ? args_copy[argi] : ST(argi);
+ GvSV(bgv) = argi < items-1 ?
+ (args_copy ? args_copy[argi+1] : ST(argi+1)) :
+ &PL_sv_undef;
+
PUSHMARK(SP);
count = call_sv((SV*)cv, G_ARRAY);
@@ -927,6 +1139,120 @@ CODE:
}
+void
+uniq(...)
+PROTOTYPE: @
+ALIAS:
+ uniqnum = 0
+ uniqstr = 1
+ uniq = 2
+CODE:
+{
+ int retcount = 0;
+ int index;
+ SV **args = &PL_stack_base[ax];
+ HV *seen;
+
+ if(items == 0 || (items == 1 && !SvGAMAGIC(args[0]) && SvOK(args[0]))) {
+ /* Optimise for the case of the empty list or a defined nonmagic
+ * singleton. Leave a singleton magical||undef for the regular case */
+ retcount = items;
+ goto finish;
+ }
+
+ sv_2mortal((SV *)(seen = newHV()));
+
+ if(ix == 0) {
+ /* uniqnum */
+ /* A temporary buffer for number stringification */
+ SV *keysv = sv_newmortal();
+
+ for(index = 0 ; index < items ; index++) {
+ SV *arg = args[index];
+#ifdef HV_FETCH_EMPTY_HE
+ HE* he;
+#endif
+
+ if(SvGAMAGIC(arg))
+ /* clone the value so we don't invoke magic again */
+ arg = sv_mortalcopy(arg);
+
+ if(SvUOK(arg))
+ sv_setpvf(keysv, "%" UVuf, SvUV(arg));
+ else if(SvIOK(arg))
+ sv_setpvf(keysv, "%" IVdf, SvIV(arg));
+ else
+ sv_setpvf(keysv, "%" NVgf, SvNV(arg));
+#ifdef HV_FETCH_EMPTY_HE
+ he = (HE*) hv_common(seen, NULL, SvPVX(keysv), SvCUR(keysv), 0, HV_FETCH_LVALUE | HV_FETCH_EMPTY_HE, NULL, 0);
+ if (HeVAL(he))
+ continue;
+
+ HeVAL(he) = &PL_sv_undef;
+#else
+ if(hv_exists(seen, SvPVX(keysv), SvCUR(keysv)))
+ continue;
+
+ hv_store(seen, SvPVX(keysv), SvCUR(keysv), &PL_sv_yes, 0);
+#endif
+
+ if(GIMME_V == G_ARRAY)
+ ST(retcount) = SvOK(arg) ? arg : sv_2mortal(newSViv(0));
+ retcount++;
+ }
+ }
+ else {
+ /* uniqstr or uniq */
+ int seen_undef = 0;
+
+ for(index = 0 ; index < items ; index++) {
+ SV *arg = args[index];
+#ifdef HV_FETCH_EMPTY_HE
+ HE *he;
+#endif
+
+ if(SvGAMAGIC(arg))
+ /* clone the value so we don't invoke magic again */
+ arg = sv_mortalcopy(arg);
+
+ if(ix == 2 && !SvOK(arg)) {
+ /* special handling of undef for uniq() */
+ if(seen_undef)
+ continue;
+
+ seen_undef++;
+
+ if(GIMME_V == G_ARRAY)
+ ST(retcount) = arg;
+ retcount++;
+ continue;
+ }
+#ifdef HV_FETCH_EMPTY_HE
+ he = (HE*) hv_common(seen, arg, NULL, 0, 0, HV_FETCH_LVALUE | HV_FETCH_EMPTY_HE, NULL, 0);
+ if (HeVAL(he))
+ continue;
+
+ HeVAL(he) = &PL_sv_undef;
+#else
+ if (hv_exists_ent(seen, arg, 0))
+ continue;
+
+ hv_store_ent(seen, arg, &PL_sv_yes, 0);
+#endif
+
+ if(GIMME_V == G_ARRAY)
+ ST(retcount) = SvOK(arg) ? arg : sv_2mortal(newSVpvn("", 0));
+ retcount++;
+ }
+ }
+
+ finish:
+ if(GIMME_V == G_ARRAY)
+ XSRETURN(retcount);
+ else
+ ST(0) = sv_2mortal(newSViv(retcount));
+}
+
MODULE=List::Util PACKAGE=Scalar::Util
void
@@ -1040,7 +1366,10 @@ PROTOTYPE: $
INIT:
SV *tsv;
CODE:
-#ifdef SvWEAKREF
+#if defined(sv_rvunweaken)
+ PERL_UNUSED_VAR(tsv);
+ sv_rvunweaken(sv);
+#elif defined(SvWEAKREF)
/* This code stolen from core's sv_rvweaken() and modified */
if (!SvOK(sv))
return;
@@ -1125,7 +1454,7 @@ CODE:
if(SvAMAGIC(sv) && (tempsv = AMG_CALLun(sv, numer))) {
sv = tempsv;
}
-#if PERL_BCDVERSION < 0x5008005
+#if !PERL_VERSION_GE(5,8,5)
if(SvPOK(sv) || SvPOKp(sv)) {
RETVAL = looks_like_number(sv) ? &PL_sv_yes : &PL_sv_no;
}
@@ -1198,14 +1527,19 @@ PPCODE:
void
set_subname(name, sub)
- char *name
+ SV *name
SV *sub
PREINIT:
CV *cv = NULL;
GV *gv;
HV *stash = CopSTASH(PL_curcop);
- char *s, *end = NULL;
+ const char *s, *end = NULL, *begin = NULL;
MAGIC *mg;
+ STRLEN namelen;
+ const char* nameptr = SvPV(name, namelen);
+ int utf8flag = SvUTF8(name);
+ int quotes_seen = 0;
+ bool need_subst = FALSE;
PPCODE:
if (!SvROK(sub) && SvGMAGICAL(sub))
mg_get(sub);
@@ -1218,63 +1552,77 @@ PPCODE:
else if (PL_op->op_private & HINT_STRICT_REFS)
croak("Can't use string (\"%.32s\") as %s ref while \"strict refs\" in use",
SvPV_nolen(sub), "a subroutine");
- else if ((gv = gv_fetchpv(SvPV_nolen(sub), FALSE, SVt_PVCV)))
+ else if ((gv = gv_fetchsv(sub, FALSE, SVt_PVCV)))
cv = GvCVu(gv);
if (!cv)
croak("Undefined subroutine %s", SvPV_nolen(sub));
if (SvTYPE(cv) != SVt_PVCV && SvTYPE(cv) != SVt_PVFM)
croak("Not a subroutine reference");
- for (s = name; *s++; ) {
- if (*s == ':' && s[-1] == ':')
- end = ++s;
- else if (*s && s[-1] == '\'')
- end = s;
+ for (s = nameptr; s <= nameptr + namelen; s++) {
+ if (s > nameptr && *s == ':' && s[-1] == ':') {
+ end = s - 1;
+ begin = ++s;
+ if (quotes_seen)
+ need_subst = TRUE;
+ }
+ else if (s > nameptr && *s != '\0' && s[-1] == '\'') {
+ end = s - 1;
+ begin = s;
+ if (quotes_seen++)
+ need_subst = TRUE;
+ }
}
s--;
if (end) {
- char *namepv = savepvn(name, end - name);
- stash = GvHV(gv_fetchpv(namepv, TRUE, SVt_PVHV));
- Safefree(namepv);
- name = end;
+ SV* tmp;
+ if (need_subst) {
+ STRLEN length = end - nameptr + quotes_seen - (*end == '\'' ? 1 : 0);
+ char* left;
+ int i, j;
+ tmp = sv_2mortal(newSV(length));
+ left = SvPVX(tmp);
+ for (i = 0, j = 0; j < end - nameptr; ++i, ++j) {
+ if (nameptr[j] == '\'') {
+ left[i] = ':';
+ left[++i] = ':';
+ }
+ else {
+ left[i] = nameptr[j];
+ }
+ }
+ stash = gv_stashpvn(left, length, GV_ADD | utf8flag);
+ }
+ else
+ stash = gv_stashpvn(nameptr, end - nameptr, GV_ADD | utf8flag);
+ nameptr = begin;
+ namelen -= begin - nameptr;
}
/* under debugger, provide information about sub location */
if (PL_DBsub && CvGV(cv)) {
- HV *hv = GvHV(PL_DBsub);
-
- char *new_pkg = HvNAME(stash);
-
- char *old_name = GvNAME( CvGV(cv) );
- char *old_pkg = HvNAME( GvSTASH(CvGV(cv)) );
-
- int old_len = strlen(old_name) + strlen(old_pkg);
- int new_len = strlen(name) + strlen(new_pkg);
-
- SV **old_data;
- char *full_name;
-
- Newxz(full_name, (old_len > new_len ? old_len : new_len) + 3, char);
-
- strcat(full_name, old_pkg);
- strcat(full_name, "::");
- strcat(full_name, old_name);
-
- old_data = hv_fetch(hv, full_name, strlen(full_name), 0);
-
- if (old_data) {
- strcpy(full_name, new_pkg);
- strcat(full_name, "::");
- strcat(full_name, name);
-
- SvREFCNT_inc(*old_data);
- if (!hv_store(hv, full_name, strlen(full_name), *old_data, 0))
- SvREFCNT_dec(*old_data);
+ HV* DBsub = GvHV(PL_DBsub);
+ HE* old_data;
+
+ GV* oldgv = CvGV(cv);
+ HV* oldhv = GvSTASH(oldgv);
+ SV* old_full_name = sv_2mortal(newSVpvn_flags(HvNAME(oldhv), HvNAMELEN_get(oldhv), HvNAMEUTF8(oldhv) ? SVf_UTF8 : 0));
+ sv_catpvn(old_full_name, "::", 2);
+ sv_catpvn_flags(old_full_name, GvNAME(oldgv), GvNAMELEN(oldgv), GvNAMEUTF8(oldgv) ? SV_CATUTF8 : SV_CATBYTES);
+
+ old_data = hv_fetch_ent(DBsub, old_full_name, 0, 0);
+
+ if (old_data && HeVAL(old_data)) {
+ SV* new_full_name = sv_2mortal(newSVpvn_flags(HvNAME(stash), HvNAMELEN_get(stash), HvNAMEUTF8(stash) ? SVf_UTF8 : 0));
+ sv_catpvn(new_full_name, "::", 2);
+ sv_catpvn_flags(new_full_name, nameptr, s - nameptr, utf8flag ? SV_CATUTF8 : SV_CATBYTES);
+ SvREFCNT_inc(HeVAL(old_data));
+ if (hv_store_ent(DBsub, new_full_name, HeVAL(old_data), 0) != NULL)
+ SvREFCNT_inc(HeVAL(old_data));
}
- Safefree(full_name);
}
gv = (GV *) newSV(0);
- gv_init(gv, stash, name, s - name, TRUE);
+ gv_init_pvn(gv, stash, nameptr, s - nameptr, GV_ADDMULTI | utf8flag);
/*
* set_subname needs to create a GV to store the name. The CvGV field of a
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm
index 75866aa6c6b..b650d3585ac 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm
@@ -7,14 +7,15 @@
package List::Util;
use strict;
+use warnings;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(
- all any first min max minstr maxstr none notall product reduce sum sum0 shuffle
- pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst
+ all any first min max minstr maxstr none notall product reduce sum sum0 shuffle uniq uniqnum uniqstr
+ head tail pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst
);
-our $VERSION = "1.42_02";
+our $VERSION = "1.50";
our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -38,17 +39,21 @@ sub import
sub List::Util::_Pair::key { shift->[0] }
sub List::Util::_Pair::value { shift->[1] }
-1;
-
-__END__
-
=head1 NAME
List::Util - A selection of general-utility list subroutines
=head1 SYNOPSIS
- use List::Util qw(first max maxstr min minstr reduce shuffle sum);
+ use List::Util qw(
+ reduce any all none notall first
+
+ max maxstr min minstr product sum sum0
+
+ pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap
+
+ shuffle uniq uniqnum uniqstr
+ );
=head1 DESCRIPTION
@@ -67,7 +72,9 @@ The following set of functions all reduce a list down to a single value.
=cut
-=head2 $result = reduce { BLOCK } @list
+=head2 reduce
+
+ $result = reduce { BLOCK } @list
Reduces C<@list> by calling C<BLOCK> in a scalar context multiple times,
setting C<$a> and C<$b> each time. The first call will be with C<$a> and C<$b>
@@ -107,6 +114,20 @@ C<undef> being returned
$foo = reduce { $a + $b } 0, @values; # sum with 0 identity value
+The above example code blocks also suggest how to use C<reduce> to build a
+more efficient combined version of one of these basic functions and a C<map>
+block. For example, to find the total length of all the strings in a list,
+we could use
+
+ $total = sum map { length } @strings;
+
+However, this produces a list of temporary integer values as long as the
+original list of strings, only to reduce it down to a single value again. We
+can compute the same result more efficiently by using C<reduce> with a code
+block that accumulates lengths by writing this instead as:
+
+ $total = reduce { $a + length $b } 0, @strings
+
The remaining list-reduction functions are all specialisations of this generic
idea.
@@ -128,6 +149,9 @@ instead, as it can short-circuit after the first true result.
# at least one string has more than 10 characters
}
+Note: Due to XS issues the block passed may be able to access the outer @_
+directly. This is not intentional and will break under debugger.
+
=head2 all
my $bool = all { BLOCK } @list;
@@ -139,6 +163,9 @@ make the C<BLOCK> return true. If any element returns false, then it returns
false. If the C<BLOCK> never returns false or the C<@list> was empty then it
returns true.
+Note: Due to XS issues the block passed may be able to access the outer @_
+directly. This is not intentional and will break under debugger.
+
=head2 none
=head2 notall
@@ -153,6 +180,9 @@ Similar to L</any> and L</all>, but with the return sense inverted. C<none>
returns true only if no value in the C<@list> causes the C<BLOCK> to return
true, and C<notall> returns true only if not all of the values do.
+Note: Due to XS issues the block passed may be able to access the outer @_
+directly. This is not intentional and will break under debugger.
+
=head2 first
my $val = first { BLOCK } @list;
@@ -289,22 +319,23 @@ Instead, write this using a lexical variable:
I<Since version 1.29.>
A convenient shortcut to operating on even-sized lists of pairs, this function
-returns a list of ARRAY references, each containing two items from the given
-list. It is a more efficient version of
+returns a list of C<ARRAY> references, each containing two items from the
+given list. It is a more efficient version of
@pairs = pairmap { [ $a, $b ] } @kvlist
It is most convenient to use in a C<foreach> loop, for example:
- foreach my $pair ( pairs @KVLIST ) {
+ foreach my $pair ( pairs @kvlist ) {
my ( $key, $value ) = @$pair;
...
}
-Since version C<1.39> these ARRAY references are blessed objects, recognising
-the two methods C<key> and C<value>. The following code is equivalent:
+Since version C<1.39> these C<ARRAY> references are blessed objects,
+recognising the two methods C<key> and C<value>. The following code is
+equivalent:
- foreach my $pair ( pairs @KVLIST ) {
+ foreach my $pair ( pairs @kvlist ) {
my $key = $pair->key;
my $value = $pair->value;
...
@@ -316,7 +347,7 @@ the two methods C<key> and C<value>. The following code is equivalent:
I<Since version 1.42.>
-The inverse function to C<pairs>; this function takes a list of ARRAY
+The inverse function to C<pairs>; this function takes a list of C<ARRAY>
references containing two elements each, and returns a flattened list of the
two values from each of the pairs, in order. This is notionally equivalent to
@@ -454,8 +485,100 @@ Returns the values of the input in a random order
@cards = shuffle 0..51 # 0..51 in a random order
+=head2 uniq
+
+ my @subset = uniq @values
+
+I<Since version 1.45.>
+
+Filters a list of values to remove subsequent duplicates, as judged by a
+DWIM-ish string equality or C<undef> test. Preserves the order of unique
+elements, and retains the first value of any duplicate set.
+
+ my $count = uniq @values
+
+In scalar context, returns the number of elements that would have been
+returned as a list.
+
+The C<undef> value is treated by this function as distinct from the empty
+string, and no warning will be produced. It is left as-is in the returned
+list. Subsequent C<undef> values are still considered identical to the first,
+and will be removed.
+
+=head2 uniqnum
+
+ my @subset = uniqnum @values
+
+I<Since version 1.44.>
+
+Filters a list of values to remove subsequent duplicates, as judged by a
+numerical equality test. Preserves the order of unique elements, and retains
+the first value of any duplicate set.
+
+ my $count = uniqnum @values
+
+In scalar context, returns the number of elements that would have been
+returned as a list.
+
+Note that C<undef> is treated much as other numerical operations treat it; it
+compares equal to zero but additionally produces a warning if such warnings
+are enabled (C<use warnings 'uninitialized';>). In addition, an C<undef> in
+the returned list is coerced into a numerical zero, so that the entire list of
+values returned by C<uniqnum> are well-behaved as numbers.
+
+Note also that multiple IEEE C<NaN> values are treated as duplicates of
+each other, regardless of any differences in their payloads, and despite
+the fact that C<< 0+'NaN' == 0+'NaN' >> yields false.
+
+=head2 uniqstr
+
+ my @subset = uniqstr @values
+
+I<Since version 1.45.>
+
+Filters a list of values to remove subsequent duplicates, as judged by a
+string equality test. Preserves the order of unique elements, and retains the
+first value of any duplicate set.
+
+ my $count = uniqstr @values
+
+In scalar context, returns the number of elements that would have been
+returned as a list.
+
+Note that C<undef> is treated much as other string operations treat it; it
+compares equal to the empty string but additionally produces a warning if such
+warnings are enabled (C<use warnings 'uninitialized';>). In addition, an
+C<undef> in the returned list is coerced into an empty string, so that the
+entire list of values returned by C<uniqstr> are well-behaved as strings.
+
=cut
+=head2 head
+
+ my @values = head $size, @list;
+
+Returns the first C<$size> elements from C<@list>. If C<$size> is negative, returns
+all but the last C<$size> elements from C<@list>.
+
+ @result = head 2, qw( foo bar baz );
+ # foo, bar
+
+ @result = head -2, qw( foo bar baz );
+ # foo
+
+=head2 tail
+
+ my @values = tail $size, @list;
+
+Returns the last C<$size> elements from C<@list>. If C<$size> is negative, returns
+all but the first C<$size> elements from C<@list>.
+
+ @result = tail 2, qw( foo bar baz );
+ # bar, baz
+
+ @result = tail -2, qw( foo bar baz );
+ # baz
+
=head1 KNOWN BUGS
=head2 RT #95409
@@ -501,6 +624,21 @@ afterwards. Lexical variables that are only used during the lifetime of the
block's execution will take their individual values for each invocation, as
normal.
+=head2 uniqnum() on oversized bignums
+
+Due to the way that C<uniqnum()> compares numbers, it cannot distinguish
+differences between bignums (especially bigints) that are too large to fit in
+the native platform types. For example,
+
+ my $x = Math::BigInt->new( "1" x 100 );
+ my $y = $x + 1;
+
+ say for uniqnum( $x, $y );
+
+Will print just the value of C<$x>, believing that C<$y> is a numerically-
+equivalent value. This bug does not affect C<uniqstr()>, which will correctly
+observe that the two values stringify to different strings.
+
=head1 SUGGESTED ADDITIONS
The following are additions that have been requested, but I have been reluctant
@@ -528,3 +666,5 @@ Recent additions and current maintenance by
Paul Evans, <leonerd@leonerd.org.uk>.
=cut
+
+1;
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm
index fca0738e5a7..c8c066f8256 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm
@@ -1,8 +1,9 @@
package List::Util::XS;
use strict;
+use warnings;
use List::Util;
-our $VERSION = "1.42_02"; # FIXUP
+our $VERSION = "1.50"; # FIXUP
$VERSION = eval $VERSION; # FIXUP
1;
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm
index 99a536df642..69821587059 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm
@@ -7,6 +7,7 @@
package Scalar::Util;
use strict;
+use warnings;
require Exporter;
our @ISA = qw(Exporter);
@@ -16,7 +17,7 @@ our @EXPORT_OK = qw(
dualvar isdual isvstring looks_like_number openhandle readonly set_prototype
tainted
);
-our $VERSION = "1.42_02";
+our $VERSION = "1.50";
$VERSION = eval $VERSION;
require List::Util; # List::Util loads the XS
@@ -74,8 +75,8 @@ Scalar::Util - A selection of general-utility scalar subroutines
C<Scalar::Util> contains a selection of subroutines that people have expressed
would be nice to have in the perl core, but the usage would not really be high
-enough to warrant the use of a keyword, and the size so small such that being
-individual extensions would be wasteful.
+enough to warrant the use of a keyword, and the size would be so small that
+being individual extensions would be wasteful.
By default C<Scalar::Util> does not export any subroutines.
@@ -89,7 +90,7 @@ The following functions all perform some useful activity on reference values.
my $pkg = blessed( $ref );
-If C<$ref> is a blessed reference the name of the package that it is blessed
+If C<$ref> is a blessed reference, the name of the package that it is blessed
into is returned. Otherwise C<undef> is returned.
$scalar = "foo";
@@ -108,7 +109,7 @@ C<if(blessed $ref)...>) because the package name C<"0"> is defined yet false.
my $addr = refaddr( $ref );
-If C<$ref> is reference the internal memory address of the referenced value is
+If C<$ref> is reference, the internal memory address of the referenced value is
returned as a plain integer. Otherwise C<undef> is returned.
$addr = refaddr "string"; # undef
@@ -122,7 +123,7 @@ returned as a plain integer. Otherwise C<undef> is returned.
my $type = reftype( $ref );
-If C<$ref> is a reference the basic Perl type of the variable referenced is
+If C<$ref> is a reference, the basic Perl type of the variable referenced is
returned as a plain string (such as C<ARRAY> or C<HASH>). Otherwise C<undef>
is returned.
@@ -138,7 +139,7 @@ is returned.
weaken( $ref );
The lvalue C<$ref> will be turned into a weak reference. This means that it
-will not hold a reference count on the object it references. Also when the
+will not hold a reference count on the object it references. Also, when the
reference count on that object reaches zero, the reference will be set to
undef. This function mutates the lvalue passed as its argument and returns no
value.
@@ -242,8 +243,8 @@ numeric operations:
$bar = $foo + 0;
$dual = isdual($foo); # true
-Note that although C<$!> appears to be dual-valued variable, it is actually
-implemented using a tied scalar:
+Note that although C<$!> appears to be a dual-valued variable, it is
+actually implemented as a magical variable inside the interpreter:
$! = 1;
print("$!\n"); # "Operation not permitted"
@@ -258,7 +259,7 @@ You can capture its numeric and string content using:
my $vstring = isvstring( $var );
-If C<$var> is a scalar which was coded as a vstring the result is true.
+If C<$var> is a scalar which was coded as a vstring, the result is true.
$vs = v49.46.48;
$fmt = isvstring($vs) ? "%vd" : "%s"; #true
@@ -328,15 +329,6 @@ use L</isweak> or L</weaken> you will need to use a newer release of perl.
The version of perl that you are using does not implement Vstrings, to use
L</isvstring> you will need to use a newer release of perl.
-=item C<NAME> is only available with the XS version of Scalar::Util
-
-C<Scalar::Util> contains both perl and C implementations of many of its
-functions so that those without access to a C compiler may still use it.
-However some of the functions are only available when a C compiler was
-available to compile the XS version of the extension.
-
-At present that list is: weaken, isweak, dualvar, isvstring, set_prototype
-
=back
=head1 KNOWN BUGS
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/00version.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/00version.t
index b04bd33e0dc..2aa25cfdfc9 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/00version.t
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/00version.t
@@ -6,10 +6,13 @@ use warnings;
use Scalar::Util ();
use List::Util ();
use List::Util::XS ();
-use Test::More tests => 2;
+use Sub::Util ();
+use Test::More tests => 4;
-is( $Scalar::Util::VERSION, $List::Util::VERSION, "VERSION mismatch");
+is( $Scalar::Util::VERSION, $List::Util::VERSION, "VERSION mismatch between Scalar/List");
my $has_xs = eval { Scalar::Util->import('dualvar'); 1 };
my $xs_version = $has_xs ? $List::Util::VERSION : undef;
-is( $List::Util::XS::VERSION, $xs_version, "XS VERSION");
+is( $List::Util::XS::VERSION, $xs_version, "VERSION mismatch between LU::XS and LU");
+is( $Sub::Util::VERSION, $Scalar::Util::VERSION, "VERSION mistmatch between Sub/Scalar");
+is( $Sub::Util::VERSION, $List::Util::VERSION, "VERSION mistmatch between Sub/List");
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/min.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/min.t
index a7dfb106830..2b85b414cf5 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/min.t
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/min.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 10;
+use Test::More tests => 22;
use List::Util qw(min);
my $v;
@@ -62,3 +62,21 @@ is($v, 1, 'bigint and normal int');
$v = min(1, 2, $v1, 3);
is($v, 1, 'bigint and normal int');
+{
+ # test that min/max and sum call GETMAGIC properly
+ # note, in my tests how this fails depends on exactly
+ # which List::Util subs are called and in what order.
+ my @list;
+ for my $size (10, 20, 10, 30) {
+ @list = ( 1 ) x $size;
+
+ my $sum= List::Util::sum( 0, $#list );
+ ok( $sum == $size-1, "sum(\$#list, 0) == $size-1");
+
+ my $min= List::Util::min( 15, $#list );
+ ok( $min <= 15, "min(15,$size)" );
+
+ my $max= List::Util::max( 0, $#list );
+ ok( $max == $size-1, "max(\$#list, 0) == $size-1");
+ }
+}
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t
index 81acf065949..e65123cc2c7 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/pair.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 26;
+use Test::More tests => 27;
use List::Util qw(pairgrep pairfirst pairmap pairs unpairs pairkeys pairvalues);
no warnings 'misc'; # avoid "Odd number of elements" warnings most of the time
@@ -82,6 +82,16 @@ is_deeply( [ pairmap { my @l = (1) x 1000; "$a=$b" } one => 1, two => 2, three =
[ "one=1", "two=2", "three=3" ],
'pairmap copes with stack movement' );
+{
+ # do the pairmap and is_deeply as two separate statements to avoid
+ # the stack being extended before pairmap is called
+ my @a = pairmap { $a .. $b }
+ 1 => 3, 4 => 4, 5 => 6, 7 => 1998, 1999 => 2000;
+ my @exp; push @exp, $_ for 1..2000;
+ is_deeply( \@a, \@exp,
+ 'pairmap result has more elements than input' );
+}
+
is_deeply( [ pairs one => 1, two => 2, three => 3 ],
[ [ one => 1 ], [ two => 2 ], [ three => 3 ] ],
'pairs' );
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/product.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/product.t
index 38c923be509..87e887cf886 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/product.t
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/product.t
@@ -3,8 +3,9 @@
use strict;
use warnings;
-use Test::More tests => 14;
+use Test::More tests => 25;
+use Config;
use List::Util qw(product);
my $v = product;
@@ -22,6 +23,15 @@ is( $v, -1, 'one -1');
$v = product(0, 1, 2);
is( $v, 0, 'first factor zero' );
+$v = product(0, 1);
+is( $v, 0, '0 * 1');
+
+$v = product(1, 0);
+is( $v, 0, '1 * 0');
+
+$v = product(0, 0);
+is( $v, 0, 'two 0');
+
my $x = -3;
$v = product($x, 3);
@@ -89,3 +99,30 @@ is($v, $v1 * 42 * 2, 'bigint + builtin int');
is($t, 567, 'overload returning non-overload');
}
+SKIP: {
+ skip "IV is not at least 64bit", 8 unless $Config{ivsize} >= 8;
+
+ my $t;
+ my $min = -(1<<31);
+ my $max = (1<<31)-1;
+
+ $t = product($min, $min);
+ is($t, 1<<62, 'min * min');
+ $t = product($min, $max);
+ is($t, (1<<31) - (1<<62), 'min * max');
+ $t = product($max, $min);
+ is($t, (1<<31) - (1<<62), 'max * min');
+
+ $t = product($max, $max);
+ is($t, 4611686014132420609, 'max * max'); # (1<<62)-(1<<32)+1), but Perl 5.6 does not compute constant correctly
+
+ $t = product($min*8, $min);
+ cmp_ok($t, '>', (1<<61), 'min*8*min'); # may be an NV
+ $t = product($min*8, $max);
+ cmp_ok($t, '<', -(1<<61), 'min*8*max'); # may be an NV
+ $t = product($max, $min*8);
+ cmp_ok($t, '<', -(1<<61), 'min*max*8'); # may be an NV
+ $t = product($max, $max*8);
+ cmp_ok($t, '>', (1<<61), 'max*max*8'); # may be an NV
+
+}
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t
index 7a12813ff06..e2c416df8c0 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/sum.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Test::More tests => 15;
+use Test::More tests => 18;
use Config;
use List::Util qw(sum);
@@ -91,9 +91,23 @@ is($v, $v1 + 42 + 2, 'bigint + builtin int');
}
SKIP: {
- skip "IV is not at least 64bit", 1 unless $Config{ivsize} >= 8;
+ skip "IV is not at least 64bit", 4 unless $Config{ivsize} >= 8;
# Sum using NV will only preserve 53 bits of integer precision
- my $t = sum(1<<60, 1);
- cmp_ok($t, '>', 1<<60, 'sum uses IV where it can');
+ my $t = sum(1152921504606846976, 1); # 1<<60, but Perl 5.6 does not compute constant correctly
+ cmp_ok($t, 'gt', 1152921504606846976, 'sum uses IV where it can'); # string comparison because Perl 5.6 does not compare it numerically correctly
+
+ SKIP: {
+ skip "known to fail on $]", 1 if $] le "5.006002";
+ $t = sum(1<<60, 1);
+ cmp_ok($t, '>', 1<<60, 'sum uses IV where it can');
+ }
+
+ my $min = -(1<<63);
+ my $max = 9223372036854775807; # (1<<63)-1, but Perl 5.6 does not compute constant correctly
+
+ $t = sum($min, $max);
+ is($t, -1, 'min + max');
+ $t = sum($max, $min);
+ is($t, -1, 'max + min');
}
diff --git a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t
index e483dfd06c9..fb83c86c327 100644
--- a/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t
+++ b/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/tainted.t
@@ -13,12 +13,10 @@ my $var = 2;
ok( !tainted($var), 'known variable');
-my $key = (grep { !/^PERL/ } keys %ENV)[0];
+ok( tainted($^X), 'interpreter variable');
-ok( tainted($ENV{$key}), 'environment variable');
-
-$var = $ENV{$key};
-ok( tainted($var), 'copy of environment variable');
+$var = $^X;
+ok( tainted($var), 'copy of interpreter variable');
{
package Tainted;
diff --git a/gnu/usr.bin/perl/cpan/Socket/Makefile.PL b/gnu/usr.bin/perl/cpan/Socket/Makefile.PL
index 3bad65516dc..5eab38080a9 100644
--- a/gnu/usr.bin/perl/cpan/Socket/Makefile.PL
+++ b/gnu/usr.bin/perl/cpan/Socket/Makefile.PL
@@ -14,7 +14,7 @@ sub check_for
{
my %args = @_;
return if $ENV{PERL_CORE};
- return if defined $Config{$args{confkey}};
+ return if defined $args{confkey} and defined $Config{$args{confkey}};
require ExtUtils::CBuilder;
$cb ||= ExtUtils::CBuilder->new( quiet => 1 );
@@ -77,12 +77,13 @@ sub check_for_func
}
my %defines = (
- # -Dfoo func() $Config{key}
- HAS_GETADDRINFO => [ "getaddrinfo", "d_getaddrinfo" ],
- HAS_GETNAMEINFO => [ "getnameinfo", "d_getnameinfo" ],
- HAS_INET_ATON => [ "inet_aton", "d_inetaton" ],
- HAS_INETNTOP => [ "inet_ntop", "d_inetntop" ],
- HAS_INETPTON => [ "inet_pton", "d_inetpton" ],
+ # -Dfoo func() $Config{key}
+ HAS_GETADDRINFO => [ "getaddrinfo", "d_getaddrinfo" ],
+ HAS_GETNAMEINFO => [ "getnameinfo", "d_getnameinfo" ],
+ HAS_GAI_STRERROR => [ "gai_strerror", "d_gai_strerror" ],
+ HAS_INET_ATON => [ "inet_aton", "d_inetaton" ],
+ HAS_INETNTOP => [ "inet_ntop", "d_inetntop" ],
+ HAS_INETPTON => [ "inet_pton", "d_inetpton" ],
);
foreach my $define ( sort keys %defines ) {
@@ -177,20 +178,25 @@ my @names = (
IOV_MAX
- IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_DROP_MEMBERSHIP
- IP_DROP_SOURCE_MEMBERSHIP IP_HDRINCL IP_MULTICAST_IF IP_MULTICAST_LOOP
- IP_MULTICAST_TTL IP_OPTIONS IP_RECVOPTS IP_RECVRETOPTS IP_RETOPTS IP_TOS
- IP_TTL
+ IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_BIND_ADDRESS_NO_PORT
+ IP_DROP_MEMBERSHIP IP_DROP_SOURCE_MEMBERSHIP IP_FREEBIND IP_HDRINCL
+ IP_MULTICAST_ALL IP_MULTICAST_IF IP_MULTICAST_LOOP IP_MULTICAST_TTL
+ IP_MTU IP_MTU_DISCOVER IP_NODEFRAG IP_OPTIONS IP_RECVERR IP_RECVOPTS
+ IP_RECVRETOPTS IP_RETOPTS IP_TOS IP_TRANSPARENT IP_TTL
+
+ IP_PMTUDISC_DO IP_PMTUDISC_DONT IP_PMTUDISC_PROBE IP_PMTUDISC_WANT
IPTOS_LOWDELAY IPTOS_THROUGHPUT IPTOS_RELIABILITY IPTOS_MINCOST
- IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
+ IPV6_ADDRFROM IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
IPV6_LEAVE_GROUP IPV6_MTU IPV6_MTU_DISCOVER IPV6_MULTICAST_HOPS
- IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_UNICAST_HOPS IPV6_V6ONLY
+ IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_RECVERR IPV6_ROUTER_ALERT
+ IPV6_UNICAST_HOPS IPV6_V6ONLY
MSG_BCAST MSG_BTAG MSG_CTLFLAGS MSG_CTLIGNORE MSG_DONTWAIT MSG_EOF
- MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FIN MSG_MAXIOVLEN MSG_MCAST
- MSG_NOSIGNAL MSG_RST MSG_SYN MSG_TRUNC MSG_URG MSG_WAITALL MSG_WIRE
+ MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FASTOPEN MSG_FIN MSG_MAXIOVLEN
+ MSG_MCAST MSG_NOSIGNAL MSG_RST MSG_SYN MSG_TRUNC MSG_URG MSG_WAITALL
+ MSG_WIRE
NI_DGRAM NI_IDN NI_IDN_ALLOW_UNASSIGNED NI_IDN_USE_STD3_ASCII_RULES
NI_NAMEREQD NI_NOFQDN NI_NUMERICHOST NI_NUMERICSERV
@@ -213,32 +219,35 @@ my @names = (
SO_ACCEPTCONN SO_ATTACH_FILTER SO_BACKLOG SO_BINDTODEVICE SO_BROADCAST
SO_BSDCOMPAT SO_BUSY_POLL SO_CHAMELEON SO_DEBUG SO_DETACH_FILTER
SO_DGRAM_ERRIND SO_DOMAIN SO_DONTLINGER SO_DONTROUTE SO_ERROR SO_FAMILY
- SO_KEEPALIVE SO_LINGER SO_MARK SO_OOBINLINE SO_PASSCRED SO_PASSIFNAME
- SO_PEEK_OFF SO_PEERCRED SO_PRIORITY SO_PROTOCOL SO_PROTOTYPE SO_RCVBUF
- SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT
- SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK
- SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO
- SO_STATE SO_TIMESTAMP SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
-
- TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT TCP_INFO
- TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL
- TCP_LINGER2 TCP_MAXRT TCP_MAXSEG TCP_MD5SIG TCP_NODELAY TCP_NOOPT
- TCP_NOPUSH TCP_QUICKACK TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT
+ SO_KEEPALIVE SO_LINGER SO_LOCK_FILTER SO_MARK SO_OOBINLINE SO_PASSCRED
+ SO_PASSIFNAME SO_PEEK_OFF SO_PEERCRED SO_PRIORITY SO_PROTOCOL
+ SO_PROTOTYPE SO_RCVBUF SO_RCVBUFFORCE SO_RCVLOWAT SO_RCVTIMEO
+ SO_REUSEADDR SO_REUSEPORT SO_RXQ_OVFL SO_SECURITY_AUTHENTICATION
+ SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT
+ SO_SNDBUF SO_SNDBUFFORCE SO_SNDLOWAT SO_SNDTIMEO SO_STATE SO_TIMESTAMP
+ SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
+
+ TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT
+ TCP_FASTOPEN TCP_INFO TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT
+ TCP_KEEPIDLE TCP_KEEPINTVL TCP_LINGER2 TCP_MAXRT TCP_MAXSEG
+ TCP_MD5SIG TCP_NODELAY TCP_NOOPT TCP_NOPUSH TCP_QUICKACK
+ TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT TCP_USER_TIMEOUT
TCP_WINDOW_CLAMP
UIO_MAXIOV
),
- {name=>"IPPROTO_IP", type=>"IV", default=>["IV", 0]},
- {name=>"IPPROTO_IPV6", type=>"IV", default=>["IV", 41]},
- {name=>"IPPROTO_RAW", type=>"IV", default=>["IV", 255]},
- {name=>"IPPROTO_ICMP", type=>"IV", default=>["IV", 1]},
- {name=>"IPPROTO_IGMP", type=>"IV", default=>["IV", 2]},
- {name=>"IPPROTO_TCP", type=>"IV", default=>["IV", 6]},
- {name=>"IPPROTO_UDP", type=>"IV", default=>["IV", 17]},
- {name=>"IPPROTO_GRE", type=>"IV", default=>["IV", 47]},
- {name=>"IPPROTO_ESP", type=>"IV", default=>["IV", 50]},
- {name=>"IPPROTO_AH", type=>"IV", default=>["IV", 51]},
- {name=>"IPPROTO_SCTP", type=>"IV", default=>["IV", 132]},
+ {name=>"IPPROTO_IP", type=>"IV", default=>["IV", 0]},
+ {name=>"IPPROTO_IPV6", type=>"IV", default=>["IV", 41]},
+ {name=>"IPPROTO_RAW", type=>"IV", default=>["IV", 255]},
+ {name=>"IPPROTO_ICMP", type=>"IV", default=>["IV", 1]},
+ {name=>"IPPROTO_IGMP", type=>"IV", default=>["IV", 2]},
+ {name=>"IPPROTO_TCP", type=>"IV", default=>["IV", 6]},
+ {name=>"IPPROTO_UDP", type=>"IV", default=>["IV", 17]},
+ {name=>"IPPROTO_GRE", type=>"IV", default=>["IV", 47]},
+ {name=>"IPPROTO_ESP", type=>"IV", default=>["IV", 50]},
+ {name=>"IPPROTO_AH", type=>"IV", default=>["IV", 51]},
+ {name=>"IPPROTO_ICMPV6", type=>"IV", default=>["IV", 58]},
+ {name=>"IPPROTO_SCTP", type=>"IV", default=>["IV", 132]},
{name=>"SHUT_RD", type=>"IV", default=>["IV", "0"]},
{name=>"SHUT_WR", type=>"IV", default=>["IV", "1"]},
{name=>"SHUT_RDWR", type=>"IV", default=>["IV", "2"]},
diff --git a/gnu/usr.bin/perl/cpan/Socket/Socket.pm b/gnu/usr.bin/perl/cpan/Socket/Socket.pm
index 5b187facf2f..370deef1036 100644
--- a/gnu/usr.bin/perl/cpan/Socket/Socket.pm
+++ b/gnu/usr.bin/perl/cpan/Socket/Socket.pm
@@ -3,7 +3,7 @@ package Socket;
use strict;
{ use 5.006001; }
-our $VERSION = '2.020_03'; # patched in perl5.git
+our $VERSION = '2.027';
=head1 NAME
@@ -108,6 +108,10 @@ C<SOL_SOCKET> level.
Socket option name constants for IPv4 socket options at the C<IPPROTO_IP>
level.
+=head2 IP_PMTUDISC_WANT, IP_PMTUDISC_DONT, ...
+
+Socket option value contants for C<IP_MTU_DISCOVER> socket option.
+
=head2 IPTOS_LOWDELAY, IPTOS_THROUGHPUT, IPTOS_RELIABILITY, ...
Socket option value constants for C<IP_TOS> socket option.
@@ -180,6 +184,9 @@ arguments packed in and C<AF_INET> filled in. For Internet domain sockets,
this structure is normally what you need for the arguments in bind(),
connect(), and send().
+An undefined $port argument is taken as zero; an undefined $ip_address is
+considered a fatal error.
+
=head2 ($port, $ip_address) = unpack_sockaddr_in $sockaddr
Takes a C<sockaddr_in> structure (as returned by pack_sockaddr_in(),
@@ -209,6 +216,9 @@ inet_pton()), optionally a scope ID number, and optionally a flow label
number. Returns the C<sockaddr_in6> structure with those arguments packed in
and C<AF_INET6> filled in. IPv6 equivalent of pack_sockaddr_in().
+An undefined $port argument is taken as zero; an undefined $ip6_address is
+considered a fatal error.
+
=head2 ($port, $ip6_address, $scope_id, $flowinfo) = unpack_sockaddr_in6 $sockaddr
Takes a C<sockaddr_in6> structure. Returns a list of four elements: the port
@@ -384,7 +394,7 @@ Restrict to only generating addresses for this protocol
The return value will be a list; the first value being an error indication,
followed by a list of address structures (if no error occurred).
-The error value will be a dualvar; comparable to the C<EI_*> error constants,
+The error value will be a dualvar; comparable to the C<EAI_*> error constants,
or printable as a human-readable error message string. If no error occurred it
will be zero numerically and an empty string.
@@ -452,7 +462,7 @@ constants, or defaults to 0 if unspecified.
The return value will be a list; the first value being an error condition,
followed by the hostname and service name.
-The error value will be a dualvar; comparable to the C<EI_*> error constants,
+The error value will be a dualvar; comparable to the C<EAI_*> error constants,
or printable as a human-readable error message string. The host and service
names will be plain strings.
@@ -722,11 +732,11 @@ our @EXPORT = qw(
SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO
SO_STATE SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
- IP_OPTIONS IP_HDRINCL IP_TOS IP_TTL IP_RECVOPTS IP_RECVRETOPTS
- IP_RETOPTS
+ IP_HDRINCL IP_OPTIONS IP_RECVOPTS IP_RECVRETOPTS IP_RETOPTS IP_TOS
+ IP_TTL
MSG_BCAST MSG_BTAG MSG_CTLFLAGS MSG_CTLIGNORE MSG_CTRUNC MSG_DONTROUTE
- MSG_DONTWAIT MSG_EOF MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FIN
+ MSG_DONTWAIT MSG_EOF MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FASTOPEN MSG_FIN
MSG_MAXIOVLEN MSG_MCAST MSG_NOSIGNAL MSG_OOB MSG_PEEK MSG_PROXY MSG_RST
MSG_SYN MSG_TRUNC MSG_URG MSG_WAITALL MSG_WIRE
@@ -756,27 +766,34 @@ our @EXPORT_OK = qw(
SOCK_NONBLOCK SOCK_CLOEXEC
- IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_DROP_MEMBERSHIP
- IP_DROP_SOURCE_MEMBERSHIP IP_MULTICAST_IF IP_MULTICAST_LOOP
- IP_MULTICAST_TTL
+ IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_BIND_ADDRESS_NO_PORT
+ IP_DROP_MEMBERSHIP IP_DROP_SOURCE_MEMBERSHIP IP_FREEBIND
+ IP_MULTICAST_ALL IP_MULTICAST_IF IP_MULTICAST_LOOP IP_MULTICAST_TTL
+ IP_MTU IP_MTU_DISCOVER IP_NODEFRAG IP_RECVERR IP_TRANSPARENT
IPPROTO_IP IPPROTO_IPV6 IPPROTO_RAW IPPROTO_ICMP IPPROTO_IGMP
IPPROTO_TCP IPPROTO_UDP IPPROTO_GRE IPPROTO_ESP IPPROTO_AH
- IPPROTO_SCTP
+ IPPROTO_ICMPV6 IPPROTO_SCTP
+
+ IP_PMTUDISC_DO IP_PMTUDISC_DONT IP_PMTUDISC_PROBE IP_PMTUDISC_WANT
IPTOS_LOWDELAY IPTOS_THROUGHPUT IPTOS_RELIABILITY IPTOS_MINCOST
- TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT TCP_INFO
- TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL
- TCP_LINGER2 TCP_MAXRT TCP_MAXSEG TCP_MD5SIG TCP_NODELAY TCP_NOOPT
- TCP_NOPUSH TCP_QUICKACK TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT
+ TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT
+ TCP_FASTOPEN TCP_INFO TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT
+ TCP_KEEPIDLE TCP_KEEPINTVL TCP_LINGER2 TCP_MAXRT TCP_MAXSEG
+ TCP_MD5SIG TCP_NODELAY TCP_NOOPT TCP_NOPUSH TCP_QUICKACK
+ TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT TCP_USER_TIMEOUT
TCP_WINDOW_CLAMP
IN6ADDR_ANY IN6ADDR_LOOPBACK
- IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
+ IPV6_ADDRFROM IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
IPV6_LEAVE_GROUP IPV6_MTU IPV6_MTU_DISCOVER IPV6_MULTICAST_HOPS
- IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_UNICAST_HOPS IPV6_V6ONLY
+ IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_RECVERR IPV6_ROUTER_ALERT
+ IPV6_UNICAST_HOPS IPV6_V6ONLY
+
+ SO_LOCK_FILTER SO_RCVBUFFORCE SO_SNDBUFFORCE
pack_ip_mreq unpack_ip_mreq pack_ip_mreq_source unpack_ip_mreq_source
diff --git a/gnu/usr.bin/perl/cpan/Socket/Socket.xs b/gnu/usr.bin/perl/cpan/Socket/Socket.xs
index 3b1d70eaf40..b11ea751a7d 100644
--- a/gnu/usr.bin/perl/cpan/Socket/Socket.xs
+++ b/gnu/usr.bin/perl/cpan/Socket/Socket.xs
@@ -187,7 +187,7 @@ NETINET_DEFINE_CONTEXT
#endif /* !SvPVx_nolen */
#ifndef croak_sv
-# define croak_sv(sv) croak(SvPVx_nolen(sv))
+# define croak_sv(sv) croak("%s", SvPVx_nolen(sv))
#endif
#ifndef hv_stores
@@ -473,6 +473,65 @@ not_here(const char *s)
#include "const-c.inc"
+#if defined(HAS_GETADDRINFO) && !defined(HAS_GAI_STRERROR)
+static const char *gai_strerror(int err)
+{
+ switch (err)
+ {
+#ifdef EAI_ADDRFAMILY
+ case EAI_ADDRFAMILY:
+ return "Address family for hostname is not supported.";
+#endif
+#ifdef EAI_AGAIN
+ case EAI_AGAIN:
+ return "The name could not be resolved at this time.";
+#endif
+#ifdef EAI_BADFLAGS
+ case EAI_BADFLAGS:
+ return "The flags parameter has an invalid value.";
+#endif
+#ifdef EAI_FAIL
+ case EAI_FAIL:
+ return "A non-recoverable error occurred while resolving the name.";
+#endif
+#ifdef EAI_FAMILY
+ case EAI_FAMILY:
+ return "The address family was not recognized or length is invalid.";
+#endif
+#ifdef EAI_MEMORY
+ case EAI_MEMORY:
+ return "A memory allocation failure occurred.";
+#endif
+#ifdef EAI_NODATA
+ case EAI_NODATA:
+ return "No address is associated with the hostname.";
+#endif
+#ifdef EAI_NONAME
+ case EAI_NONAME:
+ return "The name does not resolve for the supplied parameters.";
+#endif
+#ifdef EAI_OVERFLOW
+ case EAI_OVERFLOW:
+ return "An argument buffer overflowed.";
+#endif
+#ifdef EAI_SERVICE
+ case EAI_SERVICE:
+ return "The service parameter was not recognized for the specified socket type.";
+#endif
+#ifdef EAI_SOCKTYPE
+ case EAI_SOCKTYPE:
+ return "The specified socket type was not recognized.";
+#endif
+#ifdef EAI_SYSTEM
+ case EAI_SYSTEM:
+ return "A system error occurred - see errno.";
+#endif
+ default:
+ return "Unknown error in getaddrinfo().";
+ }
+}
+#endif
+
#ifdef HAS_GETADDRINFO
static SV *err_to_SV(pTHX_ int err)
{
@@ -693,13 +752,13 @@ inet_aton(host)
ST(0) = sv_2mortal(newSVpvn((char *)&ip_address, sizeof(ip_address)));
XSRETURN(1);
}
-
+#ifdef HAS_GETHOSTBYNAME
phe = gethostbyname(host);
if (phe && phe->h_addrtype == AF_INET && phe->h_length == 4) {
ST(0) = sv_2mortal(newSVpvn((char *)phe->h_addr, phe->h_length));
XSRETURN(1);
}
-
+#endif
XSRETURN_UNDEF;
}
@@ -721,7 +780,8 @@ inet_ntoa(ip_address_sv)
(ip_address[2] & 0xFF) << 8 |
(ip_address[3] & 0xFF);
else
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::inet_ntoa", (UV)addrlen, (UV)sizeof(addr));
/* We could use inet_ntoa() but that is broken
* in HP-UX + GCC + 64bitint (returns "0.0.0.0"),
@@ -742,7 +802,8 @@ sockaddr_family(sockaddr)
char *sockaddr_pv = SvPVbyte(sockaddr, sockaddr_len);
CODE:
if (sockaddr_len < STRUCT_OFFSET(struct sockaddr, sa_data))
- croak("Bad arg length for %s, length is %"UVuf", should be at least %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be at least %" UVuf,
"Socket::sockaddr_family", (UV)sockaddr_len,
(UV)STRUCT_OFFSET(struct sockaddr, sa_data));
ST(0) = sv_2mortal(newSViv(((struct sockaddr*)sockaddr_pv)->sa_family));
@@ -758,11 +819,18 @@ pack_sockaddr_un(pathname)
char * pathname_pv;
int addr_len;
+ if (!SvOK(pathname))
+ croak("Undefined path for %s", "Socket::pack_sockaddr_un");
+
Zero(&sun_ad, sizeof(sun_ad), char);
sun_ad.sun_family = AF_UNIX;
pathname_pv = SvPV(pathname,len);
- if (len > sizeof(sun_ad.sun_path))
+ if (len > sizeof(sun_ad.sun_path)) {
+ warn("Path length (%" UVuf ") is longer than maximum supported length"
+ " (%" UVuf ") and will be truncated",
+ (UV)len, (UV)sizeof(sun_ad.sun_path));
len = sizeof(sun_ad.sun_path);
+ }
# ifdef OS2 /* Name should start with \socket\ and contain backslashes! */
{
int off;
@@ -818,8 +886,11 @@ unpack_sockaddr_un(sun_sv)
#ifdef I_SYS_UN
struct sockaddr_un addr;
STRLEN sockaddrlen;
- char * sun_ad = SvPVbyte(sun_sv,sockaddrlen);
- int addr_len;
+ char * sun_ad;
+ int addr_len = 0;
+ if (!SvOK(sun_sv))
+ croak("Undefined address for %s", "Socket::unpack_sockaddr_un");
+ sun_ad = SvPVbyte(sun_sv,sockaddrlen);
# if defined(__linux__) || defined(HAS_SOCKADDR_SA_LEN)
/* On Linux or *BSD sockaddrlen on sockets returned by accept, recvfrom,
getpeername and getsockname is not equal to sizeof(addr). */
@@ -832,12 +903,14 @@ unpack_sockaddr_un(sun_sv)
# ifdef HAS_SOCKADDR_SA_LEN
/* In this case, sun_len must be checked */
if (sockaddrlen != addr.sun_len)
- croak("Invalid arg sun_len field for %s, length is %"UVuf", but sun_len is %"UVuf,
+ croak("Invalid arg sun_len field for %s, length is %" UVuf
+ ", but sun_len is %" UVuf,
"Socket::unpack_sockaddr_un", (UV)sockaddrlen, (UV)addr.sun_len);
# endif
# else
if (sockaddrlen != sizeof(addr))
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::unpack_sockaddr_un", (UV)sockaddrlen, (UV)sizeof(addr));
Copy(sun_ad, &addr, sizeof(addr), char);
# endif
@@ -861,8 +934,8 @@ unpack_sockaddr_un(sun_sv)
# else
const int maxlen = (int)sizeof(addr.sun_path);
# endif
- for (addr_len = 0; addr_len < maxlen
- && addr.sun_path[addr_len]; addr_len++);
+ while (addr_len < maxlen && addr.sun_path[addr_len])
+ addr_len++;
}
ST(0) = sv_2mortal(newSVpvn(addr.sun_path, addr_len));
@@ -872,15 +945,20 @@ unpack_sockaddr_un(sun_sv)
}
void
-pack_sockaddr_in(port, ip_address_sv)
- unsigned short port
+pack_sockaddr_in(port_sv, ip_address_sv)
+ SV * port_sv
SV * ip_address_sv
CODE:
{
struct sockaddr_in sin;
struct in_addr addr;
STRLEN addrlen;
+ unsigned short port = 0;
char * ip_address;
+ if (SvOK(port_sv))
+ port = SvUV(port_sv);
+ if (!SvOK(ip_address_sv))
+ croak("Undefined address for %s", "Socket::pack_sockaddr_in");
if (DO_UTF8(ip_address_sv) && !sv_utf8_downgrade(ip_address_sv, 1))
croak("Wide character in %s", "Socket::pack_sockaddr_in");
ip_address = SvPVbyte(ip_address_sv, addrlen);
@@ -891,7 +969,8 @@ pack_sockaddr_in(port, ip_address_sv)
(unsigned int)(ip_address[2] & 0xFF) << 8 |
(unsigned int)(ip_address[3] & 0xFF);
else
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::pack_sockaddr_in",
(UV)addrlen, (UV)sizeof(addr));
Zero(&sin, sizeof(sin), char);
@@ -912,9 +991,13 @@ unpack_sockaddr_in(sin_sv)
STRLEN sockaddrlen;
struct sockaddr_in addr;
SV *ip_address_sv;
- char * sin = SvPVbyte(sin_sv,sockaddrlen);
+ char * sin;
+ if (!SvOK(sin_sv))
+ croak("Undefined address for %s", "Socket::unpack_sockaddr_in");
+ sin = SvPVbyte(sin_sv,sockaddrlen);
if (sockaddrlen != sizeof(addr)) {
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::unpack_sockaddr_in", (UV)sockaddrlen, (UV)sizeof(addr));
}
Copy(sin, &addr, sizeof(addr), char);
@@ -935,22 +1018,28 @@ unpack_sockaddr_in(sin_sv)
}
void
-pack_sockaddr_in6(port, sin6_addr, scope_id=0, flowinfo=0)
- unsigned short port
+pack_sockaddr_in6(port_sv, sin6_addr, scope_id=0, flowinfo=0)
+ SV * port_sv
SV * sin6_addr
unsigned long scope_id
unsigned long flowinfo
CODE:
{
#ifdef HAS_SOCKADDR_IN6
+ unsigned short port = 0;
struct sockaddr_in6 sin6;
char * addrbytes;
STRLEN addrlen;
+ if (SvOK(port_sv))
+ port = SvUV(port_sv);
+ if (!SvOK(sin6_addr))
+ croak("Undefined address for %s", "Socket::pack_sockaddr_in6");
if (DO_UTF8(sin6_addr) && !sv_utf8_downgrade(sin6_addr, 1))
croak("Wide character in %s", "Socket::pack_sockaddr_in6");
addrbytes = SvPVbyte(sin6_addr, addrlen);
if (addrlen != sizeof(sin6.sin6_addr))
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::pack_sockaddr_in6", (UV)addrlen, (UV)sizeof(sin6.sin6_addr));
Zero(&sin6, sizeof(sin6), char);
sin6.sin6_family = AF_INET6;
@@ -969,7 +1058,7 @@ pack_sockaddr_in6(port, sin6_addr, scope_id=0, flowinfo=0)
# endif
ST(0) = sv_2mortal(newSVpvn((char *)&sin6, sizeof(sin6)));
#else
- PERL_UNUSED_VAR(port);
+ PERL_UNUSED_VAR(port_sv);
PERL_UNUSED_VAR(sin6_addr);
ST(0) = (SV*)not_here("pack_sockaddr_in6");
#endif
@@ -983,10 +1072,14 @@ unpack_sockaddr_in6(sin6_sv)
#ifdef HAS_SOCKADDR_IN6
STRLEN addrlen;
struct sockaddr_in6 sin6;
- char * addrbytes = SvPVbyte(sin6_sv, addrlen);
+ char * addrbytes;
SV *ip_address_sv;
+ if (!SvOK(sin6_sv))
+ croak("Undefined address for %s", "Socket::unpack_sockaddr_in6");
+ addrbytes = SvPVbyte(sin6_sv, addrlen);
if (addrlen != sizeof(sin6))
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::unpack_sockaddr_in6", (UV)addrlen, (UV)sizeof(sin6));
Copy(addrbytes, &sin6, sizeof(sin6), char);
if (sin6.sin6_family != AF_INET6)
@@ -1039,13 +1132,13 @@ inet_ntop(af, ip_address_sv)
case AF_INET:
if(addrlen != 4)
croak("Bad address length for Socket::inet_ntop on AF_INET;"
- " got %"UVuf", should be 4", (UV)addrlen);
+ " got %" UVuf ", should be 4", (UV)addrlen);
break;
#ifdef AF_INET6
case AF_INET6:
if(addrlen != 16)
croak("Bad address length for Socket::inet_ntop on AF_INET6;"
- " got %"UVuf", should be 16", (UV)addrlen);
+ " got %" UVuf ", should be 16", (UV)addrlen);
break;
#endif
default:
@@ -1133,7 +1226,8 @@ pack_ip_mreq(multiaddr, interface=&PL_sv_undef)
croak("Wide character in %s", "Socket::pack_ip_mreq");
multiaddrbytes = SvPVbyte(multiaddr, len);
if (len != sizeof(mreq.imr_multiaddr))
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_multiaddr));
Zero(&mreq, sizeof(mreq), char);
Copy(multiaddrbytes, &mreq.imr_multiaddr, sizeof(mreq.imr_multiaddr), char);
@@ -1142,7 +1236,8 @@ pack_ip_mreq(multiaddr, interface=&PL_sv_undef)
croak("Wide character in %s", "Socket::pack_ip_mreq");
interfacebytes = SvPVbyte(interface, len);
if (len != sizeof(mreq.imr_interface))
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_interface));
Copy(interfacebytes, &mreq.imr_interface, sizeof(mreq.imr_interface), char);
}
@@ -1164,7 +1259,8 @@ unpack_ip_mreq(mreq_sv)
STRLEN mreqlen;
char * mreqbytes = SvPVbyte(mreq_sv, mreqlen);
if (mreqlen != sizeof(mreq))
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::unpack_ip_mreq", (UV)mreqlen, (UV)sizeof(mreq));
Copy(mreqbytes, &mreq, sizeof(mreq), char);
EXTEND(SP, 2);
@@ -1192,12 +1288,14 @@ pack_ip_mreq_source(multiaddr, source, interface=&PL_sv_undef)
croak("Wide character in %s", "Socket::pack_ip_mreq_source");
multiaddrbytes = SvPVbyte(multiaddr, len);
if (len != sizeof(mreq.imr_multiaddr))
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_multiaddr));
if (DO_UTF8(source) && !sv_utf8_downgrade(source, 1))
croak("Wide character in %s", "Socket::pack_ip_mreq_source");
if (len != sizeof(mreq.imr_sourceaddr))
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_sourceaddr));
sourcebytes = SvPVbyte(source, len);
Zero(&mreq, sizeof(mreq), char);
@@ -1208,7 +1306,8 @@ pack_ip_mreq_source(multiaddr, source, interface=&PL_sv_undef)
croak("Wide character in %s", "Socket::pack_ip_mreq");
interfacebytes = SvPVbyte(interface, len);
if (len != sizeof(mreq.imr_interface))
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::pack_ip_mreq", (UV)len, (UV)sizeof(mreq.imr_interface));
Copy(interfacebytes, &mreq.imr_interface, sizeof(mreq.imr_interface), char);
}
@@ -1232,7 +1331,8 @@ unpack_ip_mreq_source(mreq_sv)
STRLEN mreqlen;
char * mreqbytes = SvPVbyte(mreq_sv, mreqlen);
if (mreqlen != sizeof(mreq))
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::unpack_ip_mreq_source", (UV)mreqlen, (UV)sizeof(mreq));
Copy(mreqbytes, &mreq, sizeof(mreq), char);
EXTEND(SP, 3);
@@ -1259,7 +1359,8 @@ pack_ipv6_mreq(multiaddr, ifindex)
croak("Wide character in %s", "Socket::pack_ipv6_mreq");
multiaddrbytes = SvPVbyte(multiaddr, len);
if (len != sizeof(mreq.ipv6mr_multiaddr))
- croak("Bad arg length %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::pack_ipv6_mreq", (UV)len, (UV)sizeof(mreq.ipv6mr_multiaddr));
Zero(&mreq, sizeof(mreq), char);
Copy(multiaddrbytes, &mreq.ipv6mr_multiaddr, sizeof(mreq.ipv6mr_multiaddr), char);
@@ -1282,7 +1383,8 @@ unpack_ipv6_mreq(mreq_sv)
STRLEN mreqlen;
char * mreqbytes = SvPVbyte(mreq_sv, mreqlen);
if (mreqlen != sizeof(mreq))
- croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
+ croak("Bad arg length for %s, length is %" UVuf
+ ", should be %" UVuf,
"Socket::unpack_ipv6_mreq", (UV)mreqlen, (UV)sizeof(mreq));
Copy(mreqbytes, &mreq, sizeof(mreq), char);
EXTEND(SP, 2);
diff --git a/gnu/usr.bin/perl/cpan/Socket/t/getaddrinfo.t b/gnu/usr.bin/perl/cpan/Socket/t/getaddrinfo.t
index 6f8a324dfbc..b33a3e7c6ea 100644
--- a/gnu/usr.bin/perl/cpan/Socket/t/getaddrinfo.t
+++ b/gnu/usr.bin/perl/cpan/Socket/t/getaddrinfo.t
@@ -22,8 +22,8 @@ ok( defined $res[0]->{addr},
'$res[0] addr is defined' );
if (length $res[0]->{addr}) {
is_deeply( [ unpack_sockaddr_in $res[0]->{addr} ],
- [ 80, inet_aton( "127.0.0.1" ) ],
- '$res[0] addr is {"127.0.0.1", 80}' );
+ [ 80, inet_aton( "127.0.0.1" ) ],
+ '$res[0] addr is {"127.0.0.1", 80}' );
} else {
fail( '$res[0] addr is empty: check $socksizetype' );
}
@@ -50,8 +50,8 @@ cmp_ok( $err, "==", 0, '$err == 0 for host=127.0.0.1/service=undef' );
cmp_ok( $err, "==", 0, '$err == 0 for host=$1' );
ok( scalar @res > 0, '@res has results' );
is( (unpack_sockaddr_in $res[0]->{addr})[1],
- inet_aton( "127.0.0.1" ),
- '$res[0] addr is {"127.0.0.1", ??}' );
+ inet_aton( "127.0.0.1" ),
+ '$res[0] addr is {"127.0.0.1", ??}' );
}
( $err, @res ) = getaddrinfo( "", "80", { family => AF_INET, socktype => SOCK_STREAM, protocol => IPPROTO_TCP } );
@@ -90,13 +90,13 @@ SKIP: {
# Some OSes return $err == 0 but no results
( $err, @res ) = getaddrinfo( $missinghost, "ftp", { socktype => SOCK_STREAM } );
ok( $err != 0 || ( $err == 0 && @res == 0 ),
- '$err != 0 or @res == 0 for host=TbK4jM2M0OS.lm57DWIyu4i/service=ftp/socktype=SOCK_STREAM' );
+ '$err != 0 or @res == 0 for host=TbK4jM2M0OS.lm57DWIyu4i/service=ftp/socktype=SOCK_STREAM' );
if( @res ) {
- # Diagnostic that might help
- while( my $r = shift @res ) {
- diag( "family=$r->{family} socktype=$r->{socktype} protocol=$r->{protocol} addr=[" . length( $r->{addr} ) . " bytes]" );
- diag( " addr=" . join( ", ", map { sprintf '0x%02x', ord $_ } split m//, $r->{addr} ) );
- }
+ # Diagnostic that might help
+ while( my $r = shift @res ) {
+ diag( "family=$r->{family} socktype=$r->{socktype} protocol=$r->{protocol} addr=[" . length( $r->{addr} ) . " bytes]" );
+ diag( " addr=" . join( ", ", map { sprintf '0x%02x', ord $_ } split m//, $r->{addr} ) );
+ }
}
}
@@ -112,11 +112,11 @@ AI_NUMERICHOST: {
# for enabled services but that's kind of yuck, too.
my @port = (80, 7, 22, 25, 88, 123, 110, 389, 443, 445, 873, 2049, 3306);
foreach my $port ( @port ) {
- ( $err, @res ) = getaddrinfo( "127.0.0.1", $port, { flags => AI_NUMERICHOST, socktype => SOCK_STREAM } );
- if( $err == 0 ) {
- ok( $err == 0, "\$err == 0 for 127.0.0.1/$port/flags=AI_NUMERICHOST" );
- last AI_NUMERICHOST;
- }
+ ( $err, @res ) = getaddrinfo( "127.0.0.1", $port, { flags => AI_NUMERICHOST, socktype => SOCK_STREAM } );
+ if( $err == 0 ) {
+ ok( $err == 0, "\$err == 0 for 127.0.0.1/$port/flags=AI_NUMERICHOST" );
+ last AI_NUMERICHOST;
+ }
}
fail( "$err for 127.0.0.1/$port[-1]/flags=AI_NUMERICHOST (failed for ports @port)" );
}
diff --git a/gnu/usr.bin/perl/cpan/Socket/t/socketpair.t b/gnu/usr.bin/perl/cpan/Socket/t/socketpair.t
index 823306eb66c..cb11e26e55e 100644
--- a/gnu/usr.bin/perl/cpan/Socket/t/socketpair.t
+++ b/gnu/usr.bin/perl/cpan/Socket/t/socketpair.t
@@ -83,7 +83,7 @@ $SIG{ALRM} = sub {die "Unexpected alarm during testing"};
ok (socketpair (LEFT, RIGHT, AF_UNIX, SOCK_STREAM, PF_UNSPEC),
"socketpair (LEFT, RIGHT, AF_UNIX, SOCK_STREAM, PF_UNSPEC)")
- or print "# \$\! = $!\n";
+ or print STDERR "# \$\! = $!\n";
if ($has_perlio) {
binmode(LEFT, ":bytes");
@@ -148,7 +148,7 @@ $SIG{PIPE} = 'IGNORE';
# should help
$! = $err;
ok (($!{EPIPE} or $!{ESHUTDOWN}), '$! should be EPIPE or ESHUTDOWN')
- or printf "\$\!=%d(%s)\n", $err, $err;
+ or printf STDERR "# \$\! = %d (%s)\n", $err, $err;
}
my @gripping = (chr 255, chr 127);
@@ -178,7 +178,7 @@ SKIP: {
ok (socketpair (LEFT, RIGHT, AF_UNIX, SOCK_DGRAM, PF_UNSPEC),
"socketpair (LEFT, RIGHT, AF_UNIX, SOCK_DGRAM, PF_UNSPEC)")
- or print "# \$\! = $!\n";
+ or print STDERR "# \$\! = $!\n";
if ($has_perlio) {
binmode(LEFT, ":bytes");
diff --git a/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL b/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL
index fce84965200..d09ba69fc90 100644
--- a/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL
+++ b/gnu/usr.bin/perl/cpan/Sys-Syslog/Makefile.PL
@@ -3,6 +3,7 @@ use strict;
use ExtUtils::MakeMaker;
use File::Copy;
use File::Spec;
+use Config;
# create a typemap for Perl 5.6
@@ -13,7 +14,7 @@ if ($] < 5.008) {
}
# create a lib/ dir in order to avoid warnings in Test::Distribution
-mkdir "lib", $ENV{PERL_CORE} ? 0770 : 0755;
+mkdir "lib", 0755;
# virtual paths given to EU::MM
my %virtual_path = ( 'Syslog.pm' => '$(INST_LIBDIR)/Syslog.pm' );
@@ -33,7 +34,7 @@ if ($^O =~ /Win32/) {
$virtual_path{'win32/Win32.pm' } = '$(INST_LIBDIR)/Syslog/Win32.pm';
$virtual_path{'win32/PerlLog.dll'} = '$(INST_ARCHAUTODIR)/PerlLog.dll';
- push @extra_params, CCFLAGS => "-Ifallback";
+ push @extra_params, CCFLAGS => "$Config{ccflags} -Ifallback";
# recreate the DLL from its uuencoded form if it's not here
if (! -f File::Spec->catfile("win32", "$name.dll")) {
diff --git a/gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm b/gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm
index 28f36c7ea01..96e8632f6e0 100644
--- a/gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm
+++ b/gnu/usr.bin/perl/cpan/Sys-Syslog/Syslog.pm
@@ -3,15 +3,19 @@ use strict;
use warnings;
use warnings::register;
use Carp;
-use Exporter qw< import >;
+use Config;
+use Exporter ();
use File::Basename;
use POSIX qw< strftime setlocale LC_TIME >;
use Socket qw< :all >;
require 5.005;
+*import = \&Exporter::import;
+
+
{ no strict 'vars';
- $VERSION = '0.33_01';
+ $VERSION = '0.35';
%EXPORT_TAGS = (
standard => [qw(openlog syslog closelog setlogmask)],
@@ -71,6 +75,29 @@ require 5.005;
}
+#
+# Constants
+#
+use constant HAVE_GETPROTOBYNAME => $Config::Config{d_getpbyname};
+use constant HAVE_GETPROTOBYNUMBER => $Config::Config{d_getpbynumber};
+use constant HAVE_SETLOCALE => $Config::Config{d_setlocale};
+use constant HAVE_IPPROTO_TCP => defined &Socket::IPPROTO_TCP ? 1 : 0;
+use constant HAVE_IPPROTO_UDP => defined &Socket::IPPROTO_UDP ? 1 : 0;
+use constant HAVE_TCP_NODELAY => defined &Socket::TCP_NODELAY ? 1 : 0;
+
+use constant SOCKET_IPPROTO_TCP =>
+ HAVE_IPPROTO_TCP ? Socket::IPPROTO_TCP
+ : HAVE_GETPROTOBYNAME ? scalar getprotobyname("tcp")
+ : 6;
+
+use constant SOCKET_IPPROTO_UDP =>
+ HAVE_IPPROTO_UDP ? Socket::IPPROTO_UDP
+ : HAVE_GETPROTOBYNAME ? scalar getprotobyname("udp")
+ : 17;
+
+use constant SOCKET_TCP_NODELAY => HAVE_TCP_NODELAY ? Socket::TCP_NODELAY : 1;
+
+
#
# Public variables
#
@@ -117,9 +144,9 @@ if ($^O eq "freebsd" or $^O eq "linux") {
# And on Win32 systems, we try to use the native mechanism for this
# platform, the events logger, available through Win32::EventLog.
EVENTLOG: {
- my $is_Win32 = $^O =~ /Win32/i;
+ my $verbose_if_Win32 = $^O =~ /Win32/i;
- if (can_load("Sys::Syslog::Win32", $is_Win32)) {
+ if (can_load_sys_syslog_win32($verbose_if_Win32)) {
unshift @connectMethods, 'eventlog';
}
}
@@ -209,7 +236,7 @@ my %mechanism = (
check => sub { 1 },
},
eventlog => {
- check => sub { return can_load("Win32::EventLog") },
+ check => sub { return can_load_sys_syslog_win32() },
err_msg => "no Win32 API available",
},
inet => {
@@ -241,7 +268,9 @@ my %mechanism = (
check => sub {
return 1 if defined $sock_port;
- if (getservbyname('syslog', 'tcp') || getservbyname('syslogng', 'tcp')) {
+ if (eval { local $SIG{__DIE__};
+ getservbyname('syslog','tcp') || getservbyname('syslogng','tcp')
+ }) {
$host = $syslog_path;
return 1
}
@@ -255,7 +284,7 @@ my %mechanism = (
check => sub {
return 1 if defined $sock_port;
- if (getservbyname('syslog', 'udp')) {
+ if (eval { local $SIG{__DIE__}; getservbyname('syslog', 'udp') }) {
$host = $syslog_path;
return 1
}
@@ -366,6 +395,7 @@ sub syslog {
if ($priority =~ /^\d+$/) {
$numpri = LOG_PRI($priority);
$numfac = LOG_FAC($priority) << 3;
+ undef $numfac if $numfac == 0; # no facility given => use default
}
elsif ($priority =~ /^\w+/) {
# Allow "level" or "level|facility".
@@ -419,7 +449,8 @@ sub syslog {
$mask =~ s/(?<!%)((?:%%)*)%m/$1$error/g;
}
- $mask .= "\n" unless $mask =~ /\n$/;
+ # add (or not) a newline
+ $mask .= "\n" if !$options{noeol} and rindex($mask, "\n") == -1;
$message = @args ? sprintf($mask, @args) : $mask;
if ($current_proto eq 'native') {
@@ -433,17 +464,27 @@ sub syslog {
$whoami .= "[$$]" if $options{pid};
$sum = $numpri + $numfac;
- my $oldlocale = setlocale(LC_TIME);
- setlocale(LC_TIME, 'C');
- my $timestamp = strftime "%b %d %H:%M:%S", localtime;
- setlocale(LC_TIME, $oldlocale);
+
+ my $oldlocale;
+ if (HAVE_SETLOCALE) {
+ $oldlocale = setlocale(LC_TIME);
+ setlocale(LC_TIME, 'C');
+ }
+
+ # %e format isn't available on all systems (Win32, cf. CPAN RT #69310)
+ my $day = strftime "%e", localtime;
+
+ if (index($day, "%") == 0) {
+ $day = strftime "%d", localtime;
+ $day =~ s/^0/ /;
+ }
+
+ my $timestamp = strftime "%b $day %H:%M:%S", localtime;
+ setlocale(LC_TIME, $oldlocale) if HAVE_SETLOCALE;
# construct the stream that will be transmitted
$buf = "<$sum>$timestamp $whoami: $message";
- # add (or not) a newline
- $buf .= "\n" if !$options{noeol} and rindex($buf, "\n") == -1;
-
# add (or not) a NUL character
$buf .= "\0" if !$options{nonul};
}
@@ -453,7 +494,8 @@ sub syslog {
if ($options{perror} and $current_proto ne 'native') {
my $whoami = $ident;
$whoami .= "[$$]" if $options{pid};
- print STDERR "$whoami: $message\n";
+ print STDERR "$whoami: $message";
+ print STDERR "\n" if rindex($message, "\n") == -1;
}
# it's possible that we'll get an error from sending
@@ -622,14 +664,9 @@ sub connect_log {
sub connect_tcp {
my ($errs) = @_;
- my $proto = getprotobyname('tcp');
- if (!defined $proto) {
- push @$errs, "getprotobyname failed for tcp";
- return 0;
- }
-
- my $port = $sock_port || getservbyname('syslog', 'tcp');
- $port = getservbyname('syslogng', 'tcp') unless defined $port;
+ my $port = $sock_port
+ || eval { local $SIG{__DIE__}; getservbyname('syslog', 'tcp') }
+ || eval { local $SIG{__DIE__}; getservbyname('syslogng', 'tcp') };
if (!defined $port) {
push @$errs, "getservbyname failed for syslog/tcp and syslogng/tcp";
return 0;
@@ -647,16 +684,14 @@ sub connect_tcp {
}
$addr = sockaddr_in($port, $addr);
- if (!socket(SYSLOG, AF_INET, SOCK_STREAM, $proto)) {
+ if (!socket(SYSLOG, AF_INET, SOCK_STREAM, SOCKET_IPPROTO_TCP)) {
push @$errs, "tcp socket: $!";
return 0;
}
setsockopt(SYSLOG, SOL_SOCKET, SO_KEEPALIVE, 1);
- if (silent_eval { IPPROTO_TCP() }) {
- # These constants don't exist in 5.005. They were added in 1999
- setsockopt(SYSLOG, IPPROTO_TCP(), TCP_NODELAY(), 1);
- }
+ setsockopt(SYSLOG, SOCKET_IPPROTO_TCP, SOCKET_TCP_NODELAY, 1);
+
if (!connect(SYSLOG, $addr)) {
push @$errs, "tcp connect: $!";
return 0;
@@ -670,13 +705,8 @@ sub connect_tcp {
sub connect_udp {
my ($errs) = @_;
- my $proto = getprotobyname('udp');
- if (!defined $proto) {
- push @$errs, "getprotobyname failed for udp";
- return 0;
- }
-
- my $port = $sock_port || getservbyname('syslog', 'udp');
+ my $port = $sock_port
+ || eval { local $SIG{__DIE__}; getservbyname('syslog', 'udp') };
if (!defined $port) {
push @$errs, "getservbyname failed for syslog/udp";
return 0;
@@ -694,7 +724,7 @@ sub connect_udp {
}
$addr = sockaddr_in($port, $addr);
- if (!socket(SYSLOG, AF_INET, SOCK_DGRAM, $proto)) {
+ if (!socket(SYSLOG, AF_INET, SOCK_DGRAM, SOCKET_IPPROTO_UDP)) {
push @$errs, "udp socket: $!";
return 0;
}
@@ -874,23 +904,22 @@ sub disconnect_log {
#
-# Wrappers around eval() that makes sure that nobody, and I say NOBODY,
-# ever knows that I wanted to test if something was here or not.
-# It is needed because some applications are trying to be too smart,
-# do it wrong, and it ends up in EPIC FAIL.
-# Yes I'm speaking of YOU, SpamAssassin.
+# Wrappers around eval() that makes sure that nobody, ever knows that
+# we wanted to poke & test if something was here or not. This is needed
+# because some applications are trying to be too smart, install their
+# own __DIE__ handler, and mysteriously, things are starting to fail
+# when they shouldn't. SpamAssassin among them.
#
sub silent_eval (&) {
local($SIG{__DIE__}, $SIG{__WARN__}, $@);
return eval { $_[0]->() }
}
-sub can_load {
- my ($module, $verbose) = @_;
+sub can_load_sys_syslog_win32 {
+ my ($verbose) = @_;
local($SIG{__DIE__}, $SIG{__WARN__}, $@);
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
- my $loaded = eval "use $module; 1";
+ (my $module_path = __FILE__) =~ s:Syslog.pm$:Syslog/Win32.pm:;
+ my $loaded = eval { require $module_path } ? 1 : 0;
warn $@ if not $loaded and $verbose;
return $loaded
}
@@ -906,7 +935,7 @@ Sys::Syslog - Perl interface to the UNIX syslog(3) calls
=head1 VERSION
-This is the documentation of version 0.33
+This is the documentation of version 0.35
=head1 SYNOPSIS
@@ -993,18 +1022,20 @@ opened when the first message is logged).
=item *
C<noeol> - When set to true, no end of line character (C<\n>) will be
-appended to the message. This can be useful for some buggy syslog daemons.
+appended to the message. This can be useful for some syslog daemons.
+Added in C<Sys::Syslog> 0.29.
=item *
C<nofatal> - When set to true, C<openlog()> and C<syslog()> will only
emit warnings instead of dying if the connection to the syslog can't
-be established.
+be established. Added in C<Sys::Syslog> 0.15.
=item *
C<nonul> - When set to true, no C<NUL> character (C<\0>) will be
-appended to the message. This can be useful for some buggy syslog daemons.
+appended to the message. This can be useful for some syslog daemons.
+Added in C<Sys::Syslog> 0.29.
=item *
@@ -1015,7 +1046,7 @@ process, so this option has no effect on Linux.)
=item *
C<perror> - Write the message to standard error output as well to the
-system log (added in C<Sys::Syslog> 0.22).
+system log. Added in C<Sys::Syslog> 0.22.
=item *
@@ -1557,8 +1588,11 @@ Perl and C<Sys::Syslog> versions.
0.06 5.8.7
0.13 5.8.8
0.22 5.10.0
- 0.27 5.8.9, 5.10.1 ~ 5.14.2
- 0.29 5.16.0, 5.16.1
+ 0.27 5.8.9, 5.10.1 ~ 5.14.*
+ 0.29 5.16.*
+ 0.32 5.18.*
+ 0.33 5.20.*
+ 0.33 5.22.*
=head1 SEE ALSO
@@ -1575,31 +1609,34 @@ L<Log::Report> - Report a problem, with exceptions and language support
L<syslog(3)>
-SUSv3 issue 6, IEEE Std 1003.1, 2004 edition,
+SUSv3 issue 6, IEEE Std 1003.1, 2004 edition,
L<http://www.opengroup.org/onlinepubs/000095399/basedefs/syslog.h.html>
-GNU C Library documentation on syslog,
+GNU C Library documentation on syslog,
L<http://www.gnu.org/software/libc/manual/html_node/Syslog.html>
-Solaris 10 documentation on syslog,
-L<http://docs.sun.com/app/docs/doc/816-5168/syslog-3c?a=view>
+FreeBSD documentation on syslog,
+L<https://www.freebsd.org/cgi/man.cgi?query=syslog>
+
+Solaris 11 documentation on syslog,
+L<https://docs.oracle.com/cd/E53394_01/html/E54766/syslog-3c.html>
Mac OS X documentation on syslog,
L<http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/syslog.3.html>
-IRIX 6.5 documentation on syslog,
-L<http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=3c+syslog>
+IRIX documentation on syslog,
+L<http://nixdoc.net/man-pages/IRIX/man3/syslog.3c.html>
-AIX 5L 5.3 documentation on syslog,
+AIX 5L 5.3 documentation on syslog,
L<http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.basetechref/doc/basetrf2/syslog.htm>
-HP-UX 11i documentation on syslog,
+HP-UX 11i documentation on syslog,
L<http://docs.hp.com/en/B2355-60130/syslog.3C.html>
-Tru64 5.1 documentation on syslog,
-L<http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51_HTML/MAN/MAN3/0193____.HTM>
+Tru64 documentation on syslog,
+L<http://nixdoc.net/man-pages/Tru64/man3/syslog.3.html>
-Stratus VOS 15.1,
+Stratus VOS 15.1,
L<http://stratadoc.stratus.com/vos/15.1.1/r502-01/wwhelp/wwhimpl/js/html/wwhelp.htm?context=r502-01&file=ch5r502-01bi.html>
=head2 RFCs
@@ -1667,34 +1704,37 @@ You can find documentation for this module with the perldoc command.
You can also look for information at:
-=over 4
-
-=item * AnnoCPAN: Annotated CPAN documentation
-
-L<http://annocpan.org/dist/Sys-Syslog>
+=over
-=item * CPAN Ratings
+=item * Perl Documentation
-L<http://cpanratings.perl.org/d/Sys-Syslog>
+L<http://perldoc.perl.org/Sys/Syslog.html>
-=item * RT: CPAN's request tracker
+=item * MetaCPAN
-L<http://rt.cpan.org/Dist/Display.html?Queue=Sys-Syslog>
+L<https://metacpan.org/module/Sys::Syslog>
=item * Search CPAN
L<http://search.cpan.org/dist/Sys-Syslog/>
-=item * MetaCPAN
+=item * AnnoCPAN: Annotated CPAN documentation
-L<https://metacpan.org/module/Sys::Syslog>
+L<http://annocpan.org/dist/Sys-Syslog>
-=item * Perl Documentation
+=item * CPAN Ratings
-L<http://perldoc.perl.org/Sys/Syslog.html>
+L<http://cpanratings.perl.org/d/Sys-Syslog>
+
+=item * RT: CPAN's request tracker
+
+L<http://rt.cpan.org/Dist/Display.html?Queue=Sys-Syslog>
=back
+The source code is available on Git Hub:
+L<https://github.com/maddingue/Sys-Syslog/>
+
=head1 COPYRIGHT
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/bin/prove b/gnu/usr.bin/perl/cpan/Test-Harness/bin/prove
index d71b2387d93..3d41db06bd0 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/bin/prove
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/bin/prove
@@ -72,6 +72,7 @@ Options that take arguments:
-a, --archive out.tgz Store the resulting TAP in an archive file.
-j, --jobs N Run N test jobs in parallel (try 9.)
--state=opts Control prove's persistent state.
+ --statefile=file Use `file` instead of `.prove` for state
--rc=rcfile Process options from rcfile
--rules Rules for parallel vs sequential processing.
@@ -109,12 +110,12 @@ matching the pattern C<t/*.t>.
=head2 Colored Test Output
-Colored test output using L<TAP::Formatter::Color> is the default, but
-if output is not to a terminal, color is disabled. You can override this by
+Colored test output using L<TAP::Formatter::Color> is the default, but
+if output is not to a terminal, color is disabled. You can override this by
adding the C<--color> switch.
-Color support requires L<Term::ANSIColor> on Unix-like platforms and
-L<Win32::Console> on windows. If the necessary module is not installed
+Color support requires L<Term::ANSIColor> and, on windows platforms, also
+L<Win32::Console::ANSI>. If the necessary module(s) are not installed
colored output will not be available.
=head2 Exit Code
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove.pm
index 32eb59c2a5c..9298726d24f 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove.pm
@@ -18,11 +18,11 @@ App::Prove - Implements the C<prove> command.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
@@ -59,6 +59,7 @@ BEGIN {
verbose warnings_fail warnings_warn show_help show_man show_version
state_class test_args state dry extensions ignore_exit rules state_manager
normalize sources tapversion trap
+ statefile
);
__PACKAGE__->mk_methods(@ATTR);
}
@@ -229,6 +230,7 @@ sub process_args {
'M=s@' => $self->{modules},
'P=s@' => $self->{plugins},
'state=s@' => $self->{state},
+ 'statefile=s' => \$self->{statefile},
'directives' => \$self->{directives},
'h|help|?' => \$self->{show_help},
'H|man' => \$self->{show_man},
@@ -279,7 +281,7 @@ sub _help {
sub _color_default {
my $self = shift;
- return -t STDOUT && !$ENV{HARNESS_NOTTY} && !IS_WIN32;
+ return -t STDOUT && !$ENV{HARNESS_NOTTY};
}
sub _get_args {
@@ -479,7 +481,7 @@ sub run {
unless ( $self->state_manager ) {
$self->state_manager(
- $self->state_class->new( { store => STATE_FILE } ) );
+ $self->state_class->new( { store => $self->statefile || STATE_FILE } ) );
}
if ( $self->show_help ) {
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State.pm
index e352fb3f4a5..0b61a824590 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State.pm
@@ -25,11 +25,11 @@ App::Prove::State - State storage for the C<prove> command.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result.pm
index 931e52b1d95..8f89c775aff 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result.pm
@@ -14,11 +14,11 @@ App::Prove::State::Result - Individual test suite results.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm
index 4819ed82183..b795280f307 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm
@@ -9,11 +9,11 @@ App::Prove::State::Result::Test - Individual test results.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Base.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Base.pm
index e6ea22d6ecd..78e07ab0547 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Base.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Base.pm
@@ -12,11 +12,11 @@ and L<TAP::Harness>
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
use constant GOT_TIME_HIRES => do {
eval 'use Time::HiRes qw(time);';
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Base.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Base.pm
index a2fa3ea765f..bf65e12ca15 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Base.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Base.pm
@@ -58,11 +58,11 @@ TAP::Formatter::Base - Base class for harness output delegates
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Color.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Color.pm
index 728247c07d7..79807901012 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Color.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Color.pm
@@ -12,56 +12,24 @@ my $NO_COLOR;
BEGIN {
$NO_COLOR = 0;
+ eval 'require Term::ANSIColor';
+ if ($@) {
+ $NO_COLOR = $@;
+ };
if (IS_WIN32) {
- eval 'use Win32::Console';
+ eval 'use Win32::Console::ANSI';
if ($@) {
$NO_COLOR = $@;
}
- else {
- my $console = Win32::Console->new( STD_OUTPUT_HANDLE() );
-
- # eval here because we might not know about these variables
- my $fg = eval '$FG_LIGHTGRAY';
- my $bg = eval '$BG_BLACK';
-
- *set_color = sub {
- my ( $self, $output, $color ) = @_;
-
- my $var;
- if ( $color eq 'reset' ) {
- $fg = eval '$FG_LIGHTGRAY';
- $bg = eval '$BG_BLACK';
- }
- elsif ( $color =~ /^on_(.+)$/ ) {
- $bg = eval '$BG_' . uc($1);
- }
- else {
- $fg = eval '$FG_' . uc($color);
- }
-
- # In case of colors that aren't defined
- $self->set_color('reset')
- unless defined $bg && defined $fg;
-
- $console->Attr( $bg | $fg );
- };
- }
- }
- else {
- eval 'use Term::ANSIColor';
- if ($@) {
- $NO_COLOR = $@;
- }
- else {
- *set_color = sub {
- my ( $self, $output, $color ) = @_;
- $output->( color($color) );
- };
- }
- }
+ };
if ($NO_COLOR) {
*set_color = sub { };
+ } else {
+ *set_color = sub {
+ my ( $self, $output, $color ) = @_;
+ $output->( Term::ANSIColor::color($color) );
+ };
}
}
@@ -71,11 +39,11 @@ TAP::Formatter::Color - Run Perl test scripts with color
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
@@ -87,7 +55,7 @@ in color. Passing tests are printed in green. Failing tests are in red.
Skipped tests are blue on a white background and TODO tests are printed in
white.
-If L<Term::ANSIColor> cannot be found (or L<Win32::Console> if running
+If L<Term::ANSIColor> cannot be found (and L<Win32::Console::ANSI> if running
under Windows) tests will be run without color.
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console.pm
index 8cc3060dac3..1c82ef43c6c 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console.pm
@@ -11,11 +11,11 @@ TAP::Formatter::Console - Harness output delegate for default console output
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm
index c8cdf7c998d..6826b4e379f 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm
@@ -41,11 +41,11 @@ TAP::Formatter::Console::ParallelSession - Harness output delegate for parallel
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm
index 8a15812f3d8..492bdd7b081 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm
@@ -26,11 +26,11 @@ TAP::Formatter::Console::Session - Harness output delegate for default console o
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File.pm
index 45d93a1860e..ced7b3f85ea 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File.pm
@@ -13,11 +13,11 @@ TAP::Formatter::File - Harness output delegate for file output
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm
index 371d7d56c63..3403540e40b 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm
@@ -10,11 +10,11 @@ TAP::Formatter::File::Session - Harness output delegate for file output
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Session.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Session.pm
index 2924276f331..2022220aaaf 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Session.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Formatter/Session.pm
@@ -23,11 +23,11 @@ TAP::Formatter::Session - Abstract base class for harness output delegate
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 METHODS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness.pm
index c916a32edd0..a2f6daf1dbd 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness.pm
@@ -16,11 +16,11 @@ TAP::Harness - Run test scripts with statistics
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
$ENV{HARNESS_ACTIVE} = 1;
$ENV{HARNESS_VERSION} = $VERSION;
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness/Env.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness/Env.pm
index 0a328da76a7..077626df2de 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness/Env.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Harness/Env.pm
@@ -7,7 +7,7 @@ use constant IS_VMS => ( $^O eq 'VMS' );
use TAP::Object;
use Text::ParseWords qw/shellwords/;
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
# Get the parts of @INC which are changed from the stock list AND
# preserve reordering of stock directories.
@@ -126,7 +126,7 @@ TAP::Harness::Env - Parsing harness related environmental variables where approp
=head1 VERSION
-Version 3.36
+Version 3.42
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Object.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Object.pm
index 5195bd7f26c..e9da17f4ff1 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Object.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Object.pm
@@ -9,11 +9,11 @@ TAP::Object - Base class that provides common functionality to all C<TAP::*> mod
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser.pm
index f688c722f06..34f411048e3 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser.pm
@@ -27,11 +27,11 @@ TAP::Parser - Parse L<TAP|Test::Harness::TAP> output
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
my $DEFAULT_TAP_VERSION = 12;
my $MAX_TAP_VERSION = 13;
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm
index 94289a44c85..65be445f308 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm
@@ -12,11 +12,11 @@ TAP::Parser::Aggregator - Aggregate TAP::Parser results
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm
index e4ab7b4ecc1..ff0f2aa2ad7 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm
@@ -14,11 +14,11 @@ TAP::Parser::Grammar - A grammar for the Test Anything Protocol.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
@@ -178,7 +178,7 @@ my %language_for;
my %v13 = (
%v12,
plan => {
- syntax => qr/^1\.\.(\d+)(?:\s*#\s*SKIP\b(.*))?\z/i,
+ syntax => qr/^1\.\.(\d+)\s*(?:\s*#\s*SKIP\b(.*))?\z/i,
handler => sub {
my ( $self, $line ) = @_;
my ( $tests_planned, $explanation ) = ( $1, $2 );
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm
index 93b8a7f5d08..fab48cb2bed 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator - Base class for TAP source iterators
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm
index ce7000beaa3..5a098cca7c0 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator::Array - Iterator for array-based TAP sources
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm
index cf842998d22..a121485aec4 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm
@@ -16,11 +16,11 @@ TAP::Parser::Iterator::Process - Iterator for process-based TAP sources
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm
index f98527969e0..2a21485357f 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator::Stream - Iterator for filehandle-based TAP sources
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
@@ -90,6 +90,16 @@ sub _finish {
close delete $self->{fh};
}
+sub get_select_handles {
+ my $self = shift;
+
+ # return our handle in case it's a socket or pipe (select()-able)
+ return ( $self->{fh}, )
+ if (-S $self->{fh} || -p $self->{fh});
+
+ return;
+}
+
1;
=head1 ATTRIBUTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm
index 7a80031be03..cd677028bd8 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm
@@ -16,11 +16,11 @@ TAP::Parser::IteratorFactory - Figures out which SourceHandler objects to use fo
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
@@ -243,19 +243,14 @@ sub detect_source {
confess('no raw source ref defined!') unless defined $source->raw;
# find a list of handlers that can handle this source:
- my %handlers;
- for my $dclass ( @{ $self->handlers } ) {
- my $confidence = $dclass->can_handle($source);
-
- # warn "handler: $dclass: $confidence\n";
- $handlers{$dclass} = $confidence if $confidence;
+ my %confidence_for;
+ for my $handler ( @{ $self->handlers } ) {
+ my $confidence = $handler->can_handle($source);
+ # warn "handler: $handler: $confidence\n";
+ $confidence_for{$handler} = $confidence if $confidence;
}
- if ( !%handlers ) {
-
- # use Data::Dump qw( pp );
- # warn pp( $meta );
-
+ if ( !%confidence_for ) {
# error: can't detect source
my $raw_source_short = substr( ${ $source->raw }, 0, 50 );
confess("Cannot detect source of '$raw_source_short'!");
@@ -263,23 +258,30 @@ sub detect_source {
}
# if multiple handlers can handle it, choose the most confident one
- my @handlers = (
- map {$_}
- sort { $handlers{$a} cmp $handlers{$b} }
- keys %handlers
- );
+ my @handlers =
+ sort { $confidence_for{$b} <=> $confidence_for{$a} }
+ keys %confidence_for;
+
+ # Check for a tie.
+ if( @handlers > 1 &&
+ $confidence_for{$handlers[0]} == $confidence_for{$handlers[1]}
+ ) {
+ my $filename = $source->meta->{file}{basename};
+ die("There is a tie between $handlers[0] and $handlers[1].\n".
+ "Both voted $confidence_for{$handlers[0]} on $filename.\n");
+ }
# this is really useful for debugging handlers:
if ( $ENV{TAP_HARNESS_SOURCE_FACTORY_VOTES} ) {
warn(
"votes: ",
- join( ', ', map {"$_: $handlers{$_}"} @handlers ),
+ join( ', ', map {"$_: $confidence_for{$_}"} @handlers ),
"\n"
);
}
# return 1st
- return pop @handlers;
+ return $handlers[0];
}
1;
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm
index 55701f84a2d..16af2d30854 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm
@@ -17,11 +17,11 @@ TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result.pm
index 270a24a63c7..c8927968dbe 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result.pm
@@ -24,11 +24,11 @@ TAP::Parser::Result - Base class for TAP::Parser output objects
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm
index d5c7e8cfdf9..facae6fe8e4 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Bailout - Bailout result token.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm
index a519634436c..0f99b57b08e 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Comment - Comment result token.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm
index 0b2b3362457..9db060e90df 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Plan - Plan result token.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm
index 40380e7c603..c7a26beeedd 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Pragma - TAP pragma token.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm
index 46b63e9ef07..b3bd224c16f 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Test - Test result token.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm
index 89935239c19..d735ed165ac 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Unknown - Unknown result token.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm
index 28bab595b9f..5f4cb932bd3 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Version - TAP syntax version token.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm
index e93b43782de..a88b8da1f7e 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::YAML - YAML result token.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm
index c45074d08f8..27776ea05c7 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm
@@ -29,11 +29,11 @@ TAP::Parser::ResultFactory - Factory for creating TAP::Parser output objects
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head2 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm
index 2eea054d5e0..e13d68e087b 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm
@@ -13,11 +13,11 @@ TAP::Parser::Scheduler - Schedule tests during parallel testing
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
@@ -87,7 +87,7 @@ Here are some examples:
],
}
- # Run some startup tests in sequence, then some parallel tests than some
+ # Run some startup tests in sequence, then some parallel tests then some
# teardown tests in sequence.
{
seq => [
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm
index c5bb3544c5d..b765ab27b0e 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Job - A single testing job.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm
index 768ade96ef8..47bc28fc913 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Spinner - A no-op job.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Source.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Source.pm
index 1b4c2110fc3..5bd85e37f71 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Source.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/Source.pm
@@ -14,11 +14,11 @@ TAP::Parser::Source - a TAP source & meta data about it
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm
index e2d1cf960ae..0156b99fd68 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm
@@ -12,11 +12,11 @@ TAP::Parser::SourceHandler - Base class for different TAP source handlers
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm
index a4df5dabbe2..376e8d148d8 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::Executable - Stream output from an executable TAP so
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm
index 30187a028f3..7e1843759e8 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::File - Stream TAP from a text file.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
@@ -71,7 +71,8 @@ sub can_handle {
return 0.9 if $file->{lc_ext} eq '.tap';
if ( my $exts = $config->{extensions} ) {
- return 0.9 if grep { lc($_) eq $file->{lc_ext} } @$exts;
+ my @exts = ref $exts eq 'ARRAY' ? @$exts : $exts;
+ return 0.9 if grep { lc($_) eq $file->{lc_ext} } @exts;
}
return 0;
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm
index 05b8dcb5a87..a0a051340f7 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::Handle - Stream TAP from an IO::Handle or a GLOB.
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm
index 7d238cd6249..c2ea252ec2a 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm
@@ -21,11 +21,11 @@ TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm
index 6dfc815c5ac..2ef77118bc8 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::RawTAP - Stream output from raw TAP in a scalar/arra
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm
index 3381fa110e2..1a8185eb6b5 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm
@@ -5,7 +5,7 @@ use warnings;
use base 'TAP::Object';
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
# TODO:
# Handle blessed object syntax
@@ -269,7 +269,7 @@ TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator
=head1 VERSION
-Version 3.36
+Version 3.42
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm
index 4897aa88478..904244ae110 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm
@@ -5,7 +5,7 @@ use warnings;
use base 'TAP::Object';
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
my $ESCAPE_CHAR = qr{ [ \x00-\x1f \" ] }x;
my $ESCAPE_KEY = qr{ (?: ^\W ) | $ESCAPE_CHAR }x;
@@ -146,7 +146,7 @@ TAP::Parser::YAMLish::Writer - Write YAMLish data
=head1 VERSION
-Version 3.36
+Version 3.42
=head1 SYNOPSIS
diff --git a/gnu/usr.bin/perl/cpan/Test-Harness/lib/Test/Harness.pm b/gnu/usr.bin/perl/cpan/Test-Harness/lib/Test/Harness.pm
index fe9d3049f9f..6cce46e3b62 100644
--- a/gnu/usr.bin/perl/cpan/Test-Harness/lib/Test/Harness.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Harness/lib/Test/Harness.pm
@@ -31,11 +31,11 @@ Test::Harness - Run Perl standard test scripts with statistics
=head1 VERSION
-Version 3.36
+Version 3.42
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.42';
# Backwards compatibility for exportable variable names.
*verbose = *Verbose;
@@ -147,6 +147,7 @@ sub runtests {
my $harness = _new_harness();
my $aggregate = TAP::Parser::Aggregator->new();
+ local $ENV{PERL_USE_UNSAFE_INC} = 1 if not exists $ENV{PERL_USE_UNSAFE_INC};
_aggregate( $harness, $aggregate, @tests );
$harness->formatter->summary($aggregate);
@@ -354,6 +355,7 @@ sub execute_tests {
}
);
+ local $ENV{PERL_USE_UNSAFE_INC} = 1 if not exists $ENV{PERL_USE_UNSAFE_INC};
_aggregate( $harness, $aggregate, @{ $args{tests} } );
$tot{bench} = $aggregate->elapsed;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm
index a8e7bd95b1c..46f93cc706f 100644
--- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm
@@ -4,8 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.001014';
-$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = '1.302133';
BEGIN {
if( $] < 5.008 ) {
@@ -13,516 +12,447 @@ BEGIN {
}
}
+use Scalar::Util qw/blessed reftype weaken/;
+use Test2::Util qw/USE_THREADS try get_tid/;
+use Test2::API qw/context release/;
# Make Test::Builder thread-safe for ithreads.
BEGIN {
- use Config;
- # Load threads::shared when threads are turned on.
- # 5.8.0's threads are so busted we no longer support them.
- if( $] >= 5.008001 && $Config{useithreads} && $INC{'threads.pm'} ) {
- require threads::shared;
-
- # Hack around YET ANOTHER threads::shared bug. It would
- # occasionally forget the contents of the variable when sharing it.
- # So we first copy the data, then share, then put our copy back.
- *share = sub (\[$@%]) {
- my $type = ref $_[0];
- my $data;
-
- if( $type eq 'HASH' ) {
- %$data = %{ $_[0] };
- }
- elsif( $type eq 'ARRAY' ) {
- @$data = @{ $_[0] };
- }
- elsif( $type eq 'SCALAR' ) {
- $$data = ${ $_[0] };
- }
- else {
- die( "Unknown type: " . $type );
- }
-
- $_[0] = &threads::shared::share( $_[0] );
-
- if( $type eq 'HASH' ) {
- %{ $_[0] } = %$data;
- }
- elsif( $type eq 'ARRAY' ) {
- @{ $_[0] } = @$data;
- }
- elsif( $type eq 'SCALAR' ) {
- ${ $_[0] } = $$data;
- }
- else {
- die( "Unknown type: " . $type );
- }
+ warn "Test::Builder was loaded after Test2 initialization, this is not recommended."
+ if Test2::API::test2_init_done() || Test2::API::test2_load_done();
- return $_[0];
- };
- }
- # 5.8.0's threads::shared is busted when threads are off
- # and earlier Perls just don't have that module at all.
- else {
- *share = sub { return $_[0] };
- *lock = sub { 0 };
+ if (USE_THREADS && ! Test2::API::test2_ipc_disabled()) {
+ require Test2::IPC;
+ require Test2::IPC::Driver::Files;
+ Test2::IPC::Driver::Files->import;
+ Test2::API::test2_ipc_enable_polling();
+ Test2::API::test2_no_wait(1);
+ Test2::API::test2_ipc_enable_shm();
}
}
-=head1 NAME
+use Test2::Event::Subtest;
+use Test2::Hub::Subtest;
-Test::Builder - Backend for building test libraries
+use Test::Builder::Formatter;
+use Test::Builder::TodoDiag;
-=head1 SYNOPSIS
+our $Level = 1;
+our $Test = $ENV{TB_NO_EARLY_INIT} ? undef : Test::Builder->new;
- package My::Test::Module;
- use base 'Test::Builder::Module';
+sub _add_ts_hooks {
+ my $self = shift;
- my $CLASS = __PACKAGE__;
+ my $hub = $self->{Stack}->top;
- sub ok {
- my($test, $name) = @_;
- my $tb = $CLASS->builder;
+ # Take a reference to the hash key, we do this to avoid closing over $self
+ # which is the singleton. We use a reference because the value could change
+ # in rare cases.
+ my $epkgr = \$self->{Exported_To};
- $tb->ok($test, $name);
- }
+ #$hub->add_context_aquire(sub {$_[0]->{level} += $Level - 1});
+ $hub->pre_filter(sub {
+ my ($active_hub, $e) = @_;
-=head1 DESCRIPTION
+ my $epkg = $$epkgr;
+ my $cpkg = $e->{trace} ? $e->{trace}->{frame}->[0] : undef;
-L<Test::Simple> and L<Test::More> have proven to be popular testing modules,
-but they're not always flexible enough. Test::Builder provides a
-building block upon which to write your own test libraries I<which can
-work together>.
-
-=head2 Construction
-
-=over 4
+ no strict 'refs';
+ no warnings 'once';
+ my $todo;
+ $todo = ${"$cpkg\::TODO"} if $cpkg;
+ $todo = ${"$epkg\::TODO"} if $epkg && !$todo;
-=item B<new>
+ return $e unless $todo;
- my $Test = Test::Builder->new;
+ # Turn a diag into a todo diag
+ return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 'Test2::Event::Diag';
-Returns a Test::Builder object representing the current state of the
-test.
+ if ($active_hub == $hub) {
+ $e->set_todo($todo) if $e->can('set_todo');
+ $e->add_amnesty({tag => 'TODO', details => $todo});
+ }
+ else {
+ $e->add_amnesty({tag => 'TODO', details => $todo, inherited => 1});
+ }
-Since you only run one test per program C<new> always returns the same
-Test::Builder object. No matter how many times you call C<new()>, you're
-getting the same object. This is called a singleton. This is done so that
-multiple modules share such global information as the test counter and
-where test output is going.
+ # Set todo on ok's
+ if ($e->isa('Test2::Event::Ok')) {
+ $e->set_effective_pass(1);
-If you want a completely new Test::Builder object different from the
-singleton, use C<create>.
+ if (my $result = $e->get_meta(__PACKAGE__)) {
+ $result->{reason} ||= $todo;
+ $result->{type} ||= 'todo';
+ $result->{ok} = 1;
+ }
+ }
-=cut
+ return $e;
+ }, inherit => 1);
+}
-our $Test = Test::Builder->new;
+{
+ no warnings;
+ INIT {
+ use warnings;
+ Test2::API::test2_load() unless Test2::API::test2_in_preload();
+ }
+}
sub new {
my($class) = shift;
- $Test ||= $class->create;
- return $Test;
-}
-
-=item B<create>
-
- my $Test = Test::Builder->create;
+ unless($Test) {
+ $Test = $class->create(singleton => 1);
+
+ Test2::API::test2_add_callback_post_load(
+ sub {
+ $Test->{Original_Pid} = $$ if !$Test->{Original_Pid} || $Test->{Original_Pid} == 0;
+ $Test->reset(singleton => 1);
+ $Test->_add_ts_hooks;
+ }
+ );
-Ok, so there can be more than one Test::Builder object and this is how
-you get it. You might use this instead of C<new()> if you're testing
-a Test::Builder based module, but otherwise you probably want C<new>.
+ # Non-TB tools normally expect 0 added to the level. $Level is normally 1. So
+ # we only want the level to change if $Level != 1.
+ # TB->ctx compensates for this later.
+ Test2::API::test2_add_callback_context_aquire(sub { $_[0]->{level} += $Level - 1 });
-B<NOTE>: the implementation is not complete. C<level>, for example, is
-still shared amongst B<all> Test::Builder objects, even ones created using
-this method. Also, the method name may change in the future.
+ Test2::API::test2_add_callback_exit(sub { $Test->_ending(@_) });
-=cut
+ Test2::API::test2_ipc()->set_no_fatal(1) if Test2::API::test2_has_ipc();
+ }
+ return $Test;
+}
sub create {
my $class = shift;
+ my %params = @_;
my $self = bless {}, $class;
- $self->reset;
+ if ($params{singleton}) {
+ $self->{Stack} = Test2::API::test2_stack();
+ }
+ else {
+ $self->{Stack} = Test2::API::Stack->new;
+ $self->{Stack}->new_hub(
+ formatter => Test::Builder::Formatter->new,
+ ipc => Test2::API::test2_ipc(),
+ );
+
+ $self->reset(%params);
+ $self->_add_ts_hooks;
+ }
return $self;
}
-
-# Copy an object, currently a shallow.
-# This does *not* bless the destination. This keeps the destructor from
-# firing when we're just storing a copy of the object to restore later.
-sub _copy {
- my($src, $dest) = @_;
-
- %$dest = %$src;
- _share_keys($dest);
-
- return;
+sub ctx {
+ my $self = shift;
+ context(
+ # 1 for our frame, another for the -1 off of $Level in our hook at the top.
+ level => 2,
+ fudge => 1,
+ stack => $self->{Stack},
+ hub => $self->{Hub},
+ wrapped => 1,
+ @_
+ );
}
+sub parent {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ my $chub = $self->{Hub} || $ctx->hub;
+ $ctx->release;
-=item B<child>
-
- my $child = $builder->child($name_of_child);
- $child->plan( tests => 4 );
- $child->ok(some_code());
- ...
- $child->finalize;
-
-Returns a new instance of C<Test::Builder>. Any output from this child will
-be indented four spaces more than the parent's indentation. When done, the
-C<finalize> method I<must> be called explicitly.
-
-Trying to create a new child with a previous child still active (i.e.,
-C<finalize> not called) will C<croak>.
+ my $meta = $chub->meta(__PACKAGE__, {});
+ my $parent = $meta->{parent};
-Trying to run a test when you have an open child will also C<croak> and cause
-the test suite to fail.
+ return undef unless $parent;
-=cut
+ return bless {
+ Original_Pid => $$,
+ Stack => $self->{Stack},
+ Hub => $parent,
+ }, blessed($self);
+}
sub child {
my( $self, $name ) = @_;
- if( $self->{Child_Name} ) {
- $self->croak("You already have a child named ($self->{Child_Name}) running");
- }
+ $name ||= "Child of " . $self->name;
+ my $ctx = $self->ctx;
+
+ my $parent = $ctx->hub;
+ my $pmeta = $parent->meta(__PACKAGE__, {});
+ $self->croak("You already have a child named ($pmeta->{child}) running")
+ if $pmeta->{child};
- my $parent_in_todo = $self->in_todo;
+ $pmeta->{child} = $name;
# Clear $TODO for the child.
my $orig_TODO = $self->find_TODO(undef, 1, undef);
- my $class = ref $self;
- my $child = $class->create;
+ my $subevents = [];
- # Add to our indentation
- $child->_indent( $self->_indent . ' ' );
+ my $hub = $ctx->stack->new_hub(
+ class => 'Test2::Hub::Subtest',
+ );
- # Make the child use the same outputs as the parent
- for my $method (qw(output failure_output todo_output)) {
- $child->$method( $self->$method );
- }
+ $hub->pre_filter(sub {
+ my ($active_hub, $e) = @_;
- # Ensure the child understands if they're inside a TODO
- if( $parent_in_todo ) {
- $child->failure_output( $self->todo_output );
- }
+ # Turn a diag into a todo diag
+ return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 'Test2::Event::Diag';
- # This will be reset in finalize. We do this here lest one child failure
- # cause all children to fail.
- $child->{Child_Error} = $?;
- $? = 0;
- $child->{Parent} = $self;
- $child->{Parent_TODO} = $orig_TODO;
- $child->{Name} = $name || "Child of " . $self->name;
- $self->{Child_Name} = $child->name;
- return $child;
-}
+ return $e;
+ }, inherit => 1) if $orig_TODO;
+ $hub->listen(sub { push @$subevents => $_[1] });
-=item B<subtest>
+ $hub->set_nested( $parent->nested + 1 );
- $builder->subtest($name, \&subtests, @args);
+ my $meta = $hub->meta(__PACKAGE__, {});
+ $meta->{Name} = $name;
+ $meta->{TODO} = $orig_TODO;
+ $meta->{TODO_PKG} = $ctx->trace->package;
+ $meta->{parent} = $parent;
+ $meta->{Test_Results} = [];
+ $meta->{subevents} = $subevents;
+ $meta->{subtest_id} = $hub->id;
+ $meta->{subtest_uuid} = $hub->uuid;
+ $meta->{subtest_buffered} = $parent->format ? 0 : 1;
-See documentation of C<subtest> in Test::More.
+ $self->_add_ts_hooks;
-C<subtest> also, and optionally, accepts arguments which will be passed to the
-subtests reference.
-
-=cut
+ $ctx->release;
+ return bless { Original_Pid => $$, Stack => $self->{Stack}, Hub => $hub, no_log_results => $self->{no_log_results} }, blessed($self);
+}
-sub subtest {
+sub finalize {
my $self = shift;
- my($name, $subtests, @args) = @_;
-
- if ('CODE' ne ref $subtests) {
- $self->croak("subtest()'s second argument must be a code ref");
- }
-
- # Turn the child into the parent so anyone who has stored a copy of
- # the Test::Builder singleton will get the child.
- my $error;
- my $child;
- my $parent = {};
- {
- # child() calls reset() which sets $Level to 1, so we localize
- # $Level first to limit the scope of the reset to the subtest.
- local $Test::Builder::Level = $Test::Builder::Level + 1;
+ my $ok = 1;
+ ($ok) = @_ if @_;
- # Store the guts of $self as $parent and turn $child into $self.
- $child = $self->child($name);
- _copy($self, $parent);
- _copy($child, $self);
-
- my $run_the_subtests = sub {
- # Add subtest name for clarification of starting point
- $self->note("Subtest: $name");
- $subtests->(@args);
- $self->done_testing unless $self->_plan_handled;
- 1;
- };
+ my $st_ctx = $self->ctx;
+ my $chub = $self->{Hub} || return $st_ctx->release;
- if( !eval { $run_the_subtests->() } ) {
- $error = $@;
- }
+ my $meta = $chub->meta(__PACKAGE__, {});
+ if ($meta->{child}) {
+ $self->croak("Can't call finalize() with child ($meta->{child}) active");
}
- # Restore the parent and the copied child.
- _copy($self, $child);
- _copy($parent, $self);
-
- # Restore the parent's $TODO
- $self->find_TODO(undef, 1, $child->{Parent_TODO});
-
- # Die *after* we restore the parent.
- die $error if $error and !eval { $error->isa('Test::Builder::Exception') };
-
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- my $finalize = $child->finalize;
-
- $self->BAIL_OUT($child->{Bailed_Out_Reason}) if $child->{Bailed_Out};
-
- return $finalize;
-}
-
-=begin _private
-
-=item B<_plan_handled>
-
- if ( $Test->_plan_handled ) { ... }
-
-Returns true if the developer has explicitly handled the plan via:
-
-=over 4
-
-=item * Explicitly setting the number of tests
-
-=item * Setting 'no_plan'
-
-=item * Set 'skip_all'.
-
-=back
-
-This is currently used in subtests when we implicitly call C<< $Test->done_testing >>
-if the developer has not set a plan.
-
-=end _private
-
-=cut
-
-sub _plan_handled {
- my $self = shift;
- return $self->{Have_Plan} || $self->{No_Plan} || $self->{Skip_All};
-}
-
-
-=item B<finalize>
+ local $? = 0; # don't fail if $subtests happened to set $? nonzero
- my $ok = $child->finalize;
+ $self->{Stack}->pop($chub);
-When your child is done running tests, you must call C<finalize> to clean up
-and tell the parent your pass/fail status.
+ $self->find_TODO($meta->{TODO_PKG}, 1, $meta->{TODO});
-Calling C<finalize> on a child with open children will C<croak>.
+ my $parent = $self->parent;
+ my $ctx = $parent->ctx;
+ my $trace = $ctx->trace;
+ delete $ctx->hub->meta(__PACKAGE__, {})->{child};
-If the child falls out of scope before C<finalize> is called, a failure
-diagnostic will be issued and the child is considered to have failed.
+ $chub->finalize($trace->snapshot(hid => $chub->hid, nested => $chub->nested), 1)
+ if $ok
+ && $chub->count
+ && !$chub->no_ending
+ && !$chub->ended;
-No attempt to call methods on a child after C<finalize> is called is
-guaranteed to succeed.
+ my $plan = $chub->plan || 0;
+ my $count = $chub->count;
+ my $failed = $chub->failed;
+ my $passed = $chub->is_passing;
-Calling this on the root builder is a no-op.
+ my $num_extra = $plan =~ m/\D/ ? 0 : $count - $plan;
+ if ($count && $num_extra != 0) {
+ my $s = $plan == 1 ? '' : 's';
+ $st_ctx->diag(<<"FAIL");
+Looks like you planned $plan test$s but ran $count.
+FAIL
+ }
-=cut
+ if ($failed) {
+ my $s = $failed == 1 ? '' : 's';
-sub finalize {
- my $self = shift;
+ my $qualifier = $num_extra == 0 ? '' : ' run';
- return unless $self->parent;
- if( $self->{Child_Name} ) {
- $self->croak("Can't call finalize() with child ($self->{Child_Name}) active");
+ $st_ctx->diag(<<"FAIL");
+Looks like you failed $failed test$s of $count$qualifier.
+FAIL
}
- local $? = 0; # don't fail if $subtests happened to set $? nonzero
- $self->_ending;
+ if (!$passed && !$failed && $count && !$num_extra) {
+ $st_ctx->diag(<<"FAIL");
+All assertions inside the subtest passed, but errors were encountered.
+FAIL
+ }
- # XXX This will only be necessary for TAP envelopes (we think)
- #$self->_print( $self->is_passing ? "PASS\n" : "FAIL\n" );
+ $st_ctx->release;
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- my $ok = 1;
- $self->parent->{Child_Name} = undef;
- unless ($self->{Bailed_Out}) {
- if ( $self->{Skip_All} ) {
- $self->parent->skip($self->{Skip_All}, $self->name);
+ unless ($chub->bailed_out) {
+ my $plan = $chub->plan;
+ if ( $plan && $plan eq 'SKIP' ) {
+ $parent->skip($chub->skip_reason, $meta->{Name});
}
- elsif ( not @{ $self->{Test_Results} } ) {
- $self->parent->ok( 0, sprintf q[No tests run for subtest "%s"], $self->name );
+ elsif ( !$chub->count ) {
+ $parent->ok( 0, sprintf q[No tests run for subtest "%s"], $meta->{Name} );
}
else {
- $self->parent->ok( $self->is_passing, $self->name );
+ $parent->{subevents} = $meta->{subevents};
+ $parent->{subtest_id} = $meta->{subtest_id};
+ $parent->{subtest_uuid} = $meta->{subtest_uuid};
+ $parent->{subtest_buffered} = $meta->{subtest_buffered};
+ $parent->ok( $chub->is_passing, $meta->{Name} );
}
}
- $? = $self->{Child_Error};
- delete $self->{Parent};
- return $self->is_passing;
+ $ctx->release;
+ return $chub->is_passing;
}
-sub _indent {
+sub subtest {
my $self = shift;
+ my ($name, $code, @args) = @_;
+ my $ctx = $self->ctx;
+ $ctx->throw("subtest()'s second argument must be a code ref")
+ unless $code && reftype($code) eq 'CODE';
- if( @_ ) {
- $self->{Indent} = shift;
- }
+ $name ||= "Child of " . $self->name;
- return $self->{Indent};
-}
-=item B<parent>
+ $_->($name,$code,@args)
+ for Test2::API::test2_list_pre_subtest_callbacks();
- if ( my $parent = $builder->parent ) {
- ...
- }
+ $ctx->note("Subtest: $name");
-Returns the parent C<Test::Builder> instance, if any. Only used with child
-builders for nested TAP.
+ my $child = $self->child($name);
-=cut
+ my $start_pid = $$;
+ my $st_ctx;
+ my ($ok, $err, $finished, $child_error);
+ T2_SUBTEST_WRAPPER: {
+ my $ctx = $self->ctx;
+ $st_ctx = $ctx->snapshot;
+ $ctx->release;
+ $ok = eval { local $Level = 1; $code->(@args); 1 };
+ ($err, $child_error) = ($@, $?);
-sub parent { shift->{Parent} }
+ # They might have done 'BEGIN { skip_all => "whatever" }'
+ if (!$ok && $err =~ m/Label not found for "last T2_SUBTEST_WRAPPER"/ || (blessed($err) && blessed($err) eq 'Test::Builder::Exception')) {
+ $ok = undef;
+ $err = undef;
+ }
+ else {
+ $finished = 1;
+ }
+ }
-=item B<name>
+ if ($start_pid != $$ && !$INC{'Test2/IPC.pm'}) {
+ warn $ok ? "Forked inside subtest, but subtest never finished!\n" : $err;
+ exit 255;
+ }
- diag $builder->name;
+ my $trace = $ctx->trace;
-Returns the name of the current builder. Top level builders default to C<$0>
-(the name of the executable). Child builders are named via the C<child>
-method. If no name is supplied, will be named "Child of $parent->name".
-
-=cut
+ if (!$finished) {
+ if(my $bailed = $st_ctx->hub->bailed_out) {
+ my $chub = $child->{Hub};
+ $self->{Stack}->pop($chub);
+ $ctx->bail($bailed->reason);
+ }
+ my $code = $st_ctx->hub->exit_code;
+ $ok = !$code;
+ $err = "Subtest ended with exit code $code" if $code;
+ }
-sub name { shift->{Name} }
+ my $st_hub = $st_ctx->hub;
+ my $plan = $st_hub->plan;
+ my $count = $st_hub->count;
-sub DESTROY {
- my $self = shift;
- if ( $self->parent and $$ == $self->{Original_Pid} ) {
- my $name = $self->name;
- $self->diag(<<"FAIL");
-Child ($name) exited without calling finalize()
-FAIL
- $self->parent->{In_Destroy} = 1;
- $self->parent->ok(0, $name);
+ if (!$count && (!defined($plan) || "$plan" ne 'SKIP')) {
+ $st_ctx->plan(0) unless defined $plan;
+ $st_ctx->diag('No tests run!');
}
-}
-=item B<reset>
+ $child->finalize($st_ctx->trace);
- $Test->reset;
+ $ctx->release;
-Reinitializes the Test::Builder singleton to its original state.
-Mostly useful for tests run in persistent environments where the same
-test might be run multiple times in the same process.
+ die $err unless $ok;
-=cut
+ $? = $child_error if defined $child_error;
-our $Level;
+ return $st_hub->is_passing;
+}
+
+sub name {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ release $ctx, $ctx->hub->meta(__PACKAGE__, {})->{Name};
+}
sub reset { ## no critic (Subroutines::ProhibitBuiltinHomonyms)
- my($self) = @_;
+ my ($self, %params) = @_;
+
+ Test2::API::test2_set_is_end(0);
# We leave this a global because it has to be localized and localizing
# hash keys is just asking for pain. Also, it was documented.
$Level = 1;
- $self->{Name} = $0;
- $self->is_passing(1);
- $self->{Ending} = 0;
- $self->{Have_Plan} = 0;
- $self->{No_Plan} = 0;
- $self->{Have_Output_Plan} = 0;
- $self->{Done_Testing} = 0;
-
- $self->{Original_Pid} = $$;
- $self->{Child_Name} = undef;
- $self->{Indent} ||= '';
-
- $self->{Curr_Test} = 0;
- $self->{Test_Results} = &share( [] );
+ $self->{no_log_results} = $ENV{TEST_NO_LOG_RESULTS} ? 1 : 0
+ unless $params{singleton};
- $self->{Exported_To} = undef;
- $self->{Expected_Tests} = 0;
+ $self->{Original_Pid} = Test2::API::test2_in_preload() ? -1 : $$;
- $self->{Skip_All} = 0;
-
- $self->{Use_Nums} = 1;
-
- $self->{No_Header} = 0;
- $self->{No_Ending} = 0;
+ my $ctx = $self->ctx;
+ my $hub = $ctx->hub;
+ $ctx->release;
+ unless ($params{singleton}) {
+ $hub->reset_state();
+ $hub->_tb_reset();
+ }
- $self->{Todo} = undef;
- $self->{Todo_Stack} = [];
- $self->{Start_Todo} = 0;
- $self->{Opened_Testhandles} = 0;
+ $ctx = $self->ctx;
- $self->_share_keys;
- $self->_dup_stdhandles;
+ my $meta = $ctx->hub->meta(__PACKAGE__, {});
+ %$meta = (
+ Name => $0,
+ Ending => 0,
+ Done_Testing => undef,
+ Skip_All => 0,
+ Test_Results => [],
+ parent => $meta->{parent},
+ );
- return;
-}
+ $self->{Exported_To} = undef unless $params{singleton};
+ $self->{Orig_Handles} ||= do {
+ my $format = $ctx->hub->format;
+ my $out;
+ if ($format && $format->isa('Test2::Formatter::TAP')) {
+ $out = $format->handles;
+ }
+ $out ? [@$out] : [];
+ };
-# Shared scalar values are lost when a hash is copied, so we have
-# a separate method to restore them.
-# Shared references are retained across copies.
-sub _share_keys {
- my $self = shift;
+ $self->use_numbers(1);
+ $self->no_header(0) unless $params{singleton};
+ $self->no_ending(0) unless $params{singleton};
+ $self->reset_outputs;
- share( $self->{Curr_Test} );
+ $ctx->release;
return;
}
-=back
-
-=head2 Setting up tests
-
-These methods are for setting up tests and declaring how many there
-are. You usually only want to call one of these methods.
-
-=over 4
-
-=item B<plan>
-
- $Test->plan('no_plan');
- $Test->plan( skip_all => $reason );
- $Test->plan( tests => $num_tests );
-
-A convenient way to set up your tests. Call this and Test::Builder
-will print the appropriate headers and take the appropriate actions.
-
-If you call C<plan()>, don't call any of the other methods below.
-
-If a child calls "skip_all" in the plan, a C<Test::Builder::Exception> is
-thrown. Trap this error, call C<finalize()> and don't run any more tests on
-the child.
-
- my $child = $Test->child('some child');
- eval { $child->plan( $condition ? ( skip_all => $reason ) : ( tests => 3 ) ) };
- if ( eval { $@->isa('Test::Builder::Exception') } ) {
- $child->finalize;
- return;
- }
- # run your tests
-
-=cut
-
my %plan_cmds = (
- no_plan => \&no_plan,
- skip_all => \&skip_all,
- tests => \&_plan_tests,
+ no_plan => \&no_plan,
+ skip_all => \&skip_all,
+ tests => \&_plan_tests,
);
sub plan {
@@ -530,9 +460,12 @@ sub plan {
return unless $cmd;
- local $Level = $Level + 1;
+ my $ctx = $self->ctx;
+ my $hub = $ctx->hub;
- $self->croak("You tried to plan twice") if $self->{Have_Plan};
+ $ctx->throw("You tried to plan twice") if $hub->plan;
+
+ local $Level = $Level + 1;
if( my $method = $plan_cmds{$cmd} ) {
local $Level = $Level + 1;
@@ -540,241 +473,156 @@ sub plan {
}
else {
my @args = grep { defined } ( $cmd, $arg );
- $self->croak("plan() doesn't understand @args");
+ $ctx->throw("plan() doesn't understand @args");
}
- return 1;
+ release $ctx, 1;
}
sub _plan_tests {
my($self, $arg) = @_;
+ my $ctx = $self->ctx;
+
if($arg) {
local $Level = $Level + 1;
- return $self->expected_tests($arg);
+ $self->expected_tests($arg);
}
elsif( !defined $arg ) {
- $self->croak("Got an undefined number of tests");
+ $ctx->throw("Got an undefined number of tests");
}
else {
- $self->croak("You said to run 0 tests");
+ $ctx->throw("You said to run 0 tests");
}
- return;
+ $ctx->release;
}
-=item B<expected_tests>
-
- my $max = $Test->expected_tests;
- $Test->expected_tests($max);
-
-Gets/sets the number of tests we expect this test to run and prints out
-the appropriate headers.
-
-=cut
sub expected_tests {
my $self = shift;
my($max) = @_;
+ my $ctx = $self->ctx;
+
if(@_) {
$self->croak("Number of tests must be a positive integer. You gave it '$max'")
unless $max =~ /^\+?\d+$/;
- $self->{Expected_Tests} = $max;
- $self->{Have_Plan} = 1;
-
- $self->_output_plan($max) unless $self->no_header;
+ $ctx->plan($max);
}
- return $self->{Expected_Tests};
-}
-=item B<no_plan>
+ my $hub = $ctx->hub;
- $Test->no_plan;
+ $ctx->release;
-Declares that this test will run an indeterminate number of tests.
+ my $plan = $hub->plan;
+ return 0 unless $plan;
+ return 0 if $plan =~ m/\D/;
+ return $plan;
+}
-=cut
sub no_plan {
my($self, $arg) = @_;
- $self->carp("no_plan takes no arguments") if $arg;
-
- $self->{No_Plan} = 1;
- $self->{Have_Plan} = 1;
+ my $ctx = $self->ctx;
- return 1;
-}
-
-=begin private
-
-=item B<_output_plan>
-
- $tb->_output_plan($max);
- $tb->_output_plan($max, $directive);
- $tb->_output_plan($max, $directive => $reason);
-
-Handles displaying the test plan.
-
-If a C<$directive> and/or C<$reason> are given they will be output with the
-plan. So here's what skipping all tests looks like:
-
- $tb->_output_plan(0, "SKIP", "Because I said so");
-
-It sets C<< $tb->{Have_Output_Plan} >> and will croak if the plan was already
-output.
-
-=end private
-
-=cut
-
-sub _output_plan {
- my($self, $max, $directive, $reason) = @_;
-
- $self->carp("The plan was already output") if $self->{Have_Output_Plan};
-
- my $plan = "1..$max";
- $plan .= " # $directive" if defined $directive;
- $plan .= " $reason" if defined $reason;
+ if (defined $ctx->hub->plan) {
+ warn "Plan already set, no_plan() is a no-op, this will change to a hard failure in the future.";
+ $ctx->release;
+ return;
+ }
- $self->_print("$plan\n");
+ $ctx->alert("no_plan takes no arguments") if $arg;
- $self->{Have_Output_Plan} = 1;
+ $ctx->hub->plan('NO PLAN');
- return;
+ release $ctx, 1;
}
-=item B<done_testing>
-
- $Test->done_testing();
- $Test->done_testing($num_tests);
-
-Declares that you are done testing, no more tests will be run after this point.
-
-If a plan has not yet been output, it will do so.
-
-$num_tests is the number of tests you planned to run. If a numbered
-plan was already declared, and if this contradicts, a failing test
-will be run to reflect the planning mistake. If C<no_plan> was declared,
-this will override.
-
-If C<done_testing()> is called twice, the second call will issue a
-failing test.
+sub done_testing {
+ my($self, $num_tests) = @_;
-If C<$num_tests> is omitted, the number of tests run will be used, like
-no_plan.
+ my $ctx = $self->ctx;
-C<done_testing()> is, in effect, used when you'd want to use C<no_plan>, but
-safer. You'd use it like so:
+ my $meta = $ctx->hub->meta(__PACKAGE__, {});
- $Test->ok($a == $b);
- $Test->done_testing();
-
-Or to plan a variable number of tests:
-
- for my $test (@tests) {
- $Test->ok($test);
+ if ($meta->{Done_Testing}) {
+ my ($file, $line) = @{$meta->{Done_Testing}}[1,2];
+ local $ctx->hub->{ended}; # OMG This is awful.
+ $self->ok(0, "done_testing() was already called at $file line $line");
+ $ctx->release;
+ return;
}
- $Test->done_testing(scalar @tests);
-
-=cut
+ $meta->{Done_Testing} = [$ctx->trace->call];
-sub done_testing {
- my($self, $num_tests) = @_;
+ my $plan = $ctx->hub->plan;
+ my $count = $ctx->hub->count;
- # If done_testing() specified the number of tests, shut off no_plan.
+ # If done_testing() specified the number of tests, shut off no_plan
if( defined $num_tests ) {
- $self->{No_Plan} = 0;
+ $ctx->plan($num_tests) if !$plan || $plan eq 'NO PLAN';
+ }
+ elsif ($count && defined $num_tests && $count != $num_tests) {
+ $self->ok(0, "planned to run @{[ $self->expected_tests ]} but done_testing() expects $num_tests");
}
else {
$num_tests = $self->current_test;
}
- if( $self->{Done_Testing} ) {
- my($file, $line) = @{$self->{Done_Testing}}[1,2];
- $self->ok(0, "done_testing() was already called at $file line $line");
- return;
- }
-
- $self->{Done_Testing} = [caller];
-
if( $self->expected_tests && $num_tests != $self->expected_tests ) {
$self->ok(0, "planned to run @{[ $self->expected_tests ]} ".
"but done_testing() expects $num_tests");
}
- else {
- $self->{Expected_Tests} = $num_tests;
- }
- $self->_output_plan($num_tests) unless $self->{Have_Output_Plan};
+ $ctx->plan($num_tests) if $ctx->hub->plan && $ctx->hub->plan eq 'NO PLAN';
- $self->{Have_Plan} = 1;
+ $ctx->hub->finalize($ctx->trace, 1);
- # The wrong number of tests were run
- $self->is_passing(0) if $self->{Expected_Tests} != $self->{Curr_Test};
-
- # No tests were run
- $self->is_passing(0) if $self->{Curr_Test} == 0;
-
- return 1;
+ release $ctx, 1;
}
-=item B<has_plan>
-
- $plan = $Test->has_plan
-
-Find out whether a plan has been defined. C<$plan> is either C<undef> (no plan
-has been set), C<no_plan> (indeterminate # of tests) or an integer (the number
-of expected tests).
-
-=cut
-
sub has_plan {
my $self = shift;
- return( $self->{Expected_Tests} ) if $self->{Expected_Tests};
- return('no_plan') if $self->{No_Plan};
+ my $ctx = $self->ctx;
+ my $plan = $ctx->hub->plan;
+ $ctx->release;
+
+ return( $plan ) if $plan && $plan !~ m/\D/;
+ return('no_plan') if $plan && $plan eq 'NO PLAN';
return(undef);
}
-=item B<skip_all>
-
- $Test->skip_all;
- $Test->skip_all($reason);
-
-Skips all the tests, using the given C<$reason>. Exits immediately with 0.
-
-=cut
sub skip_all {
my( $self, $reason ) = @_;
- $self->{Skip_All} = $self->parent ? $reason : 1;
-
- $self->_output_plan(0, "SKIP", $reason) unless $self->no_header;
- if ( $self->parent ) {
- die bless {} => 'Test::Builder::Exception';
- }
- exit(0);
-}
-
-=item B<exported_to>
+ my $ctx = $self->ctx;
- my $pack = $Test->exported_to;
- $Test->exported_to($pack);
+ $ctx->hub->meta(__PACKAGE__, {})->{Skip_All} = $reason || 1;
-Tells Test::Builder what package you exported your functions to.
+ # Work around old perl bug
+ if ($] < 5.020000) {
+ my $begin = 0;
+ my $level = 0;
+ while (my @call = caller($level++)) {
+ last unless @call && $call[0];
+ next unless $call[3] =~ m/::BEGIN$/;
+ $begin++;
+ last;
+ }
+ # HACK!
+ die 'Label not found for "last T2_SUBTEST_WRAPPER"' if $begin && $ctx->hub->meta(__PACKAGE__, {})->{parent};
+ }
-This method isn't terribly useful since modules which share the same
-Test::Builder object might get exported to different packages and only
-the last one will be honored.
+ $ctx->plan(0, SKIP => $reason);
+}
-=cut
sub exported_to {
my( $self, $pack ) = @_;
@@ -785,171 +633,121 @@ sub exported_to {
return $self->{Exported_To};
}
-=back
-
-=head2 Running tests
-
-These actually run the tests, analogous to the functions in Test::More.
-
-They all return true if the test passed, false if the test failed.
-
-C<$name> is always optional.
-
-=over 4
-
-=item B<ok>
-
- $Test->ok($test, $name);
-
-Your basic test. Pass if C<$test> is true, fail if $test is false. Just
-like Test::Simple's C<ok()>.
-
-=cut
sub ok {
my( $self, $test, $name ) = @_;
- if ( $self->{Child_Name} and not $self->{In_Destroy} ) {
- $name = 'unnamed test' unless defined $name;
- $self->is_passing(0);
- $self->croak("Cannot run test ($name) with active children");
- }
+ my $ctx = $self->ctx;
+
# $test might contain an object which we don't want to accidentally
# store, so we turn it into a boolean.
$test = $test ? 1 : 0;
- lock $self->{Curr_Test};
- $self->{Curr_Test}++;
-
# In case $name is a string overloaded object, force it to stringify.
- $self->_unoverload_str( \$name );
+ no warnings qw/uninitialized numeric/;
+ $name = "$name" if defined $name;
- $self->diag(<<"ERR") if defined $name and $name =~ /^[\d\s]+$/;
+ # Profiling showed that the regex here was a huge time waster, doing the
+ # numeric addition first cuts our profile time from ~300ms to ~50ms
+ $self->diag(<<" ERR") if 0 + $name && $name =~ /^[\d\s]+$/;
You named your test '$name'. You shouldn't use numbers for your test names.
Very confusing.
-ERR
-
- # Capture the value of $TODO for the rest of this ok() call
- # so it can more easily be found by other routines.
- my $todo = $self->todo();
- my $in_todo = $self->in_todo;
- local $self->{Todo} = $todo if $in_todo;
+ ERR
+ use warnings qw/uninitialized numeric/;
+
+ my $trace = $ctx->{trace};
+ my $hub = $ctx->{hub};
+
+ my $result = {
+ ok => $test,
+ actual_ok => $test,
+ reason => '',
+ type => '',
+ (name => defined($name) ? $name : ''),
+ };
- $self->_unoverload_str( \$todo );
+ $hub->{_meta}->{+__PACKAGE__}->{Test_Results}[ $hub->{count} ] = $result unless $self->{no_log_results};
- my $out;
- my $result = &share( {} );
+ my $orig_name = $name;
- unless($test) {
- $out .= "not ";
- @$result{ 'ok', 'actual_ok' } = ( ( $self->in_todo ? 1 : 0 ), 0 );
- }
- else {
- @$result{ 'ok', 'actual_ok' } = ( 1, $test );
+ my @attrs;
+ my $subevents = delete $self->{subevents};
+ my $subtest_id = delete $self->{subtest_id};
+ my $subtest_uuid = delete $self->{subtest_uuid};
+ my $subtest_buffered = delete $self->{subtest_buffered};
+ my $epkg = 'Test2::Event::Ok';
+ if ($subevents) {
+ $epkg = 'Test2::Event::Subtest';
+ push @attrs => (subevents => $subevents, subtest_id => $subtest_id, subtest_uuid => $subtest_uuid, buffered => $subtest_buffered);
}
- $out .= "ok";
- $out .= " $self->{Curr_Test}" if $self->use_numbers;
+ my $e = bless {
+ trace => bless( {%$trace}, 'Test2::EventFacet::Trace'),
+ pass => $test,
+ name => $name,
+ _meta => {'Test::Builder' => $result},
+ effective_pass => $test,
+ @attrs,
+ }, $epkg;
+ $hub->send($e);
- if( defined $name ) {
- $name =~ s|#|\\#|g; # # in a name can confuse Test::Harness.
- $out .= " - $name";
- $result->{name} = $name;
- }
- else {
- $result->{name} = '';
- }
+ $self->_ok_debug($trace, $orig_name) unless($test);
- if( $self->in_todo ) {
- $out .= " # TODO $todo";
- $result->{reason} = $todo;
- $result->{type} = 'todo';
- }
- else {
- $result->{reason} = '';
- $result->{type} = '';
- }
+ $ctx->release;
+ return $test;
+}
- $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = $result;
- $out .= "\n";
+sub _ok_debug {
+ my $self = shift;
+ my ($trace, $orig_name) = @_;
- $self->_print($out);
+ my $is_todo = defined($self->todo);
- unless($test) {
- my $msg = $self->in_todo ? "Failed (TODO)" : "Failed";
- $self->_print_to_fh( $self->_diag_fh, "\n" ) if $ENV{HARNESS_ACTIVE};
+ my $msg = $is_todo ? "Failed (TODO)" : "Failed";
- my( undef, $file, $line ) = $self->caller;
- if( defined $name ) {
- $self->diag(qq[ $msg test '$name'\n]);
- $self->diag(qq[ at $file line $line.\n]);
- }
- else {
- $self->diag(qq[ $msg test at $file line $line.\n]);
- }
+ my (undef, $file, $line) = $trace->call;
+ if (defined $orig_name) {
+ $self->diag(qq[ $msg test '$orig_name'\n at $file line $line.\n]);
+ }
+ else {
+ $self->diag(qq[ $msg test at $file line $line.\n]);
}
-
- $self->is_passing(0) unless $test || $self->in_todo;
-
- # Check that we haven't violated the plan
- $self->_check_is_passing_plan();
-
- return $test ? 1 : 0;
}
-
-# Check that we haven't yet violated the plan and set
-# is_passing() accordingly
-sub _check_is_passing_plan {
+sub _diag_fh {
my $self = shift;
-
- my $plan = $self->has_plan;
- return unless defined $plan; # no plan yet defined
- return unless $plan !~ /\D/; # no numeric plan
- $self->is_passing(0) if $plan < $self->{Curr_Test};
+ local $Level = $Level + 1;
+ return $self->in_todo ? $self->todo_output : $self->failure_output;
}
-
sub _unoverload {
- my $self = shift;
- my $type = shift;
-
- $self->_try(sub { require overload; }, die_on_fail => 1);
+ my ($self, $type, $thing) = @_;
- foreach my $thing (@_) {
- if( $self->_is_object($$thing) ) {
- if( my $string_meth = overload::Method( $$thing, $type ) ) {
- $$thing = $$thing->$string_meth();
- }
- }
+ return unless ref $$thing;
+ return unless blessed($$thing) || scalar $self->_try(sub{ $$thing->isa('UNIVERSAL') });
+ {
+ local ($!, $@);
+ require overload;
}
-
- return;
-}
-
-sub _is_object {
- my( $self, $thing ) = @_;
-
- return $self->_try( sub { ref $thing && $thing->isa('UNIVERSAL') } ) ? 1 : 0;
+ my $string_meth = overload::Method( $$thing, $type ) || return;
+ $$thing = $$thing->$string_meth();
}
sub _unoverload_str {
my $self = shift;
- return $self->_unoverload( q[""], @_ );
+ $self->_unoverload( q[""], $_ ) for @_;
}
sub _unoverload_num {
my $self = shift;
- $self->_unoverload( '0+', @_ );
+ $self->_unoverload( '0+', $_ ) for @_;
for my $val (@_) {
next unless $self->_is_dualvar($$val);
$$val = $$val + 0;
}
-
- return;
}
# This is a hack to detect a dualvar such as $!
@@ -964,28 +762,12 @@ sub _is_dualvar {
return ($numval != 0 and $numval ne $val ? 1 : 0);
}
-=item B<is_eq>
-
- $Test->is_eq($got, $expected, $name);
-
-Like Test::More's C<is()>. Checks if C<$got eq $expected>. This is the
-string version.
-
-C<undef> only ever matches another C<undef>.
-
-=item B<is_num>
-
- $Test->is_num($got, $expected, $name);
-
-Like Test::More's C<is()>. Checks if C<$got == $expected>. This is the
-numeric version.
-
-C<undef> only ever matches another C<undef>.
-
-=cut
sub is_eq {
my( $self, $got, $expect, $name ) = @_;
+
+ my $ctx = $self->ctx;
+
local $Level = $Level + 1;
if( !defined $got || !defined $expect ) {
@@ -994,14 +776,17 @@ sub is_eq {
$self->ok( $test, $name );
$self->_is_diag( $got, 'eq', $expect ) unless $test;
+ $ctx->release;
return $test;
}
- return $self->cmp_ok( $got, 'eq', $expect, $name );
+ release $ctx, $self->cmp_ok( $got, 'eq', $expect, $name );
}
+
sub is_num {
my( $self, $got, $expect, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
if( !defined $got || !defined $expect ) {
@@ -1010,12 +795,14 @@ sub is_num {
$self->ok( $test, $name );
$self->_is_diag( $got, '==', $expect ) unless $test;
+ $ctx->release;
return $test;
}
- return $self->cmp_ok( $got, '==', $expect, $name );
+ release $ctx, $self->cmp_ok( $got, '==', $expect, $name );
}
+
sub _diag_fmt {
my( $self, $type, $val ) = @_;
@@ -1036,6 +823,7 @@ sub _diag_fmt {
return;
}
+
sub _is_diag {
my( $self, $got, $type, $expect ) = @_;
@@ -1061,24 +849,10 @@ sub _isnt_diag {
DIAGNOSTIC
}
-=item B<isnt_eq>
-
- $Test->isnt_eq($got, $dont_expect, $name);
-
-Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
-the string version.
-
-=item B<isnt_num>
-
- $Test->isnt_num($got, $dont_expect, $name);
-
-Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
-the numeric version.
-
-=cut
sub isnt_eq {
my( $self, $got, $dont_expect, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
if( !defined $got || !defined $dont_expect ) {
@@ -1087,14 +861,16 @@ sub isnt_eq {
$self->ok( $test, $name );
$self->_isnt_diag( $got, 'ne' ) unless $test;
+ $ctx->release;
return $test;
}
- return $self->cmp_ok( $got, 'ne', $dont_expect, $name );
+ release $ctx, $self->cmp_ok( $got, 'ne', $dont_expect, $name );
}
sub isnt_num {
my( $self, $got, $dont_expect, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
if( !defined $got || !defined $dont_expect ) {
@@ -1103,52 +879,32 @@ sub isnt_num {
$self->ok( $test, $name );
$self->_isnt_diag( $got, '!=' ) unless $test;
+ $ctx->release;
return $test;
}
- return $self->cmp_ok( $got, '!=', $dont_expect, $name );
+ release $ctx, $self->cmp_ok( $got, '!=', $dont_expect, $name );
}
-=item B<like>
-
- $Test->like($thing, qr/$regex/, $name);
- $Test->like($thing, '/$regex/', $name);
-
-Like L<Test::More>'s C<like()>. Checks if $thing matches the given C<$regex>.
-
-=item B<unlike>
-
- $Test->unlike($thing, qr/$regex/, $name);
- $Test->unlike($thing, '/$regex/', $name);
-
-Like L<Test::More>'s C<unlike()>. Checks if $thing B<does not match> the
-given C<$regex>.
-
-=cut
sub like {
my( $self, $thing, $regex, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
- return $self->_regex_ok( $thing, $regex, '=~', $name );
+
+ release $ctx, $self->_regex_ok( $thing, $regex, '=~', $name );
}
sub unlike {
my( $self, $thing, $regex, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
- return $self->_regex_ok( $thing, $regex, '!~', $name );
-}
-=item B<cmp_ok>
-
- $Test->cmp_ok($thing, $type, $that, $name);
-
-Works just like L<Test::More>'s C<cmp_ok()>.
-
- $Test->cmp_ok($big_num, '!=', $other_big_num);
+ release $ctx, $self->_regex_ok( $thing, $regex, '!~', $name );
+}
-=cut
my %numeric_cmps = map { ( $_, 1 ) } ( "<", "<=", ">", ">=", "==", "!=", "<=>" );
@@ -1157,9 +913,10 @@ my %cmp_ok_bl = map { ( $_, 1 ) } ( "=", "+=", ".=", "x=", "^=", "|=", "||=", "&
sub cmp_ok {
my( $self, $got, $type, $expect, $name ) = @_;
+ my $ctx = $self->ctx;
if ($cmp_ok_bl{$type}) {
- $self->croak("$type is not a valid comparison operator in cmp_ok()");
+ $ctx->throw("$type is not a valid comparison operator in cmp_ok()");
}
my ($test, $succ);
@@ -1169,7 +926,7 @@ sub cmp_ok {
local( $@, $!, $SIG{__DIE__} ); # isolate eval
- my($pack, $file, $line) = $self->caller();
+ my($pack, $file, $line) = $ctx->trace->call();
# This is so that warnings come out at the caller's level
$succ = eval qq[
@@ -1203,13 +960,26 @@ END
$self->_is_diag( $got, $type, $expect );
}
elsif( $type =~ /^(ne|!=)$/ ) {
- $self->_isnt_diag( $got, $type );
+ no warnings;
+ my $eq = ($got eq $expect || $got == $expect)
+ && (
+ (defined($got) xor defined($expect))
+ || (length($got) != length($expect))
+ );
+ use warnings;
+
+ if ($eq) {
+ $self->_cmp_diag( $got, $type, $expect );
+ }
+ else {
+ $self->_isnt_diag( $got, $type );
+ }
}
else {
$self->_cmp_diag( $got, $type, $expect );
}
}
- return $ok;
+ return release $ctx, $ok;
}
sub _cmp_diag {
@@ -1237,182 +1007,71 @@ sub _caller_context {
return $code;
}
-=back
-
-
-=head2 Other Testing Methods
-
-These are methods which are used in the course of writing a test but are not themselves tests.
-
-=over 4
-
-=item B<BAIL_OUT>
-
- $Test->BAIL_OUT($reason);
-
-Indicates to the L<Test::Harness> that things are going so badly all
-testing should terminate. This includes running any additional test
-scripts.
-
-It will exit with 255.
-
-=cut
sub BAIL_OUT {
my( $self, $reason ) = @_;
- $self->{Bailed_Out} = 1;
+ my $ctx = $self->ctx;
- if ($self->parent) {
- $self->{Bailed_Out_Reason} = $reason;
- $self->no_ending(1);
- die bless {} => 'Test::Builder::Exception';
- }
+ $self->{Bailed_Out} = 1;
- $self->_print("Bail out! $reason");
- exit 255;
+ $ctx->bail($reason);
}
-=for deprecated
-BAIL_OUT() used to be BAILOUT()
-
-=cut
{
no warnings 'once';
*BAILOUT = \&BAIL_OUT;
}
-=item B<skip>
-
- $Test->skip;
- $Test->skip($why);
-
-Skips the current test, reporting C<$why>.
-
-=cut
-
sub skip {
my( $self, $why, $name ) = @_;
$why ||= '';
$name = '' unless defined $name;
$self->_unoverload_str( \$why );
- lock( $self->{Curr_Test} );
- $self->{Curr_Test}++;
+ my $ctx = $self->ctx;
- $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = &share(
- {
- 'ok' => 1,
- actual_ok => 1,
- name => $name,
- type => 'skip',
- reason => $why,
- }
- );
+ $ctx->hub->meta(__PACKAGE__, {})->{Test_Results}[ $ctx->hub->count ] = {
+ 'ok' => 1,
+ actual_ok => 1,
+ name => $name,
+ type => 'skip',
+ reason => $why,
+ } unless $self->{no_log_results};
- my $out = "ok";
- $out .= " $self->{Curr_Test}" if $self->use_numbers;
- $out .= " # skip";
- $out .= " $why" if length $why;
- $out .= "\n";
+ $name =~ s|#|\\#|g; # # in a name can confuse Test::Harness.
+ $name =~ s{\n}{\n# }sg;
+ $why =~ s{\n}{\n# }sg;
- $self->_print($out);
+ my $tctx = $ctx->snapshot;
+ $tctx->skip('', $why);
- return 1;
+ return release $ctx, 1;
}
-=item B<todo_skip>
-
- $Test->todo_skip;
- $Test->todo_skip($why);
-
-Like C<skip()>, only it will declare the test as failing and TODO. Similar
-to
-
- print "not ok $tnum # TODO $why\n";
-
-=cut
sub todo_skip {
my( $self, $why ) = @_;
$why ||= '';
- lock( $self->{Curr_Test} );
- $self->{Curr_Test}++;
+ my $ctx = $self->ctx;
- $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = &share(
- {
- 'ok' => 1,
- actual_ok => 0,
- name => '',
- type => 'todo_skip',
- reason => $why,
- }
- );
+ $ctx->hub->meta(__PACKAGE__, {})->{Test_Results}[ $ctx->hub->count ] = {
+ 'ok' => 1,
+ actual_ok => 0,
+ name => '',
+ type => 'todo_skip',
+ reason => $why,
+ } unless $self->{no_log_results};
- my $out = "not ok";
- $out .= " $self->{Curr_Test}" if $self->use_numbers;
- $out .= " # TODO & SKIP $why\n";
+ $why =~ s{\n}{\n# }sg;
+ my $tctx = $ctx->snapshot;
+ $tctx->send_event( 'Skip', todo => $why, todo_diag => 1, reason => $why, pass => 0);
- $self->_print($out);
-
- return 1;
+ return release $ctx, 1;
}
-=begin _unimplemented
-
-=item B<skip_rest>
-
- $Test->skip_rest;
- $Test->skip_rest($reason);
-
-Like C<skip()>, only it skips all the rest of the tests you plan to run
-and terminates the test.
-
-If you're running under C<no_plan>, it skips once and terminates the
-test.
-
-=end _unimplemented
-
-=back
-
-
-=head2 Test building utility methods
-
-These methods are useful when writing your own test methods.
-
-=over 4
-
-=item B<maybe_regex>
-
- $Test->maybe_regex(qr/$regex/);
- $Test->maybe_regex('/$regex/');
-
-This method used to be useful back when Test::Builder worked on Perls
-before 5.6 which didn't have qr//. Now its pretty useless.
-
-Convenience method for building testing functions that take regular
-expressions as arguments.
-
-Takes a quoted regular expression produced by C<qr//>, or a string
-representing a regular expression.
-
-Returns a Perl value which may be used instead of the corresponding
-regular expression, or C<undef> if its argument is not recognised.
-
-For example, a version of C<like()>, sans the useful diagnostic messages,
-could be written as:
-
- sub laconic_like {
- my ($self, $thing, $regex, $name) = @_;
- my $usable_regex = $self->maybe_regex($regex);
- die "expecting regex, found '$regex'\n"
- unless $usable_regex;
- $self->ok($thing =~ m/$usable_regex/, $name);
- }
-
-=cut
sub maybe_regex {
my( $self, $regex ) = @_;
@@ -1494,26 +1153,440 @@ DIAGNOSTIC
return $ok;
}
-# I'm not ready to publish this. It doesn't deal with array return
-# values from the code or context.
-=begin private
+sub is_fh {
+ my $self = shift;
+ my $maybe_fh = shift;
+ return 0 unless defined $maybe_fh;
-=item B<_try>
+ return 1 if ref $maybe_fh eq 'GLOB'; # its a glob ref
+ return 1 if ref \$maybe_fh eq 'GLOB'; # its a glob
- my $return_from_code = $Test->try(sub { code });
- my($return_from_code, $error) = $Test->try(sub { code });
+ return eval { $maybe_fh->isa("IO::Handle") } ||
+ eval { tied($maybe_fh)->can('TIEHANDLE') };
+}
-Works like eval BLOCK except it ensures it has no effect on the rest
-of the test (ie. C<$@> is not set) nor is effected by outside
-interference (ie. C<$SIG{__DIE__}>) and works around some quirks in older
-Perls.
-C<$error> is what would normally be in C<$@>.
+sub level {
+ my( $self, $level ) = @_;
-It is suggested you use this in place of eval BLOCK.
+ if( defined $level ) {
+ $Level = $level;
+ }
+ return $Level;
+}
+
+
+sub use_numbers {
+ my( $self, $use_nums ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ unless ($format && $format->can('no_numbers') && $format->can('set_no_numbers')) {
+ warn "The current formatter does not support 'use_numbers'" if $format;
+ return release $ctx, 0;
+ }
+
+ $format->set_no_numbers(!$use_nums) if defined $use_nums;
+
+ return release $ctx, $format->no_numbers ? 0 : 1;
+}
+
+BEGIN {
+ for my $method (qw(no_header no_diag)) {
+ my $set = "set_$method";
+ my $code = sub {
+ my( $self, $no ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ unless ($format && $format->can($set)) {
+ warn "The current formatter does not support '$method'" if $format;
+ $ctx->release;
+ return
+ }
+
+ $format->$set($no) if defined $no;
+
+ return release $ctx, $format->$method ? 1 : 0;
+ };
+
+ no strict 'refs'; ## no critic
+ *$method = $code;
+ }
+}
+
+sub no_ending {
+ my( $self, $no ) = @_;
+
+ my $ctx = $self->ctx;
+
+ $ctx->hub->set_no_ending($no) if defined $no;
+
+ return release $ctx, $ctx->hub->no_ending;
+}
+
+sub diag {
+ my $self = shift;
+ return unless @_;
+
+ my $text = join '' => map {defined($_) ? $_ : 'undef'} @_;
+
+ if (Test2::API::test2_in_preload()) {
+ chomp($text);
+ $text =~ s/^/# /msg;
+ print STDERR $text, "\n";
+ return 0;
+ }
+
+ my $ctx = $self->ctx;
+ $ctx->diag($text);
+ $ctx->release;
+ return 0;
+}
+
+
+sub note {
+ my $self = shift;
+ return unless @_;
+
+ my $text = join '' => map {defined($_) ? $_ : 'undef'} @_;
+
+ if (Test2::API::test2_in_preload()) {
+ chomp($text);
+ $text =~ s/^/# /msg;
+ print STDOUT $text, "\n";
+ return 0;
+ }
+
+ my $ctx = $self->ctx;
+ $ctx->note($text);
+ $ctx->release;
+ return 0;
+}
+
+
+sub explain {
+ my $self = shift;
+
+ local ($@, $!);
+ require Data::Dumper;
+
+ return map {
+ ref $_
+ ? do {
+ my $dumper = Data::Dumper->new( [$_] );
+ $dumper->Indent(1)->Terse(1);
+ $dumper->Sortkeys(1) if $dumper->can("Sortkeys");
+ $dumper->Dump;
+ }
+ : $_
+ } @_;
+}
+
+
+sub output {
+ my( $self, $fh ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ $ctx->release;
+ return unless $format && $format->isa('Test2::Formatter::TAP');
+
+ $format->handles->[Test2::Formatter::TAP::OUT_STD()] = $self->_new_fh($fh)
+ if defined $fh;
+
+ return $format->handles->[Test2::Formatter::TAP::OUT_STD()];
+}
+
+sub failure_output {
+ my( $self, $fh ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ $ctx->release;
+ return unless $format && $format->isa('Test2::Formatter::TAP');
+
+ $format->handles->[Test2::Formatter::TAP::OUT_ERR()] = $self->_new_fh($fh)
+ if defined $fh;
+
+ return $format->handles->[Test2::Formatter::TAP::OUT_ERR()];
+}
+
+sub todo_output {
+ my( $self, $fh ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ $ctx->release;
+ return unless $format && $format->isa('Test::Builder::Formatter');
+
+ $format->handles->[Test::Builder::Formatter::OUT_TODO()] = $self->_new_fh($fh)
+ if defined $fh;
+
+ return $format->handles->[Test::Builder::Formatter::OUT_TODO()];
+}
+
+sub _new_fh {
+ my $self = shift;
+ my($file_or_fh) = shift;
+
+ my $fh;
+ if( $self->is_fh($file_or_fh) ) {
+ $fh = $file_or_fh;
+ }
+ elsif( ref $file_or_fh eq 'SCALAR' ) {
+ # Scalar refs as filehandles was added in 5.8.
+ if( $] >= 5.008 ) {
+ open $fh, ">>", $file_or_fh
+ or $self->croak("Can't open scalar ref $file_or_fh: $!");
+ }
+ # Emulate scalar ref filehandles with a tie.
+ else {
+ $fh = Test::Builder::IO::Scalar->new($file_or_fh)
+ or $self->croak("Can't tie scalar ref $file_or_fh");
+ }
+ }
+ else {
+ open $fh, ">", $file_or_fh
+ or $self->croak("Can't open test output log $file_or_fh: $!");
+ _autoflush($fh);
+ }
+
+ return $fh;
+}
+
+sub _autoflush {
+ my($fh) = shift;
+ my $old_fh = select $fh;
+ $| = 1;
+ select $old_fh;
+
+ return;
+}
+
+
+sub reset_outputs {
+ my $self = shift;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ $ctx->release;
+ return unless $format && $format->isa('Test2::Formatter::TAP');
+ $format->set_handles([@{$self->{Orig_Handles}}]) if $self->{Orig_Handles};
+
+ return;
+}
+
+
+sub carp {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ $ctx->alert(join "", @_);
+ $ctx->release;
+}
+
+sub croak {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ $ctx->throw(join "", @_);
+ $ctx->release;
+}
+
+
+sub current_test {
+ my( $self, $num ) = @_;
+
+ my $ctx = $self->ctx;
+ my $hub = $ctx->hub;
+
+ if( defined $num ) {
+ $hub->set_count($num);
+
+ unless ($self->{no_log_results}) {
+ # If the test counter is being pushed forward fill in the details.
+ my $test_results = $ctx->hub->meta(__PACKAGE__, {})->{Test_Results};
+ if ($num > @$test_results) {
+ my $start = @$test_results ? @$test_results : 0;
+ for ($start .. $num - 1) {
+ $test_results->[$_] = {
+ 'ok' => 1,
+ actual_ok => undef,
+ reason => 'incrementing test number',
+ type => 'unknown',
+ name => undef
+ };
+ }
+ }
+ # If backward, wipe history. Its their funeral.
+ elsif ($num < @$test_results) {
+ $#{$test_results} = $num - 1;
+ }
+ }
+ }
+ return release $ctx, $hub->count;
+}
+
+
+sub is_passing {
+ my $self = shift;
+
+ my $ctx = $self->ctx;
+ my $hub = $ctx->hub;
+
+ if( @_ ) {
+ my ($bool) = @_;
+ $hub->set_failed(0) if $bool;
+ $hub->is_passing($bool);
+ }
+
+ return release $ctx, $hub->is_passing;
+}
+
+
+sub summary {
+ my($self) = shift;
+
+ return if $self->{no_log_results};
+
+ my $ctx = $self->ctx;
+ my $data = $ctx->hub->meta(__PACKAGE__, {})->{Test_Results};
+ $ctx->release;
+ return map { $_ ? $_->{'ok'} : () } @$data;
+}
+
+
+sub details {
+ my $self = shift;
+
+ return if $self->{no_log_results};
+
+ my $ctx = $self->ctx;
+ my $data = $ctx->hub->meta(__PACKAGE__, {})->{Test_Results};
+ $ctx->release;
+ return @$data;
+}
+
+
+sub find_TODO {
+ my( $self, $pack, $set, $new_value ) = @_;
+
+ my $ctx = $self->ctx;
+
+ $pack ||= $ctx->trace->package || $self->exported_to;
+ $ctx->release;
+
+ return unless $pack;
+
+ no strict 'refs'; ## no critic
+ no warnings 'once';
+ my $old_value = ${ $pack . '::TODO' };
+ $set and ${ $pack . '::TODO' } = $new_value;
+ return $old_value;
+}
+
+sub todo {
+ my( $self, $pack ) = @_;
+
+ local $Level = $Level + 1;
+ my $ctx = $self->ctx;
+ $ctx->release;
+
+ my $meta = $ctx->hub->meta(__PACKAGE__, {todo => []})->{todo};
+ return $meta->[-1]->[1] if $meta && @$meta;
+
+ $pack ||= $ctx->trace->package;
+
+ return unless $pack;
+
+ no strict 'refs'; ## no critic
+ no warnings 'once';
+ return ${ $pack . '::TODO' };
+}
+
+sub in_todo {
+ my $self = shift;
+
+ local $Level = $Level + 1;
+ my $ctx = $self->ctx;
+ $ctx->release;
+
+ my $meta = $ctx->hub->meta(__PACKAGE__, {todo => []})->{todo};
+ return 1 if $meta && @$meta;
+
+ my $pack = $ctx->trace->package || return 0;
+
+ no strict 'refs'; ## no critic
+ no warnings 'once';
+ my $todo = ${ $pack . '::TODO' };
+
+ return 0 unless defined $todo;
+ return 0 if "$todo" eq '';
+ return 1;
+}
+
+sub todo_start {
+ my $self = shift;
+ my $message = @_ ? shift : '';
+
+ my $ctx = $self->ctx;
+
+ my $hub = $ctx->hub;
+ my $filter = $hub->pre_filter(sub {
+ my ($active_hub, $e) = @_;
+
+ # Turn a diag into a todo diag
+ return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 'Test2::Event::Diag';
+
+ # Set todo on ok's
+ if ($hub == $active_hub && $e->isa('Test2::Event::Ok')) {
+ $e->set_todo($message);
+ $e->set_effective_pass(1);
+
+ if (my $result = $e->get_meta(__PACKAGE__)) {
+ $result->{reason} ||= $message;
+ $result->{type} ||= 'todo';
+ $result->{ok} = 1;
+ }
+ }
+
+ return $e;
+ }, inherit => 1);
+
+ push @{$ctx->hub->meta(__PACKAGE__, {todo => []})->{todo}} => [$filter, $message];
+
+ $ctx->release;
+
+ return;
+}
+
+sub todo_end {
+ my $self = shift;
+
+ my $ctx = $self->ctx;
+
+ my $set = pop @{$ctx->hub->meta(__PACKAGE__, {todo => []})->{todo}};
+
+ $ctx->throw('todo_end() called without todo_start()') unless $set;
+
+ $ctx->hub->pre_unfilter($set->[0]);
+
+ $ctx->release;
+
+ return;
+}
+
+
+sub caller { ## no critic (Subroutines::ProhibitBuiltinHomonyms)
+ my( $self ) = @_;
+
+ my $ctx = $self->ctx;
+
+ my $trace = $ctx->trace;
+ $ctx->release;
+ return wantarray ? $trace->call : $trace->package;
+}
-=cut
sub _try {
my( $self, $code, %opts ) = @_;
@@ -1533,7 +1606,516 @@ sub _try {
return wantarray ? ( $return, $error ) : $return;
}
-=end private
+sub _ending {
+ my $self = shift;
+ my ($ctx, $real_exit_code, $new) = @_;
+
+ unless ($ctx) {
+ my $octx = $self->ctx;
+ $ctx = $octx->snapshot;
+ $octx->release;
+ }
+
+ return if $ctx->hub->no_ending;
+ return if $ctx->hub->meta(__PACKAGE__, {})->{Ending}++;
+
+ # Don't bother with an ending if this is a forked copy. Only the parent
+ # should do the ending.
+ return unless $self->{Original_Pid} == $$;
+
+ my $hub = $ctx->hub;
+ return if $hub->bailed_out;
+
+ my $plan = $hub->plan;
+ my $count = $hub->count;
+ my $failed = $hub->failed;
+ my $passed = $hub->is_passing;
+ return unless $plan || $count || $failed;
+
+ # Ran tests but never declared a plan or hit done_testing
+ if( !$hub->plan and $hub->count ) {
+ $self->diag("Tests were run but no plan was declared and done_testing() was not seen.");
+
+ if($real_exit_code) {
+ $self->diag(<<"FAIL");
+Looks like your test exited with $real_exit_code just after $count.
+FAIL
+ $$new ||= $real_exit_code;
+ return;
+ }
+
+ # But if the tests ran, handle exit code.
+ if($failed > 0) {
+ my $exit_code = $failed <= 254 ? $failed : 254;
+ $$new ||= $exit_code;
+ return;
+ }
+
+ $$new ||= 254;
+ return;
+ }
+
+ if ($real_exit_code && !$count) {
+ $self->diag("Looks like your test exited with $real_exit_code before it could output anything.");
+ $$new ||= $real_exit_code;
+ return;
+ }
+
+ return if $plan && "$plan" eq 'SKIP';
+
+ if (!$count) {
+ $self->diag('No tests run!');
+ $$new ||= 255;
+ return;
+ }
+
+ if ($real_exit_code) {
+ $self->diag(<<"FAIL");
+Looks like your test exited with $real_exit_code just after $count.
+FAIL
+ $$new ||= $real_exit_code;
+ return;
+ }
+
+ if ($plan eq 'NO PLAN') {
+ $ctx->plan( $count );
+ $plan = $hub->plan;
+ }
+
+ # Figure out if we passed or failed and print helpful messages.
+ my $num_extra = $count - $plan;
+
+ if ($num_extra != 0) {
+ my $s = $plan == 1 ? '' : 's';
+ $self->diag(<<"FAIL");
+Looks like you planned $plan test$s but ran $count.
+FAIL
+ }
+
+ if ($failed) {
+ my $s = $failed == 1 ? '' : 's';
+
+ my $qualifier = $num_extra == 0 ? '' : ' run';
+
+ $self->diag(<<"FAIL");
+Looks like you failed $failed test$s of $count$qualifier.
+FAIL
+ }
+
+ if (!$passed && !$failed && $count && !$num_extra) {
+ $ctx->diag(<<"FAIL");
+All assertions passed, but errors were encountered.
+FAIL
+ }
+
+ my $exit_code = 0;
+ if ($failed) {
+ $exit_code = $failed <= 254 ? $failed : 254;
+ }
+ elsif ($num_extra != 0) {
+ $exit_code = 255;
+ }
+ elsif (!$passed) {
+ $exit_code = 255;
+ }
+
+ $$new ||= $exit_code;
+ return;
+}
+
+# Some things used this even though it was private... I am looking at you
+# Test::Builder::Prefix...
+sub _print_comment {
+ my( $self, $fh, @msgs ) = @_;
+
+ return if $self->no_diag;
+ return unless @msgs;
+
+ # Prevent printing headers when compiling (i.e. -c)
+ return if $^C;
+
+ # Smash args together like print does.
+ # Convert undef to 'undef' so its readable.
+ my $msg = join '', map { defined($_) ? $_ : 'undef' } @msgs;
+
+ # Escape the beginning, _print will take care of the rest.
+ $msg =~ s/^/# /;
+
+ local( $\, $", $, ) = ( undef, ' ', '' );
+ print $fh $msg;
+
+ return 0;
+}
+
+# This is used by Test::SharedFork to turn on IPC after the fact. Not
+# documenting because I do not want it used. The method name is borrowed from
+# Test::Builder 2
+# Once Test2 stuff goes stable this method will be removed and Test::SharedFork
+# will be made smarter.
+sub coordinate_forks {
+ my $self = shift;
+
+ {
+ local ($@, $!);
+ require Test2::IPC;
+ }
+ Test2::IPC->import;
+ Test2::API::test2_ipc_enable_polling();
+ Test2::API::test2_load();
+ my $ipc = Test2::IPC::apply_ipc($self->{Stack});
+ $ipc->set_no_fatal(1);
+ Test2::API::test2_no_wait(1);
+ Test2::API::test2_ipc_enable_shm();
+}
+
+sub no_log_results { $_[0]->{no_log_results} = 1 }
+
+1;
+
+__END__
+
+=head1 NAME
+
+Test::Builder - Backend for building test libraries
+
+=head1 SYNOPSIS
+
+ package My::Test::Module;
+ use base 'Test::Builder::Module';
+
+ my $CLASS = __PACKAGE__;
+
+ sub ok {
+ my($test, $name) = @_;
+ my $tb = $CLASS->builder;
+
+ $tb->ok($test, $name);
+ }
+
+
+=head1 DESCRIPTION
+
+L<Test::Simple> and L<Test::More> have proven to be popular testing modules,
+but they're not always flexible enough. Test::Builder provides a
+building block upon which to write your own test libraries I<which can
+work together>.
+
+=head2 Construction
+
+=over 4
+
+=item B<new>
+
+ my $Test = Test::Builder->new;
+
+Returns a Test::Builder object representing the current state of the
+test.
+
+Since you only run one test per program C<new> always returns the same
+Test::Builder object. No matter how many times you call C<new()>, you're
+getting the same object. This is called a singleton. This is done so that
+multiple modules share such global information as the test counter and
+where test output is going.
+
+If you want a completely new Test::Builder object different from the
+singleton, use C<create>.
+
+=item B<create>
+
+ my $Test = Test::Builder->create;
+
+Ok, so there can be more than one Test::Builder object and this is how
+you get it. You might use this instead of C<new()> if you're testing
+a Test::Builder based module, but otherwise you probably want C<new>.
+
+B<NOTE>: the implementation is not complete. C<level>, for example, is still
+shared by B<all> Test::Builder objects, even ones created using this method.
+Also, the method name may change in the future.
+
+=item B<subtest>
+
+ $builder->subtest($name, \&subtests, @args);
+
+See documentation of C<subtest> in Test::More.
+
+C<subtest> also, and optionally, accepts arguments which will be passed to the
+subtests reference.
+
+=item B<name>
+
+ diag $builder->name;
+
+Returns the name of the current builder. Top level builders default to C<$0>
+(the name of the executable). Child builders are named via the C<child>
+method. If no name is supplied, will be named "Child of $parent->name".
+
+=item B<reset>
+
+ $Test->reset;
+
+Reinitializes the Test::Builder singleton to its original state.
+Mostly useful for tests run in persistent environments where the same
+test might be run multiple times in the same process.
+
+=back
+
+=head2 Setting up tests
+
+These methods are for setting up tests and declaring how many there
+are. You usually only want to call one of these methods.
+
+=over 4
+
+=item B<plan>
+
+ $Test->plan('no_plan');
+ $Test->plan( skip_all => $reason );
+ $Test->plan( tests => $num_tests );
+
+A convenient way to set up your tests. Call this and Test::Builder
+will print the appropriate headers and take the appropriate actions.
+
+If you call C<plan()>, don't call any of the other methods below.
+
+=item B<expected_tests>
+
+ my $max = $Test->expected_tests;
+ $Test->expected_tests($max);
+
+Gets/sets the number of tests we expect this test to run and prints out
+the appropriate headers.
+
+
+=item B<no_plan>
+
+ $Test->no_plan;
+
+Declares that this test will run an indeterminate number of tests.
+
+
+=item B<done_testing>
+
+ $Test->done_testing();
+ $Test->done_testing($num_tests);
+
+Declares that you are done testing, no more tests will be run after this point.
+
+If a plan has not yet been output, it will do so.
+
+$num_tests is the number of tests you planned to run. If a numbered
+plan was already declared, and if this contradicts, a failing test
+will be run to reflect the planning mistake. If C<no_plan> was declared,
+this will override.
+
+If C<done_testing()> is called twice, the second call will issue a
+failing test.
+
+If C<$num_tests> is omitted, the number of tests run will be used, like
+no_plan.
+
+C<done_testing()> is, in effect, used when you'd want to use C<no_plan>, but
+safer. You'd use it like so:
+
+ $Test->ok($a == $b);
+ $Test->done_testing();
+
+Or to plan a variable number of tests:
+
+ for my $test (@tests) {
+ $Test->ok($test);
+ }
+ $Test->done_testing(scalar @tests);
+
+
+=item B<has_plan>
+
+ $plan = $Test->has_plan
+
+Find out whether a plan has been defined. C<$plan> is either C<undef> (no plan
+has been set), C<no_plan> (indeterminate # of tests) or an integer (the number
+of expected tests).
+
+=item B<skip_all>
+
+ $Test->skip_all;
+ $Test->skip_all($reason);
+
+Skips all the tests, using the given C<$reason>. Exits immediately with 0.
+
+=item B<exported_to>
+
+ my $pack = $Test->exported_to;
+ $Test->exported_to($pack);
+
+Tells Test::Builder what package you exported your functions to.
+
+This method isn't terribly useful since modules which share the same
+Test::Builder object might get exported to different packages and only
+the last one will be honored.
+
+=back
+
+=head2 Running tests
+
+These actually run the tests, analogous to the functions in Test::More.
+
+They all return true if the test passed, false if the test failed.
+
+C<$name> is always optional.
+
+=over 4
+
+=item B<ok>
+
+ $Test->ok($test, $name);
+
+Your basic test. Pass if C<$test> is true, fail if $test is false. Just
+like Test::Simple's C<ok()>.
+
+=item B<is_eq>
+
+ $Test->is_eq($got, $expected, $name);
+
+Like Test::More's C<is()>. Checks if C<$got eq $expected>. This is the
+string version.
+
+C<undef> only ever matches another C<undef>.
+
+=item B<is_num>
+
+ $Test->is_num($got, $expected, $name);
+
+Like Test::More's C<is()>. Checks if C<$got == $expected>. This is the
+numeric version.
+
+C<undef> only ever matches another C<undef>.
+
+=item B<isnt_eq>
+
+ $Test->isnt_eq($got, $dont_expect, $name);
+
+Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
+the string version.
+
+=item B<isnt_num>
+
+ $Test->isnt_num($got, $dont_expect, $name);
+
+Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
+the numeric version.
+
+=item B<like>
+
+ $Test->like($thing, qr/$regex/, $name);
+ $Test->like($thing, '/$regex/', $name);
+
+Like L<Test::More>'s C<like()>. Checks if $thing matches the given C<$regex>.
+
+=item B<unlike>
+
+ $Test->unlike($thing, qr/$regex/, $name);
+ $Test->unlike($thing, '/$regex/', $name);
+
+Like L<Test::More>'s C<unlike()>. Checks if $thing B<does not match> the
+given C<$regex>.
+
+=item B<cmp_ok>
+
+ $Test->cmp_ok($thing, $type, $that, $name);
+
+Works just like L<Test::More>'s C<cmp_ok()>.
+
+ $Test->cmp_ok($big_num, '!=', $other_big_num);
+
+=back
+
+=head2 Other Testing Methods
+
+These are methods which are used in the course of writing a test but are not themselves tests.
+
+=over 4
+
+=item B<BAIL_OUT>
+
+ $Test->BAIL_OUT($reason);
+
+Indicates to the L<Test::Harness> that things are going so badly all
+testing should terminate. This includes running any additional test
+scripts.
+
+It will exit with 255.
+
+=for deprecated
+BAIL_OUT() used to be BAILOUT()
+
+=item B<skip>
+
+ $Test->skip;
+ $Test->skip($why);
+
+Skips the current test, reporting C<$why>.
+
+=item B<todo_skip>
+
+ $Test->todo_skip;
+ $Test->todo_skip($why);
+
+Like C<skip()>, only it will declare the test as failing and TODO. Similar
+to
+
+ print "not ok $tnum # TODO $why\n";
+
+=begin _unimplemented
+
+=item B<skip_rest>
+
+ $Test->skip_rest;
+ $Test->skip_rest($reason);
+
+Like C<skip()>, only it skips all the rest of the tests you plan to run
+and terminates the test.
+
+If you're running under C<no_plan>, it skips once and terminates the
+test.
+
+=end _unimplemented
+
+=back
+
+
+=head2 Test building utility methods
+
+These methods are useful when writing your own test methods.
+
+=over 4
+
+=item B<maybe_regex>
+
+ $Test->maybe_regex(qr/$regex/);
+ $Test->maybe_regex('/$regex/');
+
+This method used to be useful back when Test::Builder worked on Perls
+before 5.6 which didn't have qr//. Now its pretty useless.
+
+Convenience method for building testing functions that take regular
+expressions as arguments.
+
+Takes a quoted regular expression produced by C<qr//>, or a string
+representing a regular expression.
+
+Returns a Perl value which may be used instead of the corresponding
+regular expression, or C<undef> if its argument is not recognized.
+
+For example, a version of C<like()>, sans the useful diagnostic messages,
+could be written as:
+
+ sub laconic_like {
+ my ($self, $thing, $regex, $name) = @_;
+ my $usable_regex = $self->maybe_regex($regex);
+ die "expecting regex, found '$regex'\n"
+ unless $usable_regex;
+ $self->ok($thing =~ m/$usable_regex/, $name);
+ }
=item B<is_fh>
@@ -1544,17 +2126,6 @@ Determines if the given C<$thing> can be used as a filehandle.
=cut
-sub is_fh {
- my $self = shift;
- my $maybe_fh = shift;
- return 0 unless defined $maybe_fh;
-
- return 1 if ref $maybe_fh eq 'GLOB'; # its a glob ref
- return 1 if ref \$maybe_fh eq 'GLOB'; # its a glob
-
- return eval { $maybe_fh->isa("IO::Handle") } ||
- eval { tied($maybe_fh)->can('TIEHANDLE') };
-}
=back
@@ -1573,7 +2144,7 @@ test failed.
Defaults to 1.
-Setting L<$Test::Builder::Level> overrides. This is typically useful
+Setting C<$Test::Builder::Level> overrides. This is typically useful
localized:
sub my_ok {
@@ -1585,17 +2156,6 @@ localized:
To be polite to other functions wrapping your own you usually want to increment C<$Level> rather than set it to a constant.
-=cut
-
-sub level {
- my( $self, $level ) = @_;
-
- if( defined $level ) {
- $Level = $level;
- }
- return $Level;
-}
-
=item B<use_numbers>
$Test->use_numbers($on_or_off);
@@ -1617,17 +2177,6 @@ when threads or forking is involved.
Defaults to on.
-=cut
-
-sub use_numbers {
- my( $self, $use_nums ) = @_;
-
- if( defined $use_nums ) {
- $self->{Use_Nums} = $use_nums;
- }
- return $self->{Use_Nums};
-}
-
=item B<no_diag>
$Test->no_diag($no_diag);
@@ -1650,24 +2199,6 @@ If this is true, none of that will be done.
If set to true, no "1..N" header will be printed.
-=cut
-
-foreach my $attribute (qw(No_Header No_Ending No_Diag)) {
- my $method = lc $attribute;
-
- my $code = sub {
- my( $self, $no ) = @_;
-
- if( defined $no ) {
- $self->{$attribute} = $no;
- }
- return $self->{$attribute};
- };
-
- no strict 'refs'; ## no critic
- *{ __PACKAGE__ . '::' . $method } = $code;
-}
-
=back
=head2 Output
@@ -1703,14 +2234,6 @@ a failing test (C<ok() || diag()>) it "passes through" the failure.
=for blame transfer
Mark Fowler <mark@twoshortplanks.com>
-=cut
-
-sub diag {
- my $self = shift;
-
- $self->_print_comment( $self->_diag_fh, @_ );
-}
-
=item B<note>
$Test->note(@msgs);
@@ -1718,43 +2241,6 @@ sub diag {
Like C<diag()>, but it prints to the C<output()> handle so it will not
normally be seen by the user except in verbose mode.
-=cut
-
-sub note {
- my $self = shift;
-
- $self->_print_comment( $self->output, @_ );
-}
-
-sub _diag_fh {
- my $self = shift;
-
- local $Level = $Level + 1;
- return $self->in_todo ? $self->todo_output : $self->failure_output;
-}
-
-sub _print_comment {
- my( $self, $fh, @msgs ) = @_;
-
- return if $self->no_diag;
- return unless @msgs;
-
- # Prevent printing headers when compiling (i.e. -c)
- return if $^C;
-
- # Smash args together like print does.
- # Convert undef to 'undef' so its readable.
- my $msg = join '', map { defined($_) ? $_ : 'undef' } @msgs;
-
- # Escape the beginning, _print will take care of the rest.
- $msg =~ s/^/# /;
-
- local $Level = $Level + 1;
- $self->_print_to_fh( $fh, $msg );
-
- return 0;
-}
-
=item B<explain>
my @dump = $Test->explain(@msgs);
@@ -1768,64 +2254,6 @@ or
is_deeply($have, $want) || note explain $have;
-=cut
-
-sub explain {
- my $self = shift;
-
- return map {
- ref $_
- ? do {
- $self->_try(sub { require Data::Dumper }, die_on_fail => 1);
-
- my $dumper = Data::Dumper->new( [$_] );
- $dumper->Indent(1)->Terse(1);
- $dumper->Sortkeys(1) if $dumper->can("Sortkeys");
- $dumper->Dump;
- }
- : $_
- } @_;
-}
-
-=begin _private
-
-=item B<_print>
-
- $Test->_print(@msgs);
-
-Prints to the C<output()> filehandle.
-
-=end _private
-
-=cut
-
-sub _print {
- my $self = shift;
- return $self->_print_to_fh( $self->output, @_ );
-}
-
-sub _print_to_fh {
- my( $self, $fh, @msgs ) = @_;
-
- # Prevent printing headers when only compiling. Mostly for when
- # tests are deparsed with B::Deparse
- return if $^C;
-
- my $msg = join '', @msgs;
- my $indent = $self->_indent;
-
- local( $\, $", $, ) = ( undef, ' ', '' );
-
- # Escape each line after the first with a # so we don't
- # confuse Test::Harness.
- $msg =~ s{\n(?!\z)}{\n$indent# }sg;
-
- # Stick a newline on the end if it needs it.
- $msg .= "\n" unless $msg =~ /\n\z/;
-
- return print $fh $indent, $msg;
-}
-
=item B<output>
=item B<failure_output>
@@ -1857,151 +2285,12 @@ user.
Defaults to STDOUT.
-=cut
-
-sub output {
- my( $self, $fh ) = @_;
-
- if( defined $fh ) {
- $self->{Out_FH} = $self->_new_fh($fh);
- }
- return $self->{Out_FH};
-}
-
-sub failure_output {
- my( $self, $fh ) = @_;
-
- if( defined $fh ) {
- $self->{Fail_FH} = $self->_new_fh($fh);
- }
- return $self->{Fail_FH};
-}
-
-sub todo_output {
- my( $self, $fh ) = @_;
-
- if( defined $fh ) {
- $self->{Todo_FH} = $self->_new_fh($fh);
- }
- return $self->{Todo_FH};
-}
-
-sub _new_fh {
- my $self = shift;
- my($file_or_fh) = shift;
-
- my $fh;
- if( $self->is_fh($file_or_fh) ) {
- $fh = $file_or_fh;
- }
- elsif( ref $file_or_fh eq 'SCALAR' ) {
- # Scalar refs as filehandles was added in 5.8.
- if( $] >= 5.008 ) {
- open $fh, ">>", $file_or_fh
- or $self->croak("Can't open scalar ref $file_or_fh: $!");
- }
- # Emulate scalar ref filehandles with a tie.
- else {
- $fh = Test::Builder::IO::Scalar->new($file_or_fh)
- or $self->croak("Can't tie scalar ref $file_or_fh");
- }
- }
- else {
- open $fh, ">", $file_or_fh
- or $self->croak("Can't open test output log $file_or_fh: $!");
- _autoflush($fh);
- }
-
- return $fh;
-}
-
-sub _autoflush {
- my($fh) = shift;
- my $old_fh = select $fh;
- $| = 1;
- select $old_fh;
-
- return;
-}
-
-my( $Testout, $Testerr );
-
-sub _dup_stdhandles {
- my $self = shift;
-
- $self->_open_testhandles;
-
- # Set everything to unbuffered else plain prints to STDOUT will
- # come out in the wrong order from our own prints.
- _autoflush($Testout);
- _autoflush( \*STDOUT );
- _autoflush($Testerr);
- _autoflush( \*STDERR );
-
- $self->reset_outputs;
-
- return;
-}
-
-sub _open_testhandles {
- my $self = shift;
-
- return if $self->{Opened_Testhandles};
-
- # We dup STDOUT and STDERR so people can change them in their
- # test suites while still getting normal test output.
- open( $Testout, ">&STDOUT" ) or die "Can't dup STDOUT: $!";
- open( $Testerr, ">&STDERR" ) or die "Can't dup STDERR: $!";
-
- $self->_copy_io_layers( \*STDOUT, $Testout );
- $self->_copy_io_layers( \*STDERR, $Testerr );
-
- $self->{Opened_Testhandles} = 1;
-
- return;
-}
-
-sub _copy_io_layers {
- my( $self, $src, $dst ) = @_;
-
- $self->_try(
- sub {
- require PerlIO;
- my @src_layers = PerlIO::get_layers($src);
-
- _apply_layers($dst, @src_layers) if @src_layers;
- }
- );
-
- return;
-}
-
-sub _apply_layers {
- my ($fh, @layers) = @_;
- my %seen;
- my @unique = grep { $_ ne 'unix' and !$seen{$_}++ } @layers;
- binmode($fh, join(":", "", "raw", @unique));
-}
-
-
=item reset_outputs
$tb->reset_outputs;
Resets all the output filehandles back to their defaults.
-=cut
-
-sub reset_outputs {
- my $self = shift;
-
- $self->output ($Testout);
- $self->failure_output($Testerr);
- $self->todo_output ($Testout);
-
- return;
-}
-
=item carp
$tb->carp(@message);
@@ -2016,33 +2305,23 @@ point where the original test function was called (C<< $tb->caller >>).
Dies with C<@message> but the message will appear to come from the
point where the original test function was called (C<< $tb->caller >>).
-=cut
-sub _message_at_caller {
- my $self = shift;
+=back
- local $Level = $Level + 1;
- my( $pack, $file, $line ) = $self->caller;
- return join( "", @_ ) . " at $file line $line.\n";
-}
-sub carp {
- my $self = shift;
- return warn $self->_message_at_caller(@_);
-}
+=head2 Test Status and Info
-sub croak {
- my $self = shift;
- return die $self->_message_at_caller(@_);
-}
+=over 4
+=item B<no_log_results>
-=back
+This will turn off result long-term storage. Calling this method will make
+C<details> and C<summary> useless. You may want to use this if you are running
+enough tests to fill up all available memory.
+ Test::Builder->new->no_log_results();
-=head2 Test Status and Info
-
-=over 4
+There is no way to turn it back on.
=item B<current_test>
@@ -2056,38 +2335,6 @@ If set forward, the details of the missing tests are filled in as 'unknown'.
if set backward, the details of the intervening tests are deleted. You
can erase history if you really want to.
-=cut
-
-sub current_test {
- my( $self, $num ) = @_;
-
- lock( $self->{Curr_Test} );
- if( defined $num ) {
- $self->{Curr_Test} = $num;
-
- # If the test counter is being pushed forward fill in the details.
- my $test_results = $self->{Test_Results};
- if( $num > @$test_results ) {
- my $start = @$test_results ? @$test_results : 0;
- for( $start .. $num - 1 ) {
- $test_results->[$_] = &share(
- {
- 'ok' => 1,
- actual_ok => undef,
- reason => 'incrementing test number',
- type => 'unknown',
- name => undef
- }
- );
- }
- }
- # If backward, wipe history. Its their funeral.
- elsif( $num < @$test_results ) {
- $#{$test_results} = $num - 1;
- }
- }
- return $self->{Curr_Test};
-}
=item B<is_passing>
@@ -2104,18 +2351,6 @@ test to it and start passing.
Don't think about it too much.
-=cut
-
-sub is_passing {
- my $self = shift;
-
- if( @_ ) {
- $self->{Is_Passing} = shift;
- }
-
- return $self->{Is_Passing};
-}
-
=item B<summary>
@@ -2126,13 +2361,6 @@ This is a logical pass/fail, so todos are passes.
Of course, test #1 is $tests[0], etc...
-=cut
-
-sub summary {
- my($self) = shift;
-
- return map { $_->{'ok'} } @{ $self->{Test_Results} };
-}
=item B<details>
@@ -2140,7 +2368,7 @@ sub summary {
Like C<summary()>, but with a lot more detail.
- $tests[$test_num - 1] =
+ $tests[$test_num - 1] =
{ 'ok' => is the test considered a pass?
actual_ok => did it literally say 'ok'?
name => name of the test (if any)
@@ -2181,12 +2409,6 @@ result in this structure:
reason => 'insufficient donuts'
};
-=cut
-
-sub details {
- my $self = shift;
- return @{ $self->{Test_Results} };
-}
=item B<todo>
@@ -2210,20 +2432,6 @@ Sometimes there is some confusion about where C<todo()> should be looking
for the C<$TODO> variable. If you want to be sure, tell it explicitly
what $pack to use.
-=cut
-
-sub todo {
- my( $self, $pack ) = @_;
-
- return $self->{Todo} if defined $self->{Todo};
-
- local $Level = $Level + 1;
- my $todo = $self->find_TODO($pack);
- return $todo if defined $todo;
-
- return '';
-}
-
=item B<find_TODO>
my $todo_reason = $Test->find_TODO();
@@ -2237,35 +2445,12 @@ old value:
my $old_reason = $Test->find_TODO($pack, 1, $new_reason);
-=cut
-
-sub find_TODO {
- my( $self, $pack, $set, $new_value ) = @_;
-
- $pack = $pack || $self->caller(1) || $self->exported_to;
- return unless $pack;
-
- no strict 'refs'; ## no critic
- my $old_value = ${ $pack . '::TODO' };
- $set and ${ $pack . '::TODO' } = $new_value;
- return $old_value;
-}
-
=item B<in_todo>
my $in_todo = $Test->in_todo;
Returns true if the test is currently inside a TODO block.
-=cut
-
-sub in_todo {
- my $self = shift;
-
- local $Level = $Level + 1;
- return( defined $self->{Todo} || $self->find_TODO ) ? 1 : 0;
-}
-
=item B<todo_start>
$Test->todo_start();
@@ -2307,20 +2492,6 @@ guaranteed and its use is also discouraged:
Pick one style or another of "TODO" to be on the safe side.
-=cut
-
-sub todo_start {
- my $self = shift;
- my $message = @_ ? shift : '';
-
- $self->{Start_Todo}++;
- if( $self->in_todo ) {
- push @{ $self->{Todo_Stack} } => $self->todo;
- }
- $self->{Todo} = $message;
-
- return;
-}
=item C<todo_end>
@@ -2329,27 +2500,6 @@ sub todo_start {
Stops running tests as "TODO" tests. This method is fatal if called without a
preceding C<todo_start> method call.
-=cut
-
-sub todo_end {
- my $self = shift;
-
- if( !$self->{Start_Todo} ) {
- $self->croak('todo_end() called without todo_start()');
- }
-
- $self->{Start_Todo}--;
-
- if( $self->{Start_Todo} && @{ $self->{Todo_Stack} } ) {
- $self->{Todo} = pop @{ $self->{Todo_Stack} };
- }
- else {
- delete $self->{Todo};
- }
-
- return;
-}
-
=item B<caller>
my $package = $Test->caller;
@@ -2362,233 +2512,8 @@ C<$height> will be added to the C<level()>.
If C<caller()> winds up off the top of the stack it report the highest context.
-=cut
-
-sub caller { ## no critic (Subroutines::ProhibitBuiltinHomonyms)
- my( $self, $height ) = @_;
- $height ||= 0;
-
- my $level = $self->level + $height + 1;
- my @caller;
- do {
- @caller = CORE::caller( $level );
- $level--;
- } until @caller;
- return wantarray ? @caller : $caller[0];
-}
-
=back
-=cut
-
-=begin _private
-
-=over 4
-
-=item B<_sanity_check>
-
- $self->_sanity_check();
-
-Runs a bunch of end of test sanity checks to make sure reality came
-through ok. If anything is wrong it will die with a fairly friendly
-error message.
-
-=cut
-
-#'#
-sub _sanity_check {
- my $self = shift;
-
- $self->_whoa( $self->{Curr_Test} < 0, 'Says here you ran a negative number of tests!' );
- $self->_whoa( $self->{Curr_Test} != @{ $self->{Test_Results} },
- 'Somehow you got a different number of results than tests ran!' );
-
- return;
-}
-
-=item B<_whoa>
-
- $self->_whoa($check, $description);
-
-A sanity check, similar to C<assert()>. If the C<$check> is true, something
-has gone horribly wrong. It will die with the given C<$description> and
-a note to contact the author.
-
-=cut
-
-sub _whoa {
- my( $self, $check, $desc ) = @_;
- if($check) {
- local $Level = $Level + 1;
- $self->croak(<<"WHOA");
-WHOA! $desc
-This should never happen! Please contact the author immediately!
-WHOA
- }
-
- return;
-}
-
-=item B<_my_exit>
-
- _my_exit($exit_num);
-
-Perl seems to have some trouble with exiting inside an C<END> block.
-5.6.1 does some odd things. Instead, this function edits C<$?>
-directly. It should B<only> be called from inside an C<END> block.
-It doesn't actually exit, that's your job.
-
-=cut
-
-sub _my_exit {
- $? = $_[0]; ## no critic (Variables::RequireLocalizedPunctuationVars)
-
- return 1;
-}
-
-=back
-
-=end _private
-
-=cut
-
-sub _ending {
- my $self = shift;
- return if $self->no_ending;
- return if $self->{Ending}++;
-
- my $real_exit_code = $?;
-
- # Don't bother with an ending if this is a forked copy. Only the parent
- # should do the ending.
- if( $self->{Original_Pid} != $$ ) {
- return;
- }
-
- # Ran tests but never declared a plan or hit done_testing
- if( !$self->{Have_Plan} and $self->{Curr_Test} ) {
- $self->is_passing(0);
- $self->diag("Tests were run but no plan was declared and done_testing() was not seen.");
-
- if($real_exit_code) {
- $self->diag(<<"FAIL");
-Looks like your test exited with $real_exit_code just after $self->{Curr_Test}.
-FAIL
- $self->is_passing(0);
- _my_exit($real_exit_code) && return;
- }
-
- # But if the tests ran, handle exit code.
- my $test_results = $self->{Test_Results};
- if(@$test_results) {
- my $num_failed = grep !$_->{'ok'}, @{$test_results}[ 0 .. $self->{Curr_Test} - 1 ];
- if ($num_failed > 0) {
-
- my $exit_code = $num_failed <= 254 ? $num_failed : 254;
- _my_exit($exit_code) && return;
- }
- }
- _my_exit(254) && return;
- }
-
- # Exit if plan() was never called. This is so "require Test::Simple"
- # doesn't puke.
- if( !$self->{Have_Plan} ) {
- return;
- }
-
- # Don't do an ending if we bailed out.
- if( $self->{Bailed_Out} ) {
- $self->is_passing(0);
- return;
- }
- # Figure out if we passed or failed and print helpful messages.
- my $test_results = $self->{Test_Results};
- if(@$test_results) {
- # The plan? We have no plan.
- if( $self->{No_Plan} ) {
- $self->_output_plan($self->{Curr_Test}) unless $self->no_header;
- $self->{Expected_Tests} = $self->{Curr_Test};
- }
-
- # Auto-extended arrays and elements which aren't explicitly
- # filled in with a shared reference will puke under 5.8.0
- # ithreads. So we have to fill them in by hand. :(
- my $empty_result = &share( {} );
- for my $idx ( 0 .. $self->{Expected_Tests} - 1 ) {
- $test_results->[$idx] = $empty_result
- unless defined $test_results->[$idx];
- }
-
- my $num_failed = grep !$_->{'ok'}, @{$test_results}[ 0 .. $self->{Curr_Test} - 1 ];
-
- my $num_extra = $self->{Curr_Test} - $self->{Expected_Tests};
-
- if( $num_extra != 0 ) {
- my $s = $self->{Expected_Tests} == 1 ? '' : 's';
- $self->diag(<<"FAIL");
-Looks like you planned $self->{Expected_Tests} test$s but ran $self->{Curr_Test}.
-FAIL
- $self->is_passing(0);
- }
-
- if($num_failed) {
- my $num_tests = $self->{Curr_Test};
- my $s = $num_failed == 1 ? '' : 's';
-
- my $qualifier = $num_extra == 0 ? '' : ' run';
-
- $self->diag(<<"FAIL");
-Looks like you failed $num_failed test$s of $num_tests$qualifier.
-FAIL
- $self->is_passing(0);
- }
-
- if($real_exit_code) {
- $self->diag(<<"FAIL");
-Looks like your test exited with $real_exit_code just after $self->{Curr_Test}.
-FAIL
- $self->is_passing(0);
- _my_exit($real_exit_code) && return;
- }
-
- my $exit_code;
- if($num_failed) {
- $exit_code = $num_failed <= 254 ? $num_failed : 254;
- }
- elsif( $num_extra != 0 ) {
- $exit_code = 255;
- }
- else {
- $exit_code = 0;
- }
-
- _my_exit($exit_code) && return;
- }
- elsif( $self->{Skip_All} ) {
- _my_exit(0) && return;
- }
- elsif($real_exit_code) {
- $self->diag(<<"FAIL");
-Looks like your test exited with $real_exit_code before it could output anything.
-FAIL
- $self->is_passing(0);
- _my_exit($real_exit_code) && return;
- }
- else {
- $self->diag("No tests run!\n");
- $self->is_passing(0);
- _my_exit(255) && return;
- }
-
- $self->is_passing(0);
- $self->_whoa( 1, "We fell off the end of _ending()" );
-}
-
-END {
- $Test->_ending if defined $Test;
-}
-
=head1 EXIT CODES
If all your tests passed, Test::Builder will exit with zero (which is
@@ -2609,9 +2534,9 @@ If you fail more than 254 tests, it will be reported as 254.
=head1 THREADS
-In perl 5.8.1 and later, Test::Builder is thread-safe. The test
-number is shared amongst all threads. This means if one thread sets
-the test number using C<current_test()> they will all be effected.
+In perl 5.8.1 and later, Test::Builder is thread-safe. The test number is
+shared by all threads. This means if one thread sets the test number using
+C<current_test()> they will all be effected.
While versions earlier than 5.8.1 had threads they contain too many
bugs to support.
@@ -2619,6 +2544,18 @@ bugs to support.
Test::Builder is only thread-aware if threads.pm is loaded I<before>
Test::Builder.
+You can directly disable thread support with one of the following:
+
+ $ENV{T2_NO_IPC} = 1
+
+or
+
+ no Test2::IPC;
+
+or
+
+ Test2::API::test2_ipc_disable()
+
=head1 MEMORY
An informative hash, accessible via C<details()>, is stored for each
@@ -2665,8 +2602,3 @@ This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
-
-1;
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm
index 54700c42cbb..8d332808856 100644
--- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm
@@ -38,7 +38,7 @@ use IO::Handle;
use 5.005;
### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "2.113";
+$VERSION = "2.114";
### Inheritance:
@ISA = qw(IO::Handle);
@@ -562,6 +562,7 @@ sub CLOSE { shift->close(@_); }
sub SEEK { shift->seek(@_); }
sub TELL { shift->tell(@_); }
sub EOF { shift->eof(@_); }
+sub FILENO { -1 }
#------------------------------------------------------------
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm
index 2322d8a9b78..be66239db5d 100644
--- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm
@@ -2,13 +2,12 @@ package Test::Builder::Module;
use strict;
-use Test::Builder 1.00;
+use Test::Builder;
require Exporter;
our @ISA = qw(Exporter);
-our $VERSION = '1.001014';
-$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = '1.302133';
=head1 NAME
@@ -22,7 +21,7 @@ Test::Builder::Module - Base class for test modules
my $CLASS = __PACKAGE__;
- use base 'Test::Builder::Module';
+ use parent 'Test::Builder::Module';
@EXPORT = qw(ok);
sub ok ($;$) {
@@ -76,6 +75,8 @@ C<import_extra()>.
sub import {
my($class) = shift;
+ Test2::API::test2_load() unless Test2::API::test2_in_preload();
+
# Don't run all this when loading ourself.
return 1 if $class eq 'Test::Builder::Module';
@@ -90,7 +91,8 @@ sub import {
$test->plan(@_);
- $class->export_to_level( 1, $class, @imports );
+ local $Exporter::ExportLevel = $Exporter::ExportLevel + 1;
+ $class->Exporter::import(@imports);
}
sub _strip_imports {
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm
index b0554b89aca..25ad7c5767d 100644
--- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm
@@ -1,9 +1,9 @@
package Test::Builder::Tester;
use strict;
-our $VERSION = "1.28";
+our $VERSION = '1.302133';
-use Test::Builder 0.99;
+use Test::Builder;
use Symbol;
use Carp;
@@ -104,16 +104,26 @@ my $original_is_passing;
my $original_output_handle;
my $original_failure_handle;
my $original_todo_handle;
+my $original_formatter;
my $original_harness_env;
# function that starts testing and redirects the filehandles for now
sub _start_testing {
+ # Hack for things that conditioned on Test-Stream being loaded
+ $INC{'Test/Stream.pm'} ||= 'fake' if $INC{'Test/Moose/More.pm'};
# even if we're running under Test::Harness pretend we're not
# for now. This needed so Test::Builder doesn't add extra spaces
$original_harness_env = $ENV{HARNESS_ACTIVE} || 0;
$ENV{HARNESS_ACTIVE} = 0;
+ my $hub = $t->{Hub} || ($t->{Stack} ? $t->{Stack}->top : Test2::API::test2_stack->top);
+ $original_formatter = $hub->format;
+ unless ($original_formatter && $original_formatter->isa('Test::Builder::Formatter')) {
+ my $fmt = Test::Builder::Formatter->new;
+ $hub->format($fmt);
+ }
+
# remember what the handles were set to
$original_output_handle = $t->output();
$original_failure_handle = $t->failure_output();
@@ -304,6 +314,8 @@ will function normally and cause success/errors for L<Test::Harness>.
=cut
sub test_test {
+ # END the hack
+ delete $INC{'Test/Stream.pm'} if $INC{'Test/Stream.pm'} && $INC{'Test/Stream.pm'} eq 'fake';
# decode the arguments as described in the pod
my $mess;
my %args;
@@ -321,6 +333,10 @@ sub test_test {
croak "Not testing. You must declare output with a test function first."
unless $testing;
+
+ my $hub = $t->{Hub} || Test2::API::test2_stack->top;
+ $hub->format($original_formatter);
+
# okay, reconnect the test suite back to the saved handles
$t->output($original_output_handle);
$t->failure_output($original_failure_handle);
@@ -420,17 +436,26 @@ sub color {
=head1 BUGS
+Test::Builder::Tester does not handle plans well. It has never done anything
+special with plans. This means that plans from outside Test::Builder::Tester
+will effect Test::Builder::Tester, worse plans when using Test::Builder::Tester
+will effect overall testing. At this point there are no plans to fix this bug
+as people have come to depend on it, and Test::Builder::Tester is now
+discouraged in favor of C<Test2::API::intercept()>. See
+L<https://github.com/Test-More/test-more/issues/667>
+
Calls C<< Test::Builder->no_ending >> turning off the ending tests.
This is needed as otherwise it will trip out because we've run more
tests than we strictly should have and it'll register any failures we
had that we were testing for as real failures.
The color function doesn't work unless L<Term::ANSIColor> is
-compatible with your terminal.
+compatible with your terminal. Additionally, L<Win32::Console::ANSI>
+must be installed on windows platforms for color output.
Bugs (and requests for new features) can be reported to the author
-though the CPAN RT system:
-L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Builder-Tester>
+though GitHub:
+L<https://github.com/Test-More/test-more/issues>
=head1 AUTHOR
@@ -487,8 +512,9 @@ sub expect {
sub _account_for_subtest {
my( $self, $check ) = @_;
- # Since we ship with Test::Builder, calling a private method is safe...ish.
- return ref($check) ? $check : $t->_indent . $check;
+ my $hub = $t->{Stack}->top;
+ my $nesting = $hub->isa('Test2::Hub::Subtest') ? $hub->nested : 0;
+ return ref($check) ? $check : (' ' x $nesting) . $check;
}
sub _translate_Failed_check {
@@ -535,6 +561,8 @@ sub complaint {
# get color
eval { require Term::ANSIColor };
unless($@) {
+ eval { require Win32::Console::ANSI } if 'MSWin32' eq $^O; # support color on windows platforms
+
# colours
my $green = Term::ANSIColor::color("black") . Term::ANSIColor::color("on_green");
@@ -563,6 +591,33 @@ sub complaint {
}
}
+ my @got = split "\n", $got;
+ my @wanted = split "\n", $wanted;
+
+ $got = "";
+ $wanted = "";
+
+ while (@got || @wanted) {
+ my $g = shift @got || "";
+ my $w = shift @wanted || "";
+ if ($g ne $w) {
+ if($g =~ s/(\s+)$/ |> /g) {
+ $g .= ($_ eq ' ' ? '_' : '\t') for split '', $1;
+ }
+ if($w =~ s/(\s+)$/ |> /g) {
+ $w .= ($_ eq ' ' ? '_' : '\t') for split '', $1;
+ }
+ $g = "> $g";
+ $w = "> $w";
+ }
+ else {
+ $g = " $g";
+ $w = " $w";
+ }
+ $got = $got ? "$got\n$g" : $g;
+ $wanted = $wanted ? "$wanted\n$w" : $w;
+ }
+
return "$type is:\n" . "$got\nnot:\n$wanted\nas expected";
}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
index 9a89310f1f3..5cb0e3465f8 100644
--- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
@@ -1,7 +1,7 @@
package Test::Builder::Tester::Color;
use strict;
-our $VERSION = "1.290001";
+our $VERSION = '1.302133';
require Test::Builder::Tester;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm
index 4bab267fcf6..9184c6281da 100644
--- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm
@@ -17,10 +17,9 @@ sub _carp {
return warn @_, " at $file line $line\n";
}
-our $VERSION = '1.001014';
-$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = '1.302133';
-use Test::Builder::Module 0.99;
+use Test::Builder::Module;
our @ISA = qw(Test::Builder::Module);
our @EXPORT = qw(ok use_ok require_ok
is isnt like unlike is_deeply
@@ -126,6 +125,8 @@ the end.
done_testing( $number_of_tests_run );
+B<NOTE> C<done_testing()> should never be called in an C<END { ... }> block.
+
Sometimes you really don't know how many tests were run, or it's too
difficult to calculate. In which case you can leave off
$number_of_tests_run.
@@ -176,12 +177,22 @@ sub import_extra {
my @other = ();
my $idx = 0;
+ my $import;
while( $idx <= $#{$list} ) {
my $item = $list->[$idx];
if( defined $item and $item eq 'no_diag' ) {
$class->builder->no_diag(1);
}
+ elsif( defined $item and $item eq 'import' ) {
+ if ($import) {
+ push @$import, @{$list->[ ++$idx ]};
+ }
+ else {
+ $import = $list->[ ++$idx ];
+ push @other, $item, $import;
+ }
+ }
else {
push @other, $item;
}
@@ -191,6 +202,18 @@ sub import_extra {
@$list = @other;
+ if ($class eq __PACKAGE__ && (!$import || grep $_ eq '$TODO', @$import)) {
+ my $to = $class->builder->exported_to;
+ no strict 'refs';
+ *{"$to\::TODO"} = \our $TODO;
+ if ($import) {
+ @$import = grep $_ ne '$TODO', @$import;
+ }
+ else {
+ push @$list, import => [grep $_ ne '$TODO', @EXPORT];
+ }
+ }
+
return;
}
@@ -211,6 +234,10 @@ conclusion.
This is safer than and replaces the "no_plan" plan.
+B<Note:> You must never put C<done_testing()> inside an C<END { ... }> block.
+The plan is there to ensure your test does not exit before testing has
+completed. If you use an END block you completely bypass this protection.
+
=back
=cut
@@ -703,7 +730,7 @@ sub new_ok {
=item B<subtest>
- subtest $name => \&code;
+ subtest $name => \&code, @args;
C<subtest()> runs the &code as its own little test with its own plan and
its own result. The main test counts this as a single test using the
@@ -762,11 +789,20 @@ subtests are equivalent:
done_testing();
};
+Extra arguments given to C<subtest> are passed to the callback. For example:
+
+ sub my_subtest {
+ my $range = shift;
+ ...
+ }
+
+ for my $range (1, 10, 100, 1000) {
+ subtest "testing range $range", \&my_subtest, $range;
+ }
+
=cut
sub subtest {
- my ($name, $subtests) = @_;
-
my $tb = Test::More->builder;
return $tb->subtest(@_);
}
@@ -940,7 +976,10 @@ sub use_ok ($;@) {
@imports = () unless @imports;
my $tb = Test::More->builder;
- my( $pack, $filename, $line ) = caller;
+ my %caller;
+ @caller{qw/pack file line sub args want eval req strict warn/} = caller(0);
+
+ my ($pack, $filename, $line, $warn) = @caller{qw/pack file line warn/};
$filename =~ y/\n\r/_/; # so it doesn't run off the "#line $line $f" line
my $code;
@@ -949,7 +988,7 @@ sub use_ok ($;@) {
# for it to work with non-Exporter based modules.
$code = <<USE;
package $pack;
-
+BEGIN { \${^WARNING_BITS} = \$args[-1] if defined \$args[-1] }
#line $line $filename
use $module $imports[0];
1;
@@ -958,14 +997,14 @@ USE
else {
$code = <<USE;
package $pack;
-
+BEGIN { \${^WARNING_BITS} = \$args[-1] if defined \$args[-1] }
#line $line $filename
use $module \@{\$args[0]};
1;
USE
}
- my( $eval_result, $eval_error ) = _eval( $code, \@imports );
+ my ($eval_result, $eval_error) = _eval($code, \@imports, $warn);
my $ok = $tb->ok( $eval_result, "use $module;" );
unless($ok) {
@@ -1034,6 +1073,20 @@ improve in the future.
L<Test::Differences> and L<Test::Deep> provide more in-depth functionality
along these lines.
+B<NOTE> is_deeply() has limitations when it comes to comparing strings and
+refs:
+
+ my $path = path('.');
+ my $hash = {};
+ is_deeply( $path, "$path" ); # ok
+ is_deeply( $hash, "$hash" ); # fail
+
+This happens because is_deeply will unoverload all arguments unconditionally.
+It is probably best not to use is_deeply with overloading. For legacy reasons
+this is not likely to ever be fixed. If you would like a much better tool for
+this you should see L<Test2::Suite> Specifically L<Test2::Tools::Compare> has
+an C<is()> function that works like C<is_deeply> with many improvements.
+
=cut
our( @Data_Stack, %Refs_Seen );
@@ -1134,7 +1187,7 @@ sub _type {
return '' if !ref $thing;
- for my $type (qw(Regexp ARRAY HASH REF SCALAR GLOB CODE)) {
+ for my $type (qw(Regexp ARRAY HASH REF SCALAR GLOB CODE VSTRING)) {
return $type if UNIVERSAL::isa( $thing, $type );
}
@@ -1293,10 +1346,13 @@ sub skip {
my( $why, $how_many ) = @_;
my $tb = Test::More->builder;
- unless( defined $how_many ) {
- # $how_many can only be avoided when no_plan is in use.
+ # If the plan is set, and is static, then skip needs a count. If the plan
+ # is 'no_plan' we are fine. As well if plan is undefined then we are
+ # waiting for done_testing.
+ unless (defined $how_many) {
+ my $plan = $tb->has_plan;
_carp "skip() needs to know \$how_many tests are in the block"
- unless $tb->has_plan eq 'no_plan';
+ if $plan && $plan =~ m/^\d+$/;
$how_many = 1;
}
@@ -1903,8 +1959,6 @@ comes from.
=head2 BUNDLES
-L<Bundle::Test> installs a whole bunch of useful test modules.
-
L<Test::Most> Most commonly needed test functions and features.
=head1 AUTHORS
@@ -1925,7 +1979,7 @@ the perl-qa gang.
=head1 BUGS
-See F<http://rt.cpan.org> to report and view bugs.
+See F<https://github.com/Test-More/test-more/issues> to report and view bugs.
=head1 SOURCE
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm
index 56457b407f8..56220211126 100644
--- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm
+++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm
@@ -4,10 +4,9 @@ use 5.006;
use strict;
-our $VERSION = '1.001014';
-$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = '1.302133';
-use Test::Builder::Module 0.99;
+use Test::Builder::Module;
our @ISA = qw(Test::Builder::Module);
our @EXPORT = qw(ok);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tutorial.pod b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tutorial.pod
index a71a9c1b3f2..eb38018b8b7 100644
--- a/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tutorial.pod
+++ b/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tutorial.pod
@@ -297,7 +297,7 @@ Now we can test bunches of dates by just adding them to
C<%ICal_Dates>. Now that it's less work to test with more dates, you'll
be inclined to just throw more in as you think of them.
Only problem is, every time we add to that we have to keep adjusting
-the L<< use Test::More tests => ## >> line. That can rapidly get
+the C<< use Test::More tests => ## >> line. That can rapidly get
annoying. There are ways to make this work better.
First, we can calculate the plan dynamically using the C<plan()>
@@ -358,7 +358,7 @@ for you or for the next person who runs your test.
=head2 Skipping tests
-Poking around in the existing Date::ICal tests, I found this in
+Poking around in the existing L<Date::ICal> tests, I found this in
F<t/01sanity.t> [7]
#!/usr/bin/perl -w
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/00test_harness_check.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/00test_harness_check.t
deleted file mode 100755
index 3ff4a13c639..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/00test_harness_check.t
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/perl -w
-
-# A test to make sure the new Test::Harness was installed properly.
-
-use Test::More;
-plan tests => 1;
-
-my $TH_Version = 2.03;
-
-require Test::Harness;
-unless( cmp_ok( eval $Test::Harness::VERSION, '>=', $TH_Version, "T::H version" ) ) {
- diag <<INSTRUCTIONS;
-
-Test::Simple/More/Builder has features which depend on a version of
-Test::Harness greater than $TH_Version. You have $Test::Harness::VERSION.
-Please install a new version from CPAN.
-
-If you've already tried to upgrade Test::Harness and still get this
-message, the new version may be "shadowed" by the old. Check the
-output of Test::Harness's "make install" for "## Differing version"
-messages. You can delete the old version by running
-"make install UNINST=1".
-
-INSTRUCTIONS
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/01-basic.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/01-basic.t
deleted file mode 100644
index 12997d5155e..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/01-basic.t
+++ /dev/null
@@ -1,5 +0,0 @@
-use strict;
-use Test::More tests => 3;
-use ok 'strict';
-use ok 'Test::More';
-use ok 'ok';
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/478-cmp_ok_hash.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/478-cmp_ok_hash.t
deleted file mode 100644
index 811835b9d3f..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/478-cmp_ok_hash.t
+++ /dev/null
@@ -1,41 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-
-my $want = 0;
-my $got = 0;
-
-cmp_ok($got, 'eq', $want, "Passes on correct comparison");
-
-my ($res, @ok, @diag, @warn);
-{
- no warnings 'redefine';
- local *Test::Builder::ok = sub {
- my ($tb, $ok, $name) = @_;
- push @ok => $ok;
- return $ok;
- };
- local *Test::Builder::diag = sub {
- my ($tb, @d) = @_;
- push @diag => @d;
- };
- local $SIG{__WARN__} = sub {
- push @warn => @_;
- };
- $res = cmp_ok($got, '#eq', $want, "You shall not pass!");
-}
-
-ok(!$res, "Did not pass");
-
-is(@ok, 1, "1 result");
-ok(!$ok[0], "result is false");
-
-# We only care that it mentions a syntax error.
-like(join("\n" => @diag), qr/syntax error at \(eval in cmp_ok\)/, "Syntax error");
-
-# We are not going to inspect the warning because it is not super predictable,
-# and changes with eval specifics.
-ok(@warn, "We got warnings");
-
-done_testing;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/BEGIN_require_ok.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/BEGIN_require_ok.t
deleted file mode 100755
index 733d0bb861c..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/BEGIN_require_ok.t
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl -w
-
-# Fixed a problem with BEGIN { use_ok or require_ok } silently failing when there's no
-# plan set. [rt.cpan.org 28345] Thanks Adriano Ferreira and Yitzchak.
-
-use strict;
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::More;
-
-my $result;
-BEGIN {
- $result = require_ok("strict");
-}
-
-ok $result, "require_ok ran";
-
-done_testing(2);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/BEGIN_use_ok.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/BEGIN_use_ok.t
deleted file mode 100755
index 476badf7a29..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/BEGIN_use_ok.t
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/perl -w
-
-# [rt.cpan.org 28345]
-#
-# A use_ok() inside a BEGIN block lacking a plan would be silently ignored.
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::More;
-
-my $result;
-BEGIN {
- $result = use_ok("strict");
-}
-
-ok( $result, "use_ok() ran" );
-done_testing(2);
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/Builder.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/Builder.t
deleted file mode 100755
index a5bfd155a62..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/Builder.t
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::Builder;
-my $Test = Test::Builder->new;
-
-$Test->plan( tests => 7 );
-
-my $default_lvl = $Test->level;
-$Test->level(0);
-
-$Test->ok( 1, 'compiled and new()' );
-$Test->ok( $default_lvl == 1, 'level()' );
-
-$Test->is_eq('foo', 'foo', 'is_eq');
-$Test->is_num('23.0', '23', 'is_num');
-
-$Test->is_num( $Test->current_test, 4, 'current_test() get' );
-
-my $test_num = $Test->current_test + 1;
-$Test->current_test( $test_num );
-print "ok $test_num - current_test() set\n";
-
-$Test->ok( 1, 'counter still good' );
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/carp.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/carp.t
deleted file mode 100755
index e89eeebfb9d..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/carp.t
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/perl
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-
-use Test::More tests => 3;
-use Test::Builder;
-
-my $tb = Test::Builder->create;
-sub foo { $tb->croak("foo") }
-sub bar { $tb->carp("bar") }
-
-eval { foo() };
-is $@, sprintf "foo at %s line %s.\n", $0, __LINE__ - 1;
-
-eval { $tb->croak("this") };
-is $@, sprintf "this at %s line %s.\n", $0, __LINE__ - 1;
-
-{
- my $warning = '';
- local $SIG{__WARN__} = sub {
- $warning .= join '', @_;
- };
-
- bar();
- is $warning, sprintf "bar at %s line %s.\n", $0, __LINE__ - 1;
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/create.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/create.t
deleted file mode 100755
index 64be8511d89..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/create.t
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::More tests => 7;
-use Test::Builder;
-use Test::Builder::NoOutput;
-
-my $more_tb = Test::More->builder;
-isa_ok $more_tb, 'Test::Builder';
-
-is $more_tb, Test::More->builder, 'create does not interfere with ->builder';
-is $more_tb, Test::Builder->new, ' does not interfere with ->new';
-
-{
- my $new_tb = Test::Builder::NoOutput->create;
-
- isa_ok $new_tb, 'Test::Builder';
- isnt $more_tb, $new_tb, 'Test::Builder->create makes a new object';
-
- $new_tb->plan(tests => 1);
- $new_tb->ok(1, "a test");
-
- is $new_tb->read, <<'OUT';
-1..1
-ok 1 - a test
-OUT
-}
-
-pass("Changing output() of new TB doesn't interfere with singleton");
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/current_test.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/current_test.t
deleted file mode 100755
index edd201c0e9d..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/current_test.t
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/perl -w
-
-# Dave Rolsky found a bug where if current_test() is used and no
-# tests are run via Test::Builder it will blow up.
-
-use Test::Builder;
-$TB = Test::Builder->new;
-$TB->plan(tests => 2);
-print "ok 1\n";
-print "ok 2\n";
-$TB->current_test(2);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/current_test_without_plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/current_test_without_plan.t
deleted file mode 100755
index 31f95899777..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/current_test_without_plan.t
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test that current_test() will work without a declared plan.
-
-use Test::Builder;
-
-my $tb = Test::Builder->new;
-$tb->current_test(2);
-print <<'END';
-ok 1
-ok 2
-END
-
-$tb->ok(1, "Third test");
-
-$tb->done_testing(3);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/details.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/details.t
deleted file mode 100755
index 05d4828b4d9..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/details.t
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::More;
-use Test::Builder;
-my $Test = Test::Builder->new;
-
-$Test->plan( tests => 9 );
-$Test->level(0);
-
-my @Expected_Details;
-
-$Test->is_num( scalar $Test->summary(), 0, 'no tests yet, no summary' );
-push @Expected_Details, { 'ok' => 1,
- actual_ok => 1,
- name => 'no tests yet, no summary',
- type => '',
- reason => ''
- };
-
-# Inline TODO tests will confuse pre 1.20 Test::Harness, so we
-# should just avoid the problem and not print it out.
-my $start_test = $Test->current_test + 1;
-
-my $output = '';
-$Test->output(\$output);
-$Test->todo_output(\$output);
-
-SKIP: {
- $Test->skip( 'just testing skip' );
-}
-push @Expected_Details, { 'ok' => 1,
- actual_ok => 1,
- name => '',
- type => 'skip',
- reason => 'just testing skip',
- };
-
-TODO: {
- local $TODO = 'i need a todo';
- $Test->ok( 0, 'a test to todo!' );
-
- push @Expected_Details, { 'ok' => 1,
- actual_ok => 0,
- name => 'a test to todo!',
- type => 'todo',
- reason => 'i need a todo',
- };
-
- $Test->todo_skip( 'i need both' );
-}
-push @Expected_Details, { 'ok' => 1,
- actual_ok => 0,
- name => '',
- type => 'todo_skip',
- reason => 'i need both'
- };
-
-for ($start_test..$Test->current_test) { print "ok $_\n" }
-$Test->reset_outputs;
-
-$Test->is_num( scalar $Test->summary(), 4, 'summary' );
-push @Expected_Details, { 'ok' => 1,
- actual_ok => 1,
- name => 'summary',
- type => '',
- reason => '',
- };
-
-$Test->current_test(6);
-print "ok 6 - current_test incremented\n";
-push @Expected_Details, { 'ok' => 1,
- actual_ok => undef,
- name => undef,
- type => 'unknown',
- reason => 'incrementing test number',
- };
-
-my @details = $Test->details();
-$Test->is_num( scalar @details, 6,
- 'details() should return a list of all test details');
-
-$Test->level(1);
-is_deeply( \@details, \@Expected_Details );
-
-
-# This test has to come last because it thrashes the test details.
-{
- my $curr_test = $Test->current_test;
- $Test->current_test(4);
- my @details = $Test->details();
-
- $Test->current_test($curr_test);
- $Test->is_num( scalar @details, 4 );
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing.t
deleted file mode 100755
index 14a8f918b02..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing.t
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-use Test::Builder;
-
-my $tb = Test::Builder->new;
-$tb->level(0);
-
-$tb->ok(1, "testing done_testing() with no arguments");
-$tb->ok(1, " another test so we're not testing just one");
-$tb->done_testing();
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_double.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_double.t
deleted file mode 100755
index 3a0bae247bc..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_double.t
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::Builder;
-use Test::Builder::NoOutput;
-
-my $tb = Test::Builder::NoOutput->create;
-
-{
- # Normalize test output
- local $ENV{HARNESS_ACTIVE};
-
- $tb->ok(1);
- $tb->ok(1);
- $tb->ok(1);
-
-#line 24
- $tb->done_testing(3);
- $tb->done_testing;
- $tb->done_testing;
-}
-
-my $Test = Test::Builder->new;
-$Test->plan( tests => 1 );
-$Test->level(0);
-$Test->is_eq($tb->read, <<"END", "multiple done_testing");
-ok 1
-ok 2
-ok 3
-1..3
-not ok 4 - done_testing() was already called at $0 line 24
-# Failed test 'done_testing() was already called at $0 line 24'
-# at $0 line 25.
-not ok 5 - done_testing() was already called at $0 line 24
-# Failed test 'done_testing() was already called at $0 line 24'
-# at $0 line 26.
-END
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_plan_mismatch.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_plan_mismatch.t
deleted file mode 100755
index 8208635359f..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_plan_mismatch.t
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/perl -w
-
-# What if there's a plan and done_testing but they don't match?
-
-use strict;
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::Builder;
-use Test::Builder::NoOutput;
-
-my $tb = Test::Builder::NoOutput->create;
-
-{
- # Normalize test output
- local $ENV{HARNESS_ACTIVE};
-
- $tb->plan( tests => 3 );
- $tb->ok(1);
- $tb->ok(1);
- $tb->ok(1);
-
-#line 24
- $tb->done_testing(2);
-}
-
-my $Test = Test::Builder->new;
-$Test->plan( tests => 1 );
-$Test->level(0);
-$Test->is_eq($tb->read, <<"END");
-1..3
-ok 1
-ok 2
-ok 3
-not ok 4 - planned to run 3 but done_testing() expects 2
-# Failed test 'planned to run 3 but done_testing() expects 2'
-# at $0 line 24.
-END
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_no_plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_no_plan.t
deleted file mode 100755
index ff5f40c1975..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_no_plan.t
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-use Test::Builder;
-
-my $tb = Test::Builder->new;
-$tb->plan( "no_plan" );
-$tb->ok(1);
-$tb->ok(1);
-$tb->done_testing(2);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_number.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_number.t
deleted file mode 100755
index c21458f54ee..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_number.t
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-use Test::Builder;
-
-my $tb = Test::Builder->new;
-$tb->level(0);
-
-$tb->ok(1, "testing done_testing() with no arguments");
-$tb->ok(1, " another test so we're not testing just one");
-$tb->done_testing(2);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_plan.t
deleted file mode 100755
index c0a3d0f014d..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/done_testing_with_plan.t
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-use Test::Builder;
-
-my $tb = Test::Builder->new;
-$tb->plan( tests => 2 );
-$tb->ok(1);
-$tb->ok(1);
-$tb->done_testing(2);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/fork_with_new_stdout.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/fork_with_new_stdout.t
deleted file mode 100755
index e38c1d08cbc..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/fork_with_new_stdout.t
+++ /dev/null
@@ -1,54 +0,0 @@
-#!perl -w
-use strict;
-use warnings;
-use IO::Pipe;
-use Test::Builder;
-use Config;
-
-my $b = Test::Builder->new;
-$b->reset;
-
-my $Can_Fork = $Config{d_fork} ||
- (($^O eq 'MSWin32' || $^O eq 'NetWare') and
- $Config{useithreads} and
- $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
- );
-
-if( !$Can_Fork ) {
- $b->plan('skip_all' => "This system cannot fork");
-}
-else {
- $b->plan('tests' => 2);
-}
-
-my $pipe = IO::Pipe->new;
-if ( my $pid = fork ) {
- $pipe->reader;
- $b->ok((<$pipe> =~ /FROM CHILD: ok 1/), "ok 1 from child");
- $b->ok((<$pipe> =~ /FROM CHILD: 1\.\.1/), "1..1 from child");
- waitpid($pid, 0);
-}
-else {
- $pipe->writer;
- my $pipe_fd = $pipe->fileno;
- close STDOUT;
- open(STDOUT, ">&$pipe_fd");
- my $b = Test::Builder->new;
- $b->reset;
- $b->no_plan;
- $b->ok(1);
-}
-
-
-=pod
-#actual
-1..2
-ok 1
-1..1
-ok 1
-ok 2
-#expected
-1..2
-ok 1
-ok 2
-=cut
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/has_plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/has_plan.t
deleted file mode 100755
index d0be86a97aa..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/has_plan.t
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib');
- }
-}
-
-use strict;
-use Test::Builder;
-
-my $unplanned;
-
-BEGIN {
- $unplanned = 'oops';
- $unplanned = Test::Builder->new->has_plan;
-};
-
-use Test::More tests => 2;
-
-is($unplanned, undef, 'no plan yet defined');
-is(Test::Builder->new->has_plan, 2, 'has fixed plan');
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/has_plan2.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/has_plan2.t
deleted file mode 100755
index e13ea4af944..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/has_plan2.t
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More;
-
-BEGIN {
- if( !$ENV{HARNESS_ACTIVE} && $ENV{PERL_CORE} ) {
- plan skip_all => "Won't work with t/TEST";
- }
-}
-
-use strict;
-use Test::Builder;
-
-plan 'no_plan';
-is(Test::Builder->new->has_plan, 'no_plan', 'has no_plan');
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/is_fh.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/is_fh.t
deleted file mode 100755
index 0eb3ec0b159..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/is_fh.t
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use Test::More tests => 11;
-use TieOut;
-
-ok( !Test::Builder->is_fh("foo"), 'string is not a filehandle' );
-ok( !Test::Builder->is_fh(''), 'empty string' );
-ok( !Test::Builder->is_fh(undef), 'undef' );
-
-ok( open(FILE, '>foo') );
-END { close FILE; 1 while unlink 'foo' }
-
-ok( Test::Builder->is_fh(*FILE) );
-ok( Test::Builder->is_fh(\*FILE) );
-ok( Test::Builder->is_fh(*FILE{IO}) );
-
-tie *OUT, 'TieOut';
-ok( Test::Builder->is_fh(*OUT) );
-ok( Test::Builder->is_fh(\*OUT) );
-
-SKIP: {
- skip "*TIED_HANDLE{IO} doesn't work in this perl", 1
- unless defined *OUT{IO};
- ok( Test::Builder->is_fh(*OUT{IO}) );
-}
-
-
-package Lying::isa;
-
-sub isa {
- my $self = shift;
- my $parent = shift;
-
- return 1 if $parent eq 'IO::Handle';
-}
-
-::ok( Test::Builder->is_fh(bless {}, "Lying::isa"));
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/is_passing.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/is_passing.t
deleted file mode 100755
index d335aada574..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/is_passing.t
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use lib 't/lib';
-
-# We're going to need to override exit() later
-BEGIN {
- *CORE::GLOBAL::exit = sub(;$) {
- my $status = @_ ? 0 : shift;
- CORE::exit $status;
- };
-}
-
-use Test::More;
-use Test::Builder;
-use Test::Builder::NoOutput;
-
-{
- my $tb = Test::Builder::NoOutput->create;
- ok $tb->is_passing, "a fresh TB object is passing";
-
- $tb->ok(1);
- ok $tb->is_passing, " still passing after a test";
-
- $tb->ok(0);
- ok !$tb->is_passing, " not passing after a failing test";
-
- $tb->ok(1);
- ok !$tb->is_passing, " a passing test doesn't resurrect it";
-
- $tb->done_testing(3);
- ok !$tb->is_passing, " a successful plan doesn't help either";
-}
-
-
-# See if is_passing() notices a plan overrun
-{
- my $tb = Test::Builder::NoOutput->create;
- $tb->plan( tests => 1 );
- $tb->ok(1);
- ok $tb->is_passing, "Passing with a plan";
-
- $tb->ok(1);
- ok !$tb->is_passing, " passing test, but it overran the plan";
-}
-
-
-# is_passing() vs no_plan
-{
- my $tb = Test::Builder::NoOutput->create;
- $tb->plan( "no_plan" );
- ok $tb->is_passing, "Passing with no_plan";
-
- $tb->ok(1);
- ok $tb->is_passing, " still passing after a test";
-
- $tb->ok(1);
- ok $tb->is_passing, " and another test";
-
- $tb->_ending;
- ok $tb->is_passing, " and after the ending";
-}
-
-
-# is_passing() vs skip_all
-{
- my $tb = Test::Builder::NoOutput->create;
-
- {
- no warnings 'redefine';
- local *CORE::GLOBAL::exit = sub {
- return 1;
- };
- $tb->plan( "skip_all" );
- }
- ok $tb->is_passing, "Passing with skip_all";
-}
-
-
-# is_passing() vs done_testing(#)
-{
- my $tb = Test::Builder::NoOutput->create;
- $tb->ok(1);
- $tb->done_testing(2);
- ok !$tb->is_passing, "All tests passed but done_testing() does not match";
-}
-
-
-# is_passing() with no tests run vs done_testing()
-{
- my $tb = Test::Builder::NoOutput->create;
- $tb->done_testing();
- ok !$tb->is_passing, "No tests run with done_testing()";
-}
-
-
-# is_passing() with no tests run vs done_testing()
-{
- my $tb = Test::Builder::NoOutput->create;
- $tb->ok(1);
- $tb->done_testing();
- ok $tb->is_passing, "All tests passed with done_testing()";
-}
-
-
-done_testing();
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/maybe_regex.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/maybe_regex.t
deleted file mode 100755
index d1927a56e5b..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/maybe_regex.t
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use Test::More tests => 16;
-
-use Test::Builder;
-my $Test = Test::Builder->new;
-
-my $r = $Test->maybe_regex(qr/^FOO$/i);
-ok(defined $r, 'qr// detected');
-ok(('foo' =~ /$r/), 'qr// good match');
-ok(('bar' !~ /$r/), 'qr// bad match');
-
-SKIP: {
- skip "blessed regex checker added in 5.10", 3 if $] < 5.010;
-
- my $obj = bless qr/foo/, 'Wibble';
- my $re = $Test->maybe_regex($obj);
- ok( defined $re, "blessed regex detected" );
- ok( ('foo' =~ /$re/), 'blessed qr/foo/ good match' );
- ok( ('bar' !~ /$re/), 'blessed qr/foo/ bad math' );
-}
-
-{
- my $r = $Test->maybe_regex('/^BAR$/i');
- ok(defined $r, '"//" detected');
- ok(('bar' =~ m/$r/), '"//" good match');
- ok(('foo' !~ m/$r/), '"//" bad match');
-};
-
-{
- my $r = $Test->maybe_regex('not a regex');
- ok(!defined $r, 'non-regex detected');
-};
-
-
-{
- my $r = $Test->maybe_regex('/0/');
- ok(defined $r, 'non-regex detected');
- ok(('f00' =~ m/$r/), '"//" good match');
- ok(('b4r' !~ m/$r/), '"//" bad match');
-};
-
-
-{
- my $r = $Test->maybe_regex('m,foo,i');
- ok(defined $r, 'm,, detected');
- ok(('fOO' =~ m/$r/), '"//" good match');
- ok(('bar' !~ m/$r/), '"//" bad match');
-};
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_diag.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_diag.t
deleted file mode 100755
index 6fa538a82ea..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_diag.t
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/perl -w
-
-use Test::More 'no_diag', tests => 2;
-
-pass('foo');
-diag('This should not be displayed');
-
-is(Test::More->builder->no_diag, 1);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_ending.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_ending.t
deleted file mode 100755
index 03e0cc489d9..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_ending.t
+++ /dev/null
@@ -1,21 +0,0 @@
-use Test::Builder;
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-BEGIN {
- my $t = Test::Builder->new;
- $t->no_ending(1);
-}
-
-use Test::More tests => 3;
-
-# Normally, Test::More would yell that we ran too few tests, but we
-# suppressed the ending diagnostics.
-pass;
-print "ok 2\n";
-print "ok 3\n";
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_header.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_header.t
deleted file mode 100755
index 93e6bec34c7..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_header.t
+++ /dev/null
@@ -1,21 +0,0 @@
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::Builder;
-
-# STDOUT must be unbuffered else our prints might come out after
-# Test::More's.
-$| = 1;
-
-BEGIN {
- Test::Builder->new->no_header(1);
-}
-
-use Test::More tests => 1;
-
-print "1..1\n";
-pass;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_plan_at_all.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_plan_at_all.t
deleted file mode 100755
index 64a0e194767..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/no_plan_at_all.t
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test what happens when no plan is declared and done_testing() is not seen
-
-use strict;
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::Builder;
-use Test::Builder::NoOutput;
-
-my $Test = Test::Builder->new;
-$Test->level(0);
-$Test->plan( tests => 1 );
-
-my $tb = Test::Builder::NoOutput->create;
-
-{
- $tb->level(0);
- $tb->ok(1, "just a test");
- $tb->ok(1, " and another");
- $tb->_ending;
-}
-
-$Test->is_eq($tb->read, <<'END', "proper behavior when no plan is seen");
-ok 1 - just a test
-ok 2 - and another
-# Tests were run but no plan was declared and done_testing() was not seen.
-END
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/ok_obj.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/ok_obj.t
deleted file mode 100755
index 8678dbff8d9..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/ok_obj.t
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/perl -w
-
-# Testing to make sure Test::Builder doesn't accidentally store objects
-# passed in as test arguments.
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More tests => 4;
-
-package Foo;
-my $destroyed = 0;
-sub new { bless {}, shift }
-
-sub DESTROY {
- $destroyed++;
-}
-
-package main;
-
-for (1..3) {
- ok(my $foo = Foo->new, 'created Foo object');
-}
-is $destroyed, 3, "DESTROY called 3 times";
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/output.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/output.t
deleted file mode 100755
index 77e0e0bbb38..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/output.t
+++ /dev/null
@@ -1,113 +0,0 @@
-#!perl -w
-
-use strict;
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-chdir 't';
-
-use Test::Builder;
-
-# The real Test::Builder
-my $Test = Test::Builder->new;
-$Test->plan( tests => 6 );
-
-
-# The one we're going to test.
-my $tb = Test::Builder->create();
-
-my $tmpfile = 'foo.tmp';
-END { 1 while unlink($tmpfile) }
-
-# Test output to a file
-{
- my $out = $tb->output($tmpfile);
- $Test->ok( defined $out );
-
- print $out "hi!\n";
- close *$out;
-
- undef $out;
- open(IN, $tmpfile) or die $!;
- chomp(my $line = <IN>);
- close IN;
-
- $Test->is_eq($line, 'hi!');
-}
-
-
-# Test output to a filehandle
-{
- open(FOO, ">>$tmpfile") or die $!;
- my $out = $tb->output(\*FOO);
- my $old = select *$out;
- print "Hello!\n";
- close *$out;
- undef $out;
- select $old;
- open(IN, $tmpfile) or die $!;
- my @lines = <IN>;
- close IN;
-
- $Test->like($lines[1], qr/Hello!/);
-}
-
-
-# Test output to a scalar ref
-{
- my $scalar = '';
- my $out = $tb->output(\$scalar);
-
- print $out "Hey hey hey!\n";
- $Test->is_eq($scalar, "Hey hey hey!\n");
-}
-
-
-# Test we can output to the same scalar ref
-{
- my $scalar = '';
- my $out = $tb->output(\$scalar);
- my $err = $tb->failure_output(\$scalar);
-
- print $out "To output ";
- print $err "and beyond!";
-
- $Test->is_eq($scalar, "To output and beyond!", "One scalar, two filehandles");
-}
-
-
-# Ensure stray newline in name escaping works.
-{
- my $fakeout = '';
- my $out = $tb->output(\$fakeout);
- $tb->exported_to(__PACKAGE__);
- $tb->no_ending(1);
- $tb->plan(tests => 5);
-
- $tb->ok(1, "ok");
- $tb->ok(1, "ok\n");
- $tb->ok(1, "ok, like\nok");
- $tb->skip("wibble\nmoof");
- $tb->todo_skip("todo\nskip\n");
-
- $Test->is_eq( $fakeout, <<OUTPUT ) || print STDERR $fakeout;
-1..5
-ok 1 - ok
-ok 2 - ok
-#
-ok 3 - ok, like
-# ok
-ok 4 # skip wibble
-# moof
-not ok 5 # TODO & SKIP todo
-# skip
-#
-OUTPUT
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/reset.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/reset.t
deleted file mode 100755
index 3bc44457fc0..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/reset.t
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test Test::Builder->reset;
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-chdir 't';
-
-
-use Test::Builder;
-my $Test = Test::Builder->new;
-my $tb = Test::Builder->create;
-
-# We'll need this later to know the outputs were reset
-my %Original_Output;
-$Original_Output{$_} = $tb->$_ for qw(output failure_output todo_output);
-
-# Alter the state of Test::Builder as much as possible.
-my $output = '';
-$tb->output(\$output);
-$tb->failure_output(\$output);
-$tb->todo_output(\$output);
-
-$tb->plan(tests => 14);
-$tb->level(0);
-
-$tb->ok(1, "Running a test to alter TB's state");
-
-# This won't print since we just sent output off to oblivion.
-$tb->ok(0, "And a failure for fun");
-
-$Test::Builder::Level = 3;
-
-$tb->exported_to('Foofer');
-
-$tb->use_numbers(0);
-$tb->no_header(1);
-$tb->no_ending(1);
-
-$tb->done_testing; # make sure done_testing gets reset
-
-# Now reset it.
-$tb->reset;
-
-
-# Test the state of the reset builder
-$Test->ok( !defined $tb->exported_to, 'exported_to' );
-$Test->is_eq( $tb->expected_tests, 0, 'expected_tests' );
-$Test->is_eq( $tb->level, 1, 'level' );
-$Test->is_eq( $tb->use_numbers, 1, 'use_numbers' );
-$Test->is_eq( $tb->no_header, 0, 'no_header' );
-$Test->is_eq( $tb->no_ending, 0, 'no_ending' );
-$Test->is_eq( $tb->current_test, 0, 'current_test' );
-$Test->is_eq( scalar $tb->summary, 0, 'summary' );
-$Test->is_eq( scalar $tb->details, 0, 'details' );
-$Test->is_eq( fileno $tb->output,
- fileno $Original_Output{output}, 'output' );
-$Test->is_eq( fileno $tb->failure_output,
- fileno $Original_Output{failure_output}, 'failure_output' );
-$Test->is_eq( fileno $tb->todo_output,
- fileno $Original_Output{todo_output}, 'todo_output' );
-
-# The reset Test::Builder will take over from here.
-$Test->no_ending(1);
-
-
-$tb->current_test($Test->current_test);
-$tb->level(0);
-$tb->ok(1, 'final test to make sure output was reset');
-
-$tb->done_testing;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/reset_outputs.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/reset_outputs.t
deleted file mode 100644
index b199128ad38..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/reset_outputs.t
+++ /dev/null
@@ -1,35 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::Builder;
-use Test::More 'no_plan';
-
-{
- my $tb = Test::Builder->create();
-
- # Store the original output filehandles and change them all.
- my %original_outputs;
-
- open my $fh, ">", "dummy_file.tmp";
- END { 1 while unlink "dummy_file.tmp"; }
- for my $method (qw(output failure_output todo_output)) {
- $original_outputs{$method} = $tb->$method();
- $tb->$method($fh);
- is $tb->$method(), $fh;
- }
-
- $tb->reset_outputs;
-
- for my $method (qw(output failure_output todo_output)) {
- is $tb->$method(), $original_outputs{$method}, "reset_outputs() resets $method";
- }
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/try.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/try.t
deleted file mode 100755
index eeb3bcb1ab4..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Builder/try.t
+++ /dev/null
@@ -1,42 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-use Test::More 'no_plan';
-
-require Test::Builder;
-my $tb = Test::Builder->new;
-
-
-# Test that _try() has no effect on $@ and $! and is not effected by
-# __DIE__
-{
- local $SIG{__DIE__} = sub { fail("DIE handler called: @_") };
- local $@ = 42;
- local $! = 23;
-
- is $tb->_try(sub { 2 }), 2;
- is $tb->_try(sub { return '' }), '';
-
- is $tb->_try(sub { die; }), undef;
-
- is_deeply [$tb->_try(sub { die "Foo\n" })], [undef, "Foo\n"];
-
- is $@, 42;
- cmp_ok $!, '==', 23;
-}
-
-ok !eval {
- $tb->_try(sub { die "Died\n" }, die_on_fail => 1);
-};
-is $@, "Died\n";
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/More.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/More.t
deleted file mode 100755
index ce535e26d99..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/More.t
+++ /dev/null
@@ -1,184 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = qw(../lib ../lib/Test/Simple/t/lib);
- }
-}
-
-use lib 't/lib';
-use Test::More tests => 54;
-
-# Make sure we don't mess with $@ or $!. Test at bottom.
-my $Err = "this should not be touched";
-my $Errno = 42;
-$@ = $Err;
-$! = $Errno;
-
-use_ok('Dummy');
-is( $Dummy::VERSION, '0.01', 'use_ok() loads a module' );
-require_ok('Test::More');
-
-
-ok( 2 eq 2, 'two is two is two is two' );
-is( "foo", "foo", 'foo is foo' );
-isnt( "foo", "bar", 'foo isnt bar');
-isn't("foo", "bar", 'foo isn\'t bar');
-
-#'#
-like("fooble", '/^foo/', 'foo is like fooble');
-like("FooBle", '/foo/i', 'foo is like FooBle');
-like("/usr/local/pr0n/", '/^\/usr\/local/', 'regexes with slashes in like' );
-
-unlike("fbar", '/^bar/', 'unlike bar');
-unlike("FooBle", '/foo/', 'foo is unlike FooBle');
-unlike("/var/local/pr0n/", '/^\/usr\/local/','regexes with slashes in unlike' );
-
-my @foo = qw(foo bar baz);
-unlike(@foo, '/foo/');
-
-can_ok('Test::More', qw(require_ok use_ok ok is isnt like skip can_ok
- pass fail eq_array eq_hash eq_set));
-can_ok(bless({}, "Test::More"), qw(require_ok use_ok ok is isnt like skip
- can_ok pass fail eq_array eq_hash eq_set));
-
-
-isa_ok(bless([], "Foo"), "Foo");
-isa_ok([], 'ARRAY');
-isa_ok(\42, 'SCALAR');
-{
- local %Bar::;
- local @Foo::ISA = 'Bar';
- isa_ok( "Foo", "Bar" );
-}
-
-
-# can_ok() & isa_ok should call can() & isa() on the given object, not
-# just class, in case of custom can()
-{
- local *Foo::can;
- local *Foo::isa;
- *Foo::can = sub { $_[0]->[0] };
- *Foo::isa = sub { $_[0]->[0] };
- my $foo = bless([0], 'Foo');
- ok( ! $foo->can('bar') );
- ok( ! $foo->isa('bar') );
- $foo->[0] = 1;
- can_ok( $foo, 'blah');
- isa_ok( $foo, 'blah');
-}
-
-
-pass('pass() passed');
-
-ok( eq_array([qw(this that whatever)], [qw(this that whatever)]),
- 'eq_array with simple arrays' );
-is @Test::More::Data_Stack, 0, '@Data_Stack not holding onto things';
-
-ok( eq_hash({ foo => 42, bar => 23 }, {bar => 23, foo => 42}),
- 'eq_hash with simple hashes' );
-is @Test::More::Data_Stack, 0;
-
-ok( eq_set([qw(this that whatever)], [qw(that whatever this)]),
- 'eq_set with simple sets' );
-is @Test::More::Data_Stack, 0;
-
-my @complex_array1 = (
- [qw(this that whatever)],
- {foo => 23, bar => 42},
- "moo",
- "yarrow",
- [qw(498 10 29)],
- );
-my @complex_array2 = (
- [qw(this that whatever)],
- {foo => 23, bar => 42},
- "moo",
- "yarrow",
- [qw(498 10 29)],
- );
-
-is_deeply( \@complex_array1, \@complex_array2, 'is_deeply with arrays' );
-ok( eq_array(\@complex_array1, \@complex_array2),
- 'eq_array with complicated arrays' );
-ok( eq_set(\@complex_array1, \@complex_array2),
- 'eq_set with complicated arrays' );
-
-my @array1 = (qw(this that whatever),
- {foo => 23, bar => 42} );
-my @array2 = (qw(this that whatever),
- {foo => 24, bar => 42} );
-
-ok( !eq_array(\@array1, \@array2),
- 'eq_array with slightly different complicated arrays' );
-is @Test::More::Data_Stack, 0;
-
-ok( !eq_set(\@array1, \@array2),
- 'eq_set with slightly different complicated arrays' );
-is @Test::More::Data_Stack, 0;
-
-my %hash1 = ( foo => 23,
- bar => [qw(this that whatever)],
- har => { foo => 24, bar => 42 },
- );
-my %hash2 = ( foo => 23,
- bar => [qw(this that whatever)],
- har => { foo => 24, bar => 42 },
- );
-
-is_deeply( \%hash1, \%hash2, 'is_deeply with complicated hashes' );
-ok( eq_hash(\%hash1, \%hash2), 'eq_hash with complicated hashes');
-
-%hash1 = ( foo => 23,
- bar => [qw(this that whatever)],
- har => { foo => 24, bar => 42 },
- );
-%hash2 = ( foo => 23,
- bar => [qw(this tha whatever)],
- har => { foo => 24, bar => 42 },
- );
-
-ok( !eq_hash(\%hash1, \%hash2),
- 'eq_hash with slightly different complicated hashes' );
-is @Test::More::Data_Stack, 0;
-
-is( Test::Builder->new, Test::More->builder, 'builder()' );
-
-
-cmp_ok(42, '==', 42, 'cmp_ok ==');
-cmp_ok('foo', 'eq', 'foo', ' eq');
-cmp_ok(42.5, '<', 42.6, ' <');
-cmp_ok(0, '||', 1, ' ||');
-
-
-# Piers pointed out sometimes people override isa().
-{
- package Wibble;
- sub isa {
- my($self, $class) = @_;
- return 1 if $class eq 'Wibblemeister';
- }
- sub new { bless {} }
-}
-isa_ok( Wibble->new, 'Wibblemeister' );
-
-my $sub = sub {};
-is_deeply( $sub, $sub, 'the same function ref' );
-
-use Symbol;
-my $glob = gensym;
-is_deeply( $glob, $glob, 'the same glob' );
-
-is_deeply( { foo => $sub, bar => [1, $glob] },
- { foo => $sub, bar => [1, $glob] }
- );
-
-
-# rt.cpan.org 53469 is_deeply with regexes
-is_deeply( qr/a/, qr/a/, "same regex" );
-
-
-# These two tests must remain at the end.
-is( $@, $Err, '$@ untouched' );
-cmp_ok( $!, '==', $Errno, '$! untouched' );
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/MyTest.pm b/gnu/usr.bin/perl/cpan/Test-Simple/t/MyTest.pm
deleted file mode 100644
index e8ad8a3e531..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/MyTest.pm
+++ /dev/null
@@ -1,15 +0,0 @@
-use strict;
-use warnings;
-
-package MyTest;
-
-use Test::Builder;
-
-my $Test = Test::Builder->new;
-
-sub ok
-{
- $Test->ok(@_);
-}
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Simple/load.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Simple/load.t
deleted file mode 100644
index 938569a5b85..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Simple/load.t
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/perl
-
-# Because I broke "use Test::Simple", here's a test
-
-use strict;
-use warnings;
-
-use Test::Simple;
-
-print <<END;
-1..1
-ok 1 - use Test::Simple with no arguments
-END
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/SmallTest.pm b/gnu/usr.bin/perl/cpan/Test-Simple/t/SmallTest.pm
deleted file mode 100644
index c2a875855e2..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/SmallTest.pm
+++ /dev/null
@@ -1,35 +0,0 @@
-use strict;
-use warnings;
-
-package SmallTest;
-
-require Exporter;
-
-use vars qw( @ISA @EXPORT );
-@ISA = qw( Exporter );
-@EXPORT = qw( ok is_eq is_num );
-
-use Test::Builder;
-
-my $Test = Test::Builder->new;
-
-sub ok
-{
- $Test->ok(@_);
-}
-
-sub is_eq
-{
- $Test->is_eq(@_);
-}
-
-sub is_num
-{
- $Test->is_num(@_);
-}
-
-sub getTest
-{
- return $Test;
-}
-1;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_01basic.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_01basic.t
deleted file mode 100755
index 62820741c20..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_01basic.t
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/perl
-
-use Test::Builder::Tester tests => 10;
-use Test::More;
-
-ok(1,"This is a basic test");
-
-test_out("ok 1 - tested");
-ok(1,"tested");
-test_test("captured okay on basic");
-
-test_out("ok 1 - tested");
-ok(1,"tested");
-test_test("captured okay again without changing number");
-
-ok(1,"test unrelated to Test::Builder::Tester");
-
-test_out("ok 1 - one");
-test_out("ok 2 - two");
-ok(1,"one");
-ok(2,"two");
-test_test("multiple tests");
-
-test_out(qr/ok 1 - tested\n/);
-ok(1,"tested");
-test_test("regexp matching");
-
-test_out("not ok 1 - should fail");
-test_err("# Failed test ($0 at line 32)");
-test_err("# got: 'foo'");
-test_err("# expected: 'bar'");
-is("foo","bar","should fail");
-test_test("testing failing");
-
-
-test_out("not ok 1");
-test_out("not ok 2");
-test_fail(+2);
-test_fail(+1);
-fail(); fail();
-test_test("testing failing on the same line with no name");
-
-
-test_out("not ok 1 - name");
-test_out("not ok 2 - name");
-test_fail(+2);
-test_fail(+1);
-fail("name"); fail("name");
-test_test("testing failing on the same line with the same name");
-
-
-test_out("not ok 1 - name # TODO Something");
-test_out("# Failed (TODO) test ($0 at line 56)");
-TODO: {
- local $TODO = "Something";
- fail("name");
-}
-test_test("testing failing with todo");
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_02fhrestore.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_02fhrestore.t
deleted file mode 100755
index e37357171b8..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_02fhrestore.t
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/perl
-
-use Test::Builder::Tester tests => 4;
-use Test::More;
-use Symbol;
-
-# create temporary file handles that still point indirectly
-# to the right place
-
-my $orig_o = gensym;
-my $orig_t = gensym;
-my $orig_f = gensym;
-
-tie *$orig_o, "My::Passthru", \*STDOUT;
-tie *$orig_t, "My::Passthru", \*STDERR;
-tie *$orig_f, "My::Passthru", \*STDERR;
-
-# redirect the file handles to somewhere else for a mo
-
-use Test::Builder;
-my $t = Test::Builder->new();
-
-$t->output($orig_o);
-$t->failure_output($orig_f);
-$t->todo_output($orig_t);
-
-# run a test
-
-test_out("ok 1 - tested");
-ok(1,"tested");
-test_test("standard test okay");
-
-# now check that they were restored okay
-
-ok($orig_o == $t->output(), "output file reconnected");
-ok($orig_t == $t->todo_output(), "todo output file reconnected");
-ok($orig_f == $t->failure_output(), "failure output file reconnected");
-
-#####################################################################
-
-package My::Passthru;
-
-sub PRINT {
- my $self = shift;
- my $handle = $self->[0];
- print $handle @_;
-}
-
-sub TIEHANDLE {
- my $class = shift;
- my $self = [shift()];
- return bless $self, $class;
-}
-
-sub READ {}
-sub READLINE {}
-sub GETC {}
-sub FILENO {}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_03die.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_03die.t
deleted file mode 100755
index b9dba801eb4..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_03die.t
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/perl
-
-use Test::Builder::Tester tests => 1;
-use Test::More;
-
-eval {
- test_test("foo");
-};
-like($@,
- "/Not testing\. You must declare output with a test function first\./",
- "dies correctly on error");
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_04line_num.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_04line_num.t
deleted file mode 100755
index 9e8365acbf2..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_04line_num.t
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/perl
-
-use Test::More tests => 3;
-use Test::Builder::Tester;
-
-is(line_num(),6,"normal line num");
-is(line_num(-1),6,"line number minus one");
-is(line_num(+2),10,"line number plus two");
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_05faildiag.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_05faildiag.t
deleted file mode 100755
index 59ad721240a..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_05faildiag.t
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/perl
-
-use Test::Builder::Tester tests => 5;
-use Test::More;
-
-# test_fail
-
-test_out("not ok 1 - one");
-test_fail(+1);
-ok(0,"one");
-
-test_out("not ok 2 - two");
-test_fail(+2);
-
-ok(0,"two");
-
-test_test("test fail");
-
-test_fail(+2);
-test_out("not ok 1 - one");
-ok(0,"one");
-test_test("test_fail first");
-
-# test_diag
-
-use Test::Builder;
-my $test = new Test::Builder;
-
-test_diag("this is a test string","so is this");
-$test->diag("this is a test string\n", "so is this\n");
-test_test("test diag");
-
-test_diag("this is a test string","so is this");
-$test->diag("this is a test string\n");
-$test->diag("so is this\n");
-test_test("test diag multi line");
-
-test_diag("this is a test string");
-test_diag("so is this");
-$test->diag("this is a test string\n");
-$test->diag("so is this\n");
-test_test("test diag multiple");
-
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_06errormess.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_06errormess.t
deleted file mode 100755
index b02b6172938..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_06errormess.t
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/perl -w
-
-use Test::More tests => 8;
-use Symbol;
-use Test::Builder;
-use Test::Builder::Tester;
-
-use strict;
-
-# argh! now we need to test the thing we're testing. Basically we need
-# to pretty much reimplement the whole code again. This is very
-# annoying but can't be avoided. And onwards with the cut and paste
-
-# My brain is melting. My brain is melting. ETOOMANYLAYERSOFTESTING
-
-# create some private file handles
-my $output_handle = gensym;
-my $error_handle = gensym;
-
-# and tie them to this package
-my $out = tie *$output_handle, "Test::Builder::Tester::Tie", "STDOUT";
-my $err = tie *$error_handle, "Test::Builder::Tester::Tie", "STDERR";
-
-# ooooh, use the test suite
-my $t = Test::Builder->new;
-
-# remember the testing outputs
-my $original_output_handle;
-my $original_failure_handle;
-my $original_todo_handle;
-my $original_harness_env;
-my $testing_num;
-
-sub start_testing
-{
- # remember what the handles were set to
- $original_output_handle = $t->output();
- $original_failure_handle = $t->failure_output();
- $original_todo_handle = $t->todo_output();
- $original_harness_env = $ENV{HARNESS_ACTIVE};
-
- # switch out to our own handles
- $t->output($output_handle);
- $t->failure_output($error_handle);
- $t->todo_output($error_handle);
-
- $ENV{HARNESS_ACTIVE} = 0;
-
- # clear the expected list
- $out->reset();
- $err->reset();
-
- # remember that we're testing
- $testing_num = $t->current_test;
- $t->current_test(0);
-}
-
-# each test test is actually two tests. This is bad and wrong
-# but makes blood come out of my ears if I don't at least simplify
-# it a little this way
-
-sub my_test_test
-{
- my $text = shift;
- local $^W = 0;
-
- # reset the outputs
- $t->output($original_output_handle);
- $t->failure_output($original_failure_handle);
- $t->todo_output($original_todo_handle);
- $ENV{HARNESS_ACTIVE} = $original_harness_env;
-
- # reset the number of tests
- $t->current_test($testing_num);
-
- # check we got the same values
- my $got;
- my $wanted;
-
- # stdout
- $t->ok($out->check, "STDOUT $text");
-
- # stderr
- $t->ok($err->check, "STDERR $text");
-}
-
-####################################################################
-# Meta meta tests
-####################################################################
-
-# this is a quick test to check the hack that I've just implemented
-# actually does a cut down version of Test::Builder::Tester
-
-start_testing();
-$out->expect("ok 1 - foo");
-pass("foo");
-my_test_test("basic meta meta test");
-
-start_testing();
-$out->expect("not ok 1 - foo");
-$err->expect("# Failed test ($0 at line ".line_num(+1).")");
-fail("foo");
-my_test_test("basic meta meta test 2");
-
-start_testing();
-$out->expect("ok 1 - bar");
-test_out("ok 1 - foo");
-pass("foo");
-test_test("bar");
-my_test_test("meta meta test with tbt");
-
-start_testing();
-$out->expect("ok 1 - bar");
-test_out("not ok 1 - foo");
-test_err("# Failed test ($0 at line ".line_num(+1).")");
-fail("foo");
-test_test("bar");
-my_test_test("meta meta test with tbt2 ");
-
-####################################################################
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_07args.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_07args.t
deleted file mode 100755
index 9542d755f4d..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_07args.t
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/usr/bin/perl -w
-
-use Test::More tests => 18;
-use Symbol;
-use Test::Builder;
-use Test::Builder::Tester;
-
-use strict;
-
-# argh! now we need to test the thing we're testing. Basically we need
-# to pretty much reimplement the whole code again. This is very
-# annoying but can't be avoided. And onwards with the cut and paste
-
-# My brain is melting. My brain is melting. ETOOMANYLAYERSOFTESTING
-
-# create some private file handles
-my $output_handle = gensym;
-my $error_handle = gensym;
-
-# and tie them to this package
-my $out = tie *$output_handle, "Test::Builder::Tester::Tie", "STDOUT";
-my $err = tie *$error_handle, "Test::Builder::Tester::Tie", "STDERR";
-
-# ooooh, use the test suite
-my $t = Test::Builder->new;
-
-# remember the testing outputs
-my $original_output_handle;
-my $original_failure_handle;
-my $original_todo_handle;
-my $testing_num;
-my $original_harness_env;
-
-sub start_testing
-{
- # remember what the handles were set to
- $original_output_handle = $t->output();
- $original_failure_handle = $t->failure_output();
- $original_todo_handle = $t->todo_output();
- $original_harness_env = $ENV{HARNESS_ACTIVE};
-
- # switch out to our own handles
- $t->output($output_handle);
- $t->failure_output($error_handle);
- $t->todo_output($error_handle);
-
- $ENV{HARNESS_ACTIVE} = 0;
-
- # clear the expected list
- $out->reset();
- $err->reset();
-
- # remember that we're testing
- $testing_num = $t->current_test;
- $t->current_test(0);
-}
-
-# each test test is actually two tests. This is bad and wrong
-# but makes blood come out of my ears if I don't at least simplify
-# it a little this way
-
-sub my_test_test
-{
- my $text = shift;
- local $^W = 0;
-
- # reset the outputs
- $t->output($original_output_handle);
- $t->failure_output($original_failure_handle);
- $t->todo_output($original_todo_handle);
- $ENV{HARNESS_ACTIVE} = $original_harness_env;
-
- # reset the number of tests
- $t->current_test($testing_num);
-
- # check we got the same values
- my $got;
- my $wanted;
-
- # stdout
- $t->ok($out->check, "STDOUT $text");
-
- # stderr
- $t->ok($err->check, "STDERR $text");
-}
-
-####################################################################
-# Meta meta tests
-####################################################################
-
-# this is a quick test to check the hack that I've just implemented
-# actually does a cut down version of Test::Builder::Tester
-
-start_testing();
-$out->expect("ok 1 - foo");
-pass("foo");
-my_test_test("basic meta meta test");
-
-start_testing();
-$out->expect("not ok 1 - foo");
-$err->expect("# Failed test ($0 at line ".line_num(+1).")");
-fail("foo");
-my_test_test("basic meta meta test 2");
-
-start_testing();
-$out->expect("ok 1 - bar");
-test_out("ok 1 - foo");
-pass("foo");
-test_test("bar");
-my_test_test("meta meta test with tbt");
-
-start_testing();
-$out->expect("ok 1 - bar");
-test_out("not ok 1 - foo");
-test_err("# Failed test ($0 at line ".line_num(+1).")");
-fail("foo");
-test_test("bar");
-my_test_test("meta meta test with tbt2 ");
-
-####################################################################
-# Actual meta tests
-####################################################################
-
-# set up the outer wrapper again
-start_testing();
-$out->expect("ok 1 - bar");
-
-# set up what the inner wrapper expects
-test_out("ok 1 - foo");
-
-# the actual test function that we are testing
-ok("1","foo");
-
-# test the name
-test_test(name => "bar");
-
-# check that passed
-my_test_test("meta test name");
-
-####################################################################
-
-# set up the outer wrapper again
-start_testing();
-$out->expect("ok 1 - bar");
-
-# set up what the inner wrapper expects
-test_out("ok 1 - foo");
-
-# the actual test function that we are testing
-ok("1","foo");
-
-# test the name
-test_test(title => "bar");
-
-# check that passed
-my_test_test("meta test title");
-
-####################################################################
-
-# set up the outer wrapper again
-start_testing();
-$out->expect("ok 1 - bar");
-
-# set up what the inner wrapper expects
-test_out("ok 1 - foo");
-
-# the actual test function that we are testing
-ok("1","foo");
-
-# test the name
-test_test(label => "bar");
-
-# check that passed
-my_test_test("meta test title");
-
-####################################################################
-
-# set up the outer wrapper again
-start_testing();
-$out->expect("ok 1 - bar");
-
-# set up what the inner wrapper expects
-test_out("not ok 1 - foo this is wrong");
-test_fail(+3);
-
-# the actual test function that we are testing
-ok("0","foo");
-
-# test that we got what we expect, ignoring our is wrong
-test_test(skip_out => 1, name => "bar");
-
-# check that that passed
-my_test_test("meta test skip_out");
-
-####################################################################
-
-# set up the outer wrapper again
-start_testing();
-$out->expect("ok 1 - bar");
-
-# set up what the inner wrapper expects
-test_out("not ok 1 - foo");
-test_err("this is wrong");
-
-# the actual test function that we are testing
-ok("0","foo");
-
-# test that we got what we expect, ignoring err is wrong
-test_test(skip_err => 1, name => "bar");
-
-# diagnostics failing out
-# check that that passed
-my_test_test("meta test skip_err");
-
-####################################################################
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_08subtest.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_08subtest.t
deleted file mode 100644
index 6ec508f2470..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_08subtest.t
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env perl
-
-use strict;
-use warnings;
-
-use Test::Builder::Tester tests => 1;
-use Test::More;
-
-subtest 'foo' => sub {
- plan tests => 1;
-
- test_out("not ok 1 - foo");
- test_fail(+1);
- fail("foo");
- test_test("fail works");
-};
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_09do.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_09do.t
deleted file mode 100644
index a0c8b8e2e5d..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_09do.t
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use Test::Builder::Tester tests => 3;
-use Test::More;
-use File::Basename qw(dirname);
-use File::Spec qw();
-
-my $file = File::Spec->join(dirname(__FILE__), 'tbt_09do_script.pl');
-my $done = do $file;
-ok(defined($done), 'do succeeded') or do {
- if ($@) {
- diag qq( \$@ is '$@'\n);
- } elsif ($!) {
- diag qq( \$! is '$!'\n);
- } else {
- diag qq( file's last statement returned undef: $file)
- }
-};
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_09do_script.pl b/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_09do_script.pl
deleted file mode 100644
index 590a03b085e..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/Tester/tbt_09do_script.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-isnt($0, __FILE__, 'code is not executing directly');
-
-test_out("not ok 1 - one");
-test_fail(+1);
-ok(0,"one");
-test_test('test_fail caught fail message inside a do');
-
-1;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/auto.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/auto.t
deleted file mode 100644
index 0010342ee94..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/auto.t
+++ /dev/null
@@ -1,30 +0,0 @@
-use strict;
-use warnings;
-
-use lib 't';
-
-use Test::Tester tests => 5;
-
-use SmallTest;
-
-use MyTest;
-
-{
- my ($prem, @results) = run_tests(
- sub { MyTest::ok(1, "run pass")}
- );
-
- is_eq($results[0]->{name}, "run pass");
- is_num($results[0]->{ok}, 1);
-}
-
-{
- my ($prem, @results) = run_tests(
- sub { MyTest::ok(0, "run fail")}
- );
-
- is_eq($results[0]->{name}, "run fail");
- is_num($results[0]->{ok}, 0);
-}
-
-is_eq(ref(SmallTest::getTest()), "Test::Tester::Delegate");
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/bad_plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/bad_plan.t
deleted file mode 100755
index 80e0e65bcaa..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/bad_plan.t
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::Builder;
-my $Test = Test::Builder->new;
-$Test->plan( tests => 2 );
-$Test->level(0);
-
-my $tb = Test::Builder->create;
-
-eval { $tb->plan(7); };
-$Test->like( $@, qr/^plan\(\) doesn't understand 7/, 'bad plan()' ) ||
- print STDERR "# $@";
-
-eval { $tb->plan(wibble => 7); };
-$Test->like( $@, qr/^plan\(\) doesn't understand wibble 7/, 'bad plan()' ) ||
- print STDERR "# $@";
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/bail_out.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/bail_out.t
deleted file mode 100755
index 5cdc1f9969f..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/bail_out.t
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-my $Exit_Code;
-BEGIN {
- *CORE::GLOBAL::exit = sub { $Exit_Code = shift; };
-}
-
-
-use Test::Builder;
-use Test::More;
-
-my $output;
-my $TB = Test::More->builder;
-$TB->output(\$output);
-
-my $Test = Test::Builder->create;
-$Test->level(0);
-
-$Test->plan(tests => 3);
-
-plan tests => 4;
-
-BAIL_OUT("ROCKS FALL! EVERYONE DIES!");
-
-
-$Test->is_eq( $output, <<'OUT' );
-1..4
-Bail out! ROCKS FALL! EVERYONE DIES!
-OUT
-
-$Test->is_eq( $Exit_Code, 255 );
-
-$Test->ok( $Test->can("BAILOUT"), "Backwards compat" );
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/buffer.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/buffer.t
deleted file mode 100755
index 6039e4a6f72..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/buffer.t
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/perl
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-# Ensure that intermixed prints to STDOUT and tests come out in the
-# right order (ie. no buffering problems).
-
-use Test::More tests => 20;
-my $T = Test::Builder->new;
-$T->no_ending(1);
-
-for my $num (1..10) {
- $tnum = $num * 2;
- pass("I'm ok");
- $T->current_test($tnum);
- print "ok $tnum - You're ok\n";
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/c_flag.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/c_flag.t
deleted file mode 100755
index a33963415ed..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/c_flag.t
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test::More should not print anything when Perl is only doing
-# a compile as with the -c flag or B::Deparse or perlcc.
-
-# HARNESS_ACTIVE=1 was causing an error with -c
-{
- local $ENV{HARNESS_ACTIVE} = 1;
- local $^C = 1;
-
- require Test::More;
- Test::More->import(tests => 1);
-
- fail("This should not show up");
-}
-
-Test::More->builder->no_ending(1);
-
-print "1..1\n";
-print "ok 1\n";
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/capture.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/capture.t
deleted file mode 100644
index f9103bd6aa0..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/capture.t
+++ /dev/null
@@ -1,32 +0,0 @@
-use strict;
-
-use Test::Tester;
-
-my $Test = Test::Builder->new;
-$Test->plan(tests => 3);
-
-my $cap;
-
-$cap = Test::Tester->capture;
-
-{
- no warnings 'redefine';
- sub Test::Tester::find_run_tests { return 0};
-}
-
-local $Test::Builder::Level = 0;
-{
- my $cur = $cap->current_test;
- $Test->is_num($cur, 0, "current test");
-
- eval {$cap->current_test(2)};
- $Test->ok($@, "can't set test_num");
-}
-
-{
- $cap->ok(1, "a test");
-
- my @res = $cap->details;
-
- $Test->is_num(scalar @res, 1, "res count");
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/check_tests.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/check_tests.t
deleted file mode 100644
index ec88e2d48cc..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/check_tests.t
+++ /dev/null
@@ -1,117 +0,0 @@
-use strict;
-
-use Test::Tester;
-
-use Data::Dumper qw(Dumper);
-
-my $test = Test::Builder->new;
-$test->plan(tests => 105);
-
-my $cap;
-
-$cap = Test::Tester->capture;
-
-my @tests = (
- [
- 'pass',
- '$cap->ok(1, "pass");',
- {
- name => "pass",
- ok => 1,
- actual_ok => 1,
- reason => "",
- type => "",
- diag => "",
- depth => 0,
- },
- ],
- [
- 'pass diag',
- '$cap->ok(1, "pass diag");
- $cap->diag("pass diag1");
- $cap->diag("pass diag2");',
- {
- name => "pass diag",
- ok => 1,
- actual_ok => 1,
- reason => "",
- type => "",
- diag => "pass diag1\npass diag2\n",
- depth => 0,
- },
- ],
- [
- 'pass diag no \\n',
- '$cap->ok(1, "pass diag");
- $cap->diag("pass diag1");
- $cap->diag("pass diag2");',
- {
- name => "pass diag",
- ok => 1,
- actual_ok => 1,
- reason => "",
- type => "",
- diag => "pass diag1\npass diag2",
- depth => 0,
- },
- ],
- [
- 'fail',
- '$cap->ok(0, "fail");
- $cap->diag("fail diag");',
- {
- name => "fail",
- ok => 0,
- actual_ok => 0,
- reason => "",
- type => "",
- diag => "fail diag\n",
- depth => 0,
- },
- ],
- [
- 'skip',
- '$cap->skip("just because");',
- {
- name => "",
- ok => 1,
- actual_ok => 1,
- reason => "just because",
- type => "skip",
- diag => "",
- depth => 0,
- },
- ],
- [
- 'todo_skip',
- '$cap->todo_skip("why not");',
- {
- name => "",
- ok => 1,
- actual_ok => 0,
- reason => "why not",
- type => "todo_skip",
- diag => "",
- depth => 0,
- },
- ],
-);
-
-my $big_code = "";
-my @big_expect;
-
-foreach my $test (@tests)
-{
- my ($name, $code, $expect) = @$test;
-
- $big_code .= "$code\n";
- push(@big_expect, $expect);
-
- my $test_sub = eval "sub {$code}";
-
- check_test($test_sub, $expect, $name);
-}
-
-my $big_test_sub = eval "sub {$big_code}";
-
-check_tests($big_test_sub, \@big_expect, "run all");
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/circular_data.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/circular_data.t
deleted file mode 100755
index 2fd819e1f4a..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/circular_data.t
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test is_deeply and friends with circular data structures [rt.cpan.org 7289]
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use Test::More tests => 11;
-
-my $a1 = [ 1, 2, 3 ];
-push @$a1, $a1;
-my $a2 = [ 1, 2, 3 ];
-push @$a2, $a2;
-
-is_deeply $a1, $a2;
-ok( eq_array ($a1, $a2) );
-ok( eq_set ($a1, $a2) );
-
-my $h1 = { 1=>1, 2=>2, 3=>3 };
-$h1->{4} = $h1;
-my $h2 = { 1=>1, 2=>2, 3=>3 };
-$h2->{4} = $h2;
-
-is_deeply $h1, $h2;
-ok( eq_hash ($h1, $h2) );
-
-my ($r, $s);
-
-$r = \$r;
-$s = \$s;
-
-ok( eq_array ([$s], [$r]) );
-
-
-{
- # Classic set of circular scalar refs.
- my($a,$b,$c);
- $a = \$b;
- $b = \$c;
- $c = \$a;
-
- my($d,$e,$f);
- $d = \$e;
- $e = \$f;
- $f = \$d;
-
- is_deeply( $a, $a );
- is_deeply( $a, $d );
-}
-
-
-{
- # rt.cpan.org 11623
- # Make sure the circular ref checks don't get confused by a reference
- # which is simply repeating.
- my $a = {};
- my $b = {};
- my $c = {};
-
- is_deeply( [$a, $a], [$b, $c] );
- is_deeply( { foo => $a, bar => $a }, { foo => $b, bar => $c } );
- is_deeply( [\$a, \$a], [\$b, \$c] );
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/cmp_ok.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/cmp_ok.t
deleted file mode 100755
index c9b9f1bf65f..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/cmp_ok.t
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use warnings;
-
-use lib 't/lib';
-
-require Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-local $ENV{HARNESS_ACTIVE} = 0;
-
-require Test::Builder;
-my $TB = Test::Builder->create;
-$TB->level(0);
-
-sub try_cmp_ok {
- my($left, $cmp, $right, $error) = @_;
-
- my %expect;
- if( $error ) {
- $expect{ok} = 0;
- $expect{error} = $error;
- }
- else {
- $expect{ok} = eval "\$left $cmp \$right";
- $expect{error} = $@;
- $expect{error} =~ s/ at .*\n?//;
- }
-
- local $Test::Builder::Level = $Test::Builder::Level + 1;
-
- my $ok;
- eval { $ok = cmp_ok($left, $cmp, $right, "cmp_ok"); };
-
- $TB->is_num(!!$ok, !!$expect{ok}, " right return");
-
- my $diag = $err->read;
-
- if ($@) {
- $diag = $@;
- $diag =~ s/ at .*\n?//;
- }
-
- if( !$ok and $expect{error} ) {
- $diag =~ s/^# //mg;
- $TB->like( $diag, qr/\Q$expect{error}\E/, " expected error" );
- }
- elsif( $ok ) {
- $TB->is_eq( $diag, '', " passed without diagnostic" );
- }
- else {
- $TB->ok(1, " failed without diagnostic");
- }
-}
-
-
-use Test::More;
-Test::More->builder->no_ending(1);
-
-require MyOverload;
-my $cmp = Overloaded::Compare->new("foo", 42);
-my $ify = Overloaded::Ify->new("bar", 23);
-
-my @Tests = (
- [1, '==', 1],
- [1, '==', 2],
- ["a", "eq", "b"],
- ["a", "eq", "a"],
- [1, "+", 1],
- [1, "-", 1],
-
- [$cmp, '==', 42],
- [$cmp, 'eq', "foo"],
- [$ify, 'eq', "bar"],
- [$ify, "==", 23],
-
- [1, "=", 0, "= is not a valid comparison operator in cmp_ok()"],
- [1, "+=", 0, "+= is not a valid comparison operator in cmp_ok()"],
-);
-
-plan tests => scalar @Tests;
-$TB->plan(tests => @Tests * 2);
-
-for my $test (@Tests) {
- try_cmp_ok(@$test);
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/dependents.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/dependents.t
deleted file mode 100755
index 90e8938ebe7..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/dependents.t
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/perl
-
-# Test important dependant modules so we don't accidentally half of CPAN.
-
-use strict;
-use warnings;
-
-use Test::More;
-
-BEGIN {
- plan skip_all => "Dependents only tested when releasing" unless $ENV{PERL_RELEASING};
-}
-
-require File::Spec;
-use CPAN;
-
-CPAN::HandleConfig->load;
-$CPAN::Config->{test_report} = 0;
-
-# Module which depend on Test::More to test
-my @Modules = qw(
- Test::Most
- Test::Warn
- Test::Exception
- Test::Class
- Test::Deep
- Test::Differences
- Test::NoWarnings
-);
-
-# Modules which are known to be broken
-my %Broken = map { $_ => 1 } qw(
-);
-
-TODO: for my $name (@ARGV ? @ARGV : @Modules) {
- local $TODO = "$name known to be broken" if $Broken{$name};
-
- local $ENV{PERL5LIB} = "$ENV{PERL5LIB}:" . File::Spec->rel2abs("blib/lib");
- my $module = CPAN::Shell->expand("Module", $name);
- $module->test;
- ok( !$module->distribution->{make_test}->failed, $name );
-}
-
-done_testing();
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/depth.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/depth.t
deleted file mode 100644
index acbf07f2b19..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/depth.t
+++ /dev/null
@@ -1,31 +0,0 @@
-use strict;
-use warnings;
-
-use lib 't';
-
-use Test::Tester;
-
-use MyTest;
-
-my $test = Test::Builder->new;
-$test->plan(tests => 2);
-
-sub deeper
-{
- MyTest::ok(1);
-}
-
-{
-
- my @results = run_tests(
- sub {
- MyTest::ok(1);
- deeper();
- }
- );
-
- local $Test::Builder::Level = 0;
- $test->is_num($results[1]->{depth}, 1, "depth 1");
- $test->is_num($results[2]->{depth}, 2, "deeper");
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/diag.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/diag.t
deleted file mode 100755
index f5cb437d544..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/diag.t
+++ /dev/null
@@ -1,81 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-
-# Turn on threads here, if available, since this test tends to find
-# lots of threading bugs.
-use Config;
-BEGIN {
- if( $] >= 5.008001 && $Config{useithreads} ) {
- require threads;
- 'threads'->import;
- }
-}
-
-
-use strict;
-
-use Test::Builder::NoOutput;
-use Test::More tests => 7;
-
-my $test = Test::Builder::NoOutput->create;
-
-# Test diag() goes to todo_output() in a todo test.
-{
- $test->todo_start();
-
- $test->diag("a single line");
- is( $test->read('todo'), <<'DIAG', 'diag() with todo_output set' );
-# a single line
-DIAG
-
- my $ret = $test->diag("multiple\n", "lines");
- is( $test->read('todo'), <<'DIAG', ' multi line' );
-# multiple
-# lines
-DIAG
- ok( !$ret, 'diag returns false' );
-
- $test->todo_end();
-}
-
-
-# Test diagnostic formatting
-{
- $test->diag("# foo");
- is( $test->read('err'), "# # foo\n", "diag() adds # even if there's one already" );
-
- $test->diag("foo\n\nbar");
- is( $test->read('err'), <<'DIAG', " blank lines get escaped" );
-# foo
-#
-# bar
-DIAG
-
- $test->diag("foo\n\nbar\n\n");
- is( $test->read('err'), <<'DIAG', " even at the end" );
-# foo
-#
-# bar
-#
-DIAG
-}
-
-
-# [rt.cpan.org 8392] diag(@list) emulates print
-{
- $test->diag(qw(one two));
-
- is( $test->read('err'), <<'DIAG' );
-# onetwo
-DIAG
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/died.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/died.t
deleted file mode 100755
index b4ee2fbbffd..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/died.t
+++ /dev/null
@@ -1,45 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-# Can't use Test.pm, that's a 5.005 thing.
-package My::Test;
-
-# This has to be a require or else the END block below runs before
-# Test::Builder's own and the ending diagnostics don't come out right.
-require Test::Builder;
-my $TB = Test::Builder->create;
-$TB->plan(tests => 3);
-
-
-package main;
-
-require Test::Simple;
-
-chdir 't';
-push @INC, '../t/lib/';
-require Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-local $ENV{HARNESS_ACTIVE} = 0;
-
-Test::Simple->import(tests => 1);
-exit 250;
-
-END {
- $TB->is_eq($out->read, <<OUT);
-1..1
-OUT
-
- $TB->is_eq($err->read, <<ERR);
-# Looks like your test exited with 250 before it could output anything.
-ERR
-
- $TB->is_eq($?, 250, "exit code");
-
- exit grep { !$_ } $TB->summary;
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/dont_overwrite_die_handler.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/dont_overwrite_die_handler.t
deleted file mode 100755
index cf9f9074381..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/dont_overwrite_die_handler.t
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/perl -w
-use Config; # To prevent conflict with some strawberry-portable versions
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-# Make sure this is in place before Test::More is loaded.
-my $handler_called;
-BEGIN {
- $SIG{__DIE__} = sub { $handler_called++ };
-}
-
-use Test::More tests => 2;
-
-ok !eval { die };
-is $handler_called, 1, 'existing DIE handler not overridden';
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/eq_set.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/eq_set.t
deleted file mode 100755
index fbdc52db1fa..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/eq_set.t
+++ /dev/null
@@ -1,34 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-chdir 't';
-
-use strict;
-use Test::More;
-
-plan tests => 4;
-
-# RT 3747
-ok( eq_set([1, 2, [3]], [[3], 1, 2]) );
-ok( eq_set([1,2,[3]], [1,[3],2]) );
-
-# bugs.perl.org 36354
-my $ref = \2;
-ok( eq_set( [$ref, "$ref", "$ref", $ref],
- ["$ref", $ref, $ref, "$ref"]
- ) );
-
-TODO: {
- local $TODO = q[eq_set() doesn't really handle references];
-
- ok( eq_set( [\1, \2, \3], [\2, \3, \1] ) );
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/exit.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/exit.t
deleted file mode 100755
index e32e986314c..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/exit.t
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/perl -w
-
-# Can't use Test.pm, that's a 5.005 thing.
-package My::Test;
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-require Test::Builder;
-my $TB = Test::Builder->create();
-$TB->level(0);
-
-
-package main;
-
-use Cwd;
-use File::Spec;
-
-my $Orig_Dir = cwd;
-
-my $Perl = File::Spec->rel2abs($^X);
-if( $^O eq 'VMS' ) {
- # VMS can't use its own $^X in a system call until almost 5.8
- $Perl = "MCR $^X" if $] < 5.007003;
-
- # Quiet noisy 'SYS$ABORT'
- $Perl .= q{ -"I../lib"} if $ENV{PERL_CORE};
- $Perl .= q{ -"Mvmsish=hushed"};
-} else {
- $Perl = qq("$Perl"); # protect from shell if spaces
-}
-
-eval { require POSIX; &POSIX::WEXITSTATUS(0) };
-if( $@ ) {
- *exitstatus = sub { $_[0] >> 8 };
-}
-else {
- *exitstatus = sub { POSIX::WEXITSTATUS($_[0]) }
-}
-
-
-# Some OS' will alter the exit code to their own native sense...
-# sometimes. Rather than deal with the exception we'll just
-# build up the mapping.
-print "# Building up a map of exit codes. May take a while.\n";
-my %Exit_Map;
-
-open my $fh, ">", "exit_map_test" or die $!;
-print $fh <<'DONE';
-if ($^O eq 'VMS') {
- require vmsish;
- import vmsish qw(hushed);
-}
-my $exit = shift;
-print "exit $exit\n";
-END { $? = $exit };
-DONE
-
-close $fh;
-END { 1 while unlink "exit_map_test" }
-
-for my $exit (0..255) {
- # This correctly emulates Test::Builder's behavior.
- my $out = qx[$Perl exit_map_test $exit];
- $TB->like( $out, qr/^exit $exit\n/, "exit map test for $exit" );
- $Exit_Map{$exit} = exitstatus($?);
-}
-print "# Done.\n";
-
-
-my %Tests = (
- # File Exit Code
- 'success.plx' => 0,
- 'one_fail.plx' => 1,
- 'two_fail.plx' => 2,
- 'five_fail.plx' => 5,
- 'extras.plx' => 2,
- 'too_few.plx' => 255,
- 'too_few_fail.plx' => 2,
- 'death.plx' => 255,
- 'last_minute_death.plx' => 255,
- 'pre_plan_death.plx' => 'not zero',
- 'death_in_eval.plx' => 0,
- 'require.plx' => 0,
- 'death_with_handler.plx' => 255,
- 'exit.plx' => 1,
- 'one_fail_without_plan.plx' => 1,
- 'missing_done_testing.plx' => 254,
- );
-
-chdir 't';
-my $lib = File::Spec->catdir(qw(lib Test Simple sample_tests));
-while( my($test_name, $exit_code) = each %Tests ) {
- my $file = File::Spec->catfile($lib, $test_name);
- my $wait_stat = system(qq{$Perl -"I../blib/lib" -"I../lib" -"I../t/lib" $file});
- my $actual_exit = exitstatus($wait_stat);
-
- if( $exit_code eq 'not zero' ) {
- $TB->isnt_num( $actual_exit, $Exit_Map{0},
- "$test_name exited with $actual_exit ".
- "(expected non-zero)");
- }
- else {
- $TB->is_num( $actual_exit, $Exit_Map{$exit_code},
- "$test_name exited with $actual_exit ".
- "(expected $Exit_Map{$exit_code})");
- }
-}
-
-$TB->done_testing( scalar keys(%Tests) + 256 );
-
-# So any END block file cleanup works.
-chdir $Orig_Dir;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/explain.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/explain.t
deleted file mode 100755
index cf2f550e950..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/explain.t
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-
-use Test::More tests => 5;
-
-can_ok "main", "explain";
-
-is_deeply [explain("foo")], ["foo"];
-is_deeply [explain("foo", "bar")], ["foo", "bar"];
-
-# Avoid future dump formatting changes from breaking tests by just eval'ing
-# the dump
-is_deeply [map { eval $_ } explain([], {})], [[], {}];
-
-is_deeply [map { eval $_ } explain(23, [42,91], 99)], [23, [42, 91], 99];
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/extra.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/extra.t
deleted file mode 100755
index 55a0007d49d..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/extra.t
+++ /dev/null
@@ -1,60 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-use Test::Builder;
-use Test::Builder::NoOutput;
-use Test::Simple;
-
-my $TB = Test::Builder->new;
-my $test = Test::Builder::NoOutput->create;
-$test->plan( tests => 3 );
-
-local $ENV{HARNESS_ACTIVE} = 0;
-
-$test->ok(1, 'Foo');
-$TB->is_eq($test->read(), <<END);
-1..3
-ok 1 - Foo
-END
-
-#line 30
-$test->ok(0, 'Bar');
-$TB->is_eq($test->read(), <<END);
-not ok 2 - Bar
-# Failed test 'Bar'
-# at $0 line 30.
-END
-
-$test->ok(1, 'Yar');
-$test->ok(1, 'Car');
-$TB->is_eq($test->read(), <<END);
-ok 3 - Yar
-ok 4 - Car
-END
-
-#line 45
-$test->ok(0, 'Sar');
-$TB->is_eq($test->read(), <<END);
-not ok 5 - Sar
-# Failed test 'Sar'
-# at $0 line 45.
-END
-
-$test->_ending();
-$TB->is_eq($test->read(), <<END);
-# Looks like you planned 3 tests but ran 5.
-# Looks like you failed 2 tests of 5 run.
-END
-
-$TB->done_testing(5);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/extra_one.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/extra_one.t
deleted file mode 100755
index d77404e15de..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/extra_one.t
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-require Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-
-# Can't use Test.pm, that's a 5.005 thing.
-package My::Test;
-
-# This has to be a require or else the END block below runs before
-# Test::Builder's own and the ending diagnostics don't come out right.
-require Test::Builder;
-my $TB = Test::Builder->create;
-$TB->plan(tests => 2);
-
-sub is { $TB->is_eq(@_) }
-
-
-package main;
-
-require Test::Simple;
-Test::Simple->import(tests => 1);
-ok(1);
-ok(1);
-ok(1);
-
-END {
- My::Test::is($$out, <<OUT);
-1..1
-ok 1
-ok 2
-ok 3
-OUT
-
- My::Test::is($$err, <<ERR);
-# Looks like you planned 1 test but ran 3.
-ERR
-
- # Prevent Test::Simple from existing with non-zero
- exit 0;
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/fail-like.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/fail-like.t
deleted file mode 100755
index 03830949133..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/fail-like.t
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-# There was a bug with like() involving a qr// not failing properly.
-# This tests against that.
-
-use strict;
-
-
-# Can't use Test.pm, that's a 5.005 thing.
-package My::Test;
-
-# This has to be a require or else the END block below runs before
-# Test::Builder's own and the ending diagnostics don't come out right.
-require Test::Builder;
-my $TB = Test::Builder->create;
-$TB->plan(tests => 4);
-
-
-require Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-local $ENV{HARNESS_ACTIVE} = 0;
-
-
-package main;
-
-require Test::More;
-Test::More->import(tests => 1);
-
-{
- eval q{ like( "foo", qr/that/, 'is foo like that' ); };
-
- $TB->is_eq($out->read, <<OUT, 'failing output');
-1..1
-not ok 1 - is foo like that
-OUT
-
- # Accept both old and new-style stringification
- my $modifiers = (qr/foobar/ =~ /\Q(?^/) ? '\\^' : '-xism';
-
- my $err_re = <<ERR;
-# Failed test 'is foo like that'
-# at .* line 1\.
-# 'foo'
-# doesn't match '\\(\\?$modifiers:that\\)'
-ERR
-
- $TB->like($err->read, qr/^$err_re$/, 'failing errors');
-}
-
-{
- # line 62
- like("foo", "not a regex");
- $TB->is_eq($out->read, <<OUT);
-not ok 2
-OUT
-
- $TB->is_eq($err->read, <<OUT);
-# Failed test at $0 line 62.
-# 'not a regex' doesn't look much like a regex to me.
-OUT
-
-}
-
-END {
- # Test::More thinks it failed. Override that.
- exit(scalar grep { !$_ } $TB->summary);
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/fail-more.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/fail-more.t
deleted file mode 100755
index 5c35d49bd3c..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/fail-more.t
+++ /dev/null
@@ -1,521 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-require Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-local $ENV{HARNESS_ACTIVE} = 0;
-
-
-# Can't use Test.pm, that's a 5.005 thing.
-package My::Test;
-
-# This has to be a require or else the END block below runs before
-# Test::Builder's own and the ending diagnostics don't come out right.
-require Test::Builder;
-my $TB = Test::Builder->create;
-$TB->plan(tests => 80);
-
-sub like ($$;$) {
- $TB->like(@_);
-}
-
-sub is ($$;$) {
- $TB->is_eq(@_);
-}
-
-sub main::out_ok ($$) {
- $TB->is_eq( $out->read, shift );
- $TB->is_eq( $err->read, shift );
-}
-
-sub main::out_like ($$) {
- my($output, $failure) = @_;
-
- $TB->like( $out->read, qr/$output/ );
- $TB->like( $err->read, qr/$failure/ );
-}
-
-
-package main;
-
-require Test::More;
-our $TODO;
-my $Total = 38;
-Test::More->import(tests => $Total);
-$out->read; # clear the plan from $out
-
-# This should all work in the presence of a __DIE__ handler.
-local $SIG{__DIE__} = sub { $TB->ok(0, "DIE handler called: ".join "", @_); };
-
-
-my $tb = Test::More->builder;
-$tb->use_numbers(0);
-
-my $Filename = quotemeta $0;
-
-
-#line 38
-ok( 0, 'failing' );
-out_ok( <<OUT, <<ERR );
-not ok - failing
-OUT
-# Failed test 'failing'
-# at $0 line 38.
-ERR
-
-
-#line 40
-is( "foo", "bar", 'foo is bar?');
-out_ok( <<OUT, <<ERR );
-not ok - foo is bar?
-OUT
-# Failed test 'foo is bar?'
-# at $0 line 40.
-# got: 'foo'
-# expected: 'bar'
-ERR
-
-#line 89
-is( undef, '', 'undef is empty string?');
-out_ok( <<OUT, <<ERR );
-not ok - undef is empty string?
-OUT
-# Failed test 'undef is empty string?'
-# at $0 line 89.
-# got: undef
-# expected: ''
-ERR
-
-#line 99
-is( undef, 0, 'undef is 0?');
-out_ok( <<OUT, <<ERR );
-not ok - undef is 0?
-OUT
-# Failed test 'undef is 0?'
-# at $0 line 99.
-# got: undef
-# expected: '0'
-ERR
-
-#line 110
-is( '', 0, 'empty string is 0?' );
-out_ok( <<OUT, <<ERR );
-not ok - empty string is 0?
-OUT
-# Failed test 'empty string is 0?'
-# at $0 line 110.
-# got: ''
-# expected: '0'
-ERR
-
-#line 121
-isnt("foo", "foo", 'foo isnt foo?' );
-out_ok( <<OUT, <<ERR );
-not ok - foo isnt foo?
-OUT
-# Failed test 'foo isnt foo?'
-# at $0 line 121.
-# got: 'foo'
-# expected: anything else
-ERR
-
-#line 132
-isn't("foo", "foo",'foo isn\'t foo?' );
-out_ok( <<OUT, <<ERR );
-not ok - foo isn't foo?
-OUT
-# Failed test 'foo isn\'t foo?'
-# at $0 line 132.
-# got: 'foo'
-# expected: anything else
-ERR
-
-#line 143
-isnt(undef, undef, 'undef isnt undef?');
-out_ok( <<OUT, <<ERR );
-not ok - undef isnt undef?
-OUT
-# Failed test 'undef isnt undef?'
-# at $0 line 143.
-# got: undef
-# expected: anything else
-ERR
-
-#line 154
-like( "foo", '/that/', 'is foo like that' );
-out_ok( <<OUT, <<ERR );
-not ok - is foo like that
-OUT
-# Failed test 'is foo like that'
-# at $0 line 154.
-# 'foo'
-# doesn't match '/that/'
-ERR
-
-#line 165
-unlike( "foo", '/foo/', 'is foo unlike foo' );
-out_ok( <<OUT, <<ERR );
-not ok - is foo unlike foo
-OUT
-# Failed test 'is foo unlike foo'
-# at $0 line 165.
-# 'foo'
-# matches '/foo/'
-ERR
-
-# Nick Clark found this was a bug. Fixed in 0.40.
-# line 177
-like( "bug", '/(%)/', 'regex with % in it' );
-out_ok( <<OUT, <<ERR );
-not ok - regex with % in it
-OUT
-# Failed test 'regex with % in it'
-# at $0 line 177.
-# 'bug'
-# doesn't match '/(%)/'
-ERR
-
-#line 188
-fail('fail()');
-out_ok( <<OUT, <<ERR );
-not ok - fail()
-OUT
-# Failed test 'fail()'
-# at $0 line 188.
-ERR
-
-#line 197
-can_ok('Mooble::Hooble::Yooble', qw(this that));
-out_ok( <<OUT, <<ERR );
-not ok - Mooble::Hooble::Yooble->can(...)
-OUT
-# Failed test 'Mooble::Hooble::Yooble->can(...)'
-# at $0 line 197.
-# Mooble::Hooble::Yooble->can('this') failed
-# Mooble::Hooble::Yooble->can('that') failed
-ERR
-
-#line 208
-can_ok('Mooble::Hooble::Yooble', ());
-out_ok( <<OUT, <<ERR );
-not ok - Mooble::Hooble::Yooble->can(...)
-OUT
-# Failed test 'Mooble::Hooble::Yooble->can(...)'
-# at $0 line 208.
-# can_ok() called with no methods
-ERR
-
-#line 218
-can_ok(undef, undef);
-out_ok( <<OUT, <<ERR );
-not ok - ->can(...)
-OUT
-# Failed test '->can(...)'
-# at $0 line 218.
-# can_ok() called with empty class or reference
-ERR
-
-#line 228
-can_ok([], "foo");
-out_ok( <<OUT, <<ERR );
-not ok - ARRAY->can('foo')
-OUT
-# Failed test 'ARRAY->can('foo')'
-# at $0 line 228.
-# ARRAY->can('foo') failed
-ERR
-
-#line 238
-isa_ok(bless([], "Foo"), "Wibble");
-out_ok( <<OUT, <<ERR );
-not ok - An object of class 'Foo' isa 'Wibble'
-OUT
-# Failed test 'An object of class 'Foo' isa 'Wibble''
-# at $0 line 238.
-# The object of class 'Foo' isn't a 'Wibble'
-ERR
-
-#line 248
-isa_ok(42, "Wibble", "My Wibble");
-out_ok( <<OUT, <<ERR );
-not ok - 'My Wibble' isa 'Wibble'
-OUT
-# Failed test ''My Wibble' isa 'Wibble''
-# at $0 line 248.
-# 'My Wibble' isn't a 'Wibble'
-ERR
-
-#line 252
-isa_ok(42, "Wibble");
-out_ok( <<OUT, <<ERR );
-not ok - The class (or class-like) '42' isa 'Wibble'
-OUT
-# Failed test 'The class (or class-like) '42' isa 'Wibble''
-# at $0 line 252.
-# The class (or class-like) '42' isn't a 'Wibble'
-ERR
-
-#line 258
-isa_ok(undef, "Wibble", "Another Wibble");
-out_ok( <<OUT, <<ERR );
-not ok - 'Another Wibble' isa 'Wibble'
-OUT
-# Failed test ''Another Wibble' isa 'Wibble''
-# at $0 line 258.
-# 'Another Wibble' isn't defined
-ERR
-
-#line 268
-isa_ok([], "HASH");
-out_ok( <<OUT, <<ERR );
-not ok - A reference of type 'ARRAY' isa 'HASH'
-OUT
-# Failed test 'A reference of type 'ARRAY' isa 'HASH''
-# at $0 line 268.
-# The reference of type 'ARRAY' isn't a 'HASH'
-ERR
-
-#line 278
-new_ok(undef);
-out_like( <<OUT, <<ERR );
-not ok - undef->new\\(\\) died
-OUT
-# Failed test 'undef->new\\(\\) died'
-# at $Filename line 278.
-# Error was: Can't call method "new" on an undefined value at .*
-ERR
-
-#line 288
-new_ok( "Does::Not::Exist" );
-out_like( <<OUT, <<ERR );
-not ok - Does::Not::Exist->new\\(\\) died
-OUT
-# Failed test 'Does::Not::Exist->new\\(\\) died'
-# at $Filename line 288.
-# Error was: Can't locate object method "new" via package "Does::Not::Exist" .*
-ERR
-
-
-{ package Foo; sub new { } }
-{ package Bar; sub new { {} } }
-{ package Baz; sub new { bless {}, "Wibble" } }
-
-#line 303
-new_ok( "Foo" );
-out_ok( <<OUT, <<ERR );
-not ok - undef isa 'Foo'
-OUT
-# Failed test 'undef isa 'Foo''
-# at $0 line 303.
-# undef isn't defined
-ERR
-
-# line 313
-new_ok( "Bar" );
-out_ok( <<OUT, <<ERR );
-not ok - A reference of type 'HASH' isa 'Bar'
-OUT
-# Failed test 'A reference of type 'HASH' isa 'Bar''
-# at $0 line 313.
-# The reference of type 'HASH' isn't a 'Bar'
-ERR
-
-#line 323
-new_ok( "Baz" );
-out_ok( <<OUT, <<ERR );
-not ok - An object of class 'Wibble' isa 'Baz'
-OUT
-# Failed test 'An object of class 'Wibble' isa 'Baz''
-# at $0 line 323.
-# The object of class 'Wibble' isn't a 'Baz'
-ERR
-
-#line 333
-new_ok( "Baz", [], "no args" );
-out_ok( <<OUT, <<ERR );
-not ok - 'no args' isa 'Baz'
-OUT
-# Failed test ''no args' isa 'Baz''
-# at $0 line 333.
-# 'no args' isn't a 'Baz'
-ERR
-
-#line 343
-cmp_ok( 'foo', 'eq', 'bar', 'cmp_ok eq' );
-out_ok( <<OUT, <<ERR );
-not ok - cmp_ok eq
-OUT
-# Failed test 'cmp_ok eq'
-# at $0 line 343.
-# got: 'foo'
-# expected: 'bar'
-ERR
-
-#line 354
-cmp_ok( 42.1, '==', 23, , ' ==' );
-out_ok( <<OUT, <<ERR );
-not ok - ==
-OUT
-# Failed test ' =='
-# at $0 line 354.
-# got: 42.1
-# expected: 23
-ERR
-
-#line 365
-cmp_ok( 42, '!=', 42 , ' !=' );
-out_ok( <<OUT, <<ERR );
-not ok - !=
-OUT
-# Failed test ' !='
-# at $0 line 365.
-# got: 42
-# expected: anything else
-ERR
-
-#line 376
-cmp_ok( 1, '&&', 0 , ' &&' );
-out_ok( <<OUT, <<ERR );
-not ok - &&
-OUT
-# Failed test ' &&'
-# at $0 line 376.
-# '1'
-# &&
-# '0'
-ERR
-
-# line 388
-cmp_ok( 42, 'eq', "foo", ' eq with numbers' );
-out_ok( <<OUT, <<ERR );
-not ok - eq with numbers
-OUT
-# Failed test ' eq with numbers'
-# at $0 line 388.
-# got: '42'
-# expected: 'foo'
-ERR
-
-{
- my $warnings = '';
- local $SIG{__WARN__} = sub { $warnings .= join '', @_ };
-
-# line 415
- cmp_ok( 42, '==', "foo", ' == with strings' );
- out_ok( <<OUT, <<ERR );
-not ok - == with strings
-OUT
-# Failed test ' == with strings'
-# at $0 line 415.
-# got: 42
-# expected: foo
-ERR
- My::Test::like(
- $warnings,
- qr/^Argument "foo" isn't numeric in .* at \(eval in cmp_ok\) $Filename line 415\.\n$/
- );
- $warnings = '';
-}
-
-
-{
- my $warnings = '';
- local $SIG{__WARN__} = sub { $warnings .= join '', @_ };
-
-#line 437
- cmp_ok( undef, "ne", "", "undef ne empty string" );
-
- $TB->is_eq( $out->read, <<OUT );
-not ok - undef ne empty string
-OUT
-
- TODO: {
- local $::TODO = 'cmp_ok() gives the wrong "expected" for undef';
-
- $TB->is_eq( $err->read, <<ERR );
-# Failed test 'undef ne empty string'
-# at $0 line 437.
-# got: undef
-# expected: ''
-ERR
- }
-
- My::Test::like(
- $warnings,
- qr/^Use of uninitialized value.* in string ne at \(eval in cmp_ok\) $Filename line 437.\n\z/
- );
-}
-
-
-# generate a $!, it changes its value by context.
--e "wibblehibble";
-my $Errno_Number = $!+0;
-my $Errno_String = $!.'';
-#line 425
-cmp_ok( $!, 'eq', '', ' eq with stringified errno' );
-out_ok( <<OUT, <<ERR );
-not ok - eq with stringified errno
-OUT
-# Failed test ' eq with stringified errno'
-# at $0 line 425.
-# got: '$Errno_String'
-# expected: ''
-ERR
-
-#line 436
-cmp_ok( $!, '==', -1, ' eq with numerified errno' );
-out_ok( <<OUT, <<ERR );
-not ok - eq with numerified errno
-OUT
-# Failed test ' eq with numerified errno'
-# at $0 line 436.
-# got: $Errno_Number
-# expected: -1
-ERR
-
-#line 447
-use_ok('Hooble::mooble::yooble');
-my $more_err_re = <<ERR;
-# Failed test 'use Hooble::mooble::yooble;'
-# at $Filename line 447\\.
-# Tried to use 'Hooble::mooble::yooble'.
-# Error: Can't locate Hooble.* in \\\@INC .*
-ERR
-out_like(
- qr/^\Qnot ok - use Hooble::mooble::yooble;\E\n\z/,
- qr/^$more_err_re/
-);
-
-#line 460
-require_ok('ALL::YOUR::BASE::ARE::BELONG::TO::US::wibble');
-$more_err_re = <<ERR;
-# Failed test 'require ALL::YOUR::BASE::ARE::BELONG::TO::US::wibble;'
-# at $Filename line 460\\.
-# Tried to require 'ALL::YOUR::BASE::ARE::BELONG::TO::US::wibble'.
-# Error: Can't locate ALL.* in \\\@INC .*
-ERR
-out_like(
- qr/^\Qnot ok - require ALL::YOUR::BASE::ARE::BELONG::TO::US::wibble;\E\n\z/,
- qr/^$more_err_re/
-);
-
-
-END {
- out_like( <<OUT, <<ERR );
-OUT
-# Looks like you failed $Total tests of $Total.
-ERR
-
- exit(0);
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/fail.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/fail.t
deleted file mode 100755
index ccf0c748934..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/fail.t
+++ /dev/null
@@ -1,56 +0,0 @@
-#!perl -w
-
-# Simple test of what failure output looks like
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-# Normalize the output whether we're running under Test::Harness or not.
-local $ENV{HARNESS_ACTIVE} = 0;
-
-use Test::Builder;
-use Test::Builder::NoOutput;
-
-my $Test = Test::Builder->new;
-
-# Set up a builder to record some failing tests.
-{
- my $tb = Test::Builder::NoOutput->create;
- $tb->plan( tests => 5 );
-
-#line 28
- $tb->ok( 1, 'passing' );
- $tb->ok( 2, 'passing still' );
- $tb->ok( 3, 'still passing' );
- $tb->ok( 0, 'oh no!' );
- $tb->ok( 0, 'damnit' );
- $tb->_ending;
-
- $Test->is_eq($tb->read('out'), <<OUT);
-1..5
-ok 1 - passing
-ok 2 - passing still
-ok 3 - still passing
-not ok 4 - oh no!
-not ok 5 - damnit
-OUT
-
- $Test->is_eq($tb->read('err'), <<ERR);
-# Failed test 'oh no!'
-# at $0 line 31.
-# Failed test 'damnit'
-# at $0 line 32.
-# Looks like you failed 2 tests of 5.
-ERR
-
- $Test->done_testing(2);
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/fail_one.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/fail_one.t
deleted file mode 100755
index 61d7c081ffe..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/fail_one.t
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-# Normalize the output whether we're running under Test::Harness or not.
-local $ENV{HARNESS_ACTIVE} = 0;
-
-use Test::Builder;
-use Test::Builder::NoOutput;
-
-my $Test = Test::Builder->new;
-
-{
- my $tb = Test::Builder::NoOutput->create;
-
- $tb->plan( tests => 1 );
-
-#line 28
- $tb->ok(0);
- $tb->_ending;
-
- $Test->is_eq($tb->read('out'), <<OUT);
-1..1
-not ok 1
-OUT
-
- $Test->is_eq($tb->read('err'), <<ERR);
-# Failed test at $0 line 28.
-# Looks like you failed 1 test of 1.
-ERR
-
- $Test->done_testing(2);
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/filehandles.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/filehandles.t
deleted file mode 100755
index f7dad5d7ea6..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/filehandles.t
+++ /dev/null
@@ -1,18 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
-}
-
-use lib 't/lib';
-use Test::More tests => 1;
-use Dev::Null;
-
-tie *STDOUT, "Dev::Null" or die $!;
-
-print "not ok 1\n"; # this should not print.
-pass 'STDOUT can be mucked with';
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/fork.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/fork.t
deleted file mode 100755
index 55d7aec1f9a..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/fork.t
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More;
-use Config;
-
-my $Can_Fork = $Config{d_fork} ||
- (($^O eq 'MSWin32' || $^O eq 'NetWare') and
- $Config{useithreads} and
- $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
- );
-
-if( !$Can_Fork ) {
- plan skip_all => "This system cannot fork";
-}
-else {
- plan tests => 1;
-}
-
-if( fork ) { # parent
- pass("Only the parent should process the ending, not the child");
-}
-else {
- exit; # child
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/harness_active.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/harness_active.t
deleted file mode 100755
index 7b027a7b404..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/harness_active.t
+++ /dev/null
@@ -1,88 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-use Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-
-
-# Can't use Test.pm, that's a 5.005 thing.
-package My::Test;
-
-# This has to be a require or else the END block below runs before
-# Test::Builder's own and the ending diagnostics don't come out right.
-require Test::Builder;
-my $TB = Test::Builder->create;
-$TB->plan(tests => 4);
-
-# Utility testing functions.
-sub ok ($;$) {
- return $TB->ok(@_);
-}
-
-
-sub main::err_ok ($) {
- my($expect) = @_;
- my $got = $err->read;
-
- return $TB->is_eq( $got, $expect );
-}
-
-
-package main;
-
-require Test::More;
-Test::More->import(tests => 4);
-Test::More->builder->no_ending(1);
-
-{
- local $ENV{HARNESS_ACTIVE} = 0;
-
-#line 62
- fail( "this fails" );
- err_ok( <<ERR );
-# Failed test 'this fails'
-# at $0 line 62.
-ERR
-
-#line 72
- is( 1, 0 );
- err_ok( <<ERR );
-# Failed test at $0 line 72.
-# got: '1'
-# expected: '0'
-ERR
-}
-
-{
- local $ENV{HARNESS_ACTIVE} = 1;
-
-#line 71
- fail( "this fails" );
- err_ok( <<ERR );
-
-# Failed test 'this fails'
-# at $0 line 71.
-ERR
-
-
-#line 84
- is( 1, 0 );
- err_ok( <<ERR );
-
-# Failed test at $0 line 84.
-# got: '1'
-# expected: '0'
-ERR
-
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/import.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/import.t
deleted file mode 100755
index 68a36138bc9..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/import.t
+++ /dev/null
@@ -1,12 +0,0 @@
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-
-use Test::More tests => 2, import => [qw(!fail)];
-
-can_ok(__PACKAGE__, qw(ok pass like isa_ok));
-ok( !__PACKAGE__->can('fail'), 'fail() not exported' );
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_dne_bug.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_dne_bug.t
deleted file mode 100755
index f4578a6460e..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_dne_bug.t
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/perl -w
-
-# test for rt.cpan.org 20768
-#
-# There was a bug where the internal "does not exist" object could get
-# confused with an overloaded object.
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use Test::More tests => 2;
-
-{
- package Foo;
-
- use overload
- 'eq' => \&overload_equiv,
- '==' => \&overload_equiv;
-
- sub new {
- return bless {}, shift;
- }
-
- sub overload_equiv {
- if (ref($_[0]) ne 'Foo' || ref($_[1]) ne 'Foo') {
- print ref($_[0]), " ", ref($_[1]), "\n";
- die "Invalid object passed to overload_equiv\n";
- }
-
- return 1; # change to 0 ... makes little difference
- }
-}
-
-my $obj1 = Foo->new();
-my $obj2 = Foo->new();
-
-eval { is_deeply([$obj1, $obj2], [$obj1, $obj2]); };
-is $@, '';
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_fail.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_fail.t
deleted file mode 100755
index 26036fb9602..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_fail.t
+++ /dev/null
@@ -1,421 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-use Test::Builder;
-require Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-Test::Builder->new->no_header(1);
-Test::Builder->new->no_ending(1);
-local $ENV{HARNESS_ACTIVE} = 0;
-
-
-# Can't use Test.pm, that's a 5.005 thing.
-package main;
-
-
-my $TB = Test::Builder->create;
-$TB->plan(tests => 100);
-
-# Utility testing functions.
-sub ok ($;$) {
- return $TB->ok(@_);
-}
-
-sub is ($$;$) {
- my($thing, $that, $name) = @_;
-
- my $ok = $TB->is_eq($$thing, $that, $name);
-
- $$thing = '';
-
- return $ok;
-}
-
-sub like ($$;$) {
- my($thing, $regex, $name) = @_;
- $regex = "/$regex/" if !ref $regex and $regex !~ m{^/.*/$}s;
-
- my $ok = $TB->like($$thing, $regex, $name);
-
- $$thing = '';
-
- return $ok;
-}
-
-
-require Test::More;
-Test::More->import(tests => 11, import => ['is_deeply']);
-
-my $Filename = quotemeta $0;
-
-#line 68
-ok !is_deeply('foo', 'bar', 'plain strings');
-is( $out, "not ok 1 - plain strings\n", 'plain strings' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'plain strings'
-# at $0 line 68.
-# got: 'foo'
-# expected: 'bar'
-ERR
-
-
-#line 78
-ok !is_deeply({}, [], 'different types');
-is( $out, "not ok 2 - different types\n", 'different types' );
-like( $err, <<ERR, ' right diagnostic' );
-# Failed test 'different types'
-# at $Filename line 78.
-# Structures begin differing at:
-# \\\$got = HASH\\(0x[0-9a-f]+\\)
-# \\\$expected = ARRAY\\(0x[0-9a-f]+\\)
-ERR
-
-#line 88
-ok !is_deeply({ this => 42 }, { this => 43 }, 'hashes with different values');
-is( $out, "not ok 3 - hashes with different values\n",
- 'hashes with different values' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'hashes with different values'
-# at $0 line 88.
-# Structures begin differing at:
-# \$got->{this} = '42'
-# \$expected->{this} = '43'
-ERR
-
-#line 99
-ok !is_deeply({ that => 42 }, { this => 42 }, 'hashes with different keys');
-is( $out, "not ok 4 - hashes with different keys\n",
- 'hashes with different keys' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'hashes with different keys'
-# at $0 line 99.
-# Structures begin differing at:
-# \$got->{this} = Does not exist
-# \$expected->{this} = '42'
-ERR
-
-#line 110
-ok !is_deeply([1..9], [1..10], 'arrays of different length');
-is( $out, "not ok 5 - arrays of different length\n",
- 'arrays of different length' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'arrays of different length'
-# at $0 line 110.
-# Structures begin differing at:
-# \$got->[9] = Does not exist
-# \$expected->[9] = '10'
-ERR
-
-#line 121
-ok !is_deeply([undef, undef], [undef], 'arrays of undefs' );
-is( $out, "not ok 6 - arrays of undefs\n", 'arrays of undefs' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'arrays of undefs'
-# at $0 line 121.
-# Structures begin differing at:
-# \$got->[1] = undef
-# \$expected->[1] = Does not exist
-ERR
-
-#line 131
-ok !is_deeply({ foo => undef }, {}, 'hashes of undefs' );
-is( $out, "not ok 7 - hashes of undefs\n", 'hashes of undefs' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'hashes of undefs'
-# at $0 line 131.
-# Structures begin differing at:
-# \$got->{foo} = undef
-# \$expected->{foo} = Does not exist
-ERR
-
-#line 141
-ok !is_deeply(\42, \23, 'scalar refs');
-is( $out, "not ok 8 - scalar refs\n", 'scalar refs' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'scalar refs'
-# at $0 line 141.
-# Structures begin differing at:
-# \${ \$got} = '42'
-# \${\$expected} = '23'
-ERR
-
-#line 151
-ok !is_deeply([], \23, 'mixed scalar and array refs');
-is( $out, "not ok 9 - mixed scalar and array refs\n",
- 'mixed scalar and array refs' );
-like( $err, <<ERR, ' right diagnostic' );
-# Failed test 'mixed scalar and array refs'
-# at $Filename line 151.
-# Structures begin differing at:
-# \\\$got = ARRAY\\(0x[0-9a-f]+\\)
-# \\\$expected = SCALAR\\(0x[0-9a-f]+\\)
-ERR
-
-
-my($a1, $a2, $a3);
-$a1 = \$a2; $a2 = \$a3;
-$a3 = 42;
-
-my($b1, $b2, $b3);
-$b1 = \$b2; $b2 = \$b3;
-$b3 = 23;
-
-#line 173
-ok !is_deeply($a1, $b1, 'deep scalar refs');
-is( $out, "not ok 10 - deep scalar refs\n", 'deep scalar refs' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'deep scalar refs'
-# at $0 line 173.
-# Structures begin differing at:
-# \${\${ \$got}} = '42'
-# \${\${\$expected}} = '23'
-ERR
-
-# I don't know how to properly display this structure.
-# $a2 = { foo => \$a3 };
-# $b2 = { foo => \$b3 };
-# is_deeply([$a1], [$b1], 'deep mixed scalar refs');
-
-my $foo = {
- this => [1..10],
- that => { up => "down", left => "right" },
- };
-
-my $bar = {
- this => [1..10],
- that => { up => "down", left => "right", foo => 42 },
- };
-
-#line 198
-ok !is_deeply( $foo, $bar, 'deep structures' );
-ok( @Test::More::Data_Stack == 0, '@Data_Stack not holding onto things' );
-is( $out, "not ok 11 - deep structures\n", 'deep structures' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'deep structures'
-# at $0 line 198.
-# Structures begin differing at:
-# \$got->{that}{foo} = Does not exist
-# \$expected->{that}{foo} = '42'
-ERR
-
-
-#line 221
-my @tests = ([],
- [qw(42)],
- [qw(42 23), qw(42 23)]
- );
-
-foreach my $test (@tests) {
- my $num_args = @$test;
-
- my $warning;
- local $SIG{__WARN__} = sub { $warning .= join '', @_; };
- ok !is_deeply(@$test);
-
- like \$warning,
- "/^is_deeply\\(\\) takes two or three args, you gave $num_args\.\n/";
-}
-
-
-#line 240
-# [rt.cpan.org 6837]
-ok !is_deeply([{Foo => undef}],[{Foo => ""}]), 'undef != ""';
-ok( @Test::More::Data_Stack == 0, '@Data_Stack not holding onto things' );
-
-
-#line 258
-# [rt.cpan.org 7031]
-my $a = [];
-ok !is_deeply($a, $a.''), "don't compare refs like strings";
-ok !is_deeply([$a], [$a.'']), " even deep inside";
-
-
-#line 265
-# [rt.cpan.org 7030]
-ok !is_deeply( {}, {key => []} ), '[] could match non-existent values';
-ok !is_deeply( [], [[]] );
-
-
-#line 273
-$$err = $$out = '';
-ok !is_deeply( [\'a', 'b'], [\'a', 'c'] );
-is( $out, "not ok 20\n", 'scalar refs in an array' );
-is( $err, <<ERR, ' right diagnostic' );
-# Failed test at $0 line 274.
-# Structures begin differing at:
-# \$got->[1] = 'b'
-# \$expected->[1] = 'c'
-ERR
-
-
-#line 285
-my $ref = \23;
-ok !is_deeply( 23, $ref );
-is( $out, "not ok 21\n", 'scalar vs ref' );
-is( $err, <<ERR, ' right diagnostic');
-# Failed test at $0 line 286.
-# Structures begin differing at:
-# \$got = '23'
-# \$expected = $ref
-ERR
-
-#line 296
-ok !is_deeply( $ref, 23 );
-is( $out, "not ok 22\n", 'ref vs scalar' );
-is( $err, <<ERR, ' right diagnostic');
-# Failed test at $0 line 296.
-# Structures begin differing at:
-# \$got = $ref
-# \$expected = '23'
-ERR
-
-#line 306
-ok !is_deeply( undef, [] );
-is( $out, "not ok 23\n", 'is_deeply and undef [RT 9441]' );
-like( $err, <<ERR, ' right diagnostic' );
-# Failed test at $Filename line 306\\.
-# Structures begin differing at:
-# \\\$got = undef
-# \\\$expected = ARRAY\\(0x[0-9a-f]+\\)
-ERR
-
-
-# rt.cpan.org 8865
-{
- my $array = [];
- my $hash = {};
-
-#line 321
- ok !is_deeply( $array, $hash );
- is( $out, "not ok 24\n", 'is_deeply and different reference types' );
- is( $err, <<ERR, ' right diagnostic' );
-# Failed test at $0 line 321.
-# Structures begin differing at:
-# \$got = $array
-# \$expected = $hash
-ERR
-
-#line 332
- ok !is_deeply( [$array], [$hash] );
- is( $out, "not ok 25\n", 'nested different ref types' );
- is( $err, <<ERR, ' right diagnostic' );
-# Failed test at $0 line 332.
-# Structures begin differing at:
-# \$got->[0] = $array
-# \$expected->[0] = $hash
-ERR
-
-
- # Overloaded object tests
- {
- my $foo = bless [], "Foo";
- my $bar = bless {}, "Bar";
-
- {
- package Bar;
- "overload"->import(q[""] => sub { "wibble" });
- }
-
-#line 353
- ok !is_deeply( [$foo], [$bar] );
- is( $out, "not ok 26\n", 'string overloaded refs respected in diag' );
- is( $err, <<ERR, ' right diagnostic' );
-# Failed test at $0 line 353.
-# Structures begin differing at:
-# \$got->[0] = $foo
-# \$expected->[0] = 'wibble'
-ERR
-
- }
-}
-
-
-# rt.cpan.org 14746
-{
-# line 349
- ok !is_deeply( sub {"foo"}, sub {"bar"} ), 'function refs';
- is( $out, "not ok 27\n" );
- like( $err, <<ERR, ' right diagnostic' );
-# Failed test at $Filename line 349.
-# Structures begin differing at:
-# \\\$got = CODE\\(0x[0-9a-f]+\\)
-# \\\$expected = CODE\\(0x[0-9a-f]+\\)
-ERR
-
-
- use Symbol;
- my $glob1 = gensym;
- my $glob2 = gensym;
-
-#line 357
- ok !is_deeply( $glob1, $glob2 ), 'typeglobs';
- is( $out, "not ok 28\n" );
- like( $err, <<ERR, ' right diagnostic' );
-# Failed test at $Filename line 357.
-# Structures begin differing at:
-# \\\$got = GLOB\\(0x[0-9a-f]+\\)
-# \\\$expected = GLOB\\(0x[0-9a-f]+\\)
-ERR
-
-}
-
-
-# rt.cpan.org 53469
-{
-
- # Accept both old and new-style stringification
- my $modifiers = (qr/foobar/ =~ /\Q(?^/) ? '^' : '-xism';
-#line 380
- ok !is_deeply( qr/a/, qr/b/, "different regexes" );
- is( $out, "not ok 29 - different regexes\n" );
- is( $err, <<ERR, ' right diagnostic' );
-# Failed test 'different regexes'
-# at $0 line 380.
-# Structures begin differing at:
-# \$got = (?$modifiers:a)
-# \$expected = (?$modifiers:b)
-ERR
-}
-
-
-# false values that should not compare equal
-{
- ok !is_deeply( 0, '', "0 != ''" );
- is( $out, "not ok 30 - 0 != ''\n" );
- ok !is_deeply( 0, undef, "0 != undef" );
- is( $out, "not ok 31 - 0 != undef\n" );
- ok !is_deeply( '', undef, "'' != undef" );
- is( $out, "not ok 32 - '' != undef\n" );
-
- ok !is_deeply( [0], [''], "[0] != ['']" );
- is( $out, "not ok 33 - [0] != ['']\n" );
- ok !is_deeply( [0], [undef], "[0] != [undef]" );
- is( $out, "not ok 34 - [0] != [undef]\n" );
- ok !is_deeply( [''], [undef], "[''] != [undef]" );
- is( $out, "not ok 35 - [''] != [undef]\n" );
-
- ok !is_deeply( [0], [], "[0] != []" );
- is( $out, "not ok 36 - [0] != []\n" );
- ok !is_deeply( [undef], [], "[undef] != []" );
- is( $out, "not ok 37 - [undef] != []\n" );
- ok !is_deeply( [''], [], "[''] != []" );
- is( $out, "not ok 38 - [''] != []\n" );
-
- ok !is_deeply( {x => 0}, {x => ''}, "{x => 0} != {x => ''}" );
- is( $out, "not ok 39 - {x => 0} != {x => ''}\n" );
- ok !is_deeply( {x => 0}, {x => undef}, "{x => 0} != {x => undef}" );
- is( $out, "not ok 40 - {x => 0} != {x => undef}\n" );
- ok !is_deeply( {x => ''}, {x => undef}, "{x => ''} != {x => undef}" );
- is( $out, "not ok 41 - {x => ''} != {x => undef}\n" );
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_with_threads.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_with_threads.t
deleted file mode 100755
index 9908ef66083..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/is_deeply_with_threads.t
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test to see if is_deeply() plays well with threads.
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use Config;
-
-BEGIN {
- unless ( $] >= 5.008001 && $Config{'useithreads'} &&
- eval { require threads; 'threads'->import; 1; })
- {
- print "1..0 # Skip no working threads\n";
- exit 0;
- }
-
- unless ( $ENV{AUTHOR_TESTING} ) {
- print "1..0 # Skip many perls have broken threads. Enable with AUTHOR_TESTING.\n";
- exit 0;
- }
-}
-use Test::More;
-
-my $Num_Threads = 5;
-
-plan tests => $Num_Threads * 100 + 6;
-
-
-sub do_one_thread {
- my $kid = shift;
- my @list = ( 'x', 'yy', 'zzz', 'a', 'bb', 'ccc', 'aaaaa', 'z',
- 'hello', 's', 'thisisalongname', '1', '2', '3',
- 'abc', 'xyz', '1234567890', 'm', 'n', 'p' );
- my @list2 = @list;
- print "# kid $kid before is_deeply\n";
-
- for my $j (1..100) {
- is_deeply(\@list, \@list2);
- }
- print "# kid $kid exit\n";
- return 42;
-}
-
-my @kids = ();
-for my $i (1..$Num_Threads) {
- my $t = threads->new(\&do_one_thread, $i);
- print "# parent $$: continue\n";
- push(@kids, $t);
-}
-for my $t (@kids) {
- print "# parent $$: waiting for join\n";
- my $rc = $t->join();
- cmp_ok( $rc, '==', 42, "threads exit status is $rc" );
-}
-
-pass("End of test");
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/missing.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/missing.t
deleted file mode 100755
index 3996b6de4b4..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/missing.t
+++ /dev/null
@@ -1,56 +0,0 @@
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-# Can't use Test.pm, that's a 5.005 thing.
-package My::Test;
-
-# This has to be a require or else the END block below runs before
-# Test::Builder's own and the ending diagnostics don't come out right.
-require Test::Builder;
-my $TB = Test::Builder->create;
-$TB->plan(tests => 2);
-
-sub is { $TB->is_eq(@_) }
-
-
-package main;
-
-require Test::Simple;
-
-require Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-local $ENV{HARNESS_ACTIVE} = 0;
-
-Test::Simple->import(tests => 5);
-
-#line 30
-ok(1, 'Foo');
-ok(0, 'Bar');
-ok(1, '1 2 3');
-
-END {
- My::Test::is($$out, <<OUT);
-1..5
-ok 1 - Foo
-not ok 2 - Bar
-ok 3 - 1 2 3
-OUT
-
- My::Test::is($$err, <<ERR);
-# Failed test 'Bar'
-# at $0 line 31.
-# You named your test '1 2 3'. You shouldn't use numbers for your test names.
-# Very confusing.
-# Looks like you planned 5 tests but ran 3.
-# Looks like you failed 1 test of 3 run.
-ERR
-
- exit 0;
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/new_ok.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/new_ok.t
deleted file mode 100755
index d53f535d1c0..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/new_ok.t
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-use Test::More tests => 13;
-
-{
- package Bar;
-
- sub new {
- my $class = shift;
- return bless {@_}, $class;
- }
-
-
- package Foo;
- our @ISA = qw(Bar);
-}
-
-{
- my $obj = new_ok("Foo");
- is_deeply $obj, {};
- isa_ok $obj, "Foo";
-
- $obj = new_ok("Bar");
- is_deeply $obj, {};
- isa_ok $obj, "Bar";
-
- $obj = new_ok("Foo", [this => 42]);
- is_deeply $obj, { this => 42 };
- isa_ok $obj, "Foo";
-
- $obj = new_ok("Foo", [], "Foo");
- is_deeply $obj, {};
- isa_ok $obj, "Foo";
-}
-
-# And what if we give it nothing?
-eval {
- new_ok();
-};
-is $@, sprintf "new_ok() must be given at least a class at %s line %d.\n", $0, __LINE__ - 2;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/no_plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/no_plan.t
deleted file mode 100755
index 5f392e40e1f..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/no_plan.t
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use Test::More tests => 7;
-
-my $tb = Test::Builder->create;
-
-#line 20
-ok !eval { $tb->plan(tests => undef) };
-is($@, "Got an undefined number of tests at $0 line 20.\n");
-
-#line 24
-ok !eval { $tb->plan(tests => 0) };
-is($@, "You said to run 0 tests at $0 line 24.\n");
-
-{
- my $warning = '';
- local $SIG{__WARN__} = sub { $warning .= join '', @_ };
-
-#line 31
- ok $tb->plan(no_plan => 1);
- is( $warning, "no_plan takes no arguments at $0 line 31.\n" );
- is $tb->has_plan, 'no_plan';
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/no_tests.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/no_tests.t
deleted file mode 100755
index eafa38cacc7..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/no_tests.t
+++ /dev/null
@@ -1,44 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-# Can't use Test.pm, that's a 5.005 thing.
-package My::Test;
-
-# This has to be a require or else the END block below runs before
-# Test::Builder's own and the ending diagnostics don't come out right.
-require Test::Builder;
-my $TB = Test::Builder->create;
-$TB->plan(tests => 3);
-
-
-package main;
-
-require Test::Simple;
-
-chdir 't';
-push @INC, '../t/lib/';
-require Test::Simple::Catch;
-my($out, $err) = Test::Simple::Catch::caught();
-local $ENV{HARNESS_ACTIVE} = 0;
-
-Test::Simple->import(tests => 1);
-
-END {
- $TB->is_eq($out->read, <<OUT);
-1..1
-OUT
-
- $TB->is_eq($err->read, <<ERR);
-# No tests run!
-ERR
-
- $TB->is_eq($?, 255, "exit code");
-
- exit grep { !$_ } $TB->summary;
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/note.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/note.t
deleted file mode 100755
index fb98fb40295..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/note.t
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-
-use Test::Builder::NoOutput;
-
-use Test::More tests => 2;
-
-{
- my $tb = Test::Builder::NoOutput->create;
-
- $tb->note("foo");
-
- $tb->reset_outputs;
-
- is $tb->read('out'), "# foo\n";
- is $tb->read('err'), '';
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/overload.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/overload.t
deleted file mode 100755
index a86103746b3..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/overload.t
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use Test::More tests => 19;
-
-
-package Overloaded;
-
-use overload
- q{eq} => sub { $_[0]->{string} eq $_[1] },
- q{==} => sub { $_[0]->{num} == $_[1] },
- q{""} => sub { $_[0]->{stringify}++; $_[0]->{string} },
- q{0+} => sub { $_[0]->{numify}++; $_[0]->{num} }
-;
-
-sub new {
- my $class = shift;
- bless {
- string => shift,
- num => shift,
- stringify => 0,
- numify => 0,
- }, $class;
-}
-
-
-package main;
-
-local $SIG{__DIE__} = sub {
- my($call_file, $call_line) = (caller)[1,2];
- fail("SIGDIE accidentally called");
- diag("From $call_file at $call_line");
-};
-
-my $obj = Overloaded->new('foo', 42);
-isa_ok $obj, 'Overloaded';
-
-cmp_ok $obj, 'eq', 'foo', 'cmp_ok() eq';
-is $obj->{stringify}, 0, ' does not stringify';
-is $obj, 'foo', 'is() with string overloading';
-cmp_ok $obj, '==', 42, 'cmp_ok() with number overloading';
-is $obj->{numify}, 0, ' does not numify';
-
-is_deeply [$obj], ['foo'], 'is_deeply with string overloading';
-ok eq_array([$obj], ['foo']), 'eq_array ...';
-ok eq_hash({foo => $obj}, {foo => 'foo'}), 'eq_hash ...';
-
-# rt.cpan.org 13506
-is_deeply $obj, 'foo', 'is_deeply with string overloading at the top';
-
-Test::More->builder->is_num($obj, 42);
-Test::More->builder->is_eq ($obj, "foo");
-
-
-{
- # rt.cpan.org 14675
- package TestPackage;
- use overload q{""} => sub { ::fail("This should not be called") };
-
- package Foo;
- ::is_deeply(['TestPackage'], ['TestPackage']);
- ::is_deeply({'TestPackage' => 'TestPackage'},
- {'TestPackage' => 'TestPackage'});
- ::is_deeply('TestPackage', 'TestPackage');
-}
-
-
-# Make sure 0 isn't a special case. [rt.cpan.org 41109]
-{
- my $obj = Overloaded->new('0', 42);
- isa_ok $obj, 'Overloaded';
-
- cmp_ok $obj, 'eq', '0', 'cmp_ok() eq';
- is $obj->{stringify}, 0, ' does not stringify';
- is $obj, '0', 'is() with string overloading';
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/overload_threads.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/overload_threads.t
deleted file mode 100755
index 379e347baeb..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/overload_threads.t
+++ /dev/null
@@ -1,60 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-chdir 't';
-
-BEGIN {
- # There was a bug with overloaded objects and threads.
- # See rt.cpan.org 4218
- eval { require threads; 'threads'->import; 1; };
-}
-
-use Test::More tests => 5;
-
-
-package Overloaded;
-
-use overload
- q{""} => sub { $_[0]->{string} };
-
-sub new {
- my $class = shift;
- bless { string => shift }, $class;
-}
-
-
-package main;
-
-my $warnings = '';
-local $SIG{__WARN__} = sub { $warnings = join '', @_ };
-
-# overloaded object as name
-my $obj = Overloaded->new('foo');
-ok( 1, $obj );
-
-# overloaded object which returns undef as name
-my $undef = Overloaded->new(undef);
-pass( $undef );
-
-is( $warnings, '' );
-
-
-TODO: {
- my $obj = Overloaded->new('not really todo, testing overloaded reason');
- local $TODO = $obj;
- fail("Just checking todo as an overloaded value");
-}
-
-
-SKIP: {
- my $obj = Overloaded->new('not really skipped, testing overloaded reason');
- skip $obj, 1;
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/plan.t
deleted file mode 100755
index 0d3ce89edb1..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan.t
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More;
-
-plan tests => 4;
-eval { plan tests => 4 };
-is( $@, sprintf("You tried to plan twice at %s line %d.\n", $0, __LINE__ - 1),
- 'disallow double plan' );
-eval { plan 'no_plan' };
-is( $@, sprintf("You tried to plan twice at %s line %d.\n", $0, __LINE__ -1),
- 'disallow changing plan' );
-
-pass('Just testing plan()');
-pass('Testing it some more');
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_bad.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_bad.t
deleted file mode 100755
index 179356dbc1d..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_bad.t
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-
-use Test::More tests => 12;
-use Test::Builder;
-my $tb = Test::Builder->create;
-$tb->level(0);
-
-ok !eval { $tb->plan( tests => 'no_plan' ); };
-is $@, sprintf "Number of tests must be a positive integer. You gave it 'no_plan' at %s line %d.\n", $0, __LINE__ - 1;
-
-my $foo = [];
-my @foo = ($foo, 2, 3);
-ok !eval { $tb->plan( tests => @foo ) };
-is $@, sprintf "Number of tests must be a positive integer. You gave it '$foo' at %s line %d.\n", $0, __LINE__ - 1;
-
-ok !eval { $tb->plan( tests => 9.99 ) };
-is $@, sprintf "Number of tests must be a positive integer. You gave it '9.99' at %s line %d.\n", $0, __LINE__ - 1;
-
-#line 25
-ok !eval { $tb->plan( tests => -1 ) };
-is $@, "Number of tests must be a positive integer. You gave it '-1' at $0 line 25.\n";
-
-#line 29
-ok !eval { $tb->plan( tests => '' ) };
-is $@, "You said to run 0 tests at $0 line 29.\n";
-
-#line 33
-ok !eval { $tb->plan( 'wibble' ) };
-is $@, "plan() doesn't understand wibble at $0 line 33.\n";
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_is_noplan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_is_noplan.t
deleted file mode 100755
index 1e696042eff..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_is_noplan.t
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-use Test::More tests => 1;
-
-use Test::Builder::NoOutput;
-
-{
- my $tb = Test::Builder::NoOutput->create;
-
- $tb->plan('no_plan');
-
- $tb->ok(1, 'foo');
- $tb->_ending;
-
- is($tb->read, <<OUT);
-ok 1 - foo
-1..1
-OUT
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_no_plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_no_plan.t
deleted file mode 100755
index 3111592e97f..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_no_plan.t
+++ /dev/null
@@ -1,40 +0,0 @@
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More;
-
-BEGIN {
- if( !$ENV{HARNESS_ACTIVE} && $ENV{PERL_CORE} ) {
- plan skip_all => "Won't work with t/TEST";
- }
-}
-
-plan 'no_plan';
-
-pass('Just testing');
-ok(1, 'Testing again');
-
-{
- my $warning = '';
- local $SIG{__WARN__} = sub { $warning = join "", @_ };
- SKIP: {
- skip 'Just testing skip with no_plan';
- fail("So very failed");
- }
- is( $warning, '', 'skip with no "how_many" ok with no_plan' );
-
-
- $warning = '';
- TODO: {
- todo_skip "Just testing todo_skip";
-
- fail("Just testing todo");
- die "todo_skip should prevent this";
- pass("Again");
- }
- is( $warning, '', 'skip with no "how_many" ok with no_plan' );
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_shouldnt_import.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_shouldnt_import.t
deleted file mode 100755
index b6eb0642446..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_shouldnt_import.t
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/perl -w
-
-# plan() used to export functions by mistake [rt.cpan.org 8385]
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-
-use Test::More ();
-Test::More::plan(tests => 1);
-
-Test::More::ok( !__PACKAGE__->can('ok'), 'plan should not export' );
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_skip_all.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_skip_all.t
deleted file mode 100755
index 528df5f50d4..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/plan_skip_all.t
+++ /dev/null
@@ -1,12 +0,0 @@
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More;
-
-plan skip_all => 'Just testing plan & skip_all';
-
-fail('We should never get here');
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/require_ok.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/require_ok.t
deleted file mode 100755
index 463a007599c..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/require_ok.t
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use Test::More tests => 8;
-
-# Symbol and Class::Struct are both non-XS core modules back to 5.004.
-# So they'll always be there.
-require_ok("Symbol");
-ok( $INC{'Symbol.pm'}, "require_ok MODULE" );
-
-require_ok("Class/Struct.pm");
-ok( $INC{'Class/Struct.pm'}, "require_ok FILE" );
-
-# Its more trouble than its worth to try to create these filepaths to test
-# through require_ok() so we cheat and use the internal logic.
-ok !Test::More::_is_module_name('foo:bar');
-ok !Test::More::_is_module_name('foo/bar.thing');
-ok !Test::More::_is_module_name('Foo::Bar::');
-ok Test::More::_is_module_name('V');
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/run_test.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/run_test.t
deleted file mode 100644
index 8288f19ab8a..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/run_test.t
+++ /dev/null
@@ -1,145 +0,0 @@
-use strict;
-
-use Test::Tester;
-
-use Data::Dumper qw(Dumper);
-
-my $test = Test::Builder->new;
-$test->plan(tests => 54);
-
-my $cap;
-
-{
- $cap = Test::Tester->capture;
- my ($prem, @results) = run_tests(
- sub {$cap->ok(1, "run pass")}
- );
-
- local $Test::Builder::Level = 0;
-
- $test->is_eq($prem, "", "run pass no prem");
- $test->is_num(scalar (@results), 1, "run pass result count");
-
- my $res = $results[0];
-
- $test->is_eq($res->{name}, "run pass", "run pass name");
- $test->is_eq($res->{ok}, 1, "run pass ok");
- $test->is_eq($res->{actual_ok}, 1, "run pass actual_ok");
- $test->is_eq($res->{reason}, "", "run pass reason");
- $test->is_eq($res->{type}, "", "run pass type");
- $test->is_eq($res->{diag}, "", "run pass diag");
- $test->is_num($res->{depth}, 0, "run pass depth");
-}
-
-{
- my ($prem, @results) = run_tests(
- sub {$cap->ok(0, "run fail")}
- );
-
- local $Test::Builder::Level = 0;
-
- $test->is_eq($prem, "", "run fail no prem");
- $test->is_num(scalar (@results), 1, "run fail result count");
-
- my $res = $results[0];
-
- $test->is_eq($res->{name}, "run fail", "run fail name");
- $test->is_eq($res->{actual_ok}, 0, "run fail actual_ok");
- $test->is_eq($res->{ok}, 0, "run fail ok");
- $test->is_eq($res->{reason}, "", "run fail reason");
- $test->is_eq($res->{type}, "", "run fail type");
- $test->is_eq($res->{diag}, "", "run fail diag");
- $test->is_num($res->{depth}, 0, "run fail depth");
-}
-
-{
- my ($prem, @results) = run_tests(
- sub {$cap->skip("just because")}
- );
-
- local $Test::Builder::Level = 0;
-
- $test->is_eq($prem, "", "skip no prem");
- $test->is_num(scalar (@results), 1, "skip result count");
-
- my $res = $results[0];
-
- $test->is_eq($res->{name}, "", "skip name");
- $test->is_eq($res->{actual_ok}, 1, "skip actual_ok");
- $test->is_eq($res->{ok}, 1, "skip ok");
- $test->is_eq($res->{reason}, "just because", "skip reason");
- $test->is_eq($res->{type}, "skip", "skip type");
- $test->is_eq($res->{diag}, "", "skip diag");
- $test->is_num($res->{depth}, 0, "skip depth");
-}
-
-{
- my ($prem, @results) = run_tests(
- sub {$cap->todo_skip("just because")}
- );
-
- local $Test::Builder::Level = 0;
-
- $test->is_eq($prem, "", "todo_skip no prem");
- $test->is_num(scalar (@results), 1, "todo_skip result count");
-
- my $res = $results[0];
-
- $test->is_eq($res->{name}, "", "todo_skip name");
- $test->is_eq($res->{actual_ok}, 0, "todo_skip actual_ok");
- $test->is_eq($res->{ok}, 1, "todo_skip ok");
- $test->is_eq($res->{reason}, "just because", "todo_skip reason");
- $test->is_eq($res->{type}, "todo_skip", "todo_skip type");
- $test->is_eq($res->{diag}, "", "todo_skip diag");
- $test->is_num($res->{depth}, 0, "todo_skip depth");
-}
-
-{
- my ($prem, @results) = run_tests(
- sub {$cap->diag("run diag")}
- );
-
- local $Test::Builder::Level = 0;
-
- $test->is_eq($prem, "run diag\n", "run diag prem");
- $test->is_num(scalar (@results), 0, "run diag result count");
-}
-
-{
- my ($prem, @results) = run_tests(
- sub {
- $cap->ok(1, "multi pass");
- $cap->diag("multi pass diag1");
- $cap->diag("multi pass diag2");
- $cap->ok(0, "multi fail");
- $cap->diag("multi fail diag");
- }
- );
-
- local $Test::Builder::Level = 0;
-
- $test->is_eq($prem, "", "run multi no prem");
- $test->is_num(scalar (@results), 2, "run multi result count");
-
- my $res_pass = $results[0];
-
- $test->is_eq($res_pass->{name}, "multi pass", "run multi pass name");
- $test->is_eq($res_pass->{actual_ok}, 1, "run multi pass actual_ok");
- $test->is_eq($res_pass->{ok}, 1, "run multi pass ok");
- $test->is_eq($res_pass->{reason}, "", "run multi pass reason");
- $test->is_eq($res_pass->{type}, "", "run multi pass type");
- $test->is_eq($res_pass->{diag}, "multi pass diag1\nmulti pass diag2\n",
- "run multi pass diag");
- $test->is_num($res_pass->{depth}, 0, "run multi pass depth");
-
- my $res_fail = $results[1];
-
- $test->is_eq($res_fail->{name}, "multi fail", "run multi fail name");
- $test->is_eq($res_pass->{actual_ok}, 1, "run multi fail actual_ok");
- $test->is_eq($res_fail->{ok}, 0, "run multi fail ok");
- $test->is_eq($res_pass->{reason}, "", "run multi fail reason");
- $test->is_eq($res_pass->{type}, "", "run multi fail type");
- $test->is_eq($res_fail->{diag}, "multi fail diag\n", "run multi fail diag");
- $test->is_num($res_pass->{depth}, 0, "run multi fail depth");
-}
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/simple.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/simple.t
deleted file mode 100755
index 7297e9d6dd1..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/simple.t
+++ /dev/null
@@ -1,17 +0,0 @@
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use strict;
-
-BEGIN { $| = 1; $^W = 1; }
-
-use Test::Simple tests => 3;
-
-ok(1, 'compile');
-
-ok(1);
-ok(1, 'foo');
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/skip.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/skip.t
deleted file mode 100755
index f2ea9fbf201..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/skip.t
+++ /dev/null
@@ -1,98 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More tests => 17;
-
-# If we skip with the same name, Test::Harness will report it back and
-# we won't get lots of false bug reports.
-my $Why = "Just testing the skip interface.";
-
-SKIP: {
- skip $Why, 2
- unless Pigs->can('fly');
-
- my $pig = Pigs->new;
- $pig->takeoff;
-
- ok( $pig->altitude > 0, 'Pig is airborne' );
- ok( $pig->airspeed > 0, ' and moving' );
-}
-
-
-SKIP: {
- skip "We're not skipping", 2 if 0;
-
- pass("Inside skip block");
- pass("Another inside");
-}
-
-
-SKIP: {
- skip "Again, not skipping", 2 if 0;
-
- my($pack, $file, $line) = caller;
- is( $pack || '', '', 'calling package not interfered with' );
- is( $file || '', '', ' or file' );
- is( $line || '', '', ' or line' );
-}
-
-
-SKIP: {
- skip $Why, 2 if 1;
-
- die "A horrible death";
- fail("Deliberate failure");
- fail("And again");
-}
-
-
-{
- my $warning;
- local $SIG{__WARN__} = sub { $warning = join "", @_ };
- SKIP: {
- # perl gets the line number a little wrong on the first
- # statement inside a block.
- 1 == 1;
-#line 56
- skip $Why;
- fail("So very failed");
- }
- is( $warning, "skip() needs to know \$how_many tests are in the ".
- "block at $0 line 56\n",
- 'skip without $how_many warning' );
-}
-
-
-SKIP: {
- skip "Not skipping here.", 4 if 0;
-
- pass("This is supposed to run");
-
- # Testing out nested skips.
- SKIP: {
- skip $Why, 2;
- fail("AHHH!");
- fail("You're a failure");
- }
-
- pass("This is supposed to run, too");
-}
-
-{
- my $warning = '';
- local $SIG{__WARN__} = sub { $warning .= join "", @_ };
-
- SKIP: {
- skip 1, "This is backwards" if 1;
-
- pass "This does not run";
- }
-
- like $warning, qr/^skip\(\) was passed a non-numeric number of tests/;
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/skipall.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/skipall.t
deleted file mode 100755
index 5491be126e8..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/skipall.t
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-
-use Test::More;
-
-my $Test = Test::Builder->create;
-$Test->plan(tests => 2);
-
-my $out = '';
-my $err = '';
-{
- my $tb = Test::More->builder;
- $tb->output(\$out);
- $tb->failure_output(\$err);
-
- plan 'skip_all';
-}
-
-END {
- $Test->is_eq($out, "1..0 # SKIP\n");
- $Test->is_eq($err, "");
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/args.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/args.t
deleted file mode 100755
index 8ae26baa935..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/args.t
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use Test::Builder;
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ( '../lib', 'lib' );
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-use Test::Builder::NoOutput;
-
-my $tb = Test::Builder->new;
-
-$tb->ok( !eval { $tb->subtest() } );
-$tb->like( $@, qr/^\Qsubtest()'s second argument must be a code ref/ );
-
-$tb->ok( !eval { $tb->subtest("foo") } );
-$tb->like( $@, qr/^\Qsubtest()'s second argument must be a code ref/ );
-
-$tb->subtest('Arg passing', sub {
- my $foo = shift;
- my $child = Test::Builder->new;
- $child->is_eq($foo, 'foo');
- $child->done_testing;
- $child->finalize;
-}, 'foo');
-
-$tb->done_testing();
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/bail_out.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/bail_out.t
deleted file mode 100644
index 70dc9ac56f4..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/bail_out.t
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-my $Exit_Code;
-BEGIN {
- *CORE::GLOBAL::exit = sub { $Exit_Code = shift; };
-}
-
-use Test::Builder;
-use Test::More;
-
-my $output;
-my $TB = Test::More->builder;
-$TB->output(\$output);
-
-my $Test = Test::Builder->create;
-$Test->level(0);
-
-$Test->plan(tests => 2);
-
-plan tests => 4;
-
-ok 'foo';
-subtest 'bar' => sub {
- plan tests => 3;
- ok 'sub_foo';
- subtest 'sub_bar' => sub {
- plan tests => 3;
- ok 'sub_sub_foo';
- ok 'sub_sub_bar';
- BAIL_OUT("ROCKS FALL! EVERYONE DIES!");
- ok 'sub_sub_baz';
- };
- ok 'sub_baz';
-};
-
-$Test->is_eq( $output, <<'OUT' );
-1..4
-ok 1
- # Subtest: bar
- 1..3
- ok 1
- # Subtest: sub_bar
- 1..3
- ok 1
- ok 2
-Bail out! ROCKS FALL! EVERYONE DIES!
-OUT
-
-$Test->is_eq( $Exit_Code, 255 );
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/basic.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/basic.t
deleted file mode 100755
index 93780a9da2f..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/basic.t
+++ /dev/null
@@ -1,214 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ( '../lib', 'lib' );
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-
-use Test::Builder::NoOutput;
-
-use Test::More tests => 19;
-
-# Formatting may change if we're running under Test::Harness.
-$ENV{HARNESS_ACTIVE} = 0;
-
-{
- my $tb = Test::Builder::NoOutput->create;
-
- $tb->plan( tests => 7 );
- for( 1 .. 3 ) {
- $tb->ok( $_, "We're on $_" );
- $tb->diag("We ran $_");
- }
- {
- my $indented = $tb->child;
- $indented->plan('no_plan');
- $indented->ok( 1, "We're on 1" );
- $indented->ok( 1, "We're on 2" );
- $indented->ok( 1, "We're on 3" );
- $indented->finalize;
- }
- for( 7, 8, 9 ) {
- $tb->ok( $_, "We're on $_" );
- }
-
- is $tb->read, <<"END", 'Output should nest properly';
-1..7
-ok 1 - We're on 1
-# We ran 1
-ok 2 - We're on 2
-# We ran 2
-ok 3 - We're on 3
-# We ran 3
- ok 1 - We're on 1
- ok 2 - We're on 2
- ok 3 - We're on 3
- 1..3
-ok 4 - Child of $0
-ok 5 - We're on 7
-ok 6 - We're on 8
-ok 7 - We're on 9
-END
-}
-{
- my $tb = Test::Builder::NoOutput->create;
-
- $tb->plan('no_plan');
- for( 1 .. 1 ) {
- $tb->ok( $_, "We're on $_" );
- $tb->diag("We ran $_");
- }
- {
- my $indented = $tb->child;
- $indented->plan('no_plan');
- $indented->ok( 1, "We're on 1" );
- {
- my $indented2 = $indented->child('with name');
- $indented2->plan( tests => 2 );
- $indented2->ok( 1, "We're on 2.1" );
- $indented2->ok( 1, "We're on 2.1" );
- $indented2->finalize;
- }
- $indented->ok( 1, 'after child' );
- $indented->finalize;
- }
- for(7) {
- $tb->ok( $_, "We're on $_" );
- }
-
- $tb->_ending;
- is $tb->read, <<"END", 'We should allow arbitrary nesting';
-ok 1 - We're on 1
-# We ran 1
- ok 1 - We're on 1
- 1..2
- ok 1 - We're on 2.1
- ok 2 - We're on 2.1
- ok 2 - with name
- ok 3 - after child
- 1..3
-ok 2 - Child of $0
-ok 3 - We're on 7
-1..3
-END
-}
-
-{
-#line 108
- my $tb = Test::Builder::NoOutput->create;
-
- {
- my $child = $tb->child('expected to fail');
- $child->plan( tests => 3 );
- $child->ok(1);
- $child->ok(0);
- $child->ok(3);
- $child->finalize;
- }
-
- {
- my $child = $tb->child('expected to pass');
- $child->plan( tests => 3 );
- $child->ok(1);
- $child->ok(2);
- $child->ok(3);
- $child->finalize;
- }
- is $tb->read, <<"END", 'Previous child failures should not force subsequent failures';
- 1..3
- ok 1
- not ok 2
- # Failed test at $0 line 114.
- ok 3
- # Looks like you failed 1 test of 3.
-not ok 1 - expected to fail
-# Failed test 'expected to fail'
-# at $0 line 116.
- 1..3
- ok 1
- ok 2
- ok 3
-ok 2 - expected to pass
-END
-}
-{
- my $tb = Test::Builder::NoOutput->create;
- my $child = $tb->child('one');
- is $child->{$_}, $tb->{$_}, "The child should copy the ($_) filehandle"
- foreach qw{Out_FH Todo_FH Fail_FH};
- $child->finalize;
-}
-{
- my $tb = Test::Builder::NoOutput->create;
- my $child = $tb->child('one');
- can_ok $child, 'parent';
- is $child->parent, $tb, '... and it should return the parent of the child';
- ok !defined $tb->parent, '... but top level builders should not have parents';
-
- can_ok $tb, 'name';
- is $tb->name, $0, 'The top level name should be $0';
- is $child->name, 'one', '... but child names should be whatever we set them to';
- $child->finalize;
- $child = $tb->child;
- is $child->name, 'Child of '.$tb->name, '... or at least have a sensible default';
- $child->finalize;
-}
-# Skip all subtests
-{
- my $tb = Test::Builder::NoOutput->create;
-
- {
- my $child = $tb->child('skippy says he loves you');
- eval { $child->plan( skip_all => 'cuz I said so' ) };
- ok my $error = $@, 'A child which does a "skip_all" should throw an exception';
- isa_ok $error, 'Test::Builder::Exception', '... and the exception it throws';
- }
- subtest 'skip all', sub {
- plan skip_all => 'subtest with skip_all';
- ok 0, 'This should never be run';
- };
- is +Test::Builder->new->{Test_Results}[-1]{type}, 'skip',
- 'Subtests which "skip_all" are reported as skipped tests';
-}
-
-# to do tests
-{
-#line 204
- my $tb = Test::Builder::NoOutput->create;
- $tb->plan( tests => 1 );
- my $child = $tb->child;
- $child->plan( tests => 1 );
- $child->todo_start( 'message' );
- $child->ok( 0 );
- $child->todo_end;
- $child->finalize;
- $tb->_ending;
- is $tb->read, <<"END", 'TODO tests should not make the parent test fail';
-1..1
- 1..1
- not ok 1 # TODO message
- # Failed (TODO) test at $0 line 209.
-ok 1 - Child of $0
-END
-}
-{
- my $tb = Test::Builder::NoOutput->create;
- $tb->plan( tests => 1 );
- my $child = $tb->child;
- $child->finalize;
- $tb->_ending;
- my $expected = <<"END";
-1..1
-not ok 1 - No tests run for subtest "Child of $0"
-END
- like $tb->read, qr/\Q$expected/,
- 'Not running subtests should make the parent test fail';
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/die.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/die.t
deleted file mode 100755
index 3d53abf6ccb..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/die.t
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/perl -w
-
-# What happens when a subtest dies?
-
-use lib 't/lib';
-
-use strict;
-use Test::Builder;
-use Test::Builder::NoOutput;
-
-my $Test = Test::Builder->new;
-
-{
- my $tb = Test::Builder::NoOutput->create;
-
- $tb->ok(1);
-
- $Test->ok( !eval {
- $tb->subtest("death" => sub {
- die "Death in the subtest";
- });
- 1;
- });
- $Test->like( $@, qr/^Death in the subtest at \Q$0\E line /);
-
- $Test->ok( !$tb->parent, "the parent object is restored after a die" );
-}
-
-
-$Test->done_testing();
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/do.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/do.t
deleted file mode 100755
index 40b950184ec..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/do.t
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test the idiom of running another test file as a subtest.
-
-use strict;
-use Test::More;
-
-pass("First");
-
-my $file = "t/subtest/for_do_t.test";
-ok -e $file, "subtest test file exists";
-
-subtest $file => sub { do $file };
-
-pass("Last");
-
-done_testing(4);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/exceptions.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/exceptions.t
deleted file mode 100755
index 92d65b648a2..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/exceptions.t
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ( '../lib', 'lib' );
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-use Test::Builder::NoOutput;
-use Test::More tests => 7;
-
-{
- my $tb = Test::Builder::NoOutput->create;
- $tb->child('one');
- eval { $tb->child('two') };
- my $error = $@;
- like $error, qr/\QYou already have a child named (one) running/,
- 'Trying to create a child with another one active should fail';
-}
-{
- my $tb = Test::Builder::NoOutput->create;
- my $child = $tb->child('one');
- ok my $child2 = $child->child('two'), 'Trying to create nested children should succeed';
- eval { $child->finalize };
- my $error = $@;
- like $error, qr/\QCan't call finalize() with child (two) active/,
- '... but trying to finalize() a child with open children should fail';
-}
-{
- my $tb = Test::Builder::NoOutput->create;
- my $child = $tb->child('one');
- undef $child;
- like $tb->read, qr/\QChild (one) exited without calling finalize()/,
- 'Failing to call finalize should issue an appropriate diagnostic';
- ok !$tb->is_passing, '... and should cause the test suite to fail';
-}
-{
- my $tb = Test::Builder::NoOutput->create;
-
- $tb->plan( tests => 7 );
- for( 1 .. 3 ) {
- $tb->ok( $_, "We're on $_" );
- $tb->diag("We ran $_");
- }
- {
- my $indented = $tb->child;
- $indented->plan('no_plan');
- $indented->ok( 1, "We're on 1" );
- eval { $tb->ok( 1, 'This should throw an exception' ) };
- $indented->finalize;
- }
-
- my $error = $@;
- like $error, qr/\QCannot run test (This should throw an exception) with active children/,
- 'Running a test with active children should fail';
- ok !$tb->is_passing, '... and should cause the test suite to fail';
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/for_do_t.test b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/for_do_t.test
deleted file mode 100644
index 413923bceb0..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/for_do_t.test
+++ /dev/null
@@ -1,9 +0,0 @@
-# Test used by t/subtest/do.t
-
-use Test::More;
-
-pass("First");
-pass("Second");
-pass("Third");
-
-done_testing(3);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/fork.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/fork.t
deleted file mode 100644
index e072a4813e4..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/fork.t
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-use warnings;
-use Config;
-use IO::Pipe;
-use Test::Builder;
-use Test::More;
-
-my $Can_Fork = $Config{d_fork} ||
- (($^O eq 'MSWin32' || $^O eq 'NetWare') and
- $Config{useithreads} and
- $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
- );
-
-if( !$Can_Fork ) {
- plan 'skip_all' => "This system cannot fork";
-}
-else {
- plan 'tests' => 1;
-}
-
-subtest 'fork within subtest' => sub {
- plan tests => 2;
-
- my $pipe = IO::Pipe->new;
- my $pid = fork;
- defined $pid or plan skip_all => "Fork not working";
-
- if ($pid) {
- $pipe->reader;
- my $child_output = do { local $/ ; <$pipe> };
- waitpid $pid, 0;
-
- is $?, 0, 'child exit status';
- like $child_output, qr/^[\s#]+Child Done\s*\z/, 'child output';
- }
- else {
- $pipe->writer;
-
- # Force all T::B output into the pipe, for the parent
- # builder as well as the current subtest builder.
- no warnings 'redefine';
- *Test::Builder::output = sub { $pipe };
- *Test::Builder::failure_output = sub { $pipe };
- *Test::Builder::todo_output = sub { $pipe };
-
- diag 'Child Done';
- exit 0;
- }
-};
-
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/implicit_done.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/implicit_done.t
deleted file mode 100644
index 0963e72c594..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/implicit_done.t
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/perl -w
-
-# A subtest without a plan implicitly calls "done_testing"
-
-use strict;
-use Test::More;
-
-pass "Before";
-
-subtest 'basic' => sub {
- pass "Inside sub test";
-};
-
-subtest 'with done' => sub {
- pass 'This has done_testing';
- done_testing;
-};
-
-subtest 'with plan' => sub {
- plan tests => 1;
- pass 'I have a plan, Batman!';
-};
-
-subtest 'skipping' => sub {
- plan skip_all => 'Skipping';
- fail 'Shouldnt see me!';
-};
-
-pass "After";
-
-done_testing;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/line_numbers.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/line_numbers.t
deleted file mode 100644
index 7a20a60ae6b..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/line_numbers.t
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test Test::More::subtest(), focusing on correct line numbers in
-# failed test diagnostics.
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ( '../lib', 'lib' );
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-
-use Test::More tests => 5;
-use Test::Builder;
-use Test::Builder::Tester;
-
-# Formatting may change if we're running under Test::Harness.
-$ENV{HARNESS_ACTIVE} = 0;
-
-our %line;
-
-{
- test_out(" # Subtest: namehere");
- test_out(" 1..3");
- test_out(" ok 1");
- test_out(" not ok 2");
- test_err(" # Failed test at $0 line $line{innerfail1}.");
- test_out(" ok 3");
- test_err(" # Looks like you failed 1 test of 3.");
- test_out("not ok 1 - namehere");
- test_err("# Failed test 'namehere'");
- test_err("# at $0 line $line{outerfail1}.");
-
- subtest namehere => sub {
- plan tests => 3;
- ok 1;
- ok 0; BEGIN{ $line{innerfail1} = __LINE__ }
- ok 1;
- }; BEGIN{ $line{outerfail1} = __LINE__ }
-
- test_test("un-named inner tests");
-}
-{
- test_out(" # Subtest: namehere");
- test_out(" 1..3");
- test_out(" ok 1 - first is good");
- test_out(" not ok 2 - second is bad");
- test_err(" # Failed test 'second is bad'");
- test_err(" # at $0 line $line{innerfail2}.");
- test_out(" ok 3 - third is good");
- test_err(" # Looks like you failed 1 test of 3.");
- test_out("not ok 1 - namehere");
- test_err("# Failed test 'namehere'");
- test_err("# at $0 line $line{outerfail2}.");
-
- subtest namehere => sub {
- plan tests => 3;
- ok 1, "first is good";
- ok 0, "second is bad"; BEGIN{ $line{innerfail2} = __LINE__ }
- ok 1, "third is good";
- }; BEGIN{ $line{outerfail2} = __LINE__ }
-
- test_test("named inner tests");
-}
-
-sub run_the_subtest {
- subtest namehere => sub {
- plan tests => 3;
- ok 1, "first is good";
- ok 0, "second is bad"; BEGIN{ $line{innerfail3} = __LINE__ }
- ok 1, "third is good";
- }; BEGIN{ $line{outerfail3} = __LINE__ }
-}
-{
- test_out(" # Subtest: namehere");
- test_out(" 1..3");
- test_out(" ok 1 - first is good");
- test_out(" not ok 2 - second is bad");
- test_err(" # Failed test 'second is bad'");
- test_err(" # at $0 line $line{innerfail3}.");
- test_out(" ok 3 - third is good");
- test_err(" # Looks like you failed 1 test of 3.");
- test_out("not ok 1 - namehere");
- test_err("# Failed test 'namehere'");
- test_err("# at $0 line $line{outerfail3}.");
-
- run_the_subtest();
-
- test_test("subtest() called from a sub");
-}
-{
- test_out( " # Subtest: namehere");
- test_out( " 1..0");
- test_err( " # No tests run!");
- test_out( 'not ok 1 - No tests run for subtest "namehere"');
- test_err(q{# Failed test 'No tests run for subtest "namehere"'});
- test_err( "# at $0 line $line{outerfail4}.");
-
- subtest namehere => sub {
- done_testing;
- }; BEGIN{ $line{outerfail4} = __LINE__ }
-
- test_test("lineno in 'No tests run' diagnostic");
-}
-{
- test_out(" # Subtest: namehere");
- test_out(" 1..1");
- test_out(" not ok 1 - foo is bar");
- test_err(" # Failed test 'foo is bar'");
- test_err(" # at $0 line $line{is_fail}.");
- test_err(" # got: 'foo'");
- test_err(" # expected: 'bar'");
- test_err(" # Looks like you failed 1 test of 1.");
- test_out('not ok 1 - namehere');
- test_err("# Failed test 'namehere'");
- test_err("# at $0 line $line{is_outer_fail}.");
-
- subtest namehere => sub {
- plan tests => 1;
- is 'foo', 'bar', 'foo is bar'; BEGIN{ $line{is_fail} = __LINE__ }
- }; BEGIN{ $line{is_outer_fail} = __LINE__ }
-
- test_test("diag indent for is() in subtest");
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/plan.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/plan.t
deleted file mode 100644
index 7e944ab2833..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/plan.t
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ( '../lib', 'lib' );
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-
-use Test::Builder::NoOutput;
-
-use Test::More tests => 6;
-
-# Formatting may change if we're running under Test::Harness.
-$ENV{HARNESS_ACTIVE} = 0;
-
-{
- ok defined &subtest, 'subtest() should be exported to our namespace';
- is prototype('subtest'), undef, '... has no prototype';
-
- subtest 'subtest with plan', sub {
- plan tests => 2;
- ok 1, 'planned subtests should work';
- ok 1, '... and support more than one test';
- };
- subtest 'subtest without plan', sub {
- plan 'no_plan';
- ok 1, 'no_plan subtests should work';
- ok 1, '... and support more than one test';
- ok 1, '... no matter how many tests are run';
- };
- subtest 'subtest with implicit done_testing()', sub {
- ok 1, 'subtests with an implicit done testing should work';
- ok 1, '... and support more than one test';
- ok 1, '... no matter how many tests are run';
- };
- subtest 'subtest with explicit done_testing()', sub {
- ok 1, 'subtests with an explicit done testing should work';
- ok 1, '... and support more than one test';
- ok 1, '... no matter how many tests are run';
- done_testing();
- };
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/predicate.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/predicate.t
deleted file mode 100644
index 4e29a426b18..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/predicate.t
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test the use of subtest() to define new test predicates that combine
-# multiple existing predicates.
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ( '../lib', 'lib' );
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-
-use Test::More tests => 5;
-use Test::Builder;
-use Test::Builder::Tester;
-
-# Formatting may change if we're running under Test::Harness.
-$ENV{HARNESS_ACTIVE} = 0;
-
-our %line;
-
-# Define a new test predicate with Test::More::subtest(), using
-# Test::More predicates as building blocks...
-
-sub foobar_ok ($;$) {
- my ($value, $name) = @_;
- $name ||= "foobar_ok";
-
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- subtest $name => sub {
- plan tests => 2;
- ok $value =~ /foo/, "foo";
- ok $value =~ /bar/, "bar"; BEGIN{ $line{foobar_ok_bar} = __LINE__ }
- };
-}
-{
- test_out(" # Subtest: namehere");
- test_out(" 1..2");
- test_out(" ok 1 - foo");
- test_out(" not ok 2 - bar");
- test_err(" # Failed test 'bar'");
- test_err(" # at $0 line $line{foobar_ok_bar}.");
- test_err(" # Looks like you failed 1 test of 2.");
- test_out("not ok 1 - namehere");
- test_err("# Failed test 'namehere'");
- test_err("# at $0 line ".(__LINE__+2).".");
-
- foobar_ok "foot", "namehere";
-
- test_test("foobar_ok failing line numbers");
-}
-
-# Wrap foobar_ok() to make another new predicate...
-
-sub foobar_ok_2 ($;$) {
- my ($value, $name) = @_;
-
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- foobar_ok($value, $name);
-}
-{
- test_out(" # Subtest: namehere");
- test_out(" 1..2");
- test_out(" ok 1 - foo");
- test_out(" not ok 2 - bar");
- test_err(" # Failed test 'bar'");
- test_err(" # at $0 line $line{foobar_ok_bar}.");
- test_err(" # Looks like you failed 1 test of 2.");
- test_out("not ok 1 - namehere");
- test_err("# Failed test 'namehere'");
- test_err("# at $0 line ".(__LINE__+2).".");
-
- foobar_ok_2 "foot", "namehere";
-
- test_test("foobar_ok_2 failing line numbers");
-}
-
-# Define another new test predicate, this time using
-# Test::Builder::subtest() rather than Test::More::subtest()...
-
-sub barfoo_ok ($;$) {
- my ($value, $name) = @_;
- $name ||= "barfoo_ok";
-
- Test::Builder->new->subtest($name => sub {
- plan tests => 2;
- ok $value =~ /foo/, "foo";
- ok $value =~ /bar/, "bar"; BEGIN{ $line{barfoo_ok_bar} = __LINE__ }
- });
-}
-{
- test_out(" # Subtest: namehere");
- test_out(" 1..2");
- test_out(" ok 1 - foo");
- test_out(" not ok 2 - bar");
- test_err(" # Failed test 'bar'");
- test_err(" # at $0 line $line{barfoo_ok_bar}.");
- test_err(" # Looks like you failed 1 test of 2.");
- test_out("not ok 1 - namehere");
- test_err("# Failed test 'namehere'");
- test_err("# at $0 line ".(__LINE__+2).".");
-
- barfoo_ok "foot", "namehere";
-
- test_test("barfoo_ok failing line numbers");
-}
-
-# Wrap barfoo_ok() to make another new predicate...
-
-sub barfoo_ok_2 ($;$) {
- my ($value, $name) = @_;
-
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- barfoo_ok($value, $name);
-}
-{
- test_out(" # Subtest: namehere");
- test_out(" 1..2");
- test_out(" ok 1 - foo");
- test_out(" not ok 2 - bar");
- test_err(" # Failed test 'bar'");
- test_err(" # at $0 line $line{barfoo_ok_bar}.");
- test_err(" # Looks like you failed 1 test of 2.");
- test_out("not ok 1 - namehere");
- test_err("# Failed test 'namehere'");
- test_err("# at $0 line ".(__LINE__+2).".");
-
- barfoo_ok_2 "foot", "namehere";
-
- test_test("barfoo_ok_2 failing line numbers");
-}
-
-# A subtest-based predicate called from within a subtest
-{
- test_out(" # Subtest: outergroup");
- test_out(" 1..2");
- test_out(" ok 1 - this passes");
- test_out(" # Subtest: namehere");
- test_out(" 1..2");
- test_out(" ok 1 - foo");
- test_out(" not ok 2 - bar");
- test_err(" # Failed test 'bar'");
- test_err(" # at $0 line $line{barfoo_ok_bar}.");
- test_err(" # Looks like you failed 1 test of 2.");
- test_out(" not ok 2 - namehere");
- test_err(" # Failed test 'namehere'");
- test_err(" # at $0 line $line{ipredcall}.");
- test_err(" # Looks like you failed 1 test of 2.");
- test_out("not ok 1 - outergroup");
- test_err("# Failed test 'outergroup'");
- test_err("# at $0 line $line{outercall}.");
-
- subtest outergroup => sub {
- plan tests => 2;
- ok 1, "this passes";
- barfoo_ok_2 "foot", "namehere"; BEGIN{ $line{ipredcall} = __LINE__ }
- }; BEGIN{ $line{outercall} = __LINE__ }
-
- test_test("outergroup with internal barfoo_ok_2 failing line numbers");
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/singleton.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/singleton.t
deleted file mode 100755
index 0c25261f5bb..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/singleton.t
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ( '../lib', 'lib' );
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-use Test::More tests => 3;
-
-{
-
- package Test::Singleton;
-
- use Test::Builder;
- my $TB = Test::Builder->new;
-
- sub singleton_ok ($;$) {
- my( $val, $name ) = @_;
- $TB->ok( $val, $name );
- }
-}
-
-ok 1, 'TB top level';
-subtest 'doing a subtest' => sub {
- plan tests => 4;
- ok 1, 'first test in subtest';
- Test::Singleton::singleton_ok(1, 'this should not fail');
- ok 1, 'second test in subtest';
- Test::Singleton::singleton_ok(1, 'this should not fail');
-};
-ok 1, 'left subtest';
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/threads.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/threads.t
deleted file mode 100644
index 0d70b1e6e58..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/threads.t
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use warnings;
-
-use Config;
-BEGIN {
- unless ( $] >= 5.008001 && $Config{'useithreads'} &&
- eval { require threads; 'threads'->import; 1; })
- {
- print "1..0 # Skip: no working threads\n";
- exit 0;
- }
-}
-
-use Test::More;
-
-subtest 'simple test with threads on' => sub {
- is( 1+1, 2, "simple test" );
- is( "a", "a", "another simple test" );
-};
-
-pass("Parent retains sharedness");
-
-done_testing(2);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/todo.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/todo.t
deleted file mode 100644
index 7269da9b951..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/todo.t
+++ /dev/null
@@ -1,200 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test todo subtests.
-#
-# A subtest in a todo context should have all of its diagnostic output
-# redirected to the todo output destination, but individual tests
-# within the subtest should not become todo tests themselves.
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ( '../lib', 'lib' );
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use warnings;
-
-use Test::More;
-use Test::Builder;
-use Test::Builder::Tester;
-
-# Formatting may change if we're running under Test::Harness.
-$ENV{HARNESS_ACTIVE} = 0;
-
-our %line;
-
-# Repeat each test for various combinations of the todo reason,
-# the mechanism by which it is set and $Level.
-our @test_combos;
-foreach my $level (1, 2, 3) {
- push @test_combos, ['$TODO', 'Reason', $level],
- ['todo_start', 'Reason', $level],
- ['todo_start', '', $level],
- ['todo_start', 0, $level];
-}
-
-plan tests => 8 * @test_combos;
-
-sub test_subtest_in_todo {
- my ($name, $code, $want_out, $no_tests_run) = @_;
-
- my $xxx = $no_tests_run ? 'No tests run for subtest "xxx"' : 'xxx';
-
- chomp $want_out;
- my @outlines = split /\n/, $want_out;
-
- foreach my $combo (@test_combos) {
- my ($set_via, $todo_reason, $level) = @$combo;
-
- test_out(
- " # Subtest: xxx",
- @outlines,
- "not ok 1 - $xxx # TODO $todo_reason",
- "# Failed (TODO) test '$xxx'",
- "# at $0 line $line{xxx}.",
- "not ok 2 - regular todo test # TODO $todo_reason",
- "# Failed (TODO) test 'regular todo test'",
- "# at $0 line $line{reg}.",
- );
-
- {
- local $TODO = $set_via eq '$TODO' ? $todo_reason : undef;
- if ($set_via eq 'todo_start') {
- Test::Builder->new->todo_start($todo_reason);
- }
-
- subtest_at_level(
- 'xxx', $code, $level); BEGIN{ $line{xxx} = __LINE__ }
- ok 0, 'regular todo test'; BEGIN{ $line{reg} = __LINE__ }
-
- if ($set_via eq 'todo_start') {
- Test::Builder->new->todo_end;
- }
- }
-
- test_test("$name ($level), todo [$todo_reason] set via $set_via");
- }
-}
-
-package Foo; # If several stack frames are in package 'main' then $Level
- # could be wrong and $main::TODO might still be found. Using
- # another package makes the tests more sensitive.
-
-sub main::subtest_at_level {
- my ($name, $code, $level) = @_;
-
- if ($level > 1) {
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- main::subtest_at_level($name, $code, $level-1);
- }
- else {
- Test::Builder->new->subtest($name => $code);
- }
-}
-
-package main;
-
-test_subtest_in_todo("plan, no tests run", sub {
- plan tests => 2;
-}, <<END, 1);
- 1..2
- # No tests run!
-END
-
-test_subtest_in_todo("noplan, no tests run", sub {
- plan 'no_plan';
-}, <<END, 1);
- # No tests run!
-END
-
-test_subtest_in_todo("missingplan, no tests run", sub {
- 1;
-}, <<END, 1);
- 1..0
- # No tests run!
-END
-
-test_subtest_in_todo("donetesting, no tests run", sub {
- done_testing;
-}, <<END, 1);
- 1..0
- # No tests run!
-END
-
-test_subtest_in_todo("1 failed test", sub {
- ok 0, 'failme'; BEGIN { $line{fail1} = __LINE__ }
-}, <<END);
- not ok 1 - failme
- # Failed test 'failme'
- # at $0 line $line{fail1}.
- 1..1
- # Looks like you failed 1 test of 1.
-END
-
-test_subtest_in_todo("1fail, wrongplan", sub {
- plan tests => 17;
- ok 0, 'failme'; BEGIN { $line{fail2} = __LINE__ }
-}, <<END);
- 1..17
- not ok 1 - failme
- # Failed test 'failme'
- # at $0 line $line{fail2}.
- # Looks like you planned 17 tests but ran 1.
- # Looks like you failed 1 test of 1 run.
-END
-
-test_subtest_in_todo("1fail, 1pass", sub {
- ok 0, 'failme'; BEGIN { $line{fail3} = __LINE__ }
- ok 1, 'passme';
-}, <<END);
- not ok 1 - failme
- # Failed test 'failme'
- # at $0 line $line{fail3}.
- ok 2 - passme
- 1..2
- # Looks like you failed 1 test of 2.
-END
-
-test_subtest_in_todo("todo tests in the subtest", sub {
- ok 0, 'inner test 1'; BEGIN{ $line{in1} = __LINE__ }
-
- TODO: {
- local $TODO = 'Inner1';
- ok 0, 'failing TODO a'; BEGIN{ $line{fta} = __LINE__ }
- ok 1, 'unexpected pass a';
- }
-
- ok 0, 'inner test 2'; BEGIN{ $line{in2} = __LINE__ }
-
- Test::Builder->new->todo_start('Inner2');
- ok 0, 'failing TODO b'; BEGIN{ $line{ftb} = __LINE__ }
- ok 1, 'unexpected pass b';
- Test::Builder->new->todo_end;
-
- ok 0, 'inner test 3'; BEGIN{ $line{in3} = __LINE__ }
-}, <<END);
- not ok 1 - inner test 1
- # Failed test 'inner test 1'
- # at $0 line $line{in1}.
- not ok 2 - failing TODO a # TODO Inner1
- # Failed (TODO) test 'failing TODO a'
- # at $0 line $line{fta}.
- ok 3 - unexpected pass a # TODO Inner1
- not ok 4 - inner test 2
- # Failed test 'inner test 2'
- # at $0 line $line{in2}.
- not ok 5 - failing TODO b # TODO Inner2
- # Failed (TODO) test 'failing TODO b'
- # at $0 line $line{ftb}.
- ok 6 - unexpected pass b # TODO Inner2
- not ok 7 - inner test 3
- # Failed test 'inner test 3'
- # at $0 line $line{in3}.
- 1..7
- # Looks like you failed 3 tests of 7.
-END
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/wstat.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/wstat.t
deleted file mode 100644
index ee2f19866d8..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/subtest/wstat.t
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/perl -w
-
-# Test that setting $? doesn't affect subtest success
-
-use strict;
-use Test::More;
-
-subtest foo => sub {
- plan tests => 1;
- $? = 1;
- pass('bar');
-};
-
-is $?, 1, "exit code keeps on from a subtest";
-
-subtest foo2 => sub {
- plan tests => 1;
- pass('bar2');
- $? = 1;
-};
-
-is $?, 1, "exit code keeps on from a subtest";
-
-done_testing(4);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/tbm_doesnt_set_exported_to.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/tbm_doesnt_set_exported_to.t
deleted file mode 100755
index 8bdd17753b1..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/tbm_doesnt_set_exported_to.t
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use strict;
-use warnings;
-
-# Can't use Test::More, that would set exported_to()
-use Test::Builder;
-use Test::Builder::Module;
-
-my $TB = Test::Builder->create;
-$TB->plan( tests => 1 );
-$TB->level(0);
-
-$TB->is_eq( Test::Builder::Module->builder->exported_to,
- undef,
- 'using Test::Builder::Module does not set exported_to()'
-);
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/thread_taint.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/thread_taint.t
deleted file mode 100755
index ef7b89daeff..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/thread_taint.t
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/perl -w
-
-use Test::More tests => 1;
-
-ok( !$INC{'threads.pm'}, 'Loading Test::More does not load threads.pm' );
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/threads.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/threads.t
deleted file mode 100755
index 42ba8c269c7..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/threads.t
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Config;
-BEGIN {
- unless ( $] >= 5.008001 && $Config{'useithreads'} &&
- eval { require threads; 'threads'->import; 1; })
- {
- print "1..0 # Skip: no working threads\n";
- exit 0;
- }
-}
-
-use strict;
-use Test::Builder;
-
-my $Test = Test::Builder->new;
-$Test->exported_to('main');
-$Test->plan(tests => 6);
-
-for(1..5) {
- 'threads'->create(sub {
- $Test->ok(1,"Each of these should app the test number")
- })->join;
-}
-
-$Test->is_num($Test->current_test(), 5,"Should be five");
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/todo.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/todo.t
deleted file mode 100755
index 91861be3cb8..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/todo.t
+++ /dev/null
@@ -1,157 +0,0 @@
-#!perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More;
-
-plan tests => 36;
-
-
-$Why = 'Just testing the todo interface.';
-
-my $is_todo;
-TODO: {
- local $TODO = $Why;
-
- fail("Expected failure");
- fail("Another expected failure");
-
- $is_todo = Test::More->builder->todo;
-}
-
-pass("This is not todo");
-ok( $is_todo, 'TB->todo' );
-
-
-TODO: {
- local $TODO = $Why;
-
- fail("Yet another failure");
-}
-
-pass("This is still not todo");
-
-
-TODO: {
- local $TODO = "testing that error messages don't leak out of todo";
-
- ok( 'this' eq 'that', 'ok' );
-
- like( 'this', qr/that/, 'like' );
- is( 'this', 'that', 'is' );
- isnt( 'this', 'this', 'isnt' );
-
- can_ok('Fooble', 'yarble');
- isa_ok('Fooble', 'yarble');
- use_ok('Fooble');
- require_ok('Fooble');
-}
-
-
-TODO: {
- todo_skip "Just testing todo_skip", 2;
-
- fail("Just testing todo");
- die "todo_skip should prevent this";
- pass("Again");
-}
-
-
-{
- my $warning;
- local $SIG{__WARN__} = sub { $warning = join "", @_ };
- TODO: {
- # perl gets the line number a little wrong on the first
- # statement inside a block.
- 1 == 1;
-#line 74
- todo_skip "Just testing todo_skip";
- fail("So very failed");
- }
- is( $warning, "todo_skip() needs to know \$how_many tests are in the ".
- "block at $0 line 74\n",
- 'todo_skip without $how_many warning' );
-}
-
-my $builder = Test::More->builder;
-my $exported_to = $builder->exported_to;
-TODO: {
- $builder->exported_to("Wibble");
-
- local $TODO = "testing \$TODO with an incorrect exported_to()";
-
- fail("Just testing todo");
-}
-
-$builder->exported_to($exported_to);
-
-$builder->todo_start('Expected failures');
-fail('Testing todo_start()');
-ok 0, 'Testing todo_start() with more than one failure';
-$is_todo = $builder->todo;
-$builder->todo_end;
-is $is_todo, 'Expected failures',
- 'todo_start should have the correct TODO message';
-ok 1, 'todo_end() should not leak TODO behavior';
-
-my @nested_todo;
-my ( $level1, $level2 ) = ( 'failure level 1', 'failure_level 2' );
-TODO: {
- local $TODO = 'Nesting TODO';
- fail('fail 1');
-
- $builder->todo_start($level1);
- fail('fail 2');
-
- push @nested_todo => $builder->todo;
- $builder->todo_start($level2);
- fail('fail 3');
-
- push @nested_todo => $builder->todo;
- $builder->todo_end;
- fail('fail 4');
-
- push @nested_todo => $builder->todo;
- $builder->todo_end;
- $is_todo = $builder->todo;
- fail('fail 4');
-}
-is_deeply \@nested_todo, [ $level1, $level2, $level1 ],
- 'Nested TODO message should be correct';
-is $is_todo, 'Nesting TODO',
- '... and original TODO message should be correct';
-
-{
- $builder->todo_start;
- fail("testing todo_start() with no message");
- my $reason = $builder->todo;
- my $in_todo = $builder->in_todo;
- $builder->todo_end;
-
- is $reason, '', " todo() reports no reason";
- ok $in_todo, " but we're in_todo()";
-}
-
-eval {
- $builder->todo_end;
-};
-is $@, sprintf "todo_end() called without todo_start() at %s line %d.\n", $0, __LINE__ - 2;
-
-
-{
- my($reason, $in_todo);
-
- TODO: {
- local $TODO = '';
- $reason = $builder->todo;
- $in_todo = $builder->in_todo;
- }
-
- is $reason, '';
- ok !$in_todo, '$TODO = "" is not considered TODO';
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/undef.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/undef.t
deleted file mode 100755
index 2c8cace491a..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/undef.t
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = ('../lib', 'lib');
- }
- else {
- unshift @INC, 't/lib';
- }
-}
-
-use strict;
-use Test::More tests => 21;
-
-BEGIN { $^W = 1; }
-
-my $warnings = '';
-local $SIG{__WARN__} = sub { $warnings .= join '', @_ };
-
-my $TB = Test::Builder->new;
-sub no_warnings {
- $TB->is_eq($warnings, '', ' no warnings');
- $warnings = '';
-}
-
-sub warnings_is {
- $TB->is_eq($warnings, $_[0]);
- $warnings = '';
-}
-
-sub warnings_like {
- $TB->like($warnings, $_[0]);
- $warnings = '';
-}
-
-
-my $Filename = quotemeta $0;
-
-
-is( undef, undef, 'undef is undef');
-no_warnings;
-
-isnt( undef, 'foo', 'undef isnt foo');
-no_warnings;
-
-isnt( undef, '', 'undef isnt an empty string' );
-isnt( undef, 0, 'undef isnt zero' );
-
-Test::More->builder->is_num(undef, undef, 'is_num()');
-Test::More->builder->isnt_num(23, undef, 'isnt_num()');
-
-#line 45
-like( undef, qr/.*/, 'undef is like anything' );
-no_warnings;
-
-eq_array( [undef, undef], [undef, 23] );
-no_warnings;
-
-eq_hash ( { foo => undef, bar => undef },
- { foo => undef, bar => 23 } );
-no_warnings;
-
-eq_set ( [undef, undef, 12], [29, undef, undef] );
-no_warnings;
-
-
-eq_hash ( { foo => undef, bar => { baz => undef, moo => 23 } },
- { foo => undef, bar => { baz => undef, moo => 23 } } );
-no_warnings;
-
-
-#line 74
-cmp_ok( undef, '<=', 2, ' undef <= 2' );
-warnings_like(qr/Use of uninitialized value.* at \(eval in cmp_ok\) $Filename line 74\.\n/);
-
-
-
-my $tb = Test::More->builder;
-
-my $err = '';
-$tb->failure_output(\$err);
-diag(undef);
-$tb->reset_outputs;
-
-is( $err, "# undef\n" );
-no_warnings;
-
-
-$tb->maybe_regex(undef);
-no_warnings;
-
-
-# test-more.googlecode.com #42
-{
- is_deeply([ undef ], [ undef ]);
- no_warnings;
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/use_ok.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/use_ok.t
deleted file mode 100755
index 9e858bc75e2..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/use_ok.t
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use warnings;
-
-use lib 't/lib';
-use Test::More;
-
-note "Basic use_ok"; {
- package Foo::one;
- ::use_ok("Symbol");
- ::ok( defined &gensym, 'use_ok() no args exports defaults' );
-}
-
-
-note "With one arg"; {
- package Foo::two;
- ::use_ok("Symbol", qw(qualify));
- ::ok( !defined &gensym, ' one arg, defaults overridden' );
- ::ok( defined &qualify, ' right function exported' );
-}
-
-
-note "Multiple args"; {
- package Foo::three;
- ::use_ok("Symbol", qw(gensym ungensym));
- ::ok( defined &gensym && defined &ungensym, ' multiple args' );
-}
-
-
-note "Defining constants"; {
- package Foo::four;
- my $warn; local $SIG{__WARN__} = sub { $warn .= shift; };
- ::use_ok("constant", qw(foo bar));
- ::ok( defined &foo, 'constant' );
- ::is( $warn, undef, 'no warning');
-}
-
-
-note "use Module VERSION"; {
- package Foo::five;
- ::use_ok("Symbol", 1.02);
-}
-
-
-note "use Module VERSION does not call import"; {
- package Foo::six;
- ::use_ok("NoExporter", 1.02);
-}
-
-
-{
- package Foo::seven;
- local $SIG{__WARN__} = sub {
- # Old perls will warn on X.YY_ZZ style versions. Not our problem
- warn @_ unless $_[0] =~ /^Argument "\d+\.\d+_\d+" isn't numeric/;
- };
- ::use_ok("Test::More", 0.47);
-}
-
-
-note "Signals are preserved"; {
- package Foo::eight;
- local $SIG{__DIE__};
- ::use_ok("SigDie");
- ::ok(defined $SIG{__DIE__}, ' SIG{__DIE__} preserved');
-}
-
-
-note "Line numbers preserved"; {
- my $package = "that_cares_about_line_numbers";
-
- # Store the output of caller.
- my @caller;
- {
- package that_cares_about_line_numbers;
-
- sub import {
- @caller = caller;
- return;
- }
-
- $INC{"$package.pm"} = 1; # fool use into thinking it's already loaded
- }
-
- ::use_ok($package);
- my $line = __LINE__-1;
- ::is( $caller[0], __PACKAGE__, "caller package preserved" );
- ::is( $caller[1], __FILE__, " file" );
- ::is( $caller[2], $line, " line" );
-}
-
-
-note "not confused by functions vs class names"; {
- $INC{"ok.pm"} = 1;
- use_ok("ok"); # ok is a function inside Test::More
-
- $INC{"Foo/bar.pm"} = 1;
- sub Foo::bar { 42 }
- use_ok("Foo::bar"); # Confusing a class name with a function name
-}
-
-done_testing;
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/useing.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/useing.t
deleted file mode 100755
index c4ce5071270..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/useing.t
+++ /dev/null
@@ -1,19 +0,0 @@
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use Test::More tests => 5;
-
-require_ok('Test::Builder');
-require_ok("Test::More");
-require_ok("Test::Simple");
-
-{
- package Foo;
- use Test::More import => [qw(ok is can_ok)];
- can_ok('Foo', qw(ok is can_ok));
- ok( !Foo->can('like'), 'import working properly' );
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/utf8.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/utf8.t
deleted file mode 100755
index f68b2a7680e..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/utf8.t
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/perl -w
-
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use strict;
-use warnings;
-
-my $have_perlio;
-BEGIN {
- # All together so Test::More sees the open discipline
- $have_perlio = eval q[
- require PerlIO;
- binmode *STDOUT, ":encoding(utf8)";
- binmode *STDERR, ":encoding(utf8)";
- require Test::More;
- 1;
- ];
-}
-
-use Test::More;
-
-if( !$have_perlio ) {
- plan skip_all => "Don't have PerlIO";
-}
-else {
- plan tests => 5;
-}
-
-SKIP: {
- skip( "Need PerlIO for this feature", 3 )
- unless $have_perlio;
-
- my %handles = (
- output => \*STDOUT,
- failure_output => \*STDERR,
- todo_output => \*STDOUT
- );
-
- for my $method (keys %handles) {
- my $src = $handles{$method};
-
- my $dest = Test::More->builder->$method;
-
- is_deeply { map { $_ => 1 } PerlIO::get_layers($dest) },
- { map { $_ => 1 } PerlIO::get_layers($src) },
- "layers copied to $method";
- }
-}
-
-
-# Test utf8 is ok.
-{
- my $uni = "\x{11e}";
-
- my @warnings;
- local $SIG{__WARN__} = sub {
- push @warnings, @_;
- };
-
- is( $uni, $uni, "Testing $uni" );
- is_deeply( \@warnings, [] );
-}
diff --git a/gnu/usr.bin/perl/cpan/Test-Simple/t/versions.t b/gnu/usr.bin/perl/cpan/Test-Simple/t/versions.t
deleted file mode 100755
index cb835993649..00000000000
--- a/gnu/usr.bin/perl/cpan/Test-Simple/t/versions.t
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/perl -w
-
-# Make sure all the modules have the same version
-#
-# TBT has its own version system.
-
-use strict;
-use Test::More;
-
-require Test::Builder;
-require Test::Builder::Module;
-require Test::Simple;
-
-my $dist_version = Test::More->VERSION;
-
-like( $dist_version, qr/^ \d+ \. \d+ $/x );
-
-my @modules = qw(
- Test::Simple
- Test::Builder
- Test::Builder::Module
-);
-
-for my $module (@modules) {
- is( $dist_version, $module->VERSION, $module );
-}
-
-done_testing(4);
diff --git a/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm b/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
index 4fbb1bc6315..f1a5780a0b9 100644
--- a/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
+++ b/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
@@ -1508,7 +1508,7 @@ C<extract_tagged> returns the complete text up to the point of failure.
If the string is "PARA", C<extract_tagged> returns only the first paragraph
after the tag (up to the first line that is either empty or contains
only whitespace characters).
-If the string is "", the default behaviour (i.e. failure) is reinstated.
+If the string is "", the the default behaviour (i.e. failure) is reinstated.
For example, suppose the start tag "/para" introduces a paragraph, which then
continues until the next "/endpara" tag or until another "/para" tag is
diff --git a/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm b/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm
index 6dbf4d69c44..8acba86e76c 100644
--- a/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm
+++ b/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm
@@ -2,13 +2,11 @@ package Time::Piece;
use strict;
-require DynaLoader;
+use XSLoader ();
use Time::Seconds;
use Carp;
use Time::Local;
-our @ISA = qw(DynaLoader);
-
use Exporter ();
our @EXPORT = qw(
@@ -20,9 +18,9 @@ our %EXPORT_TAGS = (
':override' => 'internal',
);
-our $VERSION = '1.31';
+our $VERSION = '1.3204';
-bootstrap Time::Piece $VERSION;
+XSLoader::load( 'Time::Piece', $VERSION );
my $DATE_SEP = '-';
my $TIME_SEP = ':';
@@ -31,6 +29,9 @@ my @FULLMON_LIST = qw(January February March April May June July
August September October November December);
my @DAY_LIST = qw(Sun Mon Tue Wed Thu Fri Sat);
my @FULLDAY_LIST = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday);
+my $IS_WIN32 = ($^O =~ /Win32/);
+
+my $LOCALE;
use constant {
'c_sec' => 0,
@@ -68,7 +69,10 @@ sub new {
my $self;
- if (defined($time)) {
+ if (ref($time)) {
+ $self = $time->[c_islocal] ? $class->localtime($time) : $class->gmtime($time);
+ }
+ elsif (defined($time)) {
$self = $class->localtime($time);
}
elsif (ref($class) && $class->isa(__PACKAGE__)) {
@@ -96,19 +100,21 @@ sub parse {
@components = shift =~ /(\d+)$DATE_SEP(\d+)$DATE_SEP(\d+)(?:(?:T|\s+)(\d+)$TIME_SEP(\d+)(?:$TIME_SEP(\d+)))/;
@components = reverse(@components[0..5]);
}
- return $class->new(_strftime("%s", timelocal(@components)));
+ return $class->new( timelocal(@components ));
}
sub _mktime {
my ($class, $time, $islocal) = @_;
+
$class = eval { (ref $class) && (ref $class)->isa('Time::Piece') }
? ref $class
: $class;
if (ref($time)) {
- my @tm_parts = (@{$time}[c_sec .. c_mon], $time->[c_year]+1900);
- $time->[c_epoch] = $islocal ? timelocal(@tm_parts) : timegm(@tm_parts);
+ my @new_time = @$time;
+ my @tm_parts = (@new_time[c_sec .. c_mon], $new_time[c_year]+1900);
+ $new_time[c_epoch] = $islocal ? timelocal(@tm_parts) : timegm(@tm_parts);
- return wantarray ? @$time : bless [@$time[0..9], $islocal], $class;
+ return wantarray ? @new_time : bless [@new_time[0..9], $islocal], $class;
}
_tzset();
my @time = $islocal ?
@@ -456,31 +462,127 @@ sub month_last_day {
return $MON_LAST[$_mon] + ($_mon == 1 ? _is_leap_year($year) : 0);
}
-#since %z and %Z are not portable lets just
-#parse it out before calling native strftime
-#(but only if we are in UTC time)
-my %GMT_REPR = (
- '%z' => '+0000',
- '%Z' => 'UTC',
-);
+my $trans_map_common = {
+
+ 'c' => sub {
+ my ( $format ) = @_;
+ if($LOCALE->{PM} && $LOCALE->{AM}){
+ $format =~ s/%c/%a %d %b %Y %I:%M:%S %p/;
+ }
+ else{
+ $format =~ s/%c/%a %d %b %Y %H:%M:%S/;
+ }
+ return $format;
+ },
+ 'r' => sub {
+ my ( $format ) = @_;
+ if($LOCALE->{PM} && $LOCALE->{AM}){
+ $format =~ s/%r/%I:%M:%S %p/;
+ }
+ else{
+ $format =~ s/%r/%H:%M:%S/;
+ }
+ return $format;
+ },
+ 'X' => sub {
+ my ( $format ) = @_;
+ if($LOCALE->{PM} && $LOCALE->{AM}){
+ $format =~ s/%X/%I:%M:%S %p/;
+ }
+ else{
+ $format =~ s/%X/%H:%M:%S/;
+ }
+ return $format;
+ },
+};
+
+my $strftime_trans_map = {
+ %{$trans_map_common},
+
+ 'e' => sub {
+ my ( $format, $time ) = @_;
+ $format =~ s/%e/%d/ if $IS_WIN32;
+ return $format;
+ },
+ 'D' => sub {
+ my ( $format, $time ) = @_;
+ $format =~ s/%D/%m\/%d\/%y/;
+ return $format;
+ },
+ 'F' => sub {
+ my ( $format, $time ) = @_;
+ $format =~ s/%F/%Y-%m-%d/;
+ return $format;
+ },
+ 'R' => sub {
+ my ( $format, $time ) = @_;
+ $format =~ s/%R/%H:%M/;
+ return $format;
+ },
+ 's' => sub {
+ #%s not portable if time parts are from gmtime since %s will
+ #cause a call to native mktime (and thus uses local TZ)
+ my ( $format, $time ) = @_;
+ $format =~ s/%s/$time->[c_epoch]/;
+ return $format;
+ },
+ 'T' => sub {
+ my ( $format, $time ) = @_;
+ $format =~ s/%T/%H:%M:%S/ if $IS_WIN32;
+ return $format;
+ },
+ 'u' => sub {
+ my ( $format, $time ) = @_;
+ $format =~ s/%u/%w/ if $IS_WIN32;
+ return $format;
+ },
+ 'V' => sub {
+ my ( $format, $time ) = @_;
+ my $week = sprintf( "%02d", $time->week() );
+ $format =~ s/%V/$week/ if $IS_WIN32;
+ return $format;
+ },
+ 'x' => sub {
+ my ( $format, $time ) = @_;
+ $format =~ s/%x/%a %d %b %Y/;
+ return $format;
+ },
+ 'z' => sub { #%[zZ] not portable if time parts are from gmtime
+ my ( $format, $time ) = @_;
+ $format =~ s/%z/+0000/ if not $time->[c_islocal];
+ return $format;
+ },
+ 'Z' => sub {
+ my ( $format, $time ) = @_;
+ $format =~ s/%Z/UTC/ if not $time->[c_islocal];
+ return $format;
+ },
+};
sub strftime {
my $time = shift;
my $format = @_ ? shift(@_) : '%a, %d %b %Y %H:%M:%S %Z';
- if (! $time->[c_islocal]) {
- $format =~ s/(%.)/$GMT_REPR{$1} || $1/eg;
- }
+ $format = _translate_format($format, $strftime_trans_map, $time);
+
+ return $format unless $format =~ /%/; #if translate removes everything
return _strftime($format, $time->epoch, $time->[c_islocal]);
}
+my $strptime_trans_map = {
+ %{$trans_map_common},
+};
+
sub strptime {
my $time = shift;
my $string = shift;
my $format = @_ ? shift(@_) : "%a, %d %b %Y %H:%M:%S %Z";
- my @vals = _strptime($string, $format);
-# warn(sprintf("got vals: %d-%d-%d %d:%d:%d\n", reverse(@vals)));
- return scalar $time->_mktime(\@vals, (ref($time) ? $time->[c_islocal] : 0));
+ my $islocal = (ref($time) ? $time->[c_islocal] : 0);
+ my $locales = $LOCALE || &Time::Piece::_default_locale();
+ $format = _translate_format($format, $strptime_trans_map);
+ my @vals = _strptime($string, $format, $islocal, $locales);
+# warn(sprintf("got vals: %d-%d-%d %d:%d:%d\n", reverse(@vals[c_sec..c_year])));
+ return scalar $time->_mktime(\@vals, $islocal);
}
sub day_list {
@@ -488,6 +590,7 @@ sub day_list {
my @old = @DAY_LIST;
if (@_) {
@DAY_LIST = @_;
+ &Time::Piece::_default_locale();
}
return @old;
}
@@ -497,6 +600,7 @@ sub mon_list {
my @old = @MON_LIST;
if (@_) {
@MON_LIST = @_;
+ &Time::Piece::_default_locale();
}
return @old;
}
@@ -634,6 +738,132 @@ sub add_years {
$time->add_months($years * 12);
}
+sub truncate {
+ my ($time, %params) = @_;
+ return $time unless exists $params{to};
+ #if ($params{to} eq 'week') { return $time->_truncate_week; }
+ my %units = (
+ second => 0,
+ minute => 1,
+ hour => 2,
+ day => 3,
+ month => 4,
+ quarter => 5,
+ year => 5
+ );
+ my $to = $units{$params{to}};
+ croak "Invalid value of 'to' parameter: $params{to}" unless defined $to;
+ my $start_month = 0;
+ if ($params{to} eq 'quarter') {
+ $start_month = int( $time->_mon / 3 ) * 3;
+ }
+ my @down_to = (0, 0, 0, 1, $start_month, $time->year);
+ return $time->_mktime([@down_to[0..$to-1], @$time[$to..c_isdst]],
+ $time->[c_islocal]);
+}
+
+#Given a format and a translate map, replace format flags in
+#accordance with the logic from the translation map subroutines
+sub _translate_format {
+ my ( $format, $trans_map, $time ) = @_;
+
+ $format =~ s/%%/\e\e/g; #escape the escape
+ my $lexer = _build_format_lexer($format);
+
+ while(my $flag = $lexer->() ){
+ next unless exists $trans_map->{$flag};
+ $format = $trans_map->{$flag}($format, $time);
+ }
+
+ $format =~ s/\e\e/%%/g;
+ return $format;
+}
+
+sub _build_format_lexer {
+ my $format = shift();
+
+ #Higher Order Perl p.359 (or thereabouts)
+ return sub {
+ LABEL: {
+ return $1 if $format =~ m/\G%([a-zA-Z])/gc; #return single char flags
+
+ redo LABEL if $format =~ m/\G(.)/gc;
+ return; #return at empty string
+ }
+ };
+}
+
+sub use_locale {
+ #get locale month/day names from posix strftime (from Piece.xs)
+ my $locales = _get_localization();
+
+ $locales->{PM} ||= '';
+ $locales->{AM} ||= '';
+
+ $locales->{pm} = lc $locales->{PM};
+ $locales->{am} = lc $locales->{AM};
+ #should probably figure out how to get a
+ #region specific format for %c someday
+ $locales->{c_fmt} = '';
+
+ #Set globals. If anything is
+ #weird just use original
+ if( @{$locales->{weekday}} < 7 ){
+ @{$locales->{weekday}} = @FULLDAY_LIST;
+ }
+ else {
+ @FULLDAY_LIST = @{$locales->{weekday}};
+ }
+
+ if( @{$locales->{wday}} < 7 ){
+ @{$locales->{wday}} = @DAY_LIST;
+ }
+ else {
+ @DAY_LIST = @{$locales->{wday}};
+ }
+
+ if( @{$locales->{month}} < 12 ){
+ @{$locales->{month}} = @FULLMON_LIST;
+ }else {
+ @FULLMON_LIST = @{$locales->{month}};
+ }
+
+ if( @{$locales->{mon}} < 12 ){
+ @{$locales->{mon}} = @MON_LIST;
+ }
+ else{
+ @MON_LIST= @{$locales->{mon}};
+ }
+
+ $LOCALE = $locales;
+}
+
+#$Time::Piece::LOCALE is used by strptime and thus needs to be
+#in sync with what ever users change to via day_list() and mon_list().
+#Should probably deprecate this use of gloabl state, but oh well...
+sub _default_locale {
+ my $locales = {};
+
+ @{ $locales->{weekday} } = @FULLDAY_LIST;
+ @{ $locales->{wday} } = @DAY_LIST;
+ @{ $locales->{month} } = @FULLMON_LIST;
+ @{ $locales->{mon} } = @MON_LIST;
+ $locales->{alt_month} = $locales->{month};
+
+ $locales->{PM} = 'PM';
+ $locales->{AM} = 'AM';
+ $locales->{pm} = 'pm';
+ $locales->{am} = 'am';
+ $locales->{c_fmt} = '';
+
+ $LOCALE = $locales;
+}
+
+sub _locale {
+ return $LOCALE;
+}
+
+
1;
__END__
@@ -658,7 +888,7 @@ in perlfunc will still return what you expect.
The module actually implements most of an interface described by
Larry Wall on the perl5-porters mailing list here:
-http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2000-01/msg00241.html
+L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2000-01/msg00241.html>
=head1 USAGE
@@ -739,7 +969,8 @@ methods.
Both wdayname (day) and monname (month) allow passing in a list to use
to index the name of the days against. This can be useful if you need
to implement some form of localisation without actually installing or
-using locales.
+using locales. Note that this is a global override and will affect
+all Time::Piece instances.
my @days = qw( Dimanche Lundi Merdi Mercredi Jeudi Vendredi Samedi );
@@ -757,6 +988,9 @@ And locally for months:
print localtime->month(@months);
+Or to populate with your current system locale call:
+ Time::Piece->use_locale();
+
=head2 Date Calculations
It's possible to use simple addition and subtraction of objects:
@@ -783,8 +1017,8 @@ days, weeks and years in that delta, using the Time::Seconds API.
In addition to adding seconds, there are two APIs for adding months and
years:
- $t->add_months(6);
- $t->add_years(5);
+ $t = $t->add_months(6);
+ $t = $t->add_years(5);
The months and years can be negative for subtractions. Note that there
is some "strange" behaviour when adding and subtracting months at the
@@ -794,6 +1028,17 @@ subtracting a month from 2008-03-31 will not result in 2008-02-31 as this
is an impossible date. Instead you will get 2008-03-02. This appears to
be consistent with other date manipulation tools.
+=head2 Truncation
+
+Calling the C<truncate> method returns a copy of the object but with the
+time truncated to the start of the supplied unit.
+
+ $t = $t->truncate(to => 'day');
+
+This example will set the time to midnight on the same date which C<$t>
+had previously. Allowed values for the "to" parameter are: "year",
+"quarter", "month", "day", "hour", "minute" and "second".
+
=head2 Date Comparisons
Date comparisons are also possible, using the full suite of "<", ">",
@@ -818,7 +1063,34 @@ Outputs:
For more information see "man strptime", which should be on all unix
systems.
-Alternatively look here: http://www.unix.com/man-page/FreeBSD/3/strftime/
+Alternatively look here: L<http://www.unix.com/man-page/FreeBSD/3/strftime/>
+
+=head3 CAVEAT %A, %a, %B, %b, and friends
+
+Time::Piece::strptime by default can only parse American English date names.
+Meanwhile, Time::Piece->strftime() will return date names that use the current
+configured system locale. This means dates returned by strftime might not be
+able to be parsed by strptime. This is the default behavior and can be
+overridden by calling Time::Piece->use_locale(). This builds a list of the
+current locale's day and month names which strptime will use to parse with.
+Note this is a global override and will affect all Time::Piece instances.
+
+For instance with a German locale:
+
+ localtime->day_list();
+
+Returns
+
+ ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' )
+
+While:
+
+ Time::Piece->use_locale();
+ localtime->day_list();
+
+Returns
+
+ ( 'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' )
=head2 YYYY-MM-DDThh:mm:ss
@@ -886,7 +1158,7 @@ as Perl.
=head1 SEE ALSO
-The excellent Calendar FAQ at http://www.tondering.dk/claus/calendar.html
+The excellent Calendar FAQ at L<http://www.tondering.dk/claus/calendar.html>
=head1 BUGS
diff --git a/gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs b/gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs
index 3441bd799b8..8164cdd73a9 100644
--- a/gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs
+++ b/gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs
@@ -10,30 +10,6 @@ extern "C" {
}
#endif
-/* XXX struct tm on some systems (SunOS4/BSD) contains extra (non POSIX)
- * fields for which we don't have Configure support prior to Perl 5.8.0:
- * char *tm_zone; -- abbreviation of timezone name
- * long tm_gmtoff; -- offset from GMT in seconds
- * To workaround core dumps from the uninitialised tm_zone we get the
- * system to give us a reasonable struct to copy. This fix means that
- * strftime uses the tm_zone and tm_gmtoff values returned by
- * localtime(time()). That should give the desired result most of the
- * time. But probably not always!
- *
- * This is a vestigial workaround for Perls prior to 5.8.0. We now
- * rely on the initialization (still likely a workaround) in util.c.
- */
-#if !defined(PERL_VERSION) || PERL_VERSION < 8
-
-#if defined(HAS_GNULIBC)
-# ifndef STRUCT_TM_HASZONE
-# define STRUCT_TM_HASZONE
-# else
-# define USE_TM_GMTOFF
-# endif
-#endif
-
-#endif /* end of pre-5.8 */
#define DAYS_PER_YEAR 365
#define DAYS_PER_QYEAR (4*DAYS_PER_YEAR+1)
@@ -48,26 +24,7 @@ extern "C" {
#define YEAR_ADJUST (4*MONTH_TO_DAYS+1)
/* as used here, the algorithm leaves Sunday as day 1 unless we adjust it */
#define WEEKDAY_BIAS 6 /* (1+6)%7 makes Sunday 0 again */
-
-#if !defined(PERL_VERSION) || PERL_VERSION < 8
-
-#ifdef STRUCT_TM_HASZONE
-static void
-my_init_tm(struct tm *ptm) /* see mktime, strftime and asctime */
-{
- Time_t now;
- (void)time(&now);
- Copy(localtime(&now), ptm, 1, struct tm);
-}
-
-#else
-# define my_init_tm(ptm)
-#endif
-
-#else
-/* use core version from util.c in 5.8.0 and later */
-# define my_init_tm init_tm
-#endif
+#define TP_BUF_SIZE 160
#ifdef WIN32
@@ -154,7 +111,7 @@ fix_win32_tzenv(void)
crt_tz_env = "";
if (strcmp(perl_tz_env, crt_tz_env) != 0) {
STRLEN perl_tz_env_len = strlen(perl_tz_env);
- newenv = (char*)malloc((perl_tz_env_len + 4) * sizeof(char));
+ newenv = (char*)malloc(perl_tz_env_len + 4);
if (newenv != NULL) {
/* putenv with old MS CRTs will cause a double free internally if you delete
an env var with the CRT env that doesn't exist in Win32 env (perl %ENV only
@@ -369,81 +326,19 @@ static char * _strptime(pTHX_ const char *, const char *, struct tm *,
#define asizeof(a) (sizeof (a) / sizeof ((a)[0]))
struct lc_time_T {
- const char * mon[12];
- const char * month[12];
- const char * wday[7];
- const char * weekday[7];
- const char * X_fmt;
- const char * x_fmt;
- const char * c_fmt;
- const char * am;
- const char * pm;
- const char * date_fmt;
- const char * alt_month[12];
- const char * Ef_fmt;
- const char * EF_fmt;
+ char * mon[12];
+ char * month[12];
+ char * wday[7];
+ char * weekday[7];
+ char * am;
+ char * pm;
+ char * AM;
+ char * PM;
+ char * alt_month[12];
};
-struct lc_time_T _time_localebuf;
-int _time_using_locale;
-
-const struct lc_time_T _C_time_locale = {
- {
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
- }, {
- "January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December"
- }, {
- "Sun", "Mon", "Tue", "Wed",
- "Thu", "Fri", "Sat"
- }, {
- "Sunday", "Monday", "Tuesday", "Wednesday",
- "Thursday", "Friday", "Saturday"
- },
-
- /* X_fmt */
- "%H:%M:%S",
-
- /*
- ** x_fmt
- ** Since the C language standard calls for
- ** "date, using locale's date format," anything goes.
- ** Using just numbers (as here) makes Quakers happier;
- ** it's also compatible with SVR4.
- */
- "%m/%d/%y",
-
- /*
- ** c_fmt (ctime-compatible)
- ** Not used, just compatibility placeholder.
- */
- NULL,
-
- /* am */
- "AM",
-
- /* pm */
- "PM",
-
- /* date_fmt */
- "%a %Ef %X %Z %Y",
-
- {
- "January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December"
- },
-
- /* Ef_fmt
- ** To determine short months / day order
- */
- "%b %e",
-
- /* EF_fmt
- ** To determine long months / day order
- */
- "%B %e"
-};
+
+static struct lc_time_T _C_time_locale;
#define Locale (&_C_time_locale)
@@ -452,8 +347,8 @@ _strptime(pTHX_ const char *buf, const char *fmt, struct tm *tm, int *got_GMT)
{
char c;
const char *ptr;
- int i,
- len;
+ int i;
+ size_t len;
int Ealternative, Oalternative;
/* There seems to be a slightly improved version at
@@ -488,7 +383,7 @@ label:
break;
case '+':
- buf = _strptime(aTHX_ buf, Locale->date_fmt, tm, got_GMT);
+ buf = _strptime(aTHX_ buf, "%c", tm, got_GMT);
if (buf == 0)
return 0;
break;
@@ -512,7 +407,8 @@ label:
case 'c':
/* NOTE: c_fmt is intentionally ignored */
- buf = _strptime(aTHX_ buf, "%a %Ef %T %Y", tm, got_GMT);
+
+ buf = _strptime(aTHX_ buf, "%a %d %b %Y %I:%M:%S %p %Z", tm, got_GMT);
if (buf == 0)
return 0;
break;
@@ -536,10 +432,7 @@ label:
goto label;
case 'F':
- case 'f':
- if (!Ealternative)
- break;
- buf = _strptime(aTHX_ buf, (c == 'f') ? Locale->Ef_fmt : Locale->EF_fmt, tm, got_GMT);
+ buf = _strptime(aTHX_ buf, "%Y-%m-%d", tm, got_GMT);
if (buf == 0)
return 0;
break;
@@ -571,13 +464,13 @@ label:
break;
case 'X':
- buf = _strptime(aTHX_ buf, Locale->X_fmt, tm, got_GMT);
+ buf = _strptime(aTHX_ buf, "%I:%M:%S %p", tm, got_GMT);
if (buf == 0)
return 0;
break;
case 'x':
- buf = _strptime(aTHX_ buf, Locale->x_fmt, tm, got_GMT);
+ buf = _strptime(aTHX_ buf, "%a %d %b %Y", tm, got_GMT);
if (buf == 0)
return 0;
break;
@@ -664,12 +557,14 @@ label:
break;
case 'p':
+ case 'P':
/*
* XXX This is bogus if parsed before hour-related
* specifiers.
*/
len = strlen(Locale->am);
- if (strncasecmp(buf, Locale->am, len) == 0) {
+ if (strncasecmp(buf, Locale->am, len) == 0 ||
+ strncasecmp(buf, Locale->AM, len) == 0) {
if (tm->tm_hour > 12)
return 0;
if (tm->tm_hour == 12)
@@ -679,7 +574,8 @@ label:
}
len = strlen(Locale->pm);
- if (strncasecmp(buf, Locale->pm, len) == 0) {
+ if (strncasecmp(buf, Locale->pm, len) == 0 ||
+ strncasecmp(buf, Locale->PM, len) == 0) {
if (tm->tm_hour > 12)
return 0;
if (tm->tm_hour != 12)
@@ -715,6 +611,7 @@ label:
break;
case 'U':
+ case 'V':
case 'W':
/*
* XXX This is bogus, as we can not assume any valid
@@ -739,16 +636,20 @@ label:
ptr++;
break;
+ case 'u':
case 'w':
if (!isdigit((unsigned char)*buf))
return 0;
i = *buf - '0';
- if (i > 6)
+ if (i > 6 + (c == 'u'))
return 0;
+ if (i == 7)
+ i = 0;
tm->tm_wday = i;
+ buf++;
if (*buf != 0 && isspace((unsigned char)*buf))
while (*ptr != 0 && !isspace((unsigned char)*ptr))
ptr++;
@@ -856,8 +757,12 @@ label:
errno = sverrno;
buf = cp;
memset(&mytm, 0, sizeof(mytm));
- my_init_tm(&mytm); /* XXX workaround - see my_init_tm() above */
- mytm = *gmtime(&t);
+
+ if(*got_GMT == 1)
+ mytm = *localtime(&t);
+ else
+ mytm = *gmtime(&t);
+
tm->tm_sec = mytm.tm_sec;
tm->tm_min = mytm.tm_min;
tm->tm_hour = mytm.tm_hour;
@@ -906,12 +811,12 @@ label:
for (cp = buf; *cp && isupper((unsigned char)*cp); ++cp)
{/*empty*/}
if (cp - buf) {
- zonestr = (char *)malloc(cp - buf + 1);
+ zonestr = (char *)malloc((size_t) (cp - buf + 1));
if (!zonestr) {
errno = ENOMEM;
return 0;
}
- strncpy(zonestr, buf, cp - buf);
+ strncpy(zonestr, buf,(size_t) (cp - buf));
zonestr[cp - buf] = '\0';
my_tzset(aTHX);
if (0 == strcmp(zonestr, "GMT")) {
@@ -966,7 +871,7 @@ label:
!!!! You must mortalize whatever push_common_tm put on stack yourself to
avoid leaking !!!!
*/
-SV **
+static SV **
push_common_tm(pTHX_ SV ** SP, struct tm *mytm)
{
PUSHs(newSViv(mytm->tm_sec));
@@ -988,12 +893,12 @@ push_common_tm(pTHX_ SV ** SP, struct tm *mytm)
return -- none, after calling return_11part_tm, you must call "return;"
no exceptions
*/
-void
+static void
return_11part_tm(pTHX_ SV ** SP, struct tm *mytm)
{
my_mini_mktime(mytm);
- /* warn("tm: %d-%d-%d %d:%d:%d\n", mytm.tm_year, mytm.tm_mon, mytm.tm_mday, mytm.tm_hour, mytm.tm_min, mytm.tm_sec); */
+ /* warn("tm: %d-%d-%d %d:%d:%d\n", mytm->tm_year, mytm->tm_mon, mytm->tm_mday, mytm->tm_hour, mytm->tm_min, mytm->tm_sec); */
EXTEND(SP, 11);
SP = push_common_tm(aTHX_ SP, mytm);
/* epoch */
@@ -1013,6 +918,36 @@ return_11part_tm(pTHX_ SV ** SP, struct tm *mytm)
return;
}
+
+static void _populate_C_time_locale(pTHX_ HV* locales )
+{
+ AV* alt_names = (AV *) SvRV( *hv_fetch(locales, "alt_month", 9, 0) );
+ AV* long_names = (AV *) SvRV( *hv_fetch(locales, "month", 5, 0) );
+ AV* short_names = (AV *) SvRV( *hv_fetch(locales, "mon", 3, 0) );
+ int i;
+
+ for (i = 0; i < 1 + (int) av_len( long_names ); i++) {
+ Locale->alt_month[i] = SvPV_nolen( (SV *) *av_fetch(alt_names, i, 0) );
+ Locale->month[i] = SvPV_nolen( (SV *) *av_fetch(long_names, i, 0) );
+ Locale->mon[i] = SvPV_nolen( (SV *) *av_fetch(short_names, i, 0) );
+ }
+
+ long_names = (AV *) SvRV( *hv_fetch(locales, "weekday", 7, 0) );
+ short_names = (AV *) SvRV( *hv_fetch(locales, "wday", 4, 0) );
+
+ for (i = 0; i < 1 + (int) av_len( long_names ); i++) {
+ Locale->wday[i] = SvPV_nolen( (SV *) *av_fetch(short_names, i, 0) );
+ Locale->weekday[i] = SvPV_nolen( (SV *) *av_fetch(long_names, i, 0) );
+ }
+
+ Locale->am = SvPV_nolen( (SV *) *hv_fetch(locales, "am", 2, 0) );
+ Locale->pm = SvPV_nolen( (SV *) *hv_fetch(locales, "pm", 2, 0) );
+ Locale->AM = SvPV_nolen( (SV *) *hv_fetch(locales, "AM", 2, 0) );
+ Locale->PM = SvPV_nolen( (SV *) *hv_fetch(locales, "PM", 2, 0) );
+
+ return;
+}
+
MODULE = Time::Piece PACKAGE = Time::Piece
PROTOTYPES: ENABLE
@@ -1024,7 +959,7 @@ _strftime(fmt, epoch, islocal = 1)
int islocal
CODE:
{
- char tmpbuf[128];
+ char tmpbuf[TP_BUF_SIZE];
struct tm mytm;
size_t len;
@@ -1033,7 +968,7 @@ _strftime(fmt, epoch, islocal = 1)
else
mytm = *gmtime(&epoch);
- len = strftime(tmpbuf, sizeof tmpbuf, fmt, &mytm);
+ len = strftime(tmpbuf, TP_BUF_SIZE, fmt, &mytm);
/*
** The following is needed to handle to the situation where
** tmpbuf overflows. Basically we want to allocate a buffer
@@ -1048,14 +983,14 @@ _strftime(fmt, epoch, islocal = 1)
** If there is a better way to make it portable, go ahead by
** all means.
*/
- if ((len > 0 && len < sizeof(tmpbuf)) || (len == 0 && *fmt == '\0'))
+ if ((len > 0 && len < TP_BUF_SIZE) || (len == 0 && *fmt == '\0'))
ST(0) = sv_2mortal(newSVpv(tmpbuf, len));
else {
/* Possibly buf overflowed - try again with a bigger buf */
- int fmtlen = strlen(fmt);
- int bufsize = fmtlen + sizeof(tmpbuf);
+ size_t fmtlen = strlen(fmt);
+ size_t bufsize = fmtlen + TP_BUF_SIZE;
char* buf;
- int buflen;
+ size_t buflen;
New(0, buf, bufsize, char);
while (buf) {
@@ -1088,26 +1023,40 @@ _tzset()
return; /* skip XSUBPP's PUTBACK */
void
-_strptime ( string, format )
+_strptime ( string, format, got_GMT, SV* localization )
char * string
char * format
+ int got_GMT
PREINIT:
struct tm mytm;
- time_t t;
char * remainder;
- int got_GMT;
+ HV * locales;
PPCODE:
- t = 0;
- mytm = *gmtime(&t);
+ memset(&mytm, 0, sizeof(mytm));
+
+ /* sensible defaults. */
+ mytm.tm_mday = 1;
+ mytm.tm_year = 70;
+ mytm.tm_wday = 4;
mytm.tm_isdst = -1; /* -1 means we don't know */
- got_GMT = 0;
+
+ if( SvTYPE(SvRV( localization )) == SVt_PVHV ){
+ locales = (HV *)SvRV(localization);
+ }
+ else{
+ croak("_strptime requires a Hash Reference of locales");
+ }
+
+ /* populate our locale data struct (used for %[AaBbPp] flags) */
+ _populate_C_time_locale(aTHX_ locales );
remainder = (char *)_strptime(aTHX_ string, format, &mytm, &got_GMT);
if (remainder == NULL) {
croak("Error parsing time");
}
if (*remainder != '\0') {
- warn("garbage at end of string in strptime: %s", remainder);
+ warn("Garbage at end of string in strptime: %s", remainder);
+ warn("Perhaps a format flag did not match the actual input?");
}
return_11part_tm(aTHX_ SP, &mytm);
@@ -1143,13 +1092,13 @@ _crt_localtime(time_t sec)
else mytm = *localtime(&sec);
/* Need to get: $s,$n,$h,$d,$m,$y */
- EXTEND(SP, 9);
+ EXTEND(SP, 10);
SP = push_common_tm(aTHX_ SP, &mytm);
PUSHs(newSViv(mytm.tm_isdst));
PUTBACK;
{
SV ** endsp = SP; /* the SV * under SP needs to be mortaled */
- SP -= (9 - 1); /* subtract 0 based count of SVs to mortal */
+ SP -= (10 - 1); /* subtract 0 based count of SVs to mortal */
/* mortal target of SP, then increment before function call
so SP is already calculated before next comparison to not stall CPU */
do {
@@ -1157,3 +1106,61 @@ _crt_localtime(time_t sec)
} while(SP <= endsp);
}
return;
+
+SV*
+_get_localization()
+ INIT:
+ HV* locales = newHV();
+ AV* wdays = newAV();
+ AV* weekdays = newAV();
+ AV* mons = newAV();
+ AV* months = newAV();
+ SV** tmp;
+ size_t len;
+ char buf[TP_BUF_SIZE];
+ size_t i;
+ time_t t = 1325386800; /*1325386800 = Sun, 01 Jan 2012 03:00:00 GMT*/
+ struct tm mytm = *gmtime(&t);
+ CODE:
+
+ for(i = 0; i < 7; ++i){
+
+ len = strftime(buf, TP_BUF_SIZE, "%a", &mytm);
+ av_push(wdays, (SV *) newSVpvn(buf, len));
+
+ len = strftime(buf, TP_BUF_SIZE, "%A", &mytm);
+ av_push(weekdays, (SV *) newSVpvn(buf, len));
+
+ ++mytm.tm_wday;
+ }
+
+ for(i = 0; i < 12; ++i){
+
+ len = strftime(buf, TP_BUF_SIZE, "%b", &mytm);
+ av_push(mons, (SV *) newSVpvn(buf, len));
+
+ len = strftime(buf, TP_BUF_SIZE, "%B", &mytm);
+ av_push(months, (SV *) newSVpvn(buf, len));
+
+ ++mytm.tm_mon;
+ }
+
+ tmp = hv_store(locales, "wday", 4, newRV_noinc((SV *) wdays), 0);
+ tmp = hv_store(locales, "weekday", 7, newRV_noinc((SV *) weekdays), 0);
+ tmp = hv_store(locales, "mon", 3, newRV_noinc((SV *) mons), 0);
+ tmp = hv_store(locales, "month", 5, newRV_noinc((SV *) months), 0);
+ tmp = hv_store(locales, "alt_month", 9, newRV((SV *) months), 0);
+
+ len = strftime(buf, TP_BUF_SIZE, "%p", &mytm);
+ tmp = hv_store(locales, "AM", 2, newSVpvn(buf,len), 0);
+ mytm.tm_hour = 18;
+ len = strftime(buf, TP_BUF_SIZE, "%p", &mytm);
+ tmp = hv_store(locales, "PM", 2, newSVpvn(buf,len), 0);
+
+ if(tmp == NULL || !SvOK( (SV *) *tmp)){
+ croak("Failed to get localization.");
+ }
+
+ RETVAL = newRV_noinc((SV *)locales);
+ OUTPUT:
+ RETVAL
diff --git a/gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm b/gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm
index 965e3a6e502..3a56b74485f 100644
--- a/gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm
+++ b/gnu/usr.bin/perl/cpan/Time-Piece/Seconds.pm
@@ -1,7 +1,7 @@
package Time::Seconds;
use strict;
-our $VERSION = '1.31';
+our $VERSION = '1.3204';
use Exporter 5.57 'import';
@@ -145,6 +145,13 @@ sub years {
$s->days / 365.24225;
}
+sub _counted_objects {
+ my ($n, $counted) = @_;
+ my $number = sprintf("%d", $n); # does a "floor"
+ $counted .= 's' if 1 != $number;
+ return ($number, $counted);
+}
+
sub pretty {
my $s = shift;
my $str = "";
@@ -155,19 +162,19 @@ sub pretty {
if ($s >= ONE_MINUTE) {
if ($s >= ONE_HOUR) {
if ($s >= ONE_DAY) {
- my $days = sprintf("%d", $s->days); # does a "floor"
- $str .= $days . " days, ";
+ my ($days, $sd) = _counted_objects($s->days, "day");
+ $str .= "$days $sd, ";
$s -= ($days * ONE_DAY);
}
- my $hours = sprintf("%d", $s->hours);
- $str .= $hours . " hours, ";
+ my ($hours, $sh) = _counted_objects($s->hours, "hour");
+ $str .= "$hours $sh, ";
$s -= ($hours * ONE_HOUR);
}
- my $mins = sprintf("%d", $s->minutes);
- $str .= $mins . " minutes, ";
+ my ($mins, $sm) = _counted_objects($s->minutes, "minute");
+ $str .= "$mins $sm, ";
$s -= ($mins * ONE_MINUTE);
}
- $str .= $s->seconds . " seconds";
+ $str .= join " ", _counted_objects($s->seconds, "second");
return $str;
}
diff --git a/gnu/usr.bin/perl/cpan/Time-Piece/t/01base.t b/gnu/usr.bin/perl/cpan/Time-Piece/t/01base.t
index fb2045eb687..2068d835ad7 100755
--- a/gnu/usr.bin/perl/cpan/Time-Piece/t/01base.t
+++ b/gnu/usr.bin/perl/cpan/Time-Piece/t/01base.t
@@ -1,4 +1,4 @@
-use Test::More tests => 13;
+use Test::More tests => 15;
BEGIN { use_ok('Time::Piece'); }
@@ -37,3 +37,8 @@ isa_ok($l, 'Time::Piece', 'custom localtime via new again');
my $l_clone = Time::Piece->new($l);
isa_ok($l, 'Time::Piece', 'custom localtime via clone');
cmp_ok("$l_clone", 'eq', "$l", 'Clones match');
+
+#via clone with gmtime
+my $g_clone = Time::Piece->new($g);
+isa_ok($g, 'Time::Piece', 'custom gmtime via clone');
+cmp_ok("$g_clone", 'eq', "$g", 'Clones match');
diff --git a/gnu/usr.bin/perl/cpan/Time-Piece/t/02core.t b/gnu/usr.bin/perl/cpan/Time-Piece/t/02core.t
index 29330587d3b..8de1426176c 100755
--- a/gnu/usr.bin/perl/cpan/Time-Piece/t/02core.t
+++ b/gnu/usr.bin/perl/cpan/Time-Piece/t/02core.t
@@ -1,4 +1,4 @@
-use Test::More tests => 102;
+use Test::More tests => 100;
my $is_win32 = ($^O =~ /Win32/);
my $is_qnx = ($^O eq 'qnx');
@@ -18,9 +18,6 @@ is($t->mday, 29);
is($t->day_of_month, 29);
is($t->mon, 2);
is($t->_mon, 1);
-is($t->monname, 'Feb');
-is($t->month, 'Feb');
-is($t->fullmonth, 'February');
is($t->year, 2000);
is($t->_year, 100);
is($t->yy, '00');
@@ -28,9 +25,6 @@ is($t->yy, '00');
cmp_ok($t->wday, '==', 3);
cmp_ok($t->_wday, '==', 2);
cmp_ok($t->day_of_week, '==', 2);
-cmp_ok($t->wdayname, 'eq', 'Tue');
-cmp_ok($t->day, 'eq', 'Tue');
-cmp_ok($t->fullday, 'eq', 'Tuesday');
cmp_ok($t->yday, '==', 59);
cmp_ok($t->day_of_year, '==', 59);
@@ -76,15 +70,8 @@ cmp_ok($t->week, '==', 9);
# 20 or 19, is fun, too..as far as I can read SUSv2 it should be 20.)
cmp_ok($t->strftime('%d'), '==', 29);
-SKIP: {
- skip "can't strftime %D, %R, %T or %e on Win32", 1 if $is_win32;
- cmp_ok($t->strftime('%D'), 'eq', '02/29/00'); # Yech!
-}
-SKIP:{
- skip "can't strftime %D, %R, %T or %e on Win32", 1 if $is_win32;
- skip "can't strftime %e on QNX", 1 if $is_qnx;
- cmp_ok($t->strftime('%e'), 'eq', '29'); # should test with < 10
-}
+cmp_ok($t->strftime('%D'), 'eq', '02/29/00'); # Yech!
+cmp_ok($t->strftime('%e'), 'eq', '29'); # should test with < 10
# %h is locale-dependent
cmp_ok($t->strftime('%H'), 'eq', '12'); # should test with < 10
@@ -96,17 +83,11 @@ cmp_ok($t->strftime('%M'), 'eq', '34'); # should test with < 10
# %p, %P, and %r are not widely implemented,
# and are possibly unportable (am or AM or a.m., and so on)
-SKIP: {
- skip "can't strftime %R on Win32 or QNX", 1 if $is_win32 or $is_qnx;
- cmp_ok($t->strftime('%R'), 'eq', '12:34'); # should test with > 12
-}
+cmp_ok($t->strftime('%R'), 'eq', '12:34'); # should test with > 12
ok($t->strftime('%S') eq '56'); # should test with < 10
-SKIP: {
- skip "can't strftime %T on Win32", 1 if $is_win32;
- cmp_ok($t->strftime('%T'), 'eq', '12:34:56'); # < 12 and > 12
-}
+cmp_ok($t->strftime('%T'), 'eq', '12:34:56'); # < 12 and > 12
# There are bugs in the implementation of %u in many platforms.
# (e.g. Linux seems to think, despite the man page, that %u
@@ -115,7 +96,7 @@ SKIP: {
cmp_ok($t->strftime('%U'), 'eq', '09'); # Sun cmp Mon
SKIP: {
- skip "can't strftime %V on Win32 or QNX or VOS", 1 if $is_win32 or $is_qnx or $is_vos;
+ skip "can't strftime %V on QNX or VOS", 1 if $is_qnx or $is_vos;
# is this test really broken on Mac OS? -- rjbs, 2006-02-08
cmp_ok($t->strftime('%V'), 'eq', '09'); # Sun cmp Mon
}
@@ -143,6 +124,7 @@ cmp_ok($t->date_separator, 'eq', '-');
$t->date_separator("/");
cmp_ok($t->date_separator, 'eq', '/');
+cmp_ok(Time::Piece::date_separator(), 'eq', '/');
cmp_ok($t->ymd, 'eq', '2000/02/29');
$t->date_separator("-");
@@ -151,6 +133,7 @@ cmp_ok($t->hms("."), 'eq', '12.34.56');
$t->time_separator(".");
cmp_ok($t->time_separator, 'eq', '.');
+cmp_ok(Time::Piece::time_separator(), 'eq', '.');
cmp_ok($t->hms, 'eq', '12.34.56');
$t->time_separator(":");
@@ -168,7 +151,8 @@ cmp_ok($t->day, 'eq', "Merdi");
$t->day_list(@days);
-cmp_ok($t->day, 'eq', "Tue");
+my @nmdays = Time::Piece::day_list();
+is_deeply (\@nmdays, \@days);
my @months = $t->mon_list();
@@ -184,6 +168,8 @@ cmp_ok($t->month, 'eq', "februari");
$t->mon_list(@months);
cmp_ok($t->month, 'eq', "Feb");
+my @nmmonths = Time::Piece::mon_list();
+is_deeply (\@nmmonths, \@months);
cmp_ok(
$t->datetime(date => '/', T => ' ', time => '-'),
@@ -233,20 +219,16 @@ cmp_ok(
951827696
);
-#from Time::Piece::Plus
-#test reverse parsing
-my $now = localtime();
-my $strp_format = "%Y-%m-%d %H:%M:%S";
-
-my $now_str = $now->strftime($strp_format);
-
-my $now_parsed = $now->strptime($now_str, $strp_format);
-
-cmp_ok($now_parsed->epoch, '==', $now->epoch);
-cmp_ok($now_parsed->strftime($strp_format), 'eq', $now->strftime($strp_format));
-cmp_ok($now_parsed->strftime(), 'eq', $now->strftime());
-
my $s = Time::Seconds->new(-691050);
is($s->pretty, 'minus 7 days, 23 hours, 57 minutes, 30 seconds');
+$s = Time::Seconds->new(-90061);
+is($s->pretty, 'minus 1 day, 1 hour, 1 minute, 1 second');
+
+$s = Time::Seconds->new(10);
+is($s->pretty, '10 seconds');
+$s = Time::Seconds->new(130);
+is($s->pretty, '2 minutes, 10 seconds');
+$s = Time::Seconds->new(7330);
+is($s->pretty, '2 hours, 2 minutes, 10 seconds', "Format correct");
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.pm
index 493c281a837..ac1cd03f604 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.pm
@@ -17,17 +17,16 @@ use File::Spec;
no warnings 'utf8';
-our $VERSION = '1.14';
+our $VERSION = '1.25';
our $PACKAGE = __PACKAGE__;
### begin XS only ###
-require DynaLoader;
-our @ISA = qw(DynaLoader);
-bootstrap Unicode::Collate $VERSION;
+use XSLoader ();
+XSLoader::load('Unicode::Collate', $VERSION);
### end XS only ###
my @Path = qw(Unicode Collate);
-my $KeyFile = "allkeys.txt";
+my $KeyFile = 'allkeys.txt';
# Perl's boolean
use constant TRUE => 1;
@@ -89,9 +88,9 @@ my $DefaultRearrange = [ 0x0E40..0x0E44, 0x0EC0..0x0EC4 ];
my $HighestVCE = pack(VCE_TEMPLATE, 0, 0xFFFE, 0x20, 0x5, 0xFFFF);
my $minimalVCE = pack(VCE_TEMPLATE, 0, 1, 0x20, 0x5, 0xFFFE);
-sub UCA_Version { "30" }
+sub UCA_Version { '34' }
-sub Base_Unicode_Version { "7.0.0" }
+sub Base_Unicode_Version { '9.0.0' }
######
@@ -189,11 +188,14 @@ my %DerivCode = (
26 => \&_derivCE_24, # 26 == 24
28 => \&_derivCE_24, # 28 == 24
30 => \&_derivCE_24, # 30 == 24
+ 32 => \&_derivCE_32,
+ 34 => \&_derivCE_34,
+ 36 => \&_derivCE_36,
);
sub checkCollator {
my $self = shift;
- _checkLevel($self->{level}, "level");
+ _checkLevel($self->{level}, 'level');
$self->{derivCode} = $DerivCode{ $self->{UCA_Version} }
or croak "Illegal UCA version (passed $self->{UCA_Version}).";
@@ -207,13 +209,13 @@ sub checkCollator {
if (! defined $self->{backwards}) {
$self->{backwardsFlag} = 0;
} elsif (! ref $self->{backwards}) {
- _checkLevel($self->{backwards}, "backwards");
+ _checkLevel($self->{backwards}, 'backwards');
$self->{backwardsFlag} = 1 << $self->{backwards};
} else {
my %level;
$self->{backwardsFlag} = 0;
for my $b (@{ $self->{backwards} }) {
- _checkLevel($b, "backwards");
+ _checkLevel($b, 'backwards');
$level{$b} = 1;
}
for my $v (sort keys %level) {
@@ -438,13 +440,17 @@ sub parseEntry
# if and only if "all" CEs are [.0000.0000.0000].
}
+ # mapping: be an array ref or not exists (any false value is disallowed)
$self->{mapping}{$entry} = $is_L3_ignorable ? [] : \@key;
+ # maxlength: be more than 1 or not exists (any false value is disallowed)
if (@uv > 1) {
if (!$self->{maxlength}{$uv[0]} || $self->{maxlength}{$uv[0]} < @uv) {
$self->{maxlength}{$uv[0]} = @uv;
}
}
+
+ # contraction: be 1 or not exists (any false value is disallowed)
while (@uv > 2) {
pop @uv;
my $fake_entry = join(CODE_SEP, @uv); # in JCPS
@@ -513,7 +519,7 @@ sub splitEnt
if ($vers <= 20 && _isIllegal($src[$i])) {
$src[$i] = undef;
} elsif ($ver9) {
- $src[$i] = undef if $map->{ $src[$i] }
+ $src[$i] = undef if exists $map->{ $src[$i] }
? @{ $map->{ $src[$i] } } == 0
: $uXS && _ignorable_simple($src[$i]); ### XS only
}
@@ -533,7 +539,7 @@ sub splitEnt
my $i_orig = $i;
# find contraction
- if ($max->{$jcps}) {
+ if (exists $max->{$jcps}) {
my $temp_jcps = $jcps;
my $jcpsLen = 1;
my $maxLen = $max->{$jcps};
@@ -542,7 +548,7 @@ sub splitEnt
next if ! defined $src[$p];
$temp_jcps .= CODE_SEP . $src[$p];
$jcpsLen++;
- if ($map->{$temp_jcps}) {
+ if (exists $map->{$temp_jcps}) {
$jcps = $temp_jcps;
$i = $p;
}
@@ -569,7 +575,7 @@ sub splitEnt
last unless $curCC;
my $tail = CODE_SEP . $src[$p];
- if ($preCC != $curCC && $map->{$jcps.$tail}) {
+ if ($preCC != $curCC && exists $map->{$jcps.$tail}) {
$jcps .= $tail;
push @out, $p;
} else {
@@ -578,8 +584,9 @@ sub splitEnt
next if !$long;
- if ($preCC_uc != $curCC && ($map->{$jcps_uc.$tail} ||
- $cont->{$jcps_uc.$tail})) {
+ if ($preCC_uc != $curCC &&
+ (exists $map->{$jcps_uc.$tail} ||
+ exists $cont->{$jcps_uc.$tail})) {
$jcps_uc .= $tail;
push @out_uc, $p;
} else {
@@ -587,7 +594,7 @@ sub splitEnt
}
}
- if (@out_uc && $map->{$jcps_uc}) {
+ if (@out_uc && exists $map->{$jcps_uc}) {
$jcps = $jcps_uc;
$src[$_] = undef for @out_uc;
} else {
@@ -597,7 +604,7 @@ sub splitEnt
}
# skip completely ignorable
- if ($map->{$jcps} ? @{ $map->{$jcps} } == 0 :
+ if (exists $map->{$jcps} ? @{ $map->{$jcps} } == 0 :
$uXS && $jcps !~ /;/ && _ignorable_simple($jcps)) { ### XS only
if ($wLen && @buf) {
$buf[-1][2] = $i + 1;
@@ -646,7 +653,7 @@ sub getWt
$u = 0xFFFD if $u !~ /;/ && 0x10FFFF < $u && !$out;
my @ce;
- if ($map->{$u}) {
+ if (exists $map->{$u}) {
@ce = @{ $map->{$u} }; # $u may be a contraction
### begin XS only ###
} elsif ($uXS && _exists_simple($u)) {
@@ -664,27 +671,27 @@ sub getWt
if (@decH == 2) {
my $contract = join(CODE_SEP, @decH);
- @decH = ($contract) if $map->{$contract};
+ @decH = ($contract) if exists $map->{$contract};
} else { # must be <@decH == 3>
- if ($max->{$decH[0]}) {
+ if (exists $max->{$decH[0]}) {
my $contract = join(CODE_SEP, @decH);
- if ($map->{$contract}) {
+ if (exists $map->{$contract}) {
@decH = ($contract);
} else {
$contract = join(CODE_SEP, @decH[0,1]);
- $map->{$contract} and @decH = ($contract, $decH[2]);
+ exists $map->{$contract} and @decH = ($contract, $decH[2]);
}
# even if V's ignorable, LT contraction is not supported.
# If such a situation were required, NFD should be used.
}
- if (@decH == 3 && $max->{$decH[1]}) {
+ if (@decH == 3 && exists $max->{$decH[1]}) {
my $contract = join(CODE_SEP, @decH[1,2]);
- $map->{$contract} and @decH = ($decH[0], $contract);
+ exists $map->{$contract} and @decH = ($decH[0], $contract);
}
}
@ce = map({
- $map->{$_} ? @{ $map->{$_} } :
+ exists $map->{$_} ? @{ $map->{$_} } :
$uXS && _exists_simple($_) ? _fetch_simple($_) : ### XS only
$der->($_);
} @decH);
@@ -1097,7 +1104,7 @@ If the revision (previously "tracking version") number of UCA is given,
behavior of that revision is emulated on collating.
If omitted, the return value of C<UCA_Version()> is used.
-The following revisions are supported. The default is 30.
+The following revisions are supported. The default is 34.
UCA Unicode Standard DUCET (@version)
-------------------------------------------------------
@@ -1113,8 +1120,11 @@ The following revisions are supported. The default is 30.
26 6.2.0 6.2.0 (6.2.0)
28 6.3.0 6.3.0 (6.3.0)
30 7.0.0 7.0.0 (7.0.0)
+ 32 8.0.0 8.0.0 (8.0.0)
+ 34 9.0.0 9.0.0 (9.0.0)
+ 36 10.0.0 10.0.0(10.0.0)
-* See below C<long_contraction> with C<UCA_Version> 22 and 24.
+* See below for C<long_contraction> with C<UCA_Version> 22 and 24.
* Noncharacters (e.g. U+FFFF) are not ignored, and can be overridden
since C<UCA_Version> 22.
@@ -1229,7 +1239,7 @@ table beforehand.
=item highestFFFF
--- see 5.14 Collation Elements, UTS #35.
+-- see 2.4 Tailored noncharacter weights, UTS #35 (LDML) Part 5: Collation.
If the parameter is made true, C<U+FFFF> has a highest primary weight.
When a boolean of C<$coll-E<gt>ge($str, "abc")> and
@@ -1373,7 +1383,7 @@ contraction C<0FB2 0F71> prohibits C<0FB2 0F71 0F80> from being detected.
=item minimalFFFE
--- see 5.14 Collation Elements, UTS #35.
+-- see 1.1.1 U+FFFE, UTS #35 (LDML) Part 5: Collation.
If the parameter is made true, C<U+FFFE> has a minimal primary weight.
The comparison between C<"$a1\x{FFFE}$a2"> and C<"$b1\x{FFFE}$b2">
@@ -1451,12 +1461,16 @@ those in the CJK Unified Ideographs Extension A etc.
U+4E00..U+9FBB if UCA_Version is 14 or 16.
U+4E00..U+9FC3 if UCA_Version is 18.
U+4E00..U+9FCB if UCA_Version is 20 or 22.
- U+4E00..U+9FCC if UCA_Version is 24 or later.
+ U+4E00..U+9FCC if UCA_Version is 24 to 30.
+ U+4E00..U+9FD5 if UCA_Version is 32 or 34.
+ U+4E00..U+9FEA if UCA_Version is 36.
In the CJK Unified Ideographs Extension blocks:
Ext.A (U+3400..U+4DB5) and Ext.B (U+20000..U+2A6D6) in any UCA_Version.
Ext.C (U+2A700..U+2B734) if UCA_Version is 20 or later.
Ext.D (U+2B740..U+2B81D) if UCA_Version is 22 or later.
+ Ext.E (U+2B820..U+2CEA1) if UCA_Version is 32 or later.
+ Ext.F (U+2CEB0..U+2EBE0) if UCA_Version is 36.
Through C<overrideCJK>, ordering of CJK unified ideographs (including
extensions) can be overridden.
@@ -1648,8 +1662,7 @@ rewriting lines on reading an unmodified table every time.
=item suppress
--- see suppress contractions in 5.14.11 Special-Purpose Commands,
-UTS #35 (LDML).
+-- see 3.12 Special-Purpose Commands, UTS #35 (LDML) Part 5: Collation.
Contractions beginning with the specified characters are suppressed,
even if those contractions are defined in C<table>.
@@ -1660,7 +1673,7 @@ An example for Russian and some languages using the Cyrillic script:
where 0x0400 stands for C<U+0400>, CYRILLIC CAPITAL LETTER IE WITH GRAVE.
-B<NOTE>: Contractions via C<entry> are not be suppressed.
+B<NOTE>: Contractions via C<entry> will not be suppressed.
=item table
@@ -1707,7 +1720,7 @@ specified as a comment (following C<#>) on each line.
=item undefName
--- see 6.3.4 Reducing the Repertoire, UTS #10.
+-- see 6.3.3 Reducing the Repertoire, UTS #10.
Undefines the collation element as if it were unassigned in the C<table>.
This reduces the size of the table.
@@ -2034,7 +2047,8 @@ The most preferable one is "The Default Unicode Collation Element Table"
http://www.unicode.org/Public/UCA/
- http://www.unicode.org/Public/UCA/latest/allkeys.txt (latest version)
+ http://www.unicode.org/Public/UCA/latest/allkeys.txt
+ (latest version)
If DUCET is not installed, it is recommended to copy the file
from http://www.unicode.org/Public/UCA/latest/allkeys.txt
@@ -2078,16 +2092,16 @@ B<Unicode::Normalize is required to try The Conformance Test.>
=head1 AUTHOR, COPYRIGHT AND LICENSE
The Unicode::Collate module for perl was written by SADAHIRO Tomoyuki,
-<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2014,
+<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2017,
SADAHIRO Tomoyuki. Japan. All rights reserved.
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
The file Unicode/Collate/allkeys.txt was copied verbatim
-from L<http://www.unicode.org/Public/UCA/6.3.0/allkeys.txt>.
-For this file, Copyright (c) 2001-2012 Unicode, Inc.
-Distributed under the Terms of Use in L<http://www.unicode.org/copyright.html>.
+from L<http://www.unicode.org/Public/UCA/9.0.0/allkeys.txt>.
+For this file, Copyright (c) 2016 Unicode, Inc.; distributed
+under the Terms of Use in L<http://www.unicode.org/terms_of_use.html>
=head1 SEE ALSO
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.xs b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.xs
index 6adcbeb500d..ac57b47971f 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.xs
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate.xs
@@ -52,10 +52,13 @@
#define CJK_UidIni (0x4E00)
#define CJK_UidFin (0x9FA5)
-#define CJK_UidF41 (0x9FBB)
-#define CJK_UidF51 (0x9FC3)
-#define CJK_UidF52 (0x9FCB)
-#define CJK_UidF61 (0x9FCC)
+#define CJK_UidF41 (0x9FBB) /* Unicode 4.1 */
+#define CJK_UidF51 (0x9FC3) /* Unicode 5.1 */
+#define CJK_UidF52 (0x9FCB) /* Unicode 5.2 */
+#define CJK_UidF61 (0x9FCC) /* Unicode 6.1 */
+#define CJK_UidF80 (0x9FD5) /* Unicode 8.0 */
+#define CJK_UidF100 (0x9FEA) /* Unicode 10.0 */
+
#define CJK_ExtAIni (0x3400) /* Unicode 3.0 */
#define CJK_ExtAFin (0x4DB5) /* Unicode 3.0 */
#define CJK_ExtBIni (0x20000) /* Unicode 3.1 */
@@ -64,6 +67,10 @@
#define CJK_ExtCFin (0x2B734) /* Unicode 5.2 */
#define CJK_ExtDIni (0x2B740) /* Unicode 6.0 */
#define CJK_ExtDFin (0x2B81D) /* Unicode 6.0 */
+#define CJK_ExtEIni (0x2B820) /* Unicode 8.0 */
+#define CJK_ExtEFin (0x2CEA1) /* Unicode 8.0 */
+#define CJK_ExtFIni (0x2CEB0) /* Unicode 10.0 */
+#define CJK_ExtFFin (0x2EBE0) /* Unicode 10.0 */
#define CJK_CompIni (0xFA0E)
#define CJK_CompFin (0xFA29)
@@ -71,6 +78,13 @@ static const STDCHAR UnifiedCompat[] = {
1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,1
}; /* E F 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 */
+#define TangIdeoIni (0x17000) /* Unicode 9.0 */
+#define TangIdeoFin (0x187EC) /* Unicode 9.0 */
+#define TangCompIni (0x18800) /* Unicode 9.0 */
+#define TangCompFin (0x18AF2) /* Unicode 9.0 */
+#define NushuIni (0x1B170) /* Unicode 10.0 */
+#define NushuFin (0x1B2FB) /* Unicode 10.0 */
+
#define codeRange(bcode, ecode) ((bcode) <= code && code <= (ecode))
MODULE = Unicode::Collate PACKAGE = Unicode::Collate
@@ -266,23 +280,38 @@ _derivCE_9 (code)
_derivCE_20 = 3
_derivCE_22 = 4
_derivCE_24 = 5
+ _derivCE_32 = 6
+ _derivCE_34 = 7
+ _derivCE_36 = 8
PREINIT:
UV base, aaaa, bbbb;
U8 a[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
U8 b[VCE_Length + 1] = "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
- bool basic_unified = 0;
+ bool basic_unified = 0, tangut = 0, nushu = 0;
PPCODE:
- if (CJK_UidIni <= code) {
+ if (codeRange(CJK_UidIni, CJK_CompFin)) {
if (codeRange(CJK_CompIni, CJK_CompFin))
basic_unified = (bool)UnifiedCompat[code - CJK_CompIni];
else
- basic_unified = (ix >= 5 ? (code <= CJK_UidF61) :
+ basic_unified = (ix >= 8 ? (code <= CJK_UidF100) :
+ ix >= 6 ? (code <= CJK_UidF80) :
+ ix == 5 ? (code <= CJK_UidF61) :
ix >= 3 ? (code <= CJK_UidF52) :
ix == 2 ? (code <= CJK_UidF51) :
ix == 1 ? (code <= CJK_UidF41) :
(code <= CJK_UidFin));
+ } else {
+ if (ix >= 7)
+ tangut = (codeRange(TangIdeoIni, TangIdeoFin) ||
+ codeRange(TangCompIni, TangCompFin));
+ if (ix >= 8)
+ nushu = (codeRange(NushuIni, NushuFin));
}
- base = (basic_unified)
+ base = tangut
+ ? 0xFB00 :
+ nushu
+ ? 0xFB01 :
+ basic_unified
? 0xFB40 : /* CJK */
((codeRange(CJK_ExtAIni, CJK_ExtAFin))
||
@@ -290,11 +319,16 @@ _derivCE_9 (code)
||
(ix >= 3 && codeRange(CJK_ExtCIni, CJK_ExtCFin))
||
- (ix >= 4 && codeRange(CJK_ExtDIni, CJK_ExtDFin)))
+ (ix >= 4 && codeRange(CJK_ExtDIni, CJK_ExtDFin))
+ ||
+ (ix >= 6 && codeRange(CJK_ExtEIni, CJK_ExtEFin))
+ ||
+ (ix >= 8 && codeRange(CJK_ExtFIni, CJK_ExtFFin)))
? 0xFB80 /* CJK ext. */
: 0xFBC0; /* others */
- aaaa = base + (code >> 15);
- bbbb = (code & 0x7FFF) | 0x8000;
+ aaaa = tangut || nushu ? base : base + (code >> 15);
+ bbbb = (tangut ? (code - TangIdeoIni) :
+ nushu ? (code - NushuIni) : (code & 0x7FFF)) | 0x8000;
a[1] = (U8)(aaaa >> 8);
a[2] = (U8)(aaaa & 0xFF);
b[1] = (U8)(bbbb >> 8);
@@ -355,7 +389,9 @@ _isUIdeo (code, uca_vers)
if (codeRange(CJK_CompIni, CJK_CompFin))
basic_unified = (bool)UnifiedCompat[code - CJK_CompIni];
else
- basic_unified = (uca_vers >= 24 ? (code <= CJK_UidF61) :
+ basic_unified = (uca_vers >= 36 ? (code <= CJK_UidF100) :
+ uca_vers >= 32 ? (code <= CJK_UidF80) :
+ uca_vers >= 24 ? (code <= CJK_UidF61) :
uca_vers >= 20 ? (code <= CJK_UidF52) :
uca_vers >= 18 ? (code <= CJK_UidF51) :
uca_vers >= 14 ? (code <= CJK_UidF41) :
@@ -371,6 +407,10 @@ _isUIdeo (code, uca_vers)
(uca_vers >= 20 && codeRange(CJK_ExtCIni, CJK_ExtCFin))
||
(uca_vers >= 22 && codeRange(CJK_ExtDIni, CJK_ExtDFin))
+ ||
+ (uca_vers >= 32 && codeRange(CJK_ExtEIni, CJK_ExtEFin))
+ ||
+ (uca_vers >= 36 && codeRange(CJK_ExtFIni, CJK_ExtFFin))
);
OUTPUT:
RETVAL
@@ -539,6 +579,7 @@ varCE (self, vce)
U8 *a, *v, *d;
STRLEN alen, vlen;
bool ig_l2;
+ IV uca_vers;
UV totwt;
CODE:
if (SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV)
@@ -583,8 +624,18 @@ varCE (self, vce)
d[7] = d[1]; /* wt level 1 to 4 */
d[8] = d[2];
} else {
- d[7] = (U8)(Shift4Wt >> 8);
- d[8] = (U8)(Shift4Wt & 0xFF);
+ svp = hv_fetch(selfHV, "UCA_Version", 11, FALSE);
+ if (!svp)
+ croak("Panic: no $self->{UCA_Version} in varCE");
+ uca_vers = SvIV(*svp);
+
+ /* completely ignorable or the second derived CE */
+ if (uca_vers >= 36 && d[3] + d[4] + d[5] + d[6] == 0) {
+ d[7] = d[8] = '\0';
+ } else {
+ d[7] = (U8)(Shift4Wt >> 8);
+ d[8] = (U8)(Shift4Wt & 0xFF);
+ }
}
} else { /* shift-trimmed or completely ignorable */
d[7] = d[8] = '\0';
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Big5.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Big5.pm
index 63999976230..5fcd9c00053 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Big5.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Big5.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.25';
my %u2p;
my $wt = 0x8000;
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/GB2312.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/GB2312.pm
index f33eb693fe6..69626649d61 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/GB2312.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/GB2312.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.25';
my %u2p;
my $wt = 0x8000;
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm
index 492496b652f..b36750136b4 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/JISX0208.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.25';
my %u2p;
my $wt = 0x8000;
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Korean.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Korean.pm
index 04ef6763f85..6905f20614d 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Korean.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Korean.pm
@@ -4,21 +4,21 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.25';
my %jamo2prim = (
- '1100', 0x376F, '1101', 0x3770, '1102', 0x3771, '1103', 0x3772,
- '1105', 0x3774, '1106', 0x3775, '1107', 0x3776, '1109', 0x3778,
- '110A', 0x3779, '110B', 0x377A, '110C', 0x377B, '110E', 0x377D,
- '110F', 0x377E, '1110', 0x377F, '1111', 0x3780, '1112', 0x3781,
- '1161', 0x37ED, '1162', 0x37EE, '1163', 0x37EF, '1165', 0x37F1,
- '1166', 0x37F2, '1167', 0x37F3, '1168', 0x37F4, '1169', 0x37F5,
- '116A', 0x37F6, '116B', 0x37F7, '116C', 0x37F8, '116D', 0x37F9,
- '116E', 0x37FA, '116F', 0x37FB, '1170', 0x37FC, '1171', 0x37FD,
- '1172', 0x37FE, '1173', 0x37FF, '1174', 0x3800, '1175', 0x3801,
- '11A8', 0x384B, '11AB', 0x384E, '11AF', 0x3852, '11B7', 0x385A,
- '11B8', 0x385B, '11BC', 0x385F, '11BD', 0x3860,
-); # for DUCET v7.0.0
+ '1100', 0x3BF5, '1101', 0x3BF6, '1102', 0x3BF7, '1103', 0x3BF8,
+ '1105', 0x3BFA, '1106', 0x3BFB, '1107', 0x3BFC, '1109', 0x3BFE,
+ '110A', 0x3BFF, '110B', 0x3C00, '110C', 0x3C01, '110E', 0x3C03,
+ '110F', 0x3C04, '1110', 0x3C05, '1111', 0x3C06, '1112', 0x3C07,
+ '1161', 0x3C73, '1162', 0x3C74, '1163', 0x3C75, '1165', 0x3C77,
+ '1166', 0x3C78, '1167', 0x3C79, '1168', 0x3C7A, '1169', 0x3C7B,
+ '116A', 0x3C7C, '116B', 0x3C7D, '116C', 0x3C7E, '116D', 0x3C7F,
+ '116E', 0x3C80, '116F', 0x3C81, '1170', 0x3C82, '1171', 0x3C83,
+ '1172', 0x3C84, '1173', 0x3C85, '1174', 0x3C86, '1175', 0x3C87,
+ '11A8', 0x3CD1, '11AB', 0x3CD4, '11AF', 0x3CD8, '11B7', 0x3CE0,
+ '11B8', 0x3CE1, '11BC', 0x3CE5, '11BD', 0x3CE6,
+); # for DUCET v9.0.0
my(%u2e, $prim, $wt);
while (<DATA>) {
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm
index 5abe6505b79..483c1e90588 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Pinyin.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.25';
my %u2p;
my $wt = 0x8000;
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Stroke.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Stroke.pm
index e40e69106ed..3b6684b4917 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Stroke.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Stroke.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.25';
my %u2p;
my $wt = 0x8000;
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
index 13e4dc04bdb..d21cb8923b3 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.25';
my %u2p;
my $wt = 0x8000;
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale.pm b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale.pm
index f76abe579ab..1182a8617c7 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale.pm
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale.pm
@@ -5,15 +5,15 @@ use warnings;
use Carp;
use base qw(Unicode::Collate);
-our $VERSION = '1.14';
+our $VERSION = '1.25';
my $PL_EXT = '.pl';
my %LocaleFile = map { ($_, $_) } qw(
- af ar as az be bg bn ca cs cy da ee eo es et fa fi fil fo fr
- gu ha haw hi hr hu hy ig is ja kk kl kn ko kok ln lt lv
- mk ml mr mt nb nn nso om or pa pl ro ru sa se si sk sl sq
- sr sv ta te th tn to tr uk ur vi wae wo yo zh
+ af ar as az be bn ca cs cy da dsb ee eo es et fa fi fil fo gu
+ ha haw he hi hr hu hy ig is ja kk kl kn ko kok lkt ln lt lv
+ mk ml mr mt nb nn nso om or pa pl ro sa se si sk sl sq sr sv
+ ta te th tn to tr uk ur vi vo wae wo yo zh
);
$LocaleFile{'default'} = '';
# aliases
@@ -22,10 +22,13 @@ my %LocaleFile = map { ($_, $_) } qw(
$LocaleFile{'sr_Latn'} = 'hr';
# short file names
$LocaleFile{'de__phonebook'} = 'de_phone';
+ $LocaleFile{'de_AT_phonebook'} = 'de_at_ph';
$LocaleFile{'es__traditional'} = 'es_trad';
+ $LocaleFile{'fr_CA'} = 'fr_ca';
$LocaleFile{'fi__phonebook'} = 'fi_phone';
$LocaleFile{'si__dictionary'} = 'si_dict';
$LocaleFile{'sv__reformed'} = 'sv_refo';
+ $LocaleFile{'ug_Cyrl'} = 'ug_cyrl';
$LocaleFile{'zh__big5han'} = 'zh_big5';
$LocaleFile{'zh__gb2312han'} = 'zh_gb';
$LocaleFile{'zh__pinyin'} = 'zh_pin';
@@ -125,97 +128,6 @@ sub new {
1;
__END__
-MEMORANDA for developing
-
-locale based CLDR
-----------------------------------------------------------------------------
-af 22.1 = 1.8.1
-ar 22.1 = 1.9.0
-as 22.1 = 1.8.1
-az 22.1 = 1.8.1 (type="standard")
-be 22.1 = 1.9.0
-bg 22.1 = 1.9.0
-bn 22.1 = 2.0.1 (type="standard")
-bs 22.1 = 1.9.0 (alias source="hr")
-bs_Cyrl 22.1 = 22 (alias source="sr")
-ca 22.1 = 1.8.1 (alt="proposed" type="standard")
-cs 22.1 = 1.8.1 (type="standard")
-cy 22.1 = 1.8.1
-da 22.1 = 1.8.1 (type="standard") [mod aA to pass CLDR test]
-de__phonebook 22.1 = 2.0 (type="phonebook")
-ee 22.1 = 22
-eo 22.1 = 1.8.1
-es 22.1 = 1.9.0 (type="standard")
-es__traditional 22.1 = 1.8.1 (type="traditional")
-et 22.1 = 1.8.1
-fa 22.1 = 1.8.1
-fi 22.1 = 1.8.1 (type="standard" alt="proposed")
-fi__phonebook 22.1 = 1.8.1 (type="phonebook")
-fil 22.1 = 1.9.0 (type="standard") = 1.8.1
-fo 22.1 = 1.8.1 (alt="proposed" type="standard")
-fr 22.1 = 1.9.0 (fr_CA, backwards="on")
-gu 22.1 = 1.9.0 (type="standard")
-ha 22.1 = 1.9.0
-haw 22.1 = 1.8.1
-hi 22.1 = 1.9.0 (type="standard")
-hr 22.1 = 1.9.0 (type="standard")
-hu 22.1 = 1.8.1 (alt="proposed" type="standard")
-hy 22.1 = 1.8.1
-ig 22.1 = 1.8.1
-is 22.1 = 1.8.1 (type="standard")
-ja 22.1 = 1.8.1 (type="standard")
-kk 22.1 = 1.9.0
-kl 22.1 = 1.8.1 (type="standard")
-kn 22.1 = 1.9.0 (type="standard")
-ko 22.1 = 1.8.1 (type="standard")
-kok 22.1 = 1.8.1
-ln 22.1 = 2.0 (type="standard") = 1.8.1
-lt 22.1 = 1.9.0
-lv 22.1 = 1.9.0 (type="standard") = 1.8.1
-mk 22.1 = 1.9.0
-ml 22.1 = 1.9.0
-mr 22.1 = 1.8.1
-mt 22.1 = 1.9.0
-nb 22.1 = 2.0 (type="standard")
-nn 22.1 = 2.0 (type="standard")
-nso 22.1 = 1.8.1
-om 22.1 = 1.8.1
-or 22.1 = 1.9.0
-pa 22.1 = 1.8.1
-pl 22.1 = 1.8.1
-ro 22.1 = 1.9.0 (type="standard")
-ru 22.1 = 1.9.0
-sa 1.9.1 = 1.8.1 (type="standard" alt="proposed") [now /seed]
-se 22.1 = 1.8.1 (type="standard")
-si 22.1 = 1.9.0 (type="standard")
-si__dictionary 22.1 = 1.9.0 (type="dictionary")
-sk 22.1 = 1.9.0 (type="standard")
-sl 22.1 = 1.8.1 (type="standard" alt="proposed")
-sq 22.1 = 1.8.1 (alt="proposed" type="standard")
-sr 22.1 = 1.9.0 (type="standard")
-sr_Latn 22.1 = 1.8.1 (alias source="hr")
-sv 22.1 = 1.9.0 (type="standard")
-sv__reformed 22.1 = 1.8.1 (type="reformed")
-ta 22.1 = 1.9.0
-te 22.1 = 1.9.0
-th 22.1 = 22
-tn 22.1 = 1.8.1
-to 22.1 = 22
-tr 22.1 = 1.8.1 (type="standard")
-uk 22.1 = 21
-ur 22.1 = 1.9.0
-vi 22.1 = 1.8.1
-wae 22.1 = 2.0
-wo 1.9.1 = 1.8.1 [now /seed]
-yo 22.1 = 1.8.1
-zh 22.1 = 1.8.1 (type="standard")
-zh__big5han 22.1 = 1.8.1 (type="big5han")
-zh__gb2312han 22.1 = 1.8.1 (type="gb2312han")
-zh__pinyin 22.1 = 2.0 (type='pinyin' alt='short')
-zh__stroke 22.1 = 1.9.1 (type='stroke' alt='short')
-zh__zhuyin 22.1 = 22 (type='zhuyin' alt='short')
-----------------------------------------------------------------------------
-
=head1 NAME
Unicode::Collate::Locale - Linguistic tailoring for DUCET via Unicode::Collate
@@ -252,12 +164,12 @@ The C<new> method returns a collator object.
A parameter list for the constructor is a hash, which can include
a special key C<locale> and its value (case-insensitive) standing
for a Unicode base language code (two or three-letter).
-For example, C<Unicode::Collate::Locale-E<gt>new(locale =E<gt> 'FR')>
-returns a collator tailored for French.
+For example, C<Unicode::Collate::Locale-E<gt>new(locale =E<gt> 'ES')>
+returns a collator tailored for Spanish.
C<$locale_name> may be suffixed with a Unicode script code (four-letter),
-a Unicode region code, a Unicode language variant code. These codes are
-case-insensitive, and separated with C<'_'> or C<'-'>.
+a Unicode region (territory) code, a Unicode language variant code.
+These codes are case-insensitive, and separated with C<'_'> or C<'-'>.
E.g. C<en_US> for English in USA,
C<az_Cyrl> for Azerbaijani in the Cyrillic script,
C<es_ES_traditional> for Spanish in Spain (Traditional).
@@ -278,12 +190,12 @@ is always untailorable, since it is reserved for DUCET.
However C<entry> is allowed, even if it is used for C<locale> support,
to add or override mappings.
-E.g. a collator for French, which ignores diacritics and case difference
+E.g. a collator for Spanish, which ignores diacritics and case difference
(i.e. level 1), with reversed case ordering and no normalization.
Unicode::Collate::Locale->new(
level => 1,
- locale => 'fr',
+ locale => 'es',
upper_before_lower => 1,
normalization => undef
)
@@ -299,7 +211,7 @@ if such a tailoring is passed to C<new()>.
However C<change()> inherited from C<Unicode::Collate> allows
such a tailoring that is reserved by C<locale>. Examples:
- new(locale => 'ca')->change(backwards => undef)
+ new(locale => 'fr_ca')->change(backwards => undef)
new(locale => 'da')->change(upper_before_lower => 0)
new(locale => 'ja')->change(overrideCJK => undef)
@@ -339,15 +251,16 @@ a combination of return values from C<getlocale> and C<locale_version>.
as Assamese
az Azerbaijani (Azeri)
be Belarusian
- bg Bulgarian
bn Bengali
- bs Bosnian
+ bs Bosnian (tailored as Croatian)
bs_Cyrl Bosnian in Cyrillic (tailored as Serbian)
ca Catalan
cs Czech
cy Welsh
da Danish
de__phonebook German (umlaut as 'ae', 'oe', 'ue')
+ de_AT_phonebook Austrian German (umlaut primary greater)
+ dsb Lower Sorbian
ee Ewe
eo Esperanto
es Spanish
@@ -358,10 +271,11 @@ a combination of return values from C<getlocale> and C<locale_version>.
fi__phonebook Finnish (v and w as separate characters)
fil Filipino
fo Faroese
- fr French
+ fr_CA Canadian French
gu Gujarati
ha Hausa
haw Hawaiian
+ he Hebrew
hi Hindi
hr Croatian
hu Hungarian
@@ -374,6 +288,7 @@ a combination of return values from C<getlocale> and C<locale_version>.
kn Kannada
ko Korean [2]
kok Konkani
+ lkt Lakota
ln Lingala
lt Lithuanian
lv Latvian
@@ -389,7 +304,6 @@ a combination of return values from C<getlocale> and C<locale_version>.
pa Punjabi
pl Polish
ro Romanian
- ru Russian
sa Sanskrit
se Northern Sami
si Sinhala
@@ -407,9 +321,11 @@ a combination of return values from C<getlocale> and C<locale_version>.
tn Tswana
to Tonga
tr Turkish
+ ug_Cyrl Uyghur in Cyrillic
uk Ukrainian
ur Urdu
vi Vietnamese
+ vo Volapu"k
wae Walser
wo Wolof
yo Yoruba
@@ -422,19 +338,22 @@ a combination of return values from C<getlocale> and C<locale_version>.
--------------------------------------------------------------
Locales according to the default UCA rules include
-chr (Cherokee),
+am (Amharic) without C<[reorder Ethi]>,
+bg (Bulgarian) without C<[reorder Cyrl]>,
+chr (Cherokee) without C<[reorder Cher]>,
de (German),
en (English),
+fr (French),
ga (Irish),
id (Indonesian),
it (Italian),
-ka (Georgian),
+ka (Georgian) without C<[reorder Geor]>,
+mn (Mongolian) without C<[reorder Cyrl Mong]>,
ms (Malay),
nl (Dutch),
pt (Portuguese),
-st (Southern Sotho),
+ru (Russian) without C<[reorder Cyrl]>,
sw (Swahili),
-xh (Xhosa),
zu (Zulu).
B<Note>
@@ -452,21 +371,37 @@ greater than, the corresponding hangul syllable.
[3] zh__pinyin, zh__stroke and zh__zhuyin: implemented alt='short',
where a smaller number of ideographs are tailored.
-Note: 'pinyin' is in latin, 'zhuyin' is in bopomofo.
+=head2 A list of variant codes and their aliases
+
+ variant code alias
+ ------------------------------------------
+ dictionary dict
+ phonebook phone phonebk
+ reformed reform
+ traditional trad
+ ------------------------------------------
+ big5han big5
+ gb2312han gb2312
+ pinyin
+ stroke
+ zhuyin
+ ------------------------------------------
+
+Note: 'pinyin' is Han in Latin, 'zhuyin' is Han in Bopomofo.
=head1 INSTALL
Installation of C<Unicode::Collate::Locale> requires F<Collate/Locale.pm>,
F<Collate/Locale/*.pm>, F<Collate/CJK/*.pm> and F<Collate/allkeys.txt>.
-On building, C<Unicode::Collate::Locale> doesn't require any of F<data/*.txt>,
-F<gendata/*>, and F<mklocale>.
+On building, C<Unicode::Collate::Locale> doesn't require
+any of F<data/*.txt>, F<gendata/*>, and F<mklocale>.
Tests for C<Unicode::Collate::Locale> are named F<t/loc_*.t>.
=head1 CAVEAT
=over 4
-=item tailoring is not maximum
+=item Tailoring is not maximum
Even if a certain letter is tailored, its equivalent would not always
tailored as well as it. For example, even though W is tailored,
@@ -475,13 +410,114 @@ tailored. The result may depend on whether source strings are
normalized or not, and whether decomposed or composed.
Thus C<(normalization =E<gt> undef)> is less preferred.
+=item Collation reordering is not supported
+
+The order of any groups including scripts is not changed.
+
=back
+=head2 Reference
+
+ locale based CLDR or other reference
+ --------------------------------------------------------------------
+ af 30 = 1.8.1
+ ar 30 = 28 ("compat" wo [reorder Arab]) = 1.9.0
+ as 30 = 28 (without [reorder Beng..]) = 23
+ az 30 = 24 ("standard" wo [reorder Latn Cyrl])
+ be 30 = 28 (without [reorder Cyrl])
+ bn 30 = 28 ("standard" wo [reorder Beng..]) = 2.0.1
+ bs 30 = 28 (type="standard": [import hr])
+ bs_Cyrl 30 = 28 (type="standard": [import sr])
+ ca 30 = 23 (alt="proposed" type="standard")
+ cs 30 = 1.8.1 (type="standard")
+ cy 30 = 1.8.1
+ da 22.1 = 1.8.1 (type="standard")
+ de__phonebook 30 = 2.0 (type="phonebook")
+ de_AT_phonebook 30 = 27 (type="phonebook")
+ dsb 30 = 26
+ ee 30 = 21
+ eo 30 = 1.8.1
+ es 30 = 1.9.0 (type="standard")
+ es__traditional 30 = 1.8.1 (type="traditional")
+ et 30 = 26
+ fa 22.1 = 1.8.1
+ fi 22.1 = 1.8.1 (type="standard" alt="proposed")
+ fi__phonebook 22.1 = 1.8.1 (type="phonebook")
+ fil 30 = 1.9.0 (type="standard") = 1.8.1
+ fo 22.1 = 1.8.1 (alt="proposed" type="standard")
+ fr_CA 30 = 1.9.0
+ gu 30 = 28 ("standard" wo [reorder Gujr..]) = 1.9.0
+ ha 30 = 1.9.0
+ haw 30 = 24
+ he 30 = 28 (without [reorder Hebr]) = 23
+ hi 30 = 28 (without [reorder Deva..]) = 1.9.0
+ hr 30 = 28 ("standard" wo [reorder Latn Cyrl]) = 1.9.0
+ hu 22.1 = 1.8.1 (alt="proposed" type="standard")
+ hy 30 = 28 (without [reorder Armn]) = 1.8.1
+ ig 30 = 1.8.1
+ is 22.1 = 1.8.1 (type="standard")
+ ja 22.1 = 1.8.1 (type="standard")
+ kk 30 = 28 (without [reorder Cyrl])
+ kl 22.1 = 1.8.1 (type="standard")
+ kn 30 = 28 ("standard" wo [reorder Knda..]) = 1.9.0
+ ko 22.1 = 1.8.1 (type="standard")
+ kok 30 = 28 (without [reorder Deva..]) = 1.8.1
+ lkt 30 = 25
+ ln 30 = 2.0 (type="standard") = 1.8.1
+ lt 22.1 = 1.9.0
+ lv 22.1 = 1.9.0 (type="standard") = 1.8.1
+ mk 30 = 28 (without [reorder Cyrl])
+ ml 22.1 = 1.9.0
+ mr 30 = 28 (without [reorder Deva..]) = 1.8.1
+ mt 22.1 = 1.9.0
+ nb 22.1 = 2.0 (type="standard")
+ nn 22.1 = 2.0 (type="standard")
+ nso [*] 26 = 1.8.1
+ om 22.1 = 1.8.1
+ or 30 = 28 (without [reorder Orya..]) = 1.9.0
+ pa 22.1 = 1.8.1
+ pl 30 = 1.8.1
+ ro 30 = 1.9.0 (type="standard")
+ sa [*] 1.9.1 = 1.8.1 (type="standard" alt="proposed")
+ se 22.1 = 1.8.1 (type="standard")
+ si 30 = 28 ("standard" wo [reorder Sinh..]) = 1.9.0
+ si__dictionary 30 = 28 ("dictionary" wo [reorder Sinh..]) = 1.9.0
+ sk 22.1 = 1.9.0 (type="standard")
+ sl 22.1 = 1.8.1 (type="standard" alt="proposed")
+ sq 22.1 = 1.8.1 (alt="proposed" type="standard")
+ sr 30 = 28 (without [reorder Cyrl])
+ sr_Latn 30 = 28 (type="standard": [import hr])
+ sv 22.1 = 1.9.0 (type="standard")
+ sv__reformed 22.1 = 1.8.1 (type="reformed")
+ ta 22.1 = 1.9.0
+ te 30 = 28 (without [reorder Telu..]) = 1.9.0
+ th 22.1 = 22
+ tn [*] 26 = 1.8.1
+ to 22.1 = 22
+ tr 22.1 = 1.8.1 (type="standard")
+ uk 30 = 28 (without [reorder Cyrl])
+ ug_Cyrl https://en.wikipedia.org/wiki/Uyghur_Cyrillic_alphabet
+ ur 22.1 = 1.9.0
+ vi 22.1 = 1.8.1
+ vo 30 = 25
+ wae 30 = 2.0
+ wo [*] 1.9.1 = 1.8.1
+ yo 30 = 1.8.1
+ zh 22.1 = 1.8.1 (type="standard")
+ zh__big5han 22.1 = 1.8.1 (type="big5han")
+ zh__gb2312han 22.1 = 1.8.1 (type="gb2312han")
+ zh__pinyin 22.1 = 2.0 (type='pinyin' alt='short')
+ zh__stroke 22.1 = 1.9.1 (type='stroke' alt='short')
+ zh__zhuyin 22.1 = 22 (type='zhuyin' alt='short')
+ --------------------------------------------------------------------
+
+[*] http://www.unicode.org/repos/cldr/tags/latest/seed/collation/
+
=head1 AUTHOR
The Unicode::Collate::Locale module for perl was written
by SADAHIRO Tomoyuki, <SADAHIRO@cpan.org>.
-This module is Copyright(C) 2004-2013, SADAHIRO Tomoyuki. Japan.
+This module is Copyright(C) 2004-2017, SADAHIRO Tomoyuki. Japan.
All rights reserved.
This module is free software; you can redistribute it and/or
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/af.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/af.pl
index 1a3a479ed4d..13e46e40d31 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/af.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/af.pl
@@ -1,6 +1,6 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0149 ; [.1A7D.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0149 ; [.1DB9.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ar.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ar.pl
index cf27cfd5dc1..b8ca052fcf9 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ar.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ar.pl
@@ -1,15 +1,15 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0629 ; [.2025.0021.0002] # ARABIC LETTER TEH MARBUTA
-FE94 ; [.2025.0021.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
-FE93 ; [.2025.0021.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-0649 ; [.20C7.0021.0002] # ARABIC LETTER ALEF MAKSURA
-FBE8 ; [.20C7.0021.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9 ; [.20C7.0021.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FEF0 ; [.20C7.0021.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEEF ; [.20C7.0021.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FC90 ; [.20C7.0021.001B] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC5D ; [.20C7.0021.001C] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0629 ; [.231D.0021.0002] # ARABIC LETTER TEH MARBUTA
+FE94 ; [.231D.0021.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
+FE93 ; [.231D.0021.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
+0649 ; [.23C6.0021.0002] # ARABIC LETTER ALEF MAKSURA
+FBE8 ; [.23C6.0021.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+FBE9 ; [.23C6.0021.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FEF0 ; [.23C6.0021.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEEF ; [.23C6.0021.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+FC90 ; [.23C6.0021.001B] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC5D ; [.23C6.0021.001C] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/as.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/as.pl
index 9a869cf671a..093f65224f6 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/as.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/as.pl
@@ -1,13 +1,14 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0982 ; [.23CC.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
-0981 ; [.23CC.0020.0002][.FFF2.0000.0000] # BENGALI SIGN CANDRABINDU
-0983 ; [.23CC.0020.0002][.FFF3.0000.0000] # BENGALI SIGN VISARGA
-0994 ; [.23CC.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
-09A4 09CD 200D ; [.23DB.0020.0002][.FFF1.0000.0000] # <BENGALI LETTER TA, BENGALI SIGN VIRAMA, ZERO WIDTH JOINER>
-09A3 ; [.23DB.0020.0002][.FFF0.0000.0000] # BENGALI LETTER NNA
-0995 09CD 09B7 ; [.23EE.0020.0002][.FFF1.0000.0000] # <BENGALI LETTER KA, BENGALI SIGN VIRAMA, BENGALI LETTER SSA>
-09B9 ; [.23EE.0020.0002][.FFF0.0000.0000] # BENGALI LETTER HA
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0982 ; [.26CD.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
+0981 ; [.26CD.0020.0002][.FFF2.0000.0000] # BENGALI SIGN CANDRABINDU
+0983 ; [.26CD.0020.0002][.FFF3.0000.0000] # BENGALI SIGN VISARGA
+0994 ; [.26CD.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
+09CE ; [.26DD.0020.0002][.FFF0.0000.0000] # BENGALI LETTER KHANDA TA
+09A4 09CD 200D ; [.26DD.0020.0002][.FFF0.0000.0000] # <BENGALI LETTER TA, BENGALI SIGN VIRAMA, ZERO WIDTH JOINER>
+09A4 ; [.26DD.0020.0002][.FFF1.0000.0000] # BENGALI LETTER TA
+0995 09CD 09B7 ; [.26EF.0020.0002][.FFF1.0000.0000] # <BENGALI LETTER KA, BENGALI SIGN VIRAMA, BENGALI LETTER SSA>
+09B9 ; [.26EF.0020.0002][.FFF0.0000.0000] # BENGALI LETTER HA
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/az.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/az.pl
index c405fc57c62..7a0009a9dab 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/az.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/az.pl
@@ -1,51 +1,53 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# schwa doesn't require tailoring
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E7 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-0063 0327 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-00C7 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-011F ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-0067 0306 ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0047 0306 ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0131 ; [.19F5.0020.0002] # LATIN SMALL LETTER DOTLESS I
-0049 ; [.19F5.0020.0008] # LATIN CAPITAL LETTER I
-00CC ; [.19F5.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-00CD ; [.19F5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00CE ; [.19F5.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF ; [.19F5.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-012A ; [.19F5.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-012C ; [.19F5.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-012E ; [.19F5.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-0130 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0049 0307 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-00F6 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1AA2.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA2.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-015F ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-00FC ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1B78.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B78.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1B78.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B78.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1B78.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B78.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1B78.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B78.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0071 ; [.1A2A.0020.0002] # LATIN SMALL LETTER Q
-0051 ; [.1A2A.0020.0008] # LATIN CAPITAL LETTER Q
-0078 ; [.19DD.0020.0002] # LATIN SMALL LETTER X
-0058 ; [.19DD.0020.0008] # LATIN CAPITAL LETTER X
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00E7 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+0063 0327 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+00C7 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+0043 0327 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+011F ; [.1CF5.0020.0002] # LATIN SMALL LETTER G WITH BREVE
+0067 0306 ; [.1CF5.0020.0002] # LATIN SMALL LETTER G WITH BREVE
+011E ; [.1CF5.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
+0047 0306 ; [.1CF5.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
+0131 ; [.1D31.0020.0002] # LATIN SMALL LETTER DOTLESS I
+0049 ; [.1D31.0020.0008] # LATIN CAPITAL LETTER I
+00CC ; [.1D31.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
+00CD ; [.1D31.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
+00CE ; [.1D31.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF ; [.1D31.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
+012A ; [.1D31.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
+012C ; [.1D31.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
+012E ; [.1D31.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
+0130 ; [.1D32.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+0049 0307 ; [.1D32.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+00F6 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1DDE.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1DDE.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+015F ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+0073 0327 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+015E ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+0053 0327 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+00FC ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1EB6.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB6.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1EB6.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB6.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1EB6.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB6.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1EB6.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB6.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0071 ; [.1D66.0020.0002] # LATIN SMALL LETTER Q
+0051 ; [.1D66.0020.0008] # LATIN CAPITAL LETTER Q
+0078 ; [.1D19.0020.0002] # LATIN SMALL LETTER X
+0058 ; [.1D19.0020.0008] # LATIN CAPITAL LETTER X
+0077 ; [.1F22.0020.0002] # LATIN SMALL LETTER W
+0057 ; [.1F22.0020.0008] # LATIN CAPITAL LETTER W
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/be.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/be.pl
index adb17e34945..02dc16ce8b8 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/be.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/be.pl
@@ -1,43 +1,13 @@
+{
- locale_version => 1.14,
- suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
- 0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
- 0x04E8, 0x04E9, 0x041A, 0x043A, 0x0427, 0x0447, 0x042B, 0x044B,
- 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-0451 ; [.1D29.0020.0002] # CYRILLIC SMALL LETTER IO
-0435 0308 ; [.1D29.0020.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.1D29.0020.0008] # CYRILLIC CAPITAL LETTER IO
-0415 0308 ; [.1D29.0020.0008] # CYRILLIC CAPITAL LETTER IO
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0451 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER IO
+0435 0308 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER IO
+0401 ; [.205B.0020.0008] # CYRILLIC CAPITAL LETTER IO
+0415 0308 ; [.205B.0020.0008] # CYRILLIC CAPITAL LETTER IO
+045E ; [.211E.0020.0002] # CYRILLIC SMALL LETTER SHORT U
+0443 0306 ; [.211E.0020.0002] # CYRILLIC SMALL LETTER SHORT U
+040E ; [.211E.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
+0423 0306 ; [.211E.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bg.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bg.pl
deleted file mode 100644
index b23b64125ab..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bg.pl
+++ /dev/null
@@ -1,45 +0,0 @@
-+{
- locale_version => 1.14,
- suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
- 0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
- 0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
- 0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-ENTRY
-};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bn.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bn.pl
index d2aacdb6c5e..0ce47c111c6 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bn.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/bn.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0982 ; [.23CC.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
-0983 ; [.23CC.0020.0002][.FFF2.0000.0000] # BENGALI SIGN VISARGA
-0981 ; [.23CC.0020.0002][.FFF3.0000.0000] # BENGALI SIGN CANDRABINDU
-0994 ; [.23CC.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0982 ; [.26CD.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
+0983 ; [.26CD.0020.0002][.FFF2.0000.0000] # BENGALI SIGN VISARGA
+0981 ; [.26CD.0020.0002][.FFF3.0000.0000] # BENGALI SIGN CANDRABINDU
+0994 ; [.26CD.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ca.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ca.pl
index f36465357cb..df46b4d58fe 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ca.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ca.pl
@@ -1,18 +1,17 @@
+{
- locale_version => 1.14,
- backwards => 2,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.193F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.193F.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-006C 006C ; [.1A3C.0020.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-006C 00B7 006C ; [.1A3C.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
-006C 004C ; [.1A3C.0020.0007][.0000.0000.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
-006C 00B7 004C ; [.1A3C.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
-004C 006C ; [.1A3C.0020.0007][.0000.0000.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 00B7 006C ; [.1A3C.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
-004C 004C ; [.1A3C.0020.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-004C 00B7 004C ; [.1A3C.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0063 0068 ; [.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0063 0048 ; [.1C7B.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
+0043 0068 ; [.1C7B.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1C7B.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+006C 006C ; [.1D78.0020.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+006C 00B7 006C ; [.1D78.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
+006C 004C ; [.1D78.0020.0007][.0000.0000.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
+006C 00B7 004C ; [.1D78.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
+004C 006C ; [.1D78.0020.0007][.0000.0000.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 00B7 006C ; [.1D78.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
+004C 004C ; [.1D78.0020.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+004C 00B7 004C ; [.1D78.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cs.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cs.pl
index 920897c76e0..36f098cc508 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cs.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cs.pl
@@ -1,25 +1,25 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-010D ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0063 0068 ; [.19DD.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.19DD.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.19DD.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.19DD.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0159 ; [.1AF6.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0072 030C ; [.1AF6.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.1AF6.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0052 030C ; [.1AF6.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0063 0068 ; [.1D19.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0063 0048 ; [.1D19.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
+0043 0068 ; [.1D19.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1D19.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+0159 ; [.1E34.0020.0002] # LATIN SMALL LETTER R WITH CARON
+0072 030C ; [.1E34.0020.0002] # LATIN SMALL LETTER R WITH CARON
+0158 ; [.1E34.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
+0052 030C ; [.1E34.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
+0161 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cy.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cy.pl
index 4e5baf6ef43..135935d1d85 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cy.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/cy.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0043 0068 ; [.193F.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0064 0064 ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D>
-0044 0064 ; [.1954.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D>
-0044 0044 ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D>
-0066 0066 ; [.19AA.0020.0002] # <LATIN SMALL LETTER F, LATIN SMALL LETTER F>
-0046 0066 ; [.19AA.0020.0007] # <LATIN CAPITAL LETTER F, LATIN SMALL LETTER F>
-0046 0046 ; [.19AA.0020.0008] # <LATIN CAPITAL LETTER F, LATIN CAPITAL LETTER F>
-006E 0067 ; [.19B9.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
-004E 0067 ; [.19B9.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
-004E 0047 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
-006C 006C ; [.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-004C 006C ; [.1A3C.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-0070 0068 ; [.1ACF.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
-0050 0068 ; [.1ACF.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
-0050 0048 ; [.1ACF.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
-0072 0068 ; [.1AF6.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER H>
-0052 0068 ; [.1AF6.0020.0007] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER H>
-0052 0048 ; [.1AF6.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER H>
-0074 0068 ; [.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
-0054 0068 ; [.1B58.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
-0054 0048 ; [.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0063 0068 ; [.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0043 0068 ; [.1C7B.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1C7B.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+0064 0064 ; [.1C90.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D>
+0044 0064 ; [.1C90.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D>
+0044 0044 ; [.1C90.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D>
+0066 0066 ; [.1CE6.0020.0002] # <LATIN SMALL LETTER F, LATIN SMALL LETTER F>
+0046 0066 ; [.1CE6.0020.0007] # <LATIN CAPITAL LETTER F, LATIN SMALL LETTER F>
+0046 0046 ; [.1CE6.0020.0008] # <LATIN CAPITAL LETTER F, LATIN CAPITAL LETTER F>
+006E 0067 ; [.1CF5.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
+004E 0067 ; [.1CF5.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
+004E 0047 ; [.1CF5.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
+006C 006C ; [.1D78.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+004C 006C ; [.1D78.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 004C ; [.1D78.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+0070 0068 ; [.1E0D.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
+0050 0068 ; [.1E0D.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
+0050 0048 ; [.1E0D.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
+0072 0068 ; [.1E34.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER H>
+0052 0068 ; [.1E34.0020.0007] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER H>
+0052 0048 ; [.1E34.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER H>
+0074 0068 ; [.1E96.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
+0054 0068 ; [.1E96.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
+0054 0048 ; [.1E96.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/da.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/da.pl
index 8dcffab0a86..19e8fbc43d2 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/da.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/da.pl
@@ -1,78 +1,78 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
upper_before_lower => 1,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008][.0000.0000.0001] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0000.0001][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0000.0001][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1C56.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1C56.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0061 0041 ; [.1C56.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
-0041 0041 ; [.1C56.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C8F.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C8F.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C8F.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E95.0020.0003][.1D18.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E95.0020.0009][.1D18.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F96.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F96.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F96.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F96.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F96.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F96.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F96.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F97.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F97.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F97.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F97.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F98.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F98.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F98.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F98.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F98.0020.0008][.0000.0000.0001] # ANGSTROM SIGN
+01FB ; [.1F98.0020.0002][.0000.0000.0001][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F98.0020.0008][.0000.0000.0001][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.1F98.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0041 0061 ; [.1F98.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0061 0041 ; [.1F98.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
+0041 0041 ; [.1F98.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/de_phone.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/de_phone.pl
index b253e5c5b85..cda68122762 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/de_phone.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/de_phone.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E4 ; [.190C.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.190C.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.190C.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.190C.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.190C.0021.0002][.196E.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.190C.0021.0008][.196E.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.1AA1.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1AA1.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1AA1.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1AA1.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1AA1.0021.0002][.196E.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA1.0021.0008][.196E.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00FC ; [.1B77.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1B77.0021.0002][.196E.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0021.0008][.196E.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1B77.0021.0002][.196E.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0021.0008][.196E.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1B77.0021.0002][.196E.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008][.196E.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1B77.0021.0002][.196E.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0021.0008][.196E.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00E4 ; [.1C47.0021.0002][.1CAA.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1C47.0021.0002][.1CAA.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1C47.0021.0008][.1CAA.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1C47.0021.0008][.1CAA.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1C47.0021.0002][.1CAA.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1C47.0021.0008][.1CAA.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00F6 ; [.1DDD.0021.0002][.1CAA.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1DDD.0021.0002][.1CAA.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1DDD.0021.0008][.1CAA.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1DDD.0021.0008][.1CAA.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1DDD.0021.0002][.1CAA.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1DDD.0021.0008][.1CAA.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00FC ; [.1EB5.0021.0002][.1CAA.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB5.0021.0002][.1CAA.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB5.0021.0008][.1CAA.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB5.0021.0008][.1CAA.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1EB5.0021.0002][.1CAA.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB5.0021.0008][.1CAA.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1EB5.0021.0002][.1CAA.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB5.0021.0008][.1CAA.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1EB5.0021.0002][.1CAA.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB5.0021.0008][.1CAA.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1EB5.0021.0002][.1CAA.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB5.0021.0008][.1CAA.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ee.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ee.pl
index c8b792469a2..264494f44dc 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ee.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ee.pl
@@ -1,36 +1,36 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# d-tail, open-e, f-hook, gamma, eng, open-o, v-hook don't require tailoring
- entry => <<'ENTRY', # for DUCET v7.0.0
+ entry => <<'ENTRY', # for DUCET v9.0.0
0302 ; [.0000.0029.0002] # COMBINING CIRCUMFLEX ACCENT
-00E2 ; [.190C.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.190C.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-00EA ; [.196E.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-00EE ; [.19F6.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.19F6.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00F4 ; [.1AA1.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA1.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-00FB ; [.1B77.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00DB ; [.1B77.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-0177 ; [.1BCD.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0176 ; [.1BCD.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0064 007A ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0044 007A ; [.1954.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 005A ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0067 0062 ; [.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.19B9.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-0078 ; [.19DD.0020.0002] # LATIN SMALL LETTER X
-0058 ; [.19DD.0020.0008] # LATIN CAPITAL LETTER X
-006B 0070 ; [.1A2A.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
-004B 0070 ; [.1A2A.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
-004B 0050 ; [.1A2A.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
-006E 0079 ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.1A7E.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0074 0073 ; [.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
-0054 0073 ; [.1B58.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
-0054 0053 ; [.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
+00E2 ; [.1C47.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2 ; [.1C47.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00EA ; [.1CAA.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAA.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00EE ; [.1D32.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+00CE ; [.1D32.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00F4 ; [.1DDD.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1DDD.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00FB ; [.1EB5.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
+00DB ; [.1EB5.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0177 ; [.1F0B.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0176 ; [.1F0B.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0064 007A ; [.1C90.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0044 007A ; [.1C90.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0044 005A ; [.1C90.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0067 0062 ; [.1CF5.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
+0047 0062 ; [.1CF5.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
+0047 0042 ; [.1CF5.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
+0078 ; [.1D19.0020.0002] # LATIN SMALL LETTER X
+0058 ; [.1D19.0020.0008] # LATIN CAPITAL LETTER X
+006B 0070 ; [.1D66.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
+004B 0070 ; [.1D66.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
+004B 0050 ; [.1D66.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
+006E 0079 ; [.1DBA.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 0079 ; [.1DBA.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1DBA.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0074 0073 ; [.1E96.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
+0054 0073 ; [.1E96.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
+0054 0053 ; [.1E96.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/eo.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/eo.pl
index de2d1075dd5..3a6ceb433af 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/eo.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/eo.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0109 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
-0063 0302 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
-0108 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0043 0302 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-011D ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-0067 0302 ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011C ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-0047 0302 ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-0125 ; [.19DD.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0068 0302 ; [.19DD.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0124 ; [.19DD.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0048 0302 ; [.19DD.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0135 ; [.1A11.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-006A 0302 ; [.1A11.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0134 ; [.1A11.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-004A 0302 ; [.1A11.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-015D ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-0073 0302 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-0053 0302 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-016D ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH BREVE
-0075 0306 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
-0055 0306 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0109 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
+0063 0302 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
+0108 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0043 0302 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+011D ; [.1CF5.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
+0067 0302 ; [.1CF5.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
+011C ; [.1CF5.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+0047 0302 ; [.1CF5.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+0125 ; [.1D19.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
+0068 0302 ; [.1D19.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
+0124 ; [.1D19.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0048 0302 ; [.1D19.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0135 ; [.1D4D.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
+006A 0302 ; [.1D4D.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
+0134 ; [.1D4D.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+004A 0302 ; [.1D4D.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+015D ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
+0073 0302 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
+015C ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+0053 0302 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+016D ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH BREVE
+0075 0306 ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH BREVE
+016C ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
+0055 0306 ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es.pl
index fb5e1006408..2075de3b145 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00F1 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00F1 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es_trad.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es_trad.pl
index 966a69bf4d7..c57b5386880 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es_trad.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/es_trad.pl
@@ -1,15 +1,15 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0043 0068 ; [.193F.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-006C 006C ; [.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-004C 006C ; [.1A3C.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-00F1 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0063 0068 ; [.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0043 0068 ; [.1C7B.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1C7B.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+006C 006C ; [.1D78.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+004C 006C ; [.1D78.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 004C ; [.1D78.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+00F1 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/et.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/et.pl
index 98087690f3e..eb503d09630 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/et.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/et.pl
@@ -1,53 +1,51 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0161 ; [.1B54.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B54.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B54.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B54.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-007A ; [.1B55.0020.0002] # LATIN SMALL LETTER Z
-005A ; [.1B55.0020.0008] # LATIN CAPITAL LETTER Z
-017E ; [.1B56.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1B56.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1B56.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1B56.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-0077 ; [.1BA5.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.1BA5.0021.0008] # LATIN CAPITAL LETTER W
-00F5 ; [.1BBD.0020.0002] # LATIN SMALL LETTER O WITH TILDE
-006F 0303 ; [.1BBD.0020.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1BBD.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
-004F 0303 ; [.1BBD.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.1BBD.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.1BBD.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-022D ; [.1BBD.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.1BBD.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-1E4F ; [.1BBD.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.1BBD.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1EE1 ; [.1BBD.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1BBD.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-00E4 ; [.1BBE.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1BBE.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1BBE.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1BBE.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1BBE.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1BBE.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.1BBF.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1BBF.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1BBF.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1BBF.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1BBF.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1BBF.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00FC ; [.1BC0.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BC0.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BC0.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BC0.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BC0.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BC0.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BC0.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BC0.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BC0.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BC0.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BC0.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BC0.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0161 ; [.1E92.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E92.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E92.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E92.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+007A ; [.1E93.0020.0002] # LATIN SMALL LETTER Z
+005A ; [.1E93.0020.0008] # LATIN CAPITAL LETTER Z
+017E ; [.1E94.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1E94.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1E94.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1E94.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+00F5 ; [.1EFB.0020.0002] # LATIN SMALL LETTER O WITH TILDE
+006F 0303 ; [.1EFB.0020.0002] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1EFB.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
+004F 0303 ; [.1EFB.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
+1E4D ; [.1EFB.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4C ; [.1EFB.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+022D ; [.1EFB.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
+022C ; [.1EFB.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+1E4F ; [.1EFB.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E4E ; [.1EFB.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1EE1 ; [.1EFB.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE0 ; [.1EFB.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+00E4 ; [.1EFC.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1EFC.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1EFC.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1EFC.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1EFC.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1EFC.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00F6 ; [.1EFD.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1EFD.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1EFD.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1EFD.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1EFD.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1EFD.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00FC ; [.1EFE.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EFE.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EFE.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EFE.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1EFE.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EFE.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1EFE.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EFE.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1EFE.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EFE.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1EFE.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EFE.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fa.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fa.pl
index fbd3e28ac7c..d50c96c880d 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fa.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fa.pl
@@ -1,51 +1,51 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
0650 ; [.0000.0077.0002] # ARABIC KASRA
064B ; [.0000.007B.0002] # ARABIC FATHATAN
064D ; [.0000.007C.0002] # ARABIC KASRATAN
064C ; [.0000.007D.0002] # ARABIC DAMMATAN
-0622 ; [.2014.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.2014.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-08AC ; [.2014.0020.0002][.FFF0.0000.0000] # ARABIC LETTER ROHINGYA YEH
-0671 ; [.2015.0021.0002] # ARABIC LETTER ALEF WASLA
-0621 ; [.2016.0020.0002][.FFF0.0000.0000] # ARABIC LETTER HAMZA
-0623 ; [.2016.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0627 0654 ; [.2016.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0672 ; [.2016.0022.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0625 ; [.2016.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0627 0655 ; [.2016.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0673 ; [.2016.0024.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0624 ; [.2016.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.2016.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-06CC 0654 ; [.2016.0026.0002][.FFF0.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC HAMZA ABOVE>
-0649 0654 ; [.2016.0026.0003][.FFF0.0000.0000] # <ARABIC LETTER ALEF MAKSURA, ARABIC HAMZA ABOVE>
-0626 ; [.2016.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.2016.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-066E ; [.2016.0020.0002][.FFF1.0000.0000] # ARABIC LETTER DOTLESS BEH
-06AA ; [.208B.0021.0002] # ARABIC LETTER SWASH KAF
-06AB ; [.208B.0022.0002] # ARABIC LETTER KAF WITH RING
-0643 ; [.208B.0023.0002] # ARABIC LETTER KAF
-06AC ; [.208B.0024.0002] # ARABIC LETTER KAF WITH DOT ABOVE
-06AD ; [.208B.0025.0002] # ARABIC LETTER NG
-06AE ; [.208B.0026.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
-0647 ; [.20C2.0020.0002][.FFF1.0000.0000] # ARABIC LETTER HEH
-06D5 ; [.20C2.0021.0002][.FFF1.0000.0000] # ARABIC LETTER AE
-06C1 ; [.20C2.0022.0002][.FFF1.0000.0000] # ARABIC LETTER HEH GOAL
-06C2 ; [.20C2.0022.0002][.FFF1.0000.0000][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-0629 ; [.20C2.0023.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA
-06C3 ; [.20C2.0024.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
-06C0 ; [.20C2.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
-06D5 0654 ; [.20C2.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
-06BE ; [.20C2.0026.0002][.FFF1.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
-06CF ; [.20C2.0020.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH DOT ABOVE
-0649 ; [.20C8.0021.0002] # ARABIC LETTER ALEF MAKSURA
-06D2 ; [.20C8.0022.0002] # ARABIC LETTER YEH BARREE
-06D3 ; [.20C8.0022.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-064A ; [.20C8.0023.0002] # ARABIC LETTER YEH
-06D0 ; [.20C8.0024.0002] # ARABIC LETTER E
-06D1 ; [.20C8.0025.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
-06CD ; [.20C8.0026.0002] # ARABIC LETTER YEH WITH TAIL
-06CE ; [.20C8.0027.0002] # ARABIC LETTER YEH WITH SMALL V
+0622 ; [.230A.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
+0627 0653 ; [.230A.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
+08AC ; [.230A.0020.0002][.FFF0.0000.0000] # ARABIC LETTER ROHINGYA YEH
+0671 ; [.230B.0021.0002] # ARABIC LETTER ALEF WASLA
+0621 ; [.230C.0020.0002][.FFF0.0000.0000] # ARABIC LETTER HAMZA
+0623 ; [.230C.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0627 0654 ; [.230C.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0672 ; [.230C.0022.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
+0625 ; [.230C.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
+0627 0655 ; [.230C.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
+0673 ; [.230C.0024.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
+0624 ; [.230C.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
+0648 0654 ; [.230C.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
+06CC 0654 ; [.230C.0026.0002][.FFF0.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC HAMZA ABOVE>
+0649 0654 ; [.230C.0026.0003][.FFF0.0000.0000] # <ARABIC LETTER ALEF MAKSURA, ARABIC HAMZA ABOVE>
+0626 ; [.230C.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
+064A 0654 ; [.230C.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
+066E ; [.230C.0020.0002][.FFF1.0000.0000] # ARABIC LETTER DOTLESS BEH
+06AA ; [.2388.0021.0002] # ARABIC LETTER SWASH KAF
+06AB ; [.2388.0022.0002] # ARABIC LETTER KAF WITH RING
+0643 ; [.2388.0023.0002] # ARABIC LETTER KAF
+06AC ; [.2388.0024.0002] # ARABIC LETTER KAF WITH DOT ABOVE
+06AD ; [.2388.0025.0002] # ARABIC LETTER NG
+06AE ; [.2388.0026.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
+0647 ; [.23C1.0020.0002][.FFF1.0000.0000] # ARABIC LETTER HEH
+06D5 ; [.23C1.0021.0002][.FFF1.0000.0000] # ARABIC LETTER AE
+06C1 ; [.23C1.0022.0002][.FFF1.0000.0000] # ARABIC LETTER HEH GOAL
+06C2 ; [.23C1.0022.0002][.FFF1.0000.0000][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+0629 ; [.23C1.0023.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA
+06C3 ; [.23C1.0024.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
+06C0 ; [.23C1.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
+06D5 0654 ; [.23C1.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
+06BE ; [.23C1.0026.0002][.FFF1.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
+06CF ; [.23C1.0020.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH DOT ABOVE
+0649 ; [.23C7.0021.0002] # ARABIC LETTER ALEF MAKSURA
+06D2 ; [.23C7.0022.0002] # ARABIC LETTER YEH BARREE
+06D3 ; [.23C7.0022.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+064A ; [.23C7.0023.0002] # ARABIC LETTER YEH
+06D0 ; [.23C7.0024.0002] # ARABIC LETTER E
+06D1 ; [.23C7.0025.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
+06CD ; [.23C7.0026.0002] # ARABIC LETTER YEH WITH TAIL
+06CE ; [.23C7.0027.0002] # ARABIC LETTER YEH WITH SMALL V
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi.pl
index a1e6a6b3906..5fa2f4fb6ff 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi.pl
@@ -1,65 +1,65 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-01E5 ; [.19B8.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.19B8.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
-014B ; [.1A7D.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
-014A ; [.1A7D.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
-0167 ; [.1B57.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1B57.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
-0077 ; [.1BA5.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.1BA5.0021.0008] # LATIN CAPITAL LETTER W
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0292 ; [.1BE3.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1BE3.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
-01EF ; [.1BE3.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1BE3.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1C55.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C55.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C55.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C56.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C56.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
+01E5 ; [.1CF4.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
+01E4 ; [.1CF4.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
+014B ; [.1DB9.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
+014A ; [.1DB9.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
+0167 ; [.1E95.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
+0166 ; [.1E95.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
+0077 ; [.1EE3.0021.0002] # LATIN SMALL LETTER W
+0057 ; [.1EE3.0021.0008] # LATIN CAPITAL LETTER W
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0292 ; [.1F21.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
+01B7 ; [.1F21.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
+01EF ; [.1F21.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.1F21.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
+00E5 ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F96.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F97.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F97.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E6 ; [.1F97.0021.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F97.0021.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F97.0021.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F97.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F97.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00F6 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F98.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F98.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F98.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F98.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl
index 93f3df17505..d35a56f545a 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fi_phone.pl
@@ -1,63 +1,63 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-01E5 ; [.19B8.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.19B8.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
-014B ; [.1A7D.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
-014A ; [.1A7D.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
-0167 ; [.1B57.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1B57.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0292 ; [.1BE3.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1BE3.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
-01EF ; [.1BE3.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1BE3.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1C55.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C55.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C55.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C56.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C56.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
+01E5 ; [.1CF4.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
+01E4 ; [.1CF4.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
+014B ; [.1DB9.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
+014A ; [.1DB9.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
+0167 ; [.1E95.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
+0166 ; [.1E95.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0292 ; [.1F21.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
+01B7 ; [.1F21.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
+01EF ; [.1F21.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.1F21.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
+00E5 ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F96.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F97.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F97.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E6 ; [.1F97.0021.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F97.0021.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F97.0021.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F97.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F97.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00F6 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F98.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F98.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F98.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F98.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fil.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fil.pl
index d53d155d724..3cb2746b949 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fil.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fil.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00F1 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-006E 0067 ; [.1A7F.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
-004E 0067 ; [.1A7F.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
-004E 0047 ; [.1A7F.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00F1 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+006E 0067 ; [.1DBB.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
+004E 0067 ; [.1DBB.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
+004E 0047 ; [.1DBB.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fo.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fo.pl
index ec79a4983ba..c26ea48b101 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fo.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fo.pl
@@ -1,77 +1,77 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1C56.0020.001C][.0000.0000.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0061 0041 ; [.1C56.0020.001C][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
-0041 0061 ; [.1C56.0020.001D][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1C56.0020.001D][.0000.0000.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C8F.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C8F.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C8F.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E95.0020.0003][.1D18.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E95.0020.0009][.1D18.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F96.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F96.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F96.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F96.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F96.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F96.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F96.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F97.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F97.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F97.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F97.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F98.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F98.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F98.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.1F98.0020.001C][.0000.0000.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0061 0041 ; [.1F98.0020.001C][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
+0041 0061 ; [.1F98.0020.001D][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0041 0041 ; [.1F98.0020.001D][.0000.0000.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fr.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fr.pl
deleted file mode 100644
index 8c1a56567d0..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/fr.pl
+++ /dev/null
@@ -1,4 +0,0 @@
-+{
- locale_version => 1.14,
- backwards => 2,
-};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/gu.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/gu.pl
index 037b655b088..aabb3f2bdd4 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/gu.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/gu.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0A82 ; [.2438.0020.0002][.FFF1.0000.0000] # GUJARATI SIGN ANUSVARA
-0A81 ; [.2438.0021.0002][.FFF1.0000.0000] # GUJARATI SIGN CANDRABINDU
-0A83 ; [.2438.0020.0002][.FFF2.0000.0000] # GUJARATI SIGN VISARGA
-0AD0 ; [.2438.0020.0002][.FFF0.0000.0000] # GUJARATI OM
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0A82 ; [.2739.0020.0002][.FFF1.0000.0000] # GUJARATI SIGN ANUSVARA
+0A81 ; [.2739.0021.0002][.FFF1.0000.0000] # GUJARATI SIGN CANDRABINDU
+0A83 ; [.2739.0020.0002][.FFF2.0000.0000] # GUJARATI SIGN VISARGA
+0AD0 ; [.2739.0020.0002][.FFF0.0000.0000] # GUJARATI OM
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ha.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ha.pl
index 845b7c0ceac..a303bc6e842 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ha.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ha.pl
@@ -1,16 +1,16 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# b-hook, d-hook, k-hook, y-hook don't require tailoring
- entry => <<'ENTRY', # for DUCET v7.0.0
-0073 0068 ; [.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0053 0068 ; [.1B34.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.1B34.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-0074 0073 ; [.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
-0054 0073 ; [.1B58.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
-0054 0053 ; [.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
-02BC 0079 ; [.1BD9.0020.0003] # <MODIFIER LETTER APOSTROPHE, LATIN SMALL LETTER Y>
-02BC 0059 ; [.1BD9.0020.0009] # <MODIFIER LETTER APOSTROPHE, LATIN CAPITAL LETTER Y>
-0027 0079 ; [.1BD9.0020.0004] # <APOSTROPHE, LATIN SMALL LETTER Y>
-0027 0059 ; [.1BD9.0020.000A] # <APOSTROPHE, LATIN CAPITAL LETTER Y>
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0073 0068 ; [.1E72.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
+0053 0068 ; [.1E72.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+0053 0048 ; [.1E72.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
+0074 0073 ; [.1E96.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
+0054 0073 ; [.1E96.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
+0054 0053 ; [.1E96.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
+02BC 0079 ; [.1F17.0020.0003] # <MODIFIER LETTER APOSTROPHE, LATIN SMALL LETTER Y>
+02BC 0059 ; [.1F17.0020.0009] # <MODIFIER LETTER APOSTROPHE, LATIN CAPITAL LETTER Y>
+0027 0079 ; [.1F17.0020.0004] # <APOSTROPHE, LATIN SMALL LETTER Y>
+0027 0059 ; [.1F17.0020.000A] # <APOSTROPHE, LATIN CAPITAL LETTER Y>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/haw.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/haw.pl
index cb17e77a8e8..8cc7c2b692e 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/haw.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/haw.pl
@@ -1,37 +1,22 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0065 ; [.190D.0020.0002] # LATIN SMALL LETTER E
-0045 ; [.190D.0020.0008] # LATIN CAPITAL LETTER E
-0069 ; [.190E.0020.0002] # LATIN SMALL LETTER I
-0049 ; [.190E.0020.0008] # LATIN CAPITAL LETTER I
-006F ; [.190F.0020.0002] # LATIN SMALL LETTER O
-004F ; [.190F.0020.0008] # LATIN CAPITAL LETTER O
-0075 ; [.1910.0020.0002] # LATIN SMALL LETTER U
-0055 ; [.1910.0020.0008] # LATIN CAPITAL LETTER U
-0068 ; [.1911.0020.0002] # LATIN SMALL LETTER H
-0048 ; [.1911.0020.0008] # LATIN CAPITAL LETTER H
-006B ; [.1912.0020.0002] # LATIN SMALL LETTER K
-004B ; [.1912.0020.0008] # LATIN CAPITAL LETTER K
-212A ; [.1912.0020.0008] # KELVIN SIGN
-006C ; [.1913.0020.0002] # LATIN SMALL LETTER L
-004C ; [.1913.0020.0008] # LATIN CAPITAL LETTER L
-006D ; [.1914.0020.0002] # LATIN SMALL LETTER M
-004D ; [.1914.0020.0008] # LATIN CAPITAL LETTER M
-006E ; [.1915.0020.0002] # LATIN SMALL LETTER N
-004E ; [.1915.0020.0008] # LATIN CAPITAL LETTER N
-0070 ; [.1916.0020.0002] # LATIN SMALL LETTER P
-0050 ; [.1916.0020.0008] # LATIN CAPITAL LETTER P
-0077 ; [.1917.0020.0002] # LATIN SMALL LETTER W
-0057 ; [.1917.0020.0008] # LATIN CAPITAL LETTER W
-02BB ; [.1918.0020.0002] # MODIFIER LETTER TURNED COMMA
-0113 ; [.190D.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.190D.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
-012B ; [.190E.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.190E.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-014D ; [.190F.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.190F.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
-016B ; [.1910.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1910.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0065 ; [.1C48.0020.0002][.FFF1.0000.0000] # LATIN SMALL LETTER E
+0045 ; [.1C48.0020.0008][.FFF1.0000.0000] # LATIN CAPITAL LETTER E
+0069 ; [.1C48.0020.0002][.FFF2.0000.0000] # LATIN SMALL LETTER I
+0049 ; [.1C48.0020.0008][.FFF2.0000.0000] # LATIN CAPITAL LETTER I
+006F ; [.1C48.0020.0002][.FFF3.0000.0000] # LATIN SMALL LETTER O
+004F ; [.1C48.0020.0008][.FFF3.0000.0000] # LATIN CAPITAL LETTER O
+0075 ; [.1C48.0020.0002][.FFF4.0000.0000] # LATIN SMALL LETTER U
+0055 ; [.1C48.0020.0008][.FFF4.0000.0000] # LATIN CAPITAL LETTER U
+02BB ; [.1EF6.0020.0002] # MODIFIER LETTER TURNED COMMA
+0113 ; [.1C48.0020.0002][.FFF1.0000.0000][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C48.0020.0008][.FFF1.0000.0000][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
+012B ; [.1C48.0020.0002][.FFF2.0000.0000][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1C48.0020.0008][.FFF2.0000.0000][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
+014D ; [.1C48.0020.0002][.FFF3.0000.0000][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1C48.0020.0008][.FFF3.0000.0000][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
+016B ; [.1C48.0020.0002][.FFF4.0000.0000][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1C48.0020.0008][.FFF4.0000.0000][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hi.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hi.pl
index 1fab20c2186..730cfd552d1 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hi.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hi.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0902 ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
-0901 ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
-0903 ; [.235B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.235B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0902 ; [.265B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901 ; [.265B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
+0903 ; [.265B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
+0950 ; [.265B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hr.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hr.pl
index e7d29d61b3e..3e19c179d1c 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hr.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hr.pl
@@ -1,48 +1,48 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-010D ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0107 ; [.1940.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0301 ; [.1940.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0341 ; [.1940.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.1940.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0301 ; [.1940.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0341 ; [.1940.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0064 017E ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON>
-01C6 ; [.1954.0020.0003] # LATIN SMALL LETTER DZ WITH CARON
-0044 017E ; [.1954.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON>
-01C5 ; [.1954.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-0044 017D ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON>
-01C4 ; [.1954.0020.0009] # LATIN CAPITAL LETTER DZ WITH CARON
-0064 007A 030C ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
-0044 007A 030C ; [.1954.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
-0044 005A 030C ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, COMBINING CARON>
-0111 ; [.1955.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1955.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1955.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1955.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-006C 006A ; [.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER J>
-01C9 ; [.1A3C.0020.0003] # LATIN SMALL LETTER LJ
-004C 006A ; [.1A3C.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER J>
-01C8 ; [.1A3C.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-004C 004A ; [.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J>
-01C7 ; [.1A3C.0020.0009] # LATIN CAPITAL LETTER LJ
-006E 006A ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
-01CC ; [.1A7E.0020.0003] # LATIN SMALL LETTER NJ
-004E 006A ; [.1A7E.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
-01CB ; [.1A7E.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-004E 004A ; [.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
-01CA ; [.1A7E.0020.0009] # LATIN CAPITAL LETTER NJ
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0107 ; [.1C7C.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0063 0301 ; [.1C7C.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0063 0341 ; [.1C7C.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0106 ; [.1C7C.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0043 0301 ; [.1C7C.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0043 0341 ; [.1C7C.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0064 017E ; [.1C90.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON>
+01C6 ; [.1C90.0020.0003] # LATIN SMALL LETTER DZ WITH CARON
+0044 017E ; [.1C90.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON>
+01C5 ; [.1C90.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+0044 017D ; [.1C90.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON>
+01C4 ; [.1C90.0020.0009] # LATIN CAPITAL LETTER DZ WITH CARON
+0064 007A 030C ; [.1C90.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
+0044 007A 030C ; [.1C90.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
+0044 005A 030C ; [.1C90.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, COMBINING CARON>
+0111 ; [.1C91.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C91.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C91.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C91.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+006C 006A ; [.1D78.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER J>
+01C9 ; [.1D78.0020.0003] # LATIN SMALL LETTER LJ
+004C 006A ; [.1D78.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER J>
+01C8 ; [.1D78.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
+004C 004A ; [.1D78.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J>
+01C7 ; [.1D78.0020.0009] # LATIN CAPITAL LETTER LJ
+006E 006A ; [.1DBA.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
+01CC ; [.1DBA.0020.0003] # LATIN SMALL LETTER NJ
+004E 006A ; [.1DBA.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
+01CB ; [.1DBA.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
+004E 004A ; [.1DBA.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
+01CA ; [.1DBA.0020.0009] # LATIN CAPITAL LETTER NJ
+0161 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hu.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hu.pl
index 62b6707e3f0..04085f6cffe 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hu.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hu.pl
@@ -1,151 +1,151 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0063 0073 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER S>
-0063 0053 ; [.193F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
-0043 0073 ; [.193F.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0043 0053 ; [.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0064 007A ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0064 005A ; [.1954.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0044 007A ; [.1954.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 005A ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0064 007A 0073 ; [.1955.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0064 007A 0053 ; [.1955.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0064 005A 0073 ; [.1955.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0064 005A 0053 ; [.1955.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0044 007A 0073 ; [.1955.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0044 007A 0053 ; [.1955.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0044 005A 0073 ; [.1955.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0044 005A 0053 ; [.1955.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0067 0079 ; [.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0067 0059 ; [.19B9.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0079 ; [.19B9.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0047 0059 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-006C 0079 ; [.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-006C 0059 ; [.1A3C.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-004C 0079 ; [.1A3C.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-004C 0059 ; [.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-006E 0079 ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-006E 0059 ; [.1A7E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-004E 0079 ; [.1A7E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0073 007A ; [.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0073 005A ; [.1B34.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0053 007A ; [.1B34.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0053 005A ; [.1B34.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0074 0079 ; [.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0074 0059 ; [.1B58.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0079 ; [.1B58.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0054 0059 ; [.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-007A 0073 ; [.1BE4.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-007A 0053 ; [.1BE4.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-005A 0073 ; [.1BE4.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-005A 0053 ; [.1BE4.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-00F6 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1AA2.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA2.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1AA2.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1AA2.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1AA2.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1AA2.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00FC ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1B78.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B78.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1B78.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B78.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1B78.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B78.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1B78.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B78.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1B78.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1B78.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1B78.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1B78.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0063 0063 0073 ; [.193F.0020.0002][.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
-0063 0063 0053 ; [.193F.0020.0002][.193F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
-0063 0043 0073 ; [.193F.0020.0002][.193F.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0063 0043 0053 ; [.193F.0020.0002][.193F.0020.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0043 0063 0073 ; [.193F.0020.0008][.193F.0020.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
-0043 0063 0053 ; [.193F.0020.0008][.193F.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
-0043 0043 0073 ; [.193F.0020.0008][.193F.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0043 0043 0053 ; [.193F.0020.0008][.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0064 0064 007A ; [.1954.0020.0002][.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0064 0064 005A ; [.1954.0020.0002][.1954.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0064 0044 007A ; [.1954.0020.0002][.1954.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0064 0044 005A ; [.1954.0020.0002][.1954.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0044 0064 007A ; [.1954.0020.0008][.1954.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0044 0064 005A ; [.1954.0020.0008][.1954.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0044 0044 007A ; [.1954.0020.0008][.1954.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 0044 005A ; [.1954.0020.0008][.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0064 0064 007A 0073 ; [.1955.0020.0002][.1955.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0064 0064 007A 0053 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0064 0064 005A 0073 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0064 0064 005A 0053 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0064 0044 007A 0073 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0064 0044 007A 0053 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0064 0044 005A 0073 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0064 0044 005A 0053 ; [.1955.0020.0002][.1955.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0064 007A 0073 ; [.1955.0020.0008][.1955.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0044 0064 007A 0053 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0064 005A 0073 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0044 0064 005A 0053 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0044 007A 0073 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0044 0044 007A 0053 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0044 005A 0073 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0044 0044 005A 0053 ; [.1955.0020.0008][.1955.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0067 0067 0079 ; [.19B9.0020.0002][.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0067 0067 0059 ; [.19B9.0020.0002][.19B9.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0067 0047 0079 ; [.19B9.0020.0002][.19B9.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0067 0047 0059 ; [.19B9.0020.0002][.19B9.0020.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0067 0079 ; [.19B9.0020.0008][.19B9.0020.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0047 0067 0059 ; [.19B9.0020.0008][.19B9.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0047 0079 ; [.19B9.0020.0008][.19B9.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0047 0047 0059 ; [.19B9.0020.0008][.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-006C 006C 0079 ; [.1A3C.0020.0002][.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-006C 006C 0059 ; [.1A3C.0020.0002][.1A3C.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-006C 004C 0079 ; [.1A3C.0020.0002][.1A3C.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-006C 004C 0059 ; [.1A3C.0020.0002][.1A3C.0020.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-004C 006C 0079 ; [.1A3C.0020.0008][.1A3C.0020.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-004C 006C 0059 ; [.1A3C.0020.0008][.1A3C.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-004C 004C 0079 ; [.1A3C.0020.0008][.1A3C.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-004C 004C 0059 ; [.1A3C.0020.0008][.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-006E 006E 0079 ; [.1A7E.0020.0002][.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-006E 006E 0059 ; [.1A7E.0020.0002][.1A7E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-006E 004E 0079 ; [.1A7E.0020.0002][.1A7E.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-006E 004E 0059 ; [.1A7E.0020.0002][.1A7E.0020.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-004E 006E 0079 ; [.1A7E.0020.0008][.1A7E.0020.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 006E 0059 ; [.1A7E.0020.0008][.1A7E.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-004E 004E 0079 ; [.1A7E.0020.0008][.1A7E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 004E 0059 ; [.1A7E.0020.0008][.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0073 0073 007A ; [.1B34.0020.0002][.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0073 0073 005A ; [.1B34.0020.0002][.1B34.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0073 0053 007A ; [.1B34.0020.0002][.1B34.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0073 0053 005A ; [.1B34.0020.0002][.1B34.0020.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0053 0073 007A ; [.1B34.0020.0008][.1B34.0020.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0053 0073 005A ; [.1B34.0020.0008][.1B34.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0053 0053 007A ; [.1B34.0020.0008][.1B34.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0053 0053 005A ; [.1B34.0020.0008][.1B34.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0074 0074 0079 ; [.1B58.0020.0002][.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0074 0074 0059 ; [.1B58.0020.0002][.1B58.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0074 0054 0079 ; [.1B58.0020.0002][.1B58.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0074 0054 0059 ; [.1B58.0020.0002][.1B58.0020.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0074 0079 ; [.1B58.0020.0008][.1B58.0020.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0054 0074 0059 ; [.1B58.0020.0008][.1B58.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0054 0079 ; [.1B58.0020.0008][.1B58.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0054 0054 0059 ; [.1B58.0020.0008][.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-007A 007A 0073 ; [.1BE4.0020.0002][.1BE4.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-007A 007A 0053 ; [.1BE4.0020.0002][.1BE4.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-007A 005A 0073 ; [.1BE4.0020.0002][.1BE4.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-007A 005A 0053 ; [.1BE4.0020.0002][.1BE4.0020.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-005A 007A 0073 ; [.1BE4.0020.0008][.1BE4.0020.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-005A 007A 0053 ; [.1BE4.0020.0008][.1BE4.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-005A 005A 0073 ; [.1BE4.0020.0008][.1BE4.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-005A 005A 0053 ; [.1BE4.0020.0008][.1BE4.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0063 0073 ; [.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER S>
+0063 0053 ; [.1C7B.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
+0043 0073 ; [.1C7B.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
+0043 0053 ; [.1C7B.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
+0064 007A ; [.1C90.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0064 005A ; [.1C90.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
+0044 007A ; [.1C90.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0044 005A ; [.1C90.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0064 007A 0073 ; [.1C91.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0064 007A 0053 ; [.1C91.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0064 005A 0073 ; [.1C91.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0064 005A 0053 ; [.1C91.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0044 007A 0073 ; [.1C91.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0044 007A 0053 ; [.1C91.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0044 005A 0073 ; [.1C91.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0044 005A 0053 ; [.1C91.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0067 0079 ; [.1CF5.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
+0067 0059 ; [.1CF5.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
+0047 0079 ; [.1CF5.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
+0047 0059 ; [.1CF5.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
+006C 0079 ; [.1D78.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
+006C 0059 ; [.1D78.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
+004C 0079 ; [.1D78.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
+004C 0059 ; [.1D78.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
+006E 0079 ; [.1DBA.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+006E 0059 ; [.1DBA.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
+004E 0079 ; [.1DBA.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1DBA.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0073 007A ; [.1E72.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
+0073 005A ; [.1E72.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
+0053 007A ; [.1E72.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
+0053 005A ; [.1E72.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
+0074 0079 ; [.1E96.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
+0074 0059 ; [.1E96.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
+0054 0079 ; [.1E96.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
+0054 0059 ; [.1E96.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
+007A 0073 ; [.1F22.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+007A 0053 ; [.1F22.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+005A 0073 ; [.1F22.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+005A 0053 ; [.1F22.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+00F6 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1DDE.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1DDE.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1DDE.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1DDE.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1DDE.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1DDE.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+00FC ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1EB6.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB6.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1EB6.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB6.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1EB6.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB6.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1EB6.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB6.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1EB6.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1EB6.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1EB6.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1EB6.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0063 0063 0073 ; [.1C7B.0020.0002][.1C7B.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
+0063 0063 0053 ; [.1C7B.0020.0002][.1C7B.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
+0063 0043 0073 ; [.1C7B.0020.0002][.1C7B.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
+0063 0043 0053 ; [.1C7B.0020.0002][.1C7B.0020.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
+0043 0063 0073 ; [.1C7B.0020.0008][.1C7B.0020.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
+0043 0063 0053 ; [.1C7B.0020.0008][.1C7B.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
+0043 0043 0073 ; [.1C7B.0020.0008][.1C7B.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
+0043 0043 0053 ; [.1C7B.0020.0008][.1C7B.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
+0064 0064 007A ; [.1C90.0020.0002][.1C90.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0064 0064 005A ; [.1C90.0020.0002][.1C90.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
+0064 0044 007A ; [.1C90.0020.0002][.1C90.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0064 0044 005A ; [.1C90.0020.0002][.1C90.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0044 0064 007A ; [.1C90.0020.0008][.1C90.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0044 0064 005A ; [.1C90.0020.0008][.1C90.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
+0044 0044 007A ; [.1C90.0020.0008][.1C90.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0044 0044 005A ; [.1C90.0020.0008][.1C90.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0064 0064 007A 0073 ; [.1C91.0020.0002][.1C91.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0064 0064 007A 0053 ; [.1C91.0020.0002][.1C91.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0064 0064 005A 0073 ; [.1C91.0020.0002][.1C91.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0064 0064 005A 0053 ; [.1C91.0020.0002][.1C91.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0064 0044 007A 0073 ; [.1C91.0020.0002][.1C91.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0064 0044 007A 0053 ; [.1C91.0020.0002][.1C91.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0064 0044 005A 0073 ; [.1C91.0020.0002][.1C91.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0064 0044 005A 0053 ; [.1C91.0020.0002][.1C91.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0044 0064 007A 0073 ; [.1C91.0020.0008][.1C91.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0044 0064 007A 0053 ; [.1C91.0020.0008][.1C91.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0044 0064 005A 0073 ; [.1C91.0020.0008][.1C91.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0044 0064 005A 0053 ; [.1C91.0020.0008][.1C91.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0044 0044 007A 0073 ; [.1C91.0020.0008][.1C91.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0044 0044 007A 0053 ; [.1C91.0020.0008][.1C91.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0044 0044 005A 0073 ; [.1C91.0020.0008][.1C91.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0044 0044 005A 0053 ; [.1C91.0020.0008][.1C91.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0067 0067 0079 ; [.1CF5.0020.0002][.1CF5.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
+0067 0067 0059 ; [.1CF5.0020.0002][.1CF5.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
+0067 0047 0079 ; [.1CF5.0020.0002][.1CF5.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
+0067 0047 0059 ; [.1CF5.0020.0002][.1CF5.0020.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
+0047 0067 0079 ; [.1CF5.0020.0008][.1CF5.0020.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
+0047 0067 0059 ; [.1CF5.0020.0008][.1CF5.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
+0047 0047 0079 ; [.1CF5.0020.0008][.1CF5.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
+0047 0047 0059 ; [.1CF5.0020.0008][.1CF5.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
+006C 006C 0079 ; [.1D78.0020.0002][.1D78.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
+006C 006C 0059 ; [.1D78.0020.0002][.1D78.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
+006C 004C 0079 ; [.1D78.0020.0002][.1D78.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
+006C 004C 0059 ; [.1D78.0020.0002][.1D78.0020.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
+004C 006C 0079 ; [.1D78.0020.0008][.1D78.0020.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
+004C 006C 0059 ; [.1D78.0020.0008][.1D78.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
+004C 004C 0079 ; [.1D78.0020.0008][.1D78.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
+004C 004C 0059 ; [.1D78.0020.0008][.1D78.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
+006E 006E 0079 ; [.1DBA.0020.0002][.1DBA.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+006E 006E 0059 ; [.1DBA.0020.0002][.1DBA.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
+006E 004E 0079 ; [.1DBA.0020.0002][.1DBA.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+006E 004E 0059 ; [.1DBA.0020.0002][.1DBA.0020.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+004E 006E 0079 ; [.1DBA.0020.0008][.1DBA.0020.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 006E 0059 ; [.1DBA.0020.0008][.1DBA.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
+004E 004E 0079 ; [.1DBA.0020.0008][.1DBA.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 004E 0059 ; [.1DBA.0020.0008][.1DBA.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0073 0073 007A ; [.1E72.0020.0002][.1E72.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
+0073 0073 005A ; [.1E72.0020.0002][.1E72.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
+0073 0053 007A ; [.1E72.0020.0002][.1E72.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
+0073 0053 005A ; [.1E72.0020.0002][.1E72.0020.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
+0053 0073 007A ; [.1E72.0020.0008][.1E72.0020.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
+0053 0073 005A ; [.1E72.0020.0008][.1E72.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
+0053 0053 007A ; [.1E72.0020.0008][.1E72.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
+0053 0053 005A ; [.1E72.0020.0008][.1E72.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
+0074 0074 0079 ; [.1E96.0020.0002][.1E96.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
+0074 0074 0059 ; [.1E96.0020.0002][.1E96.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
+0074 0054 0079 ; [.1E96.0020.0002][.1E96.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
+0074 0054 0059 ; [.1E96.0020.0002][.1E96.0020.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
+0054 0074 0079 ; [.1E96.0020.0008][.1E96.0020.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
+0054 0074 0059 ; [.1E96.0020.0008][.1E96.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
+0054 0054 0079 ; [.1E96.0020.0008][.1E96.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
+0054 0054 0059 ; [.1E96.0020.0008][.1E96.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
+007A 007A 0073 ; [.1F22.0020.0002][.1F22.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+007A 007A 0053 ; [.1F22.0020.0002][.1F22.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+007A 005A 0073 ; [.1F22.0020.0002][.1F22.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+007A 005A 0053 ; [.1F22.0020.0002][.1F22.0020.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+005A 007A 0073 ; [.1F22.0020.0008][.1F22.0020.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+005A 007A 0053 ; [.1F22.0020.0008][.1F22.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+005A 005A 0073 ; [.1F22.0020.0008][.1F22.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+005A 005A 0053 ; [.1F22.0020.0008][.1F22.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hy.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hy.pl
index 2b5e06d7b5b..59615f95709 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hy.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/hy.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0587 ; [.1FBD.0020.0002][.FFF1.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
-0584 ; [.1FBD.0020.0002][.FFF0.0000.0000] # ARMENIAN SMALL LETTER KEH
-0535 0582 ; [.1FBD.0020.0008][.FFF1.0000.0000] # <ARMENIAN CAPITAL LETTER ECH, ARMENIAN SMALL LETTER YIWN>
-0554 ; [.1FBD.0020.0008][.FFF0.0000.0000] # ARMENIAN CAPITAL LETTER KEH
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0587 ; [.22B3.0020.0002][.FFF1.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
+0584 ; [.22B3.0020.0002][.FFF0.0000.0000] # ARMENIAN SMALL LETTER KEH
+0535 0582 ; [.22B3.0020.0008][.FFF1.0000.0000] # <ARMENIAN CAPITAL LETTER ECH, ARMENIAN SMALL LETTER YIWN>
+0554 ; [.22B3.0020.0008][.FFF0.0000.0000] # ARMENIAN CAPITAL LETTER KEH
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ig.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ig.pl
index 518cd522b9c..1ac922bdb83 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ig.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ig.pl
@@ -1,54 +1,54 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0063 0068 ; [.1926.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0043 0068 ; [.1926.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.1926.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0067 0062 ; [.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.19B9.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-0067 0068 ; [.19BA.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H>
-0047 0068 ; [.19BA.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H>
-0047 0048 ; [.19BA.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H>
-0067 0077 ; [.19BB.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER W>
-0047 0077 ; [.19BB.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER W>
-0047 0057 ; [.19BB.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER W>
-1ECB ; [.19F7.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-0069 0323 ; [.19F7.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.19F7.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
-0049 0323 ; [.19F7.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
-006B 0070 ; [.1A2A.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
-004B 0070 ; [.1A2A.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
-004B 0050 ; [.1A2A.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
-006B 0077 ; [.1A2B.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER W>
-004B 0077 ; [.1A2B.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER W>
-004B 0057 ; [.1A2B.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER W>
-1E45 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-006E 0307 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-1E44 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-004E 0307 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-006E 0077 ; [.1A7F.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER W>
-004E 0077 ; [.1A7F.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER W>
-004E 0057 ; [.1A7F.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER W>
-006E 0079 ; [.1A80.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.1A80.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1A80.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-1ECD ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-006F 0323 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-004F 0323 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.1AA2.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EE3 ; [.1AA2.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.1AA2.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-0073 0068 ; [.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0053 0068 ; [.1B34.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.1B34.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-1EE5 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-0075 0323 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
-0055 0323 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EF1 ; [.1B78.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1B78.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0063 0068 ; [.1C61.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0043 0068 ; [.1C61.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1C61.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+0067 0062 ; [.1CF5.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
+0047 0062 ; [.1CF5.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
+0047 0042 ; [.1CF5.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
+0067 0068 ; [.1CF6.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H>
+0047 0068 ; [.1CF6.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H>
+0047 0048 ; [.1CF6.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H>
+0067 0077 ; [.1CF7.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER W>
+0047 0077 ; [.1CF7.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER W>
+0047 0057 ; [.1CF7.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER W>
+1ECB ; [.1D33.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
+0069 0323 ; [.1D33.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
+1ECA ; [.1D33.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
+0049 0323 ; [.1D33.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
+006B 0070 ; [.1D66.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
+004B 0070 ; [.1D66.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
+004B 0050 ; [.1D66.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
+006B 0077 ; [.1D67.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER W>
+004B 0077 ; [.1D67.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER W>
+004B 0057 ; [.1D67.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER W>
+1E45 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
+006E 0307 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
+1E44 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
+004E 0307 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
+006E 0077 ; [.1DBB.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER W>
+004E 0077 ; [.1DBB.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER W>
+004E 0057 ; [.1DBB.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER W>
+006E 0079 ; [.1DBC.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 0079 ; [.1DBC.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1DBC.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+1ECD ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+006F 0323 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+1ECC ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
+004F 0323 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
+1ED9 ; [.1DDE.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1DDE.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EE3 ; [.1DDE.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE2 ; [.1DDE.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+0073 0068 ; [.1E72.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
+0053 0068 ; [.1E72.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+0053 0048 ; [.1E72.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
+1EE5 ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
+0075 0323 ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
+1EE4 ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
+0055 0323 ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
+1EF1 ; [.1EB6.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF0 ; [.1EB6.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/is.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/is.pl
index 16d2491fe9b..5ffe0405bb4 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/is.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/is.pl
@@ -1,81 +1,81 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E1 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1954.0020.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1954.0020.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1954.0020.0008] # LATIN CAPITAL LETTER ETH
-00E9 ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-00ED ; [.1A0F.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.1A0F.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.1A0F.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.1A0F.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.1A0F.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.1A0F.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-00F3 ; [.1ACD.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1ACD.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1ACD.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1ACD.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1ACD.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1ACD.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-00FA ; [.1BA4.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1BA4.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1BA4.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1BA4.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1BA4.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1BA4.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-00FD ; [.1BE2.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-0079 0301 ; [.1BE2.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-0079 0341 ; [.1BE2.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-0059 0301 ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-0059 0341 ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00E1 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C90.0020.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C90.0020.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C90.0020.0008] # LATIN CAPITAL LETTER ETH
+00E9 ; [.1CE4.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CE4.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CE4.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CE4.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CE4.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CE4.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+00ED ; [.1D4B.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1D4B.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1D4B.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D4B.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1D4B.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1D4B.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+00F3 ; [.1E0B.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1E0B.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1E0B.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1E0B.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1E0B.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1E0B.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+00FA ; [.1EE2.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1EE2.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1EE2.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EE2.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1EE2.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1EE2.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+00FD ; [.1F20.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
+0079 0301 ; [.1F20.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
+0079 0341 ; [.1F20.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
+00DD ; [.1F20.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
+0059 0301 ; [.1F20.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
+0059 0341 ; [.1F20.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
+00E6 ; [.1F96.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F96.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F96.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F96.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F96.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F96.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F96.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00F6 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F97.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F97.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F97.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F97.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00E5 ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F98.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F98.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F98.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ja.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ja.pl
index 5cc9358bc33..6562562dae4 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ja.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ja.pl
@@ -1,1337 +1,1337 @@
use Unicode::Collate::CJK::JISX0208;
+{
- locale_version => 1.14,
+ locale_version => 1.25,
overrideCJK => \&Unicode::Collate::CJK::JISX0208::weightJISX0208,
- entry => <<'ENTRY', # for DUCET v7.0.0
-30A1 ; [.38D4.0020.000F.0002] # KATAKANA LETTER SMALL A
-30A2 ; [.38D4.0020.0011.0002] # KATAKANA LETTER A
-30A3 ; [.38D5.0020.000F.0002] # KATAKANA LETTER SMALL I
-30A4 ; [.38D5.0020.0011.0002] # KATAKANA LETTER I
-30A5 ; [.38D6.0020.000F.0002] # KATAKANA LETTER SMALL U
-30A6 ; [.38D6.0020.0011.0002] # KATAKANA LETTER U
-30A7 ; [.38D8.0020.000F.0002] # KATAKANA LETTER SMALL E
-30A8 ; [.38D8.0020.0011.0002] # KATAKANA LETTER E
-30A9 ; [.38D9.0020.000F.0002] # KATAKANA LETTER SMALL O
-30AA ; [.38D9.0020.0011.0002] # KATAKANA LETTER O
-30AB ; [.38DA.0020.0011.0002] # KATAKANA LETTER KA
-30AC ; [.38DA.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GA
-30AD ; [.38DB.0020.0011.0002] # KATAKANA LETTER KI
-30AE ; [.38DB.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GI
-30AF ; [.38DC.0020.0011.0002] # KATAKANA LETTER KU
-30B0 ; [.38DC.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GU
-30B1 ; [.38DD.0020.0011.0002] # KATAKANA LETTER KE
-30B2 ; [.38DD.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GE
-30B3 ; [.38DE.0020.0011.0002] # KATAKANA LETTER KO
-30B4 ; [.38DE.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GO
-30B5 ; [.38DF.0020.0011.0002] # KATAKANA LETTER SA
-30B6 ; [.38DF.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZA
-30B7 ; [.38E0.0020.0011.0002] # KATAKANA LETTER SI
-30B8 ; [.38E0.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZI
-30B9 ; [.38E1.0020.0011.0002] # KATAKANA LETTER SU
-30BA ; [.38E1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZU
-30BB ; [.38E2.0020.0011.0002] # KATAKANA LETTER SE
-30BC ; [.38E2.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZE
-30BD ; [.38E3.0020.0011.0002] # KATAKANA LETTER SO
-30BE ; [.38E3.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZO
-30BF ; [.38E4.0020.0011.0002] # KATAKANA LETTER TA
-30C0 ; [.38E4.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DA
-30C1 ; [.38E5.0020.0011.0002] # KATAKANA LETTER TI
-30C2 ; [.38E5.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DI
-30C3 ; [.38E6.0020.000F.0002] # KATAKANA LETTER SMALL TU
-30C4 ; [.38E6.0020.0011.0002] # KATAKANA LETTER TU
-30C5 ; [.38E6.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DU
-30C6 ; [.38E7.0020.0011.0002] # KATAKANA LETTER TE
-30C7 ; [.38E7.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DE
-30C8 ; [.38E8.0020.0011.0002] # KATAKANA LETTER TO
-30C9 ; [.38E8.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DO
-30CA ; [.38E9.0020.0011.0002] # KATAKANA LETTER NA
-30CB ; [.38EA.0020.0011.0002] # KATAKANA LETTER NI
-30CC ; [.38EB.0020.0011.0002] # KATAKANA LETTER NU
-30CD ; [.38EC.0020.0011.0002] # KATAKANA LETTER NE
-30CE ; [.38ED.0020.0011.0002] # KATAKANA LETTER NO
-30CF ; [.38EE.0020.0011.0002] # KATAKANA LETTER HA
-30D0 ; [.38EE.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BA
-30D1 ; [.38EE.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PA
-30D2 ; [.38EF.0020.0011.0002] # KATAKANA LETTER HI
-30D3 ; [.38EF.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BI
-30D4 ; [.38EF.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PI
-30D5 ; [.38F0.0020.0011.0002] # KATAKANA LETTER HU
-30D6 ; [.38F0.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BU
-30D7 ; [.38F0.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PU
-30D8 ; [.38F1.0020.0011.0002] # KATAKANA LETTER HE
-30D9 ; [.38F1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BE
-30DA ; [.38F1.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PE
-30DB ; [.38F2.0020.0011.0002] # KATAKANA LETTER HO
-30DC ; [.38F2.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BO
-30DD ; [.38F2.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PO
-30DE ; [.38F3.0020.0011.0002] # KATAKANA LETTER MA
-30DF ; [.38F4.0020.0011.0002] # KATAKANA LETTER MI
-30E0 ; [.38F5.0020.0011.0002] # KATAKANA LETTER MU
-30E1 ; [.38F6.0020.0011.0002] # KATAKANA LETTER ME
-30E2 ; [.38F7.0020.0011.0002] # KATAKANA LETTER MO
-30E3 ; [.38F8.0020.000F.0002] # KATAKANA LETTER SMALL YA
-30E4 ; [.38F8.0020.0011.0002] # KATAKANA LETTER YA
-30E5 ; [.38F9.0020.000F.0002] # KATAKANA LETTER SMALL YU
-30E6 ; [.38F9.0020.0011.0002] # KATAKANA LETTER YU
-30E7 ; [.38FB.0020.000F.0002] # KATAKANA LETTER SMALL YO
-30E8 ; [.38FB.0020.0011.0002] # KATAKANA LETTER YO
-30E9 ; [.38FC.0020.0011.0002] # KATAKANA LETTER RA
-30EA ; [.38FD.0020.0011.0002] # KATAKANA LETTER RI
-30EB ; [.38FE.0020.0011.0002] # KATAKANA LETTER RU
-30EC ; [.38FF.0020.0011.0002] # KATAKANA LETTER RE
-30ED ; [.3900.0020.0011.0002] # KATAKANA LETTER RO
-30EE ; [.3901.0020.000F.0002] # KATAKANA LETTER SMALL WA
-30EF ; [.3901.0020.0011.0002] # KATAKANA LETTER WA
-30F0 ; [.3902.0020.0011.0002] # KATAKANA LETTER WI
-30F1 ; [.3903.0020.0011.0002] # KATAKANA LETTER WE
-30F2 ; [.3904.0020.0011.0002] # KATAKANA LETTER WO
-30F3 ; [.3905.0020.0011.0002] # KATAKANA LETTER N
-30F4 ; [.38D6.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VU
-30F5 ; [.38DA.0020.000F.0002] # KATAKANA LETTER SMALL KA
-30F6 ; [.38DD.0020.000F.0002] # KATAKANA LETTER SMALL KE
-30F7 ; [.3901.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VA
-30F8 ; [.3902.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VI
-30F9 ; [.3903.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VE
-30FA ; [.3904.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VO
-30FD ; [.18D5.0020.0002.0002] # KATAKANA ITERATION MARK
-30FE ; [.18D5.0020.0002.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
-3041 ; [.38D4.0020.000F.0001] # HIRAGANA LETTER SMALL A
-3042 ; [.38D4.0020.0011.0001] # HIRAGANA LETTER A
-3043 ; [.38D5.0020.000F.0001] # HIRAGANA LETTER SMALL I
-3044 ; [.38D5.0020.0011.0001] # HIRAGANA LETTER I
-3045 ; [.38D6.0020.000F.0001] # HIRAGANA LETTER SMALL U
-3046 ; [.38D6.0020.0011.0001] # HIRAGANA LETTER U
-3047 ; [.38D8.0020.000F.0001] # HIRAGANA LETTER SMALL E
-3048 ; [.38D8.0020.0011.0001] # HIRAGANA LETTER E
-3049 ; [.38D9.0020.000F.0001] # HIRAGANA LETTER SMALL O
-304A ; [.38D9.0020.0011.0001] # HIRAGANA LETTER O
-304B ; [.38DA.0020.0011.0001] # HIRAGANA LETTER KA
-304C ; [.38DA.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GA
-304D ; [.38DB.0020.0011.0001] # HIRAGANA LETTER KI
-304E ; [.38DB.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GI
-304F ; [.38DC.0020.0011.0001] # HIRAGANA LETTER KU
-3050 ; [.38DC.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GU
-3051 ; [.38DD.0020.0011.0001] # HIRAGANA LETTER KE
-3052 ; [.38DD.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GE
-3053 ; [.38DE.0020.0011.0001] # HIRAGANA LETTER KO
-3054 ; [.38DE.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GO
-3055 ; [.38DF.0020.0011.0001] # HIRAGANA LETTER SA
-3056 ; [.38DF.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZA
-3057 ; [.38E0.0020.0011.0001] # HIRAGANA LETTER SI
-3058 ; [.38E0.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZI
-3059 ; [.38E1.0020.0011.0001] # HIRAGANA LETTER SU
-305A ; [.38E1.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZU
-305B ; [.38E2.0020.0011.0001] # HIRAGANA LETTER SE
-305C ; [.38E2.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZE
-305D ; [.38E3.0020.0011.0001] # HIRAGANA LETTER SO
-305E ; [.38E3.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZO
-305F ; [.38E4.0020.0011.0001] # HIRAGANA LETTER TA
-3060 ; [.38E4.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DA
-3061 ; [.38E5.0020.0011.0001] # HIRAGANA LETTER TI
-3062 ; [.38E5.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DI
-3063 ; [.38E6.0020.000F.0001] # HIRAGANA LETTER SMALL TU
-3064 ; [.38E6.0020.0011.0001] # HIRAGANA LETTER TU
-3065 ; [.38E6.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DU
-3066 ; [.38E7.0020.0011.0001] # HIRAGANA LETTER TE
-3067 ; [.38E7.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DE
-3068 ; [.38E8.0020.0011.0001] # HIRAGANA LETTER TO
-3069 ; [.38E8.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DO
-306A ; [.38E9.0020.0011.0001] # HIRAGANA LETTER NA
-306B ; [.38EA.0020.0011.0001] # HIRAGANA LETTER NI
-306C ; [.38EB.0020.0011.0001] # HIRAGANA LETTER NU
-306D ; [.38EC.0020.0011.0001] # HIRAGANA LETTER NE
-306E ; [.38ED.0020.0011.0001] # HIRAGANA LETTER NO
-306F ; [.38EE.0020.0011.0001] # HIRAGANA LETTER HA
-3070 ; [.38EE.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BA
-3071 ; [.38EE.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PA
-3072 ; [.38EF.0020.0011.0001] # HIRAGANA LETTER HI
-3073 ; [.38EF.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BI
-3074 ; [.38EF.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PI
-3075 ; [.38F0.0020.0011.0001] # HIRAGANA LETTER HU
-3076 ; [.38F0.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BU
-3077 ; [.38F0.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PU
-3078 ; [.38F1.0020.0011.0001] # HIRAGANA LETTER HE
-3079 ; [.38F1.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BE
-307A ; [.38F1.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PE
-307B ; [.38F2.0020.0011.0001] # HIRAGANA LETTER HO
-307C ; [.38F2.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BO
-307D ; [.38F2.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PO
-307E ; [.38F3.0020.0011.0001] # HIRAGANA LETTER MA
-307F ; [.38F4.0020.0011.0001] # HIRAGANA LETTER MI
-3080 ; [.38F5.0020.0011.0001] # HIRAGANA LETTER MU
-3081 ; [.38F6.0020.0011.0001] # HIRAGANA LETTER ME
-3082 ; [.38F7.0020.0011.0001] # HIRAGANA LETTER MO
-3083 ; [.38F8.0020.000F.0001] # HIRAGANA LETTER SMALL YA
-3084 ; [.38F8.0020.0011.0001] # HIRAGANA LETTER YA
-3085 ; [.38F9.0020.000F.0001] # HIRAGANA LETTER SMALL YU
-3086 ; [.38F9.0020.0011.0001] # HIRAGANA LETTER YU
-3087 ; [.38FB.0020.000F.0001] # HIRAGANA LETTER SMALL YO
-3088 ; [.38FB.0020.0011.0001] # HIRAGANA LETTER YO
-3089 ; [.38FC.0020.0011.0001] # HIRAGANA LETTER RA
-308A ; [.38FD.0020.0011.0001] # HIRAGANA LETTER RI
-308B ; [.38FE.0020.0011.0001] # HIRAGANA LETTER RU
-308C ; [.38FF.0020.0011.0001] # HIRAGANA LETTER RE
-308D ; [.3900.0020.0011.0001] # HIRAGANA LETTER RO
-308E ; [.3901.0020.000F.0001] # HIRAGANA LETTER SMALL WA
-308F ; [.3901.0020.0011.0001] # HIRAGANA LETTER WA
-3090 ; [.3902.0020.0011.0001] # HIRAGANA LETTER WI
-3091 ; [.3903.0020.0011.0001] # HIRAGANA LETTER WE
-3092 ; [.3904.0020.0011.0001] # HIRAGANA LETTER WO
-3093 ; [.3905.0020.0011.0001] # HIRAGANA LETTER N
-3094 ; [.38D6.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER VU
-3095 ; [.38DA.0020.000F.0001] # HIRAGANA LETTER SMALL KA
-3096 ; [.38DD.0020.000F.0001] # HIRAGANA LETTER SMALL KE
-309D ; [.18D5.0020.0002.0001] # HIRAGANA ITERATION MARK
-309E ; [.18D5.0020.0002.0001][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
+ entry => <<'ENTRY', # for DUCET v9.0.0
+30A1 ; [.3D5A.0020.000F.0002] # KATAKANA LETTER SMALL A
+30A2 ; [.3D5A.0020.0011.0002] # KATAKANA LETTER A
+30A3 ; [.3D5B.0020.000F.0002] # KATAKANA LETTER SMALL I
+30A4 ; [.3D5B.0020.0011.0002] # KATAKANA LETTER I
+30A5 ; [.3D5C.0020.000F.0002] # KATAKANA LETTER SMALL U
+30A6 ; [.3D5C.0020.0011.0002] # KATAKANA LETTER U
+30A7 ; [.3D5E.0020.000F.0002] # KATAKANA LETTER SMALL E
+30A8 ; [.3D5E.0020.0011.0002] # KATAKANA LETTER E
+30A9 ; [.3D5F.0020.000F.0002] # KATAKANA LETTER SMALL O
+30AA ; [.3D5F.0020.0011.0002] # KATAKANA LETTER O
+30AB ; [.3D60.0020.0011.0002] # KATAKANA LETTER KA
+30AC ; [.3D60.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GA
+30AD ; [.3D61.0020.0011.0002] # KATAKANA LETTER KI
+30AE ; [.3D61.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GI
+30AF ; [.3D62.0020.0011.0002] # KATAKANA LETTER KU
+30B0 ; [.3D62.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GU
+30B1 ; [.3D63.0020.0011.0002] # KATAKANA LETTER KE
+30B2 ; [.3D63.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GE
+30B3 ; [.3D64.0020.0011.0002] # KATAKANA LETTER KO
+30B4 ; [.3D64.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GO
+30B5 ; [.3D65.0020.0011.0002] # KATAKANA LETTER SA
+30B6 ; [.3D65.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZA
+30B7 ; [.3D66.0020.0011.0002] # KATAKANA LETTER SI
+30B8 ; [.3D66.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZI
+30B9 ; [.3D67.0020.0011.0002] # KATAKANA LETTER SU
+30BA ; [.3D67.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZU
+30BB ; [.3D68.0020.0011.0002] # KATAKANA LETTER SE
+30BC ; [.3D68.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZE
+30BD ; [.3D69.0020.0011.0002] # KATAKANA LETTER SO
+30BE ; [.3D69.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZO
+30BF ; [.3D6A.0020.0011.0002] # KATAKANA LETTER TA
+30C0 ; [.3D6A.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DA
+30C1 ; [.3D6B.0020.0011.0002] # KATAKANA LETTER TI
+30C2 ; [.3D6B.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DI
+30C3 ; [.3D6C.0020.000F.0002] # KATAKANA LETTER SMALL TU
+30C4 ; [.3D6C.0020.0011.0002] # KATAKANA LETTER TU
+30C5 ; [.3D6C.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DU
+30C6 ; [.3D6D.0020.0011.0002] # KATAKANA LETTER TE
+30C7 ; [.3D6D.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DE
+30C8 ; [.3D6E.0020.0011.0002] # KATAKANA LETTER TO
+30C9 ; [.3D6E.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DO
+30CA ; [.3D6F.0020.0011.0002] # KATAKANA LETTER NA
+30CB ; [.3D70.0020.0011.0002] # KATAKANA LETTER NI
+30CC ; [.3D71.0020.0011.0002] # KATAKANA LETTER NU
+30CD ; [.3D72.0020.0011.0002] # KATAKANA LETTER NE
+30CE ; [.3D73.0020.0011.0002] # KATAKANA LETTER NO
+30CF ; [.3D74.0020.0011.0002] # KATAKANA LETTER HA
+30D0 ; [.3D74.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BA
+30D1 ; [.3D74.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PA
+30D2 ; [.3D75.0020.0011.0002] # KATAKANA LETTER HI
+30D3 ; [.3D75.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BI
+30D4 ; [.3D75.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PI
+30D5 ; [.3D76.0020.0011.0002] # KATAKANA LETTER HU
+30D6 ; [.3D76.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BU
+30D7 ; [.3D76.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PU
+30D8 ; [.3D77.0020.0011.0002] # KATAKANA LETTER HE
+30D9 ; [.3D77.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BE
+30DA ; [.3D77.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PE
+30DB ; [.3D78.0020.0011.0002] # KATAKANA LETTER HO
+30DC ; [.3D78.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BO
+30DD ; [.3D78.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PO
+30DE ; [.3D79.0020.0011.0002] # KATAKANA LETTER MA
+30DF ; [.3D7A.0020.0011.0002] # KATAKANA LETTER MI
+30E0 ; [.3D7B.0020.0011.0002] # KATAKANA LETTER MU
+30E1 ; [.3D7C.0020.0011.0002] # KATAKANA LETTER ME
+30E2 ; [.3D7D.0020.0011.0002] # KATAKANA LETTER MO
+30E3 ; [.3D7E.0020.000F.0002] # KATAKANA LETTER SMALL YA
+30E4 ; [.3D7E.0020.0011.0002] # KATAKANA LETTER YA
+30E5 ; [.3D7F.0020.000F.0002] # KATAKANA LETTER SMALL YU
+30E6 ; [.3D7F.0020.0011.0002] # KATAKANA LETTER YU
+30E7 ; [.3D81.0020.000F.0002] # KATAKANA LETTER SMALL YO
+30E8 ; [.3D81.0020.0011.0002] # KATAKANA LETTER YO
+30E9 ; [.3D82.0020.0011.0002] # KATAKANA LETTER RA
+30EA ; [.3D83.0020.0011.0002] # KATAKANA LETTER RI
+30EB ; [.3D84.0020.0011.0002] # KATAKANA LETTER RU
+30EC ; [.3D85.0020.0011.0002] # KATAKANA LETTER RE
+30ED ; [.3D86.0020.0011.0002] # KATAKANA LETTER RO
+30EE ; [.3D87.0020.000F.0002] # KATAKANA LETTER SMALL WA
+30EF ; [.3D87.0020.0011.0002] # KATAKANA LETTER WA
+30F0 ; [.3D88.0020.0011.0002] # KATAKANA LETTER WI
+30F1 ; [.3D89.0020.0011.0002] # KATAKANA LETTER WE
+30F2 ; [.3D8A.0020.0011.0002] # KATAKANA LETTER WO
+30F3 ; [.3D8B.0020.0011.0002] # KATAKANA LETTER N
+30F4 ; [.3D5C.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VU
+30F5 ; [.3D60.0020.000F.0002] # KATAKANA LETTER SMALL KA
+30F6 ; [.3D63.0020.000F.0002] # KATAKANA LETTER SMALL KE
+30F7 ; [.3D87.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VA
+30F8 ; [.3D88.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VI
+30F9 ; [.3D89.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VE
+30FA ; [.3D8A.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VO
+30FD ; [.1C0F.0020.0002.0002] # KATAKANA ITERATION MARK
+30FE ; [.1C0F.0020.0002.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
+3041 ; [.3D5A.0020.000F.0001] # HIRAGANA LETTER SMALL A
+3042 ; [.3D5A.0020.0011.0001] # HIRAGANA LETTER A
+3043 ; [.3D5B.0020.000F.0001] # HIRAGANA LETTER SMALL I
+3044 ; [.3D5B.0020.0011.0001] # HIRAGANA LETTER I
+3045 ; [.3D5C.0020.000F.0001] # HIRAGANA LETTER SMALL U
+3046 ; [.3D5C.0020.0011.0001] # HIRAGANA LETTER U
+3047 ; [.3D5E.0020.000F.0001] # HIRAGANA LETTER SMALL E
+3048 ; [.3D5E.0020.0011.0001] # HIRAGANA LETTER E
+3049 ; [.3D5F.0020.000F.0001] # HIRAGANA LETTER SMALL O
+304A ; [.3D5F.0020.0011.0001] # HIRAGANA LETTER O
+304B ; [.3D60.0020.0011.0001] # HIRAGANA LETTER KA
+304C ; [.3D60.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GA
+304D ; [.3D61.0020.0011.0001] # HIRAGANA LETTER KI
+304E ; [.3D61.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GI
+304F ; [.3D62.0020.0011.0001] # HIRAGANA LETTER KU
+3050 ; [.3D62.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GU
+3051 ; [.3D63.0020.0011.0001] # HIRAGANA LETTER KE
+3052 ; [.3D63.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GE
+3053 ; [.3D64.0020.0011.0001] # HIRAGANA LETTER KO
+3054 ; [.3D64.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GO
+3055 ; [.3D65.0020.0011.0001] # HIRAGANA LETTER SA
+3056 ; [.3D65.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZA
+3057 ; [.3D66.0020.0011.0001] # HIRAGANA LETTER SI
+3058 ; [.3D66.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZI
+3059 ; [.3D67.0020.0011.0001] # HIRAGANA LETTER SU
+305A ; [.3D67.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZU
+305B ; [.3D68.0020.0011.0001] # HIRAGANA LETTER SE
+305C ; [.3D68.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZE
+305D ; [.3D69.0020.0011.0001] # HIRAGANA LETTER SO
+305E ; [.3D69.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZO
+305F ; [.3D6A.0020.0011.0001] # HIRAGANA LETTER TA
+3060 ; [.3D6A.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DA
+3061 ; [.3D6B.0020.0011.0001] # HIRAGANA LETTER TI
+3062 ; [.3D6B.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DI
+3063 ; [.3D6C.0020.000F.0001] # HIRAGANA LETTER SMALL TU
+3064 ; [.3D6C.0020.0011.0001] # HIRAGANA LETTER TU
+3065 ; [.3D6C.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DU
+3066 ; [.3D6D.0020.0011.0001] # HIRAGANA LETTER TE
+3067 ; [.3D6D.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DE
+3068 ; [.3D6E.0020.0011.0001] # HIRAGANA LETTER TO
+3069 ; [.3D6E.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DO
+306A ; [.3D6F.0020.0011.0001] # HIRAGANA LETTER NA
+306B ; [.3D70.0020.0011.0001] # HIRAGANA LETTER NI
+306C ; [.3D71.0020.0011.0001] # HIRAGANA LETTER NU
+306D ; [.3D72.0020.0011.0001] # HIRAGANA LETTER NE
+306E ; [.3D73.0020.0011.0001] # HIRAGANA LETTER NO
+306F ; [.3D74.0020.0011.0001] # HIRAGANA LETTER HA
+3070 ; [.3D74.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BA
+3071 ; [.3D74.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PA
+3072 ; [.3D75.0020.0011.0001] # HIRAGANA LETTER HI
+3073 ; [.3D75.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BI
+3074 ; [.3D75.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PI
+3075 ; [.3D76.0020.0011.0001] # HIRAGANA LETTER HU
+3076 ; [.3D76.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BU
+3077 ; [.3D76.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PU
+3078 ; [.3D77.0020.0011.0001] # HIRAGANA LETTER HE
+3079 ; [.3D77.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BE
+307A ; [.3D77.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PE
+307B ; [.3D78.0020.0011.0001] # HIRAGANA LETTER HO
+307C ; [.3D78.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BO
+307D ; [.3D78.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PO
+307E ; [.3D79.0020.0011.0001] # HIRAGANA LETTER MA
+307F ; [.3D7A.0020.0011.0001] # HIRAGANA LETTER MI
+3080 ; [.3D7B.0020.0011.0001] # HIRAGANA LETTER MU
+3081 ; [.3D7C.0020.0011.0001] # HIRAGANA LETTER ME
+3082 ; [.3D7D.0020.0011.0001] # HIRAGANA LETTER MO
+3083 ; [.3D7E.0020.000F.0001] # HIRAGANA LETTER SMALL YA
+3084 ; [.3D7E.0020.0011.0001] # HIRAGANA LETTER YA
+3085 ; [.3D7F.0020.000F.0001] # HIRAGANA LETTER SMALL YU
+3086 ; [.3D7F.0020.0011.0001] # HIRAGANA LETTER YU
+3087 ; [.3D81.0020.000F.0001] # HIRAGANA LETTER SMALL YO
+3088 ; [.3D81.0020.0011.0001] # HIRAGANA LETTER YO
+3089 ; [.3D82.0020.0011.0001] # HIRAGANA LETTER RA
+308A ; [.3D83.0020.0011.0001] # HIRAGANA LETTER RI
+308B ; [.3D84.0020.0011.0001] # HIRAGANA LETTER RU
+308C ; [.3D85.0020.0011.0001] # HIRAGANA LETTER RE
+308D ; [.3D86.0020.0011.0001] # HIRAGANA LETTER RO
+308E ; [.3D87.0020.000F.0001] # HIRAGANA LETTER SMALL WA
+308F ; [.3D87.0020.0011.0001] # HIRAGANA LETTER WA
+3090 ; [.3D88.0020.0011.0001] # HIRAGANA LETTER WI
+3091 ; [.3D89.0020.0011.0001] # HIRAGANA LETTER WE
+3092 ; [.3D8A.0020.0011.0001] # HIRAGANA LETTER WO
+3093 ; [.3D8B.0020.0011.0001] # HIRAGANA LETTER N
+3094 ; [.3D5C.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER VU
+3095 ; [.3D60.0020.000F.0001] # HIRAGANA LETTER SMALL KA
+3096 ; [.3D63.0020.000F.0001] # HIRAGANA LETTER SMALL KE
+309D ; [.1C0F.0020.0002.0001] # HIRAGANA ITERATION MARK
+309E ; [.1C0F.0020.0002.0001][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
3000 ; [*0209.0020.0002] # IDEOGRAPHIC SPACE
-FF01 ; [*025F.0020.0002] # FULLWIDTH EXCLAMATION MARK
-FF02 ; [*02FF.0020.0002] # FULLWIDTH QUOTATION MARK
-FF03 ; [*038B.0020.0002] # FULLWIDTH NUMBER SIGN
-FF04 ; [.18D8.0020.0002] # FULLWIDTH DOLLAR SIGN
-FF05 ; [*038C.0020.0002] # FULLWIDTH PERCENT SIGN
-FF06 ; [*0389.0020.0002] # FULLWIDTH AMPERSAND
-FF07 ; [*02F8.0020.0002] # FULLWIDTH APOSTROPHE
-FF08 ; [*030A.0020.0002] # FULLWIDTH LEFT PARENTHESIS
-FF09 ; [*030B.0020.0002] # FULLWIDTH RIGHT PARENTHESIS
-FF0A ; [*0382.0020.0002] # FULLWIDTH ASTERISK
-FF0B ; [*05D6.0020.0002] # FULLWIDTH PLUS SIGN
-FF0C ; [*0221.0020.0002] # FULLWIDTH COMMA
+FF01 ; [*0260.0020.0002] # FULLWIDTH EXCLAMATION MARK
+FF02 ; [*030C.0020.0002] # FULLWIDTH QUOTATION MARK
+FF03 ; [*0398.0020.0002] # FULLWIDTH NUMBER SIGN
+FF04 ; [.1C12.0020.0002] # FULLWIDTH DOLLAR SIGN
+FF05 ; [*0399.0020.0002] # FULLWIDTH PERCENT SIGN
+FF06 ; [*0396.0020.0002] # FULLWIDTH AMPERSAND
+FF07 ; [*0305.0020.0002] # FULLWIDTH APOSTROPHE
+FF08 ; [*0317.0020.0002] # FULLWIDTH LEFT PARENTHESIS
+FF09 ; [*0318.0020.0002] # FULLWIDTH RIGHT PARENTHESIS
+FF0A ; [*038F.0020.0002] # FULLWIDTH ASTERISK
+FF0B ; [*0616.0020.0002] # FULLWIDTH PLUS SIGN
+FF0C ; [*0222.0020.0002] # FULLWIDTH COMMA
FF0D ; [*020D.0020.0002] # FULLWIDTH HYPHEN-MINUS
-FF0E ; [*0274.0020.0002] # FULLWIDTH FULL STOP
-FF0F ; [*0387.0020.0002] # FULLWIDTH SOLIDUS
-FF10 ; [.1902.0020.0002] # FULLWIDTH DIGIT ZERO
-FF11 ; [.1903.0020.0002] # FULLWIDTH DIGIT ONE
-FF12 ; [.1904.0020.0002] # FULLWIDTH DIGIT TWO
-FF13 ; [.1905.0020.0002] # FULLWIDTH DIGIT THREE
-FF14 ; [.1906.0020.0002] # FULLWIDTH DIGIT FOUR
-FF15 ; [.1907.0020.0002] # FULLWIDTH DIGIT FIVE
-FF16 ; [.1908.0020.0002] # FULLWIDTH DIGIT SIX
-FF17 ; [.1909.0020.0002] # FULLWIDTH DIGIT SEVEN
-FF18 ; [.190A.0020.0002] # FULLWIDTH DIGIT EIGHT
-FF19 ; [.190B.0020.0002] # FULLWIDTH DIGIT NINE
-FF1A ; [*0238.0020.0002] # FULLWIDTH COLON
-FF1B ; [*0233.0020.0002] # FULLWIDTH SEMICOLON
-FF1C ; [*05DA.0020.0002] # FULLWIDTH LESS-THAN SIGN
-FF1D ; [*05DB.0020.0002] # FULLWIDTH EQUALS SIGN
-FF1E ; [*05DC.0020.0002] # FULLWIDTH GREATER-THAN SIGN
-FF1F ; [*0264.0020.0002] # FULLWIDTH QUESTION MARK
-FF20 ; [*0381.0020.0002] # FULLWIDTH COMMERCIAL AT
-FF21 ; [.190C.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER A
-FF22 ; [.1925.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER B
-FF23 ; [.193E.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER C
-FF24 ; [.1953.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER D
-FF25 ; [.196E.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER E
-FF26 ; [.19A9.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER F
-FF27 ; [.19B8.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER G
-FF28 ; [.19DC.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER H
-FF29 ; [.19F6.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER I
-FF2A ; [.1A10.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER J
-FF2B ; [.1A29.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER K
-FF2C ; [.1A3B.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER L
-FF2D ; [.1A6E.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER M
-FF2E ; [.1A7D.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER N
-FF2F ; [.1AA1.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER O
-FF30 ; [.1ACE.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER P
-FF31 ; [.1AE3.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Q
-FF32 ; [.1AF5.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER R
-FF33 ; [.1B33.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER S
-FF34 ; [.1B57.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER T
-FF35 ; [.1B77.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER U
-FF36 ; [.1BA5.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER V
-FF37 ; [.1BB7.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER W
-FF38 ; [.1BC1.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER X
-FF39 ; [.1BCD.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Y
-FF3A ; [.1BE3.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Z
-FF3B ; [*030C.0020.0002] # FULLWIDTH LEFT SQUARE BRACKET
-FF3C ; [*02F8.0020.0002] # FULLWIDTH REVERSE SOLIDUS
-FF3D ; [*030D.0020.0002] # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E ; [*0449.0020.0002] # FULLWIDTH CIRCUMFLEX ACCENT
+FF0E ; [*0277.0020.0002] # FULLWIDTH FULL STOP
+FF0F ; [*0394.0020.0002] # FULLWIDTH SOLIDUS
+FF10 ; [.1C3D.0020.0002] # FULLWIDTH DIGIT ZERO
+FF11 ; [.1C3E.0020.0002] # FULLWIDTH DIGIT ONE
+FF12 ; [.1C3F.0020.0002] # FULLWIDTH DIGIT TWO
+FF13 ; [.1C40.0020.0002] # FULLWIDTH DIGIT THREE
+FF14 ; [.1C41.0020.0002] # FULLWIDTH DIGIT FOUR
+FF15 ; [.1C42.0020.0002] # FULLWIDTH DIGIT FIVE
+FF16 ; [.1C43.0020.0002] # FULLWIDTH DIGIT SIX
+FF17 ; [.1C44.0020.0002] # FULLWIDTH DIGIT SEVEN
+FF18 ; [.1C45.0020.0002] # FULLWIDTH DIGIT EIGHT
+FF19 ; [.1C46.0020.0002] # FULLWIDTH DIGIT NINE
+FF1A ; [*0239.0020.0002] # FULLWIDTH COLON
+FF1B ; [*0234.0020.0002] # FULLWIDTH SEMICOLON
+FF1C ; [*061A.0020.0002] # FULLWIDTH LESS-THAN SIGN
+FF1D ; [*061B.0020.0002] # FULLWIDTH EQUALS SIGN
+FF1E ; [*061C.0020.0002] # FULLWIDTH GREATER-THAN SIGN
+FF1F ; [*0266.0020.0002] # FULLWIDTH QUESTION MARK
+FF20 ; [*038E.0020.0002] # FULLWIDTH COMMERCIAL AT
+FF21 ; [.1C47.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER A
+FF22 ; [.1C60.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER B
+FF23 ; [.1C7A.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER C
+FF24 ; [.1C8F.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER D
+FF25 ; [.1CAA.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER E
+FF26 ; [.1CE5.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER F
+FF27 ; [.1CF4.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER G
+FF28 ; [.1D18.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER H
+FF29 ; [.1D32.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER I
+FF2A ; [.1D4C.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER J
+FF2B ; [.1D65.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER K
+FF2C ; [.1D77.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER L
+FF2D ; [.1DAA.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER M
+FF2E ; [.1DB9.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER N
+FF2F ; [.1DDD.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER O
+FF30 ; [.1E0C.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER P
+FF31 ; [.1E21.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Q
+FF32 ; [.1E33.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER R
+FF33 ; [.1E71.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER S
+FF34 ; [.1E95.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER T
+FF35 ; [.1EB5.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER U
+FF36 ; [.1EE3.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER V
+FF37 ; [.1EF5.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER W
+FF38 ; [.1EFF.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER X
+FF39 ; [.1F0B.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Y
+FF3A ; [.1F21.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; [*0319.0020.0002] # FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; [*0305.0020.0002] # FULLWIDTH REVERSE SOLIDUS
+FF3D ; [*031A.0020.0002] # FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; [*0485.0020.0002] # FULLWIDTH CIRCUMFLEX ACCENT
FF3F ; [*020B.0020.0002] # FULLWIDTH LOW LINE
-FF40 ; [*0446.0020.0002] # FULLWIDTH GRAVE ACCENT
-FF41 ; [.190C.0020.0002] # FULLWIDTH LATIN SMALL LETTER A
-FF42 ; [.1925.0020.0002] # FULLWIDTH LATIN SMALL LETTER B
-FF43 ; [.193E.0020.0002] # FULLWIDTH LATIN SMALL LETTER C
-FF44 ; [.1953.0020.0002] # FULLWIDTH LATIN SMALL LETTER D
-FF45 ; [.196E.0020.0002] # FULLWIDTH LATIN SMALL LETTER E
-FF46 ; [.19A9.0020.0002] # FULLWIDTH LATIN SMALL LETTER F
-FF47 ; [.19B8.0020.0002] # FULLWIDTH LATIN SMALL LETTER G
-FF48 ; [.19DC.0020.0002] # FULLWIDTH LATIN SMALL LETTER H
-FF49 ; [.19F6.0020.0002] # FULLWIDTH LATIN SMALL LETTER I
-FF4A ; [.1A10.0020.0002] # FULLWIDTH LATIN SMALL LETTER J
-FF4B ; [.1A29.0020.0002] # FULLWIDTH LATIN SMALL LETTER K
-FF4C ; [.1A3B.0020.0002] # FULLWIDTH LATIN SMALL LETTER L
-FF4D ; [.1A6E.0020.0002] # FULLWIDTH LATIN SMALL LETTER M
-FF4E ; [.1A7D.0020.0002] # FULLWIDTH LATIN SMALL LETTER N
-FF4F ; [.1AA1.0020.0002] # FULLWIDTH LATIN SMALL LETTER O
-FF50 ; [.1ACE.0020.0002] # FULLWIDTH LATIN SMALL LETTER P
-FF51 ; [.1AE3.0020.0002] # FULLWIDTH LATIN SMALL LETTER Q
-FF52 ; [.1AF5.0020.0002] # FULLWIDTH LATIN SMALL LETTER R
-FF53 ; [.1B33.0020.0002] # FULLWIDTH LATIN SMALL LETTER S
-FF54 ; [.1B57.0020.0002] # FULLWIDTH LATIN SMALL LETTER T
-FF55 ; [.1B77.0020.0002] # FULLWIDTH LATIN SMALL LETTER U
-FF56 ; [.1BA5.0020.0002] # FULLWIDTH LATIN SMALL LETTER V
-FF57 ; [.1BB7.0020.0002] # FULLWIDTH LATIN SMALL LETTER W
-FF58 ; [.1BC1.0020.0002] # FULLWIDTH LATIN SMALL LETTER X
-FF59 ; [.1BCD.0020.0002] # FULLWIDTH LATIN SMALL LETTER Y
-FF5A ; [.1BE3.0020.0002] # FULLWIDTH LATIN SMALL LETTER Z
-FF5B ; [*030E.0020.0002] # FULLWIDTH LEFT CURLY BRACKET
-FF5C ; [*05DE.0020.0002] # FULLWIDTH VERTICAL LINE
-FF5D ; [*030F.0020.0002] # FULLWIDTH RIGHT CURLY BRACKET
-FF5E ; [*05E0.0020.0002] # FULLWIDTH TILDE
-FF5F ; [*0320.0020.0002] # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60 ; [*0321.0020.0002] # FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61 ; [*0287.0020.0002] # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62 ; [*0366.0020.0002] # HALFWIDTH LEFT CORNER BRACKET
-FF63 ; [*0367.0020.0002] # HALFWIDTH RIGHT CORNER BRACKET
-FF64 ; [*0230.0020.0002] # HALFWIDTH IDEOGRAPHIC COMMA
-FF65 ; [*0220.0020.0002] # HALFWIDTH KATAKANA MIDDLE DOT
-FF66 ; [.3904.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WO
-FF67 ; [.38D4.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL A
-FF68 ; [.38D5.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL I
-FF69 ; [.38D6.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL U
-FF6A ; [.38D8.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL E
-FF6B ; [.38D9.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL O
-FF6C ; [.38F8.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YA
-FF6D ; [.38F9.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YU
-FF6E ; [.38FB.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YO
-FF6F ; [.38E6.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL TU
-FF70 ; [.18D4.0020.0002] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF71 ; [.38D4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER A
-FF72 ; [.38D5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER I
-FF73 ; [.38D6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER U
-FF74 ; [.38D8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER E
-FF75 ; [.38D9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER O
-FF76 ; [.38DA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KA
-FF77 ; [.38DB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KI
-FF78 ; [.38DC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KU
-FF79 ; [.38DD.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KE
-FF7A ; [.38DE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KO
-FF7B ; [.38DF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SA
-FF7C ; [.38E0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SI
-FF7D ; [.38E1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SU
-FF7E ; [.38E2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SE
-FF7F ; [.38E3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SO
-FF80 ; [.38E4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TA
-FF81 ; [.38E5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TI
-FF82 ; [.38E6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TU
-FF83 ; [.38E7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TE
-FF84 ; [.38E8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TO
-FF85 ; [.38E9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NA
-FF86 ; [.38EA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NI
-FF87 ; [.38EB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NU
-FF88 ; [.38EC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NE
-FF89 ; [.38ED.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NO
-FF8A ; [.38EE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HA
-FF8B ; [.38EF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HI
-FF8C ; [.38F0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HU
-FF8D ; [.38F1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HE
-FF8E ; [.38F2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HO
-FF8F ; [.38F3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MA
-FF90 ; [.38F4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MI
-FF91 ; [.38F5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MU
-FF92 ; [.38F6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER ME
-FF93 ; [.38F7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MO
-FF94 ; [.38F8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YA
-FF95 ; [.38F9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YU
-FF96 ; [.38FB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YO
-FF97 ; [.38FC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RA
-FF98 ; [.38FD.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RI
-FF99 ; [.38FE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RU
-FF9A ; [.38FF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RE
-FF9B ; [.3900.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RO
-FF9C ; [.3901.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WA
-FF9D ; [.3905.0020.0011.0002] # HALFWIDTH KATAKANA LETTER N
+FF40 ; [*0482.0020.0002] # FULLWIDTH GRAVE ACCENT
+FF41 ; [.1C47.0020.0002] # FULLWIDTH LATIN SMALL LETTER A
+FF42 ; [.1C60.0020.0002] # FULLWIDTH LATIN SMALL LETTER B
+FF43 ; [.1C7A.0020.0002] # FULLWIDTH LATIN SMALL LETTER C
+FF44 ; [.1C8F.0020.0002] # FULLWIDTH LATIN SMALL LETTER D
+FF45 ; [.1CAA.0020.0002] # FULLWIDTH LATIN SMALL LETTER E
+FF46 ; [.1CE5.0020.0002] # FULLWIDTH LATIN SMALL LETTER F
+FF47 ; [.1CF4.0020.0002] # FULLWIDTH LATIN SMALL LETTER G
+FF48 ; [.1D18.0020.0002] # FULLWIDTH LATIN SMALL LETTER H
+FF49 ; [.1D32.0020.0002] # FULLWIDTH LATIN SMALL LETTER I
+FF4A ; [.1D4C.0020.0002] # FULLWIDTH LATIN SMALL LETTER J
+FF4B ; [.1D65.0020.0002] # FULLWIDTH LATIN SMALL LETTER K
+FF4C ; [.1D77.0020.0002] # FULLWIDTH LATIN SMALL LETTER L
+FF4D ; [.1DAA.0020.0002] # FULLWIDTH LATIN SMALL LETTER M
+FF4E ; [.1DB9.0020.0002] # FULLWIDTH LATIN SMALL LETTER N
+FF4F ; [.1DDD.0020.0002] # FULLWIDTH LATIN SMALL LETTER O
+FF50 ; [.1E0C.0020.0002] # FULLWIDTH LATIN SMALL LETTER P
+FF51 ; [.1E21.0020.0002] # FULLWIDTH LATIN SMALL LETTER Q
+FF52 ; [.1E33.0020.0002] # FULLWIDTH LATIN SMALL LETTER R
+FF53 ; [.1E71.0020.0002] # FULLWIDTH LATIN SMALL LETTER S
+FF54 ; [.1E95.0020.0002] # FULLWIDTH LATIN SMALL LETTER T
+FF55 ; [.1EB5.0020.0002] # FULLWIDTH LATIN SMALL LETTER U
+FF56 ; [.1EE3.0020.0002] # FULLWIDTH LATIN SMALL LETTER V
+FF57 ; [.1EF5.0020.0002] # FULLWIDTH LATIN SMALL LETTER W
+FF58 ; [.1EFF.0020.0002] # FULLWIDTH LATIN SMALL LETTER X
+FF59 ; [.1F0B.0020.0002] # FULLWIDTH LATIN SMALL LETTER Y
+FF5A ; [.1F21.0020.0002] # FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; [*031B.0020.0002] # FULLWIDTH LEFT CURLY BRACKET
+FF5C ; [*061E.0020.0002] # FULLWIDTH VERTICAL LINE
+FF5D ; [*031C.0020.0002] # FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; [*0620.0020.0002] # FULLWIDTH TILDE
+FF5F ; [*032D.0020.0002] # FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; [*032E.0020.0002] # FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; [*028A.0020.0002] # HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; [*0373.0020.0002] # HALFWIDTH LEFT CORNER BRACKET
+FF63 ; [*0374.0020.0002] # HALFWIDTH RIGHT CORNER BRACKET
+FF64 ; [*0231.0020.0002] # HALFWIDTH IDEOGRAPHIC COMMA
+FF65 ; [*0221.0020.0002] # HALFWIDTH KATAKANA MIDDLE DOT
+FF66 ; [.3D8A.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WO
+FF67 ; [.3D5A.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL A
+FF68 ; [.3D5B.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL I
+FF69 ; [.3D5C.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL U
+FF6A ; [.3D5E.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL E
+FF6B ; [.3D5F.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL O
+FF6C ; [.3D7E.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D ; [.3D7F.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E ; [.3D81.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F ; [.3D6C.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; [.1C0E.0020.0002] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71 ; [.3D5A.0020.0011.0002] # HALFWIDTH KATAKANA LETTER A
+FF72 ; [.3D5B.0020.0011.0002] # HALFWIDTH KATAKANA LETTER I
+FF73 ; [.3D5C.0020.0011.0002] # HALFWIDTH KATAKANA LETTER U
+FF74 ; [.3D5E.0020.0011.0002] # HALFWIDTH KATAKANA LETTER E
+FF75 ; [.3D5F.0020.0011.0002] # HALFWIDTH KATAKANA LETTER O
+FF76 ; [.3D60.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KA
+FF77 ; [.3D61.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KI
+FF78 ; [.3D62.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KU
+FF79 ; [.3D63.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KE
+FF7A ; [.3D64.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KO
+FF7B ; [.3D65.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SA
+FF7C ; [.3D66.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SI
+FF7D ; [.3D67.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SU
+FF7E ; [.3D68.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SE
+FF7F ; [.3D69.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SO
+FF80 ; [.3D6A.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TA
+FF81 ; [.3D6B.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TI
+FF82 ; [.3D6C.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TU
+FF83 ; [.3D6D.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TE
+FF84 ; [.3D6E.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TO
+FF85 ; [.3D6F.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NA
+FF86 ; [.3D70.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NI
+FF87 ; [.3D71.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NU
+FF88 ; [.3D72.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NE
+FF89 ; [.3D73.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NO
+FF8A ; [.3D74.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HA
+FF8B ; [.3D75.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HI
+FF8C ; [.3D76.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HU
+FF8D ; [.3D77.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HE
+FF8E ; [.3D78.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HO
+FF8F ; [.3D79.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MA
+FF90 ; [.3D7A.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MI
+FF91 ; [.3D7B.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MU
+FF92 ; [.3D7C.0020.0011.0002] # HALFWIDTH KATAKANA LETTER ME
+FF93 ; [.3D7D.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MO
+FF94 ; [.3D7E.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YA
+FF95 ; [.3D7F.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YU
+FF96 ; [.3D81.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YO
+FF97 ; [.3D82.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RA
+FF98 ; [.3D83.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RI
+FF99 ; [.3D84.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RU
+FF9A ; [.3D85.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RE
+FF9B ; [.3D86.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RO
+FF9C ; [.3D87.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WA
+FF9D ; [.3D8B.0020.0011.0002] # HALFWIDTH KATAKANA LETTER N
FF9E ; [.0000.0037.0002] # HALFWIDTH KATAKANA VOICED SOUND MARK
FF9F ; [.0000.0038.0002] # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFE0 ; [.18D7.0020.0002] # FULLWIDTH CENT SIGN
-FFE1 ; [.18D9.0020.0002] # FULLWIDTH POUND SIGN
-FFE2 ; [*05DD.0020.0002] # FULLWIDTH NOT SIGN
+FFE0 ; [.1C11.0020.0002] # FULLWIDTH CENT SIGN
+FFE1 ; [.1C13.0020.0002] # FULLWIDTH POUND SIGN
+FFE2 ; [*061D.0020.0002] # FULLWIDTH NOT SIGN
FFE3 ; [*0209.0020.0002] # FULLWIDTH MACRON
-FFE4 ; [*05DF.0020.0002] # FULLWIDTH BROKEN BAR
-FFE5 ; [.18DA.0020.0002] # FULLWIDTH YEN SIGN
-FFE6 ; [.18ED.0020.0002] # FULLWIDTH WON SIGN
-FFE8 ; [*07D6.0020.0002] # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9 ; [*055C.0020.0002] # HALFWIDTH LEFTWARDS ARROW
-FFEA ; [*055E.0020.0002] # HALFWIDTH UPWARDS ARROW
-FFEB ; [*055D.0020.0002] # HALFWIDTH RIGHTWARDS ARROW
-FFEC ; [*055F.0020.0002] # HALFWIDTH DOWNWARDS ARROW
-FFED ; [*0874.0020.0002] # HALFWIDTH BLACK SQUARE
-FFEE ; [*089F.0020.0002] # HALFWIDTH WHITE CIRCLE
-30A1 30FC ; [.38D4.0020.000F.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF67 30FC ; [.38D4.0020.000F.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF67 FF70 ; [.38D4.0020.000F.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3041 30FC ; [.38D4.0020.000F.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A2 30FC ; [.38D4.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF71 30FC ; [.38D4.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF71 FF70 ; [.38D4.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3042 30FC ; [.38D4.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AB 30FC ; [.38DA.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 30FC ; [.38DA.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF70 ; [.38DA.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304B 30FC ; [.38DA.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AC 30FC ; [.38DA.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AB 3099 30FC ; [.38DA.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF9E 30FC ; [.38DA.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF9E FF70 ; [.38DA.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304C 30FC ; [.38DA.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304B 3099 30FC ; [.38DA.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B5 30FC ; [.38DF.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B 30FC ; [.38DF.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF70 ; [.38DF.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3055 30FC ; [.38DF.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B6 30FC ; [.38DF.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B5 3099 30FC ; [.38DF.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF9E 30FC ; [.38DF.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF9E FF70 ; [.38DF.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3056 30FC ; [.38DF.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3055 3099 30FC ; [.38DF.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BF 30FC ; [.38E4.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 30FC ; [.38E4.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF70 ; [.38E4.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305F 30FC ; [.38E4.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C0 30FC ; [.38E4.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BF 3099 30FC ; [.38E4.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF9E 30FC ; [.38E4.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF9E FF70 ; [.38E4.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3060 30FC ; [.38E4.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305F 3099 30FC ; [.38E4.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CA 30FC ; [.38E9.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF85 30FC ; [.38E9.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF85 FF70 ; [.38E9.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306A 30FC ; [.38E9.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 30FC ; [.38EE.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A 30FC ; [.38EE.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF70 ; [.38EE.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 30FC ; [.38EE.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D0 30FC ; [.38EE.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 3099 30FC ; [.38EE.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9E 30FC ; [.38EE.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9E FF70 ; [.38EE.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3070 30FC ; [.38EE.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 3099 30FC ; [.38EE.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D1 30FC ; [.38EE.0020.0011.0002][.0000.0038.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 309A 30FC ; [.38EE.0020.0011.0002][.0000.0038.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9F 30FC ; [.38EE.0020.0011.0002][.0000.0038.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9F FF70 ; [.38EE.0020.0011.0002][.0000.0038.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3071 30FC ; [.38EE.0020.0011.0001][.0000.0038.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 309A 30FC ; [.38EE.0020.0011.0001][.0000.0038.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DE 30FC ; [.38F3.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8F 30FC ; [.38F3.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8F FF70 ; [.38F3.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307E 30FC ; [.38F3.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E3 30FC ; [.38F8.0020.000F.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6C 30FC ; [.38F8.0020.000F.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6C FF70 ; [.38F8.0020.000F.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3083 30FC ; [.38F8.0020.000F.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E4 30FC ; [.38F8.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF94 30FC ; [.38F8.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF94 FF70 ; [.38F8.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3084 30FC ; [.38F8.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E9 30FC ; [.38FC.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF97 30FC ; [.38FC.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF97 FF70 ; [.38FC.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3089 30FC ; [.38FC.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EE 30FC ; [.3901.0020.000F.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308E 30FC ; [.3901.0020.000F.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EF 30FC ; [.3901.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C 30FC ; [.3901.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF70 ; [.3901.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308F 30FC ; [.3901.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F7 30FC ; [.3901.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER VA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EF 3099 30FC ; [.3901.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF9E 30FC ; [.3901.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF9E FF70 ; [.3901.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F5 30FC ; [.38DA.0020.000F.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3095 30FC ; [.38DA.0020.000F.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F5 30FC ; [.38EE.0020.000F][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FB 30FC ; [.38FC.0020.000F][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A3 30FC ; [.38D5.0020.000F.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF68 30FC ; [.38D5.0020.000F.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF68 FF70 ; [.38D5.0020.000F.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3043 30FC ; [.38D5.0020.000F.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A4 30FC ; [.38D5.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF72 30FC ; [.38D5.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF72 FF70 ; [.38D5.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3044 30FC ; [.38D5.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AD 30FC ; [.38DB.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 30FC ; [.38DB.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF70 ; [.38DB.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304D 30FC ; [.38DB.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AE 30FC ; [.38DB.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AD 3099 30FC ; [.38DB.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF9E 30FC ; [.38DB.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF9E FF70 ; [.38DB.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304E 30FC ; [.38DB.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304D 3099 30FC ; [.38DB.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B7 30FC ; [.38E0.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C 30FC ; [.38E0.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF70 ; [.38E0.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3057 30FC ; [.38E0.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B8 30FC ; [.38E0.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B7 3099 30FC ; [.38E0.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF9E 30FC ; [.38E0.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF9E FF70 ; [.38E0.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3058 30FC ; [.38E0.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3057 3099 30FC ; [.38E0.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C1 30FC ; [.38E5.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 30FC ; [.38E5.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF70 ; [.38E5.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3061 30FC ; [.38E5.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C2 30FC ; [.38E5.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C1 3099 30FC ; [.38E5.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF9E 30FC ; [.38E5.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF9E FF70 ; [.38E5.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3062 30FC ; [.38E5.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3061 3099 30FC ; [.38E5.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CB 30FC ; [.38EA.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF86 30FC ; [.38EA.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF86 FF70 ; [.38EA.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306B 30FC ; [.38EA.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 30FC ; [.38EF.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B 30FC ; [.38EF.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF70 ; [.38EF.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 30FC ; [.38EF.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D3 30FC ; [.38EF.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 3099 30FC ; [.38EF.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9E 30FC ; [.38EF.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9E FF70 ; [.38EF.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3073 30FC ; [.38EF.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 3099 30FC ; [.38EF.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D4 30FC ; [.38EF.0020.0011.0002][.0000.0038.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 309A 30FC ; [.38EF.0020.0011.0002][.0000.0038.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9F 30FC ; [.38EF.0020.0011.0002][.0000.0038.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9F FF70 ; [.38EF.0020.0011.0002][.0000.0038.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3074 30FC ; [.38EF.0020.0011.0001][.0000.0038.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 309A 30FC ; [.38EF.0020.0011.0001][.0000.0038.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DF 30FC ; [.38F4.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF90 30FC ; [.38F4.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF90 FF70 ; [.38F4.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307F 30FC ; [.38F4.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EA 30FC ; [.38FD.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF98 30FC ; [.38FD.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF98 FF70 ; [.38FD.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308A 30FC ; [.38FD.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F0 30FC ; [.3902.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3090 30FC ; [.3902.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F8 30FC ; [.3902.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER VI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F0 3099 30FC ; [.3902.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F1 30FC ; [.38E0.0020.000F][.38D5.0020.0007.0002] # <KATAKANA LETTER SMALL SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F6 30FC ; [.38EF.0020.000F][.38D5.0020.0007.0002] # <KATAKANA LETTER SMALL HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FC 30FC ; [.38FD.0020.000F][.38D5.0020.0007.0002] # <KATAKANA LETTER SMALL RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A5 30FC ; [.38D6.0020.000F.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF69 30FC ; [.38D6.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF69 FF70 ; [.38D6.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3045 30FC ; [.38D6.0020.000F.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A6 30FC ; [.38D6.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 30FC ; [.38D6.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF70 ; [.38D6.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3046 30FC ; [.38D6.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AF 30FC ; [.38DC.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 30FC ; [.38DC.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF70 ; [.38DC.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304F 30FC ; [.38DC.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B0 30FC ; [.38DC.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AF 3099 30FC ; [.38DC.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF9E 30FC ; [.38DC.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF9E FF70 ; [.38DC.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3050 30FC ; [.38DC.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304F 3099 30FC ; [.38DC.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B9 30FC ; [.38E1.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D 30FC ; [.38E1.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF70 ; [.38E1.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3059 30FC ; [.38E1.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BA 30FC ; [.38E1.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B9 3099 30FC ; [.38E1.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF9E 30FC ; [.38E1.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF9E FF70 ; [.38E1.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305A 30FC ; [.38E1.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3059 3099 30FC ; [.38E1.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C3 30FC ; [.38E6.0020.000F.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6F 30FC ; [.38E6.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6F FF70 ; [.38E6.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3063 30FC ; [.38E6.0020.000F.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C4 30FC ; [.38E6.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 30FC ; [.38E6.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF70 ; [.38E6.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3064 30FC ; [.38E6.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C5 30FC ; [.38E6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C4 3099 30FC ; [.38E6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF9E 30FC ; [.38E6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF9E FF70 ; [.38E6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3065 30FC ; [.38E6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3064 3099 30FC ; [.38E6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CC 30FC ; [.38EB.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF87 30FC ; [.38EB.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF87 FF70 ; [.38EB.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306C 30FC ; [.38EB.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 30FC ; [.38F0.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C 30FC ; [.38F0.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF70 ; [.38F0.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 30FC ; [.38F0.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D6 30FC ; [.38F0.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 3099 30FC ; [.38F0.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9E 30FC ; [.38F0.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9E FF70 ; [.38F0.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3076 30FC ; [.38F0.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 3099 30FC ; [.38F0.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D7 30FC ; [.38F0.0020.0011.0002][.0000.0038.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 309A 30FC ; [.38F0.0020.0011.0002][.0000.0038.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9F 30FC ; [.38F0.0020.0011.0002][.0000.0038.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9F FF70 ; [.38F0.0020.0011.0002][.0000.0038.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3077 30FC ; [.38F0.0020.0011.0001][.0000.0038.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 309A 30FC ; [.38F0.0020.0011.0001][.0000.0038.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E0 30FC ; [.38F5.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF91 30FC ; [.38F5.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF91 FF70 ; [.38F5.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3080 30FC ; [.38F5.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E5 30FC ; [.38F9.0020.000F.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6D 30FC ; [.38F9.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6D FF70 ; [.38F9.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3085 30FC ; [.38F9.0020.000F.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E6 30FC ; [.38F9.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF95 30FC ; [.38F9.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF95 FF70 ; [.38F9.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3086 30FC ; [.38F9.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EB 30FC ; [.38FE.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF99 30FC ; [.38FE.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF99 FF70 ; [.38FE.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308B 30FC ; [.38FE.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F4 30FC ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A6 3099 30FC ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF9E 30FC ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF9E FF70 ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3094 30FC ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3046 3099 30FC ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F0 30FC ; [.38DC.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F2 30FC ; [.38E1.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F4 30FC ; [.38EB.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F7 30FC ; [.38F0.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FA 30FC ; [.38F5.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FD 30FC ; [.38FE.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A7 30FC ; [.38D8.0020.000F.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6A 30FC ; [.38D8.0020.000F.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6A FF70 ; [.38D8.0020.000F.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3047 30FC ; [.38D8.0020.000F.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A8 30FC ; [.38D8.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF74 30FC ; [.38D8.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF74 FF70 ; [.38D8.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3048 30FC ; [.38D8.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B1 30FC ; [.38DD.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 30FC ; [.38DD.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF70 ; [.38DD.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3051 30FC ; [.38DD.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B2 30FC ; [.38DD.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B1 3099 30FC ; [.38DD.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF9E 30FC ; [.38DD.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF9E FF70 ; [.38DD.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3052 30FC ; [.38DD.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3051 3099 30FC ; [.38DD.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BB 30FC ; [.38E2.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E 30FC ; [.38E2.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF70 ; [.38E2.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305B 30FC ; [.38E2.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BC 30FC ; [.38E2.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BB 3099 30FC ; [.38E2.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF9E 30FC ; [.38E2.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF9E FF70 ; [.38E2.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305C 30FC ; [.38E2.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305B 3099 30FC ; [.38E2.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C6 30FC ; [.38E7.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 30FC ; [.38E7.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF70 ; [.38E7.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3066 30FC ; [.38E7.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C7 30FC ; [.38E7.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C6 3099 30FC ; [.38E7.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF9E 30FC ; [.38E7.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF9E FF70 ; [.38E7.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3067 30FC ; [.38E7.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3066 3099 30FC ; [.38E7.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CD 30FC ; [.38EC.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF88 30FC ; [.38EC.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF88 FF70 ; [.38EC.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306D 30FC ; [.38EC.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 30FC ; [.38F1.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D 30FC ; [.38F1.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF70 ; [.38F1.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 30FC ; [.38F1.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D9 30FC ; [.38F1.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 3099 30FC ; [.38F1.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9E 30FC ; [.38F1.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9E FF70 ; [.38F1.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3079 30FC ; [.38F1.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 3099 30FC ; [.38F1.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DA 30FC ; [.38F1.0020.0011.0002][.0000.0038.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 309A 30FC ; [.38F1.0020.0011.0002][.0000.0038.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9F 30FC ; [.38F1.0020.0011.0002][.0000.0038.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9F FF70 ; [.38F1.0020.0011.0002][.0000.0038.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307A 30FC ; [.38F1.0020.0011.0001][.0000.0038.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 309A 30FC ; [.38F1.0020.0011.0001][.0000.0038.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E1 30FC ; [.38F6.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF92 30FC ; [.38F6.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF92 FF70 ; [.38F6.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3081 30FC ; [.38F6.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EC 30FC ; [.38FF.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9A 30FC ; [.38FF.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9A FF70 ; [.38FF.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308C 30FC ; [.38FF.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F1 30FC ; [.3903.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3091 30FC ; [.3903.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F9 30FC ; [.3903.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER VE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F1 3099 30FC ; [.3903.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F6 30FC ; [.38DD.0020.000F.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3096 30FC ; [.38DD.0020.000F.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F8 30FC ; [.38F1.0020.000F][.38D8.0020.0007.0002] # <KATAKANA LETTER SMALL HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FE 30FC ; [.38FF.0020.000F][.38D8.0020.0007.0002] # <KATAKANA LETTER SMALL RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A9 30FC ; [.38D9.0020.000F.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6B 30FC ; [.38D9.0020.000F.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6B FF70 ; [.38D9.0020.000F.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3049 30FC ; [.38D9.0020.000F.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AA 30FC ; [.38D9.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF75 30FC ; [.38D9.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF75 FF70 ; [.38D9.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304A 30FC ; [.38D9.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B3 30FC ; [.38DE.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A 30FC ; [.38DE.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF70 ; [.38DE.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3053 30FC ; [.38DE.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B4 30FC ; [.38DE.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B3 3099 30FC ; [.38DE.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF9E 30FC ; [.38DE.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF9E FF70 ; [.38DE.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3054 30FC ; [.38DE.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3053 3099 30FC ; [.38DE.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BD 30FC ; [.38E3.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F 30FC ; [.38E3.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF70 ; [.38E3.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305D 30FC ; [.38E3.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BE 30FC ; [.38E3.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BD 3099 30FC ; [.38E3.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF9E 30FC ; [.38E3.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF9E FF70 ; [.38E3.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305E 30FC ; [.38E3.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305D 3099 30FC ; [.38E3.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C8 30FC ; [.38E8.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 30FC ; [.38E8.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF70 ; [.38E8.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3068 30FC ; [.38E8.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C9 30FC ; [.38E8.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C8 3099 30FC ; [.38E8.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF9E 30FC ; [.38E8.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF9E FF70 ; [.38E8.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3069 30FC ; [.38E8.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3068 3099 30FC ; [.38E8.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CE 30FC ; [.38ED.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF89 30FC ; [.38ED.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF89 FF70 ; [.38ED.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306E 30FC ; [.38ED.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 30FC ; [.38F2.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E 30FC ; [.38F2.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF70 ; [.38F2.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 30FC ; [.38F2.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DC 30FC ; [.38F2.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 3099 30FC ; [.38F2.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9E 30FC ; [.38F2.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9E FF70 ; [.38F2.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307C 30FC ; [.38F2.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 3099 30FC ; [.38F2.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DD 30FC ; [.38F2.0020.0011.0002][.0000.0038.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 309A 30FC ; [.38F2.0020.0011.0002][.0000.0038.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9F 30FC ; [.38F2.0020.0011.0002][.0000.0038.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9F FF70 ; [.38F2.0020.0011.0002][.0000.0038.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307D 30FC ; [.38F2.0020.0011.0001][.0000.0038.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 309A 30FC ; [.38F2.0020.0011.0001][.0000.0038.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E2 30FC ; [.38F7.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF93 30FC ; [.38F7.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF93 FF70 ; [.38F7.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3082 30FC ; [.38F7.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E7 30FC ; [.38FB.0020.000F.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6E 30FC ; [.38FB.0020.000F.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6E FF70 ; [.38FB.0020.000F.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3087 30FC ; [.38FB.0020.000F.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E8 30FC ; [.38FB.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF96 30FC ; [.38FB.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF96 FF70 ; [.38FB.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3088 30FC ; [.38FB.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30ED 30FC ; [.3900.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9B 30FC ; [.3900.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9B FF70 ; [.3900.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308D 30FC ; [.3900.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F2 30FC ; [.3904.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 30FC ; [.3904.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF70 ; [.3904.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3092 30FC ; [.3904.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30FA 30FC ; [.3904.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER VO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F2 3099 30FC ; [.3904.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF9E 30FC ; [.3904.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF9E FF70 ; [.3904.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F3 30FC ; [.38E8.0020.000F][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F9 30FC ; [.38F2.0020.000F][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FF 30FC ; [.3900.0020.000F][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A1 30FD ; [.38D4.0020.000F.0002][.38D4.0020.0010.0002] # <KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
-FF67 30FD ; [.38D4.0020.000F.0002][.38D4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
-3041 309D ; [.38D4.0020.000F.0001][.38D4.0020.0010.0002] # <HIRAGANA LETTER SMALL A, HIRAGANA ITERATION MARK>
-30A2 30FD ; [.38D4.0020.0011.0002][.38D4.0020.0010.0002] # <KATAKANA LETTER A, KATAKANA ITERATION MARK>
-FF71 30FD ; [.38D4.0020.0011.0002][.38D4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA ITERATION MARK>
-3042 309D ; [.38D4.0020.0011.0001][.38D4.0020.0010.0002] # <HIRAGANA LETTER A, HIRAGANA ITERATION MARK>
-30A3 30FD ; [.38D5.0020.000F.0002][.38D5.0020.0010.0002] # <KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
-FF68 30FD ; [.38D5.0020.000F.0002][.38D5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
-3043 309D ; [.38D5.0020.000F.0001][.38D5.0020.0010.0002] # <HIRAGANA LETTER SMALL I, HIRAGANA ITERATION MARK>
-30A4 30FD ; [.38D5.0020.0011.0002][.38D5.0020.0010.0002] # <KATAKANA LETTER I, KATAKANA ITERATION MARK>
-FF72 30FD ; [.38D5.0020.0011.0002][.38D5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA ITERATION MARK>
-3044 309D ; [.38D5.0020.0011.0001][.38D5.0020.0010.0002] # <HIRAGANA LETTER I, HIRAGANA ITERATION MARK>
-30A5 30FD ; [.38D6.0020.000F.0002][.38D6.0020.0010.0002] # <KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
-FF69 30FD ; [.38D6.0020.000F.0002][.38D6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
-3045 309D ; [.38D6.0020.000F.0001][.38D6.0020.0010.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA ITERATION MARK>
-30A5 30FE ; [.38D6.0020.000F.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
-FF69 30FE ; [.38D6.0020.000F.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
-3045 309E ; [.38D6.0020.000F.0001][.38D6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA VOICED ITERATION MARK>
-30A6 30FD ; [.38D6.0020.0011.0002][.38D6.0020.0010.0002] # <KATAKANA LETTER U, KATAKANA ITERATION MARK>
-FF73 30FD ; [.38D6.0020.0011.0002][.38D6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA ITERATION MARK>
-3046 309D ; [.38D6.0020.0011.0001][.38D6.0020.0010.0002] # <HIRAGANA LETTER U, HIRAGANA ITERATION MARK>
-30A6 30FE ; [.38D6.0020.0011.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
-FF73 30FE ; [.38D6.0020.0011.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
-3046 309E ; [.38D6.0020.0011.0001][.38D6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, HIRAGANA VOICED ITERATION MARK>
-30A7 30FD ; [.38D8.0020.000F.0002][.38D8.0020.0010.0002] # <KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
-FF6A 30FD ; [.38D8.0020.000F.0002][.38D8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
-3047 309D ; [.38D8.0020.000F.0001][.38D8.0020.0010.0002] # <HIRAGANA LETTER SMALL E, HIRAGANA ITERATION MARK>
-30A8 30FD ; [.38D8.0020.0011.0002][.38D8.0020.0010.0002] # <KATAKANA LETTER E, KATAKANA ITERATION MARK>
-FF74 30FD ; [.38D8.0020.0011.0002][.38D8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA ITERATION MARK>
-3048 309D ; [.38D8.0020.0011.0001][.38D8.0020.0010.0002] # <HIRAGANA LETTER E, HIRAGANA ITERATION MARK>
-30A9 30FD ; [.38D9.0020.000F.0002][.38D9.0020.0010.0002] # <KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
-FF6B 30FD ; [.38D9.0020.000F.0002][.38D9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
-3049 309D ; [.38D9.0020.000F.0001][.38D9.0020.0010.0002] # <HIRAGANA LETTER SMALL O, HIRAGANA ITERATION MARK>
-30AA 30FD ; [.38D9.0020.0011.0002][.38D9.0020.0010.0002] # <KATAKANA LETTER O, KATAKANA ITERATION MARK>
-FF75 30FD ; [.38D9.0020.0011.0002][.38D9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA ITERATION MARK>
-304A 309D ; [.38D9.0020.0011.0001][.38D9.0020.0010.0002] # <HIRAGANA LETTER O, HIRAGANA ITERATION MARK>
-30AB 30FD ; [.38DA.0020.0011.0002][.38DA.0020.0010.0002] # <KATAKANA LETTER KA, KATAKANA ITERATION MARK>
-FF76 30FD ; [.38DA.0020.0011.0002][.38DA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA ITERATION MARK>
-304B 309D ; [.38DA.0020.0011.0001][.38DA.0020.0010.0002] # <HIRAGANA LETTER KA, HIRAGANA ITERATION MARK>
-30AB 30FE ; [.38DA.0020.0011.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
-FF76 30FE ; [.38DA.0020.0011.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
-304B 309E ; [.38DA.0020.0011.0001][.38DA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, HIRAGANA VOICED ITERATION MARK>
-30AC 30FD ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002] # <KATAKANA LETTER GA, KATAKANA ITERATION MARK>
-30AB 3099 30FD ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF76 FF9E 30FD ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-304C 309D ; [.38DA.0020.0011.0001][.0000.0037.0002][.38DA.0020.0010.0002] # <HIRAGANA LETTER GA, HIRAGANA ITERATION MARK>
-304B 3099 309D ; [.38DA.0020.0011.0001][.0000.0037.0002][.38DA.0020.0010.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30AC 30FE ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GA, KATAKANA VOICED ITERATION MARK>
-30AB 3099 30FE ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF76 FF9E 30FE ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-304C 309E ; [.38DA.0020.0011.0001][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GA, HIRAGANA VOICED ITERATION MARK>
-304B 3099 309E ; [.38DA.0020.0011.0001][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30AD 30FD ; [.38DB.0020.0011.0002][.38DB.0020.0010.0002] # <KATAKANA LETTER KI, KATAKANA ITERATION MARK>
-FF77 30FD ; [.38DB.0020.0011.0002][.38DB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA ITERATION MARK>
-304D 309D ; [.38DB.0020.0011.0001][.38DB.0020.0010.0002] # <HIRAGANA LETTER KI, HIRAGANA ITERATION MARK>
-30AD 30FE ; [.38DB.0020.0011.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
-FF77 30FE ; [.38DB.0020.0011.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
-304D 309E ; [.38DB.0020.0011.0001][.38DB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, HIRAGANA VOICED ITERATION MARK>
-30AE 30FD ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002] # <KATAKANA LETTER GI, KATAKANA ITERATION MARK>
-30AD 3099 30FD ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF77 FF9E 30FD ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-304E 309D ; [.38DB.0020.0011.0001][.0000.0037.0002][.38DB.0020.0010.0002] # <HIRAGANA LETTER GI, HIRAGANA ITERATION MARK>
-304D 3099 309D ; [.38DB.0020.0011.0001][.0000.0037.0002][.38DB.0020.0010.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30AE 30FE ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GI, KATAKANA VOICED ITERATION MARK>
-30AD 3099 30FE ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF77 FF9E 30FE ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-304E 309E ; [.38DB.0020.0011.0001][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GI, HIRAGANA VOICED ITERATION MARK>
-304D 3099 309E ; [.38DB.0020.0011.0001][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30AF 30FD ; [.38DC.0020.0011.0002][.38DC.0020.0010.0002] # <KATAKANA LETTER KU, KATAKANA ITERATION MARK>
-FF78 30FD ; [.38DC.0020.0011.0002][.38DC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA ITERATION MARK>
-304F 309D ; [.38DC.0020.0011.0001][.38DC.0020.0010.0002] # <HIRAGANA LETTER KU, HIRAGANA ITERATION MARK>
-30AF 30FE ; [.38DC.0020.0011.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
-FF78 30FE ; [.38DC.0020.0011.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
-304F 309E ; [.38DC.0020.0011.0001][.38DC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, HIRAGANA VOICED ITERATION MARK>
-30B0 30FD ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002] # <KATAKANA LETTER GU, KATAKANA ITERATION MARK>
-30AF 3099 30FD ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF78 FF9E 30FD ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3050 309D ; [.38DC.0020.0011.0001][.0000.0037.0002][.38DC.0020.0010.0002] # <HIRAGANA LETTER GU, HIRAGANA ITERATION MARK>
-304F 3099 309D ; [.38DC.0020.0011.0001][.0000.0037.0002][.38DC.0020.0010.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B0 30FE ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GU, KATAKANA VOICED ITERATION MARK>
-30AF 3099 30FE ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF78 FF9E 30FE ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3050 309E ; [.38DC.0020.0011.0001][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GU, HIRAGANA VOICED ITERATION MARK>
-304F 3099 309E ; [.38DC.0020.0011.0001][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B1 30FD ; [.38DD.0020.0011.0002][.38DD.0020.0010.0002] # <KATAKANA LETTER KE, KATAKANA ITERATION MARK>
-FF79 30FD ; [.38DD.0020.0011.0002][.38DD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA ITERATION MARK>
-3051 309D ; [.38DD.0020.0011.0001][.38DD.0020.0010.0002] # <HIRAGANA LETTER KE, HIRAGANA ITERATION MARK>
-30B1 30FE ; [.38DD.0020.0011.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
-FF79 30FE ; [.38DD.0020.0011.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
-3051 309E ; [.38DD.0020.0011.0001][.38DD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, HIRAGANA VOICED ITERATION MARK>
-30B2 30FD ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002] # <KATAKANA LETTER GE, KATAKANA ITERATION MARK>
-30B1 3099 30FD ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF79 FF9E 30FD ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3052 309D ; [.38DD.0020.0011.0001][.0000.0037.0002][.38DD.0020.0010.0002] # <HIRAGANA LETTER GE, HIRAGANA ITERATION MARK>
-3051 3099 309D ; [.38DD.0020.0011.0001][.0000.0037.0002][.38DD.0020.0010.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B2 30FE ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GE, KATAKANA VOICED ITERATION MARK>
-30B1 3099 30FE ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF79 FF9E 30FE ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3052 309E ; [.38DD.0020.0011.0001][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GE, HIRAGANA VOICED ITERATION MARK>
-3051 3099 309E ; [.38DD.0020.0011.0001][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B3 30FD ; [.38DE.0020.0011.0002][.38DE.0020.0010.0002] # <KATAKANA LETTER KO, KATAKANA ITERATION MARK>
-FF7A 30FD ; [.38DE.0020.0011.0002][.38DE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA ITERATION MARK>
-3053 309D ; [.38DE.0020.0011.0001][.38DE.0020.0010.0002] # <HIRAGANA LETTER KO, HIRAGANA ITERATION MARK>
-30B3 30FE ; [.38DE.0020.0011.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
-FF7A 30FE ; [.38DE.0020.0011.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
-3053 309E ; [.38DE.0020.0011.0001][.38DE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, HIRAGANA VOICED ITERATION MARK>
-30B4 30FD ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002] # <KATAKANA LETTER GO, KATAKANA ITERATION MARK>
-30B3 3099 30FD ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7A FF9E 30FD ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3054 309D ; [.38DE.0020.0011.0001][.0000.0037.0002][.38DE.0020.0010.0002] # <HIRAGANA LETTER GO, HIRAGANA ITERATION MARK>
-3053 3099 309D ; [.38DE.0020.0011.0001][.0000.0037.0002][.38DE.0020.0010.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B4 30FE ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GO, KATAKANA VOICED ITERATION MARK>
-30B3 3099 30FE ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7A FF9E 30FE ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3054 309E ; [.38DE.0020.0011.0001][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GO, HIRAGANA VOICED ITERATION MARK>
-3053 3099 309E ; [.38DE.0020.0011.0001][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B5 30FD ; [.38DF.0020.0011.0002][.38DF.0020.0010.0002] # <KATAKANA LETTER SA, KATAKANA ITERATION MARK>
-FF7B 30FD ; [.38DF.0020.0011.0002][.38DF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA ITERATION MARK>
-3055 309D ; [.38DF.0020.0011.0001][.38DF.0020.0010.0002] # <HIRAGANA LETTER SA, HIRAGANA ITERATION MARK>
-30B5 30FE ; [.38DF.0020.0011.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
-FF7B 30FE ; [.38DF.0020.0011.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
-3055 309E ; [.38DF.0020.0011.0001][.38DF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, HIRAGANA VOICED ITERATION MARK>
-30B6 30FD ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002] # <KATAKANA LETTER ZA, KATAKANA ITERATION MARK>
-30B5 3099 30FD ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7B FF9E 30FD ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3056 309D ; [.38DF.0020.0011.0001][.0000.0037.0002][.38DF.0020.0010.0002] # <HIRAGANA LETTER ZA, HIRAGANA ITERATION MARK>
-3055 3099 309D ; [.38DF.0020.0011.0001][.0000.0037.0002][.38DF.0020.0010.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B6 30FE ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZA, KATAKANA VOICED ITERATION MARK>
-30B5 3099 30FE ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7B FF9E 30FE ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3056 309E ; [.38DF.0020.0011.0001][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZA, HIRAGANA VOICED ITERATION MARK>
-3055 3099 309E ; [.38DF.0020.0011.0001][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B7 30FD ; [.38E0.0020.0011.0002][.38E0.0020.0010.0002] # <KATAKANA LETTER SI, KATAKANA ITERATION MARK>
-FF7C 30FD ; [.38E0.0020.0011.0002][.38E0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA ITERATION MARK>
-3057 309D ; [.38E0.0020.0011.0001][.38E0.0020.0010.0002] # <HIRAGANA LETTER SI, HIRAGANA ITERATION MARK>
-30B7 30FE ; [.38E0.0020.0011.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
-FF7C 30FE ; [.38E0.0020.0011.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
-3057 309E ; [.38E0.0020.0011.0001][.38E0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, HIRAGANA VOICED ITERATION MARK>
-30B8 30FD ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002] # <KATAKANA LETTER ZI, KATAKANA ITERATION MARK>
-30B7 3099 30FD ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7C FF9E 30FD ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3058 309D ; [.38E0.0020.0011.0001][.0000.0037.0002][.38E0.0020.0010.0002] # <HIRAGANA LETTER ZI, HIRAGANA ITERATION MARK>
-3057 3099 309D ; [.38E0.0020.0011.0001][.0000.0037.0002][.38E0.0020.0010.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B8 30FE ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZI, KATAKANA VOICED ITERATION MARK>
-30B7 3099 30FE ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7C FF9E 30FE ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3058 309E ; [.38E0.0020.0011.0001][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZI, HIRAGANA VOICED ITERATION MARK>
-3057 3099 309E ; [.38E0.0020.0011.0001][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B9 30FD ; [.38E1.0020.0011.0002][.38E1.0020.0010.0002] # <KATAKANA LETTER SU, KATAKANA ITERATION MARK>
-FF7D 30FD ; [.38E1.0020.0011.0002][.38E1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA ITERATION MARK>
-3059 309D ; [.38E1.0020.0011.0001][.38E1.0020.0010.0002] # <HIRAGANA LETTER SU, HIRAGANA ITERATION MARK>
-30B9 30FE ; [.38E1.0020.0011.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
-FF7D 30FE ; [.38E1.0020.0011.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
-3059 309E ; [.38E1.0020.0011.0001][.38E1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, HIRAGANA VOICED ITERATION MARK>
-30BA 30FD ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002] # <KATAKANA LETTER ZU, KATAKANA ITERATION MARK>
-30B9 3099 30FD ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7D FF9E 30FD ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305A 309D ; [.38E1.0020.0011.0001][.0000.0037.0002][.38E1.0020.0010.0002] # <HIRAGANA LETTER ZU, HIRAGANA ITERATION MARK>
-3059 3099 309D ; [.38E1.0020.0011.0001][.0000.0037.0002][.38E1.0020.0010.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BA 30FE ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZU, KATAKANA VOICED ITERATION MARK>
-30B9 3099 30FE ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7D FF9E 30FE ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305A 309E ; [.38E1.0020.0011.0001][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZU, HIRAGANA VOICED ITERATION MARK>
-3059 3099 309E ; [.38E1.0020.0011.0001][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BB 30FD ; [.38E2.0020.0011.0002][.38E2.0020.0010.0002] # <KATAKANA LETTER SE, KATAKANA ITERATION MARK>
-FF7E 30FD ; [.38E2.0020.0011.0002][.38E2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA ITERATION MARK>
-305B 309D ; [.38E2.0020.0011.0001][.38E2.0020.0010.0002] # <HIRAGANA LETTER SE, HIRAGANA ITERATION MARK>
-30BB 30FE ; [.38E2.0020.0011.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
-FF7E 30FE ; [.38E2.0020.0011.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
-305B 309E ; [.38E2.0020.0011.0001][.38E2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, HIRAGANA VOICED ITERATION MARK>
-30BC 30FD ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002] # <KATAKANA LETTER ZE, KATAKANA ITERATION MARK>
-30BB 3099 30FD ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7E FF9E 30FD ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305C 309D ; [.38E2.0020.0011.0001][.0000.0037.0002][.38E2.0020.0010.0002] # <HIRAGANA LETTER ZE, HIRAGANA ITERATION MARK>
-305B 3099 309D ; [.38E2.0020.0011.0001][.0000.0037.0002][.38E2.0020.0010.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BC 30FE ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZE, KATAKANA VOICED ITERATION MARK>
-30BB 3099 30FE ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7E FF9E 30FE ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305C 309E ; [.38E2.0020.0011.0001][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZE, HIRAGANA VOICED ITERATION MARK>
-305B 3099 309E ; [.38E2.0020.0011.0001][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BD 30FD ; [.38E3.0020.0011.0002][.38E3.0020.0010.0002] # <KATAKANA LETTER SO, KATAKANA ITERATION MARK>
-FF7F 30FD ; [.38E3.0020.0011.0002][.38E3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA ITERATION MARK>
-305D 309D ; [.38E3.0020.0011.0001][.38E3.0020.0010.0002] # <HIRAGANA LETTER SO, HIRAGANA ITERATION MARK>
-30BD 30FE ; [.38E3.0020.0011.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
-FF7F 30FE ; [.38E3.0020.0011.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
-305D 309E ; [.38E3.0020.0011.0001][.38E3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, HIRAGANA VOICED ITERATION MARK>
-30BE 30FD ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002] # <KATAKANA LETTER ZO, KATAKANA ITERATION MARK>
-30BD 3099 30FD ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7F FF9E 30FD ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305E 309D ; [.38E3.0020.0011.0001][.0000.0037.0002][.38E3.0020.0010.0002] # <HIRAGANA LETTER ZO, HIRAGANA ITERATION MARK>
-305D 3099 309D ; [.38E3.0020.0011.0001][.0000.0037.0002][.38E3.0020.0010.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BE 30FE ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZO, KATAKANA VOICED ITERATION MARK>
-30BD 3099 30FE ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7F FF9E 30FE ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305E 309E ; [.38E3.0020.0011.0001][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZO, HIRAGANA VOICED ITERATION MARK>
-305D 3099 309E ; [.38E3.0020.0011.0001][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BF 30FD ; [.38E4.0020.0011.0002][.38E4.0020.0010.0002] # <KATAKANA LETTER TA, KATAKANA ITERATION MARK>
-FF80 30FD ; [.38E4.0020.0011.0002][.38E4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA ITERATION MARK>
-305F 309D ; [.38E4.0020.0011.0001][.38E4.0020.0010.0002] # <HIRAGANA LETTER TA, HIRAGANA ITERATION MARK>
-30BF 30FE ; [.38E4.0020.0011.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
-FF80 30FE ; [.38E4.0020.0011.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
-305F 309E ; [.38E4.0020.0011.0001][.38E4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, HIRAGANA VOICED ITERATION MARK>
-30C0 30FD ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002] # <KATAKANA LETTER DA, KATAKANA ITERATION MARK>
-30BF 3099 30FD ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF80 FF9E 30FD ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3060 309D ; [.38E4.0020.0011.0001][.0000.0037.0002][.38E4.0020.0010.0002] # <HIRAGANA LETTER DA, HIRAGANA ITERATION MARK>
-305F 3099 309D ; [.38E4.0020.0011.0001][.0000.0037.0002][.38E4.0020.0010.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C0 30FE ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DA, KATAKANA VOICED ITERATION MARK>
-30BF 3099 30FE ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF80 FF9E 30FE ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3060 309E ; [.38E4.0020.0011.0001][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DA, HIRAGANA VOICED ITERATION MARK>
-305F 3099 309E ; [.38E4.0020.0011.0001][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C1 30FD ; [.38E5.0020.0011.0002][.38E5.0020.0010.0002] # <KATAKANA LETTER TI, KATAKANA ITERATION MARK>
-FF81 30FD ; [.38E5.0020.0011.0002][.38E5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA ITERATION MARK>
-3061 309D ; [.38E5.0020.0011.0001][.38E5.0020.0010.0002] # <HIRAGANA LETTER TI, HIRAGANA ITERATION MARK>
-30C1 30FE ; [.38E5.0020.0011.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
-FF81 30FE ; [.38E5.0020.0011.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
-3061 309E ; [.38E5.0020.0011.0001][.38E5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, HIRAGANA VOICED ITERATION MARK>
-30C2 30FD ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002] # <KATAKANA LETTER DI, KATAKANA ITERATION MARK>
-30C1 3099 30FD ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF81 FF9E 30FD ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3062 309D ; [.38E5.0020.0011.0001][.0000.0037.0002][.38E5.0020.0010.0002] # <HIRAGANA LETTER DI, HIRAGANA ITERATION MARK>
-3061 3099 309D ; [.38E5.0020.0011.0001][.0000.0037.0002][.38E5.0020.0010.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C2 30FE ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DI, KATAKANA VOICED ITERATION MARK>
-30C1 3099 30FE ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF81 FF9E 30FE ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3062 309E ; [.38E5.0020.0011.0001][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DI, HIRAGANA VOICED ITERATION MARK>
-3061 3099 309E ; [.38E5.0020.0011.0001][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C3 30FD ; [.38E6.0020.000F.0002][.38E6.0020.0010.0002] # <KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
-FF6F 30FD ; [.38E6.0020.000F.0002][.38E6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
-3063 309D ; [.38E6.0020.000F.0001][.38E6.0020.0010.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA ITERATION MARK>
-30C3 30FE ; [.38E6.0020.000F.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
-FF6F 30FE ; [.38E6.0020.000F.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
-3063 309E ; [.38E6.0020.000F.0001][.38E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA VOICED ITERATION MARK>
-30C4 30FD ; [.38E6.0020.0011.0002][.38E6.0020.0010.0002] # <KATAKANA LETTER TU, KATAKANA ITERATION MARK>
-FF82 30FD ; [.38E6.0020.0011.0002][.38E6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA ITERATION MARK>
-3064 309D ; [.38E6.0020.0011.0001][.38E6.0020.0010.0002] # <HIRAGANA LETTER TU, HIRAGANA ITERATION MARK>
-30C4 30FE ; [.38E6.0020.0011.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
-FF82 30FE ; [.38E6.0020.0011.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
-3064 309E ; [.38E6.0020.0011.0001][.38E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, HIRAGANA VOICED ITERATION MARK>
-30C5 30FD ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002] # <KATAKANA LETTER DU, KATAKANA ITERATION MARK>
-30C4 3099 30FD ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF82 FF9E 30FD ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3065 309D ; [.38E6.0020.0011.0001][.0000.0037.0002][.38E6.0020.0010.0002] # <HIRAGANA LETTER DU, HIRAGANA ITERATION MARK>
-3064 3099 309D ; [.38E6.0020.0011.0001][.0000.0037.0002][.38E6.0020.0010.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C5 30FE ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DU, KATAKANA VOICED ITERATION MARK>
-30C4 3099 30FE ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF82 FF9E 30FE ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3065 309E ; [.38E6.0020.0011.0001][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DU, HIRAGANA VOICED ITERATION MARK>
-3064 3099 309E ; [.38E6.0020.0011.0001][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C6 30FD ; [.38E7.0020.0011.0002][.38E7.0020.0010.0002] # <KATAKANA LETTER TE, KATAKANA ITERATION MARK>
-FF83 30FD ; [.38E7.0020.0011.0002][.38E7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA ITERATION MARK>
-3066 309D ; [.38E7.0020.0011.0001][.38E7.0020.0010.0002] # <HIRAGANA LETTER TE, HIRAGANA ITERATION MARK>
-30C6 30FE ; [.38E7.0020.0011.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
-FF83 30FE ; [.38E7.0020.0011.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
-3066 309E ; [.38E7.0020.0011.0001][.38E7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, HIRAGANA VOICED ITERATION MARK>
-30C7 30FD ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002] # <KATAKANA LETTER DE, KATAKANA ITERATION MARK>
-30C6 3099 30FD ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF83 FF9E 30FD ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3067 309D ; [.38E7.0020.0011.0001][.0000.0037.0002][.38E7.0020.0010.0002] # <HIRAGANA LETTER DE, HIRAGANA ITERATION MARK>
-3066 3099 309D ; [.38E7.0020.0011.0001][.0000.0037.0002][.38E7.0020.0010.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C7 30FE ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DE, KATAKANA VOICED ITERATION MARK>
-30C6 3099 30FE ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF83 FF9E 30FE ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3067 309E ; [.38E7.0020.0011.0001][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DE, HIRAGANA VOICED ITERATION MARK>
-3066 3099 309E ; [.38E7.0020.0011.0001][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C8 30FD ; [.38E8.0020.0011.0002][.38E8.0020.0010.0002] # <KATAKANA LETTER TO, KATAKANA ITERATION MARK>
-FF84 30FD ; [.38E8.0020.0011.0002][.38E8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA ITERATION MARK>
-3068 309D ; [.38E8.0020.0011.0001][.38E8.0020.0010.0002] # <HIRAGANA LETTER TO, HIRAGANA ITERATION MARK>
-30C8 30FE ; [.38E8.0020.0011.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
-FF84 30FE ; [.38E8.0020.0011.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
-3068 309E ; [.38E8.0020.0011.0001][.38E8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, HIRAGANA VOICED ITERATION MARK>
-30C9 30FD ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002] # <KATAKANA LETTER DO, KATAKANA ITERATION MARK>
-30C8 3099 30FD ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF84 FF9E 30FD ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3069 309D ; [.38E8.0020.0011.0001][.0000.0037.0002][.38E8.0020.0010.0002] # <HIRAGANA LETTER DO, HIRAGANA ITERATION MARK>
-3068 3099 309D ; [.38E8.0020.0011.0001][.0000.0037.0002][.38E8.0020.0010.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C9 30FE ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DO, KATAKANA VOICED ITERATION MARK>
-30C8 3099 30FE ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF84 FF9E 30FE ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3069 309E ; [.38E8.0020.0011.0001][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DO, HIRAGANA VOICED ITERATION MARK>
-3068 3099 309E ; [.38E8.0020.0011.0001][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30CA 30FD ; [.38E9.0020.0011.0002][.38E9.0020.0010.0002] # <KATAKANA LETTER NA, KATAKANA ITERATION MARK>
-FF85 30FD ; [.38E9.0020.0011.0002][.38E9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA ITERATION MARK>
-306A 309D ; [.38E9.0020.0011.0001][.38E9.0020.0010.0002] # <HIRAGANA LETTER NA, HIRAGANA ITERATION MARK>
-30CB 30FD ; [.38EA.0020.0011.0002][.38EA.0020.0010.0002] # <KATAKANA LETTER NI, KATAKANA ITERATION MARK>
-FF86 30FD ; [.38EA.0020.0011.0002][.38EA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA ITERATION MARK>
-306B 309D ; [.38EA.0020.0011.0001][.38EA.0020.0010.0002] # <HIRAGANA LETTER NI, HIRAGANA ITERATION MARK>
-30CC 30FD ; [.38EB.0020.0011.0002][.38EB.0020.0010.0002] # <KATAKANA LETTER NU, KATAKANA ITERATION MARK>
-FF87 30FD ; [.38EB.0020.0011.0002][.38EB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA ITERATION MARK>
-306C 309D ; [.38EB.0020.0011.0001][.38EB.0020.0010.0002] # <HIRAGANA LETTER NU, HIRAGANA ITERATION MARK>
-30CD 30FD ; [.38EC.0020.0011.0002][.38EC.0020.0010.0002] # <KATAKANA LETTER NE, KATAKANA ITERATION MARK>
-FF88 30FD ; [.38EC.0020.0011.0002][.38EC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA ITERATION MARK>
-306D 309D ; [.38EC.0020.0011.0001][.38EC.0020.0010.0002] # <HIRAGANA LETTER NE, HIRAGANA ITERATION MARK>
-30CE 30FD ; [.38ED.0020.0011.0002][.38ED.0020.0010.0002] # <KATAKANA LETTER NO, KATAKANA ITERATION MARK>
-FF89 30FD ; [.38ED.0020.0011.0002][.38ED.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA ITERATION MARK>
-306E 309D ; [.38ED.0020.0011.0001][.38ED.0020.0010.0002] # <HIRAGANA LETTER NO, HIRAGANA ITERATION MARK>
-30CF 30FD ; [.38EE.0020.0011.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER HA, KATAKANA ITERATION MARK>
-FF8A 30FD ; [.38EE.0020.0011.0002][.38EE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA ITERATION MARK>
-306F 309D ; [.38EE.0020.0011.0001][.38EE.0020.0010.0002] # <HIRAGANA LETTER HA, HIRAGANA ITERATION MARK>
-30CF 30FE ; [.38EE.0020.0011.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
-FF8A 30FE ; [.38EE.0020.0011.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
-306F 309E ; [.38EE.0020.0011.0001][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, HIRAGANA VOICED ITERATION MARK>
-30D0 30FD ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER BA, KATAKANA ITERATION MARK>
-30CF 3099 30FD ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8A FF9E 30FD ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3070 309D ; [.38EE.0020.0011.0001][.0000.0037.0002][.38EE.0020.0010.0002] # <HIRAGANA LETTER BA, HIRAGANA ITERATION MARK>
-306F 3099 309D ; [.38EE.0020.0011.0001][.0000.0037.0002][.38EE.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D0 30FE ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BA, KATAKANA VOICED ITERATION MARK>
-30CF 3099 30FE ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8A FF9E 30FE ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3070 309E ; [.38EE.0020.0011.0001][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BA, HIRAGANA VOICED ITERATION MARK>
-306F 3099 309E ; [.38EE.0020.0011.0001][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D1 30FD ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER PA, KATAKANA ITERATION MARK>
-30CF 309A 30FD ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8A FF9F 30FD ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3071 309D ; [.38EE.0020.0011.0001][.0000.0038.0002][.38EE.0020.0010.0002] # <HIRAGANA LETTER PA, HIRAGANA ITERATION MARK>
-306F 309A 309D ; [.38EE.0020.0011.0001][.0000.0038.0002][.38EE.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D1 30FE ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PA, KATAKANA VOICED ITERATION MARK>
-30CF 309A 30FE ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8A FF9F 30FE ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3071 309E ; [.38EE.0020.0011.0001][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PA, HIRAGANA VOICED ITERATION MARK>
-306F 309A 309E ; [.38EE.0020.0011.0001][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D2 30FD ; [.38EF.0020.0011.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER HI, KATAKANA ITERATION MARK>
-FF8B 30FD ; [.38EF.0020.0011.0002][.38EF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA ITERATION MARK>
-3072 309D ; [.38EF.0020.0011.0001][.38EF.0020.0010.0002] # <HIRAGANA LETTER HI, HIRAGANA ITERATION MARK>
-30D2 30FE ; [.38EF.0020.0011.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
-FF8B 30FE ; [.38EF.0020.0011.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
-3072 309E ; [.38EF.0020.0011.0001][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, HIRAGANA VOICED ITERATION MARK>
-30D3 30FD ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER BI, KATAKANA ITERATION MARK>
-30D2 3099 30FD ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8B FF9E 30FD ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3073 309D ; [.38EF.0020.0011.0001][.0000.0037.0002][.38EF.0020.0010.0002] # <HIRAGANA LETTER BI, HIRAGANA ITERATION MARK>
-3072 3099 309D ; [.38EF.0020.0011.0001][.0000.0037.0002][.38EF.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D3 30FE ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BI, KATAKANA VOICED ITERATION MARK>
-30D2 3099 30FE ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8B FF9E 30FE ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3073 309E ; [.38EF.0020.0011.0001][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BI, HIRAGANA VOICED ITERATION MARK>
-3072 3099 309E ; [.38EF.0020.0011.0001][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D4 30FD ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER PI, KATAKANA ITERATION MARK>
-30D2 309A 30FD ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8B FF9F 30FD ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3074 309D ; [.38EF.0020.0011.0001][.0000.0038.0002][.38EF.0020.0010.0002] # <HIRAGANA LETTER PI, HIRAGANA ITERATION MARK>
-3072 309A 309D ; [.38EF.0020.0011.0001][.0000.0038.0002][.38EF.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D4 30FE ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PI, KATAKANA VOICED ITERATION MARK>
-30D2 309A 30FE ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8B FF9F 30FE ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3074 309E ; [.38EF.0020.0011.0001][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PI, HIRAGANA VOICED ITERATION MARK>
-3072 309A 309E ; [.38EF.0020.0011.0001][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D5 30FD ; [.38F0.0020.0011.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER HU, KATAKANA ITERATION MARK>
-FF8C 30FD ; [.38F0.0020.0011.0002][.38F0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA ITERATION MARK>
-3075 309D ; [.38F0.0020.0011.0001][.38F0.0020.0010.0002] # <HIRAGANA LETTER HU, HIRAGANA ITERATION MARK>
-30D5 30FE ; [.38F0.0020.0011.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
-FF8C 30FE ; [.38F0.0020.0011.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
-3075 309E ; [.38F0.0020.0011.0001][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, HIRAGANA VOICED ITERATION MARK>
-30D6 30FD ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER BU, KATAKANA ITERATION MARK>
-30D5 3099 30FD ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8C FF9E 30FD ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3076 309D ; [.38F0.0020.0011.0001][.0000.0037.0002][.38F0.0020.0010.0002] # <HIRAGANA LETTER BU, HIRAGANA ITERATION MARK>
-3075 3099 309D ; [.38F0.0020.0011.0001][.0000.0037.0002][.38F0.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D6 30FE ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BU, KATAKANA VOICED ITERATION MARK>
-30D5 3099 30FE ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8C FF9E 30FE ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3076 309E ; [.38F0.0020.0011.0001][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BU, HIRAGANA VOICED ITERATION MARK>
-3075 3099 309E ; [.38F0.0020.0011.0001][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D7 30FD ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER PU, KATAKANA ITERATION MARK>
-30D5 309A 30FD ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8C FF9F 30FD ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3077 309D ; [.38F0.0020.0011.0001][.0000.0038.0002][.38F0.0020.0010.0002] # <HIRAGANA LETTER PU, HIRAGANA ITERATION MARK>
-3075 309A 309D ; [.38F0.0020.0011.0001][.0000.0038.0002][.38F0.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D7 30FE ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PU, KATAKANA VOICED ITERATION MARK>
-30D5 309A 30FE ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8C FF9F 30FE ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3077 309E ; [.38F0.0020.0011.0001][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PU, HIRAGANA VOICED ITERATION MARK>
-3075 309A 309E ; [.38F0.0020.0011.0001][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D8 30FD ; [.38F1.0020.0011.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER HE, KATAKANA ITERATION MARK>
-FF8D 30FD ; [.38F1.0020.0011.0002][.38F1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA ITERATION MARK>
-3078 309D ; [.38F1.0020.0011.0001][.38F1.0020.0010.0002] # <HIRAGANA LETTER HE, HIRAGANA ITERATION MARK>
-30D8 30FE ; [.38F1.0020.0011.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
-FF8D 30FE ; [.38F1.0020.0011.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
-3078 309E ; [.38F1.0020.0011.0001][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, HIRAGANA VOICED ITERATION MARK>
-30D9 30FD ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER BE, KATAKANA ITERATION MARK>
-30D8 3099 30FD ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8D FF9E 30FD ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3079 309D ; [.38F1.0020.0011.0001][.0000.0037.0002][.38F1.0020.0010.0002] # <HIRAGANA LETTER BE, HIRAGANA ITERATION MARK>
-3078 3099 309D ; [.38F1.0020.0011.0001][.0000.0037.0002][.38F1.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D9 30FE ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BE, KATAKANA VOICED ITERATION MARK>
-30D8 3099 30FE ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8D FF9E 30FE ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3079 309E ; [.38F1.0020.0011.0001][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BE, HIRAGANA VOICED ITERATION MARK>
-3078 3099 309E ; [.38F1.0020.0011.0001][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DA 30FD ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER PE, KATAKANA ITERATION MARK>
-30D8 309A 30FD ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8D FF9F 30FD ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307A 309D ; [.38F1.0020.0011.0001][.0000.0038.0002][.38F1.0020.0010.0002] # <HIRAGANA LETTER PE, HIRAGANA ITERATION MARK>
-3078 309A 309D ; [.38F1.0020.0011.0001][.0000.0038.0002][.38F1.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DA 30FE ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PE, KATAKANA VOICED ITERATION MARK>
-30D8 309A 30FE ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8D FF9F 30FE ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307A 309E ; [.38F1.0020.0011.0001][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PE, HIRAGANA VOICED ITERATION MARK>
-3078 309A 309E ; [.38F1.0020.0011.0001][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DB 30FD ; [.38F2.0020.0011.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER HO, KATAKANA ITERATION MARK>
-FF8E 30FD ; [.38F2.0020.0011.0002][.38F2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA ITERATION MARK>
-307B 309D ; [.38F2.0020.0011.0001][.38F2.0020.0010.0002] # <HIRAGANA LETTER HO, HIRAGANA ITERATION MARK>
-30DB 30FE ; [.38F2.0020.0011.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
-FF8E 30FE ; [.38F2.0020.0011.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
-307B 309E ; [.38F2.0020.0011.0001][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, HIRAGANA VOICED ITERATION MARK>
-30DC 30FD ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER BO, KATAKANA ITERATION MARK>
-30DB 3099 30FD ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8E FF9E 30FD ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307C 309D ; [.38F2.0020.0011.0001][.0000.0037.0002][.38F2.0020.0010.0002] # <HIRAGANA LETTER BO, HIRAGANA ITERATION MARK>
-307B 3099 309D ; [.38F2.0020.0011.0001][.0000.0037.0002][.38F2.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DC 30FE ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BO, KATAKANA VOICED ITERATION MARK>
-30DB 3099 30FE ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8E FF9E 30FE ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307C 309E ; [.38F2.0020.0011.0001][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BO, HIRAGANA VOICED ITERATION MARK>
-307B 3099 309E ; [.38F2.0020.0011.0001][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DD 30FD ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER PO, KATAKANA ITERATION MARK>
-30DB 309A 30FD ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8E FF9F 30FD ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307D 309D ; [.38F2.0020.0011.0001][.0000.0038.0002][.38F2.0020.0010.0002] # <HIRAGANA LETTER PO, HIRAGANA ITERATION MARK>
-307B 309A 309D ; [.38F2.0020.0011.0001][.0000.0038.0002][.38F2.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DD 30FE ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PO, KATAKANA VOICED ITERATION MARK>
-30DB 309A 30FE ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8E FF9F 30FE ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307D 309E ; [.38F2.0020.0011.0001][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PO, HIRAGANA VOICED ITERATION MARK>
-307B 309A 309E ; [.38F2.0020.0011.0001][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DE 30FD ; [.38F3.0020.0011.0002][.38F3.0020.0010.0002] # <KATAKANA LETTER MA, KATAKANA ITERATION MARK>
-FF8F 30FD ; [.38F3.0020.0011.0002][.38F3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA ITERATION MARK>
-307E 309D ; [.38F3.0020.0011.0001][.38F3.0020.0010.0002] # <HIRAGANA LETTER MA, HIRAGANA ITERATION MARK>
-30DF 30FD ; [.38F4.0020.0011.0002][.38F4.0020.0010.0002] # <KATAKANA LETTER MI, KATAKANA ITERATION MARK>
-FF90 30FD ; [.38F4.0020.0011.0002][.38F4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA ITERATION MARK>
-307F 309D ; [.38F4.0020.0011.0001][.38F4.0020.0010.0002] # <HIRAGANA LETTER MI, HIRAGANA ITERATION MARK>
-30E0 30FD ; [.38F5.0020.0011.0002][.38F5.0020.0010.0002] # <KATAKANA LETTER MU, KATAKANA ITERATION MARK>
-FF91 30FD ; [.38F5.0020.0011.0002][.38F5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA ITERATION MARK>
-3080 309D ; [.38F5.0020.0011.0001][.38F5.0020.0010.0002] # <HIRAGANA LETTER MU, HIRAGANA ITERATION MARK>
-30E1 30FD ; [.38F6.0020.0011.0002][.38F6.0020.0010.0002] # <KATAKANA LETTER ME, KATAKANA ITERATION MARK>
-FF92 30FD ; [.38F6.0020.0011.0002][.38F6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA ITERATION MARK>
-3081 309D ; [.38F6.0020.0011.0001][.38F6.0020.0010.0002] # <HIRAGANA LETTER ME, HIRAGANA ITERATION MARK>
-30E2 30FD ; [.38F7.0020.0011.0002][.38F7.0020.0010.0002] # <KATAKANA LETTER MO, KATAKANA ITERATION MARK>
-FF93 30FD ; [.38F7.0020.0011.0002][.38F7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA ITERATION MARK>
-3082 309D ; [.38F7.0020.0011.0001][.38F7.0020.0010.0002] # <HIRAGANA LETTER MO, HIRAGANA ITERATION MARK>
-30E3 30FD ; [.38F8.0020.000F.0002][.38F8.0020.0010.0002] # <KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
-FF6C 30FD ; [.38F8.0020.000F.0002][.38F8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
-3083 309D ; [.38F8.0020.000F.0001][.38F8.0020.0010.0002] # <HIRAGANA LETTER SMALL YA, HIRAGANA ITERATION MARK>
-30E4 30FD ; [.38F8.0020.0011.0002][.38F8.0020.0010.0002] # <KATAKANA LETTER YA, KATAKANA ITERATION MARK>
-FF94 30FD ; [.38F8.0020.0011.0002][.38F8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA ITERATION MARK>
-3084 309D ; [.38F8.0020.0011.0001][.38F8.0020.0010.0002] # <HIRAGANA LETTER YA, HIRAGANA ITERATION MARK>
-30E5 30FD ; [.38F9.0020.000F.0002][.38F9.0020.0010.0002] # <KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
-FF6D 30FD ; [.38F9.0020.000F.0002][.38F9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
-3085 309D ; [.38F9.0020.000F.0001][.38F9.0020.0010.0002] # <HIRAGANA LETTER SMALL YU, HIRAGANA ITERATION MARK>
-30E6 30FD ; [.38F9.0020.0011.0002][.38F9.0020.0010.0002] # <KATAKANA LETTER YU, KATAKANA ITERATION MARK>
-FF95 30FD ; [.38F9.0020.0011.0002][.38F9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA ITERATION MARK>
-3086 309D ; [.38F9.0020.0011.0001][.38F9.0020.0010.0002] # <HIRAGANA LETTER YU, HIRAGANA ITERATION MARK>
-30E7 30FD ; [.38FB.0020.000F.0002][.38FB.0020.0010.0002] # <KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
-FF6E 30FD ; [.38FB.0020.000F.0002][.38FB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
-3087 309D ; [.38FB.0020.000F.0001][.38FB.0020.0010.0002] # <HIRAGANA LETTER SMALL YO, HIRAGANA ITERATION MARK>
-30E8 30FD ; [.38FB.0020.0011.0002][.38FB.0020.0010.0002] # <KATAKANA LETTER YO, KATAKANA ITERATION MARK>
-FF96 30FD ; [.38FB.0020.0011.0002][.38FB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA ITERATION MARK>
-3088 309D ; [.38FB.0020.0011.0001][.38FB.0020.0010.0002] # <HIRAGANA LETTER YO, HIRAGANA ITERATION MARK>
-30E9 30FD ; [.38FC.0020.0011.0002][.38FC.0020.0010.0002] # <KATAKANA LETTER RA, KATAKANA ITERATION MARK>
-FF97 30FD ; [.38FC.0020.0011.0002][.38FC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA ITERATION MARK>
-3089 309D ; [.38FC.0020.0011.0001][.38FC.0020.0010.0002] # <HIRAGANA LETTER RA, HIRAGANA ITERATION MARK>
-30EA 30FD ; [.38FD.0020.0011.0002][.38FD.0020.0010.0002] # <KATAKANA LETTER RI, KATAKANA ITERATION MARK>
-FF98 30FD ; [.38FD.0020.0011.0002][.38FD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA ITERATION MARK>
-308A 309D ; [.38FD.0020.0011.0001][.38FD.0020.0010.0002] # <HIRAGANA LETTER RI, HIRAGANA ITERATION MARK>
-30EB 30FD ; [.38FE.0020.0011.0002][.38FE.0020.0010.0002] # <KATAKANA LETTER RU, KATAKANA ITERATION MARK>
-FF99 30FD ; [.38FE.0020.0011.0002][.38FE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA ITERATION MARK>
-308B 309D ; [.38FE.0020.0011.0001][.38FE.0020.0010.0002] # <HIRAGANA LETTER RU, HIRAGANA ITERATION MARK>
-30EC 30FD ; [.38FF.0020.0011.0002][.38FF.0020.0010.0002] # <KATAKANA LETTER RE, KATAKANA ITERATION MARK>
-FF9A 30FD ; [.38FF.0020.0011.0002][.38FF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA ITERATION MARK>
-308C 309D ; [.38FF.0020.0011.0001][.38FF.0020.0010.0002] # <HIRAGANA LETTER RE, HIRAGANA ITERATION MARK>
-30ED 30FD ; [.3900.0020.0011.0002][.3900.0020.0010.0002] # <KATAKANA LETTER RO, KATAKANA ITERATION MARK>
-FF9B 30FD ; [.3900.0020.0011.0002][.3900.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA ITERATION MARK>
-308D 309D ; [.3900.0020.0011.0001][.3900.0020.0010.0002] # <HIRAGANA LETTER RO, HIRAGANA ITERATION MARK>
-30EE 30FD ; [.3901.0020.000F.0002][.3901.0020.0010.0002] # <KATAKANA LETTER SMALL WA, KATAKANA ITERATION MARK>
-308E 309D ; [.3901.0020.000F.0001][.3901.0020.0010.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA ITERATION MARK>
-30EE 30FE ; [.3901.0020.000F.0002][.3901.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL WA, KATAKANA VOICED ITERATION MARK>
-308E 309E ; [.3901.0020.000F.0001][.3901.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA VOICED ITERATION MARK>
-30EF 30FD ; [.3901.0020.0011.0002][.3901.0020.0010.0002] # <KATAKANA LETTER WA, KATAKANA ITERATION MARK>
-FF9C 30FD ; [.3901.0020.0011.0002][.3901.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA ITERATION MARK>
-308F 309D ; [.3901.0020.0011.0001][.3901.0020.0010.0002] # <HIRAGANA LETTER WA, HIRAGANA ITERATION MARK>
-30EF 30FE ; [.3901.0020.0011.0002][.3901.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
-FF9C 30FE ; [.3901.0020.0011.0002][.3901.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
-308F 309E ; [.3901.0020.0011.0001][.3901.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WA, HIRAGANA VOICED ITERATION MARK>
-30F0 30FD ; [.3902.0020.0011.0002][.3902.0020.0010.0002] # <KATAKANA LETTER WI, KATAKANA ITERATION MARK>
-3090 309D ; [.3902.0020.0011.0001][.3902.0020.0010.0002] # <HIRAGANA LETTER WI, HIRAGANA ITERATION MARK>
-30F0 30FE ; [.3902.0020.0011.0002][.3902.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, KATAKANA VOICED ITERATION MARK>
-3090 309E ; [.3902.0020.0011.0001][.3902.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WI, HIRAGANA VOICED ITERATION MARK>
-30F1 30FD ; [.3903.0020.0011.0002][.3903.0020.0010.0002] # <KATAKANA LETTER WE, KATAKANA ITERATION MARK>
-3091 309D ; [.3903.0020.0011.0001][.3903.0020.0010.0002] # <HIRAGANA LETTER WE, HIRAGANA ITERATION MARK>
-30F1 30FE ; [.3903.0020.0011.0002][.3903.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, KATAKANA VOICED ITERATION MARK>
-3091 309E ; [.3903.0020.0011.0001][.3903.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WE, HIRAGANA VOICED ITERATION MARK>
-30F2 30FD ; [.3904.0020.0011.0002][.3904.0020.0010.0002] # <KATAKANA LETTER WO, KATAKANA ITERATION MARK>
-FF66 30FD ; [.3904.0020.0011.0002][.3904.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA ITERATION MARK>
-3092 309D ; [.3904.0020.0011.0001][.3904.0020.0010.0002] # <HIRAGANA LETTER WO, HIRAGANA ITERATION MARK>
-30F2 30FE ; [.3904.0020.0011.0002][.3904.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
-FF66 30FE ; [.3904.0020.0011.0002][.3904.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
-3092 309E ; [.3904.0020.0011.0001][.3904.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WO, HIRAGANA VOICED ITERATION MARK>
-30F3 30FD ; [.3905.0020.0011.0002][.3905.0020.0010.0002] # <KATAKANA LETTER N, KATAKANA ITERATION MARK>
-FF9D 30FD ; [.3905.0020.0011.0002][.3905.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER N, KATAKANA ITERATION MARK>
-3093 309D ; [.3905.0020.0011.0001][.3905.0020.0010.0002] # <HIRAGANA LETTER N, HIRAGANA ITERATION MARK>
-30F4 30FD ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002] # <KATAKANA LETTER VU, KATAKANA ITERATION MARK>
-30A6 3099 30FD ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF73 FF9E 30FD ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3094 309D ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0010.0002] # <HIRAGANA LETTER VU, HIRAGANA ITERATION MARK>
-3046 3099 309D ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0010.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30F4 30FE ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VU, KATAKANA VOICED ITERATION MARK>
-30A6 3099 30FE ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF73 FF9E 30FE ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3094 309E ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER VU, HIRAGANA VOICED ITERATION MARK>
-3046 3099 309E ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30F5 30FD ; [.38DA.0020.000F.0002][.38DA.0020.0010.0002] # <KATAKANA LETTER SMALL KA, KATAKANA ITERATION MARK>
-3095 309D ; [.38DA.0020.000F.0001][.38DA.0020.0010.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA ITERATION MARK>
-30F5 30FE ; [.38DA.0020.000F.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KA, KATAKANA VOICED ITERATION MARK>
-3095 309E ; [.38DA.0020.000F.0001][.38DA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA VOICED ITERATION MARK>
-30F6 30FD ; [.38DD.0020.000F.0002][.38DD.0020.0010.0002] # <KATAKANA LETTER SMALL KE, KATAKANA ITERATION MARK>
-3096 309D ; [.38DD.0020.000F.0001][.38DD.0020.0010.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA ITERATION MARK>
-30F6 30FE ; [.38DD.0020.000F.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KE, KATAKANA VOICED ITERATION MARK>
-3096 309E ; [.38DD.0020.000F.0001][.38DD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA VOICED ITERATION MARK>
-30F7 30FD ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002] # <KATAKANA LETTER VA, KATAKANA ITERATION MARK>
-30EF 3099 30FD ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF9C FF9E 30FD ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F7 30FE ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VA, KATAKANA VOICED ITERATION MARK>
-30EF 3099 30FE ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF9C FF9E 30FE ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30F8 30FD ; [.3902.0020.0011.0002][.0000.0037.0002][.3902.0020.0010.0002] # <KATAKANA LETTER VI, KATAKANA ITERATION MARK>
-30F0 3099 30FD ; [.3902.0020.0011.0002][.0000.0037.0002][.3902.0020.0010.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F8 30FE ; [.3902.0020.0011.0002][.0000.0037.0002][.3902.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VI, KATAKANA VOICED ITERATION MARK>
-30F0 3099 30FE ; [.3902.0020.0011.0002][.0000.0037.0002][.3902.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30F9 30FD ; [.3903.0020.0011.0002][.0000.0037.0002][.3903.0020.0010.0002] # <KATAKANA LETTER VE, KATAKANA ITERATION MARK>
-30F1 3099 30FD ; [.3903.0020.0011.0002][.0000.0037.0002][.3903.0020.0010.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F9 30FE ; [.3903.0020.0011.0002][.0000.0037.0002][.3903.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VE, KATAKANA VOICED ITERATION MARK>
-30F1 3099 30FE ; [.3903.0020.0011.0002][.0000.0037.0002][.3903.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30FA 30FD ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002] # <KATAKANA LETTER VO, KATAKANA ITERATION MARK>
-30F2 3099 30FD ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF66 FF9E 30FD ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30FA 30FE ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VO, KATAKANA VOICED ITERATION MARK>
-30F2 3099 30FE ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF66 FF9E 30FE ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-31F0 30FD ; [.38DC.0020.000F][.38DC.0020.0010.0002] # <KATAKANA LETTER SMALL KU, KATAKANA ITERATION MARK>
-31F0 30FE ; [.38DC.0020.000F][.38DC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KU, KATAKANA VOICED ITERATION MARK>
-31F1 30FD ; [.38E0.0020.000F][.38E0.0020.0010.0002] # <KATAKANA LETTER SMALL SI, KATAKANA ITERATION MARK>
-31F1 30FE ; [.38E0.0020.000F][.38E0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SI, KATAKANA VOICED ITERATION MARK>
-31F2 30FD ; [.38E1.0020.000F][.38E1.0020.0010.0002] # <KATAKANA LETTER SMALL SU, KATAKANA ITERATION MARK>
-31F2 30FE ; [.38E1.0020.000F][.38E1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SU, KATAKANA VOICED ITERATION MARK>
-31F3 30FD ; [.38E8.0020.000F][.38E8.0020.0010.0002] # <KATAKANA LETTER SMALL TO, KATAKANA ITERATION MARK>
-31F3 30FE ; [.38E8.0020.000F][.38E8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TO, KATAKANA VOICED ITERATION MARK>
-31F4 30FD ; [.38EB.0020.000F][.38EB.0020.0010.0002] # <KATAKANA LETTER SMALL NU, KATAKANA ITERATION MARK>
-31F5 30FD ; [.38EE.0020.000F][.38EE.0020.0010.0002] # <KATAKANA LETTER SMALL HA, KATAKANA ITERATION MARK>
-31F5 30FE ; [.38EE.0020.000F][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HA, KATAKANA VOICED ITERATION MARK>
-31F6 30FD ; [.38EF.0020.000F][.38EF.0020.0010.0002] # <KATAKANA LETTER SMALL HI, KATAKANA ITERATION MARK>
-31F6 30FE ; [.38EF.0020.000F][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HI, KATAKANA VOICED ITERATION MARK>
-31F7 30FD ; [.38F0.0020.000F][.38F0.0020.0010.0002] # <KATAKANA LETTER SMALL HU, KATAKANA ITERATION MARK>
-31F7 30FE ; [.38F0.0020.000F][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HU, KATAKANA VOICED ITERATION MARK>
-31F8 30FD ; [.38F1.0020.000F][.38F1.0020.0010.0002] # <KATAKANA LETTER SMALL HE, KATAKANA ITERATION MARK>
-31F8 30FE ; [.38F1.0020.000F][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HE, KATAKANA VOICED ITERATION MARK>
-31F9 30FD ; [.38F2.0020.000F][.38F2.0020.0010.0002] # <KATAKANA LETTER SMALL HO, KATAKANA ITERATION MARK>
-31F9 30FE ; [.38F2.0020.000F][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HO, KATAKANA VOICED ITERATION MARK>
-31FA 30FD ; [.38F5.0020.000F][.38F5.0020.0010.0002] # <KATAKANA LETTER SMALL MU, KATAKANA ITERATION MARK>
-31FB 30FD ; [.38FC.0020.000F][.38FC.0020.0010.0002] # <KATAKANA LETTER SMALL RA, KATAKANA ITERATION MARK>
-31FC 30FD ; [.38FD.0020.000F][.38FD.0020.0010.0002] # <KATAKANA LETTER SMALL RI, KATAKANA ITERATION MARK>
-31FD 30FD ; [.38FE.0020.000F][.38FE.0020.0010.0002] # <KATAKANA LETTER SMALL RU, KATAKANA ITERATION MARK>
-31FE 30FD ; [.38FF.0020.000F][.38FF.0020.0010.0002] # <KATAKANA LETTER SMALL RE, KATAKANA ITERATION MARK>
-31FF 30FD ; [.3900.0020.000F][.3900.0020.0010.0002] # <KATAKANA LETTER SMALL RO, KATAKANA ITERATION MARK>
+FFE4 ; [*061F.0020.0002] # FULLWIDTH BROKEN BAR
+FFE5 ; [.1C14.0020.0002] # FULLWIDTH YEN SIGN
+FFE6 ; [.1C27.0020.0002] # FULLWIDTH WON SIGN
+FFE8 ; [*081A.0020.0002] # HALFWIDTH FORMS LIGHT VERTICAL
+FFE9 ; [*059C.0020.0002] # HALFWIDTH LEFTWARDS ARROW
+FFEA ; [*059E.0020.0002] # HALFWIDTH UPWARDS ARROW
+FFEB ; [*059D.0020.0002] # HALFWIDTH RIGHTWARDS ARROW
+FFEC ; [*059F.0020.0002] # HALFWIDTH DOWNWARDS ARROW
+FFED ; [*08B8.0020.0002] # HALFWIDTH BLACK SQUARE
+FFEE ; [*08E3.0020.0002] # HALFWIDTH WHITE CIRCLE
+30A1 30FC ; [.3D5A.0020.000F.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF67 30FC ; [.3D5A.0020.000F.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF67 FF70 ; [.3D5A.0020.000F.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3041 30FC ; [.3D5A.0020.000F.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A2 30FC ; [.3D5A.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF71 30FC ; [.3D5A.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF71 FF70 ; [.3D5A.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3042 30FC ; [.3D5A.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AB 30FC ; [.3D60.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF76 30FC ; [.3D60.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF76 FF70 ; [.3D60.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304B 30FC ; [.3D60.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AC 30FC ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AB 3099 30FC ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF76 FF9E 30FC ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF76 FF9E FF70 ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304C 30FC ; [.3D60.0020.0011.0001][.0000.0037.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304B 3099 30FC ; [.3D60.0020.0011.0001][.0000.0037.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B5 30FC ; [.3D65.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7B 30FC ; [.3D65.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7B FF70 ; [.3D65.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3055 30FC ; [.3D65.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B6 30FC ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B5 3099 30FC ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7B FF9E 30FC ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7B FF9E FF70 ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3056 30FC ; [.3D65.0020.0011.0001][.0000.0037.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3055 3099 30FC ; [.3D65.0020.0011.0001][.0000.0037.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BF 30FC ; [.3D6A.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF80 30FC ; [.3D6A.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF80 FF70 ; [.3D6A.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305F 30FC ; [.3D6A.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C0 30FC ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BF 3099 30FC ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF80 FF9E 30FC ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF80 FF9E FF70 ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3060 30FC ; [.3D6A.0020.0011.0001][.0000.0037.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305F 3099 30FC ; [.3D6A.0020.0011.0001][.0000.0037.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CA 30FC ; [.3D6F.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF85 30FC ; [.3D6F.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF85 FF70 ; [.3D6F.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306A 30FC ; [.3D6F.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CF 30FC ; [.3D74.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A 30FC ; [.3D74.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF70 ; [.3D74.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306F 30FC ; [.3D74.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D0 30FC ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CF 3099 30FC ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF9E 30FC ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF9E FF70 ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3070 30FC ; [.3D74.0020.0011.0001][.0000.0037.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306F 3099 30FC ; [.3D74.0020.0011.0001][.0000.0037.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D1 30FC ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CF 309A 30FC ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF9F 30FC ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF9F FF70 ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3071 30FC ; [.3D74.0020.0011.0001][.0000.0038.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306F 309A 30FC ; [.3D74.0020.0011.0001][.0000.0038.0002][.3D5A.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DE 30FC ; [.3D79.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8F 30FC ; [.3D79.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8F FF70 ; [.3D79.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307E 30FC ; [.3D79.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E3 30FC ; [.3D7E.0020.000F.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6C 30FC ; [.3D7E.0020.000F.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6C FF70 ; [.3D7E.0020.000F.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3083 30FC ; [.3D7E.0020.000F.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E4 30FC ; [.3D7E.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF94 30FC ; [.3D7E.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF94 FF70 ; [.3D7E.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3084 30FC ; [.3D7E.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E9 30FC ; [.3D82.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF97 30FC ; [.3D82.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF97 FF70 ; [.3D82.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3089 30FC ; [.3D82.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EE 30FC ; [.3D87.0020.000F.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308E 30FC ; [.3D87.0020.000F.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EF 30FC ; [.3D87.0020.0011.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9C 30FC ; [.3D87.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9C FF70 ; [.3D87.0020.0011.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308F 30FC ; [.3D87.0020.0011.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F7 30FC ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER VA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EF 3099 30FC ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9C FF9E 30FC ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9C FF9E FF70 ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D5A.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F5 30FC ; [.3D60.0020.000F.0002][.3D5A.0020.0007.0002] # <KATAKANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3095 30FC ; [.3D60.0020.000F.0001][.3D5A.0020.0007.0002] # <HIRAGANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F5 30FC ; [.3D74.0020.000F][.3D5A.0020.0007.0002] # <KATAKANA LETTER SMALL HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FB 30FC ; [.3D82.0020.000F][.3D5A.0020.0007.0002] # <KATAKANA LETTER SMALL RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A3 30FC ; [.3D5B.0020.000F.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF68 30FC ; [.3D5B.0020.000F.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF68 FF70 ; [.3D5B.0020.000F.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3043 30FC ; [.3D5B.0020.000F.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A4 30FC ; [.3D5B.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF72 30FC ; [.3D5B.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF72 FF70 ; [.3D5B.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3044 30FC ; [.3D5B.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AD 30FC ; [.3D61.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF77 30FC ; [.3D61.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF77 FF70 ; [.3D61.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304D 30FC ; [.3D61.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AE 30FC ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AD 3099 30FC ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF77 FF9E 30FC ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF77 FF9E FF70 ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304E 30FC ; [.3D61.0020.0011.0001][.0000.0037.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304D 3099 30FC ; [.3D61.0020.0011.0001][.0000.0037.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B7 30FC ; [.3D66.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7C 30FC ; [.3D66.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7C FF70 ; [.3D66.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3057 30FC ; [.3D66.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B8 30FC ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B7 3099 30FC ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7C FF9E 30FC ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7C FF9E FF70 ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3058 30FC ; [.3D66.0020.0011.0001][.0000.0037.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3057 3099 30FC ; [.3D66.0020.0011.0001][.0000.0037.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C1 30FC ; [.3D6B.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF81 30FC ; [.3D6B.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF81 FF70 ; [.3D6B.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3061 30FC ; [.3D6B.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C2 30FC ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C1 3099 30FC ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF81 FF9E 30FC ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF81 FF9E FF70 ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3062 30FC ; [.3D6B.0020.0011.0001][.0000.0037.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3061 3099 30FC ; [.3D6B.0020.0011.0001][.0000.0037.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CB 30FC ; [.3D70.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF86 30FC ; [.3D70.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF86 FF70 ; [.3D70.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306B 30FC ; [.3D70.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D2 30FC ; [.3D75.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B 30FC ; [.3D75.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF70 ; [.3D75.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3072 30FC ; [.3D75.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D3 30FC ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D2 3099 30FC ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF9E 30FC ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF9E FF70 ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3073 30FC ; [.3D75.0020.0011.0001][.0000.0037.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3072 3099 30FC ; [.3D75.0020.0011.0001][.0000.0037.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D4 30FC ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D2 309A 30FC ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF9F 30FC ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF9F FF70 ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3074 30FC ; [.3D75.0020.0011.0001][.0000.0038.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3072 309A 30FC ; [.3D75.0020.0011.0001][.0000.0038.0002][.3D5B.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DF 30FC ; [.3D7A.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF90 30FC ; [.3D7A.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF90 FF70 ; [.3D7A.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307F 30FC ; [.3D7A.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EA 30FC ; [.3D83.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF98 30FC ; [.3D83.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF98 FF70 ; [.3D83.0020.0011.0002][.3D5B.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308A 30FC ; [.3D83.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F0 30FC ; [.3D88.0020.0011.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3090 30FC ; [.3D88.0020.0011.0001][.3D5B.0020.0007.0002] # <HIRAGANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F8 30FC ; [.3D88.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER VI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F0 3099 30FC ; [.3D88.0020.0011.0002][.0000.0037.0002][.3D5B.0020.0007.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F1 30FC ; [.3D66.0020.000F][.3D5B.0020.0007.0002] # <KATAKANA LETTER SMALL SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F6 30FC ; [.3D75.0020.000F][.3D5B.0020.0007.0002] # <KATAKANA LETTER SMALL HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FC 30FC ; [.3D83.0020.000F][.3D5B.0020.0007.0002] # <KATAKANA LETTER SMALL RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A5 30FC ; [.3D5C.0020.000F.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF69 30FC ; [.3D5C.0020.000F.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF69 FF70 ; [.3D5C.0020.000F.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3045 30FC ; [.3D5C.0020.000F.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A6 30FC ; [.3D5C.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF73 30FC ; [.3D5C.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF73 FF70 ; [.3D5C.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3046 30FC ; [.3D5C.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AF 30FC ; [.3D62.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF78 30FC ; [.3D62.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF78 FF70 ; [.3D62.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304F 30FC ; [.3D62.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B0 30FC ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AF 3099 30FC ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF78 FF9E 30FC ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF78 FF9E FF70 ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3050 30FC ; [.3D62.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304F 3099 30FC ; [.3D62.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B9 30FC ; [.3D67.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7D 30FC ; [.3D67.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7D FF70 ; [.3D67.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3059 30FC ; [.3D67.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BA 30FC ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B9 3099 30FC ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7D FF9E 30FC ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7D FF9E FF70 ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305A 30FC ; [.3D67.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3059 3099 30FC ; [.3D67.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C3 30FC ; [.3D6C.0020.000F.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6F 30FC ; [.3D6C.0020.000F.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6F FF70 ; [.3D6C.0020.000F.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3063 30FC ; [.3D6C.0020.000F.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C4 30FC ; [.3D6C.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF82 30FC ; [.3D6C.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF82 FF70 ; [.3D6C.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3064 30FC ; [.3D6C.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C5 30FC ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C4 3099 30FC ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF82 FF9E 30FC ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF82 FF9E FF70 ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3065 30FC ; [.3D6C.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3064 3099 30FC ; [.3D6C.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CC 30FC ; [.3D71.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF87 30FC ; [.3D71.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF87 FF70 ; [.3D71.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306C 30FC ; [.3D71.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D5 30FC ; [.3D76.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C 30FC ; [.3D76.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF70 ; [.3D76.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3075 30FC ; [.3D76.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D6 30FC ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D5 3099 30FC ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF9E 30FC ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF9E FF70 ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3076 30FC ; [.3D76.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3075 3099 30FC ; [.3D76.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D7 30FC ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D5 309A 30FC ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF9F 30FC ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF9F FF70 ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3077 30FC ; [.3D76.0020.0011.0001][.0000.0038.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3075 309A 30FC ; [.3D76.0020.0011.0001][.0000.0038.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E0 30FC ; [.3D7B.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF91 30FC ; [.3D7B.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF91 FF70 ; [.3D7B.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3080 30FC ; [.3D7B.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E5 30FC ; [.3D7F.0020.000F.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6D 30FC ; [.3D7F.0020.000F.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6D FF70 ; [.3D7F.0020.000F.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3085 30FC ; [.3D7F.0020.000F.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E6 30FC ; [.3D7F.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF95 30FC ; [.3D7F.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF95 FF70 ; [.3D7F.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3086 30FC ; [.3D7F.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EB 30FC ; [.3D84.0020.0011.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF99 30FC ; [.3D84.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF99 FF70 ; [.3D84.0020.0011.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308B 30FC ; [.3D84.0020.0011.0001][.3D5C.0020.0007.0002] # <HIRAGANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F4 30FC ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A6 3099 30FC ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF73 FF9E 30FC ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF73 FF9E FF70 ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3094 30FC ; [.3D5C.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3046 3099 30FC ; [.3D5C.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0007.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F0 30FC ; [.3D62.0020.000F][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F2 30FC ; [.3D67.0020.000F][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F4 30FC ; [.3D71.0020.000F][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F7 30FC ; [.3D76.0020.000F][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FA 30FC ; [.3D7B.0020.000F][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FD 30FC ; [.3D84.0020.000F][.3D5C.0020.0007.0002] # <KATAKANA LETTER SMALL RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A7 30FC ; [.3D5E.0020.000F.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6A 30FC ; [.3D5E.0020.000F.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6A FF70 ; [.3D5E.0020.000F.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3047 30FC ; [.3D5E.0020.000F.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A8 30FC ; [.3D5E.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF74 30FC ; [.3D5E.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF74 FF70 ; [.3D5E.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3048 30FC ; [.3D5E.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B1 30FC ; [.3D63.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF79 30FC ; [.3D63.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF79 FF70 ; [.3D63.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3051 30FC ; [.3D63.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B2 30FC ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B1 3099 30FC ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF79 FF9E 30FC ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF79 FF9E FF70 ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3052 30FC ; [.3D63.0020.0011.0001][.0000.0037.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3051 3099 30FC ; [.3D63.0020.0011.0001][.0000.0037.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BB 30FC ; [.3D68.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7E 30FC ; [.3D68.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7E FF70 ; [.3D68.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305B 30FC ; [.3D68.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BC 30FC ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BB 3099 30FC ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7E FF9E 30FC ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7E FF9E FF70 ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305C 30FC ; [.3D68.0020.0011.0001][.0000.0037.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305B 3099 30FC ; [.3D68.0020.0011.0001][.0000.0037.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C6 30FC ; [.3D6D.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF83 30FC ; [.3D6D.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF83 FF70 ; [.3D6D.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3066 30FC ; [.3D6D.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C7 30FC ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C6 3099 30FC ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF83 FF9E 30FC ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF83 FF9E FF70 ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3067 30FC ; [.3D6D.0020.0011.0001][.0000.0037.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3066 3099 30FC ; [.3D6D.0020.0011.0001][.0000.0037.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CD 30FC ; [.3D72.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF88 30FC ; [.3D72.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF88 FF70 ; [.3D72.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306D 30FC ; [.3D72.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D8 30FC ; [.3D77.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D 30FC ; [.3D77.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF70 ; [.3D77.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3078 30FC ; [.3D77.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D9 30FC ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D8 3099 30FC ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF9E 30FC ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF9E FF70 ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3079 30FC ; [.3D77.0020.0011.0001][.0000.0037.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3078 3099 30FC ; [.3D77.0020.0011.0001][.0000.0037.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DA 30FC ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D8 309A 30FC ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF9F 30FC ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF9F FF70 ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307A 30FC ; [.3D77.0020.0011.0001][.0000.0038.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3078 309A 30FC ; [.3D77.0020.0011.0001][.0000.0038.0002][.3D5E.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E1 30FC ; [.3D7C.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF92 30FC ; [.3D7C.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF92 FF70 ; [.3D7C.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3081 30FC ; [.3D7C.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EC 30FC ; [.3D85.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9A 30FC ; [.3D85.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9A FF70 ; [.3D85.0020.0011.0002][.3D5E.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308C 30FC ; [.3D85.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F1 30FC ; [.3D89.0020.0011.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3091 30FC ; [.3D89.0020.0011.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F9 30FC ; [.3D89.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER VE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F1 3099 30FC ; [.3D89.0020.0011.0002][.0000.0037.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F6 30FC ; [.3D63.0020.000F.0002][.3D5E.0020.0007.0002] # <KATAKANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3096 30FC ; [.3D63.0020.000F.0001][.3D5E.0020.0007.0002] # <HIRAGANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F8 30FC ; [.3D77.0020.000F][.3D5E.0020.0007.0002] # <KATAKANA LETTER SMALL HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FE 30FC ; [.3D85.0020.000F][.3D5E.0020.0007.0002] # <KATAKANA LETTER SMALL RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A9 30FC ; [.3D5F.0020.000F.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6B 30FC ; [.3D5F.0020.000F.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6B FF70 ; [.3D5F.0020.000F.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3049 30FC ; [.3D5F.0020.000F.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AA 30FC ; [.3D5F.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF75 30FC ; [.3D5F.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF75 FF70 ; [.3D5F.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304A 30FC ; [.3D5F.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B3 30FC ; [.3D64.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7A 30FC ; [.3D64.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7A FF70 ; [.3D64.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3053 30FC ; [.3D64.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B4 30FC ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B3 3099 30FC ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7A FF9E 30FC ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7A FF9E FF70 ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3054 30FC ; [.3D64.0020.0011.0001][.0000.0037.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3053 3099 30FC ; [.3D64.0020.0011.0001][.0000.0037.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BD 30FC ; [.3D69.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7F 30FC ; [.3D69.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7F FF70 ; [.3D69.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305D 30FC ; [.3D69.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BE 30FC ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BD 3099 30FC ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7F FF9E 30FC ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7F FF9E FF70 ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305E 30FC ; [.3D69.0020.0011.0001][.0000.0037.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305D 3099 30FC ; [.3D69.0020.0011.0001][.0000.0037.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C8 30FC ; [.3D6E.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF84 30FC ; [.3D6E.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF84 FF70 ; [.3D6E.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3068 30FC ; [.3D6E.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C9 30FC ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C8 3099 30FC ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF84 FF9E 30FC ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF84 FF9E FF70 ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3069 30FC ; [.3D6E.0020.0011.0001][.0000.0037.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3068 3099 30FC ; [.3D6E.0020.0011.0001][.0000.0037.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CE 30FC ; [.3D73.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF89 30FC ; [.3D73.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF89 FF70 ; [.3D73.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306E 30FC ; [.3D73.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DB 30FC ; [.3D78.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E 30FC ; [.3D78.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF70 ; [.3D78.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307B 30FC ; [.3D78.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DC 30FC ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DB 3099 30FC ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF9E 30FC ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF9E FF70 ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307C 30FC ; [.3D78.0020.0011.0001][.0000.0037.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307B 3099 30FC ; [.3D78.0020.0011.0001][.0000.0037.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DD 30FC ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DB 309A 30FC ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF9F 30FC ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF9F FF70 ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307D 30FC ; [.3D78.0020.0011.0001][.0000.0038.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307B 309A 30FC ; [.3D78.0020.0011.0001][.0000.0038.0002][.3D5F.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E2 30FC ; [.3D7D.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF93 30FC ; [.3D7D.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF93 FF70 ; [.3D7D.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3082 30FC ; [.3D7D.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E7 30FC ; [.3D81.0020.000F.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6E 30FC ; [.3D81.0020.000F.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6E FF70 ; [.3D81.0020.000F.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3087 30FC ; [.3D81.0020.000F.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E8 30FC ; [.3D81.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF96 30FC ; [.3D81.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF96 FF70 ; [.3D81.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3088 30FC ; [.3D81.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30ED 30FC ; [.3D86.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9B 30FC ; [.3D86.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9B FF70 ; [.3D86.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308D 30FC ; [.3D86.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F2 30FC ; [.3D8A.0020.0011.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF66 30FC ; [.3D8A.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF66 FF70 ; [.3D8A.0020.0011.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3092 30FC ; [.3D8A.0020.0011.0001][.3D5F.0020.0007.0002] # <HIRAGANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30FA 30FC ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER VO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F2 3099 30FC ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF66 FF9E 30FC ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF66 FF9E FF70 ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D5F.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F3 30FC ; [.3D6E.0020.000F][.3D5F.0020.0007.0002] # <KATAKANA LETTER SMALL TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F9 30FC ; [.3D78.0020.000F][.3D5F.0020.0007.0002] # <KATAKANA LETTER SMALL HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FF 30FC ; [.3D86.0020.000F][.3D5F.0020.0007.0002] # <KATAKANA LETTER SMALL RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A1 30FD ; [.3D5A.0020.000F.0002][.3D5A.0020.0010.0002] # <KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
+FF67 30FD ; [.3D5A.0020.000F.0002][.3D5A.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
+3041 309D ; [.3D5A.0020.000F.0001][.3D5A.0020.0010.0002] # <HIRAGANA LETTER SMALL A, HIRAGANA ITERATION MARK>
+30A2 30FD ; [.3D5A.0020.0011.0002][.3D5A.0020.0010.0002] # <KATAKANA LETTER A, KATAKANA ITERATION MARK>
+FF71 30FD ; [.3D5A.0020.0011.0002][.3D5A.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA ITERATION MARK>
+3042 309D ; [.3D5A.0020.0011.0001][.3D5A.0020.0010.0002] # <HIRAGANA LETTER A, HIRAGANA ITERATION MARK>
+30A3 30FD ; [.3D5B.0020.000F.0002][.3D5B.0020.0010.0002] # <KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
+FF68 30FD ; [.3D5B.0020.000F.0002][.3D5B.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
+3043 309D ; [.3D5B.0020.000F.0001][.3D5B.0020.0010.0002] # <HIRAGANA LETTER SMALL I, HIRAGANA ITERATION MARK>
+30A4 30FD ; [.3D5B.0020.0011.0002][.3D5B.0020.0010.0002] # <KATAKANA LETTER I, KATAKANA ITERATION MARK>
+FF72 30FD ; [.3D5B.0020.0011.0002][.3D5B.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA ITERATION MARK>
+3044 309D ; [.3D5B.0020.0011.0001][.3D5B.0020.0010.0002] # <HIRAGANA LETTER I, HIRAGANA ITERATION MARK>
+30A5 30FD ; [.3D5C.0020.000F.0002][.3D5C.0020.0010.0002] # <KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
+FF69 30FD ; [.3D5C.0020.000F.0002][.3D5C.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
+3045 309D ; [.3D5C.0020.000F.0001][.3D5C.0020.0010.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA ITERATION MARK>
+30A5 30FE ; [.3D5C.0020.000F.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
+FF69 30FE ; [.3D5C.0020.000F.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
+3045 309E ; [.3D5C.0020.000F.0001][.3D5C.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA VOICED ITERATION MARK>
+30A6 30FD ; [.3D5C.0020.0011.0002][.3D5C.0020.0010.0002] # <KATAKANA LETTER U, KATAKANA ITERATION MARK>
+FF73 30FD ; [.3D5C.0020.0011.0002][.3D5C.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA ITERATION MARK>
+3046 309D ; [.3D5C.0020.0011.0001][.3D5C.0020.0010.0002] # <HIRAGANA LETTER U, HIRAGANA ITERATION MARK>
+30A6 30FE ; [.3D5C.0020.0011.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
+FF73 30FE ; [.3D5C.0020.0011.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
+3046 309E ; [.3D5C.0020.0011.0001][.3D5C.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, HIRAGANA VOICED ITERATION MARK>
+30A7 30FD ; [.3D5E.0020.000F.0002][.3D5E.0020.0010.0002] # <KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
+FF6A 30FD ; [.3D5E.0020.000F.0002][.3D5E.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
+3047 309D ; [.3D5E.0020.000F.0001][.3D5E.0020.0010.0002] # <HIRAGANA LETTER SMALL E, HIRAGANA ITERATION MARK>
+30A8 30FD ; [.3D5E.0020.0011.0002][.3D5E.0020.0010.0002] # <KATAKANA LETTER E, KATAKANA ITERATION MARK>
+FF74 30FD ; [.3D5E.0020.0011.0002][.3D5E.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA ITERATION MARK>
+3048 309D ; [.3D5E.0020.0011.0001][.3D5E.0020.0010.0002] # <HIRAGANA LETTER E, HIRAGANA ITERATION MARK>
+30A9 30FD ; [.3D5F.0020.000F.0002][.3D5F.0020.0010.0002] # <KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
+FF6B 30FD ; [.3D5F.0020.000F.0002][.3D5F.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
+3049 309D ; [.3D5F.0020.000F.0001][.3D5F.0020.0010.0002] # <HIRAGANA LETTER SMALL O, HIRAGANA ITERATION MARK>
+30AA 30FD ; [.3D5F.0020.0011.0002][.3D5F.0020.0010.0002] # <KATAKANA LETTER O, KATAKANA ITERATION MARK>
+FF75 30FD ; [.3D5F.0020.0011.0002][.3D5F.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA ITERATION MARK>
+304A 309D ; [.3D5F.0020.0011.0001][.3D5F.0020.0010.0002] # <HIRAGANA LETTER O, HIRAGANA ITERATION MARK>
+30AB 30FD ; [.3D60.0020.0011.0002][.3D60.0020.0010.0002] # <KATAKANA LETTER KA, KATAKANA ITERATION MARK>
+FF76 30FD ; [.3D60.0020.0011.0002][.3D60.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA ITERATION MARK>
+304B 309D ; [.3D60.0020.0011.0001][.3D60.0020.0010.0002] # <HIRAGANA LETTER KA, HIRAGANA ITERATION MARK>
+30AB 30FE ; [.3D60.0020.0011.0002][.3D60.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
+FF76 30FE ; [.3D60.0020.0011.0002][.3D60.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
+304B 309E ; [.3D60.0020.0011.0001][.3D60.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, HIRAGANA VOICED ITERATION MARK>
+30AC 30FD ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D60.0020.0010.0002] # <KATAKANA LETTER GA, KATAKANA ITERATION MARK>
+30AB 3099 30FD ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D60.0020.0010.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF76 FF9E 30FD ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D60.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+304C 309D ; [.3D60.0020.0011.0001][.0000.0037.0002][.3D60.0020.0010.0002] # <HIRAGANA LETTER GA, HIRAGANA ITERATION MARK>
+304B 3099 309D ; [.3D60.0020.0011.0001][.0000.0037.0002][.3D60.0020.0010.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30AC 30FE ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D60.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GA, KATAKANA VOICED ITERATION MARK>
+30AB 3099 30FE ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D60.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF76 FF9E 30FE ; [.3D60.0020.0011.0002][.0000.0037.0002][.3D60.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+304C 309E ; [.3D60.0020.0011.0001][.0000.0037.0002][.3D60.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GA, HIRAGANA VOICED ITERATION MARK>
+304B 3099 309E ; [.3D60.0020.0011.0001][.0000.0037.0002][.3D60.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30AD 30FD ; [.3D61.0020.0011.0002][.3D61.0020.0010.0002] # <KATAKANA LETTER KI, KATAKANA ITERATION MARK>
+FF77 30FD ; [.3D61.0020.0011.0002][.3D61.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA ITERATION MARK>
+304D 309D ; [.3D61.0020.0011.0001][.3D61.0020.0010.0002] # <HIRAGANA LETTER KI, HIRAGANA ITERATION MARK>
+30AD 30FE ; [.3D61.0020.0011.0002][.3D61.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
+FF77 30FE ; [.3D61.0020.0011.0002][.3D61.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
+304D 309E ; [.3D61.0020.0011.0001][.3D61.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, HIRAGANA VOICED ITERATION MARK>
+30AE 30FD ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D61.0020.0010.0002] # <KATAKANA LETTER GI, KATAKANA ITERATION MARK>
+30AD 3099 30FD ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D61.0020.0010.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF77 FF9E 30FD ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D61.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+304E 309D ; [.3D61.0020.0011.0001][.0000.0037.0002][.3D61.0020.0010.0002] # <HIRAGANA LETTER GI, HIRAGANA ITERATION MARK>
+304D 3099 309D ; [.3D61.0020.0011.0001][.0000.0037.0002][.3D61.0020.0010.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30AE 30FE ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D61.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GI, KATAKANA VOICED ITERATION MARK>
+30AD 3099 30FE ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D61.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF77 FF9E 30FE ; [.3D61.0020.0011.0002][.0000.0037.0002][.3D61.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+304E 309E ; [.3D61.0020.0011.0001][.0000.0037.0002][.3D61.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GI, HIRAGANA VOICED ITERATION MARK>
+304D 3099 309E ; [.3D61.0020.0011.0001][.0000.0037.0002][.3D61.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30AF 30FD ; [.3D62.0020.0011.0002][.3D62.0020.0010.0002] # <KATAKANA LETTER KU, KATAKANA ITERATION MARK>
+FF78 30FD ; [.3D62.0020.0011.0002][.3D62.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA ITERATION MARK>
+304F 309D ; [.3D62.0020.0011.0001][.3D62.0020.0010.0002] # <HIRAGANA LETTER KU, HIRAGANA ITERATION MARK>
+30AF 30FE ; [.3D62.0020.0011.0002][.3D62.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
+FF78 30FE ; [.3D62.0020.0011.0002][.3D62.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
+304F 309E ; [.3D62.0020.0011.0001][.3D62.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, HIRAGANA VOICED ITERATION MARK>
+30B0 30FD ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D62.0020.0010.0002] # <KATAKANA LETTER GU, KATAKANA ITERATION MARK>
+30AF 3099 30FD ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D62.0020.0010.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF78 FF9E 30FD ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D62.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3050 309D ; [.3D62.0020.0011.0001][.0000.0037.0002][.3D62.0020.0010.0002] # <HIRAGANA LETTER GU, HIRAGANA ITERATION MARK>
+304F 3099 309D ; [.3D62.0020.0011.0001][.0000.0037.0002][.3D62.0020.0010.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B0 30FE ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D62.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GU, KATAKANA VOICED ITERATION MARK>
+30AF 3099 30FE ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D62.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF78 FF9E 30FE ; [.3D62.0020.0011.0002][.0000.0037.0002][.3D62.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3050 309E ; [.3D62.0020.0011.0001][.0000.0037.0002][.3D62.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GU, HIRAGANA VOICED ITERATION MARK>
+304F 3099 309E ; [.3D62.0020.0011.0001][.0000.0037.0002][.3D62.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B1 30FD ; [.3D63.0020.0011.0002][.3D63.0020.0010.0002] # <KATAKANA LETTER KE, KATAKANA ITERATION MARK>
+FF79 30FD ; [.3D63.0020.0011.0002][.3D63.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA ITERATION MARK>
+3051 309D ; [.3D63.0020.0011.0001][.3D63.0020.0010.0002] # <HIRAGANA LETTER KE, HIRAGANA ITERATION MARK>
+30B1 30FE ; [.3D63.0020.0011.0002][.3D63.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
+FF79 30FE ; [.3D63.0020.0011.0002][.3D63.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
+3051 309E ; [.3D63.0020.0011.0001][.3D63.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, HIRAGANA VOICED ITERATION MARK>
+30B2 30FD ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D63.0020.0010.0002] # <KATAKANA LETTER GE, KATAKANA ITERATION MARK>
+30B1 3099 30FD ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D63.0020.0010.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF79 FF9E 30FD ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D63.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3052 309D ; [.3D63.0020.0011.0001][.0000.0037.0002][.3D63.0020.0010.0002] # <HIRAGANA LETTER GE, HIRAGANA ITERATION MARK>
+3051 3099 309D ; [.3D63.0020.0011.0001][.0000.0037.0002][.3D63.0020.0010.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B2 30FE ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D63.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GE, KATAKANA VOICED ITERATION MARK>
+30B1 3099 30FE ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D63.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF79 FF9E 30FE ; [.3D63.0020.0011.0002][.0000.0037.0002][.3D63.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3052 309E ; [.3D63.0020.0011.0001][.0000.0037.0002][.3D63.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GE, HIRAGANA VOICED ITERATION MARK>
+3051 3099 309E ; [.3D63.0020.0011.0001][.0000.0037.0002][.3D63.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B3 30FD ; [.3D64.0020.0011.0002][.3D64.0020.0010.0002] # <KATAKANA LETTER KO, KATAKANA ITERATION MARK>
+FF7A 30FD ; [.3D64.0020.0011.0002][.3D64.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA ITERATION MARK>
+3053 309D ; [.3D64.0020.0011.0001][.3D64.0020.0010.0002] # <HIRAGANA LETTER KO, HIRAGANA ITERATION MARK>
+30B3 30FE ; [.3D64.0020.0011.0002][.3D64.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
+FF7A 30FE ; [.3D64.0020.0011.0002][.3D64.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
+3053 309E ; [.3D64.0020.0011.0001][.3D64.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, HIRAGANA VOICED ITERATION MARK>
+30B4 30FD ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D64.0020.0010.0002] # <KATAKANA LETTER GO, KATAKANA ITERATION MARK>
+30B3 3099 30FD ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D64.0020.0010.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7A FF9E 30FD ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D64.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3054 309D ; [.3D64.0020.0011.0001][.0000.0037.0002][.3D64.0020.0010.0002] # <HIRAGANA LETTER GO, HIRAGANA ITERATION MARK>
+3053 3099 309D ; [.3D64.0020.0011.0001][.0000.0037.0002][.3D64.0020.0010.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B4 30FE ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D64.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GO, KATAKANA VOICED ITERATION MARK>
+30B3 3099 30FE ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D64.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7A FF9E 30FE ; [.3D64.0020.0011.0002][.0000.0037.0002][.3D64.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3054 309E ; [.3D64.0020.0011.0001][.0000.0037.0002][.3D64.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GO, HIRAGANA VOICED ITERATION MARK>
+3053 3099 309E ; [.3D64.0020.0011.0001][.0000.0037.0002][.3D64.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B5 30FD ; [.3D65.0020.0011.0002][.3D65.0020.0010.0002] # <KATAKANA LETTER SA, KATAKANA ITERATION MARK>
+FF7B 30FD ; [.3D65.0020.0011.0002][.3D65.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA ITERATION MARK>
+3055 309D ; [.3D65.0020.0011.0001][.3D65.0020.0010.0002] # <HIRAGANA LETTER SA, HIRAGANA ITERATION MARK>
+30B5 30FE ; [.3D65.0020.0011.0002][.3D65.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
+FF7B 30FE ; [.3D65.0020.0011.0002][.3D65.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
+3055 309E ; [.3D65.0020.0011.0001][.3D65.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, HIRAGANA VOICED ITERATION MARK>
+30B6 30FD ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D65.0020.0010.0002] # <KATAKANA LETTER ZA, KATAKANA ITERATION MARK>
+30B5 3099 30FD ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D65.0020.0010.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7B FF9E 30FD ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D65.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3056 309D ; [.3D65.0020.0011.0001][.0000.0037.0002][.3D65.0020.0010.0002] # <HIRAGANA LETTER ZA, HIRAGANA ITERATION MARK>
+3055 3099 309D ; [.3D65.0020.0011.0001][.0000.0037.0002][.3D65.0020.0010.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B6 30FE ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D65.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZA, KATAKANA VOICED ITERATION MARK>
+30B5 3099 30FE ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D65.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7B FF9E 30FE ; [.3D65.0020.0011.0002][.0000.0037.0002][.3D65.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3056 309E ; [.3D65.0020.0011.0001][.0000.0037.0002][.3D65.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZA, HIRAGANA VOICED ITERATION MARK>
+3055 3099 309E ; [.3D65.0020.0011.0001][.0000.0037.0002][.3D65.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B7 30FD ; [.3D66.0020.0011.0002][.3D66.0020.0010.0002] # <KATAKANA LETTER SI, KATAKANA ITERATION MARK>
+FF7C 30FD ; [.3D66.0020.0011.0002][.3D66.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA ITERATION MARK>
+3057 309D ; [.3D66.0020.0011.0001][.3D66.0020.0010.0002] # <HIRAGANA LETTER SI, HIRAGANA ITERATION MARK>
+30B7 30FE ; [.3D66.0020.0011.0002][.3D66.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
+FF7C 30FE ; [.3D66.0020.0011.0002][.3D66.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
+3057 309E ; [.3D66.0020.0011.0001][.3D66.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, HIRAGANA VOICED ITERATION MARK>
+30B8 30FD ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D66.0020.0010.0002] # <KATAKANA LETTER ZI, KATAKANA ITERATION MARK>
+30B7 3099 30FD ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D66.0020.0010.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7C FF9E 30FD ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D66.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3058 309D ; [.3D66.0020.0011.0001][.0000.0037.0002][.3D66.0020.0010.0002] # <HIRAGANA LETTER ZI, HIRAGANA ITERATION MARK>
+3057 3099 309D ; [.3D66.0020.0011.0001][.0000.0037.0002][.3D66.0020.0010.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B8 30FE ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D66.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZI, KATAKANA VOICED ITERATION MARK>
+30B7 3099 30FE ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D66.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7C FF9E 30FE ; [.3D66.0020.0011.0002][.0000.0037.0002][.3D66.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3058 309E ; [.3D66.0020.0011.0001][.0000.0037.0002][.3D66.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZI, HIRAGANA VOICED ITERATION MARK>
+3057 3099 309E ; [.3D66.0020.0011.0001][.0000.0037.0002][.3D66.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B9 30FD ; [.3D67.0020.0011.0002][.3D67.0020.0010.0002] # <KATAKANA LETTER SU, KATAKANA ITERATION MARK>
+FF7D 30FD ; [.3D67.0020.0011.0002][.3D67.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA ITERATION MARK>
+3059 309D ; [.3D67.0020.0011.0001][.3D67.0020.0010.0002] # <HIRAGANA LETTER SU, HIRAGANA ITERATION MARK>
+30B9 30FE ; [.3D67.0020.0011.0002][.3D67.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
+FF7D 30FE ; [.3D67.0020.0011.0002][.3D67.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
+3059 309E ; [.3D67.0020.0011.0001][.3D67.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, HIRAGANA VOICED ITERATION MARK>
+30BA 30FD ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D67.0020.0010.0002] # <KATAKANA LETTER ZU, KATAKANA ITERATION MARK>
+30B9 3099 30FD ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D67.0020.0010.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7D FF9E 30FD ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D67.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+305A 309D ; [.3D67.0020.0011.0001][.0000.0037.0002][.3D67.0020.0010.0002] # <HIRAGANA LETTER ZU, HIRAGANA ITERATION MARK>
+3059 3099 309D ; [.3D67.0020.0011.0001][.0000.0037.0002][.3D67.0020.0010.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30BA 30FE ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D67.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZU, KATAKANA VOICED ITERATION MARK>
+30B9 3099 30FE ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D67.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7D FF9E 30FE ; [.3D67.0020.0011.0002][.0000.0037.0002][.3D67.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+305A 309E ; [.3D67.0020.0011.0001][.0000.0037.0002][.3D67.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZU, HIRAGANA VOICED ITERATION MARK>
+3059 3099 309E ; [.3D67.0020.0011.0001][.0000.0037.0002][.3D67.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30BB 30FD ; [.3D68.0020.0011.0002][.3D68.0020.0010.0002] # <KATAKANA LETTER SE, KATAKANA ITERATION MARK>
+FF7E 30FD ; [.3D68.0020.0011.0002][.3D68.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA ITERATION MARK>
+305B 309D ; [.3D68.0020.0011.0001][.3D68.0020.0010.0002] # <HIRAGANA LETTER SE, HIRAGANA ITERATION MARK>
+30BB 30FE ; [.3D68.0020.0011.0002][.3D68.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
+FF7E 30FE ; [.3D68.0020.0011.0002][.3D68.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
+305B 309E ; [.3D68.0020.0011.0001][.3D68.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, HIRAGANA VOICED ITERATION MARK>
+30BC 30FD ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D68.0020.0010.0002] # <KATAKANA LETTER ZE, KATAKANA ITERATION MARK>
+30BB 3099 30FD ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D68.0020.0010.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7E FF9E 30FD ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D68.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+305C 309D ; [.3D68.0020.0011.0001][.0000.0037.0002][.3D68.0020.0010.0002] # <HIRAGANA LETTER ZE, HIRAGANA ITERATION MARK>
+305B 3099 309D ; [.3D68.0020.0011.0001][.0000.0037.0002][.3D68.0020.0010.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30BC 30FE ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D68.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZE, KATAKANA VOICED ITERATION MARK>
+30BB 3099 30FE ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D68.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7E FF9E 30FE ; [.3D68.0020.0011.0002][.0000.0037.0002][.3D68.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+305C 309E ; [.3D68.0020.0011.0001][.0000.0037.0002][.3D68.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZE, HIRAGANA VOICED ITERATION MARK>
+305B 3099 309E ; [.3D68.0020.0011.0001][.0000.0037.0002][.3D68.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30BD 30FD ; [.3D69.0020.0011.0002][.3D69.0020.0010.0002] # <KATAKANA LETTER SO, KATAKANA ITERATION MARK>
+FF7F 30FD ; [.3D69.0020.0011.0002][.3D69.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA ITERATION MARK>
+305D 309D ; [.3D69.0020.0011.0001][.3D69.0020.0010.0002] # <HIRAGANA LETTER SO, HIRAGANA ITERATION MARK>
+30BD 30FE ; [.3D69.0020.0011.0002][.3D69.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
+FF7F 30FE ; [.3D69.0020.0011.0002][.3D69.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
+305D 309E ; [.3D69.0020.0011.0001][.3D69.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, HIRAGANA VOICED ITERATION MARK>
+30BE 30FD ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D69.0020.0010.0002] # <KATAKANA LETTER ZO, KATAKANA ITERATION MARK>
+30BD 3099 30FD ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D69.0020.0010.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7F FF9E 30FD ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D69.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+305E 309D ; [.3D69.0020.0011.0001][.0000.0037.0002][.3D69.0020.0010.0002] # <HIRAGANA LETTER ZO, HIRAGANA ITERATION MARK>
+305D 3099 309D ; [.3D69.0020.0011.0001][.0000.0037.0002][.3D69.0020.0010.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30BE 30FE ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D69.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZO, KATAKANA VOICED ITERATION MARK>
+30BD 3099 30FE ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D69.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7F FF9E 30FE ; [.3D69.0020.0011.0002][.0000.0037.0002][.3D69.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+305E 309E ; [.3D69.0020.0011.0001][.0000.0037.0002][.3D69.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZO, HIRAGANA VOICED ITERATION MARK>
+305D 3099 309E ; [.3D69.0020.0011.0001][.0000.0037.0002][.3D69.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30BF 30FD ; [.3D6A.0020.0011.0002][.3D6A.0020.0010.0002] # <KATAKANA LETTER TA, KATAKANA ITERATION MARK>
+FF80 30FD ; [.3D6A.0020.0011.0002][.3D6A.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA ITERATION MARK>
+305F 309D ; [.3D6A.0020.0011.0001][.3D6A.0020.0010.0002] # <HIRAGANA LETTER TA, HIRAGANA ITERATION MARK>
+30BF 30FE ; [.3D6A.0020.0011.0002][.3D6A.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
+FF80 30FE ; [.3D6A.0020.0011.0002][.3D6A.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
+305F 309E ; [.3D6A.0020.0011.0001][.3D6A.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, HIRAGANA VOICED ITERATION MARK>
+30C0 30FD ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D6A.0020.0010.0002] # <KATAKANA LETTER DA, KATAKANA ITERATION MARK>
+30BF 3099 30FD ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D6A.0020.0010.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF80 FF9E 30FD ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D6A.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3060 309D ; [.3D6A.0020.0011.0001][.0000.0037.0002][.3D6A.0020.0010.0002] # <HIRAGANA LETTER DA, HIRAGANA ITERATION MARK>
+305F 3099 309D ; [.3D6A.0020.0011.0001][.0000.0037.0002][.3D6A.0020.0010.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C0 30FE ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D6A.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DA, KATAKANA VOICED ITERATION MARK>
+30BF 3099 30FE ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D6A.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF80 FF9E 30FE ; [.3D6A.0020.0011.0002][.0000.0037.0002][.3D6A.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3060 309E ; [.3D6A.0020.0011.0001][.0000.0037.0002][.3D6A.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DA, HIRAGANA VOICED ITERATION MARK>
+305F 3099 309E ; [.3D6A.0020.0011.0001][.0000.0037.0002][.3D6A.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30C1 30FD ; [.3D6B.0020.0011.0002][.3D6B.0020.0010.0002] # <KATAKANA LETTER TI, KATAKANA ITERATION MARK>
+FF81 30FD ; [.3D6B.0020.0011.0002][.3D6B.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA ITERATION MARK>
+3061 309D ; [.3D6B.0020.0011.0001][.3D6B.0020.0010.0002] # <HIRAGANA LETTER TI, HIRAGANA ITERATION MARK>
+30C1 30FE ; [.3D6B.0020.0011.0002][.3D6B.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
+FF81 30FE ; [.3D6B.0020.0011.0002][.3D6B.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
+3061 309E ; [.3D6B.0020.0011.0001][.3D6B.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, HIRAGANA VOICED ITERATION MARK>
+30C2 30FD ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D6B.0020.0010.0002] # <KATAKANA LETTER DI, KATAKANA ITERATION MARK>
+30C1 3099 30FD ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D6B.0020.0010.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF81 FF9E 30FD ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D6B.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3062 309D ; [.3D6B.0020.0011.0001][.0000.0037.0002][.3D6B.0020.0010.0002] # <HIRAGANA LETTER DI, HIRAGANA ITERATION MARK>
+3061 3099 309D ; [.3D6B.0020.0011.0001][.0000.0037.0002][.3D6B.0020.0010.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C2 30FE ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D6B.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DI, KATAKANA VOICED ITERATION MARK>
+30C1 3099 30FE ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D6B.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF81 FF9E 30FE ; [.3D6B.0020.0011.0002][.0000.0037.0002][.3D6B.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3062 309E ; [.3D6B.0020.0011.0001][.0000.0037.0002][.3D6B.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DI, HIRAGANA VOICED ITERATION MARK>
+3061 3099 309E ; [.3D6B.0020.0011.0001][.0000.0037.0002][.3D6B.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30C3 30FD ; [.3D6C.0020.000F.0002][.3D6C.0020.0010.0002] # <KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
+FF6F 30FD ; [.3D6C.0020.000F.0002][.3D6C.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
+3063 309D ; [.3D6C.0020.000F.0001][.3D6C.0020.0010.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA ITERATION MARK>
+30C3 30FE ; [.3D6C.0020.000F.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
+FF6F 30FE ; [.3D6C.0020.000F.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
+3063 309E ; [.3D6C.0020.000F.0001][.3D6C.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA VOICED ITERATION MARK>
+30C4 30FD ; [.3D6C.0020.0011.0002][.3D6C.0020.0010.0002] # <KATAKANA LETTER TU, KATAKANA ITERATION MARK>
+FF82 30FD ; [.3D6C.0020.0011.0002][.3D6C.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA ITERATION MARK>
+3064 309D ; [.3D6C.0020.0011.0001][.3D6C.0020.0010.0002] # <HIRAGANA LETTER TU, HIRAGANA ITERATION MARK>
+30C4 30FE ; [.3D6C.0020.0011.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
+FF82 30FE ; [.3D6C.0020.0011.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
+3064 309E ; [.3D6C.0020.0011.0001][.3D6C.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, HIRAGANA VOICED ITERATION MARK>
+30C5 30FD ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D6C.0020.0010.0002] # <KATAKANA LETTER DU, KATAKANA ITERATION MARK>
+30C4 3099 30FD ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D6C.0020.0010.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF82 FF9E 30FD ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D6C.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3065 309D ; [.3D6C.0020.0011.0001][.0000.0037.0002][.3D6C.0020.0010.0002] # <HIRAGANA LETTER DU, HIRAGANA ITERATION MARK>
+3064 3099 309D ; [.3D6C.0020.0011.0001][.0000.0037.0002][.3D6C.0020.0010.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C5 30FE ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DU, KATAKANA VOICED ITERATION MARK>
+30C4 3099 30FE ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF82 FF9E 30FE ; [.3D6C.0020.0011.0002][.0000.0037.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3065 309E ; [.3D6C.0020.0011.0001][.0000.0037.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DU, HIRAGANA VOICED ITERATION MARK>
+3064 3099 309E ; [.3D6C.0020.0011.0001][.0000.0037.0002][.3D6C.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30C6 30FD ; [.3D6D.0020.0011.0002][.3D6D.0020.0010.0002] # <KATAKANA LETTER TE, KATAKANA ITERATION MARK>
+FF83 30FD ; [.3D6D.0020.0011.0002][.3D6D.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA ITERATION MARK>
+3066 309D ; [.3D6D.0020.0011.0001][.3D6D.0020.0010.0002] # <HIRAGANA LETTER TE, HIRAGANA ITERATION MARK>
+30C6 30FE ; [.3D6D.0020.0011.0002][.3D6D.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
+FF83 30FE ; [.3D6D.0020.0011.0002][.3D6D.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
+3066 309E ; [.3D6D.0020.0011.0001][.3D6D.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, HIRAGANA VOICED ITERATION MARK>
+30C7 30FD ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D6D.0020.0010.0002] # <KATAKANA LETTER DE, KATAKANA ITERATION MARK>
+30C6 3099 30FD ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D6D.0020.0010.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF83 FF9E 30FD ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D6D.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3067 309D ; [.3D6D.0020.0011.0001][.0000.0037.0002][.3D6D.0020.0010.0002] # <HIRAGANA LETTER DE, HIRAGANA ITERATION MARK>
+3066 3099 309D ; [.3D6D.0020.0011.0001][.0000.0037.0002][.3D6D.0020.0010.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C7 30FE ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D6D.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DE, KATAKANA VOICED ITERATION MARK>
+30C6 3099 30FE ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D6D.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF83 FF9E 30FE ; [.3D6D.0020.0011.0002][.0000.0037.0002][.3D6D.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3067 309E ; [.3D6D.0020.0011.0001][.0000.0037.0002][.3D6D.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DE, HIRAGANA VOICED ITERATION MARK>
+3066 3099 309E ; [.3D6D.0020.0011.0001][.0000.0037.0002][.3D6D.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30C8 30FD ; [.3D6E.0020.0011.0002][.3D6E.0020.0010.0002] # <KATAKANA LETTER TO, KATAKANA ITERATION MARK>
+FF84 30FD ; [.3D6E.0020.0011.0002][.3D6E.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA ITERATION MARK>
+3068 309D ; [.3D6E.0020.0011.0001][.3D6E.0020.0010.0002] # <HIRAGANA LETTER TO, HIRAGANA ITERATION MARK>
+30C8 30FE ; [.3D6E.0020.0011.0002][.3D6E.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
+FF84 30FE ; [.3D6E.0020.0011.0002][.3D6E.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
+3068 309E ; [.3D6E.0020.0011.0001][.3D6E.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, HIRAGANA VOICED ITERATION MARK>
+30C9 30FD ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D6E.0020.0010.0002] # <KATAKANA LETTER DO, KATAKANA ITERATION MARK>
+30C8 3099 30FD ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D6E.0020.0010.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF84 FF9E 30FD ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D6E.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3069 309D ; [.3D6E.0020.0011.0001][.0000.0037.0002][.3D6E.0020.0010.0002] # <HIRAGANA LETTER DO, HIRAGANA ITERATION MARK>
+3068 3099 309D ; [.3D6E.0020.0011.0001][.0000.0037.0002][.3D6E.0020.0010.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C9 30FE ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D6E.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DO, KATAKANA VOICED ITERATION MARK>
+30C8 3099 30FE ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D6E.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF84 FF9E 30FE ; [.3D6E.0020.0011.0002][.0000.0037.0002][.3D6E.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3069 309E ; [.3D6E.0020.0011.0001][.0000.0037.0002][.3D6E.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DO, HIRAGANA VOICED ITERATION MARK>
+3068 3099 309E ; [.3D6E.0020.0011.0001][.0000.0037.0002][.3D6E.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30CA 30FD ; [.3D6F.0020.0011.0002][.3D6F.0020.0010.0002] # <KATAKANA LETTER NA, KATAKANA ITERATION MARK>
+FF85 30FD ; [.3D6F.0020.0011.0002][.3D6F.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA ITERATION MARK>
+306A 309D ; [.3D6F.0020.0011.0001][.3D6F.0020.0010.0002] # <HIRAGANA LETTER NA, HIRAGANA ITERATION MARK>
+30CB 30FD ; [.3D70.0020.0011.0002][.3D70.0020.0010.0002] # <KATAKANA LETTER NI, KATAKANA ITERATION MARK>
+FF86 30FD ; [.3D70.0020.0011.0002][.3D70.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA ITERATION MARK>
+306B 309D ; [.3D70.0020.0011.0001][.3D70.0020.0010.0002] # <HIRAGANA LETTER NI, HIRAGANA ITERATION MARK>
+30CC 30FD ; [.3D71.0020.0011.0002][.3D71.0020.0010.0002] # <KATAKANA LETTER NU, KATAKANA ITERATION MARK>
+FF87 30FD ; [.3D71.0020.0011.0002][.3D71.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA ITERATION MARK>
+306C 309D ; [.3D71.0020.0011.0001][.3D71.0020.0010.0002] # <HIRAGANA LETTER NU, HIRAGANA ITERATION MARK>
+30CD 30FD ; [.3D72.0020.0011.0002][.3D72.0020.0010.0002] # <KATAKANA LETTER NE, KATAKANA ITERATION MARK>
+FF88 30FD ; [.3D72.0020.0011.0002][.3D72.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA ITERATION MARK>
+306D 309D ; [.3D72.0020.0011.0001][.3D72.0020.0010.0002] # <HIRAGANA LETTER NE, HIRAGANA ITERATION MARK>
+30CE 30FD ; [.3D73.0020.0011.0002][.3D73.0020.0010.0002] # <KATAKANA LETTER NO, KATAKANA ITERATION MARK>
+FF89 30FD ; [.3D73.0020.0011.0002][.3D73.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA ITERATION MARK>
+306E 309D ; [.3D73.0020.0011.0001][.3D73.0020.0010.0002] # <HIRAGANA LETTER NO, HIRAGANA ITERATION MARK>
+30CF 30FD ; [.3D74.0020.0011.0002][.3D74.0020.0010.0002] # <KATAKANA LETTER HA, KATAKANA ITERATION MARK>
+FF8A 30FD ; [.3D74.0020.0011.0002][.3D74.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA ITERATION MARK>
+306F 309D ; [.3D74.0020.0011.0001][.3D74.0020.0010.0002] # <HIRAGANA LETTER HA, HIRAGANA ITERATION MARK>
+30CF 30FE ; [.3D74.0020.0011.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
+FF8A 30FE ; [.3D74.0020.0011.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
+306F 309E ; [.3D74.0020.0011.0001][.3D74.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, HIRAGANA VOICED ITERATION MARK>
+30D0 30FD ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D74.0020.0010.0002] # <KATAKANA LETTER BA, KATAKANA ITERATION MARK>
+30CF 3099 30FD ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D74.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8A FF9E 30FD ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D74.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3070 309D ; [.3D74.0020.0011.0001][.0000.0037.0002][.3D74.0020.0010.0002] # <HIRAGANA LETTER BA, HIRAGANA ITERATION MARK>
+306F 3099 309D ; [.3D74.0020.0011.0001][.0000.0037.0002][.3D74.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D0 30FE ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BA, KATAKANA VOICED ITERATION MARK>
+30CF 3099 30FE ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8A FF9E 30FE ; [.3D74.0020.0011.0002][.0000.0037.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3070 309E ; [.3D74.0020.0011.0001][.0000.0037.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BA, HIRAGANA VOICED ITERATION MARK>
+306F 3099 309E ; [.3D74.0020.0011.0001][.0000.0037.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D1 30FD ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D74.0020.0010.0002] # <KATAKANA LETTER PA, KATAKANA ITERATION MARK>
+30CF 309A 30FD ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D74.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8A FF9F 30FD ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D74.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3071 309D ; [.3D74.0020.0011.0001][.0000.0038.0002][.3D74.0020.0010.0002] # <HIRAGANA LETTER PA, HIRAGANA ITERATION MARK>
+306F 309A 309D ; [.3D74.0020.0011.0001][.0000.0038.0002][.3D74.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D1 30FE ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PA, KATAKANA VOICED ITERATION MARK>
+30CF 309A 30FE ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8A FF9F 30FE ; [.3D74.0020.0011.0002][.0000.0038.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3071 309E ; [.3D74.0020.0011.0001][.0000.0038.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PA, HIRAGANA VOICED ITERATION MARK>
+306F 309A 309E ; [.3D74.0020.0011.0001][.0000.0038.0002][.3D74.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D2 30FD ; [.3D75.0020.0011.0002][.3D75.0020.0010.0002] # <KATAKANA LETTER HI, KATAKANA ITERATION MARK>
+FF8B 30FD ; [.3D75.0020.0011.0002][.3D75.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA ITERATION MARK>
+3072 309D ; [.3D75.0020.0011.0001][.3D75.0020.0010.0002] # <HIRAGANA LETTER HI, HIRAGANA ITERATION MARK>
+30D2 30FE ; [.3D75.0020.0011.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
+FF8B 30FE ; [.3D75.0020.0011.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
+3072 309E ; [.3D75.0020.0011.0001][.3D75.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, HIRAGANA VOICED ITERATION MARK>
+30D3 30FD ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D75.0020.0010.0002] # <KATAKANA LETTER BI, KATAKANA ITERATION MARK>
+30D2 3099 30FD ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D75.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8B FF9E 30FD ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D75.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3073 309D ; [.3D75.0020.0011.0001][.0000.0037.0002][.3D75.0020.0010.0002] # <HIRAGANA LETTER BI, HIRAGANA ITERATION MARK>
+3072 3099 309D ; [.3D75.0020.0011.0001][.0000.0037.0002][.3D75.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D3 30FE ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BI, KATAKANA VOICED ITERATION MARK>
+30D2 3099 30FE ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8B FF9E 30FE ; [.3D75.0020.0011.0002][.0000.0037.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3073 309E ; [.3D75.0020.0011.0001][.0000.0037.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BI, HIRAGANA VOICED ITERATION MARK>
+3072 3099 309E ; [.3D75.0020.0011.0001][.0000.0037.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D4 30FD ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D75.0020.0010.0002] # <KATAKANA LETTER PI, KATAKANA ITERATION MARK>
+30D2 309A 30FD ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D75.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8B FF9F 30FD ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D75.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3074 309D ; [.3D75.0020.0011.0001][.0000.0038.0002][.3D75.0020.0010.0002] # <HIRAGANA LETTER PI, HIRAGANA ITERATION MARK>
+3072 309A 309D ; [.3D75.0020.0011.0001][.0000.0038.0002][.3D75.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D4 30FE ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PI, KATAKANA VOICED ITERATION MARK>
+30D2 309A 30FE ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8B FF9F 30FE ; [.3D75.0020.0011.0002][.0000.0038.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3074 309E ; [.3D75.0020.0011.0001][.0000.0038.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PI, HIRAGANA VOICED ITERATION MARK>
+3072 309A 309E ; [.3D75.0020.0011.0001][.0000.0038.0002][.3D75.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D5 30FD ; [.3D76.0020.0011.0002][.3D76.0020.0010.0002] # <KATAKANA LETTER HU, KATAKANA ITERATION MARK>
+FF8C 30FD ; [.3D76.0020.0011.0002][.3D76.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA ITERATION MARK>
+3075 309D ; [.3D76.0020.0011.0001][.3D76.0020.0010.0002] # <HIRAGANA LETTER HU, HIRAGANA ITERATION MARK>
+30D5 30FE ; [.3D76.0020.0011.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
+FF8C 30FE ; [.3D76.0020.0011.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
+3075 309E ; [.3D76.0020.0011.0001][.3D76.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, HIRAGANA VOICED ITERATION MARK>
+30D6 30FD ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D76.0020.0010.0002] # <KATAKANA LETTER BU, KATAKANA ITERATION MARK>
+30D5 3099 30FD ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D76.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8C FF9E 30FD ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D76.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3076 309D ; [.3D76.0020.0011.0001][.0000.0037.0002][.3D76.0020.0010.0002] # <HIRAGANA LETTER BU, HIRAGANA ITERATION MARK>
+3075 3099 309D ; [.3D76.0020.0011.0001][.0000.0037.0002][.3D76.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D6 30FE ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BU, KATAKANA VOICED ITERATION MARK>
+30D5 3099 30FE ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8C FF9E 30FE ; [.3D76.0020.0011.0002][.0000.0037.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3076 309E ; [.3D76.0020.0011.0001][.0000.0037.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BU, HIRAGANA VOICED ITERATION MARK>
+3075 3099 309E ; [.3D76.0020.0011.0001][.0000.0037.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D7 30FD ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D76.0020.0010.0002] # <KATAKANA LETTER PU, KATAKANA ITERATION MARK>
+30D5 309A 30FD ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D76.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8C FF9F 30FD ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D76.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3077 309D ; [.3D76.0020.0011.0001][.0000.0038.0002][.3D76.0020.0010.0002] # <HIRAGANA LETTER PU, HIRAGANA ITERATION MARK>
+3075 309A 309D ; [.3D76.0020.0011.0001][.0000.0038.0002][.3D76.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D7 30FE ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PU, KATAKANA VOICED ITERATION MARK>
+30D5 309A 30FE ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8C FF9F 30FE ; [.3D76.0020.0011.0002][.0000.0038.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3077 309E ; [.3D76.0020.0011.0001][.0000.0038.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PU, HIRAGANA VOICED ITERATION MARK>
+3075 309A 309E ; [.3D76.0020.0011.0001][.0000.0038.0002][.3D76.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D8 30FD ; [.3D77.0020.0011.0002][.3D77.0020.0010.0002] # <KATAKANA LETTER HE, KATAKANA ITERATION MARK>
+FF8D 30FD ; [.3D77.0020.0011.0002][.3D77.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA ITERATION MARK>
+3078 309D ; [.3D77.0020.0011.0001][.3D77.0020.0010.0002] # <HIRAGANA LETTER HE, HIRAGANA ITERATION MARK>
+30D8 30FE ; [.3D77.0020.0011.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
+FF8D 30FE ; [.3D77.0020.0011.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
+3078 309E ; [.3D77.0020.0011.0001][.3D77.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, HIRAGANA VOICED ITERATION MARK>
+30D9 30FD ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D77.0020.0010.0002] # <KATAKANA LETTER BE, KATAKANA ITERATION MARK>
+30D8 3099 30FD ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D77.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8D FF9E 30FD ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D77.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3079 309D ; [.3D77.0020.0011.0001][.0000.0037.0002][.3D77.0020.0010.0002] # <HIRAGANA LETTER BE, HIRAGANA ITERATION MARK>
+3078 3099 309D ; [.3D77.0020.0011.0001][.0000.0037.0002][.3D77.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D9 30FE ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BE, KATAKANA VOICED ITERATION MARK>
+30D8 3099 30FE ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8D FF9E 30FE ; [.3D77.0020.0011.0002][.0000.0037.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3079 309E ; [.3D77.0020.0011.0001][.0000.0037.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BE, HIRAGANA VOICED ITERATION MARK>
+3078 3099 309E ; [.3D77.0020.0011.0001][.0000.0037.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30DA 30FD ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D77.0020.0010.0002] # <KATAKANA LETTER PE, KATAKANA ITERATION MARK>
+30D8 309A 30FD ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D77.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8D FF9F 30FD ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D77.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+307A 309D ; [.3D77.0020.0011.0001][.0000.0038.0002][.3D77.0020.0010.0002] # <HIRAGANA LETTER PE, HIRAGANA ITERATION MARK>
+3078 309A 309D ; [.3D77.0020.0011.0001][.0000.0038.0002][.3D77.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30DA 30FE ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PE, KATAKANA VOICED ITERATION MARK>
+30D8 309A 30FE ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8D FF9F 30FE ; [.3D77.0020.0011.0002][.0000.0038.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+307A 309E ; [.3D77.0020.0011.0001][.0000.0038.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PE, HIRAGANA VOICED ITERATION MARK>
+3078 309A 309E ; [.3D77.0020.0011.0001][.0000.0038.0002][.3D77.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30DB 30FD ; [.3D78.0020.0011.0002][.3D78.0020.0010.0002] # <KATAKANA LETTER HO, KATAKANA ITERATION MARK>
+FF8E 30FD ; [.3D78.0020.0011.0002][.3D78.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA ITERATION MARK>
+307B 309D ; [.3D78.0020.0011.0001][.3D78.0020.0010.0002] # <HIRAGANA LETTER HO, HIRAGANA ITERATION MARK>
+30DB 30FE ; [.3D78.0020.0011.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
+FF8E 30FE ; [.3D78.0020.0011.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
+307B 309E ; [.3D78.0020.0011.0001][.3D78.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, HIRAGANA VOICED ITERATION MARK>
+30DC 30FD ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D78.0020.0010.0002] # <KATAKANA LETTER BO, KATAKANA ITERATION MARK>
+30DB 3099 30FD ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D78.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8E FF9E 30FD ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D78.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+307C 309D ; [.3D78.0020.0011.0001][.0000.0037.0002][.3D78.0020.0010.0002] # <HIRAGANA LETTER BO, HIRAGANA ITERATION MARK>
+307B 3099 309D ; [.3D78.0020.0011.0001][.0000.0037.0002][.3D78.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30DC 30FE ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BO, KATAKANA VOICED ITERATION MARK>
+30DB 3099 30FE ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8E FF9E 30FE ; [.3D78.0020.0011.0002][.0000.0037.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+307C 309E ; [.3D78.0020.0011.0001][.0000.0037.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BO, HIRAGANA VOICED ITERATION MARK>
+307B 3099 309E ; [.3D78.0020.0011.0001][.0000.0037.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30DD 30FD ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D78.0020.0010.0002] # <KATAKANA LETTER PO, KATAKANA ITERATION MARK>
+30DB 309A 30FD ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D78.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8E FF9F 30FD ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D78.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+307D 309D ; [.3D78.0020.0011.0001][.0000.0038.0002][.3D78.0020.0010.0002] # <HIRAGANA LETTER PO, HIRAGANA ITERATION MARK>
+307B 309A 309D ; [.3D78.0020.0011.0001][.0000.0038.0002][.3D78.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30DD 30FE ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PO, KATAKANA VOICED ITERATION MARK>
+30DB 309A 30FE ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8E FF9F 30FE ; [.3D78.0020.0011.0002][.0000.0038.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+307D 309E ; [.3D78.0020.0011.0001][.0000.0038.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PO, HIRAGANA VOICED ITERATION MARK>
+307B 309A 309E ; [.3D78.0020.0011.0001][.0000.0038.0002][.3D78.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30DE 30FD ; [.3D79.0020.0011.0002][.3D79.0020.0010.0002] # <KATAKANA LETTER MA, KATAKANA ITERATION MARK>
+FF8F 30FD ; [.3D79.0020.0011.0002][.3D79.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA ITERATION MARK>
+307E 309D ; [.3D79.0020.0011.0001][.3D79.0020.0010.0002] # <HIRAGANA LETTER MA, HIRAGANA ITERATION MARK>
+30DF 30FD ; [.3D7A.0020.0011.0002][.3D7A.0020.0010.0002] # <KATAKANA LETTER MI, KATAKANA ITERATION MARK>
+FF90 30FD ; [.3D7A.0020.0011.0002][.3D7A.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA ITERATION MARK>
+307F 309D ; [.3D7A.0020.0011.0001][.3D7A.0020.0010.0002] # <HIRAGANA LETTER MI, HIRAGANA ITERATION MARK>
+30E0 30FD ; [.3D7B.0020.0011.0002][.3D7B.0020.0010.0002] # <KATAKANA LETTER MU, KATAKANA ITERATION MARK>
+FF91 30FD ; [.3D7B.0020.0011.0002][.3D7B.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA ITERATION MARK>
+3080 309D ; [.3D7B.0020.0011.0001][.3D7B.0020.0010.0002] # <HIRAGANA LETTER MU, HIRAGANA ITERATION MARK>
+30E1 30FD ; [.3D7C.0020.0011.0002][.3D7C.0020.0010.0002] # <KATAKANA LETTER ME, KATAKANA ITERATION MARK>
+FF92 30FD ; [.3D7C.0020.0011.0002][.3D7C.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA ITERATION MARK>
+3081 309D ; [.3D7C.0020.0011.0001][.3D7C.0020.0010.0002] # <HIRAGANA LETTER ME, HIRAGANA ITERATION MARK>
+30E2 30FD ; [.3D7D.0020.0011.0002][.3D7D.0020.0010.0002] # <KATAKANA LETTER MO, KATAKANA ITERATION MARK>
+FF93 30FD ; [.3D7D.0020.0011.0002][.3D7D.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA ITERATION MARK>
+3082 309D ; [.3D7D.0020.0011.0001][.3D7D.0020.0010.0002] # <HIRAGANA LETTER MO, HIRAGANA ITERATION MARK>
+30E3 30FD ; [.3D7E.0020.000F.0002][.3D7E.0020.0010.0002] # <KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
+FF6C 30FD ; [.3D7E.0020.000F.0002][.3D7E.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
+3083 309D ; [.3D7E.0020.000F.0001][.3D7E.0020.0010.0002] # <HIRAGANA LETTER SMALL YA, HIRAGANA ITERATION MARK>
+30E4 30FD ; [.3D7E.0020.0011.0002][.3D7E.0020.0010.0002] # <KATAKANA LETTER YA, KATAKANA ITERATION MARK>
+FF94 30FD ; [.3D7E.0020.0011.0002][.3D7E.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA ITERATION MARK>
+3084 309D ; [.3D7E.0020.0011.0001][.3D7E.0020.0010.0002] # <HIRAGANA LETTER YA, HIRAGANA ITERATION MARK>
+30E5 30FD ; [.3D7F.0020.000F.0002][.3D7F.0020.0010.0002] # <KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
+FF6D 30FD ; [.3D7F.0020.000F.0002][.3D7F.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
+3085 309D ; [.3D7F.0020.000F.0001][.3D7F.0020.0010.0002] # <HIRAGANA LETTER SMALL YU, HIRAGANA ITERATION MARK>
+30E6 30FD ; [.3D7F.0020.0011.0002][.3D7F.0020.0010.0002] # <KATAKANA LETTER YU, KATAKANA ITERATION MARK>
+FF95 30FD ; [.3D7F.0020.0011.0002][.3D7F.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA ITERATION MARK>
+3086 309D ; [.3D7F.0020.0011.0001][.3D7F.0020.0010.0002] # <HIRAGANA LETTER YU, HIRAGANA ITERATION MARK>
+30E7 30FD ; [.3D81.0020.000F.0002][.3D81.0020.0010.0002] # <KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
+FF6E 30FD ; [.3D81.0020.000F.0002][.3D81.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
+3087 309D ; [.3D81.0020.000F.0001][.3D81.0020.0010.0002] # <HIRAGANA LETTER SMALL YO, HIRAGANA ITERATION MARK>
+30E8 30FD ; [.3D81.0020.0011.0002][.3D81.0020.0010.0002] # <KATAKANA LETTER YO, KATAKANA ITERATION MARK>
+FF96 30FD ; [.3D81.0020.0011.0002][.3D81.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA ITERATION MARK>
+3088 309D ; [.3D81.0020.0011.0001][.3D81.0020.0010.0002] # <HIRAGANA LETTER YO, HIRAGANA ITERATION MARK>
+30E9 30FD ; [.3D82.0020.0011.0002][.3D82.0020.0010.0002] # <KATAKANA LETTER RA, KATAKANA ITERATION MARK>
+FF97 30FD ; [.3D82.0020.0011.0002][.3D82.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA ITERATION MARK>
+3089 309D ; [.3D82.0020.0011.0001][.3D82.0020.0010.0002] # <HIRAGANA LETTER RA, HIRAGANA ITERATION MARK>
+30EA 30FD ; [.3D83.0020.0011.0002][.3D83.0020.0010.0002] # <KATAKANA LETTER RI, KATAKANA ITERATION MARK>
+FF98 30FD ; [.3D83.0020.0011.0002][.3D83.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA ITERATION MARK>
+308A 309D ; [.3D83.0020.0011.0001][.3D83.0020.0010.0002] # <HIRAGANA LETTER RI, HIRAGANA ITERATION MARK>
+30EB 30FD ; [.3D84.0020.0011.0002][.3D84.0020.0010.0002] # <KATAKANA LETTER RU, KATAKANA ITERATION MARK>
+FF99 30FD ; [.3D84.0020.0011.0002][.3D84.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA ITERATION MARK>
+308B 309D ; [.3D84.0020.0011.0001][.3D84.0020.0010.0002] # <HIRAGANA LETTER RU, HIRAGANA ITERATION MARK>
+30EC 30FD ; [.3D85.0020.0011.0002][.3D85.0020.0010.0002] # <KATAKANA LETTER RE, KATAKANA ITERATION MARK>
+FF9A 30FD ; [.3D85.0020.0011.0002][.3D85.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA ITERATION MARK>
+308C 309D ; [.3D85.0020.0011.0001][.3D85.0020.0010.0002] # <HIRAGANA LETTER RE, HIRAGANA ITERATION MARK>
+30ED 30FD ; [.3D86.0020.0011.0002][.3D86.0020.0010.0002] # <KATAKANA LETTER RO, KATAKANA ITERATION MARK>
+FF9B 30FD ; [.3D86.0020.0011.0002][.3D86.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA ITERATION MARK>
+308D 309D ; [.3D86.0020.0011.0001][.3D86.0020.0010.0002] # <HIRAGANA LETTER RO, HIRAGANA ITERATION MARK>
+30EE 30FD ; [.3D87.0020.000F.0002][.3D87.0020.0010.0002] # <KATAKANA LETTER SMALL WA, KATAKANA ITERATION MARK>
+308E 309D ; [.3D87.0020.000F.0001][.3D87.0020.0010.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA ITERATION MARK>
+30EE 30FE ; [.3D87.0020.000F.0002][.3D87.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL WA, KATAKANA VOICED ITERATION MARK>
+308E 309E ; [.3D87.0020.000F.0001][.3D87.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA VOICED ITERATION MARK>
+30EF 30FD ; [.3D87.0020.0011.0002][.3D87.0020.0010.0002] # <KATAKANA LETTER WA, KATAKANA ITERATION MARK>
+FF9C 30FD ; [.3D87.0020.0011.0002][.3D87.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA ITERATION MARK>
+308F 309D ; [.3D87.0020.0011.0001][.3D87.0020.0010.0002] # <HIRAGANA LETTER WA, HIRAGANA ITERATION MARK>
+30EF 30FE ; [.3D87.0020.0011.0002][.3D87.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
+FF9C 30FE ; [.3D87.0020.0011.0002][.3D87.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
+308F 309E ; [.3D87.0020.0011.0001][.3D87.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WA, HIRAGANA VOICED ITERATION MARK>
+30F0 30FD ; [.3D88.0020.0011.0002][.3D88.0020.0010.0002] # <KATAKANA LETTER WI, KATAKANA ITERATION MARK>
+3090 309D ; [.3D88.0020.0011.0001][.3D88.0020.0010.0002] # <HIRAGANA LETTER WI, HIRAGANA ITERATION MARK>
+30F0 30FE ; [.3D88.0020.0011.0002][.3D88.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, KATAKANA VOICED ITERATION MARK>
+3090 309E ; [.3D88.0020.0011.0001][.3D88.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WI, HIRAGANA VOICED ITERATION MARK>
+30F1 30FD ; [.3D89.0020.0011.0002][.3D89.0020.0010.0002] # <KATAKANA LETTER WE, KATAKANA ITERATION MARK>
+3091 309D ; [.3D89.0020.0011.0001][.3D89.0020.0010.0002] # <HIRAGANA LETTER WE, HIRAGANA ITERATION MARK>
+30F1 30FE ; [.3D89.0020.0011.0002][.3D89.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, KATAKANA VOICED ITERATION MARK>
+3091 309E ; [.3D89.0020.0011.0001][.3D89.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WE, HIRAGANA VOICED ITERATION MARK>
+30F2 30FD ; [.3D8A.0020.0011.0002][.3D8A.0020.0010.0002] # <KATAKANA LETTER WO, KATAKANA ITERATION MARK>
+FF66 30FD ; [.3D8A.0020.0011.0002][.3D8A.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA ITERATION MARK>
+3092 309D ; [.3D8A.0020.0011.0001][.3D8A.0020.0010.0002] # <HIRAGANA LETTER WO, HIRAGANA ITERATION MARK>
+30F2 30FE ; [.3D8A.0020.0011.0002][.3D8A.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
+FF66 30FE ; [.3D8A.0020.0011.0002][.3D8A.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
+3092 309E ; [.3D8A.0020.0011.0001][.3D8A.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WO, HIRAGANA VOICED ITERATION MARK>
+30F3 30FD ; [.3D8B.0020.0011.0002][.3D8B.0020.0010.0002] # <KATAKANA LETTER N, KATAKANA ITERATION MARK>
+FF9D 30FD ; [.3D8B.0020.0011.0002][.3D8B.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER N, KATAKANA ITERATION MARK>
+3093 309D ; [.3D8B.0020.0011.0001][.3D8B.0020.0010.0002] # <HIRAGANA LETTER N, HIRAGANA ITERATION MARK>
+30F4 30FD ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0010.0002] # <KATAKANA LETTER VU, KATAKANA ITERATION MARK>
+30A6 3099 30FD ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0010.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF73 FF9E 30FD ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3094 309D ; [.3D5C.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0010.0002] # <HIRAGANA LETTER VU, HIRAGANA ITERATION MARK>
+3046 3099 309D ; [.3D5C.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0010.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30F4 30FE ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VU, KATAKANA VOICED ITERATION MARK>
+30A6 3099 30FE ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF73 FF9E 30FE ; [.3D5C.0020.0011.0002][.0000.0037.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3094 309E ; [.3D5C.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER VU, HIRAGANA VOICED ITERATION MARK>
+3046 3099 309E ; [.3D5C.0020.0011.0001][.0000.0037.0002][.3D5C.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30F5 30FD ; [.3D60.0020.000F.0002][.3D60.0020.0010.0002] # <KATAKANA LETTER SMALL KA, KATAKANA ITERATION MARK>
+3095 309D ; [.3D60.0020.000F.0001][.3D60.0020.0010.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA ITERATION MARK>
+30F5 30FE ; [.3D60.0020.000F.0002][.3D60.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KA, KATAKANA VOICED ITERATION MARK>
+3095 309E ; [.3D60.0020.000F.0001][.3D60.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA VOICED ITERATION MARK>
+30F6 30FD ; [.3D63.0020.000F.0002][.3D63.0020.0010.0002] # <KATAKANA LETTER SMALL KE, KATAKANA ITERATION MARK>
+3096 309D ; [.3D63.0020.000F.0001][.3D63.0020.0010.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA ITERATION MARK>
+30F6 30FE ; [.3D63.0020.000F.0002][.3D63.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KE, KATAKANA VOICED ITERATION MARK>
+3096 309E ; [.3D63.0020.000F.0001][.3D63.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA VOICED ITERATION MARK>
+30F7 30FD ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D87.0020.0010.0002] # <KATAKANA LETTER VA, KATAKANA ITERATION MARK>
+30EF 3099 30FD ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D87.0020.0010.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF9C FF9E 30FD ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D87.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+30F7 30FE ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D87.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VA, KATAKANA VOICED ITERATION MARK>
+30EF 3099 30FE ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D87.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF9C FF9E 30FE ; [.3D87.0020.0011.0002][.0000.0037.0002][.3D87.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+30F8 30FD ; [.3D88.0020.0011.0002][.0000.0037.0002][.3D88.0020.0010.0002] # <KATAKANA LETTER VI, KATAKANA ITERATION MARK>
+30F0 3099 30FD ; [.3D88.0020.0011.0002][.0000.0037.0002][.3D88.0020.0010.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+30F8 30FE ; [.3D88.0020.0011.0002][.0000.0037.0002][.3D88.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VI, KATAKANA VOICED ITERATION MARK>
+30F0 3099 30FE ; [.3D88.0020.0011.0002][.0000.0037.0002][.3D88.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+30F9 30FD ; [.3D89.0020.0011.0002][.0000.0037.0002][.3D89.0020.0010.0002] # <KATAKANA LETTER VE, KATAKANA ITERATION MARK>
+30F1 3099 30FD ; [.3D89.0020.0011.0002][.0000.0037.0002][.3D89.0020.0010.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+30F9 30FE ; [.3D89.0020.0011.0002][.0000.0037.0002][.3D89.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VE, KATAKANA VOICED ITERATION MARK>
+30F1 3099 30FE ; [.3D89.0020.0011.0002][.0000.0037.0002][.3D89.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+30FA 30FD ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D8A.0020.0010.0002] # <KATAKANA LETTER VO, KATAKANA ITERATION MARK>
+30F2 3099 30FD ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D8A.0020.0010.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF66 FF9E 30FD ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D8A.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+30FA 30FE ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D8A.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VO, KATAKANA VOICED ITERATION MARK>
+30F2 3099 30FE ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D8A.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF66 FF9E 30FE ; [.3D8A.0020.0011.0002][.0000.0037.0002][.3D8A.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+31F0 30FD ; [.3D62.0020.000F][.3D62.0020.0010.0002] # <KATAKANA LETTER SMALL KU, KATAKANA ITERATION MARK>
+31F0 30FE ; [.3D62.0020.000F][.3D62.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KU, KATAKANA VOICED ITERATION MARK>
+31F1 30FD ; [.3D66.0020.000F][.3D66.0020.0010.0002] # <KATAKANA LETTER SMALL SI, KATAKANA ITERATION MARK>
+31F1 30FE ; [.3D66.0020.000F][.3D66.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SI, KATAKANA VOICED ITERATION MARK>
+31F2 30FD ; [.3D67.0020.000F][.3D67.0020.0010.0002] # <KATAKANA LETTER SMALL SU, KATAKANA ITERATION MARK>
+31F2 30FE ; [.3D67.0020.000F][.3D67.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SU, KATAKANA VOICED ITERATION MARK>
+31F3 30FD ; [.3D6E.0020.000F][.3D6E.0020.0010.0002] # <KATAKANA LETTER SMALL TO, KATAKANA ITERATION MARK>
+31F3 30FE ; [.3D6E.0020.000F][.3D6E.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TO, KATAKANA VOICED ITERATION MARK>
+31F4 30FD ; [.3D71.0020.000F][.3D71.0020.0010.0002] # <KATAKANA LETTER SMALL NU, KATAKANA ITERATION MARK>
+31F5 30FD ; [.3D74.0020.000F][.3D74.0020.0010.0002] # <KATAKANA LETTER SMALL HA, KATAKANA ITERATION MARK>
+31F5 30FE ; [.3D74.0020.000F][.3D74.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HA, KATAKANA VOICED ITERATION MARK>
+31F6 30FD ; [.3D75.0020.000F][.3D75.0020.0010.0002] # <KATAKANA LETTER SMALL HI, KATAKANA ITERATION MARK>
+31F6 30FE ; [.3D75.0020.000F][.3D75.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HI, KATAKANA VOICED ITERATION MARK>
+31F7 30FD ; [.3D76.0020.000F][.3D76.0020.0010.0002] # <KATAKANA LETTER SMALL HU, KATAKANA ITERATION MARK>
+31F7 30FE ; [.3D76.0020.000F][.3D76.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HU, KATAKANA VOICED ITERATION MARK>
+31F8 30FD ; [.3D77.0020.000F][.3D77.0020.0010.0002] # <KATAKANA LETTER SMALL HE, KATAKANA ITERATION MARK>
+31F8 30FE ; [.3D77.0020.000F][.3D77.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HE, KATAKANA VOICED ITERATION MARK>
+31F9 30FD ; [.3D78.0020.000F][.3D78.0020.0010.0002] # <KATAKANA LETTER SMALL HO, KATAKANA ITERATION MARK>
+31F9 30FE ; [.3D78.0020.000F][.3D78.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HO, KATAKANA VOICED ITERATION MARK>
+31FA 30FD ; [.3D7B.0020.000F][.3D7B.0020.0010.0002] # <KATAKANA LETTER SMALL MU, KATAKANA ITERATION MARK>
+31FB 30FD ; [.3D82.0020.000F][.3D82.0020.0010.0002] # <KATAKANA LETTER SMALL RA, KATAKANA ITERATION MARK>
+31FC 30FD ; [.3D83.0020.000F][.3D83.0020.0010.0002] # <KATAKANA LETTER SMALL RI, KATAKANA ITERATION MARK>
+31FD 30FD ; [.3D84.0020.000F][.3D84.0020.0010.0002] # <KATAKANA LETTER SMALL RU, KATAKANA ITERATION MARK>
+31FE 30FD ; [.3D85.0020.000F][.3D85.0020.0010.0002] # <KATAKANA LETTER SMALL RE, KATAKANA ITERATION MARK>
+31FF 30FD ; [.3D86.0020.000F][.3D86.0020.0010.0002] # <KATAKANA LETTER SMALL RO, KATAKANA ITERATION MARK>
F967 ; [.8961.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
FA70 ; [.89AD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
F905 ; [.828D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kk.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kk.pl
index 4d605ba231c..80ec689f69d 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kk.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kk.pl
@@ -1,53 +1,13 @@
+{
- locale_version => 1.14,
- suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
- 0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
- 0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
- 0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-0451 ; [.1D29.0020.0002] # CYRILLIC SMALL LETTER IO
-0435 0308 ; [.1D29.0020.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.1D29.0020.0008] # CYRILLIC CAPITAL LETTER IO
-0415 0308 ; [.1D29.0020.0008] # CYRILLIC CAPITAL LETTER IO
-04AF ; [.1E20.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
-04AE ; [.1E20.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
-0456 ; [.1E99.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0406 ; [.1E99.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1E99.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1E99.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0451 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER IO
+0435 0308 ; [.205B.0020.0002] # CYRILLIC SMALL LETTER IO
+0401 ; [.205B.0020.0008] # CYRILLIC CAPITAL LETTER IO
+0415 0308 ; [.205B.0020.0008] # CYRILLIC CAPITAL LETTER IO
+04AF ; [.2126.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
+04AE ; [.2126.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
+0456 ; [.2197.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0406 ; [.2197.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kl.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kl.pl
index 9cd73f4d508..1aa7a2c9ebf 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kl.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kl.pl
@@ -1,75 +1,75 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-0138 ; [.1AE3.0021.0002] # LATIN SMALL LETTER KRA
-004B 0027 ; [.1AE3.0021.0008] # <LATIN CAPITAL LETTER K, APOSTROPHE>
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C8F.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C8F.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C8F.0022.0008] # LATIN CAPITAL LETTER ETH
+0138 ; [.1E21.0021.0002] # LATIN SMALL LETTER KRA
+004B 0027 ; [.1E21.0021.0008] # <LATIN CAPITAL LETTER K, APOSTROPHE>
+00FE ; [.1E95.0020.0003][.1D18.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E95.0020.0009][.1D18.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F96.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F96.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F96.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F96.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F96.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F96.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F96.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F97.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F97.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F97.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F97.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F98.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F98.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F98.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kn.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kn.pl
index 1f1f9e7a018..e32820448b7 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kn.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kn.pl
@@ -1,10 +1,10 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0C82 ; [.2549.0020.0002][.FFF1.0000.0000] # KANNADA SIGN ANUSVARA
-0C83 ; [.2549.0020.0002][.FFF2.0000.0000] # KANNADA SIGN VISARGA
-0CF1 ; [.2549.0020.0002][.FFF3.0000.0000] # KANNADA SIGN JIHVAMULIYA
-0CF2 ; [.2549.0020.0002][.FFF4.0000.0000] # KANNADA SIGN UPADHMANIYA
-0C94 ; [.2549.0020.0002][.FFF0.0000.0000] # KANNADA LETTER AU
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0C82 ; [.284C.0020.0002][.FFF1.0000.0000] # KANNADA SIGN ANUSVARA
+0C83 ; [.284C.0020.0002][.FFF2.0000.0000] # KANNADA SIGN VISARGA
+0CF1 ; [.284C.0020.0002][.FFF3.0000.0000] # KANNADA SIGN JIHVAMULIYA
+0CF2 ; [.284C.0020.0002][.FFF4.0000.0000] # KANNADA SIGN UPADHMANIYA
+0C94 ; [.284C.0020.0002][.FFF0.0000.0000] # KANNADA LETTER AU
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ko.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ko.pl
index 049f4958a7a..56a34780d02 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ko.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ko.pl
@@ -1,647 +1,647 @@
use Unicode::Collate::CJK::Korean;
+{
- locale_version => 1.14,
+ locale_version => 1.25,
overrideCJK => \&Unicode::Collate::CJK::Korean::weightKorean,
- entry => <<'ENTRY', # for DUCET v7.0.0
-F967 ; [.3776.0021.0002.4E0D][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
-FA70 ; [.3776.0032.0002.4E26][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
-F905 ; [.376F.0021.0002.4E32][.37F5.0020.0002][.3860.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
-2F801 ; [.3781.0021.0002.4E38][.37F6.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F801
-F95E ; [.3772.0021.0002.4E39][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95E
-F91B ; [.3774.0021.0002.4E82][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91B
-F9BA ; [.3774.0021.0002.4E86][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BA
-F977 ; [.3774.0021.0002.4EAE][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F977
-F9FD ; [.3778.0021.0002.4EC0][.3801.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FD
-F9A8 ; [.3774.0021.0002.4EE4][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A8
-F92D ; [.3774.0021.0002.4F86][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92D
-F9B5 ; [.3774.0021.0002.4F8B][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B5
-FA30 ; [.3775.0021.0002.4FAE][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA30
-2F805 ; [.3775.0021.0002.4FAE][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F805
-2F806 ; [.377F.0023.0002.4FBB][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F806
-F965 ; [.3780.0021.0002.4FBF][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F965
-2F807 ; [.3776.0022.0002.5002][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F807
-F9D4 ; [.3774.0022.0002.502B][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D4
-2F809 ; [.3776.0022.0002.5099][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F809
-2F80B ; [.3778.0023.0002.50CF][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80B
-F9BB ; [.3774.0022.0002.50DA][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BB
-FA31 ; [.3778.0023.0002.50E7][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA31
-2F80A ; [.3778.0023.0002.50E7][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80A
-FA0C ; [.377A.0021.0002.5140][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0C
-FA74 ; [.377D.0021.0002.5145][.37FA.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA74
-FA32 ; [.3775.0021.0002.514D][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA32
-2F80E ; [.3775.0021.0002.514D][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80E
-2F814 ; [.3771.0022.0002.5167][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F814
-FA72 ; [.377B.0024.0002.5168][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA72
-F978 ; [.3774.0023.0002.5169][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F978
-F9D1 ; [.3774.0021.0002.516D][.37FE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D1
-2F811 ; [.376F.0026.0002.5177][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F811
-FA75 ; [.376F.0024.0002.5180][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA75
-2F815 ; [.377B.0021.0002.518D][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F815
-2F8D2 ; [.3775.0022.0002.5192][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D2
-2F8D3 ; [.3775.0022.0002.5195][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D3
-2F817 ; [.377A.0023.0002.5197][.37F9.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F817
-2F818 ; [.377A.003B.0002.51A4][.37FB.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F818
-2F81A ; [.3772.0022.0002.51AC][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81A
-F92E ; [.3774.0021.0002.51B7][.37EE.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92E
-F979 ; [.3774.0024.0002.51C9][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F979
-F955 ; [.3774.0021.0002.51CC][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F955
-F954 ; [.3774.0021.0002.51DC][.37FF.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F954
-FA15 ; [.3781.0022.0002.51DE][.3800.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA15
-2F81E ; [.377A.0023.0002.5203][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81E
-FA00 ; [.377B.0021.0002.5207][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA00
-2F850 ; [.377B.0021.0002.5207][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F850
-F99C ; [.3774.0022.0002.5217][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99C
-F9DD ; [.3774.0022.0002.5229][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DD
-F9FF ; [.377B.0022.0002.523A][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FF
-2F820 ; [.376F.0021.0002.523B][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F820
-2F822 ; [.3781.0021.0002.5272][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F822
-2F823 ; [.3778.002D.0002.5277][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F823
-F9C7 ; [.3774.0021.0002.5289][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C7
-F98A ; [.3774.0021.0002.529B][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98A
-F99D ; [.3774.0023.0002.52A3][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99D
-FA76 ; [.377A.0024.0002.52C7][.37F9.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA76
-2F825 ; [.377A.0024.0002.52C7][.37F9.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F825
-FA33 ; [.3775.0023.0002.52C9][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA33
-2F826 ; [.3775.0023.0002.52C9][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F826
-F952 ; [.3774.0021.0002.52D2][.37FF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F952
-F92F ; [.3774.0021.0002.52DE][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92F
-FA34 ; [.376F.0023.0002.52E4][.37FF.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA34
-2F827 ; [.376F.0023.0002.52E4][.37FF.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F827
-F97F ; [.3774.0023.0002.52F5][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97F
-FA77 ; [.377B.0022.0002.52FA][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA77
-2F828 ; [.377B.0022.0002.52FA][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F828
-2F829 ; [.3780.0022.0002.5305][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F829
-F963 ; [.3776.0021.0002.5317][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F963
-2F82B ; [.3776.0021.0002.5317][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82B
-F9EB ; [.3771.0021.0002.533F][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EB
-2F82C ; [.3781.0021.0002.5349][.37FC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82C
-FA35 ; [.3776.0025.0002.5351][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA35
-2F82D ; [.3776.0025.0002.5351][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82D
-2F82E ; [.3776.0022.0002.535A][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82E
-2F82F ; [.377B.0022.0002.5373][.37FF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82F
-F91C ; [.3774.0022.0002.5375][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91C
-2F830 ; [.377B.0021.0002.537D][.37FF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F830
-2F831 ; [.376F.0028.0002.537F][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F831
-2F832 ; [.376F.0028.0002.537F][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F832
-2F833 ; [.376F.0028.0002.537F][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F833
-F96B ; [.377D.0022.0002.53C3][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96B
-2F836 ; [.376F.0022.0002.53CA][.37FF.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F836
-2F837 ; [.3778.005E.0002.53DF][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F837
-F906 ; [.376F.002A.0002.53E5][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F906
-2F839 ; [.376F.0021.0002.53EB][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F839
-2F83A ; [.377B.0022.0002.53F1][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83A
-F9DE ; [.3774.0024.0002.540F][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DE
-F9ED ; [.3774.0021.0002.541D][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9ED
-2F83D ; [.3781.0021.0002.5438][.37FF.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83D
-F980 ; [.3774.0024.0002.5442][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F980
-2F83E ; [.377B.0026.0002.5448][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83E
-2F83F ; [.377B.0028.0002.5468][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83F
-2F840 ; [.377A.0031.0002.54A2][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F840
-F99E ; [.377A.0025.0002.54BD][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99E
-2F842 ; [.3772.0021.0002.5510][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F842
-2F843 ; [.376F.0022.0002.5553][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F843
-2F844 ; [.3781.0024.0002.5563][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F844
-2F845 ; [.3778.0024.0002.5584][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F845
-2F846 ; [.3778.0024.0002.5584][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F846
-F90B ; [.3774.0021.0002.5587][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90B
-FA7A ; [.3781.0022.0002.5599][.37FC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7A
-2F847 ; [.3781.0022.0002.5599][.37FC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F847
-FA36 ; [.376F.0022.0002.559D][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA36
-FA78 ; [.376F.0022.0002.559D][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA78
-2F848 ; [.3770.0021.0002.55AB][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F848
-FA7B ; [.377A.0022.0002.55E2][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7B
-FA37 ; [.377F.0022.0002.5606][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA37
-2F84C ; [.377F.0022.0002.5606][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84C
-FA38 ; [.376F.0026.0002.5668][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA38
-2F84F ; [.3776.0023.0002.5674][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84F
-F9A9 ; [.3774.0023.0002.56F9][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A9
-2F84B ; [.3772.0024.0002.5716][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84B
-2F855 ; [.3781.0024.0002.578B][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F855
-2F852 ; [.3778.0021.0002.57CE][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F852
-2F853 ; [.3778.0021.0002.57F4][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F853
-2F857 ; [.3776.0023.0002.5831][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F857
-FA39 ; [.3776.0033.0002.5840][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA39
-FA10 ; [.377D.0022.0002.585A][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA10
-FA7C ; [.377D.0022.0002.585A][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7C
-F96C ; [.3778.0021.0002.585E][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96C
-FA3A ; [.3775.0021.0002.58A8][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3A
-FA7D ; [.3776.0024.0002.58B3][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7D
-F94A ; [.3774.0021.0002.58D8][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94A
-F942 ; [.3774.0021.0002.58DF][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F942
-2F85C ; [.3776.0032.0002.5906][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85C
-2F85D ; [.3772.0021.0002.591A][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85D
-2F85E ; [.3775.0021.0002.5922][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85E
-FA7E ; [.377A.0024.0002.5944][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7E
-F90C ; [.3771.0023.0002.5948][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90C
-F909 ; [.376F.0024.0002.5951][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F909
-FA7F ; [.3776.0025.0002.5954][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7F
-2F85F ; [.3778.0030.0002.5962][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85F
-F981 ; [.3771.0021.0002.5973][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F981
-2F862 ; [.3781.0026.0002.59EC][.3800.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F862
-2F863 ; [.377A.002C.0002.5A1B][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F863
-2F864 ; [.377F.0030.0002.5A27][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F864
-FA80 ; [.3776.0027.0002.5A62][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA80
-2F866 ; [.3776.002B.0002.5A66][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F866
-2F986 ; [.377A.0025.0002.5AB5][.3801.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F986
-2F869 ; [.377A.0041.0002.5B08][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F869
-FA81 ; [.377B.003C.0002.5B28][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA81
-2F86A ; [.3774.0029.0002.5B3E][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86A
-2F86B ; [.3774.0029.0002.5B3E][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86B
-FA04 ; [.3772.0021.0002.5B85][.37EE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA04
-2F86D ; [.377A.0029.0002.5BC3][.37FB.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86D
-2F86E ; [.377D.003B.0002.5BD8][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86E
-F95F ; [.3771.0021.0002.5BE7][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95F
-F9AA ; [.3771.0021.0002.5BE7][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AA
-2F86F ; [.3771.0021.0002.5BE7][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86F
-F9BC ; [.3774.0023.0002.5BEE][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BC
-F9BD ; [.3771.0021.0002.5C3F][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BD
-2F877 ; [.3772.0028.0002.5C60][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F877
-F94B ; [.3774.0023.0002.5C62][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94B
-FA3B ; [.377D.0021.0002.5C64][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3B
-F9DF ; [.3774.0026.0002.5C65][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DF
-2F879 ; [.3778.002A.0002.5CC0][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F879
-F9D5 ; [.3774.0023.0002.5D19][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D5
-F921 ; [.3774.0021.0002.5D50][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F921
-F9AB ; [.3774.0025.0002.5DBA][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AB
-2F881 ; [.3778.0021.0002.5DE1][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F881
-2F882 ; [.3778.0027.0002.5DE2][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F882
-2F884 ; [.3778.0022.0002.5DFD][.37F5.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F884
-2F885 ; [.3778.0029.0002.5E28][.37F2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F885
-2F886 ; [.3775.0025.0002.5E3D][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F886
-F98E ; [.3771.0021.0002.5E74][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98E
-FA01 ; [.3772.002B.0002.5EA6][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA01
-2F88C ; [.3776.0052.0002.5EB3][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88C
-2F88D ; [.3778.0025.0002.5EB6][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88D
-F9A2 ; [.3774.0021.0002.5EC9][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A2
-F928 ; [.3774.0021.0002.5ECA][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F928
-2F88E ; [.3774.0021.0002.5ECA][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88E
-FA0B ; [.376F.0021.0002.5ED3][.37F6.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0B
-F982 ; [.3774.0025.0002.5EEC][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F982
-F943 ; [.3774.0022.0002.5F04][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F943
-2F894 ; [.3772.004B.0002.5F22][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F894
-2F895 ; [.3772.004B.0002.5F22][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F895
-2F899 ; [.3781.0025.0002.5F62][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F899
-FA84 ; [.377D.0025.0002.5F69][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA84
-2F89A ; [.377B.0027.0002.5F6B][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89A
-F9D8 ; [.3774.0021.0002.5F8B][.37FE.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D8
-F966 ; [.3776.0026.0002.5FA9][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F966
-FA85 ; [.377A.0043.0002.5FAD][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA85
-2F89D ; [.377A.002A.0002.5FCD][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89D
-2F89E ; [.377B.0026.0002.5FD7][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89E
-F9A3 ; [.3771.0021.0002.5FF5][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A3
-F960 ; [.3771.0024.0002.6012][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F960
-F9AC ; [.3774.0026.0002.601C][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AC
-2F8A0 ; [.377A.0042.0002.6081][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A0
-FA3D ; [.3781.0026.0002.6094][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3D
-2F8A3 ; [.3781.0026.0002.6094][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A3
-2F8A5 ; [.3772.0022.0002.60C7][.37F5.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A5
-FA86 ; [.3775.002D.0002.60D8][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA86
-F9B9 ; [.377A.0025.0002.60E1][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B9
-FA88 ; [.377A.002E.0002.6108][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA88
-F9D9 ; [.3774.0022.0002.6144][.37FE.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D9
-2F8A6 ; [.377B.002A.0002.6148][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A6
-2F8A7 ; [.3781.0027.0002.614C][.37F6.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A7
-2F8A9 ; [.3781.0027.0002.614C][.37F6.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A9
-FA8A ; [.377A.0047.0002.6160][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8A
-FA3E ; [.376F.0028.0002.6168][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3E
-2F8AA ; [.3774.0031.0002.617A][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AA
-FA3F ; [.377B.0022.0002.618E][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3F
-FA89 ; [.377B.0022.0002.618E][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA89
-2F8AB ; [.377B.0022.0002.618E][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AB
-F98F ; [.3774.0021.0002.6190][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98F
-2F8AD ; [.3776.0028.0002.61A4][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AD
-2F8AE ; [.377D.0030.0002.61AF][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AE
-2F8AC ; [.3781.0021.0002.61B2][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AC
-2F8AF ; [.3775.0025.0002.61DE][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AF
-FA40 ; [.377B.0022.0002.61F2][.3801.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA40
-FA8B ; [.377B.0022.0002.61F2][.3801.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8B
-2F8B0 ; [.377B.0022.0002.61F2][.3801.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B0
-F90D ; [.3774.0022.0002.61F6][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90D
-2F8B1 ; [.3774.0022.0002.61F6][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B1
-F990 ; [.3774.0022.0002.6200][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F990
-2F8B2 ; [.3778.0026.0002.6210][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B2
-F9D2 ; [.3774.0022.0002.622E][.37FE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D2
-FA8C ; [.3772.0029.0002.6234][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8C
-2F8B5 ; [.3780.002B.0002.62B1][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B5
-F925 ; [.3774.0021.0002.62C9][.37ED.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F925
-F95B ; [.3771.0024.0002.62CF][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95B
-FA02 ; [.377D.0026.0002.62D3][.37F1.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA02
-2F8B6 ; [.3776.0022.0002.62D4][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B6
-F973 ; [.3778.0022.0002.62FE][.37FF.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F973
-2F8B9 ; [.3775.0027.0002.633D][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B9
-2F8B7 ; [.377A.0027.0002.6350][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B7
-2F8BB ; [.3778.0039.0002.6368][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BB
-F9A4 ; [.3771.0024.0002.637B][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A4
-2F8BC ; [.3778.0029.0002.6383][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BC
-F975 ; [.3774.0021.0002.63A0][.37EF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F975
-2F8C1 ; [.377A.0025.0002.63A9][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C1
-FA8D ; [.377A.0030.0002.63C4][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8D
-FA8E ; [.3778.0030.0002.641C][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8E
-2F8BF ; [.377B.0025.0002.6422][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BF
-2F8C3 ; [.3775.0021.0002.6469][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C3
-F991 ; [.3771.0022.0002.649A][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F991
-2F8C5 ; [.3781.0029.0002.649D][.37FD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C5
-F930 ; [.3774.0023.0002.64C4][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F930
-FA41 ; [.3775.0025.0002.654F][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA41
-2F8C8 ; [.3775.0025.0002.654F][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C8
-FA90 ; [.377A.0030.0002.6556][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA90
-2F8C9 ; [.376F.0030.0002.656C][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C9
-F969 ; [.3778.0032.0002.6578][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F969
-F9BE ; [.3774.0025.0002.6599][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BE
-F983 ; [.3774.0028.0002.65C5][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F983
-2F8CB ; [.376F.0035.0002.65E3][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CB
-F9E0 ; [.377A.0024.0002.6613][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E0
-2F8CD ; [.377B.0026.0002.6649][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CD
-FA12 ; [.377D.0022.0002.6674][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA12
-FA91 ; [.377D.0022.0002.6674][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA91
-F9C5 ; [.3781.002A.0002.6688][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C5
-FA43 ; [.3778.002B.0002.6691][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA43
-2F8CF ; [.3778.002B.0002.6691][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CF
-FA06 ; [.3780.0022.0002.66B4][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA06
-F98B ; [.3774.0022.0002.66C6][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98B
-F901 ; [.376F.0033.0002.66F4][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F901
-2F8CC ; [.3778.002D.0002.66F8][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CC
-2F8D4 ; [.377D.0023.0002.6700][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D4
-F929 ; [.3774.0022.0002.6717][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F929
-FA92 ; [.3774.0022.0002.6717][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA92
-2F8D8 ; [.3774.0022.0002.6717][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D8
-FA93 ; [.3775.0025.0002.671B][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA93
-2F8D9 ; [.3775.0025.0002.671B][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D9
-F9E1 ; [.3774.0028.0002.674E][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E1
-2F8DC ; [.3780.0025.0002.6753][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DC
-FA94 ; [.377B.002E.0002.6756][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA94
-2F8DB ; [.376F.0038.0002.675E][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DB
-F9C8 ; [.3771.0021.0002.677B][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C8
-F9F4 ; [.3774.0021.0002.6797][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F4
-F9C9 ; [.3774.0023.0002.67F3][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C9
-F9DA ; [.3774.0023.0002.6817][.37FE.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DA
-F97A ; [.3774.0025.0002.6881][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97A
-FA44 ; [.3775.0027.0002.6885][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA44
-2F8E2 ; [.3775.0027.0002.6885][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E2
-F9E2 ; [.3774.0029.0002.68A8][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E2
-2F8E8 ; [.3778.0062.0002.6942][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E8
-2F8EA ; [.376F.002A.0002.69EA][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EA
-F914 ; [.377A.0028.0002.6A02][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F914
-F95C ; [.377A.0028.0002.6A02][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95C
-F9BF ; [.377A.0028.0002.6A02][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BF
-F94C ; [.3774.0024.0002.6A13][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94C
-F931 ; [.3774.0024.0002.6AD3][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F931
-2F8ED ; [.377B.0021.0002.6ADB][.37FF.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8ED
-F91D ; [.3774.0023.0002.6B04][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91D
-2F8EF ; [.377D.0028.0002.6B21][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EF
-2F8F1 ; [.3781.0025.0002.6B54][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F1
-2F8F3 ; [.3778.0023.0002.6B72][.37F2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F3
-F98C ; [.3774.0023.0002.6B77][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98C
-F9A5 ; [.3774.0023.0002.6BAE][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A5
-F970 ; [.3778.0023.0002.6BBA][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F970
-FA96 ; [.3778.0023.0002.6BBA][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA96
-2F8F5 ; [.3778.0023.0002.6BBA][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F5
-2F8FA ; [.3776.0025.0002.6C4E][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FA
-F972 ; [.377D.0024.0002.6C88][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F972
-2F8FC ; [.377A.002B.0002.6CBF][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FC
-F968 ; [.3780.0024.0002.6CCC][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F968
-F9E3 ; [.3771.0022.0002.6CE5][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E3
-F915 ; [.3774.0021.0002.6D1B][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F915
-FA05 ; [.3772.002A.0002.6D1E][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA05
-2F900 ; [.3780.0029.0002.6D3E][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F900
-F9CA ; [.3774.0025.0002.6D41][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CA
-FA97 ; [.3774.0025.0002.6D41][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA97
-2F902 ; [.3774.0025.0002.6D41][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F902
-2F903 ; [.3781.002E.0002.6D69][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F903
-F92A ; [.3774.0023.0002.6D6A][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92A
-FA45 ; [.3781.002A.0002.6D77][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA45
-2F901 ; [.3781.002A.0002.6D77][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F901
-2F904 ; [.377D.0025.0002.6D78][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F904
-2F905 ; [.377A.0022.0002.6D85][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F905
-F9F5 ; [.3774.0022.0002.6DCB][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F5
-F94D ; [.3774.0025.0002.6DDA][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94D
-F9D6 ; [.3774.0024.0002.6DEA][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D6
-2F90E ; [.377A.0026.0002.6DF9][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90E
-FA46 ; [.377B.002C.0002.6E1A][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA46
-2F908 ; [.3781.002B.0002.6E2F][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F908
-2F909 ; [.377A.002B.0002.6E6E][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F909
-F9CB ; [.3774.0026.0002.6E9C][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CB
-F9EC ; [.3771.0022.0002.6EBA][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EC
-FA99 ; [.377B.002B.0002.6ECB][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA99
-2F90B ; [.377B.002B.0002.6ECB][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90B
-F904 ; [.3781.0022.0002.6ED1][.37F6.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F904
-F94E ; [.3774.0026.0002.6F0F][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94E
-FA47 ; [.3781.0026.0002.6F22][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA47
-FA9A ; [.3781.0026.0002.6F22][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9A
-F992 ; [.3774.0024.0002.6F23][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F992
-2F90F ; [.377B.0033.0002.6F6E][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90F
-2F912 ; [.3776.003C.0002.6FC6][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F912
-F922 ; [.3774.0025.0002.6FEB][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F922
-F984 ; [.3774.002A.0002.6FFE][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F984
-2F915 ; [.377A.002D.0002.701B][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F915
-FA9B ; [.377B.003D.0002.701E][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9B
-2F914 ; [.377B.003D.0002.701E][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F914
-2F835 ; [.3781.002D.0002.7070][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F835
-2F918 ; [.377B.002B.0002.707D][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F918
-F9FB ; [.377B.002C.0002.7099][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FB
-2F91A ; [.377F.0028.0002.70AD][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F91A
-F99F ; [.3774.0025.0002.70C8][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99F
-F916 ; [.3774.0022.0002.70D9][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F916
-F993 ; [.3774.0025.0002.7149][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F993
-FA48 ; [.377B.002D.0002.716E][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA48
-FA9C ; [.377B.002D.0002.716E][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9C
-F9C0 ; [.3774.0026.0002.71CE][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C0
-F9EE ; [.3774.0023.0002.71D0][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EE
-F932 ; [.3774.0027.0002.7210][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F932
-F91E ; [.3774.0026.0002.721B][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91E
-2F920 ; [.377D.0036.0002.7228][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F920
-FA9E ; [.377B.0028.0002.7235][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9E
-2F921 ; [.377B.0028.0002.7235][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F921
-F946 ; [.3774.0023.0002.7262][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F946
-2F924 ; [.3778.0030.0002.7280][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F924
-FA9F ; [.3776.0027.0002.72AF][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9F
-F9FA ; [.3778.0035.0002.72C0][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FA
-F92B ; [.3774.0024.0002.72FC][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92B
-FA16 ; [.377B.002E.0002.732A][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA16
-FAA0 ; [.377B.002E.0002.732A][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA0
-F9A7 ; [.3774.0021.0002.7375][.37F3.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A7
-2F928 ; [.3772.0023.0002.737A][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F928
-F961 ; [.3778.0021.0002.7387][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F961
-F9DB ; [.3778.0021.0002.7387][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DB
-2F929 ; [.377A.0025.0002.738B][.37F6.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F929
-F9AD ; [.3774.0027.0002.73B2][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AD
-F917 ; [.3774.0023.0002.73DE][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F917
-F9E4 ; [.3774.002D.0002.7406][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E4
-F9CC ; [.3774.0028.0002.7409][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CC
-FA4A ; [.377F.002B.0002.7422][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4A
-2F92F ; [.377A.003D.0002.745C][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F92F
-F9AE ; [.3781.002D.0002.7469][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AE
-FAA1 ; [.377B.0057.0002.7471][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA1
-2F930 ; [.377B.0057.0002.7471][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F930
-F994 ; [.3774.0026.0002.7489][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F994
-F9EF ; [.3774.0024.0002.7498][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EF
-2F932 ; [.376F.003A.0002.74CA][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F932
-F9CD ; [.3774.002A.0002.7559][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CD
-F976 ; [.3774.0022.0002.7565][.37EF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F976
-F962 ; [.377A.002C.0002.7570][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F962
-2F938 ; [.377A.002C.0002.7570][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F938
-F9E5 ; [.3774.002F.0002.75E2][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E5
-2F93A ; [.377A.0059.0002.7610][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F93A
-FAA5 ; [.377A.0023.0002.761F][.37F5.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA5
-F9C1 ; [.3774.0027.0002.7642][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C1
-F90E ; [.3774.0023.0002.7669][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90E
-FA17 ; [.377A.0022.0002.76CA][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA17
-FAA6 ; [.377A.0022.0002.76CA][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA6
-FAA7 ; [.3778.002B.0002.76DB][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA7
-F933 ; [.3774.0028.0002.76E7][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F933
-FAA8 ; [.377B.0021.0002.76F4][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA8
-2F940 ; [.377B.0021.0002.76F4][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F940
-F96D ; [.3778.002C.0002.7701][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96D
-2F945 ; [.377B.0033.0002.771E][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F945
-FAAA ; [.377D.0023.0002.7740][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAA
-2F94A ; [.377B.0034.0002.778B][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94A
-F9CE ; [.3774.002C.0002.786B][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CE
-F93B ; [.3774.0021.0002.788C][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93B
-2F94F ; [.3774.0021.0002.788C][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94F
-FA4B ; [.3776.0038.0002.7891][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4B
-F947 ; [.3774.0024.0002.78CA][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F947
-F964 ; [.3776.0032.0002.78FB][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F964
-F985 ; [.3774.002B.0002.792A][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F985
-FA4C ; [.3778.0046.0002.793E][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4C
-FA4E ; [.376F.004C.0002.7948][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4E
-FA4D ; [.377B.0035.0002.7949][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4D
-FA4F ; [.377A.0032.0002.7950][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4F
-FA50 ; [.377B.0039.0002.7956][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA50
-2F953 ; [.377B.0039.0002.7956][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F953
-FA51 ; [.377D.0023.0002.795D][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA51
-FA19 ; [.3778.002C.0002.795E][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA19
-FA1A ; [.3778.0037.0002.7965][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1A
-F93C ; [.3774.0022.0002.797F][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93C
-FA52 ; [.3781.0027.0002.798D][.37F6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA52
-FA53 ; [.377B.0044.0002.798E][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA53
-FA1B ; [.3776.0028.0002.798F][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1B
-2F956 ; [.3776.0028.0002.798F][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F956
-F9B6 ; [.3774.0023.0002.79AE][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B6
-F995 ; [.3771.0023.0002.79CA][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F995
-2F957 ; [.377D.0024.0002.79EB][.37FA.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F957
-F956 ; [.3774.0023.0002.7A1C][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F956
-FA54 ; [.376F.0025.0002.7A40][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA54
-2F959 ; [.376F.0025.0002.7A40][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F959
-FA55 ; [.3772.0022.0002.7A81][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA55
-F9F7 ; [.3774.0022.0002.7ACB][.3801.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F7
-F9F8 ; [.3774.0023.0002.7B20][.3801.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F8
-FA56 ; [.377B.0027.0002.7BC0][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA56
-FAAD ; [.377B.0027.0002.7BC0][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAD
-2F962 ; [.377B.003D.0002.7BC6][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F962
-2F963 ; [.377D.0026.0002.7BC9][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F963
-F9A6 ; [.3774.0025.0002.7C3E][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A6
-F944 ; [.3774.0026.0002.7C60][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F944
-F9F9 ; [.3774.0024.0002.7C92][.3801.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F9
-FA1D ; [.377B.0047.0002.7CBE][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1D
-FA03 ; [.3772.0029.0002.7CD6][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA03
-F97B ; [.3774.0029.0002.7CE7][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97B
-2F96A ; [.376F.004F.0002.7D00][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96A
-F9CF ; [.3771.0022.0002.7D10][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CF
-F96A ; [.3778.0023.0002.7D22][.37EE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96A
-F94F ; [.3774.0028.0002.7D2F][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94F
-FAAF ; [.377B.0063.0002.7D5B][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAF
-2F96C ; [.3776.0034.0002.7D63][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96C
-F93D ; [.3774.0023.0002.7DA0][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93D
-F957 ; [.3774.0024.0002.7DBE][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F957
-2F96E ; [.377D.0030.0002.7DC7][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96E
-F996 ; [.3774.0027.0002.7DF4][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F996
-FA57 ; [.3774.0027.0002.7DF4][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA57
-FAB0 ; [.3774.0027.0002.7DF4][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB0
-FA58 ; [.377B.0036.0002.7E09][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA58
-F950 ; [.3774.0029.0002.7E37][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F950
-FA59 ; [.3776.0026.0002.7E41][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA59
-2F970 ; [.3778.0052.0002.7E45][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F970
-FAB1 ; [.3776.0035.0002.7F3E][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB1
-FA5A ; [.3778.0035.0002.7F72][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5A
-F9E6 ; [.3774.0031.0002.7F79][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E6
-F90F ; [.3774.0024.0002.7F85][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90F
-F9AF ; [.3774.0029.0002.7F9A][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AF
-FA1E ; [.377A.0036.0002.7FBD][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1E
-2F979 ; [.376F.005A.0002.7FFA][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F979
-F934 ; [.3774.0029.0002.8001][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F934
-FA5B ; [.377B.0033.0002.8005][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5B
-FAB2 ; [.377B.0033.0002.8005][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB2
-2F97A ; [.377B.0033.0002.8005][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97A
-F9B0 ; [.3774.002B.0002.8046][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B0
-F997 ; [.3774.0028.0002.806F][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F997
-2F97F ; [.377D.0028.0002.8070][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97F
-F945 ; [.3774.0027.0002.807E][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F945
-F953 ; [.3774.0022.0002.808B][.37FF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F953
-2F8D6 ; [.3771.0023.0002.80AD][.37FA.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D6
-2F982 ; [.377A.0024.0002.80B2][.37FE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F982
-2F985 ; [.3776.003F.0002.813E][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F985
-F926 ; [.3774.0022.0002.81D8][.37ED.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F926
-F9F6 ; [.3774.0024.0002.81E8][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F6
-FA5C ; [.377D.002A.0002.81ED][.37FD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5C
-2F893 ; [.377A.002E.0002.8201][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F893
-2F98B ; [.377A.002E.0002.8201][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F98B
-F97C ; [.3774.002A.0002.826F][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97C
-2F990 ; [.377A.0037.0002.828B][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F990
-2F991 ; [.377B.003B.0002.829D][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F991
-2F993 ; [.3781.0029.0002.82B1][.37F6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F993
-2F994 ; [.3776.0035.0002.82B3][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F994
-2F995 ; [.377A.0029.0002.82BD][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F995
-F974 ; [.377A.0023.0002.82E5][.37EF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F974
-2F998 ; [.377A.0023.0002.82E5][.37EF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F998
-2F996 ; [.376F.003A.0002.82E6][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F996
-2F999 ; [.377D.002E.0002.831D][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F999
-2F99C ; [.377A.004C.0002.8323][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99C
-F9FE ; [.3772.0022.0002.8336][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FE
-FAB3 ; [.3781.0034.0002.8352][.37F6.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB3
-2F99D ; [.3775.002A.0002.83BD][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99D
-F93E ; [.3774.0024.0002.83C9][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93E
-2F9A1 ; [.376F.0023.0002.83CA][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A1
-2F9A2 ; [.376F.0025.0002.83CC][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A2
-2F9A3 ; [.377D.0029.0002.83DC][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A3
-FAB4 ; [.3781.002A.0002.83EF][.37F6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB4
-F958 ; [.3774.0025.0002.83F1][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F958
-F918 ; [.3774.0025.0002.843D][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F918
-F96E ; [.377A.0023.0002.8449][.37F3.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96E
-FA5F ; [.377B.0034.0002.8457][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5F
-2F99F ; [.377B.0034.0002.8457][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99F
-F999 ; [.3774.0029.0002.84EE][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F999
-2F9A8 ; [.3780.002A.0002.84F1][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A8
-F9C2 ; [.3774.002A.0002.84FC][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C2
-2F9AC ; [.377A.0062.0002.8564][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9AC
-F923 ; [.3774.0028.0002.85CD][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F923
-F9F0 ; [.3774.0025.0002.85FA][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F0
-F935 ; [.3774.002A.0002.8606][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F935
-F91F ; [.3774.0027.0002.862D][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91F
-F910 ; [.3774.0025.0002.863F][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F910
-2F9B3 ; [.3781.0023.0002.8650][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B3
-F936 ; [.3774.002B.0002.865C][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F936
-2F9B4 ; [.3774.002B.0002.865C][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B4
-2F9B5 ; [.3781.0025.0002.8667][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B5
-2F9B7 ; [.377D.0034.0002.86A9][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B7
-2F9BC ; [.377B.0026.0002.8728][.37F1.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9BC
-F911 ; [.3774.0026.0002.87BA][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F911
-F927 ; [.3774.0023.0002.881F][.37ED.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F927
-FA08 ; [.3781.0025.0002.884C][.37EE.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA08
-2F9C4 ; [.377A.0030.0002.8863][.3800.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9C4
-F9A0 ; [.3774.0026.0002.88C2][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A0
-F9E7 ; [.3774.0034.0002.88CF][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E7
-F9E8 ; [.3774.0035.0002.88E1][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E8
-F912 ; [.3774.0027.0002.88F8][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F912
-FA60 ; [.376F.0028.0002.8910][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA60
-FAB6 ; [.376F.0034.0002.8941][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB6
-F924 ; [.3774.0029.0002.8964][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F924
-FAB7 ; [.3776.002D.0002.8986][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB7
-FA0A ; [.376F.0028.0002.898B][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0A
-FA61 ; [.3778.0037.0002.8996][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA61
-FAB8 ; [.3778.0037.0002.8996][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB8
-2F9CF ; [.3778.0031.0002.8AA0][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9CF
-F96F ; [.3778.002B.0002.8AAA][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96F
-F9A1 ; [.3778.002B.0002.8AAA][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A1
-FAB9 ; [.377B.0046.0002.8ABF][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB9
-FABB ; [.377D.0026.0002.8ACB][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABB
-F97D ; [.3774.002B.0002.8AD2][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97D
-F941 ; [.3774.0021.0002.8AD6][.37F5.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F941
-FABE ; [.377A.0046.0002.8AED][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABE
-2F9D0 ; [.377A.0046.0002.8AED][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D0
-FA22 ; [.377B.0030.0002.8AF8][.37F2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA22
-FABA ; [.377B.0030.0002.8AF8][.37F2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABA
-F95D ; [.3771.0021.0002.8AFE][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95D
-FABD ; [.3771.0021.0002.8AFE][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABD
-FA62 ; [.377A.0022.0002.8B01][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA62
-FABC ; [.377A.0022.0002.8B01][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABC
-FA63 ; [.376F.002D.0002.8B39][.37FF.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA63
-FABF ; [.376F.002D.0002.8B39][.37FF.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABF
-F9FC ; [.3778.002C.0002.8B58][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FC
-F95A ; [.3772.002A.0002.8B80][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95A
-FAC0 ; [.3776.0023.0002.8B8A][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC0
-2F9D1 ; [.3776.0023.0002.8B8A][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D1
-F900 ; [.376F.0057.0002.8C48][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F900
-2F9D2 ; [.3778.003B.0002.8C55][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D2
-2F9D4 ; [.376F.002E.0002.8CAB][.37F6.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D4
-2F9D5 ; [.3776.0032.0002.8CC1][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D5
-F948 ; [.3774.0025.0002.8CC2][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F948
-F903 ; [.376F.0039.0002.8CC8][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F903
-FA64 ; [.3776.002D.0002.8CD3][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA64
-FA65 ; [.377B.002B.0002.8D08][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA65
-FAC1 ; [.377B.002B.0002.8D08][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC1
-2F9D6 ; [.376F.0039.0002.8D1B][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D6
-2F9D7 ; [.376F.0058.0002.8D77][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D7
-2F9DA ; [.3776.0027.0002.8DCB][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DA
-F937 ; [.3774.002C.0002.8DEF][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F937
-F902 ; [.377D.002D.0002.8ECA][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F902
-F998 ; [.3774.002A.0002.8F26][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F998
-F9D7 ; [.3774.0026.0002.8F2A][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D7
-FAC2 ; [.3778.004F.0002.8F38][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC2
-2F9DF ; [.3778.004F.0002.8F38][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DF
-FA07 ; [.3776.002F.0002.8F3B][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA07
-F98D ; [.3774.0026.0002.8F62][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98D
-F971 ; [.377B.003E.0002.8FB0][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F971
-F99A ; [.3774.002B.0002.9023][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99A
-FA25 ; [.377A.0027.0002.9038][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA25
-FA67 ; [.377A.0027.0002.9038][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA67
-FAC3 ; [.377B.0041.0002.9072][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC3
-F9C3 ; [.3774.002B.0002.907C][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C3
-F913 ; [.3774.0028.0002.908F][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F913
-FA2E ; [.3774.0028.0002.90DE][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2E
-FA26 ; [.3772.0045.0002.90FD][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA26
-F919 ; [.3774.0026.0002.916A][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F919
-F9B7 ; [.3774.0024.0002.91B4][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B7
-F9E9 ; [.3774.0036.0002.91CC][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E9
-F97E ; [.3774.002D.0002.91CF][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97E
-F90A ; [.376F.0021.0002.91D1][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90A
-F9B1 ; [.3774.002D.0002.9234][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B1
-2F9E7 ; [.3776.002F.0002.9238][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E7
-2F9EA ; [.3776.0039.0002.927C][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EA
-2F9E8 ; [.3781.003F.0002.92D7][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E8
-F93F ; [.3774.0025.0002.9304][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93F
-F99B ; [.3774.002C.0002.934A][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99B
-2F9EE ; [.376F.0033.0002.958B][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EE
-F986 ; [.3774.002E.0002.95AD][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F986
-F9C6 ; [.377A.0031.0002.962E][.37F6.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C6
-F951 ; [.3774.002D.0002.964B][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F951
-FA09 ; [.376F.0037.0002.964D][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA09
-F959 ; [.3774.0026.0002.9675][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F959
-F9D3 ; [.3774.0023.0002.9678][.37FE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D3
-FAC6 ; [.377B.004E.0002.967C][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC6
-F9DC ; [.3774.0021.0002.9686][.37FE.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DC
-F9F1 ; [.3774.0027.0002.96A3][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F1
-FA2F ; [.3774.0025.0002.96B7][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2F
-F9B8 ; [.3774.0026.0002.96B8][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B8
-F9EA ; [.3774.0038.0002.96E2][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EA
-FA68 ; [.3771.0023.0002.96E3][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA68
-FAC7 ; [.3771.0023.0002.96E3][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC7
-F9B2 ; [.3774.002E.0002.96F6][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B2
-F949 ; [.3774.0028.0002.96F7][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F949
-2F9F5 ; [.377A.0031.0002.9723][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9F5
-F938 ; [.3774.002E.0002.9732][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F938
-F9B3 ; [.3774.002F.0002.9748][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B3
-FA1C ; [.377B.0054.0002.9756][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1C
-FAC8 ; [.377B.0054.0002.9756][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC8
-2F9FA ; [.3780.0034.0002.97E0][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9FA
-FA69 ; [.3781.0026.0002.97FF][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA69
-FACA ; [.3781.0026.0002.97FF][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACA
-F9B4 ; [.3774.0030.0002.9818][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B4
-FA6A ; [.3776.002E.0002.983B][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA6A
-FACC ; [.3776.002E.0002.983B][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACC
-F9D0 ; [.3774.002E.0002.985E][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D0
-2FA02 ; [.376F.005B.0002.98E2][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA02
-FA2A ; [.3776.0039.0002.98EF][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2A
-FA2B ; [.3778.005A.0002.98FC][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2B
-FA2C ; [.376F.0030.0002.9928][.37F6.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2C
-F91A ; [.3774.0027.0002.99F1][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91A
-F987 ; [.3774.0030.0002.9A6A][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F987
-FACD ; [.377B.004C.0002.9B12][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACD
-2FA0A ; [.377B.004C.0002.9B12][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA0A
-F939 ; [.3774.002F.0002.9B6F][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F939
-F9F2 ; [.3774.0028.0002.9C57][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F2
-FA2D ; [.3781.0025.0002.9DB4][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2D
-F93A ; [.3774.0030.0002.9DFA][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93A
-F920 ; [.3774.0028.0002.9E1E][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F920
-F940 ; [.3774.0026.0002.9E7F][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F940
-F988 ; [.3774.0031.0002.9E97][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F988
-F9F3 ; [.3774.0029.0002.9E9F][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F3
-2FA15 ; [.3775.0028.0002.9EBB][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA15
-F989 ; [.3774.0032.0002.9ECE][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F989
-2FA1C ; [.3776.004A.0002.9F3B][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA1C
-F9C4 ; [.3774.0021.0002.9F8D][.37F9.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C4
-FAD9 ; [.3774.002E.0002.9F8E][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAD9
-F907 ; [.376F.0056.0002.9F9C][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F907
-F908 ; [.376F.0056.0002.9F9C][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F908
-FACE ; [.376F.0056.0002.9F9C][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACE
+ entry => <<'ENTRY', # for DUCET v9.0.0
+F967 ; [.3BFC.0021.0002.4E0D][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
+FA70 ; [.3BFC.0032.0002.4E26][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
+F905 ; [.3BF5.0021.0002.4E32][.3C7B.0020.0002][.3CE6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
+2F801 ; [.3C07.0021.0002.4E38][.3C7C.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F801
+F95E ; [.3BF8.0021.0002.4E39][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95E
+F91B ; [.3BFA.0021.0002.4E82][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91B
+F9BA ; [.3BFA.0021.0002.4E86][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BA
+F977 ; [.3BFA.0021.0002.4EAE][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F977
+F9FD ; [.3BFE.0021.0002.4EC0][.3C87.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FD
+F9A8 ; [.3BFA.0021.0002.4EE4][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A8
+F92D ; [.3BFA.0021.0002.4F86][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92D
+F9B5 ; [.3BFA.0021.0002.4F8B][.3C7A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B5
+FA30 ; [.3BFB.0021.0002.4FAE][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA30
+2F805 ; [.3BFB.0021.0002.4FAE][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F805
+2F806 ; [.3C05.0023.0002.4FBB][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F806
+F965 ; [.3C06.0021.0002.4FBF][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F965
+2F807 ; [.3BFC.0022.0002.5002][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F807
+F9D4 ; [.3BFA.0022.0002.502B][.3C84.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D4
+2F809 ; [.3BFC.0022.0002.5099][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F809
+2F80B ; [.3BFE.0023.0002.50CF][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80B
+F9BB ; [.3BFA.0022.0002.50DA][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BB
+FA31 ; [.3BFE.0023.0002.50E7][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA31
+2F80A ; [.3BFE.0023.0002.50E7][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80A
+FA0C ; [.3C00.0021.0002.5140][.3C7B.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0C
+FA74 ; [.3C03.0021.0002.5145][.3C80.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA74
+FA32 ; [.3BFB.0021.0002.514D][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA32
+2F80E ; [.3BFB.0021.0002.514D][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80E
+2F814 ; [.3BF7.0022.0002.5167][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F814
+FA72 ; [.3C01.0024.0002.5168][.3C77.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA72
+F978 ; [.3BFA.0023.0002.5169][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F978
+F9D1 ; [.3BFA.0021.0002.516D][.3C84.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D1
+2F811 ; [.3BF5.0026.0002.5177][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F811
+FA75 ; [.3BF5.0024.0002.5180][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA75
+2F815 ; [.3C01.0021.0002.518D][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F815
+2F8D2 ; [.3BFB.0022.0002.5192][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D2
+2F8D3 ; [.3BFB.0022.0002.5195][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D3
+2F817 ; [.3C00.0023.0002.5197][.3C7F.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F817
+2F818 ; [.3C00.003B.0002.51A4][.3C81.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F818
+2F81A ; [.3BF8.0022.0002.51AC][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81A
+F92E ; [.3BFA.0021.0002.51B7][.3C74.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92E
+F979 ; [.3BFA.0024.0002.51C9][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F979
+F955 ; [.3BFA.0021.0002.51CC][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F955
+F954 ; [.3BFA.0021.0002.51DC][.3C85.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F954
+FA15 ; [.3C07.0022.0002.51DE][.3C86.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA15
+2F81E ; [.3C00.0023.0002.5203][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81E
+FA00 ; [.3C01.0021.0002.5207][.3C77.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA00
+2F850 ; [.3C01.0021.0002.5207][.3C77.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F850
+F99C ; [.3BFA.0022.0002.5217][.3C79.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99C
+F9DD ; [.3BFA.0022.0002.5229][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DD
+F9FF ; [.3C01.0022.0002.523A][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FF
+2F820 ; [.3BF5.0021.0002.523B][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F820
+2F822 ; [.3C07.0021.0002.5272][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F822
+2F823 ; [.3BFE.002D.0002.5277][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F823
+F9C7 ; [.3BFA.0021.0002.5289][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C7
+F98A ; [.3BFA.0021.0002.529B][.3C79.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98A
+F99D ; [.3BFA.0023.0002.52A3][.3C79.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99D
+FA76 ; [.3C00.0024.0002.52C7][.3C7F.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA76
+2F825 ; [.3C00.0024.0002.52C7][.3C7F.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F825
+FA33 ; [.3BFB.0023.0002.52C9][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA33
+2F826 ; [.3BFB.0023.0002.52C9][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F826
+F952 ; [.3BFA.0021.0002.52D2][.3C85.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F952
+F92F ; [.3BFA.0021.0002.52DE][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92F
+FA34 ; [.3BF5.0023.0002.52E4][.3C85.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA34
+2F827 ; [.3BF5.0023.0002.52E4][.3C85.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F827
+F97F ; [.3BFA.0023.0002.52F5][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97F
+FA77 ; [.3C01.0022.0002.52FA][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA77
+2F828 ; [.3C01.0022.0002.52FA][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F828
+2F829 ; [.3C06.0022.0002.5305][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F829
+F963 ; [.3BFC.0021.0002.5317][.3C80.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F963
+2F82B ; [.3BFC.0021.0002.5317][.3C80.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82B
+F9EB ; [.3BF7.0021.0002.533F][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EB
+2F82C ; [.3C07.0021.0002.5349][.3C82.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82C
+FA35 ; [.3BFC.0025.0002.5351][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA35
+2F82D ; [.3BFC.0025.0002.5351][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82D
+2F82E ; [.3BFC.0022.0002.535A][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82E
+2F82F ; [.3C01.0022.0002.5373][.3C85.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82F
+F91C ; [.3BFA.0022.0002.5375][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91C
+2F830 ; [.3C01.0021.0002.537D][.3C85.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F830
+2F831 ; [.3BF5.0028.0002.537F][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F831
+2F832 ; [.3BF5.0028.0002.537F][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F832
+2F833 ; [.3BF5.0028.0002.537F][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F833
+F96B ; [.3C03.0022.0002.53C3][.3C73.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96B
+2F836 ; [.3BF5.0022.0002.53CA][.3C85.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F836
+2F837 ; [.3BFE.005E.0002.53DF][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F837
+F906 ; [.3BF5.002A.0002.53E5][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F906
+2F839 ; [.3BF5.0021.0002.53EB][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F839
+2F83A ; [.3C01.0022.0002.53F1][.3C87.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83A
+F9DE ; [.3BFA.0024.0002.540F][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DE
+F9ED ; [.3BFA.0021.0002.541D][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9ED
+2F83D ; [.3C07.0021.0002.5438][.3C85.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83D
+F980 ; [.3BFA.0024.0002.5442][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F980
+2F83E ; [.3C01.0026.0002.5448][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83E
+2F83F ; [.3C01.0028.0002.5468][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83F
+2F840 ; [.3C00.0031.0002.54A2][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F840
+F99E ; [.3C00.0025.0002.54BD][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99E
+2F842 ; [.3BF8.0021.0002.5510][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F842
+2F843 ; [.3BF5.0022.0002.5553][.3C7A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F843
+2F844 ; [.3C07.0024.0002.5563][.3C73.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F844
+2F845 ; [.3BFE.0024.0002.5584][.3C77.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F845
+2F846 ; [.3BFE.0024.0002.5584][.3C77.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F846
+F90B ; [.3BFA.0021.0002.5587][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90B
+FA7A ; [.3C07.0022.0002.5599][.3C82.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7A
+2F847 ; [.3C07.0022.0002.5599][.3C82.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F847
+FA36 ; [.3BF5.0022.0002.559D][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA36
+FA78 ; [.3BF5.0022.0002.559D][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA78
+2F848 ; [.3BF6.0021.0002.55AB][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F848
+FA7B ; [.3C00.0022.0002.55E2][.3C7B.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7B
+FA37 ; [.3C05.0022.0002.5606][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA37
+2F84C ; [.3C05.0022.0002.5606][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84C
+FA38 ; [.3BF5.0026.0002.5668][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA38
+2F84F ; [.3BFC.0023.0002.5674][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84F
+F9A9 ; [.3BFA.0023.0002.56F9][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A9
+2F84B ; [.3BF8.0024.0002.5716][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84B
+2F855 ; [.3C07.0024.0002.578B][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F855
+2F852 ; [.3BFE.0021.0002.57CE][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F852
+2F853 ; [.3BFE.0021.0002.57F4][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F853
+2F857 ; [.3BFC.0023.0002.5831][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F857
+FA39 ; [.3BFC.0033.0002.5840][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA39
+FA10 ; [.3C03.0022.0002.585A][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA10
+FA7C ; [.3C03.0022.0002.585A][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7C
+F96C ; [.3BFE.0021.0002.585E][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96C
+FA3A ; [.3BFB.0021.0002.58A8][.3C80.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3A
+FA7D ; [.3BFC.0024.0002.58B3][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7D
+F94A ; [.3BFA.0021.0002.58D8][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94A
+F942 ; [.3BFA.0021.0002.58DF][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F942
+2F85C ; [.3BFC.0032.0002.5906][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85C
+2F85D ; [.3BF8.0021.0002.591A][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85D
+2F85E ; [.3BFB.0021.0002.5922][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85E
+FA7E ; [.3C00.0024.0002.5944][.3C77.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7E
+F90C ; [.3BF7.0023.0002.5948][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90C
+F909 ; [.3BF5.0024.0002.5951][.3C7A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F909
+FA7F ; [.3BFC.0025.0002.5954][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7F
+2F85F ; [.3BFE.0030.0002.5962][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85F
+F981 ; [.3BF7.0021.0002.5973][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F981
+2F862 ; [.3C07.0026.0002.59EC][.3C86.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F862
+2F863 ; [.3C00.002C.0002.5A1B][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F863
+2F864 ; [.3C05.0030.0002.5A27][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F864
+FA80 ; [.3BFC.0027.0002.5A62][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA80
+2F866 ; [.3BFC.002B.0002.5A66][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F866
+2F986 ; [.3C00.0025.0002.5AB5][.3C87.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F986
+2F869 ; [.3C00.0041.0002.5B08][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F869
+FA81 ; [.3C01.003C.0002.5B28][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA81
+2F86A ; [.3BFA.0029.0002.5B3E][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86A
+2F86B ; [.3BFA.0029.0002.5B3E][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86B
+FA04 ; [.3BF8.0021.0002.5B85][.3C74.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA04
+2F86D ; [.3C00.0029.0002.5BC3][.3C81.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86D
+2F86E ; [.3C03.003B.0002.5BD8][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86E
+F95F ; [.3BF7.0021.0002.5BE7][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95F
+F9AA ; [.3BF7.0021.0002.5BE7][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AA
+2F86F ; [.3BF7.0021.0002.5BE7][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86F
+F9BC ; [.3BFA.0023.0002.5BEE][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BC
+F9BD ; [.3BF7.0021.0002.5C3F][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BD
+2F877 ; [.3BF8.0028.0002.5C60][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F877
+F94B ; [.3BFA.0023.0002.5C62][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94B
+FA3B ; [.3C03.0021.0002.5C64][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3B
+F9DF ; [.3BFA.0026.0002.5C65][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DF
+2F879 ; [.3BFE.002A.0002.5CC0][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F879
+F9D5 ; [.3BFA.0023.0002.5D19][.3C84.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D5
+F921 ; [.3BFA.0021.0002.5D50][.3C73.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F921
+F9AB ; [.3BFA.0025.0002.5DBA][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AB
+2F881 ; [.3BFE.0021.0002.5DE1][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F881
+2F882 ; [.3BFE.0027.0002.5DE2][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F882
+2F884 ; [.3BFE.0022.0002.5DFD][.3C7B.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F884
+2F885 ; [.3BFE.0029.0002.5E28][.3C78.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F885
+2F886 ; [.3BFB.0025.0002.5E3D][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F886
+F98E ; [.3BF7.0021.0002.5E74][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98E
+FA01 ; [.3BF8.002B.0002.5EA6][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA01
+2F88C ; [.3BFC.0052.0002.5EB3][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88C
+2F88D ; [.3BFE.0025.0002.5EB6][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88D
+F9A2 ; [.3BFA.0021.0002.5EC9][.3C79.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A2
+F928 ; [.3BFA.0021.0002.5ECA][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F928
+2F88E ; [.3BFA.0021.0002.5ECA][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88E
+FA0B ; [.3BF5.0021.0002.5ED3][.3C7C.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0B
+F982 ; [.3BFA.0025.0002.5EEC][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F982
+F943 ; [.3BFA.0022.0002.5F04][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F943
+2F894 ; [.3BF8.004B.0002.5F22][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F894
+2F895 ; [.3BF8.004B.0002.5F22][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F895
+2F899 ; [.3C07.0025.0002.5F62][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F899
+FA84 ; [.3C03.0025.0002.5F69][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA84
+2F89A ; [.3C01.0027.0002.5F6B][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89A
+F9D8 ; [.3BFA.0021.0002.5F8B][.3C84.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D8
+F966 ; [.3BFC.0026.0002.5FA9][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F966
+FA85 ; [.3C00.0043.0002.5FAD][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA85
+2F89D ; [.3C00.002A.0002.5FCD][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89D
+2F89E ; [.3C01.0026.0002.5FD7][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89E
+F9A3 ; [.3BF7.0021.0002.5FF5][.3C79.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A3
+F960 ; [.3BF7.0024.0002.6012][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F960
+F9AC ; [.3BFA.0026.0002.601C][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AC
+2F8A0 ; [.3C00.0042.0002.6081][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A0
+FA3D ; [.3C07.0026.0002.6094][.3C7E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3D
+2F8A3 ; [.3C07.0026.0002.6094][.3C7E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A3
+2F8A5 ; [.3BF8.0022.0002.60C7][.3C7B.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A5
+FA86 ; [.3BFB.002D.0002.60D8][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA86
+F9B9 ; [.3C00.0025.0002.60E1][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B9
+FA88 ; [.3C00.002E.0002.6108][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA88
+F9D9 ; [.3BFA.0022.0002.6144][.3C84.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D9
+2F8A6 ; [.3C01.002A.0002.6148][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A6
+2F8A7 ; [.3C07.0027.0002.614C][.3C7C.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A7
+2F8A9 ; [.3C07.0027.0002.614C][.3C7C.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A9
+FA8A ; [.3C00.0047.0002.6160][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8A
+FA3E ; [.3BF5.0028.0002.6168][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3E
+2F8AA ; [.3BFA.0031.0002.617A][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AA
+FA3F ; [.3C01.0022.0002.618E][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3F
+FA89 ; [.3C01.0022.0002.618E][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA89
+2F8AB ; [.3C01.0022.0002.618E][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AB
+F98F ; [.3BFA.0021.0002.6190][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98F
+2F8AD ; [.3BFC.0028.0002.61A4][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AD
+2F8AE ; [.3C03.0030.0002.61AF][.3C73.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AE
+2F8AC ; [.3C07.0021.0002.61B2][.3C77.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AC
+2F8AF ; [.3BFB.0025.0002.61DE][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AF
+FA40 ; [.3C01.0022.0002.61F2][.3C87.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA40
+FA8B ; [.3C01.0022.0002.61F2][.3C87.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8B
+2F8B0 ; [.3C01.0022.0002.61F2][.3C87.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B0
+F90D ; [.3BFA.0022.0002.61F6][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90D
+2F8B1 ; [.3BFA.0022.0002.61F6][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B1
+F990 ; [.3BFA.0022.0002.6200][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F990
+2F8B2 ; [.3BFE.0026.0002.6210][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B2
+F9D2 ; [.3BFA.0022.0002.622E][.3C84.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D2
+FA8C ; [.3BF8.0029.0002.6234][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8C
+2F8B5 ; [.3C06.002B.0002.62B1][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B5
+F925 ; [.3BFA.0021.0002.62C9][.3C73.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F925
+F95B ; [.3BF7.0024.0002.62CF][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95B
+FA02 ; [.3C03.0026.0002.62D3][.3C77.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA02
+2F8B6 ; [.3BFC.0022.0002.62D4][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B6
+F973 ; [.3BFE.0022.0002.62FE][.3C85.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F973
+2F8B9 ; [.3BFB.0027.0002.633D][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B9
+2F8B7 ; [.3C00.0027.0002.6350][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B7
+2F8BB ; [.3BFE.0039.0002.6368][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BB
+F9A4 ; [.3BF7.0024.0002.637B][.3C79.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A4
+2F8BC ; [.3BFE.0029.0002.6383][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BC
+F975 ; [.3BFA.0021.0002.63A0][.3C75.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F975
+2F8C1 ; [.3C00.0025.0002.63A9][.3C77.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C1
+FA8D ; [.3C00.0030.0002.63C4][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8D
+FA8E ; [.3BFE.0030.0002.641C][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8E
+2F8BF ; [.3C01.0025.0002.6422][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BF
+2F8C3 ; [.3BFB.0021.0002.6469][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C3
+F991 ; [.3BF7.0022.0002.649A][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F991
+2F8C5 ; [.3C07.0029.0002.649D][.3C83.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C5
+F930 ; [.3BFA.0023.0002.64C4][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F930
+FA41 ; [.3BFB.0025.0002.654F][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA41
+2F8C8 ; [.3BFB.0025.0002.654F][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C8
+FA90 ; [.3C00.0030.0002.6556][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA90
+2F8C9 ; [.3BF5.0030.0002.656C][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C9
+F969 ; [.3BFE.0032.0002.6578][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F969
+F9BE ; [.3BFA.0025.0002.6599][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BE
+F983 ; [.3BFA.0028.0002.65C5][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F983
+2F8CB ; [.3BF5.0035.0002.65E3][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CB
+F9E0 ; [.3C00.0024.0002.6613][.3C79.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E0
+2F8CD ; [.3C01.0026.0002.6649][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CD
+FA12 ; [.3C03.0022.0002.6674][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA12
+FA91 ; [.3C03.0022.0002.6674][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA91
+F9C5 ; [.3C07.002A.0002.6688][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C5
+FA43 ; [.3BFE.002B.0002.6691][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA43
+2F8CF ; [.3BFE.002B.0002.6691][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CF
+FA06 ; [.3C06.0022.0002.66B4][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA06
+F98B ; [.3BFA.0022.0002.66C6][.3C79.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98B
+F901 ; [.3BF5.0033.0002.66F4][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F901
+2F8CC ; [.3BFE.002D.0002.66F8][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CC
+2F8D4 ; [.3C03.0023.0002.6700][.3C7E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D4
+F929 ; [.3BFA.0022.0002.6717][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F929
+FA92 ; [.3BFA.0022.0002.6717][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA92
+2F8D8 ; [.3BFA.0022.0002.6717][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D8
+FA93 ; [.3BFB.0025.0002.671B][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA93
+2F8D9 ; [.3BFB.0025.0002.671B][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D9
+F9E1 ; [.3BFA.0028.0002.674E][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E1
+2F8DC ; [.3C06.0025.0002.6753][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DC
+FA94 ; [.3C01.002E.0002.6756][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA94
+2F8DB ; [.3BF5.0038.0002.675E][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DB
+F9C8 ; [.3BF7.0021.0002.677B][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C8
+F9F4 ; [.3BFA.0021.0002.6797][.3C87.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F4
+F9C9 ; [.3BFA.0023.0002.67F3][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C9
+F9DA ; [.3BFA.0023.0002.6817][.3C84.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DA
+F97A ; [.3BFA.0025.0002.6881][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97A
+FA44 ; [.3BFB.0027.0002.6885][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA44
+2F8E2 ; [.3BFB.0027.0002.6885][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E2
+F9E2 ; [.3BFA.0029.0002.68A8][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E2
+2F8E8 ; [.3BFE.0062.0002.6942][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E8
+2F8EA ; [.3BF5.002A.0002.69EA][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EA
+F914 ; [.3C00.0028.0002.6A02][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F914
+F95C ; [.3C00.0028.0002.6A02][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95C
+F9BF ; [.3C00.0028.0002.6A02][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BF
+F94C ; [.3BFA.0024.0002.6A13][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94C
+F931 ; [.3BFA.0024.0002.6AD3][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F931
+2F8ED ; [.3C01.0021.0002.6ADB][.3C85.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8ED
+F91D ; [.3BFA.0023.0002.6B04][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91D
+2F8EF ; [.3C03.0028.0002.6B21][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EF
+2F8F1 ; [.3C07.0025.0002.6B54][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F1
+2F8F3 ; [.3BFE.0023.0002.6B72][.3C78.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F3
+F98C ; [.3BFA.0023.0002.6B77][.3C79.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98C
+F9A5 ; [.3BFA.0023.0002.6BAE][.3C79.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A5
+F970 ; [.3BFE.0023.0002.6BBA][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F970
+FA96 ; [.3BFE.0023.0002.6BBA][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA96
+2F8F5 ; [.3BFE.0023.0002.6BBA][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F5
+2F8FA ; [.3BFC.0025.0002.6C4E][.3C77.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FA
+F972 ; [.3C03.0024.0002.6C88][.3C87.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F972
+2F8FC ; [.3C00.002B.0002.6CBF][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FC
+F968 ; [.3C06.0024.0002.6CCC][.3C87.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F968
+F9E3 ; [.3BF7.0022.0002.6CE5][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E3
+F915 ; [.3BFA.0021.0002.6D1B][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F915
+FA05 ; [.3BF8.002A.0002.6D1E][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA05
+2F900 ; [.3C06.0029.0002.6D3E][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F900
+F9CA ; [.3BFA.0025.0002.6D41][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CA
+FA97 ; [.3BFA.0025.0002.6D41][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA97
+2F902 ; [.3BFA.0025.0002.6D41][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F902
+2F903 ; [.3C07.002E.0002.6D69][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F903
+F92A ; [.3BFA.0023.0002.6D6A][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92A
+FA45 ; [.3C07.002A.0002.6D77][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA45
+2F901 ; [.3C07.002A.0002.6D77][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F901
+2F904 ; [.3C03.0025.0002.6D78][.3C87.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F904
+2F905 ; [.3C00.0022.0002.6D85][.3C79.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F905
+F9F5 ; [.3BFA.0022.0002.6DCB][.3C87.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F5
+F94D ; [.3BFA.0025.0002.6DDA][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94D
+F9D6 ; [.3BFA.0024.0002.6DEA][.3C84.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D6
+2F90E ; [.3C00.0026.0002.6DF9][.3C77.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90E
+FA46 ; [.3C01.002C.0002.6E1A][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA46
+2F908 ; [.3C07.002B.0002.6E2F][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F908
+2F909 ; [.3C00.002B.0002.6E6E][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F909
+F9CB ; [.3BFA.0026.0002.6E9C][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CB
+F9EC ; [.3BF7.0022.0002.6EBA][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EC
+FA99 ; [.3C01.002B.0002.6ECB][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA99
+2F90B ; [.3C01.002B.0002.6ECB][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90B
+F904 ; [.3C07.0022.0002.6ED1][.3C7C.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F904
+F94E ; [.3BFA.0026.0002.6F0F][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94E
+FA47 ; [.3C07.0026.0002.6F22][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA47
+FA9A ; [.3C07.0026.0002.6F22][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9A
+F992 ; [.3BFA.0024.0002.6F23][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F992
+2F90F ; [.3C01.0033.0002.6F6E][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90F
+2F912 ; [.3BFC.003C.0002.6FC6][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F912
+F922 ; [.3BFA.0025.0002.6FEB][.3C73.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F922
+F984 ; [.3BFA.002A.0002.6FFE][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F984
+2F915 ; [.3C00.002D.0002.701B][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F915
+FA9B ; [.3C01.003D.0002.701E][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9B
+2F914 ; [.3C01.003D.0002.701E][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F914
+2F835 ; [.3C07.002D.0002.7070][.3C7E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F835
+2F918 ; [.3C01.002B.0002.707D][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F918
+F9FB ; [.3C01.002C.0002.7099][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FB
+2F91A ; [.3C05.0028.0002.70AD][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F91A
+F99F ; [.3BFA.0025.0002.70C8][.3C79.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99F
+F916 ; [.3BFA.0022.0002.70D9][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F916
+F993 ; [.3BFA.0025.0002.7149][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F993
+FA48 ; [.3C01.002D.0002.716E][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA48
+FA9C ; [.3C01.002D.0002.716E][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9C
+F9C0 ; [.3BFA.0026.0002.71CE][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C0
+F9EE ; [.3BFA.0023.0002.71D0][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EE
+F932 ; [.3BFA.0027.0002.7210][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F932
+F91E ; [.3BFA.0026.0002.721B][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91E
+2F920 ; [.3C03.0036.0002.7228][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F920
+FA9E ; [.3C01.0028.0002.7235][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9E
+2F921 ; [.3C01.0028.0002.7235][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F921
+F946 ; [.3BFA.0023.0002.7262][.3C7E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F946
+2F924 ; [.3BFE.0030.0002.7280][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F924
+FA9F ; [.3BFC.0027.0002.72AF][.3C77.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9F
+F9FA ; [.3BFE.0035.0002.72C0][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FA
+F92B ; [.3BFA.0024.0002.72FC][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92B
+FA16 ; [.3C01.002E.0002.732A][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA16
+FAA0 ; [.3C01.002E.0002.732A][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA0
+F9A7 ; [.3BFA.0021.0002.7375][.3C79.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A7
+2F928 ; [.3BF8.0023.0002.737A][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F928
+F961 ; [.3BFE.0021.0002.7387][.3C7B.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F961
+F9DB ; [.3BFE.0021.0002.7387][.3C7B.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DB
+2F929 ; [.3C00.0025.0002.738B][.3C7C.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F929
+F9AD ; [.3BFA.0027.0002.73B2][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AD
+F917 ; [.3BFA.0023.0002.73DE][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F917
+F9E4 ; [.3BFA.002D.0002.7406][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E4
+F9CC ; [.3BFA.0028.0002.7409][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CC
+FA4A ; [.3C05.002B.0002.7422][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4A
+2F92F ; [.3C00.003D.0002.745C][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F92F
+F9AE ; [.3C07.002D.0002.7469][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AE
+FAA1 ; [.3C01.0057.0002.7471][.3C77.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA1
+2F930 ; [.3C01.0057.0002.7471][.3C77.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F930
+F994 ; [.3BFA.0026.0002.7489][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F994
+F9EF ; [.3BFA.0024.0002.7498][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EF
+2F932 ; [.3BF5.003A.0002.74CA][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F932
+F9CD ; [.3BFA.002A.0002.7559][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CD
+F976 ; [.3BFA.0022.0002.7565][.3C75.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F976
+F962 ; [.3C00.002C.0002.7570][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F962
+2F938 ; [.3C00.002C.0002.7570][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F938
+F9E5 ; [.3BFA.002F.0002.75E2][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E5
+2F93A ; [.3C00.0059.0002.7610][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F93A
+FAA5 ; [.3C00.0023.0002.761F][.3C7B.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA5
+F9C1 ; [.3BFA.0027.0002.7642][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C1
+F90E ; [.3BFA.0023.0002.7669][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90E
+FA17 ; [.3C00.0022.0002.76CA][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA17
+FAA6 ; [.3C00.0022.0002.76CA][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA6
+FAA7 ; [.3BFE.002B.0002.76DB][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA7
+F933 ; [.3BFA.0028.0002.76E7][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F933
+FAA8 ; [.3C01.0021.0002.76F4][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA8
+2F940 ; [.3C01.0021.0002.76F4][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F940
+F96D ; [.3BFE.002C.0002.7701][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96D
+2F945 ; [.3C01.0033.0002.771E][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F945
+FAAA ; [.3C03.0023.0002.7740][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAA
+2F94A ; [.3C01.0034.0002.778B][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94A
+F9CE ; [.3BFA.002C.0002.786B][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CE
+F93B ; [.3BFA.0021.0002.788C][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93B
+2F94F ; [.3BFA.0021.0002.788C][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94F
+FA4B ; [.3BFC.0038.0002.7891][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4B
+F947 ; [.3BFA.0024.0002.78CA][.3C7E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F947
+F964 ; [.3BFC.0032.0002.78FB][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F964
+F985 ; [.3BFA.002B.0002.792A][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F985
+FA4C ; [.3BFE.0046.0002.793E][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4C
+FA4E ; [.3BF5.004C.0002.7948][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4E
+FA4D ; [.3C01.0035.0002.7949][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4D
+FA4F ; [.3C00.0032.0002.7950][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4F
+FA50 ; [.3C01.0039.0002.7956][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA50
+2F953 ; [.3C01.0039.0002.7956][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F953
+FA51 ; [.3C03.0023.0002.795D][.3C80.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA51
+FA19 ; [.3BFE.002C.0002.795E][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA19
+FA1A ; [.3BFE.0037.0002.7965][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1A
+F93C ; [.3BFA.0022.0002.797F][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93C
+FA52 ; [.3C07.0027.0002.798D][.3C7C.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA52
+FA53 ; [.3C01.0044.0002.798E][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA53
+FA1B ; [.3BFC.0028.0002.798F][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1B
+2F956 ; [.3BFC.0028.0002.798F][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F956
+F9B6 ; [.3BFA.0023.0002.79AE][.3C7A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B6
+F995 ; [.3BF7.0023.0002.79CA][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F995
+2F957 ; [.3C03.0024.0002.79EB][.3C80.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F957
+F956 ; [.3BFA.0023.0002.7A1C][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F956
+FA54 ; [.3BF5.0025.0002.7A40][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA54
+2F959 ; [.3BF5.0025.0002.7A40][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F959
+FA55 ; [.3BF8.0022.0002.7A81][.3C7B.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA55
+F9F7 ; [.3BFA.0022.0002.7ACB][.3C87.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F7
+F9F8 ; [.3BFA.0023.0002.7B20][.3C87.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F8
+FA56 ; [.3C01.0027.0002.7BC0][.3C77.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA56
+FAAD ; [.3C01.0027.0002.7BC0][.3C77.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAD
+2F962 ; [.3C01.003D.0002.7BC6][.3C77.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F962
+2F963 ; [.3C03.0026.0002.7BC9][.3C80.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F963
+F9A6 ; [.3BFA.0025.0002.7C3E][.3C79.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A6
+F944 ; [.3BFA.0026.0002.7C60][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F944
+F9F9 ; [.3BFA.0024.0002.7C92][.3C87.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F9
+FA1D ; [.3C01.0047.0002.7CBE][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1D
+FA03 ; [.3BF8.0029.0002.7CD6][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA03
+F97B ; [.3BFA.0029.0002.7CE7][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97B
+2F96A ; [.3BF5.004F.0002.7D00][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96A
+F9CF ; [.3BF7.0022.0002.7D10][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CF
+F96A ; [.3BFE.0023.0002.7D22][.3C74.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96A
+F94F ; [.3BFA.0028.0002.7D2F][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94F
+FAAF ; [.3C01.0063.0002.7D5B][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAF
+2F96C ; [.3BFC.0034.0002.7D63][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96C
+F93D ; [.3BFA.0023.0002.7DA0][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93D
+F957 ; [.3BFA.0024.0002.7DBE][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F957
+2F96E ; [.3C03.0030.0002.7DC7][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96E
+F996 ; [.3BFA.0027.0002.7DF4][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F996
+FA57 ; [.3BFA.0027.0002.7DF4][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA57
+FAB0 ; [.3BFA.0027.0002.7DF4][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB0
+FA58 ; [.3C01.0036.0002.7E09][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA58
+F950 ; [.3BFA.0029.0002.7E37][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F950
+FA59 ; [.3BFC.0026.0002.7E41][.3C77.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA59
+2F970 ; [.3BFE.0052.0002.7E45][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F970
+FAB1 ; [.3BFC.0035.0002.7F3E][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB1
+FA5A ; [.3BFE.0035.0002.7F72][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5A
+F9E6 ; [.3BFA.0031.0002.7F79][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E6
+F90F ; [.3BFA.0024.0002.7F85][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90F
+F9AF ; [.3BFA.0029.0002.7F9A][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AF
+FA1E ; [.3C00.0036.0002.7FBD][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1E
+2F979 ; [.3BF5.005A.0002.7FFA][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F979
+F934 ; [.3BFA.0029.0002.8001][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F934
+FA5B ; [.3C01.0033.0002.8005][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5B
+FAB2 ; [.3C01.0033.0002.8005][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB2
+2F97A ; [.3C01.0033.0002.8005][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97A
+F9B0 ; [.3BFA.002B.0002.8046][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B0
+F997 ; [.3BFA.0028.0002.806F][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F997
+2F97F ; [.3C03.0028.0002.8070][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97F
+F945 ; [.3BFA.0027.0002.807E][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F945
+F953 ; [.3BFA.0022.0002.808B][.3C85.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F953
+2F8D6 ; [.3BF7.0023.0002.80AD][.3C80.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D6
+2F982 ; [.3C00.0024.0002.80B2][.3C84.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F982
+2F985 ; [.3BFC.003F.0002.813E][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F985
+F926 ; [.3BFA.0022.0002.81D8][.3C73.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F926
+F9F6 ; [.3BFA.0024.0002.81E8][.3C87.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F6
+FA5C ; [.3C03.002A.0002.81ED][.3C83.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5C
+2F893 ; [.3C00.002E.0002.8201][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F893
+2F98B ; [.3C00.002E.0002.8201][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F98B
+F97C ; [.3BFA.002A.0002.826F][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97C
+2F990 ; [.3C00.0037.0002.828B][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F990
+2F991 ; [.3C01.003B.0002.829D][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F991
+2F993 ; [.3C07.0029.0002.82B1][.3C7C.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F993
+2F994 ; [.3BFC.0035.0002.82B3][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F994
+2F995 ; [.3C00.0029.0002.82BD][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F995
+F974 ; [.3C00.0023.0002.82E5][.3C75.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F974
+2F998 ; [.3C00.0023.0002.82E5][.3C75.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F998
+2F996 ; [.3BF5.003A.0002.82E6][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F996
+2F999 ; [.3C03.002E.0002.831D][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F999
+2F99C ; [.3C00.004C.0002.8323][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99C
+F9FE ; [.3BF8.0022.0002.8336][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FE
+FAB3 ; [.3C07.0034.0002.8352][.3C7C.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB3
+2F99D ; [.3BFB.002A.0002.83BD][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99D
+F93E ; [.3BFA.0024.0002.83C9][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93E
+2F9A1 ; [.3BF5.0023.0002.83CA][.3C80.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A1
+2F9A2 ; [.3BF5.0025.0002.83CC][.3C84.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A2
+2F9A3 ; [.3C03.0029.0002.83DC][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A3
+FAB4 ; [.3C07.002A.0002.83EF][.3C7C.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB4
+F958 ; [.3BFA.0025.0002.83F1][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F958
+F918 ; [.3BFA.0025.0002.843D][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F918
+F96E ; [.3C00.0023.0002.8449][.3C79.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96E
+FA5F ; [.3C01.0034.0002.8457][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5F
+2F99F ; [.3C01.0034.0002.8457][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99F
+F999 ; [.3BFA.0029.0002.84EE][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F999
+2F9A8 ; [.3C06.002A.0002.84F1][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A8
+F9C2 ; [.3BFA.002A.0002.84FC][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C2
+2F9AC ; [.3C00.0062.0002.8564][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9AC
+F923 ; [.3BFA.0028.0002.85CD][.3C73.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F923
+F9F0 ; [.3BFA.0025.0002.85FA][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F0
+F935 ; [.3BFA.002A.0002.8606][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F935
+F91F ; [.3BFA.0027.0002.862D][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91F
+F910 ; [.3BFA.0025.0002.863F][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F910
+2F9B3 ; [.3C07.0023.0002.8650][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B3
+F936 ; [.3BFA.002B.0002.865C][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F936
+2F9B4 ; [.3BFA.002B.0002.865C][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B4
+2F9B5 ; [.3C07.0025.0002.8667][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B5
+2F9B7 ; [.3C03.0034.0002.86A9][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B7
+2F9BC ; [.3C01.0026.0002.8728][.3C77.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9BC
+F911 ; [.3BFA.0026.0002.87BA][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F911
+F927 ; [.3BFA.0023.0002.881F][.3C73.0020.0002][.3CE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F927
+FA08 ; [.3C07.0025.0002.884C][.3C74.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA08
+2F9C4 ; [.3C00.0030.0002.8863][.3C86.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9C4
+F9A0 ; [.3BFA.0026.0002.88C2][.3C79.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A0
+F9E7 ; [.3BFA.0034.0002.88CF][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E7
+F9E8 ; [.3BFA.0035.0002.88E1][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E8
+F912 ; [.3BFA.0027.0002.88F8][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F912
+FA60 ; [.3BF5.0028.0002.8910][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA60
+FAB6 ; [.3BF5.0034.0002.8941][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB6
+F924 ; [.3BFA.0029.0002.8964][.3C73.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F924
+FAB7 ; [.3BFC.002D.0002.8986][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB7
+FA0A ; [.3BF5.0028.0002.898B][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0A
+FA61 ; [.3BFE.0037.0002.8996][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA61
+FAB8 ; [.3BFE.0037.0002.8996][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB8
+2F9CF ; [.3BFE.0031.0002.8AA0][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9CF
+F96F ; [.3BFE.002B.0002.8AAA][.3C77.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96F
+F9A1 ; [.3BFE.002B.0002.8AAA][.3C77.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A1
+FAB9 ; [.3C01.0046.0002.8ABF][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB9
+FABB ; [.3C03.0026.0002.8ACB][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABB
+F97D ; [.3BFA.002B.0002.8AD2][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97D
+F941 ; [.3BFA.0021.0002.8AD6][.3C7B.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F941
+FABE ; [.3C00.0046.0002.8AED][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABE
+2F9D0 ; [.3C00.0046.0002.8AED][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D0
+FA22 ; [.3C01.0030.0002.8AF8][.3C78.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA22
+FABA ; [.3C01.0030.0002.8AF8][.3C78.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABA
+F95D ; [.3BF7.0021.0002.8AFE][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95D
+FABD ; [.3BF7.0021.0002.8AFE][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABD
+FA62 ; [.3C00.0022.0002.8B01][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA62
+FABC ; [.3C00.0022.0002.8B01][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABC
+FA63 ; [.3BF5.002D.0002.8B39][.3C85.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA63
+FABF ; [.3BF5.002D.0002.8B39][.3C85.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABF
+F9FC ; [.3BFE.002C.0002.8B58][.3C87.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FC
+F95A ; [.3BF8.002A.0002.8B80][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95A
+FAC0 ; [.3BFC.0023.0002.8B8A][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC0
+2F9D1 ; [.3BFC.0023.0002.8B8A][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D1
+F900 ; [.3BF5.0057.0002.8C48][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F900
+2F9D2 ; [.3BFE.003B.0002.8C55][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D2
+2F9D4 ; [.3BF5.002E.0002.8CAB][.3C7C.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D4
+2F9D5 ; [.3BFC.0032.0002.8CC1][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D5
+F948 ; [.3BFA.0025.0002.8CC2][.3C7E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F948
+F903 ; [.3BF5.0039.0002.8CC8][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F903
+FA64 ; [.3BFC.002D.0002.8CD3][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA64
+FA65 ; [.3C01.002B.0002.8D08][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA65
+FAC1 ; [.3C01.002B.0002.8D08][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC1
+2F9D6 ; [.3BF5.0039.0002.8D1B][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D6
+2F9D7 ; [.3BF5.0058.0002.8D77][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D7
+2F9DA ; [.3BFC.0027.0002.8DCB][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DA
+F937 ; [.3BFA.002C.0002.8DEF][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F937
+F902 ; [.3C03.002D.0002.8ECA][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F902
+F998 ; [.3BFA.002A.0002.8F26][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F998
+F9D7 ; [.3BFA.0026.0002.8F2A][.3C84.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D7
+FAC2 ; [.3BFE.004F.0002.8F38][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC2
+2F9DF ; [.3BFE.004F.0002.8F38][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DF
+FA07 ; [.3BFC.002F.0002.8F3B][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA07
+F98D ; [.3BFA.0026.0002.8F62][.3C79.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98D
+F971 ; [.3C01.003E.0002.8FB0][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F971
+F99A ; [.3BFA.002B.0002.9023][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99A
+FA25 ; [.3C00.0027.0002.9038][.3C87.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA25
+FA67 ; [.3C00.0027.0002.9038][.3C87.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA67
+FAC3 ; [.3C01.0041.0002.9072][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC3
+F9C3 ; [.3BFA.002B.0002.907C][.3C7F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C3
+F913 ; [.3BFA.0028.0002.908F][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F913
+FA2E ; [.3BFA.0028.0002.90DE][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2E
+FA26 ; [.3BF8.0045.0002.90FD][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA26
+F919 ; [.3BFA.0026.0002.916A][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F919
+F9B7 ; [.3BFA.0024.0002.91B4][.3C7A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B7
+F9E9 ; [.3BFA.0036.0002.91CC][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E9
+F97E ; [.3BFA.002D.0002.91CF][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97E
+F90A ; [.3BF5.0021.0002.91D1][.3C87.0020.0002][.3CE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90A
+F9B1 ; [.3BFA.002D.0002.9234][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B1
+2F9E7 ; [.3BFC.002F.0002.9238][.3C73.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E7
+2F9EA ; [.3BFC.0039.0002.927C][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EA
+2F9E8 ; [.3C07.003F.0002.92D7][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E8
+F93F ; [.3BFA.0025.0002.9304][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93F
+F99B ; [.3BFA.002C.0002.934A][.3C79.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99B
+2F9EE ; [.3BF5.0033.0002.958B][.3C74.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EE
+F986 ; [.3BFA.002E.0002.95AD][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F986
+F9C6 ; [.3C00.0031.0002.962E][.3C7C.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C6
+F951 ; [.3BFA.002D.0002.964B][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F951
+FA09 ; [.3BF5.0037.0002.964D][.3C73.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA09
+F959 ; [.3BFA.0026.0002.9675][.3C85.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F959
+F9D3 ; [.3BFA.0023.0002.9678][.3C84.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D3
+FAC6 ; [.3C01.004E.0002.967C][.3C77.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC6
+F9DC ; [.3BFA.0021.0002.9686][.3C84.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DC
+F9F1 ; [.3BFA.0027.0002.96A3][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F1
+FA2F ; [.3BFA.0025.0002.96B7][.3C7A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2F
+F9B8 ; [.3BFA.0026.0002.96B8][.3C7A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B8
+F9EA ; [.3BFA.0038.0002.96E2][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EA
+FA68 ; [.3BF7.0023.0002.96E3][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA68
+FAC7 ; [.3BF7.0023.0002.96E3][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC7
+F9B2 ; [.3BFA.002E.0002.96F6][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B2
+F949 ; [.3BFA.0028.0002.96F7][.3C7E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F949
+2F9F5 ; [.3C00.0031.0002.9723][.3C80.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9F5
+F938 ; [.3BFA.002E.0002.9732][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F938
+F9B3 ; [.3BFA.002F.0002.9748][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B3
+FA1C ; [.3C01.0054.0002.9756][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1C
+FAC8 ; [.3C01.0054.0002.9756][.3C77.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC8
+2F9FA ; [.3C06.0034.0002.97E0][.3C87.0020.0002][.3CD8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9FA
+FA69 ; [.3C07.0026.0002.97FF][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA69
+FACA ; [.3C07.0026.0002.97FF][.3C75.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACA
+F9B4 ; [.3BFA.0030.0002.9818][.3C79.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B4
+FA6A ; [.3BFC.002E.0002.983B][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA6A
+FACC ; [.3BFC.002E.0002.983B][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACC
+F9D0 ; [.3BFA.002E.0002.985E][.3C84.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D0
+2FA02 ; [.3BF5.005B.0002.98E2][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA02
+FA2A ; [.3BFC.0039.0002.98EF][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2A
+FA2B ; [.3BFE.005A.0002.98FC][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2B
+FA2C ; [.3BF5.0030.0002.9928][.3C7C.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2C
+F91A ; [.3BFA.0027.0002.99F1][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91A
+F987 ; [.3BFA.0030.0002.9A6A][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F987
+FACD ; [.3C01.004C.0002.9B12][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACD
+2FA0A ; [.3C01.004C.0002.9B12][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA0A
+F939 ; [.3BFA.002F.0002.9B6F][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F939
+F9F2 ; [.3BFA.0028.0002.9C57][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F2
+FA2D ; [.3C07.0025.0002.9DB4][.3C73.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2D
+F93A ; [.3BFA.0030.0002.9DFA][.3C7B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93A
+F920 ; [.3BFA.0028.0002.9E1E][.3C73.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F920
+F940 ; [.3BFA.0026.0002.9E7F][.3C7B.0020.0002][.3CD1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F940
+F988 ; [.3BFA.0031.0002.9E97][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F988
+F9F3 ; [.3BFA.0029.0002.9E9F][.3C87.0020.0002][.3CD4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F3
+2FA15 ; [.3BFB.0028.0002.9EBB][.3C73.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA15
+F989 ; [.3BFA.0032.0002.9ECE][.3C79.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F989
+2FA1C ; [.3BFC.004A.0002.9F3B][.3C87.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA1C
+F9C4 ; [.3BFA.0021.0002.9F8D][.3C7F.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C4
+FAD9 ; [.3BFA.002E.0002.9F8E][.3C7B.0020.0002][.3CE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAD9
+F907 ; [.3BF5.0056.0002.9F9C][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F907
+F908 ; [.3BF5.0056.0002.9F9C][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F908
+FACE ; [.3BF5.0056.0002.9F9C][.3C80.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kok.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kok.pl
index a49d361d012..e771f84bd52 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kok.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/kok.pl
@@ -1,13 +1,13 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0902 ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
-0901 ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
-0903 ; [.235B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.235B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.239D.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.239D.0020.0002][.FFF1.0000.0000][.0000.00BC.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.239D.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-0939 ; [.239D.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0902 ; [.265B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901 ; [.265B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
+0903 ; [.265B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
+0950 ; [.265B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+0933 ; [.269E.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
+0934 ; [.269E.0020.0002][.FFF1.0000.0000][.0000.00C2.0002] # DEVANAGARI LETTER LLLA
+0915 094D 0937 ; [.269E.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
+0939 ; [.269E.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ln.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ln.pl
index 694e83698b8..9c9dd1f4595 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ln.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ln.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-025B ; [.196F.0020.0002] # LATIN SMALL LETTER OPEN E
-0190 ; [.196F.0020.0008] # LATIN CAPITAL LETTER OPEN E
-2107 ; [.196F.0020.000A] # EULER CONSTANT
-1D4B ; [.196F.0020.0014] # MODIFIER LETTER SMALL OPEN E
-0254 ; [.1AA1.0021.0002] # LATIN SMALL LETTER OPEN O
-0186 ; [.1AA1.0021.0008] # LATIN CAPITAL LETTER OPEN O
-1D53 ; [.1AA1.0021.0014] # MODIFIER LETTER SMALL OPEN O
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+025B ; [.1CAB.0020.0002] # LATIN SMALL LETTER OPEN E
+0190 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER OPEN E
+2107 ; [.1CAB.0020.000A] # EULER CONSTANT
+1D4B ; [.1CAB.0020.0014] # MODIFIER LETTER SMALL OPEN E
+0254 ; [.1DDD.0021.0002] # LATIN SMALL LETTER OPEN O
+0186 ; [.1DDD.0021.0008] # LATIN CAPITAL LETTER OPEN O
+1D53 ; [.1DDD.0021.0014] # MODIFIER LETTER SMALL OPEN O
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lt.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lt.pl
index a4630feab32..852a691dea4 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lt.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lt.pl
@@ -1,48 +1,48 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# in cldr test/lt.xml why I-dot-acute > I-dot though i-dot-acute < i-dot ?
- entry => <<'ENTRY', # for DUCET v7.0.0
-0049 0307 ; [.19F6.0020.0008][.0000.002E.0002] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0049 0307 ; [.1D32.0020.0008][.0000.002E.0002] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
0307 0300 ; [.0000.0025.0002] # <COMBINING DOT ABOVE, COMBINING GRAVE ACCENT>
0307 0301 ; [.0000.0024.0002] # <COMBINING DOT ABOVE, COMBINING ACUTE ACCENT>
0307 0303 ; [.0000.002D.0002] # <COMBINING DOT ABOVE, COMBINING TILDE>
-0105 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
-0061 0328 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
-0104 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0041 0328 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-010D ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0119 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0117 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0065 0307 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0116 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0045 0307 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-012F ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
-0069 0328 ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
-012E ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
-0049 0328 ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
-0079 ; [.19F6.0022.0002] # LATIN SMALL LETTER Y
-0059 ; [.19F6.0022.0008] # LATIN CAPITAL LETTER Y
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0173 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
-0075 0328 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
-0172 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
-0055 0328 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
-016B ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+0105 ; [.1C47.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
+0061 0328 ; [.1C47.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
+0104 ; [.1C47.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
+0041 0328 ; [.1C47.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
+010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0119 ; [.1CAA.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1CAA.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1CAA.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1CAA.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0117 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
+0065 0307 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
+0116 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
+0045 0307 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
+012F ; [.1D32.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
+0069 0328 ; [.1D32.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
+012E ; [.1D32.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
+0049 0328 ; [.1D32.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
+0079 ; [.1D32.0022.0002] # LATIN SMALL LETTER Y
+0059 ; [.1D32.0022.0008] # LATIN CAPITAL LETTER Y
+0161 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0173 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
+0075 0328 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
+0172 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
+0055 0328 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
+016B ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+017E ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lv.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lv.pl
index ebd25078db2..6833621c28f 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lv.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/lv.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-010D ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.1952.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.1952.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0123 ; [.19DB.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0067 0327 ; [.19DB.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0122 ; [.19DB.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
-0047 0327 ; [.19DB.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
-0137 ; [.1A3A.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
-006B 0327 ; [.1A3A.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
-0136 ; [.1A3A.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
-004B 0327 ; [.1A3A.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
-013C ; [.1A6D.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
-006C 0327 ; [.1A6D.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
-013B ; [.1A6D.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
-004C 0327 ; [.1A6D.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
-0146 ; [.1AA0.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
-006E 0327 ; [.1AA0.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
-0145 ; [.1AA0.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
-004E 0327 ; [.1AA0.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
-0157 ; [.1B32.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0072 0327 ; [.1B32.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0156 ; [.1B32.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
-0052 0327 ; [.1B32.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
-0161 ; [.1B56.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B56.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B56.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B56.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BFF.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BFF.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BFF.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BFF.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+010D ; [.1C8E.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C8E.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C8E.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C8E.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0123 ; [.1D17.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
+0067 0327 ; [.1D17.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
+0122 ; [.1D17.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
+0047 0327 ; [.1D17.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
+0137 ; [.1D76.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
+006B 0327 ; [.1D76.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
+0136 ; [.1D76.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
+004B 0327 ; [.1D76.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
+013C ; [.1DA9.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
+006C 0327 ; [.1DA9.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
+013B ; [.1DA9.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
+004C 0327 ; [.1DA9.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
+0146 ; [.1DDC.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
+006E 0327 ; [.1DDC.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
+0145 ; [.1DDC.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
+004E 0327 ; [.1DDC.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
+0157 ; [.1E70.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
+0072 0327 ; [.1E70.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
+0156 ; [.1E70.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
+0052 0327 ; [.1E70.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
+0161 ; [.1E94.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E94.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E94.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E94.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1F3D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1F3D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F3D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1F3D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mk.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mk.pl
index 16efe353994..c23db9dcc39 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mk.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mk.pl
@@ -1,45 +1,20 @@
+{
- locale_version => 1.14,
- suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0415, 0x0435, 0x0416, 0x0436,
- 0x0417, 0x0437, 0x0418, 0x0438, 0x0406, 0x0456, 0x041E, 0x043E,
- 0x04E8, 0x04E9, 0x0423, 0x0443, 0x0427, 0x0447, 0x042B, 0x044B,
- 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E5 ; [.1D5A.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1D5A.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1D5A.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1D5A.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.25,
+ suppress => [0x0418, 0x0438],
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0453 ; [.2056.0020.0002] # CYRILLIC SMALL LETTER GJE
+0433 0301 ; [.2056.0020.0002] # CYRILLIC SMALL LETTER GJE
+0433 0341 ; [.2056.0020.0002] # CYRILLIC SMALL LETTER GJE
+0403 ; [.2056.0020.0008] # CYRILLIC CAPITAL LETTER GJE
+0413 0301 ; [.2056.0020.0008] # CYRILLIC CAPITAL LETTER GJE
+0413 0341 ; [.2056.0020.0008] # CYRILLIC CAPITAL LETTER GJE
+045C ; [.211A.0020.0002] # CYRILLIC SMALL LETTER KJE
+043A 0301 ; [.211A.0020.0002] # CYRILLIC SMALL LETTER KJE
+043A 0341 ; [.211A.0020.0002] # CYRILLIC SMALL LETTER KJE
+040C ; [.211A.0020.0008] # CYRILLIC CAPITAL LETTER KJE
+041A 0301 ; [.211A.0020.0008] # CYRILLIC CAPITAL LETTER KJE
+041A 0341 ; [.211A.0020.0008] # CYRILLIC CAPITAL LETTER KJE
+0439 ; [.2080.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
+0419 ; [.2080.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ml.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ml.pl
index ad26fb751f7..3257127dd39 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ml.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ml.pl
@@ -1,23 +1,23 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0D3D ; [.0000.00C0.0002] # MALAYALAM SIGN AVAGRAHA
-0D57 ; [.25C8.0020.0002] # MALAYALAM AU LENGTH MARK
-0D4C ; [.25C8.0020.0003] # MALAYALAM VOWEL SIGN AU
-0D46 0D57 ; [.25C8.0020.0003] # MALAYALAM VOWEL SIGN AU
-0D15 0D4D 200D ; [.2593.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER KA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7F ; [.2593.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU K
-0D23 0D4D 200D ; [.25A1.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER NNA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7A ; [.25A1.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU NN
-0D28 0D4D 200D ; [.25A6.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7B ; [.25A6.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU N
-0D30 0D4D 200D ; [.25AE.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7C ; [.25AE.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU RR
-0D32 0D4D 200D ; [.25AF.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER LA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7D ; [.25AF.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU L
-0D33 0D4D 200D ; [.25B5.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER LLA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7E ; [.25B5.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU LL
-0D02 ; [.25AC.0020.0002][.25CA.0021.0002] # MALAYALAM SIGN ANUSVARA
-0D7B 0D4D ; [.25A6.0020.0002][.25CA.0020.0003] # <MALAYALAM LETTER CHILLU N, MALAYALAM SIGN VIRAMA>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0D3D ; [.0000.00C6.0002] # MALAYALAM SIGN AVAGRAHA
+0D57 ; [.28CD.0020.0002] # MALAYALAM AU LENGTH MARK
+0D4C ; [.28CD.0020.0003] # MALAYALAM VOWEL SIGN AU
+0D46 0D57 ; [.28CD.0020.0003] # MALAYALAM VOWEL SIGN AU
+0D15 0D4D 200D ; [.2898.0020.0002][.28CF.0021.0002] # <MALAYALAM LETTER KA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7F ; [.2898.0020.0003][.28CF.0021.0002] # MALAYALAM LETTER CHILLU K
+0D23 0D4D 200D ; [.28A6.0020.0002][.28CF.0021.0002] # <MALAYALAM LETTER NNA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7A ; [.28A6.0020.0003][.28CF.0021.0002] # MALAYALAM LETTER CHILLU NN
+0D28 0D4D 200D ; [.28AB.0020.0002][.28CF.0021.0002] # <MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7B ; [.28AB.0020.0003][.28CF.0021.0002] # MALAYALAM LETTER CHILLU N
+0D30 0D4D 200D ; [.28B3.0020.0002][.28CF.0021.0002] # <MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7C ; [.28B3.0020.0003][.28CF.0021.0002] # MALAYALAM LETTER CHILLU RR
+0D32 0D4D 200D ; [.28B4.0020.0002][.28CF.0021.0002] # <MALAYALAM LETTER LA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7D ; [.28B4.0020.0003][.28CF.0021.0002] # MALAYALAM LETTER CHILLU L
+0D33 0D4D 200D ; [.28BA.0020.0002][.28CF.0021.0002] # <MALAYALAM LETTER LLA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7E ; [.28BA.0020.0003][.28CF.0021.0002] # MALAYALAM LETTER CHILLU LL
+0D02 ; [.28B1.0020.0002][.28CF.0021.0002] # MALAYALAM SIGN ANUSVARA
+0D7B 0D4D ; [.28AB.0020.0002][.28CF.0020.0003] # <MALAYALAM LETTER CHILLU N, MALAYALAM SIGN VIRAMA>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mr.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mr.pl
index 44ca45a0e01..416b8b095cd 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mr.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mr.pl
@@ -1,14 +1,14 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0902 ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
-0901 ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
-0903 ; [.235B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.235B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.239D.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.239D.0020.0002][.FFF1.0000.0000][.0000.00BC.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.239D.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-091C 094D 091E ; [.239D.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
-0939 ; [.239D.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0902 ; [.265B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901 ; [.265B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
+0903 ; [.265B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
+0950 ; [.265B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+0933 ; [.269E.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
+0934 ; [.269E.0020.0002][.FFF1.0000.0000][.0000.00C2.0002] # DEVANAGARI LETTER LLLA
+0915 094D 0937 ; [.269E.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
+091C 094D 091E ; [.269E.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
+0939 ; [.269E.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mt.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mt.pl
index 38d14dc3375..6bf773456ec 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mt.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/mt.pl
@@ -1,31 +1,31 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
upper_before_lower => 1,
- entry => <<'ENTRY', # for DUCET v7.0.0
-010B ; [.193D.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-0063 0307 ; [.193D.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-010A ; [.193D.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-0043 0307 ; [.193D.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-0121 ; [.19B7.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0067 0307 ; [.19B7.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0120 ; [.19B7.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0047 0307 ; [.19B7.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0067 0127 ; [.19DB.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H WITH STROKE>
-0067 0126 ; [.19DB.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
-0047 0127 ; [.19DB.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H WITH STROKE>
-0047 0126 ; [.19DB.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
-0067 0068 0335 ; [.19DB.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0067 0048 0335 ; [.19DB.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0047 0068 0335 ; [.19DB.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0047 0048 0335 ; [.19DB.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0127 ; [.19F5.0020.0002] # LATIN SMALL LETTER H WITH STROKE
-0068 0335 ; [.19F5.0020.0002] # LATIN SMALL LETTER H WITH STROKE
-210F ; [.19F5.0020.0002] # PLANCK CONSTANT OVER TWO PI
-0126 ; [.19F5.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
-0048 0335 ; [.19F5.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
-017C ; [.1BE2.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-007A 0307 ; [.1BE2.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-005A 0307 ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ entry => <<'ENTRY', # for DUCET v9.0.0
+010B ; [.1C79.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
+0063 0307 ; [.1C79.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
+010A ; [.1C79.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
+0043 0307 ; [.1C79.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
+0121 ; [.1CF3.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
+0067 0307 ; [.1CF3.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
+0120 ; [.1CF3.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0047 0307 ; [.1CF3.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0067 0127 ; [.1D17.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H WITH STROKE>
+0067 0126 ; [.1D17.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
+0047 0127 ; [.1D17.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H WITH STROKE>
+0047 0126 ; [.1D17.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
+0067 0068 0335 ; [.1D17.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
+0067 0048 0335 ; [.1D17.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
+0047 0068 0335 ; [.1D17.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
+0047 0048 0335 ; [.1D17.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
+0127 ; [.1D31.0020.0002] # LATIN SMALL LETTER H WITH STROKE
+0068 0335 ; [.1D31.0020.0002] # LATIN SMALL LETTER H WITH STROKE
+210F ; [.1D31.0020.0002] # PLANCK CONSTANT OVER TWO PI
+0126 ; [.1D31.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
+0048 0335 ; [.1D31.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
+017C ; [.1F20.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+007A 0307 ; [.1F20.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+017B ; [.1F20.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+005A 0307 ; [.1F20.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nb.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nb.pl
index 6306b814001..b859b000b2f 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nb.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nb.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1C56.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1C56.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1C56.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C8F.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C8F.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C8F.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E95.0020.0003][.1D18.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E95.0020.0009][.1D18.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F96.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F96.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F96.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F96.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F96.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F96.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F96.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F97.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F97.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F97.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F97.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F98.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F98.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F98.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.1F98.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0041 0061 ; [.1F98.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0041 0041 ; [.1F98.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nn.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nn.pl
index 6306b814001..b859b000b2f 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nn.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nn.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1C56.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1C56.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1C56.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C8F.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C8F.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C8F.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E95.0020.0003][.1D18.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E95.0020.0009][.1D18.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F96.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F96.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F96.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F96.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F96.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F96.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F96.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F96.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F96.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F97.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F97.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F97.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F97.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F97.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F97.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F97.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F97.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F98.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F98.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F98.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F98.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F98.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.1F98.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0041 0061 ; [.1F98.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0041 0041 ; [.1F98.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nso.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nso.pl
index d3c1d6bfb6a..0d248052570 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nso.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/nso.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00EA ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.196F.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196F.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.196F.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196F.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.196F.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196F.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196F.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196F.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196F.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196F.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1AA2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1AA2.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA2.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1AA2.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA2.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA2.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA2.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1AA2.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00EA ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC1 ; [.1CAB.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAB.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EBF ; [.1CAB.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAB.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC5 ; [.1CAB.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAB.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAB.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAB.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAB.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAB.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+00F4 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1DDE.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1DDE.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1DDE.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1DDE.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1DDE.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1DDE.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1DDE.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1DDE.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1DDE.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1DDE.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+0161 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/om.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/om.pl
index 5c7196ceca6..49a5108b079 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/om.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/om.pl
@@ -1,22 +1,22 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0063 0068 ; [.1BE4.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0043 0068 ; [.1BE4.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.1BE4.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0064 0068 ; [.1BE5.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
-0044 0068 ; [.1BE5.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
-0044 0048 ; [.1BE5.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
-006B 0068 ; [.1BE6.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER H>
-004B 0068 ; [.1BE6.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER H>
-004B 0048 ; [.1BE6.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER H>
-006E 0079 ; [.1BE7.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.1BE7.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1BE7.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0070 0068 ; [.1BE8.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
-0050 0068 ; [.1BE8.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
-0050 0048 ; [.1BE8.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
-0073 0068 ; [.1BE9.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0053 0068 ; [.1BE9.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0063 0068 ; [.1F22.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0043 0068 ; [.1F22.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1F22.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+0064 0068 ; [.1F23.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
+0044 0068 ; [.1F23.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
+0044 0048 ; [.1F23.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
+006B 0068 ; [.1F24.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER H>
+004B 0068 ; [.1F24.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER H>
+004B 0048 ; [.1F24.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER H>
+006E 0079 ; [.1F25.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 0079 ; [.1F25.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1F25.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0070 0068 ; [.1F26.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
+0050 0068 ; [.1F26.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
+0050 0048 ; [.1F26.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
+0073 0068 ; [.1F27.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
+0053 0068 ; [.1F27.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/or.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/or.pl
index fa34f4cc519..3e4ded12c13 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/or.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/or.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0B01 ; [.2489.0020.0002][.FFF1.0000.0000] # ORIYA SIGN CANDRABINDU
-0B02 ; [.2489.0020.0002][.FFF2.0000.0000] # ORIYA SIGN ANUSVARA
-0B03 ; [.2489.0020.0002][.FFF3.0000.0000] # ORIYA SIGN VISARGA
-0B14 ; [.2489.0020.0002][.FFF0.0000.0000] # ORIYA LETTER AU
-0B15 0B4D 0B37 ; [.24AD.0020.0002][.FFF1.0000.0000] # <ORIYA LETTER KA, ORIYA SIGN VIRAMA, ORIYA LETTER SSA>
-0B39 ; [.24AD.0020.0002][.FFF0.0000.0000] # ORIYA LETTER HA
-0B5F ; [.24A3.0021.0002] # ORIYA LETTER YYA
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0B01 ; [.278B.0020.0002][.FFF1.0000.0000] # ORIYA SIGN CANDRABINDU
+0B02 ; [.278B.0020.0002][.FFF2.0000.0000] # ORIYA SIGN ANUSVARA
+0B03 ; [.278B.0020.0002][.FFF3.0000.0000] # ORIYA SIGN VISARGA
+0B14 ; [.278B.0020.0002][.FFF0.0000.0000] # ORIYA LETTER AU
+0B15 0B4D 0B37 ; [.27AF.0020.0002][.FFF1.0000.0000] # <ORIYA LETTER KA, ORIYA SIGN VIRAMA, ORIYA LETTER SSA>
+0B39 ; [.27AF.0020.0002][.FFF0.0000.0000] # ORIYA LETTER HA
+0B5F ; [.27A5.0021.0002] # ORIYA LETTER YYA
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pa.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pa.pl
index 1f53ce33bcd..11950d11130 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pa.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pa.pl
@@ -1,27 +1,27 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0A71 ; [.0000.00BD.0002] # GURMUKHI ADDAK
-0A03 ; [.0000.00BC.0002] # GURMUKHI SIGN VISARGA
-0A70 ; [.0000.00BE.0002] # GURMUKHI TIPPI
-0A02 ; [.0000.00BF.0002] # GURMUKHI SIGN BINDI
-0A01 ; [.0000.00C0.0002] # GURMUKHI SIGN ADAK BINDI
-0A3C ; [.0000.00C1.0002] # GURMUKHI SIGN NUKTA
-0A33 ; [.242B.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER LLA
-0A36 ; [.240C.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER SHA
-0A59 ; [.2410.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER KHHA
-0A5A ; [.2411.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER GHHA
-0A5B ; [.2416.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER ZA
-0A5E ; [.2424.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER FA
-0A4D ; [.242E.0020.0002] # GURMUKHI SIGN VIRAMA
-0A3E ; [.242F.0020.0002] # GURMUKHI VOWEL SIGN AA
-0A3F ; [.2430.0020.0002] # GURMUKHI VOWEL SIGN I
-0A40 ; [.2431.0020.0002] # GURMUKHI VOWEL SIGN II
-0A41 ; [.2432.0020.0002] # GURMUKHI VOWEL SIGN U
-0A42 ; [.2433.0020.0002] # GURMUKHI VOWEL SIGN UU
-0A47 ; [.2434.0020.0002] # GURMUKHI VOWEL SIGN EE
-0A48 ; [.2435.0020.0002] # GURMUKHI VOWEL SIGN AI
-0A4B ; [.2436.0020.0002] # GURMUKHI VOWEL SIGN OO
-0A4C ; [.2437.0020.0002] # GURMUKHI VOWEL SIGN AU
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0A71 ; [.0000.00C3.0002] # GURMUKHI ADDAK
+0A03 ; [.0000.00C2.0002] # GURMUKHI SIGN VISARGA
+0A70 ; [.0000.00C4.0002] # GURMUKHI TIPPI
+0A02 ; [.0000.00C5.0002] # GURMUKHI SIGN BINDI
+0A01 ; [.0000.00C6.0002] # GURMUKHI SIGN ADAK BINDI
+0A3C ; [.0000.00C7.0002] # GURMUKHI SIGN NUKTA
+0A33 ; [.272C.0020.0002][.0000.00C7.0002] # GURMUKHI LETTER LLA
+0A36 ; [.270D.0020.0002][.0000.00C7.0002] # GURMUKHI LETTER SHA
+0A59 ; [.2711.0020.0002][.0000.00C7.0002] # GURMUKHI LETTER KHHA
+0A5A ; [.2712.0020.0002][.0000.00C7.0002] # GURMUKHI LETTER GHHA
+0A5B ; [.2717.0020.0002][.0000.00C7.0002] # GURMUKHI LETTER ZA
+0A5E ; [.2725.0020.0002][.0000.00C7.0002] # GURMUKHI LETTER FA
+0A4D ; [.272F.0020.0002] # GURMUKHI SIGN VIRAMA
+0A3E ; [.2730.0020.0002] # GURMUKHI VOWEL SIGN AA
+0A3F ; [.2731.0020.0002] # GURMUKHI VOWEL SIGN I
+0A40 ; [.2732.0020.0002] # GURMUKHI VOWEL SIGN II
+0A41 ; [.2733.0020.0002] # GURMUKHI VOWEL SIGN U
+0A42 ; [.2734.0020.0002] # GURMUKHI VOWEL SIGN UU
+0A47 ; [.2735.0020.0002] # GURMUKHI VOWEL SIGN EE
+0A48 ; [.2736.0020.0002] # GURMUKHI VOWEL SIGN AI
+0A4B ; [.2737.0020.0002] # GURMUKHI VOWEL SIGN OO
+0A4C ; [.2738.0020.0002] # GURMUKHI VOWEL SIGN AU
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pl.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pl.pl
index 90b839fb381..36e208b36ab 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pl.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/pl.pl
@@ -1,51 +1,51 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0105 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
-0061 0328 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
-0104 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0041 0328 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0107 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0301 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0341 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0301 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0341 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0119 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0142 ; [.1A3C.0020.0002] # LATIN SMALL LETTER L WITH STROKE
-006C 0335 ; [.1A3C.0020.0002] # LATIN SMALL LETTER L WITH STROKE
-0141 ; [.1A3C.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
-004C 0335 ; [.1A3C.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
-0144 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-00F3 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-015B ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-0073 0301 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-0073 0341 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-015A ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-0053 0301 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-0053 0341 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-017A ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-007A 0301 ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-007A 0341 ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-0179 ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-005A 0301 ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-005A 0341 ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-017C ; [.1BE5.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-007A 0307 ; [.1BE5.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1BE5.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-005A 0307 ; [.1BE5.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0105 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
+0061 0328 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
+0104 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
+0041 0328 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
+0107 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0063 0301 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0063 0341 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0106 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0043 0301 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0043 0341 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0119 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0142 ; [.1D78.0020.0002] # LATIN SMALL LETTER L WITH STROKE
+006C 0335 ; [.1D78.0020.0002] # LATIN SMALL LETTER L WITH STROKE
+0141 ; [.1D78.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
+004C 0335 ; [.1D78.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
+0144 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+00F3 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+015B ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
+0073 0301 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
+0073 0341 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
+015A ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
+0053 0301 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
+0053 0341 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
+017A ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
+007A 0301 ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
+007A 0341 ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
+0179 ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
+005A 0301 ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
+005A 0341 ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
+017C ; [.1F23.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+007A 0307 ; [.1F23.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+017B ; [.1F23.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+005A 0307 ; [.1F23.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ro.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ro.pl
index 8d1ec1ee75c..82f63a6e25a 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ro.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ro.pl
@@ -1,53 +1,53 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0103 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0061 0306 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0102 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-0041 0306 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-1EB1 ; [.190D.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.190D.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EAF ; [.190D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.190D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB5 ; [.190D.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.190D.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.190D.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.190D.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB7 ; [.190D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.190D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-00E2 ; [.190E.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-0061 0302 ; [.190E.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.190E.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-0041 0302 ; [.190E.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA7 ; [.190E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.190E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA5 ; [.190E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.190E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EAB ; [.190E.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.190E.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.190E.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.190E.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAD ; [.190E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.190E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-00EE ; [.19F7.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-0069 0302 ; [.19F7.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.19F7.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-0049 0302 ; [.19F7.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-015F ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0219 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-0073 0326 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-015E ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0218 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0053 0326 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0163 ; [.1B58.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
-0074 0327 ; [.1B58.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
-021B ; [.1B58.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-0074 0326 ; [.1B58.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-0162 ; [.1B58.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
-0054 0327 ; [.1B58.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
-021A ; [.1B58.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
-0054 0326 ; [.1B58.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0103 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH BREVE
+0061 0306 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH BREVE
+0102 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
+0041 0306 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
+1EB1 ; [.1C48.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB0 ; [.1C48.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EAF ; [.1C48.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EAE ; [.1C48.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EB5 ; [.1C48.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB4 ; [.1C48.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB3 ; [.1C48.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB2 ; [.1C48.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB7 ; [.1C48.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB6 ; [.1C48.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+00E2 ; [.1C49.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0061 0302 ; [.1C49.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2 ; [.1C49.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0041 0302 ; [.1C49.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+1EA7 ; [.1C49.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA6 ; [.1C49.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA5 ; [.1C49.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA4 ; [.1C49.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EAB ; [.1C49.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAA ; [.1C49.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EA9 ; [.1C49.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA8 ; [.1C49.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAD ; [.1C49.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAC ; [.1C49.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+00EE ; [.1D33.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0069 0302 ; [.1D33.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+00CE ; [.1D33.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0049 0302 ; [.1D33.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+015F ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+0073 0327 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+0219 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
+0073 0326 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
+015E ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+0053 0327 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+0218 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
+0053 0326 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
+0163 ; [.1E96.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
+0074 0327 ; [.1E96.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
+021B ; [.1E96.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
+0074 0326 ; [.1E96.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
+0162 ; [.1E96.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
+0054 0327 ; [.1E96.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
+021A ; [.1E96.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
+0054 0326 ; [.1E96.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ru.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ru.pl
deleted file mode 100644
index b23b64125ab..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ru.pl
+++ /dev/null
@@ -1,45 +0,0 @@
-+{
- locale_version => 1.14,
- suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
- 0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
- 0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
- 0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-ENTRY
-};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sa.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sa.pl
index 44ca45a0e01..416b8b095cd 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sa.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sa.pl
@@ -1,14 +1,14 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0902 ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
-0901 ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
-0903 ; [.235B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.235B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.239D.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.239D.0020.0002][.FFF1.0000.0000][.0000.00BC.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.239D.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-091C 094D 091E ; [.239D.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
-0939 ; [.239D.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0902 ; [.265B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901 ; [.265B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
+0903 ; [.265B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
+0950 ; [.265B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+0933 ; [.269E.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
+0934 ; [.269E.0020.0002][.FFF1.0000.0000][.0000.00C2.0002] # DEVANAGARI LETTER LLLA
+0915 094D 0937 ; [.269E.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
+091C 094D 091E ; [.269E.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
+0939 ; [.269E.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/se.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/se.pl
index f693e93d4ae..ee0d99a77ed 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/se.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/se.pl
@@ -1,150 +1,150 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# eng, g-stroke, t-stroke don't require tailoring
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E1 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-010D ; [.1950.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.1950.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.1950.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.1950.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0292 ; [.1951.0020.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1951.0020.0008] # LATIN CAPITAL LETTER EZH
-01EF ; [.1952.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
-0292 030C ; [.1952.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1952.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
-01B7 030C ; [.1952.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
-0111 ; [.196D.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.196D.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.196D.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.196D.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.196D.0021.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.196D.0021.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.196D.0021.0008] # LATIN CAPITAL LETTER ETH
-01E7 ; [.19C4.0020.0002] # LATIN SMALL LETTER G WITH CARON
-0067 030C ; [.19C4.0020.0002] # LATIN SMALL LETTER G WITH CARON
-01E6 ; [.19C4.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
-0047 030C ; [.19C4.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
-01E9 ; [.1A3A.0020.0002] # LATIN SMALL LETTER K WITH CARON
-006B 030C ; [.1A3A.0020.0002] # LATIN SMALL LETTER K WITH CARON
-01E8 ; [.1A3A.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
-004B 030C ; [.1A3A.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
-0144 ; [.1A9C.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A9C.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A9C.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A9C.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A9C.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A9C.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-00F1 ; [.1A9C.0022.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1A9C.0022.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A9C.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A9C.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
-0161 ; [.1B56.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B56.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B56.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B56.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-00FE ; [.1B5C.0021.0002] # LATIN SMALL LETTER THORN
-00DE ; [.1B5C.0021.0008] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-017E ; [.1C50.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1C50.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1C50.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1C50.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-00F8 ; [.1C51.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C51.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C51.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C51.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C51.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C51.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0153 ; [.1C51.0021.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C51.0021.0008] # LATIN CAPITAL LIGATURE OE
-00E6 ; [.1C52.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C52.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C52.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C52.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C52.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C52.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C52.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C52.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0227 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0061 0307 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0226 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-0041 0307 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E3 ; [.1C55.0021.0002] # LATIN SMALL LETTER A WITH TILDE
-0061 0303 ; [.1C55.0021.0002] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
-0041 0303 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00F5 ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH TILDE
-006F 0303 ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
-004F 0303 ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.1C56.0022.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.1C56.0022.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-022D ; [.1C56.0022.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.1C56.0022.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-1E4F ; [.1C56.0022.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.1C56.0022.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1EE1 ; [.1C56.0022.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1C56.0022.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-00F4 ; [.1C56.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1C56.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1C56.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1C56.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1C56.0023.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1C56.0023.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1C56.0023.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1C56.0023.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1C56.0023.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1C56.0023.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1C56.0023.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1C56.0023.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1C56.0023.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1C56.0023.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-01EB ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
-006F 0328 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
-01EA ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
-004F 0328 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00E1 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C5F.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+010D ; [.1C8C.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C8C.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C8C.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C8C.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0292 ; [.1C8D.0020.0002] # LATIN SMALL LETTER EZH
+01B7 ; [.1C8D.0020.0008] # LATIN CAPITAL LETTER EZH
+01EF ; [.1C8E.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
+0292 030C ; [.1C8E.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.1C8E.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
+01B7 030C ; [.1C8E.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
+0111 ; [.1CA9.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1CA9.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1CA9.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1CA9.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1CA9.0021.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1CA9.0021.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1CA9.0021.0008] # LATIN CAPITAL LETTER ETH
+01E7 ; [.1D00.0020.0002] # LATIN SMALL LETTER G WITH CARON
+0067 030C ; [.1D00.0020.0002] # LATIN SMALL LETTER G WITH CARON
+01E6 ; [.1D00.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
+0047 030C ; [.1D00.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
+01E9 ; [.1D76.0020.0002] # LATIN SMALL LETTER K WITH CARON
+006B 030C ; [.1D76.0020.0002] # LATIN SMALL LETTER K WITH CARON
+01E8 ; [.1D76.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
+004B 030C ; [.1D76.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
+0144 ; [.1DD8.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1DD8.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1DD8.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DD8.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1DD8.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1DD8.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+00F1 ; [.1DD8.0022.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1DD8.0022.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1DD8.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1DD8.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
+0161 ; [.1E94.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E94.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E94.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E94.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+00FE ; [.1E9A.0021.0002] # LATIN SMALL LETTER THORN
+00DE ; [.1E9A.0021.0008] # LATIN CAPITAL LETTER THORN
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+017E ; [.1F92.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1F92.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F92.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1F92.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+00F8 ; [.1F93.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F93.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F93.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F93.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F93.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F93.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+0153 ; [.1F93.0021.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F93.0021.0008] # LATIN CAPITAL LIGATURE OE
+00E6 ; [.1F94.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F94.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F94.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F94.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F94.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F94.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F94.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F94.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E5 ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F96.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0227 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
+0061 0307 ; [.1F96.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
+0226 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
+0041 0307 ; [.1F96.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
+00E4 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F97.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F97.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E3 ; [.1F97.0021.0002] # LATIN SMALL LETTER A WITH TILDE
+0061 0303 ; [.1F97.0021.0002] # LATIN SMALL LETTER A WITH TILDE
+00C3 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
+0041 0303 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
+00F6 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F98.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F98.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+00F5 ; [.1F98.0022.0002] # LATIN SMALL LETTER O WITH TILDE
+006F 0303 ; [.1F98.0022.0002] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1F98.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
+004F 0303 ; [.1F98.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
+1E4D ; [.1F98.0022.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4C ; [.1F98.0022.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+022D ; [.1F98.0022.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
+022C ; [.1F98.0022.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+1E4F ; [.1F98.0022.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E4E ; [.1F98.0022.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1EE1 ; [.1F98.0022.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE0 ; [.1F98.0022.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+00F4 ; [.1F98.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1F98.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1F98.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1F98.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1F98.0023.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1F98.0023.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1F98.0023.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1F98.0023.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1F98.0023.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1F98.0023.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1F98.0023.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1F98.0023.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1F98.0023.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1F98.0023.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+01EB ; [.1F98.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
+006F 0328 ; [.1F98.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
+01EA ; [.1F98.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
+004F 0328 ; [.1F98.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si.pl
index 24e7ff8ef95..4dd15667d40 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si.pl
@@ -1,10 +1,10 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0D82 ; [.25DC.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
-0D83 ; [.25DC.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
-0D96 ; [.25DC.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
-0DA5 ; [.25E7.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA4 ; [.25E8.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0D82 ; [.28E1.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
+0D83 ; [.28E1.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
+0D96 ; [.28E1.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
+0DA5 ; [.28EC.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+0DA4 ; [.28ED.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si_dict.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si_dict.pl
index 708d2b41433..9275ad71221 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si_dict.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/si_dict.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0D82 ; [.25DC.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
-0D83 ; [.25DC.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
-0D96 ; [.25DC.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
-0DA5 ; [.25E5.0020.0002][.2617.0020.0002][.25E7.0021.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0D82 ; [.28E1.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
+0D83 ; [.28E1.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
+0D96 ; [.28E1.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
+0DA5 ; [.28EA.0020.0002][.291C.0020.0002][.28EC.0021.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sk.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sk.pl
index 89f5de15883..9d319c99f03 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sk.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sk.pl
@@ -1,45 +1,45 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E4 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.190D.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.190D.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-010D ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0063 0068 ; [.19DD.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.19DD.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.19DD.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.19DD.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-00F4 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1AA2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1AA2.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA2.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1AA2.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA2.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA2.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA2.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1AA2.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0159 ; [.1AF6.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0072 030C ; [.1AF6.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.1AF6.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0052 030C ; [.1AF6.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00E4 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1C48.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1C48.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0063 0068 ; [.1D19.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0063 0048 ; [.1D19.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
+0043 0068 ; [.1D19.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1D19.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+00F4 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1DDE.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1DDE.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1DDE.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1DDE.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1DDE.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1DDE.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1DDE.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1DDE.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1DDE.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1DDE.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+0159 ; [.1E34.0020.0002] # LATIN SMALL LETTER R WITH CARON
+0072 030C ; [.1E34.0020.0002] # LATIN SMALL LETTER R WITH CARON
+0158 ; [.1E34.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
+0052 030C ; [.1E34.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
+0161 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sl.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sl.pl
index 979e890fbdd..70c4522dc80 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sl.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sl.pl
@@ -1,17 +1,17 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-010D ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+010D ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0161 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1F22.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1F22.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sq.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sq.pl
index b8d243b54c3..fc89269a88a 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sq.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sq.pl
@@ -1,49 +1,49 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E7 ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-0063 0327 ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-00C7 ; [.1952.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.1952.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0064 0068 ; [.196D.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
-0064 0048 ; [.196D.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER H>
-0044 0068 ; [.196D.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
-0044 0048 ; [.196D.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
-00EB ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-0065 0308 ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0045 0308 ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0067 006A ; [.19DB.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER J>
-0067 004A ; [.19DB.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER J>
-0047 006A ; [.19DB.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER J>
-0047 004A ; [.19DB.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER J>
-006C 006C ; [.1A6D.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-006C 004C ; [.1A6D.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
-004C 006C ; [.1A6D.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.1A6D.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-006E 006A ; [.1AA0.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
-006E 004A ; [.1AA0.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER J>
-004E 006A ; [.1AA0.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
-004E 004A ; [.1AA0.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
-0072 0072 ; [.1B32.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER R>
-0072 0052 ; [.1B32.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER R, LATIN CAPITAL LETTER R>
-0052 0072 ; [.1B32.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER R>
-0052 0052 ; [.1B32.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER R>
-0073 0068 ; [.1B56.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0073 0048 ; [.1B56.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER H>
-0053 0068 ; [.1B56.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.1B56.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-0074 0068 ; [.1B76.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
-0074 0048 ; [.1B76.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER H>
-0054 0068 ; [.1B76.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
-0054 0048 ; [.1B76.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
-0078 0068 ; [.1BCC.0020.0002] # <LATIN SMALL LETTER X, LATIN SMALL LETTER H>
-0078 0048 ; [.1BCC.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER X, LATIN CAPITAL LETTER H>
-0058 0068 ; [.1BCC.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER X, LATIN SMALL LETTER H>
-0058 0048 ; [.1BCC.0020.0008] # <LATIN CAPITAL LETTER X, LATIN CAPITAL LETTER H>
-007A 0068 ; [.1BFF.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER H>
-007A 0048 ; [.1BFF.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER H>
-005A 0068 ; [.1BFF.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER H>
-005A 0048 ; [.1BFF.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER H>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00E7 ; [.1C8E.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+0063 0327 ; [.1C8E.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+00C7 ; [.1C8E.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+0043 0327 ; [.1C8E.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+0064 0068 ; [.1CA9.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
+0064 0048 ; [.1CA9.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER H>
+0044 0068 ; [.1CA9.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
+0044 0048 ; [.1CA9.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
+00EB ; [.1CE4.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+0065 0308 ; [.1CE4.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+00CB ; [.1CE4.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
+0045 0308 ; [.1CE4.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
+0067 006A ; [.1D17.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER J>
+0067 004A ; [.1D17.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER J>
+0047 006A ; [.1D17.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER J>
+0047 004A ; [.1D17.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER J>
+006C 006C ; [.1DA9.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+006C 004C ; [.1DA9.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
+004C 006C ; [.1DA9.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 004C ; [.1DA9.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+006E 006A ; [.1DDC.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
+006E 004A ; [.1DDC.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER J>
+004E 006A ; [.1DDC.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
+004E 004A ; [.1DDC.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
+0072 0072 ; [.1E70.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER R>
+0072 0052 ; [.1E70.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER R, LATIN CAPITAL LETTER R>
+0052 0072 ; [.1E70.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER R>
+0052 0052 ; [.1E70.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER R>
+0073 0068 ; [.1E94.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
+0073 0048 ; [.1E94.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER H>
+0053 0068 ; [.1E94.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+0053 0048 ; [.1E94.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
+0074 0068 ; [.1EB4.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
+0074 0048 ; [.1EB4.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER H>
+0054 0068 ; [.1EB4.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
+0054 0048 ; [.1EB4.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
+0078 0068 ; [.1F0A.0020.0002] # <LATIN SMALL LETTER X, LATIN SMALL LETTER H>
+0078 0048 ; [.1F0A.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER X, LATIN CAPITAL LETTER H>
+0058 0068 ; [.1F0A.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER X, LATIN SMALL LETTER H>
+0058 0048 ; [.1F0A.0020.0008] # <LATIN CAPITAL LETTER X, LATIN CAPITAL LETTER H>
+007A 0068 ; [.1F3D.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER H>
+007A 0048 ; [.1F3D.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER H>
+005A 0068 ; [.1F3D.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER H>
+005A 0048 ; [.1F3D.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER H>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sr.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sr.pl
index 8b829e1997a..2e50496567d 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sr.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sr.pl
@@ -1,49 +1,8 @@
+{
- locale_version => 1.14,
- suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
- 0x0416, 0x0436, 0x0417, 0x0437, 0x0418, 0x0438, 0x0406, 0x0456,
- 0x041E, 0x043E, 0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443,
- 0x0427, 0x0447, 0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E5 ; [.1D5A.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1D5A.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1D5A.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1D5A.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.25,
+ suppress => [0x0418, 0x0438],
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0439 ; [.2080.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
+0419 ; [.2080.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv.pl
index 5fe73703e39..13f78055e4e 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv.pl
@@ -1,89 +1,89 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-0077 ; [.1BA5.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.1BA5.0021.0008] # LATIN CAPITAL LETTER W
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1C55.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C55.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C55.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-0119 ; [.1C55.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C55.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C56.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C56.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0151 ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C56.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C56.0023.0008] # LATIN CAPITAL LIGATURE OE
-00F4 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1C56.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1C56.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1C56.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1C56.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1C56.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1C56.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1C56.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1C56.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1C56.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1C56.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C8F.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C8F.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C8F.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E95.0020.0003][.1D18.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E95.0020.0009][.1D18.0020.0009] # LATIN CAPITAL LETTER THORN
+0077 ; [.1EE3.0021.0002] # LATIN SMALL LETTER W
+0057 ; [.1EE3.0021.0008] # LATIN CAPITAL LETTER W
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E5 ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F96.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F97.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F97.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E6 ; [.1F97.0021.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F97.0021.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F97.0021.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F97.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F97.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+0119 ; [.1F97.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F97.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F6 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F98.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F98.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F98.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F98.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+0151 ; [.1F98.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F98.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F98.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F98.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F98.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F98.0023.0008] # LATIN CAPITAL LIGATURE OE
+00F4 ; [.1F98.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1F98.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1F98.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1F98.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1F98.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1F98.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1F98.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1F98.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1F98.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1F98.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1F98.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1F98.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1F98.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1F98.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl
index 336054ea968..77c41b685ac 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/sv_refo.pl
@@ -1,87 +1,87 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1C55.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C55.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C55.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-0119 ; [.1C55.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C55.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C56.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C56.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0151 ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C56.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C56.0023.0008] # LATIN CAPITAL LIGATURE OE
-00F4 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1C56.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1C56.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1C56.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1C56.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1C56.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1C56.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1C56.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1C56.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1C56.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1C56.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0111 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C8F.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C8F.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C8F.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C8F.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C8F.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E95.0020.0003][.1D18.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E95.0020.0009][.1D18.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1F0B.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1F0B.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1F0B.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1F0B.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1F0B.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1F0B.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1F0B.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1F0B.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1F0B.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1F0B.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1F0B.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1F0B.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E5 ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F96.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F96.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F96.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F96.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F96.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F97.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F97.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F97.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F97.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E6 ; [.1F97.0021.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F97.0021.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F97.0021.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F97.0021.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F97.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F97.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F97.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F97.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+0119 ; [.1F97.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F97.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F97.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F6 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F98.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F98.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F98.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F98.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F98.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F98.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F98.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F98.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+0151 ; [.1F98.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F98.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F98.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F98.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F98.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F98.0023.0008] # LATIN CAPITAL LIGATURE OE
+00F4 ; [.1F98.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1F98.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1F98.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1F98.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1F98.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1F98.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1F98.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1F98.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1F98.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1F98.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1F98.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1F98.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1F98.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1F98.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ta.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ta.pl
index 8bfd19e0e40..862c6c8ae9d 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ta.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ta.pl
@@ -1,55 +1,55 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0B82 ; [.24CC.0020.0002][.FFF0.0000.0000] # TAMIL SIGN ANUSVARA
-0B83 ; [.24CC.0020.0002][.FFF1.0000.0000] # TAMIL SIGN VISARGA
-0B95 0BCD 0BB7 0BCD ; [.24E3.0020.0002][.FFF2.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
-0B95 0BCD 0BB7 ; [.24E3.0020.0002][.FFF3.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA>
-0B95 0BCD ; [.24CD.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA>
-0B95 ; [.24CD.0020.0002][.FFF1.0000.0000] # TAMIL LETTER KA
-0B99 0BCD ; [.24CE.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NGA, TAMIL SIGN VIRAMA>
-0B99 ; [.24CE.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NGA
-0B9A 0BCD ; [.24CF.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER CA, TAMIL SIGN VIRAMA>
-0B9A ; [.24CF.0020.0002][.FFF1.0000.0000] # TAMIL LETTER CA
-0B9E 0BCD ; [.24D0.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NYA, TAMIL SIGN VIRAMA>
-0B9E ; [.24D0.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NYA
-0B9F 0BCD ; [.24D1.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TTA, TAMIL SIGN VIRAMA>
-0B9F ; [.24D1.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TTA
-0BA3 0BCD ; [.24D2.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNA, TAMIL SIGN VIRAMA>
-0BA3 ; [.24D2.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNA
-0BA4 0BCD ; [.24D3.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TA, TAMIL SIGN VIRAMA>
-0BA4 ; [.24D3.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TA
-0BA8 0BCD ; [.24D4.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NA, TAMIL SIGN VIRAMA>
-0BA8 ; [.24D4.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NA
-0BAA 0BCD ; [.24D5.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER PA, TAMIL SIGN VIRAMA>
-0BAA ; [.24D5.0020.0002][.FFF1.0000.0000] # TAMIL LETTER PA
-0BAE 0BCD ; [.24D6.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER MA, TAMIL SIGN VIRAMA>
-0BAE ; [.24D6.0020.0002][.FFF1.0000.0000] # TAMIL LETTER MA
-0BAF 0BCD ; [.24D7.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER YA, TAMIL SIGN VIRAMA>
-0BAF ; [.24D7.0020.0002][.FFF1.0000.0000] # TAMIL LETTER YA
-0BB0 0BCD ; [.24D8.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RA, TAMIL SIGN VIRAMA>
-0BB0 ; [.24D8.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RA
-0BB2 0BCD ; [.24D9.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LA, TAMIL SIGN VIRAMA>
-0BB2 ; [.24D9.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LA
-0BB5 0BCD ; [.24DA.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER VA, TAMIL SIGN VIRAMA>
-0BB5 ; [.24DA.0020.0002][.FFF1.0000.0000] # TAMIL LETTER VA
-0BB4 0BCD ; [.24DB.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLLA, TAMIL SIGN VIRAMA>
-0BB4 ; [.24DB.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLLA
-0BB3 0BCD ; [.24DC.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLA, TAMIL SIGN VIRAMA>
-0BB3 ; [.24DC.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLA
-0BB1 0BCD ; [.24DD.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RRA, TAMIL SIGN VIRAMA>
-0BB1 ; [.24DD.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RRA
-0BA9 0BCD ; [.24DE.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNNA, TAMIL SIGN VIRAMA>
-0BA9 ; [.24DE.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNNA
-0B9C 0BCD ; [.24DF.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER JA, TAMIL SIGN VIRAMA>
-0B9C ; [.24DF.0020.0002][.FFF1.0000.0000] # TAMIL LETTER JA
-0BB6 0BCD ; [.24E0.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SHA, TAMIL SIGN VIRAMA>
-0BB6 ; [.24E0.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SHA
-0BB7 0BCD ; [.24E1.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
-0BB7 ; [.24E1.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SSA
-0BB8 0BCD ; [.24E2.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SA, TAMIL SIGN VIRAMA>
-0BB8 ; [.24E2.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SA
-0BB9 0BCD ; [.24E3.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER HA, TAMIL SIGN VIRAMA>
-0BB9 ; [.24E3.0020.0002][.FFF1.0000.0000] # TAMIL LETTER HA
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0B82 ; [.27CE.0020.0002][.FFF0.0000.0000] # TAMIL SIGN ANUSVARA
+0B83 ; [.27CE.0020.0002][.FFF1.0000.0000] # TAMIL SIGN VISARGA
+0B95 0BCD 0BB7 0BCD ; [.27E5.0020.0002][.FFF2.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
+0B95 0BCD 0BB7 ; [.27E5.0020.0002][.FFF3.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA>
+0B95 0BCD ; [.27CF.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA>
+0B95 ; [.27CF.0020.0002][.FFF1.0000.0000] # TAMIL LETTER KA
+0B99 0BCD ; [.27D0.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NGA, TAMIL SIGN VIRAMA>
+0B99 ; [.27D0.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NGA
+0B9A 0BCD ; [.27D1.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER CA, TAMIL SIGN VIRAMA>
+0B9A ; [.27D1.0020.0002][.FFF1.0000.0000] # TAMIL LETTER CA
+0B9E 0BCD ; [.27D2.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NYA, TAMIL SIGN VIRAMA>
+0B9E ; [.27D2.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NYA
+0B9F 0BCD ; [.27D3.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TTA, TAMIL SIGN VIRAMA>
+0B9F ; [.27D3.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TTA
+0BA3 0BCD ; [.27D4.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNA, TAMIL SIGN VIRAMA>
+0BA3 ; [.27D4.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNA
+0BA4 0BCD ; [.27D5.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TA, TAMIL SIGN VIRAMA>
+0BA4 ; [.27D5.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TA
+0BA8 0BCD ; [.27D6.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NA, TAMIL SIGN VIRAMA>
+0BA8 ; [.27D6.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NA
+0BAA 0BCD ; [.27D7.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER PA, TAMIL SIGN VIRAMA>
+0BAA ; [.27D7.0020.0002][.FFF1.0000.0000] # TAMIL LETTER PA
+0BAE 0BCD ; [.27D8.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER MA, TAMIL SIGN VIRAMA>
+0BAE ; [.27D8.0020.0002][.FFF1.0000.0000] # TAMIL LETTER MA
+0BAF 0BCD ; [.27D9.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER YA, TAMIL SIGN VIRAMA>
+0BAF ; [.27D9.0020.0002][.FFF1.0000.0000] # TAMIL LETTER YA
+0BB0 0BCD ; [.27DA.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RA, TAMIL SIGN VIRAMA>
+0BB0 ; [.27DA.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RA
+0BB2 0BCD ; [.27DB.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LA, TAMIL SIGN VIRAMA>
+0BB2 ; [.27DB.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LA
+0BB5 0BCD ; [.27DC.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER VA, TAMIL SIGN VIRAMA>
+0BB5 ; [.27DC.0020.0002][.FFF1.0000.0000] # TAMIL LETTER VA
+0BB4 0BCD ; [.27DD.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLLA, TAMIL SIGN VIRAMA>
+0BB4 ; [.27DD.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLLA
+0BB3 0BCD ; [.27DE.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLA, TAMIL SIGN VIRAMA>
+0BB3 ; [.27DE.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLA
+0BB1 0BCD ; [.27DF.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RRA, TAMIL SIGN VIRAMA>
+0BB1 ; [.27DF.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RRA
+0BA9 0BCD ; [.27E0.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNNA, TAMIL SIGN VIRAMA>
+0BA9 ; [.27E0.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNNA
+0B9C 0BCD ; [.27E1.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER JA, TAMIL SIGN VIRAMA>
+0B9C ; [.27E1.0020.0002][.FFF1.0000.0000] # TAMIL LETTER JA
+0BB6 0BCD ; [.27E2.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SHA, TAMIL SIGN VIRAMA>
+0BB6 ; [.27E2.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SHA
+0BB7 0BCD ; [.27E3.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
+0BB7 ; [.27E3.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SSA
+0BB8 0BCD ; [.27E4.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SA, TAMIL SIGN VIRAMA>
+0BB8 ; [.27E4.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SA
+0BB9 0BCD ; [.27E5.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER HA, TAMIL SIGN VIRAMA>
+0BB9 ; [.27E5.0020.0002][.FFF1.0000.0000] # TAMIL LETTER HA
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/te.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/te.pl
index 93c55546763..49ba73a4be7 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/te.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/te.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0C01 ; [.2500.0020.0002][.FFF1.0000.0000] # TELUGU SIGN CANDRABINDU
-0C02 ; [.2500.0020.0002][.FFF2.0000.0000] # TELUGU SIGN ANUSVARA
-0C03 ; [.2500.0020.0002][.FFF3.0000.0000] # TELUGU SIGN VISARGA
-0C14 ; [.2500.0020.0002][.FFF0.0000.0000] # TELUGU LETTER AU
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0C01 ; [.2802.0020.0002][.FFF1.0000.0000] # TELUGU SIGN CANDRABINDU
+0C02 ; [.2802.0020.0002][.FFF2.0000.0000] # TELUGU SIGN ANUSVARA
+0C03 ; [.2802.0020.0002][.FFF3.0000.0000] # TELUGU SIGN VISARGA
+0C14 ; [.2802.0020.0002][.FFF0.0000.0000] # TELUGU LETTER AU
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/th.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/th.pl
index 4c27713ad63..5191a16e2a4 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/th.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/th.pl
@@ -1,23 +1,23 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
variable => 'shifted',
alternate => 'shifted',
- entry => <<'ENTRY', # for DUCET v7.0.0
-0E2F ; [*03D3.0020.0002][*FFF0.0000.0000] # THAI CHARACTER PAIYANNOI
-0E5A ; [*03D3.0020.0002][*FFF1.0000.0000] # THAI CHARACTER ANGKHANKHU
-0E46 ; [*03D4.0020.0002][*FFF1.0000.0000] # THAI CHARACTER MAIYAMOK
-0E5B ; [*03D4.0020.0002][*FFF0.0000.0000] # THAI CHARACTER KHOMUT
-0E4C ; [.0000.00CA.0002] # THAI CHARACTER THANTHAKHAT
-0E47 ; [.0000.00CB.0002] # THAI CHARACTER MAITAIKHU
-0E48 ; [.0000.00CC.0002] # THAI CHARACTER MAI EK
-0E49 ; [.0000.00CD.0002] # THAI CHARACTER MAI THO
-0E4A ; [.0000.00CE.0002] # THAI CHARACTER MAI TRI
-0E4B ; [.0000.00CF.0002] # THAI CHARACTER MAI CHATTAWA
-0E4D ; [.29CB.0020.0002] # THAI CHARACTER NIKHAHIT
-0E45 ; [.29CE.0020.0003] # THAI CHARACTER LAKKHANGYAO
-0E4D 0E32 ; [.29CE.0020.0002][.29CB.0020.0003] # THAI CHARACTER SARA AM
-0E33 ; [.29CE.0020.0002][.29CB.0020.0004] # THAI CHARACTER SARA AM
-0E45 0E4D ; [.29CB.0020.0002][.29CE.0020.0004] # <THAI CHARACTER LAKKHANGYAO, THAI CHARACTER NIKHAHIT>
-0E3A ; [.29DC.0020.0002] # THAI CHARACTER PHINTHU
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0E2F ; [*03EF.0020.0002][*FFF0.0000.0000] # THAI CHARACTER PAIYANNOI
+0E5A ; [*03EF.0020.0002][*FFF1.0000.0000] # THAI CHARACTER ANGKHANKHU
+0E46 ; [*03F0.0020.0002][*FFF1.0000.0000] # THAI CHARACTER MAIYAMOK
+0E5B ; [*03F0.0020.0002][*FFF0.0000.0000] # THAI CHARACTER KHOMUT
+0E4C ; [.0000.00D2.0002] # THAI CHARACTER THANTHAKHAT
+0E47 ; [.0000.00D3.0002] # THAI CHARACTER MAITAIKHU
+0E48 ; [.0000.00D4.0002] # THAI CHARACTER MAI EK
+0E49 ; [.0000.00D5.0002] # THAI CHARACTER MAI THO
+0E4A ; [.0000.00D6.0002] # THAI CHARACTER MAI TRI
+0E4B ; [.0000.00D7.0002] # THAI CHARACTER MAI CHATTAWA
+0E4D ; [.2DA1.0020.0002] # THAI CHARACTER NIKHAHIT
+0E45 ; [.2DA4.0020.0003] # THAI CHARACTER LAKKHANGYAO
+0E4D 0E32 ; [.2DA4.0020.0002][.2DA1.0020.0003] # THAI CHARACTER SARA AM
+0E33 ; [.2DA4.0020.0002][.2DA1.0020.0004] # THAI CHARACTER SARA AM
+0E45 0E4D ; [.2DA1.0020.0002][.2DA4.0020.0004] # <THAI CHARACTER LAKKHANGYAO, THAI CHARACTER NIKHAHIT>
+0E3A ; [.2DB2.0020.0002] # THAI CHARACTER PHINTHU
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tn.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tn.pl
index d3c1d6bfb6a..0d248052570 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tn.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tn.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00EA ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.196F.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196F.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.196F.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196F.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.196F.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196F.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196F.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196F.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196F.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196F.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1AA2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1AA2.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA2.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1AA2.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA2.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA2.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA2.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1AA2.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00EA ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC1 ; [.1CAB.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAB.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EBF ; [.1CAB.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAB.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC5 ; [.1CAB.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAB.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAB.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAB.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAB.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAB.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+00F4 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1DDE.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1DDE.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1DDE.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1DDE.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1DDE.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1DDE.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1DDE.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1DDE.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1DDE.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1DDE.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+0161 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/to.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/to.pl
index ca33252f0b1..783a6b53751 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/to.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/to.pl
@@ -1,62 +1,62 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-006E 0067 ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
-004E 0067 ; [.1A7E.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
-004E 0047 ; [.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
-014B ; [.1A7E.0020.001C] # LATIN SMALL LETTER ENG
-014A ; [.1A7E.0020.001D] # LATIN CAPITAL LETTER ENG
-02BB ; [.1BE4.0020.0002] # MODIFIER LETTER TURNED COMMA
-02BD ; [.1BE4.0020.0003] # MODIFIER LETTER REVERSED COMMA
-00E1 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0101 ; [.190C.0022.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.0022.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E9 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0113 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00ED ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-012B ; [.19F6.0022.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.0022.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00F3 ; [.1AA1.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-014D ; [.1AA1.0022.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.0022.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00FA ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-016B ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+006E 0067 ; [.1DBA.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
+004E 0067 ; [.1DBA.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
+004E 0047 ; [.1DBA.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
+014B ; [.1DBA.0020.001C] # LATIN SMALL LETTER ENG
+014A ; [.1DBA.0020.001D] # LATIN CAPITAL LETTER ENG
+02BB ; [.1F22.0020.0002] # MODIFIER LETTER TURNED COMMA
+02BD ; [.1F22.0020.0003] # MODIFIER LETTER REVERSED COMMA
+00E1 ; [.1C47.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C47.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C47.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C47.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C47.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0101 ; [.1C47.0022.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1C47.0022.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1C47.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1C47.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E9 ; [.1CAA.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CAA.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CAA.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CAA.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CAA.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0113 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00ED ; [.1D32.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1D32.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1D32.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1D32.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1D32.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+012B ; [.1D32.0022.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1D32.0022.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1D32.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1D32.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00F3 ; [.1DDD.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDD.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDD.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDD.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDD.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+014D ; [.1DDD.0022.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1DDD.0022.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1DDD.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1DDD.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00FA ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+016B ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tr.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tr.pl
index 5eb59581a34..6eba527a961 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tr.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/tr.pl
@@ -1,46 +1,46 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E7 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-0063 0327 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
-00C7 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-011F ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-0067 0306 ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0047 0306 ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0131 ; [.19F5.0020.0002] # LATIN SMALL LETTER DOTLESS I
-0049 ; [.19F5.0020.0008] # LATIN CAPITAL LETTER I
-00CC ; [.19F5.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-00CD ; [.19F5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00CE ; [.19F5.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF ; [.19F5.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-012A ; [.19F5.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-012C ; [.19F5.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-012E ; [.19F5.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-0130 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0049 0307 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-00F6 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1AA2.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA2.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-015F ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-00FC ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1B78.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B78.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1B78.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B78.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1B78.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B78.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1B78.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B78.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00E7 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+0063 0327 ; [.1C7B.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+00C7 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+0043 0327 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+011F ; [.1CF5.0020.0002] # LATIN SMALL LETTER G WITH BREVE
+0067 0306 ; [.1CF5.0020.0002] # LATIN SMALL LETTER G WITH BREVE
+011E ; [.1CF5.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
+0047 0306 ; [.1CF5.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
+0131 ; [.1D31.0020.0002] # LATIN SMALL LETTER DOTLESS I
+0049 ; [.1D31.0020.0008] # LATIN CAPITAL LETTER I
+00CC ; [.1D31.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
+00CD ; [.1D31.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
+00CE ; [.1D31.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF ; [.1D31.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
+012A ; [.1D31.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
+012C ; [.1D31.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
+012E ; [.1D31.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
+0130 ; [.1D32.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+0049 0307 ; [.1D32.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+00F6 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1DDE.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1DDE.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+015F ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+0073 0327 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+015E ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+0053 0327 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+00FC ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1EB6.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB6.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1EB6.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB6.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1EB6.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB6.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1EB6.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB6.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/uk.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/uk.pl
index 844e836ec76..37f1fcbd741 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/uk.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/uk.pl
@@ -1,45 +1,14 @@
+{
- locale_version => 1.14,
- suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
- 0x0416, 0x0436, 0x0417, 0x0437, 0x041E, 0x043E, 0x04E8, 0x04E9,
- 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447, 0x042B, 0x044B,
- 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-0491 ; [.1D01.0020.0002] # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0490 ; [.1D01.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0491 ; [.2037.0020.0002] # CYRILLIC SMALL LETTER GHE WITH UPTURN
+0490 ; [.2037.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+A647 ; [.2089.0020.0002] # CYRILLIC SMALL LETTER IOTA
+A646 ; [.2089.0020.0008] # CYRILLIC CAPITAL LETTER IOTA
+0457 ; [.208A.0020.0002] # CYRILLIC SMALL LETTER YI
+0456 0308 ; [.208A.0020.0002] # CYRILLIC SMALL LETTER YI
+0407 ; [.208A.0020.0008] # CYRILLIC CAPITAL LETTER YI
+0406 0308 ; [.208A.0020.0008] # CYRILLIC CAPITAL LETTER YI
+A676 ; [.208A.0020.0004] # COMBINING CYRILLIC LETTER YI
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ur.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ur.pl
index b248e1ca89e..0801863f18c 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ur.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/ur.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0623 ; [.2015.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0627 0654 ; [.2015.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0622 ; [.2016.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.2016.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0628 ; [.2016.0020.0002][.FFC1.0000.0000] # ARABIC LETTER BEH
-0628 06BE ; [.2016.0020.0002][.FFC2.0000.0000] # <ARABIC LETTER BEH, ARABIC LETTER HEH DOACHASHMEE>
-067E ; [.2016.0020.0002][.FFC3.0000.0000] # ARABIC LETTER PEH
-067E 06BE ; [.2016.0020.0002][.FFC4.0000.0000] # <ARABIC LETTER PEH, ARABIC LETTER HEH DOACHASHMEE>
-062A ; [.2016.0020.0002][.FFC5.0000.0000] # ARABIC LETTER TEH
-062A 06BE ; [.2016.0020.0002][.FFC6.0000.0000] # <ARABIC LETTER TEH, ARABIC LETTER HEH DOACHASHMEE>
-0679 ; [.2016.0020.0002][.FFC7.0000.0000] # ARABIC LETTER TTEH
-0679 06BE ; [.2016.0020.0002][.FFC8.0000.0000] # <ARABIC LETTER TTEH, ARABIC LETTER HEH DOACHASHMEE>
-062B ; [.2016.0020.0002][.FFC9.0000.0000] # ARABIC LETTER THEH
-062C ; [.2016.0020.0002][.FFCA.0000.0000] # ARABIC LETTER JEEM
-062C 06BE ; [.2016.0020.0002][.FFCB.0000.0000] # <ARABIC LETTER JEEM, ARABIC LETTER HEH DOACHASHMEE>
-0686 ; [.2016.0020.0002][.FFCC.0000.0000] # ARABIC LETTER TCHEH
-0686 06BE ; [.2016.0020.0002][.FFCD.0000.0000] # <ARABIC LETTER TCHEH, ARABIC LETTER HEH DOACHASHMEE>
-062D ; [.2016.0020.0002][.FFCE.0000.0000] # ARABIC LETTER HAH
-062E ; [.2016.0020.0002][.FFCF.0000.0000] # ARABIC LETTER KHAH
-062F ; [.2016.0020.0002][.FFD0.0000.0000] # ARABIC LETTER DAL
-062F 06BE ; [.2016.0020.0002][.FFD1.0000.0000] # <ARABIC LETTER DAL, ARABIC LETTER HEH DOACHASHMEE>
-0688 ; [.2016.0020.0002][.FFD2.0000.0000] # ARABIC LETTER DDAL
-0688 06BE ; [.2016.0020.0002][.FFD3.0000.0000] # <ARABIC LETTER DDAL, ARABIC LETTER HEH DOACHASHMEE>
-0630 ; [.2016.0020.0002][.FFD4.0000.0000] # ARABIC LETTER THAL
-0631 ; [.2016.0020.0002][.FFD5.0000.0000] # ARABIC LETTER REH
-0631 06BE ; [.2016.0020.0002][.FFD6.0000.0000] # <ARABIC LETTER REH, ARABIC LETTER HEH DOACHASHMEE>
-0691 ; [.2016.0020.0002][.FFD7.0000.0000] # ARABIC LETTER RREH
-0691 06BE ; [.2016.0020.0002][.FFD8.0000.0000] # <ARABIC LETTER RREH, ARABIC LETTER HEH DOACHASHMEE>
-0632 ; [.2016.0020.0002][.FFD9.0000.0000] # ARABIC LETTER ZAIN
-0698 ; [.2016.0020.0002][.FFDA.0000.0000] # ARABIC LETTER JEH
-0633 ; [.2016.0020.0002][.FFDB.0000.0000] # ARABIC LETTER SEEN
-0634 ; [.2016.0020.0002][.FFDC.0000.0000] # ARABIC LETTER SHEEN
-0635 ; [.2016.0020.0002][.FFDD.0000.0000] # ARABIC LETTER SAD
-0636 ; [.2016.0020.0002][.FFDE.0000.0000] # ARABIC LETTER DAD
-0637 ; [.2016.0020.0002][.FFDF.0000.0000] # ARABIC LETTER TAH
-0638 ; [.2016.0020.0002][.FFE0.0000.0000] # ARABIC LETTER ZAH
-0639 ; [.2016.0020.0002][.FFE1.0000.0000] # ARABIC LETTER AIN
-063A ; [.2016.0020.0002][.FFE2.0000.0000] # ARABIC LETTER GHAIN
-0641 ; [.2016.0020.0002][.FFE3.0000.0000] # ARABIC LETTER FEH
-0642 ; [.2016.0020.0002][.FFE4.0000.0000] # ARABIC LETTER QAF
-06A9 ; [.2016.0020.0002][.FFE5.0000.0000] # ARABIC LETTER KEHEH
-06A9 06BE ; [.2016.0020.0002][.FFE6.0000.0000] # <ARABIC LETTER KEHEH, ARABIC LETTER HEH DOACHASHMEE>
-06AF ; [.2016.0020.0002][.FFE7.0000.0000] # ARABIC LETTER GAF
-06AF 06BE ; [.2016.0020.0002][.FFE8.0000.0000] # <ARABIC LETTER GAF, ARABIC LETTER HEH DOACHASHMEE>
-0644 ; [.2016.0020.0002][.FFE9.0000.0000] # ARABIC LETTER LAM
-0644 06BE ; [.2016.0020.0002][.FFEA.0000.0000] # <ARABIC LETTER LAM, ARABIC LETTER HEH DOACHASHMEE>
-0645 ; [.2016.0020.0002][.FFEB.0000.0000] # ARABIC LETTER MEEM
-0645 06BE ; [.2016.0020.0002][.FFEC.0000.0000] # <ARABIC LETTER MEEM, ARABIC LETTER HEH DOACHASHMEE>
-0646 ; [.2016.0020.0002][.FFED.0000.0000] # ARABIC LETTER NOON
-0646 06BE ; [.2016.0020.0002][.FFEE.0000.0000] # <ARABIC LETTER NOON, ARABIC LETTER HEH DOACHASHMEE>
-06BA ; [.2016.0020.0002][.FFEF.0000.0000] # ARABIC LETTER NOON GHUNNA
-06BA 06BE ; [.2016.0020.0002][.FFF0.0000.0000] # <ARABIC LETTER NOON GHUNNA, ARABIC LETTER HEH DOACHASHMEE>
-0648 ; [.2016.0020.0002][.FFF1.0000.0000] # ARABIC LETTER WAW
-0624 ; [.2016.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.2016.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 06BE ; [.2016.0020.0002][.FFF2.0000.0000] # <ARABIC LETTER WAW, ARABIC LETTER HEH DOACHASHMEE>
-06C1 ; [.2016.0020.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL
-06C2 ; [.2016.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C1 0654 ; [.2016.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06BE ; [.2016.0020.0002][.FFF4.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
-06C3 ; [.2016.0020.0002][.FFF5.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
-0621 ; [.2016.0020.0002][.FFF6.0000.0000] # ARABIC LETTER HAMZA
-06CC ; [.2016.0020.0002][.FFF7.0000.0000] # ARABIC LETTER FARSI YEH
-0626 ; [.2016.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.2016.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-06CC 06BE ; [.2016.0020.0002][.FFF8.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC LETTER HEH DOACHASHMEE>
-06D2 ; [.2016.0020.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE
-06D3 ; [.2016.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D2 0654 ; [.2016.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-066E ; [.2016.0020.0002][.FFFA.0000.0000] # ARABIC LETTER DOTLESS BEH
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0623 ; [.230B.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0627 0654 ; [.230B.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0622 ; [.230C.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
+0627 0653 ; [.230C.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
+0628 ; [.230C.0020.0002][.FFC1.0000.0000] # ARABIC LETTER BEH
+0628 06BE ; [.230C.0020.0002][.FFC2.0000.0000] # <ARABIC LETTER BEH, ARABIC LETTER HEH DOACHASHMEE>
+067E ; [.230C.0020.0002][.FFC3.0000.0000] # ARABIC LETTER PEH
+067E 06BE ; [.230C.0020.0002][.FFC4.0000.0000] # <ARABIC LETTER PEH, ARABIC LETTER HEH DOACHASHMEE>
+062A ; [.230C.0020.0002][.FFC5.0000.0000] # ARABIC LETTER TEH
+062A 06BE ; [.230C.0020.0002][.FFC6.0000.0000] # <ARABIC LETTER TEH, ARABIC LETTER HEH DOACHASHMEE>
+0679 ; [.230C.0020.0002][.FFC7.0000.0000] # ARABIC LETTER TTEH
+0679 06BE ; [.230C.0020.0002][.FFC8.0000.0000] # <ARABIC LETTER TTEH, ARABIC LETTER HEH DOACHASHMEE>
+062B ; [.230C.0020.0002][.FFC9.0000.0000] # ARABIC LETTER THEH
+062C ; [.230C.0020.0002][.FFCA.0000.0000] # ARABIC LETTER JEEM
+062C 06BE ; [.230C.0020.0002][.FFCB.0000.0000] # <ARABIC LETTER JEEM, ARABIC LETTER HEH DOACHASHMEE>
+0686 ; [.230C.0020.0002][.FFCC.0000.0000] # ARABIC LETTER TCHEH
+0686 06BE ; [.230C.0020.0002][.FFCD.0000.0000] # <ARABIC LETTER TCHEH, ARABIC LETTER HEH DOACHASHMEE>
+062D ; [.230C.0020.0002][.FFCE.0000.0000] # ARABIC LETTER HAH
+062E ; [.230C.0020.0002][.FFCF.0000.0000] # ARABIC LETTER KHAH
+062F ; [.230C.0020.0002][.FFD0.0000.0000] # ARABIC LETTER DAL
+062F 06BE ; [.230C.0020.0002][.FFD1.0000.0000] # <ARABIC LETTER DAL, ARABIC LETTER HEH DOACHASHMEE>
+0688 ; [.230C.0020.0002][.FFD2.0000.0000] # ARABIC LETTER DDAL
+0688 06BE ; [.230C.0020.0002][.FFD3.0000.0000] # <ARABIC LETTER DDAL, ARABIC LETTER HEH DOACHASHMEE>
+0630 ; [.230C.0020.0002][.FFD4.0000.0000] # ARABIC LETTER THAL
+0631 ; [.230C.0020.0002][.FFD5.0000.0000] # ARABIC LETTER REH
+0631 06BE ; [.230C.0020.0002][.FFD6.0000.0000] # <ARABIC LETTER REH, ARABIC LETTER HEH DOACHASHMEE>
+0691 ; [.230C.0020.0002][.FFD7.0000.0000] # ARABIC LETTER RREH
+0691 06BE ; [.230C.0020.0002][.FFD8.0000.0000] # <ARABIC LETTER RREH, ARABIC LETTER HEH DOACHASHMEE>
+0632 ; [.230C.0020.0002][.FFD9.0000.0000] # ARABIC LETTER ZAIN
+0698 ; [.230C.0020.0002][.FFDA.0000.0000] # ARABIC LETTER JEH
+0633 ; [.230C.0020.0002][.FFDB.0000.0000] # ARABIC LETTER SEEN
+0634 ; [.230C.0020.0002][.FFDC.0000.0000] # ARABIC LETTER SHEEN
+0635 ; [.230C.0020.0002][.FFDD.0000.0000] # ARABIC LETTER SAD
+0636 ; [.230C.0020.0002][.FFDE.0000.0000] # ARABIC LETTER DAD
+0637 ; [.230C.0020.0002][.FFDF.0000.0000] # ARABIC LETTER TAH
+0638 ; [.230C.0020.0002][.FFE0.0000.0000] # ARABIC LETTER ZAH
+0639 ; [.230C.0020.0002][.FFE1.0000.0000] # ARABIC LETTER AIN
+063A ; [.230C.0020.0002][.FFE2.0000.0000] # ARABIC LETTER GHAIN
+0641 ; [.230C.0020.0002][.FFE3.0000.0000] # ARABIC LETTER FEH
+0642 ; [.230C.0020.0002][.FFE4.0000.0000] # ARABIC LETTER QAF
+06A9 ; [.230C.0020.0002][.FFE5.0000.0000] # ARABIC LETTER KEHEH
+06A9 06BE ; [.230C.0020.0002][.FFE6.0000.0000] # <ARABIC LETTER KEHEH, ARABIC LETTER HEH DOACHASHMEE>
+06AF ; [.230C.0020.0002][.FFE7.0000.0000] # ARABIC LETTER GAF
+06AF 06BE ; [.230C.0020.0002][.FFE8.0000.0000] # <ARABIC LETTER GAF, ARABIC LETTER HEH DOACHASHMEE>
+0644 ; [.230C.0020.0002][.FFE9.0000.0000] # ARABIC LETTER LAM
+0644 06BE ; [.230C.0020.0002][.FFEA.0000.0000] # <ARABIC LETTER LAM, ARABIC LETTER HEH DOACHASHMEE>
+0645 ; [.230C.0020.0002][.FFEB.0000.0000] # ARABIC LETTER MEEM
+0645 06BE ; [.230C.0020.0002][.FFEC.0000.0000] # <ARABIC LETTER MEEM, ARABIC LETTER HEH DOACHASHMEE>
+0646 ; [.230C.0020.0002][.FFED.0000.0000] # ARABIC LETTER NOON
+0646 06BE ; [.230C.0020.0002][.FFEE.0000.0000] # <ARABIC LETTER NOON, ARABIC LETTER HEH DOACHASHMEE>
+06BA ; [.230C.0020.0002][.FFEF.0000.0000] # ARABIC LETTER NOON GHUNNA
+06BA 06BE ; [.230C.0020.0002][.FFF0.0000.0000] # <ARABIC LETTER NOON GHUNNA, ARABIC LETTER HEH DOACHASHMEE>
+0648 ; [.230C.0020.0002][.FFF1.0000.0000] # ARABIC LETTER WAW
+0624 ; [.230C.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
+0648 0654 ; [.230C.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
+0648 06BE ; [.230C.0020.0002][.FFF2.0000.0000] # <ARABIC LETTER WAW, ARABIC LETTER HEH DOACHASHMEE>
+06C1 ; [.230C.0020.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL
+06C2 ; [.230C.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06C1 0654 ; [.230C.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06BE ; [.230C.0020.0002][.FFF4.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
+06C3 ; [.230C.0020.0002][.FFF5.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
+0621 ; [.230C.0020.0002][.FFF6.0000.0000] # ARABIC LETTER HAMZA
+06CC ; [.230C.0020.0002][.FFF7.0000.0000] # ARABIC LETTER FARSI YEH
+0626 ; [.230C.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
+064A 0654 ; [.230C.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
+06CC 06BE ; [.230C.0020.0002][.FFF8.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC LETTER HEH DOACHASHMEE>
+06D2 ; [.230C.0020.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE
+06D3 ; [.230C.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D2 0654 ; [.230C.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+066E ; [.230C.0020.0002][.FFFA.0000.0000] # ARABIC LETTER DOTLESS BEH
0652 ; [.0000.0074.0002] # ARABIC SUKUN
064E ; [.0000.0075.0002] # ARABIC FATHA
0650 ; [.0000.0076.0002] # ARABIC KASRA
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/vi.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/vi.pl
index 9c99d49b8a4..b269a1c303b 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/vi.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/vi.pl
@@ -1,220 +1,220 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# 0306 is not a Vietnamese tone, just to avoid \x{306} eq. to something.
- entry => <<'ENTRY', # for DUCET v7.0.0
+ entry => <<'ENTRY', # for DUCET v9.0.0
0309 ; [.0000.0026.0002][.0000.00F0.0000] # COMBINING HOOK ABOVE
-1EA3 ; [.190C.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA2 ; [.190C.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EBB ; [.196E.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBA ; [.196E.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EC9 ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER I WITH HOOK ABOVE
-1EC8 ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1ECF ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ECE ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1EE7 ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE6 ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-1EF7 ; [.1BCD.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF6 ; [.1BCD.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EA3 ; [.1C47.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA2 ; [.1C47.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EBB ; [.1CAA.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBA ; [.1CAA.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EC9 ; [.1D32.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER I WITH HOOK ABOVE
+1EC8 ; [.1D32.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1ECF ; [.1DDD.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HOOK ABOVE
+1ECE ; [.1DDD.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1EE7 ; [.1EB5.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE6 ; [.1EB5.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EF7 ; [.1F0B.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF6 ; [.1F0B.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
0303 ; [.0000.0026.0002][.0000.00F1.0000] # COMBINING TILDE
-00E3 ; [.190C.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.190C.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH TILDE
-1EBD ; [.196E.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH TILDE
-1EBC ; [.196E.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH TILDE
-0129 ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER I WITH TILDE
-0128 ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER I WITH TILDE
-00F5 ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH TILDE
-0169 ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH TILDE
-0168 ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH TILDE
-1EF9 ; [.1BCD.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER Y WITH TILDE
-1EF8 ; [.1BCD.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER Y WITH TILDE
+00E3 ; [.1C47.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH TILDE
+00C3 ; [.1C47.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH TILDE
+1EBD ; [.1CAA.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH TILDE
+1EBC ; [.1CAA.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH TILDE
+0129 ; [.1D32.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER I WITH TILDE
+0128 ; [.1D32.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER I WITH TILDE
+00F5 ; [.1DDD.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1DDD.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH TILDE
+0169 ; [.1EB5.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH TILDE
+0168 ; [.1EB5.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH TILDE
+1EF9 ; [.1F0B.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER Y WITH TILDE
+1EF8 ; [.1F0B.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER Y WITH TILDE
0301 ; [.0000.0026.0002][.0000.00F2.0000] # COMBINING ACUTE ACCENT
-00E1 ; [.190C.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH ACUTE
-00E9 ; [.196E.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH ACUTE
-00ED ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER I WITH ACUTE
-00F3 ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH ACUTE
-00FA ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH ACUTE
-00FD ; [.1BCD.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.1BCD.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER Y WITH ACUTE
+00E1 ; [.1C47.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH ACUTE
+00E9 ; [.1CAA.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH ACUTE
+00ED ; [.1D32.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER I WITH ACUTE
+00F3 ; [.1DDD.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH ACUTE
+00FA ; [.1EB5.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH ACUTE
+00FD ; [.1F0B.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER Y WITH ACUTE
+00DD ; [.1F0B.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER Y WITH ACUTE
0341 ; [.0000.0026.0002][.0000.00F2.0000] # COMBINING ACUTE TONE MARK
0323 ; [.0000.0026.0002][.0000.00F3.0000] # COMBINING DOT BELOW
-1EA1 ; [.190C.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH DOT BELOW
-1EA0 ; [.190C.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EB9 ; [.196E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH DOT BELOW
-1EB8 ; [.196E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1ECB ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECD ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1EE5 ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EF5 ; [.1BCD.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF4 ; [.1BCD.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EA1 ; [.1C47.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH DOT BELOW
+1EA0 ; [.1C47.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH DOT BELOW
+1EB9 ; [.1CAA.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH DOT BELOW
+1EB8 ; [.1CAA.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH DOT BELOW
+1ECB ; [.1D32.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER I WITH DOT BELOW
+1ECA ; [.1D32.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECD ; [.1DDD.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH DOT BELOW
+1ECC ; [.1DDD.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH DOT BELOW
+1EE5 ; [.1EB5.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH DOT BELOW
+1EE4 ; [.1EB5.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH DOT BELOW
+1EF5 ; [.1F0B.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER Y WITH DOT BELOW
+1EF4 ; [.1F0B.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER Y WITH DOT BELOW
0306 ; [.0000.0026.0002][.0000.00F4.0000] # COMBINING BREVE
-0115 ; [.196E.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER E WITH BREVE
-0114 ; [.196E.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER E WITH BREVE
-012D ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER I WITH BREVE
-012C ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER I WITH BREVE
-014F ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER O WITH BREVE
-014E ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER O WITH BREVE
-016D ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER U WITH BREVE
-0103 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0061 0306 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0102 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-0041 0306 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-1EB1 ; [.190D.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.190D.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EAF ; [.190D.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.190D.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB5 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB7 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-00E2 ; [.190E.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-0061 0302 ; [.190E.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.190E.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-0041 0302 ; [.190E.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA7 ; [.190E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.190E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA5 ; [.190E.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.190E.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EAB ; [.190E.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.190E.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.190E.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.190E.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAD ; [.190E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.190E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-0111 ; [.1954.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1954.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1954.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1954.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00EA ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.196F.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196F.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.196F.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196F.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1AA2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-01A1 ; [.1AA3.0020.0002] # LATIN SMALL LETTER O WITH HORN
-006F 031B ; [.1AA3.0020.0002] # LATIN SMALL LETTER O WITH HORN
-01A0 ; [.1AA3.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
-004F 031B ; [.1AA3.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
-1EDD ; [.1AA3.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDC ; [.1AA3.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EDB ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDA ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EE1 ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EDF ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EDE ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EE3 ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-01B0 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH HORN
-0075 031B ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH HORN
-01AF ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
-0055 031B ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
-1EEB ; [.1B78.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEA ; [.1B78.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EE9 ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EE8 ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EEF ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EEE ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EED ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEC ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EF1 ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EA1 0306 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING BREVE>
-1EA0 0306 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING BREVE>
-1EA1 0302 ; [.190E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EA0 0302 ; [.190E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EB9 0302 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EB8 0302 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1ECD 0302 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1ECC 0302 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-00F2 031B ; [.1AA3.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O WITH GRAVE, COMBINING HORN>
-1ECF 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O WITH HOOK ABOVE, COMBINING HORN>
-00F5 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O WITH TILDE, COMBINING HORN>
-00F3 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O WITH ACUTE, COMBINING HORN>
-1ECD 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING HORN>
-00D2 031B ; [.1AA3.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O WITH GRAVE, COMBINING HORN>
-1ECE 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O WITH HOOK ABOVE, COMBINING HORN>
-00D5 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O WITH TILDE, COMBINING HORN>
-00D3 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O WITH ACUTE, COMBINING HORN>
-1ECC 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING HORN>
-00F9 031B ; [.1B78.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U WITH GRAVE, COMBINING HORN>
-1EE7 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U WITH HOOK ABOVE, COMBINING HORN>
-0169 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U WITH TILDE, COMBINING HORN>
-00FA 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U WITH ACUTE, COMBINING HORN>
-1EE5 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U WITH DOT BELOW, COMBINING HORN>
-00D9 031B ; [.1B78.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U WITH GRAVE, COMBINING HORN>
-1EE6 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U WITH HOOK ABOVE, COMBINING HORN>
-0168 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U WITH TILDE, COMBINING HORN>
-00DA 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U WITH ACUTE, COMBINING HORN>
-1EE4 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U WITH DOT BELOW, COMBINING HORN>
-0061 0323 0306 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
-0041 0323 0306 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
-0061 0323 0302 ; [.190E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0041 0323 0302 ; [.190E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0065 0323 0302 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0045 0323 0302 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-006F 0323 0302 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-004F 0323 0302 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-006F 0300 031B ; [.1AA3.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
-006F 0340 031B ; [.1AA3.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
-006F 0309 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
-006F 0303 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O, COMBINING TILDE, COMBINING HORN>
-006F 0301 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
-006F 0341 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
-006F 0323 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
-004F 0300 031B ; [.1AA3.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
-004F 0340 031B ; [.1AA3.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
-004F 0309 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
-004F 0303 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O, COMBINING TILDE, COMBINING HORN>
-004F 0301 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
-004F 0341 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
-004F 0323 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
-0075 0300 031B ; [.1B78.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
-0075 0340 031B ; [.1B78.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
-0075 0309 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
-0075 0303 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U, COMBINING TILDE, COMBINING HORN>
-0075 0301 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
-0075 0341 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
-0075 0323 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
-0055 0300 031B ; [.1B78.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
-0055 0340 031B ; [.1B78.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
-0055 0309 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
-0055 0303 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U, COMBINING TILDE, COMBINING HORN>
-0055 0301 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
-0055 0341 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
-0055 0323 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
+0115 ; [.1CAA.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER E WITH BREVE
+0114 ; [.1CAA.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER E WITH BREVE
+012D ; [.1D32.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER I WITH BREVE
+012C ; [.1D32.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER I WITH BREVE
+014F ; [.1DDD.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER O WITH BREVE
+014E ; [.1DDD.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER O WITH BREVE
+016D ; [.1EB5.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER U WITH BREVE
+016C ; [.1EB5.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER U WITH BREVE
+0103 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH BREVE
+0061 0306 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH BREVE
+0102 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
+0041 0306 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
+1EB1 ; [.1C48.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB0 ; [.1C48.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EAF ; [.1C48.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EAE ; [.1C48.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EB5 ; [.1C48.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB4 ; [.1C48.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB3 ; [.1C48.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB2 ; [.1C48.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB7 ; [.1C48.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB6 ; [.1C48.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+00E2 ; [.1C49.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0061 0302 ; [.1C49.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2 ; [.1C49.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0041 0302 ; [.1C49.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+1EA7 ; [.1C49.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA6 ; [.1C49.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA5 ; [.1C49.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA4 ; [.1C49.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EAB ; [.1C49.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAA ; [.1C49.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EA9 ; [.1C49.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA8 ; [.1C49.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAD ; [.1C49.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAC ; [.1C49.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+0111 ; [.1C90.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C90.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C90.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C90.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00EA ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC1 ; [.1CAB.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAB.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EBF ; [.1CAB.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAB.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC5 ; [.1CAB.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAB.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAB.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAB.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAB.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAB.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+00F4 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1DDE.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1DDE.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1DDE.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1DDE.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1DDE.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1DDE.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1DDE.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1DDE.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1DDE.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1DDE.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+01A1 ; [.1DDF.0020.0002] # LATIN SMALL LETTER O WITH HORN
+006F 031B ; [.1DDF.0020.0002] # LATIN SMALL LETTER O WITH HORN
+01A0 ; [.1DDF.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
+004F 031B ; [.1DDF.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
+1EDD ; [.1DDF.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDC ; [.1DDF.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDB ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDA ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EE1 ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE0 ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EDF ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EDE ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EE3 ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE2 ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+01B0 ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH HORN
+0075 031B ; [.1EB6.0020.0002] # LATIN SMALL LETTER U WITH HORN
+01AF ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
+0055 031B ; [.1EB6.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
+1EEB ; [.1EB6.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEA ; [.1EB6.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EE9 ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EE8 ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EEF ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH HORN AND TILDE
+1EEE ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EED ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEC ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EF1 ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF0 ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EA1 0306 ; [.1C48.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING BREVE>
+1EA0 0306 ; [.1C48.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING BREVE>
+1EA1 0302 ; [.1C49.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1EA0 0302 ; [.1C49.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1EB9 0302 ; [.1CAB.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1EB8 0302 ; [.1CAB.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1ECD 0302 ; [.1DDE.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1ECC 0302 ; [.1DDE.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+00F2 031B ; [.1DDF.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O WITH GRAVE, COMBINING HORN>
+1ECF 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O WITH HOOK ABOVE, COMBINING HORN>
+00F5 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O WITH TILDE, COMBINING HORN>
+00F3 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O WITH ACUTE, COMBINING HORN>
+1ECD 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING HORN>
+00D2 031B ; [.1DDF.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O WITH GRAVE, COMBINING HORN>
+1ECE 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O WITH HOOK ABOVE, COMBINING HORN>
+00D5 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O WITH TILDE, COMBINING HORN>
+00D3 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O WITH ACUTE, COMBINING HORN>
+1ECC 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING HORN>
+00F9 031B ; [.1EB6.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U WITH GRAVE, COMBINING HORN>
+1EE7 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U WITH HOOK ABOVE, COMBINING HORN>
+0169 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U WITH TILDE, COMBINING HORN>
+00FA 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U WITH ACUTE, COMBINING HORN>
+1EE5 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U WITH DOT BELOW, COMBINING HORN>
+00D9 031B ; [.1EB6.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U WITH GRAVE, COMBINING HORN>
+1EE6 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U WITH HOOK ABOVE, COMBINING HORN>
+0168 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U WITH TILDE, COMBINING HORN>
+00DA 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U WITH ACUTE, COMBINING HORN>
+1EE4 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U WITH DOT BELOW, COMBINING HORN>
+0061 0323 0306 ; [.1C48.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
+0041 0323 0306 ; [.1C48.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
+0061 0323 0302 ; [.1C49.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+0041 0323 0302 ; [.1C49.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+0065 0323 0302 ; [.1CAB.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+0045 0323 0302 ; [.1CAB.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+006F 0323 0302 ; [.1DDE.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+004F 0323 0302 ; [.1DDE.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+006F 0300 031B ; [.1DDF.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
+006F 0340 031B ; [.1DDF.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
+006F 0309 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
+006F 0303 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O, COMBINING TILDE, COMBINING HORN>
+006F 0301 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
+006F 0341 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
+006F 0323 031B ; [.1DDF.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
+004F 0300 031B ; [.1DDF.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
+004F 0340 031B ; [.1DDF.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
+004F 0309 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
+004F 0303 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O, COMBINING TILDE, COMBINING HORN>
+004F 0301 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
+004F 0341 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
+004F 0323 031B ; [.1DDF.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
+0075 0300 031B ; [.1EB6.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
+0075 0340 031B ; [.1EB6.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
+0075 0309 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
+0075 0303 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U, COMBINING TILDE, COMBINING HORN>
+0075 0301 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
+0075 0341 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
+0075 0323 031B ; [.1EB6.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
+0055 0300 031B ; [.1EB6.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
+0055 0340 031B ; [.1EB6.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
+0055 0309 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
+0055 0303 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U, COMBINING TILDE, COMBINING HORN>
+0055 0301 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
+0055 0341 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
+0055 0323 031B ; [.1EB6.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wae.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wae.pl
index 42fcc2a23ad..90ae2195566 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wae.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wae.pl
@@ -1,24 +1,24 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0061 0061 ; [.190C.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-00E4 00E4 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
-00E4 0061 0308 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
-0061 0308 00E4 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
-0061 0308 0061 0308 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
-0065 0065 ; [.196E.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER E, LATIN SMALL LETTER E>
-0069 0069 ; [.19F6.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER I, LATIN SMALL LETTER I>
-006F 006F ; [.1AA1.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER O, LATIN SMALL LETTER O>
-00F6 00F6 ; [.1AA1.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
-00F6 006F 0308 ; [.1AA1.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
-006F 0308 00F6 ; [.1AA1.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
-006F 0308 006F 0308 ; [.1AA1.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
-0063 0068 ; [.193E.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0073 0063 0068 ; [.1B33.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0075 0075 ; [.1B77.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER U, LATIN SMALL LETTER U>
-00FC 00FC ; [.1B77.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
-00FC 0075 0308 ; [.1B77.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
-0075 0308 00FC ; [.1B77.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
-0075 0308 0075 0308 ; [.1B77.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0061 0061 ; [.1C47.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+00E4 00E4 ; [.1C47.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
+00E4 0061 0308 ; [.1C47.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
+0061 0308 00E4 ; [.1C47.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
+0061 0308 0061 0308 ; [.1C47.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
+0065 0065 ; [.1CAA.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER E, LATIN SMALL LETTER E>
+0069 0069 ; [.1D32.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER I, LATIN SMALL LETTER I>
+006F 006F ; [.1DDD.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER O, LATIN SMALL LETTER O>
+00F6 00F6 ; [.1DDD.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
+00F6 006F 0308 ; [.1DDD.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
+006F 0308 00F6 ; [.1DDD.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
+006F 0308 006F 0308 ; [.1DDD.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
+0063 0068 ; [.1C7A.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0073 0063 0068 ; [.1E71.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0075 0075 ; [.1EB5.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER U, LATIN SMALL LETTER U>
+00FC 00FC ; [.1EB5.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
+00FC 0075 0308 ; [.1EB5.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
+0075 0308 00FC ; [.1EB5.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
+0075 0308 0075 0308 ; [.1EB5.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wo.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wo.pl
index dcc94fed6ee..783e2e97dda 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wo.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/wo.pl
@@ -1,32 +1,32 @@
+{
- locale_version => 1.14,
+ locale_version => 1.25,
# eng doesn't require tailoring
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E0 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-00E9 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-00EB ; [.1970.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-0065 0308 ; [.1970.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.1970.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0045 0308 ; [.1970.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-00F1 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-00F3 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+ entry => <<'ENTRY', # for DUCET v9.0.0
+00E0 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1C48.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1C48.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+00E9 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+00EB ; [.1CAC.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+0065 0308 ; [.1CAC.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+00CB ; [.1CAC.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
+0045 0308 ; [.1CAC.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
+00F1 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1DBA.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+00F3 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/yo.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/yo.pl
index 977dc8f2f28..325985da0ee 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/yo.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/yo.pl
@@ -1,26 +1,26 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-1EB9 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
-0065 0323 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
-1EB8 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
-0045 0323 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EC7 ; [.196F.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196F.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-0067 0062 ; [.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.19B9.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-1ECD ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-006F 0323 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-004F 0323 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.1AA2.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EE3 ; [.1AA2.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.1AA2.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1E63 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-0073 0323 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-1E62 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
-0053 0323 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+1EB9 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
+0065 0323 ; [.1CAB.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
+1EB8 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
+0045 0323 ; [.1CAB.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
+1EC7 ; [.1CAB.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAB.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+0067 0062 ; [.1CF5.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
+0047 0062 ; [.1CF5.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
+0047 0042 ; [.1CF5.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
+1ECD ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+006F 0323 ; [.1DDE.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+1ECC ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
+004F 0323 ; [.1DDE.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
+1ED9 ; [.1DDE.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1DDE.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EE3 ; [.1DDE.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE2 ; [.1DDE.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1E63 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
+0073 0323 ; [.1E72.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
+1E62 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
+0053 0323 ; [.1E72.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh.pl
index 75cd780fbc6..f3a56e13343 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh.pl
@@ -1,211 +1,211 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0101 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ locale_version => 1.25,
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1CAA.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAA.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAA.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAA.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAA.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAA.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1DAA.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1DAA.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1DAA.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1DAA.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1DB9.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1DB9.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1EB5.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1EB5.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1EB5.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1EB5.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
ENTRY
};
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl
index 8136f444e31..520611555a0 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_big5.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Big5;
+{
- locale_version => 1.14,
+ locale_version => 1.25,
overrideCJK => \&Unicode::Collate::CJK::Big5::weightBig5,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0101 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1CAA.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAA.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAA.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAA.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAA.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAA.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1DAA.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1DAA.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1DAA.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1DAA.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1DB9.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1DB9.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1EB5.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1EB5.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1EB5.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1EB5.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
F967 ; [.804A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
FA70 ; [.82DE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
F905 ; [.81CB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl
index 4d092a1dcf5..e39f3dd2873 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_gb.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::GB2312;
+{
- locale_version => 1.14,
+ locale_version => 1.25,
overrideCJK => \&Unicode::Collate::CJK::GB2312::weightGB2312,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0101 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1CAA.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAA.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAA.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAA.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAA.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAA.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1DAA.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1DAA.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1DAA.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1DAA.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1DB9.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1DB9.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1EB5.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1EB5.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1EB5.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1EB5.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
E2D8 ; [.8EAB.0020.0002] # <unknown>
E2D9 ; [.8EAC.0020.0002] # <unknown>
E2DA ; [.8EAD.0020.0002] # <unknown>
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl
index 3562aa112d2..d7447002f7c 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_pin.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Pinyin;
+{
- locale_version => 1.14,
+ locale_version => 1.25,
overrideCJK => \&Unicode::Collate::CJK::Pinyin::weightPinyin,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0101 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1CAA.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAA.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAA.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAA.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAA.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAA.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1DAA.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1DAA.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1DAA.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1DAA.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1DB9.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1DB9.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1EB5.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1EB5.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1EB5.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1EB5.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
FDD0 0041 ; [.8000.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER A>
FDD0 0042 ; [.80C5.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER B>
FDD0 0043 ; [.8441.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER C>
@@ -233,119 +233,119 @@ FDD0 0057 ; [.BBD3.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER W>
FDD0 0058 ; [.BE4A.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER X>
FDD0 0059 ; [.C382.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER Y>
FDD0 005A ; [.CB22.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER Z>
-3220 ; [*030A.0020.0004][.C5CF.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*030A.0020.0004][.AE03.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*030A.0020.0004][.B35F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*030A.0020.0004][.9C92.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*030A.0020.0004][.8E0E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*030A.0020.0004][.BDF1.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*030A.0020.0004][.89B6.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*030A.0020.0004][.AE82.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*030A.0020.0004][.C1F9.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*030A.0020.0004][.80C6.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*030A.0020.0004][.A49F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*030A.0020.0004][.A132.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*030A.0020.0004][.B57B.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*030A.0020.0004][.C10A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*030A.0020.0004][.A8EB.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*030A.0020.0004][.9589.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*030A.0020.0004][.B715.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*030A.0020.0004][.BB2D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*030A.0020.0004][.C304.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*030A.0020.0004][.B272.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*030A.0020.0004][.CA96.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*030A.0020.0004][.C8D2.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*030A.0020.0004][.A98A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*030A.0020.0004][.CF58.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*030A.0020.0004][.B6BA.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*030A.0020.0004][.97BC.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*030A.0020.0004][.B980.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*030A.0020.0004][.999B.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*030A.0020.0004][.B4AC.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*030A.0020.0004][.CFAD.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*030A.0020.0004][.98D6.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*030A.0020.0004][.D0D4.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*030A.0020.0004][.CE51.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*030A.0020.0004][.844F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*030A.0020.0004][.D0A3.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*030A.0020.0004][.9B96.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.1902.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.1903.0020.0004][.1902.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.1903.0020.0004][.1902.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.1903.0020.0004][.1902.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.1903.0020.0004][.1903.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.1903.0020.0004][.1903.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.1903.0020.0004][.1903.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.1903.0020.0004][.1904.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.1903.0020.0004][.1904.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.1903.0020.0004][.1904.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.1903.0020.0004][.1905.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.1903.0020.0004][.1905.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.1903.0020.0004][.1906.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.1903.0020.0004][.1906.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.1903.0020.0004][.1907.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.1903.0020.0004][.1907.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.1903.0020.0004][.1908.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.1903.0020.0004][.1908.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.1903.0020.0004][.1909.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.1903.0020.0004][.1909.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.1903.0020.0004][.190A.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.1903.0020.0004][.190A.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.1903.0020.0004][.190B.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.1903.0020.0004][.190B.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.1903.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.1903.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.1903.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.1904.0020.0004][.1902.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.1904.0020.0004][.1902.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.1904.0020.0004][.1903.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.1904.0020.0004][.1903.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.1904.0020.0004][.1904.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.1904.0020.0004][.1904.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.1904.0020.0004][.1905.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.1904.0020.0004][.1905.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.1904.0020.0004][.1906.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.1904.0020.0004][.1906.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.1904.0020.0004][.1907.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.1904.0020.0004][.1908.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.1904.0020.0004][.1909.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.1904.0020.0004][.190A.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.1904.0020.0004][.190B.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.1904.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.1904.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.1904.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.1905.0020.0004][.1902.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.1905.0020.0004][.1903.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.1905.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.1905.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.1905.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.1906.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.1906.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.1906.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.1907.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.1907.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.1907.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.1908.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.1908.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.1908.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.1909.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.1909.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.1909.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.190A.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.190A.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.190A.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.190B.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.190B.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.190B.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*036C.0020.0004][.B35F.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*036C.0020.0004][.8E0E.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*036C.0020.0004][.B548.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*036C.0020.0004][.8049.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*036C.0020.0004][.89A6.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*036C.0020.0004][.811B.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*036C.0020.0004][.81FC.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*036C.0020.0004][.8B60.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*036C.0020.0004][.8A91.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+3220 ; [*0317.0020.0004][.C5CF.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3226 ; [*0317.0020.0004][.AE03.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3222 ; [*0317.0020.0004][.B35F.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
+3228 ; [*0317.0020.0004][.9C92.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3221 ; [*0317.0020.0004][.8E0E.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
+3224 ; [*0317.0020.0004][.BDF1.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3239 ; [*0317.0020.0004][.89B6.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+323D ; [*0317.0020.0004][.AE82.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+3241 ; [*0317.0020.0004][.C1F9.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3227 ; [*0317.0020.0004][.80C6.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3225 ; [*0317.0020.0004][.A49F.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3238 ; [*0317.0020.0004][.A132.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3229 ; [*0317.0020.0004][.B57B.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+323F ; [*0317.0020.0004][.C10A.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+3234 ; [*0317.0020.0004][.A8EB.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+323A ; [*0317.0020.0004][.9589.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+3223 ; [*0317.0020.0004][.B715.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+322F ; [*0317.0020.0004][.BB2D.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+323B ; [*0317.0020.0004][.C304.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+3230 ; [*0317.0020.0004][.B272.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+322A ; [*0317.0020.0004][.CA96.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+3232 ; [*0317.0020.0004][.C8D2.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+322D ; [*0317.0020.0004][.A98A.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+3231 ; [*0317.0020.0004][.CF58.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+322C ; [*0317.0020.0004][.B6BA.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322B ; [*0317.0020.0004][.97BC.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+3235 ; [*0317.0020.0004][.B980.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+323C ; [*0317.0020.0004][.999B.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+3233 ; [*0317.0020.0004][.B4AC.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3237 ; [*0317.0020.0004][.CFAD.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3240 ; [*0317.0020.0004][.98D6.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3242 ; [*0317.0020.0004][.D0D4.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3243 ; [*0317.0020.0004][.CE51.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3236 ; [*0317.0020.0004][.844F.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+323E ; [*0317.0020.0004][.D0A3.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+322E ; [*0317.0020.0004][.9B96.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+3358 ; [.1C3D.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+33E9 ; [.1C3E.0020.0004][.1C3D.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+32C9 ; [.1C3E.0020.0004][.1C3D.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+3362 ; [.1C3E.0020.0004][.1C3D.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+33EA ; [.1C3E.0020.0004][.1C3E.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+32CA ; [.1C3E.0020.0004][.1C3E.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+3363 ; [.1C3E.0020.0004][.1C3E.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+33EB ; [.1C3E.0020.0004][.1C3F.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+32CB ; [.1C3E.0020.0004][.1C3F.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+3364 ; [.1C3E.0020.0004][.1C3F.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+33EC ; [.1C3E.0020.0004][.1C40.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+3365 ; [.1C3E.0020.0004][.1C40.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+33ED ; [.1C3E.0020.0004][.1C41.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+3366 ; [.1C3E.0020.0004][.1C41.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+33EE ; [.1C3E.0020.0004][.1C42.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+3367 ; [.1C3E.0020.0004][.1C42.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+33EF ; [.1C3E.0020.0004][.1C43.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+3368 ; [.1C3E.0020.0004][.1C43.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+33F0 ; [.1C3E.0020.0004][.1C44.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+3369 ; [.1C3E.0020.0004][.1C44.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+33F1 ; [.1C3E.0020.0004][.1C45.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+336A ; [.1C3E.0020.0004][.1C45.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+33F2 ; [.1C3E.0020.0004][.1C46.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+336B ; [.1C3E.0020.0004][.1C46.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+33E0 ; [.1C3E.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+32C0 ; [.1C3E.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+3359 ; [.1C3E.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+33F3 ; [.1C3F.0020.0004][.1C3D.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+336C ; [.1C3F.0020.0004][.1C3D.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+33F4 ; [.1C3F.0020.0004][.1C3E.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+336D ; [.1C3F.0020.0004][.1C3E.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+33F5 ; [.1C3F.0020.0004][.1C3F.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+336E ; [.1C3F.0020.0004][.1C3F.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+33F6 ; [.1C3F.0020.0004][.1C40.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+336F ; [.1C3F.0020.0004][.1C40.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+33F7 ; [.1C3F.0020.0004][.1C41.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+3370 ; [.1C3F.0020.0004][.1C41.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+33F8 ; [.1C3F.0020.0004][.1C42.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; [.1C3F.0020.0004][.1C43.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; [.1C3F.0020.0004][.1C44.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; [.1C3F.0020.0004][.1C45.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; [.1C3F.0020.0004][.1C46.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33E1 ; [.1C3F.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+32C1 ; [.1C3F.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+335A ; [.1C3F.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+33FD ; [.1C40.0020.0004][.1C3D.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; [.1C40.0020.0004][.1C3E.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33E2 ; [.1C40.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+32C2 ; [.1C40.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+335B ; [.1C40.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+33E3 ; [.1C41.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+32C3 ; [.1C41.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+335C ; [.1C41.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+33E4 ; [.1C42.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+32C4 ; [.1C42.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+335D ; [.1C42.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+33E5 ; [.1C43.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+32C5 ; [.1C43.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+335E ; [.1C43.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+33E6 ; [.1C44.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+32C6 ; [.1C44.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+335F ; [.1C44.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+33E7 ; [.1C45.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+32C7 ; [.1C45.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+3360 ; [.1C45.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+33E8 ; [.1C46.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+32C8 ; [.1C46.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+3361 ; [.1C46.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+1F241 ; [*0379.0020.0004][.B35F.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; [*0379.0020.0004][.8E0E.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F247 ; [*0379.0020.0004][.B548.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F243 ; [*0379.0020.0004][.8049.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F245 ; [*0379.0020.0004][.89A6.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F248 ; [*0379.0020.0004][.811B.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F240 ; [*0379.0020.0004][.81FC.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F244 ; [*0379.0020.0004][.8B60.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F246 ; [*0379.0020.0004][.8A91.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
2F00 ; [.C5CF.0020.0004] # KANGXI RADICAL ONE
3192 ; [.C5CF.0020.0014] # IDEOGRAPHIC ANNOTATION ONE MARK
3280 ; [.C5CF.0020.0006] # CIRCLED IDEOGRAPH ONE
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl
index 68d6edf2356..9f28f0a1838 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_strk.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Stroke;
+{
- locale_version => 1.14,
+ locale_version => 1.25,
overrideCJK => \&Unicode::Collate::CJK::Stroke::weightStroke,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0101 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ entry => <<'ENTRY', # for DUCET v9.0.0
+0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1CAA.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAA.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAA.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAA.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAA.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAA.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1DAA.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1DAA.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1DAA.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1DAA.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1DB9.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1DB9.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1EB5.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1EB5.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1EB5.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1EB5.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
FDD0 2801 ; [.8000.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-1>
2E84 ; [.8007.0020.0002] # CJK RADICAL SECOND THREE
3006 ; [.8012.0020.0002] # IDEOGRAPHIC CLOSING MARK
@@ -299,119 +299,119 @@ FDD0 2823 ; [.DC7C.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-126>
FDD0 2824 ; [.DC7E.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-36>
FDD0 2827 ; [.DC80.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-1236>
FDD0 2830 ; [.DC82.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-56>
-3220 ; [*030A.0020.0004][.8001.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*030A.0020.0004][.801A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*030A.0020.0004][.8054.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*030A.0020.0004][.8027.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*030A.0020.0004][.802A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*030A.0020.0004][.80D7.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*030A.0020.0004][.81C2.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*030A.0020.0004][.831C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*030A.0020.0004][.832C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*030A.0020.0004][.8030.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*030A.0020.0004][.80F5.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*030A.0020.0004][.85A8.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*030A.0020.0004][.8041.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*030A.0020.0004][.899D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*030A.0020.0004][.839D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*030A.0020.0004][.89D5.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*030A.0020.0004][.822D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*030A.0020.0004][.8081.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*030A.0020.0004][.8A8D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*030A.0020.0004][.815C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*030A.0020.0004][.815F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*030A.0020.0004][.845A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*030A.0020.0004][.8160.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*030A.0020.0004][.979F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*030A.0020.0004][.816D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*030A.0020.0004][.816E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*030A.0020.0004][.9895.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*030A.0020.0004][.B79A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*030A.0020.0004][.8D2E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*030A.0020.0004][.9970.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*030A.0020.0004][.A100.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*030A.0020.0004][.84D8.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*030A.0020.0004][.84D9.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*030A.0020.0004][.9B3B.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*030A.0020.0004][.B2A5.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*030A.0020.0004][.8E33.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.1902.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.1903.0020.0004][.1902.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.1903.0020.0004][.1902.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.1903.0020.0004][.1902.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.1903.0020.0004][.1903.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.1903.0020.0004][.1903.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.1903.0020.0004][.1903.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.1903.0020.0004][.1904.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.1903.0020.0004][.1904.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.1903.0020.0004][.1904.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.1903.0020.0004][.1905.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.1903.0020.0004][.1905.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.1903.0020.0004][.1906.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.1903.0020.0004][.1906.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.1903.0020.0004][.1907.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.1903.0020.0004][.1907.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.1903.0020.0004][.1908.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.1903.0020.0004][.1908.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.1903.0020.0004][.1909.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.1903.0020.0004][.1909.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.1903.0020.0004][.190A.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.1903.0020.0004][.190A.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.1903.0020.0004][.190B.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.1903.0020.0004][.190B.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.1903.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.1903.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.1903.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.1904.0020.0004][.1902.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.1904.0020.0004][.1902.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.1904.0020.0004][.1903.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.1904.0020.0004][.1903.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.1904.0020.0004][.1904.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.1904.0020.0004][.1904.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.1904.0020.0004][.1905.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.1904.0020.0004][.1905.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.1904.0020.0004][.1906.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.1904.0020.0004][.1906.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.1904.0020.0004][.1907.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.1904.0020.0004][.1908.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.1904.0020.0004][.1909.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.1904.0020.0004][.190A.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.1904.0020.0004][.190B.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.1904.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.1904.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.1904.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.1905.0020.0004][.1902.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.1905.0020.0004][.1903.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.1905.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.1905.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.1905.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.1906.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.1906.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.1906.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.1907.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.1907.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.1907.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.1908.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.1908.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.1908.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.1909.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.1909.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.1909.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.190A.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.190A.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.190A.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.190B.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.190B.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.190B.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*036C.0020.0004][.8054.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*036C.0020.0004][.802A.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*036C.0020.0004][.A465.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*036C.0020.0004][.83F0.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*036C.0020.0004][.8277.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*036C.0020.0004][.9EDA.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*036C.0020.0004][.8283.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*036C.0020.0004][.9216.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*036C.0020.0004][.A0BD.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+3220 ; [*0317.0020.0004][.8001.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3226 ; [*0317.0020.0004][.801A.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3222 ; [*0317.0020.0004][.8054.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
+3228 ; [*0317.0020.0004][.8027.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3221 ; [*0317.0020.0004][.802A.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
+3224 ; [*0317.0020.0004][.80D7.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3239 ; [*0317.0020.0004][.81C2.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+323D ; [*0317.0020.0004][.831C.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+3241 ; [*0317.0020.0004][.832C.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3227 ; [*0317.0020.0004][.8030.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3225 ; [*0317.0020.0004][.80F5.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3238 ; [*0317.0020.0004][.85A8.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3229 ; [*0317.0020.0004][.8041.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+323F ; [*0317.0020.0004][.899D.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+3234 ; [*0317.0020.0004][.839D.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+323A ; [*0317.0020.0004][.89D5.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+3223 ; [*0317.0020.0004][.822D.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+322F ; [*0317.0020.0004][.8081.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+323B ; [*0317.0020.0004][.8A8D.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+3230 ; [*0317.0020.0004][.815C.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+322A ; [*0317.0020.0004][.815F.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+3232 ; [*0317.0020.0004][.845A.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+322D ; [*0317.0020.0004][.8160.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+3231 ; [*0317.0020.0004][.979F.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+322C ; [*0317.0020.0004][.816D.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322B ; [*0317.0020.0004][.816E.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+3235 ; [*0317.0020.0004][.9895.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+323C ; [*0317.0020.0004][.B79A.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+3233 ; [*0317.0020.0004][.8D2E.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3237 ; [*0317.0020.0004][.9970.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3240 ; [*0317.0020.0004][.A100.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3242 ; [*0317.0020.0004][.84D8.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3243 ; [*0317.0020.0004][.84D9.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3236 ; [*0317.0020.0004][.9B3B.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+323E ; [*0317.0020.0004][.B2A5.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+322E ; [*0317.0020.0004][.8E33.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+3358 ; [.1C3D.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+33E9 ; [.1C3E.0020.0004][.1C3D.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+32C9 ; [.1C3E.0020.0004][.1C3D.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+3362 ; [.1C3E.0020.0004][.1C3D.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+33EA ; [.1C3E.0020.0004][.1C3E.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+32CA ; [.1C3E.0020.0004][.1C3E.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+3363 ; [.1C3E.0020.0004][.1C3E.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+33EB ; [.1C3E.0020.0004][.1C3F.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+32CB ; [.1C3E.0020.0004][.1C3F.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+3364 ; [.1C3E.0020.0004][.1C3F.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+33EC ; [.1C3E.0020.0004][.1C40.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+3365 ; [.1C3E.0020.0004][.1C40.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+33ED ; [.1C3E.0020.0004][.1C41.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+3366 ; [.1C3E.0020.0004][.1C41.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+33EE ; [.1C3E.0020.0004][.1C42.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+3367 ; [.1C3E.0020.0004][.1C42.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+33EF ; [.1C3E.0020.0004][.1C43.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+3368 ; [.1C3E.0020.0004][.1C43.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+33F0 ; [.1C3E.0020.0004][.1C44.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+3369 ; [.1C3E.0020.0004][.1C44.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+33F1 ; [.1C3E.0020.0004][.1C45.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+336A ; [.1C3E.0020.0004][.1C45.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+33F2 ; [.1C3E.0020.0004][.1C46.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+336B ; [.1C3E.0020.0004][.1C46.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+33E0 ; [.1C3E.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+32C0 ; [.1C3E.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+3359 ; [.1C3E.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+33F3 ; [.1C3F.0020.0004][.1C3D.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+336C ; [.1C3F.0020.0004][.1C3D.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+33F4 ; [.1C3F.0020.0004][.1C3E.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+336D ; [.1C3F.0020.0004][.1C3E.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+33F5 ; [.1C3F.0020.0004][.1C3F.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+336E ; [.1C3F.0020.0004][.1C3F.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+33F6 ; [.1C3F.0020.0004][.1C40.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+336F ; [.1C3F.0020.0004][.1C40.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+33F7 ; [.1C3F.0020.0004][.1C41.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+3370 ; [.1C3F.0020.0004][.1C41.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+33F8 ; [.1C3F.0020.0004][.1C42.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; [.1C3F.0020.0004][.1C43.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; [.1C3F.0020.0004][.1C44.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; [.1C3F.0020.0004][.1C45.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; [.1C3F.0020.0004][.1C46.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33E1 ; [.1C3F.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+32C1 ; [.1C3F.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+335A ; [.1C3F.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+33FD ; [.1C40.0020.0004][.1C3D.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; [.1C40.0020.0004][.1C3E.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33E2 ; [.1C40.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+32C2 ; [.1C40.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+335B ; [.1C40.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+33E3 ; [.1C41.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+32C3 ; [.1C41.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+335C ; [.1C41.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+33E4 ; [.1C42.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+32C4 ; [.1C42.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+335D ; [.1C42.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+33E5 ; [.1C43.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+32C5 ; [.1C43.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+335E ; [.1C43.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+33E6 ; [.1C44.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+32C6 ; [.1C44.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+335F ; [.1C44.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+33E7 ; [.1C45.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+32C7 ; [.1C45.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+3360 ; [.1C45.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+33E8 ; [.1C46.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+32C8 ; [.1C46.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+3361 ; [.1C46.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+1F241 ; [*0379.0020.0004][.8054.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; [*0379.0020.0004][.802A.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F247 ; [*0379.0020.0004][.A465.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F243 ; [*0379.0020.0004][.83F0.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F245 ; [*0379.0020.0004][.8277.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F248 ; [*0379.0020.0004][.9EDA.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F240 ; [*0379.0020.0004][.8283.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F244 ; [*0379.0020.0004][.9216.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F246 ; [*0379.0020.0004][.A0BD.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
2F00 ; [.8001.0020.0004] # KANGXI RADICAL ONE
3192 ; [.8001.0020.0014] # IDEOGRAPHIC ANNOTATION ONE MARK
3280 ; [.8001.0020.0006] # CIRCLED IDEOGRAPH ONE
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
index 5d235673a5b..22a09a672f3 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
@@ -1,8 +1,8 @@
use Unicode::Collate::CJK::Zhuyin;
+{
- locale_version => 1.14,
+ locale_version => 1.25,
overrideCJK => \&Unicode::Collate::CJK::Zhuyin::weightZhuyin,
- entry => <<'ENTRY', # for DUCET v7.0.0
+ entry => <<'ENTRY', # for DUCET v9.0.0
02C9 ; [.0000.0199.0002] # MODIFIER LETTER MACRON
02CA ; [.019A.0020.0002] # MODIFIER LETTER ACUTE ACCENT
02C7 ; [.019B.0020.0002] # CARON
@@ -10,212 +10,212 @@ use Unicode::Collate::CJK::Zhuyin;
02D9 ; [.019D.0020.0002] # DOT ABOVE
02EA ; [.019E.0020.0002] # MODIFIER LETTER YIN DEPARTING TONE MARK
02EB ; [.019F.0020.0002] # MODIFIER LETTER YANG DEPARTING TONE MARK
-0101 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0101 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1C47.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1C47.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1C47.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1C47.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1C47.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1C47.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1C47.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1C47.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1CAA.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1CAA.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1CAA.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1CAA.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1CAA.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1CAA.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1CAA.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1CAA.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1CAA.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1CAA.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1CAA.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1CAA.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1CAA.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1CAA.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1CAA.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1CAA.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1CAA.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1CAA.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1CAA.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1CAA.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1CAA.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1CAA.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1CAA.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAA.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAA.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAA.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1CAA.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAA.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1D32.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1D32.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1D32.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1D32.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1D32.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1D32.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1D32.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1D32.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1DAA.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1DAA.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1DAA.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1DAA.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1DAA.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1DAA.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1DAA.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1DAA.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1DB9.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1DB9.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1DB9.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1DB9.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1DB9.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1DB9.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1DB9.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1DB9.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1DDD.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1DDD.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1DDD.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1DDD.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1DDD.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1DDD.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1DDD.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1DDD.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1EB5.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1EB5.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1EB5.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1EB5.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1EB5.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1EB5.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1EB5.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1EB5.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1EB5.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1EB5.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1EB5.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1EB5.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1EB5.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1EB5.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1EB5.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1EB5.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1EB5.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1EB5.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1EB5.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1EB5.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1EB5.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1EB5.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1EB5.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1EB5.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1EB5.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1EB5.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
FDD0 3105 ; [.8000.0020.0002] # <noncharacter-FDD0, BOPOMOFO LETTER B>
2E8A ; [.80B5.0020.0002] # CJK RADICAL DIVINATION
FDD0 3106 ; [.83B1.0020.0002] # <noncharacter-FDD0, BOPOMOFO LETTER P>
@@ -276,119 +276,119 @@ FDD0 3128 ; [.D16F.0020.0002] # <noncharacter-FDD0, BOPOMOFO LETTER U>
FDD0 3129 ; [.D403.0020.0002] # <noncharacter-FDD0, BOPOMOFO LETTER IU>
2ED7 ; [.D47E.0020.0002] # CJK RADICAL RAIN
2E9D ; [.D53B.0020.0002] # CJK RADICAL MOON
-3220 ; [*030A.0020.0004][.CBDC.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*030A.0020.0004][.AD39.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*030A.0020.0004][.C8DF.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*030A.0020.0004][.A95D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*030A.0020.0004][.CBCD.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*030A.0020.0004][.D1A9.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*030A.0020.0004][.8C57.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*030A.0020.0004][.ADC1.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*030A.0020.0004][.B3A8.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*030A.0020.0004][.8001.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*030A.0020.0004][.9953.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*030A.0020.0004][.969E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*030A.0020.0004][.BF85.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*030A.0020.0004][.B2BC.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*030A.0020.0004][.892A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*030A.0020.0004][.A3B5.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*030A.0020.0004][.C82E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*030A.0020.0004][.92EA.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*030A.0020.0004][.B5F0.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*030A.0020.0004][.C2A4.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*030A.0020.0004][.D53C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*030A.0020.0004][.CEC7.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*030A.0020.0004][.895F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*030A.0020.0004][.BA36.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*030A.0020.0004][.C26E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*030A.0020.0004][.A48C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*030A.0020.0004][.9060.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*030A.0020.0004][.A9B3.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*030A.0020.0004][.C05E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*030A.0020.0004][.BA90.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*030A.0020.0004][.A78C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*030A.0020.0004][.C457.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*030A.0020.0004][.B766.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*030A.0020.0004][.C69F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*030A.0020.0004][.C421.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*030A.0020.0004][.AA72.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.1902.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.1903.0020.0004][.1902.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.1903.0020.0004][.1902.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.1903.0020.0004][.1902.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.1903.0020.0004][.1903.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.1903.0020.0004][.1903.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.1903.0020.0004][.1903.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.1903.0020.0004][.1904.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.1903.0020.0004][.1904.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.1903.0020.0004][.1904.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.1903.0020.0004][.1905.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.1903.0020.0004][.1905.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.1903.0020.0004][.1906.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.1903.0020.0004][.1906.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.1903.0020.0004][.1907.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.1903.0020.0004][.1907.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.1903.0020.0004][.1908.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.1903.0020.0004][.1908.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.1903.0020.0004][.1909.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.1903.0020.0004][.1909.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.1903.0020.0004][.190A.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.1903.0020.0004][.190A.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.1903.0020.0004][.190B.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.1903.0020.0004][.190B.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.1903.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.1903.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.1903.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.1904.0020.0004][.1902.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.1904.0020.0004][.1902.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.1904.0020.0004][.1903.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.1904.0020.0004][.1903.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.1904.0020.0004][.1904.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.1904.0020.0004][.1904.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.1904.0020.0004][.1905.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.1904.0020.0004][.1905.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.1904.0020.0004][.1906.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.1904.0020.0004][.1906.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.1904.0020.0004][.1907.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.1904.0020.0004][.1908.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.1904.0020.0004][.1909.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.1904.0020.0004][.190A.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.1904.0020.0004][.190B.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.1904.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.1904.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.1904.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.1905.0020.0004][.1902.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.1905.0020.0004][.1903.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.1905.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.1905.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.1905.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.1906.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.1906.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.1906.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.1907.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.1907.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.1907.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.1908.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.1908.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.1908.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.1909.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.1909.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.1909.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.190A.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.190A.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.190A.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.190B.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.190B.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.190B.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*036C.0020.0004][.C8DF.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*036C.0020.0004][.CBCD.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*036C.0020.0004][.C1CC.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*036C.0020.0004][.CB52.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*036C.0020.0004][.8C38.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*036C.0020.0004][.80CD.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*036C.0020.0004][.819A.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*036C.0020.0004][.8E99.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*036C.0020.0004][.8CA9.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+3220 ; [*0317.0020.0004][.CBDC.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3226 ; [*0317.0020.0004][.AD39.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3222 ; [*0317.0020.0004][.C8DF.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
+3228 ; [*0317.0020.0004][.A95D.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3221 ; [*0317.0020.0004][.CBCD.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
+3224 ; [*0317.0020.0004][.D1A9.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3239 ; [*0317.0020.0004][.8C57.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+323D ; [*0317.0020.0004][.ADC1.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+3241 ; [*0317.0020.0004][.B3A8.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3227 ; [*0317.0020.0004][.8001.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3225 ; [*0317.0020.0004][.9953.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3238 ; [*0317.0020.0004][.969E.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3229 ; [*0317.0020.0004][.BF85.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+323F ; [*0317.0020.0004][.B2BC.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+3234 ; [*0317.0020.0004][.892A.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+323A ; [*0317.0020.0004][.A3B5.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+3223 ; [*0317.0020.0004][.C82E.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+322F ; [*0317.0020.0004][.92EA.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+323B ; [*0317.0020.0004][.B5F0.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+3230 ; [*0317.0020.0004][.C2A4.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+322A ; [*0317.0020.0004][.D53C.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+3232 ; [*0317.0020.0004][.CEC7.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+322D ; [*0317.0020.0004][.895F.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+3231 ; [*0317.0020.0004][.BA36.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+322C ; [*0317.0020.0004][.C26E.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322B ; [*0317.0020.0004][.A48C.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+3235 ; [*0317.0020.0004][.9060.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+323C ; [*0317.0020.0004][.A9B3.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+3233 ; [*0317.0020.0004][.C05E.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3237 ; [*0317.0020.0004][.BA90.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3240 ; [*0317.0020.0004][.A78C.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3242 ; [*0317.0020.0004][.C457.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3243 ; [*0317.0020.0004][.B766.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3236 ; [*0317.0020.0004][.C69F.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+323E ; [*0317.0020.0004][.C421.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+322E ; [*0317.0020.0004][.AA72.0020.0004][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+3358 ; [.1C3D.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+33E9 ; [.1C3E.0020.0004][.1C3D.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+32C9 ; [.1C3E.0020.0004][.1C3D.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+3362 ; [.1C3E.0020.0004][.1C3D.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+33EA ; [.1C3E.0020.0004][.1C3E.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+32CA ; [.1C3E.0020.0004][.1C3E.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+3363 ; [.1C3E.0020.0004][.1C3E.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+33EB ; [.1C3E.0020.0004][.1C3F.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+32CB ; [.1C3E.0020.0004][.1C3F.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+3364 ; [.1C3E.0020.0004][.1C3F.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+33EC ; [.1C3E.0020.0004][.1C40.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+3365 ; [.1C3E.0020.0004][.1C40.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+33ED ; [.1C3E.0020.0004][.1C41.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+3366 ; [.1C3E.0020.0004][.1C41.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+33EE ; [.1C3E.0020.0004][.1C42.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+3367 ; [.1C3E.0020.0004][.1C42.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+33EF ; [.1C3E.0020.0004][.1C43.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+3368 ; [.1C3E.0020.0004][.1C43.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+33F0 ; [.1C3E.0020.0004][.1C44.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+3369 ; [.1C3E.0020.0004][.1C44.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+33F1 ; [.1C3E.0020.0004][.1C45.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+336A ; [.1C3E.0020.0004][.1C45.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+33F2 ; [.1C3E.0020.0004][.1C46.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+336B ; [.1C3E.0020.0004][.1C46.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+33E0 ; [.1C3E.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+32C0 ; [.1C3E.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+3359 ; [.1C3E.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+33F3 ; [.1C3F.0020.0004][.1C3D.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+336C ; [.1C3F.0020.0004][.1C3D.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+33F4 ; [.1C3F.0020.0004][.1C3E.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+336D ; [.1C3F.0020.0004][.1C3E.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+33F5 ; [.1C3F.0020.0004][.1C3F.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+336E ; [.1C3F.0020.0004][.1C3F.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+33F6 ; [.1C3F.0020.0004][.1C40.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+336F ; [.1C3F.0020.0004][.1C40.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+33F7 ; [.1C3F.0020.0004][.1C41.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+3370 ; [.1C3F.0020.0004][.1C41.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+33F8 ; [.1C3F.0020.0004][.1C42.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; [.1C3F.0020.0004][.1C43.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; [.1C3F.0020.0004][.1C44.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; [.1C3F.0020.0004][.1C45.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; [.1C3F.0020.0004][.1C46.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33E1 ; [.1C3F.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+32C1 ; [.1C3F.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+335A ; [.1C3F.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+33FD ; [.1C40.0020.0004][.1C3D.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; [.1C40.0020.0004][.1C3E.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33E2 ; [.1C40.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+32C2 ; [.1C40.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+335B ; [.1C40.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+33E3 ; [.1C41.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+32C3 ; [.1C41.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+335C ; [.1C41.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+33E4 ; [.1C42.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+32C4 ; [.1C42.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+335D ; [.1C42.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+33E5 ; [.1C43.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+32C5 ; [.1C43.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+335E ; [.1C43.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+33E6 ; [.1C44.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+32C6 ; [.1C44.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+335F ; [.1C44.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+33E7 ; [.1C45.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+32C7 ; [.1C45.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+3360 ; [.1C45.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+33E8 ; [.1C46.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+32C8 ; [.1C46.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+3361 ; [.1C46.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+1F241 ; [*0379.0020.0004][.C8DF.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; [*0379.0020.0004][.CBCD.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F247 ; [*0379.0020.0004][.C1CC.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F243 ; [*0379.0020.0004][.CB52.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F245 ; [*0379.0020.0004][.8C38.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F248 ; [*0379.0020.0004][.80CD.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F240 ; [*0379.0020.0004][.819A.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F244 ; [*0379.0020.0004][.8E99.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F246 ; [*0379.0020.0004][.8CA9.0020.0004][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
2F00 ; [.CBDC.0020.0004] # KANGXI RADICAL ONE
3192 ; [.CBDC.0020.0014] # IDEOGRAPHIC ANNOTATION ONE MARK
3280 ; [.CBDC.0020.0006] # CIRCLED IDEOGRAPH ONE
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/allkeys.txt b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/allkeys.txt
index 6c8f02ed5b5..9c92b5e2ac7 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/allkeys.txt
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Collate/allkeys.txt
@@ -1,84 +1,86 @@
-# unidata-7.0.0.txt
-# Date: 2014-04-07, 19:21:08 GMT [KW]
+# allkeys-9.0.0.txt
+# Date: 2016-05-16, 18:21:19 GMT [KW]
+# Copyright 2016 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# This file defines the Default Unicode Collation Element Table
# (DUCET) for the Unicode Collation Algorithm
#
-# Copyright (c) 2001-2014 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
-#
# See UTS #10, Unicode Collation Algorithm, for more information.
#
# Diagnostic weight ranges
-# Primary weight range: 0200..4CFC (19197)
-# Secondary weight range: 0020..010C (237)
-# Variant secondaries: 0108..010C (5)
+# Primary weight range: 0200..54A3 (21156)
+# Secondary weight range: 0020..0114 (245)
+# Variant secondaries: 0110..0114 (5)
# Tertiary weight range: 0002..001F (30)
#
-@version 7.0.0
+@version 9.0.0
-0000 ; [.0000.0000.0000] # NULL (in 6429)
-0001 ; [.0000.0000.0000] # START OF HEADING (in 6429)
-0002 ; [.0000.0000.0000] # START OF TEXT (in 6429)
-0003 ; [.0000.0000.0000] # END OF TEXT (in 6429)
-0004 ; [.0000.0000.0000] # END OF TRANSMISSION (in 6429)
-0005 ; [.0000.0000.0000] # ENQUIRY (in 6429)
-0006 ; [.0000.0000.0000] # ACKNOWLEDGE (in 6429)
-0007 ; [.0000.0000.0000] # BELL (in 6429)
-0008 ; [.0000.0000.0000] # BACKSPACE (in 6429)
-000E ; [.0000.0000.0000] # SHIFT OUT (in 6429)
-000F ; [.0000.0000.0000] # SHIFT IN (in 6429)
-0010 ; [.0000.0000.0000] # DATA LINK ESCAPE (in 6429)
-0011 ; [.0000.0000.0000] # DEVICE CONTROL ONE (in 6429)
-0012 ; [.0000.0000.0000] # DEVICE CONTROL TWO (in 6429)
-0013 ; [.0000.0000.0000] # DEVICE CONTROL THREE (in 6429)
-0014 ; [.0000.0000.0000] # DEVICE CONTROL FOUR (in 6429)
-0015 ; [.0000.0000.0000] # NEGATIVE ACKNOWLEDGE (in 6429)
-0016 ; [.0000.0000.0000] # SYNCHRONOUS IDLE (in 6429)
-0017 ; [.0000.0000.0000] # END OF TRANSMISSION BLOCK (in 6429)
-0018 ; [.0000.0000.0000] # CANCEL (in 6429)
-0019 ; [.0000.0000.0000] # END OF MEDIUM (in 6429)
-001A ; [.0000.0000.0000] # SUBSTITUTE (in 6429)
-001B ; [.0000.0000.0000] # ESCAPE (in 6429)
-001C ; [.0000.0000.0000] # FILE SEPARATOR (in 6429)
-001D ; [.0000.0000.0000] # GROUP SEPARATOR (in 6429)
-001E ; [.0000.0000.0000] # RECORD SEPARATOR (in 6429)
-001F ; [.0000.0000.0000] # UNIT SEPARATOR (in 6429)
-007F ; [.0000.0000.0000] # DELETE (in 6429)
+@implicitweights 17000..18AFF; FB00 # Tangut and Tangut Components
+
+0000 ; [.0000.0000.0000] # NULL (in ISO 6429)
+0001 ; [.0000.0000.0000] # START OF HEADING (in ISO 6429)
+0002 ; [.0000.0000.0000] # START OF TEXT (in ISO 6429)
+0003 ; [.0000.0000.0000] # END OF TEXT (in ISO 6429)
+0004 ; [.0000.0000.0000] # END OF TRANSMISSION (in ISO 6429)
+0005 ; [.0000.0000.0000] # ENQUIRY (in ISO 6429)
+0006 ; [.0000.0000.0000] # ACKNOWLEDGE (in ISO 6429)
+0007 ; [.0000.0000.0000] # BELL (in ISO 6429)
+0008 ; [.0000.0000.0000] # BACKSPACE (in ISO 6429)
+000E ; [.0000.0000.0000] # SHIFT OUT (in ISO 6429)
+000F ; [.0000.0000.0000] # SHIFT IN (in ISO 6429)
+0010 ; [.0000.0000.0000] # DATA LINK ESCAPE (in ISO 6429)
+0011 ; [.0000.0000.0000] # DEVICE CONTROL ONE (in ISO 6429)
+0012 ; [.0000.0000.0000] # DEVICE CONTROL TWO (in ISO 6429)
+0013 ; [.0000.0000.0000] # DEVICE CONTROL THREE (in ISO 6429)
+0014 ; [.0000.0000.0000] # DEVICE CONTROL FOUR (in ISO 6429)
+0015 ; [.0000.0000.0000] # NEGATIVE ACKNOWLEDGE (in ISO 6429)
+0016 ; [.0000.0000.0000] # SYNCHRONOUS IDLE (in ISO 6429)
+0017 ; [.0000.0000.0000] # END OF TRANSMISSION BLOCK (in ISO 6429)
+0018 ; [.0000.0000.0000] # CANCEL (in ISO 6429)
+0019 ; [.0000.0000.0000] # END OF MEDIUM (in ISO 6429)
+001A ; [.0000.0000.0000] # SUBSTITUTE (in ISO 6429)
+001B ; [.0000.0000.0000] # ESCAPE (in ISO 6429)
+001C ; [.0000.0000.0000] # FILE SEPARATOR (in ISO 6429)
+001D ; [.0000.0000.0000] # GROUP SEPARATOR (in ISO 6429)
+001E ; [.0000.0000.0000] # RECORD SEPARATOR (in ISO 6429)
+001F ; [.0000.0000.0000] # UNIT SEPARATOR (in ISO 6429)
+007F ; [.0000.0000.0000] # DELETE (in ISO 6429)
0080 ; [.0000.0000.0000] # <control>
0081 ; [.0000.0000.0000] # <control>
-0082 ; [.0000.0000.0000] # BREAK PERMITTED HERE (in 6429)
-0083 ; [.0000.0000.0000] # NO BREAK HERE (in 6429)
+0082 ; [.0000.0000.0000] # BREAK PERMITTED HERE (in ISO 6429)
+0083 ; [.0000.0000.0000] # NO BREAK HERE (in ISO 6429)
0084 ; [.0000.0000.0000] # <control>
-0086 ; [.0000.0000.0000] # START OF SELECTED AREA (in 6429)
-0087 ; [.0000.0000.0000] # END OF SELECTED AREA (in 6429)
-0088 ; [.0000.0000.0000] # CHARACTER TABULATION SET (in 6429)
-0089 ; [.0000.0000.0000] # CHARACTER TABULATION WITH JUSTIFICATION (in 6429)
-008A ; [.0000.0000.0000] # LINE TABULATION SET (in 6429)
-008B ; [.0000.0000.0000] # PARTIAL LINE FORWARD (in 6429)
-008C ; [.0000.0000.0000] # PARTIAL LINE BACKWARD (in 6429)
-008D ; [.0000.0000.0000] # PARTIAL LINE FEED (in 6429)
-008E ; [.0000.0000.0000] # SINGLE SHIFT TWO (in 6429)
-008F ; [.0000.0000.0000] # SINGLE SHIFT THREE (in 6429)
-0090 ; [.0000.0000.0000] # DEVICE CONTROL STRING (in 6429)
-0091 ; [.0000.0000.0000] # PRIVATE USE ONE (in 6429)
-0092 ; [.0000.0000.0000] # PRIVATE USE TWO (in 6429)
-0093 ; [.0000.0000.0000] # SET TRANSMIT STATE (in 6429)
-0094 ; [.0000.0000.0000] # CANCEL CHARACTER (in 6429)
-0095 ; [.0000.0000.0000] # MESSAGE WAITING (in 6429)
-0096 ; [.0000.0000.0000] # START OF GUARDED AREA (in 6429)
-0097 ; [.0000.0000.0000] # END OF GUARDED AREA (in 6429)
-0098 ; [.0000.0000.0000] # START OF STRING (in 6429)
+0086 ; [.0000.0000.0000] # START OF SELECTED AREA (in ISO 6429)
+0087 ; [.0000.0000.0000] # END OF SELECTED AREA (in ISO 6429)
+0088 ; [.0000.0000.0000] # CHARACTER TABULATION SET (in ISO 6429)
+0089 ; [.0000.0000.0000] # CHARACTER TABULATION WITH JUSTIFICATION (in ISO 6429)
+008A ; [.0000.0000.0000] # LINE TABULATION SET (in ISO 6429)
+008B ; [.0000.0000.0000] # PARTIAL LINE FORWARD (in ISO 6429)
+008C ; [.0000.0000.0000] # PARTIAL LINE BACKWARD (in ISO 6429)
+008D ; [.0000.0000.0000] # PARTIAL LINE FEED (in ISO 6429)
+008E ; [.0000.0000.0000] # SINGLE SHIFT TWO (in ISO 6429)
+008F ; [.0000.0000.0000] # SINGLE SHIFT THREE (in ISO 6429)
+0090 ; [.0000.0000.0000] # DEVICE CONTROL STRING (in ISO 6429)
+0091 ; [.0000.0000.0000] # PRIVATE USE ONE (in ISO 6429)
+0092 ; [.0000.0000.0000] # PRIVATE USE TWO (in ISO 6429)
+0093 ; [.0000.0000.0000] # SET TRANSMIT STATE (in ISO 6429)
+0094 ; [.0000.0000.0000] # CANCEL CHARACTER (in ISO 6429)
+0095 ; [.0000.0000.0000] # MESSAGE WAITING (in ISO 6429)
+0096 ; [.0000.0000.0000] # START OF GUARDED AREA (in ISO 6429)
+0097 ; [.0000.0000.0000] # END OF GUARDED AREA (in ISO 6429)
+0098 ; [.0000.0000.0000] # START OF STRING (in ISO 6429)
0099 ; [.0000.0000.0000] # <control>
-009A ; [.0000.0000.0000] # SINGLE CHARACTER INTRODUCER (in 6429)
-009B ; [.0000.0000.0000] # CONTROL SEQUENCE INTRODUCER (in 6429)
-009C ; [.0000.0000.0000] # STRING TERMINATOR (in 6429)
-009D ; [.0000.0000.0000] # OPERATING SYSTEM COMMAND (in 6429)
-009E ; [.0000.0000.0000] # PRIVACY MESSAGE (in 6429)
-009F ; [.0000.0000.0000] # APPLICATION PROGRAM COMMAND (in 6429)
+009A ; [.0000.0000.0000] # SINGLE CHARACTER INTRODUCER (in ISO 6429)
+009B ; [.0000.0000.0000] # CONTROL SEQUENCE INTRODUCER (in ISO 6429)
+009C ; [.0000.0000.0000] # STRING TERMINATOR (in ISO 6429)
+009D ; [.0000.0000.0000] # OPERATING SYSTEM COMMAND (in ISO 6429)
+009E ; [.0000.0000.0000] # PRIVACY MESSAGE (in ISO 6429)
+009F ; [.0000.0000.0000] # APPLICATION PROGRAM COMMAND (in ISO 6429)
00AD ; [.0000.0000.0000] # SOFT HYPHEN
061C ; [.0000.0000.0000] # ARABIC LETTER MARK
070F ; [.0000.0000.0000] # SYRIAC ABBREVIATION MARK
+08E2 ; [.0000.0000.0000] # ARABIC DISPUTED END OF AYAH
180B ; [.0000.0000.0000] # MONGOLIAN FREE VARIATION SELECTOR ONE
180C ; [.0000.0000.0000] # MONGOLIAN FREE VARIATION SELECTOR TWO
180D ; [.0000.0000.0000] # MONGOLIAN FREE VARIATION SELECTOR THREE
@@ -473,141 +475,141 @@ E01EC ; [.0000.0000.0000] # VARIATION SELECTOR-253
E01ED ; [.0000.0000.0000] # VARIATION SELECTOR-254
E01EE ; [.0000.0000.0000] # VARIATION SELECTOR-255
E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
-0009 ; [*0201.0020.0002] # HORIZONTAL TABULATION (in 6429)
-000A ; [*0202.0020.0002] # LINE FEED (in 6429)
-000B ; [*0203.0020.0002] # VERTICAL TABULATION (in 6429)
-000C ; [*0204.0020.0002] # FORM FEED (in 6429)
-000D ; [*0205.0020.0002] # CARRIAGE RETURN (in 6429)
+0009 ; [*0201.0020.0002] # HORIZONTAL TABULATION (in ISO 6429)
+000A ; [*0202.0020.0002] # LINE FEED (in ISO 6429)
+000B ; [*0203.0020.0002] # VERTICAL TABULATION (in ISO 6429)
+000C ; [*0204.0020.0002] # FORM FEED (in ISO 6429)
+000D ; [*0205.0020.0002] # CARRIAGE RETURN (in ISO 6429)
0020 ; [*0209.0020.0002] # SPACE
-0021 ; [*025F.0020.0002] # EXCLAMATION MARK
-0022 ; [*02FF.0020.0002] # QUOTATION MARK
-0023 ; [*038B.0020.0002] # NUMBER SIGN
-0025 ; [*038C.0020.0002] # PERCENT SIGN
-0026 ; [*0389.0020.0002] # AMPERSAND
-0027 ; [*02F8.0020.0002] # APOSTROPHE
-0028 ; [*030A.0020.0002] # LEFT PARENTHESIS
-0029 ; [*030B.0020.0002] # RIGHT PARENTHESIS
-002A ; [*0382.0020.0002] # ASTERISK
-002B ; [*05D6.0020.0002] # PLUS SIGN
-002C ; [*0221.0020.0002] # COMMA
+0021 ; [*0260.0020.0002] # EXCLAMATION MARK
+0022 ; [*030C.0020.0002] # QUOTATION MARK
+0023 ; [*0398.0020.0002] # NUMBER SIGN
+0025 ; [*0399.0020.0002] # PERCENT SIGN
+0026 ; [*0396.0020.0002] # AMPERSAND
+0027 ; [*0305.0020.0002] # APOSTROPHE
+0028 ; [*0317.0020.0002] # LEFT PARENTHESIS
+0029 ; [*0318.0020.0002] # RIGHT PARENTHESIS
+002A ; [*038F.0020.0002] # ASTERISK
+002B ; [*0616.0020.0002] # PLUS SIGN
+002C ; [*0222.0020.0002] # COMMA
002D ; [*020D.0020.0002] # HYPHEN-MINUS
-002E ; [*0274.0020.0002] # FULL STOP
-002F ; [*0387.0020.0002] # SOLIDUS
-003A ; [*0238.0020.0002] # COLON
-003B ; [*0233.0020.0002] # SEMICOLON
-003C ; [*05DA.0020.0002] # LESS-THAN SIGN
-003D ; [*05DB.0020.0002] # EQUALS SIGN
-003E ; [*05DC.0020.0002] # GREATER-THAN SIGN
-003F ; [*0264.0020.0002] # QUESTION MARK
-0040 ; [*0381.0020.0002] # COMMERCIAL AT
-005B ; [*030C.0020.0002] # LEFT SQUARE BRACKET
-005C ; [*0388.0020.0002] # REVERSE SOLIDUS
-005D ; [*030D.0020.0002] # RIGHT SQUARE BRACKET
-005E ; [*0449.0020.0002] # CIRCUMFLEX ACCENT
+002E ; [*0277.0020.0002] # FULL STOP
+002F ; [*0394.0020.0002] # SOLIDUS
+003A ; [*0239.0020.0002] # COLON
+003B ; [*0234.0020.0002] # SEMICOLON
+003C ; [*061A.0020.0002] # LESS-THAN SIGN
+003D ; [*061B.0020.0002] # EQUALS SIGN
+003E ; [*061C.0020.0002] # GREATER-THAN SIGN
+003F ; [*0266.0020.0002] # QUESTION MARK
+0040 ; [*038E.0020.0002] # COMMERCIAL AT
+005B ; [*0319.0020.0002] # LEFT SQUARE BRACKET
+005C ; [*0395.0020.0002] # REVERSE SOLIDUS
+005D ; [*031A.0020.0002] # RIGHT SQUARE BRACKET
+005E ; [*0485.0020.0002] # CIRCUMFLEX ACCENT
005F ; [*020B.0020.0002] # LOW LINE
-0060 ; [*0446.0020.0002] # GRAVE ACCENT
-007B ; [*030E.0020.0002] # LEFT CURLY BRACKET
-007C ; [*05DE.0020.0002] # VERTICAL LINE
-007D ; [*030F.0020.0002] # RIGHT CURLY BRACKET
-007E ; [*05E0.0020.0002] # TILDE
-0085 ; [*0206.0020.0002] # NEXT LINE (in 6429)
+0060 ; [*0482.0020.0002] # GRAVE ACCENT
+007B ; [*031B.0020.0002] # LEFT CURLY BRACKET
+007C ; [*061E.0020.0002] # VERTICAL LINE
+007D ; [*031C.0020.0002] # RIGHT CURLY BRACKET
+007E ; [*0620.0020.0002] # TILDE
+0085 ; [*0206.0020.0002] # NEXT LINE (in ISO 6429)
00A0 ; [*0209.0020.001B] # NO-BREAK SPACE
-00A1 ; [*0260.0020.0002] # INVERTED EXCLAMATION MARK
-00A6 ; [*05DF.0020.0002] # BROKEN BAR
-00A7 ; [*037C.0020.0002] # SECTION SIGN
-00A8 ; [*044D.0020.0002] # DIAERESIS
-00A9 ; [*0546.0020.0002] # COPYRIGHT SIGN
-00AB ; [*0308.0020.0002] # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC ; [*05DD.0020.0002] # NOT SIGN
-00AE ; [*0547.0020.0002] # REGISTERED SIGN
-00AF ; [*044A.0020.0002] # MACRON
-00B0 ; [*04BA.0020.0002] # DEGREE SIGN
-00B1 ; [*05D7.0020.0002] # PLUS-MINUS SIGN
-00B4 ; [*0447.0020.0002] # ACUTE ACCENT
-00B6 ; [*037E.0020.0002] # PILCROW SIGN
-00B7 ; [*0288.0020.0002] # MIDDLE DOT
-00B8 ; [*0450.0020.0002] # CEDILLA
-00BB ; [*0309.0020.0002] # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BF ; [*0265.0020.0002] # INVERTED QUESTION MARK
-00D7 ; [*05D9.0020.0002] # MULTIPLICATION SIGN
-00F7 ; [*05D8.0020.0002] # DIVISION SIGN
-02B9 ; [*0457.0020.0002] # MODIFIER LETTER PRIME
-02BA ; [*0459.0020.0002] # MODIFIER LETTER DOUBLE PRIME
-02C2 ; [*045A.0020.0002] # MODIFIER LETTER LEFT ARROWHEAD
-02C3 ; [*045B.0020.0002] # MODIFIER LETTER RIGHT ARROWHEAD
-02C4 ; [*045C.0020.0002] # MODIFIER LETTER UP ARROWHEAD
-02C5 ; [*045D.0020.0002] # MODIFIER LETTER DOWN ARROWHEAD
-02C6 ; [*045E.0020.0002] # MODIFIER LETTER CIRCUMFLEX ACCENT
-02C7 ; [*045F.0020.0002] # CARON
-02C8 ; [*0460.0020.0002] # MODIFIER LETTER VERTICAL LINE
-02C9 ; [*0461.0020.0002] # MODIFIER LETTER MACRON
-02CA ; [*0462.0020.0002] # MODIFIER LETTER ACUTE ACCENT
-02CB ; [*0463.0020.0002] # MODIFIER LETTER GRAVE ACCENT
-02CC ; [*0464.0020.0002] # MODIFIER LETTER LOW VERTICAL LINE
-02CD ; [*0465.0020.0002] # MODIFIER LETTER LOW MACRON
-02CE ; [*0466.0020.0002] # MODIFIER LETTER LOW GRAVE ACCENT
-02CF ; [*0467.0020.0002] # MODIFIER LETTER LOW ACUTE ACCENT
-02D2 ; [*0468.0020.0002] # MODIFIER LETTER CENTRED RIGHT HALF RING
-02D3 ; [*0469.0020.0002] # MODIFIER LETTER CENTRED LEFT HALF RING
-02D4 ; [*046A.0020.0002] # MODIFIER LETTER UP TACK
-02D5 ; [*046B.0020.0002] # MODIFIER LETTER DOWN TACK
-02D6 ; [*046C.0020.0002] # MODIFIER LETTER PLUS SIGN
-02D7 ; [*046D.0020.0002] # MODIFIER LETTER MINUS SIGN
-02D8 ; [*044B.0020.0002] # BREVE
-02D9 ; [*044C.0020.0002] # DOT ABOVE
-02DA ; [*044E.0020.0002] # RING ABOVE
-02DB ; [*0451.0020.0002] # OGONEK
-02DC ; [*0448.0020.0002] # SMALL TILDE
-02DD ; [*044F.0020.0002] # DOUBLE ACUTE ACCENT
-02DE ; [*046E.0020.0002] # MODIFIER LETTER RHOTIC HOOK
-02DF ; [*046F.0020.0002] # MODIFIER LETTER CROSS ACCENT
-02E5 ; [*0470.0020.0002] # MODIFIER LETTER EXTRA-HIGH TONE BAR
-02E6 ; [*0471.0020.0002] # MODIFIER LETTER HIGH TONE BAR
-02E7 ; [*0472.0020.0002] # MODIFIER LETTER MID TONE BAR
-02E8 ; [*0473.0020.0002] # MODIFIER LETTER LOW TONE BAR
-02E9 ; [*0474.0020.0002] # MODIFIER LETTER EXTRA-LOW TONE BAR
-02EA ; [*0475.0020.0002] # MODIFIER LETTER YIN DEPARTING TONE MARK
-02EB ; [*0476.0020.0002] # MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC ; [*0477.0020.0002] # MODIFIER LETTER VOICING
-02ED ; [*0478.0020.0002] # MODIFIER LETTER UNASPIRATED
-02EF ; [*0479.0020.0002] # MODIFIER LETTER LOW DOWN ARROWHEAD
-02F0 ; [*047A.0020.0002] # MODIFIER LETTER LOW UP ARROWHEAD
-02F1 ; [*047B.0020.0002] # MODIFIER LETTER LOW LEFT ARROWHEAD
-02F2 ; [*047C.0020.0002] # MODIFIER LETTER LOW RIGHT ARROWHEAD
-02F3 ; [*047D.0020.0002] # MODIFIER LETTER LOW RING
-02F4 ; [*047E.0020.0002] # MODIFIER LETTER MIDDLE GRAVE ACCENT
-02F5 ; [*047F.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
-02F6 ; [*0480.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
-02F7 ; [*0481.0020.0002] # MODIFIER LETTER LOW TILDE
-02F8 ; [*0482.0020.0002] # MODIFIER LETTER RAISED COLON
-02F9 ; [*0483.0020.0002] # MODIFIER LETTER BEGIN HIGH TONE
-02FA ; [*0484.0020.0002] # MODIFIER LETTER END HIGH TONE
-02FB ; [*0485.0020.0002] # MODIFIER LETTER BEGIN LOW TONE
-02FC ; [*0486.0020.0002] # MODIFIER LETTER END LOW TONE
-02FD ; [*0487.0020.0002] # MODIFIER LETTER SHELF
-02FE ; [*0488.0020.0002] # MODIFIER LETTER OPEN SHELF
-02FF ; [*0489.0020.0002] # MODIFIER LETTER LOW LEFT ARROW
+00A1 ; [*0261.0020.0002] # INVERTED EXCLAMATION MARK
+00A6 ; [*061F.0020.0002] # BROKEN BAR
+00A7 ; [*0389.0020.0002] # SECTION SIGN
+00A8 ; [*0489.0020.0002] # DIAERESIS
+00A9 ; [*0584.0020.0002] # COPYRIGHT SIGN
+00AB ; [*0315.0020.0002] # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC ; [*061D.0020.0002] # NOT SIGN
+00AE ; [*0585.0020.0002] # REGISTERED SIGN
+00AF ; [*0486.0020.0002] # MACRON
+00B0 ; [*04F6.0020.0002] # DEGREE SIGN
+00B1 ; [*0617.0020.0002] # PLUS-MINUS SIGN
+00B4 ; [*0483.0020.0002] # ACUTE ACCENT
+00B6 ; [*038B.0020.0002] # PILCROW SIGN
+00B7 ; [*028B.0020.0002] # MIDDLE DOT
+00B8 ; [*048C.0020.0002] # CEDILLA
+00BB ; [*0316.0020.0002] # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BF ; [*0267.0020.0002] # INVERTED QUESTION MARK
+00D7 ; [*0619.0020.0002] # MULTIPLICATION SIGN
+00F7 ; [*0618.0020.0002] # DIVISION SIGN
+02B9 ; [*0493.0020.0002] # MODIFIER LETTER PRIME
+02BA ; [*0495.0020.0002] # MODIFIER LETTER DOUBLE PRIME
+02C2 ; [*0496.0020.0002] # MODIFIER LETTER LEFT ARROWHEAD
+02C3 ; [*0497.0020.0002] # MODIFIER LETTER RIGHT ARROWHEAD
+02C4 ; [*0498.0020.0002] # MODIFIER LETTER UP ARROWHEAD
+02C5 ; [*0499.0020.0002] # MODIFIER LETTER DOWN ARROWHEAD
+02C6 ; [*049A.0020.0002] # MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7 ; [*049B.0020.0002] # CARON
+02C8 ; [*049C.0020.0002] # MODIFIER LETTER VERTICAL LINE
+02C9 ; [*049D.0020.0002] # MODIFIER LETTER MACRON
+02CA ; [*049E.0020.0002] # MODIFIER LETTER ACUTE ACCENT
+02CB ; [*049F.0020.0002] # MODIFIER LETTER GRAVE ACCENT
+02CC ; [*04A0.0020.0002] # MODIFIER LETTER LOW VERTICAL LINE
+02CD ; [*04A1.0020.0002] # MODIFIER LETTER LOW MACRON
+02CE ; [*04A2.0020.0002] # MODIFIER LETTER LOW GRAVE ACCENT
+02CF ; [*04A3.0020.0002] # MODIFIER LETTER LOW ACUTE ACCENT
+02D2 ; [*04A4.0020.0002] # MODIFIER LETTER CENTRED RIGHT HALF RING
+02D3 ; [*04A5.0020.0002] # MODIFIER LETTER CENTRED LEFT HALF RING
+02D4 ; [*04A6.0020.0002] # MODIFIER LETTER UP TACK
+02D5 ; [*04A7.0020.0002] # MODIFIER LETTER DOWN TACK
+02D6 ; [*04A8.0020.0002] # MODIFIER LETTER PLUS SIGN
+02D7 ; [*04A9.0020.0002] # MODIFIER LETTER MINUS SIGN
+02D8 ; [*0487.0020.0002] # BREVE
+02D9 ; [*0488.0020.0002] # DOT ABOVE
+02DA ; [*048A.0020.0002] # RING ABOVE
+02DB ; [*048D.0020.0002] # OGONEK
+02DC ; [*0484.0020.0002] # SMALL TILDE
+02DD ; [*048B.0020.0002] # DOUBLE ACUTE ACCENT
+02DE ; [*04AA.0020.0002] # MODIFIER LETTER RHOTIC HOOK
+02DF ; [*04AB.0020.0002] # MODIFIER LETTER CROSS ACCENT
+02E5 ; [*04AC.0020.0002] # MODIFIER LETTER EXTRA-HIGH TONE BAR
+02E6 ; [*04AD.0020.0002] # MODIFIER LETTER HIGH TONE BAR
+02E7 ; [*04AE.0020.0002] # MODIFIER LETTER MID TONE BAR
+02E8 ; [*04AF.0020.0002] # MODIFIER LETTER LOW TONE BAR
+02E9 ; [*04B0.0020.0002] # MODIFIER LETTER EXTRA-LOW TONE BAR
+02EA ; [*04B1.0020.0002] # MODIFIER LETTER YIN DEPARTING TONE MARK
+02EB ; [*04B2.0020.0002] # MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; [*04B3.0020.0002] # MODIFIER LETTER VOICING
+02ED ; [*04B4.0020.0002] # MODIFIER LETTER UNASPIRATED
+02EF ; [*04B5.0020.0002] # MODIFIER LETTER LOW DOWN ARROWHEAD
+02F0 ; [*04B6.0020.0002] # MODIFIER LETTER LOW UP ARROWHEAD
+02F1 ; [*04B7.0020.0002] # MODIFIER LETTER LOW LEFT ARROWHEAD
+02F2 ; [*04B8.0020.0002] # MODIFIER LETTER LOW RIGHT ARROWHEAD
+02F3 ; [*04B9.0020.0002] # MODIFIER LETTER LOW RING
+02F4 ; [*04BA.0020.0002] # MODIFIER LETTER MIDDLE GRAVE ACCENT
+02F5 ; [*04BB.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
+02F6 ; [*04BC.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
+02F7 ; [*04BD.0020.0002] # MODIFIER LETTER LOW TILDE
+02F8 ; [*04BE.0020.0002] # MODIFIER LETTER RAISED COLON
+02F9 ; [*04BF.0020.0002] # MODIFIER LETTER BEGIN HIGH TONE
+02FA ; [*04C0.0020.0002] # MODIFIER LETTER END HIGH TONE
+02FB ; [*04C1.0020.0002] # MODIFIER LETTER BEGIN LOW TONE
+02FC ; [*04C2.0020.0002] # MODIFIER LETTER END LOW TONE
+02FD ; [*04C3.0020.0002] # MODIFIER LETTER SHELF
+02FE ; [*04C4.0020.0002] # MODIFIER LETTER OPEN SHELF
+02FF ; [*04C5.0020.0002] # MODIFIER LETTER LOW LEFT ARROW
034F ; [.0000.0000.0000] # COMBINING GRAPHEME JOINER
-0374 ; [*0457.0020.0002] # GREEK NUMERAL SIGN
-0375 ; [*0458.0020.0002] # GREEK LOWER NUMERAL SIGN
-037E ; [*0233.0020.0002] # GREEK QUESTION MARK
-0384 ; [*0447.0020.0002] # GREEK TONOS
-0385 ; [*044D.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA TONOS
-0387 ; [*0288.0020.0002] # GREEK ANO TELEIA
-03F6 ; [*05D1.0020.0002] # GREEK REVERSED LUNATE EPSILON SYMBOL
-0482 ; [*04BB.0020.0002] # CYRILLIC THOUSANDS SIGN
+0374 ; [*0493.0020.0002] # GREEK NUMERAL SIGN
+0375 ; [*0494.0020.0002] # GREEK LOWER NUMERAL SIGN
+037E ; [*0234.0020.0002] # GREEK QUESTION MARK
+0384 ; [*0483.0020.0002] # GREEK TONOS
+0385 ; [*0489.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA TONOS
+0387 ; [*028B.0020.0002] # GREEK ANO TELEIA
+03F6 ; [*0611.0020.0002] # GREEK REVERSED LUNATE EPSILON SYMBOL
+0482 ; [*04F7.0020.0002] # CYRILLIC THOUSANDS SIGN
0488 ; [.0000.0000.0000] # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
0489 ; [.0000.0000.0000] # COMBINING CYRILLIC MILLIONS SIGN
-055A ; [*03BD.0020.0002] # ARMENIAN APOSTROPHE
-055B ; [*03BE.0020.0002] # ARMENIAN EMPHASIS MARK
-055C ; [*0261.0020.0002] # ARMENIAN EXCLAMATION MARK
-055D ; [*0225.0020.0002] # ARMENIAN COMMA
-055E ; [*0267.0020.0002] # ARMENIAN QUESTION MARK
-055F ; [*03BF.0020.0002] # ARMENIAN ABBREVIATION MARK
-0589 ; [*0239.0020.0002] # ARMENIAN FULL STOP
+055A ; [*03CB.0020.0002] # ARMENIAN APOSTROPHE
+055B ; [*03CC.0020.0002] # ARMENIAN EMPHASIS MARK
+055C ; [*0262.0020.0002] # ARMENIAN EXCLAMATION MARK
+055D ; [*0226.0020.0002] # ARMENIAN COMMA
+055E ; [*0269.0020.0002] # ARMENIAN QUESTION MARK
+055F ; [*03CD.0020.0002] # ARMENIAN ABBREVIATION MARK
+0589 ; [*023A.0020.0002] # ARMENIAN FULL STOP
058A ; [*020E.0020.0002] # ARMENIAN HYPHEN
-058D ; [*04BC.0020.0002] # RIGHT-FACING ARMENIAN ETERNITY SIGN
-058E ; [*04BD.0020.0002] # LEFT-FACING ARMENIAN ETERNITY SIGN
+058D ; [*04F8.0020.0002] # RIGHT-FACING ARMENIAN ETERNITY SIGN
+058E ; [*04F9.0020.0002] # LEFT-FACING ARMENIAN ETERNITY SIGN
0591 ; [.0000.0000.0000] # HEBREW ACCENT ETNAHTA
0592 ; [.0000.0000.0000] # HEBREW ACCENT SEGOL
0593 ; [.0000.0000.0000] # HEBREW ACCENT SHALSHELET
@@ -640,29 +642,29 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
05AE ; [.0000.0000.0000] # HEBREW ACCENT ZINOR
05AF ; [.0000.0000.0000] # HEBREW MARK MASORA CIRCLE
05BD ; [.0000.0000.0000] # HEBREW POINT METEG
-05BE ; [*03C0.0020.0002] # HEBREW PUNCTUATION MAQAF
-05C0 ; [*03C1.0020.0002] # HEBREW PUNCTUATION PASEQ
-05C3 ; [*03C2.0020.0002] # HEBREW PUNCTUATION SOF PASUQ
+05BE ; [*03CE.0020.0002] # HEBREW PUNCTUATION MAQAF
+05C0 ; [*03CF.0020.0002] # HEBREW PUNCTUATION PASEQ
+05C3 ; [*03D0.0020.0002] # HEBREW PUNCTUATION SOF PASUQ
05C4 ; [.0000.0000.0000] # HEBREW MARK UPPER DOT
05C5 ; [.0000.0000.0000] # HEBREW MARK LOWER DOT
-05C6 ; [*03C3.0020.0002] # HEBREW PUNCTUATION NUN HAFUKHA
-05F3 ; [*03C4.0020.0002] # HEBREW PUNCTUATION GERESH
-05F4 ; [*03C5.0020.0002] # HEBREW PUNCTUATION GERSHAYIM
+05C6 ; [*03D1.0020.0002] # HEBREW PUNCTUATION NUN HAFUKHA
+05F3 ; [*03D2.0020.0002] # HEBREW PUNCTUATION GERESH
+05F4 ; [*03D3.0020.0002] # HEBREW PUNCTUATION GERSHAYIM
0600 ; [.0000.0000.0000] # ARABIC NUMBER SIGN
0601 ; [.0000.0000.0000] # ARABIC SIGN SANAH
0602 ; [.0000.0000.0000] # ARABIC FOOTNOTE MARKER
0603 ; [.0000.0000.0000] # ARABIC SIGN SAFHA
0604 ; [.0000.0000.0000] # ARABIC SIGN SAMVAT
0605 ; [.0000.0000.0000] # ARABIC NUMBER MARK ABOVE
-0606 ; [*05ED.0020.0002] # ARABIC-INDIC CUBE ROOT
-0607 ; [*05EF.0020.0002] # ARABIC-INDIC FOURTH ROOT
-0608 ; [*04BE.0020.0002] # ARABIC RAY
-0609 ; [*038F.0020.0002] # ARABIC-INDIC PER MILLE SIGN
-060A ; [*0391.0020.0002] # ARABIC-INDIC PER TEN THOUSAND SIGN
-060C ; [*0226.0020.0002] # ARABIC COMMA
-060D ; [*0227.0020.0002] # ARABIC DATE SEPARATOR
-060E ; [*04C1.0020.0002] # ARABIC POETIC VERSE SIGN
-060F ; [*04C2.0020.0002] # ARABIC SIGN MISRA
+0606 ; [*062D.0020.0002] # ARABIC-INDIC CUBE ROOT
+0607 ; [*062F.0020.0002] # ARABIC-INDIC FOURTH ROOT
+0608 ; [*04FA.0020.0002] # ARABIC RAY
+0609 ; [*039C.0020.0002] # ARABIC-INDIC PER MILLE SIGN
+060A ; [*039E.0020.0002] # ARABIC-INDIC PER TEN THOUSAND SIGN
+060C ; [*0227.0020.0002] # ARABIC COMMA
+060D ; [*0228.0020.0002] # ARABIC DATE SEPARATOR
+060E ; [*04FD.0020.0002] # ARABIC POETIC VERSE SIGN
+060F ; [*04FE.0020.0002] # ARABIC SIGN MISRA
0610 ; [.0000.0000.0000] # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
0611 ; [.0000.0000.0000] # ARABIC SIGN ALAYHE ASSALLAM
0612 ; [.0000.0000.0000] # ARABIC SIGN RAHMATULLAH ALAYHE
@@ -674,15 +676,15 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
0618 ; [.0000.0000.0000] # ARABIC SMALL FATHA
0619 ; [.0000.0000.0000] # ARABIC SMALL DAMMA
061A ; [.0000.0000.0000] # ARABIC SMALL KASRA
-061B ; [*0234.0020.0002] # ARABIC SEMICOLON
-061E ; [*023A.0020.0002] # ARABIC TRIPLE DOT PUNCTUATION MARK
-061F ; [*0268.0020.0002] # ARABIC QUESTION MARK
+061B ; [*0235.0020.0002] # ARABIC SEMICOLON
+061E ; [*023B.0020.0002] # ARABIC TRIPLE DOT PUNCTUATION MARK
+061F ; [*026A.0020.0002] # ARABIC QUESTION MARK
0640 ; [.0000.0000.0000] # ARABIC TATWEEL
-066A ; [*038D.0020.0002] # ARABIC PERCENT SIGN
-066B ; [*0228.0020.0002] # ARABIC DECIMAL SEPARATOR
-066C ; [*0229.0020.0002] # ARABIC THOUSANDS SEPARATOR
-066D ; [*0385.0020.0002] # ARABIC FIVE POINTED STAR
-06D4 ; [*0276.0020.0002] # ARABIC FULL STOP
+066A ; [*039A.0020.0002] # ARABIC PERCENT SIGN
+066B ; [*0229.0020.0002] # ARABIC DECIMAL SEPARATOR
+066C ; [*022A.0020.0002] # ARABIC THOUSANDS SEPARATOR
+066D ; [*0392.0020.0002] # ARABIC FIVE POINTED STAR
+06D4 ; [*0279.0020.0002] # ARABIC FULL STOP
06D6 ; [.0000.0000.0000] # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
06D7 ; [.0000.0000.0000] # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
06D8 ; [.0000.0000.0000] # ARABIC SMALL HIGH MEEM INITIAL FORM
@@ -691,7 +693,7 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
06DB ; [.0000.0000.0000] # ARABIC SMALL HIGH THREE DOTS
06DC ; [.0000.0000.0000] # ARABIC SMALL HIGH SEEN
06DD ; [.0000.0000.0000] # ARABIC END OF AYAH
-06DE ; [*04C3.0020.0002] # ARABIC START OF RUB EL HIZB
+06DE ; [*04FF.0020.0002] # ARABIC START OF RUB EL HIZB
06DF ; [.0000.0000.0000] # ARABIC SMALL HIGH ROUNDED ZERO
06E0 ; [.0000.0000.0000] # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
06E1 ; [.0000.0000.0000] # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
@@ -700,25 +702,25 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
06E4 ; [.0000.0000.0000] # ARABIC SMALL HIGH MADDA
06E7 ; [.0000.0000.0000] # ARABIC SMALL HIGH YEH
06E8 ; [.0000.0000.0000] # ARABIC SMALL HIGH NOON
-06E9 ; [*04C4.0020.0002] # ARABIC PLACE OF SAJDAH
+06E9 ; [*0500.0020.0002] # ARABIC PLACE OF SAJDAH
06EA ; [.0000.0000.0000] # ARABIC EMPTY CENTRE LOW STOP
06EB ; [.0000.0000.0000] # ARABIC EMPTY CENTRE HIGH STOP
06EC ; [.0000.0000.0000] # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
06ED ; [.0000.0000.0000] # ARABIC SMALL LOW MEEM
-0700 ; [*02BB.0020.0002] # SYRIAC END OF PARAGRAPH
-0701 ; [*0277.0020.0002] # SYRIAC SUPRALINEAR FULL STOP
-0702 ; [*0278.0020.0002] # SYRIAC SUBLINEAR FULL STOP
-0703 ; [*023B.0020.0002] # SYRIAC SUPRALINEAR COLON
-0704 ; [*023C.0020.0002] # SYRIAC SUBLINEAR COLON
-0705 ; [*023D.0020.0002] # SYRIAC HORIZONTAL COLON
-0706 ; [*023E.0020.0002] # SYRIAC COLON SKEWED LEFT
-0707 ; [*023F.0020.0002] # SYRIAC COLON SKEWED RIGHT
-0708 ; [*0240.0020.0002] # SYRIAC SUPRALINEAR COLON SKEWED LEFT
-0709 ; [*0269.0020.0002] # SYRIAC SUBLINEAR COLON SKEWED RIGHT
-070A ; [*03C6.0020.0002] # SYRIAC CONTRACTION
-070B ; [*03C7.0020.0002] # SYRIAC HARKLEAN OBELUS
-070C ; [*03C8.0020.0002] # SYRIAC HARKLEAN METOBELUS
-070D ; [*03C9.0020.0002] # SYRIAC HARKLEAN ASTERISCUS
+0700 ; [*02C4.0020.0002] # SYRIAC END OF PARAGRAPH
+0701 ; [*027A.0020.0002] # SYRIAC SUPRALINEAR FULL STOP
+0702 ; [*027B.0020.0002] # SYRIAC SUBLINEAR FULL STOP
+0703 ; [*023C.0020.0002] # SYRIAC SUPRALINEAR COLON
+0704 ; [*023D.0020.0002] # SYRIAC SUBLINEAR COLON
+0705 ; [*023E.0020.0002] # SYRIAC HORIZONTAL COLON
+0706 ; [*023F.0020.0002] # SYRIAC COLON SKEWED LEFT
+0707 ; [*0240.0020.0002] # SYRIAC COLON SKEWED RIGHT
+0708 ; [*0241.0020.0002] # SYRIAC SUPRALINEAR COLON SKEWED LEFT
+0709 ; [*026B.0020.0002] # SYRIAC SUBLINEAR COLON SKEWED RIGHT
+070A ; [*03D4.0020.0002] # SYRIAC CONTRACTION
+070B ; [*03D5.0020.0002] # SYRIAC HARKLEAN OBELUS
+070C ; [*03D6.0020.0002] # SYRIAC HARKLEAN METOBELUS
+070D ; [*03D7.0020.0002] # SYRIAC HARKLEAN ASTERISCUS
0740 ; [.0000.0000.0000] # SYRIAC FEMININE DOT
0743 ; [.0000.0000.0000] # SYRIAC TWO VERTICAL DOTS ABOVE
0744 ; [.0000.0000.0000] # SYRIAC TWO VERTICAL DOTS BELOW
@@ -726,27 +728,41 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
0748 ; [.0000.0000.0000] # SYRIAC OBLIQUE LINE BELOW
0749 ; [.0000.0000.0000] # SYRIAC MUSIC
074A ; [.0000.0000.0000] # SYRIAC BARREKH
-07F6 ; [*04D6.0020.0002] # NKO SYMBOL OO DENNEN
-07F7 ; [*02BC.0020.0002] # NKO SYMBOL GBAKURUNEN
-07F8 ; [*022A.0020.0002] # NKO COMMA
-07F9 ; [*0262.0020.0002] # NKO EXCLAMATION MARK
+07F6 ; [*0512.0020.0002] # NKO SYMBOL OO DENNEN
+07F7 ; [*02C5.0020.0002] # NKO SYMBOL GBAKURUNEN
+07F8 ; [*022B.0020.0002] # NKO COMMA
+07F9 ; [*0263.0020.0002] # NKO EXCLAMATION MARK
07FA ; [.0000.0000.0000] # NKO LAJANYALAN
-0830 ; [*0241.0020.0002] # SAMARITAN PUNCTUATION NEQUDAA
-0831 ; [*0242.0020.0002] # SAMARITAN PUNCTUATION AFSAAQ
-0832 ; [*0243.0020.0002] # SAMARITAN PUNCTUATION ANGED
-0833 ; [*0244.0020.0002] # SAMARITAN PUNCTUATION BAU
-0834 ; [*0245.0020.0002] # SAMARITAN PUNCTUATION ATMAAU
-0835 ; [*0246.0020.0002] # SAMARITAN PUNCTUATION SHIYYAALAA
-0836 ; [*0247.0020.0002] # SAMARITAN ABBREVIATION MARK
-0837 ; [*0248.0020.0002] # SAMARITAN PUNCTUATION MELODIC QITSA
-0838 ; [*0249.0020.0002] # SAMARITAN PUNCTUATION ZIQAA
-0839 ; [*024A.0020.0002] # SAMARITAN PUNCTUATION QITSA
-083A ; [*024B.0020.0002] # SAMARITAN PUNCTUATION ZAEF
-083B ; [*024C.0020.0002] # SAMARITAN PUNCTUATION TURU
-083C ; [*024D.0020.0002] # SAMARITAN PUNCTUATION ARKAANU
-083D ; [*024E.0020.0002] # SAMARITAN PUNCTUATION SOF MASHFAAT
-083E ; [*024F.0020.0002] # SAMARITAN PUNCTUATION ANNAAU
-085E ; [*03CA.0020.0002] # MANDAIC PUNCTUATION
+0830 ; [*0242.0020.0002] # SAMARITAN PUNCTUATION NEQUDAA
+0831 ; [*0243.0020.0002] # SAMARITAN PUNCTUATION AFSAAQ
+0832 ; [*0244.0020.0002] # SAMARITAN PUNCTUATION ANGED
+0833 ; [*0245.0020.0002] # SAMARITAN PUNCTUATION BAU
+0834 ; [*0246.0020.0002] # SAMARITAN PUNCTUATION ATMAAU
+0835 ; [*0247.0020.0002] # SAMARITAN PUNCTUATION SHIYYAALAA
+0836 ; [*0248.0020.0002] # SAMARITAN ABBREVIATION MARK
+0837 ; [*0249.0020.0002] # SAMARITAN PUNCTUATION MELODIC QITSA
+0838 ; [*024A.0020.0002] # SAMARITAN PUNCTUATION ZIQAA
+0839 ; [*024B.0020.0002] # SAMARITAN PUNCTUATION QITSA
+083A ; [*024C.0020.0002] # SAMARITAN PUNCTUATION ZAEF
+083B ; [*024D.0020.0002] # SAMARITAN PUNCTUATION TURU
+083C ; [*024E.0020.0002] # SAMARITAN PUNCTUATION ARKAANU
+083D ; [*024F.0020.0002] # SAMARITAN PUNCTUATION SOF MASHFAAT
+083E ; [*0250.0020.0002] # SAMARITAN PUNCTUATION ANNAAU
+085E ; [*03D8.0020.0002] # MANDAIC PUNCTUATION
+08D4 ; [.0000.0000.0000] # ARABIC SMALL HIGH WORD AR-RUB
+08D5 ; [.0000.0000.0000] # ARABIC SMALL HIGH SAD
+08D6 ; [.0000.0000.0000] # ARABIC SMALL HIGH AIN
+08D7 ; [.0000.0000.0000] # ARABIC SMALL HIGH QAF
+08D8 ; [.0000.0000.0000] # ARABIC SMALL HIGH NOON WITH KASRA
+08D9 ; [.0000.0000.0000] # ARABIC SMALL LOW NOON WITH KASRA
+08DA ; [.0000.0000.0000] # ARABIC SMALL HIGH WORD ATH-THALATHA
+08DB ; [.0000.0000.0000] # ARABIC SMALL HIGH WORD AS-SAJDA
+08DC ; [.0000.0000.0000] # ARABIC SMALL HIGH WORD AN-NISF
+08DD ; [.0000.0000.0000] # ARABIC SMALL HIGH WORD SAKTA
+08DE ; [.0000.0000.0000] # ARABIC SMALL HIGH WORD QIF
+08DF ; [.0000.0000.0000] # ARABIC SMALL HIGH WORD WAQFA
+08E0 ; [.0000.0000.0000] # ARABIC SMALL HIGH FOOTNOTE MARKER
+08E1 ; [.0000.0000.0000] # ARABIC SMALL HIGH SIGN SAFHA
08EA ; [.0000.0000.0000] # ARABIC TONE ONE DOT ABOVE
08EB ; [.0000.0000.0000] # ARABIC TONE TWO DOTS ABOVE
08EC ; [.0000.0000.0000] # ARABIC TONE LOOP ABOVE
@@ -756,259 +772,270 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
08F3 ; [.0000.0000.0000] # ARABIC SMALL HIGH WAW
0951 ; [.0000.0000.0000] # DEVANAGARI STRESS SIGN UDATTA
0952 ; [.0000.0000.0000] # DEVANAGARI STRESS SIGN ANUDATTA
-0964 ; [*028B.0020.0002] # DEVANAGARI DANDA
-0965 ; [*028C.0020.0002] # DEVANAGARI DOUBLE DANDA
-0970 ; [*03CC.0020.0002] # DEVANAGARI ABBREVIATION SIGN
-09F4 ; [*17B1.0020.0002] # BENGALI CURRENCY NUMERATOR ONE
-09F5 ; [*17B2.0020.0002] # BENGALI CURRENCY NUMERATOR TWO
-09F6 ; [*17B3.0020.0002] # BENGALI CURRENCY NUMERATOR THREE
-09F7 ; [*17B4.0020.0002] # BENGALI CURRENCY NUMERATOR FOUR
-09F8 ; [*17B5.0020.0002] # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-09F9 ; [*17B6.0020.0002] # BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA ; [*04D7.0020.0002] # BENGALI ISSHAR
-0AF0 ; [*03D0.0020.0002] # GUJARATI ABBREVIATION SIGN
-0B70 ; [*04D8.0020.0002] # ORIYA ISSHAR
-0B72 ; [*17B7.0020.0002] # ORIYA FRACTION ONE QUARTER
-0B73 ; [*17B8.0020.0002] # ORIYA FRACTION ONE HALF
-0B74 ; [*17B9.0020.0002] # ORIYA FRACTION THREE QUARTERS
-0B75 ; [*17BA.0020.0002] # ORIYA FRACTION ONE SIXTEENTH
-0B76 ; [*17BB.0020.0002] # ORIYA FRACTION ONE EIGHTH
-0B77 ; [*17BC.0020.0002] # ORIYA FRACTION THREE SIXTEENTHS
-0BF0 ; [*17C3.0020.0002] # TAMIL NUMBER TEN
-0BF1 ; [*17C4.0020.0002] # TAMIL NUMBER ONE HUNDRED
-0BF2 ; [*17C5.0020.0002] # TAMIL NUMBER ONE THOUSAND
-0BF3 ; [*04D9.0020.0002] # TAMIL DAY SIGN
-0BF4 ; [*04DA.0020.0002] # TAMIL MONTH SIGN
-0BF5 ; [*04DB.0020.0002] # TAMIL YEAR SIGN
-0BF6 ; [*04DC.0020.0002] # TAMIL DEBIT SIGN
-0BF7 ; [*04DD.0020.0002] # TAMIL CREDIT SIGN
-0BF8 ; [*04DE.0020.0002] # TAMIL AS ABOVE SIGN
-0BFA ; [*04DF.0020.0002] # TAMIL NUMBER SIGN
-0C7F ; [*04E0.0020.0002] # TELUGU SIGN TUUMU
-0D70 ; [*17C6.0020.0002] # MALAYALAM NUMBER TEN
-0D71 ; [*17C7.0020.0002] # MALAYALAM NUMBER ONE HUNDRED
-0D72 ; [*17C8.0020.0002] # MALAYALAM NUMBER ONE THOUSAND
-0D73 ; [*17C9.0020.0002] # MALAYALAM FRACTION ONE QUARTER
-0D74 ; [*17CA.0020.0002] # MALAYALAM FRACTION ONE HALF
-0D75 ; [*17CB.0020.0002] # MALAYALAM FRACTION THREE QUARTERS
-0D79 ; [*04E1.0020.0002] # MALAYALAM DATE MARK
-0DF4 ; [*03D1.0020.0002] # SINHALA PUNCTUATION KUNDDALIYA
-0E4F ; [*03D2.0020.0002] # THAI CHARACTER FONGMAN
-0E5A ; [*03D3.0020.0002] # THAI CHARACTER ANGKHANKHU
-0E5B ; [*03D4.0020.0002] # THAI CHARACTER KHOMUT
-0F01 ; [*04E9.0020.0002] # TIBETAN MARK GTER YIG MGO TRUNCATED A
-0F02 ; [*04EA.0020.0002] # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
-0F03 ; [*04EB.0020.0002] # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04 ; [*03D7.0020.0002] # TIBETAN MARK INITIAL YIG MGO MDUN MA
-0F05 ; [*03D8.0020.0002] # TIBETAN MARK CLOSING YIG MGO SGAB MA
-0F06 ; [*03D9.0020.0002] # TIBETAN MARK CARET YIG MGO PHUR SHAD MA
-0F07 ; [*03DA.0020.0002] # TIBETAN MARK YIG MGO TSHEG SHAD MA
-0F08 ; [*03DB.0020.0002] # TIBETAN MARK SBRUL SHAD
-0F09 ; [*03DC.0020.0002] # TIBETAN MARK BSKUR YIG MGO
-0F0A ; [*03DD.0020.0002] # TIBETAN MARK BKA- SHOG YIG MGO
-0F0B ; [*03E0.0020.0002] # TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C ; [*03E0.0020.001B] # TIBETAN MARK DELIMITER TSHEG BSTAR
-0F0D ; [*03E1.0020.0002] # TIBETAN MARK SHAD
-0F0E ; [*03E2.0020.0002] # TIBETAN MARK NYIS SHAD
-0F0F ; [*03E3.0020.0002] # TIBETAN MARK TSHEG SHAD
-0F10 ; [*03E4.0020.0002] # TIBETAN MARK NYIS TSHEG SHAD
-0F11 ; [*03E5.0020.0002] # TIBETAN MARK RIN CHEN SPUNGS SHAD
-0F12 ; [*03E6.0020.0002] # TIBETAN MARK RGYA GRAM SHAD
-0F13 ; [*04EC.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
-0F14 ; [*0257.0020.0002] # TIBETAN MARK GTER TSHEG
-0F15 ; [*04ED.0020.0002] # TIBETAN LOGOTYPE SIGN CHAD RTAGS
-0F16 ; [*04EE.0020.0002] # TIBETAN LOGOTYPE SIGN LHAG RTAGS
-0F17 ; [*04EF.0020.0002] # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0964 ; [*028E.0020.0002] # DEVANAGARI DANDA
+0965 ; [*028F.0020.0002] # DEVANAGARI DOUBLE DANDA
+0970 ; [*03E7.0020.0002] # DEVANAGARI ABBREVIATION SIGN
+09F4 ; [*1A96.0020.0002] # BENGALI CURRENCY NUMERATOR ONE
+09F5 ; [*1A97.0020.0002] # BENGALI CURRENCY NUMERATOR TWO
+09F6 ; [*1A98.0020.0002] # BENGALI CURRENCY NUMERATOR THREE
+09F7 ; [*1A99.0020.0002] # BENGALI CURRENCY NUMERATOR FOUR
+09F8 ; [*1A9A.0020.0002] # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+09F9 ; [*1A9B.0020.0002] # BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA ; [*0513.0020.0002] # BENGALI ISSHAR
+0AF0 ; [*03EC.0020.0002] # GUJARATI ABBREVIATION SIGN
+0B70 ; [*0514.0020.0002] # ORIYA ISSHAR
+0B72 ; [*1A9C.0020.0002] # ORIYA FRACTION ONE QUARTER
+0B73 ; [*1A9D.0020.0002] # ORIYA FRACTION ONE HALF
+0B74 ; [*1A9E.0020.0002] # ORIYA FRACTION THREE QUARTERS
+0B75 ; [*1A9F.0020.0002] # ORIYA FRACTION ONE SIXTEENTH
+0B76 ; [*1AA0.0020.0002] # ORIYA FRACTION ONE EIGHTH
+0B77 ; [*1AA1.0020.0002] # ORIYA FRACTION THREE SIXTEENTHS
+0BF0 ; [*1AA8.0020.0002] # TAMIL NUMBER TEN
+0BF1 ; [*1AA9.0020.0002] # TAMIL NUMBER ONE HUNDRED
+0BF2 ; [*1AAA.0020.0002] # TAMIL NUMBER ONE THOUSAND
+0BF3 ; [*0515.0020.0002] # TAMIL DAY SIGN
+0BF4 ; [*0516.0020.0002] # TAMIL MONTH SIGN
+0BF5 ; [*0517.0020.0002] # TAMIL YEAR SIGN
+0BF6 ; [*0518.0020.0002] # TAMIL DEBIT SIGN
+0BF7 ; [*0519.0020.0002] # TAMIL CREDIT SIGN
+0BF8 ; [*051A.0020.0002] # TAMIL AS ABOVE SIGN
+0BFA ; [*051B.0020.0002] # TAMIL NUMBER SIGN
+0C7F ; [*051C.0020.0002] # TELUGU SIGN TUUMU
+0D4F ; [*051D.0020.0002] # MALAYALAM SIGN PARA
+0D58 ; [*1AAB.0020.0002] # MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH
+0D59 ; [*1AAC.0020.0002] # MALAYALAM FRACTION ONE FORTIETH
+0D5A ; [*1AAD.0020.0002] # MALAYALAM FRACTION THREE EIGHTIETHS
+0D5B ; [*1AAE.0020.0002] # MALAYALAM FRACTION ONE TWENTIETH
+0D5C ; [*1AAF.0020.0002] # MALAYALAM FRACTION ONE TENTH
+0D5D ; [*1AB0.0020.0002] # MALAYALAM FRACTION THREE TWENTIETHS
+0D5E ; [*1AB1.0020.0002] # MALAYALAM FRACTION ONE FIFTH
+0D70 ; [*1AB2.0020.0002] # MALAYALAM NUMBER TEN
+0D71 ; [*1AB3.0020.0002] # MALAYALAM NUMBER ONE HUNDRED
+0D72 ; [*1AB4.0020.0002] # MALAYALAM NUMBER ONE THOUSAND
+0D73 ; [*1AB5.0020.0002] # MALAYALAM FRACTION ONE QUARTER
+0D74 ; [*1AB6.0020.0002] # MALAYALAM FRACTION ONE HALF
+0D75 ; [*1AB7.0020.0002] # MALAYALAM FRACTION THREE QUARTERS
+0D76 ; [*1AB8.0020.0002] # MALAYALAM FRACTION ONE SIXTEENTH
+0D77 ; [*1AB9.0020.0002] # MALAYALAM FRACTION ONE EIGHTH
+0D78 ; [*1ABA.0020.0002] # MALAYALAM FRACTION THREE SIXTEENTHS
+0D79 ; [*051E.0020.0002] # MALAYALAM DATE MARK
+0DF4 ; [*03ED.0020.0002] # SINHALA PUNCTUATION KUNDDALIYA
+0E4F ; [*03EE.0020.0002] # THAI CHARACTER FONGMAN
+0E5A ; [*03EF.0020.0002] # THAI CHARACTER ANGKHANKHU
+0E5B ; [*03F0.0020.0002] # THAI CHARACTER KHOMUT
+0F01 ; [*0526.0020.0002] # TIBETAN MARK GTER YIG MGO TRUNCATED A
+0F02 ; [*0527.0020.0002] # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
+0F03 ; [*0528.0020.0002] # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04 ; [*03F3.0020.0002] # TIBETAN MARK INITIAL YIG MGO MDUN MA
+0F05 ; [*03F4.0020.0002] # TIBETAN MARK CLOSING YIG MGO SGAB MA
+0F06 ; [*03F5.0020.0002] # TIBETAN MARK CARET YIG MGO PHUR SHAD MA
+0F07 ; [*03F6.0020.0002] # TIBETAN MARK YIG MGO TSHEG SHAD MA
+0F08 ; [*03F7.0020.0002] # TIBETAN MARK SBRUL SHAD
+0F09 ; [*03F8.0020.0002] # TIBETAN MARK BSKUR YIG MGO
+0F0A ; [*03F9.0020.0002] # TIBETAN MARK BKA- SHOG YIG MGO
+0F0B ; [*03FC.0020.0002] # TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C ; [*03FC.0020.001B] # TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D ; [*03FD.0020.0002] # TIBETAN MARK SHAD
+0F0E ; [*03FE.0020.0002] # TIBETAN MARK NYIS SHAD
+0F0F ; [*03FF.0020.0002] # TIBETAN MARK TSHEG SHAD
+0F10 ; [*0400.0020.0002] # TIBETAN MARK NYIS TSHEG SHAD
+0F11 ; [*0401.0020.0002] # TIBETAN MARK RIN CHEN SPUNGS SHAD
+0F12 ; [*0402.0020.0002] # TIBETAN MARK RGYA GRAM SHAD
+0F13 ; [*0529.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14 ; [*0258.0020.0002] # TIBETAN MARK GTER TSHEG
+0F15 ; [*052A.0020.0002] # TIBETAN LOGOTYPE SIGN CHAD RTAGS
+0F16 ; [*052B.0020.0002] # TIBETAN LOGOTYPE SIGN LHAG RTAGS
+0F17 ; [*052C.0020.0002] # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
0F18 ; [.0000.0000.0000] # TIBETAN ASTROLOGICAL SIGN -KHYUD PA
0F19 ; [.0000.0000.0000] # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A ; [*04F0.0020.0002] # TIBETAN SIGN RDEL DKAR GCIG
-0F1B ; [*04F1.0020.0002] # TIBETAN SIGN RDEL DKAR GNYIS
-0F1C ; [*04F2.0020.0002] # TIBETAN SIGN RDEL DKAR GSUM
-0F1D ; [*04F3.0020.0002] # TIBETAN SIGN RDEL NAG GCIG
-0F1E ; [*04F4.0020.0002] # TIBETAN SIGN RDEL NAG GNYIS
-0F1F ; [*04F5.0020.0002] # TIBETAN SIGN RDEL DKAR RDEL NAG
-0F34 ; [*04F6.0020.0002] # TIBETAN MARK BSDUS RTAGS
+0F1A ; [*052D.0020.0002] # TIBETAN SIGN RDEL DKAR GCIG
+0F1B ; [*052E.0020.0002] # TIBETAN SIGN RDEL DKAR GNYIS
+0F1C ; [*052F.0020.0002] # TIBETAN SIGN RDEL DKAR GSUM
+0F1D ; [*0530.0020.0002] # TIBETAN SIGN RDEL NAG GCIG
+0F1E ; [*0531.0020.0002] # TIBETAN SIGN RDEL NAG GNYIS
+0F1F ; [*0532.0020.0002] # TIBETAN SIGN RDEL DKAR RDEL NAG
+0F34 ; [*0533.0020.0002] # TIBETAN MARK BSDUS RTAGS
0F35 ; [.0000.0000.0000] # TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36 ; [*04F7.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F36 ; [*0534.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
0F37 ; [.0000.0000.0000] # TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38 ; [*04F8.0020.0002] # TIBETAN MARK CHE MGO
-0F3A ; [*0310.0020.0002] # TIBETAN MARK GUG RTAGS GYON
-0F3B ; [*0311.0020.0002] # TIBETAN MARK GUG RTAGS GYAS
-0F3C ; [*0312.0020.0002] # TIBETAN MARK ANG KHANG GYON
-0F3D ; [*0313.0020.0002] # TIBETAN MARK ANG KHANG GYAS
+0F38 ; [*0535.0020.0002] # TIBETAN MARK CHE MGO
+0F3A ; [*031D.0020.0002] # TIBETAN MARK GUG RTAGS GYON
+0F3B ; [*031E.0020.0002] # TIBETAN MARK GUG RTAGS GYAS
+0F3C ; [*031F.0020.0002] # TIBETAN MARK ANG KHANG GYON
+0F3D ; [*0320.0020.0002] # TIBETAN MARK ANG KHANG GYAS
0F3E ; [.0000.0000.0000] # TIBETAN SIGN YAR TSHES
0F3F ; [.0000.0000.0000] # TIBETAN SIGN MAR TSHES
0F82 ; [.0000.0000.0000] # TIBETAN SIGN NYI ZLA NAA DA
0F83 ; [.0000.0000.0000] # TIBETAN SIGN SNA LDAN
-0F85 ; [*03E7.0020.0002] # TIBETAN MARK PALUTA
+0F85 ; [*0403.0020.0002] # TIBETAN MARK PALUTA
0F86 ; [.0000.0000.0000] # TIBETAN SIGN LCI RTAGS
0F87 ; [.0000.0000.0000] # TIBETAN SIGN YANG RTAGS
-0FBE ; [*04F9.0020.0002] # TIBETAN KU RU KHA
-0FBF ; [*04FA.0020.0002] # TIBETAN KU RU KHA BZHI MIG CAN
-0FC0 ; [*04FB.0020.0002] # TIBETAN CANTILLATION SIGN HEAVY BEAT
-0FC1 ; [*04FC.0020.0002] # TIBETAN CANTILLATION SIGN LIGHT BEAT
-0FC2 ; [*04FD.0020.0002] # TIBETAN CANTILLATION SIGN CANG TE-U
-0FC3 ; [*04FE.0020.0002] # TIBETAN CANTILLATION SIGN SBUB -CHAL
-0FC4 ; [*04FF.0020.0002] # TIBETAN SYMBOL DRIL BU
-0FC5 ; [*0500.0020.0002] # TIBETAN SYMBOL RDO RJE
+0FBE ; [*0536.0020.0002] # TIBETAN KU RU KHA
+0FBF ; [*0537.0020.0002] # TIBETAN KU RU KHA BZHI MIG CAN
+0FC0 ; [*0538.0020.0002] # TIBETAN CANTILLATION SIGN HEAVY BEAT
+0FC1 ; [*0539.0020.0002] # TIBETAN CANTILLATION SIGN LIGHT BEAT
+0FC2 ; [*053A.0020.0002] # TIBETAN CANTILLATION SIGN CANG TE-U
+0FC3 ; [*053B.0020.0002] # TIBETAN CANTILLATION SIGN SBUB -CHAL
+0FC4 ; [*053C.0020.0002] # TIBETAN SYMBOL DRIL BU
+0FC5 ; [*053D.0020.0002] # TIBETAN SYMBOL RDO RJE
0FC6 ; [.0000.0000.0000] # TIBETAN SYMBOL PADMA GDAN
-0FC7 ; [*0501.0020.0002] # TIBETAN SYMBOL RDO RJE RGYA GRAM
-0FC8 ; [*0502.0020.0002] # TIBETAN SYMBOL PHUR PA
-0FC9 ; [*0503.0020.0002] # TIBETAN SYMBOL NOR BU
-0FCA ; [*0504.0020.0002] # TIBETAN SYMBOL NOR BU NYIS -KHYIL
-0FCB ; [*0505.0020.0002] # TIBETAN SYMBOL NOR BU GSUM -KHYIL
-0FCC ; [*0506.0020.0002] # TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCE ; [*0507.0020.0002] # TIBETAN SIGN RDEL NAG RDEL DKAR
-0FCF ; [*0508.0020.0002] # TIBETAN SIGN RDEL NAG GSUM
-0FD0 ; [*03DE.0020.0002] # TIBETAN MARK BSKA- SHOG GI MGO RGYAN
-0FD1 ; [*03DF.0020.0002] # TIBETAN MARK MNYAM YIG GI MGO RGYAN
-0FD2 ; [*03E8.0020.0002] # TIBETAN MARK NYIS TSHEG
-0FD3 ; [*03E9.0020.0002] # TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
-0FD4 ; [*03EA.0020.0002] # TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
-0FD5 ; [*0509.0020.0002] # RIGHT-FACING SVASTI SIGN
-0FD6 ; [*050A.0020.0002] # LEFT-FACING SVASTI SIGN
-0FD7 ; [*050B.0020.0002] # RIGHT-FACING SVASTI SIGN WITH DOTS
-0FD8 ; [*050C.0020.0002] # LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9 ; [*03EB.0020.0002] # TIBETAN MARK LEADING MCHAN RTAGS
-0FDA ; [*03EC.0020.0002] # TIBETAN MARK TRAILING MCHAN RTAGS
-104A ; [*0296.0020.0002] # MYANMAR SIGN LITTLE SECTION
-104B ; [*0297.0020.0002] # MYANMAR SIGN SECTION
-104C ; [*03F0.0020.0002] # MYANMAR SYMBOL LOCATIVE
-104D ; [*03F1.0020.0002] # MYANMAR SYMBOL COMPLETED
-104E ; [*03F2.0020.0002] # MYANMAR SYMBOL AFOREMENTIONED
-104F ; [*03F3.0020.0002] # MYANMAR SYMBOL GENITIVE
-109E ; [*050E.0020.0002] # MYANMAR SYMBOL SHAN ONE
-109F ; [*050F.0020.0002] # MYANMAR SYMBOL SHAN EXCLAMATION
-10FB ; [*02BD.0020.0002] # GEORGIAN PARAGRAPH SEPARATOR
-1360 ; [*02BE.0020.0002] # ETHIOPIC SECTION MARK
-1361 ; [*0250.0020.0002] # ETHIOPIC WORDSPACE
-1362 ; [*0279.0020.0002] # ETHIOPIC FULL STOP
-1363 ; [*0251.0020.0002] # ETHIOPIC COMMA
-1364 ; [*0252.0020.0002] # ETHIOPIC SEMICOLON
-1365 ; [*0253.0020.0002] # ETHIOPIC COLON
-1366 ; [*0254.0020.0002] # ETHIOPIC PREFACE COLON
-1367 ; [*026A.0020.0002] # ETHIOPIC QUESTION MARK
-1368 ; [*02BF.0020.0002] # ETHIOPIC PARAGRAPH SEPARATOR
-1372 ; [*17CC.0020.0002] # ETHIOPIC NUMBER TEN
-1373 ; [*17CD.0020.0002] # ETHIOPIC NUMBER TWENTY
-1374 ; [*17CE.0020.0002] # ETHIOPIC NUMBER THIRTY
-1375 ; [*17CF.0020.0002] # ETHIOPIC NUMBER FORTY
-1376 ; [*17D0.0020.0002] # ETHIOPIC NUMBER FIFTY
-1377 ; [*17D1.0020.0002] # ETHIOPIC NUMBER SIXTY
-1378 ; [*17D2.0020.0002] # ETHIOPIC NUMBER SEVENTY
-1379 ; [*17D3.0020.0002] # ETHIOPIC NUMBER EIGHTY
-137A ; [*17D4.0020.0002] # ETHIOPIC NUMBER NINETY
-137B ; [*17D5.0020.0002] # ETHIOPIC NUMBER HUNDRED
-137C ; [*17D6.0020.0002] # ETHIOPIC NUMBER TEN THOUSAND
-1390 ; [*048A.0020.0002] # ETHIOPIC TONAL MARK YIZET
-1391 ; [*048B.0020.0002] # ETHIOPIC TONAL MARK DERET
-1392 ; [*048C.0020.0002] # ETHIOPIC TONAL MARK RIKRIK
-1393 ; [*048D.0020.0002] # ETHIOPIC TONAL MARK SHORT RIKRIK
-1394 ; [*048E.0020.0002] # ETHIOPIC TONAL MARK DIFAT
-1395 ; [*048F.0020.0002] # ETHIOPIC TONAL MARK KENAT
-1396 ; [*0490.0020.0002] # ETHIOPIC TONAL MARK CHIRET
-1397 ; [*0491.0020.0002] # ETHIOPIC TONAL MARK HIDET
-1398 ; [*0492.0020.0002] # ETHIOPIC TONAL MARK DERET-HIDET
-1399 ; [*0493.0020.0002] # ETHIOPIC TONAL MARK KURT
+0FC7 ; [*053E.0020.0002] # TIBETAN SYMBOL RDO RJE RGYA GRAM
+0FC8 ; [*053F.0020.0002] # TIBETAN SYMBOL PHUR PA
+0FC9 ; [*0540.0020.0002] # TIBETAN SYMBOL NOR BU
+0FCA ; [*0541.0020.0002] # TIBETAN SYMBOL NOR BU NYIS -KHYIL
+0FCB ; [*0542.0020.0002] # TIBETAN SYMBOL NOR BU GSUM -KHYIL
+0FCC ; [*0543.0020.0002] # TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE ; [*0544.0020.0002] # TIBETAN SIGN RDEL NAG RDEL DKAR
+0FCF ; [*0545.0020.0002] # TIBETAN SIGN RDEL NAG GSUM
+0FD0 ; [*03FA.0020.0002] # TIBETAN MARK BSKA- SHOG GI MGO RGYAN
+0FD1 ; [*03FB.0020.0002] # TIBETAN MARK MNYAM YIG GI MGO RGYAN
+0FD2 ; [*0404.0020.0002] # TIBETAN MARK NYIS TSHEG
+0FD3 ; [*0405.0020.0002] # TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
+0FD4 ; [*0406.0020.0002] # TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5 ; [*0546.0020.0002] # RIGHT-FACING SVASTI SIGN
+0FD6 ; [*0547.0020.0002] # LEFT-FACING SVASTI SIGN
+0FD7 ; [*0548.0020.0002] # RIGHT-FACING SVASTI SIGN WITH DOTS
+0FD8 ; [*0549.0020.0002] # LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9 ; [*0407.0020.0002] # TIBETAN MARK LEADING MCHAN RTAGS
+0FDA ; [*0408.0020.0002] # TIBETAN MARK TRAILING MCHAN RTAGS
+104A ; [*0299.0020.0002] # MYANMAR SIGN LITTLE SECTION
+104B ; [*029A.0020.0002] # MYANMAR SIGN SECTION
+104C ; [*040E.0020.0002] # MYANMAR SYMBOL LOCATIVE
+104D ; [*040F.0020.0002] # MYANMAR SYMBOL COMPLETED
+104E ; [*0410.0020.0002] # MYANMAR SYMBOL AFOREMENTIONED
+104F ; [*0411.0020.0002] # MYANMAR SYMBOL GENITIVE
+109E ; [*054B.0020.0002] # MYANMAR SYMBOL SHAN ONE
+109F ; [*054C.0020.0002] # MYANMAR SYMBOL SHAN EXCLAMATION
+10FB ; [*02C6.0020.0002] # GEORGIAN PARAGRAPH SEPARATOR
+1360 ; [*02C7.0020.0002] # ETHIOPIC SECTION MARK
+1361 ; [*0251.0020.0002] # ETHIOPIC WORDSPACE
+1362 ; [*027C.0020.0002] # ETHIOPIC FULL STOP
+1363 ; [*0252.0020.0002] # ETHIOPIC COMMA
+1364 ; [*0253.0020.0002] # ETHIOPIC SEMICOLON
+1365 ; [*0254.0020.0002] # ETHIOPIC COLON
+1366 ; [*0255.0020.0002] # ETHIOPIC PREFACE COLON
+1367 ; [*026C.0020.0002] # ETHIOPIC QUESTION MARK
+1368 ; [*02C8.0020.0002] # ETHIOPIC PARAGRAPH SEPARATOR
+1372 ; [*1ABB.0020.0002] # ETHIOPIC NUMBER TEN
+1373 ; [*1ABC.0020.0002] # ETHIOPIC NUMBER TWENTY
+1374 ; [*1ABD.0020.0002] # ETHIOPIC NUMBER THIRTY
+1375 ; [*1ABE.0020.0002] # ETHIOPIC NUMBER FORTY
+1376 ; [*1ABF.0020.0002] # ETHIOPIC NUMBER FIFTY
+1377 ; [*1AC0.0020.0002] # ETHIOPIC NUMBER SIXTY
+1378 ; [*1AC1.0020.0002] # ETHIOPIC NUMBER SEVENTY
+1379 ; [*1AC2.0020.0002] # ETHIOPIC NUMBER EIGHTY
+137A ; [*1AC3.0020.0002] # ETHIOPIC NUMBER NINETY
+137B ; [*1AC4.0020.0002] # ETHIOPIC NUMBER HUNDRED
+137C ; [*1AC5.0020.0002] # ETHIOPIC NUMBER TEN THOUSAND
+1390 ; [*04C6.0020.0002] # ETHIOPIC TONAL MARK YIZET
+1391 ; [*04C7.0020.0002] # ETHIOPIC TONAL MARK DERET
+1392 ; [*04C8.0020.0002] # ETHIOPIC TONAL MARK RIKRIK
+1393 ; [*04C9.0020.0002] # ETHIOPIC TONAL MARK SHORT RIKRIK
+1394 ; [*04CA.0020.0002] # ETHIOPIC TONAL MARK DIFAT
+1395 ; [*04CB.0020.0002] # ETHIOPIC TONAL MARK KENAT
+1396 ; [*04CC.0020.0002] # ETHIOPIC TONAL MARK CHIRET
+1397 ; [*04CD.0020.0002] # ETHIOPIC TONAL MARK HIDET
+1398 ; [*04CE.0020.0002] # ETHIOPIC TONAL MARK DERET-HIDET
+1399 ; [*04CF.0020.0002] # ETHIOPIC TONAL MARK KURT
1400 ; [*020F.0020.0002] # CANADIAN SYLLABICS HYPHEN
-166D ; [*0400.0020.0002] # CANADIAN SYLLABICS CHI SIGN
-166E ; [*027C.0020.0002] # CANADIAN SYLLABICS FULL STOP
+166D ; [*041E.0020.0002] # CANADIAN SYLLABICS CHI SIGN
+166E ; [*027F.0020.0002] # CANADIAN SYLLABICS FULL STOP
1680 ; [*0209.0020.0004] # OGHAM SPACE MARK
-169B ; [*0314.0020.0002] # OGHAM FEATHER MARK
-169C ; [*0315.0020.0002] # OGHAM REVERSED FEATHER MARK
-16EB ; [*025B.0020.0002] # RUNIC SINGLE PUNCTUATION
-16EC ; [*025C.0020.0002] # RUNIC MULTIPLE PUNCTUATION
-16ED ; [*025D.0020.0002] # RUNIC CROSS PUNCTUATION
-1735 ; [*0293.0020.0002] # PHILIPPINE SINGLE PUNCTUATION
-1736 ; [*0294.0020.0002] # PHILIPPINE DOUBLE PUNCTUATION
+169B ; [*0321.0020.0002] # OGHAM FEATHER MARK
+169C ; [*0322.0020.0002] # OGHAM REVERSED FEATHER MARK
+16EB ; [*025C.0020.0002] # RUNIC SINGLE PUNCTUATION
+16EC ; [*025D.0020.0002] # RUNIC MULTIPLE PUNCTUATION
+16ED ; [*025E.0020.0002] # RUNIC CROSS PUNCTUATION
+1735 ; [*0296.0020.0002] # PHILIPPINE SINGLE PUNCTUATION
+1736 ; [*0297.0020.0002] # PHILIPPINE DOUBLE PUNCTUATION
17B4 ; [.0000.0000.0000] # KHMER VOWEL INHERENT AQ
17B5 ; [.0000.0000.0000] # KHMER VOWEL INHERENT AA
17D3 ; [.0000.0000.0000] # KHMER SIGN BATHAMASAT
-17D4 ; [*0298.0020.0002] # KHMER SIGN KHAN
-17D5 ; [*0299.0020.0002] # KHMER SIGN BARIYOOSAN
-17D6 ; [*0258.0020.0002] # KHMER SIGN CAMNUC PII KUUH
-17D8 ; [*03F4.0020.0002] # KHMER SIGN BEYYAL
-17D9 ; [*03F5.0020.0002] # KHMER SIGN PHNAEK MUAN
-17DA ; [*03F6.0020.0002] # KHMER SIGN KOOMUUT
-1800 ; [*03CB.0020.0002] # MONGOLIAN BIRGA
-1801 ; [*0275.0020.0002] # MONGOLIAN ELLIPSIS
-1802 ; [*022B.0020.0002] # MONGOLIAN COMMA
-1803 ; [*027A.0020.0002] # MONGOLIAN FULL STOP
-1804 ; [*0255.0020.0002] # MONGOLIAN COLON
-1805 ; [*0256.0020.0002] # MONGOLIAN FOUR DOTS
+17D4 ; [*029B.0020.0002] # KHMER SIGN KHAN
+17D5 ; [*029C.0020.0002] # KHMER SIGN BARIYOOSAN
+17D6 ; [*0259.0020.0002] # KHMER SIGN CAMNUC PII KUUH
+17D8 ; [*0412.0020.0002] # KHMER SIGN BEYYAL
+17D9 ; [*0413.0020.0002] # KHMER SIGN PHNAEK MUAN
+17DA ; [*0414.0020.0002] # KHMER SIGN KOOMUUT
+1800 ; [*03D9.0020.0002] # MONGOLIAN BIRGA
+1801 ; [*0278.0020.0002] # MONGOLIAN ELLIPSIS
+1802 ; [*022C.0020.0002] # MONGOLIAN COMMA
+1803 ; [*027D.0020.0002] # MONGOLIAN FULL STOP
+1804 ; [*0256.0020.0002] # MONGOLIAN COLON
+1805 ; [*0257.0020.0002] # MONGOLIAN FOUR DOTS
1806 ; [*0211.0020.0002] # MONGOLIAN TODO SOFT HYPHEN
1807 ; [*0212.0020.0002] # MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
-1808 ; [*022C.0020.0002] # MONGOLIAN MANCHU COMMA
-1809 ; [*027B.0020.0002] # MONGOLIAN MANCHU FULL STOP
+1808 ; [*022D.0020.0002] # MONGOLIAN MANCHU COMMA
+1809 ; [*027E.0020.0002] # MONGOLIAN MANCHU FULL STOP
180A ; [.0000.0000.0000] # MONGOLIAN NIRUGU
-1940 ; [*050D.0020.0002] # LIMBU SIGN LOO
-1944 ; [*0263.0020.0002] # LIMBU EXCLAMATION MARK
-1945 ; [*026B.0020.0002] # LIMBU QUESTION MARK
-19E0 ; [*0513.0020.0002] # KHMER SYMBOL PATHAMASAT
-19E1 ; [*0514.0020.0002] # KHMER SYMBOL MUOY KOET
-19E2 ; [*0515.0020.0002] # KHMER SYMBOL PII KOET
-19E3 ; [*0516.0020.0002] # KHMER SYMBOL BEI KOET
-19E4 ; [*0517.0020.0002] # KHMER SYMBOL BUON KOET
-19E5 ; [*0518.0020.0002] # KHMER SYMBOL PRAM KOET
-19E6 ; [*0519.0020.0002] # KHMER SYMBOL PRAM-MUOY KOET
-19E7 ; [*051A.0020.0002] # KHMER SYMBOL PRAM-PII KOET
-19E8 ; [*051B.0020.0002] # KHMER SYMBOL PRAM-BEI KOET
-19E9 ; [*051C.0020.0002] # KHMER SYMBOL PRAM-BUON KOET
-19EA ; [*051D.0020.0002] # KHMER SYMBOL DAP KOET
-19EB ; [*051E.0020.0002] # KHMER SYMBOL DAP-MUOY KOET
-19EC ; [*051F.0020.0002] # KHMER SYMBOL DAP-PII KOET
-19ED ; [*0520.0020.0002] # KHMER SYMBOL DAP-BEI KOET
-19EE ; [*0521.0020.0002] # KHMER SYMBOL DAP-BUON KOET
-19EF ; [*0522.0020.0002] # KHMER SYMBOL DAP-PRAM KOET
-19F0 ; [*0523.0020.0002] # KHMER SYMBOL TUTEYASAT
-19F1 ; [*0524.0020.0002] # KHMER SYMBOL MUOY ROC
-19F2 ; [*0525.0020.0002] # KHMER SYMBOL PII ROC
-19F3 ; [*0526.0020.0002] # KHMER SYMBOL BEI ROC
-19F4 ; [*0527.0020.0002] # KHMER SYMBOL BUON ROC
-19F5 ; [*0528.0020.0002] # KHMER SYMBOL PRAM ROC
-19F6 ; [*0529.0020.0002] # KHMER SYMBOL PRAM-MUOY ROC
-19F7 ; [*052A.0020.0002] # KHMER SYMBOL PRAM-PII ROC
-19F8 ; [*052B.0020.0002] # KHMER SYMBOL PRAM-BEI ROC
-19F9 ; [*052C.0020.0002] # KHMER SYMBOL PRAM-BUON ROC
-19FA ; [*052D.0020.0002] # KHMER SYMBOL DAP ROC
-19FB ; [*052E.0020.0002] # KHMER SYMBOL DAP-MUOY ROC
-19FC ; [*052F.0020.0002] # KHMER SYMBOL DAP-PII ROC
-19FD ; [*0530.0020.0002] # KHMER SYMBOL DAP-BEI ROC
-19FE ; [*0531.0020.0002] # KHMER SYMBOL DAP-BUON ROC
-19FF ; [*0532.0020.0002] # KHMER SYMBOL DAP-PRAM ROC
-1A1E ; [*02C0.0020.0002] # BUGINESE PALLAWA
-1A1F ; [*02C1.0020.0002] # BUGINESE END OF SECTION
+1940 ; [*054A.0020.0002] # LIMBU SIGN LOO
+1944 ; [*0264.0020.0002] # LIMBU EXCLAMATION MARK
+1945 ; [*026D.0020.0002] # LIMBU QUESTION MARK
+19E0 ; [*0551.0020.0002] # KHMER SYMBOL PATHAMASAT
+19E1 ; [*0552.0020.0002] # KHMER SYMBOL MUOY KOET
+19E2 ; [*0553.0020.0002] # KHMER SYMBOL PII KOET
+19E3 ; [*0554.0020.0002] # KHMER SYMBOL BEI KOET
+19E4 ; [*0555.0020.0002] # KHMER SYMBOL BUON KOET
+19E5 ; [*0556.0020.0002] # KHMER SYMBOL PRAM KOET
+19E6 ; [*0557.0020.0002] # KHMER SYMBOL PRAM-MUOY KOET
+19E7 ; [*0558.0020.0002] # KHMER SYMBOL PRAM-PII KOET
+19E8 ; [*0559.0020.0002] # KHMER SYMBOL PRAM-BEI KOET
+19E9 ; [*055A.0020.0002] # KHMER SYMBOL PRAM-BUON KOET
+19EA ; [*055B.0020.0002] # KHMER SYMBOL DAP KOET
+19EB ; [*055C.0020.0002] # KHMER SYMBOL DAP-MUOY KOET
+19EC ; [*055D.0020.0002] # KHMER SYMBOL DAP-PII KOET
+19ED ; [*055E.0020.0002] # KHMER SYMBOL DAP-BEI KOET
+19EE ; [*055F.0020.0002] # KHMER SYMBOL DAP-BUON KOET
+19EF ; [*0560.0020.0002] # KHMER SYMBOL DAP-PRAM KOET
+19F0 ; [*0561.0020.0002] # KHMER SYMBOL TUTEYASAT
+19F1 ; [*0562.0020.0002] # KHMER SYMBOL MUOY ROC
+19F2 ; [*0563.0020.0002] # KHMER SYMBOL PII ROC
+19F3 ; [*0564.0020.0002] # KHMER SYMBOL BEI ROC
+19F4 ; [*0565.0020.0002] # KHMER SYMBOL BUON ROC
+19F5 ; [*0566.0020.0002] # KHMER SYMBOL PRAM ROC
+19F6 ; [*0567.0020.0002] # KHMER SYMBOL PRAM-MUOY ROC
+19F7 ; [*0568.0020.0002] # KHMER SYMBOL PRAM-PII ROC
+19F8 ; [*0569.0020.0002] # KHMER SYMBOL PRAM-BEI ROC
+19F9 ; [*056A.0020.0002] # KHMER SYMBOL PRAM-BUON ROC
+19FA ; [*056B.0020.0002] # KHMER SYMBOL DAP ROC
+19FB ; [*056C.0020.0002] # KHMER SYMBOL DAP-MUOY ROC
+19FC ; [*056D.0020.0002] # KHMER SYMBOL DAP-PII ROC
+19FD ; [*056E.0020.0002] # KHMER SYMBOL DAP-BEI ROC
+19FE ; [*056F.0020.0002] # KHMER SYMBOL DAP-BUON ROC
+19FF ; [*0570.0020.0002] # KHMER SYMBOL DAP-PRAM ROC
+1A1E ; [*02C9.0020.0002] # BUGINESE PALLAWA
+1A1F ; [*02CA.0020.0002] # BUGINESE END OF SECTION
1A7F ; [.0000.0000.0000] # TAI THAM COMBINING CRYPTOGRAMMIC DOT
-1AA0 ; [*03F7.0020.0002] # TAI THAM SIGN WIANG
-1AA1 ; [*03F8.0020.0002] # TAI THAM SIGN WIANGWAAK
-1AA2 ; [*03F9.0020.0002] # TAI THAM SIGN SAWAN
-1AA3 ; [*03FA.0020.0002] # TAI THAM SIGN KEOW
-1AA4 ; [*03FB.0020.0002] # TAI THAM SIGN HOY
-1AA5 ; [*03FC.0020.0002] # TAI THAM SIGN DOKMAI
-1AA6 ; [*03FD.0020.0002] # TAI THAM SIGN REVERSED ROTATED RANA
-1AA8 ; [*029A.0020.0002] # TAI THAM SIGN KAAN
-1AA9 ; [*029B.0020.0002] # TAI THAM SIGN KAANKUU
-1AAA ; [*029C.0020.0002] # TAI THAM SIGN SATKAAN
-1AAB ; [*029D.0020.0002] # TAI THAM SIGN SATKAANKUU
-1AAC ; [*03FE.0020.0002] # TAI THAM SIGN HANG
-1AAD ; [*03FF.0020.0002] # TAI THAM SIGN CAANG
-1B5A ; [*02C2.0020.0002] # BALINESE PANTI
-1B5B ; [*02C3.0020.0002] # BALINESE PAMADA
-1B5C ; [*027D.0020.0002] # BALINESE WINDU
-1B5D ; [*0259.0020.0002] # BALINESE CARIK PAMUNGKAH
-1B5E ; [*029E.0020.0002] # BALINESE CARIK SIKI
-1B5F ; [*029F.0020.0002] # BALINESE CARIK PAREREN
+1AA0 ; [*0415.0020.0002] # TAI THAM SIGN WIANG
+1AA1 ; [*0416.0020.0002] # TAI THAM SIGN WIANGWAAK
+1AA2 ; [*0417.0020.0002] # TAI THAM SIGN SAWAN
+1AA3 ; [*0418.0020.0002] # TAI THAM SIGN KEOW
+1AA4 ; [*0419.0020.0002] # TAI THAM SIGN HOY
+1AA5 ; [*041A.0020.0002] # TAI THAM SIGN DOKMAI
+1AA6 ; [*041B.0020.0002] # TAI THAM SIGN REVERSED ROTATED RANA
+1AA8 ; [*029D.0020.0002] # TAI THAM SIGN KAAN
+1AA9 ; [*029E.0020.0002] # TAI THAM SIGN KAANKUU
+1AAA ; [*029F.0020.0002] # TAI THAM SIGN SATKAAN
+1AAB ; [*02A0.0020.0002] # TAI THAM SIGN SATKAANKUU
+1AAC ; [*041C.0020.0002] # TAI THAM SIGN HANG
+1AAD ; [*041D.0020.0002] # TAI THAM SIGN CAANG
+1B5A ; [*02CB.0020.0002] # BALINESE PANTI
+1B5B ; [*02CC.0020.0002] # BALINESE PAMADA
+1B5C ; [*0280.0020.0002] # BALINESE WINDU
+1B5D ; [*025A.0020.0002] # BALINESE CARIK PAMUNGKAH
+1B5E ; [*02A1.0020.0002] # BALINESE CARIK SIKI
+1B5F ; [*02A2.0020.0002] # BALINESE CARIK PAREREN
1B60 ; [*0210.0020.0002] # BALINESE PAMENENG
-1B61 ; [*0533.0020.0002] # BALINESE MUSICAL SYMBOL DONG
-1B62 ; [*0534.0020.0002] # BALINESE MUSICAL SYMBOL DENG
-1B63 ; [*0535.0020.0002] # BALINESE MUSICAL SYMBOL DUNG
-1B64 ; [*0536.0020.0002] # BALINESE MUSICAL SYMBOL DANG
-1B65 ; [*0537.0020.0002] # BALINESE MUSICAL SYMBOL DANG SURANG
-1B66 ; [*0538.0020.0002] # BALINESE MUSICAL SYMBOL DING
-1B67 ; [*0539.0020.0002] # BALINESE MUSICAL SYMBOL DAENG
-1B68 ; [*053A.0020.0002] # BALINESE MUSICAL SYMBOL DEUNG
-1B69 ; [*053B.0020.0002] # BALINESE MUSICAL SYMBOL DAING
-1B6A ; [*053C.0020.0002] # BALINESE MUSICAL SYMBOL DANG GEDE
+1B61 ; [*0571.0020.0002] # BALINESE MUSICAL SYMBOL DONG
+1B62 ; [*0572.0020.0002] # BALINESE MUSICAL SYMBOL DENG
+1B63 ; [*0573.0020.0002] # BALINESE MUSICAL SYMBOL DUNG
+1B64 ; [*0574.0020.0002] # BALINESE MUSICAL SYMBOL DANG
+1B65 ; [*0575.0020.0002] # BALINESE MUSICAL SYMBOL DANG SURANG
+1B66 ; [*0576.0020.0002] # BALINESE MUSICAL SYMBOL DING
+1B67 ; [*0577.0020.0002] # BALINESE MUSICAL SYMBOL DAENG
+1B68 ; [*0578.0020.0002] # BALINESE MUSICAL SYMBOL DEUNG
+1B69 ; [*0579.0020.0002] # BALINESE MUSICAL SYMBOL DAING
+1B6A ; [*057A.0020.0002] # BALINESE MUSICAL SYMBOL DANG GEDE
1B6B ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING TEGEH
1B6C ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING ENDEP
1B6D ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING KEMPUL
@@ -1018,34 +1045,34 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
1B71 ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN
1B72 ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING BENDE
1B73 ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING GONG
-1B74 ; [*053D.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG
-1B75 ; [*053E.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG
-1B76 ; [*053F.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK
-1B77 ; [*0540.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK
-1B78 ; [*0541.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG
-1B79 ; [*0542.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG
-1B7A ; [*0543.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK
-1B7B ; [*0544.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
-1B7C ; [*0545.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1BFC ; [*040C.0020.0002] # BATAK SYMBOL BINDU NA METEK
-1BFD ; [*040D.0020.0002] # BATAK SYMBOL BINDU PINARBORAS
-1BFE ; [*040E.0020.0002] # BATAK SYMBOL BINDU JUDUL
-1BFF ; [*040F.0020.0002] # BATAK SYMBOL BINDU PANGOLAT
-1C3B ; [*028F.0020.0002] # LEPCHA PUNCTUATION TA-ROL
-1C3C ; [*0290.0020.0002] # LEPCHA PUNCTUATION NYET THYOOM TA-ROL
-1C3D ; [*03ED.0020.0002] # LEPCHA PUNCTUATION CER-WA
-1C3E ; [*03EE.0020.0002] # LEPCHA PUNCTUATION TSHOOK CER-WA
-1C3F ; [*03EF.0020.0002] # LEPCHA PUNCTUATION TSHOOK
-1C7E ; [*02B9.0020.0002] # OL CHIKI PUNCTUATION MUCAAD
-1C7F ; [*02BA.0020.0002] # OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1CC0 ; [*0401.0020.0002] # SUNDANESE PUNCTUATION BINDU SURYA
-1CC1 ; [*0402.0020.0002] # SUNDANESE PUNCTUATION BINDU PANGLONG
-1CC2 ; [*0403.0020.0002] # SUNDANESE PUNCTUATION BINDU PURNAMA
-1CC3 ; [*0404.0020.0002] # SUNDANESE PUNCTUATION BINDU CAKRA
-1CC4 ; [*0405.0020.0002] # SUNDANESE PUNCTUATION BINDU LEU SATANGA
-1CC5 ; [*0406.0020.0002] # SUNDANESE PUNCTUATION BINDU KA SATANGA
-1CC6 ; [*0407.0020.0002] # SUNDANESE PUNCTUATION BINDU DA SATANGA
-1CC7 ; [*0408.0020.0002] # SUNDANESE PUNCTUATION BINDU BA SATANGA
+1B74 ; [*057B.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG
+1B75 ; [*057C.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG
+1B76 ; [*057D.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK
+1B77 ; [*057E.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK
+1B78 ; [*057F.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG
+1B79 ; [*0580.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG
+1B7A ; [*0581.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK
+1B7B ; [*0582.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
+1B7C ; [*0583.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1BFC ; [*042A.0020.0002] # BATAK SYMBOL BINDU NA METEK
+1BFD ; [*042B.0020.0002] # BATAK SYMBOL BINDU PINARBORAS
+1BFE ; [*042C.0020.0002] # BATAK SYMBOL BINDU JUDUL
+1BFF ; [*042D.0020.0002] # BATAK SYMBOL BINDU PANGOLAT
+1C3B ; [*0292.0020.0002] # LEPCHA PUNCTUATION TA-ROL
+1C3C ; [*0293.0020.0002] # LEPCHA PUNCTUATION NYET THYOOM TA-ROL
+1C3D ; [*040B.0020.0002] # LEPCHA PUNCTUATION CER-WA
+1C3E ; [*040C.0020.0002] # LEPCHA PUNCTUATION TSHOOK CER-WA
+1C3F ; [*040D.0020.0002] # LEPCHA PUNCTUATION TSHOOK
+1C7E ; [*02C2.0020.0002] # OL CHIKI PUNCTUATION MUCAAD
+1C7F ; [*02C3.0020.0002] # OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1CC0 ; [*041F.0020.0002] # SUNDANESE PUNCTUATION BINDU SURYA
+1CC1 ; [*0420.0020.0002] # SUNDANESE PUNCTUATION BINDU PANGLONG
+1CC2 ; [*0421.0020.0002] # SUNDANESE PUNCTUATION BINDU PURNAMA
+1CC3 ; [*0422.0020.0002] # SUNDANESE PUNCTUATION BINDU CAKRA
+1CC4 ; [*0423.0020.0002] # SUNDANESE PUNCTUATION BINDU LEU SATANGA
+1CC5 ; [*0424.0020.0002] # SUNDANESE PUNCTUATION BINDU KA SATANGA
+1CC6 ; [*0425.0020.0002] # SUNDANESE PUNCTUATION BINDU DA SATANGA
+1CC7 ; [*0426.0020.0002] # SUNDANESE PUNCTUATION BINDU BA SATANGA
1CD0 ; [.0000.0000.0000] # VEDIC TONE KARSHANA
1CD1 ; [.0000.0000.0000] # VEDIC TONE SHARA
1CD2 ; [.0000.0000.0000] # VEDIC TONE PRENKHA
@@ -1074,21 +1101,21 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
1CF4 ; [.0000.0000.0000] # VEDIC TONE CANDRA ABOVE
1CF8 ; [.0000.0000.0000] # VEDIC TONE RING ABOVE
1CF9 ; [.0000.0000.0000] # VEDIC TONE DOUBLE RING ABOVE
-1FBD ; [*0452.0020.0002] # GREEK KORONIS
-1FBF ; [*0452.0020.0002] # GREEK PSILI
-1FC0 ; [*0454.0020.0002] # GREEK PERISPOMENI
-1FC1 ; [*044D.0020.0002][.0000.002A.0002] # GREEK DIALYTIKA AND PERISPOMENI
-1FCD ; [*0452.0020.0002][.0000.0025.0002] # GREEK PSILI AND VARIA
-1FCE ; [*0452.0020.0002][.0000.0024.0002] # GREEK PSILI AND OXIA
-1FCF ; [*0452.0020.0002][.0000.002A.0002] # GREEK PSILI AND PERISPOMENI
-1FDD ; [*0453.0020.0002][.0000.0025.0002] # GREEK DASIA AND VARIA
-1FDE ; [*0453.0020.0002][.0000.0024.0002] # GREEK DASIA AND OXIA
-1FDF ; [*0453.0020.0002][.0000.002A.0002] # GREEK DASIA AND PERISPOMENI
-1FED ; [*044D.0020.0002][.0000.0025.0002] # GREEK DIALYTIKA AND VARIA
-1FEE ; [*044D.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA AND OXIA
-1FEF ; [*0446.0020.0002] # GREEK VARIA
-1FFD ; [*0447.0020.0002] # GREEK OXIA
-1FFE ; [*0453.0020.0002] # GREEK DASIA
+1FBD ; [*048E.0020.0002] # GREEK KORONIS
+1FBF ; [*048E.0020.0002] # GREEK PSILI
+1FC0 ; [*0490.0020.0002] # GREEK PERISPOMENI
+1FC1 ; [*0489.0020.0002][.0000.002A.0002] # GREEK DIALYTIKA AND PERISPOMENI
+1FCD ; [*048E.0020.0002][.0000.0025.0002] # GREEK PSILI AND VARIA
+1FCE ; [*048E.0020.0002][.0000.0024.0002] # GREEK PSILI AND OXIA
+1FCF ; [*048E.0020.0002][.0000.002A.0002] # GREEK PSILI AND PERISPOMENI
+1FDD ; [*048F.0020.0002][.0000.0025.0002] # GREEK DASIA AND VARIA
+1FDE ; [*048F.0020.0002][.0000.0024.0002] # GREEK DASIA AND OXIA
+1FDF ; [*048F.0020.0002][.0000.002A.0002] # GREEK DASIA AND PERISPOMENI
+1FED ; [*0489.0020.0002][.0000.0025.0002] # GREEK DIALYTIKA AND VARIA
+1FEE ; [*0489.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA AND OXIA
+1FEF ; [*0482.0020.0002] # GREEK VARIA
+1FFD ; [*0483.0020.0002] # GREEK OXIA
+1FFE ; [*048F.0020.0002] # GREEK DASIA
2000 ; [*0209.0020.0004] # EN QUAD
2001 ; [*0209.0020.0004] # EM QUAD
2002 ; [*0209.0020.0004] # EN SPACE
@@ -1106,2857 +1133,2869 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
2013 ; [*0215.0020.0002] # EN DASH
2014 ; [*0216.0020.0002] # EM DASH
2015 ; [*0217.0020.0002] # HORIZONTAL BAR
-2016 ; [*0376.0020.0002] # DOUBLE VERTICAL LINE
+2016 ; [*0383.0020.0002] # DOUBLE VERTICAL LINE
2017 ; [*020C.0020.0002] # DOUBLE LOW LINE
-2018 ; [*02F9.0020.0002] # LEFT SINGLE QUOTATION MARK
-2019 ; [*02FA.0020.0002] # RIGHT SINGLE QUOTATION MARK
-201A ; [*02FB.0020.0002] # SINGLE LOW-9 QUOTATION MARK
-201B ; [*02FC.0020.0002] # SINGLE HIGH-REVERSED-9 QUOTATION MARK
-201C ; [*0300.0020.0002] # LEFT DOUBLE QUOTATION MARK
-201D ; [*0301.0020.0002] # RIGHT DOUBLE QUOTATION MARK
-201E ; [*0302.0020.0002] # DOUBLE LOW-9 QUOTATION MARK
-201F ; [*0303.0020.0002] # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020 ; [*0392.0020.0002] # DAGGER
-2021 ; [*0393.0020.0002] # DOUBLE DAGGER
-2022 ; [*0397.0020.0002] # BULLET
-2023 ; [*0398.0020.0002] # TRIANGULAR BULLET
-2024 ; [*0274.0020.0004] # ONE DOT LEADER
-2025 ; [*0274.0020.0004][*0274.0020.0004] # TWO DOT LEADER
-2026 ; [*0274.0020.0004][*0274.0020.0004][*0274.0020.0004] # HORIZONTAL ELLIPSIS
-2027 ; [*0399.0020.0002] # HYPHENATION POINT
+2018 ; [*0306.0020.0002] # LEFT SINGLE QUOTATION MARK
+2019 ; [*0307.0020.0002] # RIGHT SINGLE QUOTATION MARK
+201A ; [*0308.0020.0002] # SINGLE LOW-9 QUOTATION MARK
+201B ; [*0309.0020.0002] # SINGLE HIGH-REVERSED-9 QUOTATION MARK
+201C ; [*030D.0020.0002] # LEFT DOUBLE QUOTATION MARK
+201D ; [*030E.0020.0002] # RIGHT DOUBLE QUOTATION MARK
+201E ; [*030F.0020.0002] # DOUBLE LOW-9 QUOTATION MARK
+201F ; [*0310.0020.0002] # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020 ; [*039F.0020.0002] # DAGGER
+2021 ; [*03A0.0020.0002] # DOUBLE DAGGER
+2022 ; [*03A4.0020.0002] # BULLET
+2023 ; [*03A5.0020.0002] # TRIANGULAR BULLET
+2024 ; [*0277.0020.0004] # ONE DOT LEADER
+2025 ; [*0277.0020.0004][*0277.0020.0004] # TWO DOT LEADER
+2026 ; [*0277.0020.0004][*0277.0020.0004][*0277.0020.0004] # HORIZONTAL ELLIPSIS
+2027 ; [*03A6.0020.0002] # HYPHENATION POINT
2028 ; [*0207.0020.0002] # LINE SEPARATOR
2029 ; [*0208.0020.0002] # PARAGRAPH SEPARATOR
202F ; [*0209.0020.001B] # NARROW NO-BREAK SPACE
-2030 ; [*038E.0020.0002] # PER MILLE SIGN
-2031 ; [*0390.0020.0002] # PER TEN THOUSAND SIGN
-2032 ; [*039D.0020.0002] # PRIME
-2033 ; [*039D.0020.0004][*039D.0020.0004] # DOUBLE PRIME
-2034 ; [*039D.0020.0004][*039D.0020.0004][*039D.0020.0004] # TRIPLE PRIME
-2035 ; [*039E.0020.0002] # REVERSED PRIME
-2036 ; [*039E.0020.0004][*039E.0020.0004] # REVERSED DOUBLE PRIME
-2037 ; [*039E.0020.0004][*039E.0020.0004][*039E.0020.0004] # REVERSED TRIPLE PRIME
-2038 ; [*03A1.0020.0002] # CARET
-2039 ; [*02FD.0020.0002] # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A ; [*02FE.0020.0002] # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B ; [*03A2.0020.0002] # REFERENCE MARK
-203C ; [*025F.0020.0004][*025F.0020.0004] # DOUBLE EXCLAMATION MARK
-203D ; [*0272.0020.0002] # INTERROBANG
+2030 ; [*039B.0020.0002] # PER MILLE SIGN
+2031 ; [*039D.0020.0002] # PER TEN THOUSAND SIGN
+2032 ; [*03AA.0020.0002] # PRIME
+2033 ; [*03AA.0020.0004][*03AA.0020.0004] # DOUBLE PRIME
+2034 ; [*03AA.0020.0004][*03AA.0020.0004][*03AA.0020.0004] # TRIPLE PRIME
+2035 ; [*03AB.0020.0002] # REVERSED PRIME
+2036 ; [*03AB.0020.0004][*03AB.0020.0004] # REVERSED DOUBLE PRIME
+2037 ; [*03AB.0020.0004][*03AB.0020.0004][*03AB.0020.0004] # REVERSED TRIPLE PRIME
+2038 ; [*03AE.0020.0002] # CARET
+2039 ; [*030A.0020.0002] # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A ; [*030B.0020.0002] # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B ; [*03AF.0020.0002] # REFERENCE MARK
+203C ; [*0260.0020.0004][*0260.0020.0004] # DOUBLE EXCLAMATION MARK
+203D ; [*0275.0020.0002] # INTERROBANG
203E ; [*020A.0020.0002] # OVERLINE
-203F ; [*03A3.0020.0002] # UNDERTIE
-2040 ; [*03A5.0020.0002] # CHARACTER TIE
-2041 ; [*03A7.0020.0002] # CARET INSERTION POINT
-2042 ; [*03A8.0020.0002] # ASTERISM
-2043 ; [*039A.0020.0002] # HYPHEN BULLET
-2044 ; [*05E6.0020.0002] # FRACTION SLASH
-2045 ; [*0316.0020.0002] # LEFT SQUARE BRACKET WITH QUILL
-2046 ; [*0317.0020.0002] # RIGHT SQUARE BRACKET WITH QUILL
-2047 ; [*0264.0020.0004][*0264.0020.0004] # DOUBLE QUESTION MARK
-2048 ; [*0264.0020.0004][*025F.0020.0004] # QUESTION EXCLAMATION MARK
-2049 ; [*025F.0020.0004][*0264.0020.0004] # EXCLAMATION QUESTION MARK
-204A ; [*038A.0020.0002] # TIRONIAN SIGN ET
-204B ; [*037F.0020.0002] # REVERSED PILCROW SIGN
-204C ; [*039B.0020.0002] # BLACK LEFTWARDS BULLET
-204D ; [*039C.0020.0002] # BLACK RIGHTWARDS BULLET
-204E ; [*0383.0020.0002] # LOW ASTERISK
-204F ; [*0235.0020.0002] # REVERSED SEMICOLON
-2050 ; [*03A6.0020.0002] # CLOSE UP
-2051 ; [*0384.0020.0002] # TWO ASTERISKS ALIGNED VERTICALLY
-2052 ; [*05E2.0020.0002] # COMMERCIAL MINUS SIGN
+203F ; [*03B0.0020.0002] # UNDERTIE
+2040 ; [*03B2.0020.0002] # CHARACTER TIE
+2041 ; [*03B4.0020.0002] # CARET INSERTION POINT
+2042 ; [*03B5.0020.0002] # ASTERISM
+2043 ; [*03A7.0020.0002] # HYPHEN BULLET
+2044 ; [*0626.0020.0002] # FRACTION SLASH
+2045 ; [*0323.0020.0002] # LEFT SQUARE BRACKET WITH QUILL
+2046 ; [*0324.0020.0002] # RIGHT SQUARE BRACKET WITH QUILL
+2047 ; [*0266.0020.0004][*0266.0020.0004] # DOUBLE QUESTION MARK
+2048 ; [*0266.0020.0004][*0260.0020.0004] # QUESTION EXCLAMATION MARK
+2049 ; [*0260.0020.0004][*0266.0020.0004] # EXCLAMATION QUESTION MARK
+204A ; [*0397.0020.0002] # TIRONIAN SIGN ET
+204B ; [*038C.0020.0002] # REVERSED PILCROW SIGN
+204C ; [*03A8.0020.0002] # BLACK LEFTWARDS BULLET
+204D ; [*03A9.0020.0002] # BLACK RIGHTWARDS BULLET
+204E ; [*0390.0020.0002] # LOW ASTERISK
+204F ; [*0236.0020.0002] # REVERSED SEMICOLON
+2050 ; [*03B3.0020.0002] # CLOSE UP
+2051 ; [*0391.0020.0002] # TWO ASTERISKS ALIGNED VERTICALLY
+2052 ; [*0622.0020.0002] # COMMERCIAL MINUS SIGN
2053 ; [*021A.0020.0002] # SWUNG DASH
-2054 ; [*03A4.0020.0002] # INVERTED UNDERTIE
-2055 ; [*02DB.0020.0002] # FLOWER PUNCTUATION MARK
-2056 ; [*02DC.0020.0002] # THREE DOT PUNCTUATION
-2057 ; [*039D.0020.0004][*039D.0020.0004][*039D.0020.0004][*039D.0020.0004] # QUADRUPLE PRIME
-2058 ; [*02DD.0020.0002] # FOUR DOT PUNCTUATION
-2059 ; [*02DE.0020.0002] # FIVE DOT PUNCTUATION
-205A ; [*02DF.0020.0002] # TWO DOT PUNCTUATION
-205B ; [*02E0.0020.0002] # FOUR DOT MARK
-205C ; [*02E1.0020.0002] # DOTTED CROSS
-205D ; [*02E2.0020.0002] # TRICOLON
-205E ; [*02E3.0020.0002] # VERTICAL FOUR DOTS
+2054 ; [*03B1.0020.0002] # INVERTED UNDERTIE
+2055 ; [*02E8.0020.0002] # FLOWER PUNCTUATION MARK
+2056 ; [*02E9.0020.0002] # THREE DOT PUNCTUATION
+2057 ; [*03AA.0020.0004][*03AA.0020.0004][*03AA.0020.0004][*03AA.0020.0004] # QUADRUPLE PRIME
+2058 ; [*02EA.0020.0002] # FOUR DOT PUNCTUATION
+2059 ; [*02EB.0020.0002] # FIVE DOT PUNCTUATION
+205A ; [*02EC.0020.0002] # TWO DOT PUNCTUATION
+205B ; [*02ED.0020.0002] # FOUR DOT MARK
+205C ; [*02EE.0020.0002] # DOTTED CROSS
+205D ; [*02EF.0020.0002] # TRICOLON
+205E ; [*02F0.0020.0002] # VERTICAL FOUR DOTS
205F ; [*0209.0020.0004] # MEDIUM MATHEMATICAL SPACE
2061 ; [.0000.0000.0000] # FUNCTION APPLICATION
2062 ; [.0000.0000.0000] # INVISIBLE TIMES
2063 ; [.0000.0000.0000] # INVISIBLE SEPARATOR
2064 ; [.0000.0000.0000] # INVISIBLE PLUS
-207A ; [*05D6.0020.0014] # SUPERSCRIPT PLUS SIGN
-207B ; [*05E1.0020.0014] # SUPERSCRIPT MINUS
-207C ; [*05DB.0020.0014] # SUPERSCRIPT EQUALS SIGN
-207D ; [*030A.0020.0014] # SUPERSCRIPT LEFT PARENTHESIS
-207E ; [*030B.0020.0014] # SUPERSCRIPT RIGHT PARENTHESIS
-208A ; [*05D6.0020.0015] # SUBSCRIPT PLUS SIGN
-208B ; [*05E1.0020.0015] # SUBSCRIPT MINUS
-208C ; [*05DB.0020.0015] # SUBSCRIPT EQUALS SIGN
-208D ; [*030A.0020.0015] # SUBSCRIPT LEFT PARENTHESIS
-208E ; [*030B.0020.0015] # SUBSCRIPT RIGHT PARENTHESIS
-2104 ; [*0548.0020.0002] # CENTRE LINE SYMBOL
-2108 ; [*0549.0020.0002] # SCRUPLE
-2114 ; [*054A.0020.0002] # L B BAR SYMBOL
-2117 ; [*054B.0020.0002] # SOUND RECORDING COPYRIGHT
-2118 ; [*054C.0020.0002] # SCRIPT CAPITAL P
-211E ; [*054D.0020.0002] # PRESCRIPTION TAKE
-211F ; [*054E.0020.0002] # RESPONSE
-2123 ; [*054F.0020.0002] # VERSICLE
-2125 ; [*0550.0020.0002] # OUNCE SIGN
-2127 ; [*0551.0020.0002] # INVERTED OHM SIGN
-2129 ; [*0552.0020.0002] # TURNED GREEK SMALL LETTER IOTA
-212E ; [*0553.0020.0002] # ESTIMATED SYMBOL
-213A ; [*0554.0020.0002] # ROTATED CAPITAL Q
-2140 ; [*05D5.0020.0005] # DOUBLE-STRUCK N-ARY SUMMATION
-2141 ; [*0555.0020.0002] # TURNED SANS-SERIF CAPITAL G
-2142 ; [*0556.0020.0002] # TURNED SANS-SERIF CAPITAL L
-2143 ; [*0557.0020.0002] # REVERSED SANS-SERIF CAPITAL L
-2144 ; [*0558.0020.0002] # TURNED SANS-SERIF CAPITAL Y
-214A ; [*0559.0020.0002] # PROPERTY LINE
-214B ; [*0671.0020.0002] # TURNED AMPERSAND
-214C ; [*055A.0020.0002] # PER SIGN
-214F ; [*055B.0020.0002] # SYMBOL FOR SAMARITAN SOURCE
-2180 ; [*17D7.0020.0002] # ROMAN NUMERAL ONE THOUSAND C D
-2181 ; [*17D8.0020.0002] # ROMAN NUMERAL FIVE THOUSAND
-2182 ; [*17D9.0020.0002] # ROMAN NUMERAL TEN THOUSAND
-2186 ; [*17DA.0020.0002] # ROMAN NUMERAL FIFTY EARLY FORM
-2187 ; [*17DB.0020.0002] # ROMAN NUMERAL FIFTY THOUSAND
-2188 ; [*17DC.0020.0002] # ROMAN NUMERAL ONE HUNDRED THOUSAND
-2190 ; [*055C.0020.0002] # LEFTWARDS ARROW
-2191 ; [*055E.0020.0002] # UPWARDS ARROW
-2192 ; [*055D.0020.0002] # RIGHTWARDS ARROW
-2193 ; [*055F.0020.0002] # DOWNWARDS ARROW
-2194 ; [*0560.0020.0002] # LEFT RIGHT ARROW
-2195 ; [*0561.0020.0002] # UP DOWN ARROW
-2196 ; [*0562.0020.0002] # NORTH WEST ARROW
-2197 ; [*0563.0020.0002] # NORTH EAST ARROW
-2198 ; [*0564.0020.0002] # SOUTH EAST ARROW
-2199 ; [*0565.0020.0002] # SOUTH WEST ARROW
-219A ; [*055C.0020.0002][.0000.002F.0002] # LEFTWARDS ARROW WITH STROKE
-219B ; [*055D.0020.0002][.0000.002F.0002] # RIGHTWARDS ARROW WITH STROKE
-219C ; [*0566.0020.0002] # LEFTWARDS WAVE ARROW
-219D ; [*0567.0020.0002] # RIGHTWARDS WAVE ARROW
-219E ; [*0568.0020.0002] # LEFTWARDS TWO HEADED ARROW
-219F ; [*0569.0020.0002] # UPWARDS TWO HEADED ARROW
-21A0 ; [*056A.0020.0002] # RIGHTWARDS TWO HEADED ARROW
-21A1 ; [*056B.0020.0002] # DOWNWARDS TWO HEADED ARROW
-21A2 ; [*056C.0020.0002] # LEFTWARDS ARROW WITH TAIL
-21A3 ; [*056D.0020.0002] # RIGHTWARDS ARROW WITH TAIL
-21A4 ; [*056E.0020.0002] # LEFTWARDS ARROW FROM BAR
-21A5 ; [*056F.0020.0002] # UPWARDS ARROW FROM BAR
-21A6 ; [*0570.0020.0002] # RIGHTWARDS ARROW FROM BAR
-21A7 ; [*0571.0020.0002] # DOWNWARDS ARROW FROM BAR
-21A8 ; [*0572.0020.0002] # UP DOWN ARROW WITH BASE
-21A9 ; [*0573.0020.0002] # LEFTWARDS ARROW WITH HOOK
-21AA ; [*0574.0020.0002] # RIGHTWARDS ARROW WITH HOOK
-21AB ; [*0575.0020.0002] # LEFTWARDS ARROW WITH LOOP
-21AC ; [*0576.0020.0002] # RIGHTWARDS ARROW WITH LOOP
-21AD ; [*0577.0020.0002] # LEFT RIGHT WAVE ARROW
-21AE ; [*0560.0020.0002][.0000.002F.0002] # LEFT RIGHT ARROW WITH STROKE
-21AF ; [*0578.0020.0002] # DOWNWARDS ZIGZAG ARROW
-21B0 ; [*0579.0020.0002] # UPWARDS ARROW WITH TIP LEFTWARDS
-21B1 ; [*057A.0020.0002] # UPWARDS ARROW WITH TIP RIGHTWARDS
-21B2 ; [*057B.0020.0002] # DOWNWARDS ARROW WITH TIP LEFTWARDS
-21B3 ; [*057C.0020.0002] # DOWNWARDS ARROW WITH TIP RIGHTWARDS
-21B4 ; [*057D.0020.0002] # RIGHTWARDS ARROW WITH CORNER DOWNWARDS
-21B5 ; [*057E.0020.0002] # DOWNWARDS ARROW WITH CORNER LEFTWARDS
-21B6 ; [*057F.0020.0002] # ANTICLOCKWISE TOP SEMICIRCLE ARROW
-21B7 ; [*0580.0020.0002] # CLOCKWISE TOP SEMICIRCLE ARROW
-21B8 ; [*0581.0020.0002] # NORTH WEST ARROW TO LONG BAR
-21B9 ; [*0582.0020.0002] # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
-21BA ; [*0583.0020.0002] # ANTICLOCKWISE OPEN CIRCLE ARROW
-21BB ; [*0584.0020.0002] # CLOCKWISE OPEN CIRCLE ARROW
-21BC ; [*0585.0020.0002] # LEFTWARDS HARPOON WITH BARB UPWARDS
-21BD ; [*0586.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWNWARDS
-21BE ; [*0587.0020.0002] # UPWARDS HARPOON WITH BARB RIGHTWARDS
-21BF ; [*0588.0020.0002] # UPWARDS HARPOON WITH BARB LEFTWARDS
-21C0 ; [*0589.0020.0002] # RIGHTWARDS HARPOON WITH BARB UPWARDS
-21C1 ; [*058A.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-21C2 ; [*058B.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHTWARDS
-21C3 ; [*058C.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFTWARDS
-21C4 ; [*058D.0020.0002] # RIGHTWARDS ARROW OVER LEFTWARDS ARROW
-21C5 ; [*058E.0020.0002] # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
-21C6 ; [*058F.0020.0002] # LEFTWARDS ARROW OVER RIGHTWARDS ARROW
-21C7 ; [*0590.0020.0002] # LEFTWARDS PAIRED ARROWS
-21C8 ; [*0591.0020.0002] # UPWARDS PAIRED ARROWS
-21C9 ; [*0592.0020.0002] # RIGHTWARDS PAIRED ARROWS
-21CA ; [*0593.0020.0002] # DOWNWARDS PAIRED ARROWS
-21CB ; [*0594.0020.0002] # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
-21CC ; [*0595.0020.0002] # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
-21CD ; [*0596.0020.0002][.0000.002F.0002] # LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE ; [*059A.0020.0002][.0000.002F.0002] # LEFT RIGHT DOUBLE ARROW WITH STROKE
-21CF ; [*0598.0020.0002][.0000.002F.0002] # RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0 ; [*0596.0020.0002] # LEFTWARDS DOUBLE ARROW
-21D1 ; [*0597.0020.0002] # UPWARDS DOUBLE ARROW
-21D2 ; [*0598.0020.0002] # RIGHTWARDS DOUBLE ARROW
-21D3 ; [*0599.0020.0002] # DOWNWARDS DOUBLE ARROW
-21D4 ; [*059A.0020.0002] # LEFT RIGHT DOUBLE ARROW
-21D5 ; [*059B.0020.0002] # UP DOWN DOUBLE ARROW
-21D6 ; [*059C.0020.0002] # NORTH WEST DOUBLE ARROW
-21D7 ; [*059D.0020.0002] # NORTH EAST DOUBLE ARROW
-21D8 ; [*059E.0020.0002] # SOUTH EAST DOUBLE ARROW
-21D9 ; [*059F.0020.0002] # SOUTH WEST DOUBLE ARROW
-21DA ; [*05A0.0020.0002] # LEFTWARDS TRIPLE ARROW
-21DB ; [*05A1.0020.0002] # RIGHTWARDS TRIPLE ARROW
-21DC ; [*05A2.0020.0002] # LEFTWARDS SQUIGGLE ARROW
-21DD ; [*05A3.0020.0002] # RIGHTWARDS SQUIGGLE ARROW
-21DE ; [*05A4.0020.0002] # UPWARDS ARROW WITH DOUBLE STROKE
-21DF ; [*05A5.0020.0002] # DOWNWARDS ARROW WITH DOUBLE STROKE
-21E0 ; [*05A6.0020.0002] # LEFTWARDS DASHED ARROW
-21E1 ; [*05A7.0020.0002] # UPWARDS DASHED ARROW
-21E2 ; [*05A8.0020.0002] # RIGHTWARDS DASHED ARROW
-21E3 ; [*05A9.0020.0002] # DOWNWARDS DASHED ARROW
-21E4 ; [*05AA.0020.0002] # LEFTWARDS ARROW TO BAR
-21E5 ; [*05AB.0020.0002] # RIGHTWARDS ARROW TO BAR
-21E6 ; [*05AC.0020.0002] # LEFTWARDS WHITE ARROW
-21E7 ; [*05AD.0020.0002] # UPWARDS WHITE ARROW
-21E8 ; [*05AE.0020.0002] # RIGHTWARDS WHITE ARROW
-21E9 ; [*05AF.0020.0002] # DOWNWARDS WHITE ARROW
-21EA ; [*05B0.0020.0002] # UPWARDS WHITE ARROW FROM BAR
-21EB ; [*05B1.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL
-21EC ; [*05B2.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
-21ED ; [*05B3.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
-21EE ; [*05B4.0020.0002] # UPWARDS WHITE DOUBLE ARROW
-21EF ; [*05B5.0020.0002] # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
-21F0 ; [*05B6.0020.0002] # RIGHTWARDS WHITE ARROW FROM WALL
-21F1 ; [*05B7.0020.0002] # NORTH WEST ARROW TO CORNER
-21F2 ; [*05B8.0020.0002] # SOUTH EAST ARROW TO CORNER
-21F3 ; [*05B9.0020.0002] # UP DOWN WHITE ARROW
-21F4 ; [*05BA.0020.0002] # RIGHT ARROW WITH SMALL CIRCLE
-21F5 ; [*05BB.0020.0002] # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
-21F6 ; [*05BC.0020.0002] # THREE RIGHTWARDS ARROWS
-21F7 ; [*05BD.0020.0002] # LEFTWARDS ARROW WITH VERTICAL STROKE
-21F8 ; [*05BE.0020.0002] # RIGHTWARDS ARROW WITH VERTICAL STROKE
-21F9 ; [*05BF.0020.0002] # LEFT RIGHT ARROW WITH VERTICAL STROKE
-21FA ; [*05C0.0020.0002] # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FB ; [*05C1.0020.0002] # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FC ; [*05C2.0020.0002] # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
-21FD ; [*05C3.0020.0002] # LEFTWARDS OPEN-HEADED ARROW
-21FE ; [*05C4.0020.0002] # RIGHTWARDS OPEN-HEADED ARROW
-21FF ; [*05C5.0020.0002] # LEFT RIGHT OPEN-HEADED ARROW
-2200 ; [*05C6.0020.0002] # FOR ALL
-2201 ; [*05C7.0020.0002] # COMPLEMENT
-2202 ; [*05C8.0020.0002] # PARTIAL DIFFERENTIAL
-2203 ; [*05C9.0020.0002] # THERE EXISTS
-2204 ; [*05C9.0020.0002][.0000.002F.0002] # THERE DOES NOT EXIST
-2205 ; [*05CA.0020.0002] # EMPTY SET
-2206 ; [*05CB.0020.0002] # INCREMENT
-2207 ; [*05CC.0020.0002] # NABLA
-2208 ; [*05CD.0020.0002] # ELEMENT OF
-2209 ; [*05CD.0020.0002][.0000.002F.0002] # NOT AN ELEMENT OF
-220A ; [*05CE.0020.0002] # SMALL ELEMENT OF
-220B ; [*05CF.0020.0002] # CONTAINS AS MEMBER
-220C ; [*05CF.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS MEMBER
-220D ; [*05D0.0020.0002] # SMALL CONTAINS AS MEMBER
-220E ; [*05D2.0020.0002] # END OF PROOF
-220F ; [*05D3.0020.0002] # N-ARY PRODUCT
-2210 ; [*05D4.0020.0002] # N-ARY COPRODUCT
-2211 ; [*05D5.0020.0002] # N-ARY SUMMATION
-2212 ; [*05E1.0020.0002] # MINUS SIGN
-2213 ; [*05E3.0020.0002] # MINUS-OR-PLUS SIGN
-2214 ; [*05E4.0020.0002] # DOT PLUS
-2215 ; [*05E5.0020.0002] # DIVISION SLASH
-2216 ; [*05E7.0020.0002] # SET MINUS
-2217 ; [*05E8.0020.0002] # ASTERISK OPERATOR
-2218 ; [*05E9.0020.0002] # RING OPERATOR
-2219 ; [*05EA.0020.0002] # BULLET OPERATOR
-221A ; [*05EB.0020.0002] # SQUARE ROOT
-221B ; [*05EC.0020.0002] # CUBE ROOT
-221C ; [*05EE.0020.0002] # FOURTH ROOT
-221D ; [*05F0.0020.0002] # PROPORTIONAL TO
-221E ; [*05F1.0020.0002] # INFINITY
-221F ; [*05F2.0020.0002] # RIGHT ANGLE
-2220 ; [*05F3.0020.0002] # ANGLE
-2221 ; [*05F4.0020.0002] # MEASURED ANGLE
-2222 ; [*05F5.0020.0002] # SPHERICAL ANGLE
-2223 ; [*05F6.0020.0002] # DIVIDES
-2224 ; [*05F6.0020.0002][.0000.002F.0002] # DOES NOT DIVIDE
-2225 ; [*05F7.0020.0002] # PARALLEL TO
-2226 ; [*05F7.0020.0002][.0000.002F.0002] # NOT PARALLEL TO
-2227 ; [*05F8.0020.0002] # LOGICAL AND
-2228 ; [*05F9.0020.0002] # LOGICAL OR
-2229 ; [*05FA.0020.0002] # INTERSECTION
-222A ; [*05FB.0020.0002] # UNION
-222B ; [*05FC.0020.0002] # INTEGRAL
-222C ; [*05FC.0020.0004][*05FC.0020.0004] # DOUBLE INTEGRAL
-222D ; [*05FC.0020.0004][*05FC.0020.0004][*05FC.0020.0004] # TRIPLE INTEGRAL
-222E ; [*05FD.0020.0002] # CONTOUR INTEGRAL
-222F ; [*05FD.0020.0004][*05FD.0020.0004] # SURFACE INTEGRAL
-2230 ; [*05FD.0020.0004][*05FD.0020.0004][*05FD.0020.0004] # VOLUME INTEGRAL
-2231 ; [*05FE.0020.0002] # CLOCKWISE INTEGRAL
-2232 ; [*05FF.0020.0002] # CLOCKWISE CONTOUR INTEGRAL
-2233 ; [*0600.0020.0002] # ANTICLOCKWISE CONTOUR INTEGRAL
-2234 ; [*0601.0020.0002] # THEREFORE
-2235 ; [*0602.0020.0002] # BECAUSE
-2236 ; [*0603.0020.0002] # RATIO
-2237 ; [*0604.0020.0002] # PROPORTION
-2238 ; [*0605.0020.0002] # DOT MINUS
-2239 ; [*0606.0020.0002] # EXCESS
-223A ; [*0607.0020.0002] # GEOMETRIC PROPORTION
-223B ; [*0608.0020.0002] # HOMOTHETIC
-223C ; [*0609.0020.0002] # TILDE OPERATOR
-223D ; [*060A.0020.0002] # REVERSED TILDE
-223E ; [*060B.0020.0002] # INVERTED LAZY S
-223F ; [*060C.0020.0002] # SINE WAVE
-2240 ; [*060D.0020.0002] # WREATH PRODUCT
-2241 ; [*0609.0020.0002][.0000.002F.0002] # NOT TILDE
-2242 ; [*060E.0020.0002] # MINUS TILDE
-2243 ; [*060F.0020.0002] # ASYMPTOTICALLY EQUAL TO
-2244 ; [*060F.0020.0002][.0000.002F.0002] # NOT ASYMPTOTICALLY EQUAL TO
-2245 ; [*0610.0020.0002] # APPROXIMATELY EQUAL TO
-2246 ; [*0611.0020.0002] # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
-2247 ; [*0610.0020.0002][.0000.002F.0002] # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-2248 ; [*0612.0020.0002] # ALMOST EQUAL TO
-2249 ; [*0612.0020.0002][.0000.002F.0002] # NOT ALMOST EQUAL TO
-224A ; [*0613.0020.0002] # ALMOST EQUAL OR EQUAL TO
-224B ; [*0614.0020.0002] # TRIPLE TILDE
-224C ; [*0615.0020.0002] # ALL EQUAL TO
-224D ; [*0616.0020.0002] # EQUIVALENT TO
-224E ; [*0617.0020.0002] # GEOMETRICALLY EQUIVALENT TO
-224F ; [*0618.0020.0002] # DIFFERENCE BETWEEN
-2250 ; [*0619.0020.0002] # APPROACHES THE LIMIT
-2251 ; [*061A.0020.0002] # GEOMETRICALLY EQUAL TO
-2252 ; [*061B.0020.0002] # APPROXIMATELY EQUAL TO OR THE IMAGE OF
-2253 ; [*061C.0020.0002] # IMAGE OF OR APPROXIMATELY EQUAL TO
-2254 ; [*061D.0020.0002] # COLON EQUALS
-2255 ; [*061E.0020.0002] # EQUALS COLON
-2256 ; [*061F.0020.0002] # RING IN EQUAL TO
-2257 ; [*0620.0020.0002] # RING EQUAL TO
-2258 ; [*0621.0020.0002] # CORRESPONDS TO
-2259 ; [*0622.0020.0002] # ESTIMATES
-225A ; [*0623.0020.0002] # EQUIANGULAR TO
-225B ; [*0624.0020.0002] # STAR EQUALS
-225C ; [*0625.0020.0002] # DELTA EQUAL TO
-225D ; [*0626.0020.0002] # EQUAL TO BY DEFINITION
-225E ; [*0627.0020.0002] # MEASURED BY
-225F ; [*0628.0020.0002] # QUESTIONED EQUAL TO
-2260 ; [*05DB.0020.0002][.0000.002F.0002] # NOT EQUAL TO
-2261 ; [*0629.0020.0002] # IDENTICAL TO
-2262 ; [*0629.0020.0002][.0000.002F.0002] # NOT IDENTICAL TO
-2263 ; [*062A.0020.0002] # STRICTLY EQUIVALENT TO
-2264 ; [*062B.0020.0002] # LESS-THAN OR EQUAL TO
-2265 ; [*062C.0020.0002] # GREATER-THAN OR EQUAL TO
-2266 ; [*062D.0020.0002] # LESS-THAN OVER EQUAL TO
-2267 ; [*062E.0020.0002] # GREATER-THAN OVER EQUAL TO
-2268 ; [*062F.0020.0002] # LESS-THAN BUT NOT EQUAL TO
-2269 ; [*0630.0020.0002] # GREATER-THAN BUT NOT EQUAL TO
-226A ; [*0631.0020.0002] # MUCH LESS-THAN
-226B ; [*0632.0020.0002] # MUCH GREATER-THAN
-226C ; [*0633.0020.0002] # BETWEEN
-226D ; [*0616.0020.0002][.0000.002F.0002] # NOT EQUIVALENT TO
-226E ; [*05DA.0020.0002][.0000.002F.0002] # NOT LESS-THAN
-226F ; [*05DC.0020.0002][.0000.002F.0002] # NOT GREATER-THAN
-2270 ; [*062B.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUAL TO
-2271 ; [*062C.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUAL TO
-2272 ; [*0634.0020.0002] # LESS-THAN OR EQUIVALENT TO
-2273 ; [*0635.0020.0002] # GREATER-THAN OR EQUIVALENT TO
-2274 ; [*0634.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUIVALENT TO
-2275 ; [*0635.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUIVALENT TO
-2276 ; [*0636.0020.0002] # LESS-THAN OR GREATER-THAN
-2277 ; [*0637.0020.0002] # GREATER-THAN OR LESS-THAN
-2278 ; [*0636.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR GREATER-THAN
-2279 ; [*0637.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR LESS-THAN
-227A ; [*0638.0020.0002] # PRECEDES
-227B ; [*0639.0020.0002] # SUCCEEDS
-227C ; [*063A.0020.0002] # PRECEDES OR EQUAL TO
-227D ; [*063B.0020.0002] # SUCCEEDS OR EQUAL TO
-227E ; [*063C.0020.0002] # PRECEDES OR EQUIVALENT TO
-227F ; [*063D.0020.0002] # SUCCEEDS OR EQUIVALENT TO
-2280 ; [*0638.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE
-2281 ; [*0639.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED
-2282 ; [*063E.0020.0002] # SUBSET OF
-2283 ; [*063F.0020.0002] # SUPERSET OF
-2284 ; [*063E.0020.0002][.0000.002F.0002] # NOT A SUBSET OF
-2285 ; [*063F.0020.0002][.0000.002F.0002] # NOT A SUPERSET OF
-2286 ; [*0640.0020.0002] # SUBSET OF OR EQUAL TO
-2287 ; [*0641.0020.0002] # SUPERSET OF OR EQUAL TO
-2288 ; [*0640.0020.0002][.0000.002F.0002] # NEITHER A SUBSET OF NOR EQUAL TO
-2289 ; [*0641.0020.0002][.0000.002F.0002] # NEITHER A SUPERSET OF NOR EQUAL TO
-228A ; [*0642.0020.0002] # SUBSET OF WITH NOT EQUAL TO
-228B ; [*0643.0020.0002] # SUPERSET OF WITH NOT EQUAL TO
-228C ; [*0644.0020.0002] # MULTISET
-228D ; [*0645.0020.0002] # MULTISET MULTIPLICATION
-228E ; [*0646.0020.0002] # MULTISET UNION
-228F ; [*0647.0020.0002] # SQUARE IMAGE OF
-2290 ; [*0648.0020.0002] # SQUARE ORIGINAL OF
-2291 ; [*0649.0020.0002] # SQUARE IMAGE OF OR EQUAL TO
-2292 ; [*064A.0020.0002] # SQUARE ORIGINAL OF OR EQUAL TO
-2293 ; [*064B.0020.0002] # SQUARE CAP
-2294 ; [*064C.0020.0002] # SQUARE CUP
-2295 ; [*064D.0020.0002] # CIRCLED PLUS
-2296 ; [*064E.0020.0002] # CIRCLED MINUS
-2297 ; [*064F.0020.0002] # CIRCLED TIMES
-2298 ; [*0650.0020.0002] # CIRCLED DIVISION SLASH
-2299 ; [*0651.0020.0002] # CIRCLED DOT OPERATOR
-229A ; [*0652.0020.0002] # CIRCLED RING OPERATOR
-229B ; [*0653.0020.0002] # CIRCLED ASTERISK OPERATOR
-229C ; [*0654.0020.0002] # CIRCLED EQUALS
-229D ; [*0655.0020.0002] # CIRCLED DASH
-229E ; [*0656.0020.0002] # SQUARED PLUS
-229F ; [*0657.0020.0002] # SQUARED MINUS
-22A0 ; [*0658.0020.0002] # SQUARED TIMES
-22A1 ; [*0659.0020.0002] # SQUARED DOT OPERATOR
-22A2 ; [*065A.0020.0002] # RIGHT TACK
-22A3 ; [*065B.0020.0002] # LEFT TACK
-22A4 ; [*065C.0020.0002] # DOWN TACK
-22A5 ; [*065D.0020.0002] # UP TACK
-22A6 ; [*065E.0020.0002] # ASSERTION
-22A7 ; [*065F.0020.0002] # MODELS
-22A8 ; [*0660.0020.0002] # TRUE
-22A9 ; [*0661.0020.0002] # FORCES
-22AA ; [*0662.0020.0002] # TRIPLE VERTICAL BAR RIGHT TURNSTILE
-22AB ; [*0663.0020.0002] # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22AC ; [*065A.0020.0002][.0000.002F.0002] # DOES NOT PROVE
-22AD ; [*0660.0020.0002][.0000.002F.0002] # NOT TRUE
-22AE ; [*0661.0020.0002][.0000.002F.0002] # DOES NOT FORCE
-22AF ; [*0663.0020.0002][.0000.002F.0002] # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22B0 ; [*0664.0020.0002] # PRECEDES UNDER RELATION
-22B1 ; [*0665.0020.0002] # SUCCEEDS UNDER RELATION
-22B2 ; [*0666.0020.0002] # NORMAL SUBGROUP OF
-22B3 ; [*0667.0020.0002] # CONTAINS AS NORMAL SUBGROUP
-22B4 ; [*0668.0020.0002] # NORMAL SUBGROUP OF OR EQUAL TO
-22B5 ; [*0669.0020.0002] # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
-22B6 ; [*066A.0020.0002] # ORIGINAL OF
-22B7 ; [*066B.0020.0002] # IMAGE OF
-22B8 ; [*066C.0020.0002] # MULTIMAP
-22B9 ; [*066D.0020.0002] # HERMITIAN CONJUGATE MATRIX
-22BA ; [*066E.0020.0002] # INTERCALATE
-22BB ; [*066F.0020.0002] # XOR
-22BC ; [*0670.0020.0002] # NAND
-22BD ; [*0672.0020.0002] # NOR
-22BE ; [*0673.0020.0002] # RIGHT ANGLE WITH ARC
-22BF ; [*0674.0020.0002] # RIGHT TRIANGLE
-22C0 ; [*0675.0020.0002] # N-ARY LOGICAL AND
-22C1 ; [*0676.0020.0002] # N-ARY LOGICAL OR
-22C2 ; [*0677.0020.0002] # N-ARY INTERSECTION
-22C3 ; [*0678.0020.0002] # N-ARY UNION
-22C4 ; [*0679.0020.0002] # DIAMOND OPERATOR
-22C5 ; [*067A.0020.0002] # DOT OPERATOR
-22C6 ; [*067B.0020.0002] # STAR OPERATOR
-22C7 ; [*067C.0020.0002] # DIVISION TIMES
-22C8 ; [*067D.0020.0002] # BOWTIE
-22C9 ; [*067E.0020.0002] # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CA ; [*067F.0020.0002] # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CB ; [*0680.0020.0002] # LEFT SEMIDIRECT PRODUCT
-22CC ; [*0681.0020.0002] # RIGHT SEMIDIRECT PRODUCT
-22CD ; [*0682.0020.0002] # REVERSED TILDE EQUALS
-22CE ; [*0683.0020.0002] # CURLY LOGICAL OR
-22CF ; [*0684.0020.0002] # CURLY LOGICAL AND
-22D0 ; [*0685.0020.0002] # DOUBLE SUBSET
-22D1 ; [*0686.0020.0002] # DOUBLE SUPERSET
-22D2 ; [*0687.0020.0002] # DOUBLE INTERSECTION
-22D3 ; [*0688.0020.0002] # DOUBLE UNION
-22D4 ; [*0689.0020.0002] # PITCHFORK
-22D5 ; [*068A.0020.0002] # EQUAL AND PARALLEL TO
-22D6 ; [*068B.0020.0002] # LESS-THAN WITH DOT
-22D7 ; [*068C.0020.0002] # GREATER-THAN WITH DOT
-22D8 ; [*068D.0020.0002] # VERY MUCH LESS-THAN
-22D9 ; [*068E.0020.0002] # VERY MUCH GREATER-THAN
-22DA ; [*068F.0020.0002] # LESS-THAN EQUAL TO OR GREATER-THAN
-22DB ; [*0690.0020.0002] # GREATER-THAN EQUAL TO OR LESS-THAN
-22DC ; [*0691.0020.0002] # EQUAL TO OR LESS-THAN
-22DD ; [*0692.0020.0002] # EQUAL TO OR GREATER-THAN
-22DE ; [*0693.0020.0002] # EQUAL TO OR PRECEDES
-22DF ; [*0694.0020.0002] # EQUAL TO OR SUCCEEDS
-22E0 ; [*063A.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE OR EQUAL
-22E1 ; [*063B.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED OR EQUAL
-22E2 ; [*0649.0020.0002][.0000.002F.0002] # NOT SQUARE IMAGE OF OR EQUAL TO
-22E3 ; [*064A.0020.0002][.0000.002F.0002] # NOT SQUARE ORIGINAL OF OR EQUAL TO
-22E4 ; [*0695.0020.0002] # SQUARE IMAGE OF OR NOT EQUAL TO
-22E5 ; [*0696.0020.0002] # SQUARE ORIGINAL OF OR NOT EQUAL TO
-22E6 ; [*0697.0020.0002] # LESS-THAN BUT NOT EQUIVALENT TO
-22E7 ; [*0698.0020.0002] # GREATER-THAN BUT NOT EQUIVALENT TO
-22E8 ; [*0699.0020.0002] # PRECEDES BUT NOT EQUIVALENT TO
-22E9 ; [*069A.0020.0002] # SUCCEEDS BUT NOT EQUIVALENT TO
-22EA ; [*0666.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF
-22EB ; [*0667.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP
-22EC ; [*0668.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF OR EQUAL TO
-22ED ; [*0669.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
-22EE ; [*069B.0020.0002] # VERTICAL ELLIPSIS
-22EF ; [*069C.0020.0002] # MIDLINE HORIZONTAL ELLIPSIS
-22F0 ; [*069D.0020.0002] # UP RIGHT DIAGONAL ELLIPSIS
-22F1 ; [*069E.0020.0002] # DOWN RIGHT DIAGONAL ELLIPSIS
-22F2 ; [*069F.0020.0002] # ELEMENT OF WITH LONG HORIZONTAL STROKE
-22F3 ; [*06A0.0020.0002] # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F4 ; [*06A1.0020.0002] # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F5 ; [*06A2.0020.0002] # ELEMENT OF WITH DOT ABOVE
-22F6 ; [*06A3.0020.0002] # ELEMENT OF WITH OVERBAR
-22F7 ; [*06A4.0020.0002] # SMALL ELEMENT OF WITH OVERBAR
-22F8 ; [*06A5.0020.0002] # ELEMENT OF WITH UNDERBAR
-22F9 ; [*06A6.0020.0002] # ELEMENT OF WITH TWO HORIZONTAL STROKES
-22FA ; [*06A7.0020.0002] # CONTAINS WITH LONG HORIZONTAL STROKE
-22FB ; [*06A8.0020.0002] # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FC ; [*06A9.0020.0002] # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FD ; [*06AA.0020.0002] # CONTAINS WITH OVERBAR
-22FE ; [*06AB.0020.0002] # SMALL CONTAINS WITH OVERBAR
-22FF ; [*06AC.0020.0002] # Z NOTATION BAG MEMBERSHIP
-2300 ; [*06AD.0020.0002] # DIAMETER SIGN
-2301 ; [*06AE.0020.0002] # ELECTRIC ARROW
-2302 ; [*06AF.0020.0002] # HOUSE
-2303 ; [*06B0.0020.0002] # UP ARROWHEAD
-2304 ; [*06B1.0020.0002] # DOWN ARROWHEAD
-2305 ; [*06B2.0020.0002] # PROJECTIVE
-2306 ; [*06B3.0020.0002] # PERSPECTIVE
-2307 ; [*06B4.0020.0002] # WAVY LINE
-2308 ; [*0318.0020.0002] # LEFT CEILING
-2309 ; [*0319.0020.0002] # RIGHT CEILING
-230A ; [*031A.0020.0002] # LEFT FLOOR
-230B ; [*031B.0020.0002] # RIGHT FLOOR
-230C ; [*06B5.0020.0002] # BOTTOM RIGHT CROP
-230D ; [*06B6.0020.0002] # BOTTOM LEFT CROP
-230E ; [*06B7.0020.0002] # TOP RIGHT CROP
-230F ; [*06B8.0020.0002] # TOP LEFT CROP
-2310 ; [*06B9.0020.0002] # REVERSED NOT SIGN
-2311 ; [*06BA.0020.0002] # SQUARE LOZENGE
-2312 ; [*06BB.0020.0002] # ARC
-2313 ; [*06BC.0020.0002] # SEGMENT
-2314 ; [*06BD.0020.0002] # SECTOR
-2315 ; [*06BE.0020.0002] # TELEPHONE RECORDER
-2316 ; [*06BF.0020.0002] # POSITION INDICATOR
-2317 ; [*06C0.0020.0002] # VIEWDATA SQUARE
-2318 ; [*06C1.0020.0002] # PLACE OF INTEREST SIGN
-2319 ; [*06C2.0020.0002] # TURNED NOT SIGN
-231A ; [*06C3.0020.0002] # WATCH
-231B ; [*06C4.0020.0002] # HOURGLASS
-231C ; [*06C5.0020.0002] # TOP LEFT CORNER
-231D ; [*06C6.0020.0002] # TOP RIGHT CORNER
-231E ; [*06C7.0020.0002] # BOTTOM LEFT CORNER
-231F ; [*06C8.0020.0002] # BOTTOM RIGHT CORNER
-2320 ; [*06C9.0020.0002] # TOP HALF INTEGRAL
-2321 ; [*06CA.0020.0002] # BOTTOM HALF INTEGRAL
-2322 ; [*06CB.0020.0002] # FROWN
-2323 ; [*06CC.0020.0002] # SMILE
-2324 ; [*06CD.0020.0002] # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
-2325 ; [*06CE.0020.0002] # OPTION KEY
-2326 ; [*06CF.0020.0002] # ERASE TO THE RIGHT
-2327 ; [*06D0.0020.0002] # X IN A RECTANGLE BOX
-2328 ; [*06D1.0020.0002] # KEYBOARD
-2329 ; [*0362.0020.0002] # LEFT-POINTING ANGLE BRACKET
-232A ; [*0363.0020.0002] # RIGHT-POINTING ANGLE BRACKET
-232B ; [*06D2.0020.0002] # ERASE TO THE LEFT
-232C ; [*06D3.0020.0002] # BENZENE RING
-232D ; [*06D4.0020.0002] # CYLINDRICITY
-232E ; [*06D5.0020.0002] # ALL AROUND-PROFILE
-232F ; [*06D6.0020.0002] # SYMMETRY
-2330 ; [*06D7.0020.0002] # TOTAL RUNOUT
-2331 ; [*06D8.0020.0002] # DIMENSION ORIGIN
-2332 ; [*06D9.0020.0002] # CONICAL TAPER
-2333 ; [*06DA.0020.0002] # SLOPE
-2334 ; [*06DB.0020.0002] # COUNTERBORE
-2335 ; [*06DC.0020.0002] # COUNTERSINK
-2336 ; [*06DD.0020.0002] # APL FUNCTIONAL SYMBOL I-BEAM
-2337 ; [*06DE.0020.0002] # APL FUNCTIONAL SYMBOL SQUISH QUAD
-2338 ; [*06DF.0020.0002] # APL FUNCTIONAL SYMBOL QUAD EQUAL
-2339 ; [*06E0.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIVIDE
-233A ; [*06E1.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIAMOND
-233B ; [*06E2.0020.0002] # APL FUNCTIONAL SYMBOL QUAD JOT
-233C ; [*06E3.0020.0002] # APL FUNCTIONAL SYMBOL QUAD CIRCLE
-233D ; [*06E4.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STILE
-233E ; [*06E5.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE JOT
-233F ; [*06E6.0020.0002] # APL FUNCTIONAL SYMBOL SLASH BAR
-2340 ; [*06E7.0020.0002] # APL FUNCTIONAL SYMBOL BACKSLASH BAR
-2341 ; [*06E8.0020.0002] # APL FUNCTIONAL SYMBOL QUAD SLASH
-2342 ; [*06E9.0020.0002] # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
-2343 ; [*06EA.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
-2344 ; [*06EB.0020.0002] # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
-2345 ; [*06EC.0020.0002] # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
-2346 ; [*06ED.0020.0002] # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
-2347 ; [*06EE.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
-2348 ; [*06EF.0020.0002] # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
-2349 ; [*06F0.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
-234A ; [*06F1.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
-234B ; [*06F2.0020.0002] # APL FUNCTIONAL SYMBOL DELTA STILE
-234C ; [*06F3.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
-234D ; [*06F4.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DELTA
-234E ; [*06F5.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK JOT
-234F ; [*06F6.0020.0002] # APL FUNCTIONAL SYMBOL UPWARDS VANE
-2350 ; [*06F7.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
-2351 ; [*06F8.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
-2352 ; [*06F9.0020.0002] # APL FUNCTIONAL SYMBOL DEL STILE
-2353 ; [*06FA.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UP CARET
-2354 ; [*06FB.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DEL
-2355 ; [*06FC.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK JOT
-2356 ; [*06FD.0020.0002] # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
-2357 ; [*06FE.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
-2358 ; [*06FF.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
-2359 ; [*0700.0020.0002] # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
-235A ; [*0701.0020.0002] # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
-235B ; [*0702.0020.0002] # APL FUNCTIONAL SYMBOL JOT UNDERBAR
-235C ; [*0703.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
-235D ; [*0704.0020.0002] # APL FUNCTIONAL SYMBOL UP SHOE JOT
-235E ; [*0705.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE QUAD
-235F ; [*0706.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STAR
-2360 ; [*0707.0020.0002] # APL FUNCTIONAL SYMBOL QUAD COLON
-2361 ; [*0708.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
-2362 ; [*0709.0020.0002] # APL FUNCTIONAL SYMBOL DEL DIAERESIS
-2363 ; [*070A.0020.0002] # APL FUNCTIONAL SYMBOL STAR DIAERESIS
-2364 ; [*070B.0020.0002] # APL FUNCTIONAL SYMBOL JOT DIAERESIS
-2365 ; [*070C.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
-2366 ; [*070D.0020.0002] # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
-2367 ; [*070E.0020.0002] # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
-2368 ; [*070F.0020.0002] # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
-2369 ; [*0710.0020.0002] # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
-236A ; [*0711.0020.0002] # APL FUNCTIONAL SYMBOL COMMA BAR
-236B ; [*0712.0020.0002] # APL FUNCTIONAL SYMBOL DEL TILDE
-236C ; [*0713.0020.0002] # APL FUNCTIONAL SYMBOL ZILDE
-236D ; [*0714.0020.0002] # APL FUNCTIONAL SYMBOL STILE TILDE
-236E ; [*0715.0020.0002] # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
-236F ; [*0716.0020.0002] # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
-2370 ; [*0717.0020.0002] # APL FUNCTIONAL SYMBOL QUAD QUESTION
-2371 ; [*0718.0020.0002] # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
-2372 ; [*0719.0020.0002] # APL FUNCTIONAL SYMBOL UP CARET TILDE
-2373 ; [*071A.0020.0002] # APL FUNCTIONAL SYMBOL IOTA
-2374 ; [*071B.0020.0002] # APL FUNCTIONAL SYMBOL RHO
-2375 ; [*071C.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA
-2376 ; [*071D.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
-2377 ; [*071E.0020.0002] # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
-2378 ; [*071F.0020.0002] # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
-2379 ; [*0720.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
-237A ; [*0721.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA
-237B ; [*0722.0020.0002] # NOT CHECK MARK
-237C ; [*0723.0020.0002] # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D ; [*0724.0020.0002] # SHOULDERED OPEN BOX
-237E ; [*0725.0020.0002] # BELL SYMBOL
-237F ; [*0726.0020.0002] # VERTICAL LINE WITH MIDDLE DOT
-2380 ; [*0727.0020.0002] # INSERTION SYMBOL
-2381 ; [*0728.0020.0002] # CONTINUOUS UNDERLINE SYMBOL
-2382 ; [*0729.0020.0002] # DISCONTINUOUS UNDERLINE SYMBOL
-2383 ; [*072A.0020.0002] # EMPHASIS SYMBOL
-2384 ; [*072B.0020.0002] # COMPOSITION SYMBOL
-2385 ; [*072C.0020.0002] # WHITE SQUARE WITH CENTRE VERTICAL LINE
-2386 ; [*072D.0020.0002] # ENTER SYMBOL
-2387 ; [*072E.0020.0002] # ALTERNATIVE KEY SYMBOL
-2388 ; [*072F.0020.0002] # HELM SYMBOL
-2389 ; [*0730.0020.0002] # CIRCLED HORIZONTAL BAR WITH NOTCH
-238A ; [*0731.0020.0002] # CIRCLED TRIANGLE DOWN
-238B ; [*0732.0020.0002] # BROKEN CIRCLE WITH NORTHWEST ARROW
-238C ; [*0733.0020.0002] # UNDO SYMBOL
-238D ; [*0734.0020.0002] # MONOSTABLE SYMBOL
-238E ; [*0735.0020.0002] # HYSTERESIS SYMBOL
-238F ; [*0736.0020.0002] # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
-2390 ; [*0737.0020.0002] # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
-2391 ; [*0738.0020.0002] # PASSIVE-PULL-DOWN-OUTPUT SYMBOL
-2392 ; [*0739.0020.0002] # PASSIVE-PULL-UP-OUTPUT SYMBOL
-2393 ; [*073A.0020.0002] # DIRECT CURRENT SYMBOL FORM TWO
-2394 ; [*073B.0020.0002] # SOFTWARE-FUNCTION SYMBOL
-2395 ; [*073C.0020.0002] # APL FUNCTIONAL SYMBOL QUAD
-2396 ; [*073D.0020.0002] # DECIMAL SEPARATOR KEY SYMBOL
-2397 ; [*073E.0020.0002] # PREVIOUS PAGE
-2398 ; [*073F.0020.0002] # NEXT PAGE
-2399 ; [*0740.0020.0002] # PRINT SCREEN SYMBOL
-239A ; [*0741.0020.0002] # CLEAR SCREEN SYMBOL
-239B ; [*0742.0020.0002] # LEFT PARENTHESIS UPPER HOOK
-239C ; [*0743.0020.0002] # LEFT PARENTHESIS EXTENSION
-239D ; [*0744.0020.0002] # LEFT PARENTHESIS LOWER HOOK
-239E ; [*0745.0020.0002] # RIGHT PARENTHESIS UPPER HOOK
-239F ; [*0746.0020.0002] # RIGHT PARENTHESIS EXTENSION
-23A0 ; [*0747.0020.0002] # RIGHT PARENTHESIS LOWER HOOK
-23A1 ; [*0748.0020.0002] # LEFT SQUARE BRACKET UPPER CORNER
-23A2 ; [*0749.0020.0002] # LEFT SQUARE BRACKET EXTENSION
-23A3 ; [*074A.0020.0002] # LEFT SQUARE BRACKET LOWER CORNER
-23A4 ; [*074B.0020.0002] # RIGHT SQUARE BRACKET UPPER CORNER
-23A5 ; [*074C.0020.0002] # RIGHT SQUARE BRACKET EXTENSION
-23A6 ; [*074D.0020.0002] # RIGHT SQUARE BRACKET LOWER CORNER
-23A7 ; [*074E.0020.0002] # LEFT CURLY BRACKET UPPER HOOK
-23A8 ; [*074F.0020.0002] # LEFT CURLY BRACKET MIDDLE PIECE
-23A9 ; [*0750.0020.0002] # LEFT CURLY BRACKET LOWER HOOK
-23AA ; [*0751.0020.0002] # CURLY BRACKET EXTENSION
-23AB ; [*0752.0020.0002] # RIGHT CURLY BRACKET UPPER HOOK
-23AC ; [*0753.0020.0002] # RIGHT CURLY BRACKET MIDDLE PIECE
-23AD ; [*0754.0020.0002] # RIGHT CURLY BRACKET LOWER HOOK
-23AE ; [*0755.0020.0002] # INTEGRAL EXTENSION
-23AF ; [*0756.0020.0002] # HORIZONTAL LINE EXTENSION
-23B0 ; [*0757.0020.0002] # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
-23B1 ; [*0758.0020.0002] # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
-23B2 ; [*0759.0020.0002] # SUMMATION TOP
-23B3 ; [*075A.0020.0002] # SUMMATION BOTTOM
-23B4 ; [*075B.0020.0002] # TOP SQUARE BRACKET
-23B5 ; [*075C.0020.0002] # BOTTOM SQUARE BRACKET
-23B6 ; [*075D.0020.0002] # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7 ; [*075E.0020.0002] # RADICAL SYMBOL BOTTOM
-23B8 ; [*075F.0020.0002] # LEFT VERTICAL BOX LINE
-23B9 ; [*0760.0020.0002] # RIGHT VERTICAL BOX LINE
-23BA ; [*0761.0020.0002] # HORIZONTAL SCAN LINE-1
-23BB ; [*0762.0020.0002] # HORIZONTAL SCAN LINE-3
-23BC ; [*0763.0020.0002] # HORIZONTAL SCAN LINE-7
-23BD ; [*0764.0020.0002] # HORIZONTAL SCAN LINE-9
-23BE ; [*0765.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
-23BF ; [*0766.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
-23C0 ; [*0767.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
-23C1 ; [*0768.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
-23C2 ; [*0769.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
-23C3 ; [*076A.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
-23C4 ; [*076B.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
-23C5 ; [*076C.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
-23C6 ; [*076D.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
-23C7 ; [*076E.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
-23C8 ; [*076F.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
-23C9 ; [*0770.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
-23CA ; [*0771.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
-23CB ; [*0772.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
-23CC ; [*0773.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
-23CD ; [*0774.0020.0002] # SQUARE FOOT
-23CE ; [*0775.0020.0002] # RETURN SYMBOL
-23CF ; [*0776.0020.0002] # EJECT SYMBOL
-23D0 ; [*0777.0020.0002] # VERTICAL LINE EXTENSION
-23D1 ; [*0778.0020.0002] # METRICAL BREVE
-23D2 ; [*0779.0020.0002] # METRICAL LONG OVER SHORT
-23D3 ; [*077A.0020.0002] # METRICAL SHORT OVER LONG
-23D4 ; [*077B.0020.0002] # METRICAL LONG OVER TWO SHORTS
-23D5 ; [*077C.0020.0002] # METRICAL TWO SHORTS OVER LONG
-23D6 ; [*077D.0020.0002] # METRICAL TWO SHORTS JOINED
-23D7 ; [*077E.0020.0002] # METRICAL TRISEME
-23D8 ; [*077F.0020.0002] # METRICAL TETRASEME
-23D9 ; [*0780.0020.0002] # METRICAL PENTASEME
-23DA ; [*0781.0020.0002] # EARTH GROUND
-23DB ; [*0782.0020.0002] # FUSE
-23DC ; [*0783.0020.0002] # TOP PARENTHESIS
-23DD ; [*0784.0020.0002] # BOTTOM PARENTHESIS
-23DE ; [*0785.0020.0002] # TOP CURLY BRACKET
-23DF ; [*0786.0020.0002] # BOTTOM CURLY BRACKET
-23E0 ; [*0787.0020.0002] # TOP TORTOISE SHELL BRACKET
-23E1 ; [*0788.0020.0002] # BOTTOM TORTOISE SHELL BRACKET
-23E2 ; [*0789.0020.0002] # WHITE TRAPEZIUM
-23E3 ; [*078A.0020.0002] # BENZENE RING WITH CIRCLE
-23E4 ; [*078B.0020.0002] # STRAIGHTNESS
-23E5 ; [*078C.0020.0002] # FLATNESS
-23E6 ; [*078D.0020.0002] # AC CURRENT
-23E7 ; [*078E.0020.0002] # ELECTRICAL INTERSECTION
-23E8 ; [*078F.0020.0002] # DECIMAL EXPONENT SYMBOL
-23E9 ; [*0790.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE
-23EA ; [*0791.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE
-23EB ; [*0792.0020.0002] # BLACK UP-POINTING DOUBLE TRIANGLE
-23EC ; [*0793.0020.0002] # BLACK DOWN-POINTING DOUBLE TRIANGLE
-23ED ; [*0794.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EE ; [*0795.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EF ; [*0796.0020.0002] # BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23F0 ; [*0797.0020.0002] # ALARM CLOCK
-23F1 ; [*0798.0020.0002] # STOPWATCH
-23F2 ; [*0799.0020.0002] # TIMER CLOCK
-23F3 ; [*079A.0020.0002] # HOURGLASS WITH FLOWING SAND
-23F4 ; [*079B.0020.0002] # BLACK MEDIUM LEFT-POINTING TRIANGLE
-23F5 ; [*079C.0020.0002] # BLACK MEDIUM RIGHT-POINTING TRIANGLE
-23F6 ; [*079D.0020.0002] # BLACK MEDIUM UP-POINTING TRIANGLE
-23F7 ; [*079E.0020.0002] # BLACK MEDIUM DOWN-POINTING TRIANGLE
-23F8 ; [*079F.0020.0002] # DOUBLE VERTICAL BAR
-23F9 ; [*07A0.0020.0002] # BLACK SQUARE FOR STOP
-23FA ; [*07A1.0020.0002] # BLACK CIRCLE FOR RECORD
-2400 ; [*07A2.0020.0002] # SYMBOL FOR NULL
-2401 ; [*07A3.0020.0002] # SYMBOL FOR START OF HEADING
-2402 ; [*07A4.0020.0002] # SYMBOL FOR START OF TEXT
-2403 ; [*07A5.0020.0002] # SYMBOL FOR END OF TEXT
-2404 ; [*07A6.0020.0002] # SYMBOL FOR END OF TRANSMISSION
-2405 ; [*07A7.0020.0002] # SYMBOL FOR ENQUIRY
-2406 ; [*07A8.0020.0002] # SYMBOL FOR ACKNOWLEDGE
-2407 ; [*07A9.0020.0002] # SYMBOL FOR BELL
-2408 ; [*07AA.0020.0002] # SYMBOL FOR BACKSPACE
-2409 ; [*07AB.0020.0002] # SYMBOL FOR HORIZONTAL TABULATION
-240A ; [*07AC.0020.0002] # SYMBOL FOR LINE FEED
-240B ; [*07AD.0020.0002] # SYMBOL FOR VERTICAL TABULATION
-240C ; [*07AE.0020.0002] # SYMBOL FOR FORM FEED
-240D ; [*07AF.0020.0002] # SYMBOL FOR CARRIAGE RETURN
-240E ; [*07B0.0020.0002] # SYMBOL FOR SHIFT OUT
-240F ; [*07B1.0020.0002] # SYMBOL FOR SHIFT IN
-2410 ; [*07B2.0020.0002] # SYMBOL FOR DATA LINK ESCAPE
-2411 ; [*07B3.0020.0002] # SYMBOL FOR DEVICE CONTROL ONE
-2412 ; [*07B4.0020.0002] # SYMBOL FOR DEVICE CONTROL TWO
-2413 ; [*07B5.0020.0002] # SYMBOL FOR DEVICE CONTROL THREE
-2414 ; [*07B6.0020.0002] # SYMBOL FOR DEVICE CONTROL FOUR
-2415 ; [*07B7.0020.0002] # SYMBOL FOR NEGATIVE ACKNOWLEDGE
-2416 ; [*07B8.0020.0002] # SYMBOL FOR SYNCHRONOUS IDLE
-2417 ; [*07B9.0020.0002] # SYMBOL FOR END OF TRANSMISSION BLOCK
-2418 ; [*07BA.0020.0002] # SYMBOL FOR CANCEL
-2419 ; [*07BB.0020.0002] # SYMBOL FOR END OF MEDIUM
-241A ; [*07BC.0020.0002] # SYMBOL FOR SUBSTITUTE
-241B ; [*07BD.0020.0002] # SYMBOL FOR ESCAPE
-241C ; [*07BE.0020.0002] # SYMBOL FOR FILE SEPARATOR
-241D ; [*07BF.0020.0002] # SYMBOL FOR GROUP SEPARATOR
-241E ; [*07C0.0020.0002] # SYMBOL FOR RECORD SEPARATOR
-241F ; [*07C1.0020.0002] # SYMBOL FOR UNIT SEPARATOR
-2420 ; [*07C2.0020.0002] # SYMBOL FOR SPACE
-2421 ; [*07C3.0020.0002] # SYMBOL FOR DELETE
-2422 ; [*07C4.0020.0002] # BLANK SYMBOL
-2423 ; [*07C5.0020.0002] # OPEN BOX
-2424 ; [*07C6.0020.0002] # SYMBOL FOR NEWLINE
-2425 ; [*07C7.0020.0002] # SYMBOL FOR DELETE FORM TWO
-2426 ; [*07C8.0020.0002] # SYMBOL FOR SUBSTITUTE FORM TWO
-2440 ; [*07C9.0020.0002] # OCR HOOK
-2441 ; [*07CA.0020.0002] # OCR CHAIR
-2442 ; [*07CB.0020.0002] # OCR FORK
-2443 ; [*07CC.0020.0002] # OCR INVERTED FORK
-2444 ; [*07CD.0020.0002] # OCR BELT BUCKLE
-2445 ; [*07CE.0020.0002] # OCR BOW TIE
-2446 ; [*07CF.0020.0002] # OCR BRANCH BANK IDENTIFICATION
-2447 ; [*07D0.0020.0002] # OCR AMOUNT OF CHECK
-2448 ; [*07D1.0020.0002] # OCR DASH
-2449 ; [*07D2.0020.0002] # OCR CUSTOMER ACCOUNT NUMBER
-244A ; [*07D3.0020.0002] # OCR DOUBLE BACKSLASH
-2500 ; [*07D4.0020.0002] # BOX DRAWINGS LIGHT HORIZONTAL
-2501 ; [*07D5.0020.0002] # BOX DRAWINGS HEAVY HORIZONTAL
-2502 ; [*07D6.0020.0002] # BOX DRAWINGS LIGHT VERTICAL
-2503 ; [*07D7.0020.0002] # BOX DRAWINGS HEAVY VERTICAL
-2504 ; [*07D8.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
-2505 ; [*07D9.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
-2506 ; [*07DA.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
-2507 ; [*07DB.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
-2508 ; [*07DC.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
-2509 ; [*07DD.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
-250A ; [*07DE.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
-250B ; [*07DF.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
-250C ; [*07E0.0020.0002] # BOX DRAWINGS LIGHT DOWN AND RIGHT
-250D ; [*07E1.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
-250E ; [*07E2.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
-250F ; [*07E3.0020.0002] # BOX DRAWINGS HEAVY DOWN AND RIGHT
-2510 ; [*07E4.0020.0002] # BOX DRAWINGS LIGHT DOWN AND LEFT
-2511 ; [*07E5.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
-2512 ; [*07E6.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
-2513 ; [*07E7.0020.0002] # BOX DRAWINGS HEAVY DOWN AND LEFT
-2514 ; [*07E8.0020.0002] # BOX DRAWINGS LIGHT UP AND RIGHT
-2515 ; [*07E9.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
-2516 ; [*07EA.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
-2517 ; [*07EB.0020.0002] # BOX DRAWINGS HEAVY UP AND RIGHT
-2518 ; [*07EC.0020.0002] # BOX DRAWINGS LIGHT UP AND LEFT
-2519 ; [*07ED.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT HEAVY
-251A ; [*07EE.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT LIGHT
-251B ; [*07EF.0020.0002] # BOX DRAWINGS HEAVY UP AND LEFT
-251C ; [*07F0.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-251D ; [*07F1.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
-251E ; [*07F2.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
-251F ; [*07F3.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
-2520 ; [*07F4.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
-2521 ; [*07F5.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
-2522 ; [*07F6.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
-2523 ; [*07F7.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-2524 ; [*07F8.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND LEFT
-2525 ; [*07F9.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
-2526 ; [*07FA.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
-2527 ; [*07FB.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
-2528 ; [*07FC.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
-2529 ; [*07FD.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
-252A ; [*07FE.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
-252B ; [*07FF.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND LEFT
-252C ; [*0800.0020.0002] # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-252D ; [*0801.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
-252E ; [*0802.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
-252F ; [*0803.0020.0002] # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
-2530 ; [*0804.0020.0002] # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
-2531 ; [*0805.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
-2532 ; [*0806.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-2533 ; [*0807.0020.0002] # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-2534 ; [*0808.0020.0002] # BOX DRAWINGS LIGHT UP AND HORIZONTAL
-2535 ; [*0809.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-2536 ; [*080A.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-2537 ; [*080B.0020.0002] # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-2538 ; [*080C.0020.0002] # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-2539 ; [*080D.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-253A ; [*080E.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-253B ; [*080F.0020.0002] # BOX DRAWINGS HEAVY UP AND HORIZONTAL
-253C ; [*0810.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-253D ; [*0811.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-253E ; [*0812.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-253F ; [*0813.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-2540 ; [*0814.0020.0002] # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-2541 ; [*0815.0020.0002] # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-2542 ; [*0816.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-2543 ; [*0817.0020.0002] # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-2544 ; [*0818.0020.0002] # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-2545 ; [*0819.0020.0002] # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-2546 ; [*081A.0020.0002] # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-2547 ; [*081B.0020.0002] # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-2548 ; [*081C.0020.0002] # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-2549 ; [*081D.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-254A ; [*081E.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-254B ; [*081F.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-254C ; [*0820.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
-254D ; [*0821.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
-254E ; [*0822.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-254F ; [*0823.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-2550 ; [*0824.0020.0002] # BOX DRAWINGS DOUBLE HORIZONTAL
-2551 ; [*0825.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL
-2552 ; [*0826.0020.0002] # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-2553 ; [*0827.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-2554 ; [*0828.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND RIGHT
-2555 ; [*0829.0020.0002] # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-2556 ; [*082A.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-2557 ; [*082B.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND LEFT
-2558 ; [*082C.0020.0002] # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-2559 ; [*082D.0020.0002] # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-255A ; [*082E.0020.0002] # BOX DRAWINGS DOUBLE UP AND RIGHT
-255B ; [*082F.0020.0002] # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-255C ; [*0830.0020.0002] # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-255D ; [*0831.0020.0002] # BOX DRAWINGS DOUBLE UP AND LEFT
-255E ; [*0832.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-255F ; [*0833.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-2560 ; [*0834.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-2561 ; [*0835.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-2562 ; [*0836.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-2563 ; [*0837.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-2564 ; [*0838.0020.0002] # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-2565 ; [*0839.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-2566 ; [*083A.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-2567 ; [*083B.0020.0002] # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-2568 ; [*083C.0020.0002] # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-2569 ; [*083D.0020.0002] # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-256A ; [*083E.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-256B ; [*083F.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-256C ; [*0840.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-256D ; [*0841.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-256E ; [*0842.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-256F ; [*0843.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND LEFT
-2570 ; [*0844.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND RIGHT
-2571 ; [*0845.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-2572 ; [*0846.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-2573 ; [*0847.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL CROSS
-2574 ; [*0848.0020.0002] # BOX DRAWINGS LIGHT LEFT
-2575 ; [*0849.0020.0002] # BOX DRAWINGS LIGHT UP
-2576 ; [*084A.0020.0002] # BOX DRAWINGS LIGHT RIGHT
-2577 ; [*084B.0020.0002] # BOX DRAWINGS LIGHT DOWN
-2578 ; [*084C.0020.0002] # BOX DRAWINGS HEAVY LEFT
-2579 ; [*084D.0020.0002] # BOX DRAWINGS HEAVY UP
-257A ; [*084E.0020.0002] # BOX DRAWINGS HEAVY RIGHT
-257B ; [*084F.0020.0002] # BOX DRAWINGS HEAVY DOWN
-257C ; [*0850.0020.0002] # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
-257D ; [*0851.0020.0002] # BOX DRAWINGS LIGHT UP AND HEAVY DOWN
-257E ; [*0852.0020.0002] # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
-257F ; [*0853.0020.0002] # BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-2580 ; [*0854.0020.0002] # UPPER HALF BLOCK
-2581 ; [*0855.0020.0002] # LOWER ONE EIGHTH BLOCK
-2582 ; [*0856.0020.0002] # LOWER ONE QUARTER BLOCK
-2583 ; [*0857.0020.0002] # LOWER THREE EIGHTHS BLOCK
-2584 ; [*0858.0020.0002] # LOWER HALF BLOCK
-2585 ; [*0859.0020.0002] # LOWER FIVE EIGHTHS BLOCK
-2586 ; [*085A.0020.0002] # LOWER THREE QUARTERS BLOCK
-2587 ; [*085B.0020.0002] # LOWER SEVEN EIGHTHS BLOCK
-2588 ; [*085C.0020.0002] # FULL BLOCK
-2589 ; [*085D.0020.0002] # LEFT SEVEN EIGHTHS BLOCK
-258A ; [*085E.0020.0002] # LEFT THREE QUARTERS BLOCK
-258B ; [*085F.0020.0002] # LEFT FIVE EIGHTHS BLOCK
-258C ; [*0860.0020.0002] # LEFT HALF BLOCK
-258D ; [*0861.0020.0002] # LEFT THREE EIGHTHS BLOCK
-258E ; [*0862.0020.0002] # LEFT ONE QUARTER BLOCK
-258F ; [*0863.0020.0002] # LEFT ONE EIGHTH BLOCK
-2590 ; [*0864.0020.0002] # RIGHT HALF BLOCK
-2591 ; [*0865.0020.0002] # LIGHT SHADE
-2592 ; [*0866.0020.0002] # MEDIUM SHADE
-2593 ; [*0867.0020.0002] # DARK SHADE
-2594 ; [*0868.0020.0002] # UPPER ONE EIGHTH BLOCK
-2595 ; [*0869.0020.0002] # RIGHT ONE EIGHTH BLOCK
-2596 ; [*086A.0020.0002] # QUADRANT LOWER LEFT
-2597 ; [*086B.0020.0002] # QUADRANT LOWER RIGHT
-2598 ; [*086C.0020.0002] # QUADRANT UPPER LEFT
-2599 ; [*086D.0020.0002] # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
-259A ; [*086E.0020.0002] # QUADRANT UPPER LEFT AND LOWER RIGHT
-259B ; [*086F.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
-259C ; [*0870.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
-259D ; [*0871.0020.0002] # QUADRANT UPPER RIGHT
-259E ; [*0872.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT
-259F ; [*0873.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
-25A0 ; [*0874.0020.0002] # BLACK SQUARE
-25A1 ; [*0875.0020.0002] # WHITE SQUARE
-25A2 ; [*0876.0020.0002] # WHITE SQUARE WITH ROUNDED CORNERS
-25A3 ; [*0877.0020.0002] # WHITE SQUARE CONTAINING BLACK SMALL SQUARE
-25A4 ; [*0878.0020.0002] # SQUARE WITH HORIZONTAL FILL
-25A5 ; [*0879.0020.0002] # SQUARE WITH VERTICAL FILL
-25A6 ; [*087A.0020.0002] # SQUARE WITH ORTHOGONAL CROSSHATCH FILL
-25A7 ; [*087B.0020.0002] # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
-25A8 ; [*087C.0020.0002] # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
-25A9 ; [*087D.0020.0002] # SQUARE WITH DIAGONAL CROSSHATCH FILL
-25AA ; [*087E.0020.0002] # BLACK SMALL SQUARE
-25AB ; [*087F.0020.0002] # WHITE SMALL SQUARE
-25AC ; [*0880.0020.0002] # BLACK RECTANGLE
-25AD ; [*0881.0020.0002] # WHITE RECTANGLE
-25AE ; [*0882.0020.0002] # BLACK VERTICAL RECTANGLE
-25AF ; [*0883.0020.0002] # WHITE VERTICAL RECTANGLE
-25B0 ; [*0884.0020.0002] # BLACK PARALLELOGRAM
-25B1 ; [*0885.0020.0002] # WHITE PARALLELOGRAM
-25B2 ; [*0886.0020.0002] # BLACK UP-POINTING TRIANGLE
-25B3 ; [*0887.0020.0002] # WHITE UP-POINTING TRIANGLE
-25B4 ; [*0888.0020.0002] # BLACK UP-POINTING SMALL TRIANGLE
-25B5 ; [*0889.0020.0002] # WHITE UP-POINTING SMALL TRIANGLE
-25B6 ; [*088A.0020.0002] # BLACK RIGHT-POINTING TRIANGLE
-25B7 ; [*088B.0020.0002] # WHITE RIGHT-POINTING TRIANGLE
-25B8 ; [*088C.0020.0002] # BLACK RIGHT-POINTING SMALL TRIANGLE
-25B9 ; [*088D.0020.0002] # WHITE RIGHT-POINTING SMALL TRIANGLE
-25BA ; [*088E.0020.0002] # BLACK RIGHT-POINTING POINTER
-25BB ; [*088F.0020.0002] # WHITE RIGHT-POINTING POINTER
-25BC ; [*0890.0020.0002] # BLACK DOWN-POINTING TRIANGLE
-25BD ; [*0891.0020.0002] # WHITE DOWN-POINTING TRIANGLE
-25BE ; [*0892.0020.0002] # BLACK DOWN-POINTING SMALL TRIANGLE
-25BF ; [*0893.0020.0002] # WHITE DOWN-POINTING SMALL TRIANGLE
-25C0 ; [*0894.0020.0002] # BLACK LEFT-POINTING TRIANGLE
-25C1 ; [*0895.0020.0002] # WHITE LEFT-POINTING TRIANGLE
-25C2 ; [*0896.0020.0002] # BLACK LEFT-POINTING SMALL TRIANGLE
-25C3 ; [*0897.0020.0002] # WHITE LEFT-POINTING SMALL TRIANGLE
-25C4 ; [*0898.0020.0002] # BLACK LEFT-POINTING POINTER
-25C5 ; [*0899.0020.0002] # WHITE LEFT-POINTING POINTER
-25C6 ; [*089A.0020.0002] # BLACK DIAMOND
-25C7 ; [*089B.0020.0002] # WHITE DIAMOND
-25C8 ; [*089C.0020.0002] # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
-25C9 ; [*089D.0020.0002] # FISHEYE
-25CA ; [*089E.0020.0002] # LOZENGE
-25CB ; [*089F.0020.0002] # WHITE CIRCLE
-25CC ; [*08A0.0020.0002] # DOTTED CIRCLE
-25CD ; [*08A1.0020.0002] # CIRCLE WITH VERTICAL FILL
-25CE ; [*08A2.0020.0002] # BULLSEYE
-25CF ; [*08A3.0020.0002] # BLACK CIRCLE
-25D0 ; [*08A4.0020.0002] # CIRCLE WITH LEFT HALF BLACK
-25D1 ; [*08A5.0020.0002] # CIRCLE WITH RIGHT HALF BLACK
-25D2 ; [*08A6.0020.0002] # CIRCLE WITH LOWER HALF BLACK
-25D3 ; [*08A7.0020.0002] # CIRCLE WITH UPPER HALF BLACK
-25D4 ; [*08A8.0020.0002] # CIRCLE WITH UPPER RIGHT QUADRANT BLACK
-25D5 ; [*08A9.0020.0002] # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
-25D6 ; [*08AA.0020.0002] # LEFT HALF BLACK CIRCLE
-25D7 ; [*08AB.0020.0002] # RIGHT HALF BLACK CIRCLE
-25D8 ; [*08AC.0020.0002] # INVERSE BULLET
-25D9 ; [*08AD.0020.0002] # INVERSE WHITE CIRCLE
-25DA ; [*08AE.0020.0002] # UPPER HALF INVERSE WHITE CIRCLE
-25DB ; [*08AF.0020.0002] # LOWER HALF INVERSE WHITE CIRCLE
-25DC ; [*08B0.0020.0002] # UPPER LEFT QUADRANT CIRCULAR ARC
-25DD ; [*08B1.0020.0002] # UPPER RIGHT QUADRANT CIRCULAR ARC
-25DE ; [*08B2.0020.0002] # LOWER RIGHT QUADRANT CIRCULAR ARC
-25DF ; [*08B3.0020.0002] # LOWER LEFT QUADRANT CIRCULAR ARC
-25E0 ; [*08B4.0020.0002] # UPPER HALF CIRCLE
-25E1 ; [*08B5.0020.0002] # LOWER HALF CIRCLE
-25E2 ; [*08B6.0020.0002] # BLACK LOWER RIGHT TRIANGLE
-25E3 ; [*08B7.0020.0002] # BLACK LOWER LEFT TRIANGLE
-25E4 ; [*08B8.0020.0002] # BLACK UPPER LEFT TRIANGLE
-25E5 ; [*08B9.0020.0002] # BLACK UPPER RIGHT TRIANGLE
-25E6 ; [*08BA.0020.0002] # WHITE BULLET
-25E7 ; [*08BB.0020.0002] # SQUARE WITH LEFT HALF BLACK
-25E8 ; [*08BC.0020.0002] # SQUARE WITH RIGHT HALF BLACK
-25E9 ; [*08BD.0020.0002] # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
-25EA ; [*08BE.0020.0002] # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
-25EB ; [*08BF.0020.0002] # WHITE SQUARE WITH VERTICAL BISECTING LINE
-25EC ; [*08C0.0020.0002] # WHITE UP-POINTING TRIANGLE WITH DOT
-25ED ; [*08C1.0020.0002] # UP-POINTING TRIANGLE WITH LEFT HALF BLACK
-25EE ; [*08C2.0020.0002] # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
-25EF ; [*08C3.0020.0002] # LARGE CIRCLE
-25F0 ; [*08C4.0020.0002] # WHITE SQUARE WITH UPPER LEFT QUADRANT
-25F1 ; [*08C5.0020.0002] # WHITE SQUARE WITH LOWER LEFT QUADRANT
-25F2 ; [*08C6.0020.0002] # WHITE SQUARE WITH LOWER RIGHT QUADRANT
-25F3 ; [*08C7.0020.0002] # WHITE SQUARE WITH UPPER RIGHT QUADRANT
-25F4 ; [*08C8.0020.0002] # WHITE CIRCLE WITH UPPER LEFT QUADRANT
-25F5 ; [*08C9.0020.0002] # WHITE CIRCLE WITH LOWER LEFT QUADRANT
-25F6 ; [*08CA.0020.0002] # WHITE CIRCLE WITH LOWER RIGHT QUADRANT
-25F7 ; [*08CB.0020.0002] # WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8 ; [*08CC.0020.0002] # UPPER LEFT TRIANGLE
-25F9 ; [*08CD.0020.0002] # UPPER RIGHT TRIANGLE
-25FA ; [*08CE.0020.0002] # LOWER LEFT TRIANGLE
-25FB ; [*08CF.0020.0002] # WHITE MEDIUM SQUARE
-25FC ; [*08D0.0020.0002] # BLACK MEDIUM SQUARE
-25FD ; [*08D1.0020.0002] # WHITE MEDIUM SMALL SQUARE
-25FE ; [*08D2.0020.0002] # BLACK MEDIUM SMALL SQUARE
-25FF ; [*08D3.0020.0002] # LOWER RIGHT TRIANGLE
-2600 ; [*08D4.0020.0002] # BLACK SUN WITH RAYS
-2601 ; [*08D5.0020.0002] # CLOUD
-2602 ; [*08D6.0020.0002] # UMBRELLA
-2603 ; [*08D7.0020.0002] # SNOWMAN
-2604 ; [*08D8.0020.0002] # COMET
-2605 ; [*08D9.0020.0002] # BLACK STAR
-2606 ; [*08DA.0020.0002] # WHITE STAR
-2607 ; [*08DB.0020.0002] # LIGHTNING
-2608 ; [*08DC.0020.0002] # THUNDERSTORM
-2609 ; [*08DD.0020.0002] # SUN
-260A ; [*08DE.0020.0002] # ASCENDING NODE
-260B ; [*08DF.0020.0002] # DESCENDING NODE
-260C ; [*08E0.0020.0002] # CONJUNCTION
-260D ; [*08E1.0020.0002] # OPPOSITION
-260E ; [*08E2.0020.0002] # BLACK TELEPHONE
-260F ; [*08E3.0020.0002] # WHITE TELEPHONE
-2610 ; [*08E4.0020.0002] # BALLOT BOX
-2611 ; [*08E5.0020.0002] # BALLOT BOX WITH CHECK
-2612 ; [*08E6.0020.0002] # BALLOT BOX WITH X
-2613 ; [*08E7.0020.0002] # SALTIRE
-2614 ; [*08E8.0020.0002] # UMBRELLA WITH RAIN DROPS
-2615 ; [*08E9.0020.0002] # HOT BEVERAGE
-2616 ; [*08EA.0020.0002] # WHITE SHOGI PIECE
-2617 ; [*08EB.0020.0002] # BLACK SHOGI PIECE
-2618 ; [*08EC.0020.0002] # SHAMROCK
-2619 ; [*08ED.0020.0002] # REVERSED ROTATED FLORAL HEART BULLET
-261A ; [*08EE.0020.0002] # BLACK LEFT POINTING INDEX
-261B ; [*08EF.0020.0002] # BLACK RIGHT POINTING INDEX
-261C ; [*08F0.0020.0002] # WHITE LEFT POINTING INDEX
-261D ; [*08F1.0020.0002] # WHITE UP POINTING INDEX
-261E ; [*08F2.0020.0002] # WHITE RIGHT POINTING INDEX
-261F ; [*08F3.0020.0002] # WHITE DOWN POINTING INDEX
-2620 ; [*08F4.0020.0002] # SKULL AND CROSSBONES
-2621 ; [*08F5.0020.0002] # CAUTION SIGN
-2622 ; [*08F6.0020.0002] # RADIOACTIVE SIGN
-2623 ; [*08F7.0020.0002] # BIOHAZARD SIGN
-2624 ; [*08F8.0020.0002] # CADUCEUS
-2625 ; [*08F9.0020.0002] # ANKH
-2626 ; [*08FA.0020.0002] # ORTHODOX CROSS
-2627 ; [*08FB.0020.0002] # CHI RHO
-2628 ; [*08FC.0020.0002] # CROSS OF LORRAINE
-2629 ; [*08FD.0020.0002] # CROSS OF JERUSALEM
-262A ; [*08FE.0020.0002] # STAR AND CRESCENT
-262B ; [*08FF.0020.0002] # FARSI SYMBOL
-262C ; [*0900.0020.0002] # ADI SHAKTI
-262D ; [*0901.0020.0002] # HAMMER AND SICKLE
-262E ; [*0902.0020.0002] # PEACE SYMBOL
-262F ; [*0903.0020.0002] # YIN YANG
-2630 ; [*0E5A.0020.0002] # TRIGRAM FOR HEAVEN
-2631 ; [*0E5B.0020.0002] # TRIGRAM FOR LAKE
-2632 ; [*0E5C.0020.0002] # TRIGRAM FOR FIRE
-2633 ; [*0E5D.0020.0002] # TRIGRAM FOR THUNDER
-2634 ; [*0E5E.0020.0002] # TRIGRAM FOR WIND
-2635 ; [*0E5F.0020.0002] # TRIGRAM FOR WATER
-2636 ; [*0E60.0020.0002] # TRIGRAM FOR MOUNTAIN
-2637 ; [*0E61.0020.0002] # TRIGRAM FOR EARTH
-2638 ; [*0904.0020.0002] # WHEEL OF DHARMA
-2639 ; [*0905.0020.0002] # WHITE FROWNING FACE
-263A ; [*0906.0020.0002] # WHITE SMILING FACE
-263B ; [*0907.0020.0002] # BLACK SMILING FACE
-263C ; [*0908.0020.0002] # WHITE SUN WITH RAYS
-263D ; [*0909.0020.0002] # FIRST QUARTER MOON
-263E ; [*090A.0020.0002] # LAST QUARTER MOON
-263F ; [*090B.0020.0002] # MERCURY
-2640 ; [*090C.0020.0002] # FEMALE SIGN
-2641 ; [*090D.0020.0002] # EARTH
-2642 ; [*090E.0020.0002] # MALE SIGN
-2643 ; [*090F.0020.0002] # JUPITER
-2644 ; [*0910.0020.0002] # SATURN
-2645 ; [*0911.0020.0002] # URANUS
-2646 ; [*0912.0020.0002] # NEPTUNE
-2647 ; [*0913.0020.0002] # PLUTO
-2648 ; [*0914.0020.0002] # ARIES
-2649 ; [*0915.0020.0002] # TAURUS
-264A ; [*0916.0020.0002] # GEMINI
-264B ; [*0917.0020.0002] # CANCER
-264C ; [*0918.0020.0002] # LEO
-264D ; [*0919.0020.0002] # VIRGO
-264E ; [*091A.0020.0002] # LIBRA
-264F ; [*091B.0020.0002] # SCORPIUS
-2650 ; [*091C.0020.0002] # SAGITTARIUS
-2651 ; [*091D.0020.0002] # CAPRICORN
-2652 ; [*091E.0020.0002] # AQUARIUS
-2653 ; [*091F.0020.0002] # PISCES
-2654 ; [*0920.0020.0002] # WHITE CHESS KING
-2655 ; [*0921.0020.0002] # WHITE CHESS QUEEN
-2656 ; [*0922.0020.0002] # WHITE CHESS ROOK
-2657 ; [*0923.0020.0002] # WHITE CHESS BISHOP
-2658 ; [*0924.0020.0002] # WHITE CHESS KNIGHT
-2659 ; [*0925.0020.0002] # WHITE CHESS PAWN
-265A ; [*0926.0020.0002] # BLACK CHESS KING
-265B ; [*0927.0020.0002] # BLACK CHESS QUEEN
-265C ; [*0928.0020.0002] # BLACK CHESS ROOK
-265D ; [*0929.0020.0002] # BLACK CHESS BISHOP
-265E ; [*092A.0020.0002] # BLACK CHESS KNIGHT
-265F ; [*092B.0020.0002] # BLACK CHESS PAWN
-2660 ; [*092C.0020.0002] # BLACK SPADE SUIT
-2661 ; [*092D.0020.0002] # WHITE HEART SUIT
-2662 ; [*092E.0020.0002] # WHITE DIAMOND SUIT
-2663 ; [*092F.0020.0002] # BLACK CLUB SUIT
-2664 ; [*0930.0020.0002] # WHITE SPADE SUIT
-2665 ; [*0931.0020.0002] # BLACK HEART SUIT
-2666 ; [*0932.0020.0002] # BLACK DIAMOND SUIT
-2667 ; [*0933.0020.0002] # WHITE CLUB SUIT
-2668 ; [*0934.0020.0002] # HOT SPRINGS
-2669 ; [*0935.0020.0002] # QUARTER NOTE
-266A ; [*0936.0020.0002] # EIGHTH NOTE
-266B ; [*0937.0020.0002] # BEAMED EIGHTH NOTES
-266C ; [*0938.0020.0002] # BEAMED SIXTEENTH NOTES
-266D ; [*10A9.0020.0002] # MUSIC FLAT SIGN
-266E ; [*10AA.0020.0002] # MUSIC NATURAL SIGN
-266F ; [*10AB.0020.0002] # MUSIC SHARP SIGN
-2670 ; [*0939.0020.0002] # WEST SYRIAC CROSS
-2671 ; [*093A.0020.0002] # EAST SYRIAC CROSS
-2672 ; [*093B.0020.0002] # UNIVERSAL RECYCLING SYMBOL
-2673 ; [*093C.0020.0002] # RECYCLING SYMBOL FOR TYPE-1 PLASTICS
-2674 ; [*093D.0020.0002] # RECYCLING SYMBOL FOR TYPE-2 PLASTICS
-2675 ; [*093E.0020.0002] # RECYCLING SYMBOL FOR TYPE-3 PLASTICS
-2676 ; [*093F.0020.0002] # RECYCLING SYMBOL FOR TYPE-4 PLASTICS
-2677 ; [*0940.0020.0002] # RECYCLING SYMBOL FOR TYPE-5 PLASTICS
-2678 ; [*0941.0020.0002] # RECYCLING SYMBOL FOR TYPE-6 PLASTICS
-2679 ; [*0942.0020.0002] # RECYCLING SYMBOL FOR TYPE-7 PLASTICS
-267A ; [*0943.0020.0002] # RECYCLING SYMBOL FOR GENERIC MATERIALS
-267B ; [*0944.0020.0002] # BLACK UNIVERSAL RECYCLING SYMBOL
-267C ; [*0945.0020.0002] # RECYCLED PAPER SYMBOL
-267D ; [*0946.0020.0002] # PARTIALLY-RECYCLED PAPER SYMBOL
-267E ; [*0947.0020.0002] # PERMANENT PAPER SIGN
-267F ; [*0948.0020.0002] # WHEELCHAIR SYMBOL
-2680 ; [*0949.0020.0002] # DIE FACE-1
-2681 ; [*094A.0020.0002] # DIE FACE-2
-2682 ; [*094B.0020.0002] # DIE FACE-3
-2683 ; [*094C.0020.0002] # DIE FACE-4
-2684 ; [*094D.0020.0002] # DIE FACE-5
-2685 ; [*094E.0020.0002] # DIE FACE-6
-2686 ; [*094F.0020.0002] # WHITE CIRCLE WITH DOT RIGHT
-2687 ; [*0950.0020.0002] # WHITE CIRCLE WITH TWO DOTS
-2688 ; [*0951.0020.0002] # BLACK CIRCLE WITH WHITE DOT RIGHT
-2689 ; [*0952.0020.0002] # BLACK CIRCLE WITH TWO WHITE DOTS
-268A ; [*0E54.0020.0002] # MONOGRAM FOR YANG
-268B ; [*0E55.0020.0002] # MONOGRAM FOR YIN
-268C ; [*0E56.0020.0002] # DIGRAM FOR GREATER YANG
-268D ; [*0E57.0020.0002] # DIGRAM FOR LESSER YIN
-268E ; [*0E58.0020.0002] # DIGRAM FOR LESSER YANG
-268F ; [*0E59.0020.0002] # DIGRAM FOR GREATER YIN
-2690 ; [*0953.0020.0002] # WHITE FLAG
-2691 ; [*0954.0020.0002] # BLACK FLAG
-2692 ; [*0955.0020.0002] # HAMMER AND PICK
-2693 ; [*0956.0020.0002] # ANCHOR
-2694 ; [*0957.0020.0002] # CROSSED SWORDS
-2695 ; [*0958.0020.0002] # STAFF OF AESCULAPIUS
-2696 ; [*0959.0020.0002] # SCALES
-2697 ; [*095A.0020.0002] # ALEMBIC
-2698 ; [*095B.0020.0002] # FLOWER
-2699 ; [*095C.0020.0002] # GEAR
-269A ; [*095D.0020.0002] # STAFF OF HERMES
-269B ; [*095E.0020.0002] # ATOM SYMBOL
-269C ; [*095F.0020.0002] # FLEUR-DE-LIS
-269D ; [*0960.0020.0002] # OUTLINED WHITE STAR
-269E ; [*0961.0020.0002] # THREE LINES CONVERGING RIGHT
-269F ; [*0962.0020.0002] # THREE LINES CONVERGING LEFT
-26A0 ; [*0963.0020.0002] # WARNING SIGN
-26A1 ; [*0964.0020.0002] # HIGH VOLTAGE SIGN
-26A2 ; [*0965.0020.0002] # DOUBLED FEMALE SIGN
-26A3 ; [*0966.0020.0002] # DOUBLED MALE SIGN
-26A4 ; [*0967.0020.0002] # INTERLOCKED FEMALE AND MALE SIGN
-26A5 ; [*0968.0020.0002] # MALE AND FEMALE SIGN
-26A6 ; [*0969.0020.0002] # MALE WITH STROKE SIGN
-26A7 ; [*096A.0020.0002] # MALE WITH STROKE AND MALE AND FEMALE SIGN
-26A8 ; [*096B.0020.0002] # VERTICAL MALE WITH STROKE SIGN
-26A9 ; [*096C.0020.0002] # HORIZONTAL MALE WITH STROKE SIGN
-26AA ; [*096D.0020.0002] # MEDIUM WHITE CIRCLE
-26AB ; [*096E.0020.0002] # MEDIUM BLACK CIRCLE
-26AC ; [*096F.0020.0002] # MEDIUM SMALL WHITE CIRCLE
-26AD ; [*0970.0020.0002] # MARRIAGE SYMBOL
-26AE ; [*0971.0020.0002] # DIVORCE SYMBOL
-26AF ; [*0972.0020.0002] # UNMARRIED PARTNERSHIP SYMBOL
-26B0 ; [*0973.0020.0002] # COFFIN
-26B1 ; [*0974.0020.0002] # FUNERAL URN
-26B2 ; [*0975.0020.0002] # NEUTER
-26B3 ; [*0976.0020.0002] # CERES
-26B4 ; [*0977.0020.0002] # PALLAS
-26B5 ; [*0978.0020.0002] # JUNO
-26B6 ; [*0979.0020.0002] # VESTA
-26B7 ; [*097A.0020.0002] # CHIRON
-26B8 ; [*097B.0020.0002] # BLACK MOON LILITH
-26B9 ; [*097C.0020.0002] # SEXTILE
-26BA ; [*097D.0020.0002] # SEMISEXTILE
-26BB ; [*097E.0020.0002] # QUINCUNX
-26BC ; [*097F.0020.0002] # SESQUIQUADRATE
-26BD ; [*0980.0020.0002] # SOCCER BALL
-26BE ; [*0981.0020.0002] # BASEBALL
-26BF ; [*0982.0020.0002] # SQUARED KEY
-26C0 ; [*0983.0020.0002] # WHITE DRAUGHTS MAN
-26C1 ; [*0984.0020.0002] # WHITE DRAUGHTS KING
-26C2 ; [*0985.0020.0002] # BLACK DRAUGHTS MAN
-26C3 ; [*0986.0020.0002] # BLACK DRAUGHTS KING
-26C4 ; [*0987.0020.0002] # SNOWMAN WITHOUT SNOW
-26C5 ; [*0988.0020.0002] # SUN BEHIND CLOUD
-26C6 ; [*0989.0020.0002] # RAIN
-26C7 ; [*098A.0020.0002] # BLACK SNOWMAN
-26C8 ; [*098B.0020.0002] # THUNDER CLOUD AND RAIN
-26C9 ; [*098C.0020.0002] # TURNED WHITE SHOGI PIECE
-26CA ; [*098D.0020.0002] # TURNED BLACK SHOGI PIECE
-26CB ; [*098E.0020.0002] # WHITE DIAMOND IN SQUARE
-26CC ; [*098F.0020.0002] # CROSSING LANES
-26CD ; [*0990.0020.0002] # DISABLED CAR
-26CE ; [*0991.0020.0002] # OPHIUCHUS
-26CF ; [*0992.0020.0002] # PICK
-26D0 ; [*0993.0020.0002] # CAR SLIDING
-26D1 ; [*0994.0020.0002] # HELMET WITH WHITE CROSS
-26D2 ; [*0995.0020.0002] # CIRCLED CROSSING LANES
-26D3 ; [*0996.0020.0002] # CHAINS
-26D4 ; [*0997.0020.0002] # NO ENTRY
-26D5 ; [*0998.0020.0002] # ALTERNATE ONE-WAY LEFT WAY TRAFFIC
-26D6 ; [*0999.0020.0002] # BLACK TWO-WAY LEFT WAY TRAFFIC
-26D7 ; [*099A.0020.0002] # WHITE TWO-WAY LEFT WAY TRAFFIC
-26D8 ; [*099B.0020.0002] # BLACK LEFT LANE MERGE
-26D9 ; [*099C.0020.0002] # WHITE LEFT LANE MERGE
-26DA ; [*099D.0020.0002] # DRIVE SLOW SIGN
-26DB ; [*099E.0020.0002] # HEAVY WHITE DOWN-POINTING TRIANGLE
-26DC ; [*099F.0020.0002] # LEFT CLOSED ENTRY
-26DD ; [*09A0.0020.0002] # SQUARED SALTIRE
-26DE ; [*09A1.0020.0002] # FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
-26DF ; [*09A2.0020.0002] # BLACK TRUCK
-26E0 ; [*09A3.0020.0002] # RESTRICTED LEFT ENTRY-1
-26E1 ; [*09A4.0020.0002] # RESTRICTED LEFT ENTRY-2
-26E2 ; [*09A5.0020.0002] # ASTRONOMICAL SYMBOL FOR URANUS
-26E3 ; [*09A6.0020.0002] # HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
-26E4 ; [*09A7.0020.0002] # PENTAGRAM
-26E5 ; [*09A8.0020.0002] # RIGHT-HANDED INTERLACED PENTAGRAM
-26E6 ; [*09A9.0020.0002] # LEFT-HANDED INTERLACED PENTAGRAM
-26E7 ; [*09AA.0020.0002] # INVERTED PENTAGRAM
-26E8 ; [*09AB.0020.0002] # BLACK CROSS ON SHIELD
-26E9 ; [*09AC.0020.0002] # SHINTO SHRINE
-26EA ; [*09AD.0020.0002] # CHURCH
-26EB ; [*09AE.0020.0002] # CASTLE
-26EC ; [*09AF.0020.0002] # HISTORIC SITE
-26ED ; [*09B0.0020.0002] # GEAR WITHOUT HUB
-26EE ; [*09B1.0020.0002] # GEAR WITH HANDLES
-26EF ; [*09B2.0020.0002] # MAP SYMBOL FOR LIGHTHOUSE
-26F0 ; [*09B3.0020.0002] # MOUNTAIN
-26F1 ; [*09B4.0020.0002] # UMBRELLA ON GROUND
-26F2 ; [*09B5.0020.0002] # FOUNTAIN
-26F3 ; [*09B6.0020.0002] # FLAG IN HOLE
-26F4 ; [*09B7.0020.0002] # FERRY
-26F5 ; [*09B8.0020.0002] # SAILBOAT
-26F6 ; [*09B9.0020.0002] # SQUARE FOUR CORNERS
-26F7 ; [*09BA.0020.0002] # SKIER
-26F8 ; [*09BB.0020.0002] # ICE SKATE
-26F9 ; [*09BC.0020.0002] # PERSON WITH BALL
-26FA ; [*09BD.0020.0002] # TENT
-26FB ; [*09BE.0020.0002] # JAPANESE BANK SYMBOL
-26FC ; [*09BF.0020.0002] # HEADSTONE GRAVEYARD SYMBOL
-26FD ; [*09C0.0020.0002] # FUEL PUMP
-26FE ; [*09C1.0020.0002] # CUP ON BLACK SQUARE
-26FF ; [*09C2.0020.0002] # WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2700 ; [*09DD.0020.0002] # BLACK SAFETY SCISSORS
-2701 ; [*09DE.0020.0002] # UPPER BLADE SCISSORS
-2702 ; [*09DF.0020.0002] # BLACK SCISSORS
-2703 ; [*09E0.0020.0002] # LOWER BLADE SCISSORS
-2704 ; [*09E1.0020.0002] # WHITE SCISSORS
-2705 ; [*09E2.0020.0002] # WHITE HEAVY CHECK MARK
-2706 ; [*09E3.0020.0002] # TELEPHONE LOCATION SIGN
-2707 ; [*09E4.0020.0002] # TAPE DRIVE
-2708 ; [*09E5.0020.0002] # AIRPLANE
-2709 ; [*09E6.0020.0002] # ENVELOPE
-270A ; [*09E7.0020.0002] # RAISED FIST
-270B ; [*09E8.0020.0002] # RAISED HAND
-270C ; [*09E9.0020.0002] # VICTORY HAND
-270D ; [*09EA.0020.0002] # WRITING HAND
-270E ; [*09EB.0020.0002] # LOWER RIGHT PENCIL
-270F ; [*09EC.0020.0002] # PENCIL
-2710 ; [*09ED.0020.0002] # UPPER RIGHT PENCIL
-2711 ; [*09EE.0020.0002] # WHITE NIB
-2712 ; [*09EF.0020.0002] # BLACK NIB
-2713 ; [*09F0.0020.0002] # CHECK MARK
-2714 ; [*09F1.0020.0002] # HEAVY CHECK MARK
-2715 ; [*09F2.0020.0002] # MULTIPLICATION X
-2716 ; [*09F3.0020.0002] # HEAVY MULTIPLICATION X
-2717 ; [*09F4.0020.0002] # BALLOT X
-2718 ; [*09F5.0020.0002] # HEAVY BALLOT X
-2719 ; [*09F6.0020.0002] # OUTLINED GREEK CROSS
-271A ; [*09F7.0020.0002] # HEAVY GREEK CROSS
-271B ; [*09F8.0020.0002] # OPEN CENTRE CROSS
-271C ; [*09F9.0020.0002] # HEAVY OPEN CENTRE CROSS
-271D ; [*09FA.0020.0002] # LATIN CROSS
-271E ; [*09FB.0020.0002] # SHADOWED WHITE LATIN CROSS
-271F ; [*09FC.0020.0002] # OUTLINED LATIN CROSS
-2720 ; [*09FD.0020.0002] # MALTESE CROSS
-2721 ; [*09FE.0020.0002] # STAR OF DAVID
-2722 ; [*09FF.0020.0002] # FOUR TEARDROP-SPOKED ASTERISK
-2723 ; [*0A00.0020.0002] # FOUR BALLOON-SPOKED ASTERISK
-2724 ; [*0A01.0020.0002] # HEAVY FOUR BALLOON-SPOKED ASTERISK
-2725 ; [*0A02.0020.0002] # FOUR CLUB-SPOKED ASTERISK
-2726 ; [*0A03.0020.0002] # BLACK FOUR POINTED STAR
-2727 ; [*0A04.0020.0002] # WHITE FOUR POINTED STAR
-2728 ; [*0A05.0020.0002] # SPARKLES
-2729 ; [*0A06.0020.0002] # STRESS OUTLINED WHITE STAR
-272A ; [*0A07.0020.0002] # CIRCLED WHITE STAR
-272B ; [*0A08.0020.0002] # OPEN CENTRE BLACK STAR
-272C ; [*0A09.0020.0002] # BLACK CENTRE WHITE STAR
-272D ; [*0A0A.0020.0002] # OUTLINED BLACK STAR
-272E ; [*0A0B.0020.0002] # HEAVY OUTLINED BLACK STAR
-272F ; [*0A0C.0020.0002] # PINWHEEL STAR
-2730 ; [*0A0D.0020.0002] # SHADOWED WHITE STAR
-2731 ; [*0A0E.0020.0002] # HEAVY ASTERISK
-2732 ; [*0A0F.0020.0002] # OPEN CENTRE ASTERISK
-2733 ; [*0A10.0020.0002] # EIGHT SPOKED ASTERISK
-2734 ; [*0A11.0020.0002] # EIGHT POINTED BLACK STAR
-2735 ; [*0A12.0020.0002] # EIGHT POINTED PINWHEEL STAR
-2736 ; [*0A13.0020.0002] # SIX POINTED BLACK STAR
-2737 ; [*0A14.0020.0002] # EIGHT POINTED RECTILINEAR BLACK STAR
-2738 ; [*0A15.0020.0002] # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
-2739 ; [*0A16.0020.0002] # TWELVE POINTED BLACK STAR
-273A ; [*0A17.0020.0002] # SIXTEEN POINTED ASTERISK
-273B ; [*0A18.0020.0002] # TEARDROP-SPOKED ASTERISK
-273C ; [*0A19.0020.0002] # OPEN CENTRE TEARDROP-SPOKED ASTERISK
-273D ; [*0A1A.0020.0002] # HEAVY TEARDROP-SPOKED ASTERISK
-273E ; [*0A1B.0020.0002] # SIX PETALLED BLACK AND WHITE FLORETTE
-273F ; [*0A1C.0020.0002] # BLACK FLORETTE
-2740 ; [*0A1D.0020.0002] # WHITE FLORETTE
-2741 ; [*0A1E.0020.0002] # EIGHT PETALLED OUTLINED BLACK FLORETTE
-2742 ; [*0A1F.0020.0002] # CIRCLED OPEN CENTRE EIGHT POINTED STAR
-2743 ; [*0A20.0020.0002] # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
-2744 ; [*0A21.0020.0002] # SNOWFLAKE
-2745 ; [*0A22.0020.0002] # TIGHT TRIFOLIATE SNOWFLAKE
-2746 ; [*0A23.0020.0002] # HEAVY CHEVRON SNOWFLAKE
-2747 ; [*0A24.0020.0002] # SPARKLE
-2748 ; [*0A25.0020.0002] # HEAVY SPARKLE
-2749 ; [*0A26.0020.0002] # BALLOON-SPOKED ASTERISK
-274A ; [*0A27.0020.0002] # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274B ; [*0A28.0020.0002] # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274C ; [*0A29.0020.0002] # CROSS MARK
-274D ; [*0A2A.0020.0002] # SHADOWED WHITE CIRCLE
-274E ; [*0A2B.0020.0002] # NEGATIVE SQUARED CROSS MARK
-274F ; [*0A2C.0020.0002] # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
-2750 ; [*0A2D.0020.0002] # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
-2751 ; [*0A2E.0020.0002] # LOWER RIGHT SHADOWED WHITE SQUARE
-2752 ; [*0A2F.0020.0002] # UPPER RIGHT SHADOWED WHITE SQUARE
-2753 ; [*0A30.0020.0002] # BLACK QUESTION MARK ORNAMENT
-2754 ; [*0A31.0020.0002] # WHITE QUESTION MARK ORNAMENT
-2755 ; [*0A32.0020.0002] # WHITE EXCLAMATION MARK ORNAMENT
-2756 ; [*0A33.0020.0002] # BLACK DIAMOND MINUS WHITE X
-2757 ; [*0A34.0020.0002] # HEAVY EXCLAMATION MARK SYMBOL
-2758 ; [*0A35.0020.0002] # LIGHT VERTICAL BAR
-2759 ; [*0A36.0020.0002] # MEDIUM VERTICAL BAR
-275A ; [*0A37.0020.0002] # HEAVY VERTICAL BAR
-275B ; [*0A38.0020.0002] # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
-275C ; [*0A39.0020.0002] # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
-275D ; [*0A3A.0020.0002] # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-275E ; [*0A3B.0020.0002] # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-275F ; [*0A3C.0020.0002] # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
-2760 ; [*0A3D.0020.0002] # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761 ; [*0A3E.0020.0002] # CURVED STEM PARAGRAPH SIGN ORNAMENT
-2762 ; [*0A3F.0020.0002] # HEAVY EXCLAMATION MARK ORNAMENT
-2763 ; [*0A40.0020.0002] # HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764 ; [*0A41.0020.0002] # HEAVY BLACK HEART
-2765 ; [*0A42.0020.0002] # ROTATED HEAVY BLACK HEART BULLET
-2766 ; [*0A43.0020.0002] # FLORAL HEART
-2767 ; [*0A44.0020.0002] # ROTATED FLORAL HEART BULLET
-2768 ; [*0340.0020.0002] # MEDIUM LEFT PARENTHESIS ORNAMENT
-2769 ; [*0341.0020.0002] # MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A ; [*0342.0020.0002] # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B ; [*0343.0020.0002] # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C ; [*0344.0020.0002] # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D ; [*0345.0020.0002] # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E ; [*0346.0020.0002] # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F ; [*0347.0020.0002] # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770 ; [*0348.0020.0002] # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771 ; [*0349.0020.0002] # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772 ; [*034A.0020.0002] # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773 ; [*034B.0020.0002] # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774 ; [*034C.0020.0002] # MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775 ; [*034D.0020.0002] # MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2794 ; [*0A45.0020.0002] # HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2795 ; [*0A46.0020.0002] # HEAVY PLUS SIGN
-2796 ; [*0A47.0020.0002] # HEAVY MINUS SIGN
-2797 ; [*0A48.0020.0002] # HEAVY DIVISION SIGN
-2798 ; [*0A49.0020.0002] # HEAVY SOUTH EAST ARROW
-2799 ; [*0A4A.0020.0002] # HEAVY RIGHTWARDS ARROW
-279A ; [*0A4B.0020.0002] # HEAVY NORTH EAST ARROW
-279B ; [*0A4C.0020.0002] # DRAFTING POINT RIGHTWARDS ARROW
-279C ; [*0A4D.0020.0002] # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
-279D ; [*0A4E.0020.0002] # TRIANGLE-HEADED RIGHTWARDS ARROW
-279E ; [*0A4F.0020.0002] # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
-279F ; [*0A50.0020.0002] # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A0 ; [*0A51.0020.0002] # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A1 ; [*0A52.0020.0002] # BLACK RIGHTWARDS ARROW
-27A2 ; [*0A53.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
-27A3 ; [*0A54.0020.0002] # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
-27A4 ; [*0A55.0020.0002] # BLACK RIGHTWARDS ARROWHEAD
-27A5 ; [*0A56.0020.0002] # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-27A6 ; [*0A57.0020.0002] # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-27A7 ; [*0A58.0020.0002] # SQUAT BLACK RIGHTWARDS ARROW
-27A8 ; [*0A59.0020.0002] # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
-27A9 ; [*0A5A.0020.0002] # RIGHT-SHADED WHITE RIGHTWARDS ARROW
-27AA ; [*0A5B.0020.0002] # LEFT-SHADED WHITE RIGHTWARDS ARROW
-27AB ; [*0A5C.0020.0002] # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AC ; [*0A5D.0020.0002] # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AD ; [*0A5E.0020.0002] # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AE ; [*0A5F.0020.0002] # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AF ; [*0A60.0020.0002] # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0 ; [*0A61.0020.0002] # CURLY LOOP
-27B1 ; [*0A62.0020.0002] # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B2 ; [*0A63.0020.0002] # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
-27B3 ; [*0A64.0020.0002] # WHITE-FEATHERED RIGHTWARDS ARROW
-27B4 ; [*0A65.0020.0002] # BLACK-FEATHERED SOUTH EAST ARROW
-27B5 ; [*0A66.0020.0002] # BLACK-FEATHERED RIGHTWARDS ARROW
-27B6 ; [*0A67.0020.0002] # BLACK-FEATHERED NORTH EAST ARROW
-27B7 ; [*0A68.0020.0002] # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
-27B8 ; [*0A69.0020.0002] # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
-27B9 ; [*0A6A.0020.0002] # HEAVY BLACK-FEATHERED NORTH EAST ARROW
-27BA ; [*0A6B.0020.0002] # TEARDROP-BARBED RIGHTWARDS ARROW
-27BB ; [*0A6C.0020.0002] # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
-27BC ; [*0A6D.0020.0002] # WEDGE-TAILED RIGHTWARDS ARROW
-27BD ; [*0A6E.0020.0002] # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
-27BE ; [*0A6F.0020.0002] # OPEN-OUTLINED RIGHTWARDS ARROW
-27BF ; [*0A70.0020.0002] # DOUBLE CURLY LOOP
-27C0 ; [*0A71.0020.0002] # THREE DIMENSIONAL ANGLE
-27C1 ; [*0A72.0020.0002] # WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
-27C2 ; [*0A73.0020.0002] # PERPENDICULAR
-27C3 ; [*0A74.0020.0002] # OPEN SUBSET
-27C4 ; [*0A75.0020.0002] # OPEN SUPERSET
-27C5 ; [*0334.0020.0002] # LEFT S-SHAPED BAG DELIMITER
-27C6 ; [*0335.0020.0002] # RIGHT S-SHAPED BAG DELIMITER
-27C7 ; [*0A76.0020.0002] # OR WITH DOT INSIDE
-27C8 ; [*0A77.0020.0002] # REVERSE SOLIDUS PRECEDING SUBSET
-27C9 ; [*0A78.0020.0002] # SUPERSET PRECEDING SOLIDUS
-27CA ; [*0A79.0020.0002] # VERTICAL BAR WITH HORIZONTAL STROKE
-27CB ; [*0A7A.0020.0002] # MATHEMATICAL RISING DIAGONAL
-27CC ; [*0A7B.0020.0002] # LONG DIVISION
-27CD ; [*0A7C.0020.0002] # MATHEMATICAL FALLING DIAGONAL
-27CE ; [*0A7D.0020.0002] # SQUARED LOGICAL AND
-27CF ; [*0A7E.0020.0002] # SQUARED LOGICAL OR
-27D0 ; [*0A7F.0020.0002] # WHITE DIAMOND WITH CENTRED DOT
-27D1 ; [*0A80.0020.0002] # AND WITH DOT
-27D2 ; [*0A81.0020.0002] # ELEMENT OF OPENING UPWARDS
-27D3 ; [*0A82.0020.0002] # LOWER RIGHT CORNER WITH DOT
-27D4 ; [*0A83.0020.0002] # UPPER LEFT CORNER WITH DOT
-27D5 ; [*0A84.0020.0002] # LEFT OUTER JOIN
-27D6 ; [*0A85.0020.0002] # RIGHT OUTER JOIN
-27D7 ; [*0A86.0020.0002] # FULL OUTER JOIN
-27D8 ; [*0A87.0020.0002] # LARGE UP TACK
-27D9 ; [*0A88.0020.0002] # LARGE DOWN TACK
-27DA ; [*0A89.0020.0002] # LEFT AND RIGHT DOUBLE TURNSTILE
-27DB ; [*0A8A.0020.0002] # LEFT AND RIGHT TACK
-27DC ; [*0A8B.0020.0002] # LEFT MULTIMAP
-27DD ; [*0A8C.0020.0002] # LONG RIGHT TACK
-27DE ; [*0A8D.0020.0002] # LONG LEFT TACK
-27DF ; [*0A8E.0020.0002] # UP TACK WITH CIRCLE ABOVE
-27E0 ; [*0A8F.0020.0002] # LOZENGE DIVIDED BY HORIZONTAL RULE
-27E1 ; [*0A90.0020.0002] # WHITE CONCAVE-SIDED DIAMOND
-27E2 ; [*0A91.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
-27E3 ; [*0A92.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
-27E4 ; [*0A93.0020.0002] # WHITE SQUARE WITH LEFTWARDS TICK
-27E5 ; [*0A94.0020.0002] # WHITE SQUARE WITH RIGHTWARDS TICK
-27E6 ; [*0336.0020.0002] # MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7 ; [*0337.0020.0002] # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8 ; [*0338.0020.0002] # MATHEMATICAL LEFT ANGLE BRACKET
-27E9 ; [*0339.0020.0002] # MATHEMATICAL RIGHT ANGLE BRACKET
-27EA ; [*033A.0020.0002] # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB ; [*033B.0020.0002] # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27EC ; [*033C.0020.0002] # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
-27ED ; [*033D.0020.0002] # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
-27EE ; [*033E.0020.0002] # MATHEMATICAL LEFT FLATTENED PARENTHESIS
-27EF ; [*033F.0020.0002] # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
-27F0 ; [*0A95.0020.0002] # UPWARDS QUADRUPLE ARROW
-27F1 ; [*0A96.0020.0002] # DOWNWARDS QUADRUPLE ARROW
-27F2 ; [*0A97.0020.0002] # ANTICLOCKWISE GAPPED CIRCLE ARROW
-27F3 ; [*0A98.0020.0002] # CLOCKWISE GAPPED CIRCLE ARROW
-27F4 ; [*0A99.0020.0002] # RIGHT ARROW WITH CIRCLED PLUS
-27F5 ; [*0A9A.0020.0002] # LONG LEFTWARDS ARROW
-27F6 ; [*0A9B.0020.0002] # LONG RIGHTWARDS ARROW
-27F7 ; [*0A9C.0020.0002] # LONG LEFT RIGHT ARROW
-27F8 ; [*0A9D.0020.0002] # LONG LEFTWARDS DOUBLE ARROW
-27F9 ; [*0A9E.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW
-27FA ; [*0A9F.0020.0002] # LONG LEFT RIGHT DOUBLE ARROW
-27FB ; [*0AA0.0020.0002] # LONG LEFTWARDS ARROW FROM BAR
-27FC ; [*0AA1.0020.0002] # LONG RIGHTWARDS ARROW FROM BAR
-27FD ; [*0AA2.0020.0002] # LONG LEFTWARDS DOUBLE ARROW FROM BAR
-27FE ; [*0AA3.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW FROM BAR
-27FF ; [*0AA4.0020.0002] # LONG RIGHTWARDS SQUIGGLE ARROW
-2800 ; [*0D54.0020.0002] # BRAILLE PATTERN BLANK
-2801 ; [*0D55.0020.0002] # BRAILLE PATTERN DOTS-1
-2802 ; [*0D56.0020.0002] # BRAILLE PATTERN DOTS-2
-2803 ; [*0D57.0020.0002] # BRAILLE PATTERN DOTS-12
-2804 ; [*0D58.0020.0002] # BRAILLE PATTERN DOTS-3
-2805 ; [*0D59.0020.0002] # BRAILLE PATTERN DOTS-13
-2806 ; [*0D5A.0020.0002] # BRAILLE PATTERN DOTS-23
-2807 ; [*0D5B.0020.0002] # BRAILLE PATTERN DOTS-123
-2808 ; [*0D5C.0020.0002] # BRAILLE PATTERN DOTS-4
-2809 ; [*0D5D.0020.0002] # BRAILLE PATTERN DOTS-14
-280A ; [*0D5E.0020.0002] # BRAILLE PATTERN DOTS-24
-280B ; [*0D5F.0020.0002] # BRAILLE PATTERN DOTS-124
-280C ; [*0D60.0020.0002] # BRAILLE PATTERN DOTS-34
-280D ; [*0D61.0020.0002] # BRAILLE PATTERN DOTS-134
-280E ; [*0D62.0020.0002] # BRAILLE PATTERN DOTS-234
-280F ; [*0D63.0020.0002] # BRAILLE PATTERN DOTS-1234
-2810 ; [*0D64.0020.0002] # BRAILLE PATTERN DOTS-5
-2811 ; [*0D65.0020.0002] # BRAILLE PATTERN DOTS-15
-2812 ; [*0D66.0020.0002] # BRAILLE PATTERN DOTS-25
-2813 ; [*0D67.0020.0002] # BRAILLE PATTERN DOTS-125
-2814 ; [*0D68.0020.0002] # BRAILLE PATTERN DOTS-35
-2815 ; [*0D69.0020.0002] # BRAILLE PATTERN DOTS-135
-2816 ; [*0D6A.0020.0002] # BRAILLE PATTERN DOTS-235
-2817 ; [*0D6B.0020.0002] # BRAILLE PATTERN DOTS-1235
-2818 ; [*0D6C.0020.0002] # BRAILLE PATTERN DOTS-45
-2819 ; [*0D6D.0020.0002] # BRAILLE PATTERN DOTS-145
-281A ; [*0D6E.0020.0002] # BRAILLE PATTERN DOTS-245
-281B ; [*0D6F.0020.0002] # BRAILLE PATTERN DOTS-1245
-281C ; [*0D70.0020.0002] # BRAILLE PATTERN DOTS-345
-281D ; [*0D71.0020.0002] # BRAILLE PATTERN DOTS-1345
-281E ; [*0D72.0020.0002] # BRAILLE PATTERN DOTS-2345
-281F ; [*0D73.0020.0002] # BRAILLE PATTERN DOTS-12345
-2820 ; [*0D74.0020.0002] # BRAILLE PATTERN DOTS-6
-2821 ; [*0D75.0020.0002] # BRAILLE PATTERN DOTS-16
-2822 ; [*0D76.0020.0002] # BRAILLE PATTERN DOTS-26
-2823 ; [*0D77.0020.0002] # BRAILLE PATTERN DOTS-126
-2824 ; [*0D78.0020.0002] # BRAILLE PATTERN DOTS-36
-2825 ; [*0D79.0020.0002] # BRAILLE PATTERN DOTS-136
-2826 ; [*0D7A.0020.0002] # BRAILLE PATTERN DOTS-236
-2827 ; [*0D7B.0020.0002] # BRAILLE PATTERN DOTS-1236
-2828 ; [*0D7C.0020.0002] # BRAILLE PATTERN DOTS-46
-2829 ; [*0D7D.0020.0002] # BRAILLE PATTERN DOTS-146
-282A ; [*0D7E.0020.0002] # BRAILLE PATTERN DOTS-246
-282B ; [*0D7F.0020.0002] # BRAILLE PATTERN DOTS-1246
-282C ; [*0D80.0020.0002] # BRAILLE PATTERN DOTS-346
-282D ; [*0D81.0020.0002] # BRAILLE PATTERN DOTS-1346
-282E ; [*0D82.0020.0002] # BRAILLE PATTERN DOTS-2346
-282F ; [*0D83.0020.0002] # BRAILLE PATTERN DOTS-12346
-2830 ; [*0D84.0020.0002] # BRAILLE PATTERN DOTS-56
-2831 ; [*0D85.0020.0002] # BRAILLE PATTERN DOTS-156
-2832 ; [*0D86.0020.0002] # BRAILLE PATTERN DOTS-256
-2833 ; [*0D87.0020.0002] # BRAILLE PATTERN DOTS-1256
-2834 ; [*0D88.0020.0002] # BRAILLE PATTERN DOTS-356
-2835 ; [*0D89.0020.0002] # BRAILLE PATTERN DOTS-1356
-2836 ; [*0D8A.0020.0002] # BRAILLE PATTERN DOTS-2356
-2837 ; [*0D8B.0020.0002] # BRAILLE PATTERN DOTS-12356
-2838 ; [*0D8C.0020.0002] # BRAILLE PATTERN DOTS-456
-2839 ; [*0D8D.0020.0002] # BRAILLE PATTERN DOTS-1456
-283A ; [*0D8E.0020.0002] # BRAILLE PATTERN DOTS-2456
-283B ; [*0D8F.0020.0002] # BRAILLE PATTERN DOTS-12456
-283C ; [*0D90.0020.0002] # BRAILLE PATTERN DOTS-3456
-283D ; [*0D91.0020.0002] # BRAILLE PATTERN DOTS-13456
-283E ; [*0D92.0020.0002] # BRAILLE PATTERN DOTS-23456
-283F ; [*0D93.0020.0002] # BRAILLE PATTERN DOTS-123456
-2840 ; [*0D94.0020.0002] # BRAILLE PATTERN DOTS-7
-2841 ; [*0D95.0020.0002] # BRAILLE PATTERN DOTS-17
-2842 ; [*0D96.0020.0002] # BRAILLE PATTERN DOTS-27
-2843 ; [*0D97.0020.0002] # BRAILLE PATTERN DOTS-127
-2844 ; [*0D98.0020.0002] # BRAILLE PATTERN DOTS-37
-2845 ; [*0D99.0020.0002] # BRAILLE PATTERN DOTS-137
-2846 ; [*0D9A.0020.0002] # BRAILLE PATTERN DOTS-237
-2847 ; [*0D9B.0020.0002] # BRAILLE PATTERN DOTS-1237
-2848 ; [*0D9C.0020.0002] # BRAILLE PATTERN DOTS-47
-2849 ; [*0D9D.0020.0002] # BRAILLE PATTERN DOTS-147
-284A ; [*0D9E.0020.0002] # BRAILLE PATTERN DOTS-247
-284B ; [*0D9F.0020.0002] # BRAILLE PATTERN DOTS-1247
-284C ; [*0DA0.0020.0002] # BRAILLE PATTERN DOTS-347
-284D ; [*0DA1.0020.0002] # BRAILLE PATTERN DOTS-1347
-284E ; [*0DA2.0020.0002] # BRAILLE PATTERN DOTS-2347
-284F ; [*0DA3.0020.0002] # BRAILLE PATTERN DOTS-12347
-2850 ; [*0DA4.0020.0002] # BRAILLE PATTERN DOTS-57
-2851 ; [*0DA5.0020.0002] # BRAILLE PATTERN DOTS-157
-2852 ; [*0DA6.0020.0002] # BRAILLE PATTERN DOTS-257
-2853 ; [*0DA7.0020.0002] # BRAILLE PATTERN DOTS-1257
-2854 ; [*0DA8.0020.0002] # BRAILLE PATTERN DOTS-357
-2855 ; [*0DA9.0020.0002] # BRAILLE PATTERN DOTS-1357
-2856 ; [*0DAA.0020.0002] # BRAILLE PATTERN DOTS-2357
-2857 ; [*0DAB.0020.0002] # BRAILLE PATTERN DOTS-12357
-2858 ; [*0DAC.0020.0002] # BRAILLE PATTERN DOTS-457
-2859 ; [*0DAD.0020.0002] # BRAILLE PATTERN DOTS-1457
-285A ; [*0DAE.0020.0002] # BRAILLE PATTERN DOTS-2457
-285B ; [*0DAF.0020.0002] # BRAILLE PATTERN DOTS-12457
-285C ; [*0DB0.0020.0002] # BRAILLE PATTERN DOTS-3457
-285D ; [*0DB1.0020.0002] # BRAILLE PATTERN DOTS-13457
-285E ; [*0DB2.0020.0002] # BRAILLE PATTERN DOTS-23457
-285F ; [*0DB3.0020.0002] # BRAILLE PATTERN DOTS-123457
-2860 ; [*0DB4.0020.0002] # BRAILLE PATTERN DOTS-67
-2861 ; [*0DB5.0020.0002] # BRAILLE PATTERN DOTS-167
-2862 ; [*0DB6.0020.0002] # BRAILLE PATTERN DOTS-267
-2863 ; [*0DB7.0020.0002] # BRAILLE PATTERN DOTS-1267
-2864 ; [*0DB8.0020.0002] # BRAILLE PATTERN DOTS-367
-2865 ; [*0DB9.0020.0002] # BRAILLE PATTERN DOTS-1367
-2866 ; [*0DBA.0020.0002] # BRAILLE PATTERN DOTS-2367
-2867 ; [*0DBB.0020.0002] # BRAILLE PATTERN DOTS-12367
-2868 ; [*0DBC.0020.0002] # BRAILLE PATTERN DOTS-467
-2869 ; [*0DBD.0020.0002] # BRAILLE PATTERN DOTS-1467
-286A ; [*0DBE.0020.0002] # BRAILLE PATTERN DOTS-2467
-286B ; [*0DBF.0020.0002] # BRAILLE PATTERN DOTS-12467
-286C ; [*0DC0.0020.0002] # BRAILLE PATTERN DOTS-3467
-286D ; [*0DC1.0020.0002] # BRAILLE PATTERN DOTS-13467
-286E ; [*0DC2.0020.0002] # BRAILLE PATTERN DOTS-23467
-286F ; [*0DC3.0020.0002] # BRAILLE PATTERN DOTS-123467
-2870 ; [*0DC4.0020.0002] # BRAILLE PATTERN DOTS-567
-2871 ; [*0DC5.0020.0002] # BRAILLE PATTERN DOTS-1567
-2872 ; [*0DC6.0020.0002] # BRAILLE PATTERN DOTS-2567
-2873 ; [*0DC7.0020.0002] # BRAILLE PATTERN DOTS-12567
-2874 ; [*0DC8.0020.0002] # BRAILLE PATTERN DOTS-3567
-2875 ; [*0DC9.0020.0002] # BRAILLE PATTERN DOTS-13567
-2876 ; [*0DCA.0020.0002] # BRAILLE PATTERN DOTS-23567
-2877 ; [*0DCB.0020.0002] # BRAILLE PATTERN DOTS-123567
-2878 ; [*0DCC.0020.0002] # BRAILLE PATTERN DOTS-4567
-2879 ; [*0DCD.0020.0002] # BRAILLE PATTERN DOTS-14567
-287A ; [*0DCE.0020.0002] # BRAILLE PATTERN DOTS-24567
-287B ; [*0DCF.0020.0002] # BRAILLE PATTERN DOTS-124567
-287C ; [*0DD0.0020.0002] # BRAILLE PATTERN DOTS-34567
-287D ; [*0DD1.0020.0002] # BRAILLE PATTERN DOTS-134567
-287E ; [*0DD2.0020.0002] # BRAILLE PATTERN DOTS-234567
-287F ; [*0DD3.0020.0002] # BRAILLE PATTERN DOTS-1234567
-2880 ; [*0DD4.0020.0002] # BRAILLE PATTERN DOTS-8
-2881 ; [*0DD5.0020.0002] # BRAILLE PATTERN DOTS-18
-2882 ; [*0DD6.0020.0002] # BRAILLE PATTERN DOTS-28
-2883 ; [*0DD7.0020.0002] # BRAILLE PATTERN DOTS-128
-2884 ; [*0DD8.0020.0002] # BRAILLE PATTERN DOTS-38
-2885 ; [*0DD9.0020.0002] # BRAILLE PATTERN DOTS-138
-2886 ; [*0DDA.0020.0002] # BRAILLE PATTERN DOTS-238
-2887 ; [*0DDB.0020.0002] # BRAILLE PATTERN DOTS-1238
-2888 ; [*0DDC.0020.0002] # BRAILLE PATTERN DOTS-48
-2889 ; [*0DDD.0020.0002] # BRAILLE PATTERN DOTS-148
-288A ; [*0DDE.0020.0002] # BRAILLE PATTERN DOTS-248
-288B ; [*0DDF.0020.0002] # BRAILLE PATTERN DOTS-1248
-288C ; [*0DE0.0020.0002] # BRAILLE PATTERN DOTS-348
-288D ; [*0DE1.0020.0002] # BRAILLE PATTERN DOTS-1348
-288E ; [*0DE2.0020.0002] # BRAILLE PATTERN DOTS-2348
-288F ; [*0DE3.0020.0002] # BRAILLE PATTERN DOTS-12348
-2890 ; [*0DE4.0020.0002] # BRAILLE PATTERN DOTS-58
-2891 ; [*0DE5.0020.0002] # BRAILLE PATTERN DOTS-158
-2892 ; [*0DE6.0020.0002] # BRAILLE PATTERN DOTS-258
-2893 ; [*0DE7.0020.0002] # BRAILLE PATTERN DOTS-1258
-2894 ; [*0DE8.0020.0002] # BRAILLE PATTERN DOTS-358
-2895 ; [*0DE9.0020.0002] # BRAILLE PATTERN DOTS-1358
-2896 ; [*0DEA.0020.0002] # BRAILLE PATTERN DOTS-2358
-2897 ; [*0DEB.0020.0002] # BRAILLE PATTERN DOTS-12358
-2898 ; [*0DEC.0020.0002] # BRAILLE PATTERN DOTS-458
-2899 ; [*0DED.0020.0002] # BRAILLE PATTERN DOTS-1458
-289A ; [*0DEE.0020.0002] # BRAILLE PATTERN DOTS-2458
-289B ; [*0DEF.0020.0002] # BRAILLE PATTERN DOTS-12458
-289C ; [*0DF0.0020.0002] # BRAILLE PATTERN DOTS-3458
-289D ; [*0DF1.0020.0002] # BRAILLE PATTERN DOTS-13458
-289E ; [*0DF2.0020.0002] # BRAILLE PATTERN DOTS-23458
-289F ; [*0DF3.0020.0002] # BRAILLE PATTERN DOTS-123458
-28A0 ; [*0DF4.0020.0002] # BRAILLE PATTERN DOTS-68
-28A1 ; [*0DF5.0020.0002] # BRAILLE PATTERN DOTS-168
-28A2 ; [*0DF6.0020.0002] # BRAILLE PATTERN DOTS-268
-28A3 ; [*0DF7.0020.0002] # BRAILLE PATTERN DOTS-1268
-28A4 ; [*0DF8.0020.0002] # BRAILLE PATTERN DOTS-368
-28A5 ; [*0DF9.0020.0002] # BRAILLE PATTERN DOTS-1368
-28A6 ; [*0DFA.0020.0002] # BRAILLE PATTERN DOTS-2368
-28A7 ; [*0DFB.0020.0002] # BRAILLE PATTERN DOTS-12368
-28A8 ; [*0DFC.0020.0002] # BRAILLE PATTERN DOTS-468
-28A9 ; [*0DFD.0020.0002] # BRAILLE PATTERN DOTS-1468
-28AA ; [*0DFE.0020.0002] # BRAILLE PATTERN DOTS-2468
-28AB ; [*0DFF.0020.0002] # BRAILLE PATTERN DOTS-12468
-28AC ; [*0E00.0020.0002] # BRAILLE PATTERN DOTS-3468
-28AD ; [*0E01.0020.0002] # BRAILLE PATTERN DOTS-13468
-28AE ; [*0E02.0020.0002] # BRAILLE PATTERN DOTS-23468
-28AF ; [*0E03.0020.0002] # BRAILLE PATTERN DOTS-123468
-28B0 ; [*0E04.0020.0002] # BRAILLE PATTERN DOTS-568
-28B1 ; [*0E05.0020.0002] # BRAILLE PATTERN DOTS-1568
-28B2 ; [*0E06.0020.0002] # BRAILLE PATTERN DOTS-2568
-28B3 ; [*0E07.0020.0002] # BRAILLE PATTERN DOTS-12568
-28B4 ; [*0E08.0020.0002] # BRAILLE PATTERN DOTS-3568
-28B5 ; [*0E09.0020.0002] # BRAILLE PATTERN DOTS-13568
-28B6 ; [*0E0A.0020.0002] # BRAILLE PATTERN DOTS-23568
-28B7 ; [*0E0B.0020.0002] # BRAILLE PATTERN DOTS-123568
-28B8 ; [*0E0C.0020.0002] # BRAILLE PATTERN DOTS-4568
-28B9 ; [*0E0D.0020.0002] # BRAILLE PATTERN DOTS-14568
-28BA ; [*0E0E.0020.0002] # BRAILLE PATTERN DOTS-24568
-28BB ; [*0E0F.0020.0002] # BRAILLE PATTERN DOTS-124568
-28BC ; [*0E10.0020.0002] # BRAILLE PATTERN DOTS-34568
-28BD ; [*0E11.0020.0002] # BRAILLE PATTERN DOTS-134568
-28BE ; [*0E12.0020.0002] # BRAILLE PATTERN DOTS-234568
-28BF ; [*0E13.0020.0002] # BRAILLE PATTERN DOTS-1234568
-28C0 ; [*0E14.0020.0002] # BRAILLE PATTERN DOTS-78
-28C1 ; [*0E15.0020.0002] # BRAILLE PATTERN DOTS-178
-28C2 ; [*0E16.0020.0002] # BRAILLE PATTERN DOTS-278
-28C3 ; [*0E17.0020.0002] # BRAILLE PATTERN DOTS-1278
-28C4 ; [*0E18.0020.0002] # BRAILLE PATTERN DOTS-378
-28C5 ; [*0E19.0020.0002] # BRAILLE PATTERN DOTS-1378
-28C6 ; [*0E1A.0020.0002] # BRAILLE PATTERN DOTS-2378
-28C7 ; [*0E1B.0020.0002] # BRAILLE PATTERN DOTS-12378
-28C8 ; [*0E1C.0020.0002] # BRAILLE PATTERN DOTS-478
-28C9 ; [*0E1D.0020.0002] # BRAILLE PATTERN DOTS-1478
-28CA ; [*0E1E.0020.0002] # BRAILLE PATTERN DOTS-2478
-28CB ; [*0E1F.0020.0002] # BRAILLE PATTERN DOTS-12478
-28CC ; [*0E20.0020.0002] # BRAILLE PATTERN DOTS-3478
-28CD ; [*0E21.0020.0002] # BRAILLE PATTERN DOTS-13478
-28CE ; [*0E22.0020.0002] # BRAILLE PATTERN DOTS-23478
-28CF ; [*0E23.0020.0002] # BRAILLE PATTERN DOTS-123478
-28D0 ; [*0E24.0020.0002] # BRAILLE PATTERN DOTS-578
-28D1 ; [*0E25.0020.0002] # BRAILLE PATTERN DOTS-1578
-28D2 ; [*0E26.0020.0002] # BRAILLE PATTERN DOTS-2578
-28D3 ; [*0E27.0020.0002] # BRAILLE PATTERN DOTS-12578
-28D4 ; [*0E28.0020.0002] # BRAILLE PATTERN DOTS-3578
-28D5 ; [*0E29.0020.0002] # BRAILLE PATTERN DOTS-13578
-28D6 ; [*0E2A.0020.0002] # BRAILLE PATTERN DOTS-23578
-28D7 ; [*0E2B.0020.0002] # BRAILLE PATTERN DOTS-123578
-28D8 ; [*0E2C.0020.0002] # BRAILLE PATTERN DOTS-4578
-28D9 ; [*0E2D.0020.0002] # BRAILLE PATTERN DOTS-14578
-28DA ; [*0E2E.0020.0002] # BRAILLE PATTERN DOTS-24578
-28DB ; [*0E2F.0020.0002] # BRAILLE PATTERN DOTS-124578
-28DC ; [*0E30.0020.0002] # BRAILLE PATTERN DOTS-34578
-28DD ; [*0E31.0020.0002] # BRAILLE PATTERN DOTS-134578
-28DE ; [*0E32.0020.0002] # BRAILLE PATTERN DOTS-234578
-28DF ; [*0E33.0020.0002] # BRAILLE PATTERN DOTS-1234578
-28E0 ; [*0E34.0020.0002] # BRAILLE PATTERN DOTS-678
-28E1 ; [*0E35.0020.0002] # BRAILLE PATTERN DOTS-1678
-28E2 ; [*0E36.0020.0002] # BRAILLE PATTERN DOTS-2678
-28E3 ; [*0E37.0020.0002] # BRAILLE PATTERN DOTS-12678
-28E4 ; [*0E38.0020.0002] # BRAILLE PATTERN DOTS-3678
-28E5 ; [*0E39.0020.0002] # BRAILLE PATTERN DOTS-13678
-28E6 ; [*0E3A.0020.0002] # BRAILLE PATTERN DOTS-23678
-28E7 ; [*0E3B.0020.0002] # BRAILLE PATTERN DOTS-123678
-28E8 ; [*0E3C.0020.0002] # BRAILLE PATTERN DOTS-4678
-28E9 ; [*0E3D.0020.0002] # BRAILLE PATTERN DOTS-14678
-28EA ; [*0E3E.0020.0002] # BRAILLE PATTERN DOTS-24678
-28EB ; [*0E3F.0020.0002] # BRAILLE PATTERN DOTS-124678
-28EC ; [*0E40.0020.0002] # BRAILLE PATTERN DOTS-34678
-28ED ; [*0E41.0020.0002] # BRAILLE PATTERN DOTS-134678
-28EE ; [*0E42.0020.0002] # BRAILLE PATTERN DOTS-234678
-28EF ; [*0E43.0020.0002] # BRAILLE PATTERN DOTS-1234678
-28F0 ; [*0E44.0020.0002] # BRAILLE PATTERN DOTS-5678
-28F1 ; [*0E45.0020.0002] # BRAILLE PATTERN DOTS-15678
-28F2 ; [*0E46.0020.0002] # BRAILLE PATTERN DOTS-25678
-28F3 ; [*0E47.0020.0002] # BRAILLE PATTERN DOTS-125678
-28F4 ; [*0E48.0020.0002] # BRAILLE PATTERN DOTS-35678
-28F5 ; [*0E49.0020.0002] # BRAILLE PATTERN DOTS-135678
-28F6 ; [*0E4A.0020.0002] # BRAILLE PATTERN DOTS-235678
-28F7 ; [*0E4B.0020.0002] # BRAILLE PATTERN DOTS-1235678
-28F8 ; [*0E4C.0020.0002] # BRAILLE PATTERN DOTS-45678
-28F9 ; [*0E4D.0020.0002] # BRAILLE PATTERN DOTS-145678
-28FA ; [*0E4E.0020.0002] # BRAILLE PATTERN DOTS-245678
-28FB ; [*0E4F.0020.0002] # BRAILLE PATTERN DOTS-1245678
-28FC ; [*0E50.0020.0002] # BRAILLE PATTERN DOTS-345678
-28FD ; [*0E51.0020.0002] # BRAILLE PATTERN DOTS-1345678
-28FE ; [*0E52.0020.0002] # BRAILLE PATTERN DOTS-2345678
-28FF ; [*0E53.0020.0002] # BRAILLE PATTERN DOTS-12345678
-2900 ; [*0AA5.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2901 ; [*0AA6.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2902 ; [*0AA7.0020.0002] # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2903 ; [*0AA8.0020.0002] # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2904 ; [*0AA9.0020.0002] # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
-2905 ; [*0AAA.0020.0002] # RIGHTWARDS TWO-HEADED ARROW FROM BAR
-2906 ; [*0AAB.0020.0002] # LEFTWARDS DOUBLE ARROW FROM BAR
-2907 ; [*0AAC.0020.0002] # RIGHTWARDS DOUBLE ARROW FROM BAR
-2908 ; [*0AAD.0020.0002] # DOWNWARDS ARROW WITH HORIZONTAL STROKE
-2909 ; [*0AAE.0020.0002] # UPWARDS ARROW WITH HORIZONTAL STROKE
-290A ; [*0AAF.0020.0002] # UPWARDS TRIPLE ARROW
-290B ; [*0AB0.0020.0002] # DOWNWARDS TRIPLE ARROW
-290C ; [*0AB1.0020.0002] # LEFTWARDS DOUBLE DASH ARROW
-290D ; [*0AB2.0020.0002] # RIGHTWARDS DOUBLE DASH ARROW
-290E ; [*0AB3.0020.0002] # LEFTWARDS TRIPLE DASH ARROW
-290F ; [*0AB4.0020.0002] # RIGHTWARDS TRIPLE DASH ARROW
-2910 ; [*0AB5.0020.0002] # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
-2911 ; [*0AB6.0020.0002] # RIGHTWARDS ARROW WITH DOTTED STEM
-2912 ; [*0AB7.0020.0002] # UPWARDS ARROW TO BAR
-2913 ; [*0AB8.0020.0002] # DOWNWARDS ARROW TO BAR
-2914 ; [*0AB9.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2915 ; [*0ABA.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2916 ; [*0ABB.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL
-2917 ; [*0ABC.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2918 ; [*0ABD.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2919 ; [*0ABE.0020.0002] # LEFTWARDS ARROW-TAIL
-291A ; [*0ABF.0020.0002] # RIGHTWARDS ARROW-TAIL
-291B ; [*0AC0.0020.0002] # LEFTWARDS DOUBLE ARROW-TAIL
-291C ; [*0AC1.0020.0002] # RIGHTWARDS DOUBLE ARROW-TAIL
-291D ; [*0AC2.0020.0002] # LEFTWARDS ARROW TO BLACK DIAMOND
-291E ; [*0AC3.0020.0002] # RIGHTWARDS ARROW TO BLACK DIAMOND
-291F ; [*0AC4.0020.0002] # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2920 ; [*0AC5.0020.0002] # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2921 ; [*0AC6.0020.0002] # NORTH WEST AND SOUTH EAST ARROW
-2922 ; [*0AC7.0020.0002] # NORTH EAST AND SOUTH WEST ARROW
-2923 ; [*0AC8.0020.0002] # NORTH WEST ARROW WITH HOOK
-2924 ; [*0AC9.0020.0002] # NORTH EAST ARROW WITH HOOK
-2925 ; [*0ACA.0020.0002] # SOUTH EAST ARROW WITH HOOK
-2926 ; [*0ACB.0020.0002] # SOUTH WEST ARROW WITH HOOK
-2927 ; [*0ACC.0020.0002] # NORTH WEST ARROW AND NORTH EAST ARROW
-2928 ; [*0ACD.0020.0002] # NORTH EAST ARROW AND SOUTH EAST ARROW
-2929 ; [*0ACE.0020.0002] # SOUTH EAST ARROW AND SOUTH WEST ARROW
-292A ; [*0ACF.0020.0002] # SOUTH WEST ARROW AND NORTH WEST ARROW
-292B ; [*0AD0.0020.0002] # RISING DIAGONAL CROSSING FALLING DIAGONAL
-292C ; [*0AD1.0020.0002] # FALLING DIAGONAL CROSSING RISING DIAGONAL
-292D ; [*0AD2.0020.0002] # SOUTH EAST ARROW CROSSING NORTH EAST ARROW
-292E ; [*0AD3.0020.0002] # NORTH EAST ARROW CROSSING SOUTH EAST ARROW
-292F ; [*0AD4.0020.0002] # FALLING DIAGONAL CROSSING NORTH EAST ARROW
-2930 ; [*0AD5.0020.0002] # RISING DIAGONAL CROSSING SOUTH EAST ARROW
-2931 ; [*0AD6.0020.0002] # NORTH EAST ARROW CROSSING NORTH WEST ARROW
-2932 ; [*0AD7.0020.0002] # NORTH WEST ARROW CROSSING NORTH EAST ARROW
-2933 ; [*0AD8.0020.0002] # WAVE ARROW POINTING DIRECTLY RIGHT
-2934 ; [*0AD9.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2935 ; [*0ADA.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2936 ; [*0ADB.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
-2937 ; [*0ADC.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
-2938 ; [*0ADD.0020.0002] # RIGHT-SIDE ARC CLOCKWISE ARROW
-2939 ; [*0ADE.0020.0002] # LEFT-SIDE ARC ANTICLOCKWISE ARROW
-293A ; [*0ADF.0020.0002] # TOP ARC ANTICLOCKWISE ARROW
-293B ; [*0AE0.0020.0002] # BOTTOM ARC ANTICLOCKWISE ARROW
-293C ; [*0AE1.0020.0002] # TOP ARC CLOCKWISE ARROW WITH MINUS
-293D ; [*0AE2.0020.0002] # TOP ARC ANTICLOCKWISE ARROW WITH PLUS
-293E ; [*0AE3.0020.0002] # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
-293F ; [*0AE4.0020.0002] # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
-2940 ; [*0AE5.0020.0002] # ANTICLOCKWISE CLOSED CIRCLE ARROW
-2941 ; [*0AE6.0020.0002] # CLOCKWISE CLOSED CIRCLE ARROW
-2942 ; [*0AE7.0020.0002] # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
-2943 ; [*0AE8.0020.0002] # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
-2944 ; [*0AE9.0020.0002] # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
-2945 ; [*0AEA.0020.0002] # RIGHTWARDS ARROW WITH PLUS BELOW
-2946 ; [*0AEB.0020.0002] # LEFTWARDS ARROW WITH PLUS BELOW
-2947 ; [*0AEC.0020.0002] # RIGHTWARDS ARROW THROUGH X
-2948 ; [*0AED.0020.0002] # LEFT RIGHT ARROW THROUGH SMALL CIRCLE
-2949 ; [*0AEE.0020.0002] # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
-294A ; [*0AEF.0020.0002] # LEFT BARB UP RIGHT BARB DOWN HARPOON
-294B ; [*0AF0.0020.0002] # LEFT BARB DOWN RIGHT BARB UP HARPOON
-294C ; [*0AF1.0020.0002] # UP BARB RIGHT DOWN BARB LEFT HARPOON
-294D ; [*0AF2.0020.0002] # UP BARB LEFT DOWN BARB RIGHT HARPOON
-294E ; [*0AF3.0020.0002] # LEFT BARB UP RIGHT BARB UP HARPOON
-294F ; [*0AF4.0020.0002] # UP BARB RIGHT DOWN BARB RIGHT HARPOON
-2950 ; [*0AF5.0020.0002] # LEFT BARB DOWN RIGHT BARB DOWN HARPOON
-2951 ; [*0AF6.0020.0002] # UP BARB LEFT DOWN BARB LEFT HARPOON
-2952 ; [*0AF7.0020.0002] # LEFTWARDS HARPOON WITH BARB UP TO BAR
-2953 ; [*0AF8.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP TO BAR
-2954 ; [*0AF9.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT TO BAR
-2955 ; [*0AFA.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
-2956 ; [*0AFB.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN TO BAR
-2957 ; [*0AFC.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
-2958 ; [*0AFD.0020.0002] # UPWARDS HARPOON WITH BARB LEFT TO BAR
-2959 ; [*0AFE.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT TO BAR
-295A ; [*0AFF.0020.0002] # LEFTWARDS HARPOON WITH BARB UP FROM BAR
-295B ; [*0B00.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP FROM BAR
-295C ; [*0B01.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT FROM BAR
-295D ; [*0B02.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
-295E ; [*0B03.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
-295F ; [*0B04.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
-2960 ; [*0B05.0020.0002] # UPWARDS HARPOON WITH BARB LEFT FROM BAR
-2961 ; [*0B06.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
-2962 ; [*0B07.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-2963 ; [*0B08.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2964 ; [*0B09.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2965 ; [*0B0A.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-2966 ; [*0B0B.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
-2967 ; [*0B0C.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2968 ; [*0B0D.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
-2969 ; [*0B0E.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-296A ; [*0B0F.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296B ; [*0B10.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296C ; [*0B11.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296D ; [*0B12.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296E ; [*0B13.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-296F ; [*0B14.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2970 ; [*0B15.0020.0002] # RIGHT DOUBLE ARROW WITH ROUNDED HEAD
-2971 ; [*0B16.0020.0002] # EQUALS SIGN ABOVE RIGHTWARDS ARROW
-2972 ; [*0B17.0020.0002] # TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2973 ; [*0B18.0020.0002] # LEFTWARDS ARROW ABOVE TILDE OPERATOR
-2974 ; [*0B19.0020.0002] # RIGHTWARDS ARROW ABOVE TILDE OPERATOR
-2975 ; [*0B1A.0020.0002] # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
-2976 ; [*0B1B.0020.0002] # LESS-THAN ABOVE LEFTWARDS ARROW
-2977 ; [*0B1C.0020.0002] # LEFTWARDS ARROW THROUGH LESS-THAN
-2978 ; [*0B1D.0020.0002] # GREATER-THAN ABOVE RIGHTWARDS ARROW
-2979 ; [*0B1E.0020.0002] # SUBSET ABOVE RIGHTWARDS ARROW
-297A ; [*0B1F.0020.0002] # LEFTWARDS ARROW THROUGH SUBSET
-297B ; [*0B20.0020.0002] # SUPERSET ABOVE LEFTWARDS ARROW
-297C ; [*0B21.0020.0002] # LEFT FISH TAIL
-297D ; [*0B22.0020.0002] # RIGHT FISH TAIL
-297E ; [*0B23.0020.0002] # UP FISH TAIL
-297F ; [*0B24.0020.0002] # DOWN FISH TAIL
-2980 ; [*0B25.0020.0002] # TRIPLE VERTICAL BAR DELIMITER
-2981 ; [*0B26.0020.0002] # Z NOTATION SPOT
-2982 ; [*0B27.0020.0002] # Z NOTATION TYPE COLON
-2983 ; [*031E.0020.0002] # LEFT WHITE CURLY BRACKET
-2984 ; [*031F.0020.0002] # RIGHT WHITE CURLY BRACKET
-2985 ; [*0320.0020.0002] # LEFT WHITE PARENTHESIS
-2986 ; [*0321.0020.0002] # RIGHT WHITE PARENTHESIS
-2987 ; [*0322.0020.0002] # Z NOTATION LEFT IMAGE BRACKET
-2988 ; [*0323.0020.0002] # Z NOTATION RIGHT IMAGE BRACKET
-2989 ; [*0324.0020.0002] # Z NOTATION LEFT BINDING BRACKET
-298A ; [*0325.0020.0002] # Z NOTATION RIGHT BINDING BRACKET
-298B ; [*0326.0020.0002] # LEFT SQUARE BRACKET WITH UNDERBAR
-298C ; [*0327.0020.0002] # RIGHT SQUARE BRACKET WITH UNDERBAR
-298D ; [*0328.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E ; [*0329.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F ; [*032A.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990 ; [*032B.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991 ; [*032C.0020.0002] # LEFT ANGLE BRACKET WITH DOT
-2992 ; [*032D.0020.0002] # RIGHT ANGLE BRACKET WITH DOT
-2993 ; [*032E.0020.0002] # LEFT ARC LESS-THAN BRACKET
-2994 ; [*032F.0020.0002] # RIGHT ARC GREATER-THAN BRACKET
-2995 ; [*0330.0020.0002] # DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996 ; [*0331.0020.0002] # DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997 ; [*0332.0020.0002] # LEFT BLACK TORTOISE SHELL BRACKET
-2998 ; [*0333.0020.0002] # RIGHT BLACK TORTOISE SHELL BRACKET
-2999 ; [*0B28.0020.0002] # DOTTED FENCE
-299A ; [*0B29.0020.0002] # VERTICAL ZIGZAG LINE
-299B ; [*0B2A.0020.0002] # MEASURED ANGLE OPENING LEFT
-299C ; [*0B2B.0020.0002] # RIGHT ANGLE VARIANT WITH SQUARE
-299D ; [*0B2C.0020.0002] # MEASURED RIGHT ANGLE WITH DOT
-299E ; [*0B2D.0020.0002] # ANGLE WITH S INSIDE
-299F ; [*0B2E.0020.0002] # ACUTE ANGLE
-29A0 ; [*0B2F.0020.0002] # SPHERICAL ANGLE OPENING LEFT
-29A1 ; [*0B30.0020.0002] # SPHERICAL ANGLE OPENING UP
-29A2 ; [*0B31.0020.0002] # TURNED ANGLE
-29A3 ; [*0B32.0020.0002] # REVERSED ANGLE
-29A4 ; [*0B33.0020.0002] # ANGLE WITH UNDERBAR
-29A5 ; [*0B34.0020.0002] # REVERSED ANGLE WITH UNDERBAR
-29A6 ; [*0B35.0020.0002] # OBLIQUE ANGLE OPENING UP
-29A7 ; [*0B36.0020.0002] # OBLIQUE ANGLE OPENING DOWN
-29A8 ; [*0B37.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
-29A9 ; [*0B38.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
-29AA ; [*0B39.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
-29AB ; [*0B3A.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
-29AC ; [*0B3B.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
-29AD ; [*0B3C.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
-29AE ; [*0B3D.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
-29AF ; [*0B3E.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
-29B0 ; [*0B3F.0020.0002] # REVERSED EMPTY SET
-29B1 ; [*0B40.0020.0002] # EMPTY SET WITH OVERBAR
-29B2 ; [*0B41.0020.0002] # EMPTY SET WITH SMALL CIRCLE ABOVE
-29B3 ; [*0B42.0020.0002] # EMPTY SET WITH RIGHT ARROW ABOVE
-29B4 ; [*0B43.0020.0002] # EMPTY SET WITH LEFT ARROW ABOVE
-29B5 ; [*0B44.0020.0002] # CIRCLE WITH HORIZONTAL BAR
-29B6 ; [*0B45.0020.0002] # CIRCLED VERTICAL BAR
-29B7 ; [*0B46.0020.0002] # CIRCLED PARALLEL
-29B8 ; [*0B47.0020.0002] # CIRCLED REVERSE SOLIDUS
-29B9 ; [*0B48.0020.0002] # CIRCLED PERPENDICULAR
-29BA ; [*0B49.0020.0002] # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
-29BB ; [*0B4A.0020.0002] # CIRCLE WITH SUPERIMPOSED X
-29BC ; [*0B4B.0020.0002] # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
-29BD ; [*0B4C.0020.0002] # UP ARROW THROUGH CIRCLE
-29BE ; [*0B4D.0020.0002] # CIRCLED WHITE BULLET
-29BF ; [*0B4E.0020.0002] # CIRCLED BULLET
-29C0 ; [*0B4F.0020.0002] # CIRCLED LESS-THAN
-29C1 ; [*0B50.0020.0002] # CIRCLED GREATER-THAN
-29C2 ; [*0B51.0020.0002] # CIRCLE WITH SMALL CIRCLE TO THE RIGHT
-29C3 ; [*0B52.0020.0002] # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
-29C4 ; [*0B53.0020.0002] # SQUARED RISING DIAGONAL SLASH
-29C5 ; [*0B54.0020.0002] # SQUARED FALLING DIAGONAL SLASH
-29C6 ; [*0B55.0020.0002] # SQUARED ASTERISK
-29C7 ; [*0B56.0020.0002] # SQUARED SMALL CIRCLE
-29C8 ; [*0B57.0020.0002] # SQUARED SQUARE
-29C9 ; [*0B58.0020.0002] # TWO JOINED SQUARES
-29CA ; [*0B59.0020.0002] # TRIANGLE WITH DOT ABOVE
-29CB ; [*0B5A.0020.0002] # TRIANGLE WITH UNDERBAR
-29CC ; [*0B5B.0020.0002] # S IN TRIANGLE
-29CD ; [*0B5C.0020.0002] # TRIANGLE WITH SERIFS AT BOTTOM
-29CE ; [*0B5D.0020.0002] # RIGHT TRIANGLE ABOVE LEFT TRIANGLE
-29CF ; [*0B5E.0020.0002] # LEFT TRIANGLE BESIDE VERTICAL BAR
-29D0 ; [*0B5F.0020.0002] # VERTICAL BAR BESIDE RIGHT TRIANGLE
-29D1 ; [*0B60.0020.0002] # BOWTIE WITH LEFT HALF BLACK
-29D2 ; [*0B61.0020.0002] # BOWTIE WITH RIGHT HALF BLACK
-29D3 ; [*0B62.0020.0002] # BLACK BOWTIE
-29D4 ; [*0B63.0020.0002] # TIMES WITH LEFT HALF BLACK
-29D5 ; [*0B64.0020.0002] # TIMES WITH RIGHT HALF BLACK
-29D6 ; [*0B65.0020.0002] # WHITE HOURGLASS
-29D7 ; [*0B66.0020.0002] # BLACK HOURGLASS
-29D8 ; [*0378.0020.0002] # LEFT WIGGLY FENCE
-29D9 ; [*0379.0020.0002] # RIGHT WIGGLY FENCE
-29DA ; [*037A.0020.0002] # LEFT DOUBLE WIGGLY FENCE
-29DB ; [*037B.0020.0002] # RIGHT DOUBLE WIGGLY FENCE
-29DC ; [*0B67.0020.0002] # INCOMPLETE INFINITY
-29DD ; [*0B68.0020.0002] # TIE OVER INFINITY
-29DE ; [*0B69.0020.0002] # INFINITY NEGATED WITH VERTICAL BAR
-29DF ; [*0B6A.0020.0002] # DOUBLE-ENDED MULTIMAP
-29E0 ; [*0B6B.0020.0002] # SQUARE WITH CONTOURED OUTLINE
-29E1 ; [*0B6C.0020.0002] # INCREASES AS
-29E2 ; [*0B6D.0020.0002] # SHUFFLE PRODUCT
-29E3 ; [*0B6E.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL
-29E4 ; [*0B6F.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
-29E5 ; [*0B70.0020.0002] # IDENTICAL TO AND SLANTED PARALLEL
-29E6 ; [*0B71.0020.0002] # GLEICH STARK
-29E7 ; [*0B72.0020.0002] # THERMODYNAMIC
-29E8 ; [*0B73.0020.0002] # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
-29E9 ; [*0B74.0020.0002] # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
-29EA ; [*0B75.0020.0002] # BLACK DIAMOND WITH DOWN ARROW
-29EB ; [*0B76.0020.0002] # BLACK LOZENGE
-29EC ; [*0B77.0020.0002] # WHITE CIRCLE WITH DOWN ARROW
-29ED ; [*0B78.0020.0002] # BLACK CIRCLE WITH DOWN ARROW
-29EE ; [*0B79.0020.0002] # ERROR-BARRED WHITE SQUARE
-29EF ; [*0B7A.0020.0002] # ERROR-BARRED BLACK SQUARE
-29F0 ; [*0B7B.0020.0002] # ERROR-BARRED WHITE DIAMOND
-29F1 ; [*0B7C.0020.0002] # ERROR-BARRED BLACK DIAMOND
-29F2 ; [*0B7D.0020.0002] # ERROR-BARRED WHITE CIRCLE
-29F3 ; [*0B7E.0020.0002] # ERROR-BARRED BLACK CIRCLE
-29F4 ; [*0B7F.0020.0002] # RULE-DELAYED
-29F5 ; [*0B80.0020.0002] # REVERSE SOLIDUS OPERATOR
-29F6 ; [*0B81.0020.0002] # SOLIDUS WITH OVERBAR
-29F7 ; [*0B82.0020.0002] # REVERSE SOLIDUS WITH HORIZONTAL STROKE
-29F8 ; [*0B83.0020.0002] # BIG SOLIDUS
-29F9 ; [*0B84.0020.0002] # BIG REVERSE SOLIDUS
-29FA ; [*0B85.0020.0002] # DOUBLE PLUS
-29FB ; [*0B86.0020.0002] # TRIPLE PLUS
-29FC ; [*031C.0020.0002] # LEFT-POINTING CURVED ANGLE BRACKET
-29FD ; [*031D.0020.0002] # RIGHT-POINTING CURVED ANGLE BRACKET
-29FE ; [*0B87.0020.0002] # TINY
-29FF ; [*0B88.0020.0002] # MINY
-2A00 ; [*0B89.0020.0002] # N-ARY CIRCLED DOT OPERATOR
-2A01 ; [*0B8A.0020.0002] # N-ARY CIRCLED PLUS OPERATOR
-2A02 ; [*0B8B.0020.0002] # N-ARY CIRCLED TIMES OPERATOR
-2A03 ; [*0B8C.0020.0002] # N-ARY UNION OPERATOR WITH DOT
-2A04 ; [*0B8D.0020.0002] # N-ARY UNION OPERATOR WITH PLUS
-2A05 ; [*0B8E.0020.0002] # N-ARY SQUARE INTERSECTION OPERATOR
-2A06 ; [*0B8F.0020.0002] # N-ARY SQUARE UNION OPERATOR
-2A07 ; [*0B90.0020.0002] # TWO LOGICAL AND OPERATOR
-2A08 ; [*0B91.0020.0002] # TWO LOGICAL OR OPERATOR
-2A09 ; [*0B92.0020.0002] # N-ARY TIMES OPERATOR
-2A0A ; [*0B93.0020.0002] # MODULO TWO SUM
-2A0B ; [*0B94.0020.0002] # SUMMATION WITH INTEGRAL
-2A0C ; [*05FC.0020.0004][*05FC.0020.0004][*05FC.0020.0004][*05FC.0020.0004] # QUADRUPLE INTEGRAL OPERATOR
-2A0D ; [*0B95.0020.0002] # FINITE PART INTEGRAL
-2A0E ; [*0B96.0020.0002] # INTEGRAL WITH DOUBLE STROKE
-2A0F ; [*0B97.0020.0002] # INTEGRAL AVERAGE WITH SLASH
-2A10 ; [*0B98.0020.0002] # CIRCULATION FUNCTION
-2A11 ; [*0B99.0020.0002] # ANTICLOCKWISE INTEGRATION
-2A12 ; [*0B9A.0020.0002] # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
-2A13 ; [*0B9B.0020.0002] # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
-2A14 ; [*0B9C.0020.0002] # LINE INTEGRATION NOT INCLUDING THE POLE
-2A15 ; [*0B9D.0020.0002] # INTEGRAL AROUND A POINT OPERATOR
-2A16 ; [*0B9E.0020.0002] # QUATERNION INTEGRAL OPERATOR
-2A17 ; [*0B9F.0020.0002] # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
-2A18 ; [*0BA0.0020.0002] # INTEGRAL WITH TIMES SIGN
-2A19 ; [*0BA1.0020.0002] # INTEGRAL WITH INTERSECTION
-2A1A ; [*0BA2.0020.0002] # INTEGRAL WITH UNION
-2A1B ; [*0BA3.0020.0002] # INTEGRAL WITH OVERBAR
-2A1C ; [*0BA4.0020.0002] # INTEGRAL WITH UNDERBAR
-2A1D ; [*0BA5.0020.0002] # JOIN
-2A1E ; [*0BA6.0020.0002] # LARGE LEFT TRIANGLE OPERATOR
-2A1F ; [*0BA7.0020.0002] # Z NOTATION SCHEMA COMPOSITION
-2A20 ; [*0BA8.0020.0002] # Z NOTATION SCHEMA PIPING
-2A21 ; [*0BA9.0020.0002] # Z NOTATION SCHEMA PROJECTION
-2A22 ; [*0BAA.0020.0002] # PLUS SIGN WITH SMALL CIRCLE ABOVE
-2A23 ; [*0BAB.0020.0002] # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
-2A24 ; [*0BAC.0020.0002] # PLUS SIGN WITH TILDE ABOVE
-2A25 ; [*0BAD.0020.0002] # PLUS SIGN WITH DOT BELOW
-2A26 ; [*0BAE.0020.0002] # PLUS SIGN WITH TILDE BELOW
-2A27 ; [*0BAF.0020.0002] # PLUS SIGN WITH SUBSCRIPT TWO
-2A28 ; [*0BB0.0020.0002] # PLUS SIGN WITH BLACK TRIANGLE
-2A29 ; [*0BB1.0020.0002] # MINUS SIGN WITH COMMA ABOVE
-2A2A ; [*0BB2.0020.0002] # MINUS SIGN WITH DOT BELOW
-2A2B ; [*0BB3.0020.0002] # MINUS SIGN WITH FALLING DOTS
-2A2C ; [*0BB4.0020.0002] # MINUS SIGN WITH RISING DOTS
-2A2D ; [*0BB5.0020.0002] # PLUS SIGN IN LEFT HALF CIRCLE
-2A2E ; [*0BB6.0020.0002] # PLUS SIGN IN RIGHT HALF CIRCLE
-2A2F ; [*0BB7.0020.0002] # VECTOR OR CROSS PRODUCT
-2A30 ; [*0BB8.0020.0002] # MULTIPLICATION SIGN WITH DOT ABOVE
-2A31 ; [*0BB9.0020.0002] # MULTIPLICATION SIGN WITH UNDERBAR
-2A32 ; [*0BBA.0020.0002] # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
-2A33 ; [*0BBB.0020.0002] # SMASH PRODUCT
-2A34 ; [*0BBC.0020.0002] # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
-2A35 ; [*0BBD.0020.0002] # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
-2A36 ; [*0BBE.0020.0002] # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
-2A37 ; [*0BBF.0020.0002] # MULTIPLICATION SIGN IN DOUBLE CIRCLE
-2A38 ; [*0BC0.0020.0002] # CIRCLED DIVISION SIGN
-2A39 ; [*0BC1.0020.0002] # PLUS SIGN IN TRIANGLE
-2A3A ; [*0BC2.0020.0002] # MINUS SIGN IN TRIANGLE
-2A3B ; [*0BC3.0020.0002] # MULTIPLICATION SIGN IN TRIANGLE
-2A3C ; [*0BC4.0020.0002] # INTERIOR PRODUCT
-2A3D ; [*0BC5.0020.0002] # RIGHTHAND INTERIOR PRODUCT
-2A3E ; [*0BC6.0020.0002] # Z NOTATION RELATIONAL COMPOSITION
-2A3F ; [*0BC7.0020.0002] # AMALGAMATION OR COPRODUCT
-2A40 ; [*0BC8.0020.0002] # INTERSECTION WITH DOT
-2A41 ; [*0BC9.0020.0002] # UNION WITH MINUS SIGN
-2A42 ; [*0BCA.0020.0002] # UNION WITH OVERBAR
-2A43 ; [*0BCB.0020.0002] # INTERSECTION WITH OVERBAR
-2A44 ; [*0BCC.0020.0002] # INTERSECTION WITH LOGICAL AND
-2A45 ; [*0BCD.0020.0002] # UNION WITH LOGICAL OR
-2A46 ; [*0BCE.0020.0002] # UNION ABOVE INTERSECTION
-2A47 ; [*0BCF.0020.0002] # INTERSECTION ABOVE UNION
-2A48 ; [*0BD0.0020.0002] # UNION ABOVE BAR ABOVE INTERSECTION
-2A49 ; [*0BD1.0020.0002] # INTERSECTION ABOVE BAR ABOVE UNION
-2A4A ; [*0BD2.0020.0002] # UNION BESIDE AND JOINED WITH UNION
-2A4B ; [*0BD3.0020.0002] # INTERSECTION BESIDE AND JOINED WITH INTERSECTION
-2A4C ; [*0BD4.0020.0002] # CLOSED UNION WITH SERIFS
-2A4D ; [*0BD5.0020.0002] # CLOSED INTERSECTION WITH SERIFS
-2A4E ; [*0BD6.0020.0002] # DOUBLE SQUARE INTERSECTION
-2A4F ; [*0BD7.0020.0002] # DOUBLE SQUARE UNION
-2A50 ; [*0BD8.0020.0002] # CLOSED UNION WITH SERIFS AND SMASH PRODUCT
-2A51 ; [*0BD9.0020.0002] # LOGICAL AND WITH DOT ABOVE
-2A52 ; [*0BDA.0020.0002] # LOGICAL OR WITH DOT ABOVE
-2A53 ; [*0BDB.0020.0002] # DOUBLE LOGICAL AND
-2A54 ; [*0BDC.0020.0002] # DOUBLE LOGICAL OR
-2A55 ; [*0BDD.0020.0002] # TWO INTERSECTING LOGICAL AND
-2A56 ; [*0BDE.0020.0002] # TWO INTERSECTING LOGICAL OR
-2A57 ; [*0BDF.0020.0002] # SLOPING LARGE OR
-2A58 ; [*0BE0.0020.0002] # SLOPING LARGE AND
-2A59 ; [*0BE1.0020.0002] # LOGICAL OR OVERLAPPING LOGICAL AND
-2A5A ; [*0BE2.0020.0002] # LOGICAL AND WITH MIDDLE STEM
-2A5B ; [*0BE3.0020.0002] # LOGICAL OR WITH MIDDLE STEM
-2A5C ; [*0BE4.0020.0002] # LOGICAL AND WITH HORIZONTAL DASH
-2A5D ; [*0BE5.0020.0002] # LOGICAL OR WITH HORIZONTAL DASH
-2A5E ; [*0BE6.0020.0002] # LOGICAL AND WITH DOUBLE OVERBAR
-2A5F ; [*0BE7.0020.0002] # LOGICAL AND WITH UNDERBAR
-2A60 ; [*0BE8.0020.0002] # LOGICAL AND WITH DOUBLE UNDERBAR
-2A61 ; [*0BE9.0020.0002] # SMALL VEE WITH UNDERBAR
-2A62 ; [*0BEA.0020.0002] # LOGICAL OR WITH DOUBLE OVERBAR
-2A63 ; [*0BEB.0020.0002] # LOGICAL OR WITH DOUBLE UNDERBAR
-2A64 ; [*0BEC.0020.0002] # Z NOTATION DOMAIN ANTIRESTRICTION
-2A65 ; [*0BED.0020.0002] # Z NOTATION RANGE ANTIRESTRICTION
-2A66 ; [*0BEE.0020.0002] # EQUALS SIGN WITH DOT BELOW
-2A67 ; [*0BEF.0020.0002] # IDENTICAL WITH DOT ABOVE
-2A68 ; [*0BF0.0020.0002] # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
-2A69 ; [*0BF1.0020.0002] # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
-2A6A ; [*0BF2.0020.0002] # TILDE OPERATOR WITH DOT ABOVE
-2A6B ; [*0BF3.0020.0002] # TILDE OPERATOR WITH RISING DOTS
-2A6C ; [*0BF4.0020.0002] # SIMILAR MINUS SIMILAR
-2A6D ; [*0BF5.0020.0002] # CONGRUENT WITH DOT ABOVE
-2A6E ; [*0BF6.0020.0002] # EQUALS WITH ASTERISK
-2A6F ; [*0BF7.0020.0002] # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
-2A70 ; [*0BF8.0020.0002] # APPROXIMATELY EQUAL OR EQUAL TO
-2A71 ; [*0BF9.0020.0002] # EQUALS SIGN ABOVE PLUS SIGN
-2A72 ; [*0BFA.0020.0002] # PLUS SIGN ABOVE EQUALS SIGN
-2A73 ; [*0BFB.0020.0002] # EQUALS SIGN ABOVE TILDE OPERATOR
-2A74 ; [*0238.0020.0004][*0238.0020.0004][*05DB.0020.0004] # DOUBLE COLON EQUAL
-2A75 ; [*05DB.0020.0004][*05DB.0020.0004] # TWO CONSECUTIVE EQUALS SIGNS
-2A76 ; [*05DB.0020.0004][*05DB.0020.0004][*05DB.0020.0004] # THREE CONSECUTIVE EQUALS SIGNS
-2A77 ; [*0BFC.0020.0002] # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
-2A78 ; [*0BFD.0020.0002] # EQUIVALENT WITH FOUR DOTS ABOVE
-2A79 ; [*0BFE.0020.0002] # LESS-THAN WITH CIRCLE INSIDE
-2A7A ; [*0BFF.0020.0002] # GREATER-THAN WITH CIRCLE INSIDE
-2A7B ; [*0C00.0020.0002] # LESS-THAN WITH QUESTION MARK ABOVE
-2A7C ; [*0C01.0020.0002] # GREATER-THAN WITH QUESTION MARK ABOVE
-2A7D ; [*0C02.0020.0002] # LESS-THAN OR SLANTED EQUAL TO
-2A7E ; [*0C03.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO
-2A7F ; [*0C04.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A80 ; [*0C05.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A81 ; [*0C06.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A82 ; [*0C07.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A83 ; [*0C08.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
-2A84 ; [*0C09.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
-2A85 ; [*0C0A.0020.0002] # LESS-THAN OR APPROXIMATE
-2A86 ; [*0C0B.0020.0002] # GREATER-THAN OR APPROXIMATE
-2A87 ; [*0C0C.0020.0002] # LESS-THAN AND SINGLE-LINE NOT EQUAL TO
-2A88 ; [*0C0D.0020.0002] # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
-2A89 ; [*0C0E.0020.0002] # LESS-THAN AND NOT APPROXIMATE
-2A8A ; [*0C0F.0020.0002] # GREATER-THAN AND NOT APPROXIMATE
-2A8B ; [*0C10.0020.0002] # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
-2A8C ; [*0C11.0020.0002] # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
-2A8D ; [*0C12.0020.0002] # LESS-THAN ABOVE SIMILAR OR EQUAL
-2A8E ; [*0C13.0020.0002] # GREATER-THAN ABOVE SIMILAR OR EQUAL
-2A8F ; [*0C14.0020.0002] # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
-2A90 ; [*0C15.0020.0002] # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
-2A91 ; [*0C16.0020.0002] # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
-2A92 ; [*0C17.0020.0002] # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
-2A93 ; [*0C18.0020.0002] # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
-2A94 ; [*0C19.0020.0002] # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
-2A95 ; [*0C1A.0020.0002] # SLANTED EQUAL TO OR LESS-THAN
-2A96 ; [*0C1B.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN
-2A97 ; [*0C1C.0020.0002] # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
-2A98 ; [*0C1D.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
-2A99 ; [*0C1E.0020.0002] # DOUBLE-LINE EQUAL TO OR LESS-THAN
-2A9A ; [*0C1F.0020.0002] # DOUBLE-LINE EQUAL TO OR GREATER-THAN
-2A9B ; [*0C20.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
-2A9C ; [*0C21.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
-2A9D ; [*0C22.0020.0002] # SIMILAR OR LESS-THAN
-2A9E ; [*0C23.0020.0002] # SIMILAR OR GREATER-THAN
-2A9F ; [*0C24.0020.0002] # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
-2AA0 ; [*0C25.0020.0002] # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
-2AA1 ; [*0C26.0020.0002] # DOUBLE NESTED LESS-THAN
-2AA2 ; [*0C27.0020.0002] # DOUBLE NESTED GREATER-THAN
-2AA3 ; [*0C28.0020.0002] # DOUBLE NESTED LESS-THAN WITH UNDERBAR
-2AA4 ; [*0C29.0020.0002] # GREATER-THAN OVERLAPPING LESS-THAN
-2AA5 ; [*0C2A.0020.0002] # GREATER-THAN BESIDE LESS-THAN
-2AA6 ; [*0C2B.0020.0002] # LESS-THAN CLOSED BY CURVE
-2AA7 ; [*0C2C.0020.0002] # GREATER-THAN CLOSED BY CURVE
-2AA8 ; [*0C2D.0020.0002] # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AA9 ; [*0C2E.0020.0002] # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AAA ; [*0C2F.0020.0002] # SMALLER THAN
-2AAB ; [*0C30.0020.0002] # LARGER THAN
-2AAC ; [*0C31.0020.0002] # SMALLER THAN OR EQUAL TO
-2AAD ; [*0C32.0020.0002] # LARGER THAN OR EQUAL TO
-2AAE ; [*0C33.0020.0002] # EQUALS SIGN WITH BUMPY ABOVE
-2AAF ; [*0C34.0020.0002] # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
-2AB0 ; [*0C35.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
-2AB1 ; [*0C36.0020.0002] # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
-2AB2 ; [*0C37.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
-2AB3 ; [*0C38.0020.0002] # PRECEDES ABOVE EQUALS SIGN
-2AB4 ; [*0C39.0020.0002] # SUCCEEDS ABOVE EQUALS SIGN
-2AB5 ; [*0C3A.0020.0002] # PRECEDES ABOVE NOT EQUAL TO
-2AB6 ; [*0C3B.0020.0002] # SUCCEEDS ABOVE NOT EQUAL TO
-2AB7 ; [*0C3C.0020.0002] # PRECEDES ABOVE ALMOST EQUAL TO
-2AB8 ; [*0C3D.0020.0002] # SUCCEEDS ABOVE ALMOST EQUAL TO
-2AB9 ; [*0C3E.0020.0002] # PRECEDES ABOVE NOT ALMOST EQUAL TO
-2ABA ; [*0C3F.0020.0002] # SUCCEEDS ABOVE NOT ALMOST EQUAL TO
-2ABB ; [*0C40.0020.0002] # DOUBLE PRECEDES
-2ABC ; [*0C41.0020.0002] # DOUBLE SUCCEEDS
-2ABD ; [*0C42.0020.0002] # SUBSET WITH DOT
-2ABE ; [*0C43.0020.0002] # SUPERSET WITH DOT
-2ABF ; [*0C44.0020.0002] # SUBSET WITH PLUS SIGN BELOW
-2AC0 ; [*0C45.0020.0002] # SUPERSET WITH PLUS SIGN BELOW
-2AC1 ; [*0C46.0020.0002] # SUBSET WITH MULTIPLICATION SIGN BELOW
-2AC2 ; [*0C47.0020.0002] # SUPERSET WITH MULTIPLICATION SIGN BELOW
-2AC3 ; [*0C48.0020.0002] # SUBSET OF OR EQUAL TO WITH DOT ABOVE
-2AC4 ; [*0C49.0020.0002] # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
-2AC5 ; [*0C4A.0020.0002] # SUBSET OF ABOVE EQUALS SIGN
-2AC6 ; [*0C4B.0020.0002] # SUPERSET OF ABOVE EQUALS SIGN
-2AC7 ; [*0C4C.0020.0002] # SUBSET OF ABOVE TILDE OPERATOR
-2AC8 ; [*0C4D.0020.0002] # SUPERSET OF ABOVE TILDE OPERATOR
-2AC9 ; [*0C4E.0020.0002] # SUBSET OF ABOVE ALMOST EQUAL TO
-2ACA ; [*0C4F.0020.0002] # SUPERSET OF ABOVE ALMOST EQUAL TO
-2ACB ; [*0C50.0020.0002] # SUBSET OF ABOVE NOT EQUAL TO
-2ACC ; [*0C51.0020.0002] # SUPERSET OF ABOVE NOT EQUAL TO
-2ACD ; [*0C52.0020.0002] # SQUARE LEFT OPEN BOX OPERATOR
-2ACE ; [*0C53.0020.0002] # SQUARE RIGHT OPEN BOX OPERATOR
-2ACF ; [*0C54.0020.0002] # CLOSED SUBSET
-2AD0 ; [*0C55.0020.0002] # CLOSED SUPERSET
-2AD1 ; [*0C56.0020.0002] # CLOSED SUBSET OR EQUAL TO
-2AD2 ; [*0C57.0020.0002] # CLOSED SUPERSET OR EQUAL TO
-2AD3 ; [*0C58.0020.0002] # SUBSET ABOVE SUPERSET
-2AD4 ; [*0C59.0020.0002] # SUPERSET ABOVE SUBSET
-2AD5 ; [*0C5A.0020.0002] # SUBSET ABOVE SUBSET
-2AD6 ; [*0C5B.0020.0002] # SUPERSET ABOVE SUPERSET
-2AD7 ; [*0C5C.0020.0002] # SUPERSET BESIDE SUBSET
-2AD8 ; [*0C5D.0020.0002] # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
-2AD9 ; [*0C5E.0020.0002] # ELEMENT OF OPENING DOWNWARDS
-2ADA ; [*0C5F.0020.0002] # PITCHFORK WITH TEE TOP
-2ADB ; [*0C60.0020.0002] # TRANSVERSAL INTERSECTION
-2ADC ; [*0C61.0020.0002][.0000.002F.0002] # FORKING
-2ADD ; [*0C61.0020.0002] # NONFORKING
-2ADE ; [*0C62.0020.0002] # SHORT LEFT TACK
-2ADF ; [*0C63.0020.0002] # SHORT DOWN TACK
-2AE0 ; [*0C64.0020.0002] # SHORT UP TACK
-2AE1 ; [*0C65.0020.0002] # PERPENDICULAR WITH S
-2AE2 ; [*0C66.0020.0002] # VERTICAL BAR TRIPLE RIGHT TURNSTILE
-2AE3 ; [*0C67.0020.0002] # DOUBLE VERTICAL BAR LEFT TURNSTILE
-2AE4 ; [*0C68.0020.0002] # VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE5 ; [*0C69.0020.0002] # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE6 ; [*0C6A.0020.0002] # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
-2AE7 ; [*0C6B.0020.0002] # SHORT DOWN TACK WITH OVERBAR
-2AE8 ; [*0C6C.0020.0002] # SHORT UP TACK WITH UNDERBAR
-2AE9 ; [*0C6D.0020.0002] # SHORT UP TACK ABOVE SHORT DOWN TACK
-2AEA ; [*0C6E.0020.0002] # DOUBLE DOWN TACK
-2AEB ; [*0C6F.0020.0002] # DOUBLE UP TACK
-2AEC ; [*0C70.0020.0002] # DOUBLE STROKE NOT SIGN
-2AED ; [*0C71.0020.0002] # REVERSED DOUBLE STROKE NOT SIGN
-2AEE ; [*0C72.0020.0002] # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
-2AEF ; [*0C73.0020.0002] # VERTICAL LINE WITH CIRCLE ABOVE
-2AF0 ; [*0C74.0020.0002] # VERTICAL LINE WITH CIRCLE BELOW
-2AF1 ; [*0C75.0020.0002] # DOWN TACK WITH CIRCLE BELOW
-2AF2 ; [*0C76.0020.0002] # PARALLEL WITH HORIZONTAL STROKE
-2AF3 ; [*0C77.0020.0002] # PARALLEL WITH TILDE OPERATOR
-2AF4 ; [*0C78.0020.0002] # TRIPLE VERTICAL BAR BINARY RELATION
-2AF5 ; [*0C79.0020.0002] # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
-2AF6 ; [*0C7A.0020.0002] # TRIPLE COLON OPERATOR
-2AF7 ; [*0C7B.0020.0002] # TRIPLE NESTED LESS-THAN
-2AF8 ; [*0C7C.0020.0002] # TRIPLE NESTED GREATER-THAN
-2AF9 ; [*0C7D.0020.0002] # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
-2AFA ; [*0C7E.0020.0002] # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
-2AFB ; [*0C7F.0020.0002] # TRIPLE SOLIDUS BINARY RELATION
-2AFC ; [*0C80.0020.0002] # LARGE TRIPLE VERTICAL BAR OPERATOR
-2AFD ; [*0C81.0020.0002] # DOUBLE SOLIDUS OPERATOR
-2AFE ; [*0C82.0020.0002] # WHITE VERTICAL BAR
-2AFF ; [*0C83.0020.0002] # N-ARY WHITE VERTICAL BAR
-2B00 ; [*0C84.0020.0002] # NORTH EAST WHITE ARROW
-2B01 ; [*0C85.0020.0002] # NORTH WEST WHITE ARROW
-2B02 ; [*0C86.0020.0002] # SOUTH EAST WHITE ARROW
-2B03 ; [*0C87.0020.0002] # SOUTH WEST WHITE ARROW
-2B04 ; [*0C88.0020.0002] # LEFT RIGHT WHITE ARROW
-2B05 ; [*0C89.0020.0002] # LEFTWARDS BLACK ARROW
-2B06 ; [*0C8A.0020.0002] # UPWARDS BLACK ARROW
-2B07 ; [*0C8B.0020.0002] # DOWNWARDS BLACK ARROW
-2B08 ; [*0C8C.0020.0002] # NORTH EAST BLACK ARROW
-2B09 ; [*0C8D.0020.0002] # NORTH WEST BLACK ARROW
-2B0A ; [*0C8E.0020.0002] # SOUTH EAST BLACK ARROW
-2B0B ; [*0C8F.0020.0002] # SOUTH WEST BLACK ARROW
-2B0C ; [*0C90.0020.0002] # LEFT RIGHT BLACK ARROW
-2B0D ; [*0C91.0020.0002] # UP DOWN BLACK ARROW
-2B0E ; [*0C92.0020.0002] # RIGHTWARDS ARROW WITH TIP DOWNWARDS
-2B0F ; [*0C93.0020.0002] # RIGHTWARDS ARROW WITH TIP UPWARDS
-2B10 ; [*0C94.0020.0002] # LEFTWARDS ARROW WITH TIP DOWNWARDS
-2B11 ; [*0C95.0020.0002] # LEFTWARDS ARROW WITH TIP UPWARDS
-2B12 ; [*0C96.0020.0002] # SQUARE WITH TOP HALF BLACK
-2B13 ; [*0C97.0020.0002] # SQUARE WITH BOTTOM HALF BLACK
-2B14 ; [*0C98.0020.0002] # SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
-2B15 ; [*0C99.0020.0002] # SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
-2B16 ; [*0C9A.0020.0002] # DIAMOND WITH LEFT HALF BLACK
-2B17 ; [*0C9B.0020.0002] # DIAMOND WITH RIGHT HALF BLACK
-2B18 ; [*0C9C.0020.0002] # DIAMOND WITH TOP HALF BLACK
-2B19 ; [*0C9D.0020.0002] # DIAMOND WITH BOTTOM HALF BLACK
-2B1A ; [*0C9E.0020.0002] # DOTTED SQUARE
-2B1B ; [*0C9F.0020.0002] # BLACK LARGE SQUARE
-2B1C ; [*0CA0.0020.0002] # WHITE LARGE SQUARE
-2B1D ; [*0CA1.0020.0002] # BLACK VERY SMALL SQUARE
-2B1E ; [*0CA2.0020.0002] # WHITE VERY SMALL SQUARE
-2B1F ; [*0CA3.0020.0002] # BLACK PENTAGON
-2B20 ; [*0CA4.0020.0002] # WHITE PENTAGON
-2B21 ; [*0CA5.0020.0002] # WHITE HEXAGON
-2B22 ; [*0CA6.0020.0002] # BLACK HEXAGON
-2B23 ; [*0CA7.0020.0002] # HORIZONTAL BLACK HEXAGON
-2B24 ; [*0CA8.0020.0002] # BLACK LARGE CIRCLE
-2B25 ; [*0CA9.0020.0002] # BLACK MEDIUM DIAMOND
-2B26 ; [*0CAA.0020.0002] # WHITE MEDIUM DIAMOND
-2B27 ; [*0CAB.0020.0002] # BLACK MEDIUM LOZENGE
-2B28 ; [*0CAC.0020.0002] # WHITE MEDIUM LOZENGE
-2B29 ; [*0CAD.0020.0002] # BLACK SMALL DIAMOND
-2B2A ; [*0CAE.0020.0002] # BLACK SMALL LOZENGE
-2B2B ; [*0CAF.0020.0002] # WHITE SMALL LOZENGE
-2B2C ; [*0CB0.0020.0002] # BLACK HORIZONTAL ELLIPSE
-2B2D ; [*0CB1.0020.0002] # WHITE HORIZONTAL ELLIPSE
-2B2E ; [*0CB2.0020.0002] # BLACK VERTICAL ELLIPSE
-2B2F ; [*0CB3.0020.0002] # WHITE VERTICAL ELLIPSE
-2B30 ; [*0CB4.0020.0002] # LEFT ARROW WITH SMALL CIRCLE
-2B31 ; [*0CB5.0020.0002] # THREE LEFTWARDS ARROWS
-2B32 ; [*0CB6.0020.0002] # LEFT ARROW WITH CIRCLED PLUS
-2B33 ; [*0CB7.0020.0002] # LONG LEFTWARDS SQUIGGLE ARROW
-2B34 ; [*0CB8.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2B35 ; [*0CB9.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2B36 ; [*0CBA.0020.0002] # LEFTWARDS TWO-HEADED ARROW FROM BAR
-2B37 ; [*0CBB.0020.0002] # LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
-2B38 ; [*0CBC.0020.0002] # LEFTWARDS ARROW WITH DOTTED STEM
-2B39 ; [*0CBD.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2B3A ; [*0CBE.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3B ; [*0CBF.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL
-2B3C ; [*0CC0.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2B3D ; [*0CC1.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3E ; [*0CC2.0020.0002] # LEFTWARDS ARROW THROUGH X
-2B3F ; [*0CC3.0020.0002] # WAVE ARROW POINTING DIRECTLY LEFT
-2B40 ; [*0CC4.0020.0002] # EQUALS SIGN ABOVE LEFTWARDS ARROW
-2B41 ; [*0CC5.0020.0002] # REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B42 ; [*0CC6.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B43 ; [*0CC7.0020.0002] # RIGHTWARDS ARROW THROUGH GREATER-THAN
-2B44 ; [*0CC8.0020.0002] # RIGHTWARDS ARROW THROUGH SUPERSET
-2B45 ; [*0CC9.0020.0002] # LEFTWARDS QUADRUPLE ARROW
-2B46 ; [*0CCA.0020.0002] # RIGHTWARDS QUADRUPLE ARROW
-2B47 ; [*0CCB.0020.0002] # REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2B48 ; [*0CCC.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B49 ; [*0CCD.0020.0002] # TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B4A ; [*0CCE.0020.0002] # LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
-2B4B ; [*0CCF.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4C ; [*0CD0.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4D ; [*0CD1.0020.0002] # DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW
-2B4E ; [*0CD2.0020.0002] # SHORT SLANTED NORTH ARROW
-2B4F ; [*0CD3.0020.0002] # SHORT BACKSLANTED SOUTH ARROW
-2B50 ; [*0CD4.0020.0002] # WHITE MEDIUM STAR
-2B51 ; [*0CD5.0020.0002] # BLACK SMALL STAR
-2B52 ; [*0CD6.0020.0002] # WHITE SMALL STAR
-2B53 ; [*0CD7.0020.0002] # BLACK RIGHT-POINTING PENTAGON
-2B54 ; [*0CD8.0020.0002] # WHITE RIGHT-POINTING PENTAGON
-2B55 ; [*0CD9.0020.0002] # HEAVY LARGE CIRCLE
-2B56 ; [*0CDA.0020.0002] # HEAVY OVAL WITH OVAL INSIDE
-2B57 ; [*0CDB.0020.0002] # HEAVY CIRCLE WITH CIRCLE INSIDE
-2B58 ; [*0CDC.0020.0002] # HEAVY CIRCLE
-2B59 ; [*0CDD.0020.0002] # HEAVY CIRCLED SALTIRE
-2B5A ; [*0CDE.0020.0002] # SLANTED NORTH ARROW WITH HOOKED HEAD
-2B5B ; [*0CDF.0020.0002] # BACKSLANTED SOUTH ARROW WITH HOOKED TAIL
-2B5C ; [*0CE0.0020.0002] # SLANTED NORTH ARROW WITH HORIZONTAL TAIL
-2B5D ; [*0CE1.0020.0002] # BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL
-2B5E ; [*0CE2.0020.0002] # BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
-2B5F ; [*0CE3.0020.0002] # SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
-2B60 ; [*0CE4.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW
-2B61 ; [*0CE5.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW
-2B62 ; [*0CE6.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW
-2B63 ; [*0CE7.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW
-2B64 ; [*0CE8.0020.0002] # LEFT RIGHT TRIANGLE-HEADED ARROW
-2B65 ; [*0CE9.0020.0002] # UP DOWN TRIANGLE-HEADED ARROW
-2B66 ; [*0CEA.0020.0002] # NORTH WEST TRIANGLE-HEADED ARROW
-2B67 ; [*0CEB.0020.0002] # NORTH EAST TRIANGLE-HEADED ARROW
-2B68 ; [*0CEC.0020.0002] # SOUTH EAST TRIANGLE-HEADED ARROW
-2B69 ; [*0CED.0020.0002] # SOUTH WEST TRIANGLE-HEADED ARROW
-2B6A ; [*0CEE.0020.0002] # LEFTWARDS TRIANGLE-HEADED DASHED ARROW
-2B6B ; [*0CEF.0020.0002] # UPWARDS TRIANGLE-HEADED DASHED ARROW
-2B6C ; [*0CF0.0020.0002] # RIGHTWARDS TRIANGLE-HEADED DASHED ARROW
-2B6D ; [*0CF1.0020.0002] # DOWNWARDS TRIANGLE-HEADED DASHED ARROW
-2B6E ; [*0CF2.0020.0002] # CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
-2B6F ; [*0CF3.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
-2B70 ; [*0CF4.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
-2B71 ; [*0CF5.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW TO BAR
-2B72 ; [*0CF6.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR
-2B73 ; [*0CF7.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
-2B76 ; [*0CF8.0020.0002] # NORTH WEST TRIANGLE-HEADED ARROW TO BAR
-2B77 ; [*0CF9.0020.0002] # NORTH EAST TRIANGLE-HEADED ARROW TO BAR
-2B78 ; [*0CFA.0020.0002] # SOUTH EAST TRIANGLE-HEADED ARROW TO BAR
-2B79 ; [*0CFB.0020.0002] # SOUTH WEST TRIANGLE-HEADED ARROW TO BAR
-2B7A ; [*0CFC.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
-2B7B ; [*0CFD.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
-2B7C ; [*0CFE.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
-2B7D ; [*0CFF.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
-2B7E ; [*0D00.0020.0002] # HORIZONTAL TAB KEY
-2B7F ; [*0D01.0020.0002] # VERTICAL TAB KEY
-2B80 ; [*0D02.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW
-2B81 ; [*0D03.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW
-2B82 ; [*0D04.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW
-2B83 ; [*0D05.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW
-2B84 ; [*0D06.0020.0002] # LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
-2B85 ; [*0D07.0020.0002] # UPWARDS TRIANGLE-HEADED PAIRED ARROWS
-2B86 ; [*0D08.0020.0002] # RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS
-2B87 ; [*0D09.0020.0002] # DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS
-2B88 ; [*0D0A.0020.0002] # LEFTWARDS BLACK CIRCLED WHITE ARROW
-2B89 ; [*0D0B.0020.0002] # UPWARDS BLACK CIRCLED WHITE ARROW
-2B8A ; [*0D0C.0020.0002] # RIGHTWARDS BLACK CIRCLED WHITE ARROW
-2B8B ; [*0D0D.0020.0002] # DOWNWARDS BLACK CIRCLED WHITE ARROW
-2B8C ; [*0D0E.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW
-2B8D ; [*0D0F.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW
-2B8E ; [*0D10.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW
-2B8F ; [*0D11.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW
-2B90 ; [*0D12.0020.0002] # RETURN LEFT
-2B91 ; [*0D13.0020.0002] # RETURN RIGHT
-2B92 ; [*0D14.0020.0002] # NEWLINE LEFT
-2B93 ; [*0D15.0020.0002] # NEWLINE RIGHT
-2B94 ; [*0D16.0020.0002] # FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE
-2B95 ; [*0D17.0020.0002] # RIGHTWARDS BLACK ARROW
-2B98 ; [*0D18.0020.0002] # THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD
-2B99 ; [*0D19.0020.0002] # THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD
-2B9A ; [*0D1A.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD
-2B9B ; [*0D1B.0020.0002] # THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD
-2B9C ; [*0D1C.0020.0002] # BLACK LEFTWARDS EQUILATERAL ARROWHEAD
-2B9D ; [*0D1D.0020.0002] # BLACK UPWARDS EQUILATERAL ARROWHEAD
-2B9E ; [*0D1E.0020.0002] # BLACK RIGHTWARDS EQUILATERAL ARROWHEAD
-2B9F ; [*0D1F.0020.0002] # BLACK DOWNWARDS EQUILATERAL ARROWHEAD
-2BA0 ; [*0D20.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
-2BA1 ; [*0D21.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
-2BA2 ; [*0D22.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
-2BA3 ; [*0D23.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
-2BA4 ; [*0D24.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
-2BA5 ; [*0D25.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
-2BA6 ; [*0D26.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
-2BA7 ; [*0D27.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
-2BA8 ; [*0D28.0020.0002] # BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW
-2BA9 ; [*0D29.0020.0002] # BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-2BAA ; [*0D2A.0020.0002] # BLACK CURVED UPWARDS AND LEFTWARDS ARROW
-2BAB ; [*0D2B.0020.0002] # BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-2BAC ; [*0D2C.0020.0002] # BLACK CURVED LEFTWARDS AND UPWARDS ARROW
-2BAD ; [*0D2D.0020.0002] # BLACK CURVED RIGHTWARDS AND UPWARDS ARROW
-2BAE ; [*0D2E.0020.0002] # BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW
-2BAF ; [*0D2F.0020.0002] # BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW
-2BB0 ; [*0D30.0020.0002] # RIBBON ARROW DOWN LEFT
-2BB1 ; [*0D31.0020.0002] # RIBBON ARROW DOWN RIGHT
-2BB2 ; [*0D32.0020.0002] # RIBBON ARROW UP LEFT
-2BB3 ; [*0D33.0020.0002] # RIBBON ARROW UP RIGHT
-2BB4 ; [*0D34.0020.0002] # RIBBON ARROW LEFT UP
-2BB5 ; [*0D35.0020.0002] # RIBBON ARROW RIGHT UP
-2BB6 ; [*0D36.0020.0002] # RIBBON ARROW LEFT DOWN
-2BB7 ; [*0D37.0020.0002] # RIBBON ARROW RIGHT DOWN
-2BB8 ; [*0D38.0020.0002] # UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR
-2BB9 ; [*0D39.0020.0002] # UP ARROWHEAD IN A RECTANGLE BOX
-2BBD ; [*0D3A.0020.0002] # BALLOT BOX WITH LIGHT X
-2BBE ; [*0D3B.0020.0002] # CIRCLED X
-2BBF ; [*0D3C.0020.0002] # CIRCLED BOLD X
-2BC0 ; [*0D3D.0020.0002] # BLACK SQUARE CENTRED
-2BC1 ; [*0D3E.0020.0002] # BLACK DIAMOND CENTRED
-2BC2 ; [*0D3F.0020.0002] # TURNED BLACK PENTAGON
-2BC3 ; [*0D40.0020.0002] # HORIZONTAL BLACK OCTAGON
-2BC4 ; [*0D41.0020.0002] # BLACK OCTAGON
-2BC5 ; [*0D42.0020.0002] # BLACK MEDIUM UP-POINTING TRIANGLE CENTRED
-2BC6 ; [*0D43.0020.0002] # BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED
-2BC7 ; [*0D44.0020.0002] # BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED
-2BC8 ; [*0D45.0020.0002] # BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
-2BCA ; [*0D46.0020.0002] # TOP HALF BLACK CIRCLE
-2BCB ; [*0D47.0020.0002] # BOTTOM HALF BLACK CIRCLE
-2BCC ; [*0D48.0020.0002] # LIGHT FOUR POINTED BLACK CUSP
-2BCD ; [*0D49.0020.0002] # ROTATED LIGHT FOUR POINTED BLACK CUSP
-2BCE ; [*0D4A.0020.0002] # WHITE FOUR POINTED CUSP
-2BCF ; [*0D4B.0020.0002] # ROTATED WHITE FOUR POINTED CUSP
-2BD0 ; [*0D4C.0020.0002] # SQUARE POSITION INDICATOR
-2BD1 ; [*0D4D.0020.0002] # UNCERTAINTY SIGN
-2CE5 ; [*0D4E.0020.0002] # COPTIC SYMBOL MI RO
-2CE6 ; [*0D4F.0020.0002] # COPTIC SYMBOL PI RO
-2CE7 ; [*0D50.0020.0002] # COPTIC SYMBOL STAUROS
-2CE8 ; [*0D51.0020.0002] # COPTIC SYMBOL TAU RO
-2CE9 ; [*0D52.0020.0002] # COPTIC SYMBOL KHI RO
-2CEA ; [*0D53.0020.0002] # COPTIC SYMBOL SHIMA SIMA
-2CF9 ; [*027E.0020.0002] # COPTIC OLD NUBIAN FULL STOP
-2CFA ; [*026C.0020.0002] # COPTIC OLD NUBIAN DIRECT QUESTION MARK
-2CFB ; [*026D.0020.0002] # COPTIC OLD NUBIAN INDIRECT QUESTION MARK
-2CFC ; [*02E9.0020.0002] # COPTIC OLD NUBIAN VERSE DIVIDER
-2CFD ; [*17F3.0020.0002] # COPTIC FRACTION ONE HALF
-2CFE ; [*027F.0020.0002] # COPTIC FULL STOP
-2CFF ; [*02EA.0020.0002] # COPTIC MORPHOLOGICAL DIVIDER
-2D70 ; [*0409.0020.0002] # TIFINAGH SEPARATOR MARK
+207A ; [*0616.0020.0014] # SUPERSCRIPT PLUS SIGN
+207B ; [*0621.0020.0014] # SUPERSCRIPT MINUS
+207C ; [*061B.0020.0014] # SUPERSCRIPT EQUALS SIGN
+207D ; [*0317.0020.0014] # SUPERSCRIPT LEFT PARENTHESIS
+207E ; [*0318.0020.0014] # SUPERSCRIPT RIGHT PARENTHESIS
+208A ; [*0616.0020.0015] # SUBSCRIPT PLUS SIGN
+208B ; [*0621.0020.0015] # SUBSCRIPT MINUS
+208C ; [*061B.0020.0015] # SUBSCRIPT EQUALS SIGN
+208D ; [*0317.0020.0015] # SUBSCRIPT LEFT PARENTHESIS
+208E ; [*0318.0020.0015] # SUBSCRIPT RIGHT PARENTHESIS
+2104 ; [*0586.0020.0002] # CENTRE LINE SYMBOL
+2108 ; [*0587.0020.0002] # SCRUPLE
+2114 ; [*0588.0020.0002] # L B BAR SYMBOL
+2117 ; [*0589.0020.0002] # SOUND RECORDING COPYRIGHT
+2118 ; [*058A.0020.0002] # SCRIPT CAPITAL P
+211E ; [*058B.0020.0002] # PRESCRIPTION TAKE
+211F ; [*058C.0020.0002] # RESPONSE
+2123 ; [*058D.0020.0002] # VERSICLE
+2125 ; [*058E.0020.0002] # OUNCE SIGN
+2127 ; [*058F.0020.0002] # INVERTED OHM SIGN
+2129 ; [*0590.0020.0002] # TURNED GREEK SMALL LETTER IOTA
+212E ; [*0591.0020.0002] # ESTIMATED SYMBOL
+213A ; [*0592.0020.0002] # ROTATED CAPITAL Q
+2140 ; [*0615.0020.0005] # DOUBLE-STRUCK N-ARY SUMMATION
+2141 ; [*0593.0020.0002] # TURNED SANS-SERIF CAPITAL G
+2142 ; [*0594.0020.0002] # TURNED SANS-SERIF CAPITAL L
+2143 ; [*0595.0020.0002] # REVERSED SANS-SERIF CAPITAL L
+2144 ; [*0596.0020.0002] # TURNED SANS-SERIF CAPITAL Y
+214A ; [*0597.0020.0002] # PROPERTY LINE
+214B ; [*06B1.0020.0002] # TURNED AMPERSAND
+214C ; [*0598.0020.0002] # PER SIGN
+214F ; [*0599.0020.0002] # SYMBOL FOR SAMARITAN SOURCE
+2180 ; [*1AC6.0020.0002] # ROMAN NUMERAL ONE THOUSAND C D
+2181 ; [*1AC7.0020.0002] # ROMAN NUMERAL FIVE THOUSAND
+2182 ; [*1AC8.0020.0002] # ROMAN NUMERAL TEN THOUSAND
+2186 ; [*1AC9.0020.0002] # ROMAN NUMERAL FIFTY EARLY FORM
+2187 ; [*1ACA.0020.0002] # ROMAN NUMERAL FIFTY THOUSAND
+2188 ; [*1ACB.0020.0002] # ROMAN NUMERAL ONE HUNDRED THOUSAND
+218A ; [*059A.0020.0002] # TURNED DIGIT TWO
+218B ; [*059B.0020.0002] # TURNED DIGIT THREE
+2190 ; [*059C.0020.0002] # LEFTWARDS ARROW
+2191 ; [*059E.0020.0002] # UPWARDS ARROW
+2192 ; [*059D.0020.0002] # RIGHTWARDS ARROW
+2193 ; [*059F.0020.0002] # DOWNWARDS ARROW
+2194 ; [*05A0.0020.0002] # LEFT RIGHT ARROW
+2195 ; [*05A1.0020.0002] # UP DOWN ARROW
+2196 ; [*05A2.0020.0002] # NORTH WEST ARROW
+2197 ; [*05A3.0020.0002] # NORTH EAST ARROW
+2198 ; [*05A4.0020.0002] # SOUTH EAST ARROW
+2199 ; [*05A5.0020.0002] # SOUTH WEST ARROW
+219A ; [*059C.0020.0002][.0000.002F.0002] # LEFTWARDS ARROW WITH STROKE
+219B ; [*059D.0020.0002][.0000.002F.0002] # RIGHTWARDS ARROW WITH STROKE
+219C ; [*05A6.0020.0002] # LEFTWARDS WAVE ARROW
+219D ; [*05A7.0020.0002] # RIGHTWARDS WAVE ARROW
+219E ; [*05A8.0020.0002] # LEFTWARDS TWO HEADED ARROW
+219F ; [*05A9.0020.0002] # UPWARDS TWO HEADED ARROW
+21A0 ; [*05AA.0020.0002] # RIGHTWARDS TWO HEADED ARROW
+21A1 ; [*05AB.0020.0002] # DOWNWARDS TWO HEADED ARROW
+21A2 ; [*05AC.0020.0002] # LEFTWARDS ARROW WITH TAIL
+21A3 ; [*05AD.0020.0002] # RIGHTWARDS ARROW WITH TAIL
+21A4 ; [*05AE.0020.0002] # LEFTWARDS ARROW FROM BAR
+21A5 ; [*05AF.0020.0002] # UPWARDS ARROW FROM BAR
+21A6 ; [*05B0.0020.0002] # RIGHTWARDS ARROW FROM BAR
+21A7 ; [*05B1.0020.0002] # DOWNWARDS ARROW FROM BAR
+21A8 ; [*05B2.0020.0002] # UP DOWN ARROW WITH BASE
+21A9 ; [*05B3.0020.0002] # LEFTWARDS ARROW WITH HOOK
+21AA ; [*05B4.0020.0002] # RIGHTWARDS ARROW WITH HOOK
+21AB ; [*05B5.0020.0002] # LEFTWARDS ARROW WITH LOOP
+21AC ; [*05B6.0020.0002] # RIGHTWARDS ARROW WITH LOOP
+21AD ; [*05B7.0020.0002] # LEFT RIGHT WAVE ARROW
+21AE ; [*05A0.0020.0002][.0000.002F.0002] # LEFT RIGHT ARROW WITH STROKE
+21AF ; [*05B8.0020.0002] # DOWNWARDS ZIGZAG ARROW
+21B0 ; [*05B9.0020.0002] # UPWARDS ARROW WITH TIP LEFTWARDS
+21B1 ; [*05BA.0020.0002] # UPWARDS ARROW WITH TIP RIGHTWARDS
+21B2 ; [*05BB.0020.0002] # DOWNWARDS ARROW WITH TIP LEFTWARDS
+21B3 ; [*05BC.0020.0002] # DOWNWARDS ARROW WITH TIP RIGHTWARDS
+21B4 ; [*05BD.0020.0002] # RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+21B5 ; [*05BE.0020.0002] # DOWNWARDS ARROW WITH CORNER LEFTWARDS
+21B6 ; [*05BF.0020.0002] # ANTICLOCKWISE TOP SEMICIRCLE ARROW
+21B7 ; [*05C0.0020.0002] # CLOCKWISE TOP SEMICIRCLE ARROW
+21B8 ; [*05C1.0020.0002] # NORTH WEST ARROW TO LONG BAR
+21B9 ; [*05C2.0020.0002] # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+21BA ; [*05C3.0020.0002] # ANTICLOCKWISE OPEN CIRCLE ARROW
+21BB ; [*05C4.0020.0002] # CLOCKWISE OPEN CIRCLE ARROW
+21BC ; [*05C5.0020.0002] # LEFTWARDS HARPOON WITH BARB UPWARDS
+21BD ; [*05C6.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWNWARDS
+21BE ; [*05C7.0020.0002] # UPWARDS HARPOON WITH BARB RIGHTWARDS
+21BF ; [*05C8.0020.0002] # UPWARDS HARPOON WITH BARB LEFTWARDS
+21C0 ; [*05C9.0020.0002] # RIGHTWARDS HARPOON WITH BARB UPWARDS
+21C1 ; [*05CA.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+21C2 ; [*05CB.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+21C3 ; [*05CC.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFTWARDS
+21C4 ; [*05CD.0020.0002] # RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+21C5 ; [*05CE.0020.0002] # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+21C6 ; [*05CF.0020.0002] # LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+21C7 ; [*05D0.0020.0002] # LEFTWARDS PAIRED ARROWS
+21C8 ; [*05D1.0020.0002] # UPWARDS PAIRED ARROWS
+21C9 ; [*05D2.0020.0002] # RIGHTWARDS PAIRED ARROWS
+21CA ; [*05D3.0020.0002] # DOWNWARDS PAIRED ARROWS
+21CB ; [*05D4.0020.0002] # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+21CC ; [*05D5.0020.0002] # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+21CD ; [*05D6.0020.0002][.0000.002F.0002] # LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE ; [*05DA.0020.0002][.0000.002F.0002] # LEFT RIGHT DOUBLE ARROW WITH STROKE
+21CF ; [*05D8.0020.0002][.0000.002F.0002] # RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0 ; [*05D6.0020.0002] # LEFTWARDS DOUBLE ARROW
+21D1 ; [*05D7.0020.0002] # UPWARDS DOUBLE ARROW
+21D2 ; [*05D8.0020.0002] # RIGHTWARDS DOUBLE ARROW
+21D3 ; [*05D9.0020.0002] # DOWNWARDS DOUBLE ARROW
+21D4 ; [*05DA.0020.0002] # LEFT RIGHT DOUBLE ARROW
+21D5 ; [*05DB.0020.0002] # UP DOWN DOUBLE ARROW
+21D6 ; [*05DC.0020.0002] # NORTH WEST DOUBLE ARROW
+21D7 ; [*05DD.0020.0002] # NORTH EAST DOUBLE ARROW
+21D8 ; [*05DE.0020.0002] # SOUTH EAST DOUBLE ARROW
+21D9 ; [*05DF.0020.0002] # SOUTH WEST DOUBLE ARROW
+21DA ; [*05E0.0020.0002] # LEFTWARDS TRIPLE ARROW
+21DB ; [*05E1.0020.0002] # RIGHTWARDS TRIPLE ARROW
+21DC ; [*05E2.0020.0002] # LEFTWARDS SQUIGGLE ARROW
+21DD ; [*05E3.0020.0002] # RIGHTWARDS SQUIGGLE ARROW
+21DE ; [*05E4.0020.0002] # UPWARDS ARROW WITH DOUBLE STROKE
+21DF ; [*05E5.0020.0002] # DOWNWARDS ARROW WITH DOUBLE STROKE
+21E0 ; [*05E6.0020.0002] # LEFTWARDS DASHED ARROW
+21E1 ; [*05E7.0020.0002] # UPWARDS DASHED ARROW
+21E2 ; [*05E8.0020.0002] # RIGHTWARDS DASHED ARROW
+21E3 ; [*05E9.0020.0002] # DOWNWARDS DASHED ARROW
+21E4 ; [*05EA.0020.0002] # LEFTWARDS ARROW TO BAR
+21E5 ; [*05EB.0020.0002] # RIGHTWARDS ARROW TO BAR
+21E6 ; [*05EC.0020.0002] # LEFTWARDS WHITE ARROW
+21E7 ; [*05ED.0020.0002] # UPWARDS WHITE ARROW
+21E8 ; [*05EE.0020.0002] # RIGHTWARDS WHITE ARROW
+21E9 ; [*05EF.0020.0002] # DOWNWARDS WHITE ARROW
+21EA ; [*05F0.0020.0002] # UPWARDS WHITE ARROW FROM BAR
+21EB ; [*05F1.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL
+21EC ; [*05F2.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+21ED ; [*05F3.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+21EE ; [*05F4.0020.0002] # UPWARDS WHITE DOUBLE ARROW
+21EF ; [*05F5.0020.0002] # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+21F0 ; [*05F6.0020.0002] # RIGHTWARDS WHITE ARROW FROM WALL
+21F1 ; [*05F7.0020.0002] # NORTH WEST ARROW TO CORNER
+21F2 ; [*05F8.0020.0002] # SOUTH EAST ARROW TO CORNER
+21F3 ; [*05F9.0020.0002] # UP DOWN WHITE ARROW
+21F4 ; [*05FA.0020.0002] # RIGHT ARROW WITH SMALL CIRCLE
+21F5 ; [*05FB.0020.0002] # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+21F6 ; [*05FC.0020.0002] # THREE RIGHTWARDS ARROWS
+21F7 ; [*05FD.0020.0002] # LEFTWARDS ARROW WITH VERTICAL STROKE
+21F8 ; [*05FE.0020.0002] # RIGHTWARDS ARROW WITH VERTICAL STROKE
+21F9 ; [*05FF.0020.0002] # LEFT RIGHT ARROW WITH VERTICAL STROKE
+21FA ; [*0600.0020.0002] # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+21FB ; [*0601.0020.0002] # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+21FC ; [*0602.0020.0002] # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
+21FD ; [*0603.0020.0002] # LEFTWARDS OPEN-HEADED ARROW
+21FE ; [*0604.0020.0002] # RIGHTWARDS OPEN-HEADED ARROW
+21FF ; [*0605.0020.0002] # LEFT RIGHT OPEN-HEADED ARROW
+2200 ; [*0606.0020.0002] # FOR ALL
+2201 ; [*0607.0020.0002] # COMPLEMENT
+2202 ; [*0608.0020.0002] # PARTIAL DIFFERENTIAL
+2203 ; [*0609.0020.0002] # THERE EXISTS
+2204 ; [*0609.0020.0002][.0000.002F.0002] # THERE DOES NOT EXIST
+2205 ; [*060A.0020.0002] # EMPTY SET
+2206 ; [*060B.0020.0002] # INCREMENT
+2207 ; [*060C.0020.0002] # NABLA
+2208 ; [*060D.0020.0002] # ELEMENT OF
+2209 ; [*060D.0020.0002][.0000.002F.0002] # NOT AN ELEMENT OF
+220A ; [*060E.0020.0002] # SMALL ELEMENT OF
+220B ; [*060F.0020.0002] # CONTAINS AS MEMBER
+220C ; [*060F.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS MEMBER
+220D ; [*0610.0020.0002] # SMALL CONTAINS AS MEMBER
+220E ; [*0612.0020.0002] # END OF PROOF
+220F ; [*0613.0020.0002] # N-ARY PRODUCT
+2210 ; [*0614.0020.0002] # N-ARY COPRODUCT
+2211 ; [*0615.0020.0002] # N-ARY SUMMATION
+2212 ; [*0621.0020.0002] # MINUS SIGN
+2213 ; [*0623.0020.0002] # MINUS-OR-PLUS SIGN
+2214 ; [*0624.0020.0002] # DOT PLUS
+2215 ; [*0625.0020.0002] # DIVISION SLASH
+2216 ; [*0627.0020.0002] # SET MINUS
+2217 ; [*0628.0020.0002] # ASTERISK OPERATOR
+2218 ; [*0629.0020.0002] # RING OPERATOR
+2219 ; [*062A.0020.0002] # BULLET OPERATOR
+221A ; [*062B.0020.0002] # SQUARE ROOT
+221B ; [*062C.0020.0002] # CUBE ROOT
+221C ; [*062E.0020.0002] # FOURTH ROOT
+221D ; [*0630.0020.0002] # PROPORTIONAL TO
+221E ; [*0631.0020.0002] # INFINITY
+221F ; [*0632.0020.0002] # RIGHT ANGLE
+2220 ; [*0633.0020.0002] # ANGLE
+2221 ; [*0634.0020.0002] # MEASURED ANGLE
+2222 ; [*0635.0020.0002] # SPHERICAL ANGLE
+2223 ; [*0636.0020.0002] # DIVIDES
+2224 ; [*0636.0020.0002][.0000.002F.0002] # DOES NOT DIVIDE
+2225 ; [*0637.0020.0002] # PARALLEL TO
+2226 ; [*0637.0020.0002][.0000.002F.0002] # NOT PARALLEL TO
+2227 ; [*0638.0020.0002] # LOGICAL AND
+2228 ; [*0639.0020.0002] # LOGICAL OR
+2229 ; [*063A.0020.0002] # INTERSECTION
+222A ; [*063B.0020.0002] # UNION
+222B ; [*063C.0020.0002] # INTEGRAL
+222C ; [*063C.0020.0004][*063C.0020.0004] # DOUBLE INTEGRAL
+222D ; [*063C.0020.0004][*063C.0020.0004][*063C.0020.0004] # TRIPLE INTEGRAL
+222E ; [*063D.0020.0002] # CONTOUR INTEGRAL
+222F ; [*063D.0020.0004][*063D.0020.0004] # SURFACE INTEGRAL
+2230 ; [*063D.0020.0004][*063D.0020.0004][*063D.0020.0004] # VOLUME INTEGRAL
+2231 ; [*063E.0020.0002] # CLOCKWISE INTEGRAL
+2232 ; [*063F.0020.0002] # CLOCKWISE CONTOUR INTEGRAL
+2233 ; [*0640.0020.0002] # ANTICLOCKWISE CONTOUR INTEGRAL
+2234 ; [*0641.0020.0002] # THEREFORE
+2235 ; [*0642.0020.0002] # BECAUSE
+2236 ; [*0643.0020.0002] # RATIO
+2237 ; [*0644.0020.0002] # PROPORTION
+2238 ; [*0645.0020.0002] # DOT MINUS
+2239 ; [*0646.0020.0002] # EXCESS
+223A ; [*0647.0020.0002] # GEOMETRIC PROPORTION
+223B ; [*0648.0020.0002] # HOMOTHETIC
+223C ; [*0649.0020.0002] # TILDE OPERATOR
+223D ; [*064A.0020.0002] # REVERSED TILDE
+223E ; [*064B.0020.0002] # INVERTED LAZY S
+223F ; [*064C.0020.0002] # SINE WAVE
+2240 ; [*064D.0020.0002] # WREATH PRODUCT
+2241 ; [*0649.0020.0002][.0000.002F.0002] # NOT TILDE
+2242 ; [*064E.0020.0002] # MINUS TILDE
+2243 ; [*064F.0020.0002] # ASYMPTOTICALLY EQUAL TO
+2244 ; [*064F.0020.0002][.0000.002F.0002] # NOT ASYMPTOTICALLY EQUAL TO
+2245 ; [*0650.0020.0002] # APPROXIMATELY EQUAL TO
+2246 ; [*0651.0020.0002] # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+2247 ; [*0650.0020.0002][.0000.002F.0002] # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248 ; [*0652.0020.0002] # ALMOST EQUAL TO
+2249 ; [*0652.0020.0002][.0000.002F.0002] # NOT ALMOST EQUAL TO
+224A ; [*0653.0020.0002] # ALMOST EQUAL OR EQUAL TO
+224B ; [*0654.0020.0002] # TRIPLE TILDE
+224C ; [*0655.0020.0002] # ALL EQUAL TO
+224D ; [*0656.0020.0002] # EQUIVALENT TO
+224E ; [*0657.0020.0002] # GEOMETRICALLY EQUIVALENT TO
+224F ; [*0658.0020.0002] # DIFFERENCE BETWEEN
+2250 ; [*0659.0020.0002] # APPROACHES THE LIMIT
+2251 ; [*065A.0020.0002] # GEOMETRICALLY EQUAL TO
+2252 ; [*065B.0020.0002] # APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253 ; [*065C.0020.0002] # IMAGE OF OR APPROXIMATELY EQUAL TO
+2254 ; [*065D.0020.0002] # COLON EQUALS
+2255 ; [*065E.0020.0002] # EQUALS COLON
+2256 ; [*065F.0020.0002] # RING IN EQUAL TO
+2257 ; [*0660.0020.0002] # RING EQUAL TO
+2258 ; [*0661.0020.0002] # CORRESPONDS TO
+2259 ; [*0662.0020.0002] # ESTIMATES
+225A ; [*0663.0020.0002] # EQUIANGULAR TO
+225B ; [*0664.0020.0002] # STAR EQUALS
+225C ; [*0665.0020.0002] # DELTA EQUAL TO
+225D ; [*0666.0020.0002] # EQUAL TO BY DEFINITION
+225E ; [*0667.0020.0002] # MEASURED BY
+225F ; [*0668.0020.0002] # QUESTIONED EQUAL TO
+2260 ; [*061B.0020.0002][.0000.002F.0002] # NOT EQUAL TO
+2261 ; [*0669.0020.0002] # IDENTICAL TO
+2262 ; [*0669.0020.0002][.0000.002F.0002] # NOT IDENTICAL TO
+2263 ; [*066A.0020.0002] # STRICTLY EQUIVALENT TO
+2264 ; [*066B.0020.0002] # LESS-THAN OR EQUAL TO
+2265 ; [*066C.0020.0002] # GREATER-THAN OR EQUAL TO
+2266 ; [*066D.0020.0002] # LESS-THAN OVER EQUAL TO
+2267 ; [*066E.0020.0002] # GREATER-THAN OVER EQUAL TO
+2268 ; [*066F.0020.0002] # LESS-THAN BUT NOT EQUAL TO
+2269 ; [*0670.0020.0002] # GREATER-THAN BUT NOT EQUAL TO
+226A ; [*0671.0020.0002] # MUCH LESS-THAN
+226B ; [*0672.0020.0002] # MUCH GREATER-THAN
+226C ; [*0673.0020.0002] # BETWEEN
+226D ; [*0656.0020.0002][.0000.002F.0002] # NOT EQUIVALENT TO
+226E ; [*061A.0020.0002][.0000.002F.0002] # NOT LESS-THAN
+226F ; [*061C.0020.0002][.0000.002F.0002] # NOT GREATER-THAN
+2270 ; [*066B.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUAL TO
+2271 ; [*066C.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUAL TO
+2272 ; [*0674.0020.0002] # LESS-THAN OR EQUIVALENT TO
+2273 ; [*0675.0020.0002] # GREATER-THAN OR EQUIVALENT TO
+2274 ; [*0674.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUIVALENT TO
+2275 ; [*0675.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUIVALENT TO
+2276 ; [*0676.0020.0002] # LESS-THAN OR GREATER-THAN
+2277 ; [*0677.0020.0002] # GREATER-THAN OR LESS-THAN
+2278 ; [*0676.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR GREATER-THAN
+2279 ; [*0677.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR LESS-THAN
+227A ; [*0678.0020.0002] # PRECEDES
+227B ; [*0679.0020.0002] # SUCCEEDS
+227C ; [*067A.0020.0002] # PRECEDES OR EQUAL TO
+227D ; [*067B.0020.0002] # SUCCEEDS OR EQUAL TO
+227E ; [*067C.0020.0002] # PRECEDES OR EQUIVALENT TO
+227F ; [*067D.0020.0002] # SUCCEEDS OR EQUIVALENT TO
+2280 ; [*0678.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE
+2281 ; [*0679.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED
+2282 ; [*067E.0020.0002] # SUBSET OF
+2283 ; [*067F.0020.0002] # SUPERSET OF
+2284 ; [*067E.0020.0002][.0000.002F.0002] # NOT A SUBSET OF
+2285 ; [*067F.0020.0002][.0000.002F.0002] # NOT A SUPERSET OF
+2286 ; [*0680.0020.0002] # SUBSET OF OR EQUAL TO
+2287 ; [*0681.0020.0002] # SUPERSET OF OR EQUAL TO
+2288 ; [*0680.0020.0002][.0000.002F.0002] # NEITHER A SUBSET OF NOR EQUAL TO
+2289 ; [*0681.0020.0002][.0000.002F.0002] # NEITHER A SUPERSET OF NOR EQUAL TO
+228A ; [*0682.0020.0002] # SUBSET OF WITH NOT EQUAL TO
+228B ; [*0683.0020.0002] # SUPERSET OF WITH NOT EQUAL TO
+228C ; [*0684.0020.0002] # MULTISET
+228D ; [*0685.0020.0002] # MULTISET MULTIPLICATION
+228E ; [*0686.0020.0002] # MULTISET UNION
+228F ; [*0687.0020.0002] # SQUARE IMAGE OF
+2290 ; [*0688.0020.0002] # SQUARE ORIGINAL OF
+2291 ; [*0689.0020.0002] # SQUARE IMAGE OF OR EQUAL TO
+2292 ; [*068A.0020.0002] # SQUARE ORIGINAL OF OR EQUAL TO
+2293 ; [*068B.0020.0002] # SQUARE CAP
+2294 ; [*068C.0020.0002] # SQUARE CUP
+2295 ; [*068D.0020.0002] # CIRCLED PLUS
+2296 ; [*068E.0020.0002] # CIRCLED MINUS
+2297 ; [*068F.0020.0002] # CIRCLED TIMES
+2298 ; [*0690.0020.0002] # CIRCLED DIVISION SLASH
+2299 ; [*0691.0020.0002] # CIRCLED DOT OPERATOR
+229A ; [*0692.0020.0002] # CIRCLED RING OPERATOR
+229B ; [*0693.0020.0002] # CIRCLED ASTERISK OPERATOR
+229C ; [*0694.0020.0002] # CIRCLED EQUALS
+229D ; [*0695.0020.0002] # CIRCLED DASH
+229E ; [*0696.0020.0002] # SQUARED PLUS
+229F ; [*0697.0020.0002] # SQUARED MINUS
+22A0 ; [*0698.0020.0002] # SQUARED TIMES
+22A1 ; [*0699.0020.0002] # SQUARED DOT OPERATOR
+22A2 ; [*069A.0020.0002] # RIGHT TACK
+22A3 ; [*069B.0020.0002] # LEFT TACK
+22A4 ; [*069C.0020.0002] # DOWN TACK
+22A5 ; [*069D.0020.0002] # UP TACK
+22A6 ; [*069E.0020.0002] # ASSERTION
+22A7 ; [*069F.0020.0002] # MODELS
+22A8 ; [*06A0.0020.0002] # TRUE
+22A9 ; [*06A1.0020.0002] # FORCES
+22AA ; [*06A2.0020.0002] # TRIPLE VERTICAL BAR RIGHT TURNSTILE
+22AB ; [*06A3.0020.0002] # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22AC ; [*069A.0020.0002][.0000.002F.0002] # DOES NOT PROVE
+22AD ; [*06A0.0020.0002][.0000.002F.0002] # NOT TRUE
+22AE ; [*06A1.0020.0002][.0000.002F.0002] # DOES NOT FORCE
+22AF ; [*06A3.0020.0002][.0000.002F.0002] # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22B0 ; [*06A4.0020.0002] # PRECEDES UNDER RELATION
+22B1 ; [*06A5.0020.0002] # SUCCEEDS UNDER RELATION
+22B2 ; [*06A6.0020.0002] # NORMAL SUBGROUP OF
+22B3 ; [*06A7.0020.0002] # CONTAINS AS NORMAL SUBGROUP
+22B4 ; [*06A8.0020.0002] # NORMAL SUBGROUP OF OR EQUAL TO
+22B5 ; [*06A9.0020.0002] # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+22B6 ; [*06AA.0020.0002] # ORIGINAL OF
+22B7 ; [*06AB.0020.0002] # IMAGE OF
+22B8 ; [*06AC.0020.0002] # MULTIMAP
+22B9 ; [*06AD.0020.0002] # HERMITIAN CONJUGATE MATRIX
+22BA ; [*06AE.0020.0002] # INTERCALATE
+22BB ; [*06AF.0020.0002] # XOR
+22BC ; [*06B0.0020.0002] # NAND
+22BD ; [*06B2.0020.0002] # NOR
+22BE ; [*06B3.0020.0002] # RIGHT ANGLE WITH ARC
+22BF ; [*06B4.0020.0002] # RIGHT TRIANGLE
+22C0 ; [*06B5.0020.0002] # N-ARY LOGICAL AND
+22C1 ; [*06B6.0020.0002] # N-ARY LOGICAL OR
+22C2 ; [*06B7.0020.0002] # N-ARY INTERSECTION
+22C3 ; [*06B8.0020.0002] # N-ARY UNION
+22C4 ; [*06B9.0020.0002] # DIAMOND OPERATOR
+22C5 ; [*06BA.0020.0002] # DOT OPERATOR
+22C6 ; [*06BB.0020.0002] # STAR OPERATOR
+22C7 ; [*06BC.0020.0002] # DIVISION TIMES
+22C8 ; [*06BD.0020.0002] # BOWTIE
+22C9 ; [*06BE.0020.0002] # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CA ; [*06BF.0020.0002] # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CB ; [*06C0.0020.0002] # LEFT SEMIDIRECT PRODUCT
+22CC ; [*06C1.0020.0002] # RIGHT SEMIDIRECT PRODUCT
+22CD ; [*06C2.0020.0002] # REVERSED TILDE EQUALS
+22CE ; [*06C3.0020.0002] # CURLY LOGICAL OR
+22CF ; [*06C4.0020.0002] # CURLY LOGICAL AND
+22D0 ; [*06C5.0020.0002] # DOUBLE SUBSET
+22D1 ; [*06C6.0020.0002] # DOUBLE SUPERSET
+22D2 ; [*06C7.0020.0002] # DOUBLE INTERSECTION
+22D3 ; [*06C8.0020.0002] # DOUBLE UNION
+22D4 ; [*06C9.0020.0002] # PITCHFORK
+22D5 ; [*06CA.0020.0002] # EQUAL AND PARALLEL TO
+22D6 ; [*06CB.0020.0002] # LESS-THAN WITH DOT
+22D7 ; [*06CC.0020.0002] # GREATER-THAN WITH DOT
+22D8 ; [*06CD.0020.0002] # VERY MUCH LESS-THAN
+22D9 ; [*06CE.0020.0002] # VERY MUCH GREATER-THAN
+22DA ; [*06CF.0020.0002] # LESS-THAN EQUAL TO OR GREATER-THAN
+22DB ; [*06D0.0020.0002] # GREATER-THAN EQUAL TO OR LESS-THAN
+22DC ; [*06D1.0020.0002] # EQUAL TO OR LESS-THAN
+22DD ; [*06D2.0020.0002] # EQUAL TO OR GREATER-THAN
+22DE ; [*06D3.0020.0002] # EQUAL TO OR PRECEDES
+22DF ; [*06D4.0020.0002] # EQUAL TO OR SUCCEEDS
+22E0 ; [*067A.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE OR EQUAL
+22E1 ; [*067B.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED OR EQUAL
+22E2 ; [*0689.0020.0002][.0000.002F.0002] # NOT SQUARE IMAGE OF OR EQUAL TO
+22E3 ; [*068A.0020.0002][.0000.002F.0002] # NOT SQUARE ORIGINAL OF OR EQUAL TO
+22E4 ; [*06D5.0020.0002] # SQUARE IMAGE OF OR NOT EQUAL TO
+22E5 ; [*06D6.0020.0002] # SQUARE ORIGINAL OF OR NOT EQUAL TO
+22E6 ; [*06D7.0020.0002] # LESS-THAN BUT NOT EQUIVALENT TO
+22E7 ; [*06D8.0020.0002] # GREATER-THAN BUT NOT EQUIVALENT TO
+22E8 ; [*06D9.0020.0002] # PRECEDES BUT NOT EQUIVALENT TO
+22E9 ; [*06DA.0020.0002] # SUCCEEDS BUT NOT EQUIVALENT TO
+22EA ; [*06A6.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF
+22EB ; [*06A7.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP
+22EC ; [*06A8.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF OR EQUAL TO
+22ED ; [*06A9.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+22EE ; [*06DB.0020.0002] # VERTICAL ELLIPSIS
+22EF ; [*06DC.0020.0002] # MIDLINE HORIZONTAL ELLIPSIS
+22F0 ; [*06DD.0020.0002] # UP RIGHT DIAGONAL ELLIPSIS
+22F1 ; [*06DE.0020.0002] # DOWN RIGHT DIAGONAL ELLIPSIS
+22F2 ; [*06DF.0020.0002] # ELEMENT OF WITH LONG HORIZONTAL STROKE
+22F3 ; [*06E0.0020.0002] # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F4 ; [*06E1.0020.0002] # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F5 ; [*06E2.0020.0002] # ELEMENT OF WITH DOT ABOVE
+22F6 ; [*06E3.0020.0002] # ELEMENT OF WITH OVERBAR
+22F7 ; [*06E4.0020.0002] # SMALL ELEMENT OF WITH OVERBAR
+22F8 ; [*06E5.0020.0002] # ELEMENT OF WITH UNDERBAR
+22F9 ; [*06E6.0020.0002] # ELEMENT OF WITH TWO HORIZONTAL STROKES
+22FA ; [*06E7.0020.0002] # CONTAINS WITH LONG HORIZONTAL STROKE
+22FB ; [*06E8.0020.0002] # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FC ; [*06E9.0020.0002] # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FD ; [*06EA.0020.0002] # CONTAINS WITH OVERBAR
+22FE ; [*06EB.0020.0002] # SMALL CONTAINS WITH OVERBAR
+22FF ; [*06EC.0020.0002] # Z NOTATION BAG MEMBERSHIP
+2300 ; [*06ED.0020.0002] # DIAMETER SIGN
+2301 ; [*06EE.0020.0002] # ELECTRIC ARROW
+2302 ; [*06EF.0020.0002] # HOUSE
+2303 ; [*06F0.0020.0002] # UP ARROWHEAD
+2304 ; [*06F1.0020.0002] # DOWN ARROWHEAD
+2305 ; [*06F2.0020.0002] # PROJECTIVE
+2306 ; [*06F3.0020.0002] # PERSPECTIVE
+2307 ; [*06F4.0020.0002] # WAVY LINE
+2308 ; [*0325.0020.0002] # LEFT CEILING
+2309 ; [*0326.0020.0002] # RIGHT CEILING
+230A ; [*0327.0020.0002] # LEFT FLOOR
+230B ; [*0328.0020.0002] # RIGHT FLOOR
+230C ; [*06F5.0020.0002] # BOTTOM RIGHT CROP
+230D ; [*06F6.0020.0002] # BOTTOM LEFT CROP
+230E ; [*06F7.0020.0002] # TOP RIGHT CROP
+230F ; [*06F8.0020.0002] # TOP LEFT CROP
+2310 ; [*06F9.0020.0002] # REVERSED NOT SIGN
+2311 ; [*06FA.0020.0002] # SQUARE LOZENGE
+2312 ; [*06FB.0020.0002] # ARC
+2313 ; [*06FC.0020.0002] # SEGMENT
+2314 ; [*06FD.0020.0002] # SECTOR
+2315 ; [*06FE.0020.0002] # TELEPHONE RECORDER
+2316 ; [*06FF.0020.0002] # POSITION INDICATOR
+2317 ; [*0700.0020.0002] # VIEWDATA SQUARE
+2318 ; [*0701.0020.0002] # PLACE OF INTEREST SIGN
+2319 ; [*0702.0020.0002] # TURNED NOT SIGN
+231A ; [*0703.0020.0002] # WATCH
+231B ; [*0704.0020.0002] # HOURGLASS
+231C ; [*0705.0020.0002] # TOP LEFT CORNER
+231D ; [*0706.0020.0002] # TOP RIGHT CORNER
+231E ; [*0707.0020.0002] # BOTTOM LEFT CORNER
+231F ; [*0708.0020.0002] # BOTTOM RIGHT CORNER
+2320 ; [*0709.0020.0002] # TOP HALF INTEGRAL
+2321 ; [*070A.0020.0002] # BOTTOM HALF INTEGRAL
+2322 ; [*070B.0020.0002] # FROWN
+2323 ; [*070C.0020.0002] # SMILE
+2324 ; [*070D.0020.0002] # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
+2325 ; [*070E.0020.0002] # OPTION KEY
+2326 ; [*070F.0020.0002] # ERASE TO THE RIGHT
+2327 ; [*0710.0020.0002] # X IN A RECTANGLE BOX
+2328 ; [*0711.0020.0002] # KEYBOARD
+2329 ; [*036F.0020.0002] # LEFT-POINTING ANGLE BRACKET
+232A ; [*0370.0020.0002] # RIGHT-POINTING ANGLE BRACKET
+232B ; [*0712.0020.0002] # ERASE TO THE LEFT
+232C ; [*0713.0020.0002] # BENZENE RING
+232D ; [*0714.0020.0002] # CYLINDRICITY
+232E ; [*0715.0020.0002] # ALL AROUND-PROFILE
+232F ; [*0716.0020.0002] # SYMMETRY
+2330 ; [*0717.0020.0002] # TOTAL RUNOUT
+2331 ; [*0718.0020.0002] # DIMENSION ORIGIN
+2332 ; [*0719.0020.0002] # CONICAL TAPER
+2333 ; [*071A.0020.0002] # SLOPE
+2334 ; [*071B.0020.0002] # COUNTERBORE
+2335 ; [*071C.0020.0002] # COUNTERSINK
+2336 ; [*071D.0020.0002] # APL FUNCTIONAL SYMBOL I-BEAM
+2337 ; [*071E.0020.0002] # APL FUNCTIONAL SYMBOL SQUISH QUAD
+2338 ; [*071F.0020.0002] # APL FUNCTIONAL SYMBOL QUAD EQUAL
+2339 ; [*0720.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIVIDE
+233A ; [*0721.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIAMOND
+233B ; [*0722.0020.0002] # APL FUNCTIONAL SYMBOL QUAD JOT
+233C ; [*0723.0020.0002] # APL FUNCTIONAL SYMBOL QUAD CIRCLE
+233D ; [*0724.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STILE
+233E ; [*0725.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE JOT
+233F ; [*0726.0020.0002] # APL FUNCTIONAL SYMBOL SLASH BAR
+2340 ; [*0727.0020.0002] # APL FUNCTIONAL SYMBOL BACKSLASH BAR
+2341 ; [*0728.0020.0002] # APL FUNCTIONAL SYMBOL QUAD SLASH
+2342 ; [*0729.0020.0002] # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
+2343 ; [*072A.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
+2344 ; [*072B.0020.0002] # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
+2345 ; [*072C.0020.0002] # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
+2346 ; [*072D.0020.0002] # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
+2347 ; [*072E.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
+2348 ; [*072F.0020.0002] # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
+2349 ; [*0730.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
+234A ; [*0731.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
+234B ; [*0732.0020.0002] # APL FUNCTIONAL SYMBOL DELTA STILE
+234C ; [*0733.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
+234D ; [*0734.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DELTA
+234E ; [*0735.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK JOT
+234F ; [*0736.0020.0002] # APL FUNCTIONAL SYMBOL UPWARDS VANE
+2350 ; [*0737.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
+2351 ; [*0738.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
+2352 ; [*0739.0020.0002] # APL FUNCTIONAL SYMBOL DEL STILE
+2353 ; [*073A.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UP CARET
+2354 ; [*073B.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DEL
+2355 ; [*073C.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK JOT
+2356 ; [*073D.0020.0002] # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
+2357 ; [*073E.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
+2358 ; [*073F.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
+2359 ; [*0740.0020.0002] # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
+235A ; [*0741.0020.0002] # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
+235B ; [*0742.0020.0002] # APL FUNCTIONAL SYMBOL JOT UNDERBAR
+235C ; [*0743.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
+235D ; [*0744.0020.0002] # APL FUNCTIONAL SYMBOL UP SHOE JOT
+235E ; [*0745.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE QUAD
+235F ; [*0746.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STAR
+2360 ; [*0747.0020.0002] # APL FUNCTIONAL SYMBOL QUAD COLON
+2361 ; [*0748.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
+2362 ; [*0749.0020.0002] # APL FUNCTIONAL SYMBOL DEL DIAERESIS
+2363 ; [*074A.0020.0002] # APL FUNCTIONAL SYMBOL STAR DIAERESIS
+2364 ; [*074B.0020.0002] # APL FUNCTIONAL SYMBOL JOT DIAERESIS
+2365 ; [*074C.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
+2366 ; [*074D.0020.0002] # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
+2367 ; [*074E.0020.0002] # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
+2368 ; [*074F.0020.0002] # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
+2369 ; [*0750.0020.0002] # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
+236A ; [*0751.0020.0002] # APL FUNCTIONAL SYMBOL COMMA BAR
+236B ; [*0752.0020.0002] # APL FUNCTIONAL SYMBOL DEL TILDE
+236C ; [*0753.0020.0002] # APL FUNCTIONAL SYMBOL ZILDE
+236D ; [*0754.0020.0002] # APL FUNCTIONAL SYMBOL STILE TILDE
+236E ; [*0755.0020.0002] # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
+236F ; [*0756.0020.0002] # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
+2370 ; [*0757.0020.0002] # APL FUNCTIONAL SYMBOL QUAD QUESTION
+2371 ; [*0758.0020.0002] # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
+2372 ; [*0759.0020.0002] # APL FUNCTIONAL SYMBOL UP CARET TILDE
+2373 ; [*075A.0020.0002] # APL FUNCTIONAL SYMBOL IOTA
+2374 ; [*075B.0020.0002] # APL FUNCTIONAL SYMBOL RHO
+2375 ; [*075C.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA
+2376 ; [*075D.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
+2377 ; [*075E.0020.0002] # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
+2378 ; [*075F.0020.0002] # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
+2379 ; [*0760.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
+237A ; [*0761.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA
+237B ; [*0762.0020.0002] # NOT CHECK MARK
+237C ; [*0763.0020.0002] # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D ; [*0764.0020.0002] # SHOULDERED OPEN BOX
+237E ; [*0765.0020.0002] # BELL SYMBOL
+237F ; [*0766.0020.0002] # VERTICAL LINE WITH MIDDLE DOT
+2380 ; [*0767.0020.0002] # INSERTION SYMBOL
+2381 ; [*0768.0020.0002] # CONTINUOUS UNDERLINE SYMBOL
+2382 ; [*0769.0020.0002] # DISCONTINUOUS UNDERLINE SYMBOL
+2383 ; [*076A.0020.0002] # EMPHASIS SYMBOL
+2384 ; [*076B.0020.0002] # COMPOSITION SYMBOL
+2385 ; [*076C.0020.0002] # WHITE SQUARE WITH CENTRE VERTICAL LINE
+2386 ; [*076D.0020.0002] # ENTER SYMBOL
+2387 ; [*076E.0020.0002] # ALTERNATIVE KEY SYMBOL
+2388 ; [*076F.0020.0002] # HELM SYMBOL
+2389 ; [*0770.0020.0002] # CIRCLED HORIZONTAL BAR WITH NOTCH
+238A ; [*0771.0020.0002] # CIRCLED TRIANGLE DOWN
+238B ; [*0772.0020.0002] # BROKEN CIRCLE WITH NORTHWEST ARROW
+238C ; [*0773.0020.0002] # UNDO SYMBOL
+238D ; [*0774.0020.0002] # MONOSTABLE SYMBOL
+238E ; [*0775.0020.0002] # HYSTERESIS SYMBOL
+238F ; [*0776.0020.0002] # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
+2390 ; [*0777.0020.0002] # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
+2391 ; [*0778.0020.0002] # PASSIVE-PULL-DOWN-OUTPUT SYMBOL
+2392 ; [*0779.0020.0002] # PASSIVE-PULL-UP-OUTPUT SYMBOL
+2393 ; [*077A.0020.0002] # DIRECT CURRENT SYMBOL FORM TWO
+2394 ; [*077B.0020.0002] # SOFTWARE-FUNCTION SYMBOL
+2395 ; [*077C.0020.0002] # APL FUNCTIONAL SYMBOL QUAD
+2396 ; [*077D.0020.0002] # DECIMAL SEPARATOR KEY SYMBOL
+2397 ; [*077E.0020.0002] # PREVIOUS PAGE
+2398 ; [*077F.0020.0002] # NEXT PAGE
+2399 ; [*0780.0020.0002] # PRINT SCREEN SYMBOL
+239A ; [*0781.0020.0002] # CLEAR SCREEN SYMBOL
+239B ; [*0782.0020.0002] # LEFT PARENTHESIS UPPER HOOK
+239C ; [*0783.0020.0002] # LEFT PARENTHESIS EXTENSION
+239D ; [*0784.0020.0002] # LEFT PARENTHESIS LOWER HOOK
+239E ; [*0785.0020.0002] # RIGHT PARENTHESIS UPPER HOOK
+239F ; [*0786.0020.0002] # RIGHT PARENTHESIS EXTENSION
+23A0 ; [*0787.0020.0002] # RIGHT PARENTHESIS LOWER HOOK
+23A1 ; [*0788.0020.0002] # LEFT SQUARE BRACKET UPPER CORNER
+23A2 ; [*0789.0020.0002] # LEFT SQUARE BRACKET EXTENSION
+23A3 ; [*078A.0020.0002] # LEFT SQUARE BRACKET LOWER CORNER
+23A4 ; [*078B.0020.0002] # RIGHT SQUARE BRACKET UPPER CORNER
+23A5 ; [*078C.0020.0002] # RIGHT SQUARE BRACKET EXTENSION
+23A6 ; [*078D.0020.0002] # RIGHT SQUARE BRACKET LOWER CORNER
+23A7 ; [*078E.0020.0002] # LEFT CURLY BRACKET UPPER HOOK
+23A8 ; [*078F.0020.0002] # LEFT CURLY BRACKET MIDDLE PIECE
+23A9 ; [*0790.0020.0002] # LEFT CURLY BRACKET LOWER HOOK
+23AA ; [*0791.0020.0002] # CURLY BRACKET EXTENSION
+23AB ; [*0792.0020.0002] # RIGHT CURLY BRACKET UPPER HOOK
+23AC ; [*0793.0020.0002] # RIGHT CURLY BRACKET MIDDLE PIECE
+23AD ; [*0794.0020.0002] # RIGHT CURLY BRACKET LOWER HOOK
+23AE ; [*0795.0020.0002] # INTEGRAL EXTENSION
+23AF ; [*0796.0020.0002] # HORIZONTAL LINE EXTENSION
+23B0 ; [*0797.0020.0002] # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
+23B1 ; [*0798.0020.0002] # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
+23B2 ; [*0799.0020.0002] # SUMMATION TOP
+23B3 ; [*079A.0020.0002] # SUMMATION BOTTOM
+23B4 ; [*079B.0020.0002] # TOP SQUARE BRACKET
+23B5 ; [*079C.0020.0002] # BOTTOM SQUARE BRACKET
+23B6 ; [*079D.0020.0002] # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
+23B7 ; [*079E.0020.0002] # RADICAL SYMBOL BOTTOM
+23B8 ; [*079F.0020.0002] # LEFT VERTICAL BOX LINE
+23B9 ; [*07A0.0020.0002] # RIGHT VERTICAL BOX LINE
+23BA ; [*07A1.0020.0002] # HORIZONTAL SCAN LINE-1
+23BB ; [*07A2.0020.0002] # HORIZONTAL SCAN LINE-3
+23BC ; [*07A3.0020.0002] # HORIZONTAL SCAN LINE-7
+23BD ; [*07A4.0020.0002] # HORIZONTAL SCAN LINE-9
+23BE ; [*07A5.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
+23BF ; [*07A6.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
+23C0 ; [*07A7.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
+23C1 ; [*07A8.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
+23C2 ; [*07A9.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
+23C3 ; [*07AA.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
+23C4 ; [*07AB.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
+23C5 ; [*07AC.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
+23C6 ; [*07AD.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
+23C7 ; [*07AE.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
+23C8 ; [*07AF.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
+23C9 ; [*07B0.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
+23CA ; [*07B1.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
+23CB ; [*07B2.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
+23CC ; [*07B3.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
+23CD ; [*07B4.0020.0002] # SQUARE FOOT
+23CE ; [*07B5.0020.0002] # RETURN SYMBOL
+23CF ; [*07B6.0020.0002] # EJECT SYMBOL
+23D0 ; [*07B7.0020.0002] # VERTICAL LINE EXTENSION
+23D1 ; [*07B8.0020.0002] # METRICAL BREVE
+23D2 ; [*07B9.0020.0002] # METRICAL LONG OVER SHORT
+23D3 ; [*07BA.0020.0002] # METRICAL SHORT OVER LONG
+23D4 ; [*07BB.0020.0002] # METRICAL LONG OVER TWO SHORTS
+23D5 ; [*07BC.0020.0002] # METRICAL TWO SHORTS OVER LONG
+23D6 ; [*07BD.0020.0002] # METRICAL TWO SHORTS JOINED
+23D7 ; [*07BE.0020.0002] # METRICAL TRISEME
+23D8 ; [*07BF.0020.0002] # METRICAL TETRASEME
+23D9 ; [*07C0.0020.0002] # METRICAL PENTASEME
+23DA ; [*07C1.0020.0002] # EARTH GROUND
+23DB ; [*07C2.0020.0002] # FUSE
+23DC ; [*07C3.0020.0002] # TOP PARENTHESIS
+23DD ; [*07C4.0020.0002] # BOTTOM PARENTHESIS
+23DE ; [*07C5.0020.0002] # TOP CURLY BRACKET
+23DF ; [*07C6.0020.0002] # BOTTOM CURLY BRACKET
+23E0 ; [*07C7.0020.0002] # TOP TORTOISE SHELL BRACKET
+23E1 ; [*07C8.0020.0002] # BOTTOM TORTOISE SHELL BRACKET
+23E2 ; [*07C9.0020.0002] # WHITE TRAPEZIUM
+23E3 ; [*07CA.0020.0002] # BENZENE RING WITH CIRCLE
+23E4 ; [*07CB.0020.0002] # STRAIGHTNESS
+23E5 ; [*07CC.0020.0002] # FLATNESS
+23E6 ; [*07CD.0020.0002] # AC CURRENT
+23E7 ; [*07CE.0020.0002] # ELECTRICAL INTERSECTION
+23E8 ; [*07CF.0020.0002] # DECIMAL EXPONENT SYMBOL
+23E9 ; [*07D0.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE
+23EA ; [*07D1.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE
+23EB ; [*07D2.0020.0002] # BLACK UP-POINTING DOUBLE TRIANGLE
+23EC ; [*07D3.0020.0002] # BLACK DOWN-POINTING DOUBLE TRIANGLE
+23ED ; [*07D4.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
+23EE ; [*07D5.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
+23EF ; [*07D6.0020.0002] # BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23F0 ; [*07D7.0020.0002] # ALARM CLOCK
+23F1 ; [*07D8.0020.0002] # STOPWATCH
+23F2 ; [*07D9.0020.0002] # TIMER CLOCK
+23F3 ; [*07DA.0020.0002] # HOURGLASS WITH FLOWING SAND
+23F4 ; [*07DB.0020.0002] # BLACK MEDIUM LEFT-POINTING TRIANGLE
+23F5 ; [*07DC.0020.0002] # BLACK MEDIUM RIGHT-POINTING TRIANGLE
+23F6 ; [*07DD.0020.0002] # BLACK MEDIUM UP-POINTING TRIANGLE
+23F7 ; [*07DE.0020.0002] # BLACK MEDIUM DOWN-POINTING TRIANGLE
+23F8 ; [*07DF.0020.0002] # DOUBLE VERTICAL BAR
+23F9 ; [*07E0.0020.0002] # BLACK SQUARE FOR STOP
+23FA ; [*07E1.0020.0002] # BLACK CIRCLE FOR RECORD
+23FB ; [*07E2.0020.0002] # POWER SYMBOL
+23FC ; [*07E3.0020.0002] # POWER ON-OFF SYMBOL
+23FD ; [*07E4.0020.0002] # POWER ON SYMBOL
+23FE ; [*07E5.0020.0002] # POWER SLEEP SYMBOL
+2400 ; [*07E6.0020.0002] # SYMBOL FOR NULL
+2401 ; [*07E7.0020.0002] # SYMBOL FOR START OF HEADING
+2402 ; [*07E8.0020.0002] # SYMBOL FOR START OF TEXT
+2403 ; [*07E9.0020.0002] # SYMBOL FOR END OF TEXT
+2404 ; [*07EA.0020.0002] # SYMBOL FOR END OF TRANSMISSION
+2405 ; [*07EB.0020.0002] # SYMBOL FOR ENQUIRY
+2406 ; [*07EC.0020.0002] # SYMBOL FOR ACKNOWLEDGE
+2407 ; [*07ED.0020.0002] # SYMBOL FOR BELL
+2408 ; [*07EE.0020.0002] # SYMBOL FOR BACKSPACE
+2409 ; [*07EF.0020.0002] # SYMBOL FOR HORIZONTAL TABULATION
+240A ; [*07F0.0020.0002] # SYMBOL FOR LINE FEED
+240B ; [*07F1.0020.0002] # SYMBOL FOR VERTICAL TABULATION
+240C ; [*07F2.0020.0002] # SYMBOL FOR FORM FEED
+240D ; [*07F3.0020.0002] # SYMBOL FOR CARRIAGE RETURN
+240E ; [*07F4.0020.0002] # SYMBOL FOR SHIFT OUT
+240F ; [*07F5.0020.0002] # SYMBOL FOR SHIFT IN
+2410 ; [*07F6.0020.0002] # SYMBOL FOR DATA LINK ESCAPE
+2411 ; [*07F7.0020.0002] # SYMBOL FOR DEVICE CONTROL ONE
+2412 ; [*07F8.0020.0002] # SYMBOL FOR DEVICE CONTROL TWO
+2413 ; [*07F9.0020.0002] # SYMBOL FOR DEVICE CONTROL THREE
+2414 ; [*07FA.0020.0002] # SYMBOL FOR DEVICE CONTROL FOUR
+2415 ; [*07FB.0020.0002] # SYMBOL FOR NEGATIVE ACKNOWLEDGE
+2416 ; [*07FC.0020.0002] # SYMBOL FOR SYNCHRONOUS IDLE
+2417 ; [*07FD.0020.0002] # SYMBOL FOR END OF TRANSMISSION BLOCK
+2418 ; [*07FE.0020.0002] # SYMBOL FOR CANCEL
+2419 ; [*07FF.0020.0002] # SYMBOL FOR END OF MEDIUM
+241A ; [*0800.0020.0002] # SYMBOL FOR SUBSTITUTE
+241B ; [*0801.0020.0002] # SYMBOL FOR ESCAPE
+241C ; [*0802.0020.0002] # SYMBOL FOR FILE SEPARATOR
+241D ; [*0803.0020.0002] # SYMBOL FOR GROUP SEPARATOR
+241E ; [*0804.0020.0002] # SYMBOL FOR RECORD SEPARATOR
+241F ; [*0805.0020.0002] # SYMBOL FOR UNIT SEPARATOR
+2420 ; [*0806.0020.0002] # SYMBOL FOR SPACE
+2421 ; [*0807.0020.0002] # SYMBOL FOR DELETE
+2422 ; [*0808.0020.0002] # BLANK SYMBOL
+2423 ; [*0809.0020.0002] # OPEN BOX
+2424 ; [*080A.0020.0002] # SYMBOL FOR NEWLINE
+2425 ; [*080B.0020.0002] # SYMBOL FOR DELETE FORM TWO
+2426 ; [*080C.0020.0002] # SYMBOL FOR SUBSTITUTE FORM TWO
+2440 ; [*080D.0020.0002] # OCR HOOK
+2441 ; [*080E.0020.0002] # OCR CHAIR
+2442 ; [*080F.0020.0002] # OCR FORK
+2443 ; [*0810.0020.0002] # OCR INVERTED FORK
+2444 ; [*0811.0020.0002] # OCR BELT BUCKLE
+2445 ; [*0812.0020.0002] # OCR BOW TIE
+2446 ; [*0813.0020.0002] # OCR BRANCH BANK IDENTIFICATION
+2447 ; [*0814.0020.0002] # OCR AMOUNT OF CHECK
+2448 ; [*0815.0020.0002] # OCR DASH
+2449 ; [*0816.0020.0002] # OCR CUSTOMER ACCOUNT NUMBER
+244A ; [*0817.0020.0002] # OCR DOUBLE BACKSLASH
+2500 ; [*0818.0020.0002] # BOX DRAWINGS LIGHT HORIZONTAL
+2501 ; [*0819.0020.0002] # BOX DRAWINGS HEAVY HORIZONTAL
+2502 ; [*081A.0020.0002] # BOX DRAWINGS LIGHT VERTICAL
+2503 ; [*081B.0020.0002] # BOX DRAWINGS HEAVY VERTICAL
+2504 ; [*081C.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+2505 ; [*081D.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+2506 ; [*081E.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+2507 ; [*081F.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+2508 ; [*0820.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+2509 ; [*0821.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+250A ; [*0822.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+250B ; [*0823.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+250C ; [*0824.0020.0002] # BOX DRAWINGS LIGHT DOWN AND RIGHT
+250D ; [*0825.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+250E ; [*0826.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+250F ; [*0827.0020.0002] # BOX DRAWINGS HEAVY DOWN AND RIGHT
+2510 ; [*0828.0020.0002] # BOX DRAWINGS LIGHT DOWN AND LEFT
+2511 ; [*0829.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+2512 ; [*082A.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+2513 ; [*082B.0020.0002] # BOX DRAWINGS HEAVY DOWN AND LEFT
+2514 ; [*082C.0020.0002] # BOX DRAWINGS LIGHT UP AND RIGHT
+2515 ; [*082D.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+2516 ; [*082E.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+2517 ; [*082F.0020.0002] # BOX DRAWINGS HEAVY UP AND RIGHT
+2518 ; [*0830.0020.0002] # BOX DRAWINGS LIGHT UP AND LEFT
+2519 ; [*0831.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+251A ; [*0832.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+251B ; [*0833.0020.0002] # BOX DRAWINGS HEAVY UP AND LEFT
+251C ; [*0834.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+251D ; [*0835.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+251E ; [*0836.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+251F ; [*0837.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+2520 ; [*0838.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+2521 ; [*0839.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+2522 ; [*083A.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+2523 ; [*083B.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+2524 ; [*083C.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+2525 ; [*083D.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+2526 ; [*083E.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+2527 ; [*083F.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+2528 ; [*0840.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+2529 ; [*0841.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+252A ; [*0842.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+252B ; [*0843.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND LEFT
+252C ; [*0844.0020.0002] # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+252D ; [*0845.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+252E ; [*0846.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+252F ; [*0847.0020.0002] # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+2530 ; [*0848.0020.0002] # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+2531 ; [*0849.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+2532 ; [*084A.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+2533 ; [*084B.0020.0002] # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+2534 ; [*084C.0020.0002] # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+2535 ; [*084D.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+2536 ; [*084E.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+2537 ; [*084F.0020.0002] # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+2538 ; [*0850.0020.0002] # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+2539 ; [*0851.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+253A ; [*0852.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+253B ; [*0853.0020.0002] # BOX DRAWINGS HEAVY UP AND HORIZONTAL
+253C ; [*0854.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+253D ; [*0855.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+253E ; [*0856.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+253F ; [*0857.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+2540 ; [*0858.0020.0002] # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+2541 ; [*0859.0020.0002] # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+2542 ; [*085A.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+2543 ; [*085B.0020.0002] # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+2544 ; [*085C.0020.0002] # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+2545 ; [*085D.0020.0002] # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+2546 ; [*085E.0020.0002] # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+2547 ; [*085F.0020.0002] # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+2548 ; [*0860.0020.0002] # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+2549 ; [*0861.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+254A ; [*0862.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+254B ; [*0863.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C ; [*0864.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
+254D ; [*0865.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
+254E ; [*0866.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
+254F ; [*0867.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550 ; [*0868.0020.0002] # BOX DRAWINGS DOUBLE HORIZONTAL
+2551 ; [*0869.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL
+2552 ; [*086A.0020.0002] # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+2553 ; [*086B.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+2554 ; [*086C.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+2555 ; [*086D.0020.0002] # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+2556 ; [*086E.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+2557 ; [*086F.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND LEFT
+2558 ; [*0870.0020.0002] # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+2559 ; [*0871.0020.0002] # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+255A ; [*0872.0020.0002] # BOX DRAWINGS DOUBLE UP AND RIGHT
+255B ; [*0873.0020.0002] # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+255C ; [*0874.0020.0002] # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+255D ; [*0875.0020.0002] # BOX DRAWINGS DOUBLE UP AND LEFT
+255E ; [*0876.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+255F ; [*0877.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+2560 ; [*0878.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+2561 ; [*0879.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+2562 ; [*087A.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+2563 ; [*087B.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+2564 ; [*087C.0020.0002] # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+2565 ; [*087D.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+2566 ; [*087E.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+2567 ; [*087F.0020.0002] # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+2568 ; [*0880.0020.0002] # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+2569 ; [*0881.0020.0002] # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+256A ; [*0882.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+256B ; [*0883.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+256C ; [*0884.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+256D ; [*0885.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+256E ; [*0886.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+256F ; [*0887.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND LEFT
+2570 ; [*0888.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND RIGHT
+2571 ; [*0889.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+2572 ; [*088A.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+2573 ; [*088B.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL CROSS
+2574 ; [*088C.0020.0002] # BOX DRAWINGS LIGHT LEFT
+2575 ; [*088D.0020.0002] # BOX DRAWINGS LIGHT UP
+2576 ; [*088E.0020.0002] # BOX DRAWINGS LIGHT RIGHT
+2577 ; [*088F.0020.0002] # BOX DRAWINGS LIGHT DOWN
+2578 ; [*0890.0020.0002] # BOX DRAWINGS HEAVY LEFT
+2579 ; [*0891.0020.0002] # BOX DRAWINGS HEAVY UP
+257A ; [*0892.0020.0002] # BOX DRAWINGS HEAVY RIGHT
+257B ; [*0893.0020.0002] # BOX DRAWINGS HEAVY DOWN
+257C ; [*0894.0020.0002] # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
+257D ; [*0895.0020.0002] # BOX DRAWINGS LIGHT UP AND HEAVY DOWN
+257E ; [*0896.0020.0002] # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
+257F ; [*0897.0020.0002] # BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580 ; [*0898.0020.0002] # UPPER HALF BLOCK
+2581 ; [*0899.0020.0002] # LOWER ONE EIGHTH BLOCK
+2582 ; [*089A.0020.0002] # LOWER ONE QUARTER BLOCK
+2583 ; [*089B.0020.0002] # LOWER THREE EIGHTHS BLOCK
+2584 ; [*089C.0020.0002] # LOWER HALF BLOCK
+2585 ; [*089D.0020.0002] # LOWER FIVE EIGHTHS BLOCK
+2586 ; [*089E.0020.0002] # LOWER THREE QUARTERS BLOCK
+2587 ; [*089F.0020.0002] # LOWER SEVEN EIGHTHS BLOCK
+2588 ; [*08A0.0020.0002] # FULL BLOCK
+2589 ; [*08A1.0020.0002] # LEFT SEVEN EIGHTHS BLOCK
+258A ; [*08A2.0020.0002] # LEFT THREE QUARTERS BLOCK
+258B ; [*08A3.0020.0002] # LEFT FIVE EIGHTHS BLOCK
+258C ; [*08A4.0020.0002] # LEFT HALF BLOCK
+258D ; [*08A5.0020.0002] # LEFT THREE EIGHTHS BLOCK
+258E ; [*08A6.0020.0002] # LEFT ONE QUARTER BLOCK
+258F ; [*08A7.0020.0002] # LEFT ONE EIGHTH BLOCK
+2590 ; [*08A8.0020.0002] # RIGHT HALF BLOCK
+2591 ; [*08A9.0020.0002] # LIGHT SHADE
+2592 ; [*08AA.0020.0002] # MEDIUM SHADE
+2593 ; [*08AB.0020.0002] # DARK SHADE
+2594 ; [*08AC.0020.0002] # UPPER ONE EIGHTH BLOCK
+2595 ; [*08AD.0020.0002] # RIGHT ONE EIGHTH BLOCK
+2596 ; [*08AE.0020.0002] # QUADRANT LOWER LEFT
+2597 ; [*08AF.0020.0002] # QUADRANT LOWER RIGHT
+2598 ; [*08B0.0020.0002] # QUADRANT UPPER LEFT
+2599 ; [*08B1.0020.0002] # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
+259A ; [*08B2.0020.0002] # QUADRANT UPPER LEFT AND LOWER RIGHT
+259B ; [*08B3.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
+259C ; [*08B4.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
+259D ; [*08B5.0020.0002] # QUADRANT UPPER RIGHT
+259E ; [*08B6.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT
+259F ; [*08B7.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0 ; [*08B8.0020.0002] # BLACK SQUARE
+25A1 ; [*08B9.0020.0002] # WHITE SQUARE
+25A2 ; [*08BA.0020.0002] # WHITE SQUARE WITH ROUNDED CORNERS
+25A3 ; [*08BB.0020.0002] # WHITE SQUARE CONTAINING BLACK SMALL SQUARE
+25A4 ; [*08BC.0020.0002] # SQUARE WITH HORIZONTAL FILL
+25A5 ; [*08BD.0020.0002] # SQUARE WITH VERTICAL FILL
+25A6 ; [*08BE.0020.0002] # SQUARE WITH ORTHOGONAL CROSSHATCH FILL
+25A7 ; [*08BF.0020.0002] # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
+25A8 ; [*08C0.0020.0002] # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
+25A9 ; [*08C1.0020.0002] # SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA ; [*08C2.0020.0002] # BLACK SMALL SQUARE
+25AB ; [*08C3.0020.0002] # WHITE SMALL SQUARE
+25AC ; [*08C4.0020.0002] # BLACK RECTANGLE
+25AD ; [*08C5.0020.0002] # WHITE RECTANGLE
+25AE ; [*08C6.0020.0002] # BLACK VERTICAL RECTANGLE
+25AF ; [*08C7.0020.0002] # WHITE VERTICAL RECTANGLE
+25B0 ; [*08C8.0020.0002] # BLACK PARALLELOGRAM
+25B1 ; [*08C9.0020.0002] # WHITE PARALLELOGRAM
+25B2 ; [*08CA.0020.0002] # BLACK UP-POINTING TRIANGLE
+25B3 ; [*08CB.0020.0002] # WHITE UP-POINTING TRIANGLE
+25B4 ; [*08CC.0020.0002] # BLACK UP-POINTING SMALL TRIANGLE
+25B5 ; [*08CD.0020.0002] # WHITE UP-POINTING SMALL TRIANGLE
+25B6 ; [*08CE.0020.0002] # BLACK RIGHT-POINTING TRIANGLE
+25B7 ; [*08CF.0020.0002] # WHITE RIGHT-POINTING TRIANGLE
+25B8 ; [*08D0.0020.0002] # BLACK RIGHT-POINTING SMALL TRIANGLE
+25B9 ; [*08D1.0020.0002] # WHITE RIGHT-POINTING SMALL TRIANGLE
+25BA ; [*08D2.0020.0002] # BLACK RIGHT-POINTING POINTER
+25BB ; [*08D3.0020.0002] # WHITE RIGHT-POINTING POINTER
+25BC ; [*08D4.0020.0002] # BLACK DOWN-POINTING TRIANGLE
+25BD ; [*08D5.0020.0002] # WHITE DOWN-POINTING TRIANGLE
+25BE ; [*08D6.0020.0002] # BLACK DOWN-POINTING SMALL TRIANGLE
+25BF ; [*08D7.0020.0002] # WHITE DOWN-POINTING SMALL TRIANGLE
+25C0 ; [*08D8.0020.0002] # BLACK LEFT-POINTING TRIANGLE
+25C1 ; [*08D9.0020.0002] # WHITE LEFT-POINTING TRIANGLE
+25C2 ; [*08DA.0020.0002] # BLACK LEFT-POINTING SMALL TRIANGLE
+25C3 ; [*08DB.0020.0002] # WHITE LEFT-POINTING SMALL TRIANGLE
+25C4 ; [*08DC.0020.0002] # BLACK LEFT-POINTING POINTER
+25C5 ; [*08DD.0020.0002] # WHITE LEFT-POINTING POINTER
+25C6 ; [*08DE.0020.0002] # BLACK DIAMOND
+25C7 ; [*08DF.0020.0002] # WHITE DIAMOND
+25C8 ; [*08E0.0020.0002] # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9 ; [*08E1.0020.0002] # FISHEYE
+25CA ; [*08E2.0020.0002] # LOZENGE
+25CB ; [*08E3.0020.0002] # WHITE CIRCLE
+25CC ; [*08E4.0020.0002] # DOTTED CIRCLE
+25CD ; [*08E5.0020.0002] # CIRCLE WITH VERTICAL FILL
+25CE ; [*08E6.0020.0002] # BULLSEYE
+25CF ; [*08E7.0020.0002] # BLACK CIRCLE
+25D0 ; [*08E8.0020.0002] # CIRCLE WITH LEFT HALF BLACK
+25D1 ; [*08E9.0020.0002] # CIRCLE WITH RIGHT HALF BLACK
+25D2 ; [*08EA.0020.0002] # CIRCLE WITH LOWER HALF BLACK
+25D3 ; [*08EB.0020.0002] # CIRCLE WITH UPPER HALF BLACK
+25D4 ; [*08EC.0020.0002] # CIRCLE WITH UPPER RIGHT QUADRANT BLACK
+25D5 ; [*08ED.0020.0002] # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
+25D6 ; [*08EE.0020.0002] # LEFT HALF BLACK CIRCLE
+25D7 ; [*08EF.0020.0002] # RIGHT HALF BLACK CIRCLE
+25D8 ; [*08F0.0020.0002] # INVERSE BULLET
+25D9 ; [*08F1.0020.0002] # INVERSE WHITE CIRCLE
+25DA ; [*08F2.0020.0002] # UPPER HALF INVERSE WHITE CIRCLE
+25DB ; [*08F3.0020.0002] # LOWER HALF INVERSE WHITE CIRCLE
+25DC ; [*08F4.0020.0002] # UPPER LEFT QUADRANT CIRCULAR ARC
+25DD ; [*08F5.0020.0002] # UPPER RIGHT QUADRANT CIRCULAR ARC
+25DE ; [*08F6.0020.0002] # LOWER RIGHT QUADRANT CIRCULAR ARC
+25DF ; [*08F7.0020.0002] # LOWER LEFT QUADRANT CIRCULAR ARC
+25E0 ; [*08F8.0020.0002] # UPPER HALF CIRCLE
+25E1 ; [*08F9.0020.0002] # LOWER HALF CIRCLE
+25E2 ; [*08FA.0020.0002] # BLACK LOWER RIGHT TRIANGLE
+25E3 ; [*08FB.0020.0002] # BLACK LOWER LEFT TRIANGLE
+25E4 ; [*08FC.0020.0002] # BLACK UPPER LEFT TRIANGLE
+25E5 ; [*08FD.0020.0002] # BLACK UPPER RIGHT TRIANGLE
+25E6 ; [*08FE.0020.0002] # WHITE BULLET
+25E7 ; [*08FF.0020.0002] # SQUARE WITH LEFT HALF BLACK
+25E8 ; [*0900.0020.0002] # SQUARE WITH RIGHT HALF BLACK
+25E9 ; [*0901.0020.0002] # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
+25EA ; [*0902.0020.0002] # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
+25EB ; [*0903.0020.0002] # WHITE SQUARE WITH VERTICAL BISECTING LINE
+25EC ; [*0904.0020.0002] # WHITE UP-POINTING TRIANGLE WITH DOT
+25ED ; [*0905.0020.0002] # UP-POINTING TRIANGLE WITH LEFT HALF BLACK
+25EE ; [*0906.0020.0002] # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF ; [*0907.0020.0002] # LARGE CIRCLE
+25F0 ; [*0908.0020.0002] # WHITE SQUARE WITH UPPER LEFT QUADRANT
+25F1 ; [*0909.0020.0002] # WHITE SQUARE WITH LOWER LEFT QUADRANT
+25F2 ; [*090A.0020.0002] # WHITE SQUARE WITH LOWER RIGHT QUADRANT
+25F3 ; [*090B.0020.0002] # WHITE SQUARE WITH UPPER RIGHT QUADRANT
+25F4 ; [*090C.0020.0002] # WHITE CIRCLE WITH UPPER LEFT QUADRANT
+25F5 ; [*090D.0020.0002] # WHITE CIRCLE WITH LOWER LEFT QUADRANT
+25F6 ; [*090E.0020.0002] # WHITE CIRCLE WITH LOWER RIGHT QUADRANT
+25F7 ; [*090F.0020.0002] # WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8 ; [*0910.0020.0002] # UPPER LEFT TRIANGLE
+25F9 ; [*0911.0020.0002] # UPPER RIGHT TRIANGLE
+25FA ; [*0912.0020.0002] # LOWER LEFT TRIANGLE
+25FB ; [*0913.0020.0002] # WHITE MEDIUM SQUARE
+25FC ; [*0914.0020.0002] # BLACK MEDIUM SQUARE
+25FD ; [*0915.0020.0002] # WHITE MEDIUM SMALL SQUARE
+25FE ; [*0916.0020.0002] # BLACK MEDIUM SMALL SQUARE
+25FF ; [*0917.0020.0002] # LOWER RIGHT TRIANGLE
+2600 ; [*0918.0020.0002] # BLACK SUN WITH RAYS
+2601 ; [*0919.0020.0002] # CLOUD
+2602 ; [*091A.0020.0002] # UMBRELLA
+2603 ; [*091B.0020.0002] # SNOWMAN
+2604 ; [*091C.0020.0002] # COMET
+2605 ; [*091D.0020.0002] # BLACK STAR
+2606 ; [*091E.0020.0002] # WHITE STAR
+2607 ; [*091F.0020.0002] # LIGHTNING
+2608 ; [*0920.0020.0002] # THUNDERSTORM
+2609 ; [*0921.0020.0002] # SUN
+260A ; [*0922.0020.0002] # ASCENDING NODE
+260B ; [*0923.0020.0002] # DESCENDING NODE
+260C ; [*0924.0020.0002] # CONJUNCTION
+260D ; [*0925.0020.0002] # OPPOSITION
+260E ; [*0926.0020.0002] # BLACK TELEPHONE
+260F ; [*0927.0020.0002] # WHITE TELEPHONE
+2610 ; [*0928.0020.0002] # BALLOT BOX
+2611 ; [*0929.0020.0002] # BALLOT BOX WITH CHECK
+2612 ; [*092A.0020.0002] # BALLOT BOX WITH X
+2613 ; [*092B.0020.0002] # SALTIRE
+2614 ; [*092C.0020.0002] # UMBRELLA WITH RAIN DROPS
+2615 ; [*092D.0020.0002] # HOT BEVERAGE
+2616 ; [*092E.0020.0002] # WHITE SHOGI PIECE
+2617 ; [*092F.0020.0002] # BLACK SHOGI PIECE
+2618 ; [*0930.0020.0002] # SHAMROCK
+2619 ; [*0931.0020.0002] # REVERSED ROTATED FLORAL HEART BULLET
+261A ; [*0932.0020.0002] # BLACK LEFT POINTING INDEX
+261B ; [*0933.0020.0002] # BLACK RIGHT POINTING INDEX
+261C ; [*0934.0020.0002] # WHITE LEFT POINTING INDEX
+261D ; [*0935.0020.0002] # WHITE UP POINTING INDEX
+261E ; [*0936.0020.0002] # WHITE RIGHT POINTING INDEX
+261F ; [*0937.0020.0002] # WHITE DOWN POINTING INDEX
+2620 ; [*0938.0020.0002] # SKULL AND CROSSBONES
+2621 ; [*0939.0020.0002] # CAUTION SIGN
+2622 ; [*093A.0020.0002] # RADIOACTIVE SIGN
+2623 ; [*093B.0020.0002] # BIOHAZARD SIGN
+2624 ; [*093C.0020.0002] # CADUCEUS
+2625 ; [*093D.0020.0002] # ANKH
+2626 ; [*093E.0020.0002] # ORTHODOX CROSS
+2627 ; [*093F.0020.0002] # CHI RHO
+2628 ; [*0940.0020.0002] # CROSS OF LORRAINE
+2629 ; [*0941.0020.0002] # CROSS OF JERUSALEM
+262A ; [*0942.0020.0002] # STAR AND CRESCENT
+262B ; [*0943.0020.0002] # FARSI SYMBOL
+262C ; [*0944.0020.0002] # ADI SHAKTI
+262D ; [*0945.0020.0002] # HAMMER AND SICKLE
+262E ; [*0946.0020.0002] # PEACE SYMBOL
+262F ; [*0947.0020.0002] # YIN YANG
+2630 ; [*0EA2.0020.0002] # TRIGRAM FOR HEAVEN
+2631 ; [*0EA3.0020.0002] # TRIGRAM FOR LAKE
+2632 ; [*0EA4.0020.0002] # TRIGRAM FOR FIRE
+2633 ; [*0EA5.0020.0002] # TRIGRAM FOR THUNDER
+2634 ; [*0EA6.0020.0002] # TRIGRAM FOR WIND
+2635 ; [*0EA7.0020.0002] # TRIGRAM FOR WATER
+2636 ; [*0EA8.0020.0002] # TRIGRAM FOR MOUNTAIN
+2637 ; [*0EA9.0020.0002] # TRIGRAM FOR EARTH
+2638 ; [*0948.0020.0002] # WHEEL OF DHARMA
+2639 ; [*0949.0020.0002] # WHITE FROWNING FACE
+263A ; [*094A.0020.0002] # WHITE SMILING FACE
+263B ; [*094B.0020.0002] # BLACK SMILING FACE
+263C ; [*094C.0020.0002] # WHITE SUN WITH RAYS
+263D ; [*094D.0020.0002] # FIRST QUARTER MOON
+263E ; [*094E.0020.0002] # LAST QUARTER MOON
+263F ; [*094F.0020.0002] # MERCURY
+2640 ; [*0950.0020.0002] # FEMALE SIGN
+2641 ; [*0951.0020.0002] # EARTH
+2642 ; [*0952.0020.0002] # MALE SIGN
+2643 ; [*0953.0020.0002] # JUPITER
+2644 ; [*0954.0020.0002] # SATURN
+2645 ; [*0955.0020.0002] # URANUS
+2646 ; [*0956.0020.0002] # NEPTUNE
+2647 ; [*0957.0020.0002] # PLUTO
+2648 ; [*0958.0020.0002] # ARIES
+2649 ; [*0959.0020.0002] # TAURUS
+264A ; [*095A.0020.0002] # GEMINI
+264B ; [*095B.0020.0002] # CANCER
+264C ; [*095C.0020.0002] # LEO
+264D ; [*095D.0020.0002] # VIRGO
+264E ; [*095E.0020.0002] # LIBRA
+264F ; [*095F.0020.0002] # SCORPIUS
+2650 ; [*0960.0020.0002] # SAGITTARIUS
+2651 ; [*0961.0020.0002] # CAPRICORN
+2652 ; [*0962.0020.0002] # AQUARIUS
+2653 ; [*0963.0020.0002] # PISCES
+2654 ; [*0964.0020.0002] # WHITE CHESS KING
+2655 ; [*0965.0020.0002] # WHITE CHESS QUEEN
+2656 ; [*0966.0020.0002] # WHITE CHESS ROOK
+2657 ; [*0967.0020.0002] # WHITE CHESS BISHOP
+2658 ; [*0968.0020.0002] # WHITE CHESS KNIGHT
+2659 ; [*0969.0020.0002] # WHITE CHESS PAWN
+265A ; [*096A.0020.0002] # BLACK CHESS KING
+265B ; [*096B.0020.0002] # BLACK CHESS QUEEN
+265C ; [*096C.0020.0002] # BLACK CHESS ROOK
+265D ; [*096D.0020.0002] # BLACK CHESS BISHOP
+265E ; [*096E.0020.0002] # BLACK CHESS KNIGHT
+265F ; [*096F.0020.0002] # BLACK CHESS PAWN
+2660 ; [*0970.0020.0002] # BLACK SPADE SUIT
+2661 ; [*0971.0020.0002] # WHITE HEART SUIT
+2662 ; [*0972.0020.0002] # WHITE DIAMOND SUIT
+2663 ; [*0973.0020.0002] # BLACK CLUB SUIT
+2664 ; [*0974.0020.0002] # WHITE SPADE SUIT
+2665 ; [*0975.0020.0002] # BLACK HEART SUIT
+2666 ; [*0976.0020.0002] # BLACK DIAMOND SUIT
+2667 ; [*0977.0020.0002] # WHITE CLUB SUIT
+2668 ; [*0978.0020.0002] # HOT SPRINGS
+2669 ; [*0979.0020.0002] # QUARTER NOTE
+266A ; [*097A.0020.0002] # EIGHTH NOTE
+266B ; [*097B.0020.0002] # BEAMED EIGHTH NOTES
+266C ; [*097C.0020.0002] # BEAMED SIXTEENTH NOTES
+266D ; [*10F3.0020.0002] # MUSIC FLAT SIGN
+266E ; [*10F4.0020.0002] # MUSIC NATURAL SIGN
+266F ; [*10F5.0020.0002] # MUSIC SHARP SIGN
+2670 ; [*097D.0020.0002] # WEST SYRIAC CROSS
+2671 ; [*097E.0020.0002] # EAST SYRIAC CROSS
+2672 ; [*097F.0020.0002] # UNIVERSAL RECYCLING SYMBOL
+2673 ; [*0980.0020.0002] # RECYCLING SYMBOL FOR TYPE-1 PLASTICS
+2674 ; [*0981.0020.0002] # RECYCLING SYMBOL FOR TYPE-2 PLASTICS
+2675 ; [*0982.0020.0002] # RECYCLING SYMBOL FOR TYPE-3 PLASTICS
+2676 ; [*0983.0020.0002] # RECYCLING SYMBOL FOR TYPE-4 PLASTICS
+2677 ; [*0984.0020.0002] # RECYCLING SYMBOL FOR TYPE-5 PLASTICS
+2678 ; [*0985.0020.0002] # RECYCLING SYMBOL FOR TYPE-6 PLASTICS
+2679 ; [*0986.0020.0002] # RECYCLING SYMBOL FOR TYPE-7 PLASTICS
+267A ; [*0987.0020.0002] # RECYCLING SYMBOL FOR GENERIC MATERIALS
+267B ; [*0988.0020.0002] # BLACK UNIVERSAL RECYCLING SYMBOL
+267C ; [*0989.0020.0002] # RECYCLED PAPER SYMBOL
+267D ; [*098A.0020.0002] # PARTIALLY-RECYCLED PAPER SYMBOL
+267E ; [*098B.0020.0002] # PERMANENT PAPER SIGN
+267F ; [*098C.0020.0002] # WHEELCHAIR SYMBOL
+2680 ; [*098D.0020.0002] # DIE FACE-1
+2681 ; [*098E.0020.0002] # DIE FACE-2
+2682 ; [*098F.0020.0002] # DIE FACE-3
+2683 ; [*0990.0020.0002] # DIE FACE-4
+2684 ; [*0991.0020.0002] # DIE FACE-5
+2685 ; [*0992.0020.0002] # DIE FACE-6
+2686 ; [*0993.0020.0002] # WHITE CIRCLE WITH DOT RIGHT
+2687 ; [*0994.0020.0002] # WHITE CIRCLE WITH TWO DOTS
+2688 ; [*0995.0020.0002] # BLACK CIRCLE WITH WHITE DOT RIGHT
+2689 ; [*0996.0020.0002] # BLACK CIRCLE WITH TWO WHITE DOTS
+268A ; [*0E9C.0020.0002] # MONOGRAM FOR YANG
+268B ; [*0E9D.0020.0002] # MONOGRAM FOR YIN
+268C ; [*0E9E.0020.0002] # DIGRAM FOR GREATER YANG
+268D ; [*0E9F.0020.0002] # DIGRAM FOR LESSER YIN
+268E ; [*0EA0.0020.0002] # DIGRAM FOR LESSER YANG
+268F ; [*0EA1.0020.0002] # DIGRAM FOR GREATER YIN
+2690 ; [*0997.0020.0002] # WHITE FLAG
+2691 ; [*0998.0020.0002] # BLACK FLAG
+2692 ; [*0999.0020.0002] # HAMMER AND PICK
+2693 ; [*099A.0020.0002] # ANCHOR
+2694 ; [*099B.0020.0002] # CROSSED SWORDS
+2695 ; [*099C.0020.0002] # STAFF OF AESCULAPIUS
+2696 ; [*099D.0020.0002] # SCALES
+2697 ; [*099E.0020.0002] # ALEMBIC
+2698 ; [*099F.0020.0002] # FLOWER
+2699 ; [*09A0.0020.0002] # GEAR
+269A ; [*09A1.0020.0002] # STAFF OF HERMES
+269B ; [*09A2.0020.0002] # ATOM SYMBOL
+269C ; [*09A3.0020.0002] # FLEUR-DE-LIS
+269D ; [*09A4.0020.0002] # OUTLINED WHITE STAR
+269E ; [*09A5.0020.0002] # THREE LINES CONVERGING RIGHT
+269F ; [*09A6.0020.0002] # THREE LINES CONVERGING LEFT
+26A0 ; [*09A7.0020.0002] # WARNING SIGN
+26A1 ; [*09A8.0020.0002] # HIGH VOLTAGE SIGN
+26A2 ; [*09A9.0020.0002] # DOUBLED FEMALE SIGN
+26A3 ; [*09AA.0020.0002] # DOUBLED MALE SIGN
+26A4 ; [*09AB.0020.0002] # INTERLOCKED FEMALE AND MALE SIGN
+26A5 ; [*09AC.0020.0002] # MALE AND FEMALE SIGN
+26A6 ; [*09AD.0020.0002] # MALE WITH STROKE SIGN
+26A7 ; [*09AE.0020.0002] # MALE WITH STROKE AND MALE AND FEMALE SIGN
+26A8 ; [*09AF.0020.0002] # VERTICAL MALE WITH STROKE SIGN
+26A9 ; [*09B0.0020.0002] # HORIZONTAL MALE WITH STROKE SIGN
+26AA ; [*09B1.0020.0002] # MEDIUM WHITE CIRCLE
+26AB ; [*09B2.0020.0002] # MEDIUM BLACK CIRCLE
+26AC ; [*09B3.0020.0002] # MEDIUM SMALL WHITE CIRCLE
+26AD ; [*09B4.0020.0002] # MARRIAGE SYMBOL
+26AE ; [*09B5.0020.0002] # DIVORCE SYMBOL
+26AF ; [*09B6.0020.0002] # UNMARRIED PARTNERSHIP SYMBOL
+26B0 ; [*09B7.0020.0002] # COFFIN
+26B1 ; [*09B8.0020.0002] # FUNERAL URN
+26B2 ; [*09B9.0020.0002] # NEUTER
+26B3 ; [*09BA.0020.0002] # CERES
+26B4 ; [*09BB.0020.0002] # PALLAS
+26B5 ; [*09BC.0020.0002] # JUNO
+26B6 ; [*09BD.0020.0002] # VESTA
+26B7 ; [*09BE.0020.0002] # CHIRON
+26B8 ; [*09BF.0020.0002] # BLACK MOON LILITH
+26B9 ; [*09C0.0020.0002] # SEXTILE
+26BA ; [*09C1.0020.0002] # SEMISEXTILE
+26BB ; [*09C2.0020.0002] # QUINCUNX
+26BC ; [*09C3.0020.0002] # SESQUIQUADRATE
+26BD ; [*09C4.0020.0002] # SOCCER BALL
+26BE ; [*09C5.0020.0002] # BASEBALL
+26BF ; [*09C6.0020.0002] # SQUARED KEY
+26C0 ; [*09C7.0020.0002] # WHITE DRAUGHTS MAN
+26C1 ; [*09C8.0020.0002] # WHITE DRAUGHTS KING
+26C2 ; [*09C9.0020.0002] # BLACK DRAUGHTS MAN
+26C3 ; [*09CA.0020.0002] # BLACK DRAUGHTS KING
+26C4 ; [*09CB.0020.0002] # SNOWMAN WITHOUT SNOW
+26C5 ; [*09CC.0020.0002] # SUN BEHIND CLOUD
+26C6 ; [*09CD.0020.0002] # RAIN
+26C7 ; [*09CE.0020.0002] # BLACK SNOWMAN
+26C8 ; [*09CF.0020.0002] # THUNDER CLOUD AND RAIN
+26C9 ; [*09D0.0020.0002] # TURNED WHITE SHOGI PIECE
+26CA ; [*09D1.0020.0002] # TURNED BLACK SHOGI PIECE
+26CB ; [*09D2.0020.0002] # WHITE DIAMOND IN SQUARE
+26CC ; [*09D3.0020.0002] # CROSSING LANES
+26CD ; [*09D4.0020.0002] # DISABLED CAR
+26CE ; [*09D5.0020.0002] # OPHIUCHUS
+26CF ; [*09D6.0020.0002] # PICK
+26D0 ; [*09D7.0020.0002] # CAR SLIDING
+26D1 ; [*09D8.0020.0002] # HELMET WITH WHITE CROSS
+26D2 ; [*09D9.0020.0002] # CIRCLED CROSSING LANES
+26D3 ; [*09DA.0020.0002] # CHAINS
+26D4 ; [*09DB.0020.0002] # NO ENTRY
+26D5 ; [*09DC.0020.0002] # ALTERNATE ONE-WAY LEFT WAY TRAFFIC
+26D6 ; [*09DD.0020.0002] # BLACK TWO-WAY LEFT WAY TRAFFIC
+26D7 ; [*09DE.0020.0002] # WHITE TWO-WAY LEFT WAY TRAFFIC
+26D8 ; [*09DF.0020.0002] # BLACK LEFT LANE MERGE
+26D9 ; [*09E0.0020.0002] # WHITE LEFT LANE MERGE
+26DA ; [*09E1.0020.0002] # DRIVE SLOW SIGN
+26DB ; [*09E2.0020.0002] # HEAVY WHITE DOWN-POINTING TRIANGLE
+26DC ; [*09E3.0020.0002] # LEFT CLOSED ENTRY
+26DD ; [*09E4.0020.0002] # SQUARED SALTIRE
+26DE ; [*09E5.0020.0002] # FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
+26DF ; [*09E6.0020.0002] # BLACK TRUCK
+26E0 ; [*09E7.0020.0002] # RESTRICTED LEFT ENTRY-1
+26E1 ; [*09E8.0020.0002] # RESTRICTED LEFT ENTRY-2
+26E2 ; [*09E9.0020.0002] # ASTRONOMICAL SYMBOL FOR URANUS
+26E3 ; [*09EA.0020.0002] # HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4 ; [*09EB.0020.0002] # PENTAGRAM
+26E5 ; [*09EC.0020.0002] # RIGHT-HANDED INTERLACED PENTAGRAM
+26E6 ; [*09ED.0020.0002] # LEFT-HANDED INTERLACED PENTAGRAM
+26E7 ; [*09EE.0020.0002] # INVERTED PENTAGRAM
+26E8 ; [*09EF.0020.0002] # BLACK CROSS ON SHIELD
+26E9 ; [*09F0.0020.0002] # SHINTO SHRINE
+26EA ; [*09F1.0020.0002] # CHURCH
+26EB ; [*09F2.0020.0002] # CASTLE
+26EC ; [*09F3.0020.0002] # HISTORIC SITE
+26ED ; [*09F4.0020.0002] # GEAR WITHOUT HUB
+26EE ; [*09F5.0020.0002] # GEAR WITH HANDLES
+26EF ; [*09F6.0020.0002] # MAP SYMBOL FOR LIGHTHOUSE
+26F0 ; [*09F7.0020.0002] # MOUNTAIN
+26F1 ; [*09F8.0020.0002] # UMBRELLA ON GROUND
+26F2 ; [*09F9.0020.0002] # FOUNTAIN
+26F3 ; [*09FA.0020.0002] # FLAG IN HOLE
+26F4 ; [*09FB.0020.0002] # FERRY
+26F5 ; [*09FC.0020.0002] # SAILBOAT
+26F6 ; [*09FD.0020.0002] # SQUARE FOUR CORNERS
+26F7 ; [*09FE.0020.0002] # SKIER
+26F8 ; [*09FF.0020.0002] # ICE SKATE
+26F9 ; [*0A00.0020.0002] # PERSON WITH BALL
+26FA ; [*0A01.0020.0002] # TENT
+26FB ; [*0A02.0020.0002] # JAPANESE BANK SYMBOL
+26FC ; [*0A03.0020.0002] # HEADSTONE GRAVEYARD SYMBOL
+26FD ; [*0A04.0020.0002] # FUEL PUMP
+26FE ; [*0A05.0020.0002] # CUP ON BLACK SQUARE
+26FF ; [*0A06.0020.0002] # WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700 ; [*0A21.0020.0002] # BLACK SAFETY SCISSORS
+2701 ; [*0A22.0020.0002] # UPPER BLADE SCISSORS
+2702 ; [*0A23.0020.0002] # BLACK SCISSORS
+2703 ; [*0A24.0020.0002] # LOWER BLADE SCISSORS
+2704 ; [*0A25.0020.0002] # WHITE SCISSORS
+2705 ; [*0A26.0020.0002] # WHITE HEAVY CHECK MARK
+2706 ; [*0A27.0020.0002] # TELEPHONE LOCATION SIGN
+2707 ; [*0A28.0020.0002] # TAPE DRIVE
+2708 ; [*0A29.0020.0002] # AIRPLANE
+2709 ; [*0A2A.0020.0002] # ENVELOPE
+270A ; [*0A2B.0020.0002] # RAISED FIST
+270B ; [*0A2C.0020.0002] # RAISED HAND
+270C ; [*0A2D.0020.0002] # VICTORY HAND
+270D ; [*0A2E.0020.0002] # WRITING HAND
+270E ; [*0A2F.0020.0002] # LOWER RIGHT PENCIL
+270F ; [*0A30.0020.0002] # PENCIL
+2710 ; [*0A31.0020.0002] # UPPER RIGHT PENCIL
+2711 ; [*0A32.0020.0002] # WHITE NIB
+2712 ; [*0A33.0020.0002] # BLACK NIB
+2713 ; [*0A34.0020.0002] # CHECK MARK
+2714 ; [*0A35.0020.0002] # HEAVY CHECK MARK
+2715 ; [*0A36.0020.0002] # MULTIPLICATION X
+2716 ; [*0A37.0020.0002] # HEAVY MULTIPLICATION X
+2717 ; [*0A38.0020.0002] # BALLOT X
+2718 ; [*0A39.0020.0002] # HEAVY BALLOT X
+2719 ; [*0A3A.0020.0002] # OUTLINED GREEK CROSS
+271A ; [*0A3B.0020.0002] # HEAVY GREEK CROSS
+271B ; [*0A3C.0020.0002] # OPEN CENTRE CROSS
+271C ; [*0A3D.0020.0002] # HEAVY OPEN CENTRE CROSS
+271D ; [*0A3E.0020.0002] # LATIN CROSS
+271E ; [*0A3F.0020.0002] # SHADOWED WHITE LATIN CROSS
+271F ; [*0A40.0020.0002] # OUTLINED LATIN CROSS
+2720 ; [*0A41.0020.0002] # MALTESE CROSS
+2721 ; [*0A42.0020.0002] # STAR OF DAVID
+2722 ; [*0A43.0020.0002] # FOUR TEARDROP-SPOKED ASTERISK
+2723 ; [*0A44.0020.0002] # FOUR BALLOON-SPOKED ASTERISK
+2724 ; [*0A45.0020.0002] # HEAVY FOUR BALLOON-SPOKED ASTERISK
+2725 ; [*0A46.0020.0002] # FOUR CLUB-SPOKED ASTERISK
+2726 ; [*0A47.0020.0002] # BLACK FOUR POINTED STAR
+2727 ; [*0A48.0020.0002] # WHITE FOUR POINTED STAR
+2728 ; [*0A49.0020.0002] # SPARKLES
+2729 ; [*0A4A.0020.0002] # STRESS OUTLINED WHITE STAR
+272A ; [*0A4B.0020.0002] # CIRCLED WHITE STAR
+272B ; [*0A4C.0020.0002] # OPEN CENTRE BLACK STAR
+272C ; [*0A4D.0020.0002] # BLACK CENTRE WHITE STAR
+272D ; [*0A4E.0020.0002] # OUTLINED BLACK STAR
+272E ; [*0A4F.0020.0002] # HEAVY OUTLINED BLACK STAR
+272F ; [*0A50.0020.0002] # PINWHEEL STAR
+2730 ; [*0A51.0020.0002] # SHADOWED WHITE STAR
+2731 ; [*0A52.0020.0002] # HEAVY ASTERISK
+2732 ; [*0A53.0020.0002] # OPEN CENTRE ASTERISK
+2733 ; [*0A54.0020.0002] # EIGHT SPOKED ASTERISK
+2734 ; [*0A55.0020.0002] # EIGHT POINTED BLACK STAR
+2735 ; [*0A56.0020.0002] # EIGHT POINTED PINWHEEL STAR
+2736 ; [*0A57.0020.0002] # SIX POINTED BLACK STAR
+2737 ; [*0A58.0020.0002] # EIGHT POINTED RECTILINEAR BLACK STAR
+2738 ; [*0A59.0020.0002] # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
+2739 ; [*0A5A.0020.0002] # TWELVE POINTED BLACK STAR
+273A ; [*0A5B.0020.0002] # SIXTEEN POINTED ASTERISK
+273B ; [*0A5C.0020.0002] # TEARDROP-SPOKED ASTERISK
+273C ; [*0A5D.0020.0002] # OPEN CENTRE TEARDROP-SPOKED ASTERISK
+273D ; [*0A5E.0020.0002] # HEAVY TEARDROP-SPOKED ASTERISK
+273E ; [*0A5F.0020.0002] # SIX PETALLED BLACK AND WHITE FLORETTE
+273F ; [*0A60.0020.0002] # BLACK FLORETTE
+2740 ; [*0A61.0020.0002] # WHITE FLORETTE
+2741 ; [*0A62.0020.0002] # EIGHT PETALLED OUTLINED BLACK FLORETTE
+2742 ; [*0A63.0020.0002] # CIRCLED OPEN CENTRE EIGHT POINTED STAR
+2743 ; [*0A64.0020.0002] # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
+2744 ; [*0A65.0020.0002] # SNOWFLAKE
+2745 ; [*0A66.0020.0002] # TIGHT TRIFOLIATE SNOWFLAKE
+2746 ; [*0A67.0020.0002] # HEAVY CHEVRON SNOWFLAKE
+2747 ; [*0A68.0020.0002] # SPARKLE
+2748 ; [*0A69.0020.0002] # HEAVY SPARKLE
+2749 ; [*0A6A.0020.0002] # BALLOON-SPOKED ASTERISK
+274A ; [*0A6B.0020.0002] # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274B ; [*0A6C.0020.0002] # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274C ; [*0A6D.0020.0002] # CROSS MARK
+274D ; [*0A6E.0020.0002] # SHADOWED WHITE CIRCLE
+274E ; [*0A6F.0020.0002] # NEGATIVE SQUARED CROSS MARK
+274F ; [*0A70.0020.0002] # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
+2750 ; [*0A71.0020.0002] # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
+2751 ; [*0A72.0020.0002] # LOWER RIGHT SHADOWED WHITE SQUARE
+2752 ; [*0A73.0020.0002] # UPPER RIGHT SHADOWED WHITE SQUARE
+2753 ; [*0A74.0020.0002] # BLACK QUESTION MARK ORNAMENT
+2754 ; [*0A75.0020.0002] # WHITE QUESTION MARK ORNAMENT
+2755 ; [*0A76.0020.0002] # WHITE EXCLAMATION MARK ORNAMENT
+2756 ; [*0A77.0020.0002] # BLACK DIAMOND MINUS WHITE X
+2757 ; [*0A78.0020.0002] # HEAVY EXCLAMATION MARK SYMBOL
+2758 ; [*0A79.0020.0002] # LIGHT VERTICAL BAR
+2759 ; [*0A7A.0020.0002] # MEDIUM VERTICAL BAR
+275A ; [*0A7B.0020.0002] # HEAVY VERTICAL BAR
+275B ; [*0A7C.0020.0002] # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
+275C ; [*0A7D.0020.0002] # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
+275D ; [*0A7E.0020.0002] # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+275E ; [*0A7F.0020.0002] # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+275F ; [*0A80.0020.0002] # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
+2760 ; [*0A81.0020.0002] # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761 ; [*0A82.0020.0002] # CURVED STEM PARAGRAPH SIGN ORNAMENT
+2762 ; [*0A83.0020.0002] # HEAVY EXCLAMATION MARK ORNAMENT
+2763 ; [*0A84.0020.0002] # HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764 ; [*0A85.0020.0002] # HEAVY BLACK HEART
+2765 ; [*0A86.0020.0002] # ROTATED HEAVY BLACK HEART BULLET
+2766 ; [*0A87.0020.0002] # FLORAL HEART
+2767 ; [*0A88.0020.0002] # ROTATED FLORAL HEART BULLET
+2768 ; [*034D.0020.0002] # MEDIUM LEFT PARENTHESIS ORNAMENT
+2769 ; [*034E.0020.0002] # MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A ; [*034F.0020.0002] # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B ; [*0350.0020.0002] # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C ; [*0351.0020.0002] # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D ; [*0352.0020.0002] # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E ; [*0353.0020.0002] # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F ; [*0354.0020.0002] # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770 ; [*0355.0020.0002] # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771 ; [*0356.0020.0002] # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772 ; [*0357.0020.0002] # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773 ; [*0358.0020.0002] # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774 ; [*0359.0020.0002] # MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775 ; [*035A.0020.0002] # MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2794 ; [*0A89.0020.0002] # HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2795 ; [*0A8A.0020.0002] # HEAVY PLUS SIGN
+2796 ; [*0A8B.0020.0002] # HEAVY MINUS SIGN
+2797 ; [*0A8C.0020.0002] # HEAVY DIVISION SIGN
+2798 ; [*0A8D.0020.0002] # HEAVY SOUTH EAST ARROW
+2799 ; [*0A8E.0020.0002] # HEAVY RIGHTWARDS ARROW
+279A ; [*0A8F.0020.0002] # HEAVY NORTH EAST ARROW
+279B ; [*0A90.0020.0002] # DRAFTING POINT RIGHTWARDS ARROW
+279C ; [*0A91.0020.0002] # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
+279D ; [*0A92.0020.0002] # TRIANGLE-HEADED RIGHTWARDS ARROW
+279E ; [*0A93.0020.0002] # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
+279F ; [*0A94.0020.0002] # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A0 ; [*0A95.0020.0002] # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A1 ; [*0A96.0020.0002] # BLACK RIGHTWARDS ARROW
+27A2 ; [*0A97.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
+27A3 ; [*0A98.0020.0002] # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
+27A4 ; [*0A99.0020.0002] # BLACK RIGHTWARDS ARROWHEAD
+27A5 ; [*0A9A.0020.0002] # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+27A6 ; [*0A9B.0020.0002] # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+27A7 ; [*0A9C.0020.0002] # SQUAT BLACK RIGHTWARDS ARROW
+27A8 ; [*0A9D.0020.0002] # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
+27A9 ; [*0A9E.0020.0002] # RIGHT-SHADED WHITE RIGHTWARDS ARROW
+27AA ; [*0A9F.0020.0002] # LEFT-SHADED WHITE RIGHTWARDS ARROW
+27AB ; [*0AA0.0020.0002] # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AC ; [*0AA1.0020.0002] # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AD ; [*0AA2.0020.0002] # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AE ; [*0AA3.0020.0002] # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AF ; [*0AA4.0020.0002] # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B0 ; [*0AA5.0020.0002] # CURLY LOOP
+27B1 ; [*0AA6.0020.0002] # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B2 ; [*0AA7.0020.0002] # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
+27B3 ; [*0AA8.0020.0002] # WHITE-FEATHERED RIGHTWARDS ARROW
+27B4 ; [*0AA9.0020.0002] # BLACK-FEATHERED SOUTH EAST ARROW
+27B5 ; [*0AAA.0020.0002] # BLACK-FEATHERED RIGHTWARDS ARROW
+27B6 ; [*0AAB.0020.0002] # BLACK-FEATHERED NORTH EAST ARROW
+27B7 ; [*0AAC.0020.0002] # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
+27B8 ; [*0AAD.0020.0002] # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
+27B9 ; [*0AAE.0020.0002] # HEAVY BLACK-FEATHERED NORTH EAST ARROW
+27BA ; [*0AAF.0020.0002] # TEARDROP-BARBED RIGHTWARDS ARROW
+27BB ; [*0AB0.0020.0002] # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
+27BC ; [*0AB1.0020.0002] # WEDGE-TAILED RIGHTWARDS ARROW
+27BD ; [*0AB2.0020.0002] # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
+27BE ; [*0AB3.0020.0002] # OPEN-OUTLINED RIGHTWARDS ARROW
+27BF ; [*0AB4.0020.0002] # DOUBLE CURLY LOOP
+27C0 ; [*0AB5.0020.0002] # THREE DIMENSIONAL ANGLE
+27C1 ; [*0AB6.0020.0002] # WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
+27C2 ; [*0AB7.0020.0002] # PERPENDICULAR
+27C3 ; [*0AB8.0020.0002] # OPEN SUBSET
+27C4 ; [*0AB9.0020.0002] # OPEN SUPERSET
+27C5 ; [*0341.0020.0002] # LEFT S-SHAPED BAG DELIMITER
+27C6 ; [*0342.0020.0002] # RIGHT S-SHAPED BAG DELIMITER
+27C7 ; [*0ABA.0020.0002] # OR WITH DOT INSIDE
+27C8 ; [*0ABB.0020.0002] # REVERSE SOLIDUS PRECEDING SUBSET
+27C9 ; [*0ABC.0020.0002] # SUPERSET PRECEDING SOLIDUS
+27CA ; [*0ABD.0020.0002] # VERTICAL BAR WITH HORIZONTAL STROKE
+27CB ; [*0ABE.0020.0002] # MATHEMATICAL RISING DIAGONAL
+27CC ; [*0ABF.0020.0002] # LONG DIVISION
+27CD ; [*0AC0.0020.0002] # MATHEMATICAL FALLING DIAGONAL
+27CE ; [*0AC1.0020.0002] # SQUARED LOGICAL AND
+27CF ; [*0AC2.0020.0002] # SQUARED LOGICAL OR
+27D0 ; [*0AC3.0020.0002] # WHITE DIAMOND WITH CENTRED DOT
+27D1 ; [*0AC4.0020.0002] # AND WITH DOT
+27D2 ; [*0AC5.0020.0002] # ELEMENT OF OPENING UPWARDS
+27D3 ; [*0AC6.0020.0002] # LOWER RIGHT CORNER WITH DOT
+27D4 ; [*0AC7.0020.0002] # UPPER LEFT CORNER WITH DOT
+27D5 ; [*0AC8.0020.0002] # LEFT OUTER JOIN
+27D6 ; [*0AC9.0020.0002] # RIGHT OUTER JOIN
+27D7 ; [*0ACA.0020.0002] # FULL OUTER JOIN
+27D8 ; [*0ACB.0020.0002] # LARGE UP TACK
+27D9 ; [*0ACC.0020.0002] # LARGE DOWN TACK
+27DA ; [*0ACD.0020.0002] # LEFT AND RIGHT DOUBLE TURNSTILE
+27DB ; [*0ACE.0020.0002] # LEFT AND RIGHT TACK
+27DC ; [*0ACF.0020.0002] # LEFT MULTIMAP
+27DD ; [*0AD0.0020.0002] # LONG RIGHT TACK
+27DE ; [*0AD1.0020.0002] # LONG LEFT TACK
+27DF ; [*0AD2.0020.0002] # UP TACK WITH CIRCLE ABOVE
+27E0 ; [*0AD3.0020.0002] # LOZENGE DIVIDED BY HORIZONTAL RULE
+27E1 ; [*0AD4.0020.0002] # WHITE CONCAVE-SIDED DIAMOND
+27E2 ; [*0AD5.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
+27E3 ; [*0AD6.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
+27E4 ; [*0AD7.0020.0002] # WHITE SQUARE WITH LEFTWARDS TICK
+27E5 ; [*0AD8.0020.0002] # WHITE SQUARE WITH RIGHTWARDS TICK
+27E6 ; [*0343.0020.0002] # MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7 ; [*0344.0020.0002] # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8 ; [*0345.0020.0002] # MATHEMATICAL LEFT ANGLE BRACKET
+27E9 ; [*0346.0020.0002] # MATHEMATICAL RIGHT ANGLE BRACKET
+27EA ; [*0347.0020.0002] # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB ; [*0348.0020.0002] # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC ; [*0349.0020.0002] # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED ; [*034A.0020.0002] # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE ; [*034B.0020.0002] # MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF ; [*034C.0020.0002] # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0 ; [*0AD9.0020.0002] # UPWARDS QUADRUPLE ARROW
+27F1 ; [*0ADA.0020.0002] # DOWNWARDS QUADRUPLE ARROW
+27F2 ; [*0ADB.0020.0002] # ANTICLOCKWISE GAPPED CIRCLE ARROW
+27F3 ; [*0ADC.0020.0002] # CLOCKWISE GAPPED CIRCLE ARROW
+27F4 ; [*0ADD.0020.0002] # RIGHT ARROW WITH CIRCLED PLUS
+27F5 ; [*0ADE.0020.0002] # LONG LEFTWARDS ARROW
+27F6 ; [*0ADF.0020.0002] # LONG RIGHTWARDS ARROW
+27F7 ; [*0AE0.0020.0002] # LONG LEFT RIGHT ARROW
+27F8 ; [*0AE1.0020.0002] # LONG LEFTWARDS DOUBLE ARROW
+27F9 ; [*0AE2.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW
+27FA ; [*0AE3.0020.0002] # LONG LEFT RIGHT DOUBLE ARROW
+27FB ; [*0AE4.0020.0002] # LONG LEFTWARDS ARROW FROM BAR
+27FC ; [*0AE5.0020.0002] # LONG RIGHTWARDS ARROW FROM BAR
+27FD ; [*0AE6.0020.0002] # LONG LEFTWARDS DOUBLE ARROW FROM BAR
+27FE ; [*0AE7.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW FROM BAR
+27FF ; [*0AE8.0020.0002] # LONG RIGHTWARDS SQUIGGLE ARROW
+2800 ; [*0D9C.0020.0002] # BRAILLE PATTERN BLANK
+2801 ; [*0D9D.0020.0002] # BRAILLE PATTERN DOTS-1
+2802 ; [*0D9E.0020.0002] # BRAILLE PATTERN DOTS-2
+2803 ; [*0D9F.0020.0002] # BRAILLE PATTERN DOTS-12
+2804 ; [*0DA0.0020.0002] # BRAILLE PATTERN DOTS-3
+2805 ; [*0DA1.0020.0002] # BRAILLE PATTERN DOTS-13
+2806 ; [*0DA2.0020.0002] # BRAILLE PATTERN DOTS-23
+2807 ; [*0DA3.0020.0002] # BRAILLE PATTERN DOTS-123
+2808 ; [*0DA4.0020.0002] # BRAILLE PATTERN DOTS-4
+2809 ; [*0DA5.0020.0002] # BRAILLE PATTERN DOTS-14
+280A ; [*0DA6.0020.0002] # BRAILLE PATTERN DOTS-24
+280B ; [*0DA7.0020.0002] # BRAILLE PATTERN DOTS-124
+280C ; [*0DA8.0020.0002] # BRAILLE PATTERN DOTS-34
+280D ; [*0DA9.0020.0002] # BRAILLE PATTERN DOTS-134
+280E ; [*0DAA.0020.0002] # BRAILLE PATTERN DOTS-234
+280F ; [*0DAB.0020.0002] # BRAILLE PATTERN DOTS-1234
+2810 ; [*0DAC.0020.0002] # BRAILLE PATTERN DOTS-5
+2811 ; [*0DAD.0020.0002] # BRAILLE PATTERN DOTS-15
+2812 ; [*0DAE.0020.0002] # BRAILLE PATTERN DOTS-25
+2813 ; [*0DAF.0020.0002] # BRAILLE PATTERN DOTS-125
+2814 ; [*0DB0.0020.0002] # BRAILLE PATTERN DOTS-35
+2815 ; [*0DB1.0020.0002] # BRAILLE PATTERN DOTS-135
+2816 ; [*0DB2.0020.0002] # BRAILLE PATTERN DOTS-235
+2817 ; [*0DB3.0020.0002] # BRAILLE PATTERN DOTS-1235
+2818 ; [*0DB4.0020.0002] # BRAILLE PATTERN DOTS-45
+2819 ; [*0DB5.0020.0002] # BRAILLE PATTERN DOTS-145
+281A ; [*0DB6.0020.0002] # BRAILLE PATTERN DOTS-245
+281B ; [*0DB7.0020.0002] # BRAILLE PATTERN DOTS-1245
+281C ; [*0DB8.0020.0002] # BRAILLE PATTERN DOTS-345
+281D ; [*0DB9.0020.0002] # BRAILLE PATTERN DOTS-1345
+281E ; [*0DBA.0020.0002] # BRAILLE PATTERN DOTS-2345
+281F ; [*0DBB.0020.0002] # BRAILLE PATTERN DOTS-12345
+2820 ; [*0DBC.0020.0002] # BRAILLE PATTERN DOTS-6
+2821 ; [*0DBD.0020.0002] # BRAILLE PATTERN DOTS-16
+2822 ; [*0DBE.0020.0002] # BRAILLE PATTERN DOTS-26
+2823 ; [*0DBF.0020.0002] # BRAILLE PATTERN DOTS-126
+2824 ; [*0DC0.0020.0002] # BRAILLE PATTERN DOTS-36
+2825 ; [*0DC1.0020.0002] # BRAILLE PATTERN DOTS-136
+2826 ; [*0DC2.0020.0002] # BRAILLE PATTERN DOTS-236
+2827 ; [*0DC3.0020.0002] # BRAILLE PATTERN DOTS-1236
+2828 ; [*0DC4.0020.0002] # BRAILLE PATTERN DOTS-46
+2829 ; [*0DC5.0020.0002] # BRAILLE PATTERN DOTS-146
+282A ; [*0DC6.0020.0002] # BRAILLE PATTERN DOTS-246
+282B ; [*0DC7.0020.0002] # BRAILLE PATTERN DOTS-1246
+282C ; [*0DC8.0020.0002] # BRAILLE PATTERN DOTS-346
+282D ; [*0DC9.0020.0002] # BRAILLE PATTERN DOTS-1346
+282E ; [*0DCA.0020.0002] # BRAILLE PATTERN DOTS-2346
+282F ; [*0DCB.0020.0002] # BRAILLE PATTERN DOTS-12346
+2830 ; [*0DCC.0020.0002] # BRAILLE PATTERN DOTS-56
+2831 ; [*0DCD.0020.0002] # BRAILLE PATTERN DOTS-156
+2832 ; [*0DCE.0020.0002] # BRAILLE PATTERN DOTS-256
+2833 ; [*0DCF.0020.0002] # BRAILLE PATTERN DOTS-1256
+2834 ; [*0DD0.0020.0002] # BRAILLE PATTERN DOTS-356
+2835 ; [*0DD1.0020.0002] # BRAILLE PATTERN DOTS-1356
+2836 ; [*0DD2.0020.0002] # BRAILLE PATTERN DOTS-2356
+2837 ; [*0DD3.0020.0002] # BRAILLE PATTERN DOTS-12356
+2838 ; [*0DD4.0020.0002] # BRAILLE PATTERN DOTS-456
+2839 ; [*0DD5.0020.0002] # BRAILLE PATTERN DOTS-1456
+283A ; [*0DD6.0020.0002] # BRAILLE PATTERN DOTS-2456
+283B ; [*0DD7.0020.0002] # BRAILLE PATTERN DOTS-12456
+283C ; [*0DD8.0020.0002] # BRAILLE PATTERN DOTS-3456
+283D ; [*0DD9.0020.0002] # BRAILLE PATTERN DOTS-13456
+283E ; [*0DDA.0020.0002] # BRAILLE PATTERN DOTS-23456
+283F ; [*0DDB.0020.0002] # BRAILLE PATTERN DOTS-123456
+2840 ; [*0DDC.0020.0002] # BRAILLE PATTERN DOTS-7
+2841 ; [*0DDD.0020.0002] # BRAILLE PATTERN DOTS-17
+2842 ; [*0DDE.0020.0002] # BRAILLE PATTERN DOTS-27
+2843 ; [*0DDF.0020.0002] # BRAILLE PATTERN DOTS-127
+2844 ; [*0DE0.0020.0002] # BRAILLE PATTERN DOTS-37
+2845 ; [*0DE1.0020.0002] # BRAILLE PATTERN DOTS-137
+2846 ; [*0DE2.0020.0002] # BRAILLE PATTERN DOTS-237
+2847 ; [*0DE3.0020.0002] # BRAILLE PATTERN DOTS-1237
+2848 ; [*0DE4.0020.0002] # BRAILLE PATTERN DOTS-47
+2849 ; [*0DE5.0020.0002] # BRAILLE PATTERN DOTS-147
+284A ; [*0DE6.0020.0002] # BRAILLE PATTERN DOTS-247
+284B ; [*0DE7.0020.0002] # BRAILLE PATTERN DOTS-1247
+284C ; [*0DE8.0020.0002] # BRAILLE PATTERN DOTS-347
+284D ; [*0DE9.0020.0002] # BRAILLE PATTERN DOTS-1347
+284E ; [*0DEA.0020.0002] # BRAILLE PATTERN DOTS-2347
+284F ; [*0DEB.0020.0002] # BRAILLE PATTERN DOTS-12347
+2850 ; [*0DEC.0020.0002] # BRAILLE PATTERN DOTS-57
+2851 ; [*0DED.0020.0002] # BRAILLE PATTERN DOTS-157
+2852 ; [*0DEE.0020.0002] # BRAILLE PATTERN DOTS-257
+2853 ; [*0DEF.0020.0002] # BRAILLE PATTERN DOTS-1257
+2854 ; [*0DF0.0020.0002] # BRAILLE PATTERN DOTS-357
+2855 ; [*0DF1.0020.0002] # BRAILLE PATTERN DOTS-1357
+2856 ; [*0DF2.0020.0002] # BRAILLE PATTERN DOTS-2357
+2857 ; [*0DF3.0020.0002] # BRAILLE PATTERN DOTS-12357
+2858 ; [*0DF4.0020.0002] # BRAILLE PATTERN DOTS-457
+2859 ; [*0DF5.0020.0002] # BRAILLE PATTERN DOTS-1457
+285A ; [*0DF6.0020.0002] # BRAILLE PATTERN DOTS-2457
+285B ; [*0DF7.0020.0002] # BRAILLE PATTERN DOTS-12457
+285C ; [*0DF8.0020.0002] # BRAILLE PATTERN DOTS-3457
+285D ; [*0DF9.0020.0002] # BRAILLE PATTERN DOTS-13457
+285E ; [*0DFA.0020.0002] # BRAILLE PATTERN DOTS-23457
+285F ; [*0DFB.0020.0002] # BRAILLE PATTERN DOTS-123457
+2860 ; [*0DFC.0020.0002] # BRAILLE PATTERN DOTS-67
+2861 ; [*0DFD.0020.0002] # BRAILLE PATTERN DOTS-167
+2862 ; [*0DFE.0020.0002] # BRAILLE PATTERN DOTS-267
+2863 ; [*0DFF.0020.0002] # BRAILLE PATTERN DOTS-1267
+2864 ; [*0E00.0020.0002] # BRAILLE PATTERN DOTS-367
+2865 ; [*0E01.0020.0002] # BRAILLE PATTERN DOTS-1367
+2866 ; [*0E02.0020.0002] # BRAILLE PATTERN DOTS-2367
+2867 ; [*0E03.0020.0002] # BRAILLE PATTERN DOTS-12367
+2868 ; [*0E04.0020.0002] # BRAILLE PATTERN DOTS-467
+2869 ; [*0E05.0020.0002] # BRAILLE PATTERN DOTS-1467
+286A ; [*0E06.0020.0002] # BRAILLE PATTERN DOTS-2467
+286B ; [*0E07.0020.0002] # BRAILLE PATTERN DOTS-12467
+286C ; [*0E08.0020.0002] # BRAILLE PATTERN DOTS-3467
+286D ; [*0E09.0020.0002] # BRAILLE PATTERN DOTS-13467
+286E ; [*0E0A.0020.0002] # BRAILLE PATTERN DOTS-23467
+286F ; [*0E0B.0020.0002] # BRAILLE PATTERN DOTS-123467
+2870 ; [*0E0C.0020.0002] # BRAILLE PATTERN DOTS-567
+2871 ; [*0E0D.0020.0002] # BRAILLE PATTERN DOTS-1567
+2872 ; [*0E0E.0020.0002] # BRAILLE PATTERN DOTS-2567
+2873 ; [*0E0F.0020.0002] # BRAILLE PATTERN DOTS-12567
+2874 ; [*0E10.0020.0002] # BRAILLE PATTERN DOTS-3567
+2875 ; [*0E11.0020.0002] # BRAILLE PATTERN DOTS-13567
+2876 ; [*0E12.0020.0002] # BRAILLE PATTERN DOTS-23567
+2877 ; [*0E13.0020.0002] # BRAILLE PATTERN DOTS-123567
+2878 ; [*0E14.0020.0002] # BRAILLE PATTERN DOTS-4567
+2879 ; [*0E15.0020.0002] # BRAILLE PATTERN DOTS-14567
+287A ; [*0E16.0020.0002] # BRAILLE PATTERN DOTS-24567
+287B ; [*0E17.0020.0002] # BRAILLE PATTERN DOTS-124567
+287C ; [*0E18.0020.0002] # BRAILLE PATTERN DOTS-34567
+287D ; [*0E19.0020.0002] # BRAILLE PATTERN DOTS-134567
+287E ; [*0E1A.0020.0002] # BRAILLE PATTERN DOTS-234567
+287F ; [*0E1B.0020.0002] # BRAILLE PATTERN DOTS-1234567
+2880 ; [*0E1C.0020.0002] # BRAILLE PATTERN DOTS-8
+2881 ; [*0E1D.0020.0002] # BRAILLE PATTERN DOTS-18
+2882 ; [*0E1E.0020.0002] # BRAILLE PATTERN DOTS-28
+2883 ; [*0E1F.0020.0002] # BRAILLE PATTERN DOTS-128
+2884 ; [*0E20.0020.0002] # BRAILLE PATTERN DOTS-38
+2885 ; [*0E21.0020.0002] # BRAILLE PATTERN DOTS-138
+2886 ; [*0E22.0020.0002] # BRAILLE PATTERN DOTS-238
+2887 ; [*0E23.0020.0002] # BRAILLE PATTERN DOTS-1238
+2888 ; [*0E24.0020.0002] # BRAILLE PATTERN DOTS-48
+2889 ; [*0E25.0020.0002] # BRAILLE PATTERN DOTS-148
+288A ; [*0E26.0020.0002] # BRAILLE PATTERN DOTS-248
+288B ; [*0E27.0020.0002] # BRAILLE PATTERN DOTS-1248
+288C ; [*0E28.0020.0002] # BRAILLE PATTERN DOTS-348
+288D ; [*0E29.0020.0002] # BRAILLE PATTERN DOTS-1348
+288E ; [*0E2A.0020.0002] # BRAILLE PATTERN DOTS-2348
+288F ; [*0E2B.0020.0002] # BRAILLE PATTERN DOTS-12348
+2890 ; [*0E2C.0020.0002] # BRAILLE PATTERN DOTS-58
+2891 ; [*0E2D.0020.0002] # BRAILLE PATTERN DOTS-158
+2892 ; [*0E2E.0020.0002] # BRAILLE PATTERN DOTS-258
+2893 ; [*0E2F.0020.0002] # BRAILLE PATTERN DOTS-1258
+2894 ; [*0E30.0020.0002] # BRAILLE PATTERN DOTS-358
+2895 ; [*0E31.0020.0002] # BRAILLE PATTERN DOTS-1358
+2896 ; [*0E32.0020.0002] # BRAILLE PATTERN DOTS-2358
+2897 ; [*0E33.0020.0002] # BRAILLE PATTERN DOTS-12358
+2898 ; [*0E34.0020.0002] # BRAILLE PATTERN DOTS-458
+2899 ; [*0E35.0020.0002] # BRAILLE PATTERN DOTS-1458
+289A ; [*0E36.0020.0002] # BRAILLE PATTERN DOTS-2458
+289B ; [*0E37.0020.0002] # BRAILLE PATTERN DOTS-12458
+289C ; [*0E38.0020.0002] # BRAILLE PATTERN DOTS-3458
+289D ; [*0E39.0020.0002] # BRAILLE PATTERN DOTS-13458
+289E ; [*0E3A.0020.0002] # BRAILLE PATTERN DOTS-23458
+289F ; [*0E3B.0020.0002] # BRAILLE PATTERN DOTS-123458
+28A0 ; [*0E3C.0020.0002] # BRAILLE PATTERN DOTS-68
+28A1 ; [*0E3D.0020.0002] # BRAILLE PATTERN DOTS-168
+28A2 ; [*0E3E.0020.0002] # BRAILLE PATTERN DOTS-268
+28A3 ; [*0E3F.0020.0002] # BRAILLE PATTERN DOTS-1268
+28A4 ; [*0E40.0020.0002] # BRAILLE PATTERN DOTS-368
+28A5 ; [*0E41.0020.0002] # BRAILLE PATTERN DOTS-1368
+28A6 ; [*0E42.0020.0002] # BRAILLE PATTERN DOTS-2368
+28A7 ; [*0E43.0020.0002] # BRAILLE PATTERN DOTS-12368
+28A8 ; [*0E44.0020.0002] # BRAILLE PATTERN DOTS-468
+28A9 ; [*0E45.0020.0002] # BRAILLE PATTERN DOTS-1468
+28AA ; [*0E46.0020.0002] # BRAILLE PATTERN DOTS-2468
+28AB ; [*0E47.0020.0002] # BRAILLE PATTERN DOTS-12468
+28AC ; [*0E48.0020.0002] # BRAILLE PATTERN DOTS-3468
+28AD ; [*0E49.0020.0002] # BRAILLE PATTERN DOTS-13468
+28AE ; [*0E4A.0020.0002] # BRAILLE PATTERN DOTS-23468
+28AF ; [*0E4B.0020.0002] # BRAILLE PATTERN DOTS-123468
+28B0 ; [*0E4C.0020.0002] # BRAILLE PATTERN DOTS-568
+28B1 ; [*0E4D.0020.0002] # BRAILLE PATTERN DOTS-1568
+28B2 ; [*0E4E.0020.0002] # BRAILLE PATTERN DOTS-2568
+28B3 ; [*0E4F.0020.0002] # BRAILLE PATTERN DOTS-12568
+28B4 ; [*0E50.0020.0002] # BRAILLE PATTERN DOTS-3568
+28B5 ; [*0E51.0020.0002] # BRAILLE PATTERN DOTS-13568
+28B6 ; [*0E52.0020.0002] # BRAILLE PATTERN DOTS-23568
+28B7 ; [*0E53.0020.0002] # BRAILLE PATTERN DOTS-123568
+28B8 ; [*0E54.0020.0002] # BRAILLE PATTERN DOTS-4568
+28B9 ; [*0E55.0020.0002] # BRAILLE PATTERN DOTS-14568
+28BA ; [*0E56.0020.0002] # BRAILLE PATTERN DOTS-24568
+28BB ; [*0E57.0020.0002] # BRAILLE PATTERN DOTS-124568
+28BC ; [*0E58.0020.0002] # BRAILLE PATTERN DOTS-34568
+28BD ; [*0E59.0020.0002] # BRAILLE PATTERN DOTS-134568
+28BE ; [*0E5A.0020.0002] # BRAILLE PATTERN DOTS-234568
+28BF ; [*0E5B.0020.0002] # BRAILLE PATTERN DOTS-1234568
+28C0 ; [*0E5C.0020.0002] # BRAILLE PATTERN DOTS-78
+28C1 ; [*0E5D.0020.0002] # BRAILLE PATTERN DOTS-178
+28C2 ; [*0E5E.0020.0002] # BRAILLE PATTERN DOTS-278
+28C3 ; [*0E5F.0020.0002] # BRAILLE PATTERN DOTS-1278
+28C4 ; [*0E60.0020.0002] # BRAILLE PATTERN DOTS-378
+28C5 ; [*0E61.0020.0002] # BRAILLE PATTERN DOTS-1378
+28C6 ; [*0E62.0020.0002] # BRAILLE PATTERN DOTS-2378
+28C7 ; [*0E63.0020.0002] # BRAILLE PATTERN DOTS-12378
+28C8 ; [*0E64.0020.0002] # BRAILLE PATTERN DOTS-478
+28C9 ; [*0E65.0020.0002] # BRAILLE PATTERN DOTS-1478
+28CA ; [*0E66.0020.0002] # BRAILLE PATTERN DOTS-2478
+28CB ; [*0E67.0020.0002] # BRAILLE PATTERN DOTS-12478
+28CC ; [*0E68.0020.0002] # BRAILLE PATTERN DOTS-3478
+28CD ; [*0E69.0020.0002] # BRAILLE PATTERN DOTS-13478
+28CE ; [*0E6A.0020.0002] # BRAILLE PATTERN DOTS-23478
+28CF ; [*0E6B.0020.0002] # BRAILLE PATTERN DOTS-123478
+28D0 ; [*0E6C.0020.0002] # BRAILLE PATTERN DOTS-578
+28D1 ; [*0E6D.0020.0002] # BRAILLE PATTERN DOTS-1578
+28D2 ; [*0E6E.0020.0002] # BRAILLE PATTERN DOTS-2578
+28D3 ; [*0E6F.0020.0002] # BRAILLE PATTERN DOTS-12578
+28D4 ; [*0E70.0020.0002] # BRAILLE PATTERN DOTS-3578
+28D5 ; [*0E71.0020.0002] # BRAILLE PATTERN DOTS-13578
+28D6 ; [*0E72.0020.0002] # BRAILLE PATTERN DOTS-23578
+28D7 ; [*0E73.0020.0002] # BRAILLE PATTERN DOTS-123578
+28D8 ; [*0E74.0020.0002] # BRAILLE PATTERN DOTS-4578
+28D9 ; [*0E75.0020.0002] # BRAILLE PATTERN DOTS-14578
+28DA ; [*0E76.0020.0002] # BRAILLE PATTERN DOTS-24578
+28DB ; [*0E77.0020.0002] # BRAILLE PATTERN DOTS-124578
+28DC ; [*0E78.0020.0002] # BRAILLE PATTERN DOTS-34578
+28DD ; [*0E79.0020.0002] # BRAILLE PATTERN DOTS-134578
+28DE ; [*0E7A.0020.0002] # BRAILLE PATTERN DOTS-234578
+28DF ; [*0E7B.0020.0002] # BRAILLE PATTERN DOTS-1234578
+28E0 ; [*0E7C.0020.0002] # BRAILLE PATTERN DOTS-678
+28E1 ; [*0E7D.0020.0002] # BRAILLE PATTERN DOTS-1678
+28E2 ; [*0E7E.0020.0002] # BRAILLE PATTERN DOTS-2678
+28E3 ; [*0E7F.0020.0002] # BRAILLE PATTERN DOTS-12678
+28E4 ; [*0E80.0020.0002] # BRAILLE PATTERN DOTS-3678
+28E5 ; [*0E81.0020.0002] # BRAILLE PATTERN DOTS-13678
+28E6 ; [*0E82.0020.0002] # BRAILLE PATTERN DOTS-23678
+28E7 ; [*0E83.0020.0002] # BRAILLE PATTERN DOTS-123678
+28E8 ; [*0E84.0020.0002] # BRAILLE PATTERN DOTS-4678
+28E9 ; [*0E85.0020.0002] # BRAILLE PATTERN DOTS-14678
+28EA ; [*0E86.0020.0002] # BRAILLE PATTERN DOTS-24678
+28EB ; [*0E87.0020.0002] # BRAILLE PATTERN DOTS-124678
+28EC ; [*0E88.0020.0002] # BRAILLE PATTERN DOTS-34678
+28ED ; [*0E89.0020.0002] # BRAILLE PATTERN DOTS-134678
+28EE ; [*0E8A.0020.0002] # BRAILLE PATTERN DOTS-234678
+28EF ; [*0E8B.0020.0002] # BRAILLE PATTERN DOTS-1234678
+28F0 ; [*0E8C.0020.0002] # BRAILLE PATTERN DOTS-5678
+28F1 ; [*0E8D.0020.0002] # BRAILLE PATTERN DOTS-15678
+28F2 ; [*0E8E.0020.0002] # BRAILLE PATTERN DOTS-25678
+28F3 ; [*0E8F.0020.0002] # BRAILLE PATTERN DOTS-125678
+28F4 ; [*0E90.0020.0002] # BRAILLE PATTERN DOTS-35678
+28F5 ; [*0E91.0020.0002] # BRAILLE PATTERN DOTS-135678
+28F6 ; [*0E92.0020.0002] # BRAILLE PATTERN DOTS-235678
+28F7 ; [*0E93.0020.0002] # BRAILLE PATTERN DOTS-1235678
+28F8 ; [*0E94.0020.0002] # BRAILLE PATTERN DOTS-45678
+28F9 ; [*0E95.0020.0002] # BRAILLE PATTERN DOTS-145678
+28FA ; [*0E96.0020.0002] # BRAILLE PATTERN DOTS-245678
+28FB ; [*0E97.0020.0002] # BRAILLE PATTERN DOTS-1245678
+28FC ; [*0E98.0020.0002] # BRAILLE PATTERN DOTS-345678
+28FD ; [*0E99.0020.0002] # BRAILLE PATTERN DOTS-1345678
+28FE ; [*0E9A.0020.0002] # BRAILLE PATTERN DOTS-2345678
+28FF ; [*0E9B.0020.0002] # BRAILLE PATTERN DOTS-12345678
+2900 ; [*0AE9.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
+2901 ; [*0AEA.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
+2902 ; [*0AEB.0020.0002] # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+2903 ; [*0AEC.0020.0002] # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+2904 ; [*0AED.0020.0002] # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
+2905 ; [*0AEE.0020.0002] # RIGHTWARDS TWO-HEADED ARROW FROM BAR
+2906 ; [*0AEF.0020.0002] # LEFTWARDS DOUBLE ARROW FROM BAR
+2907 ; [*0AF0.0020.0002] # RIGHTWARDS DOUBLE ARROW FROM BAR
+2908 ; [*0AF1.0020.0002] # DOWNWARDS ARROW WITH HORIZONTAL STROKE
+2909 ; [*0AF2.0020.0002] # UPWARDS ARROW WITH HORIZONTAL STROKE
+290A ; [*0AF3.0020.0002] # UPWARDS TRIPLE ARROW
+290B ; [*0AF4.0020.0002] # DOWNWARDS TRIPLE ARROW
+290C ; [*0AF5.0020.0002] # LEFTWARDS DOUBLE DASH ARROW
+290D ; [*0AF6.0020.0002] # RIGHTWARDS DOUBLE DASH ARROW
+290E ; [*0AF7.0020.0002] # LEFTWARDS TRIPLE DASH ARROW
+290F ; [*0AF8.0020.0002] # RIGHTWARDS TRIPLE DASH ARROW
+2910 ; [*0AF9.0020.0002] # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
+2911 ; [*0AFA.0020.0002] # RIGHTWARDS ARROW WITH DOTTED STEM
+2912 ; [*0AFB.0020.0002] # UPWARDS ARROW TO BAR
+2913 ; [*0AFC.0020.0002] # DOWNWARDS ARROW TO BAR
+2914 ; [*0AFD.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
+2915 ; [*0AFE.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2916 ; [*0AFF.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL
+2917 ; [*0B00.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
+2918 ; [*0B01.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2919 ; [*0B02.0020.0002] # LEFTWARDS ARROW-TAIL
+291A ; [*0B03.0020.0002] # RIGHTWARDS ARROW-TAIL
+291B ; [*0B04.0020.0002] # LEFTWARDS DOUBLE ARROW-TAIL
+291C ; [*0B05.0020.0002] # RIGHTWARDS DOUBLE ARROW-TAIL
+291D ; [*0B06.0020.0002] # LEFTWARDS ARROW TO BLACK DIAMOND
+291E ; [*0B07.0020.0002] # RIGHTWARDS ARROW TO BLACK DIAMOND
+291F ; [*0B08.0020.0002] # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
+2920 ; [*0B09.0020.0002] # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
+2921 ; [*0B0A.0020.0002] # NORTH WEST AND SOUTH EAST ARROW
+2922 ; [*0B0B.0020.0002] # NORTH EAST AND SOUTH WEST ARROW
+2923 ; [*0B0C.0020.0002] # NORTH WEST ARROW WITH HOOK
+2924 ; [*0B0D.0020.0002] # NORTH EAST ARROW WITH HOOK
+2925 ; [*0B0E.0020.0002] # SOUTH EAST ARROW WITH HOOK
+2926 ; [*0B0F.0020.0002] # SOUTH WEST ARROW WITH HOOK
+2927 ; [*0B10.0020.0002] # NORTH WEST ARROW AND NORTH EAST ARROW
+2928 ; [*0B11.0020.0002] # NORTH EAST ARROW AND SOUTH EAST ARROW
+2929 ; [*0B12.0020.0002] # SOUTH EAST ARROW AND SOUTH WEST ARROW
+292A ; [*0B13.0020.0002] # SOUTH WEST ARROW AND NORTH WEST ARROW
+292B ; [*0B14.0020.0002] # RISING DIAGONAL CROSSING FALLING DIAGONAL
+292C ; [*0B15.0020.0002] # FALLING DIAGONAL CROSSING RISING DIAGONAL
+292D ; [*0B16.0020.0002] # SOUTH EAST ARROW CROSSING NORTH EAST ARROW
+292E ; [*0B17.0020.0002] # NORTH EAST ARROW CROSSING SOUTH EAST ARROW
+292F ; [*0B18.0020.0002] # FALLING DIAGONAL CROSSING NORTH EAST ARROW
+2930 ; [*0B19.0020.0002] # RISING DIAGONAL CROSSING SOUTH EAST ARROW
+2931 ; [*0B1A.0020.0002] # NORTH EAST ARROW CROSSING NORTH WEST ARROW
+2932 ; [*0B1B.0020.0002] # NORTH WEST ARROW CROSSING NORTH EAST ARROW
+2933 ; [*0B1C.0020.0002] # WAVE ARROW POINTING DIRECTLY RIGHT
+2934 ; [*0B1D.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
+2935 ; [*0B1E.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+2936 ; [*0B1F.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
+2937 ; [*0B20.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
+2938 ; [*0B21.0020.0002] # RIGHT-SIDE ARC CLOCKWISE ARROW
+2939 ; [*0B22.0020.0002] # LEFT-SIDE ARC ANTICLOCKWISE ARROW
+293A ; [*0B23.0020.0002] # TOP ARC ANTICLOCKWISE ARROW
+293B ; [*0B24.0020.0002] # BOTTOM ARC ANTICLOCKWISE ARROW
+293C ; [*0B25.0020.0002] # TOP ARC CLOCKWISE ARROW WITH MINUS
+293D ; [*0B26.0020.0002] # TOP ARC ANTICLOCKWISE ARROW WITH PLUS
+293E ; [*0B27.0020.0002] # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
+293F ; [*0B28.0020.0002] # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
+2940 ; [*0B29.0020.0002] # ANTICLOCKWISE CLOSED CIRCLE ARROW
+2941 ; [*0B2A.0020.0002] # CLOCKWISE CLOSED CIRCLE ARROW
+2942 ; [*0B2B.0020.0002] # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
+2943 ; [*0B2C.0020.0002] # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
+2944 ; [*0B2D.0020.0002] # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
+2945 ; [*0B2E.0020.0002] # RIGHTWARDS ARROW WITH PLUS BELOW
+2946 ; [*0B2F.0020.0002] # LEFTWARDS ARROW WITH PLUS BELOW
+2947 ; [*0B30.0020.0002] # RIGHTWARDS ARROW THROUGH X
+2948 ; [*0B31.0020.0002] # LEFT RIGHT ARROW THROUGH SMALL CIRCLE
+2949 ; [*0B32.0020.0002] # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
+294A ; [*0B33.0020.0002] # LEFT BARB UP RIGHT BARB DOWN HARPOON
+294B ; [*0B34.0020.0002] # LEFT BARB DOWN RIGHT BARB UP HARPOON
+294C ; [*0B35.0020.0002] # UP BARB RIGHT DOWN BARB LEFT HARPOON
+294D ; [*0B36.0020.0002] # UP BARB LEFT DOWN BARB RIGHT HARPOON
+294E ; [*0B37.0020.0002] # LEFT BARB UP RIGHT BARB UP HARPOON
+294F ; [*0B38.0020.0002] # UP BARB RIGHT DOWN BARB RIGHT HARPOON
+2950 ; [*0B39.0020.0002] # LEFT BARB DOWN RIGHT BARB DOWN HARPOON
+2951 ; [*0B3A.0020.0002] # UP BARB LEFT DOWN BARB LEFT HARPOON
+2952 ; [*0B3B.0020.0002] # LEFTWARDS HARPOON WITH BARB UP TO BAR
+2953 ; [*0B3C.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP TO BAR
+2954 ; [*0B3D.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT TO BAR
+2955 ; [*0B3E.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
+2956 ; [*0B3F.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN TO BAR
+2957 ; [*0B40.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
+2958 ; [*0B41.0020.0002] # UPWARDS HARPOON WITH BARB LEFT TO BAR
+2959 ; [*0B42.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT TO BAR
+295A ; [*0B43.0020.0002] # LEFTWARDS HARPOON WITH BARB UP FROM BAR
+295B ; [*0B44.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP FROM BAR
+295C ; [*0B45.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT FROM BAR
+295D ; [*0B46.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
+295E ; [*0B47.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
+295F ; [*0B48.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
+2960 ; [*0B49.0020.0002] # UPWARDS HARPOON WITH BARB LEFT FROM BAR
+2961 ; [*0B4A.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
+2962 ; [*0B4B.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+2963 ; [*0B4C.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+2964 ; [*0B4D.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+2965 ; [*0B4E.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+2966 ; [*0B4F.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
+2967 ; [*0B50.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+2968 ; [*0B51.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
+2969 ; [*0B52.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+296A ; [*0B53.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+296B ; [*0B54.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+296C ; [*0B55.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+296D ; [*0B56.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+296E ; [*0B57.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+296F ; [*0B58.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+2970 ; [*0B59.0020.0002] # RIGHT DOUBLE ARROW WITH ROUNDED HEAD
+2971 ; [*0B5A.0020.0002] # EQUALS SIGN ABOVE RIGHTWARDS ARROW
+2972 ; [*0B5B.0020.0002] # TILDE OPERATOR ABOVE RIGHTWARDS ARROW
+2973 ; [*0B5C.0020.0002] # LEFTWARDS ARROW ABOVE TILDE OPERATOR
+2974 ; [*0B5D.0020.0002] # RIGHTWARDS ARROW ABOVE TILDE OPERATOR
+2975 ; [*0B5E.0020.0002] # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
+2976 ; [*0B5F.0020.0002] # LESS-THAN ABOVE LEFTWARDS ARROW
+2977 ; [*0B60.0020.0002] # LEFTWARDS ARROW THROUGH LESS-THAN
+2978 ; [*0B61.0020.0002] # GREATER-THAN ABOVE RIGHTWARDS ARROW
+2979 ; [*0B62.0020.0002] # SUBSET ABOVE RIGHTWARDS ARROW
+297A ; [*0B63.0020.0002] # LEFTWARDS ARROW THROUGH SUBSET
+297B ; [*0B64.0020.0002] # SUPERSET ABOVE LEFTWARDS ARROW
+297C ; [*0B65.0020.0002] # LEFT FISH TAIL
+297D ; [*0B66.0020.0002] # RIGHT FISH TAIL
+297E ; [*0B67.0020.0002] # UP FISH TAIL
+297F ; [*0B68.0020.0002] # DOWN FISH TAIL
+2980 ; [*0B69.0020.0002] # TRIPLE VERTICAL BAR DELIMITER
+2981 ; [*0B6A.0020.0002] # Z NOTATION SPOT
+2982 ; [*0B6B.0020.0002] # Z NOTATION TYPE COLON
+2983 ; [*032B.0020.0002] # LEFT WHITE CURLY BRACKET
+2984 ; [*032C.0020.0002] # RIGHT WHITE CURLY BRACKET
+2985 ; [*032D.0020.0002] # LEFT WHITE PARENTHESIS
+2986 ; [*032E.0020.0002] # RIGHT WHITE PARENTHESIS
+2987 ; [*032F.0020.0002] # Z NOTATION LEFT IMAGE BRACKET
+2988 ; [*0330.0020.0002] # Z NOTATION RIGHT IMAGE BRACKET
+2989 ; [*0331.0020.0002] # Z NOTATION LEFT BINDING BRACKET
+298A ; [*0332.0020.0002] # Z NOTATION RIGHT BINDING BRACKET
+298B ; [*0333.0020.0002] # LEFT SQUARE BRACKET WITH UNDERBAR
+298C ; [*0334.0020.0002] # RIGHT SQUARE BRACKET WITH UNDERBAR
+298D ; [*0335.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E ; [*0336.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F ; [*0337.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990 ; [*0338.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991 ; [*0339.0020.0002] # LEFT ANGLE BRACKET WITH DOT
+2992 ; [*033A.0020.0002] # RIGHT ANGLE BRACKET WITH DOT
+2993 ; [*033B.0020.0002] # LEFT ARC LESS-THAN BRACKET
+2994 ; [*033C.0020.0002] # RIGHT ARC GREATER-THAN BRACKET
+2995 ; [*033D.0020.0002] # DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996 ; [*033E.0020.0002] # DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997 ; [*033F.0020.0002] # LEFT BLACK TORTOISE SHELL BRACKET
+2998 ; [*0340.0020.0002] # RIGHT BLACK TORTOISE SHELL BRACKET
+2999 ; [*0B6C.0020.0002] # DOTTED FENCE
+299A ; [*0B6D.0020.0002] # VERTICAL ZIGZAG LINE
+299B ; [*0B6E.0020.0002] # MEASURED ANGLE OPENING LEFT
+299C ; [*0B6F.0020.0002] # RIGHT ANGLE VARIANT WITH SQUARE
+299D ; [*0B70.0020.0002] # MEASURED RIGHT ANGLE WITH DOT
+299E ; [*0B71.0020.0002] # ANGLE WITH S INSIDE
+299F ; [*0B72.0020.0002] # ACUTE ANGLE
+29A0 ; [*0B73.0020.0002] # SPHERICAL ANGLE OPENING LEFT
+29A1 ; [*0B74.0020.0002] # SPHERICAL ANGLE OPENING UP
+29A2 ; [*0B75.0020.0002] # TURNED ANGLE
+29A3 ; [*0B76.0020.0002] # REVERSED ANGLE
+29A4 ; [*0B77.0020.0002] # ANGLE WITH UNDERBAR
+29A5 ; [*0B78.0020.0002] # REVERSED ANGLE WITH UNDERBAR
+29A6 ; [*0B79.0020.0002] # OBLIQUE ANGLE OPENING UP
+29A7 ; [*0B7A.0020.0002] # OBLIQUE ANGLE OPENING DOWN
+29A8 ; [*0B7B.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
+29A9 ; [*0B7C.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
+29AA ; [*0B7D.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
+29AB ; [*0B7E.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
+29AC ; [*0B7F.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
+29AD ; [*0B80.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
+29AE ; [*0B81.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
+29AF ; [*0B82.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
+29B0 ; [*0B83.0020.0002] # REVERSED EMPTY SET
+29B1 ; [*0B84.0020.0002] # EMPTY SET WITH OVERBAR
+29B2 ; [*0B85.0020.0002] # EMPTY SET WITH SMALL CIRCLE ABOVE
+29B3 ; [*0B86.0020.0002] # EMPTY SET WITH RIGHT ARROW ABOVE
+29B4 ; [*0B87.0020.0002] # EMPTY SET WITH LEFT ARROW ABOVE
+29B5 ; [*0B88.0020.0002] # CIRCLE WITH HORIZONTAL BAR
+29B6 ; [*0B89.0020.0002] # CIRCLED VERTICAL BAR
+29B7 ; [*0B8A.0020.0002] # CIRCLED PARALLEL
+29B8 ; [*0B8B.0020.0002] # CIRCLED REVERSE SOLIDUS
+29B9 ; [*0B8C.0020.0002] # CIRCLED PERPENDICULAR
+29BA ; [*0B8D.0020.0002] # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
+29BB ; [*0B8E.0020.0002] # CIRCLE WITH SUPERIMPOSED X
+29BC ; [*0B8F.0020.0002] # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
+29BD ; [*0B90.0020.0002] # UP ARROW THROUGH CIRCLE
+29BE ; [*0B91.0020.0002] # CIRCLED WHITE BULLET
+29BF ; [*0B92.0020.0002] # CIRCLED BULLET
+29C0 ; [*0B93.0020.0002] # CIRCLED LESS-THAN
+29C1 ; [*0B94.0020.0002] # CIRCLED GREATER-THAN
+29C2 ; [*0B95.0020.0002] # CIRCLE WITH SMALL CIRCLE TO THE RIGHT
+29C3 ; [*0B96.0020.0002] # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
+29C4 ; [*0B97.0020.0002] # SQUARED RISING DIAGONAL SLASH
+29C5 ; [*0B98.0020.0002] # SQUARED FALLING DIAGONAL SLASH
+29C6 ; [*0B99.0020.0002] # SQUARED ASTERISK
+29C7 ; [*0B9A.0020.0002] # SQUARED SMALL CIRCLE
+29C8 ; [*0B9B.0020.0002] # SQUARED SQUARE
+29C9 ; [*0B9C.0020.0002] # TWO JOINED SQUARES
+29CA ; [*0B9D.0020.0002] # TRIANGLE WITH DOT ABOVE
+29CB ; [*0B9E.0020.0002] # TRIANGLE WITH UNDERBAR
+29CC ; [*0B9F.0020.0002] # S IN TRIANGLE
+29CD ; [*0BA0.0020.0002] # TRIANGLE WITH SERIFS AT BOTTOM
+29CE ; [*0BA1.0020.0002] # RIGHT TRIANGLE ABOVE LEFT TRIANGLE
+29CF ; [*0BA2.0020.0002] # LEFT TRIANGLE BESIDE VERTICAL BAR
+29D0 ; [*0BA3.0020.0002] # VERTICAL BAR BESIDE RIGHT TRIANGLE
+29D1 ; [*0BA4.0020.0002] # BOWTIE WITH LEFT HALF BLACK
+29D2 ; [*0BA5.0020.0002] # BOWTIE WITH RIGHT HALF BLACK
+29D3 ; [*0BA6.0020.0002] # BLACK BOWTIE
+29D4 ; [*0BA7.0020.0002] # TIMES WITH LEFT HALF BLACK
+29D5 ; [*0BA8.0020.0002] # TIMES WITH RIGHT HALF BLACK
+29D6 ; [*0BA9.0020.0002] # WHITE HOURGLASS
+29D7 ; [*0BAA.0020.0002] # BLACK HOURGLASS
+29D8 ; [*0385.0020.0002] # LEFT WIGGLY FENCE
+29D9 ; [*0386.0020.0002] # RIGHT WIGGLY FENCE
+29DA ; [*0387.0020.0002] # LEFT DOUBLE WIGGLY FENCE
+29DB ; [*0388.0020.0002] # RIGHT DOUBLE WIGGLY FENCE
+29DC ; [*0BAB.0020.0002] # INCOMPLETE INFINITY
+29DD ; [*0BAC.0020.0002] # TIE OVER INFINITY
+29DE ; [*0BAD.0020.0002] # INFINITY NEGATED WITH VERTICAL BAR
+29DF ; [*0BAE.0020.0002] # DOUBLE-ENDED MULTIMAP
+29E0 ; [*0BAF.0020.0002] # SQUARE WITH CONTOURED OUTLINE
+29E1 ; [*0BB0.0020.0002] # INCREASES AS
+29E2 ; [*0BB1.0020.0002] # SHUFFLE PRODUCT
+29E3 ; [*0BB2.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL
+29E4 ; [*0BB3.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
+29E5 ; [*0BB4.0020.0002] # IDENTICAL TO AND SLANTED PARALLEL
+29E6 ; [*0BB5.0020.0002] # GLEICH STARK
+29E7 ; [*0BB6.0020.0002] # THERMODYNAMIC
+29E8 ; [*0BB7.0020.0002] # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
+29E9 ; [*0BB8.0020.0002] # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
+29EA ; [*0BB9.0020.0002] # BLACK DIAMOND WITH DOWN ARROW
+29EB ; [*0BBA.0020.0002] # BLACK LOZENGE
+29EC ; [*0BBB.0020.0002] # WHITE CIRCLE WITH DOWN ARROW
+29ED ; [*0BBC.0020.0002] # BLACK CIRCLE WITH DOWN ARROW
+29EE ; [*0BBD.0020.0002] # ERROR-BARRED WHITE SQUARE
+29EF ; [*0BBE.0020.0002] # ERROR-BARRED BLACK SQUARE
+29F0 ; [*0BBF.0020.0002] # ERROR-BARRED WHITE DIAMOND
+29F1 ; [*0BC0.0020.0002] # ERROR-BARRED BLACK DIAMOND
+29F2 ; [*0BC1.0020.0002] # ERROR-BARRED WHITE CIRCLE
+29F3 ; [*0BC2.0020.0002] # ERROR-BARRED BLACK CIRCLE
+29F4 ; [*0BC3.0020.0002] # RULE-DELAYED
+29F5 ; [*0BC4.0020.0002] # REVERSE SOLIDUS OPERATOR
+29F6 ; [*0BC5.0020.0002] # SOLIDUS WITH OVERBAR
+29F7 ; [*0BC6.0020.0002] # REVERSE SOLIDUS WITH HORIZONTAL STROKE
+29F8 ; [*0BC7.0020.0002] # BIG SOLIDUS
+29F9 ; [*0BC8.0020.0002] # BIG REVERSE SOLIDUS
+29FA ; [*0BC9.0020.0002] # DOUBLE PLUS
+29FB ; [*0BCA.0020.0002] # TRIPLE PLUS
+29FC ; [*0329.0020.0002] # LEFT-POINTING CURVED ANGLE BRACKET
+29FD ; [*032A.0020.0002] # RIGHT-POINTING CURVED ANGLE BRACKET
+29FE ; [*0BCB.0020.0002] # TINY
+29FF ; [*0BCC.0020.0002] # MINY
+2A00 ; [*0BCD.0020.0002] # N-ARY CIRCLED DOT OPERATOR
+2A01 ; [*0BCE.0020.0002] # N-ARY CIRCLED PLUS OPERATOR
+2A02 ; [*0BCF.0020.0002] # N-ARY CIRCLED TIMES OPERATOR
+2A03 ; [*0BD0.0020.0002] # N-ARY UNION OPERATOR WITH DOT
+2A04 ; [*0BD1.0020.0002] # N-ARY UNION OPERATOR WITH PLUS
+2A05 ; [*0BD2.0020.0002] # N-ARY SQUARE INTERSECTION OPERATOR
+2A06 ; [*0BD3.0020.0002] # N-ARY SQUARE UNION OPERATOR
+2A07 ; [*0BD4.0020.0002] # TWO LOGICAL AND OPERATOR
+2A08 ; [*0BD5.0020.0002] # TWO LOGICAL OR OPERATOR
+2A09 ; [*0BD6.0020.0002] # N-ARY TIMES OPERATOR
+2A0A ; [*0BD7.0020.0002] # MODULO TWO SUM
+2A0B ; [*0BD8.0020.0002] # SUMMATION WITH INTEGRAL
+2A0C ; [*063C.0020.0004][*063C.0020.0004][*063C.0020.0004][*063C.0020.0004] # QUADRUPLE INTEGRAL OPERATOR
+2A0D ; [*0BD9.0020.0002] # FINITE PART INTEGRAL
+2A0E ; [*0BDA.0020.0002] # INTEGRAL WITH DOUBLE STROKE
+2A0F ; [*0BDB.0020.0002] # INTEGRAL AVERAGE WITH SLASH
+2A10 ; [*0BDC.0020.0002] # CIRCULATION FUNCTION
+2A11 ; [*0BDD.0020.0002] # ANTICLOCKWISE INTEGRATION
+2A12 ; [*0BDE.0020.0002] # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
+2A13 ; [*0BDF.0020.0002] # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
+2A14 ; [*0BE0.0020.0002] # LINE INTEGRATION NOT INCLUDING THE POLE
+2A15 ; [*0BE1.0020.0002] # INTEGRAL AROUND A POINT OPERATOR
+2A16 ; [*0BE2.0020.0002] # QUATERNION INTEGRAL OPERATOR
+2A17 ; [*0BE3.0020.0002] # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
+2A18 ; [*0BE4.0020.0002] # INTEGRAL WITH TIMES SIGN
+2A19 ; [*0BE5.0020.0002] # INTEGRAL WITH INTERSECTION
+2A1A ; [*0BE6.0020.0002] # INTEGRAL WITH UNION
+2A1B ; [*0BE7.0020.0002] # INTEGRAL WITH OVERBAR
+2A1C ; [*0BE8.0020.0002] # INTEGRAL WITH UNDERBAR
+2A1D ; [*0BE9.0020.0002] # JOIN
+2A1E ; [*0BEA.0020.0002] # LARGE LEFT TRIANGLE OPERATOR
+2A1F ; [*0BEB.0020.0002] # Z NOTATION SCHEMA COMPOSITION
+2A20 ; [*0BEC.0020.0002] # Z NOTATION SCHEMA PIPING
+2A21 ; [*0BED.0020.0002] # Z NOTATION SCHEMA PROJECTION
+2A22 ; [*0BEE.0020.0002] # PLUS SIGN WITH SMALL CIRCLE ABOVE
+2A23 ; [*0BEF.0020.0002] # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
+2A24 ; [*0BF0.0020.0002] # PLUS SIGN WITH TILDE ABOVE
+2A25 ; [*0BF1.0020.0002] # PLUS SIGN WITH DOT BELOW
+2A26 ; [*0BF2.0020.0002] # PLUS SIGN WITH TILDE BELOW
+2A27 ; [*0BF3.0020.0002] # PLUS SIGN WITH SUBSCRIPT TWO
+2A28 ; [*0BF4.0020.0002] # PLUS SIGN WITH BLACK TRIANGLE
+2A29 ; [*0BF5.0020.0002] # MINUS SIGN WITH COMMA ABOVE
+2A2A ; [*0BF6.0020.0002] # MINUS SIGN WITH DOT BELOW
+2A2B ; [*0BF7.0020.0002] # MINUS SIGN WITH FALLING DOTS
+2A2C ; [*0BF8.0020.0002] # MINUS SIGN WITH RISING DOTS
+2A2D ; [*0BF9.0020.0002] # PLUS SIGN IN LEFT HALF CIRCLE
+2A2E ; [*0BFA.0020.0002] # PLUS SIGN IN RIGHT HALF CIRCLE
+2A2F ; [*0BFB.0020.0002] # VECTOR OR CROSS PRODUCT
+2A30 ; [*0BFC.0020.0002] # MULTIPLICATION SIGN WITH DOT ABOVE
+2A31 ; [*0BFD.0020.0002] # MULTIPLICATION SIGN WITH UNDERBAR
+2A32 ; [*0BFE.0020.0002] # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
+2A33 ; [*0BFF.0020.0002] # SMASH PRODUCT
+2A34 ; [*0C00.0020.0002] # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
+2A35 ; [*0C01.0020.0002] # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
+2A36 ; [*0C02.0020.0002] # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
+2A37 ; [*0C03.0020.0002] # MULTIPLICATION SIGN IN DOUBLE CIRCLE
+2A38 ; [*0C04.0020.0002] # CIRCLED DIVISION SIGN
+2A39 ; [*0C05.0020.0002] # PLUS SIGN IN TRIANGLE
+2A3A ; [*0C06.0020.0002] # MINUS SIGN IN TRIANGLE
+2A3B ; [*0C07.0020.0002] # MULTIPLICATION SIGN IN TRIANGLE
+2A3C ; [*0C08.0020.0002] # INTERIOR PRODUCT
+2A3D ; [*0C09.0020.0002] # RIGHTHAND INTERIOR PRODUCT
+2A3E ; [*0C0A.0020.0002] # Z NOTATION RELATIONAL COMPOSITION
+2A3F ; [*0C0B.0020.0002] # AMALGAMATION OR COPRODUCT
+2A40 ; [*0C0C.0020.0002] # INTERSECTION WITH DOT
+2A41 ; [*0C0D.0020.0002] # UNION WITH MINUS SIGN
+2A42 ; [*0C0E.0020.0002] # UNION WITH OVERBAR
+2A43 ; [*0C0F.0020.0002] # INTERSECTION WITH OVERBAR
+2A44 ; [*0C10.0020.0002] # INTERSECTION WITH LOGICAL AND
+2A45 ; [*0C11.0020.0002] # UNION WITH LOGICAL OR
+2A46 ; [*0C12.0020.0002] # UNION ABOVE INTERSECTION
+2A47 ; [*0C13.0020.0002] # INTERSECTION ABOVE UNION
+2A48 ; [*0C14.0020.0002] # UNION ABOVE BAR ABOVE INTERSECTION
+2A49 ; [*0C15.0020.0002] # INTERSECTION ABOVE BAR ABOVE UNION
+2A4A ; [*0C16.0020.0002] # UNION BESIDE AND JOINED WITH UNION
+2A4B ; [*0C17.0020.0002] # INTERSECTION BESIDE AND JOINED WITH INTERSECTION
+2A4C ; [*0C18.0020.0002] # CLOSED UNION WITH SERIFS
+2A4D ; [*0C19.0020.0002] # CLOSED INTERSECTION WITH SERIFS
+2A4E ; [*0C1A.0020.0002] # DOUBLE SQUARE INTERSECTION
+2A4F ; [*0C1B.0020.0002] # DOUBLE SQUARE UNION
+2A50 ; [*0C1C.0020.0002] # CLOSED UNION WITH SERIFS AND SMASH PRODUCT
+2A51 ; [*0C1D.0020.0002] # LOGICAL AND WITH DOT ABOVE
+2A52 ; [*0C1E.0020.0002] # LOGICAL OR WITH DOT ABOVE
+2A53 ; [*0C1F.0020.0002] # DOUBLE LOGICAL AND
+2A54 ; [*0C20.0020.0002] # DOUBLE LOGICAL OR
+2A55 ; [*0C21.0020.0002] # TWO INTERSECTING LOGICAL AND
+2A56 ; [*0C22.0020.0002] # TWO INTERSECTING LOGICAL OR
+2A57 ; [*0C23.0020.0002] # SLOPING LARGE OR
+2A58 ; [*0C24.0020.0002] # SLOPING LARGE AND
+2A59 ; [*0C25.0020.0002] # LOGICAL OR OVERLAPPING LOGICAL AND
+2A5A ; [*0C26.0020.0002] # LOGICAL AND WITH MIDDLE STEM
+2A5B ; [*0C27.0020.0002] # LOGICAL OR WITH MIDDLE STEM
+2A5C ; [*0C28.0020.0002] # LOGICAL AND WITH HORIZONTAL DASH
+2A5D ; [*0C29.0020.0002] # LOGICAL OR WITH HORIZONTAL DASH
+2A5E ; [*0C2A.0020.0002] # LOGICAL AND WITH DOUBLE OVERBAR
+2A5F ; [*0C2B.0020.0002] # LOGICAL AND WITH UNDERBAR
+2A60 ; [*0C2C.0020.0002] # LOGICAL AND WITH DOUBLE UNDERBAR
+2A61 ; [*0C2D.0020.0002] # SMALL VEE WITH UNDERBAR
+2A62 ; [*0C2E.0020.0002] # LOGICAL OR WITH DOUBLE OVERBAR
+2A63 ; [*0C2F.0020.0002] # LOGICAL OR WITH DOUBLE UNDERBAR
+2A64 ; [*0C30.0020.0002] # Z NOTATION DOMAIN ANTIRESTRICTION
+2A65 ; [*0C31.0020.0002] # Z NOTATION RANGE ANTIRESTRICTION
+2A66 ; [*0C32.0020.0002] # EQUALS SIGN WITH DOT BELOW
+2A67 ; [*0C33.0020.0002] # IDENTICAL WITH DOT ABOVE
+2A68 ; [*0C34.0020.0002] # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
+2A69 ; [*0C35.0020.0002] # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
+2A6A ; [*0C36.0020.0002] # TILDE OPERATOR WITH DOT ABOVE
+2A6B ; [*0C37.0020.0002] # TILDE OPERATOR WITH RISING DOTS
+2A6C ; [*0C38.0020.0002] # SIMILAR MINUS SIMILAR
+2A6D ; [*0C39.0020.0002] # CONGRUENT WITH DOT ABOVE
+2A6E ; [*0C3A.0020.0002] # EQUALS WITH ASTERISK
+2A6F ; [*0C3B.0020.0002] # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
+2A70 ; [*0C3C.0020.0002] # APPROXIMATELY EQUAL OR EQUAL TO
+2A71 ; [*0C3D.0020.0002] # EQUALS SIGN ABOVE PLUS SIGN
+2A72 ; [*0C3E.0020.0002] # PLUS SIGN ABOVE EQUALS SIGN
+2A73 ; [*0C3F.0020.0002] # EQUALS SIGN ABOVE TILDE OPERATOR
+2A74 ; [*0239.0020.0004][*0239.0020.0004][*061B.0020.0004] # DOUBLE COLON EQUAL
+2A75 ; [*061B.0020.0004][*061B.0020.0004] # TWO CONSECUTIVE EQUALS SIGNS
+2A76 ; [*061B.0020.0004][*061B.0020.0004][*061B.0020.0004] # THREE CONSECUTIVE EQUALS SIGNS
+2A77 ; [*0C40.0020.0002] # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
+2A78 ; [*0C41.0020.0002] # EQUIVALENT WITH FOUR DOTS ABOVE
+2A79 ; [*0C42.0020.0002] # LESS-THAN WITH CIRCLE INSIDE
+2A7A ; [*0C43.0020.0002] # GREATER-THAN WITH CIRCLE INSIDE
+2A7B ; [*0C44.0020.0002] # LESS-THAN WITH QUESTION MARK ABOVE
+2A7C ; [*0C45.0020.0002] # GREATER-THAN WITH QUESTION MARK ABOVE
+2A7D ; [*0C46.0020.0002] # LESS-THAN OR SLANTED EQUAL TO
+2A7E ; [*0C47.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO
+2A7F ; [*0C48.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A80 ; [*0C49.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A81 ; [*0C4A.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A82 ; [*0C4B.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A83 ; [*0C4C.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
+2A84 ; [*0C4D.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
+2A85 ; [*0C4E.0020.0002] # LESS-THAN OR APPROXIMATE
+2A86 ; [*0C4F.0020.0002] # GREATER-THAN OR APPROXIMATE
+2A87 ; [*0C50.0020.0002] # LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+2A88 ; [*0C51.0020.0002] # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+2A89 ; [*0C52.0020.0002] # LESS-THAN AND NOT APPROXIMATE
+2A8A ; [*0C53.0020.0002] # GREATER-THAN AND NOT APPROXIMATE
+2A8B ; [*0C54.0020.0002] # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
+2A8C ; [*0C55.0020.0002] # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
+2A8D ; [*0C56.0020.0002] # LESS-THAN ABOVE SIMILAR OR EQUAL
+2A8E ; [*0C57.0020.0002] # GREATER-THAN ABOVE SIMILAR OR EQUAL
+2A8F ; [*0C58.0020.0002] # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
+2A90 ; [*0C59.0020.0002] # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
+2A91 ; [*0C5A.0020.0002] # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
+2A92 ; [*0C5B.0020.0002] # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
+2A93 ; [*0C5C.0020.0002] # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
+2A94 ; [*0C5D.0020.0002] # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
+2A95 ; [*0C5E.0020.0002] # SLANTED EQUAL TO OR LESS-THAN
+2A96 ; [*0C5F.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN
+2A97 ; [*0C60.0020.0002] # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
+2A98 ; [*0C61.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
+2A99 ; [*0C62.0020.0002] # DOUBLE-LINE EQUAL TO OR LESS-THAN
+2A9A ; [*0C63.0020.0002] # DOUBLE-LINE EQUAL TO OR GREATER-THAN
+2A9B ; [*0C64.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
+2A9C ; [*0C65.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
+2A9D ; [*0C66.0020.0002] # SIMILAR OR LESS-THAN
+2A9E ; [*0C67.0020.0002] # SIMILAR OR GREATER-THAN
+2A9F ; [*0C68.0020.0002] # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
+2AA0 ; [*0C69.0020.0002] # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
+2AA1 ; [*0C6A.0020.0002] # DOUBLE NESTED LESS-THAN
+2AA2 ; [*0C6B.0020.0002] # DOUBLE NESTED GREATER-THAN
+2AA3 ; [*0C6C.0020.0002] # DOUBLE NESTED LESS-THAN WITH UNDERBAR
+2AA4 ; [*0C6D.0020.0002] # GREATER-THAN OVERLAPPING LESS-THAN
+2AA5 ; [*0C6E.0020.0002] # GREATER-THAN BESIDE LESS-THAN
+2AA6 ; [*0C6F.0020.0002] # LESS-THAN CLOSED BY CURVE
+2AA7 ; [*0C70.0020.0002] # GREATER-THAN CLOSED BY CURVE
+2AA8 ; [*0C71.0020.0002] # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AA9 ; [*0C72.0020.0002] # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AAA ; [*0C73.0020.0002] # SMALLER THAN
+2AAB ; [*0C74.0020.0002] # LARGER THAN
+2AAC ; [*0C75.0020.0002] # SMALLER THAN OR EQUAL TO
+2AAD ; [*0C76.0020.0002] # LARGER THAN OR EQUAL TO
+2AAE ; [*0C77.0020.0002] # EQUALS SIGN WITH BUMPY ABOVE
+2AAF ; [*0C78.0020.0002] # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+2AB0 ; [*0C79.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+2AB1 ; [*0C7A.0020.0002] # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
+2AB2 ; [*0C7B.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
+2AB3 ; [*0C7C.0020.0002] # PRECEDES ABOVE EQUALS SIGN
+2AB4 ; [*0C7D.0020.0002] # SUCCEEDS ABOVE EQUALS SIGN
+2AB5 ; [*0C7E.0020.0002] # PRECEDES ABOVE NOT EQUAL TO
+2AB6 ; [*0C7F.0020.0002] # SUCCEEDS ABOVE NOT EQUAL TO
+2AB7 ; [*0C80.0020.0002] # PRECEDES ABOVE ALMOST EQUAL TO
+2AB8 ; [*0C81.0020.0002] # SUCCEEDS ABOVE ALMOST EQUAL TO
+2AB9 ; [*0C82.0020.0002] # PRECEDES ABOVE NOT ALMOST EQUAL TO
+2ABA ; [*0C83.0020.0002] # SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+2ABB ; [*0C84.0020.0002] # DOUBLE PRECEDES
+2ABC ; [*0C85.0020.0002] # DOUBLE SUCCEEDS
+2ABD ; [*0C86.0020.0002] # SUBSET WITH DOT
+2ABE ; [*0C87.0020.0002] # SUPERSET WITH DOT
+2ABF ; [*0C88.0020.0002] # SUBSET WITH PLUS SIGN BELOW
+2AC0 ; [*0C89.0020.0002] # SUPERSET WITH PLUS SIGN BELOW
+2AC1 ; [*0C8A.0020.0002] # SUBSET WITH MULTIPLICATION SIGN BELOW
+2AC2 ; [*0C8B.0020.0002] # SUPERSET WITH MULTIPLICATION SIGN BELOW
+2AC3 ; [*0C8C.0020.0002] # SUBSET OF OR EQUAL TO WITH DOT ABOVE
+2AC4 ; [*0C8D.0020.0002] # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
+2AC5 ; [*0C8E.0020.0002] # SUBSET OF ABOVE EQUALS SIGN
+2AC6 ; [*0C8F.0020.0002] # SUPERSET OF ABOVE EQUALS SIGN
+2AC7 ; [*0C90.0020.0002] # SUBSET OF ABOVE TILDE OPERATOR
+2AC8 ; [*0C91.0020.0002] # SUPERSET OF ABOVE TILDE OPERATOR
+2AC9 ; [*0C92.0020.0002] # SUBSET OF ABOVE ALMOST EQUAL TO
+2ACA ; [*0C93.0020.0002] # SUPERSET OF ABOVE ALMOST EQUAL TO
+2ACB ; [*0C94.0020.0002] # SUBSET OF ABOVE NOT EQUAL TO
+2ACC ; [*0C95.0020.0002] # SUPERSET OF ABOVE NOT EQUAL TO
+2ACD ; [*0C96.0020.0002] # SQUARE LEFT OPEN BOX OPERATOR
+2ACE ; [*0C97.0020.0002] # SQUARE RIGHT OPEN BOX OPERATOR
+2ACF ; [*0C98.0020.0002] # CLOSED SUBSET
+2AD0 ; [*0C99.0020.0002] # CLOSED SUPERSET
+2AD1 ; [*0C9A.0020.0002] # CLOSED SUBSET OR EQUAL TO
+2AD2 ; [*0C9B.0020.0002] # CLOSED SUPERSET OR EQUAL TO
+2AD3 ; [*0C9C.0020.0002] # SUBSET ABOVE SUPERSET
+2AD4 ; [*0C9D.0020.0002] # SUPERSET ABOVE SUBSET
+2AD5 ; [*0C9E.0020.0002] # SUBSET ABOVE SUBSET
+2AD6 ; [*0C9F.0020.0002] # SUPERSET ABOVE SUPERSET
+2AD7 ; [*0CA0.0020.0002] # SUPERSET BESIDE SUBSET
+2AD8 ; [*0CA1.0020.0002] # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
+2AD9 ; [*0CA2.0020.0002] # ELEMENT OF OPENING DOWNWARDS
+2ADA ; [*0CA3.0020.0002] # PITCHFORK WITH TEE TOP
+2ADB ; [*0CA4.0020.0002] # TRANSVERSAL INTERSECTION
+2ADC ; [*0CA5.0020.0002][.0000.002F.0002] # FORKING
+2ADD ; [*0CA5.0020.0002] # NONFORKING
+2ADE ; [*0CA6.0020.0002] # SHORT LEFT TACK
+2ADF ; [*0CA7.0020.0002] # SHORT DOWN TACK
+2AE0 ; [*0CA8.0020.0002] # SHORT UP TACK
+2AE1 ; [*0CA9.0020.0002] # PERPENDICULAR WITH S
+2AE2 ; [*0CAA.0020.0002] # VERTICAL BAR TRIPLE RIGHT TURNSTILE
+2AE3 ; [*0CAB.0020.0002] # DOUBLE VERTICAL BAR LEFT TURNSTILE
+2AE4 ; [*0CAC.0020.0002] # VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AE5 ; [*0CAD.0020.0002] # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AE6 ; [*0CAE.0020.0002] # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
+2AE7 ; [*0CAF.0020.0002] # SHORT DOWN TACK WITH OVERBAR
+2AE8 ; [*0CB0.0020.0002] # SHORT UP TACK WITH UNDERBAR
+2AE9 ; [*0CB1.0020.0002] # SHORT UP TACK ABOVE SHORT DOWN TACK
+2AEA ; [*0CB2.0020.0002] # DOUBLE DOWN TACK
+2AEB ; [*0CB3.0020.0002] # DOUBLE UP TACK
+2AEC ; [*0CB4.0020.0002] # DOUBLE STROKE NOT SIGN
+2AED ; [*0CB5.0020.0002] # REVERSED DOUBLE STROKE NOT SIGN
+2AEE ; [*0CB6.0020.0002] # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
+2AEF ; [*0CB7.0020.0002] # VERTICAL LINE WITH CIRCLE ABOVE
+2AF0 ; [*0CB8.0020.0002] # VERTICAL LINE WITH CIRCLE BELOW
+2AF1 ; [*0CB9.0020.0002] # DOWN TACK WITH CIRCLE BELOW
+2AF2 ; [*0CBA.0020.0002] # PARALLEL WITH HORIZONTAL STROKE
+2AF3 ; [*0CBB.0020.0002] # PARALLEL WITH TILDE OPERATOR
+2AF4 ; [*0CBC.0020.0002] # TRIPLE VERTICAL BAR BINARY RELATION
+2AF5 ; [*0CBD.0020.0002] # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
+2AF6 ; [*0CBE.0020.0002] # TRIPLE COLON OPERATOR
+2AF7 ; [*0CBF.0020.0002] # TRIPLE NESTED LESS-THAN
+2AF8 ; [*0CC0.0020.0002] # TRIPLE NESTED GREATER-THAN
+2AF9 ; [*0CC1.0020.0002] # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
+2AFA ; [*0CC2.0020.0002] # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
+2AFB ; [*0CC3.0020.0002] # TRIPLE SOLIDUS BINARY RELATION
+2AFC ; [*0CC4.0020.0002] # LARGE TRIPLE VERTICAL BAR OPERATOR
+2AFD ; [*0CC5.0020.0002] # DOUBLE SOLIDUS OPERATOR
+2AFE ; [*0CC6.0020.0002] # WHITE VERTICAL BAR
+2AFF ; [*0CC7.0020.0002] # N-ARY WHITE VERTICAL BAR
+2B00 ; [*0CC8.0020.0002] # NORTH EAST WHITE ARROW
+2B01 ; [*0CC9.0020.0002] # NORTH WEST WHITE ARROW
+2B02 ; [*0CCA.0020.0002] # SOUTH EAST WHITE ARROW
+2B03 ; [*0CCB.0020.0002] # SOUTH WEST WHITE ARROW
+2B04 ; [*0CCC.0020.0002] # LEFT RIGHT WHITE ARROW
+2B05 ; [*0CCD.0020.0002] # LEFTWARDS BLACK ARROW
+2B06 ; [*0CCE.0020.0002] # UPWARDS BLACK ARROW
+2B07 ; [*0CCF.0020.0002] # DOWNWARDS BLACK ARROW
+2B08 ; [*0CD0.0020.0002] # NORTH EAST BLACK ARROW
+2B09 ; [*0CD1.0020.0002] # NORTH WEST BLACK ARROW
+2B0A ; [*0CD2.0020.0002] # SOUTH EAST BLACK ARROW
+2B0B ; [*0CD3.0020.0002] # SOUTH WEST BLACK ARROW
+2B0C ; [*0CD4.0020.0002] # LEFT RIGHT BLACK ARROW
+2B0D ; [*0CD5.0020.0002] # UP DOWN BLACK ARROW
+2B0E ; [*0CD6.0020.0002] # RIGHTWARDS ARROW WITH TIP DOWNWARDS
+2B0F ; [*0CD7.0020.0002] # RIGHTWARDS ARROW WITH TIP UPWARDS
+2B10 ; [*0CD8.0020.0002] # LEFTWARDS ARROW WITH TIP DOWNWARDS
+2B11 ; [*0CD9.0020.0002] # LEFTWARDS ARROW WITH TIP UPWARDS
+2B12 ; [*0CDA.0020.0002] # SQUARE WITH TOP HALF BLACK
+2B13 ; [*0CDB.0020.0002] # SQUARE WITH BOTTOM HALF BLACK
+2B14 ; [*0CDC.0020.0002] # SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
+2B15 ; [*0CDD.0020.0002] # SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
+2B16 ; [*0CDE.0020.0002] # DIAMOND WITH LEFT HALF BLACK
+2B17 ; [*0CDF.0020.0002] # DIAMOND WITH RIGHT HALF BLACK
+2B18 ; [*0CE0.0020.0002] # DIAMOND WITH TOP HALF BLACK
+2B19 ; [*0CE1.0020.0002] # DIAMOND WITH BOTTOM HALF BLACK
+2B1A ; [*0CE2.0020.0002] # DOTTED SQUARE
+2B1B ; [*0CE3.0020.0002] # BLACK LARGE SQUARE
+2B1C ; [*0CE4.0020.0002] # WHITE LARGE SQUARE
+2B1D ; [*0CE5.0020.0002] # BLACK VERY SMALL SQUARE
+2B1E ; [*0CE6.0020.0002] # WHITE VERY SMALL SQUARE
+2B1F ; [*0CE7.0020.0002] # BLACK PENTAGON
+2B20 ; [*0CE8.0020.0002] # WHITE PENTAGON
+2B21 ; [*0CE9.0020.0002] # WHITE HEXAGON
+2B22 ; [*0CEA.0020.0002] # BLACK HEXAGON
+2B23 ; [*0CEB.0020.0002] # HORIZONTAL BLACK HEXAGON
+2B24 ; [*0CEC.0020.0002] # BLACK LARGE CIRCLE
+2B25 ; [*0CED.0020.0002] # BLACK MEDIUM DIAMOND
+2B26 ; [*0CEE.0020.0002] # WHITE MEDIUM DIAMOND
+2B27 ; [*0CEF.0020.0002] # BLACK MEDIUM LOZENGE
+2B28 ; [*0CF0.0020.0002] # WHITE MEDIUM LOZENGE
+2B29 ; [*0CF1.0020.0002] # BLACK SMALL DIAMOND
+2B2A ; [*0CF2.0020.0002] # BLACK SMALL LOZENGE
+2B2B ; [*0CF3.0020.0002] # WHITE SMALL LOZENGE
+2B2C ; [*0CF4.0020.0002] # BLACK HORIZONTAL ELLIPSE
+2B2D ; [*0CF5.0020.0002] # WHITE HORIZONTAL ELLIPSE
+2B2E ; [*0CF6.0020.0002] # BLACK VERTICAL ELLIPSE
+2B2F ; [*0CF7.0020.0002] # WHITE VERTICAL ELLIPSE
+2B30 ; [*0CF8.0020.0002] # LEFT ARROW WITH SMALL CIRCLE
+2B31 ; [*0CF9.0020.0002] # THREE LEFTWARDS ARROWS
+2B32 ; [*0CFA.0020.0002] # LEFT ARROW WITH CIRCLED PLUS
+2B33 ; [*0CFB.0020.0002] # LONG LEFTWARDS SQUIGGLE ARROW
+2B34 ; [*0CFC.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
+2B35 ; [*0CFD.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
+2B36 ; [*0CFE.0020.0002] # LEFTWARDS TWO-HEADED ARROW FROM BAR
+2B37 ; [*0CFF.0020.0002] # LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
+2B38 ; [*0D00.0020.0002] # LEFTWARDS ARROW WITH DOTTED STEM
+2B39 ; [*0D01.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
+2B3A ; [*0D02.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2B3B ; [*0D03.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL
+2B3C ; [*0D04.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
+2B3D ; [*0D05.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2B3E ; [*0D06.0020.0002] # LEFTWARDS ARROW THROUGH X
+2B3F ; [*0D07.0020.0002] # WAVE ARROW POINTING DIRECTLY LEFT
+2B40 ; [*0D08.0020.0002] # EQUALS SIGN ABOVE LEFTWARDS ARROW
+2B41 ; [*0D09.0020.0002] # REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
+2B42 ; [*0D0A.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
+2B43 ; [*0D0B.0020.0002] # RIGHTWARDS ARROW THROUGH GREATER-THAN
+2B44 ; [*0D0C.0020.0002] # RIGHTWARDS ARROW THROUGH SUPERSET
+2B45 ; [*0D0D.0020.0002] # LEFTWARDS QUADRUPLE ARROW
+2B46 ; [*0D0E.0020.0002] # RIGHTWARDS QUADRUPLE ARROW
+2B47 ; [*0D0F.0020.0002] # REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
+2B48 ; [*0D10.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
+2B49 ; [*0D11.0020.0002] # TILDE OPERATOR ABOVE LEFTWARDS ARROW
+2B4A ; [*0D12.0020.0002] # LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
+2B4B ; [*0D13.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4C ; [*0D14.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D ; [*0D15.0020.0002] # DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW
+2B4E ; [*0D16.0020.0002] # SHORT SLANTED NORTH ARROW
+2B4F ; [*0D17.0020.0002] # SHORT BACKSLANTED SOUTH ARROW
+2B50 ; [*0D18.0020.0002] # WHITE MEDIUM STAR
+2B51 ; [*0D19.0020.0002] # BLACK SMALL STAR
+2B52 ; [*0D1A.0020.0002] # WHITE SMALL STAR
+2B53 ; [*0D1B.0020.0002] # BLACK RIGHT-POINTING PENTAGON
+2B54 ; [*0D1C.0020.0002] # WHITE RIGHT-POINTING PENTAGON
+2B55 ; [*0D1D.0020.0002] # HEAVY LARGE CIRCLE
+2B56 ; [*0D1E.0020.0002] # HEAVY OVAL WITH OVAL INSIDE
+2B57 ; [*0D1F.0020.0002] # HEAVY CIRCLE WITH CIRCLE INSIDE
+2B58 ; [*0D20.0020.0002] # HEAVY CIRCLE
+2B59 ; [*0D21.0020.0002] # HEAVY CIRCLED SALTIRE
+2B5A ; [*0D22.0020.0002] # SLANTED NORTH ARROW WITH HOOKED HEAD
+2B5B ; [*0D23.0020.0002] # BACKSLANTED SOUTH ARROW WITH HOOKED TAIL
+2B5C ; [*0D24.0020.0002] # SLANTED NORTH ARROW WITH HORIZONTAL TAIL
+2B5D ; [*0D25.0020.0002] # BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL
+2B5E ; [*0D26.0020.0002] # BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
+2B5F ; [*0D27.0020.0002] # SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
+2B60 ; [*0D28.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW
+2B61 ; [*0D29.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW
+2B62 ; [*0D2A.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW
+2B63 ; [*0D2B.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW
+2B64 ; [*0D2C.0020.0002] # LEFT RIGHT TRIANGLE-HEADED ARROW
+2B65 ; [*0D2D.0020.0002] # UP DOWN TRIANGLE-HEADED ARROW
+2B66 ; [*0D2E.0020.0002] # NORTH WEST TRIANGLE-HEADED ARROW
+2B67 ; [*0D2F.0020.0002] # NORTH EAST TRIANGLE-HEADED ARROW
+2B68 ; [*0D30.0020.0002] # SOUTH EAST TRIANGLE-HEADED ARROW
+2B69 ; [*0D31.0020.0002] # SOUTH WEST TRIANGLE-HEADED ARROW
+2B6A ; [*0D32.0020.0002] # LEFTWARDS TRIANGLE-HEADED DASHED ARROW
+2B6B ; [*0D33.0020.0002] # UPWARDS TRIANGLE-HEADED DASHED ARROW
+2B6C ; [*0D34.0020.0002] # RIGHTWARDS TRIANGLE-HEADED DASHED ARROW
+2B6D ; [*0D35.0020.0002] # DOWNWARDS TRIANGLE-HEADED DASHED ARROW
+2B6E ; [*0D36.0020.0002] # CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
+2B6F ; [*0D37.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
+2B70 ; [*0D38.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
+2B71 ; [*0D39.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW TO BAR
+2B72 ; [*0D3A.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR
+2B73 ; [*0D3B.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76 ; [*0D3C.0020.0002] # NORTH WEST TRIANGLE-HEADED ARROW TO BAR
+2B77 ; [*0D3D.0020.0002] # NORTH EAST TRIANGLE-HEADED ARROW TO BAR
+2B78 ; [*0D3E.0020.0002] # SOUTH EAST TRIANGLE-HEADED ARROW TO BAR
+2B79 ; [*0D3F.0020.0002] # SOUTH WEST TRIANGLE-HEADED ARROW TO BAR
+2B7A ; [*0D40.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7B ; [*0D41.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7C ; [*0D42.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7D ; [*0D43.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7E ; [*0D44.0020.0002] # HORIZONTAL TAB KEY
+2B7F ; [*0D45.0020.0002] # VERTICAL TAB KEY
+2B80 ; [*0D46.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW
+2B81 ; [*0D47.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW
+2B82 ; [*0D48.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW
+2B83 ; [*0D49.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW
+2B84 ; [*0D4A.0020.0002] # LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
+2B85 ; [*0D4B.0020.0002] # UPWARDS TRIANGLE-HEADED PAIRED ARROWS
+2B86 ; [*0D4C.0020.0002] # RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS
+2B87 ; [*0D4D.0020.0002] # DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS
+2B88 ; [*0D4E.0020.0002] # LEFTWARDS BLACK CIRCLED WHITE ARROW
+2B89 ; [*0D4F.0020.0002] # UPWARDS BLACK CIRCLED WHITE ARROW
+2B8A ; [*0D50.0020.0002] # RIGHTWARDS BLACK CIRCLED WHITE ARROW
+2B8B ; [*0D51.0020.0002] # DOWNWARDS BLACK CIRCLED WHITE ARROW
+2B8C ; [*0D52.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW
+2B8D ; [*0D53.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW
+2B8E ; [*0D54.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW
+2B8F ; [*0D55.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW
+2B90 ; [*0D56.0020.0002] # RETURN LEFT
+2B91 ; [*0D57.0020.0002] # RETURN RIGHT
+2B92 ; [*0D58.0020.0002] # NEWLINE LEFT
+2B93 ; [*0D59.0020.0002] # NEWLINE RIGHT
+2B94 ; [*0D5A.0020.0002] # FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE
+2B95 ; [*0D5B.0020.0002] # RIGHTWARDS BLACK ARROW
+2B98 ; [*0D5C.0020.0002] # THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD
+2B99 ; [*0D5D.0020.0002] # THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD
+2B9A ; [*0D5E.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD
+2B9B ; [*0D5F.0020.0002] # THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD
+2B9C ; [*0D60.0020.0002] # BLACK LEFTWARDS EQUILATERAL ARROWHEAD
+2B9D ; [*0D61.0020.0002] # BLACK UPWARDS EQUILATERAL ARROWHEAD
+2B9E ; [*0D62.0020.0002] # BLACK RIGHTWARDS EQUILATERAL ARROWHEAD
+2B9F ; [*0D63.0020.0002] # BLACK DOWNWARDS EQUILATERAL ARROWHEAD
+2BA0 ; [*0D64.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
+2BA1 ; [*0D65.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
+2BA2 ; [*0D66.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
+2BA3 ; [*0D67.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
+2BA4 ; [*0D68.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
+2BA5 ; [*0D69.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
+2BA6 ; [*0D6A.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
+2BA7 ; [*0D6B.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
+2BA8 ; [*0D6C.0020.0002] # BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW
+2BA9 ; [*0D6D.0020.0002] # BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+2BAA ; [*0D6E.0020.0002] # BLACK CURVED UPWARDS AND LEFTWARDS ARROW
+2BAB ; [*0D6F.0020.0002] # BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+2BAC ; [*0D70.0020.0002] # BLACK CURVED LEFTWARDS AND UPWARDS ARROW
+2BAD ; [*0D71.0020.0002] # BLACK CURVED RIGHTWARDS AND UPWARDS ARROW
+2BAE ; [*0D72.0020.0002] # BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW
+2BAF ; [*0D73.0020.0002] # BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW
+2BB0 ; [*0D74.0020.0002] # RIBBON ARROW DOWN LEFT
+2BB1 ; [*0D75.0020.0002] # RIBBON ARROW DOWN RIGHT
+2BB2 ; [*0D76.0020.0002] # RIBBON ARROW UP LEFT
+2BB3 ; [*0D77.0020.0002] # RIBBON ARROW UP RIGHT
+2BB4 ; [*0D78.0020.0002] # RIBBON ARROW LEFT UP
+2BB5 ; [*0D79.0020.0002] # RIBBON ARROW RIGHT UP
+2BB6 ; [*0D7A.0020.0002] # RIBBON ARROW LEFT DOWN
+2BB7 ; [*0D7B.0020.0002] # RIBBON ARROW RIGHT DOWN
+2BB8 ; [*0D7C.0020.0002] # UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR
+2BB9 ; [*0D7D.0020.0002] # UP ARROWHEAD IN A RECTANGLE BOX
+2BBD ; [*0D7E.0020.0002] # BALLOT BOX WITH LIGHT X
+2BBE ; [*0D7F.0020.0002] # CIRCLED X
+2BBF ; [*0D80.0020.0002] # CIRCLED BOLD X
+2BC0 ; [*0D81.0020.0002] # BLACK SQUARE CENTRED
+2BC1 ; [*0D82.0020.0002] # BLACK DIAMOND CENTRED
+2BC2 ; [*0D83.0020.0002] # TURNED BLACK PENTAGON
+2BC3 ; [*0D84.0020.0002] # HORIZONTAL BLACK OCTAGON
+2BC4 ; [*0D85.0020.0002] # BLACK OCTAGON
+2BC5 ; [*0D86.0020.0002] # BLACK MEDIUM UP-POINTING TRIANGLE CENTRED
+2BC6 ; [*0D87.0020.0002] # BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED
+2BC7 ; [*0D88.0020.0002] # BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED
+2BC8 ; [*0D89.0020.0002] # BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA ; [*0D8A.0020.0002] # TOP HALF BLACK CIRCLE
+2BCB ; [*0D8B.0020.0002] # BOTTOM HALF BLACK CIRCLE
+2BCC ; [*0D8C.0020.0002] # LIGHT FOUR POINTED BLACK CUSP
+2BCD ; [*0D8D.0020.0002] # ROTATED LIGHT FOUR POINTED BLACK CUSP
+2BCE ; [*0D8E.0020.0002] # WHITE FOUR POINTED CUSP
+2BCF ; [*0D8F.0020.0002] # ROTATED WHITE FOUR POINTED CUSP
+2BD0 ; [*0D90.0020.0002] # SQUARE POSITION INDICATOR
+2BD1 ; [*0D91.0020.0002] # UNCERTAINTY SIGN
+2BEC ; [*0D92.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2BED ; [*0D93.0020.0002] # UPWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2BEE ; [*0D94.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2BEF ; [*0D95.0020.0002] # DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2CE5 ; [*0D96.0020.0002] # COPTIC SYMBOL MI RO
+2CE6 ; [*0D97.0020.0002] # COPTIC SYMBOL PI RO
+2CE7 ; [*0D98.0020.0002] # COPTIC SYMBOL STAUROS
+2CE8 ; [*0D99.0020.0002] # COPTIC SYMBOL TAU RO
+2CE9 ; [*0D9A.0020.0002] # COPTIC SYMBOL KHI RO
+2CEA ; [*0D9B.0020.0002] # COPTIC SYMBOL SHIMA SIMA
+2CF9 ; [*0281.0020.0002] # COPTIC OLD NUBIAN FULL STOP
+2CFA ; [*026E.0020.0002] # COPTIC OLD NUBIAN DIRECT QUESTION MARK
+2CFB ; [*026F.0020.0002] # COPTIC OLD NUBIAN INDIRECT QUESTION MARK
+2CFC ; [*02F6.0020.0002] # COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD ; [*1AE2.0020.0002] # COPTIC FRACTION ONE HALF
+2CFE ; [*0282.0020.0002] # COPTIC FULL STOP
+2CFF ; [*02F7.0020.0002] # COPTIC MORPHOLOGICAL DIVIDER
+2D70 ; [*0427.0020.0002] # TIFINAGH SEPARATOR MARK
2D7F ; [.0000.0000.0000] # TIFINAGH CONSONANT JOINER
-2E00 ; [*03A9.0020.0002] # RIGHT ANGLE SUBSTITUTION MARKER
-2E01 ; [*03AA.0020.0002] # RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02 ; [*034E.0020.0002] # LEFT SUBSTITUTION BRACKET
-2E03 ; [*034F.0020.0002] # RIGHT SUBSTITUTION BRACKET
-2E04 ; [*0350.0020.0002] # LEFT DOTTED SUBSTITUTION BRACKET
-2E05 ; [*0351.0020.0002] # RIGHT DOTTED SUBSTITUTION BRACKET
-2E06 ; [*03AB.0020.0002] # RAISED INTERPOLATION MARKER
-2E07 ; [*03AC.0020.0002] # RAISED DOTTED INTERPOLATION MARKER
-2E08 ; [*03AD.0020.0002] # DOTTED TRANSPOSITION MARKER
-2E09 ; [*0352.0020.0002] # LEFT TRANSPOSITION BRACKET
-2E0A ; [*0353.0020.0002] # RIGHT TRANSPOSITION BRACKET
-2E0B ; [*03AE.0020.0002] # RAISED SQUARE
-2E0C ; [*0354.0020.0002] # LEFT RAISED OMISSION BRACKET
-2E0D ; [*0355.0020.0002] # RIGHT RAISED OMISSION BRACKET
-2E0E ; [*03AF.0020.0002] # EDITORIAL CORONIS
-2E0F ; [*03B0.0020.0002] # PARAGRAPHOS
-2E10 ; [*03B1.0020.0002] # FORKED PARAGRAPHOS
-2E11 ; [*03B2.0020.0002] # REVERSED FORKED PARAGRAPHOS
-2E12 ; [*03B3.0020.0002] # HYPODIASTOLE
-2E13 ; [*03B4.0020.0002] # DOTTED OBELOS
-2E14 ; [*03B5.0020.0002] # DOWNWARDS ANCORA
-2E15 ; [*03B6.0020.0002] # UPWARDS ANCORA
-2E16 ; [*03B7.0020.0002] # DOTTED RIGHT-POINTING ANGLE
-2E17 ; [*021B.0020.0002] # DOUBLE OBLIQUE HYPHEN
-2E18 ; [*0273.0020.0002] # INVERTED INTERROBANG
-2E19 ; [*02EB.0020.0002] # PALM BRANCH
-2E1A ; [*03B8.0020.0002] # HYPHEN WITH DIAERESIS
-2E1B ; [*03B9.0020.0002] # TILDE WITH RING ABOVE
-2E1C ; [*0356.0020.0002] # LEFT LOW PARAPHRASE BRACKET
-2E1D ; [*0357.0020.0002] # RIGHT LOW PARAPHRASE BRACKET
-2E1E ; [*03BA.0020.0002] # TILDE WITH DOT ABOVE
-2E1F ; [*03BB.0020.0002] # TILDE WITH DOT BELOW
-2E20 ; [*0358.0020.0002] # LEFT VERTICAL BAR WITH QUILL
-2E21 ; [*0359.0020.0002] # RIGHT VERTICAL BAR WITH QUILL
-2E22 ; [*035A.0020.0002] # TOP LEFT HALF BRACKET
-2E23 ; [*035B.0020.0002] # TOP RIGHT HALF BRACKET
-2E24 ; [*035C.0020.0002] # BOTTOM LEFT HALF BRACKET
-2E25 ; [*035D.0020.0002] # BOTTOM RIGHT HALF BRACKET
-2E26 ; [*035E.0020.0002] # LEFT SIDEWAYS U BRACKET
-2E27 ; [*035F.0020.0002] # RIGHT SIDEWAYS U BRACKET
-2E28 ; [*0360.0020.0002] # LEFT DOUBLE PARENTHESIS
-2E29 ; [*0361.0020.0002] # RIGHT DOUBLE PARENTHESIS
-2E2A ; [*02E4.0020.0002] # TWO DOTS OVER ONE DOT PUNCTUATION
-2E2B ; [*02E5.0020.0002] # ONE DOT OVER TWO DOTS PUNCTUATION
-2E2C ; [*02E6.0020.0002] # SQUARED FOUR DOT PUNCTUATION
-2E2D ; [*02E7.0020.0002] # FIVE DOT MARK
-2E2E ; [*0266.0020.0002] # REVERSED QUESTION MARK
-2E30 ; [*0280.0020.0002] # RING POINT
-2E31 ; [*0289.0020.0002] # WORD SEPARATOR MIDDLE DOT
-2E32 ; [*0223.0020.0002] # TURNED COMMA
-2E33 ; [*028A.0020.0002] # RAISED DOT
-2E34 ; [*0222.0020.0002] # RAISED COMMA
-2E35 ; [*0236.0020.0002] # TURNED SEMICOLON
-2E36 ; [*0394.0020.0002] # DAGGER WITH LEFT GUARD
-2E37 ; [*0395.0020.0002] # DAGGER WITH RIGHT GUARD
-2E38 ; [*0396.0020.0002] # TURNED DAGGER
-2E39 ; [*037D.0020.0002] # TOP HALF SECTION SIGN
+2E00 ; [*03B6.0020.0002] # RIGHT ANGLE SUBSTITUTION MARKER
+2E01 ; [*03B7.0020.0002] # RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02 ; [*035B.0020.0002] # LEFT SUBSTITUTION BRACKET
+2E03 ; [*035C.0020.0002] # RIGHT SUBSTITUTION BRACKET
+2E04 ; [*035D.0020.0002] # LEFT DOTTED SUBSTITUTION BRACKET
+2E05 ; [*035E.0020.0002] # RIGHT DOTTED SUBSTITUTION BRACKET
+2E06 ; [*03B8.0020.0002] # RAISED INTERPOLATION MARKER
+2E07 ; [*03B9.0020.0002] # RAISED DOTTED INTERPOLATION MARKER
+2E08 ; [*03BA.0020.0002] # DOTTED TRANSPOSITION MARKER
+2E09 ; [*035F.0020.0002] # LEFT TRANSPOSITION BRACKET
+2E0A ; [*0360.0020.0002] # RIGHT TRANSPOSITION BRACKET
+2E0B ; [*03BB.0020.0002] # RAISED SQUARE
+2E0C ; [*0361.0020.0002] # LEFT RAISED OMISSION BRACKET
+2E0D ; [*0362.0020.0002] # RIGHT RAISED OMISSION BRACKET
+2E0E ; [*03BC.0020.0002] # EDITORIAL CORONIS
+2E0F ; [*03BD.0020.0002] # PARAGRAPHOS
+2E10 ; [*03BE.0020.0002] # FORKED PARAGRAPHOS
+2E11 ; [*03BF.0020.0002] # REVERSED FORKED PARAGRAPHOS
+2E12 ; [*03C0.0020.0002] # HYPODIASTOLE
+2E13 ; [*03C1.0020.0002] # DOTTED OBELOS
+2E14 ; [*03C2.0020.0002] # DOWNWARDS ANCORA
+2E15 ; [*03C3.0020.0002] # UPWARDS ANCORA
+2E16 ; [*03C4.0020.0002] # DOTTED RIGHT-POINTING ANGLE
+2E17 ; [*021C.0020.0002] # DOUBLE OBLIQUE HYPHEN
+2E18 ; [*0276.0020.0002] # INVERTED INTERROBANG
+2E19 ; [*02F8.0020.0002] # PALM BRANCH
+2E1A ; [*03C5.0020.0002] # HYPHEN WITH DIAERESIS
+2E1B ; [*03C6.0020.0002] # TILDE WITH RING ABOVE
+2E1C ; [*0363.0020.0002] # LEFT LOW PARAPHRASE BRACKET
+2E1D ; [*0364.0020.0002] # RIGHT LOW PARAPHRASE BRACKET
+2E1E ; [*03C7.0020.0002] # TILDE WITH DOT ABOVE
+2E1F ; [*03C8.0020.0002] # TILDE WITH DOT BELOW
+2E20 ; [*0365.0020.0002] # LEFT VERTICAL BAR WITH QUILL
+2E21 ; [*0366.0020.0002] # RIGHT VERTICAL BAR WITH QUILL
+2E22 ; [*0367.0020.0002] # TOP LEFT HALF BRACKET
+2E23 ; [*0368.0020.0002] # TOP RIGHT HALF BRACKET
+2E24 ; [*0369.0020.0002] # BOTTOM LEFT HALF BRACKET
+2E25 ; [*036A.0020.0002] # BOTTOM RIGHT HALF BRACKET
+2E26 ; [*036B.0020.0002] # LEFT SIDEWAYS U BRACKET
+2E27 ; [*036C.0020.0002] # RIGHT SIDEWAYS U BRACKET
+2E28 ; [*036D.0020.0002] # LEFT DOUBLE PARENTHESIS
+2E29 ; [*036E.0020.0002] # RIGHT DOUBLE PARENTHESIS
+2E2A ; [*02F1.0020.0002] # TWO DOTS OVER ONE DOT PUNCTUATION
+2E2B ; [*02F2.0020.0002] # ONE DOT OVER TWO DOTS PUNCTUATION
+2E2C ; [*02F3.0020.0002] # SQUARED FOUR DOT PUNCTUATION
+2E2D ; [*02F4.0020.0002] # FIVE DOT MARK
+2E2E ; [*0268.0020.0002] # REVERSED QUESTION MARK
+2E30 ; [*0283.0020.0002] # RING POINT
+2E31 ; [*028C.0020.0002] # WORD SEPARATOR MIDDLE DOT
+2E32 ; [*0224.0020.0002] # TURNED COMMA
+2E33 ; [*028D.0020.0002] # RAISED DOT
+2E34 ; [*0223.0020.0002] # RAISED COMMA
+2E35 ; [*0237.0020.0002] # TURNED SEMICOLON
+2E36 ; [*03A1.0020.0002] # DAGGER WITH LEFT GUARD
+2E37 ; [*03A2.0020.0002] # DAGGER WITH RIGHT GUARD
+2E38 ; [*03A3.0020.0002] # TURNED DAGGER
+2E39 ; [*038A.0020.0002] # TOP HALF SECTION SIGN
2E3A ; [*0218.0020.0002] # TWO-EM DASH
2E3B ; [*0219.0020.0002] # THREE-EM DASH
-2E3C ; [*0281.0020.0002] # STENOGRAPHIC FULL STOP
-2E3D ; [*02E8.0020.0002] # VERTICAL SIX DOTS
-2E3E ; [*0377.0020.0002] # WIGGLY VERTICAL LINE
-2E3F ; [*0380.0020.0002] # CAPITULUM
-2E40 ; [*021C.0020.0002] # DOUBLE HYPHEN
-2E41 ; [*0224.0020.0002] # REVERSED COMMA
-2E42 ; [*0304.0020.0002] # DOUBLE LOW-REVERSED-9 QUOTATION MARK
-2FF0 ; [*1776.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
-2FF1 ; [*1777.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
-2FF2 ; [*1778.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
-2FF3 ; [*1779.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
-2FF4 ; [*177A.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
-2FF5 ; [*177B.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
-2FF6 ; [*177C.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
-2FF7 ; [*177D.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
-2FF8 ; [*177E.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
-2FF9 ; [*177F.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
-2FFA ; [*1780.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
-2FFB ; [*1781.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2E3C ; [*0284.0020.0002] # STENOGRAPHIC FULL STOP
+2E3D ; [*02F5.0020.0002] # VERTICAL SIX DOTS
+2E3E ; [*0384.0020.0002] # WIGGLY VERTICAL LINE
+2E3F ; [*038D.0020.0002] # CAPITULUM
+2E40 ; [*021D.0020.0002] # DOUBLE HYPHEN
+2E41 ; [*0225.0020.0002] # REVERSED COMMA
+2E42 ; [*0311.0020.0002] # DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E43 ; [*021B.0020.0002] # DASH WITH LEFT UPTURN
+2E44 ; [*03C9.0020.0002] # DOUBLE SUSPENSION MARK
+2FF0 ; [*1A5B.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
+2FF1 ; [*1A5C.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
+2FF2 ; [*1A5D.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
+2FF3 ; [*1A5E.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
+2FF4 ; [*1A5F.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
+2FF5 ; [*1A60.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
+2FF6 ; [*1A61.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
+2FF7 ; [*1A62.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
+2FF8 ; [*1A63.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
+2FF9 ; [*1A64.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
+2FFA ; [*1A65.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
+2FFB ; [*1A66.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
3000 ; [*0209.0020.0003] # IDEOGRAPHIC SPACE
-3001 ; [*0230.0020.0002] # IDEOGRAPHIC COMMA
-3002 ; [*0287.0020.0002] # IDEOGRAPHIC FULL STOP
-3003 ; [*039F.0020.0002] # DITTO MARK
-3004 ; [*17A6.0020.0002] # JAPANESE INDUSTRIAL STANDARD SYMBOL
-3008 ; [*0362.0020.0002] # LEFT ANGLE BRACKET
-3009 ; [*0363.0020.0002] # RIGHT ANGLE BRACKET
-300A ; [*0364.0020.0002] # LEFT DOUBLE ANGLE BRACKET
-300B ; [*0365.0020.0002] # RIGHT DOUBLE ANGLE BRACKET
-300C ; [*0366.0020.0002] # LEFT CORNER BRACKET
-300D ; [*0367.0020.0002] # RIGHT CORNER BRACKET
-300E ; [*0368.0020.0002] # LEFT WHITE CORNER BRACKET
-300F ; [*0369.0020.0002] # RIGHT WHITE CORNER BRACKET
-3010 ; [*036A.0020.0002] # LEFT BLACK LENTICULAR BRACKET
-3011 ; [*036B.0020.0002] # RIGHT BLACK LENTICULAR BRACKET
-3012 ; [*17A7.0020.0002] # POSTAL MARK
-3013 ; [*17A8.0020.0002] # GETA MARK
-3014 ; [*036C.0020.0002] # LEFT TORTOISE SHELL BRACKET
-3015 ; [*036D.0020.0002] # RIGHT TORTOISE SHELL BRACKET
-3016 ; [*036E.0020.0002] # LEFT WHITE LENTICULAR BRACKET
-3017 ; [*036F.0020.0002] # RIGHT WHITE LENTICULAR BRACKET
-3018 ; [*0370.0020.0002] # LEFT WHITE TORTOISE SHELL BRACKET
-3019 ; [*0371.0020.0002] # RIGHT WHITE TORTOISE SHELL BRACKET
-301A ; [*0372.0020.0002] # LEFT WHITE SQUARE BRACKET
-301B ; [*0373.0020.0002] # RIGHT WHITE SQUARE BRACKET
-301C ; [*021D.0020.0002] # WAVE DASH
-301D ; [*0305.0020.0002] # REVERSED DOUBLE PRIME QUOTATION MARK
-301E ; [*0306.0020.0002] # DOUBLE PRIME QUOTATION MARK
-301F ; [*0307.0020.0002] # LOW DOUBLE PRIME QUOTATION MARK
-3020 ; [*17A9.0020.0002] # POSTAL MARK FACE
-3030 ; [*021E.0020.0002] # WAVY DASH
-3036 ; [*17A7.0020.0004] # CIRCLED POSTAL MARK
-3037 ; [*17AA.0020.0002] # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-303D ; [*03A0.0020.0002] # PART ALTERNATION MARK
-303E ; [*17AB.0020.0002] # IDEOGRAPHIC VARIATION INDICATOR
-303F ; [*17AC.0020.0002] # IDEOGRAPHIC HALF FILL SPACE
-309B ; [*0455.0020.0002] # KATAKANA-HIRAGANA VOICED SOUND MARK
-309C ; [*0456.0020.0002] # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-30A0 ; [*021F.0020.0002] # KATAKANA-HIRAGANA DOUBLE HYPHEN
-30FB ; [*0220.0020.0002] # KATAKANA MIDDLE DOT
-3190 ; [*17AD.0020.0002] # IDEOGRAPHIC ANNOTATION LINKING MARK
-3191 ; [*17AE.0020.0002] # IDEOGRAPHIC ANNOTATION REVERSE MARK
-31C0 ; [*1782.0020.0002] # CJK STROKE T
-31C1 ; [*1783.0020.0002] # CJK STROKE WG
-31C2 ; [*1784.0020.0002] # CJK STROKE XG
-31C3 ; [*1785.0020.0002] # CJK STROKE BXG
-31C4 ; [*1786.0020.0002] # CJK STROKE SW
-31C5 ; [*1787.0020.0002] # CJK STROKE HZZ
-31C6 ; [*1788.0020.0002] # CJK STROKE HZG
-31C7 ; [*1789.0020.0002] # CJK STROKE HP
-31C8 ; [*178A.0020.0002] # CJK STROKE HZWG
-31C9 ; [*178B.0020.0002] # CJK STROKE SZWG
-31CA ; [*178C.0020.0002] # CJK STROKE HZT
-31CB ; [*178D.0020.0002] # CJK STROKE HZZP
-31CC ; [*178E.0020.0002] # CJK STROKE HPWG
-31CD ; [*178F.0020.0002] # CJK STROKE HZW
-31CE ; [*1790.0020.0002] # CJK STROKE HZZZ
-31CF ; [*1791.0020.0002] # CJK STROKE N
-31D0 ; [*1792.0020.0002] # CJK STROKE H
-31D1 ; [*1793.0020.0002] # CJK STROKE S
-31D2 ; [*1794.0020.0002] # CJK STROKE P
-31D3 ; [*1795.0020.0002] # CJK STROKE SP
-31D4 ; [*1796.0020.0002] # CJK STROKE D
-31D5 ; [*1797.0020.0002] # CJK STROKE HZ
-31D6 ; [*1798.0020.0002] # CJK STROKE HG
-31D7 ; [*1799.0020.0002] # CJK STROKE SZ
-31D8 ; [*179A.0020.0002] # CJK STROKE SWZ
-31D9 ; [*179B.0020.0002] # CJK STROKE ST
-31DA ; [*179C.0020.0002] # CJK STROKE SG
-31DB ; [*179D.0020.0002] # CJK STROKE PD
-31DC ; [*179E.0020.0002] # CJK STROKE PZ
-31DD ; [*179F.0020.0002] # CJK STROKE TN
-31DE ; [*17A0.0020.0002] # CJK STROKE SZZ
-31DF ; [*17A1.0020.0002] # CJK STROKE SWG
-31E0 ; [*17A2.0020.0002] # CJK STROKE HXWG
-31E1 ; [*17A3.0020.0002] # CJK STROKE HZZZG
-31E2 ; [*17A4.0020.0002] # CJK STROKE PG
-31E3 ; [*17A5.0020.0002] # CJK STROKE Q
-327F ; [*17AF.0020.0002] # KOREAN STANDARD SYMBOL
-4DC0 ; [*0E62.0020.0002] # HEXAGRAM FOR THE CREATIVE HEAVEN
-4DC1 ; [*0E63.0020.0002] # HEXAGRAM FOR THE RECEPTIVE EARTH
-4DC2 ; [*0E64.0020.0002] # HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
-4DC3 ; [*0E65.0020.0002] # HEXAGRAM FOR YOUTHFUL FOLLY
-4DC4 ; [*0E66.0020.0002] # HEXAGRAM FOR WAITING
-4DC5 ; [*0E67.0020.0002] # HEXAGRAM FOR CONFLICT
-4DC6 ; [*0E68.0020.0002] # HEXAGRAM FOR THE ARMY
-4DC7 ; [*0E69.0020.0002] # HEXAGRAM FOR HOLDING TOGETHER
-4DC8 ; [*0E6A.0020.0002] # HEXAGRAM FOR SMALL TAMING
-4DC9 ; [*0E6B.0020.0002] # HEXAGRAM FOR TREADING
-4DCA ; [*0E6C.0020.0002] # HEXAGRAM FOR PEACE
-4DCB ; [*0E6D.0020.0002] # HEXAGRAM FOR STANDSTILL
-4DCC ; [*0E6E.0020.0002] # HEXAGRAM FOR FELLOWSHIP
-4DCD ; [*0E6F.0020.0002] # HEXAGRAM FOR GREAT POSSESSION
-4DCE ; [*0E70.0020.0002] # HEXAGRAM FOR MODESTY
-4DCF ; [*0E71.0020.0002] # HEXAGRAM FOR ENTHUSIASM
-4DD0 ; [*0E72.0020.0002] # HEXAGRAM FOR FOLLOWING
-4DD1 ; [*0E73.0020.0002] # HEXAGRAM FOR WORK ON THE DECAYED
-4DD2 ; [*0E74.0020.0002] # HEXAGRAM FOR APPROACH
-4DD3 ; [*0E75.0020.0002] # HEXAGRAM FOR CONTEMPLATION
-4DD4 ; [*0E76.0020.0002] # HEXAGRAM FOR BITING THROUGH
-4DD5 ; [*0E77.0020.0002] # HEXAGRAM FOR GRACE
-4DD6 ; [*0E78.0020.0002] # HEXAGRAM FOR SPLITTING APART
-4DD7 ; [*0E79.0020.0002] # HEXAGRAM FOR RETURN
-4DD8 ; [*0E7A.0020.0002] # HEXAGRAM FOR INNOCENCE
-4DD9 ; [*0E7B.0020.0002] # HEXAGRAM FOR GREAT TAMING
-4DDA ; [*0E7C.0020.0002] # HEXAGRAM FOR MOUTH CORNERS
-4DDB ; [*0E7D.0020.0002] # HEXAGRAM FOR GREAT PREPONDERANCE
-4DDC ; [*0E7E.0020.0002] # HEXAGRAM FOR THE ABYSMAL WATER
-4DDD ; [*0E7F.0020.0002] # HEXAGRAM FOR THE CLINGING FIRE
-4DDE ; [*0E80.0020.0002] # HEXAGRAM FOR INFLUENCE
-4DDF ; [*0E81.0020.0002] # HEXAGRAM FOR DURATION
-4DE0 ; [*0E82.0020.0002] # HEXAGRAM FOR RETREAT
-4DE1 ; [*0E83.0020.0002] # HEXAGRAM FOR GREAT POWER
-4DE2 ; [*0E84.0020.0002] # HEXAGRAM FOR PROGRESS
-4DE3 ; [*0E85.0020.0002] # HEXAGRAM FOR DARKENING OF THE LIGHT
-4DE4 ; [*0E86.0020.0002] # HEXAGRAM FOR THE FAMILY
-4DE5 ; [*0E87.0020.0002] # HEXAGRAM FOR OPPOSITION
-4DE6 ; [*0E88.0020.0002] # HEXAGRAM FOR OBSTRUCTION
-4DE7 ; [*0E89.0020.0002] # HEXAGRAM FOR DELIVERANCE
-4DE8 ; [*0E8A.0020.0002] # HEXAGRAM FOR DECREASE
-4DE9 ; [*0E8B.0020.0002] # HEXAGRAM FOR INCREASE
-4DEA ; [*0E8C.0020.0002] # HEXAGRAM FOR BREAKTHROUGH
-4DEB ; [*0E8D.0020.0002] # HEXAGRAM FOR COMING TO MEET
-4DEC ; [*0E8E.0020.0002] # HEXAGRAM FOR GATHERING TOGETHER
-4DED ; [*0E8F.0020.0002] # HEXAGRAM FOR PUSHING UPWARD
-4DEE ; [*0E90.0020.0002] # HEXAGRAM FOR OPPRESSION
-4DEF ; [*0E91.0020.0002] # HEXAGRAM FOR THE WELL
-4DF0 ; [*0E92.0020.0002] # HEXAGRAM FOR REVOLUTION
-4DF1 ; [*0E93.0020.0002] # HEXAGRAM FOR THE CAULDRON
-4DF2 ; [*0E94.0020.0002] # HEXAGRAM FOR THE AROUSING THUNDER
-4DF3 ; [*0E95.0020.0002] # HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
-4DF4 ; [*0E96.0020.0002] # HEXAGRAM FOR DEVELOPMENT
-4DF5 ; [*0E97.0020.0002] # HEXAGRAM FOR THE MARRYING MAIDEN
-4DF6 ; [*0E98.0020.0002] # HEXAGRAM FOR ABUNDANCE
-4DF7 ; [*0E99.0020.0002] # HEXAGRAM FOR THE WANDERER
-4DF8 ; [*0E9A.0020.0002] # HEXAGRAM FOR THE GENTLE WIND
-4DF9 ; [*0E9B.0020.0002] # HEXAGRAM FOR THE JOYOUS LAKE
-4DFA ; [*0E9C.0020.0002] # HEXAGRAM FOR DISPERSION
-4DFB ; [*0E9D.0020.0002] # HEXAGRAM FOR LIMITATION
-4DFC ; [*0E9E.0020.0002] # HEXAGRAM FOR INNER TRUTH
-4DFD ; [*0E9F.0020.0002] # HEXAGRAM FOR SMALL PREPONDERANCE
-4DFE ; [*0EA0.0020.0002] # HEXAGRAM FOR AFTER COMPLETION
-4DFF ; [*0EA1.0020.0002] # HEXAGRAM FOR BEFORE COMPLETION
-A490 ; [*0EF9.0020.0002] # YI RADICAL QOT
-A491 ; [*0EFA.0020.0002] # YI RADICAL LI
-A492 ; [*0EFB.0020.0002] # YI RADICAL KIT
-A493 ; [*0EFC.0020.0002] # YI RADICAL NYIP
-A494 ; [*0EFD.0020.0002] # YI RADICAL CYP
-A495 ; [*0EFE.0020.0002] # YI RADICAL SSI
-A496 ; [*0EFF.0020.0002] # YI RADICAL GGOP
-A497 ; [*0F00.0020.0002] # YI RADICAL GEP
-A498 ; [*0F01.0020.0002] # YI RADICAL MI
-A499 ; [*0F02.0020.0002] # YI RADICAL HXIT
-A49A ; [*0F03.0020.0002] # YI RADICAL LYR
-A49B ; [*0F04.0020.0002] # YI RADICAL BBUT
-A49C ; [*0F05.0020.0002] # YI RADICAL MOP
-A49D ; [*0F06.0020.0002] # YI RADICAL YO
-A49E ; [*0F07.0020.0002] # YI RADICAL PUT
-A49F ; [*0F08.0020.0002] # YI RADICAL HXUO
-A4A0 ; [*0F09.0020.0002] # YI RADICAL TAT
-A4A1 ; [*0F0A.0020.0002] # YI RADICAL GA
-A4A2 ; [*0F0B.0020.0002] # YI RADICAL ZUP
-A4A3 ; [*0F0C.0020.0002] # YI RADICAL CYT
-A4A4 ; [*0F0D.0020.0002] # YI RADICAL DDUR
-A4A5 ; [*0F0E.0020.0002] # YI RADICAL BUR
-A4A6 ; [*0F0F.0020.0002] # YI RADICAL GGUO
-A4A7 ; [*0F10.0020.0002] # YI RADICAL NYOP
-A4A8 ; [*0F11.0020.0002] # YI RADICAL TU
-A4A9 ; [*0F12.0020.0002] # YI RADICAL OP
-A4AA ; [*0F13.0020.0002] # YI RADICAL JJUT
-A4AB ; [*0F14.0020.0002] # YI RADICAL ZOT
-A4AC ; [*0F15.0020.0002] # YI RADICAL PYT
-A4AD ; [*0F16.0020.0002] # YI RADICAL HMO
-A4AE ; [*0F17.0020.0002] # YI RADICAL YIT
-A4AF ; [*0F18.0020.0002] # YI RADICAL VUR
-A4B0 ; [*0F19.0020.0002] # YI RADICAL SHY
-A4B1 ; [*0F1A.0020.0002] # YI RADICAL VEP
-A4B2 ; [*0F1B.0020.0002] # YI RADICAL ZA
-A4B3 ; [*0F1C.0020.0002] # YI RADICAL JO
-A4B4 ; [*0F1D.0020.0002] # YI RADICAL NZUP
-A4B5 ; [*0F1E.0020.0002] # YI RADICAL JJY
-A4B6 ; [*0F1F.0020.0002] # YI RADICAL GOT
-A4B7 ; [*0F20.0020.0002] # YI RADICAL JJIE
-A4B8 ; [*0F21.0020.0002] # YI RADICAL WO
-A4B9 ; [*0F22.0020.0002] # YI RADICAL DU
-A4BA ; [*0F23.0020.0002] # YI RADICAL SHUR
-A4BB ; [*0F24.0020.0002] # YI RADICAL LIE
-A4BC ; [*0F25.0020.0002] # YI RADICAL CY
-A4BD ; [*0F26.0020.0002] # YI RADICAL CUOP
-A4BE ; [*0F27.0020.0002] # YI RADICAL CIP
-A4BF ; [*0F28.0020.0002] # YI RADICAL HXOP
-A4C0 ; [*0F29.0020.0002] # YI RADICAL SHAT
-A4C1 ; [*0F2A.0020.0002] # YI RADICAL ZUR
-A4C2 ; [*0F2B.0020.0002] # YI RADICAL SHOP
-A4C3 ; [*0F2C.0020.0002] # YI RADICAL CHE
-A4C4 ; [*0F2D.0020.0002] # YI RADICAL ZZIET
-A4C5 ; [*0F2E.0020.0002] # YI RADICAL NBIE
-A4C6 ; [*0F2F.0020.0002] # YI RADICAL KE
-A4FE ; [*022D.0020.0002] # LISU PUNCTUATION COMMA
-A4FF ; [*0282.0020.0002] # LISU PUNCTUATION FULL STOP
-A60D ; [*022E.0020.0002] # VAI COMMA
-A60E ; [*0283.0020.0002] # VAI FULL STOP
-A60F ; [*026E.0020.0002] # VAI QUESTION MARK
+3001 ; [*0231.0020.0002] # IDEOGRAPHIC COMMA
+3002 ; [*028A.0020.0002] # IDEOGRAPHIC FULL STOP
+3003 ; [*03AC.0020.0002] # DITTO MARK
+3004 ; [*1A8B.0020.0002] # JAPANESE INDUSTRIAL STANDARD SYMBOL
+3008 ; [*036F.0020.0002] # LEFT ANGLE BRACKET
+3009 ; [*0370.0020.0002] # RIGHT ANGLE BRACKET
+300A ; [*0371.0020.0002] # LEFT DOUBLE ANGLE BRACKET
+300B ; [*0372.0020.0002] # RIGHT DOUBLE ANGLE BRACKET
+300C ; [*0373.0020.0002] # LEFT CORNER BRACKET
+300D ; [*0374.0020.0002] # RIGHT CORNER BRACKET
+300E ; [*0375.0020.0002] # LEFT WHITE CORNER BRACKET
+300F ; [*0376.0020.0002] # RIGHT WHITE CORNER BRACKET
+3010 ; [*0377.0020.0002] # LEFT BLACK LENTICULAR BRACKET
+3011 ; [*0378.0020.0002] # RIGHT BLACK LENTICULAR BRACKET
+3012 ; [*1A8C.0020.0002] # POSTAL MARK
+3013 ; [*1A8D.0020.0002] # GETA MARK
+3014 ; [*0379.0020.0002] # LEFT TORTOISE SHELL BRACKET
+3015 ; [*037A.0020.0002] # RIGHT TORTOISE SHELL BRACKET
+3016 ; [*037B.0020.0002] # LEFT WHITE LENTICULAR BRACKET
+3017 ; [*037C.0020.0002] # RIGHT WHITE LENTICULAR BRACKET
+3018 ; [*037D.0020.0002] # LEFT WHITE TORTOISE SHELL BRACKET
+3019 ; [*037E.0020.0002] # RIGHT WHITE TORTOISE SHELL BRACKET
+301A ; [*037F.0020.0002] # LEFT WHITE SQUARE BRACKET
+301B ; [*0380.0020.0002] # RIGHT WHITE SQUARE BRACKET
+301C ; [*021E.0020.0002] # WAVE DASH
+301D ; [*0312.0020.0002] # REVERSED DOUBLE PRIME QUOTATION MARK
+301E ; [*0313.0020.0002] # DOUBLE PRIME QUOTATION MARK
+301F ; [*0314.0020.0002] # LOW DOUBLE PRIME QUOTATION MARK
+3020 ; [*1A8E.0020.0002] # POSTAL MARK FACE
+3030 ; [*021F.0020.0002] # WAVY DASH
+3036 ; [*1A8C.0020.0004] # CIRCLED POSTAL MARK
+3037 ; [*1A8F.0020.0002] # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+303D ; [*03AD.0020.0002] # PART ALTERNATION MARK
+303E ; [*1A90.0020.0002] # IDEOGRAPHIC VARIATION INDICATOR
+303F ; [*1A91.0020.0002] # IDEOGRAPHIC HALF FILL SPACE
+309B ; [*0491.0020.0002] # KATAKANA-HIRAGANA VOICED SOUND MARK
+309C ; [*0492.0020.0002] # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+30A0 ; [*0220.0020.0002] # KATAKANA-HIRAGANA DOUBLE HYPHEN
+30FB ; [*0221.0020.0002] # KATAKANA MIDDLE DOT
+3190 ; [*1A92.0020.0002] # IDEOGRAPHIC ANNOTATION LINKING MARK
+3191 ; [*1A93.0020.0002] # IDEOGRAPHIC ANNOTATION REVERSE MARK
+31C0 ; [*1A67.0020.0002] # CJK STROKE T
+31C1 ; [*1A68.0020.0002] # CJK STROKE WG
+31C2 ; [*1A69.0020.0002] # CJK STROKE XG
+31C3 ; [*1A6A.0020.0002] # CJK STROKE BXG
+31C4 ; [*1A6B.0020.0002] # CJK STROKE SW
+31C5 ; [*1A6C.0020.0002] # CJK STROKE HZZ
+31C6 ; [*1A6D.0020.0002] # CJK STROKE HZG
+31C7 ; [*1A6E.0020.0002] # CJK STROKE HP
+31C8 ; [*1A6F.0020.0002] # CJK STROKE HZWG
+31C9 ; [*1A70.0020.0002] # CJK STROKE SZWG
+31CA ; [*1A71.0020.0002] # CJK STROKE HZT
+31CB ; [*1A72.0020.0002] # CJK STROKE HZZP
+31CC ; [*1A73.0020.0002] # CJK STROKE HPWG
+31CD ; [*1A74.0020.0002] # CJK STROKE HZW
+31CE ; [*1A75.0020.0002] # CJK STROKE HZZZ
+31CF ; [*1A76.0020.0002] # CJK STROKE N
+31D0 ; [*1A77.0020.0002] # CJK STROKE H
+31D1 ; [*1A78.0020.0002] # CJK STROKE S
+31D2 ; [*1A79.0020.0002] # CJK STROKE P
+31D3 ; [*1A7A.0020.0002] # CJK STROKE SP
+31D4 ; [*1A7B.0020.0002] # CJK STROKE D
+31D5 ; [*1A7C.0020.0002] # CJK STROKE HZ
+31D6 ; [*1A7D.0020.0002] # CJK STROKE HG
+31D7 ; [*1A7E.0020.0002] # CJK STROKE SZ
+31D8 ; [*1A7F.0020.0002] # CJK STROKE SWZ
+31D9 ; [*1A80.0020.0002] # CJK STROKE ST
+31DA ; [*1A81.0020.0002] # CJK STROKE SG
+31DB ; [*1A82.0020.0002] # CJK STROKE PD
+31DC ; [*1A83.0020.0002] # CJK STROKE PZ
+31DD ; [*1A84.0020.0002] # CJK STROKE TN
+31DE ; [*1A85.0020.0002] # CJK STROKE SZZ
+31DF ; [*1A86.0020.0002] # CJK STROKE SWG
+31E0 ; [*1A87.0020.0002] # CJK STROKE HXWG
+31E1 ; [*1A88.0020.0002] # CJK STROKE HZZZG
+31E2 ; [*1A89.0020.0002] # CJK STROKE PG
+31E3 ; [*1A8A.0020.0002] # CJK STROKE Q
+327F ; [*1A94.0020.0002] # KOREAN STANDARD SYMBOL
+4DC0 ; [*0EAA.0020.0002] # HEXAGRAM FOR THE CREATIVE HEAVEN
+4DC1 ; [*0EAB.0020.0002] # HEXAGRAM FOR THE RECEPTIVE EARTH
+4DC2 ; [*0EAC.0020.0002] # HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
+4DC3 ; [*0EAD.0020.0002] # HEXAGRAM FOR YOUTHFUL FOLLY
+4DC4 ; [*0EAE.0020.0002] # HEXAGRAM FOR WAITING
+4DC5 ; [*0EAF.0020.0002] # HEXAGRAM FOR CONFLICT
+4DC6 ; [*0EB0.0020.0002] # HEXAGRAM FOR THE ARMY
+4DC7 ; [*0EB1.0020.0002] # HEXAGRAM FOR HOLDING TOGETHER
+4DC8 ; [*0EB2.0020.0002] # HEXAGRAM FOR SMALL TAMING
+4DC9 ; [*0EB3.0020.0002] # HEXAGRAM FOR TREADING
+4DCA ; [*0EB4.0020.0002] # HEXAGRAM FOR PEACE
+4DCB ; [*0EB5.0020.0002] # HEXAGRAM FOR STANDSTILL
+4DCC ; [*0EB6.0020.0002] # HEXAGRAM FOR FELLOWSHIP
+4DCD ; [*0EB7.0020.0002] # HEXAGRAM FOR GREAT POSSESSION
+4DCE ; [*0EB8.0020.0002] # HEXAGRAM FOR MODESTY
+4DCF ; [*0EB9.0020.0002] # HEXAGRAM FOR ENTHUSIASM
+4DD0 ; [*0EBA.0020.0002] # HEXAGRAM FOR FOLLOWING
+4DD1 ; [*0EBB.0020.0002] # HEXAGRAM FOR WORK ON THE DECAYED
+4DD2 ; [*0EBC.0020.0002] # HEXAGRAM FOR APPROACH
+4DD3 ; [*0EBD.0020.0002] # HEXAGRAM FOR CONTEMPLATION
+4DD4 ; [*0EBE.0020.0002] # HEXAGRAM FOR BITING THROUGH
+4DD5 ; [*0EBF.0020.0002] # HEXAGRAM FOR GRACE
+4DD6 ; [*0EC0.0020.0002] # HEXAGRAM FOR SPLITTING APART
+4DD7 ; [*0EC1.0020.0002] # HEXAGRAM FOR RETURN
+4DD8 ; [*0EC2.0020.0002] # HEXAGRAM FOR INNOCENCE
+4DD9 ; [*0EC3.0020.0002] # HEXAGRAM FOR GREAT TAMING
+4DDA ; [*0EC4.0020.0002] # HEXAGRAM FOR MOUTH CORNERS
+4DDB ; [*0EC5.0020.0002] # HEXAGRAM FOR GREAT PREPONDERANCE
+4DDC ; [*0EC6.0020.0002] # HEXAGRAM FOR THE ABYSMAL WATER
+4DDD ; [*0EC7.0020.0002] # HEXAGRAM FOR THE CLINGING FIRE
+4DDE ; [*0EC8.0020.0002] # HEXAGRAM FOR INFLUENCE
+4DDF ; [*0EC9.0020.0002] # HEXAGRAM FOR DURATION
+4DE0 ; [*0ECA.0020.0002] # HEXAGRAM FOR RETREAT
+4DE1 ; [*0ECB.0020.0002] # HEXAGRAM FOR GREAT POWER
+4DE2 ; [*0ECC.0020.0002] # HEXAGRAM FOR PROGRESS
+4DE3 ; [*0ECD.0020.0002] # HEXAGRAM FOR DARKENING OF THE LIGHT
+4DE4 ; [*0ECE.0020.0002] # HEXAGRAM FOR THE FAMILY
+4DE5 ; [*0ECF.0020.0002] # HEXAGRAM FOR OPPOSITION
+4DE6 ; [*0ED0.0020.0002] # HEXAGRAM FOR OBSTRUCTION
+4DE7 ; [*0ED1.0020.0002] # HEXAGRAM FOR DELIVERANCE
+4DE8 ; [*0ED2.0020.0002] # HEXAGRAM FOR DECREASE
+4DE9 ; [*0ED3.0020.0002] # HEXAGRAM FOR INCREASE
+4DEA ; [*0ED4.0020.0002] # HEXAGRAM FOR BREAKTHROUGH
+4DEB ; [*0ED5.0020.0002] # HEXAGRAM FOR COMING TO MEET
+4DEC ; [*0ED6.0020.0002] # HEXAGRAM FOR GATHERING TOGETHER
+4DED ; [*0ED7.0020.0002] # HEXAGRAM FOR PUSHING UPWARD
+4DEE ; [*0ED8.0020.0002] # HEXAGRAM FOR OPPRESSION
+4DEF ; [*0ED9.0020.0002] # HEXAGRAM FOR THE WELL
+4DF0 ; [*0EDA.0020.0002] # HEXAGRAM FOR REVOLUTION
+4DF1 ; [*0EDB.0020.0002] # HEXAGRAM FOR THE CAULDRON
+4DF2 ; [*0EDC.0020.0002] # HEXAGRAM FOR THE AROUSING THUNDER
+4DF3 ; [*0EDD.0020.0002] # HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
+4DF4 ; [*0EDE.0020.0002] # HEXAGRAM FOR DEVELOPMENT
+4DF5 ; [*0EDF.0020.0002] # HEXAGRAM FOR THE MARRYING MAIDEN
+4DF6 ; [*0EE0.0020.0002] # HEXAGRAM FOR ABUNDANCE
+4DF7 ; [*0EE1.0020.0002] # HEXAGRAM FOR THE WANDERER
+4DF8 ; [*0EE2.0020.0002] # HEXAGRAM FOR THE GENTLE WIND
+4DF9 ; [*0EE3.0020.0002] # HEXAGRAM FOR THE JOYOUS LAKE
+4DFA ; [*0EE4.0020.0002] # HEXAGRAM FOR DISPERSION
+4DFB ; [*0EE5.0020.0002] # HEXAGRAM FOR LIMITATION
+4DFC ; [*0EE6.0020.0002] # HEXAGRAM FOR INNER TRUTH
+4DFD ; [*0EE7.0020.0002] # HEXAGRAM FOR SMALL PREPONDERANCE
+4DFE ; [*0EE8.0020.0002] # HEXAGRAM FOR AFTER COMPLETION
+4DFF ; [*0EE9.0020.0002] # HEXAGRAM FOR BEFORE COMPLETION
+A490 ; [*0F41.0020.0002] # YI RADICAL QOT
+A491 ; [*0F42.0020.0002] # YI RADICAL LI
+A492 ; [*0F43.0020.0002] # YI RADICAL KIT
+A493 ; [*0F44.0020.0002] # YI RADICAL NYIP
+A494 ; [*0F45.0020.0002] # YI RADICAL CYP
+A495 ; [*0F46.0020.0002] # YI RADICAL SSI
+A496 ; [*0F47.0020.0002] # YI RADICAL GGOP
+A497 ; [*0F48.0020.0002] # YI RADICAL GEP
+A498 ; [*0F49.0020.0002] # YI RADICAL MI
+A499 ; [*0F4A.0020.0002] # YI RADICAL HXIT
+A49A ; [*0F4B.0020.0002] # YI RADICAL LYR
+A49B ; [*0F4C.0020.0002] # YI RADICAL BBUT
+A49C ; [*0F4D.0020.0002] # YI RADICAL MOP
+A49D ; [*0F4E.0020.0002] # YI RADICAL YO
+A49E ; [*0F4F.0020.0002] # YI RADICAL PUT
+A49F ; [*0F50.0020.0002] # YI RADICAL HXUO
+A4A0 ; [*0F51.0020.0002] # YI RADICAL TAT
+A4A1 ; [*0F52.0020.0002] # YI RADICAL GA
+A4A2 ; [*0F53.0020.0002] # YI RADICAL ZUP
+A4A3 ; [*0F54.0020.0002] # YI RADICAL CYT
+A4A4 ; [*0F55.0020.0002] # YI RADICAL DDUR
+A4A5 ; [*0F56.0020.0002] # YI RADICAL BUR
+A4A6 ; [*0F57.0020.0002] # YI RADICAL GGUO
+A4A7 ; [*0F58.0020.0002] # YI RADICAL NYOP
+A4A8 ; [*0F59.0020.0002] # YI RADICAL TU
+A4A9 ; [*0F5A.0020.0002] # YI RADICAL OP
+A4AA ; [*0F5B.0020.0002] # YI RADICAL JJUT
+A4AB ; [*0F5C.0020.0002] # YI RADICAL ZOT
+A4AC ; [*0F5D.0020.0002] # YI RADICAL PYT
+A4AD ; [*0F5E.0020.0002] # YI RADICAL HMO
+A4AE ; [*0F5F.0020.0002] # YI RADICAL YIT
+A4AF ; [*0F60.0020.0002] # YI RADICAL VUR
+A4B0 ; [*0F61.0020.0002] # YI RADICAL SHY
+A4B1 ; [*0F62.0020.0002] # YI RADICAL VEP
+A4B2 ; [*0F63.0020.0002] # YI RADICAL ZA
+A4B3 ; [*0F64.0020.0002] # YI RADICAL JO
+A4B4 ; [*0F65.0020.0002] # YI RADICAL NZUP
+A4B5 ; [*0F66.0020.0002] # YI RADICAL JJY
+A4B6 ; [*0F67.0020.0002] # YI RADICAL GOT
+A4B7 ; [*0F68.0020.0002] # YI RADICAL JJIE
+A4B8 ; [*0F69.0020.0002] # YI RADICAL WO
+A4B9 ; [*0F6A.0020.0002] # YI RADICAL DU
+A4BA ; [*0F6B.0020.0002] # YI RADICAL SHUR
+A4BB ; [*0F6C.0020.0002] # YI RADICAL LIE
+A4BC ; [*0F6D.0020.0002] # YI RADICAL CY
+A4BD ; [*0F6E.0020.0002] # YI RADICAL CUOP
+A4BE ; [*0F6F.0020.0002] # YI RADICAL CIP
+A4BF ; [*0F70.0020.0002] # YI RADICAL HXOP
+A4C0 ; [*0F71.0020.0002] # YI RADICAL SHAT
+A4C1 ; [*0F72.0020.0002] # YI RADICAL ZUR
+A4C2 ; [*0F73.0020.0002] # YI RADICAL SHOP
+A4C3 ; [*0F74.0020.0002] # YI RADICAL CHE
+A4C4 ; [*0F75.0020.0002] # YI RADICAL ZZIET
+A4C5 ; [*0F76.0020.0002] # YI RADICAL NBIE
+A4C6 ; [*0F77.0020.0002] # YI RADICAL KE
+A4FE ; [*022E.0020.0002] # LISU PUNCTUATION COMMA
+A4FF ; [*0285.0020.0002] # LISU PUNCTUATION FULL STOP
+A60D ; [*022F.0020.0002] # VAI COMMA
+A60E ; [*0286.0020.0002] # VAI FULL STOP
+A60F ; [*0270.0020.0002] # VAI QUESTION MARK
A670 ; [.0000.0000.0000] # COMBINING CYRILLIC TEN MILLIONS SIGN
A671 ; [.0000.0000.0000] # COMBINING CYRILLIC HUNDRED MILLIONS SIGN
A672 ; [.0000.0000.0000] # COMBINING CYRILLIC THOUSAND MILLIONS SIGN
-A673 ; [*0386.0020.0002] # SLAVONIC ASTERISK
-A67E ; [*03BC.0020.0002] # CYRILLIC KAVYKA
-A6F2 ; [*02CE.0020.0002] # BAMUM NJAEMLI
-A6F3 ; [*0284.0020.0002] # BAMUM FULL STOP
-A6F4 ; [*025E.0020.0002] # BAMUM COLON
-A6F5 ; [*022F.0020.0002] # BAMUM COMMA
-A6F6 ; [*0237.0020.0002] # BAMUM SEMICOLON
-A6F7 ; [*026F.0020.0002] # BAMUM QUESTION MARK
-A700 ; [*0494.0020.0002] # MODIFIER LETTER CHINESE TONE YIN PING
-A701 ; [*0495.0020.0002] # MODIFIER LETTER CHINESE TONE YANG PING
-A702 ; [*0496.0020.0002] # MODIFIER LETTER CHINESE TONE YIN SHANG
-A703 ; [*0497.0020.0002] # MODIFIER LETTER CHINESE TONE YANG SHANG
-A704 ; [*0498.0020.0002] # MODIFIER LETTER CHINESE TONE YIN QU
-A705 ; [*0499.0020.0002] # MODIFIER LETTER CHINESE TONE YANG QU
-A706 ; [*049A.0020.0002] # MODIFIER LETTER CHINESE TONE YIN RU
-A707 ; [*049B.0020.0002] # MODIFIER LETTER CHINESE TONE YANG RU
-A708 ; [*049C.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
-A709 ; [*049D.0020.0002] # MODIFIER LETTER HIGH DOTTED TONE BAR
-A70A ; [*049E.0020.0002] # MODIFIER LETTER MID DOTTED TONE BAR
-A70B ; [*049F.0020.0002] # MODIFIER LETTER LOW DOTTED TONE BAR
-A70C ; [*04A0.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
-A70D ; [*04A1.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
-A70E ; [*04A2.0020.0002] # MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
-A70F ; [*04A3.0020.0002] # MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
-A710 ; [*04A4.0020.0002] # MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
-A711 ; [*04A5.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
-A712 ; [*04A6.0020.0002] # MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
-A713 ; [*04A7.0020.0002] # MODIFIER LETTER HIGH LEFT-STEM TONE BAR
-A714 ; [*04A8.0020.0002] # MODIFIER LETTER MID LEFT-STEM TONE BAR
-A715 ; [*04A9.0020.0002] # MODIFIER LETTER LOW LEFT-STEM TONE BAR
-A716 ; [*04AA.0020.0002] # MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-A717 ; [*04AB.0020.0002] # MODIFIER LETTER DOT VERTICAL BAR
-A718 ; [*04AC.0020.0002] # MODIFIER LETTER DOT SLASH
-A719 ; [*04AD.0020.0002] # MODIFIER LETTER DOT HORIZONTAL BAR
-A71A ; [*04AE.0020.0002] # MODIFIER LETTER LOWER RIGHT CORNER ANGLE
-A71B ; [*04AF.0020.0002] # MODIFIER LETTER RAISED UP ARROW
-A71C ; [*04B0.0020.0002] # MODIFIER LETTER RAISED DOWN ARROW
-A71D ; [*04B1.0020.0002] # MODIFIER LETTER RAISED EXCLAMATION MARK
-A71E ; [*04B2.0020.0002] # MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK
-A71F ; [*04B3.0020.0002] # MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
-A720 ; [*04B4.0020.0002] # MODIFIER LETTER STRESS AND HIGH TONE
-A721 ; [*04B5.0020.0002] # MODIFIER LETTER STRESS AND LOW TONE
-A788 ; [*04B6.0020.0002] # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
-A789 ; [*04B7.0020.0002] # MODIFIER LETTER COLON
-A78A ; [*04B8.0020.0002] # MODIFIER LETTER SHORT EQUALS SIGN
-A828 ; [*04E2.0020.0002] # SYLOTI NAGRI POETRY MARK-1
-A829 ; [*04E3.0020.0002] # SYLOTI NAGRI POETRY MARK-2
-A82A ; [*04E4.0020.0002] # SYLOTI NAGRI POETRY MARK-3
-A82B ; [*04E5.0020.0002] # SYLOTI NAGRI POETRY MARK-4
-A830 ; [*17BD.0020.0002] # NORTH INDIC FRACTION ONE QUARTER
-A831 ; [*17BE.0020.0002] # NORTH INDIC FRACTION ONE HALF
-A832 ; [*17BF.0020.0002] # NORTH INDIC FRACTION THREE QUARTERS
-A833 ; [*17C0.0020.0002] # NORTH INDIC FRACTION ONE SIXTEENTH
-A834 ; [*17C1.0020.0002] # NORTH INDIC FRACTION ONE EIGHTH
-A835 ; [*17C2.0020.0002] # NORTH INDIC FRACTION THREE SIXTEENTHS
-A836 ; [*04E6.0020.0002] # NORTH INDIC QUARTER MARK
-A837 ; [*04E7.0020.0002] # NORTH INDIC PLACEHOLDER MARK
-A839 ; [*04E8.0020.0002] # NORTH INDIC QUANTITY MARK
-A874 ; [*040A.0020.0002] # PHAGS-PA SINGLE HEAD MARK
-A875 ; [*040B.0020.0002] # PHAGS-PA DOUBLE HEAD MARK
-A876 ; [*0291.0020.0002] # PHAGS-PA MARK SHAD
-A877 ; [*0292.0020.0002] # PHAGS-PA MARK DOUBLE SHAD
-A8CE ; [*028D.0020.0002] # SAURASHTRA DANDA
-A8CF ; [*028E.0020.0002] # SAURASHTRA DOUBLE DANDA
+A673 ; [*0393.0020.0002] # SLAVONIC ASTERISK
+A67E ; [*03CA.0020.0002] # CYRILLIC KAVYKA
+A6F2 ; [*02D7.0020.0002] # BAMUM NJAEMLI
+A6F3 ; [*0287.0020.0002] # BAMUM FULL STOP
+A6F4 ; [*025F.0020.0002] # BAMUM COLON
+A6F5 ; [*0230.0020.0002] # BAMUM COMMA
+A6F6 ; [*0238.0020.0002] # BAMUM SEMICOLON
+A6F7 ; [*0271.0020.0002] # BAMUM QUESTION MARK
+A700 ; [*04D0.0020.0002] # MODIFIER LETTER CHINESE TONE YIN PING
+A701 ; [*04D1.0020.0002] # MODIFIER LETTER CHINESE TONE YANG PING
+A702 ; [*04D2.0020.0002] # MODIFIER LETTER CHINESE TONE YIN SHANG
+A703 ; [*04D3.0020.0002] # MODIFIER LETTER CHINESE TONE YANG SHANG
+A704 ; [*04D4.0020.0002] # MODIFIER LETTER CHINESE TONE YIN QU
+A705 ; [*04D5.0020.0002] # MODIFIER LETTER CHINESE TONE YANG QU
+A706 ; [*04D6.0020.0002] # MODIFIER LETTER CHINESE TONE YIN RU
+A707 ; [*04D7.0020.0002] # MODIFIER LETTER CHINESE TONE YANG RU
+A708 ; [*04D8.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
+A709 ; [*04D9.0020.0002] # MODIFIER LETTER HIGH DOTTED TONE BAR
+A70A ; [*04DA.0020.0002] # MODIFIER LETTER MID DOTTED TONE BAR
+A70B ; [*04DB.0020.0002] # MODIFIER LETTER LOW DOTTED TONE BAR
+A70C ; [*04DC.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
+A70D ; [*04DD.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
+A70E ; [*04DE.0020.0002] # MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
+A70F ; [*04DF.0020.0002] # MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
+A710 ; [*04E0.0020.0002] # MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
+A711 ; [*04E1.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
+A712 ; [*04E2.0020.0002] # MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
+A713 ; [*04E3.0020.0002] # MODIFIER LETTER HIGH LEFT-STEM TONE BAR
+A714 ; [*04E4.0020.0002] # MODIFIER LETTER MID LEFT-STEM TONE BAR
+A715 ; [*04E5.0020.0002] # MODIFIER LETTER LOW LEFT-STEM TONE BAR
+A716 ; [*04E6.0020.0002] # MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717 ; [*04E7.0020.0002] # MODIFIER LETTER DOT VERTICAL BAR
+A718 ; [*04E8.0020.0002] # MODIFIER LETTER DOT SLASH
+A719 ; [*04E9.0020.0002] # MODIFIER LETTER DOT HORIZONTAL BAR
+A71A ; [*04EA.0020.0002] # MODIFIER LETTER LOWER RIGHT CORNER ANGLE
+A71B ; [*04EB.0020.0002] # MODIFIER LETTER RAISED UP ARROW
+A71C ; [*04EC.0020.0002] # MODIFIER LETTER RAISED DOWN ARROW
+A71D ; [*04ED.0020.0002] # MODIFIER LETTER RAISED EXCLAMATION MARK
+A71E ; [*04EE.0020.0002] # MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK
+A71F ; [*04EF.0020.0002] # MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720 ; [*04F0.0020.0002] # MODIFIER LETTER STRESS AND HIGH TONE
+A721 ; [*04F1.0020.0002] # MODIFIER LETTER STRESS AND LOW TONE
+A788 ; [*04F2.0020.0002] # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789 ; [*04F3.0020.0002] # MODIFIER LETTER COLON
+A78A ; [*04F4.0020.0002] # MODIFIER LETTER SHORT EQUALS SIGN
+A828 ; [*051F.0020.0002] # SYLOTI NAGRI POETRY MARK-1
+A829 ; [*0520.0020.0002] # SYLOTI NAGRI POETRY MARK-2
+A82A ; [*0521.0020.0002] # SYLOTI NAGRI POETRY MARK-3
+A82B ; [*0522.0020.0002] # SYLOTI NAGRI POETRY MARK-4
+A830 ; [*1AA2.0020.0002] # NORTH INDIC FRACTION ONE QUARTER
+A831 ; [*1AA3.0020.0002] # NORTH INDIC FRACTION ONE HALF
+A832 ; [*1AA4.0020.0002] # NORTH INDIC FRACTION THREE QUARTERS
+A833 ; [*1AA5.0020.0002] # NORTH INDIC FRACTION ONE SIXTEENTH
+A834 ; [*1AA6.0020.0002] # NORTH INDIC FRACTION ONE EIGHTH
+A835 ; [*1AA7.0020.0002] # NORTH INDIC FRACTION THREE SIXTEENTHS
+A836 ; [*0523.0020.0002] # NORTH INDIC QUARTER MARK
+A837 ; [*0524.0020.0002] # NORTH INDIC PLACEHOLDER MARK
+A839 ; [*0525.0020.0002] # NORTH INDIC QUANTITY MARK
+A874 ; [*0428.0020.0002] # PHAGS-PA SINGLE HEAD MARK
+A875 ; [*0429.0020.0002] # PHAGS-PA DOUBLE HEAD MARK
+A876 ; [*0294.0020.0002] # PHAGS-PA MARK SHAD
+A877 ; [*0295.0020.0002] # PHAGS-PA MARK DOUBLE SHAD
+A8CE ; [*0290.0020.0002] # SAURASHTRA DANDA
+A8CF ; [*0291.0020.0002] # SAURASHTRA DOUBLE DANDA
A8E0 ; [.0000.0000.0000] # COMBINING DEVANAGARI DIGIT ZERO
A8E1 ; [.0000.0000.0000] # COMBINING DEVANAGARI DIGIT ONE
A8E2 ; [.0000.0000.0000] # COMBINING DEVANAGARI DIGIT TWO
@@ -3975,70 +4014,71 @@ A8EE ; [.0000.0000.0000] # COMBINING DEVANAGARI LETTER PA
A8EF ; [.0000.0000.0000] # COMBINING DEVANAGARI LETTER RA
A8F0 ; [.0000.0000.0000] # COMBINING DEVANAGARI LETTER VI
A8F1 ; [.0000.0000.0000] # COMBINING DEVANAGARI SIGN AVAGRAHA
-A8F8 ; [*03CD.0020.0002] # DEVANAGARI SIGN PUSHPIKA
-A8F9 ; [*03CE.0020.0002] # DEVANAGARI GAP FILLER
-A8FA ; [*03CF.0020.0002] # DEVANAGARI CARET
-A92E ; [*0410.0020.0002] # KAYAH LI SIGN CWI
-A92F ; [*0295.0020.0002] # KAYAH LI SIGN SHYA
-A95F ; [*02CF.0020.0002] # REJANG SECTION MARK
-A9C1 ; [*02C4.0020.0002] # JAVANESE LEFT RERENGGAN
-A9C2 ; [*02C5.0020.0002] # JAVANESE RIGHT RERENGGAN
-A9C3 ; [*02C6.0020.0002] # JAVANESE PADA ANDAP
-A9C4 ; [*02C7.0020.0002] # JAVANESE PADA MADYA
-A9C5 ; [*02C8.0020.0002] # JAVANESE PADA LUHUR
-A9C6 ; [*02C9.0020.0002] # JAVANESE PADA WINDU
-A9C7 ; [*025A.0020.0002] # JAVANESE PADA PANGKAT
-A9C8 ; [*02A0.0020.0002] # JAVANESE PADA LINGSA
-A9C9 ; [*02A1.0020.0002] # JAVANESE PADA LUNGSI
-A9CA ; [*02CA.0020.0002] # JAVANESE PADA ADEG
-A9CB ; [*02CB.0020.0002] # JAVANESE PADA ADEG ADEG
-A9CC ; [*02CC.0020.0002] # JAVANESE PADA PISELEH
-A9CD ; [*02CD.0020.0002] # JAVANESE TURNED PADA PISELEH
-A9DE ; [*0411.0020.0002] # JAVANESE PADA TIRTA TUMETES
-A9DF ; [*0412.0020.0002] # JAVANESE PADA ISEN-ISEN
-AA5C ; [*0413.0020.0002] # CHAM PUNCTUATION SPIRAL
-AA5D ; [*02A2.0020.0002] # CHAM PUNCTUATION DANDA
-AA5E ; [*02A3.0020.0002] # CHAM PUNCTUATION DOUBLE DANDA
-AA5F ; [*02A4.0020.0002] # CHAM PUNCTUATION TRIPLE DANDA
-AA77 ; [*0510.0020.0002] # MYANMAR SYMBOL AITON EXCLAMATION
-AA78 ; [*0511.0020.0002] # MYANMAR SYMBOL AITON ONE
-AA79 ; [*0512.0020.0002] # MYANMAR SYMBOL AITON TWO
-AADE ; [*03D5.0020.0002] # TAI VIET SYMBOL HO HOI
-AADF ; [*03D6.0020.0002] # TAI VIET SYMBOL KOI KOI
-AAF0 ; [*02A5.0020.0002] # MEETEI MAYEK CHEIKHAN
-AAF1 ; [*0270.0020.0002] # MEETEI MAYEK AHANG KHUDAM
-AB5B ; [*04B9.0020.0002] # MODIFIER BREVE WITH INVERTED BREVE
-ABEB ; [*02A6.0020.0002] # MEETEI MAYEK CHEIKHEI
-FB29 ; [*05D6.0020.0005] # HEBREW LETTER ALTERNATIVE PLUS SIGN
-FBB2 ; [*04C6.0020.0002] # ARABIC SYMBOL DOT ABOVE
-FBB3 ; [*04C7.0020.0002] # ARABIC SYMBOL DOT BELOW
-FBB4 ; [*04C8.0020.0002] # ARABIC SYMBOL TWO DOTS ABOVE
-FBB5 ; [*04C9.0020.0002] # ARABIC SYMBOL TWO DOTS BELOW
-FBB6 ; [*04CA.0020.0002] # ARABIC SYMBOL THREE DOTS ABOVE
-FBB7 ; [*04CB.0020.0002] # ARABIC SYMBOL THREE DOTS BELOW
-FBB8 ; [*04CC.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
-FBB9 ; [*04CD.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
-FBBA ; [*04CE.0020.0002] # ARABIC SYMBOL FOUR DOTS ABOVE
-FBBB ; [*04CF.0020.0002] # ARABIC SYMBOL FOUR DOTS BELOW
-FBBC ; [*04D0.0020.0002] # ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
-FBBD ; [*04D1.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
-FBBE ; [*04D2.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
-FBBF ; [*04D3.0020.0002] # ARABIC SYMBOL RING
-FBC0 ; [*04D4.0020.0002] # ARABIC SYMBOL SMALL TAH ABOVE
-FBC1 ; [*04D5.0020.0002] # ARABIC SYMBOL SMALL TAH BELOW
-FD3E ; [*0374.0020.0002] # ORNATE LEFT PARENTHESIS
-FD3F ; [*0375.0020.0002] # ORNATE RIGHT PARENTHESIS
-FDFD ; [*04C5.0020.0002] # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FE10 ; [*0221.0020.0016] # PRESENTATION FORM FOR VERTICAL COMMA
-FE11 ; [*0230.0020.0016] # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
-FE12 ; [*0287.0020.0016] # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
-FE13 ; [*0238.0020.0016] # PRESENTATION FORM FOR VERTICAL COLON
-FE14 ; [*0233.0020.0016] # PRESENTATION FORM FOR VERTICAL SEMICOLON
-FE15 ; [*025F.0020.0016] # PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
-FE16 ; [*0264.0020.0016] # PRESENTATION FORM FOR VERTICAL QUESTION MARK
-FE17 ; [*036E.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
-FE18 ; [*036F.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
-FE19 ; [*0274.0020.0016][*0274.0020.0016][*0274.0020.0016] # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+A8F8 ; [*03E8.0020.0002] # DEVANAGARI SIGN PUSHPIKA
+A8F9 ; [*03E9.0020.0002] # DEVANAGARI GAP FILLER
+A8FA ; [*03EA.0020.0002] # DEVANAGARI CARET
+A8FC ; [*03EB.0020.0002] # DEVANAGARI SIGN SIDDHAM
+A92E ; [*042E.0020.0002] # KAYAH LI SIGN CWI
+A92F ; [*0298.0020.0002] # KAYAH LI SIGN SHYA
+A95F ; [*02D8.0020.0002] # REJANG SECTION MARK
+A9C1 ; [*02CD.0020.0002] # JAVANESE LEFT RERENGGAN
+A9C2 ; [*02CE.0020.0002] # JAVANESE RIGHT RERENGGAN
+A9C3 ; [*02CF.0020.0002] # JAVANESE PADA ANDAP
+A9C4 ; [*02D0.0020.0002] # JAVANESE PADA MADYA
+A9C5 ; [*02D1.0020.0002] # JAVANESE PADA LUHUR
+A9C6 ; [*02D2.0020.0002] # JAVANESE PADA WINDU
+A9C7 ; [*025B.0020.0002] # JAVANESE PADA PANGKAT
+A9C8 ; [*02A3.0020.0002] # JAVANESE PADA LINGSA
+A9C9 ; [*02A4.0020.0002] # JAVANESE PADA LUNGSI
+A9CA ; [*02D3.0020.0002] # JAVANESE PADA ADEG
+A9CB ; [*02D4.0020.0002] # JAVANESE PADA ADEG ADEG
+A9CC ; [*02D5.0020.0002] # JAVANESE PADA PISELEH
+A9CD ; [*02D6.0020.0002] # JAVANESE TURNED PADA PISELEH
+A9DE ; [*042F.0020.0002] # JAVANESE PADA TIRTA TUMETES
+A9DF ; [*0430.0020.0002] # JAVANESE PADA ISEN-ISEN
+AA5C ; [*0431.0020.0002] # CHAM PUNCTUATION SPIRAL
+AA5D ; [*02A5.0020.0002] # CHAM PUNCTUATION DANDA
+AA5E ; [*02A6.0020.0002] # CHAM PUNCTUATION DOUBLE DANDA
+AA5F ; [*02A7.0020.0002] # CHAM PUNCTUATION TRIPLE DANDA
+AA77 ; [*054D.0020.0002] # MYANMAR SYMBOL AITON EXCLAMATION
+AA78 ; [*054E.0020.0002] # MYANMAR SYMBOL AITON ONE
+AA79 ; [*054F.0020.0002] # MYANMAR SYMBOL AITON TWO
+AADE ; [*03F1.0020.0002] # TAI VIET SYMBOL HO HOI
+AADF ; [*03F2.0020.0002] # TAI VIET SYMBOL KOI KOI
+AAF0 ; [*02A8.0020.0002] # MEETEI MAYEK CHEIKHAN
+AAF1 ; [*0272.0020.0002] # MEETEI MAYEK AHANG KHUDAM
+AB5B ; [*04F5.0020.0002] # MODIFIER BREVE WITH INVERTED BREVE
+ABEB ; [*02A9.0020.0002] # MEETEI MAYEK CHEIKHEI
+FB29 ; [*0616.0020.0005] # HEBREW LETTER ALTERNATIVE PLUS SIGN
+FBB2 ; [*0502.0020.0002] # ARABIC SYMBOL DOT ABOVE
+FBB3 ; [*0503.0020.0002] # ARABIC SYMBOL DOT BELOW
+FBB4 ; [*0504.0020.0002] # ARABIC SYMBOL TWO DOTS ABOVE
+FBB5 ; [*0505.0020.0002] # ARABIC SYMBOL TWO DOTS BELOW
+FBB6 ; [*0506.0020.0002] # ARABIC SYMBOL THREE DOTS ABOVE
+FBB7 ; [*0507.0020.0002] # ARABIC SYMBOL THREE DOTS BELOW
+FBB8 ; [*0508.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
+FBB9 ; [*0509.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
+FBBA ; [*050A.0020.0002] # ARABIC SYMBOL FOUR DOTS ABOVE
+FBBB ; [*050B.0020.0002] # ARABIC SYMBOL FOUR DOTS BELOW
+FBBC ; [*050C.0020.0002] # ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
+FBBD ; [*050D.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
+FBBE ; [*050E.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
+FBBF ; [*050F.0020.0002] # ARABIC SYMBOL RING
+FBC0 ; [*0510.0020.0002] # ARABIC SYMBOL SMALL TAH ABOVE
+FBC1 ; [*0511.0020.0002] # ARABIC SYMBOL SMALL TAH BELOW
+FD3E ; [*0381.0020.0002] # ORNATE LEFT PARENTHESIS
+FD3F ; [*0382.0020.0002] # ORNATE RIGHT PARENTHESIS
+FDFD ; [*0501.0020.0002] # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FE10 ; [*0222.0020.0016] # PRESENTATION FORM FOR VERTICAL COMMA
+FE11 ; [*0231.0020.0016] # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
+FE12 ; [*028A.0020.0016] # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13 ; [*0239.0020.0016] # PRESENTATION FORM FOR VERTICAL COLON
+FE14 ; [*0234.0020.0016] # PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE15 ; [*0260.0020.0016] # PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
+FE16 ; [*0266.0020.0016] # PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; [*037B.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; [*037C.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; [*0277.0020.0016][*0277.0020.0016][*0277.0020.0016] # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
FE21 ; [.0000.0000.0000] # COMBINING LIGATURE RIGHT HALF
FE23 ; [.0000.0000.0000] # COMBINING DOUBLE TILDE RIGHT HALF
FE24 ; [.0000.0000.0000] # COMBINING MACRON LEFT HALF
@@ -4049,31 +4089,32 @@ FE2A ; [.0000.0000.0000] # COMBINING TILDE RIGHT HALF BELOW
FE2B ; [.0000.0000.0000] # COMBINING MACRON LEFT HALF BELOW
FE2C ; [.0000.0000.0000] # COMBINING MACRON RIGHT HALF BELOW
FE2D ; [.0000.0000.0000] # COMBINING CONJOINING MACRON BELOW
-FE30 ; [*0274.0020.0016][*0274.0020.0016] # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE2F ; [.0000.0000.0000] # COMBINING CYRILLIC TITLO RIGHT HALF
+FE30 ; [*0277.0020.0016][*0277.0020.0016] # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
FE31 ; [*0216.0020.0016] # PRESENTATION FORM FOR VERTICAL EM DASH
FE32 ; [*0215.0020.0016] # PRESENTATION FORM FOR VERTICAL EN DASH
FE33 ; [*020B.0020.0016] # PRESENTATION FORM FOR VERTICAL LOW LINE
FE34 ; [*020B.0020.0016] # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-FE35 ; [*030A.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36 ; [*030B.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37 ; [*030E.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38 ; [*030F.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39 ; [*036C.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A ; [*036D.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B ; [*036A.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C ; [*036B.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D ; [*0364.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E ; [*0365.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F ; [*0362.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40 ; [*0363.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41 ; [*0366.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42 ; [*0367.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43 ; [*0368.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44 ; [*0369.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FE45 ; [*0231.0020.0002] # SESAME DOT
-FE46 ; [*0232.0020.0002] # WHITE SESAME DOT
-FE47 ; [*030C.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
-FE48 ; [*030D.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE35 ; [*0317.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; [*0318.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; [*031B.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; [*031C.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; [*0379.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; [*037A.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; [*0377.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; [*0378.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; [*0371.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; [*0372.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; [*036F.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; [*0370.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; [*0373.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; [*0374.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; [*0375.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; [*0376.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45 ; [*0232.0020.0002] # SESAME DOT
+FE46 ; [*0233.0020.0002] # WHITE SESAME DOT
+FE47 ; [*0319.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; [*031A.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
FE49 ; [*020A.0020.0004] # DASHED OVERLINE
FE4A ; [*020A.0020.0004] # CENTRELINE OVERLINE
FE4B ; [*020A.0020.0004] # WAVY OVERLINE
@@ -4081,419 +4122,489 @@ FE4C ; [*020A.0020.0004] # DOUBLE WAVY OVERLINE
FE4D ; [*020B.0020.0004] # DASHED LOW LINE
FE4E ; [*020B.0020.0004] # CENTRELINE LOW LINE
FE4F ; [*020B.0020.0004] # WAVY LOW LINE
-FE50 ; [*0221.0020.000F] # SMALL COMMA
-FE51 ; [*0230.0020.000F] # SMALL IDEOGRAPHIC COMMA
-FE52 ; [*0274.0020.000F] # SMALL FULL STOP
-FE54 ; [*0233.0020.000F] # SMALL SEMICOLON
-FE55 ; [*0238.0020.000F] # SMALL COLON
-FE56 ; [*0264.0020.000F] # SMALL QUESTION MARK
-FE57 ; [*025F.0020.000F] # SMALL EXCLAMATION MARK
+FE50 ; [*0222.0020.000F] # SMALL COMMA
+FE51 ; [*0231.0020.000F] # SMALL IDEOGRAPHIC COMMA
+FE52 ; [*0277.0020.000F] # SMALL FULL STOP
+FE54 ; [*0234.0020.000F] # SMALL SEMICOLON
+FE55 ; [*0239.0020.000F] # SMALL COLON
+FE56 ; [*0266.0020.000F] # SMALL QUESTION MARK
+FE57 ; [*0260.0020.000F] # SMALL EXCLAMATION MARK
FE58 ; [*0216.0020.000F] # SMALL EM DASH
-FE59 ; [*030A.0020.000F] # SMALL LEFT PARENTHESIS
-FE5A ; [*030B.0020.000F] # SMALL RIGHT PARENTHESIS
-FE5B ; [*030E.0020.000F] # SMALL LEFT CURLY BRACKET
-FE5C ; [*030F.0020.000F] # SMALL RIGHT CURLY BRACKET
-FE5D ; [*036C.0020.000F] # SMALL LEFT TORTOISE SHELL BRACKET
-FE5E ; [*036D.0020.000F] # SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F ; [*038B.0020.000F] # SMALL NUMBER SIGN
-FE60 ; [*0389.0020.000F] # SMALL AMPERSAND
-FE61 ; [*0382.0020.000F] # SMALL ASTERISK
-FE62 ; [*05D6.0020.000F] # SMALL PLUS SIGN
+FE59 ; [*0317.0020.000F] # SMALL LEFT PARENTHESIS
+FE5A ; [*0318.0020.000F] # SMALL RIGHT PARENTHESIS
+FE5B ; [*031B.0020.000F] # SMALL LEFT CURLY BRACKET
+FE5C ; [*031C.0020.000F] # SMALL RIGHT CURLY BRACKET
+FE5D ; [*0379.0020.000F] # SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; [*037A.0020.000F] # SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F ; [*0398.0020.000F] # SMALL NUMBER SIGN
+FE60 ; [*0396.0020.000F] # SMALL AMPERSAND
+FE61 ; [*038F.0020.000F] # SMALL ASTERISK
+FE62 ; [*0616.0020.000F] # SMALL PLUS SIGN
FE63 ; [*020D.0020.000F] # SMALL HYPHEN-MINUS
-FE64 ; [*05DA.0020.000F] # SMALL LESS-THAN SIGN
-FE65 ; [*05DC.0020.000F] # SMALL GREATER-THAN SIGN
-FE66 ; [*05DB.0020.000F] # SMALL EQUALS SIGN
-FE68 ; [*0388.0020.000F] # SMALL REVERSE SOLIDUS
-FE6A ; [*038C.0020.000F] # SMALL PERCENT SIGN
-FE6B ; [*0381.0020.000F] # SMALL COMMERCIAL AT
+FE64 ; [*061A.0020.000F] # SMALL LESS-THAN SIGN
+FE65 ; [*061C.0020.000F] # SMALL GREATER-THAN SIGN
+FE66 ; [*061B.0020.000F] # SMALL EQUALS SIGN
+FE68 ; [*0395.0020.000F] # SMALL REVERSE SOLIDUS
+FE6A ; [*0399.0020.000F] # SMALL PERCENT SIGN
+FE6B ; [*038E.0020.000F] # SMALL COMMERCIAL AT
FE73 ; [.0000.0000.0000] # ARABIC TAIL FRAGMENT
-FF01 ; [*025F.0020.0003] # FULLWIDTH EXCLAMATION MARK
-FF02 ; [*02FF.0020.0003] # FULLWIDTH QUOTATION MARK
-FF03 ; [*038B.0020.0003] # FULLWIDTH NUMBER SIGN
-FF05 ; [*038C.0020.0003] # FULLWIDTH PERCENT SIGN
-FF06 ; [*0389.0020.0003] # FULLWIDTH AMPERSAND
-FF07 ; [*02F8.0020.0003] # FULLWIDTH APOSTROPHE
-FF08 ; [*030A.0020.0003] # FULLWIDTH LEFT PARENTHESIS
-FF09 ; [*030B.0020.0003] # FULLWIDTH RIGHT PARENTHESIS
-FF0A ; [*0382.0020.0003] # FULLWIDTH ASTERISK
-FF0B ; [*05D6.0020.0003] # FULLWIDTH PLUS SIGN
-FF0C ; [*0221.0020.0003] # FULLWIDTH COMMA
+FF01 ; [*0260.0020.0003] # FULLWIDTH EXCLAMATION MARK
+FF02 ; [*030C.0020.0003] # FULLWIDTH QUOTATION MARK
+FF03 ; [*0398.0020.0003] # FULLWIDTH NUMBER SIGN
+FF05 ; [*0399.0020.0003] # FULLWIDTH PERCENT SIGN
+FF06 ; [*0396.0020.0003] # FULLWIDTH AMPERSAND
+FF07 ; [*0305.0020.0003] # FULLWIDTH APOSTROPHE
+FF08 ; [*0317.0020.0003] # FULLWIDTH LEFT PARENTHESIS
+FF09 ; [*0318.0020.0003] # FULLWIDTH RIGHT PARENTHESIS
+FF0A ; [*038F.0020.0003] # FULLWIDTH ASTERISK
+FF0B ; [*0616.0020.0003] # FULLWIDTH PLUS SIGN
+FF0C ; [*0222.0020.0003] # FULLWIDTH COMMA
FF0D ; [*020D.0020.0003] # FULLWIDTH HYPHEN-MINUS
-FF0E ; [*0274.0020.0003] # FULLWIDTH FULL STOP
-FF0F ; [*0387.0020.0003] # FULLWIDTH SOLIDUS
-FF1A ; [*0238.0020.0003] # FULLWIDTH COLON
-FF1B ; [*0233.0020.0003] # FULLWIDTH SEMICOLON
-FF1C ; [*05DA.0020.0003] # FULLWIDTH LESS-THAN SIGN
-FF1D ; [*05DB.0020.0003] # FULLWIDTH EQUALS SIGN
-FF1E ; [*05DC.0020.0003] # FULLWIDTH GREATER-THAN SIGN
-FF1F ; [*0264.0020.0003] # FULLWIDTH QUESTION MARK
-FF20 ; [*0381.0020.0003] # FULLWIDTH COMMERCIAL AT
-FF3B ; [*030C.0020.0003] # FULLWIDTH LEFT SQUARE BRACKET
-FF3C ; [*0388.0020.0003] # FULLWIDTH REVERSE SOLIDUS
-FF3D ; [*030D.0020.0003] # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E ; [*0449.0020.0003] # FULLWIDTH CIRCUMFLEX ACCENT
+FF0E ; [*0277.0020.0003] # FULLWIDTH FULL STOP
+FF0F ; [*0394.0020.0003] # FULLWIDTH SOLIDUS
+FF1A ; [*0239.0020.0003] # FULLWIDTH COLON
+FF1B ; [*0234.0020.0003] # FULLWIDTH SEMICOLON
+FF1C ; [*061A.0020.0003] # FULLWIDTH LESS-THAN SIGN
+FF1D ; [*061B.0020.0003] # FULLWIDTH EQUALS SIGN
+FF1E ; [*061C.0020.0003] # FULLWIDTH GREATER-THAN SIGN
+FF1F ; [*0266.0020.0003] # FULLWIDTH QUESTION MARK
+FF20 ; [*038E.0020.0003] # FULLWIDTH COMMERCIAL AT
+FF3B ; [*0319.0020.0003] # FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; [*0395.0020.0003] # FULLWIDTH REVERSE SOLIDUS
+FF3D ; [*031A.0020.0003] # FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; [*0485.0020.0003] # FULLWIDTH CIRCUMFLEX ACCENT
FF3F ; [*020B.0020.0003] # FULLWIDTH LOW LINE
-FF40 ; [*0446.0020.0003] # FULLWIDTH GRAVE ACCENT
-FF5B ; [*030E.0020.0003] # FULLWIDTH LEFT CURLY BRACKET
-FF5C ; [*05DE.0020.0003] # FULLWIDTH VERTICAL LINE
-FF5D ; [*030F.0020.0003] # FULLWIDTH RIGHT CURLY BRACKET
-FF5E ; [*05E0.0020.0003] # FULLWIDTH TILDE
-FF5F ; [*0320.0020.0003] # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60 ; [*0321.0020.0003] # FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61 ; [*0287.0020.0012] # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62 ; [*0366.0020.0012] # HALFWIDTH LEFT CORNER BRACKET
-FF63 ; [*0367.0020.0012] # HALFWIDTH RIGHT CORNER BRACKET
-FF64 ; [*0230.0020.0012] # HALFWIDTH IDEOGRAPHIC COMMA
-FF65 ; [*0220.0020.0012] # HALFWIDTH KATAKANA MIDDLE DOT
-FFE2 ; [*05DD.0020.0003] # FULLWIDTH NOT SIGN
-FFE3 ; [*044A.0020.0003] # FULLWIDTH MACRON
-FFE4 ; [*05DF.0020.0003] # FULLWIDTH BROKEN BAR
-FFE8 ; [*07D6.0020.0012] # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9 ; [*055C.0020.0012] # HALFWIDTH LEFTWARDS ARROW
-FFEA ; [*055E.0020.0012] # HALFWIDTH UPWARDS ARROW
-FFEB ; [*055D.0020.0012] # HALFWIDTH RIGHTWARDS ARROW
-FFEC ; [*055F.0020.0012] # HALFWIDTH DOWNWARDS ARROW
-FFED ; [*0874.0020.0012] # HALFWIDTH BLACK SQUARE
-FFEE ; [*089F.0020.0012] # HALFWIDTH WHITE CIRCLE
-FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
-10100 ; [*02ED.0020.0002] # AEGEAN WORD SEPARATOR LINE
-10101 ; [*02EE.0020.0002] # AEGEAN WORD SEPARATOR DOT
-10102 ; [*02EF.0020.0002] # AEGEAN CHECK MARK
-10110 ; [*17F6.0020.0002] # AEGEAN NUMBER TEN
-10111 ; [*17F7.0020.0002] # AEGEAN NUMBER TWENTY
-10112 ; [*17F8.0020.0002] # AEGEAN NUMBER THIRTY
-10113 ; [*17F9.0020.0002] # AEGEAN NUMBER FORTY
-10114 ; [*17FA.0020.0002] # AEGEAN NUMBER FIFTY
-10115 ; [*17FB.0020.0002] # AEGEAN NUMBER SIXTY
-10116 ; [*17FC.0020.0002] # AEGEAN NUMBER SEVENTY
-10117 ; [*17FD.0020.0002] # AEGEAN NUMBER EIGHTY
-10118 ; [*17FE.0020.0002] # AEGEAN NUMBER NINETY
-10119 ; [*17FF.0020.0002] # AEGEAN NUMBER ONE HUNDRED
-1011A ; [*1800.0020.0002] # AEGEAN NUMBER TWO HUNDRED
-1011B ; [*1801.0020.0002] # AEGEAN NUMBER THREE HUNDRED
-1011C ; [*1802.0020.0002] # AEGEAN NUMBER FOUR HUNDRED
-1011D ; [*1803.0020.0002] # AEGEAN NUMBER FIVE HUNDRED
-1011E ; [*1804.0020.0002] # AEGEAN NUMBER SIX HUNDRED
-1011F ; [*1805.0020.0002] # AEGEAN NUMBER SEVEN HUNDRED
-10120 ; [*1806.0020.0002] # AEGEAN NUMBER EIGHT HUNDRED
-10121 ; [*1807.0020.0002] # AEGEAN NUMBER NINE HUNDRED
-10122 ; [*1808.0020.0002] # AEGEAN NUMBER ONE THOUSAND
-10123 ; [*1809.0020.0002] # AEGEAN NUMBER TWO THOUSAND
-10124 ; [*180A.0020.0002] # AEGEAN NUMBER THREE THOUSAND
-10125 ; [*180B.0020.0002] # AEGEAN NUMBER FOUR THOUSAND
-10126 ; [*180C.0020.0002] # AEGEAN NUMBER FIVE THOUSAND
-10127 ; [*180D.0020.0002] # AEGEAN NUMBER SIX THOUSAND
-10128 ; [*180E.0020.0002] # AEGEAN NUMBER SEVEN THOUSAND
-10129 ; [*180F.0020.0002] # AEGEAN NUMBER EIGHT THOUSAND
-1012A ; [*1810.0020.0002] # AEGEAN NUMBER NINE THOUSAND
-1012B ; [*1811.0020.0002] # AEGEAN NUMBER TEN THOUSAND
-1012C ; [*1812.0020.0002] # AEGEAN NUMBER TWENTY THOUSAND
-1012D ; [*1813.0020.0002] # AEGEAN NUMBER THIRTY THOUSAND
-1012E ; [*1814.0020.0002] # AEGEAN NUMBER FORTY THOUSAND
-1012F ; [*1815.0020.0002] # AEGEAN NUMBER FIFTY THOUSAND
-10130 ; [*1816.0020.0002] # AEGEAN NUMBER SIXTY THOUSAND
-10131 ; [*1817.0020.0002] # AEGEAN NUMBER SEVENTY THOUSAND
-10132 ; [*1818.0020.0002] # AEGEAN NUMBER EIGHTY THOUSAND
-10133 ; [*1819.0020.0002] # AEGEAN NUMBER NINETY THOUSAND
-10137 ; [*0F30.0020.0002] # AEGEAN WEIGHT BASE UNIT
-10138 ; [*0F31.0020.0002] # AEGEAN WEIGHT FIRST SUBUNIT
-10139 ; [*0F32.0020.0002] # AEGEAN WEIGHT SECOND SUBUNIT
-1013A ; [*0F33.0020.0002] # AEGEAN WEIGHT THIRD SUBUNIT
-1013B ; [*0F34.0020.0002] # AEGEAN WEIGHT FOURTH SUBUNIT
-1013C ; [*0F35.0020.0002] # AEGEAN DRY MEASURE FIRST SUBUNIT
-1013D ; [*0F36.0020.0002] # AEGEAN LIQUID MEASURE FIRST SUBUNIT
-1013E ; [*0F37.0020.0002] # AEGEAN MEASURE SECOND SUBUNIT
-1013F ; [*0F38.0020.0002] # AEGEAN MEASURE THIRD SUBUNIT
-10140 ; [*181A.0020.0002] # GREEK ACROPHONIC ATTIC ONE QUARTER
-10141 ; [*181B.0020.0002] # GREEK ACROPHONIC ATTIC ONE HALF
-10144 ; [*181C.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY
-10145 ; [*181D.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED
-10146 ; [*181E.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND
-10147 ; [*181F.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND
-10149 ; [*1820.0020.0002] # GREEK ACROPHONIC ATTIC TEN TALENTS
-1014A ; [*1821.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY TALENTS
-1014B ; [*1822.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
-1014C ; [*1823.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
-1014D ; [*1824.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
-1014E ; [*1825.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
-10150 ; [*1826.0020.0002] # GREEK ACROPHONIC ATTIC TEN STATERS
-10151 ; [*1827.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY STATERS
-10152 ; [*1828.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
-10153 ; [*1829.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
-10154 ; [*182A.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
-10155 ; [*182B.0020.0002] # GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
-10156 ; [*182C.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
-10157 ; [*182D.0020.0002] # GREEK ACROPHONIC ATTIC TEN MNAS
-10160 ; [*182E.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN
-10161 ; [*182F.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM
-10162 ; [*1830.0020.0002] # GREEK ACROPHONIC HERMIONIAN TEN
-10163 ; [*1831.0020.0002] # GREEK ACROPHONIC MESSENIAN TEN
-10164 ; [*1832.0020.0002] # GREEK ACROPHONIC THESPIAN TEN
-10165 ; [*1833.0020.0002] # GREEK ACROPHONIC THESPIAN THIRTY
-10166 ; [*1834.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY
-10167 ; [*1835.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
-10168 ; [*1836.0020.0002] # GREEK ACROPHONIC HERMIONIAN FIFTY
-10169 ; [*1837.0020.0002] # GREEK ACROPHONIC THESPIAN FIFTY
-1016A ; [*1838.0020.0002] # GREEK ACROPHONIC THESPIAN ONE HUNDRED
-1016B ; [*1839.0020.0002] # GREEK ACROPHONIC THESPIAN THREE HUNDRED
-1016C ; [*183A.0020.0002] # GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
-1016D ; [*183B.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
-1016E ; [*183C.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE HUNDRED
-1016F ; [*183D.0020.0002] # GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
-10170 ; [*183E.0020.0002] # GREEK ACROPHONIC NAXIAN FIVE HUNDRED
-10171 ; [*183F.0020.0002] # GREEK ACROPHONIC THESPIAN ONE THOUSAND
-10172 ; [*1840.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE THOUSAND
-10174 ; [*1841.0020.0002] # GREEK ACROPHONIC STRATIAN FIFTY MNAS
-10175 ; [*1842.0020.0002] # GREEK ONE HALF SIGN
-10176 ; [*1843.0020.0002] # GREEK ONE HALF SIGN ALTERNATE FORM
-10177 ; [*1844.0020.0002] # GREEK TWO THIRDS SIGN
-10178 ; [*1845.0020.0002] # GREEK THREE QUARTERS SIGN
-10179 ; [*0F39.0020.0002] # GREEK YEAR SIGN
-1017A ; [*0F3A.0020.0002] # GREEK TALENT SIGN
-1017B ; [*0F3B.0020.0002] # GREEK DRACHMA SIGN
-1017C ; [*0F3C.0020.0002] # GREEK OBOL SIGN
-1017D ; [*0F3D.0020.0002] # GREEK TWO OBOLS SIGN
-1017E ; [*0F3E.0020.0002] # GREEK THREE OBOLS SIGN
-1017F ; [*0F3F.0020.0002] # GREEK FOUR OBOLS SIGN
-10180 ; [*0F40.0020.0002] # GREEK FIVE OBOLS SIGN
-10181 ; [*0F41.0020.0002] # GREEK METRETES SIGN
-10182 ; [*0F42.0020.0002] # GREEK KYATHOS BASE SIGN
-10183 ; [*0F43.0020.0002] # GREEK LITRA SIGN
-10184 ; [*0F44.0020.0002] # GREEK OUNKIA SIGN
-10185 ; [*0F45.0020.0002] # GREEK XESTES SIGN
-10186 ; [*0F46.0020.0002] # GREEK ARTABE SIGN
-10187 ; [*0F47.0020.0002] # GREEK AROURA SIGN
-10188 ; [*0F48.0020.0002] # GREEK GRAMMA SIGN
-10189 ; [*0F49.0020.0002] # GREEK TRYBLION BASE SIGN
-1018B ; [*1846.0020.0002] # GREEK ONE QUARTER SIGN
-1018C ; [*0F4A.0020.0002] # GREEK SINUSOID SIGN
-10190 ; [*0F4B.0020.0002] # ROMAN SEXTANS SIGN
-10191 ; [*0F4C.0020.0002] # ROMAN UNCIA SIGN
-10192 ; [*0F4D.0020.0002] # ROMAN SEMUNCIA SIGN
-10193 ; [*0F4E.0020.0002] # ROMAN SEXTULA SIGN
-10194 ; [*0F4F.0020.0002] # ROMAN DIMIDIA SEXTULA SIGN
-10195 ; [*0F50.0020.0002] # ROMAN SILIQUA SIGN
-10196 ; [*0F51.0020.0002] # ROMAN DENARIUS SIGN
-10197 ; [*0F52.0020.0002] # ROMAN QUINARIUS SIGN
-10198 ; [*0F53.0020.0002] # ROMAN SESTERTIUS SIGN
-10199 ; [*0F54.0020.0002] # ROMAN DUPONDIUS SIGN
-1019A ; [*0F55.0020.0002] # ROMAN AS SIGN
-1019B ; [*0F56.0020.0002] # ROMAN CENTURIAL SIGN
-101A0 ; [*0F57.0020.0002] # GREEK SYMBOL TAU RHO
-101D0 ; [*0F58.0020.0002] # PHAISTOS DISC SIGN PEDESTRIAN
-101D1 ; [*0F59.0020.0002] # PHAISTOS DISC SIGN PLUMED HEAD
-101D2 ; [*0F5A.0020.0002] # PHAISTOS DISC SIGN TATTOOED HEAD
-101D3 ; [*0F5B.0020.0002] # PHAISTOS DISC SIGN CAPTIVE
-101D4 ; [*0F5C.0020.0002] # PHAISTOS DISC SIGN CHILD
-101D5 ; [*0F5D.0020.0002] # PHAISTOS DISC SIGN WOMAN
-101D6 ; [*0F5E.0020.0002] # PHAISTOS DISC SIGN HELMET
-101D7 ; [*0F5F.0020.0002] # PHAISTOS DISC SIGN GAUNTLET
-101D8 ; [*0F60.0020.0002] # PHAISTOS DISC SIGN TIARA
-101D9 ; [*0F61.0020.0002] # PHAISTOS DISC SIGN ARROW
-101DA ; [*0F62.0020.0002] # PHAISTOS DISC SIGN BOW
-101DB ; [*0F63.0020.0002] # PHAISTOS DISC SIGN SHIELD
-101DC ; [*0F64.0020.0002] # PHAISTOS DISC SIGN CLUB
-101DD ; [*0F65.0020.0002] # PHAISTOS DISC SIGN MANACLES
-101DE ; [*0F66.0020.0002] # PHAISTOS DISC SIGN MATTOCK
-101DF ; [*0F67.0020.0002] # PHAISTOS DISC SIGN SAW
-101E0 ; [*0F68.0020.0002] # PHAISTOS DISC SIGN LID
-101E1 ; [*0F69.0020.0002] # PHAISTOS DISC SIGN BOOMERANG
-101E2 ; [*0F6A.0020.0002] # PHAISTOS DISC SIGN CARPENTRY PLANE
-101E3 ; [*0F6B.0020.0002] # PHAISTOS DISC SIGN DOLIUM
-101E4 ; [*0F6C.0020.0002] # PHAISTOS DISC SIGN COMB
-101E5 ; [*0F6D.0020.0002] # PHAISTOS DISC SIGN SLING
-101E6 ; [*0F6E.0020.0002] # PHAISTOS DISC SIGN COLUMN
-101E7 ; [*0F6F.0020.0002] # PHAISTOS DISC SIGN BEEHIVE
-101E8 ; [*0F70.0020.0002] # PHAISTOS DISC SIGN SHIP
-101E9 ; [*0F71.0020.0002] # PHAISTOS DISC SIGN HORN
-101EA ; [*0F72.0020.0002] # PHAISTOS DISC SIGN HIDE
-101EB ; [*0F73.0020.0002] # PHAISTOS DISC SIGN BULLS LEG
-101EC ; [*0F74.0020.0002] # PHAISTOS DISC SIGN CAT
-101ED ; [*0F75.0020.0002] # PHAISTOS DISC SIGN RAM
-101EE ; [*0F76.0020.0002] # PHAISTOS DISC SIGN EAGLE
-101EF ; [*0F77.0020.0002] # PHAISTOS DISC SIGN DOVE
-101F0 ; [*0F78.0020.0002] # PHAISTOS DISC SIGN TUNNY
-101F1 ; [*0F79.0020.0002] # PHAISTOS DISC SIGN BEE
-101F2 ; [*0F7A.0020.0002] # PHAISTOS DISC SIGN PLANE TREE
-101F3 ; [*0F7B.0020.0002] # PHAISTOS DISC SIGN VINE
-101F4 ; [*0F7C.0020.0002] # PHAISTOS DISC SIGN PAPYRUS
-101F5 ; [*0F7D.0020.0002] # PHAISTOS DISC SIGN ROSETTE
-101F6 ; [*0F7E.0020.0002] # PHAISTOS DISC SIGN LILY
-101F7 ; [*0F7F.0020.0002] # PHAISTOS DISC SIGN OX BACK
-101F8 ; [*0F80.0020.0002] # PHAISTOS DISC SIGN FLUTE
-101F9 ; [*0F81.0020.0002] # PHAISTOS DISC SIGN GRATER
-101FA ; [*0F82.0020.0002] # PHAISTOS DISC SIGN STRAINER
-101FB ; [*0F83.0020.0002] # PHAISTOS DISC SIGN SMALL AXE
-101FC ; [*0F84.0020.0002] # PHAISTOS DISC SIGN WAVY BAND
+FF40 ; [*0482.0020.0003] # FULLWIDTH GRAVE ACCENT
+FF5B ; [*031B.0020.0003] # FULLWIDTH LEFT CURLY BRACKET
+FF5C ; [*061E.0020.0003] # FULLWIDTH VERTICAL LINE
+FF5D ; [*031C.0020.0003] # FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; [*0620.0020.0003] # FULLWIDTH TILDE
+FF5F ; [*032D.0020.0003] # FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; [*032E.0020.0003] # FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; [*028A.0020.0012] # HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; [*0373.0020.0012] # HALFWIDTH LEFT CORNER BRACKET
+FF63 ; [*0374.0020.0012] # HALFWIDTH RIGHT CORNER BRACKET
+FF64 ; [*0231.0020.0012] # HALFWIDTH IDEOGRAPHIC COMMA
+FF65 ; [*0221.0020.0012] # HALFWIDTH KATAKANA MIDDLE DOT
+FFE2 ; [*061D.0020.0003] # FULLWIDTH NOT SIGN
+FFE3 ; [*0486.0020.0003] # FULLWIDTH MACRON
+FFE4 ; [*061F.0020.0003] # FULLWIDTH BROKEN BAR
+FFE8 ; [*081A.0020.0012] # HALFWIDTH FORMS LIGHT VERTICAL
+FFE9 ; [*059C.0020.0012] # HALFWIDTH LEFTWARDS ARROW
+FFEA ; [*059E.0020.0012] # HALFWIDTH UPWARDS ARROW
+FFEB ; [*059D.0020.0012] # HALFWIDTH RIGHTWARDS ARROW
+FFEC ; [*059F.0020.0012] # HALFWIDTH DOWNWARDS ARROW
+FFED ; [*08B8.0020.0012] # HALFWIDTH BLACK SQUARE
+FFEE ; [*08E3.0020.0012] # HALFWIDTH WHITE CIRCLE
+FFFC ; [*1A95.0020.0002] # OBJECT REPLACEMENT CHARACTER
+10100 ; [*02FA.0020.0002] # AEGEAN WORD SEPARATOR LINE
+10101 ; [*02FB.0020.0002] # AEGEAN WORD SEPARATOR DOT
+10102 ; [*02FC.0020.0002] # AEGEAN CHECK MARK
+10110 ; [*1AE9.0020.0002] # AEGEAN NUMBER TEN
+10111 ; [*1AEA.0020.0002] # AEGEAN NUMBER TWENTY
+10112 ; [*1AEB.0020.0002] # AEGEAN NUMBER THIRTY
+10113 ; [*1AEC.0020.0002] # AEGEAN NUMBER FORTY
+10114 ; [*1AED.0020.0002] # AEGEAN NUMBER FIFTY
+10115 ; [*1AEE.0020.0002] # AEGEAN NUMBER SIXTY
+10116 ; [*1AEF.0020.0002] # AEGEAN NUMBER SEVENTY
+10117 ; [*1AF0.0020.0002] # AEGEAN NUMBER EIGHTY
+10118 ; [*1AF1.0020.0002] # AEGEAN NUMBER NINETY
+10119 ; [*1AF2.0020.0002] # AEGEAN NUMBER ONE HUNDRED
+1011A ; [*1AF3.0020.0002] # AEGEAN NUMBER TWO HUNDRED
+1011B ; [*1AF4.0020.0002] # AEGEAN NUMBER THREE HUNDRED
+1011C ; [*1AF5.0020.0002] # AEGEAN NUMBER FOUR HUNDRED
+1011D ; [*1AF6.0020.0002] # AEGEAN NUMBER FIVE HUNDRED
+1011E ; [*1AF7.0020.0002] # AEGEAN NUMBER SIX HUNDRED
+1011F ; [*1AF8.0020.0002] # AEGEAN NUMBER SEVEN HUNDRED
+10120 ; [*1AF9.0020.0002] # AEGEAN NUMBER EIGHT HUNDRED
+10121 ; [*1AFA.0020.0002] # AEGEAN NUMBER NINE HUNDRED
+10122 ; [*1AFB.0020.0002] # AEGEAN NUMBER ONE THOUSAND
+10123 ; [*1AFC.0020.0002] # AEGEAN NUMBER TWO THOUSAND
+10124 ; [*1AFD.0020.0002] # AEGEAN NUMBER THREE THOUSAND
+10125 ; [*1AFE.0020.0002] # AEGEAN NUMBER FOUR THOUSAND
+10126 ; [*1AFF.0020.0002] # AEGEAN NUMBER FIVE THOUSAND
+10127 ; [*1B00.0020.0002] # AEGEAN NUMBER SIX THOUSAND
+10128 ; [*1B01.0020.0002] # AEGEAN NUMBER SEVEN THOUSAND
+10129 ; [*1B02.0020.0002] # AEGEAN NUMBER EIGHT THOUSAND
+1012A ; [*1B03.0020.0002] # AEGEAN NUMBER NINE THOUSAND
+1012B ; [*1B04.0020.0002] # AEGEAN NUMBER TEN THOUSAND
+1012C ; [*1B05.0020.0002] # AEGEAN NUMBER TWENTY THOUSAND
+1012D ; [*1B06.0020.0002] # AEGEAN NUMBER THIRTY THOUSAND
+1012E ; [*1B07.0020.0002] # AEGEAN NUMBER FORTY THOUSAND
+1012F ; [*1B08.0020.0002] # AEGEAN NUMBER FIFTY THOUSAND
+10130 ; [*1B09.0020.0002] # AEGEAN NUMBER SIXTY THOUSAND
+10131 ; [*1B0A.0020.0002] # AEGEAN NUMBER SEVENTY THOUSAND
+10132 ; [*1B0B.0020.0002] # AEGEAN NUMBER EIGHTY THOUSAND
+10133 ; [*1B0C.0020.0002] # AEGEAN NUMBER NINETY THOUSAND
+10137 ; [*0F78.0020.0002] # AEGEAN WEIGHT BASE UNIT
+10138 ; [*0F79.0020.0002] # AEGEAN WEIGHT FIRST SUBUNIT
+10139 ; [*0F7A.0020.0002] # AEGEAN WEIGHT SECOND SUBUNIT
+1013A ; [*0F7B.0020.0002] # AEGEAN WEIGHT THIRD SUBUNIT
+1013B ; [*0F7C.0020.0002] # AEGEAN WEIGHT FOURTH SUBUNIT
+1013C ; [*0F7D.0020.0002] # AEGEAN DRY MEASURE FIRST SUBUNIT
+1013D ; [*0F7E.0020.0002] # AEGEAN LIQUID MEASURE FIRST SUBUNIT
+1013E ; [*0F7F.0020.0002] # AEGEAN MEASURE SECOND SUBUNIT
+1013F ; [*0F80.0020.0002] # AEGEAN MEASURE THIRD SUBUNIT
+10140 ; [*1B0D.0020.0002] # GREEK ACROPHONIC ATTIC ONE QUARTER
+10141 ; [*1B0E.0020.0002] # GREEK ACROPHONIC ATTIC ONE HALF
+10144 ; [*1B0F.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY
+10145 ; [*1B10.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED
+10146 ; [*1B11.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND
+10147 ; [*1B12.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND
+10149 ; [*1B13.0020.0002] # GREEK ACROPHONIC ATTIC TEN TALENTS
+1014A ; [*1B14.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY TALENTS
+1014B ; [*1B15.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
+1014C ; [*1B16.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
+1014D ; [*1B17.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
+1014E ; [*1B18.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
+10150 ; [*1B19.0020.0002] # GREEK ACROPHONIC ATTIC TEN STATERS
+10151 ; [*1B1A.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY STATERS
+10152 ; [*1B1B.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
+10153 ; [*1B1C.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
+10154 ; [*1B1D.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
+10155 ; [*1B1E.0020.0002] # GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
+10156 ; [*1B1F.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
+10157 ; [*1B20.0020.0002] # GREEK ACROPHONIC ATTIC TEN MNAS
+10160 ; [*1B21.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN
+10161 ; [*1B22.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM
+10162 ; [*1B23.0020.0002] # GREEK ACROPHONIC HERMIONIAN TEN
+10163 ; [*1B24.0020.0002] # GREEK ACROPHONIC MESSENIAN TEN
+10164 ; [*1B25.0020.0002] # GREEK ACROPHONIC THESPIAN TEN
+10165 ; [*1B26.0020.0002] # GREEK ACROPHONIC THESPIAN THIRTY
+10166 ; [*1B27.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY
+10167 ; [*1B28.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
+10168 ; [*1B29.0020.0002] # GREEK ACROPHONIC HERMIONIAN FIFTY
+10169 ; [*1B2A.0020.0002] # GREEK ACROPHONIC THESPIAN FIFTY
+1016A ; [*1B2B.0020.0002] # GREEK ACROPHONIC THESPIAN ONE HUNDRED
+1016B ; [*1B2C.0020.0002] # GREEK ACROPHONIC THESPIAN THREE HUNDRED
+1016C ; [*1B2D.0020.0002] # GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
+1016D ; [*1B2E.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
+1016E ; [*1B2F.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE HUNDRED
+1016F ; [*1B30.0020.0002] # GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
+10170 ; [*1B31.0020.0002] # GREEK ACROPHONIC NAXIAN FIVE HUNDRED
+10171 ; [*1B32.0020.0002] # GREEK ACROPHONIC THESPIAN ONE THOUSAND
+10172 ; [*1B33.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE THOUSAND
+10174 ; [*1B34.0020.0002] # GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175 ; [*1B35.0020.0002] # GREEK ONE HALF SIGN
+10176 ; [*1B36.0020.0002] # GREEK ONE HALF SIGN ALTERNATE FORM
+10177 ; [*1B37.0020.0002] # GREEK TWO THIRDS SIGN
+10178 ; [*1B38.0020.0002] # GREEK THREE QUARTERS SIGN
+10179 ; [*0F81.0020.0002] # GREEK YEAR SIGN
+1017A ; [*0F82.0020.0002] # GREEK TALENT SIGN
+1017B ; [*0F83.0020.0002] # GREEK DRACHMA SIGN
+1017C ; [*0F84.0020.0002] # GREEK OBOL SIGN
+1017D ; [*0F85.0020.0002] # GREEK TWO OBOLS SIGN
+1017E ; [*0F86.0020.0002] # GREEK THREE OBOLS SIGN
+1017F ; [*0F87.0020.0002] # GREEK FOUR OBOLS SIGN
+10180 ; [*0F88.0020.0002] # GREEK FIVE OBOLS SIGN
+10181 ; [*0F89.0020.0002] # GREEK METRETES SIGN
+10182 ; [*0F8A.0020.0002] # GREEK KYATHOS BASE SIGN
+10183 ; [*0F8B.0020.0002] # GREEK LITRA SIGN
+10184 ; [*0F8C.0020.0002] # GREEK OUNKIA SIGN
+10185 ; [*0F8D.0020.0002] # GREEK XESTES SIGN
+10186 ; [*0F8E.0020.0002] # GREEK ARTABE SIGN
+10187 ; [*0F8F.0020.0002] # GREEK AROURA SIGN
+10188 ; [*0F90.0020.0002] # GREEK GRAMMA SIGN
+10189 ; [*0F91.0020.0002] # GREEK TRYBLION BASE SIGN
+1018B ; [*1B39.0020.0002] # GREEK ONE QUARTER SIGN
+1018C ; [*0F92.0020.0002] # GREEK SINUSOID SIGN
+1018D ; [*0F93.0020.0002] # GREEK INDICTION SIGN
+1018E ; [*0F94.0020.0002] # NOMISMA SIGN
+10190 ; [*0F95.0020.0002] # ROMAN SEXTANS SIGN
+10191 ; [*0F96.0020.0002] # ROMAN UNCIA SIGN
+10192 ; [*0F97.0020.0002] # ROMAN SEMUNCIA SIGN
+10193 ; [*0F98.0020.0002] # ROMAN SEXTULA SIGN
+10194 ; [*0F99.0020.0002] # ROMAN DIMIDIA SEXTULA SIGN
+10195 ; [*0F9A.0020.0002] # ROMAN SILIQUA SIGN
+10196 ; [*0F9B.0020.0002] # ROMAN DENARIUS SIGN
+10197 ; [*0F9C.0020.0002] # ROMAN QUINARIUS SIGN
+10198 ; [*0F9D.0020.0002] # ROMAN SESTERTIUS SIGN
+10199 ; [*0F9E.0020.0002] # ROMAN DUPONDIUS SIGN
+1019A ; [*0F9F.0020.0002] # ROMAN AS SIGN
+1019B ; [*0FA0.0020.0002] # ROMAN CENTURIAL SIGN
+101A0 ; [*0FA1.0020.0002] # GREEK SYMBOL TAU RHO
+101D0 ; [*0FA2.0020.0002] # PHAISTOS DISC SIGN PEDESTRIAN
+101D1 ; [*0FA3.0020.0002] # PHAISTOS DISC SIGN PLUMED HEAD
+101D2 ; [*0FA4.0020.0002] # PHAISTOS DISC SIGN TATTOOED HEAD
+101D3 ; [*0FA5.0020.0002] # PHAISTOS DISC SIGN CAPTIVE
+101D4 ; [*0FA6.0020.0002] # PHAISTOS DISC SIGN CHILD
+101D5 ; [*0FA7.0020.0002] # PHAISTOS DISC SIGN WOMAN
+101D6 ; [*0FA8.0020.0002] # PHAISTOS DISC SIGN HELMET
+101D7 ; [*0FA9.0020.0002] # PHAISTOS DISC SIGN GAUNTLET
+101D8 ; [*0FAA.0020.0002] # PHAISTOS DISC SIGN TIARA
+101D9 ; [*0FAB.0020.0002] # PHAISTOS DISC SIGN ARROW
+101DA ; [*0FAC.0020.0002] # PHAISTOS DISC SIGN BOW
+101DB ; [*0FAD.0020.0002] # PHAISTOS DISC SIGN SHIELD
+101DC ; [*0FAE.0020.0002] # PHAISTOS DISC SIGN CLUB
+101DD ; [*0FAF.0020.0002] # PHAISTOS DISC SIGN MANACLES
+101DE ; [*0FB0.0020.0002] # PHAISTOS DISC SIGN MATTOCK
+101DF ; [*0FB1.0020.0002] # PHAISTOS DISC SIGN SAW
+101E0 ; [*0FB2.0020.0002] # PHAISTOS DISC SIGN LID
+101E1 ; [*0FB3.0020.0002] # PHAISTOS DISC SIGN BOOMERANG
+101E2 ; [*0FB4.0020.0002] # PHAISTOS DISC SIGN CARPENTRY PLANE
+101E3 ; [*0FB5.0020.0002] # PHAISTOS DISC SIGN DOLIUM
+101E4 ; [*0FB6.0020.0002] # PHAISTOS DISC SIGN COMB
+101E5 ; [*0FB7.0020.0002] # PHAISTOS DISC SIGN SLING
+101E6 ; [*0FB8.0020.0002] # PHAISTOS DISC SIGN COLUMN
+101E7 ; [*0FB9.0020.0002] # PHAISTOS DISC SIGN BEEHIVE
+101E8 ; [*0FBA.0020.0002] # PHAISTOS DISC SIGN SHIP
+101E9 ; [*0FBB.0020.0002] # PHAISTOS DISC SIGN HORN
+101EA ; [*0FBC.0020.0002] # PHAISTOS DISC SIGN HIDE
+101EB ; [*0FBD.0020.0002] # PHAISTOS DISC SIGN BULLS LEG
+101EC ; [*0FBE.0020.0002] # PHAISTOS DISC SIGN CAT
+101ED ; [*0FBF.0020.0002] # PHAISTOS DISC SIGN RAM
+101EE ; [*0FC0.0020.0002] # PHAISTOS DISC SIGN EAGLE
+101EF ; [*0FC1.0020.0002] # PHAISTOS DISC SIGN DOVE
+101F0 ; [*0FC2.0020.0002] # PHAISTOS DISC SIGN TUNNY
+101F1 ; [*0FC3.0020.0002] # PHAISTOS DISC SIGN BEE
+101F2 ; [*0FC4.0020.0002] # PHAISTOS DISC SIGN PLANE TREE
+101F3 ; [*0FC5.0020.0002] # PHAISTOS DISC SIGN VINE
+101F4 ; [*0FC6.0020.0002] # PHAISTOS DISC SIGN PAPYRUS
+101F5 ; [*0FC7.0020.0002] # PHAISTOS DISC SIGN ROSETTE
+101F6 ; [*0FC8.0020.0002] # PHAISTOS DISC SIGN LILY
+101F7 ; [*0FC9.0020.0002] # PHAISTOS DISC SIGN OX BACK
+101F8 ; [*0FCA.0020.0002] # PHAISTOS DISC SIGN FLUTE
+101F9 ; [*0FCB.0020.0002] # PHAISTOS DISC SIGN GRATER
+101FA ; [*0FCC.0020.0002] # PHAISTOS DISC SIGN STRAINER
+101FB ; [*0FCD.0020.0002] # PHAISTOS DISC SIGN SMALL AXE
+101FC ; [*0FCE.0020.0002] # PHAISTOS DISC SIGN WAVY BAND
102E0 ; [.0000.0000.0000] # COPTIC EPACT THOUSANDS MARK
-102EA ; [*1847.0020.0002] # COPTIC EPACT NUMBER TEN
-102EB ; [*1848.0020.0002] # COPTIC EPACT NUMBER TWENTY
-102EC ; [*1849.0020.0002] # COPTIC EPACT NUMBER THIRTY
-102ED ; [*184A.0020.0002] # COPTIC EPACT NUMBER FORTY
-102EE ; [*184B.0020.0002] # COPTIC EPACT NUMBER FIFTY
-102EF ; [*184C.0020.0002] # COPTIC EPACT NUMBER SIXTY
-102F0 ; [*184D.0020.0002] # COPTIC EPACT NUMBER SEVENTY
-102F1 ; [*184E.0020.0002] # COPTIC EPACT NUMBER EIGHTY
-102F2 ; [*184F.0020.0002] # COPTIC EPACT NUMBER NINETY
-102F3 ; [*1850.0020.0002] # COPTIC EPACT NUMBER ONE HUNDRED
-102F4 ; [*1851.0020.0002] # COPTIC EPACT NUMBER TWO HUNDRED
-102F5 ; [*1852.0020.0002] # COPTIC EPACT NUMBER THREE HUNDRED
-102F6 ; [*1853.0020.0002] # COPTIC EPACT NUMBER FOUR HUNDRED
-102F7 ; [*1854.0020.0002] # COPTIC EPACT NUMBER FIVE HUNDRED
-102F8 ; [*1855.0020.0002] # COPTIC EPACT NUMBER SIX HUNDRED
-102F9 ; [*1856.0020.0002] # COPTIC EPACT NUMBER SEVEN HUNDRED
-102FA ; [*1857.0020.0002] # COPTIC EPACT NUMBER EIGHT HUNDRED
-102FB ; [*1858.0020.0002] # COPTIC EPACT NUMBER NINE HUNDRED
-10322 ; [*17F4.0020.0002] # OLD ITALIC NUMERAL TEN
-10323 ; [*17F5.0020.0002] # OLD ITALIC NUMERAL FIFTY
-1039F ; [*02F0.0020.0002] # UGARITIC WORD DIVIDER
-103D0 ; [*02F1.0020.0002] # OLD PERSIAN WORD DIVIDER
-103D3 ; [*1859.0020.0002] # OLD PERSIAN NUMBER TEN
-103D4 ; [*185A.0020.0002] # OLD PERSIAN NUMBER TWENTY
-103D5 ; [*185B.0020.0002] # OLD PERSIAN NUMBER HUNDRED
-1056F ; [*0414.0020.0002] # CAUCASIAN ALBANIAN CITATION MARK
-10857 ; [*02D0.0020.0002] # IMPERIAL ARAMAIC SECTION SIGN
-1085B ; [*1868.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN
-1085C ; [*1869.0020.0002] # IMPERIAL ARAMAIC NUMBER TWENTY
-1085D ; [*186A.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE HUNDRED
-1085E ; [*186B.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE THOUSAND
-1085F ; [*186C.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10877 ; [*0F85.0020.0002] # PALMYRENE LEFT-POINTING FLEURON
-10878 ; [*0F86.0020.0002] # PALMYRENE RIGHT-POINTING FLEURON
-1087E ; [*185C.0020.0002] # PALMYRENE NUMBER TEN
-1087F ; [*185D.0020.0002] # PALMYRENE NUMBER TWENTY
-108AD ; [*185E.0020.0002] # NABATAEAN NUMBER TEN
-108AE ; [*185F.0020.0002] # NABATAEAN NUMBER TWENTY
-108AF ; [*1860.0020.0002] # NABATAEAN NUMBER ONE HUNDRED
-10917 ; [*1865.0020.0002] # PHOENICIAN NUMBER TEN
-10918 ; [*1866.0020.0002] # PHOENICIAN NUMBER TWENTY
-10919 ; [*1867.0020.0002] # PHOENICIAN NUMBER ONE HUNDRED
-1091F ; [*02F2.0020.0002] # PHOENICIAN WORD SEPARATOR
-1093F ; [*02EC.0020.0002] # LYDIAN TRIANGULAR MARK
-10A44 ; [*1886.0020.0002] # KHAROSHTHI NUMBER TEN
-10A45 ; [*1887.0020.0002] # KHAROSHTHI NUMBER TWENTY
-10A46 ; [*1888.0020.0002] # KHAROSHTHI NUMBER ONE HUNDRED
-10A47 ; [*1889.0020.0002] # KHAROSHTHI NUMBER ONE THOUSAND
-10A50 ; [*041A.0020.0002] # KHAROSHTHI PUNCTUATION DOT
-10A51 ; [*041B.0020.0002] # KHAROSHTHI PUNCTUATION SMALL CIRCLE
-10A52 ; [*041C.0020.0002] # KHAROSHTHI PUNCTUATION CIRCLE
-10A53 ; [*041D.0020.0002] # KHAROSHTHI PUNCTUATION CRESCENT BAR
-10A54 ; [*041E.0020.0002] # KHAROSHTHI PUNCTUATION MANGALAM
-10A55 ; [*041F.0020.0002] # KHAROSHTHI PUNCTUATION LOTUS
-10A56 ; [*02A7.0020.0002] # KHAROSHTHI PUNCTUATION DANDA
-10A57 ; [*02A8.0020.0002] # KHAROSHTHI PUNCTUATION DOUBLE DANDA
-10A58 ; [*0420.0020.0002] # KHAROSHTHI PUNCTUATION LINES
-10A7E ; [*1861.0020.0002] # OLD SOUTH ARABIAN NUMBER FIFTY
-10A7F ; [*1862.0020.0002] # OLD SOUTH ARABIAN NUMERIC INDICATOR
-10A9E ; [*1863.0020.0002] # OLD NORTH ARABIAN NUMBER TEN
-10A9F ; [*1864.0020.0002] # OLD NORTH ARABIAN NUMBER TWENTY
-10AED ; [*186D.0020.0002] # MANICHAEAN NUMBER TEN
-10AEE ; [*186E.0020.0002] # MANICHAEAN NUMBER TWENTY
-10AEF ; [*186F.0020.0002] # MANICHAEAN NUMBER ONE HUNDRED
-10AF0 ; [*0422.0020.0002] # MANICHAEAN PUNCTUATION STAR
-10AF1 ; [*0423.0020.0002] # MANICHAEAN PUNCTUATION FLEURON
-10AF2 ; [*0424.0020.0002] # MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT
-10AF3 ; [*0425.0020.0002] # MANICHAEAN PUNCTUATION DOT WITHIN DOT
-10AF4 ; [*0426.0020.0002] # MANICHAEAN PUNCTUATION DOT
-10AF5 ; [*0427.0020.0002] # MANICHAEAN PUNCTUATION TWO DOTS
-10AF6 ; [*0428.0020.0002] # MANICHAEAN PUNCTUATION LINE FILLER
-10B39 ; [*0421.0020.0002] # AVESTAN ABBREVIATION MARK
-10B3A ; [*02D1.0020.0002] # TINY TWO DOTS OVER ONE DOT PUNCTUATION
-10B3B ; [*02D2.0020.0002] # SMALL TWO DOTS OVER ONE DOT PUNCTUATION
-10B3C ; [*02D3.0020.0002] # LARGE TWO DOTS OVER ONE DOT PUNCTUATION
-10B3D ; [*02D4.0020.0002] # LARGE ONE DOT OVER TWO DOTS PUNCTUATION
-10B3E ; [*02D5.0020.0002] # LARGE TWO RINGS OVER ONE RING PUNCTUATION
-10B3F ; [*02D6.0020.0002] # LARGE ONE RING OVER TWO RINGS PUNCTUATION
-10B5C ; [*1870.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TEN
-10B5D ; [*1871.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWENTY
-10B5E ; [*1872.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
-10B5F ; [*1873.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
-10B7C ; [*1874.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TEN
-10B7D ; [*1875.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWENTY
-10B7E ; [*1876.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
-10B7F ; [*1877.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10B99 ; [*0429.0020.0002] # PSALTER PAHLAVI SECTION MARK
-10B9A ; [*042A.0020.0002] # PSALTER PAHLAVI TURNED SECTION MARK
-10B9B ; [*042B.0020.0002] # PSALTER PAHLAVI FOUR DOTS WITH CROSS
-10B9C ; [*042C.0020.0002] # PSALTER PAHLAVI FOUR DOTS WITH DOT
-10BAD ; [*1878.0020.0002] # PSALTER PAHLAVI NUMBER TEN
-10BAE ; [*1879.0020.0002] # PSALTER PAHLAVI NUMBER TWENTY
-10BAF ; [*187A.0020.0002] # PSALTER PAHLAVI NUMBER ONE HUNDRED
-10E69 ; [*17DD.0020.0002] # RUMI NUMBER TEN
-10E6A ; [*17DE.0020.0002] # RUMI NUMBER TWENTY
-10E6B ; [*17DF.0020.0002] # RUMI NUMBER THIRTY
-10E6C ; [*17E0.0020.0002] # RUMI NUMBER FORTY
-10E6D ; [*17E1.0020.0002] # RUMI NUMBER FIFTY
-10E6E ; [*17E2.0020.0002] # RUMI NUMBER SIXTY
-10E6F ; [*17E3.0020.0002] # RUMI NUMBER SEVENTY
-10E70 ; [*17E4.0020.0002] # RUMI NUMBER EIGHTY
-10E71 ; [*17E5.0020.0002] # RUMI NUMBER NINETY
-10E72 ; [*17E6.0020.0002] # RUMI NUMBER ONE HUNDRED
-10E73 ; [*17E7.0020.0002] # RUMI NUMBER TWO HUNDRED
-10E74 ; [*17E8.0020.0002] # RUMI NUMBER THREE HUNDRED
-10E75 ; [*17E9.0020.0002] # RUMI NUMBER FOUR HUNDRED
-10E76 ; [*17EA.0020.0002] # RUMI NUMBER FIVE HUNDRED
-10E77 ; [*17EB.0020.0002] # RUMI NUMBER SIX HUNDRED
-10E78 ; [*17EC.0020.0002] # RUMI NUMBER SEVEN HUNDRED
-10E79 ; [*17ED.0020.0002] # RUMI NUMBER EIGHT HUNDRED
-10E7A ; [*17EE.0020.0002] # RUMI NUMBER NINE HUNDRED
-10E7B ; [*17EF.0020.0002] # RUMI FRACTION ONE HALF
-10E7C ; [*17F0.0020.0002] # RUMI FRACTION ONE QUARTER
-10E7D ; [*17F1.0020.0002] # RUMI FRACTION ONE THIRD
-10E7E ; [*17F2.0020.0002] # RUMI FRACTION TWO THIRDS
-11047 ; [*02A9.0020.0002] # BRAHMI DANDA
-11048 ; [*02AA.0020.0002] # BRAHMI DOUBLE DANDA
-11049 ; [*0415.0020.0002] # BRAHMI PUNCTUATION DOT
-1104A ; [*0416.0020.0002] # BRAHMI PUNCTUATION DOUBLE DOT
-1104B ; [*0417.0020.0002] # BRAHMI PUNCTUATION LINE
-1104C ; [*0418.0020.0002] # BRAHMI PUNCTUATION CRESCENT BAR
-1104D ; [*0419.0020.0002] # BRAHMI PUNCTUATION LOTUS
-1105B ; [*187B.0020.0002] # BRAHMI NUMBER TEN
-1105C ; [*187C.0020.0002] # BRAHMI NUMBER TWENTY
-1105D ; [*187D.0020.0002] # BRAHMI NUMBER THIRTY
-1105E ; [*187E.0020.0002] # BRAHMI NUMBER FORTY
-1105F ; [*187F.0020.0002] # BRAHMI NUMBER FIFTY
-11060 ; [*1880.0020.0002] # BRAHMI NUMBER SIXTY
-11061 ; [*1881.0020.0002] # BRAHMI NUMBER SEVENTY
-11062 ; [*1882.0020.0002] # BRAHMI NUMBER EIGHTY
-11063 ; [*1883.0020.0002] # BRAHMI NUMBER NINETY
-11064 ; [*1884.0020.0002] # BRAHMI NUMBER ONE HUNDRED
-11065 ; [*1885.0020.0002] # BRAHMI NUMBER ONE THOUSAND
-110BB ; [*042D.0020.0002] # KAITHI ABBREVIATION SIGN
-110BC ; [*042E.0020.0002] # KAITHI ENUMERATION SIGN
+102EA ; [*1B3A.0020.0002] # COPTIC EPACT NUMBER TEN
+102EB ; [*1B3B.0020.0002] # COPTIC EPACT NUMBER TWENTY
+102EC ; [*1B3C.0020.0002] # COPTIC EPACT NUMBER THIRTY
+102ED ; [*1B3D.0020.0002] # COPTIC EPACT NUMBER FORTY
+102EE ; [*1B3E.0020.0002] # COPTIC EPACT NUMBER FIFTY
+102EF ; [*1B3F.0020.0002] # COPTIC EPACT NUMBER SIXTY
+102F0 ; [*1B40.0020.0002] # COPTIC EPACT NUMBER SEVENTY
+102F1 ; [*1B41.0020.0002] # COPTIC EPACT NUMBER EIGHTY
+102F2 ; [*1B42.0020.0002] # COPTIC EPACT NUMBER NINETY
+102F3 ; [*1B43.0020.0002] # COPTIC EPACT NUMBER ONE HUNDRED
+102F4 ; [*1B44.0020.0002] # COPTIC EPACT NUMBER TWO HUNDRED
+102F5 ; [*1B45.0020.0002] # COPTIC EPACT NUMBER THREE HUNDRED
+102F6 ; [*1B46.0020.0002] # COPTIC EPACT NUMBER FOUR HUNDRED
+102F7 ; [*1B47.0020.0002] # COPTIC EPACT NUMBER FIVE HUNDRED
+102F8 ; [*1B48.0020.0002] # COPTIC EPACT NUMBER SIX HUNDRED
+102F9 ; [*1B49.0020.0002] # COPTIC EPACT NUMBER SEVEN HUNDRED
+102FA ; [*1B4A.0020.0002] # COPTIC EPACT NUMBER EIGHT HUNDRED
+102FB ; [*1B4B.0020.0002] # COPTIC EPACT NUMBER NINE HUNDRED
+10322 ; [*1AE3.0020.0002] # OLD ITALIC NUMERAL TEN
+10323 ; [*1AE4.0020.0002] # OLD ITALIC NUMERAL FIFTY
+1039F ; [*02FD.0020.0002] # UGARITIC WORD DIVIDER
+103D0 ; [*02FE.0020.0002] # OLD PERSIAN WORD DIVIDER
+103D3 ; [*1B4C.0020.0002] # OLD PERSIAN NUMBER TEN
+103D4 ; [*1B4D.0020.0002] # OLD PERSIAN NUMBER TWENTY
+103D5 ; [*1B4E.0020.0002] # OLD PERSIAN NUMBER HUNDRED
+1056F ; [*0432.0020.0002] # CAUCASIAN ALBANIAN CITATION MARK
+10857 ; [*02D9.0020.0002] # IMPERIAL ARAMAIC SECTION SIGN
+1085B ; [*1B5E.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN
+1085C ; [*1B5F.0020.0002] # IMPERIAL ARAMAIC NUMBER TWENTY
+1085D ; [*1B60.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE HUNDRED
+1085E ; [*1B61.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE THOUSAND
+1085F ; [*1B62.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10877 ; [*0FCF.0020.0002] # PALMYRENE LEFT-POINTING FLEURON
+10878 ; [*0FD0.0020.0002] # PALMYRENE RIGHT-POINTING FLEURON
+1087E ; [*1B4F.0020.0002] # PALMYRENE NUMBER TEN
+1087F ; [*1B50.0020.0002] # PALMYRENE NUMBER TWENTY
+108AD ; [*1B51.0020.0002] # NABATAEAN NUMBER TEN
+108AE ; [*1B52.0020.0002] # NABATAEAN NUMBER TWENTY
+108AF ; [*1B53.0020.0002] # NABATAEAN NUMBER ONE HUNDRED
+108FD ; [*1B54.0020.0002] # HATRAN NUMBER TEN
+108FE ; [*1B55.0020.0002] # HATRAN NUMBER TWENTY
+108FF ; [*1B56.0020.0002] # HATRAN NUMBER ONE HUNDRED
+10917 ; [*1B5B.0020.0002] # PHOENICIAN NUMBER TEN
+10918 ; [*1B5C.0020.0002] # PHOENICIAN NUMBER TWENTY
+10919 ; [*1B5D.0020.0002] # PHOENICIAN NUMBER ONE HUNDRED
+1091F ; [*02FF.0020.0002] # PHOENICIAN WORD SEPARATOR
+1093F ; [*02F9.0020.0002] # LYDIAN TRIANGULAR MARK
+109BC ; [*1BDD.0020.0002] # MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS
+109BD ; [*1BD2.0020.0002] # MEROITIC CURSIVE FRACTION ONE HALF
+109C9 ; [*1BA7.0020.0002] # MEROITIC CURSIVE NUMBER TEN
+109CA ; [*1BA8.0020.0002] # MEROITIC CURSIVE NUMBER TWENTY
+109CB ; [*1BA9.0020.0002] # MEROITIC CURSIVE NUMBER THIRTY
+109CC ; [*1BAA.0020.0002] # MEROITIC CURSIVE NUMBER FORTY
+109CD ; [*1BAB.0020.0002] # MEROITIC CURSIVE NUMBER FIFTY
+109CE ; [*1BAC.0020.0002] # MEROITIC CURSIVE NUMBER SIXTY
+109CF ; [*1BAD.0020.0002] # MEROITIC CURSIVE NUMBER SEVENTY
+109D2 ; [*1BAE.0020.0002] # MEROITIC CURSIVE NUMBER ONE HUNDRED
+109D3 ; [*1BAF.0020.0002] # MEROITIC CURSIVE NUMBER TWO HUNDRED
+109D4 ; [*1BB0.0020.0002] # MEROITIC CURSIVE NUMBER THREE HUNDRED
+109D5 ; [*1BB1.0020.0002] # MEROITIC CURSIVE NUMBER FOUR HUNDRED
+109D6 ; [*1BB2.0020.0002] # MEROITIC CURSIVE NUMBER FIVE HUNDRED
+109D7 ; [*1BB3.0020.0002] # MEROITIC CURSIVE NUMBER SIX HUNDRED
+109D8 ; [*1BB4.0020.0002] # MEROITIC CURSIVE NUMBER SEVEN HUNDRED
+109D9 ; [*1BB5.0020.0002] # MEROITIC CURSIVE NUMBER EIGHT HUNDRED
+109DA ; [*1BB6.0020.0002] # MEROITIC CURSIVE NUMBER NINE HUNDRED
+109DB ; [*1BB7.0020.0002] # MEROITIC CURSIVE NUMBER ONE THOUSAND
+109DC ; [*1BB8.0020.0002] # MEROITIC CURSIVE NUMBER TWO THOUSAND
+109DD ; [*1BB9.0020.0002] # MEROITIC CURSIVE NUMBER THREE THOUSAND
+109DE ; [*1BBA.0020.0002] # MEROITIC CURSIVE NUMBER FOUR THOUSAND
+109DF ; [*1BBB.0020.0002] # MEROITIC CURSIVE NUMBER FIVE THOUSAND
+109E0 ; [*1BBC.0020.0002] # MEROITIC CURSIVE NUMBER SIX THOUSAND
+109E1 ; [*1BBD.0020.0002] # MEROITIC CURSIVE NUMBER SEVEN THOUSAND
+109E2 ; [*1BBE.0020.0002] # MEROITIC CURSIVE NUMBER EIGHT THOUSAND
+109E3 ; [*1BBF.0020.0002] # MEROITIC CURSIVE NUMBER NINE THOUSAND
+109E4 ; [*1BC0.0020.0002] # MEROITIC CURSIVE NUMBER TEN THOUSAND
+109E5 ; [*1BC1.0020.0002] # MEROITIC CURSIVE NUMBER TWENTY THOUSAND
+109E6 ; [*1BC2.0020.0002] # MEROITIC CURSIVE NUMBER THIRTY THOUSAND
+109E7 ; [*1BC3.0020.0002] # MEROITIC CURSIVE NUMBER FORTY THOUSAND
+109E8 ; [*1BC4.0020.0002] # MEROITIC CURSIVE NUMBER FIFTY THOUSAND
+109E9 ; [*1BC5.0020.0002] # MEROITIC CURSIVE NUMBER SIXTY THOUSAND
+109EA ; [*1BC6.0020.0002] # MEROITIC CURSIVE NUMBER SEVENTY THOUSAND
+109EB ; [*1BC7.0020.0002] # MEROITIC CURSIVE NUMBER EIGHTY THOUSAND
+109EC ; [*1BC8.0020.0002] # MEROITIC CURSIVE NUMBER NINETY THOUSAND
+109ED ; [*1BC9.0020.0002] # MEROITIC CURSIVE NUMBER ONE HUNDRED THOUSAND
+109EE ; [*1BCA.0020.0002] # MEROITIC CURSIVE NUMBER TWO HUNDRED THOUSAND
+109EF ; [*1BCB.0020.0002] # MEROITIC CURSIVE NUMBER THREE HUNDRED THOUSAND
+109F0 ; [*1BCC.0020.0002] # MEROITIC CURSIVE NUMBER FOUR HUNDRED THOUSAND
+109F1 ; [*1BCD.0020.0002] # MEROITIC CURSIVE NUMBER FIVE HUNDRED THOUSAND
+109F2 ; [*1BCE.0020.0002] # MEROITIC CURSIVE NUMBER SIX HUNDRED THOUSAND
+109F3 ; [*1BCF.0020.0002] # MEROITIC CURSIVE NUMBER SEVEN HUNDRED THOUSAND
+109F4 ; [*1BD0.0020.0002] # MEROITIC CURSIVE NUMBER EIGHT HUNDRED THOUSAND
+109F5 ; [*1BD1.0020.0002] # MEROITIC CURSIVE NUMBER NINE HUNDRED THOUSAND
+109F6 ; [*1BD3.0020.0002] # MEROITIC CURSIVE FRACTION ONE TWELFTH
+109F7 ; [*1BD4.0020.0002] # MEROITIC CURSIVE FRACTION TWO TWELFTHS
+109F8 ; [*1BD5.0020.0002] # MEROITIC CURSIVE FRACTION THREE TWELFTHS
+109F9 ; [*1BD6.0020.0002] # MEROITIC CURSIVE FRACTION FOUR TWELFTHS
+109FA ; [*1BD7.0020.0002] # MEROITIC CURSIVE FRACTION FIVE TWELFTHS
+109FB ; [*1BD8.0020.0002] # MEROITIC CURSIVE FRACTION SIX TWELFTHS
+109FC ; [*1BD9.0020.0002] # MEROITIC CURSIVE FRACTION SEVEN TWELFTHS
+109FD ; [*1BDA.0020.0002] # MEROITIC CURSIVE FRACTION EIGHT TWELFTHS
+109FE ; [*1BDB.0020.0002] # MEROITIC CURSIVE FRACTION NINE TWELFTHS
+109FF ; [*1BDC.0020.0002] # MEROITIC CURSIVE FRACTION TEN TWELFTHS
+10A44 ; [*1B7E.0020.0002] # KHAROSHTHI NUMBER TEN
+10A45 ; [*1B7F.0020.0002] # KHAROSHTHI NUMBER TWENTY
+10A46 ; [*1B80.0020.0002] # KHAROSHTHI NUMBER ONE HUNDRED
+10A47 ; [*1B81.0020.0002] # KHAROSHTHI NUMBER ONE THOUSAND
+10A50 ; [*0438.0020.0002] # KHAROSHTHI PUNCTUATION DOT
+10A51 ; [*0439.0020.0002] # KHAROSHTHI PUNCTUATION SMALL CIRCLE
+10A52 ; [*043A.0020.0002] # KHAROSHTHI PUNCTUATION CIRCLE
+10A53 ; [*043B.0020.0002] # KHAROSHTHI PUNCTUATION CRESCENT BAR
+10A54 ; [*043C.0020.0002] # KHAROSHTHI PUNCTUATION MANGALAM
+10A55 ; [*043D.0020.0002] # KHAROSHTHI PUNCTUATION LOTUS
+10A56 ; [*02AA.0020.0002] # KHAROSHTHI PUNCTUATION DANDA
+10A57 ; [*02AB.0020.0002] # KHAROSHTHI PUNCTUATION DOUBLE DANDA
+10A58 ; [*043E.0020.0002] # KHAROSHTHI PUNCTUATION LINES
+10A7E ; [*1B57.0020.0002] # OLD SOUTH ARABIAN NUMBER FIFTY
+10A7F ; [*1B58.0020.0002] # OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A9E ; [*1B59.0020.0002] # OLD NORTH ARABIAN NUMBER TEN
+10A9F ; [*1B5A.0020.0002] # OLD NORTH ARABIAN NUMBER TWENTY
+10AED ; [*1B63.0020.0002] # MANICHAEAN NUMBER TEN
+10AEE ; [*1B64.0020.0002] # MANICHAEAN NUMBER TWENTY
+10AEF ; [*1B65.0020.0002] # MANICHAEAN NUMBER ONE HUNDRED
+10AF0 ; [*0443.0020.0002] # MANICHAEAN PUNCTUATION STAR
+10AF1 ; [*0444.0020.0002] # MANICHAEAN PUNCTUATION FLEURON
+10AF2 ; [*0445.0020.0002] # MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT
+10AF3 ; [*0446.0020.0002] # MANICHAEAN PUNCTUATION DOT WITHIN DOT
+10AF4 ; [*0447.0020.0002] # MANICHAEAN PUNCTUATION DOT
+10AF5 ; [*0448.0020.0002] # MANICHAEAN PUNCTUATION TWO DOTS
+10AF6 ; [*0449.0020.0002] # MANICHAEAN PUNCTUATION LINE FILLER
+10B39 ; [*0442.0020.0002] # AVESTAN ABBREVIATION MARK
+10B3A ; [*02DA.0020.0002] # TINY TWO DOTS OVER ONE DOT PUNCTUATION
+10B3B ; [*02DB.0020.0002] # SMALL TWO DOTS OVER ONE DOT PUNCTUATION
+10B3C ; [*02DC.0020.0002] # LARGE TWO DOTS OVER ONE DOT PUNCTUATION
+10B3D ; [*02DD.0020.0002] # LARGE ONE DOT OVER TWO DOTS PUNCTUATION
+10B3E ; [*02DE.0020.0002] # LARGE TWO RINGS OVER ONE RING PUNCTUATION
+10B3F ; [*02DF.0020.0002] # LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B5C ; [*1B66.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TEN
+10B5D ; [*1B67.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWENTY
+10B5E ; [*1B68.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
+10B5F ; [*1B69.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B7C ; [*1B6A.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TEN
+10B7D ; [*1B6B.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWENTY
+10B7E ; [*1B6C.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
+10B7F ; [*1B6D.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B99 ; [*044A.0020.0002] # PSALTER PAHLAVI SECTION MARK
+10B9A ; [*044B.0020.0002] # PSALTER PAHLAVI TURNED SECTION MARK
+10B9B ; [*044C.0020.0002] # PSALTER PAHLAVI FOUR DOTS WITH CROSS
+10B9C ; [*044D.0020.0002] # PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BAD ; [*1B6E.0020.0002] # PSALTER PAHLAVI NUMBER TEN
+10BAE ; [*1B6F.0020.0002] # PSALTER PAHLAVI NUMBER TWENTY
+10BAF ; [*1B70.0020.0002] # PSALTER PAHLAVI NUMBER ONE HUNDRED
+10CFC ; [*1AE5.0020.0002] # OLD HUNGARIAN NUMBER TEN
+10CFD ; [*1AE6.0020.0002] # OLD HUNGARIAN NUMBER FIFTY
+10CFE ; [*1AE7.0020.0002] # OLD HUNGARIAN NUMBER ONE HUNDRED
+10CFF ; [*1AE8.0020.0002] # OLD HUNGARIAN NUMBER ONE THOUSAND
+10E69 ; [*1ACC.0020.0002] # RUMI NUMBER TEN
+10E6A ; [*1ACD.0020.0002] # RUMI NUMBER TWENTY
+10E6B ; [*1ACE.0020.0002] # RUMI NUMBER THIRTY
+10E6C ; [*1ACF.0020.0002] # RUMI NUMBER FORTY
+10E6D ; [*1AD0.0020.0002] # RUMI NUMBER FIFTY
+10E6E ; [*1AD1.0020.0002] # RUMI NUMBER SIXTY
+10E6F ; [*1AD2.0020.0002] # RUMI NUMBER SEVENTY
+10E70 ; [*1AD3.0020.0002] # RUMI NUMBER EIGHTY
+10E71 ; [*1AD4.0020.0002] # RUMI NUMBER NINETY
+10E72 ; [*1AD5.0020.0002] # RUMI NUMBER ONE HUNDRED
+10E73 ; [*1AD6.0020.0002] # RUMI NUMBER TWO HUNDRED
+10E74 ; [*1AD7.0020.0002] # RUMI NUMBER THREE HUNDRED
+10E75 ; [*1AD8.0020.0002] # RUMI NUMBER FOUR HUNDRED
+10E76 ; [*1AD9.0020.0002] # RUMI NUMBER FIVE HUNDRED
+10E77 ; [*1ADA.0020.0002] # RUMI NUMBER SIX HUNDRED
+10E78 ; [*1ADB.0020.0002] # RUMI NUMBER SEVEN HUNDRED
+10E79 ; [*1ADC.0020.0002] # RUMI NUMBER EIGHT HUNDRED
+10E7A ; [*1ADD.0020.0002] # RUMI NUMBER NINE HUNDRED
+10E7B ; [*1ADE.0020.0002] # RUMI FRACTION ONE HALF
+10E7C ; [*1ADF.0020.0002] # RUMI FRACTION ONE QUARTER
+10E7D ; [*1AE0.0020.0002] # RUMI FRACTION ONE THIRD
+10E7E ; [*1AE1.0020.0002] # RUMI FRACTION TWO THIRDS
+11047 ; [*02AC.0020.0002] # BRAHMI DANDA
+11048 ; [*02AD.0020.0002] # BRAHMI DOUBLE DANDA
+11049 ; [*0433.0020.0002] # BRAHMI PUNCTUATION DOT
+1104A ; [*0434.0020.0002] # BRAHMI PUNCTUATION DOUBLE DOT
+1104B ; [*0435.0020.0002] # BRAHMI PUNCTUATION LINE
+1104C ; [*0436.0020.0002] # BRAHMI PUNCTUATION CRESCENT BAR
+1104D ; [*0437.0020.0002] # BRAHMI PUNCTUATION LOTUS
+1105B ; [*1B73.0020.0002] # BRAHMI NUMBER TEN
+1105C ; [*1B74.0020.0002] # BRAHMI NUMBER TWENTY
+1105D ; [*1B75.0020.0002] # BRAHMI NUMBER THIRTY
+1105E ; [*1B76.0020.0002] # BRAHMI NUMBER FORTY
+1105F ; [*1B77.0020.0002] # BRAHMI NUMBER FIFTY
+11060 ; [*1B78.0020.0002] # BRAHMI NUMBER SIXTY
+11061 ; [*1B79.0020.0002] # BRAHMI NUMBER SEVENTY
+11062 ; [*1B7A.0020.0002] # BRAHMI NUMBER EIGHTY
+11063 ; [*1B7B.0020.0002] # BRAHMI NUMBER NINETY
+11064 ; [*1B7C.0020.0002] # BRAHMI NUMBER ONE HUNDRED
+11065 ; [*1B7D.0020.0002] # BRAHMI NUMBER ONE THOUSAND
+110BB ; [*044E.0020.0002] # KAITHI ABBREVIATION SIGN
+110BC ; [*044F.0020.0002] # KAITHI ENUMERATION SIGN
110BD ; [.0000.0000.0000] # KAITHI NUMBER SIGN
-110BE ; [*02D7.0020.0002] # KAITHI SECTION MARK
-110BF ; [*02D8.0020.0002] # KAITHI DOUBLE SECTION MARK
-110C0 ; [*02AB.0020.0002] # KAITHI DANDA
-110C1 ; [*02AC.0020.0002] # KAITHI DOUBLE DANDA
-11140 ; [*02D9.0020.0002] # CHAKMA SECTION MARK
-11141 ; [*02AD.0020.0002] # CHAKMA DANDA
-11142 ; [*02AE.0020.0002] # CHAKMA DOUBLE DANDA
-11143 ; [*0271.0020.0002] # CHAKMA QUESTION MARK
-11174 ; [*042F.0020.0002] # MAHAJANI ABBREVIATION SIGN
-11175 ; [*0430.0020.0002] # MAHAJANI SECTION MARK
-111C5 ; [*02AF.0020.0002] # SHARADA DANDA
-111C6 ; [*02B0.0020.0002] # SHARADA DOUBLE DANDA
-111C7 ; [*0432.0020.0002] # SHARADA ABBREVIATION SIGN
-111C8 ; [*02DA.0020.0002] # SHARADA SEPARATOR
-111CD ; [*0431.0020.0002] # SHARADA SUTRA MARK
-111EA ; [*188A.0020.0002] # SINHALA ARCHAIC NUMBER TEN
-111EB ; [*188B.0020.0002] # SINHALA ARCHAIC NUMBER TWENTY
-111EC ; [*188C.0020.0002] # SINHALA ARCHAIC NUMBER THIRTY
-111ED ; [*188D.0020.0002] # SINHALA ARCHAIC NUMBER FORTY
-111EE ; [*188E.0020.0002] # SINHALA ARCHAIC NUMBER FIFTY
-111EF ; [*188F.0020.0002] # SINHALA ARCHAIC NUMBER SIXTY
-111F0 ; [*1890.0020.0002] # SINHALA ARCHAIC NUMBER SEVENTY
-111F1 ; [*1891.0020.0002] # SINHALA ARCHAIC NUMBER EIGHTY
-111F2 ; [*1892.0020.0002] # SINHALA ARCHAIC NUMBER NINETY
-111F3 ; [*1893.0020.0002] # SINHALA ARCHAIC NUMBER ONE HUNDRED
-111F4 ; [*1894.0020.0002] # SINHALA ARCHAIC NUMBER ONE THOUSAND
-11238 ; [*02B1.0020.0002] # KHOJKI DANDA
-11239 ; [*02B2.0020.0002] # KHOJKI DOUBLE DANDA
-1123A ; [*0433.0020.0002] # KHOJKI WORD SEPARATOR
-1123B ; [*0434.0020.0002] # KHOJKI SECTION MARK
-1123C ; [*0435.0020.0002] # KHOJKI DOUBLE SECTION MARK
-1123D ; [*0436.0020.0002] # KHOJKI ABBREVIATION SIGN
+110BE ; [*02E0.0020.0002] # KAITHI SECTION MARK
+110BF ; [*02E1.0020.0002] # KAITHI DOUBLE SECTION MARK
+110C0 ; [*02AE.0020.0002] # KAITHI DANDA
+110C1 ; [*02AF.0020.0002] # KAITHI DOUBLE DANDA
+11140 ; [*02E2.0020.0002] # CHAKMA SECTION MARK
+11141 ; [*02B0.0020.0002] # CHAKMA DANDA
+11142 ; [*02B1.0020.0002] # CHAKMA DOUBLE DANDA
+11143 ; [*0273.0020.0002] # CHAKMA QUESTION MARK
+11174 ; [*0450.0020.0002] # MAHAJANI ABBREVIATION SIGN
+11175 ; [*0451.0020.0002] # MAHAJANI SECTION MARK
+111C5 ; [*02B2.0020.0002] # SHARADA DANDA
+111C6 ; [*02B3.0020.0002] # SHARADA DOUBLE DANDA
+111C7 ; [*0453.0020.0002] # SHARADA ABBREVIATION SIGN
+111C8 ; [*02E3.0020.0002] # SHARADA SEPARATOR
+111C9 ; [*0454.0020.0002] # SHARADA SANDHI MARK
+111CD ; [*0452.0020.0002] # SHARADA SUTRA MARK
+111DB ; [*0455.0020.0002] # SHARADA SIGN SIDDHAM
+111DD ; [*0456.0020.0002] # SHARADA CONTINUATION SIGN
+111DE ; [*02E4.0020.0002] # SHARADA SECTION MARK-1
+111DF ; [*02E5.0020.0002] # SHARADA SECTION MARK-2
+111EA ; [*1B8C.0020.0002] # SINHALA ARCHAIC NUMBER TEN
+111EB ; [*1B8D.0020.0002] # SINHALA ARCHAIC NUMBER TWENTY
+111EC ; [*1B8E.0020.0002] # SINHALA ARCHAIC NUMBER THIRTY
+111ED ; [*1B8F.0020.0002] # SINHALA ARCHAIC NUMBER FORTY
+111EE ; [*1B90.0020.0002] # SINHALA ARCHAIC NUMBER FIFTY
+111EF ; [*1B91.0020.0002] # SINHALA ARCHAIC NUMBER SIXTY
+111F0 ; [*1B92.0020.0002] # SINHALA ARCHAIC NUMBER SEVENTY
+111F1 ; [*1B93.0020.0002] # SINHALA ARCHAIC NUMBER EIGHTY
+111F2 ; [*1B94.0020.0002] # SINHALA ARCHAIC NUMBER NINETY
+111F3 ; [*1B95.0020.0002] # SINHALA ARCHAIC NUMBER ONE HUNDRED
+111F4 ; [*1B96.0020.0002] # SINHALA ARCHAIC NUMBER ONE THOUSAND
+11238 ; [*02B4.0020.0002] # KHOJKI DANDA
+11239 ; [*02B5.0020.0002] # KHOJKI DOUBLE DANDA
+1123A ; [*0457.0020.0002] # KHOJKI WORD SEPARATOR
+1123B ; [*0458.0020.0002] # KHOJKI SECTION MARK
+1123C ; [*0459.0020.0002] # KHOJKI DOUBLE SECTION MARK
+1123D ; [*045A.0020.0002] # KHOJKI ABBREVIATION SIGN
+112A9 ; [*02E6.0020.0002] # MULTANI SECTION MARK
11366 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT ZERO
11367 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT ONE
11368 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT TWO
@@ -4506,426 +4617,483 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
11372 ; [.0000.0000.0000] # COMBINING GRANTHA LETTER NA
11373 ; [.0000.0000.0000] # COMBINING GRANTHA LETTER VI
11374 ; [.0000.0000.0000] # COMBINING GRANTHA LETTER PA
-114C6 ; [*0437.0020.0002] # TIRHUTA ABBREVIATION SIGN
-115C1 ; [*0438.0020.0002] # SIDDHAM SIGN SIDDHAM
-115C2 ; [*02B3.0020.0002] # SIDDHAM DANDA
-115C3 ; [*02B4.0020.0002] # SIDDHAM DOUBLE DANDA
-115C4 ; [*0439.0020.0002] # SIDDHAM SEPARATOR DOT
-115C5 ; [*043A.0020.0002] # SIDDHAM SEPARATOR BAR
-115C6 ; [*043B.0020.0002] # SIDDHAM REPETITION MARK-1
-115C7 ; [*043C.0020.0002] # SIDDHAM REPETITION MARK-2
-115C8 ; [*043D.0020.0002] # SIDDHAM REPETITION MARK-3
-115C9 ; [*043E.0020.0002] # SIDDHAM END OF TEXT MARK
-11641 ; [*02B5.0020.0002] # MODI DANDA
-11642 ; [*02B6.0020.0002] # MODI DOUBLE DANDA
-11643 ; [*043F.0020.0002] # MODI ABBREVIATION SIGN
-118EA ; [*1895.0020.0002] # WARANG CITI NUMBER TEN
-118EB ; [*1896.0020.0002] # WARANG CITI NUMBER TWENTY
-118EC ; [*1897.0020.0002] # WARANG CITI NUMBER THIRTY
-118ED ; [*1898.0020.0002] # WARANG CITI NUMBER FORTY
-118EE ; [*1899.0020.0002] # WARANG CITI NUMBER FIFTY
-118EF ; [*189A.0020.0002] # WARANG CITI NUMBER SIXTY
-118F0 ; [*189B.0020.0002] # WARANG CITI NUMBER SEVENTY
-118F1 ; [*189C.0020.0002] # WARANG CITI NUMBER EIGHTY
-118F2 ; [*189D.0020.0002] # WARANG CITI NUMBER NINETY
-12432 ; [*18A5.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
-12433 ; [*18A6.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
-1245A ; [*18A7.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD DISH
-1245B ; [*18A8.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
-1245C ; [*18A9.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
-1245D ; [*18AA.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
-1245E ; [*18AB.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
-1245F ; [*18AC.0020.0002] # CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
-12460 ; [*18AD.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
-12461 ; [*18AE.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
-12462 ; [*18AF.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12463 ; [*18B0.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER GUR
-12464 ; [*18B1.0020.0002] # CUNEIFORM NUMERIC SIGN ONE HALF GUR
-12465 ; [*18B2.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD
-12466 ; [*18B3.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS
-12467 ; [*18B4.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE FORTY
-12468 ; [*18B5.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE FIFTY
-12470 ; [*02F3.0020.0002] # CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
-12471 ; [*02F4.0020.0002] # CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
-12472 ; [*02F5.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
-12473 ; [*02F6.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-12474 ; [*02F7.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
-16A6E ; [*02B7.0020.0002] # MRO DANDA
-16A6F ; [*02B8.0020.0002] # MRO DOUBLE DANDA
-16AF5 ; [*0285.0020.0002] # BASSA VAH FULL STOP
-16B37 ; [*0440.0020.0002] # PAHAWH HMONG SIGN VOS THOM
-16B38 ; [*0441.0020.0002] # PAHAWH HMONG SIGN VOS TSHAB CEEB
-16B39 ; [*0442.0020.0002] # PAHAWH HMONG SIGN CIM CHEEM
-16B3A ; [*0443.0020.0002] # PAHAWH HMONG SIGN VOS THIAB
-16B3B ; [*0444.0020.0002] # PAHAWH HMONG SIGN VOS FEEM
-16B3C ; [*0F87.0020.0002] # PAHAWH HMONG SIGN XYEEM NTXIV
-16B3D ; [*0F88.0020.0002] # PAHAWH HMONG SIGN XYEEM RHO
-16B3E ; [*0F89.0020.0002] # PAHAWH HMONG SIGN XYEEM TOV
-16B3F ; [*0F8A.0020.0002] # PAHAWH HMONG SIGN XYEEM FAIB
-16B44 ; [*0445.0020.0002] # PAHAWH HMONG SIGN XAUS
-16B45 ; [*0F8B.0020.0002] # PAHAWH HMONG SIGN CIM TSOV ROG
-16B5B ; [*189E.0020.0002] # PAHAWH HMONG NUMBER TENS
-16B5C ; [*189F.0020.0002] # PAHAWH HMONG NUMBER HUNDREDS
-16B5D ; [*18A0.0020.0002] # PAHAWH HMONG NUMBER TEN THOUSANDS
-16B5E ; [*18A1.0020.0002] # PAHAWH HMONG NUMBER MILLIONS
-16B5F ; [*18A2.0020.0002] # PAHAWH HMONG NUMBER HUNDRED MILLIONS
-16B60 ; [*18A3.0020.0002] # PAHAWH HMONG NUMBER TEN BILLIONS
-16B61 ; [*18A4.0020.0002] # PAHAWH HMONG NUMBER TRILLIONS
-1BC9C ; [*1171.0020.0002] # DUPLOYAN SIGN O WITH CROSS
-1BC9F ; [*0286.0020.0002] # DUPLOYAN PUNCTUATION CHINOOK FULL STOP
-1D000 ; [*0F8C.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILI
-1D001 ; [*0F8D.0020.0002] # BYZANTINE MUSICAL SYMBOL DASEIA
-1D002 ; [*0F8E.0020.0002] # BYZANTINE MUSICAL SYMBOL PERISPOMENI
-1D003 ; [*0F8F.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
-1D004 ; [*0F90.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
-1D005 ; [*0F91.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
-1D006 ; [*0F92.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
-1D007 ; [*0F93.0020.0002] # BYZANTINE MUSICAL SYMBOL KATHISTI
-1D008 ; [*0F94.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMATIKI
-1D009 ; [*0F95.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI
-1D00A ; [*0F96.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS
-1D00B ; [*0F97.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
-1D00C ; [*0F98.0020.0002] # BYZANTINE MUSICAL SYMBOL KREMASTI
-1D00D ; [*0F99.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
-1D00E ; [*0F9A.0020.0002] # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
-1D00F ; [*0F9B.0020.0002] # BYZANTINE MUSICAL SYMBOL TELEIA
-1D010 ; [*0F9C.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA
-1D011 ; [*0F9D.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS
-1D012 ; [*0F9E.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
-1D013 ; [*0F9F.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNEVMA
-1D014 ; [*0FA0.0020.0002] # BYZANTINE MUSICAL SYMBOL THITA
-1D015 ; [*0FA1.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
-1D016 ; [*0FA2.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
-1D017 ; [*0FA3.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILON
-1D018 ; [*0FA4.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILON
-1D019 ; [*0FA5.0020.0002] # BYZANTINE MUSICAL SYMBOL VATHY
-1D01A ; [*0FA6.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON ARCHAION
-1D01B ; [*0FA7.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
-1D01C ; [*0FA8.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
-1D01D ; [*0FA9.0020.0002] # BYZANTINE MUSICAL SYMBOL SAXIMATA
-1D01E ; [*0FAA.0020.0002] # BYZANTINE MUSICAL SYMBOL PARICHON
-1D01F ; [*0FAB.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
-1D020 ; [*0FAC.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
-1D021 ; [*0FAD.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
-1D022 ; [*0FAE.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
-1D023 ; [*0FAF.0020.0002] # BYZANTINE MUSICAL SYMBOL APOTHEMA
-1D024 ; [*0FB0.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA
-1D025 ; [*0FB1.0020.0002] # BYZANTINE MUSICAL SYMBOL REVMA
-1D026 ; [*0FB2.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
-1D027 ; [*0FB3.0020.0002] # BYZANTINE MUSICAL SYMBOL TINAGMA
-1D028 ; [*0FB4.0020.0002] # BYZANTINE MUSICAL SYMBOL ANATRICHISMA
-1D029 ; [*0FB5.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA
-1D02A ; [*0FB6.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
-1D02B ; [*0FB7.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
-1D02C ; [*0FB8.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
-1D02D ; [*0FB9.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA
-1D02E ; [*0FBA.0020.0002] # BYZANTINE MUSICAL SYMBOL LEMOI
-1D02F ; [*0FBB.0020.0002] # BYZANTINE MUSICAL SYMBOL DYO
-1D030 ; [*0FBC.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIA
-1D031 ; [*0FBD.0020.0002] # BYZANTINE MUSICAL SYMBOL TESSERA
-1D032 ; [*0FBE.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMATA
-1D033 ; [*0FBF.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EXO NEO
-1D034 ; [*0FC0.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
-1D035 ; [*0FC1.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORA
-1D036 ; [*0FC2.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
-1D037 ; [*0FC3.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
-1D038 ; [*0FC4.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON
-1D039 ; [*0FC5.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON
-1D03A ; [*0FC6.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA
-1D03B ; [*0FC7.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
-1D03C ; [*0FC8.0020.0002] # BYZANTINE MUSICAL SYMBOL RAPISMA
-1D03D ; [*0FC9.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
-1D03E ; [*0FCA.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
-1D03F ; [*0FCB.0020.0002] # BYZANTINE MUSICAL SYMBOL ICHADIN
-1D040 ; [*0FCC.0020.0002] # BYZANTINE MUSICAL SYMBOL NANA
-1D041 ; [*0FCD.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASMA
-1D042 ; [*0FCE.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
-1D043 ; [*0FCF.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
-1D044 ; [*0FD0.0020.0002] # BYZANTINE MUSICAL SYMBOL STRAGGISMATA
-1D045 ; [*0FD1.0020.0002] # BYZANTINE MUSICAL SYMBOL GRONTHISMATA
-1D046 ; [*0FD2.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON NEO
-1D047 ; [*0FD3.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON NEO
-1D048 ; [*0FD4.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA NEO
-1D049 ; [*0FD5.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTI
-1D04A ; [*0FD6.0020.0002] # BYZANTINE MUSICAL SYMBOL KOUFISMA
-1D04B ; [*0FD7.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
-1D04C ; [*0FD8.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
-1D04D ; [*0FD9.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON NEO
-1D04E ; [*0FDA.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
-1D04F ; [*0FDB.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
-1D050 ; [*0FDC.0020.0002] # BYZANTINE MUSICAL SYMBOL YPSILI
-1D051 ; [*0FDD.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
-1D052 ; [*0FDE.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
-1D053 ; [*0FDF.0020.0002] # BYZANTINE MUSICAL SYMBOL YPORROI
-1D054 ; [*0FE0.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
-1D055 ; [*0FE1.0020.0002] # BYZANTINE MUSICAL SYMBOL ELAFRON
-1D056 ; [*0FE2.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILI
-1D057 ; [*0FE3.0020.0002] # BYZANTINE MUSICAL SYMBOL MIKRON ISON
-1D058 ; [*0FE4.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA NEO
-1D059 ; [*0FE5.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA NEO
-1D05A ; [*0FE6.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
-1D05B ; [*0FE7.0020.0002] # BYZANTINE MUSICAL SYMBOL OMALON
-1D05C ; [*0FE8.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOMA
-1D05D ; [*0FE9.0020.0002] # BYZANTINE MUSICAL SYMBOL LYGISMA
-1D05E ; [*0FEA.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
-1D05F ; [*0FEB.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
-1D060 ; [*0FEC.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
-1D061 ; [*0FED.0020.0002] # BYZANTINE MUSICAL SYMBOL KYLISMA
-1D062 ; [*0FEE.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
-1D063 ; [*0FEF.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON NEO
-1D064 ; [*0FF0.0020.0002] # BYZANTINE MUSICAL SYMBOL EKSTREPTON
-1D065 ; [*0FF1.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
-1D066 ; [*0FF2.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMA
-1D067 ; [*0FF3.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
-1D068 ; [*0FF4.0020.0002] # BYZANTINE MUSICAL SYMBOL EPEGERMA
-1D069 ; [*0FF5.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA NEO
-1D06A ; [*0FF6.0020.0002] # BYZANTINE MUSICAL SYMBOL XIRON KLASMA
-1D06B ; [*0FF7.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
-1D06C ; [*0FF8.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
-1D06D ; [*0FF9.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
-1D06E ; [*0FFA.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
-1D06F ; [*0FFB.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
-1D070 ; [*0FFC.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
-1D071 ; [*0FFD.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
-1D072 ; [*0FFE.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
-1D073 ; [*0FFF.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
-1D074 ; [*1000.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
-1D075 ; [*1001.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
-1D076 ; [*1002.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
-1D077 ; [*1003.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
-1D078 ; [*1004.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA APLOUN
-1D079 ; [*1005.0020.0002] # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
-1D07A ; [*1006.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVASMA
-1D07B ; [*1007.0020.0002] # BYZANTINE MUSICAL SYMBOL ENDOFONON
-1D07C ; [*1008.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN KATO
-1D07D ; [*1009.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN ANO
-1D07E ; [*100A.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS
-1D07F ; [*100B.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA ANO
-1D080 ; [*100C.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
-1D081 ; [*100D.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
-1D082 ; [*100E.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
-1D083 ; [*100F.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA NEO
-1D084 ; [*1010.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA NEO
-1D085 ; [*1011.0020.0002] # BYZANTINE MUSICAL SYMBOL APLI
-1D086 ; [*1012.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI
-1D087 ; [*1013.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIPLI
-1D088 ; [*1014.0020.0002] # BYZANTINE MUSICAL SYMBOL TETRAPLI
-1D089 ; [*1015.0020.0002] # BYZANTINE MUSICAL SYMBOL KORONIS
-1D08A ; [*1016.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
-1D08B ; [*1017.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
-1D08C ; [*1018.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
-1D08D ; [*1019.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
-1D08E ; [*101A.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
-1D08F ; [*101B.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
-1D090 ; [*101C.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
-1D091 ; [*101D.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
-1D092 ; [*101E.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON
-1D093 ; [*101F.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
-1D094 ; [*1020.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
-1D095 ; [*1021.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
-1D096 ; [*1022.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIGORGON
-1D097 ; [*1023.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGON
-1D098 ; [*1024.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIDIARGON
-1D099 ; [*1025.0020.0002] # BYZANTINE MUSICAL SYMBOL DIARGON
-1D09A ; [*1026.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
-1D09B ; [*1027.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
-1D09C ; [*1028.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGI
-1D09D ; [*1029.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI METRIA
-1D09E ; [*102A.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI MESI
-1D09F ; [*102B.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGI
-1D0A0 ; [*102C.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
-1D0A1 ; [*102D.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
-1D0A2 ; [*102E.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
-1D0A3 ; [*102F.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
-1D0A4 ; [*1030.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
-1D0A5 ; [*1031.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
-1D0A6 ; [*1032.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
-1D0A7 ; [*1033.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
-1D0A8 ; [*1034.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
-1D0A9 ; [*1035.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
-1D0AA ; [*1036.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
-1D0AB ; [*1037.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
-1D0AC ; [*1038.0020.0002] # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
-1D0AD ; [*1039.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
-1D0AE ; [*103A.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
-1D0AF ; [*103B.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
-1D0B0 ; [*103C.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
-1D0B1 ; [*103D.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
-1D0B2 ; [*103E.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
-1D0B3 ; [*103F.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
-1D0B4 ; [*1040.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
-1D0B5 ; [*1041.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
-1D0B6 ; [*1042.0020.0002] # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
-1D0B7 ; [*1043.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFONON
-1D0B8 ; [*1044.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORON
-1D0B9 ; [*1045.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
-1D0BA ; [*1046.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
-1D0BB ; [*1047.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
-1D0BC ; [*1048.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
-1D0BD ; [*1049.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
-1D0BE ; [*104A.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
-1D0BF ; [*104B.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
-1D0C0 ; [*104C.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
-1D0C1 ; [*104D.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
-1D0C2 ; [*104E.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
-1D0C3 ; [*104F.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
-1D0C4 ; [*1050.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
-1D0C5 ; [*1051.0020.0002] # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
-1D0C6 ; [*1052.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
-1D0C7 ; [*1053.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NENANO
-1D0C8 ; [*1054.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
-1D0C9 ; [*1055.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA KLITON
-1D0CA ; [*1056.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA SPATHI
-1D0CB ; [*1057.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
-1D0CC ; [*1058.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
-1D0CD ; [*1059.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
-1D0CE ; [*105A.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
-1D0CF ; [*105B.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
-1D0D0 ; [*105C.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
-1D0D1 ; [*105D.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D2 ; [*105E.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
-1D0D3 ; [*105F.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
-1D0D4 ; [*1060.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
-1D0D5 ; [*1061.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D6 ; [*1062.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
-1D0D7 ; [*1063.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
-1D0D8 ; [*1064.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
-1D0D9 ; [*1065.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
-1D0DA ; [*1066.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
-1D0DB ; [*1067.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
-1D0DC ; [*1068.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
-1D0DD ; [*1069.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
-1D0DE ; [*106A.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
-1D0DF ; [*106B.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
-1D0E0 ; [*106C.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
-1D0E1 ; [*106D.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
-1D0E2 ; [*106E.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
-1D0E3 ; [*106F.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
-1D0E4 ; [*1070.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
-1D0E5 ; [*1071.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
-1D0E6 ; [*1072.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
-1D0E7 ; [*1073.0020.0002] # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
-1D0E8 ; [*1074.0020.0002] # BYZANTINE MUSICAL SYMBOL STIGMA
-1D0E9 ; [*1075.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO PA
-1D0EA ; [*1076.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
-1D0EB ; [*1077.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO GA
-1D0EC ; [*1078.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO DI
-1D0ED ; [*1079.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO KE
-1D0EE ; [*107A.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
-1D0EF ; [*107B.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO NI
-1D0F0 ; [*107C.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
-1D0F1 ; [*107D.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
-1D0F2 ; [*107E.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
-1D0F3 ; [*107F.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
-1D0F4 ; [*1080.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA KATO
-1D0F5 ; [*1081.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100 ; [*1082.0020.0002] # MUSICAL SYMBOL SINGLE BARLINE
-1D101 ; [*1083.0020.0002] # MUSICAL SYMBOL DOUBLE BARLINE
-1D102 ; [*1084.0020.0002] # MUSICAL SYMBOL FINAL BARLINE
-1D103 ; [*1085.0020.0002] # MUSICAL SYMBOL REVERSE FINAL BARLINE
-1D104 ; [*1086.0020.0002] # MUSICAL SYMBOL DASHED BARLINE
-1D105 ; [*1087.0020.0002] # MUSICAL SYMBOL SHORT BARLINE
-1D106 ; [*1088.0020.0002] # MUSICAL SYMBOL LEFT REPEAT SIGN
-1D107 ; [*1089.0020.0002] # MUSICAL SYMBOL RIGHT REPEAT SIGN
-1D108 ; [*108A.0020.0002] # MUSICAL SYMBOL REPEAT DOTS
-1D109 ; [*108B.0020.0002] # MUSICAL SYMBOL DAL SEGNO
-1D10A ; [*108C.0020.0002] # MUSICAL SYMBOL DA CAPO
-1D10B ; [*108D.0020.0002] # MUSICAL SYMBOL SEGNO
-1D10C ; [*108E.0020.0002] # MUSICAL SYMBOL CODA
-1D10D ; [*108F.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-1
-1D10E ; [*1090.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-2
-1D10F ; [*1091.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-3
-1D110 ; [*1092.0020.0002] # MUSICAL SYMBOL FERMATA
-1D111 ; [*1093.0020.0002] # MUSICAL SYMBOL FERMATA BELOW
-1D112 ; [*1094.0020.0002] # MUSICAL SYMBOL BREATH MARK
-1D113 ; [*1095.0020.0002] # MUSICAL SYMBOL CAESURA
-1D114 ; [*1096.0020.0002] # MUSICAL SYMBOL BRACE
-1D115 ; [*1097.0020.0002] # MUSICAL SYMBOL BRACKET
-1D116 ; [*1098.0020.0002] # MUSICAL SYMBOL ONE-LINE STAFF
-1D117 ; [*1099.0020.0002] # MUSICAL SYMBOL TWO-LINE STAFF
-1D118 ; [*109A.0020.0002] # MUSICAL SYMBOL THREE-LINE STAFF
-1D119 ; [*109B.0020.0002] # MUSICAL SYMBOL FOUR-LINE STAFF
-1D11A ; [*109C.0020.0002] # MUSICAL SYMBOL FIVE-LINE STAFF
-1D11B ; [*109D.0020.0002] # MUSICAL SYMBOL SIX-LINE STAFF
-1D11C ; [*109E.0020.0002] # MUSICAL SYMBOL SIX-STRING FRETBOARD
-1D11D ; [*109F.0020.0002] # MUSICAL SYMBOL FOUR-STRING FRETBOARD
-1D11E ; [*10A0.0020.0002] # MUSICAL SYMBOL G CLEF
-1D11F ; [*10A1.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA ALTA
-1D120 ; [*10A2.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA BASSA
-1D121 ; [*10A3.0020.0002] # MUSICAL SYMBOL C CLEF
-1D122 ; [*10A4.0020.0002] # MUSICAL SYMBOL F CLEF
-1D123 ; [*10A5.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA ALTA
-1D124 ; [*10A6.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA BASSA
-1D125 ; [*10A7.0020.0002] # MUSICAL SYMBOL DRUM CLEF-1
-1D126 ; [*10A8.0020.0002] # MUSICAL SYMBOL DRUM CLEF-2
-1D129 ; [*10BC.0020.0002] # MUSICAL SYMBOL MULTIPLE MEASURE REST
-1D12A ; [*10AC.0020.0002] # MUSICAL SYMBOL DOUBLE SHARP
-1D12B ; [*10AD.0020.0002] # MUSICAL SYMBOL DOUBLE FLAT
-1D12C ; [*10AE.0020.0002] # MUSICAL SYMBOL FLAT UP
-1D12D ; [*10AF.0020.0002] # MUSICAL SYMBOL FLAT DOWN
-1D12E ; [*10B0.0020.0002] # MUSICAL SYMBOL NATURAL UP
-1D12F ; [*10B1.0020.0002] # MUSICAL SYMBOL NATURAL DOWN
-1D130 ; [*10B2.0020.0002] # MUSICAL SYMBOL SHARP UP
-1D131 ; [*10B3.0020.0002] # MUSICAL SYMBOL SHARP DOWN
-1D132 ; [*10B4.0020.0002] # MUSICAL SYMBOL QUARTER TONE SHARP
-1D133 ; [*10B5.0020.0002] # MUSICAL SYMBOL QUARTER TONE FLAT
-1D134 ; [*10B6.0020.0002] # MUSICAL SYMBOL COMMON TIME
-1D135 ; [*10B7.0020.0002] # MUSICAL SYMBOL CUT TIME
-1D136 ; [*10B8.0020.0002] # MUSICAL SYMBOL OTTAVA ALTA
-1D137 ; [*10B9.0020.0002] # MUSICAL SYMBOL OTTAVA BASSA
-1D138 ; [*10BA.0020.0002] # MUSICAL SYMBOL QUINDICESIMA ALTA
-1D139 ; [*10BB.0020.0002] # MUSICAL SYMBOL QUINDICESIMA BASSA
-1D13A ; [*10BD.0020.0002] # MUSICAL SYMBOL MULTI REST
-1D13B ; [*10BE.0020.0002] # MUSICAL SYMBOL WHOLE REST
-1D13C ; [*10BF.0020.0002] # MUSICAL SYMBOL HALF REST
-1D13D ; [*10C0.0020.0002] # MUSICAL SYMBOL QUARTER REST
-1D13E ; [*10C1.0020.0002] # MUSICAL SYMBOL EIGHTH REST
-1D13F ; [*10C2.0020.0002] # MUSICAL SYMBOL SIXTEENTH REST
-1D140 ; [*10C3.0020.0002] # MUSICAL SYMBOL THIRTY-SECOND REST
-1D141 ; [*10C4.0020.0002] # MUSICAL SYMBOL SIXTY-FOURTH REST
-1D142 ; [*10C5.0020.0002] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
-1D143 ; [*10C6.0020.0002] # MUSICAL SYMBOL X NOTEHEAD
-1D144 ; [*10C7.0020.0002] # MUSICAL SYMBOL PLUS NOTEHEAD
-1D145 ; [*10C8.0020.0002] # MUSICAL SYMBOL CIRCLE X NOTEHEAD
-1D146 ; [*10C9.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
-1D147 ; [*10CA.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
-1D148 ; [*10CB.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
-1D149 ; [*10CC.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
-1D14A ; [*10CD.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
-1D14B ; [*10CE.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
-1D14C ; [*10CF.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
-1D14D ; [*10D0.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
-1D14E ; [*10D1.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
-1D14F ; [*10D2.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
-1D150 ; [*10D3.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
-1D151 ; [*10D4.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
-1D152 ; [*10D5.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD WHITE
-1D153 ; [*10D6.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD BLACK
-1D154 ; [*10D7.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
-1D155 ; [*10D8.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
-1D156 ; [*10D9.0020.0002] # MUSICAL SYMBOL PARENTHESIS NOTEHEAD
-1D157 ; [*10DA.0020.0002] # MUSICAL SYMBOL VOID NOTEHEAD
-1D158 ; [*10DB.0020.0002] # MUSICAL SYMBOL NOTEHEAD BLACK
-1D159 ; [*10DC.0020.0002] # MUSICAL SYMBOL NULL NOTEHEAD
-1D15A ; [*10DD.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
-1D15B ; [*10DE.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
-1D15C ; [*10DF.0020.0002] # MUSICAL SYMBOL BREVE
-1D15D ; [*10E0.0020.0002] # MUSICAL SYMBOL WHOLE NOTE
-1D15E ; [*10DA.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL HALF NOTE
-1D15F ; [*10DB.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL QUARTER NOTE
-1D160 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL EIGHTH NOTE
-1D161 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTEENTH NOTE
-1D162 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL THIRTY-SECOND NOTE
-1D163 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTY-FOURTH NOTE
-1D164 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1144B ; [*02B6.0020.0002] # NEWA DANDA
+1144C ; [*02B7.0020.0002] # NEWA DOUBLE DANDA
+1144D ; [*045B.0020.0002] # NEWA COMMA
+1144E ; [*045C.0020.0002] # NEWA GAP FILLER
+1144F ; [*045D.0020.0002] # NEWA ABBREVIATION SIGN
+1145B ; [*045E.0020.0002] # NEWA PLACEHOLDER MARK
+1145D ; [*045F.0020.0002] # NEWA INSERTION SIGN
+114C6 ; [*0460.0020.0002] # TIRHUTA ABBREVIATION SIGN
+115C1 ; [*0461.0020.0002] # SIDDHAM SIGN SIDDHAM
+115C2 ; [*02B8.0020.0002] # SIDDHAM DANDA
+115C3 ; [*02B9.0020.0002] # SIDDHAM DOUBLE DANDA
+115C4 ; [*0462.0020.0002] # SIDDHAM SEPARATOR DOT
+115C5 ; [*0463.0020.0002] # SIDDHAM SEPARATOR BAR
+115C6 ; [*0464.0020.0002] # SIDDHAM REPETITION MARK-1
+115C7 ; [*0465.0020.0002] # SIDDHAM REPETITION MARK-2
+115C8 ; [*0466.0020.0002] # SIDDHAM REPETITION MARK-3
+115C9 ; [*0467.0020.0002] # SIDDHAM END OF TEXT MARK
+115CA ; [*0468.0020.0002] # SIDDHAM SECTION MARK WITH TRIDENT AND U-SHAPED ORNAMENTS
+115CB ; [*0469.0020.0002] # SIDDHAM SECTION MARK WITH TRIDENT AND DOTTED CRESCENTS
+115CC ; [*046A.0020.0002] # SIDDHAM SECTION MARK WITH RAYS AND DOTTED CRESCENTS
+115CD ; [*046B.0020.0002] # SIDDHAM SECTION MARK WITH RAYS AND DOTTED DOUBLE CRESCENTS
+115CE ; [*046C.0020.0002] # SIDDHAM SECTION MARK WITH RAYS AND DOTTED TRIPLE CRESCENTS
+115CF ; [*046D.0020.0002] # SIDDHAM SECTION MARK DOUBLE RING
+115D0 ; [*046E.0020.0002] # SIDDHAM SECTION MARK DOUBLE RING WITH RAYS
+115D1 ; [*046F.0020.0002] # SIDDHAM SECTION MARK WITH DOUBLE CRESCENTS
+115D2 ; [*0470.0020.0002] # SIDDHAM SECTION MARK WITH TRIPLE CRESCENTS
+115D3 ; [*0471.0020.0002] # SIDDHAM SECTION MARK WITH QUADRUPLE CRESCENTS
+115D4 ; [*0472.0020.0002] # SIDDHAM SECTION MARK WITH SEPTUPLE CRESCENTS
+115D5 ; [*0473.0020.0002] # SIDDHAM SECTION MARK WITH CIRCLES AND RAYS
+115D6 ; [*0474.0020.0002] # SIDDHAM SECTION MARK WITH CIRCLES AND TWO ENCLOSURES
+115D7 ; [*0475.0020.0002] # SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
+11641 ; [*02BA.0020.0002] # MODI DANDA
+11642 ; [*02BB.0020.0002] # MODI DOUBLE DANDA
+11643 ; [*0476.0020.0002] # MODI ABBREVIATION SIGN
+11660 ; [*03DA.0020.0002] # MONGOLIAN BIRGA WITH ORNAMENT
+11661 ; [*03DB.0020.0002] # MONGOLIAN ROTATED BIRGA
+11662 ; [*03DC.0020.0002] # MONGOLIAN DOUBLE BIRGA WITH ORNAMENT
+11663 ; [*03DD.0020.0002] # MONGOLIAN TRIPLE BIRGA WITH ORNAMENT
+11664 ; [*03DE.0020.0002] # MONGOLIAN BIRGA WITH DOUBLE ORNAMENT
+11665 ; [*03DF.0020.0002] # MONGOLIAN ROTATED BIRGA WITH ORNAMENT
+11666 ; [*03E0.0020.0002] # MONGOLIAN ROTATED BIRGA WITH DOUBLE ORNAMENT
+11667 ; [*03E1.0020.0002] # MONGOLIAN INVERTED BIRGA
+11668 ; [*03E2.0020.0002] # MONGOLIAN INVERTED BIRGA WITH DOUBLE ORNAMENT
+11669 ; [*03E3.0020.0002] # MONGOLIAN SWIRL BIRGA
+1166A ; [*03E4.0020.0002] # MONGOLIAN SWIRL BIRGA WITH ORNAMENT
+1166B ; [*03E5.0020.0002] # MONGOLIAN SWIRL BIRGA WITH DOUBLE ORNAMENT
+1166C ; [*03E6.0020.0002] # MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
+1173A ; [*1B71.0020.0002] # AHOM NUMBER TEN
+1173B ; [*1B72.0020.0002] # AHOM NUMBER TWENTY
+1173C ; [*02BC.0020.0002] # AHOM SIGN SMALL SECTION
+1173D ; [*02BD.0020.0002] # AHOM SIGN SECTION
+1173E ; [*02E7.0020.0002] # AHOM SIGN RULAI
+1173F ; [*0550.0020.0002] # AHOM SYMBOL VI
+118EA ; [*1B97.0020.0002] # WARANG CITI NUMBER TEN
+118EB ; [*1B98.0020.0002] # WARANG CITI NUMBER TWENTY
+118EC ; [*1B99.0020.0002] # WARANG CITI NUMBER THIRTY
+118ED ; [*1B9A.0020.0002] # WARANG CITI NUMBER FORTY
+118EE ; [*1B9B.0020.0002] # WARANG CITI NUMBER FIFTY
+118EF ; [*1B9C.0020.0002] # WARANG CITI NUMBER SIXTY
+118F0 ; [*1B9D.0020.0002] # WARANG CITI NUMBER SEVENTY
+118F1 ; [*1B9E.0020.0002] # WARANG CITI NUMBER EIGHTY
+118F2 ; [*1B9F.0020.0002] # WARANG CITI NUMBER NINETY
+11C41 ; [*02BE.0020.0002] # BHAIKSUKI DANDA
+11C42 ; [*02BF.0020.0002] # BHAIKSUKI DOUBLE DANDA
+11C43 ; [*043F.0020.0002] # BHAIKSUKI WORD SEPARATOR
+11C44 ; [*0440.0020.0002] # BHAIKSUKI GAP FILLER-1
+11C45 ; [*0441.0020.0002] # BHAIKSUKI GAP FILLER-2
+11C63 ; [*1B82.0020.0002] # BHAIKSUKI NUMBER TEN
+11C64 ; [*1B83.0020.0002] # BHAIKSUKI NUMBER TWENTY
+11C65 ; [*1B84.0020.0002] # BHAIKSUKI NUMBER THIRTY
+11C66 ; [*1B85.0020.0002] # BHAIKSUKI NUMBER FORTY
+11C67 ; [*1B86.0020.0002] # BHAIKSUKI NUMBER FIFTY
+11C68 ; [*1B87.0020.0002] # BHAIKSUKI NUMBER SIXTY
+11C69 ; [*1B88.0020.0002] # BHAIKSUKI NUMBER SEVENTY
+11C6A ; [*1B89.0020.0002] # BHAIKSUKI NUMBER EIGHTY
+11C6B ; [*1B8A.0020.0002] # BHAIKSUKI NUMBER NINETY
+11C6C ; [*1B8B.0020.0002] # BHAIKSUKI HUNDREDS UNIT MARK
+11C70 ; [*0409.0020.0002] # MARCHEN HEAD MARK
+11C71 ; [*040A.0020.0002] # MARCHEN MARK SHAD
+12432 ; [*1BDE.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
+12433 ; [*1BDF.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
+1245A ; [*1BE0.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD DISH
+1245B ; [*1BE1.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
+1245C ; [*1BE2.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
+1245D ; [*1BE3.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
+1245E ; [*1BE4.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
+1245F ; [*1BE5.0020.0002] # CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
+12460 ; [*1BE6.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
+12461 ; [*1BE7.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
+12462 ; [*1BE8.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12463 ; [*1BE9.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER GUR
+12464 ; [*1BEA.0020.0002] # CUNEIFORM NUMERIC SIGN ONE HALF GUR
+12465 ; [*1BEB.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD
+12466 ; [*1BEC.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS
+12467 ; [*1BED.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE FORTY
+12468 ; [*1BEE.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE FIFTY
+12470 ; [*0300.0020.0002] # CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
+12471 ; [*0301.0020.0002] # CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
+12472 ; [*0302.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
+12473 ; [*0303.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+12474 ; [*0304.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+16A6E ; [*02C0.0020.0002] # MRO DANDA
+16A6F ; [*02C1.0020.0002] # MRO DOUBLE DANDA
+16AF5 ; [*0288.0020.0002] # BASSA VAH FULL STOP
+16B37 ; [*0477.0020.0002] # PAHAWH HMONG SIGN VOS THOM
+16B38 ; [*0478.0020.0002] # PAHAWH HMONG SIGN VOS TSHAB CEEB
+16B39 ; [*0479.0020.0002] # PAHAWH HMONG SIGN CIM CHEEM
+16B3A ; [*047A.0020.0002] # PAHAWH HMONG SIGN VOS THIAB
+16B3B ; [*047B.0020.0002] # PAHAWH HMONG SIGN VOS FEEM
+16B3C ; [*0FD1.0020.0002] # PAHAWH HMONG SIGN XYEEM NTXIV
+16B3D ; [*0FD2.0020.0002] # PAHAWH HMONG SIGN XYEEM RHO
+16B3E ; [*0FD3.0020.0002] # PAHAWH HMONG SIGN XYEEM TOV
+16B3F ; [*0FD4.0020.0002] # PAHAWH HMONG SIGN XYEEM FAIB
+16B44 ; [*047C.0020.0002] # PAHAWH HMONG SIGN XAUS
+16B45 ; [*0FD5.0020.0002] # PAHAWH HMONG SIGN CIM TSOV ROG
+16B5B ; [*1BA0.0020.0002] # PAHAWH HMONG NUMBER TENS
+16B5C ; [*1BA1.0020.0002] # PAHAWH HMONG NUMBER HUNDREDS
+16B5D ; [*1BA2.0020.0002] # PAHAWH HMONG NUMBER TEN THOUSANDS
+16B5E ; [*1BA3.0020.0002] # PAHAWH HMONG NUMBER MILLIONS
+16B5F ; [*1BA4.0020.0002] # PAHAWH HMONG NUMBER HUNDRED MILLIONS
+16B60 ; [*1BA5.0020.0002] # PAHAWH HMONG NUMBER TEN BILLIONS
+16B61 ; [*1BA6.0020.0002] # PAHAWH HMONG NUMBER TRILLIONS
+1BC9C ; [*11C6.0020.0002] # DUPLOYAN SIGN O WITH CROSS
+1BC9F ; [*0289.0020.0002] # DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1D000 ; [*0FD6.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILI
+1D001 ; [*0FD7.0020.0002] # BYZANTINE MUSICAL SYMBOL DASEIA
+1D002 ; [*0FD8.0020.0002] # BYZANTINE MUSICAL SYMBOL PERISPOMENI
+1D003 ; [*0FD9.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
+1D004 ; [*0FDA.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
+1D005 ; [*0FDB.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
+1D006 ; [*0FDC.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
+1D007 ; [*0FDD.0020.0002] # BYZANTINE MUSICAL SYMBOL KATHISTI
+1D008 ; [*0FDE.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMATIKI
+1D009 ; [*0FDF.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI
+1D00A ; [*0FE0.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS
+1D00B ; [*0FE1.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
+1D00C ; [*0FE2.0020.0002] # BYZANTINE MUSICAL SYMBOL KREMASTI
+1D00D ; [*0FE3.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
+1D00E ; [*0FE4.0020.0002] # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
+1D00F ; [*0FE5.0020.0002] # BYZANTINE MUSICAL SYMBOL TELEIA
+1D010 ; [*0FE6.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA
+1D011 ; [*0FE7.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS
+1D012 ; [*0FE8.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
+1D013 ; [*0FE9.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNEVMA
+1D014 ; [*0FEA.0020.0002] # BYZANTINE MUSICAL SYMBOL THITA
+1D015 ; [*0FEB.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
+1D016 ; [*0FEC.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
+1D017 ; [*0FED.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILON
+1D018 ; [*0FEE.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILON
+1D019 ; [*0FEF.0020.0002] # BYZANTINE MUSICAL SYMBOL VATHY
+1D01A ; [*0FF0.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON ARCHAION
+1D01B ; [*0FF1.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
+1D01C ; [*0FF2.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
+1D01D ; [*0FF3.0020.0002] # BYZANTINE MUSICAL SYMBOL SAXIMATA
+1D01E ; [*0FF4.0020.0002] # BYZANTINE MUSICAL SYMBOL PARICHON
+1D01F ; [*0FF5.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
+1D020 ; [*0FF6.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
+1D021 ; [*0FF7.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
+1D022 ; [*0FF8.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
+1D023 ; [*0FF9.0020.0002] # BYZANTINE MUSICAL SYMBOL APOTHEMA
+1D024 ; [*0FFA.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA
+1D025 ; [*0FFB.0020.0002] # BYZANTINE MUSICAL SYMBOL REVMA
+1D026 ; [*0FFC.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
+1D027 ; [*0FFD.0020.0002] # BYZANTINE MUSICAL SYMBOL TINAGMA
+1D028 ; [*0FFE.0020.0002] # BYZANTINE MUSICAL SYMBOL ANATRICHISMA
+1D029 ; [*0FFF.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA
+1D02A ; [*1000.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
+1D02B ; [*1001.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
+1D02C ; [*1002.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
+1D02D ; [*1003.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA
+1D02E ; [*1004.0020.0002] # BYZANTINE MUSICAL SYMBOL LEMOI
+1D02F ; [*1005.0020.0002] # BYZANTINE MUSICAL SYMBOL DYO
+1D030 ; [*1006.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIA
+1D031 ; [*1007.0020.0002] # BYZANTINE MUSICAL SYMBOL TESSERA
+1D032 ; [*1008.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMATA
+1D033 ; [*1009.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EXO NEO
+1D034 ; [*100A.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
+1D035 ; [*100B.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORA
+1D036 ; [*100C.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
+1D037 ; [*100D.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
+1D038 ; [*100E.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON
+1D039 ; [*100F.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON
+1D03A ; [*1010.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA
+1D03B ; [*1011.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
+1D03C ; [*1012.0020.0002] # BYZANTINE MUSICAL SYMBOL RAPISMA
+1D03D ; [*1013.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
+1D03E ; [*1014.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
+1D03F ; [*1015.0020.0002] # BYZANTINE MUSICAL SYMBOL ICHADIN
+1D040 ; [*1016.0020.0002] # BYZANTINE MUSICAL SYMBOL NANA
+1D041 ; [*1017.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASMA
+1D042 ; [*1018.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
+1D043 ; [*1019.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
+1D044 ; [*101A.0020.0002] # BYZANTINE MUSICAL SYMBOL STRAGGISMATA
+1D045 ; [*101B.0020.0002] # BYZANTINE MUSICAL SYMBOL GRONTHISMATA
+1D046 ; [*101C.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON NEO
+1D047 ; [*101D.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON NEO
+1D048 ; [*101E.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA NEO
+1D049 ; [*101F.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTI
+1D04A ; [*1020.0020.0002] # BYZANTINE MUSICAL SYMBOL KOUFISMA
+1D04B ; [*1021.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
+1D04C ; [*1022.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
+1D04D ; [*1023.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON NEO
+1D04E ; [*1024.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
+1D04F ; [*1025.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
+1D050 ; [*1026.0020.0002] # BYZANTINE MUSICAL SYMBOL YPSILI
+1D051 ; [*1027.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
+1D052 ; [*1028.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
+1D053 ; [*1029.0020.0002] # BYZANTINE MUSICAL SYMBOL YPORROI
+1D054 ; [*102A.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
+1D055 ; [*102B.0020.0002] # BYZANTINE MUSICAL SYMBOL ELAFRON
+1D056 ; [*102C.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILI
+1D057 ; [*102D.0020.0002] # BYZANTINE MUSICAL SYMBOL MIKRON ISON
+1D058 ; [*102E.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA NEO
+1D059 ; [*102F.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA NEO
+1D05A ; [*1030.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
+1D05B ; [*1031.0020.0002] # BYZANTINE MUSICAL SYMBOL OMALON
+1D05C ; [*1032.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOMA
+1D05D ; [*1033.0020.0002] # BYZANTINE MUSICAL SYMBOL LYGISMA
+1D05E ; [*1034.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
+1D05F ; [*1035.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
+1D060 ; [*1036.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
+1D061 ; [*1037.0020.0002] # BYZANTINE MUSICAL SYMBOL KYLISMA
+1D062 ; [*1038.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
+1D063 ; [*1039.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON NEO
+1D064 ; [*103A.0020.0002] # BYZANTINE MUSICAL SYMBOL EKSTREPTON
+1D065 ; [*103B.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
+1D066 ; [*103C.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMA
+1D067 ; [*103D.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
+1D068 ; [*103E.0020.0002] # BYZANTINE MUSICAL SYMBOL EPEGERMA
+1D069 ; [*103F.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA NEO
+1D06A ; [*1040.0020.0002] # BYZANTINE MUSICAL SYMBOL XIRON KLASMA
+1D06B ; [*1041.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
+1D06C ; [*1042.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
+1D06D ; [*1043.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
+1D06E ; [*1044.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
+1D06F ; [*1045.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
+1D070 ; [*1046.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
+1D071 ; [*1047.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
+1D072 ; [*1048.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
+1D073 ; [*1049.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
+1D074 ; [*104A.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
+1D075 ; [*104B.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
+1D076 ; [*104C.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
+1D077 ; [*104D.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
+1D078 ; [*104E.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA APLOUN
+1D079 ; [*104F.0020.0002] # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
+1D07A ; [*1050.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVASMA
+1D07B ; [*1051.0020.0002] # BYZANTINE MUSICAL SYMBOL ENDOFONON
+1D07C ; [*1052.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN KATO
+1D07D ; [*1053.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN ANO
+1D07E ; [*1054.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS
+1D07F ; [*1055.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA ANO
+1D080 ; [*1056.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
+1D081 ; [*1057.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
+1D082 ; [*1058.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
+1D083 ; [*1059.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA NEO
+1D084 ; [*105A.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA NEO
+1D085 ; [*105B.0020.0002] # BYZANTINE MUSICAL SYMBOL APLI
+1D086 ; [*105C.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI
+1D087 ; [*105D.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIPLI
+1D088 ; [*105E.0020.0002] # BYZANTINE MUSICAL SYMBOL TETRAPLI
+1D089 ; [*105F.0020.0002] # BYZANTINE MUSICAL SYMBOL KORONIS
+1D08A ; [*1060.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
+1D08B ; [*1061.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
+1D08C ; [*1062.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
+1D08D ; [*1063.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
+1D08E ; [*1064.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
+1D08F ; [*1065.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
+1D090 ; [*1066.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
+1D091 ; [*1067.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
+1D092 ; [*1068.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON
+1D093 ; [*1069.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
+1D094 ; [*106A.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
+1D095 ; [*106B.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
+1D096 ; [*106C.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIGORGON
+1D097 ; [*106D.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGON
+1D098 ; [*106E.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIDIARGON
+1D099 ; [*106F.0020.0002] # BYZANTINE MUSICAL SYMBOL DIARGON
+1D09A ; [*1070.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
+1D09B ; [*1071.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
+1D09C ; [*1072.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGI
+1D09D ; [*1073.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI METRIA
+1D09E ; [*1074.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI MESI
+1D09F ; [*1075.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGI
+1D0A0 ; [*1076.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
+1D0A1 ; [*1077.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
+1D0A2 ; [*1078.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
+1D0A3 ; [*1079.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
+1D0A4 ; [*107A.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
+1D0A5 ; [*107B.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
+1D0A6 ; [*107C.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
+1D0A7 ; [*107D.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
+1D0A8 ; [*107E.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
+1D0A9 ; [*107F.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
+1D0AA ; [*1080.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
+1D0AB ; [*1081.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
+1D0AC ; [*1082.0020.0002] # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
+1D0AD ; [*1083.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
+1D0AE ; [*1084.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
+1D0AF ; [*1085.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
+1D0B0 ; [*1086.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
+1D0B1 ; [*1087.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
+1D0B2 ; [*1088.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
+1D0B3 ; [*1089.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
+1D0B4 ; [*108A.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
+1D0B5 ; [*108B.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
+1D0B6 ; [*108C.0020.0002] # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
+1D0B7 ; [*108D.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFONON
+1D0B8 ; [*108E.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORON
+1D0B9 ; [*108F.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
+1D0BA ; [*1090.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
+1D0BB ; [*1091.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
+1D0BC ; [*1092.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
+1D0BD ; [*1093.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
+1D0BE ; [*1094.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
+1D0BF ; [*1095.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
+1D0C0 ; [*1096.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
+1D0C1 ; [*1097.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
+1D0C2 ; [*1098.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
+1D0C3 ; [*1099.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
+1D0C4 ; [*109A.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
+1D0C5 ; [*109B.0020.0002] # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
+1D0C6 ; [*109C.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
+1D0C7 ; [*109D.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NENANO
+1D0C8 ; [*109E.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
+1D0C9 ; [*109F.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA KLITON
+1D0CA ; [*10A0.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA SPATHI
+1D0CB ; [*10A1.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
+1D0CC ; [*10A2.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
+1D0CD ; [*10A3.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
+1D0CE ; [*10A4.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
+1D0CF ; [*10A5.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
+1D0D0 ; [*10A6.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
+1D0D1 ; [*10A7.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
+1D0D2 ; [*10A8.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
+1D0D3 ; [*10A9.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
+1D0D4 ; [*10AA.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
+1D0D5 ; [*10AB.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
+1D0D6 ; [*10AC.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
+1D0D7 ; [*10AD.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
+1D0D8 ; [*10AE.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
+1D0D9 ; [*10AF.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
+1D0DA ; [*10B0.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
+1D0DB ; [*10B1.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
+1D0DC ; [*10B2.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
+1D0DD ; [*10B3.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
+1D0DE ; [*10B4.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
+1D0DF ; [*10B5.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
+1D0E0 ; [*10B6.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
+1D0E1 ; [*10B7.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
+1D0E2 ; [*10B8.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
+1D0E3 ; [*10B9.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
+1D0E4 ; [*10BA.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
+1D0E5 ; [*10BB.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
+1D0E6 ; [*10BC.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
+1D0E7 ; [*10BD.0020.0002] # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
+1D0E8 ; [*10BE.0020.0002] # BYZANTINE MUSICAL SYMBOL STIGMA
+1D0E9 ; [*10BF.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO PA
+1D0EA ; [*10C0.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
+1D0EB ; [*10C1.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO GA
+1D0EC ; [*10C2.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO DI
+1D0ED ; [*10C3.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO KE
+1D0EE ; [*10C4.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
+1D0EF ; [*10C5.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO NI
+1D0F0 ; [*10C6.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
+1D0F1 ; [*10C7.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
+1D0F2 ; [*10C8.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
+1D0F3 ; [*10C9.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
+1D0F4 ; [*10CA.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA KATO
+1D0F5 ; [*10CB.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100 ; [*10CC.0020.0002] # MUSICAL SYMBOL SINGLE BARLINE
+1D101 ; [*10CD.0020.0002] # MUSICAL SYMBOL DOUBLE BARLINE
+1D102 ; [*10CE.0020.0002] # MUSICAL SYMBOL FINAL BARLINE
+1D103 ; [*10CF.0020.0002] # MUSICAL SYMBOL REVERSE FINAL BARLINE
+1D104 ; [*10D0.0020.0002] # MUSICAL SYMBOL DASHED BARLINE
+1D105 ; [*10D1.0020.0002] # MUSICAL SYMBOL SHORT BARLINE
+1D106 ; [*10D2.0020.0002] # MUSICAL SYMBOL LEFT REPEAT SIGN
+1D107 ; [*10D3.0020.0002] # MUSICAL SYMBOL RIGHT REPEAT SIGN
+1D108 ; [*10D4.0020.0002] # MUSICAL SYMBOL REPEAT DOTS
+1D109 ; [*10D5.0020.0002] # MUSICAL SYMBOL DAL SEGNO
+1D10A ; [*10D6.0020.0002] # MUSICAL SYMBOL DA CAPO
+1D10B ; [*10D7.0020.0002] # MUSICAL SYMBOL SEGNO
+1D10C ; [*10D8.0020.0002] # MUSICAL SYMBOL CODA
+1D10D ; [*10D9.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-1
+1D10E ; [*10DA.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-2
+1D10F ; [*10DB.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-3
+1D110 ; [*10DC.0020.0002] # MUSICAL SYMBOL FERMATA
+1D111 ; [*10DD.0020.0002] # MUSICAL SYMBOL FERMATA BELOW
+1D112 ; [*10DE.0020.0002] # MUSICAL SYMBOL BREATH MARK
+1D113 ; [*10DF.0020.0002] # MUSICAL SYMBOL CAESURA
+1D114 ; [*10E0.0020.0002] # MUSICAL SYMBOL BRACE
+1D115 ; [*10E1.0020.0002] # MUSICAL SYMBOL BRACKET
+1D116 ; [*10E2.0020.0002] # MUSICAL SYMBOL ONE-LINE STAFF
+1D117 ; [*10E3.0020.0002] # MUSICAL SYMBOL TWO-LINE STAFF
+1D118 ; [*10E4.0020.0002] # MUSICAL SYMBOL THREE-LINE STAFF
+1D119 ; [*10E5.0020.0002] # MUSICAL SYMBOL FOUR-LINE STAFF
+1D11A ; [*10E6.0020.0002] # MUSICAL SYMBOL FIVE-LINE STAFF
+1D11B ; [*10E7.0020.0002] # MUSICAL SYMBOL SIX-LINE STAFF
+1D11C ; [*10E8.0020.0002] # MUSICAL SYMBOL SIX-STRING FRETBOARD
+1D11D ; [*10E9.0020.0002] # MUSICAL SYMBOL FOUR-STRING FRETBOARD
+1D11E ; [*10EA.0020.0002] # MUSICAL SYMBOL G CLEF
+1D11F ; [*10EB.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA ALTA
+1D120 ; [*10EC.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA BASSA
+1D121 ; [*10ED.0020.0002] # MUSICAL SYMBOL C CLEF
+1D122 ; [*10EE.0020.0002] # MUSICAL SYMBOL F CLEF
+1D123 ; [*10EF.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA ALTA
+1D124 ; [*10F0.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA BASSA
+1D125 ; [*10F1.0020.0002] # MUSICAL SYMBOL DRUM CLEF-1
+1D126 ; [*10F2.0020.0002] # MUSICAL SYMBOL DRUM CLEF-2
+1D129 ; [*1106.0020.0002] # MUSICAL SYMBOL MULTIPLE MEASURE REST
+1D12A ; [*10F6.0020.0002] # MUSICAL SYMBOL DOUBLE SHARP
+1D12B ; [*10F7.0020.0002] # MUSICAL SYMBOL DOUBLE FLAT
+1D12C ; [*10F8.0020.0002] # MUSICAL SYMBOL FLAT UP
+1D12D ; [*10F9.0020.0002] # MUSICAL SYMBOL FLAT DOWN
+1D12E ; [*10FA.0020.0002] # MUSICAL SYMBOL NATURAL UP
+1D12F ; [*10FB.0020.0002] # MUSICAL SYMBOL NATURAL DOWN
+1D130 ; [*10FC.0020.0002] # MUSICAL SYMBOL SHARP UP
+1D131 ; [*10FD.0020.0002] # MUSICAL SYMBOL SHARP DOWN
+1D132 ; [*10FE.0020.0002] # MUSICAL SYMBOL QUARTER TONE SHARP
+1D133 ; [*10FF.0020.0002] # MUSICAL SYMBOL QUARTER TONE FLAT
+1D134 ; [*1100.0020.0002] # MUSICAL SYMBOL COMMON TIME
+1D135 ; [*1101.0020.0002] # MUSICAL SYMBOL CUT TIME
+1D136 ; [*1102.0020.0002] # MUSICAL SYMBOL OTTAVA ALTA
+1D137 ; [*1103.0020.0002] # MUSICAL SYMBOL OTTAVA BASSA
+1D138 ; [*1104.0020.0002] # MUSICAL SYMBOL QUINDICESIMA ALTA
+1D139 ; [*1105.0020.0002] # MUSICAL SYMBOL QUINDICESIMA BASSA
+1D13A ; [*1107.0020.0002] # MUSICAL SYMBOL MULTI REST
+1D13B ; [*1108.0020.0002] # MUSICAL SYMBOL WHOLE REST
+1D13C ; [*1109.0020.0002] # MUSICAL SYMBOL HALF REST
+1D13D ; [*110A.0020.0002] # MUSICAL SYMBOL QUARTER REST
+1D13E ; [*110B.0020.0002] # MUSICAL SYMBOL EIGHTH REST
+1D13F ; [*110C.0020.0002] # MUSICAL SYMBOL SIXTEENTH REST
+1D140 ; [*110D.0020.0002] # MUSICAL SYMBOL THIRTY-SECOND REST
+1D141 ; [*110E.0020.0002] # MUSICAL SYMBOL SIXTY-FOURTH REST
+1D142 ; [*110F.0020.0002] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
+1D143 ; [*1110.0020.0002] # MUSICAL SYMBOL X NOTEHEAD
+1D144 ; [*1111.0020.0002] # MUSICAL SYMBOL PLUS NOTEHEAD
+1D145 ; [*1112.0020.0002] # MUSICAL SYMBOL CIRCLE X NOTEHEAD
+1D146 ; [*1113.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
+1D147 ; [*1114.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
+1D148 ; [*1115.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
+1D149 ; [*1116.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
+1D14A ; [*1117.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
+1D14B ; [*1118.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
+1D14C ; [*1119.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
+1D14D ; [*111A.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
+1D14E ; [*111B.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
+1D14F ; [*111C.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
+1D150 ; [*111D.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
+1D151 ; [*111E.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
+1D152 ; [*111F.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD WHITE
+1D153 ; [*1120.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD BLACK
+1D154 ; [*1121.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
+1D155 ; [*1122.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
+1D156 ; [*1123.0020.0002] # MUSICAL SYMBOL PARENTHESIS NOTEHEAD
+1D157 ; [*1124.0020.0002] # MUSICAL SYMBOL VOID NOTEHEAD
+1D158 ; [*1125.0020.0002] # MUSICAL SYMBOL NOTEHEAD BLACK
+1D159 ; [*1126.0020.0002] # MUSICAL SYMBOL NULL NOTEHEAD
+1D15A ; [*1127.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
+1D15B ; [*1128.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
+1D15C ; [*1129.0020.0002] # MUSICAL SYMBOL BREVE
+1D15D ; [*112A.0020.0002] # MUSICAL SYMBOL WHOLE NOTE
+1D15E ; [*1124.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL HALF NOTE
+1D15F ; [*1125.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL QUARTER NOTE
+1D160 ; [*1125.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL EIGHTH NOTE
+1D161 ; [*1125.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTEENTH NOTE
+1D162 ; [*1125.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL THIRTY-SECOND NOTE
+1D163 ; [*1125.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTY-FOURTH NOTE
+1D164 ; [*1125.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D165 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING STEM
1D166 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-1
1D168 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-2
1D169 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-3
-1D16A ; [*10E1.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-1
-1D16B ; [*10E2.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-2
-1D16C ; [*10E3.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-3
+1D16A ; [*112B.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-1
+1D16B ; [*112C.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-2
+1D16C ; [*112D.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-3
1D16D ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING AUGMENTATION DOT
1D16E ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-1
1D16F ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-2
@@ -4940,8 +5108,8 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
1D180 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING MARCATO-STACCATO
1D181 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING ACCENT-STACCATO
1D182 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING LOURE
-1D183 ; [*10E4.0020.0002] # MUSICAL SYMBOL ARPEGGIATO UP
-1D184 ; [*10E5.0020.0002] # MUSICAL SYMBOL ARPEGGIATO DOWN
+1D183 ; [*112E.0020.0002] # MUSICAL SYMBOL ARPEGGIATO UP
+1D184 ; [*112F.0020.0002] # MUSICAL SYMBOL ARPEGGIATO DOWN
1D185 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOIT
1D186 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING RIP
1D187 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLIP
@@ -4949,264 +5117,947 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
1D189 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING BEND
1D18A ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOUBLE TONGUE
1D18B ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D18C ; [*10E6.0020.0002] # MUSICAL SYMBOL RINFORZANDO
-1D18D ; [*10E7.0020.0002] # MUSICAL SYMBOL SUBITO
-1D18E ; [*10E8.0020.0002] # MUSICAL SYMBOL Z
-1D18F ; [*10E9.0020.0002] # MUSICAL SYMBOL PIANO
-1D190 ; [*10EA.0020.0002] # MUSICAL SYMBOL MEZZO
-1D191 ; [*10EB.0020.0002] # MUSICAL SYMBOL FORTE
-1D192 ; [*10EC.0020.0002] # MUSICAL SYMBOL CRESCENDO
-1D193 ; [*10ED.0020.0002] # MUSICAL SYMBOL DECRESCENDO
-1D194 ; [*10EE.0020.0002] # MUSICAL SYMBOL GRACE NOTE SLASH
-1D195 ; [*10EF.0020.0002] # MUSICAL SYMBOL GRACE NOTE NO SLASH
-1D196 ; [*10F0.0020.0002] # MUSICAL SYMBOL TR
-1D197 ; [*10F1.0020.0002] # MUSICAL SYMBOL TURN
-1D198 ; [*10F2.0020.0002] # MUSICAL SYMBOL INVERTED TURN
-1D199 ; [*10F3.0020.0002] # MUSICAL SYMBOL TURN SLASH
-1D19A ; [*10F4.0020.0002] # MUSICAL SYMBOL TURN UP
-1D19B ; [*10F5.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-1
-1D19C ; [*10F6.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-2
-1D19D ; [*10F7.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-3
-1D19E ; [*10F8.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-4
-1D19F ; [*10F9.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-5
-1D1A0 ; [*10FA.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-6
-1D1A1 ; [*10FB.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-7
-1D1A2 ; [*10FC.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-8
-1D1A3 ; [*10FD.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-9
-1D1A4 ; [*10FE.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-10
-1D1A5 ; [*10FF.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-11
-1D1A6 ; [*1100.0020.0002] # MUSICAL SYMBOL HAUPTSTIMME
-1D1A7 ; [*1101.0020.0002] # MUSICAL SYMBOL NEBENSTIMME
-1D1A8 ; [*1102.0020.0002] # MUSICAL SYMBOL END OF STIMME
-1D1A9 ; [*1103.0020.0002] # MUSICAL SYMBOL DEGREE SLASH
+1D18C ; [*1130.0020.0002] # MUSICAL SYMBOL RINFORZANDO
+1D18D ; [*1131.0020.0002] # MUSICAL SYMBOL SUBITO
+1D18E ; [*1132.0020.0002] # MUSICAL SYMBOL Z
+1D18F ; [*1133.0020.0002] # MUSICAL SYMBOL PIANO
+1D190 ; [*1134.0020.0002] # MUSICAL SYMBOL MEZZO
+1D191 ; [*1135.0020.0002] # MUSICAL SYMBOL FORTE
+1D192 ; [*1136.0020.0002] # MUSICAL SYMBOL CRESCENDO
+1D193 ; [*1137.0020.0002] # MUSICAL SYMBOL DECRESCENDO
+1D194 ; [*1138.0020.0002] # MUSICAL SYMBOL GRACE NOTE SLASH
+1D195 ; [*1139.0020.0002] # MUSICAL SYMBOL GRACE NOTE NO SLASH
+1D196 ; [*113A.0020.0002] # MUSICAL SYMBOL TR
+1D197 ; [*113B.0020.0002] # MUSICAL SYMBOL TURN
+1D198 ; [*113C.0020.0002] # MUSICAL SYMBOL INVERTED TURN
+1D199 ; [*113D.0020.0002] # MUSICAL SYMBOL TURN SLASH
+1D19A ; [*113E.0020.0002] # MUSICAL SYMBOL TURN UP
+1D19B ; [*113F.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-1
+1D19C ; [*1140.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-2
+1D19D ; [*1141.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-3
+1D19E ; [*1142.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-4
+1D19F ; [*1143.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-5
+1D1A0 ; [*1144.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-6
+1D1A1 ; [*1145.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-7
+1D1A2 ; [*1146.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-8
+1D1A3 ; [*1147.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-9
+1D1A4 ; [*1148.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-10
+1D1A5 ; [*1149.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-11
+1D1A6 ; [*114A.0020.0002] # MUSICAL SYMBOL HAUPTSTIMME
+1D1A7 ; [*114B.0020.0002] # MUSICAL SYMBOL NEBENSTIMME
+1D1A8 ; [*114C.0020.0002] # MUSICAL SYMBOL END OF STIMME
+1D1A9 ; [*114D.0020.0002] # MUSICAL SYMBOL DEGREE SLASH
1D1AA ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOWN BOW
1D1AB ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING UP BOW
1D1AC ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING HARMONIC
1D1AD ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-1D1AE ; [*1104.0020.0002] # MUSICAL SYMBOL PEDAL MARK
-1D1AF ; [*1105.0020.0002] # MUSICAL SYMBOL PEDAL UP MARK
-1D1B0 ; [*1106.0020.0002] # MUSICAL SYMBOL HALF PEDAL MARK
-1D1B1 ; [*1107.0020.0002] # MUSICAL SYMBOL GLISSANDO UP
-1D1B2 ; [*1108.0020.0002] # MUSICAL SYMBOL GLISSANDO DOWN
-1D1B3 ; [*1109.0020.0002] # MUSICAL SYMBOL WITH FINGERNAILS
-1D1B4 ; [*110A.0020.0002] # MUSICAL SYMBOL DAMP
-1D1B5 ; [*110B.0020.0002] # MUSICAL SYMBOL DAMP ALL
-1D1B6 ; [*110C.0020.0002] # MUSICAL SYMBOL MAXIMA
-1D1B7 ; [*110D.0020.0002] # MUSICAL SYMBOL LONGA
-1D1B8 ; [*110E.0020.0002] # MUSICAL SYMBOL BREVIS
-1D1B9 ; [*110F.0020.0002] # MUSICAL SYMBOL SEMIBREVIS WHITE
-1D1BA ; [*1110.0020.0002] # MUSICAL SYMBOL SEMIBREVIS BLACK
-1D1BB ; [*110F.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA
-1D1BC ; [*1110.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA BLACK
-1D1BD ; [*110F.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA WHITE
-1D1BE ; [*1110.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA BLACK
-1D1BF ; [*110F.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA WHITE
-1D1C0 ; [*1110.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA BLACK
-1D1C1 ; [*1111.0020.0002] # MUSICAL SYMBOL LONGA PERFECTA REST
-1D1C2 ; [*1112.0020.0002] # MUSICAL SYMBOL LONGA IMPERFECTA REST
-1D1C3 ; [*1113.0020.0002] # MUSICAL SYMBOL BREVIS REST
-1D1C4 ; [*1114.0020.0002] # MUSICAL SYMBOL SEMIBREVIS REST
-1D1C5 ; [*1115.0020.0002] # MUSICAL SYMBOL MINIMA REST
-1D1C6 ; [*1116.0020.0002] # MUSICAL SYMBOL SEMIMINIMA REST
-1D1C7 ; [*1117.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
-1D1C8 ; [*1118.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
-1D1C9 ; [*1119.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
-1D1CA ; [*111A.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
-1D1CB ; [*111B.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
-1D1CC ; [*111C.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
-1D1CD ; [*111D.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
-1D1CE ; [*111E.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
-1D1CF ; [*111F.0020.0002] # MUSICAL SYMBOL CROIX
-1D1D0 ; [*1120.0020.0002] # MUSICAL SYMBOL GREGORIAN C CLEF
-1D1D1 ; [*1121.0020.0002] # MUSICAL SYMBOL GREGORIAN F CLEF
-1D1D2 ; [*1122.0020.0002] # MUSICAL SYMBOL SQUARE B
-1D1D3 ; [*1123.0020.0002] # MUSICAL SYMBOL VIRGA
-1D1D4 ; [*1124.0020.0002] # MUSICAL SYMBOL PODATUS
-1D1D5 ; [*1125.0020.0002] # MUSICAL SYMBOL CLIVIS
-1D1D6 ; [*1126.0020.0002] # MUSICAL SYMBOL SCANDICUS
-1D1D7 ; [*1127.0020.0002] # MUSICAL SYMBOL CLIMACUS
-1D1D8 ; [*1128.0020.0002] # MUSICAL SYMBOL TORCULUS
-1D1D9 ; [*1129.0020.0002] # MUSICAL SYMBOL PORRECTUS
-1D1DA ; [*112A.0020.0002] # MUSICAL SYMBOL PORRECTUS FLEXUS
-1D1DB ; [*112B.0020.0002] # MUSICAL SYMBOL SCANDICUS FLEXUS
-1D1DC ; [*112C.0020.0002] # MUSICAL SYMBOL TORCULUS RESUPINUS
-1D1DD ; [*112D.0020.0002] # MUSICAL SYMBOL PES SUBPUNCTIS
-1D200 ; [*112E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-1
-1D201 ; [*112F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-2
-1D202 ; [*1130.0020.0002] # GREEK VOCAL NOTATION SYMBOL-3
-1D203 ; [*1131.0020.0002] # GREEK VOCAL NOTATION SYMBOL-4
-1D204 ; [*1132.0020.0002] # GREEK VOCAL NOTATION SYMBOL-5
-1D205 ; [*1133.0020.0002] # GREEK VOCAL NOTATION SYMBOL-6
-1D206 ; [*1134.0020.0002] # GREEK VOCAL NOTATION SYMBOL-7
-1D207 ; [*1135.0020.0002] # GREEK VOCAL NOTATION SYMBOL-8
-1D208 ; [*1136.0020.0002] # GREEK VOCAL NOTATION SYMBOL-9
-1D209 ; [*1137.0020.0002] # GREEK VOCAL NOTATION SYMBOL-10
-1D20A ; [*1138.0020.0002] # GREEK VOCAL NOTATION SYMBOL-11
-1D20B ; [*1139.0020.0002] # GREEK VOCAL NOTATION SYMBOL-12
-1D20C ; [*113A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-13
-1D20D ; [*113B.0020.0002] # GREEK VOCAL NOTATION SYMBOL-14
-1D20E ; [*113C.0020.0002] # GREEK VOCAL NOTATION SYMBOL-15
-1D20F ; [*113D.0020.0002] # GREEK VOCAL NOTATION SYMBOL-16
-1D210 ; [*113E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-17
-1D211 ; [*113F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-18
-1D212 ; [*1140.0020.0002] # GREEK VOCAL NOTATION SYMBOL-19
-1D213 ; [*1141.0020.0002] # GREEK VOCAL NOTATION SYMBOL-20
-1D214 ; [*1142.0020.0002] # GREEK VOCAL NOTATION SYMBOL-21
-1D215 ; [*1143.0020.0002] # GREEK VOCAL NOTATION SYMBOL-22
-1D216 ; [*1144.0020.0002] # GREEK VOCAL NOTATION SYMBOL-23
-1D217 ; [*1145.0020.0002] # GREEK VOCAL NOTATION SYMBOL-24
-1D218 ; [*1146.0020.0002] # GREEK VOCAL NOTATION SYMBOL-50
-1D219 ; [*1147.0020.0002] # GREEK VOCAL NOTATION SYMBOL-51
-1D21A ; [*1148.0020.0002] # GREEK VOCAL NOTATION SYMBOL-52
-1D21B ; [*1149.0020.0002] # GREEK VOCAL NOTATION SYMBOL-53
-1D21C ; [*114A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-54
-1D21D ; [*114B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-1
-1D21E ; [*114C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-2
-1D21F ; [*114D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-4
-1D220 ; [*114E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-5
-1D221 ; [*114F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-7
-1D222 ; [*1150.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-8
-1D223 ; [*1151.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-11
-1D224 ; [*1152.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-12
-1D225 ; [*1153.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-13
-1D226 ; [*1154.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-14
-1D227 ; [*1155.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-17
-1D228 ; [*1156.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-18
-1D229 ; [*1157.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-19
-1D22A ; [*1158.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-23
-1D22B ; [*1159.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-24
-1D22C ; [*115A.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-25
-1D22D ; [*115B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-26
-1D22E ; [*115C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-27
-1D22F ; [*115D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-29
-1D230 ; [*115E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-30
-1D231 ; [*115F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-32
-1D232 ; [*1160.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-36
-1D233 ; [*1161.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-37
-1D234 ; [*1162.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-38
-1D235 ; [*1163.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-39
-1D236 ; [*1164.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-40
-1D237 ; [*1165.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-42
-1D238 ; [*1166.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-43
-1D239 ; [*1167.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-45
-1D23A ; [*1168.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-47
-1D23B ; [*1169.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-48
-1D23C ; [*116A.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-49
-1D23D ; [*116B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-50
-1D23E ; [*116C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-51
-1D23F ; [*116D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-52
-1D240 ; [*116E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-53
-1D241 ; [*116F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D1AE ; [*114E.0020.0002] # MUSICAL SYMBOL PEDAL MARK
+1D1AF ; [*114F.0020.0002] # MUSICAL SYMBOL PEDAL UP MARK
+1D1B0 ; [*1150.0020.0002] # MUSICAL SYMBOL HALF PEDAL MARK
+1D1B1 ; [*1151.0020.0002] # MUSICAL SYMBOL GLISSANDO UP
+1D1B2 ; [*1152.0020.0002] # MUSICAL SYMBOL GLISSANDO DOWN
+1D1B3 ; [*1153.0020.0002] # MUSICAL SYMBOL WITH FINGERNAILS
+1D1B4 ; [*1154.0020.0002] # MUSICAL SYMBOL DAMP
+1D1B5 ; [*1155.0020.0002] # MUSICAL SYMBOL DAMP ALL
+1D1B6 ; [*1156.0020.0002] # MUSICAL SYMBOL MAXIMA
+1D1B7 ; [*1157.0020.0002] # MUSICAL SYMBOL LONGA
+1D1B8 ; [*1158.0020.0002] # MUSICAL SYMBOL BREVIS
+1D1B9 ; [*1159.0020.0002] # MUSICAL SYMBOL SEMIBREVIS WHITE
+1D1BA ; [*115A.0020.0002] # MUSICAL SYMBOL SEMIBREVIS BLACK
+1D1BB ; [*1159.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA
+1D1BC ; [*115A.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA BLACK
+1D1BD ; [*1159.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA WHITE
+1D1BE ; [*115A.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA BLACK
+1D1BF ; [*1159.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA WHITE
+1D1C0 ; [*115A.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA BLACK
+1D1C1 ; [*115B.0020.0002] # MUSICAL SYMBOL LONGA PERFECTA REST
+1D1C2 ; [*115C.0020.0002] # MUSICAL SYMBOL LONGA IMPERFECTA REST
+1D1C3 ; [*115D.0020.0002] # MUSICAL SYMBOL BREVIS REST
+1D1C4 ; [*115E.0020.0002] # MUSICAL SYMBOL SEMIBREVIS REST
+1D1C5 ; [*115F.0020.0002] # MUSICAL SYMBOL MINIMA REST
+1D1C6 ; [*1160.0020.0002] # MUSICAL SYMBOL SEMIMINIMA REST
+1D1C7 ; [*1161.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
+1D1C8 ; [*1162.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
+1D1C9 ; [*1163.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
+1D1CA ; [*1164.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
+1D1CB ; [*1165.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
+1D1CC ; [*1166.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
+1D1CD ; [*1167.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
+1D1CE ; [*1168.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
+1D1CF ; [*1169.0020.0002] # MUSICAL SYMBOL CROIX
+1D1D0 ; [*116A.0020.0002] # MUSICAL SYMBOL GREGORIAN C CLEF
+1D1D1 ; [*116B.0020.0002] # MUSICAL SYMBOL GREGORIAN F CLEF
+1D1D2 ; [*116C.0020.0002] # MUSICAL SYMBOL SQUARE B
+1D1D3 ; [*116D.0020.0002] # MUSICAL SYMBOL VIRGA
+1D1D4 ; [*116E.0020.0002] # MUSICAL SYMBOL PODATUS
+1D1D5 ; [*116F.0020.0002] # MUSICAL SYMBOL CLIVIS
+1D1D6 ; [*1170.0020.0002] # MUSICAL SYMBOL SCANDICUS
+1D1D7 ; [*1171.0020.0002] # MUSICAL SYMBOL CLIMACUS
+1D1D8 ; [*1172.0020.0002] # MUSICAL SYMBOL TORCULUS
+1D1D9 ; [*1173.0020.0002] # MUSICAL SYMBOL PORRECTUS
+1D1DA ; [*1174.0020.0002] # MUSICAL SYMBOL PORRECTUS FLEXUS
+1D1DB ; [*1175.0020.0002] # MUSICAL SYMBOL SCANDICUS FLEXUS
+1D1DC ; [*1176.0020.0002] # MUSICAL SYMBOL TORCULUS RESUPINUS
+1D1DD ; [*1177.0020.0002] # MUSICAL SYMBOL PES SUBPUNCTIS
+1D1DE ; [*1178.0020.0002] # MUSICAL SYMBOL KIEVAN C CLEF
+1D1DF ; [*1179.0020.0002] # MUSICAL SYMBOL KIEVAN END OF PIECE
+1D1E0 ; [*117A.0020.0002] # MUSICAL SYMBOL KIEVAN FINAL NOTE
+1D1E1 ; [*117B.0020.0002] # MUSICAL SYMBOL KIEVAN RECITATIVE MARK
+1D1E2 ; [*117C.0020.0002] # MUSICAL SYMBOL KIEVAN WHOLE NOTE
+1D1E3 ; [*117D.0020.0002] # MUSICAL SYMBOL KIEVAN HALF NOTE
+1D1E4 ; [*117E.0020.0002] # MUSICAL SYMBOL KIEVAN QUARTER NOTE STEM DOWN
+1D1E5 ; [*117F.0020.0002] # MUSICAL SYMBOL KIEVAN QUARTER NOTE STEM UP
+1D1E6 ; [*1180.0020.0002] # MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM DOWN
+1D1E7 ; [*1181.0020.0002] # MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM UP
+1D1E8 ; [*1182.0020.0002] # MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D200 ; [*1183.0020.0002] # GREEK VOCAL NOTATION SYMBOL-1
+1D201 ; [*1184.0020.0002] # GREEK VOCAL NOTATION SYMBOL-2
+1D202 ; [*1185.0020.0002] # GREEK VOCAL NOTATION SYMBOL-3
+1D203 ; [*1186.0020.0002] # GREEK VOCAL NOTATION SYMBOL-4
+1D204 ; [*1187.0020.0002] # GREEK VOCAL NOTATION SYMBOL-5
+1D205 ; [*1188.0020.0002] # GREEK VOCAL NOTATION SYMBOL-6
+1D206 ; [*1189.0020.0002] # GREEK VOCAL NOTATION SYMBOL-7
+1D207 ; [*118A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-8
+1D208 ; [*118B.0020.0002] # GREEK VOCAL NOTATION SYMBOL-9
+1D209 ; [*118C.0020.0002] # GREEK VOCAL NOTATION SYMBOL-10
+1D20A ; [*118D.0020.0002] # GREEK VOCAL NOTATION SYMBOL-11
+1D20B ; [*118E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-12
+1D20C ; [*118F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-13
+1D20D ; [*1190.0020.0002] # GREEK VOCAL NOTATION SYMBOL-14
+1D20E ; [*1191.0020.0002] # GREEK VOCAL NOTATION SYMBOL-15
+1D20F ; [*1192.0020.0002] # GREEK VOCAL NOTATION SYMBOL-16
+1D210 ; [*1193.0020.0002] # GREEK VOCAL NOTATION SYMBOL-17
+1D211 ; [*1194.0020.0002] # GREEK VOCAL NOTATION SYMBOL-18
+1D212 ; [*1195.0020.0002] # GREEK VOCAL NOTATION SYMBOL-19
+1D213 ; [*1196.0020.0002] # GREEK VOCAL NOTATION SYMBOL-20
+1D214 ; [*1197.0020.0002] # GREEK VOCAL NOTATION SYMBOL-21
+1D215 ; [*1198.0020.0002] # GREEK VOCAL NOTATION SYMBOL-22
+1D216 ; [*1199.0020.0002] # GREEK VOCAL NOTATION SYMBOL-23
+1D217 ; [*119A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-24
+1D218 ; [*119B.0020.0002] # GREEK VOCAL NOTATION SYMBOL-50
+1D219 ; [*119C.0020.0002] # GREEK VOCAL NOTATION SYMBOL-51
+1D21A ; [*119D.0020.0002] # GREEK VOCAL NOTATION SYMBOL-52
+1D21B ; [*119E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-53
+1D21C ; [*119F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-54
+1D21D ; [*11A0.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-1
+1D21E ; [*11A1.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-2
+1D21F ; [*11A2.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-4
+1D220 ; [*11A3.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-5
+1D221 ; [*11A4.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-7
+1D222 ; [*11A5.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-8
+1D223 ; [*11A6.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-11
+1D224 ; [*11A7.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-12
+1D225 ; [*11A8.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-13
+1D226 ; [*11A9.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-14
+1D227 ; [*11AA.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-17
+1D228 ; [*11AB.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-18
+1D229 ; [*11AC.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-19
+1D22A ; [*11AD.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-23
+1D22B ; [*11AE.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-24
+1D22C ; [*11AF.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-25
+1D22D ; [*11B0.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-26
+1D22E ; [*11B1.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-27
+1D22F ; [*11B2.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-29
+1D230 ; [*11B3.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-30
+1D231 ; [*11B4.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-32
+1D232 ; [*11B5.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-36
+1D233 ; [*11B6.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-37
+1D234 ; [*11B7.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-38
+1D235 ; [*11B8.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-39
+1D236 ; [*11B9.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-40
+1D237 ; [*11BA.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-42
+1D238 ; [*11BB.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-43
+1D239 ; [*11BC.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-45
+1D23A ; [*11BD.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-47
+1D23B ; [*11BE.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-48
+1D23C ; [*11BF.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-49
+1D23D ; [*11C0.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-50
+1D23E ; [*11C1.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-51
+1D23F ; [*11C2.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-52
+1D240 ; [*11C3.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-53
+1D241 ; [*11C4.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-54
1D242 ; [.0000.0000.0000] # COMBINING GREEK MUSICAL TRISEME
1D243 ; [.0000.0000.0000] # COMBINING GREEK MUSICAL TETRASEME
1D244 ; [.0000.0000.0000] # COMBINING GREEK MUSICAL PENTASEME
-1D245 ; [*1170.0020.0002] # GREEK MUSICAL LEIMMA
-1D300 ; [*0EA2.0020.0002] # MONOGRAM FOR EARTH
-1D301 ; [*0EA3.0020.0002] # DIGRAM FOR HEAVENLY EARTH
-1D302 ; [*0EA4.0020.0002] # DIGRAM FOR HUMAN EARTH
-1D303 ; [*0EA5.0020.0002] # DIGRAM FOR EARTHLY HEAVEN
-1D304 ; [*0EA6.0020.0002] # DIGRAM FOR EARTHLY HUMAN
-1D305 ; [*0EA7.0020.0002] # DIGRAM FOR EARTH
-1D306 ; [*0EA8.0020.0002] # TETRAGRAM FOR CENTRE
-1D307 ; [*0EA9.0020.0002] # TETRAGRAM FOR FULL CIRCLE
-1D308 ; [*0EAA.0020.0002] # TETRAGRAM FOR MIRED
-1D309 ; [*0EAB.0020.0002] # TETRAGRAM FOR BARRIER
-1D30A ; [*0EAC.0020.0002] # TETRAGRAM FOR KEEPING SMALL
-1D30B ; [*0EAD.0020.0002] # TETRAGRAM FOR CONTRARIETY
-1D30C ; [*0EAE.0020.0002] # TETRAGRAM FOR ASCENT
-1D30D ; [*0EAF.0020.0002] # TETRAGRAM FOR OPPOSITION
-1D30E ; [*0EB0.0020.0002] # TETRAGRAM FOR BRANCHING OUT
-1D30F ; [*0EB1.0020.0002] # TETRAGRAM FOR DEFECTIVENESS OR DISTORTION
-1D310 ; [*0EB2.0020.0002] # TETRAGRAM FOR DIVERGENCE
-1D311 ; [*0EB3.0020.0002] # TETRAGRAM FOR YOUTHFULNESS
-1D312 ; [*0EB4.0020.0002] # TETRAGRAM FOR INCREASE
-1D313 ; [*0EB5.0020.0002] # TETRAGRAM FOR PENETRATION
-1D314 ; [*0EB6.0020.0002] # TETRAGRAM FOR REACH
-1D315 ; [*0EB7.0020.0002] # TETRAGRAM FOR CONTACT
-1D316 ; [*0EB8.0020.0002] # TETRAGRAM FOR HOLDING BACK
-1D317 ; [*0EB9.0020.0002] # TETRAGRAM FOR WAITING
-1D318 ; [*0EBA.0020.0002] # TETRAGRAM FOR FOLLOWING
-1D319 ; [*0EBB.0020.0002] # TETRAGRAM FOR ADVANCE
-1D31A ; [*0EBC.0020.0002] # TETRAGRAM FOR RELEASE
-1D31B ; [*0EBD.0020.0002] # TETRAGRAM FOR RESISTANCE
-1D31C ; [*0EBE.0020.0002] # TETRAGRAM FOR EASE
-1D31D ; [*0EBF.0020.0002] # TETRAGRAM FOR JOY
-1D31E ; [*0EC0.0020.0002] # TETRAGRAM FOR CONTENTION
-1D31F ; [*0EC1.0020.0002] # TETRAGRAM FOR ENDEAVOUR
-1D320 ; [*0EC2.0020.0002] # TETRAGRAM FOR DUTIES
-1D321 ; [*0EC3.0020.0002] # TETRAGRAM FOR CHANGE
-1D322 ; [*0EC4.0020.0002] # TETRAGRAM FOR DECISIVENESS
-1D323 ; [*0EC5.0020.0002] # TETRAGRAM FOR BOLD RESOLUTION
-1D324 ; [*0EC6.0020.0002] # TETRAGRAM FOR PACKING
-1D325 ; [*0EC7.0020.0002] # TETRAGRAM FOR LEGION
-1D326 ; [*0EC8.0020.0002] # TETRAGRAM FOR CLOSENESS
-1D327 ; [*0EC9.0020.0002] # TETRAGRAM FOR KINSHIP
-1D328 ; [*0ECA.0020.0002] # TETRAGRAM FOR GATHERING
-1D329 ; [*0ECB.0020.0002] # TETRAGRAM FOR STRENGTH
-1D32A ; [*0ECC.0020.0002] # TETRAGRAM FOR PURITY
-1D32B ; [*0ECD.0020.0002] # TETRAGRAM FOR FULLNESS
-1D32C ; [*0ECE.0020.0002] # TETRAGRAM FOR RESIDENCE
-1D32D ; [*0ECF.0020.0002] # TETRAGRAM FOR LAW OR MODEL
-1D32E ; [*0ED0.0020.0002] # TETRAGRAM FOR RESPONSE
-1D32F ; [*0ED1.0020.0002] # TETRAGRAM FOR GOING TO MEET
-1D330 ; [*0ED2.0020.0002] # TETRAGRAM FOR ENCOUNTERS
-1D331 ; [*0ED3.0020.0002] # TETRAGRAM FOR STOVE
-1D332 ; [*0ED4.0020.0002] # TETRAGRAM FOR GREATNESS
-1D333 ; [*0ED5.0020.0002] # TETRAGRAM FOR ENLARGEMENT
-1D334 ; [*0ED6.0020.0002] # TETRAGRAM FOR PATTERN
-1D335 ; [*0ED7.0020.0002] # TETRAGRAM FOR RITUAL
-1D336 ; [*0ED8.0020.0002] # TETRAGRAM FOR FLIGHT
-1D337 ; [*0ED9.0020.0002] # TETRAGRAM FOR VASTNESS OR WASTING
-1D338 ; [*0EDA.0020.0002] # TETRAGRAM FOR CONSTANCY
-1D339 ; [*0EDB.0020.0002] # TETRAGRAM FOR MEASURE
-1D33A ; [*0EDC.0020.0002] # TETRAGRAM FOR ETERNITY
-1D33B ; [*0EDD.0020.0002] # TETRAGRAM FOR UNITY
-1D33C ; [*0EDE.0020.0002] # TETRAGRAM FOR DIMINISHMENT
-1D33D ; [*0EDF.0020.0002] # TETRAGRAM FOR CLOSED MOUTH
-1D33E ; [*0EE0.0020.0002] # TETRAGRAM FOR GUARDEDNESS
-1D33F ; [*0EE1.0020.0002] # TETRAGRAM FOR GATHERING IN
-1D340 ; [*0EE2.0020.0002] # TETRAGRAM FOR MASSING
-1D341 ; [*0EE3.0020.0002] # TETRAGRAM FOR ACCUMULATION
-1D342 ; [*0EE4.0020.0002] # TETRAGRAM FOR EMBELLISHMENT
-1D343 ; [*0EE5.0020.0002] # TETRAGRAM FOR DOUBT
-1D344 ; [*0EE6.0020.0002] # TETRAGRAM FOR WATCH
-1D345 ; [*0EE7.0020.0002] # TETRAGRAM FOR SINKING
-1D346 ; [*0EE8.0020.0002] # TETRAGRAM FOR INNER
-1D347 ; [*0EE9.0020.0002] # TETRAGRAM FOR DEPARTURE
-1D348 ; [*0EEA.0020.0002] # TETRAGRAM FOR DARKENING
-1D349 ; [*0EEB.0020.0002] # TETRAGRAM FOR DIMMING
-1D34A ; [*0EEC.0020.0002] # TETRAGRAM FOR EXHAUSTION
-1D34B ; [*0EED.0020.0002] # TETRAGRAM FOR SEVERANCE
-1D34C ; [*0EEE.0020.0002] # TETRAGRAM FOR STOPPAGE
-1D34D ; [*0EEF.0020.0002] # TETRAGRAM FOR HARDNESS
-1D34E ; [*0EF0.0020.0002] # TETRAGRAM FOR COMPLETION
-1D34F ; [*0EF1.0020.0002] # TETRAGRAM FOR CLOSURE
-1D350 ; [*0EF2.0020.0002] # TETRAGRAM FOR FAILURE
-1D351 ; [*0EF3.0020.0002] # TETRAGRAM FOR AGGRAVATION
-1D352 ; [*0EF4.0020.0002] # TETRAGRAM FOR COMPLIANCE
-1D353 ; [*0EF5.0020.0002] # TETRAGRAM FOR ON THE VERGE
-1D354 ; [*0EF6.0020.0002] # TETRAGRAM FOR DIFFICULTIES
-1D355 ; [*0EF7.0020.0002] # TETRAGRAM FOR LABOURING
-1D356 ; [*0EF8.0020.0002] # TETRAGRAM FOR FOSTERING
-1D369 ; [*18B6.0020.0002] # COUNTING ROD TENS DIGIT ONE
-1D36A ; [*18B7.0020.0002] # COUNTING ROD TENS DIGIT TWO
-1D36B ; [*18B8.0020.0002] # COUNTING ROD TENS DIGIT THREE
-1D36C ; [*18B9.0020.0002] # COUNTING ROD TENS DIGIT FOUR
-1D36D ; [*18BA.0020.0002] # COUNTING ROD TENS DIGIT FIVE
-1D36E ; [*18BB.0020.0002] # COUNTING ROD TENS DIGIT SIX
-1D36F ; [*18BC.0020.0002] # COUNTING ROD TENS DIGIT SEVEN
-1D370 ; [*18BD.0020.0002] # COUNTING ROD TENS DIGIT EIGHT
-1D371 ; [*18BE.0020.0002] # COUNTING ROD TENS DIGIT NINE
-1D6C1 ; [*05CC.0020.0005] # MATHEMATICAL BOLD NABLA
-1D6DB ; [*05C8.0020.0005] # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6FB ; [*05CC.0020.0005] # MATHEMATICAL ITALIC NABLA
-1D715 ; [*05C8.0020.0005] # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D735 ; [*05CC.0020.0005] # MATHEMATICAL BOLD ITALIC NABLA
-1D74F ; [*05C8.0020.0005] # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D76F ; [*05CC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD NABLA
-1D789 ; [*05C8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D7A9 ; [*05CC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7C3 ; [*05C8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D245 ; [*11C5.0020.0002] # GREEK MUSICAL LEIMMA
+1D300 ; [*0EEA.0020.0002] # MONOGRAM FOR EARTH
+1D301 ; [*0EEB.0020.0002] # DIGRAM FOR HEAVENLY EARTH
+1D302 ; [*0EEC.0020.0002] # DIGRAM FOR HUMAN EARTH
+1D303 ; [*0EED.0020.0002] # DIGRAM FOR EARTHLY HEAVEN
+1D304 ; [*0EEE.0020.0002] # DIGRAM FOR EARTHLY HUMAN
+1D305 ; [*0EEF.0020.0002] # DIGRAM FOR EARTH
+1D306 ; [*0EF0.0020.0002] # TETRAGRAM FOR CENTRE
+1D307 ; [*0EF1.0020.0002] # TETRAGRAM FOR FULL CIRCLE
+1D308 ; [*0EF2.0020.0002] # TETRAGRAM FOR MIRED
+1D309 ; [*0EF3.0020.0002] # TETRAGRAM FOR BARRIER
+1D30A ; [*0EF4.0020.0002] # TETRAGRAM FOR KEEPING SMALL
+1D30B ; [*0EF5.0020.0002] # TETRAGRAM FOR CONTRARIETY
+1D30C ; [*0EF6.0020.0002] # TETRAGRAM FOR ASCENT
+1D30D ; [*0EF7.0020.0002] # TETRAGRAM FOR OPPOSITION
+1D30E ; [*0EF8.0020.0002] # TETRAGRAM FOR BRANCHING OUT
+1D30F ; [*0EF9.0020.0002] # TETRAGRAM FOR DEFECTIVENESS OR DISTORTION
+1D310 ; [*0EFA.0020.0002] # TETRAGRAM FOR DIVERGENCE
+1D311 ; [*0EFB.0020.0002] # TETRAGRAM FOR YOUTHFULNESS
+1D312 ; [*0EFC.0020.0002] # TETRAGRAM FOR INCREASE
+1D313 ; [*0EFD.0020.0002] # TETRAGRAM FOR PENETRATION
+1D314 ; [*0EFE.0020.0002] # TETRAGRAM FOR REACH
+1D315 ; [*0EFF.0020.0002] # TETRAGRAM FOR CONTACT
+1D316 ; [*0F00.0020.0002] # TETRAGRAM FOR HOLDING BACK
+1D317 ; [*0F01.0020.0002] # TETRAGRAM FOR WAITING
+1D318 ; [*0F02.0020.0002] # TETRAGRAM FOR FOLLOWING
+1D319 ; [*0F03.0020.0002] # TETRAGRAM FOR ADVANCE
+1D31A ; [*0F04.0020.0002] # TETRAGRAM FOR RELEASE
+1D31B ; [*0F05.0020.0002] # TETRAGRAM FOR RESISTANCE
+1D31C ; [*0F06.0020.0002] # TETRAGRAM FOR EASE
+1D31D ; [*0F07.0020.0002] # TETRAGRAM FOR JOY
+1D31E ; [*0F08.0020.0002] # TETRAGRAM FOR CONTENTION
+1D31F ; [*0F09.0020.0002] # TETRAGRAM FOR ENDEAVOUR
+1D320 ; [*0F0A.0020.0002] # TETRAGRAM FOR DUTIES
+1D321 ; [*0F0B.0020.0002] # TETRAGRAM FOR CHANGE
+1D322 ; [*0F0C.0020.0002] # TETRAGRAM FOR DECISIVENESS
+1D323 ; [*0F0D.0020.0002] # TETRAGRAM FOR BOLD RESOLUTION
+1D324 ; [*0F0E.0020.0002] # TETRAGRAM FOR PACKING
+1D325 ; [*0F0F.0020.0002] # TETRAGRAM FOR LEGION
+1D326 ; [*0F10.0020.0002] # TETRAGRAM FOR CLOSENESS
+1D327 ; [*0F11.0020.0002] # TETRAGRAM FOR KINSHIP
+1D328 ; [*0F12.0020.0002] # TETRAGRAM FOR GATHERING
+1D329 ; [*0F13.0020.0002] # TETRAGRAM FOR STRENGTH
+1D32A ; [*0F14.0020.0002] # TETRAGRAM FOR PURITY
+1D32B ; [*0F15.0020.0002] # TETRAGRAM FOR FULLNESS
+1D32C ; [*0F16.0020.0002] # TETRAGRAM FOR RESIDENCE
+1D32D ; [*0F17.0020.0002] # TETRAGRAM FOR LAW OR MODEL
+1D32E ; [*0F18.0020.0002] # TETRAGRAM FOR RESPONSE
+1D32F ; [*0F19.0020.0002] # TETRAGRAM FOR GOING TO MEET
+1D330 ; [*0F1A.0020.0002] # TETRAGRAM FOR ENCOUNTERS
+1D331 ; [*0F1B.0020.0002] # TETRAGRAM FOR STOVE
+1D332 ; [*0F1C.0020.0002] # TETRAGRAM FOR GREATNESS
+1D333 ; [*0F1D.0020.0002] # TETRAGRAM FOR ENLARGEMENT
+1D334 ; [*0F1E.0020.0002] # TETRAGRAM FOR PATTERN
+1D335 ; [*0F1F.0020.0002] # TETRAGRAM FOR RITUAL
+1D336 ; [*0F20.0020.0002] # TETRAGRAM FOR FLIGHT
+1D337 ; [*0F21.0020.0002] # TETRAGRAM FOR VASTNESS OR WASTING
+1D338 ; [*0F22.0020.0002] # TETRAGRAM FOR CONSTANCY
+1D339 ; [*0F23.0020.0002] # TETRAGRAM FOR MEASURE
+1D33A ; [*0F24.0020.0002] # TETRAGRAM FOR ETERNITY
+1D33B ; [*0F25.0020.0002] # TETRAGRAM FOR UNITY
+1D33C ; [*0F26.0020.0002] # TETRAGRAM FOR DIMINISHMENT
+1D33D ; [*0F27.0020.0002] # TETRAGRAM FOR CLOSED MOUTH
+1D33E ; [*0F28.0020.0002] # TETRAGRAM FOR GUARDEDNESS
+1D33F ; [*0F29.0020.0002] # TETRAGRAM FOR GATHERING IN
+1D340 ; [*0F2A.0020.0002] # TETRAGRAM FOR MASSING
+1D341 ; [*0F2B.0020.0002] # TETRAGRAM FOR ACCUMULATION
+1D342 ; [*0F2C.0020.0002] # TETRAGRAM FOR EMBELLISHMENT
+1D343 ; [*0F2D.0020.0002] # TETRAGRAM FOR DOUBT
+1D344 ; [*0F2E.0020.0002] # TETRAGRAM FOR WATCH
+1D345 ; [*0F2F.0020.0002] # TETRAGRAM FOR SINKING
+1D346 ; [*0F30.0020.0002] # TETRAGRAM FOR INNER
+1D347 ; [*0F31.0020.0002] # TETRAGRAM FOR DEPARTURE
+1D348 ; [*0F32.0020.0002] # TETRAGRAM FOR DARKENING
+1D349 ; [*0F33.0020.0002] # TETRAGRAM FOR DIMMING
+1D34A ; [*0F34.0020.0002] # TETRAGRAM FOR EXHAUSTION
+1D34B ; [*0F35.0020.0002] # TETRAGRAM FOR SEVERANCE
+1D34C ; [*0F36.0020.0002] # TETRAGRAM FOR STOPPAGE
+1D34D ; [*0F37.0020.0002] # TETRAGRAM FOR HARDNESS
+1D34E ; [*0F38.0020.0002] # TETRAGRAM FOR COMPLETION
+1D34F ; [*0F39.0020.0002] # TETRAGRAM FOR CLOSURE
+1D350 ; [*0F3A.0020.0002] # TETRAGRAM FOR FAILURE
+1D351 ; [*0F3B.0020.0002] # TETRAGRAM FOR AGGRAVATION
+1D352 ; [*0F3C.0020.0002] # TETRAGRAM FOR COMPLIANCE
+1D353 ; [*0F3D.0020.0002] # TETRAGRAM FOR ON THE VERGE
+1D354 ; [*0F3E.0020.0002] # TETRAGRAM FOR DIFFICULTIES
+1D355 ; [*0F3F.0020.0002] # TETRAGRAM FOR LABOURING
+1D356 ; [*0F40.0020.0002] # TETRAGRAM FOR FOSTERING
+1D369 ; [*1BEF.0020.0002] # COUNTING ROD TENS DIGIT ONE
+1D36A ; [*1BF0.0020.0002] # COUNTING ROD TENS DIGIT TWO
+1D36B ; [*1BF1.0020.0002] # COUNTING ROD TENS DIGIT THREE
+1D36C ; [*1BF2.0020.0002] # COUNTING ROD TENS DIGIT FOUR
+1D36D ; [*1BF3.0020.0002] # COUNTING ROD TENS DIGIT FIVE
+1D36E ; [*1BF4.0020.0002] # COUNTING ROD TENS DIGIT SIX
+1D36F ; [*1BF5.0020.0002] # COUNTING ROD TENS DIGIT SEVEN
+1D370 ; [*1BF6.0020.0002] # COUNTING ROD TENS DIGIT EIGHT
+1D371 ; [*1BF7.0020.0002] # COUNTING ROD TENS DIGIT NINE
+1D6C1 ; [*060C.0020.0005] # MATHEMATICAL BOLD NABLA
+1D6DB ; [*0608.0020.0005] # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6FB ; [*060C.0020.0005] # MATHEMATICAL ITALIC NABLA
+1D715 ; [*0608.0020.0005] # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D735 ; [*060C.0020.0005] # MATHEMATICAL BOLD ITALIC NABLA
+1D74F ; [*0608.0020.0005] # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D76F ; [*060C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD NABLA
+1D789 ; [*0608.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D7A9 ; [*060C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7C3 ; [*0608.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D800 ; [*183F.0020.0002] # SIGNWRITING HAND-FIST INDEX
+1D801 ; [*1840.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX
+1D802 ; [*1841.0020.0002] # SIGNWRITING HAND-CUP INDEX
+1D803 ; [*1842.0020.0002] # SIGNWRITING HAND-OVAL INDEX
+1D804 ; [*1843.0020.0002] # SIGNWRITING HAND-HINGE INDEX
+1D805 ; [*1844.0020.0002] # SIGNWRITING HAND-ANGLE INDEX
+1D806 ; [*1845.0020.0002] # SIGNWRITING HAND-FIST INDEX BENT
+1D807 ; [*1846.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX BENT
+1D808 ; [*1847.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER INDEX BENT
+1D809 ; [*1848.0020.0002] # SIGNWRITING HAND-FIST INDEX RAISED KNUCKLE
+1D80A ; [*1849.0020.0002] # SIGNWRITING HAND-FIST INDEX CUPPED
+1D80B ; [*184A.0020.0002] # SIGNWRITING HAND-FIST INDEX HINGED
+1D80C ; [*184B.0020.0002] # SIGNWRITING HAND-FIST INDEX HINGED LOW
+1D80D ; [*184C.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX HINGE
+1D80E ; [*184D.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE
+1D80F ; [*184E.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE
+1D810 ; [*184F.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE BENT
+1D811 ; [*1850.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE RAISED KNUCKLES
+1D812 ; [*1851.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE HINGED
+1D813 ; [*1852.0020.0002] # SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED
+1D814 ; [*1853.0020.0002] # SIGNWRITING HAND-FIST INDEX HINGED MIDDLE UP
+1D815 ; [*1854.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED
+1D816 ; [*1855.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED INDEX BENT
+1D817 ; [*1856.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED MIDDLE BENT
+1D818 ; [*1857.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED CUPPED
+1D819 ; [*1858.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED HINGED
+1D81A ; [*1859.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CROSSED
+1D81B ; [*185A.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE CROSSED
+1D81C ; [*185B.0020.0002] # SIGNWRITING HAND-FIST MIDDLE BENT OVER INDEX
+1D81D ; [*185C.0020.0002] # SIGNWRITING HAND-FIST INDEX BENT OVER MIDDLE
+1D81E ; [*185D.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB
+1D81F ; [*185E.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE THUMB
+1D820 ; [*185F.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE STRAIGHT THUMB BENT
+1D821 ; [*1860.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE BENT THUMB STRAIGHT
+1D822 ; [*1861.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB BENT
+1D823 ; [*1862.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE HINGED SPREAD THUMB SIDE
+1D824 ; [*1863.0020.0002] # SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED THUMB SIDE
+1D825 ; [*1864.0020.0002] # SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED THUMB CONJOINED
+1D826 ; [*1865.0020.0002] # SIGNWRITING HAND-FIST INDEX HINGED MIDDLE UP THUMB SIDE
+1D827 ; [*1866.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE UP SPREAD THUMB FORWARD
+1D828 ; [*1867.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CUPPED
+1D829 ; [*1868.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CIRCLED
+1D82A ; [*1869.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB HOOKED
+1D82B ; [*186A.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB HINGED
+1D82C ; [*186B.0020.0002] # SIGNWRITING HAND-FIST THUMB BETWEEN INDEX MIDDLE STRAIGHT
+1D82D ; [*186C.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE
+1D82E ; [*186D.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE CONJOINED
+1D82F ; [*186E.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE BENT
+1D830 ; [*186F.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB HOOKED INDEX UP
+1D831 ; [*1870.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB HOOKED MIDDLE UP
+1D832 ; [*1871.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED HINGED THUMB SIDE
+1D833 ; [*1872.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CROSSED THUMB SIDE
+1D834 ; [*1873.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB FORWARD
+1D835 ; [*1874.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED CUPPED THUMB FORWARD
+1D836 ; [*1875.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB CUPPED INDEX UP
+1D837 ; [*1876.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CUPPED MIDDLE UP
+1D838 ; [*1877.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB CIRCLED INDEX UP
+1D839 ; [*1878.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB CIRCLED INDEX HINGED
+1D83A ; [*1879.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB ANGLED OUT MIDDLE UP
+1D83B ; [*187A.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB ANGLED IN MIDDLE UP
+1D83C ; [*187B.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CIRCLED MIDDLE UP
+1D83D ; [*187C.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CONJOINED HINGED
+1D83E ; [*187D.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB ANGLED OUT
+1D83F ; [*187E.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB ANGLED
+1D840 ; [*187F.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED OUT INDEX UP
+1D841 ; [*1880.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED OUT INDEX CROSSED
+1D842 ; [*1881.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED INDEX UP
+1D843 ; [*1882.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB HOOKED MIDDLE HINGED
+1D844 ; [*1883.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS
+1D845 ; [*1884.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS BENT
+1D846 ; [*1885.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS HINGED
+1D847 ; [*1886.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS CONJOINED
+1D848 ; [*1887.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS CONJOINED SPLIT
+1D849 ; [*1888.0020.0002] # SIGNWRITING HAND-CLAW FOUR FINGERS CONJOINED
+1D84A ; [*1889.0020.0002] # SIGNWRITING HAND-FIST FOUR FINGERS CONJOINED BENT
+1D84B ; [*188A.0020.0002] # SIGNWRITING HAND-HINGE FOUR FINGERS CONJOINED
+1D84C ; [*188B.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD
+1D84D ; [*188C.0020.0002] # SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD
+1D84E ; [*188D.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD FOUR BENT
+1D84F ; [*188E.0020.0002] # SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD FOUR BENT
+1D850 ; [*188F.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD BENT
+1D851 ; [*1890.0020.0002] # SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD BENT
+1D852 ; [*1891.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD THUMB FORWARD
+1D853 ; [*1892.0020.0002] # SIGNWRITING HAND-CUP FIVE FINGERS SPREAD
+1D854 ; [*1893.0020.0002] # SIGNWRITING HAND-CUP FIVE FINGERS SPREAD OPEN
+1D855 ; [*1894.0020.0002] # SIGNWRITING HAND-HINGE FIVE FINGERS SPREAD OPEN
+1D856 ; [*1895.0020.0002] # SIGNWRITING HAND-OVAL FIVE FINGERS SPREAD
+1D857 ; [*1896.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED
+1D858 ; [*1897.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED THUMB SIDE
+1D859 ; [*1898.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED NO THUMB
+1D85A ; [*1899.0020.0002] # SIGNWRITING HAND-FLAT
+1D85B ; [*189A.0020.0002] # SIGNWRITING HAND-FLAT BETWEEN PALM FACINGS
+1D85C ; [*189B.0020.0002] # SIGNWRITING HAND-FLAT HEEL
+1D85D ; [*189C.0020.0002] # SIGNWRITING HAND-FLAT THUMB SIDE
+1D85E ; [*189D.0020.0002] # SIGNWRITING HAND-FLAT HEEL THUMB SIDE
+1D85F ; [*189E.0020.0002] # SIGNWRITING HAND-FLAT THUMB BENT
+1D860 ; [*189F.0020.0002] # SIGNWRITING HAND-FLAT THUMB FORWARD
+1D861 ; [*18A0.0020.0002] # SIGNWRITING HAND-FLAT SPLIT INDEX THUMB SIDE
+1D862 ; [*18A1.0020.0002] # SIGNWRITING HAND-FLAT SPLIT CENTRE
+1D863 ; [*18A2.0020.0002] # SIGNWRITING HAND-FLAT SPLIT CENTRE THUMB SIDE
+1D864 ; [*18A3.0020.0002] # SIGNWRITING HAND-FLAT SPLIT CENTRE THUMB SIDE BENT
+1D865 ; [*18A4.0020.0002] # SIGNWRITING HAND-FLAT SPLIT LITTLE
+1D866 ; [*18A5.0020.0002] # SIGNWRITING HAND-CLAW
+1D867 ; [*18A6.0020.0002] # SIGNWRITING HAND-CLAW THUMB SIDE
+1D868 ; [*18A7.0020.0002] # SIGNWRITING HAND-CLAW NO THUMB
+1D869 ; [*18A8.0020.0002] # SIGNWRITING HAND-CLAW THUMB FORWARD
+1D86A ; [*18A9.0020.0002] # SIGNWRITING HAND-HOOK CURLICUE
+1D86B ; [*18AA.0020.0002] # SIGNWRITING HAND-HOOK
+1D86C ; [*18AB.0020.0002] # SIGNWRITING HAND-CUP OPEN
+1D86D ; [*18AC.0020.0002] # SIGNWRITING HAND-CUP
+1D86E ; [*18AD.0020.0002] # SIGNWRITING HAND-CUP OPEN THUMB SIDE
+1D86F ; [*18AE.0020.0002] # SIGNWRITING HAND-CUP THUMB SIDE
+1D870 ; [*18AF.0020.0002] # SIGNWRITING HAND-CUP OPEN NO THUMB
+1D871 ; [*18B0.0020.0002] # SIGNWRITING HAND-CUP NO THUMB
+1D872 ; [*18B1.0020.0002] # SIGNWRITING HAND-CUP OPEN THUMB FORWARD
+1D873 ; [*18B2.0020.0002] # SIGNWRITING HAND-CUP THUMB FORWARD
+1D874 ; [*18B3.0020.0002] # SIGNWRITING HAND-CURLICUE OPEN
+1D875 ; [*18B4.0020.0002] # SIGNWRITING HAND-CURLICUE
+1D876 ; [*18B5.0020.0002] # SIGNWRITING HAND-CIRCLE
+1D877 ; [*18B6.0020.0002] # SIGNWRITING HAND-OVAL
+1D878 ; [*18B7.0020.0002] # SIGNWRITING HAND-OVAL THUMB SIDE
+1D879 ; [*18B8.0020.0002] # SIGNWRITING HAND-OVAL NO THUMB
+1D87A ; [*18B9.0020.0002] # SIGNWRITING HAND-OVAL THUMB FORWARD
+1D87B ; [*18BA.0020.0002] # SIGNWRITING HAND-HINGE OPEN
+1D87C ; [*18BB.0020.0002] # SIGNWRITING HAND-HINGE OPEN THUMB FORWARD
+1D87D ; [*18BC.0020.0002] # SIGNWRITING HAND-HINGE
+1D87E ; [*18BD.0020.0002] # SIGNWRITING HAND-HINGE SMALL
+1D87F ; [*18BE.0020.0002] # SIGNWRITING HAND-HINGE OPEN THUMB SIDE
+1D880 ; [*18BF.0020.0002] # SIGNWRITING HAND-HINGE THUMB SIDE
+1D881 ; [*18C0.0020.0002] # SIGNWRITING HAND-HINGE OPEN NO THUMB
+1D882 ; [*18C1.0020.0002] # SIGNWRITING HAND-HINGE NO THUMB
+1D883 ; [*18C2.0020.0002] # SIGNWRITING HAND-HINGE THUMB SIDE TOUCHING INDEX
+1D884 ; [*18C3.0020.0002] # SIGNWRITING HAND-HINGE THUMB BETWEEN MIDDLE RING
+1D885 ; [*18C4.0020.0002] # SIGNWRITING HAND-ANGLE
+1D886 ; [*18C5.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE RING
+1D887 ; [*18C6.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE RING
+1D888 ; [*18C7.0020.0002] # SIGNWRITING HAND-HINGE INDEX MIDDLE RING
+1D889 ; [*18C8.0020.0002] # SIGNWRITING HAND-ANGLE INDEX MIDDLE RING
+1D88A ; [*18C9.0020.0002] # SIGNWRITING HAND-HINGE LITTLE
+1D88B ; [*18CA.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE RING BENT
+1D88C ; [*18CB.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE RING CONJOINED
+1D88D ; [*18CC.0020.0002] # SIGNWRITING HAND-HINGE INDEX MIDDLE RING CONJOINED
+1D88E ; [*18CD.0020.0002] # SIGNWRITING HAND-FIST LITTLE DOWN
+1D88F ; [*18CE.0020.0002] # SIGNWRITING HAND-FIST LITTLE DOWN RIPPLE STRAIGHT
+1D890 ; [*18CF.0020.0002] # SIGNWRITING HAND-FIST LITTLE DOWN RIPPLE CURVED
+1D891 ; [*18D0.0020.0002] # SIGNWRITING HAND-FIST LITTLE DOWN OTHERS CIRCLED
+1D892 ; [*18D1.0020.0002] # SIGNWRITING HAND-FIST LITTLE UP
+1D893 ; [*18D2.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER LITTLE UP
+1D894 ; [*18D3.0020.0002] # SIGNWRITING HAND-CIRCLE LITTLE UP
+1D895 ; [*18D4.0020.0002] # SIGNWRITING HAND-OVAL LITTLE UP
+1D896 ; [*18D5.0020.0002] # SIGNWRITING HAND-ANGLE LITTLE UP
+1D897 ; [*18D6.0020.0002] # SIGNWRITING HAND-FIST LITTLE RAISED KNUCKLE
+1D898 ; [*18D7.0020.0002] # SIGNWRITING HAND-FIST LITTLE BENT
+1D899 ; [*18D8.0020.0002] # SIGNWRITING HAND-FIST LITTLE TOUCHES THUMB
+1D89A ; [*18D9.0020.0002] # SIGNWRITING HAND-FIST LITTLE THUMB
+1D89B ; [*18DA.0020.0002] # SIGNWRITING HAND-HINGE LITTLE THUMB
+1D89C ; [*18DB.0020.0002] # SIGNWRITING HAND-FIST LITTLE INDEX THUMB
+1D89D ; [*18DC.0020.0002] # SIGNWRITING HAND-HINGE LITTLE INDEX THUMB
+1D89E ; [*18DD.0020.0002] # SIGNWRITING HAND-ANGLE LITTLE INDEX THUMB INDEX THUMB OUT
+1D89F ; [*18DE.0020.0002] # SIGNWRITING HAND-ANGLE LITTLE INDEX THUMB INDEX THUMB
+1D8A0 ; [*18DF.0020.0002] # SIGNWRITING HAND-FIST LITTLE INDEX
+1D8A1 ; [*18E0.0020.0002] # SIGNWRITING HAND-CIRCLE LITTLE INDEX
+1D8A2 ; [*18E1.0020.0002] # SIGNWRITING HAND-HINGE LITTLE INDEX
+1D8A3 ; [*18E2.0020.0002] # SIGNWRITING HAND-ANGLE LITTLE INDEX
+1D8A4 ; [*18E3.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE LITTLE
+1D8A5 ; [*18E4.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE LITTLE
+1D8A6 ; [*18E5.0020.0002] # SIGNWRITING HAND-HINGE INDEX MIDDLE LITTLE
+1D8A7 ; [*18E6.0020.0002] # SIGNWRITING HAND-HINGE RING
+1D8A8 ; [*18E7.0020.0002] # SIGNWRITING HAND-ANGLE INDEX MIDDLE LITTLE
+1D8A9 ; [*18E8.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CROSS LITTLE
+1D8AA ; [*18E9.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE CROSS LITTLE
+1D8AB ; [*18EA.0020.0002] # SIGNWRITING HAND-FIST RING DOWN
+1D8AC ; [*18EB.0020.0002] # SIGNWRITING HAND-HINGE RING DOWN INDEX THUMB HOOK MIDDLE
+1D8AD ; [*18EC.0020.0002] # SIGNWRITING HAND-ANGLE RING DOWN MIDDLE THUMB INDEX CROSS
+1D8AE ; [*18ED.0020.0002] # SIGNWRITING HAND-FIST RING UP
+1D8AF ; [*18EE.0020.0002] # SIGNWRITING HAND-FIST RING RAISED KNUCKLE
+1D8B0 ; [*18EF.0020.0002] # SIGNWRITING HAND-FIST RING LITTLE
+1D8B1 ; [*18F0.0020.0002] # SIGNWRITING HAND-CIRCLE RING LITTLE
+1D8B2 ; [*18F1.0020.0002] # SIGNWRITING HAND-OVAL RING LITTLE
+1D8B3 ; [*18F2.0020.0002] # SIGNWRITING HAND-ANGLE RING LITTLE
+1D8B4 ; [*18F3.0020.0002] # SIGNWRITING HAND-FIST RING MIDDLE
+1D8B5 ; [*18F4.0020.0002] # SIGNWRITING HAND-FIST RING MIDDLE CONJOINED
+1D8B6 ; [*18F5.0020.0002] # SIGNWRITING HAND-FIST RING MIDDLE RAISED KNUCKLES
+1D8B7 ; [*18F6.0020.0002] # SIGNWRITING HAND-FIST RING INDEX
+1D8B8 ; [*18F7.0020.0002] # SIGNWRITING HAND-FIST RING THUMB
+1D8B9 ; [*18F8.0020.0002] # SIGNWRITING HAND-HOOK RING THUMB
+1D8BA ; [*18F9.0020.0002] # SIGNWRITING HAND-FIST INDEX RING LITTLE
+1D8BB ; [*18FA.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX RING LITTLE
+1D8BC ; [*18FB.0020.0002] # SIGNWRITING HAND-CURLICUE INDEX RING LITTLE ON
+1D8BD ; [*18FC.0020.0002] # SIGNWRITING HAND-HOOK INDEX RING LITTLE OUT
+1D8BE ; [*18FD.0020.0002] # SIGNWRITING HAND-HOOK INDEX RING LITTLE IN
+1D8BF ; [*18FE.0020.0002] # SIGNWRITING HAND-HOOK INDEX RING LITTLE UNDER
+1D8C0 ; [*18FF.0020.0002] # SIGNWRITING HAND-CUP INDEX RING LITTLE
+1D8C1 ; [*1900.0020.0002] # SIGNWRITING HAND-HINGE INDEX RING LITTLE
+1D8C2 ; [*1901.0020.0002] # SIGNWRITING HAND-ANGLE INDEX RING LITTLE OUT
+1D8C3 ; [*1902.0020.0002] # SIGNWRITING HAND-ANGLE INDEX RING LITTLE
+1D8C4 ; [*1903.0020.0002] # SIGNWRITING HAND-FIST MIDDLE DOWN
+1D8C5 ; [*1904.0020.0002] # SIGNWRITING HAND-HINGE MIDDLE
+1D8C6 ; [*1905.0020.0002] # SIGNWRITING HAND-FIST MIDDLE UP
+1D8C7 ; [*1906.0020.0002] # SIGNWRITING HAND-CIRCLE MIDDLE UP
+1D8C8 ; [*1907.0020.0002] # SIGNWRITING HAND-FIST MIDDLE RAISED KNUCKLE
+1D8C9 ; [*1908.0020.0002] # SIGNWRITING HAND-FIST MIDDLE UP THUMB SIDE
+1D8CA ; [*1909.0020.0002] # SIGNWRITING HAND-HOOK MIDDLE THUMB
+1D8CB ; [*190A.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB LITTLE
+1D8CC ; [*190B.0020.0002] # SIGNWRITING HAND-FIST MIDDLE LITTLE
+1D8CD ; [*190C.0020.0002] # SIGNWRITING HAND-FIST MIDDLE RING LITTLE
+1D8CE ; [*190D.0020.0002] # SIGNWRITING HAND-CIRCLE MIDDLE RING LITTLE
+1D8CF ; [*190E.0020.0002] # SIGNWRITING HAND-CURLICUE MIDDLE RING LITTLE ON
+1D8D0 ; [*190F.0020.0002] # SIGNWRITING HAND-CUP MIDDLE RING LITTLE
+1D8D1 ; [*1910.0020.0002] # SIGNWRITING HAND-HINGE MIDDLE RING LITTLE
+1D8D2 ; [*1911.0020.0002] # SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE OUT
+1D8D3 ; [*1912.0020.0002] # SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE IN
+1D8D4 ; [*1913.0020.0002] # SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE
+1D8D5 ; [*1914.0020.0002] # SIGNWRITING HAND-CIRCLE MIDDLE RING LITTLE BENT
+1D8D6 ; [*1915.0020.0002] # SIGNWRITING HAND-CLAW MIDDLE RING LITTLE CONJOINED
+1D8D7 ; [*1916.0020.0002] # SIGNWRITING HAND-CLAW MIDDLE RING LITTLE CONJOINED SIDE
+1D8D8 ; [*1917.0020.0002] # SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED OUT
+1D8D9 ; [*1918.0020.0002] # SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED IN
+1D8DA ; [*1919.0020.0002] # SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED
+1D8DB ; [*191A.0020.0002] # SIGNWRITING HAND-HINGE INDEX HINGED
+1D8DC ; [*191B.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE
+1D8DD ; [*191C.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB SIDE
+1D8DE ; [*191D.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB DIAGONAL
+1D8DF ; [*191E.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB CONJOINED
+1D8E0 ; [*191F.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB BENT
+1D8E1 ; [*1920.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE INDEX BENT
+1D8E2 ; [*1921.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE BOTH BENT
+1D8E3 ; [*1922.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE INDEX HINGE
+1D8E4 ; [*1923.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB FORWARD INDEX STRAIGHT
+1D8E5 ; [*1924.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB FORWARD INDEX BENT
+1D8E6 ; [*1925.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB HOOK
+1D8E7 ; [*1926.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CURLICUE
+1D8E8 ; [*1927.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CURVE THUMB INSIDE
+1D8E9 ; [*1928.0020.0002] # SIGNWRITING HAND-CLAW INDEX THUMB CURVE THUMB INSIDE
+1D8EA ; [*1929.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CURVE THUMB UNDER
+1D8EB ; [*192A.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CIRCLE
+1D8EC ; [*192B.0020.0002] # SIGNWRITING HAND-CUP INDEX THUMB
+1D8ED ; [*192C.0020.0002] # SIGNWRITING HAND-CUP INDEX THUMB OPEN
+1D8EE ; [*192D.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB OPEN
+1D8EF ; [*192E.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB LARGE
+1D8F0 ; [*192F.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB
+1D8F1 ; [*1930.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB SMALL
+1D8F2 ; [*1931.0020.0002] # SIGNWRITING HAND-ANGLE INDEX THUMB OUT
+1D8F3 ; [*1932.0020.0002] # SIGNWRITING HAND-ANGLE INDEX THUMB IN
+1D8F4 ; [*1933.0020.0002] # SIGNWRITING HAND-ANGLE INDEX THUMB
+1D8F5 ; [*1934.0020.0002] # SIGNWRITING HAND-FIST THUMB
+1D8F6 ; [*1935.0020.0002] # SIGNWRITING HAND-FIST THUMB HEEL
+1D8F7 ; [*1936.0020.0002] # SIGNWRITING HAND-FIST THUMB SIDE DIAGONAL
+1D8F8 ; [*1937.0020.0002] # SIGNWRITING HAND-FIST THUMB SIDE CONJOINED
+1D8F9 ; [*1938.0020.0002] # SIGNWRITING HAND-FIST THUMB SIDE BENT
+1D8FA ; [*1939.0020.0002] # SIGNWRITING HAND-FIST THUMB FORWARD
+1D8FB ; [*193A.0020.0002] # SIGNWRITING HAND-FIST THUMB BETWEEN INDEX MIDDLE
+1D8FC ; [*193B.0020.0002] # SIGNWRITING HAND-FIST THUMB BETWEEN MIDDLE RING
+1D8FD ; [*193C.0020.0002] # SIGNWRITING HAND-FIST THUMB BETWEEN RING LITTLE
+1D8FE ; [*193D.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER TWO FINGERS
+1D8FF ; [*193E.0020.0002] # SIGNWRITING HAND-FIST THUMB OVER TWO FINGERS
+1D900 ; [*193F.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER THREE FINGERS
+1D901 ; [*1940.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER FOUR FINGERS
+1D902 ; [*1941.0020.0002] # SIGNWRITING HAND-FIST THUMB OVER FOUR RAISED KNUCKLES
+1D903 ; [*1942.0020.0002] # SIGNWRITING HAND-FIST
+1D904 ; [*1943.0020.0002] # SIGNWRITING HAND-FIST HEEL
+1D905 ; [*1944.0020.0002] # SIGNWRITING TOUCH SINGLE
+1D906 ; [*1945.0020.0002] # SIGNWRITING TOUCH MULTIPLE
+1D907 ; [*1946.0020.0002] # SIGNWRITING TOUCH BETWEEN
+1D908 ; [*1947.0020.0002] # SIGNWRITING GRASP SINGLE
+1D909 ; [*1948.0020.0002] # SIGNWRITING GRASP MULTIPLE
+1D90A ; [*1949.0020.0002] # SIGNWRITING GRASP BETWEEN
+1D90B ; [*194A.0020.0002] # SIGNWRITING STRIKE SINGLE
+1D90C ; [*194B.0020.0002] # SIGNWRITING STRIKE MULTIPLE
+1D90D ; [*194C.0020.0002] # SIGNWRITING STRIKE BETWEEN
+1D90E ; [*194D.0020.0002] # SIGNWRITING BRUSH SINGLE
+1D90F ; [*194E.0020.0002] # SIGNWRITING BRUSH MULTIPLE
+1D910 ; [*194F.0020.0002] # SIGNWRITING BRUSH BETWEEN
+1D911 ; [*1950.0020.0002] # SIGNWRITING RUB SINGLE
+1D912 ; [*1951.0020.0002] # SIGNWRITING RUB MULTIPLE
+1D913 ; [*1952.0020.0002] # SIGNWRITING RUB BETWEEN
+1D914 ; [*1953.0020.0002] # SIGNWRITING SURFACE SYMBOLS
+1D915 ; [*1954.0020.0002] # SIGNWRITING SURFACE BETWEEN
+1D916 ; [*1955.0020.0002] # SIGNWRITING SQUEEZE LARGE SINGLE
+1D917 ; [*1956.0020.0002] # SIGNWRITING SQUEEZE SMALL SINGLE
+1D918 ; [*1957.0020.0002] # SIGNWRITING SQUEEZE LARGE MULTIPLE
+1D919 ; [*1958.0020.0002] # SIGNWRITING SQUEEZE SMALL MULTIPLE
+1D91A ; [*1959.0020.0002] # SIGNWRITING SQUEEZE SEQUENTIAL
+1D91B ; [*195A.0020.0002] # SIGNWRITING FLICK LARGE SINGLE
+1D91C ; [*195B.0020.0002] # SIGNWRITING FLICK SMALL SINGLE
+1D91D ; [*195C.0020.0002] # SIGNWRITING FLICK LARGE MULTIPLE
+1D91E ; [*195D.0020.0002] # SIGNWRITING FLICK SMALL MULTIPLE
+1D91F ; [*195E.0020.0002] # SIGNWRITING FLICK SEQUENTIAL
+1D920 ; [*195F.0020.0002] # SIGNWRITING SQUEEZE FLICK ALTERNATING
+1D921 ; [*1960.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP DOWN LARGE
+1D922 ; [*1961.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP DOWN SMALL
+1D923 ; [*1962.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP SEQUENTIAL
+1D924 ; [*1963.0020.0002] # SIGNWRITING MOVEMENT-HINGE DOWN SEQUENTIAL
+1D925 ; [*1964.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP DOWN ALTERNATING LARGE
+1D926 ; [*1965.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP DOWN ALTERNATING SMALL
+1D927 ; [*1966.0020.0002] # SIGNWRITING MOVEMENT-HINGE SIDE TO SIDE SCISSORS
+1D928 ; [*1967.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE FINGER CONTACT
+1D929 ; [*1968.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE FINGER CONTACT
+1D92A ; [*1969.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT SMALL
+1D92B ; [*196A.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT MEDIUM
+1D92C ; [*196B.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT LARGE
+1D92D ; [*196C.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT LARGEST
+1D92E ; [*196D.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE WRIST FLEX
+1D92F ; [*196E.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE DOUBLE STRAIGHT
+1D930 ; [*196F.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE DOUBLE WRIST FLEX
+1D931 ; [*1970.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE DOUBLE ALTERNATING
+1D932 ; [*1971.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE DOUBLE ALTERNATING WRIST FLEX
+1D933 ; [*1972.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CROSS
+1D934 ; [*1973.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE TRIPLE STRAIGHT MOVEMENT
+1D935 ; [*1974.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE TRIPLE WRIST FLEX
+1D936 ; [*1975.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE TRIPLE ALTERNATING
+1D937 ; [*1976.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE TRIPLE ALTERNATING WRIST FLEX
+1D938 ; [*1977.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BEND SMALL
+1D939 ; [*1978.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BEND MEDIUM
+1D93A ; [*1979.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BEND LARGE
+1D93B ; [*197A.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CORNER SMALL
+1D93C ; [*197B.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CORNER MEDIUM
+1D93D ; [*197C.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CORNER LARGE
+1D93E ; [*197D.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CORNER ROTATION
+1D93F ; [*197E.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CHECK SMALL
+1D940 ; [*197F.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CHECK MEDIUM
+1D941 ; [*1980.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CHECK LARGE
+1D942 ; [*1981.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BOX SMALL
+1D943 ; [*1982.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BOX MEDIUM
+1D944 ; [*1983.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BOX LARGE
+1D945 ; [*1984.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG SMALL
+1D946 ; [*1985.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG MEDIUM
+1D947 ; [*1986.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG LARGE
+1D948 ; [*1987.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE PEAKS SMALL
+1D949 ; [*1988.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE PEAKS MEDIUM
+1D94A ; [*1989.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE PEAKS LARGE
+1D94B ; [*198A.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE SINGLE
+1D94C ; [*198B.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE DOUBLE
+1D94D ; [*198C.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE ALTERNATING
+1D94E ; [*198D.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE SINGLE
+1D94F ; [*198E.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE DOUBLE
+1D950 ; [*198F.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE ALTERNATING
+1D951 ; [*1990.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE SHAKING
+1D952 ; [*1991.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL SINGLE
+1D953 ; [*1992.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL DOUBLE
+1D954 ; [*1993.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL TRIPLE
+1D955 ; [*1994.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL AWAY SMALL
+1D956 ; [*1995.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL AWAY MEDIUM
+1D957 ; [*1996.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL AWAY LARGE
+1D958 ; [*1997.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL AWAY LARGEST
+1D959 ; [*1998.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL TOWARDS SMALL
+1D95A ; [*1999.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL TOWARDS MEDIUM
+1D95B ; [*199A.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL TOWARDS LARGE
+1D95C ; [*199B.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL TOWARDS LARGEST
+1D95D ; [*199C.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY SMALL
+1D95E ; [*199D.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY MEDIUM
+1D95F ; [*199E.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY LARGE
+1D960 ; [*199F.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY LARGEST
+1D961 ; [*19A0.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS SMALL
+1D962 ; [*19A1.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS MEDIUM
+1D963 ; [*19A2.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS LARGE
+1D964 ; [*19A3.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS LARGEST
+1D965 ; [*19A4.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT SMALL
+1D966 ; [*19A5.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT MEDIUM
+1D967 ; [*19A6.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT LARGE
+1D968 ; [*19A7.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT LARGEST
+1D969 ; [*19A8.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE WRIST FLEX
+1D96A ; [*19A9.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE STRAIGHT
+1D96B ; [*19AA.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE WRIST FLEX
+1D96C ; [*19AB.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE ALTERNATING
+1D96D ; [*19AC.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE ALTERNATING WRIST FLEX
+1D96E ; [*19AD.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CROSS
+1D96F ; [*19AE.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE STRAIGHT MOVEMENT
+1D970 ; [*19AF.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE WRIST FLEX
+1D971 ; [*19B0.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE ALTERNATING MOVEMENT
+1D972 ; [*19B1.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE ALTERNATING WRIST FLEX
+1D973 ; [*19B2.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE BEND
+1D974 ; [*19B3.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CORNER SMALL
+1D975 ; [*19B4.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CORNER MEDIUM
+1D976 ; [*19B5.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CORNER LARGE
+1D977 ; [*19B6.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CHECK
+1D978 ; [*19B7.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE BOX SMALL
+1D979 ; [*19B8.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE BOX MEDIUM
+1D97A ; [*19B9.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE BOX LARGE
+1D97B ; [*19BA.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG SMALL
+1D97C ; [*19BB.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG MEDIUM
+1D97D ; [*19BC.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG LARGE
+1D97E ; [*19BD.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE PEAKS SMALL
+1D97F ; [*19BE.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE PEAKS MEDIUM
+1D980 ; [*19BF.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE PEAKS LARGE
+1D981 ; [*19C0.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE SINGLE
+1D982 ; [*19C1.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE DOUBLE
+1D983 ; [*19C2.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE ALTERNATING
+1D984 ; [*19C3.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE SINGLE
+1D985 ; [*19C4.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE DOUBLE
+1D986 ; [*19C5.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE ALTERNATING
+1D987 ; [*19C6.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE SHAKING
+1D988 ; [*19C7.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER SMALL
+1D989 ; [*19C8.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER MEDIUM
+1D98A ; [*19C9.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER LARGE
+1D98B ; [*19CA.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER LARGEST
+1D98C ; [*19CB.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE SMALL
+1D98D ; [*19CC.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE MEDIUM
+1D98E ; [*19CD.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE LARGE
+1D98F ; [*19CE.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE LARGEST
+1D990 ; [*19CF.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE THREE-QUARTER CIRCLE SMALL
+1D991 ; [*19D0.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE THREE-QUARTER CIRCLE MEDIUM
+1D992 ; [*19D1.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP SMALL
+1D993 ; [*19D2.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP MEDIUM
+1D994 ; [*19D3.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP LARGE
+1D995 ; [*19D4.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP SMALL
+1D996 ; [*19D5.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP MEDIUM
+1D997 ; [*19D6.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP LARGE
+1D998 ; [*19D7.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP SMALL DOUBLE
+1D999 ; [*19D8.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE SMALL
+1D99A ; [*19D9.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE MEDIUM
+1D99B ; [*19DA.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE LARGE
+1D99C ; [*19DB.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE SMALL
+1D99D ; [*19DC.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE MEDIUM
+1D99E ; [*19DD.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE LARGE
+1D99F ; [*19DE.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE THEN STRAIGHT
+1D9A0 ; [*19DF.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVED CROSS SMALL
+1D9A1 ; [*19E0.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVED CROSS MEDIUM
+1D9A2 ; [*19E1.0020.0002] # SIGNWRITING ROTATION-WALLPLANE SINGLE
+1D9A3 ; [*19E2.0020.0002] # SIGNWRITING ROTATION-WALLPLANE DOUBLE
+1D9A4 ; [*19E3.0020.0002] # SIGNWRITING ROTATION-WALLPLANE ALTERNATE
+1D9A5 ; [*19E4.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SHAKING
+1D9A6 ; [*19E5.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HITTING FRONT WALL
+1D9A7 ; [*19E6.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP HITTING FRONT WALL
+1D9A8 ; [*19E7.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP HITTING FRONT WALL
+1D9A9 ; [*19E8.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE HITTING FRONT WALL
+1D9AA ; [*19E9.0020.0002] # SIGNWRITING ROTATION-WALLPLANE SINGLE HITTING FRONT WALL
+1D9AB ; [*19EA.0020.0002] # SIGNWRITING ROTATION-WALLPLANE DOUBLE HITTING FRONT WALL
+1D9AC ; [*19EB.0020.0002] # SIGNWRITING ROTATION-WALLPLANE ALTERNATING HITTING FRONT WALL
+1D9AD ; [*19EC.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HITTING CHEST
+1D9AE ; [*19ED.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP HITTING CHEST
+1D9AF ; [*19EE.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP HITTING CHEST
+1D9B0 ; [*19EF.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE HITTING CHEST
+1D9B1 ; [*19F0.0020.0002] # SIGNWRITING ROTATION-WALLPLANE SINGLE HITTING CHEST
+1D9B2 ; [*19F1.0020.0002] # SIGNWRITING ROTATION-WALLPLANE DOUBLE HITTING CHEST
+1D9B3 ; [*19F2.0020.0002] # SIGNWRITING ROTATION-WALLPLANE ALTERNATING HITTING CHEST
+1D9B4 ; [*19F3.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH SMALL
+1D9B5 ; [*19F4.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH MEDIUM
+1D9B6 ; [*19F5.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH LARGE
+1D9B7 ; [*19F6.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING CEILING SMALL
+1D9B8 ; [*19F7.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING CEILING LARGE
+1D9B9 ; [*19F8.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING SMALL DOUBLE
+1D9BA ; [*19F9.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING LARGE DOUBLE
+1D9BB ; [*19FA.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING SMALL TRIPLE
+1D9BC ; [*19FB.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING LARGE TRIPLE
+1D9BD ; [*19FC.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING SMALL SINGLE
+1D9BE ; [*19FD.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING LARGE SINGLE
+1D9BF ; [*19FE.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING SMALL DOUBLE
+1D9C0 ; [*19FF.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING LARGE DOUBLE
+1D9C1 ; [*1A00.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING CEILING SMALL
+1D9C2 ; [*1A01.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING CEILING LARGE
+1D9C3 ; [*1A02.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE SINGLE HITTING CEILING
+1D9C4 ; [*1A03.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE DOUBLE HITTING CEILING
+1D9C5 ; [*1A04.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE ALTERNATING HITTING CEILING
+1D9C6 ; [*1A05.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING FLOOR SMALL
+1D9C7 ; [*1A06.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING FLOOR LARGE
+1D9C8 ; [*1A07.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR SMALL DOUBLE
+1D9C9 ; [*1A08.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR LARGE DOUBLE
+1D9CA ; [*1A09.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR TRIPLE SMALL TRIPLE
+1D9CB ; [*1A0A.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR TRIPLE LARGE TRIPLE
+1D9CC ; [*1A0B.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR SMALL SINGLE
+1D9CD ; [*1A0C.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR LARGE SINGLE
+1D9CE ; [*1A0D.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR SMALL DOUBLE
+1D9CF ; [*1A0E.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR LARGE DOUBLE
+1D9D0 ; [*1A0F.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING FLOOR SMALL
+1D9D1 ; [*1A10.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING FLOOR LARGE
+1D9D2 ; [*1A11.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE SINGLE HITTING FLOOR
+1D9D3 ; [*1A12.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE DOUBLE HITTING FLOOR
+1D9D4 ; [*1A13.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE ALTERNATING HITTING FLOOR
+1D9D5 ; [*1A14.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE SMALL
+1D9D6 ; [*1A15.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE MEDIUM
+1D9D7 ; [*1A16.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE LARGE
+1D9D8 ; [*1A17.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE LARGEST
+1D9D9 ; [*1A18.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE COMBINED
+1D9DA ; [*1A19.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP SMALL
+1D9DB ; [*1A1A.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP SMALL
+1D9DC ; [*1A1B.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE SNAKE
+1D9DD ; [*1A1C.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE SMALL
+1D9DE ; [*1A1D.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE LARGE
+1D9DF ; [*1A1E.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE SINGLE
+1D9E0 ; [*1A1F.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE DOUBLE
+1D9E1 ; [*1A20.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE ALTERNATING
+1D9E2 ; [*1A21.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SHAKING PARALLEL
+1D9E3 ; [*1A22.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE SMALL SINGLE
+1D9E4 ; [*1A23.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE MEDIUM SINGLE
+1D9E5 ; [*1A24.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE SMALL DOUBLE
+1D9E6 ; [*1A25.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE MEDIUM DOUBLE
+1D9E7 ; [*1A26.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL SMALL SINGLE
+1D9E8 ; [*1A27.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL MEDIUM SINGLE
+1D9E9 ; [*1A28.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL LARGE SINGLE
+1D9EA ; [*1A29.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL SMALL DOUBLE
+1D9EB ; [*1A2A.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL MEDIUM DOUBLE
+1D9EC ; [*1A2B.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL LARGE DOUBLE
+1D9ED ; [*1A2C.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WRIST CIRCLE FRONT SINGLE
+1D9EE ; [*1A2D.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WRIST CIRCLE FRONT DOUBLE
+1D9EF ; [*1A2E.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WRIST CIRCLE HITTING WALL SINGLE
+1D9F0 ; [*1A2F.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WRIST CIRCLE HITTING WALL DOUBLE
+1D9F1 ; [*1A30.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE FINGER CIRCLES SINGLE
+1D9F2 ; [*1A31.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE FINGER CIRCLES DOUBLE
+1D9F3 ; [*1A32.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE FINGER CIRCLES HITTING WALL SINGLE
+1D9F4 ; [*1A33.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE FINGER CIRCLES HITTING WALL DOUBLE
+1D9F5 ; [*1A34.0020.0002] # SIGNWRITING DYNAMIC ARROWHEAD SMALL
+1D9F6 ; [*1A35.0020.0002] # SIGNWRITING DYNAMIC ARROWHEAD LARGE
+1D9F7 ; [*1A36.0020.0002] # SIGNWRITING DYNAMIC FAST
+1D9F8 ; [*1A37.0020.0002] # SIGNWRITING DYNAMIC SLOW
+1D9F9 ; [*1A38.0020.0002] # SIGNWRITING DYNAMIC TENSE
+1D9FA ; [*1A39.0020.0002] # SIGNWRITING DYNAMIC RELAXED
+1D9FB ; [*1A3A.0020.0002] # SIGNWRITING DYNAMIC SIMULTANEOUS
+1D9FC ; [*1A3B.0020.0002] # SIGNWRITING DYNAMIC SIMULTANEOUS ALTERNATING
+1D9FD ; [*1A3C.0020.0002] # SIGNWRITING DYNAMIC EVERY OTHER TIME
+1D9FE ; [*1A3D.0020.0002] # SIGNWRITING DYNAMIC GRADUAL
+1D9FF ; [*1A3E.0020.0002] # SIGNWRITING HEAD
+1DA00 ; [.0000.0000.0000] # SIGNWRITING HEAD RIM
+1DA01 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-WALLPLANE STRAIGHT
+1DA02 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-WALLPLANE TILT
+1DA03 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-FLOORPLANE STRAIGHT
+1DA04 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-WALLPLANE CURVE
+1DA05 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-FLOORPLANE CURVE
+1DA06 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT CIRCLE
+1DA07 ; [.0000.0000.0000] # SIGNWRITING FACE DIRECTION POSITION NOSE FORWARD TILTING
+1DA08 ; [.0000.0000.0000] # SIGNWRITING FACE DIRECTION POSITION NOSE UP OR DOWN
+1DA09 ; [.0000.0000.0000] # SIGNWRITING FACE DIRECTION POSITION NOSE UP OR DOWN TILTING
+1DA0A ; [.0000.0000.0000] # SIGNWRITING EYEBROWS STRAIGHT UP
+1DA0B ; [.0000.0000.0000] # SIGNWRITING EYEBROWS STRAIGHT NEUTRAL
+1DA0C ; [.0000.0000.0000] # SIGNWRITING EYEBROWS STRAIGHT DOWN
+1DA0D ; [.0000.0000.0000] # SIGNWRITING DREAMY EYEBROWS NEUTRAL DOWN
+1DA0E ; [.0000.0000.0000] # SIGNWRITING DREAMY EYEBROWS DOWN NEUTRAL
+1DA0F ; [.0000.0000.0000] # SIGNWRITING DREAMY EYEBROWS UP NEUTRAL
+1DA10 ; [.0000.0000.0000] # SIGNWRITING DREAMY EYEBROWS NEUTRAL UP
+1DA11 ; [.0000.0000.0000] # SIGNWRITING FOREHEAD NEUTRAL
+1DA12 ; [.0000.0000.0000] # SIGNWRITING FOREHEAD CONTACT
+1DA13 ; [.0000.0000.0000] # SIGNWRITING FOREHEAD WRINKLED
+1DA14 ; [.0000.0000.0000] # SIGNWRITING EYES OPEN
+1DA15 ; [.0000.0000.0000] # SIGNWRITING EYES SQUEEZED
+1DA16 ; [.0000.0000.0000] # SIGNWRITING EYES CLOSED
+1DA17 ; [.0000.0000.0000] # SIGNWRITING EYE BLINK SINGLE
+1DA18 ; [.0000.0000.0000] # SIGNWRITING EYE BLINK MULTIPLE
+1DA19 ; [.0000.0000.0000] # SIGNWRITING EYES HALF OPEN
+1DA1A ; [.0000.0000.0000] # SIGNWRITING EYES WIDE OPEN
+1DA1B ; [.0000.0000.0000] # SIGNWRITING EYES HALF CLOSED
+1DA1C ; [.0000.0000.0000] # SIGNWRITING EYES WIDENING MOVEMENT
+1DA1D ; [.0000.0000.0000] # SIGNWRITING EYE WINK
+1DA1E ; [.0000.0000.0000] # SIGNWRITING EYELASHES UP
+1DA1F ; [.0000.0000.0000] # SIGNWRITING EYELASHES DOWN
+1DA20 ; [.0000.0000.0000] # SIGNWRITING EYELASHES FLUTTERING
+1DA21 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT
+1DA22 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT DOUBLE
+1DA23 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT ALTERNATING
+1DA24 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT
+1DA25 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT DOUBLE
+1DA26 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT ALTERNATING
+1DA27 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE CURVED
+1DA28 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-FLOORPLANE CURVED
+1DA29 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE CIRCLING
+1DA2A ; [.0000.0000.0000] # SIGNWRITING CHEEKS PUFFED
+1DA2B ; [.0000.0000.0000] # SIGNWRITING CHEEKS NEUTRAL
+1DA2C ; [.0000.0000.0000] # SIGNWRITING CHEEKS SUCKED
+1DA2D ; [.0000.0000.0000] # SIGNWRITING TENSE CHEEKS HIGH
+1DA2E ; [.0000.0000.0000] # SIGNWRITING TENSE CHEEKS MIDDLE
+1DA2F ; [.0000.0000.0000] # SIGNWRITING TENSE CHEEKS LOW
+1DA30 ; [.0000.0000.0000] # SIGNWRITING EARS
+1DA31 ; [.0000.0000.0000] # SIGNWRITING NOSE NEUTRAL
+1DA32 ; [.0000.0000.0000] # SIGNWRITING NOSE CONTACT
+1DA33 ; [.0000.0000.0000] # SIGNWRITING NOSE WRINKLES
+1DA34 ; [.0000.0000.0000] # SIGNWRITING NOSE WIGGLES
+1DA35 ; [.0000.0000.0000] # SIGNWRITING AIR BLOWING OUT
+1DA36 ; [.0000.0000.0000] # SIGNWRITING AIR SUCKING IN
+1DA37 ; [*1A3F.0020.0002] # SIGNWRITING AIR BLOW SMALL ROTATIONS
+1DA38 ; [*1A40.0020.0002] # SIGNWRITING AIR SUCK SMALL ROTATIONS
+1DA39 ; [*1A41.0020.0002] # SIGNWRITING BREATH INHALE
+1DA3A ; [*1A42.0020.0002] # SIGNWRITING BREATH EXHALE
+1DA3B ; [.0000.0000.0000] # SIGNWRITING MOUTH CLOSED NEUTRAL
+1DA3C ; [.0000.0000.0000] # SIGNWRITING MOUTH CLOSED FORWARD
+1DA3D ; [.0000.0000.0000] # SIGNWRITING MOUTH CLOSED CONTACT
+1DA3E ; [.0000.0000.0000] # SIGNWRITING MOUTH SMILE
+1DA3F ; [.0000.0000.0000] # SIGNWRITING MOUTH SMILE WRINKLED
+1DA40 ; [.0000.0000.0000] # SIGNWRITING MOUTH SMILE OPEN
+1DA41 ; [.0000.0000.0000] # SIGNWRITING MOUTH FROWN
+1DA42 ; [.0000.0000.0000] # SIGNWRITING MOUTH FROWN WRINKLED
+1DA43 ; [.0000.0000.0000] # SIGNWRITING MOUTH FROWN OPEN
+1DA44 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN CIRCLE
+1DA45 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN FORWARD
+1DA46 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN WRINKLED
+1DA47 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN OVAL
+1DA48 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN OVAL WRINKLED
+1DA49 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN OVAL YAWN
+1DA4A ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN RECTANGLE
+1DA4B ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN RECTANGLE WRINKLED
+1DA4C ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN RECTANGLE YAWN
+1DA4D ; [.0000.0000.0000] # SIGNWRITING MOUTH KISS
+1DA4E ; [.0000.0000.0000] # SIGNWRITING MOUTH KISS FORWARD
+1DA4F ; [.0000.0000.0000] # SIGNWRITING MOUTH KISS WRINKLED
+1DA50 ; [.0000.0000.0000] # SIGNWRITING MOUTH TENSE
+1DA51 ; [.0000.0000.0000] # SIGNWRITING MOUTH TENSE FORWARD
+1DA52 ; [.0000.0000.0000] # SIGNWRITING MOUTH TENSE SUCKED
+1DA53 ; [.0000.0000.0000] # SIGNWRITING LIPS PRESSED TOGETHER
+1DA54 ; [.0000.0000.0000] # SIGNWRITING LIP LOWER OVER UPPER
+1DA55 ; [.0000.0000.0000] # SIGNWRITING LIP UPPER OVER LOWER
+1DA56 ; [.0000.0000.0000] # SIGNWRITING MOUTH CORNERS
+1DA57 ; [.0000.0000.0000] # SIGNWRITING MOUTH WRINKLES SINGLE
+1DA58 ; [.0000.0000.0000] # SIGNWRITING MOUTH WRINKLES DOUBLE
+1DA59 ; [.0000.0000.0000] # SIGNWRITING TONGUE STICKING OUT FAR
+1DA5A ; [.0000.0000.0000] # SIGNWRITING TONGUE LICKING LIPS
+1DA5B ; [.0000.0000.0000] # SIGNWRITING TONGUE TIP BETWEEN LIPS
+1DA5C ; [.0000.0000.0000] # SIGNWRITING TONGUE TIP TOUCHING INSIDE MOUTH
+1DA5D ; [.0000.0000.0000] # SIGNWRITING TONGUE INSIDE MOUTH RELAXED
+1DA5E ; [.0000.0000.0000] # SIGNWRITING TONGUE MOVES AGAINST CHEEK
+1DA5F ; [.0000.0000.0000] # SIGNWRITING TONGUE CENTRE STICKING OUT
+1DA60 ; [.0000.0000.0000] # SIGNWRITING TONGUE CENTRE INSIDE MOUTH
+1DA61 ; [.0000.0000.0000] # SIGNWRITING TEETH
+1DA62 ; [.0000.0000.0000] # SIGNWRITING TEETH MOVEMENT
+1DA63 ; [.0000.0000.0000] # SIGNWRITING TEETH ON TONGUE
+1DA64 ; [.0000.0000.0000] # SIGNWRITING TEETH ON TONGUE MOVEMENT
+1DA65 ; [.0000.0000.0000] # SIGNWRITING TEETH ON LIPS
+1DA66 ; [.0000.0000.0000] # SIGNWRITING TEETH ON LIPS MOVEMENT
+1DA67 ; [.0000.0000.0000] # SIGNWRITING TEETH BITE LIPS
+1DA68 ; [.0000.0000.0000] # SIGNWRITING MOVEMENT-WALLPLANE JAW
+1DA69 ; [.0000.0000.0000] # SIGNWRITING MOVEMENT-FLOORPLANE JAW
+1DA6A ; [.0000.0000.0000] # SIGNWRITING NECK
+1DA6B ; [.0000.0000.0000] # SIGNWRITING HAIR
+1DA6C ; [.0000.0000.0000] # SIGNWRITING EXCITEMENT
+1DA6D ; [*1A43.0020.0002] # SIGNWRITING SHOULDER HIP SPINE
+1DA6E ; [*1A44.0020.0002] # SIGNWRITING SHOULDER HIP POSITIONS
+1DA6F ; [*1A45.0020.0002] # SIGNWRITING WALLPLANE SHOULDER HIP MOVE
+1DA70 ; [*1A46.0020.0002] # SIGNWRITING FLOORPLANE SHOULDER HIP MOVE
+1DA71 ; [*1A47.0020.0002] # SIGNWRITING SHOULDER TILTING FROM WAIST
+1DA72 ; [*1A48.0020.0002] # SIGNWRITING TORSO-WALLPLANE STRAIGHT STRETCH
+1DA73 ; [*1A49.0020.0002] # SIGNWRITING TORSO-WALLPLANE CURVED BEND
+1DA74 ; [*1A4A.0020.0002] # SIGNWRITING TORSO-FLOORPLANE TWISTING
+1DA75 ; [.0000.0000.0000] # SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+1DA76 ; [*1A4B.0020.0002] # SIGNWRITING LIMB COMBINATION
+1DA77 ; [*1A4C.0020.0002] # SIGNWRITING LIMB LENGTH-1
+1DA78 ; [*1A4D.0020.0002] # SIGNWRITING LIMB LENGTH-2
+1DA79 ; [*1A4E.0020.0002] # SIGNWRITING LIMB LENGTH-3
+1DA7A ; [*1A4F.0020.0002] # SIGNWRITING LIMB LENGTH-4
+1DA7B ; [*1A50.0020.0002] # SIGNWRITING LIMB LENGTH-5
+1DA7C ; [*1A51.0020.0002] # SIGNWRITING LIMB LENGTH-6
+1DA7D ; [*1A52.0020.0002] # SIGNWRITING LIMB LENGTH-7
+1DA7E ; [*1A53.0020.0002] # SIGNWRITING FINGER
+1DA7F ; [*1A54.0020.0002] # SIGNWRITING LOCATION-WALLPLANE SPACE
+1DA80 ; [*1A55.0020.0002] # SIGNWRITING LOCATION-FLOORPLANE SPACE
+1DA81 ; [*1A56.0020.0002] # SIGNWRITING LOCATION HEIGHT
+1DA82 ; [*1A57.0020.0002] # SIGNWRITING LOCATION WIDTH
+1DA83 ; [*1A58.0020.0002] # SIGNWRITING LOCATION DEPTH
+1DA84 ; [.0000.0000.0000] # SIGNWRITING LOCATION HEAD NECK
+1DA85 ; [*1A59.0020.0002] # SIGNWRITING LOCATION TORSO
+1DA86 ; [*1A5A.0020.0002] # SIGNWRITING LOCATION LIMBS DIGITS
+1DA87 ; [*047D.0020.0002] # SIGNWRITING COMMA
+1DA88 ; [*047E.0020.0002] # SIGNWRITING FULL STOP
+1DA89 ; [*047F.0020.0002] # SIGNWRITING SEMICOLON
+1DA8A ; [*0480.0020.0002] # SIGNWRITING COLON
+1DA8B ; [*0481.0020.0002] # SIGNWRITING PARENTHESIS
+1DA9B ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-2
+1DA9C ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-3
+1DA9D ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-4
+1DA9E ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-5
+1DA9F ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-6
+1DAA1 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-2
+1DAA2 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-3
+1DAA3 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-4
+1DAA4 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-5
+1DAA5 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-6
+1DAA6 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-7
+1DAA7 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-8
+1DAA8 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-9
+1DAA9 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-10
+1DAAA ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-11
+1DAAB ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-12
+1DAAC ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-13
+1DAAD ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-14
+1DAAE ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-15
+1DAAF ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-16
1E8D0 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER TEENS
1E8D1 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER TENS
1E8D2 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER HUNDREDS
@@ -5214,1574 +6065,1692 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
1E8D4 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS
1E8D5 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS
1E8D6 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER MILLIONS
-1EEF0 ; [*04BF.0020.0002] # ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
-1EEF1 ; [*04C0.0020.0002] # ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-1F000 ; [*1172.0020.0002] # MAHJONG TILE EAST WIND
-1F001 ; [*1173.0020.0002] # MAHJONG TILE SOUTH WIND
-1F002 ; [*1174.0020.0002] # MAHJONG TILE WEST WIND
-1F003 ; [*1175.0020.0002] # MAHJONG TILE NORTH WIND
-1F004 ; [*1176.0020.0002] # MAHJONG TILE RED DRAGON
-1F005 ; [*1177.0020.0002] # MAHJONG TILE GREEN DRAGON
-1F006 ; [*1178.0020.0002] # MAHJONG TILE WHITE DRAGON
-1F007 ; [*1179.0020.0002] # MAHJONG TILE ONE OF CHARACTERS
-1F008 ; [*117A.0020.0002] # MAHJONG TILE TWO OF CHARACTERS
-1F009 ; [*117B.0020.0002] # MAHJONG TILE THREE OF CHARACTERS
-1F00A ; [*117C.0020.0002] # MAHJONG TILE FOUR OF CHARACTERS
-1F00B ; [*117D.0020.0002] # MAHJONG TILE FIVE OF CHARACTERS
-1F00C ; [*117E.0020.0002] # MAHJONG TILE SIX OF CHARACTERS
-1F00D ; [*117F.0020.0002] # MAHJONG TILE SEVEN OF CHARACTERS
-1F00E ; [*1180.0020.0002] # MAHJONG TILE EIGHT OF CHARACTERS
-1F00F ; [*1181.0020.0002] # MAHJONG TILE NINE OF CHARACTERS
-1F010 ; [*1182.0020.0002] # MAHJONG TILE ONE OF BAMBOOS
-1F011 ; [*1183.0020.0002] # MAHJONG TILE TWO OF BAMBOOS
-1F012 ; [*1184.0020.0002] # MAHJONG TILE THREE OF BAMBOOS
-1F013 ; [*1185.0020.0002] # MAHJONG TILE FOUR OF BAMBOOS
-1F014 ; [*1186.0020.0002] # MAHJONG TILE FIVE OF BAMBOOS
-1F015 ; [*1187.0020.0002] # MAHJONG TILE SIX OF BAMBOOS
-1F016 ; [*1188.0020.0002] # MAHJONG TILE SEVEN OF BAMBOOS
-1F017 ; [*1189.0020.0002] # MAHJONG TILE EIGHT OF BAMBOOS
-1F018 ; [*118A.0020.0002] # MAHJONG TILE NINE OF BAMBOOS
-1F019 ; [*118B.0020.0002] # MAHJONG TILE ONE OF CIRCLES
-1F01A ; [*118C.0020.0002] # MAHJONG TILE TWO OF CIRCLES
-1F01B ; [*118D.0020.0002] # MAHJONG TILE THREE OF CIRCLES
-1F01C ; [*118E.0020.0002] # MAHJONG TILE FOUR OF CIRCLES
-1F01D ; [*118F.0020.0002] # MAHJONG TILE FIVE OF CIRCLES
-1F01E ; [*1190.0020.0002] # MAHJONG TILE SIX OF CIRCLES
-1F01F ; [*1191.0020.0002] # MAHJONG TILE SEVEN OF CIRCLES
-1F020 ; [*1192.0020.0002] # MAHJONG TILE EIGHT OF CIRCLES
-1F021 ; [*1193.0020.0002] # MAHJONG TILE NINE OF CIRCLES
-1F022 ; [*1194.0020.0002] # MAHJONG TILE PLUM
-1F023 ; [*1195.0020.0002] # MAHJONG TILE ORCHID
-1F024 ; [*1196.0020.0002] # MAHJONG TILE BAMBOO
-1F025 ; [*1197.0020.0002] # MAHJONG TILE CHRYSANTHEMUM
-1F026 ; [*1198.0020.0002] # MAHJONG TILE SPRING
-1F027 ; [*1199.0020.0002] # MAHJONG TILE SUMMER
-1F028 ; [*119A.0020.0002] # MAHJONG TILE AUTUMN
-1F029 ; [*119B.0020.0002] # MAHJONG TILE WINTER
-1F02A ; [*119C.0020.0002] # MAHJONG TILE JOKER
-1F02B ; [*119D.0020.0002] # MAHJONG TILE BACK
-1F030 ; [*119E.0020.0002] # DOMINO TILE HORIZONTAL BACK
-1F031 ; [*119F.0020.0002] # DOMINO TILE HORIZONTAL-00-00
-1F032 ; [*11A0.0020.0002] # DOMINO TILE HORIZONTAL-00-01
-1F033 ; [*11A1.0020.0002] # DOMINO TILE HORIZONTAL-00-02
-1F034 ; [*11A2.0020.0002] # DOMINO TILE HORIZONTAL-00-03
-1F035 ; [*11A3.0020.0002] # DOMINO TILE HORIZONTAL-00-04
-1F036 ; [*11A4.0020.0002] # DOMINO TILE HORIZONTAL-00-05
-1F037 ; [*11A5.0020.0002] # DOMINO TILE HORIZONTAL-00-06
-1F038 ; [*11A6.0020.0002] # DOMINO TILE HORIZONTAL-01-00
-1F039 ; [*11A7.0020.0002] # DOMINO TILE HORIZONTAL-01-01
-1F03A ; [*11A8.0020.0002] # DOMINO TILE HORIZONTAL-01-02
-1F03B ; [*11A9.0020.0002] # DOMINO TILE HORIZONTAL-01-03
-1F03C ; [*11AA.0020.0002] # DOMINO TILE HORIZONTAL-01-04
-1F03D ; [*11AB.0020.0002] # DOMINO TILE HORIZONTAL-01-05
-1F03E ; [*11AC.0020.0002] # DOMINO TILE HORIZONTAL-01-06
-1F03F ; [*11AD.0020.0002] # DOMINO TILE HORIZONTAL-02-00
-1F040 ; [*11AE.0020.0002] # DOMINO TILE HORIZONTAL-02-01
-1F041 ; [*11AF.0020.0002] # DOMINO TILE HORIZONTAL-02-02
-1F042 ; [*11B0.0020.0002] # DOMINO TILE HORIZONTAL-02-03
-1F043 ; [*11B1.0020.0002] # DOMINO TILE HORIZONTAL-02-04
-1F044 ; [*11B2.0020.0002] # DOMINO TILE HORIZONTAL-02-05
-1F045 ; [*11B3.0020.0002] # DOMINO TILE HORIZONTAL-02-06
-1F046 ; [*11B4.0020.0002] # DOMINO TILE HORIZONTAL-03-00
-1F047 ; [*11B5.0020.0002] # DOMINO TILE HORIZONTAL-03-01
-1F048 ; [*11B6.0020.0002] # DOMINO TILE HORIZONTAL-03-02
-1F049 ; [*11B7.0020.0002] # DOMINO TILE HORIZONTAL-03-03
-1F04A ; [*11B8.0020.0002] # DOMINO TILE HORIZONTAL-03-04
-1F04B ; [*11B9.0020.0002] # DOMINO TILE HORIZONTAL-03-05
-1F04C ; [*11BA.0020.0002] # DOMINO TILE HORIZONTAL-03-06
-1F04D ; [*11BB.0020.0002] # DOMINO TILE HORIZONTAL-04-00
-1F04E ; [*11BC.0020.0002] # DOMINO TILE HORIZONTAL-04-01
-1F04F ; [*11BD.0020.0002] # DOMINO TILE HORIZONTAL-04-02
-1F050 ; [*11BE.0020.0002] # DOMINO TILE HORIZONTAL-04-03
-1F051 ; [*11BF.0020.0002] # DOMINO TILE HORIZONTAL-04-04
-1F052 ; [*11C0.0020.0002] # DOMINO TILE HORIZONTAL-04-05
-1F053 ; [*11C1.0020.0002] # DOMINO TILE HORIZONTAL-04-06
-1F054 ; [*11C2.0020.0002] # DOMINO TILE HORIZONTAL-05-00
-1F055 ; [*11C3.0020.0002] # DOMINO TILE HORIZONTAL-05-01
-1F056 ; [*11C4.0020.0002] # DOMINO TILE HORIZONTAL-05-02
-1F057 ; [*11C5.0020.0002] # DOMINO TILE HORIZONTAL-05-03
-1F058 ; [*11C6.0020.0002] # DOMINO TILE HORIZONTAL-05-04
-1F059 ; [*11C7.0020.0002] # DOMINO TILE HORIZONTAL-05-05
-1F05A ; [*11C8.0020.0002] # DOMINO TILE HORIZONTAL-05-06
-1F05B ; [*11C9.0020.0002] # DOMINO TILE HORIZONTAL-06-00
-1F05C ; [*11CA.0020.0002] # DOMINO TILE HORIZONTAL-06-01
-1F05D ; [*11CB.0020.0002] # DOMINO TILE HORIZONTAL-06-02
-1F05E ; [*11CC.0020.0002] # DOMINO TILE HORIZONTAL-06-03
-1F05F ; [*11CD.0020.0002] # DOMINO TILE HORIZONTAL-06-04
-1F060 ; [*11CE.0020.0002] # DOMINO TILE HORIZONTAL-06-05
-1F061 ; [*11CF.0020.0002] # DOMINO TILE HORIZONTAL-06-06
-1F062 ; [*11D0.0020.0002] # DOMINO TILE VERTICAL BACK
-1F063 ; [*11D1.0020.0002] # DOMINO TILE VERTICAL-00-00
-1F064 ; [*11D2.0020.0002] # DOMINO TILE VERTICAL-00-01
-1F065 ; [*11D3.0020.0002] # DOMINO TILE VERTICAL-00-02
-1F066 ; [*11D4.0020.0002] # DOMINO TILE VERTICAL-00-03
-1F067 ; [*11D5.0020.0002] # DOMINO TILE VERTICAL-00-04
-1F068 ; [*11D6.0020.0002] # DOMINO TILE VERTICAL-00-05
-1F069 ; [*11D7.0020.0002] # DOMINO TILE VERTICAL-00-06
-1F06A ; [*11D8.0020.0002] # DOMINO TILE VERTICAL-01-00
-1F06B ; [*11D9.0020.0002] # DOMINO TILE VERTICAL-01-01
-1F06C ; [*11DA.0020.0002] # DOMINO TILE VERTICAL-01-02
-1F06D ; [*11DB.0020.0002] # DOMINO TILE VERTICAL-01-03
-1F06E ; [*11DC.0020.0002] # DOMINO TILE VERTICAL-01-04
-1F06F ; [*11DD.0020.0002] # DOMINO TILE VERTICAL-01-05
-1F070 ; [*11DE.0020.0002] # DOMINO TILE VERTICAL-01-06
-1F071 ; [*11DF.0020.0002] # DOMINO TILE VERTICAL-02-00
-1F072 ; [*11E0.0020.0002] # DOMINO TILE VERTICAL-02-01
-1F073 ; [*11E1.0020.0002] # DOMINO TILE VERTICAL-02-02
-1F074 ; [*11E2.0020.0002] # DOMINO TILE VERTICAL-02-03
-1F075 ; [*11E3.0020.0002] # DOMINO TILE VERTICAL-02-04
-1F076 ; [*11E4.0020.0002] # DOMINO TILE VERTICAL-02-05
-1F077 ; [*11E5.0020.0002] # DOMINO TILE VERTICAL-02-06
-1F078 ; [*11E6.0020.0002] # DOMINO TILE VERTICAL-03-00
-1F079 ; [*11E7.0020.0002] # DOMINO TILE VERTICAL-03-01
-1F07A ; [*11E8.0020.0002] # DOMINO TILE VERTICAL-03-02
-1F07B ; [*11E9.0020.0002] # DOMINO TILE VERTICAL-03-03
-1F07C ; [*11EA.0020.0002] # DOMINO TILE VERTICAL-03-04
-1F07D ; [*11EB.0020.0002] # DOMINO TILE VERTICAL-03-05
-1F07E ; [*11EC.0020.0002] # DOMINO TILE VERTICAL-03-06
-1F07F ; [*11ED.0020.0002] # DOMINO TILE VERTICAL-04-00
-1F080 ; [*11EE.0020.0002] # DOMINO TILE VERTICAL-04-01
-1F081 ; [*11EF.0020.0002] # DOMINO TILE VERTICAL-04-02
-1F082 ; [*11F0.0020.0002] # DOMINO TILE VERTICAL-04-03
-1F083 ; [*11F1.0020.0002] # DOMINO TILE VERTICAL-04-04
-1F084 ; [*11F2.0020.0002] # DOMINO TILE VERTICAL-04-05
-1F085 ; [*11F3.0020.0002] # DOMINO TILE VERTICAL-04-06
-1F086 ; [*11F4.0020.0002] # DOMINO TILE VERTICAL-05-00
-1F087 ; [*11F5.0020.0002] # DOMINO TILE VERTICAL-05-01
-1F088 ; [*11F6.0020.0002] # DOMINO TILE VERTICAL-05-02
-1F089 ; [*11F7.0020.0002] # DOMINO TILE VERTICAL-05-03
-1F08A ; [*11F8.0020.0002] # DOMINO TILE VERTICAL-05-04
-1F08B ; [*11F9.0020.0002] # DOMINO TILE VERTICAL-05-05
-1F08C ; [*11FA.0020.0002] # DOMINO TILE VERTICAL-05-06
-1F08D ; [*11FB.0020.0002] # DOMINO TILE VERTICAL-06-00
-1F08E ; [*11FC.0020.0002] # DOMINO TILE VERTICAL-06-01
-1F08F ; [*11FD.0020.0002] # DOMINO TILE VERTICAL-06-02
-1F090 ; [*11FE.0020.0002] # DOMINO TILE VERTICAL-06-03
-1F091 ; [*11FF.0020.0002] # DOMINO TILE VERTICAL-06-04
-1F092 ; [*1200.0020.0002] # DOMINO TILE VERTICAL-06-05
-1F093 ; [*1201.0020.0002] # DOMINO TILE VERTICAL-06-06
-1F0A0 ; [*1202.0020.0002] # PLAYING CARD BACK
-1F0A1 ; [*1203.0020.0002] # PLAYING CARD ACE OF SPADES
-1F0A2 ; [*1204.0020.0002] # PLAYING CARD TWO OF SPADES
-1F0A3 ; [*1205.0020.0002] # PLAYING CARD THREE OF SPADES
-1F0A4 ; [*1206.0020.0002] # PLAYING CARD FOUR OF SPADES
-1F0A5 ; [*1207.0020.0002] # PLAYING CARD FIVE OF SPADES
-1F0A6 ; [*1208.0020.0002] # PLAYING CARD SIX OF SPADES
-1F0A7 ; [*1209.0020.0002] # PLAYING CARD SEVEN OF SPADES
-1F0A8 ; [*120A.0020.0002] # PLAYING CARD EIGHT OF SPADES
-1F0A9 ; [*120B.0020.0002] # PLAYING CARD NINE OF SPADES
-1F0AA ; [*120C.0020.0002] # PLAYING CARD TEN OF SPADES
-1F0AB ; [*120D.0020.0002] # PLAYING CARD JACK OF SPADES
-1F0AC ; [*120E.0020.0002] # PLAYING CARD KNIGHT OF SPADES
-1F0AD ; [*120F.0020.0002] # PLAYING CARD QUEEN OF SPADES
-1F0AE ; [*1210.0020.0002] # PLAYING CARD KING OF SPADES
-1F0B1 ; [*1211.0020.0002] # PLAYING CARD ACE OF HEARTS
-1F0B2 ; [*1212.0020.0002] # PLAYING CARD TWO OF HEARTS
-1F0B3 ; [*1213.0020.0002] # PLAYING CARD THREE OF HEARTS
-1F0B4 ; [*1214.0020.0002] # PLAYING CARD FOUR OF HEARTS
-1F0B5 ; [*1215.0020.0002] # PLAYING CARD FIVE OF HEARTS
-1F0B6 ; [*1216.0020.0002] # PLAYING CARD SIX OF HEARTS
-1F0B7 ; [*1217.0020.0002] # PLAYING CARD SEVEN OF HEARTS
-1F0B8 ; [*1218.0020.0002] # PLAYING CARD EIGHT OF HEARTS
-1F0B9 ; [*1219.0020.0002] # PLAYING CARD NINE OF HEARTS
-1F0BA ; [*121A.0020.0002] # PLAYING CARD TEN OF HEARTS
-1F0BB ; [*121B.0020.0002] # PLAYING CARD JACK OF HEARTS
-1F0BC ; [*121C.0020.0002] # PLAYING CARD KNIGHT OF HEARTS
-1F0BD ; [*121D.0020.0002] # PLAYING CARD QUEEN OF HEARTS
-1F0BE ; [*121E.0020.0002] # PLAYING CARD KING OF HEARTS
-1F0BF ; [*121F.0020.0002] # PLAYING CARD RED JOKER
-1F0C1 ; [*1220.0020.0002] # PLAYING CARD ACE OF DIAMONDS
-1F0C2 ; [*1221.0020.0002] # PLAYING CARD TWO OF DIAMONDS
-1F0C3 ; [*1222.0020.0002] # PLAYING CARD THREE OF DIAMONDS
-1F0C4 ; [*1223.0020.0002] # PLAYING CARD FOUR OF DIAMONDS
-1F0C5 ; [*1224.0020.0002] # PLAYING CARD FIVE OF DIAMONDS
-1F0C6 ; [*1225.0020.0002] # PLAYING CARD SIX OF DIAMONDS
-1F0C7 ; [*1226.0020.0002] # PLAYING CARD SEVEN OF DIAMONDS
-1F0C8 ; [*1227.0020.0002] # PLAYING CARD EIGHT OF DIAMONDS
-1F0C9 ; [*1228.0020.0002] # PLAYING CARD NINE OF DIAMONDS
-1F0CA ; [*1229.0020.0002] # PLAYING CARD TEN OF DIAMONDS
-1F0CB ; [*122A.0020.0002] # PLAYING CARD JACK OF DIAMONDS
-1F0CC ; [*122B.0020.0002] # PLAYING CARD KNIGHT OF DIAMONDS
-1F0CD ; [*122C.0020.0002] # PLAYING CARD QUEEN OF DIAMONDS
-1F0CE ; [*122D.0020.0002] # PLAYING CARD KING OF DIAMONDS
-1F0CF ; [*122E.0020.0002] # PLAYING CARD BLACK JOKER
-1F0D1 ; [*122F.0020.0002] # PLAYING CARD ACE OF CLUBS
-1F0D2 ; [*1230.0020.0002] # PLAYING CARD TWO OF CLUBS
-1F0D3 ; [*1231.0020.0002] # PLAYING CARD THREE OF CLUBS
-1F0D4 ; [*1232.0020.0002] # PLAYING CARD FOUR OF CLUBS
-1F0D5 ; [*1233.0020.0002] # PLAYING CARD FIVE OF CLUBS
-1F0D6 ; [*1234.0020.0002] # PLAYING CARD SIX OF CLUBS
-1F0D7 ; [*1235.0020.0002] # PLAYING CARD SEVEN OF CLUBS
-1F0D8 ; [*1236.0020.0002] # PLAYING CARD EIGHT OF CLUBS
-1F0D9 ; [*1237.0020.0002] # PLAYING CARD NINE OF CLUBS
-1F0DA ; [*1238.0020.0002] # PLAYING CARD TEN OF CLUBS
-1F0DB ; [*1239.0020.0002] # PLAYING CARD JACK OF CLUBS
-1F0DC ; [*123A.0020.0002] # PLAYING CARD KNIGHT OF CLUBS
-1F0DD ; [*123B.0020.0002] # PLAYING CARD QUEEN OF CLUBS
-1F0DE ; [*123C.0020.0002] # PLAYING CARD KING OF CLUBS
-1F0DF ; [*123D.0020.0002] # PLAYING CARD WHITE JOKER
-1F0E0 ; [*123E.0020.0002] # PLAYING CARD FOOL
-1F0E1 ; [*123F.0020.0002] # PLAYING CARD TRUMP-1
-1F0E2 ; [*1240.0020.0002] # PLAYING CARD TRUMP-2
-1F0E3 ; [*1241.0020.0002] # PLAYING CARD TRUMP-3
-1F0E4 ; [*1242.0020.0002] # PLAYING CARD TRUMP-4
-1F0E5 ; [*1243.0020.0002] # PLAYING CARD TRUMP-5
-1F0E6 ; [*1244.0020.0002] # PLAYING CARD TRUMP-6
-1F0E7 ; [*1245.0020.0002] # PLAYING CARD TRUMP-7
-1F0E8 ; [*1246.0020.0002] # PLAYING CARD TRUMP-8
-1F0E9 ; [*1247.0020.0002] # PLAYING CARD TRUMP-9
-1F0EA ; [*1248.0020.0002] # PLAYING CARD TRUMP-10
-1F0EB ; [*1249.0020.0002] # PLAYING CARD TRUMP-11
-1F0EC ; [*124A.0020.0002] # PLAYING CARD TRUMP-12
-1F0ED ; [*124B.0020.0002] # PLAYING CARD TRUMP-13
-1F0EE ; [*124C.0020.0002] # PLAYING CARD TRUMP-14
-1F0EF ; [*124D.0020.0002] # PLAYING CARD TRUMP-15
-1F0F0 ; [*124E.0020.0002] # PLAYING CARD TRUMP-16
-1F0F1 ; [*124F.0020.0002] # PLAYING CARD TRUMP-17
-1F0F2 ; [*1250.0020.0002] # PLAYING CARD TRUMP-18
-1F0F3 ; [*1251.0020.0002] # PLAYING CARD TRUMP-19
-1F0F4 ; [*1252.0020.0002] # PLAYING CARD TRUMP-20
-1F0F5 ; [*1253.0020.0002] # PLAYING CARD TRUMP-21
-1F1E6 ; [*09C3.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER A
-1F1E7 ; [*09C4.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER B
-1F1E8 ; [*09C5.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER C
-1F1E9 ; [*09C6.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER D
-1F1EA ; [*09C7.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER E
-1F1EB ; [*09C8.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER F
-1F1EC ; [*09C9.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER G
-1F1ED ; [*09CA.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER H
-1F1EE ; [*09CB.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER I
-1F1EF ; [*09CC.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER J
-1F1F0 ; [*09CD.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER K
-1F1F1 ; [*09CE.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER L
-1F1F2 ; [*09CF.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER M
-1F1F3 ; [*09D0.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER N
-1F1F4 ; [*09D1.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER O
-1F1F5 ; [*09D2.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER P
-1F1F6 ; [*09D3.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Q
-1F1F7 ; [*09D4.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER R
-1F1F8 ; [*09D5.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER S
-1F1F9 ; [*09D6.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER T
-1F1FA ; [*09D7.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER U
-1F1FB ; [*09D8.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER V
-1F1FC ; [*09D9.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER W
-1F1FD ; [*09DA.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER X
-1F1FE ; [*09DB.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Y
-1F1FF ; [*09DC.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Z
-1F300 ; [*1254.0020.0002] # CYCLONE
-1F301 ; [*1255.0020.0002] # FOGGY
-1F302 ; [*1256.0020.0002] # CLOSED UMBRELLA
-1F303 ; [*1257.0020.0002] # NIGHT WITH STARS
-1F304 ; [*1258.0020.0002] # SUNRISE OVER MOUNTAINS
-1F305 ; [*1259.0020.0002] # SUNRISE
-1F306 ; [*125A.0020.0002] # CITYSCAPE AT DUSK
-1F307 ; [*125B.0020.0002] # SUNSET OVER BUILDINGS
-1F308 ; [*125C.0020.0002] # RAINBOW
-1F309 ; [*125D.0020.0002] # BRIDGE AT NIGHT
-1F30A ; [*125E.0020.0002] # WATER WAVE
-1F30B ; [*125F.0020.0002] # VOLCANO
-1F30C ; [*1260.0020.0002] # MILKY WAY
-1F30D ; [*1261.0020.0002] # EARTH GLOBE EUROPE-AFRICA
-1F30E ; [*1262.0020.0002] # EARTH GLOBE AMERICAS
-1F30F ; [*1263.0020.0002] # EARTH GLOBE ASIA-AUSTRALIA
-1F310 ; [*1264.0020.0002] # GLOBE WITH MERIDIANS
-1F311 ; [*1265.0020.0002] # NEW MOON SYMBOL
-1F312 ; [*1266.0020.0002] # WAXING CRESCENT MOON SYMBOL
-1F313 ; [*1267.0020.0002] # FIRST QUARTER MOON SYMBOL
-1F314 ; [*1268.0020.0002] # WAXING GIBBOUS MOON SYMBOL
-1F315 ; [*1269.0020.0002] # FULL MOON SYMBOL
-1F316 ; [*126A.0020.0002] # WANING GIBBOUS MOON SYMBOL
-1F317 ; [*126B.0020.0002] # LAST QUARTER MOON SYMBOL
-1F318 ; [*126C.0020.0002] # WANING CRESCENT MOON SYMBOL
-1F319 ; [*126D.0020.0002] # CRESCENT MOON
-1F31A ; [*126E.0020.0002] # NEW MOON WITH FACE
-1F31B ; [*126F.0020.0002] # FIRST QUARTER MOON WITH FACE
-1F31C ; [*1270.0020.0002] # LAST QUARTER MOON WITH FACE
-1F31D ; [*1271.0020.0002] # FULL MOON WITH FACE
-1F31E ; [*1272.0020.0002] # SUN WITH FACE
-1F31F ; [*1273.0020.0002] # GLOWING STAR
-1F320 ; [*1274.0020.0002] # SHOOTING STAR
-1F321 ; [*1275.0020.0002] # THERMOMETER
-1F322 ; [*1276.0020.0002] # BLACK DROPLET
-1F323 ; [*1277.0020.0002] # WHITE SUN
-1F324 ; [*1278.0020.0002] # WHITE SUN WITH SMALL CLOUD
-1F325 ; [*1279.0020.0002] # WHITE SUN BEHIND CLOUD
-1F326 ; [*127A.0020.0002] # WHITE SUN BEHIND CLOUD WITH RAIN
-1F327 ; [*127B.0020.0002] # CLOUD WITH RAIN
-1F328 ; [*127C.0020.0002] # CLOUD WITH SNOW
-1F329 ; [*127D.0020.0002] # CLOUD WITH LIGHTNING
-1F32A ; [*127E.0020.0002] # CLOUD WITH TORNADO
-1F32B ; [*127F.0020.0002] # FOG
-1F32C ; [*1280.0020.0002] # WIND BLOWING FACE
-1F330 ; [*1281.0020.0002] # CHESTNUT
-1F331 ; [*1282.0020.0002] # SEEDLING
-1F332 ; [*1283.0020.0002] # EVERGREEN TREE
-1F333 ; [*1284.0020.0002] # DECIDUOUS TREE
-1F334 ; [*1285.0020.0002] # PALM TREE
-1F335 ; [*1286.0020.0002] # CACTUS
-1F336 ; [*1287.0020.0002] # HOT PEPPER
-1F337 ; [*1288.0020.0002] # TULIP
-1F338 ; [*1289.0020.0002] # CHERRY BLOSSOM
-1F339 ; [*128A.0020.0002] # ROSE
-1F33A ; [*128B.0020.0002] # HIBISCUS
-1F33B ; [*128C.0020.0002] # SUNFLOWER
-1F33C ; [*128D.0020.0002] # BLOSSOM
-1F33D ; [*128E.0020.0002] # EAR OF MAIZE
-1F33E ; [*128F.0020.0002] # EAR OF RICE
-1F33F ; [*1290.0020.0002] # HERB
-1F340 ; [*1291.0020.0002] # FOUR LEAF CLOVER
-1F341 ; [*1292.0020.0002] # MAPLE LEAF
-1F342 ; [*1293.0020.0002] # FALLEN LEAF
-1F343 ; [*1294.0020.0002] # LEAF FLUTTERING IN WIND
-1F344 ; [*1295.0020.0002] # MUSHROOM
-1F345 ; [*1296.0020.0002] # TOMATO
-1F346 ; [*1297.0020.0002] # AUBERGINE
-1F347 ; [*1298.0020.0002] # GRAPES
-1F348 ; [*1299.0020.0002] # MELON
-1F349 ; [*129A.0020.0002] # WATERMELON
-1F34A ; [*129B.0020.0002] # TANGERINE
-1F34B ; [*129C.0020.0002] # LEMON
-1F34C ; [*129D.0020.0002] # BANANA
-1F34D ; [*129E.0020.0002] # PINEAPPLE
-1F34E ; [*129F.0020.0002] # RED APPLE
-1F34F ; [*12A0.0020.0002] # GREEN APPLE
-1F350 ; [*12A1.0020.0002] # PEAR
-1F351 ; [*12A2.0020.0002] # PEACH
-1F352 ; [*12A3.0020.0002] # CHERRIES
-1F353 ; [*12A4.0020.0002] # STRAWBERRY
-1F354 ; [*12A5.0020.0002] # HAMBURGER
-1F355 ; [*12A6.0020.0002] # SLICE OF PIZZA
-1F356 ; [*12A7.0020.0002] # MEAT ON BONE
-1F357 ; [*12A8.0020.0002] # POULTRY LEG
-1F358 ; [*12A9.0020.0002] # RICE CRACKER
-1F359 ; [*12AA.0020.0002] # RICE BALL
-1F35A ; [*12AB.0020.0002] # COOKED RICE
-1F35B ; [*12AC.0020.0002] # CURRY AND RICE
-1F35C ; [*12AD.0020.0002] # STEAMING BOWL
-1F35D ; [*12AE.0020.0002] # SPAGHETTI
-1F35E ; [*12AF.0020.0002] # BREAD
-1F35F ; [*12B0.0020.0002] # FRENCH FRIES
-1F360 ; [*12B1.0020.0002] # ROASTED SWEET POTATO
-1F361 ; [*12B2.0020.0002] # DANGO
-1F362 ; [*12B3.0020.0002] # ODEN
-1F363 ; [*12B4.0020.0002] # SUSHI
-1F364 ; [*12B5.0020.0002] # FRIED SHRIMP
-1F365 ; [*12B6.0020.0002] # FISH CAKE WITH SWIRL DESIGN
-1F366 ; [*12B7.0020.0002] # SOFT ICE CREAM
-1F367 ; [*12B8.0020.0002] # SHAVED ICE
-1F368 ; [*12B9.0020.0002] # ICE CREAM
-1F369 ; [*12BA.0020.0002] # DOUGHNUT
-1F36A ; [*12BB.0020.0002] # COOKIE
-1F36B ; [*12BC.0020.0002] # CHOCOLATE BAR
-1F36C ; [*12BD.0020.0002] # CANDY
-1F36D ; [*12BE.0020.0002] # LOLLIPOP
-1F36E ; [*12BF.0020.0002] # CUSTARD
-1F36F ; [*12C0.0020.0002] # HONEY POT
-1F370 ; [*12C1.0020.0002] # SHORTCAKE
-1F371 ; [*12C2.0020.0002] # BENTO BOX
-1F372 ; [*12C3.0020.0002] # POT OF FOOD
-1F373 ; [*12C4.0020.0002] # COOKING
-1F374 ; [*12C5.0020.0002] # FORK AND KNIFE
-1F375 ; [*12C6.0020.0002] # TEACUP WITHOUT HANDLE
-1F376 ; [*12C7.0020.0002] # SAKE BOTTLE AND CUP
-1F377 ; [*12C8.0020.0002] # WINE GLASS
-1F378 ; [*12C9.0020.0002] # COCKTAIL GLASS
-1F379 ; [*12CA.0020.0002] # TROPICAL DRINK
-1F37A ; [*12CB.0020.0002] # BEER MUG
-1F37B ; [*12CC.0020.0002] # CLINKING BEER MUGS
-1F37C ; [*12CD.0020.0002] # BABY BOTTLE
-1F37D ; [*12CE.0020.0002] # FORK AND KNIFE WITH PLATE
-1F380 ; [*12CF.0020.0002] # RIBBON
-1F381 ; [*12D0.0020.0002] # WRAPPED PRESENT
-1F382 ; [*12D1.0020.0002] # BIRTHDAY CAKE
-1F383 ; [*12D2.0020.0002] # JACK-O-LANTERN
-1F384 ; [*12D3.0020.0002] # CHRISTMAS TREE
-1F385 ; [*12D4.0020.0002] # FATHER CHRISTMAS
-1F386 ; [*12D5.0020.0002] # FIREWORKS
-1F387 ; [*12D6.0020.0002] # FIREWORK SPARKLER
-1F388 ; [*12D7.0020.0002] # BALLOON
-1F389 ; [*12D8.0020.0002] # PARTY POPPER
-1F38A ; [*12D9.0020.0002] # CONFETTI BALL
-1F38B ; [*12DA.0020.0002] # TANABATA TREE
-1F38C ; [*12DB.0020.0002] # CROSSED FLAGS
-1F38D ; [*12DC.0020.0002] # PINE DECORATION
-1F38E ; [*12DD.0020.0002] # JAPANESE DOLLS
-1F38F ; [*12DE.0020.0002] # CARP STREAMER
-1F390 ; [*12DF.0020.0002] # WIND CHIME
-1F391 ; [*12E0.0020.0002] # MOON VIEWING CEREMONY
-1F392 ; [*12E1.0020.0002] # SCHOOL SATCHEL
-1F393 ; [*12E2.0020.0002] # GRADUATION CAP
-1F394 ; [*12E3.0020.0002] # HEART WITH TIP ON THE LEFT
-1F395 ; [*12E4.0020.0002] # BOUQUET OF FLOWERS
-1F396 ; [*12E5.0020.0002] # MILITARY MEDAL
-1F397 ; [*12E6.0020.0002] # REMINDER RIBBON
-1F398 ; [*12E7.0020.0002] # MUSICAL KEYBOARD WITH JACKS
-1F399 ; [*12E8.0020.0002] # STUDIO MICROPHONE
-1F39A ; [*12E9.0020.0002] # LEVEL SLIDER
-1F39B ; [*12EA.0020.0002] # CONTROL KNOBS
-1F39C ; [*12EB.0020.0002] # BEAMED ASCENDING MUSICAL NOTES
-1F39D ; [*12EC.0020.0002] # BEAMED DESCENDING MUSICAL NOTES
-1F39E ; [*12ED.0020.0002] # FILM FRAMES
-1F39F ; [*12EE.0020.0002] # ADMISSION TICKETS
-1F3A0 ; [*12EF.0020.0002] # CAROUSEL HORSE
-1F3A1 ; [*12F0.0020.0002] # FERRIS WHEEL
-1F3A2 ; [*12F1.0020.0002] # ROLLER COASTER
-1F3A3 ; [*12F2.0020.0002] # FISHING POLE AND FISH
-1F3A4 ; [*12F3.0020.0002] # MICROPHONE
-1F3A5 ; [*12F4.0020.0002] # MOVIE CAMERA
-1F3A6 ; [*12F5.0020.0002] # CINEMA
-1F3A7 ; [*12F6.0020.0002] # HEADPHONE
-1F3A8 ; [*12F7.0020.0002] # ARTIST PALETTE
-1F3A9 ; [*12F8.0020.0002] # TOP HAT
-1F3AA ; [*12F9.0020.0002] # CIRCUS TENT
-1F3AB ; [*12FA.0020.0002] # TICKET
-1F3AC ; [*12FB.0020.0002] # CLAPPER BOARD
-1F3AD ; [*12FC.0020.0002] # PERFORMING ARTS
-1F3AE ; [*12FD.0020.0002] # VIDEO GAME
-1F3AF ; [*12FE.0020.0002] # DIRECT HIT
-1F3B0 ; [*12FF.0020.0002] # SLOT MACHINE
-1F3B1 ; [*1300.0020.0002] # BILLIARDS
-1F3B2 ; [*1301.0020.0002] # GAME DIE
-1F3B3 ; [*1302.0020.0002] # BOWLING
-1F3B4 ; [*1303.0020.0002] # FLOWER PLAYING CARDS
-1F3B5 ; [*1304.0020.0002] # MUSICAL NOTE
-1F3B6 ; [*1305.0020.0002] # MULTIPLE MUSICAL NOTES
-1F3B7 ; [*1306.0020.0002] # SAXOPHONE
-1F3B8 ; [*1307.0020.0002] # GUITAR
-1F3B9 ; [*1308.0020.0002] # MUSICAL KEYBOARD
-1F3BA ; [*1309.0020.0002] # TRUMPET
-1F3BB ; [*130A.0020.0002] # VIOLIN
-1F3BC ; [*130B.0020.0002] # MUSICAL SCORE
-1F3BD ; [*130C.0020.0002] # RUNNING SHIRT WITH SASH
-1F3BE ; [*130D.0020.0002] # TENNIS RACQUET AND BALL
-1F3BF ; [*130E.0020.0002] # SKI AND SKI BOOT
-1F3C0 ; [*130F.0020.0002] # BASKETBALL AND HOOP
-1F3C1 ; [*1310.0020.0002] # CHEQUERED FLAG
-1F3C2 ; [*1311.0020.0002] # SNOWBOARDER
-1F3C3 ; [*1312.0020.0002] # RUNNER
-1F3C4 ; [*1313.0020.0002] # SURFER
-1F3C5 ; [*1314.0020.0002] # SPORTS MEDAL
-1F3C6 ; [*1315.0020.0002] # TROPHY
-1F3C7 ; [*1316.0020.0002] # HORSE RACING
-1F3C8 ; [*1317.0020.0002] # AMERICAN FOOTBALL
-1F3C9 ; [*1318.0020.0002] # RUGBY FOOTBALL
-1F3CA ; [*1319.0020.0002] # SWIMMER
-1F3CB ; [*131A.0020.0002] # WEIGHT LIFTER
-1F3CC ; [*131B.0020.0002] # GOLFER
-1F3CD ; [*131C.0020.0002] # RACING MOTORCYCLE
-1F3CE ; [*131D.0020.0002] # RACING CAR
-1F3D4 ; [*131E.0020.0002] # SNOW CAPPED MOUNTAIN
-1F3D5 ; [*131F.0020.0002] # CAMPING
-1F3D6 ; [*1320.0020.0002] # BEACH WITH UMBRELLA
-1F3D7 ; [*1321.0020.0002] # BUILDING CONSTRUCTION
-1F3D8 ; [*1322.0020.0002] # HOUSE BUILDINGS
-1F3D9 ; [*1323.0020.0002] # CITYSCAPE
-1F3DA ; [*1324.0020.0002] # DERELICT HOUSE BUILDING
-1F3DB ; [*1325.0020.0002] # CLASSICAL BUILDING
-1F3DC ; [*1326.0020.0002] # DESERT
-1F3DD ; [*1327.0020.0002] # DESERT ISLAND
-1F3DE ; [*1328.0020.0002] # NATIONAL PARK
-1F3DF ; [*1329.0020.0002] # STADIUM
-1F3E0 ; [*132A.0020.0002] # HOUSE BUILDING
-1F3E1 ; [*132B.0020.0002] # HOUSE WITH GARDEN
-1F3E2 ; [*132C.0020.0002] # OFFICE BUILDING
-1F3E3 ; [*132D.0020.0002] # JAPANESE POST OFFICE
-1F3E4 ; [*132E.0020.0002] # EUROPEAN POST OFFICE
-1F3E5 ; [*132F.0020.0002] # HOSPITAL
-1F3E6 ; [*1330.0020.0002] # BANK
-1F3E7 ; [*1331.0020.0002] # AUTOMATED TELLER MACHINE
-1F3E8 ; [*1332.0020.0002] # HOTEL
-1F3E9 ; [*1333.0020.0002] # LOVE HOTEL
-1F3EA ; [*1334.0020.0002] # CONVENIENCE STORE
-1F3EB ; [*1335.0020.0002] # SCHOOL
-1F3EC ; [*1336.0020.0002] # DEPARTMENT STORE
-1F3ED ; [*1337.0020.0002] # FACTORY
-1F3EE ; [*1338.0020.0002] # IZAKAYA LANTERN
-1F3EF ; [*1339.0020.0002] # JAPANESE CASTLE
-1F3F0 ; [*133A.0020.0002] # EUROPEAN CASTLE
-1F3F1 ; [*133B.0020.0002] # WHITE PENNANT
-1F3F2 ; [*133C.0020.0002] # BLACK PENNANT
-1F3F3 ; [*133D.0020.0002] # WAVING WHITE FLAG
-1F3F4 ; [*133E.0020.0002] # WAVING BLACK FLAG
-1F3F5 ; [*133F.0020.0002] # ROSETTE
-1F3F6 ; [*1340.0020.0002] # BLACK ROSETTE
-1F3F7 ; [*1341.0020.0002] # LABEL
-1F400 ; [*1342.0020.0002] # RAT
-1F401 ; [*1343.0020.0002] # MOUSE
-1F402 ; [*1344.0020.0002] # OX
-1F403 ; [*1345.0020.0002] # WATER BUFFALO
-1F404 ; [*1346.0020.0002] # COW
-1F405 ; [*1347.0020.0002] # TIGER
-1F406 ; [*1348.0020.0002] # LEOPARD
-1F407 ; [*1349.0020.0002] # RABBIT
-1F408 ; [*134A.0020.0002] # CAT
-1F409 ; [*134B.0020.0002] # DRAGON
-1F40A ; [*134C.0020.0002] # CROCODILE
-1F40B ; [*134D.0020.0002] # WHALE
-1F40C ; [*134E.0020.0002] # SNAIL
-1F40D ; [*134F.0020.0002] # SNAKE
-1F40E ; [*1350.0020.0002] # HORSE
-1F40F ; [*1351.0020.0002] # RAM
-1F410 ; [*1352.0020.0002] # GOAT
-1F411 ; [*1353.0020.0002] # SHEEP
-1F412 ; [*1354.0020.0002] # MONKEY
-1F413 ; [*1355.0020.0002] # ROOSTER
-1F414 ; [*1356.0020.0002] # CHICKEN
-1F415 ; [*1357.0020.0002] # DOG
-1F416 ; [*1358.0020.0002] # PIG
-1F417 ; [*1359.0020.0002] # BOAR
-1F418 ; [*135A.0020.0002] # ELEPHANT
-1F419 ; [*135B.0020.0002] # OCTOPUS
-1F41A ; [*135C.0020.0002] # SPIRAL SHELL
-1F41B ; [*135D.0020.0002] # BUG
-1F41C ; [*135E.0020.0002] # ANT
-1F41D ; [*135F.0020.0002] # HONEYBEE
-1F41E ; [*1360.0020.0002] # LADY BEETLE
-1F41F ; [*1361.0020.0002] # FISH
-1F420 ; [*1362.0020.0002] # TROPICAL FISH
-1F421 ; [*1363.0020.0002] # BLOWFISH
-1F422 ; [*1364.0020.0002] # TURTLE
-1F423 ; [*1365.0020.0002] # HATCHING CHICK
-1F424 ; [*1366.0020.0002] # BABY CHICK
-1F425 ; [*1367.0020.0002] # FRONT-FACING BABY CHICK
-1F426 ; [*1368.0020.0002] # BIRD
-1F427 ; [*1369.0020.0002] # PENGUIN
-1F428 ; [*136A.0020.0002] # KOALA
-1F429 ; [*136B.0020.0002] # POODLE
-1F42A ; [*136C.0020.0002] # DROMEDARY CAMEL
-1F42B ; [*136D.0020.0002] # BACTRIAN CAMEL
-1F42C ; [*136E.0020.0002] # DOLPHIN
-1F42D ; [*136F.0020.0002] # MOUSE FACE
-1F42E ; [*1370.0020.0002] # COW FACE
-1F42F ; [*1371.0020.0002] # TIGER FACE
-1F430 ; [*1372.0020.0002] # RABBIT FACE
-1F431 ; [*1373.0020.0002] # CAT FACE
-1F432 ; [*1374.0020.0002] # DRAGON FACE
-1F433 ; [*1375.0020.0002] # SPOUTING WHALE
-1F434 ; [*1376.0020.0002] # HORSE FACE
-1F435 ; [*1377.0020.0002] # MONKEY FACE
-1F436 ; [*1378.0020.0002] # DOG FACE
-1F437 ; [*1379.0020.0002] # PIG FACE
-1F438 ; [*137A.0020.0002] # FROG FACE
-1F439 ; [*137B.0020.0002] # HAMSTER FACE
-1F43A ; [*137C.0020.0002] # WOLF FACE
-1F43B ; [*137D.0020.0002] # BEAR FACE
-1F43C ; [*137E.0020.0002] # PANDA FACE
-1F43D ; [*137F.0020.0002] # PIG NOSE
-1F43E ; [*1380.0020.0002] # PAW PRINTS
-1F43F ; [*1381.0020.0002] # CHIPMUNK
-1F440 ; [*1382.0020.0002] # EYES
-1F441 ; [*1383.0020.0002] # EYE
-1F442 ; [*1384.0020.0002] # EAR
-1F443 ; [*1385.0020.0002] # NOSE
-1F444 ; [*1386.0020.0002] # MOUTH
-1F445 ; [*1387.0020.0002] # TONGUE
-1F446 ; [*1388.0020.0002] # WHITE UP POINTING BACKHAND INDEX
-1F447 ; [*1389.0020.0002] # WHITE DOWN POINTING BACKHAND INDEX
-1F448 ; [*138A.0020.0002] # WHITE LEFT POINTING BACKHAND INDEX
-1F449 ; [*138B.0020.0002] # WHITE RIGHT POINTING BACKHAND INDEX
-1F44A ; [*138C.0020.0002] # FISTED HAND SIGN
-1F44B ; [*138D.0020.0002] # WAVING HAND SIGN
-1F44C ; [*138E.0020.0002] # OK HAND SIGN
-1F44D ; [*138F.0020.0002] # THUMBS UP SIGN
-1F44E ; [*1390.0020.0002] # THUMBS DOWN SIGN
-1F44F ; [*1391.0020.0002] # CLAPPING HANDS SIGN
-1F450 ; [*1392.0020.0002] # OPEN HANDS SIGN
-1F451 ; [*1393.0020.0002] # CROWN
-1F452 ; [*1394.0020.0002] # WOMANS HAT
-1F453 ; [*1395.0020.0002] # EYEGLASSES
-1F454 ; [*1396.0020.0002] # NECKTIE
-1F455 ; [*1397.0020.0002] # T-SHIRT
-1F456 ; [*1398.0020.0002] # JEANS
-1F457 ; [*1399.0020.0002] # DRESS
-1F458 ; [*139A.0020.0002] # KIMONO
-1F459 ; [*139B.0020.0002] # BIKINI
-1F45A ; [*139C.0020.0002] # WOMANS CLOTHES
-1F45B ; [*139D.0020.0002] # PURSE
-1F45C ; [*139E.0020.0002] # HANDBAG
-1F45D ; [*139F.0020.0002] # POUCH
-1F45E ; [*13A0.0020.0002] # MANS SHOE
-1F45F ; [*13A1.0020.0002] # ATHLETIC SHOE
-1F460 ; [*13A2.0020.0002] # HIGH-HEELED SHOE
-1F461 ; [*13A3.0020.0002] # WOMANS SANDAL
-1F462 ; [*13A4.0020.0002] # WOMANS BOOTS
-1F463 ; [*13A5.0020.0002] # FOOTPRINTS
-1F464 ; [*13A6.0020.0002] # BUST IN SILHOUETTE
-1F465 ; [*13A7.0020.0002] # BUSTS IN SILHOUETTE
-1F466 ; [*13A8.0020.0002] # BOY
-1F467 ; [*13A9.0020.0002] # GIRL
-1F468 ; [*13AA.0020.0002] # MAN
-1F469 ; [*13AB.0020.0002] # WOMAN
-1F46A ; [*13AC.0020.0002] # FAMILY
-1F46B ; [*13AD.0020.0002] # MAN AND WOMAN HOLDING HANDS
-1F46C ; [*13AE.0020.0002] # TWO MEN HOLDING HANDS
-1F46D ; [*13AF.0020.0002] # TWO WOMEN HOLDING HANDS
-1F46E ; [*13B0.0020.0002] # POLICE OFFICER
-1F46F ; [*13B1.0020.0002] # WOMAN WITH BUNNY EARS
-1F470 ; [*13B2.0020.0002] # BRIDE WITH VEIL
-1F471 ; [*13B3.0020.0002] # PERSON WITH BLOND HAIR
-1F472 ; [*13B4.0020.0002] # MAN WITH GUA PI MAO
-1F473 ; [*13B5.0020.0002] # MAN WITH TURBAN
-1F474 ; [*13B6.0020.0002] # OLDER MAN
-1F475 ; [*13B7.0020.0002] # OLDER WOMAN
-1F476 ; [*13B8.0020.0002] # BABY
-1F477 ; [*13B9.0020.0002] # CONSTRUCTION WORKER
-1F478 ; [*13BA.0020.0002] # PRINCESS
-1F479 ; [*13BB.0020.0002] # JAPANESE OGRE
-1F47A ; [*13BC.0020.0002] # JAPANESE GOBLIN
-1F47B ; [*13BD.0020.0002] # GHOST
-1F47C ; [*13BE.0020.0002] # BABY ANGEL
-1F47D ; [*13BF.0020.0002] # EXTRATERRESTRIAL ALIEN
-1F47E ; [*13C0.0020.0002] # ALIEN MONSTER
-1F47F ; [*13C1.0020.0002] # IMP
-1F480 ; [*13C2.0020.0002] # SKULL
-1F481 ; [*13C3.0020.0002] # INFORMATION DESK PERSON
-1F482 ; [*13C4.0020.0002] # GUARDSMAN
-1F483 ; [*13C5.0020.0002] # DANCER
-1F484 ; [*13C6.0020.0002] # LIPSTICK
-1F485 ; [*13C7.0020.0002] # NAIL POLISH
-1F486 ; [*13C8.0020.0002] # FACE MASSAGE
-1F487 ; [*13C9.0020.0002] # HAIRCUT
-1F488 ; [*13CA.0020.0002] # BARBER POLE
-1F489 ; [*13CB.0020.0002] # SYRINGE
-1F48A ; [*13CC.0020.0002] # PILL
-1F48B ; [*13CD.0020.0002] # KISS MARK
-1F48C ; [*13CE.0020.0002] # LOVE LETTER
-1F48D ; [*13CF.0020.0002] # RING
-1F48E ; [*13D0.0020.0002] # GEM STONE
-1F48F ; [*13D1.0020.0002] # KISS
-1F490 ; [*13D2.0020.0002] # BOUQUET
-1F491 ; [*13D3.0020.0002] # COUPLE WITH HEART
-1F492 ; [*13D4.0020.0002] # WEDDING
-1F493 ; [*13D5.0020.0002] # BEATING HEART
-1F494 ; [*13D6.0020.0002] # BROKEN HEART
-1F495 ; [*13D7.0020.0002] # TWO HEARTS
-1F496 ; [*13D8.0020.0002] # SPARKLING HEART
-1F497 ; [*13D9.0020.0002] # GROWING HEART
-1F498 ; [*13DA.0020.0002] # HEART WITH ARROW
-1F499 ; [*13DB.0020.0002] # BLUE HEART
-1F49A ; [*13DC.0020.0002] # GREEN HEART
-1F49B ; [*13DD.0020.0002] # YELLOW HEART
-1F49C ; [*13DE.0020.0002] # PURPLE HEART
-1F49D ; [*13DF.0020.0002] # HEART WITH RIBBON
-1F49E ; [*13E0.0020.0002] # REVOLVING HEARTS
-1F49F ; [*13E1.0020.0002] # HEART DECORATION
-1F4A0 ; [*13E2.0020.0002] # DIAMOND SHAPE WITH A DOT INSIDE
-1F4A1 ; [*13E3.0020.0002] # ELECTRIC LIGHT BULB
-1F4A2 ; [*13E4.0020.0002] # ANGER SYMBOL
-1F4A3 ; [*13E5.0020.0002] # BOMB
-1F4A4 ; [*13E6.0020.0002] # SLEEPING SYMBOL
-1F4A5 ; [*13E7.0020.0002] # COLLISION SYMBOL
-1F4A6 ; [*13E8.0020.0002] # SPLASHING SWEAT SYMBOL
-1F4A7 ; [*13E9.0020.0002] # DROPLET
-1F4A8 ; [*13EA.0020.0002] # DASH SYMBOL
-1F4A9 ; [*13EB.0020.0002] # PILE OF POO
-1F4AA ; [*13EC.0020.0002] # FLEXED BICEPS
-1F4AB ; [*13ED.0020.0002] # DIZZY SYMBOL
-1F4AC ; [*13EE.0020.0002] # SPEECH BALLOON
-1F4AD ; [*13EF.0020.0002] # THOUGHT BALLOON
-1F4AE ; [*13F0.0020.0002] # WHITE FLOWER
-1F4AF ; [*13F1.0020.0002] # HUNDRED POINTS SYMBOL
-1F4B0 ; [*13F2.0020.0002] # MONEY BAG
-1F4B1 ; [*13F3.0020.0002] # CURRENCY EXCHANGE
-1F4B2 ; [*13F4.0020.0002] # HEAVY DOLLAR SIGN
-1F4B3 ; [*13F5.0020.0002] # CREDIT CARD
-1F4B4 ; [*13F6.0020.0002] # BANKNOTE WITH YEN SIGN
-1F4B5 ; [*13F7.0020.0002] # BANKNOTE WITH DOLLAR SIGN
-1F4B6 ; [*13F8.0020.0002] # BANKNOTE WITH EURO SIGN
-1F4B7 ; [*13F9.0020.0002] # BANKNOTE WITH POUND SIGN
-1F4B8 ; [*13FA.0020.0002] # MONEY WITH WINGS
-1F4B9 ; [*13FB.0020.0002] # CHART WITH UPWARDS TREND AND YEN SIGN
-1F4BA ; [*13FC.0020.0002] # SEAT
-1F4BB ; [*13FD.0020.0002] # PERSONAL COMPUTER
-1F4BC ; [*13FE.0020.0002] # BRIEFCASE
-1F4BD ; [*13FF.0020.0002] # MINIDISC
-1F4BE ; [*1400.0020.0002] # FLOPPY DISK
-1F4BF ; [*1401.0020.0002] # OPTICAL DISC
-1F4C0 ; [*1402.0020.0002] # DVD
-1F4C1 ; [*1403.0020.0002] # FILE FOLDER
-1F4C2 ; [*1404.0020.0002] # OPEN FILE FOLDER
-1F4C3 ; [*1405.0020.0002] # PAGE WITH CURL
-1F4C4 ; [*1406.0020.0002] # PAGE FACING UP
-1F4C5 ; [*1407.0020.0002] # CALENDAR
-1F4C6 ; [*1408.0020.0002] # TEAR-OFF CALENDAR
-1F4C7 ; [*1409.0020.0002] # CARD INDEX
-1F4C8 ; [*140A.0020.0002] # CHART WITH UPWARDS TREND
-1F4C9 ; [*140B.0020.0002] # CHART WITH DOWNWARDS TREND
-1F4CA ; [*140C.0020.0002] # BAR CHART
-1F4CB ; [*140D.0020.0002] # CLIPBOARD
-1F4CC ; [*140E.0020.0002] # PUSHPIN
-1F4CD ; [*140F.0020.0002] # ROUND PUSHPIN
-1F4CE ; [*1410.0020.0002] # PAPERCLIP
-1F4CF ; [*1411.0020.0002] # STRAIGHT RULER
-1F4D0 ; [*1412.0020.0002] # TRIANGULAR RULER
-1F4D1 ; [*1413.0020.0002] # BOOKMARK TABS
-1F4D2 ; [*1414.0020.0002] # LEDGER
-1F4D3 ; [*1415.0020.0002] # NOTEBOOK
-1F4D4 ; [*1416.0020.0002] # NOTEBOOK WITH DECORATIVE COVER
-1F4D5 ; [*1417.0020.0002] # CLOSED BOOK
-1F4D6 ; [*1418.0020.0002] # OPEN BOOK
-1F4D7 ; [*1419.0020.0002] # GREEN BOOK
-1F4D8 ; [*141A.0020.0002] # BLUE BOOK
-1F4D9 ; [*141B.0020.0002] # ORANGE BOOK
-1F4DA ; [*141C.0020.0002] # BOOKS
-1F4DB ; [*141D.0020.0002] # NAME BADGE
-1F4DC ; [*141E.0020.0002] # SCROLL
-1F4DD ; [*141F.0020.0002] # MEMO
-1F4DE ; [*1420.0020.0002] # TELEPHONE RECEIVER
-1F4DF ; [*1421.0020.0002] # PAGER
-1F4E0 ; [*1422.0020.0002] # FAX MACHINE
-1F4E1 ; [*1423.0020.0002] # SATELLITE ANTENNA
-1F4E2 ; [*1424.0020.0002] # PUBLIC ADDRESS LOUDSPEAKER
-1F4E3 ; [*1425.0020.0002] # CHEERING MEGAPHONE
-1F4E4 ; [*1426.0020.0002] # OUTBOX TRAY
-1F4E5 ; [*1427.0020.0002] # INBOX TRAY
-1F4E6 ; [*1428.0020.0002] # PACKAGE
-1F4E7 ; [*1429.0020.0002] # E-MAIL SYMBOL
-1F4E8 ; [*142A.0020.0002] # INCOMING ENVELOPE
-1F4E9 ; [*142B.0020.0002] # ENVELOPE WITH DOWNWARDS ARROW ABOVE
-1F4EA ; [*142C.0020.0002] # CLOSED MAILBOX WITH LOWERED FLAG
-1F4EB ; [*142D.0020.0002] # CLOSED MAILBOX WITH RAISED FLAG
-1F4EC ; [*142E.0020.0002] # OPEN MAILBOX WITH RAISED FLAG
-1F4ED ; [*142F.0020.0002] # OPEN MAILBOX WITH LOWERED FLAG
-1F4EE ; [*1430.0020.0002] # POSTBOX
-1F4EF ; [*1431.0020.0002] # POSTAL HORN
-1F4F0 ; [*1432.0020.0002] # NEWSPAPER
-1F4F1 ; [*1433.0020.0002] # MOBILE PHONE
-1F4F2 ; [*1434.0020.0002] # MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
-1F4F3 ; [*1435.0020.0002] # VIBRATION MODE
-1F4F4 ; [*1436.0020.0002] # MOBILE PHONE OFF
-1F4F5 ; [*1437.0020.0002] # NO MOBILE PHONES
-1F4F6 ; [*1438.0020.0002] # ANTENNA WITH BARS
-1F4F7 ; [*1439.0020.0002] # CAMERA
-1F4F8 ; [*143A.0020.0002] # CAMERA WITH FLASH
-1F4F9 ; [*143B.0020.0002] # VIDEO CAMERA
-1F4FA ; [*143C.0020.0002] # TELEVISION
-1F4FB ; [*143D.0020.0002] # RADIO
-1F4FC ; [*143E.0020.0002] # VIDEOCASSETTE
-1F4FD ; [*143F.0020.0002] # FILM PROJECTOR
-1F4FE ; [*1440.0020.0002] # PORTABLE STEREO
-1F500 ; [*1441.0020.0002] # TWISTED RIGHTWARDS ARROWS
-1F501 ; [*1442.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
-1F502 ; [*1443.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
-1F503 ; [*1444.0020.0002] # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F504 ; [*1445.0020.0002] # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F505 ; [*1446.0020.0002] # LOW BRIGHTNESS SYMBOL
-1F506 ; [*1447.0020.0002] # HIGH BRIGHTNESS SYMBOL
-1F507 ; [*1448.0020.0002] # SPEAKER WITH CANCELLATION STROKE
-1F508 ; [*1449.0020.0002] # SPEAKER
-1F509 ; [*144A.0020.0002] # SPEAKER WITH ONE SOUND WAVE
-1F50A ; [*144B.0020.0002] # SPEAKER WITH THREE SOUND WAVES
-1F50B ; [*144C.0020.0002] # BATTERY
-1F50C ; [*144D.0020.0002] # ELECTRIC PLUG
-1F50D ; [*144E.0020.0002] # LEFT-POINTING MAGNIFYING GLASS
-1F50E ; [*144F.0020.0002] # RIGHT-POINTING MAGNIFYING GLASS
-1F50F ; [*1450.0020.0002] # LOCK WITH INK PEN
-1F510 ; [*1451.0020.0002] # CLOSED LOCK WITH KEY
-1F511 ; [*1452.0020.0002] # KEY
-1F512 ; [*1453.0020.0002] # LOCK
-1F513 ; [*1454.0020.0002] # OPEN LOCK
-1F514 ; [*1455.0020.0002] # BELL
-1F515 ; [*1456.0020.0002] # BELL WITH CANCELLATION STROKE
-1F516 ; [*1457.0020.0002] # BOOKMARK
-1F517 ; [*1458.0020.0002] # LINK SYMBOL
-1F518 ; [*1459.0020.0002] # RADIO BUTTON
-1F519 ; [*145A.0020.0002] # BACK WITH LEFTWARDS ARROW ABOVE
-1F51A ; [*145B.0020.0002] # END WITH LEFTWARDS ARROW ABOVE
-1F51B ; [*145C.0020.0002] # ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
-1F51C ; [*145D.0020.0002] # SOON WITH RIGHTWARDS ARROW ABOVE
-1F51D ; [*145E.0020.0002] # TOP WITH UPWARDS ARROW ABOVE
-1F51E ; [*145F.0020.0002] # NO ONE UNDER EIGHTEEN SYMBOL
-1F51F ; [*1460.0020.0002] # KEYCAP TEN
-1F520 ; [*1461.0020.0002] # INPUT SYMBOL FOR LATIN CAPITAL LETTERS
-1F521 ; [*1462.0020.0002] # INPUT SYMBOL FOR LATIN SMALL LETTERS
-1F522 ; [*1463.0020.0002] # INPUT SYMBOL FOR NUMBERS
-1F523 ; [*1464.0020.0002] # INPUT SYMBOL FOR SYMBOLS
-1F524 ; [*1465.0020.0002] # INPUT SYMBOL FOR LATIN LETTERS
-1F525 ; [*1466.0020.0002] # FIRE
-1F526 ; [*1467.0020.0002] # ELECTRIC TORCH
-1F527 ; [*1468.0020.0002] # WRENCH
-1F528 ; [*1469.0020.0002] # HAMMER
-1F529 ; [*146A.0020.0002] # NUT AND BOLT
-1F52A ; [*146B.0020.0002] # HOCHO
-1F52B ; [*146C.0020.0002] # PISTOL
-1F52C ; [*146D.0020.0002] # MICROSCOPE
-1F52D ; [*146E.0020.0002] # TELESCOPE
-1F52E ; [*146F.0020.0002] # CRYSTAL BALL
-1F52F ; [*1470.0020.0002] # SIX POINTED STAR WITH MIDDLE DOT
-1F530 ; [*1471.0020.0002] # JAPANESE SYMBOL FOR BEGINNER
-1F531 ; [*1472.0020.0002] # TRIDENT EMBLEM
-1F532 ; [*1473.0020.0002] # BLACK SQUARE BUTTON
-1F533 ; [*1474.0020.0002] # WHITE SQUARE BUTTON
-1F534 ; [*1475.0020.0002] # LARGE RED CIRCLE
-1F535 ; [*1476.0020.0002] # LARGE BLUE CIRCLE
-1F536 ; [*1477.0020.0002] # LARGE ORANGE DIAMOND
-1F537 ; [*1478.0020.0002] # LARGE BLUE DIAMOND
-1F538 ; [*1479.0020.0002] # SMALL ORANGE DIAMOND
-1F539 ; [*147A.0020.0002] # SMALL BLUE DIAMOND
-1F53A ; [*147B.0020.0002] # UP-POINTING RED TRIANGLE
-1F53B ; [*147C.0020.0002] # DOWN-POINTING RED TRIANGLE
-1F53C ; [*147D.0020.0002] # UP-POINTING SMALL RED TRIANGLE
-1F53D ; [*147E.0020.0002] # DOWN-POINTING SMALL RED TRIANGLE
-1F53E ; [*147F.0020.0002] # LOWER RIGHT SHADOWED WHITE CIRCLE
-1F53F ; [*1480.0020.0002] # UPPER RIGHT SHADOWED WHITE CIRCLE
-1F540 ; [*1481.0020.0002] # CIRCLED CROSS POMMEE
-1F541 ; [*1482.0020.0002] # CROSS POMMEE WITH HALF-CIRCLE BELOW
-1F542 ; [*1483.0020.0002] # CROSS POMMEE
-1F543 ; [*1484.0020.0002] # NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F544 ; [*1485.0020.0002] # NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS
-1F545 ; [*1486.0020.0002] # SYMBOL FOR MARKS CHAPTER
-1F546 ; [*1487.0020.0002] # WHITE LATIN CROSS
-1F547 ; [*1488.0020.0002] # HEAVY LATIN CROSS
-1F548 ; [*1489.0020.0002] # CELTIC CROSS
-1F549 ; [*148A.0020.0002] # OM SYMBOL
-1F54A ; [*148B.0020.0002] # DOVE OF PEACE
-1F550 ; [*148C.0020.0002] # CLOCK FACE ONE OCLOCK
-1F551 ; [*148D.0020.0002] # CLOCK FACE TWO OCLOCK
-1F552 ; [*148E.0020.0002] # CLOCK FACE THREE OCLOCK
-1F553 ; [*148F.0020.0002] # CLOCK FACE FOUR OCLOCK
-1F554 ; [*1490.0020.0002] # CLOCK FACE FIVE OCLOCK
-1F555 ; [*1491.0020.0002] # CLOCK FACE SIX OCLOCK
-1F556 ; [*1492.0020.0002] # CLOCK FACE SEVEN OCLOCK
-1F557 ; [*1493.0020.0002] # CLOCK FACE EIGHT OCLOCK
-1F558 ; [*1494.0020.0002] # CLOCK FACE NINE OCLOCK
-1F559 ; [*1495.0020.0002] # CLOCK FACE TEN OCLOCK
-1F55A ; [*1496.0020.0002] # CLOCK FACE ELEVEN OCLOCK
-1F55B ; [*1497.0020.0002] # CLOCK FACE TWELVE OCLOCK
-1F55C ; [*1498.0020.0002] # CLOCK FACE ONE-THIRTY
-1F55D ; [*1499.0020.0002] # CLOCK FACE TWO-THIRTY
-1F55E ; [*149A.0020.0002] # CLOCK FACE THREE-THIRTY
-1F55F ; [*149B.0020.0002] # CLOCK FACE FOUR-THIRTY
-1F560 ; [*149C.0020.0002] # CLOCK FACE FIVE-THIRTY
-1F561 ; [*149D.0020.0002] # CLOCK FACE SIX-THIRTY
-1F562 ; [*149E.0020.0002] # CLOCK FACE SEVEN-THIRTY
-1F563 ; [*149F.0020.0002] # CLOCK FACE EIGHT-THIRTY
-1F564 ; [*14A0.0020.0002] # CLOCK FACE NINE-THIRTY
-1F565 ; [*14A1.0020.0002] # CLOCK FACE TEN-THIRTY
-1F566 ; [*14A2.0020.0002] # CLOCK FACE ELEVEN-THIRTY
-1F567 ; [*14A3.0020.0002] # CLOCK FACE TWELVE-THIRTY
-1F568 ; [*14A4.0020.0002] # RIGHT SPEAKER
-1F569 ; [*14A5.0020.0002] # RIGHT SPEAKER WITH ONE SOUND WAVE
-1F56A ; [*14A6.0020.0002] # RIGHT SPEAKER WITH THREE SOUND WAVES
-1F56B ; [*14A7.0020.0002] # BULLHORN
-1F56C ; [*14A8.0020.0002] # BULLHORN WITH SOUND WAVES
-1F56D ; [*14A9.0020.0002] # RINGING BELL
-1F56E ; [*14AA.0020.0002] # BOOK
-1F56F ; [*14AB.0020.0002] # CANDLE
-1F570 ; [*14AC.0020.0002] # MANTELPIECE CLOCK
-1F571 ; [*14AD.0020.0002] # BLACK SKULL AND CROSSBONES
-1F572 ; [*14AE.0020.0002] # NO PIRACY
-1F573 ; [*14AF.0020.0002] # HOLE
-1F574 ; [*14B0.0020.0002] # MAN IN BUSINESS SUIT LEVITATING
-1F575 ; [*14B1.0020.0002] # SLEUTH OR SPY
-1F576 ; [*14B2.0020.0002] # DARK SUNGLASSES
-1F577 ; [*14B3.0020.0002] # SPIDER
-1F578 ; [*14B4.0020.0002] # SPIDER WEB
-1F579 ; [*14B5.0020.0002] # JOYSTICK
-1F57B ; [*14B6.0020.0002] # LEFT HAND TELEPHONE RECEIVER
-1F57C ; [*14B7.0020.0002] # TELEPHONE RECEIVER WITH PAGE
-1F57D ; [*14B8.0020.0002] # RIGHT HAND TELEPHONE RECEIVER
-1F57E ; [*14B9.0020.0002] # WHITE TOUCHTONE TELEPHONE
-1F57F ; [*14BA.0020.0002] # BLACK TOUCHTONE TELEPHONE
-1F580 ; [*14BB.0020.0002] # TELEPHONE ON TOP OF MODEM
-1F581 ; [*14BC.0020.0002] # CLAMSHELL MOBILE PHONE
-1F582 ; [*14BD.0020.0002] # BACK OF ENVELOPE
-1F583 ; [*14BE.0020.0002] # STAMPED ENVELOPE
-1F584 ; [*14BF.0020.0002] # ENVELOPE WITH LIGHTNING
-1F585 ; [*14C0.0020.0002] # FLYING ENVELOPE
-1F586 ; [*14C1.0020.0002] # PEN OVER STAMPED ENVELOPE
-1F587 ; [*14C2.0020.0002] # LINKED PAPERCLIPS
-1F588 ; [*14C3.0020.0002] # BLACK PUSHPIN
-1F589 ; [*14C4.0020.0002] # LOWER LEFT PENCIL
-1F58A ; [*14C5.0020.0002] # LOWER LEFT BALLPOINT PEN
-1F58B ; [*14C6.0020.0002] # LOWER LEFT FOUNTAIN PEN
-1F58C ; [*14C7.0020.0002] # LOWER LEFT PAINTBRUSH
-1F58D ; [*14C8.0020.0002] # LOWER LEFT CRAYON
-1F58E ; [*14C9.0020.0002] # LEFT WRITING HAND
-1F58F ; [*14CA.0020.0002] # TURNED OK HAND SIGN
-1F590 ; [*14CB.0020.0002] # RAISED HAND WITH FINGERS SPLAYED
-1F591 ; [*14CC.0020.0002] # REVERSED RAISED HAND WITH FINGERS SPLAYED
-1F592 ; [*14CD.0020.0002] # REVERSED THUMBS UP SIGN
-1F593 ; [*14CE.0020.0002] # REVERSED THUMBS DOWN SIGN
-1F594 ; [*14CF.0020.0002] # REVERSED VICTORY HAND
-1F595 ; [*14D0.0020.0002] # REVERSED HAND WITH MIDDLE FINGER EXTENDED
-1F596 ; [*14D1.0020.0002] # RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
-1F597 ; [*14D2.0020.0002] # WHITE DOWN POINTING LEFT HAND INDEX
-1F598 ; [*14D3.0020.0002] # SIDEWAYS WHITE LEFT POINTING INDEX
-1F599 ; [*14D4.0020.0002] # SIDEWAYS WHITE RIGHT POINTING INDEX
-1F59A ; [*14D5.0020.0002] # SIDEWAYS BLACK LEFT POINTING INDEX
-1F59B ; [*14D6.0020.0002] # SIDEWAYS BLACK RIGHT POINTING INDEX
-1F59C ; [*14D7.0020.0002] # BLACK LEFT POINTING BACKHAND INDEX
-1F59D ; [*14D8.0020.0002] # BLACK RIGHT POINTING BACKHAND INDEX
-1F59E ; [*14D9.0020.0002] # SIDEWAYS WHITE UP POINTING INDEX
-1F59F ; [*14DA.0020.0002] # SIDEWAYS WHITE DOWN POINTING INDEX
-1F5A0 ; [*14DB.0020.0002] # SIDEWAYS BLACK UP POINTING INDEX
-1F5A1 ; [*14DC.0020.0002] # SIDEWAYS BLACK DOWN POINTING INDEX
-1F5A2 ; [*14DD.0020.0002] # BLACK UP POINTING BACKHAND INDEX
-1F5A3 ; [*14DE.0020.0002] # BLACK DOWN POINTING BACKHAND INDEX
-1F5A5 ; [*14DF.0020.0002] # DESKTOP COMPUTER
-1F5A6 ; [*14E0.0020.0002] # KEYBOARD AND MOUSE
-1F5A7 ; [*14E1.0020.0002] # THREE NETWORKED COMPUTERS
-1F5A8 ; [*14E2.0020.0002] # PRINTER
-1F5A9 ; [*14E3.0020.0002] # POCKET CALCULATOR
-1F5AA ; [*14E4.0020.0002] # BLACK HARD SHELL FLOPPY DISK
-1F5AB ; [*14E5.0020.0002] # WHITE HARD SHELL FLOPPY DISK
-1F5AC ; [*14E6.0020.0002] # SOFT SHELL FLOPPY DISK
-1F5AD ; [*14E7.0020.0002] # TAPE CARTRIDGE
-1F5AE ; [*14E8.0020.0002] # WIRED KEYBOARD
-1F5AF ; [*14E9.0020.0002] # ONE BUTTON MOUSE
-1F5B0 ; [*14EA.0020.0002] # TWO BUTTON MOUSE
-1F5B1 ; [*14EB.0020.0002] # THREE BUTTON MOUSE
-1F5B2 ; [*14EC.0020.0002] # TRACKBALL
-1F5B3 ; [*14ED.0020.0002] # OLD PERSONAL COMPUTER
-1F5B4 ; [*14EE.0020.0002] # HARD DISK
-1F5B5 ; [*14EF.0020.0002] # SCREEN
-1F5B6 ; [*14F0.0020.0002] # PRINTER ICON
-1F5B7 ; [*14F1.0020.0002] # FAX ICON
-1F5B8 ; [*14F2.0020.0002] # OPTICAL DISC ICON
-1F5B9 ; [*14F3.0020.0002] # DOCUMENT WITH TEXT
-1F5BA ; [*14F4.0020.0002] # DOCUMENT WITH TEXT AND PICTURE
-1F5BB ; [*14F5.0020.0002] # DOCUMENT WITH PICTURE
-1F5BC ; [*14F6.0020.0002] # FRAME WITH PICTURE
-1F5BD ; [*14F7.0020.0002] # FRAME WITH TILES
-1F5BE ; [*14F8.0020.0002] # FRAME WITH AN X
-1F5BF ; [*14F9.0020.0002] # BLACK FOLDER
-1F5C0 ; [*14FA.0020.0002] # FOLDER
-1F5C1 ; [*14FB.0020.0002] # OPEN FOLDER
-1F5C2 ; [*14FC.0020.0002] # CARD INDEX DIVIDERS
-1F5C3 ; [*14FD.0020.0002] # CARD FILE BOX
-1F5C4 ; [*14FE.0020.0002] # FILE CABINET
-1F5C5 ; [*14FF.0020.0002] # EMPTY NOTE
-1F5C6 ; [*1500.0020.0002] # EMPTY NOTE PAGE
-1F5C7 ; [*1501.0020.0002] # EMPTY NOTE PAD
-1F5C8 ; [*1502.0020.0002] # NOTE
-1F5C9 ; [*1503.0020.0002] # NOTE PAGE
-1F5CA ; [*1504.0020.0002] # NOTE PAD
-1F5CB ; [*1505.0020.0002] # EMPTY DOCUMENT
-1F5CC ; [*1506.0020.0002] # EMPTY PAGE
-1F5CD ; [*1507.0020.0002] # EMPTY PAGES
-1F5CE ; [*1508.0020.0002] # DOCUMENT
-1F5CF ; [*1509.0020.0002] # PAGE
-1F5D0 ; [*150A.0020.0002] # PAGES
-1F5D1 ; [*150B.0020.0002] # WASTEBASKET
-1F5D2 ; [*150C.0020.0002] # SPIRAL NOTE PAD
-1F5D3 ; [*150D.0020.0002] # SPIRAL CALENDAR PAD
-1F5D4 ; [*150E.0020.0002] # DESKTOP WINDOW
-1F5D5 ; [*150F.0020.0002] # MINIMIZE
-1F5D6 ; [*1510.0020.0002] # MAXIMIZE
-1F5D7 ; [*1511.0020.0002] # OVERLAP
-1F5D8 ; [*1512.0020.0002] # CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS
-1F5D9 ; [*1513.0020.0002] # CANCELLATION X
-1F5DA ; [*1514.0020.0002] # INCREASE FONT SIZE SYMBOL
-1F5DB ; [*1515.0020.0002] # DECREASE FONT SIZE SYMBOL
-1F5DC ; [*1516.0020.0002] # COMPRESSION
-1F5DD ; [*1517.0020.0002] # OLD KEY
-1F5DE ; [*1518.0020.0002] # ROLLED-UP NEWSPAPER
-1F5DF ; [*1519.0020.0002] # PAGE WITH CIRCLED TEXT
-1F5E0 ; [*151A.0020.0002] # STOCK CHART
-1F5E1 ; [*151B.0020.0002] # DAGGER KNIFE
-1F5E2 ; [*151C.0020.0002] # LIPS
-1F5E3 ; [*151D.0020.0002] # SPEAKING HEAD IN SILHOUETTE
-1F5E4 ; [*151E.0020.0002] # THREE RAYS ABOVE
-1F5E5 ; [*151F.0020.0002] # THREE RAYS BELOW
-1F5E6 ; [*1520.0020.0002] # THREE RAYS LEFT
-1F5E7 ; [*1521.0020.0002] # THREE RAYS RIGHT
-1F5E8 ; [*1522.0020.0002] # LEFT SPEECH BUBBLE
-1F5E9 ; [*1523.0020.0002] # RIGHT SPEECH BUBBLE
-1F5EA ; [*1524.0020.0002] # TWO SPEECH BUBBLES
-1F5EB ; [*1525.0020.0002] # THREE SPEECH BUBBLES
-1F5EC ; [*1526.0020.0002] # LEFT THOUGHT BUBBLE
-1F5ED ; [*1527.0020.0002] # RIGHT THOUGHT BUBBLE
-1F5EE ; [*1528.0020.0002] # LEFT ANGER BUBBLE
-1F5EF ; [*1529.0020.0002] # RIGHT ANGER BUBBLE
-1F5F0 ; [*152A.0020.0002] # MOOD BUBBLE
-1F5F1 ; [*152B.0020.0002] # LIGHTNING MOOD BUBBLE
-1F5F2 ; [*152C.0020.0002] # LIGHTNING MOOD
-1F5F3 ; [*152D.0020.0002] # BALLOT BOX WITH BALLOT
-1F5F4 ; [*152E.0020.0002] # BALLOT SCRIPT X
-1F5F5 ; [*152F.0020.0002] # BALLOT BOX WITH SCRIPT X
-1F5F6 ; [*1530.0020.0002] # BALLOT BOLD SCRIPT X
-1F5F7 ; [*1531.0020.0002] # BALLOT BOX WITH BOLD SCRIPT X
-1F5F8 ; [*1532.0020.0002] # LIGHT CHECK MARK
-1F5F9 ; [*1533.0020.0002] # BALLOT BOX WITH BOLD CHECK
-1F5FA ; [*1534.0020.0002] # WORLD MAP
-1F5FB ; [*1535.0020.0002] # MOUNT FUJI
-1F5FC ; [*1536.0020.0002] # TOKYO TOWER
-1F5FD ; [*1537.0020.0002] # STATUE OF LIBERTY
-1F5FE ; [*1538.0020.0002] # SILHOUETTE OF JAPAN
-1F5FF ; [*1539.0020.0002] # MOYAI
-1F600 ; [*153A.0020.0002] # GRINNING FACE
-1F601 ; [*153B.0020.0002] # GRINNING FACE WITH SMILING EYES
-1F602 ; [*153C.0020.0002] # FACE WITH TEARS OF JOY
-1F603 ; [*153D.0020.0002] # SMILING FACE WITH OPEN MOUTH
-1F604 ; [*153E.0020.0002] # SMILING FACE WITH OPEN MOUTH AND SMILING EYES
-1F605 ; [*153F.0020.0002] # SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
-1F606 ; [*1540.0020.0002] # SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
-1F607 ; [*1541.0020.0002] # SMILING FACE WITH HALO
-1F608 ; [*1542.0020.0002] # SMILING FACE WITH HORNS
-1F609 ; [*1543.0020.0002] # WINKING FACE
-1F60A ; [*1544.0020.0002] # SMILING FACE WITH SMILING EYES
-1F60B ; [*1545.0020.0002] # FACE SAVOURING DELICIOUS FOOD
-1F60C ; [*1546.0020.0002] # RELIEVED FACE
-1F60D ; [*1547.0020.0002] # SMILING FACE WITH HEART-SHAPED EYES
-1F60E ; [*1548.0020.0002] # SMILING FACE WITH SUNGLASSES
-1F60F ; [*1549.0020.0002] # SMIRKING FACE
-1F610 ; [*154A.0020.0002] # NEUTRAL FACE
-1F611 ; [*154B.0020.0002] # EXPRESSIONLESS FACE
-1F612 ; [*154C.0020.0002] # UNAMUSED FACE
-1F613 ; [*154D.0020.0002] # FACE WITH COLD SWEAT
-1F614 ; [*154E.0020.0002] # PENSIVE FACE
-1F615 ; [*154F.0020.0002] # CONFUSED FACE
-1F616 ; [*1550.0020.0002] # CONFOUNDED FACE
-1F617 ; [*1551.0020.0002] # KISSING FACE
-1F618 ; [*1552.0020.0002] # FACE THROWING A KISS
-1F619 ; [*1553.0020.0002] # KISSING FACE WITH SMILING EYES
-1F61A ; [*1554.0020.0002] # KISSING FACE WITH CLOSED EYES
-1F61B ; [*1555.0020.0002] # FACE WITH STUCK-OUT TONGUE
-1F61C ; [*1556.0020.0002] # FACE WITH STUCK-OUT TONGUE AND WINKING EYE
-1F61D ; [*1557.0020.0002] # FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
-1F61E ; [*1558.0020.0002] # DISAPPOINTED FACE
-1F61F ; [*1559.0020.0002] # WORRIED FACE
-1F620 ; [*155A.0020.0002] # ANGRY FACE
-1F621 ; [*155B.0020.0002] # POUTING FACE
-1F622 ; [*155C.0020.0002] # CRYING FACE
-1F623 ; [*155D.0020.0002] # PERSEVERING FACE
-1F624 ; [*155E.0020.0002] # FACE WITH LOOK OF TRIUMPH
-1F625 ; [*155F.0020.0002] # DISAPPOINTED BUT RELIEVED FACE
-1F626 ; [*1560.0020.0002] # FROWNING FACE WITH OPEN MOUTH
-1F627 ; [*1561.0020.0002] # ANGUISHED FACE
-1F628 ; [*1562.0020.0002] # FEARFUL FACE
-1F629 ; [*1563.0020.0002] # WEARY FACE
-1F62A ; [*1564.0020.0002] # SLEEPY FACE
-1F62B ; [*1565.0020.0002] # TIRED FACE
-1F62C ; [*1566.0020.0002] # GRIMACING FACE
-1F62D ; [*1567.0020.0002] # LOUDLY CRYING FACE
-1F62E ; [*1568.0020.0002] # FACE WITH OPEN MOUTH
-1F62F ; [*1569.0020.0002] # HUSHED FACE
-1F630 ; [*156A.0020.0002] # FACE WITH OPEN MOUTH AND COLD SWEAT
-1F631 ; [*156B.0020.0002] # FACE SCREAMING IN FEAR
-1F632 ; [*156C.0020.0002] # ASTONISHED FACE
-1F633 ; [*156D.0020.0002] # FLUSHED FACE
-1F634 ; [*156E.0020.0002] # SLEEPING FACE
-1F635 ; [*156F.0020.0002] # DIZZY FACE
-1F636 ; [*1570.0020.0002] # FACE WITHOUT MOUTH
-1F637 ; [*1571.0020.0002] # FACE WITH MEDICAL MASK
-1F638 ; [*1572.0020.0002] # GRINNING CAT FACE WITH SMILING EYES
-1F639 ; [*1573.0020.0002] # CAT FACE WITH TEARS OF JOY
-1F63A ; [*1574.0020.0002] # SMILING CAT FACE WITH OPEN MOUTH
-1F63B ; [*1575.0020.0002] # SMILING CAT FACE WITH HEART-SHAPED EYES
-1F63C ; [*1576.0020.0002] # CAT FACE WITH WRY SMILE
-1F63D ; [*1577.0020.0002] # KISSING CAT FACE WITH CLOSED EYES
-1F63E ; [*1578.0020.0002] # POUTING CAT FACE
-1F63F ; [*1579.0020.0002] # CRYING CAT FACE
-1F640 ; [*157A.0020.0002] # WEARY CAT FACE
-1F641 ; [*157B.0020.0002] # SLIGHTLY FROWNING FACE
-1F642 ; [*157C.0020.0002] # SLIGHTLY SMILING FACE
-1F645 ; [*157D.0020.0002] # FACE WITH NO GOOD GESTURE
-1F646 ; [*157E.0020.0002] # FACE WITH OK GESTURE
-1F647 ; [*157F.0020.0002] # PERSON BOWING DEEPLY
-1F648 ; [*1580.0020.0002] # SEE-NO-EVIL MONKEY
-1F649 ; [*1581.0020.0002] # HEAR-NO-EVIL MONKEY
-1F64A ; [*1582.0020.0002] # SPEAK-NO-EVIL MONKEY
-1F64B ; [*1583.0020.0002] # HAPPY PERSON RAISING ONE HAND
-1F64C ; [*1584.0020.0002] # PERSON RAISING BOTH HANDS IN CELEBRATION
-1F64D ; [*1585.0020.0002] # PERSON FROWNING
-1F64E ; [*1586.0020.0002] # PERSON WITH POUTING FACE
-1F64F ; [*1587.0020.0002] # PERSON WITH FOLDED HANDS
-1F650 ; [*1588.0020.0002] # NORTH WEST POINTING LEAF
-1F651 ; [*1589.0020.0002] # SOUTH WEST POINTING LEAF
-1F652 ; [*158A.0020.0002] # NORTH EAST POINTING LEAF
-1F653 ; [*158B.0020.0002] # SOUTH EAST POINTING LEAF
-1F654 ; [*158C.0020.0002] # TURNED NORTH WEST POINTING LEAF
-1F655 ; [*158D.0020.0002] # TURNED SOUTH WEST POINTING LEAF
-1F656 ; [*158E.0020.0002] # TURNED NORTH EAST POINTING LEAF
-1F657 ; [*158F.0020.0002] # TURNED SOUTH EAST POINTING LEAF
-1F658 ; [*1590.0020.0002] # NORTH WEST POINTING VINE LEAF
-1F659 ; [*1591.0020.0002] # SOUTH WEST POINTING VINE LEAF
-1F65A ; [*1592.0020.0002] # NORTH EAST POINTING VINE LEAF
-1F65B ; [*1593.0020.0002] # SOUTH EAST POINTING VINE LEAF
-1F65C ; [*1594.0020.0002] # HEAVY NORTH WEST POINTING VINE LEAF
-1F65D ; [*1595.0020.0002] # HEAVY SOUTH WEST POINTING VINE LEAF
-1F65E ; [*1596.0020.0002] # HEAVY NORTH EAST POINTING VINE LEAF
-1F65F ; [*1597.0020.0002] # HEAVY SOUTH EAST POINTING VINE LEAF
-1F660 ; [*1598.0020.0002] # NORTH WEST POINTING BUD
-1F661 ; [*1599.0020.0002] # SOUTH WEST POINTING BUD
-1F662 ; [*159A.0020.0002] # NORTH EAST POINTING BUD
-1F663 ; [*159B.0020.0002] # SOUTH EAST POINTING BUD
-1F664 ; [*159C.0020.0002] # HEAVY NORTH WEST POINTING BUD
-1F665 ; [*159D.0020.0002] # HEAVY SOUTH WEST POINTING BUD
-1F666 ; [*159E.0020.0002] # HEAVY NORTH EAST POINTING BUD
-1F667 ; [*159F.0020.0002] # HEAVY SOUTH EAST POINTING BUD
-1F668 ; [*15A0.0020.0002] # HOLLOW QUILT SQUARE ORNAMENT
-1F669 ; [*15A1.0020.0002] # HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE
-1F66A ; [*15A2.0020.0002] # SOLID QUILT SQUARE ORNAMENT
-1F66B ; [*15A3.0020.0002] # SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE
-1F66C ; [*15A4.0020.0002] # LEFTWARDS ROCKET
-1F66D ; [*15A5.0020.0002] # UPWARDS ROCKET
-1F66E ; [*15A6.0020.0002] # RIGHTWARDS ROCKET
-1F66F ; [*15A7.0020.0002] # DOWNWARDS ROCKET
-1F670 ; [*15A8.0020.0002] # SCRIPT LIGATURE ET ORNAMENT
-1F671 ; [*15A9.0020.0002] # HEAVY SCRIPT LIGATURE ET ORNAMENT
-1F672 ; [*15AA.0020.0002] # LIGATURE OPEN ET ORNAMENT
-1F673 ; [*15AB.0020.0002] # HEAVY LIGATURE OPEN ET ORNAMENT
-1F674 ; [*15AC.0020.0002] # HEAVY AMPERSAND ORNAMENT
-1F675 ; [*15AD.0020.0002] # SWASH AMPERSAND ORNAMENT
-1F676 ; [*15AE.0020.0002] # SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-1F677 ; [*15AF.0020.0002] # SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-1F678 ; [*15B0.0020.0002] # SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-1F679 ; [*15B1.0020.0002] # HEAVY INTERROBANG ORNAMENT
-1F67A ; [*15B2.0020.0002] # SANS-SERIF INTERROBANG ORNAMENT
-1F67B ; [*15B3.0020.0002] # HEAVY SANS-SERIF INTERROBANG ORNAMENT
-1F67C ; [*15B4.0020.0002] # VERY HEAVY SOLIDUS
-1F67D ; [*15B5.0020.0002] # VERY HEAVY REVERSE SOLIDUS
-1F67E ; [*15B6.0020.0002] # CHECKER BOARD
-1F67F ; [*15B7.0020.0002] # REVERSE CHECKER BOARD
-1F680 ; [*15B8.0020.0002] # ROCKET
-1F681 ; [*15B9.0020.0002] # HELICOPTER
-1F682 ; [*15BA.0020.0002] # STEAM LOCOMOTIVE
-1F683 ; [*15BB.0020.0002] # RAILWAY CAR
-1F684 ; [*15BC.0020.0002] # HIGH-SPEED TRAIN
-1F685 ; [*15BD.0020.0002] # HIGH-SPEED TRAIN WITH BULLET NOSE
-1F686 ; [*15BE.0020.0002] # TRAIN
-1F687 ; [*15BF.0020.0002] # METRO
-1F688 ; [*15C0.0020.0002] # LIGHT RAIL
-1F689 ; [*15C1.0020.0002] # STATION
-1F68A ; [*15C2.0020.0002] # TRAM
-1F68B ; [*15C3.0020.0002] # TRAM CAR
-1F68C ; [*15C4.0020.0002] # BUS
-1F68D ; [*15C5.0020.0002] # ONCOMING BUS
-1F68E ; [*15C6.0020.0002] # TROLLEYBUS
-1F68F ; [*15C7.0020.0002] # BUS STOP
-1F690 ; [*15C8.0020.0002] # MINIBUS
-1F691 ; [*15C9.0020.0002] # AMBULANCE
-1F692 ; [*15CA.0020.0002] # FIRE ENGINE
-1F693 ; [*15CB.0020.0002] # POLICE CAR
-1F694 ; [*15CC.0020.0002] # ONCOMING POLICE CAR
-1F695 ; [*15CD.0020.0002] # TAXI
-1F696 ; [*15CE.0020.0002] # ONCOMING TAXI
-1F697 ; [*15CF.0020.0002] # AUTOMOBILE
-1F698 ; [*15D0.0020.0002] # ONCOMING AUTOMOBILE
-1F699 ; [*15D1.0020.0002] # RECREATIONAL VEHICLE
-1F69A ; [*15D2.0020.0002] # DELIVERY TRUCK
-1F69B ; [*15D3.0020.0002] # ARTICULATED LORRY
-1F69C ; [*15D4.0020.0002] # TRACTOR
-1F69D ; [*15D5.0020.0002] # MONORAIL
-1F69E ; [*15D6.0020.0002] # MOUNTAIN RAILWAY
-1F69F ; [*15D7.0020.0002] # SUSPENSION RAILWAY
-1F6A0 ; [*15D8.0020.0002] # MOUNTAIN CABLEWAY
-1F6A1 ; [*15D9.0020.0002] # AERIAL TRAMWAY
-1F6A2 ; [*15DA.0020.0002] # SHIP
-1F6A3 ; [*15DB.0020.0002] # ROWBOAT
-1F6A4 ; [*15DC.0020.0002] # SPEEDBOAT
-1F6A5 ; [*15DD.0020.0002] # HORIZONTAL TRAFFIC LIGHT
-1F6A6 ; [*15DE.0020.0002] # VERTICAL TRAFFIC LIGHT
-1F6A7 ; [*15DF.0020.0002] # CONSTRUCTION SIGN
-1F6A8 ; [*15E0.0020.0002] # POLICE CARS REVOLVING LIGHT
-1F6A9 ; [*15E1.0020.0002] # TRIANGULAR FLAG ON POST
-1F6AA ; [*15E2.0020.0002] # DOOR
-1F6AB ; [*15E3.0020.0002] # NO ENTRY SIGN
-1F6AC ; [*15E4.0020.0002] # SMOKING SYMBOL
-1F6AD ; [*15E5.0020.0002] # NO SMOKING SYMBOL
-1F6AE ; [*15E6.0020.0002] # PUT LITTER IN ITS PLACE SYMBOL
-1F6AF ; [*15E7.0020.0002] # DO NOT LITTER SYMBOL
-1F6B0 ; [*15E8.0020.0002] # POTABLE WATER SYMBOL
-1F6B1 ; [*15E9.0020.0002] # NON-POTABLE WATER SYMBOL
-1F6B2 ; [*15EA.0020.0002] # BICYCLE
-1F6B3 ; [*15EB.0020.0002] # NO BICYCLES
-1F6B4 ; [*15EC.0020.0002] # BICYCLIST
-1F6B5 ; [*15ED.0020.0002] # MOUNTAIN BICYCLIST
-1F6B6 ; [*15EE.0020.0002] # PEDESTRIAN
-1F6B7 ; [*15EF.0020.0002] # NO PEDESTRIANS
-1F6B8 ; [*15F0.0020.0002] # CHILDREN CROSSING
-1F6B9 ; [*15F1.0020.0002] # MENS SYMBOL
-1F6BA ; [*15F2.0020.0002] # WOMENS SYMBOL
-1F6BB ; [*15F3.0020.0002] # RESTROOM
-1F6BC ; [*15F4.0020.0002] # BABY SYMBOL
-1F6BD ; [*15F5.0020.0002] # TOILET
-1F6BE ; [*15F6.0020.0002] # WATER CLOSET
-1F6BF ; [*15F7.0020.0002] # SHOWER
-1F6C0 ; [*15F8.0020.0002] # BATH
-1F6C1 ; [*15F9.0020.0002] # BATHTUB
-1F6C2 ; [*15FA.0020.0002] # PASSPORT CONTROL
-1F6C3 ; [*15FB.0020.0002] # CUSTOMS
-1F6C4 ; [*15FC.0020.0002] # BAGGAGE CLAIM
-1F6C5 ; [*15FD.0020.0002] # LEFT LUGGAGE
-1F6C6 ; [*15FE.0020.0002] # TRIANGLE WITH ROUNDED CORNERS
-1F6C7 ; [*15FF.0020.0002] # PROHIBITED SIGN
-1F6C8 ; [*1600.0020.0002] # CIRCLED INFORMATION SOURCE
-1F6C9 ; [*1601.0020.0002] # BOYS SYMBOL
-1F6CA ; [*1602.0020.0002] # GIRLS SYMBOL
-1F6CB ; [*1603.0020.0002] # COUCH AND LAMP
-1F6CC ; [*1604.0020.0002] # SLEEPING ACCOMMODATION
-1F6CD ; [*1605.0020.0002] # SHOPPING BAGS
-1F6CE ; [*1606.0020.0002] # BELLHOP BELL
-1F6CF ; [*1607.0020.0002] # BED
-1F6E0 ; [*1608.0020.0002] # HAMMER AND WRENCH
-1F6E1 ; [*1609.0020.0002] # SHIELD
-1F6E2 ; [*160A.0020.0002] # OIL DRUM
-1F6E3 ; [*160B.0020.0002] # MOTORWAY
-1F6E4 ; [*160C.0020.0002] # RAILWAY TRACK
-1F6E5 ; [*160D.0020.0002] # MOTOR BOAT
-1F6E6 ; [*160E.0020.0002] # UP-POINTING MILITARY AIRPLANE
-1F6E7 ; [*160F.0020.0002] # UP-POINTING AIRPLANE
-1F6E8 ; [*1610.0020.0002] # UP-POINTING SMALL AIRPLANE
-1F6E9 ; [*1611.0020.0002] # SMALL AIRPLANE
-1F6EA ; [*1612.0020.0002] # NORTHEAST-POINTING AIRPLANE
-1F6EB ; [*1613.0020.0002] # AIRPLANE DEPARTURE
-1F6EC ; [*1614.0020.0002] # AIRPLANE ARRIVING
-1F6F0 ; [*1615.0020.0002] # SATELLITE
-1F6F1 ; [*1616.0020.0002] # ONCOMING FIRE ENGINE
-1F6F2 ; [*1617.0020.0002] # DIESEL LOCOMOTIVE
-1F6F3 ; [*1618.0020.0002] # PASSENGER SHIP
-1F700 ; [*1619.0020.0002] # ALCHEMICAL SYMBOL FOR QUINTESSENCE
-1F701 ; [*161A.0020.0002] # ALCHEMICAL SYMBOL FOR AIR
-1F702 ; [*161B.0020.0002] # ALCHEMICAL SYMBOL FOR FIRE
-1F703 ; [*161C.0020.0002] # ALCHEMICAL SYMBOL FOR EARTH
-1F704 ; [*161D.0020.0002] # ALCHEMICAL SYMBOL FOR WATER
-1F705 ; [*161E.0020.0002] # ALCHEMICAL SYMBOL FOR AQUAFORTIS
-1F706 ; [*161F.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA
-1F707 ; [*1620.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA-2
-1F708 ; [*1621.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE
-1F709 ; [*1622.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE-2
-1F70A ; [*1623.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR
-1F70B ; [*1624.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-2
-1F70C ; [*1625.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-3
-1F70D ; [*1626.0020.0002] # ALCHEMICAL SYMBOL FOR SULFUR
-1F70E ; [*1627.0020.0002] # ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
-1F70F ; [*1628.0020.0002] # ALCHEMICAL SYMBOL FOR BLACK SULFUR
-1F710 ; [*1629.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
-1F711 ; [*162A.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
-1F712 ; [*162B.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
-1F713 ; [*162C.0020.0002] # ALCHEMICAL SYMBOL FOR CINNABAR
-1F714 ; [*162D.0020.0002] # ALCHEMICAL SYMBOL FOR SALT
-1F715 ; [*162E.0020.0002] # ALCHEMICAL SYMBOL FOR NITRE
-1F716 ; [*162F.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL
-1F717 ; [*1630.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL-2
-1F718 ; [*1631.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT
-1F719 ; [*1632.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT-2
-1F71A ; [*1633.0020.0002] # ALCHEMICAL SYMBOL FOR GOLD
-1F71B ; [*1634.0020.0002] # ALCHEMICAL SYMBOL FOR SILVER
-1F71C ; [*1635.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE
-1F71D ; [*1636.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE-2
-1F71E ; [*1637.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF IRON
-1F71F ; [*1638.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF IRON
-1F720 ; [*1639.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ORE
-1F721 ; [*163A.0020.0002] # ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
-1F722 ; [*163B.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
-1F723 ; [*163C.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
-1F724 ; [*163D.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
-1F725 ; [*163E.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
-1F726 ; [*163F.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
-1F727 ; [*1640.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
-1F728 ; [*1641.0020.0002] # ALCHEMICAL SYMBOL FOR VERDIGRIS
-1F729 ; [*1642.0020.0002] # ALCHEMICAL SYMBOL FOR TIN ORE
-1F72A ; [*1643.0020.0002] # ALCHEMICAL SYMBOL FOR LEAD ORE
-1F72B ; [*1644.0020.0002] # ALCHEMICAL SYMBOL FOR ANTIMONY ORE
-1F72C ; [*1645.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
-1F72D ; [*1646.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
-1F72E ; [*1647.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
-1F72F ; [*1648.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
-1F730 ; [*1649.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
-1F731 ; [*164A.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
-1F732 ; [*164B.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS
-1F733 ; [*164C.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-2
-1F734 ; [*164D.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-3
-1F735 ; [*164E.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-4
-1F736 ; [*164F.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI
-1F737 ; [*1650.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI-2
-1F738 ; [*1651.0020.0002] # ALCHEMICAL SYMBOL FOR MARCASITE
-1F739 ; [*1652.0020.0002] # ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
-1F73A ; [*1653.0020.0002] # ALCHEMICAL SYMBOL FOR ARSENIC
-1F73B ; [*1654.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR
-1F73C ; [*1655.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR-2
-1F73D ; [*1656.0020.0002] # ALCHEMICAL SYMBOL FOR AURIPIGMENT
-1F73E ; [*1657.0020.0002] # ALCHEMICAL SYMBOL FOR BISMUTH ORE
-1F73F ; [*1658.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR
-1F740 ; [*1659.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR-2
-1F741 ; [*165A.0020.0002] # ALCHEMICAL SYMBOL FOR QUICK LIME
-1F742 ; [*165B.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX
-1F743 ; [*165C.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-2
-1F744 ; [*165D.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-3
-1F745 ; [*165E.0020.0002] # ALCHEMICAL SYMBOL FOR ALUM
-1F746 ; [*165F.0020.0002] # ALCHEMICAL SYMBOL FOR OIL
-1F747 ; [*1660.0020.0002] # ALCHEMICAL SYMBOL FOR SPIRIT
-1F748 ; [*1661.0020.0002] # ALCHEMICAL SYMBOL FOR TINCTURE
-1F749 ; [*1662.0020.0002] # ALCHEMICAL SYMBOL FOR GUM
-1F74A ; [*1663.0020.0002] # ALCHEMICAL SYMBOL FOR WAX
-1F74B ; [*1664.0020.0002] # ALCHEMICAL SYMBOL FOR POWDER
-1F74C ; [*1665.0020.0002] # ALCHEMICAL SYMBOL FOR CALX
-1F74D ; [*1666.0020.0002] # ALCHEMICAL SYMBOL FOR TUTTY
-1F74E ; [*1667.0020.0002] # ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
-1F74F ; [*1668.0020.0002] # ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
-1F750 ; [*1669.0020.0002] # ALCHEMICAL SYMBOL FOR CADUCEUS
-1F751 ; [*166A.0020.0002] # ALCHEMICAL SYMBOL FOR TRIDENT
-1F752 ; [*166B.0020.0002] # ALCHEMICAL SYMBOL FOR STARRED TRIDENT
-1F753 ; [*166C.0020.0002] # ALCHEMICAL SYMBOL FOR LODESTONE
-1F754 ; [*166D.0020.0002] # ALCHEMICAL SYMBOL FOR SOAP
-1F755 ; [*166E.0020.0002] # ALCHEMICAL SYMBOL FOR URINE
-1F756 ; [*166F.0020.0002] # ALCHEMICAL SYMBOL FOR HORSE DUNG
-1F757 ; [*1670.0020.0002] # ALCHEMICAL SYMBOL FOR ASHES
-1F758 ; [*1671.0020.0002] # ALCHEMICAL SYMBOL FOR POT ASHES
-1F759 ; [*1672.0020.0002] # ALCHEMICAL SYMBOL FOR BRICK
-1F75A ; [*1673.0020.0002] # ALCHEMICAL SYMBOL FOR POWDERED BRICK
-1F75B ; [*1674.0020.0002] # ALCHEMICAL SYMBOL FOR AMALGAM
-1F75C ; [*1675.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
-1F75D ; [*1676.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
-1F75E ; [*1677.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATION
-1F75F ; [*1678.0020.0002] # ALCHEMICAL SYMBOL FOR PRECIPITATE
-1F760 ; [*1679.0020.0002] # ALCHEMICAL SYMBOL FOR DISTILL
-1F761 ; [*167A.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE
-1F762 ; [*167B.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE-2
-1F763 ; [*167C.0020.0002] # ALCHEMICAL SYMBOL FOR PURIFY
-1F764 ; [*167D.0020.0002] # ALCHEMICAL SYMBOL FOR PUTREFACTION
-1F765 ; [*167E.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE
-1F766 ; [*167F.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-2
-1F767 ; [*1680.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-3
-1F768 ; [*1681.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-4
-1F769 ; [*1682.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-5
-1F76A ; [*1683.0020.0002] # ALCHEMICAL SYMBOL FOR ALEMBIC
-1F76B ; [*1684.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF MARY
-1F76C ; [*1685.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
-1F76D ; [*1686.0020.0002] # ALCHEMICAL SYMBOL FOR RETORT
-1F76E ; [*1687.0020.0002] # ALCHEMICAL SYMBOL FOR HOUR
-1F76F ; [*1688.0020.0002] # ALCHEMICAL SYMBOL FOR NIGHT
-1F770 ; [*1689.0020.0002] # ALCHEMICAL SYMBOL FOR DAY-NIGHT
-1F771 ; [*168A.0020.0002] # ALCHEMICAL SYMBOL FOR MONTH
-1F772 ; [*168B.0020.0002] # ALCHEMICAL SYMBOL FOR HALF DRAM
-1F773 ; [*168C.0020.0002] # ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780 ; [*168D.0020.0002] # BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE
-1F781 ; [*168E.0020.0002] # BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE
-1F782 ; [*168F.0020.0002] # BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE
-1F783 ; [*1690.0020.0002] # BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE
-1F784 ; [*1691.0020.0002] # BLACK SLIGHTLY SMALL CIRCLE
-1F785 ; [*1692.0020.0002] # MEDIUM BOLD WHITE CIRCLE
-1F786 ; [*1693.0020.0002] # BOLD WHITE CIRCLE
-1F787 ; [*1694.0020.0002] # HEAVY WHITE CIRCLE
-1F788 ; [*1695.0020.0002] # VERY HEAVY WHITE CIRCLE
-1F789 ; [*1696.0020.0002] # EXTREMELY HEAVY WHITE CIRCLE
-1F78A ; [*1697.0020.0002] # WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE
-1F78B ; [*1698.0020.0002] # ROUND TARGET
-1F78C ; [*1699.0020.0002] # BLACK TINY SQUARE
-1F78D ; [*169A.0020.0002] # BLACK SLIGHTLY SMALL SQUARE
-1F78E ; [*169B.0020.0002] # LIGHT WHITE SQUARE
-1F78F ; [*169C.0020.0002] # MEDIUM WHITE SQUARE
-1F790 ; [*169D.0020.0002] # BOLD WHITE SQUARE
-1F791 ; [*169E.0020.0002] # HEAVY WHITE SQUARE
-1F792 ; [*169F.0020.0002] # VERY HEAVY WHITE SQUARE
-1F793 ; [*16A0.0020.0002] # EXTREMELY HEAVY WHITE SQUARE
-1F794 ; [*16A1.0020.0002] # WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE
-1F795 ; [*16A2.0020.0002] # WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE
-1F796 ; [*16A3.0020.0002] # SQUARE TARGET
-1F797 ; [*16A4.0020.0002] # BLACK TINY DIAMOND
-1F798 ; [*16A5.0020.0002] # BLACK VERY SMALL DIAMOND
-1F799 ; [*16A6.0020.0002] # BLACK MEDIUM SMALL DIAMOND
-1F79A ; [*16A7.0020.0002] # WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND
-1F79B ; [*16A8.0020.0002] # WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND
-1F79C ; [*16A9.0020.0002] # DIAMOND TARGET
-1F79D ; [*16AA.0020.0002] # BLACK TINY LOZENGE
-1F79E ; [*16AB.0020.0002] # BLACK VERY SMALL LOZENGE
-1F79F ; [*16AC.0020.0002] # BLACK MEDIUM SMALL LOZENGE
-1F7A0 ; [*16AD.0020.0002] # WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE
-1F7A1 ; [*16AE.0020.0002] # THIN GREEK CROSS
-1F7A2 ; [*16AF.0020.0002] # LIGHT GREEK CROSS
-1F7A3 ; [*16B0.0020.0002] # MEDIUM GREEK CROSS
-1F7A4 ; [*16B1.0020.0002] # BOLD GREEK CROSS
-1F7A5 ; [*16B2.0020.0002] # VERY BOLD GREEK CROSS
-1F7A6 ; [*16B3.0020.0002] # VERY HEAVY GREEK CROSS
-1F7A7 ; [*16B4.0020.0002] # EXTREMELY HEAVY GREEK CROSS
-1F7A8 ; [*16B5.0020.0002] # THIN SALTIRE
-1F7A9 ; [*16B6.0020.0002] # LIGHT SALTIRE
-1F7AA ; [*16B7.0020.0002] # MEDIUM SALTIRE
-1F7AB ; [*16B8.0020.0002] # BOLD SALTIRE
-1F7AC ; [*16B9.0020.0002] # HEAVY SALTIRE
-1F7AD ; [*16BA.0020.0002] # VERY HEAVY SALTIRE
-1F7AE ; [*16BB.0020.0002] # EXTREMELY HEAVY SALTIRE
-1F7AF ; [*16BC.0020.0002] # LIGHT FIVE SPOKED ASTERISK
-1F7B0 ; [*16BD.0020.0002] # MEDIUM FIVE SPOKED ASTERISK
-1F7B1 ; [*16BE.0020.0002] # BOLD FIVE SPOKED ASTERISK
-1F7B2 ; [*16BF.0020.0002] # HEAVY FIVE SPOKED ASTERISK
-1F7B3 ; [*16C0.0020.0002] # VERY HEAVY FIVE SPOKED ASTERISK
-1F7B4 ; [*16C1.0020.0002] # EXTREMELY HEAVY FIVE SPOKED ASTERISK
-1F7B5 ; [*16C2.0020.0002] # LIGHT SIX SPOKED ASTERISK
-1F7B6 ; [*16C3.0020.0002] # MEDIUM SIX SPOKED ASTERISK
-1F7B7 ; [*16C4.0020.0002] # BOLD SIX SPOKED ASTERISK
-1F7B8 ; [*16C5.0020.0002] # HEAVY SIX SPOKED ASTERISK
-1F7B9 ; [*16C6.0020.0002] # VERY HEAVY SIX SPOKED ASTERISK
-1F7BA ; [*16C7.0020.0002] # EXTREMELY HEAVY SIX SPOKED ASTERISK
-1F7BB ; [*16C8.0020.0002] # LIGHT EIGHT SPOKED ASTERISK
-1F7BC ; [*16C9.0020.0002] # MEDIUM EIGHT SPOKED ASTERISK
-1F7BD ; [*16CA.0020.0002] # BOLD EIGHT SPOKED ASTERISK
-1F7BE ; [*16CB.0020.0002] # HEAVY EIGHT SPOKED ASTERISK
-1F7BF ; [*16CC.0020.0002] # VERY HEAVY EIGHT SPOKED ASTERISK
-1F7C0 ; [*16CD.0020.0002] # LIGHT THREE POINTED BLACK STAR
-1F7C1 ; [*16CE.0020.0002] # MEDIUM THREE POINTED BLACK STAR
-1F7C2 ; [*16CF.0020.0002] # THREE POINTED BLACK STAR
-1F7C3 ; [*16D0.0020.0002] # MEDIUM THREE POINTED PINWHEEL STAR
-1F7C4 ; [*16D1.0020.0002] # LIGHT FOUR POINTED BLACK STAR
-1F7C5 ; [*16D2.0020.0002] # MEDIUM FOUR POINTED BLACK STAR
-1F7C6 ; [*16D3.0020.0002] # FOUR POINTED BLACK STAR
-1F7C7 ; [*16D4.0020.0002] # MEDIUM FOUR POINTED PINWHEEL STAR
-1F7C8 ; [*16D5.0020.0002] # REVERSE LIGHT FOUR POINTED PINWHEEL STAR
-1F7C9 ; [*16D6.0020.0002] # LIGHT FIVE POINTED BLACK STAR
-1F7CA ; [*16D7.0020.0002] # HEAVY FIVE POINTED BLACK STAR
-1F7CB ; [*16D8.0020.0002] # MEDIUM SIX POINTED BLACK STAR
-1F7CC ; [*16D9.0020.0002] # HEAVY SIX POINTED BLACK STAR
-1F7CD ; [*16DA.0020.0002] # SIX POINTED PINWHEEL STAR
-1F7CE ; [*16DB.0020.0002] # MEDIUM EIGHT POINTED BLACK STAR
-1F7CF ; [*16DC.0020.0002] # HEAVY EIGHT POINTED BLACK STAR
-1F7D0 ; [*16DD.0020.0002] # VERY HEAVY EIGHT POINTED BLACK STAR
-1F7D1 ; [*16DE.0020.0002] # HEAVY EIGHT POINTED PINWHEEL STAR
-1F7D2 ; [*16DF.0020.0002] # LIGHT TWELVE POINTED BLACK STAR
-1F7D3 ; [*16E0.0020.0002] # HEAVY TWELVE POINTED BLACK STAR
-1F7D4 ; [*16E1.0020.0002] # HEAVY TWELVE POINTED PINWHEEL STAR
-1F800 ; [*16E2.0020.0002] # LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
-1F801 ; [*16E3.0020.0002] # UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
-1F802 ; [*16E4.0020.0002] # RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
-1F803 ; [*16E5.0020.0002] # DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
-1F804 ; [*16E6.0020.0002] # LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
-1F805 ; [*16E7.0020.0002] # UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
-1F806 ; [*16E8.0020.0002] # RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
-1F807 ; [*16E9.0020.0002] # DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
-1F808 ; [*16EA.0020.0002] # LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F809 ; [*16EB.0020.0002] # UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F80A ; [*16EC.0020.0002] # RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F80B ; [*16ED.0020.0002] # DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F810 ; [*16EE.0020.0002] # LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
-1F811 ; [*16EF.0020.0002] # UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
-1F812 ; [*16F0.0020.0002] # RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
-1F813 ; [*16F1.0020.0002] # DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
-1F814 ; [*16F2.0020.0002] # LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F815 ; [*16F3.0020.0002] # UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F816 ; [*16F4.0020.0002] # RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F817 ; [*16F5.0020.0002] # DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F818 ; [*16F6.0020.0002] # HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F819 ; [*16F7.0020.0002] # HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F81A ; [*16F8.0020.0002] # HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F81B ; [*16F9.0020.0002] # HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F81C ; [*16FA.0020.0002] # HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
-1F81D ; [*16FB.0020.0002] # HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
-1F81E ; [*16FC.0020.0002] # HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
-1F81F ; [*16FD.0020.0002] # HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
-1F820 ; [*16FE.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
-1F821 ; [*16FF.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
-1F822 ; [*1700.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
-1F823 ; [*1701.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
-1F824 ; [*1702.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
-1F825 ; [*1703.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
-1F826 ; [*1704.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
-1F827 ; [*1705.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
-1F828 ; [*1706.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
-1F829 ; [*1707.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
-1F82A ; [*1708.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
-1F82B ; [*1709.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
-1F82C ; [*170A.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
-1F82D ; [*170B.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
-1F82E ; [*170C.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
-1F82F ; [*170D.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
-1F830 ; [*170E.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
-1F831 ; [*170F.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
-1F832 ; [*1710.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
-1F833 ; [*1711.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
-1F834 ; [*1712.0020.0002] # LEFTWARDS FINGER-POST ARROW
-1F835 ; [*1713.0020.0002] # UPWARDS FINGER-POST ARROW
-1F836 ; [*1714.0020.0002] # RIGHTWARDS FINGER-POST ARROW
-1F837 ; [*1715.0020.0002] # DOWNWARDS FINGER-POST ARROW
-1F838 ; [*1716.0020.0002] # LEFTWARDS SQUARED ARROW
-1F839 ; [*1717.0020.0002] # UPWARDS SQUARED ARROW
-1F83A ; [*1718.0020.0002] # RIGHTWARDS SQUARED ARROW
-1F83B ; [*1719.0020.0002] # DOWNWARDS SQUARED ARROW
-1F83C ; [*171A.0020.0002] # LEFTWARDS COMPRESSED ARROW
-1F83D ; [*171B.0020.0002] # UPWARDS COMPRESSED ARROW
-1F83E ; [*171C.0020.0002] # RIGHTWARDS COMPRESSED ARROW
-1F83F ; [*171D.0020.0002] # DOWNWARDS COMPRESSED ARROW
-1F840 ; [*171E.0020.0002] # LEFTWARDS HEAVY COMPRESSED ARROW
-1F841 ; [*171F.0020.0002] # UPWARDS HEAVY COMPRESSED ARROW
-1F842 ; [*1720.0020.0002] # RIGHTWARDS HEAVY COMPRESSED ARROW
-1F843 ; [*1721.0020.0002] # DOWNWARDS HEAVY COMPRESSED ARROW
-1F844 ; [*1722.0020.0002] # LEFTWARDS HEAVY ARROW
-1F845 ; [*1723.0020.0002] # UPWARDS HEAVY ARROW
-1F846 ; [*1724.0020.0002] # RIGHTWARDS HEAVY ARROW
-1F847 ; [*1725.0020.0002] # DOWNWARDS HEAVY ARROW
-1F850 ; [*1726.0020.0002] # LEFTWARDS SANS-SERIF ARROW
-1F851 ; [*1727.0020.0002] # UPWARDS SANS-SERIF ARROW
-1F852 ; [*1728.0020.0002] # RIGHTWARDS SANS-SERIF ARROW
-1F853 ; [*1729.0020.0002] # DOWNWARDS SANS-SERIF ARROW
-1F854 ; [*172A.0020.0002] # NORTH WEST SANS-SERIF ARROW
-1F855 ; [*172B.0020.0002] # NORTH EAST SANS-SERIF ARROW
-1F856 ; [*172C.0020.0002] # SOUTH EAST SANS-SERIF ARROW
-1F857 ; [*172D.0020.0002] # SOUTH WEST SANS-SERIF ARROW
-1F858 ; [*172E.0020.0002] # LEFT RIGHT SANS-SERIF ARROW
-1F859 ; [*172F.0020.0002] # UP DOWN SANS-SERIF ARROW
-1F860 ; [*1730.0020.0002] # WIDE-HEADED LEFTWARDS LIGHT BARB ARROW
-1F861 ; [*1731.0020.0002] # WIDE-HEADED UPWARDS LIGHT BARB ARROW
-1F862 ; [*1732.0020.0002] # WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW
-1F863 ; [*1733.0020.0002] # WIDE-HEADED DOWNWARDS LIGHT BARB ARROW
-1F864 ; [*1734.0020.0002] # WIDE-HEADED NORTH WEST LIGHT BARB ARROW
-1F865 ; [*1735.0020.0002] # WIDE-HEADED NORTH EAST LIGHT BARB ARROW
-1F866 ; [*1736.0020.0002] # WIDE-HEADED SOUTH EAST LIGHT BARB ARROW
-1F867 ; [*1737.0020.0002] # WIDE-HEADED SOUTH WEST LIGHT BARB ARROW
-1F868 ; [*1738.0020.0002] # WIDE-HEADED LEFTWARDS BARB ARROW
-1F869 ; [*1739.0020.0002] # WIDE-HEADED UPWARDS BARB ARROW
-1F86A ; [*173A.0020.0002] # WIDE-HEADED RIGHTWARDS BARB ARROW
-1F86B ; [*173B.0020.0002] # WIDE-HEADED DOWNWARDS BARB ARROW
-1F86C ; [*173C.0020.0002] # WIDE-HEADED NORTH WEST BARB ARROW
-1F86D ; [*173D.0020.0002] # WIDE-HEADED NORTH EAST BARB ARROW
-1F86E ; [*173E.0020.0002] # WIDE-HEADED SOUTH EAST BARB ARROW
-1F86F ; [*173F.0020.0002] # WIDE-HEADED SOUTH WEST BARB ARROW
-1F870 ; [*1740.0020.0002] # WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW
-1F871 ; [*1741.0020.0002] # WIDE-HEADED UPWARDS MEDIUM BARB ARROW
-1F872 ; [*1742.0020.0002] # WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW
-1F873 ; [*1743.0020.0002] # WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW
-1F874 ; [*1744.0020.0002] # WIDE-HEADED NORTH WEST MEDIUM BARB ARROW
-1F875 ; [*1745.0020.0002] # WIDE-HEADED NORTH EAST MEDIUM BARB ARROW
-1F876 ; [*1746.0020.0002] # WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW
-1F877 ; [*1747.0020.0002] # WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW
-1F878 ; [*1748.0020.0002] # WIDE-HEADED LEFTWARDS HEAVY BARB ARROW
-1F879 ; [*1749.0020.0002] # WIDE-HEADED UPWARDS HEAVY BARB ARROW
-1F87A ; [*174A.0020.0002] # WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW
-1F87B ; [*174B.0020.0002] # WIDE-HEADED DOWNWARDS HEAVY BARB ARROW
-1F87C ; [*174C.0020.0002] # WIDE-HEADED NORTH WEST HEAVY BARB ARROW
-1F87D ; [*174D.0020.0002] # WIDE-HEADED NORTH EAST HEAVY BARB ARROW
-1F87E ; [*174E.0020.0002] # WIDE-HEADED SOUTH EAST HEAVY BARB ARROW
-1F87F ; [*174F.0020.0002] # WIDE-HEADED SOUTH WEST HEAVY BARB ARROW
-1F880 ; [*1750.0020.0002] # WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW
-1F881 ; [*1751.0020.0002] # WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW
-1F882 ; [*1752.0020.0002] # WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW
-1F883 ; [*1753.0020.0002] # WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW
-1F884 ; [*1754.0020.0002] # WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW
-1F885 ; [*1755.0020.0002] # WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW
-1F886 ; [*1756.0020.0002] # WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW
-1F887 ; [*1757.0020.0002] # WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
-1F890 ; [*1758.0020.0002] # LEFTWARDS TRIANGLE ARROWHEAD
-1F891 ; [*1759.0020.0002] # UPWARDS TRIANGLE ARROWHEAD
-1F892 ; [*175A.0020.0002] # RIGHTWARDS TRIANGLE ARROWHEAD
-1F893 ; [*175B.0020.0002] # DOWNWARDS TRIANGLE ARROWHEAD
-1F894 ; [*175C.0020.0002] # LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
-1F895 ; [*175D.0020.0002] # UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
-1F896 ; [*175E.0020.0002] # RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
-1F897 ; [*175F.0020.0002] # DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
-1F898 ; [*1760.0020.0002] # LEFTWARDS ARROW WITH NOTCHED TAIL
-1F899 ; [*1761.0020.0002] # UPWARDS ARROW WITH NOTCHED TAIL
-1F89A ; [*1762.0020.0002] # RIGHTWARDS ARROW WITH NOTCHED TAIL
-1F89B ; [*1763.0020.0002] # DOWNWARDS ARROW WITH NOTCHED TAIL
-1F89C ; [*1764.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE
-1F89D ; [*1765.0020.0002] # HEAVY ARROW SHAFT WIDTH TWO THIRDS
-1F89E ; [*1766.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE HALF
-1F89F ; [*1767.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE THIRD
-1F8A0 ; [*1768.0020.0002] # LEFTWARDS BOTTOM-SHADED WHITE ARROW
-1F8A1 ; [*1769.0020.0002] # RIGHTWARDS BOTTOM SHADED WHITE ARROW
-1F8A2 ; [*176A.0020.0002] # LEFTWARDS TOP SHADED WHITE ARROW
-1F8A3 ; [*176B.0020.0002] # RIGHTWARDS TOP SHADED WHITE ARROW
-1F8A4 ; [*176C.0020.0002] # LEFTWARDS LEFT-SHADED WHITE ARROW
-1F8A5 ; [*176D.0020.0002] # RIGHTWARDS RIGHT-SHADED WHITE ARROW
-1F8A6 ; [*176E.0020.0002] # LEFTWARDS RIGHT-SHADED WHITE ARROW
-1F8A7 ; [*176F.0020.0002] # RIGHTWARDS LEFT-SHADED WHITE ARROW
-1F8A8 ; [*1770.0020.0002] # LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
-1F8A9 ; [*1771.0020.0002] # RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW
-1F8AA ; [*1772.0020.0002] # LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW
-1F8AB ; [*1773.0020.0002] # RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW
-1F8AC ; [*1774.0020.0002] # WHITE ARROW SHAFT WIDTH ONE
-1F8AD ; [*1775.0020.0002] # WHITE ARROW SHAFT WIDTH TWO THIRDS
+1E95E ; [*0265.0020.0002] # ADLAM INITIAL EXCLAMATION MARK
+1E95F ; [*0274.0020.0002] # ADLAM INITIAL QUESTION MARK
+1EEF0 ; [*04FB.0020.0002] # ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
+1EEF1 ; [*04FC.0020.0002] # ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1F000 ; [*11C7.0020.0002] # MAHJONG TILE EAST WIND
+1F001 ; [*11C8.0020.0002] # MAHJONG TILE SOUTH WIND
+1F002 ; [*11C9.0020.0002] # MAHJONG TILE WEST WIND
+1F003 ; [*11CA.0020.0002] # MAHJONG TILE NORTH WIND
+1F004 ; [*11CB.0020.0002] # MAHJONG TILE RED DRAGON
+1F005 ; [*11CC.0020.0002] # MAHJONG TILE GREEN DRAGON
+1F006 ; [*11CD.0020.0002] # MAHJONG TILE WHITE DRAGON
+1F007 ; [*11CE.0020.0002] # MAHJONG TILE ONE OF CHARACTERS
+1F008 ; [*11CF.0020.0002] # MAHJONG TILE TWO OF CHARACTERS
+1F009 ; [*11D0.0020.0002] # MAHJONG TILE THREE OF CHARACTERS
+1F00A ; [*11D1.0020.0002] # MAHJONG TILE FOUR OF CHARACTERS
+1F00B ; [*11D2.0020.0002] # MAHJONG TILE FIVE OF CHARACTERS
+1F00C ; [*11D3.0020.0002] # MAHJONG TILE SIX OF CHARACTERS
+1F00D ; [*11D4.0020.0002] # MAHJONG TILE SEVEN OF CHARACTERS
+1F00E ; [*11D5.0020.0002] # MAHJONG TILE EIGHT OF CHARACTERS
+1F00F ; [*11D6.0020.0002] # MAHJONG TILE NINE OF CHARACTERS
+1F010 ; [*11D7.0020.0002] # MAHJONG TILE ONE OF BAMBOOS
+1F011 ; [*11D8.0020.0002] # MAHJONG TILE TWO OF BAMBOOS
+1F012 ; [*11D9.0020.0002] # MAHJONG TILE THREE OF BAMBOOS
+1F013 ; [*11DA.0020.0002] # MAHJONG TILE FOUR OF BAMBOOS
+1F014 ; [*11DB.0020.0002] # MAHJONG TILE FIVE OF BAMBOOS
+1F015 ; [*11DC.0020.0002] # MAHJONG TILE SIX OF BAMBOOS
+1F016 ; [*11DD.0020.0002] # MAHJONG TILE SEVEN OF BAMBOOS
+1F017 ; [*11DE.0020.0002] # MAHJONG TILE EIGHT OF BAMBOOS
+1F018 ; [*11DF.0020.0002] # MAHJONG TILE NINE OF BAMBOOS
+1F019 ; [*11E0.0020.0002] # MAHJONG TILE ONE OF CIRCLES
+1F01A ; [*11E1.0020.0002] # MAHJONG TILE TWO OF CIRCLES
+1F01B ; [*11E2.0020.0002] # MAHJONG TILE THREE OF CIRCLES
+1F01C ; [*11E3.0020.0002] # MAHJONG TILE FOUR OF CIRCLES
+1F01D ; [*11E4.0020.0002] # MAHJONG TILE FIVE OF CIRCLES
+1F01E ; [*11E5.0020.0002] # MAHJONG TILE SIX OF CIRCLES
+1F01F ; [*11E6.0020.0002] # MAHJONG TILE SEVEN OF CIRCLES
+1F020 ; [*11E7.0020.0002] # MAHJONG TILE EIGHT OF CIRCLES
+1F021 ; [*11E8.0020.0002] # MAHJONG TILE NINE OF CIRCLES
+1F022 ; [*11E9.0020.0002] # MAHJONG TILE PLUM
+1F023 ; [*11EA.0020.0002] # MAHJONG TILE ORCHID
+1F024 ; [*11EB.0020.0002] # MAHJONG TILE BAMBOO
+1F025 ; [*11EC.0020.0002] # MAHJONG TILE CHRYSANTHEMUM
+1F026 ; [*11ED.0020.0002] # MAHJONG TILE SPRING
+1F027 ; [*11EE.0020.0002] # MAHJONG TILE SUMMER
+1F028 ; [*11EF.0020.0002] # MAHJONG TILE AUTUMN
+1F029 ; [*11F0.0020.0002] # MAHJONG TILE WINTER
+1F02A ; [*11F1.0020.0002] # MAHJONG TILE JOKER
+1F02B ; [*11F2.0020.0002] # MAHJONG TILE BACK
+1F030 ; [*11F3.0020.0002] # DOMINO TILE HORIZONTAL BACK
+1F031 ; [*11F4.0020.0002] # DOMINO TILE HORIZONTAL-00-00
+1F032 ; [*11F5.0020.0002] # DOMINO TILE HORIZONTAL-00-01
+1F033 ; [*11F6.0020.0002] # DOMINO TILE HORIZONTAL-00-02
+1F034 ; [*11F7.0020.0002] # DOMINO TILE HORIZONTAL-00-03
+1F035 ; [*11F8.0020.0002] # DOMINO TILE HORIZONTAL-00-04
+1F036 ; [*11F9.0020.0002] # DOMINO TILE HORIZONTAL-00-05
+1F037 ; [*11FA.0020.0002] # DOMINO TILE HORIZONTAL-00-06
+1F038 ; [*11FB.0020.0002] # DOMINO TILE HORIZONTAL-01-00
+1F039 ; [*11FC.0020.0002] # DOMINO TILE HORIZONTAL-01-01
+1F03A ; [*11FD.0020.0002] # DOMINO TILE HORIZONTAL-01-02
+1F03B ; [*11FE.0020.0002] # DOMINO TILE HORIZONTAL-01-03
+1F03C ; [*11FF.0020.0002] # DOMINO TILE HORIZONTAL-01-04
+1F03D ; [*1200.0020.0002] # DOMINO TILE HORIZONTAL-01-05
+1F03E ; [*1201.0020.0002] # DOMINO TILE HORIZONTAL-01-06
+1F03F ; [*1202.0020.0002] # DOMINO TILE HORIZONTAL-02-00
+1F040 ; [*1203.0020.0002] # DOMINO TILE HORIZONTAL-02-01
+1F041 ; [*1204.0020.0002] # DOMINO TILE HORIZONTAL-02-02
+1F042 ; [*1205.0020.0002] # DOMINO TILE HORIZONTAL-02-03
+1F043 ; [*1206.0020.0002] # DOMINO TILE HORIZONTAL-02-04
+1F044 ; [*1207.0020.0002] # DOMINO TILE HORIZONTAL-02-05
+1F045 ; [*1208.0020.0002] # DOMINO TILE HORIZONTAL-02-06
+1F046 ; [*1209.0020.0002] # DOMINO TILE HORIZONTAL-03-00
+1F047 ; [*120A.0020.0002] # DOMINO TILE HORIZONTAL-03-01
+1F048 ; [*120B.0020.0002] # DOMINO TILE HORIZONTAL-03-02
+1F049 ; [*120C.0020.0002] # DOMINO TILE HORIZONTAL-03-03
+1F04A ; [*120D.0020.0002] # DOMINO TILE HORIZONTAL-03-04
+1F04B ; [*120E.0020.0002] # DOMINO TILE HORIZONTAL-03-05
+1F04C ; [*120F.0020.0002] # DOMINO TILE HORIZONTAL-03-06
+1F04D ; [*1210.0020.0002] # DOMINO TILE HORIZONTAL-04-00
+1F04E ; [*1211.0020.0002] # DOMINO TILE HORIZONTAL-04-01
+1F04F ; [*1212.0020.0002] # DOMINO TILE HORIZONTAL-04-02
+1F050 ; [*1213.0020.0002] # DOMINO TILE HORIZONTAL-04-03
+1F051 ; [*1214.0020.0002] # DOMINO TILE HORIZONTAL-04-04
+1F052 ; [*1215.0020.0002] # DOMINO TILE HORIZONTAL-04-05
+1F053 ; [*1216.0020.0002] # DOMINO TILE HORIZONTAL-04-06
+1F054 ; [*1217.0020.0002] # DOMINO TILE HORIZONTAL-05-00
+1F055 ; [*1218.0020.0002] # DOMINO TILE HORIZONTAL-05-01
+1F056 ; [*1219.0020.0002] # DOMINO TILE HORIZONTAL-05-02
+1F057 ; [*121A.0020.0002] # DOMINO TILE HORIZONTAL-05-03
+1F058 ; [*121B.0020.0002] # DOMINO TILE HORIZONTAL-05-04
+1F059 ; [*121C.0020.0002] # DOMINO TILE HORIZONTAL-05-05
+1F05A ; [*121D.0020.0002] # DOMINO TILE HORIZONTAL-05-06
+1F05B ; [*121E.0020.0002] # DOMINO TILE HORIZONTAL-06-00
+1F05C ; [*121F.0020.0002] # DOMINO TILE HORIZONTAL-06-01
+1F05D ; [*1220.0020.0002] # DOMINO TILE HORIZONTAL-06-02
+1F05E ; [*1221.0020.0002] # DOMINO TILE HORIZONTAL-06-03
+1F05F ; [*1222.0020.0002] # DOMINO TILE HORIZONTAL-06-04
+1F060 ; [*1223.0020.0002] # DOMINO TILE HORIZONTAL-06-05
+1F061 ; [*1224.0020.0002] # DOMINO TILE HORIZONTAL-06-06
+1F062 ; [*1225.0020.0002] # DOMINO TILE VERTICAL BACK
+1F063 ; [*1226.0020.0002] # DOMINO TILE VERTICAL-00-00
+1F064 ; [*1227.0020.0002] # DOMINO TILE VERTICAL-00-01
+1F065 ; [*1228.0020.0002] # DOMINO TILE VERTICAL-00-02
+1F066 ; [*1229.0020.0002] # DOMINO TILE VERTICAL-00-03
+1F067 ; [*122A.0020.0002] # DOMINO TILE VERTICAL-00-04
+1F068 ; [*122B.0020.0002] # DOMINO TILE VERTICAL-00-05
+1F069 ; [*122C.0020.0002] # DOMINO TILE VERTICAL-00-06
+1F06A ; [*122D.0020.0002] # DOMINO TILE VERTICAL-01-00
+1F06B ; [*122E.0020.0002] # DOMINO TILE VERTICAL-01-01
+1F06C ; [*122F.0020.0002] # DOMINO TILE VERTICAL-01-02
+1F06D ; [*1230.0020.0002] # DOMINO TILE VERTICAL-01-03
+1F06E ; [*1231.0020.0002] # DOMINO TILE VERTICAL-01-04
+1F06F ; [*1232.0020.0002] # DOMINO TILE VERTICAL-01-05
+1F070 ; [*1233.0020.0002] # DOMINO TILE VERTICAL-01-06
+1F071 ; [*1234.0020.0002] # DOMINO TILE VERTICAL-02-00
+1F072 ; [*1235.0020.0002] # DOMINO TILE VERTICAL-02-01
+1F073 ; [*1236.0020.0002] # DOMINO TILE VERTICAL-02-02
+1F074 ; [*1237.0020.0002] # DOMINO TILE VERTICAL-02-03
+1F075 ; [*1238.0020.0002] # DOMINO TILE VERTICAL-02-04
+1F076 ; [*1239.0020.0002] # DOMINO TILE VERTICAL-02-05
+1F077 ; [*123A.0020.0002] # DOMINO TILE VERTICAL-02-06
+1F078 ; [*123B.0020.0002] # DOMINO TILE VERTICAL-03-00
+1F079 ; [*123C.0020.0002] # DOMINO TILE VERTICAL-03-01
+1F07A ; [*123D.0020.0002] # DOMINO TILE VERTICAL-03-02
+1F07B ; [*123E.0020.0002] # DOMINO TILE VERTICAL-03-03
+1F07C ; [*123F.0020.0002] # DOMINO TILE VERTICAL-03-04
+1F07D ; [*1240.0020.0002] # DOMINO TILE VERTICAL-03-05
+1F07E ; [*1241.0020.0002] # DOMINO TILE VERTICAL-03-06
+1F07F ; [*1242.0020.0002] # DOMINO TILE VERTICAL-04-00
+1F080 ; [*1243.0020.0002] # DOMINO TILE VERTICAL-04-01
+1F081 ; [*1244.0020.0002] # DOMINO TILE VERTICAL-04-02
+1F082 ; [*1245.0020.0002] # DOMINO TILE VERTICAL-04-03
+1F083 ; [*1246.0020.0002] # DOMINO TILE VERTICAL-04-04
+1F084 ; [*1247.0020.0002] # DOMINO TILE VERTICAL-04-05
+1F085 ; [*1248.0020.0002] # DOMINO TILE VERTICAL-04-06
+1F086 ; [*1249.0020.0002] # DOMINO TILE VERTICAL-05-00
+1F087 ; [*124A.0020.0002] # DOMINO TILE VERTICAL-05-01
+1F088 ; [*124B.0020.0002] # DOMINO TILE VERTICAL-05-02
+1F089 ; [*124C.0020.0002] # DOMINO TILE VERTICAL-05-03
+1F08A ; [*124D.0020.0002] # DOMINO TILE VERTICAL-05-04
+1F08B ; [*124E.0020.0002] # DOMINO TILE VERTICAL-05-05
+1F08C ; [*124F.0020.0002] # DOMINO TILE VERTICAL-05-06
+1F08D ; [*1250.0020.0002] # DOMINO TILE VERTICAL-06-00
+1F08E ; [*1251.0020.0002] # DOMINO TILE VERTICAL-06-01
+1F08F ; [*1252.0020.0002] # DOMINO TILE VERTICAL-06-02
+1F090 ; [*1253.0020.0002] # DOMINO TILE VERTICAL-06-03
+1F091 ; [*1254.0020.0002] # DOMINO TILE VERTICAL-06-04
+1F092 ; [*1255.0020.0002] # DOMINO TILE VERTICAL-06-05
+1F093 ; [*1256.0020.0002] # DOMINO TILE VERTICAL-06-06
+1F0A0 ; [*1257.0020.0002] # PLAYING CARD BACK
+1F0A1 ; [*1258.0020.0002] # PLAYING CARD ACE OF SPADES
+1F0A2 ; [*1259.0020.0002] # PLAYING CARD TWO OF SPADES
+1F0A3 ; [*125A.0020.0002] # PLAYING CARD THREE OF SPADES
+1F0A4 ; [*125B.0020.0002] # PLAYING CARD FOUR OF SPADES
+1F0A5 ; [*125C.0020.0002] # PLAYING CARD FIVE OF SPADES
+1F0A6 ; [*125D.0020.0002] # PLAYING CARD SIX OF SPADES
+1F0A7 ; [*125E.0020.0002] # PLAYING CARD SEVEN OF SPADES
+1F0A8 ; [*125F.0020.0002] # PLAYING CARD EIGHT OF SPADES
+1F0A9 ; [*1260.0020.0002] # PLAYING CARD NINE OF SPADES
+1F0AA ; [*1261.0020.0002] # PLAYING CARD TEN OF SPADES
+1F0AB ; [*1262.0020.0002] # PLAYING CARD JACK OF SPADES
+1F0AC ; [*1263.0020.0002] # PLAYING CARD KNIGHT OF SPADES
+1F0AD ; [*1264.0020.0002] # PLAYING CARD QUEEN OF SPADES
+1F0AE ; [*1265.0020.0002] # PLAYING CARD KING OF SPADES
+1F0B1 ; [*1266.0020.0002] # PLAYING CARD ACE OF HEARTS
+1F0B2 ; [*1267.0020.0002] # PLAYING CARD TWO OF HEARTS
+1F0B3 ; [*1268.0020.0002] # PLAYING CARD THREE OF HEARTS
+1F0B4 ; [*1269.0020.0002] # PLAYING CARD FOUR OF HEARTS
+1F0B5 ; [*126A.0020.0002] # PLAYING CARD FIVE OF HEARTS
+1F0B6 ; [*126B.0020.0002] # PLAYING CARD SIX OF HEARTS
+1F0B7 ; [*126C.0020.0002] # PLAYING CARD SEVEN OF HEARTS
+1F0B8 ; [*126D.0020.0002] # PLAYING CARD EIGHT OF HEARTS
+1F0B9 ; [*126E.0020.0002] # PLAYING CARD NINE OF HEARTS
+1F0BA ; [*126F.0020.0002] # PLAYING CARD TEN OF HEARTS
+1F0BB ; [*1270.0020.0002] # PLAYING CARD JACK OF HEARTS
+1F0BC ; [*1271.0020.0002] # PLAYING CARD KNIGHT OF HEARTS
+1F0BD ; [*1272.0020.0002] # PLAYING CARD QUEEN OF HEARTS
+1F0BE ; [*1273.0020.0002] # PLAYING CARD KING OF HEARTS
+1F0BF ; [*1274.0020.0002] # PLAYING CARD RED JOKER
+1F0C1 ; [*1275.0020.0002] # PLAYING CARD ACE OF DIAMONDS
+1F0C2 ; [*1276.0020.0002] # PLAYING CARD TWO OF DIAMONDS
+1F0C3 ; [*1277.0020.0002] # PLAYING CARD THREE OF DIAMONDS
+1F0C4 ; [*1278.0020.0002] # PLAYING CARD FOUR OF DIAMONDS
+1F0C5 ; [*1279.0020.0002] # PLAYING CARD FIVE OF DIAMONDS
+1F0C6 ; [*127A.0020.0002] # PLAYING CARD SIX OF DIAMONDS
+1F0C7 ; [*127B.0020.0002] # PLAYING CARD SEVEN OF DIAMONDS
+1F0C8 ; [*127C.0020.0002] # PLAYING CARD EIGHT OF DIAMONDS
+1F0C9 ; [*127D.0020.0002] # PLAYING CARD NINE OF DIAMONDS
+1F0CA ; [*127E.0020.0002] # PLAYING CARD TEN OF DIAMONDS
+1F0CB ; [*127F.0020.0002] # PLAYING CARD JACK OF DIAMONDS
+1F0CC ; [*1280.0020.0002] # PLAYING CARD KNIGHT OF DIAMONDS
+1F0CD ; [*1281.0020.0002] # PLAYING CARD QUEEN OF DIAMONDS
+1F0CE ; [*1282.0020.0002] # PLAYING CARD KING OF DIAMONDS
+1F0CF ; [*1283.0020.0002] # PLAYING CARD BLACK JOKER
+1F0D1 ; [*1284.0020.0002] # PLAYING CARD ACE OF CLUBS
+1F0D2 ; [*1285.0020.0002] # PLAYING CARD TWO OF CLUBS
+1F0D3 ; [*1286.0020.0002] # PLAYING CARD THREE OF CLUBS
+1F0D4 ; [*1287.0020.0002] # PLAYING CARD FOUR OF CLUBS
+1F0D5 ; [*1288.0020.0002] # PLAYING CARD FIVE OF CLUBS
+1F0D6 ; [*1289.0020.0002] # PLAYING CARD SIX OF CLUBS
+1F0D7 ; [*128A.0020.0002] # PLAYING CARD SEVEN OF CLUBS
+1F0D8 ; [*128B.0020.0002] # PLAYING CARD EIGHT OF CLUBS
+1F0D9 ; [*128C.0020.0002] # PLAYING CARD NINE OF CLUBS
+1F0DA ; [*128D.0020.0002] # PLAYING CARD TEN OF CLUBS
+1F0DB ; [*128E.0020.0002] # PLAYING CARD JACK OF CLUBS
+1F0DC ; [*128F.0020.0002] # PLAYING CARD KNIGHT OF CLUBS
+1F0DD ; [*1290.0020.0002] # PLAYING CARD QUEEN OF CLUBS
+1F0DE ; [*1291.0020.0002] # PLAYING CARD KING OF CLUBS
+1F0DF ; [*1292.0020.0002] # PLAYING CARD WHITE JOKER
+1F0E0 ; [*1293.0020.0002] # PLAYING CARD FOOL
+1F0E1 ; [*1294.0020.0002] # PLAYING CARD TRUMP-1
+1F0E2 ; [*1295.0020.0002] # PLAYING CARD TRUMP-2
+1F0E3 ; [*1296.0020.0002] # PLAYING CARD TRUMP-3
+1F0E4 ; [*1297.0020.0002] # PLAYING CARD TRUMP-4
+1F0E5 ; [*1298.0020.0002] # PLAYING CARD TRUMP-5
+1F0E6 ; [*1299.0020.0002] # PLAYING CARD TRUMP-6
+1F0E7 ; [*129A.0020.0002] # PLAYING CARD TRUMP-7
+1F0E8 ; [*129B.0020.0002] # PLAYING CARD TRUMP-8
+1F0E9 ; [*129C.0020.0002] # PLAYING CARD TRUMP-9
+1F0EA ; [*129D.0020.0002] # PLAYING CARD TRUMP-10
+1F0EB ; [*129E.0020.0002] # PLAYING CARD TRUMP-11
+1F0EC ; [*129F.0020.0002] # PLAYING CARD TRUMP-12
+1F0ED ; [*12A0.0020.0002] # PLAYING CARD TRUMP-13
+1F0EE ; [*12A1.0020.0002] # PLAYING CARD TRUMP-14
+1F0EF ; [*12A2.0020.0002] # PLAYING CARD TRUMP-15
+1F0F0 ; [*12A3.0020.0002] # PLAYING CARD TRUMP-16
+1F0F1 ; [*12A4.0020.0002] # PLAYING CARD TRUMP-17
+1F0F2 ; [*12A5.0020.0002] # PLAYING CARD TRUMP-18
+1F0F3 ; [*12A6.0020.0002] # PLAYING CARD TRUMP-19
+1F0F4 ; [*12A7.0020.0002] # PLAYING CARD TRUMP-20
+1F0F5 ; [*12A8.0020.0002] # PLAYING CARD TRUMP-21
+1F1E6 ; [*0A07.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER A
+1F1E7 ; [*0A08.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER B
+1F1E8 ; [*0A09.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER C
+1F1E9 ; [*0A0A.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER D
+1F1EA ; [*0A0B.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER E
+1F1EB ; [*0A0C.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER F
+1F1EC ; [*0A0D.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER G
+1F1ED ; [*0A0E.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER H
+1F1EE ; [*0A0F.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER I
+1F1EF ; [*0A10.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER J
+1F1F0 ; [*0A11.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER K
+1F1F1 ; [*0A12.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER L
+1F1F2 ; [*0A13.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER M
+1F1F3 ; [*0A14.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER N
+1F1F4 ; [*0A15.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER O
+1F1F5 ; [*0A16.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER P
+1F1F6 ; [*0A17.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Q
+1F1F7 ; [*0A18.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER R
+1F1F8 ; [*0A19.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER S
+1F1F9 ; [*0A1A.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER T
+1F1FA ; [*0A1B.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER U
+1F1FB ; [*0A1C.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER V
+1F1FC ; [*0A1D.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER W
+1F1FD ; [*0A1E.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER X
+1F1FE ; [*0A1F.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Y
+1F1FF ; [*0A20.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Z
+1F300 ; [*12A9.0020.0002] # CYCLONE
+1F301 ; [*12AA.0020.0002] # FOGGY
+1F302 ; [*12AB.0020.0002] # CLOSED UMBRELLA
+1F303 ; [*12AC.0020.0002] # NIGHT WITH STARS
+1F304 ; [*12AD.0020.0002] # SUNRISE OVER MOUNTAINS
+1F305 ; [*12AE.0020.0002] # SUNRISE
+1F306 ; [*12AF.0020.0002] # CITYSCAPE AT DUSK
+1F307 ; [*12B0.0020.0002] # SUNSET OVER BUILDINGS
+1F308 ; [*12B1.0020.0002] # RAINBOW
+1F309 ; [*12B2.0020.0002] # BRIDGE AT NIGHT
+1F30A ; [*12B3.0020.0002] # WATER WAVE
+1F30B ; [*12B4.0020.0002] # VOLCANO
+1F30C ; [*12B5.0020.0002] # MILKY WAY
+1F30D ; [*12B6.0020.0002] # EARTH GLOBE EUROPE-AFRICA
+1F30E ; [*12B7.0020.0002] # EARTH GLOBE AMERICAS
+1F30F ; [*12B8.0020.0002] # EARTH GLOBE ASIA-AUSTRALIA
+1F310 ; [*12B9.0020.0002] # GLOBE WITH MERIDIANS
+1F311 ; [*12BA.0020.0002] # NEW MOON SYMBOL
+1F312 ; [*12BB.0020.0002] # WAXING CRESCENT MOON SYMBOL
+1F313 ; [*12BC.0020.0002] # FIRST QUARTER MOON SYMBOL
+1F314 ; [*12BD.0020.0002] # WAXING GIBBOUS MOON SYMBOL
+1F315 ; [*12BE.0020.0002] # FULL MOON SYMBOL
+1F316 ; [*12BF.0020.0002] # WANING GIBBOUS MOON SYMBOL
+1F317 ; [*12C0.0020.0002] # LAST QUARTER MOON SYMBOL
+1F318 ; [*12C1.0020.0002] # WANING CRESCENT MOON SYMBOL
+1F319 ; [*12C2.0020.0002] # CRESCENT MOON
+1F31A ; [*12C3.0020.0002] # NEW MOON WITH FACE
+1F31B ; [*12C4.0020.0002] # FIRST QUARTER MOON WITH FACE
+1F31C ; [*12C5.0020.0002] # LAST QUARTER MOON WITH FACE
+1F31D ; [*12C6.0020.0002] # FULL MOON WITH FACE
+1F31E ; [*12C7.0020.0002] # SUN WITH FACE
+1F31F ; [*12C8.0020.0002] # GLOWING STAR
+1F320 ; [*12C9.0020.0002] # SHOOTING STAR
+1F321 ; [*12CA.0020.0002] # THERMOMETER
+1F322 ; [*12CB.0020.0002] # BLACK DROPLET
+1F323 ; [*12CC.0020.0002] # WHITE SUN
+1F324 ; [*12CD.0020.0002] # WHITE SUN WITH SMALL CLOUD
+1F325 ; [*12CE.0020.0002] # WHITE SUN BEHIND CLOUD
+1F326 ; [*12CF.0020.0002] # WHITE SUN BEHIND CLOUD WITH RAIN
+1F327 ; [*12D0.0020.0002] # CLOUD WITH RAIN
+1F328 ; [*12D1.0020.0002] # CLOUD WITH SNOW
+1F329 ; [*12D2.0020.0002] # CLOUD WITH LIGHTNING
+1F32A ; [*12D3.0020.0002] # CLOUD WITH TORNADO
+1F32B ; [*12D4.0020.0002] # FOG
+1F32C ; [*12D5.0020.0002] # WIND BLOWING FACE
+1F32D ; [*12D6.0020.0002] # HOT DOG
+1F32E ; [*12D7.0020.0002] # TACO
+1F32F ; [*12D8.0020.0002] # BURRITO
+1F330 ; [*12D9.0020.0002] # CHESTNUT
+1F331 ; [*12DA.0020.0002] # SEEDLING
+1F332 ; [*12DB.0020.0002] # EVERGREEN TREE
+1F333 ; [*12DC.0020.0002] # DECIDUOUS TREE
+1F334 ; [*12DD.0020.0002] # PALM TREE
+1F335 ; [*12DE.0020.0002] # CACTUS
+1F336 ; [*12DF.0020.0002] # HOT PEPPER
+1F337 ; [*12E0.0020.0002] # TULIP
+1F338 ; [*12E1.0020.0002] # CHERRY BLOSSOM
+1F339 ; [*12E2.0020.0002] # ROSE
+1F33A ; [*12E3.0020.0002] # HIBISCUS
+1F33B ; [*12E4.0020.0002] # SUNFLOWER
+1F33C ; [*12E5.0020.0002] # BLOSSOM
+1F33D ; [*12E6.0020.0002] # EAR OF MAIZE
+1F33E ; [*12E7.0020.0002] # EAR OF RICE
+1F33F ; [*12E8.0020.0002] # HERB
+1F340 ; [*12E9.0020.0002] # FOUR LEAF CLOVER
+1F341 ; [*12EA.0020.0002] # MAPLE LEAF
+1F342 ; [*12EB.0020.0002] # FALLEN LEAF
+1F343 ; [*12EC.0020.0002] # LEAF FLUTTERING IN WIND
+1F344 ; [*12ED.0020.0002] # MUSHROOM
+1F345 ; [*12EE.0020.0002] # TOMATO
+1F346 ; [*12EF.0020.0002] # AUBERGINE
+1F347 ; [*12F0.0020.0002] # GRAPES
+1F348 ; [*12F1.0020.0002] # MELON
+1F349 ; [*12F2.0020.0002] # WATERMELON
+1F34A ; [*12F3.0020.0002] # TANGERINE
+1F34B ; [*12F4.0020.0002] # LEMON
+1F34C ; [*12F5.0020.0002] # BANANA
+1F34D ; [*12F6.0020.0002] # PINEAPPLE
+1F34E ; [*12F7.0020.0002] # RED APPLE
+1F34F ; [*12F8.0020.0002] # GREEN APPLE
+1F350 ; [*12F9.0020.0002] # PEAR
+1F351 ; [*12FA.0020.0002] # PEACH
+1F352 ; [*12FB.0020.0002] # CHERRIES
+1F353 ; [*12FC.0020.0002] # STRAWBERRY
+1F354 ; [*12FD.0020.0002] # HAMBURGER
+1F355 ; [*12FE.0020.0002] # SLICE OF PIZZA
+1F356 ; [*12FF.0020.0002] # MEAT ON BONE
+1F357 ; [*1300.0020.0002] # POULTRY LEG
+1F358 ; [*1301.0020.0002] # RICE CRACKER
+1F359 ; [*1302.0020.0002] # RICE BALL
+1F35A ; [*1303.0020.0002] # COOKED RICE
+1F35B ; [*1304.0020.0002] # CURRY AND RICE
+1F35C ; [*1305.0020.0002] # STEAMING BOWL
+1F35D ; [*1306.0020.0002] # SPAGHETTI
+1F35E ; [*1307.0020.0002] # BREAD
+1F35F ; [*1308.0020.0002] # FRENCH FRIES
+1F360 ; [*1309.0020.0002] # ROASTED SWEET POTATO
+1F361 ; [*130A.0020.0002] # DANGO
+1F362 ; [*130B.0020.0002] # ODEN
+1F363 ; [*130C.0020.0002] # SUSHI
+1F364 ; [*130D.0020.0002] # FRIED SHRIMP
+1F365 ; [*130E.0020.0002] # FISH CAKE WITH SWIRL DESIGN
+1F366 ; [*130F.0020.0002] # SOFT ICE CREAM
+1F367 ; [*1310.0020.0002] # SHAVED ICE
+1F368 ; [*1311.0020.0002] # ICE CREAM
+1F369 ; [*1312.0020.0002] # DOUGHNUT
+1F36A ; [*1313.0020.0002] # COOKIE
+1F36B ; [*1314.0020.0002] # CHOCOLATE BAR
+1F36C ; [*1315.0020.0002] # CANDY
+1F36D ; [*1316.0020.0002] # LOLLIPOP
+1F36E ; [*1317.0020.0002] # CUSTARD
+1F36F ; [*1318.0020.0002] # HONEY POT
+1F370 ; [*1319.0020.0002] # SHORTCAKE
+1F371 ; [*131A.0020.0002] # BENTO BOX
+1F372 ; [*131B.0020.0002] # POT OF FOOD
+1F373 ; [*131C.0020.0002] # COOKING
+1F374 ; [*131D.0020.0002] # FORK AND KNIFE
+1F375 ; [*131E.0020.0002] # TEACUP WITHOUT HANDLE
+1F376 ; [*131F.0020.0002] # SAKE BOTTLE AND CUP
+1F377 ; [*1320.0020.0002] # WINE GLASS
+1F378 ; [*1321.0020.0002] # COCKTAIL GLASS
+1F379 ; [*1322.0020.0002] # TROPICAL DRINK
+1F37A ; [*1323.0020.0002] # BEER MUG
+1F37B ; [*1324.0020.0002] # CLINKING BEER MUGS
+1F37C ; [*1325.0020.0002] # BABY BOTTLE
+1F37D ; [*1326.0020.0002] # FORK AND KNIFE WITH PLATE
+1F37E ; [*1327.0020.0002] # BOTTLE WITH POPPING CORK
+1F37F ; [*1328.0020.0002] # POPCORN
+1F380 ; [*1329.0020.0002] # RIBBON
+1F381 ; [*132A.0020.0002] # WRAPPED PRESENT
+1F382 ; [*132B.0020.0002] # BIRTHDAY CAKE
+1F383 ; [*132C.0020.0002] # JACK-O-LANTERN
+1F384 ; [*132D.0020.0002] # CHRISTMAS TREE
+1F385 ; [*132E.0020.0002] # FATHER CHRISTMAS
+1F386 ; [*132F.0020.0002] # FIREWORKS
+1F387 ; [*1330.0020.0002] # FIREWORK SPARKLER
+1F388 ; [*1331.0020.0002] # BALLOON
+1F389 ; [*1332.0020.0002] # PARTY POPPER
+1F38A ; [*1333.0020.0002] # CONFETTI BALL
+1F38B ; [*1334.0020.0002] # TANABATA TREE
+1F38C ; [*1335.0020.0002] # CROSSED FLAGS
+1F38D ; [*1336.0020.0002] # PINE DECORATION
+1F38E ; [*1337.0020.0002] # JAPANESE DOLLS
+1F38F ; [*1338.0020.0002] # CARP STREAMER
+1F390 ; [*1339.0020.0002] # WIND CHIME
+1F391 ; [*133A.0020.0002] # MOON VIEWING CEREMONY
+1F392 ; [*133B.0020.0002] # SCHOOL SATCHEL
+1F393 ; [*133C.0020.0002] # GRADUATION CAP
+1F394 ; [*133D.0020.0002] # HEART WITH TIP ON THE LEFT
+1F395 ; [*133E.0020.0002] # BOUQUET OF FLOWERS
+1F396 ; [*133F.0020.0002] # MILITARY MEDAL
+1F397 ; [*1340.0020.0002] # REMINDER RIBBON
+1F398 ; [*1341.0020.0002] # MUSICAL KEYBOARD WITH JACKS
+1F399 ; [*1342.0020.0002] # STUDIO MICROPHONE
+1F39A ; [*1343.0020.0002] # LEVEL SLIDER
+1F39B ; [*1344.0020.0002] # CONTROL KNOBS
+1F39C ; [*1345.0020.0002] # BEAMED ASCENDING MUSICAL NOTES
+1F39D ; [*1346.0020.0002] # BEAMED DESCENDING MUSICAL NOTES
+1F39E ; [*1347.0020.0002] # FILM FRAMES
+1F39F ; [*1348.0020.0002] # ADMISSION TICKETS
+1F3A0 ; [*1349.0020.0002] # CAROUSEL HORSE
+1F3A1 ; [*134A.0020.0002] # FERRIS WHEEL
+1F3A2 ; [*134B.0020.0002] # ROLLER COASTER
+1F3A3 ; [*134C.0020.0002] # FISHING POLE AND FISH
+1F3A4 ; [*134D.0020.0002] # MICROPHONE
+1F3A5 ; [*134E.0020.0002] # MOVIE CAMERA
+1F3A6 ; [*134F.0020.0002] # CINEMA
+1F3A7 ; [*1350.0020.0002] # HEADPHONE
+1F3A8 ; [*1351.0020.0002] # ARTIST PALETTE
+1F3A9 ; [*1352.0020.0002] # TOP HAT
+1F3AA ; [*1353.0020.0002] # CIRCUS TENT
+1F3AB ; [*1354.0020.0002] # TICKET
+1F3AC ; [*1355.0020.0002] # CLAPPER BOARD
+1F3AD ; [*1356.0020.0002] # PERFORMING ARTS
+1F3AE ; [*1357.0020.0002] # VIDEO GAME
+1F3AF ; [*1358.0020.0002] # DIRECT HIT
+1F3B0 ; [*1359.0020.0002] # SLOT MACHINE
+1F3B1 ; [*135A.0020.0002] # BILLIARDS
+1F3B2 ; [*135B.0020.0002] # GAME DIE
+1F3B3 ; [*135C.0020.0002] # BOWLING
+1F3B4 ; [*135D.0020.0002] # FLOWER PLAYING CARDS
+1F3B5 ; [*135E.0020.0002] # MUSICAL NOTE
+1F3B6 ; [*135F.0020.0002] # MULTIPLE MUSICAL NOTES
+1F3B7 ; [*1360.0020.0002] # SAXOPHONE
+1F3B8 ; [*1361.0020.0002] # GUITAR
+1F3B9 ; [*1362.0020.0002] # MUSICAL KEYBOARD
+1F3BA ; [*1363.0020.0002] # TRUMPET
+1F3BB ; [*1364.0020.0002] # VIOLIN
+1F3BC ; [*1365.0020.0002] # MUSICAL SCORE
+1F3BD ; [*1366.0020.0002] # RUNNING SHIRT WITH SASH
+1F3BE ; [*1367.0020.0002] # TENNIS RACQUET AND BALL
+1F3BF ; [*1368.0020.0002] # SKI AND SKI BOOT
+1F3C0 ; [*1369.0020.0002] # BASKETBALL AND HOOP
+1F3C1 ; [*136A.0020.0002] # CHEQUERED FLAG
+1F3C2 ; [*136B.0020.0002] # SNOWBOARDER
+1F3C3 ; [*136C.0020.0002] # RUNNER
+1F3C4 ; [*136D.0020.0002] # SURFER
+1F3C5 ; [*136E.0020.0002] # SPORTS MEDAL
+1F3C6 ; [*136F.0020.0002] # TROPHY
+1F3C7 ; [*1370.0020.0002] # HORSE RACING
+1F3C8 ; [*1371.0020.0002] # AMERICAN FOOTBALL
+1F3C9 ; [*1372.0020.0002] # RUGBY FOOTBALL
+1F3CA ; [*1373.0020.0002] # SWIMMER
+1F3CB ; [*1374.0020.0002] # WEIGHT LIFTER
+1F3CC ; [*1375.0020.0002] # GOLFER
+1F3CD ; [*1376.0020.0002] # RACING MOTORCYCLE
+1F3CE ; [*1377.0020.0002] # RACING CAR
+1F3CF ; [*1378.0020.0002] # CRICKET BAT AND BALL
+1F3D0 ; [*1379.0020.0002] # VOLLEYBALL
+1F3D1 ; [*137A.0020.0002] # FIELD HOCKEY STICK AND BALL
+1F3D2 ; [*137B.0020.0002] # ICE HOCKEY STICK AND PUCK
+1F3D3 ; [*137C.0020.0002] # TABLE TENNIS PADDLE AND BALL
+1F3D4 ; [*137D.0020.0002] # SNOW CAPPED MOUNTAIN
+1F3D5 ; [*137E.0020.0002] # CAMPING
+1F3D6 ; [*137F.0020.0002] # BEACH WITH UMBRELLA
+1F3D7 ; [*1380.0020.0002] # BUILDING CONSTRUCTION
+1F3D8 ; [*1381.0020.0002] # HOUSE BUILDINGS
+1F3D9 ; [*1382.0020.0002] # CITYSCAPE
+1F3DA ; [*1383.0020.0002] # DERELICT HOUSE BUILDING
+1F3DB ; [*1384.0020.0002] # CLASSICAL BUILDING
+1F3DC ; [*1385.0020.0002] # DESERT
+1F3DD ; [*1386.0020.0002] # DESERT ISLAND
+1F3DE ; [*1387.0020.0002] # NATIONAL PARK
+1F3DF ; [*1388.0020.0002] # STADIUM
+1F3E0 ; [*1389.0020.0002] # HOUSE BUILDING
+1F3E1 ; [*138A.0020.0002] # HOUSE WITH GARDEN
+1F3E2 ; [*138B.0020.0002] # OFFICE BUILDING
+1F3E3 ; [*138C.0020.0002] # JAPANESE POST OFFICE
+1F3E4 ; [*138D.0020.0002] # EUROPEAN POST OFFICE
+1F3E5 ; [*138E.0020.0002] # HOSPITAL
+1F3E6 ; [*138F.0020.0002] # BANK
+1F3E7 ; [*1390.0020.0002] # AUTOMATED TELLER MACHINE
+1F3E8 ; [*1391.0020.0002] # HOTEL
+1F3E9 ; [*1392.0020.0002] # LOVE HOTEL
+1F3EA ; [*1393.0020.0002] # CONVENIENCE STORE
+1F3EB ; [*1394.0020.0002] # SCHOOL
+1F3EC ; [*1395.0020.0002] # DEPARTMENT STORE
+1F3ED ; [*1396.0020.0002] # FACTORY
+1F3EE ; [*1397.0020.0002] # IZAKAYA LANTERN
+1F3EF ; [*1398.0020.0002] # JAPANESE CASTLE
+1F3F0 ; [*1399.0020.0002] # EUROPEAN CASTLE
+1F3F1 ; [*139A.0020.0002] # WHITE PENNANT
+1F3F2 ; [*139B.0020.0002] # BLACK PENNANT
+1F3F3 ; [*139C.0020.0002] # WAVING WHITE FLAG
+1F3F4 ; [*139D.0020.0002] # WAVING BLACK FLAG
+1F3F5 ; [*139E.0020.0002] # ROSETTE
+1F3F6 ; [*139F.0020.0002] # BLACK ROSETTE
+1F3F7 ; [*13A0.0020.0002] # LABEL
+1F3F8 ; [*13A1.0020.0002] # BADMINTON RACQUET AND SHUTTLECOCK
+1F3F9 ; [*13A2.0020.0002] # BOW AND ARROW
+1F3FA ; [*13A3.0020.0002] # AMPHORA
+1F3FB ; [*13A4.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-1-2
+1F3FC ; [*13A5.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-3
+1F3FD ; [*13A6.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-4
+1F3FE ; [*13A7.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-5
+1F3FF ; [*13A8.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-6
+1F400 ; [*13A9.0020.0002] # RAT
+1F401 ; [*13AA.0020.0002] # MOUSE
+1F402 ; [*13AB.0020.0002] # OX
+1F403 ; [*13AC.0020.0002] # WATER BUFFALO
+1F404 ; [*13AD.0020.0002] # COW
+1F405 ; [*13AE.0020.0002] # TIGER
+1F406 ; [*13AF.0020.0002] # LEOPARD
+1F407 ; [*13B0.0020.0002] # RABBIT
+1F408 ; [*13B1.0020.0002] # CAT
+1F409 ; [*13B2.0020.0002] # DRAGON
+1F40A ; [*13B3.0020.0002] # CROCODILE
+1F40B ; [*13B4.0020.0002] # WHALE
+1F40C ; [*13B5.0020.0002] # SNAIL
+1F40D ; [*13B6.0020.0002] # SNAKE
+1F40E ; [*13B7.0020.0002] # HORSE
+1F40F ; [*13B8.0020.0002] # RAM
+1F410 ; [*13B9.0020.0002] # GOAT
+1F411 ; [*13BA.0020.0002] # SHEEP
+1F412 ; [*13BB.0020.0002] # MONKEY
+1F413 ; [*13BC.0020.0002] # ROOSTER
+1F414 ; [*13BD.0020.0002] # CHICKEN
+1F415 ; [*13BE.0020.0002] # DOG
+1F416 ; [*13BF.0020.0002] # PIG
+1F417 ; [*13C0.0020.0002] # BOAR
+1F418 ; [*13C1.0020.0002] # ELEPHANT
+1F419 ; [*13C2.0020.0002] # OCTOPUS
+1F41A ; [*13C3.0020.0002] # SPIRAL SHELL
+1F41B ; [*13C4.0020.0002] # BUG
+1F41C ; [*13C5.0020.0002] # ANT
+1F41D ; [*13C6.0020.0002] # HONEYBEE
+1F41E ; [*13C7.0020.0002] # LADY BEETLE
+1F41F ; [*13C8.0020.0002] # FISH
+1F420 ; [*13C9.0020.0002] # TROPICAL FISH
+1F421 ; [*13CA.0020.0002] # BLOWFISH
+1F422 ; [*13CB.0020.0002] # TURTLE
+1F423 ; [*13CC.0020.0002] # HATCHING CHICK
+1F424 ; [*13CD.0020.0002] # BABY CHICK
+1F425 ; [*13CE.0020.0002] # FRONT-FACING BABY CHICK
+1F426 ; [*13CF.0020.0002] # BIRD
+1F427 ; [*13D0.0020.0002] # PENGUIN
+1F428 ; [*13D1.0020.0002] # KOALA
+1F429 ; [*13D2.0020.0002] # POODLE
+1F42A ; [*13D3.0020.0002] # DROMEDARY CAMEL
+1F42B ; [*13D4.0020.0002] # BACTRIAN CAMEL
+1F42C ; [*13D5.0020.0002] # DOLPHIN
+1F42D ; [*13D6.0020.0002] # MOUSE FACE
+1F42E ; [*13D7.0020.0002] # COW FACE
+1F42F ; [*13D8.0020.0002] # TIGER FACE
+1F430 ; [*13D9.0020.0002] # RABBIT FACE
+1F431 ; [*13DA.0020.0002] # CAT FACE
+1F432 ; [*13DB.0020.0002] # DRAGON FACE
+1F433 ; [*13DC.0020.0002] # SPOUTING WHALE
+1F434 ; [*13DD.0020.0002] # HORSE FACE
+1F435 ; [*13DE.0020.0002] # MONKEY FACE
+1F436 ; [*13DF.0020.0002] # DOG FACE
+1F437 ; [*13E0.0020.0002] # PIG FACE
+1F438 ; [*13E1.0020.0002] # FROG FACE
+1F439 ; [*13E2.0020.0002] # HAMSTER FACE
+1F43A ; [*13E3.0020.0002] # WOLF FACE
+1F43B ; [*13E4.0020.0002] # BEAR FACE
+1F43C ; [*13E5.0020.0002] # PANDA FACE
+1F43D ; [*13E6.0020.0002] # PIG NOSE
+1F43E ; [*13E7.0020.0002] # PAW PRINTS
+1F43F ; [*13E8.0020.0002] # CHIPMUNK
+1F440 ; [*13E9.0020.0002] # EYES
+1F441 ; [*13EA.0020.0002] # EYE
+1F442 ; [*13EB.0020.0002] # EAR
+1F443 ; [*13EC.0020.0002] # NOSE
+1F444 ; [*13ED.0020.0002] # MOUTH
+1F445 ; [*13EE.0020.0002] # TONGUE
+1F446 ; [*13EF.0020.0002] # WHITE UP POINTING BACKHAND INDEX
+1F447 ; [*13F0.0020.0002] # WHITE DOWN POINTING BACKHAND INDEX
+1F448 ; [*13F1.0020.0002] # WHITE LEFT POINTING BACKHAND INDEX
+1F449 ; [*13F2.0020.0002] # WHITE RIGHT POINTING BACKHAND INDEX
+1F44A ; [*13F3.0020.0002] # FISTED HAND SIGN
+1F44B ; [*13F4.0020.0002] # WAVING HAND SIGN
+1F44C ; [*13F5.0020.0002] # OK HAND SIGN
+1F44D ; [*13F6.0020.0002] # THUMBS UP SIGN
+1F44E ; [*13F7.0020.0002] # THUMBS DOWN SIGN
+1F44F ; [*13F8.0020.0002] # CLAPPING HANDS SIGN
+1F450 ; [*13F9.0020.0002] # OPEN HANDS SIGN
+1F451 ; [*13FA.0020.0002] # CROWN
+1F452 ; [*13FB.0020.0002] # WOMANS HAT
+1F453 ; [*13FC.0020.0002] # EYEGLASSES
+1F454 ; [*13FD.0020.0002] # NECKTIE
+1F455 ; [*13FE.0020.0002] # T-SHIRT
+1F456 ; [*13FF.0020.0002] # JEANS
+1F457 ; [*1400.0020.0002] # DRESS
+1F458 ; [*1401.0020.0002] # KIMONO
+1F459 ; [*1402.0020.0002] # BIKINI
+1F45A ; [*1403.0020.0002] # WOMANS CLOTHES
+1F45B ; [*1404.0020.0002] # PURSE
+1F45C ; [*1405.0020.0002] # HANDBAG
+1F45D ; [*1406.0020.0002] # POUCH
+1F45E ; [*1407.0020.0002] # MANS SHOE
+1F45F ; [*1408.0020.0002] # ATHLETIC SHOE
+1F460 ; [*1409.0020.0002] # HIGH-HEELED SHOE
+1F461 ; [*140A.0020.0002] # WOMANS SANDAL
+1F462 ; [*140B.0020.0002] # WOMANS BOOTS
+1F463 ; [*140C.0020.0002] # FOOTPRINTS
+1F464 ; [*140D.0020.0002] # BUST IN SILHOUETTE
+1F465 ; [*140E.0020.0002] # BUSTS IN SILHOUETTE
+1F466 ; [*140F.0020.0002] # BOY
+1F467 ; [*1410.0020.0002] # GIRL
+1F468 ; [*1411.0020.0002] # MAN
+1F469 ; [*1412.0020.0002] # WOMAN
+1F46A ; [*1413.0020.0002] # FAMILY
+1F46B ; [*1414.0020.0002] # MAN AND WOMAN HOLDING HANDS
+1F46C ; [*1415.0020.0002] # TWO MEN HOLDING HANDS
+1F46D ; [*1416.0020.0002] # TWO WOMEN HOLDING HANDS
+1F46E ; [*1417.0020.0002] # POLICE OFFICER
+1F46F ; [*1418.0020.0002] # WOMAN WITH BUNNY EARS
+1F470 ; [*1419.0020.0002] # BRIDE WITH VEIL
+1F471 ; [*141A.0020.0002] # PERSON WITH BLOND HAIR
+1F472 ; [*141B.0020.0002] # MAN WITH GUA PI MAO
+1F473 ; [*141C.0020.0002] # MAN WITH TURBAN
+1F474 ; [*141D.0020.0002] # OLDER MAN
+1F475 ; [*141E.0020.0002] # OLDER WOMAN
+1F476 ; [*141F.0020.0002] # BABY
+1F477 ; [*1420.0020.0002] # CONSTRUCTION WORKER
+1F478 ; [*1421.0020.0002] # PRINCESS
+1F479 ; [*1422.0020.0002] # JAPANESE OGRE
+1F47A ; [*1423.0020.0002] # JAPANESE GOBLIN
+1F47B ; [*1424.0020.0002] # GHOST
+1F47C ; [*1425.0020.0002] # BABY ANGEL
+1F47D ; [*1426.0020.0002] # EXTRATERRESTRIAL ALIEN
+1F47E ; [*1427.0020.0002] # ALIEN MONSTER
+1F47F ; [*1428.0020.0002] # IMP
+1F480 ; [*1429.0020.0002] # SKULL
+1F481 ; [*142A.0020.0002] # INFORMATION DESK PERSON
+1F482 ; [*142B.0020.0002] # GUARDSMAN
+1F483 ; [*142C.0020.0002] # DANCER
+1F484 ; [*142D.0020.0002] # LIPSTICK
+1F485 ; [*142E.0020.0002] # NAIL POLISH
+1F486 ; [*142F.0020.0002] # FACE MASSAGE
+1F487 ; [*1430.0020.0002] # HAIRCUT
+1F488 ; [*1431.0020.0002] # BARBER POLE
+1F489 ; [*1432.0020.0002] # SYRINGE
+1F48A ; [*1433.0020.0002] # PILL
+1F48B ; [*1434.0020.0002] # KISS MARK
+1F48C ; [*1435.0020.0002] # LOVE LETTER
+1F48D ; [*1436.0020.0002] # RING
+1F48E ; [*1437.0020.0002] # GEM STONE
+1F48F ; [*1438.0020.0002] # KISS
+1F490 ; [*1439.0020.0002] # BOUQUET
+1F491 ; [*143A.0020.0002] # COUPLE WITH HEART
+1F492 ; [*143B.0020.0002] # WEDDING
+1F493 ; [*143C.0020.0002] # BEATING HEART
+1F494 ; [*143D.0020.0002] # BROKEN HEART
+1F495 ; [*143E.0020.0002] # TWO HEARTS
+1F496 ; [*143F.0020.0002] # SPARKLING HEART
+1F497 ; [*1440.0020.0002] # GROWING HEART
+1F498 ; [*1441.0020.0002] # HEART WITH ARROW
+1F499 ; [*1442.0020.0002] # BLUE HEART
+1F49A ; [*1443.0020.0002] # GREEN HEART
+1F49B ; [*1444.0020.0002] # YELLOW HEART
+1F49C ; [*1445.0020.0002] # PURPLE HEART
+1F49D ; [*1446.0020.0002] # HEART WITH RIBBON
+1F49E ; [*1447.0020.0002] # REVOLVING HEARTS
+1F49F ; [*1448.0020.0002] # HEART DECORATION
+1F4A0 ; [*1449.0020.0002] # DIAMOND SHAPE WITH A DOT INSIDE
+1F4A1 ; [*144A.0020.0002] # ELECTRIC LIGHT BULB
+1F4A2 ; [*144B.0020.0002] # ANGER SYMBOL
+1F4A3 ; [*144C.0020.0002] # BOMB
+1F4A4 ; [*144D.0020.0002] # SLEEPING SYMBOL
+1F4A5 ; [*144E.0020.0002] # COLLISION SYMBOL
+1F4A6 ; [*144F.0020.0002] # SPLASHING SWEAT SYMBOL
+1F4A7 ; [*1450.0020.0002] # DROPLET
+1F4A8 ; [*1451.0020.0002] # DASH SYMBOL
+1F4A9 ; [*1452.0020.0002] # PILE OF POO
+1F4AA ; [*1453.0020.0002] # FLEXED BICEPS
+1F4AB ; [*1454.0020.0002] # DIZZY SYMBOL
+1F4AC ; [*1455.0020.0002] # SPEECH BALLOON
+1F4AD ; [*1456.0020.0002] # THOUGHT BALLOON
+1F4AE ; [*1457.0020.0002] # WHITE FLOWER
+1F4AF ; [*1458.0020.0002] # HUNDRED POINTS SYMBOL
+1F4B0 ; [*1459.0020.0002] # MONEY BAG
+1F4B1 ; [*145A.0020.0002] # CURRENCY EXCHANGE
+1F4B2 ; [*145B.0020.0002] # HEAVY DOLLAR SIGN
+1F4B3 ; [*145C.0020.0002] # CREDIT CARD
+1F4B4 ; [*145D.0020.0002] # BANKNOTE WITH YEN SIGN
+1F4B5 ; [*145E.0020.0002] # BANKNOTE WITH DOLLAR SIGN
+1F4B6 ; [*145F.0020.0002] # BANKNOTE WITH EURO SIGN
+1F4B7 ; [*1460.0020.0002] # BANKNOTE WITH POUND SIGN
+1F4B8 ; [*1461.0020.0002] # MONEY WITH WINGS
+1F4B9 ; [*1462.0020.0002] # CHART WITH UPWARDS TREND AND YEN SIGN
+1F4BA ; [*1463.0020.0002] # SEAT
+1F4BB ; [*1464.0020.0002] # PERSONAL COMPUTER
+1F4BC ; [*1465.0020.0002] # BRIEFCASE
+1F4BD ; [*1466.0020.0002] # MINIDISC
+1F4BE ; [*1467.0020.0002] # FLOPPY DISK
+1F4BF ; [*1468.0020.0002] # OPTICAL DISC
+1F4C0 ; [*1469.0020.0002] # DVD
+1F4C1 ; [*146A.0020.0002] # FILE FOLDER
+1F4C2 ; [*146B.0020.0002] # OPEN FILE FOLDER
+1F4C3 ; [*146C.0020.0002] # PAGE WITH CURL
+1F4C4 ; [*146D.0020.0002] # PAGE FACING UP
+1F4C5 ; [*146E.0020.0002] # CALENDAR
+1F4C6 ; [*146F.0020.0002] # TEAR-OFF CALENDAR
+1F4C7 ; [*1470.0020.0002] # CARD INDEX
+1F4C8 ; [*1471.0020.0002] # CHART WITH UPWARDS TREND
+1F4C9 ; [*1472.0020.0002] # CHART WITH DOWNWARDS TREND
+1F4CA ; [*1473.0020.0002] # BAR CHART
+1F4CB ; [*1474.0020.0002] # CLIPBOARD
+1F4CC ; [*1475.0020.0002] # PUSHPIN
+1F4CD ; [*1476.0020.0002] # ROUND PUSHPIN
+1F4CE ; [*1477.0020.0002] # PAPERCLIP
+1F4CF ; [*1478.0020.0002] # STRAIGHT RULER
+1F4D0 ; [*1479.0020.0002] # TRIANGULAR RULER
+1F4D1 ; [*147A.0020.0002] # BOOKMARK TABS
+1F4D2 ; [*147B.0020.0002] # LEDGER
+1F4D3 ; [*147C.0020.0002] # NOTEBOOK
+1F4D4 ; [*147D.0020.0002] # NOTEBOOK WITH DECORATIVE COVER
+1F4D5 ; [*147E.0020.0002] # CLOSED BOOK
+1F4D6 ; [*147F.0020.0002] # OPEN BOOK
+1F4D7 ; [*1480.0020.0002] # GREEN BOOK
+1F4D8 ; [*1481.0020.0002] # BLUE BOOK
+1F4D9 ; [*1482.0020.0002] # ORANGE BOOK
+1F4DA ; [*1483.0020.0002] # BOOKS
+1F4DB ; [*1484.0020.0002] # NAME BADGE
+1F4DC ; [*1485.0020.0002] # SCROLL
+1F4DD ; [*1486.0020.0002] # MEMO
+1F4DE ; [*1487.0020.0002] # TELEPHONE RECEIVER
+1F4DF ; [*1488.0020.0002] # PAGER
+1F4E0 ; [*1489.0020.0002] # FAX MACHINE
+1F4E1 ; [*148A.0020.0002] # SATELLITE ANTENNA
+1F4E2 ; [*148B.0020.0002] # PUBLIC ADDRESS LOUDSPEAKER
+1F4E3 ; [*148C.0020.0002] # CHEERING MEGAPHONE
+1F4E4 ; [*148D.0020.0002] # OUTBOX TRAY
+1F4E5 ; [*148E.0020.0002] # INBOX TRAY
+1F4E6 ; [*148F.0020.0002] # PACKAGE
+1F4E7 ; [*1490.0020.0002] # E-MAIL SYMBOL
+1F4E8 ; [*1491.0020.0002] # INCOMING ENVELOPE
+1F4E9 ; [*1492.0020.0002] # ENVELOPE WITH DOWNWARDS ARROW ABOVE
+1F4EA ; [*1493.0020.0002] # CLOSED MAILBOX WITH LOWERED FLAG
+1F4EB ; [*1494.0020.0002] # CLOSED MAILBOX WITH RAISED FLAG
+1F4EC ; [*1495.0020.0002] # OPEN MAILBOX WITH RAISED FLAG
+1F4ED ; [*1496.0020.0002] # OPEN MAILBOX WITH LOWERED FLAG
+1F4EE ; [*1497.0020.0002] # POSTBOX
+1F4EF ; [*1498.0020.0002] # POSTAL HORN
+1F4F0 ; [*1499.0020.0002] # NEWSPAPER
+1F4F1 ; [*149A.0020.0002] # MOBILE PHONE
+1F4F2 ; [*149B.0020.0002] # MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
+1F4F3 ; [*149C.0020.0002] # VIBRATION MODE
+1F4F4 ; [*149D.0020.0002] # MOBILE PHONE OFF
+1F4F5 ; [*149E.0020.0002] # NO MOBILE PHONES
+1F4F6 ; [*149F.0020.0002] # ANTENNA WITH BARS
+1F4F7 ; [*14A0.0020.0002] # CAMERA
+1F4F8 ; [*14A1.0020.0002] # CAMERA WITH FLASH
+1F4F9 ; [*14A2.0020.0002] # VIDEO CAMERA
+1F4FA ; [*14A3.0020.0002] # TELEVISION
+1F4FB ; [*14A4.0020.0002] # RADIO
+1F4FC ; [*14A5.0020.0002] # VIDEOCASSETTE
+1F4FD ; [*14A6.0020.0002] # FILM PROJECTOR
+1F4FE ; [*14A7.0020.0002] # PORTABLE STEREO
+1F4FF ; [*14A8.0020.0002] # PRAYER BEADS
+1F500 ; [*14A9.0020.0002] # TWISTED RIGHTWARDS ARROWS
+1F501 ; [*14AA.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
+1F502 ; [*14AB.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
+1F503 ; [*14AC.0020.0002] # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+1F504 ; [*14AD.0020.0002] # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+1F505 ; [*14AE.0020.0002] # LOW BRIGHTNESS SYMBOL
+1F506 ; [*14AF.0020.0002] # HIGH BRIGHTNESS SYMBOL
+1F507 ; [*14B0.0020.0002] # SPEAKER WITH CANCELLATION STROKE
+1F508 ; [*14B1.0020.0002] # SPEAKER
+1F509 ; [*14B2.0020.0002] # SPEAKER WITH ONE SOUND WAVE
+1F50A ; [*14B3.0020.0002] # SPEAKER WITH THREE SOUND WAVES
+1F50B ; [*14B4.0020.0002] # BATTERY
+1F50C ; [*14B5.0020.0002] # ELECTRIC PLUG
+1F50D ; [*14B6.0020.0002] # LEFT-POINTING MAGNIFYING GLASS
+1F50E ; [*14B7.0020.0002] # RIGHT-POINTING MAGNIFYING GLASS
+1F50F ; [*14B8.0020.0002] # LOCK WITH INK PEN
+1F510 ; [*14B9.0020.0002] # CLOSED LOCK WITH KEY
+1F511 ; [*14BA.0020.0002] # KEY
+1F512 ; [*14BB.0020.0002] # LOCK
+1F513 ; [*14BC.0020.0002] # OPEN LOCK
+1F514 ; [*14BD.0020.0002] # BELL
+1F515 ; [*14BE.0020.0002] # BELL WITH CANCELLATION STROKE
+1F516 ; [*14BF.0020.0002] # BOOKMARK
+1F517 ; [*14C0.0020.0002] # LINK SYMBOL
+1F518 ; [*14C1.0020.0002] # RADIO BUTTON
+1F519 ; [*14C2.0020.0002] # BACK WITH LEFTWARDS ARROW ABOVE
+1F51A ; [*14C3.0020.0002] # END WITH LEFTWARDS ARROW ABOVE
+1F51B ; [*14C4.0020.0002] # ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
+1F51C ; [*14C5.0020.0002] # SOON WITH RIGHTWARDS ARROW ABOVE
+1F51D ; [*14C6.0020.0002] # TOP WITH UPWARDS ARROW ABOVE
+1F51E ; [*14C7.0020.0002] # NO ONE UNDER EIGHTEEN SYMBOL
+1F51F ; [*14C8.0020.0002] # KEYCAP TEN
+1F520 ; [*14C9.0020.0002] # INPUT SYMBOL FOR LATIN CAPITAL LETTERS
+1F521 ; [*14CA.0020.0002] # INPUT SYMBOL FOR LATIN SMALL LETTERS
+1F522 ; [*14CB.0020.0002] # INPUT SYMBOL FOR NUMBERS
+1F523 ; [*14CC.0020.0002] # INPUT SYMBOL FOR SYMBOLS
+1F524 ; [*14CD.0020.0002] # INPUT SYMBOL FOR LATIN LETTERS
+1F525 ; [*14CE.0020.0002] # FIRE
+1F526 ; [*14CF.0020.0002] # ELECTRIC TORCH
+1F527 ; [*14D0.0020.0002] # WRENCH
+1F528 ; [*14D1.0020.0002] # HAMMER
+1F529 ; [*14D2.0020.0002] # NUT AND BOLT
+1F52A ; [*14D3.0020.0002] # HOCHO
+1F52B ; [*14D4.0020.0002] # PISTOL
+1F52C ; [*14D5.0020.0002] # MICROSCOPE
+1F52D ; [*14D6.0020.0002] # TELESCOPE
+1F52E ; [*14D7.0020.0002] # CRYSTAL BALL
+1F52F ; [*14D8.0020.0002] # SIX POINTED STAR WITH MIDDLE DOT
+1F530 ; [*14D9.0020.0002] # JAPANESE SYMBOL FOR BEGINNER
+1F531 ; [*14DA.0020.0002] # TRIDENT EMBLEM
+1F532 ; [*14DB.0020.0002] # BLACK SQUARE BUTTON
+1F533 ; [*14DC.0020.0002] # WHITE SQUARE BUTTON
+1F534 ; [*14DD.0020.0002] # LARGE RED CIRCLE
+1F535 ; [*14DE.0020.0002] # LARGE BLUE CIRCLE
+1F536 ; [*14DF.0020.0002] # LARGE ORANGE DIAMOND
+1F537 ; [*14E0.0020.0002] # LARGE BLUE DIAMOND
+1F538 ; [*14E1.0020.0002] # SMALL ORANGE DIAMOND
+1F539 ; [*14E2.0020.0002] # SMALL BLUE DIAMOND
+1F53A ; [*14E3.0020.0002] # UP-POINTING RED TRIANGLE
+1F53B ; [*14E4.0020.0002] # DOWN-POINTING RED TRIANGLE
+1F53C ; [*14E5.0020.0002] # UP-POINTING SMALL RED TRIANGLE
+1F53D ; [*14E6.0020.0002] # DOWN-POINTING SMALL RED TRIANGLE
+1F53E ; [*14E7.0020.0002] # LOWER RIGHT SHADOWED WHITE CIRCLE
+1F53F ; [*14E8.0020.0002] # UPPER RIGHT SHADOWED WHITE CIRCLE
+1F540 ; [*14E9.0020.0002] # CIRCLED CROSS POMMEE
+1F541 ; [*14EA.0020.0002] # CROSS POMMEE WITH HALF-CIRCLE BELOW
+1F542 ; [*14EB.0020.0002] # CROSS POMMEE
+1F543 ; [*14EC.0020.0002] # NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
+1F544 ; [*14ED.0020.0002] # NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS
+1F545 ; [*14EE.0020.0002] # SYMBOL FOR MARKS CHAPTER
+1F546 ; [*14EF.0020.0002] # WHITE LATIN CROSS
+1F547 ; [*14F0.0020.0002] # HEAVY LATIN CROSS
+1F548 ; [*14F1.0020.0002] # CELTIC CROSS
+1F549 ; [*14F2.0020.0002] # OM SYMBOL
+1F54A ; [*14F3.0020.0002] # DOVE OF PEACE
+1F54B ; [*14F4.0020.0002] # KAABA
+1F54C ; [*14F5.0020.0002] # MOSQUE
+1F54D ; [*14F6.0020.0002] # SYNAGOGUE
+1F54E ; [*14F7.0020.0002] # MENORAH WITH NINE BRANCHES
+1F54F ; [*14F8.0020.0002] # BOWL OF HYGIEIA
+1F550 ; [*14F9.0020.0002] # CLOCK FACE ONE OCLOCK
+1F551 ; [*14FA.0020.0002] # CLOCK FACE TWO OCLOCK
+1F552 ; [*14FB.0020.0002] # CLOCK FACE THREE OCLOCK
+1F553 ; [*14FC.0020.0002] # CLOCK FACE FOUR OCLOCK
+1F554 ; [*14FD.0020.0002] # CLOCK FACE FIVE OCLOCK
+1F555 ; [*14FE.0020.0002] # CLOCK FACE SIX OCLOCK
+1F556 ; [*14FF.0020.0002] # CLOCK FACE SEVEN OCLOCK
+1F557 ; [*1500.0020.0002] # CLOCK FACE EIGHT OCLOCK
+1F558 ; [*1501.0020.0002] # CLOCK FACE NINE OCLOCK
+1F559 ; [*1502.0020.0002] # CLOCK FACE TEN OCLOCK
+1F55A ; [*1503.0020.0002] # CLOCK FACE ELEVEN OCLOCK
+1F55B ; [*1504.0020.0002] # CLOCK FACE TWELVE OCLOCK
+1F55C ; [*1505.0020.0002] # CLOCK FACE ONE-THIRTY
+1F55D ; [*1506.0020.0002] # CLOCK FACE TWO-THIRTY
+1F55E ; [*1507.0020.0002] # CLOCK FACE THREE-THIRTY
+1F55F ; [*1508.0020.0002] # CLOCK FACE FOUR-THIRTY
+1F560 ; [*1509.0020.0002] # CLOCK FACE FIVE-THIRTY
+1F561 ; [*150A.0020.0002] # CLOCK FACE SIX-THIRTY
+1F562 ; [*150B.0020.0002] # CLOCK FACE SEVEN-THIRTY
+1F563 ; [*150C.0020.0002] # CLOCK FACE EIGHT-THIRTY
+1F564 ; [*150D.0020.0002] # CLOCK FACE NINE-THIRTY
+1F565 ; [*150E.0020.0002] # CLOCK FACE TEN-THIRTY
+1F566 ; [*150F.0020.0002] # CLOCK FACE ELEVEN-THIRTY
+1F567 ; [*1510.0020.0002] # CLOCK FACE TWELVE-THIRTY
+1F568 ; [*1511.0020.0002] # RIGHT SPEAKER
+1F569 ; [*1512.0020.0002] # RIGHT SPEAKER WITH ONE SOUND WAVE
+1F56A ; [*1513.0020.0002] # RIGHT SPEAKER WITH THREE SOUND WAVES
+1F56B ; [*1514.0020.0002] # BULLHORN
+1F56C ; [*1515.0020.0002] # BULLHORN WITH SOUND WAVES
+1F56D ; [*1516.0020.0002] # RINGING BELL
+1F56E ; [*1517.0020.0002] # BOOK
+1F56F ; [*1518.0020.0002] # CANDLE
+1F570 ; [*1519.0020.0002] # MANTELPIECE CLOCK
+1F571 ; [*151A.0020.0002] # BLACK SKULL AND CROSSBONES
+1F572 ; [*151B.0020.0002] # NO PIRACY
+1F573 ; [*151C.0020.0002] # HOLE
+1F574 ; [*151D.0020.0002] # MAN IN BUSINESS SUIT LEVITATING
+1F575 ; [*151E.0020.0002] # SLEUTH OR SPY
+1F576 ; [*151F.0020.0002] # DARK SUNGLASSES
+1F577 ; [*1520.0020.0002] # SPIDER
+1F578 ; [*1521.0020.0002] # SPIDER WEB
+1F579 ; [*1522.0020.0002] # JOYSTICK
+1F57A ; [*1523.0020.0002] # MAN DANCING
+1F57B ; [*1524.0020.0002] # LEFT HAND TELEPHONE RECEIVER
+1F57C ; [*1525.0020.0002] # TELEPHONE RECEIVER WITH PAGE
+1F57D ; [*1526.0020.0002] # RIGHT HAND TELEPHONE RECEIVER
+1F57E ; [*1527.0020.0002] # WHITE TOUCHTONE TELEPHONE
+1F57F ; [*1528.0020.0002] # BLACK TOUCHTONE TELEPHONE
+1F580 ; [*1529.0020.0002] # TELEPHONE ON TOP OF MODEM
+1F581 ; [*152A.0020.0002] # CLAMSHELL MOBILE PHONE
+1F582 ; [*152B.0020.0002] # BACK OF ENVELOPE
+1F583 ; [*152C.0020.0002] # STAMPED ENVELOPE
+1F584 ; [*152D.0020.0002] # ENVELOPE WITH LIGHTNING
+1F585 ; [*152E.0020.0002] # FLYING ENVELOPE
+1F586 ; [*152F.0020.0002] # PEN OVER STAMPED ENVELOPE
+1F587 ; [*1530.0020.0002] # LINKED PAPERCLIPS
+1F588 ; [*1531.0020.0002] # BLACK PUSHPIN
+1F589 ; [*1532.0020.0002] # LOWER LEFT PENCIL
+1F58A ; [*1533.0020.0002] # LOWER LEFT BALLPOINT PEN
+1F58B ; [*1534.0020.0002] # LOWER LEFT FOUNTAIN PEN
+1F58C ; [*1535.0020.0002] # LOWER LEFT PAINTBRUSH
+1F58D ; [*1536.0020.0002] # LOWER LEFT CRAYON
+1F58E ; [*1537.0020.0002] # LEFT WRITING HAND
+1F58F ; [*1538.0020.0002] # TURNED OK HAND SIGN
+1F590 ; [*1539.0020.0002] # RAISED HAND WITH FINGERS SPLAYED
+1F591 ; [*153A.0020.0002] # REVERSED RAISED HAND WITH FINGERS SPLAYED
+1F592 ; [*153B.0020.0002] # REVERSED THUMBS UP SIGN
+1F593 ; [*153C.0020.0002] # REVERSED THUMBS DOWN SIGN
+1F594 ; [*153D.0020.0002] # REVERSED VICTORY HAND
+1F595 ; [*153E.0020.0002] # REVERSED HAND WITH MIDDLE FINGER EXTENDED
+1F596 ; [*153F.0020.0002] # RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
+1F597 ; [*1540.0020.0002] # WHITE DOWN POINTING LEFT HAND INDEX
+1F598 ; [*1541.0020.0002] # SIDEWAYS WHITE LEFT POINTING INDEX
+1F599 ; [*1542.0020.0002] # SIDEWAYS WHITE RIGHT POINTING INDEX
+1F59A ; [*1543.0020.0002] # SIDEWAYS BLACK LEFT POINTING INDEX
+1F59B ; [*1544.0020.0002] # SIDEWAYS BLACK RIGHT POINTING INDEX
+1F59C ; [*1545.0020.0002] # BLACK LEFT POINTING BACKHAND INDEX
+1F59D ; [*1546.0020.0002] # BLACK RIGHT POINTING BACKHAND INDEX
+1F59E ; [*1547.0020.0002] # SIDEWAYS WHITE UP POINTING INDEX
+1F59F ; [*1548.0020.0002] # SIDEWAYS WHITE DOWN POINTING INDEX
+1F5A0 ; [*1549.0020.0002] # SIDEWAYS BLACK UP POINTING INDEX
+1F5A1 ; [*154A.0020.0002] # SIDEWAYS BLACK DOWN POINTING INDEX
+1F5A2 ; [*154B.0020.0002] # BLACK UP POINTING BACKHAND INDEX
+1F5A3 ; [*154C.0020.0002] # BLACK DOWN POINTING BACKHAND INDEX
+1F5A4 ; [*154D.0020.0002] # BLACK HEART
+1F5A5 ; [*154E.0020.0002] # DESKTOP COMPUTER
+1F5A6 ; [*154F.0020.0002] # KEYBOARD AND MOUSE
+1F5A7 ; [*1550.0020.0002] # THREE NETWORKED COMPUTERS
+1F5A8 ; [*1551.0020.0002] # PRINTER
+1F5A9 ; [*1552.0020.0002] # POCKET CALCULATOR
+1F5AA ; [*1553.0020.0002] # BLACK HARD SHELL FLOPPY DISK
+1F5AB ; [*1554.0020.0002] # WHITE HARD SHELL FLOPPY DISK
+1F5AC ; [*1555.0020.0002] # SOFT SHELL FLOPPY DISK
+1F5AD ; [*1556.0020.0002] # TAPE CARTRIDGE
+1F5AE ; [*1557.0020.0002] # WIRED KEYBOARD
+1F5AF ; [*1558.0020.0002] # ONE BUTTON MOUSE
+1F5B0 ; [*1559.0020.0002] # TWO BUTTON MOUSE
+1F5B1 ; [*155A.0020.0002] # THREE BUTTON MOUSE
+1F5B2 ; [*155B.0020.0002] # TRACKBALL
+1F5B3 ; [*155C.0020.0002] # OLD PERSONAL COMPUTER
+1F5B4 ; [*155D.0020.0002] # HARD DISK
+1F5B5 ; [*155E.0020.0002] # SCREEN
+1F5B6 ; [*155F.0020.0002] # PRINTER ICON
+1F5B7 ; [*1560.0020.0002] # FAX ICON
+1F5B8 ; [*1561.0020.0002] # OPTICAL DISC ICON
+1F5B9 ; [*1562.0020.0002] # DOCUMENT WITH TEXT
+1F5BA ; [*1563.0020.0002] # DOCUMENT WITH TEXT AND PICTURE
+1F5BB ; [*1564.0020.0002] # DOCUMENT WITH PICTURE
+1F5BC ; [*1565.0020.0002] # FRAME WITH PICTURE
+1F5BD ; [*1566.0020.0002] # FRAME WITH TILES
+1F5BE ; [*1567.0020.0002] # FRAME WITH AN X
+1F5BF ; [*1568.0020.0002] # BLACK FOLDER
+1F5C0 ; [*1569.0020.0002] # FOLDER
+1F5C1 ; [*156A.0020.0002] # OPEN FOLDER
+1F5C2 ; [*156B.0020.0002] # CARD INDEX DIVIDERS
+1F5C3 ; [*156C.0020.0002] # CARD FILE BOX
+1F5C4 ; [*156D.0020.0002] # FILE CABINET
+1F5C5 ; [*156E.0020.0002] # EMPTY NOTE
+1F5C6 ; [*156F.0020.0002] # EMPTY NOTE PAGE
+1F5C7 ; [*1570.0020.0002] # EMPTY NOTE PAD
+1F5C8 ; [*1571.0020.0002] # NOTE
+1F5C9 ; [*1572.0020.0002] # NOTE PAGE
+1F5CA ; [*1573.0020.0002] # NOTE PAD
+1F5CB ; [*1574.0020.0002] # EMPTY DOCUMENT
+1F5CC ; [*1575.0020.0002] # EMPTY PAGE
+1F5CD ; [*1576.0020.0002] # EMPTY PAGES
+1F5CE ; [*1577.0020.0002] # DOCUMENT
+1F5CF ; [*1578.0020.0002] # PAGE
+1F5D0 ; [*1579.0020.0002] # PAGES
+1F5D1 ; [*157A.0020.0002] # WASTEBASKET
+1F5D2 ; [*157B.0020.0002] # SPIRAL NOTE PAD
+1F5D3 ; [*157C.0020.0002] # SPIRAL CALENDAR PAD
+1F5D4 ; [*157D.0020.0002] # DESKTOP WINDOW
+1F5D5 ; [*157E.0020.0002] # MINIMIZE
+1F5D6 ; [*157F.0020.0002] # MAXIMIZE
+1F5D7 ; [*1580.0020.0002] # OVERLAP
+1F5D8 ; [*1581.0020.0002] # CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS
+1F5D9 ; [*1582.0020.0002] # CANCELLATION X
+1F5DA ; [*1583.0020.0002] # INCREASE FONT SIZE SYMBOL
+1F5DB ; [*1584.0020.0002] # DECREASE FONT SIZE SYMBOL
+1F5DC ; [*1585.0020.0002] # COMPRESSION
+1F5DD ; [*1586.0020.0002] # OLD KEY
+1F5DE ; [*1587.0020.0002] # ROLLED-UP NEWSPAPER
+1F5DF ; [*1588.0020.0002] # PAGE WITH CIRCLED TEXT
+1F5E0 ; [*1589.0020.0002] # STOCK CHART
+1F5E1 ; [*158A.0020.0002] # DAGGER KNIFE
+1F5E2 ; [*158B.0020.0002] # LIPS
+1F5E3 ; [*158C.0020.0002] # SPEAKING HEAD IN SILHOUETTE
+1F5E4 ; [*158D.0020.0002] # THREE RAYS ABOVE
+1F5E5 ; [*158E.0020.0002] # THREE RAYS BELOW
+1F5E6 ; [*158F.0020.0002] # THREE RAYS LEFT
+1F5E7 ; [*1590.0020.0002] # THREE RAYS RIGHT
+1F5E8 ; [*1591.0020.0002] # LEFT SPEECH BUBBLE
+1F5E9 ; [*1592.0020.0002] # RIGHT SPEECH BUBBLE
+1F5EA ; [*1593.0020.0002] # TWO SPEECH BUBBLES
+1F5EB ; [*1594.0020.0002] # THREE SPEECH BUBBLES
+1F5EC ; [*1595.0020.0002] # LEFT THOUGHT BUBBLE
+1F5ED ; [*1596.0020.0002] # RIGHT THOUGHT BUBBLE
+1F5EE ; [*1597.0020.0002] # LEFT ANGER BUBBLE
+1F5EF ; [*1598.0020.0002] # RIGHT ANGER BUBBLE
+1F5F0 ; [*1599.0020.0002] # MOOD BUBBLE
+1F5F1 ; [*159A.0020.0002] # LIGHTNING MOOD BUBBLE
+1F5F2 ; [*159B.0020.0002] # LIGHTNING MOOD
+1F5F3 ; [*159C.0020.0002] # BALLOT BOX WITH BALLOT
+1F5F4 ; [*159D.0020.0002] # BALLOT SCRIPT X
+1F5F5 ; [*159E.0020.0002] # BALLOT BOX WITH SCRIPT X
+1F5F6 ; [*159F.0020.0002] # BALLOT BOLD SCRIPT X
+1F5F7 ; [*15A0.0020.0002] # BALLOT BOX WITH BOLD SCRIPT X
+1F5F8 ; [*15A1.0020.0002] # LIGHT CHECK MARK
+1F5F9 ; [*15A2.0020.0002] # BALLOT BOX WITH BOLD CHECK
+1F5FA ; [*15A3.0020.0002] # WORLD MAP
+1F5FB ; [*15A4.0020.0002] # MOUNT FUJI
+1F5FC ; [*15A5.0020.0002] # TOKYO TOWER
+1F5FD ; [*15A6.0020.0002] # STATUE OF LIBERTY
+1F5FE ; [*15A7.0020.0002] # SILHOUETTE OF JAPAN
+1F5FF ; [*15A8.0020.0002] # MOYAI
+1F600 ; [*15FB.0020.0002] # GRINNING FACE
+1F601 ; [*15FC.0020.0002] # GRINNING FACE WITH SMILING EYES
+1F602 ; [*15FD.0020.0002] # FACE WITH TEARS OF JOY
+1F603 ; [*15FE.0020.0002] # SMILING FACE WITH OPEN MOUTH
+1F604 ; [*15FF.0020.0002] # SMILING FACE WITH OPEN MOUTH AND SMILING EYES
+1F605 ; [*1600.0020.0002] # SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
+1F606 ; [*1601.0020.0002] # SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
+1F607 ; [*1602.0020.0002] # SMILING FACE WITH HALO
+1F608 ; [*1603.0020.0002] # SMILING FACE WITH HORNS
+1F609 ; [*1604.0020.0002] # WINKING FACE
+1F60A ; [*1605.0020.0002] # SMILING FACE WITH SMILING EYES
+1F60B ; [*1606.0020.0002] # FACE SAVOURING DELICIOUS FOOD
+1F60C ; [*1607.0020.0002] # RELIEVED FACE
+1F60D ; [*1608.0020.0002] # SMILING FACE WITH HEART-SHAPED EYES
+1F60E ; [*1609.0020.0002] # SMILING FACE WITH SUNGLASSES
+1F60F ; [*160A.0020.0002] # SMIRKING FACE
+1F610 ; [*160B.0020.0002] # NEUTRAL FACE
+1F611 ; [*160C.0020.0002] # EXPRESSIONLESS FACE
+1F612 ; [*160D.0020.0002] # UNAMUSED FACE
+1F613 ; [*160E.0020.0002] # FACE WITH COLD SWEAT
+1F614 ; [*160F.0020.0002] # PENSIVE FACE
+1F615 ; [*1610.0020.0002] # CONFUSED FACE
+1F616 ; [*1611.0020.0002] # CONFOUNDED FACE
+1F617 ; [*1612.0020.0002] # KISSING FACE
+1F618 ; [*1613.0020.0002] # FACE THROWING A KISS
+1F619 ; [*1614.0020.0002] # KISSING FACE WITH SMILING EYES
+1F61A ; [*1615.0020.0002] # KISSING FACE WITH CLOSED EYES
+1F61B ; [*1616.0020.0002] # FACE WITH STUCK-OUT TONGUE
+1F61C ; [*1617.0020.0002] # FACE WITH STUCK-OUT TONGUE AND WINKING EYE
+1F61D ; [*1618.0020.0002] # FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
+1F61E ; [*1619.0020.0002] # DISAPPOINTED FACE
+1F61F ; [*161A.0020.0002] # WORRIED FACE
+1F620 ; [*161B.0020.0002] # ANGRY FACE
+1F621 ; [*161C.0020.0002] # POUTING FACE
+1F622 ; [*161D.0020.0002] # CRYING FACE
+1F623 ; [*161E.0020.0002] # PERSEVERING FACE
+1F624 ; [*161F.0020.0002] # FACE WITH LOOK OF TRIUMPH
+1F625 ; [*1620.0020.0002] # DISAPPOINTED BUT RELIEVED FACE
+1F626 ; [*1621.0020.0002] # FROWNING FACE WITH OPEN MOUTH
+1F627 ; [*1622.0020.0002] # ANGUISHED FACE
+1F628 ; [*1623.0020.0002] # FEARFUL FACE
+1F629 ; [*1624.0020.0002] # WEARY FACE
+1F62A ; [*1625.0020.0002] # SLEEPY FACE
+1F62B ; [*1626.0020.0002] # TIRED FACE
+1F62C ; [*1627.0020.0002] # GRIMACING FACE
+1F62D ; [*1628.0020.0002] # LOUDLY CRYING FACE
+1F62E ; [*1629.0020.0002] # FACE WITH OPEN MOUTH
+1F62F ; [*162A.0020.0002] # HUSHED FACE
+1F630 ; [*162B.0020.0002] # FACE WITH OPEN MOUTH AND COLD SWEAT
+1F631 ; [*162C.0020.0002] # FACE SCREAMING IN FEAR
+1F632 ; [*162D.0020.0002] # ASTONISHED FACE
+1F633 ; [*162E.0020.0002] # FLUSHED FACE
+1F634 ; [*162F.0020.0002] # SLEEPING FACE
+1F635 ; [*1630.0020.0002] # DIZZY FACE
+1F636 ; [*1631.0020.0002] # FACE WITHOUT MOUTH
+1F637 ; [*1632.0020.0002] # FACE WITH MEDICAL MASK
+1F638 ; [*1633.0020.0002] # GRINNING CAT FACE WITH SMILING EYES
+1F639 ; [*1634.0020.0002] # CAT FACE WITH TEARS OF JOY
+1F63A ; [*1635.0020.0002] # SMILING CAT FACE WITH OPEN MOUTH
+1F63B ; [*1636.0020.0002] # SMILING CAT FACE WITH HEART-SHAPED EYES
+1F63C ; [*1637.0020.0002] # CAT FACE WITH WRY SMILE
+1F63D ; [*1638.0020.0002] # KISSING CAT FACE WITH CLOSED EYES
+1F63E ; [*1639.0020.0002] # POUTING CAT FACE
+1F63F ; [*163A.0020.0002] # CRYING CAT FACE
+1F640 ; [*163B.0020.0002] # WEARY CAT FACE
+1F641 ; [*163C.0020.0002] # SLIGHTLY FROWNING FACE
+1F642 ; [*163D.0020.0002] # SLIGHTLY SMILING FACE
+1F643 ; [*163E.0020.0002] # UPSIDE-DOWN FACE
+1F644 ; [*163F.0020.0002] # FACE WITH ROLLING EYES
+1F645 ; [*1640.0020.0002] # FACE WITH NO GOOD GESTURE
+1F646 ; [*1641.0020.0002] # FACE WITH OK GESTURE
+1F647 ; [*1642.0020.0002] # PERSON BOWING DEEPLY
+1F648 ; [*1643.0020.0002] # SEE-NO-EVIL MONKEY
+1F649 ; [*1644.0020.0002] # HEAR-NO-EVIL MONKEY
+1F64A ; [*1645.0020.0002] # SPEAK-NO-EVIL MONKEY
+1F64B ; [*1646.0020.0002] # HAPPY PERSON RAISING ONE HAND
+1F64C ; [*1647.0020.0002] # PERSON RAISING BOTH HANDS IN CELEBRATION
+1F64D ; [*1648.0020.0002] # PERSON FROWNING
+1F64E ; [*1649.0020.0002] # PERSON WITH POUTING FACE
+1F64F ; [*164A.0020.0002] # PERSON WITH FOLDED HANDS
+1F650 ; [*164B.0020.0002] # NORTH WEST POINTING LEAF
+1F651 ; [*164C.0020.0002] # SOUTH WEST POINTING LEAF
+1F652 ; [*164D.0020.0002] # NORTH EAST POINTING LEAF
+1F653 ; [*164E.0020.0002] # SOUTH EAST POINTING LEAF
+1F654 ; [*164F.0020.0002] # TURNED NORTH WEST POINTING LEAF
+1F655 ; [*1650.0020.0002] # TURNED SOUTH WEST POINTING LEAF
+1F656 ; [*1651.0020.0002] # TURNED NORTH EAST POINTING LEAF
+1F657 ; [*1652.0020.0002] # TURNED SOUTH EAST POINTING LEAF
+1F658 ; [*1653.0020.0002] # NORTH WEST POINTING VINE LEAF
+1F659 ; [*1654.0020.0002] # SOUTH WEST POINTING VINE LEAF
+1F65A ; [*1655.0020.0002] # NORTH EAST POINTING VINE LEAF
+1F65B ; [*1656.0020.0002] # SOUTH EAST POINTING VINE LEAF
+1F65C ; [*1657.0020.0002] # HEAVY NORTH WEST POINTING VINE LEAF
+1F65D ; [*1658.0020.0002] # HEAVY SOUTH WEST POINTING VINE LEAF
+1F65E ; [*1659.0020.0002] # HEAVY NORTH EAST POINTING VINE LEAF
+1F65F ; [*165A.0020.0002] # HEAVY SOUTH EAST POINTING VINE LEAF
+1F660 ; [*165B.0020.0002] # NORTH WEST POINTING BUD
+1F661 ; [*165C.0020.0002] # SOUTH WEST POINTING BUD
+1F662 ; [*165D.0020.0002] # NORTH EAST POINTING BUD
+1F663 ; [*165E.0020.0002] # SOUTH EAST POINTING BUD
+1F664 ; [*165F.0020.0002] # HEAVY NORTH WEST POINTING BUD
+1F665 ; [*1660.0020.0002] # HEAVY SOUTH WEST POINTING BUD
+1F666 ; [*1661.0020.0002] # HEAVY NORTH EAST POINTING BUD
+1F667 ; [*1662.0020.0002] # HEAVY SOUTH EAST POINTING BUD
+1F668 ; [*1663.0020.0002] # HOLLOW QUILT SQUARE ORNAMENT
+1F669 ; [*1664.0020.0002] # HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE
+1F66A ; [*1665.0020.0002] # SOLID QUILT SQUARE ORNAMENT
+1F66B ; [*1666.0020.0002] # SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE
+1F66C ; [*1667.0020.0002] # LEFTWARDS ROCKET
+1F66D ; [*1668.0020.0002] # UPWARDS ROCKET
+1F66E ; [*1669.0020.0002] # RIGHTWARDS ROCKET
+1F66F ; [*166A.0020.0002] # DOWNWARDS ROCKET
+1F670 ; [*166B.0020.0002] # SCRIPT LIGATURE ET ORNAMENT
+1F671 ; [*166C.0020.0002] # HEAVY SCRIPT LIGATURE ET ORNAMENT
+1F672 ; [*166D.0020.0002] # LIGATURE OPEN ET ORNAMENT
+1F673 ; [*166E.0020.0002] # HEAVY LIGATURE OPEN ET ORNAMENT
+1F674 ; [*166F.0020.0002] # HEAVY AMPERSAND ORNAMENT
+1F675 ; [*1670.0020.0002] # SWASH AMPERSAND ORNAMENT
+1F676 ; [*1671.0020.0002] # SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+1F677 ; [*1672.0020.0002] # SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F678 ; [*1673.0020.0002] # SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F679 ; [*1674.0020.0002] # HEAVY INTERROBANG ORNAMENT
+1F67A ; [*1675.0020.0002] # SANS-SERIF INTERROBANG ORNAMENT
+1F67B ; [*1676.0020.0002] # HEAVY SANS-SERIF INTERROBANG ORNAMENT
+1F67C ; [*1677.0020.0002] # VERY HEAVY SOLIDUS
+1F67D ; [*1678.0020.0002] # VERY HEAVY REVERSE SOLIDUS
+1F67E ; [*1679.0020.0002] # CHECKER BOARD
+1F67F ; [*167A.0020.0002] # REVERSE CHECKER BOARD
+1F680 ; [*167B.0020.0002] # ROCKET
+1F681 ; [*167C.0020.0002] # HELICOPTER
+1F682 ; [*167D.0020.0002] # STEAM LOCOMOTIVE
+1F683 ; [*167E.0020.0002] # RAILWAY CAR
+1F684 ; [*167F.0020.0002] # HIGH-SPEED TRAIN
+1F685 ; [*1680.0020.0002] # HIGH-SPEED TRAIN WITH BULLET NOSE
+1F686 ; [*1681.0020.0002] # TRAIN
+1F687 ; [*1682.0020.0002] # METRO
+1F688 ; [*1683.0020.0002] # LIGHT RAIL
+1F689 ; [*1684.0020.0002] # STATION
+1F68A ; [*1685.0020.0002] # TRAM
+1F68B ; [*1686.0020.0002] # TRAM CAR
+1F68C ; [*1687.0020.0002] # BUS
+1F68D ; [*1688.0020.0002] # ONCOMING BUS
+1F68E ; [*1689.0020.0002] # TROLLEYBUS
+1F68F ; [*168A.0020.0002] # BUS STOP
+1F690 ; [*168B.0020.0002] # MINIBUS
+1F691 ; [*168C.0020.0002] # AMBULANCE
+1F692 ; [*168D.0020.0002] # FIRE ENGINE
+1F693 ; [*168E.0020.0002] # POLICE CAR
+1F694 ; [*168F.0020.0002] # ONCOMING POLICE CAR
+1F695 ; [*1690.0020.0002] # TAXI
+1F696 ; [*1691.0020.0002] # ONCOMING TAXI
+1F697 ; [*1692.0020.0002] # AUTOMOBILE
+1F698 ; [*1693.0020.0002] # ONCOMING AUTOMOBILE
+1F699 ; [*1694.0020.0002] # RECREATIONAL VEHICLE
+1F69A ; [*1695.0020.0002] # DELIVERY TRUCK
+1F69B ; [*1696.0020.0002] # ARTICULATED LORRY
+1F69C ; [*1697.0020.0002] # TRACTOR
+1F69D ; [*1698.0020.0002] # MONORAIL
+1F69E ; [*1699.0020.0002] # MOUNTAIN RAILWAY
+1F69F ; [*169A.0020.0002] # SUSPENSION RAILWAY
+1F6A0 ; [*169B.0020.0002] # MOUNTAIN CABLEWAY
+1F6A1 ; [*169C.0020.0002] # AERIAL TRAMWAY
+1F6A2 ; [*169D.0020.0002] # SHIP
+1F6A3 ; [*169E.0020.0002] # ROWBOAT
+1F6A4 ; [*169F.0020.0002] # SPEEDBOAT
+1F6A5 ; [*16A0.0020.0002] # HORIZONTAL TRAFFIC LIGHT
+1F6A6 ; [*16A1.0020.0002] # VERTICAL TRAFFIC LIGHT
+1F6A7 ; [*16A2.0020.0002] # CONSTRUCTION SIGN
+1F6A8 ; [*16A3.0020.0002] # POLICE CARS REVOLVING LIGHT
+1F6A9 ; [*16A4.0020.0002] # TRIANGULAR FLAG ON POST
+1F6AA ; [*16A5.0020.0002] # DOOR
+1F6AB ; [*16A6.0020.0002] # NO ENTRY SIGN
+1F6AC ; [*16A7.0020.0002] # SMOKING SYMBOL
+1F6AD ; [*16A8.0020.0002] # NO SMOKING SYMBOL
+1F6AE ; [*16A9.0020.0002] # PUT LITTER IN ITS PLACE SYMBOL
+1F6AF ; [*16AA.0020.0002] # DO NOT LITTER SYMBOL
+1F6B0 ; [*16AB.0020.0002] # POTABLE WATER SYMBOL
+1F6B1 ; [*16AC.0020.0002] # NON-POTABLE WATER SYMBOL
+1F6B2 ; [*16AD.0020.0002] # BICYCLE
+1F6B3 ; [*16AE.0020.0002] # NO BICYCLES
+1F6B4 ; [*16AF.0020.0002] # BICYCLIST
+1F6B5 ; [*16B0.0020.0002] # MOUNTAIN BICYCLIST
+1F6B6 ; [*16B1.0020.0002] # PEDESTRIAN
+1F6B7 ; [*16B2.0020.0002] # NO PEDESTRIANS
+1F6B8 ; [*16B3.0020.0002] # CHILDREN CROSSING
+1F6B9 ; [*16B4.0020.0002] # MENS SYMBOL
+1F6BA ; [*16B5.0020.0002] # WOMENS SYMBOL
+1F6BB ; [*16B6.0020.0002] # RESTROOM
+1F6BC ; [*16B7.0020.0002] # BABY SYMBOL
+1F6BD ; [*16B8.0020.0002] # TOILET
+1F6BE ; [*16B9.0020.0002] # WATER CLOSET
+1F6BF ; [*16BA.0020.0002] # SHOWER
+1F6C0 ; [*16BB.0020.0002] # BATH
+1F6C1 ; [*16BC.0020.0002] # BATHTUB
+1F6C2 ; [*16BD.0020.0002] # PASSPORT CONTROL
+1F6C3 ; [*16BE.0020.0002] # CUSTOMS
+1F6C4 ; [*16BF.0020.0002] # BAGGAGE CLAIM
+1F6C5 ; [*16C0.0020.0002] # LEFT LUGGAGE
+1F6C6 ; [*16C1.0020.0002] # TRIANGLE WITH ROUNDED CORNERS
+1F6C7 ; [*16C2.0020.0002] # PROHIBITED SIGN
+1F6C8 ; [*16C3.0020.0002] # CIRCLED INFORMATION SOURCE
+1F6C9 ; [*16C4.0020.0002] # BOYS SYMBOL
+1F6CA ; [*16C5.0020.0002] # GIRLS SYMBOL
+1F6CB ; [*16C6.0020.0002] # COUCH AND LAMP
+1F6CC ; [*16C7.0020.0002] # SLEEPING ACCOMMODATION
+1F6CD ; [*16C8.0020.0002] # SHOPPING BAGS
+1F6CE ; [*16C9.0020.0002] # BELLHOP BELL
+1F6CF ; [*16CA.0020.0002] # BED
+1F6D0 ; [*16CB.0020.0002] # PLACE OF WORSHIP
+1F6D1 ; [*16CC.0020.0002] # OCTAGONAL SIGN
+1F6D2 ; [*16CD.0020.0002] # SHOPPING TROLLEY
+1F6E0 ; [*16CE.0020.0002] # HAMMER AND WRENCH
+1F6E1 ; [*16CF.0020.0002] # SHIELD
+1F6E2 ; [*16D0.0020.0002] # OIL DRUM
+1F6E3 ; [*16D1.0020.0002] # MOTORWAY
+1F6E4 ; [*16D2.0020.0002] # RAILWAY TRACK
+1F6E5 ; [*16D3.0020.0002] # MOTOR BOAT
+1F6E6 ; [*16D4.0020.0002] # UP-POINTING MILITARY AIRPLANE
+1F6E7 ; [*16D5.0020.0002] # UP-POINTING AIRPLANE
+1F6E8 ; [*16D6.0020.0002] # UP-POINTING SMALL AIRPLANE
+1F6E9 ; [*16D7.0020.0002] # SMALL AIRPLANE
+1F6EA ; [*16D8.0020.0002] # NORTHEAST-POINTING AIRPLANE
+1F6EB ; [*16D9.0020.0002] # AIRPLANE DEPARTURE
+1F6EC ; [*16DA.0020.0002] # AIRPLANE ARRIVING
+1F6F0 ; [*16DB.0020.0002] # SATELLITE
+1F6F1 ; [*16DC.0020.0002] # ONCOMING FIRE ENGINE
+1F6F2 ; [*16DD.0020.0002] # DIESEL LOCOMOTIVE
+1F6F3 ; [*16DE.0020.0002] # PASSENGER SHIP
+1F6F4 ; [*16DF.0020.0002] # SCOOTER
+1F6F5 ; [*16E0.0020.0002] # MOTOR SCOOTER
+1F6F6 ; [*16E1.0020.0002] # CANOE
+1F700 ; [*16E2.0020.0002] # ALCHEMICAL SYMBOL FOR QUINTESSENCE
+1F701 ; [*16E3.0020.0002] # ALCHEMICAL SYMBOL FOR AIR
+1F702 ; [*16E4.0020.0002] # ALCHEMICAL SYMBOL FOR FIRE
+1F703 ; [*16E5.0020.0002] # ALCHEMICAL SYMBOL FOR EARTH
+1F704 ; [*16E6.0020.0002] # ALCHEMICAL SYMBOL FOR WATER
+1F705 ; [*16E7.0020.0002] # ALCHEMICAL SYMBOL FOR AQUAFORTIS
+1F706 ; [*16E8.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA
+1F707 ; [*16E9.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA-2
+1F708 ; [*16EA.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE
+1F709 ; [*16EB.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE-2
+1F70A ; [*16EC.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR
+1F70B ; [*16ED.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-2
+1F70C ; [*16EE.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-3
+1F70D ; [*16EF.0020.0002] # ALCHEMICAL SYMBOL FOR SULFUR
+1F70E ; [*16F0.0020.0002] # ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
+1F70F ; [*16F1.0020.0002] # ALCHEMICAL SYMBOL FOR BLACK SULFUR
+1F710 ; [*16F2.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
+1F711 ; [*16F3.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
+1F712 ; [*16F4.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
+1F713 ; [*16F5.0020.0002] # ALCHEMICAL SYMBOL FOR CINNABAR
+1F714 ; [*16F6.0020.0002] # ALCHEMICAL SYMBOL FOR SALT
+1F715 ; [*16F7.0020.0002] # ALCHEMICAL SYMBOL FOR NITRE
+1F716 ; [*16F8.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL
+1F717 ; [*16F9.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL-2
+1F718 ; [*16FA.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT
+1F719 ; [*16FB.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT-2
+1F71A ; [*16FC.0020.0002] # ALCHEMICAL SYMBOL FOR GOLD
+1F71B ; [*16FD.0020.0002] # ALCHEMICAL SYMBOL FOR SILVER
+1F71C ; [*16FE.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE
+1F71D ; [*16FF.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE-2
+1F71E ; [*1700.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF IRON
+1F71F ; [*1701.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF IRON
+1F720 ; [*1702.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ORE
+1F721 ; [*1703.0020.0002] # ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
+1F722 ; [*1704.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
+1F723 ; [*1705.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
+1F724 ; [*1706.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
+1F725 ; [*1707.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
+1F726 ; [*1708.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
+1F727 ; [*1709.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
+1F728 ; [*170A.0020.0002] # ALCHEMICAL SYMBOL FOR VERDIGRIS
+1F729 ; [*170B.0020.0002] # ALCHEMICAL SYMBOL FOR TIN ORE
+1F72A ; [*170C.0020.0002] # ALCHEMICAL SYMBOL FOR LEAD ORE
+1F72B ; [*170D.0020.0002] # ALCHEMICAL SYMBOL FOR ANTIMONY ORE
+1F72C ; [*170E.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
+1F72D ; [*170F.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
+1F72E ; [*1710.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
+1F72F ; [*1711.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
+1F730 ; [*1712.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
+1F731 ; [*1713.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
+1F732 ; [*1714.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS
+1F733 ; [*1715.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-2
+1F734 ; [*1716.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-3
+1F735 ; [*1717.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-4
+1F736 ; [*1718.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI
+1F737 ; [*1719.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI-2
+1F738 ; [*171A.0020.0002] # ALCHEMICAL SYMBOL FOR MARCASITE
+1F739 ; [*171B.0020.0002] # ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
+1F73A ; [*171C.0020.0002] # ALCHEMICAL SYMBOL FOR ARSENIC
+1F73B ; [*171D.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR
+1F73C ; [*171E.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR-2
+1F73D ; [*171F.0020.0002] # ALCHEMICAL SYMBOL FOR AURIPIGMENT
+1F73E ; [*1720.0020.0002] # ALCHEMICAL SYMBOL FOR BISMUTH ORE
+1F73F ; [*1721.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR
+1F740 ; [*1722.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR-2
+1F741 ; [*1723.0020.0002] # ALCHEMICAL SYMBOL FOR QUICK LIME
+1F742 ; [*1724.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX
+1F743 ; [*1725.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-2
+1F744 ; [*1726.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-3
+1F745 ; [*1727.0020.0002] # ALCHEMICAL SYMBOL FOR ALUM
+1F746 ; [*1728.0020.0002] # ALCHEMICAL SYMBOL FOR OIL
+1F747 ; [*1729.0020.0002] # ALCHEMICAL SYMBOL FOR SPIRIT
+1F748 ; [*172A.0020.0002] # ALCHEMICAL SYMBOL FOR TINCTURE
+1F749 ; [*172B.0020.0002] # ALCHEMICAL SYMBOL FOR GUM
+1F74A ; [*172C.0020.0002] # ALCHEMICAL SYMBOL FOR WAX
+1F74B ; [*172D.0020.0002] # ALCHEMICAL SYMBOL FOR POWDER
+1F74C ; [*172E.0020.0002] # ALCHEMICAL SYMBOL FOR CALX
+1F74D ; [*172F.0020.0002] # ALCHEMICAL SYMBOL FOR TUTTY
+1F74E ; [*1730.0020.0002] # ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
+1F74F ; [*1731.0020.0002] # ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
+1F750 ; [*1732.0020.0002] # ALCHEMICAL SYMBOL FOR CADUCEUS
+1F751 ; [*1733.0020.0002] # ALCHEMICAL SYMBOL FOR TRIDENT
+1F752 ; [*1734.0020.0002] # ALCHEMICAL SYMBOL FOR STARRED TRIDENT
+1F753 ; [*1735.0020.0002] # ALCHEMICAL SYMBOL FOR LODESTONE
+1F754 ; [*1736.0020.0002] # ALCHEMICAL SYMBOL FOR SOAP
+1F755 ; [*1737.0020.0002] # ALCHEMICAL SYMBOL FOR URINE
+1F756 ; [*1738.0020.0002] # ALCHEMICAL SYMBOL FOR HORSE DUNG
+1F757 ; [*1739.0020.0002] # ALCHEMICAL SYMBOL FOR ASHES
+1F758 ; [*173A.0020.0002] # ALCHEMICAL SYMBOL FOR POT ASHES
+1F759 ; [*173B.0020.0002] # ALCHEMICAL SYMBOL FOR BRICK
+1F75A ; [*173C.0020.0002] # ALCHEMICAL SYMBOL FOR POWDERED BRICK
+1F75B ; [*173D.0020.0002] # ALCHEMICAL SYMBOL FOR AMALGAM
+1F75C ; [*173E.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
+1F75D ; [*173F.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
+1F75E ; [*1740.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATION
+1F75F ; [*1741.0020.0002] # ALCHEMICAL SYMBOL FOR PRECIPITATE
+1F760 ; [*1742.0020.0002] # ALCHEMICAL SYMBOL FOR DISTILL
+1F761 ; [*1743.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE
+1F762 ; [*1744.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE-2
+1F763 ; [*1745.0020.0002] # ALCHEMICAL SYMBOL FOR PURIFY
+1F764 ; [*1746.0020.0002] # ALCHEMICAL SYMBOL FOR PUTREFACTION
+1F765 ; [*1747.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE
+1F766 ; [*1748.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-2
+1F767 ; [*1749.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-3
+1F768 ; [*174A.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-4
+1F769 ; [*174B.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-5
+1F76A ; [*174C.0020.0002] # ALCHEMICAL SYMBOL FOR ALEMBIC
+1F76B ; [*174D.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF MARY
+1F76C ; [*174E.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
+1F76D ; [*174F.0020.0002] # ALCHEMICAL SYMBOL FOR RETORT
+1F76E ; [*1750.0020.0002] # ALCHEMICAL SYMBOL FOR HOUR
+1F76F ; [*1751.0020.0002] # ALCHEMICAL SYMBOL FOR NIGHT
+1F770 ; [*1752.0020.0002] # ALCHEMICAL SYMBOL FOR DAY-NIGHT
+1F771 ; [*1753.0020.0002] # ALCHEMICAL SYMBOL FOR MONTH
+1F772 ; [*1754.0020.0002] # ALCHEMICAL SYMBOL FOR HALF DRAM
+1F773 ; [*1755.0020.0002] # ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780 ; [*1756.0020.0002] # BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE
+1F781 ; [*1757.0020.0002] # BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE
+1F782 ; [*1758.0020.0002] # BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE
+1F783 ; [*1759.0020.0002] # BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE
+1F784 ; [*175A.0020.0002] # BLACK SLIGHTLY SMALL CIRCLE
+1F785 ; [*175B.0020.0002] # MEDIUM BOLD WHITE CIRCLE
+1F786 ; [*175C.0020.0002] # BOLD WHITE CIRCLE
+1F787 ; [*175D.0020.0002] # HEAVY WHITE CIRCLE
+1F788 ; [*175E.0020.0002] # VERY HEAVY WHITE CIRCLE
+1F789 ; [*175F.0020.0002] # EXTREMELY HEAVY WHITE CIRCLE
+1F78A ; [*1760.0020.0002] # WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE
+1F78B ; [*1761.0020.0002] # ROUND TARGET
+1F78C ; [*1762.0020.0002] # BLACK TINY SQUARE
+1F78D ; [*1763.0020.0002] # BLACK SLIGHTLY SMALL SQUARE
+1F78E ; [*1764.0020.0002] # LIGHT WHITE SQUARE
+1F78F ; [*1765.0020.0002] # MEDIUM WHITE SQUARE
+1F790 ; [*1766.0020.0002] # BOLD WHITE SQUARE
+1F791 ; [*1767.0020.0002] # HEAVY WHITE SQUARE
+1F792 ; [*1768.0020.0002] # VERY HEAVY WHITE SQUARE
+1F793 ; [*1769.0020.0002] # EXTREMELY HEAVY WHITE SQUARE
+1F794 ; [*176A.0020.0002] # WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE
+1F795 ; [*176B.0020.0002] # WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE
+1F796 ; [*176C.0020.0002] # SQUARE TARGET
+1F797 ; [*176D.0020.0002] # BLACK TINY DIAMOND
+1F798 ; [*176E.0020.0002] # BLACK VERY SMALL DIAMOND
+1F799 ; [*176F.0020.0002] # BLACK MEDIUM SMALL DIAMOND
+1F79A ; [*1770.0020.0002] # WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND
+1F79B ; [*1771.0020.0002] # WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND
+1F79C ; [*1772.0020.0002] # DIAMOND TARGET
+1F79D ; [*1773.0020.0002] # BLACK TINY LOZENGE
+1F79E ; [*1774.0020.0002] # BLACK VERY SMALL LOZENGE
+1F79F ; [*1775.0020.0002] # BLACK MEDIUM SMALL LOZENGE
+1F7A0 ; [*1776.0020.0002] # WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE
+1F7A1 ; [*1777.0020.0002] # THIN GREEK CROSS
+1F7A2 ; [*1778.0020.0002] # LIGHT GREEK CROSS
+1F7A3 ; [*1779.0020.0002] # MEDIUM GREEK CROSS
+1F7A4 ; [*177A.0020.0002] # BOLD GREEK CROSS
+1F7A5 ; [*177B.0020.0002] # VERY BOLD GREEK CROSS
+1F7A6 ; [*177C.0020.0002] # VERY HEAVY GREEK CROSS
+1F7A7 ; [*177D.0020.0002] # EXTREMELY HEAVY GREEK CROSS
+1F7A8 ; [*177E.0020.0002] # THIN SALTIRE
+1F7A9 ; [*177F.0020.0002] # LIGHT SALTIRE
+1F7AA ; [*1780.0020.0002] # MEDIUM SALTIRE
+1F7AB ; [*1781.0020.0002] # BOLD SALTIRE
+1F7AC ; [*1782.0020.0002] # HEAVY SALTIRE
+1F7AD ; [*1783.0020.0002] # VERY HEAVY SALTIRE
+1F7AE ; [*1784.0020.0002] # EXTREMELY HEAVY SALTIRE
+1F7AF ; [*1785.0020.0002] # LIGHT FIVE SPOKED ASTERISK
+1F7B0 ; [*1786.0020.0002] # MEDIUM FIVE SPOKED ASTERISK
+1F7B1 ; [*1787.0020.0002] # BOLD FIVE SPOKED ASTERISK
+1F7B2 ; [*1788.0020.0002] # HEAVY FIVE SPOKED ASTERISK
+1F7B3 ; [*1789.0020.0002] # VERY HEAVY FIVE SPOKED ASTERISK
+1F7B4 ; [*178A.0020.0002] # EXTREMELY HEAVY FIVE SPOKED ASTERISK
+1F7B5 ; [*178B.0020.0002] # LIGHT SIX SPOKED ASTERISK
+1F7B6 ; [*178C.0020.0002] # MEDIUM SIX SPOKED ASTERISK
+1F7B7 ; [*178D.0020.0002] # BOLD SIX SPOKED ASTERISK
+1F7B8 ; [*178E.0020.0002] # HEAVY SIX SPOKED ASTERISK
+1F7B9 ; [*178F.0020.0002] # VERY HEAVY SIX SPOKED ASTERISK
+1F7BA ; [*1790.0020.0002] # EXTREMELY HEAVY SIX SPOKED ASTERISK
+1F7BB ; [*1791.0020.0002] # LIGHT EIGHT SPOKED ASTERISK
+1F7BC ; [*1792.0020.0002] # MEDIUM EIGHT SPOKED ASTERISK
+1F7BD ; [*1793.0020.0002] # BOLD EIGHT SPOKED ASTERISK
+1F7BE ; [*1794.0020.0002] # HEAVY EIGHT SPOKED ASTERISK
+1F7BF ; [*1795.0020.0002] # VERY HEAVY EIGHT SPOKED ASTERISK
+1F7C0 ; [*1796.0020.0002] # LIGHT THREE POINTED BLACK STAR
+1F7C1 ; [*1797.0020.0002] # MEDIUM THREE POINTED BLACK STAR
+1F7C2 ; [*1798.0020.0002] # THREE POINTED BLACK STAR
+1F7C3 ; [*1799.0020.0002] # MEDIUM THREE POINTED PINWHEEL STAR
+1F7C4 ; [*179A.0020.0002] # LIGHT FOUR POINTED BLACK STAR
+1F7C5 ; [*179B.0020.0002] # MEDIUM FOUR POINTED BLACK STAR
+1F7C6 ; [*179C.0020.0002] # FOUR POINTED BLACK STAR
+1F7C7 ; [*179D.0020.0002] # MEDIUM FOUR POINTED PINWHEEL STAR
+1F7C8 ; [*179E.0020.0002] # REVERSE LIGHT FOUR POINTED PINWHEEL STAR
+1F7C9 ; [*179F.0020.0002] # LIGHT FIVE POINTED BLACK STAR
+1F7CA ; [*17A0.0020.0002] # HEAVY FIVE POINTED BLACK STAR
+1F7CB ; [*17A1.0020.0002] # MEDIUM SIX POINTED BLACK STAR
+1F7CC ; [*17A2.0020.0002] # HEAVY SIX POINTED BLACK STAR
+1F7CD ; [*17A3.0020.0002] # SIX POINTED PINWHEEL STAR
+1F7CE ; [*17A4.0020.0002] # MEDIUM EIGHT POINTED BLACK STAR
+1F7CF ; [*17A5.0020.0002] # HEAVY EIGHT POINTED BLACK STAR
+1F7D0 ; [*17A6.0020.0002] # VERY HEAVY EIGHT POINTED BLACK STAR
+1F7D1 ; [*17A7.0020.0002] # HEAVY EIGHT POINTED PINWHEEL STAR
+1F7D2 ; [*17A8.0020.0002] # LIGHT TWELVE POINTED BLACK STAR
+1F7D3 ; [*17A9.0020.0002] # HEAVY TWELVE POINTED BLACK STAR
+1F7D4 ; [*17AA.0020.0002] # HEAVY TWELVE POINTED PINWHEEL STAR
+1F800 ; [*17AB.0020.0002] # LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F801 ; [*17AC.0020.0002] # UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F802 ; [*17AD.0020.0002] # RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F803 ; [*17AE.0020.0002] # DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F804 ; [*17AF.0020.0002] # LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F805 ; [*17B0.0020.0002] # UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F806 ; [*17B1.0020.0002] # RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F807 ; [*17B2.0020.0002] # DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F808 ; [*17B3.0020.0002] # LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F809 ; [*17B4.0020.0002] # UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80A ; [*17B5.0020.0002] # RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80B ; [*17B6.0020.0002] # DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810 ; [*17B7.0020.0002] # LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F811 ; [*17B8.0020.0002] # UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F812 ; [*17B9.0020.0002] # RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F813 ; [*17BA.0020.0002] # DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F814 ; [*17BB.0020.0002] # LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F815 ; [*17BC.0020.0002] # UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F816 ; [*17BD.0020.0002] # RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F817 ; [*17BE.0020.0002] # DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F818 ; [*17BF.0020.0002] # HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F819 ; [*17C0.0020.0002] # HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81A ; [*17C1.0020.0002] # HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81B ; [*17C2.0020.0002] # HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81C ; [*17C3.0020.0002] # HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81D ; [*17C4.0020.0002] # HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81E ; [*17C5.0020.0002] # HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81F ; [*17C6.0020.0002] # HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F820 ; [*17C7.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F821 ; [*17C8.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F822 ; [*17C9.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F823 ; [*17CA.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F824 ; [*17CB.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F825 ; [*17CC.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F826 ; [*17CD.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F827 ; [*17CE.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F828 ; [*17CF.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F829 ; [*17D0.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82A ; [*17D1.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82B ; [*17D2.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82C ; [*17D3.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82D ; [*17D4.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82E ; [*17D5.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82F ; [*17D6.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F830 ; [*17D7.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F831 ; [*17D8.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F832 ; [*17D9.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F833 ; [*17DA.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F834 ; [*17DB.0020.0002] # LEFTWARDS FINGER-POST ARROW
+1F835 ; [*17DC.0020.0002] # UPWARDS FINGER-POST ARROW
+1F836 ; [*17DD.0020.0002] # RIGHTWARDS FINGER-POST ARROW
+1F837 ; [*17DE.0020.0002] # DOWNWARDS FINGER-POST ARROW
+1F838 ; [*17DF.0020.0002] # LEFTWARDS SQUARED ARROW
+1F839 ; [*17E0.0020.0002] # UPWARDS SQUARED ARROW
+1F83A ; [*17E1.0020.0002] # RIGHTWARDS SQUARED ARROW
+1F83B ; [*17E2.0020.0002] # DOWNWARDS SQUARED ARROW
+1F83C ; [*17E3.0020.0002] # LEFTWARDS COMPRESSED ARROW
+1F83D ; [*17E4.0020.0002] # UPWARDS COMPRESSED ARROW
+1F83E ; [*17E5.0020.0002] # RIGHTWARDS COMPRESSED ARROW
+1F83F ; [*17E6.0020.0002] # DOWNWARDS COMPRESSED ARROW
+1F840 ; [*17E7.0020.0002] # LEFTWARDS HEAVY COMPRESSED ARROW
+1F841 ; [*17E8.0020.0002] # UPWARDS HEAVY COMPRESSED ARROW
+1F842 ; [*17E9.0020.0002] # RIGHTWARDS HEAVY COMPRESSED ARROW
+1F843 ; [*17EA.0020.0002] # DOWNWARDS HEAVY COMPRESSED ARROW
+1F844 ; [*17EB.0020.0002] # LEFTWARDS HEAVY ARROW
+1F845 ; [*17EC.0020.0002] # UPWARDS HEAVY ARROW
+1F846 ; [*17ED.0020.0002] # RIGHTWARDS HEAVY ARROW
+1F847 ; [*17EE.0020.0002] # DOWNWARDS HEAVY ARROW
+1F850 ; [*17EF.0020.0002] # LEFTWARDS SANS-SERIF ARROW
+1F851 ; [*17F0.0020.0002] # UPWARDS SANS-SERIF ARROW
+1F852 ; [*17F1.0020.0002] # RIGHTWARDS SANS-SERIF ARROW
+1F853 ; [*17F2.0020.0002] # DOWNWARDS SANS-SERIF ARROW
+1F854 ; [*17F3.0020.0002] # NORTH WEST SANS-SERIF ARROW
+1F855 ; [*17F4.0020.0002] # NORTH EAST SANS-SERIF ARROW
+1F856 ; [*17F5.0020.0002] # SOUTH EAST SANS-SERIF ARROW
+1F857 ; [*17F6.0020.0002] # SOUTH WEST SANS-SERIF ARROW
+1F858 ; [*17F7.0020.0002] # LEFT RIGHT SANS-SERIF ARROW
+1F859 ; [*17F8.0020.0002] # UP DOWN SANS-SERIF ARROW
+1F860 ; [*17F9.0020.0002] # WIDE-HEADED LEFTWARDS LIGHT BARB ARROW
+1F861 ; [*17FA.0020.0002] # WIDE-HEADED UPWARDS LIGHT BARB ARROW
+1F862 ; [*17FB.0020.0002] # WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW
+1F863 ; [*17FC.0020.0002] # WIDE-HEADED DOWNWARDS LIGHT BARB ARROW
+1F864 ; [*17FD.0020.0002] # WIDE-HEADED NORTH WEST LIGHT BARB ARROW
+1F865 ; [*17FE.0020.0002] # WIDE-HEADED NORTH EAST LIGHT BARB ARROW
+1F866 ; [*17FF.0020.0002] # WIDE-HEADED SOUTH EAST LIGHT BARB ARROW
+1F867 ; [*1800.0020.0002] # WIDE-HEADED SOUTH WEST LIGHT BARB ARROW
+1F868 ; [*1801.0020.0002] # WIDE-HEADED LEFTWARDS BARB ARROW
+1F869 ; [*1802.0020.0002] # WIDE-HEADED UPWARDS BARB ARROW
+1F86A ; [*1803.0020.0002] # WIDE-HEADED RIGHTWARDS BARB ARROW
+1F86B ; [*1804.0020.0002] # WIDE-HEADED DOWNWARDS BARB ARROW
+1F86C ; [*1805.0020.0002] # WIDE-HEADED NORTH WEST BARB ARROW
+1F86D ; [*1806.0020.0002] # WIDE-HEADED NORTH EAST BARB ARROW
+1F86E ; [*1807.0020.0002] # WIDE-HEADED SOUTH EAST BARB ARROW
+1F86F ; [*1808.0020.0002] # WIDE-HEADED SOUTH WEST BARB ARROW
+1F870 ; [*1809.0020.0002] # WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW
+1F871 ; [*180A.0020.0002] # WIDE-HEADED UPWARDS MEDIUM BARB ARROW
+1F872 ; [*180B.0020.0002] # WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW
+1F873 ; [*180C.0020.0002] # WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW
+1F874 ; [*180D.0020.0002] # WIDE-HEADED NORTH WEST MEDIUM BARB ARROW
+1F875 ; [*180E.0020.0002] # WIDE-HEADED NORTH EAST MEDIUM BARB ARROW
+1F876 ; [*180F.0020.0002] # WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW
+1F877 ; [*1810.0020.0002] # WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW
+1F878 ; [*1811.0020.0002] # WIDE-HEADED LEFTWARDS HEAVY BARB ARROW
+1F879 ; [*1812.0020.0002] # WIDE-HEADED UPWARDS HEAVY BARB ARROW
+1F87A ; [*1813.0020.0002] # WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW
+1F87B ; [*1814.0020.0002] # WIDE-HEADED DOWNWARDS HEAVY BARB ARROW
+1F87C ; [*1815.0020.0002] # WIDE-HEADED NORTH WEST HEAVY BARB ARROW
+1F87D ; [*1816.0020.0002] # WIDE-HEADED NORTH EAST HEAVY BARB ARROW
+1F87E ; [*1817.0020.0002] # WIDE-HEADED SOUTH EAST HEAVY BARB ARROW
+1F87F ; [*1818.0020.0002] # WIDE-HEADED SOUTH WEST HEAVY BARB ARROW
+1F880 ; [*1819.0020.0002] # WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW
+1F881 ; [*181A.0020.0002] # WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW
+1F882 ; [*181B.0020.0002] # WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW
+1F883 ; [*181C.0020.0002] # WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW
+1F884 ; [*181D.0020.0002] # WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW
+1F885 ; [*181E.0020.0002] # WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW
+1F886 ; [*181F.0020.0002] # WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW
+1F887 ; [*1820.0020.0002] # WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890 ; [*1821.0020.0002] # LEFTWARDS TRIANGLE ARROWHEAD
+1F891 ; [*1822.0020.0002] # UPWARDS TRIANGLE ARROWHEAD
+1F892 ; [*1823.0020.0002] # RIGHTWARDS TRIANGLE ARROWHEAD
+1F893 ; [*1824.0020.0002] # DOWNWARDS TRIANGLE ARROWHEAD
+1F894 ; [*1825.0020.0002] # LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F895 ; [*1826.0020.0002] # UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F896 ; [*1827.0020.0002] # RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F897 ; [*1828.0020.0002] # DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F898 ; [*1829.0020.0002] # LEFTWARDS ARROW WITH NOTCHED TAIL
+1F899 ; [*182A.0020.0002] # UPWARDS ARROW WITH NOTCHED TAIL
+1F89A ; [*182B.0020.0002] # RIGHTWARDS ARROW WITH NOTCHED TAIL
+1F89B ; [*182C.0020.0002] # DOWNWARDS ARROW WITH NOTCHED TAIL
+1F89C ; [*182D.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE
+1F89D ; [*182E.0020.0002] # HEAVY ARROW SHAFT WIDTH TWO THIRDS
+1F89E ; [*182F.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE HALF
+1F89F ; [*1830.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE THIRD
+1F8A0 ; [*1831.0020.0002] # LEFTWARDS BOTTOM-SHADED WHITE ARROW
+1F8A1 ; [*1832.0020.0002] # RIGHTWARDS BOTTOM SHADED WHITE ARROW
+1F8A2 ; [*1833.0020.0002] # LEFTWARDS TOP SHADED WHITE ARROW
+1F8A3 ; [*1834.0020.0002] # RIGHTWARDS TOP SHADED WHITE ARROW
+1F8A4 ; [*1835.0020.0002] # LEFTWARDS LEFT-SHADED WHITE ARROW
+1F8A5 ; [*1836.0020.0002] # RIGHTWARDS RIGHT-SHADED WHITE ARROW
+1F8A6 ; [*1837.0020.0002] # LEFTWARDS RIGHT-SHADED WHITE ARROW
+1F8A7 ; [*1838.0020.0002] # RIGHTWARDS LEFT-SHADED WHITE ARROW
+1F8A8 ; [*1839.0020.0002] # LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
+1F8A9 ; [*183A.0020.0002] # RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW
+1F8AA ; [*183B.0020.0002] # LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW
+1F8AB ; [*183C.0020.0002] # RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW
+1F8AC ; [*183D.0020.0002] # WHITE ARROW SHAFT WIDTH ONE
+1F8AD ; [*183E.0020.0002] # WHITE ARROW SHAFT WIDTH TWO THIRDS
+1F910 ; [*15A9.0020.0002] # ZIPPER-MOUTH FACE
+1F911 ; [*15AA.0020.0002] # MONEY-MOUTH FACE
+1F912 ; [*15AB.0020.0002] # FACE WITH THERMOMETER
+1F913 ; [*15AC.0020.0002] # NERD FACE
+1F914 ; [*15AD.0020.0002] # THINKING FACE
+1F915 ; [*15AE.0020.0002] # FACE WITH HEAD-BANDAGE
+1F916 ; [*15AF.0020.0002] # ROBOT FACE
+1F917 ; [*15B0.0020.0002] # HUGGING FACE
+1F918 ; [*15B1.0020.0002] # SIGN OF THE HORNS
+1F919 ; [*15B2.0020.0002] # CALL ME HAND
+1F91A ; [*15B3.0020.0002] # RAISED BACK OF HAND
+1F91B ; [*15B4.0020.0002] # LEFT-FACING FIST
+1F91C ; [*15B5.0020.0002] # RIGHT-FACING FIST
+1F91D ; [*15B6.0020.0002] # HANDSHAKE
+1F91E ; [*15B7.0020.0002] # HAND WITH INDEX AND MIDDLE FINGERS CROSSED
+1F920 ; [*15B8.0020.0002] # FACE WITH COWBOY HAT
+1F921 ; [*15B9.0020.0002] # CLOWN FACE
+1F922 ; [*15BA.0020.0002] # NAUSEATED FACE
+1F923 ; [*15BB.0020.0002] # ROLLING ON THE FLOOR LAUGHING
+1F924 ; [*15BC.0020.0002] # DROOLING FACE
+1F925 ; [*15BD.0020.0002] # LYING FACE
+1F926 ; [*15BE.0020.0002] # FACE PALM
+1F927 ; [*15BF.0020.0002] # SNEEZING FACE
+1F930 ; [*15C0.0020.0002] # PREGNANT WOMAN
+1F933 ; [*15C1.0020.0002] # SELFIE
+1F934 ; [*15C2.0020.0002] # PRINCE
+1F935 ; [*15C3.0020.0002] # MAN IN TUXEDO
+1F936 ; [*15C4.0020.0002] # MOTHER CHRISTMAS
+1F937 ; [*15C5.0020.0002] # SHRUG
+1F938 ; [*15C6.0020.0002] # PERSON DOING CARTWHEEL
+1F939 ; [*15C7.0020.0002] # JUGGLING
+1F93A ; [*15C8.0020.0002] # FENCER
+1F93B ; [*15C9.0020.0002] # MODERN PENTATHLON
+1F93C ; [*15CA.0020.0002] # WRESTLERS
+1F93D ; [*15CB.0020.0002] # WATER POLO
+1F93E ; [*15CC.0020.0002] # HANDBALL
+1F940 ; [*15CD.0020.0002] # WILTED FLOWER
+1F941 ; [*15CE.0020.0002] # DRUM WITH DRUMSTICKS
+1F942 ; [*15CF.0020.0002] # CLINKING GLASSES
+1F943 ; [*15D0.0020.0002] # TUMBLER GLASS
+1F944 ; [*15D1.0020.0002] # SPOON
+1F945 ; [*15D2.0020.0002] # GOAL NET
+1F946 ; [*15D3.0020.0002] # RIFLE
+1F947 ; [*15D4.0020.0002] # FIRST PLACE MEDAL
+1F948 ; [*15D5.0020.0002] # SECOND PLACE MEDAL
+1F949 ; [*15D6.0020.0002] # THIRD PLACE MEDAL
+1F94A ; [*15D7.0020.0002] # BOXING GLOVE
+1F94B ; [*15D8.0020.0002] # MARTIAL ARTS UNIFORM
+1F950 ; [*15D9.0020.0002] # CROISSANT
+1F951 ; [*15DA.0020.0002] # AVOCADO
+1F952 ; [*15DB.0020.0002] # CUCUMBER
+1F953 ; [*15DC.0020.0002] # BACON
+1F954 ; [*15DD.0020.0002] # POTATO
+1F955 ; [*15DE.0020.0002] # CARROT
+1F956 ; [*15DF.0020.0002] # BAGUETTE BREAD
+1F957 ; [*15E0.0020.0002] # GREEN SALAD
+1F958 ; [*15E1.0020.0002] # SHALLOW PAN OF FOOD
+1F959 ; [*15E2.0020.0002] # STUFFED FLATBREAD
+1F95A ; [*15E3.0020.0002] # EGG
+1F95B ; [*15E4.0020.0002] # GLASS OF MILK
+1F95C ; [*15E5.0020.0002] # PEANUTS
+1F95D ; [*15E6.0020.0002] # KIWIFRUIT
+1F95E ; [*15E7.0020.0002] # PANCAKES
+1F980 ; [*15E8.0020.0002] # CRAB
+1F981 ; [*15E9.0020.0002] # LION FACE
+1F982 ; [*15EA.0020.0002] # SCORPION
+1F983 ; [*15EB.0020.0002] # TURKEY
+1F984 ; [*15EC.0020.0002] # UNICORN FACE
+1F985 ; [*15ED.0020.0002] # EAGLE
+1F986 ; [*15EE.0020.0002] # DUCK
+1F987 ; [*15EF.0020.0002] # BAT
+1F988 ; [*15F0.0020.0002] # SHARK
+1F989 ; [*15F1.0020.0002] # OWL
+1F98A ; [*15F2.0020.0002] # FOX FACE
+1F98B ; [*15F3.0020.0002] # BUTTERFLY
+1F98C ; [*15F4.0020.0002] # DEER
+1F98D ; [*15F5.0020.0002] # GORILLA
+1F98E ; [*15F6.0020.0002] # LIZARD
+1F98F ; [*15F7.0020.0002] # RHINOCEROS
+1F990 ; [*15F8.0020.0002] # SHRIMP
+1F991 ; [*15F9.0020.0002] # SQUID
+1F9C0 ; [*15FA.0020.0002] # CHEESE WEDGE
0332 ; [.0000.0021.0002] # COMBINING LOW LINE
0313 ; [.0000.0022.0002] # COMBINING COMMA ABOVE
0343 ; [.0000.0022.0002] # COMBINING GREEK KORONIS
@@ -6863,6 +7832,7 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
1DCE ; [.0000.0033.0002] # COMBINING OGONEK ABOVE
1DD1 ; [.0000.0033.0002] # COMBINING UR ABOVE
1DF5 ; [.0000.0033.0002] # COMBINING UP TACK ABOVE
+1DFB ; [.0000.0033.0002] # COMBINING DELETION MARK
1DFE ; [.0000.0033.0002] # COMBINING LEFT ARROWHEAD ABOVE
20F0 ; [.0000.0033.0002] # COMBINING ASTERISK ABOVE
2CEF ; [.0000.0033.0002] # COPTIC COMBINING NI ABOVE
@@ -6975,6 +7945,7 @@ FE29 ; [.0000.004E.0002] # COMBINING TILDE LEFT HALF BELOW
0361 ; [.0000.004F.0002] # COMBINING DOUBLE INVERTED BREVE
FE20 ; [.0000.004F.0002] # COMBINING LIGATURE LEFT HALF
0483 ; [.0000.0050.0002] # COMBINING CYRILLIC TITLO
+FE2E ; [.0000.0050.0002] # COMBINING CYRILLIC TITLO LEFT HALF
A66F ; [.0000.0051.0002] # COMBINING CYRILLIC VZMET
05B0 ; [.0000.0052.0002] # HEBREW POINT SHEVA
05B1 ; [.0000.0053.0002] # HEBREW POINT HATAF SEGOL
@@ -7055,8 +8026,9 @@ FC62 ; [.0000.007D.001A][.0000.0080.001A] # ARABIC LIGATURE SHADDA WITH KASRA I
11237 ; [.0000.0080.0002] # KHOJKI SIGN SHADDA
FE7D ; [.0000.0080.0018] # ARABIC SHADDA MEDIAL FORM
FE7C ; [.0000.0080.001A] # ARABIC SHADDA ISOLATED FORM
-FC63 ; [.0000.0080.001A][.0000.0097.001A] # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC63 ; [.0000.0080.001A][.0000.0098.001A] # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
0652 ; [.0000.0081.0002] # ARABIC SUKUN
+1123E ; [.0000.0081.0002] # KHOJKI SIGN SUKUN
FE7F ; [.0000.0081.0018] # ARABIC SUKUN MEDIAL FORM
FE7E ; [.0000.0081.001A] # ARABIC SUKUN ISOLATED FORM
0653 ; [.0000.0082.0002] # ARABIC MADDAH ABOVE
@@ -7073,19430 +8045,21157 @@ FE7E ; [.0000.0081.001A] # ARABIC SUKUN ISOLATED FORM
065C ; [.0000.008D.0002] # ARABIC VOWEL SIGN DOT BELOW
065D ; [.0000.008E.0002] # ARABIC REVERSED DAMMA
065E ; [.0000.008F.0002] # ARABIC FATHA WITH TWO DOTS
-08F7 ; [.0000.0090.0002] # ARABIC LEFT ARROWHEAD ABOVE
-08F8 ; [.0000.0091.0002] # ARABIC RIGHT ARROWHEAD ABOVE
-08FD ; [.0000.0092.0002] # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
-08FB ; [.0000.0093.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE
-08FC ; [.0000.0094.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
-08F9 ; [.0000.0095.0002] # ARABIC LEFT ARROWHEAD BELOW
-08FA ; [.0000.0096.0002] # ARABIC RIGHT ARROWHEAD BELOW
-0670 ; [.0000.0097.0002] # ARABIC LETTER SUPERSCRIPT ALEF
-0711 ; [.0000.0098.0002] # SYRIAC LETTER SUPERSCRIPT ALAPH
-0730 ; [.0000.0099.0002] # SYRIAC PTHAHA ABOVE
-0731 ; [.0000.009A.0002] # SYRIAC PTHAHA BELOW
-0732 ; [.0000.009B.0002] # SYRIAC PTHAHA DOTTED
-0733 ; [.0000.009C.0002] # SYRIAC ZQAPHA ABOVE
-0734 ; [.0000.009D.0002] # SYRIAC ZQAPHA BELOW
-0735 ; [.0000.009E.0002] # SYRIAC ZQAPHA DOTTED
-0736 ; [.0000.009F.0002] # SYRIAC RBASA ABOVE
-0737 ; [.0000.00A0.0002] # SYRIAC RBASA BELOW
-0738 ; [.0000.00A1.0002] # SYRIAC DOTTED ZLAMA HORIZONTAL
-0739 ; [.0000.00A2.0002] # SYRIAC DOTTED ZLAMA ANGULAR
-073A ; [.0000.00A3.0002] # SYRIAC HBASA ABOVE
-073B ; [.0000.00A4.0002] # SYRIAC HBASA BELOW
-073C ; [.0000.00A5.0002] # SYRIAC HBASA-ESASA DOTTED
-073D ; [.0000.00A6.0002] # SYRIAC ESASA ABOVE
-073E ; [.0000.00A7.0002] # SYRIAC ESASA BELOW
-073F ; [.0000.00A8.0002] # SYRIAC RWAHA
-07EB ; [.0000.00A9.0002] # NKO COMBINING SHORT HIGH TONE
-07EC ; [.0000.00AA.0002] # NKO COMBINING SHORT LOW TONE
-07ED ; [.0000.00AB.0002] # NKO COMBINING SHORT RISING TONE
-07EE ; [.0000.00AC.0002] # NKO COMBINING LONG DESCENDING TONE
-07EF ; [.0000.00AD.0002] # NKO COMBINING LONG HIGH TONE
-07F0 ; [.0000.00AE.0002] # NKO COMBINING LONG LOW TONE
-07F1 ; [.0000.00AF.0002] # NKO COMBINING LONG RISING TONE
-07F2 ; [.0000.00B0.0002] # NKO COMBINING NASALIZATION MARK
-07F3 ; [.0000.00B1.0002] # NKO COMBINING DOUBLE DOT ABOVE
-135F ; [.0000.00B2.0002] # ETHIOPIC COMBINING GEMINATION MARK
-135E ; [.0000.00B3.0002] # ETHIOPIC COMBINING VOWEL LENGTH MARK
-135D ; [.0000.00B4.0002] # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
-A6F0 ; [.0000.00B5.0002] # BAMUM COMBINING MARK KOQNDON
-A6F1 ; [.0000.00B6.0002] # BAMUM COMBINING MARK TUKWENTIS
-16AF0 ; [.0000.00B7.0002] # BASSA VAH COMBINING HIGH TONE
-16AF1 ; [.0000.00B8.0002] # BASSA VAH COMBINING LOW TONE
-16AF2 ; [.0000.00B9.0002] # BASSA VAH COMBINING MID TONE
-16AF3 ; [.0000.00BA.0002] # BASSA VAH COMBINING LOW-MID TONE
-16AF4 ; [.0000.00BB.0002] # BASSA VAH COMBINING HIGH-LOW TONE
-093C ; [.0000.00BC.0002] # DEVANAGARI SIGN NUKTA
-09BC ; [.0000.00BC.0002] # BENGALI SIGN NUKTA
-0A3C ; [.0000.00BC.0002] # GURMUKHI SIGN NUKTA
-0ABC ; [.0000.00BC.0002] # GUJARATI SIGN NUKTA
-0B3C ; [.0000.00BC.0002] # ORIYA SIGN NUKTA
-0CBC ; [.0000.00BC.0002] # KANNADA SIGN NUKTA
-1B34 ; [.0000.00BC.0002] # BALINESE SIGN REREKAN
-1BE6 ; [.0000.00BC.0002] # BATAK SIGN TOMPI
-1C37 ; [.0000.00BC.0002] # LEPCHA SIGN NUKTA
-A9B3 ; [.0000.00BC.0002] # JAVANESE SIGN CECAK TELU
-110BA ; [.0000.00BC.0002] # KAITHI SIGN NUKTA
-11173 ; [.0000.00BC.0002] # MAHAJANI SIGN NUKTA
-11236 ; [.0000.00BC.0002] # KHOJKI SIGN NUKTA
-112E9 ; [.0000.00BC.0002] # KHUDAWADI SIGN NUKTA
-1133C ; [.0000.00BC.0002] # GRANTHA SIGN NUKTA
-114C3 ; [.0000.00BC.0002] # TIRHUTA SIGN NUKTA
-115C0 ; [.0000.00BC.0002] # SIDDHAM SIGN NUKTA
-116B7 ; [.0000.00BC.0002] # TAKRI SIGN NUKTA
-0900 ; [.0000.00BD.0002] # DEVANAGARI SIGN INVERTED CANDRABINDU
-0901 ; [.0000.00BD.0002] # DEVANAGARI SIGN CANDRABINDU
-0981 ; [.0000.00BD.0002] # BENGALI SIGN CANDRABINDU
-0A01 ; [.0000.00BD.0002] # GURMUKHI SIGN ADAK BINDI
-0A81 ; [.0000.00BD.0002] # GUJARATI SIGN CANDRABINDU
-0B01 ; [.0000.00BD.0002] # ORIYA SIGN CANDRABINDU
-0C00 ; [.0000.00BD.0002] # TELUGU SIGN COMBINING CANDRABINDU ABOVE
-0C01 ; [.0000.00BD.0002] # TELUGU SIGN CANDRABINDU
-0C81 ; [.0000.00BD.0002] # KANNADA SIGN CANDRABINDU
-0D01 ; [.0000.00BD.0002] # MALAYALAM SIGN CANDRABINDU
-1B00 ; [.0000.00BD.0002] # BALINESE SIGN ULU RICEM
-1B01 ; [.0000.00BD.0002] # BALINESE SIGN ULU CANDRA
-A980 ; [.0000.00BD.0002] # JAVANESE SIGN PANYANGGA
-11000 ; [.0000.00BD.0002] # BRAHMI SIGN CANDRABINDU
-11080 ; [.0000.00BD.0002] # KAITHI SIGN CANDRABINDU
-11100 ; [.0000.00BD.0002] # CHAKMA SIGN CANDRABINDU
-11180 ; [.0000.00BD.0002] # SHARADA SIGN CANDRABINDU
-11301 ; [.0000.00BD.0002] # GRANTHA SIGN CANDRABINDU
-114BF ; [.0000.00BD.0002] # TIRHUTA SIGN CANDRABINDU
-115BC ; [.0000.00BD.0002] # SIDDHAM SIGN CANDRABINDU
-11640 ; [.0000.00BD.0002] # MODI SIGN ARDHACANDRA
-0902 ; [.0000.00BE.0002] # DEVANAGARI SIGN ANUSVARA
-0982 ; [.0000.00BE.0002] # BENGALI SIGN ANUSVARA
-0A02 ; [.0000.00BE.0002] # GURMUKHI SIGN BINDI
-0A82 ; [.0000.00BE.0002] # GUJARATI SIGN ANUSVARA
-0B02 ; [.0000.00BE.0002] # ORIYA SIGN ANUSVARA
-0B82 ; [.0000.00BE.0002] # TAMIL SIGN ANUSVARA
-0C02 ; [.0000.00BE.0002] # TELUGU SIGN ANUSVARA
-0C82 ; [.0000.00BE.0002] # KANNADA SIGN ANUSVARA
-0D02 ; [.0000.00BE.0002] # MALAYALAM SIGN ANUSVARA
-0D82 ; [.0000.00BE.0002] # SINHALA SIGN ANUSVARAYA
-0F7E ; [.0000.00BE.0002] # TIBETAN SIGN RJES SU NGA RO
-1036 ; [.0000.00BE.0002] # MYANMAR SIGN ANUSVARA
-17C6 ; [.0000.00BE.0002] # KHMER SIGN NIKAHIT
-1A74 ; [.0000.00BE.0002] # TAI THAM SIGN MAI KANG
-1B02 ; [.0000.00BE.0002] # BALINESE SIGN CECEK
-1B80 ; [.0000.00BE.0002] # SUNDANESE SIGN PANYECEK
-1CED ; [.0000.00BE.0002] # VEDIC SIGN TIRYAK
-A80B ; [.0000.00BE.0002] # SYLOTI NAGRI SIGN ANUSVARA
-A880 ; [.0000.00BE.0002] # SAURASHTRA SIGN ANUSVARA
-A981 ; [.0000.00BE.0002] # JAVANESE SIGN CECAK
-10A0E ; [.0000.00BE.0002] # KHAROSHTHI SIGN ANUSVARA
-11001 ; [.0000.00BE.0002] # BRAHMI SIGN ANUSVARA
-11081 ; [.0000.00BE.0002] # KAITHI SIGN ANUSVARA
-11101 ; [.0000.00BE.0002] # CHAKMA SIGN ANUSVARA
-11181 ; [.0000.00BE.0002] # SHARADA SIGN ANUSVARA
-11234 ; [.0000.00BE.0002] # KHOJKI SIGN ANUSVARA
-112DF ; [.0000.00BE.0002] # KHUDAWADI SIGN ANUSVARA
-11302 ; [.0000.00BE.0002] # GRANTHA SIGN ANUSVARA
-114C0 ; [.0000.00BE.0002] # TIRHUTA SIGN ANUSVARA
-115BD ; [.0000.00BE.0002] # SIDDHAM SIGN ANUSVARA
-1163D ; [.0000.00BE.0002] # MODI SIGN ANUSVARA
-116AB ; [.0000.00BE.0002] # TAKRI SIGN ANUSVARA
-0903 ; [.0000.00BF.0002] # DEVANAGARI SIGN VISARGA
-0983 ; [.0000.00BF.0002] # BENGALI SIGN VISARGA
-0A03 ; [.0000.00BF.0002] # GURMUKHI SIGN VISARGA
-0A83 ; [.0000.00BF.0002] # GUJARATI SIGN VISARGA
-0B03 ; [.0000.00BF.0002] # ORIYA SIGN VISARGA
-0C03 ; [.0000.00BF.0002] # TELUGU SIGN VISARGA
-0C83 ; [.0000.00BF.0002] # KANNADA SIGN VISARGA
-0D03 ; [.0000.00BF.0002] # MALAYALAM SIGN VISARGA
-0D83 ; [.0000.00BF.0002] # SINHALA SIGN VISARGAYA
-0F7F ; [.0000.00BF.0002] # TIBETAN SIGN RNAM BCAD
-1038 ; [.0000.00BF.0002] # MYANMAR SIGN VISARGA
-17C7 ; [.0000.00BF.0002] # KHMER SIGN REAHMUK
-1B04 ; [.0000.00BF.0002] # BALINESE SIGN BISAH
-1B82 ; [.0000.00BF.0002] # SUNDANESE SIGN PANGWISAD
-1CF2 ; [.0000.00BF.0002] # VEDIC SIGN ARDHAVISARGA
-1CF3 ; [.0000.00BF.0002] # VEDIC SIGN ROTATED ARDHAVISARGA
-A881 ; [.0000.00BF.0002] # SAURASHTRA SIGN VISARGA
-A983 ; [.0000.00BF.0002] # JAVANESE SIGN WIGNYAN
-10A0F ; [.0000.00BF.0002] # KHAROSHTHI SIGN VISARGA
-11002 ; [.0000.00BF.0002] # BRAHMI SIGN VISARGA
-11082 ; [.0000.00BF.0002] # KAITHI SIGN VISARGA
-11102 ; [.0000.00BF.0002] # CHAKMA SIGN VISARGA
-11182 ; [.0000.00BF.0002] # SHARADA SIGN VISARGA
-11303 ; [.0000.00BF.0002] # GRANTHA SIGN VISARGA
-114C1 ; [.0000.00BF.0002] # TIRHUTA SIGN VISARGA
-115BE ; [.0000.00BF.0002] # SIDDHAM SIGN VISARGA
-1163E ; [.0000.00BF.0002] # MODI SIGN VISARGA
-116AC ; [.0000.00BF.0002] # TAKRI SIGN VISARGA
-0A70 ; [.0000.00C0.0002] # GURMUKHI TIPPI
-0A71 ; [.0000.00C1.0002] # GURMUKHI ADDAK
-1B03 ; [.0000.00C2.0002] # BALINESE SIGN SURANG
-A982 ; [.0000.00C3.0002] # JAVANESE SIGN LAYAR
-1B81 ; [.0000.00C4.0002] # SUNDANESE SIGN PANGLAYAR
-ABEC ; [.0000.00C5.0002] # MEETEI MAYEK LUM IYEK
-10A38 ; [.0000.00C6.0002] # KHAROSHTHI SIGN BAR ABOVE
-10A39 ; [.0000.00C7.0002] # KHAROSHTHI SIGN CAUDA
-10A3A ; [.0000.00C8.0002] # KHAROSHTHI SIGN DOT BELOW
-0E4E ; [.0000.00C9.0002] # THAI CHARACTER YAMAKKAN
-0E47 ; [.0000.00CA.0002] # THAI CHARACTER MAITAIKHU
-0E48 ; [.0000.00CB.0002] # THAI CHARACTER MAI EK
-0E49 ; [.0000.00CC.0002] # THAI CHARACTER MAI THO
-0E4A ; [.0000.00CD.0002] # THAI CHARACTER MAI TRI
-0E4B ; [.0000.00CE.0002] # THAI CHARACTER MAI CHATTAWA
-0E4C ; [.0000.00CF.0002] # THAI CHARACTER THANTHAKHAT
-0E4D ; [.0000.00D0.0002] # THAI CHARACTER NIKHAHIT
-0EC8 ; [.0000.00D1.0002] # LAO TONE MAI EK
-0EC9 ; [.0000.00D2.0002] # LAO TONE MAI THO
-0ECA ; [.0000.00D3.0002] # LAO TONE MAI TI
-0ECB ; [.0000.00D4.0002] # LAO TONE MAI CATAWA
-0ECC ; [.0000.00D5.0002] # LAO CANCELLATION MARK
-0ECD ; [.0000.00D6.0002] # LAO NIGGAHITA
-AABF ; [.0000.00D7.0002] # TAI VIET TONE MAI EK
-AAC1 ; [.0000.00D8.0002] # TAI VIET TONE MAI THO
-0F39 ; [.0000.00D9.0002] # TIBETAN MARK TSA -PHRU
-A92B ; [.0000.00DA.0002] # KAYAH LI TONE PLOPHU
-A92C ; [.0000.00DB.0002] # KAYAH LI TONE CALYA
-A92D ; [.0000.00DC.0002] # KAYAH LI TONE CALYA PLOPHU
-1037 ; [.0000.00DD.0002] # MYANMAR SIGN DOT BELOW
-17C8 ; [.0000.00DE.0002] # KHMER SIGN YUUKALEAPINTU
-17C9 ; [.0000.00DF.0002] # KHMER SIGN MUUSIKATOAN
-17CA ; [.0000.00E0.0002] # KHMER SIGN TRIISAP
-1A75 ; [.0000.00E1.0002] # TAI THAM SIGN TONE-1
-1A76 ; [.0000.00E2.0002] # TAI THAM SIGN TONE-2
-1A77 ; [.0000.00E3.0002] # TAI THAM SIGN KHUEN TONE-3
-1A78 ; [.0000.00E4.0002] # TAI THAM SIGN KHUEN TONE-4
-1A79 ; [.0000.00E5.0002] # TAI THAM SIGN KHUEN TONE-5
-1A7A ; [.0000.00E6.0002] # TAI THAM SIGN RA HAAM
-1A7B ; [.0000.00E7.0002] # TAI THAM SIGN MAI SAM
-1A7C ; [.0000.00E8.0002] # TAI THAM SIGN KHUEN-LUE KARAN
-1939 ; [.0000.00E9.0002] # LIMBU SIGN MUKPHRENG
-193A ; [.0000.00EA.0002] # LIMBU SIGN KEMPHRENG
-193B ; [.0000.00EB.0002] # LIMBU SIGN SA-I
-16B30 ; [.0000.00EC.0002] # PAHAWH HMONG MARK CIM TUB
-16B31 ; [.0000.00ED.0002] # PAHAWH HMONG MARK CIM SO
-16B32 ; [.0000.00EE.0002] # PAHAWH HMONG MARK CIM KES
-16B33 ; [.0000.00EF.0002] # PAHAWH HMONG MARK CIM KHAV
-16B34 ; [.0000.00F0.0002] # PAHAWH HMONG MARK CIM SUAM
-16B35 ; [.0000.00F1.0002] # PAHAWH HMONG MARK CIM HOM
-16B36 ; [.0000.00F2.0002] # PAHAWH HMONG MARK CIM TAUM
-302A ; [.0000.00F3.0002] # IDEOGRAPHIC LEVEL TONE MARK
-302B ; [.0000.00F4.0002] # IDEOGRAPHIC RISING TONE MARK
-302C ; [.0000.00F5.0002] # IDEOGRAPHIC DEPARTING TONE MARK
-302D ; [.0000.00F6.0002] # IDEOGRAPHIC ENTERING TONE MARK
-302E ; [.0000.00F7.0002] # HANGUL SINGLE DOT TONE MARK
-302F ; [.0000.00F8.0002] # HANGUL DOUBLE DOT TONE MARK
-20D0 ; [.0000.00F9.0002] # COMBINING LEFT HARPOON ABOVE
-20D1 ; [.0000.00FA.0002] # COMBINING RIGHT HARPOON ABOVE
-20D2 ; [.0000.00FB.0002] # COMBINING LONG VERTICAL LINE OVERLAY
-20D3 ; [.0000.00FB.0002] # COMBINING SHORT VERTICAL LINE OVERLAY
-20D4 ; [.0000.00FC.0002] # COMBINING ANTICLOCKWISE ARROW ABOVE
-20D5 ; [.0000.00FD.0002] # COMBINING CLOCKWISE ARROW ABOVE
-20D6 ; [.0000.00FE.0002] # COMBINING LEFT ARROW ABOVE
-20D7 ; [.0000.00FF.0002] # COMBINING RIGHT ARROW ABOVE
-20DB ; [.0000.0100.0002] # COMBINING THREE DOTS ABOVE
-20DC ; [.0000.0101.0002] # COMBINING FOUR DOTS ABOVE
-20E1 ; [.0000.0102.0002] # COMBINING LEFT RIGHT ARROW ABOVE
-20E6 ; [.0000.0103.0002] # COMBINING DOUBLE VERTICAL STROKE OVERLAY
-20E7 ; [.0000.0104.0002] # COMBINING ANNUITY SYMBOL
-20E8 ; [.0000.0105.0002] # COMBINING TRIPLE UNDERDOT
-20E9 ; [.0000.0106.0002] # COMBINING WIDE BRIDGE ABOVE
-101FD ; [.0000.0107.0002] # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-02D0 ; [.18BF.0020.0002] # MODIFIER LETTER TRIANGULAR COLON
-02D1 ; [.18C0.0020.0002] # MODIFIER LETTER HALF TRIANGULAR COLON
-0971 ; [.18C1.0020.0002] # DEVANAGARI SIGN HIGH SPACING DOT
-0E46 ; [.18C2.0020.0002] # THAI CHARACTER MAIYAMOK
-0EC6 ; [.18C3.0020.0002] # LAO KO LA
-17D7 ; [.18C4.0020.0002] # KHMER SIGN LEK TOO
-1AA7 ; [.18C5.0020.0002] # TAI THAM SIGN MAI YAMOK
-A9CF ; [.18C6.0020.0002] # JAVANESE PANGRANGKEP
-A9E6 ; [.18C7.0020.0002] # MYANMAR MODIFIER LETTER SHAN REDUPLICATION
-AA70 ; [.18C8.0020.0002] # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
-AADD ; [.18C9.0020.0002] # TAI VIET SYMBOL SAM
-AAF3 ; [.18CA.0020.0002] # MEETEI MAYEK SYLLABLE REPETITION MARK
-AAF4 ; [.18CB.0020.0002] # MEETEI MAYEK WORD REPETITION MARK
-16B42 ; [.18CC.0020.0002] # PAHAWH HMONG SIGN VOS NRUA
-16B43 ; [.18CD.0020.0002] # PAHAWH HMONG SIGN IB YAM
-3005 ; [.18CE.0020.0002] # IDEOGRAPHIC ITERATION MARK
-303B ; [.18CF.0020.0002] # VERTICAL IDEOGRAPHIC ITERATION MARK
-3031 ; [.18D0.0020.0002] # VERTICAL KANA REPEAT MARK
-3032 ; [.18D0.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK
-3033 ; [.18D1.0020.0002] # VERTICAL KANA REPEAT MARK UPPER HALF
-3034 ; [.18D1.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
-3035 ; [.18D2.0020.0002] # VERTICAL KANA REPEAT MARK LOWER HALF
-309D ; [.18D3.0020.0002] # HIRAGANA ITERATION MARK
-309E ; [.18D3.0020.0002][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
-30FC ; [.18D4.0020.0002] # KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF70 ; [.18D4.0020.0012] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-30FD ; [.18D5.0020.0002] # KATAKANA ITERATION MARK
-30FE ; [.18D5.0020.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
-00A4 ; [.18D6.0020.0002] # CURRENCY SIGN
-00A2 ; [.18D7.0020.0002] # CENT SIGN
-FFE0 ; [.18D7.0020.0003] # FULLWIDTH CENT SIGN
-0024 ; [.18D8.0020.0002] # DOLLAR SIGN
-FF04 ; [.18D8.0020.0003] # FULLWIDTH DOLLAR SIGN
-FE69 ; [.18D8.0020.000F] # SMALL DOLLAR SIGN
-00A3 ; [.18D9.0020.0002] # POUND SIGN
-FFE1 ; [.18D9.0020.0003] # FULLWIDTH POUND SIGN
-00A5 ; [.18DA.0020.0002] # YEN SIGN
-FFE5 ; [.18DA.0020.0003] # FULLWIDTH YEN SIGN
-058F ; [.18DB.0020.0002] # ARMENIAN DRAM SIGN
-060B ; [.18DC.0020.0002] # AFGHANI SIGN
-09F2 ; [.18DD.0020.0002] # BENGALI RUPEE MARK
-09F3 ; [.18DE.0020.0002] # BENGALI RUPEE SIGN
-09FB ; [.18DF.0020.0002] # BENGALI GANDA MARK
-0AF1 ; [.18E0.0020.0002] # GUJARATI RUPEE SIGN
-A838 ; [.18E1.0020.0002] # NORTH INDIC RUPEE MARK
-0BF9 ; [.18E2.0020.0002] # TAMIL RUPEE SIGN
-0E3F ; [.18E3.0020.0002] # THAI CURRENCY SYMBOL BAHT
-17DB ; [.18E4.0020.0002] # KHMER CURRENCY SYMBOL RIEL
-20A0 ; [.18E5.0020.0002] # EURO-CURRENCY SIGN
-20A1 ; [.18E6.0020.0002] # COLON SIGN
-20A2 ; [.18E7.0020.0002] # CRUZEIRO SIGN
-20A3 ; [.18E8.0020.0002] # FRENCH FRANC SIGN
-20A4 ; [.18E9.0020.0002] # LIRA SIGN
-20A5 ; [.18EA.0020.0002] # MILL SIGN
-20A6 ; [.18EB.0020.0002] # NAIRA SIGN
-20A7 ; [.18EC.0020.0002] # PESETA SIGN
-20A9 ; [.18ED.0020.0002] # WON SIGN
-FFE6 ; [.18ED.0020.0003] # FULLWIDTH WON SIGN
-20AA ; [.18EE.0020.0002] # NEW SHEQEL SIGN
-20AB ; [.18EF.0020.0002] # DONG SIGN
-20AC ; [.18F0.0020.0002] # EURO SIGN
-20AD ; [.18F1.0020.0002] # KIP SIGN
-20AE ; [.18F2.0020.0002] # TUGRIK SIGN
-20AF ; [.18F3.0020.0002] # DRACHMA SIGN
-20B0 ; [.18F4.0020.0002] # GERMAN PENNY SIGN
-20B1 ; [.18F5.0020.0002] # PESO SIGN
-20B2 ; [.18F6.0020.0002] # GUARANI SIGN
-20B3 ; [.18F7.0020.0002] # AUSTRAL SIGN
-20B4 ; [.18F8.0020.0002] # HRYVNIA SIGN
-20B5 ; [.18F9.0020.0002] # CEDI SIGN
-20B6 ; [.18FA.0020.0002] # LIVRE TOURNOIS SIGN
-20B7 ; [.18FB.0020.0002] # SPESMILO SIGN
-20B8 ; [.18FC.0020.0002] # TENGE SIGN
-20B9 ; [.18FD.0020.0002] # INDIAN RUPEE SIGN
-20BA ; [.18FE.0020.0002] # TURKISH LIRA SIGN
-20BB ; [.18FF.0020.0002] # NORDIC MARK SIGN
-20BC ; [.1900.0020.0002] # MANAT SIGN
-20BD ; [.1901.0020.0002] # RUBLE SIGN
-0030 ; [.1902.0020.0002] # DIGIT ZERO
-0660 ; [.1902.0020.0002] # ARABIC-INDIC DIGIT ZERO
-06F0 ; [.1902.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ZERO
-07C0 ; [.1902.0020.0002] # NKO DIGIT ZERO
-0966 ; [.1902.0020.0002] # DEVANAGARI DIGIT ZERO
-09E6 ; [.1902.0020.0002] # BENGALI DIGIT ZERO
-0A66 ; [.1902.0020.0002] # GURMUKHI DIGIT ZERO
-0AE6 ; [.1902.0020.0002] # GUJARATI DIGIT ZERO
-0B66 ; [.1902.0020.0002] # ORIYA DIGIT ZERO
-0BE6 ; [.1902.0020.0002] # TAMIL DIGIT ZERO
-0C66 ; [.1902.0020.0002] # TELUGU DIGIT ZERO
-0C78 ; [.1902.0020.0002] # TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
-0CE6 ; [.1902.0020.0002] # KANNADA DIGIT ZERO
-0D66 ; [.1902.0020.0002] # MALAYALAM DIGIT ZERO
-0DE6 ; [.1902.0020.0002] # SINHALA LITH DIGIT ZERO
-0E50 ; [.1902.0020.0002] # THAI DIGIT ZERO
-0ED0 ; [.1902.0020.0002] # LAO DIGIT ZERO
-0F20 ; [.1902.0020.0002] # TIBETAN DIGIT ZERO
-1040 ; [.1902.0020.0002] # MYANMAR DIGIT ZERO
-1090 ; [.1902.0020.0002] # MYANMAR SHAN DIGIT ZERO
-17E0 ; [.1902.0020.0002] # KHMER DIGIT ZERO
-17F0 ; [.1902.0020.0002] # KHMER SYMBOL LEK ATTAK SON
-1810 ; [.1902.0020.0002] # MONGOLIAN DIGIT ZERO
-1946 ; [.1902.0020.0002] # LIMBU DIGIT ZERO
-19D0 ; [.1902.0020.0002] # NEW TAI LUE DIGIT ZERO
-1A80 ; [.1902.0020.0002] # TAI THAM HORA DIGIT ZERO
-1A90 ; [.1902.0020.0002] # TAI THAM THAM DIGIT ZERO
-1B50 ; [.1902.0020.0002] # BALINESE DIGIT ZERO
-1BB0 ; [.1902.0020.0002] # SUNDANESE DIGIT ZERO
-1C40 ; [.1902.0020.0002] # LEPCHA DIGIT ZERO
-1C50 ; [.1902.0020.0002] # OL CHIKI DIGIT ZERO
-3007 ; [.1902.0020.0002] # IDEOGRAPHIC NUMBER ZERO
-A620 ; [.1902.0020.0002] # VAI DIGIT ZERO
-A8D0 ; [.1902.0020.0002] # SAURASHTRA DIGIT ZERO
-A900 ; [.1902.0020.0002] # KAYAH LI DIGIT ZERO
-A9D0 ; [.1902.0020.0002] # JAVANESE DIGIT ZERO
-A9F0 ; [.1902.0020.0002] # MYANMAR TAI LAING DIGIT ZERO
-AA50 ; [.1902.0020.0002] # CHAM DIGIT ZERO
-ABF0 ; [.1902.0020.0002] # MEETEI MAYEK DIGIT ZERO
-1018A ; [.1902.0020.0002] # GREEK ZERO SIGN
-104A0 ; [.1902.0020.0002] # OSMANYA DIGIT ZERO
-11066 ; [.1902.0020.0002] # BRAHMI DIGIT ZERO
-110F0 ; [.1902.0020.0002] # SORA SOMPENG DIGIT ZERO
-11136 ; [.1902.0020.0002] # CHAKMA DIGIT ZERO
-111D0 ; [.1902.0020.0002] # SHARADA DIGIT ZERO
-112F0 ; [.1902.0020.0002] # KHUDAWADI DIGIT ZERO
-114D0 ; [.1902.0020.0002] # TIRHUTA DIGIT ZERO
-11650 ; [.1902.0020.0002] # MODI DIGIT ZERO
-116C0 ; [.1902.0020.0002] # TAKRI DIGIT ZERO
-118E0 ; [.1902.0020.0002] # WARANG CITI DIGIT ZERO
-16A60 ; [.1902.0020.0002] # MRO DIGIT ZERO
-16B50 ; [.1902.0020.0002] # PAHAWH HMONG DIGIT ZERO
-FF10 ; [.1902.0020.0003] # FULLWIDTH DIGIT ZERO
-0F33 ; [.1902.0020.0004] # TIBETAN DIGIT HALF ZERO
-1F100 ; [.1902.0020.0004][*0274.0020.0004] # DIGIT ZERO FULL STOP
-1F101 ; [.1902.0020.0004][*0221.0020.0004] # DIGIT ZERO COMMA
-1D7CE ; [.1902.0020.0005] # MATHEMATICAL BOLD DIGIT ZERO
-1D7D8 ; [.1902.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
-1D7E2 ; [.1902.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ZERO
-1D7EC ; [.1902.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
-1D7F6 ; [.1902.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ZERO
-24EA ; [.1902.0020.0006] # CIRCLED DIGIT ZERO
-24FF ; [.1902.0020.0006] # NEGATIVE CIRCLED DIGIT ZERO
-1F10B ; [.1902.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ZERO
-1F10C ; [.1902.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
-2070 ; [.1902.0020.0014] # SUPERSCRIPT ZERO
-2080 ; [.1902.0020.0015] # SUBSCRIPT ZERO
-2189 ; [.1902.0020.001E][*05E6.0020.001E][.1905.0020.001E] # VULGAR FRACTION ZERO THIRDS
-3358 ; [.1902.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-0031 ; [.1903.0020.0002] # DIGIT ONE
-0661 ; [.1903.0020.0002] # ARABIC-INDIC DIGIT ONE
-06F1 ; [.1903.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ONE
-07C1 ; [.1903.0020.0002] # NKO DIGIT ONE
-0967 ; [.1903.0020.0002] # DEVANAGARI DIGIT ONE
-09E7 ; [.1903.0020.0002] # BENGALI DIGIT ONE
-0A67 ; [.1903.0020.0002] # GURMUKHI DIGIT ONE
-0AE7 ; [.1903.0020.0002] # GUJARATI DIGIT ONE
-0B67 ; [.1903.0020.0002] # ORIYA DIGIT ONE
-0BE7 ; [.1903.0020.0002] # TAMIL DIGIT ONE
-0C67 ; [.1903.0020.0002] # TELUGU DIGIT ONE
-0C79 ; [.1903.0020.0002] # TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
-0C7C ; [.1903.0020.0002] # TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
-0CE7 ; [.1903.0020.0002] # KANNADA DIGIT ONE
-0D67 ; [.1903.0020.0002] # MALAYALAM DIGIT ONE
-0DE7 ; [.1903.0020.0002] # SINHALA LITH DIGIT ONE
-0E51 ; [.1903.0020.0002] # THAI DIGIT ONE
-0ED1 ; [.1903.0020.0002] # LAO DIGIT ONE
-0F21 ; [.1903.0020.0002] # TIBETAN DIGIT ONE
-1041 ; [.1903.0020.0002] # MYANMAR DIGIT ONE
-1091 ; [.1903.0020.0002] # MYANMAR SHAN DIGIT ONE
-1369 ; [.1903.0020.0002] # ETHIOPIC DIGIT ONE
-17E1 ; [.1903.0020.0002] # KHMER DIGIT ONE
-17F1 ; [.1903.0020.0002] # KHMER SYMBOL LEK ATTAK MUOY
-1811 ; [.1903.0020.0002] # MONGOLIAN DIGIT ONE
-1947 ; [.1903.0020.0002] # LIMBU DIGIT ONE
-19D1 ; [.1903.0020.0002] # NEW TAI LUE DIGIT ONE
-19DA ; [.1903.0020.0002] # NEW TAI LUE THAM DIGIT ONE
-1A81 ; [.1903.0020.0002] # TAI THAM HORA DIGIT ONE
-1A91 ; [.1903.0020.0002] # TAI THAM THAM DIGIT ONE
-1B51 ; [.1903.0020.0002] # BALINESE DIGIT ONE
-1BB1 ; [.1903.0020.0002] # SUNDANESE DIGIT ONE
-1C41 ; [.1903.0020.0002] # LEPCHA DIGIT ONE
-1C51 ; [.1903.0020.0002] # OL CHIKI DIGIT ONE
-3021 ; [.1903.0020.0002] # HANGZHOU NUMERAL ONE
-A621 ; [.1903.0020.0002] # VAI DIGIT ONE
-A8D1 ; [.1903.0020.0002] # SAURASHTRA DIGIT ONE
-A901 ; [.1903.0020.0002] # KAYAH LI DIGIT ONE
-A9D1 ; [.1903.0020.0002] # JAVANESE DIGIT ONE
-A9F1 ; [.1903.0020.0002] # MYANMAR TAI LAING DIGIT ONE
-AA51 ; [.1903.0020.0002] # CHAM DIGIT ONE
-ABF1 ; [.1903.0020.0002] # MEETEI MAYEK DIGIT ONE
-10107 ; [.1903.0020.0002] # AEGEAN NUMBER ONE
-10142 ; [.1903.0020.0002] # GREEK ACROPHONIC ATTIC ONE DRACHMA
-10158 ; [.1903.0020.0002] # GREEK ACROPHONIC HERAEUM ONE PLETHRON
-10159 ; [.1903.0020.0002] # GREEK ACROPHONIC THESPIAN ONE
-1015A ; [.1903.0020.0002] # GREEK ACROPHONIC HERMIONIAN ONE
-102E1 ; [.1903.0020.0002] # COPTIC EPACT DIGIT ONE
-10320 ; [.1903.0020.0002] # OLD ITALIC NUMERAL ONE
-103D1 ; [.1903.0020.0002] # OLD PERSIAN NUMBER ONE
-104A1 ; [.1903.0020.0002] # OSMANYA DIGIT ONE
-10858 ; [.1903.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE
-10879 ; [.1903.0020.0002] # PALMYRENE NUMBER ONE
-108A7 ; [.1903.0020.0002] # NABATAEAN NUMBER ONE
-10916 ; [.1903.0020.0002] # PHOENICIAN NUMBER ONE
-10A40 ; [.1903.0020.0002] # KHAROSHTHI DIGIT ONE
-10A7D ; [.1903.0020.0002] # OLD SOUTH ARABIAN NUMBER ONE
-10A9D ; [.1903.0020.0002] # OLD NORTH ARABIAN NUMBER ONE
-10AEB ; [.1903.0020.0002] # MANICHAEAN NUMBER ONE
-10B58 ; [.1903.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE
-10B78 ; [.1903.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE
-10BA9 ; [.1903.0020.0002] # PSALTER PAHLAVI NUMBER ONE
-10E60 ; [.1903.0020.0002] # RUMI DIGIT ONE
-11052 ; [.1903.0020.0002] # BRAHMI NUMBER ONE
-11067 ; [.1903.0020.0002] # BRAHMI DIGIT ONE
-110F1 ; [.1903.0020.0002] # SORA SOMPENG DIGIT ONE
-11137 ; [.1903.0020.0002] # CHAKMA DIGIT ONE
-111D1 ; [.1903.0020.0002] # SHARADA DIGIT ONE
-111E1 ; [.1903.0020.0002] # SINHALA ARCHAIC DIGIT ONE
-112F1 ; [.1903.0020.0002] # KHUDAWADI DIGIT ONE
-114D1 ; [.1903.0020.0002] # TIRHUTA DIGIT ONE
-11651 ; [.1903.0020.0002] # MODI DIGIT ONE
-116C1 ; [.1903.0020.0002] # TAKRI DIGIT ONE
-118E1 ; [.1903.0020.0002] # WARANG CITI DIGIT ONE
-12415 ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESH2
-1241E ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESHU
-1242C ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE SHARU
-12434 ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BURU
-1244F ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BAN2
-12458 ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE ESHE3
-16A61 ; [.1903.0020.0002] # MRO DIGIT ONE
-16B51 ; [.1903.0020.0002] # PAHAWH HMONG DIGIT ONE
-1D360 ; [.1903.0020.0002] # COUNTING ROD UNIT DIGIT ONE
-1E8C7 ; [.1903.0020.0002] # MENDE KIKAKUI DIGIT ONE
-FF11 ; [.1903.0020.0003] # FULLWIDTH DIGIT ONE
-0F2A ; [.1903.0020.0004] # TIBETAN DIGIT HALF ONE
-2474 ; [*030A.0020.0004][.1903.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT ONE
-2488 ; [.1903.0020.0004][*0274.0020.0004] # DIGIT ONE FULL STOP
-1F102 ; [.1903.0020.0004][*0221.0020.0004] # DIGIT ONE COMMA
-1D7CF ; [.1903.0020.0005] # MATHEMATICAL BOLD DIGIT ONE
-1D7D9 ; [.1903.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
-1D7E3 ; [.1903.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ONE
-1D7ED ; [.1903.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
-1D7F7 ; [.1903.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ONE
-2460 ; [.1903.0020.0006] # CIRCLED DIGIT ONE
-24F5 ; [.1903.0020.0006] # DOUBLE CIRCLED DIGIT ONE
-2776 ; [.1903.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT ONE
-2780 ; [.1903.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
-278A ; [.1903.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
-00B9 ; [.1903.0020.0014] # SUPERSCRIPT ONE
-2081 ; [.1903.0020.0015] # SUBSCRIPT ONE
-215F ; [.1903.0020.001E][*05E6.0020.001E] # FRACTION NUMERATOR ONE
-247D ; [*030A.0020.0004][.1903.0020.0004][.1902.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER TEN
-2491 ; [.1903.0020.0004][.1902.0020.0004][*0274.0020.0004] # NUMBER TEN FULL STOP
-2469 ; [.1903.0020.0006][.1902.0020.0006] # CIRCLED NUMBER TEN
-24FE ; [.1903.0020.0006][.1902.0020.0006] # DOUBLE CIRCLED NUMBER TEN
-277F ; [.1903.0020.0006][.1902.0020.0006] # DINGBAT NEGATIVE CIRCLED NUMBER TEN
-2789 ; [.1903.0020.0006][.1902.0020.0006] # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
-2793 ; [.1903.0020.0006][.1902.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-3248 ; [.1903.0020.0006][.1902.0020.0006] # CIRCLED NUMBER TEN ON BLACK SQUARE
-33E9 ; [.1903.0020.0004][.1902.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.1903.0020.0004][.1902.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.1903.0020.0004][.1902.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-247E ; [*030A.0020.0004][.1903.0020.0004][.1903.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER ELEVEN
-2492 ; [.1903.0020.0004][.1903.0020.0004][*0274.0020.0004] # NUMBER ELEVEN FULL STOP
-246A ; [.1903.0020.0006][.1903.0020.0006] # CIRCLED NUMBER ELEVEN
-24EB ; [.1903.0020.0006][.1903.0020.0006] # NEGATIVE CIRCLED NUMBER ELEVEN
-2152 ; [.1903.0020.001E][*05E6.0020.001E][.1903.0020.001E][.1902.0020.001E] # VULGAR FRACTION ONE TENTH
-33EA ; [.1903.0020.0004][.1903.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.1903.0020.0004][.1903.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.1903.0020.0004][.1903.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-247F ; [*030A.0020.0004][.1903.0020.0004][.1904.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER TWELVE
-2493 ; [.1903.0020.0004][.1904.0020.0004][*0274.0020.0004] # NUMBER TWELVE FULL STOP
-246B ; [.1903.0020.0006][.1904.0020.0006] # CIRCLED NUMBER TWELVE
-24EC ; [.1903.0020.0006][.1904.0020.0006] # NEGATIVE CIRCLED NUMBER TWELVE
-00BD ; [.1903.0020.001E][*05E6.0020.001E][.1904.0020.001E] # VULGAR FRACTION ONE HALF
-33EB ; [.1903.0020.0004][.1904.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.1903.0020.0004][.1904.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.1903.0020.0004][.1904.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-2480 ; [*030A.0020.0004][.1903.0020.0004][.1905.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER THIRTEEN
-2494 ; [.1903.0020.0004][.1905.0020.0004][*0274.0020.0004] # NUMBER THIRTEEN FULL STOP
-246C ; [.1903.0020.0006][.1905.0020.0006] # CIRCLED NUMBER THIRTEEN
-24ED ; [.1903.0020.0006][.1905.0020.0006] # NEGATIVE CIRCLED NUMBER THIRTEEN
-2153 ; [.1903.0020.001E][*05E6.0020.001E][.1905.0020.001E] # VULGAR FRACTION ONE THIRD
-33EC ; [.1903.0020.0004][.1905.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.1903.0020.0004][.1905.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-2481 ; [*030A.0020.0004][.1903.0020.0004][.1906.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER FOURTEEN
-2495 ; [.1903.0020.0004][.1906.0020.0004][*0274.0020.0004] # NUMBER FOURTEEN FULL STOP
-246D ; [.1903.0020.0006][.1906.0020.0006] # CIRCLED NUMBER FOURTEEN
-24EE ; [.1903.0020.0006][.1906.0020.0006] # NEGATIVE CIRCLED NUMBER FOURTEEN
-00BC ; [.1903.0020.001E][*05E6.0020.001E][.1906.0020.001E] # VULGAR FRACTION ONE QUARTER
-33ED ; [.1903.0020.0004][.1906.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.1903.0020.0004][.1906.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-2482 ; [*030A.0020.0004][.1903.0020.0004][.1907.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER FIFTEEN
-2496 ; [.1903.0020.0004][.1907.0020.0004][*0274.0020.0004] # NUMBER FIFTEEN FULL STOP
-246E ; [.1903.0020.0006][.1907.0020.0006] # CIRCLED NUMBER FIFTEEN
-24EF ; [.1903.0020.0006][.1907.0020.0006] # NEGATIVE CIRCLED NUMBER FIFTEEN
-2155 ; [.1903.0020.001E][*05E6.0020.001E][.1907.0020.001E] # VULGAR FRACTION ONE FIFTH
-33EE ; [.1903.0020.0004][.1907.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.1903.0020.0004][.1907.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-2483 ; [*030A.0020.0004][.1903.0020.0004][.1908.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER SIXTEEN
-2497 ; [.1903.0020.0004][.1908.0020.0004][*0274.0020.0004] # NUMBER SIXTEEN FULL STOP
-246F ; [.1903.0020.0006][.1908.0020.0006] # CIRCLED NUMBER SIXTEEN
-24F0 ; [.1903.0020.0006][.1908.0020.0006] # NEGATIVE CIRCLED NUMBER SIXTEEN
-2159 ; [.1903.0020.001E][*05E6.0020.001E][.1908.0020.001E] # VULGAR FRACTION ONE SIXTH
-33EF ; [.1903.0020.0004][.1908.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.1903.0020.0004][.1908.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-2484 ; [*030A.0020.0004][.1903.0020.0004][.1909.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER SEVENTEEN
-2498 ; [.1903.0020.0004][.1909.0020.0004][*0274.0020.0004] # NUMBER SEVENTEEN FULL STOP
-2470 ; [.1903.0020.0006][.1909.0020.0006] # CIRCLED NUMBER SEVENTEEN
-24F1 ; [.1903.0020.0006][.1909.0020.0006] # NEGATIVE CIRCLED NUMBER SEVENTEEN
-2150 ; [.1903.0020.001E][*05E6.0020.001E][.1909.0020.001E] # VULGAR FRACTION ONE SEVENTH
-33F0 ; [.1903.0020.0004][.1909.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.1903.0020.0004][.1909.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-2485 ; [*030A.0020.0004][.1903.0020.0004][.190A.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER EIGHTEEN
-2499 ; [.1903.0020.0004][.190A.0020.0004][*0274.0020.0004] # NUMBER EIGHTEEN FULL STOP
-2471 ; [.1903.0020.0006][.190A.0020.0006] # CIRCLED NUMBER EIGHTEEN
-24F2 ; [.1903.0020.0006][.190A.0020.0006] # NEGATIVE CIRCLED NUMBER EIGHTEEN
-215B ; [.1903.0020.001E][*05E6.0020.001E][.190A.0020.001E] # VULGAR FRACTION ONE EIGHTH
-33F1 ; [.1903.0020.0004][.190A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.1903.0020.0004][.190A.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-2486 ; [*030A.0020.0004][.1903.0020.0004][.190B.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER NINETEEN
-249A ; [.1903.0020.0004][.190B.0020.0004][*0274.0020.0004] # NUMBER NINETEEN FULL STOP
-2472 ; [.1903.0020.0006][.190B.0020.0006] # CIRCLED NUMBER NINETEEN
-24F3 ; [.1903.0020.0006][.190B.0020.0006] # NEGATIVE CIRCLED NUMBER NINETEEN
-2151 ; [.1903.0020.001E][*05E6.0020.001E][.190B.0020.001E] # VULGAR FRACTION ONE NINTH
-33F2 ; [.1903.0020.0004][.190B.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.1903.0020.0004][.190B.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.1903.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.1903.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.1903.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-0032 ; [.1904.0020.0002] # DIGIT TWO
-0662 ; [.1904.0020.0002] # ARABIC-INDIC DIGIT TWO
-06F2 ; [.1904.0020.0002] # EXTENDED ARABIC-INDIC DIGIT TWO
-07C2 ; [.1904.0020.0002] # NKO DIGIT TWO
-0968 ; [.1904.0020.0002] # DEVANAGARI DIGIT TWO
-09E8 ; [.1904.0020.0002] # BENGALI DIGIT TWO
-0A68 ; [.1904.0020.0002] # GURMUKHI DIGIT TWO
-0AE8 ; [.1904.0020.0002] # GUJARATI DIGIT TWO
-0B68 ; [.1904.0020.0002] # ORIYA DIGIT TWO
-0BE8 ; [.1904.0020.0002] # TAMIL DIGIT TWO
-0C68 ; [.1904.0020.0002] # TELUGU DIGIT TWO
-0C7A ; [.1904.0020.0002] # TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
-0C7D ; [.1904.0020.0002] # TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
-0CE8 ; [.1904.0020.0002] # KANNADA DIGIT TWO
-0D68 ; [.1904.0020.0002] # MALAYALAM DIGIT TWO
-0DE8 ; [.1904.0020.0002] # SINHALA LITH DIGIT TWO
-0E52 ; [.1904.0020.0002] # THAI DIGIT TWO
-0ED2 ; [.1904.0020.0002] # LAO DIGIT TWO
-0F22 ; [.1904.0020.0002] # TIBETAN DIGIT TWO
-1042 ; [.1904.0020.0002] # MYANMAR DIGIT TWO
-1092 ; [.1904.0020.0002] # MYANMAR SHAN DIGIT TWO
-136A ; [.1904.0020.0002] # ETHIOPIC DIGIT TWO
-17E2 ; [.1904.0020.0002] # KHMER DIGIT TWO
-17F2 ; [.1904.0020.0002] # KHMER SYMBOL LEK ATTAK PII
-1812 ; [.1904.0020.0002] # MONGOLIAN DIGIT TWO
-1948 ; [.1904.0020.0002] # LIMBU DIGIT TWO
-19D2 ; [.1904.0020.0002] # NEW TAI LUE DIGIT TWO
-1A82 ; [.1904.0020.0002] # TAI THAM HORA DIGIT TWO
-1A92 ; [.1904.0020.0002] # TAI THAM THAM DIGIT TWO
-1B52 ; [.1904.0020.0002] # BALINESE DIGIT TWO
-1BB2 ; [.1904.0020.0002] # SUNDANESE DIGIT TWO
-1C42 ; [.1904.0020.0002] # LEPCHA DIGIT TWO
-1C52 ; [.1904.0020.0002] # OL CHIKI DIGIT TWO
-3022 ; [.1904.0020.0002] # HANGZHOU NUMERAL TWO
-A622 ; [.1904.0020.0002] # VAI DIGIT TWO
-A8D2 ; [.1904.0020.0002] # SAURASHTRA DIGIT TWO
-A902 ; [.1904.0020.0002] # KAYAH LI DIGIT TWO
-A9D2 ; [.1904.0020.0002] # JAVANESE DIGIT TWO
-A9F2 ; [.1904.0020.0002] # MYANMAR TAI LAING DIGIT TWO
-AA52 ; [.1904.0020.0002] # CHAM DIGIT TWO
-ABF2 ; [.1904.0020.0002] # MEETEI MAYEK DIGIT TWO
-10108 ; [.1904.0020.0002] # AEGEAN NUMBER TWO
-1015B ; [.1904.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO
-1015C ; [.1904.0020.0002] # GREEK ACROPHONIC THESPIAN TWO
-1015D ; [.1904.0020.0002] # GREEK ACROPHONIC CYRENAIC TWO DRACHMAS
-1015E ; [.1904.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
-102E2 ; [.1904.0020.0002] # COPTIC EPACT DIGIT TWO
-103D2 ; [.1904.0020.0002] # OLD PERSIAN NUMBER TWO
-104A2 ; [.1904.0020.0002] # OSMANYA DIGIT TWO
-10859 ; [.1904.0020.0002] # IMPERIAL ARAMAIC NUMBER TWO
-1087A ; [.1904.0020.0002] # PALMYRENE NUMBER TWO
-108A8 ; [.1904.0020.0002] # NABATAEAN NUMBER TWO
-1091A ; [.1904.0020.0002] # PHOENICIAN NUMBER TWO
-10A41 ; [.1904.0020.0002] # KHAROSHTHI DIGIT TWO
-10B59 ; [.1904.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWO
-10B79 ; [.1904.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWO
-10BAA ; [.1904.0020.0002] # PSALTER PAHLAVI NUMBER TWO
-10E61 ; [.1904.0020.0002] # RUMI DIGIT TWO
-11053 ; [.1904.0020.0002] # BRAHMI NUMBER TWO
-11068 ; [.1904.0020.0002] # BRAHMI DIGIT TWO
-110F2 ; [.1904.0020.0002] # SORA SOMPENG DIGIT TWO
-11138 ; [.1904.0020.0002] # CHAKMA DIGIT TWO
-111D2 ; [.1904.0020.0002] # SHARADA DIGIT TWO
-111E2 ; [.1904.0020.0002] # SINHALA ARCHAIC DIGIT TWO
-112F2 ; [.1904.0020.0002] # KHUDAWADI DIGIT TWO
-114D2 ; [.1904.0020.0002] # TIRHUTA DIGIT TWO
-11652 ; [.1904.0020.0002] # MODI DIGIT TWO
-116C2 ; [.1904.0020.0002] # TAKRI DIGIT TWO
-118E2 ; [.1904.0020.0002] # WARANG CITI DIGIT TWO
-12400 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH
-12416 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESH2
-1241F ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESHU
-12423 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHAR2
-1242D ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHARU
-12435 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BURU
-1244A ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH TENU
-12450 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BAN2
-12456 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAMIN
-12459 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ESHE3
-16A62 ; [.1904.0020.0002] # MRO DIGIT TWO
-16B52 ; [.1904.0020.0002] # PAHAWH HMONG DIGIT TWO
-1D361 ; [.1904.0020.0002] # COUNTING ROD UNIT DIGIT TWO
-1E8C8 ; [.1904.0020.0002] # MENDE KIKAKUI DIGIT TWO
-FF12 ; [.1904.0020.0003] # FULLWIDTH DIGIT TWO
-0F2B ; [.1904.0020.0004] # TIBETAN DIGIT HALF TWO
-2475 ; [*030A.0020.0004][.1904.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT TWO
-2489 ; [.1904.0020.0004][*0274.0020.0004] # DIGIT TWO FULL STOP
-1F103 ; [.1904.0020.0004][*0221.0020.0004] # DIGIT TWO COMMA
-1D7D0 ; [.1904.0020.0005] # MATHEMATICAL BOLD DIGIT TWO
-1D7DA ; [.1904.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
-1D7E4 ; [.1904.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT TWO
-1D7EE ; [.1904.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
-1D7F8 ; [.1904.0020.0005] # MATHEMATICAL MONOSPACE DIGIT TWO
-2461 ; [.1904.0020.0006] # CIRCLED DIGIT TWO
-24F6 ; [.1904.0020.0006] # DOUBLE CIRCLED DIGIT TWO
-2777 ; [.1904.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT TWO
-2781 ; [.1904.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
-278B ; [.1904.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
-00B2 ; [.1904.0020.0014] # SUPERSCRIPT TWO
-2082 ; [.1904.0020.0015] # SUBSCRIPT TWO
-2487 ; [*030A.0020.0004][.1904.0020.0004][.1902.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER TWENTY
-249B ; [.1904.0020.0004][.1902.0020.0004][*0274.0020.0004] # NUMBER TWENTY FULL STOP
-2473 ; [.1904.0020.0006][.1902.0020.0006] # CIRCLED NUMBER TWENTY
-24F4 ; [.1904.0020.0006][.1902.0020.0006] # NEGATIVE CIRCLED NUMBER TWENTY
-3249 ; [.1904.0020.0006][.1902.0020.0006] # CIRCLED NUMBER TWENTY ON BLACK SQUARE
-33F3 ; [.1904.0020.0004][.1902.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.1904.0020.0004][.1902.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-3251 ; [.1904.0020.0006][.1903.0020.0006] # CIRCLED NUMBER TWENTY ONE
-33F4 ; [.1904.0020.0004][.1903.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.1904.0020.0004][.1903.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-3252 ; [.1904.0020.0006][.1904.0020.0006] # CIRCLED NUMBER TWENTY TWO
-33F5 ; [.1904.0020.0004][.1904.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.1904.0020.0004][.1904.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-3253 ; [.1904.0020.0006][.1905.0020.0006] # CIRCLED NUMBER TWENTY THREE
-2154 ; [.1904.0020.001E][*05E6.0020.001E][.1905.0020.001E] # VULGAR FRACTION TWO THIRDS
-33F6 ; [.1904.0020.0004][.1905.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.1904.0020.0004][.1905.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-3254 ; [.1904.0020.0006][.1906.0020.0006] # CIRCLED NUMBER TWENTY FOUR
-33F7 ; [.1904.0020.0004][.1906.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.1904.0020.0004][.1906.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-3255 ; [.1904.0020.0006][.1907.0020.0006] # CIRCLED NUMBER TWENTY FIVE
-2156 ; [.1904.0020.001E][*05E6.0020.001E][.1907.0020.001E] # VULGAR FRACTION TWO FIFTHS
-33F8 ; [.1904.0020.0004][.1907.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-3256 ; [.1904.0020.0006][.1908.0020.0006] # CIRCLED NUMBER TWENTY SIX
-33F9 ; [.1904.0020.0004][.1908.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-3257 ; [.1904.0020.0006][.1909.0020.0006] # CIRCLED NUMBER TWENTY SEVEN
-33FA ; [.1904.0020.0004][.1909.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-3258 ; [.1904.0020.0006][.190A.0020.0006] # CIRCLED NUMBER TWENTY EIGHT
-33FB ; [.1904.0020.0004][.190A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-3259 ; [.1904.0020.0006][.190B.0020.0006] # CIRCLED NUMBER TWENTY NINE
-33FC ; [.1904.0020.0004][.190B.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.1904.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.1904.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.1904.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-0033 ; [.1905.0020.0002] # DIGIT THREE
-0663 ; [.1905.0020.0002] # ARABIC-INDIC DIGIT THREE
-06F3 ; [.1905.0020.0002] # EXTENDED ARABIC-INDIC DIGIT THREE
-07C3 ; [.1905.0020.0002] # NKO DIGIT THREE
-0969 ; [.1905.0020.0002] # DEVANAGARI DIGIT THREE
-09E9 ; [.1905.0020.0002] # BENGALI DIGIT THREE
-0A69 ; [.1905.0020.0002] # GURMUKHI DIGIT THREE
-0AE9 ; [.1905.0020.0002] # GUJARATI DIGIT THREE
-0B69 ; [.1905.0020.0002] # ORIYA DIGIT THREE
-0BE9 ; [.1905.0020.0002] # TAMIL DIGIT THREE
-0C69 ; [.1905.0020.0002] # TELUGU DIGIT THREE
-0C7B ; [.1905.0020.0002] # TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
-0C7E ; [.1905.0020.0002] # TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
-0CE9 ; [.1905.0020.0002] # KANNADA DIGIT THREE
-0D69 ; [.1905.0020.0002] # MALAYALAM DIGIT THREE
-0DE9 ; [.1905.0020.0002] # SINHALA LITH DIGIT THREE
-0E53 ; [.1905.0020.0002] # THAI DIGIT THREE
-0ED3 ; [.1905.0020.0002] # LAO DIGIT THREE
-0F23 ; [.1905.0020.0002] # TIBETAN DIGIT THREE
-1043 ; [.1905.0020.0002] # MYANMAR DIGIT THREE
-1093 ; [.1905.0020.0002] # MYANMAR SHAN DIGIT THREE
-136B ; [.1905.0020.0002] # ETHIOPIC DIGIT THREE
-17E3 ; [.1905.0020.0002] # KHMER DIGIT THREE
-17F3 ; [.1905.0020.0002] # KHMER SYMBOL LEK ATTAK BEI
-1813 ; [.1905.0020.0002] # MONGOLIAN DIGIT THREE
-1949 ; [.1905.0020.0002] # LIMBU DIGIT THREE
-19D3 ; [.1905.0020.0002] # NEW TAI LUE DIGIT THREE
-1A83 ; [.1905.0020.0002] # TAI THAM HORA DIGIT THREE
-1A93 ; [.1905.0020.0002] # TAI THAM THAM DIGIT THREE
-1B53 ; [.1905.0020.0002] # BALINESE DIGIT THREE
-1BB3 ; [.1905.0020.0002] # SUNDANESE DIGIT THREE
-1C43 ; [.1905.0020.0002] # LEPCHA DIGIT THREE
-1C53 ; [.1905.0020.0002] # OL CHIKI DIGIT THREE
-3023 ; [.1905.0020.0002] # HANGZHOU NUMERAL THREE
-A623 ; [.1905.0020.0002] # VAI DIGIT THREE
-A8D3 ; [.1905.0020.0002] # SAURASHTRA DIGIT THREE
-A903 ; [.1905.0020.0002] # KAYAH LI DIGIT THREE
-A9D3 ; [.1905.0020.0002] # JAVANESE DIGIT THREE
-A9F3 ; [.1905.0020.0002] # MYANMAR TAI LAING DIGIT THREE
-AA53 ; [.1905.0020.0002] # CHAM DIGIT THREE
-ABF3 ; [.1905.0020.0002] # MEETEI MAYEK DIGIT THREE
-10109 ; [.1905.0020.0002] # AEGEAN NUMBER THREE
-102E3 ; [.1905.0020.0002] # COPTIC EPACT DIGIT THREE
-104A3 ; [.1905.0020.0002] # OSMANYA DIGIT THREE
-1085A ; [.1905.0020.0002] # IMPERIAL ARAMAIC NUMBER THREE
-1087B ; [.1905.0020.0002] # PALMYRENE NUMBER THREE
-108A9 ; [.1905.0020.0002] # NABATAEAN NUMBER THREE
-1091B ; [.1905.0020.0002] # PHOENICIAN NUMBER THREE
-10A42 ; [.1905.0020.0002] # KHAROSHTHI DIGIT THREE
-10B5A ; [.1905.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER THREE
-10B7A ; [.1905.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER THREE
-10BAB ; [.1905.0020.0002] # PSALTER PAHLAVI NUMBER THREE
-10E62 ; [.1905.0020.0002] # RUMI DIGIT THREE
-11054 ; [.1905.0020.0002] # BRAHMI NUMBER THREE
-11069 ; [.1905.0020.0002] # BRAHMI DIGIT THREE
-110F3 ; [.1905.0020.0002] # SORA SOMPENG DIGIT THREE
-11139 ; [.1905.0020.0002] # CHAKMA DIGIT THREE
-111D3 ; [.1905.0020.0002] # SHARADA DIGIT THREE
-111E3 ; [.1905.0020.0002] # SINHALA ARCHAIC DIGIT THREE
-112F3 ; [.1905.0020.0002] # KHUDAWADI DIGIT THREE
-114D3 ; [.1905.0020.0002] # TIRHUTA DIGIT THREE
-11653 ; [.1905.0020.0002] # MODI DIGIT THREE
-116C3 ; [.1905.0020.0002] # TAKRI DIGIT THREE
-118E3 ; [.1905.0020.0002] # WARANG CITI DIGIT THREE
-12401 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH
-12408 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE DISH
-12417 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESH2
-12420 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESHU
-12424 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2
-12425 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
-1242E ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU
-1242F ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
-12436 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU
-12437 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
-1243A ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16
-1243B ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
-1244B ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH TENU
-12451 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BAN2
-12457 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAESH
-16A63 ; [.1905.0020.0002] # MRO DIGIT THREE
-16B53 ; [.1905.0020.0002] # PAHAWH HMONG DIGIT THREE
-1D362 ; [.1905.0020.0002] # COUNTING ROD UNIT DIGIT THREE
-1E8C9 ; [.1905.0020.0002] # MENDE KIKAKUI DIGIT THREE
-FF13 ; [.1905.0020.0003] # FULLWIDTH DIGIT THREE
-0F2C ; [.1905.0020.0004] # TIBETAN DIGIT HALF THREE
-2476 ; [*030A.0020.0004][.1905.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT THREE
-248A ; [.1905.0020.0004][*0274.0020.0004] # DIGIT THREE FULL STOP
-1F104 ; [.1905.0020.0004][*0221.0020.0004] # DIGIT THREE COMMA
-1D7D1 ; [.1905.0020.0005] # MATHEMATICAL BOLD DIGIT THREE
-1D7DB ; [.1905.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
-1D7E5 ; [.1905.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT THREE
-1D7EF ; [.1905.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
-1D7F9 ; [.1905.0020.0005] # MATHEMATICAL MONOSPACE DIGIT THREE
-2462 ; [.1905.0020.0006] # CIRCLED DIGIT THREE
-24F7 ; [.1905.0020.0006] # DOUBLE CIRCLED DIGIT THREE
-2778 ; [.1905.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT THREE
-2782 ; [.1905.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
-278C ; [.1905.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
-00B3 ; [.1905.0020.0014] # SUPERSCRIPT THREE
-2083 ; [.1905.0020.0015] # SUBSCRIPT THREE
-324A ; [.1905.0020.0006][.1902.0020.0006] # CIRCLED NUMBER THIRTY ON BLACK SQUARE
-325A ; [.1905.0020.0006][.1902.0020.0006] # CIRCLED NUMBER THIRTY
-33FD ; [.1905.0020.0004][.1902.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-325B ; [.1905.0020.0006][.1903.0020.0006] # CIRCLED NUMBER THIRTY ONE
-33FE ; [.1905.0020.0004][.1903.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-325C ; [.1905.0020.0006][.1904.0020.0006] # CIRCLED NUMBER THIRTY TWO
-325D ; [.1905.0020.0006][.1905.0020.0006] # CIRCLED NUMBER THIRTY THREE
-325E ; [.1905.0020.0006][.1906.0020.0006] # CIRCLED NUMBER THIRTY FOUR
-00BE ; [.1905.0020.001E][*05E6.0020.001E][.1906.0020.001E] # VULGAR FRACTION THREE QUARTERS
-325F ; [.1905.0020.0006][.1907.0020.0006] # CIRCLED NUMBER THIRTY FIVE
-2157 ; [.1905.0020.001E][*05E6.0020.001E][.1907.0020.001E] # VULGAR FRACTION THREE FIFTHS
-32B1 ; [.1905.0020.0006][.1908.0020.0006] # CIRCLED NUMBER THIRTY SIX
-32B2 ; [.1905.0020.0006][.1909.0020.0006] # CIRCLED NUMBER THIRTY SEVEN
-32B3 ; [.1905.0020.0006][.190A.0020.0006] # CIRCLED NUMBER THIRTY EIGHT
-215C ; [.1905.0020.001E][*05E6.0020.001E][.190A.0020.001E] # VULGAR FRACTION THREE EIGHTHS
-32B4 ; [.1905.0020.0006][.190B.0020.0006] # CIRCLED NUMBER THIRTY NINE
-33E2 ; [.1905.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.1905.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.1905.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-0034 ; [.1906.0020.0002] # DIGIT FOUR
-0664 ; [.1906.0020.0002] # ARABIC-INDIC DIGIT FOUR
-06F4 ; [.1906.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FOUR
-07C4 ; [.1906.0020.0002] # NKO DIGIT FOUR
-096A ; [.1906.0020.0002] # DEVANAGARI DIGIT FOUR
-09EA ; [.1906.0020.0002] # BENGALI DIGIT FOUR
-0A6A ; [.1906.0020.0002] # GURMUKHI DIGIT FOUR
-0AEA ; [.1906.0020.0002] # GUJARATI DIGIT FOUR
-0B6A ; [.1906.0020.0002] # ORIYA DIGIT FOUR
-0BEA ; [.1906.0020.0002] # TAMIL DIGIT FOUR
-0C6A ; [.1906.0020.0002] # TELUGU DIGIT FOUR
-0CEA ; [.1906.0020.0002] # KANNADA DIGIT FOUR
-0D6A ; [.1906.0020.0002] # MALAYALAM DIGIT FOUR
-0DEA ; [.1906.0020.0002] # SINHALA LITH DIGIT FOUR
-0E54 ; [.1906.0020.0002] # THAI DIGIT FOUR
-0ED4 ; [.1906.0020.0002] # LAO DIGIT FOUR
-0F24 ; [.1906.0020.0002] # TIBETAN DIGIT FOUR
-1044 ; [.1906.0020.0002] # MYANMAR DIGIT FOUR
-1094 ; [.1906.0020.0002] # MYANMAR SHAN DIGIT FOUR
-136C ; [.1906.0020.0002] # ETHIOPIC DIGIT FOUR
-17E4 ; [.1906.0020.0002] # KHMER DIGIT FOUR
-17F4 ; [.1906.0020.0002] # KHMER SYMBOL LEK ATTAK BUON
-1814 ; [.1906.0020.0002] # MONGOLIAN DIGIT FOUR
-194A ; [.1906.0020.0002] # LIMBU DIGIT FOUR
-19D4 ; [.1906.0020.0002] # NEW TAI LUE DIGIT FOUR
-1A84 ; [.1906.0020.0002] # TAI THAM HORA DIGIT FOUR
-1A94 ; [.1906.0020.0002] # TAI THAM THAM DIGIT FOUR
-1B54 ; [.1906.0020.0002] # BALINESE DIGIT FOUR
-1BB4 ; [.1906.0020.0002] # SUNDANESE DIGIT FOUR
-1C44 ; [.1906.0020.0002] # LEPCHA DIGIT FOUR
-1C54 ; [.1906.0020.0002] # OL CHIKI DIGIT FOUR
-3024 ; [.1906.0020.0002] # HANGZHOU NUMERAL FOUR
-A624 ; [.1906.0020.0002] # VAI DIGIT FOUR
-A8D4 ; [.1906.0020.0002] # SAURASHTRA DIGIT FOUR
-A904 ; [.1906.0020.0002] # KAYAH LI DIGIT FOUR
-A9D4 ; [.1906.0020.0002] # JAVANESE DIGIT FOUR
-A9F4 ; [.1906.0020.0002] # MYANMAR TAI LAING DIGIT FOUR
-AA54 ; [.1906.0020.0002] # CHAM DIGIT FOUR
-ABF4 ; [.1906.0020.0002] # MEETEI MAYEK DIGIT FOUR
-1010A ; [.1906.0020.0002] # AEGEAN NUMBER FOUR
-102E4 ; [.1906.0020.0002] # COPTIC EPACT DIGIT FOUR
-104A4 ; [.1906.0020.0002] # OSMANYA DIGIT FOUR
-1087C ; [.1906.0020.0002] # PALMYRENE NUMBER FOUR
-108AA ; [.1906.0020.0002] # NABATAEAN NUMBER FOUR
-108AB ; [.1906.0020.0002] # NABATAEAN CRUCIFORM NUMBER FOUR
-10A43 ; [.1906.0020.0002] # KHAROSHTHI DIGIT FOUR
-10B5B ; [.1906.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER FOUR
-10B7B ; [.1906.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER FOUR
-10BAC ; [.1906.0020.0002] # PSALTER PAHLAVI NUMBER FOUR
-10E63 ; [.1906.0020.0002] # RUMI DIGIT FOUR
-11055 ; [.1906.0020.0002] # BRAHMI NUMBER FOUR
-1106A ; [.1906.0020.0002] # BRAHMI DIGIT FOUR
-110F4 ; [.1906.0020.0002] # SORA SOMPENG DIGIT FOUR
-1113A ; [.1906.0020.0002] # CHAKMA DIGIT FOUR
-111D4 ; [.1906.0020.0002] # SHARADA DIGIT FOUR
-111E4 ; [.1906.0020.0002] # SINHALA ARCHAIC DIGIT FOUR
-112F4 ; [.1906.0020.0002] # KHUDAWADI DIGIT FOUR
-114D4 ; [.1906.0020.0002] # TIRHUTA DIGIT FOUR
-11654 ; [.1906.0020.0002] # MODI DIGIT FOUR
-116C4 ; [.1906.0020.0002] # TAKRI DIGIT FOUR
-118E4 ; [.1906.0020.0002] # WARANG CITI DIGIT FOUR
-12402 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH
-12409 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR DISH
-1240F ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U
-12418 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESH2
-12421 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESHU
-12426 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHAR2
-12430 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHARU
-12438 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BURU
-1243C ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU
-1243D ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4
-1243E ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A
-1243F ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
-1244C ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH TENU
-12452 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2
-12453 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
-12469 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM
-16A64 ; [.1906.0020.0002] # MRO DIGIT FOUR
-16B54 ; [.1906.0020.0002] # PAHAWH HMONG DIGIT FOUR
-1D363 ; [.1906.0020.0002] # COUNTING ROD UNIT DIGIT FOUR
-1E8CA ; [.1906.0020.0002] # MENDE KIKAKUI DIGIT FOUR
-FF14 ; [.1906.0020.0003] # FULLWIDTH DIGIT FOUR
-0F2D ; [.1906.0020.0004] # TIBETAN DIGIT HALF FOUR
-2477 ; [*030A.0020.0004][.1906.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT FOUR
-248B ; [.1906.0020.0004][*0274.0020.0004] # DIGIT FOUR FULL STOP
-1F105 ; [.1906.0020.0004][*0221.0020.0004] # DIGIT FOUR COMMA
-1D7D2 ; [.1906.0020.0005] # MATHEMATICAL BOLD DIGIT FOUR
-1D7DC ; [.1906.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
-1D7E6 ; [.1906.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FOUR
-1D7F0 ; [.1906.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
-1D7FA ; [.1906.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FOUR
-2463 ; [.1906.0020.0006] # CIRCLED DIGIT FOUR
-24F8 ; [.1906.0020.0006] # DOUBLE CIRCLED DIGIT FOUR
-2779 ; [.1906.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
-2783 ; [.1906.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
-278D ; [.1906.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
-2074 ; [.1906.0020.0014] # SUPERSCRIPT FOUR
-2084 ; [.1906.0020.0015] # SUBSCRIPT FOUR
-324B ; [.1906.0020.0006][.1902.0020.0006] # CIRCLED NUMBER FORTY ON BLACK SQUARE
-32B5 ; [.1906.0020.0006][.1902.0020.0006] # CIRCLED NUMBER FORTY
-32B6 ; [.1906.0020.0006][.1903.0020.0006] # CIRCLED NUMBER FORTY ONE
-32B7 ; [.1906.0020.0006][.1904.0020.0006] # CIRCLED NUMBER FORTY TWO
-32B8 ; [.1906.0020.0006][.1905.0020.0006] # CIRCLED NUMBER FORTY THREE
-32B9 ; [.1906.0020.0006][.1906.0020.0006] # CIRCLED NUMBER FORTY FOUR
-32BA ; [.1906.0020.0006][.1907.0020.0006] # CIRCLED NUMBER FORTY FIVE
-2158 ; [.1906.0020.001E][*05E6.0020.001E][.1907.0020.001E] # VULGAR FRACTION FOUR FIFTHS
-32BB ; [.1906.0020.0006][.1908.0020.0006] # CIRCLED NUMBER FORTY SIX
-32BC ; [.1906.0020.0006][.1909.0020.0006] # CIRCLED NUMBER FORTY SEVEN
-32BD ; [.1906.0020.0006][.190A.0020.0006] # CIRCLED NUMBER FORTY EIGHT
-32BE ; [.1906.0020.0006][.190B.0020.0006] # CIRCLED NUMBER FORTY NINE
-33E3 ; [.1906.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.1906.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.1906.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-0035 ; [.1907.0020.0002] # DIGIT FIVE
-0665 ; [.1907.0020.0002] # ARABIC-INDIC DIGIT FIVE
-06F5 ; [.1907.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FIVE
-07C5 ; [.1907.0020.0002] # NKO DIGIT FIVE
-096B ; [.1907.0020.0002] # DEVANAGARI DIGIT FIVE
-09EB ; [.1907.0020.0002] # BENGALI DIGIT FIVE
-0A6B ; [.1907.0020.0002] # GURMUKHI DIGIT FIVE
-0AEB ; [.1907.0020.0002] # GUJARATI DIGIT FIVE
-0B6B ; [.1907.0020.0002] # ORIYA DIGIT FIVE
-0BEB ; [.1907.0020.0002] # TAMIL DIGIT FIVE
-0C6B ; [.1907.0020.0002] # TELUGU DIGIT FIVE
-0CEB ; [.1907.0020.0002] # KANNADA DIGIT FIVE
-0D6B ; [.1907.0020.0002] # MALAYALAM DIGIT FIVE
-0DEB ; [.1907.0020.0002] # SINHALA LITH DIGIT FIVE
-0E55 ; [.1907.0020.0002] # THAI DIGIT FIVE
-0ED5 ; [.1907.0020.0002] # LAO DIGIT FIVE
-0F25 ; [.1907.0020.0002] # TIBETAN DIGIT FIVE
-1045 ; [.1907.0020.0002] # MYANMAR DIGIT FIVE
-1095 ; [.1907.0020.0002] # MYANMAR SHAN DIGIT FIVE
-136D ; [.1907.0020.0002] # ETHIOPIC DIGIT FIVE
-17E5 ; [.1907.0020.0002] # KHMER DIGIT FIVE
-17F5 ; [.1907.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM
-1815 ; [.1907.0020.0002] # MONGOLIAN DIGIT FIVE
-194B ; [.1907.0020.0002] # LIMBU DIGIT FIVE
-19D5 ; [.1907.0020.0002] # NEW TAI LUE DIGIT FIVE
-1A85 ; [.1907.0020.0002] # TAI THAM HORA DIGIT FIVE
-1A95 ; [.1907.0020.0002] # TAI THAM THAM DIGIT FIVE
-1B55 ; [.1907.0020.0002] # BALINESE DIGIT FIVE
-1BB5 ; [.1907.0020.0002] # SUNDANESE DIGIT FIVE
-1C45 ; [.1907.0020.0002] # LEPCHA DIGIT FIVE
-1C55 ; [.1907.0020.0002] # OL CHIKI DIGIT FIVE
-3025 ; [.1907.0020.0002] # HANGZHOU NUMERAL FIVE
-A625 ; [.1907.0020.0002] # VAI DIGIT FIVE
-A8D5 ; [.1907.0020.0002] # SAURASHTRA DIGIT FIVE
-A905 ; [.1907.0020.0002] # KAYAH LI DIGIT FIVE
-A9D5 ; [.1907.0020.0002] # JAVANESE DIGIT FIVE
-A9F5 ; [.1907.0020.0002] # MYANMAR TAI LAING DIGIT FIVE
-AA55 ; [.1907.0020.0002] # CHAM DIGIT FIVE
-ABF5 ; [.1907.0020.0002] # MEETEI MAYEK DIGIT FIVE
-1010B ; [.1907.0020.0002] # AEGEAN NUMBER FIVE
-10143 ; [.1907.0020.0002] # GREEK ACROPHONIC ATTIC FIVE
-10148 ; [.1907.0020.0002] # GREEK ACROPHONIC ATTIC FIVE TALENTS
-1014F ; [.1907.0020.0002] # GREEK ACROPHONIC ATTIC FIVE STATERS
-1015F ; [.1907.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE
-10173 ; [.1907.0020.0002] # GREEK ACROPHONIC DELPHIC FIVE MNAS
-102E5 ; [.1907.0020.0002] # COPTIC EPACT DIGIT FIVE
-10321 ; [.1907.0020.0002] # OLD ITALIC NUMERAL FIVE
-104A5 ; [.1907.0020.0002] # OSMANYA DIGIT FIVE
-1087D ; [.1907.0020.0002] # PALMYRENE NUMBER FIVE
-108AC ; [.1907.0020.0002] # NABATAEAN NUMBER FIVE
-10AEC ; [.1907.0020.0002] # MANICHAEAN NUMBER FIVE
-10E64 ; [.1907.0020.0002] # RUMI DIGIT FIVE
-11056 ; [.1907.0020.0002] # BRAHMI NUMBER FIVE
-1106B ; [.1907.0020.0002] # BRAHMI DIGIT FIVE
-110F5 ; [.1907.0020.0002] # SORA SOMPENG DIGIT FIVE
-1113B ; [.1907.0020.0002] # CHAKMA DIGIT FIVE
-111D5 ; [.1907.0020.0002] # SHARADA DIGIT FIVE
-111E5 ; [.1907.0020.0002] # SINHALA ARCHAIC DIGIT FIVE
-112F5 ; [.1907.0020.0002] # KHUDAWADI DIGIT FIVE
-114D5 ; [.1907.0020.0002] # TIRHUTA DIGIT FIVE
-11655 ; [.1907.0020.0002] # MODI DIGIT FIVE
-116C5 ; [.1907.0020.0002] # TAKRI DIGIT FIVE
-118E5 ; [.1907.0020.0002] # WARANG CITI DIGIT FIVE
-12403 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH
-1240A ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE DISH
-12410 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U
-12419 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESH2
-12422 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESHU
-12427 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHAR2
-12431 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHARU
-12439 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BURU
-1244D ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH TENU
-12454 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2
-12455 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
-1246A ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM
-16A65 ; [.1907.0020.0002] # MRO DIGIT FIVE
-16B55 ; [.1907.0020.0002] # PAHAWH HMONG DIGIT FIVE
-1D364 ; [.1907.0020.0002] # COUNTING ROD UNIT DIGIT FIVE
-1E8CB ; [.1907.0020.0002] # MENDE KIKAKUI DIGIT FIVE
-FF15 ; [.1907.0020.0003] # FULLWIDTH DIGIT FIVE
-0F2E ; [.1907.0020.0004] # TIBETAN DIGIT HALF FIVE
-2478 ; [*030A.0020.0004][.1907.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT FIVE
-248C ; [.1907.0020.0004][*0274.0020.0004] # DIGIT FIVE FULL STOP
-1F106 ; [.1907.0020.0004][*0221.0020.0004] # DIGIT FIVE COMMA
-1D7D3 ; [.1907.0020.0005] # MATHEMATICAL BOLD DIGIT FIVE
-1D7DD ; [.1907.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
-1D7E7 ; [.1907.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FIVE
-1D7F1 ; [.1907.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
-1D7FB ; [.1907.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FIVE
-2464 ; [.1907.0020.0006] # CIRCLED DIGIT FIVE
-24F9 ; [.1907.0020.0006] # DOUBLE CIRCLED DIGIT FIVE
-277A ; [.1907.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
-2784 ; [.1907.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
-278E ; [.1907.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
-2075 ; [.1907.0020.0014] # SUPERSCRIPT FIVE
-2085 ; [.1907.0020.0015] # SUBSCRIPT FIVE
-324C ; [.1907.0020.0006][.1902.0020.0006] # CIRCLED NUMBER FIFTY ON BLACK SQUARE
-32BF ; [.1907.0020.0006][.1902.0020.0006] # CIRCLED NUMBER FIFTY
-215A ; [.1907.0020.001E][*05E6.0020.001E][.1908.0020.001E] # VULGAR FRACTION FIVE SIXTHS
-215D ; [.1907.0020.001E][*05E6.0020.001E][.190A.0020.001E] # VULGAR FRACTION FIVE EIGHTHS
-33E4 ; [.1907.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.1907.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.1907.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-0036 ; [.1908.0020.0002] # DIGIT SIX
-0666 ; [.1908.0020.0002] # ARABIC-INDIC DIGIT SIX
-06F6 ; [.1908.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SIX
-07C6 ; [.1908.0020.0002] # NKO DIGIT SIX
-096C ; [.1908.0020.0002] # DEVANAGARI DIGIT SIX
-09EC ; [.1908.0020.0002] # BENGALI DIGIT SIX
-0A6C ; [.1908.0020.0002] # GURMUKHI DIGIT SIX
-0AEC ; [.1908.0020.0002] # GUJARATI DIGIT SIX
-0B6C ; [.1908.0020.0002] # ORIYA DIGIT SIX
-0BEC ; [.1908.0020.0002] # TAMIL DIGIT SIX
-0C6C ; [.1908.0020.0002] # TELUGU DIGIT SIX
-0CEC ; [.1908.0020.0002] # KANNADA DIGIT SIX
-0D6C ; [.1908.0020.0002] # MALAYALAM DIGIT SIX
-0DEC ; [.1908.0020.0002] # SINHALA LITH DIGIT SIX
-0E56 ; [.1908.0020.0002] # THAI DIGIT SIX
-0ED6 ; [.1908.0020.0002] # LAO DIGIT SIX
-0F26 ; [.1908.0020.0002] # TIBETAN DIGIT SIX
-1046 ; [.1908.0020.0002] # MYANMAR DIGIT SIX
-1096 ; [.1908.0020.0002] # MYANMAR SHAN DIGIT SIX
-136E ; [.1908.0020.0002] # ETHIOPIC DIGIT SIX
-17E6 ; [.1908.0020.0002] # KHMER DIGIT SIX
-17F6 ; [.1908.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-MUOY
-1816 ; [.1908.0020.0002] # MONGOLIAN DIGIT SIX
-194C ; [.1908.0020.0002] # LIMBU DIGIT SIX
-19D6 ; [.1908.0020.0002] # NEW TAI LUE DIGIT SIX
-1A86 ; [.1908.0020.0002] # TAI THAM HORA DIGIT SIX
-1A96 ; [.1908.0020.0002] # TAI THAM THAM DIGIT SIX
-1B56 ; [.1908.0020.0002] # BALINESE DIGIT SIX
-1BB6 ; [.1908.0020.0002] # SUNDANESE DIGIT SIX
-1C46 ; [.1908.0020.0002] # LEPCHA DIGIT SIX
-1C56 ; [.1908.0020.0002] # OL CHIKI DIGIT SIX
-2185 ; [.1908.0020.0002] # ROMAN NUMERAL SIX LATE FORM
-3026 ; [.1908.0020.0002] # HANGZHOU NUMERAL SIX
-A626 ; [.1908.0020.0002] # VAI DIGIT SIX
-A8D6 ; [.1908.0020.0002] # SAURASHTRA DIGIT SIX
-A906 ; [.1908.0020.0002] # KAYAH LI DIGIT SIX
-A9D6 ; [.1908.0020.0002] # JAVANESE DIGIT SIX
-A9F6 ; [.1908.0020.0002] # MYANMAR TAI LAING DIGIT SIX
-AA56 ; [.1908.0020.0002] # CHAM DIGIT SIX
-ABF6 ; [.1908.0020.0002] # MEETEI MAYEK DIGIT SIX
-1010C ; [.1908.0020.0002] # AEGEAN NUMBER SIX
-102E6 ; [.1908.0020.0002] # COPTIC EPACT DIGIT SIX
-104A6 ; [.1908.0020.0002] # OSMANYA DIGIT SIX
-10E65 ; [.1908.0020.0002] # RUMI DIGIT SIX
-11057 ; [.1908.0020.0002] # BRAHMI NUMBER SIX
-1106C ; [.1908.0020.0002] # BRAHMI DIGIT SIX
-110F6 ; [.1908.0020.0002] # SORA SOMPENG DIGIT SIX
-1113C ; [.1908.0020.0002] # CHAKMA DIGIT SIX
-111D6 ; [.1908.0020.0002] # SHARADA DIGIT SIX
-111E6 ; [.1908.0020.0002] # SINHALA ARCHAIC DIGIT SIX
-112F6 ; [.1908.0020.0002] # KHUDAWADI DIGIT SIX
-114D6 ; [.1908.0020.0002] # TIRHUTA DIGIT SIX
-11656 ; [.1908.0020.0002] # MODI DIGIT SIX
-116C6 ; [.1908.0020.0002] # TAKRI DIGIT SIX
-118E6 ; [.1908.0020.0002] # WARANG CITI DIGIT SIX
-12404 ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH
-1240B ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX DISH
-12411 ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U
-1241A ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX GESH2
-12428 ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX SHAR2
-12440 ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
-1244E ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH TENU
-1246B ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM
-16A66 ; [.1908.0020.0002] # MRO DIGIT SIX
-16B56 ; [.1908.0020.0002] # PAHAWH HMONG DIGIT SIX
-1D365 ; [.1908.0020.0002] # COUNTING ROD UNIT DIGIT SIX
-1E8CC ; [.1908.0020.0002] # MENDE KIKAKUI DIGIT SIX
-FF16 ; [.1908.0020.0003] # FULLWIDTH DIGIT SIX
-0F2F ; [.1908.0020.0004] # TIBETAN DIGIT HALF SIX
-2479 ; [*030A.0020.0004][.1908.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT SIX
-248D ; [.1908.0020.0004][*0274.0020.0004] # DIGIT SIX FULL STOP
-1F107 ; [.1908.0020.0004][*0221.0020.0004] # DIGIT SIX COMMA
-1D7D4 ; [.1908.0020.0005] # MATHEMATICAL BOLD DIGIT SIX
-1D7DE ; [.1908.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
-1D7E8 ; [.1908.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SIX
-1D7F2 ; [.1908.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
-1D7FC ; [.1908.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SIX
-2465 ; [.1908.0020.0006] # CIRCLED DIGIT SIX
-24FA ; [.1908.0020.0006] # DOUBLE CIRCLED DIGIT SIX
-277B ; [.1908.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SIX
-2785 ; [.1908.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
-278F ; [.1908.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
-2076 ; [.1908.0020.0014] # SUPERSCRIPT SIX
-2086 ; [.1908.0020.0015] # SUBSCRIPT SIX
-324D ; [.1908.0020.0006][.1902.0020.0006] # CIRCLED NUMBER SIXTY ON BLACK SQUARE
-33E5 ; [.1908.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.1908.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.1908.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-0037 ; [.1909.0020.0002] # DIGIT SEVEN
-0667 ; [.1909.0020.0002] # ARABIC-INDIC DIGIT SEVEN
-06F7 ; [.1909.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SEVEN
-07C7 ; [.1909.0020.0002] # NKO DIGIT SEVEN
-096D ; [.1909.0020.0002] # DEVANAGARI DIGIT SEVEN
-09ED ; [.1909.0020.0002] # BENGALI DIGIT SEVEN
-0A6D ; [.1909.0020.0002] # GURMUKHI DIGIT SEVEN
-0AED ; [.1909.0020.0002] # GUJARATI DIGIT SEVEN
-0B6D ; [.1909.0020.0002] # ORIYA DIGIT SEVEN
-0BED ; [.1909.0020.0002] # TAMIL DIGIT SEVEN
-0C6D ; [.1909.0020.0002] # TELUGU DIGIT SEVEN
-0CED ; [.1909.0020.0002] # KANNADA DIGIT SEVEN
-0D6D ; [.1909.0020.0002] # MALAYALAM DIGIT SEVEN
-0DED ; [.1909.0020.0002] # SINHALA LITH DIGIT SEVEN
-0E57 ; [.1909.0020.0002] # THAI DIGIT SEVEN
-0ED7 ; [.1909.0020.0002] # LAO DIGIT SEVEN
-0F27 ; [.1909.0020.0002] # TIBETAN DIGIT SEVEN
-1047 ; [.1909.0020.0002] # MYANMAR DIGIT SEVEN
-1097 ; [.1909.0020.0002] # MYANMAR SHAN DIGIT SEVEN
-136F ; [.1909.0020.0002] # ETHIOPIC DIGIT SEVEN
-17E7 ; [.1909.0020.0002] # KHMER DIGIT SEVEN
-17F7 ; [.1909.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-PII
-1817 ; [.1909.0020.0002] # MONGOLIAN DIGIT SEVEN
-194D ; [.1909.0020.0002] # LIMBU DIGIT SEVEN
-19D7 ; [.1909.0020.0002] # NEW TAI LUE DIGIT SEVEN
-1A87 ; [.1909.0020.0002] # TAI THAM HORA DIGIT SEVEN
-1A97 ; [.1909.0020.0002] # TAI THAM THAM DIGIT SEVEN
-1B57 ; [.1909.0020.0002] # BALINESE DIGIT SEVEN
-1BB7 ; [.1909.0020.0002] # SUNDANESE DIGIT SEVEN
-1C47 ; [.1909.0020.0002] # LEPCHA DIGIT SEVEN
-1C57 ; [.1909.0020.0002] # OL CHIKI DIGIT SEVEN
-3027 ; [.1909.0020.0002] # HANGZHOU NUMERAL SEVEN
-A627 ; [.1909.0020.0002] # VAI DIGIT SEVEN
-A8D7 ; [.1909.0020.0002] # SAURASHTRA DIGIT SEVEN
-A907 ; [.1909.0020.0002] # KAYAH LI DIGIT SEVEN
-A9D7 ; [.1909.0020.0002] # JAVANESE DIGIT SEVEN
-A9F7 ; [.1909.0020.0002] # MYANMAR TAI LAING DIGIT SEVEN
-AA57 ; [.1909.0020.0002] # CHAM DIGIT SEVEN
-ABF7 ; [.1909.0020.0002] # MEETEI MAYEK DIGIT SEVEN
-1010D ; [.1909.0020.0002] # AEGEAN NUMBER SEVEN
-102E7 ; [.1909.0020.0002] # COPTIC EPACT DIGIT SEVEN
-104A7 ; [.1909.0020.0002] # OSMANYA DIGIT SEVEN
-10E66 ; [.1909.0020.0002] # RUMI DIGIT SEVEN
-11058 ; [.1909.0020.0002] # BRAHMI NUMBER SEVEN
-1106D ; [.1909.0020.0002] # BRAHMI DIGIT SEVEN
-110F7 ; [.1909.0020.0002] # SORA SOMPENG DIGIT SEVEN
-1113D ; [.1909.0020.0002] # CHAKMA DIGIT SEVEN
-111D7 ; [.1909.0020.0002] # SHARADA DIGIT SEVEN
-111E7 ; [.1909.0020.0002] # SINHALA ARCHAIC DIGIT SEVEN
-112F7 ; [.1909.0020.0002] # KHUDAWADI DIGIT SEVEN
-114D7 ; [.1909.0020.0002] # TIRHUTA DIGIT SEVEN
-11657 ; [.1909.0020.0002] # MODI DIGIT SEVEN
-116C7 ; [.1909.0020.0002] # TAKRI DIGIT SEVEN
-118E7 ; [.1909.0020.0002] # WARANG CITI DIGIT SEVEN
-12405 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN ASH
-1240C ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN DISH
-12412 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U
-1241B ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN GESH2
-12429 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN SHAR2
-12441 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3
-12442 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A
-12443 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
-1246C ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM
-16A67 ; [.1909.0020.0002] # MRO DIGIT SEVEN
-16B57 ; [.1909.0020.0002] # PAHAWH HMONG DIGIT SEVEN
-1D366 ; [.1909.0020.0002] # COUNTING ROD UNIT DIGIT SEVEN
-1E8CD ; [.1909.0020.0002] # MENDE KIKAKUI DIGIT SEVEN
-FF17 ; [.1909.0020.0003] # FULLWIDTH DIGIT SEVEN
-0F30 ; [.1909.0020.0004] # TIBETAN DIGIT HALF SEVEN
-247A ; [*030A.0020.0004][.1909.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT SEVEN
-248E ; [.1909.0020.0004][*0274.0020.0004] # DIGIT SEVEN FULL STOP
-1F108 ; [.1909.0020.0004][*0221.0020.0004] # DIGIT SEVEN COMMA
-1D7D5 ; [.1909.0020.0005] # MATHEMATICAL BOLD DIGIT SEVEN
-1D7DF ; [.1909.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
-1D7E9 ; [.1909.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SEVEN
-1D7F3 ; [.1909.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
-1D7FD ; [.1909.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SEVEN
-2466 ; [.1909.0020.0006] # CIRCLED DIGIT SEVEN
-24FB ; [.1909.0020.0006] # DOUBLE CIRCLED DIGIT SEVEN
-277C ; [.1909.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
-2786 ; [.1909.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
-2790 ; [.1909.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
-2077 ; [.1909.0020.0014] # SUPERSCRIPT SEVEN
-2087 ; [.1909.0020.0015] # SUBSCRIPT SEVEN
-324E ; [.1909.0020.0006][.1902.0020.0006] # CIRCLED NUMBER SEVENTY ON BLACK SQUARE
-215E ; [.1909.0020.001E][*05E6.0020.001E][.190A.0020.001E] # VULGAR FRACTION SEVEN EIGHTHS
-33E6 ; [.1909.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.1909.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.1909.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-0038 ; [.190A.0020.0002] # DIGIT EIGHT
-0668 ; [.190A.0020.0002] # ARABIC-INDIC DIGIT EIGHT
-06F8 ; [.190A.0020.0002] # EXTENDED ARABIC-INDIC DIGIT EIGHT
-07C8 ; [.190A.0020.0002] # NKO DIGIT EIGHT
-096E ; [.190A.0020.0002] # DEVANAGARI DIGIT EIGHT
-09EE ; [.190A.0020.0002] # BENGALI DIGIT EIGHT
-0A6E ; [.190A.0020.0002] # GURMUKHI DIGIT EIGHT
-0AEE ; [.190A.0020.0002] # GUJARATI DIGIT EIGHT
-0B6E ; [.190A.0020.0002] # ORIYA DIGIT EIGHT
-0BEE ; [.190A.0020.0002] # TAMIL DIGIT EIGHT
-0C6E ; [.190A.0020.0002] # TELUGU DIGIT EIGHT
-0CEE ; [.190A.0020.0002] # KANNADA DIGIT EIGHT
-0D6E ; [.190A.0020.0002] # MALAYALAM DIGIT EIGHT
-0DEE ; [.190A.0020.0002] # SINHALA LITH DIGIT EIGHT
-0E58 ; [.190A.0020.0002] # THAI DIGIT EIGHT
-0ED8 ; [.190A.0020.0002] # LAO DIGIT EIGHT
-0F28 ; [.190A.0020.0002] # TIBETAN DIGIT EIGHT
-1048 ; [.190A.0020.0002] # MYANMAR DIGIT EIGHT
-1098 ; [.190A.0020.0002] # MYANMAR SHAN DIGIT EIGHT
-1370 ; [.190A.0020.0002] # ETHIOPIC DIGIT EIGHT
-17E8 ; [.190A.0020.0002] # KHMER DIGIT EIGHT
-17F8 ; [.190A.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BEI
-1818 ; [.190A.0020.0002] # MONGOLIAN DIGIT EIGHT
-194E ; [.190A.0020.0002] # LIMBU DIGIT EIGHT
-19D8 ; [.190A.0020.0002] # NEW TAI LUE DIGIT EIGHT
-1A88 ; [.190A.0020.0002] # TAI THAM HORA DIGIT EIGHT
-1A98 ; [.190A.0020.0002] # TAI THAM THAM DIGIT EIGHT
-1B58 ; [.190A.0020.0002] # BALINESE DIGIT EIGHT
-1BB8 ; [.190A.0020.0002] # SUNDANESE DIGIT EIGHT
-1C48 ; [.190A.0020.0002] # LEPCHA DIGIT EIGHT
-1C58 ; [.190A.0020.0002] # OL CHIKI DIGIT EIGHT
-3028 ; [.190A.0020.0002] # HANGZHOU NUMERAL EIGHT
-A628 ; [.190A.0020.0002] # VAI DIGIT EIGHT
-A8D8 ; [.190A.0020.0002] # SAURASHTRA DIGIT EIGHT
-A908 ; [.190A.0020.0002] # KAYAH LI DIGIT EIGHT
-A9D8 ; [.190A.0020.0002] # JAVANESE DIGIT EIGHT
-A9F8 ; [.190A.0020.0002] # MYANMAR TAI LAING DIGIT EIGHT
-AA58 ; [.190A.0020.0002] # CHAM DIGIT EIGHT
-ABF8 ; [.190A.0020.0002] # MEETEI MAYEK DIGIT EIGHT
-1010E ; [.190A.0020.0002] # AEGEAN NUMBER EIGHT
-102E8 ; [.190A.0020.0002] # COPTIC EPACT DIGIT EIGHT
-104A8 ; [.190A.0020.0002] # OSMANYA DIGIT EIGHT
-10E67 ; [.190A.0020.0002] # RUMI DIGIT EIGHT
-11059 ; [.190A.0020.0002] # BRAHMI NUMBER EIGHT
-1106E ; [.190A.0020.0002] # BRAHMI DIGIT EIGHT
-110F8 ; [.190A.0020.0002] # SORA SOMPENG DIGIT EIGHT
-1113E ; [.190A.0020.0002] # CHAKMA DIGIT EIGHT
-111D8 ; [.190A.0020.0002] # SHARADA DIGIT EIGHT
-111E8 ; [.190A.0020.0002] # SINHALA ARCHAIC DIGIT EIGHT
-112F8 ; [.190A.0020.0002] # KHUDAWADI DIGIT EIGHT
-114D8 ; [.190A.0020.0002] # TIRHUTA DIGIT EIGHT
-11658 ; [.190A.0020.0002] # MODI DIGIT EIGHT
-116C8 ; [.190A.0020.0002] # TAKRI DIGIT EIGHT
-118E8 ; [.190A.0020.0002] # WARANG CITI DIGIT EIGHT
-12406 ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT ASH
-1240D ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT DISH
-12413 ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U
-1241C ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT GESH2
-1242A ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT SHAR2
-12444 ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU
-12445 ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
-1246D ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM
-16A68 ; [.190A.0020.0002] # MRO DIGIT EIGHT
-16B58 ; [.190A.0020.0002] # PAHAWH HMONG DIGIT EIGHT
-1D367 ; [.190A.0020.0002] # COUNTING ROD UNIT DIGIT EIGHT
-1E8CE ; [.190A.0020.0002] # MENDE KIKAKUI DIGIT EIGHT
-FF18 ; [.190A.0020.0003] # FULLWIDTH DIGIT EIGHT
-0F31 ; [.190A.0020.0004] # TIBETAN DIGIT HALF EIGHT
-247B ; [*030A.0020.0004][.190A.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT EIGHT
-248F ; [.190A.0020.0004][*0274.0020.0004] # DIGIT EIGHT FULL STOP
-1F109 ; [.190A.0020.0004][*0221.0020.0004] # DIGIT EIGHT COMMA
-1D7D6 ; [.190A.0020.0005] # MATHEMATICAL BOLD DIGIT EIGHT
-1D7E0 ; [.190A.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
-1D7EA ; [.190A.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT EIGHT
-1D7F4 ; [.190A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
-1D7FE ; [.190A.0020.0005] # MATHEMATICAL MONOSPACE DIGIT EIGHT
-2467 ; [.190A.0020.0006] # CIRCLED DIGIT EIGHT
-24FC ; [.190A.0020.0006] # DOUBLE CIRCLED DIGIT EIGHT
-277D ; [.190A.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
-2787 ; [.190A.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
-2791 ; [.190A.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
-2078 ; [.190A.0020.0014] # SUPERSCRIPT EIGHT
-2088 ; [.190A.0020.0015] # SUBSCRIPT EIGHT
-324F ; [.190A.0020.0006][.1902.0020.0006] # CIRCLED NUMBER EIGHTY ON BLACK SQUARE
-33E7 ; [.190A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.190A.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.190A.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-0039 ; [.190B.0020.0002] # DIGIT NINE
-0669 ; [.190B.0020.0002] # ARABIC-INDIC DIGIT NINE
-06F9 ; [.190B.0020.0002] # EXTENDED ARABIC-INDIC DIGIT NINE
-07C9 ; [.190B.0020.0002] # NKO DIGIT NINE
-096F ; [.190B.0020.0002] # DEVANAGARI DIGIT NINE
-09EF ; [.190B.0020.0002] # BENGALI DIGIT NINE
-0A6F ; [.190B.0020.0002] # GURMUKHI DIGIT NINE
-0AEF ; [.190B.0020.0002] # GUJARATI DIGIT NINE
-0B6F ; [.190B.0020.0002] # ORIYA DIGIT NINE
-0BEF ; [.190B.0020.0002] # TAMIL DIGIT NINE
-0C6F ; [.190B.0020.0002] # TELUGU DIGIT NINE
-0CEF ; [.190B.0020.0002] # KANNADA DIGIT NINE
-0D6F ; [.190B.0020.0002] # MALAYALAM DIGIT NINE
-0DEF ; [.190B.0020.0002] # SINHALA LITH DIGIT NINE
-0E59 ; [.190B.0020.0002] # THAI DIGIT NINE
-0ED9 ; [.190B.0020.0002] # LAO DIGIT NINE
-0F29 ; [.190B.0020.0002] # TIBETAN DIGIT NINE
-1049 ; [.190B.0020.0002] # MYANMAR DIGIT NINE
-1099 ; [.190B.0020.0002] # MYANMAR SHAN DIGIT NINE
-1371 ; [.190B.0020.0002] # ETHIOPIC DIGIT NINE
-17E9 ; [.190B.0020.0002] # KHMER DIGIT NINE
-17F9 ; [.190B.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BUON
-1819 ; [.190B.0020.0002] # MONGOLIAN DIGIT NINE
-194F ; [.190B.0020.0002] # LIMBU DIGIT NINE
-19D9 ; [.190B.0020.0002] # NEW TAI LUE DIGIT NINE
-1A89 ; [.190B.0020.0002] # TAI THAM HORA DIGIT NINE
-1A99 ; [.190B.0020.0002] # TAI THAM THAM DIGIT NINE
-1B59 ; [.190B.0020.0002] # BALINESE DIGIT NINE
-1BB9 ; [.190B.0020.0002] # SUNDANESE DIGIT NINE
-1C49 ; [.190B.0020.0002] # LEPCHA DIGIT NINE
-1C59 ; [.190B.0020.0002] # OL CHIKI DIGIT NINE
-3029 ; [.190B.0020.0002] # HANGZHOU NUMERAL NINE
-A629 ; [.190B.0020.0002] # VAI DIGIT NINE
-A8D9 ; [.190B.0020.0002] # SAURASHTRA DIGIT NINE
-A909 ; [.190B.0020.0002] # KAYAH LI DIGIT NINE
-A9D9 ; [.190B.0020.0002] # JAVANESE DIGIT NINE
-A9F9 ; [.190B.0020.0002] # MYANMAR TAI LAING DIGIT NINE
-AA59 ; [.190B.0020.0002] # CHAM DIGIT NINE
-ABF9 ; [.190B.0020.0002] # MEETEI MAYEK DIGIT NINE
-1010F ; [.190B.0020.0002] # AEGEAN NUMBER NINE
-102E9 ; [.190B.0020.0002] # COPTIC EPACT DIGIT NINE
-104A9 ; [.190B.0020.0002] # OSMANYA DIGIT NINE
-10E68 ; [.190B.0020.0002] # RUMI DIGIT NINE
-1105A ; [.190B.0020.0002] # BRAHMI NUMBER NINE
-1106F ; [.190B.0020.0002] # BRAHMI DIGIT NINE
-110F9 ; [.190B.0020.0002] # SORA SOMPENG DIGIT NINE
-1113F ; [.190B.0020.0002] # CHAKMA DIGIT NINE
-111D9 ; [.190B.0020.0002] # SHARADA DIGIT NINE
-111E9 ; [.190B.0020.0002] # SINHALA ARCHAIC DIGIT NINE
-112F9 ; [.190B.0020.0002] # KHUDAWADI DIGIT NINE
-114D9 ; [.190B.0020.0002] # TIRHUTA DIGIT NINE
-11659 ; [.190B.0020.0002] # MODI DIGIT NINE
-116C9 ; [.190B.0020.0002] # TAKRI DIGIT NINE
-118E9 ; [.190B.0020.0002] # WARANG CITI DIGIT NINE
-12407 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE ASH
-1240E ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE DISH
-12414 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U
-1241D ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE GESH2
-1242B ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE SHAR2
-12446 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU
-12447 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3
-12448 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4
-12449 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
-1246E ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
-16A69 ; [.190B.0020.0002] # MRO DIGIT NINE
-16B59 ; [.190B.0020.0002] # PAHAWH HMONG DIGIT NINE
-1D368 ; [.190B.0020.0002] # COUNTING ROD UNIT DIGIT NINE
-1E8CF ; [.190B.0020.0002] # MENDE KIKAKUI DIGIT NINE
-FF19 ; [.190B.0020.0003] # FULLWIDTH DIGIT NINE
-0F32 ; [.190B.0020.0004] # TIBETAN DIGIT HALF NINE
-247C ; [*030A.0020.0004][.190B.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT NINE
-2490 ; [.190B.0020.0004][*0274.0020.0004] # DIGIT NINE FULL STOP
-1F10A ; [.190B.0020.0004][*0221.0020.0004] # DIGIT NINE COMMA
-1D7D7 ; [.190B.0020.0005] # MATHEMATICAL BOLD DIGIT NINE
-1D7E1 ; [.190B.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
-1D7EB ; [.190B.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT NINE
-1D7F5 ; [.190B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
-1D7FF ; [.190B.0020.0005] # MATHEMATICAL MONOSPACE DIGIT NINE
-2468 ; [.190B.0020.0006] # CIRCLED DIGIT NINE
-24FD ; [.190B.0020.0006] # DOUBLE CIRCLED DIGIT NINE
-277E ; [.190B.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT NINE
-2788 ; [.190B.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
-2792 ; [.190B.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
-2079 ; [.190B.0020.0014] # SUPERSCRIPT NINE
-2089 ; [.190B.0020.0015] # SUBSCRIPT NINE
-33E8 ; [.190B.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.190B.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.190B.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-0061 ; [.190C.0020.0002] # LATIN SMALL LETTER A
-FF41 ; [.190C.0020.0003] # FULLWIDTH LATIN SMALL LETTER A
-0363 ; [.190C.0020.0004] # COMBINING LATIN SMALL LETTER A
-249C ; [*030A.0020.0004][.190C.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER A
-1D41A ; [.190C.0020.0005] # MATHEMATICAL BOLD SMALL A
-1D44E ; [.190C.0020.0005] # MATHEMATICAL ITALIC SMALL A
-1D482 ; [.190C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL A
-1D4B6 ; [.190C.0020.0005] # MATHEMATICAL SCRIPT SMALL A
-1D4EA ; [.190C.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL A
-1D51E ; [.190C.0020.0005] # MATHEMATICAL FRAKTUR SMALL A
-1D552 ; [.190C.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL A
-1D586 ; [.190C.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL A
-1D5BA ; [.190C.0020.0005] # MATHEMATICAL SANS-SERIF SMALL A
-1D5EE ; [.190C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL A
-1D622 ; [.190C.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL A
-1D656 ; [.190C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
-1D68A ; [.190C.0020.0005] # MATHEMATICAL MONOSPACE SMALL A
-24D0 ; [.190C.0020.0006] # CIRCLED LATIN SMALL LETTER A
-0041 ; [.190C.0020.0008] # LATIN CAPITAL LETTER A
-FF21 ; [.190C.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER A
-1F110 ; [*030A.0020.0004][.190C.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER A
-1D400 ; [.190C.0020.000B] # MATHEMATICAL BOLD CAPITAL A
-1D434 ; [.190C.0020.000B] # MATHEMATICAL ITALIC CAPITAL A
-1D468 ; [.190C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL A
-1D49C ; [.190C.0020.000B] # MATHEMATICAL SCRIPT CAPITAL A
-1D4D0 ; [.190C.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL A
-1D504 ; [.190C.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL A
-1D538 ; [.190C.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL A
-1D56C ; [.190C.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL A
-1D5A0 ; [.190C.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL A
-1D5D4 ; [.190C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL A
-1D608 ; [.190C.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
-1D63C ; [.190C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
-1D670 ; [.190C.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL A
-24B6 ; [.190C.0020.000C] # CIRCLED LATIN CAPITAL LETTER A
-1F150 ; [.190C.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER A
-00AA ; [.190C.0020.0014] # FEMININE ORDINAL INDICATOR
-1D43 ; [.190C.0020.0014] # MODIFIER LETTER SMALL A
-2090 ; [.190C.0020.0015] # LATIN SUBSCRIPT SMALL LETTER A
-1D2C ; [.190C.0020.001D] # MODIFIER LETTER CAPITAL A
-1F130 ; [.190C.0020.001D] # SQUARED LATIN CAPITAL LETTER A
-1F170 ; [.190C.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER A
-00E1 ; [.190C.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH ACUTE
-00E0 ; [.190C.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH GRAVE
-0103 ; [.190C.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE
-0102 ; [.190C.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE
-1EAF ; [.190C.0020.0002][.0000.0026.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.190C.0020.0008][.0000.0026.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB1 ; [.190C.0020.0002][.0000.0026.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.190C.0020.0008][.0000.0026.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB5 ; [.190C.0020.0002][.0000.0026.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.190C.0020.0008][.0000.0026.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.190C.0020.0002][.0000.0026.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.190C.0020.0008][.0000.0026.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-00E2 ; [.190C.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.190C.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA5 ; [.190C.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.190C.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA7 ; [.190C.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.190C.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EAB ; [.190C.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.190C.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.190C.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.190C.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-01CE ; [.190C.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER A WITH CARON
-00E5 ; [.190C.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.190C.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.190C.0020.0008][.0000.0029.0002] # ANGSTROM SIGN
-01FB ; [.190C.0020.0002][.0000.0029.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.190C.0020.0008][.0000.0029.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.190C.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-1DF2 ; [.190C.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER A WITH DIAERESIS
-A79B ; [.190C.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK AE
-00C4 ; [.190C.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS
-A79A ; [.190C.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK AE
-01DF ; [.190C.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.190C.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E3 ; [.190C.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.190C.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH TILDE
-0227 ; [.190C.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0226 ; [.190C.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-01E1 ; [.190C.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E0 ; [.190C.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-0105 ; [.190C.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER A WITH OGONEK
-0104 ; [.190C.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER A WITH OGONEK
-0101 ; [.190C.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH MACRON
-1EA3 ; [.190C.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA2 ; [.190C.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-0201 ; [.190C.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0200 ; [.190C.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0203 ; [.190C.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER A WITH INVERTED BREVE
-0202 ; [.190C.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER A WITH INVERTED BREVE
-1EA1 ; [.190C.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH DOT BELOW
-1EA0 ; [.190C.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EB7 ; [.190C.0020.0002][.0000.0042.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.190C.0020.0008][.0000.0042.0002][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EAD ; [.190C.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.190C.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1E01 ; [.190C.0020.0002][.0000.0044.0002] # LATIN SMALL LETTER A WITH RING BELOW
-1E00 ; [.190C.0020.0008][.0000.0044.0002] # LATIN CAPITAL LETTER A WITH RING BELOW
-1DD3 ; [.190C.0020.0004][.0000.0108.0004] # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE
-A733 ; [.190C.0020.0004][.190C.0020.0004] # LATIN SMALL LETTER AA
-A732 ; [.190C.0020.000A][.190C.0020.000A] # LATIN CAPITAL LETTER AA
-1F18E ; [.190C.0020.001D][.1925.0020.001D] # NEGATIVE SQUARED AB
-2100 ; [.190C.0020.0004][*0387.0020.0004][.193E.0020.0004] # ACCOUNT OF
-00E6 ; [.190C.0020.0004][.0000.0108.0004][.196E.0020.0004] # LATIN SMALL LETTER AE
-1DD4 ; [.190C.0020.0004][.0000.0108.0004][.196E.0020.0004] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.190C.0020.000A][.0000.0108.0004][.196E.0020.000A] # LATIN CAPITAL LETTER AE
-1D2D ; [.190C.0020.0014][.0000.0108.0014][.196E.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.190C.0020.0004][.0000.0108.0004][.196E.0020.0004][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.190C.0020.000A][.0000.0108.0004][.196E.0020.000A][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.190C.0020.0004][.0000.0108.0004][.196E.0020.0004][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.190C.0020.000A][.0000.0108.0004][.196E.0020.000A][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-33C2 ; [.190C.0020.001C][*0274.0020.001C][.1A6E.0020.001C][*0274.0020.001C] # SQUARE AM
-33DF ; [.190C.0020.001D][*05E5.0020.001C][.1A6E.0020.001C] # SQUARE A OVER M
-1DD5 ; [.190C.0020.0004][.1AA1.0020.0004] # COMBINING LATIN SMALL LETTER AO
-A735 ; [.190C.0020.0004][.1AA1.0020.0004] # LATIN SMALL LETTER AO
-A734 ; [.190C.0020.000A][.1AA1.0020.000A] # LATIN CAPITAL LETTER AO
-2101 ; [.190C.0020.0004][*0387.0020.0004][.1B33.0020.0004] # ADDRESSED TO THE SUBJECT
-214D ; [.190C.0020.000A][*0387.0020.0004][.1B33.0020.000A] # AKTIESELSKAB
-A737 ; [.190C.0020.0004][.1B77.0020.0004] # LATIN SMALL LETTER AU
-A736 ; [.190C.0020.000A][.1B77.0020.000A] # LATIN CAPITAL LETTER AU
-3373 ; [.190C.0020.001D][.1B77.0020.001D] # SQUARE AU
-1DD6 ; [.190C.0020.0004][.1BA5.0020.0004] # COMBINING LATIN SMALL LETTER AV
-A739 ; [.190C.0020.0004][.1BA5.0020.0004] # LATIN SMALL LETTER AV
-A738 ; [.190C.0020.000A][.1BA5.0020.000A] # LATIN CAPITAL LETTER AV
-A73B ; [.190C.0020.0004][.0000.0108.0004][.1BA5.0020.0004] # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
-A73A ; [.190C.0020.000A][.0000.0108.0004][.1BA5.0020.000A] # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
-A73D ; [.190C.0020.0004][.1BCD.0020.0004] # LATIN SMALL LETTER AY
-A73C ; [.190C.0020.000A][.1BCD.0020.000A] # LATIN CAPITAL LETTER AY
-1E9A ; [.190C.0020.0004][.1C3F.0020.0004] # LATIN SMALL LETTER A WITH RIGHT HALF RING
-1D00 ; [.1910.0020.0002] # LATIN LETTER SMALL CAPITAL A
-2C65 ; [.1911.0020.0002] # LATIN SMALL LETTER A WITH STROKE
-023A ; [.1911.0020.0008] # LATIN CAPITAL LETTER A WITH STROKE
-1D8F ; [.1912.0020.0002] # LATIN SMALL LETTER A WITH RETROFLEX HOOK
-1D01 ; [.1913.0020.0002] # LATIN LETTER SMALL CAPITAL AE
-1D02 ; [.1914.0020.0002] # LATIN SMALL LETTER TURNED AE
-1D46 ; [.1914.0020.0014] # MODIFIER LETTER SMALL TURNED AE
-AB31 ; [.1915.0020.0002] # LATIN SMALL LETTER A REVERSED-SCHWA
-0250 ; [.1916.0020.0002] # LATIN SMALL LETTER TURNED A
-2C6F ; [.1916.0020.0008] # LATIN CAPITAL LETTER TURNED A
-1D44 ; [.1916.0020.0014] # MODIFIER LETTER SMALL TURNED A
-0251 ; [.191A.0020.0002] # LATIN SMALL LETTER ALPHA
-1DE7 ; [.191A.0020.0004] # COMBINING LATIN SMALL LETTER ALPHA
-2C6D ; [.191A.0020.0008] # LATIN CAPITAL LETTER ALPHA
-1D45 ; [.191A.0020.0014] # MODIFIER LETTER SMALL ALPHA
-AB30 ; [.191E.0020.0002] # LATIN SMALL LETTER BARRED ALPHA
-1D90 ; [.191F.0020.0002] # LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
-0252 ; [.1920.0020.0002] # LATIN SMALL LETTER TURNED ALPHA
-2C70 ; [.1920.0020.0008] # LATIN CAPITAL LETTER TURNED ALPHA
-1D9B ; [.1920.0020.0014] # MODIFIER LETTER SMALL TURNED ALPHA
-AB64 ; [.1924.0020.0002] # LATIN SMALL LETTER INVERTED ALPHA
-0062 ; [.1925.0020.0002] # LATIN SMALL LETTER B
-FF42 ; [.1925.0020.0003] # FULLWIDTH LATIN SMALL LETTER B
-1DE8 ; [.1925.0020.0004] # COMBINING LATIN SMALL LETTER B
-249D ; [*030A.0020.0004][.1925.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER B
-1D41B ; [.1925.0020.0005] # MATHEMATICAL BOLD SMALL B
-1D44F ; [.1925.0020.0005] # MATHEMATICAL ITALIC SMALL B
-1D483 ; [.1925.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL B
-1D4B7 ; [.1925.0020.0005] # MATHEMATICAL SCRIPT SMALL B
-1D4EB ; [.1925.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL B
-1D51F ; [.1925.0020.0005] # MATHEMATICAL FRAKTUR SMALL B
-1D553 ; [.1925.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL B
-1D587 ; [.1925.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL B
-1D5BB ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF SMALL B
-1D5EF ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL B
-1D623 ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL B
-1D657 ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
-1D68B ; [.1925.0020.0005] # MATHEMATICAL MONOSPACE SMALL B
-24D1 ; [.1925.0020.0006] # CIRCLED LATIN SMALL LETTER B
-0042 ; [.1925.0020.0008] # LATIN CAPITAL LETTER B
-FF22 ; [.1925.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER B
-1F111 ; [*030A.0020.0004][.1925.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER B
-212C ; [.1925.0020.000B] # SCRIPT CAPITAL B
-1D401 ; [.1925.0020.000B] # MATHEMATICAL BOLD CAPITAL B
-1D435 ; [.1925.0020.000B] # MATHEMATICAL ITALIC CAPITAL B
-1D469 ; [.1925.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL B
-1D4D1 ; [.1925.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL B
-1D505 ; [.1925.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL B
-1D539 ; [.1925.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D56D ; [.1925.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL B
-1D5A1 ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL B
-1D5D5 ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL B
-1D609 ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
-1D63D ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
-1D671 ; [.1925.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL B
-24B7 ; [.1925.0020.000C] # CIRCLED LATIN CAPITAL LETTER B
-1F151 ; [.1925.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER B
-1D47 ; [.1925.0020.0014] # MODIFIER LETTER SMALL B
-1D2E ; [.1925.0020.001D] # MODIFIER LETTER CAPITAL B
-1F131 ; [.1925.0020.001D] # SQUARED LATIN CAPITAL LETTER B
-1F171 ; [.1925.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER B
-1E03 ; [.1925.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER B WITH DOT ABOVE
-1E02 ; [.1925.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E05 ; [.1925.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER B WITH DOT BELOW
-1E04 ; [.1925.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER B WITH DOT BELOW
-1E07 ; [.1925.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER B WITH LINE BELOW
-1E06 ; [.1925.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER B WITH LINE BELOW
-3374 ; [.1925.0020.001C][.190C.0020.001C][.1AF5.0020.001C] # SQUARE BAR
-33C3 ; [.1925.0020.001D][.1AE3.0020.001C] # SQUARE BQ
-0299 ; [.1929.0020.0002] # LATIN LETTER SMALL CAPITAL B
-0180 ; [.192D.0020.0002] # LATIN SMALL LETTER B WITH STROKE
-0243 ; [.192D.0020.0008] # LATIN CAPITAL LETTER B WITH STROKE
-1D2F ; [.1931.0020.0002] # MODIFIER LETTER CAPITAL BARRED B
-1D03 ; [.1932.0020.0002] # LATIN LETTER SMALL CAPITAL BARRED B
-1D6C ; [.1933.0020.0002] # LATIN SMALL LETTER B WITH MIDDLE TILDE
-A797 ; [.1934.0020.0002] # LATIN SMALL LETTER B WITH FLOURISH
-A796 ; [.1934.0020.0008] # LATIN CAPITAL LETTER B WITH FLOURISH
-1D80 ; [.1935.0020.0002] # LATIN SMALL LETTER B WITH PALATAL HOOK
-0253 ; [.1936.0020.0002] # LATIN SMALL LETTER B WITH HOOK
-0181 ; [.1936.0020.0008] # LATIN CAPITAL LETTER B WITH HOOK
-0183 ; [.193A.0020.0002] # LATIN SMALL LETTER B WITH TOPBAR
-0182 ; [.193A.0020.0008] # LATIN CAPITAL LETTER B WITH TOPBAR
-0063 ; [.193E.0020.0002] # LATIN SMALL LETTER C
-FF43 ; [.193E.0020.0003] # FULLWIDTH LATIN SMALL LETTER C
-0368 ; [.193E.0020.0004] # COMBINING LATIN SMALL LETTER C
-217D ; [.193E.0020.0004] # SMALL ROMAN NUMERAL ONE HUNDRED
-249E ; [*030A.0020.0004][.193E.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER C
-1D41C ; [.193E.0020.0005] # MATHEMATICAL BOLD SMALL C
-1D450 ; [.193E.0020.0005] # MATHEMATICAL ITALIC SMALL C
-1D484 ; [.193E.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL C
-1D4B8 ; [.193E.0020.0005] # MATHEMATICAL SCRIPT SMALL C
-1D4EC ; [.193E.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL C
-1D520 ; [.193E.0020.0005] # MATHEMATICAL FRAKTUR SMALL C
-1D554 ; [.193E.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL C
-1D588 ; [.193E.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL C
-1D5BC ; [.193E.0020.0005] # MATHEMATICAL SANS-SERIF SMALL C
-1D5F0 ; [.193E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL C
-1D624 ; [.193E.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL C
-1D658 ; [.193E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
-1D68C ; [.193E.0020.0005] # MATHEMATICAL MONOSPACE SMALL C
-24D2 ; [.193E.0020.0006] # CIRCLED LATIN SMALL LETTER C
-0043 ; [.193E.0020.0008] # LATIN CAPITAL LETTER C
-FF23 ; [.193E.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER C
-2103 ; [*04BA.0020.0004][.193E.0020.000A] # DEGREE CELSIUS
-216D ; [.193E.0020.000A] # ROMAN NUMERAL ONE HUNDRED
-1F112 ; [*030A.0020.0004][.193E.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER C
-2102 ; [.193E.0020.000B] # DOUBLE-STRUCK CAPITAL C
-212D ; [.193E.0020.000B] # BLACK-LETTER CAPITAL C
-1D402 ; [.193E.0020.000B] # MATHEMATICAL BOLD CAPITAL C
-1D436 ; [.193E.0020.000B] # MATHEMATICAL ITALIC CAPITAL C
-1D46A ; [.193E.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL C
-1D49E ; [.193E.0020.000B] # MATHEMATICAL SCRIPT CAPITAL C
-1D4D2 ; [.193E.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL C
-1D56E ; [.193E.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL C
-1D5A2 ; [.193E.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL C
-1D5D6 ; [.193E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL C
-1D60A ; [.193E.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
-1D63E ; [.193E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
-1D672 ; [.193E.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL C
-24B8 ; [.193E.0020.000C] # CIRCLED LATIN CAPITAL LETTER C
-1F12B ; [.193E.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER C
-1F152 ; [.193E.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER C
-1D9C ; [.193E.0020.0014] # MODIFIER LETTER SMALL C
-1F132 ; [.193E.0020.001D] # SQUARED LATIN CAPITAL LETTER C
-1F172 ; [.193E.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER C
-0107 ; [.193E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.193E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH ACUTE
-0109 ; [.193E.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
-0108 ; [.193E.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-010D ; [.193E.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193E.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER C WITH CARON
-010B ; [.193E.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-010A ; [.193E.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-00E7 ; [.193E.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER C WITH CEDILLA
-1DD7 ; [.193E.0020.0004][.0000.0030.0004] # COMBINING LATIN SMALL LETTER C CEDILLA
-00C7 ; [.193E.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER C WITH CEDILLA
-1E09 ; [.193E.0020.0002][.0000.0030.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E08 ; [.193E.0020.0008][.0000.0030.0002][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-3388 ; [.193E.0020.001C][.190C.0020.001C][.1A3B.0020.001C] # SQUARE CAL
-33C4 ; [.193E.0020.001C][.193E.0020.001C] # SQUARE CC
-1F12D ; [.193E.0020.000C][.1953.0020.000C] # CIRCLED CD
-33C5 ; [.193E.0020.001C][.1953.0020.001C] # SQUARE CD
-33C6 ; [.193E.0020.001D][*05E5.0020.001C][.1A29.0020.001C][.19B8.0020.001C] # SQUARE C OVER KG
-1F191 ; [.193E.0020.001D][.1A3B.0020.001D] # SQUARED CL
-339D ; [.193E.0020.001C][.1A6E.0020.001C] # SQUARE CM
-33A0 ; [.193E.0020.001C][.1A6E.0020.001C][.1904.0020.001C] # SQUARE CM SQUARED
-33A4 ; [.193E.0020.001C][.1A6E.0020.001C][.1905.0020.001C] # SQUARE CM CUBED
-2105 ; [.193E.0020.0004][*0387.0020.0004][.1AA1.0020.0004] # CARE OF
-33C7 ; [.193E.0020.001D][.1AA1.0020.001C][*0274.0020.001C] # SQUARE CO
-1F192 ; [.193E.0020.001D][.1AA1.0020.001D][.1AA1.0020.001D][.1A3B.0020.001D] # SQUARED COOL
-2106 ; [.193E.0020.0004][*0387.0020.0004][.1B77.0020.0004] # CADA UNA
-1D04 ; [.1942.0020.0002] # LATIN LETTER SMALL CAPITAL C
-023C ; [.1943.0020.0002] # LATIN SMALL LETTER C WITH STROKE
-023B ; [.1943.0020.0008] # LATIN CAPITAL LETTER C WITH STROKE
-A793 ; [.1947.0020.0002] # LATIN SMALL LETTER C WITH BAR
-A792 ; [.1947.0020.0008] # LATIN CAPITAL LETTER C WITH BAR
-A794 ; [.1948.0020.0002] # LATIN SMALL LETTER C WITH PALATAL HOOK
-0188 ; [.1949.0020.0002] # LATIN SMALL LETTER C WITH HOOK
-0187 ; [.1949.0020.0008] # LATIN CAPITAL LETTER C WITH HOOK
-0255 ; [.194D.0020.0002] # LATIN SMALL LETTER C WITH CURL
-1D9D ; [.194D.0020.0014] # MODIFIER LETTER SMALL C WITH CURL
-2184 ; [.1951.0020.0002] # LATIN SMALL LETTER REVERSED C
-2183 ; [.1951.0020.0008] # ROMAN NUMERAL REVERSED ONE HUNDRED
-A73F ; [.1952.0020.0002] # LATIN SMALL LETTER REVERSED C WITH DOT
-A73E ; [.1952.0020.0008] # LATIN CAPITAL LETTER REVERSED C WITH DOT
-0064 ; [.1953.0020.0002] # LATIN SMALL LETTER D
-FF44 ; [.1953.0020.0003] # FULLWIDTH LATIN SMALL LETTER D
-0369 ; [.1953.0020.0004] # COMBINING LATIN SMALL LETTER D
-217E ; [.1953.0020.0004] # SMALL ROMAN NUMERAL FIVE HUNDRED
-249F ; [*030A.0020.0004][.1953.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER D
-2146 ; [.1953.0020.0005] # DOUBLE-STRUCK ITALIC SMALL D
-1D41D ; [.1953.0020.0005] # MATHEMATICAL BOLD SMALL D
-1D451 ; [.1953.0020.0005] # MATHEMATICAL ITALIC SMALL D
-1D485 ; [.1953.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL D
-1D4B9 ; [.1953.0020.0005] # MATHEMATICAL SCRIPT SMALL D
-1D4ED ; [.1953.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL D
-1D521 ; [.1953.0020.0005] # MATHEMATICAL FRAKTUR SMALL D
-1D555 ; [.1953.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL D
-1D589 ; [.1953.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL D
-1D5BD ; [.1953.0020.0005] # MATHEMATICAL SANS-SERIF SMALL D
-1D5F1 ; [.1953.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL D
-1D625 ; [.1953.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL D
-1D659 ; [.1953.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
-1D68D ; [.1953.0020.0005] # MATHEMATICAL MONOSPACE SMALL D
-24D3 ; [.1953.0020.0006] # CIRCLED LATIN SMALL LETTER D
-0044 ; [.1953.0020.0008] # LATIN CAPITAL LETTER D
-FF24 ; [.1953.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER D
-216E ; [.1953.0020.000A] # ROMAN NUMERAL FIVE HUNDRED
-1F113 ; [*030A.0020.0004][.1953.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER D
-2145 ; [.1953.0020.000B] # DOUBLE-STRUCK ITALIC CAPITAL D
-1D403 ; [.1953.0020.000B] # MATHEMATICAL BOLD CAPITAL D
-1D437 ; [.1953.0020.000B] # MATHEMATICAL ITALIC CAPITAL D
-1D46B ; [.1953.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL D
-1D49F ; [.1953.0020.000B] # MATHEMATICAL SCRIPT CAPITAL D
-1D4D3 ; [.1953.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL D
-1D507 ; [.1953.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL D
-1D53B ; [.1953.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL D
-1D56F ; [.1953.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL D
-1D5A3 ; [.1953.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL D
-1D5D7 ; [.1953.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL D
-1D60B ; [.1953.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
-1D63F ; [.1953.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
-1D673 ; [.1953.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL D
-24B9 ; [.1953.0020.000C] # CIRCLED LATIN CAPITAL LETTER D
-1F153 ; [.1953.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER D
-1D48 ; [.1953.0020.0014] # MODIFIER LETTER SMALL D
-1D30 ; [.1953.0020.001D] # MODIFIER LETTER CAPITAL D
-1F133 ; [.1953.0020.001D] # SQUARED LATIN CAPITAL LETTER D
-1F173 ; [.1953.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER D
-010F ; [.1953.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER D WITH CARON
-010E ; [.1953.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER D WITH CARON
-1E0B ; [.1953.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER D WITH DOT ABOVE
-1E0A ; [.1953.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E11 ; [.1953.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER D WITH CEDILLA
-1E10 ; [.1953.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER D WITH CEDILLA
-0111 ; [.1953.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-1E0D ; [.1953.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER D WITH DOT BELOW
-1E0C ; [.1953.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER D WITH DOT BELOW
-1E13 ; [.1953.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E12 ; [.1953.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E0F ; [.1953.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER D WITH LINE BELOW
-1E0E ; [.1953.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER D WITH LINE BELOW
-00F0 ; [.1953.0020.0004][.0000.0108.0004] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0020.0004][.0000.0108.0004] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0020.000A][.0000.0108.0004] # LATIN CAPITAL LETTER ETH
-1D9E ; [.1953.0020.0014][.0000.0108.0014] # MODIFIER LETTER SMALL ETH
-1DD8 ; [.1953.0020.0004][.0000.0109.0004] # COMBINING LATIN SMALL LETTER INSULAR D
-A77A ; [.1953.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR D
-A779 ; [.1953.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR D
-3372 ; [.1953.0020.001C][.190C.0020.001C] # SQUARE DA
-0238 ; [.1953.0020.0004][.1925.0020.0004] # LATIN SMALL LETTER DB DIGRAPH
-33C8 ; [.1953.0020.001C][.1925.0020.001D] # SQUARE DB
-1F190 ; [.1953.0020.001D][.1A10.0020.001D] # SQUARE DJ
-3397 ; [.1953.0020.001C][.1A3B.0020.001C] # SQUARE DL
-3377 ; [.1953.0020.001C][.1A6E.0020.001C] # SQUARE DM
-3378 ; [.1953.0020.001C][.1A6E.0020.001C][.1904.0020.001C] # SQUARE DM SQUARED
-3379 ; [.1953.0020.001C][.1A6E.0020.001C][.1905.0020.001C] # SQUARE DM CUBED
-01F3 ; [.1953.0020.0004][.1BE3.0020.0004] # LATIN SMALL LETTER DZ
-02A3 ; [.1953.0020.0004][.1BE3.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH
-01F2 ; [.1953.0020.000A][.1BE3.0020.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-01F1 ; [.1953.0020.000A][.1BE3.0020.000A] # LATIN CAPITAL LETTER DZ
-01C6 ; [.1953.0020.0004][.1BE3.0020.0004][.0000.0028.0004] # LATIN SMALL LETTER DZ WITH CARON
-01C5 ; [.1953.0020.000A][.1BE3.0020.0004][.0000.0028.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-01C4 ; [.1953.0020.000A][.1BE3.0020.000A][.0000.0028.0004] # LATIN CAPITAL LETTER DZ WITH CARON
-02A5 ; [.1953.0020.0004][.1BF6.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-02A4 ; [.1953.0020.0004][.1C00.0020.0004] # LATIN SMALL LETTER DEZH DIGRAPH
-1D05 ; [.1957.0020.0002] # LATIN LETTER SMALL CAPITAL D
-1D06 ; [.1958.0020.0002] # LATIN LETTER SMALL CAPITAL ETH
-1D6D ; [.1959.0020.0002] # LATIN SMALL LETTER D WITH MIDDLE TILDE
-1D81 ; [.195A.0020.0002] # LATIN SMALL LETTER D WITH PALATAL HOOK
-0256 ; [.195B.0020.0002] # LATIN SMALL LETTER D WITH TAIL
-0189 ; [.195B.0020.0008] # LATIN CAPITAL LETTER AFRICAN D
-0257 ; [.195F.0020.0002] # LATIN SMALL LETTER D WITH HOOK
-018A ; [.195F.0020.0008] # LATIN CAPITAL LETTER D WITH HOOK
-1D91 ; [.1963.0020.0002] # LATIN SMALL LETTER D WITH HOOK AND TAIL
-018C ; [.1964.0020.0002] # LATIN SMALL LETTER D WITH TOPBAR
-018B ; [.1964.0020.0008] # LATIN CAPITAL LETTER D WITH TOPBAR
-0221 ; [.1968.0020.0002] # LATIN SMALL LETTER D WITH CURL
-A771 ; [.196C.0020.0002] # LATIN SMALL LETTER DUM
-1E9F ; [.196D.0020.0002] # LATIN SMALL LETTER DELTA
-0065 ; [.196E.0020.0002] # LATIN SMALL LETTER E
-FF45 ; [.196E.0020.0003] # FULLWIDTH LATIN SMALL LETTER E
-0364 ; [.196E.0020.0004] # COMBINING LATIN SMALL LETTER E
-24A0 ; [*030A.0020.0004][.196E.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER E
-212F ; [.196E.0020.0005] # SCRIPT SMALL E
-2147 ; [.196E.0020.0005] # DOUBLE-STRUCK ITALIC SMALL E
-1D41E ; [.196E.0020.0005] # MATHEMATICAL BOLD SMALL E
-1D452 ; [.196E.0020.0005] # MATHEMATICAL ITALIC SMALL E
-1D486 ; [.196E.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL E
-1D4EE ; [.196E.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL E
-1D522 ; [.196E.0020.0005] # MATHEMATICAL FRAKTUR SMALL E
-1D556 ; [.196E.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL E
-1D58A ; [.196E.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL E
-1D5BE ; [.196E.0020.0005] # MATHEMATICAL SANS-SERIF SMALL E
-1D5F2 ; [.196E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL E
-1D626 ; [.196E.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL E
-1D65A ; [.196E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
-1D68E ; [.196E.0020.0005] # MATHEMATICAL MONOSPACE SMALL E
-24D4 ; [.196E.0020.0006] # CIRCLED LATIN SMALL LETTER E
-0045 ; [.196E.0020.0008] # LATIN CAPITAL LETTER E
-FF25 ; [.196E.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER E
-1F114 ; [*030A.0020.0004][.196E.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER E
-2130 ; [.196E.0020.000B] # SCRIPT CAPITAL E
-1D404 ; [.196E.0020.000B] # MATHEMATICAL BOLD CAPITAL E
-1D438 ; [.196E.0020.000B] # MATHEMATICAL ITALIC CAPITAL E
-1D46C ; [.196E.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL E
-1D4D4 ; [.196E.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL E
-1D508 ; [.196E.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL E
-1D53C ; [.196E.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL E
-1D570 ; [.196E.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL E
-1D5A4 ; [.196E.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL E
-1D5D8 ; [.196E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL E
-1D60C ; [.196E.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
-1D640 ; [.196E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
-1D674 ; [.196E.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL E
-24BA ; [.196E.0020.000C] # CIRCLED LATIN CAPITAL LETTER E
-1F154 ; [.196E.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER E
-1D49 ; [.196E.0020.0014] # MODIFIER LETTER SMALL E
-2091 ; [.196E.0020.0015] # LATIN SUBSCRIPT SMALL LETTER E
-1D31 ; [.196E.0020.001D] # MODIFIER LETTER CAPITAL E
-1F134 ; [.196E.0020.001D] # SQUARED LATIN CAPITAL LETTER E
-1F174 ; [.196E.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER E
-00E9 ; [.196E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH ACUTE
-00E8 ; [.196E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH GRAVE
-0115 ; [.196E.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH BREVE
-0114 ; [.196E.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH BREVE
-00EA ; [.196E.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EBF ; [.196E.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC1 ; [.196E.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC5 ; [.196E.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-011B ; [.196E.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER E WITH CARON
-00EB ; [.196E.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.196E.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER E WITH DIAERESIS
-1EBD ; [.196E.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH TILDE
-1EBC ; [.196E.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH TILDE
-0117 ; [.196E.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0116 ; [.196E.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0229 ; [.196E.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER E WITH CEDILLA
-0228 ; [.196E.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER E WITH CEDILLA
-1E1D ; [.196E.0020.0002][.0000.0030.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1C ; [.196E.0020.0008][.0000.0030.0002][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-0119 ; [.196E.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.196E.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER E WITH OGONEK
-0113 ; [.196E.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
-1E17 ; [.196E.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E16 ; [.196E.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E15 ; [.196E.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E14 ; [.196E.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1EBB ; [.196E.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBA ; [.196E.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-0205 ; [.196E.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0204 ; [.196E.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0207 ; [.196E.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER E WITH INVERTED BREVE
-0206 ; [.196E.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER E WITH INVERTED BREVE
-1EB9 ; [.196E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH DOT BELOW
-1EB8 ; [.196E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EC7 ; [.196E.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1E19 ; [.196E.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E18 ; [.196E.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E1B ; [.196E.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER E WITH TILDE BELOW
-1E1A ; [.196E.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER E WITH TILDE BELOW
-32CD ; [.196E.0020.001C][.1AF5.0020.001C][.19B8.0020.001C] # SQUARE ERG
-32CE ; [.196E.0020.001C][.1BA5.0020.001D] # SQUARE EV
-1D07 ; [.1972.0020.0002] # LATIN LETTER SMALL CAPITAL E
-AB32 ; [.1973.0020.0002] # LATIN SMALL LETTER BLACKLETTER E
-AB33 ; [.1974.0020.0002] # LATIN SMALL LETTER BARRED E
-0247 ; [.1975.0020.0002] # LATIN SMALL LETTER E WITH STROKE
-0246 ; [.1975.0020.0008] # LATIN CAPITAL LETTER E WITH STROKE
-1D92 ; [.1979.0020.0002] # LATIN SMALL LETTER E WITH RETROFLEX HOOK
-AB34 ; [.197A.0020.0002] # LATIN SMALL LETTER E WITH FLOURISH
-2C78 ; [.197B.0020.0002] # LATIN SMALL LETTER E WITH NOTCH
-01DD ; [.197C.0020.0002] # LATIN SMALL LETTER TURNED E
-018E ; [.197C.0020.0008] # LATIN CAPITAL LETTER REVERSED E
-1D32 ; [.197C.0020.001D] # MODIFIER LETTER CAPITAL REVERSED E
-2C7B ; [.1980.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED E
-0259 ; [.1981.0020.0002] # LATIN SMALL LETTER SCHWA
-1DEA ; [.1981.0020.0004] # COMBINING LATIN SMALL LETTER SCHWA
-018F ; [.1981.0020.0008] # LATIN CAPITAL LETTER SCHWA
-1D4A ; [.1981.0020.0014] # MODIFIER LETTER SMALL SCHWA
-2094 ; [.1981.0020.0015] # LATIN SUBSCRIPT SMALL LETTER SCHWA
-1D95 ; [.1985.0020.0002] # LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
-025B ; [.1986.0020.0002] # LATIN SMALL LETTER OPEN E
-0190 ; [.1986.0020.0008] # LATIN CAPITAL LETTER OPEN E
-2107 ; [.1986.0020.000A] # EULER CONSTANT
-1D4B ; [.1986.0020.0014] # MODIFIER LETTER SMALL OPEN E
-1D93 ; [.198A.0020.0002] # LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
-0258 ; [.198B.0020.0002] # LATIN SMALL LETTER REVERSED E
-025A ; [.198F.0020.0002] # LATIN SMALL LETTER SCHWA WITH HOOK
-025C ; [.1993.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E
-A7AB ; [.1993.0020.0008] # LATIN CAPITAL LETTER REVERSED OPEN E
-1D9F ; [.1993.0020.0014] # MODIFIER LETTER SMALL REVERSED OPEN E
-1D94 ; [.1997.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
-1D08 ; [.1998.0020.0002] # LATIN SMALL LETTER TURNED OPEN E
-1D4C ; [.1998.0020.0014] # MODIFIER LETTER SMALL TURNED OPEN E
-025D ; [.1999.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-025E ; [.199D.0020.0002] # LATIN SMALL LETTER CLOSED REVERSED OPEN E
-029A ; [.19A1.0020.0002] # LATIN SMALL LETTER CLOSED OPEN E
-0264 ; [.19A5.0020.0002] # LATIN SMALL LETTER RAMS HORN
-0066 ; [.19A9.0020.0002] # LATIN SMALL LETTER F
-FF46 ; [.19A9.0020.0003] # FULLWIDTH LATIN SMALL LETTER F
-1DEB ; [.19A9.0020.0004] # COMBINING LATIN SMALL LETTER F
-24A1 ; [*030A.0020.0004][.19A9.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER F
-1D41F ; [.19A9.0020.0005] # MATHEMATICAL BOLD SMALL F
-1D453 ; [.19A9.0020.0005] # MATHEMATICAL ITALIC SMALL F
-1D487 ; [.19A9.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL F
-1D4BB ; [.19A9.0020.0005] # MATHEMATICAL SCRIPT SMALL F
-1D4EF ; [.19A9.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL F
-1D523 ; [.19A9.0020.0005] # MATHEMATICAL FRAKTUR SMALL F
-1D557 ; [.19A9.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL F
-1D58B ; [.19A9.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL F
-1D5BF ; [.19A9.0020.0005] # MATHEMATICAL SANS-SERIF SMALL F
-1D5F3 ; [.19A9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL F
-1D627 ; [.19A9.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL F
-1D65B ; [.19A9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
-1D68F ; [.19A9.0020.0005] # MATHEMATICAL MONOSPACE SMALL F
-24D5 ; [.19A9.0020.0006] # CIRCLED LATIN SMALL LETTER F
-0046 ; [.19A9.0020.0008] # LATIN CAPITAL LETTER F
-FF26 ; [.19A9.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER F
-2109 ; [*04BA.0020.0004][.19A9.0020.000A] # DEGREE FAHRENHEIT
-1F115 ; [*030A.0020.0004][.19A9.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER F
-2131 ; [.19A9.0020.000B] # SCRIPT CAPITAL F
-1D405 ; [.19A9.0020.000B] # MATHEMATICAL BOLD CAPITAL F
-1D439 ; [.19A9.0020.000B] # MATHEMATICAL ITALIC CAPITAL F
-1D46D ; [.19A9.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL F
-1D4D5 ; [.19A9.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL F
-1D509 ; [.19A9.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL F
-1D53D ; [.19A9.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL F
-1D571 ; [.19A9.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL F
-1D5A5 ; [.19A9.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL F
-1D5D9 ; [.19A9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL F
-1D60D ; [.19A9.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
-1D641 ; [.19A9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
-1D675 ; [.19A9.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL F
-24BB ; [.19A9.0020.000C] # CIRCLED LATIN CAPITAL LETTER F
-1F155 ; [.19A9.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER F
-1DA0 ; [.19A9.0020.0014] # MODIFIER LETTER SMALL F
-1F135 ; [.19A9.0020.001D] # SQUARED LATIN CAPITAL LETTER F
-1F175 ; [.19A9.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER F
-1E1F ; [.19A9.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER F WITH DOT ABOVE
-1E1E ; [.19A9.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER F WITH DOT ABOVE
-A77C ; [.19A9.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR F
-A77B ; [.19A9.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR F
-213B ; [.19A9.0020.000A][.190C.0020.000A][.1BC1.0020.000A] # FACSIMILE SIGN
-FB00 ; [.19A9.0020.0004][.19A9.0020.0004] # LATIN SMALL LIGATURE FF
-FB03 ; [.19A9.0020.0004][.19A9.0020.0004][.19F6.0020.0004] # LATIN SMALL LIGATURE FFI
-FB04 ; [.19A9.0020.0004][.19A9.0020.0004][.1A3B.0020.0004] # LATIN SMALL LIGATURE FFL
-FB01 ; [.19A9.0020.0004][.19F6.0020.0004] # LATIN SMALL LIGATURE FI
-FB02 ; [.19A9.0020.0004][.1A3B.0020.0004] # LATIN SMALL LIGATURE FL
-3399 ; [.19A9.0020.001C][.1A6E.0020.001C] # SQUARE FM
-02A9 ; [.19A9.0020.0004][.1A9C.0020.0004] # LATIN SMALL LETTER FENG DIGRAPH
-1F193 ; [.19A9.0020.001D][.1AF5.0020.001D][.196E.0020.001D][.196E.0020.001D] # SQUARED FREE
-A730 ; [.19AD.0020.0002] # LATIN LETTER SMALL CAPITAL F
-AB35 ; [.19AE.0020.0002] # LATIN SMALL LETTER LENIS F
-A799 ; [.19AF.0020.0002] # LATIN SMALL LETTER F WITH STROKE
-A798 ; [.19AF.0020.0008] # LATIN CAPITAL LETTER F WITH STROKE
-1D6E ; [.19B0.0020.0002] # LATIN SMALL LETTER F WITH MIDDLE TILDE
-1D82 ; [.19B1.0020.0002] # LATIN SMALL LETTER F WITH PALATAL HOOK
-0192 ; [.19B2.0020.0002] # LATIN SMALL LETTER F WITH HOOK
-0191 ; [.19B2.0020.0008] # LATIN CAPITAL LETTER F WITH HOOK
-214E ; [.19B6.0020.0002] # TURNED SMALL F
-2132 ; [.19B6.0020.0008] # TURNED CAPITAL F
-A7FB ; [.19B7.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED F
-0067 ; [.19B8.0020.0002] # LATIN SMALL LETTER G
-FF47 ; [.19B8.0020.0003] # FULLWIDTH LATIN SMALL LETTER G
-1DDA ; [.19B8.0020.0004] # COMBINING LATIN SMALL LETTER G
-24A2 ; [*030A.0020.0004][.19B8.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER G
-210A ; [.19B8.0020.0005] # SCRIPT SMALL G
-1D420 ; [.19B8.0020.0005] # MATHEMATICAL BOLD SMALL G
-1D454 ; [.19B8.0020.0005] # MATHEMATICAL ITALIC SMALL G
-1D488 ; [.19B8.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL G
-1D4F0 ; [.19B8.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL G
-1D524 ; [.19B8.0020.0005] # MATHEMATICAL FRAKTUR SMALL G
-1D558 ; [.19B8.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL G
-1D58C ; [.19B8.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL G
-1D5C0 ; [.19B8.0020.0005] # MATHEMATICAL SANS-SERIF SMALL G
-1D5F4 ; [.19B8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL G
-1D628 ; [.19B8.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL G
-1D65C ; [.19B8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
-1D690 ; [.19B8.0020.0005] # MATHEMATICAL MONOSPACE SMALL G
-24D6 ; [.19B8.0020.0006] # CIRCLED LATIN SMALL LETTER G
-0047 ; [.19B8.0020.0008] # LATIN CAPITAL LETTER G
-FF27 ; [.19B8.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER G
-1F116 ; [*030A.0020.0004][.19B8.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER G
-1D406 ; [.19B8.0020.000B] # MATHEMATICAL BOLD CAPITAL G
-1D43A ; [.19B8.0020.000B] # MATHEMATICAL ITALIC CAPITAL G
-1D46E ; [.19B8.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL G
-1D4A2 ; [.19B8.0020.000B] # MATHEMATICAL SCRIPT CAPITAL G
-1D4D6 ; [.19B8.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL G
-1D50A ; [.19B8.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL G
-1D53E ; [.19B8.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D572 ; [.19B8.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL G
-1D5A6 ; [.19B8.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL G
-1D5DA ; [.19B8.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL G
-1D60E ; [.19B8.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
-1D642 ; [.19B8.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
-1D676 ; [.19B8.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL G
-24BC ; [.19B8.0020.000C] # CIRCLED LATIN CAPITAL LETTER G
-1F156 ; [.19B8.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER G
-1D4D ; [.19B8.0020.0014] # MODIFIER LETTER SMALL G
-1D33 ; [.19B8.0020.001D] # MODIFIER LETTER CAPITAL G
-1F136 ; [.19B8.0020.001D] # SQUARED LATIN CAPITAL LETTER G
-1F176 ; [.19B8.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER G
-01F5 ; [.19B8.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER G WITH ACUTE
-01F4 ; [.19B8.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER G WITH ACUTE
-011F ; [.19B8.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.19B8.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER G WITH BREVE
-011D ; [.19B8.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011C ; [.19B8.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-01E7 ; [.19B8.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER G WITH CARON
-01E6 ; [.19B8.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER G WITH CARON
-0121 ; [.19B8.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0120 ; [.19B8.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0123 ; [.19B8.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0122 ; [.19B8.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER G WITH CEDILLA
-1E21 ; [.19B8.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER G WITH MACRON
-1E20 ; [.19B8.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER G WITH MACRON
-A7A1 ; [.19B8.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER G WITH OBLIQUE STROKE
-A7A0 ; [.19B8.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
-1D79 ; [.19B8.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR G
-A77D ; [.19B8.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR G
-33FF ; [.19B8.0020.001C][.190C.0020.001C][.1A3B.0020.001C] # SQUARE GAL
-3387 ; [.19B8.0020.001D][.1925.0020.001D] # SQUARE GB
-3393 ; [.19B8.0020.001D][.19DC.0020.001D][.1BE3.0020.001C] # SQUARE GHZ
-33AC ; [.19B8.0020.001D][.1ACE.0020.001D][.190C.0020.001C] # SQUARE GPA
-33C9 ; [.19B8.0020.001D][.1BCD.0020.001C] # SQUARE GY
-0261 ; [.19BC.0020.0002] # LATIN SMALL LETTER SCRIPT G
-A7AC ; [.19BC.0020.0008] # LATIN CAPITAL LETTER SCRIPT G
-1DA2 ; [.19BC.0020.0014] # MODIFIER LETTER SMALL SCRIPT G
-AB36 ; [.19C0.0020.0002] # LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL
-0262 ; [.19C1.0020.0002] # LATIN LETTER SMALL CAPITAL G
-1DDB ; [.19C1.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL G
-01E5 ; [.19C5.0020.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.19C5.0020.0008] # LATIN CAPITAL LETTER G WITH STROKE
-1D83 ; [.19C9.0020.0002] # LATIN SMALL LETTER G WITH PALATAL HOOK
-0260 ; [.19CA.0020.0002] # LATIN SMALL LETTER G WITH HOOK
-0193 ; [.19CA.0020.0008] # LATIN CAPITAL LETTER G WITH HOOK
-029B ; [.19CE.0020.0002] # LATIN LETTER SMALL CAPITAL G WITH HOOK
-1D77 ; [.19D2.0020.0002] # LATIN SMALL LETTER TURNED G
-A77F ; [.19D3.0020.0002] # LATIN SMALL LETTER TURNED INSULAR G
-A77E ; [.19D3.0020.0008] # LATIN CAPITAL LETTER TURNED INSULAR G
-0263 ; [.19D4.0020.0002] # LATIN SMALL LETTER GAMMA
-0194 ; [.19D4.0020.0008] # LATIN CAPITAL LETTER GAMMA
-02E0 ; [.19D4.0020.0014] # MODIFIER LETTER SMALL GAMMA
-01A3 ; [.19D8.0020.0002] # LATIN SMALL LETTER OI
-01A2 ; [.19D8.0020.0008] # LATIN CAPITAL LETTER OI
-0068 ; [.19DC.0020.0002] # LATIN SMALL LETTER H
-FF48 ; [.19DC.0020.0003] # FULLWIDTH LATIN SMALL LETTER H
-036A ; [.19DC.0020.0004] # COMBINING LATIN SMALL LETTER H
-24A3 ; [*030A.0020.0004][.19DC.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER H
-210E ; [.19DC.0020.0005] # PLANCK CONSTANT
-1D421 ; [.19DC.0020.0005] # MATHEMATICAL BOLD SMALL H
-1D489 ; [.19DC.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL H
-1D4BD ; [.19DC.0020.0005] # MATHEMATICAL SCRIPT SMALL H
-1D4F1 ; [.19DC.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL H
-1D525 ; [.19DC.0020.0005] # MATHEMATICAL FRAKTUR SMALL H
-1D559 ; [.19DC.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL H
-1D58D ; [.19DC.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL H
-1D5C1 ; [.19DC.0020.0005] # MATHEMATICAL SANS-SERIF SMALL H
-1D5F5 ; [.19DC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL H
-1D629 ; [.19DC.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL H
-1D65D ; [.19DC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
-1D691 ; [.19DC.0020.0005] # MATHEMATICAL MONOSPACE SMALL H
-24D7 ; [.19DC.0020.0006] # CIRCLED LATIN SMALL LETTER H
-0048 ; [.19DC.0020.0008] # LATIN CAPITAL LETTER H
-FF28 ; [.19DC.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER H
-1F117 ; [*030A.0020.0004][.19DC.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER H
-210B ; [.19DC.0020.000B] # SCRIPT CAPITAL H
-210C ; [.19DC.0020.000B] # BLACK-LETTER CAPITAL H
-210D ; [.19DC.0020.000B] # DOUBLE-STRUCK CAPITAL H
-1D407 ; [.19DC.0020.000B] # MATHEMATICAL BOLD CAPITAL H
-1D43B ; [.19DC.0020.000B] # MATHEMATICAL ITALIC CAPITAL H
-1D46F ; [.19DC.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL H
-1D4D7 ; [.19DC.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL H
-1D573 ; [.19DC.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL H
-1D5A7 ; [.19DC.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL H
-1D5DB ; [.19DC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL H
-1D60F ; [.19DC.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
-1D643 ; [.19DC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
-1D677 ; [.19DC.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL H
-24BD ; [.19DC.0020.000C] # CIRCLED LATIN CAPITAL LETTER H
-1F157 ; [.19DC.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER H
-02B0 ; [.19DC.0020.0014] # MODIFIER LETTER SMALL H
-2095 ; [.19DC.0020.0015] # LATIN SUBSCRIPT SMALL LETTER H
-1D34 ; [.19DC.0020.001D] # MODIFIER LETTER CAPITAL H
-1F137 ; [.19DC.0020.001D] # SQUARED LATIN CAPITAL LETTER H
-1F177 ; [.19DC.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER H
-0125 ; [.19DC.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0124 ; [.19DC.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-021F ; [.19DC.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER H WITH CARON
-021E ; [.19DC.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER H WITH CARON
-1E27 ; [.19DC.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER H WITH DIAERESIS
-1E26 ; [.19DC.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER H WITH DIAERESIS
-1E23 ; [.19DC.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER H WITH DOT ABOVE
-1E22 ; [.19DC.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E29 ; [.19DC.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER H WITH CEDILLA
-1E28 ; [.19DC.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER H WITH CEDILLA
-0127 ; [.19DC.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER H WITH STROKE
-210F ; [.19DC.0020.0002][.0000.0039.0002] # PLANCK CONSTANT OVER TWO PI
-0126 ; [.19DC.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER H WITH STROKE
-A7F8 ; [.19DC.0020.0014][.0000.0039.0014] # MODIFIER LETTER CAPITAL H WITH STROKE
-1E25 ; [.19DC.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER H WITH DOT BELOW
-1E24 ; [.19DC.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER H WITH DOT BELOW
-1E2B ; [.19DC.0020.0002][.0000.0047.0002] # LATIN SMALL LETTER H WITH BREVE BELOW
-1E2A ; [.19DC.0020.0008][.0000.0047.0002] # LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E96 ; [.19DC.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER H WITH LINE BELOW
-33CA ; [.19DC.0020.001C][.190C.0020.001C] # SQUARE HA
-32CC ; [.19DC.0020.001D][.19B8.0020.001C] # SQUARE HG
-33CB ; [.19DC.0020.001D][.1ACE.0020.001D] # SQUARE HP
-3371 ; [.19DC.0020.001C][.1ACE.0020.001D][.190C.0020.001C] # SQUARE HPA
-1F14A ; [.19DC.0020.001D][.1BA5.0020.001D] # SQUARED HV
-3390 ; [.19DC.0020.001D][.1BE3.0020.001C] # SQUARE HZ
-029C ; [.19E0.0020.0002] # LATIN LETTER SMALL CAPITAL H
-0195 ; [.19E4.0020.0002] # LATIN SMALL LETTER HV
-01F6 ; [.19E4.0020.0008] # LATIN CAPITAL LETTER HWAIR
-A795 ; [.19E8.0020.0002] # LATIN SMALL LETTER H WITH PALATAL HOOK
-0266 ; [.19E9.0020.0002] # LATIN SMALL LETTER H WITH HOOK
-A7AA ; [.19E9.0020.0008] # LATIN CAPITAL LETTER H WITH HOOK
-02B1 ; [.19E9.0020.0014] # MODIFIER LETTER SMALL H WITH HOOK
-2C68 ; [.19ED.0020.0002] # LATIN SMALL LETTER H WITH DESCENDER
-2C67 ; [.19ED.0020.0008] # LATIN CAPITAL LETTER H WITH DESCENDER
-2C76 ; [.19EE.0020.0002] # LATIN SMALL LETTER HALF H
-2C75 ; [.19EE.0020.0008] # LATIN CAPITAL LETTER HALF H
-A727 ; [.19EF.0020.0002] # LATIN SMALL LETTER HENG
-A726 ; [.19EF.0020.0008] # LATIN CAPITAL LETTER HENG
-AB5C ; [.19EF.0020.0014] # MODIFIER LETTER SMALL HENG
-0267 ; [.19F0.0020.0002] # LATIN SMALL LETTER HENG WITH HOOK
-02BB ; [.19F4.0020.0002] # MODIFIER LETTER TURNED COMMA
-02BD ; [.19F5.0020.0002] # MODIFIER LETTER REVERSED COMMA
-0069 ; [.19F6.0020.0002] # LATIN SMALL LETTER I
-FF49 ; [.19F6.0020.0003] # FULLWIDTH LATIN SMALL LETTER I
-0365 ; [.19F6.0020.0004] # COMBINING LATIN SMALL LETTER I
-2170 ; [.19F6.0020.0004] # SMALL ROMAN NUMERAL ONE
-24A4 ; [*030A.0020.0004][.19F6.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER I
-2139 ; [.19F6.0020.0005] # INFORMATION SOURCE
-2148 ; [.19F6.0020.0005] # DOUBLE-STRUCK ITALIC SMALL I
-1D422 ; [.19F6.0020.0005] # MATHEMATICAL BOLD SMALL I
-1D456 ; [.19F6.0020.0005] # MATHEMATICAL ITALIC SMALL I
-1D48A ; [.19F6.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL I
-1D4BE ; [.19F6.0020.0005] # MATHEMATICAL SCRIPT SMALL I
-1D4F2 ; [.19F6.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL I
-1D526 ; [.19F6.0020.0005] # MATHEMATICAL FRAKTUR SMALL I
-1D55A ; [.19F6.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL I
-1D58E ; [.19F6.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL I
-1D5C2 ; [.19F6.0020.0005] # MATHEMATICAL SANS-SERIF SMALL I
-1D5F6 ; [.19F6.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL I
-1D62A ; [.19F6.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL I
-1D65E ; [.19F6.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
-1D692 ; [.19F6.0020.0005] # MATHEMATICAL MONOSPACE SMALL I
-24D8 ; [.19F6.0020.0006] # CIRCLED LATIN SMALL LETTER I
-0049 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I
-FF29 ; [.19F6.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER I
-2160 ; [.19F6.0020.000A] # ROMAN NUMERAL ONE
-1F118 ; [*030A.0020.0004][.19F6.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER I
-2110 ; [.19F6.0020.000B] # SCRIPT CAPITAL I
-2111 ; [.19F6.0020.000B] # BLACK-LETTER CAPITAL I
-1D408 ; [.19F6.0020.000B] # MATHEMATICAL BOLD CAPITAL I
-1D43C ; [.19F6.0020.000B] # MATHEMATICAL ITALIC CAPITAL I
-1D470 ; [.19F6.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL I
-1D4D8 ; [.19F6.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL I
-1D540 ; [.19F6.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL I
-1D574 ; [.19F6.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL I
-1D5A8 ; [.19F6.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL I
-1D5DC ; [.19F6.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL I
-1D610 ; [.19F6.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
-1D644 ; [.19F6.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
-1D678 ; [.19F6.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL I
-24BE ; [.19F6.0020.000C] # CIRCLED LATIN CAPITAL LETTER I
-1F158 ; [.19F6.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER I
-2071 ; [.19F6.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER I
-1D62 ; [.19F6.0020.0015] # LATIN SUBSCRIPT SMALL LETTER I
-1D35 ; [.19F6.0020.001D] # MODIFIER LETTER CAPITAL I
-1F138 ; [.19F6.0020.001D] # SQUARED LATIN CAPITAL LETTER I
-1F178 ; [.19F6.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER I
-00ED ; [.19F6.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00EC ; [.19F6.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-012D ; [.19F6.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER I WITH BREVE
-012C ; [.19F6.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-00EE ; [.19F6.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.19F6.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-01D0 ; [.19F6.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER I WITH CARON
-00EF ; [.19F6.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER I WITH DIAERESIS
-00CF ; [.19F6.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-1E2F ; [.19F6.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E2E ; [.19F6.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-0129 ; [.19F6.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER I WITH TILDE
-0128 ; [.19F6.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER I WITH TILDE
-0130 ; [.19F6.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-012F ; [.19F6.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER I WITH OGONEK
-012E ; [.19F6.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-012B ; [.19F6.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-1EC9 ; [.19F6.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER I WITH HOOK ABOVE
-1EC8 ; [.19F6.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-0209 ; [.19F6.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER I WITH DOUBLE GRAVE
-0208 ; [.19F6.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-020B ; [.19F6.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER I WITH INVERTED BREVE
-020A ; [.19F6.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER I WITH INVERTED BREVE
-1ECB ; [.19F6.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.19F6.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER I WITH DOT BELOW
-1E2D ; [.19F6.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER I WITH TILDE BELOW
-1E2C ; [.19F6.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER I WITH TILDE BELOW
-1F18B ; [.19F6.0020.001D][.193E.0020.001D] # NEGATIVE SQUARED IC
-1F194 ; [.19F6.0020.001D][.1953.0020.001D] # SQUARED ID
-2171 ; [.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL TWO
-2161 ; [.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL TWO
-2172 ; [.19F6.0020.0004][.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL THREE
-2162 ; [.19F6.0020.000A][.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL THREE
-0133 ; [.19F6.0020.0004][.1A10.0020.0004] # LATIN SMALL LIGATURE IJ
-0132 ; [.19F6.0020.000A][.1A10.0020.000A] # LATIN CAPITAL LIGATURE IJ
-33CC ; [.19F6.0020.001C][.1A7D.0020.001C] # SQUARE IN
-337A ; [.19F6.0020.001D][.1B77.0020.001D] # SQUARE IU
-2173 ; [.19F6.0020.0004][.1BA5.0020.0004] # SMALL ROMAN NUMERAL FOUR
-2163 ; [.19F6.0020.000A][.1BA5.0020.000A] # ROMAN NUMERAL FOUR
-2178 ; [.19F6.0020.0004][.1BC1.0020.0004] # SMALL ROMAN NUMERAL NINE
-2168 ; [.19F6.0020.000A][.1BC1.0020.000A] # ROMAN NUMERAL NINE
-0131 ; [.19FA.0020.0002] # LATIN SMALL LETTER DOTLESS I
-1D6A4 ; [.19FA.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS I
-026A ; [.19FE.0020.0002] # LATIN LETTER SMALL CAPITAL I
-1DA6 ; [.19FE.0020.0014] # MODIFIER LETTER SMALL CAPITAL I
-A7FE ; [.1A02.0020.0002] # LATIN EPIGRAPHIC LETTER I LONGA
-A7F7 ; [.1A03.0020.0002] # LATIN EPIGRAPHIC LETTER SIDEWAYS I
-1D09 ; [.1A04.0020.0002] # LATIN SMALL LETTER TURNED I
-1D4E ; [.1A04.0020.0014] # MODIFIER LETTER SMALL TURNED I
-0268 ; [.1A05.0020.0002] # LATIN SMALL LETTER I WITH STROKE
-0197 ; [.1A05.0020.0008] # LATIN CAPITAL LETTER I WITH STROKE
-1DA4 ; [.1A05.0020.0014] # MODIFIER LETTER SMALL I WITH STROKE
-1D7B ; [.1A09.0020.0002] # LATIN SMALL CAPITAL LETTER I WITH STROKE
-1DA7 ; [.1A09.0020.0014] # MODIFIER LETTER SMALL CAPITAL I WITH STROKE
-1D96 ; [.1A0A.0020.0002] # LATIN SMALL LETTER I WITH RETROFLEX HOOK
-0269 ; [.1A0B.0020.0002] # LATIN SMALL LETTER IOTA
-0196 ; [.1A0B.0020.0008] # LATIN CAPITAL LETTER IOTA
-1DA5 ; [.1A0B.0020.0014] # MODIFIER LETTER SMALL IOTA
-1D7C ; [.1A0F.0020.0002] # LATIN SMALL LETTER IOTA WITH STROKE
-006A ; [.1A10.0020.0002] # LATIN SMALL LETTER J
-FF4A ; [.1A10.0020.0003] # FULLWIDTH LATIN SMALL LETTER J
-24A5 ; [*030A.0020.0004][.1A10.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER J
-2149 ; [.1A10.0020.0005] # DOUBLE-STRUCK ITALIC SMALL J
-1D423 ; [.1A10.0020.0005] # MATHEMATICAL BOLD SMALL J
-1D457 ; [.1A10.0020.0005] # MATHEMATICAL ITALIC SMALL J
-1D48B ; [.1A10.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL J
-1D4BF ; [.1A10.0020.0005] # MATHEMATICAL SCRIPT SMALL J
-1D4F3 ; [.1A10.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL J
-1D527 ; [.1A10.0020.0005] # MATHEMATICAL FRAKTUR SMALL J
-1D55B ; [.1A10.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL J
-1D58F ; [.1A10.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL J
-1D5C3 ; [.1A10.0020.0005] # MATHEMATICAL SANS-SERIF SMALL J
-1D5F7 ; [.1A10.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL J
-1D62B ; [.1A10.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL J
-1D65F ; [.1A10.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
-1D693 ; [.1A10.0020.0005] # MATHEMATICAL MONOSPACE SMALL J
-24D9 ; [.1A10.0020.0006] # CIRCLED LATIN SMALL LETTER J
-004A ; [.1A10.0020.0008] # LATIN CAPITAL LETTER J
-FF2A ; [.1A10.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER J
-1F119 ; [*030A.0020.0004][.1A10.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER J
-1D409 ; [.1A10.0020.000B] # MATHEMATICAL BOLD CAPITAL J
-1D43D ; [.1A10.0020.000B] # MATHEMATICAL ITALIC CAPITAL J
-1D471 ; [.1A10.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL J
-1D4A5 ; [.1A10.0020.000B] # MATHEMATICAL SCRIPT CAPITAL J
-1D4D9 ; [.1A10.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL J
-1D50D ; [.1A10.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL J
-1D541 ; [.1A10.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL J
-1D575 ; [.1A10.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL J
-1D5A9 ; [.1A10.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL J
-1D5DD ; [.1A10.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL J
-1D611 ; [.1A10.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
-1D645 ; [.1A10.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
-1D679 ; [.1A10.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL J
-24BF ; [.1A10.0020.000C] # CIRCLED LATIN CAPITAL LETTER J
-1F159 ; [.1A10.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER J
-02B2 ; [.1A10.0020.0014] # MODIFIER LETTER SMALL J
-2C7C ; [.1A10.0020.0015] # LATIN SUBSCRIPT SMALL LETTER J
-1D36 ; [.1A10.0020.001D] # MODIFIER LETTER CAPITAL J
-1F139 ; [.1A10.0020.001D] # SQUARED LATIN CAPITAL LETTER J
-1F179 ; [.1A10.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER J
-0135 ; [.1A10.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0134 ; [.1A10.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-01F0 ; [.1A10.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER J WITH CARON
-0237 ; [.1A14.0020.0002] # LATIN SMALL LETTER DOTLESS J
-1D6A5 ; [.1A14.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS J
-1D0A ; [.1A18.0020.0002] # LATIN LETTER SMALL CAPITAL J
-0249 ; [.1A19.0020.0002] # LATIN SMALL LETTER J WITH STROKE
-0248 ; [.1A19.0020.0008] # LATIN CAPITAL LETTER J WITH STROKE
-029D ; [.1A1D.0020.0002] # LATIN SMALL LETTER J WITH CROSSED-TAIL
-1DA8 ; [.1A1D.0020.0014] # MODIFIER LETTER SMALL J WITH CROSSED-TAIL
-025F ; [.1A21.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE
-1DA1 ; [.1A21.0020.0014] # MODIFIER LETTER SMALL DOTLESS J WITH STROKE
-0284 ; [.1A25.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-006B ; [.1A29.0020.0002] # LATIN SMALL LETTER K
-FF4B ; [.1A29.0020.0003] # FULLWIDTH LATIN SMALL LETTER K
-1DDC ; [.1A29.0020.0004] # COMBINING LATIN SMALL LETTER K
-24A6 ; [*030A.0020.0004][.1A29.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER K
-1D424 ; [.1A29.0020.0005] # MATHEMATICAL BOLD SMALL K
-1D458 ; [.1A29.0020.0005] # MATHEMATICAL ITALIC SMALL K
-1D48C ; [.1A29.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL K
-1D4C0 ; [.1A29.0020.0005] # MATHEMATICAL SCRIPT SMALL K
-1D4F4 ; [.1A29.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL K
-1D528 ; [.1A29.0020.0005] # MATHEMATICAL FRAKTUR SMALL K
-1D55C ; [.1A29.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL K
-1D590 ; [.1A29.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL K
-1D5C4 ; [.1A29.0020.0005] # MATHEMATICAL SANS-SERIF SMALL K
-1D5F8 ; [.1A29.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL K
-1D62C ; [.1A29.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL K
-1D660 ; [.1A29.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
-1D694 ; [.1A29.0020.0005] # MATHEMATICAL MONOSPACE SMALL K
-24DA ; [.1A29.0020.0006] # CIRCLED LATIN SMALL LETTER K
-004B ; [.1A29.0020.0008] # LATIN CAPITAL LETTER K
-212A ; [.1A29.0020.0008] # KELVIN SIGN
-FF2B ; [.1A29.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER K
-1F11A ; [*030A.0020.0004][.1A29.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER K
-1D40A ; [.1A29.0020.000B] # MATHEMATICAL BOLD CAPITAL K
-1D43E ; [.1A29.0020.000B] # MATHEMATICAL ITALIC CAPITAL K
-1D472 ; [.1A29.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL K
-1D4A6 ; [.1A29.0020.000B] # MATHEMATICAL SCRIPT CAPITAL K
-1D4DA ; [.1A29.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL K
-1D50E ; [.1A29.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL K
-1D542 ; [.1A29.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL K
-1D576 ; [.1A29.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL K
-1D5AA ; [.1A29.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL K
-1D5DE ; [.1A29.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL K
-1D612 ; [.1A29.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
-1D646 ; [.1A29.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
-1D67A ; [.1A29.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL K
-24C0 ; [.1A29.0020.000C] # CIRCLED LATIN CAPITAL LETTER K
-1F15A ; [.1A29.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER K
-1D4F ; [.1A29.0020.0014] # MODIFIER LETTER SMALL K
-2096 ; [.1A29.0020.0015] # LATIN SUBSCRIPT SMALL LETTER K
-1D37 ; [.1A29.0020.001D] # MODIFIER LETTER CAPITAL K
-1F13A ; [.1A29.0020.001D] # SQUARED LATIN CAPITAL LETTER K
-1F17A ; [.1A29.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER K
-1E31 ; [.1A29.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER K WITH ACUTE
-1E30 ; [.1A29.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER K WITH ACUTE
-01E9 ; [.1A29.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER K WITH CARON
-01E8 ; [.1A29.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER K WITH CARON
-0137 ; [.1A29.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER K WITH CEDILLA
-0136 ; [.1A29.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER K WITH CEDILLA
-A7A3 ; [.1A29.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER K WITH OBLIQUE STROKE
-A7A2 ; [.1A29.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
-1E33 ; [.1A29.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER K WITH DOT BELOW
-1E32 ; [.1A29.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER K WITH DOT BELOW
-1E35 ; [.1A29.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER K WITH LINE BELOW
-1E34 ; [.1A29.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER K WITH LINE BELOW
-3384 ; [.1A29.0020.001C][.190C.0020.001D] # SQUARE KA
-3385 ; [.1A29.0020.001D][.1925.0020.001D] # SQUARE KB
-3389 ; [.1A29.0020.001C][.193E.0020.001C][.190C.0020.001C][.1A3B.0020.001C] # SQUARE KCAL
-338F ; [.1A29.0020.001C][.19B8.0020.001C] # SQUARE KG
-3391 ; [.1A29.0020.001C][.19DC.0020.001D][.1BE3.0020.001C] # SQUARE KHZ
-33CD ; [.1A29.0020.001D][.1A29.0020.001D] # SQUARE KK
-3398 ; [.1A29.0020.001C][.1A3B.0020.001C] # SQUARE KL
-339E ; [.1A29.0020.001C][.1A6E.0020.001C] # SQUARE KM
-33CE ; [.1A29.0020.001D][.1A6E.0020.001D] # SQUARE KM CAPITAL
-33A2 ; [.1A29.0020.001C][.1A6E.0020.001C][.1904.0020.001C] # SQUARE KM SQUARED
-33A6 ; [.1A29.0020.001C][.1A6E.0020.001C][.1905.0020.001C] # SQUARE KM CUBED
-33AA ; [.1A29.0020.001C][.1ACE.0020.001D][.190C.0020.001C] # SQUARE KPA
-33CF ; [.1A29.0020.001C][.1B57.0020.001C] # SQUARE KT
-33B8 ; [.1A29.0020.001C][.1BA5.0020.001D] # SQUARE KV
-33BE ; [.1A29.0020.001C][.1BB7.0020.001D] # SQUARE KW
-33C0 ; [.1A29.0020.001C][.1C9F.0020.001D] # SQUARE K OHM
-1D0B ; [.1A2D.0020.0002] # LATIN LETTER SMALL CAPITAL K
-1D84 ; [.1A2E.0020.0002] # LATIN SMALL LETTER K WITH PALATAL HOOK
-0199 ; [.1A2F.0020.0002] # LATIN SMALL LETTER K WITH HOOK
-0198 ; [.1A2F.0020.0008] # LATIN CAPITAL LETTER K WITH HOOK
-2C6A ; [.1A33.0020.0002] # LATIN SMALL LETTER K WITH DESCENDER
-2C69 ; [.1A33.0020.0008] # LATIN CAPITAL LETTER K WITH DESCENDER
-A741 ; [.1A34.0020.0002] # LATIN SMALL LETTER K WITH STROKE
-A740 ; [.1A34.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE
-A743 ; [.1A35.0020.0002] # LATIN SMALL LETTER K WITH DIAGONAL STROKE
-A742 ; [.1A35.0020.0008] # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
-A745 ; [.1A36.0020.0002] # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
-A744 ; [.1A36.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
-029E ; [.1A37.0020.0002] # LATIN SMALL LETTER TURNED K
-A7B0 ; [.1A37.0020.0008] # LATIN CAPITAL LETTER TURNED K
-006C ; [.1A3B.0020.0002] # LATIN SMALL LETTER L
-FF4C ; [.1A3B.0020.0003] # FULLWIDTH LATIN SMALL LETTER L
-1DDD ; [.1A3B.0020.0004] # COMBINING LATIN SMALL LETTER L
-217C ; [.1A3B.0020.0004] # SMALL ROMAN NUMERAL FIFTY
-24A7 ; [*030A.0020.0004][.1A3B.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER L
-2113 ; [.1A3B.0020.0005] # SCRIPT SMALL L
-1D425 ; [.1A3B.0020.0005] # MATHEMATICAL BOLD SMALL L
-1D459 ; [.1A3B.0020.0005] # MATHEMATICAL ITALIC SMALL L
-1D48D ; [.1A3B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL L
-1D4C1 ; [.1A3B.0020.0005] # MATHEMATICAL SCRIPT SMALL L
-1D4F5 ; [.1A3B.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL L
-1D529 ; [.1A3B.0020.0005] # MATHEMATICAL FRAKTUR SMALL L
-1D55D ; [.1A3B.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL L
-1D591 ; [.1A3B.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL L
-1D5C5 ; [.1A3B.0020.0005] # MATHEMATICAL SANS-SERIF SMALL L
-1D5F9 ; [.1A3B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL L
-1D62D ; [.1A3B.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL L
-1D661 ; [.1A3B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
-1D695 ; [.1A3B.0020.0005] # MATHEMATICAL MONOSPACE SMALL L
-24DB ; [.1A3B.0020.0006] # CIRCLED LATIN SMALL LETTER L
-004C ; [.1A3B.0020.0008] # LATIN CAPITAL LETTER L
-FF2C ; [.1A3B.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER L
-216C ; [.1A3B.0020.000A] # ROMAN NUMERAL FIFTY
-1F11B ; [*030A.0020.0004][.1A3B.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER L
-2112 ; [.1A3B.0020.000B] # SCRIPT CAPITAL L
-1D40B ; [.1A3B.0020.000B] # MATHEMATICAL BOLD CAPITAL L
-1D43F ; [.1A3B.0020.000B] # MATHEMATICAL ITALIC CAPITAL L
-1D473 ; [.1A3B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL L
-1D4DB ; [.1A3B.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL L
-1D50F ; [.1A3B.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL L
-1D543 ; [.1A3B.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL L
-1D577 ; [.1A3B.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL L
-1D5AB ; [.1A3B.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL L
-1D5DF ; [.1A3B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL L
-1D613 ; [.1A3B.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
-1D647 ; [.1A3B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
-1D67B ; [.1A3B.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL L
-24C1 ; [.1A3B.0020.000C] # CIRCLED LATIN CAPITAL LETTER L
-1F15B ; [.1A3B.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER L
-02E1 ; [.1A3B.0020.0014] # MODIFIER LETTER SMALL L
-2097 ; [.1A3B.0020.0015] # LATIN SUBSCRIPT SMALL LETTER L
-1D38 ; [.1A3B.0020.001D] # MODIFIER LETTER CAPITAL L
-1F13B ; [.1A3B.0020.001D] # SQUARED LATIN CAPITAL LETTER L
-1F17B ; [.1A3B.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER L
-013A ; [.1A3B.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER L WITH ACUTE
-0139 ; [.1A3B.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER L WITH ACUTE
-013E ; [.1A3B.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER L WITH CARON
-013D ; [.1A3B.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER L WITH CARON
-013C ; [.1A3B.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER L WITH CEDILLA
-013B ; [.1A3B.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER L WITH CEDILLA
-0142 ; [.1A3B.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER L WITH STROKE
-0141 ; [.1A3B.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER L WITH STROKE
-1E37 ; [.1A3B.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER L WITH DOT BELOW
-1E36 ; [.1A3B.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW
-1E39 ; [.1A3B.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E38 ; [.1A3B.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E3D ; [.1A3B.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3C ; [.1A3B.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3B ; [.1A3B.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER L WITH LINE BELOW
-1E3A ; [.1A3B.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER L WITH LINE BELOW
-0140 ; [.1A3B.0020.0002][.0000.0108.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-006C 00B7 ; [.1A3B.0020.0002][.0000.0108.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-006C 0387 ; [.1A3B.0020.0002][.0000.0108.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-013F ; [.1A3B.0020.0008][.0000.0108.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-004C 00B7 ; [.1A3B.0020.0008][.0000.0108.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-004C 0387 ; [.1A3B.0020.0008][.0000.0108.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-01C9 ; [.1A3B.0020.0004][.1A10.0020.0004] # LATIN SMALL LETTER LJ
-01C8 ; [.1A3B.0020.000A][.1A10.0020.0004] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-01C7 ; [.1A3B.0020.000A][.1A10.0020.000A] # LATIN CAPITAL LETTER LJ
-1EFB ; [.1A3B.0020.0004][.1A3B.0020.0004] # LATIN SMALL LETTER MIDDLE-WELSH LL
-1EFA ; [.1A3B.0020.000A][.1A3B.0020.000A] # LATIN CAPITAL LETTER MIDDLE-WELSH LL
-33D0 ; [.1A3B.0020.001C][.1A6E.0020.001C] # SQUARE LM
-33D1 ; [.1A3B.0020.001C][.1A7D.0020.001C] # SQUARE LN
-33D2 ; [.1A3B.0020.001C][.1AA1.0020.001C][.19B8.0020.001C] # SQUARE LOG
-02AA ; [.1A3B.0020.0004][.1B33.0020.0004] # LATIN SMALL LETTER LS DIGRAPH
-32CF ; [.1A3B.0020.001D][.1B57.0020.001D][.1953.0020.001D] # LIMITED LIABILITY SIGN
-33D3 ; [.1A3B.0020.001C][.1BC1.0020.001C] # SQUARE LX
-02AB ; [.1A3B.0020.0004][.1BE3.0020.0004] # LATIN SMALL LETTER LZ DIGRAPH
-029F ; [.1A3F.0020.0002] # LATIN LETTER SMALL CAPITAL L
-1DDE ; [.1A3F.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL L
-1DAB ; [.1A3F.0020.0014] # MODIFIER LETTER SMALL CAPITAL L
-A747 ; [.1A43.0020.0002] # LATIN SMALL LETTER BROKEN L
-A746 ; [.1A43.0020.0008] # LATIN CAPITAL LETTER BROKEN L
-1D0C ; [.1A44.0020.0002] # LATIN LETTER SMALL CAPITAL L WITH STROKE
-A749 ; [.1A45.0020.0002] # LATIN SMALL LETTER L WITH HIGH STROKE
-A748 ; [.1A45.0020.0008] # LATIN CAPITAL LETTER L WITH HIGH STROKE
-019A ; [.1A46.0020.0002] # LATIN SMALL LETTER L WITH BAR
-023D ; [.1A46.0020.0008] # LATIN CAPITAL LETTER L WITH BAR
-2C61 ; [.1A4A.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE BAR
-2C60 ; [.1A4A.0020.0008] # LATIN CAPITAL LETTER L WITH DOUBLE BAR
-026B ; [.1A4B.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE TILDE
-2C62 ; [.1A4B.0020.0008] # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
-AB5E ; [.1A4B.0020.0014] # MODIFIER LETTER SMALL L WITH MIDDLE TILDE
-AB38 ; [.1A4F.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
-1DEC ; [.1A4F.0020.0004] # COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
-AB39 ; [.1A50.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE RING
-026C ; [.1A51.0020.0002] # LATIN SMALL LETTER L WITH BELT
-A7AD ; [.1A51.0020.0008] # LATIN CAPITAL LETTER L WITH BELT
-AB37 ; [.1A55.0020.0002] # LATIN SMALL LETTER L WITH INVERTED LAZY S
-AB5D ; [.1A55.0020.0014] # MODIFIER LETTER SMALL L WITH INVERTED LAZY S
-1D85 ; [.1A56.0020.0002] # LATIN SMALL LETTER L WITH PALATAL HOOK
-1DAA ; [.1A56.0020.0014] # MODIFIER LETTER SMALL L WITH PALATAL HOOK
-026D ; [.1A57.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK
-1DA9 ; [.1A57.0020.0014] # MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
-A78E ; [.1A5B.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-0234 ; [.1A5C.0020.0002] # LATIN SMALL LETTER L WITH CURL
-A772 ; [.1A60.0020.0002] # LATIN SMALL LETTER LUM
-026E ; [.1A61.0020.0002] # LATIN SMALL LETTER LEZH
-A781 ; [.1A65.0020.0002] # LATIN SMALL LETTER TURNED L
-A780 ; [.1A65.0020.0008] # LATIN CAPITAL LETTER TURNED L
-019B ; [.1A66.0020.0002] # LATIN SMALL LETTER LAMBDA WITH STROKE
-028E ; [.1A6A.0020.0002] # LATIN SMALL LETTER TURNED Y
-006D ; [.1A6E.0020.0002] # LATIN SMALL LETTER M
-FF4D ; [.1A6E.0020.0003] # FULLWIDTH LATIN SMALL LETTER M
-036B ; [.1A6E.0020.0004] # COMBINING LATIN SMALL LETTER M
-217F ; [.1A6E.0020.0004] # SMALL ROMAN NUMERAL ONE THOUSAND
-24A8 ; [*030A.0020.0004][.1A6E.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER M
-1D426 ; [.1A6E.0020.0005] # MATHEMATICAL BOLD SMALL M
-1D45A ; [.1A6E.0020.0005] # MATHEMATICAL ITALIC SMALL M
-1D48E ; [.1A6E.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL M
-1D4C2 ; [.1A6E.0020.0005] # MATHEMATICAL SCRIPT SMALL M
-1D4F6 ; [.1A6E.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL M
-1D52A ; [.1A6E.0020.0005] # MATHEMATICAL FRAKTUR SMALL M
-1D55E ; [.1A6E.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL M
-1D592 ; [.1A6E.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL M
-1D5C6 ; [.1A6E.0020.0005] # MATHEMATICAL SANS-SERIF SMALL M
-1D5FA ; [.1A6E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL M
-1D62E ; [.1A6E.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL M
-1D662 ; [.1A6E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
-1D696 ; [.1A6E.0020.0005] # MATHEMATICAL MONOSPACE SMALL M
-24DC ; [.1A6E.0020.0006] # CIRCLED LATIN SMALL LETTER M
-004D ; [.1A6E.0020.0008] # LATIN CAPITAL LETTER M
-FF2D ; [.1A6E.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER M
-216F ; [.1A6E.0020.000A] # ROMAN NUMERAL ONE THOUSAND
-1F11C ; [*030A.0020.0004][.1A6E.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER M
-2133 ; [.1A6E.0020.000B] # SCRIPT CAPITAL M
-1D40C ; [.1A6E.0020.000B] # MATHEMATICAL BOLD CAPITAL M
-1D440 ; [.1A6E.0020.000B] # MATHEMATICAL ITALIC CAPITAL M
-1D474 ; [.1A6E.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL M
-1D4DC ; [.1A6E.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL M
-1D510 ; [.1A6E.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL M
-1D544 ; [.1A6E.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D578 ; [.1A6E.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL M
-1D5AC ; [.1A6E.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL M
-1D5E0 ; [.1A6E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL M
-1D614 ; [.1A6E.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
-1D648 ; [.1A6E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
-1D67C ; [.1A6E.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL M
-24C2 ; [.1A6E.0020.000C] # CIRCLED LATIN CAPITAL LETTER M
-1F15C ; [.1A6E.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER M
-1D50 ; [.1A6E.0020.0014] # MODIFIER LETTER SMALL M
-2098 ; [.1A6E.0020.0015] # LATIN SUBSCRIPT SMALL LETTER M
-1D39 ; [.1A6E.0020.001D] # MODIFIER LETTER CAPITAL M
-1F13C ; [.1A6E.0020.001D] # SQUARED LATIN CAPITAL LETTER M
-1F17C ; [.1A6E.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER M
-1E3F ; [.1A6E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER M WITH ACUTE
-1E41 ; [.1A6E.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER M WITH DOT ABOVE
-1E40 ; [.1A6E.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E43 ; [.1A6E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER M WITH DOT BELOW
-1E42 ; [.1A6E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER M WITH DOT BELOW
-33A1 ; [.1A6E.0020.001C][.1904.0020.001C] # SQUARE M SQUARED
-33A5 ; [.1A6E.0020.001C][.1905.0020.001C] # SQUARE M CUBED
-3383 ; [.1A6E.0020.001C][.190C.0020.001D] # SQUARE MA
-33D4 ; [.1A6E.0020.001C][.1925.0020.001C] # SQUARE MB SMALL
-3386 ; [.1A6E.0020.001D][.1925.0020.001D] # SQUARE MB
-1F16A ; [.1A6E.0020.0014][.193E.0020.0014] # RAISED MC SIGN
-1F16B ; [.1A6E.0020.0014][.1953.0020.0014] # RAISED MD SIGN
-338E ; [.1A6E.0020.001C][.19B8.0020.001C] # SQUARE MG
-3392 ; [.1A6E.0020.001D][.19DC.0020.001D][.1BE3.0020.001C] # SQUARE MHZ
-33D5 ; [.1A6E.0020.001C][.19F6.0020.001C][.1A3B.0020.001C] # SQUARE MIL
-3396 ; [.1A6E.0020.001C][.1A3B.0020.001C] # SQUARE ML
-339C ; [.1A6E.0020.001C][.1A6E.0020.001C] # SQUARE MM
-339F ; [.1A6E.0020.001C][.1A6E.0020.001C][.1904.0020.001C] # SQUARE MM SQUARED
-33A3 ; [.1A6E.0020.001C][.1A6E.0020.001C][.1905.0020.001C] # SQUARE MM CUBED
-33D6 ; [.1A6E.0020.001C][.1AA1.0020.001C][.1A3B.0020.001C] # SQUARE MOL
-33AB ; [.1A6E.0020.001D][.1ACE.0020.001D][.190C.0020.001C] # SQUARE MPA
-33A7 ; [.1A6E.0020.001C][*05E5.0020.001C][.1B33.0020.001C] # SQUARE M OVER S
-33B3 ; [.1A6E.0020.001C][.1B33.0020.001C] # SQUARE MS
-33A8 ; [.1A6E.0020.001C][*05E5.0020.001C][.1B33.0020.001C][.1904.0020.001C] # SQUARE M OVER S SQUARED
-33B7 ; [.1A6E.0020.001C][.1BA5.0020.001D] # SQUARE MV
-33B9 ; [.1A6E.0020.001D][.1BA5.0020.001D] # SQUARE MV MEGA
-1F14B ; [.1A6E.0020.001D][.1BA5.0020.001D] # SQUARED MV
-33BD ; [.1A6E.0020.001C][.1BB7.0020.001D] # SQUARE MW
-33BF ; [.1A6E.0020.001D][.1BB7.0020.001D] # SQUARE MW MEGA
-33C1 ; [.1A6E.0020.001D][.1C9F.0020.001D] # SQUARE M OHM
-1D0D ; [.1A72.0020.0002] # LATIN LETTER SMALL CAPITAL M
-1DDF ; [.1A72.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL M
-1D6F ; [.1A73.0020.0002] # LATIN SMALL LETTER M WITH MIDDLE TILDE
-1D86 ; [.1A74.0020.0002] # LATIN SMALL LETTER M WITH PALATAL HOOK
-0271 ; [.1A75.0020.0002] # LATIN SMALL LETTER M WITH HOOK
-2C6E ; [.1A75.0020.0008] # LATIN CAPITAL LETTER M WITH HOOK
-1DAC ; [.1A75.0020.0014] # MODIFIER LETTER SMALL M WITH HOOK
-AB3A ; [.1A79.0020.0002] # LATIN SMALL LETTER M WITH CROSSED-TAIL
-A7FD ; [.1A7A.0020.0002] # LATIN EPIGRAPHIC LETTER INVERTED M
-A7FF ; [.1A7B.0020.0002] # LATIN EPIGRAPHIC LETTER ARCHAIC M
-A773 ; [.1A7C.0020.0002] # LATIN SMALL LETTER MUM
-006E ; [.1A7D.0020.0002] # LATIN SMALL LETTER N
-FF4E ; [.1A7D.0020.0003] # FULLWIDTH LATIN SMALL LETTER N
-1DE0 ; [.1A7D.0020.0004] # COMBINING LATIN SMALL LETTER N
-24A9 ; [*030A.0020.0004][.1A7D.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER N
-1D427 ; [.1A7D.0020.0005] # MATHEMATICAL BOLD SMALL N
-1D45B ; [.1A7D.0020.0005] # MATHEMATICAL ITALIC SMALL N
-1D48F ; [.1A7D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL N
-1D4C3 ; [.1A7D.0020.0005] # MATHEMATICAL SCRIPT SMALL N
-1D4F7 ; [.1A7D.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL N
-1D52B ; [.1A7D.0020.0005] # MATHEMATICAL FRAKTUR SMALL N
-1D55F ; [.1A7D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL N
-1D593 ; [.1A7D.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL N
-1D5C7 ; [.1A7D.0020.0005] # MATHEMATICAL SANS-SERIF SMALL N
-1D5FB ; [.1A7D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL N
-1D62F ; [.1A7D.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL N
-1D663 ; [.1A7D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
-1D697 ; [.1A7D.0020.0005] # MATHEMATICAL MONOSPACE SMALL N
-24DD ; [.1A7D.0020.0006] # CIRCLED LATIN SMALL LETTER N
-004E ; [.1A7D.0020.0008] # LATIN CAPITAL LETTER N
-FF2E ; [.1A7D.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER N
-1F11D ; [*030A.0020.0004][.1A7D.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER N
-2115 ; [.1A7D.0020.000B] # DOUBLE-STRUCK CAPITAL N
-1D40D ; [.1A7D.0020.000B] # MATHEMATICAL BOLD CAPITAL N
-1D441 ; [.1A7D.0020.000B] # MATHEMATICAL ITALIC CAPITAL N
-1D475 ; [.1A7D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL N
-1D4A9 ; [.1A7D.0020.000B] # MATHEMATICAL SCRIPT CAPITAL N
-1D4DD ; [.1A7D.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL N
-1D511 ; [.1A7D.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL N
-1D579 ; [.1A7D.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL N
-1D5AD ; [.1A7D.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL N
-1D5E1 ; [.1A7D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL N
-1D615 ; [.1A7D.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
-1D649 ; [.1A7D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
-1D67D ; [.1A7D.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL N
-24C3 ; [.1A7D.0020.000C] # CIRCLED LATIN CAPITAL LETTER N
-1F15D ; [.1A7D.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER N
-207F ; [.1A7D.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER N
-2099 ; [.1A7D.0020.0015] # LATIN SUBSCRIPT SMALL LETTER N
-1D3A ; [.1A7D.0020.001D] # MODIFIER LETTER CAPITAL N
-1F13D ; [.1A7D.0020.001D] # SQUARED LATIN CAPITAL LETTER N
-1F17D ; [.1A7D.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER N
-0144 ; [.1A7D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER N WITH ACUTE
-01F9 ; [.1A7D.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER N WITH GRAVE
-0148 ; [.1A7D.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER N WITH CARON
-00F1 ; [.1A7D.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A7D.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER N WITH TILDE
-1E45 ; [.1A7D.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-1E44 ; [.1A7D.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-0146 ; [.1A7D.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER N WITH CEDILLA
-0145 ; [.1A7D.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER N WITH CEDILLA
-A7A5 ; [.1A7D.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER N WITH OBLIQUE STROKE
-A7A4 ; [.1A7D.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
-1E47 ; [.1A7D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER N WITH DOT BELOW
-1E46 ; [.1A7D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER N WITH DOT BELOW
-1E4B ; [.1A7D.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4A ; [.1A7D.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E49 ; [.1A7D.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER N WITH LINE BELOW
-1E48 ; [.1A7D.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER N WITH LINE BELOW
-3381 ; [.1A7D.0020.001C][.190C.0020.001D] # SQUARE NA
-1F195 ; [.1A7D.0020.001D][.196E.0020.001D][.1BB7.0020.001D] # SQUARED NEW
-338B ; [.1A7D.0020.001C][.19A9.0020.001D] # SQUARE NF
-1F196 ; [.1A7D.0020.001D][.19B8.0020.001D] # SQUARED NG
-01CC ; [.1A7D.0020.0004][.1A10.0020.0004] # LATIN SMALL LETTER NJ
-01CB ; [.1A7D.0020.000A][.1A10.0020.0004] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-01CA ; [.1A7D.0020.000A][.1A10.0020.000A] # LATIN CAPITAL LETTER NJ
-339A ; [.1A7D.0020.001C][.1A6E.0020.001C] # SQUARE NM
-2116 ; [.1A7D.0020.000A][.1AA1.0020.0004] # NUMERO SIGN
-33B1 ; [.1A7D.0020.001C][.1B33.0020.001C] # SQUARE NS
-33B5 ; [.1A7D.0020.001C][.1BA5.0020.001D] # SQUARE NV
-33BB ; [.1A7D.0020.001C][.1BB7.0020.001D] # SQUARE NW
-0274 ; [.1A81.0020.0002] # LATIN LETTER SMALL CAPITAL N
-1DE1 ; [.1A81.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL N
-1DB0 ; [.1A81.0020.0014] # MODIFIER LETTER SMALL CAPITAL N
-1D3B ; [.1A85.0020.0002] # MODIFIER LETTER CAPITAL REVERSED N
-1D0E ; [.1A86.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED N
-1D70 ; [.1A87.0020.0002] # LATIN SMALL LETTER N WITH MIDDLE TILDE
-0272 ; [.1A88.0020.0002] # LATIN SMALL LETTER N WITH LEFT HOOK
-019D ; [.1A88.0020.0008] # LATIN CAPITAL LETTER N WITH LEFT HOOK
-1DAE ; [.1A88.0020.0014] # MODIFIER LETTER SMALL N WITH LEFT HOOK
-019E ; [.1A8C.0020.0002] # LATIN SMALL LETTER N WITH LONG RIGHT LEG
-0220 ; [.1A8C.0020.0008] # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-A791 ; [.1A90.0020.0002] # LATIN SMALL LETTER N WITH DESCENDER
-A790 ; [.1A90.0020.0008] # LATIN CAPITAL LETTER N WITH DESCENDER
-1D87 ; [.1A91.0020.0002] # LATIN SMALL LETTER N WITH PALATAL HOOK
-0273 ; [.1A92.0020.0002] # LATIN SMALL LETTER N WITH RETROFLEX HOOK
-1DAF ; [.1A92.0020.0014] # MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
-0235 ; [.1A96.0020.0002] # LATIN SMALL LETTER N WITH CURL
-AB3B ; [.1A9A.0020.0002] # LATIN SMALL LETTER N WITH CROSSED-TAIL
-A774 ; [.1A9B.0020.0002] # LATIN SMALL LETTER NUM
-014B ; [.1A9C.0020.0002] # LATIN SMALL LETTER ENG
-014A ; [.1A9C.0020.0008] # LATIN CAPITAL LETTER ENG
-1D51 ; [.1A9C.0020.0014] # MODIFIER LETTER SMALL ENG
-AB3C ; [.1AA0.0020.0002] # LATIN SMALL LETTER ENG WITH CROSSED-TAIL
-006F ; [.1AA1.0020.0002] # LATIN SMALL LETTER O
-FF4F ; [.1AA1.0020.0003] # FULLWIDTH LATIN SMALL LETTER O
-0366 ; [.1AA1.0020.0004] # COMBINING LATIN SMALL LETTER O
-24AA ; [*030A.0020.0004][.1AA1.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER O
-2134 ; [.1AA1.0020.0005] # SCRIPT SMALL O
-1D428 ; [.1AA1.0020.0005] # MATHEMATICAL BOLD SMALL O
-1D45C ; [.1AA1.0020.0005] # MATHEMATICAL ITALIC SMALL O
-1D490 ; [.1AA1.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL O
-1D4F8 ; [.1AA1.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL O
-1D52C ; [.1AA1.0020.0005] # MATHEMATICAL FRAKTUR SMALL O
-1D560 ; [.1AA1.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL O
-1D594 ; [.1AA1.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL O
-1D5C8 ; [.1AA1.0020.0005] # MATHEMATICAL SANS-SERIF SMALL O
-1D5FC ; [.1AA1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL O
-1D630 ; [.1AA1.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL O
-1D664 ; [.1AA1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
-1D698 ; [.1AA1.0020.0005] # MATHEMATICAL MONOSPACE SMALL O
-24DE ; [.1AA1.0020.0006] # CIRCLED LATIN SMALL LETTER O
-004F ; [.1AA1.0020.0008] # LATIN CAPITAL LETTER O
-FF2F ; [.1AA1.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER O
-1F11E ; [*030A.0020.0004][.1AA1.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER O
-1D40E ; [.1AA1.0020.000B] # MATHEMATICAL BOLD CAPITAL O
-1D442 ; [.1AA1.0020.000B] # MATHEMATICAL ITALIC CAPITAL O
-1D476 ; [.1AA1.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL O
-1D4AA ; [.1AA1.0020.000B] # MATHEMATICAL SCRIPT CAPITAL O
-1D4DE ; [.1AA1.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL O
-1D512 ; [.1AA1.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL O
-1D546 ; [.1AA1.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D57A ; [.1AA1.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL O
-1D5AE ; [.1AA1.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL O
-1D5E2 ; [.1AA1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL O
-1D616 ; [.1AA1.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
-1D64A ; [.1AA1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
-1D67E ; [.1AA1.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL O
-24C4 ; [.1AA1.0020.000C] # CIRCLED LATIN CAPITAL LETTER O
-1F15E ; [.1AA1.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER O
-00BA ; [.1AA1.0020.0014] # MASCULINE ORDINAL INDICATOR
-1D52 ; [.1AA1.0020.0014] # MODIFIER LETTER SMALL O
-2092 ; [.1AA1.0020.0015] # LATIN SUBSCRIPT SMALL LETTER O
-1D3C ; [.1AA1.0020.001D] # MODIFIER LETTER CAPITAL O
-1F13E ; [.1AA1.0020.001D] # SQUARED LATIN CAPITAL LETTER O
-1F17E ; [.1AA1.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER O
-00F3 ; [.1AA1.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH ACUTE
-00F2 ; [.1AA1.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH GRAVE
-014F ; [.1AA1.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER O WITH BREVE
-014E ; [.1AA1.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER O WITH BREVE
-00F4 ; [.1AA1.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA1.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED1 ; [.1AA1.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA1.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED3 ; [.1AA1.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA1.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED7 ; [.1AA1.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA1.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA1.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA1.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-01D2 ; [.1AA1.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER O WITH CARON
-00F6 ; [.1AA1.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-1DF3 ; [.1AA1.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER O WITH DIAERESIS
-A79D ; [.1AA1.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK OE
-00D6 ; [.1AA1.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS
-A79C ; [.1AA1.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK OE
-022B ; [.1AA1.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA1.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1AA1.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1AA1.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00F5 ; [.1AA1.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1AA1.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.1AA1.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.1AA1.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4F ; [.1AA1.0020.0002][.0000.002D.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.1AA1.0020.0008][.0000.002D.0002][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-022D ; [.1AA1.0020.0002][.0000.002D.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.1AA1.0020.0008][.0000.002D.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022F ; [.1AA1.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER O WITH DOT ABOVE
-022E ; [.1AA1.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE
-0231 ; [.1AA1.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0230 ; [.1AA1.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-00F8 ; [.1AA1.0020.0002][.0000.002F.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1AA1.0020.0008][.0000.002F.0002] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1AA1.0020.0002][.0000.002F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1AA1.0020.0008][.0000.002F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01EB ; [.1AA1.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER O WITH OGONEK
-01EA ; [.1AA1.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER O WITH OGONEK
-01ED ; [.1AA1.0020.0002][.0000.0031.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EC ; [.1AA1.0020.0008][.0000.0031.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-014D ; [.1AA1.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
-1E53 ; [.1AA1.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E52 ; [.1AA1.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E51 ; [.1AA1.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E50 ; [.1AA1.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1DED ; [.1AA1.0020.0004][.0000.0034.0004] # COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE
-1ECF ; [.1AA1.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ECE ; [.1AA1.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-020D ; [.1AA1.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020C ; [.1AA1.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020F ; [.1AA1.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER O WITH INVERTED BREVE
-020E ; [.1AA1.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER O WITH INVERTED BREVE
-01A1 ; [.1AA1.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN
-01A0 ; [.1AA1.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN
-1EDB ; [.1AA1.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDA ; [.1AA1.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDD ; [.1AA1.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDC ; [.1AA1.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EE1 ; [.1AA1.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1AA1.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EDF ; [.1AA1.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EDE ; [.1AA1.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EE3 ; [.1AA1.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.1AA1.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1ECD ; [.1AA1.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.1AA1.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.1AA1.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA1.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0153 ; [.1AA1.0020.0004][.0000.0108.0004][.196E.0020.0004] # LATIN SMALL LIGATURE OE
-0152 ; [.1AA1.0020.000A][.0000.0108.0004][.196E.0020.000A] # LATIN CAPITAL LIGATURE OE
-A7F9 ; [.1AA1.0020.0014][.0000.0108.0014][.196E.0020.0014] # MODIFIER LETTER SMALL LIGATURE OE
-1F197 ; [.1AA1.0020.001D][.1A29.0020.001D] # SQUARED OK
-A74F ; [.1AA1.0020.0004][.1AA1.0020.0004] # LATIN SMALL LETTER OO
-A74E ; [.1AA1.0020.000A][.1AA1.0020.000A] # LATIN CAPITAL LETTER OO
-3375 ; [.1AA1.0020.001C][.1BA5.0020.001D] # SQUARE OV
-1D0F ; [.1AA5.0020.0002] # LATIN LETTER SMALL CAPITAL O
-1D11 ; [.1AA6.0020.0002] # LATIN SMALL LETTER SIDEWAYS O
-AB3D ; [.1AA7.0020.0002] # LATIN SMALL LETTER BLACKLETTER O
-0276 ; [.1AA8.0020.0002] # LATIN LETTER SMALL CAPITAL OE
-1D14 ; [.1AAC.0020.0002] # LATIN SMALL LETTER TURNED OE
-AB41 ; [.1AAD.0020.0002] # LATIN SMALL LETTER TURNED OE WITH STROKE
-AB42 ; [.1AAE.0020.0002] # LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE
-AB40 ; [.1AAF.0020.0002] # LATIN SMALL LETTER INVERTED OE
-AB43 ; [.1AB0.0020.0002] # LATIN SMALL LETTER TURNED O OPEN-O
-AB44 ; [.1AB1.0020.0002] # LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE
-1D13 ; [.1AB2.0020.0002] # LATIN SMALL LETTER SIDEWAYS O WITH STROKE
-AB3E ; [.1AB3.0020.0002] # LATIN SMALL LETTER BLACKLETTER O WITH STROKE
-0254 ; [.1AB4.0020.0002] # LATIN SMALL LETTER OPEN O
-0186 ; [.1AB4.0020.0008] # LATIN CAPITAL LETTER OPEN O
-1D53 ; [.1AB4.0020.0014] # MODIFIER LETTER SMALL OPEN O
-1D10 ; [.1AB8.0020.0002] # LATIN LETTER SMALL CAPITAL OPEN O
-1D12 ; [.1AB9.0020.0002] # LATIN SMALL LETTER SIDEWAYS OPEN O
-AB3F ; [.1ABA.0020.0002] # LATIN SMALL LETTER OPEN O WITH STROKE
-1D97 ; [.1ABB.0020.0002] # LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
-A74D ; [.1ABC.0020.0002] # LATIN SMALL LETTER O WITH LOOP
-A74C ; [.1ABC.0020.0008] # LATIN CAPITAL LETTER O WITH LOOP
-1D16 ; [.1ABD.0020.0002] # LATIN SMALL LETTER TOP HALF O
-1D54 ; [.1ABD.0020.0014] # MODIFIER LETTER SMALL TOP HALF O
-1D17 ; [.1ABE.0020.0002] # LATIN SMALL LETTER BOTTOM HALF O
-1D55 ; [.1ABE.0020.0014] # MODIFIER LETTER SMALL BOTTOM HALF O
-2C7A ; [.1ABF.0020.0002] # LATIN SMALL LETTER O WITH LOW RING INSIDE
-0275 ; [.1AC0.0020.0002] # LATIN SMALL LETTER BARRED O
-019F ; [.1AC0.0020.0008] # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-1DB1 ; [.1AC0.0020.0014] # MODIFIER LETTER SMALL BARRED O
-A74B ; [.1AC4.0020.0002] # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
-A74A ; [.1AC4.0020.0008] # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
-0277 ; [.1AC5.0020.0002] # LATIN SMALL LETTER CLOSED OMEGA
-0223 ; [.1AC9.0020.0002] # LATIN SMALL LETTER OU
-0222 ; [.1AC9.0020.0008] # LATIN CAPITAL LETTER OU
-1D3D ; [.1AC9.0020.001D] # MODIFIER LETTER CAPITAL OU
-1D15 ; [.1ACD.0020.0002] # LATIN LETTER SMALL CAPITAL OU
-0070 ; [.1ACE.0020.0002] # LATIN SMALL LETTER P
-FF50 ; [.1ACE.0020.0003] # FULLWIDTH LATIN SMALL LETTER P
-1DEE ; [.1ACE.0020.0004] # COMBINING LATIN SMALL LETTER P
-24AB ; [*030A.0020.0004][.1ACE.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER P
-1D429 ; [.1ACE.0020.0005] # MATHEMATICAL BOLD SMALL P
-1D45D ; [.1ACE.0020.0005] # MATHEMATICAL ITALIC SMALL P
-1D491 ; [.1ACE.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL P
-1D4C5 ; [.1ACE.0020.0005] # MATHEMATICAL SCRIPT SMALL P
-1D4F9 ; [.1ACE.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL P
-1D52D ; [.1ACE.0020.0005] # MATHEMATICAL FRAKTUR SMALL P
-1D561 ; [.1ACE.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL P
-1D595 ; [.1ACE.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL P
-1D5C9 ; [.1ACE.0020.0005] # MATHEMATICAL SANS-SERIF SMALL P
-1D5FD ; [.1ACE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL P
-1D631 ; [.1ACE.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL P
-1D665 ; [.1ACE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
-1D699 ; [.1ACE.0020.0005] # MATHEMATICAL MONOSPACE SMALL P
-24DF ; [.1ACE.0020.0006] # CIRCLED LATIN SMALL LETTER P
-0050 ; [.1ACE.0020.0008] # LATIN CAPITAL LETTER P
-FF30 ; [.1ACE.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER P
-1F11F ; [*030A.0020.0004][.1ACE.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER P
-2119 ; [.1ACE.0020.000B] # DOUBLE-STRUCK CAPITAL P
-1D40F ; [.1ACE.0020.000B] # MATHEMATICAL BOLD CAPITAL P
-1D443 ; [.1ACE.0020.000B] # MATHEMATICAL ITALIC CAPITAL P
-1D477 ; [.1ACE.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL P
-1D4AB ; [.1ACE.0020.000B] # MATHEMATICAL SCRIPT CAPITAL P
-1D4DF ; [.1ACE.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL P
-1D513 ; [.1ACE.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL P
-1D57B ; [.1ACE.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL P
-1D5AF ; [.1ACE.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL P
-1D5E3 ; [.1ACE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL P
-1D617 ; [.1ACE.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
-1D64B ; [.1ACE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
-1D67F ; [.1ACE.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL P
-24C5 ; [.1ACE.0020.000C] # CIRCLED LATIN CAPITAL LETTER P
-1F15F ; [.1ACE.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER P
-1D56 ; [.1ACE.0020.0014] # MODIFIER LETTER SMALL P
-209A ; [.1ACE.0020.0015] # LATIN SUBSCRIPT SMALL LETTER P
-1D3E ; [.1ACE.0020.001D] # MODIFIER LETTER CAPITAL P
-1F13F ; [.1ACE.0020.001D] # SQUARED LATIN CAPITAL LETTER P
-1F17F ; [.1ACE.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F18A ; [.1ACE.0020.001D] # CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1E55 ; [.1ACE.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER P WITH ACUTE
-1E54 ; [.1ACE.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER P WITH ACUTE
-1E57 ; [.1ACE.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER P WITH DOT ABOVE
-1E56 ; [.1ACE.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER P WITH DOT ABOVE
-3380 ; [.1ACE.0020.001C][.190C.0020.001D] # SQUARE PA AMPS
-33A9 ; [.1ACE.0020.001D][.190C.0020.001C] # SQUARE PA
-1F18C ; [.1ACE.0020.001D][.190C.0020.001D] # NEGATIVE SQUARED PA
-3376 ; [.1ACE.0020.001C][.193E.0020.001C] # SQUARE PC
-338A ; [.1ACE.0020.001C][.19A9.0020.001D] # SQUARE PF
-33D7 ; [.1ACE.0020.001D][.19DC.0020.001D] # SQUARE PH
-33D8 ; [.1ACE.0020.001C][*0274.0020.001C][.1A6E.0020.001C][*0274.0020.001C] # SQUARE PM
-33D9 ; [.1ACE.0020.001D][.1ACE.0020.001D][.1A6E.0020.001D] # SQUARE PPM
-1F14E ; [.1ACE.0020.001D][.1ACE.0020.001D][.1BA5.0020.001D] # SQUARED PPV
-33DA ; [.1ACE.0020.001D][.1AF5.0020.001D] # SQUARE PR
-33B0 ; [.1ACE.0020.001C][.1B33.0020.001C] # SQUARE PS
-3250 ; [.1ACE.0020.001D][.1B57.0020.001D][.196E.0020.001D] # PARTNERSHIP SIGN
-33B4 ; [.1ACE.0020.001C][.1BA5.0020.001D] # SQUARE PV
-33BA ; [.1ACE.0020.001C][.1BB7.0020.001D] # SQUARE PW
-1D18 ; [.1AD2.0020.0002] # LATIN LETTER SMALL CAPITAL P
-1D7D ; [.1AD3.0020.0002] # LATIN SMALL LETTER P WITH STROKE
-2C63 ; [.1AD3.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE
-A751 ; [.1AD4.0020.0002] # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
-A750 ; [.1AD4.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
-1D71 ; [.1AD5.0020.0002] # LATIN SMALL LETTER P WITH MIDDLE TILDE
-1D88 ; [.1AD6.0020.0002] # LATIN SMALL LETTER P WITH PALATAL HOOK
-01A5 ; [.1AD7.0020.0002] # LATIN SMALL LETTER P WITH HOOK
-01A4 ; [.1AD7.0020.0008] # LATIN CAPITAL LETTER P WITH HOOK
-A753 ; [.1ADB.0020.0002] # LATIN SMALL LETTER P WITH FLOURISH
-A752 ; [.1ADB.0020.0008] # LATIN CAPITAL LETTER P WITH FLOURISH
-A755 ; [.1ADC.0020.0002] # LATIN SMALL LETTER P WITH SQUIRREL TAIL
-A754 ; [.1ADC.0020.0008] # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
-A7FC ; [.1ADD.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED P
-0278 ; [.1ADE.0020.0002] # LATIN SMALL LETTER PHI
-1DB2 ; [.1ADE.0020.0014] # MODIFIER LETTER SMALL PHI
-2C77 ; [.1AE2.0020.0002] # LATIN SMALL LETTER TAILLESS PHI
-0071 ; [.1AE3.0020.0002] # LATIN SMALL LETTER Q
-FF51 ; [.1AE3.0020.0003] # FULLWIDTH LATIN SMALL LETTER Q
-24AC ; [*030A.0020.0004][.1AE3.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Q
-1D42A ; [.1AE3.0020.0005] # MATHEMATICAL BOLD SMALL Q
-1D45E ; [.1AE3.0020.0005] # MATHEMATICAL ITALIC SMALL Q
-1D492 ; [.1AE3.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Q
-1D4C6 ; [.1AE3.0020.0005] # MATHEMATICAL SCRIPT SMALL Q
-1D4FA ; [.1AE3.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Q
-1D52E ; [.1AE3.0020.0005] # MATHEMATICAL FRAKTUR SMALL Q
-1D562 ; [.1AE3.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Q
-1D596 ; [.1AE3.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Q
-1D5CA ; [.1AE3.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Q
-1D5FE ; [.1AE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Q
-1D632 ; [.1AE3.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Q
-1D666 ; [.1AE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
-1D69A ; [.1AE3.0020.0005] # MATHEMATICAL MONOSPACE SMALL Q
-24E0 ; [.1AE3.0020.0006] # CIRCLED LATIN SMALL LETTER Q
-0051 ; [.1AE3.0020.0008] # LATIN CAPITAL LETTER Q
-FF31 ; [.1AE3.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Q
-1F120 ; [*030A.0020.0004][.1AE3.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Q
-211A ; [.1AE3.0020.000B] # DOUBLE-STRUCK CAPITAL Q
-1D410 ; [.1AE3.0020.000B] # MATHEMATICAL BOLD CAPITAL Q
-1D444 ; [.1AE3.0020.000B] # MATHEMATICAL ITALIC CAPITAL Q
-1D478 ; [.1AE3.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Q
-1D4AC ; [.1AE3.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Q
-1D4E0 ; [.1AE3.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Q
-1D514 ; [.1AE3.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Q
-1D57C ; [.1AE3.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Q
-1D5B0 ; [.1AE3.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Q
-1D5E4 ; [.1AE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
-1D618 ; [.1AE3.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
-1D64C ; [.1AE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
-1D680 ; [.1AE3.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Q
-24C6 ; [.1AE3.0020.000C] # CIRCLED LATIN CAPITAL LETTER Q
-1F160 ; [.1AE3.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
-1F140 ; [.1AE3.0020.001D] # SQUARED LATIN CAPITAL LETTER Q
-1F180 ; [.1AE3.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Q
-0239 ; [.1AE3.0020.0004][.1ACE.0020.0004] # LATIN SMALL LETTER QP DIGRAPH
-A757 ; [.1AE7.0020.0002] # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
-A756 ; [.1AE7.0020.0008] # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
-A759 ; [.1AE8.0020.0002] # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
-A758 ; [.1AE8.0020.0008] # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
-02A0 ; [.1AE9.0020.0002] # LATIN SMALL LETTER Q WITH HOOK
-024B ; [.1AED.0020.0002] # LATIN SMALL LETTER Q WITH HOOK TAIL
-024A ; [.1AED.0020.0008] # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-0138 ; [.1AF1.0020.0002] # LATIN SMALL LETTER KRA
-0072 ; [.1AF5.0020.0002] # LATIN SMALL LETTER R
-FF52 ; [.1AF5.0020.0003] # FULLWIDTH LATIN SMALL LETTER R
-036C ; [.1AF5.0020.0004] # COMBINING LATIN SMALL LETTER R
-1DCA ; [.1AF5.0020.0004] # COMBINING LATIN SMALL LETTER R BELOW
-24AD ; [*030A.0020.0004][.1AF5.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER R
-1D42B ; [.1AF5.0020.0005] # MATHEMATICAL BOLD SMALL R
-1D45F ; [.1AF5.0020.0005] # MATHEMATICAL ITALIC SMALL R
-1D493 ; [.1AF5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL R
-1D4C7 ; [.1AF5.0020.0005] # MATHEMATICAL SCRIPT SMALL R
-1D4FB ; [.1AF5.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL R
-1D52F ; [.1AF5.0020.0005] # MATHEMATICAL FRAKTUR SMALL R
-1D563 ; [.1AF5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL R
-1D597 ; [.1AF5.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL R
-1D5CB ; [.1AF5.0020.0005] # MATHEMATICAL SANS-SERIF SMALL R
-1D5FF ; [.1AF5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL R
-1D633 ; [.1AF5.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL R
-1D667 ; [.1AF5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
-1D69B ; [.1AF5.0020.0005] # MATHEMATICAL MONOSPACE SMALL R
-24E1 ; [.1AF5.0020.0006] # CIRCLED LATIN SMALL LETTER R
-0052 ; [.1AF5.0020.0008] # LATIN CAPITAL LETTER R
-FF32 ; [.1AF5.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER R
-1F121 ; [*030A.0020.0004][.1AF5.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER R
-211B ; [.1AF5.0020.000B] # SCRIPT CAPITAL R
-211C ; [.1AF5.0020.000B] # BLACK-LETTER CAPITAL R
-211D ; [.1AF5.0020.000B] # DOUBLE-STRUCK CAPITAL R
-1D411 ; [.1AF5.0020.000B] # MATHEMATICAL BOLD CAPITAL R
-1D445 ; [.1AF5.0020.000B] # MATHEMATICAL ITALIC CAPITAL R
-1D479 ; [.1AF5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL R
-1D4E1 ; [.1AF5.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL R
-1D57D ; [.1AF5.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL R
-1D5B1 ; [.1AF5.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL R
-1D5E5 ; [.1AF5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL R
-1D619 ; [.1AF5.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
-1D64D ; [.1AF5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
-1D681 ; [.1AF5.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL R
-24C7 ; [.1AF5.0020.000C] # CIRCLED LATIN CAPITAL LETTER R
-1F12C ; [.1AF5.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER R
-1F161 ; [.1AF5.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER R
-02B3 ; [.1AF5.0020.0014] # MODIFIER LETTER SMALL R
-1D63 ; [.1AF5.0020.0015] # LATIN SUBSCRIPT SMALL LETTER R
-1D3F ; [.1AF5.0020.001D] # MODIFIER LETTER CAPITAL R
-1F141 ; [.1AF5.0020.001D] # SQUARED LATIN CAPITAL LETTER R
-1F181 ; [.1AF5.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER R
-0155 ; [.1AF5.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER R WITH ACUTE
-0154 ; [.1AF5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER R WITH ACUTE
-0159 ; [.1AF5.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.1AF5.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER R WITH CARON
-1E59 ; [.1AF5.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER R WITH DOT ABOVE
-1E58 ; [.1AF5.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER R WITH DOT ABOVE
-0157 ; [.1AF5.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0156 ; [.1AF5.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER R WITH CEDILLA
-A7A7 ; [.1AF5.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER R WITH OBLIQUE STROKE
-A7A6 ; [.1AF5.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
-0211 ; [.1AF5.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0210 ; [.1AF5.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0213 ; [.1AF5.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER R WITH INVERTED BREVE
-0212 ; [.1AF5.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER R WITH INVERTED BREVE
-1E5B ; [.1AF5.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER R WITH DOT BELOW
-1E5A ; [.1AF5.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5D ; [.1AF5.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5C ; [.1AF5.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5F ; [.1AF5.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER R WITH LINE BELOW
-1E5E ; [.1AF5.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER R WITH LINE BELOW
-A783 ; [.1AF5.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR R
-A782 ; [.1AF5.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR R
-33AD ; [.1AF5.0020.001C][.190C.0020.001C][.1953.0020.001C] # SQUARE RAD
-33AE ; [.1AF5.0020.001C][.190C.0020.001C][.1953.0020.001C][*05E5.0020.001C][.1B33.0020.001C] # SQUARE RAD OVER S
-33AF ; [.1AF5.0020.001C][.190C.0020.001C][.1953.0020.001C][*05E5.0020.001C][.1B33.0020.001C][.1904.0020.001C] # SQUARE RAD OVER S SQUARED
-20A8 ; [.1AF5.0020.000A][.1B33.0020.0004] # RUPEE SIGN
-AB45 ; [.1AF9.0020.0002] # LATIN SMALL LETTER STIRRUP R
-0280 ; [.1AFA.0020.0002] # LATIN LETTER SMALL CAPITAL R
-1DE2 ; [.1AFA.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL R
-01A6 ; [.1AFA.0020.0008] # LATIN LETTER YR
-AB46 ; [.1AFE.0020.0002] # LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG
-A75B ; [.1AFF.0020.0002] # LATIN SMALL LETTER R ROTUNDA
-1DE3 ; [.1AFF.0020.0004] # COMBINING LATIN SMALL LETTER R ROTUNDA
-A75A ; [.1AFF.0020.0008] # LATIN CAPITAL LETTER R ROTUNDA
-1D19 ; [.1B00.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED R
-024D ; [.1B01.0020.0002] # LATIN SMALL LETTER R WITH STROKE
-024C ; [.1B01.0020.0008] # LATIN CAPITAL LETTER R WITH STROKE
-1D72 ; [.1B05.0020.0002] # LATIN SMALL LETTER R WITH MIDDLE TILDE
-0279 ; [.1B06.0020.0002] # LATIN SMALL LETTER TURNED R
-02B4 ; [.1B06.0020.0014] # MODIFIER LETTER SMALL TURNED R
-1D1A ; [.1B0A.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED R
-027A ; [.1B0B.0020.0002] # LATIN SMALL LETTER TURNED R WITH LONG LEG
-1D89 ; [.1B0F.0020.0002] # LATIN SMALL LETTER R WITH PALATAL HOOK
-027B ; [.1B10.0020.0002] # LATIN SMALL LETTER TURNED R WITH HOOK
-02B5 ; [.1B10.0020.0014] # MODIFIER LETTER SMALL TURNED R WITH HOOK
-2C79 ; [.1B14.0020.0002] # LATIN SMALL LETTER TURNED R WITH TAIL
-027C ; [.1B15.0020.0002] # LATIN SMALL LETTER R WITH LONG LEG
-027D ; [.1B19.0020.0002] # LATIN SMALL LETTER R WITH TAIL
-2C64 ; [.1B19.0020.0008] # LATIN CAPITAL LETTER R WITH TAIL
-AB49 ; [.1B1D.0020.0002] # LATIN SMALL LETTER R WITH CROSSED-TAIL
-027E ; [.1B1E.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK
-1D73 ; [.1B22.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
-027F ; [.1B23.0020.0002] # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-AB47 ; [.1B27.0020.0002] # LATIN SMALL LETTER R WITHOUT HANDLE
-AB48 ; [.1B28.0020.0002] # LATIN SMALL LETTER DOUBLE R
-AB4A ; [.1B29.0020.0002] # LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL
-AB4B ; [.1B2A.0020.0002] # LATIN SMALL LETTER SCRIPT R
-AB4C ; [.1B2B.0020.0002] # LATIN SMALL LETTER SCRIPT R WITH RING
-0281 ; [.1B2C.0020.0002] # LATIN LETTER SMALL CAPITAL INVERTED R
-02B6 ; [.1B2C.0020.0014] # MODIFIER LETTER SMALL CAPITAL INVERTED R
-A775 ; [.1B30.0020.0002] # LATIN SMALL LETTER RUM
-A776 ; [.1B31.0020.0002] # LATIN LETTER SMALL CAPITAL RUM
-A75D ; [.1B32.0020.0002] # LATIN SMALL LETTER RUM ROTUNDA
-A75C ; [.1B32.0020.0008] # LATIN CAPITAL LETTER RUM ROTUNDA
-0073 ; [.1B33.0020.0002] # LATIN SMALL LETTER S
-FF53 ; [.1B33.0020.0003] # FULLWIDTH LATIN SMALL LETTER S
-1DE4 ; [.1B33.0020.0004] # COMBINING LATIN SMALL LETTER S
-24AE ; [*030A.0020.0004][.1B33.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER S
-1D42C ; [.1B33.0020.0005] # MATHEMATICAL BOLD SMALL S
-1D460 ; [.1B33.0020.0005] # MATHEMATICAL ITALIC SMALL S
-1D494 ; [.1B33.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL S
-1D4C8 ; [.1B33.0020.0005] # MATHEMATICAL SCRIPT SMALL S
-1D4FC ; [.1B33.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL S
-1D530 ; [.1B33.0020.0005] # MATHEMATICAL FRAKTUR SMALL S
-1D564 ; [.1B33.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL S
-1D598 ; [.1B33.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL S
-1D5CC ; [.1B33.0020.0005] # MATHEMATICAL SANS-SERIF SMALL S
-1D600 ; [.1B33.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL S
-1D634 ; [.1B33.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL S
-1D668 ; [.1B33.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
-1D69C ; [.1B33.0020.0005] # MATHEMATICAL MONOSPACE SMALL S
-24E2 ; [.1B33.0020.0006] # CIRCLED LATIN SMALL LETTER S
-0053 ; [.1B33.0020.0008] # LATIN CAPITAL LETTER S
-FF33 ; [.1B33.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER S
-1F122 ; [*030A.0020.0004][.1B33.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER S
-1F12A ; [*036C.0020.0004][.1B33.0020.000A][*036D.0020.0004] # TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
-1D412 ; [.1B33.0020.000B] # MATHEMATICAL BOLD CAPITAL S
-1D446 ; [.1B33.0020.000B] # MATHEMATICAL ITALIC CAPITAL S
-1D47A ; [.1B33.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL S
-1D4AE ; [.1B33.0020.000B] # MATHEMATICAL SCRIPT CAPITAL S
-1D4E2 ; [.1B33.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL S
-1D516 ; [.1B33.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL S
-1D54A ; [.1B33.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL S
-1D57E ; [.1B33.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL S
-1D5B2 ; [.1B33.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL S
-1D5E6 ; [.1B33.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL S
-1D61A ; [.1B33.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
-1D64E ; [.1B33.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
-1D682 ; [.1B33.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL S
-24C8 ; [.1B33.0020.000C] # CIRCLED LATIN CAPITAL LETTER S
-1F162 ; [.1B33.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER S
-02E2 ; [.1B33.0020.0014] # MODIFIER LETTER SMALL S
-209B ; [.1B33.0020.0015] # LATIN SUBSCRIPT SMALL LETTER S
-1F142 ; [.1B33.0020.001D] # SQUARED LATIN CAPITAL LETTER S
-1F182 ; [.1B33.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER S
-015B ; [.1B33.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER S WITH ACUTE
-015A ; [.1B33.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER S WITH ACUTE
-1E65 ; [.1B33.0020.0002][.0000.0024.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E64 ; [.1B33.0020.0008][.0000.0024.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-015D ; [.1B33.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015C ; [.1B33.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-0161 ; [.1B33.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B33.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER S WITH CARON
-1E67 ; [.1B33.0020.0002][.0000.0028.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E66 ; [.1B33.0020.0008][.0000.0028.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E61 ; [.1B33.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT ABOVE
-1E60 ; [.1B33.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT ABOVE
-015F ; [.1B33.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.1B33.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER S WITH CEDILLA
-A7A9 ; [.1B33.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER S WITH OBLIQUE STROKE
-A7A8 ; [.1B33.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-1E63 ; [.1B33.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-1E62 ; [.1B33.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW
-1E69 ; [.1B33.0020.0002][.0000.0042.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E68 ; [.1B33.0020.0008][.0000.0042.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-0219 ; [.1B33.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-0218 ; [.1B33.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-017F ; [.1B33.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER LONG S
-1DE5 ; [.1B33.0020.0004][.0000.0109.0004] # COMBINING LATIN SMALL LETTER LONG S
-A785 ; [.1B33.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR S
-A784 ; [.1B33.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR S
-1E9B ; [.1B33.0020.0004][.0000.0109.0004][.0000.002E.0002] # LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1F18D ; [.1B33.0020.001D][.190C.0020.001D] # NEGATIVE SQUARED SA
-1F14C ; [.1B33.0020.001D][.1953.0020.001D] # SQUARED SD
-2120 ; [.1B33.0020.0014][.1A6E.0020.0014] # SERVICE MARK
-1F198 ; [.1B33.0020.001D][.1AA1.0020.001D][.1B33.0020.001D] # SQUARED SOS
-33DB ; [.1B33.0020.001C][.1AF5.0020.001C] # SQUARE SR
-1F14D ; [.1B33.0020.001D][.1B33.0020.001D] # SQUARED SS
-00DF ; [.1B33.0020.0004][.0000.0108.0004][.1B33.0020.0004] # LATIN SMALL LETTER SHARP S
-1E9E ; [.1B33.0020.000A][.0000.0108.0004][.1B33.0020.000A] # LATIN CAPITAL LETTER SHARP S
-FB06 ; [.1B33.0020.0004][.1B57.0020.0004] # LATIN SMALL LIGATURE ST
-FB05 ; [.1B33.0020.0004][.0000.0109.0004][.1B57.0020.0004] # LATIN SMALL LIGATURE LONG S T
-33DC ; [.1B33.0020.001D][.1BA5.0020.001C] # SQUARE SV
-A731 ; [.1B37.0020.0002] # LATIN LETTER SMALL CAPITAL S
-1D74 ; [.1B38.0020.0002] # LATIN SMALL LETTER S WITH MIDDLE TILDE
-1D8A ; [.1B39.0020.0002] # LATIN SMALL LETTER S WITH PALATAL HOOK
-0282 ; [.1B3A.0020.0002] # LATIN SMALL LETTER S WITH HOOK
-1DB3 ; [.1B3A.0020.0014] # MODIFIER LETTER SMALL S WITH HOOK
-023F ; [.1B3E.0020.0002] # LATIN SMALL LETTER S WITH SWASH TAIL
-2C7E ; [.1B3E.0020.0008] # LATIN CAPITAL LETTER S WITH SWASH TAIL
-1E9C ; [.1B42.0020.0002] # LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
-1E9D ; [.1B43.0020.0002] # LATIN SMALL LETTER LONG S WITH HIGH STROKE
-0283 ; [.1B44.0020.0002] # LATIN SMALL LETTER ESH
-1DEF ; [.1B44.0020.0004] # COMBINING LATIN SMALL LETTER ESH
-01A9 ; [.1B44.0020.0008] # LATIN CAPITAL LETTER ESH
-1DB4 ; [.1B44.0020.0014] # MODIFIER LETTER SMALL ESH
-AB4D ; [.1B48.0020.0002] # LATIN SMALL LETTER BASELINE ESH
-1D8B ; [.1B49.0020.0002] # LATIN SMALL LETTER ESH WITH PALATAL HOOK
-01AA ; [.1B4A.0020.0002] # LATIN LETTER REVERSED ESH LOOP
-0285 ; [.1B4E.0020.0002] # LATIN SMALL LETTER SQUAT REVERSED ESH
-1D98 ; [.1B52.0020.0002] # LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
-0286 ; [.1B53.0020.0002] # LATIN SMALL LETTER ESH WITH CURL
-0074 ; [.1B57.0020.0002] # LATIN SMALL LETTER T
-FF54 ; [.1B57.0020.0003] # FULLWIDTH LATIN SMALL LETTER T
-036D ; [.1B57.0020.0004] # COMBINING LATIN SMALL LETTER T
-24AF ; [*030A.0020.0004][.1B57.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER T
-1D42D ; [.1B57.0020.0005] # MATHEMATICAL BOLD SMALL T
-1D461 ; [.1B57.0020.0005] # MATHEMATICAL ITALIC SMALL T
-1D495 ; [.1B57.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL T
-1D4C9 ; [.1B57.0020.0005] # MATHEMATICAL SCRIPT SMALL T
-1D4FD ; [.1B57.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL T
-1D531 ; [.1B57.0020.0005] # MATHEMATICAL FRAKTUR SMALL T
-1D565 ; [.1B57.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL T
-1D599 ; [.1B57.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL T
-1D5CD ; [.1B57.0020.0005] # MATHEMATICAL SANS-SERIF SMALL T
-1D601 ; [.1B57.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL T
-1D635 ; [.1B57.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL T
-1D669 ; [.1B57.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
-1D69D ; [.1B57.0020.0005] # MATHEMATICAL MONOSPACE SMALL T
-24E3 ; [.1B57.0020.0006] # CIRCLED LATIN SMALL LETTER T
-0054 ; [.1B57.0020.0008] # LATIN CAPITAL LETTER T
-FF34 ; [.1B57.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER T
-1F123 ; [*030A.0020.0004][.1B57.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER T
-1D413 ; [.1B57.0020.000B] # MATHEMATICAL BOLD CAPITAL T
-1D447 ; [.1B57.0020.000B] # MATHEMATICAL ITALIC CAPITAL T
-1D47B ; [.1B57.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL T
-1D4AF ; [.1B57.0020.000B] # MATHEMATICAL SCRIPT CAPITAL T
-1D4E3 ; [.1B57.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL T
-1D517 ; [.1B57.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL T
-1D54B ; [.1B57.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL T
-1D57F ; [.1B57.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL T
-1D5B3 ; [.1B57.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL T
-1D5E7 ; [.1B57.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL T
-1D61B ; [.1B57.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
-1D64F ; [.1B57.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
-1D683 ; [.1B57.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL T
-24C9 ; [.1B57.0020.000C] # CIRCLED LATIN CAPITAL LETTER T
-1F163 ; [.1B57.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER T
-1D57 ; [.1B57.0020.0014] # MODIFIER LETTER SMALL T
-209C ; [.1B57.0020.0015] # LATIN SUBSCRIPT SMALL LETTER T
-1D40 ; [.1B57.0020.001D] # MODIFIER LETTER CAPITAL T
-1F143 ; [.1B57.0020.001D] # SQUARED LATIN CAPITAL LETTER T
-1F183 ; [.1B57.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER T
-0165 ; [.1B57.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER T WITH CARON
-0164 ; [.1B57.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER T WITH CARON
-1E97 ; [.1B57.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER T WITH DIAERESIS
-1E6B ; [.1B57.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER T WITH DOT ABOVE
-1E6A ; [.1B57.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER T WITH DOT ABOVE
-0163 ; [.1B57.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER T WITH CEDILLA
-0162 ; [.1B57.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER T WITH CEDILLA
-1E6D ; [.1B57.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER T WITH DOT BELOW
-1E6C ; [.1B57.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER T WITH DOT BELOW
-021B ; [.1B57.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-021A ; [.1B57.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER T WITH COMMA BELOW
-1E71 ; [.1B57.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E70 ; [.1B57.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E6F ; [.1B57.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER T WITH LINE BELOW
-1E6E ; [.1B57.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER T WITH LINE BELOW
-A787 ; [.1B57.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR T
-A786 ; [.1B57.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR T
-02A8 ; [.1B57.0020.0004][.194D.0020.0004] # LATIN SMALL LETTER TC DIGRAPH WITH CURL
-2121 ; [.1B57.0020.000A][.196E.0020.000A][.1A3B.0020.000A] # TELEPHONE SIGN
-1D7A ; [.1B57.0020.0004][.0000.0108.0004][.19DC.0020.0004] # LATIN SMALL LETTER TH WITH STRIKETHROUGH
-3394 ; [.1B57.0020.001D][.19DC.0020.001D][.1BE3.0020.001C] # SQUARE THZ
-2122 ; [.1B57.0020.0014][.1A6E.0020.0014] # TRADE MARK SIGN
-01BE ; [.1B57.0020.0004][.1B33.0020.0004] # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-02A6 ; [.1B57.0020.0004][.1B33.0020.0004] # LATIN SMALL LETTER TS DIGRAPH
-02A7 ; [.1B57.0020.0004][.1B44.0020.0004] # LATIN SMALL LETTER TESH DIGRAPH
-A729 ; [.1B57.0020.0004][.1BE3.0020.0004] # LATIN SMALL LETTER TZ
-A728 ; [.1B57.0020.000A][.1BE3.0020.0004] # LATIN CAPITAL LETTER TZ
-1D1B ; [.1B5B.0020.0002] # LATIN LETTER SMALL CAPITAL T
-0167 ; [.1B5C.0020.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1B5C.0020.0008] # LATIN CAPITAL LETTER T WITH STROKE
-2C66 ; [.1B60.0020.0002] # LATIN SMALL LETTER T WITH DIAGONAL STROKE
-023E ; [.1B60.0020.0008] # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-1D75 ; [.1B61.0020.0002] # LATIN SMALL LETTER T WITH MIDDLE TILDE
-01AB ; [.1B62.0020.0002] # LATIN SMALL LETTER T WITH PALATAL HOOK
-1DB5 ; [.1B62.0020.0014] # MODIFIER LETTER SMALL T WITH PALATAL HOOK
-01AD ; [.1B66.0020.0002] # LATIN SMALL LETTER T WITH HOOK
-01AC ; [.1B66.0020.0008] # LATIN CAPITAL LETTER T WITH HOOK
-0288 ; [.1B6A.0020.0002] # LATIN SMALL LETTER T WITH RETROFLEX HOOK
-01AE ; [.1B6A.0020.0008] # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-0236 ; [.1B6E.0020.0002] # LATIN SMALL LETTER T WITH CURL
-A777 ; [.1B72.0020.0002] # LATIN SMALL LETTER TUM
-0287 ; [.1B73.0020.0002] # LATIN SMALL LETTER TURNED T
-A7B1 ; [.1B73.0020.0008] # LATIN CAPITAL LETTER TURNED T
-0075 ; [.1B77.0020.0002] # LATIN SMALL LETTER U
-FF55 ; [.1B77.0020.0003] # FULLWIDTH LATIN SMALL LETTER U
-0367 ; [.1B77.0020.0004] # COMBINING LATIN SMALL LETTER U
-24B0 ; [*030A.0020.0004][.1B77.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER U
-1D42E ; [.1B77.0020.0005] # MATHEMATICAL BOLD SMALL U
-1D462 ; [.1B77.0020.0005] # MATHEMATICAL ITALIC SMALL U
-1D496 ; [.1B77.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL U
-1D4CA ; [.1B77.0020.0005] # MATHEMATICAL SCRIPT SMALL U
-1D4FE ; [.1B77.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL U
-1D532 ; [.1B77.0020.0005] # MATHEMATICAL FRAKTUR SMALL U
-1D566 ; [.1B77.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL U
-1D59A ; [.1B77.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL U
-1D5CE ; [.1B77.0020.0005] # MATHEMATICAL SANS-SERIF SMALL U
-1D602 ; [.1B77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL U
-1D636 ; [.1B77.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL U
-1D66A ; [.1B77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
-1D69E ; [.1B77.0020.0005] # MATHEMATICAL MONOSPACE SMALL U
-24E4 ; [.1B77.0020.0006] # CIRCLED LATIN SMALL LETTER U
-0055 ; [.1B77.0020.0008] # LATIN CAPITAL LETTER U
-FF35 ; [.1B77.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER U
-1F124 ; [*030A.0020.0004][.1B77.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER U
-1D414 ; [.1B77.0020.000B] # MATHEMATICAL BOLD CAPITAL U
-1D448 ; [.1B77.0020.000B] # MATHEMATICAL ITALIC CAPITAL U
-1D47C ; [.1B77.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL U
-1D4B0 ; [.1B77.0020.000B] # MATHEMATICAL SCRIPT CAPITAL U
-1D4E4 ; [.1B77.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL U
-1D518 ; [.1B77.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL U
-1D54C ; [.1B77.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL U
-1D580 ; [.1B77.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL U
-1D5B4 ; [.1B77.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL U
-1D5E8 ; [.1B77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL U
-1D61C ; [.1B77.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
-1D650 ; [.1B77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
-1D684 ; [.1B77.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL U
-24CA ; [.1B77.0020.000C] # CIRCLED LATIN CAPITAL LETTER U
-1F164 ; [.1B77.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER U
-1D58 ; [.1B77.0020.0014] # MODIFIER LETTER SMALL U
-1D64 ; [.1B77.0020.0015] # LATIN SUBSCRIPT SMALL LETTER U
-1D41 ; [.1B77.0020.001D] # MODIFIER LETTER CAPITAL U
-1F144 ; [.1B77.0020.001D] # SQUARED LATIN CAPITAL LETTER U
-1F184 ; [.1B77.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER U
-00FA ; [.1B77.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH ACUTE
-00F9 ; [.1B77.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH GRAVE
-016D ; [.1B77.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1B77.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER U WITH BREVE
-00FB ; [.1B77.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00DB ; [.1B77.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-01D4 ; [.1B77.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH CARON
-016F ; [.1B77.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH RING ABOVE
-016E ; [.1B77.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH RING ABOVE
-00FC ; [.1B77.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-1DF4 ; [.1B77.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER U WITH DIAERESIS
-A79F ; [.1B77.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK UE
-00DC ; [.1B77.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS
-A79E ; [.1B77.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK UE
-01D8 ; [.1B77.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01DC ; [.1B77.0020.0002][.0000.002B.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0020.0008][.0000.002B.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DA ; [.1B77.0020.0002][.0000.002B.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0020.0008][.0000.002B.0002][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01D6 ; [.1B77.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0171 ; [.1B77.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1B77.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0169 ; [.1B77.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH TILDE
-0168 ; [.1B77.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH TILDE
-1E79 ; [.1B77.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E78 ; [.1B77.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-0173 ; [.1B77.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER U WITH OGONEK
-0172 ; [.1B77.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER U WITH OGONEK
-016B ; [.1B77.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
-1E7B ; [.1B77.0020.0002][.0000.0032.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7A ; [.1B77.0020.0008][.0000.0032.0002][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1DF0 ; [.1B77.0020.0004][.0000.0034.0004] # COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE
-1EE7 ; [.1B77.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE6 ; [.1B77.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-0215 ; [.1B77.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0214 ; [.1B77.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0217 ; [.1B77.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER U WITH INVERTED BREVE
-0216 ; [.1B77.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER U WITH INVERTED BREVE
-01B0 ; [.1B77.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN
-01AF ; [.1B77.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN
-1EE9 ; [.1B77.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EE8 ; [.1B77.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EEB ; [.1B77.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEA ; [.1B77.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EEF ; [.1B77.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EEE ; [.1B77.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EED ; [.1B77.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEC ; [.1B77.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EF1 ; [.1B77.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1B77.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EE5 ; [.1B77.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1B77.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1E73 ; [.1B77.0020.0002][.0000.0043.0002] # LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E72 ; [.1B77.0020.0008][.0000.0043.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E77 ; [.1B77.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E76 ; [.1B77.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E75 ; [.1B77.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER U WITH TILDE BELOW
-1E74 ; [.1B77.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER U WITH TILDE BELOW
-1F199 ; [.1B77.0020.001D][.1ACE.0020.001D][*025F.0020.001C] # SQUARED UP WITH EXCLAMATION MARK
-1D1C ; [.1B7B.0020.0002] # LATIN LETTER SMALL CAPITAL U
-1DB8 ; [.1B7B.0020.0014] # MODIFIER LETTER SMALL CAPITAL U
-AB4E ; [.1B7C.0020.0002] # LATIN SMALL LETTER U WITH SHORT RIGHT LEG
-1D1D ; [.1B7D.0020.0002] # LATIN SMALL LETTER SIDEWAYS U
-1D59 ; [.1B7D.0020.0014] # MODIFIER LETTER SMALL SIDEWAYS U
-1D1E ; [.1B7E.0020.0002] # LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
-1D6B ; [.1B7F.0020.0002] # LATIN SMALL LETTER UE
-AB50 ; [.1B80.0020.0002] # LATIN SMALL LETTER UI
-AB51 ; [.1B81.0020.0002] # LATIN SMALL LETTER TURNED UI
-0289 ; [.1B82.0020.0002] # LATIN SMALL LETTER U BAR
-0244 ; [.1B82.0020.0008] # LATIN CAPITAL LETTER U BAR
-1DB6 ; [.1B82.0020.0014] # MODIFIER LETTER SMALL U BAR
-AB4F ; [.1B86.0020.0002] # LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG
-1D7E ; [.1B87.0020.0002] # LATIN SMALL CAPITAL LETTER U WITH STROKE
-1D99 ; [.1B88.0020.0002] # LATIN SMALL LETTER U WITH RETROFLEX HOOK
-AB52 ; [.1B89.0020.0002] # LATIN SMALL LETTER U WITH LEFT HOOK
-AB5F ; [.1B89.0020.0014] # MODIFIER LETTER SMALL U WITH LEFT HOOK
-0265 ; [.1B8A.0020.0002] # LATIN SMALL LETTER TURNED H
-A78D ; [.1B8A.0020.0008] # LATIN CAPITAL LETTER TURNED H
-1DA3 ; [.1B8A.0020.0014] # MODIFIER LETTER SMALL TURNED H
-02AE ; [.1B8E.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK
-02AF ; [.1B92.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-026F ; [.1B96.0020.0002] # LATIN SMALL LETTER TURNED M
-019C ; [.1B96.0020.0008] # LATIN CAPITAL LETTER TURNED M
-1D5A ; [.1B96.0020.0014] # MODIFIER LETTER SMALL TURNED M
-A7FA ; [.1B9A.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED M
-1D1F ; [.1B9B.0020.0002] # LATIN SMALL LETTER SIDEWAYS TURNED M
-0270 ; [.1B9C.0020.0002] # LATIN SMALL LETTER TURNED M WITH LONG LEG
-1DAD ; [.1B9C.0020.0014] # MODIFIER LETTER SMALL TURNED M WITH LONG LEG
-028A ; [.1BA0.0020.0002] # LATIN SMALL LETTER UPSILON
-01B1 ; [.1BA0.0020.0008] # LATIN CAPITAL LETTER UPSILON
-1DB7 ; [.1BA0.0020.0014] # MODIFIER LETTER SMALL UPSILON
-1D7F ; [.1BA4.0020.0002] # LATIN SMALL LETTER UPSILON WITH STROKE
-0076 ; [.1BA5.0020.0002] # LATIN SMALL LETTER V
-FF56 ; [.1BA5.0020.0003] # FULLWIDTH LATIN SMALL LETTER V
-036E ; [.1BA5.0020.0004] # COMBINING LATIN SMALL LETTER V
-2174 ; [.1BA5.0020.0004] # SMALL ROMAN NUMERAL FIVE
-24B1 ; [*030A.0020.0004][.1BA5.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER V
-1D42F ; [.1BA5.0020.0005] # MATHEMATICAL BOLD SMALL V
-1D463 ; [.1BA5.0020.0005] # MATHEMATICAL ITALIC SMALL V
-1D497 ; [.1BA5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL V
-1D4CB ; [.1BA5.0020.0005] # MATHEMATICAL SCRIPT SMALL V
-1D4FF ; [.1BA5.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL V
-1D533 ; [.1BA5.0020.0005] # MATHEMATICAL FRAKTUR SMALL V
-1D567 ; [.1BA5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL V
-1D59B ; [.1BA5.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL V
-1D5CF ; [.1BA5.0020.0005] # MATHEMATICAL SANS-SERIF SMALL V
-1D603 ; [.1BA5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL V
-1D637 ; [.1BA5.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL V
-1D66B ; [.1BA5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
-1D69F ; [.1BA5.0020.0005] # MATHEMATICAL MONOSPACE SMALL V
-24E5 ; [.1BA5.0020.0006] # CIRCLED LATIN SMALL LETTER V
-0056 ; [.1BA5.0020.0008] # LATIN CAPITAL LETTER V
-FF36 ; [.1BA5.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER V
-2164 ; [.1BA5.0020.000A] # ROMAN NUMERAL FIVE
-1F125 ; [*030A.0020.0004][.1BA5.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER V
-1D415 ; [.1BA5.0020.000B] # MATHEMATICAL BOLD CAPITAL V
-1D449 ; [.1BA5.0020.000B] # MATHEMATICAL ITALIC CAPITAL V
-1D47D ; [.1BA5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL V
-1D4B1 ; [.1BA5.0020.000B] # MATHEMATICAL SCRIPT CAPITAL V
-1D4E5 ; [.1BA5.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL V
-1D519 ; [.1BA5.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL V
-1D54D ; [.1BA5.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL V
-1D581 ; [.1BA5.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL V
-1D5B5 ; [.1BA5.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL V
-1D5E9 ; [.1BA5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL V
-1D61D ; [.1BA5.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
-1D651 ; [.1BA5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
-1D685 ; [.1BA5.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL V
-24CB ; [.1BA5.0020.000C] # CIRCLED LATIN CAPITAL LETTER V
-1F165 ; [.1BA5.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER V
-1D5B ; [.1BA5.0020.0014] # MODIFIER LETTER SMALL V
-1D65 ; [.1BA5.0020.0015] # LATIN SUBSCRIPT SMALL LETTER V
-2C7D ; [.1BA5.0020.001D] # MODIFIER LETTER CAPITAL V
-1F145 ; [.1BA5.0020.001D] # SQUARED LATIN CAPITAL LETTER V
-1F185 ; [.1BA5.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER V
-1E7D ; [.1BA5.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER V WITH TILDE
-1E7C ; [.1BA5.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER V WITH TILDE
-1E7F ; [.1BA5.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER V WITH DOT BELOW
-1E7E ; [.1BA5.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER V WITH DOT BELOW
-2175 ; [.1BA5.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL SIX
-2165 ; [.1BA5.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL SIX
-2176 ; [.1BA5.0020.0004][.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL SEVEN
-2166 ; [.1BA5.0020.000A][.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL SEVEN
-2177 ; [.1BA5.0020.0004][.19F6.0020.0004][.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL EIGHT
-2167 ; [.1BA5.0020.000A][.19F6.0020.000A][.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL EIGHT
-33DE ; [.1BA5.0020.001D][*05E5.0020.001C][.1A6E.0020.001C] # SQUARE V OVER M
-1F19A ; [.1BA5.0020.001D][.1B33.0020.001D] # SQUARED VS
-A761 ; [.1BA5.0020.0004][.1BCD.0020.0004] # LATIN SMALL LETTER VY
-A760 ; [.1BA5.0020.000A][.1BCD.0020.000A] # LATIN CAPITAL LETTER VY
-1D20 ; [.1BA9.0020.0002] # LATIN LETTER SMALL CAPITAL V
-A75F ; [.1BAA.0020.0002] # LATIN SMALL LETTER V WITH DIAGONAL STROKE
-A75E ; [.1BAA.0020.0008] # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
-1D8C ; [.1BAB.0020.0002] # LATIN SMALL LETTER V WITH PALATAL HOOK
-028B ; [.1BAC.0020.0002] # LATIN SMALL LETTER V WITH HOOK
-01B2 ; [.1BAC.0020.0008] # LATIN CAPITAL LETTER V WITH HOOK
-1DB9 ; [.1BAC.0020.0014] # MODIFIER LETTER SMALL V WITH HOOK
-2C71 ; [.1BB0.0020.0002] # LATIN SMALL LETTER V WITH RIGHT HOOK
-2C74 ; [.1BB1.0020.0002] # LATIN SMALL LETTER V WITH CURL
-1EFD ; [.1BB2.0020.0002] # LATIN SMALL LETTER MIDDLE-WELSH V
-1EFC ; [.1BB2.0020.0008] # LATIN CAPITAL LETTER MIDDLE-WELSH V
-028C ; [.1BB3.0020.0002] # LATIN SMALL LETTER TURNED V
-0245 ; [.1BB3.0020.0008] # LATIN CAPITAL LETTER TURNED V
-1DBA ; [.1BB3.0020.0014] # MODIFIER LETTER SMALL TURNED V
-0077 ; [.1BB7.0020.0002] # LATIN SMALL LETTER W
-FF57 ; [.1BB7.0020.0003] # FULLWIDTH LATIN SMALL LETTER W
-1DF1 ; [.1BB7.0020.0004] # COMBINING LATIN SMALL LETTER W
-24B2 ; [*030A.0020.0004][.1BB7.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER W
-1D430 ; [.1BB7.0020.0005] # MATHEMATICAL BOLD SMALL W
-1D464 ; [.1BB7.0020.0005] # MATHEMATICAL ITALIC SMALL W
-1D498 ; [.1BB7.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL W
-1D4CC ; [.1BB7.0020.0005] # MATHEMATICAL SCRIPT SMALL W
-1D500 ; [.1BB7.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL W
-1D534 ; [.1BB7.0020.0005] # MATHEMATICAL FRAKTUR SMALL W
-1D568 ; [.1BB7.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL W
-1D59C ; [.1BB7.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL W
-1D5D0 ; [.1BB7.0020.0005] # MATHEMATICAL SANS-SERIF SMALL W
-1D604 ; [.1BB7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL W
-1D638 ; [.1BB7.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL W
-1D66C ; [.1BB7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
-1D6A0 ; [.1BB7.0020.0005] # MATHEMATICAL MONOSPACE SMALL W
-24E6 ; [.1BB7.0020.0006] # CIRCLED LATIN SMALL LETTER W
-0057 ; [.1BB7.0020.0008] # LATIN CAPITAL LETTER W
-FF37 ; [.1BB7.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER W
-1F126 ; [*030A.0020.0004][.1BB7.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER W
-1D416 ; [.1BB7.0020.000B] # MATHEMATICAL BOLD CAPITAL W
-1D44A ; [.1BB7.0020.000B] # MATHEMATICAL ITALIC CAPITAL W
-1D47E ; [.1BB7.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL W
-1D4B2 ; [.1BB7.0020.000B] # MATHEMATICAL SCRIPT CAPITAL W
-1D4E6 ; [.1BB7.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL W
-1D51A ; [.1BB7.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL W
-1D54E ; [.1BB7.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL W
-1D582 ; [.1BB7.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL W
-1D5B6 ; [.1BB7.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL W
-1D5EA ; [.1BB7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL W
-1D61E ; [.1BB7.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
-1D652 ; [.1BB7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
-1D686 ; [.1BB7.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL W
-24CC ; [.1BB7.0020.000C] # CIRCLED LATIN CAPITAL LETTER W
-1F166 ; [.1BB7.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER W
-02B7 ; [.1BB7.0020.0014] # MODIFIER LETTER SMALL W
-1D42 ; [.1BB7.0020.001D] # MODIFIER LETTER CAPITAL W
-1F146 ; [.1BB7.0020.001D] # SQUARED LATIN CAPITAL LETTER W
-1F186 ; [.1BB7.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER W
-1E83 ; [.1BB7.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER W WITH ACUTE
-1E82 ; [.1BB7.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER W WITH ACUTE
-1E81 ; [.1BB7.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER W WITH GRAVE
-1E80 ; [.1BB7.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER W WITH GRAVE
-0175 ; [.1BB7.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER W WITH CIRCUMFLEX
-0174 ; [.1BB7.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-1E98 ; [.1BB7.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER W WITH RING ABOVE
-1E85 ; [.1BB7.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER W WITH DIAERESIS
-1E84 ; [.1BB7.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER W WITH DIAERESIS
-1E87 ; [.1BB7.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER W WITH DOT ABOVE
-1E86 ; [.1BB7.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E89 ; [.1BB7.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER W WITH DOT BELOW
-1E88 ; [.1BB7.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER W WITH DOT BELOW
-33DD ; [.1BB7.0020.001D][.1925.0020.001C] # SQUARE WB
-1F14F ; [.1BB7.0020.001D][.193E.0020.001D] # SQUARED WC
-1F18F ; [.1BB7.0020.001D][.193E.0020.001D] # NEGATIVE SQUARED WC
-1F12E ; [.1BB7.0020.000C][.1BE3.0020.000C] # CIRCLED WZ
-1D21 ; [.1BBB.0020.0002] # LATIN LETTER SMALL CAPITAL W
-2C73 ; [.1BBC.0020.0002] # LATIN SMALL LETTER W WITH HOOK
-2C72 ; [.1BBC.0020.0008] # LATIN CAPITAL LETTER W WITH HOOK
-028D ; [.1BBD.0020.0002] # LATIN SMALL LETTER TURNED W
-0078 ; [.1BC1.0020.0002] # LATIN SMALL LETTER X
-FF58 ; [.1BC1.0020.0003] # FULLWIDTH LATIN SMALL LETTER X
-036F ; [.1BC1.0020.0004] # COMBINING LATIN SMALL LETTER X
-2179 ; [.1BC1.0020.0004] # SMALL ROMAN NUMERAL TEN
-24B3 ; [*030A.0020.0004][.1BC1.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER X
-1D431 ; [.1BC1.0020.0005] # MATHEMATICAL BOLD SMALL X
-1D465 ; [.1BC1.0020.0005] # MATHEMATICAL ITALIC SMALL X
-1D499 ; [.1BC1.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL X
-1D4CD ; [.1BC1.0020.0005] # MATHEMATICAL SCRIPT SMALL X
-1D501 ; [.1BC1.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL X
-1D535 ; [.1BC1.0020.0005] # MATHEMATICAL FRAKTUR SMALL X
-1D569 ; [.1BC1.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL X
-1D59D ; [.1BC1.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL X
-1D5D1 ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF SMALL X
-1D605 ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL X
-1D639 ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL X
-1D66D ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
-1D6A1 ; [.1BC1.0020.0005] # MATHEMATICAL MONOSPACE SMALL X
-24E7 ; [.1BC1.0020.0006] # CIRCLED LATIN SMALL LETTER X
-0058 ; [.1BC1.0020.0008] # LATIN CAPITAL LETTER X
-FF38 ; [.1BC1.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER X
-2169 ; [.1BC1.0020.000A] # ROMAN NUMERAL TEN
-1F127 ; [*030A.0020.0004][.1BC1.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER X
-1D417 ; [.1BC1.0020.000B] # MATHEMATICAL BOLD CAPITAL X
-1D44B ; [.1BC1.0020.000B] # MATHEMATICAL ITALIC CAPITAL X
-1D47F ; [.1BC1.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL X
-1D4B3 ; [.1BC1.0020.000B] # MATHEMATICAL SCRIPT CAPITAL X
-1D4E7 ; [.1BC1.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL X
-1D51B ; [.1BC1.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL X
-1D54F ; [.1BC1.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL X
-1D583 ; [.1BC1.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL X
-1D5B7 ; [.1BC1.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL X
-1D5EB ; [.1BC1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL X
-1D61F ; [.1BC1.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
-1D653 ; [.1BC1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
-1D687 ; [.1BC1.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL X
-24CD ; [.1BC1.0020.000C] # CIRCLED LATIN CAPITAL LETTER X
-1F167 ; [.1BC1.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER X
-02E3 ; [.1BC1.0020.0014] # MODIFIER LETTER SMALL X
-2093 ; [.1BC1.0020.0015] # LATIN SUBSCRIPT SMALL LETTER X
-1F147 ; [.1BC1.0020.001D] # SQUARED LATIN CAPITAL LETTER X
-1F187 ; [.1BC1.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER X
-1E8D ; [.1BC1.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER X WITH DIAERESIS
-1E8C ; [.1BC1.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8B ; [.1BC1.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER X WITH DOT ABOVE
-1E8A ; [.1BC1.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER X WITH DOT ABOVE
-217A ; [.1BC1.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL ELEVEN
-216A ; [.1BC1.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL ELEVEN
-217B ; [.1BC1.0020.0004][.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL TWELVE
-216B ; [.1BC1.0020.000A][.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL TWELVE
-1D8D ; [.1BC5.0020.0002] # LATIN SMALL LETTER X WITH PALATAL HOOK
-AB56 ; [.1BC6.0020.0002] # LATIN SMALL LETTER X WITH LOW RIGHT RING
-AB57 ; [.1BC7.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG
-AB58 ; [.1BC8.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING
-AB59 ; [.1BC9.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF
-AB53 ; [.1BCA.0020.0002] # LATIN SMALL LETTER CHI
-AB54 ; [.1BCB.0020.0002] # LATIN SMALL LETTER CHI WITH LOW RIGHT RING
-AB55 ; [.1BCC.0020.0002] # LATIN SMALL LETTER CHI WITH LOW LEFT SERIF
-0079 ; [.1BCD.0020.0002] # LATIN SMALL LETTER Y
-FF59 ; [.1BCD.0020.0003] # FULLWIDTH LATIN SMALL LETTER Y
-24B4 ; [*030A.0020.0004][.1BCD.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Y
-1D432 ; [.1BCD.0020.0005] # MATHEMATICAL BOLD SMALL Y
-1D466 ; [.1BCD.0020.0005] # MATHEMATICAL ITALIC SMALL Y
-1D49A ; [.1BCD.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Y
-1D4CE ; [.1BCD.0020.0005] # MATHEMATICAL SCRIPT SMALL Y
-1D502 ; [.1BCD.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Y
-1D536 ; [.1BCD.0020.0005] # MATHEMATICAL FRAKTUR SMALL Y
-1D56A ; [.1BCD.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Y
-1D59E ; [.1BCD.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Y
-1D5D2 ; [.1BCD.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Y
-1D606 ; [.1BCD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Y
-1D63A ; [.1BCD.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Y
-1D66E ; [.1BCD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
-1D6A2 ; [.1BCD.0020.0005] # MATHEMATICAL MONOSPACE SMALL Y
-24E8 ; [.1BCD.0020.0006] # CIRCLED LATIN SMALL LETTER Y
-0059 ; [.1BCD.0020.0008] # LATIN CAPITAL LETTER Y
-FF39 ; [.1BCD.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Y
-1F128 ; [*030A.0020.0004][.1BCD.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Y
-1D418 ; [.1BCD.0020.000B] # MATHEMATICAL BOLD CAPITAL Y
-1D44C ; [.1BCD.0020.000B] # MATHEMATICAL ITALIC CAPITAL Y
-1D480 ; [.1BCD.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Y
-1D4B4 ; [.1BCD.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Y
-1D4E8 ; [.1BCD.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Y
-1D51C ; [.1BCD.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Y
-1D550 ; [.1BCD.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D584 ; [.1BCD.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Y
-1D5B8 ; [.1BCD.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Y
-1D5EC ; [.1BCD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
-1D620 ; [.1BCD.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
-1D654 ; [.1BCD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
-1D688 ; [.1BCD.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Y
-24CE ; [.1BCD.0020.000C] # CIRCLED LATIN CAPITAL LETTER Y
-1F168 ; [.1BCD.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
-02B8 ; [.1BCD.0020.0014] # MODIFIER LETTER SMALL Y
-1F148 ; [.1BCD.0020.001D] # SQUARED LATIN CAPITAL LETTER Y
-1F188 ; [.1BCD.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Y
-00FD ; [.1BCD.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.1BCD.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Y WITH ACUTE
-1EF3 ; [.1BCD.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER Y WITH GRAVE
-1EF2 ; [.1BCD.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER Y WITH GRAVE
-0177 ; [.1BCD.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0176 ; [.1BCD.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-1E99 ; [.1BCD.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH RING ABOVE
-00FF ; [.1BCD.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER Y WITH DIAERESIS
-0178 ; [.1BCD.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER Y WITH DIAERESIS
-1EF9 ; [.1BCD.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER Y WITH TILDE
-1EF8 ; [.1BCD.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER Y WITH TILDE
-1E8F ; [.1BCD.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Y WITH DOT ABOVE
-1E8E ; [.1BCD.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Y WITH DOT ABOVE
-0233 ; [.1BCD.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER Y WITH MACRON
-0232 ; [.1BCD.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER Y WITH MACRON
-1EF7 ; [.1BCD.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF6 ; [.1BCD.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-1EF5 ; [.1BCD.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF4 ; [.1BCD.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Y WITH DOT BELOW
-028F ; [.1BD1.0020.0002] # LATIN LETTER SMALL CAPITAL Y
-024F ; [.1BD5.0020.0002] # LATIN SMALL LETTER Y WITH STROKE
-024E ; [.1BD5.0020.0008] # LATIN CAPITAL LETTER Y WITH STROKE
-01B4 ; [.1BD9.0020.0002] # LATIN SMALL LETTER Y WITH HOOK
-01B3 ; [.1BD9.0020.0008] # LATIN CAPITAL LETTER Y WITH HOOK
-1EFF ; [.1BDD.0020.0002] # LATIN SMALL LETTER Y WITH LOOP
-1EFE ; [.1BDD.0020.0008] # LATIN CAPITAL LETTER Y WITH LOOP
-AB5A ; [.1BDE.0020.0002] # LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
-021D ; [.1BDF.0020.0002] # LATIN SMALL LETTER YOGH
-021C ; [.1BDF.0020.0008] # LATIN CAPITAL LETTER YOGH
-007A ; [.1BE3.0020.0002] # LATIN SMALL LETTER Z
-FF5A ; [.1BE3.0020.0003] # FULLWIDTH LATIN SMALL LETTER Z
-1DE6 ; [.1BE3.0020.0004] # COMBINING LATIN SMALL LETTER Z
-24B5 ; [*030A.0020.0004][.1BE3.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Z
-1D433 ; [.1BE3.0020.0005] # MATHEMATICAL BOLD SMALL Z
-1D467 ; [.1BE3.0020.0005] # MATHEMATICAL ITALIC SMALL Z
-1D49B ; [.1BE3.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Z
-1D4CF ; [.1BE3.0020.0005] # MATHEMATICAL SCRIPT SMALL Z
-1D503 ; [.1BE3.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Z
-1D537 ; [.1BE3.0020.0005] # MATHEMATICAL FRAKTUR SMALL Z
-1D56B ; [.1BE3.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Z
-1D59F ; [.1BE3.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Z
-1D5D3 ; [.1BE3.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Z
-1D607 ; [.1BE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Z
-1D63B ; [.1BE3.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Z
-1D66F ; [.1BE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
-1D6A3 ; [.1BE3.0020.0005] # MATHEMATICAL MONOSPACE SMALL Z
-24E9 ; [.1BE3.0020.0006] # CIRCLED LATIN SMALL LETTER Z
-005A ; [.1BE3.0020.0008] # LATIN CAPITAL LETTER Z
-FF3A ; [.1BE3.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Z
-1F129 ; [*030A.0020.0004][.1BE3.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Z
-2124 ; [.1BE3.0020.000B] # DOUBLE-STRUCK CAPITAL Z
-2128 ; [.1BE3.0020.000B] # BLACK-LETTER CAPITAL Z
-1D419 ; [.1BE3.0020.000B] # MATHEMATICAL BOLD CAPITAL Z
-1D44D ; [.1BE3.0020.000B] # MATHEMATICAL ITALIC CAPITAL Z
-1D481 ; [.1BE3.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Z
-1D4B5 ; [.1BE3.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Z
-1D4E9 ; [.1BE3.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Z
-1D585 ; [.1BE3.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Z
-1D5B9 ; [.1BE3.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Z
-1D5ED ; [.1BE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
-1D621 ; [.1BE3.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
-1D655 ; [.1BE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
-1D689 ; [.1BE3.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Z
-24CF ; [.1BE3.0020.000C] # CIRCLED LATIN CAPITAL LETTER Z
-1F169 ; [.1BE3.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
-1DBB ; [.1BE3.0020.0014] # MODIFIER LETTER SMALL Z
-1F149 ; [.1BE3.0020.001D] # SQUARED LATIN CAPITAL LETTER Z
-1F189 ; [.1BE3.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-017A ; [.1BE3.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Z WITH ACUTE
-0179 ; [.1BE3.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Z WITH ACUTE
-1E91 ; [.1BE3.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E90 ; [.1BE3.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-017E ; [.1BE3.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE3.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER Z WITH CARON
-017C ; [.1BE3.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1BE3.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-1E93 ; [.1BE3.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Z WITH DOT BELOW
-1E92 ; [.1BE3.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E95 ; [.1BE3.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER Z WITH LINE BELOW
-1E94 ; [.1BE3.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER Z WITH LINE BELOW
-018D ; [.1BE3.0020.0004][.1BB7.0020.0004] # LATIN SMALL LETTER TURNED DELTA
-1D22 ; [.1BE7.0020.0002] # LATIN LETTER SMALL CAPITAL Z
-01B6 ; [.1BE8.0020.0002] # LATIN SMALL LETTER Z WITH STROKE
-01B5 ; [.1BE8.0020.0008] # LATIN CAPITAL LETTER Z WITH STROKE
-1D76 ; [.1BEC.0020.0002] # LATIN SMALL LETTER Z WITH MIDDLE TILDE
-1D8E ; [.1BED.0020.0002] # LATIN SMALL LETTER Z WITH PALATAL HOOK
-0225 ; [.1BEE.0020.0002] # LATIN SMALL LETTER Z WITH HOOK
-0224 ; [.1BEE.0020.0008] # LATIN CAPITAL LETTER Z WITH HOOK
-0290 ; [.1BF2.0020.0002] # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-1DBC ; [.1BF2.0020.0014] # MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
-0291 ; [.1BF6.0020.0002] # LATIN SMALL LETTER Z WITH CURL
-1DBD ; [.1BF6.0020.0014] # MODIFIER LETTER SMALL Z WITH CURL
-0240 ; [.1BFA.0020.0002] # LATIN SMALL LETTER Z WITH SWASH TAIL
-2C7F ; [.1BFA.0020.0008] # LATIN CAPITAL LETTER Z WITH SWASH TAIL
-2C6C ; [.1BFE.0020.0002] # LATIN SMALL LETTER Z WITH DESCENDER
-2C6B ; [.1BFE.0020.0008] # LATIN CAPITAL LETTER Z WITH DESCENDER
-A763 ; [.1BFF.0020.0002] # LATIN SMALL LETTER VISIGOTHIC Z
-A762 ; [.1BFF.0020.0008] # LATIN CAPITAL LETTER VISIGOTHIC Z
-0292 ; [.1C00.0020.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1C00.0020.0008] # LATIN CAPITAL LETTER EZH
-1DBE ; [.1C00.0020.0014] # MODIFIER LETTER SMALL EZH
-01EF ; [.1C00.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1C00.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-1D23 ; [.1C04.0020.0002] # LATIN LETTER SMALL CAPITAL EZH
-01B9 ; [.1C05.0020.0002] # LATIN SMALL LETTER EZH REVERSED
-01B8 ; [.1C05.0020.0008] # LATIN CAPITAL LETTER EZH REVERSED
-1D9A ; [.1C09.0020.0002] # LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-01BA ; [.1C0A.0020.0002] # LATIN SMALL LETTER EZH WITH TAIL
-0293 ; [.1C0E.0020.0002] # LATIN SMALL LETTER EZH WITH CURL
-00FE ; [.1C12.0020.0002] # LATIN SMALL LETTER THORN
-00DE ; [.1C12.0020.0008] # LATIN CAPITAL LETTER THORN
-A765 ; [.1C16.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE
-A764 ; [.1C16.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE
-A767 ; [.1C17.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
-A766 ; [.1C17.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
-01BF ; [.1C18.0020.0002] # LATIN LETTER WYNN
-01F7 ; [.1C18.0020.0008] # LATIN CAPITAL LETTER WYNN
-A769 ; [.1C1C.0020.0002] # LATIN SMALL LETTER VEND
-A768 ; [.1C1C.0020.0008] # LATIN CAPITAL LETTER VEND
-A76B ; [.1C1D.0020.0002] # LATIN SMALL LETTER ET
-A76A ; [.1C1D.0020.0008] # LATIN CAPITAL LETTER ET
-A76D ; [.1C1E.0020.0002] # LATIN SMALL LETTER IS
-A76C ; [.1C1E.0020.0008] # LATIN CAPITAL LETTER IS
-A76F ; [.1C1F.0020.0002] # LATIN SMALL LETTER CON
-1DD2 ; [.1C1F.0020.0004] # COMBINING US ABOVE
-A76E ; [.1C1F.0020.0008] # LATIN CAPITAL LETTER CON
-A770 ; [.1C1F.0020.0014] # MODIFIER LETTER US
-A778 ; [.1C20.0020.0002] # LATIN SMALL LETTER UM
-01BB ; [.1C21.0020.0002] # LATIN LETTER TWO WITH STROKE
-A72B ; [.1C25.0020.0002] # LATIN SMALL LETTER TRESILLO
-A72A ; [.1C25.0020.0008] # LATIN CAPITAL LETTER TRESILLO
-A72D ; [.1C26.0020.0002] # LATIN SMALL LETTER CUATRILLO
-A72C ; [.1C26.0020.0008] # LATIN CAPITAL LETTER CUATRILLO
-A72F ; [.1C27.0020.0002] # LATIN SMALL LETTER CUATRILLO WITH COMMA
-A72E ; [.1C27.0020.0008] # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
-01A8 ; [.1C28.0020.0002] # LATIN SMALL LETTER TONE TWO
-01A7 ; [.1C28.0020.0008] # LATIN CAPITAL LETTER TONE TWO
-01BD ; [.1C2C.0020.0002] # LATIN SMALL LETTER TONE FIVE
-01BC ; [.1C2C.0020.0008] # LATIN CAPITAL LETTER TONE FIVE
-0185 ; [.1C30.0020.0002] # LATIN SMALL LETTER TONE SIX
-0184 ; [.1C30.0020.0008] # LATIN CAPITAL LETTER TONE SIX
-0294 ; [.1C34.0020.0002] # LATIN LETTER GLOTTAL STOP
-0242 ; [.1C38.0020.0002] # LATIN SMALL LETTER GLOTTAL STOP
-0241 ; [.1C38.0020.0008] # LATIN CAPITAL LETTER GLOTTAL STOP
-02C0 ; [.1C3C.0020.0002] # MODIFIER LETTER GLOTTAL STOP
-02BC ; [.1C3D.0020.0002] # MODIFIER LETTER APOSTROPHE
-0149 ; [.1C3D.0020.0004][.1A7D.0020.0004] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-02EE ; [.1C3E.0020.0002] # MODIFIER LETTER DOUBLE APOSTROPHE
-02BE ; [.1C3F.0020.0002] # MODIFIER LETTER RIGHT HALF RING
-A723 ; [.1C40.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
-A722 ; [.1C40.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
-A78C ; [.1C41.0020.0002] # LATIN SMALL LETTER SALTILLO
-A78B ; [.1C41.0020.0008] # LATIN CAPITAL LETTER SALTILLO
-0295 ; [.1C42.0020.0002] # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-02E4 ; [.1C42.0020.0014] # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02BF ; [.1C46.0020.0002] # MODIFIER LETTER LEFT HALF RING
-02C1 ; [.1C47.0020.0002] # MODIFIER LETTER REVERSED GLOTTAL STOP
-1D24 ; [.1C48.0020.0002] # LATIN LETTER VOICED LARYNGEAL SPIRANT
-1D25 ; [.1C49.0020.0002] # LATIN LETTER AIN
-1D5C ; [.1C49.0020.0014] # MODIFIER LETTER SMALL AIN
-A725 ; [.1C4A.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL AIN
-A724 ; [.1C4A.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
-02A1 ; [.1C4B.0020.0002] # LATIN LETTER GLOTTAL STOP WITH STROKE
-02A2 ; [.1C4F.0020.0002] # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-0296 ; [.1C53.0020.0002] # LATIN LETTER INVERTED GLOTTAL STOP
-01C0 ; [.1C57.0020.0002] # LATIN LETTER DENTAL CLICK
-01C1 ; [.1C5B.0020.0002] # LATIN LETTER LATERAL CLICK
-01C2 ; [.1C5F.0020.0002] # LATIN LETTER ALVEOLAR CLICK
-01C3 ; [.1C63.0020.0002] # LATIN LETTER RETROFLEX CLICK
-0297 ; [.1C67.0020.0002] # LATIN LETTER STRETCHED C
-0298 ; [.1C6B.0020.0002] # LATIN LETTER BILABIAL CLICK
-02AC ; [.1C6F.0020.0002] # LATIN LETTER BILABIAL PERCUSSIVE
-02AD ; [.1C73.0020.0002] # LATIN LETTER BIDENTAL PERCUSSIVE
-03B1 ; [.1C77.0020.0002] # GREEK SMALL LETTER ALPHA
-1D6C2 ; [.1C77.0020.0005] # MATHEMATICAL BOLD SMALL ALPHA
-1D6FC ; [.1C77.0020.0005] # MATHEMATICAL ITALIC SMALL ALPHA
-1D736 ; [.1C77.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ALPHA
-1D770 ; [.1C77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
-1D7AA ; [.1C77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
-0391 ; [.1C77.0020.0008] # GREEK CAPITAL LETTER ALPHA
-1D6A8 ; [.1C77.0020.000B] # MATHEMATICAL BOLD CAPITAL ALPHA
-1D6E2 ; [.1C77.0020.000B] # MATHEMATICAL ITALIC CAPITAL ALPHA
-1D71C ; [.1C77.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
-1D756 ; [.1C77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
-1D790 ; [.1C77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
-1F00 ; [.1C77.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ALPHA WITH PSILI
-1F08 ; [.1C77.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI
-1F04 ; [.1C77.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-1F0C ; [.1C77.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-1F84 ; [.1C77.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F8C ; [.1C77.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F02 ; [.1C77.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-1F0A ; [.1C77.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-1F82 ; [.1C77.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F8A ; [.1C77.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F06 ; [.1C77.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F0E ; [.1C77.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F86 ; [.1C77.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F8E ; [.1C77.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F80 ; [.1C77.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-1F88 ; [.1C77.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-1F01 ; [.1C77.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ALPHA WITH DASIA
-1F09 ; [.1C77.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA
-1F05 ; [.1C77.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-1F0D ; [.1C77.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-1F85 ; [.1C77.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F8D ; [.1C77.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F03 ; [.1C77.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-1F0B ; [.1C77.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-1F83 ; [.1C77.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F8B ; [.1C77.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F07 ; [.1C77.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F0F ; [.1C77.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F87 ; [.1C77.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F8F ; [.1C77.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F81 ; [.1C77.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-1F89 ; [.1C77.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-03AC ; [.1C77.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH TONOS
-1F71 ; [.1C77.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH OXIA
-0386 ; [.1C77.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH TONOS
-1FBB ; [.1C77.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH OXIA
-1FB4 ; [.1C77.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1F70 ; [.1C77.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH VARIA
-1FBA ; [.1C77.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH VARIA
-1FB2 ; [.1C77.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-1FB0 ; [.1C77.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER ALPHA WITH VRACHY
-1FB8 ; [.1C77.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER ALPHA WITH VRACHY
-1FB6 ; [.1C77.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-1FB7 ; [.1C77.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FB1 ; [.1C77.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER ALPHA WITH MACRON
-1FB9 ; [.1C77.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER ALPHA WITH MACRON
-1FB3 ; [.1C77.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-1FBC ; [.1C77.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-03B2 ; [.1C78.0020.0002] # GREEK SMALL LETTER BETA
-03D0 ; [.1C78.0020.0004] # GREEK BETA SYMBOL
-1DE9 ; [.1C78.0020.0004] # COMBINING LATIN SMALL LETTER BETA
-1D6C3 ; [.1C78.0020.0005] # MATHEMATICAL BOLD SMALL BETA
-1D6FD ; [.1C78.0020.0005] # MATHEMATICAL ITALIC SMALL BETA
-1D737 ; [.1C78.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL BETA
-1D771 ; [.1C78.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL BETA
-1D7AB ; [.1C78.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
-0392 ; [.1C78.0020.0008] # GREEK CAPITAL LETTER BETA
-1D6A9 ; [.1C78.0020.000B] # MATHEMATICAL BOLD CAPITAL BETA
-1D6E3 ; [.1C78.0020.000B] # MATHEMATICAL ITALIC CAPITAL BETA
-1D71D ; [.1C78.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL BETA
-1D757 ; [.1C78.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
-1D791 ; [.1C78.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
-1D5D ; [.1C78.0020.0014] # MODIFIER LETTER SMALL BETA
-1D66 ; [.1C78.0020.0015] # GREEK SUBSCRIPT SMALL LETTER BETA
-03B3 ; [.1C79.0020.0002] # GREEK SMALL LETTER GAMMA
-213D ; [.1C79.0020.0005] # DOUBLE-STRUCK SMALL GAMMA
-1D6C4 ; [.1C79.0020.0005] # MATHEMATICAL BOLD SMALL GAMMA
-1D6FE ; [.1C79.0020.0005] # MATHEMATICAL ITALIC SMALL GAMMA
-1D738 ; [.1C79.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL GAMMA
-1D772 ; [.1C79.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
-1D7AC ; [.1C79.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
-0393 ; [.1C79.0020.0008] # GREEK CAPITAL LETTER GAMMA
-213E ; [.1C79.0020.000B] # DOUBLE-STRUCK CAPITAL GAMMA
-1D6AA ; [.1C79.0020.000B] # MATHEMATICAL BOLD CAPITAL GAMMA
-1D6E4 ; [.1C79.0020.000B] # MATHEMATICAL ITALIC CAPITAL GAMMA
-1D71E ; [.1C79.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
-1D758 ; [.1C79.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
-1D792 ; [.1C79.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
-1D5E ; [.1C79.0020.0014] # MODIFIER LETTER SMALL GREEK GAMMA
-1D67 ; [.1C79.0020.0015] # GREEK SUBSCRIPT SMALL LETTER GAMMA
-1D26 ; [.1C7A.0020.0002] # GREEK LETTER SMALL CAPITAL GAMMA
-03B4 ; [.1C7B.0020.0002] # GREEK SMALL LETTER DELTA
-1D6C5 ; [.1C7B.0020.0005] # MATHEMATICAL BOLD SMALL DELTA
-1D6FF ; [.1C7B.0020.0005] # MATHEMATICAL ITALIC SMALL DELTA
-1D739 ; [.1C7B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL DELTA
-1D773 ; [.1C7B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
-1D7AD ; [.1C7B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
-0394 ; [.1C7B.0020.0008] # GREEK CAPITAL LETTER DELTA
-1D6AB ; [.1C7B.0020.000B] # MATHEMATICAL BOLD CAPITAL DELTA
-1D6E5 ; [.1C7B.0020.000B] # MATHEMATICAL ITALIC CAPITAL DELTA
-1D71F ; [.1C7B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL DELTA
-1D759 ; [.1C7B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
-1D793 ; [.1C7B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
-1D5F ; [.1C7B.0020.0014] # MODIFIER LETTER SMALL DELTA
-03B5 ; [.1C7C.0020.0002] # GREEK SMALL LETTER EPSILON
-03F5 ; [.1C7C.0020.0004] # GREEK LUNATE EPSILON SYMBOL
-1D6C6 ; [.1C7C.0020.0005] # MATHEMATICAL BOLD SMALL EPSILON
-1D6DC ; [.1C7C.0020.0005] # MATHEMATICAL BOLD EPSILON SYMBOL
-1D700 ; [.1C7C.0020.0005] # MATHEMATICAL ITALIC SMALL EPSILON
-1D716 ; [.1C7C.0020.0005] # MATHEMATICAL ITALIC EPSILON SYMBOL
-1D73A ; [.1C7C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL EPSILON
-1D750 ; [.1C7C.0020.0005] # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
-1D774 ; [.1C7C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
-1D78A ; [.1C7C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
-1D7AE ; [.1C7C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
-1D7C4 ; [.1C7C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
-0395 ; [.1C7C.0020.0008] # GREEK CAPITAL LETTER EPSILON
-1D6AC ; [.1C7C.0020.000B] # MATHEMATICAL BOLD CAPITAL EPSILON
-1D6E6 ; [.1C7C.0020.000B] # MATHEMATICAL ITALIC CAPITAL EPSILON
-1D720 ; [.1C7C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
-1D75A ; [.1C7C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
-1D794 ; [.1C7C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
-1F10 ; [.1C7C.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER EPSILON WITH PSILI
-1F18 ; [.1C7C.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI
-1F14 ; [.1C7C.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-1F1C ; [.1C7C.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-1F12 ; [.1C7C.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-1F1A ; [.1C7C.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-1F11 ; [.1C7C.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER EPSILON WITH DASIA
-1F19 ; [.1C7C.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA
-1F15 ; [.1C7C.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F1D ; [.1C7C.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F13 ; [.1C7C.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-1F1B ; [.1C7C.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-03AD ; [.1C7C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH TONOS
-1F73 ; [.1C7C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH OXIA
-0388 ; [.1C7C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH TONOS
-1FC9 ; [.1C7C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH OXIA
-1F72 ; [.1C7C.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH VARIA
-1FC8 ; [.1C7C.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH VARIA
-03DD ; [.1C7D.0020.0002] # GREEK SMALL LETTER DIGAMMA
-1D7CB ; [.1C7D.0020.0005] # MATHEMATICAL BOLD SMALL DIGAMMA
-03DC ; [.1C7D.0020.0008] # GREEK LETTER DIGAMMA
-1D7CA ; [.1C7D.0020.000B] # MATHEMATICAL BOLD CAPITAL DIGAMMA
-0377 ; [.1C7E.0020.0002] # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-0376 ; [.1C7E.0020.0008] # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-03DB ; [.1C7F.0020.0002] # GREEK SMALL LETTER STIGMA
-03DA ; [.1C7F.0020.0008] # GREEK LETTER STIGMA
-03B6 ; [.1C80.0020.0002] # GREEK SMALL LETTER ZETA
-1D6C7 ; [.1C80.0020.0005] # MATHEMATICAL BOLD SMALL ZETA
-1D701 ; [.1C80.0020.0005] # MATHEMATICAL ITALIC SMALL ZETA
-1D73B ; [.1C80.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ZETA
-1D775 ; [.1C80.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
-1D7AF ; [.1C80.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
-0396 ; [.1C80.0020.0008] # GREEK CAPITAL LETTER ZETA
-1D6AD ; [.1C80.0020.000B] # MATHEMATICAL BOLD CAPITAL ZETA
-1D6E7 ; [.1C80.0020.000B] # MATHEMATICAL ITALIC CAPITAL ZETA
-1D721 ; [.1C80.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ZETA
-1D75B ; [.1C80.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
-1D795 ; [.1C80.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
-0371 ; [.1C81.0020.0002] # GREEK SMALL LETTER HETA
-0370 ; [.1C81.0020.0008] # GREEK CAPITAL LETTER HETA
-03B7 ; [.1C82.0020.0002] # GREEK SMALL LETTER ETA
-1D6C8 ; [.1C82.0020.0005] # MATHEMATICAL BOLD SMALL ETA
-1D702 ; [.1C82.0020.0005] # MATHEMATICAL ITALIC SMALL ETA
-1D73C ; [.1C82.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ETA
-1D776 ; [.1C82.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ETA
-1D7B0 ; [.1C82.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
-0397 ; [.1C82.0020.0008] # GREEK CAPITAL LETTER ETA
-1D6AE ; [.1C82.0020.000B] # MATHEMATICAL BOLD CAPITAL ETA
-1D6E8 ; [.1C82.0020.000B] # MATHEMATICAL ITALIC CAPITAL ETA
-1D722 ; [.1C82.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ETA
-1D75C ; [.1C82.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
-1D796 ; [.1C82.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
-1F20 ; [.1C82.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ETA WITH PSILI
-1F28 ; [.1C82.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ETA WITH PSILI
-1F24 ; [.1C82.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-1F2C ; [.1C82.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-1F94 ; [.1C82.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F9C ; [.1C82.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F22 ; [.1C82.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-1F2A ; [.1C82.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-1F92 ; [.1C82.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F9A ; [.1C82.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F26 ; [.1C82.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-1F2E ; [.1C82.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-1F96 ; [.1C82.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F9E ; [.1C82.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F90 ; [.1C82.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-1F98 ; [.1C82.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-1F21 ; [.1C82.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ETA WITH DASIA
-1F29 ; [.1C82.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ETA WITH DASIA
-1F25 ; [.1C82.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-1F2D ; [.1C82.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-1F95 ; [.1C82.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F9D ; [.1C82.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F23 ; [.1C82.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-1F2B ; [.1C82.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-1F93 ; [.1C82.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F9B ; [.1C82.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F27 ; [.1C82.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-1F2F ; [.1C82.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-1F97 ; [.1C82.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F9F ; [.1C82.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F91 ; [.1C82.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-1F99 ; [.1C82.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-03AE ; [.1C82.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH TONOS
-1F75 ; [.1C82.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH OXIA
-0389 ; [.1C82.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH TONOS
-1FCB ; [.1C82.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH OXIA
-1FC4 ; [.1C82.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1F74 ; [.1C82.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH VARIA
-1FCA ; [.1C82.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH VARIA
-1FC2 ; [.1C82.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-1FC6 ; [.1C82.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI
-1FC7 ; [.1C82.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FC3 ; [.1C82.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-1FCC ; [.1C82.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-03B8 ; [.1C83.0020.0002] # GREEK SMALL LETTER THETA
-03D1 ; [.1C83.0020.0004] # GREEK THETA SYMBOL
-1D6C9 ; [.1C83.0020.0005] # MATHEMATICAL BOLD SMALL THETA
-1D6DD ; [.1C83.0020.0005] # MATHEMATICAL BOLD THETA SYMBOL
-1D703 ; [.1C83.0020.0005] # MATHEMATICAL ITALIC SMALL THETA
-1D717 ; [.1C83.0020.0005] # MATHEMATICAL ITALIC THETA SYMBOL
-1D73D ; [.1C83.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL THETA
-1D751 ; [.1C83.0020.0005] # MATHEMATICAL BOLD ITALIC THETA SYMBOL
-1D777 ; [.1C83.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL THETA
-1D78B ; [.1C83.0020.0005] # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
-1D7B1 ; [.1C83.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
-1D7C5 ; [.1C83.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
-0398 ; [.1C83.0020.0008] # GREEK CAPITAL LETTER THETA
-03F4 ; [.1C83.0020.000A] # GREEK CAPITAL THETA SYMBOL
-1D6AF ; [.1C83.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA
-1D6B9 ; [.1C83.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA SYMBOL
-1D6E9 ; [.1C83.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA
-1D6F3 ; [.1C83.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
-1D723 ; [.1C83.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA
-1D72D ; [.1C83.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
-1D75D ; [.1C83.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
-1D767 ; [.1C83.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
-1D797 ; [.1C83.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
-1D7A1 ; [.1C83.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
-1DBF ; [.1C83.0020.0014] # MODIFIER LETTER SMALL THETA
-03B9 ; [.1C84.0020.0002] # GREEK SMALL LETTER IOTA
-1FBE ; [.1C84.0020.0002] # GREEK PROSGEGRAMMENI
-037A ; [.1C84.0020.0004] # GREEK YPOGEGRAMMENI
-1D6CA ; [.1C84.0020.0005] # MATHEMATICAL BOLD SMALL IOTA
-1D704 ; [.1C84.0020.0005] # MATHEMATICAL ITALIC SMALL IOTA
-1D73E ; [.1C84.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL IOTA
-1D778 ; [.1C84.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
-1D7B2 ; [.1C84.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
-0399 ; [.1C84.0020.0008] # GREEK CAPITAL LETTER IOTA
-1D6B0 ; [.1C84.0020.000B] # MATHEMATICAL BOLD CAPITAL IOTA
-1D6EA ; [.1C84.0020.000B] # MATHEMATICAL ITALIC CAPITAL IOTA
-1D724 ; [.1C84.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL IOTA
-1D75E ; [.1C84.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
-1D798 ; [.1C84.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
-1F30 ; [.1C84.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER IOTA WITH PSILI
-1F38 ; [.1C84.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI
-1F34 ; [.1C84.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-1F3C ; [.1C84.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-1F32 ; [.1C84.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-1F3A ; [.1C84.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-1F36 ; [.1C84.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F3E ; [.1C84.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F31 ; [.1C84.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER IOTA WITH DASIA
-1F39 ; [.1C84.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA
-1F35 ; [.1C84.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-1F3D ; [.1C84.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-1F33 ; [.1C84.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-1F3B ; [.1C84.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-1F37 ; [.1C84.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F3F ; [.1C84.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-03AF ; [.1C84.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH TONOS
-1F77 ; [.1C84.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH OXIA
-038A ; [.1C84.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH TONOS
-1FDB ; [.1C84.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH OXIA
-1F76 ; [.1C84.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH VARIA
-1FDA ; [.1C84.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH VARIA
-1FD0 ; [.1C84.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER IOTA WITH VRACHY
-1FD8 ; [.1C84.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER IOTA WITH VRACHY
-1FD6 ; [.1C84.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PERISPOMENI
-03CA ; [.1C84.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA
-03AA ; [.1C84.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-0390 ; [.1C84.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-1FD3 ; [.1C84.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD2 ; [.1C84.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-1FD7 ; [.1C84.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-1FD1 ; [.1C84.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER IOTA WITH MACRON
-1FD9 ; [.1C84.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER IOTA WITH MACRON
-03F3 ; [.1C85.0020.0002] # GREEK LETTER YOT
-037F ; [.1C85.0020.0008] # GREEK CAPITAL LETTER YOT
-03BA ; [.1C86.0020.0002] # GREEK SMALL LETTER KAPPA
-03F0 ; [.1C86.0020.0004] # GREEK KAPPA SYMBOL
-1D6CB ; [.1C86.0020.0005] # MATHEMATICAL BOLD SMALL KAPPA
-1D6DE ; [.1C86.0020.0005] # MATHEMATICAL BOLD KAPPA SYMBOL
-1D705 ; [.1C86.0020.0005] # MATHEMATICAL ITALIC SMALL KAPPA
-1D718 ; [.1C86.0020.0005] # MATHEMATICAL ITALIC KAPPA SYMBOL
-1D73F ; [.1C86.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL KAPPA
-1D752 ; [.1C86.0020.0005] # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
-1D779 ; [.1C86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
-1D78C ; [.1C86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
-1D7B3 ; [.1C86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
-1D7C6 ; [.1C86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
-039A ; [.1C86.0020.0008] # GREEK CAPITAL LETTER KAPPA
-1D6B1 ; [.1C86.0020.000B] # MATHEMATICAL BOLD CAPITAL KAPPA
-1D6EB ; [.1C86.0020.000B] # MATHEMATICAL ITALIC CAPITAL KAPPA
-1D725 ; [.1C86.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
-1D75F ; [.1C86.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
-1D799 ; [.1C86.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
-03D7 ; [.1C86.0020.0004][.1C77.0020.0004][.1C84.0020.0004] # GREEK KAI SYMBOL
-03CF ; [.1C86.0020.000A][.1C77.0020.0004][.1C84.0020.0004] # GREEK CAPITAL KAI SYMBOL
-03BB ; [.1C87.0020.0002] # GREEK SMALL LETTER LAMDA
-1D6CC ; [.1C87.0020.0005] # MATHEMATICAL BOLD SMALL LAMDA
-1D706 ; [.1C87.0020.0005] # MATHEMATICAL ITALIC SMALL LAMDA
-1D740 ; [.1C87.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL LAMDA
-1D77A ; [.1C87.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
-1D7B4 ; [.1C87.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
-039B ; [.1C87.0020.0008] # GREEK CAPITAL LETTER LAMDA
-1D6B2 ; [.1C87.0020.000B] # MATHEMATICAL BOLD CAPITAL LAMDA
-1D6EC ; [.1C87.0020.000B] # MATHEMATICAL ITALIC CAPITAL LAMDA
-1D726 ; [.1C87.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
-1D760 ; [.1C87.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
-1D79A ; [.1C87.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
-1D27 ; [.1C88.0020.0002] # GREEK LETTER SMALL CAPITAL LAMDA
-03BC ; [.1C89.0020.0002] # GREEK SMALL LETTER MU
-00B5 ; [.1C89.0020.0004] # MICRO SIGN
-1D6CD ; [.1C89.0020.0005] # MATHEMATICAL BOLD SMALL MU
-1D707 ; [.1C89.0020.0005] # MATHEMATICAL ITALIC SMALL MU
-1D741 ; [.1C89.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL MU
-1D77B ; [.1C89.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL MU
-1D7B5 ; [.1C89.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
-039C ; [.1C89.0020.0008] # GREEK CAPITAL LETTER MU
-1D6B3 ; [.1C89.0020.000B] # MATHEMATICAL BOLD CAPITAL MU
-1D6ED ; [.1C89.0020.000B] # MATHEMATICAL ITALIC CAPITAL MU
-1D727 ; [.1C89.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL MU
-1D761 ; [.1C89.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
-1D79B ; [.1C89.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
-3382 ; [.1C89.0020.001C][.190C.0020.001D] # SQUARE MU A
-338C ; [.1C89.0020.001C][.19A9.0020.001D] # SQUARE MU F
-338D ; [.1C89.0020.001C][.19B8.0020.001C] # SQUARE MU G
-3395 ; [.1C89.0020.001C][.1A3B.0020.001C] # SQUARE MU L
-339B ; [.1C89.0020.001C][.1A6E.0020.001C] # SQUARE MU M
-33B2 ; [.1C89.0020.001C][.1B33.0020.001C] # SQUARE MU S
-33B6 ; [.1C89.0020.001C][.1BA5.0020.001D] # SQUARE MU V
-33BC ; [.1C89.0020.001C][.1BB7.0020.001D] # SQUARE MU W
-03BD ; [.1C8A.0020.0002] # GREEK SMALL LETTER NU
-1D6CE ; [.1C8A.0020.0005] # MATHEMATICAL BOLD SMALL NU
-1D708 ; [.1C8A.0020.0005] # MATHEMATICAL ITALIC SMALL NU
-1D742 ; [.1C8A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL NU
-1D77C ; [.1C8A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL NU
-1D7B6 ; [.1C8A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
-039D ; [.1C8A.0020.0008] # GREEK CAPITAL LETTER NU
-1D6B4 ; [.1C8A.0020.000B] # MATHEMATICAL BOLD CAPITAL NU
-1D6EE ; [.1C8A.0020.000B] # MATHEMATICAL ITALIC CAPITAL NU
-1D728 ; [.1C8A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL NU
-1D762 ; [.1C8A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
-1D79C ; [.1C8A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
-03BE ; [.1C8B.0020.0002] # GREEK SMALL LETTER XI
-1D6CF ; [.1C8B.0020.0005] # MATHEMATICAL BOLD SMALL XI
-1D709 ; [.1C8B.0020.0005] # MATHEMATICAL ITALIC SMALL XI
-1D743 ; [.1C8B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL XI
-1D77D ; [.1C8B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL XI
-1D7B7 ; [.1C8B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
-039E ; [.1C8B.0020.0008] # GREEK CAPITAL LETTER XI
-1D6B5 ; [.1C8B.0020.000B] # MATHEMATICAL BOLD CAPITAL XI
-1D6EF ; [.1C8B.0020.000B] # MATHEMATICAL ITALIC CAPITAL XI
-1D729 ; [.1C8B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL XI
-1D763 ; [.1C8B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
-1D79D ; [.1C8B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
-03BF ; [.1C8C.0020.0002] # GREEK SMALL LETTER OMICRON
-1D6D0 ; [.1C8C.0020.0005] # MATHEMATICAL BOLD SMALL OMICRON
-1D70A ; [.1C8C.0020.0005] # MATHEMATICAL ITALIC SMALL OMICRON
-1D744 ; [.1C8C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMICRON
-1D77E ; [.1C8C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
-1D7B8 ; [.1C8C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
-039F ; [.1C8C.0020.0008] # GREEK CAPITAL LETTER OMICRON
-1D6B6 ; [.1C8C.0020.000B] # MATHEMATICAL BOLD CAPITAL OMICRON
-1D6F0 ; [.1C8C.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMICRON
-1D72A ; [.1C8C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
-1D764 ; [.1C8C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
-1D79E ; [.1C8C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
-1F40 ; [.1C8C.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMICRON WITH PSILI
-1F48 ; [.1C8C.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI
-1F44 ; [.1C8C.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-1F4C ; [.1C8C.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-1F42 ; [.1C8C.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-1F4A ; [.1C8C.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-1F41 ; [.1C8C.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMICRON WITH DASIA
-1F49 ; [.1C8C.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA
-1F45 ; [.1C8C.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F4D ; [.1C8C.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F43 ; [.1C8C.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-1F4B ; [.1C8C.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-03CC ; [.1C8C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH TONOS
-1F79 ; [.1C8C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH OXIA
-038C ; [.1C8C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH TONOS
-1FF9 ; [.1C8C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH OXIA
-1F78 ; [.1C8C.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH VARIA
-1FF8 ; [.1C8C.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH VARIA
-03C0 ; [.1C8D.0020.0002] # GREEK SMALL LETTER PI
-03D6 ; [.1C8D.0020.0004] # GREEK PI SYMBOL
-213C ; [.1C8D.0020.0005] # DOUBLE-STRUCK SMALL PI
-1D6D1 ; [.1C8D.0020.0005] # MATHEMATICAL BOLD SMALL PI
-1D6E1 ; [.1C8D.0020.0005] # MATHEMATICAL BOLD PI SYMBOL
-1D70B ; [.1C8D.0020.0005] # MATHEMATICAL ITALIC SMALL PI
-1D71B ; [.1C8D.0020.0005] # MATHEMATICAL ITALIC PI SYMBOL
-1D745 ; [.1C8D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PI
-1D755 ; [.1C8D.0020.0005] # MATHEMATICAL BOLD ITALIC PI SYMBOL
-1D77F ; [.1C8D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PI
-1D78F ; [.1C8D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
-1D7B9 ; [.1C8D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
-1D7C9 ; [.1C8D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-03A0 ; [.1C8D.0020.0008] # GREEK CAPITAL LETTER PI
-213F ; [.1C8D.0020.000B] # DOUBLE-STRUCK CAPITAL PI
-1D6B7 ; [.1C8D.0020.000B] # MATHEMATICAL BOLD CAPITAL PI
-1D6F1 ; [.1C8D.0020.000B] # MATHEMATICAL ITALIC CAPITAL PI
-1D72B ; [.1C8D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PI
-1D765 ; [.1C8D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
-1D79F ; [.1C8D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
-1D28 ; [.1C8E.0020.0002] # GREEK LETTER SMALL CAPITAL PI
-03FB ; [.1C8F.0020.0002] # GREEK SMALL LETTER SAN
-03FA ; [.1C8F.0020.0008] # GREEK CAPITAL LETTER SAN
-03DF ; [.1C90.0020.0002] # GREEK SMALL LETTER KOPPA
-03DE ; [.1C90.0020.0008] # GREEK LETTER KOPPA
-03D9 ; [.1C91.0020.0002] # GREEK SMALL LETTER ARCHAIC KOPPA
-03D8 ; [.1C91.0020.0008] # GREEK LETTER ARCHAIC KOPPA
-03C1 ; [.1C92.0020.0002] # GREEK SMALL LETTER RHO
-03F1 ; [.1C92.0020.0004] # GREEK RHO SYMBOL
-1D6D2 ; [.1C92.0020.0005] # MATHEMATICAL BOLD SMALL RHO
-1D6E0 ; [.1C92.0020.0005] # MATHEMATICAL BOLD RHO SYMBOL
-1D70C ; [.1C92.0020.0005] # MATHEMATICAL ITALIC SMALL RHO
-1D71A ; [.1C92.0020.0005] # MATHEMATICAL ITALIC RHO SYMBOL
-1D746 ; [.1C92.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL RHO
-1D754 ; [.1C92.0020.0005] # MATHEMATICAL BOLD ITALIC RHO SYMBOL
-1D780 ; [.1C92.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL RHO
-1D78E ; [.1C92.0020.0005] # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
-1D7BA ; [.1C92.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
-1D7C8 ; [.1C92.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
-03A1 ; [.1C92.0020.0008] # GREEK CAPITAL LETTER RHO
-1D6B8 ; [.1C92.0020.000B] # MATHEMATICAL BOLD CAPITAL RHO
-1D6F2 ; [.1C92.0020.000B] # MATHEMATICAL ITALIC CAPITAL RHO
-1D72C ; [.1C92.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL RHO
-1D766 ; [.1C92.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
-1D7A0 ; [.1C92.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
-1D68 ; [.1C92.0020.0015] # GREEK SUBSCRIPT SMALL LETTER RHO
-1FE4 ; [.1C92.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER RHO WITH PSILI
-1FE5 ; [.1C92.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER RHO WITH DASIA
-1FEC ; [.1C92.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER RHO WITH DASIA
-1D29 ; [.1C93.0020.0002] # GREEK LETTER SMALL CAPITAL RHO
-03FC ; [.1C94.0020.0002] # GREEK RHO WITH STROKE SYMBOL
-03C3 ; [.1C95.0020.0002] # GREEK SMALL LETTER SIGMA
-03F2 ; [.1C95.0020.0004] # GREEK LUNATE SIGMA SYMBOL
-1D6D3 ; [.1C95.0020.0005] # MATHEMATICAL BOLD SMALL FINAL SIGMA
-1D6D4 ; [.1C95.0020.0005] # MATHEMATICAL BOLD SMALL SIGMA
-1D70D ; [.1C95.0020.0005] # MATHEMATICAL ITALIC SMALL FINAL SIGMA
-1D70E ; [.1C95.0020.0005] # MATHEMATICAL ITALIC SMALL SIGMA
-1D747 ; [.1C95.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
-1D748 ; [.1C95.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL SIGMA
-1D781 ; [.1C95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
-1D782 ; [.1C95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
-1D7BB ; [.1C95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
-1D7BC ; [.1C95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
-03A3 ; [.1C95.0020.0008] # GREEK CAPITAL LETTER SIGMA
-03F9 ; [.1C95.0020.000A] # GREEK CAPITAL LUNATE SIGMA SYMBOL
-1D6BA ; [.1C95.0020.000B] # MATHEMATICAL BOLD CAPITAL SIGMA
-1D6F4 ; [.1C95.0020.000B] # MATHEMATICAL ITALIC CAPITAL SIGMA
-1D72E ; [.1C95.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
-1D768 ; [.1C95.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
-1D7A2 ; [.1C95.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
-03C2 ; [.1C95.0020.0019] # GREEK SMALL LETTER FINAL SIGMA
-037C ; [.1C96.0020.0002] # GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-03FE ; [.1C96.0020.0008] # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-037B ; [.1C97.0020.0002] # GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-03FD ; [.1C97.0020.0008] # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-037D ; [.1C98.0020.0002] # GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-03FF ; [.1C98.0020.0008] # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-03C4 ; [.1C99.0020.0002] # GREEK SMALL LETTER TAU
-1D6D5 ; [.1C99.0020.0005] # MATHEMATICAL BOLD SMALL TAU
-1D70F ; [.1C99.0020.0005] # MATHEMATICAL ITALIC SMALL TAU
-1D749 ; [.1C99.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL TAU
-1D783 ; [.1C99.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL TAU
-1D7BD ; [.1C99.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
-03A4 ; [.1C99.0020.0008] # GREEK CAPITAL LETTER TAU
-1D6BB ; [.1C99.0020.000B] # MATHEMATICAL BOLD CAPITAL TAU
-1D6F5 ; [.1C99.0020.000B] # MATHEMATICAL ITALIC CAPITAL TAU
-1D72F ; [.1C99.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL TAU
-1D769 ; [.1C99.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
-1D7A3 ; [.1C99.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
-03C5 ; [.1C9A.0020.0002] # GREEK SMALL LETTER UPSILON
-1D6D6 ; [.1C9A.0020.0005] # MATHEMATICAL BOLD SMALL UPSILON
-1D710 ; [.1C9A.0020.0005] # MATHEMATICAL ITALIC SMALL UPSILON
-1D74A ; [.1C9A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL UPSILON
-1D784 ; [.1C9A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
-1D7BE ; [.1C9A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
-03A5 ; [.1C9A.0020.0008] # GREEK CAPITAL LETTER UPSILON
-03D2 ; [.1C9A.0020.000A] # GREEK UPSILON WITH HOOK SYMBOL
-1D6BC ; [.1C9A.0020.000B] # MATHEMATICAL BOLD CAPITAL UPSILON
-1D6F6 ; [.1C9A.0020.000B] # MATHEMATICAL ITALIC CAPITAL UPSILON
-1D730 ; [.1C9A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
-1D76A ; [.1C9A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
-1D7A4 ; [.1C9A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
-1F50 ; [.1C9A.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER UPSILON WITH PSILI
-1F54 ; [.1C9A.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-1F52 ; [.1C9A.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-1F56 ; [.1C9A.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-1F51 ; [.1C9A.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER UPSILON WITH DASIA
-1F59 ; [.1C9A.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F55 ; [.1C9A.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-1F5D ; [.1C9A.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F53 ; [.1C9A.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-1F5B ; [.1C9A.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F57 ; [.1C9A.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F5F ; [.1C9A.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-03CD ; [.1C9A.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH TONOS
-1F7B ; [.1C9A.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH OXIA
-038E ; [.1C9A.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH TONOS
-1FEB ; [.1C9A.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH OXIA
-03D3 ; [.1C9A.0020.000A][.0000.0024.0002] # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-1F7A ; [.1C9A.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH VARIA
-1FEA ; [.1C9A.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH VARIA
-1FE0 ; [.1C9A.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER UPSILON WITH VRACHY
-1FE8 ; [.1C9A.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER UPSILON WITH VRACHY
-1FE6 ; [.1C9A.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-03CB ; [.1C9A.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-03AB ; [.1C9A.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03D4 ; [.1C9A.0020.000A][.0000.002B.0002] # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-03B0 ; [.1C9A.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-1FE3 ; [.1C9A.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-1FE2 ; [.1C9A.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-1FE7 ; [.1C9A.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-1FE1 ; [.1C9A.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER UPSILON WITH MACRON
-1FE9 ; [.1C9A.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER UPSILON WITH MACRON
-03C6 ; [.1C9B.0020.0002] # GREEK SMALL LETTER PHI
-03D5 ; [.1C9B.0020.0004] # GREEK PHI SYMBOL
-1D6D7 ; [.1C9B.0020.0005] # MATHEMATICAL BOLD SMALL PHI
-1D6DF ; [.1C9B.0020.0005] # MATHEMATICAL BOLD PHI SYMBOL
-1D711 ; [.1C9B.0020.0005] # MATHEMATICAL ITALIC SMALL PHI
-1D719 ; [.1C9B.0020.0005] # MATHEMATICAL ITALIC PHI SYMBOL
-1D74B ; [.1C9B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PHI
-1D753 ; [.1C9B.0020.0005] # MATHEMATICAL BOLD ITALIC PHI SYMBOL
-1D785 ; [.1C9B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PHI
-1D78D ; [.1C9B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
-1D7BF ; [.1C9B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
-1D7C7 ; [.1C9B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
-03A6 ; [.1C9B.0020.0008] # GREEK CAPITAL LETTER PHI
-1D6BD ; [.1C9B.0020.000B] # MATHEMATICAL BOLD CAPITAL PHI
-1D6F7 ; [.1C9B.0020.000B] # MATHEMATICAL ITALIC CAPITAL PHI
-1D731 ; [.1C9B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PHI
-1D76B ; [.1C9B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
-1D7A5 ; [.1C9B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
-1D60 ; [.1C9B.0020.0014] # MODIFIER LETTER SMALL GREEK PHI
-1D69 ; [.1C9B.0020.0015] # GREEK SUBSCRIPT SMALL LETTER PHI
-03C7 ; [.1C9C.0020.0002] # GREEK SMALL LETTER CHI
-1D6D8 ; [.1C9C.0020.0005] # MATHEMATICAL BOLD SMALL CHI
-1D712 ; [.1C9C.0020.0005] # MATHEMATICAL ITALIC SMALL CHI
-1D74C ; [.1C9C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL CHI
-1D786 ; [.1C9C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL CHI
-1D7C0 ; [.1C9C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
-03A7 ; [.1C9C.0020.0008] # GREEK CAPITAL LETTER CHI
-1D6BE ; [.1C9C.0020.000B] # MATHEMATICAL BOLD CAPITAL CHI
-1D6F8 ; [.1C9C.0020.000B] # MATHEMATICAL ITALIC CAPITAL CHI
-1D732 ; [.1C9C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL CHI
-1D76C ; [.1C9C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
-1D7A6 ; [.1C9C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
-1D61 ; [.1C9C.0020.0014] # MODIFIER LETTER SMALL CHI
-1D6A ; [.1C9C.0020.0015] # GREEK SUBSCRIPT SMALL LETTER CHI
-03C8 ; [.1C9D.0020.0002] # GREEK SMALL LETTER PSI
-1D6D9 ; [.1C9D.0020.0005] # MATHEMATICAL BOLD SMALL PSI
-1D713 ; [.1C9D.0020.0005] # MATHEMATICAL ITALIC SMALL PSI
-1D74D ; [.1C9D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PSI
-1D787 ; [.1C9D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PSI
-1D7C1 ; [.1C9D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
-03A8 ; [.1C9D.0020.0008] # GREEK CAPITAL LETTER PSI
-1D6BF ; [.1C9D.0020.000B] # MATHEMATICAL BOLD CAPITAL PSI
-1D6F9 ; [.1C9D.0020.000B] # MATHEMATICAL ITALIC CAPITAL PSI
-1D733 ; [.1C9D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PSI
-1D76D ; [.1C9D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
-1D7A7 ; [.1C9D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
-1D2A ; [.1C9E.0020.0002] # GREEK LETTER SMALL CAPITAL PSI
-03C9 ; [.1C9F.0020.0002] # GREEK SMALL LETTER OMEGA
-1D6DA ; [.1C9F.0020.0005] # MATHEMATICAL BOLD SMALL OMEGA
-1D714 ; [.1C9F.0020.0005] # MATHEMATICAL ITALIC SMALL OMEGA
-1D74E ; [.1C9F.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D788 ; [.1C9F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D7C2 ; [.1C9F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-03A9 ; [.1C9F.0020.0008] # GREEK CAPITAL LETTER OMEGA
-2126 ; [.1C9F.0020.0008] # OHM SIGN
-1D6C0 ; [.1C9F.0020.000B] # MATHEMATICAL BOLD CAPITAL OMEGA
-1D6FA ; [.1C9F.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMEGA
-1D734 ; [.1C9F.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D76E ; [.1C9F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D7A8 ; [.1C9F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1F60 ; [.1C9F.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMEGA WITH PSILI
-1F68 ; [.1C9F.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI
-1F64 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-1F6C ; [.1C9F.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-1FA4 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1FAC ; [.1C9F.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F62 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-1F6A ; [.1C9F.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-1FA2 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1FAA ; [.1C9F.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F66 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F6E ; [.1C9F.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1FA6 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1FAE ; [.1C9F.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1FA0 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-1FA8 ; [.1C9F.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-1F61 ; [.1C9F.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMEGA WITH DASIA
-1F69 ; [.1C9F.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA
-1F65 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-1F6D ; [.1C9F.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-1FA5 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1FAD ; [.1C9F.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F63 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-1F6B ; [.1C9F.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-1FA3 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1FAB ; [.1C9F.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F67 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F6F ; [.1C9F.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1FA7 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1FAF ; [.1C9F.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FA1 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-1FA9 ; [.1C9F.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-03CE ; [.1C9F.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH TONOS
-1F7D ; [.1C9F.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH OXIA
-038F ; [.1C9F.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH TONOS
-1FFB ; [.1C9F.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH OXIA
-1FF4 ; [.1C9F.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1F7C ; [.1C9F.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH VARIA
-1FFA ; [.1C9F.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH VARIA
-1FF2 ; [.1C9F.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-1FF6 ; [.1C9F.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-1FF7 ; [.1C9F.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FF3 ; [.1C9F.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-1FFC ; [.1C9F.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-AB65 ; [.1CA0.0020.0002] # GREEK LETTER SMALL CAPITAL OMEGA
-03E1 ; [.1CA1.0020.0002] # GREEK SMALL LETTER SAMPI
-03E0 ; [.1CA1.0020.0008] # GREEK LETTER SAMPI
-0373 ; [.1CA2.0020.0002] # GREEK SMALL LETTER ARCHAIC SAMPI
-0372 ; [.1CA2.0020.0008] # GREEK CAPITAL LETTER ARCHAIC SAMPI
-03F8 ; [.1CA3.0020.0002] # GREEK SMALL LETTER SHO
-03F7 ; [.1CA3.0020.0008] # GREEK CAPITAL LETTER SHO
-2C81 ; [.1CA4.0020.0002] # COPTIC SMALL LETTER ALFA
-2C80 ; [.1CA4.0020.0008] # COPTIC CAPITAL LETTER ALFA
-2C83 ; [.1CA5.0020.0002] # COPTIC SMALL LETTER VIDA
-2C82 ; [.1CA5.0020.0008] # COPTIC CAPITAL LETTER VIDA
-2C85 ; [.1CA6.0020.0002] # COPTIC SMALL LETTER GAMMA
-2C84 ; [.1CA6.0020.0008] # COPTIC CAPITAL LETTER GAMMA
-2C87 ; [.1CA7.0020.0002] # COPTIC SMALL LETTER DALDA
-2C86 ; [.1CA7.0020.0008] # COPTIC CAPITAL LETTER DALDA
-2C89 ; [.1CA8.0020.0002] # COPTIC SMALL LETTER EIE
-2C88 ; [.1CA8.0020.0008] # COPTIC CAPITAL LETTER EIE
-2CB7 ; [.1CA9.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-2CB6 ; [.1CA9.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-2C8B ; [.1CAA.0020.0002] # COPTIC SMALL LETTER SOU
-2C8A ; [.1CAA.0020.0008] # COPTIC CAPITAL LETTER SOU
-2C8D ; [.1CAB.0020.0002] # COPTIC SMALL LETTER ZATA
-2C8C ; [.1CAB.0020.0008] # COPTIC CAPITAL LETTER ZATA
-2C8F ; [.1CAC.0020.0002] # COPTIC SMALL LETTER HATE
-2C8E ; [.1CAC.0020.0008] # COPTIC CAPITAL LETTER HATE
-2C91 ; [.1CAD.0020.0002] # COPTIC SMALL LETTER THETHE
-2C90 ; [.1CAD.0020.0008] # COPTIC CAPITAL LETTER THETHE
-2C93 ; [.1CAE.0020.0002] # COPTIC SMALL LETTER IAUDA
-2C92 ; [.1CAE.0020.0008] # COPTIC CAPITAL LETTER IAUDA
-2C95 ; [.1CAF.0020.0002] # COPTIC SMALL LETTER KAPA
-2C94 ; [.1CAF.0020.0008] # COPTIC CAPITAL LETTER KAPA
-2CE4 ; [.1CAF.0020.0004][.1CA4.0020.0004][.1CAE.0020.0004] # COPTIC SYMBOL KAI
-2CB9 ; [.1CB0.0020.0002] # COPTIC SMALL LETTER DIALECT-P KAPA
-2CB8 ; [.1CB0.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P KAPA
-2C97 ; [.1CB1.0020.0002] # COPTIC SMALL LETTER LAULA
-2C96 ; [.1CB1.0020.0008] # COPTIC CAPITAL LETTER LAULA
-2C99 ; [.1CB2.0020.0002] # COPTIC SMALL LETTER MI
-2C98 ; [.1CB2.0020.0008] # COPTIC CAPITAL LETTER MI
-2C9B ; [.1CB3.0020.0002] # COPTIC SMALL LETTER NI
-2C9A ; [.1CB3.0020.0008] # COPTIC CAPITAL LETTER NI
-2CBB ; [.1CB4.0020.0002] # COPTIC SMALL LETTER DIALECT-P NI
-2CBA ; [.1CB4.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P NI
-2CBD ; [.1CB5.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-2CBC ; [.1CB5.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-2C9D ; [.1CB6.0020.0002] # COPTIC SMALL LETTER KSI
-2C9C ; [.1CB6.0020.0008] # COPTIC CAPITAL LETTER KSI
-2C9F ; [.1CB7.0020.0002] # COPTIC SMALL LETTER O
-2C9E ; [.1CB7.0020.0008] # COPTIC CAPITAL LETTER O
-2CA1 ; [.1CB8.0020.0002] # COPTIC SMALL LETTER PI
-2CA0 ; [.1CB8.0020.0008] # COPTIC CAPITAL LETTER PI
-2CA3 ; [.1CB9.0020.0002] # COPTIC SMALL LETTER RO
-2CA2 ; [.1CB9.0020.0008] # COPTIC CAPITAL LETTER RO
-2CA5 ; [.1CBA.0020.0002] # COPTIC SMALL LETTER SIMA
-2CA4 ; [.1CBA.0020.0008] # COPTIC CAPITAL LETTER SIMA
-2CA7 ; [.1CBB.0020.0002] # COPTIC SMALL LETTER TAU
-2CA6 ; [.1CBB.0020.0008] # COPTIC CAPITAL LETTER TAU
-2CA9 ; [.1CBC.0020.0002] # COPTIC SMALL LETTER UA
-2CA8 ; [.1CBC.0020.0008] # COPTIC CAPITAL LETTER UA
-2CAB ; [.1CBD.0020.0002] # COPTIC SMALL LETTER FI
-2CAA ; [.1CBD.0020.0008] # COPTIC CAPITAL LETTER FI
-2CAD ; [.1CBE.0020.0002] # COPTIC SMALL LETTER KHI
-2CAC ; [.1CBE.0020.0008] # COPTIC CAPITAL LETTER KHI
-2CAF ; [.1CBF.0020.0002] # COPTIC SMALL LETTER PSI
-2CAE ; [.1CBF.0020.0008] # COPTIC CAPITAL LETTER PSI
-2CB1 ; [.1CC0.0020.0002] # COPTIC SMALL LETTER OOU
-2CB0 ; [.1CC0.0020.0008] # COPTIC CAPITAL LETTER OOU
-2CBF ; [.1CC1.0020.0002] # COPTIC SMALL LETTER OLD COPTIC OOU
-2CBE ; [.1CC1.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC OOU
-2CC1 ; [.1CC2.0020.0002] # COPTIC SMALL LETTER SAMPI
-2CC0 ; [.1CC2.0020.0008] # COPTIC CAPITAL LETTER SAMPI
-03E3 ; [.1CC3.0020.0002] # COPTIC SMALL LETTER SHEI
-03E2 ; [.1CC3.0020.0008] # COPTIC CAPITAL LETTER SHEI
-2CEC ; [.1CC4.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
-2CEB ; [.1CC4.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
-2CC3 ; [.1CC5.0020.0002] # COPTIC SMALL LETTER CROSSED SHEI
-2CC2 ; [.1CC5.0020.0008] # COPTIC CAPITAL LETTER CROSSED SHEI
-2CC5 ; [.1CC6.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHEI
-2CC4 ; [.1CC6.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHEI
-2CC7 ; [.1CC7.0020.0002] # COPTIC SMALL LETTER OLD COPTIC ESH
-2CC6 ; [.1CC7.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC ESH
-03E5 ; [.1CC8.0020.0002] # COPTIC SMALL LETTER FEI
-03E4 ; [.1CC8.0020.0008] # COPTIC CAPITAL LETTER FEI
-03E7 ; [.1CC9.0020.0002] # COPTIC SMALL LETTER KHEI
-03E6 ; [.1CC9.0020.0008] # COPTIC CAPITAL LETTER KHEI
-2CF3 ; [.1CCA.0020.0002] # COPTIC SMALL LETTER BOHAIRIC KHEI
-2CF2 ; [.1CCA.0020.0008] # COPTIC CAPITAL LETTER BOHAIRIC KHEI
-2CC9 ; [.1CCB.0020.0002] # COPTIC SMALL LETTER AKHMIMIC KHEI
-2CC8 ; [.1CCB.0020.0008] # COPTIC CAPITAL LETTER AKHMIMIC KHEI
-03E9 ; [.1CCC.0020.0002] # COPTIC SMALL LETTER HORI
-03E8 ; [.1CCC.0020.0008] # COPTIC CAPITAL LETTER HORI
-2CCB ; [.1CCD.0020.0002] # COPTIC SMALL LETTER DIALECT-P HORI
-2CCA ; [.1CCD.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P HORI
-2CCD ; [.1CCE.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HORI
-2CCC ; [.1CCE.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HORI
-2CCF ; [.1CCF.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HA
-2CCE ; [.1CCF.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HA
-2CD1 ; [.1CD0.0020.0002] # COPTIC SMALL LETTER L-SHAPED HA
-2CD0 ; [.1CD0.0020.0008] # COPTIC CAPITAL LETTER L-SHAPED HA
-2CD3 ; [.1CD1.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HEI
-2CD2 ; [.1CD1.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HEI
-2CD5 ; [.1CD2.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HAT
-2CD4 ; [.1CD2.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HAT
-03EB ; [.1CD3.0020.0002] # COPTIC SMALL LETTER GANGIA
-03EA ; [.1CD3.0020.0008] # COPTIC CAPITAL LETTER GANGIA
-2CEE ; [.1CD4.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
-2CED ; [.1CD4.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
-2CD7 ; [.1CD5.0020.0002] # COPTIC SMALL LETTER OLD COPTIC GANGIA
-2CD6 ; [.1CD5.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-03ED ; [.1CD6.0020.0002] # COPTIC SMALL LETTER SHIMA
-03EC ; [.1CD6.0020.0008] # COPTIC CAPITAL LETTER SHIMA
-2CD9 ; [.1CD7.0020.0002] # COPTIC SMALL LETTER OLD COPTIC DJA
-2CD8 ; [.1CD7.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC DJA
-2CDB ; [.1CD8.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHIMA
-2CDA ; [.1CD8.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-2CDD ; [.1CD9.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN SHIMA
-2CDC ; [.1CD9.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-03EF ; [.1CDA.0020.0002] # COPTIC SMALL LETTER DEI
-03EE ; [.1CDA.0020.0008] # COPTIC CAPITAL LETTER DEI
-2CB3 ; [.1CDB.0020.0002] # COPTIC SMALL LETTER DIALECT-P ALEF
-2CB2 ; [.1CDB.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P ALEF
-2CB5 ; [.1CDC.0020.0002] # COPTIC SMALL LETTER OLD COPTIC AIN
-2CB4 ; [.1CDC.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC AIN
-2CDF ; [.1CDD.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NGI
-2CDE ; [.1CDD.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NGI
-2CE1 ; [.1CDE.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NYI
-2CE0 ; [.1CDE.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NYI
-2CE3 ; [.1CDF.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN WAU
-2CE2 ; [.1CDF.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN WAU
-0430 ; [.1CE0.0020.0002] # CYRILLIC SMALL LETTER A
-2DF6 ; [.1CE0.0020.0004] # COMBINING CYRILLIC LETTER A
-0410 ; [.1CE0.0020.0008] # CYRILLIC CAPITAL LETTER A
-04D1 ; [.1CE4.0020.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-0430 0306 ; [.1CE4.0020.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE4.0020.0008] # CYRILLIC CAPITAL LETTER A WITH BREVE
-0410 0306 ; [.1CE4.0020.0008] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE8.0020.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-0430 0308 ; [.1CE8.0020.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE8.0020.0008] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-0410 0308 ; [.1CE8.0020.0008] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D9 ; [.1CEC.0020.0002] # CYRILLIC SMALL LETTER SCHWA
-04D8 ; [.1CEC.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA
-04DB ; [.1CF0.0020.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04D9 0308 ; [.1CF0.0020.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CF0.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D8 0308 ; [.1CF0.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D5 ; [.1CF4.0020.0002] # CYRILLIC SMALL LIGATURE A IE
-04D4 ; [.1CF4.0020.0008] # CYRILLIC CAPITAL LIGATURE A IE
-0431 ; [.1CF8.0020.0002] # CYRILLIC SMALL LETTER BE
-2DE0 ; [.1CF8.0020.0004] # COMBINING CYRILLIC LETTER BE
-0411 ; [.1CF8.0020.0008] # CYRILLIC CAPITAL LETTER BE
-0432 ; [.1CFC.0020.0002] # CYRILLIC SMALL LETTER VE
-2DE1 ; [.1CFC.0020.0004] # COMBINING CYRILLIC LETTER VE
-0412 ; [.1CFC.0020.0008] # CYRILLIC CAPITAL LETTER VE
-0433 ; [.1D00.0020.0002] # CYRILLIC SMALL LETTER GHE
-2DE2 ; [.1D00.0020.0004] # COMBINING CYRILLIC LETTER GHE
-0413 ; [.1D00.0020.0008] # CYRILLIC CAPITAL LETTER GHE
-0491 ; [.1D00.0020.0004][.0000.0109.0004] # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0490 ; [.1D00.0020.000A][.0000.0109.0004] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0493 ; [.1D04.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE
-0492 ; [.1D04.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE
-04FB ; [.1D08.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-04FA ; [.1D08.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-0495 ; [.1D0C.0020.0002] # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0494 ; [.1D0C.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-04F7 ; [.1D10.0020.0002] # CYRILLIC SMALL LETTER GHE WITH DESCENDER
-04F6 ; [.1D10.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-0434 ; [.1D14.0020.0002] # CYRILLIC SMALL LETTER DE
-2DE3 ; [.1D14.0020.0004] # COMBINING CYRILLIC LETTER DE
-0414 ; [.1D14.0020.0008] # CYRILLIC CAPITAL LETTER DE
-0501 ; [.1D18.0020.0002] # CYRILLIC SMALL LETTER KOMI DE
-0500 ; [.1D18.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DE
-A681 ; [.1D19.0020.0002] # CYRILLIC SMALL LETTER DWE
-A680 ; [.1D19.0020.0008] # CYRILLIC CAPITAL LETTER DWE
-0452 ; [.1D1A.0020.0002] # CYRILLIC SMALL LETTER DJE
-0402 ; [.1D1A.0020.0008] # CYRILLIC CAPITAL LETTER DJE
-A663 ; [.1D1E.0020.0002] # CYRILLIC SMALL LETTER SOFT DE
-A662 ; [.1D1E.0020.0008] # CYRILLIC CAPITAL LETTER SOFT DE
-0503 ; [.1D1F.0020.0002] # CYRILLIC SMALL LETTER KOMI DJE
-0502 ; [.1D1F.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DJE
-0453 ; [.1D20.0020.0002] # CYRILLIC SMALL LETTER GJE
-0433 0301 ; [.1D20.0020.0002] # CYRILLIC SMALL LETTER GJE
-0433 0341 ; [.1D20.0020.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D20.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0413 0301 ; [.1D20.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0413 0341 ; [.1D20.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0499 ; [.1D24.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DESCENDER
-0498 ; [.1D24.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0435 ; [.1D28.0020.0002] # CYRILLIC SMALL LETTER IE
-2DF7 ; [.1D28.0020.0004] # COMBINING CYRILLIC LETTER IE
-0415 ; [.1D28.0020.0008] # CYRILLIC CAPITAL LETTER IE
-0450 ; [.1D28.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER IE WITH GRAVE
-0400 ; [.1D28.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER IE WITH GRAVE
-0451 ; [.1D28.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.1D28.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER IO
-04D7 ; [.1D2C.0020.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-0435 0306 ; [.1D2C.0020.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D2C.0020.0008] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-0415 0306 ; [.1D2C.0020.0008] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-0454 ; [.1D30.0020.0002] # CYRILLIC SMALL LETTER UKRAINIAN IE
-A674 ; [.1D30.0020.0004] # COMBINING CYRILLIC LETTER UKRAINIAN IE
-0404 ; [.1D30.0020.0008] # CYRILLIC CAPITAL LETTER UKRAINIAN IE
-0436 ; [.1D34.0020.0002] # CYRILLIC SMALL LETTER ZHE
-2DE4 ; [.1D34.0020.0004] # COMBINING CYRILLIC LETTER ZHE
-0416 ; [.1D34.0020.0008] # CYRILLIC CAPITAL LETTER ZHE
-04C2 ; [.1D34.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C1 ; [.1D34.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-052B ; [.1D38.0020.0002] # CYRILLIC SMALL LETTER DZZHE
-052A ; [.1D38.0020.0008] # CYRILLIC CAPITAL LETTER DZZHE
-A685 ; [.1D39.0020.0002] # CYRILLIC SMALL LETTER ZHWE
-A684 ; [.1D39.0020.0008] # CYRILLIC CAPITAL LETTER ZHWE
-04DD ; [.1D3A.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-0436 0308 ; [.1D3A.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D3A.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-0416 0308 ; [.1D3A.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-0497 ; [.1D3E.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0496 ; [.1D3E.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0437 ; [.1D42.0020.0002] # CYRILLIC SMALL LETTER ZE
-2DE5 ; [.1D42.0020.0004] # COMBINING CYRILLIC LETTER ZE
-0417 ; [.1D42.0020.0008] # CYRILLIC CAPITAL LETTER ZE
-A641 ; [.1D46.0020.0002] # CYRILLIC SMALL LETTER ZEMLYA
-A640 ; [.1D46.0020.0008] # CYRILLIC CAPITAL LETTER ZEMLYA
-0505 ; [.1D47.0020.0002] # CYRILLIC SMALL LETTER KOMI ZJE
-0504 ; [.1D47.0020.0008] # CYRILLIC CAPITAL LETTER KOMI ZJE
-0511 ; [.1D48.0020.0002] # CYRILLIC SMALL LETTER REVERSED ZE
-0510 ; [.1D48.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED ZE
-04DF ; [.1D49.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-0437 0308 ; [.1D49.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D49.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0417 0308 ; [.1D49.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-A643 ; [.1D4D.0020.0002] # CYRILLIC SMALL LETTER DZELO
-A642 ; [.1D4D.0020.0008] # CYRILLIC CAPITAL LETTER DZELO
-0455 ; [.1D4E.0020.0002] # CYRILLIC SMALL LETTER DZE
-0405 ; [.1D4E.0020.0008] # CYRILLIC CAPITAL LETTER DZE
-A645 ; [.1D52.0020.0002] # CYRILLIC SMALL LETTER REVERSED DZE
-A644 ; [.1D52.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED DZE
-04E1 ; [.1D53.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E0 ; [.1D53.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-A689 ; [.1D57.0020.0002] # CYRILLIC SMALL LETTER DZZE
-A688 ; [.1D57.0020.0008] # CYRILLIC CAPITAL LETTER DZZE
-0507 ; [.1D58.0020.0002] # CYRILLIC SMALL LETTER KOMI DZJE
-0506 ; [.1D58.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DZJE
-A683 ; [.1D59.0020.0002] # CYRILLIC SMALL LETTER DZWE
-A682 ; [.1D59.0020.0008] # CYRILLIC CAPITAL LETTER DZWE
-0438 ; [.1D5A.0020.0002] # CYRILLIC SMALL LETTER I
-A675 ; [.1D5A.0020.0004] # COMBINING CYRILLIC LETTER I
-0418 ; [.1D5A.0020.0008] # CYRILLIC CAPITAL LETTER I
-045D ; [.1D5A.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER I WITH GRAVE
-040D ; [.1D5A.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER I WITH GRAVE
-04E3 ; [.1D5A.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER I WITH MACRON
-04E2 ; [.1D5A.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER I WITH MACRON
-048B ; [.1D5E.0020.0002] # CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048A ; [.1D5E.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-04E5 ; [.1D62.0020.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-0438 0308 ; [.1D62.0020.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1D62.0020.0008] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0418 0308 ; [.1D62.0020.0008] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0456 ; [.1D66.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0406 ; [.1D66.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-A647 ; [.1D6A.0020.0002] # CYRILLIC SMALL LETTER IOTA
-A646 ; [.1D6A.0020.0008] # CYRILLIC CAPITAL LETTER IOTA
-0457 ; [.1D6B.0020.0002] # CYRILLIC SMALL LETTER YI
-0456 0308 ; [.1D6B.0020.0002] # CYRILLIC SMALL LETTER YI
-A676 ; [.1D6B.0020.0004] # COMBINING CYRILLIC LETTER YI
-0407 ; [.1D6B.0020.0008] # CYRILLIC CAPITAL LETTER YI
-0406 0308 ; [.1D6B.0020.0008] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1D6F.0020.0002] # CYRILLIC SMALL LETTER SHORT I
-0438 0306 ; [.1D6F.0020.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1D6F.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
-0418 0306 ; [.1D6F.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
-0458 ; [.1D73.0020.0002] # CYRILLIC SMALL LETTER JE
-0408 ; [.1D73.0020.0008] # CYRILLIC CAPITAL LETTER JE
-A649 ; [.1D77.0020.0002] # CYRILLIC SMALL LETTER DJERV
-2DF8 ; [.1D77.0020.0004] # COMBINING CYRILLIC LETTER DJERV
-A648 ; [.1D77.0020.0008] # CYRILLIC CAPITAL LETTER DJERV
-043A ; [.1D78.0020.0002] # CYRILLIC SMALL LETTER KA
-2DE6 ; [.1D78.0020.0004] # COMBINING CYRILLIC LETTER KA
-041A ; [.1D78.0020.0008] # CYRILLIC CAPITAL LETTER KA
-049B ; [.1D7C.0020.0002] # CYRILLIC SMALL LETTER KA WITH DESCENDER
-049A ; [.1D7C.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-04C4 ; [.1D80.0020.0002] # CYRILLIC SMALL LETTER KA WITH HOOK
-04C3 ; [.1D80.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH HOOK
-04A1 ; [.1D84.0020.0002] # CYRILLIC SMALL LETTER BASHKIR KA
-04A0 ; [.1D84.0020.0008] # CYRILLIC CAPITAL LETTER BASHKIR KA
-049F ; [.1D88.0020.0002] # CYRILLIC SMALL LETTER KA WITH STROKE
-049E ; [.1D88.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH STROKE
-049D ; [.1D8C.0020.0002] # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049C ; [.1D8C.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-051F ; [.1D90.0020.0002] # CYRILLIC SMALL LETTER ALEUT KA
-051E ; [.1D90.0020.0008] # CYRILLIC CAPITAL LETTER ALEUT KA
-051B ; [.1D91.0020.0002] # CYRILLIC SMALL LETTER QA
-051A ; [.1D91.0020.0008] # CYRILLIC CAPITAL LETTER QA
-043B ; [.1D92.0020.0002] # CYRILLIC SMALL LETTER EL
-2DE7 ; [.1D92.0020.0004] # COMBINING CYRILLIC LETTER EL
-041B ; [.1D92.0020.0008] # CYRILLIC CAPITAL LETTER EL
-1D2B ; [.1D96.0020.0002] # CYRILLIC LETTER SMALL CAPITAL EL
-04C6 ; [.1D97.0020.0002] # CYRILLIC SMALL LETTER EL WITH TAIL
-04C5 ; [.1D97.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH TAIL
-052F ; [.1D9B.0020.0002] # CYRILLIC SMALL LETTER EL WITH DESCENDER
-052E ; [.1D9B.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH DESCENDER
-0513 ; [.1D9C.0020.0002] # CYRILLIC SMALL LETTER EL WITH HOOK
-0512 ; [.1D9C.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH HOOK
-0521 ; [.1D9D.0020.0002] # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-0520 ; [.1D9D.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-0459 ; [.1D9E.0020.0002] # CYRILLIC SMALL LETTER LJE
-0409 ; [.1D9E.0020.0008] # CYRILLIC CAPITAL LETTER LJE
-A665 ; [.1DA2.0020.0002] # CYRILLIC SMALL LETTER SOFT EL
-A664 ; [.1DA2.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EL
-0509 ; [.1DA3.0020.0002] # CYRILLIC SMALL LETTER KOMI LJE
-0508 ; [.1DA3.0020.0008] # CYRILLIC CAPITAL LETTER KOMI LJE
-0515 ; [.1DA4.0020.0002] # CYRILLIC SMALL LETTER LHA
-0514 ; [.1DA4.0020.0008] # CYRILLIC CAPITAL LETTER LHA
-043C ; [.1DA5.0020.0002] # CYRILLIC SMALL LETTER EM
-2DE8 ; [.1DA5.0020.0004] # COMBINING CYRILLIC LETTER EM
-041C ; [.1DA5.0020.0008] # CYRILLIC CAPITAL LETTER EM
-04CE ; [.1DA9.0020.0002] # CYRILLIC SMALL LETTER EM WITH TAIL
-04CD ; [.1DA9.0020.0008] # CYRILLIC CAPITAL LETTER EM WITH TAIL
-A667 ; [.1DAD.0020.0002] # CYRILLIC SMALL LETTER SOFT EM
-A666 ; [.1DAD.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EM
-043D ; [.1DAE.0020.0002] # CYRILLIC SMALL LETTER EN
-2DE9 ; [.1DAE.0020.0004] # COMBINING CYRILLIC LETTER EN
-041D ; [.1DAE.0020.0008] # CYRILLIC CAPITAL LETTER EN
-1D78 ; [.1DAE.0020.0014] # MODIFIER LETTER CYRILLIC EN
-0529 ; [.1DB2.0020.0002] # CYRILLIC SMALL LETTER EN WITH LEFT HOOK
-0528 ; [.1DB2.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
-04CA ; [.1DB3.0020.0002] # CYRILLIC SMALL LETTER EN WITH TAIL
-04C9 ; [.1DB3.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH TAIL
-04A3 ; [.1DB7.0020.0002] # CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A2 ; [.1DB7.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04C8 ; [.1DBB.0020.0002] # CYRILLIC SMALL LETTER EN WITH HOOK
-04C7 ; [.1DBB.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH HOOK
-0523 ; [.1DBF.0020.0002] # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-0522 ; [.1DBF.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-04A5 ; [.1DC0.0020.0002] # CYRILLIC SMALL LIGATURE EN GHE
-04A4 ; [.1DC0.0020.0008] # CYRILLIC CAPITAL LIGATURE EN GHE
-045A ; [.1DC4.0020.0002] # CYRILLIC SMALL LETTER NJE
-040A ; [.1DC4.0020.0008] # CYRILLIC CAPITAL LETTER NJE
-050B ; [.1DC8.0020.0002] # CYRILLIC SMALL LETTER KOMI NJE
-050A ; [.1DC8.0020.0008] # CYRILLIC CAPITAL LETTER KOMI NJE
-043E ; [.1DC9.0020.0002] # CYRILLIC SMALL LETTER O
-2DEA ; [.1DC9.0020.0004] # COMBINING CYRILLIC LETTER O
-A669 ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER MONOCULAR O
-A66B ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER BINOCULAR O
-A66D ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A66E ; [.1DC9.0020.0004] # CYRILLIC LETTER MULTIOCULAR O
-A699 ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER DOUBLE O
-A69B ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER CROSSED O
-041E ; [.1DC9.0020.0008] # CYRILLIC CAPITAL LETTER O
-A668 ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER MONOCULAR O
-A66A ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER BINOCULAR O
-A66C ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
-A698 ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE O
-A69A ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER CROSSED O
-04E7 ; [.1DCD.0020.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-043E 0308 ; [.1DCD.0020.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DCD.0020.0008] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-041E 0308 ; [.1DCD.0020.0008] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E9 ; [.1DD1.0020.0002] # CYRILLIC SMALL LETTER BARRED O
-04E8 ; [.1DD1.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O
-04EB ; [.1DD5.0020.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04E9 0308 ; [.1DD5.0020.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD5.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04E8 0308 ; [.1DD5.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-043F ; [.1DD9.0020.0002] # CYRILLIC SMALL LETTER PE
-2DEB ; [.1DD9.0020.0004] # COMBINING CYRILLIC LETTER PE
-041F ; [.1DD9.0020.0008] # CYRILLIC CAPITAL LETTER PE
-0525 ; [.1DDD.0020.0002] # CYRILLIC SMALL LETTER PE WITH DESCENDER
-0524 ; [.1DDD.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-04A7 ; [.1DDE.0020.0002] # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A6 ; [.1DDE.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-0481 ; [.1DE2.0020.0002] # CYRILLIC SMALL LETTER KOPPA
-0480 ; [.1DE2.0020.0008] # CYRILLIC CAPITAL LETTER KOPPA
-0440 ; [.1DE6.0020.0002] # CYRILLIC SMALL LETTER ER
-2DEC ; [.1DE6.0020.0004] # COMBINING CYRILLIC LETTER ER
-0420 ; [.1DE6.0020.0008] # CYRILLIC CAPITAL LETTER ER
-048F ; [.1DEA.0020.0002] # CYRILLIC SMALL LETTER ER WITH TICK
-048E ; [.1DEA.0020.0008] # CYRILLIC CAPITAL LETTER ER WITH TICK
-0517 ; [.1DEE.0020.0002] # CYRILLIC SMALL LETTER RHA
-0516 ; [.1DEE.0020.0008] # CYRILLIC CAPITAL LETTER RHA
-0441 ; [.1DEF.0020.0002] # CYRILLIC SMALL LETTER ES
-2DED ; [.1DEF.0020.0004] # COMBINING CYRILLIC LETTER ES
-0421 ; [.1DEF.0020.0008] # CYRILLIC CAPITAL LETTER ES
-2DF5 ; [.1DEF.0020.0004][.1DF8.0020.0004] # COMBINING CYRILLIC LETTER ES-TE
-050D ; [.1DF3.0020.0002] # CYRILLIC SMALL LETTER KOMI SJE
-050C ; [.1DF3.0020.0008] # CYRILLIC CAPITAL LETTER KOMI SJE
-04AB ; [.1DF4.0020.0002] # CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AA ; [.1DF4.0020.0008] # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-0442 ; [.1DF8.0020.0002] # CYRILLIC SMALL LETTER TE
-2DEE ; [.1DF8.0020.0004] # COMBINING CYRILLIC LETTER TE
-0422 ; [.1DF8.0020.0008] # CYRILLIC CAPITAL LETTER TE
-A68D ; [.1DFC.0020.0002] # CYRILLIC SMALL LETTER TWE
-A68C ; [.1DFC.0020.0008] # CYRILLIC CAPITAL LETTER TWE
-050F ; [.1DFD.0020.0002] # CYRILLIC SMALL LETTER KOMI TJE
-050E ; [.1DFD.0020.0008] # CYRILLIC CAPITAL LETTER KOMI TJE
-04AD ; [.1DFE.0020.0002] # CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AC ; [.1DFE.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-A68B ; [.1E02.0020.0002] # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
-A68A ; [.1E02.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
-045B ; [.1E03.0020.0002] # CYRILLIC SMALL LETTER TSHE
-040B ; [.1E03.0020.0008] # CYRILLIC CAPITAL LETTER TSHE
-045C ; [.1E07.0020.0002] # CYRILLIC SMALL LETTER KJE
-043A 0301 ; [.1E07.0020.0002] # CYRILLIC SMALL LETTER KJE
-043A 0341 ; [.1E07.0020.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1E07.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-041A 0301 ; [.1E07.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-041A 0341 ; [.1E07.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-0443 ; [.1E0B.0020.0002] # CYRILLIC SMALL LETTER U
-A677 ; [.1E0B.0020.0004] # COMBINING CYRILLIC LETTER U
-0423 ; [.1E0B.0020.0008] # CYRILLIC CAPITAL LETTER U
-04EF ; [.1E0B.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER U WITH MACRON
-04EE ; [.1E0B.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER U WITH MACRON
-045E ; [.1E0F.0020.0002] # CYRILLIC SMALL LETTER SHORT U
-0443 0306 ; [.1E0F.0020.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0F.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
-0423 0306 ; [.1E0F.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E13.0020.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-0443 0308 ; [.1E13.0020.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E13.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-0423 0308 ; [.1E13.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E17.0020.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-0443 030B ; [.1E17.0020.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E17.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-0423 030B ; [.1E17.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04AF ; [.1E1B.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
-04AE ; [.1E1B.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
-04B1 ; [.1E1F.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B0 ; [.1E1F.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-A64B ; [.1E23.0020.0002] # CYRILLIC SMALL LETTER MONOGRAPH UK
-2DF9 ; [.1E23.0020.0004] # COMBINING CYRILLIC LETTER MONOGRAPH UK
-A64A ; [.1E23.0020.0008] # CYRILLIC CAPITAL LETTER MONOGRAPH UK
-0479 ; [.1E24.0020.0002] # CYRILLIC SMALL LETTER UK
-0478 ; [.1E24.0020.0008] # CYRILLIC CAPITAL LETTER UK
-0444 ; [.1E28.0020.0002] # CYRILLIC SMALL LETTER EF
-0424 ; [.1E28.0020.0008] # CYRILLIC CAPITAL LETTER EF
-0445 ; [.1E2C.0020.0002] # CYRILLIC SMALL LETTER HA
-2DEF ; [.1E2C.0020.0004] # COMBINING CYRILLIC LETTER HA
-0425 ; [.1E2C.0020.0008] # CYRILLIC CAPITAL LETTER HA
-04FD ; [.1E30.0020.0002] # CYRILLIC SMALL LETTER HA WITH HOOK
-04FC ; [.1E30.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH HOOK
-04FF ; [.1E34.0020.0002] # CYRILLIC SMALL LETTER HA WITH STROKE
-04FE ; [.1E34.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH STROKE
-04B3 ; [.1E38.0020.0002] # CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B2 ; [.1E38.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04BB ; [.1E3C.0020.0002] # CYRILLIC SMALL LETTER SHHA
-04BA ; [.1E3C.0020.0008] # CYRILLIC CAPITAL LETTER SHHA
-0527 ; [.1E40.0020.0002] # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
-0526 ; [.1E40.0020.0008] # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
-A695 ; [.1E41.0020.0002] # CYRILLIC SMALL LETTER HWE
-A694 ; [.1E41.0020.0008] # CYRILLIC CAPITAL LETTER HWE
-0461 ; [.1E42.0020.0002] # CYRILLIC SMALL LETTER OMEGA
-A67B ; [.1E42.0020.0004] # COMBINING CYRILLIC LETTER OMEGA
-0460 ; [.1E42.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA
-047F ; [.1E46.0020.0002] # CYRILLIC SMALL LETTER OT
-047E ; [.1E46.0020.0008] # CYRILLIC CAPITAL LETTER OT
-A64D ; [.1E4A.0020.0002] # CYRILLIC SMALL LETTER BROAD OMEGA
-A64C ; [.1E4A.0020.0008] # CYRILLIC CAPITAL LETTER BROAD OMEGA
-047D ; [.1E4B.0020.0002] # CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047C ; [.1E4B.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047B ; [.1E4F.0020.0002] # CYRILLIC SMALL LETTER ROUND OMEGA
-047A ; [.1E4F.0020.0008] # CYRILLIC CAPITAL LETTER ROUND OMEGA
-0446 ; [.1E53.0020.0002] # CYRILLIC SMALL LETTER TSE
-2DF0 ; [.1E53.0020.0004] # COMBINING CYRILLIC LETTER TSE
-0426 ; [.1E53.0020.0008] # CYRILLIC CAPITAL LETTER TSE
-A661 ; [.1E57.0020.0002] # CYRILLIC SMALL LETTER REVERSED TSE
-A660 ; [.1E57.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED TSE
-A68F ; [.1E58.0020.0002] # CYRILLIC SMALL LETTER TSWE
-A68E ; [.1E58.0020.0008] # CYRILLIC CAPITAL LETTER TSWE
-04B5 ; [.1E59.0020.0002] # CYRILLIC SMALL LIGATURE TE TSE
-04B4 ; [.1E59.0020.0008] # CYRILLIC CAPITAL LIGATURE TE TSE
-A691 ; [.1E5D.0020.0002] # CYRILLIC SMALL LETTER TSSE
-A690 ; [.1E5D.0020.0008] # CYRILLIC CAPITAL LETTER TSSE
-0447 ; [.1E5E.0020.0002] # CYRILLIC SMALL LETTER CHE
-2DF1 ; [.1E5E.0020.0004] # COMBINING CYRILLIC LETTER CHE
-0427 ; [.1E5E.0020.0008] # CYRILLIC CAPITAL LETTER CHE
-052D ; [.1E62.0020.0002] # CYRILLIC SMALL LETTER DCHE
-052C ; [.1E62.0020.0008] # CYRILLIC CAPITAL LETTER DCHE
-A693 ; [.1E63.0020.0002] # CYRILLIC SMALL LETTER TCHE
-A692 ; [.1E63.0020.0008] # CYRILLIC CAPITAL LETTER TCHE
-04F5 ; [.1E64.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-0447 0308 ; [.1E64.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E64.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-0427 0308 ; [.1E64.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04B7 ; [.1E68.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B6 ; [.1E68.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04CC ; [.1E6C.0020.0002] # CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CB ; [.1E6C.0020.0008] # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04B9 ; [.1E70.0020.0002] # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04B8 ; [.1E70.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-A687 ; [.1E74.0020.0002] # CYRILLIC SMALL LETTER CCHE
-A686 ; [.1E74.0020.0008] # CYRILLIC CAPITAL LETTER CCHE
-04BD ; [.1E75.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BC ; [.1E75.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BF ; [.1E79.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04BE ; [.1E79.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-045F ; [.1E7D.0020.0002] # CYRILLIC SMALL LETTER DZHE
-040F ; [.1E7D.0020.0008] # CYRILLIC CAPITAL LETTER DZHE
-0448 ; [.1E81.0020.0002] # CYRILLIC SMALL LETTER SHA
-2DF2 ; [.1E81.0020.0004] # COMBINING CYRILLIC LETTER SHA
-0428 ; [.1E81.0020.0008] # CYRILLIC CAPITAL LETTER SHA
-A697 ; [.1E85.0020.0002] # CYRILLIC SMALL LETTER SHWE
-A696 ; [.1E85.0020.0008] # CYRILLIC CAPITAL LETTER SHWE
-0449 ; [.1E86.0020.0002] # CYRILLIC SMALL LETTER SHCHA
-2DF3 ; [.1E86.0020.0004] # COMBINING CYRILLIC LETTER SHCHA
-0429 ; [.1E86.0020.0008] # CYRILLIC CAPITAL LETTER SHCHA
-A64F ; [.1E8A.0020.0002] # CYRILLIC SMALL LETTER NEUTRAL YER
-A64E ; [.1E8A.0020.0008] # CYRILLIC CAPITAL LETTER NEUTRAL YER
-2E2F ; [.1E8B.0020.0002] # VERTICAL TILDE
-A67F ; [.1E8C.0020.0002] # CYRILLIC PAYEROK
-044A ; [.1E8D.0020.0002] # CYRILLIC SMALL LETTER HARD SIGN
-A678 ; [.1E8D.0020.0004] # COMBINING CYRILLIC LETTER HARD SIGN
-042A ; [.1E8D.0020.0008] # CYRILLIC CAPITAL LETTER HARD SIGN
-A69C ; [.1E8D.0020.0014] # MODIFIER LETTER CYRILLIC HARD SIGN
-A651 ; [.1E91.0020.0002] # CYRILLIC SMALL LETTER YERU WITH BACK YER
-A650 ; [.1E91.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
-044B ; [.1E92.0020.0002] # CYRILLIC SMALL LETTER YERU
-A679 ; [.1E92.0020.0004] # COMBINING CYRILLIC LETTER YERU
-042B ; [.1E92.0020.0008] # CYRILLIC CAPITAL LETTER YERU
-04F9 ; [.1E96.0020.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-044B 0308 ; [.1E96.0020.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E96.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-042B 0308 ; [.1E96.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-044C ; [.1E9A.0020.0002] # CYRILLIC SMALL LETTER SOFT SIGN
-A67A ; [.1E9A.0020.0004] # COMBINING CYRILLIC LETTER SOFT SIGN
-042C ; [.1E9A.0020.0008] # CYRILLIC CAPITAL LETTER SOFT SIGN
-A69D ; [.1E9A.0020.0014] # MODIFIER LETTER CYRILLIC SOFT SIGN
-048D ; [.1E9E.0020.0002] # CYRILLIC SMALL LETTER SEMISOFT SIGN
-048C ; [.1E9E.0020.0008] # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-0463 ; [.1EA2.0020.0002] # CYRILLIC SMALL LETTER YAT
-2DFA ; [.1EA2.0020.0004] # COMBINING CYRILLIC LETTER YAT
-0462 ; [.1EA2.0020.0008] # CYRILLIC CAPITAL LETTER YAT
-A653 ; [.1EA6.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED YAT
-A652 ; [.1EA6.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED YAT
-044D ; [.1EA7.0020.0002] # CYRILLIC SMALL LETTER E
-042D ; [.1EA7.0020.0008] # CYRILLIC CAPITAL LETTER E
-04ED ; [.1EAB.0020.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-044D 0308 ; [.1EAB.0020.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EAB.0020.0008] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-042D 0308 ; [.1EAB.0020.0008] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-044E ; [.1EAF.0020.0002] # CYRILLIC SMALL LETTER YU
-2DFB ; [.1EAF.0020.0004] # COMBINING CYRILLIC LETTER YU
-042E ; [.1EAF.0020.0008] # CYRILLIC CAPITAL LETTER YU
-A655 ; [.1EB3.0020.0002] # CYRILLIC SMALL LETTER REVERSED YU
-A654 ; [.1EB3.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED YU
-A657 ; [.1EB4.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED A
-2DFC ; [.1EB4.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED A
-A656 ; [.1EB4.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED A
-044F ; [.1EB5.0020.0002] # CYRILLIC SMALL LETTER YA
-042F ; [.1EB5.0020.0008] # CYRILLIC CAPITAL LETTER YA
-0519 ; [.1EB9.0020.0002] # CYRILLIC SMALL LETTER YAE
-0518 ; [.1EB9.0020.0008] # CYRILLIC CAPITAL LETTER YAE
-0465 ; [.1EBA.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED E
-A69F ; [.1EBA.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED E
-0464 ; [.1EBA.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED E
-0467 ; [.1EBE.0020.0002] # CYRILLIC SMALL LETTER LITTLE YUS
-2DFD ; [.1EBE.0020.0004] # COMBINING CYRILLIC LETTER LITTLE YUS
-0466 ; [.1EBE.0020.0008] # CYRILLIC CAPITAL LETTER LITTLE YUS
-A659 ; [.1EC2.0020.0002] # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
-A658 ; [.1EC2.0020.0008] # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
-046B ; [.1EC3.0020.0002] # CYRILLIC SMALL LETTER BIG YUS
-2DFE ; [.1EC3.0020.0004] # COMBINING CYRILLIC LETTER BIG YUS
-046A ; [.1EC3.0020.0008] # CYRILLIC CAPITAL LETTER BIG YUS
-A65B ; [.1EC7.0020.0002] # CYRILLIC SMALL LETTER BLENDED YUS
-A65A ; [.1EC7.0020.0008] # CYRILLIC CAPITAL LETTER BLENDED YUS
-0469 ; [.1EC8.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-0468 ; [.1EC8.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-A65D ; [.1ECC.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
-A65C ; [.1ECC.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
-046D ; [.1ECD.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-2DFF ; [.1ECD.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-046C ; [.1ECD.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046F ; [.1ED1.0020.0002] # CYRILLIC SMALL LETTER KSI
-046E ; [.1ED1.0020.0008] # CYRILLIC CAPITAL LETTER KSI
-0471 ; [.1ED5.0020.0002] # CYRILLIC SMALL LETTER PSI
-0470 ; [.1ED5.0020.0008] # CYRILLIC CAPITAL LETTER PSI
-0473 ; [.1ED9.0020.0002] # CYRILLIC SMALL LETTER FITA
-2DF4 ; [.1ED9.0020.0004] # COMBINING CYRILLIC LETTER FITA
-0472 ; [.1ED9.0020.0008] # CYRILLIC CAPITAL LETTER FITA
-0475 ; [.1EDD.0020.0002] # CYRILLIC SMALL LETTER IZHITSA
-0474 ; [.1EDD.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA
-0477 ; [.1EE1.0020.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0475 030F ; [.1EE1.0020.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EE1.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0474 030F ; [.1EE1.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-A65F ; [.1EE5.0020.0002] # CYRILLIC SMALL LETTER YN
-A65E ; [.1EE5.0020.0008] # CYRILLIC CAPITAL LETTER YN
-04A9 ; [.1EE6.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN HA
-04A8 ; [.1EE6.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN HA
-051D ; [.1EEA.0020.0002] # CYRILLIC SMALL LETTER WE
-051C ; [.1EEA.0020.0008] # CYRILLIC CAPITAL LETTER WE
-04CF ; [.1EEB.0020.0002] # CYRILLIC SMALL LETTER PALOCHKA
-04C0 ; [.1EEB.0020.0008] # CYRILLIC LETTER PALOCHKA
-2C30 ; [.1EEF.0020.0002] # GLAGOLITIC SMALL LETTER AZU
-2C00 ; [.1EEF.0020.0008] # GLAGOLITIC CAPITAL LETTER AZU
-2C31 ; [.1EF0.0020.0002] # GLAGOLITIC SMALL LETTER BUKY
-2C01 ; [.1EF0.0020.0008] # GLAGOLITIC CAPITAL LETTER BUKY
-2C32 ; [.1EF1.0020.0002] # GLAGOLITIC SMALL LETTER VEDE
-2C02 ; [.1EF1.0020.0008] # GLAGOLITIC CAPITAL LETTER VEDE
-2C33 ; [.1EF2.0020.0002] # GLAGOLITIC SMALL LETTER GLAGOLI
-2C03 ; [.1EF2.0020.0008] # GLAGOLITIC CAPITAL LETTER GLAGOLI
-2C34 ; [.1EF3.0020.0002] # GLAGOLITIC SMALL LETTER DOBRO
-2C04 ; [.1EF3.0020.0008] # GLAGOLITIC CAPITAL LETTER DOBRO
-2C35 ; [.1EF4.0020.0002] # GLAGOLITIC SMALL LETTER YESTU
-2C05 ; [.1EF4.0020.0008] # GLAGOLITIC CAPITAL LETTER YESTU
-2C36 ; [.1EF5.0020.0002] # GLAGOLITIC SMALL LETTER ZHIVETE
-2C06 ; [.1EF5.0020.0008] # GLAGOLITIC CAPITAL LETTER ZHIVETE
-2C37 ; [.1EF6.0020.0002] # GLAGOLITIC SMALL LETTER DZELO
-2C07 ; [.1EF6.0020.0008] # GLAGOLITIC CAPITAL LETTER DZELO
-2C38 ; [.1EF7.0020.0002] # GLAGOLITIC SMALL LETTER ZEMLJA
-2C08 ; [.1EF7.0020.0008] # GLAGOLITIC CAPITAL LETTER ZEMLJA
-2C39 ; [.1EF8.0020.0002] # GLAGOLITIC SMALL LETTER IZHE
-2C09 ; [.1EF8.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHE
-2C3A ; [.1EF9.0020.0002] # GLAGOLITIC SMALL LETTER INITIAL IZHE
-2C0A ; [.1EF9.0020.0008] # GLAGOLITIC CAPITAL LETTER INITIAL IZHE
-2C3B ; [.1EFA.0020.0002] # GLAGOLITIC SMALL LETTER I
-2C0B ; [.1EFA.0020.0008] # GLAGOLITIC CAPITAL LETTER I
-2C3C ; [.1EFB.0020.0002] # GLAGOLITIC SMALL LETTER DJERVI
-2C0C ; [.1EFB.0020.0008] # GLAGOLITIC CAPITAL LETTER DJERVI
-2C3D ; [.1EFC.0020.0002] # GLAGOLITIC SMALL LETTER KAKO
-2C0D ; [.1EFC.0020.0008] # GLAGOLITIC CAPITAL LETTER KAKO
-2C3E ; [.1EFD.0020.0002] # GLAGOLITIC SMALL LETTER LJUDIJE
-2C0E ; [.1EFD.0020.0008] # GLAGOLITIC CAPITAL LETTER LJUDIJE
-2C3F ; [.1EFE.0020.0002] # GLAGOLITIC SMALL LETTER MYSLITE
-2C0F ; [.1EFE.0020.0008] # GLAGOLITIC CAPITAL LETTER MYSLITE
-2C40 ; [.1EFF.0020.0002] # GLAGOLITIC SMALL LETTER NASHI
-2C10 ; [.1EFF.0020.0008] # GLAGOLITIC CAPITAL LETTER NASHI
-2C41 ; [.1F00.0020.0002] # GLAGOLITIC SMALL LETTER ONU
-2C11 ; [.1F00.0020.0008] # GLAGOLITIC CAPITAL LETTER ONU
-2C42 ; [.1F01.0020.0002] # GLAGOLITIC SMALL LETTER POKOJI
-2C12 ; [.1F01.0020.0008] # GLAGOLITIC CAPITAL LETTER POKOJI
-2C43 ; [.1F02.0020.0002] # GLAGOLITIC SMALL LETTER RITSI
-2C13 ; [.1F02.0020.0008] # GLAGOLITIC CAPITAL LETTER RITSI
-2C44 ; [.1F03.0020.0002] # GLAGOLITIC SMALL LETTER SLOVO
-2C14 ; [.1F03.0020.0008] # GLAGOLITIC CAPITAL LETTER SLOVO
-2C45 ; [.1F04.0020.0002] # GLAGOLITIC SMALL LETTER TVRIDO
-2C15 ; [.1F04.0020.0008] # GLAGOLITIC CAPITAL LETTER TVRIDO
-2C46 ; [.1F05.0020.0002] # GLAGOLITIC SMALL LETTER UKU
-2C16 ; [.1F05.0020.0008] # GLAGOLITIC CAPITAL LETTER UKU
-2C47 ; [.1F06.0020.0002] # GLAGOLITIC SMALL LETTER FRITU
-2C17 ; [.1F06.0020.0008] # GLAGOLITIC CAPITAL LETTER FRITU
-2C48 ; [.1F07.0020.0002] # GLAGOLITIC SMALL LETTER HERU
-2C18 ; [.1F07.0020.0008] # GLAGOLITIC CAPITAL LETTER HERU
-2C49 ; [.1F08.0020.0002] # GLAGOLITIC SMALL LETTER OTU
-2C19 ; [.1F08.0020.0008] # GLAGOLITIC CAPITAL LETTER OTU
-2C4A ; [.1F09.0020.0002] # GLAGOLITIC SMALL LETTER PE
-2C1A ; [.1F09.0020.0008] # GLAGOLITIC CAPITAL LETTER PE
-2C4B ; [.1F0A.0020.0002] # GLAGOLITIC SMALL LETTER SHTA
-2C1B ; [.1F0A.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTA
-2C4C ; [.1F0B.0020.0002] # GLAGOLITIC SMALL LETTER TSI
-2C1C ; [.1F0B.0020.0008] # GLAGOLITIC CAPITAL LETTER TSI
-2C4D ; [.1F0C.0020.0002] # GLAGOLITIC SMALL LETTER CHRIVI
-2C1D ; [.1F0C.0020.0008] # GLAGOLITIC CAPITAL LETTER CHRIVI
-2C4E ; [.1F0D.0020.0002] # GLAGOLITIC SMALL LETTER SHA
-2C1E ; [.1F0D.0020.0008] # GLAGOLITIC CAPITAL LETTER SHA
-2C4F ; [.1F0E.0020.0002] # GLAGOLITIC SMALL LETTER YERU
-2C1F ; [.1F0E.0020.0008] # GLAGOLITIC CAPITAL LETTER YERU
-2C50 ; [.1F0F.0020.0002] # GLAGOLITIC SMALL LETTER YERI
-2C20 ; [.1F0F.0020.0008] # GLAGOLITIC CAPITAL LETTER YERI
-2C51 ; [.1F10.0020.0002] # GLAGOLITIC SMALL LETTER YATI
-2C21 ; [.1F10.0020.0008] # GLAGOLITIC CAPITAL LETTER YATI
-2C52 ; [.1F11.0020.0002] # GLAGOLITIC SMALL LETTER SPIDERY HA
-2C22 ; [.1F11.0020.0008] # GLAGOLITIC CAPITAL LETTER SPIDERY HA
-2C53 ; [.1F12.0020.0002] # GLAGOLITIC SMALL LETTER YU
-2C23 ; [.1F12.0020.0008] # GLAGOLITIC CAPITAL LETTER YU
-2C54 ; [.1F13.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS
-2C24 ; [.1F13.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS
-2C55 ; [.1F14.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
-2C25 ; [.1F14.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
-2C56 ; [.1F15.0020.0002] # GLAGOLITIC SMALL LETTER YO
-2C26 ; [.1F15.0020.0008] # GLAGOLITIC CAPITAL LETTER YO
-2C57 ; [.1F16.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
-2C27 ; [.1F16.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
-2C58 ; [.1F17.0020.0002] # GLAGOLITIC SMALL LETTER BIG YUS
-2C28 ; [.1F17.0020.0008] # GLAGOLITIC CAPITAL LETTER BIG YUS
-2C59 ; [.1F18.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED BIG YUS
-2C29 ; [.1F18.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
-2C5A ; [.1F19.0020.0002] # GLAGOLITIC SMALL LETTER FITA
-2C2A ; [.1F19.0020.0008] # GLAGOLITIC CAPITAL LETTER FITA
-2C5B ; [.1F1A.0020.0002] # GLAGOLITIC SMALL LETTER IZHITSA
-2C2B ; [.1F1A.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHITSA
-2C5C ; [.1F1B.0020.0002] # GLAGOLITIC SMALL LETTER SHTAPIC
-2C2C ; [.1F1B.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTAPIC
-2C5D ; [.1F1C.0020.0002] # GLAGOLITIC SMALL LETTER TROKUTASTI A
-2C2D ; [.1F1C.0020.0008] # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
-2C5E ; [.1F1D.0020.0002] # GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C2E ; [.1F1D.0020.0008] # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-10350 ; [.1F1E.0020.0002] # OLD PERMIC LETTER AN
-10376 ; [.1F1E.0020.0004] # COMBINING OLD PERMIC LETTER AN
-10351 ; [.1F1F.0020.0002] # OLD PERMIC LETTER BUR
-10352 ; [.1F20.0020.0002] # OLD PERMIC LETTER GAI
-10353 ; [.1F21.0020.0002] # OLD PERMIC LETTER DOI
-10377 ; [.1F21.0020.0004] # COMBINING OLD PERMIC LETTER DOI
-10354 ; [.1F22.0020.0002] # OLD PERMIC LETTER E
-10355 ; [.1F23.0020.0002] # OLD PERMIC LETTER ZHOI
-10356 ; [.1F24.0020.0002] # OLD PERMIC LETTER DZHOI
-10357 ; [.1F25.0020.0002] # OLD PERMIC LETTER ZATA
-10378 ; [.1F25.0020.0004] # COMBINING OLD PERMIC LETTER ZATA
-10358 ; [.1F26.0020.0002] # OLD PERMIC LETTER DZITA
-10359 ; [.1F27.0020.0002] # OLD PERMIC LETTER I
-1035A ; [.1F28.0020.0002] # OLD PERMIC LETTER KOKE
-1035B ; [.1F29.0020.0002] # OLD PERMIC LETTER LEI
-1035C ; [.1F2A.0020.0002] # OLD PERMIC LETTER MENOE
-1035D ; [.1F2B.0020.0002] # OLD PERMIC LETTER NENOE
-10379 ; [.1F2B.0020.0004] # COMBINING OLD PERMIC LETTER NENOE
-1035E ; [.1F2C.0020.0002] # OLD PERMIC LETTER VOOI
-1035F ; [.1F2D.0020.0002] # OLD PERMIC LETTER PEEI
-10360 ; [.1F2E.0020.0002] # OLD PERMIC LETTER REI
-10361 ; [.1F2F.0020.0002] # OLD PERMIC LETTER SII
-1037A ; [.1F2F.0020.0004] # COMBINING OLD PERMIC LETTER SII
-10362 ; [.1F30.0020.0002] # OLD PERMIC LETTER TAI
-10363 ; [.1F31.0020.0002] # OLD PERMIC LETTER U
-10364 ; [.1F32.0020.0002] # OLD PERMIC LETTER CHERY
-10365 ; [.1F33.0020.0002] # OLD PERMIC LETTER SHOOI
-10366 ; [.1F34.0020.0002] # OLD PERMIC LETTER SHCHOOI
-10367 ; [.1F35.0020.0002] # OLD PERMIC LETTER YRY
-10368 ; [.1F36.0020.0002] # OLD PERMIC LETTER YERU
-10369 ; [.1F37.0020.0002] # OLD PERMIC LETTER O
-1036A ; [.1F38.0020.0002] # OLD PERMIC LETTER OO
-1036B ; [.1F39.0020.0002] # OLD PERMIC LETTER EF
-1036C ; [.1F3A.0020.0002] # OLD PERMIC LETTER HA
-1036D ; [.1F3B.0020.0002] # OLD PERMIC LETTER TSIU
-1036E ; [.1F3C.0020.0002] # OLD PERMIC LETTER VER
-1036F ; [.1F3D.0020.0002] # OLD PERMIC LETTER YER
-10370 ; [.1F3E.0020.0002] # OLD PERMIC LETTER YERI
-10371 ; [.1F3F.0020.0002] # OLD PERMIC LETTER YAT
-10372 ; [.1F40.0020.0002] # OLD PERMIC LETTER IE
-10373 ; [.1F41.0020.0002] # OLD PERMIC LETTER YU
-10374 ; [.1F42.0020.0002] # OLD PERMIC LETTER YA
-10375 ; [.1F43.0020.0002] # OLD PERMIC LETTER IA
-10D0 ; [.1F44.0020.0002] # GEORGIAN LETTER AN
-2D00 ; [.1F45.0020.0002] # GEORGIAN SMALL LETTER AN
-10A0 ; [.1F45.0020.0008] # GEORGIAN CAPITAL LETTER AN
-10D1 ; [.1F46.0020.0002] # GEORGIAN LETTER BAN
-2D01 ; [.1F47.0020.0002] # GEORGIAN SMALL LETTER BAN
-10A1 ; [.1F47.0020.0008] # GEORGIAN CAPITAL LETTER BAN
-10D2 ; [.1F48.0020.0002] # GEORGIAN LETTER GAN
-2D02 ; [.1F49.0020.0002] # GEORGIAN SMALL LETTER GAN
-10A2 ; [.1F49.0020.0008] # GEORGIAN CAPITAL LETTER GAN
-10D3 ; [.1F4A.0020.0002] # GEORGIAN LETTER DON
-2D03 ; [.1F4B.0020.0002] # GEORGIAN SMALL LETTER DON
-10A3 ; [.1F4B.0020.0008] # GEORGIAN CAPITAL LETTER DON
-10D4 ; [.1F4C.0020.0002] # GEORGIAN LETTER EN
-2D04 ; [.1F4D.0020.0002] # GEORGIAN SMALL LETTER EN
-10A4 ; [.1F4D.0020.0008] # GEORGIAN CAPITAL LETTER EN
-10D5 ; [.1F4E.0020.0002] # GEORGIAN LETTER VIN
-2D05 ; [.1F4F.0020.0002] # GEORGIAN SMALL LETTER VIN
-10A5 ; [.1F4F.0020.0008] # GEORGIAN CAPITAL LETTER VIN
-10D6 ; [.1F50.0020.0002] # GEORGIAN LETTER ZEN
-2D06 ; [.1F51.0020.0002] # GEORGIAN SMALL LETTER ZEN
-10A6 ; [.1F51.0020.0008] # GEORGIAN CAPITAL LETTER ZEN
-10F1 ; [.1F52.0020.0002] # GEORGIAN LETTER HE
-2D21 ; [.1F53.0020.0002] # GEORGIAN SMALL LETTER HE
-10C1 ; [.1F53.0020.0008] # GEORGIAN CAPITAL LETTER HE
-10D7 ; [.1F54.0020.0002] # GEORGIAN LETTER TAN
-2D07 ; [.1F55.0020.0002] # GEORGIAN SMALL LETTER TAN
-10A7 ; [.1F55.0020.0008] # GEORGIAN CAPITAL LETTER TAN
-10D8 ; [.1F56.0020.0002] # GEORGIAN LETTER IN
-2D08 ; [.1F57.0020.0002] # GEORGIAN SMALL LETTER IN
-10A8 ; [.1F57.0020.0008] # GEORGIAN CAPITAL LETTER IN
-10D9 ; [.1F58.0020.0002] # GEORGIAN LETTER KAN
-2D09 ; [.1F59.0020.0002] # GEORGIAN SMALL LETTER KAN
-10A9 ; [.1F59.0020.0008] # GEORGIAN CAPITAL LETTER KAN
-10DA ; [.1F5A.0020.0002] # GEORGIAN LETTER LAS
-2D0A ; [.1F5B.0020.0002] # GEORGIAN SMALL LETTER LAS
-10AA ; [.1F5B.0020.0008] # GEORGIAN CAPITAL LETTER LAS
-10DB ; [.1F5C.0020.0002] # GEORGIAN LETTER MAN
-2D0B ; [.1F5D.0020.0002] # GEORGIAN SMALL LETTER MAN
-10AB ; [.1F5D.0020.0008] # GEORGIAN CAPITAL LETTER MAN
-10DC ; [.1F5E.0020.0002] # GEORGIAN LETTER NAR
-10FC ; [.1F5E.0020.0014] # MODIFIER LETTER GEORGIAN NAR
-2D0C ; [.1F5F.0020.0002] # GEORGIAN SMALL LETTER NAR
-10AC ; [.1F5F.0020.0008] # GEORGIAN CAPITAL LETTER NAR
-10F2 ; [.1F60.0020.0002] # GEORGIAN LETTER HIE
-2D22 ; [.1F61.0020.0002] # GEORGIAN SMALL LETTER HIE
-10C2 ; [.1F61.0020.0008] # GEORGIAN CAPITAL LETTER HIE
-10DD ; [.1F62.0020.0002] # GEORGIAN LETTER ON
-2D0D ; [.1F63.0020.0002] # GEORGIAN SMALL LETTER ON
-10AD ; [.1F63.0020.0008] # GEORGIAN CAPITAL LETTER ON
-10DE ; [.1F64.0020.0002] # GEORGIAN LETTER PAR
-2D0E ; [.1F65.0020.0002] # GEORGIAN SMALL LETTER PAR
-10AE ; [.1F65.0020.0008] # GEORGIAN CAPITAL LETTER PAR
-10DF ; [.1F66.0020.0002] # GEORGIAN LETTER ZHAR
-2D0F ; [.1F67.0020.0002] # GEORGIAN SMALL LETTER ZHAR
-10AF ; [.1F67.0020.0008] # GEORGIAN CAPITAL LETTER ZHAR
-10E0 ; [.1F68.0020.0002] # GEORGIAN LETTER RAE
-2D10 ; [.1F69.0020.0002] # GEORGIAN SMALL LETTER RAE
-10B0 ; [.1F69.0020.0008] # GEORGIAN CAPITAL LETTER RAE
-10E1 ; [.1F6A.0020.0002] # GEORGIAN LETTER SAN
-2D11 ; [.1F6B.0020.0002] # GEORGIAN SMALL LETTER SAN
-10B1 ; [.1F6B.0020.0008] # GEORGIAN CAPITAL LETTER SAN
-10E2 ; [.1F6C.0020.0002] # GEORGIAN LETTER TAR
-2D12 ; [.1F6D.0020.0002] # GEORGIAN SMALL LETTER TAR
-10B2 ; [.1F6D.0020.0008] # GEORGIAN CAPITAL LETTER TAR
-10F3 ; [.1F6E.0020.0002] # GEORGIAN LETTER WE
-2D23 ; [.1F6F.0020.0002] # GEORGIAN SMALL LETTER WE
-10C3 ; [.1F6F.0020.0008] # GEORGIAN CAPITAL LETTER WE
-10E3 ; [.1F70.0020.0002] # GEORGIAN LETTER UN
-2D13 ; [.1F71.0020.0002] # GEORGIAN SMALL LETTER UN
-10B3 ; [.1F71.0020.0008] # GEORGIAN CAPITAL LETTER UN
-10E4 ; [.1F72.0020.0002] # GEORGIAN LETTER PHAR
-2D14 ; [.1F73.0020.0002] # GEORGIAN SMALL LETTER PHAR
-10B4 ; [.1F73.0020.0008] # GEORGIAN CAPITAL LETTER PHAR
-10E5 ; [.1F74.0020.0002] # GEORGIAN LETTER KHAR
-2D15 ; [.1F75.0020.0002] # GEORGIAN SMALL LETTER KHAR
-10B5 ; [.1F75.0020.0008] # GEORGIAN CAPITAL LETTER KHAR
-10E6 ; [.1F76.0020.0002] # GEORGIAN LETTER GHAN
-2D16 ; [.1F77.0020.0002] # GEORGIAN SMALL LETTER GHAN
-10B6 ; [.1F77.0020.0008] # GEORGIAN CAPITAL LETTER GHAN
-10E7 ; [.1F78.0020.0002] # GEORGIAN LETTER QAR
-2D17 ; [.1F79.0020.0002] # GEORGIAN SMALL LETTER QAR
-10B7 ; [.1F79.0020.0008] # GEORGIAN CAPITAL LETTER QAR
-10E8 ; [.1F7A.0020.0002] # GEORGIAN LETTER SHIN
-2D18 ; [.1F7B.0020.0002] # GEORGIAN SMALL LETTER SHIN
-10B8 ; [.1F7B.0020.0008] # GEORGIAN CAPITAL LETTER SHIN
-10E9 ; [.1F7C.0020.0002] # GEORGIAN LETTER CHIN
-2D19 ; [.1F7D.0020.0002] # GEORGIAN SMALL LETTER CHIN
-10B9 ; [.1F7D.0020.0008] # GEORGIAN CAPITAL LETTER CHIN
-10EA ; [.1F7E.0020.0002] # GEORGIAN LETTER CAN
-2D1A ; [.1F7F.0020.0002] # GEORGIAN SMALL LETTER CAN
-10BA ; [.1F7F.0020.0008] # GEORGIAN CAPITAL LETTER CAN
-10EB ; [.1F80.0020.0002] # GEORGIAN LETTER JIL
-2D1B ; [.1F81.0020.0002] # GEORGIAN SMALL LETTER JIL
-10BB ; [.1F81.0020.0008] # GEORGIAN CAPITAL LETTER JIL
-10EC ; [.1F82.0020.0002] # GEORGIAN LETTER CIL
-2D1C ; [.1F83.0020.0002] # GEORGIAN SMALL LETTER CIL
-10BC ; [.1F83.0020.0008] # GEORGIAN CAPITAL LETTER CIL
-10ED ; [.1F84.0020.0002] # GEORGIAN LETTER CHAR
-2D1D ; [.1F85.0020.0002] # GEORGIAN SMALL LETTER CHAR
-10BD ; [.1F85.0020.0008] # GEORGIAN CAPITAL LETTER CHAR
-10EE ; [.1F86.0020.0002] # GEORGIAN LETTER XAN
-2D1E ; [.1F87.0020.0002] # GEORGIAN SMALL LETTER XAN
-10BE ; [.1F87.0020.0008] # GEORGIAN CAPITAL LETTER XAN
-10F4 ; [.1F88.0020.0002] # GEORGIAN LETTER HAR
-2D24 ; [.1F89.0020.0002] # GEORGIAN SMALL LETTER HAR
-10C4 ; [.1F89.0020.0008] # GEORGIAN CAPITAL LETTER HAR
-10EF ; [.1F8A.0020.0002] # GEORGIAN LETTER JHAN
-2D1F ; [.1F8B.0020.0002] # GEORGIAN SMALL LETTER JHAN
-10BF ; [.1F8B.0020.0008] # GEORGIAN CAPITAL LETTER JHAN
-10F0 ; [.1F8C.0020.0002] # GEORGIAN LETTER HAE
-2D20 ; [.1F8D.0020.0002] # GEORGIAN SMALL LETTER HAE
-10C0 ; [.1F8D.0020.0008] # GEORGIAN CAPITAL LETTER HAE
-10F5 ; [.1F8E.0020.0002] # GEORGIAN LETTER HOE
-2D25 ; [.1F8F.0020.0002] # GEORGIAN SMALL LETTER HOE
-10C5 ; [.1F8F.0020.0008] # GEORGIAN CAPITAL LETTER HOE
-10F6 ; [.1F90.0020.0002] # GEORGIAN LETTER FI
-10F7 ; [.1F91.0020.0002] # GEORGIAN LETTER YN
-2D27 ; [.1F92.0020.0002] # GEORGIAN SMALL LETTER YN
-10C7 ; [.1F92.0020.0008] # GEORGIAN CAPITAL LETTER YN
-10F8 ; [.1F93.0020.0002] # GEORGIAN LETTER ELIFI
-10F9 ; [.1F94.0020.0002] # GEORGIAN LETTER TURNED GAN
-10FA ; [.1F95.0020.0002] # GEORGIAN LETTER AIN
-10FD ; [.1F96.0020.0002] # GEORGIAN LETTER AEN
-2D2D ; [.1F97.0020.0002] # GEORGIAN SMALL LETTER AEN
-10CD ; [.1F97.0020.0008] # GEORGIAN CAPITAL LETTER AEN
-10FE ; [.1F98.0020.0002] # GEORGIAN LETTER HARD SIGN
-10FF ; [.1F99.0020.0002] # GEORGIAN LETTER LABIAL SIGN
-0561 ; [.1F9A.0020.0002] # ARMENIAN SMALL LETTER AYB
-0531 ; [.1F9A.0020.0008] # ARMENIAN CAPITAL LETTER AYB
-0562 ; [.1F9B.0020.0002] # ARMENIAN SMALL LETTER BEN
-0532 ; [.1F9B.0020.0008] # ARMENIAN CAPITAL LETTER BEN
-0563 ; [.1F9C.0020.0002] # ARMENIAN SMALL LETTER GIM
-0533 ; [.1F9C.0020.0008] # ARMENIAN CAPITAL LETTER GIM
-0564 ; [.1F9D.0020.0002] # ARMENIAN SMALL LETTER DA
-0534 ; [.1F9D.0020.0008] # ARMENIAN CAPITAL LETTER DA
-0565 ; [.1F9E.0020.0002] # ARMENIAN SMALL LETTER ECH
-0535 ; [.1F9E.0020.0008] # ARMENIAN CAPITAL LETTER ECH
-0587 ; [.1F9E.0020.0004][.1FBB.0020.0004] # ARMENIAN SMALL LIGATURE ECH YIWN
-0566 ; [.1F9F.0020.0002] # ARMENIAN SMALL LETTER ZA
-0536 ; [.1F9F.0020.0008] # ARMENIAN CAPITAL LETTER ZA
-0567 ; [.1FA0.0020.0002] # ARMENIAN SMALL LETTER EH
-0537 ; [.1FA0.0020.0008] # ARMENIAN CAPITAL LETTER EH
-0568 ; [.1FA1.0020.0002] # ARMENIAN SMALL LETTER ET
-0538 ; [.1FA1.0020.0008] # ARMENIAN CAPITAL LETTER ET
-0569 ; [.1FA2.0020.0002] # ARMENIAN SMALL LETTER TO
-0539 ; [.1FA2.0020.0008] # ARMENIAN CAPITAL LETTER TO
-056A ; [.1FA3.0020.0002] # ARMENIAN SMALL LETTER ZHE
-053A ; [.1FA3.0020.0008] # ARMENIAN CAPITAL LETTER ZHE
-056B ; [.1FA4.0020.0002] # ARMENIAN SMALL LETTER INI
-053B ; [.1FA4.0020.0008] # ARMENIAN CAPITAL LETTER INI
-056C ; [.1FA5.0020.0002] # ARMENIAN SMALL LETTER LIWN
-053C ; [.1FA5.0020.0008] # ARMENIAN CAPITAL LETTER LIWN
-056D ; [.1FA6.0020.0002] # ARMENIAN SMALL LETTER XEH
-053D ; [.1FA6.0020.0008] # ARMENIAN CAPITAL LETTER XEH
-056E ; [.1FA7.0020.0002] # ARMENIAN SMALL LETTER CA
-053E ; [.1FA7.0020.0008] # ARMENIAN CAPITAL LETTER CA
-056F ; [.1FA8.0020.0002] # ARMENIAN SMALL LETTER KEN
-053F ; [.1FA8.0020.0008] # ARMENIAN CAPITAL LETTER KEN
-0570 ; [.1FA9.0020.0002] # ARMENIAN SMALL LETTER HO
-0540 ; [.1FA9.0020.0008] # ARMENIAN CAPITAL LETTER HO
-0571 ; [.1FAA.0020.0002] # ARMENIAN SMALL LETTER JA
-0541 ; [.1FAA.0020.0008] # ARMENIAN CAPITAL LETTER JA
-0572 ; [.1FAB.0020.0002] # ARMENIAN SMALL LETTER GHAD
-0542 ; [.1FAB.0020.0008] # ARMENIAN CAPITAL LETTER GHAD
-0573 ; [.1FAC.0020.0002] # ARMENIAN SMALL LETTER CHEH
-0543 ; [.1FAC.0020.0008] # ARMENIAN CAPITAL LETTER CHEH
-0574 ; [.1FAD.0020.0002] # ARMENIAN SMALL LETTER MEN
-0544 ; [.1FAD.0020.0008] # ARMENIAN CAPITAL LETTER MEN
-FB14 ; [.1FAD.0020.0004][.1F9E.0020.0004] # ARMENIAN SMALL LIGATURE MEN ECH
-FB15 ; [.1FAD.0020.0004][.1FA4.0020.0004] # ARMENIAN SMALL LIGATURE MEN INI
-FB17 ; [.1FAD.0020.0004][.1FA6.0020.0004] # ARMENIAN SMALL LIGATURE MEN XEH
-FB13 ; [.1FAD.0020.0004][.1FAF.0020.0004] # ARMENIAN SMALL LIGATURE MEN NOW
-0575 ; [.1FAE.0020.0002] # ARMENIAN SMALL LETTER YI
-0545 ; [.1FAE.0020.0008] # ARMENIAN CAPITAL LETTER YI
-0576 ; [.1FAF.0020.0002] # ARMENIAN SMALL LETTER NOW
-0546 ; [.1FAF.0020.0008] # ARMENIAN CAPITAL LETTER NOW
-0577 ; [.1FB0.0020.0002] # ARMENIAN SMALL LETTER SHA
-0547 ; [.1FB0.0020.0008] # ARMENIAN CAPITAL LETTER SHA
-0578 ; [.1FB1.0020.0002] # ARMENIAN SMALL LETTER VO
-0548 ; [.1FB1.0020.0008] # ARMENIAN CAPITAL LETTER VO
-0579 ; [.1FB2.0020.0002] # ARMENIAN SMALL LETTER CHA
-0549 ; [.1FB2.0020.0008] # ARMENIAN CAPITAL LETTER CHA
-057A ; [.1FB3.0020.0002] # ARMENIAN SMALL LETTER PEH
-054A ; [.1FB3.0020.0008] # ARMENIAN CAPITAL LETTER PEH
-057B ; [.1FB4.0020.0002] # ARMENIAN SMALL LETTER JHEH
-054B ; [.1FB4.0020.0008] # ARMENIAN CAPITAL LETTER JHEH
-057C ; [.1FB5.0020.0002] # ARMENIAN SMALL LETTER RA
-054C ; [.1FB5.0020.0008] # ARMENIAN CAPITAL LETTER RA
-057D ; [.1FB6.0020.0002] # ARMENIAN SMALL LETTER SEH
-054D ; [.1FB6.0020.0008] # ARMENIAN CAPITAL LETTER SEH
-057E ; [.1FB7.0020.0002] # ARMENIAN SMALL LETTER VEW
-054E ; [.1FB7.0020.0008] # ARMENIAN CAPITAL LETTER VEW
-FB16 ; [.1FB7.0020.0004][.1FAF.0020.0004] # ARMENIAN SMALL LIGATURE VEW NOW
-057F ; [.1FB8.0020.0002] # ARMENIAN SMALL LETTER TIWN
-054F ; [.1FB8.0020.0008] # ARMENIAN CAPITAL LETTER TIWN
-0580 ; [.1FB9.0020.0002] # ARMENIAN SMALL LETTER REH
-0550 ; [.1FB9.0020.0008] # ARMENIAN CAPITAL LETTER REH
-0581 ; [.1FBA.0020.0002] # ARMENIAN SMALL LETTER CO
-0551 ; [.1FBA.0020.0008] # ARMENIAN CAPITAL LETTER CO
-0582 ; [.1FBB.0020.0002] # ARMENIAN SMALL LETTER YIWN
-0552 ; [.1FBB.0020.0008] # ARMENIAN CAPITAL LETTER YIWN
-0583 ; [.1FBC.0020.0002] # ARMENIAN SMALL LETTER PIWR
-0553 ; [.1FBC.0020.0008] # ARMENIAN CAPITAL LETTER PIWR
-0584 ; [.1FBD.0020.0002] # ARMENIAN SMALL LETTER KEH
-0554 ; [.1FBD.0020.0008] # ARMENIAN CAPITAL LETTER KEH
-0585 ; [.1FBE.0020.0002] # ARMENIAN SMALL LETTER OH
-0555 ; [.1FBE.0020.0008] # ARMENIAN CAPITAL LETTER OH
-0586 ; [.1FBF.0020.0002] # ARMENIAN SMALL LETTER FEH
-0556 ; [.1FBF.0020.0008] # ARMENIAN CAPITAL LETTER FEH
-0559 ; [.1FC0.0020.0002] # ARMENIAN MODIFIER LETTER LEFT HALF RING
-05D0 ; [.1FC1.0020.0002] # HEBREW LETTER ALEF
-2135 ; [.1FC1.0020.0004] # ALEF SYMBOL
-FB21 ; [.1FC1.0020.0005] # HEBREW LETTER WIDE ALEF
-FB2E ; [.1FC1.0020.0002][.0000.0059.0002] # HEBREW LETTER ALEF WITH PATAH
-FB2F ; [.1FC1.0020.0002][.0000.005A.0002] # HEBREW LETTER ALEF WITH QAMATS
-FB30 ; [.1FC1.0020.0002][.0000.005F.0002] # HEBREW LETTER ALEF WITH MAPIQ
-FB4F ; [.1FC1.0020.0004][.1FCC.0020.0004] # HEBREW LIGATURE ALEF LAMED
-05D1 ; [.1FC2.0020.0002] # HEBREW LETTER BET
-2136 ; [.1FC2.0020.0004] # BET SYMBOL
-FB31 ; [.1FC2.0020.0002][.0000.005F.0002] # HEBREW LETTER BET WITH DAGESH
-FB4C ; [.1FC2.0020.0002][.0000.0060.0002] # HEBREW LETTER BET WITH RAFE
-05D2 ; [.1FC3.0020.0002] # HEBREW LETTER GIMEL
-2137 ; [.1FC3.0020.0004] # GIMEL SYMBOL
-FB32 ; [.1FC3.0020.0002][.0000.005F.0002] # HEBREW LETTER GIMEL WITH DAGESH
-05D3 ; [.1FC4.0020.0002] # HEBREW LETTER DALET
-2138 ; [.1FC4.0020.0004] # DALET SYMBOL
-FB22 ; [.1FC4.0020.0005] # HEBREW LETTER WIDE DALET
-FB33 ; [.1FC4.0020.0002][.0000.005F.0002] # HEBREW LETTER DALET WITH DAGESH
-05D4 ; [.1FC5.0020.0002] # HEBREW LETTER HE
-FB23 ; [.1FC5.0020.0005] # HEBREW LETTER WIDE HE
-FB34 ; [.1FC5.0020.0002][.0000.005F.0002] # HEBREW LETTER HE WITH MAPIQ
-05D5 ; [.1FC6.0020.0002] # HEBREW LETTER VAV
-FB4B ; [.1FC6.0020.0002][.0000.005B.0002] # HEBREW LETTER VAV WITH HOLAM
-FB35 ; [.1FC6.0020.0002][.0000.005F.0002] # HEBREW LETTER VAV WITH DAGESH
-05F0 ; [.1FC6.0020.0004][.1FC6.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE VAV
-05F1 ; [.1FC6.0020.0004][.1FCA.0020.0004] # HEBREW LIGATURE YIDDISH VAV YOD
-05D6 ; [.1FC7.0020.0002] # HEBREW LETTER ZAYIN
-FB36 ; [.1FC7.0020.0002][.0000.005F.0002] # HEBREW LETTER ZAYIN WITH DAGESH
-05D7 ; [.1FC8.0020.0002] # HEBREW LETTER HET
-05D8 ; [.1FC9.0020.0002] # HEBREW LETTER TET
-FB38 ; [.1FC9.0020.0002][.0000.005F.0002] # HEBREW LETTER TET WITH DAGESH
-05D9 ; [.1FCA.0020.0002] # HEBREW LETTER YOD
-FB1D ; [.1FCA.0020.0002][.0000.0056.0002] # HEBREW LETTER YOD WITH HIRIQ
-FB39 ; [.1FCA.0020.0002][.0000.005F.0002] # HEBREW LETTER YOD WITH DAGESH
-05F2 ; [.1FCA.0020.0004][.1FCA.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE YOD
-FB1F ; [.1FCA.0020.0004][.1FCA.0020.0004][.0000.0059.0002] # HEBREW LIGATURE YIDDISH YOD YOD PATAH
-05DB ; [.1FCB.0020.0002] # HEBREW LETTER KAF
-FB24 ; [.1FCB.0020.0005] # HEBREW LETTER WIDE KAF
-05DA ; [.1FCB.0020.0019] # HEBREW LETTER FINAL KAF
-FB3B ; [.1FCB.0020.0002][.0000.005F.0002] # HEBREW LETTER KAF WITH DAGESH
-FB3A ; [.1FCB.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL KAF WITH DAGESH
-FB4D ; [.1FCB.0020.0002][.0000.0060.0002] # HEBREW LETTER KAF WITH RAFE
-05DC ; [.1FCC.0020.0002] # HEBREW LETTER LAMED
-FB25 ; [.1FCC.0020.0005] # HEBREW LETTER WIDE LAMED
-FB3C ; [.1FCC.0020.0002][.0000.005F.0002] # HEBREW LETTER LAMED WITH DAGESH
-05DE ; [.1FCD.0020.0002] # HEBREW LETTER MEM
-FB26 ; [.1FCD.0020.0005] # HEBREW LETTER WIDE FINAL MEM
-05DD ; [.1FCD.0020.0019] # HEBREW LETTER FINAL MEM
-FB3E ; [.1FCD.0020.0002][.0000.005F.0002] # HEBREW LETTER MEM WITH DAGESH
-05E0 ; [.1FCE.0020.0002] # HEBREW LETTER NUN
-05DF ; [.1FCE.0020.0019] # HEBREW LETTER FINAL NUN
-FB40 ; [.1FCE.0020.0002][.0000.005F.0002] # HEBREW LETTER NUN WITH DAGESH
-05E1 ; [.1FCF.0020.0002] # HEBREW LETTER SAMEKH
-FB41 ; [.1FCF.0020.0002][.0000.005F.0002] # HEBREW LETTER SAMEKH WITH DAGESH
-05E2 ; [.1FD0.0020.0002] # HEBREW LETTER AYIN
-FB20 ; [.1FD0.0020.0005] # HEBREW LETTER ALTERNATIVE AYIN
-05E4 ; [.1FD1.0020.0002] # HEBREW LETTER PE
-05E3 ; [.1FD1.0020.0019] # HEBREW LETTER FINAL PE
-FB44 ; [.1FD1.0020.0002][.0000.005F.0002] # HEBREW LETTER PE WITH DAGESH
-FB43 ; [.1FD1.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL PE WITH DAGESH
-FB4E ; [.1FD1.0020.0002][.0000.0060.0002] # HEBREW LETTER PE WITH RAFE
-05E6 ; [.1FD2.0020.0002] # HEBREW LETTER TSADI
-05E5 ; [.1FD2.0020.0019] # HEBREW LETTER FINAL TSADI
-FB46 ; [.1FD2.0020.0002][.0000.005F.0002] # HEBREW LETTER TSADI WITH DAGESH
-05E7 ; [.1FD3.0020.0002] # HEBREW LETTER QOF
-FB47 ; [.1FD3.0020.0002][.0000.005F.0002] # HEBREW LETTER QOF WITH DAGESH
-05E8 ; [.1FD4.0020.0002] # HEBREW LETTER RESH
-FB27 ; [.1FD4.0020.0005] # HEBREW LETTER WIDE RESH
-FB48 ; [.1FD4.0020.0002][.0000.005F.0002] # HEBREW LETTER RESH WITH DAGESH
-05E9 ; [.1FD5.0020.0002] # HEBREW LETTER SHIN
-FB2B ; [.1FD5.0020.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH SIN DOT
-FB2A ; [.1FD5.0020.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH SHIN DOT
-FB49 ; [.1FD5.0020.0002][.0000.005F.0002] # HEBREW LETTER SHIN WITH DAGESH
-FB2D ; [.1FD5.0020.0002][.0000.005F.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
-FB2C ; [.1FD5.0020.0002][.0000.005F.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
-05EA ; [.1FD6.0020.0002] # HEBREW LETTER TAV
-FB28 ; [.1FD6.0020.0005] # HEBREW LETTER WIDE TAV
-FB4A ; [.1FD6.0020.0002][.0000.005F.0002] # HEBREW LETTER TAV WITH DAGESH
-10900 ; [.1FD7.0020.0002] # PHOENICIAN LETTER ALF
-10901 ; [.1FD8.0020.0002] # PHOENICIAN LETTER BET
-10902 ; [.1FD9.0020.0002] # PHOENICIAN LETTER GAML
-10903 ; [.1FDA.0020.0002] # PHOENICIAN LETTER DELT
-10904 ; [.1FDB.0020.0002] # PHOENICIAN LETTER HE
-10905 ; [.1FDC.0020.0002] # PHOENICIAN LETTER WAU
-10906 ; [.1FDD.0020.0002] # PHOENICIAN LETTER ZAI
-10907 ; [.1FDE.0020.0002] # PHOENICIAN LETTER HET
-10908 ; [.1FDF.0020.0002] # PHOENICIAN LETTER TET
-10909 ; [.1FE0.0020.0002] # PHOENICIAN LETTER YOD
-1090A ; [.1FE1.0020.0002] # PHOENICIAN LETTER KAF
-1090B ; [.1FE2.0020.0002] # PHOENICIAN LETTER LAMD
-1090C ; [.1FE3.0020.0002] # PHOENICIAN LETTER MEM
-1090D ; [.1FE4.0020.0002] # PHOENICIAN LETTER NUN
-1090E ; [.1FE5.0020.0002] # PHOENICIAN LETTER SEMK
-1090F ; [.1FE6.0020.0002] # PHOENICIAN LETTER AIN
-10910 ; [.1FE7.0020.0002] # PHOENICIAN LETTER PE
-10911 ; [.1FE8.0020.0002] # PHOENICIAN LETTER SADE
-10912 ; [.1FE9.0020.0002] # PHOENICIAN LETTER QOF
-10913 ; [.1FEA.0020.0002] # PHOENICIAN LETTER ROSH
-10914 ; [.1FEB.0020.0002] # PHOENICIAN LETTER SHIN
-10915 ; [.1FEC.0020.0002] # PHOENICIAN LETTER TAU
-0800 ; [.1FED.0020.0002] # SAMARITAN LETTER ALAF
-0801 ; [.1FEE.0020.0002] # SAMARITAN LETTER BIT
-0802 ; [.1FEF.0020.0002] # SAMARITAN LETTER GAMAN
-0803 ; [.1FF0.0020.0002] # SAMARITAN LETTER DALAT
-0804 ; [.1FF1.0020.0002] # SAMARITAN LETTER IY
-0805 ; [.1FF2.0020.0002] # SAMARITAN LETTER BAA
-0806 ; [.1FF3.0020.0002] # SAMARITAN LETTER ZEN
-0807 ; [.1FF4.0020.0002] # SAMARITAN LETTER IT
-0808 ; [.1FF5.0020.0002] # SAMARITAN LETTER TIT
-0809 ; [.1FF6.0020.0002] # SAMARITAN LETTER YUT
-080A ; [.1FF7.0020.0002] # SAMARITAN LETTER KAAF
-080B ; [.1FF8.0020.0002] # SAMARITAN LETTER LABAT
-080C ; [.1FF9.0020.0002] # SAMARITAN LETTER MIM
-080D ; [.1FFA.0020.0002] # SAMARITAN LETTER NUN
-080E ; [.1FFB.0020.0002] # SAMARITAN LETTER SINGAAT
-080F ; [.1FFC.0020.0002] # SAMARITAN LETTER IN
-0810 ; [.1FFD.0020.0002] # SAMARITAN LETTER FI
-0811 ; [.1FFE.0020.0002] # SAMARITAN LETTER TSAADIY
-0812 ; [.1FFF.0020.0002] # SAMARITAN LETTER QUF
-0813 ; [.2000.0020.0002] # SAMARITAN LETTER RISH
-0814 ; [.2001.0020.0002] # SAMARITAN LETTER SHAN
-0815 ; [.2002.0020.0002] # SAMARITAN LETTER TAAF
-0816 ; [.2003.0020.0002] # SAMARITAN MARK IN
-0817 ; [.2004.0020.0002] # SAMARITAN MARK IN-ALAF
-081A ; [.2005.0020.0002] # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
-081B ; [.2006.0020.0002] # SAMARITAN MARK EPENTHETIC YUT
-0621 ; [.2007.0020.0002] # ARABIC LETTER HAMZA
-0674 ; [.2007.0020.0004] # ARABIC LETTER HIGH HAMZA
-FE80 ; [.2007.0020.001A] # ARABIC LETTER HAMZA ISOLATED FORM
-06FD ; [.2007.0020.0004][.0000.0109.0004] # ARABIC SIGN SINDHI AMPERSAND
-0622 ; [.2008.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.2008.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
-FE82 ; [.2008.0020.0019] # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-FE81 ; [.2008.0020.001A] # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-0623 ; [.2009.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0627 0654 ; [.2009.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-FE84 ; [.2009.0020.0019] # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-FE83 ; [.2009.0020.001A] # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-0672 ; [.200A.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0671 ; [.200B.0020.0002] # ARABIC LETTER ALEF WASLA
-FB51 ; [.200B.0020.0019] # ARABIC LETTER ALEF WASLA FINAL FORM
-FB50 ; [.200B.0020.001A] # ARABIC LETTER ALEF WASLA ISOLATED FORM
-0624 ; [.200C.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.200C.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
-FE86 ; [.200C.0020.0019] # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
-FE85 ; [.200C.0020.001A] # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-0625 ; [.200D.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0627 0655 ; [.200D.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
-FE88 ; [.200D.0020.0019] # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
-FE87 ; [.200D.0020.001A] # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
-0673 ; [.200E.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0773 ; [.200F.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0774 ; [.2010.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0626 ; [.2011.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.2011.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
-FE8B ; [.2011.0020.0017] # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-FE8C ; [.2011.0020.0018] # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
-FE8A ; [.2011.0020.0019] # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-FE89 ; [.2011.0020.001A] # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-FBEB ; [.2011.0020.0019][.2015.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
-FBEA ; [.2011.0020.001A][.2015.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
-FC97 ; [.2011.0020.0017][.202C.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
-FC00 ; [.2011.0020.001A][.202C.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
-FC98 ; [.2011.0020.0017][.2033.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
-FC01 ; [.2011.0020.001A][.2033.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
-FC99 ; [.2011.0020.0017][.2034.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
-FC64 ; [.2011.0020.0019][.204D.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
-FC65 ; [.2011.0020.0019][.204E.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
-FC9A ; [.2011.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
-FCDF ; [.2011.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
-FC66 ; [.2011.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
-FC02 ; [.2011.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
-FC67 ; [.2011.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
-FC9B ; [.2011.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
-FCE0 ; [.2011.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
-FBED ; [.2011.0020.0019][.20B7.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
-FBEC ; [.2011.0020.001A][.20B7.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
-FBEF ; [.2011.0020.0019][.20B8.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
-FBEE ; [.2011.0020.001A][.20B8.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
-FBF3 ; [.2011.0020.0019][.20BB.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
-FBF2 ; [.2011.0020.001A][.20BB.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
-FBF1 ; [.2011.0020.0019][.20BC.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
-FBF0 ; [.2011.0020.001A][.20BC.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
-FBF5 ; [.2011.0020.0019][.20BD.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
-FBF4 ; [.2011.0020.001A][.20BD.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
-FBFB ; [.2011.0020.0017][.20C6.0020.0017] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
-FBFA ; [.2011.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FC68 ; [.2011.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FBF9 ; [.2011.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC03 ; [.2011.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC69 ; [.2011.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
-FC04 ; [.2011.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
-FBF8 ; [.2011.0020.0017][.20CB.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
-FBF7 ; [.2011.0020.0019][.20CB.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
-FBF6 ; [.2011.0020.001A][.20CB.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
-08A8 ; [.2012.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE
-08A9 ; [.2013.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
-08AC ; [.2014.0020.0002] # ARABIC LETTER ROHINGYA YEH
-0627 ; [.2015.0020.0002] # ARABIC LETTER ALEF
-08AD ; [.2015.0020.0004] # ARABIC LETTER LOW ALEF
-1EE00 ; [.2015.0020.0005] # ARABIC MATHEMATICAL ALEF
-1EE80 ; [.2015.0020.0005] # ARABIC MATHEMATICAL LOOPED ALEF
-FE8E ; [.2015.0020.0019] # ARABIC LETTER ALEF FINAL FORM
-FE8D ; [.2015.0020.001A] # ARABIC LETTER ALEF ISOLATED FORM
-FD3C ; [.2015.0020.0019][.0000.006D.0019] # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
-FD3D ; [.2015.0020.001A][.0000.006D.001A] # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-0675 ; [.2015.0020.0004][.2007.0020.0004] # ARABIC LETTER HIGH HAMZA ALEF
-FDF3 ; [.2015.0020.001A][.208A.0020.001A][.2017.0020.001A][.204D.0020.001A] # ARABIC LIGATURE AKBAR ISOLATED FORM
-FDF2 ; [.2015.0020.001A][.209E.0020.001A][.209E.0020.001A][.20B2.0020.001A] # ARABIC LIGATURE ALLAH ISOLATED FORM
-066E ; [.2016.0020.0002] # ARABIC LETTER DOTLESS BEH
-1EE1C ; [.2016.0020.0005] # ARABIC MATHEMATICAL DOTLESS BEH
-1EE7C ; [.2016.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
-0628 ; [.2017.0020.0002] # ARABIC LETTER BEH
-1EE01 ; [.2017.0020.0005] # ARABIC MATHEMATICAL BEH
-1EE21 ; [.2017.0020.0005] # ARABIC MATHEMATICAL INITIAL BEH
-1EE61 ; [.2017.0020.0005] # ARABIC MATHEMATICAL STRETCHED BEH
-1EE81 ; [.2017.0020.0005] # ARABIC MATHEMATICAL LOOPED BEH
-1EEA1 ; [.2017.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
-FE91 ; [.2017.0020.0017] # ARABIC LETTER BEH INITIAL FORM
-FE92 ; [.2017.0020.0018] # ARABIC LETTER BEH MEDIAL FORM
-FE90 ; [.2017.0020.0019] # ARABIC LETTER BEH FINAL FORM
-FE8F ; [.2017.0020.001A] # ARABIC LETTER BEH ISOLATED FORM
-FC9C ; [.2017.0020.0017][.202C.0020.0017] # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
-FC05 ; [.2017.0020.001A][.202C.0020.001A] # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
-FC9D ; [.2017.0020.0017][.2033.0020.0017] # ARABIC LIGATURE BEH WITH HAH INITIAL FORM
-FC06 ; [.2017.0020.001A][.2033.0020.001A] # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
-FDC2 ; [.2017.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
-FC9E ; [.2017.0020.0017][.2034.0020.0017] # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
-FC07 ; [.2017.0020.001A][.2034.0020.001A] # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
-FD9E ; [.2017.0020.0019][.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
-FC6A ; [.2017.0020.0019][.204D.0020.0019] # ARABIC LIGATURE BEH WITH REH FINAL FORM
-FC6B ; [.2017.0020.0019][.204E.0020.0019] # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
-FC9F ; [.2017.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
-FCE1 ; [.2017.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
-FC6C ; [.2017.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE BEH WITH MEEM FINAL FORM
-FC08 ; [.2017.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
-FC6D ; [.2017.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE BEH WITH NOON FINAL FORM
-FCA0 ; [.2017.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE BEH WITH HEH INITIAL FORM
-FCE2 ; [.2017.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
-FC6E ; [.2017.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
-FC09 ; [.2017.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
-FC6F ; [.2017.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE BEH WITH YEH FINAL FORM
-FC0A ; [.2017.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
-067B ; [.2018.0020.0002] # ARABIC LETTER BEEH
-FB54 ; [.2018.0020.0017] # ARABIC LETTER BEEH INITIAL FORM
-FB55 ; [.2018.0020.0018] # ARABIC LETTER BEEH MEDIAL FORM
-FB53 ; [.2018.0020.0019] # ARABIC LETTER BEEH FINAL FORM
-FB52 ; [.2018.0020.001A] # ARABIC LETTER BEEH ISOLATED FORM
-067E ; [.2019.0020.0002] # ARABIC LETTER PEH
-FB58 ; [.2019.0020.0017] # ARABIC LETTER PEH INITIAL FORM
-FB59 ; [.2019.0020.0018] # ARABIC LETTER PEH MEDIAL FORM
-FB57 ; [.2019.0020.0019] # ARABIC LETTER PEH FINAL FORM
-FB56 ; [.2019.0020.001A] # ARABIC LETTER PEH ISOLATED FORM
-0680 ; [.201A.0020.0002] # ARABIC LETTER BEHEH
-FB5C ; [.201A.0020.0017] # ARABIC LETTER BEHEH INITIAL FORM
-FB5D ; [.201A.0020.0018] # ARABIC LETTER BEHEH MEDIAL FORM
-FB5B ; [.201A.0020.0019] # ARABIC LETTER BEHEH FINAL FORM
-FB5A ; [.201A.0020.001A] # ARABIC LETTER BEHEH ISOLATED FORM
-0750 ; [.201B.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
-0751 ; [.201C.0020.0002] # ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
-0752 ; [.201D.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
-0753 ; [.201E.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
-0754 ; [.201F.0020.0002] # ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
-0755 ; [.2020.0020.0002] # ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
-08A0 ; [.2021.0020.0002] # ARABIC LETTER BEH WITH SMALL V BELOW
-0756 ; [.2022.0020.0002] # ARABIC LETTER BEH WITH SMALL V
-08A1 ; [.2023.0020.0002] # ARABIC LETTER BEH WITH HAMZA ABOVE
-0629 ; [.2024.0020.0002] # ARABIC LETTER TEH MARBUTA
-FE94 ; [.2024.0020.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
-FE93 ; [.2024.0020.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-062A ; [.2025.0020.0002] # ARABIC LETTER TEH
-1EE15 ; [.2025.0020.0005] # ARABIC MATHEMATICAL TEH
-1EE35 ; [.2025.0020.0005] # ARABIC MATHEMATICAL INITIAL TEH
-1EE75 ; [.2025.0020.0005] # ARABIC MATHEMATICAL STRETCHED TEH
-1EE95 ; [.2025.0020.0005] # ARABIC MATHEMATICAL LOOPED TEH
-1EEB5 ; [.2025.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
-FE97 ; [.2025.0020.0017] # ARABIC LETTER TEH INITIAL FORM
-FE98 ; [.2025.0020.0018] # ARABIC LETTER TEH MEDIAL FORM
-FE96 ; [.2025.0020.0019] # ARABIC LETTER TEH FINAL FORM
-FE95 ; [.2025.0020.001A] # ARABIC LETTER TEH ISOLATED FORM
-FCA1 ; [.2025.0020.0017][.202C.0020.0017] # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
-FC0B ; [.2025.0020.001A][.202C.0020.001A] # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
-FD50 ; [.2025.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
-FDA0 ; [.2025.0020.0019][.202C.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD9F ; [.2025.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
-FCA2 ; [.2025.0020.0017][.2033.0020.0017] # ARABIC LIGATURE TEH WITH HAH INITIAL FORM
-FC0C ; [.2025.0020.001A][.2033.0020.001A] # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
-FD52 ; [.2025.0020.0017][.2033.0020.0017][.202C.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
-FD51 ; [.2025.0020.0019][.2033.0020.0019][.202C.0020.0019] # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
-FD53 ; [.2025.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
-FCA3 ; [.2025.0020.0017][.2034.0020.0017] # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
-FC0D ; [.2025.0020.001A][.2034.0020.001A] # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
-FD54 ; [.2025.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
-FDA2 ; [.2025.0020.0019][.2034.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA1 ; [.2025.0020.0019][.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
-FC70 ; [.2025.0020.0019][.204D.0020.0019] # ARABIC LIGATURE TEH WITH REH FINAL FORM
-FC71 ; [.2025.0020.0019][.204E.0020.0019] # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
-FCA4 ; [.2025.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
-FCE3 ; [.2025.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
-FC72 ; [.2025.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE TEH WITH MEEM FINAL FORM
-FC0E ; [.2025.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
-FD55 ; [.2025.0020.0017][.20A5.0020.0017][.202C.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
-FD56 ; [.2025.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
-FD57 ; [.2025.0020.0017][.20A5.0020.0017][.2034.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
-FDA4 ; [.2025.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA3 ; [.2025.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
-FC73 ; [.2025.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE TEH WITH NOON FINAL FORM
-FCA5 ; [.2025.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE TEH WITH HEH INITIAL FORM
-FCE4 ; [.2025.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
-FC74 ; [.2025.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
-FC0F ; [.2025.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
-FC75 ; [.2025.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TEH WITH YEH FINAL FORM
-FC10 ; [.2025.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
-062B ; [.2026.0020.0002] # ARABIC LETTER THEH
-1EE16 ; [.2026.0020.0005] # ARABIC MATHEMATICAL THEH
-1EE36 ; [.2026.0020.0005] # ARABIC MATHEMATICAL INITIAL THEH
-1EE76 ; [.2026.0020.0005] # ARABIC MATHEMATICAL STRETCHED THEH
-1EE96 ; [.2026.0020.0005] # ARABIC MATHEMATICAL LOOPED THEH
-1EEB6 ; [.2026.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
-FE9B ; [.2026.0020.0017] # ARABIC LETTER THEH INITIAL FORM
-FE9C ; [.2026.0020.0018] # ARABIC LETTER THEH MEDIAL FORM
-FE9A ; [.2026.0020.0019] # ARABIC LETTER THEH FINAL FORM
-FE99 ; [.2026.0020.001A] # ARABIC LETTER THEH ISOLATED FORM
-FC11 ; [.2026.0020.001A][.202C.0020.001A] # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
-FC76 ; [.2026.0020.0019][.204D.0020.0019] # ARABIC LIGATURE THEH WITH REH FINAL FORM
-FC77 ; [.2026.0020.0019][.204E.0020.0019] # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
-FCA6 ; [.2026.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
-FCE5 ; [.2026.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
-FC78 ; [.2026.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE THEH WITH MEEM FINAL FORM
-FC12 ; [.2026.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
-FC79 ; [.2026.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE THEH WITH NOON FINAL FORM
-FCE6 ; [.2026.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
-FC7A ; [.2026.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
-FC13 ; [.2026.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
-FC7B ; [.2026.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE THEH WITH YEH FINAL FORM
-FC14 ; [.2026.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
-0679 ; [.2027.0020.0002] # ARABIC LETTER TTEH
-FB68 ; [.2027.0020.0017] # ARABIC LETTER TTEH INITIAL FORM
-FB69 ; [.2027.0020.0018] # ARABIC LETTER TTEH MEDIAL FORM
-FB67 ; [.2027.0020.0019] # ARABIC LETTER TTEH FINAL FORM
-FB66 ; [.2027.0020.001A] # ARABIC LETTER TTEH ISOLATED FORM
-067A ; [.2028.0020.0002] # ARABIC LETTER TTEHEH
-FB60 ; [.2028.0020.0017] # ARABIC LETTER TTEHEH INITIAL FORM
-FB61 ; [.2028.0020.0018] # ARABIC LETTER TTEHEH MEDIAL FORM
-FB5F ; [.2028.0020.0019] # ARABIC LETTER TTEHEH FINAL FORM
-FB5E ; [.2028.0020.001A] # ARABIC LETTER TTEHEH ISOLATED FORM
-067C ; [.2029.0020.0002] # ARABIC LETTER TEH WITH RING
-067D ; [.202A.0020.0002] # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
-067F ; [.202B.0020.0002] # ARABIC LETTER TEHEH
-FB64 ; [.202B.0020.0017] # ARABIC LETTER TEHEH INITIAL FORM
-FB65 ; [.202B.0020.0018] # ARABIC LETTER TEHEH MEDIAL FORM
-FB63 ; [.202B.0020.0019] # ARABIC LETTER TEHEH FINAL FORM
-FB62 ; [.202B.0020.001A] # ARABIC LETTER TEHEH ISOLATED FORM
-062C ; [.202C.0020.0002] # ARABIC LETTER JEEM
-1EE02 ; [.202C.0020.0005] # ARABIC MATHEMATICAL JEEM
-1EE22 ; [.202C.0020.0005] # ARABIC MATHEMATICAL INITIAL JEEM
-1EE42 ; [.202C.0020.0005] # ARABIC MATHEMATICAL TAILED JEEM
-1EE62 ; [.202C.0020.0005] # ARABIC MATHEMATICAL STRETCHED JEEM
-1EE82 ; [.202C.0020.0005] # ARABIC MATHEMATICAL LOOPED JEEM
-1EEA2 ; [.202C.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
-FE9F ; [.202C.0020.0017] # ARABIC LETTER JEEM INITIAL FORM
-FEA0 ; [.202C.0020.0018] # ARABIC LETTER JEEM MEDIAL FORM
-FE9E ; [.202C.0020.0019] # ARABIC LETTER JEEM FINAL FORM
-FE9D ; [.202C.0020.001A] # ARABIC LETTER JEEM ISOLATED FORM
-FCA7 ; [.202C.0020.0017][.2033.0020.0017] # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
-FC15 ; [.202C.0020.001A][.2033.0020.001A] # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
-FDA6 ; [.202C.0020.0019][.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDBE ; [.202C.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
-FDFB ; [.202C.0020.001A][.209E.0020.001A][*0209.0020.001A][.202C.0020.001A][.209E.0020.001A][.2015.0020.001A][.209E.0020.001A][.20B2.0020.001A] # ARABIC LIGATURE JALLAJALALOUHOU
-FCA8 ; [.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
-FC16 ; [.202C.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
-FD59 ; [.202C.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
-FD58 ; [.202C.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
-FDA7 ; [.202C.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA5 ; [.202C.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
-FD1D ; [.202C.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
-FD01 ; [.202C.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
-FD1E ; [.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE JEEM WITH YEH FINAL FORM
-FD02 ; [.202C.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
-0683 ; [.202D.0020.0002] # ARABIC LETTER NYEH
-FB78 ; [.202D.0020.0017] # ARABIC LETTER NYEH INITIAL FORM
-FB79 ; [.202D.0020.0018] # ARABIC LETTER NYEH MEDIAL FORM
-FB77 ; [.202D.0020.0019] # ARABIC LETTER NYEH FINAL FORM
-FB76 ; [.202D.0020.001A] # ARABIC LETTER NYEH ISOLATED FORM
-0684 ; [.202E.0020.0002] # ARABIC LETTER DYEH
-FB74 ; [.202E.0020.0017] # ARABIC LETTER DYEH INITIAL FORM
-FB75 ; [.202E.0020.0018] # ARABIC LETTER DYEH MEDIAL FORM
-FB73 ; [.202E.0020.0019] # ARABIC LETTER DYEH FINAL FORM
-FB72 ; [.202E.0020.001A] # ARABIC LETTER DYEH ISOLATED FORM
-0686 ; [.202F.0020.0002] # ARABIC LETTER TCHEH
-FB7C ; [.202F.0020.0017] # ARABIC LETTER TCHEH INITIAL FORM
-FB7D ; [.202F.0020.0018] # ARABIC LETTER TCHEH MEDIAL FORM
-FB7B ; [.202F.0020.0019] # ARABIC LETTER TCHEH FINAL FORM
-FB7A ; [.202F.0020.001A] # ARABIC LETTER TCHEH ISOLATED FORM
-06BF ; [.2030.0020.0002] # ARABIC LETTER TCHEH WITH DOT ABOVE
-0687 ; [.2031.0020.0002] # ARABIC LETTER TCHEHEH
-FB80 ; [.2031.0020.0017] # ARABIC LETTER TCHEHEH INITIAL FORM
-FB81 ; [.2031.0020.0018] # ARABIC LETTER TCHEHEH MEDIAL FORM
-FB7F ; [.2031.0020.0019] # ARABIC LETTER TCHEHEH FINAL FORM
-FB7E ; [.2031.0020.001A] # ARABIC LETTER TCHEHEH ISOLATED FORM
-08A2 ; [.2032.0020.0002] # ARABIC LETTER JEEM WITH TWO DOTS ABOVE
-062D ; [.2033.0020.0002] # ARABIC LETTER HAH
-1EE07 ; [.2033.0020.0005] # ARABIC MATHEMATICAL HAH
-1EE27 ; [.2033.0020.0005] # ARABIC MATHEMATICAL INITIAL HAH
-1EE47 ; [.2033.0020.0005] # ARABIC MATHEMATICAL TAILED HAH
-1EE67 ; [.2033.0020.0005] # ARABIC MATHEMATICAL STRETCHED HAH
-1EE87 ; [.2033.0020.0005] # ARABIC MATHEMATICAL LOOPED HAH
-1EEA7 ; [.2033.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
-FEA3 ; [.2033.0020.0017] # ARABIC LETTER HAH INITIAL FORM
-FEA4 ; [.2033.0020.0018] # ARABIC LETTER HAH MEDIAL FORM
-FEA2 ; [.2033.0020.0019] # ARABIC LETTER HAH FINAL FORM
-FEA1 ; [.2033.0020.001A] # ARABIC LETTER HAH ISOLATED FORM
-FCA9 ; [.2033.0020.0017][.202C.0020.0017] # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
-FC17 ; [.2033.0020.001A][.202C.0020.001A] # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
-FDBF ; [.2033.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
-FCAA ; [.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
-FC18 ; [.2033.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
-FD5B ; [.2033.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD5A ; [.2033.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
-FD1B ; [.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
-FCFF ; [.2033.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
-FD1C ; [.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE HAH WITH YEH FINAL FORM
-FD00 ; [.2033.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
-062E ; [.2034.0020.0002] # ARABIC LETTER KHAH
-1EE17 ; [.2034.0020.0005] # ARABIC MATHEMATICAL KHAH
-1EE37 ; [.2034.0020.0005] # ARABIC MATHEMATICAL INITIAL KHAH
-1EE57 ; [.2034.0020.0005] # ARABIC MATHEMATICAL TAILED KHAH
-1EE77 ; [.2034.0020.0005] # ARABIC MATHEMATICAL STRETCHED KHAH
-1EE97 ; [.2034.0020.0005] # ARABIC MATHEMATICAL LOOPED KHAH
-1EEB7 ; [.2034.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
-FEA7 ; [.2034.0020.0017] # ARABIC LETTER KHAH INITIAL FORM
-FEA8 ; [.2034.0020.0018] # ARABIC LETTER KHAH MEDIAL FORM
-FEA6 ; [.2034.0020.0019] # ARABIC LETTER KHAH FINAL FORM
-FEA5 ; [.2034.0020.001A] # ARABIC LETTER KHAH ISOLATED FORM
-FCAB ; [.2034.0020.0017][.202C.0020.0017] # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
-FC19 ; [.2034.0020.001A][.202C.0020.001A] # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
-FC1A ; [.2034.0020.001A][.2033.0020.001A] # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
-FCAC ; [.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
-FC1B ; [.2034.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
-FD1F ; [.2034.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
-FD03 ; [.2034.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
-FD20 ; [.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE KHAH WITH YEH FINAL FORM
-FD04 ; [.2034.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
-0681 ; [.2035.0020.0002] # ARABIC LETTER HAH WITH HAMZA ABOVE
-0682 ; [.2036.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
-0685 ; [.2037.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS ABOVE
-0757 ; [.2038.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS ABOVE
-0758 ; [.2039.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
-076E ; [.203A.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW
-076F ; [.203B.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0772 ; [.203C.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
-077C ; [.203D.0020.0002] # ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-062F ; [.203E.0020.0002] # ARABIC LETTER DAL
-1EE03 ; [.203E.0020.0005] # ARABIC MATHEMATICAL DAL
-1EE83 ; [.203E.0020.0005] # ARABIC MATHEMATICAL LOOPED DAL
-1EEA3 ; [.203E.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
-FEAA ; [.203E.0020.0019] # ARABIC LETTER DAL FINAL FORM
-FEA9 ; [.203E.0020.001A] # ARABIC LETTER DAL ISOLATED FORM
-0630 ; [.203F.0020.0002] # ARABIC LETTER THAL
-1EE18 ; [.203F.0020.0005] # ARABIC MATHEMATICAL THAL
-1EE98 ; [.203F.0020.0005] # ARABIC MATHEMATICAL LOOPED THAL
-1EEB8 ; [.203F.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
-FEAC ; [.203F.0020.0019] # ARABIC LETTER THAL FINAL FORM
-FEAB ; [.203F.0020.001A] # ARABIC LETTER THAL ISOLATED FORM
-FC5B ; [.203F.0020.001A][.0000.0097.001A] # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
-0688 ; [.2040.0020.0002] # ARABIC LETTER DDAL
-FB89 ; [.2040.0020.0019] # ARABIC LETTER DDAL FINAL FORM
-FB88 ; [.2040.0020.001A] # ARABIC LETTER DDAL ISOLATED FORM
-0689 ; [.2041.0020.0002] # ARABIC LETTER DAL WITH RING
-068A ; [.2042.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW
-068B ; [.2043.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
-068C ; [.2044.0020.0002] # ARABIC LETTER DAHAL
-FB85 ; [.2044.0020.0019] # ARABIC LETTER DAHAL FINAL FORM
-FB84 ; [.2044.0020.001A] # ARABIC LETTER DAHAL ISOLATED FORM
-068D ; [.2045.0020.0002] # ARABIC LETTER DDAHAL
-FB83 ; [.2045.0020.0019] # ARABIC LETTER DDAHAL FINAL FORM
-FB82 ; [.2045.0020.001A] # ARABIC LETTER DDAHAL ISOLATED FORM
-08AE ; [.2046.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS BELOW
-068E ; [.2047.0020.0002] # ARABIC LETTER DUL
-FB87 ; [.2047.0020.0019] # ARABIC LETTER DUL FINAL FORM
-FB86 ; [.2047.0020.001A] # ARABIC LETTER DUL ISOLATED FORM
-068F ; [.2048.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
-0690 ; [.2049.0020.0002] # ARABIC LETTER DAL WITH FOUR DOTS ABOVE
-06EE ; [.204A.0020.0002] # ARABIC LETTER DAL WITH INVERTED V
-0759 ; [.204B.0020.0002] # ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
-075A ; [.204C.0020.0002] # ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
-0631 ; [.204D.0020.0002] # ARABIC LETTER REH
-1EE13 ; [.204D.0020.0005] # ARABIC MATHEMATICAL REH
-1EE93 ; [.204D.0020.0005] # ARABIC MATHEMATICAL LOOPED REH
-1EEB3 ; [.204D.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK REH
-FEAE ; [.204D.0020.0019] # ARABIC LETTER REH FINAL FORM
-FEAD ; [.204D.0020.001A] # ARABIC LETTER REH ISOLATED FORM
-FC5C ; [.204D.0020.001A][.0000.0097.001A] # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
-FDF6 ; [.204D.0020.001A][.205F.0020.001A][.20B8.0020.001A][.209E.0020.001A] # ARABIC LIGATURE RASOUL ISOLATED FORM
-FDFC ; [.204D.0020.001A][.20C8.0020.001A][.2015.0020.001A][.209E.0020.001A] # RIAL SIGN
-0632 ; [.204E.0020.0002] # ARABIC LETTER ZAIN
-1EE06 ; [.204E.0020.0005] # ARABIC MATHEMATICAL ZAIN
-1EE86 ; [.204E.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAIN
-1EEA6 ; [.204E.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
-FEB0 ; [.204E.0020.0019] # ARABIC LETTER ZAIN FINAL FORM
-FEAF ; [.204E.0020.001A] # ARABIC LETTER ZAIN ISOLATED FORM
-0691 ; [.204F.0020.0002] # ARABIC LETTER RREH
-FB8D ; [.204F.0020.0019] # ARABIC LETTER RREH FINAL FORM
-FB8C ; [.204F.0020.001A] # ARABIC LETTER RREH ISOLATED FORM
-0692 ; [.2050.0020.0002] # ARABIC LETTER REH WITH SMALL V
-0693 ; [.2051.0020.0002] # ARABIC LETTER REH WITH RING
-0694 ; [.2052.0020.0002] # ARABIC LETTER REH WITH DOT BELOW
-0695 ; [.2053.0020.0002] # ARABIC LETTER REH WITH SMALL V BELOW
-0696 ; [.2054.0020.0002] # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
-0697 ; [.2055.0020.0002] # ARABIC LETTER REH WITH TWO DOTS ABOVE
-0698 ; [.2056.0020.0002] # ARABIC LETTER JEH
-FB8B ; [.2056.0020.0019] # ARABIC LETTER JEH FINAL FORM
-FB8A ; [.2056.0020.001A] # ARABIC LETTER JEH ISOLATED FORM
-0699 ; [.2057.0020.0002] # ARABIC LETTER REH WITH FOUR DOTS ABOVE
-06EF ; [.2058.0020.0002] # ARABIC LETTER REH WITH INVERTED V
-075B ; [.2059.0020.0002] # ARABIC LETTER REH WITH STROKE
-076B ; [.205A.0020.0002] # ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
-076C ; [.205B.0020.0002] # ARABIC LETTER REH WITH HAMZA ABOVE
-0771 ; [.205C.0020.0002] # ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-08AA ; [.205D.0020.0002] # ARABIC LETTER REH WITH LOOP
-08B2 ; [.205E.0020.0002] # ARABIC LETTER ZAIN WITH INVERTED V ABOVE
-0633 ; [.205F.0020.0002] # ARABIC LETTER SEEN
-1EE0E ; [.205F.0020.0005] # ARABIC MATHEMATICAL SEEN
-1EE2E ; [.205F.0020.0005] # ARABIC MATHEMATICAL INITIAL SEEN
-1EE4E ; [.205F.0020.0005] # ARABIC MATHEMATICAL TAILED SEEN
-1EE6E ; [.205F.0020.0005] # ARABIC MATHEMATICAL STRETCHED SEEN
-1EE8E ; [.205F.0020.0005] # ARABIC MATHEMATICAL LOOPED SEEN
-1EEAE ; [.205F.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
-FEB3 ; [.205F.0020.0017] # ARABIC LETTER SEEN INITIAL FORM
-FEB4 ; [.205F.0020.0018] # ARABIC LETTER SEEN MEDIAL FORM
-FEB2 ; [.205F.0020.0019] # ARABIC LETTER SEEN FINAL FORM
-FEB1 ; [.205F.0020.001A] # ARABIC LETTER SEEN ISOLATED FORM
-FCAD ; [.205F.0020.0017][.202C.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
-FD34 ; [.205F.0020.0018][.202C.0020.0018] # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
-FC1C ; [.205F.0020.001A][.202C.0020.001A] # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
-FD5D ; [.205F.0020.0017][.202C.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
-FD5E ; [.205F.0020.0019][.202C.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FCAE ; [.205F.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
-FD35 ; [.205F.0020.0018][.2033.0020.0018] # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
-FC1D ; [.205F.0020.001A][.2033.0020.001A] # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
-FD5C ; [.205F.0020.0017][.2033.0020.0017][.202C.0020.0017] # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
-FCAF ; [.205F.0020.0017][.2034.0020.0017] # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
-FD36 ; [.205F.0020.0018][.2034.0020.0018] # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
-FC1E ; [.205F.0020.001A][.2034.0020.001A] # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
-FDA8 ; [.205F.0020.0019][.2034.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDC6 ; [.205F.0020.0019][.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
-FD2A ; [.205F.0020.0019][.204D.0020.0019] # ARABIC LIGATURE SEEN WITH REH FINAL FORM
-FD0E ; [.205F.0020.001A][.204D.0020.001A] # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
-FCB0 ; [.205F.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
-FCE7 ; [.205F.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
-FC1F ; [.205F.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
-FD61 ; [.205F.0020.0017][.20A5.0020.0017][.202C.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
-FD60 ; [.205F.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
-FD5F ; [.205F.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
-FD63 ; [.205F.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
-FD62 ; [.205F.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
-FD31 ; [.205F.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
-FCE8 ; [.205F.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
-FD17 ; [.205F.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
-FCFB ; [.205F.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
-FD18 ; [.205F.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SEEN WITH YEH FINAL FORM
-FCFC ; [.205F.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
-0634 ; [.2060.0020.0002] # ARABIC LETTER SHEEN
-1EE14 ; [.2060.0020.0005] # ARABIC MATHEMATICAL SHEEN
-1EE34 ; [.2060.0020.0005] # ARABIC MATHEMATICAL INITIAL SHEEN
-1EE54 ; [.2060.0020.0005] # ARABIC MATHEMATICAL TAILED SHEEN
-1EE74 ; [.2060.0020.0005] # ARABIC MATHEMATICAL STRETCHED SHEEN
-1EE94 ; [.2060.0020.0005] # ARABIC MATHEMATICAL LOOPED SHEEN
-1EEB4 ; [.2060.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
-FEB7 ; [.2060.0020.0017] # ARABIC LETTER SHEEN INITIAL FORM
-FEB8 ; [.2060.0020.0018] # ARABIC LETTER SHEEN MEDIAL FORM
-FEB6 ; [.2060.0020.0019] # ARABIC LETTER SHEEN FINAL FORM
-FEB5 ; [.2060.0020.001A] # ARABIC LETTER SHEEN ISOLATED FORM
-FD2D ; [.2060.0020.0017][.202C.0020.0017] # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
-FD37 ; [.2060.0020.0018][.202C.0020.0018] # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
-FD25 ; [.2060.0020.0019][.202C.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
-FD09 ; [.2060.0020.001A][.202C.0020.001A] # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
-FD69 ; [.2060.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
-FD2E ; [.2060.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
-FD38 ; [.2060.0020.0018][.2033.0020.0018] # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
-FD26 ; [.2060.0020.0019][.2033.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
-FD0A ; [.2060.0020.001A][.2033.0020.001A] # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
-FD68 ; [.2060.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
-FD67 ; [.2060.0020.0019][.2033.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
-FDAA ; [.2060.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
-FD2F ; [.2060.0020.0017][.2034.0020.0017] # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
-FD39 ; [.2060.0020.0018][.2034.0020.0018] # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
-FD27 ; [.2060.0020.0019][.2034.0020.0019] # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
-FD0B ; [.2060.0020.001A][.2034.0020.001A] # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
-FD29 ; [.2060.0020.0019][.204D.0020.0019] # ARABIC LIGATURE SHEEN WITH REH FINAL FORM
-FD0D ; [.2060.0020.001A][.204D.0020.001A] # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
-FD30 ; [.2060.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
-FCE9 ; [.2060.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
-FD28 ; [.2060.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
-FD0C ; [.2060.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
-FD6B ; [.2060.0020.0017][.20A5.0020.0017][.2034.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
-FD6A ; [.2060.0020.0019][.20A5.0020.0019][.2034.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
-FD6D ; [.2060.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
-FD6C ; [.2060.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
-FD32 ; [.2060.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
-FCEA ; [.2060.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
-FD19 ; [.2060.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
-FCFD ; [.2060.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
-FD1A ; [.2060.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
-FCFE ; [.2060.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
-069A ; [.2061.0020.0002] # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
-069B ; [.2062.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW
-069C ; [.2063.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
-06FA ; [.2064.0020.0002] # ARABIC LETTER SHEEN WITH DOT BELOW
-075C ; [.2065.0020.0002] # ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
-076D ; [.2066.0020.0002] # ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
-0770 ; [.2067.0020.0002] # ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-077D ; [.2068.0020.0002] # ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE
-077E ; [.2069.0020.0002] # ARABIC LETTER SEEN WITH INVERTED V
-0635 ; [.206A.0020.0002] # ARABIC LETTER SAD
-1EE11 ; [.206A.0020.0005] # ARABIC MATHEMATICAL SAD
-1EE31 ; [.206A.0020.0005] # ARABIC MATHEMATICAL INITIAL SAD
-1EE51 ; [.206A.0020.0005] # ARABIC MATHEMATICAL TAILED SAD
-1EE71 ; [.206A.0020.0005] # ARABIC MATHEMATICAL STRETCHED SAD
-1EE91 ; [.206A.0020.0005] # ARABIC MATHEMATICAL LOOPED SAD
-1EEB1 ; [.206A.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
-FEBB ; [.206A.0020.0017] # ARABIC LETTER SAD INITIAL FORM
-FEBC ; [.206A.0020.0018] # ARABIC LETTER SAD MEDIAL FORM
-FEBA ; [.206A.0020.0019] # ARABIC LETTER SAD FINAL FORM
-FEB9 ; [.206A.0020.001A] # ARABIC LETTER SAD ISOLATED FORM
-FCB1 ; [.206A.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SAD WITH HAH INITIAL FORM
-FC20 ; [.206A.0020.001A][.2033.0020.001A] # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
-FD65 ; [.206A.0020.0017][.2033.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
-FD64 ; [.206A.0020.0019][.2033.0020.0019][.2033.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
-FDA9 ; [.206A.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
-FCB2 ; [.206A.0020.0017][.2034.0020.0017] # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
-FD2B ; [.206A.0020.0019][.204D.0020.0019] # ARABIC LIGATURE SAD WITH REH FINAL FORM
-FD0F ; [.206A.0020.001A][.204D.0020.001A] # ARABIC LIGATURE SAD WITH REH ISOLATED FORM
-FDF5 ; [.206A.0020.001A][.209E.0020.001A][.2074.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SALAM ISOLATED FORM
-FDF9 ; [.206A.0020.001A][.209E.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE SALLA ISOLATED FORM
-FDFA ; [.206A.0020.001A][.209E.0020.001A][.20C6.0020.001A][*0209.0020.001A][.2015.0020.001A][.209E.0020.001A][.209E.0020.001A][.20B2.0020.001A][*0209.0020.001A][.2074.0020.001A][.209E.0020.001A][.20C7.0020.001A][.20B2.0020.001A][*0209.0020.001A][.20B8.0020.001A][.205F.0020.001A][.209E.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
-FDF0 ; [.206A.0020.001A][.209E.0020.001A][.20D4.0020.001A] # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
-FCB3 ; [.206A.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
-FC21 ; [.206A.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
-FDC5 ; [.206A.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
-FD66 ; [.206A.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
-FD21 ; [.206A.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
-FD05 ; [.206A.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
-FD22 ; [.206A.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SAD WITH YEH FINAL FORM
-FD06 ; [.206A.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
-0636 ; [.206B.0020.0002] # ARABIC LETTER DAD
-1EE19 ; [.206B.0020.0005] # ARABIC MATHEMATICAL DAD
-1EE39 ; [.206B.0020.0005] # ARABIC MATHEMATICAL INITIAL DAD
-1EE59 ; [.206B.0020.0005] # ARABIC MATHEMATICAL TAILED DAD
-1EE79 ; [.206B.0020.0005] # ARABIC MATHEMATICAL STRETCHED DAD
-1EE99 ; [.206B.0020.0005] # ARABIC MATHEMATICAL LOOPED DAD
-1EEB9 ; [.206B.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
-FEBF ; [.206B.0020.0017] # ARABIC LETTER DAD INITIAL FORM
-FEC0 ; [.206B.0020.0018] # ARABIC LETTER DAD MEDIAL FORM
-FEBE ; [.206B.0020.0019] # ARABIC LETTER DAD FINAL FORM
-FEBD ; [.206B.0020.001A] # ARABIC LETTER DAD ISOLATED FORM
-FCB4 ; [.206B.0020.0017][.202C.0020.0017] # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
-FC22 ; [.206B.0020.001A][.202C.0020.001A] # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
-FCB5 ; [.206B.0020.0017][.2033.0020.0017] # ARABIC LIGATURE DAD WITH HAH INITIAL FORM
-FC23 ; [.206B.0020.001A][.2033.0020.001A] # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
-FD6E ; [.206B.0020.0019][.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDAB ; [.206B.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
-FCB6 ; [.206B.0020.0017][.2034.0020.0017] # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
-FC24 ; [.206B.0020.001A][.2034.0020.001A] # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
-FD70 ; [.206B.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
-FD6F ; [.206B.0020.0019][.2034.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
-FD2C ; [.206B.0020.0019][.204D.0020.0019] # ARABIC LIGATURE DAD WITH REH FINAL FORM
-FD10 ; [.206B.0020.001A][.204D.0020.001A] # ARABIC LIGATURE DAD WITH REH ISOLATED FORM
-FCB7 ; [.206B.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
-FC25 ; [.206B.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
-FD23 ; [.206B.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
-FD07 ; [.206B.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
-FD24 ; [.206B.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE DAD WITH YEH FINAL FORM
-FD08 ; [.206B.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
-069D ; [.206C.0020.0002] # ARABIC LETTER SAD WITH TWO DOTS BELOW
-08AF ; [.206D.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS BELOW
-069E ; [.206E.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS ABOVE
-06FB ; [.206F.0020.0002] # ARABIC LETTER DAD WITH DOT BELOW
-0637 ; [.2070.0020.0002] # ARABIC LETTER TAH
-1EE08 ; [.2070.0020.0005] # ARABIC MATHEMATICAL TAH
-1EE68 ; [.2070.0020.0005] # ARABIC MATHEMATICAL STRETCHED TAH
-1EE88 ; [.2070.0020.0005] # ARABIC MATHEMATICAL LOOPED TAH
-1EEA8 ; [.2070.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
-FEC3 ; [.2070.0020.0017] # ARABIC LETTER TAH INITIAL FORM
-FEC4 ; [.2070.0020.0018] # ARABIC LETTER TAH MEDIAL FORM
-FEC2 ; [.2070.0020.0019] # ARABIC LETTER TAH FINAL FORM
-FEC1 ; [.2070.0020.001A] # ARABIC LETTER TAH ISOLATED FORM
-FCB8 ; [.2070.0020.0017][.2033.0020.0017] # ARABIC LIGATURE TAH WITH HAH INITIAL FORM
-FC26 ; [.2070.0020.001A][.2033.0020.001A] # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
-FD33 ; [.2070.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
-FD3A ; [.2070.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
-FC27 ; [.2070.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
-FD72 ; [.2070.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
-FD71 ; [.2070.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
-FD73 ; [.2070.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
-FD74 ; [.2070.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
-FD11 ; [.2070.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
-FCF5 ; [.2070.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
-FD12 ; [.2070.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TAH WITH YEH FINAL FORM
-FCF6 ; [.2070.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
-0638 ; [.2071.0020.0002] # ARABIC LETTER ZAH
-1EE1A ; [.2071.0020.0005] # ARABIC MATHEMATICAL ZAH
-1EE7A ; [.2071.0020.0005] # ARABIC MATHEMATICAL STRETCHED ZAH
-1EE9A ; [.2071.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAH
-1EEBA ; [.2071.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
-FEC7 ; [.2071.0020.0017] # ARABIC LETTER ZAH INITIAL FORM
-FEC8 ; [.2071.0020.0018] # ARABIC LETTER ZAH MEDIAL FORM
-FEC6 ; [.2071.0020.0019] # ARABIC LETTER ZAH FINAL FORM
-FEC5 ; [.2071.0020.001A] # ARABIC LETTER ZAH ISOLATED FORM
-FCB9 ; [.2071.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
-FD3B ; [.2071.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
-FC28 ; [.2071.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
-069F ; [.2072.0020.0002] # ARABIC LETTER TAH WITH THREE DOTS ABOVE
-08A3 ; [.2073.0020.0002] # ARABIC LETTER TAH WITH TWO DOTS ABOVE
-0639 ; [.2074.0020.0002] # ARABIC LETTER AIN
-1EE0F ; [.2074.0020.0005] # ARABIC MATHEMATICAL AIN
-1EE2F ; [.2074.0020.0005] # ARABIC MATHEMATICAL INITIAL AIN
-1EE4F ; [.2074.0020.0005] # ARABIC MATHEMATICAL TAILED AIN
-1EE6F ; [.2074.0020.0005] # ARABIC MATHEMATICAL STRETCHED AIN
-1EE8F ; [.2074.0020.0005] # ARABIC MATHEMATICAL LOOPED AIN
-1EEAF ; [.2074.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
-FECB ; [.2074.0020.0017] # ARABIC LETTER AIN INITIAL FORM
-FECC ; [.2074.0020.0018] # ARABIC LETTER AIN MEDIAL FORM
-FECA ; [.2074.0020.0019] # ARABIC LETTER AIN FINAL FORM
-FEC9 ; [.2074.0020.001A] # ARABIC LETTER AIN ISOLATED FORM
-FCBA ; [.2074.0020.0017][.202C.0020.0017] # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
-FC29 ; [.2074.0020.001A][.202C.0020.001A] # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
-FDC4 ; [.2074.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
-FD75 ; [.2074.0020.0019][.202C.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
-FDF7 ; [.2074.0020.001A][.209E.0020.001A][.20C7.0020.001A][.20B2.0020.001A] # ARABIC LIGATURE ALAYHE ISOLATED FORM
-FCBB ; [.2074.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
-FC2A ; [.2074.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
-FD77 ; [.2074.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
-FD76 ; [.2074.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
-FD78 ; [.2074.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDB6 ; [.2074.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
-FD13 ; [.2074.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
-FCF7 ; [.2074.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
-FD14 ; [.2074.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE AIN WITH YEH FINAL FORM
-FCF8 ; [.2074.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
-063A ; [.2075.0020.0002] # ARABIC LETTER GHAIN
-1EE1B ; [.2075.0020.0005] # ARABIC MATHEMATICAL GHAIN
-1EE3B ; [.2075.0020.0005] # ARABIC MATHEMATICAL INITIAL GHAIN
-1EE5B ; [.2075.0020.0005] # ARABIC MATHEMATICAL TAILED GHAIN
-1EE7B ; [.2075.0020.0005] # ARABIC MATHEMATICAL STRETCHED GHAIN
-1EE9B ; [.2075.0020.0005] # ARABIC MATHEMATICAL LOOPED GHAIN
-1EEBB ; [.2075.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-FECF ; [.2075.0020.0017] # ARABIC LETTER GHAIN INITIAL FORM
-FED0 ; [.2075.0020.0018] # ARABIC LETTER GHAIN MEDIAL FORM
-FECE ; [.2075.0020.0019] # ARABIC LETTER GHAIN FINAL FORM
-FECD ; [.2075.0020.001A] # ARABIC LETTER GHAIN ISOLATED FORM
-FCBC ; [.2075.0020.0017][.202C.0020.0017] # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
-FC2B ; [.2075.0020.001A][.202C.0020.001A] # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
-FCBD ; [.2075.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
-FC2C ; [.2075.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
-FD79 ; [.2075.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
-FD7B ; [.2075.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD7A ; [.2075.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
-FD15 ; [.2075.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
-FCF9 ; [.2075.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
-FD16 ; [.2075.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
-FCFA ; [.2075.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
-06A0 ; [.2076.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS ABOVE
-06FC ; [.2077.0020.0002] # ARABIC LETTER GHAIN WITH DOT BELOW
-075D ; [.2078.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS ABOVE
-075E ; [.2079.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
-075F ; [.207A.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
-0641 ; [.207B.0020.0002] # ARABIC LETTER FEH
-1EE10 ; [.207B.0020.0005] # ARABIC MATHEMATICAL FEH
-1EE30 ; [.207B.0020.0005] # ARABIC MATHEMATICAL INITIAL FEH
-1EE70 ; [.207B.0020.0005] # ARABIC MATHEMATICAL STRETCHED FEH
-1EE90 ; [.207B.0020.0005] # ARABIC MATHEMATICAL LOOPED FEH
-1EEB0 ; [.207B.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
-FED3 ; [.207B.0020.0017] # ARABIC LETTER FEH INITIAL FORM
-FED4 ; [.207B.0020.0018] # ARABIC LETTER FEH MEDIAL FORM
-FED2 ; [.207B.0020.0019] # ARABIC LETTER FEH FINAL FORM
-FED1 ; [.207B.0020.001A] # ARABIC LETTER FEH ISOLATED FORM
-FCBE ; [.207B.0020.0017][.202C.0020.0017] # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
-FC2D ; [.207B.0020.001A][.202C.0020.001A] # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
-FCBF ; [.207B.0020.0017][.2033.0020.0017] # ARABIC LIGATURE FEH WITH HAH INITIAL FORM
-FC2E ; [.207B.0020.001A][.2033.0020.001A] # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
-FCC0 ; [.207B.0020.0017][.2034.0020.0017] # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
-FC2F ; [.207B.0020.001A][.2034.0020.001A] # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
-FD7D ; [.207B.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
-FD7C ; [.207B.0020.0019][.2034.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
-FCC1 ; [.207B.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
-FC30 ; [.207B.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
-FDC1 ; [.207B.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
-FC7C ; [.207B.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
-FC31 ; [.207B.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
-FC7D ; [.207B.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE FEH WITH YEH FINAL FORM
-FC32 ; [.207B.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
-06A1 ; [.207C.0020.0002] # ARABIC LETTER DOTLESS FEH
-1EE1E ; [.207C.0020.0005] # ARABIC MATHEMATICAL DOTLESS FEH
-1EE7E ; [.207C.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
-06A2 ; [.207D.0020.0002] # ARABIC LETTER FEH WITH DOT MOVED BELOW
-06A3 ; [.207E.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW
-06A4 ; [.207F.0020.0002] # ARABIC LETTER VEH
-FB6C ; [.207F.0020.0017] # ARABIC LETTER VEH INITIAL FORM
-FB6D ; [.207F.0020.0018] # ARABIC LETTER VEH MEDIAL FORM
-FB6B ; [.207F.0020.0019] # ARABIC LETTER VEH FINAL FORM
-FB6A ; [.207F.0020.001A] # ARABIC LETTER VEH ISOLATED FORM
-08A4 ; [.2080.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
-06A5 ; [.2081.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS BELOW
-06A6 ; [.2082.0020.0002] # ARABIC LETTER PEHEH
-FB70 ; [.2082.0020.0017] # ARABIC LETTER PEHEH INITIAL FORM
-FB71 ; [.2082.0020.0018] # ARABIC LETTER PEHEH MEDIAL FORM
-FB6F ; [.2082.0020.0019] # ARABIC LETTER PEHEH FINAL FORM
-FB6E ; [.2082.0020.001A] # ARABIC LETTER PEHEH ISOLATED FORM
-0760 ; [.2083.0020.0002] # ARABIC LETTER FEH WITH TWO DOTS BELOW
-0761 ; [.2084.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
-066F ; [.2085.0020.0002] # ARABIC LETTER DOTLESS QAF
-1EE1F ; [.2085.0020.0005] # ARABIC MATHEMATICAL DOTLESS QAF
-1EE5F ; [.2085.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS QAF
-0642 ; [.2086.0020.0002] # ARABIC LETTER QAF
-1EE12 ; [.2086.0020.0005] # ARABIC MATHEMATICAL QAF
-1EE32 ; [.2086.0020.0005] # ARABIC MATHEMATICAL INITIAL QAF
-1EE52 ; [.2086.0020.0005] # ARABIC MATHEMATICAL TAILED QAF
-1EE72 ; [.2086.0020.0005] # ARABIC MATHEMATICAL STRETCHED QAF
-1EE92 ; [.2086.0020.0005] # ARABIC MATHEMATICAL LOOPED QAF
-1EEB2 ; [.2086.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
-FED7 ; [.2086.0020.0017] # ARABIC LETTER QAF INITIAL FORM
-FED8 ; [.2086.0020.0018] # ARABIC LETTER QAF MEDIAL FORM
-FED6 ; [.2086.0020.0019] # ARABIC LETTER QAF FINAL FORM
-FED5 ; [.2086.0020.001A] # ARABIC LETTER QAF ISOLATED FORM
-FCC2 ; [.2086.0020.0017][.2033.0020.0017] # ARABIC LIGATURE QAF WITH HAH INITIAL FORM
-FC33 ; [.2086.0020.001A][.2033.0020.001A] # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
-FDF1 ; [.2086.0020.001A][.209E.0020.001A][.20D4.0020.001A] # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
-FCC3 ; [.2086.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
-FC34 ; [.2086.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
-FDB4 ; [.2086.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
-FD7E ; [.2086.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
-FD7F ; [.2086.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
-FDB2 ; [.2086.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
-FC7E ; [.2086.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
-FC35 ; [.2086.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
-FC7F ; [.2086.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE QAF WITH YEH FINAL FORM
-FC36 ; [.2086.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
-06A7 ; [.2087.0020.0002] # ARABIC LETTER QAF WITH DOT ABOVE
-06A8 ; [.2088.0020.0002] # ARABIC LETTER QAF WITH THREE DOTS ABOVE
-08A5 ; [.2089.0020.0002] # ARABIC LETTER QAF WITH DOT BELOW
-0643 ; [.208A.0020.0002] # ARABIC LETTER KAF
-1EE0A ; [.208A.0020.0005] # ARABIC MATHEMATICAL KAF
-1EE2A ; [.208A.0020.0005] # ARABIC MATHEMATICAL INITIAL KAF
-1EE6A ; [.208A.0020.0005] # ARABIC MATHEMATICAL STRETCHED KAF
-FEDB ; [.208A.0020.0017] # ARABIC LETTER KAF INITIAL FORM
-FEDC ; [.208A.0020.0018] # ARABIC LETTER KAF MEDIAL FORM
-FEDA ; [.208A.0020.0019] # ARABIC LETTER KAF FINAL FORM
-FED9 ; [.208A.0020.001A] # ARABIC LETTER KAF ISOLATED FORM
-FC80 ; [.208A.0020.0019][.2015.0020.0019] # ARABIC LIGATURE KAF WITH ALEF FINAL FORM
-FC37 ; [.208A.0020.001A][.2015.0020.001A] # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
-FCC4 ; [.208A.0020.0017][.202C.0020.0017] # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
-FC38 ; [.208A.0020.001A][.202C.0020.001A] # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
-FCC5 ; [.208A.0020.0017][.2033.0020.0017] # ARABIC LIGATURE KAF WITH HAH INITIAL FORM
-FC39 ; [.208A.0020.001A][.2033.0020.001A] # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
-FCC6 ; [.208A.0020.0017][.2034.0020.0017] # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
-FC3A ; [.208A.0020.001A][.2034.0020.001A] # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
-FCC7 ; [.208A.0020.0017][.209E.0020.0017] # ARABIC LIGATURE KAF WITH LAM INITIAL FORM
-FCEB ; [.208A.0020.0018][.209E.0020.0018] # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
-FC81 ; [.208A.0020.0019][.209E.0020.0019] # ARABIC LIGATURE KAF WITH LAM FINAL FORM
-FC3B ; [.208A.0020.001A][.209E.0020.001A] # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
-FCC8 ; [.208A.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
-FCEC ; [.208A.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
-FC82 ; [.208A.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE KAF WITH MEEM FINAL FORM
-FC3C ; [.208A.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
-FDC3 ; [.208A.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
-FDBB ; [.208A.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
-FDB7 ; [.208A.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
-FC83 ; [.208A.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
-FC3D ; [.208A.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
-FC84 ; [.208A.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE KAF WITH YEH FINAL FORM
-FC3E ; [.208A.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
-06A9 ; [.208B.0020.0002] # ARABIC LETTER KEHEH
-FB90 ; [.208B.0020.0017] # ARABIC LETTER KEHEH INITIAL FORM
-FB91 ; [.208B.0020.0018] # ARABIC LETTER KEHEH MEDIAL FORM
-FB8F ; [.208B.0020.0019] # ARABIC LETTER KEHEH FINAL FORM
-FB8E ; [.208B.0020.001A] # ARABIC LETTER KEHEH ISOLATED FORM
-06AA ; [.208C.0020.0002] # ARABIC LETTER SWASH KAF
-06AB ; [.208D.0020.0002] # ARABIC LETTER KAF WITH RING
-06AC ; [.208E.0020.0002] # ARABIC LETTER KAF WITH DOT ABOVE
-077F ; [.208F.0020.0002] # ARABIC LETTER KAF WITH TWO DOTS ABOVE
-06AD ; [.2090.0020.0002] # ARABIC LETTER NG
-FBD5 ; [.2090.0020.0017] # ARABIC LETTER NG INITIAL FORM
-FBD6 ; [.2090.0020.0018] # ARABIC LETTER NG MEDIAL FORM
-FBD4 ; [.2090.0020.0019] # ARABIC LETTER NG FINAL FORM
-FBD3 ; [.2090.0020.001A] # ARABIC LETTER NG ISOLATED FORM
-06AE ; [.2091.0020.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
-06AF ; [.2092.0020.0002] # ARABIC LETTER GAF
-FB94 ; [.2092.0020.0017] # ARABIC LETTER GAF INITIAL FORM
-FB95 ; [.2092.0020.0018] # ARABIC LETTER GAF MEDIAL FORM
-FB93 ; [.2092.0020.0019] # ARABIC LETTER GAF FINAL FORM
-FB92 ; [.2092.0020.001A] # ARABIC LETTER GAF ISOLATED FORM
-08B0 ; [.2093.0020.0002] # ARABIC LETTER GAF WITH INVERTED STROKE
-06B0 ; [.2094.0020.0002] # ARABIC LETTER GAF WITH RING
-06B1 ; [.2095.0020.0002] # ARABIC LETTER NGOEH
-FB9C ; [.2095.0020.0017] # ARABIC LETTER NGOEH INITIAL FORM
-FB9D ; [.2095.0020.0018] # ARABIC LETTER NGOEH MEDIAL FORM
-FB9B ; [.2095.0020.0019] # ARABIC LETTER NGOEH FINAL FORM
-FB9A ; [.2095.0020.001A] # ARABIC LETTER NGOEH ISOLATED FORM
-06B2 ; [.2096.0020.0002] # ARABIC LETTER GAF WITH TWO DOTS BELOW
-06B3 ; [.2097.0020.0002] # ARABIC LETTER GUEH
-FB98 ; [.2097.0020.0017] # ARABIC LETTER GUEH INITIAL FORM
-FB99 ; [.2097.0020.0018] # ARABIC LETTER GUEH MEDIAL FORM
-FB97 ; [.2097.0020.0019] # ARABIC LETTER GUEH FINAL FORM
-FB96 ; [.2097.0020.001A] # ARABIC LETTER GUEH ISOLATED FORM
-06B4 ; [.2098.0020.0002] # ARABIC LETTER GAF WITH THREE DOTS ABOVE
-0762 ; [.2099.0020.0002] # ARABIC LETTER KEHEH WITH DOT ABOVE
-063B ; [.209A.0020.0002] # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE
-063C ; [.209B.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS BELOW
-0763 ; [.209C.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
-0764 ; [.209D.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
-0644 ; [.209E.0020.0002] # ARABIC LETTER LAM
-1EE0B ; [.209E.0020.0005] # ARABIC MATHEMATICAL LAM
-1EE2B ; [.209E.0020.0005] # ARABIC MATHEMATICAL INITIAL LAM
-1EE4B ; [.209E.0020.0005] # ARABIC MATHEMATICAL TAILED LAM
-1EE8B ; [.209E.0020.0005] # ARABIC MATHEMATICAL LOOPED LAM
-1EEAB ; [.209E.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
-FEDF ; [.209E.0020.0017] # ARABIC LETTER LAM INITIAL FORM
-FEE0 ; [.209E.0020.0018] # ARABIC LETTER LAM MEDIAL FORM
-FEDE ; [.209E.0020.0019] # ARABIC LETTER LAM FINAL FORM
-FEDD ; [.209E.0020.001A] # ARABIC LETTER LAM ISOLATED FORM
-FEF6 ; [.209E.0020.0019][.2008.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-FEF5 ; [.209E.0020.001A][.2008.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-FEF8 ; [.209E.0020.0019][.2009.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-FEF7 ; [.209E.0020.001A][.2009.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-FEFA ; [.209E.0020.0019][.200D.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
-FEF9 ; [.209E.0020.001A][.200D.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-FEFC ; [.209E.0020.0019][.2015.0020.0019] # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFB ; [.209E.0020.001A][.2015.0020.001A] # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-FCC9 ; [.209E.0020.0017][.202C.0020.0017] # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
-FC3F ; [.209E.0020.001A][.202C.0020.001A] # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
-FD83 ; [.209E.0020.0017][.202C.0020.0017][.202C.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
-FD84 ; [.209E.0020.0019][.202C.0020.0019][.202C.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
-FDBA ; [.209E.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
-FDBC ; [.209E.0020.0019][.202C.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
-FDAC ; [.209E.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
-FCCA ; [.209E.0020.0017][.2033.0020.0017] # ARABIC LIGATURE LAM WITH HAH INITIAL FORM
-FC40 ; [.209E.0020.001A][.2033.0020.001A] # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
-FDB5 ; [.209E.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
-FD80 ; [.209E.0020.0019][.2033.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
-FD82 ; [.209E.0020.0019][.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD81 ; [.209E.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
-FCCB ; [.209E.0020.0017][.2034.0020.0017] # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
-FC41 ; [.209E.0020.001A][.2034.0020.001A] # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
-FD86 ; [.209E.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
-FD85 ; [.209E.0020.0019][.2034.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
-FCCC ; [.209E.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
-FCED ; [.209E.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
-FC85 ; [.209E.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE LAM WITH MEEM FINAL FORM
-FC42 ; [.209E.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
-FD88 ; [.209E.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
-FD87 ; [.209E.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
-FDAD ; [.209E.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
-FCCD ; [.209E.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE LAM WITH HEH INITIAL FORM
-FC86 ; [.209E.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
-FC43 ; [.209E.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
-FC87 ; [.209E.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE LAM WITH YEH FINAL FORM
-FC44 ; [.209E.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
-06B5 ; [.209F.0020.0002] # ARABIC LETTER LAM WITH SMALL V
-06B6 ; [.20A0.0020.0002] # ARABIC LETTER LAM WITH DOT ABOVE
-06B7 ; [.20A1.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS ABOVE
-06B8 ; [.20A2.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS BELOW
-076A ; [.20A3.0020.0002] # ARABIC LETTER LAM WITH BAR
-08A6 ; [.20A4.0020.0002] # ARABIC LETTER LAM WITH DOUBLE BAR
-0645 ; [.20A5.0020.0002] # ARABIC LETTER MEEM
-1EE0C ; [.20A5.0020.0005] # ARABIC MATHEMATICAL MEEM
-1EE2C ; [.20A5.0020.0005] # ARABIC MATHEMATICAL INITIAL MEEM
-1EE6C ; [.20A5.0020.0005] # ARABIC MATHEMATICAL STRETCHED MEEM
-1EE8C ; [.20A5.0020.0005] # ARABIC MATHEMATICAL LOOPED MEEM
-1EEAC ; [.20A5.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
-FEE3 ; [.20A5.0020.0017] # ARABIC LETTER MEEM INITIAL FORM
-FEE4 ; [.20A5.0020.0018] # ARABIC LETTER MEEM MEDIAL FORM
-FEE2 ; [.20A5.0020.0019] # ARABIC LETTER MEEM FINAL FORM
-FEE1 ; [.20A5.0020.001A] # ARABIC LETTER MEEM ISOLATED FORM
-06FE ; [.20A5.0020.0004][.0000.0109.0004] # ARABIC SIGN SINDHI POSTPOSITION MEN
-FC88 ; [.20A5.0020.0019][.2015.0020.0019] # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
-FCCE ; [.20A5.0020.0017][.202C.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
-FC45 ; [.20A5.0020.001A][.202C.0020.001A] # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
-FD8C ; [.20A5.0020.0017][.202C.0020.0017][.2033.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
-FD92 ; [.20A5.0020.0017][.202C.0020.0017][.2034.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
-FD8D ; [.20A5.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
-FDC0 ; [.20A5.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
-FCCF ; [.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
-FC46 ; [.20A5.0020.001A][.2033.0020.001A] # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
-FD89 ; [.20A5.0020.0017][.2033.0020.0017][.202C.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
-FD8A ; [.20A5.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
-FDF4 ; [.20A5.0020.001A][.2033.0020.001A][.20A5.0020.001A][.203E.0020.001A] # ARABIC LIGATURE MOHAMMAD ISOLATED FORM
-FD8B ; [.20A5.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
-FCD0 ; [.20A5.0020.0017][.2034.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
-FC47 ; [.20A5.0020.001A][.2034.0020.001A] # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
-FD8E ; [.20A5.0020.0017][.2034.0020.0017][.202C.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
-FD8F ; [.20A5.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FDB9 ; [.20A5.0020.0019][.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
-FCD1 ; [.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
-FC89 ; [.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
-FC48 ; [.20A5.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
-FDB1 ; [.20A5.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
-FC49 ; [.20A5.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
-FC4A ; [.20A5.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
-0765 ; [.20A6.0020.0002] # ARABIC LETTER MEEM WITH DOT ABOVE
-0766 ; [.20A7.0020.0002] # ARABIC LETTER MEEM WITH DOT BELOW
-08A7 ; [.20A8.0020.0002] # ARABIC LETTER MEEM WITH THREE DOTS ABOVE
-0646 ; [.20A9.0020.0002] # ARABIC LETTER NOON
-1EE0D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL NOON
-1EE2D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL INITIAL NOON
-1EE4D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL TAILED NOON
-1EE6D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL STRETCHED NOON
-1EE8D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL LOOPED NOON
-1EEAD ; [.20A9.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
-FEE7 ; [.20A9.0020.0017] # ARABIC LETTER NOON INITIAL FORM
-FEE8 ; [.20A9.0020.0018] # ARABIC LETTER NOON MEDIAL FORM
-FEE6 ; [.20A9.0020.0019] # ARABIC LETTER NOON FINAL FORM
-FEE5 ; [.20A9.0020.001A] # ARABIC LETTER NOON ISOLATED FORM
-FCD2 ; [.20A9.0020.0017][.202C.0020.0017] # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
-FC4B ; [.20A9.0020.001A][.202C.0020.001A] # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
-FDB8 ; [.20A9.0020.0017][.202C.0020.0017][.2033.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
-FDBD ; [.20A9.0020.0019][.202C.0020.0019][.2033.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
-FD98 ; [.20A9.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
-FD97 ; [.20A9.0020.0019][.202C.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
-FD99 ; [.20A9.0020.0019][.202C.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FDC7 ; [.20A9.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FCD3 ; [.20A9.0020.0017][.2033.0020.0017] # ARABIC LIGATURE NOON WITH HAH INITIAL FORM
-FC4C ; [.20A9.0020.001A][.2033.0020.001A] # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
-FD95 ; [.20A9.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
-FD96 ; [.20A9.0020.0019][.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDB3 ; [.20A9.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
-FCD4 ; [.20A9.0020.0017][.2034.0020.0017] # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
-FC4D ; [.20A9.0020.001A][.2034.0020.001A] # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
-FC8A ; [.20A9.0020.0019][.204D.0020.0019] # ARABIC LIGATURE NOON WITH REH FINAL FORM
-FC8B ; [.20A9.0020.0019][.204E.0020.0019] # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
-FCD5 ; [.20A9.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
-FCEE ; [.20A9.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
-FC8C ; [.20A9.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE NOON WITH MEEM FINAL FORM
-FC4E ; [.20A9.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
-FD9B ; [.20A9.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD9A ; [.20A9.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
-FC8D ; [.20A9.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE NOON WITH NOON FINAL FORM
-FCD6 ; [.20A9.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE NOON WITH HEH INITIAL FORM
-FCEF ; [.20A9.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
-FC8E ; [.20A9.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
-FC4F ; [.20A9.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
-FC8F ; [.20A9.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE NOON WITH YEH FINAL FORM
-FC50 ; [.20A9.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
-06BA ; [.20AA.0020.0002] # ARABIC LETTER NOON GHUNNA
-1EE1D ; [.20AA.0020.0005] # ARABIC MATHEMATICAL DOTLESS NOON
-1EE5D ; [.20AA.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS NOON
-FB9F ; [.20AA.0020.0019] # ARABIC LETTER NOON GHUNNA FINAL FORM
-FB9E ; [.20AA.0020.001A] # ARABIC LETTER NOON GHUNNA ISOLATED FORM
-06BB ; [.20AB.0020.0002] # ARABIC LETTER RNOON
-FBA2 ; [.20AB.0020.0017] # ARABIC LETTER RNOON INITIAL FORM
-FBA3 ; [.20AB.0020.0018] # ARABIC LETTER RNOON MEDIAL FORM
-FBA1 ; [.20AB.0020.0019] # ARABIC LETTER RNOON FINAL FORM
-FBA0 ; [.20AB.0020.001A] # ARABIC LETTER RNOON ISOLATED FORM
-06BC ; [.20AC.0020.0002] # ARABIC LETTER NOON WITH RING
-06BD ; [.20AD.0020.0002] # ARABIC LETTER NOON WITH THREE DOTS ABOVE
-06B9 ; [.20AE.0020.0002] # ARABIC LETTER NOON WITH DOT BELOW
-0767 ; [.20AF.0020.0002] # ARABIC LETTER NOON WITH TWO DOTS BELOW
-0768 ; [.20B0.0020.0002] # ARABIC LETTER NOON WITH SMALL TAH
-0769 ; [.20B1.0020.0002] # ARABIC LETTER NOON WITH SMALL V
-0647 ; [.20B2.0020.0002] # ARABIC LETTER HEH
-1EE24 ; [.20B2.0020.0005] # ARABIC MATHEMATICAL INITIAL HEH
-1EE64 ; [.20B2.0020.0005] # ARABIC MATHEMATICAL STRETCHED HEH
-1EE84 ; [.20B2.0020.0005] # ARABIC MATHEMATICAL LOOPED HEH
-FEEB ; [.20B2.0020.0017] # ARABIC LETTER HEH INITIAL FORM
-FEEC ; [.20B2.0020.0018] # ARABIC LETTER HEH MEDIAL FORM
-FEEA ; [.20B2.0020.0019] # ARABIC LETTER HEH FINAL FORM
-FEE9 ; [.20B2.0020.001A] # ARABIC LETTER HEH ISOLATED FORM
-FCD9 ; [.20B2.0020.0017][.0000.0097.0017] # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
-FCD7 ; [.20B2.0020.0017][.202C.0020.0017] # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
-FC51 ; [.20B2.0020.001A][.202C.0020.001A] # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
-FCD8 ; [.20B2.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
-FC52 ; [.20B2.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
-FD93 ; [.20B2.0020.0017][.20A5.0020.0017][.202C.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
-FD94 ; [.20B2.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
-FC53 ; [.20B2.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
-FC54 ; [.20B2.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
-06BE ; [.20B3.0020.0002] # ARABIC LETTER HEH DOACHASHMEE
-FBAC ; [.20B3.0020.0017] # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
-FBAD ; [.20B3.0020.0018] # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
-FBAB ; [.20B3.0020.0019] # ARABIC LETTER HEH DOACHASHMEE FINAL FORM
-FBAA ; [.20B3.0020.001A] # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-06C1 ; [.20B4.0020.0002] # ARABIC LETTER HEH GOAL
-FBA8 ; [.20B4.0020.0017] # ARABIC LETTER HEH GOAL INITIAL FORM
-FBA9 ; [.20B4.0020.0018] # ARABIC LETTER HEH GOAL MEDIAL FORM
-FBA7 ; [.20B4.0020.0019] # ARABIC LETTER HEH GOAL FINAL FORM
-FBA6 ; [.20B4.0020.001A] # ARABIC LETTER HEH GOAL ISOLATED FORM
-06C2 ; [.20B4.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C3 ; [.20B5.0020.0002] # ARABIC LETTER TEH MARBUTA GOAL
-06FF ; [.20B6.0020.0002] # ARABIC LETTER HEH WITH INVERTED V
-06D5 ; [.20B7.0020.0002] # ARABIC LETTER AE
-06C0 ; [.20B7.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH WITH YEH ABOVE
-FBA5 ; [.20B7.0020.0019][.0000.0083.0019] # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
-FBA4 ; [.20B7.0020.001A][.0000.0083.001A] # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
-0648 ; [.20B8.0020.0002] # ARABIC LETTER WAW
-06E5 ; [.20B8.0020.0004] # ARABIC SMALL WAW
-1EE05 ; [.20B8.0020.0005] # ARABIC MATHEMATICAL WAW
-1EE85 ; [.20B8.0020.0005] # ARABIC MATHEMATICAL LOOPED WAW
-1EEA5 ; [.20B8.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
-FEEE ; [.20B8.0020.0019] # ARABIC LETTER WAW FINAL FORM
-FEED ; [.20B8.0020.001A] # ARABIC LETTER WAW ISOLATED FORM
-0676 ; [.20B8.0020.0004][.2007.0020.0004] # ARABIC LETTER HIGH HAMZA WAW
-FDF8 ; [.20B8.0020.001A][.205F.0020.001A][.209E.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE WASALLAM ISOLATED FORM
-06C4 ; [.20B9.0020.0002] # ARABIC LETTER WAW WITH RING
-06C5 ; [.20BA.0020.0002] # ARABIC LETTER KIRGHIZ OE
-FBE1 ; [.20BA.0020.0019] # ARABIC LETTER KIRGHIZ OE FINAL FORM
-FBE0 ; [.20BA.0020.001A] # ARABIC LETTER KIRGHIZ OE ISOLATED FORM
-06C6 ; [.20BB.0020.0002] # ARABIC LETTER OE
-FBDA ; [.20BB.0020.0019] # ARABIC LETTER OE FINAL FORM
-FBD9 ; [.20BB.0020.001A] # ARABIC LETTER OE ISOLATED FORM
-06C7 ; [.20BC.0020.0002] # ARABIC LETTER U
-FBD8 ; [.20BC.0020.0019] # ARABIC LETTER U FINAL FORM
-FBD7 ; [.20BC.0020.001A] # ARABIC LETTER U ISOLATED FORM
-0677 ; [.20BC.0020.0004][.2007.0020.0004] # ARABIC LETTER U WITH HAMZA ABOVE
-FBDD ; [.20BC.0020.001A][.2007.0020.001A] # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
-06C8 ; [.20BD.0020.0002] # ARABIC LETTER YU
-FBDC ; [.20BD.0020.0019] # ARABIC LETTER YU FINAL FORM
-FBDB ; [.20BD.0020.001A] # ARABIC LETTER YU ISOLATED FORM
-06C9 ; [.20BE.0020.0002] # ARABIC LETTER KIRGHIZ YU
-FBE3 ; [.20BE.0020.0019] # ARABIC LETTER KIRGHIZ YU FINAL FORM
-FBE2 ; [.20BE.0020.001A] # ARABIC LETTER KIRGHIZ YU ISOLATED FORM
-06CA ; [.20BF.0020.0002] # ARABIC LETTER WAW WITH TWO DOTS ABOVE
-06CB ; [.20C0.0020.0002] # ARABIC LETTER VE
-FBDF ; [.20C0.0020.0019] # ARABIC LETTER VE FINAL FORM
-FBDE ; [.20C0.0020.001A] # ARABIC LETTER VE ISOLATED FORM
-08B1 ; [.20C1.0020.0002] # ARABIC LETTER STRAIGHT WAW
-06CF ; [.20C2.0020.0002] # ARABIC LETTER WAW WITH DOT ABOVE
-0778 ; [.20C3.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0779 ; [.20C4.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-08AB ; [.20C5.0020.0002] # ARABIC LETTER WAW WITH DOT WITHIN
-0649 ; [.20C6.0020.0002] # ARABIC LETTER ALEF MAKSURA
-FBE8 ; [.20C6.0020.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9 ; [.20C6.0020.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FEF0 ; [.20C6.0020.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEEF ; [.20C6.0020.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FC90 ; [.20C6.0020.0019][.0000.0097.0019] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC5D ; [.20C6.0020.001A][.0000.0097.001A] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
-064A ; [.20C7.0020.0002] # ARABIC LETTER YEH
-06E6 ; [.20C7.0020.0004] # ARABIC SMALL YEH
-1EE09 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL YEH
-1EE29 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL INITIAL YEH
-1EE49 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL TAILED YEH
-1EE69 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL STRETCHED YEH
-1EE89 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL LOOPED YEH
-1EEA9 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
-FEF3 ; [.20C7.0020.0017] # ARABIC LETTER YEH INITIAL FORM
-FEF4 ; [.20C7.0020.0018] # ARABIC LETTER YEH MEDIAL FORM
-FEF2 ; [.20C7.0020.0019] # ARABIC LETTER YEH FINAL FORM
-FEF1 ; [.20C7.0020.001A] # ARABIC LETTER YEH ISOLATED FORM
-0678 ; [.20C7.0020.0004][.2007.0020.0004] # ARABIC LETTER HIGH HAMZA YEH
-FCDA ; [.20C7.0020.0017][.202C.0020.0017] # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
-FC55 ; [.20C7.0020.001A][.202C.0020.001A] # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
-FDAF ; [.20C7.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
-FCDB ; [.20C7.0020.0017][.2033.0020.0017] # ARABIC LIGATURE YEH WITH HAH INITIAL FORM
-FC56 ; [.20C7.0020.001A][.2033.0020.001A] # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
-FDAE ; [.20C7.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
-FCDC ; [.20C7.0020.0017][.2034.0020.0017] # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
-FC57 ; [.20C7.0020.001A][.2034.0020.001A] # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
-FC91 ; [.20C7.0020.0019][.204D.0020.0019] # ARABIC LIGATURE YEH WITH REH FINAL FORM
-FC92 ; [.20C7.0020.0019][.204E.0020.0019] # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
-FCDD ; [.20C7.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
-FCF0 ; [.20C7.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
-FC93 ; [.20C7.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE YEH WITH MEEM FINAL FORM
-FC58 ; [.20C7.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
-FD9D ; [.20C7.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
-FD9C ; [.20C7.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
-FDB0 ; [.20C7.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
-FC94 ; [.20C7.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE YEH WITH NOON FINAL FORM
-FCDE ; [.20C7.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE YEH WITH HEH INITIAL FORM
-FCF1 ; [.20C7.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
-FC95 ; [.20C7.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
-FC59 ; [.20C7.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
-FC96 ; [.20C7.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH YEH FINAL FORM
-FC5A ; [.20C7.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
-06CC ; [.20C8.0020.0002] # ARABIC LETTER FARSI YEH
-FBFE ; [.20C8.0020.0017] # ARABIC LETTER FARSI YEH INITIAL FORM
-FBFF ; [.20C8.0020.0018] # ARABIC LETTER FARSI YEH MEDIAL FORM
-FBFD ; [.20C8.0020.0019] # ARABIC LETTER FARSI YEH FINAL FORM
-FBFC ; [.20C8.0020.001A] # ARABIC LETTER FARSI YEH ISOLATED FORM
-06CD ; [.20C9.0020.0002] # ARABIC LETTER YEH WITH TAIL
-06CE ; [.20CA.0020.0002] # ARABIC LETTER YEH WITH SMALL V
-06D0 ; [.20CB.0020.0002] # ARABIC LETTER E
-FBE6 ; [.20CB.0020.0017] # ARABIC LETTER E INITIAL FORM
-FBE7 ; [.20CB.0020.0018] # ARABIC LETTER E MEDIAL FORM
-FBE5 ; [.20CB.0020.0019] # ARABIC LETTER E FINAL FORM
-FBE4 ; [.20CB.0020.001A] # ARABIC LETTER E ISOLATED FORM
-06D1 ; [.20CC.0020.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
-063D ; [.20CD.0020.0002] # ARABIC LETTER FARSI YEH WITH INVERTED V
-063E ; [.20CE.0020.0002] # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
-063F ; [.20CF.0020.0002] # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0620 ; [.20D0.0020.0002] # ARABIC LETTER KASHMIRI YEH
-0775 ; [.20D1.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0776 ; [.20D2.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0777 ; [.20D3.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-06D2 ; [.20D4.0020.0002] # ARABIC LETTER YEH BARREE
-FBAF ; [.20D4.0020.0019] # ARABIC LETTER YEH BARREE FINAL FORM
-FBAE ; [.20D4.0020.001A] # ARABIC LETTER YEH BARREE ISOLATED FORM
-06D3 ; [.20D4.0020.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-FBB1 ; [.20D4.0020.0019][.0000.0083.0019] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB0 ; [.20D4.0020.001A][.0000.0083.001A] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-077A ; [.20D5.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-077B ; [.20D6.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0710 ; [.20D7.0020.0002] # SYRIAC LETTER ALAPH
-0712 ; [.20D8.0020.0002] # SYRIAC LETTER BETH
-072D ; [.20D8.0020.0004][.0000.010A.0004] # SYRIAC LETTER PERSIAN BHETH
-0713 ; [.20D9.0020.0002] # SYRIAC LETTER GAMAL
-0714 ; [.20D9.0020.0004][.0000.0109.0004] # SYRIAC LETTER GAMAL GARSHUNI
-072E ; [.20D9.0020.0004][.0000.010A.0004] # SYRIAC LETTER PERSIAN GHAMAL
-0716 ; [.20DA.0020.0002] # SYRIAC LETTER DOTLESS DALATH RISH
-0715 ; [.20DB.0020.0002] # SYRIAC LETTER DALATH
-072F ; [.20DB.0020.0004][.0000.010A.0004] # SYRIAC LETTER PERSIAN DHALATH
-0717 ; [.20DC.0020.0002] # SYRIAC LETTER HE
-0718 ; [.20DD.0020.0002] # SYRIAC LETTER WAW
-0719 ; [.20DE.0020.0002] # SYRIAC LETTER ZAIN
-074D ; [.20DF.0020.0002] # SYRIAC LETTER SOGDIAN ZHAIN
-071A ; [.20E0.0020.0002] # SYRIAC LETTER HETH
-071B ; [.20E1.0020.0002] # SYRIAC LETTER TETH
-071C ; [.20E1.0020.0004][.0000.0109.0004] # SYRIAC LETTER TETH GARSHUNI
-071D ; [.20E2.0020.0002] # SYRIAC LETTER YUDH
-071E ; [.20E3.0020.0002] # SYRIAC LETTER YUDH HE
-071F ; [.20E4.0020.0002] # SYRIAC LETTER KAPH
-074E ; [.20E5.0020.0002] # SYRIAC LETTER SOGDIAN KHAPH
-0720 ; [.20E6.0020.0002] # SYRIAC LETTER LAMADH
-0721 ; [.20E7.0020.0002] # SYRIAC LETTER MIM
-0722 ; [.20E8.0020.0002] # SYRIAC LETTER NUN
-0723 ; [.20E9.0020.0002] # SYRIAC LETTER SEMKATH
-0724 ; [.20E9.0020.0019] # SYRIAC LETTER FINAL SEMKATH
-0725 ; [.20EA.0020.0002] # SYRIAC LETTER E
-0726 ; [.20EB.0020.0002] # SYRIAC LETTER PE
-0727 ; [.20EB.0020.0004][.0000.0109.0004] # SYRIAC LETTER REVERSED PE
-074F ; [.20EC.0020.0002] # SYRIAC LETTER SOGDIAN FE
-0728 ; [.20ED.0020.0002] # SYRIAC LETTER SADHE
-0729 ; [.20EE.0020.0002] # SYRIAC LETTER QAPH
-072A ; [.20EF.0020.0002] # SYRIAC LETTER RISH
-072B ; [.20F0.0020.0002] # SYRIAC LETTER SHIN
-072C ; [.20F1.0020.0002] # SYRIAC LETTER TAW
-0840 ; [.20F2.0020.0002] # MANDAIC LETTER HALQA
-0841 ; [.20F3.0020.0002] # MANDAIC LETTER AB
-0842 ; [.20F4.0020.0002] # MANDAIC LETTER AG
-0843 ; [.20F5.0020.0002] # MANDAIC LETTER AD
-0844 ; [.20F6.0020.0002] # MANDAIC LETTER AH
-0845 ; [.20F7.0020.0002] # MANDAIC LETTER USHENNA
-0846 ; [.20F8.0020.0002] # MANDAIC LETTER AZ
-0847 ; [.20F9.0020.0002] # MANDAIC LETTER IT
-0848 ; [.20FA.0020.0002] # MANDAIC LETTER ATT
-0849 ; [.20FB.0020.0002] # MANDAIC LETTER AKSA
-084A ; [.20FC.0020.0002] # MANDAIC LETTER AK
-084B ; [.20FD.0020.0002] # MANDAIC LETTER AL
-084C ; [.20FE.0020.0002] # MANDAIC LETTER AM
-084D ; [.20FF.0020.0002] # MANDAIC LETTER AN
-084E ; [.2100.0020.0002] # MANDAIC LETTER AS
-084F ; [.2101.0020.0002] # MANDAIC LETTER IN
-0850 ; [.2102.0020.0002] # MANDAIC LETTER AP
-0851 ; [.2103.0020.0002] # MANDAIC LETTER ASZ
-0852 ; [.2104.0020.0002] # MANDAIC LETTER AQ
-0853 ; [.2105.0020.0002] # MANDAIC LETTER AR
-0854 ; [.2106.0020.0002] # MANDAIC LETTER ASH
-0855 ; [.2107.0020.0002] # MANDAIC LETTER AT
-0856 ; [.2108.0020.0002] # MANDAIC LETTER DUSHENNA
-0857 ; [.2109.0020.0002] # MANDAIC LETTER KAD
-0858 ; [.210A.0020.0002] # MANDAIC LETTER AIN
-0780 ; [.210B.0020.0002] # THAANA LETTER HAA
-0799 ; [.210C.0020.0002] # THAANA LETTER HHAA
-079A ; [.210D.0020.0002] # THAANA LETTER KHAA
-0781 ; [.210E.0020.0002] # THAANA LETTER SHAVIYANI
-0782 ; [.210F.0020.0002] # THAANA LETTER NOONU
-0783 ; [.2110.0020.0002] # THAANA LETTER RAA
-079C ; [.2111.0020.0002] # THAANA LETTER ZAA
-0784 ; [.2112.0020.0002] # THAANA LETTER BAA
-0785 ; [.2113.0020.0002] # THAANA LETTER LHAVIYANI
-0786 ; [.2114.0020.0002] # THAANA LETTER KAAFU
-0787 ; [.2115.0020.0002] # THAANA LETTER ALIFU
-07A2 ; [.2116.0020.0002] # THAANA LETTER AINU
-07A3 ; [.2117.0020.0002] # THAANA LETTER GHAINU
-0788 ; [.2118.0020.0002] # THAANA LETTER VAAVU
-07A5 ; [.2119.0020.0002] # THAANA LETTER WAAVU
-0789 ; [.211A.0020.0002] # THAANA LETTER MEEMU
-078A ; [.211B.0020.0002] # THAANA LETTER FAAFU
-078B ; [.211C.0020.0002] # THAANA LETTER DHAALU
-079B ; [.211D.0020.0002] # THAANA LETTER THAALU
-078C ; [.211E.0020.0002] # THAANA LETTER THAA
-0798 ; [.211F.0020.0002] # THAANA LETTER TTAA
-07A0 ; [.2120.0020.0002] # THAANA LETTER TO
-07A1 ; [.2121.0020.0002] # THAANA LETTER ZO
-078D ; [.2122.0020.0002] # THAANA LETTER LAAMU
-078E ; [.2123.0020.0002] # THAANA LETTER GAAFU
-07A4 ; [.2124.0020.0002] # THAANA LETTER QAAFU
-078F ; [.2125.0020.0002] # THAANA LETTER GNAVIYANI
-0790 ; [.2126.0020.0002] # THAANA LETTER SEENU
-079D ; [.2127.0020.0002] # THAANA LETTER SHEENU
-079E ; [.2128.0020.0002] # THAANA LETTER SAADHU
-079F ; [.2129.0020.0002] # THAANA LETTER DAADHU
-0791 ; [.212A.0020.0002] # THAANA LETTER DAVIYANI
-0792 ; [.212B.0020.0002] # THAANA LETTER ZAVIYANI
-0793 ; [.212C.0020.0002] # THAANA LETTER TAVIYANI
-0794 ; [.212D.0020.0002] # THAANA LETTER YAA
-0795 ; [.212E.0020.0002] # THAANA LETTER PAVIYANI
-0796 ; [.212F.0020.0002] # THAANA LETTER JAVIYANI
-0797 ; [.2130.0020.0002] # THAANA LETTER CHAVIYANI
-07B1 ; [.2131.0020.0002] # THAANA LETTER NAA
-07A6 ; [.2132.0020.0002] # THAANA ABAFILI
-07A7 ; [.2133.0020.0002] # THAANA AABAAFILI
-07A8 ; [.2134.0020.0002] # THAANA IBIFILI
-07A9 ; [.2135.0020.0002] # THAANA EEBEEFILI
-07AA ; [.2136.0020.0002] # THAANA UBUFILI
-07AB ; [.2137.0020.0002] # THAANA OOBOOFILI
-07AC ; [.2138.0020.0002] # THAANA EBEFILI
-07AD ; [.2139.0020.0002] # THAANA EYBEYFILI
-07AE ; [.213A.0020.0002] # THAANA OBOFILI
-07AF ; [.213B.0020.0002] # THAANA OABOAFILI
-07B0 ; [.213C.0020.0002] # THAANA SUKUN
-07CA ; [.213D.0020.0002] # NKO LETTER A
-07CB ; [.213E.0020.0002] # NKO LETTER EE
-07CC ; [.213F.0020.0002] # NKO LETTER I
-07CD ; [.2140.0020.0002] # NKO LETTER E
-07CE ; [.2141.0020.0002] # NKO LETTER U
-07CF ; [.2142.0020.0002] # NKO LETTER OO
-07D0 ; [.2143.0020.0002] # NKO LETTER O
-07D1 ; [.2144.0020.0002] # NKO LETTER DAGBASINNA
-07D2 ; [.2145.0020.0002] # NKO LETTER N
-07D3 ; [.2146.0020.0002] # NKO LETTER BA
-07D4 ; [.2147.0020.0002] # NKO LETTER PA
-07D5 ; [.2148.0020.0002] # NKO LETTER TA
-07D6 ; [.2149.0020.0002] # NKO LETTER JA
-07E8 ; [.2149.0020.0004][.0000.0108.0004] # NKO LETTER JONA JA
-07D7 ; [.214A.0020.0002] # NKO LETTER CHA
-07E9 ; [.214A.0020.0004][.0000.0108.0004] # NKO LETTER JONA CHA
-07D8 ; [.214B.0020.0002] # NKO LETTER DA
-07D9 ; [.214C.0020.0002] # NKO LETTER RA
-07EA ; [.214C.0020.0004][.0000.0108.0004] # NKO LETTER JONA RA
-07DA ; [.214D.0020.0002] # NKO LETTER RRA
-07DB ; [.214E.0020.0002] # NKO LETTER SA
-07DC ; [.214F.0020.0002] # NKO LETTER GBA
-07DD ; [.2150.0020.0002] # NKO LETTER FA
-07DE ; [.2151.0020.0002] # NKO LETTER KA
-07DF ; [.2152.0020.0002] # NKO LETTER LA
-07E0 ; [.2153.0020.0002] # NKO LETTER NA WOLOSO
-07E1 ; [.2154.0020.0002] # NKO LETTER MA
-07E2 ; [.2155.0020.0002] # NKO LETTER NYA
-07E3 ; [.2156.0020.0002] # NKO LETTER NA
-07E4 ; [.2157.0020.0002] # NKO LETTER HA
-07E5 ; [.2158.0020.0002] # NKO LETTER WA
-07E6 ; [.2159.0020.0002] # NKO LETTER YA
-07E7 ; [.215A.0020.0002] # NKO LETTER NYA WOLOSO
-07F4 ; [.215B.0020.0002] # NKO HIGH TONE APOSTROPHE
-07F5 ; [.215C.0020.0002] # NKO LOW TONE APOSTROPHE
-2D30 ; [.215D.0020.0002] # TIFINAGH LETTER YA
-2D31 ; [.215E.0020.0002] # TIFINAGH LETTER YAB
-2D32 ; [.215F.0020.0002] # TIFINAGH LETTER YABH
-2D33 ; [.2160.0020.0002] # TIFINAGH LETTER YAG
-2D34 ; [.2161.0020.0002] # TIFINAGH LETTER YAGHH
-2D35 ; [.2162.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAJ
-2D36 ; [.2163.0020.0002] # TIFINAGH LETTER YAJ
-2D37 ; [.2164.0020.0002] # TIFINAGH LETTER YAD
-2D38 ; [.2165.0020.0002] # TIFINAGH LETTER YADH
-2D39 ; [.2166.0020.0002] # TIFINAGH LETTER YADD
-2D3A ; [.2167.0020.0002] # TIFINAGH LETTER YADDH
-2D3B ; [.2168.0020.0002] # TIFINAGH LETTER YEY
-2D66 ; [.2169.0020.0002] # TIFINAGH LETTER YE
-2D3C ; [.216A.0020.0002] # TIFINAGH LETTER YAF
-2D3D ; [.216B.0020.0002] # TIFINAGH LETTER YAK
-2D3E ; [.216C.0020.0002] # TIFINAGH LETTER TUAREG YAK
-2D3F ; [.216D.0020.0002] # TIFINAGH LETTER YAKHH
-2D40 ; [.216E.0020.0002] # TIFINAGH LETTER YAH
-2D41 ; [.216F.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAH
-2D42 ; [.2170.0020.0002] # TIFINAGH LETTER TUAREG YAH
-2D43 ; [.2171.0020.0002] # TIFINAGH LETTER YAHH
-2D44 ; [.2172.0020.0002] # TIFINAGH LETTER YAA
-2D45 ; [.2173.0020.0002] # TIFINAGH LETTER YAKH
-2D46 ; [.2174.0020.0002] # TIFINAGH LETTER TUAREG YAKH
-2D47 ; [.2175.0020.0002] # TIFINAGH LETTER YAQ
-2D48 ; [.2176.0020.0002] # TIFINAGH LETTER TUAREG YAQ
-2D49 ; [.2177.0020.0002] # TIFINAGH LETTER YI
-2D4A ; [.2178.0020.0002] # TIFINAGH LETTER YAZH
-2D4B ; [.2179.0020.0002] # TIFINAGH LETTER AHAGGAR YAZH
-2D4C ; [.217A.0020.0002] # TIFINAGH LETTER TUAREG YAZH
-2D4D ; [.217B.0020.0002] # TIFINAGH LETTER YAL
-2D4E ; [.217C.0020.0002] # TIFINAGH LETTER YAM
-2D4F ; [.217D.0020.0002] # TIFINAGH LETTER YAN
-2D50 ; [.217E.0020.0002] # TIFINAGH LETTER TUAREG YAGN
-2D51 ; [.217F.0020.0002] # TIFINAGH LETTER TUAREG YANG
-2D52 ; [.2180.0020.0002] # TIFINAGH LETTER YAP
-2D53 ; [.2181.0020.0002] # TIFINAGH LETTER YU
-2D67 ; [.2182.0020.0002] # TIFINAGH LETTER YO
-2D54 ; [.2183.0020.0002] # TIFINAGH LETTER YAR
-2D55 ; [.2184.0020.0002] # TIFINAGH LETTER YARR
-2D56 ; [.2185.0020.0002] # TIFINAGH LETTER YAGH
-2D57 ; [.2186.0020.0002] # TIFINAGH LETTER TUAREG YAGH
-2D58 ; [.2187.0020.0002] # TIFINAGH LETTER AYER YAGH
-2D59 ; [.2188.0020.0002] # TIFINAGH LETTER YAS
-2D5A ; [.2189.0020.0002] # TIFINAGH LETTER YASS
-2D5B ; [.218A.0020.0002] # TIFINAGH LETTER YASH
-2D5C ; [.218B.0020.0002] # TIFINAGH LETTER YAT
-2D5D ; [.218C.0020.0002] # TIFINAGH LETTER YATH
-2D5E ; [.218D.0020.0002] # TIFINAGH LETTER YACH
-2D5F ; [.218E.0020.0002] # TIFINAGH LETTER YATT
-2D60 ; [.218F.0020.0002] # TIFINAGH LETTER YAV
-2D61 ; [.2190.0020.0002] # TIFINAGH LETTER YAW
-2D62 ; [.2191.0020.0002] # TIFINAGH LETTER YAY
-2D63 ; [.2192.0020.0002] # TIFINAGH LETTER YAZ
-2D64 ; [.2193.0020.0002] # TIFINAGH LETTER TAWELLEMET YAZ
-2D65 ; [.2194.0020.0002] # TIFINAGH LETTER YAZZ
-2D6F ; [.2195.0020.0002] # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
-1200 ; [.2196.0020.0002] # ETHIOPIC SYLLABLE HA
-1201 ; [.2197.0020.0002] # ETHIOPIC SYLLABLE HU
-1202 ; [.2198.0020.0002] # ETHIOPIC SYLLABLE HI
-1203 ; [.2199.0020.0002] # ETHIOPIC SYLLABLE HAA
-1204 ; [.219A.0020.0002] # ETHIOPIC SYLLABLE HEE
-1205 ; [.219B.0020.0002] # ETHIOPIC SYLLABLE HE
-1206 ; [.219C.0020.0002] # ETHIOPIC SYLLABLE HO
-1207 ; [.219D.0020.0002] # ETHIOPIC SYLLABLE HOA
-1208 ; [.219E.0020.0002] # ETHIOPIC SYLLABLE LA
-1209 ; [.219F.0020.0002] # ETHIOPIC SYLLABLE LU
-120A ; [.21A0.0020.0002] # ETHIOPIC SYLLABLE LI
-120B ; [.21A1.0020.0002] # ETHIOPIC SYLLABLE LAA
-120C ; [.21A2.0020.0002] # ETHIOPIC SYLLABLE LEE
-120D ; [.21A3.0020.0002] # ETHIOPIC SYLLABLE LE
-120E ; [.21A4.0020.0002] # ETHIOPIC SYLLABLE LO
-120F ; [.21A5.0020.0002] # ETHIOPIC SYLLABLE LWA
-2D80 ; [.21A6.0020.0002] # ETHIOPIC SYLLABLE LOA
-1210 ; [.21A7.0020.0002] # ETHIOPIC SYLLABLE HHA
-1211 ; [.21A8.0020.0002] # ETHIOPIC SYLLABLE HHU
-1212 ; [.21A9.0020.0002] # ETHIOPIC SYLLABLE HHI
-1213 ; [.21AA.0020.0002] # ETHIOPIC SYLLABLE HHAA
-1214 ; [.21AB.0020.0002] # ETHIOPIC SYLLABLE HHEE
-1215 ; [.21AC.0020.0002] # ETHIOPIC SYLLABLE HHE
-1216 ; [.21AD.0020.0002] # ETHIOPIC SYLLABLE HHO
-1217 ; [.21AE.0020.0002] # ETHIOPIC SYLLABLE HHWA
-1218 ; [.21AF.0020.0002] # ETHIOPIC SYLLABLE MA
-1219 ; [.21B0.0020.0002] # ETHIOPIC SYLLABLE MU
-121A ; [.21B1.0020.0002] # ETHIOPIC SYLLABLE MI
-121B ; [.21B2.0020.0002] # ETHIOPIC SYLLABLE MAA
-121C ; [.21B3.0020.0002] # ETHIOPIC SYLLABLE MEE
-121D ; [.21B4.0020.0002] # ETHIOPIC SYLLABLE ME
-121E ; [.21B5.0020.0002] # ETHIOPIC SYLLABLE MO
-121F ; [.21B6.0020.0002] # ETHIOPIC SYLLABLE MWA
-1380 ; [.21B7.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT MWA
-1381 ; [.21B8.0020.0002] # ETHIOPIC SYLLABLE MWI
-1382 ; [.21B9.0020.0002] # ETHIOPIC SYLLABLE MWEE
-1383 ; [.21BA.0020.0002] # ETHIOPIC SYLLABLE MWE
-2D81 ; [.21BB.0020.0002] # ETHIOPIC SYLLABLE MOA
-1220 ; [.21BC.0020.0002] # ETHIOPIC SYLLABLE SZA
-1221 ; [.21BD.0020.0002] # ETHIOPIC SYLLABLE SZU
-1222 ; [.21BE.0020.0002] # ETHIOPIC SYLLABLE SZI
-1223 ; [.21BF.0020.0002] # ETHIOPIC SYLLABLE SZAA
-1224 ; [.21C0.0020.0002] # ETHIOPIC SYLLABLE SZEE
-1225 ; [.21C1.0020.0002] # ETHIOPIC SYLLABLE SZE
-1226 ; [.21C2.0020.0002] # ETHIOPIC SYLLABLE SZO
-1227 ; [.21C3.0020.0002] # ETHIOPIC SYLLABLE SZWA
-1228 ; [.21C4.0020.0002] # ETHIOPIC SYLLABLE RA
-1229 ; [.21C5.0020.0002] # ETHIOPIC SYLLABLE RU
-122A ; [.21C6.0020.0002] # ETHIOPIC SYLLABLE RI
-122B ; [.21C7.0020.0002] # ETHIOPIC SYLLABLE RAA
-122C ; [.21C8.0020.0002] # ETHIOPIC SYLLABLE REE
-122D ; [.21C9.0020.0002] # ETHIOPIC SYLLABLE RE
-122E ; [.21CA.0020.0002] # ETHIOPIC SYLLABLE RO
-122F ; [.21CB.0020.0002] # ETHIOPIC SYLLABLE RWA
-2D82 ; [.21CC.0020.0002] # ETHIOPIC SYLLABLE ROA
-1230 ; [.21CD.0020.0002] # ETHIOPIC SYLLABLE SA
-1231 ; [.21CE.0020.0002] # ETHIOPIC SYLLABLE SU
-1232 ; [.21CF.0020.0002] # ETHIOPIC SYLLABLE SI
-1233 ; [.21D0.0020.0002] # ETHIOPIC SYLLABLE SAA
-1234 ; [.21D1.0020.0002] # ETHIOPIC SYLLABLE SEE
-1235 ; [.21D2.0020.0002] # ETHIOPIC SYLLABLE SE
-1236 ; [.21D3.0020.0002] # ETHIOPIC SYLLABLE SO
-1237 ; [.21D4.0020.0002] # ETHIOPIC SYLLABLE SWA
-2D83 ; [.21D5.0020.0002] # ETHIOPIC SYLLABLE SOA
-AB01 ; [.21D6.0020.0002] # ETHIOPIC SYLLABLE TTHU
-AB02 ; [.21D7.0020.0002] # ETHIOPIC SYLLABLE TTHI
-AB03 ; [.21D8.0020.0002] # ETHIOPIC SYLLABLE TTHAA
-AB04 ; [.21D9.0020.0002] # ETHIOPIC SYLLABLE TTHEE
-AB05 ; [.21DA.0020.0002] # ETHIOPIC SYLLABLE TTHE
-AB06 ; [.21DB.0020.0002] # ETHIOPIC SYLLABLE TTHO
-1238 ; [.21DC.0020.0002] # ETHIOPIC SYLLABLE SHA
-1239 ; [.21DD.0020.0002] # ETHIOPIC SYLLABLE SHU
-123A ; [.21DE.0020.0002] # ETHIOPIC SYLLABLE SHI
-123B ; [.21DF.0020.0002] # ETHIOPIC SYLLABLE SHAA
-123C ; [.21E0.0020.0002] # ETHIOPIC SYLLABLE SHEE
-123D ; [.21E1.0020.0002] # ETHIOPIC SYLLABLE SHE
-123E ; [.21E2.0020.0002] # ETHIOPIC SYLLABLE SHO
-123F ; [.21E3.0020.0002] # ETHIOPIC SYLLABLE SHWA
-2D84 ; [.21E4.0020.0002] # ETHIOPIC SYLLABLE SHOA
-1240 ; [.21E5.0020.0002] # ETHIOPIC SYLLABLE QA
-1241 ; [.21E6.0020.0002] # ETHIOPIC SYLLABLE QU
-1242 ; [.21E7.0020.0002] # ETHIOPIC SYLLABLE QI
-1243 ; [.21E8.0020.0002] # ETHIOPIC SYLLABLE QAA
-1244 ; [.21E9.0020.0002] # ETHIOPIC SYLLABLE QEE
-1245 ; [.21EA.0020.0002] # ETHIOPIC SYLLABLE QE
-1246 ; [.21EB.0020.0002] # ETHIOPIC SYLLABLE QO
-1247 ; [.21EC.0020.0002] # ETHIOPIC SYLLABLE QOA
-1248 ; [.21ED.0020.0002] # ETHIOPIC SYLLABLE QWA
-124A ; [.21EE.0020.0002] # ETHIOPIC SYLLABLE QWI
-124B ; [.21EF.0020.0002] # ETHIOPIC SYLLABLE QWAA
-124C ; [.21F0.0020.0002] # ETHIOPIC SYLLABLE QWEE
-124D ; [.21F1.0020.0002] # ETHIOPIC SYLLABLE QWE
-1250 ; [.21F2.0020.0002] # ETHIOPIC SYLLABLE QHA
-1251 ; [.21F3.0020.0002] # ETHIOPIC SYLLABLE QHU
-1252 ; [.21F4.0020.0002] # ETHIOPIC SYLLABLE QHI
-1253 ; [.21F5.0020.0002] # ETHIOPIC SYLLABLE QHAA
-1254 ; [.21F6.0020.0002] # ETHIOPIC SYLLABLE QHEE
-1255 ; [.21F7.0020.0002] # ETHIOPIC SYLLABLE QHE
-1256 ; [.21F8.0020.0002] # ETHIOPIC SYLLABLE QHO
-1258 ; [.21F9.0020.0002] # ETHIOPIC SYLLABLE QHWA
-125A ; [.21FA.0020.0002] # ETHIOPIC SYLLABLE QHWI
-125B ; [.21FB.0020.0002] # ETHIOPIC SYLLABLE QHWAA
-125C ; [.21FC.0020.0002] # ETHIOPIC SYLLABLE QHWEE
-125D ; [.21FD.0020.0002] # ETHIOPIC SYLLABLE QHWE
-1260 ; [.21FE.0020.0002] # ETHIOPIC SYLLABLE BA
-1261 ; [.21FF.0020.0002] # ETHIOPIC SYLLABLE BU
-1262 ; [.2200.0020.0002] # ETHIOPIC SYLLABLE BI
-1263 ; [.2201.0020.0002] # ETHIOPIC SYLLABLE BAA
-1264 ; [.2202.0020.0002] # ETHIOPIC SYLLABLE BEE
-1265 ; [.2203.0020.0002] # ETHIOPIC SYLLABLE BE
-1266 ; [.2204.0020.0002] # ETHIOPIC SYLLABLE BO
-1267 ; [.2205.0020.0002] # ETHIOPIC SYLLABLE BWA
-1384 ; [.2206.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT BWA
-1385 ; [.2207.0020.0002] # ETHIOPIC SYLLABLE BWI
-1386 ; [.2208.0020.0002] # ETHIOPIC SYLLABLE BWEE
-1387 ; [.2209.0020.0002] # ETHIOPIC SYLLABLE BWE
-2D85 ; [.220A.0020.0002] # ETHIOPIC SYLLABLE BOA
-1268 ; [.220B.0020.0002] # ETHIOPIC SYLLABLE VA
-1269 ; [.220C.0020.0002] # ETHIOPIC SYLLABLE VU
-126A ; [.220D.0020.0002] # ETHIOPIC SYLLABLE VI
-126B ; [.220E.0020.0002] # ETHIOPIC SYLLABLE VAA
-126C ; [.220F.0020.0002] # ETHIOPIC SYLLABLE VEE
-126D ; [.2210.0020.0002] # ETHIOPIC SYLLABLE VE
-126E ; [.2211.0020.0002] # ETHIOPIC SYLLABLE VO
-126F ; [.2212.0020.0002] # ETHIOPIC SYLLABLE VWA
-1270 ; [.2213.0020.0002] # ETHIOPIC SYLLABLE TA
-1271 ; [.2214.0020.0002] # ETHIOPIC SYLLABLE TU
-1272 ; [.2215.0020.0002] # ETHIOPIC SYLLABLE TI
-1273 ; [.2216.0020.0002] # ETHIOPIC SYLLABLE TAA
-1274 ; [.2217.0020.0002] # ETHIOPIC SYLLABLE TEE
-1275 ; [.2218.0020.0002] # ETHIOPIC SYLLABLE TE
-1276 ; [.2219.0020.0002] # ETHIOPIC SYLLABLE TO
-1277 ; [.221A.0020.0002] # ETHIOPIC SYLLABLE TWA
-2D86 ; [.221B.0020.0002] # ETHIOPIC SYLLABLE TOA
-1278 ; [.221C.0020.0002] # ETHIOPIC SYLLABLE CA
-1279 ; [.221D.0020.0002] # ETHIOPIC SYLLABLE CU
-127A ; [.221E.0020.0002] # ETHIOPIC SYLLABLE CI
-127B ; [.221F.0020.0002] # ETHIOPIC SYLLABLE CAA
-127C ; [.2220.0020.0002] # ETHIOPIC SYLLABLE CEE
-127D ; [.2221.0020.0002] # ETHIOPIC SYLLABLE CE
-127E ; [.2222.0020.0002] # ETHIOPIC SYLLABLE CO
-127F ; [.2223.0020.0002] # ETHIOPIC SYLLABLE CWA
-2D87 ; [.2224.0020.0002] # ETHIOPIC SYLLABLE COA
-1280 ; [.2225.0020.0002] # ETHIOPIC SYLLABLE XA
-1281 ; [.2226.0020.0002] # ETHIOPIC SYLLABLE XU
-1282 ; [.2227.0020.0002] # ETHIOPIC SYLLABLE XI
-1283 ; [.2228.0020.0002] # ETHIOPIC SYLLABLE XAA
-1284 ; [.2229.0020.0002] # ETHIOPIC SYLLABLE XEE
-1285 ; [.222A.0020.0002] # ETHIOPIC SYLLABLE XE
-1286 ; [.222B.0020.0002] # ETHIOPIC SYLLABLE XO
-1287 ; [.222C.0020.0002] # ETHIOPIC SYLLABLE XOA
-1288 ; [.222D.0020.0002] # ETHIOPIC SYLLABLE XWA
-128A ; [.222E.0020.0002] # ETHIOPIC SYLLABLE XWI
-128B ; [.222F.0020.0002] # ETHIOPIC SYLLABLE XWAA
-128C ; [.2230.0020.0002] # ETHIOPIC SYLLABLE XWEE
-128D ; [.2231.0020.0002] # ETHIOPIC SYLLABLE XWE
-1290 ; [.2232.0020.0002] # ETHIOPIC SYLLABLE NA
-1291 ; [.2233.0020.0002] # ETHIOPIC SYLLABLE NU
-1292 ; [.2234.0020.0002] # ETHIOPIC SYLLABLE NI
-1293 ; [.2235.0020.0002] # ETHIOPIC SYLLABLE NAA
-1294 ; [.2236.0020.0002] # ETHIOPIC SYLLABLE NEE
-1295 ; [.2237.0020.0002] # ETHIOPIC SYLLABLE NE
-1296 ; [.2238.0020.0002] # ETHIOPIC SYLLABLE NO
-1297 ; [.2239.0020.0002] # ETHIOPIC SYLLABLE NWA
-2D88 ; [.223A.0020.0002] # ETHIOPIC SYLLABLE NOA
-1298 ; [.223B.0020.0002] # ETHIOPIC SYLLABLE NYA
-1299 ; [.223C.0020.0002] # ETHIOPIC SYLLABLE NYU
-129A ; [.223D.0020.0002] # ETHIOPIC SYLLABLE NYI
-129B ; [.223E.0020.0002] # ETHIOPIC SYLLABLE NYAA
-129C ; [.223F.0020.0002] # ETHIOPIC SYLLABLE NYEE
-129D ; [.2240.0020.0002] # ETHIOPIC SYLLABLE NYE
-129E ; [.2241.0020.0002] # ETHIOPIC SYLLABLE NYO
-129F ; [.2242.0020.0002] # ETHIOPIC SYLLABLE NYWA
-2D89 ; [.2243.0020.0002] # ETHIOPIC SYLLABLE NYOA
-12A0 ; [.2244.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL A
-12A1 ; [.2245.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL U
-12A2 ; [.2246.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL I
-12A3 ; [.2247.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL AA
-12A4 ; [.2248.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL EE
-12A5 ; [.2249.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL E
-12A6 ; [.224A.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL O
-12A7 ; [.224B.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL WA
-2D8A ; [.224C.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL OA
-12A8 ; [.224D.0020.0002] # ETHIOPIC SYLLABLE KA
-12A9 ; [.224E.0020.0002] # ETHIOPIC SYLLABLE KU
-12AA ; [.224F.0020.0002] # ETHIOPIC SYLLABLE KI
-12AB ; [.2250.0020.0002] # ETHIOPIC SYLLABLE KAA
-12AC ; [.2251.0020.0002] # ETHIOPIC SYLLABLE KEE
-12AD ; [.2252.0020.0002] # ETHIOPIC SYLLABLE KE
-12AE ; [.2253.0020.0002] # ETHIOPIC SYLLABLE KO
-12AF ; [.2254.0020.0002] # ETHIOPIC SYLLABLE KOA
-12B0 ; [.2255.0020.0002] # ETHIOPIC SYLLABLE KWA
-12B2 ; [.2256.0020.0002] # ETHIOPIC SYLLABLE KWI
-12B3 ; [.2257.0020.0002] # ETHIOPIC SYLLABLE KWAA
-12B4 ; [.2258.0020.0002] # ETHIOPIC SYLLABLE KWEE
-12B5 ; [.2259.0020.0002] # ETHIOPIC SYLLABLE KWE
-12B8 ; [.225A.0020.0002] # ETHIOPIC SYLLABLE KXA
-12B9 ; [.225B.0020.0002] # ETHIOPIC SYLLABLE KXU
-12BA ; [.225C.0020.0002] # ETHIOPIC SYLLABLE KXI
-12BB ; [.225D.0020.0002] # ETHIOPIC SYLLABLE KXAA
-12BC ; [.225E.0020.0002] # ETHIOPIC SYLLABLE KXEE
-12BD ; [.225F.0020.0002] # ETHIOPIC SYLLABLE KXE
-12BE ; [.2260.0020.0002] # ETHIOPIC SYLLABLE KXO
-12C0 ; [.2261.0020.0002] # ETHIOPIC SYLLABLE KXWA
-12C2 ; [.2262.0020.0002] # ETHIOPIC SYLLABLE KXWI
-12C3 ; [.2263.0020.0002] # ETHIOPIC SYLLABLE KXWAA
-12C4 ; [.2264.0020.0002] # ETHIOPIC SYLLABLE KXWEE
-12C5 ; [.2265.0020.0002] # ETHIOPIC SYLLABLE KXWE
-12C8 ; [.2266.0020.0002] # ETHIOPIC SYLLABLE WA
-12C9 ; [.2267.0020.0002] # ETHIOPIC SYLLABLE WU
-12CA ; [.2268.0020.0002] # ETHIOPIC SYLLABLE WI
-12CB ; [.2269.0020.0002] # ETHIOPIC SYLLABLE WAA
-12CC ; [.226A.0020.0002] # ETHIOPIC SYLLABLE WEE
-12CD ; [.226B.0020.0002] # ETHIOPIC SYLLABLE WE
-12CE ; [.226C.0020.0002] # ETHIOPIC SYLLABLE WO
-12CF ; [.226D.0020.0002] # ETHIOPIC SYLLABLE WOA
-12D0 ; [.226E.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL A
-12D1 ; [.226F.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL U
-12D2 ; [.2270.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL I
-12D3 ; [.2271.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL AA
-12D4 ; [.2272.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL EE
-12D5 ; [.2273.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL E
-12D6 ; [.2274.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8 ; [.2275.0020.0002] # ETHIOPIC SYLLABLE ZA
-12D9 ; [.2276.0020.0002] # ETHIOPIC SYLLABLE ZU
-12DA ; [.2277.0020.0002] # ETHIOPIC SYLLABLE ZI
-12DB ; [.2278.0020.0002] # ETHIOPIC SYLLABLE ZAA
-12DC ; [.2279.0020.0002] # ETHIOPIC SYLLABLE ZEE
-12DD ; [.227A.0020.0002] # ETHIOPIC SYLLABLE ZE
-12DE ; [.227B.0020.0002] # ETHIOPIC SYLLABLE ZO
-12DF ; [.227C.0020.0002] # ETHIOPIC SYLLABLE ZWA
-2D8B ; [.227D.0020.0002] # ETHIOPIC SYLLABLE ZOA
-AB11 ; [.227E.0020.0002] # ETHIOPIC SYLLABLE DZU
-AB12 ; [.227F.0020.0002] # ETHIOPIC SYLLABLE DZI
-AB13 ; [.2280.0020.0002] # ETHIOPIC SYLLABLE DZAA
-AB14 ; [.2281.0020.0002] # ETHIOPIC SYLLABLE DZEE
-AB15 ; [.2282.0020.0002] # ETHIOPIC SYLLABLE DZE
-AB16 ; [.2283.0020.0002] # ETHIOPIC SYLLABLE DZO
-12E0 ; [.2284.0020.0002] # ETHIOPIC SYLLABLE ZHA
-12E1 ; [.2285.0020.0002] # ETHIOPIC SYLLABLE ZHU
-12E2 ; [.2286.0020.0002] # ETHIOPIC SYLLABLE ZHI
-12E3 ; [.2287.0020.0002] # ETHIOPIC SYLLABLE ZHAA
-12E4 ; [.2288.0020.0002] # ETHIOPIC SYLLABLE ZHEE
-12E5 ; [.2289.0020.0002] # ETHIOPIC SYLLABLE ZHE
-12E6 ; [.228A.0020.0002] # ETHIOPIC SYLLABLE ZHO
-12E7 ; [.228B.0020.0002] # ETHIOPIC SYLLABLE ZHWA
-12E8 ; [.228C.0020.0002] # ETHIOPIC SYLLABLE YA
-12E9 ; [.228D.0020.0002] # ETHIOPIC SYLLABLE YU
-12EA ; [.228E.0020.0002] # ETHIOPIC SYLLABLE YI
-12EB ; [.228F.0020.0002] # ETHIOPIC SYLLABLE YAA
-12EC ; [.2290.0020.0002] # ETHIOPIC SYLLABLE YEE
-12ED ; [.2291.0020.0002] # ETHIOPIC SYLLABLE YE
-12EE ; [.2292.0020.0002] # ETHIOPIC SYLLABLE YO
-12EF ; [.2293.0020.0002] # ETHIOPIC SYLLABLE YOA
-12F0 ; [.2294.0020.0002] # ETHIOPIC SYLLABLE DA
-12F1 ; [.2295.0020.0002] # ETHIOPIC SYLLABLE DU
-12F2 ; [.2296.0020.0002] # ETHIOPIC SYLLABLE DI
-12F3 ; [.2297.0020.0002] # ETHIOPIC SYLLABLE DAA
-12F4 ; [.2298.0020.0002] # ETHIOPIC SYLLABLE DEE
-12F5 ; [.2299.0020.0002] # ETHIOPIC SYLLABLE DE
-12F6 ; [.229A.0020.0002] # ETHIOPIC SYLLABLE DO
-12F7 ; [.229B.0020.0002] # ETHIOPIC SYLLABLE DWA
-2D8C ; [.229C.0020.0002] # ETHIOPIC SYLLABLE DOA
-AB09 ; [.229D.0020.0002] # ETHIOPIC SYLLABLE DDHU
-AB0A ; [.229E.0020.0002] # ETHIOPIC SYLLABLE DDHI
-AB0B ; [.229F.0020.0002] # ETHIOPIC SYLLABLE DDHAA
-AB0C ; [.22A0.0020.0002] # ETHIOPIC SYLLABLE DDHEE
-AB0D ; [.22A1.0020.0002] # ETHIOPIC SYLLABLE DDHE
-AB0E ; [.22A2.0020.0002] # ETHIOPIC SYLLABLE DDHO
-12F8 ; [.22A3.0020.0002] # ETHIOPIC SYLLABLE DDA
-12F9 ; [.22A4.0020.0002] # ETHIOPIC SYLLABLE DDU
-12FA ; [.22A5.0020.0002] # ETHIOPIC SYLLABLE DDI
-12FB ; [.22A6.0020.0002] # ETHIOPIC SYLLABLE DDAA
-12FC ; [.22A7.0020.0002] # ETHIOPIC SYLLABLE DDEE
-12FD ; [.22A8.0020.0002] # ETHIOPIC SYLLABLE DDE
-12FE ; [.22A9.0020.0002] # ETHIOPIC SYLLABLE DDO
-12FF ; [.22AA.0020.0002] # ETHIOPIC SYLLABLE DDWA
-2D8D ; [.22AB.0020.0002] # ETHIOPIC SYLLABLE DDOA
-1300 ; [.22AC.0020.0002] # ETHIOPIC SYLLABLE JA
-1301 ; [.22AD.0020.0002] # ETHIOPIC SYLLABLE JU
-1302 ; [.22AE.0020.0002] # ETHIOPIC SYLLABLE JI
-1303 ; [.22AF.0020.0002] # ETHIOPIC SYLLABLE JAA
-1304 ; [.22B0.0020.0002] # ETHIOPIC SYLLABLE JEE
-1305 ; [.22B1.0020.0002] # ETHIOPIC SYLLABLE JE
-1306 ; [.22B2.0020.0002] # ETHIOPIC SYLLABLE JO
-1307 ; [.22B3.0020.0002] # ETHIOPIC SYLLABLE JWA
-2D8E ; [.22B4.0020.0002] # ETHIOPIC SYLLABLE JOA
-1308 ; [.22B5.0020.0002] # ETHIOPIC SYLLABLE GA
-1309 ; [.22B6.0020.0002] # ETHIOPIC SYLLABLE GU
-130A ; [.22B7.0020.0002] # ETHIOPIC SYLLABLE GI
-130B ; [.22B8.0020.0002] # ETHIOPIC SYLLABLE GAA
-130C ; [.22B9.0020.0002] # ETHIOPIC SYLLABLE GEE
-130D ; [.22BA.0020.0002] # ETHIOPIC SYLLABLE GE
-130E ; [.22BB.0020.0002] # ETHIOPIC SYLLABLE GO
-130F ; [.22BC.0020.0002] # ETHIOPIC SYLLABLE GOA
-1310 ; [.22BD.0020.0002] # ETHIOPIC SYLLABLE GWA
-1312 ; [.22BE.0020.0002] # ETHIOPIC SYLLABLE GWI
-1313 ; [.22BF.0020.0002] # ETHIOPIC SYLLABLE GWAA
-1314 ; [.22C0.0020.0002] # ETHIOPIC SYLLABLE GWEE
-1315 ; [.22C1.0020.0002] # ETHIOPIC SYLLABLE GWE
-1318 ; [.22C2.0020.0002] # ETHIOPIC SYLLABLE GGA
-1319 ; [.22C3.0020.0002] # ETHIOPIC SYLLABLE GGU
-131A ; [.22C4.0020.0002] # ETHIOPIC SYLLABLE GGI
-131B ; [.22C5.0020.0002] # ETHIOPIC SYLLABLE GGAA
-131C ; [.22C6.0020.0002] # ETHIOPIC SYLLABLE GGEE
-131D ; [.22C7.0020.0002] # ETHIOPIC SYLLABLE GGE
-131E ; [.22C8.0020.0002] # ETHIOPIC SYLLABLE GGO
-131F ; [.22C9.0020.0002] # ETHIOPIC SYLLABLE GGWAA
-2D93 ; [.22CA.0020.0002] # ETHIOPIC SYLLABLE GGWA
-2D94 ; [.22CB.0020.0002] # ETHIOPIC SYLLABLE GGWI
-2D95 ; [.22CC.0020.0002] # ETHIOPIC SYLLABLE GGWEE
-2D96 ; [.22CD.0020.0002] # ETHIOPIC SYLLABLE GGWE
-1320 ; [.22CE.0020.0002] # ETHIOPIC SYLLABLE THA
-1321 ; [.22CF.0020.0002] # ETHIOPIC SYLLABLE THU
-1322 ; [.22D0.0020.0002] # ETHIOPIC SYLLABLE THI
-1323 ; [.22D1.0020.0002] # ETHIOPIC SYLLABLE THAA
-1324 ; [.22D2.0020.0002] # ETHIOPIC SYLLABLE THEE
-1325 ; [.22D3.0020.0002] # ETHIOPIC SYLLABLE THE
-1326 ; [.22D4.0020.0002] # ETHIOPIC SYLLABLE THO
-1327 ; [.22D5.0020.0002] # ETHIOPIC SYLLABLE THWA
-2D8F ; [.22D6.0020.0002] # ETHIOPIC SYLLABLE THOA
-1328 ; [.22D7.0020.0002] # ETHIOPIC SYLLABLE CHA
-1329 ; [.22D8.0020.0002] # ETHIOPIC SYLLABLE CHU
-132A ; [.22D9.0020.0002] # ETHIOPIC SYLLABLE CHI
-132B ; [.22DA.0020.0002] # ETHIOPIC SYLLABLE CHAA
-132C ; [.22DB.0020.0002] # ETHIOPIC SYLLABLE CHEE
-132D ; [.22DC.0020.0002] # ETHIOPIC SYLLABLE CHE
-132E ; [.22DD.0020.0002] # ETHIOPIC SYLLABLE CHO
-132F ; [.22DE.0020.0002] # ETHIOPIC SYLLABLE CHWA
-2D90 ; [.22DF.0020.0002] # ETHIOPIC SYLLABLE CHOA
-AB20 ; [.22E0.0020.0002] # ETHIOPIC SYLLABLE CCHHA
-AB21 ; [.22E1.0020.0002] # ETHIOPIC SYLLABLE CCHHU
-AB22 ; [.22E2.0020.0002] # ETHIOPIC SYLLABLE CCHHI
-AB23 ; [.22E3.0020.0002] # ETHIOPIC SYLLABLE CCHHAA
-AB24 ; [.22E4.0020.0002] # ETHIOPIC SYLLABLE CCHHEE
-AB25 ; [.22E5.0020.0002] # ETHIOPIC SYLLABLE CCHHE
-AB26 ; [.22E6.0020.0002] # ETHIOPIC SYLLABLE CCHHO
-1330 ; [.22E7.0020.0002] # ETHIOPIC SYLLABLE PHA
-1331 ; [.22E8.0020.0002] # ETHIOPIC SYLLABLE PHU
-1332 ; [.22E9.0020.0002] # ETHIOPIC SYLLABLE PHI
-1333 ; [.22EA.0020.0002] # ETHIOPIC SYLLABLE PHAA
-1334 ; [.22EB.0020.0002] # ETHIOPIC SYLLABLE PHEE
-1335 ; [.22EC.0020.0002] # ETHIOPIC SYLLABLE PHE
-1336 ; [.22ED.0020.0002] # ETHIOPIC SYLLABLE PHO
-1337 ; [.22EE.0020.0002] # ETHIOPIC SYLLABLE PHWA
-2D91 ; [.22EF.0020.0002] # ETHIOPIC SYLLABLE PHOA
-1338 ; [.22F0.0020.0002] # ETHIOPIC SYLLABLE TSA
-1339 ; [.22F1.0020.0002] # ETHIOPIC SYLLABLE TSU
-133A ; [.22F2.0020.0002] # ETHIOPIC SYLLABLE TSI
-133B ; [.22F3.0020.0002] # ETHIOPIC SYLLABLE TSAA
-133C ; [.22F4.0020.0002] # ETHIOPIC SYLLABLE TSEE
-133D ; [.22F5.0020.0002] # ETHIOPIC SYLLABLE TSE
-133E ; [.22F6.0020.0002] # ETHIOPIC SYLLABLE TSO
-133F ; [.22F7.0020.0002] # ETHIOPIC SYLLABLE TSWA
-AB28 ; [.22F8.0020.0002] # ETHIOPIC SYLLABLE BBA
-AB29 ; [.22F9.0020.0002] # ETHIOPIC SYLLABLE BBU
-AB2A ; [.22FA.0020.0002] # ETHIOPIC SYLLABLE BBI
-AB2B ; [.22FB.0020.0002] # ETHIOPIC SYLLABLE BBAA
-AB2C ; [.22FC.0020.0002] # ETHIOPIC SYLLABLE BBEE
-AB2D ; [.22FD.0020.0002] # ETHIOPIC SYLLABLE BBE
-AB2E ; [.22FE.0020.0002] # ETHIOPIC SYLLABLE BBO
-1340 ; [.22FF.0020.0002] # ETHIOPIC SYLLABLE TZA
-1341 ; [.2300.0020.0002] # ETHIOPIC SYLLABLE TZU
-1342 ; [.2301.0020.0002] # ETHIOPIC SYLLABLE TZI
-1343 ; [.2302.0020.0002] # ETHIOPIC SYLLABLE TZAA
-1344 ; [.2303.0020.0002] # ETHIOPIC SYLLABLE TZEE
-1345 ; [.2304.0020.0002] # ETHIOPIC SYLLABLE TZE
-1346 ; [.2305.0020.0002] # ETHIOPIC SYLLABLE TZO
-1347 ; [.2306.0020.0002] # ETHIOPIC SYLLABLE TZOA
-1348 ; [.2307.0020.0002] # ETHIOPIC SYLLABLE FA
-1349 ; [.2308.0020.0002] # ETHIOPIC SYLLABLE FU
-134A ; [.2309.0020.0002] # ETHIOPIC SYLLABLE FI
-134B ; [.230A.0020.0002] # ETHIOPIC SYLLABLE FAA
-134C ; [.230B.0020.0002] # ETHIOPIC SYLLABLE FEE
-134D ; [.230C.0020.0002] # ETHIOPIC SYLLABLE FE
-134E ; [.230D.0020.0002] # ETHIOPIC SYLLABLE FO
-134F ; [.230E.0020.0002] # ETHIOPIC SYLLABLE FWA
-1388 ; [.230F.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT FWA
-1389 ; [.2310.0020.0002] # ETHIOPIC SYLLABLE FWI
-138A ; [.2311.0020.0002] # ETHIOPIC SYLLABLE FWEE
-138B ; [.2312.0020.0002] # ETHIOPIC SYLLABLE FWE
-1350 ; [.2313.0020.0002] # ETHIOPIC SYLLABLE PA
-1351 ; [.2314.0020.0002] # ETHIOPIC SYLLABLE PU
-1352 ; [.2315.0020.0002] # ETHIOPIC SYLLABLE PI
-1353 ; [.2316.0020.0002] # ETHIOPIC SYLLABLE PAA
-1354 ; [.2317.0020.0002] # ETHIOPIC SYLLABLE PEE
-1355 ; [.2318.0020.0002] # ETHIOPIC SYLLABLE PE
-1356 ; [.2319.0020.0002] # ETHIOPIC SYLLABLE PO
-1357 ; [.231A.0020.0002] # ETHIOPIC SYLLABLE PWA
-138C ; [.231B.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT PWA
-138D ; [.231C.0020.0002] # ETHIOPIC SYLLABLE PWI
-138E ; [.231D.0020.0002] # ETHIOPIC SYLLABLE PWEE
-138F ; [.231E.0020.0002] # ETHIOPIC SYLLABLE PWE
-2D92 ; [.231F.0020.0002] # ETHIOPIC SYLLABLE POA
-1358 ; [.2320.0020.0002] # ETHIOPIC SYLLABLE RYA
-1359 ; [.2321.0020.0002] # ETHIOPIC SYLLABLE MYA
-135A ; [.2322.0020.0002] # ETHIOPIC SYLLABLE FYA
-2DA0 ; [.2323.0020.0002] # ETHIOPIC SYLLABLE SSA
-2DA1 ; [.2324.0020.0002] # ETHIOPIC SYLLABLE SSU
-2DA2 ; [.2325.0020.0002] # ETHIOPIC SYLLABLE SSI
-2DA3 ; [.2326.0020.0002] # ETHIOPIC SYLLABLE SSAA
-2DA4 ; [.2327.0020.0002] # ETHIOPIC SYLLABLE SSEE
-2DA5 ; [.2328.0020.0002] # ETHIOPIC SYLLABLE SSE
-2DA6 ; [.2329.0020.0002] # ETHIOPIC SYLLABLE SSO
-2DA8 ; [.232A.0020.0002] # ETHIOPIC SYLLABLE CCA
-2DA9 ; [.232B.0020.0002] # ETHIOPIC SYLLABLE CCU
-2DAA ; [.232C.0020.0002] # ETHIOPIC SYLLABLE CCI
-2DAB ; [.232D.0020.0002] # ETHIOPIC SYLLABLE CCAA
-2DAC ; [.232E.0020.0002] # ETHIOPIC SYLLABLE CCEE
-2DAD ; [.232F.0020.0002] # ETHIOPIC SYLLABLE CCE
-2DAE ; [.2330.0020.0002] # ETHIOPIC SYLLABLE CCO
-2DB0 ; [.2331.0020.0002] # ETHIOPIC SYLLABLE ZZA
-2DB1 ; [.2332.0020.0002] # ETHIOPIC SYLLABLE ZZU
-2DB2 ; [.2333.0020.0002] # ETHIOPIC SYLLABLE ZZI
-2DB3 ; [.2334.0020.0002] # ETHIOPIC SYLLABLE ZZAA
-2DB4 ; [.2335.0020.0002] # ETHIOPIC SYLLABLE ZZEE
-2DB5 ; [.2336.0020.0002] # ETHIOPIC SYLLABLE ZZE
-2DB6 ; [.2337.0020.0002] # ETHIOPIC SYLLABLE ZZO
-2DB8 ; [.2338.0020.0002] # ETHIOPIC SYLLABLE CCHA
-2DB9 ; [.2339.0020.0002] # ETHIOPIC SYLLABLE CCHU
-2DBA ; [.233A.0020.0002] # ETHIOPIC SYLLABLE CCHI
-2DBB ; [.233B.0020.0002] # ETHIOPIC SYLLABLE CCHAA
-2DBC ; [.233C.0020.0002] # ETHIOPIC SYLLABLE CCHEE
-2DBD ; [.233D.0020.0002] # ETHIOPIC SYLLABLE CCHE
-2DBE ; [.233E.0020.0002] # ETHIOPIC SYLLABLE CCHO
-2DC0 ; [.233F.0020.0002] # ETHIOPIC SYLLABLE QYA
-2DC1 ; [.2340.0020.0002] # ETHIOPIC SYLLABLE QYU
-2DC2 ; [.2341.0020.0002] # ETHIOPIC SYLLABLE QYI
-2DC3 ; [.2342.0020.0002] # ETHIOPIC SYLLABLE QYAA
-2DC4 ; [.2343.0020.0002] # ETHIOPIC SYLLABLE QYEE
-2DC5 ; [.2344.0020.0002] # ETHIOPIC SYLLABLE QYE
-2DC6 ; [.2345.0020.0002] # ETHIOPIC SYLLABLE QYO
-2DC8 ; [.2346.0020.0002] # ETHIOPIC SYLLABLE KYA
-2DC9 ; [.2347.0020.0002] # ETHIOPIC SYLLABLE KYU
-2DCA ; [.2348.0020.0002] # ETHIOPIC SYLLABLE KYI
-2DCB ; [.2349.0020.0002] # ETHIOPIC SYLLABLE KYAA
-2DCC ; [.234A.0020.0002] # ETHIOPIC SYLLABLE KYEE
-2DCD ; [.234B.0020.0002] # ETHIOPIC SYLLABLE KYE
-2DCE ; [.234C.0020.0002] # ETHIOPIC SYLLABLE KYO
-2DD0 ; [.234D.0020.0002] # ETHIOPIC SYLLABLE XYA
-2DD1 ; [.234E.0020.0002] # ETHIOPIC SYLLABLE XYU
-2DD2 ; [.234F.0020.0002] # ETHIOPIC SYLLABLE XYI
-2DD3 ; [.2350.0020.0002] # ETHIOPIC SYLLABLE XYAA
-2DD4 ; [.2351.0020.0002] # ETHIOPIC SYLLABLE XYEE
-2DD5 ; [.2352.0020.0002] # ETHIOPIC SYLLABLE XYE
-2DD6 ; [.2353.0020.0002] # ETHIOPIC SYLLABLE XYO
-2DD8 ; [.2354.0020.0002] # ETHIOPIC SYLLABLE GYA
-2DD9 ; [.2355.0020.0002] # ETHIOPIC SYLLABLE GYU
-2DDA ; [.2356.0020.0002] # ETHIOPIC SYLLABLE GYI
-2DDB ; [.2357.0020.0002] # ETHIOPIC SYLLABLE GYAA
-2DDC ; [.2358.0020.0002] # ETHIOPIC SYLLABLE GYEE
-2DDD ; [.2359.0020.0002] # ETHIOPIC SYLLABLE GYE
-2DDE ; [.235A.0020.0002] # ETHIOPIC SYLLABLE GYO
-0950 ; [.235B.0020.0002] # DEVANAGARI OM
-0972 ; [.235C.0020.0002] # DEVANAGARI LETTER CANDRA A
-0904 ; [.235D.0020.0002] # DEVANAGARI LETTER SHORT A
-0905 ; [.235E.0020.0002] # DEVANAGARI LETTER A
-0906 ; [.235F.0020.0002] # DEVANAGARI LETTER AA
-0973 ; [.2360.0020.0002] # DEVANAGARI LETTER OE
-0974 ; [.2361.0020.0002] # DEVANAGARI LETTER OOE
-0975 ; [.2362.0020.0002] # DEVANAGARI LETTER AW
-0976 ; [.2363.0020.0002] # DEVANAGARI LETTER UE
-0977 ; [.2364.0020.0002] # DEVANAGARI LETTER UUE
-0907 ; [.2365.0020.0002] # DEVANAGARI LETTER I
-0908 ; [.2366.0020.0002] # DEVANAGARI LETTER II
-0909 ; [.2367.0020.0002] # DEVANAGARI LETTER U
-090A ; [.2368.0020.0002] # DEVANAGARI LETTER UU
-090B ; [.2369.0020.0002] # DEVANAGARI LETTER VOCALIC R
-0960 ; [.236A.0020.0002] # DEVANAGARI LETTER VOCALIC RR
-090C ; [.236B.0020.0002] # DEVANAGARI LETTER VOCALIC L
-0961 ; [.236C.0020.0002] # DEVANAGARI LETTER VOCALIC LL
-090D ; [.236D.0020.0002] # DEVANAGARI LETTER CANDRA E
-090E ; [.236E.0020.0002] # DEVANAGARI LETTER SHORT E
-090F ; [.236F.0020.0002] # DEVANAGARI LETTER E
-0910 ; [.2370.0020.0002] # DEVANAGARI LETTER AI
-0911 ; [.2371.0020.0002] # DEVANAGARI LETTER CANDRA O
-0912 ; [.2372.0020.0002] # DEVANAGARI LETTER SHORT O
-0913 ; [.2373.0020.0002] # DEVANAGARI LETTER O
-0914 ; [.2374.0020.0002] # DEVANAGARI LETTER AU
-0915 ; [.2375.0020.0002] # DEVANAGARI LETTER KA
-0958 ; [.2375.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER QA
-0916 ; [.2376.0020.0002] # DEVANAGARI LETTER KHA
-0959 ; [.2376.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER KHHA
-0917 ; [.2377.0020.0002] # DEVANAGARI LETTER GA
-095A ; [.2377.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER GHHA
-097B ; [.2378.0020.0002] # DEVANAGARI LETTER GGA
-0918 ; [.2379.0020.0002] # DEVANAGARI LETTER GHA
-0919 ; [.237A.0020.0002] # DEVANAGARI LETTER NGA
-091A ; [.237B.0020.0002] # DEVANAGARI LETTER CA
-091B ; [.237C.0020.0002] # DEVANAGARI LETTER CHA
-091C ; [.237D.0020.0002] # DEVANAGARI LETTER JA
-095B ; [.237D.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER ZA
-0979 ; [.237E.0020.0002] # DEVANAGARI LETTER ZHA
-097C ; [.237F.0020.0002] # DEVANAGARI LETTER JJA
-091D ; [.2380.0020.0002] # DEVANAGARI LETTER JHA
-091E ; [.2381.0020.0002] # DEVANAGARI LETTER NYA
-091F ; [.2382.0020.0002] # DEVANAGARI LETTER TTA
-0920 ; [.2383.0020.0002] # DEVANAGARI LETTER TTHA
-0978 ; [.2384.0020.0002] # DEVANAGARI LETTER MARWARI DDA
-0921 ; [.2385.0020.0002] # DEVANAGARI LETTER DDA
-095C ; [.2385.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER DDDHA
-097E ; [.2386.0020.0002] # DEVANAGARI LETTER DDDA
-0922 ; [.2387.0020.0002] # DEVANAGARI LETTER DDHA
-095D ; [.2387.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER RHA
-0923 ; [.2388.0020.0002] # DEVANAGARI LETTER NNA
-0924 ; [.2389.0020.0002] # DEVANAGARI LETTER TA
-0925 ; [.238A.0020.0002] # DEVANAGARI LETTER THA
-0926 ; [.238B.0020.0002] # DEVANAGARI LETTER DA
-0927 ; [.238C.0020.0002] # DEVANAGARI LETTER DHA
-0928 ; [.238D.0020.0002] # DEVANAGARI LETTER NA
-0929 ; [.238D.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER NNNA
-092A ; [.238E.0020.0002] # DEVANAGARI LETTER PA
-092B ; [.238F.0020.0002] # DEVANAGARI LETTER PHA
-095E ; [.238F.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER FA
-092C ; [.2390.0020.0002] # DEVANAGARI LETTER BA
-097F ; [.2391.0020.0002] # DEVANAGARI LETTER BBA
-092D ; [.2392.0020.0002] # DEVANAGARI LETTER BHA
-092E ; [.2393.0020.0002] # DEVANAGARI LETTER MA
-092F ; [.2394.0020.0002] # DEVANAGARI LETTER YA
-095F ; [.2394.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER YYA
-097A ; [.2395.0020.0002] # DEVANAGARI LETTER HEAVY YA
-0930 ; [.2396.0020.0002] # DEVANAGARI LETTER RA
-0931 ; [.2396.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER RRA
-0932 ; [.2397.0020.0002] # DEVANAGARI LETTER LA
-0933 ; [.2398.0020.0002] # DEVANAGARI LETTER LLA
-0934 ; [.2398.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER LLLA
-0935 ; [.2399.0020.0002] # DEVANAGARI LETTER VA
-0936 ; [.239A.0020.0002] # DEVANAGARI LETTER SHA
-0937 ; [.239B.0020.0002] # DEVANAGARI LETTER SSA
-0938 ; [.239C.0020.0002] # DEVANAGARI LETTER SA
-0939 ; [.239D.0020.0002] # DEVANAGARI LETTER HA
-093D ; [.239E.0020.0002] # DEVANAGARI SIGN AVAGRAHA
-097D ; [.239F.0020.0002] # DEVANAGARI LETTER GLOTTAL STOP
-1CE9 ; [.23A0.0020.0002] # VEDIC SIGN ANUSVARA ANTARGOMUKHA
-1CEA ; [.23A0.0020.0004] # VEDIC SIGN ANUSVARA BAHIRGOMUKHA
-1CEB ; [.23A0.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA
-1CEC ; [.23A0.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CEE ; [.23A0.0020.0004] # VEDIC SIGN HEXIFORM LONG ANUSVARA
-1CEF ; [.23A0.0020.0004] # VEDIC SIGN LONG ANUSVARA
-1CF0 ; [.23A0.0020.0004] # VEDIC SIGN RTHANG LONG ANUSVARA
-1CF1 ; [.23A0.0020.0004] # VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF5 ; [.23A1.0020.0002] # VEDIC SIGN JIHVAMULIYA
-1CF6 ; [.23A2.0020.0002] # VEDIC SIGN UPADHMANIYA
-A8F2 ; [.23A3.0020.0002] # DEVANAGARI SIGN SPACING CANDRABINDU
-A8F3 ; [.23A3.0020.0004] # DEVANAGARI SIGN CANDRABINDU VIRAMA
-A8F4 ; [.23A3.0020.0004] # DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
-A8F5 ; [.23A3.0020.0004] # DEVANAGARI SIGN CANDRABINDU TWO
-A8F6 ; [.23A3.0020.0004] # DEVANAGARI SIGN CANDRABINDU THREE
-A8F7 ; [.23A3.0020.0004] # DEVANAGARI SIGN CANDRABINDU AVAGRAHA
-A8FB ; [.23A4.0020.0002] # DEVANAGARI HEADSTROKE
-093E ; [.23A5.0020.0002] # DEVANAGARI VOWEL SIGN AA
-093A ; [.23A6.0020.0002] # DEVANAGARI VOWEL SIGN OE
-093B ; [.23A7.0020.0002] # DEVANAGARI VOWEL SIGN OOE
-094F ; [.23A8.0020.0002] # DEVANAGARI VOWEL SIGN AW
-0956 ; [.23A9.0020.0002] # DEVANAGARI VOWEL SIGN UE
-0957 ; [.23AA.0020.0002] # DEVANAGARI VOWEL SIGN UUE
-093F ; [.23AB.0020.0002] # DEVANAGARI VOWEL SIGN I
-0940 ; [.23AC.0020.0002] # DEVANAGARI VOWEL SIGN II
-0941 ; [.23AD.0020.0002] # DEVANAGARI VOWEL SIGN U
-0942 ; [.23AE.0020.0002] # DEVANAGARI VOWEL SIGN UU
-0943 ; [.23AF.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC R
-0944 ; [.23B0.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC RR
-0962 ; [.23B1.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC L
-0963 ; [.23B2.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC LL
-0945 ; [.23B3.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA E
-0955 ; [.23B4.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA LONG E
-0946 ; [.23B5.0020.0002] # DEVANAGARI VOWEL SIGN SHORT E
-0947 ; [.23B6.0020.0002] # DEVANAGARI VOWEL SIGN E
-094E ; [.23B7.0020.0002] # DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
-0948 ; [.23B8.0020.0002] # DEVANAGARI VOWEL SIGN AI
-0949 ; [.23B9.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA O
-094A ; [.23BA.0020.0002] # DEVANAGARI VOWEL SIGN SHORT O
-094B ; [.23BB.0020.0002] # DEVANAGARI VOWEL SIGN O
-094C ; [.23BC.0020.0002] # DEVANAGARI VOWEL SIGN AU
-094D ; [.23BD.0020.0002] # DEVANAGARI SIGN VIRAMA
-0980 ; [.23BE.0020.0002] # BENGALI ANJI
-0985 ; [.23BF.0020.0002] # BENGALI LETTER A
-0986 ; [.23C0.0020.0002] # BENGALI LETTER AA
-0987 ; [.23C1.0020.0002] # BENGALI LETTER I
-0988 ; [.23C2.0020.0002] # BENGALI LETTER II
-0989 ; [.23C3.0020.0002] # BENGALI LETTER U
-098A ; [.23C4.0020.0002] # BENGALI LETTER UU
-098B ; [.23C5.0020.0002] # BENGALI LETTER VOCALIC R
-09E0 ; [.23C6.0020.0002] # BENGALI LETTER VOCALIC RR
-098C ; [.23C7.0020.0002] # BENGALI LETTER VOCALIC L
-09E1 ; [.23C8.0020.0002] # BENGALI LETTER VOCALIC LL
-098F ; [.23C9.0020.0002] # BENGALI LETTER E
-0990 ; [.23CA.0020.0002] # BENGALI LETTER AI
-0993 ; [.23CB.0020.0002] # BENGALI LETTER O
-0994 ; [.23CC.0020.0002] # BENGALI LETTER AU
-0995 ; [.23CD.0020.0002] # BENGALI LETTER KA
-0996 ; [.23CE.0020.0002] # BENGALI LETTER KHA
-0997 ; [.23CF.0020.0002] # BENGALI LETTER GA
-0998 ; [.23D0.0020.0002] # BENGALI LETTER GHA
-0999 ; [.23D1.0020.0002] # BENGALI LETTER NGA
-099A ; [.23D2.0020.0002] # BENGALI LETTER CA
-099B ; [.23D3.0020.0002] # BENGALI LETTER CHA
-099C ; [.23D4.0020.0002] # BENGALI LETTER JA
-099D ; [.23D5.0020.0002] # BENGALI LETTER JHA
-099E ; [.23D6.0020.0002] # BENGALI LETTER NYA
-099F ; [.23D7.0020.0002] # BENGALI LETTER TTA
-09A0 ; [.23D8.0020.0002] # BENGALI LETTER TTHA
-09A1 ; [.23D9.0020.0002] # BENGALI LETTER DDA
-09DC ; [.23D9.0020.0002][.0000.00BC.0002] # BENGALI LETTER RRA
-09A2 ; [.23DA.0020.0002] # BENGALI LETTER DDHA
-09DD ; [.23DA.0020.0002][.0000.00BC.0002] # BENGALI LETTER RHA
-09A3 ; [.23DB.0020.0002] # BENGALI LETTER NNA
-09A4 ; [.23DC.0020.0002] # BENGALI LETTER TA
-09CE ; [.23DC.0020.0004][.23FD.0020.0004] # BENGALI LETTER KHANDA TA
-09A5 ; [.23DD.0020.0002] # BENGALI LETTER THA
-09A6 ; [.23DE.0020.0002] # BENGALI LETTER DA
-09A7 ; [.23DF.0020.0002] # BENGALI LETTER DHA
-09A8 ; [.23E0.0020.0002] # BENGALI LETTER NA
-09AA ; [.23E1.0020.0002] # BENGALI LETTER PA
-09AB ; [.23E2.0020.0002] # BENGALI LETTER PHA
-09AC ; [.23E3.0020.0002] # BENGALI LETTER BA
-09AD ; [.23E4.0020.0002] # BENGALI LETTER BHA
-09AE ; [.23E5.0020.0002] # BENGALI LETTER MA
-09AF ; [.23E6.0020.0002] # BENGALI LETTER YA
-09DF ; [.23E6.0020.0002][.0000.00BC.0002] # BENGALI LETTER YYA
-09B0 ; [.23E7.0020.0002] # BENGALI LETTER RA
-09F0 ; [.23E8.0020.0002] # BENGALI LETTER RA WITH MIDDLE DIAGONAL
-09B2 ; [.23E9.0020.0002] # BENGALI LETTER LA
-09F1 ; [.23EA.0020.0002] # BENGALI LETTER RA WITH LOWER DIAGONAL
-09B6 ; [.23EB.0020.0002] # BENGALI LETTER SHA
-09B7 ; [.23EC.0020.0002] # BENGALI LETTER SSA
-09B8 ; [.23ED.0020.0002] # BENGALI LETTER SA
-09B9 ; [.23EE.0020.0002] # BENGALI LETTER HA
-09BD ; [.23EF.0020.0002] # BENGALI SIGN AVAGRAHA
-09BE ; [.23F0.0020.0002] # BENGALI VOWEL SIGN AA
-09BF ; [.23F1.0020.0002] # BENGALI VOWEL SIGN I
-09C0 ; [.23F2.0020.0002] # BENGALI VOWEL SIGN II
-09C1 ; [.23F3.0020.0002] # BENGALI VOWEL SIGN U
-09C2 ; [.23F4.0020.0002] # BENGALI VOWEL SIGN UU
-09C3 ; [.23F5.0020.0002] # BENGALI VOWEL SIGN VOCALIC R
-09C4 ; [.23F6.0020.0002] # BENGALI VOWEL SIGN VOCALIC RR
-09E2 ; [.23F7.0020.0002] # BENGALI VOWEL SIGN VOCALIC L
-09E3 ; [.23F8.0020.0002] # BENGALI VOWEL SIGN VOCALIC LL
-09C7 ; [.23F9.0020.0002] # BENGALI VOWEL SIGN E
-09C8 ; [.23FA.0020.0002] # BENGALI VOWEL SIGN AI
-09CB ; [.23FB.0020.0002] # BENGALI VOWEL SIGN O
-09C7 09BE ; [.23FB.0020.0002] # BENGALI VOWEL SIGN O
-09CC ; [.23FC.0020.0002] # BENGALI VOWEL SIGN AU
-09C7 09D7 ; [.23FC.0020.0002] # BENGALI VOWEL SIGN AU
-09CD ; [.23FD.0020.0002] # BENGALI SIGN VIRAMA
-09D7 ; [.23FE.0020.0002] # BENGALI AU LENGTH MARK
-0A74 ; [.23FF.0020.0002] # GURMUKHI EK ONKAR
-0A73 ; [.2400.0020.0002] # GURMUKHI URA
-0A09 ; [.2401.0020.0002] # GURMUKHI LETTER U
-0A0A ; [.2402.0020.0002] # GURMUKHI LETTER UU
-0A13 ; [.2403.0020.0002] # GURMUKHI LETTER OO
-0A05 ; [.2404.0020.0002] # GURMUKHI LETTER A
-0A06 ; [.2405.0020.0002] # GURMUKHI LETTER AA
-0A10 ; [.2406.0020.0002] # GURMUKHI LETTER AI
-0A14 ; [.2407.0020.0002] # GURMUKHI LETTER AU
-0A72 ; [.2408.0020.0002] # GURMUKHI IRI
-0A07 ; [.2409.0020.0002] # GURMUKHI LETTER I
-0A08 ; [.240A.0020.0002] # GURMUKHI LETTER II
-0A0F ; [.240B.0020.0002] # GURMUKHI LETTER EE
-0A38 ; [.240C.0020.0002] # GURMUKHI LETTER SA
-0A36 ; [.240C.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER SHA
-0A39 ; [.240D.0020.0002] # GURMUKHI LETTER HA
-0A51 ; [.240E.0020.0002] # GURMUKHI SIGN UDAAT
-0A15 ; [.240F.0020.0002] # GURMUKHI LETTER KA
-0A16 ; [.2410.0020.0002] # GURMUKHI LETTER KHA
-0A59 ; [.2410.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER KHHA
-0A17 ; [.2411.0020.0002] # GURMUKHI LETTER GA
-0A5A ; [.2411.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER GHHA
-0A18 ; [.2412.0020.0002] # GURMUKHI LETTER GHA
-0A19 ; [.2413.0020.0002] # GURMUKHI LETTER NGA
-0A1A ; [.2414.0020.0002] # GURMUKHI LETTER CA
-0A1B ; [.2415.0020.0002] # GURMUKHI LETTER CHA
-0A1C ; [.2416.0020.0002] # GURMUKHI LETTER JA
-0A5B ; [.2416.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER ZA
-0A1D ; [.2417.0020.0002] # GURMUKHI LETTER JHA
-0A1E ; [.2418.0020.0002] # GURMUKHI LETTER NYA
-0A1F ; [.2419.0020.0002] # GURMUKHI LETTER TTA
-0A20 ; [.241A.0020.0002] # GURMUKHI LETTER TTHA
-0A21 ; [.241B.0020.0002] # GURMUKHI LETTER DDA
-0A22 ; [.241C.0020.0002] # GURMUKHI LETTER DDHA
-0A23 ; [.241D.0020.0002] # GURMUKHI LETTER NNA
-0A24 ; [.241E.0020.0002] # GURMUKHI LETTER TA
-0A25 ; [.241F.0020.0002] # GURMUKHI LETTER THA
-0A26 ; [.2420.0020.0002] # GURMUKHI LETTER DA
-0A27 ; [.2421.0020.0002] # GURMUKHI LETTER DHA
-0A28 ; [.2422.0020.0002] # GURMUKHI LETTER NA
-0A2A ; [.2423.0020.0002] # GURMUKHI LETTER PA
-0A2B ; [.2424.0020.0002] # GURMUKHI LETTER PHA
-0A5E ; [.2424.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER FA
-0A2C ; [.2425.0020.0002] # GURMUKHI LETTER BA
-0A2D ; [.2426.0020.0002] # GURMUKHI LETTER BHA
-0A2E ; [.2427.0020.0002] # GURMUKHI LETTER MA
-0A2F ; [.2428.0020.0002] # GURMUKHI LETTER YA
-0A75 ; [.2429.0020.0002] # GURMUKHI SIGN YAKASH
-0A30 ; [.242A.0020.0002] # GURMUKHI LETTER RA
-0A32 ; [.242B.0020.0002] # GURMUKHI LETTER LA
-0A33 ; [.242B.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER LLA
-0A35 ; [.242C.0020.0002] # GURMUKHI LETTER VA
-0A5C ; [.242D.0020.0002] # GURMUKHI LETTER RRA
-0A3E ; [.242E.0020.0002] # GURMUKHI VOWEL SIGN AA
-0A3F ; [.242F.0020.0002] # GURMUKHI VOWEL SIGN I
-0A40 ; [.2430.0020.0002] # GURMUKHI VOWEL SIGN II
-0A41 ; [.2431.0020.0002] # GURMUKHI VOWEL SIGN U
-0A42 ; [.2432.0020.0002] # GURMUKHI VOWEL SIGN UU
-0A47 ; [.2433.0020.0002] # GURMUKHI VOWEL SIGN EE
-0A48 ; [.2434.0020.0002] # GURMUKHI VOWEL SIGN AI
-0A4B ; [.2435.0020.0002] # GURMUKHI VOWEL SIGN OO
-0A4C ; [.2436.0020.0002] # GURMUKHI VOWEL SIGN AU
-0A4D ; [.2437.0020.0002] # GURMUKHI SIGN VIRAMA
-0AD0 ; [.2438.0020.0002] # GUJARATI OM
-0A85 ; [.2439.0020.0002] # GUJARATI LETTER A
-0A86 ; [.243A.0020.0002] # GUJARATI LETTER AA
-0A87 ; [.243B.0020.0002] # GUJARATI LETTER I
-0A88 ; [.243C.0020.0002] # GUJARATI LETTER II
-0A89 ; [.243D.0020.0002] # GUJARATI LETTER U
-0A8A ; [.243E.0020.0002] # GUJARATI LETTER UU
-0A8B ; [.243F.0020.0002] # GUJARATI LETTER VOCALIC R
-0AE0 ; [.2440.0020.0002] # GUJARATI LETTER VOCALIC RR
-0A8C ; [.2441.0020.0002] # GUJARATI LETTER VOCALIC L
-0AE1 ; [.2442.0020.0002] # GUJARATI LETTER VOCALIC LL
-0A8D ; [.2443.0020.0002] # GUJARATI VOWEL CANDRA E
-0A8F ; [.2444.0020.0002] # GUJARATI LETTER E
-0A90 ; [.2445.0020.0002] # GUJARATI LETTER AI
-0A91 ; [.2446.0020.0002] # GUJARATI VOWEL CANDRA O
-0A93 ; [.2447.0020.0002] # GUJARATI LETTER O
-0A94 ; [.2448.0020.0002] # GUJARATI LETTER AU
-0A95 ; [.2449.0020.0002] # GUJARATI LETTER KA
-0A96 ; [.244A.0020.0002] # GUJARATI LETTER KHA
-0A97 ; [.244B.0020.0002] # GUJARATI LETTER GA
-0A98 ; [.244C.0020.0002] # GUJARATI LETTER GHA
-0A99 ; [.244D.0020.0002] # GUJARATI LETTER NGA
-0A9A ; [.244E.0020.0002] # GUJARATI LETTER CA
-0A9B ; [.244F.0020.0002] # GUJARATI LETTER CHA
-0A9C ; [.2450.0020.0002] # GUJARATI LETTER JA
-0A9D ; [.2451.0020.0002] # GUJARATI LETTER JHA
-0A9E ; [.2452.0020.0002] # GUJARATI LETTER NYA
-0A9F ; [.2453.0020.0002] # GUJARATI LETTER TTA
-0AA0 ; [.2454.0020.0002] # GUJARATI LETTER TTHA
-0AA1 ; [.2455.0020.0002] # GUJARATI LETTER DDA
-0AA2 ; [.2456.0020.0002] # GUJARATI LETTER DDHA
-0AA3 ; [.2457.0020.0002] # GUJARATI LETTER NNA
-0AA4 ; [.2458.0020.0002] # GUJARATI LETTER TA
-0AA5 ; [.2459.0020.0002] # GUJARATI LETTER THA
-0AA6 ; [.245A.0020.0002] # GUJARATI LETTER DA
-0AA7 ; [.245B.0020.0002] # GUJARATI LETTER DHA
-0AA8 ; [.245C.0020.0002] # GUJARATI LETTER NA
-0AAA ; [.245D.0020.0002] # GUJARATI LETTER PA
-0AAB ; [.245E.0020.0002] # GUJARATI LETTER PHA
-0AAC ; [.245F.0020.0002] # GUJARATI LETTER BA
-0AAD ; [.2460.0020.0002] # GUJARATI LETTER BHA
-0AAE ; [.2461.0020.0002] # GUJARATI LETTER MA
-0AAF ; [.2462.0020.0002] # GUJARATI LETTER YA
-0AB0 ; [.2463.0020.0002] # GUJARATI LETTER RA
-0AB2 ; [.2464.0020.0002] # GUJARATI LETTER LA
-0AB5 ; [.2465.0020.0002] # GUJARATI LETTER VA
-0AB6 ; [.2466.0020.0002] # GUJARATI LETTER SHA
-0AB7 ; [.2467.0020.0002] # GUJARATI LETTER SSA
-0AB8 ; [.2468.0020.0002] # GUJARATI LETTER SA
-0AB9 ; [.2469.0020.0002] # GUJARATI LETTER HA
-0AB3 ; [.246A.0020.0002] # GUJARATI LETTER LLA
-0ABD ; [.246B.0020.0002] # GUJARATI SIGN AVAGRAHA
-0ABE ; [.246C.0020.0002] # GUJARATI VOWEL SIGN AA
-0ABF ; [.246D.0020.0002] # GUJARATI VOWEL SIGN I
-0AC0 ; [.246E.0020.0002] # GUJARATI VOWEL SIGN II
-0AC1 ; [.246F.0020.0002] # GUJARATI VOWEL SIGN U
-0AC2 ; [.2470.0020.0002] # GUJARATI VOWEL SIGN UU
-0AC3 ; [.2471.0020.0002] # GUJARATI VOWEL SIGN VOCALIC R
-0AC4 ; [.2472.0020.0002] # GUJARATI VOWEL SIGN VOCALIC RR
-0AE2 ; [.2473.0020.0002] # GUJARATI VOWEL SIGN VOCALIC L
-0AE3 ; [.2474.0020.0002] # GUJARATI VOWEL SIGN VOCALIC LL
-0AC5 ; [.2475.0020.0002] # GUJARATI VOWEL SIGN CANDRA E
-0AC7 ; [.2476.0020.0002] # GUJARATI VOWEL SIGN E
-0AC8 ; [.2477.0020.0002] # GUJARATI VOWEL SIGN AI
-0AC9 ; [.2478.0020.0002] # GUJARATI VOWEL SIGN CANDRA O
-0ACB ; [.2479.0020.0002] # GUJARATI VOWEL SIGN O
-0ACC ; [.247A.0020.0002] # GUJARATI VOWEL SIGN AU
-0ACD ; [.247B.0020.0002] # GUJARATI SIGN VIRAMA
-0B05 ; [.247C.0020.0002] # ORIYA LETTER A
-0B06 ; [.247D.0020.0002] # ORIYA LETTER AA
-0B07 ; [.247E.0020.0002] # ORIYA LETTER I
-0B08 ; [.247F.0020.0002] # ORIYA LETTER II
-0B09 ; [.2480.0020.0002] # ORIYA LETTER U
-0B0A ; [.2481.0020.0002] # ORIYA LETTER UU
-0B0B ; [.2482.0020.0002] # ORIYA LETTER VOCALIC R
-0B60 ; [.2483.0020.0002] # ORIYA LETTER VOCALIC RR
-0B0C ; [.2484.0020.0002] # ORIYA LETTER VOCALIC L
-0B61 ; [.2485.0020.0002] # ORIYA LETTER VOCALIC LL
-0B0F ; [.2486.0020.0002] # ORIYA LETTER E
-0B10 ; [.2487.0020.0002] # ORIYA LETTER AI
-0B13 ; [.2488.0020.0002] # ORIYA LETTER O
-0B14 ; [.2489.0020.0002] # ORIYA LETTER AU
-0B15 ; [.248A.0020.0002] # ORIYA LETTER KA
-0B16 ; [.248B.0020.0002] # ORIYA LETTER KHA
-0B17 ; [.248C.0020.0002] # ORIYA LETTER GA
-0B18 ; [.248D.0020.0002] # ORIYA LETTER GHA
-0B19 ; [.248E.0020.0002] # ORIYA LETTER NGA
-0B1A ; [.248F.0020.0002] # ORIYA LETTER CA
-0B1B ; [.2490.0020.0002] # ORIYA LETTER CHA
-0B1C ; [.2491.0020.0002] # ORIYA LETTER JA
-0B1D ; [.2492.0020.0002] # ORIYA LETTER JHA
-0B1E ; [.2493.0020.0002] # ORIYA LETTER NYA
-0B1F ; [.2494.0020.0002] # ORIYA LETTER TTA
-0B20 ; [.2495.0020.0002] # ORIYA LETTER TTHA
-0B21 ; [.2496.0020.0002] # ORIYA LETTER DDA
-0B5C ; [.2496.0020.0002][.0000.00BC.0002] # ORIYA LETTER RRA
-0B22 ; [.2497.0020.0002] # ORIYA LETTER DDHA
-0B5D ; [.2497.0020.0002][.0000.00BC.0002] # ORIYA LETTER RHA
-0B23 ; [.2498.0020.0002] # ORIYA LETTER NNA
-0B24 ; [.2499.0020.0002] # ORIYA LETTER TA
-0B25 ; [.249A.0020.0002] # ORIYA LETTER THA
-0B26 ; [.249B.0020.0002] # ORIYA LETTER DA
-0B27 ; [.249C.0020.0002] # ORIYA LETTER DHA
-0B28 ; [.249D.0020.0002] # ORIYA LETTER NA
-0B2A ; [.249E.0020.0002] # ORIYA LETTER PA
-0B2B ; [.249F.0020.0002] # ORIYA LETTER PHA
-0B2C ; [.24A0.0020.0002] # ORIYA LETTER BA
-0B2D ; [.24A1.0020.0002] # ORIYA LETTER BHA
-0B2E ; [.24A2.0020.0002] # ORIYA LETTER MA
-0B2F ; [.24A3.0020.0002] # ORIYA LETTER YA
-0B5F ; [.24A4.0020.0002] # ORIYA LETTER YYA
-0B30 ; [.24A5.0020.0002] # ORIYA LETTER RA
-0B32 ; [.24A6.0020.0002] # ORIYA LETTER LA
-0B33 ; [.24A7.0020.0002] # ORIYA LETTER LLA
-0B35 ; [.24A8.0020.0002] # ORIYA LETTER VA
-0B71 ; [.24A9.0020.0002] # ORIYA LETTER WA
-0B36 ; [.24AA.0020.0002] # ORIYA LETTER SHA
-0B37 ; [.24AB.0020.0002] # ORIYA LETTER SSA
-0B38 ; [.24AC.0020.0002] # ORIYA LETTER SA
-0B39 ; [.24AD.0020.0002] # ORIYA LETTER HA
-0B3D ; [.24AE.0020.0002] # ORIYA SIGN AVAGRAHA
-0B3E ; [.24AF.0020.0002] # ORIYA VOWEL SIGN AA
-0B3F ; [.24B0.0020.0002] # ORIYA VOWEL SIGN I
-0B40 ; [.24B1.0020.0002] # ORIYA VOWEL SIGN II
-0B41 ; [.24B2.0020.0002] # ORIYA VOWEL SIGN U
-0B42 ; [.24B3.0020.0002] # ORIYA VOWEL SIGN UU
-0B43 ; [.24B4.0020.0002] # ORIYA VOWEL SIGN VOCALIC R
-0B44 ; [.24B5.0020.0002] # ORIYA VOWEL SIGN VOCALIC RR
-0B62 ; [.24B6.0020.0002] # ORIYA VOWEL SIGN VOCALIC L
-0B63 ; [.24B7.0020.0002] # ORIYA VOWEL SIGN VOCALIC LL
-0B47 ; [.24B8.0020.0002] # ORIYA VOWEL SIGN E
-0B48 ; [.24B9.0020.0002] # ORIYA VOWEL SIGN AI
-0B47 0B56 ; [.24B9.0020.0002] # ORIYA VOWEL SIGN AI
-0B4B ; [.24BA.0020.0002] # ORIYA VOWEL SIGN O
-0B47 0B3E ; [.24BA.0020.0002] # ORIYA VOWEL SIGN O
-0B4C ; [.24BB.0020.0002] # ORIYA VOWEL SIGN AU
-0B47 0B57 ; [.24BB.0020.0002] # ORIYA VOWEL SIGN AU
-0B4D ; [.24BC.0020.0002] # ORIYA SIGN VIRAMA
-0B56 ; [.24BD.0020.0002] # ORIYA AI LENGTH MARK
-0B57 ; [.24BE.0020.0002] # ORIYA AU LENGTH MARK
-0BD0 ; [.24BF.0020.0002] # TAMIL OM
-0B85 ; [.24C0.0020.0002] # TAMIL LETTER A
-0B86 ; [.24C1.0020.0002] # TAMIL LETTER AA
-0B87 ; [.24C2.0020.0002] # TAMIL LETTER I
-0B88 ; [.24C3.0020.0002] # TAMIL LETTER II
-0B89 ; [.24C4.0020.0002] # TAMIL LETTER U
-0B8A ; [.24C5.0020.0002] # TAMIL LETTER UU
-0B8E ; [.24C6.0020.0002] # TAMIL LETTER E
-0B8F ; [.24C7.0020.0002] # TAMIL LETTER EE
-0B90 ; [.24C8.0020.0002] # TAMIL LETTER AI
-0B92 ; [.24C9.0020.0002] # TAMIL LETTER O
-0B93 ; [.24CA.0020.0002] # TAMIL LETTER OO
-0B94 ; [.24CB.0020.0002] # TAMIL LETTER AU
-0B92 0BD7 ; [.24CB.0020.0002] # TAMIL LETTER AU
-0B83 ; [.24CC.0020.0002] # TAMIL SIGN VISARGA
-0B95 ; [.24CD.0020.0002] # TAMIL LETTER KA
-0B99 ; [.24CE.0020.0002] # TAMIL LETTER NGA
-0B9A ; [.24CF.0020.0002] # TAMIL LETTER CA
-0B9E ; [.24D0.0020.0002] # TAMIL LETTER NYA
-0B9F ; [.24D1.0020.0002] # TAMIL LETTER TTA
-0BA3 ; [.24D2.0020.0002] # TAMIL LETTER NNA
-0BA4 ; [.24D3.0020.0002] # TAMIL LETTER TA
-0BA8 ; [.24D4.0020.0002] # TAMIL LETTER NA
-0BAA ; [.24D5.0020.0002] # TAMIL LETTER PA
-0BAE ; [.24D6.0020.0002] # TAMIL LETTER MA
-0BAF ; [.24D7.0020.0002] # TAMIL LETTER YA
-0BB0 ; [.24D8.0020.0002] # TAMIL LETTER RA
-0BB2 ; [.24D9.0020.0002] # TAMIL LETTER LA
-0BB5 ; [.24DA.0020.0002] # TAMIL LETTER VA
-0BB4 ; [.24DB.0020.0002] # TAMIL LETTER LLLA
-0BB3 ; [.24DC.0020.0002] # TAMIL LETTER LLA
-0BB1 ; [.24DD.0020.0002] # TAMIL LETTER RRA
-0BA9 ; [.24DE.0020.0002] # TAMIL LETTER NNNA
-0B9C ; [.24DF.0020.0002] # TAMIL LETTER JA
-0BB6 ; [.24E0.0020.0002] # TAMIL LETTER SHA
-0BB7 ; [.24E1.0020.0002] # TAMIL LETTER SSA
-0BB8 ; [.24E2.0020.0002] # TAMIL LETTER SA
-0BB9 ; [.24E3.0020.0002] # TAMIL LETTER HA
-0BBE ; [.24E4.0020.0002] # TAMIL VOWEL SIGN AA
-0BBF ; [.24E5.0020.0002] # TAMIL VOWEL SIGN I
-0BC0 ; [.24E6.0020.0002] # TAMIL VOWEL SIGN II
-0BC1 ; [.24E7.0020.0002] # TAMIL VOWEL SIGN U
-0BC2 ; [.24E8.0020.0002] # TAMIL VOWEL SIGN UU
-0BC6 ; [.24E9.0020.0002] # TAMIL VOWEL SIGN E
-0BC7 ; [.24EA.0020.0002] # TAMIL VOWEL SIGN EE
-0BC8 ; [.24EB.0020.0002] # TAMIL VOWEL SIGN AI
-0BCA ; [.24EC.0020.0002] # TAMIL VOWEL SIGN O
-0BC6 0BBE ; [.24EC.0020.0002] # TAMIL VOWEL SIGN O
-0BCB ; [.24ED.0020.0002] # TAMIL VOWEL SIGN OO
-0BC7 0BBE ; [.24ED.0020.0002] # TAMIL VOWEL SIGN OO
-0BCC ; [.24EE.0020.0002] # TAMIL VOWEL SIGN AU
-0BC6 0BD7 ; [.24EE.0020.0002] # TAMIL VOWEL SIGN AU
-0BCD ; [.24EF.0020.0002] # TAMIL SIGN VIRAMA
-0BD7 ; [.24F0.0020.0002] # TAMIL AU LENGTH MARK
-0C05 ; [.24F1.0020.0002] # TELUGU LETTER A
-0C06 ; [.24F2.0020.0002] # TELUGU LETTER AA
-0C07 ; [.24F3.0020.0002] # TELUGU LETTER I
-0C08 ; [.24F4.0020.0002] # TELUGU LETTER II
-0C09 ; [.24F5.0020.0002] # TELUGU LETTER U
-0C0A ; [.24F6.0020.0002] # TELUGU LETTER UU
-0C0B ; [.24F7.0020.0002] # TELUGU LETTER VOCALIC R
-0C60 ; [.24F8.0020.0002] # TELUGU LETTER VOCALIC RR
-0C0C ; [.24F9.0020.0002] # TELUGU LETTER VOCALIC L
-0C61 ; [.24FA.0020.0002] # TELUGU LETTER VOCALIC LL
-0C0E ; [.24FB.0020.0002] # TELUGU LETTER E
-0C0F ; [.24FC.0020.0002] # TELUGU LETTER EE
-0C10 ; [.24FD.0020.0002] # TELUGU LETTER AI
-0C12 ; [.24FE.0020.0002] # TELUGU LETTER O
-0C13 ; [.24FF.0020.0002] # TELUGU LETTER OO
-0C14 ; [.2500.0020.0002] # TELUGU LETTER AU
-0C15 ; [.2501.0020.0002] # TELUGU LETTER KA
-0C16 ; [.2502.0020.0002] # TELUGU LETTER KHA
-0C17 ; [.2503.0020.0002] # TELUGU LETTER GA
-0C18 ; [.2504.0020.0002] # TELUGU LETTER GHA
-0C19 ; [.2505.0020.0002] # TELUGU LETTER NGA
-0C1A ; [.2506.0020.0002] # TELUGU LETTER CA
-0C58 ; [.2507.0020.0002] # TELUGU LETTER TSA
-0C1B ; [.2508.0020.0002] # TELUGU LETTER CHA
-0C1C ; [.2509.0020.0002] # TELUGU LETTER JA
-0C59 ; [.250A.0020.0002] # TELUGU LETTER DZA
-0C1D ; [.250B.0020.0002] # TELUGU LETTER JHA
-0C1E ; [.250C.0020.0002] # TELUGU LETTER NYA
-0C1F ; [.250D.0020.0002] # TELUGU LETTER TTA
-0C20 ; [.250E.0020.0002] # TELUGU LETTER TTHA
-0C21 ; [.250F.0020.0002] # TELUGU LETTER DDA
-0C22 ; [.2510.0020.0002] # TELUGU LETTER DDHA
-0C23 ; [.2511.0020.0002] # TELUGU LETTER NNA
-0C24 ; [.2512.0020.0002] # TELUGU LETTER TA
-0C25 ; [.2513.0020.0002] # TELUGU LETTER THA
-0C26 ; [.2514.0020.0002] # TELUGU LETTER DA
-0C27 ; [.2515.0020.0002] # TELUGU LETTER DHA
-0C28 ; [.2516.0020.0002] # TELUGU LETTER NA
-0C2A ; [.2517.0020.0002] # TELUGU LETTER PA
-0C2B ; [.2518.0020.0002] # TELUGU LETTER PHA
-0C2C ; [.2519.0020.0002] # TELUGU LETTER BA
-0C2D ; [.251A.0020.0002] # TELUGU LETTER BHA
-0C2E ; [.251B.0020.0002] # TELUGU LETTER MA
-0C2F ; [.251C.0020.0002] # TELUGU LETTER YA
-0C30 ; [.251D.0020.0002] # TELUGU LETTER RA
-0C31 ; [.251E.0020.0002] # TELUGU LETTER RRA
-0C32 ; [.251F.0020.0002] # TELUGU LETTER LA
-0C35 ; [.2520.0020.0002] # TELUGU LETTER VA
-0C36 ; [.2521.0020.0002] # TELUGU LETTER SHA
-0C37 ; [.2522.0020.0002] # TELUGU LETTER SSA
-0C38 ; [.2523.0020.0002] # TELUGU LETTER SA
-0C39 ; [.2524.0020.0002] # TELUGU LETTER HA
-0C33 ; [.2525.0020.0002] # TELUGU LETTER LLA
-0C34 ; [.2526.0020.0002] # TELUGU LETTER LLLA
-0C3D ; [.2527.0020.0002] # TELUGU SIGN AVAGRAHA
-0C3E ; [.2528.0020.0002] # TELUGU VOWEL SIGN AA
-0C3F ; [.2529.0020.0002] # TELUGU VOWEL SIGN I
-0C40 ; [.252A.0020.0002] # TELUGU VOWEL SIGN II
-0C41 ; [.252B.0020.0002] # TELUGU VOWEL SIGN U
-0C42 ; [.252C.0020.0002] # TELUGU VOWEL SIGN UU
-0C43 ; [.252D.0020.0002] # TELUGU VOWEL SIGN VOCALIC R
-0C44 ; [.252E.0020.0002] # TELUGU VOWEL SIGN VOCALIC RR
-0C62 ; [.252F.0020.0002] # TELUGU VOWEL SIGN VOCALIC L
-0C63 ; [.2530.0020.0002] # TELUGU VOWEL SIGN VOCALIC LL
-0C46 ; [.2531.0020.0002] # TELUGU VOWEL SIGN E
-0C47 ; [.2532.0020.0002] # TELUGU VOWEL SIGN EE
-0C48 ; [.2533.0020.0002] # TELUGU VOWEL SIGN AI
-0C46 0C56 ; [.2533.0020.0002] # TELUGU VOWEL SIGN AI
-0C4A ; [.2534.0020.0002] # TELUGU VOWEL SIGN O
-0C4B ; [.2535.0020.0002] # TELUGU VOWEL SIGN OO
-0C4C ; [.2536.0020.0002] # TELUGU VOWEL SIGN AU
-0C4D ; [.2537.0020.0002] # TELUGU SIGN VIRAMA
-0C55 ; [.2538.0020.0002] # TELUGU LENGTH MARK
-0C56 ; [.2539.0020.0002] # TELUGU AI LENGTH MARK
-0C85 ; [.253A.0020.0002] # KANNADA LETTER A
-0C86 ; [.253B.0020.0002] # KANNADA LETTER AA
-0C87 ; [.253C.0020.0002] # KANNADA LETTER I
-0C88 ; [.253D.0020.0002] # KANNADA LETTER II
-0C89 ; [.253E.0020.0002] # KANNADA LETTER U
-0C8A ; [.253F.0020.0002] # KANNADA LETTER UU
-0C8B ; [.2540.0020.0002] # KANNADA LETTER VOCALIC R
-0CE0 ; [.2541.0020.0002] # KANNADA LETTER VOCALIC RR
-0C8C ; [.2542.0020.0002] # KANNADA LETTER VOCALIC L
-0CE1 ; [.2543.0020.0002] # KANNADA LETTER VOCALIC LL
-0C8E ; [.2544.0020.0002] # KANNADA LETTER E
-0C8F ; [.2545.0020.0002] # KANNADA LETTER EE
-0C90 ; [.2546.0020.0002] # KANNADA LETTER AI
-0C92 ; [.2547.0020.0002] # KANNADA LETTER O
-0C93 ; [.2548.0020.0002] # KANNADA LETTER OO
-0C94 ; [.2549.0020.0002] # KANNADA LETTER AU
-0C95 ; [.254A.0020.0002] # KANNADA LETTER KA
-0C96 ; [.254B.0020.0002] # KANNADA LETTER KHA
-0C97 ; [.254C.0020.0002] # KANNADA LETTER GA
-0C98 ; [.254D.0020.0002] # KANNADA LETTER GHA
-0C99 ; [.254E.0020.0002] # KANNADA LETTER NGA
-0C9A ; [.254F.0020.0002] # KANNADA LETTER CA
-0C9B ; [.2550.0020.0002] # KANNADA LETTER CHA
-0C9C ; [.2551.0020.0002] # KANNADA LETTER JA
-0C9D ; [.2552.0020.0002] # KANNADA LETTER JHA
-0C9E ; [.2553.0020.0002] # KANNADA LETTER NYA
-0C9F ; [.2554.0020.0002] # KANNADA LETTER TTA
-0CA0 ; [.2555.0020.0002] # KANNADA LETTER TTHA
-0CA1 ; [.2556.0020.0002] # KANNADA LETTER DDA
-0CA2 ; [.2557.0020.0002] # KANNADA LETTER DDHA
-0CA3 ; [.2558.0020.0002] # KANNADA LETTER NNA
-0CA4 ; [.2559.0020.0002] # KANNADA LETTER TA
-0CA5 ; [.255A.0020.0002] # KANNADA LETTER THA
-0CA6 ; [.255B.0020.0002] # KANNADA LETTER DA
-0CA7 ; [.255C.0020.0002] # KANNADA LETTER DHA
-0CA8 ; [.255D.0020.0002] # KANNADA LETTER NA
-0CAA ; [.255E.0020.0002] # KANNADA LETTER PA
-0CAB ; [.255F.0020.0002] # KANNADA LETTER PHA
-0CAC ; [.2560.0020.0002] # KANNADA LETTER BA
-0CAD ; [.2561.0020.0002] # KANNADA LETTER BHA
-0CAE ; [.2562.0020.0002] # KANNADA LETTER MA
-0CAF ; [.2563.0020.0002] # KANNADA LETTER YA
-0CB0 ; [.2564.0020.0002] # KANNADA LETTER RA
-0CB1 ; [.2565.0020.0002] # KANNADA LETTER RRA
-0CB2 ; [.2566.0020.0002] # KANNADA LETTER LA
-0CB5 ; [.2567.0020.0002] # KANNADA LETTER VA
-0CB6 ; [.2568.0020.0002] # KANNADA LETTER SHA
-0CB7 ; [.2569.0020.0002] # KANNADA LETTER SSA
-0CB8 ; [.256A.0020.0002] # KANNADA LETTER SA
-0CB9 ; [.256B.0020.0002] # KANNADA LETTER HA
-0CB3 ; [.256C.0020.0002] # KANNADA LETTER LLA
-0CDE ; [.256D.0020.0002] # KANNADA LETTER FA
-0CBD ; [.256E.0020.0002] # KANNADA SIGN AVAGRAHA
-0CF1 ; [.256F.0020.0002] # KANNADA SIGN JIHVAMULIYA
-0CF2 ; [.2570.0020.0002] # KANNADA SIGN UPADHMANIYA
-0CBE ; [.2571.0020.0002] # KANNADA VOWEL SIGN AA
-0CBF ; [.2572.0020.0002] # KANNADA VOWEL SIGN I
-0CC0 ; [.2573.0020.0002] # KANNADA VOWEL SIGN II
-0CBF 0CD5 ; [.2573.0020.0002] # KANNADA VOWEL SIGN II
-0CC1 ; [.2574.0020.0002] # KANNADA VOWEL SIGN U
-0CC2 ; [.2575.0020.0002] # KANNADA VOWEL SIGN UU
-0CC3 ; [.2576.0020.0002] # KANNADA VOWEL SIGN VOCALIC R
-0CC4 ; [.2577.0020.0002] # KANNADA VOWEL SIGN VOCALIC RR
-0CE2 ; [.2578.0020.0002] # KANNADA VOWEL SIGN VOCALIC L
-0CE3 ; [.2579.0020.0002] # KANNADA VOWEL SIGN VOCALIC LL
-0CC6 ; [.257A.0020.0002] # KANNADA VOWEL SIGN E
-0CC7 ; [.257B.0020.0002] # KANNADA VOWEL SIGN EE
-0CC6 0CD5 ; [.257B.0020.0002] # KANNADA VOWEL SIGN EE
-0CC8 ; [.257C.0020.0002] # KANNADA VOWEL SIGN AI
-0CC6 0CD6 ; [.257C.0020.0002] # KANNADA VOWEL SIGN AI
-0CCA ; [.257D.0020.0002] # KANNADA VOWEL SIGN O
-0CC6 0CC2 ; [.257D.0020.0002] # KANNADA VOWEL SIGN O
-0CCB ; [.257E.0020.0002] # KANNADA VOWEL SIGN OO
-0CC6 0CC2 0CD5 ; [.257E.0020.0002] # KANNADA VOWEL SIGN OO
-0CCA 0CD5 ; [.257E.0020.0002] # KANNADA VOWEL SIGN OO
-0CCC ; [.257F.0020.0002] # KANNADA VOWEL SIGN AU
-0CCD ; [.2580.0020.0002] # KANNADA SIGN VIRAMA
-0CD5 ; [.2581.0020.0002] # KANNADA LENGTH MARK
-0CD6 ; [.2582.0020.0002] # KANNADA AI LENGTH MARK
-0D05 ; [.2583.0020.0002] # MALAYALAM LETTER A
-0D06 ; [.2584.0020.0002] # MALAYALAM LETTER AA
-0D07 ; [.2585.0020.0002] # MALAYALAM LETTER I
-0D08 ; [.2586.0020.0002] # MALAYALAM LETTER II
-0D09 ; [.2587.0020.0002] # MALAYALAM LETTER U
-0D0A ; [.2588.0020.0002] # MALAYALAM LETTER UU
-0D0B ; [.2589.0020.0002] # MALAYALAM LETTER VOCALIC R
-0D60 ; [.258A.0020.0002] # MALAYALAM LETTER VOCALIC RR
-0D0C ; [.258B.0020.0002] # MALAYALAM LETTER VOCALIC L
-0D61 ; [.258C.0020.0002] # MALAYALAM LETTER VOCALIC LL
-0D0E ; [.258D.0020.0002] # MALAYALAM LETTER E
-0D0F ; [.258E.0020.0002] # MALAYALAM LETTER EE
-0D10 ; [.258F.0020.0002] # MALAYALAM LETTER AI
-0D12 ; [.2590.0020.0002] # MALAYALAM LETTER O
-0D13 ; [.2591.0020.0002] # MALAYALAM LETTER OO
-0D14 ; [.2592.0020.0002] # MALAYALAM LETTER AU
-0D15 ; [.2593.0020.0002] # MALAYALAM LETTER KA
-0D7F ; [.2593.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU K
-0D16 ; [.2594.0020.0002] # MALAYALAM LETTER KHA
-0D17 ; [.2595.0020.0002] # MALAYALAM LETTER GA
-0D18 ; [.2596.0020.0002] # MALAYALAM LETTER GHA
-0D19 ; [.2597.0020.0002] # MALAYALAM LETTER NGA
-0D1A ; [.2598.0020.0002] # MALAYALAM LETTER CA
-0D1B ; [.2599.0020.0002] # MALAYALAM LETTER CHA
-0D1C ; [.259A.0020.0002] # MALAYALAM LETTER JA
-0D1D ; [.259B.0020.0002] # MALAYALAM LETTER JHA
-0D1E ; [.259C.0020.0002] # MALAYALAM LETTER NYA
-0D1F ; [.259D.0020.0002] # MALAYALAM LETTER TTA
-0D20 ; [.259E.0020.0002] # MALAYALAM LETTER TTHA
-0D21 ; [.259F.0020.0002] # MALAYALAM LETTER DDA
-0D22 ; [.25A0.0020.0002] # MALAYALAM LETTER DDHA
-0D23 ; [.25A1.0020.0002] # MALAYALAM LETTER NNA
-0D7A ; [.25A1.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU NN
-0D24 ; [.25A2.0020.0002] # MALAYALAM LETTER TA
-0D25 ; [.25A3.0020.0002] # MALAYALAM LETTER THA
-0D26 ; [.25A4.0020.0002] # MALAYALAM LETTER DA
-0D27 ; [.25A5.0020.0002] # MALAYALAM LETTER DHA
-0D28 ; [.25A6.0020.0002] # MALAYALAM LETTER NA
-0D7B ; [.25A6.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU N
-0D29 ; [.25A7.0020.0002] # MALAYALAM LETTER NNNA
-0D2A ; [.25A8.0020.0002] # MALAYALAM LETTER PA
-0D2B ; [.25A9.0020.0002] # MALAYALAM LETTER PHA
-0D2C ; [.25AA.0020.0002] # MALAYALAM LETTER BA
-0D2D ; [.25AB.0020.0002] # MALAYALAM LETTER BHA
-0D2E ; [.25AC.0020.0002] # MALAYALAM LETTER MA
-0D2F ; [.25AD.0020.0002] # MALAYALAM LETTER YA
-0D30 ; [.25AE.0020.0002] # MALAYALAM LETTER RA
-0D4E ; [.25AE.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER DOT REPH
-0D7C ; [.25AE.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU RR
-0D32 ; [.25AF.0020.0002] # MALAYALAM LETTER LA
-0D7D ; [.25AF.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU L
-0D35 ; [.25B0.0020.0002] # MALAYALAM LETTER VA
-0D36 ; [.25B1.0020.0002] # MALAYALAM LETTER SHA
-0D37 ; [.25B2.0020.0002] # MALAYALAM LETTER SSA
-0D38 ; [.25B3.0020.0002] # MALAYALAM LETTER SA
-0D39 ; [.25B4.0020.0002] # MALAYALAM LETTER HA
-0D33 ; [.25B5.0020.0002] # MALAYALAM LETTER LLA
-0D7E ; [.25B5.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU LL
-0D34 ; [.25B6.0020.0002] # MALAYALAM LETTER LLLA
-0D31 ; [.25B7.0020.0002] # MALAYALAM LETTER RRA
-0D3A ; [.25B8.0020.0002] # MALAYALAM LETTER TTTA
-0D3D ; [.25B9.0020.0002] # MALAYALAM SIGN AVAGRAHA
-0D3E ; [.25BA.0020.0002] # MALAYALAM VOWEL SIGN AA
-0D3F ; [.25BB.0020.0002] # MALAYALAM VOWEL SIGN I
-0D40 ; [.25BC.0020.0002] # MALAYALAM VOWEL SIGN II
-0D41 ; [.25BD.0020.0002] # MALAYALAM VOWEL SIGN U
-0D42 ; [.25BE.0020.0002] # MALAYALAM VOWEL SIGN UU
-0D43 ; [.25BF.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC R
-0D44 ; [.25C0.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC RR
-0D62 ; [.25C1.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC L
-0D63 ; [.25C2.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC LL
-0D46 ; [.25C3.0020.0002] # MALAYALAM VOWEL SIGN E
-0D47 ; [.25C4.0020.0002] # MALAYALAM VOWEL SIGN EE
-0D48 ; [.25C5.0020.0002] # MALAYALAM VOWEL SIGN AI
-0D4A ; [.25C6.0020.0002] # MALAYALAM VOWEL SIGN O
-0D46 0D3E ; [.25C6.0020.0002] # MALAYALAM VOWEL SIGN O
-0D4B ; [.25C7.0020.0002] # MALAYALAM VOWEL SIGN OO
-0D47 0D3E ; [.25C7.0020.0002] # MALAYALAM VOWEL SIGN OO
-0D4C ; [.25C8.0020.0002] # MALAYALAM VOWEL SIGN AU
-0D46 0D57 ; [.25C8.0020.0002] # MALAYALAM VOWEL SIGN AU
-0D57 ; [.25C9.0020.0002] # MALAYALAM AU LENGTH MARK
-0D4D ; [.25CA.0020.0002] # MALAYALAM SIGN VIRAMA
-0D85 ; [.25CB.0020.0002] # SINHALA LETTER AYANNA
-0D86 ; [.25CC.0020.0002] # SINHALA LETTER AAYANNA
-0D87 ; [.25CD.0020.0002] # SINHALA LETTER AEYANNA
-0D88 ; [.25CE.0020.0002] # SINHALA LETTER AEEYANNA
-0D89 ; [.25CF.0020.0002] # SINHALA LETTER IYANNA
-0D8A ; [.25D0.0020.0002] # SINHALA LETTER IIYANNA
-0D8B ; [.25D1.0020.0002] # SINHALA LETTER UYANNA
-0D8C ; [.25D2.0020.0002] # SINHALA LETTER UUYANNA
-0D8D ; [.25D3.0020.0002] # SINHALA LETTER IRUYANNA
-0D8E ; [.25D4.0020.0002] # SINHALA LETTER IRUUYANNA
-0D8F ; [.25D5.0020.0002] # SINHALA LETTER ILUYANNA
-0D90 ; [.25D6.0020.0002] # SINHALA LETTER ILUUYANNA
-0D91 ; [.25D7.0020.0002] # SINHALA LETTER EYANNA
-0D92 ; [.25D8.0020.0002] # SINHALA LETTER EEYANNA
-0D93 ; [.25D9.0020.0002] # SINHALA LETTER AIYANNA
-0D94 ; [.25DA.0020.0002] # SINHALA LETTER OYANNA
-0D95 ; [.25DB.0020.0002] # SINHALA LETTER OOYANNA
-0D96 ; [.25DC.0020.0002] # SINHALA LETTER AUYANNA
-0D9A ; [.25DD.0020.0002] # SINHALA LETTER ALPAPRAANA KAYANNA
-0D9B ; [.25DE.0020.0002] # SINHALA LETTER MAHAAPRAANA KAYANNA
-0D9C ; [.25DF.0020.0002] # SINHALA LETTER ALPAPRAANA GAYANNA
-0D9D ; [.25E0.0020.0002] # SINHALA LETTER MAHAAPRAANA GAYANNA
-0D9E ; [.25E1.0020.0002] # SINHALA LETTER KANTAJA NAASIKYAYA
-0D9F ; [.25E2.0020.0002] # SINHALA LETTER SANYAKA GAYANNA
-0DA0 ; [.25E3.0020.0002] # SINHALA LETTER ALPAPRAANA CAYANNA
-0DA1 ; [.25E4.0020.0002] # SINHALA LETTER MAHAAPRAANA CAYANNA
-0DA2 ; [.25E5.0020.0002] # SINHALA LETTER ALPAPRAANA JAYANNA
-0DA3 ; [.25E6.0020.0002] # SINHALA LETTER MAHAAPRAANA JAYANNA
-0DA4 ; [.25E7.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
-0DA5 ; [.25E8.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA6 ; [.25E9.0020.0002] # SINHALA LETTER SANYAKA JAYANNA
-0DA7 ; [.25EA.0020.0002] # SINHALA LETTER ALPAPRAANA TTAYANNA
-0DA8 ; [.25EB.0020.0002] # SINHALA LETTER MAHAAPRAANA TTAYANNA
-0DA9 ; [.25EC.0020.0002] # SINHALA LETTER ALPAPRAANA DDAYANNA
-0DAA ; [.25ED.0020.0002] # SINHALA LETTER MAHAAPRAANA DDAYANNA
-0DAB ; [.25EE.0020.0002] # SINHALA LETTER MUURDHAJA NAYANNA
-0DAC ; [.25EF.0020.0002] # SINHALA LETTER SANYAKA DDAYANNA
-0DAD ; [.25F0.0020.0002] # SINHALA LETTER ALPAPRAANA TAYANNA
-0DAE ; [.25F1.0020.0002] # SINHALA LETTER MAHAAPRAANA TAYANNA
-0DAF ; [.25F2.0020.0002] # SINHALA LETTER ALPAPRAANA DAYANNA
-0DB0 ; [.25F3.0020.0002] # SINHALA LETTER MAHAAPRAANA DAYANNA
-0DB1 ; [.25F4.0020.0002] # SINHALA LETTER DANTAJA NAYANNA
-0DB3 ; [.25F5.0020.0002] # SINHALA LETTER SANYAKA DAYANNA
-0DB4 ; [.25F6.0020.0002] # SINHALA LETTER ALPAPRAANA PAYANNA
-0DB5 ; [.25F7.0020.0002] # SINHALA LETTER MAHAAPRAANA PAYANNA
-0DB6 ; [.25F8.0020.0002] # SINHALA LETTER ALPAPRAANA BAYANNA
-0DB7 ; [.25F9.0020.0002] # SINHALA LETTER MAHAAPRAANA BAYANNA
-0DB8 ; [.25FA.0020.0002] # SINHALA LETTER MAYANNA
-0DB9 ; [.25FB.0020.0002] # SINHALA LETTER AMBA BAYANNA
-0DBA ; [.25FC.0020.0002] # SINHALA LETTER YAYANNA
-0DBB ; [.25FD.0020.0002] # SINHALA LETTER RAYANNA
-0DBD ; [.25FE.0020.0002] # SINHALA LETTER DANTAJA LAYANNA
-0DC0 ; [.25FF.0020.0002] # SINHALA LETTER VAYANNA
-0DC1 ; [.2600.0020.0002] # SINHALA LETTER TAALUJA SAYANNA
-0DC2 ; [.2601.0020.0002] # SINHALA LETTER MUURDHAJA SAYANNA
-0DC3 ; [.2602.0020.0002] # SINHALA LETTER DANTAJA SAYANNA
-0DC4 ; [.2603.0020.0002] # SINHALA LETTER HAYANNA
-0DC5 ; [.2604.0020.0002] # SINHALA LETTER MUURDHAJA LAYANNA
-0DC6 ; [.2605.0020.0002] # SINHALA LETTER FAYANNA
-0DCF ; [.2606.0020.0002] # SINHALA VOWEL SIGN AELA-PILLA
-0DD0 ; [.2607.0020.0002] # SINHALA VOWEL SIGN KETTI AEDA-PILLA
-0DD1 ; [.2608.0020.0002] # SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2 ; [.2609.0020.0002] # SINHALA VOWEL SIGN KETTI IS-PILLA
-0DD3 ; [.260A.0020.0002] # SINHALA VOWEL SIGN DIGA IS-PILLA
-0DD4 ; [.260B.0020.0002] # SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6 ; [.260C.0020.0002] # SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8 ; [.260D.0020.0002] # SINHALA VOWEL SIGN GAETTA-PILLA
-0DF2 ; [.260E.0020.0002] # SINHALA VOWEL SIGN DIGA GAETTA-PILLA
-0DDF ; [.260F.0020.0002] # SINHALA VOWEL SIGN GAYANUKITTA
-0DF3 ; [.2610.0020.0002] # SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DD9 ; [.2611.0020.0002] # SINHALA VOWEL SIGN KOMBUVA
-0DDA ; [.2612.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DD9 0DCA ; [.2612.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DDB ; [.2613.0020.0002] # SINHALA VOWEL SIGN KOMBU DEKA
-0DDC ; [.2614.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DD9 0DCF ; [.2614.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DDD ; [.2615.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DD9 0DCF 0DCA ; [.2615.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDC 0DCA ; [.2615.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDE ; [.2616.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DD9 0DDF ; [.2616.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DCA ; [.2617.0020.0002] # SINHALA SIGN AL-LAKUNA
-AAF2 ; [.2618.0020.0002] # MEETEI MAYEK ANJI
-ABC0 ; [.2619.0020.0002] # MEETEI MAYEK LETTER KOK
-ABC1 ; [.261A.0020.0002] # MEETEI MAYEK LETTER SAM
-ABC2 ; [.261B.0020.0002] # MEETEI MAYEK LETTER LAI
-ABC3 ; [.261C.0020.0002] # MEETEI MAYEK LETTER MIT
-ABC4 ; [.261D.0020.0002] # MEETEI MAYEK LETTER PA
-ABC5 ; [.261E.0020.0002] # MEETEI MAYEK LETTER NA
-ABC6 ; [.261F.0020.0002] # MEETEI MAYEK LETTER CHIL
-ABC7 ; [.2620.0020.0002] # MEETEI MAYEK LETTER TIL
-ABC8 ; [.2621.0020.0002] # MEETEI MAYEK LETTER KHOU
-ABC9 ; [.2622.0020.0002] # MEETEI MAYEK LETTER NGOU
-ABCA ; [.2623.0020.0002] # MEETEI MAYEK LETTER THOU
-ABCB ; [.2624.0020.0002] # MEETEI MAYEK LETTER WAI
-ABCC ; [.2625.0020.0002] # MEETEI MAYEK LETTER YANG
-ABCD ; [.2626.0020.0002] # MEETEI MAYEK LETTER HUK
-ABCE ; [.2627.0020.0002] # MEETEI MAYEK LETTER UN
-ABCF ; [.2628.0020.0002] # MEETEI MAYEK LETTER I
-ABD0 ; [.2629.0020.0002] # MEETEI MAYEK LETTER PHAM
-ABD1 ; [.262A.0020.0002] # MEETEI MAYEK LETTER ATIYA
-ABD2 ; [.262B.0020.0002] # MEETEI MAYEK LETTER GOK
-ABD3 ; [.262C.0020.0002] # MEETEI MAYEK LETTER JHAM
-ABD4 ; [.262D.0020.0002] # MEETEI MAYEK LETTER RAI
-ABD5 ; [.262E.0020.0002] # MEETEI MAYEK LETTER BA
-ABD6 ; [.262F.0020.0002] # MEETEI MAYEK LETTER JIL
-ABD7 ; [.2630.0020.0002] # MEETEI MAYEK LETTER DIL
-ABD8 ; [.2631.0020.0002] # MEETEI MAYEK LETTER GHOU
-ABD9 ; [.2632.0020.0002] # MEETEI MAYEK LETTER DHOU
-ABDA ; [.2633.0020.0002] # MEETEI MAYEK LETTER BHAM
-AAE0 ; [.2634.0020.0002] # MEETEI MAYEK LETTER E
-AAE1 ; [.2635.0020.0002] # MEETEI MAYEK LETTER O
-AAE2 ; [.2636.0020.0002] # MEETEI MAYEK LETTER CHA
-AAE3 ; [.2637.0020.0002] # MEETEI MAYEK LETTER NYA
-AAE4 ; [.2638.0020.0002] # MEETEI MAYEK LETTER TTA
-AAE5 ; [.2639.0020.0002] # MEETEI MAYEK LETTER TTHA
-AAE6 ; [.263A.0020.0002] # MEETEI MAYEK LETTER DDA
-AAE7 ; [.263B.0020.0002] # MEETEI MAYEK LETTER DDHA
-AAE8 ; [.263C.0020.0002] # MEETEI MAYEK LETTER NNA
-AAE9 ; [.263D.0020.0002] # MEETEI MAYEK LETTER SHA
-AAEA ; [.263E.0020.0002] # MEETEI MAYEK LETTER SSA
-ABE3 ; [.263F.0020.0002] # MEETEI MAYEK VOWEL SIGN ONAP
-ABE4 ; [.2640.0020.0002] # MEETEI MAYEK VOWEL SIGN INAP
-ABE5 ; [.2641.0020.0002] # MEETEI MAYEK VOWEL SIGN ANAP
-ABE6 ; [.2642.0020.0002] # MEETEI MAYEK VOWEL SIGN YENAP
-ABE7 ; [.2643.0020.0002] # MEETEI MAYEK VOWEL SIGN SOUNAP
-ABE8 ; [.2644.0020.0002] # MEETEI MAYEK VOWEL SIGN UNAP
-ABE9 ; [.2645.0020.0002] # MEETEI MAYEK VOWEL SIGN CHEINAP
-ABEA ; [.2646.0020.0002] # MEETEI MAYEK VOWEL SIGN NUNG
-AAEB ; [.2647.0020.0002] # MEETEI MAYEK VOWEL SIGN II
-AAEC ; [.2648.0020.0002] # MEETEI MAYEK VOWEL SIGN UU
-AAED ; [.2649.0020.0002] # MEETEI MAYEK VOWEL SIGN AAI
-AAEE ; [.264A.0020.0002] # MEETEI MAYEK VOWEL SIGN AU
-AAEF ; [.264B.0020.0002] # MEETEI MAYEK VOWEL SIGN AAU
-AAF5 ; [.264C.0020.0002] # MEETEI MAYEK VOWEL SIGN VISARGA
-ABDB ; [.264D.0020.0002] # MEETEI MAYEK LETTER KOK LONSUM
-ABDC ; [.264E.0020.0002] # MEETEI MAYEK LETTER LAI LONSUM
-ABDD ; [.264F.0020.0002] # MEETEI MAYEK LETTER MIT LONSUM
-ABDE ; [.2650.0020.0002] # MEETEI MAYEK LETTER PA LONSUM
-ABDF ; [.2651.0020.0002] # MEETEI MAYEK LETTER NA LONSUM
-ABE0 ; [.2652.0020.0002] # MEETEI MAYEK LETTER TIL LONSUM
-ABE1 ; [.2653.0020.0002] # MEETEI MAYEK LETTER NGOU LONSUM
-ABE2 ; [.2654.0020.0002] # MEETEI MAYEK LETTER I LONSUM
-ABED ; [.2655.0020.0002] # MEETEI MAYEK APUN IYEK
-AAF6 ; [.2656.0020.0002] # MEETEI MAYEK VIRAMA
-A800 ; [.2657.0020.0002] # SYLOTI NAGRI LETTER A
-A801 ; [.2658.0020.0002] # SYLOTI NAGRI LETTER I
-A802 ; [.2659.0020.0002] # SYLOTI NAGRI SIGN DVISVARA
-A803 ; [.265A.0020.0002] # SYLOTI NAGRI LETTER U
-A804 ; [.265B.0020.0002] # SYLOTI NAGRI LETTER E
-A805 ; [.265C.0020.0002] # SYLOTI NAGRI LETTER O
-A806 ; [.265D.0020.0002] # SYLOTI NAGRI SIGN HASANTA
-A807 ; [.265E.0020.0002] # SYLOTI NAGRI LETTER KO
-A808 ; [.265F.0020.0002] # SYLOTI NAGRI LETTER KHO
-A809 ; [.2660.0020.0002] # SYLOTI NAGRI LETTER GO
-A80A ; [.2661.0020.0002] # SYLOTI NAGRI LETTER GHO
-A80C ; [.2662.0020.0002] # SYLOTI NAGRI LETTER CO
-A80D ; [.2663.0020.0002] # SYLOTI NAGRI LETTER CHO
-A80E ; [.2664.0020.0002] # SYLOTI NAGRI LETTER JO
-A80F ; [.2665.0020.0002] # SYLOTI NAGRI LETTER JHO
-A810 ; [.2666.0020.0002] # SYLOTI NAGRI LETTER TTO
-A811 ; [.2667.0020.0002] # SYLOTI NAGRI LETTER TTHO
-A812 ; [.2668.0020.0002] # SYLOTI NAGRI LETTER DDO
-A813 ; [.2669.0020.0002] # SYLOTI NAGRI LETTER DDHO
-A814 ; [.266A.0020.0002] # SYLOTI NAGRI LETTER TO
-A815 ; [.266B.0020.0002] # SYLOTI NAGRI LETTER THO
-A816 ; [.266C.0020.0002] # SYLOTI NAGRI LETTER DO
-A817 ; [.266D.0020.0002] # SYLOTI NAGRI LETTER DHO
-A818 ; [.266E.0020.0002] # SYLOTI NAGRI LETTER NO
-A819 ; [.266F.0020.0002] # SYLOTI NAGRI LETTER PO
-A81A ; [.2670.0020.0002] # SYLOTI NAGRI LETTER PHO
-A81B ; [.2671.0020.0002] # SYLOTI NAGRI LETTER BO
-A81C ; [.2672.0020.0002] # SYLOTI NAGRI LETTER BHO
-A81D ; [.2673.0020.0002] # SYLOTI NAGRI LETTER MO
-A81E ; [.2674.0020.0002] # SYLOTI NAGRI LETTER RO
-A81F ; [.2675.0020.0002] # SYLOTI NAGRI LETTER LO
-A820 ; [.2676.0020.0002] # SYLOTI NAGRI LETTER RRO
-A821 ; [.2677.0020.0002] # SYLOTI NAGRI LETTER SO
-A822 ; [.2678.0020.0002] # SYLOTI NAGRI LETTER HO
-A823 ; [.2679.0020.0002] # SYLOTI NAGRI VOWEL SIGN A
-A824 ; [.267A.0020.0002] # SYLOTI NAGRI VOWEL SIGN I
-A825 ; [.267B.0020.0002] # SYLOTI NAGRI VOWEL SIGN U
-A826 ; [.267C.0020.0002] # SYLOTI NAGRI VOWEL SIGN E
-A827 ; [.267D.0020.0002] # SYLOTI NAGRI VOWEL SIGN OO
-A882 ; [.267E.0020.0002] # SAURASHTRA LETTER A
-A883 ; [.267F.0020.0002] # SAURASHTRA LETTER AA
-A884 ; [.2680.0020.0002] # SAURASHTRA LETTER I
-A885 ; [.2681.0020.0002] # SAURASHTRA LETTER II
-A886 ; [.2682.0020.0002] # SAURASHTRA LETTER U
-A887 ; [.2683.0020.0002] # SAURASHTRA LETTER UU
-A888 ; [.2684.0020.0002] # SAURASHTRA LETTER VOCALIC R
-A889 ; [.2685.0020.0002] # SAURASHTRA LETTER VOCALIC RR
-A88A ; [.2686.0020.0002] # SAURASHTRA LETTER VOCALIC L
-A88B ; [.2687.0020.0002] # SAURASHTRA LETTER VOCALIC LL
-A88C ; [.2688.0020.0002] # SAURASHTRA LETTER E
-A88D ; [.2689.0020.0002] # SAURASHTRA LETTER EE
-A88E ; [.268A.0020.0002] # SAURASHTRA LETTER AI
-A88F ; [.268B.0020.0002] # SAURASHTRA LETTER O
-A890 ; [.268C.0020.0002] # SAURASHTRA LETTER OO
-A891 ; [.268D.0020.0002] # SAURASHTRA LETTER AU
-A892 ; [.268E.0020.0002] # SAURASHTRA LETTER KA
-A893 ; [.268F.0020.0002] # SAURASHTRA LETTER KHA
-A894 ; [.2690.0020.0002] # SAURASHTRA LETTER GA
-A895 ; [.2691.0020.0002] # SAURASHTRA LETTER GHA
-A896 ; [.2692.0020.0002] # SAURASHTRA LETTER NGA
-A897 ; [.2693.0020.0002] # SAURASHTRA LETTER CA
-A898 ; [.2694.0020.0002] # SAURASHTRA LETTER CHA
-A899 ; [.2695.0020.0002] # SAURASHTRA LETTER JA
-A89A ; [.2696.0020.0002] # SAURASHTRA LETTER JHA
-A89B ; [.2697.0020.0002] # SAURASHTRA LETTER NYA
-A89C ; [.2698.0020.0002] # SAURASHTRA LETTER TTA
-A89D ; [.2699.0020.0002] # SAURASHTRA LETTER TTHA
-A89E ; [.269A.0020.0002] # SAURASHTRA LETTER DDA
-A89F ; [.269B.0020.0002] # SAURASHTRA LETTER DDHA
-A8A0 ; [.269C.0020.0002] # SAURASHTRA LETTER NNA
-A8A1 ; [.269D.0020.0002] # SAURASHTRA LETTER TA
-A8A2 ; [.269E.0020.0002] # SAURASHTRA LETTER THA
-A8A3 ; [.269F.0020.0002] # SAURASHTRA LETTER DA
-A8A4 ; [.26A0.0020.0002] # SAURASHTRA LETTER DHA
-A8A5 ; [.26A1.0020.0002] # SAURASHTRA LETTER NA
-A8A6 ; [.26A2.0020.0002] # SAURASHTRA LETTER PA
-A8A7 ; [.26A3.0020.0002] # SAURASHTRA LETTER PHA
-A8A8 ; [.26A4.0020.0002] # SAURASHTRA LETTER BA
-A8A9 ; [.26A5.0020.0002] # SAURASHTRA LETTER BHA
-A8AA ; [.26A6.0020.0002] # SAURASHTRA LETTER MA
-A8AB ; [.26A7.0020.0002] # SAURASHTRA LETTER YA
-A8AC ; [.26A8.0020.0002] # SAURASHTRA LETTER RA
-A8AD ; [.26A9.0020.0002] # SAURASHTRA LETTER LA
-A8AE ; [.26AA.0020.0002] # SAURASHTRA LETTER VA
-A8AF ; [.26AB.0020.0002] # SAURASHTRA LETTER SHA
-A8B0 ; [.26AC.0020.0002] # SAURASHTRA LETTER SSA
-A8B1 ; [.26AD.0020.0002] # SAURASHTRA LETTER SA
-A8B2 ; [.26AE.0020.0002] # SAURASHTRA LETTER HA
-A8B3 ; [.26AF.0020.0002] # SAURASHTRA LETTER LLA
-A8B4 ; [.26B0.0020.0002] # SAURASHTRA CONSONANT SIGN HAARU
-A8B5 ; [.26B1.0020.0002] # SAURASHTRA VOWEL SIGN AA
-A8B6 ; [.26B2.0020.0002] # SAURASHTRA VOWEL SIGN I
-A8B7 ; [.26B3.0020.0002] # SAURASHTRA VOWEL SIGN II
-A8B8 ; [.26B4.0020.0002] # SAURASHTRA VOWEL SIGN U
-A8B9 ; [.26B5.0020.0002] # SAURASHTRA VOWEL SIGN UU
-A8BA ; [.26B6.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC R
-A8BB ; [.26B7.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC RR
-A8BC ; [.26B8.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC L
-A8BD ; [.26B9.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC LL
-A8BE ; [.26BA.0020.0002] # SAURASHTRA VOWEL SIGN E
-A8BF ; [.26BB.0020.0002] # SAURASHTRA VOWEL SIGN EE
-A8C0 ; [.26BC.0020.0002] # SAURASHTRA VOWEL SIGN AI
-A8C1 ; [.26BD.0020.0002] # SAURASHTRA VOWEL SIGN O
-A8C2 ; [.26BE.0020.0002] # SAURASHTRA VOWEL SIGN OO
-A8C3 ; [.26BF.0020.0002] # SAURASHTRA VOWEL SIGN AU
-A8C4 ; [.26C0.0020.0002] # SAURASHTRA SIGN VIRAMA
-11083 ; [.26C1.0020.0002] # KAITHI LETTER A
-11084 ; [.26C2.0020.0002] # KAITHI LETTER AA
-11085 ; [.26C3.0020.0002] # KAITHI LETTER I
-11086 ; [.26C4.0020.0002] # KAITHI LETTER II
-11087 ; [.26C5.0020.0002] # KAITHI LETTER U
-11088 ; [.26C6.0020.0002] # KAITHI LETTER UU
-11089 ; [.26C7.0020.0002] # KAITHI LETTER E
-1108A ; [.26C8.0020.0002] # KAITHI LETTER AI
-1108B ; [.26C9.0020.0002] # KAITHI LETTER O
-1108C ; [.26CA.0020.0002] # KAITHI LETTER AU
-1108D ; [.26CB.0020.0002] # KAITHI LETTER KA
-1108E ; [.26CC.0020.0002] # KAITHI LETTER KHA
-1108F ; [.26CD.0020.0002] # KAITHI LETTER GA
-11090 ; [.26CE.0020.0002] # KAITHI LETTER GHA
-11091 ; [.26CF.0020.0002] # KAITHI LETTER NGA
-11092 ; [.26D0.0020.0002] # KAITHI LETTER CA
-11093 ; [.26D1.0020.0002] # KAITHI LETTER CHA
-11094 ; [.26D2.0020.0002] # KAITHI LETTER JA
-11095 ; [.26D3.0020.0002] # KAITHI LETTER JHA
-11096 ; [.26D4.0020.0002] # KAITHI LETTER NYA
-11097 ; [.26D5.0020.0002] # KAITHI LETTER TTA
-11098 ; [.26D6.0020.0002] # KAITHI LETTER TTHA
-11099 ; [.26D7.0020.0002] # KAITHI LETTER DDA
-1109A ; [.26D7.0020.0002][.0000.00BC.0002] # KAITHI LETTER DDDHA
-1109B ; [.26D8.0020.0002] # KAITHI LETTER DDHA
-1109C ; [.26D8.0020.0002][.0000.00BC.0002] # KAITHI LETTER RHA
-1109D ; [.26D9.0020.0002] # KAITHI LETTER NNA
-1109E ; [.26DA.0020.0002] # KAITHI LETTER TA
-1109F ; [.26DB.0020.0002] # KAITHI LETTER THA
-110A0 ; [.26DC.0020.0002] # KAITHI LETTER DA
-110A1 ; [.26DD.0020.0002] # KAITHI LETTER DHA
-110A2 ; [.26DE.0020.0002] # KAITHI LETTER NA
-110A3 ; [.26DF.0020.0002] # KAITHI LETTER PA
-110A4 ; [.26E0.0020.0002] # KAITHI LETTER PHA
-110A5 ; [.26E1.0020.0002] # KAITHI LETTER BA
-110AB ; [.26E1.0020.0002][.0000.00BC.0002] # KAITHI LETTER VA
-110A6 ; [.26E2.0020.0002] # KAITHI LETTER BHA
-110A7 ; [.26E3.0020.0002] # KAITHI LETTER MA
-110A8 ; [.26E4.0020.0002] # KAITHI LETTER YA
-110A9 ; [.26E5.0020.0002] # KAITHI LETTER RA
-110AA ; [.26E6.0020.0002] # KAITHI LETTER LA
-110AC ; [.26E7.0020.0002] # KAITHI LETTER SHA
-110AD ; [.26E8.0020.0002] # KAITHI LETTER SSA
-110AE ; [.26E9.0020.0002] # KAITHI LETTER SA
-110AF ; [.26EA.0020.0002] # KAITHI LETTER HA
-110B0 ; [.26EB.0020.0002] # KAITHI VOWEL SIGN AA
-110B1 ; [.26EC.0020.0002] # KAITHI VOWEL SIGN I
-110B2 ; [.26ED.0020.0002] # KAITHI VOWEL SIGN II
-110B3 ; [.26EE.0020.0002] # KAITHI VOWEL SIGN U
-110B4 ; [.26EF.0020.0002] # KAITHI VOWEL SIGN UU
-110B5 ; [.26F0.0020.0002] # KAITHI VOWEL SIGN E
-110B6 ; [.26F1.0020.0002] # KAITHI VOWEL SIGN AI
-110B7 ; [.26F2.0020.0002] # KAITHI VOWEL SIGN O
-110B8 ; [.26F3.0020.0002] # KAITHI VOWEL SIGN AU
-110B9 ; [.26F4.0020.0002] # KAITHI SIGN VIRAMA
-11150 ; [.26F5.0020.0002] # MAHAJANI LETTER A
-11151 ; [.26F6.0020.0002] # MAHAJANI LETTER I
-11152 ; [.26F7.0020.0002] # MAHAJANI LETTER U
-11153 ; [.26F8.0020.0002] # MAHAJANI LETTER E
-11154 ; [.26F9.0020.0002] # MAHAJANI LETTER O
-11155 ; [.26FA.0020.0002] # MAHAJANI LETTER KA
-11156 ; [.26FB.0020.0002] # MAHAJANI LETTER KHA
-11157 ; [.26FC.0020.0002] # MAHAJANI LETTER GA
-11158 ; [.26FD.0020.0002] # MAHAJANI LETTER GHA
-11159 ; [.26FE.0020.0002] # MAHAJANI LETTER CA
-1115A ; [.26FF.0020.0002] # MAHAJANI LETTER CHA
-1115B ; [.2700.0020.0002] # MAHAJANI LETTER JA
-1115C ; [.2701.0020.0002] # MAHAJANI LETTER JHA
-1115D ; [.2702.0020.0002] # MAHAJANI LETTER NYA
-1115E ; [.2703.0020.0002] # MAHAJANI LETTER TTA
-1115F ; [.2704.0020.0002] # MAHAJANI LETTER TTHA
-11160 ; [.2705.0020.0002] # MAHAJANI LETTER DDA
-11161 ; [.2706.0020.0002] # MAHAJANI LETTER DDHA
-11162 ; [.2707.0020.0002] # MAHAJANI LETTER NNA
-11163 ; [.2708.0020.0002] # MAHAJANI LETTER TA
-11164 ; [.2709.0020.0002] # MAHAJANI LETTER THA
-11165 ; [.270A.0020.0002] # MAHAJANI LETTER DA
-11166 ; [.270B.0020.0002] # MAHAJANI LETTER DHA
-11167 ; [.270C.0020.0002] # MAHAJANI LETTER NA
-11168 ; [.270D.0020.0002] # MAHAJANI LETTER PA
-11169 ; [.270E.0020.0002] # MAHAJANI LETTER PHA
-1116A ; [.270F.0020.0002] # MAHAJANI LETTER BA
-1116B ; [.2710.0020.0002] # MAHAJANI LETTER BHA
-1116C ; [.2711.0020.0002] # MAHAJANI LETTER MA
-1116D ; [.2712.0020.0002] # MAHAJANI LETTER RA
-1116E ; [.2713.0020.0002] # MAHAJANI LETTER LA
-1116F ; [.2714.0020.0002] # MAHAJANI LETTER VA
-11176 ; [.2715.0020.0002] # MAHAJANI LIGATURE SHRI
-11170 ; [.2716.0020.0002] # MAHAJANI LETTER SA
-11171 ; [.2717.0020.0002] # MAHAJANI LETTER HA
-11172 ; [.2718.0020.0002] # MAHAJANI LETTER RRA
-111C4 ; [.2719.0020.0002] # SHARADA OM
-111DA ; [.271A.0020.0002] # SHARADA EKAM
-11183 ; [.271B.0020.0002] # SHARADA LETTER A
-11184 ; [.271C.0020.0002] # SHARADA LETTER AA
-11185 ; [.271D.0020.0002] # SHARADA LETTER I
-11186 ; [.271E.0020.0002] # SHARADA LETTER II
-11187 ; [.271F.0020.0002] # SHARADA LETTER U
-11188 ; [.2720.0020.0002] # SHARADA LETTER UU
-11189 ; [.2721.0020.0002] # SHARADA LETTER VOCALIC R
-1118A ; [.2722.0020.0002] # SHARADA LETTER VOCALIC RR
-1118B ; [.2723.0020.0002] # SHARADA LETTER VOCALIC L
-1118C ; [.2724.0020.0002] # SHARADA LETTER VOCALIC LL
-1118D ; [.2725.0020.0002] # SHARADA LETTER E
-1118E ; [.2726.0020.0002] # SHARADA LETTER AI
-1118F ; [.2727.0020.0002] # SHARADA LETTER O
-11190 ; [.2728.0020.0002] # SHARADA LETTER AU
-11191 ; [.2729.0020.0002] # SHARADA LETTER KA
-11192 ; [.272A.0020.0002] # SHARADA LETTER KHA
-11193 ; [.272B.0020.0002] # SHARADA LETTER GA
-11194 ; [.272C.0020.0002] # SHARADA LETTER GHA
-11195 ; [.272D.0020.0002] # SHARADA LETTER NGA
-11196 ; [.272E.0020.0002] # SHARADA LETTER CA
-11197 ; [.272F.0020.0002] # SHARADA LETTER CHA
-11198 ; [.2730.0020.0002] # SHARADA LETTER JA
-11199 ; [.2731.0020.0002] # SHARADA LETTER JHA
-1119A ; [.2732.0020.0002] # SHARADA LETTER NYA
-1119B ; [.2733.0020.0002] # SHARADA LETTER TTA
-1119C ; [.2734.0020.0002] # SHARADA LETTER TTHA
-1119D ; [.2735.0020.0002] # SHARADA LETTER DDA
-1119E ; [.2736.0020.0002] # SHARADA LETTER DDHA
-1119F ; [.2737.0020.0002] # SHARADA LETTER NNA
-111A0 ; [.2738.0020.0002] # SHARADA LETTER TA
-111A1 ; [.2739.0020.0002] # SHARADA LETTER THA
-111A2 ; [.273A.0020.0002] # SHARADA LETTER DA
-111A3 ; [.273B.0020.0002] # SHARADA LETTER DHA
-111A4 ; [.273C.0020.0002] # SHARADA LETTER NA
-111A5 ; [.273D.0020.0002] # SHARADA LETTER PA
-111A6 ; [.273E.0020.0002] # SHARADA LETTER PHA
-111A7 ; [.273F.0020.0002] # SHARADA LETTER BA
-111A8 ; [.2740.0020.0002] # SHARADA LETTER BHA
-111A9 ; [.2741.0020.0002] # SHARADA LETTER MA
-111AA ; [.2742.0020.0002] # SHARADA LETTER YA
-111AB ; [.2743.0020.0002] # SHARADA LETTER RA
-111AC ; [.2744.0020.0002] # SHARADA LETTER LA
-111AD ; [.2745.0020.0002] # SHARADA LETTER LLA
-111AE ; [.2746.0020.0002] # SHARADA LETTER VA
-111AF ; [.2747.0020.0002] # SHARADA LETTER SHA
-111B0 ; [.2748.0020.0002] # SHARADA LETTER SSA
-111B1 ; [.2749.0020.0002] # SHARADA LETTER SA
-111B2 ; [.274A.0020.0002] # SHARADA LETTER HA
-111C1 ; [.274B.0020.0002] # SHARADA SIGN AVAGRAHA
-111C2 ; [.274C.0020.0002] # SHARADA SIGN JIHVAMULIYA
-111C3 ; [.274D.0020.0002] # SHARADA SIGN UPADHMANIYA
-111B3 ; [.274E.0020.0002] # SHARADA VOWEL SIGN AA
-111B4 ; [.274F.0020.0002] # SHARADA VOWEL SIGN I
-111B5 ; [.2750.0020.0002] # SHARADA VOWEL SIGN II
-111B6 ; [.2751.0020.0002] # SHARADA VOWEL SIGN U
-111B7 ; [.2752.0020.0002] # SHARADA VOWEL SIGN UU
-111B8 ; [.2753.0020.0002] # SHARADA VOWEL SIGN VOCALIC R
-111B9 ; [.2754.0020.0002] # SHARADA VOWEL SIGN VOCALIC RR
-111BA ; [.2755.0020.0002] # SHARADA VOWEL SIGN VOCALIC L
-111BB ; [.2756.0020.0002] # SHARADA VOWEL SIGN VOCALIC LL
-111BC ; [.2757.0020.0002] # SHARADA VOWEL SIGN E
-111BD ; [.2758.0020.0002] # SHARADA VOWEL SIGN AI
-111BE ; [.2759.0020.0002] # SHARADA VOWEL SIGN O
-111BF ; [.275A.0020.0002] # SHARADA VOWEL SIGN AU
-111C0 ; [.275B.0020.0002] # SHARADA SIGN VIRAMA
-11200 ; [.275C.0020.0002] # KHOJKI LETTER A
-11201 ; [.275D.0020.0002] # KHOJKI LETTER AA
-11202 ; [.275E.0020.0002] # KHOJKI LETTER I
-11203 ; [.275F.0020.0002] # KHOJKI LETTER U
-11204 ; [.2760.0020.0002] # KHOJKI LETTER E
-11205 ; [.2761.0020.0002] # KHOJKI LETTER AI
-11206 ; [.2762.0020.0002] # KHOJKI LETTER O
-11207 ; [.2763.0020.0002] # KHOJKI LETTER AU
-11208 ; [.2764.0020.0002] # KHOJKI LETTER KA
-11209 ; [.2765.0020.0002] # KHOJKI LETTER KHA
-1120A ; [.2766.0020.0002] # KHOJKI LETTER GA
-1120B ; [.2767.0020.0002] # KHOJKI LETTER GGA
-1120C ; [.2768.0020.0002] # KHOJKI LETTER GHA
-1120D ; [.2769.0020.0002] # KHOJKI LETTER NGA
-1120E ; [.276A.0020.0002] # KHOJKI LETTER CA
-1120F ; [.276B.0020.0002] # KHOJKI LETTER CHA
-11210 ; [.276C.0020.0002] # KHOJKI LETTER JA
-11211 ; [.276D.0020.0002] # KHOJKI LETTER JJA
-11213 ; [.276E.0020.0002] # KHOJKI LETTER NYA
-11214 ; [.276F.0020.0002] # KHOJKI LETTER TTA
-11215 ; [.2770.0020.0002] # KHOJKI LETTER TTHA
-11216 ; [.2771.0020.0002] # KHOJKI LETTER DDA
-11217 ; [.2772.0020.0002] # KHOJKI LETTER DDHA
-11218 ; [.2773.0020.0002] # KHOJKI LETTER NNA
-11219 ; [.2774.0020.0002] # KHOJKI LETTER TA
-1121A ; [.2775.0020.0002] # KHOJKI LETTER THA
-1121B ; [.2776.0020.0002] # KHOJKI LETTER DA
-1121C ; [.2777.0020.0002] # KHOJKI LETTER DDDA
-1121D ; [.2778.0020.0002] # KHOJKI LETTER DHA
-1121E ; [.2779.0020.0002] # KHOJKI LETTER NA
-1121F ; [.277A.0020.0002] # KHOJKI LETTER PA
-11220 ; [.277B.0020.0002] # KHOJKI LETTER PHA
-11221 ; [.277C.0020.0002] # KHOJKI LETTER BA
-11222 ; [.277D.0020.0002] # KHOJKI LETTER BBA
-11223 ; [.277E.0020.0002] # KHOJKI LETTER BHA
-11224 ; [.277F.0020.0002] # KHOJKI LETTER MA
-11225 ; [.2780.0020.0002] # KHOJKI LETTER YA
-11226 ; [.2781.0020.0002] # KHOJKI LETTER RA
-11227 ; [.2782.0020.0002] # KHOJKI LETTER LA
-11228 ; [.2783.0020.0002] # KHOJKI LETTER VA
-11229 ; [.2784.0020.0002] # KHOJKI LETTER SA
-1122A ; [.2785.0020.0002] # KHOJKI LETTER HA
-1122B ; [.2786.0020.0002] # KHOJKI LETTER LLA
-1122C ; [.2787.0020.0002] # KHOJKI VOWEL SIGN AA
-1122D ; [.2788.0020.0002] # KHOJKI VOWEL SIGN I
-1122E ; [.2789.0020.0002] # KHOJKI VOWEL SIGN II
-1122F ; [.278A.0020.0002] # KHOJKI VOWEL SIGN U
-11230 ; [.278B.0020.0002] # KHOJKI VOWEL SIGN E
-11231 ; [.278C.0020.0002] # KHOJKI VOWEL SIGN AI
-11232 ; [.278D.0020.0002] # KHOJKI VOWEL SIGN O
-11233 ; [.278E.0020.0002] # KHOJKI VOWEL SIGN AU
-11235 ; [.278F.0020.0002] # KHOJKI SIGN VIRAMA
-112B0 ; [.2790.0020.0002] # KHUDAWADI LETTER A
-112B1 ; [.2791.0020.0002] # KHUDAWADI LETTER AA
-112B2 ; [.2792.0020.0002] # KHUDAWADI LETTER I
-112B3 ; [.2793.0020.0002] # KHUDAWADI LETTER II
-112B4 ; [.2794.0020.0002] # KHUDAWADI LETTER U
-112B5 ; [.2795.0020.0002] # KHUDAWADI LETTER UU
-112B6 ; [.2796.0020.0002] # KHUDAWADI LETTER E
-112B7 ; [.2797.0020.0002] # KHUDAWADI LETTER AI
-112B8 ; [.2798.0020.0002] # KHUDAWADI LETTER O
-112B9 ; [.2799.0020.0002] # KHUDAWADI LETTER AU
-112BA ; [.279A.0020.0002] # KHUDAWADI LETTER KA
-112BB ; [.279B.0020.0002] # KHUDAWADI LETTER KHA
-112BC ; [.279C.0020.0002] # KHUDAWADI LETTER GA
-112BD ; [.279D.0020.0002] # KHUDAWADI LETTER GGA
-112BE ; [.279E.0020.0002] # KHUDAWADI LETTER GHA
-112BF ; [.279F.0020.0002] # KHUDAWADI LETTER NGA
-112C0 ; [.27A0.0020.0002] # KHUDAWADI LETTER CA
-112C1 ; [.27A1.0020.0002] # KHUDAWADI LETTER CHA
-112C2 ; [.27A2.0020.0002] # KHUDAWADI LETTER JA
-112C3 ; [.27A3.0020.0002] # KHUDAWADI LETTER JJA
-112C4 ; [.27A4.0020.0002] # KHUDAWADI LETTER JHA
-112C5 ; [.27A5.0020.0002] # KHUDAWADI LETTER NYA
-112C6 ; [.27A6.0020.0002] # KHUDAWADI LETTER TTA
-112C7 ; [.27A7.0020.0002] # KHUDAWADI LETTER TTHA
-112C8 ; [.27A8.0020.0002] # KHUDAWADI LETTER DDA
-112C9 ; [.27A9.0020.0002] # KHUDAWADI LETTER DDDA
-112CA ; [.27AA.0020.0002] # KHUDAWADI LETTER RRA
-112CB ; [.27AB.0020.0002] # KHUDAWADI LETTER DDHA
-112CC ; [.27AC.0020.0002] # KHUDAWADI LETTER NNA
-112CD ; [.27AD.0020.0002] # KHUDAWADI LETTER TA
-112CE ; [.27AE.0020.0002] # KHUDAWADI LETTER THA
-112CF ; [.27AF.0020.0002] # KHUDAWADI LETTER DA
-112D0 ; [.27B0.0020.0002] # KHUDAWADI LETTER DHA
-112D1 ; [.27B1.0020.0002] # KHUDAWADI LETTER NA
-112D2 ; [.27B2.0020.0002] # KHUDAWADI LETTER PA
-112D3 ; [.27B3.0020.0002] # KHUDAWADI LETTER PHA
-112D4 ; [.27B4.0020.0002] # KHUDAWADI LETTER BA
-112D5 ; [.27B5.0020.0002] # KHUDAWADI LETTER BBA
-112D6 ; [.27B6.0020.0002] # KHUDAWADI LETTER BHA
-112D7 ; [.27B7.0020.0002] # KHUDAWADI LETTER MA
-112D8 ; [.27B8.0020.0002] # KHUDAWADI LETTER YA
-112D9 ; [.27B9.0020.0002] # KHUDAWADI LETTER RA
-112DA ; [.27BA.0020.0002] # KHUDAWADI LETTER LA
-112DB ; [.27BB.0020.0002] # KHUDAWADI LETTER VA
-112DC ; [.27BC.0020.0002] # KHUDAWADI LETTER SHA
-112DD ; [.27BD.0020.0002] # KHUDAWADI LETTER SA
-112DE ; [.27BE.0020.0002] # KHUDAWADI LETTER HA
-112E0 ; [.27BF.0020.0002] # KHUDAWADI VOWEL SIGN AA
-112E1 ; [.27C0.0020.0002] # KHUDAWADI VOWEL SIGN I
-112E2 ; [.27C1.0020.0002] # KHUDAWADI VOWEL SIGN II
-112E3 ; [.27C2.0020.0002] # KHUDAWADI VOWEL SIGN U
-112E4 ; [.27C3.0020.0002] # KHUDAWADI VOWEL SIGN UU
-112E5 ; [.27C4.0020.0002] # KHUDAWADI VOWEL SIGN E
-112E6 ; [.27C5.0020.0002] # KHUDAWADI VOWEL SIGN AI
-112E7 ; [.27C6.0020.0002] # KHUDAWADI VOWEL SIGN O
-112E8 ; [.27C7.0020.0002] # KHUDAWADI VOWEL SIGN AU
-112EA ; [.27C8.0020.0002] # KHUDAWADI SIGN VIRAMA
-11305 ; [.27C9.0020.0002] # GRANTHA LETTER A
-11306 ; [.27CA.0020.0002] # GRANTHA LETTER AA
-11307 ; [.27CB.0020.0002] # GRANTHA LETTER I
-11308 ; [.27CC.0020.0002] # GRANTHA LETTER II
-11309 ; [.27CD.0020.0002] # GRANTHA LETTER U
-1130A ; [.27CE.0020.0002] # GRANTHA LETTER UU
-1130B ; [.27CF.0020.0002] # GRANTHA LETTER VOCALIC R
-11360 ; [.27D0.0020.0002] # GRANTHA LETTER VOCALIC RR
-1130C ; [.27D1.0020.0002] # GRANTHA LETTER VOCALIC L
-11361 ; [.27D2.0020.0002] # GRANTHA LETTER VOCALIC LL
-1130F ; [.27D3.0020.0002] # GRANTHA LETTER EE
-11310 ; [.27D4.0020.0002] # GRANTHA LETTER AI
-11313 ; [.27D5.0020.0002] # GRANTHA LETTER OO
-11314 ; [.27D6.0020.0002] # GRANTHA LETTER AU
-11315 ; [.27D7.0020.0002] # GRANTHA LETTER KA
-11316 ; [.27D8.0020.0002] # GRANTHA LETTER KHA
-11317 ; [.27D9.0020.0002] # GRANTHA LETTER GA
-11318 ; [.27DA.0020.0002] # GRANTHA LETTER GHA
-11319 ; [.27DB.0020.0002] # GRANTHA LETTER NGA
-1131A ; [.27DC.0020.0002] # GRANTHA LETTER CA
-1131B ; [.27DD.0020.0002] # GRANTHA LETTER CHA
-1131C ; [.27DE.0020.0002] # GRANTHA LETTER JA
-1131D ; [.27DF.0020.0002] # GRANTHA LETTER JHA
-1131E ; [.27E0.0020.0002] # GRANTHA LETTER NYA
-1131F ; [.27E1.0020.0002] # GRANTHA LETTER TTA
-11320 ; [.27E2.0020.0002] # GRANTHA LETTER TTHA
-11321 ; [.27E3.0020.0002] # GRANTHA LETTER DDA
-11322 ; [.27E4.0020.0002] # GRANTHA LETTER DDHA
-11323 ; [.27E5.0020.0002] # GRANTHA LETTER NNA
-11324 ; [.27E6.0020.0002] # GRANTHA LETTER TA
-11325 ; [.27E7.0020.0002] # GRANTHA LETTER THA
-11326 ; [.27E8.0020.0002] # GRANTHA LETTER DA
-11327 ; [.27E9.0020.0002] # GRANTHA LETTER DHA
-11328 ; [.27EA.0020.0002] # GRANTHA LETTER NA
-1132A ; [.27EB.0020.0002] # GRANTHA LETTER PA
-1132B ; [.27EC.0020.0002] # GRANTHA LETTER PHA
-1132C ; [.27ED.0020.0002] # GRANTHA LETTER BA
-1132D ; [.27EE.0020.0002] # GRANTHA LETTER BHA
-1132E ; [.27EF.0020.0002] # GRANTHA LETTER MA
-1132F ; [.27F0.0020.0002] # GRANTHA LETTER YA
-11330 ; [.27F1.0020.0002] # GRANTHA LETTER RA
-11332 ; [.27F2.0020.0002] # GRANTHA LETTER LA
-11333 ; [.27F3.0020.0002] # GRANTHA LETTER LLA
-11335 ; [.27F4.0020.0002] # GRANTHA LETTER VA
-11336 ; [.27F5.0020.0002] # GRANTHA LETTER SHA
-11337 ; [.27F6.0020.0002] # GRANTHA LETTER SSA
-11338 ; [.27F7.0020.0002] # GRANTHA LETTER SA
-11339 ; [.27F8.0020.0002] # GRANTHA LETTER HA
-1133D ; [.27F9.0020.0002] # GRANTHA SIGN AVAGRAHA
-1135E ; [.27FA.0020.0002] # GRANTHA LETTER VEDIC ANUSVARA
-1135F ; [.27FB.0020.0002] # GRANTHA LETTER VEDIC DOUBLE ANUSVARA
-1133E ; [.27FC.0020.0002] # GRANTHA VOWEL SIGN AA
-1133F ; [.27FD.0020.0002] # GRANTHA VOWEL SIGN I
-11340 ; [.27FE.0020.0002] # GRANTHA VOWEL SIGN II
-11341 ; [.27FF.0020.0002] # GRANTHA VOWEL SIGN U
-11342 ; [.2800.0020.0002] # GRANTHA VOWEL SIGN UU
-11343 ; [.2801.0020.0002] # GRANTHA VOWEL SIGN VOCALIC R
-11344 ; [.2802.0020.0002] # GRANTHA VOWEL SIGN VOCALIC RR
-11362 ; [.2803.0020.0002] # GRANTHA VOWEL SIGN VOCALIC L
-11363 ; [.2804.0020.0002] # GRANTHA VOWEL SIGN VOCALIC LL
-11347 ; [.2805.0020.0002] # GRANTHA VOWEL SIGN EE
-11348 ; [.2806.0020.0002] # GRANTHA VOWEL SIGN AI
-1134B ; [.2807.0020.0002] # GRANTHA VOWEL SIGN OO
-11347 1133E ; [.2807.0020.0002] # GRANTHA VOWEL SIGN OO
-1134C ; [.2808.0020.0002] # GRANTHA VOWEL SIGN AU
-11347 11357 ; [.2808.0020.0002] # GRANTHA VOWEL SIGN AU
-1134D ; [.2809.0020.0002] # GRANTHA SIGN VIRAMA
-11357 ; [.280A.0020.0002] # GRANTHA AU LENGTH MARK
-1135D ; [.280B.0020.0002] # GRANTHA SIGN PLUTA
-114C7 ; [.280C.0020.0002] # TIRHUTA OM
-11480 ; [.280D.0020.0002] # TIRHUTA ANJI
-11481 ; [.280E.0020.0002] # TIRHUTA LETTER A
-11482 ; [.280F.0020.0002] # TIRHUTA LETTER AA
-11483 ; [.2810.0020.0002] # TIRHUTA LETTER I
-11484 ; [.2811.0020.0002] # TIRHUTA LETTER II
-11485 ; [.2812.0020.0002] # TIRHUTA LETTER U
-11486 ; [.2813.0020.0002] # TIRHUTA LETTER UU
-11487 ; [.2814.0020.0002] # TIRHUTA LETTER VOCALIC R
-11488 ; [.2815.0020.0002] # TIRHUTA LETTER VOCALIC RR
-11489 ; [.2816.0020.0002] # TIRHUTA LETTER VOCALIC L
-1148A ; [.2817.0020.0002] # TIRHUTA LETTER VOCALIC LL
-1148B ; [.2818.0020.0002] # TIRHUTA LETTER E
-1148C ; [.2819.0020.0002] # TIRHUTA LETTER AI
-1148D ; [.281A.0020.0002] # TIRHUTA LETTER O
-1148E ; [.281B.0020.0002] # TIRHUTA LETTER AU
-1148F ; [.281C.0020.0002] # TIRHUTA LETTER KA
-11490 ; [.281D.0020.0002] # TIRHUTA LETTER KHA
-11491 ; [.281E.0020.0002] # TIRHUTA LETTER GA
-11492 ; [.281F.0020.0002] # TIRHUTA LETTER GHA
-11493 ; [.2820.0020.0002] # TIRHUTA LETTER NGA
-11494 ; [.2821.0020.0002] # TIRHUTA LETTER CA
-11495 ; [.2822.0020.0002] # TIRHUTA LETTER CHA
-11496 ; [.2823.0020.0002] # TIRHUTA LETTER JA
-11497 ; [.2824.0020.0002] # TIRHUTA LETTER JHA
-11498 ; [.2825.0020.0002] # TIRHUTA LETTER NYA
-11499 ; [.2826.0020.0002] # TIRHUTA LETTER TTA
-1149A ; [.2827.0020.0002] # TIRHUTA LETTER TTHA
-1149B ; [.2828.0020.0002] # TIRHUTA LETTER DDA
-1149C ; [.2829.0020.0002] # TIRHUTA LETTER DDHA
-1149D ; [.282A.0020.0002] # TIRHUTA LETTER NNA
-1149E ; [.282B.0020.0002] # TIRHUTA LETTER TA
-1149F ; [.282C.0020.0002] # TIRHUTA LETTER THA
-114A0 ; [.282D.0020.0002] # TIRHUTA LETTER DA
-114A1 ; [.282E.0020.0002] # TIRHUTA LETTER DHA
-114A2 ; [.282F.0020.0002] # TIRHUTA LETTER NA
-114A3 ; [.2830.0020.0002] # TIRHUTA LETTER PA
-114A4 ; [.2831.0020.0002] # TIRHUTA LETTER PHA
-114A5 ; [.2832.0020.0002] # TIRHUTA LETTER BA
-114A6 ; [.2833.0020.0002] # TIRHUTA LETTER BHA
-114A7 ; [.2834.0020.0002] # TIRHUTA LETTER MA
-114A8 ; [.2835.0020.0002] # TIRHUTA LETTER YA
-114A9 ; [.2836.0020.0002] # TIRHUTA LETTER RA
-114AA ; [.2837.0020.0002] # TIRHUTA LETTER LA
-114AB ; [.2838.0020.0002] # TIRHUTA LETTER VA
-114AC ; [.2839.0020.0002] # TIRHUTA LETTER SHA
-114AD ; [.283A.0020.0002] # TIRHUTA LETTER SSA
-114AE ; [.283B.0020.0002] # TIRHUTA LETTER SA
-114AF ; [.283C.0020.0002] # TIRHUTA LETTER HA
-114C4 ; [.283D.0020.0002] # TIRHUTA SIGN AVAGRAHA
-114C5 ; [.283E.0020.0002] # TIRHUTA GVANG
-114B0 ; [.283F.0020.0002] # TIRHUTA VOWEL SIGN AA
-114B1 ; [.2840.0020.0002] # TIRHUTA VOWEL SIGN I
-114B2 ; [.2841.0020.0002] # TIRHUTA VOWEL SIGN II
-114B3 ; [.2842.0020.0002] # TIRHUTA VOWEL SIGN U
-114B4 ; [.2843.0020.0002] # TIRHUTA VOWEL SIGN UU
-114B5 ; [.2844.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC R
-114B6 ; [.2845.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC RR
-114B7 ; [.2846.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC L
-114B8 ; [.2847.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC LL
-114B9 ; [.2848.0020.0002] # TIRHUTA VOWEL SIGN E
-114BA ; [.2849.0020.0002] # TIRHUTA VOWEL SIGN SHORT E
-114BB ; [.284A.0020.0002] # TIRHUTA VOWEL SIGN AI
-114B9 114BA ; [.284A.0020.0002] # TIRHUTA VOWEL SIGN AI
-114BC ; [.284B.0020.0002] # TIRHUTA VOWEL SIGN O
-114B9 114B0 ; [.284B.0020.0002] # TIRHUTA VOWEL SIGN O
-114BD ; [.284C.0020.0002] # TIRHUTA VOWEL SIGN SHORT O
-114BE ; [.284D.0020.0002] # TIRHUTA VOWEL SIGN AU
-114B9 114BD ; [.284D.0020.0002] # TIRHUTA VOWEL SIGN AU
-114C2 ; [.284E.0020.0002] # TIRHUTA SIGN VIRAMA
-11580 ; [.284F.0020.0002] # SIDDHAM LETTER A
-11581 ; [.2850.0020.0002] # SIDDHAM LETTER AA
-11582 ; [.2851.0020.0002] # SIDDHAM LETTER I
-11583 ; [.2852.0020.0002] # SIDDHAM LETTER II
-11584 ; [.2853.0020.0002] # SIDDHAM LETTER U
-11585 ; [.2854.0020.0002] # SIDDHAM LETTER UU
-11586 ; [.2855.0020.0002] # SIDDHAM LETTER VOCALIC R
-11587 ; [.2856.0020.0002] # SIDDHAM LETTER VOCALIC RR
-11588 ; [.2857.0020.0002] # SIDDHAM LETTER VOCALIC L
-11589 ; [.2858.0020.0002] # SIDDHAM LETTER VOCALIC LL
-1158A ; [.2859.0020.0002] # SIDDHAM LETTER E
-1158B ; [.285A.0020.0002] # SIDDHAM LETTER AI
-1158C ; [.285B.0020.0002] # SIDDHAM LETTER O
-1158D ; [.285C.0020.0002] # SIDDHAM LETTER AU
-1158E ; [.285D.0020.0002] # SIDDHAM LETTER KA
-1158F ; [.285E.0020.0002] # SIDDHAM LETTER KHA
-11590 ; [.285F.0020.0002] # SIDDHAM LETTER GA
-11591 ; [.2860.0020.0002] # SIDDHAM LETTER GHA
-11592 ; [.2861.0020.0002] # SIDDHAM LETTER NGA
-11593 ; [.2862.0020.0002] # SIDDHAM LETTER CA
-11594 ; [.2863.0020.0002] # SIDDHAM LETTER CHA
-11595 ; [.2864.0020.0002] # SIDDHAM LETTER JA
-11596 ; [.2865.0020.0002] # SIDDHAM LETTER JHA
-11597 ; [.2866.0020.0002] # SIDDHAM LETTER NYA
-11598 ; [.2867.0020.0002] # SIDDHAM LETTER TTA
-11599 ; [.2868.0020.0002] # SIDDHAM LETTER TTHA
-1159A ; [.2869.0020.0002] # SIDDHAM LETTER DDA
-1159B ; [.286A.0020.0002] # SIDDHAM LETTER DDHA
-1159C ; [.286B.0020.0002] # SIDDHAM LETTER NNA
-1159D ; [.286C.0020.0002] # SIDDHAM LETTER TA
-1159E ; [.286D.0020.0002] # SIDDHAM LETTER THA
-1159F ; [.286E.0020.0002] # SIDDHAM LETTER DA
-115A0 ; [.286F.0020.0002] # SIDDHAM LETTER DHA
-115A1 ; [.2870.0020.0002] # SIDDHAM LETTER NA
-115A2 ; [.2871.0020.0002] # SIDDHAM LETTER PA
-115A3 ; [.2872.0020.0002] # SIDDHAM LETTER PHA
-115A4 ; [.2873.0020.0002] # SIDDHAM LETTER BA
-115A5 ; [.2874.0020.0002] # SIDDHAM LETTER BHA
-115A6 ; [.2875.0020.0002] # SIDDHAM LETTER MA
-115A7 ; [.2876.0020.0002] # SIDDHAM LETTER YA
-115A8 ; [.2877.0020.0002] # SIDDHAM LETTER RA
-115A9 ; [.2878.0020.0002] # SIDDHAM LETTER LA
-115AA ; [.2879.0020.0002] # SIDDHAM LETTER VA
-115AB ; [.287A.0020.0002] # SIDDHAM LETTER SHA
-115AC ; [.287B.0020.0002] # SIDDHAM LETTER SSA
-115AD ; [.287C.0020.0002] # SIDDHAM LETTER SA
-115AE ; [.287D.0020.0002] # SIDDHAM LETTER HA
-115AF ; [.287E.0020.0002] # SIDDHAM VOWEL SIGN AA
-115B0 ; [.287F.0020.0002] # SIDDHAM VOWEL SIGN I
-115B1 ; [.2880.0020.0002] # SIDDHAM VOWEL SIGN II
-115B2 ; [.2881.0020.0002] # SIDDHAM VOWEL SIGN U
-115B3 ; [.2882.0020.0002] # SIDDHAM VOWEL SIGN UU
-115B4 ; [.2883.0020.0002] # SIDDHAM VOWEL SIGN VOCALIC R
-115B5 ; [.2884.0020.0002] # SIDDHAM VOWEL SIGN VOCALIC RR
-115B8 ; [.2885.0020.0002] # SIDDHAM VOWEL SIGN E
-115B9 ; [.2886.0020.0002] # SIDDHAM VOWEL SIGN AI
-115BA ; [.2887.0020.0002] # SIDDHAM VOWEL SIGN O
-115B8 115AF ; [.2887.0020.0002] # SIDDHAM VOWEL SIGN O
-115BB ; [.2888.0020.0002] # SIDDHAM VOWEL SIGN AU
-115B9 115AF ; [.2888.0020.0002] # SIDDHAM VOWEL SIGN AU
-115BF ; [.2889.0020.0002] # SIDDHAM SIGN VIRAMA
-11600 ; [.288A.0020.0002] # MODI LETTER A
-11601 ; [.288B.0020.0002] # MODI LETTER AA
-11602 ; [.288C.0020.0002] # MODI LETTER I
-11603 ; [.288D.0020.0002] # MODI LETTER II
-11604 ; [.288E.0020.0002] # MODI LETTER U
-11605 ; [.288F.0020.0002] # MODI LETTER UU
-11606 ; [.2890.0020.0002] # MODI LETTER VOCALIC R
-11607 ; [.2891.0020.0002] # MODI LETTER VOCALIC RR
-11608 ; [.2892.0020.0002] # MODI LETTER VOCALIC L
-11609 ; [.2893.0020.0002] # MODI LETTER VOCALIC LL
-1160A ; [.2894.0020.0002] # MODI LETTER E
-1160B ; [.2895.0020.0002] # MODI LETTER AI
-1160C ; [.2896.0020.0002] # MODI LETTER O
-1160D ; [.2897.0020.0002] # MODI LETTER AU
-1160E ; [.2898.0020.0002] # MODI LETTER KA
-1160F ; [.2899.0020.0002] # MODI LETTER KHA
-11610 ; [.289A.0020.0002] # MODI LETTER GA
-11611 ; [.289B.0020.0002] # MODI LETTER GHA
-11612 ; [.289C.0020.0002] # MODI LETTER NGA
-11613 ; [.289D.0020.0002] # MODI LETTER CA
-11614 ; [.289E.0020.0002] # MODI LETTER CHA
-11615 ; [.289F.0020.0002] # MODI LETTER JA
-11616 ; [.28A0.0020.0002] # MODI LETTER JHA
-11617 ; [.28A1.0020.0002] # MODI LETTER NYA
-11618 ; [.28A2.0020.0002] # MODI LETTER TTA
-11619 ; [.28A3.0020.0002] # MODI LETTER TTHA
-1161A ; [.28A4.0020.0002] # MODI LETTER DDA
-1161B ; [.28A5.0020.0002] # MODI LETTER DDHA
-1161C ; [.28A6.0020.0002] # MODI LETTER NNA
-1161D ; [.28A7.0020.0002] # MODI LETTER TA
-1161E ; [.28A8.0020.0002] # MODI LETTER THA
-1161F ; [.28A9.0020.0002] # MODI LETTER DA
-11620 ; [.28AA.0020.0002] # MODI LETTER DHA
-11621 ; [.28AB.0020.0002] # MODI LETTER NA
-11622 ; [.28AC.0020.0002] # MODI LETTER PA
-11623 ; [.28AD.0020.0002] # MODI LETTER PHA
-11624 ; [.28AE.0020.0002] # MODI LETTER BA
-11625 ; [.28AF.0020.0002] # MODI LETTER BHA
-11626 ; [.28B0.0020.0002] # MODI LETTER MA
-11627 ; [.28B1.0020.0002] # MODI LETTER YA
-11628 ; [.28B2.0020.0002] # MODI LETTER RA
-11629 ; [.28B3.0020.0002] # MODI LETTER LA
-1162A ; [.28B4.0020.0002] # MODI LETTER VA
-1162B ; [.28B5.0020.0002] # MODI LETTER SHA
-1162C ; [.28B6.0020.0002] # MODI LETTER SSA
-1162D ; [.28B7.0020.0002] # MODI LETTER SA
-1162E ; [.28B8.0020.0002] # MODI LETTER HA
-1162F ; [.28B9.0020.0002] # MODI LETTER LLA
-11630 ; [.28BA.0020.0002] # MODI VOWEL SIGN AA
-11631 ; [.28BB.0020.0002] # MODI VOWEL SIGN I
-11632 ; [.28BC.0020.0002] # MODI VOWEL SIGN II
-11633 ; [.28BD.0020.0002] # MODI VOWEL SIGN U
-11634 ; [.28BE.0020.0002] # MODI VOWEL SIGN UU
-11635 ; [.28BF.0020.0002] # MODI VOWEL SIGN VOCALIC R
-11636 ; [.28C0.0020.0002] # MODI VOWEL SIGN VOCALIC RR
-11637 ; [.28C1.0020.0002] # MODI VOWEL SIGN VOCALIC L
-11638 ; [.28C2.0020.0002] # MODI VOWEL SIGN VOCALIC LL
-11639 ; [.28C3.0020.0002] # MODI VOWEL SIGN E
-1163A ; [.28C4.0020.0002] # MODI VOWEL SIGN AI
-1163B ; [.28C5.0020.0002] # MODI VOWEL SIGN O
-1163C ; [.28C6.0020.0002] # MODI VOWEL SIGN AU
-1163F ; [.28C7.0020.0002] # MODI SIGN VIRAMA
-11644 ; [.28C8.0020.0002] # MODI SIGN HUVA
-11680 ; [.28C9.0020.0002] # TAKRI LETTER A
-11681 ; [.28CA.0020.0002] # TAKRI LETTER AA
-11682 ; [.28CB.0020.0002] # TAKRI LETTER I
-11683 ; [.28CC.0020.0002] # TAKRI LETTER II
-11684 ; [.28CD.0020.0002] # TAKRI LETTER U
-11685 ; [.28CE.0020.0002] # TAKRI LETTER UU
-11686 ; [.28CF.0020.0002] # TAKRI LETTER E
-11687 ; [.28D0.0020.0002] # TAKRI LETTER AI
-11688 ; [.28D1.0020.0002] # TAKRI LETTER O
-11689 ; [.28D2.0020.0002] # TAKRI LETTER AU
-116A8 ; [.28D3.0020.0002] # TAKRI LETTER SA
-116A7 ; [.28D4.0020.0002] # TAKRI LETTER SHA
-116A9 ; [.28D5.0020.0002] # TAKRI LETTER HA
-1168A ; [.28D6.0020.0002] # TAKRI LETTER KA
-1168B ; [.28D7.0020.0002] # TAKRI LETTER KHA
-1168C ; [.28D8.0020.0002] # TAKRI LETTER GA
-1168D ; [.28D9.0020.0002] # TAKRI LETTER GHA
-1168E ; [.28DA.0020.0002] # TAKRI LETTER NGA
-1168F ; [.28DB.0020.0002] # TAKRI LETTER CA
-11690 ; [.28DC.0020.0002] # TAKRI LETTER CHA
-11691 ; [.28DD.0020.0002] # TAKRI LETTER JA
-11692 ; [.28DE.0020.0002] # TAKRI LETTER JHA
-11693 ; [.28DF.0020.0002] # TAKRI LETTER NYA
-11694 ; [.28E0.0020.0002] # TAKRI LETTER TTA
-11695 ; [.28E1.0020.0002] # TAKRI LETTER TTHA
-11696 ; [.28E2.0020.0002] # TAKRI LETTER DDA
-11697 ; [.28E3.0020.0002] # TAKRI LETTER DDHA
-11698 ; [.28E4.0020.0002] # TAKRI LETTER NNA
-11699 ; [.28E5.0020.0002] # TAKRI LETTER TA
-1169A ; [.28E6.0020.0002] # TAKRI LETTER THA
-1169B ; [.28E7.0020.0002] # TAKRI LETTER DA
-1169C ; [.28E8.0020.0002] # TAKRI LETTER DHA
-1169D ; [.28E9.0020.0002] # TAKRI LETTER NA
-1169E ; [.28EA.0020.0002] # TAKRI LETTER PA
-1169F ; [.28EB.0020.0002] # TAKRI LETTER PHA
-116A0 ; [.28EC.0020.0002] # TAKRI LETTER BA
-116A1 ; [.28ED.0020.0002] # TAKRI LETTER BHA
-116A2 ; [.28EE.0020.0002] # TAKRI LETTER MA
-116A3 ; [.28EF.0020.0002] # TAKRI LETTER YA
-116A4 ; [.28F0.0020.0002] # TAKRI LETTER RA
-116A5 ; [.28F1.0020.0002] # TAKRI LETTER LA
-116A6 ; [.28F2.0020.0002] # TAKRI LETTER VA
-116AA ; [.28F3.0020.0002] # TAKRI LETTER RRA
-116AD ; [.28F4.0020.0002] # TAKRI VOWEL SIGN AA
-116AE ; [.28F5.0020.0002] # TAKRI VOWEL SIGN I
-116AF ; [.28F6.0020.0002] # TAKRI VOWEL SIGN II
-116B0 ; [.28F7.0020.0002] # TAKRI VOWEL SIGN U
-116B1 ; [.28F8.0020.0002] # TAKRI VOWEL SIGN UU
-116B2 ; [.28F9.0020.0002] # TAKRI VOWEL SIGN E
-116B3 ; [.28FA.0020.0002] # TAKRI VOWEL SIGN AI
-116B4 ; [.28FB.0020.0002] # TAKRI VOWEL SIGN O
-116B5 ; [.28FC.0020.0002] # TAKRI VOWEL SIGN AU
-116B6 ; [.28FD.0020.0002] # TAKRI SIGN VIRAMA
-1B83 ; [.28FE.0020.0002] # SUNDANESE LETTER A
-1BBA ; [.28FE.0020.0004] # SUNDANESE AVAGRAHA
-1B84 ; [.28FF.0020.0002] # SUNDANESE LETTER I
-1B85 ; [.2900.0020.0002] # SUNDANESE LETTER U
-1B86 ; [.2901.0020.0002] # SUNDANESE LETTER AE
-1B87 ; [.2902.0020.0002] # SUNDANESE LETTER O
-1B88 ; [.2903.0020.0002] # SUNDANESE LETTER E
-1B89 ; [.2904.0020.0002] # SUNDANESE LETTER EU
-1B8A ; [.2905.0020.0002] # SUNDANESE LETTER KA
-1BBE ; [.2905.0020.0019] # SUNDANESE LETTER FINAL K
-1BAE ; [.2906.0020.0002] # SUNDANESE LETTER KHA
-1B8B ; [.2907.0020.0002] # SUNDANESE LETTER QA
-1B8C ; [.2908.0020.0002] # SUNDANESE LETTER GA
-1B8D ; [.2909.0020.0002] # SUNDANESE LETTER NGA
-1B8E ; [.290A.0020.0002] # SUNDANESE LETTER CA
-1B8F ; [.290B.0020.0002] # SUNDANESE LETTER JA
-1B90 ; [.290C.0020.0002] # SUNDANESE LETTER ZA
-1B91 ; [.290D.0020.0002] # SUNDANESE LETTER NYA
-1B92 ; [.290E.0020.0002] # SUNDANESE LETTER TA
-1B93 ; [.290F.0020.0002] # SUNDANESE LETTER DA
-1B94 ; [.2910.0020.0002] # SUNDANESE LETTER NA
-1B95 ; [.2911.0020.0002] # SUNDANESE LETTER PA
-1B96 ; [.2912.0020.0002] # SUNDANESE LETTER FA
-1B97 ; [.2913.0020.0002] # SUNDANESE LETTER VA
-1B98 ; [.2914.0020.0002] # SUNDANESE LETTER BA
-1BBD ; [.2915.0020.0002] # SUNDANESE LETTER BHA
-1B99 ; [.2916.0020.0002] # SUNDANESE LETTER MA
-1BBF ; [.2916.0020.0019] # SUNDANESE LETTER FINAL M
-1BAC ; [.2917.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN MA
-1B9A ; [.2918.0020.0002] # SUNDANESE LETTER YA
-1BA1 ; [.2919.0020.0002] # SUNDANESE CONSONANT SIGN PAMINGKAL
-1B9B ; [.291A.0020.0002] # SUNDANESE LETTER RA
-1BA2 ; [.291B.0020.0002] # SUNDANESE CONSONANT SIGN PANYAKRA
-1BBB ; [.291C.0020.0002] # SUNDANESE LETTER REU
-1B9C ; [.291D.0020.0002] # SUNDANESE LETTER LA
-1BA3 ; [.291E.0020.0002] # SUNDANESE CONSONANT SIGN PANYIKU
-1BBC ; [.291F.0020.0002] # SUNDANESE LETTER LEU
-1B9D ; [.2920.0020.0002] # SUNDANESE LETTER WA
-1BAD ; [.2921.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN WA
-1B9E ; [.2922.0020.0002] # SUNDANESE LETTER SA
-1B9F ; [.2923.0020.0002] # SUNDANESE LETTER XA
-1BAF ; [.2924.0020.0002] # SUNDANESE LETTER SYA
-1BA0 ; [.2925.0020.0002] # SUNDANESE LETTER HA
-1BA4 ; [.2926.0020.0002] # SUNDANESE VOWEL SIGN PANGHULU
-1BA5 ; [.2927.0020.0002] # SUNDANESE VOWEL SIGN PANYUKU
-1BA6 ; [.2928.0020.0002] # SUNDANESE VOWEL SIGN PANAELAENG
-1BA7 ; [.2929.0020.0002] # SUNDANESE VOWEL SIGN PANOLONG
-1BA8 ; [.292A.0020.0002] # SUNDANESE VOWEL SIGN PAMEPET
-1BA9 ; [.292B.0020.0002] # SUNDANESE VOWEL SIGN PANEULEUNG
-1BAA ; [.292C.0020.0002] # SUNDANESE SIGN PAMAAEH
-1BAB ; [.292D.0020.0002] # SUNDANESE SIGN VIRAMA
-11005 ; [.292E.0020.0002] # BRAHMI LETTER A
-11006 ; [.292F.0020.0002] # BRAHMI LETTER AA
-11007 ; [.2930.0020.0002] # BRAHMI LETTER I
-11008 ; [.2931.0020.0002] # BRAHMI LETTER II
-11009 ; [.2932.0020.0002] # BRAHMI LETTER U
-1100A ; [.2933.0020.0002] # BRAHMI LETTER UU
-1100B ; [.2934.0020.0002] # BRAHMI LETTER VOCALIC R
-1100C ; [.2935.0020.0002] # BRAHMI LETTER VOCALIC RR
-1100D ; [.2936.0020.0002] # BRAHMI LETTER VOCALIC L
-1100E ; [.2937.0020.0002] # BRAHMI LETTER VOCALIC LL
-1100F ; [.2938.0020.0002] # BRAHMI LETTER E
-11010 ; [.2939.0020.0002] # BRAHMI LETTER AI
-11011 ; [.293A.0020.0002] # BRAHMI LETTER O
-11012 ; [.293B.0020.0002] # BRAHMI LETTER AU
-11013 ; [.293C.0020.0002] # BRAHMI LETTER KA
-11014 ; [.293D.0020.0002] # BRAHMI LETTER KHA
-11015 ; [.293E.0020.0002] # BRAHMI LETTER GA
-11016 ; [.293F.0020.0002] # BRAHMI LETTER GHA
-11017 ; [.2940.0020.0002] # BRAHMI LETTER NGA
-11018 ; [.2941.0020.0002] # BRAHMI LETTER CA
-11019 ; [.2942.0020.0002] # BRAHMI LETTER CHA
-1101A ; [.2943.0020.0002] # BRAHMI LETTER JA
-1101B ; [.2944.0020.0002] # BRAHMI LETTER JHA
-1101C ; [.2945.0020.0002] # BRAHMI LETTER NYA
-1101D ; [.2946.0020.0002] # BRAHMI LETTER TTA
-1101E ; [.2947.0020.0002] # BRAHMI LETTER TTHA
-1101F ; [.2948.0020.0002] # BRAHMI LETTER DDA
-11020 ; [.2949.0020.0002] # BRAHMI LETTER DDHA
-11021 ; [.294A.0020.0002] # BRAHMI LETTER NNA
-11022 ; [.294B.0020.0002] # BRAHMI LETTER TA
-11023 ; [.294C.0020.0002] # BRAHMI LETTER THA
-11024 ; [.294D.0020.0002] # BRAHMI LETTER DA
-11025 ; [.294E.0020.0002] # BRAHMI LETTER DHA
-11026 ; [.294F.0020.0002] # BRAHMI LETTER NA
-11027 ; [.2950.0020.0002] # BRAHMI LETTER PA
-11028 ; [.2951.0020.0002] # BRAHMI LETTER PHA
-11029 ; [.2952.0020.0002] # BRAHMI LETTER BA
-1102A ; [.2953.0020.0002] # BRAHMI LETTER BHA
-1102B ; [.2954.0020.0002] # BRAHMI LETTER MA
-1102C ; [.2955.0020.0002] # BRAHMI LETTER YA
-1102D ; [.2956.0020.0002] # BRAHMI LETTER RA
-1102E ; [.2957.0020.0002] # BRAHMI LETTER LA
-1102F ; [.2958.0020.0002] # BRAHMI LETTER VA
-11030 ; [.2959.0020.0002] # BRAHMI LETTER SHA
-11031 ; [.295A.0020.0002] # BRAHMI LETTER SSA
-11032 ; [.295B.0020.0002] # BRAHMI LETTER SA
-11033 ; [.295C.0020.0002] # BRAHMI LETTER HA
-11003 ; [.295D.0020.0002] # BRAHMI SIGN JIHVAMULIYA
-11004 ; [.295E.0020.0002] # BRAHMI SIGN UPADHMANIYA
-11034 ; [.295F.0020.0002] # BRAHMI LETTER LLA
-11035 ; [.2960.0020.0002] # BRAHMI LETTER OLD TAMIL LLLA
-11036 ; [.2961.0020.0002] # BRAHMI LETTER OLD TAMIL RRA
-11037 ; [.2962.0020.0002] # BRAHMI LETTER OLD TAMIL NNNA
-11038 ; [.2963.0020.0002] # BRAHMI VOWEL SIGN AA
-11039 ; [.2964.0020.0002] # BRAHMI VOWEL SIGN BHATTIPROLU AA
-1103A ; [.2965.0020.0002] # BRAHMI VOWEL SIGN I
-1103B ; [.2966.0020.0002] # BRAHMI VOWEL SIGN II
-1103C ; [.2967.0020.0002] # BRAHMI VOWEL SIGN U
-1103D ; [.2968.0020.0002] # BRAHMI VOWEL SIGN UU
-1103E ; [.2969.0020.0002] # BRAHMI VOWEL SIGN VOCALIC R
-1103F ; [.296A.0020.0002] # BRAHMI VOWEL SIGN VOCALIC RR
-11040 ; [.296B.0020.0002] # BRAHMI VOWEL SIGN VOCALIC L
-11041 ; [.296C.0020.0002] # BRAHMI VOWEL SIGN VOCALIC LL
-11042 ; [.296D.0020.0002] # BRAHMI VOWEL SIGN E
-11043 ; [.296E.0020.0002] # BRAHMI VOWEL SIGN AI
-11044 ; [.296F.0020.0002] # BRAHMI VOWEL SIGN O
-11045 ; [.2970.0020.0002] # BRAHMI VOWEL SIGN AU
-11046 ; [.2971.0020.0002] # BRAHMI VIRAMA
-1107F ; [.2972.0020.0002] # BRAHMI NUMBER JOINER
-10A00 ; [.2973.0020.0002] # KHAROSHTHI LETTER A
-10A01 ; [.2974.0020.0002] # KHAROSHTHI VOWEL SIGN I
-10A02 ; [.2975.0020.0002] # KHAROSHTHI VOWEL SIGN U
-10A03 ; [.2976.0020.0002] # KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05 ; [.2977.0020.0002] # KHAROSHTHI VOWEL SIGN E
-10A06 ; [.2978.0020.0002] # KHAROSHTHI VOWEL SIGN O
-10A0C ; [.2979.0020.0002] # KHAROSHTHI VOWEL LENGTH MARK
-10A10 ; [.297A.0020.0002] # KHAROSHTHI LETTER KA
-10A11 ; [.297B.0020.0002] # KHAROSHTHI LETTER KHA
-10A12 ; [.297C.0020.0002] # KHAROSHTHI LETTER GA
-10A13 ; [.297D.0020.0002] # KHAROSHTHI LETTER GHA
-10A15 ; [.297E.0020.0002] # KHAROSHTHI LETTER CA
-10A16 ; [.297F.0020.0002] # KHAROSHTHI LETTER CHA
-10A17 ; [.2980.0020.0002] # KHAROSHTHI LETTER JA
-10A19 ; [.2981.0020.0002] # KHAROSHTHI LETTER NYA
-10A1A ; [.2982.0020.0002] # KHAROSHTHI LETTER TTA
-10A1B ; [.2983.0020.0002] # KHAROSHTHI LETTER TTHA
-10A1C ; [.2984.0020.0002] # KHAROSHTHI LETTER DDA
-10A1D ; [.2985.0020.0002] # KHAROSHTHI LETTER DDHA
-10A1E ; [.2986.0020.0002] # KHAROSHTHI LETTER NNA
-10A1F ; [.2987.0020.0002] # KHAROSHTHI LETTER TA
-10A20 ; [.2988.0020.0002] # KHAROSHTHI LETTER THA
-10A21 ; [.2989.0020.0002] # KHAROSHTHI LETTER DA
-10A22 ; [.298A.0020.0002] # KHAROSHTHI LETTER DHA
-10A23 ; [.298B.0020.0002] # KHAROSHTHI LETTER NA
-10A24 ; [.298C.0020.0002] # KHAROSHTHI LETTER PA
-10A25 ; [.298D.0020.0002] # KHAROSHTHI LETTER PHA
-10A26 ; [.298E.0020.0002] # KHAROSHTHI LETTER BA
-10A27 ; [.298F.0020.0002] # KHAROSHTHI LETTER BHA
-10A28 ; [.2990.0020.0002] # KHAROSHTHI LETTER MA
-10A29 ; [.2991.0020.0002] # KHAROSHTHI LETTER YA
-10A2A ; [.2992.0020.0002] # KHAROSHTHI LETTER RA
-10A2B ; [.2993.0020.0002] # KHAROSHTHI LETTER LA
-10A2C ; [.2994.0020.0002] # KHAROSHTHI LETTER VA
-10A2D ; [.2995.0020.0002] # KHAROSHTHI LETTER SHA
-10A2E ; [.2996.0020.0002] # KHAROSHTHI LETTER SSA
-10A2F ; [.2997.0020.0002] # KHAROSHTHI LETTER SA
-10A30 ; [.2998.0020.0002] # KHAROSHTHI LETTER ZA
-10A31 ; [.2999.0020.0002] # KHAROSHTHI LETTER HA
-10A32 ; [.299A.0020.0002] # KHAROSHTHI LETTER KKA
-10A33 ; [.299B.0020.0002] # KHAROSHTHI LETTER TTTHA
-10A3F ; [.299C.0020.0002] # KHAROSHTHI VIRAMA
-0E01 ; [.299D.0020.0002] # THAI CHARACTER KO KAI
-0E40 0E01 ; [.299D.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KO KAI>
-0E41 0E01 ; [.299D.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KO KAI>
-0E42 0E01 ; [.299D.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KO KAI>
-0E43 0E01 ; [.299D.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KO KAI>
-0E44 0E01 ; [.299D.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KO KAI>
-0E02 ; [.299E.0020.0002] # THAI CHARACTER KHO KHAI
-0E40 0E02 ; [.299E.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHAI>
-0E41 0E02 ; [.299E.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHAI>
-0E42 0E02 ; [.299E.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHAI>
-0E43 0E02 ; [.299E.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHAI>
-0E44 0E02 ; [.299E.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHAI>
-0E03 ; [.299F.0020.0002] # THAI CHARACTER KHO KHUAT
-0E40 0E03 ; [.299F.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHUAT>
-0E41 0E03 ; [.299F.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHUAT>
-0E42 0E03 ; [.299F.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHUAT>
-0E43 0E03 ; [.299F.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHUAT>
-0E44 0E03 ; [.299F.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHUAT>
-0E04 ; [.29A0.0020.0002] # THAI CHARACTER KHO KHWAI
-0E40 0E04 ; [.29A0.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHWAI>
-0E41 0E04 ; [.29A0.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHWAI>
-0E42 0E04 ; [.29A0.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHWAI>
-0E43 0E04 ; [.29A0.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHWAI>
-0E44 0E04 ; [.29A0.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHWAI>
-0E05 ; [.29A1.0020.0002] # THAI CHARACTER KHO KHON
-0E40 0E05 ; [.29A1.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHON>
-0E41 0E05 ; [.29A1.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHON>
-0E42 0E05 ; [.29A1.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHON>
-0E43 0E05 ; [.29A1.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHON>
-0E44 0E05 ; [.29A1.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHON>
-0E06 ; [.29A2.0020.0002] # THAI CHARACTER KHO RAKHANG
-0E40 0E06 ; [.29A2.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO RAKHANG>
-0E41 0E06 ; [.29A2.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO RAKHANG>
-0E42 0E06 ; [.29A2.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO RAKHANG>
-0E43 0E06 ; [.29A2.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO RAKHANG>
-0E44 0E06 ; [.29A2.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO RAKHANG>
-0E07 ; [.29A3.0020.0002] # THAI CHARACTER NGO NGU
-0E40 0E07 ; [.29A3.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NGO NGU>
-0E41 0E07 ; [.29A3.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NGO NGU>
-0E42 0E07 ; [.29A3.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NGO NGU>
-0E43 0E07 ; [.29A3.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NGO NGU>
-0E44 0E07 ; [.29A3.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NGO NGU>
-0E08 ; [.29A4.0020.0002] # THAI CHARACTER CHO CHAN
-0E40 0E08 ; [.29A4.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHAN>
-0E41 0E08 ; [.29A4.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHAN>
-0E42 0E08 ; [.29A4.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHAN>
-0E43 0E08 ; [.29A4.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHAN>
-0E44 0E08 ; [.29A4.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHAN>
-0E09 ; [.29A5.0020.0002] # THAI CHARACTER CHO CHING
-0E40 0E09 ; [.29A5.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHING>
-0E41 0E09 ; [.29A5.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHING>
-0E42 0E09 ; [.29A5.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHING>
-0E43 0E09 ; [.29A5.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHING>
-0E44 0E09 ; [.29A5.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHING>
-0E0A ; [.29A6.0020.0002] # THAI CHARACTER CHO CHANG
-0E40 0E0A ; [.29A6.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHANG>
-0E41 0E0A ; [.29A6.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHANG>
-0E42 0E0A ; [.29A6.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHANG>
-0E43 0E0A ; [.29A6.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHANG>
-0E44 0E0A ; [.29A6.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHANG>
-0E0B ; [.29A7.0020.0002] # THAI CHARACTER SO SO
-0E40 0E0B ; [.29A7.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SO>
-0E41 0E0B ; [.29A7.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SO>
-0E42 0E0B ; [.29A7.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SO>
-0E43 0E0B ; [.29A7.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SO>
-0E44 0E0B ; [.29A7.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SO>
-0E0C ; [.29A8.0020.0002] # THAI CHARACTER CHO CHOE
-0E40 0E0C ; [.29A8.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHOE>
-0E41 0E0C ; [.29A8.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHOE>
-0E42 0E0C ; [.29A8.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHOE>
-0E43 0E0C ; [.29A8.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHOE>
-0E44 0E0C ; [.29A8.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHOE>
-0E0D ; [.29A9.0020.0002] # THAI CHARACTER YO YING
-0E40 0E0D ; [.29A9.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YING>
-0E41 0E0D ; [.29A9.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YING>
-0E42 0E0D ; [.29A9.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YING>
-0E43 0E0D ; [.29A9.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YING>
-0E44 0E0D ; [.29A9.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YING>
-0E0E ; [.29AA.0020.0002] # THAI CHARACTER DO CHADA
-0E40 0E0E ; [.29AA.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO CHADA>
-0E41 0E0E ; [.29AA.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO CHADA>
-0E42 0E0E ; [.29AA.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO CHADA>
-0E43 0E0E ; [.29AA.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO CHADA>
-0E44 0E0E ; [.29AA.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO CHADA>
-0E0F ; [.29AB.0020.0002] # THAI CHARACTER TO PATAK
-0E40 0E0F ; [.29AB.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO PATAK>
-0E41 0E0F ; [.29AB.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO PATAK>
-0E42 0E0F ; [.29AB.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO PATAK>
-0E43 0E0F ; [.29AB.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO PATAK>
-0E44 0E0F ; [.29AB.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO PATAK>
-0E10 ; [.29AC.0020.0002] # THAI CHARACTER THO THAN
-0E40 0E10 ; [.29AC.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAN>
-0E41 0E10 ; [.29AC.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAN>
-0E42 0E10 ; [.29AC.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAN>
-0E43 0E10 ; [.29AC.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAN>
-0E44 0E10 ; [.29AC.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAN>
-0E11 ; [.29AD.0020.0002] # THAI CHARACTER THO NANGMONTHO
-0E40 0E11 ; [.29AD.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO NANGMONTHO>
-0E41 0E11 ; [.29AD.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO NANGMONTHO>
-0E42 0E11 ; [.29AD.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO NANGMONTHO>
-0E43 0E11 ; [.29AD.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO NANGMONTHO>
-0E44 0E11 ; [.29AD.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO NANGMONTHO>
-0E12 ; [.29AE.0020.0002] # THAI CHARACTER THO PHUTHAO
-0E40 0E12 ; [.29AE.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO PHUTHAO>
-0E41 0E12 ; [.29AE.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO PHUTHAO>
-0E42 0E12 ; [.29AE.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO PHUTHAO>
-0E43 0E12 ; [.29AE.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO PHUTHAO>
-0E44 0E12 ; [.29AE.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO PHUTHAO>
-0E13 ; [.29AF.0020.0002] # THAI CHARACTER NO NEN
-0E40 0E13 ; [.29AF.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NEN>
-0E41 0E13 ; [.29AF.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NEN>
-0E42 0E13 ; [.29AF.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NEN>
-0E43 0E13 ; [.29AF.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NEN>
-0E44 0E13 ; [.29AF.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NEN>
-0E14 ; [.29B0.0020.0002] # THAI CHARACTER DO DEK
-0E40 0E14 ; [.29B0.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO DEK>
-0E41 0E14 ; [.29B0.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO DEK>
-0E42 0E14 ; [.29B0.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO DEK>
-0E43 0E14 ; [.29B0.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO DEK>
-0E44 0E14 ; [.29B0.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO DEK>
-0E15 ; [.29B1.0020.0002] # THAI CHARACTER TO TAO
-0E40 0E15 ; [.29B1.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO TAO>
-0E41 0E15 ; [.29B1.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO TAO>
-0E42 0E15 ; [.29B1.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO TAO>
-0E43 0E15 ; [.29B1.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO TAO>
-0E44 0E15 ; [.29B1.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO TAO>
-0E16 ; [.29B2.0020.0002] # THAI CHARACTER THO THUNG
-0E40 0E16 ; [.29B2.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THUNG>
-0E41 0E16 ; [.29B2.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THUNG>
-0E42 0E16 ; [.29B2.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THUNG>
-0E43 0E16 ; [.29B2.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THUNG>
-0E44 0E16 ; [.29B2.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THUNG>
-0E17 ; [.29B3.0020.0002] # THAI CHARACTER THO THAHAN
-0E40 0E17 ; [.29B3.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAHAN>
-0E41 0E17 ; [.29B3.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAHAN>
-0E42 0E17 ; [.29B3.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAHAN>
-0E43 0E17 ; [.29B3.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAHAN>
-0E44 0E17 ; [.29B3.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAHAN>
-0E18 ; [.29B4.0020.0002] # THAI CHARACTER THO THONG
-0E40 0E18 ; [.29B4.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THONG>
-0E41 0E18 ; [.29B4.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THONG>
-0E42 0E18 ; [.29B4.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THONG>
-0E43 0E18 ; [.29B4.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THONG>
-0E44 0E18 ; [.29B4.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THONG>
-0E19 ; [.29B5.0020.0002] # THAI CHARACTER NO NU
-0E40 0E19 ; [.29B5.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NU>
-0E41 0E19 ; [.29B5.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NU>
-0E42 0E19 ; [.29B5.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NU>
-0E43 0E19 ; [.29B5.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NU>
-0E44 0E19 ; [.29B5.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NU>
-0E1A ; [.29B6.0020.0002] # THAI CHARACTER BO BAIMAI
-0E40 0E1A ; [.29B6.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER BO BAIMAI>
-0E41 0E1A ; [.29B6.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER BO BAIMAI>
-0E42 0E1A ; [.29B6.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER BO BAIMAI>
-0E43 0E1A ; [.29B6.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER BO BAIMAI>
-0E44 0E1A ; [.29B6.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER BO BAIMAI>
-0E1B ; [.29B7.0020.0002] # THAI CHARACTER PO PLA
-0E40 0E1B ; [.29B7.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PO PLA>
-0E41 0E1B ; [.29B7.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PO PLA>
-0E42 0E1B ; [.29B7.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PO PLA>
-0E43 0E1B ; [.29B7.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PO PLA>
-0E44 0E1B ; [.29B7.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PO PLA>
-0E1C ; [.29B8.0020.0002] # THAI CHARACTER PHO PHUNG
-0E40 0E1C ; [.29B8.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHUNG>
-0E41 0E1C ; [.29B8.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHUNG>
-0E42 0E1C ; [.29B8.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHUNG>
-0E43 0E1C ; [.29B8.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHUNG>
-0E44 0E1C ; [.29B8.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHUNG>
-0E1D ; [.29B9.0020.0002] # THAI CHARACTER FO FA
-0E40 0E1D ; [.29B9.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FA>
-0E41 0E1D ; [.29B9.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FA>
-0E42 0E1D ; [.29B9.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FA>
-0E43 0E1D ; [.29B9.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FA>
-0E44 0E1D ; [.29B9.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FA>
-0E1E ; [.29BA.0020.0002] # THAI CHARACTER PHO PHAN
-0E40 0E1E ; [.29BA.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHAN>
-0E41 0E1E ; [.29BA.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHAN>
-0E42 0E1E ; [.29BA.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHAN>
-0E43 0E1E ; [.29BA.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHAN>
-0E44 0E1E ; [.29BA.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHAN>
-0E1F ; [.29BB.0020.0002] # THAI CHARACTER FO FAN
-0E40 0E1F ; [.29BB.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FAN>
-0E41 0E1F ; [.29BB.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FAN>
-0E42 0E1F ; [.29BB.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FAN>
-0E43 0E1F ; [.29BB.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FAN>
-0E44 0E1F ; [.29BB.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FAN>
-0E20 ; [.29BC.0020.0002] # THAI CHARACTER PHO SAMPHAO
-0E40 0E20 ; [.29BC.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO SAMPHAO>
-0E41 0E20 ; [.29BC.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO SAMPHAO>
-0E42 0E20 ; [.29BC.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO SAMPHAO>
-0E43 0E20 ; [.29BC.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO SAMPHAO>
-0E44 0E20 ; [.29BC.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO SAMPHAO>
-0E21 ; [.29BD.0020.0002] # THAI CHARACTER MO MA
-0E40 0E21 ; [.29BD.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER MO MA>
-0E41 0E21 ; [.29BD.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER MO MA>
-0E42 0E21 ; [.29BD.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER MO MA>
-0E43 0E21 ; [.29BD.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER MO MA>
-0E44 0E21 ; [.29BD.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER MO MA>
-0E22 ; [.29BE.0020.0002] # THAI CHARACTER YO YAK
-0E40 0E22 ; [.29BE.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YAK>
-0E41 0E22 ; [.29BE.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YAK>
-0E42 0E22 ; [.29BE.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YAK>
-0E43 0E22 ; [.29BE.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YAK>
-0E44 0E22 ; [.29BE.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YAK>
-0E23 ; [.29BF.0020.0002] # THAI CHARACTER RO RUA
-0E40 0E23 ; [.29BF.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RO RUA>
-0E41 0E23 ; [.29BF.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RO RUA>
-0E42 0E23 ; [.29BF.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RO RUA>
-0E43 0E23 ; [.29BF.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RO RUA>
-0E44 0E23 ; [.29BF.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RO RUA>
-0E24 ; [.29C0.0020.0002] # THAI CHARACTER RU
-0E40 0E24 ; [.29C0.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RU>
-0E41 0E24 ; [.29C0.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RU>
-0E42 0E24 ; [.29C0.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RU>
-0E43 0E24 ; [.29C0.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RU>
-0E44 0E24 ; [.29C0.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RU>
-0E25 ; [.29C1.0020.0002] # THAI CHARACTER LO LING
-0E40 0E25 ; [.29C1.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO LING>
-0E41 0E25 ; [.29C1.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO LING>
-0E42 0E25 ; [.29C1.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO LING>
-0E43 0E25 ; [.29C1.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO LING>
-0E44 0E25 ; [.29C1.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO LING>
-0E26 ; [.29C2.0020.0002] # THAI CHARACTER LU
-0E40 0E26 ; [.29C2.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LU>
-0E41 0E26 ; [.29C2.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LU>
-0E42 0E26 ; [.29C2.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LU>
-0E43 0E26 ; [.29C2.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LU>
-0E44 0E26 ; [.29C2.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LU>
-0E27 ; [.29C3.0020.0002] # THAI CHARACTER WO WAEN
-0E40 0E27 ; [.29C3.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER WO WAEN>
-0E41 0E27 ; [.29C3.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER WO WAEN>
-0E42 0E27 ; [.29C3.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER WO WAEN>
-0E43 0E27 ; [.29C3.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER WO WAEN>
-0E44 0E27 ; [.29C3.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER WO WAEN>
-0E28 ; [.29C4.0020.0002] # THAI CHARACTER SO SALA
-0E40 0E28 ; [.29C4.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SALA>
-0E41 0E28 ; [.29C4.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SALA>
-0E42 0E28 ; [.29C4.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SALA>
-0E43 0E28 ; [.29C4.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SALA>
-0E44 0E28 ; [.29C4.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SALA>
-0E29 ; [.29C5.0020.0002] # THAI CHARACTER SO RUSI
-0E40 0E29 ; [.29C5.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO RUSI>
-0E41 0E29 ; [.29C5.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO RUSI>
-0E42 0E29 ; [.29C5.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO RUSI>
-0E43 0E29 ; [.29C5.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO RUSI>
-0E44 0E29 ; [.29C5.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO RUSI>
-0E2A ; [.29C6.0020.0002] # THAI CHARACTER SO SUA
-0E40 0E2A ; [.29C6.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SUA>
-0E41 0E2A ; [.29C6.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SUA>
-0E42 0E2A ; [.29C6.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SUA>
-0E43 0E2A ; [.29C6.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SUA>
-0E44 0E2A ; [.29C6.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SUA>
-0E2B ; [.29C7.0020.0002] # THAI CHARACTER HO HIP
-0E40 0E2B ; [.29C7.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO HIP>
-0E41 0E2B ; [.29C7.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO HIP>
-0E42 0E2B ; [.29C7.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO HIP>
-0E43 0E2B ; [.29C7.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO HIP>
-0E44 0E2B ; [.29C7.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO HIP>
-0E2C ; [.29C8.0020.0002] # THAI CHARACTER LO CHULA
-0E40 0E2C ; [.29C8.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO CHULA>
-0E41 0E2C ; [.29C8.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO CHULA>
-0E42 0E2C ; [.29C8.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO CHULA>
-0E43 0E2C ; [.29C8.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO CHULA>
-0E44 0E2C ; [.29C8.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO CHULA>
-0E2D ; [.29C9.0020.0002] # THAI CHARACTER O ANG
-0E40 0E2D ; [.29C9.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER O ANG>
-0E41 0E2D ; [.29C9.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER O ANG>
-0E42 0E2D ; [.29C9.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER O ANG>
-0E43 0E2D ; [.29C9.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER O ANG>
-0E44 0E2D ; [.29C9.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER O ANG>
-0E2E ; [.29CA.0020.0002] # THAI CHARACTER HO NOKHUK
-0E40 0E2E ; [.29CA.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO NOKHUK>
-0E41 0E2E ; [.29CA.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO NOKHUK>
-0E42 0E2E ; [.29CA.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO NOKHUK>
-0E43 0E2E ; [.29CA.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO NOKHUK>
-0E44 0E2E ; [.29CA.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO NOKHUK>
-0E2F ; [.29CB.0020.0002] # THAI CHARACTER PAIYANNOI
-0E30 ; [.29CC.0020.0002] # THAI CHARACTER SARA A
-0E31 ; [.29CD.0020.0002] # THAI CHARACTER MAI HAN-AKAT
-0E32 ; [.29CE.0020.0002] # THAI CHARACTER SARA AA
-0E33 ; [.29CF.0020.0002] # THAI CHARACTER SARA AM
-0E4D 0E32 ; [.29CF.0020.0002] # THAI CHARACTER SARA AM
-0E34 ; [.29D0.0020.0002] # THAI CHARACTER SARA I
-0E35 ; [.29D1.0020.0002] # THAI CHARACTER SARA II
-0E36 ; [.29D2.0020.0002] # THAI CHARACTER SARA UE
-0E37 ; [.29D3.0020.0002] # THAI CHARACTER SARA UEE
-0E38 ; [.29D4.0020.0002] # THAI CHARACTER SARA U
-0E39 ; [.29D5.0020.0002] # THAI CHARACTER SARA UU
-0E3A ; [.29D6.0020.0002] # THAI CHARACTER PHINTHU
-0E40 ; [.29D7.0020.0002] # THAI CHARACTER SARA E
-0E41 ; [.29D8.0020.0002] # THAI CHARACTER SARA AE
-0E42 ; [.29D9.0020.0002] # THAI CHARACTER SARA O
-0E43 ; [.29DA.0020.0002] # THAI CHARACTER SARA AI MAIMUAN
-0E44 ; [.29DB.0020.0002] # THAI CHARACTER SARA AI MAIMALAI
-0E45 ; [.29DC.0020.0002] # THAI CHARACTER LAKKHANGYAO
-0EDE ; [.29DD.0020.0002] # LAO LETTER KHMU GO
-0EC0 0EDE ; [.29DD.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU GO>
-0EC1 0EDE ; [.29DD.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU GO>
-0EC2 0EDE ; [.29DD.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU GO>
-0EC3 0EDE ; [.29DD.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU GO>
-0EC4 0EDE ; [.29DD.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU GO>
-0E81 ; [.29DE.0020.0002] # LAO LETTER KO
-0EC0 0E81 ; [.29DE.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KO>
-0EC1 0E81 ; [.29DE.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KO>
-0EC2 0E81 ; [.29DE.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KO>
-0EC3 0E81 ; [.29DE.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KO>
-0EC4 0E81 ; [.29DE.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KO>
-0E82 ; [.29DF.0020.0002] # LAO LETTER KHO SUNG
-0EC0 0E82 ; [.29DF.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO SUNG>
-0EC1 0E82 ; [.29DF.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO SUNG>
-0EC2 0E82 ; [.29DF.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO SUNG>
-0EC3 0E82 ; [.29DF.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO SUNG>
-0EC4 0E82 ; [.29DF.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO SUNG>
-0E84 ; [.29E0.0020.0002] # LAO LETTER KHO TAM
-0EC0 0E84 ; [.29E0.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO TAM>
-0EC1 0E84 ; [.29E0.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO TAM>
-0EC2 0E84 ; [.29E0.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO TAM>
-0EC3 0E84 ; [.29E0.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO TAM>
-0EC4 0E84 ; [.29E0.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO TAM>
-0E87 ; [.29E1.0020.0002] # LAO LETTER NGO
-0EC0 0E87 ; [.29E1.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NGO>
-0EC1 0E87 ; [.29E1.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NGO>
-0EC2 0E87 ; [.29E1.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NGO>
-0EC3 0E87 ; [.29E1.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NGO>
-0EC4 0E87 ; [.29E1.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NGO>
-0E88 ; [.29E2.0020.0002] # LAO LETTER CO
-0EC0 0E88 ; [.29E2.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER CO>
-0EC1 0E88 ; [.29E2.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER CO>
-0EC2 0E88 ; [.29E2.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER CO>
-0EC3 0E88 ; [.29E2.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER CO>
-0EC4 0E88 ; [.29E2.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER CO>
-0EAA ; [.29E3.0020.0002] # LAO LETTER SO SUNG
-0EC0 0EAA ; [.29E3.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO SUNG>
-0EC1 0EAA ; [.29E3.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO SUNG>
-0EC2 0EAA ; [.29E3.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO SUNG>
-0EC3 0EAA ; [.29E3.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO SUNG>
-0EC4 0EAA ; [.29E3.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO SUNG>
-0E8A ; [.29E4.0020.0002] # LAO LETTER SO TAM
-0EC0 0E8A ; [.29E4.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO TAM>
-0EC1 0E8A ; [.29E4.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO TAM>
-0EC2 0E8A ; [.29E4.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO TAM>
-0EC3 0E8A ; [.29E4.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO TAM>
-0EC4 0E8A ; [.29E4.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO TAM>
-0EDF ; [.29E5.0020.0002] # LAO LETTER KHMU NYO
-0EC0 0EDF ; [.29E5.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU NYO>
-0EC1 0EDF ; [.29E5.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU NYO>
-0EC2 0EDF ; [.29E5.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU NYO>
-0EC3 0EDF ; [.29E5.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU NYO>
-0EC4 0EDF ; [.29E5.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU NYO>
-0E8D ; [.29E6.0020.0002] # LAO LETTER NYO
-0EC0 0E8D ; [.29E6.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NYO>
-0EC1 0E8D ; [.29E6.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NYO>
-0EC2 0E8D ; [.29E6.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NYO>
-0EC3 0E8D ; [.29E6.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NYO>
-0EC4 0E8D ; [.29E6.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NYO>
-0E94 ; [.29E7.0020.0002] # LAO LETTER DO
-0EC0 0E94 ; [.29E7.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER DO>
-0EC1 0E94 ; [.29E7.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER DO>
-0EC2 0E94 ; [.29E7.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER DO>
-0EC3 0E94 ; [.29E7.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER DO>
-0EC4 0E94 ; [.29E7.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER DO>
-0E95 ; [.29E8.0020.0002] # LAO LETTER TO
-0EC0 0E95 ; [.29E8.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER TO>
-0EC1 0E95 ; [.29E8.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER TO>
-0EC2 0E95 ; [.29E8.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER TO>
-0EC3 0E95 ; [.29E8.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER TO>
-0EC4 0E95 ; [.29E8.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER TO>
-0E96 ; [.29E9.0020.0002] # LAO LETTER THO SUNG
-0EC0 0E96 ; [.29E9.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO SUNG>
-0EC1 0E96 ; [.29E9.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO SUNG>
-0EC2 0E96 ; [.29E9.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO SUNG>
-0EC3 0E96 ; [.29E9.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO SUNG>
-0EC4 0E96 ; [.29E9.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO SUNG>
-0E97 ; [.29EA.0020.0002] # LAO LETTER THO TAM
-0EC0 0E97 ; [.29EA.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO TAM>
-0EC1 0E97 ; [.29EA.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO TAM>
-0EC2 0E97 ; [.29EA.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO TAM>
-0EC3 0E97 ; [.29EA.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO TAM>
-0EC4 0E97 ; [.29EA.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO TAM>
-0E99 ; [.29EB.0020.0002] # LAO LETTER NO
-0EC0 0E99 ; [.29EB.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NO>
-0EC1 0E99 ; [.29EB.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NO>
-0EC2 0E99 ; [.29EB.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NO>
-0EC3 0E99 ; [.29EB.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NO>
-0EC4 0E99 ; [.29EB.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NO>
-0E9A ; [.29EC.0020.0002] # LAO LETTER BO
-0EC0 0E9A ; [.29EC.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER BO>
-0EC1 0E9A ; [.29EC.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER BO>
-0EC2 0E9A ; [.29EC.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER BO>
-0EC3 0E9A ; [.29EC.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER BO>
-0EC4 0E9A ; [.29EC.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER BO>
-0E9B ; [.29ED.0020.0002] # LAO LETTER PO
-0EC0 0E9B ; [.29ED.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PO>
-0EC1 0E9B ; [.29ED.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PO>
-0EC2 0E9B ; [.29ED.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PO>
-0EC3 0E9B ; [.29ED.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PO>
-0EC4 0E9B ; [.29ED.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PO>
-0E9C ; [.29EE.0020.0002] # LAO LETTER PHO SUNG
-0EC0 0E9C ; [.29EE.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO SUNG>
-0EC1 0E9C ; [.29EE.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO SUNG>
-0EC2 0E9C ; [.29EE.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO SUNG>
-0EC3 0E9C ; [.29EE.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO SUNG>
-0EC4 0E9C ; [.29EE.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO SUNG>
-0E9D ; [.29EF.0020.0002] # LAO LETTER FO TAM
-0EC0 0E9D ; [.29EF.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO TAM>
-0EC1 0E9D ; [.29EF.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO TAM>
-0EC2 0E9D ; [.29EF.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO TAM>
-0EC3 0E9D ; [.29EF.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO TAM>
-0EC4 0E9D ; [.29EF.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO TAM>
-0E9E ; [.29F0.0020.0002] # LAO LETTER PHO TAM
-0EC0 0E9E ; [.29F0.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO TAM>
-0EC1 0E9E ; [.29F0.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO TAM>
-0EC2 0E9E ; [.29F0.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO TAM>
-0EC3 0E9E ; [.29F0.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO TAM>
-0EC4 0E9E ; [.29F0.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO TAM>
-0E9F ; [.29F1.0020.0002] # LAO LETTER FO SUNG
-0EC0 0E9F ; [.29F1.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO SUNG>
-0EC1 0E9F ; [.29F1.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO SUNG>
-0EC2 0E9F ; [.29F1.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO SUNG>
-0EC3 0E9F ; [.29F1.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO SUNG>
-0EC4 0E9F ; [.29F1.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO SUNG>
-0EA1 ; [.29F2.0020.0002] # LAO LETTER MO
-0EC0 0EA1 ; [.29F2.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER MO>
-0EC1 0EA1 ; [.29F2.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER MO>
-0EC2 0EA1 ; [.29F2.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER MO>
-0EC3 0EA1 ; [.29F2.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER MO>
-0EC4 0EA1 ; [.29F2.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER MO>
-0EA2 ; [.29F3.0020.0002] # LAO LETTER YO
-0EC0 0EA2 ; [.29F3.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER YO>
-0EC1 0EA2 ; [.29F3.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER YO>
-0EC2 0EA2 ; [.29F3.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER YO>
-0EC3 0EA2 ; [.29F3.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER YO>
-0EC4 0EA2 ; [.29F3.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER YO>
-0EA3 ; [.29F4.0020.0002] # LAO LETTER LO LING
-0EC0 0EA3 ; [.29F4.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LING>
-0EC1 0EA3 ; [.29F4.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LING>
-0EC2 0EA3 ; [.29F4.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LING>
-0EC3 0EA3 ; [.29F4.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LING>
-0EC4 0EA3 ; [.29F4.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LING>
-0EA5 ; [.29F5.0020.0002] # LAO LETTER LO LOOT
-0EC0 0EA5 ; [.29F5.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LOOT>
-0EC1 0EA5 ; [.29F5.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LOOT>
-0EC2 0EA5 ; [.29F5.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LOOT>
-0EC3 0EA5 ; [.29F5.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LOOT>
-0EC4 0EA5 ; [.29F5.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LOOT>
-0EA7 ; [.29F6.0020.0002] # LAO LETTER WO
-0EC0 0EA7 ; [.29F6.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER WO>
-0EC1 0EA7 ; [.29F6.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER WO>
-0EC2 0EA7 ; [.29F6.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER WO>
-0EC3 0EA7 ; [.29F6.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER WO>
-0EC4 0EA7 ; [.29F6.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER WO>
-0EAB ; [.29F7.0020.0002] # LAO LETTER HO SUNG
-0EDC ; [.29F7.0020.0004][.29EB.0020.0004] # LAO HO NO
-0EC0 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO HO NO>
-0EC1 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO HO NO>
-0EC2 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO HO NO>
-0EC3 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO HO NO>
-0EC4 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO HO NO>
-0EDD ; [.29F7.0020.0004][.29F2.0020.0004] # LAO HO MO
-0EC0 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO HO MO>
-0EC1 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO HO MO>
-0EC2 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO HO MO>
-0EC3 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO HO MO>
-0EC4 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO HO MO>
-0EC0 0EAB ; [.29F7.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO SUNG>
-0EC1 0EAB ; [.29F7.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO SUNG>
-0EC2 0EAB ; [.29F7.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO SUNG>
-0EC3 0EAB ; [.29F7.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO SUNG>
-0EC4 0EAB ; [.29F7.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO SUNG>
-0EAD ; [.29F8.0020.0002] # LAO LETTER O
-0EC0 0EAD ; [.29F8.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER O>
-0EC1 0EAD ; [.29F8.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER O>
-0EC2 0EAD ; [.29F8.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER O>
-0EC3 0EAD ; [.29F8.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER O>
-0EC4 0EAD ; [.29F8.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER O>
-0EAE ; [.29F9.0020.0002] # LAO LETTER HO TAM
-0EC0 0EAE ; [.29F9.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO TAM>
-0EC1 0EAE ; [.29F9.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO TAM>
-0EC2 0EAE ; [.29F9.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO TAM>
-0EC3 0EAE ; [.29F9.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO TAM>
-0EC4 0EAE ; [.29F9.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO TAM>
-0EAF ; [.29FA.0020.0002] # LAO ELLIPSIS
-0EB0 ; [.29FB.0020.0002] # LAO VOWEL SIGN A
-0EB1 ; [.29FC.0020.0002] # LAO VOWEL SIGN MAI KAN
-0EB2 ; [.29FD.0020.0002] # LAO VOWEL SIGN AA
-0EB3 ; [.29FE.0020.0002] # LAO VOWEL SIGN AM
-0ECD 0EB2 ; [.29FE.0020.0002] # LAO VOWEL SIGN AM
-0EB4 ; [.29FF.0020.0002] # LAO VOWEL SIGN I
-0EB5 ; [.2A00.0020.0002] # LAO VOWEL SIGN II
-0EB6 ; [.2A01.0020.0002] # LAO VOWEL SIGN Y
-0EB7 ; [.2A02.0020.0002] # LAO VOWEL SIGN YY
-0EB8 ; [.2A03.0020.0002] # LAO VOWEL SIGN U
-0EB9 ; [.2A04.0020.0002] # LAO VOWEL SIGN UU
-0EBB ; [.2A05.0020.0002] # LAO VOWEL SIGN MAI KON
-0EBC ; [.2A06.0020.0002] # LAO SEMIVOWEL SIGN LO
-0EBD ; [.2A07.0020.0002] # LAO SEMIVOWEL SIGN NYO
-0EC0 ; [.2A08.0020.0002] # LAO VOWEL SIGN E
-0EC1 ; [.2A09.0020.0002] # LAO VOWEL SIGN EI
-0EC2 ; [.2A0A.0020.0002] # LAO VOWEL SIGN O
-0EC3 ; [.2A0B.0020.0002] # LAO VOWEL SIGN AY
-0EC4 ; [.2A0C.0020.0002] # LAO VOWEL SIGN AI
-AA80 ; [.2A0D.0020.0002] # TAI VIET LETTER LOW KO
-AAB5 AA80 ; [.2A0D.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KO>
-AAB6 AA80 ; [.2A0D.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KO>
-AAB9 AA80 ; [.2A0D.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KO>
-AABB AA80 ; [.2A0D.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KO>
-AABC AA80 ; [.2A0D.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KO>
-AA81 ; [.2A0E.0020.0002] # TAI VIET LETTER HIGH KO
-AAB5 AA81 ; [.2A0E.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KO>
-AAB6 AA81 ; [.2A0E.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KO>
-AAB9 AA81 ; [.2A0E.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KO>
-AABB AA81 ; [.2A0E.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KO>
-AABC AA81 ; [.2A0E.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KO>
-AA82 ; [.2A0F.0020.0002] # TAI VIET LETTER LOW KHO
-AAB5 AA82 ; [.2A0F.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHO>
-AAB6 AA82 ; [.2A0F.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHO>
-AAB9 AA82 ; [.2A0F.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHO>
-AABB AA82 ; [.2A0F.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHO>
-AABC AA82 ; [.2A0F.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHO>
-AA83 ; [.2A10.0020.0002] # TAI VIET LETTER HIGH KHO
-AAB5 AA83 ; [.2A10.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHO>
-AAB6 AA83 ; [.2A10.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHO>
-AAB9 AA83 ; [.2A10.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHO>
-AABB AA83 ; [.2A10.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHO>
-AABC AA83 ; [.2A10.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHO>
-AA84 ; [.2A11.0020.0002] # TAI VIET LETTER LOW KHHO
-AAB5 AA84 ; [.2A11.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHHO>
-AAB6 AA84 ; [.2A11.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHHO>
-AAB9 AA84 ; [.2A11.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHHO>
-AABB AA84 ; [.2A11.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHHO>
-AABC AA84 ; [.2A11.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHHO>
-AA85 ; [.2A12.0020.0002] # TAI VIET LETTER HIGH KHHO
-AAB5 AA85 ; [.2A12.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHHO>
-AAB6 AA85 ; [.2A12.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHHO>
-AAB9 AA85 ; [.2A12.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHHO>
-AABB AA85 ; [.2A12.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHHO>
-AABC AA85 ; [.2A12.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHHO>
-AA86 ; [.2A13.0020.0002] # TAI VIET LETTER LOW GO
-AAB5 AA86 ; [.2A13.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW GO>
-AAB6 AA86 ; [.2A13.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW GO>
-AAB9 AA86 ; [.2A13.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW GO>
-AABB AA86 ; [.2A13.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW GO>
-AABC AA86 ; [.2A13.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW GO>
-AA87 ; [.2A14.0020.0002] # TAI VIET LETTER HIGH GO
-AAB5 AA87 ; [.2A14.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH GO>
-AAB6 AA87 ; [.2A14.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH GO>
-AAB9 AA87 ; [.2A14.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH GO>
-AABB AA87 ; [.2A14.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH GO>
-AABC AA87 ; [.2A14.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH GO>
-AA88 ; [.2A15.0020.0002] # TAI VIET LETTER LOW NGO
-AAB5 AA88 ; [.2A15.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NGO>
-AAB6 AA88 ; [.2A15.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NGO>
-AAB9 AA88 ; [.2A15.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NGO>
-AABB AA88 ; [.2A15.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NGO>
-AABC AA88 ; [.2A15.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NGO>
-AA89 ; [.2A16.0020.0002] # TAI VIET LETTER HIGH NGO
-AAB5 AA89 ; [.2A16.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NGO>
-AAB6 AA89 ; [.2A16.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NGO>
-AAB9 AA89 ; [.2A16.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NGO>
-AABB AA89 ; [.2A16.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NGO>
-AABC AA89 ; [.2A16.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NGO>
-AA8A ; [.2A17.0020.0002] # TAI VIET LETTER LOW CO
-AAB5 AA8A ; [.2A17.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CO>
-AAB6 AA8A ; [.2A17.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CO>
-AAB9 AA8A ; [.2A17.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CO>
-AABB AA8A ; [.2A17.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CO>
-AABC AA8A ; [.2A17.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CO>
-AA8B ; [.2A18.0020.0002] # TAI VIET LETTER HIGH CO
-AAB5 AA8B ; [.2A18.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CO>
-AAB6 AA8B ; [.2A18.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CO>
-AAB9 AA8B ; [.2A18.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CO>
-AABB AA8B ; [.2A18.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CO>
-AABC AA8B ; [.2A18.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CO>
-AA8C ; [.2A19.0020.0002] # TAI VIET LETTER LOW CHO
-AAB5 AA8C ; [.2A19.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CHO>
-AAB6 AA8C ; [.2A19.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CHO>
-AAB9 AA8C ; [.2A19.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CHO>
-AABB AA8C ; [.2A19.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CHO>
-AABC AA8C ; [.2A19.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CHO>
-AA8D ; [.2A1A.0020.0002] # TAI VIET LETTER HIGH CHO
-AAB5 AA8D ; [.2A1A.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CHO>
-AAB6 AA8D ; [.2A1A.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CHO>
-AAB9 AA8D ; [.2A1A.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CHO>
-AABB AA8D ; [.2A1A.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CHO>
-AABC AA8D ; [.2A1A.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CHO>
-AA8E ; [.2A1B.0020.0002] # TAI VIET LETTER LOW SO
-AAB5 AA8E ; [.2A1B.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW SO>
-AAB6 AA8E ; [.2A1B.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW SO>
-AAB9 AA8E ; [.2A1B.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW SO>
-AABB AA8E ; [.2A1B.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW SO>
-AABC AA8E ; [.2A1B.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW SO>
-AA8F ; [.2A1C.0020.0002] # TAI VIET LETTER HIGH SO
-AAB5 AA8F ; [.2A1C.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH SO>
-AAB6 AA8F ; [.2A1C.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH SO>
-AAB9 AA8F ; [.2A1C.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH SO>
-AABB AA8F ; [.2A1C.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH SO>
-AABC AA8F ; [.2A1C.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH SO>
-AA90 ; [.2A1D.0020.0002] # TAI VIET LETTER LOW NYO
-AAB5 AA90 ; [.2A1D.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NYO>
-AAB6 AA90 ; [.2A1D.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NYO>
-AAB9 AA90 ; [.2A1D.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NYO>
-AABB AA90 ; [.2A1D.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NYO>
-AABC AA90 ; [.2A1D.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NYO>
-AA91 ; [.2A1E.0020.0002] # TAI VIET LETTER HIGH NYO
-AAB5 AA91 ; [.2A1E.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NYO>
-AAB6 AA91 ; [.2A1E.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NYO>
-AAB9 AA91 ; [.2A1E.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NYO>
-AABB AA91 ; [.2A1E.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NYO>
-AABC AA91 ; [.2A1E.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NYO>
-AA92 ; [.2A1F.0020.0002] # TAI VIET LETTER LOW DO
-AAB5 AA92 ; [.2A1F.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW DO>
-AAB6 AA92 ; [.2A1F.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW DO>
-AAB9 AA92 ; [.2A1F.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW DO>
-AABB AA92 ; [.2A1F.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW DO>
-AABC AA92 ; [.2A1F.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW DO>
-AA93 ; [.2A20.0020.0002] # TAI VIET LETTER HIGH DO
-AAB5 AA93 ; [.2A20.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH DO>
-AAB6 AA93 ; [.2A20.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH DO>
-AAB9 AA93 ; [.2A20.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH DO>
-AABB AA93 ; [.2A20.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH DO>
-AABC AA93 ; [.2A20.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH DO>
-AA94 ; [.2A21.0020.0002] # TAI VIET LETTER LOW TO
-AAB5 AA94 ; [.2A21.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW TO>
-AAB6 AA94 ; [.2A21.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW TO>
-AAB9 AA94 ; [.2A21.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW TO>
-AABB AA94 ; [.2A21.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW TO>
-AABC AA94 ; [.2A21.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW TO>
-AA95 ; [.2A22.0020.0002] # TAI VIET LETTER HIGH TO
-AAB5 AA95 ; [.2A22.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH TO>
-AAB6 AA95 ; [.2A22.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH TO>
-AAB9 AA95 ; [.2A22.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH TO>
-AABB AA95 ; [.2A22.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH TO>
-AABC AA95 ; [.2A22.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH TO>
-AA96 ; [.2A23.0020.0002] # TAI VIET LETTER LOW THO
-AAB5 AA96 ; [.2A23.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW THO>
-AAB6 AA96 ; [.2A23.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW THO>
-AAB9 AA96 ; [.2A23.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW THO>
-AABB AA96 ; [.2A23.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW THO>
-AABC AA96 ; [.2A23.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW THO>
-AA97 ; [.2A24.0020.0002] # TAI VIET LETTER HIGH THO
-AAB5 AA97 ; [.2A24.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH THO>
-AAB6 AA97 ; [.2A24.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH THO>
-AAB9 AA97 ; [.2A24.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH THO>
-AABB AA97 ; [.2A24.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH THO>
-AABC AA97 ; [.2A24.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH THO>
-AA98 ; [.2A25.0020.0002] # TAI VIET LETTER LOW NO
-AAB5 AA98 ; [.2A25.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NO>
-AAB6 AA98 ; [.2A25.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NO>
-AAB9 AA98 ; [.2A25.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NO>
-AABB AA98 ; [.2A25.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NO>
-AABC AA98 ; [.2A25.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NO>
-AA99 ; [.2A26.0020.0002] # TAI VIET LETTER HIGH NO
-AAB5 AA99 ; [.2A26.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NO>
-AAB6 AA99 ; [.2A26.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NO>
-AAB9 AA99 ; [.2A26.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NO>
-AABB AA99 ; [.2A26.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NO>
-AABC AA99 ; [.2A26.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NO>
-AA9A ; [.2A27.0020.0002] # TAI VIET LETTER LOW BO
-AAB5 AA9A ; [.2A27.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW BO>
-AAB6 AA9A ; [.2A27.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW BO>
-AAB9 AA9A ; [.2A27.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW BO>
-AABB AA9A ; [.2A27.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW BO>
-AABC AA9A ; [.2A27.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW BO>
-AA9B ; [.2A28.0020.0002] # TAI VIET LETTER HIGH BO
-AAB5 AA9B ; [.2A28.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH BO>
-AAB6 AA9B ; [.2A28.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH BO>
-AAB9 AA9B ; [.2A28.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH BO>
-AABB AA9B ; [.2A28.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH BO>
-AABC AA9B ; [.2A28.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH BO>
-AA9C ; [.2A29.0020.0002] # TAI VIET LETTER LOW PO
-AAB5 AA9C ; [.2A29.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PO>
-AAB6 AA9C ; [.2A29.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PO>
-AAB9 AA9C ; [.2A29.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PO>
-AABB AA9C ; [.2A29.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PO>
-AABC AA9C ; [.2A29.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PO>
-AA9D ; [.2A2A.0020.0002] # TAI VIET LETTER HIGH PO
-AAB5 AA9D ; [.2A2A.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PO>
-AAB6 AA9D ; [.2A2A.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PO>
-AAB9 AA9D ; [.2A2A.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PO>
-AABB AA9D ; [.2A2A.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PO>
-AABC AA9D ; [.2A2A.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PO>
-AA9E ; [.2A2B.0020.0002] # TAI VIET LETTER LOW PHO
-AAB5 AA9E ; [.2A2B.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PHO>
-AAB6 AA9E ; [.2A2B.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PHO>
-AAB9 AA9E ; [.2A2B.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PHO>
-AABB AA9E ; [.2A2B.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PHO>
-AABC AA9E ; [.2A2B.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PHO>
-AA9F ; [.2A2C.0020.0002] # TAI VIET LETTER HIGH PHO
-AAB5 AA9F ; [.2A2C.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PHO>
-AAB6 AA9F ; [.2A2C.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PHO>
-AAB9 AA9F ; [.2A2C.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PHO>
-AABB AA9F ; [.2A2C.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PHO>
-AABC AA9F ; [.2A2C.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PHO>
-AAA0 ; [.2A2D.0020.0002] # TAI VIET LETTER LOW FO
-AAB5 AAA0 ; [.2A2D.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW FO>
-AAB6 AAA0 ; [.2A2D.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW FO>
-AAB9 AAA0 ; [.2A2D.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW FO>
-AABB AAA0 ; [.2A2D.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW FO>
-AABC AAA0 ; [.2A2D.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW FO>
-AAA1 ; [.2A2E.0020.0002] # TAI VIET LETTER HIGH FO
-AAB5 AAA1 ; [.2A2E.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH FO>
-AAB6 AAA1 ; [.2A2E.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH FO>
-AAB9 AAA1 ; [.2A2E.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH FO>
-AABB AAA1 ; [.2A2E.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH FO>
-AABC AAA1 ; [.2A2E.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH FO>
-AAA2 ; [.2A2F.0020.0002] # TAI VIET LETTER LOW MO
-AAB5 AAA2 ; [.2A2F.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW MO>
-AAB6 AAA2 ; [.2A2F.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW MO>
-AAB9 AAA2 ; [.2A2F.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW MO>
-AABB AAA2 ; [.2A2F.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW MO>
-AABC AAA2 ; [.2A2F.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW MO>
-AAA3 ; [.2A30.0020.0002] # TAI VIET LETTER HIGH MO
-AAB5 AAA3 ; [.2A30.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH MO>
-AAB6 AAA3 ; [.2A30.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH MO>
-AAB9 AAA3 ; [.2A30.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH MO>
-AABB AAA3 ; [.2A30.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH MO>
-AABC AAA3 ; [.2A30.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH MO>
-AAA4 ; [.2A31.0020.0002] # TAI VIET LETTER LOW YO
-AAB5 AAA4 ; [.2A31.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW YO>
-AAB6 AAA4 ; [.2A31.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW YO>
-AAB9 AAA4 ; [.2A31.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW YO>
-AABB AAA4 ; [.2A31.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW YO>
-AABC AAA4 ; [.2A31.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW YO>
-AAA5 ; [.2A32.0020.0002] # TAI VIET LETTER HIGH YO
-AAB5 AAA5 ; [.2A32.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH YO>
-AAB6 AAA5 ; [.2A32.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH YO>
-AAB9 AAA5 ; [.2A32.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH YO>
-AABB AAA5 ; [.2A32.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH YO>
-AABC AAA5 ; [.2A32.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH YO>
-AAA6 ; [.2A33.0020.0002] # TAI VIET LETTER LOW RO
-AAB5 AAA6 ; [.2A33.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW RO>
-AAB6 AAA6 ; [.2A33.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW RO>
-AAB9 AAA6 ; [.2A33.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW RO>
-AABB AAA6 ; [.2A33.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW RO>
-AABC AAA6 ; [.2A33.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW RO>
-AAA7 ; [.2A34.0020.0002] # TAI VIET LETTER HIGH RO
-AAB5 AAA7 ; [.2A34.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH RO>
-AAB6 AAA7 ; [.2A34.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH RO>
-AAB9 AAA7 ; [.2A34.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH RO>
-AABB AAA7 ; [.2A34.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH RO>
-AABC AAA7 ; [.2A34.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH RO>
-AAA8 ; [.2A35.0020.0002] # TAI VIET LETTER LOW LO
-AAB5 AAA8 ; [.2A35.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW LO>
-AAB6 AAA8 ; [.2A35.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW LO>
-AAB9 AAA8 ; [.2A35.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW LO>
-AABB AAA8 ; [.2A35.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW LO>
-AABC AAA8 ; [.2A35.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW LO>
-AAA9 ; [.2A36.0020.0002] # TAI VIET LETTER HIGH LO
-AAB5 AAA9 ; [.2A36.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH LO>
-AAB6 AAA9 ; [.2A36.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH LO>
-AAB9 AAA9 ; [.2A36.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH LO>
-AABB AAA9 ; [.2A36.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH LO>
-AABC AAA9 ; [.2A36.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH LO>
-AAAA ; [.2A37.0020.0002] # TAI VIET LETTER LOW VO
-AAB5 AAAA ; [.2A37.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW VO>
-AAB6 AAAA ; [.2A37.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW VO>
-AAB9 AAAA ; [.2A37.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW VO>
-AABB AAAA ; [.2A37.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW VO>
-AABC AAAA ; [.2A37.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW VO>
-AAAB ; [.2A38.0020.0002] # TAI VIET LETTER HIGH VO
-AAB5 AAAB ; [.2A38.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH VO>
-AAB6 AAAB ; [.2A38.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH VO>
-AAB9 AAAB ; [.2A38.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH VO>
-AABB AAAB ; [.2A38.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH VO>
-AABC AAAB ; [.2A38.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH VO>
-AAAC ; [.2A39.0020.0002] # TAI VIET LETTER LOW HO
-AAB5 AAAC ; [.2A39.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW HO>
-AAB6 AAAC ; [.2A39.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW HO>
-AAB9 AAAC ; [.2A39.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW HO>
-AABB AAAC ; [.2A39.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW HO>
-AABC AAAC ; [.2A39.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW HO>
-AAAD ; [.2A3A.0020.0002] # TAI VIET LETTER HIGH HO
-AAB5 AAAD ; [.2A3A.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH HO>
-AAB6 AAAD ; [.2A3A.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH HO>
-AAB9 AAAD ; [.2A3A.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH HO>
-AABB AAAD ; [.2A3A.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH HO>
-AABC AAAD ; [.2A3A.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH HO>
-AAAE ; [.2A3B.0020.0002] # TAI VIET LETTER LOW O
-AAB5 AAAE ; [.2A3B.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW O>
-AAB6 AAAE ; [.2A3B.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW O>
-AAB9 AAAE ; [.2A3B.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW O>
-AABB AAAE ; [.2A3B.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW O>
-AABC AAAE ; [.2A3B.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW O>
-AAAF ; [.2A3C.0020.0002] # TAI VIET LETTER HIGH O
-AAB5 AAAF ; [.2A3C.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH O>
-AAB6 AAAF ; [.2A3C.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH O>
-AAB9 AAAF ; [.2A3C.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH O>
-AABB AAAF ; [.2A3C.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH O>
-AABC AAAF ; [.2A3C.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH O>
-AAB0 ; [.2A3D.0020.0002] # TAI VIET MAI KANG
-AAB1 ; [.2A3E.0020.0002] # TAI VIET VOWEL AA
-AAB2 ; [.2A3F.0020.0002] # TAI VIET VOWEL I
-AAB3 ; [.2A40.0020.0002] # TAI VIET VOWEL UE
-AAB4 ; [.2A41.0020.0002] # TAI VIET VOWEL U
-AAB5 ; [.2A42.0020.0002] # TAI VIET VOWEL E
-AAB6 ; [.2A43.0020.0002] # TAI VIET VOWEL O
-AAB7 ; [.2A44.0020.0002] # TAI VIET MAI KHIT
-AAB8 ; [.2A45.0020.0002] # TAI VIET VOWEL IA
-AAB9 ; [.2A46.0020.0002] # TAI VIET VOWEL UEA
-AABA ; [.2A47.0020.0002] # TAI VIET VOWEL UA
-AABB ; [.2A48.0020.0002] # TAI VIET VOWEL AUE
-AABC ; [.2A49.0020.0002] # TAI VIET VOWEL AY
-AABD ; [.2A4A.0020.0002] # TAI VIET VOWEL AN
-AABE ; [.2A4B.0020.0002] # TAI VIET VOWEL AM
-AAC0 ; [.2A4C.0020.0002] # TAI VIET TONE MAI NUENG
-AAC2 ; [.2A4D.0020.0002] # TAI VIET TONE MAI SONG
-AADB ; [.2A4E.0020.0002] # TAI VIET SYMBOL KON
-AADC ; [.2A4F.0020.0002] # TAI VIET SYMBOL NUENG
-0F40 ; [.2A50.0020.0002] # TIBETAN LETTER KA
-0F69 ; [.2A50.0020.0002][.2A91.0020.0002] # TIBETAN LETTER KSSA
-0F90 ; [.2A51.0020.0002] # TIBETAN SUBJOINED LETTER KA
-0FB9 ; [.2A51.0020.0002][.2A91.0020.0002] # TIBETAN SUBJOINED LETTER KSSA
-0F6B ; [.2A52.0020.0002] # TIBETAN LETTER KKA
-0F41 ; [.2A53.0020.0002] # TIBETAN LETTER KHA
-0F91 ; [.2A54.0020.0002] # TIBETAN SUBJOINED LETTER KHA
-0F42 ; [.2A55.0020.0002] # TIBETAN LETTER GA
-0F43 ; [.2A55.0020.0002][.2A95.0020.0002] # TIBETAN LETTER GHA
-0F92 ; [.2A56.0020.0002] # TIBETAN SUBJOINED LETTER GA
-0F93 ; [.2A56.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER GHA
-0F44 ; [.2A57.0020.0002] # TIBETAN LETTER NGA
-0F94 ; [.2A58.0020.0002] # TIBETAN SUBJOINED LETTER NGA
-0F45 ; [.2A59.0020.0002] # TIBETAN LETTER CA
-0F95 ; [.2A5A.0020.0002] # TIBETAN SUBJOINED LETTER CA
-0F46 ; [.2A5B.0020.0002] # TIBETAN LETTER CHA
-0F96 ; [.2A5C.0020.0002] # TIBETAN SUBJOINED LETTER CHA
-0F47 ; [.2A5D.0020.0002] # TIBETAN LETTER JA
-0F97 ; [.2A5E.0020.0002] # TIBETAN SUBJOINED LETTER JA
-0F49 ; [.2A5F.0020.0002] # TIBETAN LETTER NYA
-0F99 ; [.2A60.0020.0002] # TIBETAN SUBJOINED LETTER NYA
-0F4A ; [.2A61.0020.0002] # TIBETAN LETTER TTA
-0F9A ; [.2A62.0020.0002] # TIBETAN SUBJOINED LETTER TTA
-0F4B ; [.2A63.0020.0002] # TIBETAN LETTER TTHA
-0F9B ; [.2A64.0020.0002] # TIBETAN SUBJOINED LETTER TTHA
-0F4C ; [.2A65.0020.0002] # TIBETAN LETTER DDA
-0F4D ; [.2A65.0020.0002][.2A95.0020.0002] # TIBETAN LETTER DDHA
-0F9C ; [.2A66.0020.0002] # TIBETAN SUBJOINED LETTER DDA
-0F9D ; [.2A66.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER DDHA
-0F4E ; [.2A67.0020.0002] # TIBETAN LETTER NNA
-0F9E ; [.2A68.0020.0002] # TIBETAN SUBJOINED LETTER NNA
-0F4F ; [.2A69.0020.0002] # TIBETAN LETTER TA
-0F9F ; [.2A6A.0020.0002] # TIBETAN SUBJOINED LETTER TA
-0F50 ; [.2A6B.0020.0002] # TIBETAN LETTER THA
-0FA0 ; [.2A6C.0020.0002] # TIBETAN SUBJOINED LETTER THA
-0F51 ; [.2A6D.0020.0002] # TIBETAN LETTER DA
-0F52 ; [.2A6D.0020.0002][.2A95.0020.0002] # TIBETAN LETTER DHA
-0FA1 ; [.2A6E.0020.0002] # TIBETAN SUBJOINED LETTER DA
-0FA2 ; [.2A6E.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER DHA
-0F53 ; [.2A6F.0020.0002] # TIBETAN LETTER NA
-0FA3 ; [.2A70.0020.0002] # TIBETAN SUBJOINED LETTER NA
-0F54 ; [.2A71.0020.0002] # TIBETAN LETTER PA
-0FA4 ; [.2A72.0020.0002] # TIBETAN SUBJOINED LETTER PA
-0F55 ; [.2A73.0020.0002] # TIBETAN LETTER PHA
-0FA5 ; [.2A74.0020.0002] # TIBETAN SUBJOINED LETTER PHA
-0F56 ; [.2A75.0020.0002] # TIBETAN LETTER BA
-0F57 ; [.2A75.0020.0002][.2A95.0020.0002] # TIBETAN LETTER BHA
-0FA6 ; [.2A76.0020.0002] # TIBETAN SUBJOINED LETTER BA
-0FA7 ; [.2A76.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER BHA
-0F58 ; [.2A77.0020.0002] # TIBETAN LETTER MA
-0FA8 ; [.2A78.0020.0002] # TIBETAN SUBJOINED LETTER MA
-0F59 ; [.2A79.0020.0002] # TIBETAN LETTER TSA
-0FA9 ; [.2A7A.0020.0002] # TIBETAN SUBJOINED LETTER TSA
-0F5A ; [.2A7B.0020.0002] # TIBETAN LETTER TSHA
-0FAA ; [.2A7C.0020.0002] # TIBETAN SUBJOINED LETTER TSHA
-0F5B ; [.2A7D.0020.0002] # TIBETAN LETTER DZA
-0F5C ; [.2A7D.0020.0002][.2A95.0020.0002] # TIBETAN LETTER DZHA
-0FAB ; [.2A7E.0020.0002] # TIBETAN SUBJOINED LETTER DZA
-0FAC ; [.2A7E.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER DZHA
-0F5D ; [.2A7F.0020.0002] # TIBETAN LETTER WA
-0FAD ; [.2A80.0020.0002] # TIBETAN SUBJOINED LETTER WA
-0FBA ; [.2A80.0020.0004][.0000.0109.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM WA
-0F5E ; [.2A81.0020.0002] # TIBETAN LETTER ZHA
-0FAE ; [.2A82.0020.0002] # TIBETAN SUBJOINED LETTER ZHA
-0F5F ; [.2A83.0020.0002] # TIBETAN LETTER ZA
-0FAF ; [.2A84.0020.0002] # TIBETAN SUBJOINED LETTER ZA
-0F60 ; [.2A85.0020.0002] # TIBETAN LETTER -A
-0FB0 ; [.2A86.0020.0002] # TIBETAN SUBJOINED LETTER -A
-0F61 ; [.2A87.0020.0002] # TIBETAN LETTER YA
-0FB1 ; [.2A88.0020.0002] # TIBETAN SUBJOINED LETTER YA
-0FBB ; [.2A88.0020.0004][.0000.0109.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM YA
-0F62 ; [.2A89.0020.0002] # TIBETAN LETTER RA
-0F6A ; [.2A89.0020.0004][.0000.0109.0004] # TIBETAN LETTER FIXED-FORM RA
-0FB2 ; [.2A8A.0020.0002] # TIBETAN SUBJOINED LETTER RA
-0FBC ; [.2A8A.0020.0004][.0000.0109.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0F6C ; [.2A8B.0020.0002] # TIBETAN LETTER RRA
-0F63 ; [.2A8C.0020.0002] # TIBETAN LETTER LA
-0FB3 ; [.2A8D.0020.0002] # TIBETAN SUBJOINED LETTER LA
-0F64 ; [.2A8E.0020.0002] # TIBETAN LETTER SHA
-0FB4 ; [.2A8F.0020.0002] # TIBETAN SUBJOINED LETTER SHA
-0F65 ; [.2A90.0020.0002] # TIBETAN LETTER SSA
-0FB5 ; [.2A91.0020.0002] # TIBETAN SUBJOINED LETTER SSA
-0F66 ; [.2A92.0020.0002] # TIBETAN LETTER SA
-0FB6 ; [.2A93.0020.0002] # TIBETAN SUBJOINED LETTER SA
-0F67 ; [.2A94.0020.0002] # TIBETAN LETTER HA
-0FB7 ; [.2A95.0020.0002] # TIBETAN SUBJOINED LETTER HA
-0F68 ; [.2A96.0020.0002] # TIBETAN LETTER A
-0F00 ; [.2A96.0020.0004][.2AAD.0020.0004][.0000.00BE.0004] # TIBETAN SYLLABLE OM
-0FB8 ; [.2A97.0020.0002] # TIBETAN SUBJOINED LETTER A
-0F88 ; [.2A98.0020.0002] # TIBETAN SIGN LCE TSA CAN
-0F8D ; [.2A99.0020.0002] # TIBETAN SUBJOINED SIGN LCE TSA CAN
-0F89 ; [.2A9A.0020.0002] # TIBETAN SIGN MCHU CAN
-0F8E ; [.2A9B.0020.0002] # TIBETAN SUBJOINED SIGN MCHU CAN
-0F8C ; [.2A9C.0020.0002] # TIBETAN SIGN INVERTED MCHU CAN
-0F8F ; [.2A9D.0020.0002] # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
-0F8A ; [.2A9E.0020.0002] # TIBETAN SIGN GRU CAN RGYINGS
-0F8B ; [.2A9F.0020.0002] # TIBETAN SIGN GRU MED RGYINGS
-0F71 ; [.2AA0.0020.0002] # TIBETAN VOWEL SIGN AA
-0F72 ; [.2AA1.0020.0002] # TIBETAN VOWEL SIGN I
-0F73 ; [.2AA2.0020.0002] # TIBETAN VOWEL SIGN II
-0F71 0F72 ; [.2AA2.0020.0002] # TIBETAN VOWEL SIGN II
-0F80 ; [.2AA3.0020.0002] # TIBETAN VOWEL SIGN REVERSED I
-0F81 ; [.2AA4.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
-0F71 0F80 ; [.2AA4.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
-0F74 ; [.2AA5.0020.0002] # TIBETAN VOWEL SIGN U
-0F75 ; [.2AA6.0020.0002] # TIBETAN VOWEL SIGN UU
-0F71 0F74 ; [.2AA6.0020.0002] # TIBETAN VOWEL SIGN UU
-0F76 ; [.2AA7.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
-0FB2 0F80 ; [.2AA7.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
-0F77 ; [.2AA8.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0FB2 0F71 0F80 ; [.2AA8.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0FB2 0F81 ; [.2AA8.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0F78 ; [.2AA9.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
-0FB3 0F80 ; [.2AA9.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
-0F79 ; [.2AAA.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0FB3 0F71 0F80 ; [.2AAA.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0FB3 0F81 ; [.2AAA.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0F7A ; [.2AAB.0020.0002] # TIBETAN VOWEL SIGN E
-0F7B ; [.2AAC.0020.0002] # TIBETAN VOWEL SIGN EE
-0F7C ; [.2AAD.0020.0002] # TIBETAN VOWEL SIGN O
-0F7D ; [.2AAE.0020.0002] # TIBETAN VOWEL SIGN OO
-0F84 ; [.2AAF.0020.0002] # TIBETAN MARK HALANTA
-1C00 ; [.2AB0.0020.0002] # LEPCHA LETTER KA
-1C01 ; [.2AB1.0020.0002] # LEPCHA LETTER KLA
-1C02 ; [.2AB2.0020.0002] # LEPCHA LETTER KHA
-1C03 ; [.2AB3.0020.0002] # LEPCHA LETTER GA
-1C04 ; [.2AB4.0020.0002] # LEPCHA LETTER GLA
-1C05 ; [.2AB5.0020.0002] # LEPCHA LETTER NGA
-1C06 ; [.2AB6.0020.0002] # LEPCHA LETTER CA
-1C07 ; [.2AB7.0020.0002] # LEPCHA LETTER CHA
-1C08 ; [.2AB8.0020.0002] # LEPCHA LETTER JA
-1C09 ; [.2AB9.0020.0002] # LEPCHA LETTER NYA
-1C4D ; [.2ABA.0020.0002] # LEPCHA LETTER TTA
-1C4E ; [.2ABB.0020.0002] # LEPCHA LETTER TTHA
-1C4F ; [.2ABC.0020.0002] # LEPCHA LETTER DDA
-1C0A ; [.2ABD.0020.0002] # LEPCHA LETTER TA
-1C0B ; [.2ABE.0020.0002] # LEPCHA LETTER THA
-1C0C ; [.2ABF.0020.0002] # LEPCHA LETTER DA
-1C0D ; [.2AC0.0020.0002] # LEPCHA LETTER NA
-1C0E ; [.2AC1.0020.0002] # LEPCHA LETTER PA
-1C0F ; [.2AC2.0020.0002] # LEPCHA LETTER PLA
-1C10 ; [.2AC3.0020.0002] # LEPCHA LETTER PHA
-1C11 ; [.2AC4.0020.0002] # LEPCHA LETTER FA
-1C12 ; [.2AC5.0020.0002] # LEPCHA LETTER FLA
-1C13 ; [.2AC6.0020.0002] # LEPCHA LETTER BA
-1C14 ; [.2AC7.0020.0002] # LEPCHA LETTER BLA
-1C15 ; [.2AC8.0020.0002] # LEPCHA LETTER MA
-1C16 ; [.2AC9.0020.0002] # LEPCHA LETTER MLA
-1C17 ; [.2ACA.0020.0002] # LEPCHA LETTER TSA
-1C18 ; [.2ACB.0020.0002] # LEPCHA LETTER TSHA
-1C19 ; [.2ACC.0020.0002] # LEPCHA LETTER DZA
-1C1A ; [.2ACD.0020.0002] # LEPCHA LETTER YA
-1C24 ; [.2ACE.0020.0002] # LEPCHA SUBJOINED LETTER YA
-1C1B ; [.2ACF.0020.0002] # LEPCHA LETTER RA
-1C25 ; [.2AD0.0020.0002] # LEPCHA SUBJOINED LETTER RA
-1C1C ; [.2AD1.0020.0002] # LEPCHA LETTER LA
-1C1D ; [.2AD2.0020.0002] # LEPCHA LETTER HA
-1C1E ; [.2AD3.0020.0002] # LEPCHA LETTER HLA
-1C1F ; [.2AD4.0020.0002] # LEPCHA LETTER VA
-1C20 ; [.2AD5.0020.0002] # LEPCHA LETTER SA
-1C21 ; [.2AD6.0020.0002] # LEPCHA LETTER SHA
-1C22 ; [.2AD7.0020.0002] # LEPCHA LETTER WA
-1C23 ; [.2AD8.0020.0002] # LEPCHA LETTER A
-1C36 ; [.2AD9.0020.0002] # LEPCHA SIGN RAN
-1C26 ; [.2ADA.0020.0002] # LEPCHA VOWEL SIGN AA
-1C27 ; [.2ADB.0020.0002] # LEPCHA VOWEL SIGN I
-1C28 ; [.2ADC.0020.0002] # LEPCHA VOWEL SIGN O
-1C29 ; [.2ADD.0020.0002] # LEPCHA VOWEL SIGN OO
-1C2A ; [.2ADE.0020.0002] # LEPCHA VOWEL SIGN U
-1C2B ; [.2ADF.0020.0002] # LEPCHA VOWEL SIGN UU
-1C2C ; [.2AE0.0020.0002] # LEPCHA VOWEL SIGN E
-1C2D ; [.2AE1.0020.0002] # LEPCHA CONSONANT SIGN K
-1C2E ; [.2AE2.0020.0002] # LEPCHA CONSONANT SIGN M
-1C2F ; [.2AE3.0020.0002] # LEPCHA CONSONANT SIGN L
-1C30 ; [.2AE4.0020.0002] # LEPCHA CONSONANT SIGN N
-1C31 ; [.2AE5.0020.0002] # LEPCHA CONSONANT SIGN P
-1C32 ; [.2AE6.0020.0002] # LEPCHA CONSONANT SIGN R
-1C33 ; [.2AE7.0020.0002] # LEPCHA CONSONANT SIGN T
-1C34 ; [.2AE8.0020.0002] # LEPCHA CONSONANT SIGN NYIN-DO
-1C35 ; [.2AE9.0020.0002] # LEPCHA CONSONANT SIGN KANG
-A840 ; [.2AEA.0020.0002] # PHAGS-PA LETTER KA
-A841 ; [.2AEB.0020.0002] # PHAGS-PA LETTER KHA
-A842 ; [.2AEC.0020.0002] # PHAGS-PA LETTER GA
-A843 ; [.2AED.0020.0002] # PHAGS-PA LETTER NGA
-A844 ; [.2AEE.0020.0002] # PHAGS-PA LETTER CA
-A845 ; [.2AEF.0020.0002] # PHAGS-PA LETTER CHA
-A846 ; [.2AF0.0020.0002] # PHAGS-PA LETTER JA
-A847 ; [.2AF1.0020.0002] # PHAGS-PA LETTER NYA
-A869 ; [.2AF2.0020.0002] # PHAGS-PA LETTER TTA
-A86A ; [.2AF3.0020.0002] # PHAGS-PA LETTER TTHA
-A86B ; [.2AF4.0020.0002] # PHAGS-PA LETTER DDA
-A86C ; [.2AF5.0020.0002] # PHAGS-PA LETTER NNA
-A848 ; [.2AF6.0020.0002] # PHAGS-PA LETTER TA
-A849 ; [.2AF7.0020.0002] # PHAGS-PA LETTER THA
-A84A ; [.2AF8.0020.0002] # PHAGS-PA LETTER DA
-A84B ; [.2AF9.0020.0002] # PHAGS-PA LETTER NA
-A84C ; [.2AFA.0020.0002] # PHAGS-PA LETTER PA
-A84D ; [.2AFB.0020.0002] # PHAGS-PA LETTER PHA
-A84E ; [.2AFC.0020.0002] # PHAGS-PA LETTER BA
-A84F ; [.2AFD.0020.0002] # PHAGS-PA LETTER MA
-A850 ; [.2AFE.0020.0002] # PHAGS-PA LETTER TSA
-A851 ; [.2AFF.0020.0002] # PHAGS-PA LETTER TSHA
-A852 ; [.2B00.0020.0002] # PHAGS-PA LETTER DZA
-A853 ; [.2B01.0020.0002] # PHAGS-PA LETTER WA
-A867 ; [.2B02.0020.0002] # PHAGS-PA SUBJOINED LETTER WA
-A854 ; [.2B03.0020.0002] # PHAGS-PA LETTER ZHA
-A855 ; [.2B04.0020.0002] # PHAGS-PA LETTER ZA
-A856 ; [.2B05.0020.0002] # PHAGS-PA LETTER SMALL A
-A857 ; [.2B06.0020.0002] # PHAGS-PA LETTER YA
-A868 ; [.2B07.0020.0002] # PHAGS-PA SUBJOINED LETTER YA
-A86D ; [.2B08.0020.0002] # PHAGS-PA LETTER ALTERNATE YA
-A858 ; [.2B09.0020.0002] # PHAGS-PA LETTER RA
-A871 ; [.2B0A.0020.0002] # PHAGS-PA SUBJOINED LETTER RA
-A872 ; [.2B0B.0020.0002] # PHAGS-PA SUPERFIXED LETTER RA
-A859 ; [.2B0C.0020.0002] # PHAGS-PA LETTER LA
-A85A ; [.2B0D.0020.0002] # PHAGS-PA LETTER SHA
-A86E ; [.2B0E.0020.0002] # PHAGS-PA LETTER VOICELESS SHA
-A85B ; [.2B0F.0020.0002] # PHAGS-PA LETTER SA
-A85C ; [.2B10.0020.0002] # PHAGS-PA LETTER HA
-A86F ; [.2B11.0020.0002] # PHAGS-PA LETTER VOICED HA
-A870 ; [.2B12.0020.0002] # PHAGS-PA LETTER ASPIRATED FA
-A85D ; [.2B13.0020.0002] # PHAGS-PA LETTER A
-A862 ; [.2B14.0020.0002] # PHAGS-PA LETTER QA
-A863 ; [.2B15.0020.0002] # PHAGS-PA LETTER XA
-A864 ; [.2B16.0020.0002] # PHAGS-PA LETTER FA
-A865 ; [.2B17.0020.0002] # PHAGS-PA LETTER GGA
-A85E ; [.2B18.0020.0002] # PHAGS-PA LETTER I
-A85F ; [.2B19.0020.0002] # PHAGS-PA LETTER U
-A860 ; [.2B1A.0020.0002] # PHAGS-PA LETTER E
-A861 ; [.2B1B.0020.0002] # PHAGS-PA LETTER O
-A866 ; [.2B1C.0020.0002] # PHAGS-PA LETTER EE
-A873 ; [.2B1D.0020.0002] # PHAGS-PA LETTER CANDRABINDU
-1900 ; [.2B1E.0020.0002] # LIMBU VOWEL-CARRIER LETTER
-1901 ; [.2B1F.0020.0002] # LIMBU LETTER KA
-1902 ; [.2B20.0020.0002] # LIMBU LETTER KHA
-1903 ; [.2B21.0020.0002] # LIMBU LETTER GA
-1904 ; [.2B22.0020.0002] # LIMBU LETTER GHA
-1905 ; [.2B23.0020.0002] # LIMBU LETTER NGA
-1906 ; [.2B24.0020.0002] # LIMBU LETTER CA
-1907 ; [.2B25.0020.0002] # LIMBU LETTER CHA
-1908 ; [.2B26.0020.0002] # LIMBU LETTER JA
-191D ; [.2B26.0020.0004][.2B44.0020.0004] # LIMBU LETTER GYAN
-1909 ; [.2B27.0020.0002] # LIMBU LETTER JHA
-190A ; [.2B28.0020.0002] # LIMBU LETTER YAN
-190B ; [.2B29.0020.0002] # LIMBU LETTER TA
-191E ; [.2B29.0020.0004][.2B45.0020.0004] # LIMBU LETTER TRA
-190C ; [.2B2A.0020.0002] # LIMBU LETTER THA
-190D ; [.2B2B.0020.0002] # LIMBU LETTER DA
-190E ; [.2B2C.0020.0002] # LIMBU LETTER DHA
-190F ; [.2B2D.0020.0002] # LIMBU LETTER NA
-1910 ; [.2B2E.0020.0002] # LIMBU LETTER PA
-1911 ; [.2B2F.0020.0002] # LIMBU LETTER PHA
-1912 ; [.2B30.0020.0002] # LIMBU LETTER BA
-1913 ; [.2B31.0020.0002] # LIMBU LETTER BHA
-1914 ; [.2B32.0020.0002] # LIMBU LETTER MA
-1915 ; [.2B33.0020.0002] # LIMBU LETTER YA
-1916 ; [.2B34.0020.0002] # LIMBU LETTER RA
-1917 ; [.2B35.0020.0002] # LIMBU LETTER LA
-1918 ; [.2B36.0020.0002] # LIMBU LETTER WA
-1919 ; [.2B37.0020.0002] # LIMBU LETTER SHA
-191A ; [.2B38.0020.0002] # LIMBU LETTER SSA
-191B ; [.2B39.0020.0002] # LIMBU LETTER SA
-191C ; [.2B3A.0020.0002] # LIMBU LETTER HA
-1920 ; [.2B3B.0020.0002] # LIMBU VOWEL SIGN A
-1921 ; [.2B3C.0020.0002] # LIMBU VOWEL SIGN I
-1922 ; [.2B3D.0020.0002] # LIMBU VOWEL SIGN U
-1923 ; [.2B3E.0020.0002] # LIMBU VOWEL SIGN EE
-1924 ; [.2B3F.0020.0002] # LIMBU VOWEL SIGN AI
-1925 ; [.2B40.0020.0002] # LIMBU VOWEL SIGN OO
-1926 ; [.2B41.0020.0002] # LIMBU VOWEL SIGN AU
-1927 ; [.2B42.0020.0002] # LIMBU VOWEL SIGN E
-1928 ; [.2B43.0020.0002] # LIMBU VOWEL SIGN O
-1929 ; [.2B44.0020.0002] # LIMBU SUBJOINED LETTER YA
-192A ; [.2B45.0020.0002] # LIMBU SUBJOINED LETTER RA
-192B ; [.2B46.0020.0002] # LIMBU SUBJOINED LETTER WA
-1930 ; [.2B47.0020.0002] # LIMBU SMALL LETTER KA
-1931 ; [.2B48.0020.0002] # LIMBU SMALL LETTER NGA
-1932 ; [.2B49.0020.0002] # LIMBU SMALL LETTER ANUSVARA
-1933 ; [.2B4A.0020.0002] # LIMBU SMALL LETTER TA
-1934 ; [.2B4B.0020.0002] # LIMBU SMALL LETTER NA
-1935 ; [.2B4C.0020.0002] # LIMBU SMALL LETTER PA
-1936 ; [.2B4D.0020.0002] # LIMBU SMALL LETTER MA
-1937 ; [.2B4E.0020.0002] # LIMBU SMALL LETTER RA
-1938 ; [.2B4F.0020.0002] # LIMBU SMALL LETTER LA
-1700 ; [.2B50.0020.0002] # TAGALOG LETTER A
-1701 ; [.2B51.0020.0002] # TAGALOG LETTER I
-1702 ; [.2B52.0020.0002] # TAGALOG LETTER U
-1703 ; [.2B53.0020.0002] # TAGALOG LETTER KA
-1704 ; [.2B54.0020.0002] # TAGALOG LETTER GA
-1705 ; [.2B55.0020.0002] # TAGALOG LETTER NGA
-1706 ; [.2B56.0020.0002] # TAGALOG LETTER TA
-1707 ; [.2B57.0020.0002] # TAGALOG LETTER DA
-1708 ; [.2B58.0020.0002] # TAGALOG LETTER NA
-1709 ; [.2B59.0020.0002] # TAGALOG LETTER PA
-170A ; [.2B5A.0020.0002] # TAGALOG LETTER BA
-170B ; [.2B5B.0020.0002] # TAGALOG LETTER MA
-170C ; [.2B5C.0020.0002] # TAGALOG LETTER YA
-170E ; [.2B5D.0020.0002] # TAGALOG LETTER LA
-170F ; [.2B5E.0020.0002] # TAGALOG LETTER WA
-1710 ; [.2B5F.0020.0002] # TAGALOG LETTER SA
-1711 ; [.2B60.0020.0002] # TAGALOG LETTER HA
-1712 ; [.2B61.0020.0002] # TAGALOG VOWEL SIGN I
-1713 ; [.2B62.0020.0002] # TAGALOG VOWEL SIGN U
-1714 ; [.2B63.0020.0002] # TAGALOG SIGN VIRAMA
-1720 ; [.2B64.0020.0002] # HANUNOO LETTER A
-1721 ; [.2B65.0020.0002] # HANUNOO LETTER I
-1722 ; [.2B66.0020.0002] # HANUNOO LETTER U
-1723 ; [.2B67.0020.0002] # HANUNOO LETTER KA
-1724 ; [.2B68.0020.0002] # HANUNOO LETTER GA
-1725 ; [.2B69.0020.0002] # HANUNOO LETTER NGA
-1726 ; [.2B6A.0020.0002] # HANUNOO LETTER TA
-1727 ; [.2B6B.0020.0002] # HANUNOO LETTER DA
-1728 ; [.2B6C.0020.0002] # HANUNOO LETTER NA
-1729 ; [.2B6D.0020.0002] # HANUNOO LETTER PA
-172A ; [.2B6E.0020.0002] # HANUNOO LETTER BA
-172B ; [.2B6F.0020.0002] # HANUNOO LETTER MA
-172C ; [.2B70.0020.0002] # HANUNOO LETTER YA
-172D ; [.2B71.0020.0002] # HANUNOO LETTER RA
-172E ; [.2B72.0020.0002] # HANUNOO LETTER LA
-172F ; [.2B73.0020.0002] # HANUNOO LETTER WA
-1730 ; [.2B74.0020.0002] # HANUNOO LETTER SA
-1731 ; [.2B75.0020.0002] # HANUNOO LETTER HA
-1732 ; [.2B76.0020.0002] # HANUNOO VOWEL SIGN I
-1733 ; [.2B77.0020.0002] # HANUNOO VOWEL SIGN U
-1734 ; [.2B78.0020.0002] # HANUNOO SIGN PAMUDPOD
-1740 ; [.2B79.0020.0002] # BUHID LETTER A
-1741 ; [.2B7A.0020.0002] # BUHID LETTER I
-1742 ; [.2B7B.0020.0002] # BUHID LETTER U
-1743 ; [.2B7C.0020.0002] # BUHID LETTER KA
-1744 ; [.2B7D.0020.0002] # BUHID LETTER GA
-1745 ; [.2B7E.0020.0002] # BUHID LETTER NGA
-1746 ; [.2B7F.0020.0002] # BUHID LETTER TA
-1747 ; [.2B80.0020.0002] # BUHID LETTER DA
-1748 ; [.2B81.0020.0002] # BUHID LETTER NA
-1749 ; [.2B82.0020.0002] # BUHID LETTER PA
-174A ; [.2B83.0020.0002] # BUHID LETTER BA
-174B ; [.2B84.0020.0002] # BUHID LETTER MA
-174C ; [.2B85.0020.0002] # BUHID LETTER YA
-174D ; [.2B86.0020.0002] # BUHID LETTER RA
-174E ; [.2B87.0020.0002] # BUHID LETTER LA
-174F ; [.2B88.0020.0002] # BUHID LETTER WA
-1750 ; [.2B89.0020.0002] # BUHID LETTER SA
-1751 ; [.2B8A.0020.0002] # BUHID LETTER HA
-1752 ; [.2B8B.0020.0002] # BUHID VOWEL SIGN I
-1753 ; [.2B8C.0020.0002] # BUHID VOWEL SIGN U
-1760 ; [.2B8D.0020.0002] # TAGBANWA LETTER A
-1761 ; [.2B8E.0020.0002] # TAGBANWA LETTER I
-1762 ; [.2B8F.0020.0002] # TAGBANWA LETTER U
-1763 ; [.2B90.0020.0002] # TAGBANWA LETTER KA
-1764 ; [.2B91.0020.0002] # TAGBANWA LETTER GA
-1765 ; [.2B92.0020.0002] # TAGBANWA LETTER NGA
-1766 ; [.2B93.0020.0002] # TAGBANWA LETTER TA
-1767 ; [.2B94.0020.0002] # TAGBANWA LETTER DA
-1768 ; [.2B95.0020.0002] # TAGBANWA LETTER NA
-1769 ; [.2B96.0020.0002] # TAGBANWA LETTER PA
-176A ; [.2B97.0020.0002] # TAGBANWA LETTER BA
-176B ; [.2B98.0020.0002] # TAGBANWA LETTER MA
-176C ; [.2B99.0020.0002] # TAGBANWA LETTER YA
-176E ; [.2B9A.0020.0002] # TAGBANWA LETTER LA
-176F ; [.2B9B.0020.0002] # TAGBANWA LETTER WA
-1770 ; [.2B9C.0020.0002] # TAGBANWA LETTER SA
-1772 ; [.2B9D.0020.0002] # TAGBANWA VOWEL SIGN I
-1773 ; [.2B9E.0020.0002] # TAGBANWA VOWEL SIGN U
-1A00 ; [.2B9F.0020.0002] # BUGINESE LETTER KA
-1A01 ; [.2BA0.0020.0002] # BUGINESE LETTER GA
-1A02 ; [.2BA1.0020.0002] # BUGINESE LETTER NGA
-1A03 ; [.2BA2.0020.0002] # BUGINESE LETTER NGKA
-1A04 ; [.2BA3.0020.0002] # BUGINESE LETTER PA
-1A05 ; [.2BA4.0020.0002] # BUGINESE LETTER BA
-1A06 ; [.2BA5.0020.0002] # BUGINESE LETTER MA
-1A07 ; [.2BA6.0020.0002] # BUGINESE LETTER MPA
-1A08 ; [.2BA7.0020.0002] # BUGINESE LETTER TA
-1A09 ; [.2BA8.0020.0002] # BUGINESE LETTER DA
-1A0A ; [.2BA9.0020.0002] # BUGINESE LETTER NA
-1A0B ; [.2BAA.0020.0002] # BUGINESE LETTER NRA
-1A0C ; [.2BAB.0020.0002] # BUGINESE LETTER CA
-1A0D ; [.2BAC.0020.0002] # BUGINESE LETTER JA
-1A0E ; [.2BAD.0020.0002] # BUGINESE LETTER NYA
-1A0F ; [.2BAE.0020.0002] # BUGINESE LETTER NYCA
-1A10 ; [.2BAF.0020.0002] # BUGINESE LETTER YA
-1A11 ; [.2BB0.0020.0002] # BUGINESE LETTER RA
-1A12 ; [.2BB1.0020.0002] # BUGINESE LETTER LA
-1A13 ; [.2BB2.0020.0002] # BUGINESE LETTER VA
-1A14 ; [.2BB3.0020.0002] # BUGINESE LETTER SA
-1A15 ; [.2BB4.0020.0002] # BUGINESE LETTER A
-1A16 ; [.2BB5.0020.0002] # BUGINESE LETTER HA
-1A17 ; [.2BB6.0020.0002] # BUGINESE VOWEL SIGN I
-1A18 ; [.2BB7.0020.0002] # BUGINESE VOWEL SIGN U
-1A19 ; [.2BB8.0020.0002] # BUGINESE VOWEL SIGN E
-1A1A ; [.2BB9.0020.0002] # BUGINESE VOWEL SIGN O
-1A1B ; [.2BBA.0020.0002] # BUGINESE VOWEL SIGN AE
-1BC0 ; [.2BBB.0020.0002] # BATAK LETTER A
-1BC1 ; [.2BBB.0020.0004] # BATAK LETTER SIMALUNGUN A
-1BC2 ; [.2BBC.0020.0002] # BATAK LETTER HA
-1BC3 ; [.2BBC.0020.0004] # BATAK LETTER SIMALUNGUN HA
-1BC4 ; [.2BBC.0020.0004] # BATAK LETTER MANDAILING HA
-1BC5 ; [.2BBD.0020.0002] # BATAK LETTER BA
-1BC6 ; [.2BBD.0020.0004] # BATAK LETTER KARO BA
-1BC7 ; [.2BBE.0020.0002] # BATAK LETTER PA
-1BC8 ; [.2BBE.0020.0004] # BATAK LETTER SIMALUNGUN PA
-1BC9 ; [.2BBF.0020.0002] # BATAK LETTER NA
-1BCA ; [.2BBF.0020.0004] # BATAK LETTER MANDAILING NA
-1BCB ; [.2BC0.0020.0002] # BATAK LETTER WA
-1BCC ; [.2BC0.0020.0004] # BATAK LETTER SIMALUNGUN WA
-1BCD ; [.2BC0.0020.0004] # BATAK LETTER PAKPAK WA
-1BCE ; [.2BC1.0020.0002] # BATAK LETTER GA
-1BCF ; [.2BC1.0020.0004] # BATAK LETTER SIMALUNGUN GA
-1BD0 ; [.2BC2.0020.0002] # BATAK LETTER JA
-1BD1 ; [.2BC3.0020.0002] # BATAK LETTER DA
-1BD2 ; [.2BC4.0020.0002] # BATAK LETTER RA
-1BD3 ; [.2BC4.0020.0004] # BATAK LETTER SIMALUNGUN RA
-1BD4 ; [.2BC5.0020.0002] # BATAK LETTER MA
-1BD5 ; [.2BC5.0020.0004] # BATAK LETTER SIMALUNGUN MA
-1BD6 ; [.2BC6.0020.0002] # BATAK LETTER SOUTHERN TA
-1BD7 ; [.2BC6.0020.0004] # BATAK LETTER NORTHERN TA
-1BD8 ; [.2BC7.0020.0002] # BATAK LETTER SA
-1BD9 ; [.2BC7.0020.0004] # BATAK LETTER SIMALUNGUN SA
-1BDA ; [.2BC7.0020.0004] # BATAK LETTER MANDAILING SA
-1BDB ; [.2BC8.0020.0002] # BATAK LETTER YA
-1BDC ; [.2BC8.0020.0004] # BATAK LETTER SIMALUNGUN YA
-1BDD ; [.2BC9.0020.0002] # BATAK LETTER NGA
-1BDE ; [.2BCA.0020.0002] # BATAK LETTER LA
-1BDF ; [.2BCA.0020.0004] # BATAK LETTER SIMALUNGUN LA
-1BE0 ; [.2BCB.0020.0002] # BATAK LETTER NYA
-1BE1 ; [.2BCC.0020.0002] # BATAK LETTER CA
-1BE2 ; [.2BCD.0020.0002] # BATAK LETTER NDA
-1BE3 ; [.2BCE.0020.0002] # BATAK LETTER MBA
-1BE4 ; [.2BCF.0020.0002] # BATAK LETTER I
-1BE5 ; [.2BD0.0020.0002] # BATAK LETTER U
-1BE7 ; [.2BD1.0020.0002] # BATAK VOWEL SIGN E
-1BE8 ; [.2BD1.0020.0004] # BATAK VOWEL SIGN PAKPAK E
-1BE9 ; [.2BD2.0020.0002] # BATAK VOWEL SIGN EE
-1BEA ; [.2BD3.0020.0002] # BATAK VOWEL SIGN I
-1BEB ; [.2BD3.0020.0004] # BATAK VOWEL SIGN KARO I
-1BEC ; [.2BD4.0020.0002] # BATAK VOWEL SIGN O
-1BED ; [.2BD4.0020.0004] # BATAK VOWEL SIGN KARO O
-1BEE ; [.2BD5.0020.0002] # BATAK VOWEL SIGN U
-1BEF ; [.2BD5.0020.0004] # BATAK VOWEL SIGN U FOR SIMALUNGUN SA
-1BF0 ; [.2BD6.0020.0002] # BATAK CONSONANT SIGN NG
-1BF1 ; [.2BD7.0020.0002] # BATAK CONSONANT SIGN H
-1BF2 ; [.2BD8.0020.0002] # BATAK PANGOLAT
-1BF3 ; [.2BD9.0020.0002] # BATAK PANONGONAN
-A930 ; [.2BDA.0020.0002] # REJANG LETTER KA
-A931 ; [.2BDB.0020.0002] # REJANG LETTER GA
-A932 ; [.2BDC.0020.0002] # REJANG LETTER NGA
-A933 ; [.2BDD.0020.0002] # REJANG LETTER TA
-A934 ; [.2BDE.0020.0002] # REJANG LETTER DA
-A935 ; [.2BDF.0020.0002] # REJANG LETTER NA
-A936 ; [.2BE0.0020.0002] # REJANG LETTER PA
-A937 ; [.2BE1.0020.0002] # REJANG LETTER BA
-A938 ; [.2BE2.0020.0002] # REJANG LETTER MA
-A939 ; [.2BE3.0020.0002] # REJANG LETTER CA
-A93A ; [.2BE4.0020.0002] # REJANG LETTER JA
-A93B ; [.2BE5.0020.0002] # REJANG LETTER NYA
-A93C ; [.2BE6.0020.0002] # REJANG LETTER SA
-A93D ; [.2BE7.0020.0002] # REJANG LETTER RA
-A93E ; [.2BE8.0020.0002] # REJANG LETTER LA
-A93F ; [.2BE9.0020.0002] # REJANG LETTER YA
-A940 ; [.2BEA.0020.0002] # REJANG LETTER WA
-A941 ; [.2BEB.0020.0002] # REJANG LETTER HA
-A942 ; [.2BEC.0020.0002] # REJANG LETTER MBA
-A943 ; [.2BED.0020.0002] # REJANG LETTER NGGA
-A944 ; [.2BEE.0020.0002] # REJANG LETTER NDA
-A945 ; [.2BEF.0020.0002] # REJANG LETTER NYJA
-A946 ; [.2BF0.0020.0002] # REJANG LETTER A
-A947 ; [.2BF1.0020.0002] # REJANG VOWEL SIGN I
-A948 ; [.2BF2.0020.0002] # REJANG VOWEL SIGN U
-A949 ; [.2BF3.0020.0002] # REJANG VOWEL SIGN E
-A94A ; [.2BF4.0020.0002] # REJANG VOWEL SIGN AI
-A94B ; [.2BF5.0020.0002] # REJANG VOWEL SIGN O
-A94C ; [.2BF6.0020.0002] # REJANG VOWEL SIGN AU
-A94D ; [.2BF7.0020.0002] # REJANG VOWEL SIGN EU
-A94E ; [.2BF8.0020.0002] # REJANG VOWEL SIGN EA
-A94F ; [.2BF9.0020.0002] # REJANG CONSONANT SIGN NG
-A950 ; [.2BFA.0020.0002] # REJANG CONSONANT SIGN N
-A951 ; [.2BFB.0020.0002] # REJANG CONSONANT SIGN R
-A952 ; [.2BFC.0020.0002] # REJANG CONSONANT SIGN H
-A953 ; [.2BFD.0020.0002] # REJANG VIRAMA
-A90A ; [.2BFE.0020.0002] # KAYAH LI LETTER KA
-A90B ; [.2BFF.0020.0002] # KAYAH LI LETTER KHA
-A90C ; [.2C00.0020.0002] # KAYAH LI LETTER GA
-A90D ; [.2C01.0020.0002] # KAYAH LI LETTER NGA
-A90E ; [.2C02.0020.0002] # KAYAH LI LETTER SA
-A90F ; [.2C03.0020.0002] # KAYAH LI LETTER SHA
-A910 ; [.2C04.0020.0002] # KAYAH LI LETTER ZA
-A911 ; [.2C05.0020.0002] # KAYAH LI LETTER NYA
-A912 ; [.2C06.0020.0002] # KAYAH LI LETTER TA
-A913 ; [.2C07.0020.0002] # KAYAH LI LETTER HTA
-A914 ; [.2C08.0020.0002] # KAYAH LI LETTER NA
-A915 ; [.2C09.0020.0002] # KAYAH LI LETTER PA
-A916 ; [.2C0A.0020.0002] # KAYAH LI LETTER PHA
-A917 ; [.2C0B.0020.0002] # KAYAH LI LETTER MA
-A918 ; [.2C0C.0020.0002] # KAYAH LI LETTER DA
-A919 ; [.2C0D.0020.0002] # KAYAH LI LETTER BA
-A91A ; [.2C0E.0020.0002] # KAYAH LI LETTER RA
-A91B ; [.2C0F.0020.0002] # KAYAH LI LETTER YA
-A91C ; [.2C10.0020.0002] # KAYAH LI LETTER LA
-A91D ; [.2C11.0020.0002] # KAYAH LI LETTER WA
-A91E ; [.2C12.0020.0002] # KAYAH LI LETTER THA
-A91F ; [.2C13.0020.0002] # KAYAH LI LETTER HA
-A920 ; [.2C14.0020.0002] # KAYAH LI LETTER VA
-A921 ; [.2C15.0020.0002] # KAYAH LI LETTER CA
-A922 ; [.2C16.0020.0002] # KAYAH LI LETTER A
-A923 ; [.2C17.0020.0002] # KAYAH LI LETTER OE
-A924 ; [.2C18.0020.0002] # KAYAH LI LETTER I
-A925 ; [.2C19.0020.0002] # KAYAH LI LETTER OO
-A926 ; [.2C1A.0020.0002] # KAYAH LI VOWEL UE
-A927 ; [.2C1B.0020.0002] # KAYAH LI VOWEL E
-A928 ; [.2C1C.0020.0002] # KAYAH LI VOWEL U
-A929 ; [.2C1D.0020.0002] # KAYAH LI VOWEL EE
-A92A ; [.2C1E.0020.0002] # KAYAH LI VOWEL O
-1000 ; [.2C1F.0020.0002] # MYANMAR LETTER KA
-1075 ; [.2C20.0020.0002] # MYANMAR LETTER SHAN KA
-1001 ; [.2C21.0020.0002] # MYANMAR LETTER KHA
-1076 ; [.2C22.0020.0002] # MYANMAR LETTER SHAN KHA
-1002 ; [.2C23.0020.0002] # MYANMAR LETTER GA
-1077 ; [.2C24.0020.0002] # MYANMAR LETTER SHAN GA
-AA60 ; [.2C25.0020.0002] # MYANMAR LETTER KHAMTI GA
-A9E9 ; [.2C26.0020.0002] # MYANMAR LETTER TAI LAING GA
-1003 ; [.2C27.0020.0002] # MYANMAR LETTER GHA
-A9E0 ; [.2C28.0020.0002] # MYANMAR LETTER SHAN GHA
-A9EA ; [.2C29.0020.0002] # MYANMAR LETTER TAI LAING GHA
-1004 ; [.2C2A.0020.0002] # MYANMAR LETTER NGA
-105A ; [.2C2B.0020.0002] # MYANMAR LETTER MON NGA
-1005 ; [.2C2C.0020.0002] # MYANMAR LETTER CA
-1078 ; [.2C2D.0020.0002] # MYANMAR LETTER SHAN CA
-AA61 ; [.2C2E.0020.0002] # MYANMAR LETTER KHAMTI CA
-1006 ; [.2C2F.0020.0002] # MYANMAR LETTER CHA
-A9E1 ; [.2C30.0020.0002] # MYANMAR LETTER SHAN CHA
-AA62 ; [.2C31.0020.0002] # MYANMAR LETTER KHAMTI CHA
-AA7E ; [.2C32.0020.0002] # MYANMAR LETTER SHWE PALAUNG CHA
-1007 ; [.2C33.0020.0002] # MYANMAR LETTER JA
-AA63 ; [.2C34.0020.0002] # MYANMAR LETTER KHAMTI JA
-A9EB ; [.2C35.0020.0002] # MYANMAR LETTER TAI LAING JA
-1079 ; [.2C36.0020.0002] # MYANMAR LETTER SHAN ZA
-AA72 ; [.2C37.0020.0002] # MYANMAR LETTER KHAMTI ZA
-1008 ; [.2C38.0020.0002] # MYANMAR LETTER JHA
-105B ; [.2C39.0020.0002] # MYANMAR LETTER MON JHA
-A9E2 ; [.2C3A.0020.0002] # MYANMAR LETTER SHAN JHA
-AA64 ; [.2C3B.0020.0002] # MYANMAR LETTER KHAMTI JHA
-A9EC ; [.2C3C.0020.0002] # MYANMAR LETTER TAI LAING JHA
-1061 ; [.2C3D.0020.0002] # MYANMAR LETTER SGAW KAREN SHA
-AA7F ; [.2C3E.0020.0002] # MYANMAR LETTER SHWE PALAUNG SHA
-1009 ; [.2C3F.0020.0002] # MYANMAR LETTER NYA
-107A ; [.2C40.0020.0002] # MYANMAR LETTER SHAN NYA
-AA65 ; [.2C41.0020.0002] # MYANMAR LETTER KHAMTI NYA
-A9E7 ; [.2C42.0020.0002] # MYANMAR LETTER TAI LAING NYA
-100A ; [.2C43.0020.0002] # MYANMAR LETTER NNYA
-100B ; [.2C44.0020.0002] # MYANMAR LETTER TTA
-AA66 ; [.2C45.0020.0002] # MYANMAR LETTER KHAMTI TTA
-100C ; [.2C46.0020.0002] # MYANMAR LETTER TTHA
-AA67 ; [.2C47.0020.0002] # MYANMAR LETTER KHAMTI TTHA
-100D ; [.2C48.0020.0002] # MYANMAR LETTER DDA
-AA68 ; [.2C49.0020.0002] # MYANMAR LETTER KHAMTI DDA
-A9ED ; [.2C4A.0020.0002] # MYANMAR LETTER TAI LAING DDA
-100E ; [.2C4B.0020.0002] # MYANMAR LETTER DDHA
-AA69 ; [.2C4C.0020.0002] # MYANMAR LETTER KHAMTI DDHA
-A9EE ; [.2C4D.0020.0002] # MYANMAR LETTER TAI LAING DDHA
-100F ; [.2C4E.0020.0002] # MYANMAR LETTER NNA
-106E ; [.2C4F.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN NNA
-A9E3 ; [.2C50.0020.0002] # MYANMAR LETTER SHAN NNA
-A9EF ; [.2C51.0020.0002] # MYANMAR LETTER TAI LAING NNA
-1010 ; [.2C52.0020.0002] # MYANMAR LETTER TA
-1011 ; [.2C53.0020.0002] # MYANMAR LETTER THA
-1012 ; [.2C54.0020.0002] # MYANMAR LETTER DA
-107B ; [.2C55.0020.0002] # MYANMAR LETTER SHAN DA
-A9FB ; [.2C56.0020.0002] # MYANMAR LETTER TAI LAING DA
-1013 ; [.2C57.0020.0002] # MYANMAR LETTER DHA
-AA6A ; [.2C58.0020.0002] # MYANMAR LETTER KHAMTI DHA
-A9FC ; [.2C59.0020.0002] # MYANMAR LETTER TAI LAING DHA
-1014 ; [.2C5A.0020.0002] # MYANMAR LETTER NA
-107C ; [.2C5B.0020.0002] # MYANMAR LETTER SHAN NA
-AA6B ; [.2C5C.0020.0002] # MYANMAR LETTER KHAMTI NA
-105E ; [.2C5D.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL NA
-1015 ; [.2C5E.0020.0002] # MYANMAR LETTER PA
-1016 ; [.2C5F.0020.0002] # MYANMAR LETTER PHA
-107D ; [.2C60.0020.0002] # MYANMAR LETTER SHAN PHA
-107E ; [.2C61.0020.0002] # MYANMAR LETTER SHAN FA
-AA6F ; [.2C62.0020.0002] # MYANMAR LETTER KHAMTI FA
-108E ; [.2C63.0020.0002] # MYANMAR LETTER RUMAI PALAUNG FA
-A9E8 ; [.2C64.0020.0002] # MYANMAR LETTER TAI LAING FA
-1017 ; [.2C65.0020.0002] # MYANMAR LETTER BA
-107F ; [.2C66.0020.0002] # MYANMAR LETTER SHAN BA
-A9FD ; [.2C67.0020.0002] # MYANMAR LETTER TAI LAING BA
-1018 ; [.2C68.0020.0002] # MYANMAR LETTER BHA
-A9E4 ; [.2C69.0020.0002] # MYANMAR LETTER SHAN BHA
-A9FE ; [.2C6A.0020.0002] # MYANMAR LETTER TAI LAING BHA
-1019 ; [.2C6B.0020.0002] # MYANMAR LETTER MA
-105F ; [.2C6C.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL MA
-101A ; [.2C6D.0020.0002] # MYANMAR LETTER YA
-103B ; [.2C6E.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL YA
-101B ; [.2C6F.0020.0002] # MYANMAR LETTER RA
-AA73 ; [.2C70.0020.0002] # MYANMAR LETTER KHAMTI RA
-AA7A ; [.2C71.0020.0002] # MYANMAR LETTER AITON RA
-103C ; [.2C72.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL RA
-101C ; [.2C73.0020.0002] # MYANMAR LETTER LA
-1060 ; [.2C74.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL LA
-101D ; [.2C75.0020.0002] # MYANMAR LETTER WA
-103D ; [.2C76.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL WA
-1082 ; [.2C77.0020.0002] # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-1080 ; [.2C78.0020.0002] # MYANMAR LETTER SHAN THA
-1050 ; [.2C79.0020.0002] # MYANMAR LETTER SHA
-1051 ; [.2C7A.0020.0002] # MYANMAR LETTER SSA
-1065 ; [.2C7B.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN THA
-101E ; [.2C7C.0020.0002] # MYANMAR LETTER SA
-103F ; [.2C7C.0020.0004][.2CB5.0020.0004][.2C7C.0020.0004] # MYANMAR LETTER GREAT SA
-AA6C ; [.2C7D.0020.0002] # MYANMAR LETTER KHAMTI SA
-101F ; [.2C7E.0020.0002] # MYANMAR LETTER HA
-1081 ; [.2C7F.0020.0002] # MYANMAR LETTER SHAN HA
-AA6D ; [.2C80.0020.0002] # MYANMAR LETTER KHAMTI HA
-103E ; [.2C81.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL HA
-AA6E ; [.2C82.0020.0002] # MYANMAR LETTER KHAMTI HHA
-AA71 ; [.2C83.0020.0002] # MYANMAR LETTER KHAMTI XA
-1020 ; [.2C84.0020.0002] # MYANMAR LETTER LLA
-A9FA ; [.2C85.0020.0002] # MYANMAR LETTER TAI LAING LLA
-105C ; [.2C86.0020.0002] # MYANMAR LETTER MON BBA
-105D ; [.2C87.0020.0002] # MYANMAR LETTER MON BBE
-106F ; [.2C88.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN YWA
-1070 ; [.2C89.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN GHWA
-1066 ; [.2C8A.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN PWA
-1021 ; [.2C8B.0020.0002] # MYANMAR LETTER A
-1022 ; [.2C8C.0020.0002] # MYANMAR LETTER SHAN A
-1023 ; [.2C8D.0020.0002] # MYANMAR LETTER I
-1024 ; [.2C8E.0020.0002] # MYANMAR LETTER II
-1025 ; [.2C8F.0020.0002] # MYANMAR LETTER U
-1026 ; [.2C90.0020.0002] # MYANMAR LETTER UU
-1025 102E ; [.2C90.0020.0002] # MYANMAR LETTER UU
-1052 ; [.2C91.0020.0002] # MYANMAR LETTER VOCALIC R
-1053 ; [.2C92.0020.0002] # MYANMAR LETTER VOCALIC RR
-1054 ; [.2C93.0020.0002] # MYANMAR LETTER VOCALIC L
-1055 ; [.2C94.0020.0002] # MYANMAR LETTER VOCALIC LL
-1027 ; [.2C95.0020.0002] # MYANMAR LETTER E
-1028 ; [.2C96.0020.0002] # MYANMAR LETTER MON E
-1029 ; [.2C97.0020.0002] # MYANMAR LETTER O
-102A ; [.2C98.0020.0002] # MYANMAR LETTER AU
-102C ; [.2C99.0020.0002] # MYANMAR VOWEL SIGN AA
-102B ; [.2C99.0020.0004] # MYANMAR VOWEL SIGN TALL AA
-1083 ; [.2C9A.0020.0002] # MYANMAR VOWEL SIGN SHAN AA
-1072 ; [.2C9B.0020.0002] # MYANMAR VOWEL SIGN KAYAH OE
-109C ; [.2C9C.0020.0002] # MYANMAR VOWEL SIGN AITON A
-102D ; [.2C9D.0020.0002] # MYANMAR VOWEL SIGN I
-1071 ; [.2C9E.0020.0002] # MYANMAR VOWEL SIGN GEBA KAREN I
-102E ; [.2C9F.0020.0002] # MYANMAR VOWEL SIGN II
-1033 ; [.2CA0.0020.0002] # MYANMAR VOWEL SIGN MON II
-102F ; [.2CA1.0020.0002] # MYANMAR VOWEL SIGN U
-1073 ; [.2CA2.0020.0002] # MYANMAR VOWEL SIGN KAYAH U
-1074 ; [.2CA3.0020.0002] # MYANMAR VOWEL SIGN KAYAH EE
-1030 ; [.2CA4.0020.0002] # MYANMAR VOWEL SIGN UU
-1056 ; [.2CA5.0020.0002] # MYANMAR VOWEL SIGN VOCALIC R
-1057 ; [.2CA6.0020.0002] # MYANMAR VOWEL SIGN VOCALIC RR
-1058 ; [.2CA7.0020.0002] # MYANMAR VOWEL SIGN VOCALIC L
-1059 ; [.2CA8.0020.0002] # MYANMAR VOWEL SIGN VOCALIC LL
-1031 ; [.2CA9.0020.0002] # MYANMAR VOWEL SIGN E
-1084 ; [.2CAA.0020.0002] # MYANMAR VOWEL SIGN SHAN E
-1035 ; [.2CAB.0020.0002] # MYANMAR VOWEL SIGN E ABOVE
-1085 ; [.2CAC.0020.0002] # MYANMAR VOWEL SIGN SHAN E ABOVE
-1032 ; [.2CAD.0020.0002] # MYANMAR VOWEL SIGN AI
-109D ; [.2CAE.0020.0002] # MYANMAR VOWEL SIGN AITON AI
-1034 ; [.2CAF.0020.0002] # MYANMAR VOWEL SIGN MON O
-1062 ; [.2CB0.0020.0002] # MYANMAR VOWEL SIGN SGAW KAREN EU
-1067 ; [.2CB1.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN EU
-1068 ; [.2CB2.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
-A9E5 ; [.2CB3.0020.0002] # MYANMAR SIGN SHAN SAW
-1086 ; [.2CB4.0020.0002] # MYANMAR VOWEL SIGN SHAN FINAL Y
-1039 ; [.2CB5.0020.0002] # MYANMAR SIGN VIRAMA
-103A ; [.2CB6.0020.0002] # MYANMAR SIGN ASAT
-1063 ; [.2CB7.0020.0002] # MYANMAR TONE MARK SGAW KAREN HATHI
-1064 ; [.2CB8.0020.0002] # MYANMAR TONE MARK SGAW KAREN KE PHO
-1069 ; [.2CB9.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-1
-106A ; [.2CBA.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-2
-106B ; [.2CBB.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-3
-106C ; [.2CBC.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-4
-106D ; [.2CBD.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-5
-1087 ; [.2CBE.0020.0002] # MYANMAR SIGN SHAN TONE-2
-108B ; [.2CBF.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-2
-1088 ; [.2CC0.0020.0002] # MYANMAR SIGN SHAN TONE-3
-108C ; [.2CC1.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-3
-108D ; [.2CC2.0020.0002] # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
-1089 ; [.2CC3.0020.0002] # MYANMAR SIGN SHAN TONE-5
-108A ; [.2CC4.0020.0002] # MYANMAR SIGN SHAN TONE-6
-108F ; [.2CC5.0020.0002] # MYANMAR SIGN RUMAI PALAUNG TONE-5
-109A ; [.2CC6.0020.0002] # MYANMAR SIGN KHAMTI TONE-1
-109B ; [.2CC7.0020.0002] # MYANMAR SIGN KHAMTI TONE-3
-AA7B ; [.2CC8.0020.0002] # MYANMAR SIGN PAO KAREN TONE
-AA7C ; [.2CC9.0020.0002] # MYANMAR SIGN TAI LAING TONE-2
-AA7D ; [.2CCA.0020.0002] # MYANMAR SIGN TAI LAING TONE-5
-AA74 ; [.2CCB.0020.0002] # MYANMAR LOGOGRAM KHAMTI OAY
-AA75 ; [.2CCC.0020.0002] # MYANMAR LOGOGRAM KHAMTI QN
-AA76 ; [.2CCD.0020.0002] # MYANMAR LOGOGRAM KHAMTI HM
-11103 ; [.2CCE.0020.0002] # CHAKMA LETTER AA
-11104 ; [.2CCF.0020.0002] # CHAKMA LETTER I
-11105 ; [.2CD0.0020.0002] # CHAKMA LETTER U
-11106 ; [.2CD1.0020.0002] # CHAKMA LETTER E
-11107 ; [.2CD2.0020.0002] # CHAKMA LETTER KAA
-11108 ; [.2CD3.0020.0002] # CHAKMA LETTER KHAA
-11109 ; [.2CD4.0020.0002] # CHAKMA LETTER GAA
-1110A ; [.2CD5.0020.0002] # CHAKMA LETTER GHAA
-1110B ; [.2CD6.0020.0002] # CHAKMA LETTER NGAA
-1110C ; [.2CD7.0020.0002] # CHAKMA LETTER CAA
-1110D ; [.2CD8.0020.0002] # CHAKMA LETTER CHAA
-1110E ; [.2CD9.0020.0002] # CHAKMA LETTER JAA
-1110F ; [.2CDA.0020.0002] # CHAKMA LETTER JHAA
-11110 ; [.2CDB.0020.0002] # CHAKMA LETTER NYAA
-11111 ; [.2CDC.0020.0002] # CHAKMA LETTER TTAA
-11112 ; [.2CDD.0020.0002] # CHAKMA LETTER TTHAA
-11113 ; [.2CDE.0020.0002] # CHAKMA LETTER DDAA
-11114 ; [.2CDF.0020.0002] # CHAKMA LETTER DDHAA
-11115 ; [.2CE0.0020.0002] # CHAKMA LETTER NNAA
-11116 ; [.2CE1.0020.0002] # CHAKMA LETTER TAA
-11117 ; [.2CE2.0020.0002] # CHAKMA LETTER THAA
-11118 ; [.2CE3.0020.0002] # CHAKMA LETTER DAA
-11119 ; [.2CE4.0020.0002] # CHAKMA LETTER DHAA
-1111A ; [.2CE5.0020.0002] # CHAKMA LETTER NAA
-1111B ; [.2CE6.0020.0002] # CHAKMA LETTER PAA
-1111C ; [.2CE7.0020.0002] # CHAKMA LETTER PHAA
-1111D ; [.2CE8.0020.0002] # CHAKMA LETTER BAA
-1111E ; [.2CE9.0020.0002] # CHAKMA LETTER BHAA
-1111F ; [.2CEA.0020.0002] # CHAKMA LETTER MAA
-11120 ; [.2CEB.0020.0002] # CHAKMA LETTER YYAA
-11121 ; [.2CEC.0020.0002] # CHAKMA LETTER YAA
-11122 ; [.2CED.0020.0002] # CHAKMA LETTER RAA
-11123 ; [.2CEE.0020.0002] # CHAKMA LETTER LAA
-11124 ; [.2CEF.0020.0002] # CHAKMA LETTER WAA
-11125 ; [.2CF0.0020.0002] # CHAKMA LETTER SAA
-11126 ; [.2CF1.0020.0002] # CHAKMA LETTER HAA
-11127 ; [.2CF2.0020.0002] # CHAKMA VOWEL SIGN A
-11128 ; [.2CF3.0020.0002] # CHAKMA VOWEL SIGN I
-11129 ; [.2CF4.0020.0002] # CHAKMA VOWEL SIGN II
-1112A ; [.2CF5.0020.0002] # CHAKMA VOWEL SIGN U
-1112B ; [.2CF6.0020.0002] # CHAKMA VOWEL SIGN UU
-1112C ; [.2CF7.0020.0002] # CHAKMA VOWEL SIGN E
-1112D ; [.2CF8.0020.0002] # CHAKMA VOWEL SIGN AI
-1112E ; [.2CF9.0020.0002] # CHAKMA VOWEL SIGN O
-11131 11127 ; [.2CF9.0020.0002] # CHAKMA VOWEL SIGN O
-1112F ; [.2CFA.0020.0002] # CHAKMA VOWEL SIGN AU
-11132 11127 ; [.2CFA.0020.0002] # CHAKMA VOWEL SIGN AU
-11130 ; [.2CFB.0020.0002] # CHAKMA VOWEL SIGN OI
-11131 ; [.2CFC.0020.0002] # CHAKMA O MARK
-11132 ; [.2CFD.0020.0002] # CHAKMA AU MARK
-11133 ; [.2CFE.0020.0002] # CHAKMA VIRAMA
-11134 ; [.2CFF.0020.0002] # CHAKMA MAAYYAA
-1780 ; [.2D00.0020.0002] # KHMER LETTER KA
-1781 ; [.2D01.0020.0002] # KHMER LETTER KHA
-1782 ; [.2D02.0020.0002] # KHMER LETTER KO
-1783 ; [.2D03.0020.0002] # KHMER LETTER KHO
-1784 ; [.2D04.0020.0002] # KHMER LETTER NGO
-1785 ; [.2D05.0020.0002] # KHMER LETTER CA
-1786 ; [.2D06.0020.0002] # KHMER LETTER CHA
-1787 ; [.2D07.0020.0002] # KHMER LETTER CO
-1788 ; [.2D08.0020.0002] # KHMER LETTER CHO
-1789 ; [.2D09.0020.0002] # KHMER LETTER NYO
-178A ; [.2D0A.0020.0002] # KHMER LETTER DA
-178B ; [.2D0B.0020.0002] # KHMER LETTER TTHA
-178C ; [.2D0C.0020.0002] # KHMER LETTER DO
-178D ; [.2D0D.0020.0002] # KHMER LETTER TTHO
-178E ; [.2D0E.0020.0002] # KHMER LETTER NNO
-178F ; [.2D0F.0020.0002] # KHMER LETTER TA
-1790 ; [.2D10.0020.0002] # KHMER LETTER THA
-1791 ; [.2D11.0020.0002] # KHMER LETTER TO
-1792 ; [.2D12.0020.0002] # KHMER LETTER THO
-1793 ; [.2D13.0020.0002] # KHMER LETTER NO
-1794 ; [.2D14.0020.0002] # KHMER LETTER BA
-1795 ; [.2D15.0020.0002] # KHMER LETTER PHA
-1796 ; [.2D16.0020.0002] # KHMER LETTER PO
-1797 ; [.2D17.0020.0002] # KHMER LETTER PHO
-1798 ; [.2D18.0020.0002] # KHMER LETTER MO
-1799 ; [.2D19.0020.0002] # KHMER LETTER YO
-179A ; [.2D1A.0020.0002] # KHMER LETTER RO
-179B ; [.2D1B.0020.0002] # KHMER LETTER LO
-179C ; [.2D1C.0020.0002] # KHMER LETTER VO
-179D ; [.2D1D.0020.0002] # KHMER LETTER SHA
-179E ; [.2D1E.0020.0002] # KHMER LETTER SSO
-179F ; [.2D1F.0020.0002] # KHMER LETTER SA
-17A0 ; [.2D20.0020.0002] # KHMER LETTER HA
-17A1 ; [.2D21.0020.0002] # KHMER LETTER LA
-17A2 ; [.2D22.0020.0002] # KHMER LETTER QA
-17DC ; [.2D23.0020.0002] # KHMER SIGN AVAKRAHASANYA
-17A3 ; [.2D24.0020.0002] # KHMER INDEPENDENT VOWEL QAQ
-17A4 ; [.2D25.0020.0002] # KHMER INDEPENDENT VOWEL QAA
-17A5 ; [.2D26.0020.0002] # KHMER INDEPENDENT VOWEL QI
-17A6 ; [.2D27.0020.0002] # KHMER INDEPENDENT VOWEL QII
-17A7 ; [.2D28.0020.0002] # KHMER INDEPENDENT VOWEL QU
-17A8 ; [.2D29.0020.0002] # KHMER INDEPENDENT VOWEL QUK
-17A9 ; [.2D2A.0020.0002] # KHMER INDEPENDENT VOWEL QUU
-17AA ; [.2D2B.0020.0002] # KHMER INDEPENDENT VOWEL QUUV
-17AB ; [.2D2C.0020.0002] # KHMER INDEPENDENT VOWEL RY
-17AC ; [.2D2D.0020.0002] # KHMER INDEPENDENT VOWEL RYY
-17AD ; [.2D2E.0020.0002] # KHMER INDEPENDENT VOWEL LY
-17AE ; [.2D2F.0020.0002] # KHMER INDEPENDENT VOWEL LYY
-17AF ; [.2D30.0020.0002] # KHMER INDEPENDENT VOWEL QE
-17B0 ; [.2D31.0020.0002] # KHMER INDEPENDENT VOWEL QAI
-17B1 ; [.2D32.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE ONE
-17B2 ; [.2D33.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE TWO
-17B3 ; [.2D34.0020.0002] # KHMER INDEPENDENT VOWEL QAU
-17B6 ; [.2D35.0020.0002] # KHMER VOWEL SIGN AA
-17B7 ; [.2D36.0020.0002] # KHMER VOWEL SIGN I
-17B8 ; [.2D37.0020.0002] # KHMER VOWEL SIGN II
-17B9 ; [.2D38.0020.0002] # KHMER VOWEL SIGN Y
-17BA ; [.2D39.0020.0002] # KHMER VOWEL SIGN YY
-17BB ; [.2D3A.0020.0002] # KHMER VOWEL SIGN U
-17BC ; [.2D3B.0020.0002] # KHMER VOWEL SIGN UU
-17BD ; [.2D3C.0020.0002] # KHMER VOWEL SIGN UA
-17BE ; [.2D3D.0020.0002] # KHMER VOWEL SIGN OE
-17BF ; [.2D3E.0020.0002] # KHMER VOWEL SIGN YA
-17C0 ; [.2D3F.0020.0002] # KHMER VOWEL SIGN IE
-17C1 ; [.2D40.0020.0002] # KHMER VOWEL SIGN E
-17C2 ; [.2D41.0020.0002] # KHMER VOWEL SIGN AE
-17C3 ; [.2D42.0020.0002] # KHMER VOWEL SIGN AI
-17C4 ; [.2D43.0020.0002] # KHMER VOWEL SIGN OO
-17C5 ; [.2D44.0020.0002] # KHMER VOWEL SIGN AU
-17D2 ; [.2D45.0020.0002] # KHMER SIGN COENG
-1950 ; [.2D46.0020.0002] # TAI LE LETTER KA
-1951 ; [.2D47.0020.0002] # TAI LE LETTER XA
-1952 ; [.2D48.0020.0002] # TAI LE LETTER NGA
-1953 ; [.2D49.0020.0002] # TAI LE LETTER TSA
-1954 ; [.2D4A.0020.0002] # TAI LE LETTER SA
-1955 ; [.2D4B.0020.0002] # TAI LE LETTER YA
-1956 ; [.2D4C.0020.0002] # TAI LE LETTER TA
-1957 ; [.2D4D.0020.0002] # TAI LE LETTER THA
-1958 ; [.2D4E.0020.0002] # TAI LE LETTER LA
-1959 ; [.2D4F.0020.0002] # TAI LE LETTER PA
-195A ; [.2D50.0020.0002] # TAI LE LETTER PHA
-195B ; [.2D51.0020.0002] # TAI LE LETTER MA
-195C ; [.2D52.0020.0002] # TAI LE LETTER FA
-195D ; [.2D53.0020.0002] # TAI LE LETTER VA
-195E ; [.2D54.0020.0002] # TAI LE LETTER HA
-195F ; [.2D55.0020.0002] # TAI LE LETTER QA
-1960 ; [.2D56.0020.0002] # TAI LE LETTER KHA
-1961 ; [.2D57.0020.0002] # TAI LE LETTER TSHA
-1962 ; [.2D58.0020.0002] # TAI LE LETTER NA
-1963 ; [.2D59.0020.0002] # TAI LE LETTER A
-1964 ; [.2D5A.0020.0002] # TAI LE LETTER I
-1965 ; [.2D5B.0020.0002] # TAI LE LETTER EE
-1966 ; [.2D5C.0020.0002] # TAI LE LETTER EH
-1967 ; [.2D5D.0020.0002] # TAI LE LETTER U
-1968 ; [.2D5E.0020.0002] # TAI LE LETTER OO
-1969 ; [.2D5F.0020.0002] # TAI LE LETTER O
-196A ; [.2D60.0020.0002] # TAI LE LETTER UE
-196B ; [.2D61.0020.0002] # TAI LE LETTER E
-196C ; [.2D62.0020.0002] # TAI LE LETTER AUE
-196D ; [.2D63.0020.0002] # TAI LE LETTER AI
-1970 ; [.2D64.0020.0002] # TAI LE LETTER TONE-2
-1971 ; [.2D65.0020.0002] # TAI LE LETTER TONE-3
-1972 ; [.2D66.0020.0002] # TAI LE LETTER TONE-4
-1973 ; [.2D67.0020.0002] # TAI LE LETTER TONE-5
-1974 ; [.2D68.0020.0002] # TAI LE LETTER TONE-6
-1980 ; [.2D69.0020.0002] # NEW TAI LUE LETTER HIGH QA
-1981 ; [.2D6A.0020.0002] # NEW TAI LUE LETTER LOW QA
-1982 ; [.2D6B.0020.0002] # NEW TAI LUE LETTER HIGH KA
-1983 ; [.2D6C.0020.0002] # NEW TAI LUE LETTER HIGH XA
-1984 ; [.2D6D.0020.0002] # NEW TAI LUE LETTER HIGH NGA
-1985 ; [.2D6E.0020.0002] # NEW TAI LUE LETTER LOW KA
-1986 ; [.2D6F.0020.0002] # NEW TAI LUE LETTER LOW XA
-1987 ; [.2D70.0020.0002] # NEW TAI LUE LETTER LOW NGA
-1988 ; [.2D71.0020.0002] # NEW TAI LUE LETTER HIGH TSA
-1989 ; [.2D72.0020.0002] # NEW TAI LUE LETTER HIGH SA
-198A ; [.2D73.0020.0002] # NEW TAI LUE LETTER HIGH YA
-198B ; [.2D74.0020.0002] # NEW TAI LUE LETTER LOW TSA
-198C ; [.2D75.0020.0002] # NEW TAI LUE LETTER LOW SA
-198D ; [.2D76.0020.0002] # NEW TAI LUE LETTER LOW YA
-198E ; [.2D77.0020.0002] # NEW TAI LUE LETTER HIGH TA
-198F ; [.2D78.0020.0002] # NEW TAI LUE LETTER HIGH THA
-1990 ; [.2D79.0020.0002] # NEW TAI LUE LETTER HIGH NA
-1991 ; [.2D7A.0020.0002] # NEW TAI LUE LETTER LOW TA
-1992 ; [.2D7B.0020.0002] # NEW TAI LUE LETTER LOW THA
-1993 ; [.2D7C.0020.0002] # NEW TAI LUE LETTER LOW NA
-1994 ; [.2D7D.0020.0002] # NEW TAI LUE LETTER HIGH PA
-1995 ; [.2D7E.0020.0002] # NEW TAI LUE LETTER HIGH PHA
-1996 ; [.2D7F.0020.0002] # NEW TAI LUE LETTER HIGH MA
-1997 ; [.2D80.0020.0002] # NEW TAI LUE LETTER LOW PA
-1998 ; [.2D81.0020.0002] # NEW TAI LUE LETTER LOW PHA
-1999 ; [.2D82.0020.0002] # NEW TAI LUE LETTER LOW MA
-199A ; [.2D83.0020.0002] # NEW TAI LUE LETTER HIGH FA
-199B ; [.2D84.0020.0002] # NEW TAI LUE LETTER HIGH VA
-199C ; [.2D85.0020.0002] # NEW TAI LUE LETTER HIGH LA
-19DE ; [.2D85.0020.0004][.2D9B.0020.0004] # NEW TAI LUE SIGN LAE
-19DF ; [.2D85.0020.0004][.2D9B.0020.0004][.2DA6.0020.0004] # NEW TAI LUE SIGN LAEV
-199D ; [.2D86.0020.0002] # NEW TAI LUE LETTER LOW FA
-199E ; [.2D87.0020.0002] # NEW TAI LUE LETTER LOW VA
-199F ; [.2D88.0020.0002] # NEW TAI LUE LETTER LOW LA
-19A0 ; [.2D89.0020.0002] # NEW TAI LUE LETTER HIGH HA
-19A1 ; [.2D8A.0020.0002] # NEW TAI LUE LETTER HIGH DA
-19A2 ; [.2D8B.0020.0002] # NEW TAI LUE LETTER HIGH BA
-19A3 ; [.2D8C.0020.0002] # NEW TAI LUE LETTER LOW HA
-19A4 ; [.2D8D.0020.0002] # NEW TAI LUE LETTER LOW DA
-19A5 ; [.2D8E.0020.0002] # NEW TAI LUE LETTER LOW BA
-19A6 ; [.2D8F.0020.0002] # NEW TAI LUE LETTER HIGH KVA
-19A7 ; [.2D90.0020.0002] # NEW TAI LUE LETTER HIGH XVA
-19A8 ; [.2D91.0020.0002] # NEW TAI LUE LETTER LOW KVA
-19A9 ; [.2D92.0020.0002] # NEW TAI LUE LETTER LOW XVA
-19AA ; [.2D93.0020.0002] # NEW TAI LUE LETTER HIGH SUA
-19AB ; [.2D94.0020.0002] # NEW TAI LUE LETTER LOW SUA
-19B0 ; [.2D95.0020.0002] # NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
-19B1 ; [.2D96.0020.0002] # NEW TAI LUE VOWEL SIGN AA
-19B2 ; [.2D97.0020.0002] # NEW TAI LUE VOWEL SIGN II
-19B3 ; [.2D98.0020.0002] # NEW TAI LUE VOWEL SIGN U
-19B4 ; [.2D99.0020.0002] # NEW TAI LUE VOWEL SIGN UU
-19B5 ; [.2D9A.0020.0002] # NEW TAI LUE VOWEL SIGN E
-19B6 ; [.2D9B.0020.0002] # NEW TAI LUE VOWEL SIGN AE
-19B7 ; [.2D9C.0020.0002] # NEW TAI LUE VOWEL SIGN O
-19B8 ; [.2D9D.0020.0002] # NEW TAI LUE VOWEL SIGN OA
-19B9 ; [.2D9E.0020.0002] # NEW TAI LUE VOWEL SIGN UE
-19BA ; [.2D9F.0020.0002] # NEW TAI LUE VOWEL SIGN AY
-19BB ; [.2DA0.0020.0002] # NEW TAI LUE VOWEL SIGN AAY
-19BC ; [.2DA1.0020.0002] # NEW TAI LUE VOWEL SIGN UY
-19BD ; [.2DA2.0020.0002] # NEW TAI LUE VOWEL SIGN OY
-19BE ; [.2DA3.0020.0002] # NEW TAI LUE VOWEL SIGN OAY
-19BF ; [.2DA4.0020.0002] # NEW TAI LUE VOWEL SIGN UEY
-19C0 ; [.2DA5.0020.0002] # NEW TAI LUE VOWEL SIGN IY
-19C1 ; [.2DA6.0020.0002] # NEW TAI LUE LETTER FINAL V
-19C2 ; [.2DA7.0020.0002] # NEW TAI LUE LETTER FINAL NG
-19C3 ; [.2DA8.0020.0002] # NEW TAI LUE LETTER FINAL N
-19C4 ; [.2DA9.0020.0002] # NEW TAI LUE LETTER FINAL M
-19C5 ; [.2DAA.0020.0002] # NEW TAI LUE LETTER FINAL K
-19C6 ; [.2DAB.0020.0002] # NEW TAI LUE LETTER FINAL D
-19C7 ; [.2DAC.0020.0002] # NEW TAI LUE LETTER FINAL B
-19C8 ; [.2DAD.0020.0002] # NEW TAI LUE TONE MARK-1
-19C9 ; [.2DAE.0020.0002] # NEW TAI LUE TONE MARK-2
-1A20 ; [.2DAF.0020.0002] # TAI THAM LETTER HIGH KA
-1A21 ; [.2DB0.0020.0002] # TAI THAM LETTER HIGH KHA
-1A22 ; [.2DB1.0020.0002] # TAI THAM LETTER HIGH KXA
-1A23 ; [.2DB2.0020.0002] # TAI THAM LETTER LOW KA
-1A24 ; [.2DB3.0020.0002] # TAI THAM LETTER LOW KXA
-1A25 ; [.2DB4.0020.0002] # TAI THAM LETTER LOW KHA
-1A26 ; [.2DB5.0020.0002] # TAI THAM LETTER NGA
-1A58 ; [.2DB5.0020.0004] # TAI THAM SIGN MAI KANG LAI
-1A59 ; [.2DB5.0020.0004] # TAI THAM CONSONANT SIGN FINAL NGA
-1A27 ; [.2DB6.0020.0002] # TAI THAM LETTER HIGH CA
-1A28 ; [.2DB7.0020.0002] # TAI THAM LETTER HIGH CHA
-1A29 ; [.2DB8.0020.0002] # TAI THAM LETTER LOW CA
-1A2A ; [.2DB9.0020.0002] # TAI THAM LETTER LOW SA
-1A2B ; [.2DBA.0020.0002] # TAI THAM LETTER LOW CHA
-1A2C ; [.2DBB.0020.0002] # TAI THAM LETTER NYA
-1A2D ; [.2DBC.0020.0002] # TAI THAM LETTER RATA
-1A2E ; [.2DBD.0020.0002] # TAI THAM LETTER HIGH RATHA
-1A2F ; [.2DBE.0020.0002] # TAI THAM LETTER DA
-1A30 ; [.2DBF.0020.0002] # TAI THAM LETTER LOW RATHA
-1A31 ; [.2DC0.0020.0002] # TAI THAM LETTER RANA
-1A32 ; [.2DC1.0020.0002] # TAI THAM LETTER HIGH TA
-1A33 ; [.2DC2.0020.0002] # TAI THAM LETTER HIGH THA
-1A34 ; [.2DC3.0020.0002] # TAI THAM LETTER LOW TA
-1A35 ; [.2DC4.0020.0002] # TAI THAM LETTER LOW THA
-1A36 ; [.2DC5.0020.0002] # TAI THAM LETTER NA
-1A37 ; [.2DC6.0020.0002] # TAI THAM LETTER BA
-1A38 ; [.2DC7.0020.0002] # TAI THAM LETTER HIGH PA
-1A39 ; [.2DC8.0020.0002] # TAI THAM LETTER HIGH PHA
-1A3A ; [.2DC9.0020.0002] # TAI THAM LETTER HIGH FA
-1A3B ; [.2DCA.0020.0002] # TAI THAM LETTER LOW PA
-1A5A ; [.2DCA.0020.0004] # TAI THAM CONSONANT SIGN LOW PA
-1A5B ; [.2DCA.0020.0004] # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
-1A3C ; [.2DCB.0020.0002] # TAI THAM LETTER LOW FA
-1A3D ; [.2DCC.0020.0002] # TAI THAM LETTER LOW PHA
-1A3E ; [.2DCD.0020.0002] # TAI THAM LETTER MA
-1A3F ; [.2DCE.0020.0002] # TAI THAM LETTER LOW YA
-1A40 ; [.2DCF.0020.0002] # TAI THAM LETTER HIGH YA
-1A41 ; [.2DD0.0020.0002] # TAI THAM LETTER RA
-1A42 ; [.2DD1.0020.0002] # TAI THAM LETTER RUE
-1A43 ; [.2DD2.0020.0002] # TAI THAM LETTER LA
-1A44 ; [.2DD3.0020.0002] # TAI THAM LETTER LUE
-1A45 ; [.2DD4.0020.0002] # TAI THAM LETTER WA
-1A46 ; [.2DD5.0020.0002] # TAI THAM LETTER HIGH SHA
-1A54 ; [.2DD5.0020.0004][.2DFB.0020.0004][.2DD5.0020.0004] # TAI THAM LETTER GREAT SA
-1A47 ; [.2DD6.0020.0002] # TAI THAM LETTER HIGH SSA
-1A48 ; [.2DD7.0020.0002] # TAI THAM LETTER HIGH SA
-1A49 ; [.2DD8.0020.0002] # TAI THAM LETTER HIGH HA
-1A4A ; [.2DD9.0020.0002] # TAI THAM LETTER LLA
-1A4B ; [.2DDA.0020.0002] # TAI THAM LETTER A
-1A4C ; [.2DDB.0020.0002] # TAI THAM LETTER LOW HA
-1A53 ; [.2DDC.0020.0002] # TAI THAM LETTER LAE
-1A6B ; [.2DDD.0020.0002] # TAI THAM VOWEL SIGN O
-1A55 ; [.2DDE.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL RA
-1A56 ; [.2DDF.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL LA
-1A57 ; [.2DE0.0020.0002] # TAI THAM CONSONANT SIGN LA TANG LAI
-1A5C ; [.2DE1.0020.0002] # TAI THAM CONSONANT SIGN MA
-1A5D ; [.2DE2.0020.0002] # TAI THAM CONSONANT SIGN BA
-1A5E ; [.2DE3.0020.0002] # TAI THAM CONSONANT SIGN SA
-1A4D ; [.2DE4.0020.0002] # TAI THAM LETTER I
-1A4E ; [.2DE5.0020.0002] # TAI THAM LETTER II
-1A4F ; [.2DE6.0020.0002] # TAI THAM LETTER U
-1A50 ; [.2DE7.0020.0002] # TAI THAM LETTER UU
-1A51 ; [.2DE8.0020.0002] # TAI THAM LETTER EE
-1A52 ; [.2DE9.0020.0002] # TAI THAM LETTER OO
-1A61 ; [.2DEA.0020.0002] # TAI THAM VOWEL SIGN A
-1A6C ; [.2DEB.0020.0002] # TAI THAM VOWEL SIGN OA BELOW
-1A62 ; [.2DEC.0020.0002] # TAI THAM VOWEL SIGN MAI SAT
-1A63 ; [.2DED.0020.0002] # TAI THAM VOWEL SIGN AA
-1A64 ; [.2DED.0020.0004] # TAI THAM VOWEL SIGN TALL AA
-1A65 ; [.2DEE.0020.0002] # TAI THAM VOWEL SIGN I
-1A66 ; [.2DEF.0020.0002] # TAI THAM VOWEL SIGN II
-1A67 ; [.2DF0.0020.0002] # TAI THAM VOWEL SIGN UE
-1A68 ; [.2DF1.0020.0002] # TAI THAM VOWEL SIGN UUE
-1A69 ; [.2DF2.0020.0002] # TAI THAM VOWEL SIGN U
-1A6A ; [.2DF3.0020.0002] # TAI THAM VOWEL SIGN UU
-1A6E ; [.2DF4.0020.0002] # TAI THAM VOWEL SIGN E
-1A6F ; [.2DF5.0020.0002] # TAI THAM VOWEL SIGN AE
-1A73 ; [.2DF6.0020.0002] # TAI THAM VOWEL SIGN OA ABOVE
-1A70 ; [.2DF7.0020.0002] # TAI THAM VOWEL SIGN OO
-1A71 ; [.2DF8.0020.0002] # TAI THAM VOWEL SIGN AI
-1A72 ; [.2DF9.0020.0002] # TAI THAM VOWEL SIGN THAM AI
-1A6D ; [.2DFA.0020.0002] # TAI THAM VOWEL SIGN OY
-1A60 ; [.2DFB.0020.0002] # TAI THAM SIGN SAKOT
-AA00 ; [.2DFC.0020.0002] # CHAM LETTER A
-AA01 ; [.2DFD.0020.0002] # CHAM LETTER I
-AA02 ; [.2DFE.0020.0002] # CHAM LETTER U
-AA03 ; [.2DFF.0020.0002] # CHAM LETTER E
-AA04 ; [.2E00.0020.0002] # CHAM LETTER AI
-AA05 ; [.2E01.0020.0002] # CHAM LETTER O
-AA06 ; [.2E02.0020.0002] # CHAM LETTER KA
-AA07 ; [.2E03.0020.0002] # CHAM LETTER KHA
-AA08 ; [.2E04.0020.0002] # CHAM LETTER GA
-AA09 ; [.2E05.0020.0002] # CHAM LETTER GHA
-AA0A ; [.2E06.0020.0002] # CHAM LETTER NGUE
-AA0B ; [.2E07.0020.0002] # CHAM LETTER NGA
-AA0C ; [.2E08.0020.0002] # CHAM LETTER CHA
-AA0D ; [.2E09.0020.0002] # CHAM LETTER CHHA
-AA0E ; [.2E0A.0020.0002] # CHAM LETTER JA
-AA0F ; [.2E0B.0020.0002] # CHAM LETTER JHA
-AA10 ; [.2E0C.0020.0002] # CHAM LETTER NHUE
-AA11 ; [.2E0D.0020.0002] # CHAM LETTER NHA
-AA12 ; [.2E0E.0020.0002] # CHAM LETTER NHJA
-AA13 ; [.2E0F.0020.0002] # CHAM LETTER TA
-AA14 ; [.2E10.0020.0002] # CHAM LETTER THA
-AA15 ; [.2E11.0020.0002] # CHAM LETTER DA
-AA16 ; [.2E12.0020.0002] # CHAM LETTER DHA
-AA17 ; [.2E13.0020.0002] # CHAM LETTER NUE
-AA18 ; [.2E14.0020.0002] # CHAM LETTER NA
-AA19 ; [.2E15.0020.0002] # CHAM LETTER DDA
-AA1A ; [.2E16.0020.0002] # CHAM LETTER PA
-AA1B ; [.2E17.0020.0002] # CHAM LETTER PPA
-AA1C ; [.2E18.0020.0002] # CHAM LETTER PHA
-AA1D ; [.2E19.0020.0002] # CHAM LETTER BA
-AA1E ; [.2E1A.0020.0002] # CHAM LETTER BHA
-AA1F ; [.2E1B.0020.0002] # CHAM LETTER MUE
-AA20 ; [.2E1C.0020.0002] # CHAM LETTER MA
-AA21 ; [.2E1D.0020.0002] # CHAM LETTER BBA
-AA22 ; [.2E1E.0020.0002] # CHAM LETTER YA
-AA23 ; [.2E1F.0020.0002] # CHAM LETTER RA
-AA24 ; [.2E20.0020.0002] # CHAM LETTER LA
-AA25 ; [.2E21.0020.0002] # CHAM LETTER VA
-AA26 ; [.2E22.0020.0002] # CHAM LETTER SSA
-AA27 ; [.2E23.0020.0002] # CHAM LETTER SA
-AA28 ; [.2E24.0020.0002] # CHAM LETTER HA
-AA33 ; [.2E25.0020.0002] # CHAM CONSONANT SIGN YA
-AA34 ; [.2E26.0020.0002] # CHAM CONSONANT SIGN RA
-AA35 ; [.2E27.0020.0002] # CHAM CONSONANT SIGN LA
-AA36 ; [.2E28.0020.0002] # CHAM CONSONANT SIGN WA
-AA29 ; [.2E29.0020.0002] # CHAM VOWEL SIGN AA
-AA2A ; [.2E2A.0020.0002] # CHAM VOWEL SIGN I
-AA2B ; [.2E2B.0020.0002] # CHAM VOWEL SIGN II
-AA2C ; [.2E2C.0020.0002] # CHAM VOWEL SIGN EI
-AA2D ; [.2E2D.0020.0002] # CHAM VOWEL SIGN U
-AA2E ; [.2E2E.0020.0002] # CHAM VOWEL SIGN OE
-AA2F ; [.2E2F.0020.0002] # CHAM VOWEL SIGN O
-AA30 ; [.2E30.0020.0002] # CHAM VOWEL SIGN AI
-AA31 ; [.2E31.0020.0002] # CHAM VOWEL SIGN AU
-AA32 ; [.2E32.0020.0002] # CHAM VOWEL SIGN UE
-AA40 ; [.2E33.0020.0002] # CHAM LETTER FINAL K
-AA41 ; [.2E34.0020.0002] # CHAM LETTER FINAL G
-AA42 ; [.2E35.0020.0002] # CHAM LETTER FINAL NG
-AA43 ; [.2E36.0020.0002] # CHAM CONSONANT SIGN FINAL NG
-AA44 ; [.2E37.0020.0002] # CHAM LETTER FINAL CH
-AA45 ; [.2E38.0020.0002] # CHAM LETTER FINAL T
-AA46 ; [.2E39.0020.0002] # CHAM LETTER FINAL N
-AA47 ; [.2E3A.0020.0002] # CHAM LETTER FINAL P
-AA48 ; [.2E3B.0020.0002] # CHAM LETTER FINAL Y
-AA49 ; [.2E3C.0020.0002] # CHAM LETTER FINAL R
-AA4A ; [.2E3D.0020.0002] # CHAM LETTER FINAL L
-AA4B ; [.2E3E.0020.0002] # CHAM LETTER FINAL SS
-AA4C ; [.2E3F.0020.0002] # CHAM CONSONANT SIGN FINAL M
-AA4D ; [.2E40.0020.0002] # CHAM CONSONANT SIGN FINAL H
-1B05 ; [.2E41.0020.0002] # BALINESE LETTER AKARA
-1B06 ; [.2E42.0020.0002] # BALINESE LETTER AKARA TEDUNG
-1B05 1B35 ; [.2E42.0020.0002] # BALINESE LETTER AKARA TEDUNG
-1B07 ; [.2E43.0020.0002] # BALINESE LETTER IKARA
-1B08 ; [.2E44.0020.0002] # BALINESE LETTER IKARA TEDUNG
-1B07 1B35 ; [.2E44.0020.0002] # BALINESE LETTER IKARA TEDUNG
-1B09 ; [.2E45.0020.0002] # BALINESE LETTER UKARA
-1B0A ; [.2E46.0020.0002] # BALINESE LETTER UKARA TEDUNG
-1B09 1B35 ; [.2E46.0020.0002] # BALINESE LETTER UKARA TEDUNG
-1B0B ; [.2E47.0020.0002] # BALINESE LETTER RA REPA
-1B0C ; [.2E48.0020.0002] # BALINESE LETTER RA REPA TEDUNG
-1B0B 1B35 ; [.2E48.0020.0002] # BALINESE LETTER RA REPA TEDUNG
-1B0D ; [.2E49.0020.0002] # BALINESE LETTER LA LENGA
-1B0E ; [.2E4A.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
-1B0D 1B35 ; [.2E4A.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
-1B0F ; [.2E4B.0020.0002] # BALINESE LETTER EKARA
-1B10 ; [.2E4C.0020.0002] # BALINESE LETTER AIKARA
-1B11 ; [.2E4D.0020.0002] # BALINESE LETTER OKARA
-1B12 ; [.2E4E.0020.0002] # BALINESE LETTER OKARA TEDUNG
-1B11 1B35 ; [.2E4E.0020.0002] # BALINESE LETTER OKARA TEDUNG
-1B13 ; [.2E4F.0020.0002] # BALINESE LETTER KA
-1B45 ; [.2E50.0020.0002] # BALINESE LETTER KAF SASAK
-1B46 ; [.2E51.0020.0002] # BALINESE LETTER KHOT SASAK
-1B14 ; [.2E52.0020.0002] # BALINESE LETTER KA MAHAPRANA
-1B15 ; [.2E53.0020.0002] # BALINESE LETTER GA
-1B16 ; [.2E54.0020.0002] # BALINESE LETTER GA GORA
-1B17 ; [.2E55.0020.0002] # BALINESE LETTER NGA
-1B18 ; [.2E56.0020.0002] # BALINESE LETTER CA
-1B19 ; [.2E57.0020.0002] # BALINESE LETTER CA LACA
-1B1A ; [.2E58.0020.0002] # BALINESE LETTER JA
-1B1B ; [.2E59.0020.0002] # BALINESE LETTER JA JERA
-1B1C ; [.2E5A.0020.0002] # BALINESE LETTER NYA
-1B1D ; [.2E5B.0020.0002] # BALINESE LETTER TA LATIK
-1B1E ; [.2E5C.0020.0002] # BALINESE LETTER TA MURDA MAHAPRANA
-1B1F ; [.2E5D.0020.0002] # BALINESE LETTER DA MURDA ALPAPRANA
-1B20 ; [.2E5E.0020.0002] # BALINESE LETTER DA MURDA MAHAPRANA
-1B21 ; [.2E5F.0020.0002] # BALINESE LETTER NA RAMBAT
-1B22 ; [.2E60.0020.0002] # BALINESE LETTER TA
-1B47 ; [.2E61.0020.0002] # BALINESE LETTER TZIR SASAK
-1B23 ; [.2E62.0020.0002] # BALINESE LETTER TA TAWA
-1B24 ; [.2E63.0020.0002] # BALINESE LETTER DA
-1B25 ; [.2E64.0020.0002] # BALINESE LETTER DA MADU
-1B26 ; [.2E65.0020.0002] # BALINESE LETTER NA
-1B27 ; [.2E66.0020.0002] # BALINESE LETTER PA
-1B48 ; [.2E67.0020.0002] # BALINESE LETTER EF SASAK
-1B28 ; [.2E68.0020.0002] # BALINESE LETTER PA KAPAL
-1B29 ; [.2E69.0020.0002] # BALINESE LETTER BA
-1B2A ; [.2E6A.0020.0002] # BALINESE LETTER BA KEMBANG
-1B2B ; [.2E6B.0020.0002] # BALINESE LETTER MA
-1B2C ; [.2E6C.0020.0002] # BALINESE LETTER YA
-1B2D ; [.2E6D.0020.0002] # BALINESE LETTER RA
-1B2E ; [.2E6E.0020.0002] # BALINESE LETTER LA
-1B2F ; [.2E6F.0020.0002] # BALINESE LETTER WA
-1B49 ; [.2E70.0020.0002] # BALINESE LETTER VE SASAK
-1B30 ; [.2E71.0020.0002] # BALINESE LETTER SA SAGA
-1B31 ; [.2E72.0020.0002] # BALINESE LETTER SA SAPA
-1B32 ; [.2E73.0020.0002] # BALINESE LETTER SA
-1B4A ; [.2E74.0020.0002] # BALINESE LETTER ZAL SASAK
-1B4B ; [.2E75.0020.0002] # BALINESE LETTER ASYURA SASAK
-1B33 ; [.2E76.0020.0002] # BALINESE LETTER HA
-1B35 ; [.2E77.0020.0002] # BALINESE VOWEL SIGN TEDUNG
-1B36 ; [.2E78.0020.0002] # BALINESE VOWEL SIGN ULU
-1B37 ; [.2E79.0020.0002] # BALINESE VOWEL SIGN ULU SARI
-1B38 ; [.2E7A.0020.0002] # BALINESE VOWEL SIGN SUKU
-1B39 ; [.2E7B.0020.0002] # BALINESE VOWEL SIGN SUKU ILUT
-1B3A ; [.2E7C.0020.0002] # BALINESE VOWEL SIGN RA REPA
-1B3B ; [.2E7D.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3A 1B35 ; [.2E7D.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3C ; [.2E7E.0020.0002] # BALINESE VOWEL SIGN LA LENGA
-1B3D ; [.2E7F.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3C 1B35 ; [.2E7F.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3E ; [.2E80.0020.0002] # BALINESE VOWEL SIGN TALING
-1B3F ; [.2E81.0020.0002] # BALINESE VOWEL SIGN TALING REPA
-1B40 ; [.2E82.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
-1B3E 1B35 ; [.2E82.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
-1B41 ; [.2E83.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B3F 1B35 ; [.2E83.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B42 ; [.2E84.0020.0002] # BALINESE VOWEL SIGN PEPET
-1B43 ; [.2E85.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
-1B42 1B35 ; [.2E85.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
-1B44 ; [.2E86.0020.0002] # BALINESE ADEG ADEG
-A984 ; [.2E87.0020.0002] # JAVANESE LETTER A
-A985 ; [.2E88.0020.0002] # JAVANESE LETTER I KAWI
-A986 ; [.2E89.0020.0002] # JAVANESE LETTER I
-A987 ; [.2E8A.0020.0002] # JAVANESE LETTER II
-A988 ; [.2E8B.0020.0002] # JAVANESE LETTER U
-A989 ; [.2E8C.0020.0002] # JAVANESE LETTER PA CEREK
-A98A ; [.2E8D.0020.0002] # JAVANESE LETTER NGA LELET
-A98B ; [.2E8E.0020.0002] # JAVANESE LETTER NGA LELET RASWADI
-A98C ; [.2E8F.0020.0002] # JAVANESE LETTER E
-A98D ; [.2E90.0020.0002] # JAVANESE LETTER AI
-A98E ; [.2E91.0020.0002] # JAVANESE LETTER O
-A98F ; [.2E92.0020.0002] # JAVANESE LETTER KA
-A990 ; [.2E93.0020.0002] # JAVANESE LETTER KA SASAK
-A991 ; [.2E94.0020.0002] # JAVANESE LETTER KA MURDA
-A992 ; [.2E95.0020.0002] # JAVANESE LETTER GA
-A993 ; [.2E96.0020.0002] # JAVANESE LETTER GA MURDA
-A994 ; [.2E97.0020.0002] # JAVANESE LETTER NGA
-A995 ; [.2E98.0020.0002] # JAVANESE LETTER CA
-A996 ; [.2E99.0020.0002] # JAVANESE LETTER CA MURDA
-A997 ; [.2E9A.0020.0002] # JAVANESE LETTER JA
-A998 ; [.2E9B.0020.0002] # JAVANESE LETTER NYA MURDA
-A999 ; [.2E9C.0020.0002] # JAVANESE LETTER JA MAHAPRANA
-A99A ; [.2E9D.0020.0002] # JAVANESE LETTER NYA
-A99B ; [.2E9E.0020.0002] # JAVANESE LETTER TTA
-A99C ; [.2E9F.0020.0002] # JAVANESE LETTER TTA MAHAPRANA
-A99D ; [.2EA0.0020.0002] # JAVANESE LETTER DDA
-A99E ; [.2EA1.0020.0002] # JAVANESE LETTER DDA MAHAPRANA
-A99F ; [.2EA2.0020.0002] # JAVANESE LETTER NA MURDA
-A9A0 ; [.2EA3.0020.0002] # JAVANESE LETTER TA
-A9A1 ; [.2EA4.0020.0002] # JAVANESE LETTER TA MURDA
-A9A2 ; [.2EA5.0020.0002] # JAVANESE LETTER DA
-A9A3 ; [.2EA6.0020.0002] # JAVANESE LETTER DA MAHAPRANA
-A9A4 ; [.2EA7.0020.0002] # JAVANESE LETTER NA
-A9A5 ; [.2EA8.0020.0002] # JAVANESE LETTER PA
-A9A6 ; [.2EA9.0020.0002] # JAVANESE LETTER PA MURDA
-A9A7 ; [.2EAA.0020.0002] # JAVANESE LETTER BA
-A9A8 ; [.2EAB.0020.0002] # JAVANESE LETTER BA MURDA
-A9A9 ; [.2EAC.0020.0002] # JAVANESE LETTER MA
-A9AA ; [.2EAD.0020.0002] # JAVANESE LETTER YA
-A9BE ; [.2EAE.0020.0002] # JAVANESE CONSONANT SIGN PENGKAL
-A9AB ; [.2EAF.0020.0002] # JAVANESE LETTER RA
-A9AC ; [.2EAF.0020.0004] # JAVANESE LETTER RA AGUNG
-A9BF ; [.2EB0.0020.0002] # JAVANESE CONSONANT SIGN CAKRA
-A9AD ; [.2EB1.0020.0002] # JAVANESE LETTER LA
-A9AE ; [.2EB2.0020.0002] # JAVANESE LETTER WA
-A9AF ; [.2EB3.0020.0002] # JAVANESE LETTER SA MURDA
-A9B0 ; [.2EB4.0020.0002] # JAVANESE LETTER SA MAHAPRANA
-A9B1 ; [.2EB5.0020.0002] # JAVANESE LETTER SA
-A9B2 ; [.2EB6.0020.0002] # JAVANESE LETTER HA
-A9B4 ; [.2EB7.0020.0002] # JAVANESE VOWEL SIGN TARUNG
-A9BC ; [.2EB8.0020.0002] # JAVANESE VOWEL SIGN PEPET
-A9B6 ; [.2EB9.0020.0002] # JAVANESE VOWEL SIGN WULU
-A9B7 ; [.2EBA.0020.0002] # JAVANESE VOWEL SIGN WULU MELIK
-A9B8 ; [.2EBB.0020.0002] # JAVANESE VOWEL SIGN SUKU
-A9B9 ; [.2EBC.0020.0002] # JAVANESE VOWEL SIGN SUKU MENDUT
-A9BD ; [.2EBD.0020.0002] # JAVANESE CONSONANT SIGN KERET
-A9BA ; [.2EBE.0020.0002] # JAVANESE VOWEL SIGN TALING
-A9BB ; [.2EBF.0020.0002] # JAVANESE VOWEL SIGN DIRGA MURE
-A9B5 ; [.2EC0.0020.0002] # JAVANESE VOWEL SIGN TOLONG
-A9C0 ; [.2EC1.0020.0002] # JAVANESE PANGKON
-1880 ; [.2EC2.0020.0002] # MONGOLIAN LETTER ALI GALI ANUSVARA ONE
-1881 ; [.2EC3.0020.0002] # MONGOLIAN LETTER ALI GALI VISARGA ONE
-1882 ; [.2EC4.0020.0002] # MONGOLIAN LETTER ALI GALI DAMARU
-1883 ; [.2EC5.0020.0002] # MONGOLIAN LETTER ALI GALI UBADAMA
-1884 ; [.2EC6.0020.0002] # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
-1885 ; [.2EC7.0020.0002] # MONGOLIAN LETTER ALI GALI BALUDA
-1886 ; [.2EC8.0020.0002] # MONGOLIAN LETTER ALI GALI THREE BALUDA
-1843 ; [.2EC9.0020.0002] # MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1820 ; [.2ECA.0020.0002] # MONGOLIAN LETTER A
-1887 ; [.2ECB.0020.0002] # MONGOLIAN LETTER ALI GALI A
-1821 ; [.2ECC.0020.0002] # MONGOLIAN LETTER E
-1844 ; [.2ECD.0020.0002] # MONGOLIAN LETTER TODO E
-185D ; [.2ECE.0020.0002] # MONGOLIAN LETTER SIBE E
-1822 ; [.2ECF.0020.0002] # MONGOLIAN LETTER I
-1845 ; [.2ED0.0020.0002] # MONGOLIAN LETTER TODO I
-185E ; [.2ED1.0020.0002] # MONGOLIAN LETTER SIBE I
-1873 ; [.2ED2.0020.0002] # MONGOLIAN LETTER MANCHU I
-1888 ; [.2ED3.0020.0002] # MONGOLIAN LETTER ALI GALI I
-185F ; [.2ED4.0020.0002] # MONGOLIAN LETTER SIBE IY
-1823 ; [.2ED5.0020.0002] # MONGOLIAN LETTER O
-1846 ; [.2ED6.0020.0002] # MONGOLIAN LETTER TODO O
-1824 ; [.2ED7.0020.0002] # MONGOLIAN LETTER U
-1847 ; [.2ED8.0020.0002] # MONGOLIAN LETTER TODO U
-1861 ; [.2ED9.0020.0002] # MONGOLIAN LETTER SIBE U
-1825 ; [.2EDA.0020.0002] # MONGOLIAN LETTER OE
-1848 ; [.2EDB.0020.0002] # MONGOLIAN LETTER TODO OE
-1826 ; [.2EDC.0020.0002] # MONGOLIAN LETTER UE
-1849 ; [.2EDD.0020.0002] # MONGOLIAN LETTER TODO UE
-1860 ; [.2EDE.0020.0002] # MONGOLIAN LETTER SIBE UE
-1827 ; [.2EDF.0020.0002] # MONGOLIAN LETTER EE
-1828 ; [.2EE0.0020.0002] # MONGOLIAN LETTER NA
-1829 ; [.2EE1.0020.0002] # MONGOLIAN LETTER ANG
-184A ; [.2EE2.0020.0002] # MONGOLIAN LETTER TODO ANG
-1862 ; [.2EE3.0020.0002] # MONGOLIAN LETTER SIBE ANG
-188A ; [.2EE4.0020.0002] # MONGOLIAN LETTER ALI GALI NGA
-189B ; [.2EE5.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI NGA
-182A ; [.2EE6.0020.0002] # MONGOLIAN LETTER BA
-184B ; [.2EE7.0020.0002] # MONGOLIAN LETTER TODO BA
-182B ; [.2EE8.0020.0002] # MONGOLIAN LETTER PA
-184C ; [.2EE9.0020.0002] # MONGOLIAN LETTER TODO PA
-1866 ; [.2EEA.0020.0002] # MONGOLIAN LETTER SIBE PA
-182C ; [.2EEB.0020.0002] # MONGOLIAN LETTER QA
-184D ; [.2EEC.0020.0002] # MONGOLIAN LETTER TODO QA
-182D ; [.2EED.0020.0002] # MONGOLIAN LETTER GA
-184E ; [.2EEE.0020.0002] # MONGOLIAN LETTER TODO GA
-1864 ; [.2EEF.0020.0002] # MONGOLIAN LETTER SIBE GA
-189A ; [.2EF0.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI GHA
-1865 ; [.2EF1.0020.0002] # MONGOLIAN LETTER SIBE HA
-182E ; [.2EF2.0020.0002] # MONGOLIAN LETTER MA
-184F ; [.2EF3.0020.0002] # MONGOLIAN LETTER TODO MA
-182F ; [.2EF4.0020.0002] # MONGOLIAN LETTER LA
-1830 ; [.2EF5.0020.0002] # MONGOLIAN LETTER SA
-1831 ; [.2EF6.0020.0002] # MONGOLIAN LETTER SHA
-1867 ; [.2EF7.0020.0002] # MONGOLIAN LETTER SIBE SHA
-189C ; [.2EF8.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CA
-189D ; [.2EF9.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI JHA
-18A2 ; [.2EFA.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI SSA
-18A4 ; [.2EFB.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZHA
-18A5 ; [.2EFC.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZA
-1832 ; [.2EFD.0020.0002] # MONGOLIAN LETTER TA
-1850 ; [.2EFE.0020.0002] # MONGOLIAN LETTER TODO TA
-1868 ; [.2EFF.0020.0002] # MONGOLIAN LETTER SIBE TA
-1833 ; [.2F00.0020.0002] # MONGOLIAN LETTER DA
-1851 ; [.2F01.0020.0002] # MONGOLIAN LETTER TODO DA
-1869 ; [.2F02.0020.0002] # MONGOLIAN LETTER SIBE DA
-1834 ; [.2F03.0020.0002] # MONGOLIAN LETTER CHA
-1852 ; [.2F04.0020.0002] # MONGOLIAN LETTER TODO CHA
-1871 ; [.2F05.0020.0002] # MONGOLIAN LETTER SIBE CHA
-185C ; [.2F06.0020.0002] # MONGOLIAN LETTER TODO DZA
-188B ; [.2F07.0020.0002] # MONGOLIAN LETTER ALI GALI CA
-1835 ; [.2F08.0020.0002] # MONGOLIAN LETTER JA
-1853 ; [.2F09.0020.0002] # MONGOLIAN LETTER TODO JA
-186A ; [.2F0A.0020.0002] # MONGOLIAN LETTER SIBE JA
-1877 ; [.2F0B.0020.0002] # MONGOLIAN LETTER MANCHU ZHA
-1836 ; [.2F0C.0020.0002] # MONGOLIAN LETTER YA
-1855 ; [.2F0D.0020.0002] # MONGOLIAN LETTER TODO YA
-1872 ; [.2F0E.0020.0002] # MONGOLIAN LETTER SIBE ZHA
-1837 ; [.2F0F.0020.0002] # MONGOLIAN LETTER RA
-1875 ; [.2F10.0020.0002] # MONGOLIAN LETTER MANCHU RA
-1838 ; [.2F11.0020.0002] # MONGOLIAN LETTER WA
-1856 ; [.2F12.0020.0002] # MONGOLIAN LETTER TODO WA
-1839 ; [.2F13.0020.0002] # MONGOLIAN LETTER FA
-186B ; [.2F14.0020.0002] # MONGOLIAN LETTER SIBE FA
-1876 ; [.2F15.0020.0002] # MONGOLIAN LETTER MANCHU FA
-183A ; [.2F16.0020.0002] # MONGOLIAN LETTER KA
-1857 ; [.2F17.0020.0002] # MONGOLIAN LETTER TODO KA
-1863 ; [.2F18.0020.0002] # MONGOLIAN LETTER SIBE KA
-1874 ; [.2F19.0020.0002] # MONGOLIAN LETTER MANCHU KA
-1889 ; [.2F1A.0020.0002] # MONGOLIAN LETTER ALI GALI KA
-183B ; [.2F1B.0020.0002] # MONGOLIAN LETTER KHA
-183C ; [.2F1C.0020.0002] # MONGOLIAN LETTER TSA
-1854 ; [.2F1D.0020.0002] # MONGOLIAN LETTER TODO TSA
-186E ; [.2F1E.0020.0002] # MONGOLIAN LETTER SIBE TSA
-183D ; [.2F1F.0020.0002] # MONGOLIAN LETTER ZA
-186F ; [.2F20.0020.0002] # MONGOLIAN LETTER SIBE ZA
-1858 ; [.2F21.0020.0002] # MONGOLIAN LETTER TODO GAA
-186C ; [.2F22.0020.0002] # MONGOLIAN LETTER SIBE GAA
-183E ; [.2F23.0020.0002] # MONGOLIAN LETTER HAA
-1859 ; [.2F24.0020.0002] # MONGOLIAN LETTER TODO HAA
-186D ; [.2F25.0020.0002] # MONGOLIAN LETTER SIBE HAA
-183F ; [.2F26.0020.0002] # MONGOLIAN LETTER ZRA
-1840 ; [.2F27.0020.0002] # MONGOLIAN LETTER LHA
-1841 ; [.2F28.0020.0002] # MONGOLIAN LETTER ZHI
-1842 ; [.2F29.0020.0002] # MONGOLIAN LETTER CHI
-185A ; [.2F2A.0020.0002] # MONGOLIAN LETTER TODO JIA
-185B ; [.2F2B.0020.0002] # MONGOLIAN LETTER TODO NIA
-1870 ; [.2F2C.0020.0002] # MONGOLIAN LETTER SIBE RAA
-188C ; [.2F2D.0020.0002] # MONGOLIAN LETTER ALI GALI TTA
-189E ; [.2F2E.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TTA
-188D ; [.2F2F.0020.0002] # MONGOLIAN LETTER ALI GALI TTHA
-188E ; [.2F30.0020.0002] # MONGOLIAN LETTER ALI GALI DDA
-189F ; [.2F31.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DDHA
-188F ; [.2F32.0020.0002] # MONGOLIAN LETTER ALI GALI NNA
-1890 ; [.2F33.0020.0002] # MONGOLIAN LETTER ALI GALI TA
-1898 ; [.2F34.0020.0002] # MONGOLIAN LETTER TODO ALI GALI TA
-18A0 ; [.2F35.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TA
-1891 ; [.2F36.0020.0002] # MONGOLIAN LETTER ALI GALI DA
-18A1 ; [.2F37.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DHA
-1892 ; [.2F38.0020.0002] # MONGOLIAN LETTER ALI GALI PA
-1893 ; [.2F39.0020.0002] # MONGOLIAN LETTER ALI GALI PHA
-18A8 ; [.2F3A.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI BHA
-1894 ; [.2F3B.0020.0002] # MONGOLIAN LETTER ALI GALI SSA
-18A3 ; [.2F3C.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CYA
-1895 ; [.2F3D.0020.0002] # MONGOLIAN LETTER ALI GALI ZHA
-1899 ; [.2F3E.0020.0002] # MONGOLIAN LETTER TODO ALI GALI ZHA
-1896 ; [.2F3F.0020.0002] # MONGOLIAN LETTER ALI GALI ZA
-1897 ; [.2F40.0020.0002] # MONGOLIAN LETTER ALI GALI AH
-18A6 ; [.2F41.0020.0002] # MONGOLIAN LETTER ALI GALI HALF U
-18A7 ; [.2F42.0020.0002] # MONGOLIAN LETTER ALI GALI HALF YA
-18AA ; [.2F43.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI LHA
-18A9 ; [.2F44.0020.0002] # MONGOLIAN LETTER ALI GALI DAGALGA
-1C5A ; [.2F45.0020.0002] # OL CHIKI LETTER LA
-1C5B ; [.2F46.0020.0002] # OL CHIKI LETTER AT
-1C5C ; [.2F47.0020.0002] # OL CHIKI LETTER AG
-1C5D ; [.2F48.0020.0002] # OL CHIKI LETTER ANG
-1C5E ; [.2F49.0020.0002] # OL CHIKI LETTER AL
-1C5F ; [.2F4A.0020.0002] # OL CHIKI LETTER LAA
-1C60 ; [.2F4B.0020.0002] # OL CHIKI LETTER AAK
-1C61 ; [.2F4C.0020.0002] # OL CHIKI LETTER AAJ
-1C62 ; [.2F4D.0020.0002] # OL CHIKI LETTER AAM
-1C63 ; [.2F4E.0020.0002] # OL CHIKI LETTER AAW
-1C64 ; [.2F4F.0020.0002] # OL CHIKI LETTER LI
-1C65 ; [.2F50.0020.0002] # OL CHIKI LETTER IS
-1C66 ; [.2F51.0020.0002] # OL CHIKI LETTER IH
-1C67 ; [.2F52.0020.0002] # OL CHIKI LETTER INY
-1C68 ; [.2F53.0020.0002] # OL CHIKI LETTER IR
-1C69 ; [.2F54.0020.0002] # OL CHIKI LETTER LU
-1C6A ; [.2F55.0020.0002] # OL CHIKI LETTER UC
-1C6B ; [.2F56.0020.0002] # OL CHIKI LETTER UD
-1C6C ; [.2F57.0020.0002] # OL CHIKI LETTER UNN
-1C6D ; [.2F58.0020.0002] # OL CHIKI LETTER UY
-1C6E ; [.2F59.0020.0002] # OL CHIKI LETTER LE
-1C6F ; [.2F5A.0020.0002] # OL CHIKI LETTER EP
-1C70 ; [.2F5B.0020.0002] # OL CHIKI LETTER EDD
-1C71 ; [.2F5C.0020.0002] # OL CHIKI LETTER EN
-1C72 ; [.2F5D.0020.0002] # OL CHIKI LETTER ERR
-1C73 ; [.2F5E.0020.0002] # OL CHIKI LETTER LO
-1C74 ; [.2F5F.0020.0002] # OL CHIKI LETTER OTT
-1C75 ; [.2F60.0020.0002] # OL CHIKI LETTER OB
-1C76 ; [.2F61.0020.0002] # OL CHIKI LETTER OV
-1C77 ; [.2F62.0020.0002] # OL CHIKI LETTER OH
-1C78 ; [.2F63.0020.0002] # OL CHIKI MU TTUDDAG
-1C79 ; [.2F64.0020.0002] # OL CHIKI GAAHLAA TTUDDAAG
-1C7A ; [.2F65.0020.0002] # OL CHIKI MU-GAAHLAA TTUDDAAG
-1C7B ; [.2F66.0020.0002] # OL CHIKI RELAA
-1C7C ; [.2F67.0020.0002] # OL CHIKI PHAARKAA
-1C7D ; [.2F68.0020.0002] # OL CHIKI AHAD
-13A0 ; [.2F69.0020.0002] # CHEROKEE LETTER A
-13A1 ; [.2F6A.0020.0002] # CHEROKEE LETTER E
-13A2 ; [.2F6B.0020.0002] # CHEROKEE LETTER I
-13A3 ; [.2F6C.0020.0002] # CHEROKEE LETTER O
-13A4 ; [.2F6D.0020.0002] # CHEROKEE LETTER U
-13A5 ; [.2F6E.0020.0002] # CHEROKEE LETTER V
-13A6 ; [.2F6F.0020.0002] # CHEROKEE LETTER GA
-13A7 ; [.2F70.0020.0002] # CHEROKEE LETTER KA
-13A8 ; [.2F71.0020.0002] # CHEROKEE LETTER GE
-13A9 ; [.2F72.0020.0002] # CHEROKEE LETTER GI
-13AA ; [.2F73.0020.0002] # CHEROKEE LETTER GO
-13AB ; [.2F74.0020.0002] # CHEROKEE LETTER GU
-13AC ; [.2F75.0020.0002] # CHEROKEE LETTER GV
-13AD ; [.2F76.0020.0002] # CHEROKEE LETTER HA
-13AE ; [.2F77.0020.0002] # CHEROKEE LETTER HE
-13AF ; [.2F78.0020.0002] # CHEROKEE LETTER HI
-13B0 ; [.2F79.0020.0002] # CHEROKEE LETTER HO
-13B1 ; [.2F7A.0020.0002] # CHEROKEE LETTER HU
-13B2 ; [.2F7B.0020.0002] # CHEROKEE LETTER HV
-13B3 ; [.2F7C.0020.0002] # CHEROKEE LETTER LA
-13B4 ; [.2F7D.0020.0002] # CHEROKEE LETTER LE
-13B5 ; [.2F7E.0020.0002] # CHEROKEE LETTER LI
-13B6 ; [.2F7F.0020.0002] # CHEROKEE LETTER LO
-13B7 ; [.2F80.0020.0002] # CHEROKEE LETTER LU
-13B8 ; [.2F81.0020.0002] # CHEROKEE LETTER LV
-13B9 ; [.2F82.0020.0002] # CHEROKEE LETTER MA
-13BA ; [.2F83.0020.0002] # CHEROKEE LETTER ME
-13BB ; [.2F84.0020.0002] # CHEROKEE LETTER MI
-13BC ; [.2F85.0020.0002] # CHEROKEE LETTER MO
-13BD ; [.2F86.0020.0002] # CHEROKEE LETTER MU
-13BE ; [.2F87.0020.0002] # CHEROKEE LETTER NA
-13BF ; [.2F88.0020.0002] # CHEROKEE LETTER HNA
-13C0 ; [.2F89.0020.0002] # CHEROKEE LETTER NAH
-13C1 ; [.2F8A.0020.0002] # CHEROKEE LETTER NE
-13C2 ; [.2F8B.0020.0002] # CHEROKEE LETTER NI
-13C3 ; [.2F8C.0020.0002] # CHEROKEE LETTER NO
-13C4 ; [.2F8D.0020.0002] # CHEROKEE LETTER NU
-13C5 ; [.2F8E.0020.0002] # CHEROKEE LETTER NV
-13C6 ; [.2F8F.0020.0002] # CHEROKEE LETTER QUA
-13C7 ; [.2F90.0020.0002] # CHEROKEE LETTER QUE
-13C8 ; [.2F91.0020.0002] # CHEROKEE LETTER QUI
-13C9 ; [.2F92.0020.0002] # CHEROKEE LETTER QUO
-13CA ; [.2F93.0020.0002] # CHEROKEE LETTER QUU
-13CB ; [.2F94.0020.0002] # CHEROKEE LETTER QUV
-13CC ; [.2F95.0020.0002] # CHEROKEE LETTER SA
-13CD ; [.2F96.0020.0002] # CHEROKEE LETTER S
-13CE ; [.2F97.0020.0002] # CHEROKEE LETTER SE
-13CF ; [.2F98.0020.0002] # CHEROKEE LETTER SI
-13D0 ; [.2F99.0020.0002] # CHEROKEE LETTER SO
-13D1 ; [.2F9A.0020.0002] # CHEROKEE LETTER SU
-13D2 ; [.2F9B.0020.0002] # CHEROKEE LETTER SV
-13D3 ; [.2F9C.0020.0002] # CHEROKEE LETTER DA
-13D4 ; [.2F9D.0020.0002] # CHEROKEE LETTER TA
-13D5 ; [.2F9E.0020.0002] # CHEROKEE LETTER DE
-13D6 ; [.2F9F.0020.0002] # CHEROKEE LETTER TE
-13D7 ; [.2FA0.0020.0002] # CHEROKEE LETTER DI
-13D8 ; [.2FA1.0020.0002] # CHEROKEE LETTER TI
-13D9 ; [.2FA2.0020.0002] # CHEROKEE LETTER DO
-13DA ; [.2FA3.0020.0002] # CHEROKEE LETTER DU
-13DB ; [.2FA4.0020.0002] # CHEROKEE LETTER DV
-13DC ; [.2FA5.0020.0002] # CHEROKEE LETTER DLA
-13DD ; [.2FA6.0020.0002] # CHEROKEE LETTER TLA
-13DE ; [.2FA7.0020.0002] # CHEROKEE LETTER TLE
-13DF ; [.2FA8.0020.0002] # CHEROKEE LETTER TLI
-13E0 ; [.2FA9.0020.0002] # CHEROKEE LETTER TLO
-13E1 ; [.2FAA.0020.0002] # CHEROKEE LETTER TLU
-13E2 ; [.2FAB.0020.0002] # CHEROKEE LETTER TLV
-13E3 ; [.2FAC.0020.0002] # CHEROKEE LETTER TSA
-13E4 ; [.2FAD.0020.0002] # CHEROKEE LETTER TSE
-13E5 ; [.2FAE.0020.0002] # CHEROKEE LETTER TSI
-13E6 ; [.2FAF.0020.0002] # CHEROKEE LETTER TSO
-13E7 ; [.2FB0.0020.0002] # CHEROKEE LETTER TSU
-13E8 ; [.2FB1.0020.0002] # CHEROKEE LETTER TSV
-13E9 ; [.2FB2.0020.0002] # CHEROKEE LETTER WA
-13EA ; [.2FB3.0020.0002] # CHEROKEE LETTER WE
-13EB ; [.2FB4.0020.0002] # CHEROKEE LETTER WI
-13EC ; [.2FB5.0020.0002] # CHEROKEE LETTER WO
-13ED ; [.2FB6.0020.0002] # CHEROKEE LETTER WU
-13EE ; [.2FB7.0020.0002] # CHEROKEE LETTER WV
-13EF ; [.2FB8.0020.0002] # CHEROKEE LETTER YA
-13F0 ; [.2FB9.0020.0002] # CHEROKEE LETTER YE
-13F1 ; [.2FBA.0020.0002] # CHEROKEE LETTER YI
-13F2 ; [.2FBB.0020.0002] # CHEROKEE LETTER YO
-13F3 ; [.2FBC.0020.0002] # CHEROKEE LETTER YU
-13F4 ; [.2FBD.0020.0002] # CHEROKEE LETTER YV
-1401 ; [.2FBE.0020.0002] # CANADIAN SYLLABICS E
-1402 ; [.2FBF.0020.0002] # CANADIAN SYLLABICS AAI
-1403 ; [.2FC0.0020.0002] # CANADIAN SYLLABICS I
-1404 ; [.2FC1.0020.0002] # CANADIAN SYLLABICS II
-1405 ; [.2FC2.0020.0002] # CANADIAN SYLLABICS O
-1406 ; [.2FC3.0020.0002] # CANADIAN SYLLABICS OO
-1407 ; [.2FC4.0020.0002] # CANADIAN SYLLABICS Y-CREE OO
-1408 ; [.2FC5.0020.0002] # CANADIAN SYLLABICS CARRIER EE
-1409 ; [.2FC6.0020.0002] # CANADIAN SYLLABICS CARRIER I
-140A ; [.2FC7.0020.0002] # CANADIAN SYLLABICS A
-140B ; [.2FC8.0020.0002] # CANADIAN SYLLABICS AA
-140C ; [.2FC9.0020.0002] # CANADIAN SYLLABICS WE
-140D ; [.2FCA.0020.0002] # CANADIAN SYLLABICS WEST-CREE WE
-140E ; [.2FCB.0020.0002] # CANADIAN SYLLABICS WI
-140F ; [.2FCC.0020.0002] # CANADIAN SYLLABICS WEST-CREE WI
-1410 ; [.2FCD.0020.0002] # CANADIAN SYLLABICS WII
-1411 ; [.2FCE.0020.0002] # CANADIAN SYLLABICS WEST-CREE WII
-1412 ; [.2FCF.0020.0002] # CANADIAN SYLLABICS WO
-1413 ; [.2FD0.0020.0002] # CANADIAN SYLLABICS WEST-CREE WO
-1414 ; [.2FD1.0020.0002] # CANADIAN SYLLABICS WOO
-1415 ; [.2FD2.0020.0002] # CANADIAN SYLLABICS WEST-CREE WOO
-1416 ; [.2FD3.0020.0002] # CANADIAN SYLLABICS NASKAPI WOO
-1417 ; [.2FD4.0020.0002] # CANADIAN SYLLABICS WA
-1418 ; [.2FD5.0020.0002] # CANADIAN SYLLABICS WEST-CREE WA
-1419 ; [.2FD6.0020.0002] # CANADIAN SYLLABICS WAA
-141A ; [.2FD7.0020.0002] # CANADIAN SYLLABICS WEST-CREE WAA
-141B ; [.2FD8.0020.0002] # CANADIAN SYLLABICS NASKAPI WAA
-141C ; [.2FD9.0020.0002] # CANADIAN SYLLABICS AI
-141D ; [.2FDA.0020.0002] # CANADIAN SYLLABICS Y-CREE W
-141E ; [.2FDB.0020.0002] # CANADIAN SYLLABICS GLOTTAL STOP
-141F ; [.2FDC.0020.0002] # CANADIAN SYLLABICS FINAL ACUTE
-1420 ; [.2FDD.0020.0002] # CANADIAN SYLLABICS FINAL GRAVE
-1421 ; [.2FDE.0020.0002] # CANADIAN SYLLABICS FINAL BOTTOM HALF RING
-1422 ; [.2FDF.0020.0002] # CANADIAN SYLLABICS FINAL TOP HALF RING
-1423 ; [.2FE0.0020.0002] # CANADIAN SYLLABICS FINAL RIGHT HALF RING
-1424 ; [.2FE1.0020.0002] # CANADIAN SYLLABICS FINAL RING
-1425 ; [.2FE2.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE ACUTE
-1426 ; [.2FE3.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
-1427 ; [.2FE4.0020.0002] # CANADIAN SYLLABICS FINAL MIDDLE DOT
-1428 ; [.2FE5.0020.0002] # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
-1429 ; [.2FE6.0020.0002] # CANADIAN SYLLABICS FINAL PLUS
-142A ; [.2FE7.0020.0002] # CANADIAN SYLLABICS FINAL DOWN TACK
-142B ; [.2FE8.0020.0002] # CANADIAN SYLLABICS EN
-142C ; [.2FE9.0020.0002] # CANADIAN SYLLABICS IN
-142D ; [.2FEA.0020.0002] # CANADIAN SYLLABICS ON
-142E ; [.2FEB.0020.0002] # CANADIAN SYLLABICS AN
-142F ; [.2FEC.0020.0002] # CANADIAN SYLLABICS PE
-1430 ; [.2FED.0020.0002] # CANADIAN SYLLABICS PAAI
-1431 ; [.2FEE.0020.0002] # CANADIAN SYLLABICS PI
-1432 ; [.2FEF.0020.0002] # CANADIAN SYLLABICS PII
-1433 ; [.2FF0.0020.0002] # CANADIAN SYLLABICS PO
-1434 ; [.2FF1.0020.0002] # CANADIAN SYLLABICS POO
-1435 ; [.2FF2.0020.0002] # CANADIAN SYLLABICS Y-CREE POO
-1436 ; [.2FF3.0020.0002] # CANADIAN SYLLABICS CARRIER HEE
-1437 ; [.2FF4.0020.0002] # CANADIAN SYLLABICS CARRIER HI
-1438 ; [.2FF5.0020.0002] # CANADIAN SYLLABICS PA
-1439 ; [.2FF6.0020.0002] # CANADIAN SYLLABICS PAA
-143A ; [.2FF7.0020.0002] # CANADIAN SYLLABICS PWE
-143B ; [.2FF8.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWE
-143C ; [.2FF9.0020.0002] # CANADIAN SYLLABICS PWI
-143D ; [.2FFA.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWI
-143E ; [.2FFB.0020.0002] # CANADIAN SYLLABICS PWII
-143F ; [.2FFC.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWII
-1440 ; [.2FFD.0020.0002] # CANADIAN SYLLABICS PWO
-1441 ; [.2FFE.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWO
-1442 ; [.2FFF.0020.0002] # CANADIAN SYLLABICS PWOO
-1443 ; [.3000.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWOO
-1444 ; [.3001.0020.0002] # CANADIAN SYLLABICS PWA
-1445 ; [.3002.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWA
-1446 ; [.3003.0020.0002] # CANADIAN SYLLABICS PWAA
-1447 ; [.3004.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWAA
-1448 ; [.3005.0020.0002] # CANADIAN SYLLABICS Y-CREE PWAA
-1449 ; [.3006.0020.0002] # CANADIAN SYLLABICS P
-144A ; [.3007.0020.0002] # CANADIAN SYLLABICS WEST-CREE P
-144B ; [.3008.0020.0002] # CANADIAN SYLLABICS CARRIER H
-144C ; [.3009.0020.0002] # CANADIAN SYLLABICS TE
-144D ; [.300A.0020.0002] # CANADIAN SYLLABICS TAAI
-144E ; [.300B.0020.0002] # CANADIAN SYLLABICS TI
-144F ; [.300C.0020.0002] # CANADIAN SYLLABICS TII
-1450 ; [.300D.0020.0002] # CANADIAN SYLLABICS TO
-1451 ; [.300E.0020.0002] # CANADIAN SYLLABICS TOO
-1452 ; [.300F.0020.0002] # CANADIAN SYLLABICS Y-CREE TOO
-1453 ; [.3010.0020.0002] # CANADIAN SYLLABICS CARRIER DEE
-1454 ; [.3011.0020.0002] # CANADIAN SYLLABICS CARRIER DI
-1455 ; [.3012.0020.0002] # CANADIAN SYLLABICS TA
-1456 ; [.3013.0020.0002] # CANADIAN SYLLABICS TAA
-1457 ; [.3014.0020.0002] # CANADIAN SYLLABICS TWE
-1458 ; [.3015.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWE
-1459 ; [.3016.0020.0002] # CANADIAN SYLLABICS TWI
-145A ; [.3017.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWI
-145B ; [.3018.0020.0002] # CANADIAN SYLLABICS TWII
-145C ; [.3019.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWII
-145D ; [.301A.0020.0002] # CANADIAN SYLLABICS TWO
-145E ; [.301B.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWO
-145F ; [.301C.0020.0002] # CANADIAN SYLLABICS TWOO
-1460 ; [.301D.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWOO
-1461 ; [.301E.0020.0002] # CANADIAN SYLLABICS TWA
-1462 ; [.301F.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWA
-1463 ; [.3020.0020.0002] # CANADIAN SYLLABICS TWAA
-1464 ; [.3021.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWAA
-1465 ; [.3022.0020.0002] # CANADIAN SYLLABICS NASKAPI TWAA
-1466 ; [.3023.0020.0002] # CANADIAN SYLLABICS T
-1467 ; [.3024.0020.0002] # CANADIAN SYLLABICS TTE
-1468 ; [.3025.0020.0002] # CANADIAN SYLLABICS TTI
-1469 ; [.3026.0020.0002] # CANADIAN SYLLABICS TTO
-146A ; [.3027.0020.0002] # CANADIAN SYLLABICS TTA
-146B ; [.3028.0020.0002] # CANADIAN SYLLABICS KE
-146C ; [.3029.0020.0002] # CANADIAN SYLLABICS KAAI
-146D ; [.302A.0020.0002] # CANADIAN SYLLABICS KI
-146E ; [.302B.0020.0002] # CANADIAN SYLLABICS KII
-146F ; [.302C.0020.0002] # CANADIAN SYLLABICS KO
-1470 ; [.302D.0020.0002] # CANADIAN SYLLABICS KOO
-1471 ; [.302E.0020.0002] # CANADIAN SYLLABICS Y-CREE KOO
-1472 ; [.302F.0020.0002] # CANADIAN SYLLABICS KA
-1473 ; [.3030.0020.0002] # CANADIAN SYLLABICS KAA
-1474 ; [.3031.0020.0002] # CANADIAN SYLLABICS KWE
-1475 ; [.3032.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWE
-1476 ; [.3033.0020.0002] # CANADIAN SYLLABICS KWI
-1477 ; [.3034.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWI
-1478 ; [.3035.0020.0002] # CANADIAN SYLLABICS KWII
-1479 ; [.3036.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWII
-147A ; [.3037.0020.0002] # CANADIAN SYLLABICS KWO
-147B ; [.3038.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWO
-147C ; [.3039.0020.0002] # CANADIAN SYLLABICS KWOO
-147D ; [.303A.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWOO
-147E ; [.303B.0020.0002] # CANADIAN SYLLABICS KWA
-147F ; [.303C.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWA
-1480 ; [.303D.0020.0002] # CANADIAN SYLLABICS KWAA
-1481 ; [.303E.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWAA
-1482 ; [.303F.0020.0002] # CANADIAN SYLLABICS NASKAPI KWAA
-1483 ; [.3040.0020.0002] # CANADIAN SYLLABICS K
-1484 ; [.3041.0020.0002] # CANADIAN SYLLABICS KW
-1485 ; [.3042.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KEH
-1486 ; [.3043.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KIH
-1487 ; [.3044.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KOH
-1488 ; [.3045.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KAH
-1489 ; [.3046.0020.0002] # CANADIAN SYLLABICS CE
-148A ; [.3047.0020.0002] # CANADIAN SYLLABICS CAAI
-148B ; [.3048.0020.0002] # CANADIAN SYLLABICS CI
-148C ; [.3049.0020.0002] # CANADIAN SYLLABICS CII
-148D ; [.304A.0020.0002] # CANADIAN SYLLABICS CO
-148E ; [.304B.0020.0002] # CANADIAN SYLLABICS COO
-148F ; [.304C.0020.0002] # CANADIAN SYLLABICS Y-CREE COO
-1490 ; [.304D.0020.0002] # CANADIAN SYLLABICS CA
-1491 ; [.304E.0020.0002] # CANADIAN SYLLABICS CAA
-1492 ; [.304F.0020.0002] # CANADIAN SYLLABICS CWE
-1493 ; [.3050.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWE
-1494 ; [.3051.0020.0002] # CANADIAN SYLLABICS CWI
-1495 ; [.3052.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWI
-1496 ; [.3053.0020.0002] # CANADIAN SYLLABICS CWII
-1497 ; [.3054.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWII
-1498 ; [.3055.0020.0002] # CANADIAN SYLLABICS CWO
-1499 ; [.3056.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWO
-149A ; [.3057.0020.0002] # CANADIAN SYLLABICS CWOO
-149B ; [.3058.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWOO
-149C ; [.3059.0020.0002] # CANADIAN SYLLABICS CWA
-149D ; [.305A.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWA
-149E ; [.305B.0020.0002] # CANADIAN SYLLABICS CWAA
-149F ; [.305C.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWAA
-14A0 ; [.305D.0020.0002] # CANADIAN SYLLABICS NASKAPI CWAA
-14A1 ; [.305E.0020.0002] # CANADIAN SYLLABICS C
-14A2 ; [.305F.0020.0002] # CANADIAN SYLLABICS SAYISI TH
-14A3 ; [.3060.0020.0002] # CANADIAN SYLLABICS ME
-14A4 ; [.3061.0020.0002] # CANADIAN SYLLABICS MAAI
-14A5 ; [.3062.0020.0002] # CANADIAN SYLLABICS MI
-14A6 ; [.3063.0020.0002] # CANADIAN SYLLABICS MII
-14A7 ; [.3064.0020.0002] # CANADIAN SYLLABICS MO
-14A8 ; [.3065.0020.0002] # CANADIAN SYLLABICS MOO
-14A9 ; [.3066.0020.0002] # CANADIAN SYLLABICS Y-CREE MOO
-14AA ; [.3067.0020.0002] # CANADIAN SYLLABICS MA
-14AB ; [.3068.0020.0002] # CANADIAN SYLLABICS MAA
-14AC ; [.3069.0020.0002] # CANADIAN SYLLABICS MWE
-14AD ; [.306A.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWE
-14AE ; [.306B.0020.0002] # CANADIAN SYLLABICS MWI
-14AF ; [.306C.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWI
-14B0 ; [.306D.0020.0002] # CANADIAN SYLLABICS MWII
-14B1 ; [.306E.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWII
-14B2 ; [.306F.0020.0002] # CANADIAN SYLLABICS MWO
-14B3 ; [.3070.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWO
-14B4 ; [.3071.0020.0002] # CANADIAN SYLLABICS MWOO
-14B5 ; [.3072.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWOO
-14B6 ; [.3073.0020.0002] # CANADIAN SYLLABICS MWA
-14B7 ; [.3074.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWA
-14B8 ; [.3075.0020.0002] # CANADIAN SYLLABICS MWAA
-14B9 ; [.3076.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWAA
-14BA ; [.3077.0020.0002] # CANADIAN SYLLABICS NASKAPI MWAA
-14BB ; [.3078.0020.0002] # CANADIAN SYLLABICS M
-14BC ; [.3079.0020.0002] # CANADIAN SYLLABICS WEST-CREE M
-14BD ; [.307A.0020.0002] # CANADIAN SYLLABICS MH
-14BE ; [.307B.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN M
-14BF ; [.307C.0020.0002] # CANADIAN SYLLABICS SAYISI M
-14C0 ; [.307D.0020.0002] # CANADIAN SYLLABICS NE
-14C1 ; [.307E.0020.0002] # CANADIAN SYLLABICS NAAI
-14C2 ; [.307F.0020.0002] # CANADIAN SYLLABICS NI
-14C3 ; [.3080.0020.0002] # CANADIAN SYLLABICS NII
-14C4 ; [.3081.0020.0002] # CANADIAN SYLLABICS NO
-14C5 ; [.3082.0020.0002] # CANADIAN SYLLABICS NOO
-14C6 ; [.3083.0020.0002] # CANADIAN SYLLABICS Y-CREE NOO
-14C7 ; [.3084.0020.0002] # CANADIAN SYLLABICS NA
-14C8 ; [.3085.0020.0002] # CANADIAN SYLLABICS NAA
-14C9 ; [.3086.0020.0002] # CANADIAN SYLLABICS NWE
-14CA ; [.3087.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWE
-14CB ; [.3088.0020.0002] # CANADIAN SYLLABICS NWA
-14CC ; [.3089.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWA
-14CD ; [.308A.0020.0002] # CANADIAN SYLLABICS NWAA
-14CE ; [.308B.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWAA
-14CF ; [.308C.0020.0002] # CANADIAN SYLLABICS NASKAPI NWAA
-14D0 ; [.308D.0020.0002] # CANADIAN SYLLABICS N
-14D1 ; [.308E.0020.0002] # CANADIAN SYLLABICS CARRIER NG
-14D2 ; [.308F.0020.0002] # CANADIAN SYLLABICS NH
-14D3 ; [.3090.0020.0002] # CANADIAN SYLLABICS LE
-14D4 ; [.3091.0020.0002] # CANADIAN SYLLABICS LAAI
-14D5 ; [.3092.0020.0002] # CANADIAN SYLLABICS LI
-14D6 ; [.3093.0020.0002] # CANADIAN SYLLABICS LII
-14D7 ; [.3094.0020.0002] # CANADIAN SYLLABICS LO
-14D8 ; [.3095.0020.0002] # CANADIAN SYLLABICS LOO
-14D9 ; [.3096.0020.0002] # CANADIAN SYLLABICS Y-CREE LOO
-14DA ; [.3097.0020.0002] # CANADIAN SYLLABICS LA
-14DB ; [.3098.0020.0002] # CANADIAN SYLLABICS LAA
-14DC ; [.3099.0020.0002] # CANADIAN SYLLABICS LWE
-14DD ; [.309A.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWE
-14DE ; [.309B.0020.0002] # CANADIAN SYLLABICS LWI
-14DF ; [.309C.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWI
-14E0 ; [.309D.0020.0002] # CANADIAN SYLLABICS LWII
-14E1 ; [.309E.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWII
-14E2 ; [.309F.0020.0002] # CANADIAN SYLLABICS LWO
-14E3 ; [.30A0.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWO
-14E4 ; [.30A1.0020.0002] # CANADIAN SYLLABICS LWOO
-14E5 ; [.30A2.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWOO
-14E6 ; [.30A3.0020.0002] # CANADIAN SYLLABICS LWA
-14E7 ; [.30A4.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWA
-14E8 ; [.30A5.0020.0002] # CANADIAN SYLLABICS LWAA
-14E9 ; [.30A6.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWAA
-14EA ; [.30A7.0020.0002] # CANADIAN SYLLABICS L
-14EB ; [.30A8.0020.0002] # CANADIAN SYLLABICS WEST-CREE L
-14EC ; [.30A9.0020.0002] # CANADIAN SYLLABICS MEDIAL L
-14ED ; [.30AA.0020.0002] # CANADIAN SYLLABICS SE
-14EE ; [.30AB.0020.0002] # CANADIAN SYLLABICS SAAI
-14EF ; [.30AC.0020.0002] # CANADIAN SYLLABICS SI
-14F0 ; [.30AD.0020.0002] # CANADIAN SYLLABICS SII
-14F1 ; [.30AE.0020.0002] # CANADIAN SYLLABICS SO
-14F2 ; [.30AF.0020.0002] # CANADIAN SYLLABICS SOO
-14F3 ; [.30B0.0020.0002] # CANADIAN SYLLABICS Y-CREE SOO
-14F4 ; [.30B1.0020.0002] # CANADIAN SYLLABICS SA
-14F5 ; [.30B2.0020.0002] # CANADIAN SYLLABICS SAA
-14F6 ; [.30B3.0020.0002] # CANADIAN SYLLABICS SWE
-14F7 ; [.30B4.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWE
-14F8 ; [.30B5.0020.0002] # CANADIAN SYLLABICS SWI
-14F9 ; [.30B6.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWI
-14FA ; [.30B7.0020.0002] # CANADIAN SYLLABICS SWII
-14FB ; [.30B8.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWII
-14FC ; [.30B9.0020.0002] # CANADIAN SYLLABICS SWO
-14FD ; [.30BA.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWO
-14FE ; [.30BB.0020.0002] # CANADIAN SYLLABICS SWOO
-14FF ; [.30BC.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWOO
-1500 ; [.30BD.0020.0002] # CANADIAN SYLLABICS SWA
-1501 ; [.30BE.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWA
-1502 ; [.30BF.0020.0002] # CANADIAN SYLLABICS SWAA
-1503 ; [.30C0.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWAA
-1504 ; [.30C1.0020.0002] # CANADIAN SYLLABICS NASKAPI SWAA
-1505 ; [.30C2.0020.0002] # CANADIAN SYLLABICS S
-1506 ; [.30C3.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN S
-1507 ; [.30C4.0020.0002] # CANADIAN SYLLABICS SW
-1508 ; [.30C5.0020.0002] # CANADIAN SYLLABICS BLACKFOOT S
-1509 ; [.30C6.0020.0002] # CANADIAN SYLLABICS MOOSE-CREE SK
-150A ; [.30C7.0020.0002] # CANADIAN SYLLABICS NASKAPI SKW
-150B ; [.30C8.0020.0002] # CANADIAN SYLLABICS NASKAPI S-W
-150C ; [.30C9.0020.0002] # CANADIAN SYLLABICS NASKAPI SPWA
-150D ; [.30CA.0020.0002] # CANADIAN SYLLABICS NASKAPI STWA
-150E ; [.30CB.0020.0002] # CANADIAN SYLLABICS NASKAPI SKWA
-150F ; [.30CC.0020.0002] # CANADIAN SYLLABICS NASKAPI SCWA
-1510 ; [.30CD.0020.0002] # CANADIAN SYLLABICS SHE
-1511 ; [.30CE.0020.0002] # CANADIAN SYLLABICS SHI
-1512 ; [.30CF.0020.0002] # CANADIAN SYLLABICS SHII
-1513 ; [.30D0.0020.0002] # CANADIAN SYLLABICS SHO
-1514 ; [.30D1.0020.0002] # CANADIAN SYLLABICS SHOO
-1515 ; [.30D2.0020.0002] # CANADIAN SYLLABICS SHA
-1516 ; [.30D3.0020.0002] # CANADIAN SYLLABICS SHAA
-1517 ; [.30D4.0020.0002] # CANADIAN SYLLABICS SHWE
-1518 ; [.30D5.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWE
-1519 ; [.30D6.0020.0002] # CANADIAN SYLLABICS SHWI
-151A ; [.30D7.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWI
-151B ; [.30D8.0020.0002] # CANADIAN SYLLABICS SHWII
-151C ; [.30D9.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWII
-151D ; [.30DA.0020.0002] # CANADIAN SYLLABICS SHWO
-151E ; [.30DB.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWO
-151F ; [.30DC.0020.0002] # CANADIAN SYLLABICS SHWOO
-1520 ; [.30DD.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWOO
-1521 ; [.30DE.0020.0002] # CANADIAN SYLLABICS SHWA
-1522 ; [.30DF.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWA
-1523 ; [.30E0.0020.0002] # CANADIAN SYLLABICS SHWAA
-1524 ; [.30E1.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWAA
-1525 ; [.30E2.0020.0002] # CANADIAN SYLLABICS SH
-1526 ; [.30E3.0020.0002] # CANADIAN SYLLABICS YE
-1527 ; [.30E4.0020.0002] # CANADIAN SYLLABICS YAAI
-1528 ; [.30E5.0020.0002] # CANADIAN SYLLABICS YI
-1529 ; [.30E6.0020.0002] # CANADIAN SYLLABICS YII
-152A ; [.30E7.0020.0002] # CANADIAN SYLLABICS YO
-152B ; [.30E8.0020.0002] # CANADIAN SYLLABICS YOO
-152C ; [.30E9.0020.0002] # CANADIAN SYLLABICS Y-CREE YOO
-152D ; [.30EA.0020.0002] # CANADIAN SYLLABICS YA
-152E ; [.30EB.0020.0002] # CANADIAN SYLLABICS YAA
-152F ; [.30EC.0020.0002] # CANADIAN SYLLABICS YWE
-1530 ; [.30ED.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWE
-1531 ; [.30EE.0020.0002] # CANADIAN SYLLABICS YWI
-1532 ; [.30EF.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWI
-1533 ; [.30F0.0020.0002] # CANADIAN SYLLABICS YWII
-1534 ; [.30F1.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWII
-1535 ; [.30F2.0020.0002] # CANADIAN SYLLABICS YWO
-1536 ; [.30F3.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWO
-1537 ; [.30F4.0020.0002] # CANADIAN SYLLABICS YWOO
-1538 ; [.30F5.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWOO
-1539 ; [.30F6.0020.0002] # CANADIAN SYLLABICS YWA
-153A ; [.30F7.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWA
-153B ; [.30F8.0020.0002] # CANADIAN SYLLABICS YWAA
-153C ; [.30F9.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWAA
-153D ; [.30FA.0020.0002] # CANADIAN SYLLABICS NASKAPI YWAA
-153E ; [.30FB.0020.0002] # CANADIAN SYLLABICS Y
-153F ; [.30FC.0020.0002] # CANADIAN SYLLABICS BIBLE-CREE Y
-1540 ; [.30FD.0020.0002] # CANADIAN SYLLABICS WEST-CREE Y
-1541 ; [.30FE.0020.0002] # CANADIAN SYLLABICS SAYISI YI
-1542 ; [.30FF.0020.0002] # CANADIAN SYLLABICS RE
-1543 ; [.3100.0020.0002] # CANADIAN SYLLABICS R-CREE RE
-1544 ; [.3101.0020.0002] # CANADIAN SYLLABICS WEST-CREE LE
-1545 ; [.3102.0020.0002] # CANADIAN SYLLABICS RAAI
-1546 ; [.3103.0020.0002] # CANADIAN SYLLABICS RI
-1547 ; [.3104.0020.0002] # CANADIAN SYLLABICS RII
-1548 ; [.3105.0020.0002] # CANADIAN SYLLABICS RO
-1549 ; [.3106.0020.0002] # CANADIAN SYLLABICS ROO
-154A ; [.3107.0020.0002] # CANADIAN SYLLABICS WEST-CREE LO
-154B ; [.3108.0020.0002] # CANADIAN SYLLABICS RA
-154C ; [.3109.0020.0002] # CANADIAN SYLLABICS RAA
-154D ; [.310A.0020.0002] # CANADIAN SYLLABICS WEST-CREE LA
-154E ; [.310B.0020.0002] # CANADIAN SYLLABICS RWAA
-154F ; [.310C.0020.0002] # CANADIAN SYLLABICS WEST-CREE RWAA
-1550 ; [.310D.0020.0002] # CANADIAN SYLLABICS R
-1551 ; [.310E.0020.0002] # CANADIAN SYLLABICS WEST-CREE R
-1552 ; [.310F.0020.0002] # CANADIAN SYLLABICS MEDIAL R
-1553 ; [.3110.0020.0002] # CANADIAN SYLLABICS FE
-1554 ; [.3111.0020.0002] # CANADIAN SYLLABICS FAAI
-1555 ; [.3112.0020.0002] # CANADIAN SYLLABICS FI
-1556 ; [.3113.0020.0002] # CANADIAN SYLLABICS FII
-1557 ; [.3114.0020.0002] # CANADIAN SYLLABICS FO
-1558 ; [.3115.0020.0002] # CANADIAN SYLLABICS FOO
-1559 ; [.3116.0020.0002] # CANADIAN SYLLABICS FA
-155A ; [.3117.0020.0002] # CANADIAN SYLLABICS FAA
-155B ; [.3118.0020.0002] # CANADIAN SYLLABICS FWAA
-155C ; [.3119.0020.0002] # CANADIAN SYLLABICS WEST-CREE FWAA
-155D ; [.311A.0020.0002] # CANADIAN SYLLABICS F
-155E ; [.311B.0020.0002] # CANADIAN SYLLABICS THE
-155F ; [.311C.0020.0002] # CANADIAN SYLLABICS N-CREE THE
-1560 ; [.311D.0020.0002] # CANADIAN SYLLABICS THI
-1561 ; [.311E.0020.0002] # CANADIAN SYLLABICS N-CREE THI
-1562 ; [.311F.0020.0002] # CANADIAN SYLLABICS THII
-1563 ; [.3120.0020.0002] # CANADIAN SYLLABICS N-CREE THII
-1564 ; [.3121.0020.0002] # CANADIAN SYLLABICS THO
-1565 ; [.3122.0020.0002] # CANADIAN SYLLABICS THOO
-1566 ; [.3123.0020.0002] # CANADIAN SYLLABICS THA
-1567 ; [.3124.0020.0002] # CANADIAN SYLLABICS THAA
-1568 ; [.3125.0020.0002] # CANADIAN SYLLABICS THWAA
-1569 ; [.3126.0020.0002] # CANADIAN SYLLABICS WEST-CREE THWAA
-156A ; [.3127.0020.0002] # CANADIAN SYLLABICS TH
-156B ; [.3128.0020.0002] # CANADIAN SYLLABICS TTHE
-156C ; [.3129.0020.0002] # CANADIAN SYLLABICS TTHI
-156D ; [.312A.0020.0002] # CANADIAN SYLLABICS TTHO
-156E ; [.312B.0020.0002] # CANADIAN SYLLABICS TTHA
-156F ; [.312C.0020.0002] # CANADIAN SYLLABICS TTH
-1570 ; [.312D.0020.0002] # CANADIAN SYLLABICS TYE
-1571 ; [.312E.0020.0002] # CANADIAN SYLLABICS TYI
-1572 ; [.312F.0020.0002] # CANADIAN SYLLABICS TYO
-1573 ; [.3130.0020.0002] # CANADIAN SYLLABICS TYA
-1574 ; [.3131.0020.0002] # CANADIAN SYLLABICS NUNAVIK HE
-1575 ; [.3132.0020.0002] # CANADIAN SYLLABICS NUNAVIK HI
-1576 ; [.3133.0020.0002] # CANADIAN SYLLABICS NUNAVIK HII
-1577 ; [.3134.0020.0002] # CANADIAN SYLLABICS NUNAVIK HO
-1578 ; [.3135.0020.0002] # CANADIAN SYLLABICS NUNAVIK HOO
-1579 ; [.3136.0020.0002] # CANADIAN SYLLABICS NUNAVIK HA
-157A ; [.3137.0020.0002] # CANADIAN SYLLABICS NUNAVIK HAA
-157B ; [.3138.0020.0002] # CANADIAN SYLLABICS NUNAVIK H
-157D ; [.3139.0020.0002] # CANADIAN SYLLABICS HK
-166F ; [.313A.0020.0002] # CANADIAN SYLLABICS QAI
-157E ; [.313B.0020.0002] # CANADIAN SYLLABICS QAAI
-157F ; [.313C.0020.0002] # CANADIAN SYLLABICS QI
-1580 ; [.313D.0020.0002] # CANADIAN SYLLABICS QII
-1581 ; [.313E.0020.0002] # CANADIAN SYLLABICS QO
-1582 ; [.313F.0020.0002] # CANADIAN SYLLABICS QOO
-1583 ; [.3140.0020.0002] # CANADIAN SYLLABICS QA
-1584 ; [.3141.0020.0002] # CANADIAN SYLLABICS QAA
-1585 ; [.3142.0020.0002] # CANADIAN SYLLABICS Q
-1586 ; [.3143.0020.0002] # CANADIAN SYLLABICS TLHE
-1587 ; [.3144.0020.0002] # CANADIAN SYLLABICS TLHI
-1588 ; [.3145.0020.0002] # CANADIAN SYLLABICS TLHO
-1589 ; [.3146.0020.0002] # CANADIAN SYLLABICS TLHA
-158A ; [.3147.0020.0002] # CANADIAN SYLLABICS WEST-CREE RE
-158B ; [.3148.0020.0002] # CANADIAN SYLLABICS WEST-CREE RI
-158C ; [.3149.0020.0002] # CANADIAN SYLLABICS WEST-CREE RO
-158D ; [.314A.0020.0002] # CANADIAN SYLLABICS WEST-CREE RA
-1670 ; [.314B.0020.0002] # CANADIAN SYLLABICS NGAI
-158E ; [.314C.0020.0002] # CANADIAN SYLLABICS NGAAI
-158F ; [.314D.0020.0002] # CANADIAN SYLLABICS NGI
-1590 ; [.314E.0020.0002] # CANADIAN SYLLABICS NGII
-1591 ; [.314F.0020.0002] # CANADIAN SYLLABICS NGO
-1592 ; [.3150.0020.0002] # CANADIAN SYLLABICS NGOO
-1593 ; [.3151.0020.0002] # CANADIAN SYLLABICS NGA
-1594 ; [.3152.0020.0002] # CANADIAN SYLLABICS NGAA
-1595 ; [.3153.0020.0002] # CANADIAN SYLLABICS NG
-1671 ; [.3154.0020.0002] # CANADIAN SYLLABICS NNGI
-1672 ; [.3155.0020.0002] # CANADIAN SYLLABICS NNGII
-1673 ; [.3156.0020.0002] # CANADIAN SYLLABICS NNGO
-1674 ; [.3157.0020.0002] # CANADIAN SYLLABICS NNGOO
-1675 ; [.3158.0020.0002] # CANADIAN SYLLABICS NNGA
-1676 ; [.3159.0020.0002] # CANADIAN SYLLABICS NNGAA
-1596 ; [.315A.0020.0002] # CANADIAN SYLLABICS NNG
-1597 ; [.315B.0020.0002] # CANADIAN SYLLABICS SAYISI SHE
-1598 ; [.315C.0020.0002] # CANADIAN SYLLABICS SAYISI SHI
-1599 ; [.315D.0020.0002] # CANADIAN SYLLABICS SAYISI SHO
-159A ; [.315E.0020.0002] # CANADIAN SYLLABICS SAYISI SHA
-159B ; [.315F.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THE
-159C ; [.3160.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THI
-159D ; [.3161.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THO
-159E ; [.3162.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THA
-159F ; [.3163.0020.0002] # CANADIAN SYLLABICS WOODS-CREE TH
-15A0 ; [.3164.0020.0002] # CANADIAN SYLLABICS LHI
-15A1 ; [.3165.0020.0002] # CANADIAN SYLLABICS LHII
-15A2 ; [.3166.0020.0002] # CANADIAN SYLLABICS LHO
-15A3 ; [.3167.0020.0002] # CANADIAN SYLLABICS LHOO
-15A4 ; [.3168.0020.0002] # CANADIAN SYLLABICS LHA
-15A5 ; [.3169.0020.0002] # CANADIAN SYLLABICS LHAA
-15A6 ; [.316A.0020.0002] # CANADIAN SYLLABICS LH
-157C ; [.316B.0020.0002] # CANADIAN SYLLABICS NUNAVUT H
-15A7 ; [.316C.0020.0002] # CANADIAN SYLLABICS TH-CREE THE
-15A8 ; [.316D.0020.0002] # CANADIAN SYLLABICS TH-CREE THI
-15A9 ; [.316E.0020.0002] # CANADIAN SYLLABICS TH-CREE THII
-15AA ; [.316F.0020.0002] # CANADIAN SYLLABICS TH-CREE THO
-15AB ; [.3170.0020.0002] # CANADIAN SYLLABICS TH-CREE THOO
-15AC ; [.3171.0020.0002] # CANADIAN SYLLABICS TH-CREE THA
-15AD ; [.3172.0020.0002] # CANADIAN SYLLABICS TH-CREE THAA
-15AE ; [.3173.0020.0002] # CANADIAN SYLLABICS TH-CREE TH
-15AF ; [.3174.0020.0002] # CANADIAN SYLLABICS AIVILIK B
-15B0 ; [.3175.0020.0002] # CANADIAN SYLLABICS BLACKFOOT E
-15B1 ; [.3176.0020.0002] # CANADIAN SYLLABICS BLACKFOOT I
-15B2 ; [.3177.0020.0002] # CANADIAN SYLLABICS BLACKFOOT O
-15B3 ; [.3178.0020.0002] # CANADIAN SYLLABICS BLACKFOOT A
-15B4 ; [.3179.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WE
-15B5 ; [.317A.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WI
-15B6 ; [.317B.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WO
-15B7 ; [.317C.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WA
-15B8 ; [.317D.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NE
-15B9 ; [.317E.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NI
-15BA ; [.317F.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NO
-15BB ; [.3180.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NA
-15BC ; [.3181.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KE
-15BD ; [.3182.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KI
-15BE ; [.3183.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KO
-15BF ; [.3184.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KA
-15C0 ; [.3185.0020.0002] # CANADIAN SYLLABICS SAYISI HE
-15C1 ; [.3186.0020.0002] # CANADIAN SYLLABICS SAYISI HI
-15C2 ; [.3187.0020.0002] # CANADIAN SYLLABICS SAYISI HO
-15C3 ; [.3188.0020.0002] # CANADIAN SYLLABICS SAYISI HA
-15C4 ; [.3189.0020.0002] # CANADIAN SYLLABICS CARRIER GHU
-15C5 ; [.318A.0020.0002] # CANADIAN SYLLABICS CARRIER GHO
-15C6 ; [.318B.0020.0002] # CANADIAN SYLLABICS CARRIER GHE
-15C7 ; [.318C.0020.0002] # CANADIAN SYLLABICS CARRIER GHEE
-15C8 ; [.318D.0020.0002] # CANADIAN SYLLABICS CARRIER GHI
-15C9 ; [.318E.0020.0002] # CANADIAN SYLLABICS CARRIER GHA
-15CA ; [.318F.0020.0002] # CANADIAN SYLLABICS CARRIER RU
-15CB ; [.3190.0020.0002] # CANADIAN SYLLABICS CARRIER RO
-15CC ; [.3191.0020.0002] # CANADIAN SYLLABICS CARRIER RE
-15CD ; [.3192.0020.0002] # CANADIAN SYLLABICS CARRIER REE
-15CE ; [.3193.0020.0002] # CANADIAN SYLLABICS CARRIER RI
-15CF ; [.3194.0020.0002] # CANADIAN SYLLABICS CARRIER RA
-15D0 ; [.3195.0020.0002] # CANADIAN SYLLABICS CARRIER WU
-15D1 ; [.3196.0020.0002] # CANADIAN SYLLABICS CARRIER WO
-15D2 ; [.3197.0020.0002] # CANADIAN SYLLABICS CARRIER WE
-15D3 ; [.3198.0020.0002] # CANADIAN SYLLABICS CARRIER WEE
-15D4 ; [.3199.0020.0002] # CANADIAN SYLLABICS CARRIER WI
-15D5 ; [.319A.0020.0002] # CANADIAN SYLLABICS CARRIER WA
-15D6 ; [.319B.0020.0002] # CANADIAN SYLLABICS CARRIER HWU
-15D7 ; [.319C.0020.0002] # CANADIAN SYLLABICS CARRIER HWO
-15D8 ; [.319D.0020.0002] # CANADIAN SYLLABICS CARRIER HWE
-15D9 ; [.319E.0020.0002] # CANADIAN SYLLABICS CARRIER HWEE
-15DA ; [.319F.0020.0002] # CANADIAN SYLLABICS CARRIER HWI
-15DB ; [.31A0.0020.0002] # CANADIAN SYLLABICS CARRIER HWA
-15DC ; [.31A1.0020.0002] # CANADIAN SYLLABICS CARRIER THU
-15DD ; [.31A2.0020.0002] # CANADIAN SYLLABICS CARRIER THO
-15DE ; [.31A3.0020.0002] # CANADIAN SYLLABICS CARRIER THE
-15DF ; [.31A4.0020.0002] # CANADIAN SYLLABICS CARRIER THEE
-15E0 ; [.31A5.0020.0002] # CANADIAN SYLLABICS CARRIER THI
-15E1 ; [.31A6.0020.0002] # CANADIAN SYLLABICS CARRIER THA
-15E2 ; [.31A7.0020.0002] # CANADIAN SYLLABICS CARRIER TTU
-15E3 ; [.31A8.0020.0002] # CANADIAN SYLLABICS CARRIER TTO
-15E4 ; [.31A9.0020.0002] # CANADIAN SYLLABICS CARRIER TTE
-15E5 ; [.31AA.0020.0002] # CANADIAN SYLLABICS CARRIER TTEE
-15E6 ; [.31AB.0020.0002] # CANADIAN SYLLABICS CARRIER TTI
-15E7 ; [.31AC.0020.0002] # CANADIAN SYLLABICS CARRIER TTA
-15E8 ; [.31AD.0020.0002] # CANADIAN SYLLABICS CARRIER PU
-15E9 ; [.31AE.0020.0002] # CANADIAN SYLLABICS CARRIER PO
-15EA ; [.31AF.0020.0002] # CANADIAN SYLLABICS CARRIER PE
-15EB ; [.31B0.0020.0002] # CANADIAN SYLLABICS CARRIER PEE
-15EC ; [.31B1.0020.0002] # CANADIAN SYLLABICS CARRIER PI
-15ED ; [.31B2.0020.0002] # CANADIAN SYLLABICS CARRIER PA
-15EE ; [.31B3.0020.0002] # CANADIAN SYLLABICS CARRIER P
-15EF ; [.31B4.0020.0002] # CANADIAN SYLLABICS CARRIER GU
-15F0 ; [.31B5.0020.0002] # CANADIAN SYLLABICS CARRIER GO
-15F1 ; [.31B6.0020.0002] # CANADIAN SYLLABICS CARRIER GE
-15F2 ; [.31B7.0020.0002] # CANADIAN SYLLABICS CARRIER GEE
-15F3 ; [.31B8.0020.0002] # CANADIAN SYLLABICS CARRIER GI
-15F4 ; [.31B9.0020.0002] # CANADIAN SYLLABICS CARRIER GA
-15F5 ; [.31BA.0020.0002] # CANADIAN SYLLABICS CARRIER KHU
-15F6 ; [.31BB.0020.0002] # CANADIAN SYLLABICS CARRIER KHO
-15F7 ; [.31BC.0020.0002] # CANADIAN SYLLABICS CARRIER KHE
-15F8 ; [.31BD.0020.0002] # CANADIAN SYLLABICS CARRIER KHEE
-15F9 ; [.31BE.0020.0002] # CANADIAN SYLLABICS CARRIER KHI
-15FA ; [.31BF.0020.0002] # CANADIAN SYLLABICS CARRIER KHA
-15FB ; [.31C0.0020.0002] # CANADIAN SYLLABICS CARRIER KKU
-15FC ; [.31C1.0020.0002] # CANADIAN SYLLABICS CARRIER KKO
-15FD ; [.31C2.0020.0002] # CANADIAN SYLLABICS CARRIER KKE
-15FE ; [.31C3.0020.0002] # CANADIAN SYLLABICS CARRIER KKEE
-15FF ; [.31C4.0020.0002] # CANADIAN SYLLABICS CARRIER KKI
-1600 ; [.31C5.0020.0002] # CANADIAN SYLLABICS CARRIER KKA
-1601 ; [.31C6.0020.0002] # CANADIAN SYLLABICS CARRIER KK
-1602 ; [.31C7.0020.0002] # CANADIAN SYLLABICS CARRIER NU
-1603 ; [.31C8.0020.0002] # CANADIAN SYLLABICS CARRIER NO
-1604 ; [.31C9.0020.0002] # CANADIAN SYLLABICS CARRIER NE
-1605 ; [.31CA.0020.0002] # CANADIAN SYLLABICS CARRIER NEE
-1606 ; [.31CB.0020.0002] # CANADIAN SYLLABICS CARRIER NI
-1607 ; [.31CC.0020.0002] # CANADIAN SYLLABICS CARRIER NA
-1608 ; [.31CD.0020.0002] # CANADIAN SYLLABICS CARRIER MU
-1609 ; [.31CE.0020.0002] # CANADIAN SYLLABICS CARRIER MO
-160A ; [.31CF.0020.0002] # CANADIAN SYLLABICS CARRIER ME
-160B ; [.31D0.0020.0002] # CANADIAN SYLLABICS CARRIER MEE
-160C ; [.31D1.0020.0002] # CANADIAN SYLLABICS CARRIER MI
-160D ; [.31D2.0020.0002] # CANADIAN SYLLABICS CARRIER MA
-160E ; [.31D3.0020.0002] # CANADIAN SYLLABICS CARRIER YU
-160F ; [.31D4.0020.0002] # CANADIAN SYLLABICS CARRIER YO
-1610 ; [.31D5.0020.0002] # CANADIAN SYLLABICS CARRIER YE
-1611 ; [.31D6.0020.0002] # CANADIAN SYLLABICS CARRIER YEE
-1612 ; [.31D7.0020.0002] # CANADIAN SYLLABICS CARRIER YI
-1613 ; [.31D8.0020.0002] # CANADIAN SYLLABICS CARRIER YA
-1614 ; [.31D9.0020.0002] # CANADIAN SYLLABICS CARRIER JU
-1615 ; [.31DA.0020.0002] # CANADIAN SYLLABICS SAYISI JU
-1616 ; [.31DB.0020.0002] # CANADIAN SYLLABICS CARRIER JO
-1617 ; [.31DC.0020.0002] # CANADIAN SYLLABICS CARRIER JE
-1618 ; [.31DD.0020.0002] # CANADIAN SYLLABICS CARRIER JEE
-1619 ; [.31DE.0020.0002] # CANADIAN SYLLABICS CARRIER JI
-161A ; [.31DF.0020.0002] # CANADIAN SYLLABICS SAYISI JI
-161B ; [.31E0.0020.0002] # CANADIAN SYLLABICS CARRIER JA
-161C ; [.31E1.0020.0002] # CANADIAN SYLLABICS CARRIER JJU
-161D ; [.31E2.0020.0002] # CANADIAN SYLLABICS CARRIER JJO
-161E ; [.31E3.0020.0002] # CANADIAN SYLLABICS CARRIER JJE
-161F ; [.31E4.0020.0002] # CANADIAN SYLLABICS CARRIER JJEE
-1620 ; [.31E5.0020.0002] # CANADIAN SYLLABICS CARRIER JJI
-1621 ; [.31E6.0020.0002] # CANADIAN SYLLABICS CARRIER JJA
-1622 ; [.31E7.0020.0002] # CANADIAN SYLLABICS CARRIER LU
-1623 ; [.31E8.0020.0002] # CANADIAN SYLLABICS CARRIER LO
-1624 ; [.31E9.0020.0002] # CANADIAN SYLLABICS CARRIER LE
-1625 ; [.31EA.0020.0002] # CANADIAN SYLLABICS CARRIER LEE
-1626 ; [.31EB.0020.0002] # CANADIAN SYLLABICS CARRIER LI
-1627 ; [.31EC.0020.0002] # CANADIAN SYLLABICS CARRIER LA
-1628 ; [.31ED.0020.0002] # CANADIAN SYLLABICS CARRIER DLU
-1629 ; [.31EE.0020.0002] # CANADIAN SYLLABICS CARRIER DLO
-162A ; [.31EF.0020.0002] # CANADIAN SYLLABICS CARRIER DLE
-162B ; [.31F0.0020.0002] # CANADIAN SYLLABICS CARRIER DLEE
-162C ; [.31F1.0020.0002] # CANADIAN SYLLABICS CARRIER DLI
-162D ; [.31F2.0020.0002] # CANADIAN SYLLABICS CARRIER DLA
-162E ; [.31F3.0020.0002] # CANADIAN SYLLABICS CARRIER LHU
-162F ; [.31F4.0020.0002] # CANADIAN SYLLABICS CARRIER LHO
-1630 ; [.31F5.0020.0002] # CANADIAN SYLLABICS CARRIER LHE
-1631 ; [.31F6.0020.0002] # CANADIAN SYLLABICS CARRIER LHEE
-1632 ; [.31F7.0020.0002] # CANADIAN SYLLABICS CARRIER LHI
-1633 ; [.31F8.0020.0002] # CANADIAN SYLLABICS CARRIER LHA
-1634 ; [.31F9.0020.0002] # CANADIAN SYLLABICS CARRIER TLHU
-1635 ; [.31FA.0020.0002] # CANADIAN SYLLABICS CARRIER TLHO
-1636 ; [.31FB.0020.0002] # CANADIAN SYLLABICS CARRIER TLHE
-1637 ; [.31FC.0020.0002] # CANADIAN SYLLABICS CARRIER TLHEE
-1638 ; [.31FD.0020.0002] # CANADIAN SYLLABICS CARRIER TLHI
-1639 ; [.31FE.0020.0002] # CANADIAN SYLLABICS CARRIER TLHA
-163A ; [.31FF.0020.0002] # CANADIAN SYLLABICS CARRIER TLU
-163B ; [.3200.0020.0002] # CANADIAN SYLLABICS CARRIER TLO
-163C ; [.3201.0020.0002] # CANADIAN SYLLABICS CARRIER TLE
-163D ; [.3202.0020.0002] # CANADIAN SYLLABICS CARRIER TLEE
-163E ; [.3203.0020.0002] # CANADIAN SYLLABICS CARRIER TLI
-163F ; [.3204.0020.0002] # CANADIAN SYLLABICS CARRIER TLA
-1640 ; [.3205.0020.0002] # CANADIAN SYLLABICS CARRIER ZU
-1641 ; [.3206.0020.0002] # CANADIAN SYLLABICS CARRIER ZO
-1642 ; [.3207.0020.0002] # CANADIAN SYLLABICS CARRIER ZE
-1643 ; [.3208.0020.0002] # CANADIAN SYLLABICS CARRIER ZEE
-1644 ; [.3209.0020.0002] # CANADIAN SYLLABICS CARRIER ZI
-1645 ; [.320A.0020.0002] # CANADIAN SYLLABICS CARRIER ZA
-1646 ; [.320B.0020.0002] # CANADIAN SYLLABICS CARRIER Z
-1647 ; [.320C.0020.0002] # CANADIAN SYLLABICS CARRIER INITIAL Z
-1648 ; [.320D.0020.0002] # CANADIAN SYLLABICS CARRIER DZU
-1649 ; [.320E.0020.0002] # CANADIAN SYLLABICS CARRIER DZO
-164A ; [.320F.0020.0002] # CANADIAN SYLLABICS CARRIER DZE
-164B ; [.3210.0020.0002] # CANADIAN SYLLABICS CARRIER DZEE
-164C ; [.3211.0020.0002] # CANADIAN SYLLABICS CARRIER DZI
-164D ; [.3212.0020.0002] # CANADIAN SYLLABICS CARRIER DZA
-164E ; [.3213.0020.0002] # CANADIAN SYLLABICS CARRIER SU
-164F ; [.3214.0020.0002] # CANADIAN SYLLABICS CARRIER SO
-1650 ; [.3215.0020.0002] # CANADIAN SYLLABICS CARRIER SE
-1651 ; [.3216.0020.0002] # CANADIAN SYLLABICS CARRIER SEE
-1652 ; [.3217.0020.0002] # CANADIAN SYLLABICS CARRIER SI
-1653 ; [.3218.0020.0002] # CANADIAN SYLLABICS CARRIER SA
-1654 ; [.3219.0020.0002] # CANADIAN SYLLABICS CARRIER SHU
-1655 ; [.321A.0020.0002] # CANADIAN SYLLABICS CARRIER SHO
-1656 ; [.321B.0020.0002] # CANADIAN SYLLABICS CARRIER SHE
-1657 ; [.321C.0020.0002] # CANADIAN SYLLABICS CARRIER SHEE
-1658 ; [.321D.0020.0002] # CANADIAN SYLLABICS CARRIER SHI
-1659 ; [.321E.0020.0002] # CANADIAN SYLLABICS CARRIER SHA
-165A ; [.321F.0020.0002] # CANADIAN SYLLABICS CARRIER SH
-165B ; [.3220.0020.0002] # CANADIAN SYLLABICS CARRIER TSU
-165C ; [.3221.0020.0002] # CANADIAN SYLLABICS CARRIER TSO
-165D ; [.3222.0020.0002] # CANADIAN SYLLABICS CARRIER TSE
-165E ; [.3223.0020.0002] # CANADIAN SYLLABICS CARRIER TSEE
-165F ; [.3224.0020.0002] # CANADIAN SYLLABICS CARRIER TSI
-1660 ; [.3225.0020.0002] # CANADIAN SYLLABICS CARRIER TSA
-1661 ; [.3226.0020.0002] # CANADIAN SYLLABICS CARRIER CHU
-1662 ; [.3227.0020.0002] # CANADIAN SYLLABICS CARRIER CHO
-1663 ; [.3228.0020.0002] # CANADIAN SYLLABICS CARRIER CHE
-1664 ; [.3229.0020.0002] # CANADIAN SYLLABICS CARRIER CHEE
-1665 ; [.322A.0020.0002] # CANADIAN SYLLABICS CARRIER CHI
-1666 ; [.322B.0020.0002] # CANADIAN SYLLABICS CARRIER CHA
-1667 ; [.322C.0020.0002] # CANADIAN SYLLABICS CARRIER TTSU
-1668 ; [.322D.0020.0002] # CANADIAN SYLLABICS CARRIER TTSO
-1669 ; [.322E.0020.0002] # CANADIAN SYLLABICS CARRIER TTSE
-166A ; [.322F.0020.0002] # CANADIAN SYLLABICS CARRIER TTSEE
-166B ; [.3230.0020.0002] # CANADIAN SYLLABICS CARRIER TTSI
-166C ; [.3231.0020.0002] # CANADIAN SYLLABICS CARRIER TTSA
-1677 ; [.3232.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWEE
-1678 ; [.3233.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWI
-1679 ; [.3234.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWII
-167A ; [.3235.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWO
-167B ; [.3236.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWOO
-167C ; [.3237.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWA
-167D ; [.3238.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWAA
-167E ; [.3239.0020.0002] # CANADIAN SYLLABICS WOODS-CREE FINAL TH
-167F ; [.323A.0020.0002] # CANADIAN SYLLABICS BLACKFOOT W
-18B0 ; [.323B.0020.0002] # CANADIAN SYLLABICS OY
-18B1 ; [.323C.0020.0002] # CANADIAN SYLLABICS AY
-18B2 ; [.323D.0020.0002] # CANADIAN SYLLABICS AAY
-18B3 ; [.323E.0020.0002] # CANADIAN SYLLABICS WAY
-18B4 ; [.323F.0020.0002] # CANADIAN SYLLABICS POY
-18B5 ; [.3240.0020.0002] # CANADIAN SYLLABICS PAY
-18B6 ; [.3241.0020.0002] # CANADIAN SYLLABICS PWOY
-18B7 ; [.3242.0020.0002] # CANADIAN SYLLABICS TAY
-18B8 ; [.3243.0020.0002] # CANADIAN SYLLABICS KAY
-18B9 ; [.3244.0020.0002] # CANADIAN SYLLABICS KWAY
-18BA ; [.3245.0020.0002] # CANADIAN SYLLABICS MAY
-18BB ; [.3246.0020.0002] # CANADIAN SYLLABICS NOY
-18BC ; [.3247.0020.0002] # CANADIAN SYLLABICS NAY
-18BD ; [.3248.0020.0002] # CANADIAN SYLLABICS LAY
-18BE ; [.3249.0020.0002] # CANADIAN SYLLABICS SOY
-18BF ; [.324A.0020.0002] # CANADIAN SYLLABICS SAY
-18C0 ; [.324B.0020.0002] # CANADIAN SYLLABICS SHOY
-18C1 ; [.324C.0020.0002] # CANADIAN SYLLABICS SHAY
-18C2 ; [.324D.0020.0002] # CANADIAN SYLLABICS SHWOY
-18C3 ; [.324E.0020.0002] # CANADIAN SYLLABICS YOY
-18C4 ; [.324F.0020.0002] # CANADIAN SYLLABICS YAY
-18C5 ; [.3250.0020.0002] # CANADIAN SYLLABICS RAY
-18C6 ; [.3251.0020.0002] # CANADIAN SYLLABICS NWI
-18C7 ; [.3252.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWI
-18C8 ; [.3253.0020.0002] # CANADIAN SYLLABICS NWII
-18C9 ; [.3254.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWII
-18CA ; [.3255.0020.0002] # CANADIAN SYLLABICS NWO
-18CB ; [.3256.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWO
-18CC ; [.3257.0020.0002] # CANADIAN SYLLABICS NWOO
-18CD ; [.3258.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWOO
-18CE ; [.3259.0020.0002] # CANADIAN SYLLABICS RWEE
-18CF ; [.325A.0020.0002] # CANADIAN SYLLABICS RWI
-18D0 ; [.325B.0020.0002] # CANADIAN SYLLABICS RWII
-18D1 ; [.325C.0020.0002] # CANADIAN SYLLABICS RWO
-18D2 ; [.325D.0020.0002] # CANADIAN SYLLABICS RWOO
-18D3 ; [.325E.0020.0002] # CANADIAN SYLLABICS RWA
-18D4 ; [.325F.0020.0002] # CANADIAN SYLLABICS OJIBWAY P
-18D5 ; [.3260.0020.0002] # CANADIAN SYLLABICS OJIBWAY T
-18D6 ; [.3261.0020.0002] # CANADIAN SYLLABICS OJIBWAY K
-18D7 ; [.3262.0020.0002] # CANADIAN SYLLABICS OJIBWAY C
-18D8 ; [.3263.0020.0002] # CANADIAN SYLLABICS OJIBWAY M
-18D9 ; [.3264.0020.0002] # CANADIAN SYLLABICS OJIBWAY N
-18DA ; [.3265.0020.0002] # CANADIAN SYLLABICS OJIBWAY S
-18DB ; [.3266.0020.0002] # CANADIAN SYLLABICS OJIBWAY SH
-18DC ; [.3267.0020.0002] # CANADIAN SYLLABICS EASTERN W
-18DD ; [.3268.0020.0002] # CANADIAN SYLLABICS WESTERN W
-18DE ; [.3269.0020.0002] # CANADIAN SYLLABICS FINAL SMALL RING
-18DF ; [.326A.0020.0002] # CANADIAN SYLLABICS FINAL RAISED DOT
-18E0 ; [.326B.0020.0002] # CANADIAN SYLLABICS R-CREE RWE
-18E1 ; [.326C.0020.0002] # CANADIAN SYLLABICS WEST-CREE LOO
-18E2 ; [.326D.0020.0002] # CANADIAN SYLLABICS WEST-CREE LAA
-18E3 ; [.326E.0020.0002] # CANADIAN SYLLABICS THWE
-18E4 ; [.326F.0020.0002] # CANADIAN SYLLABICS THWA
-18E5 ; [.3270.0020.0002] # CANADIAN SYLLABICS TTHWE
-18E6 ; [.3271.0020.0002] # CANADIAN SYLLABICS TTHOO
-18E7 ; [.3272.0020.0002] # CANADIAN SYLLABICS TTHAA
-18E8 ; [.3273.0020.0002] # CANADIAN SYLLABICS TLHWE
-18E9 ; [.3274.0020.0002] # CANADIAN SYLLABICS TLHOO
-18EA ; [.3275.0020.0002] # CANADIAN SYLLABICS SAYISI SHWE
-18EB ; [.3276.0020.0002] # CANADIAN SYLLABICS SAYISI SHOO
-18EC ; [.3277.0020.0002] # CANADIAN SYLLABICS SAYISI HOO
-18ED ; [.3278.0020.0002] # CANADIAN SYLLABICS CARRIER GWU
-18EE ; [.3279.0020.0002] # CANADIAN SYLLABICS CARRIER DENE GEE
-18EF ; [.327A.0020.0002] # CANADIAN SYLLABICS CARRIER GAA
-18F0 ; [.327B.0020.0002] # CANADIAN SYLLABICS CARRIER GWA
-18F1 ; [.327C.0020.0002] # CANADIAN SYLLABICS SAYISI JUU
-18F2 ; [.327D.0020.0002] # CANADIAN SYLLABICS CARRIER JWA
-18F3 ; [.327E.0020.0002] # CANADIAN SYLLABICS BEAVER DENE L
-18F4 ; [.327F.0020.0002] # CANADIAN SYLLABICS BEAVER DENE R
-18F5 ; [.3280.0020.0002] # CANADIAN SYLLABICS CARRIER DENTAL S
-1681 ; [.3281.0020.0002] # OGHAM LETTER BEITH
-1682 ; [.3282.0020.0002] # OGHAM LETTER LUIS
-1683 ; [.3283.0020.0002] # OGHAM LETTER FEARN
-1684 ; [.3284.0020.0002] # OGHAM LETTER SAIL
-1685 ; [.3285.0020.0002] # OGHAM LETTER NION
-1686 ; [.3286.0020.0002] # OGHAM LETTER UATH
-1687 ; [.3287.0020.0002] # OGHAM LETTER DAIR
-1688 ; [.3288.0020.0002] # OGHAM LETTER TINNE
-1689 ; [.3289.0020.0002] # OGHAM LETTER COLL
-168A ; [.328A.0020.0002] # OGHAM LETTER CEIRT
-168B ; [.328B.0020.0002] # OGHAM LETTER MUIN
-168C ; [.328C.0020.0002] # OGHAM LETTER GORT
-168D ; [.328D.0020.0002] # OGHAM LETTER NGEADAL
-168E ; [.328E.0020.0002] # OGHAM LETTER STRAIF
-168F ; [.328F.0020.0002] # OGHAM LETTER RUIS
-1690 ; [.3290.0020.0002] # OGHAM LETTER AILM
-1691 ; [.3291.0020.0002] # OGHAM LETTER ONN
-1692 ; [.3292.0020.0002] # OGHAM LETTER UR
-1693 ; [.3293.0020.0002] # OGHAM LETTER EADHADH
-1694 ; [.3294.0020.0002] # OGHAM LETTER IODHADH
-1695 ; [.3295.0020.0002] # OGHAM LETTER EABHADH
-1696 ; [.3296.0020.0002] # OGHAM LETTER OR
-1697 ; [.3297.0020.0002] # OGHAM LETTER UILLEANN
-1698 ; [.3298.0020.0002] # OGHAM LETTER IFIN
-1699 ; [.3299.0020.0002] # OGHAM LETTER EAMHANCHOLL
-169A ; [.329A.0020.0002] # OGHAM LETTER PEITH
-16A0 ; [.329B.0020.0002] # RUNIC LETTER FEHU FEOH FE F
-16A1 ; [.329B.0020.0004][.0000.0108.0004] # RUNIC LETTER V
-16A2 ; [.329C.0020.0002] # RUNIC LETTER URUZ UR U
-16A4 ; [.329C.0020.0004][.0000.0108.0004] # RUNIC LETTER Y
-16A5 ; [.329C.0020.0004][.0000.0109.0004] # RUNIC LETTER W
-16A6 ; [.329D.0020.0002] # RUNIC LETTER THURISAZ THURS THORN
-16A7 ; [.329D.0020.0004][.0000.0108.0004] # RUNIC LETTER ETH
-16F0 ; [.329D.0020.0004][.329D.0020.0004] # RUNIC BELGTHOR SYMBOL
-16A8 ; [.329E.0020.0002] # RUNIC LETTER ANSUZ A
-16A9 ; [.329E.0020.0004][.0000.0108.0004] # RUNIC LETTER OS O
-16AC ; [.329E.0020.0004][.0000.0109.0004] # RUNIC LETTER LONG-BRANCH-OSS O
-16AD ; [.329E.0020.0004][.0000.010A.0004] # RUNIC LETTER SHORT-TWIG-OSS O
-16AE ; [.329E.0020.0004][.0000.010B.0004] # RUNIC LETTER O
-16F4 ; [.329F.0020.0002] # RUNIC LETTER FRANKS CASKET OS
-16AF ; [.32A0.0020.0002] # RUNIC LETTER OE
-16B0 ; [.32A1.0020.0002] # RUNIC LETTER ON
-16B1 ; [.32A2.0020.0002] # RUNIC LETTER RAIDO RAD REID R
-16B2 ; [.32A3.0020.0002] # RUNIC LETTER KAUNA
-16B3 ; [.32A3.0020.0004][.0000.0108.0004] # RUNIC LETTER CEN
-16B4 ; [.32A3.0020.0004][.0000.0109.0004] # RUNIC LETTER KAUN K
-16B5 ; [.32A3.0020.0004][.0000.010A.0004] # RUNIC LETTER G
-16B6 ; [.32A3.0020.0004][.0000.010B.0004] # RUNIC LETTER ENG
-16F1 ; [.32A4.0020.0002] # RUNIC LETTER K
-16B7 ; [.32A5.0020.0002] # RUNIC LETTER GEBO GYFU G
-16B9 ; [.32A6.0020.0002] # RUNIC LETTER WUNJO WYNN W
-16E9 ; [.32A6.0020.0004][.0000.0108.0004] # RUNIC LETTER Q
-16BA ; [.32A7.0020.0002] # RUNIC LETTER HAGLAZ H
-16BB ; [.32A7.0020.0004][.0000.0108.0004] # RUNIC LETTER HAEGL H
-16BC ; [.32A7.0020.0004][.0000.0109.0004] # RUNIC LETTER LONG-BRANCH-HAGALL H
-16BD ; [.32A7.0020.0004][.0000.010A.0004] # RUNIC LETTER SHORT-TWIG-HAGALL H
-16BE ; [.32A8.0020.0002] # RUNIC LETTER NAUDIZ NYD NAUD N
-16BF ; [.32A8.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-NAUD N
-16C0 ; [.32A8.0020.0004][.0000.0109.0004] # RUNIC LETTER DOTTED-N
-16C1 ; [.32A9.0020.0002] # RUNIC LETTER ISAZ IS ISS I
-16C2 ; [.32A9.0020.0004][.0000.0108.0004] # RUNIC LETTER E
-16F5 ; [.32AA.0020.0002] # RUNIC LETTER FRANKS CASKET IS
-16C3 ; [.32AB.0020.0002] # RUNIC LETTER JERAN J
-16C4 ; [.32AB.0020.0004][.0000.0108.0004] # RUNIC LETTER GER
-16C5 ; [.32AC.0020.0002] # RUNIC LETTER LONG-BRANCH-AR AE
-16C6 ; [.32AC.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-AR A
-16EE ; [.32AC.0020.0004][.32B7.0020.0004] # RUNIC ARLAUG SYMBOL
-16C7 ; [.32AD.0020.0002] # RUNIC LETTER IWAZ EOH
-16C8 ; [.32AE.0020.0002] # RUNIC LETTER PERTHO PEORTH P
-16D5 ; [.32AE.0020.0004][.0000.0108.0004] # RUNIC LETTER OPEN-P
-16C9 ; [.32AF.0020.0002] # RUNIC LETTER ALGIZ EOLHX
-16CA ; [.32B0.0020.0002] # RUNIC LETTER SOWILO S
-16CB ; [.32B0.0020.0004][.0000.0108.0004] # RUNIC LETTER SIGEL LONG-BRANCH-SOL S
-16EA ; [.32B0.0020.0004][.0000.0109.0004] # RUNIC LETTER X
-16CC ; [.32B0.0020.0004][.0000.010A.0004] # RUNIC LETTER SHORT-TWIG-SOL S
-16CD ; [.32B0.0020.0004][.0000.010B.0004] # RUNIC LETTER C
-16CE ; [.32B0.0020.0004][.0000.010C.0004] # RUNIC LETTER Z
-16F2 ; [.32B1.0020.0002] # RUNIC LETTER SH
-16CF ; [.32B2.0020.0002] # RUNIC LETTER TIWAZ TIR TYR T
-16D0 ; [.32B2.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-TYR T
-16D1 ; [.32B2.0020.0004][.0000.0109.0004] # RUNIC LETTER D
-16D2 ; [.32B3.0020.0002] # RUNIC LETTER BERKANAN BEORC BJARKAN B
-16D3 ; [.32B3.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-BJARKAN B
-16D4 ; [.32B3.0020.0004][.0000.0109.0004] # RUNIC LETTER DOTTED-P
-16D6 ; [.32B4.0020.0002] # RUNIC LETTER EHWAZ EH E
-16F6 ; [.32B5.0020.0002] # RUNIC LETTER FRANKS CASKET EH
-16D7 ; [.32B6.0020.0002] # RUNIC LETTER MANNAZ MAN M
-16D8 ; [.32B6.0020.0004][.0000.0108.0004] # RUNIC LETTER LONG-BRANCH-MADR M
-16D9 ; [.32B6.0020.0004][.0000.0109.0004] # RUNIC LETTER SHORT-TWIG-MADR M
-16EF ; [.32B6.0020.0004][.0000.0108.0004][.32B6.0020.0004][.0000.0108.0004] # RUNIC TVIMADUR SYMBOL
-16DA ; [.32B7.0020.0002] # RUNIC LETTER LAUKAZ LAGU LOGR L
-16DB ; [.32B7.0020.0004][.0000.0108.0004] # RUNIC LETTER DOTTED-L
-16DC ; [.32B8.0020.0002] # RUNIC LETTER INGWAZ
-16DD ; [.32B8.0020.0004][.0000.0108.0004] # RUNIC LETTER ING
-16DE ; [.32B9.0020.0002] # RUNIC LETTER DAGAZ DAEG D
-16DF ; [.32BA.0020.0002] # RUNIC LETTER OTHALAN ETHEL O
-16F3 ; [.32BB.0020.0002] # RUNIC LETTER OO
-16AA ; [.32BC.0020.0002] # RUNIC LETTER AC A
-16F7 ; [.32BD.0020.0002] # RUNIC LETTER FRANKS CASKET AC
-16AB ; [.32BE.0020.0002] # RUNIC LETTER AESC
-16F8 ; [.32BF.0020.0002] # RUNIC LETTER FRANKS CASKET AESC
-16A3 ; [.32C0.0020.0002] # RUNIC LETTER YR
-16E0 ; [.32C1.0020.0002] # RUNIC LETTER EAR
-16E3 ; [.32C2.0020.0002] # RUNIC LETTER CALC
-16B8 ; [.32C3.0020.0002] # RUNIC LETTER GAR
-16E4 ; [.32C4.0020.0002] # RUNIC LETTER CEALC
-16E1 ; [.32C5.0020.0002] # RUNIC LETTER IOR
-16E2 ; [.32C6.0020.0002] # RUNIC LETTER CWEORTH
-16E5 ; [.32C7.0020.0002] # RUNIC LETTER STAN
-16E6 ; [.32C8.0020.0002] # RUNIC LETTER LONG-BRANCH-YR
-16E7 ; [.32C8.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-YR
-16E8 ; [.32C8.0020.0004][.0000.0109.0004] # RUNIC LETTER ICELANDIC-YR
-10C00 ; [.32C9.0020.0002] # OLD TURKIC LETTER ORKHON A
-10C01 ; [.32C9.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI A
-10C02 ; [.32CA.0020.0002] # OLD TURKIC LETTER YENISEI AE
-10C03 ; [.32CB.0020.0002] # OLD TURKIC LETTER ORKHON I
-10C04 ; [.32CB.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI I
-10C05 ; [.32CC.0020.0002] # OLD TURKIC LETTER YENISEI E
-10C06 ; [.32CD.0020.0002] # OLD TURKIC LETTER ORKHON O
-10C07 ; [.32CE.0020.0002] # OLD TURKIC LETTER ORKHON OE
-10C08 ; [.32CE.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI OE
-10C09 ; [.32CF.0020.0002] # OLD TURKIC LETTER ORKHON AB
-10C0A ; [.32CF.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AB
-10C0B ; [.32D0.0020.0002] # OLD TURKIC LETTER ORKHON AEB
-10C0C ; [.32D0.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEB
-10C0D ; [.32D1.0020.0002] # OLD TURKIC LETTER ORKHON AG
-10C0E ; [.32D1.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AG
-10C0F ; [.32D2.0020.0002] # OLD TURKIC LETTER ORKHON AEG
-10C10 ; [.32D2.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEG
-10C11 ; [.32D3.0020.0002] # OLD TURKIC LETTER ORKHON AD
-10C12 ; [.32D3.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AD
-10C13 ; [.32D4.0020.0002] # OLD TURKIC LETTER ORKHON AED
-10C14 ; [.32D5.0020.0002] # OLD TURKIC LETTER ORKHON EZ
-10C15 ; [.32D5.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI EZ
-10C16 ; [.32D6.0020.0002] # OLD TURKIC LETTER ORKHON AY
-10C17 ; [.32D6.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AY
-10C18 ; [.32D7.0020.0002] # OLD TURKIC LETTER ORKHON AEY
-10C19 ; [.32D7.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEY
-10C1A ; [.32D8.0020.0002] # OLD TURKIC LETTER ORKHON AEK
-10C1B ; [.32D8.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEK
-10C1C ; [.32D9.0020.0002] # OLD TURKIC LETTER ORKHON OEK
-10C1D ; [.32D9.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI OEK
-10C1E ; [.32DA.0020.0002] # OLD TURKIC LETTER ORKHON AL
-10C1F ; [.32DA.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AL
-10C20 ; [.32DB.0020.0002] # OLD TURKIC LETTER ORKHON AEL
-10C21 ; [.32DC.0020.0002] # OLD TURKIC LETTER ORKHON ELT
-10C22 ; [.32DD.0020.0002] # OLD TURKIC LETTER ORKHON EM
-10C23 ; [.32DE.0020.0002] # OLD TURKIC LETTER ORKHON AN
-10C24 ; [.32DF.0020.0002] # OLD TURKIC LETTER ORKHON AEN
-10C25 ; [.32DF.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEN
-10C26 ; [.32E0.0020.0002] # OLD TURKIC LETTER ORKHON ENT
-10C27 ; [.32E0.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ENT
-10C28 ; [.32E1.0020.0002] # OLD TURKIC LETTER ORKHON ENC
-10C29 ; [.32E1.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ENC
-10C2A ; [.32E2.0020.0002] # OLD TURKIC LETTER ORKHON ENY
-10C2B ; [.32E2.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ENY
-10C2C ; [.32E3.0020.0002] # OLD TURKIC LETTER YENISEI ANG
-10C2D ; [.32E4.0020.0002] # OLD TURKIC LETTER ORKHON ENG
-10C2E ; [.32E4.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AENG
-10C2F ; [.32E5.0020.0002] # OLD TURKIC LETTER ORKHON EP
-10C30 ; [.32E6.0020.0002] # OLD TURKIC LETTER ORKHON OP
-10C31 ; [.32E7.0020.0002] # OLD TURKIC LETTER ORKHON IC
-10C32 ; [.32E8.0020.0002] # OLD TURKIC LETTER ORKHON EC
-10C33 ; [.32E8.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI EC
-10C34 ; [.32E9.0020.0002] # OLD TURKIC LETTER ORKHON AQ
-10C35 ; [.32E9.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AQ
-10C36 ; [.32EA.0020.0002] # OLD TURKIC LETTER ORKHON IQ
-10C37 ; [.32EA.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI IQ
-10C38 ; [.32EB.0020.0002] # OLD TURKIC LETTER ORKHON OQ
-10C39 ; [.32EB.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI OQ
-10C3A ; [.32EC.0020.0002] # OLD TURKIC LETTER ORKHON AR
-10C3B ; [.32EC.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AR
-10C3C ; [.32ED.0020.0002] # OLD TURKIC LETTER ORKHON AER
-10C3D ; [.32EE.0020.0002] # OLD TURKIC LETTER ORKHON AS
-10C3E ; [.32EF.0020.0002] # OLD TURKIC LETTER ORKHON AES
-10C3F ; [.32F0.0020.0002] # OLD TURKIC LETTER ORKHON ASH
-10C40 ; [.32F0.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ASH
-10C41 ; [.32F1.0020.0002] # OLD TURKIC LETTER ORKHON ESH
-10C42 ; [.32F1.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ESH
-10C43 ; [.32F2.0020.0002] # OLD TURKIC LETTER ORKHON AT
-10C44 ; [.32F2.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AT
-10C45 ; [.32F3.0020.0002] # OLD TURKIC LETTER ORKHON AET
-10C46 ; [.32F3.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AET
-10C47 ; [.32F4.0020.0002] # OLD TURKIC LETTER ORKHON OT
-10C48 ; [.32F5.0020.0002] # OLD TURKIC LETTER ORKHON BASH
-A500 ; [.32F6.0020.0002] # VAI SYLLABLE EE
-A501 ; [.32F7.0020.0002] # VAI SYLLABLE EEN
-A502 ; [.32F8.0020.0002] # VAI SYLLABLE HEE
-A503 ; [.32F9.0020.0002] # VAI SYLLABLE WEE
-A504 ; [.32FA.0020.0002] # VAI SYLLABLE WEEN
-A505 ; [.32FB.0020.0002] # VAI SYLLABLE PEE
-A506 ; [.32FC.0020.0002] # VAI SYLLABLE BHEE
-A507 ; [.32FD.0020.0002] # VAI SYLLABLE BEE
-A508 ; [.32FE.0020.0002] # VAI SYLLABLE MBEE
-A509 ; [.32FF.0020.0002] # VAI SYLLABLE KPEE
-A50A ; [.3300.0020.0002] # VAI SYLLABLE MGBEE
-A50B ; [.3301.0020.0002] # VAI SYLLABLE GBEE
-A50C ; [.3302.0020.0002] # VAI SYLLABLE FEE
-A613 ; [.3302.0020.0004][.3401.0020.0004] # VAI SYMBOL FEENG
-A50D ; [.3303.0020.0002] # VAI SYLLABLE VEE
-A50E ; [.3304.0020.0002] # VAI SYLLABLE TEE
-A50F ; [.3305.0020.0002] # VAI SYLLABLE THEE
-A510 ; [.3306.0020.0002] # VAI SYLLABLE DHEE
-A511 ; [.3307.0020.0002] # VAI SYLLABLE DHHEE
-A512 ; [.3308.0020.0002] # VAI SYLLABLE LEE
-A513 ; [.3309.0020.0002] # VAI SYLLABLE REE
-A514 ; [.330A.0020.0002] # VAI SYLLABLE DEE
-A515 ; [.330B.0020.0002] # VAI SYLLABLE NDEE
-A516 ; [.330C.0020.0002] # VAI SYLLABLE SEE
-A517 ; [.330D.0020.0002] # VAI SYLLABLE SHEE
-A518 ; [.330E.0020.0002] # VAI SYLLABLE ZEE
-A519 ; [.330F.0020.0002] # VAI SYLLABLE ZHEE
-A51A ; [.3310.0020.0002] # VAI SYLLABLE CEE
-A51B ; [.3311.0020.0002] # VAI SYLLABLE JEE
-A51C ; [.3312.0020.0002] # VAI SYLLABLE NJEE
-A51D ; [.3313.0020.0002] # VAI SYLLABLE YEE
-A51E ; [.3314.0020.0002] # VAI SYLLABLE KEE
-A614 ; [.3314.0020.0004][.3401.0020.0004] # VAI SYMBOL KEENG
-A51F ; [.3315.0020.0002] # VAI SYLLABLE NGGEE
-A520 ; [.3316.0020.0002] # VAI SYLLABLE GEE
-A521 ; [.3317.0020.0002] # VAI SYLLABLE MEE
-A522 ; [.3318.0020.0002] # VAI SYLLABLE NEE
-A523 ; [.3319.0020.0002] # VAI SYLLABLE NYEE
-A524 ; [.331A.0020.0002] # VAI SYLLABLE I
-A525 ; [.331B.0020.0002] # VAI SYLLABLE IN
-A526 ; [.331C.0020.0002] # VAI SYLLABLE HI
-A527 ; [.331D.0020.0002] # VAI SYLLABLE HIN
-A528 ; [.331E.0020.0002] # VAI SYLLABLE WI
-A529 ; [.331F.0020.0002] # VAI SYLLABLE WIN
-A52A ; [.3320.0020.0002] # VAI SYLLABLE PI
-A52B ; [.3321.0020.0002] # VAI SYLLABLE BHI
-A52C ; [.3322.0020.0002] # VAI SYLLABLE BI
-A52D ; [.3323.0020.0002] # VAI SYLLABLE MBI
-A52E ; [.3324.0020.0002] # VAI SYLLABLE KPI
-A52F ; [.3325.0020.0002] # VAI SYLLABLE MGBI
-A530 ; [.3326.0020.0002] # VAI SYLLABLE GBI
-A531 ; [.3327.0020.0002] # VAI SYLLABLE FI
-A532 ; [.3328.0020.0002] # VAI SYLLABLE VI
-A533 ; [.3329.0020.0002] # VAI SYLLABLE TI
-A615 ; [.3329.0020.0004][.3401.0020.0004] # VAI SYMBOL TING
-A534 ; [.332A.0020.0002] # VAI SYLLABLE THI
-A535 ; [.332B.0020.0002] # VAI SYLLABLE DHI
-A536 ; [.332C.0020.0002] # VAI SYLLABLE DHHI
-A537 ; [.332D.0020.0002] # VAI SYLLABLE LI
-A538 ; [.332E.0020.0002] # VAI SYLLABLE RI
-A539 ; [.332F.0020.0002] # VAI SYLLABLE DI
-A53A ; [.3330.0020.0002] # VAI SYLLABLE NDI
-A53B ; [.3331.0020.0002] # VAI SYLLABLE SI
-A53C ; [.3332.0020.0002] # VAI SYLLABLE SHI
-A53D ; [.3333.0020.0002] # VAI SYLLABLE ZI
-A53E ; [.3334.0020.0002] # VAI SYLLABLE ZHI
-A53F ; [.3335.0020.0002] # VAI SYLLABLE CI
-A540 ; [.3336.0020.0002] # VAI SYLLABLE JI
-A541 ; [.3337.0020.0002] # VAI SYLLABLE NJI
-A542 ; [.3338.0020.0002] # VAI SYLLABLE YI
-A543 ; [.3339.0020.0002] # VAI SYLLABLE KI
-A544 ; [.333A.0020.0002] # VAI SYLLABLE NGGI
-A545 ; [.333B.0020.0002] # VAI SYLLABLE GI
-A546 ; [.333C.0020.0002] # VAI SYLLABLE MI
-A547 ; [.333D.0020.0002] # VAI SYLLABLE NI
-A616 ; [.333D.0020.0004][.3402.0020.0004] # VAI SYMBOL NII
-A548 ; [.333E.0020.0002] # VAI SYLLABLE NYI
-A549 ; [.333F.0020.0002] # VAI SYLLABLE A
-A54A ; [.3340.0020.0002] # VAI SYLLABLE AN
-A54B ; [.3341.0020.0002] # VAI SYLLABLE NGAN
-A54C ; [.3342.0020.0002] # VAI SYLLABLE HA
-A54D ; [.3343.0020.0002] # VAI SYLLABLE HAN
-A54E ; [.3344.0020.0002] # VAI SYLLABLE WA
-A54F ; [.3345.0020.0002] # VAI SYLLABLE WAN
-A550 ; [.3346.0020.0002] # VAI SYLLABLE PA
-A551 ; [.3347.0020.0002] # VAI SYLLABLE BHA
-A552 ; [.3348.0020.0002] # VAI SYLLABLE BA
-A617 ; [.3348.0020.0004][.3401.0020.0004] # VAI SYMBOL BANG
-A553 ; [.3349.0020.0002] # VAI SYLLABLE MBA
-A554 ; [.334A.0020.0002] # VAI SYLLABLE KPA
-A555 ; [.334B.0020.0002] # VAI SYLLABLE KPAN
-A556 ; [.334C.0020.0002] # VAI SYLLABLE MGBA
-A557 ; [.334D.0020.0002] # VAI SYLLABLE GBA
-A558 ; [.334E.0020.0002] # VAI SYLLABLE FA
-A610 ; [.334E.0020.0004] # VAI SYLLABLE NDOLE FA
-A618 ; [.334E.0020.0004][.3402.0020.0004] # VAI SYMBOL FAA
-A559 ; [.334F.0020.0002] # VAI SYLLABLE VA
-A55A ; [.3350.0020.0002] # VAI SYLLABLE TA
-A619 ; [.3350.0020.0004][.3402.0020.0004] # VAI SYMBOL TAA
-A55B ; [.3351.0020.0002] # VAI SYLLABLE THA
-A55C ; [.3352.0020.0002] # VAI SYLLABLE DHA
-A55D ; [.3353.0020.0002] # VAI SYLLABLE DHHA
-A55E ; [.3354.0020.0002] # VAI SYLLABLE LA
-A55F ; [.3355.0020.0002] # VAI SYLLABLE RA
-A560 ; [.3356.0020.0002] # VAI SYLLABLE DA
-A61A ; [.3356.0020.0004][.3401.0020.0004] # VAI SYMBOL DANG
-A561 ; [.3357.0020.0002] # VAI SYLLABLE NDA
-A562 ; [.3358.0020.0002] # VAI SYLLABLE SA
-A563 ; [.3359.0020.0002] # VAI SYLLABLE SHA
-A564 ; [.335A.0020.0002] # VAI SYLLABLE ZA
-A565 ; [.335B.0020.0002] # VAI SYLLABLE ZHA
-A566 ; [.335C.0020.0002] # VAI SYLLABLE CA
-A567 ; [.335D.0020.0002] # VAI SYLLABLE JA
-A568 ; [.335E.0020.0002] # VAI SYLLABLE NJA
-A569 ; [.335F.0020.0002] # VAI SYLLABLE YA
-A56A ; [.3360.0020.0002] # VAI SYLLABLE KA
-A611 ; [.3360.0020.0004] # VAI SYLLABLE NDOLE KA
-A56B ; [.3361.0020.0002] # VAI SYLLABLE KAN
-A56C ; [.3362.0020.0002] # VAI SYLLABLE NGGA
-A56D ; [.3363.0020.0002] # VAI SYLLABLE GA
-A56E ; [.3364.0020.0002] # VAI SYLLABLE MA
-A62A ; [.3364.0020.0004] # VAI SYLLABLE NDOLE MA
-A56F ; [.3365.0020.0002] # VAI SYLLABLE NA
-A570 ; [.3366.0020.0002] # VAI SYLLABLE NYA
-A571 ; [.3367.0020.0002] # VAI SYLLABLE OO
-A572 ; [.3368.0020.0002] # VAI SYLLABLE OON
-A573 ; [.3369.0020.0002] # VAI SYLLABLE HOO
-A574 ; [.336A.0020.0002] # VAI SYLLABLE WOO
-A575 ; [.336B.0020.0002] # VAI SYLLABLE WOON
-A576 ; [.336C.0020.0002] # VAI SYLLABLE POO
-A577 ; [.336D.0020.0002] # VAI SYLLABLE BHOO
-A578 ; [.336E.0020.0002] # VAI SYLLABLE BOO
-A579 ; [.336F.0020.0002] # VAI SYLLABLE MBOO
-A57A ; [.3370.0020.0002] # VAI SYLLABLE KPOO
-A57B ; [.3371.0020.0002] # VAI SYLLABLE MGBOO
-A57C ; [.3372.0020.0002] # VAI SYLLABLE GBOO
-A57D ; [.3373.0020.0002] # VAI SYLLABLE FOO
-A57E ; [.3374.0020.0002] # VAI SYLLABLE VOO
-A57F ; [.3375.0020.0002] # VAI SYLLABLE TOO
-A580 ; [.3376.0020.0002] # VAI SYLLABLE THOO
-A581 ; [.3377.0020.0002] # VAI SYLLABLE DHOO
-A582 ; [.3378.0020.0002] # VAI SYLLABLE DHHOO
-A583 ; [.3379.0020.0002] # VAI SYLLABLE LOO
-A584 ; [.337A.0020.0002] # VAI SYLLABLE ROO
-A585 ; [.337B.0020.0002] # VAI SYLLABLE DOO
-A61B ; [.337B.0020.0004][.3401.0020.0004] # VAI SYMBOL DOONG
-A586 ; [.337C.0020.0002] # VAI SYLLABLE NDOO
-A587 ; [.337D.0020.0002] # VAI SYLLABLE SOO
-A612 ; [.337D.0020.0004] # VAI SYLLABLE NDOLE SOO
-A588 ; [.337E.0020.0002] # VAI SYLLABLE SHOO
-A589 ; [.337F.0020.0002] # VAI SYLLABLE ZOO
-A58A ; [.3380.0020.0002] # VAI SYLLABLE ZHOO
-A58B ; [.3381.0020.0002] # VAI SYLLABLE COO
-A58C ; [.3382.0020.0002] # VAI SYLLABLE JOO
-A58D ; [.3383.0020.0002] # VAI SYLLABLE NJOO
-A58E ; [.3384.0020.0002] # VAI SYLLABLE YOO
-A58F ; [.3385.0020.0002] # VAI SYLLABLE KOO
-A590 ; [.3386.0020.0002] # VAI SYLLABLE NGGOO
-A591 ; [.3387.0020.0002] # VAI SYLLABLE GOO
-A592 ; [.3388.0020.0002] # VAI SYLLABLE MOO
-A593 ; [.3389.0020.0002] # VAI SYLLABLE NOO
-A594 ; [.338A.0020.0002] # VAI SYLLABLE NYOO
-A595 ; [.338B.0020.0002] # VAI SYLLABLE U
-A596 ; [.338C.0020.0002] # VAI SYLLABLE UN
-A597 ; [.338D.0020.0002] # VAI SYLLABLE HU
-A598 ; [.338E.0020.0002] # VAI SYLLABLE HUN
-A599 ; [.338F.0020.0002] # VAI SYLLABLE WU
-A59A ; [.3390.0020.0002] # VAI SYLLABLE WUN
-A59B ; [.3391.0020.0002] # VAI SYLLABLE PU
-A59C ; [.3392.0020.0002] # VAI SYLLABLE BHU
-A59D ; [.3393.0020.0002] # VAI SYLLABLE BU
-A59E ; [.3394.0020.0002] # VAI SYLLABLE MBU
-A59F ; [.3395.0020.0002] # VAI SYLLABLE KPU
-A5A0 ; [.3396.0020.0002] # VAI SYLLABLE MGBU
-A5A1 ; [.3397.0020.0002] # VAI SYLLABLE GBU
-A5A2 ; [.3398.0020.0002] # VAI SYLLABLE FU
-A5A3 ; [.3399.0020.0002] # VAI SYLLABLE VU
-A5A4 ; [.339A.0020.0002] # VAI SYLLABLE TU
-A5A5 ; [.339B.0020.0002] # VAI SYLLABLE THU
-A5A6 ; [.339C.0020.0002] # VAI SYLLABLE DHU
-A5A7 ; [.339D.0020.0002] # VAI SYLLABLE DHHU
-A5A8 ; [.339E.0020.0002] # VAI SYLLABLE LU
-A5A9 ; [.339F.0020.0002] # VAI SYLLABLE RU
-A5AA ; [.33A0.0020.0002] # VAI SYLLABLE DU
-A5AB ; [.33A1.0020.0002] # VAI SYLLABLE NDU
-A5AC ; [.33A2.0020.0002] # VAI SYLLABLE SU
-A5AD ; [.33A3.0020.0002] # VAI SYLLABLE SHU
-A5AE ; [.33A4.0020.0002] # VAI SYLLABLE ZU
-A5AF ; [.33A5.0020.0002] # VAI SYLLABLE ZHU
-A5B0 ; [.33A6.0020.0002] # VAI SYLLABLE CU
-A5B1 ; [.33A7.0020.0002] # VAI SYLLABLE JU
-A5B2 ; [.33A8.0020.0002] # VAI SYLLABLE NJU
-A5B3 ; [.33A9.0020.0002] # VAI SYLLABLE YU
-A5B4 ; [.33AA.0020.0002] # VAI SYLLABLE KU
-A61C ; [.33AA.0020.0004][.3401.0020.0004] # VAI SYMBOL KUNG
-A5B5 ; [.33AB.0020.0002] # VAI SYLLABLE NGGU
-A5B6 ; [.33AC.0020.0002] # VAI SYLLABLE GU
-A5B7 ; [.33AD.0020.0002] # VAI SYLLABLE MU
-A5B8 ; [.33AE.0020.0002] # VAI SYLLABLE NU
-A5B9 ; [.33AF.0020.0002] # VAI SYLLABLE NYU
-A5BA ; [.33B0.0020.0002] # VAI SYLLABLE O
-A5BB ; [.33B1.0020.0002] # VAI SYLLABLE ON
-A5BC ; [.33B2.0020.0002] # VAI SYLLABLE NGON
-A5BD ; [.33B3.0020.0002] # VAI SYLLABLE HO
-A5BE ; [.33B4.0020.0002] # VAI SYLLABLE HON
-A5BF ; [.33B5.0020.0002] # VAI SYLLABLE WO
-A5C0 ; [.33B6.0020.0002] # VAI SYLLABLE WON
-A5C1 ; [.33B7.0020.0002] # VAI SYLLABLE PO
-A5C2 ; [.33B8.0020.0002] # VAI SYLLABLE BHO
-A5C3 ; [.33B9.0020.0002] # VAI SYLLABLE BO
-A5C4 ; [.33BA.0020.0002] # VAI SYLLABLE MBO
-A5C5 ; [.33BB.0020.0002] # VAI SYLLABLE KPO
-A5C6 ; [.33BC.0020.0002] # VAI SYLLABLE MGBO
-A5C7 ; [.33BD.0020.0002] # VAI SYLLABLE GBO
-A5C8 ; [.33BE.0020.0002] # VAI SYLLABLE GBON
-A5C9 ; [.33BF.0020.0002] # VAI SYLLABLE FO
-A5CA ; [.33C0.0020.0002] # VAI SYLLABLE VO
-A5CB ; [.33C1.0020.0002] # VAI SYLLABLE TO
-A61D ; [.33C1.0020.0004][.3401.0020.0004] # VAI SYMBOL TONG
-A5CC ; [.33C2.0020.0002] # VAI SYLLABLE THO
-A5CD ; [.33C3.0020.0002] # VAI SYLLABLE DHO
-A5CE ; [.33C4.0020.0002] # VAI SYLLABLE DHHO
-A5CF ; [.33C5.0020.0002] # VAI SYLLABLE LO
-A5D0 ; [.33C6.0020.0002] # VAI SYLLABLE RO
-A5D1 ; [.33C7.0020.0002] # VAI SYLLABLE DO
-A62B ; [.33C7.0020.0004] # VAI SYLLABLE NDOLE DO
-A61E ; [.33C7.0020.0004][.3402.0020.0004] # VAI SYMBOL DO-O
-A5D2 ; [.33C8.0020.0002] # VAI SYLLABLE NDO
-A5D3 ; [.33C9.0020.0002] # VAI SYLLABLE SO
-A5D4 ; [.33CA.0020.0002] # VAI SYLLABLE SHO
-A5D5 ; [.33CB.0020.0002] # VAI SYLLABLE ZO
-A5D6 ; [.33CC.0020.0002] # VAI SYLLABLE ZHO
-A5D7 ; [.33CD.0020.0002] # VAI SYLLABLE CO
-A5D8 ; [.33CE.0020.0002] # VAI SYLLABLE JO
-A61F ; [.33CE.0020.0004][.3401.0020.0004] # VAI SYMBOL JONG
-A5D9 ; [.33CF.0020.0002] # VAI SYLLABLE NJO
-A5DA ; [.33D0.0020.0002] # VAI SYLLABLE YO
-A5DB ; [.33D1.0020.0002] # VAI SYLLABLE KO
-A5DC ; [.33D2.0020.0002] # VAI SYLLABLE NGGO
-A5DD ; [.33D3.0020.0002] # VAI SYLLABLE GO
-A5DE ; [.33D4.0020.0002] # VAI SYLLABLE MO
-A5DF ; [.33D5.0020.0002] # VAI SYLLABLE NO
-A5E0 ; [.33D6.0020.0002] # VAI SYLLABLE NYO
-A5E1 ; [.33D7.0020.0002] # VAI SYLLABLE E
-A5E2 ; [.33D8.0020.0002] # VAI SYLLABLE EN
-A5E3 ; [.33D9.0020.0002] # VAI SYLLABLE NGEN
-A5E4 ; [.33DA.0020.0002] # VAI SYLLABLE HE
-A5E5 ; [.33DB.0020.0002] # VAI SYLLABLE HEN
-A5E6 ; [.33DC.0020.0002] # VAI SYLLABLE WE
-A5E7 ; [.33DD.0020.0002] # VAI SYLLABLE WEN
-A5E8 ; [.33DE.0020.0002] # VAI SYLLABLE PE
-A5E9 ; [.33DF.0020.0002] # VAI SYLLABLE BHE
-A5EA ; [.33E0.0020.0002] # VAI SYLLABLE BE
-A5EB ; [.33E1.0020.0002] # VAI SYLLABLE MBE
-A5EC ; [.33E2.0020.0002] # VAI SYLLABLE KPE
-A5ED ; [.33E3.0020.0002] # VAI SYLLABLE KPEN
-A5EE ; [.33E4.0020.0002] # VAI SYLLABLE MGBE
-A5EF ; [.33E5.0020.0002] # VAI SYLLABLE GBE
-A5F0 ; [.33E6.0020.0002] # VAI SYLLABLE GBEN
-A5F1 ; [.33E7.0020.0002] # VAI SYLLABLE FE
-A5F2 ; [.33E8.0020.0002] # VAI SYLLABLE VE
-A5F3 ; [.33E9.0020.0002] # VAI SYLLABLE TE
-A5F4 ; [.33EA.0020.0002] # VAI SYLLABLE THE
-A5F5 ; [.33EB.0020.0002] # VAI SYLLABLE DHE
-A5F6 ; [.33EC.0020.0002] # VAI SYLLABLE DHHE
-A5F7 ; [.33ED.0020.0002] # VAI SYLLABLE LE
-A5F8 ; [.33EE.0020.0002] # VAI SYLLABLE RE
-A5F9 ; [.33EF.0020.0002] # VAI SYLLABLE DE
-A5FA ; [.33F0.0020.0002] # VAI SYLLABLE NDE
-A5FB ; [.33F1.0020.0002] # VAI SYLLABLE SE
-A5FC ; [.33F2.0020.0002] # VAI SYLLABLE SHE
-A5FD ; [.33F3.0020.0002] # VAI SYLLABLE ZE
-A5FE ; [.33F4.0020.0002] # VAI SYLLABLE ZHE
-A5FF ; [.33F5.0020.0002] # VAI SYLLABLE CE
-A600 ; [.33F6.0020.0002] # VAI SYLLABLE JE
-A601 ; [.33F7.0020.0002] # VAI SYLLABLE NJE
-A602 ; [.33F8.0020.0002] # VAI SYLLABLE YE
-A603 ; [.33F9.0020.0002] # VAI SYLLABLE KE
-A604 ; [.33FA.0020.0002] # VAI SYLLABLE NGGE
-A605 ; [.33FB.0020.0002] # VAI SYLLABLE NGGEN
-A606 ; [.33FC.0020.0002] # VAI SYLLABLE GE
-A607 ; [.33FD.0020.0002] # VAI SYLLABLE GEN
-A608 ; [.33FE.0020.0002] # VAI SYLLABLE ME
-A609 ; [.33FF.0020.0002] # VAI SYLLABLE NE
-A60A ; [.3400.0020.0002] # VAI SYLLABLE NYE
-A60B ; [.3401.0020.0002] # VAI SYLLABLE NG
-A60C ; [.3402.0020.0002] # VAI SYLLABLE LENGTHENER
-A6A0 ; [.3403.0020.0002] # BAMUM LETTER A
-A6A1 ; [.3404.0020.0002] # BAMUM LETTER KA
-A6A2 ; [.3405.0020.0002] # BAMUM LETTER U
-A6A3 ; [.3406.0020.0002] # BAMUM LETTER KU
-A6A4 ; [.3407.0020.0002] # BAMUM LETTER EE
-A6A5 ; [.3408.0020.0002] # BAMUM LETTER REE
-A6A6 ; [.3409.0020.0002] # BAMUM LETTER TAE
-A6A7 ; [.340A.0020.0002] # BAMUM LETTER O
-A6A8 ; [.340B.0020.0002] # BAMUM LETTER NYI
-A6A9 ; [.340C.0020.0002] # BAMUM LETTER I
-A6AA ; [.340D.0020.0002] # BAMUM LETTER LA
-A6AB ; [.340E.0020.0002] # BAMUM LETTER PA
-A6AC ; [.340F.0020.0002] # BAMUM LETTER RII
-A6AD ; [.3410.0020.0002] # BAMUM LETTER RIEE
-A6AE ; [.3411.0020.0002] # BAMUM LETTER LEEEE
-A6AF ; [.3412.0020.0002] # BAMUM LETTER MEEEE
-A6B0 ; [.3413.0020.0002] # BAMUM LETTER TAA
-A6B1 ; [.3414.0020.0002] # BAMUM LETTER NDAA
-A6B2 ; [.3415.0020.0002] # BAMUM LETTER NJAEM
-A6B3 ; [.3416.0020.0002] # BAMUM LETTER M
-A6B4 ; [.3417.0020.0002] # BAMUM LETTER SUU
-A6B5 ; [.3418.0020.0002] # BAMUM LETTER MU
-A6B6 ; [.3419.0020.0002] # BAMUM LETTER SHII
-A6B7 ; [.341A.0020.0002] # BAMUM LETTER SI
-A6B8 ; [.341B.0020.0002] # BAMUM LETTER SHEUX
-A6B9 ; [.341C.0020.0002] # BAMUM LETTER SEUX
-A6BA ; [.341D.0020.0002] # BAMUM LETTER KYEE
-A6BB ; [.341E.0020.0002] # BAMUM LETTER KET
-A6BC ; [.341F.0020.0002] # BAMUM LETTER NUAE
-A6BD ; [.3420.0020.0002] # BAMUM LETTER NU
-A6BE ; [.3421.0020.0002] # BAMUM LETTER NJUAE
-A6BF ; [.3422.0020.0002] # BAMUM LETTER YOQ
-A6C0 ; [.3423.0020.0002] # BAMUM LETTER SHU
-A6C1 ; [.3424.0020.0002] # BAMUM LETTER YUQ
-A6C2 ; [.3425.0020.0002] # BAMUM LETTER YA
-A6C3 ; [.3426.0020.0002] # BAMUM LETTER NSHA
-A6C4 ; [.3427.0020.0002] # BAMUM LETTER KEUX
-A6C5 ; [.3428.0020.0002] # BAMUM LETTER PEUX
-A6C6 ; [.3429.0020.0002] # BAMUM LETTER NJEE
-A6C7 ; [.342A.0020.0002] # BAMUM LETTER NTEE
-A6C8 ; [.342B.0020.0002] # BAMUM LETTER PUE
-A6C9 ; [.342C.0020.0002] # BAMUM LETTER WUE
-A6CA ; [.342D.0020.0002] # BAMUM LETTER PEE
-A6CB ; [.342E.0020.0002] # BAMUM LETTER FEE
-A6CC ; [.342F.0020.0002] # BAMUM LETTER RU
-A6CD ; [.3430.0020.0002] # BAMUM LETTER LU
-A6CE ; [.3431.0020.0002] # BAMUM LETTER MI
-A6CF ; [.3432.0020.0002] # BAMUM LETTER NI
-A6D0 ; [.3433.0020.0002] # BAMUM LETTER REUX
-A6D1 ; [.3434.0020.0002] # BAMUM LETTER RAE
-A6D2 ; [.3435.0020.0002] # BAMUM LETTER KEN
-A6D3 ; [.3436.0020.0002] # BAMUM LETTER NGKWAEN
-A6D4 ; [.3437.0020.0002] # BAMUM LETTER NGGA
-A6D5 ; [.3438.0020.0002] # BAMUM LETTER NGA
-A6D6 ; [.3439.0020.0002] # BAMUM LETTER SHO
-A6D7 ; [.343A.0020.0002] # BAMUM LETTER PUAE
-A6D8 ; [.343B.0020.0002] # BAMUM LETTER FU
-A6D9 ; [.343C.0020.0002] # BAMUM LETTER FOM
-A6DA ; [.343D.0020.0002] # BAMUM LETTER WA
-A6DB ; [.343E.0020.0002] # BAMUM LETTER NA
-A6DC ; [.343F.0020.0002] # BAMUM LETTER LI
-A6DD ; [.3440.0020.0002] # BAMUM LETTER PI
-A6DE ; [.3441.0020.0002] # BAMUM LETTER LOQ
-A6DF ; [.3442.0020.0002] # BAMUM LETTER KO
-A6E0 ; [.3443.0020.0002] # BAMUM LETTER MBEN
-A6E1 ; [.3444.0020.0002] # BAMUM LETTER REN
-A6E2 ; [.3445.0020.0002] # BAMUM LETTER MEN
-A6E3 ; [.3446.0020.0002] # BAMUM LETTER MA
-A6E4 ; [.3447.0020.0002] # BAMUM LETTER TI
-A6E5 ; [.3448.0020.0002] # BAMUM LETTER KI
-A6E6 ; [.3449.0020.0002] # BAMUM LETTER MO
-A6E7 ; [.344A.0020.0002] # BAMUM LETTER MBAA
-A6E8 ; [.344B.0020.0002] # BAMUM LETTER TET
-A6E9 ; [.344C.0020.0002] # BAMUM LETTER KPA
-A6EA ; [.344D.0020.0002] # BAMUM LETTER TEN
-A6EB ; [.344E.0020.0002] # BAMUM LETTER NTUU
-A6EC ; [.344F.0020.0002] # BAMUM LETTER SAMBA
-A6ED ; [.3450.0020.0002] # BAMUM LETTER FAAMAE
-A6EE ; [.3451.0020.0002] # BAMUM LETTER KOVUU
-A6EF ; [.3452.0020.0002] # BAMUM LETTER KOGHOM
-16800 ; [.3453.0020.0002] # BAMUM LETTER PHASE-A NGKUE MFON
-16801 ; [.3454.0020.0002] # BAMUM LETTER PHASE-A GBIEE FON
-16802 ; [.3455.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
-16803 ; [.3456.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMBA
-16804 ; [.3457.0020.0002] # BAMUM LETTER PHASE-A NAA MFON
-16805 ; [.3458.0020.0002] # BAMUM LETTER PHASE-A SHUENSHUET
-16806 ; [.3459.0020.0002] # BAMUM LETTER PHASE-A TITA MFON
-16807 ; [.345A.0020.0002] # BAMUM LETTER PHASE-A NZA MFON
-16808 ; [.345B.0020.0002] # BAMUM LETTER PHASE-A SHINDA PA NJI
-16809 ; [.345C.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
-1680A ; [.345D.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
-1680B ; [.345E.0020.0002] # BAMUM LETTER PHASE-A MAEMBGBIEE
-1680C ; [.345F.0020.0002] # BAMUM LETTER PHASE-A TU MAEMBA
-1680D ; [.3460.0020.0002] # BAMUM LETTER PHASE-A NGANGU
-1680E ; [.3461.0020.0002] # BAMUM LETTER PHASE-A MAEMVEUX
-1680F ; [.3462.0020.0002] # BAMUM LETTER PHASE-A MANSUAE
-16810 ; [.3463.0020.0002] # BAMUM LETTER PHASE-A MVEUAENGAM
-16811 ; [.3464.0020.0002] # BAMUM LETTER PHASE-A SEUNYAM
-16812 ; [.3465.0020.0002] # BAMUM LETTER PHASE-A NTOQPEN
-16813 ; [.3466.0020.0002] # BAMUM LETTER PHASE-A KEUKEUTNDA
-16814 ; [.3467.0020.0002] # BAMUM LETTER PHASE-A NKINDI
-16815 ; [.3468.0020.0002] # BAMUM LETTER PHASE-A SUU
-16816 ; [.3469.0020.0002] # BAMUM LETTER PHASE-A NGKUENZEUM
-16817 ; [.346A.0020.0002] # BAMUM LETTER PHASE-A LAPAQ
-16818 ; [.346B.0020.0002] # BAMUM LETTER PHASE-A LET KUT
-16819 ; [.346C.0020.0002] # BAMUM LETTER PHASE-A NTAP MFAA
-1681A ; [.346D.0020.0002] # BAMUM LETTER PHASE-A MAEKEUP
-1681B ; [.346E.0020.0002] # BAMUM LETTER PHASE-A PASHAE
-1681C ; [.346F.0020.0002] # BAMUM LETTER PHASE-A GHEUAERAE
-1681D ; [.3470.0020.0002] # BAMUM LETTER PHASE-A PAMSHAE
-1681E ; [.3471.0020.0002] # BAMUM LETTER PHASE-A MON NGGEUAET
-1681F ; [.3472.0020.0002] # BAMUM LETTER PHASE-A NZUN MEUT
-16820 ; [.3473.0020.0002] # BAMUM LETTER PHASE-A U YUQ NAE
-16821 ; [.3474.0020.0002] # BAMUM LETTER PHASE-A GHEUAEGHEUAE
-16822 ; [.3475.0020.0002] # BAMUM LETTER PHASE-A NTAP NTAA
-16823 ; [.3476.0020.0002] # BAMUM LETTER PHASE-A SISA
-16824 ; [.3477.0020.0002] # BAMUM LETTER PHASE-A MGBASA
-16825 ; [.3478.0020.0002] # BAMUM LETTER PHASE-A MEUNJOMNDEUQ
-16826 ; [.3479.0020.0002] # BAMUM LETTER PHASE-A MOOMPUQ
-16827 ; [.347A.0020.0002] # BAMUM LETTER PHASE-A KAFA
-16828 ; [.347B.0020.0002] # BAMUM LETTER PHASE-A PA LEERAEWA
-16829 ; [.347C.0020.0002] # BAMUM LETTER PHASE-A NDA LEERAEWA
-1682A ; [.347D.0020.0002] # BAMUM LETTER PHASE-A PET
-1682B ; [.347E.0020.0002] # BAMUM LETTER PHASE-A MAEMKPEN
-1682C ; [.347F.0020.0002] # BAMUM LETTER PHASE-A NIKA
-1682D ; [.3480.0020.0002] # BAMUM LETTER PHASE-A PUP
-1682E ; [.3481.0020.0002] # BAMUM LETTER PHASE-A TUAEP
-1682F ; [.3482.0020.0002] # BAMUM LETTER PHASE-A LUAEP
-16830 ; [.3483.0020.0002] # BAMUM LETTER PHASE-A SONJAM
-16831 ; [.3484.0020.0002] # BAMUM LETTER PHASE-A TEUTEUWEN
-16832 ; [.3485.0020.0002] # BAMUM LETTER PHASE-A MAENYI
-16833 ; [.3486.0020.0002] # BAMUM LETTER PHASE-A KET
-16834 ; [.3487.0020.0002] # BAMUM LETTER PHASE-A NDAANGGEUAET
-16835 ; [.3488.0020.0002] # BAMUM LETTER PHASE-A KUOQ
-16836 ; [.3489.0020.0002] # BAMUM LETTER PHASE-A MOOMEUT
-16837 ; [.348A.0020.0002] # BAMUM LETTER PHASE-A SHUM
-16838 ; [.348B.0020.0002] # BAMUM LETTER PHASE-A LOMMAE
-16839 ; [.348C.0020.0002] # BAMUM LETTER PHASE-A FIRI
-1683A ; [.348D.0020.0002] # BAMUM LETTER PHASE-A ROM
-1683B ; [.348E.0020.0002] # BAMUM LETTER PHASE-A KPOQ
-1683C ; [.348F.0020.0002] # BAMUM LETTER PHASE-A SOQ
-1683D ; [.3490.0020.0002] # BAMUM LETTER PHASE-A MAP PIEET
-1683E ; [.3491.0020.0002] # BAMUM LETTER PHASE-A SHIRAE
-1683F ; [.3492.0020.0002] # BAMUM LETTER PHASE-A NTAP
-16840 ; [.3493.0020.0002] # BAMUM LETTER PHASE-A SHOQ NSHUT YUM
-16841 ; [.3494.0020.0002] # BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
-16842 ; [.3495.0020.0002] # BAMUM LETTER PHASE-A PAARAE
-16843 ; [.3496.0020.0002] # BAMUM LETTER PHASE-A NKAARAE
-16844 ; [.3497.0020.0002] # BAMUM LETTER PHASE-A UNKNOWN
-16845 ; [.3498.0020.0002] # BAMUM LETTER PHASE-A NGGEN
-16846 ; [.3499.0020.0002] # BAMUM LETTER PHASE-A MAESI
-16847 ; [.349A.0020.0002] # BAMUM LETTER PHASE-A NJAM
-16848 ; [.349B.0020.0002] # BAMUM LETTER PHASE-A MBANYI
-16849 ; [.349C.0020.0002] # BAMUM LETTER PHASE-A NYET
-1684A ; [.349D.0020.0002] # BAMUM LETTER PHASE-A TEUAEN
-1684B ; [.349E.0020.0002] # BAMUM LETTER PHASE-A SOT
-1684C ; [.349F.0020.0002] # BAMUM LETTER PHASE-A PAAM
-1684D ; [.34A0.0020.0002] # BAMUM LETTER PHASE-A NSHIEE
-1684E ; [.34A1.0020.0002] # BAMUM LETTER PHASE-A MAEM
-1684F ; [.34A2.0020.0002] # BAMUM LETTER PHASE-A NYI
-16850 ; [.34A3.0020.0002] # BAMUM LETTER PHASE-A KAQ
-16851 ; [.34A4.0020.0002] # BAMUM LETTER PHASE-A NSHA
-16852 ; [.34A5.0020.0002] # BAMUM LETTER PHASE-A VEE
-16853 ; [.34A6.0020.0002] # BAMUM LETTER PHASE-A LU
-16854 ; [.34A7.0020.0002] # BAMUM LETTER PHASE-A NEN
-16855 ; [.34A8.0020.0002] # BAMUM LETTER PHASE-A NAQ
-16856 ; [.34A9.0020.0002] # BAMUM LETTER PHASE-A MBAQ
-16857 ; [.34AA.0020.0002] # BAMUM LETTER PHASE-B NSHUET
-16858 ; [.34AB.0020.0002] # BAMUM LETTER PHASE-B TU MAEMGBIEE
-16859 ; [.34AC.0020.0002] # BAMUM LETTER PHASE-B SIEE
-1685A ; [.34AD.0020.0002] # BAMUM LETTER PHASE-B SET TU
-1685B ; [.34AE.0020.0002] # BAMUM LETTER PHASE-B LOM NTEUM
-1685C ; [.34AF.0020.0002] # BAMUM LETTER PHASE-B MBA MAELEE
-1685D ; [.34B0.0020.0002] # BAMUM LETTER PHASE-B KIEEM
-1685E ; [.34B1.0020.0002] # BAMUM LETTER PHASE-B YEURAE
-1685F ; [.34B2.0020.0002] # BAMUM LETTER PHASE-B MBAARAE
-16860 ; [.34B3.0020.0002] # BAMUM LETTER PHASE-B KAM
-16861 ; [.34B4.0020.0002] # BAMUM LETTER PHASE-B PEESHI
-16862 ; [.34B5.0020.0002] # BAMUM LETTER PHASE-B YAFU LEERAEWA
-16863 ; [.34B6.0020.0002] # BAMUM LETTER PHASE-B LAM NSHUT NYAM
-16864 ; [.34B7.0020.0002] # BAMUM LETTER PHASE-B NTIEE SHEUOQ
-16865 ; [.34B8.0020.0002] # BAMUM LETTER PHASE-B NDU NJAA
-16866 ; [.34B9.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEUAEM
-16867 ; [.34BA.0020.0002] # BAMUM LETTER PHASE-B PIT
-16868 ; [.34BB.0020.0002] # BAMUM LETTER PHASE-B TU NSIEE
-16869 ; [.34BC.0020.0002] # BAMUM LETTER PHASE-B SHET NJAQ
-1686A ; [.34BD.0020.0002] # BAMUM LETTER PHASE-B SHEUAEQTU
-1686B ; [.34BE.0020.0002] # BAMUM LETTER PHASE-B MFON TEUAEQ
-1686C ; [.34BF.0020.0002] # BAMUM LETTER PHASE-B MBIT MBAAKET
-1686D ; [.34C0.0020.0002] # BAMUM LETTER PHASE-B NYI NTEUM
-1686E ; [.34C1.0020.0002] # BAMUM LETTER PHASE-B KEUPUQ
-1686F ; [.34C2.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEN
-16870 ; [.34C3.0020.0002] # BAMUM LETTER PHASE-B KEUYEUX
-16871 ; [.34C4.0020.0002] # BAMUM LETTER PHASE-B LAANAE
-16872 ; [.34C5.0020.0002] # BAMUM LETTER PHASE-B PARUM
-16873 ; [.34C6.0020.0002] # BAMUM LETTER PHASE-B VEUM
-16874 ; [.34C7.0020.0002] # BAMUM LETTER PHASE-B NGKINDI MVOP
-16875 ; [.34C8.0020.0002] # BAMUM LETTER PHASE-B NGGEU MBU
-16876 ; [.34C9.0020.0002] # BAMUM LETTER PHASE-B WUAET
-16877 ; [.34CA.0020.0002] # BAMUM LETTER PHASE-B SAKEUAE
-16878 ; [.34CB.0020.0002] # BAMUM LETTER PHASE-B TAAM
-16879 ; [.34CC.0020.0002] # BAMUM LETTER PHASE-B MEUQ
-1687A ; [.34CD.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ
-1687B ; [.34CE.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ LARGE
-1687C ; [.34CF.0020.0002] # BAMUM LETTER PHASE-B MFIYAQ
-1687D ; [.34D0.0020.0002] # BAMUM LETTER PHASE-B SUE
-1687E ; [.34D1.0020.0002] # BAMUM LETTER PHASE-B MBEURI
-1687F ; [.34D2.0020.0002] # BAMUM LETTER PHASE-B MONTIEEN
-16880 ; [.34D3.0020.0002] # BAMUM LETTER PHASE-B NYAEMAE
-16881 ; [.34D4.0020.0002] # BAMUM LETTER PHASE-B PUNGAAM
-16882 ; [.34D5.0020.0002] # BAMUM LETTER PHASE-B MEUT NGGEET
-16883 ; [.34D6.0020.0002] # BAMUM LETTER PHASE-B FEUX
-16884 ; [.34D7.0020.0002] # BAMUM LETTER PHASE-B MBUOQ
-16885 ; [.34D8.0020.0002] # BAMUM LETTER PHASE-B FEE
-16886 ; [.34D9.0020.0002] # BAMUM LETTER PHASE-B KEUAEM
-16887 ; [.34DA.0020.0002] # BAMUM LETTER PHASE-B MA NJEUAENA
-16888 ; [.34DB.0020.0002] # BAMUM LETTER PHASE-B MA NJUQA
-16889 ; [.34DC.0020.0002] # BAMUM LETTER PHASE-B LET
-1688A ; [.34DD.0020.0002] # BAMUM LETTER PHASE-B NGGAAM
-1688B ; [.34DE.0020.0002] # BAMUM LETTER PHASE-B NSEN
-1688C ; [.34DF.0020.0002] # BAMUM LETTER PHASE-B MA
-1688D ; [.34E0.0020.0002] # BAMUM LETTER PHASE-B KIQ
-1688E ; [.34E1.0020.0002] # BAMUM LETTER PHASE-B NGOM
-1688F ; [.34E2.0020.0002] # BAMUM LETTER PHASE-C NGKUE MAEMBA
-16890 ; [.34E3.0020.0002] # BAMUM LETTER PHASE-C NZA
-16891 ; [.34E4.0020.0002] # BAMUM LETTER PHASE-C YUM
-16892 ; [.34E5.0020.0002] # BAMUM LETTER PHASE-C WANGKUOQ
-16893 ; [.34E6.0020.0002] # BAMUM LETTER PHASE-C NGGEN
-16894 ; [.34E7.0020.0002] # BAMUM LETTER PHASE-C NDEUAEREE
-16895 ; [.34E8.0020.0002] # BAMUM LETTER PHASE-C NGKAQ
-16896 ; [.34E9.0020.0002] # BAMUM LETTER PHASE-C GHARAE
-16897 ; [.34EA.0020.0002] # BAMUM LETTER PHASE-C MBEEKEET
-16898 ; [.34EB.0020.0002] # BAMUM LETTER PHASE-C GBAYI
-16899 ; [.34EC.0020.0002] # BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
-1689A ; [.34ED.0020.0002] # BAMUM LETTER PHASE-C NTU MBIT
-1689B ; [.34EE.0020.0002] # BAMUM LETTER PHASE-C MBEUM
-1689C ; [.34EF.0020.0002] # BAMUM LETTER PHASE-C PIRIEEN
-1689D ; [.34F0.0020.0002] # BAMUM LETTER PHASE-C NDOMBU
-1689E ; [.34F1.0020.0002] # BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
-1689F ; [.34F2.0020.0002] # BAMUM LETTER PHASE-C KEUSHEUAEP
-168A0 ; [.34F3.0020.0002] # BAMUM LETTER PHASE-C GHAP
-168A1 ; [.34F4.0020.0002] # BAMUM LETTER PHASE-C KEUKAQ
-168A2 ; [.34F5.0020.0002] # BAMUM LETTER PHASE-C YU MUOMAE
-168A3 ; [.34F6.0020.0002] # BAMUM LETTER PHASE-C NZEUM
-168A4 ; [.34F7.0020.0002] # BAMUM LETTER PHASE-C MBUE
-168A5 ; [.34F8.0020.0002] # BAMUM LETTER PHASE-C NSEUAEN
-168A6 ; [.34F9.0020.0002] # BAMUM LETTER PHASE-C MBIT
-168A7 ; [.34FA.0020.0002] # BAMUM LETTER PHASE-C YEUQ
-168A8 ; [.34FB.0020.0002] # BAMUM LETTER PHASE-C KPARAQ
-168A9 ; [.34FC.0020.0002] # BAMUM LETTER PHASE-C KAA
-168AA ; [.34FD.0020.0002] # BAMUM LETTER PHASE-C SEUX
-168AB ; [.34FE.0020.0002] # BAMUM LETTER PHASE-C NDIDA
-168AC ; [.34FF.0020.0002] # BAMUM LETTER PHASE-C TAASHAE
-168AD ; [.3500.0020.0002] # BAMUM LETTER PHASE-C NJUEQ
-168AE ; [.3501.0020.0002] # BAMUM LETTER PHASE-C TITA YUE
-168AF ; [.3502.0020.0002] # BAMUM LETTER PHASE-C SUAET
-168B0 ; [.3503.0020.0002] # BAMUM LETTER PHASE-C NGGUAEN NYAM
-168B1 ; [.3504.0020.0002] # BAMUM LETTER PHASE-C VEUX
-168B2 ; [.3505.0020.0002] # BAMUM LETTER PHASE-C NANSANAQ
-168B3 ; [.3506.0020.0002] # BAMUM LETTER PHASE-C MA KEUAERI
-168B4 ; [.3507.0020.0002] # BAMUM LETTER PHASE-C NTAA
-168B5 ; [.3508.0020.0002] # BAMUM LETTER PHASE-C NGGUON
-168B6 ; [.3509.0020.0002] # BAMUM LETTER PHASE-C LAP
-168B7 ; [.350A.0020.0002] # BAMUM LETTER PHASE-C MBIRIEEN
-168B8 ; [.350B.0020.0002] # BAMUM LETTER PHASE-C MGBASAQ
-168B9 ; [.350C.0020.0002] # BAMUM LETTER PHASE-C NTEUNGBA
-168BA ; [.350D.0020.0002] # BAMUM LETTER PHASE-C TEUTEUX
-168BB ; [.350E.0020.0002] # BAMUM LETTER PHASE-C NGGUM
-168BC ; [.350F.0020.0002] # BAMUM LETTER PHASE-C FUE
-168BD ; [.3510.0020.0002] # BAMUM LETTER PHASE-C NDEUT
-168BE ; [.3511.0020.0002] # BAMUM LETTER PHASE-C NSA
-168BF ; [.3512.0020.0002] # BAMUM LETTER PHASE-C NSHAQ
-168C0 ; [.3513.0020.0002] # BAMUM LETTER PHASE-C BUNG
-168C1 ; [.3514.0020.0002] # BAMUM LETTER PHASE-C VEUAEPEN
-168C2 ; [.3515.0020.0002] # BAMUM LETTER PHASE-C MBERAE
-168C3 ; [.3516.0020.0002] # BAMUM LETTER PHASE-C RU
-168C4 ; [.3517.0020.0002] # BAMUM LETTER PHASE-C NJAEM
-168C5 ; [.3518.0020.0002] # BAMUM LETTER PHASE-C LAM
-168C6 ; [.3519.0020.0002] # BAMUM LETTER PHASE-C TITUAEP
-168C7 ; [.351A.0020.0002] # BAMUM LETTER PHASE-C NSUOT NGOM
-168C8 ; [.351B.0020.0002] # BAMUM LETTER PHASE-C NJEEEE
-168C9 ; [.351C.0020.0002] # BAMUM LETTER PHASE-C KET
-168CA ; [.351D.0020.0002] # BAMUM LETTER PHASE-C NGGU
-168CB ; [.351E.0020.0002] # BAMUM LETTER PHASE-C MAESI
-168CC ; [.351F.0020.0002] # BAMUM LETTER PHASE-C MBUAEM
-168CD ; [.3520.0020.0002] # BAMUM LETTER PHASE-C LU
-168CE ; [.3521.0020.0002] # BAMUM LETTER PHASE-C KUT
-168CF ; [.3522.0020.0002] # BAMUM LETTER PHASE-C NJAM
-168D0 ; [.3523.0020.0002] # BAMUM LETTER PHASE-C NGOM
-168D1 ; [.3524.0020.0002] # BAMUM LETTER PHASE-C WUP
-168D2 ; [.3525.0020.0002] # BAMUM LETTER PHASE-C NGGUEET
-168D3 ; [.3526.0020.0002] # BAMUM LETTER PHASE-C NSOM
-168D4 ; [.3527.0020.0002] # BAMUM LETTER PHASE-C NTEN
-168D5 ; [.3528.0020.0002] # BAMUM LETTER PHASE-C KUOP NKAARAE
-168D6 ; [.3529.0020.0002] # BAMUM LETTER PHASE-C NSUN
-168D7 ; [.352A.0020.0002] # BAMUM LETTER PHASE-C NDAM
-168D8 ; [.352B.0020.0002] # BAMUM LETTER PHASE-C MA NSIEE
-168D9 ; [.352C.0020.0002] # BAMUM LETTER PHASE-C YAA
-168DA ; [.352D.0020.0002] # BAMUM LETTER PHASE-C NDAP
-168DB ; [.352E.0020.0002] # BAMUM LETTER PHASE-C SHUEQ
-168DC ; [.352F.0020.0002] # BAMUM LETTER PHASE-C SETFON
-168DD ; [.3530.0020.0002] # BAMUM LETTER PHASE-C MBI
-168DE ; [.3531.0020.0002] # BAMUM LETTER PHASE-C MAEMBA
-168DF ; [.3532.0020.0002] # BAMUM LETTER PHASE-C MBANYI
-168E0 ; [.3533.0020.0002] # BAMUM LETTER PHASE-C KEUSEUX
-168E1 ; [.3534.0020.0002] # BAMUM LETTER PHASE-C MBEUX
-168E2 ; [.3535.0020.0002] # BAMUM LETTER PHASE-C KEUM
-168E3 ; [.3536.0020.0002] # BAMUM LETTER PHASE-C MBAA PICKET
-168E4 ; [.3537.0020.0002] # BAMUM LETTER PHASE-C YUWOQ
-168E5 ; [.3538.0020.0002] # BAMUM LETTER PHASE-C NJEUX
-168E6 ; [.3539.0020.0002] # BAMUM LETTER PHASE-C MIEE
-168E7 ; [.353A.0020.0002] # BAMUM LETTER PHASE-C MUAE
-168E8 ; [.353B.0020.0002] # BAMUM LETTER PHASE-C SHIQ
-168E9 ; [.353C.0020.0002] # BAMUM LETTER PHASE-C KEN LAW
-168EA ; [.353D.0020.0002] # BAMUM LETTER PHASE-C KEN FATIGUE
-168EB ; [.353E.0020.0002] # BAMUM LETTER PHASE-C NGAQ
-168EC ; [.353F.0020.0002] # BAMUM LETTER PHASE-C NAQ
-168ED ; [.3540.0020.0002] # BAMUM LETTER PHASE-C LIQ
-168EE ; [.3541.0020.0002] # BAMUM LETTER PHASE-C PIN
-168EF ; [.3542.0020.0002] # BAMUM LETTER PHASE-C PEN
-168F0 ; [.3543.0020.0002] # BAMUM LETTER PHASE-C TET
-168F1 ; [.3544.0020.0002] # BAMUM LETTER PHASE-D MBUO
-168F2 ; [.3545.0020.0002] # BAMUM LETTER PHASE-D WAP
-168F3 ; [.3546.0020.0002] # BAMUM LETTER PHASE-D NJI
-168F4 ; [.3547.0020.0002] # BAMUM LETTER PHASE-D MFON
-168F5 ; [.3548.0020.0002] # BAMUM LETTER PHASE-D NJIEE
-168F6 ; [.3549.0020.0002] # BAMUM LETTER PHASE-D LIEE
-168F7 ; [.354A.0020.0002] # BAMUM LETTER PHASE-D NJEUT
-168F8 ; [.354B.0020.0002] # BAMUM LETTER PHASE-D NSHEE
-168F9 ; [.354C.0020.0002] # BAMUM LETTER PHASE-D NGGAAMAE
-168FA ; [.354D.0020.0002] # BAMUM LETTER PHASE-D NYAM
-168FB ; [.354E.0020.0002] # BAMUM LETTER PHASE-D WUAEN
-168FC ; [.354F.0020.0002] # BAMUM LETTER PHASE-D NGKUN
-168FD ; [.3550.0020.0002] # BAMUM LETTER PHASE-D SHEE
-168FE ; [.3551.0020.0002] # BAMUM LETTER PHASE-D NGKAP
-168FF ; [.3552.0020.0002] # BAMUM LETTER PHASE-D KEUAETMEUN
-16900 ; [.3553.0020.0002] # BAMUM LETTER PHASE-D TEUT
-16901 ; [.3554.0020.0002] # BAMUM LETTER PHASE-D SHEUAE
-16902 ; [.3555.0020.0002] # BAMUM LETTER PHASE-D NJAP
-16903 ; [.3556.0020.0002] # BAMUM LETTER PHASE-D SUE
-16904 ; [.3557.0020.0002] # BAMUM LETTER PHASE-D KET
-16905 ; [.3558.0020.0002] # BAMUM LETTER PHASE-D YAEMMAE
-16906 ; [.3559.0020.0002] # BAMUM LETTER PHASE-D KUOM
-16907 ; [.355A.0020.0002] # BAMUM LETTER PHASE-D SAP
-16908 ; [.355B.0020.0002] # BAMUM LETTER PHASE-D MFEUT
-16909 ; [.355C.0020.0002] # BAMUM LETTER PHASE-D NDEUX
-1690A ; [.355D.0020.0002] # BAMUM LETTER PHASE-D MALEERI
-1690B ; [.355E.0020.0002] # BAMUM LETTER PHASE-D MEUT
-1690C ; [.355F.0020.0002] # BAMUM LETTER PHASE-D SEUAEQ
-1690D ; [.3560.0020.0002] # BAMUM LETTER PHASE-D YEN
-1690E ; [.3561.0020.0002] # BAMUM LETTER PHASE-D NJEUAEM
-1690F ; [.3562.0020.0002] # BAMUM LETTER PHASE-D KEUOT MBUAE
-16910 ; [.3563.0020.0002] # BAMUM LETTER PHASE-D NGKEURI
-16911 ; [.3564.0020.0002] # BAMUM LETTER PHASE-D TU
-16912 ; [.3565.0020.0002] # BAMUM LETTER PHASE-D GHAA
-16913 ; [.3566.0020.0002] # BAMUM LETTER PHASE-D NGKYEE
-16914 ; [.3567.0020.0002] # BAMUM LETTER PHASE-D FEUFEUAET
-16915 ; [.3568.0020.0002] # BAMUM LETTER PHASE-D NDEE
-16916 ; [.3569.0020.0002] # BAMUM LETTER PHASE-D MGBOFUM
-16917 ; [.356A.0020.0002] # BAMUM LETTER PHASE-D LEUAEP
-16918 ; [.356B.0020.0002] # BAMUM LETTER PHASE-D NDON
-16919 ; [.356C.0020.0002] # BAMUM LETTER PHASE-D MONI
-1691A ; [.356D.0020.0002] # BAMUM LETTER PHASE-D MGBEUN
-1691B ; [.356E.0020.0002] # BAMUM LETTER PHASE-D PUUT
-1691C ; [.356F.0020.0002] # BAMUM LETTER PHASE-D MGBIEE
-1691D ; [.3570.0020.0002] # BAMUM LETTER PHASE-D MFO
-1691E ; [.3571.0020.0002] # BAMUM LETTER PHASE-D LUM
-1691F ; [.3572.0020.0002] # BAMUM LETTER PHASE-D NSIEEP
-16920 ; [.3573.0020.0002] # BAMUM LETTER PHASE-D MBAA
-16921 ; [.3574.0020.0002] # BAMUM LETTER PHASE-D KWAET
-16922 ; [.3575.0020.0002] # BAMUM LETTER PHASE-D NYET
-16923 ; [.3576.0020.0002] # BAMUM LETTER PHASE-D TEUAEN
-16924 ; [.3577.0020.0002] # BAMUM LETTER PHASE-D SOT
-16925 ; [.3578.0020.0002] # BAMUM LETTER PHASE-D YUWOQ
-16926 ; [.3579.0020.0002] # BAMUM LETTER PHASE-D KEUM
-16927 ; [.357A.0020.0002] # BAMUM LETTER PHASE-D RAEM
-16928 ; [.357B.0020.0002] # BAMUM LETTER PHASE-D TEEEE
-16929 ; [.357C.0020.0002] # BAMUM LETTER PHASE-D NGKEUAEQ
-1692A ; [.357D.0020.0002] # BAMUM LETTER PHASE-D MFEUAE
-1692B ; [.357E.0020.0002] # BAMUM LETTER PHASE-D NSIEET
-1692C ; [.357F.0020.0002] # BAMUM LETTER PHASE-D KEUP
-1692D ; [.3580.0020.0002] # BAMUM LETTER PHASE-D PIP
-1692E ; [.3581.0020.0002] # BAMUM LETTER PHASE-D PEUTAE
-1692F ; [.3582.0020.0002] # BAMUM LETTER PHASE-D NYUE
-16930 ; [.3583.0020.0002] # BAMUM LETTER PHASE-D LET
-16931 ; [.3584.0020.0002] # BAMUM LETTER PHASE-D NGGAAM
-16932 ; [.3585.0020.0002] # BAMUM LETTER PHASE-D MFIEE
-16933 ; [.3586.0020.0002] # BAMUM LETTER PHASE-D NGGWAEN
-16934 ; [.3587.0020.0002] # BAMUM LETTER PHASE-D YUOM
-16935 ; [.3588.0020.0002] # BAMUM LETTER PHASE-D PAP
-16936 ; [.3589.0020.0002] # BAMUM LETTER PHASE-D YUOP
-16937 ; [.358A.0020.0002] # BAMUM LETTER PHASE-D NDAM
-16938 ; [.358B.0020.0002] # BAMUM LETTER PHASE-D NTEUM
-16939 ; [.358C.0020.0002] # BAMUM LETTER PHASE-D SUAE
-1693A ; [.358D.0020.0002] # BAMUM LETTER PHASE-D KUN
-1693B ; [.358E.0020.0002] # BAMUM LETTER PHASE-D NGGEUX
-1693C ; [.358F.0020.0002] # BAMUM LETTER PHASE-D NGKIEE
-1693D ; [.3590.0020.0002] # BAMUM LETTER PHASE-D TUOT
-1693E ; [.3591.0020.0002] # BAMUM LETTER PHASE-D MEUN
-1693F ; [.3592.0020.0002] # BAMUM LETTER PHASE-D KUQ
-16940 ; [.3593.0020.0002] # BAMUM LETTER PHASE-D NSUM
-16941 ; [.3594.0020.0002] # BAMUM LETTER PHASE-D TEUN
-16942 ; [.3595.0020.0002] # BAMUM LETTER PHASE-D MAENJET
-16943 ; [.3596.0020.0002] # BAMUM LETTER PHASE-D NGGAP
-16944 ; [.3597.0020.0002] # BAMUM LETTER PHASE-D LEUM
-16945 ; [.3598.0020.0002] # BAMUM LETTER PHASE-D NGGUOM
-16946 ; [.3599.0020.0002] # BAMUM LETTER PHASE-D NSHUT
-16947 ; [.359A.0020.0002] # BAMUM LETTER PHASE-D NJUEQ
-16948 ; [.359B.0020.0002] # BAMUM LETTER PHASE-D GHEUAE
-16949 ; [.359C.0020.0002] # BAMUM LETTER PHASE-D KU
-1694A ; [.359D.0020.0002] # BAMUM LETTER PHASE-D REN OLD
-1694B ; [.359E.0020.0002] # BAMUM LETTER PHASE-D TAE
-1694C ; [.359F.0020.0002] # BAMUM LETTER PHASE-D TOQ
-1694D ; [.35A0.0020.0002] # BAMUM LETTER PHASE-D NYI
-1694E ; [.35A1.0020.0002] # BAMUM LETTER PHASE-D RII
-1694F ; [.35A2.0020.0002] # BAMUM LETTER PHASE-D LEEEE
-16950 ; [.35A3.0020.0002] # BAMUM LETTER PHASE-D MEEEE
-16951 ; [.35A4.0020.0002] # BAMUM LETTER PHASE-D M
-16952 ; [.35A5.0020.0002] # BAMUM LETTER PHASE-D SUU
-16953 ; [.35A6.0020.0002] # BAMUM LETTER PHASE-D MU
-16954 ; [.35A7.0020.0002] # BAMUM LETTER PHASE-D SHII
-16955 ; [.35A8.0020.0002] # BAMUM LETTER PHASE-D SHEUX
-16956 ; [.35A9.0020.0002] # BAMUM LETTER PHASE-D KYEE
-16957 ; [.35AA.0020.0002] # BAMUM LETTER PHASE-D NU
-16958 ; [.35AB.0020.0002] # BAMUM LETTER PHASE-D SHU
-16959 ; [.35AC.0020.0002] # BAMUM LETTER PHASE-D NTEE
-1695A ; [.35AD.0020.0002] # BAMUM LETTER PHASE-D PEE
-1695B ; [.35AE.0020.0002] # BAMUM LETTER PHASE-D NI
-1695C ; [.35AF.0020.0002] # BAMUM LETTER PHASE-D SHOQ
-1695D ; [.35B0.0020.0002] # BAMUM LETTER PHASE-D PUQ
-1695E ; [.35B1.0020.0002] # BAMUM LETTER PHASE-D MVOP
-1695F ; [.35B2.0020.0002] # BAMUM LETTER PHASE-D LOQ
-16960 ; [.35B3.0020.0002] # BAMUM LETTER PHASE-D REN MUCH
-16961 ; [.35B4.0020.0002] # BAMUM LETTER PHASE-D TI
-16962 ; [.35B5.0020.0002] # BAMUM LETTER PHASE-D NTUU
-16963 ; [.35B6.0020.0002] # BAMUM LETTER PHASE-D MBAA SEVEN
-16964 ; [.35B7.0020.0002] # BAMUM LETTER PHASE-D SAQ
-16965 ; [.35B8.0020.0002] # BAMUM LETTER PHASE-D FAA
-16966 ; [.35B9.0020.0002] # BAMUM LETTER PHASE-E NDAP
-16967 ; [.35BA.0020.0002] # BAMUM LETTER PHASE-E TOON
-16968 ; [.35BB.0020.0002] # BAMUM LETTER PHASE-E MBEUM
-16969 ; [.35BC.0020.0002] # BAMUM LETTER PHASE-E LAP
-1696A ; [.35BD.0020.0002] # BAMUM LETTER PHASE-E VOM
-1696B ; [.35BE.0020.0002] # BAMUM LETTER PHASE-E LOON
-1696C ; [.35BF.0020.0002] # BAMUM LETTER PHASE-E PAA
-1696D ; [.35C0.0020.0002] # BAMUM LETTER PHASE-E SOM
-1696E ; [.35C1.0020.0002] # BAMUM LETTER PHASE-E RAQ
-1696F ; [.35C2.0020.0002] # BAMUM LETTER PHASE-E NSHUOP
-16970 ; [.35C3.0020.0002] # BAMUM LETTER PHASE-E NDUN
-16971 ; [.35C4.0020.0002] # BAMUM LETTER PHASE-E PUAE
-16972 ; [.35C5.0020.0002] # BAMUM LETTER PHASE-E TAM
-16973 ; [.35C6.0020.0002] # BAMUM LETTER PHASE-E NGKA
-16974 ; [.35C7.0020.0002] # BAMUM LETTER PHASE-E KPEUX
-16975 ; [.35C8.0020.0002] # BAMUM LETTER PHASE-E WUO
-16976 ; [.35C9.0020.0002] # BAMUM LETTER PHASE-E SEE
-16977 ; [.35CA.0020.0002] # BAMUM LETTER PHASE-E NGGEUAET
-16978 ; [.35CB.0020.0002] # BAMUM LETTER PHASE-E PAAM
-16979 ; [.35CC.0020.0002] # BAMUM LETTER PHASE-E TOO
-1697A ; [.35CD.0020.0002] # BAMUM LETTER PHASE-E KUOP
-1697B ; [.35CE.0020.0002] # BAMUM LETTER PHASE-E LOM
-1697C ; [.35CF.0020.0002] # BAMUM LETTER PHASE-E NSHIEE
-1697D ; [.35D0.0020.0002] # BAMUM LETTER PHASE-E NGOP
-1697E ; [.35D1.0020.0002] # BAMUM LETTER PHASE-E MAEM
-1697F ; [.35D2.0020.0002] # BAMUM LETTER PHASE-E NGKEUX
-16980 ; [.35D3.0020.0002] # BAMUM LETTER PHASE-E NGOQ
-16981 ; [.35D4.0020.0002] # BAMUM LETTER PHASE-E NSHUE
-16982 ; [.35D5.0020.0002] # BAMUM LETTER PHASE-E RIMGBA
-16983 ; [.35D6.0020.0002] # BAMUM LETTER PHASE-E NJEUX
-16984 ; [.35D7.0020.0002] # BAMUM LETTER PHASE-E PEEM
-16985 ; [.35D8.0020.0002] # BAMUM LETTER PHASE-E SAA
-16986 ; [.35D9.0020.0002] # BAMUM LETTER PHASE-E NGGURAE
-16987 ; [.35DA.0020.0002] # BAMUM LETTER PHASE-E MGBA
-16988 ; [.35DB.0020.0002] # BAMUM LETTER PHASE-E GHEUX
-16989 ; [.35DC.0020.0002] # BAMUM LETTER PHASE-E NGKEUAEM
-1698A ; [.35DD.0020.0002] # BAMUM LETTER PHASE-E NJAEMLI
-1698B ; [.35DE.0020.0002] # BAMUM LETTER PHASE-E MAP
-1698C ; [.35DF.0020.0002] # BAMUM LETTER PHASE-E LOOT
-1698D ; [.35E0.0020.0002] # BAMUM LETTER PHASE-E NGGEEEE
-1698E ; [.35E1.0020.0002] # BAMUM LETTER PHASE-E NDIQ
-1698F ; [.35E2.0020.0002] # BAMUM LETTER PHASE-E TAEN NTEUM
-16990 ; [.35E3.0020.0002] # BAMUM LETTER PHASE-E SET
-16991 ; [.35E4.0020.0002] # BAMUM LETTER PHASE-E PUM
-16992 ; [.35E5.0020.0002] # BAMUM LETTER PHASE-E NDAA SOFTNESS
-16993 ; [.35E6.0020.0002] # BAMUM LETTER PHASE-E NGGUAESHAE NYAM
-16994 ; [.35E7.0020.0002] # BAMUM LETTER PHASE-E YIEE
-16995 ; [.35E8.0020.0002] # BAMUM LETTER PHASE-E GHEUN
-16996 ; [.35E9.0020.0002] # BAMUM LETTER PHASE-E TUAE
-16997 ; [.35EA.0020.0002] # BAMUM LETTER PHASE-E YEUAE
-16998 ; [.35EB.0020.0002] # BAMUM LETTER PHASE-E PO
-16999 ; [.35EC.0020.0002] # BAMUM LETTER PHASE-E TUMAE
-1699A ; [.35ED.0020.0002] # BAMUM LETTER PHASE-E KEUAE
-1699B ; [.35EE.0020.0002] # BAMUM LETTER PHASE-E SUAEN
-1699C ; [.35EF.0020.0002] # BAMUM LETTER PHASE-E TEUAEQ
-1699D ; [.35F0.0020.0002] # BAMUM LETTER PHASE-E VEUAE
-1699E ; [.35F1.0020.0002] # BAMUM LETTER PHASE-E WEUX
-1699F ; [.35F2.0020.0002] # BAMUM LETTER PHASE-E LAAM
-169A0 ; [.35F3.0020.0002] # BAMUM LETTER PHASE-E PU
-169A1 ; [.35F4.0020.0002] # BAMUM LETTER PHASE-E TAAQ
-169A2 ; [.35F5.0020.0002] # BAMUM LETTER PHASE-E GHAAMAE
-169A3 ; [.35F6.0020.0002] # BAMUM LETTER PHASE-E NGEUREUT
-169A4 ; [.35F7.0020.0002] # BAMUM LETTER PHASE-E SHEUAEQ
-169A5 ; [.35F8.0020.0002] # BAMUM LETTER PHASE-E MGBEN
-169A6 ; [.35F9.0020.0002] # BAMUM LETTER PHASE-E MBEE
-169A7 ; [.35FA.0020.0002] # BAMUM LETTER PHASE-E NZAQ
-169A8 ; [.35FB.0020.0002] # BAMUM LETTER PHASE-E NKOM
-169A9 ; [.35FC.0020.0002] # BAMUM LETTER PHASE-E GBET
-169AA ; [.35FD.0020.0002] # BAMUM LETTER PHASE-E TUM
-169AB ; [.35FE.0020.0002] # BAMUM LETTER PHASE-E KUET
-169AC ; [.35FF.0020.0002] # BAMUM LETTER PHASE-E YAP
-169AD ; [.3600.0020.0002] # BAMUM LETTER PHASE-E NYI CLEAVER
-169AE ; [.3601.0020.0002] # BAMUM LETTER PHASE-E YIT
-169AF ; [.3602.0020.0002] # BAMUM LETTER PHASE-E MFEUQ
-169B0 ; [.3603.0020.0002] # BAMUM LETTER PHASE-E NDIAQ
-169B1 ; [.3604.0020.0002] # BAMUM LETTER PHASE-E PIEEQ
-169B2 ; [.3605.0020.0002] # BAMUM LETTER PHASE-E YUEQ
-169B3 ; [.3606.0020.0002] # BAMUM LETTER PHASE-E LEUAEM
-169B4 ; [.3607.0020.0002] # BAMUM LETTER PHASE-E FUE
-169B5 ; [.3608.0020.0002] # BAMUM LETTER PHASE-E GBEUX
-169B6 ; [.3609.0020.0002] # BAMUM LETTER PHASE-E NGKUP
-169B7 ; [.360A.0020.0002] # BAMUM LETTER PHASE-E KET
-169B8 ; [.360B.0020.0002] # BAMUM LETTER PHASE-E MAE
-169B9 ; [.360C.0020.0002] # BAMUM LETTER PHASE-E NGKAAMI
-169BA ; [.360D.0020.0002] # BAMUM LETTER PHASE-E GHET
-169BB ; [.360E.0020.0002] # BAMUM LETTER PHASE-E FA
-169BC ; [.360F.0020.0002] # BAMUM LETTER PHASE-E NTUM
-169BD ; [.3610.0020.0002] # BAMUM LETTER PHASE-E PEUT
-169BE ; [.3611.0020.0002] # BAMUM LETTER PHASE-E YEUM
-169BF ; [.3612.0020.0002] # BAMUM LETTER PHASE-E NGGEUAE
-169C0 ; [.3613.0020.0002] # BAMUM LETTER PHASE-E NYI BETWEEN
-169C1 ; [.3614.0020.0002] # BAMUM LETTER PHASE-E NZUQ
-169C2 ; [.3615.0020.0002] # BAMUM LETTER PHASE-E POON
-169C3 ; [.3616.0020.0002] # BAMUM LETTER PHASE-E MIEE
-169C4 ; [.3617.0020.0002] # BAMUM LETTER PHASE-E FUET
-169C5 ; [.3618.0020.0002] # BAMUM LETTER PHASE-E NAE
-169C6 ; [.3619.0020.0002] # BAMUM LETTER PHASE-E MUAE
-169C7 ; [.361A.0020.0002] # BAMUM LETTER PHASE-E GHEUAE
-169C8 ; [.361B.0020.0002] # BAMUM LETTER PHASE-E FU I
-169C9 ; [.361C.0020.0002] # BAMUM LETTER PHASE-E MVI
-169CA ; [.361D.0020.0002] # BAMUM LETTER PHASE-E PUAQ
-169CB ; [.361E.0020.0002] # BAMUM LETTER PHASE-E NGKUM
-169CC ; [.361F.0020.0002] # BAMUM LETTER PHASE-E KUT
-169CD ; [.3620.0020.0002] # BAMUM LETTER PHASE-E PIET
-169CE ; [.3621.0020.0002] # BAMUM LETTER PHASE-E NTAP
-169CF ; [.3622.0020.0002] # BAMUM LETTER PHASE-E YEUAET
-169D0 ; [.3623.0020.0002] # BAMUM LETTER PHASE-E NGGUP
-169D1 ; [.3624.0020.0002] # BAMUM LETTER PHASE-E PA PEOPLE
-169D2 ; [.3625.0020.0002] # BAMUM LETTER PHASE-E FU CALL
-169D3 ; [.3626.0020.0002] # BAMUM LETTER PHASE-E FOM
-169D4 ; [.3627.0020.0002] # BAMUM LETTER PHASE-E NJEE
-169D5 ; [.3628.0020.0002] # BAMUM LETTER PHASE-E A
-169D6 ; [.3629.0020.0002] # BAMUM LETTER PHASE-E TOQ
-169D7 ; [.362A.0020.0002] # BAMUM LETTER PHASE-E O
-169D8 ; [.362B.0020.0002] # BAMUM LETTER PHASE-E I
-169D9 ; [.362C.0020.0002] # BAMUM LETTER PHASE-E LAQ
-169DA ; [.362D.0020.0002] # BAMUM LETTER PHASE-E PA PLURAL
-169DB ; [.362E.0020.0002] # BAMUM LETTER PHASE-E TAA
-169DC ; [.362F.0020.0002] # BAMUM LETTER PHASE-E TAQ
-169DD ; [.3630.0020.0002] # BAMUM LETTER PHASE-E NDAA MY HOUSE
-169DE ; [.3631.0020.0002] # BAMUM LETTER PHASE-E SHIQ
-169DF ; [.3632.0020.0002] # BAMUM LETTER PHASE-E YEUX
-169E0 ; [.3633.0020.0002] # BAMUM LETTER PHASE-E NGUAE
-169E1 ; [.3634.0020.0002] # BAMUM LETTER PHASE-E YUAEN
-169E2 ; [.3635.0020.0002] # BAMUM LETTER PHASE-E YOQ SWIMMING
-169E3 ; [.3636.0020.0002] # BAMUM LETTER PHASE-E YOQ COVER
-169E4 ; [.3637.0020.0002] # BAMUM LETTER PHASE-E YUQ
-169E5 ; [.3638.0020.0002] # BAMUM LETTER PHASE-E YUN
-169E6 ; [.3639.0020.0002] # BAMUM LETTER PHASE-E KEUX
-169E7 ; [.363A.0020.0002] # BAMUM LETTER PHASE-E PEUX
-169E8 ; [.363B.0020.0002] # BAMUM LETTER PHASE-E NJEE EPOCH
-169E9 ; [.363C.0020.0002] # BAMUM LETTER PHASE-E PUE
-169EA ; [.363D.0020.0002] # BAMUM LETTER PHASE-E WUE
-169EB ; [.363E.0020.0002] # BAMUM LETTER PHASE-E FEE
-169EC ; [.363F.0020.0002] # BAMUM LETTER PHASE-E VEE
-169ED ; [.3640.0020.0002] # BAMUM LETTER PHASE-E LU
-169EE ; [.3641.0020.0002] # BAMUM LETTER PHASE-E MI
-169EF ; [.3642.0020.0002] # BAMUM LETTER PHASE-E REUX
-169F0 ; [.3643.0020.0002] # BAMUM LETTER PHASE-E RAE
-169F1 ; [.3644.0020.0002] # BAMUM LETTER PHASE-E NGUAET
-169F2 ; [.3645.0020.0002] # BAMUM LETTER PHASE-E NGA
-169F3 ; [.3646.0020.0002] # BAMUM LETTER PHASE-E SHO
-169F4 ; [.3647.0020.0002] # BAMUM LETTER PHASE-E SHOQ
-169F5 ; [.3648.0020.0002] # BAMUM LETTER PHASE-E FU REMEDY
-169F6 ; [.3649.0020.0002] # BAMUM LETTER PHASE-E NA
-169F7 ; [.364A.0020.0002] # BAMUM LETTER PHASE-E PI
-169F8 ; [.364B.0020.0002] # BAMUM LETTER PHASE-E LOQ
-169F9 ; [.364C.0020.0002] # BAMUM LETTER PHASE-E KO
-169FA ; [.364D.0020.0002] # BAMUM LETTER PHASE-E MEN
-169FB ; [.364E.0020.0002] # BAMUM LETTER PHASE-E MA
-169FC ; [.364F.0020.0002] # BAMUM LETTER PHASE-E MAQ
-169FD ; [.3650.0020.0002] # BAMUM LETTER PHASE-E TEU
-169FE ; [.3651.0020.0002] # BAMUM LETTER PHASE-E KI
-169FF ; [.3652.0020.0002] # BAMUM LETTER PHASE-E MON
-16A00 ; [.3653.0020.0002] # BAMUM LETTER PHASE-E TEN
-16A01 ; [.3654.0020.0002] # BAMUM LETTER PHASE-E FAQ
-16A02 ; [.3655.0020.0002] # BAMUM LETTER PHASE-E GHOM
-16A03 ; [.3656.0020.0002] # BAMUM LETTER PHASE-F KA
-16A04 ; [.3657.0020.0002] # BAMUM LETTER PHASE-F U
-16A05 ; [.3658.0020.0002] # BAMUM LETTER PHASE-F KU
-16A06 ; [.3659.0020.0002] # BAMUM LETTER PHASE-F EE
-16A07 ; [.365A.0020.0002] # BAMUM LETTER PHASE-F REE
-16A08 ; [.365B.0020.0002] # BAMUM LETTER PHASE-F TAE
-16A09 ; [.365C.0020.0002] # BAMUM LETTER PHASE-F NYI
-16A0A ; [.365D.0020.0002] # BAMUM LETTER PHASE-F LA
-16A0B ; [.365E.0020.0002] # BAMUM LETTER PHASE-F RII
-16A0C ; [.365F.0020.0002] # BAMUM LETTER PHASE-F RIEE
-16A0D ; [.3660.0020.0002] # BAMUM LETTER PHASE-F MEEEE
-16A0E ; [.3661.0020.0002] # BAMUM LETTER PHASE-F TAA
-16A0F ; [.3662.0020.0002] # BAMUM LETTER PHASE-F NDAA
-16A10 ; [.3663.0020.0002] # BAMUM LETTER PHASE-F NJAEM
-16A11 ; [.3664.0020.0002] # BAMUM LETTER PHASE-F M
-16A12 ; [.3665.0020.0002] # BAMUM LETTER PHASE-F SUU
-16A13 ; [.3666.0020.0002] # BAMUM LETTER PHASE-F SHII
-16A14 ; [.3667.0020.0002] # BAMUM LETTER PHASE-F SI
-16A15 ; [.3668.0020.0002] # BAMUM LETTER PHASE-F SEUX
-16A16 ; [.3669.0020.0002] # BAMUM LETTER PHASE-F KYEE
-16A17 ; [.366A.0020.0002] # BAMUM LETTER PHASE-F KET
-16A18 ; [.366B.0020.0002] # BAMUM LETTER PHASE-F NUAE
-16A19 ; [.366C.0020.0002] # BAMUM LETTER PHASE-F NU
-16A1A ; [.366D.0020.0002] # BAMUM LETTER PHASE-F NJUAE
-16A1B ; [.366E.0020.0002] # BAMUM LETTER PHASE-F YOQ
-16A1C ; [.366F.0020.0002] # BAMUM LETTER PHASE-F SHU
-16A1D ; [.3670.0020.0002] # BAMUM LETTER PHASE-F YA
-16A1E ; [.3671.0020.0002] # BAMUM LETTER PHASE-F NSHA
-16A1F ; [.3672.0020.0002] # BAMUM LETTER PHASE-F PEUX
-16A20 ; [.3673.0020.0002] # BAMUM LETTER PHASE-F NTEE
-16A21 ; [.3674.0020.0002] # BAMUM LETTER PHASE-F WUE
-16A22 ; [.3675.0020.0002] # BAMUM LETTER PHASE-F PEE
-16A23 ; [.3676.0020.0002] # BAMUM LETTER PHASE-F RU
-16A24 ; [.3677.0020.0002] # BAMUM LETTER PHASE-F NI
-16A25 ; [.3678.0020.0002] # BAMUM LETTER PHASE-F REUX
-16A26 ; [.3679.0020.0002] # BAMUM LETTER PHASE-F KEN
-16A27 ; [.367A.0020.0002] # BAMUM LETTER PHASE-F NGKWAEN
-16A28 ; [.367B.0020.0002] # BAMUM LETTER PHASE-F NGGA
-16A29 ; [.367C.0020.0002] # BAMUM LETTER PHASE-F SHO
-16A2A ; [.367D.0020.0002] # BAMUM LETTER PHASE-F PUAE
-16A2B ; [.367E.0020.0002] # BAMUM LETTER PHASE-F FOM
-16A2C ; [.367F.0020.0002] # BAMUM LETTER PHASE-F WA
-16A2D ; [.3680.0020.0002] # BAMUM LETTER PHASE-F LI
-16A2E ; [.3681.0020.0002] # BAMUM LETTER PHASE-F LOQ
-16A2F ; [.3682.0020.0002] # BAMUM LETTER PHASE-F KO
-16A30 ; [.3683.0020.0002] # BAMUM LETTER PHASE-F MBEN
-16A31 ; [.3684.0020.0002] # BAMUM LETTER PHASE-F REN
-16A32 ; [.3685.0020.0002] # BAMUM LETTER PHASE-F MA
-16A33 ; [.3686.0020.0002] # BAMUM LETTER PHASE-F MO
-16A34 ; [.3687.0020.0002] # BAMUM LETTER PHASE-F MBAA
-16A35 ; [.3688.0020.0002] # BAMUM LETTER PHASE-F TET
-16A36 ; [.3689.0020.0002] # BAMUM LETTER PHASE-F KPA
-16A37 ; [.368A.0020.0002] # BAMUM LETTER PHASE-F SAMBA
-16A38 ; [.368B.0020.0002] # BAMUM LETTER PHASE-F VUEQ
-16AD0 ; [.368C.0020.0002] # BASSA VAH LETTER ENNI
-16AD1 ; [.368D.0020.0002] # BASSA VAH LETTER KA
-16AD2 ; [.368E.0020.0002] # BASSA VAH LETTER SE
-16AD3 ; [.368F.0020.0002] # BASSA VAH LETTER FA
-16AD4 ; [.3690.0020.0002] # BASSA VAH LETTER MBE
-16AD5 ; [.3691.0020.0002] # BASSA VAH LETTER YIE
-16AD6 ; [.3692.0020.0002] # BASSA VAH LETTER GAH
-16AD7 ; [.3693.0020.0002] # BASSA VAH LETTER DHII
-16AD8 ; [.3694.0020.0002] # BASSA VAH LETTER KPAH
-16AD9 ; [.3695.0020.0002] # BASSA VAH LETTER JO
-16ADA ; [.3696.0020.0002] # BASSA VAH LETTER HWAH
-16ADB ; [.3697.0020.0002] # BASSA VAH LETTER WA
-16ADC ; [.3698.0020.0002] # BASSA VAH LETTER ZO
-16ADD ; [.3699.0020.0002] # BASSA VAH LETTER GBU
-16ADE ; [.369A.0020.0002] # BASSA VAH LETTER DO
-16ADF ; [.369B.0020.0002] # BASSA VAH LETTER CE
-16AE0 ; [.369C.0020.0002] # BASSA VAH LETTER UWU
-16AE1 ; [.369D.0020.0002] # BASSA VAH LETTER TO
-16AE2 ; [.369E.0020.0002] # BASSA VAH LETTER BA
-16AE3 ; [.369F.0020.0002] # BASSA VAH LETTER VU
-16AE4 ; [.36A0.0020.0002] # BASSA VAH LETTER YEIN
-16AE5 ; [.36A1.0020.0002] # BASSA VAH LETTER PA
-16AE6 ; [.36A2.0020.0002] # BASSA VAH LETTER WADDA
-16AE7 ; [.36A3.0020.0002] # BASSA VAH LETTER A
-16AE8 ; [.36A4.0020.0002] # BASSA VAH LETTER O
-16AE9 ; [.36A5.0020.0002] # BASSA VAH LETTER OO
-16AEA ; [.36A6.0020.0002] # BASSA VAH LETTER U
-16AEB ; [.36A7.0020.0002] # BASSA VAH LETTER EE
-16AEC ; [.36A8.0020.0002] # BASSA VAH LETTER E
-16AED ; [.36A9.0020.0002] # BASSA VAH LETTER I
-1E800 ; [.36AA.0020.0002] # MENDE KIKAKUI SYLLABLE M001 KI
-1E801 ; [.36AB.0020.0002] # MENDE KIKAKUI SYLLABLE M002 KA
-1E802 ; [.36AC.0020.0002] # MENDE KIKAKUI SYLLABLE M003 KU
-1E803 ; [.36AD.0020.0002] # MENDE KIKAKUI SYLLABLE M065 KEE
-1E804 ; [.36AE.0020.0002] # MENDE KIKAKUI SYLLABLE M095 KE
-1E805 ; [.36AF.0020.0002] # MENDE KIKAKUI SYLLABLE M076 KOO
-1E806 ; [.36B0.0020.0002] # MENDE KIKAKUI SYLLABLE M048 KO
-1E807 ; [.36B1.0020.0002] # MENDE KIKAKUI SYLLABLE M179 KUA
-1E808 ; [.36B2.0020.0002] # MENDE KIKAKUI SYLLABLE M004 WI
-1E809 ; [.36B3.0020.0002] # MENDE KIKAKUI SYLLABLE M005 WA
-1E80A ; [.36B4.0020.0002] # MENDE KIKAKUI SYLLABLE M006 WU
-1E80B ; [.36B5.0020.0002] # MENDE KIKAKUI SYLLABLE M126 WEE
-1E80C ; [.36B6.0020.0002] # MENDE KIKAKUI SYLLABLE M118 WE
-1E80D ; [.36B7.0020.0002] # MENDE KIKAKUI SYLLABLE M114 WOO
-1E80E ; [.36B8.0020.0002] # MENDE KIKAKUI SYLLABLE M045 WO
-1E80F ; [.36B9.0020.0002] # MENDE KIKAKUI SYLLABLE M194 WUI
-1E810 ; [.36BA.0020.0002] # MENDE KIKAKUI SYLLABLE M143 WEI
-1E811 ; [.36BB.0020.0002] # MENDE KIKAKUI SYLLABLE M061 WVI
-1E812 ; [.36BC.0020.0002] # MENDE KIKAKUI SYLLABLE M049 WVA
-1E813 ; [.36BD.0020.0002] # MENDE KIKAKUI SYLLABLE M139 WVE
-1E814 ; [.36BE.0020.0002] # MENDE KIKAKUI SYLLABLE M007 MIN
-1E815 ; [.36BF.0020.0002] # MENDE KIKAKUI SYLLABLE M008 MAN
-1E816 ; [.36C0.0020.0002] # MENDE KIKAKUI SYLLABLE M009 MUN
-1E817 ; [.36C1.0020.0002] # MENDE KIKAKUI SYLLABLE M059 MEN
-1E818 ; [.36C2.0020.0002] # MENDE KIKAKUI SYLLABLE M094 MON
-1E819 ; [.36C3.0020.0002] # MENDE KIKAKUI SYLLABLE M154 MUAN
-1E81A ; [.36C4.0020.0002] # MENDE KIKAKUI SYLLABLE M189 MUEN
-1E81B ; [.36C5.0020.0002] # MENDE KIKAKUI SYLLABLE M010 BI
-1E81C ; [.36C6.0020.0002] # MENDE KIKAKUI SYLLABLE M011 BA
-1E81D ; [.36C7.0020.0002] # MENDE KIKAKUI SYLLABLE M012 BU
-1E81E ; [.36C8.0020.0002] # MENDE KIKAKUI SYLLABLE M150 BEE
-1E81F ; [.36C9.0020.0002] # MENDE KIKAKUI SYLLABLE M097 BE
-1E820 ; [.36CA.0020.0002] # MENDE KIKAKUI SYLLABLE M103 BOO
-1E821 ; [.36CB.0020.0002] # MENDE KIKAKUI SYLLABLE M138 BO
-1E822 ; [.36CC.0020.0002] # MENDE KIKAKUI SYLLABLE M013 I
-1E823 ; [.36CD.0020.0002] # MENDE KIKAKUI SYLLABLE M014 A
-1E824 ; [.36CE.0020.0002] # MENDE KIKAKUI SYLLABLE M015 U
-1E825 ; [.36CF.0020.0002] # MENDE KIKAKUI SYLLABLE M163 EE
-1E826 ; [.36D0.0020.0002] # MENDE KIKAKUI SYLLABLE M100 E
-1E827 ; [.36D1.0020.0002] # MENDE KIKAKUI SYLLABLE M165 OO
-1E828 ; [.36D2.0020.0002] # MENDE KIKAKUI SYLLABLE M147 O
-1E829 ; [.36D3.0020.0002] # MENDE KIKAKUI SYLLABLE M137 EI
-1E82A ; [.36D4.0020.0002] # MENDE KIKAKUI SYLLABLE M131 IN
-1E82B ; [.36D5.0020.0002] # MENDE KIKAKUI SYLLABLE M135 IN
-1E82C ; [.36D6.0020.0002] # MENDE KIKAKUI SYLLABLE M195 AN
-1E82D ; [.36D7.0020.0002] # MENDE KIKAKUI SYLLABLE M178 EN
-1E82E ; [.36D8.0020.0002] # MENDE KIKAKUI SYLLABLE M019 SI
-1E82F ; [.36D9.0020.0002] # MENDE KIKAKUI SYLLABLE M020 SA
-1E830 ; [.36DA.0020.0002] # MENDE KIKAKUI SYLLABLE M021 SU
-1E831 ; [.36DB.0020.0002] # MENDE KIKAKUI SYLLABLE M162 SEE
-1E832 ; [.36DC.0020.0002] # MENDE KIKAKUI SYLLABLE M116 SE
-1E833 ; [.36DD.0020.0002] # MENDE KIKAKUI SYLLABLE M136 SOO
-1E834 ; [.36DE.0020.0002] # MENDE KIKAKUI SYLLABLE M079 SO
-1E835 ; [.36DF.0020.0002] # MENDE KIKAKUI SYLLABLE M196 SIA
-1E836 ; [.36E0.0020.0002] # MENDE KIKAKUI SYLLABLE M025 LI
-1E837 ; [.36E1.0020.0002] # MENDE KIKAKUI SYLLABLE M026 LA
-1E838 ; [.36E2.0020.0002] # MENDE KIKAKUI SYLLABLE M027 LU
-1E839 ; [.36E3.0020.0002] # MENDE KIKAKUI SYLLABLE M084 LEE
-1E83A ; [.36E4.0020.0002] # MENDE KIKAKUI SYLLABLE M073 LE
-1E83B ; [.36E5.0020.0002] # MENDE KIKAKUI SYLLABLE M054 LOO
-1E83C ; [.36E6.0020.0002] # MENDE KIKAKUI SYLLABLE M153 LO
-1E83D ; [.36E7.0020.0002] # MENDE KIKAKUI SYLLABLE M110 LONG LE
-1E83E ; [.36E8.0020.0002] # MENDE KIKAKUI SYLLABLE M016 DI
-1E83F ; [.36E9.0020.0002] # MENDE KIKAKUI SYLLABLE M017 DA
-1E840 ; [.36EA.0020.0002] # MENDE KIKAKUI SYLLABLE M018 DU
-1E841 ; [.36EB.0020.0002] # MENDE KIKAKUI SYLLABLE M089 DEE
-1E842 ; [.36EC.0020.0002] # MENDE KIKAKUI SYLLABLE M180 DOO
-1E843 ; [.36ED.0020.0002] # MENDE KIKAKUI SYLLABLE M181 DO
-1E844 ; [.36EE.0020.0002] # MENDE KIKAKUI SYLLABLE M022 TI
-1E845 ; [.36EF.0020.0002] # MENDE KIKAKUI SYLLABLE M023 TA
-1E846 ; [.36F0.0020.0002] # MENDE KIKAKUI SYLLABLE M024 TU
-1E847 ; [.36F1.0020.0002] # MENDE KIKAKUI SYLLABLE M091 TEE
-1E848 ; [.36F2.0020.0002] # MENDE KIKAKUI SYLLABLE M055 TE
-1E849 ; [.36F3.0020.0002] # MENDE KIKAKUI SYLLABLE M104 TOO
-1E84A ; [.36F4.0020.0002] # MENDE KIKAKUI SYLLABLE M069 TO
-1E84B ; [.36F5.0020.0002] # MENDE KIKAKUI SYLLABLE M028 JI
-1E84C ; [.36F6.0020.0002] # MENDE KIKAKUI SYLLABLE M029 JA
-1E84D ; [.36F7.0020.0002] # MENDE KIKAKUI SYLLABLE M030 JU
-1E84E ; [.36F8.0020.0002] # MENDE KIKAKUI SYLLABLE M157 JEE
-1E84F ; [.36F9.0020.0002] # MENDE KIKAKUI SYLLABLE M113 JE
-1E850 ; [.36FA.0020.0002] # MENDE KIKAKUI SYLLABLE M160 JOO
-1E851 ; [.36FB.0020.0002] # MENDE KIKAKUI SYLLABLE M063 JO
-1E852 ; [.36FC.0020.0002] # MENDE KIKAKUI SYLLABLE M175 LONG JO
-1E853 ; [.36FD.0020.0002] # MENDE KIKAKUI SYLLABLE M031 YI
-1E854 ; [.36FE.0020.0002] # MENDE KIKAKUI SYLLABLE M032 YA
-1E855 ; [.36FF.0020.0002] # MENDE KIKAKUI SYLLABLE M033 YU
-1E856 ; [.3700.0020.0002] # MENDE KIKAKUI SYLLABLE M109 YEE
-1E857 ; [.3701.0020.0002] # MENDE KIKAKUI SYLLABLE M080 YE
-1E858 ; [.3702.0020.0002] # MENDE KIKAKUI SYLLABLE M141 YOO
-1E859 ; [.3703.0020.0002] # MENDE KIKAKUI SYLLABLE M121 YO
-1E85A ; [.3704.0020.0002] # MENDE KIKAKUI SYLLABLE M034 FI
-1E85B ; [.3705.0020.0002] # MENDE KIKAKUI SYLLABLE M035 FA
-1E85C ; [.3706.0020.0002] # MENDE KIKAKUI SYLLABLE M036 FU
-1E85D ; [.3707.0020.0002] # MENDE KIKAKUI SYLLABLE M078 FEE
-1E85E ; [.3708.0020.0002] # MENDE KIKAKUI SYLLABLE M075 FE
-1E85F ; [.3709.0020.0002] # MENDE KIKAKUI SYLLABLE M133 FOO
-1E860 ; [.370A.0020.0002] # MENDE KIKAKUI SYLLABLE M088 FO
-1E861 ; [.370B.0020.0002] # MENDE KIKAKUI SYLLABLE M197 FUA
-1E862 ; [.370C.0020.0002] # MENDE KIKAKUI SYLLABLE M101 FAN
-1E863 ; [.370D.0020.0002] # MENDE KIKAKUI SYLLABLE M037 NIN
-1E864 ; [.370E.0020.0002] # MENDE KIKAKUI SYLLABLE M038 NAN
-1E865 ; [.370F.0020.0002] # MENDE KIKAKUI SYLLABLE M039 NUN
-1E866 ; [.3710.0020.0002] # MENDE KIKAKUI SYLLABLE M117 NEN
-1E867 ; [.3711.0020.0002] # MENDE KIKAKUI SYLLABLE M169 NON
-1E868 ; [.3712.0020.0002] # MENDE KIKAKUI SYLLABLE M176 HI
-1E869 ; [.3713.0020.0002] # MENDE KIKAKUI SYLLABLE M041 HA
-1E86A ; [.3714.0020.0002] # MENDE KIKAKUI SYLLABLE M186 HU
-1E86B ; [.3715.0020.0002] # MENDE KIKAKUI SYLLABLE M040 HEE
-1E86C ; [.3716.0020.0002] # MENDE KIKAKUI SYLLABLE M096 HE
-1E86D ; [.3717.0020.0002] # MENDE KIKAKUI SYLLABLE M042 HOO
-1E86E ; [.3718.0020.0002] # MENDE KIKAKUI SYLLABLE M140 HO
-1E86F ; [.3719.0020.0002] # MENDE KIKAKUI SYLLABLE M083 HEEI
-1E870 ; [.371A.0020.0002] # MENDE KIKAKUI SYLLABLE M128 HOOU
-1E871 ; [.371B.0020.0002] # MENDE KIKAKUI SYLLABLE M053 HIN
-1E872 ; [.371C.0020.0002] # MENDE KIKAKUI SYLLABLE M130 HAN
-1E873 ; [.371D.0020.0002] # MENDE KIKAKUI SYLLABLE M087 HUN
-1E874 ; [.371E.0020.0002] # MENDE KIKAKUI SYLLABLE M052 HEN
-1E875 ; [.371F.0020.0002] # MENDE KIKAKUI SYLLABLE M193 HON
-1E876 ; [.3720.0020.0002] # MENDE KIKAKUI SYLLABLE M046 HUAN
-1E877 ; [.3721.0020.0002] # MENDE KIKAKUI SYLLABLE M090 NGGI
-1E878 ; [.3722.0020.0002] # MENDE KIKAKUI SYLLABLE M043 NGGA
-1E879 ; [.3723.0020.0002] # MENDE KIKAKUI SYLLABLE M082 NGGU
-1E87A ; [.3724.0020.0002] # MENDE KIKAKUI SYLLABLE M115 NGGEE
-1E87B ; [.3725.0020.0002] # MENDE KIKAKUI SYLLABLE M146 NGGE
-1E87C ; [.3726.0020.0002] # MENDE KIKAKUI SYLLABLE M156 NGGOO
-1E87D ; [.3727.0020.0002] # MENDE KIKAKUI SYLLABLE M120 NGGO
-1E87E ; [.3728.0020.0002] # MENDE KIKAKUI SYLLABLE M159 NGGAA
-1E87F ; [.3729.0020.0002] # MENDE KIKAKUI SYLLABLE M127 NGGUA
-1E880 ; [.372A.0020.0002] # MENDE KIKAKUI SYLLABLE M086 LONG NGGE
-1E881 ; [.372B.0020.0002] # MENDE KIKAKUI SYLLABLE M106 LONG NGGOO
-1E882 ; [.372C.0020.0002] # MENDE KIKAKUI SYLLABLE M183 LONG NGGO
-1E883 ; [.372D.0020.0002] # MENDE KIKAKUI SYLLABLE M155 GI
-1E884 ; [.372E.0020.0002] # MENDE KIKAKUI SYLLABLE M111 GA
-1E885 ; [.372F.0020.0002] # MENDE KIKAKUI SYLLABLE M168 GU
-1E886 ; [.3730.0020.0002] # MENDE KIKAKUI SYLLABLE M190 GEE
-1E887 ; [.3731.0020.0002] # MENDE KIKAKUI SYLLABLE M166 GUEI
-1E888 ; [.3732.0020.0002] # MENDE KIKAKUI SYLLABLE M167 GUAN
-1E889 ; [.3733.0020.0002] # MENDE KIKAKUI SYLLABLE M184 NGEN
-1E88A ; [.3734.0020.0002] # MENDE KIKAKUI SYLLABLE M057 NGON
-1E88B ; [.3735.0020.0002] # MENDE KIKAKUI SYLLABLE M177 NGUAN
-1E88C ; [.3736.0020.0002] # MENDE KIKAKUI SYLLABLE M068 PI
-1E88D ; [.3737.0020.0002] # MENDE KIKAKUI SYLLABLE M099 PA
-1E88E ; [.3738.0020.0002] # MENDE KIKAKUI SYLLABLE M050 PU
-1E88F ; [.3739.0020.0002] # MENDE KIKAKUI SYLLABLE M081 PEE
-1E890 ; [.373A.0020.0002] # MENDE KIKAKUI SYLLABLE M051 PE
-1E891 ; [.373B.0020.0002] # MENDE KIKAKUI SYLLABLE M102 POO
-1E892 ; [.373C.0020.0002] # MENDE KIKAKUI SYLLABLE M066 PO
-1E893 ; [.373D.0020.0002] # MENDE KIKAKUI SYLLABLE M145 MBI
-1E894 ; [.373E.0020.0002] # MENDE KIKAKUI SYLLABLE M062 MBA
-1E895 ; [.373F.0020.0002] # MENDE KIKAKUI SYLLABLE M122 MBU
-1E896 ; [.3740.0020.0002] # MENDE KIKAKUI SYLLABLE M047 MBEE
-1E897 ; [.3741.0020.0002] # MENDE KIKAKUI SYLLABLE M188 MBEE
-1E898 ; [.3742.0020.0002] # MENDE KIKAKUI SYLLABLE M072 MBE
-1E899 ; [.3743.0020.0002] # MENDE KIKAKUI SYLLABLE M172 MBOO
-1E89A ; [.3744.0020.0002] # MENDE KIKAKUI SYLLABLE M174 MBO
-1E89B ; [.3745.0020.0002] # MENDE KIKAKUI SYLLABLE M187 MBUU
-1E89C ; [.3746.0020.0002] # MENDE KIKAKUI SYLLABLE M161 LONG MBE
-1E89D ; [.3747.0020.0002] # MENDE KIKAKUI SYLLABLE M105 LONG MBOO
-1E89E ; [.3748.0020.0002] # MENDE KIKAKUI SYLLABLE M142 LONG MBO
-1E89F ; [.3749.0020.0002] # MENDE KIKAKUI SYLLABLE M132 KPI
-1E8A0 ; [.374A.0020.0002] # MENDE KIKAKUI SYLLABLE M092 KPA
-1E8A1 ; [.374B.0020.0002] # MENDE KIKAKUI SYLLABLE M074 KPU
-1E8A2 ; [.374C.0020.0002] # MENDE KIKAKUI SYLLABLE M044 KPEE
-1E8A3 ; [.374D.0020.0002] # MENDE KIKAKUI SYLLABLE M108 KPE
-1E8A4 ; [.374E.0020.0002] # MENDE KIKAKUI SYLLABLE M112 KPOO
-1E8A5 ; [.374F.0020.0002] # MENDE KIKAKUI SYLLABLE M158 KPO
-1E8A6 ; [.3750.0020.0002] # MENDE KIKAKUI SYLLABLE M124 GBI
-1E8A7 ; [.3751.0020.0002] # MENDE KIKAKUI SYLLABLE M056 GBA
-1E8A8 ; [.3752.0020.0002] # MENDE KIKAKUI SYLLABLE M148 GBU
-1E8A9 ; [.3753.0020.0002] # MENDE KIKAKUI SYLLABLE M093 GBEE
-1E8AA ; [.3754.0020.0002] # MENDE KIKAKUI SYLLABLE M107 GBE
-1E8AB ; [.3755.0020.0002] # MENDE KIKAKUI SYLLABLE M071 GBOO
-1E8AC ; [.3756.0020.0002] # MENDE KIKAKUI SYLLABLE M070 GBO
-1E8AD ; [.3757.0020.0002] # MENDE KIKAKUI SYLLABLE M171 RA
-1E8AE ; [.3758.0020.0002] # MENDE KIKAKUI SYLLABLE M123 NDI
-1E8AF ; [.3759.0020.0002] # MENDE KIKAKUI SYLLABLE M129 NDA
-1E8B0 ; [.375A.0020.0002] # MENDE KIKAKUI SYLLABLE M125 NDU
-1E8B1 ; [.375B.0020.0002] # MENDE KIKAKUI SYLLABLE M191 NDEE
-1E8B2 ; [.375C.0020.0002] # MENDE KIKAKUI SYLLABLE M119 NDE
-1E8B3 ; [.375D.0020.0002] # MENDE KIKAKUI SYLLABLE M067 NDOO
-1E8B4 ; [.375E.0020.0002] # MENDE KIKAKUI SYLLABLE M064 NDO
-1E8B5 ; [.375F.0020.0002] # MENDE KIKAKUI SYLLABLE M152 NJA
-1E8B6 ; [.3760.0020.0002] # MENDE KIKAKUI SYLLABLE M192 NJU
-1E8B7 ; [.3761.0020.0002] # MENDE KIKAKUI SYLLABLE M149 NJEE
-1E8B8 ; [.3762.0020.0002] # MENDE KIKAKUI SYLLABLE M134 NJOO
-1E8B9 ; [.3763.0020.0002] # MENDE KIKAKUI SYLLABLE M182 VI
-1E8BA ; [.3764.0020.0002] # MENDE KIKAKUI SYLLABLE M185 VA
-1E8BB ; [.3765.0020.0002] # MENDE KIKAKUI SYLLABLE M151 VU
-1E8BC ; [.3766.0020.0002] # MENDE KIKAKUI SYLLABLE M173 VEE
-1E8BD ; [.3767.0020.0002] # MENDE KIKAKUI SYLLABLE M085 VE
-1E8BE ; [.3768.0020.0002] # MENDE KIKAKUI SYLLABLE M144 VOO
-1E8BF ; [.3769.0020.0002] # MENDE KIKAKUI SYLLABLE M077 VO
-1E8C0 ; [.376A.0020.0002] # MENDE KIKAKUI SYLLABLE M164 NYIN
-1E8C1 ; [.376B.0020.0002] # MENDE KIKAKUI SYLLABLE M058 NYAN
-1E8C2 ; [.376C.0020.0002] # MENDE KIKAKUI SYLLABLE M170 NYUN
-1E8C3 ; [.376D.0020.0002] # MENDE KIKAKUI SYLLABLE M098 NYEN
-1E8C4 ; [.376E.0020.0002] # MENDE KIKAKUI SYLLABLE M060 NYON
-1100 ; [.376F.0020.0002] # HANGUL CHOSEONG KIYEOK
-3131 ; [.376F.0020.0004] # HANGUL LETTER KIYEOK
-3200 ; [*030A.0020.0004][.376F.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL KIYEOK
-3260 ; [.376F.0020.0006] # CIRCLED HANGUL KIYEOK
-FFA1 ; [.376F.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK
-320E ; [*030A.0020.0004][.376F.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL KIYEOK A
-326E ; [.376F.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL KIYEOK A
-1101 ; [.3770.0020.0002] # HANGUL CHOSEONG SSANGKIYEOK
-3132 ; [.3770.0020.0004] # HANGUL LETTER SSANGKIYEOK
-FFA2 ; [.3770.0020.0012] # HALFWIDTH HANGUL LETTER SSANGKIYEOK
-1102 ; [.3771.0020.0002] # HANGUL CHOSEONG NIEUN
-3134 ; [.3771.0020.0004] # HANGUL LETTER NIEUN
-3201 ; [*030A.0020.0004][.3771.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL NIEUN
-3261 ; [.3771.0020.0006] # CIRCLED HANGUL NIEUN
-FFA4 ; [.3771.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN
-320F ; [*030A.0020.0004][.3771.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL NIEUN A
-326F ; [.3771.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL NIEUN A
-1103 ; [.3772.0020.0002] # HANGUL CHOSEONG TIKEUT
-3137 ; [.3772.0020.0004] # HANGUL LETTER TIKEUT
-3202 ; [*030A.0020.0004][.3772.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL TIKEUT
-3262 ; [.3772.0020.0006] # CIRCLED HANGUL TIKEUT
-FFA7 ; [.3772.0020.0012] # HALFWIDTH HANGUL LETTER TIKEUT
-3210 ; [*030A.0020.0004][.3772.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL TIKEUT A
-3270 ; [.3772.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL TIKEUT A
-1104 ; [.3773.0020.0002] # HANGUL CHOSEONG SSANGTIKEUT
-3138 ; [.3773.0020.0004] # HANGUL LETTER SSANGTIKEUT
-FFA8 ; [.3773.0020.0012] # HALFWIDTH HANGUL LETTER SSANGTIKEUT
-1105 ; [.3774.0020.0002] # HANGUL CHOSEONG RIEUL
-3139 ; [.3774.0020.0004] # HANGUL LETTER RIEUL
-3203 ; [*030A.0020.0004][.3774.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL RIEUL
-3263 ; [.3774.0020.0006] # CIRCLED HANGUL RIEUL
-FFA9 ; [.3774.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL
-3211 ; [*030A.0020.0004][.3774.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL RIEUL A
-3271 ; [.3774.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL RIEUL A
-1106 ; [.3775.0020.0002] # HANGUL CHOSEONG MIEUM
-3141 ; [.3775.0020.0004] # HANGUL LETTER MIEUM
-3204 ; [*030A.0020.0004][.3775.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL MIEUM
-3264 ; [.3775.0020.0006] # CIRCLED HANGUL MIEUM
-FFB1 ; [.3775.0020.0012] # HALFWIDTH HANGUL LETTER MIEUM
-3212 ; [*030A.0020.0004][.3775.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL MIEUM A
-3272 ; [.3775.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL MIEUM A
-1107 ; [.3776.0020.0002] # HANGUL CHOSEONG PIEUP
-3142 ; [.3776.0020.0004] # HANGUL LETTER PIEUP
-3205 ; [*030A.0020.0004][.3776.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL PIEUP
-3265 ; [.3776.0020.0006] # CIRCLED HANGUL PIEUP
-FFB2 ; [.3776.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP
-3213 ; [*030A.0020.0004][.3776.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL PIEUP A
-3273 ; [.3776.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL PIEUP A
-1108 ; [.3777.0020.0002] # HANGUL CHOSEONG SSANGPIEUP
-3143 ; [.3777.0020.0004] # HANGUL LETTER SSANGPIEUP
-FFB3 ; [.3777.0020.0012] # HALFWIDTH HANGUL LETTER SSANGPIEUP
-1109 ; [.3778.0020.0002] # HANGUL CHOSEONG SIOS
-3145 ; [.3778.0020.0004] # HANGUL LETTER SIOS
-3206 ; [*030A.0020.0004][.3778.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL SIOS
-3266 ; [.3778.0020.0006] # CIRCLED HANGUL SIOS
-FFB5 ; [.3778.0020.0012] # HALFWIDTH HANGUL LETTER SIOS
-3214 ; [*030A.0020.0004][.3778.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL SIOS A
-3274 ; [.3778.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL SIOS A
-110A ; [.3779.0020.0002] # HANGUL CHOSEONG SSANGSIOS
-3146 ; [.3779.0020.0004] # HANGUL LETTER SSANGSIOS
-FFB6 ; [.3779.0020.0012] # HALFWIDTH HANGUL LETTER SSANGSIOS
-110B ; [.377A.0020.0002] # HANGUL CHOSEONG IEUNG
-3147 ; [.377A.0020.0004] # HANGUL LETTER IEUNG
-3207 ; [*030A.0020.0004][.377A.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL IEUNG
-3267 ; [.377A.0020.0006] # CIRCLED HANGUL IEUNG
-FFB7 ; [.377A.0020.0012] # HALFWIDTH HANGUL LETTER IEUNG
-3215 ; [*030A.0020.0004][.377A.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL IEUNG A
-3275 ; [.377A.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL IEUNG A
-321D ; [*030A.0020.0004][.377A.0020.0004][.37F5.0020.0004][.377B.0020.0004][.37F1.0020.0004][.384E.0020.0004][*030B.0020.0004] # PARENTHESIZED KOREAN CHARACTER OJEON
-321E ; [*030A.0020.0004][.377A.0020.0004][.37F5.0020.0004][.3781.0020.0004][.37FA.0020.0004][*030B.0020.0004] # PARENTHESIZED KOREAN CHARACTER O HU
-327E ; [.377A.0020.0006][.37FA.0020.0006] # CIRCLED HANGUL IEUNG U
-110C ; [.377B.0020.0002] # HANGUL CHOSEONG CIEUC
-3148 ; [.377B.0020.0004] # HANGUL LETTER CIEUC
-3208 ; [*030A.0020.0004][.377B.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CIEUC
-3268 ; [.377B.0020.0006] # CIRCLED HANGUL CIEUC
-FFB8 ; [.377B.0020.0012] # HALFWIDTH HANGUL LETTER CIEUC
-3216 ; [*030A.0020.0004][.377B.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CIEUC A
-3276 ; [.377B.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL CIEUC A
-321C ; [*030A.0020.0004][.377B.0020.0004][.37FA.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CIEUC U
-327D ; [.377B.0020.0006][.37FA.0020.0006][.377A.0020.0006][.3800.0020.0006] # CIRCLED KOREAN CHARACTER JUEUI
-110D ; [.377C.0020.0002] # HANGUL CHOSEONG SSANGCIEUC
-3149 ; [.377C.0020.0004] # HANGUL LETTER SSANGCIEUC
-FFB9 ; [.377C.0020.0012] # HALFWIDTH HANGUL LETTER SSANGCIEUC
-110E ; [.377D.0020.0002] # HANGUL CHOSEONG CHIEUCH
-314A ; [.377D.0020.0004] # HANGUL LETTER CHIEUCH
-3209 ; [*030A.0020.0004][.377D.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CHIEUCH
-3269 ; [.377D.0020.0006] # CIRCLED HANGUL CHIEUCH
-FFBA ; [.377D.0020.0012] # HALFWIDTH HANGUL LETTER CHIEUCH
-3217 ; [*030A.0020.0004][.377D.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CHIEUCH A
-3277 ; [.377D.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL CHIEUCH A
-327C ; [.377D.0020.0006][.37ED.0020.0006][.385A.0020.0006][.376F.0020.0006][.37F5.0020.0006] # CIRCLED KOREAN CHARACTER CHAMKO
-110F ; [.377E.0020.0002] # HANGUL CHOSEONG KHIEUKH
-314B ; [.377E.0020.0004] # HANGUL LETTER KHIEUKH
-320A ; [*030A.0020.0004][.377E.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL KHIEUKH
-326A ; [.377E.0020.0006] # CIRCLED HANGUL KHIEUKH
-FFBB ; [.377E.0020.0012] # HALFWIDTH HANGUL LETTER KHIEUKH
-3218 ; [*030A.0020.0004][.377E.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL KHIEUKH A
-3278 ; [.377E.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL KHIEUKH A
-1110 ; [.377F.0020.0002] # HANGUL CHOSEONG THIEUTH
-314C ; [.377F.0020.0004] # HANGUL LETTER THIEUTH
-320B ; [*030A.0020.0004][.377F.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL THIEUTH
-326B ; [.377F.0020.0006] # CIRCLED HANGUL THIEUTH
-FFBC ; [.377F.0020.0012] # HALFWIDTH HANGUL LETTER THIEUTH
-3219 ; [*030A.0020.0004][.377F.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL THIEUTH A
-3279 ; [.377F.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL THIEUTH A
-1111 ; [.3780.0020.0002] # HANGUL CHOSEONG PHIEUPH
-314D ; [.3780.0020.0004] # HANGUL LETTER PHIEUPH
-320C ; [*030A.0020.0004][.3780.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL PHIEUPH
-326C ; [.3780.0020.0006] # CIRCLED HANGUL PHIEUPH
-FFBD ; [.3780.0020.0012] # HALFWIDTH HANGUL LETTER PHIEUPH
-321A ; [*030A.0020.0004][.3780.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL PHIEUPH A
-327A ; [.3780.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL PHIEUPH A
-1112 ; [.3781.0020.0002] # HANGUL CHOSEONG HIEUH
-314E ; [.3781.0020.0004] # HANGUL LETTER HIEUH
-320D ; [*030A.0020.0004][.3781.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL HIEUH
-326D ; [.3781.0020.0006] # CIRCLED HANGUL HIEUH
-FFBE ; [.3781.0020.0012] # HALFWIDTH HANGUL LETTER HIEUH
-321B ; [*030A.0020.0004][.3781.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL HIEUH A
-327B ; [.3781.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL HIEUH A
-1113 ; [.3782.0020.0002] # HANGUL CHOSEONG NIEUN-KIYEOK
-1114 ; [.3783.0020.0002] # HANGUL CHOSEONG SSANGNIEUN
-3165 ; [.3783.0020.0004] # HANGUL LETTER SSANGNIEUN
-1115 ; [.3784.0020.0002] # HANGUL CHOSEONG NIEUN-TIKEUT
-3166 ; [.3784.0020.0004] # HANGUL LETTER NIEUN-TIKEUT
-1116 ; [.3785.0020.0002] # HANGUL CHOSEONG NIEUN-PIEUP
-1117 ; [.3786.0020.0002] # HANGUL CHOSEONG TIKEUT-KIYEOK
-1118 ; [.3787.0020.0002] # HANGUL CHOSEONG RIEUL-NIEUN
-1119 ; [.3788.0020.0002] # HANGUL CHOSEONG SSANGRIEUL
-111A ; [.3789.0020.0002] # HANGUL CHOSEONG RIEUL-HIEUH
-3140 ; [.3789.0020.0004] # HANGUL LETTER RIEUL-HIEUH
-FFB0 ; [.3789.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-HIEUH
-111B ; [.378A.0020.0002] # HANGUL CHOSEONG KAPYEOUNRIEUL
-111C ; [.378B.0020.0002] # HANGUL CHOSEONG MIEUM-PIEUP
-316E ; [.378B.0020.0004] # HANGUL LETTER MIEUM-PIEUP
-111D ; [.378C.0020.0002] # HANGUL CHOSEONG KAPYEOUNMIEUM
-3171 ; [.378C.0020.0004] # HANGUL LETTER KAPYEOUNMIEUM
-111E ; [.378D.0020.0002] # HANGUL CHOSEONG PIEUP-KIYEOK
-3172 ; [.378D.0020.0004] # HANGUL LETTER PIEUP-KIYEOK
-111F ; [.378E.0020.0002] # HANGUL CHOSEONG PIEUP-NIEUN
-1120 ; [.378F.0020.0002] # HANGUL CHOSEONG PIEUP-TIKEUT
-3173 ; [.378F.0020.0004] # HANGUL LETTER PIEUP-TIKEUT
-1121 ; [.3790.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS
-3144 ; [.3790.0020.0004] # HANGUL LETTER PIEUP-SIOS
-FFB4 ; [.3790.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP-SIOS
-1122 ; [.3791.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
-3174 ; [.3791.0020.0004] # HANGUL LETTER PIEUP-SIOS-KIYEOK
-1123 ; [.3792.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
-3175 ; [.3792.0020.0004] # HANGUL LETTER PIEUP-SIOS-TIKEUT
-1124 ; [.3793.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
-1125 ; [.3794.0020.0002] # HANGUL CHOSEONG PIEUP-SSANGSIOS
-1126 ; [.3795.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
-1127 ; [.3796.0020.0002] # HANGUL CHOSEONG PIEUP-CIEUC
-3176 ; [.3796.0020.0004] # HANGUL LETTER PIEUP-CIEUC
-1128 ; [.3797.0020.0002] # HANGUL CHOSEONG PIEUP-CHIEUCH
-1129 ; [.3798.0020.0002] # HANGUL CHOSEONG PIEUP-THIEUTH
-3177 ; [.3798.0020.0004] # HANGUL LETTER PIEUP-THIEUTH
-112A ; [.3799.0020.0002] # HANGUL CHOSEONG PIEUP-PHIEUPH
-112B ; [.379A.0020.0002] # HANGUL CHOSEONG KAPYEOUNPIEUP
-3178 ; [.379A.0020.0004] # HANGUL LETTER KAPYEOUNPIEUP
-112C ; [.379B.0020.0002] # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
-3179 ; [.379B.0020.0004] # HANGUL LETTER KAPYEOUNSSANGPIEUP
-112D ; [.379C.0020.0002] # HANGUL CHOSEONG SIOS-KIYEOK
-317A ; [.379C.0020.0004] # HANGUL LETTER SIOS-KIYEOK
-112E ; [.379D.0020.0002] # HANGUL CHOSEONG SIOS-NIEUN
-317B ; [.379D.0020.0004] # HANGUL LETTER SIOS-NIEUN
-112F ; [.379E.0020.0002] # HANGUL CHOSEONG SIOS-TIKEUT
-317C ; [.379E.0020.0004] # HANGUL LETTER SIOS-TIKEUT
-1130 ; [.379F.0020.0002] # HANGUL CHOSEONG SIOS-RIEUL
-1131 ; [.37A0.0020.0002] # HANGUL CHOSEONG SIOS-MIEUM
-1132 ; [.37A1.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP
-317D ; [.37A1.0020.0004] # HANGUL LETTER SIOS-PIEUP
-1133 ; [.37A2.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
-1134 ; [.37A3.0020.0002] # HANGUL CHOSEONG SIOS-SSANGSIOS
-1135 ; [.37A4.0020.0002] # HANGUL CHOSEONG SIOS-IEUNG
-1136 ; [.37A5.0020.0002] # HANGUL CHOSEONG SIOS-CIEUC
-317E ; [.37A5.0020.0004] # HANGUL LETTER SIOS-CIEUC
-1137 ; [.37A6.0020.0002] # HANGUL CHOSEONG SIOS-CHIEUCH
-1138 ; [.37A7.0020.0002] # HANGUL CHOSEONG SIOS-KHIEUKH
-1139 ; [.37A8.0020.0002] # HANGUL CHOSEONG SIOS-THIEUTH
-113A ; [.37A9.0020.0002] # HANGUL CHOSEONG SIOS-PHIEUPH
-113B ; [.37AA.0020.0002] # HANGUL CHOSEONG SIOS-HIEUH
-113C ; [.37AB.0020.0002] # HANGUL CHOSEONG CHITUEUMSIOS
-113D ; [.37AC.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGSIOS
-113E ; [.37AD.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSIOS
-113F ; [.37AE.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
-1140 ; [.37AF.0020.0002] # HANGUL CHOSEONG PANSIOS
-317F ; [.37AF.0020.0004] # HANGUL LETTER PANSIOS
-1141 ; [.37B0.0020.0002] # HANGUL CHOSEONG IEUNG-KIYEOK
-1142 ; [.37B1.0020.0002] # HANGUL CHOSEONG IEUNG-TIKEUT
-1143 ; [.37B2.0020.0002] # HANGUL CHOSEONG IEUNG-MIEUM
-1144 ; [.37B3.0020.0002] # HANGUL CHOSEONG IEUNG-PIEUP
-1145 ; [.37B4.0020.0002] # HANGUL CHOSEONG IEUNG-SIOS
-1146 ; [.37B5.0020.0002] # HANGUL CHOSEONG IEUNG-PANSIOS
-1147 ; [.37B6.0020.0002] # HANGUL CHOSEONG SSANGIEUNG
-3180 ; [.37B6.0020.0004] # HANGUL LETTER SSANGIEUNG
-1148 ; [.37B7.0020.0002] # HANGUL CHOSEONG IEUNG-CIEUC
-1149 ; [.37B8.0020.0002] # HANGUL CHOSEONG IEUNG-CHIEUCH
-114A ; [.37B9.0020.0002] # HANGUL CHOSEONG IEUNG-THIEUTH
-114B ; [.37BA.0020.0002] # HANGUL CHOSEONG IEUNG-PHIEUPH
-114C ; [.37BB.0020.0002] # HANGUL CHOSEONG YESIEUNG
-3181 ; [.37BB.0020.0004] # HANGUL LETTER YESIEUNG
-114D ; [.37BC.0020.0002] # HANGUL CHOSEONG CIEUC-IEUNG
-114E ; [.37BD.0020.0002] # HANGUL CHOSEONG CHITUEUMCIEUC
-114F ; [.37BE.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
-1150 ; [.37BF.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCIEUC
-1151 ; [.37C0.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
-1152 ; [.37C1.0020.0002] # HANGUL CHOSEONG CHIEUCH-KHIEUKH
-1153 ; [.37C2.0020.0002] # HANGUL CHOSEONG CHIEUCH-HIEUH
-1154 ; [.37C3.0020.0002] # HANGUL CHOSEONG CHITUEUMCHIEUCH
-1155 ; [.37C4.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
-1156 ; [.37C5.0020.0002] # HANGUL CHOSEONG PHIEUPH-PIEUP
-1157 ; [.37C6.0020.0002] # HANGUL CHOSEONG KAPYEOUNPHIEUPH
-3184 ; [.37C6.0020.0004] # HANGUL LETTER KAPYEOUNPHIEUPH
-1158 ; [.37C7.0020.0002] # HANGUL CHOSEONG SSANGHIEUH
-3185 ; [.37C7.0020.0004] # HANGUL LETTER SSANGHIEUH
-1159 ; [.37C8.0020.0002] # HANGUL CHOSEONG YEORINHIEUH
-3186 ; [.37C8.0020.0004] # HANGUL LETTER YEORINHIEUH
-115A ; [.37C9.0020.0002] # HANGUL CHOSEONG KIYEOK-TIKEUT
-115B ; [.37CA.0020.0002] # HANGUL CHOSEONG NIEUN-SIOS
-115C ; [.37CB.0020.0002] # HANGUL CHOSEONG NIEUN-CIEUC
-115D ; [.37CC.0020.0002] # HANGUL CHOSEONG NIEUN-HIEUH
-115E ; [.37CD.0020.0002] # HANGUL CHOSEONG TIKEUT-RIEUL
-A960 ; [.37CE.0020.0002] # HANGUL CHOSEONG TIKEUT-MIEUM
-A961 ; [.37CF.0020.0002] # HANGUL CHOSEONG TIKEUT-PIEUP
-A962 ; [.37D0.0020.0002] # HANGUL CHOSEONG TIKEUT-SIOS
-A963 ; [.37D1.0020.0002] # HANGUL CHOSEONG TIKEUT-CIEUC
-A964 ; [.37D2.0020.0002] # HANGUL CHOSEONG RIEUL-KIYEOK
-A965 ; [.37D3.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGKIYEOK
-A966 ; [.37D4.0020.0002] # HANGUL CHOSEONG RIEUL-TIKEUT
-A967 ; [.37D5.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGTIKEUT
-A968 ; [.37D6.0020.0002] # HANGUL CHOSEONG RIEUL-MIEUM
-A969 ; [.37D7.0020.0002] # HANGUL CHOSEONG RIEUL-PIEUP
-A96A ; [.37D8.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGPIEUP
-A96B ; [.37D9.0020.0002] # HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
-A96C ; [.37DA.0020.0002] # HANGUL CHOSEONG RIEUL-SIOS
-A96D ; [.37DB.0020.0002] # HANGUL CHOSEONG RIEUL-CIEUC
-A96E ; [.37DC.0020.0002] # HANGUL CHOSEONG RIEUL-KHIEUKH
-A96F ; [.37DD.0020.0002] # HANGUL CHOSEONG MIEUM-KIYEOK
-A970 ; [.37DE.0020.0002] # HANGUL CHOSEONG MIEUM-TIKEUT
-A971 ; [.37DF.0020.0002] # HANGUL CHOSEONG MIEUM-SIOS
-A972 ; [.37E0.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
-A973 ; [.37E1.0020.0002] # HANGUL CHOSEONG PIEUP-KHIEUKH
-A974 ; [.37E2.0020.0002] # HANGUL CHOSEONG PIEUP-HIEUH
-A975 ; [.37E3.0020.0002] # HANGUL CHOSEONG SSANGSIOS-PIEUP
-A976 ; [.37E4.0020.0002] # HANGUL CHOSEONG IEUNG-RIEUL
-A977 ; [.37E5.0020.0002] # HANGUL CHOSEONG IEUNG-HIEUH
-A978 ; [.37E6.0020.0002] # HANGUL CHOSEONG SSANGCIEUC-HIEUH
-A979 ; [.37E7.0020.0002] # HANGUL CHOSEONG SSANGTHIEUTH
-A97A ; [.37E8.0020.0002] # HANGUL CHOSEONG PHIEUPH-HIEUH
-A97B ; [.37E9.0020.0002] # HANGUL CHOSEONG HIEUH-SIOS
-A97C ; [.37EA.0020.0002] # HANGUL CHOSEONG SSANGYEORINHIEUH
-115F ; [.37EB.0020.0002] # HANGUL CHOSEONG FILLER
-1160 ; [.37EC.0020.0002] # HANGUL JUNGSEONG FILLER
-3164 ; [.37EC.0020.0004] # HANGUL FILLER
-FFA0 ; [.37EC.0020.0012] # HALFWIDTH HANGUL FILLER
-1161 ; [.37ED.0020.0002] # HANGUL JUNGSEONG A
-314F ; [.37ED.0020.0004] # HANGUL LETTER A
-FFC2 ; [.37ED.0020.0012] # HALFWIDTH HANGUL LETTER A
-1162 ; [.37EE.0020.0002] # HANGUL JUNGSEONG AE
-3150 ; [.37EE.0020.0004] # HANGUL LETTER AE
-FFC3 ; [.37EE.0020.0012] # HALFWIDTH HANGUL LETTER AE
-1163 ; [.37EF.0020.0002] # HANGUL JUNGSEONG YA
-3151 ; [.37EF.0020.0004] # HANGUL LETTER YA
-FFC4 ; [.37EF.0020.0012] # HALFWIDTH HANGUL LETTER YA
-1164 ; [.37F0.0020.0002] # HANGUL JUNGSEONG YAE
-3152 ; [.37F0.0020.0004] # HANGUL LETTER YAE
-FFC5 ; [.37F0.0020.0012] # HALFWIDTH HANGUL LETTER YAE
-1165 ; [.37F1.0020.0002] # HANGUL JUNGSEONG EO
-3153 ; [.37F1.0020.0004] # HANGUL LETTER EO
-FFC6 ; [.37F1.0020.0012] # HALFWIDTH HANGUL LETTER EO
-1166 ; [.37F2.0020.0002] # HANGUL JUNGSEONG E
-3154 ; [.37F2.0020.0004] # HANGUL LETTER E
-FFC7 ; [.37F2.0020.0012] # HALFWIDTH HANGUL LETTER E
-1167 ; [.37F3.0020.0002] # HANGUL JUNGSEONG YEO
-3155 ; [.37F3.0020.0004] # HANGUL LETTER YEO
-FFCA ; [.37F3.0020.0012] # HALFWIDTH HANGUL LETTER YEO
-1168 ; [.37F4.0020.0002] # HANGUL JUNGSEONG YE
-3156 ; [.37F4.0020.0004] # HANGUL LETTER YE
-FFCB ; [.37F4.0020.0012] # HALFWIDTH HANGUL LETTER YE
-1169 ; [.37F5.0020.0002] # HANGUL JUNGSEONG O
-3157 ; [.37F5.0020.0004] # HANGUL LETTER O
-FFCC ; [.37F5.0020.0012] # HALFWIDTH HANGUL LETTER O
-116A ; [.37F6.0020.0002] # HANGUL JUNGSEONG WA
-3158 ; [.37F6.0020.0004] # HANGUL LETTER WA
-FFCD ; [.37F6.0020.0012] # HALFWIDTH HANGUL LETTER WA
-116B ; [.37F7.0020.0002] # HANGUL JUNGSEONG WAE
-3159 ; [.37F7.0020.0004] # HANGUL LETTER WAE
-FFCE ; [.37F7.0020.0012] # HALFWIDTH HANGUL LETTER WAE
-116C ; [.37F8.0020.0002] # HANGUL JUNGSEONG OE
-315A ; [.37F8.0020.0004] # HANGUL LETTER OE
-FFCF ; [.37F8.0020.0012] # HALFWIDTH HANGUL LETTER OE
-116D ; [.37F9.0020.0002] # HANGUL JUNGSEONG YO
-315B ; [.37F9.0020.0004] # HANGUL LETTER YO
-FFD2 ; [.37F9.0020.0012] # HALFWIDTH HANGUL LETTER YO
-116E ; [.37FA.0020.0002] # HANGUL JUNGSEONG U
-315C ; [.37FA.0020.0004] # HANGUL LETTER U
-FFD3 ; [.37FA.0020.0012] # HALFWIDTH HANGUL LETTER U
-116F ; [.37FB.0020.0002] # HANGUL JUNGSEONG WEO
-315D ; [.37FB.0020.0004] # HANGUL LETTER WEO
-FFD4 ; [.37FB.0020.0012] # HALFWIDTH HANGUL LETTER WEO
-1170 ; [.37FC.0020.0002] # HANGUL JUNGSEONG WE
-315E ; [.37FC.0020.0004] # HANGUL LETTER WE
-FFD5 ; [.37FC.0020.0012] # HALFWIDTH HANGUL LETTER WE
-1171 ; [.37FD.0020.0002] # HANGUL JUNGSEONG WI
-315F ; [.37FD.0020.0004] # HANGUL LETTER WI
-FFD6 ; [.37FD.0020.0012] # HALFWIDTH HANGUL LETTER WI
-1172 ; [.37FE.0020.0002] # HANGUL JUNGSEONG YU
-3160 ; [.37FE.0020.0004] # HANGUL LETTER YU
-FFD7 ; [.37FE.0020.0012] # HALFWIDTH HANGUL LETTER YU
-1173 ; [.37FF.0020.0002] # HANGUL JUNGSEONG EU
-3161 ; [.37FF.0020.0004] # HANGUL LETTER EU
-FFDA ; [.37FF.0020.0012] # HALFWIDTH HANGUL LETTER EU
-1174 ; [.3800.0020.0002] # HANGUL JUNGSEONG YI
-3162 ; [.3800.0020.0004] # HANGUL LETTER YI
-FFDB ; [.3800.0020.0012] # HALFWIDTH HANGUL LETTER YI
-1175 ; [.3801.0020.0002] # HANGUL JUNGSEONG I
-3163 ; [.3801.0020.0004] # HANGUL LETTER I
-FFDC ; [.3801.0020.0012] # HALFWIDTH HANGUL LETTER I
-1176 ; [.3802.0020.0002] # HANGUL JUNGSEONG A-O
-1177 ; [.3803.0020.0002] # HANGUL JUNGSEONG A-U
-1178 ; [.3804.0020.0002] # HANGUL JUNGSEONG YA-O
-1179 ; [.3805.0020.0002] # HANGUL JUNGSEONG YA-YO
-117A ; [.3806.0020.0002] # HANGUL JUNGSEONG EO-O
-117B ; [.3807.0020.0002] # HANGUL JUNGSEONG EO-U
-117C ; [.3808.0020.0002] # HANGUL JUNGSEONG EO-EU
-117D ; [.3809.0020.0002] # HANGUL JUNGSEONG YEO-O
-117E ; [.380A.0020.0002] # HANGUL JUNGSEONG YEO-U
-117F ; [.380B.0020.0002] # HANGUL JUNGSEONG O-EO
-1180 ; [.380C.0020.0002] # HANGUL JUNGSEONG O-E
-1181 ; [.380D.0020.0002] # HANGUL JUNGSEONG O-YE
-1182 ; [.380E.0020.0002] # HANGUL JUNGSEONG O-O
-1183 ; [.380F.0020.0002] # HANGUL JUNGSEONG O-U
-1184 ; [.3810.0020.0002] # HANGUL JUNGSEONG YO-YA
-3187 ; [.3810.0020.0004] # HANGUL LETTER YO-YA
-1185 ; [.3811.0020.0002] # HANGUL JUNGSEONG YO-YAE
-3188 ; [.3811.0020.0004] # HANGUL LETTER YO-YAE
-1186 ; [.3812.0020.0002] # HANGUL JUNGSEONG YO-YEO
-1187 ; [.3813.0020.0002] # HANGUL JUNGSEONG YO-O
-1188 ; [.3814.0020.0002] # HANGUL JUNGSEONG YO-I
-3189 ; [.3814.0020.0004] # HANGUL LETTER YO-I
-1189 ; [.3815.0020.0002] # HANGUL JUNGSEONG U-A
-118A ; [.3816.0020.0002] # HANGUL JUNGSEONG U-AE
-118B ; [.3817.0020.0002] # HANGUL JUNGSEONG U-EO-EU
-118C ; [.3818.0020.0002] # HANGUL JUNGSEONG U-YE
-118D ; [.3819.0020.0002] # HANGUL JUNGSEONG U-U
-118E ; [.381A.0020.0002] # HANGUL JUNGSEONG YU-A
-118F ; [.381B.0020.0002] # HANGUL JUNGSEONG YU-EO
-1190 ; [.381C.0020.0002] # HANGUL JUNGSEONG YU-E
-1191 ; [.381D.0020.0002] # HANGUL JUNGSEONG YU-YEO
-318A ; [.381D.0020.0004] # HANGUL LETTER YU-YEO
-1192 ; [.381E.0020.0002] # HANGUL JUNGSEONG YU-YE
-318B ; [.381E.0020.0004] # HANGUL LETTER YU-YE
-1193 ; [.381F.0020.0002] # HANGUL JUNGSEONG YU-U
-1194 ; [.3820.0020.0002] # HANGUL JUNGSEONG YU-I
-318C ; [.3820.0020.0004] # HANGUL LETTER YU-I
-1195 ; [.3821.0020.0002] # HANGUL JUNGSEONG EU-U
-1196 ; [.3822.0020.0002] # HANGUL JUNGSEONG EU-EU
-1197 ; [.3823.0020.0002] # HANGUL JUNGSEONG YI-U
-1198 ; [.3824.0020.0002] # HANGUL JUNGSEONG I-A
-1199 ; [.3825.0020.0002] # HANGUL JUNGSEONG I-YA
-119A ; [.3826.0020.0002] # HANGUL JUNGSEONG I-O
-119B ; [.3827.0020.0002] # HANGUL JUNGSEONG I-U
-119C ; [.3828.0020.0002] # HANGUL JUNGSEONG I-EU
-119D ; [.3829.0020.0002] # HANGUL JUNGSEONG I-ARAEA
-119E ; [.382A.0020.0002] # HANGUL JUNGSEONG ARAEA
-318D ; [.382A.0020.0004] # HANGUL LETTER ARAEA
-119F ; [.382B.0020.0002] # HANGUL JUNGSEONG ARAEA-EO
-11A0 ; [.382C.0020.0002] # HANGUL JUNGSEONG ARAEA-U
-11A1 ; [.382D.0020.0002] # HANGUL JUNGSEONG ARAEA-I
-318E ; [.382D.0020.0004] # HANGUL LETTER ARAEAE
-11A2 ; [.382E.0020.0002] # HANGUL JUNGSEONG SSANGARAEA
-11A3 ; [.382F.0020.0002] # HANGUL JUNGSEONG A-EU
-11A4 ; [.3830.0020.0002] # HANGUL JUNGSEONG YA-U
-11A5 ; [.3831.0020.0002] # HANGUL JUNGSEONG YEO-YA
-11A6 ; [.3832.0020.0002] # HANGUL JUNGSEONG O-YA
-11A7 ; [.3833.0020.0002] # HANGUL JUNGSEONG O-YAE
-D7B0 ; [.3834.0020.0002] # HANGUL JUNGSEONG O-YEO
-D7B1 ; [.3835.0020.0002] # HANGUL JUNGSEONG O-O-I
-D7B2 ; [.3836.0020.0002] # HANGUL JUNGSEONG YO-A
-D7B3 ; [.3837.0020.0002] # HANGUL JUNGSEONG YO-AE
-D7B4 ; [.3838.0020.0002] # HANGUL JUNGSEONG YO-EO
-D7B5 ; [.3839.0020.0002] # HANGUL JUNGSEONG U-YEO
-D7B6 ; [.383A.0020.0002] # HANGUL JUNGSEONG U-I-I
-D7B7 ; [.383B.0020.0002] # HANGUL JUNGSEONG YU-AE
-D7B8 ; [.383C.0020.0002] # HANGUL JUNGSEONG YU-O
-D7B9 ; [.383D.0020.0002] # HANGUL JUNGSEONG EU-A
-D7BA ; [.383E.0020.0002] # HANGUL JUNGSEONG EU-EO
-D7BB ; [.383F.0020.0002] # HANGUL JUNGSEONG EU-E
-D7BC ; [.3840.0020.0002] # HANGUL JUNGSEONG EU-O
-D7BD ; [.3841.0020.0002] # HANGUL JUNGSEONG I-YA-O
-D7BE ; [.3842.0020.0002] # HANGUL JUNGSEONG I-YAE
-D7BF ; [.3843.0020.0002] # HANGUL JUNGSEONG I-YEO
-D7C0 ; [.3844.0020.0002] # HANGUL JUNGSEONG I-YE
-D7C1 ; [.3845.0020.0002] # HANGUL JUNGSEONG I-O-I
-D7C2 ; [.3846.0020.0002] # HANGUL JUNGSEONG I-YO
-D7C3 ; [.3847.0020.0002] # HANGUL JUNGSEONG I-YU
-D7C4 ; [.3848.0020.0002] # HANGUL JUNGSEONG I-I
-D7C5 ; [.3849.0020.0002] # HANGUL JUNGSEONG ARAEA-A
-D7C6 ; [.384A.0020.0002] # HANGUL JUNGSEONG ARAEA-E
-11A8 ; [.384B.0020.0002] # HANGUL JONGSEONG KIYEOK
-11A9 ; [.384C.0020.0002] # HANGUL JONGSEONG SSANGKIYEOK
-11AA ; [.384D.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS
-3133 ; [.384D.0020.0004] # HANGUL LETTER KIYEOK-SIOS
-FFA3 ; [.384D.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK-SIOS
-11AB ; [.384E.0020.0002] # HANGUL JONGSEONG NIEUN
-11AC ; [.384F.0020.0002] # HANGUL JONGSEONG NIEUN-CIEUC
-3135 ; [.384F.0020.0004] # HANGUL LETTER NIEUN-CIEUC
-FFA5 ; [.384F.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-CIEUC
-11AD ; [.3850.0020.0002] # HANGUL JONGSEONG NIEUN-HIEUH
-3136 ; [.3850.0020.0004] # HANGUL LETTER NIEUN-HIEUH
-FFA6 ; [.3850.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-HIEUH
-11AE ; [.3851.0020.0002] # HANGUL JONGSEONG TIKEUT
-11AF ; [.3852.0020.0002] # HANGUL JONGSEONG RIEUL
-11B0 ; [.3853.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK
-313A ; [.3853.0020.0004] # HANGUL LETTER RIEUL-KIYEOK
-FFAA ; [.3853.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
-11B1 ; [.3854.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM
-313B ; [.3854.0020.0004] # HANGUL LETTER RIEUL-MIEUM
-FFAB ; [.3854.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-MIEUM
-11B2 ; [.3855.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP
-313C ; [.3855.0020.0004] # HANGUL LETTER RIEUL-PIEUP
-FFAC ; [.3855.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PIEUP
-11B3 ; [.3856.0020.0002] # HANGUL JONGSEONG RIEUL-SIOS
-313D ; [.3856.0020.0004] # HANGUL LETTER RIEUL-SIOS
-FFAD ; [.3856.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-SIOS
-11B4 ; [.3857.0020.0002] # HANGUL JONGSEONG RIEUL-THIEUTH
-313E ; [.3857.0020.0004] # HANGUL LETTER RIEUL-THIEUTH
-FFAE ; [.3857.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
-11B5 ; [.3858.0020.0002] # HANGUL JONGSEONG RIEUL-PHIEUPH
-313F ; [.3858.0020.0004] # HANGUL LETTER RIEUL-PHIEUPH
-FFAF ; [.3858.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
-11B6 ; [.3859.0020.0002] # HANGUL JONGSEONG RIEUL-HIEUH
-11B7 ; [.385A.0020.0002] # HANGUL JONGSEONG MIEUM
-11B8 ; [.385B.0020.0002] # HANGUL JONGSEONG PIEUP
-11B9 ; [.385C.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS
-11BA ; [.385D.0020.0002] # HANGUL JONGSEONG SIOS
-11BB ; [.385E.0020.0002] # HANGUL JONGSEONG SSANGSIOS
-11BC ; [.385F.0020.0002] # HANGUL JONGSEONG IEUNG
-11BD ; [.3860.0020.0002] # HANGUL JONGSEONG CIEUC
-11BE ; [.3861.0020.0002] # HANGUL JONGSEONG CHIEUCH
-11BF ; [.3862.0020.0002] # HANGUL JONGSEONG KHIEUKH
-11C0 ; [.3863.0020.0002] # HANGUL JONGSEONG THIEUTH
-11C1 ; [.3864.0020.0002] # HANGUL JONGSEONG PHIEUPH
-11C2 ; [.3865.0020.0002] # HANGUL JONGSEONG HIEUH
-11C3 ; [.3866.0020.0002] # HANGUL JONGSEONG KIYEOK-RIEUL
-11C4 ; [.3867.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
-11C5 ; [.3868.0020.0002] # HANGUL JONGSEONG NIEUN-KIYEOK
-11C6 ; [.3869.0020.0002] # HANGUL JONGSEONG NIEUN-TIKEUT
-11C7 ; [.386A.0020.0002] # HANGUL JONGSEONG NIEUN-SIOS
-3167 ; [.386A.0020.0004] # HANGUL LETTER NIEUN-SIOS
-11C8 ; [.386B.0020.0002] # HANGUL JONGSEONG NIEUN-PANSIOS
-3168 ; [.386B.0020.0004] # HANGUL LETTER NIEUN-PANSIOS
-11C9 ; [.386C.0020.0002] # HANGUL JONGSEONG NIEUN-THIEUTH
-11CA ; [.386D.0020.0002] # HANGUL JONGSEONG TIKEUT-KIYEOK
-11CB ; [.386E.0020.0002] # HANGUL JONGSEONG TIKEUT-RIEUL
-11CC ; [.386F.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
-3169 ; [.386F.0020.0004] # HANGUL LETTER RIEUL-KIYEOK-SIOS
-11CD ; [.3870.0020.0002] # HANGUL JONGSEONG RIEUL-NIEUN
-11CE ; [.3871.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT
-316A ; [.3871.0020.0004] # HANGUL LETTER RIEUL-TIKEUT
-11CF ; [.3872.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
-11D0 ; [.3873.0020.0002] # HANGUL JONGSEONG SSANGRIEUL
-11D1 ; [.3874.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
-11D2 ; [.3875.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
-11D3 ; [.3876.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
-316B ; [.3876.0020.0004] # HANGUL LETTER RIEUL-PIEUP-SIOS
-11D4 ; [.3877.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
-11D5 ; [.3878.0020.0002] # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
-11D6 ; [.3879.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGSIOS
-11D7 ; [.387A.0020.0002] # HANGUL JONGSEONG RIEUL-PANSIOS
-316C ; [.387A.0020.0004] # HANGUL LETTER RIEUL-PANSIOS
-11D8 ; [.387B.0020.0002] # HANGUL JONGSEONG RIEUL-KHIEUKH
-11D9 ; [.387C.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH
-316D ; [.387C.0020.0004] # HANGUL LETTER RIEUL-YEORINHIEUH
-11DA ; [.387D.0020.0002] # HANGUL JONGSEONG MIEUM-KIYEOK
-11DB ; [.387E.0020.0002] # HANGUL JONGSEONG MIEUM-RIEUL
-11DC ; [.387F.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP
-11DD ; [.3880.0020.0002] # HANGUL JONGSEONG MIEUM-SIOS
-316F ; [.3880.0020.0004] # HANGUL LETTER MIEUM-SIOS
-11DE ; [.3881.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGSIOS
-11DF ; [.3882.0020.0002] # HANGUL JONGSEONG MIEUM-PANSIOS
-3170 ; [.3882.0020.0004] # HANGUL LETTER MIEUM-PANSIOS
-11E0 ; [.3883.0020.0002] # HANGUL JONGSEONG MIEUM-CHIEUCH
-11E1 ; [.3884.0020.0002] # HANGUL JONGSEONG MIEUM-HIEUH
-11E2 ; [.3885.0020.0002] # HANGUL JONGSEONG KAPYEOUNMIEUM
-11E3 ; [.3886.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL
-11E4 ; [.3887.0020.0002] # HANGUL JONGSEONG PIEUP-PHIEUPH
-11E5 ; [.3888.0020.0002] # HANGUL JONGSEONG PIEUP-HIEUH
-11E6 ; [.3889.0020.0002] # HANGUL JONGSEONG KAPYEOUNPIEUP
-11E7 ; [.388A.0020.0002] # HANGUL JONGSEONG SIOS-KIYEOK
-11E8 ; [.388B.0020.0002] # HANGUL JONGSEONG SIOS-TIKEUT
-11E9 ; [.388C.0020.0002] # HANGUL JONGSEONG SIOS-RIEUL
-11EA ; [.388D.0020.0002] # HANGUL JONGSEONG SIOS-PIEUP
-11EB ; [.388E.0020.0002] # HANGUL JONGSEONG PANSIOS
-11EC ; [.388F.0020.0002] # HANGUL JONGSEONG IEUNG-KIYEOK
-11ED ; [.3890.0020.0002] # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
-11EE ; [.3891.0020.0002] # HANGUL JONGSEONG SSANGIEUNG
-11EF ; [.3892.0020.0002] # HANGUL JONGSEONG IEUNG-KHIEUKH
-11F0 ; [.3893.0020.0002] # HANGUL JONGSEONG YESIEUNG
-11F1 ; [.3894.0020.0002] # HANGUL JONGSEONG YESIEUNG-SIOS
-3182 ; [.3894.0020.0004] # HANGUL LETTER YESIEUNG-SIOS
-11F2 ; [.3895.0020.0002] # HANGUL JONGSEONG YESIEUNG-PANSIOS
-3183 ; [.3895.0020.0004] # HANGUL LETTER YESIEUNG-PANSIOS
-11F3 ; [.3896.0020.0002] # HANGUL JONGSEONG PHIEUPH-PIEUP
-11F4 ; [.3897.0020.0002] # HANGUL JONGSEONG KAPYEOUNPHIEUPH
-11F5 ; [.3898.0020.0002] # HANGUL JONGSEONG HIEUH-NIEUN
-11F6 ; [.3899.0020.0002] # HANGUL JONGSEONG HIEUH-RIEUL
-11F7 ; [.389A.0020.0002] # HANGUL JONGSEONG HIEUH-MIEUM
-11F8 ; [.389B.0020.0002] # HANGUL JONGSEONG HIEUH-PIEUP
-11F9 ; [.389C.0020.0002] # HANGUL JONGSEONG YEORINHIEUH
-11FA ; [.389D.0020.0002] # HANGUL JONGSEONG KIYEOK-NIEUN
-11FB ; [.389E.0020.0002] # HANGUL JONGSEONG KIYEOK-PIEUP
-11FC ; [.389F.0020.0002] # HANGUL JONGSEONG KIYEOK-CHIEUCH
-11FD ; [.38A0.0020.0002] # HANGUL JONGSEONG KIYEOK-KHIEUKH
-11FE ; [.38A1.0020.0002] # HANGUL JONGSEONG KIYEOK-HIEUH
-11FF ; [.38A2.0020.0002] # HANGUL JONGSEONG SSANGNIEUN
-D7CB ; [.38A3.0020.0002] # HANGUL JONGSEONG NIEUN-RIEUL
-D7CC ; [.38A4.0020.0002] # HANGUL JONGSEONG NIEUN-CHIEUCH
-D7CD ; [.38A5.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT
-D7CE ; [.38A6.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT-PIEUP
-D7CF ; [.38A7.0020.0002] # HANGUL JONGSEONG TIKEUT-PIEUP
-D7D0 ; [.38A8.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS
-D7D1 ; [.38A9.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
-D7D2 ; [.38AA.0020.0002] # HANGUL JONGSEONG TIKEUT-CIEUC
-D7D3 ; [.38AB.0020.0002] # HANGUL JONGSEONG TIKEUT-CHIEUCH
-D7D4 ; [.38AC.0020.0002] # HANGUL JONGSEONG TIKEUT-THIEUTH
-D7D5 ; [.38AD.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGKIYEOK
-D7D6 ; [.38AE.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
-D7D7 ; [.38AF.0020.0002] # HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
-D7D8 ; [.38B0.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
-D7D9 ; [.38B1.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
-D7DA ; [.38B2.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
-D7DB ; [.38B3.0020.0002] # HANGUL JONGSEONG RIEUL-YESIEUNG
-D7DC ; [.38B4.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
-D7DD ; [.38B5.0020.0002] # HANGUL JONGSEONG KAPYEOUNRIEUL
-D7DE ; [.38B6.0020.0002] # HANGUL JONGSEONG MIEUM-NIEUN
-D7DF ; [.38B7.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGNIEUN
-D7E0 ; [.38B8.0020.0002] # HANGUL JONGSEONG SSANGMIEUM
-D7E1 ; [.38B9.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP-SIOS
-D7E2 ; [.38BA.0020.0002] # HANGUL JONGSEONG MIEUM-CIEUC
-D7E3 ; [.38BB.0020.0002] # HANGUL JONGSEONG PIEUP-TIKEUT
-D7E4 ; [.38BC.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
-D7E5 ; [.38BD.0020.0002] # HANGUL JONGSEONG PIEUP-MIEUM
-D7E6 ; [.38BE.0020.0002] # HANGUL JONGSEONG SSANGPIEUP
-D7E7 ; [.38BF.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
-D7E8 ; [.38C0.0020.0002] # HANGUL JONGSEONG PIEUP-CIEUC
-D7E9 ; [.38C1.0020.0002] # HANGUL JONGSEONG PIEUP-CHIEUCH
-D7EA ; [.38C2.0020.0002] # HANGUL JONGSEONG SIOS-MIEUM
-D7EB ; [.38C3.0020.0002] # HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
-D7EC ; [.38C4.0020.0002] # HANGUL JONGSEONG SSANGSIOS-KIYEOK
-D7ED ; [.38C5.0020.0002] # HANGUL JONGSEONG SSANGSIOS-TIKEUT
-D7EE ; [.38C6.0020.0002] # HANGUL JONGSEONG SIOS-PANSIOS
-D7EF ; [.38C7.0020.0002] # HANGUL JONGSEONG SIOS-CIEUC
-D7F0 ; [.38C8.0020.0002] # HANGUL JONGSEONG SIOS-CHIEUCH
-D7F1 ; [.38C9.0020.0002] # HANGUL JONGSEONG SIOS-THIEUTH
-D7F2 ; [.38CA.0020.0002] # HANGUL JONGSEONG SIOS-HIEUH
-D7F3 ; [.38CB.0020.0002] # HANGUL JONGSEONG PANSIOS-PIEUP
-D7F4 ; [.38CC.0020.0002] # HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
-D7F5 ; [.38CD.0020.0002] # HANGUL JONGSEONG YESIEUNG-MIEUM
-D7F6 ; [.38CE.0020.0002] # HANGUL JONGSEONG YESIEUNG-HIEUH
-D7F7 ; [.38CF.0020.0002] # HANGUL JONGSEONG CIEUC-PIEUP
-D7F8 ; [.38D0.0020.0002] # HANGUL JONGSEONG CIEUC-SSANGPIEUP
-D7F9 ; [.38D1.0020.0002] # HANGUL JONGSEONG SSANGCIEUC
-D7FA ; [.38D2.0020.0002] # HANGUL JONGSEONG PHIEUPH-SIOS
-D7FB ; [.38D3.0020.0002] # HANGUL JONGSEONG PHIEUPH-THIEUTH
-3041 ; [.38D4.0020.000D] # HIRAGANA LETTER SMALL A
-3042 ; [.38D4.0020.000E] # HIRAGANA LETTER A
-30A1 ; [.38D4.0020.000F] # KATAKANA LETTER SMALL A
-FF67 ; [.38D4.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL A
-30A2 ; [.38D4.0020.0011] # KATAKANA LETTER A
-FF71 ; [.38D4.0020.0012] # HALFWIDTH KATAKANA LETTER A
-32D0 ; [.38D4.0020.0013] # CIRCLED KATAKANA A
-3303 ; [.38D4.0020.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE AARU
-3300 ; [.38D4.0020.001C][.38EE.0020.001C][.0000.0038.001C][.18D4.0020.001C][.38E8.0020.001C] # SQUARE APAATO
-3301 ; [.38D4.0020.001C][.38FE.0020.001C][.38F0.0020.001C][.38D4.0020.001C] # SQUARE ARUHUA
-3302 ; [.38D4.0020.001C][.3905.0020.001C][.38F1.0020.001C][.0000.0038.001C][.38D4.0020.001C] # SQUARE ANPEA
-3043 ; [.38D5.0020.000D] # HIRAGANA LETTER SMALL I
-3044 ; [.38D5.0020.000E] # HIRAGANA LETTER I
-30A3 ; [.38D5.0020.000F] # KATAKANA LETTER SMALL I
-FF68 ; [.38D5.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL I
-30A4 ; [.38D5.0020.0011] # KATAKANA LETTER I
-FF72 ; [.38D5.0020.0012] # HALFWIDTH KATAKANA LETTER I
-32D1 ; [.38D5.0020.0013] # CIRCLED KATAKANA I
-3304 ; [.38D5.0020.001C][.38EA.0020.001C][.3905.0020.001C][.38DC.0020.001C][.0000.0037.001C] # SQUARE ININGU
-3305 ; [.38D5.0020.001C][.3905.0020.001C][.38E5.0020.001C] # SQUARE INTI
-3045 ; [.38D6.0020.000D] # HIRAGANA LETTER SMALL U
-3046 ; [.38D6.0020.000E] # HIRAGANA LETTER U
-30A5 ; [.38D6.0020.000F] # KATAKANA LETTER SMALL U
-FF69 ; [.38D6.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL U
-30A6 ; [.38D6.0020.0011] # KATAKANA LETTER U
-FF73 ; [.38D6.0020.0012] # HALFWIDTH KATAKANA LETTER U
-32D2 ; [.38D6.0020.0013] # CIRCLED KATAKANA U
-3094 ; [.38D6.0020.000E][.0000.0037.0002] # HIRAGANA LETTER VU
-30F4 ; [.38D6.0020.0011][.0000.0037.0002] # KATAKANA LETTER VU
-3306 ; [.38D6.0020.001C][.38D9.0020.001C][.3905.0020.001C] # SQUARE UON
-1B000 ; [.38D7.0020.0011] # KATAKANA LETTER ARCHAIC E
-3047 ; [.38D8.0020.000D] # HIRAGANA LETTER SMALL E
-3048 ; [.38D8.0020.000E] # HIRAGANA LETTER E
-30A7 ; [.38D8.0020.000F] # KATAKANA LETTER SMALL E
-FF6A ; [.38D8.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL E
-30A8 ; [.38D8.0020.0011] # KATAKANA LETTER E
-FF74 ; [.38D8.0020.0012] # HALFWIDTH KATAKANA LETTER E
-32D3 ; [.38D8.0020.0013] # CIRCLED KATAKANA E
-3308 ; [.38D8.0020.001C][.18D4.0020.001C][.38DA.0020.001C][.18D4.0020.001C] # SQUARE EEKAA
-3307 ; [.38D8.0020.001C][.38E1.0020.001C][.38DC.0020.001C][.18D4.0020.001C][.38E8.0020.001C][.0000.0037.001C] # SQUARE ESUKUUDO
-3049 ; [.38D9.0020.000D] # HIRAGANA LETTER SMALL O
-304A ; [.38D9.0020.000E] # HIRAGANA LETTER O
-30A9 ; [.38D9.0020.000F] # KATAKANA LETTER SMALL O
-FF6B ; [.38D9.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL O
-30AA ; [.38D9.0020.0011] # KATAKANA LETTER O
-FF75 ; [.38D9.0020.0012] # HALFWIDTH KATAKANA LETTER O
-32D4 ; [.38D9.0020.0013] # CIRCLED KATAKANA O
-330A ; [.38D9.0020.001C][.18D4.0020.001C][.38F5.0020.001C] # SQUARE OOMU
-3309 ; [.38D9.0020.001C][.3905.0020.001C][.38E1.0020.001C] # SQUARE ONSU
-3095 ; [.38DA.0020.000D] # HIRAGANA LETTER SMALL KA
-304B ; [.38DA.0020.000E] # HIRAGANA LETTER KA
-30F5 ; [.38DA.0020.000F] # KATAKANA LETTER SMALL KA
-30AB ; [.38DA.0020.0011] # KATAKANA LETTER KA
-FF76 ; [.38DA.0020.0012] # HALFWIDTH KATAKANA LETTER KA
-32D5 ; [.38DA.0020.0013] # CIRCLED KATAKANA KA
-304C ; [.38DA.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GA
-30AC ; [.38DA.0020.0011][.0000.0037.0002] # KATAKANA LETTER GA
-330B ; [.38DA.0020.001C][.38D5.0020.001C][.38FD.0020.001C] # SQUARE KAIRI
-330C ; [.38DA.0020.001C][.38FC.0020.001C][.38E6.0020.001C][.38E8.0020.001C] # SQUARE KARATTO
-330D ; [.38DA.0020.001C][.3900.0020.001C][.38FD.0020.001C][.18D4.0020.001C] # SQUARE KARORII
-330E ; [.38DA.0020.001C][.0000.0037.001C][.3900.0020.001C][.3905.0020.001C] # SQUARE GARON
-330F ; [.38DA.0020.001C][.0000.0037.001C][.3905.0020.001C][.38F3.0020.001C] # SQUARE GANMA
-304D ; [.38DB.0020.000E] # HIRAGANA LETTER KI
-30AD ; [.38DB.0020.0011] # KATAKANA LETTER KI
-FF77 ; [.38DB.0020.0012] # HALFWIDTH KATAKANA LETTER KI
-32D6 ; [.38DB.0020.0013] # CIRCLED KATAKANA KI
-304E ; [.38DB.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GI
-30AE ; [.38DB.0020.0011][.0000.0037.0002] # KATAKANA LETTER GI
-3310 ; [.38DB.0020.001C][.0000.0037.001C][.38DA.0020.001C][.0000.0037.001C] # SQUARE GIGA
-3311 ; [.38DB.0020.001C][.0000.0037.001C][.38EA.0020.001C][.18D4.0020.001C] # SQUARE GINII
-3312 ; [.38DB.0020.001C][.38F9.0020.001C][.38FD.0020.001C][.18D4.0020.001C] # SQUARE KYURII
-3313 ; [.38DB.0020.001C][.0000.0037.001C][.38FE.0020.001C][.38E4.0020.001C][.0000.0037.001C][.18D4.0020.001C] # SQUARE GIRUDAA
-3314 ; [.38DB.0020.001C][.3900.0020.001C] # SQUARE KIRO
-3315 ; [.38DB.0020.001C][.3900.0020.001C][.38DC.0020.001C][.0000.0037.001C][.38FC.0020.001C][.38F5.0020.001C] # SQUARE KIROGURAMU
-3316 ; [.38DB.0020.001C][.3900.0020.001C][.38F6.0020.001C][.18D4.0020.001C][.38E8.0020.001C][.38FE.0020.001C] # SQUARE KIROMEETORU
-3317 ; [.38DB.0020.001C][.3900.0020.001C][.3901.0020.001C][.38E6.0020.001C][.38E8.0020.001C] # SQUARE KIROWATTO
-304F ; [.38DC.0020.000E] # HIRAGANA LETTER KU
-31F0 ; [.38DC.0020.000F] # KATAKANA LETTER SMALL KU
-30AF ; [.38DC.0020.0011] # KATAKANA LETTER KU
-FF78 ; [.38DC.0020.0012] # HALFWIDTH KATAKANA LETTER KU
-32D7 ; [.38DC.0020.0013] # CIRCLED KATAKANA KU
-3050 ; [.38DC.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GU
-30B0 ; [.38DC.0020.0011][.0000.0037.0002] # KATAKANA LETTER GU
-3318 ; [.38DC.0020.001C][.0000.0037.001C][.38FC.0020.001C][.38F5.0020.001C] # SQUARE GURAMU
-3319 ; [.38DC.0020.001C][.0000.0037.001C][.38FC.0020.001C][.38F5.0020.001C][.38E8.0020.001C][.3905.0020.001C] # SQUARE GURAMUTON
-331A ; [.38DC.0020.001C][.38FE.0020.001C][.38E2.0020.001C][.0000.0037.001C][.38D5.0020.001C][.3900.0020.001C] # SQUARE KURUZEIRO
-331B ; [.38DC.0020.001C][.3900.0020.001C][.18D4.0020.001C][.38EC.0020.001C] # SQUARE KUROONE
-3096 ; [.38DD.0020.000D] # HIRAGANA LETTER SMALL KE
-3051 ; [.38DD.0020.000E] # HIRAGANA LETTER KE
-30F6 ; [.38DD.0020.000F] # KATAKANA LETTER SMALL KE
-30B1 ; [.38DD.0020.0011] # KATAKANA LETTER KE
-FF79 ; [.38DD.0020.0012] # HALFWIDTH KATAKANA LETTER KE
-32D8 ; [.38DD.0020.0013] # CIRCLED KATAKANA KE
-3052 ; [.38DD.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GE
-30B2 ; [.38DD.0020.0011][.0000.0037.0002] # KATAKANA LETTER GE
-331C ; [.38DD.0020.001C][.18D4.0020.001C][.38E1.0020.001C] # SQUARE KEESU
-3053 ; [.38DE.0020.000E] # HIRAGANA LETTER KO
-30B3 ; [.38DE.0020.0011] # KATAKANA LETTER KO
-FF7A ; [.38DE.0020.0012] # HALFWIDTH KATAKANA LETTER KO
-32D9 ; [.38DE.0020.0013] # CIRCLED KATAKANA KO
-3054 ; [.38DE.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GO
-30B4 ; [.38DE.0020.0011][.0000.0037.0002] # KATAKANA LETTER GO
-331E ; [.38DE.0020.001C][.18D4.0020.001C][.38F2.0020.001C][.0000.0038.001C] # SQUARE KOOPO
-1F201 ; [.38DE.0020.001C][.38DE.0020.001C] # SQUARED KATAKANA KOKO
-30FF ; [.38DE.0020.0016][.38E8.0020.0016] # KATAKANA DIGRAPH KOTO
-331D ; [.38DE.0020.001C][.38FE.0020.001C][.38E9.0020.001C] # SQUARE KORUNA
-3055 ; [.38DF.0020.000E] # HIRAGANA LETTER SA
-30B5 ; [.38DF.0020.0011] # KATAKANA LETTER SA
-FF7B ; [.38DF.0020.0012] # HALFWIDTH KATAKANA LETTER SA
-32DA ; [.38DF.0020.0013] # CIRCLED KATAKANA SA
-1F202 ; [.38DF.0020.001C] # SQUARED KATAKANA SA
-3056 ; [.38DF.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZA
-30B6 ; [.38DF.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZA
-331F ; [.38DF.0020.001C][.38D5.0020.001C][.38DC.0020.001C][.38FE.0020.001C] # SQUARE SAIKURU
-3320 ; [.38DF.0020.001C][.3905.0020.001C][.38E5.0020.001C][.18D4.0020.001C][.38F5.0020.001C] # SQUARE SANTIIMU
-3057 ; [.38E0.0020.000E] # HIRAGANA LETTER SI
-31F1 ; [.38E0.0020.000F] # KATAKANA LETTER SMALL SI
-30B7 ; [.38E0.0020.0011] # KATAKANA LETTER SI
-FF7C ; [.38E0.0020.0012] # HALFWIDTH KATAKANA LETTER SI
-32DB ; [.38E0.0020.0013] # CIRCLED KATAKANA SI
-3058 ; [.38E0.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZI
-30B8 ; [.38E0.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZI
-3006 ; [.38E0.0020.0004][.38F6.0020.0004] # IDEOGRAPHIC CLOSING MARK
-3321 ; [.38E0.0020.001C][.38FD.0020.001C][.3905.0020.001C][.38DC.0020.001C][.0000.0037.001C] # SQUARE SIRINGU
-3059 ; [.38E1.0020.000E] # HIRAGANA LETTER SU
-31F2 ; [.38E1.0020.000F] # KATAKANA LETTER SMALL SU
-30B9 ; [.38E1.0020.0011] # KATAKANA LETTER SU
-FF7D ; [.38E1.0020.0012] # HALFWIDTH KATAKANA LETTER SU
-32DC ; [.38E1.0020.0013] # CIRCLED KATAKANA SU
-305A ; [.38E1.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZU
-30BA ; [.38E1.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZU
-305B ; [.38E2.0020.000E] # HIRAGANA LETTER SE
-30BB ; [.38E2.0020.0011] # KATAKANA LETTER SE
-FF7E ; [.38E2.0020.0012] # HALFWIDTH KATAKANA LETTER SE
-32DD ; [.38E2.0020.0013] # CIRCLED KATAKANA SE
-305C ; [.38E2.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZE
-30BC ; [.38E2.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZE
-3322 ; [.38E2.0020.001C][.3905.0020.001C][.38E5.0020.001C] # SQUARE SENTI
-3323 ; [.38E2.0020.001C][.3905.0020.001C][.38E8.0020.001C] # SQUARE SENTO
-305D ; [.38E3.0020.000E] # HIRAGANA LETTER SO
-30BD ; [.38E3.0020.0011] # KATAKANA LETTER SO
-FF7F ; [.38E3.0020.0012] # HALFWIDTH KATAKANA LETTER SO
-32DE ; [.38E3.0020.0013] # CIRCLED KATAKANA SO
-305E ; [.38E3.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZO
-30BE ; [.38E3.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZO
-305F ; [.38E4.0020.000E] # HIRAGANA LETTER TA
-30BF ; [.38E4.0020.0011] # KATAKANA LETTER TA
-FF80 ; [.38E4.0020.0012] # HALFWIDTH KATAKANA LETTER TA
-32DF ; [.38E4.0020.0013] # CIRCLED KATAKANA TA
-3060 ; [.38E4.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DA
-30C0 ; [.38E4.0020.0011][.0000.0037.0002] # KATAKANA LETTER DA
-3324 ; [.38E4.0020.001C][.0000.0037.001C][.18D4.0020.001C][.38E1.0020.001C] # SQUARE DAASU
-3061 ; [.38E5.0020.000E] # HIRAGANA LETTER TI
-30C1 ; [.38E5.0020.0011] # KATAKANA LETTER TI
-FF81 ; [.38E5.0020.0012] # HALFWIDTH KATAKANA LETTER TI
-32E0 ; [.38E5.0020.0013] # CIRCLED KATAKANA TI
-3062 ; [.38E5.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DI
-30C2 ; [.38E5.0020.0011][.0000.0037.0002] # KATAKANA LETTER DI
-3063 ; [.38E6.0020.000D] # HIRAGANA LETTER SMALL TU
-3064 ; [.38E6.0020.000E] # HIRAGANA LETTER TU
-30C3 ; [.38E6.0020.000F] # KATAKANA LETTER SMALL TU
-FF6F ; [.38E6.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL TU
-30C4 ; [.38E6.0020.0011] # KATAKANA LETTER TU
-FF82 ; [.38E6.0020.0012] # HALFWIDTH KATAKANA LETTER TU
-32E1 ; [.38E6.0020.0013] # CIRCLED KATAKANA TU
-3065 ; [.38E6.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DU
-30C5 ; [.38E6.0020.0011][.0000.0037.0002] # KATAKANA LETTER DU
-3066 ; [.38E7.0020.000E] # HIRAGANA LETTER TE
-30C6 ; [.38E7.0020.0011] # KATAKANA LETTER TE
-FF83 ; [.38E7.0020.0012] # HALFWIDTH KATAKANA LETTER TE
-32E2 ; [.38E7.0020.0013] # CIRCLED KATAKANA TE
-3067 ; [.38E7.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DE
-30C7 ; [.38E7.0020.0011][.0000.0037.0002] # KATAKANA LETTER DE
-1F213 ; [.38E7.0020.001C][.0000.0037.001C] # SQUARED KATAKANA DE
-3325 ; [.38E7.0020.001C][.0000.0037.001C][.38E0.0020.001C] # SQUARE DESI
-3068 ; [.38E8.0020.000E] # HIRAGANA LETTER TO
-31F3 ; [.38E8.0020.000F] # KATAKANA LETTER SMALL TO
-30C8 ; [.38E8.0020.0011] # KATAKANA LETTER TO
-FF84 ; [.38E8.0020.0012] # HALFWIDTH KATAKANA LETTER TO
-32E3 ; [.38E8.0020.0013] # CIRCLED KATAKANA TO
-3069 ; [.38E8.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DO
-30C9 ; [.38E8.0020.0011][.0000.0037.0002] # KATAKANA LETTER DO
-3326 ; [.38E8.0020.001C][.0000.0037.001C][.38FE.0020.001C] # SQUARE DORU
-3327 ; [.38E8.0020.001C][.3905.0020.001C] # SQUARE TON
-306A ; [.38E9.0020.000E] # HIRAGANA LETTER NA
-30CA ; [.38E9.0020.0011] # KATAKANA LETTER NA
-FF85 ; [.38E9.0020.0012] # HALFWIDTH KATAKANA LETTER NA
-32E4 ; [.38E9.0020.0013] # CIRCLED KATAKANA NA
-3328 ; [.38E9.0020.001C][.38ED.0020.001C] # SQUARE NANO
-306B ; [.38EA.0020.000E] # HIRAGANA LETTER NI
-30CB ; [.38EA.0020.0011] # KATAKANA LETTER NI
-FF86 ; [.38EA.0020.0012] # HALFWIDTH KATAKANA LETTER NI
-32E5 ; [.38EA.0020.0013] # CIRCLED KATAKANA NI
-306C ; [.38EB.0020.000E] # HIRAGANA LETTER NU
-31F4 ; [.38EB.0020.000F] # KATAKANA LETTER SMALL NU
-30CC ; [.38EB.0020.0011] # KATAKANA LETTER NU
-FF87 ; [.38EB.0020.0012] # HALFWIDTH KATAKANA LETTER NU
-32E6 ; [.38EB.0020.0013] # CIRCLED KATAKANA NU
-306D ; [.38EC.0020.000E] # HIRAGANA LETTER NE
-30CD ; [.38EC.0020.0011] # KATAKANA LETTER NE
-FF88 ; [.38EC.0020.0012] # HALFWIDTH KATAKANA LETTER NE
-32E7 ; [.38EC.0020.0013] # CIRCLED KATAKANA NE
-306E ; [.38ED.0020.000E] # HIRAGANA LETTER NO
-30CE ; [.38ED.0020.0011] # KATAKANA LETTER NO
-FF89 ; [.38ED.0020.0012] # HALFWIDTH KATAKANA LETTER NO
-32E8 ; [.38ED.0020.0013] # CIRCLED KATAKANA NO
-3329 ; [.38ED.0020.001C][.38E6.0020.001C][.38E8.0020.001C] # SQUARE NOTTO
-306F ; [.38EE.0020.000E] # HIRAGANA LETTER HA
-31F5 ; [.38EE.0020.000F] # KATAKANA LETTER SMALL HA
-30CF ; [.38EE.0020.0011] # KATAKANA LETTER HA
-FF8A ; [.38EE.0020.0012] # HALFWIDTH KATAKANA LETTER HA
-32E9 ; [.38EE.0020.0013] # CIRCLED KATAKANA HA
-3070 ; [.38EE.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BA
-30D0 ; [.38EE.0020.0011][.0000.0037.0002] # KATAKANA LETTER BA
-3071 ; [.38EE.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PA
-30D1 ; [.38EE.0020.0011][.0000.0038.0002] # KATAKANA LETTER PA
-332B ; [.38EE.0020.001C][.0000.0038.001C][.18D4.0020.001C][.38E2.0020.001C][.3905.0020.001C][.38E8.0020.001C] # SQUARE PAASENTO
-332C ; [.38EE.0020.001C][.0000.0038.001C][.18D4.0020.001C][.38E6.0020.001C] # SQUARE PAATU
-332D ; [.38EE.0020.001C][.0000.0037.001C][.18D4.0020.001C][.38FF.0020.001C][.38FE.0020.001C] # SQUARE BAARERU
-332A ; [.38EE.0020.001C][.38D5.0020.001C][.38E6.0020.001C] # SQUARE HAITU
-3072 ; [.38EF.0020.000E] # HIRAGANA LETTER HI
-31F6 ; [.38EF.0020.000F] # KATAKANA LETTER SMALL HI
-30D2 ; [.38EF.0020.0011] # KATAKANA LETTER HI
-FF8B ; [.38EF.0020.0012] # HALFWIDTH KATAKANA LETTER HI
-32EA ; [.38EF.0020.0013] # CIRCLED KATAKANA HI
-3073 ; [.38EF.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BI
-30D3 ; [.38EF.0020.0011][.0000.0037.0002] # KATAKANA LETTER BI
-3074 ; [.38EF.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PI
-30D4 ; [.38EF.0020.0011][.0000.0038.0002] # KATAKANA LETTER PI
-332E ; [.38EF.0020.001C][.0000.0038.001C][.38D4.0020.001C][.38E1.0020.001C][.38E8.0020.001C][.38FE.0020.001C] # SQUARE PIASUTORU
-332F ; [.38EF.0020.001C][.0000.0038.001C][.38DC.0020.001C][.38FE.0020.001C] # SQUARE PIKURU
-3330 ; [.38EF.0020.001C][.0000.0038.001C][.38DE.0020.001C] # SQUARE PIKO
-3331 ; [.38EF.0020.001C][.0000.0037.001C][.38FE.0020.001C] # SQUARE BIRU
-3075 ; [.38F0.0020.000E] # HIRAGANA LETTER HU
-31F7 ; [.38F0.0020.000F] # KATAKANA LETTER SMALL HU
-30D5 ; [.38F0.0020.0011] # KATAKANA LETTER HU
-FF8C ; [.38F0.0020.0012] # HALFWIDTH KATAKANA LETTER HU
-32EB ; [.38F0.0020.0013] # CIRCLED KATAKANA HU
-3076 ; [.38F0.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BU
-30D6 ; [.38F0.0020.0011][.0000.0037.0002] # KATAKANA LETTER BU
-3077 ; [.38F0.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PU
-30D7 ; [.38F0.0020.0011][.0000.0038.0002] # KATAKANA LETTER PU
-3332 ; [.38F0.0020.001C][.38D4.0020.001C][.38FC.0020.001C][.38E6.0020.001C][.38E8.0020.001C][.0000.0037.001C] # SQUARE HUARADDO
-3333 ; [.38F0.0020.001C][.38D5.0020.001C][.18D4.0020.001C][.38E8.0020.001C] # SQUARE HUIITO
-3334 ; [.38F0.0020.001C][.0000.0037.001C][.38E6.0020.001C][.38E0.0020.001C][.38D8.0020.001C][.38FE.0020.001C] # SQUARE BUSSYERU
-3335 ; [.38F0.0020.001C][.38FC.0020.001C][.3905.0020.001C] # SQUARE HURAN
-3078 ; [.38F1.0020.000E] # HIRAGANA LETTER HE
-31F8 ; [.38F1.0020.000F] # KATAKANA LETTER SMALL HE
-30D8 ; [.38F1.0020.0011] # KATAKANA LETTER HE
-FF8D ; [.38F1.0020.0012] # HALFWIDTH KATAKANA LETTER HE
-32EC ; [.38F1.0020.0013] # CIRCLED KATAKANA HE
-3079 ; [.38F1.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BE
-30D9 ; [.38F1.0020.0011][.0000.0037.0002] # KATAKANA LETTER BE
-307A ; [.38F1.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PE
-30DA ; [.38F1.0020.0011][.0000.0038.0002] # KATAKANA LETTER PE
-333B ; [.38F1.0020.001C][.0000.0038.001C][.18D4.0020.001C][.38E0.0020.001C][.0000.0037.001C] # SQUARE PEEZI
-333C ; [.38F1.0020.001C][.0000.0037.001C][.18D4.0020.001C][.38E4.0020.001C] # SQUARE BEETA
-3336 ; [.38F1.0020.001C][.38DC.0020.001C][.38E4.0020.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE HEKUTAARU
-3337 ; [.38F1.0020.001C][.0000.0038.001C][.38E3.0020.001C] # SQUARE PESO
-3338 ; [.38F1.0020.001C][.0000.0038.001C][.38EA.0020.001C][.38EF.0020.001C] # SQUARE PENIHI
-3339 ; [.38F1.0020.001C][.38FE.0020.001C][.38E6.0020.001C] # SQUARE HERUTU
-333A ; [.38F1.0020.001C][.0000.0038.001C][.3905.0020.001C][.38E1.0020.001C] # SQUARE PENSU
-307B ; [.38F2.0020.000E] # HIRAGANA LETTER HO
-31F9 ; [.38F2.0020.000F] # KATAKANA LETTER SMALL HO
-30DB ; [.38F2.0020.0011] # KATAKANA LETTER HO
-FF8E ; [.38F2.0020.0012] # HALFWIDTH KATAKANA LETTER HO
-32ED ; [.38F2.0020.0013] # CIRCLED KATAKANA HO
-307C ; [.38F2.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BO
-30DC ; [.38F2.0020.0011][.0000.0037.0002] # KATAKANA LETTER BO
-307D ; [.38F2.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PO
-30DD ; [.38F2.0020.0011][.0000.0038.0002] # KATAKANA LETTER PO
-3341 ; [.38F2.0020.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE HOORU
-3342 ; [.38F2.0020.001C][.18D4.0020.001C][.3905.0020.001C] # SQUARE HOON
-333D ; [.38F2.0020.001C][.0000.0038.001C][.38D5.0020.001C][.3905.0020.001C][.38E8.0020.001C] # SQUARE POINTO
-1F200 ; [.38F2.0020.001C][.38DA.0020.001C] # SQUARE HIRAGANA HOKA
-333E ; [.38F2.0020.001C][.0000.0037.001C][.38FE.0020.001C][.38E8.0020.001C] # SQUARE BORUTO
-333F ; [.38F2.0020.001C][.3905.0020.001C] # SQUARE HON
-3340 ; [.38F2.0020.001C][.0000.0038.001C][.3905.0020.001C][.38E8.0020.001C][.0000.0037.001C] # SQUARE PONDO
-307E ; [.38F3.0020.000E] # HIRAGANA LETTER MA
-30DE ; [.38F3.0020.0011] # KATAKANA LETTER MA
-FF8F ; [.38F3.0020.0012] # HALFWIDTH KATAKANA LETTER MA
-32EE ; [.38F3.0020.0013] # CIRCLED KATAKANA MA
-3343 ; [.38F3.0020.001C][.38D5.0020.001C][.38DC.0020.001C][.3900.0020.001C] # SQUARE MAIKURO
-3344 ; [.38F3.0020.001C][.38D5.0020.001C][.38FE.0020.001C] # SQUARE MAIRU
-303C ; [.38F3.0020.0004][.38E1.0020.0004] # MASU MARK
-3345 ; [.38F3.0020.001C][.38E6.0020.001C][.38EE.0020.001C] # SQUARE MAHHA
-3346 ; [.38F3.0020.001C][.38FE.0020.001C][.38DC.0020.001C] # SQUARE MARUKU
-3347 ; [.38F3.0020.001C][.3905.0020.001C][.38E0.0020.001C][.38FB.0020.001C][.3905.0020.001C] # SQUARE MANSYON
-307F ; [.38F4.0020.000E] # HIRAGANA LETTER MI
-30DF ; [.38F4.0020.0011] # KATAKANA LETTER MI
-FF90 ; [.38F4.0020.0012] # HALFWIDTH KATAKANA LETTER MI
-32EF ; [.38F4.0020.0013] # CIRCLED KATAKANA MI
-3348 ; [.38F4.0020.001C][.38DC.0020.001C][.3900.0020.001C][.3905.0020.001C] # SQUARE MIKURON
-3349 ; [.38F4.0020.001C][.38FD.0020.001C] # SQUARE MIRI
-334A ; [.38F4.0020.001C][.38FD.0020.001C][.38EE.0020.001C][.0000.0037.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE MIRIBAARU
-3080 ; [.38F5.0020.000E] # HIRAGANA LETTER MU
-31FA ; [.38F5.0020.000F] # KATAKANA LETTER SMALL MU
-30E0 ; [.38F5.0020.0011] # KATAKANA LETTER MU
-FF91 ; [.38F5.0020.0012] # HALFWIDTH KATAKANA LETTER MU
-32F0 ; [.38F5.0020.0013] # CIRCLED KATAKANA MU
-3081 ; [.38F6.0020.000E] # HIRAGANA LETTER ME
-30E1 ; [.38F6.0020.0011] # KATAKANA LETTER ME
-FF92 ; [.38F6.0020.0012] # HALFWIDTH KATAKANA LETTER ME
-32F1 ; [.38F6.0020.0013] # CIRCLED KATAKANA ME
-334D ; [.38F6.0020.001C][.18D4.0020.001C][.38E8.0020.001C][.38FE.0020.001C] # SQUARE MEETORU
-334B ; [.38F6.0020.001C][.38DA.0020.001C][.0000.0037.001C] # SQUARE MEGA
-334C ; [.38F6.0020.001C][.38DA.0020.001C][.0000.0037.001C][.38E8.0020.001C][.3905.0020.001C] # SQUARE MEGATON
-3082 ; [.38F7.0020.000E] # HIRAGANA LETTER MO
-30E2 ; [.38F7.0020.0011] # KATAKANA LETTER MO
-FF93 ; [.38F7.0020.0012] # HALFWIDTH KATAKANA LETTER MO
-32F2 ; [.38F7.0020.0013] # CIRCLED KATAKANA MO
-3083 ; [.38F8.0020.000D] # HIRAGANA LETTER SMALL YA
-3084 ; [.38F8.0020.000E] # HIRAGANA LETTER YA
-30E3 ; [.38F8.0020.000F] # KATAKANA LETTER SMALL YA
-FF6C ; [.38F8.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YA
-30E4 ; [.38F8.0020.0011] # KATAKANA LETTER YA
-FF94 ; [.38F8.0020.0012] # HALFWIDTH KATAKANA LETTER YA
-32F3 ; [.38F8.0020.0013] # CIRCLED KATAKANA YA
-334E ; [.38F8.0020.001C][.18D4.0020.001C][.38E8.0020.001C][.0000.0037.001C] # SQUARE YAADO
-334F ; [.38F8.0020.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE YAARU
-3085 ; [.38F9.0020.000D] # HIRAGANA LETTER SMALL YU
-3086 ; [.38F9.0020.000E] # HIRAGANA LETTER YU
-30E5 ; [.38F9.0020.000F] # KATAKANA LETTER SMALL YU
-FF6D ; [.38F9.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YU
-30E6 ; [.38F9.0020.0011] # KATAKANA LETTER YU
-FF95 ; [.38F9.0020.0012] # HALFWIDTH KATAKANA LETTER YU
-32F4 ; [.38F9.0020.0013] # CIRCLED KATAKANA YU
-3350 ; [.38F9.0020.001C][.38D4.0020.001C][.3905.0020.001C] # SQUARE YUAN
-1B001 ; [.38FA.0020.000E] # HIRAGANA LETTER ARCHAIC YE
-3087 ; [.38FB.0020.000D] # HIRAGANA LETTER SMALL YO
-3088 ; [.38FB.0020.000E] # HIRAGANA LETTER YO
-30E7 ; [.38FB.0020.000F] # KATAKANA LETTER SMALL YO
-FF6E ; [.38FB.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YO
-30E8 ; [.38FB.0020.0011] # KATAKANA LETTER YO
-FF96 ; [.38FB.0020.0012] # HALFWIDTH KATAKANA LETTER YO
-32F5 ; [.38FB.0020.0013] # CIRCLED KATAKANA YO
-309F ; [.38FB.0020.0016][.38FD.0020.0016] # HIRAGANA DIGRAPH YORI
-3089 ; [.38FC.0020.000E] # HIRAGANA LETTER RA
-31FB ; [.38FC.0020.000F] # KATAKANA LETTER SMALL RA
-30E9 ; [.38FC.0020.0011] # KATAKANA LETTER RA
-FF97 ; [.38FC.0020.0012] # HALFWIDTH KATAKANA LETTER RA
-32F6 ; [.38FC.0020.0013] # CIRCLED KATAKANA RA
-308A ; [.38FD.0020.000E] # HIRAGANA LETTER RI
-31FC ; [.38FD.0020.000F] # KATAKANA LETTER SMALL RI
-30EA ; [.38FD.0020.0011] # KATAKANA LETTER RI
-FF98 ; [.38FD.0020.0012] # HALFWIDTH KATAKANA LETTER RI
-32F7 ; [.38FD.0020.0013] # CIRCLED KATAKANA RI
-3351 ; [.38FD.0020.001C][.38E6.0020.001C][.38E8.0020.001C][.38FE.0020.001C] # SQUARE RITTORU
-3352 ; [.38FD.0020.001C][.38FC.0020.001C] # SQUARE RIRA
-308B ; [.38FE.0020.000E] # HIRAGANA LETTER RU
-31FD ; [.38FE.0020.000F] # KATAKANA LETTER SMALL RU
-30EB ; [.38FE.0020.0011] # KATAKANA LETTER RU
-FF99 ; [.38FE.0020.0012] # HALFWIDTH KATAKANA LETTER RU
-32F8 ; [.38FE.0020.0013] # CIRCLED KATAKANA RU
-3354 ; [.38FE.0020.001C][.18D4.0020.001C][.38F0.0020.001C][.0000.0037.001C][.38FE.0020.001C] # SQUARE RUUBURU
-3353 ; [.38FE.0020.001C][.38EF.0020.001C][.0000.0038.001C][.18D4.0020.001C] # SQUARE RUPII
-308C ; [.38FF.0020.000E] # HIRAGANA LETTER RE
-31FE ; [.38FF.0020.000F] # KATAKANA LETTER SMALL RE
-30EC ; [.38FF.0020.0011] # KATAKANA LETTER RE
-FF9A ; [.38FF.0020.0012] # HALFWIDTH KATAKANA LETTER RE
-32F9 ; [.38FF.0020.0013] # CIRCLED KATAKANA RE
-3355 ; [.38FF.0020.001C][.38F5.0020.001C] # SQUARE REMU
-3356 ; [.38FF.0020.001C][.3905.0020.001C][.38E8.0020.001C][.38DD.0020.001C][.0000.0037.001C][.3905.0020.001C] # SQUARE RENTOGEN
-308D ; [.3900.0020.000E] # HIRAGANA LETTER RO
-31FF ; [.3900.0020.000F] # KATAKANA LETTER SMALL RO
-30ED ; [.3900.0020.0011] # KATAKANA LETTER RO
-FF9B ; [.3900.0020.0012] # HALFWIDTH KATAKANA LETTER RO
-32FA ; [.3900.0020.0013] # CIRCLED KATAKANA RO
-308E ; [.3901.0020.000D] # HIRAGANA LETTER SMALL WA
-308F ; [.3901.0020.000E] # HIRAGANA LETTER WA
-30EE ; [.3901.0020.000F] # KATAKANA LETTER SMALL WA
-30EF ; [.3901.0020.0011] # KATAKANA LETTER WA
-FF9C ; [.3901.0020.0012] # HALFWIDTH KATAKANA LETTER WA
-32FB ; [.3901.0020.0013] # CIRCLED KATAKANA WA
-30F7 ; [.3901.0020.0011][.0000.0037.0002] # KATAKANA LETTER VA
-3357 ; [.3901.0020.001C][.38E6.0020.001C][.38E8.0020.001C] # SQUARE WATTO
-3090 ; [.3902.0020.000E] # HIRAGANA LETTER WI
-30F0 ; [.3902.0020.0011] # KATAKANA LETTER WI
-32FC ; [.3902.0020.0013] # CIRCLED KATAKANA WI
-30F8 ; [.3902.0020.0011][.0000.0037.0002] # KATAKANA LETTER VI
-3091 ; [.3903.0020.000E] # HIRAGANA LETTER WE
-30F1 ; [.3903.0020.0011] # KATAKANA LETTER WE
-32FD ; [.3903.0020.0013] # CIRCLED KATAKANA WE
-30F9 ; [.3903.0020.0011][.0000.0037.0002] # KATAKANA LETTER VE
-3092 ; [.3904.0020.000E] # HIRAGANA LETTER WO
-30F2 ; [.3904.0020.0011] # KATAKANA LETTER WO
-FF66 ; [.3904.0020.0012] # HALFWIDTH KATAKANA LETTER WO
-32FE ; [.3904.0020.0013] # CIRCLED KATAKANA WO
-30FA ; [.3904.0020.0011][.0000.0037.0002] # KATAKANA LETTER VO
-3093 ; [.3905.0020.000E] # HIRAGANA LETTER N
-30F3 ; [.3905.0020.0011] # KATAKANA LETTER N
-FF9D ; [.3905.0020.0012] # HALFWIDTH KATAKANA LETTER N
-3105 ; [.3906.0020.0002] # BOPOMOFO LETTER B
-31A0 ; [.3906.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER BU
-3106 ; [.3907.0020.0002] # BOPOMOFO LETTER P
-31B4 ; [.3907.0020.0019] # BOPOMOFO FINAL LETTER P
-3107 ; [.3908.0020.0002] # BOPOMOFO LETTER M
-3108 ; [.3909.0020.0002] # BOPOMOFO LETTER F
-312A ; [.390A.0020.0002] # BOPOMOFO LETTER V
-3109 ; [.390B.0020.0002] # BOPOMOFO LETTER D
-310A ; [.390C.0020.0002] # BOPOMOFO LETTER T
-31B5 ; [.390C.0020.0019] # BOPOMOFO FINAL LETTER T
-310B ; [.390D.0020.0002] # BOPOMOFO LETTER N
-310C ; [.390E.0020.0002] # BOPOMOFO LETTER L
-310D ; [.390F.0020.0002] # BOPOMOFO LETTER G
-31A3 ; [.390F.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER GU
-310E ; [.3910.0020.0002] # BOPOMOFO LETTER K
-31B6 ; [.3910.0020.0019] # BOPOMOFO FINAL LETTER K
-312B ; [.3911.0020.0002] # BOPOMOFO LETTER NG
-31AD ; [.3912.0020.0002] # BOPOMOFO LETTER NGG
-310F ; [.3913.0020.0002] # BOPOMOFO LETTER H
-31B7 ; [.3913.0020.0019] # BOPOMOFO FINAL LETTER H
-3110 ; [.3914.0020.0002] # BOPOMOFO LETTER J
-31A2 ; [.3914.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER JI
-3111 ; [.3915.0020.0002] # BOPOMOFO LETTER Q
-3112 ; [.3916.0020.0002] # BOPOMOFO LETTER X
-312C ; [.3917.0020.0002] # BOPOMOFO LETTER GN
-3113 ; [.3918.0020.0002] # BOPOMOFO LETTER ZH
-3114 ; [.3919.0020.0002] # BOPOMOFO LETTER CH
-3115 ; [.391A.0020.0002] # BOPOMOFO LETTER SH
-3116 ; [.391B.0020.0002] # BOPOMOFO LETTER R
-3117 ; [.391C.0020.0002] # BOPOMOFO LETTER Z
-31A1 ; [.391C.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER ZI
-3118 ; [.391D.0020.0002] # BOPOMOFO LETTER C
-3119 ; [.391E.0020.0002] # BOPOMOFO LETTER S
-31B8 ; [.391F.0020.0002] # BOPOMOFO LETTER GH
-31B9 ; [.3920.0020.0002] # BOPOMOFO LETTER LH
-31BA ; [.3921.0020.0002] # BOPOMOFO LETTER ZY
-311A ; [.3922.0020.0002] # BOPOMOFO LETTER A
-31A9 ; [.3922.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER ANN
-311B ; [.3923.0020.0002] # BOPOMOFO LETTER O
-31A7 ; [.3923.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER ONN
-31A6 ; [.3924.0020.0002] # BOPOMOFO LETTER OO
-311C ; [.3925.0020.0002] # BOPOMOFO LETTER E
-311D ; [.3926.0020.0002] # BOPOMOFO LETTER EH
-31A4 ; [.3927.0020.0002] # BOPOMOFO LETTER EE
-31A5 ; [.3927.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER ENN
-311E ; [.3928.0020.0002] # BOPOMOFO LETTER AI
-31AE ; [.3928.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER AINN
-311F ; [.3929.0020.0002] # BOPOMOFO LETTER EI
-3120 ; [.392A.0020.0002] # BOPOMOFO LETTER AU
-31AF ; [.392A.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER AUNN
-3121 ; [.392B.0020.0002] # BOPOMOFO LETTER OU
-3122 ; [.392C.0020.0002] # BOPOMOFO LETTER AN
-3123 ; [.392D.0020.0002] # BOPOMOFO LETTER EN
-3124 ; [.392E.0020.0002] # BOPOMOFO LETTER ANG
-31B2 ; [.392F.0020.0002] # BOPOMOFO LETTER ONG
-3125 ; [.3930.0020.0002] # BOPOMOFO LETTER ENG
-31B0 ; [.3931.0020.0002] # BOPOMOFO LETTER AM
-31B1 ; [.3932.0020.0002] # BOPOMOFO LETTER OM
-31AC ; [.3933.0020.0002] # BOPOMOFO LETTER IM
-3126 ; [.3934.0020.0002] # BOPOMOFO LETTER ER
-3127 ; [.3935.0020.0002] # BOPOMOFO LETTER I
-31AA ; [.3935.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER INN
-31B3 ; [.3935.0020.0016][.0000.0109.0016] # BOPOMOFO LETTER INNN
-3128 ; [.3936.0020.0002] # BOPOMOFO LETTER U
-31AB ; [.3936.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER UNN
-31A8 ; [.3936.0020.0004][.0000.010A.0004] # BOPOMOFO LETTER IR
-3129 ; [.3937.0020.0002] # BOPOMOFO LETTER IU
-312D ; [.3938.0020.0002] # BOPOMOFO LETTER IH
-A000 ; [.3939.0020.0002] # YI SYLLABLE IT
-A001 ; [.393A.0020.0002] # YI SYLLABLE IX
-A002 ; [.393B.0020.0002] # YI SYLLABLE I
-A003 ; [.393C.0020.0002] # YI SYLLABLE IP
-A004 ; [.393D.0020.0002] # YI SYLLABLE IET
-A005 ; [.393E.0020.0002] # YI SYLLABLE IEX
-A006 ; [.393F.0020.0002] # YI SYLLABLE IE
-A007 ; [.3940.0020.0002] # YI SYLLABLE IEP
-A008 ; [.3941.0020.0002] # YI SYLLABLE AT
-A009 ; [.3942.0020.0002] # YI SYLLABLE AX
-A00A ; [.3943.0020.0002] # YI SYLLABLE A
-A00B ; [.3944.0020.0002] # YI SYLLABLE AP
-A00C ; [.3945.0020.0002] # YI SYLLABLE UOX
-A00D ; [.3946.0020.0002] # YI SYLLABLE UO
-A00E ; [.3947.0020.0002] # YI SYLLABLE UOP
-A00F ; [.3948.0020.0002] # YI SYLLABLE OT
-A010 ; [.3949.0020.0002] # YI SYLLABLE OX
-A011 ; [.394A.0020.0002] # YI SYLLABLE O
-A012 ; [.394B.0020.0002] # YI SYLLABLE OP
-A013 ; [.394C.0020.0002] # YI SYLLABLE EX
-A014 ; [.394D.0020.0002] # YI SYLLABLE E
-A015 ; [.394E.0020.0002] # YI SYLLABLE WU
-A016 ; [.394F.0020.0002] # YI SYLLABLE BIT
-A017 ; [.3950.0020.0002] # YI SYLLABLE BIX
-A018 ; [.3951.0020.0002] # YI SYLLABLE BI
-A019 ; [.3952.0020.0002] # YI SYLLABLE BIP
-A01A ; [.3953.0020.0002] # YI SYLLABLE BIET
-A01B ; [.3954.0020.0002] # YI SYLLABLE BIEX
-A01C ; [.3955.0020.0002] # YI SYLLABLE BIE
-A01D ; [.3956.0020.0002] # YI SYLLABLE BIEP
-A01E ; [.3957.0020.0002] # YI SYLLABLE BAT
-A01F ; [.3958.0020.0002] # YI SYLLABLE BAX
-A020 ; [.3959.0020.0002] # YI SYLLABLE BA
-A021 ; [.395A.0020.0002] # YI SYLLABLE BAP
-A022 ; [.395B.0020.0002] # YI SYLLABLE BUOX
-A023 ; [.395C.0020.0002] # YI SYLLABLE BUO
-A024 ; [.395D.0020.0002] # YI SYLLABLE BUOP
-A025 ; [.395E.0020.0002] # YI SYLLABLE BOT
-A026 ; [.395F.0020.0002] # YI SYLLABLE BOX
-A027 ; [.3960.0020.0002] # YI SYLLABLE BO
-A028 ; [.3961.0020.0002] # YI SYLLABLE BOP
-A029 ; [.3962.0020.0002] # YI SYLLABLE BEX
-A02A ; [.3963.0020.0002] # YI SYLLABLE BE
-A02B ; [.3964.0020.0002] # YI SYLLABLE BEP
-A02C ; [.3965.0020.0002] # YI SYLLABLE BUT
-A02D ; [.3966.0020.0002] # YI SYLLABLE BUX
-A02E ; [.3967.0020.0002] # YI SYLLABLE BU
-A02F ; [.3968.0020.0002] # YI SYLLABLE BUP
-A030 ; [.3969.0020.0002] # YI SYLLABLE BURX
-A031 ; [.396A.0020.0002] # YI SYLLABLE BUR
-A032 ; [.396B.0020.0002] # YI SYLLABLE BYT
-A033 ; [.396C.0020.0002] # YI SYLLABLE BYX
-A034 ; [.396D.0020.0002] # YI SYLLABLE BY
-A035 ; [.396E.0020.0002] # YI SYLLABLE BYP
-A036 ; [.396F.0020.0002] # YI SYLLABLE BYRX
-A037 ; [.3970.0020.0002] # YI SYLLABLE BYR
-A038 ; [.3971.0020.0002] # YI SYLLABLE PIT
-A039 ; [.3972.0020.0002] # YI SYLLABLE PIX
-A03A ; [.3973.0020.0002] # YI SYLLABLE PI
-A03B ; [.3974.0020.0002] # YI SYLLABLE PIP
-A03C ; [.3975.0020.0002] # YI SYLLABLE PIEX
-A03D ; [.3976.0020.0002] # YI SYLLABLE PIE
-A03E ; [.3977.0020.0002] # YI SYLLABLE PIEP
-A03F ; [.3978.0020.0002] # YI SYLLABLE PAT
-A040 ; [.3979.0020.0002] # YI SYLLABLE PAX
-A041 ; [.397A.0020.0002] # YI SYLLABLE PA
-A042 ; [.397B.0020.0002] # YI SYLLABLE PAP
-A043 ; [.397C.0020.0002] # YI SYLLABLE PUOX
-A044 ; [.397D.0020.0002] # YI SYLLABLE PUO
-A045 ; [.397E.0020.0002] # YI SYLLABLE PUOP
-A046 ; [.397F.0020.0002] # YI SYLLABLE POT
-A047 ; [.3980.0020.0002] # YI SYLLABLE POX
-A048 ; [.3981.0020.0002] # YI SYLLABLE PO
-A049 ; [.3982.0020.0002] # YI SYLLABLE POP
-A04A ; [.3983.0020.0002] # YI SYLLABLE PUT
-A04B ; [.3984.0020.0002] # YI SYLLABLE PUX
-A04C ; [.3985.0020.0002] # YI SYLLABLE PU
-A04D ; [.3986.0020.0002] # YI SYLLABLE PUP
-A04E ; [.3987.0020.0002] # YI SYLLABLE PURX
-A04F ; [.3988.0020.0002] # YI SYLLABLE PUR
-A050 ; [.3989.0020.0002] # YI SYLLABLE PYT
-A051 ; [.398A.0020.0002] # YI SYLLABLE PYX
-A052 ; [.398B.0020.0002] # YI SYLLABLE PY
-A053 ; [.398C.0020.0002] # YI SYLLABLE PYP
-A054 ; [.398D.0020.0002] # YI SYLLABLE PYRX
-A055 ; [.398E.0020.0002] # YI SYLLABLE PYR
-A056 ; [.398F.0020.0002] # YI SYLLABLE BBIT
-A057 ; [.3990.0020.0002] # YI SYLLABLE BBIX
-A058 ; [.3991.0020.0002] # YI SYLLABLE BBI
-A059 ; [.3992.0020.0002] # YI SYLLABLE BBIP
-A05A ; [.3993.0020.0002] # YI SYLLABLE BBIET
-A05B ; [.3994.0020.0002] # YI SYLLABLE BBIEX
-A05C ; [.3995.0020.0002] # YI SYLLABLE BBIE
-A05D ; [.3996.0020.0002] # YI SYLLABLE BBIEP
-A05E ; [.3997.0020.0002] # YI SYLLABLE BBAT
-A05F ; [.3998.0020.0002] # YI SYLLABLE BBAX
-A060 ; [.3999.0020.0002] # YI SYLLABLE BBA
-A061 ; [.399A.0020.0002] # YI SYLLABLE BBAP
-A062 ; [.399B.0020.0002] # YI SYLLABLE BBUOX
-A063 ; [.399C.0020.0002] # YI SYLLABLE BBUO
-A064 ; [.399D.0020.0002] # YI SYLLABLE BBUOP
-A065 ; [.399E.0020.0002] # YI SYLLABLE BBOT
-A066 ; [.399F.0020.0002] # YI SYLLABLE BBOX
-A067 ; [.39A0.0020.0002] # YI SYLLABLE BBO
-A068 ; [.39A1.0020.0002] # YI SYLLABLE BBOP
-A069 ; [.39A2.0020.0002] # YI SYLLABLE BBEX
-A06A ; [.39A3.0020.0002] # YI SYLLABLE BBE
-A06B ; [.39A4.0020.0002] # YI SYLLABLE BBEP
-A06C ; [.39A5.0020.0002] # YI SYLLABLE BBUT
-A06D ; [.39A6.0020.0002] # YI SYLLABLE BBUX
-A06E ; [.39A7.0020.0002] # YI SYLLABLE BBU
-A06F ; [.39A8.0020.0002] # YI SYLLABLE BBUP
-A070 ; [.39A9.0020.0002] # YI SYLLABLE BBURX
-A071 ; [.39AA.0020.0002] # YI SYLLABLE BBUR
-A072 ; [.39AB.0020.0002] # YI SYLLABLE BBYT
-A073 ; [.39AC.0020.0002] # YI SYLLABLE BBYX
-A074 ; [.39AD.0020.0002] # YI SYLLABLE BBY
-A075 ; [.39AE.0020.0002] # YI SYLLABLE BBYP
-A076 ; [.39AF.0020.0002] # YI SYLLABLE NBIT
-A077 ; [.39B0.0020.0002] # YI SYLLABLE NBIX
-A078 ; [.39B1.0020.0002] # YI SYLLABLE NBI
-A079 ; [.39B2.0020.0002] # YI SYLLABLE NBIP
-A07A ; [.39B3.0020.0002] # YI SYLLABLE NBIEX
-A07B ; [.39B4.0020.0002] # YI SYLLABLE NBIE
-A07C ; [.39B5.0020.0002] # YI SYLLABLE NBIEP
-A07D ; [.39B6.0020.0002] # YI SYLLABLE NBAT
-A07E ; [.39B7.0020.0002] # YI SYLLABLE NBAX
-A07F ; [.39B8.0020.0002] # YI SYLLABLE NBA
-A080 ; [.39B9.0020.0002] # YI SYLLABLE NBAP
-A081 ; [.39BA.0020.0002] # YI SYLLABLE NBOT
-A082 ; [.39BB.0020.0002] # YI SYLLABLE NBOX
-A083 ; [.39BC.0020.0002] # YI SYLLABLE NBO
-A084 ; [.39BD.0020.0002] # YI SYLLABLE NBOP
-A085 ; [.39BE.0020.0002] # YI SYLLABLE NBUT
-A086 ; [.39BF.0020.0002] # YI SYLLABLE NBUX
-A087 ; [.39C0.0020.0002] # YI SYLLABLE NBU
-A088 ; [.39C1.0020.0002] # YI SYLLABLE NBUP
-A089 ; [.39C2.0020.0002] # YI SYLLABLE NBURX
-A08A ; [.39C3.0020.0002] # YI SYLLABLE NBUR
-A08B ; [.39C4.0020.0002] # YI SYLLABLE NBYT
-A08C ; [.39C5.0020.0002] # YI SYLLABLE NBYX
-A08D ; [.39C6.0020.0002] # YI SYLLABLE NBY
-A08E ; [.39C7.0020.0002] # YI SYLLABLE NBYP
-A08F ; [.39C8.0020.0002] # YI SYLLABLE NBYRX
-A090 ; [.39C9.0020.0002] # YI SYLLABLE NBYR
-A091 ; [.39CA.0020.0002] # YI SYLLABLE HMIT
-A092 ; [.39CB.0020.0002] # YI SYLLABLE HMIX
-A093 ; [.39CC.0020.0002] # YI SYLLABLE HMI
-A094 ; [.39CD.0020.0002] # YI SYLLABLE HMIP
-A095 ; [.39CE.0020.0002] # YI SYLLABLE HMIEX
-A096 ; [.39CF.0020.0002] # YI SYLLABLE HMIE
-A097 ; [.39D0.0020.0002] # YI SYLLABLE HMIEP
-A098 ; [.39D1.0020.0002] # YI SYLLABLE HMAT
-A099 ; [.39D2.0020.0002] # YI SYLLABLE HMAX
-A09A ; [.39D3.0020.0002] # YI SYLLABLE HMA
-A09B ; [.39D4.0020.0002] # YI SYLLABLE HMAP
-A09C ; [.39D5.0020.0002] # YI SYLLABLE HMUOX
-A09D ; [.39D6.0020.0002] # YI SYLLABLE HMUO
-A09E ; [.39D7.0020.0002] # YI SYLLABLE HMUOP
-A09F ; [.39D8.0020.0002] # YI SYLLABLE HMOT
-A0A0 ; [.39D9.0020.0002] # YI SYLLABLE HMOX
-A0A1 ; [.39DA.0020.0002] # YI SYLLABLE HMO
-A0A2 ; [.39DB.0020.0002] # YI SYLLABLE HMOP
-A0A3 ; [.39DC.0020.0002] # YI SYLLABLE HMUT
-A0A4 ; [.39DD.0020.0002] # YI SYLLABLE HMUX
-A0A5 ; [.39DE.0020.0002] # YI SYLLABLE HMU
-A0A6 ; [.39DF.0020.0002] # YI SYLLABLE HMUP
-A0A7 ; [.39E0.0020.0002] # YI SYLLABLE HMURX
-A0A8 ; [.39E1.0020.0002] # YI SYLLABLE HMUR
-A0A9 ; [.39E2.0020.0002] # YI SYLLABLE HMYX
-A0AA ; [.39E3.0020.0002] # YI SYLLABLE HMY
-A0AB ; [.39E4.0020.0002] # YI SYLLABLE HMYP
-A0AC ; [.39E5.0020.0002] # YI SYLLABLE HMYRX
-A0AD ; [.39E6.0020.0002] # YI SYLLABLE HMYR
-A0AE ; [.39E7.0020.0002] # YI SYLLABLE MIT
-A0AF ; [.39E8.0020.0002] # YI SYLLABLE MIX
-A0B0 ; [.39E9.0020.0002] # YI SYLLABLE MI
-A0B1 ; [.39EA.0020.0002] # YI SYLLABLE MIP
-A0B2 ; [.39EB.0020.0002] # YI SYLLABLE MIEX
-A0B3 ; [.39EC.0020.0002] # YI SYLLABLE MIE
-A0B4 ; [.39ED.0020.0002] # YI SYLLABLE MIEP
-A0B5 ; [.39EE.0020.0002] # YI SYLLABLE MAT
-A0B6 ; [.39EF.0020.0002] # YI SYLLABLE MAX
-A0B7 ; [.39F0.0020.0002] # YI SYLLABLE MA
-A0B8 ; [.39F1.0020.0002] # YI SYLLABLE MAP
-A0B9 ; [.39F2.0020.0002] # YI SYLLABLE MUOT
-A0BA ; [.39F3.0020.0002] # YI SYLLABLE MUOX
-A0BB ; [.39F4.0020.0002] # YI SYLLABLE MUO
-A0BC ; [.39F5.0020.0002] # YI SYLLABLE MUOP
-A0BD ; [.39F6.0020.0002] # YI SYLLABLE MOT
-A0BE ; [.39F7.0020.0002] # YI SYLLABLE MOX
-A0BF ; [.39F8.0020.0002] # YI SYLLABLE MO
-A0C0 ; [.39F9.0020.0002] # YI SYLLABLE MOP
-A0C1 ; [.39FA.0020.0002] # YI SYLLABLE MEX
-A0C2 ; [.39FB.0020.0002] # YI SYLLABLE ME
-A0C3 ; [.39FC.0020.0002] # YI SYLLABLE MUT
-A0C4 ; [.39FD.0020.0002] # YI SYLLABLE MUX
-A0C5 ; [.39FE.0020.0002] # YI SYLLABLE MU
-A0C6 ; [.39FF.0020.0002] # YI SYLLABLE MUP
-A0C7 ; [.3A00.0020.0002] # YI SYLLABLE MURX
-A0C8 ; [.3A01.0020.0002] # YI SYLLABLE MUR
-A0C9 ; [.3A02.0020.0002] # YI SYLLABLE MYT
-A0CA ; [.3A03.0020.0002] # YI SYLLABLE MYX
-A0CB ; [.3A04.0020.0002] # YI SYLLABLE MY
-A0CC ; [.3A05.0020.0002] # YI SYLLABLE MYP
-A0CD ; [.3A06.0020.0002] # YI SYLLABLE FIT
-A0CE ; [.3A07.0020.0002] # YI SYLLABLE FIX
-A0CF ; [.3A08.0020.0002] # YI SYLLABLE FI
-A0D0 ; [.3A09.0020.0002] # YI SYLLABLE FIP
-A0D1 ; [.3A0A.0020.0002] # YI SYLLABLE FAT
-A0D2 ; [.3A0B.0020.0002] # YI SYLLABLE FAX
-A0D3 ; [.3A0C.0020.0002] # YI SYLLABLE FA
-A0D4 ; [.3A0D.0020.0002] # YI SYLLABLE FAP
-A0D5 ; [.3A0E.0020.0002] # YI SYLLABLE FOX
-A0D6 ; [.3A0F.0020.0002] # YI SYLLABLE FO
-A0D7 ; [.3A10.0020.0002] # YI SYLLABLE FOP
-A0D8 ; [.3A11.0020.0002] # YI SYLLABLE FUT
-A0D9 ; [.3A12.0020.0002] # YI SYLLABLE FUX
-A0DA ; [.3A13.0020.0002] # YI SYLLABLE FU
-A0DB ; [.3A14.0020.0002] # YI SYLLABLE FUP
-A0DC ; [.3A15.0020.0002] # YI SYLLABLE FURX
-A0DD ; [.3A16.0020.0002] # YI SYLLABLE FUR
-A0DE ; [.3A17.0020.0002] # YI SYLLABLE FYT
-A0DF ; [.3A18.0020.0002] # YI SYLLABLE FYX
-A0E0 ; [.3A19.0020.0002] # YI SYLLABLE FY
-A0E1 ; [.3A1A.0020.0002] # YI SYLLABLE FYP
-A0E2 ; [.3A1B.0020.0002] # YI SYLLABLE VIT
-A0E3 ; [.3A1C.0020.0002] # YI SYLLABLE VIX
-A0E4 ; [.3A1D.0020.0002] # YI SYLLABLE VI
-A0E5 ; [.3A1E.0020.0002] # YI SYLLABLE VIP
-A0E6 ; [.3A1F.0020.0002] # YI SYLLABLE VIET
-A0E7 ; [.3A20.0020.0002] # YI SYLLABLE VIEX
-A0E8 ; [.3A21.0020.0002] # YI SYLLABLE VIE
-A0E9 ; [.3A22.0020.0002] # YI SYLLABLE VIEP
-A0EA ; [.3A23.0020.0002] # YI SYLLABLE VAT
-A0EB ; [.3A24.0020.0002] # YI SYLLABLE VAX
-A0EC ; [.3A25.0020.0002] # YI SYLLABLE VA
-A0ED ; [.3A26.0020.0002] # YI SYLLABLE VAP
-A0EE ; [.3A27.0020.0002] # YI SYLLABLE VOT
-A0EF ; [.3A28.0020.0002] # YI SYLLABLE VOX
-A0F0 ; [.3A29.0020.0002] # YI SYLLABLE VO
-A0F1 ; [.3A2A.0020.0002] # YI SYLLABLE VOP
-A0F2 ; [.3A2B.0020.0002] # YI SYLLABLE VEX
-A0F3 ; [.3A2C.0020.0002] # YI SYLLABLE VEP
-A0F4 ; [.3A2D.0020.0002] # YI SYLLABLE VUT
-A0F5 ; [.3A2E.0020.0002] # YI SYLLABLE VUX
-A0F6 ; [.3A2F.0020.0002] # YI SYLLABLE VU
-A0F7 ; [.3A30.0020.0002] # YI SYLLABLE VUP
-A0F8 ; [.3A31.0020.0002] # YI SYLLABLE VURX
-A0F9 ; [.3A32.0020.0002] # YI SYLLABLE VUR
-A0FA ; [.3A33.0020.0002] # YI SYLLABLE VYT
-A0FB ; [.3A34.0020.0002] # YI SYLLABLE VYX
-A0FC ; [.3A35.0020.0002] # YI SYLLABLE VY
-A0FD ; [.3A36.0020.0002] # YI SYLLABLE VYP
-A0FE ; [.3A37.0020.0002] # YI SYLLABLE VYRX
-A0FF ; [.3A38.0020.0002] # YI SYLLABLE VYR
-A100 ; [.3A39.0020.0002] # YI SYLLABLE DIT
-A101 ; [.3A3A.0020.0002] # YI SYLLABLE DIX
-A102 ; [.3A3B.0020.0002] # YI SYLLABLE DI
-A103 ; [.3A3C.0020.0002] # YI SYLLABLE DIP
-A104 ; [.3A3D.0020.0002] # YI SYLLABLE DIEX
-A105 ; [.3A3E.0020.0002] # YI SYLLABLE DIE
-A106 ; [.3A3F.0020.0002] # YI SYLLABLE DIEP
-A107 ; [.3A40.0020.0002] # YI SYLLABLE DAT
-A108 ; [.3A41.0020.0002] # YI SYLLABLE DAX
-A109 ; [.3A42.0020.0002] # YI SYLLABLE DA
-A10A ; [.3A43.0020.0002] # YI SYLLABLE DAP
-A10B ; [.3A44.0020.0002] # YI SYLLABLE DUOX
-A10C ; [.3A45.0020.0002] # YI SYLLABLE DUO
-A10D ; [.3A46.0020.0002] # YI SYLLABLE DOT
-A10E ; [.3A47.0020.0002] # YI SYLLABLE DOX
-A10F ; [.3A48.0020.0002] # YI SYLLABLE DO
-A110 ; [.3A49.0020.0002] # YI SYLLABLE DOP
-A111 ; [.3A4A.0020.0002] # YI SYLLABLE DEX
-A112 ; [.3A4B.0020.0002] # YI SYLLABLE DE
-A113 ; [.3A4C.0020.0002] # YI SYLLABLE DEP
-A114 ; [.3A4D.0020.0002] # YI SYLLABLE DUT
-A115 ; [.3A4E.0020.0002] # YI SYLLABLE DUX
-A116 ; [.3A4F.0020.0002] # YI SYLLABLE DU
-A117 ; [.3A50.0020.0002] # YI SYLLABLE DUP
-A118 ; [.3A51.0020.0002] # YI SYLLABLE DURX
-A119 ; [.3A52.0020.0002] # YI SYLLABLE DUR
-A11A ; [.3A53.0020.0002] # YI SYLLABLE TIT
-A11B ; [.3A54.0020.0002] # YI SYLLABLE TIX
-A11C ; [.3A55.0020.0002] # YI SYLLABLE TI
-A11D ; [.3A56.0020.0002] # YI SYLLABLE TIP
-A11E ; [.3A57.0020.0002] # YI SYLLABLE TIEX
-A11F ; [.3A58.0020.0002] # YI SYLLABLE TIE
-A120 ; [.3A59.0020.0002] # YI SYLLABLE TIEP
-A121 ; [.3A5A.0020.0002] # YI SYLLABLE TAT
-A122 ; [.3A5B.0020.0002] # YI SYLLABLE TAX
-A123 ; [.3A5C.0020.0002] # YI SYLLABLE TA
-A124 ; [.3A5D.0020.0002] # YI SYLLABLE TAP
-A125 ; [.3A5E.0020.0002] # YI SYLLABLE TUOT
-A126 ; [.3A5F.0020.0002] # YI SYLLABLE TUOX
-A127 ; [.3A60.0020.0002] # YI SYLLABLE TUO
-A128 ; [.3A61.0020.0002] # YI SYLLABLE TUOP
-A129 ; [.3A62.0020.0002] # YI SYLLABLE TOT
-A12A ; [.3A63.0020.0002] # YI SYLLABLE TOX
-A12B ; [.3A64.0020.0002] # YI SYLLABLE TO
-A12C ; [.3A65.0020.0002] # YI SYLLABLE TOP
-A12D ; [.3A66.0020.0002] # YI SYLLABLE TEX
-A12E ; [.3A67.0020.0002] # YI SYLLABLE TE
-A12F ; [.3A68.0020.0002] # YI SYLLABLE TEP
-A130 ; [.3A69.0020.0002] # YI SYLLABLE TUT
-A131 ; [.3A6A.0020.0002] # YI SYLLABLE TUX
-A132 ; [.3A6B.0020.0002] # YI SYLLABLE TU
-A133 ; [.3A6C.0020.0002] # YI SYLLABLE TUP
-A134 ; [.3A6D.0020.0002] # YI SYLLABLE TURX
-A135 ; [.3A6E.0020.0002] # YI SYLLABLE TUR
-A136 ; [.3A6F.0020.0002] # YI SYLLABLE DDIT
-A137 ; [.3A70.0020.0002] # YI SYLLABLE DDIX
-A138 ; [.3A71.0020.0002] # YI SYLLABLE DDI
-A139 ; [.3A72.0020.0002] # YI SYLLABLE DDIP
-A13A ; [.3A73.0020.0002] # YI SYLLABLE DDIEX
-A13B ; [.3A74.0020.0002] # YI SYLLABLE DDIE
-A13C ; [.3A75.0020.0002] # YI SYLLABLE DDIEP
-A13D ; [.3A76.0020.0002] # YI SYLLABLE DDAT
-A13E ; [.3A77.0020.0002] # YI SYLLABLE DDAX
-A13F ; [.3A78.0020.0002] # YI SYLLABLE DDA
-A140 ; [.3A79.0020.0002] # YI SYLLABLE DDAP
-A141 ; [.3A7A.0020.0002] # YI SYLLABLE DDUOX
-A142 ; [.3A7B.0020.0002] # YI SYLLABLE DDUO
-A143 ; [.3A7C.0020.0002] # YI SYLLABLE DDUOP
-A144 ; [.3A7D.0020.0002] # YI SYLLABLE DDOT
-A145 ; [.3A7E.0020.0002] # YI SYLLABLE DDOX
-A146 ; [.3A7F.0020.0002] # YI SYLLABLE DDO
-A147 ; [.3A80.0020.0002] # YI SYLLABLE DDOP
-A148 ; [.3A81.0020.0002] # YI SYLLABLE DDEX
-A149 ; [.3A82.0020.0002] # YI SYLLABLE DDE
-A14A ; [.3A83.0020.0002] # YI SYLLABLE DDEP
-A14B ; [.3A84.0020.0002] # YI SYLLABLE DDUT
-A14C ; [.3A85.0020.0002] # YI SYLLABLE DDUX
-A14D ; [.3A86.0020.0002] # YI SYLLABLE DDU
-A14E ; [.3A87.0020.0002] # YI SYLLABLE DDUP
-A14F ; [.3A88.0020.0002] # YI SYLLABLE DDURX
-A150 ; [.3A89.0020.0002] # YI SYLLABLE DDUR
-A151 ; [.3A8A.0020.0002] # YI SYLLABLE NDIT
-A152 ; [.3A8B.0020.0002] # YI SYLLABLE NDIX
-A153 ; [.3A8C.0020.0002] # YI SYLLABLE NDI
-A154 ; [.3A8D.0020.0002] # YI SYLLABLE NDIP
-A155 ; [.3A8E.0020.0002] # YI SYLLABLE NDIEX
-A156 ; [.3A8F.0020.0002] # YI SYLLABLE NDIE
-A157 ; [.3A90.0020.0002] # YI SYLLABLE NDAT
-A158 ; [.3A91.0020.0002] # YI SYLLABLE NDAX
-A159 ; [.3A92.0020.0002] # YI SYLLABLE NDA
-A15A ; [.3A93.0020.0002] # YI SYLLABLE NDAP
-A15B ; [.3A94.0020.0002] # YI SYLLABLE NDOT
-A15C ; [.3A95.0020.0002] # YI SYLLABLE NDOX
-A15D ; [.3A96.0020.0002] # YI SYLLABLE NDO
-A15E ; [.3A97.0020.0002] # YI SYLLABLE NDOP
-A15F ; [.3A98.0020.0002] # YI SYLLABLE NDEX
-A160 ; [.3A99.0020.0002] # YI SYLLABLE NDE
-A161 ; [.3A9A.0020.0002] # YI SYLLABLE NDEP
-A162 ; [.3A9B.0020.0002] # YI SYLLABLE NDUT
-A163 ; [.3A9C.0020.0002] # YI SYLLABLE NDUX
-A164 ; [.3A9D.0020.0002] # YI SYLLABLE NDU
-A165 ; [.3A9E.0020.0002] # YI SYLLABLE NDUP
-A166 ; [.3A9F.0020.0002] # YI SYLLABLE NDURX
-A167 ; [.3AA0.0020.0002] # YI SYLLABLE NDUR
-A168 ; [.3AA1.0020.0002] # YI SYLLABLE HNIT
-A169 ; [.3AA2.0020.0002] # YI SYLLABLE HNIX
-A16A ; [.3AA3.0020.0002] # YI SYLLABLE HNI
-A16B ; [.3AA4.0020.0002] # YI SYLLABLE HNIP
-A16C ; [.3AA5.0020.0002] # YI SYLLABLE HNIET
-A16D ; [.3AA6.0020.0002] # YI SYLLABLE HNIEX
-A16E ; [.3AA7.0020.0002] # YI SYLLABLE HNIE
-A16F ; [.3AA8.0020.0002] # YI SYLLABLE HNIEP
-A170 ; [.3AA9.0020.0002] # YI SYLLABLE HNAT
-A171 ; [.3AAA.0020.0002] # YI SYLLABLE HNAX
-A172 ; [.3AAB.0020.0002] # YI SYLLABLE HNA
-A173 ; [.3AAC.0020.0002] # YI SYLLABLE HNAP
-A174 ; [.3AAD.0020.0002] # YI SYLLABLE HNUOX
-A175 ; [.3AAE.0020.0002] # YI SYLLABLE HNUO
-A176 ; [.3AAF.0020.0002] # YI SYLLABLE HNOT
-A177 ; [.3AB0.0020.0002] # YI SYLLABLE HNOX
-A178 ; [.3AB1.0020.0002] # YI SYLLABLE HNOP
-A179 ; [.3AB2.0020.0002] # YI SYLLABLE HNEX
-A17A ; [.3AB3.0020.0002] # YI SYLLABLE HNE
-A17B ; [.3AB4.0020.0002] # YI SYLLABLE HNEP
-A17C ; [.3AB5.0020.0002] # YI SYLLABLE HNUT
-A17D ; [.3AB6.0020.0002] # YI SYLLABLE NIT
-A17E ; [.3AB7.0020.0002] # YI SYLLABLE NIX
-A17F ; [.3AB8.0020.0002] # YI SYLLABLE NI
-A180 ; [.3AB9.0020.0002] # YI SYLLABLE NIP
-A181 ; [.3ABA.0020.0002] # YI SYLLABLE NIEX
-A182 ; [.3ABB.0020.0002] # YI SYLLABLE NIE
-A183 ; [.3ABC.0020.0002] # YI SYLLABLE NIEP
-A184 ; [.3ABD.0020.0002] # YI SYLLABLE NAX
-A185 ; [.3ABE.0020.0002] # YI SYLLABLE NA
-A186 ; [.3ABF.0020.0002] # YI SYLLABLE NAP
-A187 ; [.3AC0.0020.0002] # YI SYLLABLE NUOX
-A188 ; [.3AC1.0020.0002] # YI SYLLABLE NUO
-A189 ; [.3AC2.0020.0002] # YI SYLLABLE NUOP
-A18A ; [.3AC3.0020.0002] # YI SYLLABLE NOT
-A18B ; [.3AC4.0020.0002] # YI SYLLABLE NOX
-A18C ; [.3AC5.0020.0002] # YI SYLLABLE NO
-A18D ; [.3AC6.0020.0002] # YI SYLLABLE NOP
-A18E ; [.3AC7.0020.0002] # YI SYLLABLE NEX
-A18F ; [.3AC8.0020.0002] # YI SYLLABLE NE
-A190 ; [.3AC9.0020.0002] # YI SYLLABLE NEP
-A191 ; [.3ACA.0020.0002] # YI SYLLABLE NUT
-A192 ; [.3ACB.0020.0002] # YI SYLLABLE NUX
-A193 ; [.3ACC.0020.0002] # YI SYLLABLE NU
-A194 ; [.3ACD.0020.0002] # YI SYLLABLE NUP
-A195 ; [.3ACE.0020.0002] # YI SYLLABLE NURX
-A196 ; [.3ACF.0020.0002] # YI SYLLABLE NUR
-A197 ; [.3AD0.0020.0002] # YI SYLLABLE HLIT
-A198 ; [.3AD1.0020.0002] # YI SYLLABLE HLIX
-A199 ; [.3AD2.0020.0002] # YI SYLLABLE HLI
-A19A ; [.3AD3.0020.0002] # YI SYLLABLE HLIP
-A19B ; [.3AD4.0020.0002] # YI SYLLABLE HLIEX
-A19C ; [.3AD5.0020.0002] # YI SYLLABLE HLIE
-A19D ; [.3AD6.0020.0002] # YI SYLLABLE HLIEP
-A19E ; [.3AD7.0020.0002] # YI SYLLABLE HLAT
-A19F ; [.3AD8.0020.0002] # YI SYLLABLE HLAX
-A1A0 ; [.3AD9.0020.0002] # YI SYLLABLE HLA
-A1A1 ; [.3ADA.0020.0002] # YI SYLLABLE HLAP
-A1A2 ; [.3ADB.0020.0002] # YI SYLLABLE HLUOX
-A1A3 ; [.3ADC.0020.0002] # YI SYLLABLE HLUO
-A1A4 ; [.3ADD.0020.0002] # YI SYLLABLE HLUOP
-A1A5 ; [.3ADE.0020.0002] # YI SYLLABLE HLOX
-A1A6 ; [.3ADF.0020.0002] # YI SYLLABLE HLO
-A1A7 ; [.3AE0.0020.0002] # YI SYLLABLE HLOP
-A1A8 ; [.3AE1.0020.0002] # YI SYLLABLE HLEX
-A1A9 ; [.3AE2.0020.0002] # YI SYLLABLE HLE
-A1AA ; [.3AE3.0020.0002] # YI SYLLABLE HLEP
-A1AB ; [.3AE4.0020.0002] # YI SYLLABLE HLUT
-A1AC ; [.3AE5.0020.0002] # YI SYLLABLE HLUX
-A1AD ; [.3AE6.0020.0002] # YI SYLLABLE HLU
-A1AE ; [.3AE7.0020.0002] # YI SYLLABLE HLUP
-A1AF ; [.3AE8.0020.0002] # YI SYLLABLE HLURX
-A1B0 ; [.3AE9.0020.0002] # YI SYLLABLE HLUR
-A1B1 ; [.3AEA.0020.0002] # YI SYLLABLE HLYT
-A1B2 ; [.3AEB.0020.0002] # YI SYLLABLE HLYX
-A1B3 ; [.3AEC.0020.0002] # YI SYLLABLE HLY
-A1B4 ; [.3AED.0020.0002] # YI SYLLABLE HLYP
-A1B5 ; [.3AEE.0020.0002] # YI SYLLABLE HLYRX
-A1B6 ; [.3AEF.0020.0002] # YI SYLLABLE HLYR
-A1B7 ; [.3AF0.0020.0002] # YI SYLLABLE LIT
-A1B8 ; [.3AF1.0020.0002] # YI SYLLABLE LIX
-A1B9 ; [.3AF2.0020.0002] # YI SYLLABLE LI
-A1BA ; [.3AF3.0020.0002] # YI SYLLABLE LIP
-A1BB ; [.3AF4.0020.0002] # YI SYLLABLE LIET
-A1BC ; [.3AF5.0020.0002] # YI SYLLABLE LIEX
-A1BD ; [.3AF6.0020.0002] # YI SYLLABLE LIE
-A1BE ; [.3AF7.0020.0002] # YI SYLLABLE LIEP
-A1BF ; [.3AF8.0020.0002] # YI SYLLABLE LAT
-A1C0 ; [.3AF9.0020.0002] # YI SYLLABLE LAX
-A1C1 ; [.3AFA.0020.0002] # YI SYLLABLE LA
-A1C2 ; [.3AFB.0020.0002] # YI SYLLABLE LAP
-A1C3 ; [.3AFC.0020.0002] # YI SYLLABLE LUOT
-A1C4 ; [.3AFD.0020.0002] # YI SYLLABLE LUOX
-A1C5 ; [.3AFE.0020.0002] # YI SYLLABLE LUO
-A1C6 ; [.3AFF.0020.0002] # YI SYLLABLE LUOP
-A1C7 ; [.3B00.0020.0002] # YI SYLLABLE LOT
-A1C8 ; [.3B01.0020.0002] # YI SYLLABLE LOX
-A1C9 ; [.3B02.0020.0002] # YI SYLLABLE LO
-A1CA ; [.3B03.0020.0002] # YI SYLLABLE LOP
-A1CB ; [.3B04.0020.0002] # YI SYLLABLE LEX
-A1CC ; [.3B05.0020.0002] # YI SYLLABLE LE
-A1CD ; [.3B06.0020.0002] # YI SYLLABLE LEP
-A1CE ; [.3B07.0020.0002] # YI SYLLABLE LUT
-A1CF ; [.3B08.0020.0002] # YI SYLLABLE LUX
-A1D0 ; [.3B09.0020.0002] # YI SYLLABLE LU
-A1D1 ; [.3B0A.0020.0002] # YI SYLLABLE LUP
-A1D2 ; [.3B0B.0020.0002] # YI SYLLABLE LURX
-A1D3 ; [.3B0C.0020.0002] # YI SYLLABLE LUR
-A1D4 ; [.3B0D.0020.0002] # YI SYLLABLE LYT
-A1D5 ; [.3B0E.0020.0002] # YI SYLLABLE LYX
-A1D6 ; [.3B0F.0020.0002] # YI SYLLABLE LY
-A1D7 ; [.3B10.0020.0002] # YI SYLLABLE LYP
-A1D8 ; [.3B11.0020.0002] # YI SYLLABLE LYRX
-A1D9 ; [.3B12.0020.0002] # YI SYLLABLE LYR
-A1DA ; [.3B13.0020.0002] # YI SYLLABLE GIT
-A1DB ; [.3B14.0020.0002] # YI SYLLABLE GIX
-A1DC ; [.3B15.0020.0002] # YI SYLLABLE GI
-A1DD ; [.3B16.0020.0002] # YI SYLLABLE GIP
-A1DE ; [.3B17.0020.0002] # YI SYLLABLE GIET
-A1DF ; [.3B18.0020.0002] # YI SYLLABLE GIEX
-A1E0 ; [.3B19.0020.0002] # YI SYLLABLE GIE
-A1E1 ; [.3B1A.0020.0002] # YI SYLLABLE GIEP
-A1E2 ; [.3B1B.0020.0002] # YI SYLLABLE GAT
-A1E3 ; [.3B1C.0020.0002] # YI SYLLABLE GAX
-A1E4 ; [.3B1D.0020.0002] # YI SYLLABLE GA
-A1E5 ; [.3B1E.0020.0002] # YI SYLLABLE GAP
-A1E6 ; [.3B1F.0020.0002] # YI SYLLABLE GUOT
-A1E7 ; [.3B20.0020.0002] # YI SYLLABLE GUOX
-A1E8 ; [.3B21.0020.0002] # YI SYLLABLE GUO
-A1E9 ; [.3B22.0020.0002] # YI SYLLABLE GUOP
-A1EA ; [.3B23.0020.0002] # YI SYLLABLE GOT
-A1EB ; [.3B24.0020.0002] # YI SYLLABLE GOX
-A1EC ; [.3B25.0020.0002] # YI SYLLABLE GO
-A1ED ; [.3B26.0020.0002] # YI SYLLABLE GOP
-A1EE ; [.3B27.0020.0002] # YI SYLLABLE GET
-A1EF ; [.3B28.0020.0002] # YI SYLLABLE GEX
-A1F0 ; [.3B29.0020.0002] # YI SYLLABLE GE
-A1F1 ; [.3B2A.0020.0002] # YI SYLLABLE GEP
-A1F2 ; [.3B2B.0020.0002] # YI SYLLABLE GUT
-A1F3 ; [.3B2C.0020.0002] # YI SYLLABLE GUX
-A1F4 ; [.3B2D.0020.0002] # YI SYLLABLE GU
-A1F5 ; [.3B2E.0020.0002] # YI SYLLABLE GUP
-A1F6 ; [.3B2F.0020.0002] # YI SYLLABLE GURX
-A1F7 ; [.3B30.0020.0002] # YI SYLLABLE GUR
-A1F8 ; [.3B31.0020.0002] # YI SYLLABLE KIT
-A1F9 ; [.3B32.0020.0002] # YI SYLLABLE KIX
-A1FA ; [.3B33.0020.0002] # YI SYLLABLE KI
-A1FB ; [.3B34.0020.0002] # YI SYLLABLE KIP
-A1FC ; [.3B35.0020.0002] # YI SYLLABLE KIEX
-A1FD ; [.3B36.0020.0002] # YI SYLLABLE KIE
-A1FE ; [.3B37.0020.0002] # YI SYLLABLE KIEP
-A1FF ; [.3B38.0020.0002] # YI SYLLABLE KAT
-A200 ; [.3B39.0020.0002] # YI SYLLABLE KAX
-A201 ; [.3B3A.0020.0002] # YI SYLLABLE KA
-A202 ; [.3B3B.0020.0002] # YI SYLLABLE KAP
-A203 ; [.3B3C.0020.0002] # YI SYLLABLE KUOX
-A204 ; [.3B3D.0020.0002] # YI SYLLABLE KUO
-A205 ; [.3B3E.0020.0002] # YI SYLLABLE KUOP
-A206 ; [.3B3F.0020.0002] # YI SYLLABLE KOT
-A207 ; [.3B40.0020.0002] # YI SYLLABLE KOX
-A208 ; [.3B41.0020.0002] # YI SYLLABLE KO
-A209 ; [.3B42.0020.0002] # YI SYLLABLE KOP
-A20A ; [.3B43.0020.0002] # YI SYLLABLE KET
-A20B ; [.3B44.0020.0002] # YI SYLLABLE KEX
-A20C ; [.3B45.0020.0002] # YI SYLLABLE KE
-A20D ; [.3B46.0020.0002] # YI SYLLABLE KEP
-A20E ; [.3B47.0020.0002] # YI SYLLABLE KUT
-A20F ; [.3B48.0020.0002] # YI SYLLABLE KUX
-A210 ; [.3B49.0020.0002] # YI SYLLABLE KU
-A211 ; [.3B4A.0020.0002] # YI SYLLABLE KUP
-A212 ; [.3B4B.0020.0002] # YI SYLLABLE KURX
-A213 ; [.3B4C.0020.0002] # YI SYLLABLE KUR
-A214 ; [.3B4D.0020.0002] # YI SYLLABLE GGIT
-A215 ; [.3B4E.0020.0002] # YI SYLLABLE GGIX
-A216 ; [.3B4F.0020.0002] # YI SYLLABLE GGI
-A217 ; [.3B50.0020.0002] # YI SYLLABLE GGIEX
-A218 ; [.3B51.0020.0002] # YI SYLLABLE GGIE
-A219 ; [.3B52.0020.0002] # YI SYLLABLE GGIEP
-A21A ; [.3B53.0020.0002] # YI SYLLABLE GGAT
-A21B ; [.3B54.0020.0002] # YI SYLLABLE GGAX
-A21C ; [.3B55.0020.0002] # YI SYLLABLE GGA
-A21D ; [.3B56.0020.0002] # YI SYLLABLE GGAP
-A21E ; [.3B57.0020.0002] # YI SYLLABLE GGUOT
-A21F ; [.3B58.0020.0002] # YI SYLLABLE GGUOX
-A220 ; [.3B59.0020.0002] # YI SYLLABLE GGUO
-A221 ; [.3B5A.0020.0002] # YI SYLLABLE GGUOP
-A222 ; [.3B5B.0020.0002] # YI SYLLABLE GGOT
-A223 ; [.3B5C.0020.0002] # YI SYLLABLE GGOX
-A224 ; [.3B5D.0020.0002] # YI SYLLABLE GGO
-A225 ; [.3B5E.0020.0002] # YI SYLLABLE GGOP
-A226 ; [.3B5F.0020.0002] # YI SYLLABLE GGET
-A227 ; [.3B60.0020.0002] # YI SYLLABLE GGEX
-A228 ; [.3B61.0020.0002] # YI SYLLABLE GGE
-A229 ; [.3B62.0020.0002] # YI SYLLABLE GGEP
-A22A ; [.3B63.0020.0002] # YI SYLLABLE GGUT
-A22B ; [.3B64.0020.0002] # YI SYLLABLE GGUX
-A22C ; [.3B65.0020.0002] # YI SYLLABLE GGU
-A22D ; [.3B66.0020.0002] # YI SYLLABLE GGUP
-A22E ; [.3B67.0020.0002] # YI SYLLABLE GGURX
-A22F ; [.3B68.0020.0002] # YI SYLLABLE GGUR
-A230 ; [.3B69.0020.0002] # YI SYLLABLE MGIEX
-A231 ; [.3B6A.0020.0002] # YI SYLLABLE MGIE
-A232 ; [.3B6B.0020.0002] # YI SYLLABLE MGAT
-A233 ; [.3B6C.0020.0002] # YI SYLLABLE MGAX
-A234 ; [.3B6D.0020.0002] # YI SYLLABLE MGA
-A235 ; [.3B6E.0020.0002] # YI SYLLABLE MGAP
-A236 ; [.3B6F.0020.0002] # YI SYLLABLE MGUOX
-A237 ; [.3B70.0020.0002] # YI SYLLABLE MGUO
-A238 ; [.3B71.0020.0002] # YI SYLLABLE MGUOP
-A239 ; [.3B72.0020.0002] # YI SYLLABLE MGOT
-A23A ; [.3B73.0020.0002] # YI SYLLABLE MGOX
-A23B ; [.3B74.0020.0002] # YI SYLLABLE MGO
-A23C ; [.3B75.0020.0002] # YI SYLLABLE MGOP
-A23D ; [.3B76.0020.0002] # YI SYLLABLE MGEX
-A23E ; [.3B77.0020.0002] # YI SYLLABLE MGE
-A23F ; [.3B78.0020.0002] # YI SYLLABLE MGEP
-A240 ; [.3B79.0020.0002] # YI SYLLABLE MGUT
-A241 ; [.3B7A.0020.0002] # YI SYLLABLE MGUX
-A242 ; [.3B7B.0020.0002] # YI SYLLABLE MGU
-A243 ; [.3B7C.0020.0002] # YI SYLLABLE MGUP
-A244 ; [.3B7D.0020.0002] # YI SYLLABLE MGURX
-A245 ; [.3B7E.0020.0002] # YI SYLLABLE MGUR
-A246 ; [.3B7F.0020.0002] # YI SYLLABLE HXIT
-A247 ; [.3B80.0020.0002] # YI SYLLABLE HXIX
-A248 ; [.3B81.0020.0002] # YI SYLLABLE HXI
-A249 ; [.3B82.0020.0002] # YI SYLLABLE HXIP
-A24A ; [.3B83.0020.0002] # YI SYLLABLE HXIET
-A24B ; [.3B84.0020.0002] # YI SYLLABLE HXIEX
-A24C ; [.3B85.0020.0002] # YI SYLLABLE HXIE
-A24D ; [.3B86.0020.0002] # YI SYLLABLE HXIEP
-A24E ; [.3B87.0020.0002] # YI SYLLABLE HXAT
-A24F ; [.3B88.0020.0002] # YI SYLLABLE HXAX
-A250 ; [.3B89.0020.0002] # YI SYLLABLE HXA
-A251 ; [.3B8A.0020.0002] # YI SYLLABLE HXAP
-A252 ; [.3B8B.0020.0002] # YI SYLLABLE HXUOT
-A253 ; [.3B8C.0020.0002] # YI SYLLABLE HXUOX
-A254 ; [.3B8D.0020.0002] # YI SYLLABLE HXUO
-A255 ; [.3B8E.0020.0002] # YI SYLLABLE HXUOP
-A256 ; [.3B8F.0020.0002] # YI SYLLABLE HXOT
-A257 ; [.3B90.0020.0002] # YI SYLLABLE HXOX
-A258 ; [.3B91.0020.0002] # YI SYLLABLE HXO
-A259 ; [.3B92.0020.0002] # YI SYLLABLE HXOP
-A25A ; [.3B93.0020.0002] # YI SYLLABLE HXEX
-A25B ; [.3B94.0020.0002] # YI SYLLABLE HXE
-A25C ; [.3B95.0020.0002] # YI SYLLABLE HXEP
-A25D ; [.3B96.0020.0002] # YI SYLLABLE NGIEX
-A25E ; [.3B97.0020.0002] # YI SYLLABLE NGIE
-A25F ; [.3B98.0020.0002] # YI SYLLABLE NGIEP
-A260 ; [.3B99.0020.0002] # YI SYLLABLE NGAT
-A261 ; [.3B9A.0020.0002] # YI SYLLABLE NGAX
-A262 ; [.3B9B.0020.0002] # YI SYLLABLE NGA
-A263 ; [.3B9C.0020.0002] # YI SYLLABLE NGAP
-A264 ; [.3B9D.0020.0002] # YI SYLLABLE NGUOT
-A265 ; [.3B9E.0020.0002] # YI SYLLABLE NGUOX
-A266 ; [.3B9F.0020.0002] # YI SYLLABLE NGUO
-A267 ; [.3BA0.0020.0002] # YI SYLLABLE NGOT
-A268 ; [.3BA1.0020.0002] # YI SYLLABLE NGOX
-A269 ; [.3BA2.0020.0002] # YI SYLLABLE NGO
-A26A ; [.3BA3.0020.0002] # YI SYLLABLE NGOP
-A26B ; [.3BA4.0020.0002] # YI SYLLABLE NGEX
-A26C ; [.3BA5.0020.0002] # YI SYLLABLE NGE
-A26D ; [.3BA6.0020.0002] # YI SYLLABLE NGEP
-A26E ; [.3BA7.0020.0002] # YI SYLLABLE HIT
-A26F ; [.3BA8.0020.0002] # YI SYLLABLE HIEX
-A270 ; [.3BA9.0020.0002] # YI SYLLABLE HIE
-A271 ; [.3BAA.0020.0002] # YI SYLLABLE HAT
-A272 ; [.3BAB.0020.0002] # YI SYLLABLE HAX
-A273 ; [.3BAC.0020.0002] # YI SYLLABLE HA
-A274 ; [.3BAD.0020.0002] # YI SYLLABLE HAP
-A275 ; [.3BAE.0020.0002] # YI SYLLABLE HUOT
-A276 ; [.3BAF.0020.0002] # YI SYLLABLE HUOX
-A277 ; [.3BB0.0020.0002] # YI SYLLABLE HUO
-A278 ; [.3BB1.0020.0002] # YI SYLLABLE HUOP
-A279 ; [.3BB2.0020.0002] # YI SYLLABLE HOT
-A27A ; [.3BB3.0020.0002] # YI SYLLABLE HOX
-A27B ; [.3BB4.0020.0002] # YI SYLLABLE HO
-A27C ; [.3BB5.0020.0002] # YI SYLLABLE HOP
-A27D ; [.3BB6.0020.0002] # YI SYLLABLE HEX
-A27E ; [.3BB7.0020.0002] # YI SYLLABLE HE
-A27F ; [.3BB8.0020.0002] # YI SYLLABLE HEP
-A280 ; [.3BB9.0020.0002] # YI SYLLABLE WAT
-A281 ; [.3BBA.0020.0002] # YI SYLLABLE WAX
-A282 ; [.3BBB.0020.0002] # YI SYLLABLE WA
-A283 ; [.3BBC.0020.0002] # YI SYLLABLE WAP
-A284 ; [.3BBD.0020.0002] # YI SYLLABLE WUOX
-A285 ; [.3BBE.0020.0002] # YI SYLLABLE WUO
-A286 ; [.3BBF.0020.0002] # YI SYLLABLE WUOP
-A287 ; [.3BC0.0020.0002] # YI SYLLABLE WOX
-A288 ; [.3BC1.0020.0002] # YI SYLLABLE WO
-A289 ; [.3BC2.0020.0002] # YI SYLLABLE WOP
-A28A ; [.3BC3.0020.0002] # YI SYLLABLE WEX
-A28B ; [.3BC4.0020.0002] # YI SYLLABLE WE
-A28C ; [.3BC5.0020.0002] # YI SYLLABLE WEP
-A28D ; [.3BC6.0020.0002] # YI SYLLABLE ZIT
-A28E ; [.3BC7.0020.0002] # YI SYLLABLE ZIX
-A28F ; [.3BC8.0020.0002] # YI SYLLABLE ZI
-A290 ; [.3BC9.0020.0002] # YI SYLLABLE ZIP
-A291 ; [.3BCA.0020.0002] # YI SYLLABLE ZIEX
-A292 ; [.3BCB.0020.0002] # YI SYLLABLE ZIE
-A293 ; [.3BCC.0020.0002] # YI SYLLABLE ZIEP
-A294 ; [.3BCD.0020.0002] # YI SYLLABLE ZAT
-A295 ; [.3BCE.0020.0002] # YI SYLLABLE ZAX
-A296 ; [.3BCF.0020.0002] # YI SYLLABLE ZA
-A297 ; [.3BD0.0020.0002] # YI SYLLABLE ZAP
-A298 ; [.3BD1.0020.0002] # YI SYLLABLE ZUOX
-A299 ; [.3BD2.0020.0002] # YI SYLLABLE ZUO
-A29A ; [.3BD3.0020.0002] # YI SYLLABLE ZUOP
-A29B ; [.3BD4.0020.0002] # YI SYLLABLE ZOT
-A29C ; [.3BD5.0020.0002] # YI SYLLABLE ZOX
-A29D ; [.3BD6.0020.0002] # YI SYLLABLE ZO
-A29E ; [.3BD7.0020.0002] # YI SYLLABLE ZOP
-A29F ; [.3BD8.0020.0002] # YI SYLLABLE ZEX
-A2A0 ; [.3BD9.0020.0002] # YI SYLLABLE ZE
-A2A1 ; [.3BDA.0020.0002] # YI SYLLABLE ZEP
-A2A2 ; [.3BDB.0020.0002] # YI SYLLABLE ZUT
-A2A3 ; [.3BDC.0020.0002] # YI SYLLABLE ZUX
-A2A4 ; [.3BDD.0020.0002] # YI SYLLABLE ZU
-A2A5 ; [.3BDE.0020.0002] # YI SYLLABLE ZUP
-A2A6 ; [.3BDF.0020.0002] # YI SYLLABLE ZURX
-A2A7 ; [.3BE0.0020.0002] # YI SYLLABLE ZUR
-A2A8 ; [.3BE1.0020.0002] # YI SYLLABLE ZYT
-A2A9 ; [.3BE2.0020.0002] # YI SYLLABLE ZYX
-A2AA ; [.3BE3.0020.0002] # YI SYLLABLE ZY
-A2AB ; [.3BE4.0020.0002] # YI SYLLABLE ZYP
-A2AC ; [.3BE5.0020.0002] # YI SYLLABLE ZYRX
-A2AD ; [.3BE6.0020.0002] # YI SYLLABLE ZYR
-A2AE ; [.3BE7.0020.0002] # YI SYLLABLE CIT
-A2AF ; [.3BE8.0020.0002] # YI SYLLABLE CIX
-A2B0 ; [.3BE9.0020.0002] # YI SYLLABLE CI
-A2B1 ; [.3BEA.0020.0002] # YI SYLLABLE CIP
-A2B2 ; [.3BEB.0020.0002] # YI SYLLABLE CIET
-A2B3 ; [.3BEC.0020.0002] # YI SYLLABLE CIEX
-A2B4 ; [.3BED.0020.0002] # YI SYLLABLE CIE
-A2B5 ; [.3BEE.0020.0002] # YI SYLLABLE CIEP
-A2B6 ; [.3BEF.0020.0002] # YI SYLLABLE CAT
-A2B7 ; [.3BF0.0020.0002] # YI SYLLABLE CAX
-A2B8 ; [.3BF1.0020.0002] # YI SYLLABLE CA
-A2B9 ; [.3BF2.0020.0002] # YI SYLLABLE CAP
-A2BA ; [.3BF3.0020.0002] # YI SYLLABLE CUOX
-A2BB ; [.3BF4.0020.0002] # YI SYLLABLE CUO
-A2BC ; [.3BF5.0020.0002] # YI SYLLABLE CUOP
-A2BD ; [.3BF6.0020.0002] # YI SYLLABLE COT
-A2BE ; [.3BF7.0020.0002] # YI SYLLABLE COX
-A2BF ; [.3BF8.0020.0002] # YI SYLLABLE CO
-A2C0 ; [.3BF9.0020.0002] # YI SYLLABLE COP
-A2C1 ; [.3BFA.0020.0002] # YI SYLLABLE CEX
-A2C2 ; [.3BFB.0020.0002] # YI SYLLABLE CE
-A2C3 ; [.3BFC.0020.0002] # YI SYLLABLE CEP
-A2C4 ; [.3BFD.0020.0002] # YI SYLLABLE CUT
-A2C5 ; [.3BFE.0020.0002] # YI SYLLABLE CUX
-A2C6 ; [.3BFF.0020.0002] # YI SYLLABLE CU
-A2C7 ; [.3C00.0020.0002] # YI SYLLABLE CUP
-A2C8 ; [.3C01.0020.0002] # YI SYLLABLE CURX
-A2C9 ; [.3C02.0020.0002] # YI SYLLABLE CUR
-A2CA ; [.3C03.0020.0002] # YI SYLLABLE CYT
-A2CB ; [.3C04.0020.0002] # YI SYLLABLE CYX
-A2CC ; [.3C05.0020.0002] # YI SYLLABLE CY
-A2CD ; [.3C06.0020.0002] # YI SYLLABLE CYP
-A2CE ; [.3C07.0020.0002] # YI SYLLABLE CYRX
-A2CF ; [.3C08.0020.0002] # YI SYLLABLE CYR
-A2D0 ; [.3C09.0020.0002] # YI SYLLABLE ZZIT
-A2D1 ; [.3C0A.0020.0002] # YI SYLLABLE ZZIX
-A2D2 ; [.3C0B.0020.0002] # YI SYLLABLE ZZI
-A2D3 ; [.3C0C.0020.0002] # YI SYLLABLE ZZIP
-A2D4 ; [.3C0D.0020.0002] # YI SYLLABLE ZZIET
-A2D5 ; [.3C0E.0020.0002] # YI SYLLABLE ZZIEX
-A2D6 ; [.3C0F.0020.0002] # YI SYLLABLE ZZIE
-A2D7 ; [.3C10.0020.0002] # YI SYLLABLE ZZIEP
-A2D8 ; [.3C11.0020.0002] # YI SYLLABLE ZZAT
-A2D9 ; [.3C12.0020.0002] # YI SYLLABLE ZZAX
-A2DA ; [.3C13.0020.0002] # YI SYLLABLE ZZA
-A2DB ; [.3C14.0020.0002] # YI SYLLABLE ZZAP
-A2DC ; [.3C15.0020.0002] # YI SYLLABLE ZZOX
-A2DD ; [.3C16.0020.0002] # YI SYLLABLE ZZO
-A2DE ; [.3C17.0020.0002] # YI SYLLABLE ZZOP
-A2DF ; [.3C18.0020.0002] # YI SYLLABLE ZZEX
-A2E0 ; [.3C19.0020.0002] # YI SYLLABLE ZZE
-A2E1 ; [.3C1A.0020.0002] # YI SYLLABLE ZZEP
-A2E2 ; [.3C1B.0020.0002] # YI SYLLABLE ZZUX
-A2E3 ; [.3C1C.0020.0002] # YI SYLLABLE ZZU
-A2E4 ; [.3C1D.0020.0002] # YI SYLLABLE ZZUP
-A2E5 ; [.3C1E.0020.0002] # YI SYLLABLE ZZURX
-A2E6 ; [.3C1F.0020.0002] # YI SYLLABLE ZZUR
-A2E7 ; [.3C20.0020.0002] # YI SYLLABLE ZZYT
-A2E8 ; [.3C21.0020.0002] # YI SYLLABLE ZZYX
-A2E9 ; [.3C22.0020.0002] # YI SYLLABLE ZZY
-A2EA ; [.3C23.0020.0002] # YI SYLLABLE ZZYP
-A2EB ; [.3C24.0020.0002] # YI SYLLABLE ZZYRX
-A2EC ; [.3C25.0020.0002] # YI SYLLABLE ZZYR
-A2ED ; [.3C26.0020.0002] # YI SYLLABLE NZIT
-A2EE ; [.3C27.0020.0002] # YI SYLLABLE NZIX
-A2EF ; [.3C28.0020.0002] # YI SYLLABLE NZI
-A2F0 ; [.3C29.0020.0002] # YI SYLLABLE NZIP
-A2F1 ; [.3C2A.0020.0002] # YI SYLLABLE NZIEX
-A2F2 ; [.3C2B.0020.0002] # YI SYLLABLE NZIE
-A2F3 ; [.3C2C.0020.0002] # YI SYLLABLE NZIEP
-A2F4 ; [.3C2D.0020.0002] # YI SYLLABLE NZAT
-A2F5 ; [.3C2E.0020.0002] # YI SYLLABLE NZAX
-A2F6 ; [.3C2F.0020.0002] # YI SYLLABLE NZA
-A2F7 ; [.3C30.0020.0002] # YI SYLLABLE NZAP
-A2F8 ; [.3C31.0020.0002] # YI SYLLABLE NZUOX
-A2F9 ; [.3C32.0020.0002] # YI SYLLABLE NZUO
-A2FA ; [.3C33.0020.0002] # YI SYLLABLE NZOX
-A2FB ; [.3C34.0020.0002] # YI SYLLABLE NZOP
-A2FC ; [.3C35.0020.0002] # YI SYLLABLE NZEX
-A2FD ; [.3C36.0020.0002] # YI SYLLABLE NZE
-A2FE ; [.3C37.0020.0002] # YI SYLLABLE NZUX
-A2FF ; [.3C38.0020.0002] # YI SYLLABLE NZU
-A300 ; [.3C39.0020.0002] # YI SYLLABLE NZUP
-A301 ; [.3C3A.0020.0002] # YI SYLLABLE NZURX
-A302 ; [.3C3B.0020.0002] # YI SYLLABLE NZUR
-A303 ; [.3C3C.0020.0002] # YI SYLLABLE NZYT
-A304 ; [.3C3D.0020.0002] # YI SYLLABLE NZYX
-A305 ; [.3C3E.0020.0002] # YI SYLLABLE NZY
-A306 ; [.3C3F.0020.0002] # YI SYLLABLE NZYP
-A307 ; [.3C40.0020.0002] # YI SYLLABLE NZYRX
-A308 ; [.3C41.0020.0002] # YI SYLLABLE NZYR
-A309 ; [.3C42.0020.0002] # YI SYLLABLE SIT
-A30A ; [.3C43.0020.0002] # YI SYLLABLE SIX
-A30B ; [.3C44.0020.0002] # YI SYLLABLE SI
-A30C ; [.3C45.0020.0002] # YI SYLLABLE SIP
-A30D ; [.3C46.0020.0002] # YI SYLLABLE SIEX
-A30E ; [.3C47.0020.0002] # YI SYLLABLE SIE
-A30F ; [.3C48.0020.0002] # YI SYLLABLE SIEP
-A310 ; [.3C49.0020.0002] # YI SYLLABLE SAT
-A311 ; [.3C4A.0020.0002] # YI SYLLABLE SAX
-A312 ; [.3C4B.0020.0002] # YI SYLLABLE SA
-A313 ; [.3C4C.0020.0002] # YI SYLLABLE SAP
-A314 ; [.3C4D.0020.0002] # YI SYLLABLE SUOX
-A315 ; [.3C4E.0020.0002] # YI SYLLABLE SUO
-A316 ; [.3C4F.0020.0002] # YI SYLLABLE SUOP
-A317 ; [.3C50.0020.0002] # YI SYLLABLE SOT
-A318 ; [.3C51.0020.0002] # YI SYLLABLE SOX
-A319 ; [.3C52.0020.0002] # YI SYLLABLE SO
-A31A ; [.3C53.0020.0002] # YI SYLLABLE SOP
-A31B ; [.3C54.0020.0002] # YI SYLLABLE SEX
-A31C ; [.3C55.0020.0002] # YI SYLLABLE SE
-A31D ; [.3C56.0020.0002] # YI SYLLABLE SEP
-A31E ; [.3C57.0020.0002] # YI SYLLABLE SUT
-A31F ; [.3C58.0020.0002] # YI SYLLABLE SUX
-A320 ; [.3C59.0020.0002] # YI SYLLABLE SU
-A321 ; [.3C5A.0020.0002] # YI SYLLABLE SUP
-A322 ; [.3C5B.0020.0002] # YI SYLLABLE SURX
-A323 ; [.3C5C.0020.0002] # YI SYLLABLE SUR
-A324 ; [.3C5D.0020.0002] # YI SYLLABLE SYT
-A325 ; [.3C5E.0020.0002] # YI SYLLABLE SYX
-A326 ; [.3C5F.0020.0002] # YI SYLLABLE SY
-A327 ; [.3C60.0020.0002] # YI SYLLABLE SYP
-A328 ; [.3C61.0020.0002] # YI SYLLABLE SYRX
-A329 ; [.3C62.0020.0002] # YI SYLLABLE SYR
-A32A ; [.3C63.0020.0002] # YI SYLLABLE SSIT
-A32B ; [.3C64.0020.0002] # YI SYLLABLE SSIX
-A32C ; [.3C65.0020.0002] # YI SYLLABLE SSI
-A32D ; [.3C66.0020.0002] # YI SYLLABLE SSIP
-A32E ; [.3C67.0020.0002] # YI SYLLABLE SSIEX
-A32F ; [.3C68.0020.0002] # YI SYLLABLE SSIE
-A330 ; [.3C69.0020.0002] # YI SYLLABLE SSIEP
-A331 ; [.3C6A.0020.0002] # YI SYLLABLE SSAT
-A332 ; [.3C6B.0020.0002] # YI SYLLABLE SSAX
-A333 ; [.3C6C.0020.0002] # YI SYLLABLE SSA
-A334 ; [.3C6D.0020.0002] # YI SYLLABLE SSAP
-A335 ; [.3C6E.0020.0002] # YI SYLLABLE SSOT
-A336 ; [.3C6F.0020.0002] # YI SYLLABLE SSOX
-A337 ; [.3C70.0020.0002] # YI SYLLABLE SSO
-A338 ; [.3C71.0020.0002] # YI SYLLABLE SSOP
-A339 ; [.3C72.0020.0002] # YI SYLLABLE SSEX
-A33A ; [.3C73.0020.0002] # YI SYLLABLE SSE
-A33B ; [.3C74.0020.0002] # YI SYLLABLE SSEP
-A33C ; [.3C75.0020.0002] # YI SYLLABLE SSUT
-A33D ; [.3C76.0020.0002] # YI SYLLABLE SSUX
-A33E ; [.3C77.0020.0002] # YI SYLLABLE SSU
-A33F ; [.3C78.0020.0002] # YI SYLLABLE SSUP
-A340 ; [.3C79.0020.0002] # YI SYLLABLE SSYT
-A341 ; [.3C7A.0020.0002] # YI SYLLABLE SSYX
-A342 ; [.3C7B.0020.0002] # YI SYLLABLE SSY
-A343 ; [.3C7C.0020.0002] # YI SYLLABLE SSYP
-A344 ; [.3C7D.0020.0002] # YI SYLLABLE SSYRX
-A345 ; [.3C7E.0020.0002] # YI SYLLABLE SSYR
-A346 ; [.3C7F.0020.0002] # YI SYLLABLE ZHAT
-A347 ; [.3C80.0020.0002] # YI SYLLABLE ZHAX
-A348 ; [.3C81.0020.0002] # YI SYLLABLE ZHA
-A349 ; [.3C82.0020.0002] # YI SYLLABLE ZHAP
-A34A ; [.3C83.0020.0002] # YI SYLLABLE ZHUOX
-A34B ; [.3C84.0020.0002] # YI SYLLABLE ZHUO
-A34C ; [.3C85.0020.0002] # YI SYLLABLE ZHUOP
-A34D ; [.3C86.0020.0002] # YI SYLLABLE ZHOT
-A34E ; [.3C87.0020.0002] # YI SYLLABLE ZHOX
-A34F ; [.3C88.0020.0002] # YI SYLLABLE ZHO
-A350 ; [.3C89.0020.0002] # YI SYLLABLE ZHOP
-A351 ; [.3C8A.0020.0002] # YI SYLLABLE ZHET
-A352 ; [.3C8B.0020.0002] # YI SYLLABLE ZHEX
-A353 ; [.3C8C.0020.0002] # YI SYLLABLE ZHE
-A354 ; [.3C8D.0020.0002] # YI SYLLABLE ZHEP
-A355 ; [.3C8E.0020.0002] # YI SYLLABLE ZHUT
-A356 ; [.3C8F.0020.0002] # YI SYLLABLE ZHUX
-A357 ; [.3C90.0020.0002] # YI SYLLABLE ZHU
-A358 ; [.3C91.0020.0002] # YI SYLLABLE ZHUP
-A359 ; [.3C92.0020.0002] # YI SYLLABLE ZHURX
-A35A ; [.3C93.0020.0002] # YI SYLLABLE ZHUR
-A35B ; [.3C94.0020.0002] # YI SYLLABLE ZHYT
-A35C ; [.3C95.0020.0002] # YI SYLLABLE ZHYX
-A35D ; [.3C96.0020.0002] # YI SYLLABLE ZHY
-A35E ; [.3C97.0020.0002] # YI SYLLABLE ZHYP
-A35F ; [.3C98.0020.0002] # YI SYLLABLE ZHYRX
-A360 ; [.3C99.0020.0002] # YI SYLLABLE ZHYR
-A361 ; [.3C9A.0020.0002] # YI SYLLABLE CHAT
-A362 ; [.3C9B.0020.0002] # YI SYLLABLE CHAX
-A363 ; [.3C9C.0020.0002] # YI SYLLABLE CHA
-A364 ; [.3C9D.0020.0002] # YI SYLLABLE CHAP
-A365 ; [.3C9E.0020.0002] # YI SYLLABLE CHUOT
-A366 ; [.3C9F.0020.0002] # YI SYLLABLE CHUOX
-A367 ; [.3CA0.0020.0002] # YI SYLLABLE CHUO
-A368 ; [.3CA1.0020.0002] # YI SYLLABLE CHUOP
-A369 ; [.3CA2.0020.0002] # YI SYLLABLE CHOT
-A36A ; [.3CA3.0020.0002] # YI SYLLABLE CHOX
-A36B ; [.3CA4.0020.0002] # YI SYLLABLE CHO
-A36C ; [.3CA5.0020.0002] # YI SYLLABLE CHOP
-A36D ; [.3CA6.0020.0002] # YI SYLLABLE CHET
-A36E ; [.3CA7.0020.0002] # YI SYLLABLE CHEX
-A36F ; [.3CA8.0020.0002] # YI SYLLABLE CHE
-A370 ; [.3CA9.0020.0002] # YI SYLLABLE CHEP
-A371 ; [.3CAA.0020.0002] # YI SYLLABLE CHUX
-A372 ; [.3CAB.0020.0002] # YI SYLLABLE CHU
-A373 ; [.3CAC.0020.0002] # YI SYLLABLE CHUP
-A374 ; [.3CAD.0020.0002] # YI SYLLABLE CHURX
-A375 ; [.3CAE.0020.0002] # YI SYLLABLE CHUR
-A376 ; [.3CAF.0020.0002] # YI SYLLABLE CHYT
-A377 ; [.3CB0.0020.0002] # YI SYLLABLE CHYX
-A378 ; [.3CB1.0020.0002] # YI SYLLABLE CHY
-A379 ; [.3CB2.0020.0002] # YI SYLLABLE CHYP
-A37A ; [.3CB3.0020.0002] # YI SYLLABLE CHYRX
-A37B ; [.3CB4.0020.0002] # YI SYLLABLE CHYR
-A37C ; [.3CB5.0020.0002] # YI SYLLABLE RRAX
-A37D ; [.3CB6.0020.0002] # YI SYLLABLE RRA
-A37E ; [.3CB7.0020.0002] # YI SYLLABLE RRUOX
-A37F ; [.3CB8.0020.0002] # YI SYLLABLE RRUO
-A380 ; [.3CB9.0020.0002] # YI SYLLABLE RROT
-A381 ; [.3CBA.0020.0002] # YI SYLLABLE RROX
-A382 ; [.3CBB.0020.0002] # YI SYLLABLE RRO
-A383 ; [.3CBC.0020.0002] # YI SYLLABLE RROP
-A384 ; [.3CBD.0020.0002] # YI SYLLABLE RRET
-A385 ; [.3CBE.0020.0002] # YI SYLLABLE RREX
-A386 ; [.3CBF.0020.0002] # YI SYLLABLE RRE
-A387 ; [.3CC0.0020.0002] # YI SYLLABLE RREP
-A388 ; [.3CC1.0020.0002] # YI SYLLABLE RRUT
-A389 ; [.3CC2.0020.0002] # YI SYLLABLE RRUX
-A38A ; [.3CC3.0020.0002] # YI SYLLABLE RRU
-A38B ; [.3CC4.0020.0002] # YI SYLLABLE RRUP
-A38C ; [.3CC5.0020.0002] # YI SYLLABLE RRURX
-A38D ; [.3CC6.0020.0002] # YI SYLLABLE RRUR
-A38E ; [.3CC7.0020.0002] # YI SYLLABLE RRYT
-A38F ; [.3CC8.0020.0002] # YI SYLLABLE RRYX
-A390 ; [.3CC9.0020.0002] # YI SYLLABLE RRY
-A391 ; [.3CCA.0020.0002] # YI SYLLABLE RRYP
-A392 ; [.3CCB.0020.0002] # YI SYLLABLE RRYRX
-A393 ; [.3CCC.0020.0002] # YI SYLLABLE RRYR
-A394 ; [.3CCD.0020.0002] # YI SYLLABLE NRAT
-A395 ; [.3CCE.0020.0002] # YI SYLLABLE NRAX
-A396 ; [.3CCF.0020.0002] # YI SYLLABLE NRA
-A397 ; [.3CD0.0020.0002] # YI SYLLABLE NRAP
-A398 ; [.3CD1.0020.0002] # YI SYLLABLE NROX
-A399 ; [.3CD2.0020.0002] # YI SYLLABLE NRO
-A39A ; [.3CD3.0020.0002] # YI SYLLABLE NROP
-A39B ; [.3CD4.0020.0002] # YI SYLLABLE NRET
-A39C ; [.3CD5.0020.0002] # YI SYLLABLE NREX
-A39D ; [.3CD6.0020.0002] # YI SYLLABLE NRE
-A39E ; [.3CD7.0020.0002] # YI SYLLABLE NREP
-A39F ; [.3CD8.0020.0002] # YI SYLLABLE NRUT
-A3A0 ; [.3CD9.0020.0002] # YI SYLLABLE NRUX
-A3A1 ; [.3CDA.0020.0002] # YI SYLLABLE NRU
-A3A2 ; [.3CDB.0020.0002] # YI SYLLABLE NRUP
-A3A3 ; [.3CDC.0020.0002] # YI SYLLABLE NRURX
-A3A4 ; [.3CDD.0020.0002] # YI SYLLABLE NRUR
-A3A5 ; [.3CDE.0020.0002] # YI SYLLABLE NRYT
-A3A6 ; [.3CDF.0020.0002] # YI SYLLABLE NRYX
-A3A7 ; [.3CE0.0020.0002] # YI SYLLABLE NRY
-A3A8 ; [.3CE1.0020.0002] # YI SYLLABLE NRYP
-A3A9 ; [.3CE2.0020.0002] # YI SYLLABLE NRYRX
-A3AA ; [.3CE3.0020.0002] # YI SYLLABLE NRYR
-A3AB ; [.3CE4.0020.0002] # YI SYLLABLE SHAT
-A3AC ; [.3CE5.0020.0002] # YI SYLLABLE SHAX
-A3AD ; [.3CE6.0020.0002] # YI SYLLABLE SHA
-A3AE ; [.3CE7.0020.0002] # YI SYLLABLE SHAP
-A3AF ; [.3CE8.0020.0002] # YI SYLLABLE SHUOX
-A3B0 ; [.3CE9.0020.0002] # YI SYLLABLE SHUO
-A3B1 ; [.3CEA.0020.0002] # YI SYLLABLE SHUOP
-A3B2 ; [.3CEB.0020.0002] # YI SYLLABLE SHOT
-A3B3 ; [.3CEC.0020.0002] # YI SYLLABLE SHOX
-A3B4 ; [.3CED.0020.0002] # YI SYLLABLE SHO
-A3B5 ; [.3CEE.0020.0002] # YI SYLLABLE SHOP
-A3B6 ; [.3CEF.0020.0002] # YI SYLLABLE SHET
-A3B7 ; [.3CF0.0020.0002] # YI SYLLABLE SHEX
-A3B8 ; [.3CF1.0020.0002] # YI SYLLABLE SHE
-A3B9 ; [.3CF2.0020.0002] # YI SYLLABLE SHEP
-A3BA ; [.3CF3.0020.0002] # YI SYLLABLE SHUT
-A3BB ; [.3CF4.0020.0002] # YI SYLLABLE SHUX
-A3BC ; [.3CF5.0020.0002] # YI SYLLABLE SHU
-A3BD ; [.3CF6.0020.0002] # YI SYLLABLE SHUP
-A3BE ; [.3CF7.0020.0002] # YI SYLLABLE SHURX
-A3BF ; [.3CF8.0020.0002] # YI SYLLABLE SHUR
-A3C0 ; [.3CF9.0020.0002] # YI SYLLABLE SHYT
-A3C1 ; [.3CFA.0020.0002] # YI SYLLABLE SHYX
-A3C2 ; [.3CFB.0020.0002] # YI SYLLABLE SHY
-A3C3 ; [.3CFC.0020.0002] # YI SYLLABLE SHYP
-A3C4 ; [.3CFD.0020.0002] # YI SYLLABLE SHYRX
-A3C5 ; [.3CFE.0020.0002] # YI SYLLABLE SHYR
-A3C6 ; [.3CFF.0020.0002] # YI SYLLABLE RAT
-A3C7 ; [.3D00.0020.0002] # YI SYLLABLE RAX
-A3C8 ; [.3D01.0020.0002] # YI SYLLABLE RA
-A3C9 ; [.3D02.0020.0002] # YI SYLLABLE RAP
-A3CA ; [.3D03.0020.0002] # YI SYLLABLE RUOX
-A3CB ; [.3D04.0020.0002] # YI SYLLABLE RUO
-A3CC ; [.3D05.0020.0002] # YI SYLLABLE RUOP
-A3CD ; [.3D06.0020.0002] # YI SYLLABLE ROT
-A3CE ; [.3D07.0020.0002] # YI SYLLABLE ROX
-A3CF ; [.3D08.0020.0002] # YI SYLLABLE RO
-A3D0 ; [.3D09.0020.0002] # YI SYLLABLE ROP
-A3D1 ; [.3D0A.0020.0002] # YI SYLLABLE REX
-A3D2 ; [.3D0B.0020.0002] # YI SYLLABLE RE
-A3D3 ; [.3D0C.0020.0002] # YI SYLLABLE REP
-A3D4 ; [.3D0D.0020.0002] # YI SYLLABLE RUT
-A3D5 ; [.3D0E.0020.0002] # YI SYLLABLE RUX
-A3D6 ; [.3D0F.0020.0002] # YI SYLLABLE RU
-A3D7 ; [.3D10.0020.0002] # YI SYLLABLE RUP
-A3D8 ; [.3D11.0020.0002] # YI SYLLABLE RURX
-A3D9 ; [.3D12.0020.0002] # YI SYLLABLE RUR
-A3DA ; [.3D13.0020.0002] # YI SYLLABLE RYT
-A3DB ; [.3D14.0020.0002] # YI SYLLABLE RYX
-A3DC ; [.3D15.0020.0002] # YI SYLLABLE RY
-A3DD ; [.3D16.0020.0002] # YI SYLLABLE RYP
-A3DE ; [.3D17.0020.0002] # YI SYLLABLE RYRX
-A3DF ; [.3D18.0020.0002] # YI SYLLABLE RYR
-A3E0 ; [.3D19.0020.0002] # YI SYLLABLE JIT
-A3E1 ; [.3D1A.0020.0002] # YI SYLLABLE JIX
-A3E2 ; [.3D1B.0020.0002] # YI SYLLABLE JI
-A3E3 ; [.3D1C.0020.0002] # YI SYLLABLE JIP
-A3E4 ; [.3D1D.0020.0002] # YI SYLLABLE JIET
-A3E5 ; [.3D1E.0020.0002] # YI SYLLABLE JIEX
-A3E6 ; [.3D1F.0020.0002] # YI SYLLABLE JIE
-A3E7 ; [.3D20.0020.0002] # YI SYLLABLE JIEP
-A3E8 ; [.3D21.0020.0002] # YI SYLLABLE JUOT
-A3E9 ; [.3D22.0020.0002] # YI SYLLABLE JUOX
-A3EA ; [.3D23.0020.0002] # YI SYLLABLE JUO
-A3EB ; [.3D24.0020.0002] # YI SYLLABLE JUOP
-A3EC ; [.3D25.0020.0002] # YI SYLLABLE JOT
-A3ED ; [.3D26.0020.0002] # YI SYLLABLE JOX
-A3EE ; [.3D27.0020.0002] # YI SYLLABLE JO
-A3EF ; [.3D28.0020.0002] # YI SYLLABLE JOP
-A3F0 ; [.3D29.0020.0002] # YI SYLLABLE JUT
-A3F1 ; [.3D2A.0020.0002] # YI SYLLABLE JUX
-A3F2 ; [.3D2B.0020.0002] # YI SYLLABLE JU
-A3F3 ; [.3D2C.0020.0002] # YI SYLLABLE JUP
-A3F4 ; [.3D2D.0020.0002] # YI SYLLABLE JURX
-A3F5 ; [.3D2E.0020.0002] # YI SYLLABLE JUR
-A3F6 ; [.3D2F.0020.0002] # YI SYLLABLE JYT
-A3F7 ; [.3D30.0020.0002] # YI SYLLABLE JYX
-A3F8 ; [.3D31.0020.0002] # YI SYLLABLE JY
-A3F9 ; [.3D32.0020.0002] # YI SYLLABLE JYP
-A3FA ; [.3D33.0020.0002] # YI SYLLABLE JYRX
-A3FB ; [.3D34.0020.0002] # YI SYLLABLE JYR
-A3FC ; [.3D35.0020.0002] # YI SYLLABLE QIT
-A3FD ; [.3D36.0020.0002] # YI SYLLABLE QIX
-A3FE ; [.3D37.0020.0002] # YI SYLLABLE QI
-A3FF ; [.3D38.0020.0002] # YI SYLLABLE QIP
-A400 ; [.3D39.0020.0002] # YI SYLLABLE QIET
-A401 ; [.3D3A.0020.0002] # YI SYLLABLE QIEX
-A402 ; [.3D3B.0020.0002] # YI SYLLABLE QIE
-A403 ; [.3D3C.0020.0002] # YI SYLLABLE QIEP
-A404 ; [.3D3D.0020.0002] # YI SYLLABLE QUOT
-A405 ; [.3D3E.0020.0002] # YI SYLLABLE QUOX
-A406 ; [.3D3F.0020.0002] # YI SYLLABLE QUO
-A407 ; [.3D40.0020.0002] # YI SYLLABLE QUOP
-A408 ; [.3D41.0020.0002] # YI SYLLABLE QOT
-A409 ; [.3D42.0020.0002] # YI SYLLABLE QOX
-A40A ; [.3D43.0020.0002] # YI SYLLABLE QO
-A40B ; [.3D44.0020.0002] # YI SYLLABLE QOP
-A40C ; [.3D45.0020.0002] # YI SYLLABLE QUT
-A40D ; [.3D46.0020.0002] # YI SYLLABLE QUX
-A40E ; [.3D47.0020.0002] # YI SYLLABLE QU
-A40F ; [.3D48.0020.0002] # YI SYLLABLE QUP
-A410 ; [.3D49.0020.0002] # YI SYLLABLE QURX
-A411 ; [.3D4A.0020.0002] # YI SYLLABLE QUR
-A412 ; [.3D4B.0020.0002] # YI SYLLABLE QYT
-A413 ; [.3D4C.0020.0002] # YI SYLLABLE QYX
-A414 ; [.3D4D.0020.0002] # YI SYLLABLE QY
-A415 ; [.3D4E.0020.0002] # YI SYLLABLE QYP
-A416 ; [.3D4F.0020.0002] # YI SYLLABLE QYRX
-A417 ; [.3D50.0020.0002] # YI SYLLABLE QYR
-A418 ; [.3D51.0020.0002] # YI SYLLABLE JJIT
-A419 ; [.3D52.0020.0002] # YI SYLLABLE JJIX
-A41A ; [.3D53.0020.0002] # YI SYLLABLE JJI
-A41B ; [.3D54.0020.0002] # YI SYLLABLE JJIP
-A41C ; [.3D55.0020.0002] # YI SYLLABLE JJIET
-A41D ; [.3D56.0020.0002] # YI SYLLABLE JJIEX
-A41E ; [.3D57.0020.0002] # YI SYLLABLE JJIE
-A41F ; [.3D58.0020.0002] # YI SYLLABLE JJIEP
-A420 ; [.3D59.0020.0002] # YI SYLLABLE JJUOX
-A421 ; [.3D5A.0020.0002] # YI SYLLABLE JJUO
-A422 ; [.3D5B.0020.0002] # YI SYLLABLE JJUOP
-A423 ; [.3D5C.0020.0002] # YI SYLLABLE JJOT
-A424 ; [.3D5D.0020.0002] # YI SYLLABLE JJOX
-A425 ; [.3D5E.0020.0002] # YI SYLLABLE JJO
-A426 ; [.3D5F.0020.0002] # YI SYLLABLE JJOP
-A427 ; [.3D60.0020.0002] # YI SYLLABLE JJUT
-A428 ; [.3D61.0020.0002] # YI SYLLABLE JJUX
-A429 ; [.3D62.0020.0002] # YI SYLLABLE JJU
-A42A ; [.3D63.0020.0002] # YI SYLLABLE JJUP
-A42B ; [.3D64.0020.0002] # YI SYLLABLE JJURX
-A42C ; [.3D65.0020.0002] # YI SYLLABLE JJUR
-A42D ; [.3D66.0020.0002] # YI SYLLABLE JJYT
-A42E ; [.3D67.0020.0002] # YI SYLLABLE JJYX
-A42F ; [.3D68.0020.0002] # YI SYLLABLE JJY
-A430 ; [.3D69.0020.0002] # YI SYLLABLE JJYP
-A431 ; [.3D6A.0020.0002] # YI SYLLABLE NJIT
-A432 ; [.3D6B.0020.0002] # YI SYLLABLE NJIX
-A433 ; [.3D6C.0020.0002] # YI SYLLABLE NJI
-A434 ; [.3D6D.0020.0002] # YI SYLLABLE NJIP
-A435 ; [.3D6E.0020.0002] # YI SYLLABLE NJIET
-A436 ; [.3D6F.0020.0002] # YI SYLLABLE NJIEX
-A437 ; [.3D70.0020.0002] # YI SYLLABLE NJIE
-A438 ; [.3D71.0020.0002] # YI SYLLABLE NJIEP
-A439 ; [.3D72.0020.0002] # YI SYLLABLE NJUOX
-A43A ; [.3D73.0020.0002] # YI SYLLABLE NJUO
-A43B ; [.3D74.0020.0002] # YI SYLLABLE NJOT
-A43C ; [.3D75.0020.0002] # YI SYLLABLE NJOX
-A43D ; [.3D76.0020.0002] # YI SYLLABLE NJO
-A43E ; [.3D77.0020.0002] # YI SYLLABLE NJOP
-A43F ; [.3D78.0020.0002] # YI SYLLABLE NJUX
-A440 ; [.3D79.0020.0002] # YI SYLLABLE NJU
-A441 ; [.3D7A.0020.0002] # YI SYLLABLE NJUP
-A442 ; [.3D7B.0020.0002] # YI SYLLABLE NJURX
-A443 ; [.3D7C.0020.0002] # YI SYLLABLE NJUR
-A444 ; [.3D7D.0020.0002] # YI SYLLABLE NJYT
-A445 ; [.3D7E.0020.0002] # YI SYLLABLE NJYX
-A446 ; [.3D7F.0020.0002] # YI SYLLABLE NJY
-A447 ; [.3D80.0020.0002] # YI SYLLABLE NJYP
-A448 ; [.3D81.0020.0002] # YI SYLLABLE NJYRX
-A449 ; [.3D82.0020.0002] # YI SYLLABLE NJYR
-A44A ; [.3D83.0020.0002] # YI SYLLABLE NYIT
-A44B ; [.3D84.0020.0002] # YI SYLLABLE NYIX
-A44C ; [.3D85.0020.0002] # YI SYLLABLE NYI
-A44D ; [.3D86.0020.0002] # YI SYLLABLE NYIP
-A44E ; [.3D87.0020.0002] # YI SYLLABLE NYIET
-A44F ; [.3D88.0020.0002] # YI SYLLABLE NYIEX
-A450 ; [.3D89.0020.0002] # YI SYLLABLE NYIE
-A451 ; [.3D8A.0020.0002] # YI SYLLABLE NYIEP
-A452 ; [.3D8B.0020.0002] # YI SYLLABLE NYUOX
-A453 ; [.3D8C.0020.0002] # YI SYLLABLE NYUO
-A454 ; [.3D8D.0020.0002] # YI SYLLABLE NYUOP
-A455 ; [.3D8E.0020.0002] # YI SYLLABLE NYOT
-A456 ; [.3D8F.0020.0002] # YI SYLLABLE NYOX
-A457 ; [.3D90.0020.0002] # YI SYLLABLE NYO
-A458 ; [.3D91.0020.0002] # YI SYLLABLE NYOP
-A459 ; [.3D92.0020.0002] # YI SYLLABLE NYUT
-A45A ; [.3D93.0020.0002] # YI SYLLABLE NYUX
-A45B ; [.3D94.0020.0002] # YI SYLLABLE NYU
-A45C ; [.3D95.0020.0002] # YI SYLLABLE NYUP
-A45D ; [.3D96.0020.0002] # YI SYLLABLE XIT
-A45E ; [.3D97.0020.0002] # YI SYLLABLE XIX
-A45F ; [.3D98.0020.0002] # YI SYLLABLE XI
-A460 ; [.3D99.0020.0002] # YI SYLLABLE XIP
-A461 ; [.3D9A.0020.0002] # YI SYLLABLE XIET
-A462 ; [.3D9B.0020.0002] # YI SYLLABLE XIEX
-A463 ; [.3D9C.0020.0002] # YI SYLLABLE XIE
-A464 ; [.3D9D.0020.0002] # YI SYLLABLE XIEP
-A465 ; [.3D9E.0020.0002] # YI SYLLABLE XUOX
-A466 ; [.3D9F.0020.0002] # YI SYLLABLE XUO
-A467 ; [.3DA0.0020.0002] # YI SYLLABLE XOT
-A468 ; [.3DA1.0020.0002] # YI SYLLABLE XOX
-A469 ; [.3DA2.0020.0002] # YI SYLLABLE XO
-A46A ; [.3DA3.0020.0002] # YI SYLLABLE XOP
-A46B ; [.3DA4.0020.0002] # YI SYLLABLE XYT
-A46C ; [.3DA5.0020.0002] # YI SYLLABLE XYX
-A46D ; [.3DA6.0020.0002] # YI SYLLABLE XY
-A46E ; [.3DA7.0020.0002] # YI SYLLABLE XYP
-A46F ; [.3DA8.0020.0002] # YI SYLLABLE XYRX
-A470 ; [.3DA9.0020.0002] # YI SYLLABLE XYR
-A471 ; [.3DAA.0020.0002] # YI SYLLABLE YIT
-A472 ; [.3DAB.0020.0002] # YI SYLLABLE YIX
-A473 ; [.3DAC.0020.0002] # YI SYLLABLE YI
-A474 ; [.3DAD.0020.0002] # YI SYLLABLE YIP
-A475 ; [.3DAE.0020.0002] # YI SYLLABLE YIET
-A476 ; [.3DAF.0020.0002] # YI SYLLABLE YIEX
-A477 ; [.3DB0.0020.0002] # YI SYLLABLE YIE
-A478 ; [.3DB1.0020.0002] # YI SYLLABLE YIEP
-A479 ; [.3DB2.0020.0002] # YI SYLLABLE YUOT
-A47A ; [.3DB3.0020.0002] # YI SYLLABLE YUOX
-A47B ; [.3DB4.0020.0002] # YI SYLLABLE YUO
-A47C ; [.3DB5.0020.0002] # YI SYLLABLE YUOP
-A47D ; [.3DB6.0020.0002] # YI SYLLABLE YOT
-A47E ; [.3DB7.0020.0002] # YI SYLLABLE YOX
-A47F ; [.3DB8.0020.0002] # YI SYLLABLE YO
-A480 ; [.3DB9.0020.0002] # YI SYLLABLE YOP
-A481 ; [.3DBA.0020.0002] # YI SYLLABLE YUT
-A482 ; [.3DBB.0020.0002] # YI SYLLABLE YUX
-A483 ; [.3DBC.0020.0002] # YI SYLLABLE YU
-A484 ; [.3DBD.0020.0002] # YI SYLLABLE YUP
-A485 ; [.3DBE.0020.0002] # YI SYLLABLE YURX
-A486 ; [.3DBF.0020.0002] # YI SYLLABLE YUR
-A487 ; [.3DC0.0020.0002] # YI SYLLABLE YYT
-A488 ; [.3DC1.0020.0002] # YI SYLLABLE YYX
-A489 ; [.3DC2.0020.0002] # YI SYLLABLE YY
-A48A ; [.3DC3.0020.0002] # YI SYLLABLE YYP
-A48B ; [.3DC4.0020.0002] # YI SYLLABLE YYRX
-A48C ; [.3DC5.0020.0002] # YI SYLLABLE YYR
-A4F8 ; [.3DC6.0020.0002] # LISU LETTER TONE MYA TI
-A4F9 ; [.3DC7.0020.0002] # LISU LETTER TONE NA PO
-A4FA ; [.3DC8.0020.0002] # LISU LETTER TONE MYA CYA
-A4FB ; [.3DC9.0020.0002] # LISU LETTER TONE MYA BO
-A4FD ; [.3DCA.0020.0002] # LISU LETTER TONE MYA JEU
-A4FC ; [.3DCB.0020.0002] # LISU LETTER TONE MYA NA
-A4D0 ; [.3DCC.0020.0002] # LISU LETTER BA
-A4D1 ; [.3DCD.0020.0002] # LISU LETTER PA
-A4D2 ; [.3DCE.0020.0002] # LISU LETTER PHA
-A4D3 ; [.3DCF.0020.0002] # LISU LETTER DA
-A4D4 ; [.3DD0.0020.0002] # LISU LETTER TA
-A4D5 ; [.3DD1.0020.0002] # LISU LETTER THA
-A4D6 ; [.3DD2.0020.0002] # LISU LETTER GA
-A4D7 ; [.3DD3.0020.0002] # LISU LETTER KA
-A4D8 ; [.3DD4.0020.0002] # LISU LETTER KHA
-A4D9 ; [.3DD5.0020.0002] # LISU LETTER JA
-A4DA ; [.3DD6.0020.0002] # LISU LETTER CA
-A4DB ; [.3DD7.0020.0002] # LISU LETTER CHA
-A4DC ; [.3DD8.0020.0002] # LISU LETTER DZA
-A4DD ; [.3DD9.0020.0002] # LISU LETTER TSA
-A4DE ; [.3DDA.0020.0002] # LISU LETTER TSHA
-A4DF ; [.3DDB.0020.0002] # LISU LETTER MA
-A4E0 ; [.3DDC.0020.0002] # LISU LETTER NA
-A4E1 ; [.3DDD.0020.0002] # LISU LETTER LA
-A4E2 ; [.3DDE.0020.0002] # LISU LETTER SA
-A4E3 ; [.3DDF.0020.0002] # LISU LETTER ZHA
-A4E4 ; [.3DE0.0020.0002] # LISU LETTER ZA
-A4E5 ; [.3DE1.0020.0002] # LISU LETTER NGA
-A4E6 ; [.3DE2.0020.0002] # LISU LETTER HA
-A4E7 ; [.3DE3.0020.0002] # LISU LETTER XA
-A4E8 ; [.3DE4.0020.0002] # LISU LETTER HHA
-A4E9 ; [.3DE5.0020.0002] # LISU LETTER FA
-A4EB ; [.3DE6.0020.0002] # LISU LETTER SHA
-A4ED ; [.3DE7.0020.0002] # LISU LETTER GHA
-A4EA ; [.3DE8.0020.0002] # LISU LETTER WA
-A4EC ; [.3DE9.0020.0002] # LISU LETTER YA
-A4EE ; [.3DEA.0020.0002] # LISU LETTER A
-A4EF ; [.3DEB.0020.0002] # LISU LETTER AE
-A4F0 ; [.3DEC.0020.0002] # LISU LETTER E
-A4F1 ; [.3DED.0020.0002] # LISU LETTER EU
-A4F2 ; [.3DEE.0020.0002] # LISU LETTER I
-A4F3 ; [.3DEF.0020.0002] # LISU LETTER O
-A4F4 ; [.3DF0.0020.0002] # LISU LETTER U
-A4F5 ; [.3DF1.0020.0002] # LISU LETTER UE
-A4F6 ; [.3DF2.0020.0002] # LISU LETTER UH
-A4F7 ; [.3DF3.0020.0002] # LISU LETTER OE
-16F00 ; [.3DF4.0020.0002] # MIAO LETTER PA
-16F01 ; [.3DF5.0020.0002] # MIAO LETTER BA
-16F02 ; [.3DF6.0020.0002] # MIAO LETTER YI PA
-16F03 ; [.3DF7.0020.0002] # MIAO LETTER PLA
-16F04 ; [.3DF8.0020.0002] # MIAO LETTER MA
-16F06 ; [.3DF8.0020.0004] # MIAO LETTER ARCHAIC MA
-16F05 ; [.3DF9.0020.0002] # MIAO LETTER MHA
-16F07 ; [.3DFA.0020.0002] # MIAO LETTER FA
-16F08 ; [.3DFB.0020.0002] # MIAO LETTER VA
-16F09 ; [.3DFC.0020.0002] # MIAO LETTER VFA
-16F0A ; [.3DFD.0020.0002] # MIAO LETTER TA
-16F0B ; [.3DFE.0020.0002] # MIAO LETTER DA
-16F0C ; [.3DFF.0020.0002] # MIAO LETTER YI TTA
-16F0D ; [.3E00.0020.0002] # MIAO LETTER YI TA
-16F0E ; [.3E01.0020.0002] # MIAO LETTER TTA
-16F0F ; [.3E02.0020.0002] # MIAO LETTER DDA
-16F10 ; [.3E03.0020.0002] # MIAO LETTER NA
-16F13 ; [.3E03.0020.0004] # MIAO LETTER ARCHAIC NA
-16F11 ; [.3E04.0020.0002] # MIAO LETTER NHA
-16F12 ; [.3E05.0020.0002] # MIAO LETTER YI NNA
-16F14 ; [.3E06.0020.0002] # MIAO LETTER NNA
-16F15 ; [.3E07.0020.0002] # MIAO LETTER NNHA
-16F16 ; [.3E08.0020.0002] # MIAO LETTER LA
-16F17 ; [.3E09.0020.0002] # MIAO LETTER LYA
-16F18 ; [.3E0A.0020.0002] # MIAO LETTER LHA
-16F19 ; [.3E0B.0020.0002] # MIAO LETTER LHYA
-16F1A ; [.3E0C.0020.0002] # MIAO LETTER TLHA
-16F1B ; [.3E0D.0020.0002] # MIAO LETTER DLHA
-16F1C ; [.3E0E.0020.0002] # MIAO LETTER TLHYA
-16F1D ; [.3E0F.0020.0002] # MIAO LETTER DLHYA
-16F1E ; [.3E10.0020.0002] # MIAO LETTER KA
-16F1F ; [.3E11.0020.0002] # MIAO LETTER GA
-16F20 ; [.3E12.0020.0002] # MIAO LETTER YI KA
-16F21 ; [.3E13.0020.0002] # MIAO LETTER QA
-16F22 ; [.3E14.0020.0002] # MIAO LETTER QGA
-16F23 ; [.3E15.0020.0002] # MIAO LETTER NGA
-16F25 ; [.3E15.0020.0004] # MIAO LETTER ARCHAIC NGA
-16F24 ; [.3E16.0020.0002] # MIAO LETTER NGHA
-16F26 ; [.3E17.0020.0002] # MIAO LETTER HA
-16F27 ; [.3E18.0020.0002] # MIAO LETTER XA
-16F28 ; [.3E19.0020.0002] # MIAO LETTER GHA
-16F29 ; [.3E1A.0020.0002] # MIAO LETTER GHHA
-16F2A ; [.3E1B.0020.0002] # MIAO LETTER TSSA
-16F2B ; [.3E1C.0020.0002] # MIAO LETTER DZZA
-16F2C ; [.3E1D.0020.0002] # MIAO LETTER NYA
-16F2D ; [.3E1E.0020.0002] # MIAO LETTER NYHA
-16F2E ; [.3E1F.0020.0002] # MIAO LETTER TSHA
-16F2F ; [.3E20.0020.0002] # MIAO LETTER DZHA
-16F30 ; [.3E21.0020.0002] # MIAO LETTER YI TSHA
-16F31 ; [.3E22.0020.0002] # MIAO LETTER YI DZHA
-16F32 ; [.3E23.0020.0002] # MIAO LETTER REFORMED TSHA
-16F33 ; [.3E24.0020.0002] # MIAO LETTER SHA
-16F34 ; [.3E25.0020.0002] # MIAO LETTER SSA
-16F35 ; [.3E26.0020.0002] # MIAO LETTER ZHA
-16F36 ; [.3E27.0020.0002] # MIAO LETTER ZSHA
-16F37 ; [.3E28.0020.0002] # MIAO LETTER TSA
-16F38 ; [.3E29.0020.0002] # MIAO LETTER DZA
-16F39 ; [.3E2A.0020.0002] # MIAO LETTER YI TSA
-16F3A ; [.3E2B.0020.0002] # MIAO LETTER SA
-16F3B ; [.3E2C.0020.0002] # MIAO LETTER ZA
-16F3C ; [.3E2D.0020.0002] # MIAO LETTER ZSA
-16F3D ; [.3E2E.0020.0002] # MIAO LETTER ZZA
-16F3F ; [.3E2E.0020.0004] # MIAO LETTER ARCHAIC ZZA
-16F3E ; [.3E2F.0020.0002] # MIAO LETTER ZZSA
-16F40 ; [.3E30.0020.0002] # MIAO LETTER ZZYA
-16F41 ; [.3E31.0020.0002] # MIAO LETTER ZZSYA
-16F42 ; [.3E32.0020.0002] # MIAO LETTER WA
-16F43 ; [.3E33.0020.0002] # MIAO LETTER AH
-16F44 ; [.3E34.0020.0002] # MIAO LETTER HHA
-16F50 ; [.3E35.0020.0002] # MIAO LETTER NASALIZATION
-16F51 ; [.3E36.0020.0002] # MIAO SIGN ASPIRATION
-16F52 ; [.3E37.0020.0002] # MIAO SIGN REFORMED VOICING
-16F53 ; [.3E38.0020.0002] # MIAO SIGN REFORMED ASPIRATION
-16F54 ; [.3E39.0020.0002] # MIAO VOWEL SIGN A
-16F55 ; [.3E3A.0020.0002] # MIAO VOWEL SIGN AA
-16F56 ; [.3E3B.0020.0002] # MIAO VOWEL SIGN AHH
-16F57 ; [.3E3C.0020.0002] # MIAO VOWEL SIGN AN
-16F58 ; [.3E3D.0020.0002] # MIAO VOWEL SIGN ANG
-16F59 ; [.3E3E.0020.0002] # MIAO VOWEL SIGN O
-16F5A ; [.3E3F.0020.0002] # MIAO VOWEL SIGN OO
-16F5B ; [.3E40.0020.0002] # MIAO VOWEL SIGN WO
-16F5C ; [.3E41.0020.0002] # MIAO VOWEL SIGN W
-16F5D ; [.3E42.0020.0002] # MIAO VOWEL SIGN E
-16F5E ; [.3E43.0020.0002] # MIAO VOWEL SIGN EN
-16F5F ; [.3E44.0020.0002] # MIAO VOWEL SIGN ENG
-16F60 ; [.3E45.0020.0002] # MIAO VOWEL SIGN OEY
-16F61 ; [.3E46.0020.0002] # MIAO VOWEL SIGN I
-16F62 ; [.3E47.0020.0002] # MIAO VOWEL SIGN IA
-16F63 ; [.3E48.0020.0002] # MIAO VOWEL SIGN IAN
-16F64 ; [.3E49.0020.0002] # MIAO VOWEL SIGN IANG
-16F65 ; [.3E4A.0020.0002] # MIAO VOWEL SIGN IO
-16F66 ; [.3E4B.0020.0002] # MIAO VOWEL SIGN IE
-16F67 ; [.3E4C.0020.0002] # MIAO VOWEL SIGN II
-16F68 ; [.3E4D.0020.0002] # MIAO VOWEL SIGN IU
-16F69 ; [.3E4E.0020.0002] # MIAO VOWEL SIGN ING
-16F6A ; [.3E4F.0020.0002] # MIAO VOWEL SIGN U
-16F6B ; [.3E50.0020.0002] # MIAO VOWEL SIGN UA
-16F6C ; [.3E51.0020.0002] # MIAO VOWEL SIGN UAN
-16F6D ; [.3E52.0020.0002] # MIAO VOWEL SIGN UANG
-16F6E ; [.3E53.0020.0002] # MIAO VOWEL SIGN UU
-16F6F ; [.3E54.0020.0002] # MIAO VOWEL SIGN UEI
-16F70 ; [.3E55.0020.0002] # MIAO VOWEL SIGN UNG
-16F71 ; [.3E56.0020.0002] # MIAO VOWEL SIGN Y
-16F72 ; [.3E57.0020.0002] # MIAO VOWEL SIGN YI
-16F73 ; [.3E58.0020.0002] # MIAO VOWEL SIGN AE
-16F74 ; [.3E59.0020.0002] # MIAO VOWEL SIGN AEE
-16F75 ; [.3E5A.0020.0002] # MIAO VOWEL SIGN ERR
-16F76 ; [.3E5B.0020.0002] # MIAO VOWEL SIGN ROUNDED ERR
-16F77 ; [.3E5C.0020.0002] # MIAO VOWEL SIGN ER
-16F78 ; [.3E5D.0020.0002] # MIAO VOWEL SIGN ROUNDED ER
-16F79 ; [.3E5E.0020.0002] # MIAO VOWEL SIGN AI
-16F7A ; [.3E5F.0020.0002] # MIAO VOWEL SIGN EI
-16F7B ; [.3E60.0020.0002] # MIAO VOWEL SIGN AU
-16F7C ; [.3E61.0020.0002] # MIAO VOWEL SIGN OU
-16F7D ; [.3E62.0020.0002] # MIAO VOWEL SIGN N
-16F7E ; [.3E63.0020.0002] # MIAO VOWEL SIGN NG
-16F8F ; [.3E64.0020.0002] # MIAO TONE RIGHT
-16F90 ; [.3E65.0020.0002] # MIAO TONE TOP RIGHT
-16F91 ; [.3E66.0020.0002] # MIAO TONE ABOVE
-16F92 ; [.3E67.0020.0002] # MIAO TONE BELOW
-16F93 ; [.3E68.0020.0002] # MIAO LETTER TONE-2
-16F94 ; [.3E69.0020.0002] # MIAO LETTER TONE-3
-16F95 ; [.3E6A.0020.0002] # MIAO LETTER TONE-4
-16F96 ; [.3E6B.0020.0002] # MIAO LETTER TONE-5
-16F97 ; [.3E6C.0020.0002] # MIAO LETTER TONE-6
-16F98 ; [.3E6D.0020.0002] # MIAO LETTER TONE-7
-16F99 ; [.3E6E.0020.0002] # MIAO LETTER TONE-8
-16F9A ; [.3E6F.0020.0002] # MIAO LETTER REFORMED TONE-1
-16F9B ; [.3E70.0020.0002] # MIAO LETTER REFORMED TONE-2
-16F9C ; [.3E71.0020.0002] # MIAO LETTER REFORMED TONE-4
-16F9D ; [.3E72.0020.0002] # MIAO LETTER REFORMED TONE-5
-16F9E ; [.3E73.0020.0002] # MIAO LETTER REFORMED TONE-6
-16F9F ; [.3E74.0020.0002] # MIAO LETTER REFORMED TONE-8
-118FF ; [.3E75.0020.0002] # WARANG CITI OM
-118C0 ; [.3E76.0020.0002] # WARANG CITI SMALL LETTER NGAA
-118A0 ; [.3E76.0020.0008] # WARANG CITI CAPITAL LETTER NGAA
-118C1 ; [.3E77.0020.0002] # WARANG CITI SMALL LETTER A
-118A1 ; [.3E77.0020.0008] # WARANG CITI CAPITAL LETTER A
-118C2 ; [.3E78.0020.0002] # WARANG CITI SMALL LETTER WI
-118A2 ; [.3E78.0020.0008] # WARANG CITI CAPITAL LETTER WI
-118C3 ; [.3E79.0020.0002] # WARANG CITI SMALL LETTER YU
-118A3 ; [.3E79.0020.0008] # WARANG CITI CAPITAL LETTER YU
-118C4 ; [.3E7A.0020.0002] # WARANG CITI SMALL LETTER YA
-118A4 ; [.3E7A.0020.0008] # WARANG CITI CAPITAL LETTER YA
-118C5 ; [.3E7B.0020.0002] # WARANG CITI SMALL LETTER YO
-118A5 ; [.3E7B.0020.0008] # WARANG CITI CAPITAL LETTER YO
-118C6 ; [.3E7C.0020.0002] # WARANG CITI SMALL LETTER II
-118A6 ; [.3E7C.0020.0008] # WARANG CITI CAPITAL LETTER II
-118C7 ; [.3E7D.0020.0002] # WARANG CITI SMALL LETTER UU
-118A7 ; [.3E7D.0020.0008] # WARANG CITI CAPITAL LETTER UU
-118C8 ; [.3E7E.0020.0002] # WARANG CITI SMALL LETTER E
-118A8 ; [.3E7E.0020.0008] # WARANG CITI CAPITAL LETTER E
-118C9 ; [.3E7F.0020.0002] # WARANG CITI SMALL LETTER O
-118A9 ; [.3E7F.0020.0008] # WARANG CITI CAPITAL LETTER O
-118CA ; [.3E80.0020.0002] # WARANG CITI SMALL LETTER ANG
-118AA ; [.3E80.0020.0008] # WARANG CITI CAPITAL LETTER ANG
-118CB ; [.3E81.0020.0002] # WARANG CITI SMALL LETTER GA
-118AB ; [.3E81.0020.0008] # WARANG CITI CAPITAL LETTER GA
-118CC ; [.3E82.0020.0002] # WARANG CITI SMALL LETTER KO
-118AC ; [.3E82.0020.0008] # WARANG CITI CAPITAL LETTER KO
-118CD ; [.3E83.0020.0002] # WARANG CITI SMALL LETTER ENY
-118AD ; [.3E83.0020.0008] # WARANG CITI CAPITAL LETTER ENY
-118CE ; [.3E84.0020.0002] # WARANG CITI SMALL LETTER YUJ
-118AE ; [.3E84.0020.0008] # WARANG CITI CAPITAL LETTER YUJ
-118CF ; [.3E85.0020.0002] # WARANG CITI SMALL LETTER UC
-118AF ; [.3E85.0020.0008] # WARANG CITI CAPITAL LETTER UC
-118D0 ; [.3E86.0020.0002] # WARANG CITI SMALL LETTER ENN
-118B0 ; [.3E86.0020.0008] # WARANG CITI CAPITAL LETTER ENN
-118D1 ; [.3E87.0020.0002] # WARANG CITI SMALL LETTER ODD
-118B1 ; [.3E87.0020.0008] # WARANG CITI CAPITAL LETTER ODD
-118D2 ; [.3E88.0020.0002] # WARANG CITI SMALL LETTER TTE
-118B2 ; [.3E88.0020.0008] # WARANG CITI CAPITAL LETTER TTE
-118D3 ; [.3E89.0020.0002] # WARANG CITI SMALL LETTER NUNG
-118B3 ; [.3E89.0020.0008] # WARANG CITI CAPITAL LETTER NUNG
-118D4 ; [.3E8A.0020.0002] # WARANG CITI SMALL LETTER DA
-118B4 ; [.3E8A.0020.0008] # WARANG CITI CAPITAL LETTER DA
-118D5 ; [.3E8B.0020.0002] # WARANG CITI SMALL LETTER AT
-118B5 ; [.3E8B.0020.0008] # WARANG CITI CAPITAL LETTER AT
-118D6 ; [.3E8C.0020.0002] # WARANG CITI SMALL LETTER AM
-118B6 ; [.3E8C.0020.0008] # WARANG CITI CAPITAL LETTER AM
-118D7 ; [.3E8D.0020.0002] # WARANG CITI SMALL LETTER BU
-118B7 ; [.3E8D.0020.0008] # WARANG CITI CAPITAL LETTER BU
-118D8 ; [.3E8E.0020.0002] # WARANG CITI SMALL LETTER PU
-118B8 ; [.3E8E.0020.0008] # WARANG CITI CAPITAL LETTER PU
-118D9 ; [.3E8F.0020.0002] # WARANG CITI SMALL LETTER HIYO
-118B9 ; [.3E8F.0020.0008] # WARANG CITI CAPITAL LETTER HIYO
-118DA ; [.3E90.0020.0002] # WARANG CITI SMALL LETTER HOLO
-118BA ; [.3E90.0020.0008] # WARANG CITI CAPITAL LETTER HOLO
-118DB ; [.3E91.0020.0002] # WARANG CITI SMALL LETTER HORR
-118BB ; [.3E91.0020.0008] # WARANG CITI CAPITAL LETTER HORR
-118DC ; [.3E92.0020.0002] # WARANG CITI SMALL LETTER HAR
-118BC ; [.3E92.0020.0008] # WARANG CITI CAPITAL LETTER HAR
-118DD ; [.3E93.0020.0002] # WARANG CITI SMALL LETTER SSUU
-118BD ; [.3E93.0020.0008] # WARANG CITI CAPITAL LETTER SSUU
-118DE ; [.3E94.0020.0002] # WARANG CITI SMALL LETTER SII
-118BE ; [.3E94.0020.0008] # WARANG CITI CAPITAL LETTER SII
-118DF ; [.3E95.0020.0002] # WARANG CITI SMALL LETTER VIYO
-118BF ; [.3E95.0020.0008] # WARANG CITI CAPITAL LETTER VIYO
-11AD5 ; [.3E96.0020.0002] # PAU CIN HAU LETTER A
-11AD6 ; [.3E97.0020.0002] # PAU CIN HAU LETTER E
-11AD7 ; [.3E98.0020.0002] # PAU CIN HAU LETTER I
-11AD8 ; [.3E99.0020.0002] # PAU CIN HAU LETTER O
-11AD9 ; [.3E9A.0020.0002] # PAU CIN HAU LETTER U
-11ADA ; [.3E9B.0020.0002] # PAU CIN HAU LETTER UA
-11ADB ; [.3E9C.0020.0002] # PAU CIN HAU LETTER IA
-11AC0 ; [.3E9D.0020.0002] # PAU CIN HAU LETTER PA
-11AC1 ; [.3E9E.0020.0002] # PAU CIN HAU LETTER KA
-11AC2 ; [.3E9F.0020.0002] # PAU CIN HAU LETTER LA
-11AC3 ; [.3EA0.0020.0002] # PAU CIN HAU LETTER MA
-11AC4 ; [.3EA1.0020.0002] # PAU CIN HAU LETTER DA
-11AC5 ; [.3EA2.0020.0002] # PAU CIN HAU LETTER ZA
-11AC6 ; [.3EA3.0020.0002] # PAU CIN HAU LETTER VA
-11AC7 ; [.3EA4.0020.0002] # PAU CIN HAU LETTER NGA
-11AC8 ; [.3EA5.0020.0002] # PAU CIN HAU LETTER HA
-11AC9 ; [.3EA6.0020.0002] # PAU CIN HAU LETTER GA
-11ACA ; [.3EA7.0020.0002] # PAU CIN HAU LETTER KHA
-11ACB ; [.3EA8.0020.0002] # PAU CIN HAU LETTER SA
-11ACC ; [.3EA9.0020.0002] # PAU CIN HAU LETTER BA
-11ACD ; [.3EAA.0020.0002] # PAU CIN HAU LETTER CA
-11ACE ; [.3EAB.0020.0002] # PAU CIN HAU LETTER TA
-11ACF ; [.3EAC.0020.0002] # PAU CIN HAU LETTER THA
-11AD0 ; [.3EAD.0020.0002] # PAU CIN HAU LETTER NA
-11AD1 ; [.3EAE.0020.0002] # PAU CIN HAU LETTER PHA
-11AD2 ; [.3EAF.0020.0002] # PAU CIN HAU LETTER RA
-11AD3 ; [.3EB0.0020.0002] # PAU CIN HAU LETTER FA
-11AD4 ; [.3EB1.0020.0002] # PAU CIN HAU LETTER CHA
-11ADC ; [.3EB2.0020.0002] # PAU CIN HAU LETTER FINAL P
-11ADD ; [.3EB3.0020.0002] # PAU CIN HAU LETTER FINAL K
-11ADF ; [.3EB4.0020.0002] # PAU CIN HAU LETTER FINAL M
-11AE0 ; [.3EB5.0020.0002] # PAU CIN HAU LETTER FINAL N
-11AE1 ; [.3EB6.0020.0002] # PAU CIN HAU LETTER FINAL L
-11AE2 ; [.3EB7.0020.0002] # PAU CIN HAU LETTER FINAL W
-11AE3 ; [.3EB8.0020.0002] # PAU CIN HAU LETTER FINAL NG
-11ADE ; [.3EB9.0020.0002] # PAU CIN HAU LETTER FINAL T
-11AE4 ; [.3EBA.0020.0002] # PAU CIN HAU LETTER FINAL Y
-11AEF ; [.3EBB.0020.0002] # PAU CIN HAU MID-LEVEL TONE
-11AF2 ; [.3EBC.0020.0002] # PAU CIN HAU MID-LEVEL TONE FINAL
-11AF1 ; [.3EBD.0020.0002] # PAU CIN HAU MID-LEVEL TONE LONG FINAL
-11AE6 ; [.3EBE.0020.0002] # PAU CIN HAU RISING TONE
-11AE9 ; [.3EBF.0020.0002] # PAU CIN HAU RISING TONE FINAL
-11AE5 ; [.3EC0.0020.0002] # PAU CIN HAU RISING TONE LONG
-11AE8 ; [.3EC1.0020.0002] # PAU CIN HAU RISING TONE LONG FINAL
-11AF4 ; [.3EC2.0020.0002] # PAU CIN HAU LOW-FALLING TONE
-11AF7 ; [.3EC3.0020.0002] # PAU CIN HAU LOW-FALLING TONE FINAL
-11AF3 ; [.3EC4.0020.0002] # PAU CIN HAU LOW-FALLING TONE LONG
-11AF6 ; [.3EC5.0020.0002] # PAU CIN HAU LOW-FALLING TONE LONG FINAL
-11AEC ; [.3EC6.0020.0002] # PAU CIN HAU SANDHI TONE
-11AEE ; [.3EC7.0020.0002] # PAU CIN HAU SANDHI TONE FINAL
-11AEB ; [.3EC8.0020.0002] # PAU CIN HAU SANDHI TONE LONG
-11AED ; [.3EC9.0020.0002] # PAU CIN HAU SANDHI TONE LONG FINAL
-11AF5 ; [.3ECA.0020.0002] # PAU CIN HAU GLOTTAL STOP
-11AF8 ; [.3ECB.0020.0002] # PAU CIN HAU GLOTTAL STOP FINAL
-11AE7 ; [.3ECC.0020.0002] # PAU CIN HAU SANDHI GLOTTAL STOP
-11AEA ; [.3ECD.0020.0002] # PAU CIN HAU SANDHI GLOTTAL STOP FINAL
-11AF0 ; [.3ECE.0020.0002] # PAU CIN HAU GLOTTAL STOP VARIANT
-16B00 ; [.3ECF.0020.0002] # PAHAWH HMONG VOWEL KEEB
-16B01 ; [.3ED0.0020.0002] # PAHAWH HMONG VOWEL KEEV
-16B02 ; [.3ED1.0020.0002] # PAHAWH HMONG VOWEL KIB
-16B03 ; [.3ED2.0020.0002] # PAHAWH HMONG VOWEL KIV
-16B04 ; [.3ED3.0020.0002] # PAHAWH HMONG VOWEL KAUB
-16B05 ; [.3ED4.0020.0002] # PAHAWH HMONG VOWEL KAUV
-16B06 ; [.3ED5.0020.0002] # PAHAWH HMONG VOWEL KUB
-16B07 ; [.3ED6.0020.0002] # PAHAWH HMONG VOWEL KUV
-16B08 ; [.3ED7.0020.0002] # PAHAWH HMONG VOWEL KEB
-16B09 ; [.3ED8.0020.0002] # PAHAWH HMONG VOWEL KEV
-16B0A ; [.3ED9.0020.0002] # PAHAWH HMONG VOWEL KAIB
-16B0B ; [.3EDA.0020.0002] # PAHAWH HMONG VOWEL KAIV
-16B0C ; [.3EDB.0020.0002] # PAHAWH HMONG VOWEL KOOB
-16B0D ; [.3EDC.0020.0002] # PAHAWH HMONG VOWEL KOOV
-16B0E ; [.3EDD.0020.0002] # PAHAWH HMONG VOWEL KAWB
-16B0F ; [.3EDE.0020.0002] # PAHAWH HMONG VOWEL KAWV
-16B10 ; [.3EDF.0020.0002] # PAHAWH HMONG VOWEL KUAB
-16B11 ; [.3EE0.0020.0002] # PAHAWH HMONG VOWEL KUAV
-16B12 ; [.3EE1.0020.0002] # PAHAWH HMONG VOWEL KOB
-16B13 ; [.3EE2.0020.0002] # PAHAWH HMONG VOWEL KOV
-16B14 ; [.3EE3.0020.0002] # PAHAWH HMONG VOWEL KIAB
-16B15 ; [.3EE4.0020.0002] # PAHAWH HMONG VOWEL KIAV
-16B16 ; [.3EE5.0020.0002] # PAHAWH HMONG VOWEL KAB
-16B17 ; [.3EE6.0020.0002] # PAHAWH HMONG VOWEL KAV
-16B18 ; [.3EE7.0020.0002] # PAHAWH HMONG VOWEL KWB
-16B19 ; [.3EE8.0020.0002] # PAHAWH HMONG VOWEL KWV
-16B1A ; [.3EE9.0020.0002] # PAHAWH HMONG VOWEL KAAB
-16B1B ; [.3EEA.0020.0002] # PAHAWH HMONG VOWEL KAAV
-16B1C ; [.3EEB.0020.0002] # PAHAWH HMONG CONSONANT VAU
-16B1D ; [.3EEC.0020.0002] # PAHAWH HMONG CONSONANT NTSAU
-16B1E ; [.3EED.0020.0002] # PAHAWH HMONG CONSONANT LAU
-16B1F ; [.3EEE.0020.0002] # PAHAWH HMONG CONSONANT HAU
-16B20 ; [.3EEF.0020.0002] # PAHAWH HMONG CONSONANT NLAU
-16B21 ; [.3EF0.0020.0002] # PAHAWH HMONG CONSONANT RAU
-16B22 ; [.3EF1.0020.0002] # PAHAWH HMONG CONSONANT NKAU
-16B23 ; [.3EF2.0020.0002] # PAHAWH HMONG CONSONANT QHAU
-16B24 ; [.3EF3.0020.0002] # PAHAWH HMONG CONSONANT YAU
-16B25 ; [.3EF4.0020.0002] # PAHAWH HMONG CONSONANT HLAU
-16B26 ; [.3EF5.0020.0002] # PAHAWH HMONG CONSONANT MAU
-16B27 ; [.3EF6.0020.0002] # PAHAWH HMONG CONSONANT CHAU
-16B28 ; [.3EF7.0020.0002] # PAHAWH HMONG CONSONANT NCHAU
-16B29 ; [.3EF8.0020.0002] # PAHAWH HMONG CONSONANT HNAU
-16B2A ; [.3EF9.0020.0002] # PAHAWH HMONG CONSONANT PLHAU
-16B2B ; [.3EFA.0020.0002] # PAHAWH HMONG CONSONANT NTHAU
-16B2C ; [.3EFB.0020.0002] # PAHAWH HMONG CONSONANT NAU
-16B2D ; [.3EFC.0020.0002] # PAHAWH HMONG CONSONANT AU
-16B2E ; [.3EFD.0020.0002] # PAHAWH HMONG CONSONANT XAU
-16B2F ; [.3EFE.0020.0002] # PAHAWH HMONG CONSONANT CAU
-16B40 ; [.3EFF.0020.0002] # PAHAWH HMONG SIGN VOS SEEV
-16B41 ; [.3F00.0020.0002] # PAHAWH HMONG SIGN MEEJ SUAB
-16B63 ; [.3F01.0020.0002] # PAHAWH HMONG SIGN VOS LUB
-16B64 ; [.3F02.0020.0002] # PAHAWH HMONG SIGN XYOO
-16B65 ; [.3F03.0020.0002] # PAHAWH HMONG SIGN HLI
-16B66 ; [.3F04.0020.0002] # PAHAWH HMONG SIGN THIRD-STAGE HLI
-16B67 ; [.3F05.0020.0002] # PAHAWH HMONG SIGN ZWJ THAJ
-16B68 ; [.3F06.0020.0002] # PAHAWH HMONG SIGN HNUB
-16B69 ; [.3F07.0020.0002] # PAHAWH HMONG SIGN NQIG
-16B6A ; [.3F08.0020.0002] # PAHAWH HMONG SIGN XIAB
-16B6B ; [.3F09.0020.0002] # PAHAWH HMONG SIGN NTUJ
-16B6C ; [.3F0A.0020.0002] # PAHAWH HMONG SIGN AV
-16B6D ; [.3F0B.0020.0002] # PAHAWH HMONG SIGN TXHEEJ CEEV
-16B6E ; [.3F0C.0020.0002] # PAHAWH HMONG SIGN MEEJ TSEEB
-16B6F ; [.3F0D.0020.0002] # PAHAWH HMONG SIGN TAU
-16B70 ; [.3F0E.0020.0002] # PAHAWH HMONG SIGN LOS
-16B71 ; [.3F0F.0020.0002] # PAHAWH HMONG SIGN MUS
-16B72 ; [.3F10.0020.0002] # PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG
-16B73 ; [.3F11.0020.0002] # PAHAWH HMONG SIGN CIM CUAM TSHOOJ
-16B74 ; [.3F12.0020.0002] # PAHAWH HMONG SIGN CIM TXWV
-16B75 ; [.3F13.0020.0002] # PAHAWH HMONG SIGN CIM TXWV CHWV
-16B76 ; [.3F14.0020.0002] # PAHAWH HMONG SIGN CIM PUB DAWB
-16B77 ; [.3F15.0020.0002] # PAHAWH HMONG SIGN CIM NRES TOS
-16B7D ; [.3F16.0020.0002] # PAHAWH HMONG CLAN SIGN TSHEEJ
-16B7E ; [.3F17.0020.0002] # PAHAWH HMONG CLAN SIGN YEEG
-16B7F ; [.3F18.0020.0002] # PAHAWH HMONG CLAN SIGN LIS
-16B80 ; [.3F19.0020.0002] # PAHAWH HMONG CLAN SIGN LAUJ
-16B81 ; [.3F1A.0020.0002] # PAHAWH HMONG CLAN SIGN XYOOJ
-16B82 ; [.3F1B.0020.0002] # PAHAWH HMONG CLAN SIGN KOO
-16B83 ; [.3F1C.0020.0002] # PAHAWH HMONG CLAN SIGN HAWJ
-16B84 ; [.3F1D.0020.0002] # PAHAWH HMONG CLAN SIGN MUAS
-16B85 ; [.3F1E.0020.0002] # PAHAWH HMONG CLAN SIGN THOJ
-16B86 ; [.3F1F.0020.0002] # PAHAWH HMONG CLAN SIGN TSAB
-16B87 ; [.3F20.0020.0002] # PAHAWH HMONG CLAN SIGN PHAB
-16B88 ; [.3F21.0020.0002] # PAHAWH HMONG CLAN SIGN KHAB
-16B89 ; [.3F22.0020.0002] # PAHAWH HMONG CLAN SIGN HAM
-16B8A ; [.3F23.0020.0002] # PAHAWH HMONG CLAN SIGN VAJ
-16B8B ; [.3F24.0020.0002] # PAHAWH HMONG CLAN SIGN FAJ
-16B8C ; [.3F25.0020.0002] # PAHAWH HMONG CLAN SIGN YAJ
-16B8D ; [.3F26.0020.0002] # PAHAWH HMONG CLAN SIGN TSWB
-16B8E ; [.3F27.0020.0002] # PAHAWH HMONG CLAN SIGN KWM
-16B8F ; [.3F28.0020.0002] # PAHAWH HMONG CLAN SIGN VWJ
-10280 ; [.3F29.0020.0002] # LYCIAN LETTER A
-10281 ; [.3F2A.0020.0002] # LYCIAN LETTER E
-10282 ; [.3F2B.0020.0002] # LYCIAN LETTER B
-10283 ; [.3F2C.0020.0002] # LYCIAN LETTER BH
-10284 ; [.3F2D.0020.0002] # LYCIAN LETTER G
-10285 ; [.3F2E.0020.0002] # LYCIAN LETTER D
-10286 ; [.3F2F.0020.0002] # LYCIAN LETTER I
-10287 ; [.3F30.0020.0002] # LYCIAN LETTER W
-10288 ; [.3F31.0020.0002] # LYCIAN LETTER Z
-10289 ; [.3F32.0020.0002] # LYCIAN LETTER TH
-1028A ; [.3F33.0020.0002] # LYCIAN LETTER J
-1028B ; [.3F34.0020.0002] # LYCIAN LETTER K
-1028C ; [.3F35.0020.0002] # LYCIAN LETTER Q
-1028D ; [.3F36.0020.0002] # LYCIAN LETTER L
-1028E ; [.3F37.0020.0002] # LYCIAN LETTER M
-1028F ; [.3F38.0020.0002] # LYCIAN LETTER N
-10290 ; [.3F39.0020.0002] # LYCIAN LETTER MM
-10291 ; [.3F3A.0020.0002] # LYCIAN LETTER NN
-10292 ; [.3F3B.0020.0002] # LYCIAN LETTER U
-10293 ; [.3F3C.0020.0002] # LYCIAN LETTER P
-10294 ; [.3F3D.0020.0002] # LYCIAN LETTER KK
-10295 ; [.3F3E.0020.0002] # LYCIAN LETTER R
-10296 ; [.3F3F.0020.0002] # LYCIAN LETTER S
-10297 ; [.3F40.0020.0002] # LYCIAN LETTER T
-10298 ; [.3F41.0020.0002] # LYCIAN LETTER TT
-10299 ; [.3F42.0020.0002] # LYCIAN LETTER AN
-1029A ; [.3F43.0020.0002] # LYCIAN LETTER EN
-1029B ; [.3F44.0020.0002] # LYCIAN LETTER H
-1029C ; [.3F45.0020.0002] # LYCIAN LETTER X
-102A0 ; [.3F46.0020.0002] # CARIAN LETTER A
-102A1 ; [.3F47.0020.0002] # CARIAN LETTER P2
-102A2 ; [.3F48.0020.0002] # CARIAN LETTER D
-102A3 ; [.3F49.0020.0002] # CARIAN LETTER L
-102A4 ; [.3F4A.0020.0002] # CARIAN LETTER UUU
-102A5 ; [.3F4B.0020.0002] # CARIAN LETTER R
-102A6 ; [.3F4C.0020.0002] # CARIAN LETTER LD
-102A7 ; [.3F4D.0020.0002] # CARIAN LETTER A2
-102A8 ; [.3F4E.0020.0002] # CARIAN LETTER Q
-102A9 ; [.3F4F.0020.0002] # CARIAN LETTER B
-102AA ; [.3F50.0020.0002] # CARIAN LETTER M
-102AB ; [.3F51.0020.0002] # CARIAN LETTER O
-102AC ; [.3F52.0020.0002] # CARIAN LETTER D2
-102AD ; [.3F53.0020.0002] # CARIAN LETTER T
-102AE ; [.3F54.0020.0002] # CARIAN LETTER SH
-102AF ; [.3F55.0020.0002] # CARIAN LETTER SH2
-102B0 ; [.3F56.0020.0002] # CARIAN LETTER S
-102B1 ; [.3F57.0020.0002] # CARIAN LETTER C-18
-102B2 ; [.3F58.0020.0002] # CARIAN LETTER U
-102B3 ; [.3F59.0020.0002] # CARIAN LETTER NN
-102B4 ; [.3F5A.0020.0002] # CARIAN LETTER X
-102B5 ; [.3F5B.0020.0002] # CARIAN LETTER N
-102B6 ; [.3F5C.0020.0002] # CARIAN LETTER TT2
-102B7 ; [.3F5D.0020.0002] # CARIAN LETTER P
-102B8 ; [.3F5E.0020.0002] # CARIAN LETTER SS
-102B9 ; [.3F5F.0020.0002] # CARIAN LETTER I
-102BA ; [.3F60.0020.0002] # CARIAN LETTER E
-102BB ; [.3F61.0020.0002] # CARIAN LETTER UUUU
-102BC ; [.3F62.0020.0002] # CARIAN LETTER K
-102BD ; [.3F63.0020.0002] # CARIAN LETTER K2
-102BE ; [.3F64.0020.0002] # CARIAN LETTER ND
-102BF ; [.3F65.0020.0002] # CARIAN LETTER UU
-102C0 ; [.3F66.0020.0002] # CARIAN LETTER G
-102C1 ; [.3F67.0020.0002] # CARIAN LETTER G2
-102C2 ; [.3F68.0020.0002] # CARIAN LETTER ST
-102C3 ; [.3F69.0020.0002] # CARIAN LETTER ST2
-102C4 ; [.3F6A.0020.0002] # CARIAN LETTER NG
-102C5 ; [.3F6B.0020.0002] # CARIAN LETTER II
-102C6 ; [.3F6C.0020.0002] # CARIAN LETTER C-39
-102C7 ; [.3F6D.0020.0002] # CARIAN LETTER TT
-102C8 ; [.3F6E.0020.0002] # CARIAN LETTER UUU2
-102C9 ; [.3F6F.0020.0002] # CARIAN LETTER RR
-102CA ; [.3F70.0020.0002] # CARIAN LETTER MB
-102CB ; [.3F71.0020.0002] # CARIAN LETTER MB2
-102CC ; [.3F72.0020.0002] # CARIAN LETTER MB3
-102CD ; [.3F73.0020.0002] # CARIAN LETTER MB4
-102CE ; [.3F74.0020.0002] # CARIAN LETTER LD2
-102CF ; [.3F75.0020.0002] # CARIAN LETTER E2
-102D0 ; [.3F76.0020.0002] # CARIAN LETTER UUU3
-10920 ; [.3F77.0020.0002] # LYDIAN LETTER A
-10921 ; [.3F78.0020.0002] # LYDIAN LETTER B
-10922 ; [.3F79.0020.0002] # LYDIAN LETTER G
-10923 ; [.3F7A.0020.0002] # LYDIAN LETTER D
-10924 ; [.3F7B.0020.0002] # LYDIAN LETTER E
-10925 ; [.3F7C.0020.0002] # LYDIAN LETTER V
-10926 ; [.3F7D.0020.0002] # LYDIAN LETTER I
-10927 ; [.3F7E.0020.0002] # LYDIAN LETTER Y
-10928 ; [.3F7F.0020.0002] # LYDIAN LETTER K
-10929 ; [.3F80.0020.0002] # LYDIAN LETTER L
-1092A ; [.3F81.0020.0002] # LYDIAN LETTER M
-1092B ; [.3F82.0020.0002] # LYDIAN LETTER N
-1092C ; [.3F83.0020.0002] # LYDIAN LETTER O
-1092D ; [.3F84.0020.0002] # LYDIAN LETTER R
-1092E ; [.3F85.0020.0002] # LYDIAN LETTER SS
-1092F ; [.3F86.0020.0002] # LYDIAN LETTER T
-10930 ; [.3F87.0020.0002] # LYDIAN LETTER U
-10931 ; [.3F88.0020.0002] # LYDIAN LETTER F
-10932 ; [.3F89.0020.0002] # LYDIAN LETTER Q
-10933 ; [.3F8A.0020.0002] # LYDIAN LETTER S
-10934 ; [.3F8B.0020.0002] # LYDIAN LETTER TT
-10935 ; [.3F8C.0020.0002] # LYDIAN LETTER AN
-10936 ; [.3F8D.0020.0002] # LYDIAN LETTER EN
-10937 ; [.3F8E.0020.0002] # LYDIAN LETTER LY
-10938 ; [.3F8F.0020.0002] # LYDIAN LETTER NN
-10939 ; [.3F90.0020.0002] # LYDIAN LETTER C
-10300 ; [.3F91.0020.0002] # OLD ITALIC LETTER A
-10301 ; [.3F92.0020.0002] # OLD ITALIC LETTER BE
-10302 ; [.3F93.0020.0002] # OLD ITALIC LETTER KE
-10303 ; [.3F94.0020.0002] # OLD ITALIC LETTER DE
-10304 ; [.3F95.0020.0002] # OLD ITALIC LETTER E
-10305 ; [.3F96.0020.0002] # OLD ITALIC LETTER VE
-10306 ; [.3F97.0020.0002] # OLD ITALIC LETTER ZE
-10307 ; [.3F98.0020.0002] # OLD ITALIC LETTER HE
-10308 ; [.3F99.0020.0002] # OLD ITALIC LETTER THE
-10309 ; [.3F9A.0020.0002] # OLD ITALIC LETTER I
-1030A ; [.3F9B.0020.0002] # OLD ITALIC LETTER KA
-1030B ; [.3F9C.0020.0002] # OLD ITALIC LETTER EL
-1030C ; [.3F9D.0020.0002] # OLD ITALIC LETTER EM
-1030D ; [.3F9E.0020.0002] # OLD ITALIC LETTER EN
-1030E ; [.3F9F.0020.0002] # OLD ITALIC LETTER ESH
-1031F ; [.3FA0.0020.0002] # OLD ITALIC LETTER ESS
-1030F ; [.3FA1.0020.0002] # OLD ITALIC LETTER O
-10310 ; [.3FA2.0020.0002] # OLD ITALIC LETTER PE
-10311 ; [.3FA3.0020.0002] # OLD ITALIC LETTER SHE
-10312 ; [.3FA4.0020.0002] # OLD ITALIC LETTER KU
-10313 ; [.3FA5.0020.0002] # OLD ITALIC LETTER ER
-10314 ; [.3FA6.0020.0002] # OLD ITALIC LETTER ES
-10315 ; [.3FA7.0020.0002] # OLD ITALIC LETTER TE
-10316 ; [.3FA8.0020.0002] # OLD ITALIC LETTER U
-10317 ; [.3FA9.0020.0002] # OLD ITALIC LETTER EKS
-10318 ; [.3FAA.0020.0002] # OLD ITALIC LETTER PHE
-10319 ; [.3FAB.0020.0002] # OLD ITALIC LETTER KHE
-1031A ; [.3FAC.0020.0002] # OLD ITALIC LETTER EF
-1031B ; [.3FAD.0020.0002] # OLD ITALIC LETTER ERS
-1031C ; [.3FAE.0020.0002] # OLD ITALIC LETTER CHE
-1031D ; [.3FAF.0020.0002] # OLD ITALIC LETTER II
-1031E ; [.3FB0.0020.0002] # OLD ITALIC LETTER UU
-10330 ; [.3FB1.0020.0002] # GOTHIC LETTER AHSA
-10331 ; [.3FB2.0020.0002] # GOTHIC LETTER BAIRKAN
-10332 ; [.3FB3.0020.0002] # GOTHIC LETTER GIBA
-10333 ; [.3FB4.0020.0002] # GOTHIC LETTER DAGS
-10334 ; [.3FB5.0020.0002] # GOTHIC LETTER AIHVUS
-10335 ; [.3FB6.0020.0002] # GOTHIC LETTER QAIRTHRA
-10336 ; [.3FB7.0020.0002] # GOTHIC LETTER IUJA
-10337 ; [.3FB8.0020.0002] # GOTHIC LETTER HAGL
-10338 ; [.3FB9.0020.0002] # GOTHIC LETTER THIUTH
-10339 ; [.3FBA.0020.0002] # GOTHIC LETTER EIS
-1033A ; [.3FBB.0020.0002] # GOTHIC LETTER KUSMA
-1033B ; [.3FBC.0020.0002] # GOTHIC LETTER LAGUS
-1033C ; [.3FBD.0020.0002] # GOTHIC LETTER MANNA
-1033D ; [.3FBE.0020.0002] # GOTHIC LETTER NAUTHS
-1033E ; [.3FBF.0020.0002] # GOTHIC LETTER JER
-1033F ; [.3FC0.0020.0002] # GOTHIC LETTER URUS
-10340 ; [.3FC1.0020.0002] # GOTHIC LETTER PAIRTHRA
-10341 ; [.3FC2.0020.0002] # GOTHIC LETTER NINETY
-10342 ; [.3FC3.0020.0002] # GOTHIC LETTER RAIDA
-10343 ; [.3FC4.0020.0002] # GOTHIC LETTER SAUIL
-10344 ; [.3FC5.0020.0002] # GOTHIC LETTER TEIWS
-10345 ; [.3FC6.0020.0002] # GOTHIC LETTER WINJA
-10346 ; [.3FC7.0020.0002] # GOTHIC LETTER FAIHU
-10347 ; [.3FC8.0020.0002] # GOTHIC LETTER IGGWS
-10348 ; [.3FC9.0020.0002] # GOTHIC LETTER HWAIR
-10349 ; [.3FCA.0020.0002] # GOTHIC LETTER OTHAL
-1034A ; [.3FCB.0020.0002] # GOTHIC LETTER NINE HUNDRED
-10428 ; [.3FCC.0020.0002] # DESERET SMALL LETTER LONG I
-10400 ; [.3FCC.0020.0008] # DESERET CAPITAL LETTER LONG I
-10429 ; [.3FCD.0020.0002] # DESERET SMALL LETTER LONG E
-10401 ; [.3FCD.0020.0008] # DESERET CAPITAL LETTER LONG E
-1042A ; [.3FCE.0020.0002] # DESERET SMALL LETTER LONG A
-10402 ; [.3FCE.0020.0008] # DESERET CAPITAL LETTER LONG A
-1042B ; [.3FCF.0020.0002] # DESERET SMALL LETTER LONG AH
-10403 ; [.3FCF.0020.0008] # DESERET CAPITAL LETTER LONG AH
-1042C ; [.3FD0.0020.0002] # DESERET SMALL LETTER LONG O
-10404 ; [.3FD0.0020.0008] # DESERET CAPITAL LETTER LONG O
-1042D ; [.3FD1.0020.0002] # DESERET SMALL LETTER LONG OO
-10405 ; [.3FD1.0020.0008] # DESERET CAPITAL LETTER LONG OO
-1042E ; [.3FD2.0020.0002] # DESERET SMALL LETTER SHORT I
-10406 ; [.3FD2.0020.0008] # DESERET CAPITAL LETTER SHORT I
-1042F ; [.3FD3.0020.0002] # DESERET SMALL LETTER SHORT E
-10407 ; [.3FD3.0020.0008] # DESERET CAPITAL LETTER SHORT E
-10430 ; [.3FD4.0020.0002] # DESERET SMALL LETTER SHORT A
-10408 ; [.3FD4.0020.0008] # DESERET CAPITAL LETTER SHORT A
-10431 ; [.3FD5.0020.0002] # DESERET SMALL LETTER SHORT AH
-10409 ; [.3FD5.0020.0008] # DESERET CAPITAL LETTER SHORT AH
-10432 ; [.3FD6.0020.0002] # DESERET SMALL LETTER SHORT O
-1040A ; [.3FD6.0020.0008] # DESERET CAPITAL LETTER SHORT O
-10433 ; [.3FD7.0020.0002] # DESERET SMALL LETTER SHORT OO
-1040B ; [.3FD7.0020.0008] # DESERET CAPITAL LETTER SHORT OO
-10434 ; [.3FD8.0020.0002] # DESERET SMALL LETTER AY
-1040C ; [.3FD8.0020.0008] # DESERET CAPITAL LETTER AY
-10435 ; [.3FD9.0020.0002] # DESERET SMALL LETTER OW
-1040D ; [.3FD9.0020.0008] # DESERET CAPITAL LETTER OW
-10436 ; [.3FDA.0020.0002] # DESERET SMALL LETTER WU
-1040E ; [.3FDA.0020.0008] # DESERET CAPITAL LETTER WU
-10437 ; [.3FDB.0020.0002] # DESERET SMALL LETTER YEE
-1040F ; [.3FDB.0020.0008] # DESERET CAPITAL LETTER YEE
-10438 ; [.3FDC.0020.0002] # DESERET SMALL LETTER H
-10410 ; [.3FDC.0020.0008] # DESERET CAPITAL LETTER H
-10439 ; [.3FDD.0020.0002] # DESERET SMALL LETTER PEE
-10411 ; [.3FDD.0020.0008] # DESERET CAPITAL LETTER PEE
-1043A ; [.3FDE.0020.0002] # DESERET SMALL LETTER BEE
-10412 ; [.3FDE.0020.0008] # DESERET CAPITAL LETTER BEE
-1043B ; [.3FDF.0020.0002] # DESERET SMALL LETTER TEE
-10413 ; [.3FDF.0020.0008] # DESERET CAPITAL LETTER TEE
-1043C ; [.3FE0.0020.0002] # DESERET SMALL LETTER DEE
-10414 ; [.3FE0.0020.0008] # DESERET CAPITAL LETTER DEE
-1043D ; [.3FE1.0020.0002] # DESERET SMALL LETTER CHEE
-10415 ; [.3FE1.0020.0008] # DESERET CAPITAL LETTER CHEE
-1043E ; [.3FE2.0020.0002] # DESERET SMALL LETTER JEE
-10416 ; [.3FE2.0020.0008] # DESERET CAPITAL LETTER JEE
-1043F ; [.3FE3.0020.0002] # DESERET SMALL LETTER KAY
-10417 ; [.3FE3.0020.0008] # DESERET CAPITAL LETTER KAY
-10440 ; [.3FE4.0020.0002] # DESERET SMALL LETTER GAY
-10418 ; [.3FE4.0020.0008] # DESERET CAPITAL LETTER GAY
-10441 ; [.3FE5.0020.0002] # DESERET SMALL LETTER EF
-10419 ; [.3FE5.0020.0008] # DESERET CAPITAL LETTER EF
-10442 ; [.3FE6.0020.0002] # DESERET SMALL LETTER VEE
-1041A ; [.3FE6.0020.0008] # DESERET CAPITAL LETTER VEE
-10443 ; [.3FE7.0020.0002] # DESERET SMALL LETTER ETH
-1041B ; [.3FE7.0020.0008] # DESERET CAPITAL LETTER ETH
-10444 ; [.3FE8.0020.0002] # DESERET SMALL LETTER THEE
-1041C ; [.3FE8.0020.0008] # DESERET CAPITAL LETTER THEE
-10445 ; [.3FE9.0020.0002] # DESERET SMALL LETTER ES
-1041D ; [.3FE9.0020.0008] # DESERET CAPITAL LETTER ES
-10446 ; [.3FEA.0020.0002] # DESERET SMALL LETTER ZEE
-1041E ; [.3FEA.0020.0008] # DESERET CAPITAL LETTER ZEE
-10447 ; [.3FEB.0020.0002] # DESERET SMALL LETTER ESH
-1041F ; [.3FEB.0020.0008] # DESERET CAPITAL LETTER ESH
-10448 ; [.3FEC.0020.0002] # DESERET SMALL LETTER ZHEE
-10420 ; [.3FEC.0020.0008] # DESERET CAPITAL LETTER ZHEE
-10449 ; [.3FED.0020.0002] # DESERET SMALL LETTER ER
-10421 ; [.3FED.0020.0008] # DESERET CAPITAL LETTER ER
-1044A ; [.3FEE.0020.0002] # DESERET SMALL LETTER EL
-10422 ; [.3FEE.0020.0008] # DESERET CAPITAL LETTER EL
-1044B ; [.3FEF.0020.0002] # DESERET SMALL LETTER EM
-10423 ; [.3FEF.0020.0008] # DESERET CAPITAL LETTER EM
-1044C ; [.3FF0.0020.0002] # DESERET SMALL LETTER EN
-10424 ; [.3FF0.0020.0008] # DESERET CAPITAL LETTER EN
-1044D ; [.3FF1.0020.0002] # DESERET SMALL LETTER ENG
-10425 ; [.3FF1.0020.0008] # DESERET CAPITAL LETTER ENG
-1044E ; [.3FF2.0020.0002] # DESERET SMALL LETTER OI
-10426 ; [.3FF2.0020.0008] # DESERET CAPITAL LETTER OI
-1044F ; [.3FF3.0020.0002] # DESERET SMALL LETTER EW
-10427 ; [.3FF3.0020.0008] # DESERET CAPITAL LETTER EW
-10450 ; [.3FF4.0020.0002] # SHAVIAN LETTER PEEP
-10451 ; [.3FF5.0020.0002] # SHAVIAN LETTER TOT
-10452 ; [.3FF6.0020.0002] # SHAVIAN LETTER KICK
-10453 ; [.3FF7.0020.0002] # SHAVIAN LETTER FEE
-10454 ; [.3FF8.0020.0002] # SHAVIAN LETTER THIGH
-10455 ; [.3FF9.0020.0002] # SHAVIAN LETTER SO
-10456 ; [.3FFA.0020.0002] # SHAVIAN LETTER SURE
-10457 ; [.3FFB.0020.0002] # SHAVIAN LETTER CHURCH
-10458 ; [.3FFC.0020.0002] # SHAVIAN LETTER YEA
-10459 ; [.3FFD.0020.0002] # SHAVIAN LETTER HUNG
-1045A ; [.3FFE.0020.0002] # SHAVIAN LETTER BIB
-1045B ; [.3FFF.0020.0002] # SHAVIAN LETTER DEAD
-1045C ; [.4000.0020.0002] # SHAVIAN LETTER GAG
-1045D ; [.4001.0020.0002] # SHAVIAN LETTER VOW
-1045E ; [.4002.0020.0002] # SHAVIAN LETTER THEY
-1045F ; [.4003.0020.0002] # SHAVIAN LETTER ZOO
-10460 ; [.4004.0020.0002] # SHAVIAN LETTER MEASURE
-10461 ; [.4005.0020.0002] # SHAVIAN LETTER JUDGE
-10462 ; [.4006.0020.0002] # SHAVIAN LETTER WOE
-10463 ; [.4007.0020.0002] # SHAVIAN LETTER HA-HA
-10464 ; [.4008.0020.0002] # SHAVIAN LETTER LOLL
-10465 ; [.4009.0020.0002] # SHAVIAN LETTER MIME
-10466 ; [.400A.0020.0002] # SHAVIAN LETTER IF
-10467 ; [.400B.0020.0002] # SHAVIAN LETTER EGG
-10468 ; [.400C.0020.0002] # SHAVIAN LETTER ASH
-10469 ; [.400D.0020.0002] # SHAVIAN LETTER ADO
-1046A ; [.400E.0020.0002] # SHAVIAN LETTER ON
-1046B ; [.400F.0020.0002] # SHAVIAN LETTER WOOL
-1046C ; [.4010.0020.0002] # SHAVIAN LETTER OUT
-1046D ; [.4011.0020.0002] # SHAVIAN LETTER AH
-1046E ; [.4012.0020.0002] # SHAVIAN LETTER ROAR
-1046F ; [.4013.0020.0002] # SHAVIAN LETTER NUN
-10470 ; [.4014.0020.0002] # SHAVIAN LETTER EAT
-10471 ; [.4015.0020.0002] # SHAVIAN LETTER AGE
-10472 ; [.4016.0020.0002] # SHAVIAN LETTER ICE
-10473 ; [.4017.0020.0002] # SHAVIAN LETTER UP
-10474 ; [.4018.0020.0002] # SHAVIAN LETTER OAK
-10475 ; [.4019.0020.0002] # SHAVIAN LETTER OOZE
-10476 ; [.401A.0020.0002] # SHAVIAN LETTER OIL
-10477 ; [.401B.0020.0002] # SHAVIAN LETTER AWE
-10478 ; [.401C.0020.0002] # SHAVIAN LETTER ARE
-10479 ; [.401D.0020.0002] # SHAVIAN LETTER OR
-1047A ; [.401E.0020.0002] # SHAVIAN LETTER AIR
-1047B ; [.401F.0020.0002] # SHAVIAN LETTER ERR
-1047C ; [.4020.0020.0002] # SHAVIAN LETTER ARRAY
-1047D ; [.4021.0020.0002] # SHAVIAN LETTER EAR
-1047E ; [.4022.0020.0002] # SHAVIAN LETTER IAN
-1047F ; [.4023.0020.0002] # SHAVIAN LETTER YEW
-1BC00 ; [.4024.0020.0002] # DUPLOYAN LETTER H
-1BC01 ; [.4025.0020.0002] # DUPLOYAN LETTER X
-1BC02 ; [.4026.0020.0002] # DUPLOYAN LETTER P
-1BC03 ; [.4027.0020.0002] # DUPLOYAN LETTER T
-1BC04 ; [.4028.0020.0002] # DUPLOYAN LETTER F
-1BC05 ; [.4029.0020.0002] # DUPLOYAN LETTER K
-1BC06 ; [.402A.0020.0002] # DUPLOYAN LETTER L
-1BC07 ; [.402B.0020.0002] # DUPLOYAN LETTER B
-1BC08 ; [.402C.0020.0002] # DUPLOYAN LETTER D
-1BC09 ; [.402D.0020.0002] # DUPLOYAN LETTER V
-1BC0A ; [.402E.0020.0002] # DUPLOYAN LETTER G
-1BC0B ; [.402F.0020.0002] # DUPLOYAN LETTER R
-1BC0C ; [.4030.0020.0002] # DUPLOYAN LETTER P N
-1BC0D ; [.4031.0020.0002] # DUPLOYAN LETTER D S
-1BC0E ; [.4032.0020.0002] # DUPLOYAN LETTER F N
-1BC0F ; [.4033.0020.0002] # DUPLOYAN LETTER K M
-1BC10 ; [.4034.0020.0002] # DUPLOYAN LETTER R S
-1BC11 ; [.4035.0020.0002] # DUPLOYAN LETTER TH
-1BC12 ; [.4036.0020.0002] # DUPLOYAN LETTER SLOAN DH
-1BC13 ; [.4037.0020.0002] # DUPLOYAN LETTER DH
-1BC14 ; [.4038.0020.0002] # DUPLOYAN LETTER KK
-1BC15 ; [.4039.0020.0002] # DUPLOYAN LETTER SLOAN J
-1BC16 ; [.403A.0020.0002] # DUPLOYAN LETTER HL
-1BC17 ; [.403B.0020.0002] # DUPLOYAN LETTER LH
-1BC18 ; [.403C.0020.0002] # DUPLOYAN LETTER RH
-1BC19 ; [.403D.0020.0002] # DUPLOYAN LETTER M
-1BC1A ; [.403E.0020.0002] # DUPLOYAN LETTER N
-1BC1B ; [.403F.0020.0002] # DUPLOYAN LETTER J
-1BC1C ; [.4040.0020.0002] # DUPLOYAN LETTER S
-1BC1D ; [.4041.0020.0002] # DUPLOYAN LETTER M N
-1BC1E ; [.4042.0020.0002] # DUPLOYAN LETTER N M
-1BC1F ; [.4043.0020.0002] # DUPLOYAN LETTER J M
-1BC20 ; [.4044.0020.0002] # DUPLOYAN LETTER S J
-1BC21 ; [.4045.0020.0002] # DUPLOYAN LETTER M WITH DOT
-1BC22 ; [.4046.0020.0002] # DUPLOYAN LETTER N WITH DOT
-1BC23 ; [.4047.0020.0002] # DUPLOYAN LETTER J WITH DOT
-1BC24 ; [.4048.0020.0002] # DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE
-1BC25 ; [.4049.0020.0002] # DUPLOYAN LETTER S WITH DOT
-1BC26 ; [.404A.0020.0002] # DUPLOYAN LETTER S WITH DOT BELOW
-1BC27 ; [.404B.0020.0002] # DUPLOYAN LETTER M S
-1BC28 ; [.404C.0020.0002] # DUPLOYAN LETTER N S
-1BC29 ; [.404D.0020.0002] # DUPLOYAN LETTER J S
-1BC2A ; [.404E.0020.0002] # DUPLOYAN LETTER S S
-1BC2B ; [.404F.0020.0002] # DUPLOYAN LETTER M N S
-1BC2C ; [.4050.0020.0002] # DUPLOYAN LETTER N M S
-1BC2D ; [.4051.0020.0002] # DUPLOYAN LETTER J M S
-1BC2E ; [.4052.0020.0002] # DUPLOYAN LETTER S J S
-1BC2F ; [.4053.0020.0002] # DUPLOYAN LETTER J S WITH DOT
-1BC30 ; [.4054.0020.0002] # DUPLOYAN LETTER J N
-1BC31 ; [.4055.0020.0002] # DUPLOYAN LETTER J N S
-1BC32 ; [.4056.0020.0002] # DUPLOYAN LETTER S T
-1BC33 ; [.4057.0020.0002] # DUPLOYAN LETTER S T R
-1BC34 ; [.4058.0020.0002] # DUPLOYAN LETTER S P
-1BC35 ; [.4059.0020.0002] # DUPLOYAN LETTER S P R
-1BC36 ; [.405A.0020.0002] # DUPLOYAN LETTER T S
-1BC37 ; [.405B.0020.0002] # DUPLOYAN LETTER T R S
-1BC38 ; [.405C.0020.0002] # DUPLOYAN LETTER W
-1BC39 ; [.405D.0020.0002] # DUPLOYAN LETTER WH
-1BC3A ; [.405E.0020.0002] # DUPLOYAN LETTER W R
-1BC3B ; [.405F.0020.0002] # DUPLOYAN LETTER S N
-1BC3C ; [.4060.0020.0002] # DUPLOYAN LETTER S M
-1BC3D ; [.4061.0020.0002] # DUPLOYAN LETTER K R S
-1BC3E ; [.4062.0020.0002] # DUPLOYAN LETTER G R S
-1BC3F ; [.4063.0020.0002] # DUPLOYAN LETTER S K
-1BC40 ; [.4064.0020.0002] # DUPLOYAN LETTER S K R
-1BC41 ; [.4065.0020.0002] # DUPLOYAN LETTER A
-1BC42 ; [.4066.0020.0002] # DUPLOYAN LETTER SLOAN OW
-1BC43 ; [.4067.0020.0002] # DUPLOYAN LETTER OA
-1BC44 ; [.4068.0020.0002] # DUPLOYAN LETTER O
-1BC45 ; [.4069.0020.0002] # DUPLOYAN LETTER AOU
-1BC46 ; [.406A.0020.0002] # DUPLOYAN LETTER I
-1BC47 ; [.406B.0020.0002] # DUPLOYAN LETTER E
-1BC48 ; [.406C.0020.0002] # DUPLOYAN LETTER IE
-1BC49 ; [.406D.0020.0002] # DUPLOYAN LETTER SHORT I
-1BC4A ; [.406E.0020.0002] # DUPLOYAN LETTER UI
-1BC4B ; [.406F.0020.0002] # DUPLOYAN LETTER EE
-1BC4C ; [.4070.0020.0002] # DUPLOYAN LETTER SLOAN EH
-1BC4D ; [.4071.0020.0002] # DUPLOYAN LETTER ROMANIAN I
-1BC4E ; [.4072.0020.0002] # DUPLOYAN LETTER SLOAN EE
-1BC4F ; [.4073.0020.0002] # DUPLOYAN LETTER LONG I
-1BC50 ; [.4074.0020.0002] # DUPLOYAN LETTER YE
-1BC51 ; [.4075.0020.0002] # DUPLOYAN LETTER U
-1BC52 ; [.4076.0020.0002] # DUPLOYAN LETTER EU
-1BC53 ; [.4077.0020.0002] # DUPLOYAN LETTER XW
-1BC54 ; [.4078.0020.0002] # DUPLOYAN LETTER U N
-1BC55 ; [.4079.0020.0002] # DUPLOYAN LETTER LONG U
-1BC56 ; [.407A.0020.0002] # DUPLOYAN LETTER ROMANIAN U
-1BC57 ; [.407B.0020.0002] # DUPLOYAN LETTER UH
-1BC58 ; [.407C.0020.0002] # DUPLOYAN LETTER SLOAN U
-1BC59 ; [.407D.0020.0002] # DUPLOYAN LETTER OOH
-1BC5A ; [.407E.0020.0002] # DUPLOYAN LETTER OW
-1BC5B ; [.407F.0020.0002] # DUPLOYAN LETTER OU
-1BC5C ; [.4080.0020.0002] # DUPLOYAN LETTER WA
-1BC5D ; [.4081.0020.0002] # DUPLOYAN LETTER WO
-1BC5E ; [.4082.0020.0002] # DUPLOYAN LETTER WI
-1BC5F ; [.4083.0020.0002] # DUPLOYAN LETTER WEI
-1BC60 ; [.4084.0020.0002] # DUPLOYAN LETTER WOW
-1BC61 ; [.4085.0020.0002] # DUPLOYAN LETTER NASAL U
-1BC62 ; [.4086.0020.0002] # DUPLOYAN LETTER NASAL O
-1BC63 ; [.4087.0020.0002] # DUPLOYAN LETTER NASAL I
-1BC64 ; [.4088.0020.0002] # DUPLOYAN LETTER NASAL A
-1BC65 ; [.4089.0020.0002] # DUPLOYAN LETTER PERNIN AN
-1BC66 ; [.408A.0020.0002] # DUPLOYAN LETTER PERNIN AM
-1BC67 ; [.408B.0020.0002] # DUPLOYAN LETTER SLOAN EN
-1BC68 ; [.408C.0020.0002] # DUPLOYAN LETTER SLOAN AN
-1BC69 ; [.408D.0020.0002] # DUPLOYAN LETTER SLOAN ON
-1BC6A ; [.408E.0020.0002] # DUPLOYAN LETTER VOCALIC M
-1BC70 ; [.408F.0020.0002] # DUPLOYAN AFFIX LEFT HORIZONTAL SECANT
-1BC71 ; [.4090.0020.0002] # DUPLOYAN AFFIX MID HORIZONTAL SECANT
-1BC72 ; [.4091.0020.0002] # DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT
-1BC73 ; [.4092.0020.0002] # DUPLOYAN AFFIX LOW VERTICAL SECANT
-1BC74 ; [.4093.0020.0002] # DUPLOYAN AFFIX MID VERTICAL SECANT
-1BC75 ; [.4094.0020.0002] # DUPLOYAN AFFIX HIGH VERTICAL SECANT
-1BC76 ; [.4095.0020.0002] # DUPLOYAN AFFIX ATTACHED SECANT
-1BC77 ; [.4096.0020.0002] # DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT
-1BC78 ; [.4097.0020.0002] # DUPLOYAN AFFIX ATTACHED TANGENT
-1BC79 ; [.4098.0020.0002] # DUPLOYAN AFFIX ATTACHED TAIL
-1BC7A ; [.4099.0020.0002] # DUPLOYAN AFFIX ATTACHED E HOOK
-1BC7B ; [.409A.0020.0002] # DUPLOYAN AFFIX ATTACHED I HOOK
-1BC7C ; [.409B.0020.0002] # DUPLOYAN AFFIX ATTACHED TANGENT HOOK
-1BC80 ; [.409C.0020.0002] # DUPLOYAN AFFIX HIGH ACUTE
-1BC81 ; [.409D.0020.0002] # DUPLOYAN AFFIX HIGH TIGHT ACUTE
-1BC82 ; [.409E.0020.0002] # DUPLOYAN AFFIX HIGH GRAVE
-1BC83 ; [.409F.0020.0002] # DUPLOYAN AFFIX HIGH LONG GRAVE
-1BC84 ; [.40A0.0020.0002] # DUPLOYAN AFFIX HIGH DOT
-1BC85 ; [.40A1.0020.0002] # DUPLOYAN AFFIX HIGH CIRCLE
-1BC86 ; [.40A2.0020.0002] # DUPLOYAN AFFIX HIGH LINE
-1BC87 ; [.40A3.0020.0002] # DUPLOYAN AFFIX HIGH WAVE
-1BC88 ; [.40A4.0020.0002] # DUPLOYAN AFFIX HIGH VERTICAL
-1BC90 ; [.40A5.0020.0002] # DUPLOYAN AFFIX LOW ACUTE
-1BC91 ; [.40A6.0020.0002] # DUPLOYAN AFFIX LOW TIGHT ACUTE
-1BC92 ; [.40A7.0020.0002] # DUPLOYAN AFFIX LOW GRAVE
-1BC93 ; [.40A8.0020.0002] # DUPLOYAN AFFIX LOW LONG GRAVE
-1BC94 ; [.40A9.0020.0002] # DUPLOYAN AFFIX LOW DOT
-1BC95 ; [.40AA.0020.0002] # DUPLOYAN AFFIX LOW CIRCLE
-1BC96 ; [.40AB.0020.0002] # DUPLOYAN AFFIX LOW LINE
-1BC97 ; [.40AC.0020.0002] # DUPLOYAN AFFIX LOW WAVE
-1BC98 ; [.40AD.0020.0002] # DUPLOYAN AFFIX LOW VERTICAL
-1BC99 ; [.40AE.0020.0002] # DUPLOYAN AFFIX LOW ARROW
-10480 ; [.40AF.0020.0002] # OSMANYA LETTER ALEF
-10481 ; [.40B0.0020.0002] # OSMANYA LETTER BA
-10482 ; [.40B1.0020.0002] # OSMANYA LETTER TA
-10483 ; [.40B2.0020.0002] # OSMANYA LETTER JA
-10484 ; [.40B3.0020.0002] # OSMANYA LETTER XA
-10485 ; [.40B4.0020.0002] # OSMANYA LETTER KHA
-10486 ; [.40B5.0020.0002] # OSMANYA LETTER DEEL
-10487 ; [.40B6.0020.0002] # OSMANYA LETTER RA
-10488 ; [.40B7.0020.0002] # OSMANYA LETTER SA
-10489 ; [.40B8.0020.0002] # OSMANYA LETTER SHIIN
-1048A ; [.40B9.0020.0002] # OSMANYA LETTER DHA
-1048B ; [.40BA.0020.0002] # OSMANYA LETTER CAYN
-1048C ; [.40BB.0020.0002] # OSMANYA LETTER GA
-1048D ; [.40BC.0020.0002] # OSMANYA LETTER FA
-1048E ; [.40BD.0020.0002] # OSMANYA LETTER QAAF
-1048F ; [.40BE.0020.0002] # OSMANYA LETTER KAAF
-10490 ; [.40BF.0020.0002] # OSMANYA LETTER LAAN
-10491 ; [.40C0.0020.0002] # OSMANYA LETTER MIIN
-10492 ; [.40C1.0020.0002] # OSMANYA LETTER NUUN
-10493 ; [.40C2.0020.0002] # OSMANYA LETTER WAW
-10494 ; [.40C3.0020.0002] # OSMANYA LETTER HA
-10495 ; [.40C4.0020.0002] # OSMANYA LETTER YA
-10496 ; [.40C5.0020.0002] # OSMANYA LETTER A
-10497 ; [.40C6.0020.0002] # OSMANYA LETTER E
-10498 ; [.40C7.0020.0002] # OSMANYA LETTER I
-10499 ; [.40C8.0020.0002] # OSMANYA LETTER O
-1049A ; [.40C9.0020.0002] # OSMANYA LETTER U
-1049B ; [.40CA.0020.0002] # OSMANYA LETTER AA
-1049C ; [.40CB.0020.0002] # OSMANYA LETTER EE
-1049D ; [.40CC.0020.0002] # OSMANYA LETTER OO
-10500 ; [.40CD.0020.0002] # ELBASAN LETTER A
-10501 ; [.40CE.0020.0002] # ELBASAN LETTER BE
-10502 ; [.40CF.0020.0002] # ELBASAN LETTER CE
-10503 ; [.40D0.0020.0002] # ELBASAN LETTER CHE
-10504 ; [.40D1.0020.0002] # ELBASAN LETTER DE
-10505 ; [.40D2.0020.0002] # ELBASAN LETTER NDE
-10506 ; [.40D3.0020.0002] # ELBASAN LETTER DHE
-10507 ; [.40D4.0020.0002] # ELBASAN LETTER EI
-10508 ; [.40D5.0020.0002] # ELBASAN LETTER E
-10509 ; [.40D6.0020.0002] # ELBASAN LETTER FE
-1050A ; [.40D7.0020.0002] # ELBASAN LETTER GE
-1050B ; [.40D8.0020.0002] # ELBASAN LETTER GJE
-1050C ; [.40D9.0020.0002] # ELBASAN LETTER HE
-1050D ; [.40DA.0020.0002] # ELBASAN LETTER I
-1050E ; [.40DB.0020.0002] # ELBASAN LETTER JE
-1050F ; [.40DC.0020.0002] # ELBASAN LETTER KE
-10510 ; [.40DD.0020.0002] # ELBASAN LETTER LE
-10511 ; [.40DE.0020.0002] # ELBASAN LETTER LLE
-10512 ; [.40DF.0020.0002] # ELBASAN LETTER ME
-10513 ; [.40E0.0020.0002] # ELBASAN LETTER NE
-10514 ; [.40E1.0020.0002] # ELBASAN LETTER NA
-10515 ; [.40E2.0020.0002] # ELBASAN LETTER NJE
-10516 ; [.40E3.0020.0002] # ELBASAN LETTER O
-10517 ; [.40E4.0020.0002] # ELBASAN LETTER PE
-10518 ; [.40E5.0020.0002] # ELBASAN LETTER QE
-10519 ; [.40E6.0020.0002] # ELBASAN LETTER RE
-1051A ; [.40E7.0020.0002] # ELBASAN LETTER RRE
-1051B ; [.40E8.0020.0002] # ELBASAN LETTER SE
-1051C ; [.40E9.0020.0002] # ELBASAN LETTER SHE
-1051D ; [.40EA.0020.0002] # ELBASAN LETTER TE
-1051E ; [.40EB.0020.0002] # ELBASAN LETTER THE
-1051F ; [.40EC.0020.0002] # ELBASAN LETTER U
-10520 ; [.40ED.0020.0002] # ELBASAN LETTER VE
-10521 ; [.40EE.0020.0002] # ELBASAN LETTER XE
-10522 ; [.40EF.0020.0002] # ELBASAN LETTER Y
-10523 ; [.40F0.0020.0002] # ELBASAN LETTER ZE
-10524 ; [.40F1.0020.0002] # ELBASAN LETTER ZHE
-10525 ; [.40F2.0020.0002] # ELBASAN LETTER GHE
-10526 ; [.40F3.0020.0002] # ELBASAN LETTER GHAMMA
-10527 ; [.40F4.0020.0002] # ELBASAN LETTER KHE
-10530 ; [.40F5.0020.0002] # CAUCASIAN ALBANIAN LETTER ALT
-10531 ; [.40F6.0020.0002] # CAUCASIAN ALBANIAN LETTER BET
-10532 ; [.40F7.0020.0002] # CAUCASIAN ALBANIAN LETTER GIM
-10533 ; [.40F8.0020.0002] # CAUCASIAN ALBANIAN LETTER DAT
-10534 ; [.40F9.0020.0002] # CAUCASIAN ALBANIAN LETTER EB
-10535 ; [.40FA.0020.0002] # CAUCASIAN ALBANIAN LETTER ZARL
-10536 ; [.40FB.0020.0002] # CAUCASIAN ALBANIAN LETTER EYN
-10537 ; [.40FC.0020.0002] # CAUCASIAN ALBANIAN LETTER ZHIL
-10538 ; [.40FD.0020.0002] # CAUCASIAN ALBANIAN LETTER TAS
-10539 ; [.40FE.0020.0002] # CAUCASIAN ALBANIAN LETTER CHA
-1053A ; [.40FF.0020.0002] # CAUCASIAN ALBANIAN LETTER YOWD
-1053B ; [.4100.0020.0002] # CAUCASIAN ALBANIAN LETTER ZHA
-1053C ; [.4101.0020.0002] # CAUCASIAN ALBANIAN LETTER IRB
-1053D ; [.4102.0020.0002] # CAUCASIAN ALBANIAN LETTER SHA
-1053E ; [.4103.0020.0002] # CAUCASIAN ALBANIAN LETTER LAN
-1053F ; [.4104.0020.0002] # CAUCASIAN ALBANIAN LETTER INYA
-10540 ; [.4105.0020.0002] # CAUCASIAN ALBANIAN LETTER XEYN
-10541 ; [.4106.0020.0002] # CAUCASIAN ALBANIAN LETTER DYAN
-10542 ; [.4107.0020.0002] # CAUCASIAN ALBANIAN LETTER CAR
-10543 ; [.4108.0020.0002] # CAUCASIAN ALBANIAN LETTER JHOX
-10544 ; [.4109.0020.0002] # CAUCASIAN ALBANIAN LETTER KAR
-10545 ; [.410A.0020.0002] # CAUCASIAN ALBANIAN LETTER LYIT
-10546 ; [.410B.0020.0002] # CAUCASIAN ALBANIAN LETTER HEYT
-10547 ; [.410C.0020.0002] # CAUCASIAN ALBANIAN LETTER QAY
-10548 ; [.410D.0020.0002] # CAUCASIAN ALBANIAN LETTER AOR
-10549 ; [.410E.0020.0002] # CAUCASIAN ALBANIAN LETTER CHOY
-1054A ; [.410F.0020.0002] # CAUCASIAN ALBANIAN LETTER CHI
-1054B ; [.4110.0020.0002] # CAUCASIAN ALBANIAN LETTER CYAY
-1054C ; [.4111.0020.0002] # CAUCASIAN ALBANIAN LETTER MAQ
-1054D ; [.4112.0020.0002] # CAUCASIAN ALBANIAN LETTER QAR
-1054E ; [.4113.0020.0002] # CAUCASIAN ALBANIAN LETTER NOWC
-1054F ; [.4114.0020.0002] # CAUCASIAN ALBANIAN LETTER DZYAY
-10550 ; [.4115.0020.0002] # CAUCASIAN ALBANIAN LETTER SHAK
-10551 ; [.4116.0020.0002] # CAUCASIAN ALBANIAN LETTER JAYN
-10552 ; [.4117.0020.0002] # CAUCASIAN ALBANIAN LETTER ON
-10553 ; [.4118.0020.0002] # CAUCASIAN ALBANIAN LETTER TYAY
-10554 ; [.4119.0020.0002] # CAUCASIAN ALBANIAN LETTER FAM
-10555 ; [.411A.0020.0002] # CAUCASIAN ALBANIAN LETTER DZAY
-10556 ; [.411B.0020.0002] # CAUCASIAN ALBANIAN LETTER CHAT
-10557 ; [.411C.0020.0002] # CAUCASIAN ALBANIAN LETTER PEN
-10558 ; [.411D.0020.0002] # CAUCASIAN ALBANIAN LETTER GHEYS
-10559 ; [.411E.0020.0002] # CAUCASIAN ALBANIAN LETTER RAT
-1055A ; [.411F.0020.0002] # CAUCASIAN ALBANIAN LETTER SEYK
-1055B ; [.4120.0020.0002] # CAUCASIAN ALBANIAN LETTER VEYZ
-1055C ; [.4121.0020.0002] # CAUCASIAN ALBANIAN LETTER TIWR
-1055D ; [.4122.0020.0002] # CAUCASIAN ALBANIAN LETTER SHOY
-1055E ; [.4123.0020.0002] # CAUCASIAN ALBANIAN LETTER IWN
-1055F ; [.4124.0020.0002] # CAUCASIAN ALBANIAN LETTER CYAW
-10560 ; [.4125.0020.0002] # CAUCASIAN ALBANIAN LETTER CAYN
-10561 ; [.4126.0020.0002] # CAUCASIAN ALBANIAN LETTER YAYD
-10562 ; [.4127.0020.0002] # CAUCASIAN ALBANIAN LETTER PIWR
-10563 ; [.4128.0020.0002] # CAUCASIAN ALBANIAN LETTER KIW
-110D0 ; [.4129.0020.0002] # SORA SOMPENG LETTER SAH
-110D1 ; [.412A.0020.0002] # SORA SOMPENG LETTER TAH
-110D2 ; [.412B.0020.0002] # SORA SOMPENG LETTER BAH
-110D3 ; [.412C.0020.0002] # SORA SOMPENG LETTER CAH
-110D4 ; [.412D.0020.0002] # SORA SOMPENG LETTER DAH
-110D5 ; [.412E.0020.0002] # SORA SOMPENG LETTER GAH
-110D6 ; [.412F.0020.0002] # SORA SOMPENG LETTER MAH
-110D7 ; [.4130.0020.0002] # SORA SOMPENG LETTER NGAH
-110D8 ; [.4131.0020.0002] # SORA SOMPENG LETTER LAH
-110D9 ; [.4132.0020.0002] # SORA SOMPENG LETTER NAH
-110DA ; [.4133.0020.0002] # SORA SOMPENG LETTER VAH
-110DB ; [.4134.0020.0002] # SORA SOMPENG LETTER PAH
-110DC ; [.4135.0020.0002] # SORA SOMPENG LETTER YAH
-110DD ; [.4136.0020.0002] # SORA SOMPENG LETTER RAH
-110DE ; [.4137.0020.0002] # SORA SOMPENG LETTER HAH
-110DF ; [.4138.0020.0002] # SORA SOMPENG LETTER KAH
-110E0 ; [.4139.0020.0002] # SORA SOMPENG LETTER JAH
-110E1 ; [.413A.0020.0002] # SORA SOMPENG LETTER NYAH
-110E2 ; [.413B.0020.0002] # SORA SOMPENG LETTER AH
-110E3 ; [.413C.0020.0002] # SORA SOMPENG LETTER EEH
-110E4 ; [.413D.0020.0002] # SORA SOMPENG LETTER IH
-110E5 ; [.413E.0020.0002] # SORA SOMPENG LETTER UH
-110E6 ; [.413F.0020.0002] # SORA SOMPENG LETTER OH
-110E7 ; [.4140.0020.0002] # SORA SOMPENG LETTER EH
-110E8 ; [.4141.0020.0002] # SORA SOMPENG LETTER MAE
-16A40 ; [.4142.0020.0002] # MRO LETTER TA
-16A41 ; [.4143.0020.0002] # MRO LETTER NGI
-16A42 ; [.4144.0020.0002] # MRO LETTER YO
-16A43 ; [.4145.0020.0002] # MRO LETTER MIM
-16A44 ; [.4146.0020.0002] # MRO LETTER BA
-16A45 ; [.4147.0020.0002] # MRO LETTER DA
-16A46 ; [.4148.0020.0002] # MRO LETTER A
-16A47 ; [.4149.0020.0002] # MRO LETTER PHI
-16A48 ; [.414A.0020.0002] # MRO LETTER KHAI
-16A49 ; [.414B.0020.0002] # MRO LETTER HAO
-16A4A ; [.414C.0020.0002] # MRO LETTER DAI
-16A4B ; [.414D.0020.0002] # MRO LETTER CHU
-16A4C ; [.414E.0020.0002] # MRO LETTER KEAAE
-16A4D ; [.414F.0020.0002] # MRO LETTER OL
-16A4E ; [.4150.0020.0002] # MRO LETTER MAEM
-16A4F ; [.4151.0020.0002] # MRO LETTER NIN
-16A50 ; [.4152.0020.0002] # MRO LETTER PA
-16A51 ; [.4153.0020.0002] # MRO LETTER OO
-16A52 ; [.4154.0020.0002] # MRO LETTER O
-16A53 ; [.4155.0020.0002] # MRO LETTER RO
-16A54 ; [.4156.0020.0002] # MRO LETTER SHI
-16A55 ; [.4157.0020.0002] # MRO LETTER THEA
-16A56 ; [.4158.0020.0002] # MRO LETTER EA
-16A57 ; [.4159.0020.0002] # MRO LETTER WA
-16A58 ; [.415A.0020.0002] # MRO LETTER E
-16A59 ; [.415B.0020.0002] # MRO LETTER KO
-16A5A ; [.415C.0020.0002] # MRO LETTER LAN
-16A5B ; [.415D.0020.0002] # MRO LETTER LA
-16A5C ; [.415E.0020.0002] # MRO LETTER HAI
-16A5D ; [.415F.0020.0002] # MRO LETTER RI
-16A5E ; [.4160.0020.0002] # MRO LETTER TEK
-10000 ; [.4161.0020.0002] # LINEAR B SYLLABLE B008 A
-10001 ; [.4162.0020.0002] # LINEAR B SYLLABLE B038 E
-10002 ; [.4163.0020.0002] # LINEAR B SYLLABLE B028 I
-10003 ; [.4164.0020.0002] # LINEAR B SYLLABLE B061 O
-10004 ; [.4165.0020.0002] # LINEAR B SYLLABLE B010 U
-10005 ; [.4166.0020.0002] # LINEAR B SYLLABLE B001 DA
-10006 ; [.4167.0020.0002] # LINEAR B SYLLABLE B045 DE
-10007 ; [.4168.0020.0002] # LINEAR B SYLLABLE B007 DI
-10008 ; [.4169.0020.0002] # LINEAR B SYLLABLE B014 DO
-10009 ; [.416A.0020.0002] # LINEAR B SYLLABLE B051 DU
-1000A ; [.416B.0020.0002] # LINEAR B SYLLABLE B057 JA
-1000B ; [.416C.0020.0002] # LINEAR B SYLLABLE B046 JE
-1000D ; [.416D.0020.0002] # LINEAR B SYLLABLE B036 JO
-1000E ; [.416E.0020.0002] # LINEAR B SYLLABLE B065 JU
-1000F ; [.416F.0020.0002] # LINEAR B SYLLABLE B077 KA
-10010 ; [.4170.0020.0002] # LINEAR B SYLLABLE B044 KE
-10011 ; [.4171.0020.0002] # LINEAR B SYLLABLE B067 KI
-10012 ; [.4172.0020.0002] # LINEAR B SYLLABLE B070 KO
-10013 ; [.4173.0020.0002] # LINEAR B SYLLABLE B081 KU
-10014 ; [.4174.0020.0002] # LINEAR B SYLLABLE B080 MA
-10015 ; [.4175.0020.0002] # LINEAR B SYLLABLE B013 ME
-10016 ; [.4176.0020.0002] # LINEAR B SYLLABLE B073 MI
-10017 ; [.4177.0020.0002] # LINEAR B SYLLABLE B015 MO
-10018 ; [.4178.0020.0002] # LINEAR B SYLLABLE B023 MU
-10019 ; [.4179.0020.0002] # LINEAR B SYLLABLE B006 NA
-1001A ; [.417A.0020.0002] # LINEAR B SYLLABLE B024 NE
-1001B ; [.417B.0020.0002] # LINEAR B SYLLABLE B030 NI
-1001C ; [.417C.0020.0002] # LINEAR B SYLLABLE B052 NO
-1001D ; [.417D.0020.0002] # LINEAR B SYLLABLE B055 NU
-1001E ; [.417E.0020.0002] # LINEAR B SYLLABLE B003 PA
-1001F ; [.417F.0020.0002] # LINEAR B SYLLABLE B072 PE
-10020 ; [.4180.0020.0002] # LINEAR B SYLLABLE B039 PI
-10021 ; [.4181.0020.0002] # LINEAR B SYLLABLE B011 PO
-10022 ; [.4182.0020.0002] # LINEAR B SYLLABLE B050 PU
-10023 ; [.4183.0020.0002] # LINEAR B SYLLABLE B016 QA
-10024 ; [.4184.0020.0002] # LINEAR B SYLLABLE B078 QE
-10025 ; [.4185.0020.0002] # LINEAR B SYLLABLE B021 QI
-10026 ; [.4186.0020.0002] # LINEAR B SYLLABLE B032 QO
-10028 ; [.4187.0020.0002] # LINEAR B SYLLABLE B060 RA
-10029 ; [.4188.0020.0002] # LINEAR B SYLLABLE B027 RE
-1002A ; [.4189.0020.0002] # LINEAR B SYLLABLE B053 RI
-1002B ; [.418A.0020.0002] # LINEAR B SYLLABLE B002 RO
-1002C ; [.418B.0020.0002] # LINEAR B SYLLABLE B026 RU
-1002D ; [.418C.0020.0002] # LINEAR B SYLLABLE B031 SA
-1002E ; [.418D.0020.0002] # LINEAR B SYLLABLE B009 SE
-1002F ; [.418E.0020.0002] # LINEAR B SYLLABLE B041 SI
-10030 ; [.418F.0020.0002] # LINEAR B SYLLABLE B012 SO
-10031 ; [.4190.0020.0002] # LINEAR B SYLLABLE B058 SU
-10032 ; [.4191.0020.0002] # LINEAR B SYLLABLE B059 TA
-10033 ; [.4192.0020.0002] # LINEAR B SYLLABLE B004 TE
-10034 ; [.4193.0020.0002] # LINEAR B SYLLABLE B037 TI
-10035 ; [.4194.0020.0002] # LINEAR B SYLLABLE B005 TO
-10036 ; [.4195.0020.0002] # LINEAR B SYLLABLE B069 TU
-10037 ; [.4196.0020.0002] # LINEAR B SYLLABLE B054 WA
-10038 ; [.4197.0020.0002] # LINEAR B SYLLABLE B075 WE
-10039 ; [.4198.0020.0002] # LINEAR B SYLLABLE B040 WI
-1003A ; [.4199.0020.0002] # LINEAR B SYLLABLE B042 WO
-1003C ; [.419A.0020.0002] # LINEAR B SYLLABLE B017 ZA
-1003D ; [.419B.0020.0002] # LINEAR B SYLLABLE B074 ZE
-1003F ; [.419C.0020.0002] # LINEAR B SYLLABLE B020 ZO
-10040 ; [.419D.0020.0002] # LINEAR B SYLLABLE B025 A2
-10041 ; [.419E.0020.0002] # LINEAR B SYLLABLE B043 A3
-10042 ; [.419F.0020.0002] # LINEAR B SYLLABLE B085 AU
-10043 ; [.41A0.0020.0002] # LINEAR B SYLLABLE B071 DWE
-10044 ; [.41A1.0020.0002] # LINEAR B SYLLABLE B090 DWO
-10045 ; [.41A2.0020.0002] # LINEAR B SYLLABLE B048 NWA
-10046 ; [.41A3.0020.0002] # LINEAR B SYLLABLE B029 PU2
-10047 ; [.41A4.0020.0002] # LINEAR B SYLLABLE B062 PTE
-10048 ; [.41A5.0020.0002] # LINEAR B SYLLABLE B076 RA2
-10049 ; [.41A6.0020.0002] # LINEAR B SYLLABLE B033 RA3
-1004A ; [.41A7.0020.0002] # LINEAR B SYLLABLE B068 RO2
-1004B ; [.41A8.0020.0002] # LINEAR B SYLLABLE B066 TA2
-1004C ; [.41A9.0020.0002] # LINEAR B SYLLABLE B087 TWE
-1004D ; [.41AA.0020.0002] # LINEAR B SYLLABLE B091 TWO
-10050 ; [.41AB.0020.0002] # LINEAR B SYMBOL B018
-10051 ; [.41AC.0020.0002] # LINEAR B SYMBOL B019
-10052 ; [.41AD.0020.0002] # LINEAR B SYMBOL B022
-10053 ; [.41AE.0020.0002] # LINEAR B SYMBOL B034
-10054 ; [.41AF.0020.0002] # LINEAR B SYMBOL B047
-10055 ; [.41B0.0020.0002] # LINEAR B SYMBOL B049
-10056 ; [.41B1.0020.0002] # LINEAR B SYMBOL B056
-10057 ; [.41B2.0020.0002] # LINEAR B SYMBOL B063
-10058 ; [.41B3.0020.0002] # LINEAR B SYMBOL B064
-10059 ; [.41B4.0020.0002] # LINEAR B SYMBOL B079
-1005A ; [.41B5.0020.0002] # LINEAR B SYMBOL B082
-1005B ; [.41B6.0020.0002] # LINEAR B SYMBOL B083
-1005C ; [.41B7.0020.0002] # LINEAR B SYMBOL B086
-1005D ; [.41B8.0020.0002] # LINEAR B SYMBOL B089
-10080 ; [.41B9.0020.0002] # LINEAR B IDEOGRAM B100 MAN
-10081 ; [.41BA.0020.0002] # LINEAR B IDEOGRAM B102 WOMAN
-10082 ; [.41BB.0020.0002] # LINEAR B IDEOGRAM B104 DEER
-10083 ; [.41BC.0020.0002] # LINEAR B IDEOGRAM B105 EQUID
-10084 ; [.41BD.0020.0002] # LINEAR B IDEOGRAM B105F MARE
-10085 ; [.41BE.0020.0002] # LINEAR B IDEOGRAM B105M STALLION
-10086 ; [.41BF.0020.0002] # LINEAR B IDEOGRAM B106F EWE
-10087 ; [.41C0.0020.0002] # LINEAR B IDEOGRAM B106M RAM
-10088 ; [.41C1.0020.0002] # LINEAR B IDEOGRAM B107F SHE-GOAT
-10089 ; [.41C2.0020.0002] # LINEAR B IDEOGRAM B107M HE-GOAT
-1008A ; [.41C3.0020.0002] # LINEAR B IDEOGRAM B108F SOW
-1008B ; [.41C4.0020.0002] # LINEAR B IDEOGRAM B108M BOAR
-1008C ; [.41C5.0020.0002] # LINEAR B IDEOGRAM B109F COW
-1008D ; [.41C6.0020.0002] # LINEAR B IDEOGRAM B109M BULL
-1008E ; [.41C7.0020.0002] # LINEAR B IDEOGRAM B120 WHEAT
-1008F ; [.41C8.0020.0002] # LINEAR B IDEOGRAM B121 BARLEY
-10090 ; [.41C9.0020.0002] # LINEAR B IDEOGRAM B122 OLIVE
-10091 ; [.41CA.0020.0002] # LINEAR B IDEOGRAM B123 SPICE
-10092 ; [.41CB.0020.0002] # LINEAR B IDEOGRAM B125 CYPERUS
-10093 ; [.41CC.0020.0002] # LINEAR B MONOGRAM B127 KAPO
-10094 ; [.41CD.0020.0002] # LINEAR B MONOGRAM B128 KANAKO
-10095 ; [.41CE.0020.0002] # LINEAR B IDEOGRAM B130 OIL
-10096 ; [.41CF.0020.0002] # LINEAR B IDEOGRAM B131 WINE
-10097 ; [.41D0.0020.0002] # LINEAR B IDEOGRAM B132
-10098 ; [.41D1.0020.0002] # LINEAR B MONOGRAM B133 AREPA
-10099 ; [.41D2.0020.0002] # LINEAR B MONOGRAM B135 MERI
-1009A ; [.41D3.0020.0002] # LINEAR B IDEOGRAM B140 BRONZE
-1009B ; [.41D4.0020.0002] # LINEAR B IDEOGRAM B141 GOLD
-1009C ; [.41D5.0020.0002] # LINEAR B IDEOGRAM B142
-1009D ; [.41D6.0020.0002] # LINEAR B IDEOGRAM B145 WOOL
-1009E ; [.41D7.0020.0002] # LINEAR B IDEOGRAM B146
-1009F ; [.41D8.0020.0002] # LINEAR B IDEOGRAM B150
-100A0 ; [.41D9.0020.0002] # LINEAR B IDEOGRAM B151 HORN
-100A1 ; [.41DA.0020.0002] # LINEAR B IDEOGRAM B152
-100A2 ; [.41DB.0020.0002] # LINEAR B IDEOGRAM B153
-100A3 ; [.41DC.0020.0002] # LINEAR B IDEOGRAM B154
-100A4 ; [.41DD.0020.0002] # LINEAR B MONOGRAM B156 TURO2
-100A5 ; [.41DE.0020.0002] # LINEAR B IDEOGRAM B157
-100A6 ; [.41DF.0020.0002] # LINEAR B IDEOGRAM B158
-100A7 ; [.41E0.0020.0002] # LINEAR B IDEOGRAM B159 CLOTH
-100A8 ; [.41E1.0020.0002] # LINEAR B IDEOGRAM B160
-100A9 ; [.41E2.0020.0002] # LINEAR B IDEOGRAM B161
-100AA ; [.41E3.0020.0002] # LINEAR B IDEOGRAM B162 GARMENT
-100AB ; [.41E4.0020.0002] # LINEAR B IDEOGRAM B163 ARMOUR
-100AC ; [.41E5.0020.0002] # LINEAR B IDEOGRAM B164
-100AD ; [.41E6.0020.0002] # LINEAR B IDEOGRAM B165
-100AE ; [.41E7.0020.0002] # LINEAR B IDEOGRAM B166
-100AF ; [.41E8.0020.0002] # LINEAR B IDEOGRAM B167
-100B0 ; [.41E9.0020.0002] # LINEAR B IDEOGRAM B168
-100B1 ; [.41EA.0020.0002] # LINEAR B IDEOGRAM B169
-100B2 ; [.41EB.0020.0002] # LINEAR B IDEOGRAM B170
-100B3 ; [.41EC.0020.0002] # LINEAR B IDEOGRAM B171
-100B4 ; [.41ED.0020.0002] # LINEAR B IDEOGRAM B172
-100B5 ; [.41EE.0020.0002] # LINEAR B IDEOGRAM B173 MONTH
-100B6 ; [.41EF.0020.0002] # LINEAR B IDEOGRAM B174
-100B7 ; [.41F0.0020.0002] # LINEAR B IDEOGRAM B176 TREE
-100B8 ; [.41F1.0020.0002] # LINEAR B IDEOGRAM B177
-100B9 ; [.41F2.0020.0002] # LINEAR B IDEOGRAM B178
-100BA ; [.41F3.0020.0002] # LINEAR B IDEOGRAM B179
-100BB ; [.41F4.0020.0002] # LINEAR B IDEOGRAM B180
-100BC ; [.41F5.0020.0002] # LINEAR B IDEOGRAM B181
-100BD ; [.41F6.0020.0002] # LINEAR B IDEOGRAM B182
-100BE ; [.41F7.0020.0002] # LINEAR B IDEOGRAM B183
-100BF ; [.41F8.0020.0002] # LINEAR B IDEOGRAM B184
-100C0 ; [.41F9.0020.0002] # LINEAR B IDEOGRAM B185
-100C1 ; [.41FA.0020.0002] # LINEAR B IDEOGRAM B189
-100C2 ; [.41FB.0020.0002] # LINEAR B IDEOGRAM B190
-100C3 ; [.41FC.0020.0002] # LINEAR B IDEOGRAM B191 HELMET
-100C4 ; [.41FD.0020.0002] # LINEAR B IDEOGRAM B220 FOOTSTOOL
-100C5 ; [.41FE.0020.0002] # LINEAR B IDEOGRAM B225 BATHTUB
-100C6 ; [.41FF.0020.0002] # LINEAR B IDEOGRAM B230 SPEAR
-100C7 ; [.4200.0020.0002] # LINEAR B IDEOGRAM B231 ARROW
-100C8 ; [.4201.0020.0002] # LINEAR B IDEOGRAM B232
-100C9 ; [.4202.0020.0002] # LINEAR B IDEOGRAM B233 SWORD
-100CA ; [.4203.0020.0002] # LINEAR B IDEOGRAM B234
-100CB ; [.4204.0020.0002] # LINEAR B IDEOGRAM B236
-100CC ; [.4205.0020.0002] # LINEAR B IDEOGRAM B240 WHEELED CHARIOT
-100CD ; [.4206.0020.0002] # LINEAR B IDEOGRAM B241 CHARIOT
-100CE ; [.4207.0020.0002] # LINEAR B IDEOGRAM B242 CHARIOT FRAME
-100CF ; [.4208.0020.0002] # LINEAR B IDEOGRAM B243 WHEEL
-100D0 ; [.4209.0020.0002] # LINEAR B IDEOGRAM B245
-100D1 ; [.420A.0020.0002] # LINEAR B IDEOGRAM B246
-100D2 ; [.420B.0020.0002] # LINEAR B MONOGRAM B247 DIPTE
-100D3 ; [.420C.0020.0002] # LINEAR B IDEOGRAM B248
-100D4 ; [.420D.0020.0002] # LINEAR B IDEOGRAM B249
-100D5 ; [.420E.0020.0002] # LINEAR B IDEOGRAM B251
-100D6 ; [.420F.0020.0002] # LINEAR B IDEOGRAM B252
-100D7 ; [.4210.0020.0002] # LINEAR B IDEOGRAM B253
-100D8 ; [.4211.0020.0002] # LINEAR B IDEOGRAM B254 DART
-100D9 ; [.4212.0020.0002] # LINEAR B IDEOGRAM B255
-100DA ; [.4213.0020.0002] # LINEAR B IDEOGRAM B256
-100DB ; [.4214.0020.0002] # LINEAR B IDEOGRAM B257
-100DC ; [.4215.0020.0002] # LINEAR B IDEOGRAM B258
-100DD ; [.4216.0020.0002] # LINEAR B IDEOGRAM B259
-100DE ; [.4217.0020.0002] # LINEAR B IDEOGRAM VESSEL B155
-100DF ; [.4218.0020.0002] # LINEAR B IDEOGRAM VESSEL B200
-100E0 ; [.4219.0020.0002] # LINEAR B IDEOGRAM VESSEL B201
-100E1 ; [.421A.0020.0002] # LINEAR B IDEOGRAM VESSEL B202
-100E2 ; [.421B.0020.0002] # LINEAR B IDEOGRAM VESSEL B203
-100E3 ; [.421C.0020.0002] # LINEAR B IDEOGRAM VESSEL B204
-100E4 ; [.421D.0020.0002] # LINEAR B IDEOGRAM VESSEL B205
-100E5 ; [.421E.0020.0002] # LINEAR B IDEOGRAM VESSEL B206
-100E6 ; [.421F.0020.0002] # LINEAR B IDEOGRAM VESSEL B207
-100E7 ; [.4220.0020.0002] # LINEAR B IDEOGRAM VESSEL B208
-100E8 ; [.4221.0020.0002] # LINEAR B IDEOGRAM VESSEL B209
-100E9 ; [.4222.0020.0002] # LINEAR B IDEOGRAM VESSEL B210
-100EA ; [.4223.0020.0002] # LINEAR B IDEOGRAM VESSEL B211
-100EB ; [.4224.0020.0002] # LINEAR B IDEOGRAM VESSEL B212
-100EC ; [.4225.0020.0002] # LINEAR B IDEOGRAM VESSEL B213
-100ED ; [.4226.0020.0002] # LINEAR B IDEOGRAM VESSEL B214
-100EE ; [.4227.0020.0002] # LINEAR B IDEOGRAM VESSEL B215
-100EF ; [.4228.0020.0002] # LINEAR B IDEOGRAM VESSEL B216
-100F0 ; [.4229.0020.0002] # LINEAR B IDEOGRAM VESSEL B217
-100F1 ; [.422A.0020.0002] # LINEAR B IDEOGRAM VESSEL B218
-100F2 ; [.422B.0020.0002] # LINEAR B IDEOGRAM VESSEL B219
-100F3 ; [.422C.0020.0002] # LINEAR B IDEOGRAM VESSEL B221
-100F4 ; [.422D.0020.0002] # LINEAR B IDEOGRAM VESSEL B222
-100F5 ; [.422E.0020.0002] # LINEAR B IDEOGRAM VESSEL B226
-100F6 ; [.422F.0020.0002] # LINEAR B IDEOGRAM VESSEL B227
-100F7 ; [.4230.0020.0002] # LINEAR B IDEOGRAM VESSEL B228
-100F8 ; [.4231.0020.0002] # LINEAR B IDEOGRAM VESSEL B229
-100F9 ; [.4232.0020.0002] # LINEAR B IDEOGRAM VESSEL B250
-100FA ; [.4233.0020.0002] # LINEAR B IDEOGRAM VESSEL B305
-10600 ; [.4234.0020.0002] # LINEAR A SIGN AB001
-10601 ; [.4235.0020.0002] # LINEAR A SIGN AB002
-10602 ; [.4236.0020.0002] # LINEAR A SIGN AB003
-10603 ; [.4237.0020.0002] # LINEAR A SIGN AB004
-10604 ; [.4238.0020.0002] # LINEAR A SIGN AB005
-10605 ; [.4239.0020.0002] # LINEAR A SIGN AB006
-10606 ; [.423A.0020.0002] # LINEAR A SIGN AB007
-10607 ; [.423B.0020.0002] # LINEAR A SIGN AB008
-10608 ; [.423C.0020.0002] # LINEAR A SIGN AB009
-10609 ; [.423D.0020.0002] # LINEAR A SIGN AB010
-1060A ; [.423E.0020.0002] # LINEAR A SIGN AB011
-1060B ; [.423F.0020.0002] # LINEAR A SIGN AB013
-1060C ; [.4240.0020.0002] # LINEAR A SIGN AB016
-1060D ; [.4241.0020.0002] # LINEAR A SIGN AB017
-1060E ; [.4242.0020.0002] # LINEAR A SIGN AB020
-1060F ; [.4243.0020.0002] # LINEAR A SIGN AB021
-10610 ; [.4244.0020.0002] # LINEAR A SIGN AB021F
-10611 ; [.4245.0020.0002] # LINEAR A SIGN AB021M
-10612 ; [.4246.0020.0002] # LINEAR A SIGN AB022
-10613 ; [.4247.0020.0002] # LINEAR A SIGN AB022F
-10614 ; [.4248.0020.0002] # LINEAR A SIGN AB022M
-10615 ; [.4249.0020.0002] # LINEAR A SIGN AB023
-10616 ; [.424A.0020.0002] # LINEAR A SIGN AB023M
-10617 ; [.424B.0020.0002] # LINEAR A SIGN AB024
-10618 ; [.424C.0020.0002] # LINEAR A SIGN AB026
-10619 ; [.424D.0020.0002] # LINEAR A SIGN AB027
-1061A ; [.424E.0020.0002] # LINEAR A SIGN AB028
-1061B ; [.424F.0020.0002] # LINEAR A SIGN A028B
-1061C ; [.4250.0020.0002] # LINEAR A SIGN AB029
-1061D ; [.4251.0020.0002] # LINEAR A SIGN AB030
-1061E ; [.4252.0020.0002] # LINEAR A SIGN AB031
-1061F ; [.4253.0020.0002] # LINEAR A SIGN AB034
-10620 ; [.4254.0020.0002] # LINEAR A SIGN AB037
-10621 ; [.4255.0020.0002] # LINEAR A SIGN AB038
-10622 ; [.4256.0020.0002] # LINEAR A SIGN AB039
-10623 ; [.4257.0020.0002] # LINEAR A SIGN AB040
-10624 ; [.4258.0020.0002] # LINEAR A SIGN AB041
-10625 ; [.4259.0020.0002] # LINEAR A SIGN AB044
-10626 ; [.425A.0020.0002] # LINEAR A SIGN AB045
-10627 ; [.425B.0020.0002] # LINEAR A SIGN AB046
-10628 ; [.425C.0020.0002] # LINEAR A SIGN AB047
-10629 ; [.425D.0020.0002] # LINEAR A SIGN AB048
-1062A ; [.425E.0020.0002] # LINEAR A SIGN AB049
-1062B ; [.425F.0020.0002] # LINEAR A SIGN AB050
-1062C ; [.4260.0020.0002] # LINEAR A SIGN AB051
-1062D ; [.4261.0020.0002] # LINEAR A SIGN AB053
-1062E ; [.4262.0020.0002] # LINEAR A SIGN AB054
-1062F ; [.4263.0020.0002] # LINEAR A SIGN AB055
-10630 ; [.4264.0020.0002] # LINEAR A SIGN AB056
-10631 ; [.4265.0020.0002] # LINEAR A SIGN AB057
-10632 ; [.4266.0020.0002] # LINEAR A SIGN AB058
-10633 ; [.4267.0020.0002] # LINEAR A SIGN AB059
-10634 ; [.4268.0020.0002] # LINEAR A SIGN AB060
-10635 ; [.4269.0020.0002] # LINEAR A SIGN AB061
-10636 ; [.426A.0020.0002] # LINEAR A SIGN AB065
-10637 ; [.426B.0020.0002] # LINEAR A SIGN AB066
-10638 ; [.426C.0020.0002] # LINEAR A SIGN AB067
-10639 ; [.426D.0020.0002] # LINEAR A SIGN AB069
-1063A ; [.426E.0020.0002] # LINEAR A SIGN AB070
-1063B ; [.426F.0020.0002] # LINEAR A SIGN AB073
-1063C ; [.4270.0020.0002] # LINEAR A SIGN AB074
-1063D ; [.4271.0020.0002] # LINEAR A SIGN AB076
-1063E ; [.4272.0020.0002] # LINEAR A SIGN AB077
-1063F ; [.4273.0020.0002] # LINEAR A SIGN AB078
-10640 ; [.4274.0020.0002] # LINEAR A SIGN AB079
-10641 ; [.4275.0020.0002] # LINEAR A SIGN AB080
-10642 ; [.4276.0020.0002] # LINEAR A SIGN AB081
-10643 ; [.4277.0020.0002] # LINEAR A SIGN AB082
-10644 ; [.4278.0020.0002] # LINEAR A SIGN AB085
-10645 ; [.4279.0020.0002] # LINEAR A SIGN AB086
-10646 ; [.427A.0020.0002] # LINEAR A SIGN AB087
-10647 ; [.427B.0020.0002] # LINEAR A SIGN A100-102
-10648 ; [.427C.0020.0002] # LINEAR A SIGN AB118
-10649 ; [.427D.0020.0002] # LINEAR A SIGN AB120
-1064A ; [.427E.0020.0002] # LINEAR A SIGN A120B
-1064B ; [.427F.0020.0002] # LINEAR A SIGN AB122
-1064C ; [.4280.0020.0002] # LINEAR A SIGN AB123
-1064D ; [.4281.0020.0002] # LINEAR A SIGN AB131A
-1064E ; [.4282.0020.0002] # LINEAR A SIGN AB131B
-1064F ; [.4283.0020.0002] # LINEAR A SIGN A131C
-10650 ; [.4284.0020.0002] # LINEAR A SIGN AB164
-10651 ; [.4285.0020.0002] # LINEAR A SIGN AB171
-10652 ; [.4286.0020.0002] # LINEAR A SIGN AB180
-10653 ; [.4287.0020.0002] # LINEAR A SIGN AB188
-10654 ; [.4288.0020.0002] # LINEAR A SIGN AB191
-10655 ; [.4289.0020.0002] # LINEAR A SIGN A301
-10656 ; [.428A.0020.0002] # LINEAR A SIGN A302
-10657 ; [.428B.0020.0002] # LINEAR A SIGN A303
-10658 ; [.428C.0020.0002] # LINEAR A SIGN A304
-10659 ; [.428D.0020.0002] # LINEAR A SIGN A305
-1065A ; [.428E.0020.0002] # LINEAR A SIGN A306
-1065B ; [.428F.0020.0002] # LINEAR A SIGN A307
-1065C ; [.4290.0020.0002] # LINEAR A SIGN A308
-1065D ; [.4291.0020.0002] # LINEAR A SIGN A309A
-1065E ; [.4292.0020.0002] # LINEAR A SIGN A309B
-1065F ; [.4293.0020.0002] # LINEAR A SIGN A309C
-10660 ; [.4294.0020.0002] # LINEAR A SIGN A310
-10661 ; [.4295.0020.0002] # LINEAR A SIGN A311
-10662 ; [.4296.0020.0002] # LINEAR A SIGN A312
-10663 ; [.4297.0020.0002] # LINEAR A SIGN A313A
-10664 ; [.4298.0020.0002] # LINEAR A SIGN A313B
-10665 ; [.4299.0020.0002] # LINEAR A SIGN A313C
-10666 ; [.429A.0020.0002] # LINEAR A SIGN A314
-10667 ; [.429B.0020.0002] # LINEAR A SIGN A315
-10668 ; [.429C.0020.0002] # LINEAR A SIGN A316
-10669 ; [.429D.0020.0002] # LINEAR A SIGN A317
-1066A ; [.429E.0020.0002] # LINEAR A SIGN A318
-1066B ; [.429F.0020.0002] # LINEAR A SIGN A319
-1066C ; [.42A0.0020.0002] # LINEAR A SIGN A320
-1066D ; [.42A1.0020.0002] # LINEAR A SIGN A321
-1066E ; [.42A2.0020.0002] # LINEAR A SIGN A322
-1066F ; [.42A3.0020.0002] # LINEAR A SIGN A323
-10670 ; [.42A4.0020.0002] # LINEAR A SIGN A324
-10671 ; [.42A5.0020.0002] # LINEAR A SIGN A325
-10672 ; [.42A6.0020.0002] # LINEAR A SIGN A326
-10673 ; [.42A7.0020.0002] # LINEAR A SIGN A327
-10674 ; [.42A8.0020.0002] # LINEAR A SIGN A328
-10675 ; [.42A9.0020.0002] # LINEAR A SIGN A329
-10676 ; [.42AA.0020.0002] # LINEAR A SIGN A330
-10677 ; [.42AB.0020.0002] # LINEAR A SIGN A331
-10678 ; [.42AC.0020.0002] # LINEAR A SIGN A332
-10679 ; [.42AD.0020.0002] # LINEAR A SIGN A333
-1067A ; [.42AE.0020.0002] # LINEAR A SIGN A334
-1067B ; [.42AF.0020.0002] # LINEAR A SIGN A335
-1067C ; [.42B0.0020.0002] # LINEAR A SIGN A336
-1067D ; [.42B1.0020.0002] # LINEAR A SIGN A337
-1067E ; [.42B2.0020.0002] # LINEAR A SIGN A338
-1067F ; [.42B3.0020.0002] # LINEAR A SIGN A339
-10680 ; [.42B4.0020.0002] # LINEAR A SIGN A340
-10681 ; [.42B5.0020.0002] # LINEAR A SIGN A341
-10682 ; [.42B6.0020.0002] # LINEAR A SIGN A342
-10683 ; [.42B7.0020.0002] # LINEAR A SIGN A343
-10684 ; [.42B8.0020.0002] # LINEAR A SIGN A344
-10685 ; [.42B9.0020.0002] # LINEAR A SIGN A345
-10686 ; [.42BA.0020.0002] # LINEAR A SIGN A346
-10687 ; [.42BB.0020.0002] # LINEAR A SIGN A347
-10688 ; [.42BC.0020.0002] # LINEAR A SIGN A348
-10689 ; [.42BD.0020.0002] # LINEAR A SIGN A349
-1068A ; [.42BE.0020.0002] # LINEAR A SIGN A350
-1068B ; [.42BF.0020.0002] # LINEAR A SIGN A351
-1068C ; [.42C0.0020.0002] # LINEAR A SIGN A352
-1068D ; [.42C1.0020.0002] # LINEAR A SIGN A353
-1068E ; [.42C2.0020.0002] # LINEAR A SIGN A354
-1068F ; [.42C3.0020.0002] # LINEAR A SIGN A355
-10690 ; [.42C4.0020.0002] # LINEAR A SIGN A356
-10691 ; [.42C5.0020.0002] # LINEAR A SIGN A357
-10692 ; [.42C6.0020.0002] # LINEAR A SIGN A358
-10693 ; [.42C7.0020.0002] # LINEAR A SIGN A359
-10694 ; [.42C8.0020.0002] # LINEAR A SIGN A360
-10695 ; [.42C9.0020.0002] # LINEAR A SIGN A361
-10696 ; [.42CA.0020.0002] # LINEAR A SIGN A362
-10697 ; [.42CB.0020.0002] # LINEAR A SIGN A363
-10698 ; [.42CC.0020.0002] # LINEAR A SIGN A364
-10699 ; [.42CD.0020.0002] # LINEAR A SIGN A365
-1069A ; [.42CE.0020.0002] # LINEAR A SIGN A366
-1069B ; [.42CF.0020.0002] # LINEAR A SIGN A367
-1069C ; [.42D0.0020.0002] # LINEAR A SIGN A368
-1069D ; [.42D1.0020.0002] # LINEAR A SIGN A369
-1069E ; [.42D2.0020.0002] # LINEAR A SIGN A370
-1069F ; [.42D3.0020.0002] # LINEAR A SIGN A371
-106A0 ; [.42D4.0020.0002] # LINEAR A SIGN A400-VAS
-106A1 ; [.42D5.0020.0002] # LINEAR A SIGN A401-VAS
-106A2 ; [.42D6.0020.0002] # LINEAR A SIGN A402-VAS
-106A3 ; [.42D7.0020.0002] # LINEAR A SIGN A403-VAS
-106A4 ; [.42D8.0020.0002] # LINEAR A SIGN A404-VAS
-106A5 ; [.42D9.0020.0002] # LINEAR A SIGN A405-VAS
-106A6 ; [.42DA.0020.0002] # LINEAR A SIGN A406-VAS
-106A7 ; [.42DB.0020.0002] # LINEAR A SIGN A407-VAS
-106A8 ; [.42DC.0020.0002] # LINEAR A SIGN A408-VAS
-106A9 ; [.42DD.0020.0002] # LINEAR A SIGN A409-VAS
-106AA ; [.42DE.0020.0002] # LINEAR A SIGN A410-VAS
-106AB ; [.42DF.0020.0002] # LINEAR A SIGN A411-VAS
-106AC ; [.42E0.0020.0002] # LINEAR A SIGN A412-VAS
-106AD ; [.42E1.0020.0002] # LINEAR A SIGN A413-VAS
-106AE ; [.42E2.0020.0002] # LINEAR A SIGN A414-VAS
-106AF ; [.42E3.0020.0002] # LINEAR A SIGN A415-VAS
-106B0 ; [.42E4.0020.0002] # LINEAR A SIGN A416-VAS
-106B1 ; [.42E5.0020.0002] # LINEAR A SIGN A417-VAS
-106B2 ; [.42E6.0020.0002] # LINEAR A SIGN A418-VAS
-106B3 ; [.42E7.0020.0002] # LINEAR A SIGN A501
-106B4 ; [.42E8.0020.0002] # LINEAR A SIGN A502
-106B5 ; [.42E9.0020.0002] # LINEAR A SIGN A503
-106B6 ; [.42EA.0020.0002] # LINEAR A SIGN A504
-106B7 ; [.42EB.0020.0002] # LINEAR A SIGN A505
-106B8 ; [.42EC.0020.0002] # LINEAR A SIGN A506
-106B9 ; [.42ED.0020.0002] # LINEAR A SIGN A508
-106BA ; [.42EE.0020.0002] # LINEAR A SIGN A509
-106BB ; [.42EF.0020.0002] # LINEAR A SIGN A510
-106BC ; [.42F0.0020.0002] # LINEAR A SIGN A511
-106BD ; [.42F1.0020.0002] # LINEAR A SIGN A512
-106BE ; [.42F2.0020.0002] # LINEAR A SIGN A513
-106BF ; [.42F3.0020.0002] # LINEAR A SIGN A515
-106C0 ; [.42F4.0020.0002] # LINEAR A SIGN A516
-106C1 ; [.42F5.0020.0002] # LINEAR A SIGN A520
-106C2 ; [.42F6.0020.0002] # LINEAR A SIGN A521
-106C3 ; [.42F7.0020.0002] # LINEAR A SIGN A523
-106C4 ; [.42F8.0020.0002] # LINEAR A SIGN A524
-106C5 ; [.42F9.0020.0002] # LINEAR A SIGN A525
-106C6 ; [.42FA.0020.0002] # LINEAR A SIGN A526
-106C7 ; [.42FB.0020.0002] # LINEAR A SIGN A527
-106C8 ; [.42FC.0020.0002] # LINEAR A SIGN A528
-106C9 ; [.42FD.0020.0002] # LINEAR A SIGN A529
-106CA ; [.42FE.0020.0002] # LINEAR A SIGN A530
-106CB ; [.42FF.0020.0002] # LINEAR A SIGN A531
-106CC ; [.4300.0020.0002] # LINEAR A SIGN A532
-106CD ; [.4301.0020.0002] # LINEAR A SIGN A534
-106CE ; [.4302.0020.0002] # LINEAR A SIGN A535
-106CF ; [.4303.0020.0002] # LINEAR A SIGN A536
-106D0 ; [.4304.0020.0002] # LINEAR A SIGN A537
-106D1 ; [.4305.0020.0002] # LINEAR A SIGN A538
-106D2 ; [.4306.0020.0002] # LINEAR A SIGN A539
-106D3 ; [.4307.0020.0002] # LINEAR A SIGN A540
-106D4 ; [.4308.0020.0002] # LINEAR A SIGN A541
-106D5 ; [.4309.0020.0002] # LINEAR A SIGN A542
-106D6 ; [.430A.0020.0002] # LINEAR A SIGN A545
-106D7 ; [.430B.0020.0002] # LINEAR A SIGN A547
-106D8 ; [.430C.0020.0002] # LINEAR A SIGN A548
-106D9 ; [.430D.0020.0002] # LINEAR A SIGN A549
-106DA ; [.430E.0020.0002] # LINEAR A SIGN A550
-106DB ; [.430F.0020.0002] # LINEAR A SIGN A551
-106DC ; [.4310.0020.0002] # LINEAR A SIGN A552
-106DD ; [.4311.0020.0002] # LINEAR A SIGN A553
-106DE ; [.4312.0020.0002] # LINEAR A SIGN A554
-106DF ; [.4313.0020.0002] # LINEAR A SIGN A555
-106E0 ; [.4314.0020.0002] # LINEAR A SIGN A556
-106E1 ; [.4315.0020.0002] # LINEAR A SIGN A557
-106E2 ; [.4316.0020.0002] # LINEAR A SIGN A559
-106E3 ; [.4317.0020.0002] # LINEAR A SIGN A563
-106E4 ; [.4318.0020.0002] # LINEAR A SIGN A564
-106E5 ; [.4319.0020.0002] # LINEAR A SIGN A565
-106E6 ; [.431A.0020.0002] # LINEAR A SIGN A566
-106E7 ; [.431B.0020.0002] # LINEAR A SIGN A568
-106E8 ; [.431C.0020.0002] # LINEAR A SIGN A569
-106E9 ; [.431D.0020.0002] # LINEAR A SIGN A570
-106EA ; [.431E.0020.0002] # LINEAR A SIGN A571
-106EB ; [.431F.0020.0002] # LINEAR A SIGN A572
-106EC ; [.4320.0020.0002] # LINEAR A SIGN A573
-106ED ; [.4321.0020.0002] # LINEAR A SIGN A574
-106EE ; [.4322.0020.0002] # LINEAR A SIGN A575
-106EF ; [.4323.0020.0002] # LINEAR A SIGN A576
-106F0 ; [.4324.0020.0002] # LINEAR A SIGN A577
-106F1 ; [.4325.0020.0002] # LINEAR A SIGN A578
-106F2 ; [.4326.0020.0002] # LINEAR A SIGN A579
-106F3 ; [.4327.0020.0002] # LINEAR A SIGN A580
-106F4 ; [.4328.0020.0002] # LINEAR A SIGN A581
-106F5 ; [.4329.0020.0002] # LINEAR A SIGN A582
-106F6 ; [.432A.0020.0002] # LINEAR A SIGN A583
-106F7 ; [.432B.0020.0002] # LINEAR A SIGN A584
-106F8 ; [.432C.0020.0002] # LINEAR A SIGN A585
-106F9 ; [.432D.0020.0002] # LINEAR A SIGN A586
-106FA ; [.432E.0020.0002] # LINEAR A SIGN A587
-106FB ; [.432F.0020.0002] # LINEAR A SIGN A588
-106FC ; [.4330.0020.0002] # LINEAR A SIGN A589
-106FD ; [.4331.0020.0002] # LINEAR A SIGN A591
-106FE ; [.4332.0020.0002] # LINEAR A SIGN A592
-106FF ; [.4333.0020.0002] # LINEAR A SIGN A594
-10700 ; [.4334.0020.0002] # LINEAR A SIGN A595
-10701 ; [.4335.0020.0002] # LINEAR A SIGN A596
-10702 ; [.4336.0020.0002] # LINEAR A SIGN A598
-10703 ; [.4337.0020.0002] # LINEAR A SIGN A600
-10704 ; [.4338.0020.0002] # LINEAR A SIGN A601
-10705 ; [.4339.0020.0002] # LINEAR A SIGN A602
-10706 ; [.433A.0020.0002] # LINEAR A SIGN A603
-10707 ; [.433B.0020.0002] # LINEAR A SIGN A604
-10708 ; [.433C.0020.0002] # LINEAR A SIGN A606
-10709 ; [.433D.0020.0002] # LINEAR A SIGN A608
-1070A ; [.433E.0020.0002] # LINEAR A SIGN A609
-1070B ; [.433F.0020.0002] # LINEAR A SIGN A610
-1070C ; [.4340.0020.0002] # LINEAR A SIGN A611
-1070D ; [.4341.0020.0002] # LINEAR A SIGN A612
-1070E ; [.4342.0020.0002] # LINEAR A SIGN A613
-1070F ; [.4343.0020.0002] # LINEAR A SIGN A614
-10710 ; [.4344.0020.0002] # LINEAR A SIGN A615
-10711 ; [.4345.0020.0002] # LINEAR A SIGN A616
-10712 ; [.4346.0020.0002] # LINEAR A SIGN A617
-10713 ; [.4347.0020.0002] # LINEAR A SIGN A618
-10714 ; [.4348.0020.0002] # LINEAR A SIGN A619
-10715 ; [.4349.0020.0002] # LINEAR A SIGN A620
-10716 ; [.434A.0020.0002] # LINEAR A SIGN A621
-10717 ; [.434B.0020.0002] # LINEAR A SIGN A622
-10718 ; [.434C.0020.0002] # LINEAR A SIGN A623
-10719 ; [.434D.0020.0002] # LINEAR A SIGN A624
-1071A ; [.434E.0020.0002] # LINEAR A SIGN A626
-1071B ; [.434F.0020.0002] # LINEAR A SIGN A627
-1071C ; [.4350.0020.0002] # LINEAR A SIGN A628
-1071D ; [.4351.0020.0002] # LINEAR A SIGN A629
-1071E ; [.4352.0020.0002] # LINEAR A SIGN A634
-1071F ; [.4353.0020.0002] # LINEAR A SIGN A637
-10720 ; [.4354.0020.0002] # LINEAR A SIGN A638
-10721 ; [.4355.0020.0002] # LINEAR A SIGN A640
-10722 ; [.4356.0020.0002] # LINEAR A SIGN A642
-10723 ; [.4357.0020.0002] # LINEAR A SIGN A643
-10724 ; [.4358.0020.0002] # LINEAR A SIGN A644
-10725 ; [.4359.0020.0002] # LINEAR A SIGN A645
-10726 ; [.435A.0020.0002] # LINEAR A SIGN A646
-10727 ; [.435B.0020.0002] # LINEAR A SIGN A648
-10728 ; [.435C.0020.0002] # LINEAR A SIGN A649
-10729 ; [.435D.0020.0002] # LINEAR A SIGN A651
-1072A ; [.435E.0020.0002] # LINEAR A SIGN A652
-1072B ; [.435F.0020.0002] # LINEAR A SIGN A653
-1072C ; [.4360.0020.0002] # LINEAR A SIGN A654
-1072D ; [.4361.0020.0002] # LINEAR A SIGN A655
-1072E ; [.4362.0020.0002] # LINEAR A SIGN A656
-1072F ; [.4363.0020.0002] # LINEAR A SIGN A657
-10730 ; [.4364.0020.0002] # LINEAR A SIGN A658
-10731 ; [.4365.0020.0002] # LINEAR A SIGN A659
-10732 ; [.4366.0020.0002] # LINEAR A SIGN A660
-10733 ; [.4367.0020.0002] # LINEAR A SIGN A661
-10734 ; [.4368.0020.0002] # LINEAR A SIGN A662
-10735 ; [.4369.0020.0002] # LINEAR A SIGN A663
-10736 ; [.436A.0020.0002] # LINEAR A SIGN A664
-10740 ; [.436B.0020.0002] # LINEAR A SIGN A701 A
-10741 ; [.436C.0020.0002] # LINEAR A SIGN A702 B
-10742 ; [.436D.0020.0002] # LINEAR A SIGN A703 D
-10743 ; [.436E.0020.0002] # LINEAR A SIGN A704 E
-10744 ; [.436F.0020.0002] # LINEAR A SIGN A705 F
-10745 ; [.4370.0020.0002] # LINEAR A SIGN A706 H
-10746 ; [.4371.0020.0002] # LINEAR A SIGN A707 J
-10747 ; [.4372.0020.0002] # LINEAR A SIGN A708 K
-10748 ; [.4373.0020.0002] # LINEAR A SIGN A709 L
-10749 ; [.4374.0020.0002] # LINEAR A SIGN A709-2 L2
-1074A ; [.4375.0020.0002] # LINEAR A SIGN A709-3 L3
-1074B ; [.4376.0020.0002] # LINEAR A SIGN A709-4 L4
-1074C ; [.4377.0020.0002] # LINEAR A SIGN A709-6 L6
-1074D ; [.4378.0020.0002] # LINEAR A SIGN A710 W
-1074E ; [.4379.0020.0002] # LINEAR A SIGN A711 X
-1074F ; [.437A.0020.0002] # LINEAR A SIGN A712 Y
-10750 ; [.437B.0020.0002] # LINEAR A SIGN A713 OMEGA
-10751 ; [.437C.0020.0002] # LINEAR A SIGN A714 ABB
-10752 ; [.437D.0020.0002] # LINEAR A SIGN A715 BB
-10753 ; [.437E.0020.0002] # LINEAR A SIGN A717 DD
-10754 ; [.437F.0020.0002] # LINEAR A SIGN A726 EYYY
-10755 ; [.4380.0020.0002] # LINEAR A SIGN A732 JE
-10760 ; [.4381.0020.0002] # LINEAR A SIGN A800
-10761 ; [.4382.0020.0002] # LINEAR A SIGN A801
-10762 ; [.4383.0020.0002] # LINEAR A SIGN A802
-10763 ; [.4384.0020.0002] # LINEAR A SIGN A803
-10764 ; [.4385.0020.0002] # LINEAR A SIGN A804
-10765 ; [.4386.0020.0002] # LINEAR A SIGN A805
-10766 ; [.4387.0020.0002] # LINEAR A SIGN A806
-10767 ; [.4388.0020.0002] # LINEAR A SIGN A807
-10800 ; [.4389.0020.0002] # CYPRIOT SYLLABLE A
-10801 ; [.438A.0020.0002] # CYPRIOT SYLLABLE E
-10802 ; [.438B.0020.0002] # CYPRIOT SYLLABLE I
-10803 ; [.438C.0020.0002] # CYPRIOT SYLLABLE O
-10804 ; [.438D.0020.0002] # CYPRIOT SYLLABLE U
-10805 ; [.438E.0020.0002] # CYPRIOT SYLLABLE JA
-10808 ; [.438F.0020.0002] # CYPRIOT SYLLABLE JO
-1080A ; [.4390.0020.0002] # CYPRIOT SYLLABLE KA
-1080B ; [.4391.0020.0002] # CYPRIOT SYLLABLE KE
-1080C ; [.4392.0020.0002] # CYPRIOT SYLLABLE KI
-1080D ; [.4393.0020.0002] # CYPRIOT SYLLABLE KO
-1080E ; [.4394.0020.0002] # CYPRIOT SYLLABLE KU
-1080F ; [.4395.0020.0002] # CYPRIOT SYLLABLE LA
-10810 ; [.4396.0020.0002] # CYPRIOT SYLLABLE LE
-10811 ; [.4397.0020.0002] # CYPRIOT SYLLABLE LI
-10812 ; [.4398.0020.0002] # CYPRIOT SYLLABLE LO
-10813 ; [.4399.0020.0002] # CYPRIOT SYLLABLE LU
-10814 ; [.439A.0020.0002] # CYPRIOT SYLLABLE MA
-10815 ; [.439B.0020.0002] # CYPRIOT SYLLABLE ME
-10816 ; [.439C.0020.0002] # CYPRIOT SYLLABLE MI
-10817 ; [.439D.0020.0002] # CYPRIOT SYLLABLE MO
-10818 ; [.439E.0020.0002] # CYPRIOT SYLLABLE MU
-10819 ; [.439F.0020.0002] # CYPRIOT SYLLABLE NA
-1081A ; [.43A0.0020.0002] # CYPRIOT SYLLABLE NE
-1081B ; [.43A1.0020.0002] # CYPRIOT SYLLABLE NI
-1081C ; [.43A2.0020.0002] # CYPRIOT SYLLABLE NO
-1081D ; [.43A3.0020.0002] # CYPRIOT SYLLABLE NU
-1081E ; [.43A4.0020.0002] # CYPRIOT SYLLABLE PA
-1081F ; [.43A5.0020.0002] # CYPRIOT SYLLABLE PE
-10820 ; [.43A6.0020.0002] # CYPRIOT SYLLABLE PI
-10821 ; [.43A7.0020.0002] # CYPRIOT SYLLABLE PO
-10822 ; [.43A8.0020.0002] # CYPRIOT SYLLABLE PU
-10823 ; [.43A9.0020.0002] # CYPRIOT SYLLABLE RA
-10824 ; [.43AA.0020.0002] # CYPRIOT SYLLABLE RE
-10825 ; [.43AB.0020.0002] # CYPRIOT SYLLABLE RI
-10826 ; [.43AC.0020.0002] # CYPRIOT SYLLABLE RO
-10827 ; [.43AD.0020.0002] # CYPRIOT SYLLABLE RU
-10828 ; [.43AE.0020.0002] # CYPRIOT SYLLABLE SA
-10829 ; [.43AF.0020.0002] # CYPRIOT SYLLABLE SE
-1082A ; [.43B0.0020.0002] # CYPRIOT SYLLABLE SI
-1082B ; [.43B1.0020.0002] # CYPRIOT SYLLABLE SO
-1082C ; [.43B2.0020.0002] # CYPRIOT SYLLABLE SU
-1082D ; [.43B3.0020.0002] # CYPRIOT SYLLABLE TA
-1082E ; [.43B4.0020.0002] # CYPRIOT SYLLABLE TE
-1082F ; [.43B5.0020.0002] # CYPRIOT SYLLABLE TI
-10830 ; [.43B6.0020.0002] # CYPRIOT SYLLABLE TO
-10831 ; [.43B7.0020.0002] # CYPRIOT SYLLABLE TU
-10832 ; [.43B8.0020.0002] # CYPRIOT SYLLABLE WA
-10833 ; [.43B9.0020.0002] # CYPRIOT SYLLABLE WE
-10834 ; [.43BA.0020.0002] # CYPRIOT SYLLABLE WI
-10835 ; [.43BB.0020.0002] # CYPRIOT SYLLABLE WO
-10837 ; [.43BC.0020.0002] # CYPRIOT SYLLABLE XA
-10838 ; [.43BD.0020.0002] # CYPRIOT SYLLABLE XE
-1083C ; [.43BE.0020.0002] # CYPRIOT SYLLABLE ZA
-1083F ; [.43BF.0020.0002] # CYPRIOT SYLLABLE ZO
-10A60 ; [.43C0.0020.0002] # OLD SOUTH ARABIAN LETTER HE
-10A61 ; [.43C1.0020.0002] # OLD SOUTH ARABIAN LETTER LAMEDH
-10A62 ; [.43C2.0020.0002] # OLD SOUTH ARABIAN LETTER HETH
-10A63 ; [.43C3.0020.0002] # OLD SOUTH ARABIAN LETTER MEM
-10A64 ; [.43C4.0020.0002] # OLD SOUTH ARABIAN LETTER QOPH
-10A65 ; [.43C5.0020.0002] # OLD SOUTH ARABIAN LETTER WAW
-10A66 ; [.43C6.0020.0002] # OLD SOUTH ARABIAN LETTER SHIN
-10A67 ; [.43C7.0020.0002] # OLD SOUTH ARABIAN LETTER RESH
-10A68 ; [.43C8.0020.0002] # OLD SOUTH ARABIAN LETTER BETH
-10A69 ; [.43C9.0020.0002] # OLD SOUTH ARABIAN LETTER TAW
-10A6A ; [.43CA.0020.0002] # OLD SOUTH ARABIAN LETTER SAT
-10A6B ; [.43CB.0020.0002] # OLD SOUTH ARABIAN LETTER KAPH
-10A6C ; [.43CC.0020.0002] # OLD SOUTH ARABIAN LETTER NUN
-10A6D ; [.43CD.0020.0002] # OLD SOUTH ARABIAN LETTER KHETH
-10A6E ; [.43CE.0020.0002] # OLD SOUTH ARABIAN LETTER SADHE
-10A6F ; [.43CF.0020.0002] # OLD SOUTH ARABIAN LETTER SAMEKH
-10A70 ; [.43D0.0020.0002] # OLD SOUTH ARABIAN LETTER FE
-10A71 ; [.43D1.0020.0002] # OLD SOUTH ARABIAN LETTER ALEF
-10A72 ; [.43D2.0020.0002] # OLD SOUTH ARABIAN LETTER AYN
-10A73 ; [.43D3.0020.0002] # OLD SOUTH ARABIAN LETTER DHADHE
-10A74 ; [.43D4.0020.0002] # OLD SOUTH ARABIAN LETTER GIMEL
-10A75 ; [.43D5.0020.0002] # OLD SOUTH ARABIAN LETTER DALETH
-10A76 ; [.43D6.0020.0002] # OLD SOUTH ARABIAN LETTER GHAYN
-10A77 ; [.43D7.0020.0002] # OLD SOUTH ARABIAN LETTER TETH
-10A78 ; [.43D8.0020.0002] # OLD SOUTH ARABIAN LETTER ZAYN
-10A79 ; [.43D9.0020.0002] # OLD SOUTH ARABIAN LETTER DHALETH
-10A7A ; [.43DA.0020.0002] # OLD SOUTH ARABIAN LETTER YODH
-10A7B ; [.43DB.0020.0002] # OLD SOUTH ARABIAN LETTER THAW
-10A7C ; [.43DC.0020.0002] # OLD SOUTH ARABIAN LETTER THETH
-10A80 ; [.43DD.0020.0002] # OLD NORTH ARABIAN LETTER HEH
-10A81 ; [.43DE.0020.0002] # OLD NORTH ARABIAN LETTER LAM
-10A82 ; [.43DF.0020.0002] # OLD NORTH ARABIAN LETTER HAH
-10A83 ; [.43E0.0020.0002] # OLD NORTH ARABIAN LETTER MEEM
-10A84 ; [.43E1.0020.0002] # OLD NORTH ARABIAN LETTER QAF
-10A85 ; [.43E2.0020.0002] # OLD NORTH ARABIAN LETTER WAW
-10A86 ; [.43E3.0020.0002] # OLD NORTH ARABIAN LETTER ES-2
-10A87 ; [.43E4.0020.0002] # OLD NORTH ARABIAN LETTER REH
-10A88 ; [.43E5.0020.0002] # OLD NORTH ARABIAN LETTER BEH
-10A89 ; [.43E6.0020.0002] # OLD NORTH ARABIAN LETTER TEH
-10A8A ; [.43E7.0020.0002] # OLD NORTH ARABIAN LETTER ES-1
-10A8B ; [.43E8.0020.0002] # OLD NORTH ARABIAN LETTER KAF
-10A8C ; [.43E9.0020.0002] # OLD NORTH ARABIAN LETTER NOON
-10A8D ; [.43EA.0020.0002] # OLD NORTH ARABIAN LETTER KHAH
-10A8E ; [.43EB.0020.0002] # OLD NORTH ARABIAN LETTER SAD
-10A8F ; [.43EC.0020.0002] # OLD NORTH ARABIAN LETTER ES-3
-10A90 ; [.43ED.0020.0002] # OLD NORTH ARABIAN LETTER FEH
-10A91 ; [.43EE.0020.0002] # OLD NORTH ARABIAN LETTER ALEF
-10A92 ; [.43EF.0020.0002] # OLD NORTH ARABIAN LETTER AIN
-10A93 ; [.43F0.0020.0002] # OLD NORTH ARABIAN LETTER DAD
-10A94 ; [.43F1.0020.0002] # OLD NORTH ARABIAN LETTER GEEM
-10A95 ; [.43F2.0020.0002] # OLD NORTH ARABIAN LETTER DAL
-10A96 ; [.43F3.0020.0002] # OLD NORTH ARABIAN LETTER GHAIN
-10A97 ; [.43F4.0020.0002] # OLD NORTH ARABIAN LETTER TAH
-10A98 ; [.43F5.0020.0002] # OLD NORTH ARABIAN LETTER ZAIN
-10A99 ; [.43F6.0020.0002] # OLD NORTH ARABIAN LETTER THAL
-10A9A ; [.43F7.0020.0002] # OLD NORTH ARABIAN LETTER YEH
-10A9B ; [.43F8.0020.0002] # OLD NORTH ARABIAN LETTER THEH
-10A9C ; [.43F9.0020.0002] # OLD NORTH ARABIAN LETTER ZAH
-10B00 ; [.43FA.0020.0002] # AVESTAN LETTER A
-10B01 ; [.43FB.0020.0002] # AVESTAN LETTER AA
-10B02 ; [.43FC.0020.0002] # AVESTAN LETTER AO
-10B03 ; [.43FD.0020.0002] # AVESTAN LETTER AAO
-10B04 ; [.43FE.0020.0002] # AVESTAN LETTER AN
-10B05 ; [.43FF.0020.0002] # AVESTAN LETTER AAN
-10B06 ; [.4400.0020.0002] # AVESTAN LETTER AE
-10B07 ; [.4401.0020.0002] # AVESTAN LETTER AEE
-10B08 ; [.4402.0020.0002] # AVESTAN LETTER E
-10B09 ; [.4403.0020.0002] # AVESTAN LETTER EE
-10B0A ; [.4404.0020.0002] # AVESTAN LETTER O
-10B0B ; [.4405.0020.0002] # AVESTAN LETTER OO
-10B0C ; [.4406.0020.0002] # AVESTAN LETTER I
-10B0D ; [.4407.0020.0002] # AVESTAN LETTER II
-10B0E ; [.4408.0020.0002] # AVESTAN LETTER U
-10B0F ; [.4409.0020.0002] # AVESTAN LETTER UU
-10B10 ; [.440A.0020.0002] # AVESTAN LETTER KE
-10B11 ; [.440B.0020.0002] # AVESTAN LETTER XE
-10B12 ; [.440C.0020.0002] # AVESTAN LETTER XYE
-10B13 ; [.440D.0020.0002] # AVESTAN LETTER XVE
-10B14 ; [.440E.0020.0002] # AVESTAN LETTER GE
-10B15 ; [.440F.0020.0002] # AVESTAN LETTER GGE
-10B16 ; [.4410.0020.0002] # AVESTAN LETTER GHE
-10B17 ; [.4411.0020.0002] # AVESTAN LETTER CE
-10B18 ; [.4412.0020.0002] # AVESTAN LETTER JE
-10B19 ; [.4413.0020.0002] # AVESTAN LETTER TE
-10B1A ; [.4414.0020.0002] # AVESTAN LETTER THE
-10B1B ; [.4415.0020.0002] # AVESTAN LETTER DE
-10B1C ; [.4416.0020.0002] # AVESTAN LETTER DHE
-10B1D ; [.4417.0020.0002] # AVESTAN LETTER TTE
-10B1E ; [.4418.0020.0002] # AVESTAN LETTER PE
-10B1F ; [.4419.0020.0002] # AVESTAN LETTER FE
-10B20 ; [.441A.0020.0002] # AVESTAN LETTER BE
-10B21 ; [.441B.0020.0002] # AVESTAN LETTER BHE
-10B22 ; [.441C.0020.0002] # AVESTAN LETTER NGE
-10B23 ; [.441D.0020.0002] # AVESTAN LETTER NGYE
-10B24 ; [.441E.0020.0002] # AVESTAN LETTER NGVE
-10B25 ; [.441F.0020.0002] # AVESTAN LETTER NE
-10B26 ; [.4420.0020.0002] # AVESTAN LETTER NYE
-10B27 ; [.4421.0020.0002] # AVESTAN LETTER NNE
-10B28 ; [.4422.0020.0002] # AVESTAN LETTER ME
-10B29 ; [.4423.0020.0002] # AVESTAN LETTER HME
-10B2A ; [.4424.0020.0002] # AVESTAN LETTER YYE
-10B2B ; [.4425.0020.0002] # AVESTAN LETTER YE
-10B2C ; [.4426.0020.0002] # AVESTAN LETTER VE
-10B2D ; [.4427.0020.0002] # AVESTAN LETTER RE
-10B2E ; [.4427.0020.0004][.0000.0108.0004] # AVESTAN LETTER LE
-10B2F ; [.4428.0020.0002] # AVESTAN LETTER SE
-10B30 ; [.4429.0020.0002] # AVESTAN LETTER ZE
-10B31 ; [.442A.0020.0002] # AVESTAN LETTER SHE
-10B32 ; [.442B.0020.0002] # AVESTAN LETTER ZHE
-10B33 ; [.442C.0020.0002] # AVESTAN LETTER SHYE
-10B34 ; [.442D.0020.0002] # AVESTAN LETTER SSHE
-10B35 ; [.442E.0020.0002] # AVESTAN LETTER HE
-10860 ; [.442F.0020.0002] # PALMYRENE LETTER ALEPH
-10861 ; [.4430.0020.0002] # PALMYRENE LETTER BETH
-10862 ; [.4431.0020.0002] # PALMYRENE LETTER GIMEL
-10863 ; [.4432.0020.0002] # PALMYRENE LETTER DALETH
-10864 ; [.4433.0020.0002] # PALMYRENE LETTER HE
-10865 ; [.4434.0020.0002] # PALMYRENE LETTER WAW
-10866 ; [.4435.0020.0002] # PALMYRENE LETTER ZAYIN
-10867 ; [.4436.0020.0002] # PALMYRENE LETTER HETH
-10868 ; [.4437.0020.0002] # PALMYRENE LETTER TETH
-10869 ; [.4438.0020.0002] # PALMYRENE LETTER YODH
-1086A ; [.4439.0020.0002] # PALMYRENE LETTER KAPH
-1086B ; [.443A.0020.0002] # PALMYRENE LETTER LAMEDH
-1086C ; [.443B.0020.0002] # PALMYRENE LETTER MEM
-1086E ; [.443C.0020.0002] # PALMYRENE LETTER NUN
-1086D ; [.443C.0020.0019] # PALMYRENE LETTER FINAL NUN
-1086F ; [.443D.0020.0002] # PALMYRENE LETTER SAMEKH
-10870 ; [.443E.0020.0002] # PALMYRENE LETTER AYIN
-10871 ; [.443F.0020.0002] # PALMYRENE LETTER PE
-10872 ; [.4440.0020.0002] # PALMYRENE LETTER SADHE
-10873 ; [.4441.0020.0002] # PALMYRENE LETTER QOPH
-10874 ; [.4442.0020.0002] # PALMYRENE LETTER RESH
-10875 ; [.4443.0020.0002] # PALMYRENE LETTER SHIN
-10876 ; [.4444.0020.0002] # PALMYRENE LETTER TAW
-10881 ; [.4445.0020.0002] # NABATAEAN LETTER ALEPH
-10880 ; [.4445.0020.0019] # NABATAEAN LETTER FINAL ALEPH
-10883 ; [.4446.0020.0002] # NABATAEAN LETTER BETH
-10882 ; [.4446.0020.0019] # NABATAEAN LETTER FINAL BETH
-10884 ; [.4447.0020.0002] # NABATAEAN LETTER GIMEL
-10885 ; [.4448.0020.0002] # NABATAEAN LETTER DALETH
-10887 ; [.4449.0020.0002] # NABATAEAN LETTER HE
-10886 ; [.4449.0020.0019] # NABATAEAN LETTER FINAL HE
-10888 ; [.444A.0020.0002] # NABATAEAN LETTER WAW
-10889 ; [.444B.0020.0002] # NABATAEAN LETTER ZAYIN
-1088A ; [.444C.0020.0002] # NABATAEAN LETTER HETH
-1088B ; [.444D.0020.0002] # NABATAEAN LETTER TETH
-1088D ; [.444E.0020.0002] # NABATAEAN LETTER YODH
-1088C ; [.444E.0020.0019] # NABATAEAN LETTER FINAL YODH
-1088F ; [.444F.0020.0002] # NABATAEAN LETTER KAPH
-1088E ; [.444F.0020.0019] # NABATAEAN LETTER FINAL KAPH
-10891 ; [.4450.0020.0002] # NABATAEAN LETTER LAMEDH
-10890 ; [.4450.0020.0019] # NABATAEAN LETTER FINAL LAMEDH
-10893 ; [.4451.0020.0002] # NABATAEAN LETTER MEM
-10892 ; [.4451.0020.0019] # NABATAEAN LETTER FINAL MEM
-10895 ; [.4452.0020.0002] # NABATAEAN LETTER NUN
-10894 ; [.4452.0020.0019] # NABATAEAN LETTER FINAL NUN
-10896 ; [.4453.0020.0002] # NABATAEAN LETTER SAMEKH
-10897 ; [.4454.0020.0002] # NABATAEAN LETTER AYIN
-10898 ; [.4455.0020.0002] # NABATAEAN LETTER PE
-10899 ; [.4456.0020.0002] # NABATAEAN LETTER SADHE
-1089A ; [.4457.0020.0002] # NABATAEAN LETTER QOPH
-1089B ; [.4458.0020.0002] # NABATAEAN LETTER RESH
-1089D ; [.4459.0020.0002] # NABATAEAN LETTER SHIN
-1089C ; [.4459.0020.0019] # NABATAEAN LETTER FINAL SHIN
-1089E ; [.445A.0020.0002] # NABATAEAN LETTER TAW
-10840 ; [.445B.0020.0002] # IMPERIAL ARAMAIC LETTER ALEPH
-10841 ; [.445C.0020.0002] # IMPERIAL ARAMAIC LETTER BETH
-10842 ; [.445D.0020.0002] # IMPERIAL ARAMAIC LETTER GIMEL
-10843 ; [.445E.0020.0002] # IMPERIAL ARAMAIC LETTER DALETH
-10844 ; [.445F.0020.0002] # IMPERIAL ARAMAIC LETTER HE
-10845 ; [.4460.0020.0002] # IMPERIAL ARAMAIC LETTER WAW
-10846 ; [.4461.0020.0002] # IMPERIAL ARAMAIC LETTER ZAYIN
-10847 ; [.4462.0020.0002] # IMPERIAL ARAMAIC LETTER HETH
-10848 ; [.4463.0020.0002] # IMPERIAL ARAMAIC LETTER TETH
-10849 ; [.4464.0020.0002] # IMPERIAL ARAMAIC LETTER YODH
-1084A ; [.4465.0020.0002] # IMPERIAL ARAMAIC LETTER KAPH
-1084B ; [.4466.0020.0002] # IMPERIAL ARAMAIC LETTER LAMEDH
-1084C ; [.4467.0020.0002] # IMPERIAL ARAMAIC LETTER MEM
-1084D ; [.4468.0020.0002] # IMPERIAL ARAMAIC LETTER NUN
-1084E ; [.4469.0020.0002] # IMPERIAL ARAMAIC LETTER SAMEKH
-1084F ; [.446A.0020.0002] # IMPERIAL ARAMAIC LETTER AYIN
-10850 ; [.446B.0020.0002] # IMPERIAL ARAMAIC LETTER PE
-10851 ; [.446C.0020.0002] # IMPERIAL ARAMAIC LETTER SADHE
-10852 ; [.446D.0020.0002] # IMPERIAL ARAMAIC LETTER QOPH
-10853 ; [.446E.0020.0002] # IMPERIAL ARAMAIC LETTER RESH
-10854 ; [.446F.0020.0002] # IMPERIAL ARAMAIC LETTER SHIN
-10855 ; [.4470.0020.0002] # IMPERIAL ARAMAIC LETTER TAW
-10B40 ; [.4471.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ALEPH
-10B41 ; [.4472.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER BETH
-10B42 ; [.4473.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER GIMEL
-10B43 ; [.4474.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER DALETH
-10B44 ; [.4475.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HE
-10B45 ; [.4476.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER WAW
-10B46 ; [.4477.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ZAYIN
-10B47 ; [.4478.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HETH
-10B48 ; [.4479.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TETH
-10B49 ; [.447A.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER YODH
-10B4A ; [.447B.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER KAPH
-10B4B ; [.447C.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER LAMEDH
-10B4C ; [.447D.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER MEM
-10B4D ; [.447E.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER NUN
-10B4E ; [.447F.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SAMEKH
-10B4F ; [.4480.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER AYIN
-10B50 ; [.4481.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER PE
-10B51 ; [.4482.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SADHE
-10B52 ; [.4483.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER QOPH
-10B53 ; [.4484.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER RESH
-10B54 ; [.4485.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SHIN
-10B55 ; [.4486.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TAW
-10B60 ; [.4487.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ALEPH
-10B61 ; [.4488.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER BETH
-10B62 ; [.4489.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER GIMEL
-10B63 ; [.448A.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER DALETH
-10B64 ; [.448B.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HE
-10B65 ; [.448C.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
-10B66 ; [.448D.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ZAYIN
-10B67 ; [.448E.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HETH
-10B68 ; [.448F.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TETH
-10B69 ; [.4490.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER YODH
-10B6A ; [.4491.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER KAPH
-10B6B ; [.4492.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER LAMEDH
-10B6C ; [.4493.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
-10B6D ; [.4494.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER NUN
-10B6E ; [.4495.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SAMEKH
-10B6F ; [.4496.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER PE
-10B70 ; [.4497.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SADHE
-10B71 ; [.4498.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SHIN
-10B72 ; [.4499.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TAW
-10B80 ; [.449A.0020.0002] # PSALTER PAHLAVI LETTER ALEPH
-10B81 ; [.449B.0020.0002] # PSALTER PAHLAVI LETTER BETH
-10B82 ; [.449C.0020.0002] # PSALTER PAHLAVI LETTER GIMEL
-10B83 ; [.449D.0020.0002] # PSALTER PAHLAVI LETTER DALETH
-10B84 ; [.449E.0020.0002] # PSALTER PAHLAVI LETTER HE
-10B85 ; [.449F.0020.0002] # PSALTER PAHLAVI LETTER WAW-AYIN-RESH
-10B86 ; [.44A0.0020.0002] # PSALTER PAHLAVI LETTER ZAYIN
-10B87 ; [.44A1.0020.0002] # PSALTER PAHLAVI LETTER HETH
-10B88 ; [.44A2.0020.0002] # PSALTER PAHLAVI LETTER YODH
-10B89 ; [.44A3.0020.0002] # PSALTER PAHLAVI LETTER KAPH
-10B8A ; [.44A4.0020.0002] # PSALTER PAHLAVI LETTER LAMEDH
-10B8B ; [.44A5.0020.0002] # PSALTER PAHLAVI LETTER MEM-QOPH
-10B8C ; [.44A6.0020.0002] # PSALTER PAHLAVI LETTER NUN
-10B8D ; [.44A7.0020.0002] # PSALTER PAHLAVI LETTER SAMEKH
-10B8E ; [.44A8.0020.0002] # PSALTER PAHLAVI LETTER PE
-10B8F ; [.44A9.0020.0002] # PSALTER PAHLAVI LETTER SADHE
-10B90 ; [.44AA.0020.0002] # PSALTER PAHLAVI LETTER SHIN
-10B91 ; [.44AB.0020.0002] # PSALTER PAHLAVI LETTER TAW
-10AC0 ; [.44AC.0020.0002] # MANICHAEAN LETTER ALEPH
-10AC1 ; [.44AD.0020.0002] # MANICHAEAN LETTER BETH
-10AC2 ; [.44AE.0020.0002] # MANICHAEAN LETTER BHETH
-10AC3 ; [.44AF.0020.0002] # MANICHAEAN LETTER GIMEL
-10AC4 ; [.44B0.0020.0002] # MANICHAEAN LETTER GHIMEL
-10AC5 ; [.44B1.0020.0002] # MANICHAEAN LETTER DALETH
-10AC6 ; [.44B2.0020.0002] # MANICHAEAN LETTER HE
-10AC7 ; [.44B3.0020.0002] # MANICHAEAN LETTER WAW
-10AC8 ; [.44B3.0020.0004][.0000.0109.0004] # MANICHAEAN SIGN UD
-10AC9 ; [.44B4.0020.0002] # MANICHAEAN LETTER ZAYIN
-10ACA ; [.44B5.0020.0002] # MANICHAEAN LETTER ZHAYIN
-10ACB ; [.44B6.0020.0002] # MANICHAEAN LETTER JAYIN
-10ACC ; [.44B7.0020.0002] # MANICHAEAN LETTER JHAYIN
-10ACD ; [.44B8.0020.0002] # MANICHAEAN LETTER HETH
-10ACE ; [.44B9.0020.0002] # MANICHAEAN LETTER TETH
-10ACF ; [.44BA.0020.0002] # MANICHAEAN LETTER YODH
-10AD0 ; [.44BB.0020.0002] # MANICHAEAN LETTER KAPH
-10AD1 ; [.44BC.0020.0002] # MANICHAEAN LETTER XAPH
-10AD2 ; [.44BD.0020.0002] # MANICHAEAN LETTER KHAPH
-10AD3 ; [.44BE.0020.0002] # MANICHAEAN LETTER LAMEDH
-10AD4 ; [.44BF.0020.0002] # MANICHAEAN LETTER DHAMEDH
-10AD5 ; [.44C0.0020.0002] # MANICHAEAN LETTER THAMEDH
-10AD6 ; [.44C1.0020.0002] # MANICHAEAN LETTER MEM
-10AD7 ; [.44C2.0020.0002] # MANICHAEAN LETTER NUN
-10AD8 ; [.44C3.0020.0002] # MANICHAEAN LETTER SAMEKH
-10AD9 ; [.44C4.0020.0002] # MANICHAEAN LETTER AYIN
-10ADA ; [.44C5.0020.0002] # MANICHAEAN LETTER AAYIN
-10ADB ; [.44C6.0020.0002] # MANICHAEAN LETTER PE
-10ADC ; [.44C7.0020.0002] # MANICHAEAN LETTER FE
-10ADD ; [.44C8.0020.0002] # MANICHAEAN LETTER SADHE
-10ADE ; [.44C9.0020.0002] # MANICHAEAN LETTER QOPH
-10ADF ; [.44CA.0020.0002] # MANICHAEAN LETTER XOPH
-10AE0 ; [.44CB.0020.0002] # MANICHAEAN LETTER QHOPH
-10AE1 ; [.44CC.0020.0002] # MANICHAEAN LETTER RESH
-10AE2 ; [.44CD.0020.0002] # MANICHAEAN LETTER SHIN
-10AE3 ; [.44CE.0020.0002] # MANICHAEAN LETTER SSHIN
-10AE4 ; [.44CF.0020.0002] # MANICHAEAN LETTER TAW
-10380 ; [.44D0.0020.0002] # UGARITIC LETTER ALPA
-10381 ; [.44D1.0020.0002] # UGARITIC LETTER BETA
-10382 ; [.44D2.0020.0002] # UGARITIC LETTER GAMLA
-10383 ; [.44D3.0020.0002] # UGARITIC LETTER KHA
-10384 ; [.44D4.0020.0002] # UGARITIC LETTER DELTA
-10385 ; [.44D5.0020.0002] # UGARITIC LETTER HO
-10386 ; [.44D6.0020.0002] # UGARITIC LETTER WO
-10387 ; [.44D7.0020.0002] # UGARITIC LETTER ZETA
-10388 ; [.44D8.0020.0002] # UGARITIC LETTER HOTA
-10389 ; [.44D9.0020.0002] # UGARITIC LETTER TET
-1038A ; [.44DA.0020.0002] # UGARITIC LETTER YOD
-1038B ; [.44DB.0020.0002] # UGARITIC LETTER KAF
-1038C ; [.44DC.0020.0002] # UGARITIC LETTER SHIN
-1038D ; [.44DD.0020.0002] # UGARITIC LETTER LAMDA
-1038E ; [.44DE.0020.0002] # UGARITIC LETTER MEM
-1038F ; [.44DF.0020.0002] # UGARITIC LETTER DHAL
-10390 ; [.44E0.0020.0002] # UGARITIC LETTER NUN
-10391 ; [.44E1.0020.0002] # UGARITIC LETTER ZU
-10392 ; [.44E2.0020.0002] # UGARITIC LETTER SAMKA
-10393 ; [.44E3.0020.0002] # UGARITIC LETTER AIN
-10394 ; [.44E4.0020.0002] # UGARITIC LETTER PU
-10395 ; [.44E5.0020.0002] # UGARITIC LETTER SADE
-10396 ; [.44E6.0020.0002] # UGARITIC LETTER QOPA
-10397 ; [.44E7.0020.0002] # UGARITIC LETTER RASHA
-10398 ; [.44E8.0020.0002] # UGARITIC LETTER THANNA
-10399 ; [.44E9.0020.0002] # UGARITIC LETTER GHAIN
-1039A ; [.44EA.0020.0002] # UGARITIC LETTER TO
-1039B ; [.44EB.0020.0002] # UGARITIC LETTER I
-1039C ; [.44EC.0020.0002] # UGARITIC LETTER U
-1039D ; [.44ED.0020.0002] # UGARITIC LETTER SSU
-103A0 ; [.44EE.0020.0002] # OLD PERSIAN SIGN A
-103A1 ; [.44EF.0020.0002] # OLD PERSIAN SIGN I
-103A2 ; [.44F0.0020.0002] # OLD PERSIAN SIGN U
-103A3 ; [.44F1.0020.0002] # OLD PERSIAN SIGN KA
-103A4 ; [.44F2.0020.0002] # OLD PERSIAN SIGN KU
-103A5 ; [.44F3.0020.0002] # OLD PERSIAN SIGN GA
-103A6 ; [.44F4.0020.0002] # OLD PERSIAN SIGN GU
-103A7 ; [.44F5.0020.0002] # OLD PERSIAN SIGN XA
-103A8 ; [.44F6.0020.0002] # OLD PERSIAN SIGN CA
-103A9 ; [.44F7.0020.0002] # OLD PERSIAN SIGN JA
-103AA ; [.44F8.0020.0002] # OLD PERSIAN SIGN JI
-103AB ; [.44F9.0020.0002] # OLD PERSIAN SIGN TA
-103AC ; [.44FA.0020.0002] # OLD PERSIAN SIGN TU
-103AD ; [.44FB.0020.0002] # OLD PERSIAN SIGN DA
-103AE ; [.44FC.0020.0002] # OLD PERSIAN SIGN DI
-103AF ; [.44FD.0020.0002] # OLD PERSIAN SIGN DU
-103B0 ; [.44FE.0020.0002] # OLD PERSIAN SIGN THA
-103B1 ; [.44FF.0020.0002] # OLD PERSIAN SIGN PA
-103B2 ; [.4500.0020.0002] # OLD PERSIAN SIGN BA
-103B3 ; [.4501.0020.0002] # OLD PERSIAN SIGN FA
-103B4 ; [.4502.0020.0002] # OLD PERSIAN SIGN NA
-103B5 ; [.4503.0020.0002] # OLD PERSIAN SIGN NU
-103B6 ; [.4504.0020.0002] # OLD PERSIAN SIGN MA
-103B7 ; [.4505.0020.0002] # OLD PERSIAN SIGN MI
-103B8 ; [.4506.0020.0002] # OLD PERSIAN SIGN MU
-103B9 ; [.4507.0020.0002] # OLD PERSIAN SIGN YA
-103BA ; [.4508.0020.0002] # OLD PERSIAN SIGN VA
-103BB ; [.4509.0020.0002] # OLD PERSIAN SIGN VI
-103BC ; [.450A.0020.0002] # OLD PERSIAN SIGN RA
-103BD ; [.450B.0020.0002] # OLD PERSIAN SIGN RU
-103BE ; [.450C.0020.0002] # OLD PERSIAN SIGN LA
-103BF ; [.450D.0020.0002] # OLD PERSIAN SIGN SA
-103C0 ; [.450E.0020.0002] # OLD PERSIAN SIGN ZA
-103C1 ; [.450F.0020.0002] # OLD PERSIAN SIGN SHA
-103C2 ; [.4510.0020.0002] # OLD PERSIAN SIGN SSA
-103C3 ; [.4511.0020.0002] # OLD PERSIAN SIGN HA
-103C8 ; [.4512.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA
-103C9 ; [.4513.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA-2
-103CA ; [.4514.0020.0002] # OLD PERSIAN SIGN AURAMAZDAAHA
-103CB ; [.4515.0020.0002] # OLD PERSIAN SIGN XSHAAYATHIYA
-103CC ; [.4516.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH
-103CD ; [.4517.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH-2
-103CE ; [.4518.0020.0002] # OLD PERSIAN SIGN BAGA
-103CF ; [.4519.0020.0002] # OLD PERSIAN SIGN BUUMISH
-12000 ; [.451A.0020.0002] # CUNEIFORM SIGN A
-12001 ; [.451B.0020.0002] # CUNEIFORM SIGN A TIMES A
-12002 ; [.451C.0020.0002] # CUNEIFORM SIGN A TIMES BAD
-12003 ; [.451D.0020.0002] # CUNEIFORM SIGN A TIMES GAN2 TENU
-12004 ; [.451E.0020.0002] # CUNEIFORM SIGN A TIMES HA
-12005 ; [.451F.0020.0002] # CUNEIFORM SIGN A TIMES IGI
-12006 ; [.4520.0020.0002] # CUNEIFORM SIGN A TIMES LAGAR GUNU
-12007 ; [.4521.0020.0002] # CUNEIFORM SIGN A TIMES MUSH
-12008 ; [.4522.0020.0002] # CUNEIFORM SIGN A TIMES SAG
-12009 ; [.4523.0020.0002] # CUNEIFORM SIGN A2
-1200A ; [.4524.0020.0002] # CUNEIFORM SIGN AB
-1200B ; [.4525.0020.0002] # CUNEIFORM SIGN AB TIMES ASH2
-1200C ; [.4526.0020.0002] # CUNEIFORM SIGN AB TIMES DUN3 GUNU
-1200D ; [.4527.0020.0002] # CUNEIFORM SIGN AB TIMES GAL
-1200E ; [.4528.0020.0002] # CUNEIFORM SIGN AB TIMES GAN2 TENU
-1200F ; [.4529.0020.0002] # CUNEIFORM SIGN AB TIMES HA
-12010 ; [.452A.0020.0002] # CUNEIFORM SIGN AB TIMES IGI GUNU
-12011 ; [.452B.0020.0002] # CUNEIFORM SIGN AB TIMES IMIN
-12012 ; [.452C.0020.0002] # CUNEIFORM SIGN AB TIMES LAGAB
-12013 ; [.452D.0020.0002] # CUNEIFORM SIGN AB TIMES SHESH
-12014 ; [.452E.0020.0002] # CUNEIFORM SIGN AB TIMES U PLUS U PLUS U
-12015 ; [.452F.0020.0002] # CUNEIFORM SIGN AB GUNU
-12016 ; [.4530.0020.0002] # CUNEIFORM SIGN AB2
-12017 ; [.4531.0020.0002] # CUNEIFORM SIGN AB2 TIMES BALAG
-12018 ; [.4532.0020.0002] # CUNEIFORM SIGN AB2 TIMES GAN2 TENU
-12019 ; [.4533.0020.0002] # CUNEIFORM SIGN AB2 TIMES ME PLUS EN
-1201A ; [.4534.0020.0002] # CUNEIFORM SIGN AB2 TIMES SHA3
-1201B ; [.4535.0020.0002] # CUNEIFORM SIGN AB2 TIMES TAK4
-1201C ; [.4536.0020.0002] # CUNEIFORM SIGN AD
-1201D ; [.4537.0020.0002] # CUNEIFORM SIGN AK
-1201E ; [.4538.0020.0002] # CUNEIFORM SIGN AK TIMES ERIN2
-1201F ; [.4539.0020.0002] # CUNEIFORM SIGN AK TIMES SHITA PLUS GISH
-12020 ; [.453A.0020.0002] # CUNEIFORM SIGN AL
-12021 ; [.453B.0020.0002] # CUNEIFORM SIGN AL TIMES AL
-12022 ; [.453C.0020.0002] # CUNEIFORM SIGN AL TIMES DIM2
-12023 ; [.453D.0020.0002] # CUNEIFORM SIGN AL TIMES GISH
-12024 ; [.453E.0020.0002] # CUNEIFORM SIGN AL TIMES HA
-12025 ; [.453F.0020.0002] # CUNEIFORM SIGN AL TIMES KAD3
-12026 ; [.4540.0020.0002] # CUNEIFORM SIGN AL TIMES KI
-12027 ; [.4541.0020.0002] # CUNEIFORM SIGN AL TIMES SHE
-12028 ; [.4542.0020.0002] # CUNEIFORM SIGN AL TIMES USH
-12029 ; [.4543.0020.0002] # CUNEIFORM SIGN ALAN
-1202A ; [.4544.0020.0002] # CUNEIFORM SIGN ALEPH
-1202B ; [.4545.0020.0002] # CUNEIFORM SIGN AMAR
-1202C ; [.4546.0020.0002] # CUNEIFORM SIGN AMAR TIMES SHE
-1202D ; [.4547.0020.0002] # CUNEIFORM SIGN AN
-1202E ; [.4548.0020.0002] # CUNEIFORM SIGN AN OVER AN
-1202F ; [.4549.0020.0002] # CUNEIFORM SIGN AN THREE TIMES
-12030 ; [.454A.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA
-12031 ; [.454B.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA SQUARED
-12032 ; [.454C.0020.0002] # CUNEIFORM SIGN ANSHE
-12033 ; [.454D.0020.0002] # CUNEIFORM SIGN APIN
-12034 ; [.454E.0020.0002] # CUNEIFORM SIGN ARAD
-12035 ; [.454F.0020.0002] # CUNEIFORM SIGN ARAD TIMES KUR
-12036 ; [.4550.0020.0002] # CUNEIFORM SIGN ARKAB
-12037 ; [.4551.0020.0002] # CUNEIFORM SIGN ASAL2
-12038 ; [.4552.0020.0002] # CUNEIFORM SIGN ASH
-12039 ; [.4553.0020.0002] # CUNEIFORM SIGN ASH ZIDA TENU
-1203A ; [.4554.0020.0002] # CUNEIFORM SIGN ASH KABA TENU
-1203B ; [.4555.0020.0002] # CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP
-1203C ; [.4556.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH
-1203D ; [.4557.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH
-1203E ; [.4558.0020.0002] # CUNEIFORM SIGN ASH2
-1203F ; [.4559.0020.0002] # CUNEIFORM SIGN ASHGAB
-12040 ; [.455A.0020.0002] # CUNEIFORM SIGN BA
-12041 ; [.455B.0020.0002] # CUNEIFORM SIGN BAD
-12042 ; [.455C.0020.0002] # CUNEIFORM SIGN BAG3
-12043 ; [.455D.0020.0002] # CUNEIFORM SIGN BAHAR2
-12044 ; [.455E.0020.0002] # CUNEIFORM SIGN BAL
-12045 ; [.455F.0020.0002] # CUNEIFORM SIGN BAL OVER BAL
-12046 ; [.4560.0020.0002] # CUNEIFORM SIGN BALAG
-12047 ; [.4561.0020.0002] # CUNEIFORM SIGN BAR
-12048 ; [.4562.0020.0002] # CUNEIFORM SIGN BARA2
-12049 ; [.4563.0020.0002] # CUNEIFORM SIGN BI
-1204A ; [.4564.0020.0002] # CUNEIFORM SIGN BI TIMES A
-1204B ; [.4565.0020.0002] # CUNEIFORM SIGN BI TIMES GAR
-1204C ; [.4566.0020.0002] # CUNEIFORM SIGN BI TIMES IGI GUNU
-1204D ; [.4567.0020.0002] # CUNEIFORM SIGN BU
-1204E ; [.4568.0020.0002] # CUNEIFORM SIGN BU OVER BU AB
-1204F ; [.4569.0020.0002] # CUNEIFORM SIGN BU OVER BU UN
-12050 ; [.456A.0020.0002] # CUNEIFORM SIGN BU CROSSING BU
-12051 ; [.456B.0020.0002] # CUNEIFORM SIGN BULUG
-12052 ; [.456C.0020.0002] # CUNEIFORM SIGN BULUG OVER BULUG
-12053 ; [.456D.0020.0002] # CUNEIFORM SIGN BUR
-12054 ; [.456E.0020.0002] # CUNEIFORM SIGN BUR2
-12055 ; [.456F.0020.0002] # CUNEIFORM SIGN DA
-12056 ; [.4570.0020.0002] # CUNEIFORM SIGN DAG
-12057 ; [.4571.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH
-12058 ; [.4572.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES AMAR
-12059 ; [.4573.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BALAG
-1205A ; [.4574.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BI
-1205B ; [.4575.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA
-1205C ; [.4576.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH
-1205D ; [.4577.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GI
-1205E ; [.4578.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GIR2
-1205F ; [.4579.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GUD
-12060 ; [.457A.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES HA
-12061 ; [.457B.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR
-12062 ; [.457C.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU
-12063 ; [.457D.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES KAK
-12064 ; [.457E.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LA
-12065 ; [.457F.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU
-12066 ; [.4580.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2
-12067 ; [.4581.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LUM
-12068 ; [.4582.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES NE
-12069 ; [.4583.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP
-1206A ; [.4584.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES SI
-1206B ; [.4585.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES TAK4
-1206C ; [.4586.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2
-1206D ; [.4587.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES USH
-1206E ; [.4588.0020.0002] # CUNEIFORM SIGN DAM
-1206F ; [.4589.0020.0002] # CUNEIFORM SIGN DAR
-12070 ; [.458A.0020.0002] # CUNEIFORM SIGN DARA3
-12071 ; [.458B.0020.0002] # CUNEIFORM SIGN DARA4
-12072 ; [.458C.0020.0002] # CUNEIFORM SIGN DI
-12073 ; [.458D.0020.0002] # CUNEIFORM SIGN DIB
-12074 ; [.458E.0020.0002] # CUNEIFORM SIGN DIM
-12075 ; [.458F.0020.0002] # CUNEIFORM SIGN DIM TIMES SHE
-12076 ; [.4590.0020.0002] # CUNEIFORM SIGN DIM2
-12077 ; [.4591.0020.0002] # CUNEIFORM SIGN DIN
-12078 ; [.4592.0020.0002] # CUNEIFORM SIGN DIN KASKAL U GUNU DISH
-12079 ; [.4593.0020.0002] # CUNEIFORM SIGN DISH
-1207A ; [.4594.0020.0002] # CUNEIFORM SIGN DU
-1207B ; [.4595.0020.0002] # CUNEIFORM SIGN DU OVER DU
-1207C ; [.4596.0020.0002] # CUNEIFORM SIGN DU GUNU
-1207D ; [.4597.0020.0002] # CUNEIFORM SIGN DU SHESHIG
-1207E ; [.4598.0020.0002] # CUNEIFORM SIGN DUB
-1207F ; [.4599.0020.0002] # CUNEIFORM SIGN DUB TIMES ESH2
-12080 ; [.459A.0020.0002] # CUNEIFORM SIGN DUB2
-12081 ; [.459B.0020.0002] # CUNEIFORM SIGN DUG
-12082 ; [.459C.0020.0002] # CUNEIFORM SIGN DUGUD
-12083 ; [.459D.0020.0002] # CUNEIFORM SIGN DUH
-12084 ; [.459E.0020.0002] # CUNEIFORM SIGN DUN
-12085 ; [.459F.0020.0002] # CUNEIFORM SIGN DUN3
-12086 ; [.45A0.0020.0002] # CUNEIFORM SIGN DUN3 GUNU
-12087 ; [.45A1.0020.0002] # CUNEIFORM SIGN DUN3 GUNU GUNU
-12088 ; [.45A2.0020.0002] # CUNEIFORM SIGN DUN4
-12089 ; [.45A3.0020.0002] # CUNEIFORM SIGN DUR2
-1208A ; [.45A4.0020.0002] # CUNEIFORM SIGN E
-1208B ; [.45A5.0020.0002] # CUNEIFORM SIGN E TIMES PAP
-1208C ; [.45A6.0020.0002] # CUNEIFORM SIGN E OVER E NUN OVER NUN
-1208D ; [.45A7.0020.0002] # CUNEIFORM SIGN E2
-1208E ; [.45A8.0020.0002] # CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA
-1208F ; [.45A9.0020.0002] # CUNEIFORM SIGN E2 TIMES GAR
-12090 ; [.45AA.0020.0002] # CUNEIFORM SIGN E2 TIMES MI
-12091 ; [.45AB.0020.0002] # CUNEIFORM SIGN E2 TIMES SAL
-12092 ; [.45AC.0020.0002] # CUNEIFORM SIGN E2 TIMES SHE
-12093 ; [.45AD.0020.0002] # CUNEIFORM SIGN E2 TIMES U
-12094 ; [.45AE.0020.0002] # CUNEIFORM SIGN EDIN
-12095 ; [.45AF.0020.0002] # CUNEIFORM SIGN EGIR
-12096 ; [.45B0.0020.0002] # CUNEIFORM SIGN EL
-12097 ; [.45B1.0020.0002] # CUNEIFORM SIGN EN
-12098 ; [.45B2.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2
-12099 ; [.45B3.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2 TENU
-1209A ; [.45B4.0020.0002] # CUNEIFORM SIGN EN TIMES ME
-1209B ; [.45B5.0020.0002] # CUNEIFORM SIGN EN CROSSING EN
-1209C ; [.45B6.0020.0002] # CUNEIFORM SIGN EN OPPOSING EN
-1209D ; [.45B7.0020.0002] # CUNEIFORM SIGN EN SQUARED
-1209E ; [.45B8.0020.0002] # CUNEIFORM SIGN EREN
-1209F ; [.45B9.0020.0002] # CUNEIFORM SIGN ERIN2
-120A0 ; [.45BA.0020.0002] # CUNEIFORM SIGN ESH2
-120A1 ; [.45BB.0020.0002] # CUNEIFORM SIGN EZEN
-120A2 ; [.45BC.0020.0002] # CUNEIFORM SIGN EZEN TIMES A
-120A3 ; [.45BD.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL
-120A4 ; [.45BE.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL
-120A5 ; [.45BF.0020.0002] # CUNEIFORM SIGN EZEN TIMES AN
-120A6 ; [.45C0.0020.0002] # CUNEIFORM SIGN EZEN TIMES BAD
-120A7 ; [.45C1.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU
-120A8 ; [.45C2.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU
-120A9 ; [.45C3.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA
-120AA ; [.45C4.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA GUNU
-120AB ; [.45C5.0020.0002] # CUNEIFORM SIGN EZEN TIMES IGI GUNU
-120AC ; [.45C6.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL
-120AD ; [.45C7.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED
-120AE ; [.45C8.0020.0002] # CUNEIFORM SIGN EZEN TIMES KU3
-120AF ; [.45C9.0020.0002] # CUNEIFORM SIGN EZEN TIMES LA
-120B0 ; [.45CA.0020.0002] # CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL
-120B1 ; [.45CB.0020.0002] # CUNEIFORM SIGN EZEN TIMES LI
-120B2 ; [.45CC.0020.0002] # CUNEIFORM SIGN EZEN TIMES LU
-120B3 ; [.45CD.0020.0002] # CUNEIFORM SIGN EZEN TIMES U2
-120B4 ; [.45CE.0020.0002] # CUNEIFORM SIGN EZEN TIMES UD
-120B5 ; [.45CF.0020.0002] # CUNEIFORM SIGN GA
-120B6 ; [.45D0.0020.0002] # CUNEIFORM SIGN GA GUNU
-120B7 ; [.45D1.0020.0002] # CUNEIFORM SIGN GA2
-120B8 ; [.45D2.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA
-120B9 ; [.45D3.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS HA
-120BA ; [.45D4.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS IGI
-120BB ; [.45D5.0020.0002] # CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB
-120BC ; [.45D6.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN
-120BD ; [.45D7.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH
-120BE ; [.45D8.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL
-120BF ; [.45D9.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAD
-120C0 ; [.45DA.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAR PLUS RA
-120C1 ; [.45DB.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR
-120C2 ; [.45DC.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR PLUS RA
-120C3 ; [.45DD.0020.0002] # CUNEIFORM SIGN GA2 TIMES DA
-120C4 ; [.45DE.0020.0002] # CUNEIFORM SIGN GA2 TIMES DI
-120C5 ; [.45DF.0020.0002] # CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE
-120C6 ; [.45E0.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUB
-120C7 ; [.45E1.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL
-120C8 ; [.45E2.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL PLUS LA
-120C9 ; [.45E3.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN
-120CA ; [.45E4.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU
-120CB ; [.45E5.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAN2 TENU
-120CC ; [.45E6.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR
-120CD ; [.45E7.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI
-120CE ; [.45E8.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4
-120CF ; [.45E9.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4 PLUS A
-120D0 ; [.45EA.0020.0002] # CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU
-120D1 ; [.45EB.0020.0002] # CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2
-120D2 ; [.45EC.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL
-120D3 ; [.45ED.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL PLUS LA
-120D4 ; [.45EE.0020.0002] # CUNEIFORM SIGN GA2 TIMES HI PLUS LI
-120D5 ; [.45EF.0020.0002] # CUNEIFORM SIGN GA2 TIMES HUB2
-120D6 ; [.45F0.0020.0002] # CUNEIFORM SIGN GA2 TIMES IGI GUNU
-120D7 ; [.45F1.0020.0002] # CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH
-120D8 ; [.45F2.0020.0002] # CUNEIFORM SIGN GA2 TIMES KAK
-120D9 ; [.45F3.0020.0002] # CUNEIFORM SIGN GA2 TIMES KASKAL
-120DA ; [.45F4.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID
-120DB ; [.45F5.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID PLUS LAL
-120DC ; [.45F6.0020.0002] # CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN
-120DD ; [.45F7.0020.0002] # CUNEIFORM SIGN GA2 TIMES LA
-120DE ; [.45F8.0020.0002] # CUNEIFORM SIGN GA2 TIMES ME PLUS EN
-120DF ; [.45F9.0020.0002] # CUNEIFORM SIGN GA2 TIMES MI
-120E0 ; [.45FA.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN
-120E1 ; [.45FB.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN OVER NUN
-120E2 ; [.45FC.0020.0002] # CUNEIFORM SIGN GA2 TIMES PA
-120E3 ; [.45FD.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAL
-120E4 ; [.45FE.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAR
-120E5 ; [.45FF.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE
-120E6 ; [.4600.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR
-120E7 ; [.4601.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHID
-120E8 ; [.4602.0020.0002] # CUNEIFORM SIGN GA2 TIMES SUM
-120E9 ; [.4603.0020.0002] # CUNEIFORM SIGN GA2 TIMES TAK4
-120EA ; [.4604.0020.0002] # CUNEIFORM SIGN GA2 TIMES U
-120EB ; [.4605.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD
-120EC ; [.4606.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD PLUS DU
-120ED ; [.4607.0020.0002] # CUNEIFORM SIGN GA2 OVER GA2
-120EE ; [.4608.0020.0002] # CUNEIFORM SIGN GABA
-120EF ; [.4609.0020.0002] # CUNEIFORM SIGN GABA CROSSING GABA
-120F0 ; [.460A.0020.0002] # CUNEIFORM SIGN GAD
-120F1 ; [.460B.0020.0002] # CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR
-120F2 ; [.460C.0020.0002] # CUNEIFORM SIGN GAL
-120F3 ; [.460D.0020.0002] # CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR
-120F4 ; [.460E.0020.0002] # CUNEIFORM SIGN GALAM
-120F5 ; [.460F.0020.0002] # CUNEIFORM SIGN GAM
-120F6 ; [.4610.0020.0002] # CUNEIFORM SIGN GAN
-120F7 ; [.4611.0020.0002] # CUNEIFORM SIGN GAN2
-120F8 ; [.4612.0020.0002] # CUNEIFORM SIGN GAN2 TENU
-120F9 ; [.4613.0020.0002] # CUNEIFORM SIGN GAN2 OVER GAN2
-120FA ; [.4614.0020.0002] # CUNEIFORM SIGN GAN2 CROSSING GAN2
-120FB ; [.4615.0020.0002] # CUNEIFORM SIGN GAR
-120FC ; [.4616.0020.0002] # CUNEIFORM SIGN GAR3
-120FD ; [.4617.0020.0002] # CUNEIFORM SIGN GASHAN
-120FE ; [.4618.0020.0002] # CUNEIFORM SIGN GESHTIN
-120FF ; [.4619.0020.0002] # CUNEIFORM SIGN GESHTIN TIMES KUR
-12100 ; [.461A.0020.0002] # CUNEIFORM SIGN GI
-12101 ; [.461B.0020.0002] # CUNEIFORM SIGN GI TIMES E
-12102 ; [.461C.0020.0002] # CUNEIFORM SIGN GI TIMES U
-12103 ; [.461D.0020.0002] # CUNEIFORM SIGN GI CROSSING GI
-12104 ; [.461E.0020.0002] # CUNEIFORM SIGN GI4
-12105 ; [.461F.0020.0002] # CUNEIFORM SIGN GI4 OVER GI4
-12106 ; [.4620.0020.0002] # CUNEIFORM SIGN GI4 CROSSING GI4
-12107 ; [.4621.0020.0002] # CUNEIFORM SIGN GIDIM
-12108 ; [.4622.0020.0002] # CUNEIFORM SIGN GIR2
-12109 ; [.4623.0020.0002] # CUNEIFORM SIGN GIR2 GUNU
-1210A ; [.4624.0020.0002] # CUNEIFORM SIGN GIR3
-1210B ; [.4625.0020.0002] # CUNEIFORM SIGN GIR3 TIMES A PLUS IGI
-1210C ; [.4626.0020.0002] # CUNEIFORM SIGN GIR3 TIMES GAN2 TENU
-1210D ; [.4627.0020.0002] # CUNEIFORM SIGN GIR3 TIMES IGI
-1210E ; [.4628.0020.0002] # CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI
-1210F ; [.4629.0020.0002] # CUNEIFORM SIGN GIR3 TIMES PA
-12110 ; [.462A.0020.0002] # CUNEIFORM SIGN GISAL
-12111 ; [.462B.0020.0002] # CUNEIFORM SIGN GISH
-12112 ; [.462C.0020.0002] # CUNEIFORM SIGN GISH CROSSING GISH
-12113 ; [.462D.0020.0002] # CUNEIFORM SIGN GISH TIMES BAD
-12114 ; [.462E.0020.0002] # CUNEIFORM SIGN GISH TIMES TAK4
-12115 ; [.462F.0020.0002] # CUNEIFORM SIGN GISH TENU
-12116 ; [.4630.0020.0002] # CUNEIFORM SIGN GU
-12117 ; [.4631.0020.0002] # CUNEIFORM SIGN GU CROSSING GU
-12118 ; [.4632.0020.0002] # CUNEIFORM SIGN GU2
-12119 ; [.4633.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK
-1211A ; [.4634.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU
-1211B ; [.4635.0020.0002] # CUNEIFORM SIGN GU2 TIMES NUN
-1211C ; [.4636.0020.0002] # CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2
-1211D ; [.4637.0020.0002] # CUNEIFORM SIGN GU2 GUNU
-1211E ; [.4638.0020.0002] # CUNEIFORM SIGN GUD
-1211F ; [.4639.0020.0002] # CUNEIFORM SIGN GUD TIMES A PLUS KUR
-12120 ; [.463A.0020.0002] # CUNEIFORM SIGN GUD TIMES KUR
-12121 ; [.463B.0020.0002] # CUNEIFORM SIGN GUD OVER GUD LUGAL
-12122 ; [.463C.0020.0002] # CUNEIFORM SIGN GUL
-12123 ; [.463D.0020.0002] # CUNEIFORM SIGN GUM
-12124 ; [.463E.0020.0002] # CUNEIFORM SIGN GUM TIMES SHE
-12125 ; [.463F.0020.0002] # CUNEIFORM SIGN GUR
-12126 ; [.4640.0020.0002] # CUNEIFORM SIGN GUR7
-12127 ; [.4641.0020.0002] # CUNEIFORM SIGN GURUN
-12128 ; [.4642.0020.0002] # CUNEIFORM SIGN GURUSH
-12129 ; [.4643.0020.0002] # CUNEIFORM SIGN HA
-1212A ; [.4644.0020.0002] # CUNEIFORM SIGN HA TENU
-1212B ; [.4645.0020.0002] # CUNEIFORM SIGN HA GUNU
-1212C ; [.4646.0020.0002] # CUNEIFORM SIGN HAL
-1212D ; [.4647.0020.0002] # CUNEIFORM SIGN HI
-1212E ; [.4648.0020.0002] # CUNEIFORM SIGN HI TIMES ASH
-1212F ; [.4649.0020.0002] # CUNEIFORM SIGN HI TIMES ASH2
-12130 ; [.464A.0020.0002] # CUNEIFORM SIGN HI TIMES BAD
-12131 ; [.464B.0020.0002] # CUNEIFORM SIGN HI TIMES DISH
-12132 ; [.464C.0020.0002] # CUNEIFORM SIGN HI TIMES GAD
-12133 ; [.464D.0020.0002] # CUNEIFORM SIGN HI TIMES KIN
-12134 ; [.464E.0020.0002] # CUNEIFORM SIGN HI TIMES NUN
-12135 ; [.464F.0020.0002] # CUNEIFORM SIGN HI TIMES SHE
-12136 ; [.4650.0020.0002] # CUNEIFORM SIGN HI TIMES U
-12137 ; [.4651.0020.0002] # CUNEIFORM SIGN HU
-12138 ; [.4652.0020.0002] # CUNEIFORM SIGN HUB2
-12139 ; [.4653.0020.0002] # CUNEIFORM SIGN HUB2 TIMES AN
-1213A ; [.4654.0020.0002] # CUNEIFORM SIGN HUB2 TIMES HAL
-1213B ; [.4655.0020.0002] # CUNEIFORM SIGN HUB2 TIMES KASKAL
-1213C ; [.4656.0020.0002] # CUNEIFORM SIGN HUB2 TIMES LISH
-1213D ; [.4657.0020.0002] # CUNEIFORM SIGN HUB2 TIMES UD
-1213E ; [.4658.0020.0002] # CUNEIFORM SIGN HUL2
-1213F ; [.4659.0020.0002] # CUNEIFORM SIGN I
-12140 ; [.465A.0020.0002] # CUNEIFORM SIGN I A
-12141 ; [.465B.0020.0002] # CUNEIFORM SIGN IB
-12142 ; [.465C.0020.0002] # CUNEIFORM SIGN IDIM
-12143 ; [.465D.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM BUR
-12144 ; [.465E.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM SQUARED
-12145 ; [.465F.0020.0002] # CUNEIFORM SIGN IG
-12146 ; [.4660.0020.0002] # CUNEIFORM SIGN IGI
-12147 ; [.4661.0020.0002] # CUNEIFORM SIGN IGI DIB
-12148 ; [.4662.0020.0002] # CUNEIFORM SIGN IGI RI
-12149 ; [.4663.0020.0002] # CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD
-1214A ; [.4664.0020.0002] # CUNEIFORM SIGN IGI GUNU
-1214B ; [.4665.0020.0002] # CUNEIFORM SIGN IL
-1214C ; [.4666.0020.0002] # CUNEIFORM SIGN IL TIMES GAN2 TENU
-1214D ; [.4667.0020.0002] # CUNEIFORM SIGN IL2
-1214E ; [.4668.0020.0002] # CUNEIFORM SIGN IM
-1214F ; [.4669.0020.0002] # CUNEIFORM SIGN IM TIMES TAK4
-12150 ; [.466A.0020.0002] # CUNEIFORM SIGN IM CROSSING IM
-12151 ; [.466B.0020.0002] # CUNEIFORM SIGN IM OPPOSING IM
-12152 ; [.466C.0020.0002] # CUNEIFORM SIGN IM SQUARED
-12153 ; [.466D.0020.0002] # CUNEIFORM SIGN IMIN
-12154 ; [.466E.0020.0002] # CUNEIFORM SIGN IN
-12155 ; [.466F.0020.0002] # CUNEIFORM SIGN IR
-12156 ; [.4670.0020.0002] # CUNEIFORM SIGN ISH
-12157 ; [.4671.0020.0002] # CUNEIFORM SIGN KA
-12158 ; [.4672.0020.0002] # CUNEIFORM SIGN KA TIMES A
-12159 ; [.4673.0020.0002] # CUNEIFORM SIGN KA TIMES AD
-1215A ; [.4674.0020.0002] # CUNEIFORM SIGN KA TIMES AD PLUS KU3
-1215B ; [.4675.0020.0002] # CUNEIFORM SIGN KA TIMES ASH2
-1215C ; [.4676.0020.0002] # CUNEIFORM SIGN KA TIMES BAD
-1215D ; [.4677.0020.0002] # CUNEIFORM SIGN KA TIMES BALAG
-1215E ; [.4678.0020.0002] # CUNEIFORM SIGN KA TIMES BAR
-1215F ; [.4679.0020.0002] # CUNEIFORM SIGN KA TIMES BI
-12160 ; [.467A.0020.0002] # CUNEIFORM SIGN KA TIMES ERIN2
-12161 ; [.467B.0020.0002] # CUNEIFORM SIGN KA TIMES ESH2
-12162 ; [.467C.0020.0002] # CUNEIFORM SIGN KA TIMES GA
-12163 ; [.467D.0020.0002] # CUNEIFORM SIGN KA TIMES GAL
-12164 ; [.467E.0020.0002] # CUNEIFORM SIGN KA TIMES GAN2 TENU
-12165 ; [.467F.0020.0002] # CUNEIFORM SIGN KA TIMES GAR
-12166 ; [.4680.0020.0002] # CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A
-12167 ; [.4681.0020.0002] # CUNEIFORM SIGN KA TIMES GI
-12168 ; [.4682.0020.0002] # CUNEIFORM SIGN KA TIMES GIR2
-12169 ; [.4683.0020.0002] # CUNEIFORM SIGN KA TIMES GISH PLUS SAR
-1216A ; [.4684.0020.0002] # CUNEIFORM SIGN KA TIMES GISH CROSSING GISH
-1216B ; [.4685.0020.0002] # CUNEIFORM SIGN KA TIMES GU
-1216C ; [.4686.0020.0002] # CUNEIFORM SIGN KA TIMES GUR7
-1216D ; [.4687.0020.0002] # CUNEIFORM SIGN KA TIMES IGI
-1216E ; [.4688.0020.0002] # CUNEIFORM SIGN KA TIMES IM
-1216F ; [.4689.0020.0002] # CUNEIFORM SIGN KA TIMES KAK
-12170 ; [.468A.0020.0002] # CUNEIFORM SIGN KA TIMES KI
-12171 ; [.468B.0020.0002] # CUNEIFORM SIGN KA TIMES KID
-12172 ; [.468C.0020.0002] # CUNEIFORM SIGN KA TIMES LI
-12173 ; [.468D.0020.0002] # CUNEIFORM SIGN KA TIMES LU
-12174 ; [.468E.0020.0002] # CUNEIFORM SIGN KA TIMES ME
-12175 ; [.468F.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS DU
-12176 ; [.4690.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS GI
-12177 ; [.4691.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS TE
-12178 ; [.4692.0020.0002] # CUNEIFORM SIGN KA TIMES MI
-12179 ; [.4693.0020.0002] # CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ
-1217A ; [.4694.0020.0002] # CUNEIFORM SIGN KA TIMES NE
-1217B ; [.4695.0020.0002] # CUNEIFORM SIGN KA TIMES NUN
-1217C ; [.4696.0020.0002] # CUNEIFORM SIGN KA TIMES PI
-1217D ; [.4697.0020.0002] # CUNEIFORM SIGN KA TIMES RU
-1217E ; [.4698.0020.0002] # CUNEIFORM SIGN KA TIMES SA
-1217F ; [.4699.0020.0002] # CUNEIFORM SIGN KA TIMES SAR
-12180 ; [.469A.0020.0002] # CUNEIFORM SIGN KA TIMES SHA
-12181 ; [.469B.0020.0002] # CUNEIFORM SIGN KA TIMES SHE
-12182 ; [.469C.0020.0002] # CUNEIFORM SIGN KA TIMES SHID
-12183 ; [.469D.0020.0002] # CUNEIFORM SIGN KA TIMES SHU
-12184 ; [.469E.0020.0002] # CUNEIFORM SIGN KA TIMES SIG
-12185 ; [.469F.0020.0002] # CUNEIFORM SIGN KA TIMES SUHUR
-12186 ; [.46A0.0020.0002] # CUNEIFORM SIGN KA TIMES TAR
-12187 ; [.46A1.0020.0002] # CUNEIFORM SIGN KA TIMES U
-12188 ; [.46A2.0020.0002] # CUNEIFORM SIGN KA TIMES U2
-12189 ; [.46A3.0020.0002] # CUNEIFORM SIGN KA TIMES UD
-1218A ; [.46A4.0020.0002] # CUNEIFORM SIGN KA TIMES UMUM TIMES PA
-1218B ; [.46A5.0020.0002] # CUNEIFORM SIGN KA TIMES USH
-1218C ; [.46A6.0020.0002] # CUNEIFORM SIGN KA TIMES ZI
-1218D ; [.46A7.0020.0002] # CUNEIFORM SIGN KA2
-1218E ; [.46A8.0020.0002] # CUNEIFORM SIGN KA2 CROSSING KA2
-1218F ; [.46A9.0020.0002] # CUNEIFORM SIGN KAB
-12190 ; [.46AA.0020.0002] # CUNEIFORM SIGN KAD2
-12191 ; [.46AB.0020.0002] # CUNEIFORM SIGN KAD3
-12192 ; [.46AC.0020.0002] # CUNEIFORM SIGN KAD4
-12193 ; [.46AD.0020.0002] # CUNEIFORM SIGN KAD5
-12194 ; [.46AE.0020.0002] # CUNEIFORM SIGN KAD5 OVER KAD5
-12195 ; [.46AF.0020.0002] # CUNEIFORM SIGN KAK
-12196 ; [.46B0.0020.0002] # CUNEIFORM SIGN KAK TIMES IGI GUNU
-12197 ; [.46B1.0020.0002] # CUNEIFORM SIGN KAL
-12198 ; [.46B2.0020.0002] # CUNEIFORM SIGN KAL TIMES BAD
-12199 ; [.46B3.0020.0002] # CUNEIFORM SIGN KAL CROSSING KAL
-1219A ; [.46B4.0020.0002] # CUNEIFORM SIGN KAM2
-1219B ; [.46B5.0020.0002] # CUNEIFORM SIGN KAM4
-1219C ; [.46B6.0020.0002] # CUNEIFORM SIGN KASKAL
-1219D ; [.46B7.0020.0002] # CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219E ; [.46B8.0020.0002] # CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219F ; [.46B9.0020.0002] # CUNEIFORM SIGN KESH2
-121A0 ; [.46BA.0020.0002] # CUNEIFORM SIGN KI
-121A1 ; [.46BB.0020.0002] # CUNEIFORM SIGN KI TIMES BAD
-121A2 ; [.46BC.0020.0002] # CUNEIFORM SIGN KI TIMES U
-121A3 ; [.46BD.0020.0002] # CUNEIFORM SIGN KI TIMES UD
-121A4 ; [.46BE.0020.0002] # CUNEIFORM SIGN KID
-121A5 ; [.46BF.0020.0002] # CUNEIFORM SIGN KIN
-121A6 ; [.46C0.0020.0002] # CUNEIFORM SIGN KISAL
-121A7 ; [.46C1.0020.0002] # CUNEIFORM SIGN KISH
-121A8 ; [.46C2.0020.0002] # CUNEIFORM SIGN KISIM5
-121A9 ; [.46C3.0020.0002] # CUNEIFORM SIGN KISIM5 OVER KISIM5
-121AA ; [.46C4.0020.0002] # CUNEIFORM SIGN KU
-121AB ; [.46C5.0020.0002] # CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2
-121AC ; [.46C6.0020.0002] # CUNEIFORM SIGN KU3
-121AD ; [.46C7.0020.0002] # CUNEIFORM SIGN KU4
-121AE ; [.46C8.0020.0002] # CUNEIFORM SIGN KU4 VARIANT FORM
-121AF ; [.46C9.0020.0002] # CUNEIFORM SIGN KU7
-121B0 ; [.46CA.0020.0002] # CUNEIFORM SIGN KUL
-121B1 ; [.46CB.0020.0002] # CUNEIFORM SIGN KUL GUNU
-121B2 ; [.46CC.0020.0002] # CUNEIFORM SIGN KUN
-121B3 ; [.46CD.0020.0002] # CUNEIFORM SIGN KUR
-121B4 ; [.46CE.0020.0002] # CUNEIFORM SIGN KUR OPPOSING KUR
-121B5 ; [.46CF.0020.0002] # CUNEIFORM SIGN KUSHU2
-121B6 ; [.46D0.0020.0002] # CUNEIFORM SIGN KWU318
-121B7 ; [.46D1.0020.0002] # CUNEIFORM SIGN LA
-121B8 ; [.46D2.0020.0002] # CUNEIFORM SIGN LAGAB
-121B9 ; [.46D3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A
-121BA ; [.46D4.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA
-121BB ; [.46D5.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS GAR
-121BC ; [.46D6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS LAL
-121BD ; [.46D7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AL
-121BE ; [.46D8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AN
-121BF ; [.46D9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU
-121C0 ; [.46DA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BAD
-121C1 ; [.46DB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BI
-121C2 ; [.46DC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES DAR
-121C3 ; [.46DD.0020.0002] # CUNEIFORM SIGN LAGAB TIMES EN
-121C4 ; [.46DE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GA
-121C5 ; [.46DF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GAR
-121C6 ; [.46E0.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD
-121C7 ; [.46E1.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD
-121C8 ; [.46E2.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HA
-121C9 ; [.46E3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HAL
-121CA ; [.46E4.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN
-121CB ; [.46E5.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IGI GUNU
-121CC ; [.46E6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM
-121CD ; [.46E7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS HA
-121CE ; [.46E8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS LU
-121CF ; [.46E9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KI
-121D0 ; [.46EA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KIN
-121D1 ; [.46EB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KU3
-121D2 ; [.46EC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL
-121D3 ; [.46ED.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A
-121D4 ; [.46EE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LAGAB
-121D5 ; [.46EF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LISH
-121D6 ; [.46F0.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LU
-121D7 ; [.46F1.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LUL
-121D8 ; [.46F2.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME
-121D9 ; [.46F3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME PLUS EN
-121DA ; [.46F4.0020.0002] # CUNEIFORM SIGN LAGAB TIMES MUSH
-121DB ; [.46F5.0020.0002] # CUNEIFORM SIGN LAGAB TIMES NE
-121DC ; [.46F6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM
-121DD ; [.46F7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2
-121DE ; [.46F8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU
-121DF ; [.46F9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2
-121E0 ; [.46FA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2
-121E1 ; [.46FB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SUM
-121E2 ; [.46FC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAG
-121E3 ; [.46FD.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAK4
-121E4 ; [.46FE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA
-121E5 ; [.46FF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U
-121E6 ; [.4700.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS A
-121E7 ; [.4701.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U
-121E8 ; [.4702.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH
-121E9 ; [.4703.0020.0002] # CUNEIFORM SIGN LAGAB TIMES UD
-121EA ; [.4704.0020.0002] # CUNEIFORM SIGN LAGAB TIMES USH
-121EB ; [.4705.0020.0002] # CUNEIFORM SIGN LAGAB SQUARED
-121EC ; [.4706.0020.0002] # CUNEIFORM SIGN LAGAR
-121ED ; [.4707.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE
-121EE ; [.4708.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM
-121EF ; [.4709.0020.0002] # CUNEIFORM SIGN LAGAR GUNU
-121F0 ; [.470A.0020.0002] # CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE
-121F1 ; [.470B.0020.0002] # CUNEIFORM SIGN LAHSHU
-121F2 ; [.470C.0020.0002] # CUNEIFORM SIGN LAL
-121F3 ; [.470D.0020.0002] # CUNEIFORM SIGN LAL TIMES LAL
-121F4 ; [.470E.0020.0002] # CUNEIFORM SIGN LAM
-121F5 ; [.470F.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR
-121F6 ; [.4710.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR PLUS RU
-121F7 ; [.4711.0020.0002] # CUNEIFORM SIGN LI
-121F8 ; [.4712.0020.0002] # CUNEIFORM SIGN LIL
-121F9 ; [.4713.0020.0002] # CUNEIFORM SIGN LIMMU2
-121FA ; [.4714.0020.0002] # CUNEIFORM SIGN LISH
-121FB ; [.4715.0020.0002] # CUNEIFORM SIGN LU
-121FC ; [.4716.0020.0002] # CUNEIFORM SIGN LU TIMES BAD
-121FD ; [.4717.0020.0002] # CUNEIFORM SIGN LU2
-121FE ; [.4718.0020.0002] # CUNEIFORM SIGN LU2 TIMES AL
-121FF ; [.4719.0020.0002] # CUNEIFORM SIGN LU2 TIMES BAD
-12200 ; [.471A.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2
-12201 ; [.471B.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 TENU
-12202 ; [.471C.0020.0002] # CUNEIFORM SIGN LU2 TIMES GAN2 TENU
-12203 ; [.471D.0020.0002] # CUNEIFORM SIGN LU2 TIMES HI TIMES BAD
-12204 ; [.471E.0020.0002] # CUNEIFORM SIGN LU2 TIMES IM
-12205 ; [.471F.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD2
-12206 ; [.4720.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3
-12207 ; [.4721.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH
-12208 ; [.4722.0020.0002] # CUNEIFORM SIGN LU2 TIMES KI
-12209 ; [.4723.0020.0002] # CUNEIFORM SIGN LU2 TIMES LA PLUS ASH
-1220A ; [.4724.0020.0002] # CUNEIFORM SIGN LU2 TIMES LAGAB
-1220B ; [.4725.0020.0002] # CUNEIFORM SIGN LU2 TIMES ME PLUS EN
-1220C ; [.4726.0020.0002] # CUNEIFORM SIGN LU2 TIMES NE
-1220D ; [.4727.0020.0002] # CUNEIFORM SIGN LU2 TIMES NU
-1220E ; [.4728.0020.0002] # CUNEIFORM SIGN LU2 TIMES SI PLUS ASH
-1220F ; [.4729.0020.0002] # CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU
-12210 ; [.472A.0020.0002] # CUNEIFORM SIGN LU2 TIMES TUG2
-12211 ; [.472B.0020.0002] # CUNEIFORM SIGN LU2 TENU
-12212 ; [.472C.0020.0002] # CUNEIFORM SIGN LU2 CROSSING LU2
-12213 ; [.472D.0020.0002] # CUNEIFORM SIGN LU2 OPPOSING LU2
-12214 ; [.472E.0020.0002] # CUNEIFORM SIGN LU2 SQUARED
-12215 ; [.472F.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG
-12216 ; [.4730.0020.0002] # CUNEIFORM SIGN LU3
-12217 ; [.4731.0020.0002] # CUNEIFORM SIGN LUGAL
-12218 ; [.4732.0020.0002] # CUNEIFORM SIGN LUGAL OVER LUGAL
-12219 ; [.4733.0020.0002] # CUNEIFORM SIGN LUGAL OPPOSING LUGAL
-1221A ; [.4734.0020.0002] # CUNEIFORM SIGN LUGAL SHESHIG
-1221B ; [.4735.0020.0002] # CUNEIFORM SIGN LUH
-1221C ; [.4736.0020.0002] # CUNEIFORM SIGN LUL
-1221D ; [.4737.0020.0002] # CUNEIFORM SIGN LUM
-1221E ; [.4738.0020.0002] # CUNEIFORM SIGN LUM OVER LUM
-1221F ; [.4739.0020.0002] # CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR
-12220 ; [.473A.0020.0002] # CUNEIFORM SIGN MA
-12221 ; [.473B.0020.0002] # CUNEIFORM SIGN MA TIMES TAK4
-12222 ; [.473C.0020.0002] # CUNEIFORM SIGN MA GUNU
-12223 ; [.473D.0020.0002] # CUNEIFORM SIGN MA2
-12224 ; [.473E.0020.0002] # CUNEIFORM SIGN MAH
-12225 ; [.473F.0020.0002] # CUNEIFORM SIGN MAR
-12226 ; [.4740.0020.0002] # CUNEIFORM SIGN MASH
-12227 ; [.4741.0020.0002] # CUNEIFORM SIGN MASH2
-12228 ; [.4742.0020.0002] # CUNEIFORM SIGN ME
-12229 ; [.4743.0020.0002] # CUNEIFORM SIGN MES
-1222A ; [.4744.0020.0002] # CUNEIFORM SIGN MI
-1222B ; [.4745.0020.0002] # CUNEIFORM SIGN MIN
-1222C ; [.4746.0020.0002] # CUNEIFORM SIGN MU
-1222D ; [.4747.0020.0002] # CUNEIFORM SIGN MU OVER MU
-1222E ; [.4748.0020.0002] # CUNEIFORM SIGN MUG
-1222F ; [.4749.0020.0002] # CUNEIFORM SIGN MUG GUNU
-12230 ; [.474A.0020.0002] # CUNEIFORM SIGN MUNSUB
-12231 ; [.474B.0020.0002] # CUNEIFORM SIGN MURGU2
-12232 ; [.474C.0020.0002] # CUNEIFORM SIGN MUSH
-12233 ; [.474D.0020.0002] # CUNEIFORM SIGN MUSH TIMES A
-12234 ; [.474E.0020.0002] # CUNEIFORM SIGN MUSH TIMES KUR
-12235 ; [.474F.0020.0002] # CUNEIFORM SIGN MUSH TIMES ZA
-12236 ; [.4750.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH
-12237 ; [.4751.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA
-12238 ; [.4752.0020.0002] # CUNEIFORM SIGN MUSH CROSSING MUSH
-12239 ; [.4753.0020.0002] # CUNEIFORM SIGN MUSH3
-1223A ; [.4754.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A
-1223B ; [.4755.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A PLUS DI
-1223C ; [.4756.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES DI
-1223D ; [.4757.0020.0002] # CUNEIFORM SIGN MUSH3 GUNU
-1223E ; [.4758.0020.0002] # CUNEIFORM SIGN NA
-1223F ; [.4759.0020.0002] # CUNEIFORM SIGN NA2
-12240 ; [.475A.0020.0002] # CUNEIFORM SIGN NAGA
-12241 ; [.475B.0020.0002] # CUNEIFORM SIGN NAGA INVERTED
-12242 ; [.475C.0020.0002] # CUNEIFORM SIGN NAGA TIMES SHU TENU
-12243 ; [.475D.0020.0002] # CUNEIFORM SIGN NAGA OPPOSING NAGA
-12244 ; [.475E.0020.0002] # CUNEIFORM SIGN NAGAR
-12245 ; [.475F.0020.0002] # CUNEIFORM SIGN NAM NUTILLU
-12246 ; [.4760.0020.0002] # CUNEIFORM SIGN NAM
-12247 ; [.4761.0020.0002] # CUNEIFORM SIGN NAM2
-12248 ; [.4762.0020.0002] # CUNEIFORM SIGN NE
-12249 ; [.4763.0020.0002] # CUNEIFORM SIGN NE TIMES A
-1224A ; [.4764.0020.0002] # CUNEIFORM SIGN NE TIMES UD
-1224B ; [.4765.0020.0002] # CUNEIFORM SIGN NE SHESHIG
-1224C ; [.4766.0020.0002] # CUNEIFORM SIGN NI
-1224D ; [.4767.0020.0002] # CUNEIFORM SIGN NI TIMES E
-1224E ; [.4768.0020.0002] # CUNEIFORM SIGN NI2
-1224F ; [.4769.0020.0002] # CUNEIFORM SIGN NIM
-12250 ; [.476A.0020.0002] # CUNEIFORM SIGN NIM TIMES GAN2 TENU
-12251 ; [.476B.0020.0002] # CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU
-12252 ; [.476C.0020.0002] # CUNEIFORM SIGN NINDA2
-12253 ; [.476D.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES AN
-12254 ; [.476E.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH
-12255 ; [.476F.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH
-12256 ; [.4770.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GUD
-12257 ; [.4771.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU
-12258 ; [.4772.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NE
-12259 ; [.4773.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NUN
-1225A ; [.4774.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE
-1225B ; [.4775.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN
-1225C ; [.4776.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH
-1225D ; [.4777.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH
-1225E ; [.4778.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH
-1225F ; [.4779.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES USH
-12260 ; [.477A.0020.0002] # CUNEIFORM SIGN NISAG
-12261 ; [.477B.0020.0002] # CUNEIFORM SIGN NU
-12262 ; [.477C.0020.0002] # CUNEIFORM SIGN NU11
-122D4 ; [.477D.0020.0002] # CUNEIFORM SIGN SHIR TENU
-122D5 ; [.477E.0020.0002] # CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR
-12263 ; [.477F.0020.0002] # CUNEIFORM SIGN NUN
-12264 ; [.4780.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES GAR
-12265 ; [.4781.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES MASH
-12266 ; [.4782.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL
-12267 ; [.4783.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL
-12268 ; [.4784.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES USH
-12269 ; [.4785.0020.0002] # CUNEIFORM SIGN NUN TENU
-1226A ; [.4786.0020.0002] # CUNEIFORM SIGN NUN OVER NUN
-1226B ; [.4787.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN
-1226C ; [.4788.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR
-1226D ; [.4789.0020.0002] # CUNEIFORM SIGN NUNUZ
-1226E ; [.478A.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB
-1226F ; [.478B.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES BI
-12270 ; [.478C.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES DUG
-12271 ; [.478D.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES GUD
-12272 ; [.478E.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU
-12273 ; [.478F.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3
-12274 ; [.4790.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES LA
-12275 ; [.4791.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES NE
-12276 ; [.4792.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3
-12277 ; [.4793.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES U2
-12278 ; [.4794.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI
-12279 ; [.4795.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U
-1227A ; [.4796.0020.0002] # CUNEIFORM SIGN PA
-1227B ; [.4797.0020.0002] # CUNEIFORM SIGN PAD
-1227C ; [.4798.0020.0002] # CUNEIFORM SIGN PAN
-1227D ; [.4799.0020.0002] # CUNEIFORM SIGN PAP
-1227E ; [.479A.0020.0002] # CUNEIFORM SIGN PESH2
-1227F ; [.479B.0020.0002] # CUNEIFORM SIGN PI
-12280 ; [.479C.0020.0002] # CUNEIFORM SIGN PI TIMES A
-12281 ; [.479D.0020.0002] # CUNEIFORM SIGN PI TIMES AB
-12282 ; [.479E.0020.0002] # CUNEIFORM SIGN PI TIMES BI
-12283 ; [.479F.0020.0002] # CUNEIFORM SIGN PI TIMES BU
-12284 ; [.47A0.0020.0002] # CUNEIFORM SIGN PI TIMES E
-12285 ; [.47A1.0020.0002] # CUNEIFORM SIGN PI TIMES I
-12286 ; [.47A2.0020.0002] # CUNEIFORM SIGN PI TIMES IB
-12287 ; [.47A3.0020.0002] # CUNEIFORM SIGN PI TIMES U
-12288 ; [.47A4.0020.0002] # CUNEIFORM SIGN PI TIMES U2
-12289 ; [.47A5.0020.0002] # CUNEIFORM SIGN PI CROSSING PI
-1228A ; [.47A6.0020.0002] # CUNEIFORM SIGN PIRIG
-1228B ; [.47A7.0020.0002] # CUNEIFORM SIGN PIRIG TIMES KAL
-1228C ; [.47A8.0020.0002] # CUNEIFORM SIGN PIRIG TIMES UD
-1228D ; [.47A9.0020.0002] # CUNEIFORM SIGN PIRIG TIMES ZA
-1228E ; [.47AA.0020.0002] # CUNEIFORM SIGN PIRIG OPPOSING PIRIG
-1228F ; [.47AB.0020.0002] # CUNEIFORM SIGN RA
-12290 ; [.47AC.0020.0002] # CUNEIFORM SIGN RAB
-12291 ; [.47AD.0020.0002] # CUNEIFORM SIGN RI
-12292 ; [.47AE.0020.0002] # CUNEIFORM SIGN RU
-12293 ; [.47AF.0020.0002] # CUNEIFORM SIGN SA
-12294 ; [.47B0.0020.0002] # CUNEIFORM SIGN SAG NUTILLU
-12295 ; [.47B1.0020.0002] # CUNEIFORM SIGN SAG
-12296 ; [.47B2.0020.0002] # CUNEIFORM SIGN SAG TIMES A
-12297 ; [.47B3.0020.0002] # CUNEIFORM SIGN SAG TIMES DU
-12298 ; [.47B4.0020.0002] # CUNEIFORM SIGN SAG TIMES DUB
-12299 ; [.47B5.0020.0002] # CUNEIFORM SIGN SAG TIMES HA
-1229A ; [.47B6.0020.0002] # CUNEIFORM SIGN SAG TIMES KAK
-1229B ; [.47B7.0020.0002] # CUNEIFORM SIGN SAG TIMES KUR
-1229C ; [.47B8.0020.0002] # CUNEIFORM SIGN SAG TIMES LUM
-1229D ; [.47B9.0020.0002] # CUNEIFORM SIGN SAG TIMES MI
-1229E ; [.47BA.0020.0002] # CUNEIFORM SIGN SAG TIMES NUN
-1229F ; [.47BB.0020.0002] # CUNEIFORM SIGN SAG TIMES SAL
-122A0 ; [.47BC.0020.0002] # CUNEIFORM SIGN SAG TIMES SHID
-122A1 ; [.47BD.0020.0002] # CUNEIFORM SIGN SAG TIMES TAB
-122A2 ; [.47BE.0020.0002] # CUNEIFORM SIGN SAG TIMES U2
-122A3 ; [.47BF.0020.0002] # CUNEIFORM SIGN SAG TIMES UB
-122A4 ; [.47C0.0020.0002] # CUNEIFORM SIGN SAG TIMES UM
-122A5 ; [.47C1.0020.0002] # CUNEIFORM SIGN SAG TIMES UR
-122A6 ; [.47C2.0020.0002] # CUNEIFORM SIGN SAG TIMES USH
-122A7 ; [.47C3.0020.0002] # CUNEIFORM SIGN SAG OVER SAG
-122A8 ; [.47C4.0020.0002] # CUNEIFORM SIGN SAG GUNU
-122A9 ; [.47C5.0020.0002] # CUNEIFORM SIGN SAL
-122AA ; [.47C6.0020.0002] # CUNEIFORM SIGN SAL LAGAB TIMES ASH2
-122AB ; [.47C7.0020.0002] # CUNEIFORM SIGN SANGA2
-122AC ; [.47C8.0020.0002] # CUNEIFORM SIGN SAR
-122AD ; [.47C9.0020.0002] # CUNEIFORM SIGN SHA
-122AE ; [.47CA.0020.0002] # CUNEIFORM SIGN SHA3
-122AF ; [.47CB.0020.0002] # CUNEIFORM SIGN SHA3 TIMES A
-122B0 ; [.47CC.0020.0002] # CUNEIFORM SIGN SHA3 TIMES BAD
-122B1 ; [.47CD.0020.0002] # CUNEIFORM SIGN SHA3 TIMES GISH
-122B2 ; [.47CE.0020.0002] # CUNEIFORM SIGN SHA3 TIMES NE
-122B3 ; [.47CF.0020.0002] # CUNEIFORM SIGN SHA3 TIMES SHU2
-122B4 ; [.47D0.0020.0002] # CUNEIFORM SIGN SHA3 TIMES TUR
-122B5 ; [.47D1.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U
-122B6 ; [.47D2.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U PLUS A
-122B7 ; [.47D3.0020.0002] # CUNEIFORM SIGN SHA6
-122B8 ; [.47D4.0020.0002] # CUNEIFORM SIGN SHAB6
-122B9 ; [.47D5.0020.0002] # CUNEIFORM SIGN SHAR2
-122BA ; [.47D6.0020.0002] # CUNEIFORM SIGN SHE
-122BB ; [.47D7.0020.0002] # CUNEIFORM SIGN SHE HU
-122BC ; [.47D8.0020.0002] # CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR
-122BD ; [.47D9.0020.0002] # CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR
-122BE ; [.47DA.0020.0002] # CUNEIFORM SIGN SHEG9
-122BF ; [.47DB.0020.0002] # CUNEIFORM SIGN SHEN
-122C0 ; [.47DC.0020.0002] # CUNEIFORM SIGN SHESH
-122C1 ; [.47DD.0020.0002] # CUNEIFORM SIGN SHESH2
-122C2 ; [.47DE.0020.0002] # CUNEIFORM SIGN SHESHLAM
-122C3 ; [.47DF.0020.0002] # CUNEIFORM SIGN SHID
-122C4 ; [.47E0.0020.0002] # CUNEIFORM SIGN SHID TIMES A
-122C5 ; [.47E1.0020.0002] # CUNEIFORM SIGN SHID TIMES IM
-122C6 ; [.47E2.0020.0002] # CUNEIFORM SIGN SHIM
-122C7 ; [.47E3.0020.0002] # CUNEIFORM SIGN SHIM TIMES A
-122C8 ; [.47E4.0020.0002] # CUNEIFORM SIGN SHIM TIMES BAL
-122C9 ; [.47E5.0020.0002] # CUNEIFORM SIGN SHIM TIMES BULUG
-122CA ; [.47E6.0020.0002] # CUNEIFORM SIGN SHIM TIMES DIN
-122CB ; [.47E7.0020.0002] # CUNEIFORM SIGN SHIM TIMES GAR
-122CC ; [.47E8.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI
-122CD ; [.47E9.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI GUNU
-122CE ; [.47EA.0020.0002] # CUNEIFORM SIGN SHIM TIMES KUSHU2
-122CF ; [.47EB.0020.0002] # CUNEIFORM SIGN SHIM TIMES LUL
-122D0 ; [.47EC.0020.0002] # CUNEIFORM SIGN SHIM TIMES MUG
-122D1 ; [.47ED.0020.0002] # CUNEIFORM SIGN SHIM TIMES SAL
-122D2 ; [.47EE.0020.0002] # CUNEIFORM SIGN SHINIG
-122D3 ; [.47EF.0020.0002] # CUNEIFORM SIGN SHIR
-122D6 ; [.47F0.0020.0002] # CUNEIFORM SIGN SHITA
-122D7 ; [.47F1.0020.0002] # CUNEIFORM SIGN SHU
-122D8 ; [.47F2.0020.0002] # CUNEIFORM SIGN SHU OVER INVERTED SHU
-122D9 ; [.47F3.0020.0002] # CUNEIFORM SIGN SHU2
-122DA ; [.47F4.0020.0002] # CUNEIFORM SIGN SHUBUR
-122DB ; [.47F5.0020.0002] # CUNEIFORM SIGN SI
-122DC ; [.47F6.0020.0002] # CUNEIFORM SIGN SI GUNU
-122DD ; [.47F7.0020.0002] # CUNEIFORM SIGN SIG
-122DE ; [.47F8.0020.0002] # CUNEIFORM SIGN SIG4
-122DF ; [.47F9.0020.0002] # CUNEIFORM SIGN SIG4 OVER SIG4 SHU2
-122E0 ; [.47FA.0020.0002] # CUNEIFORM SIGN SIK2
-122E1 ; [.47FB.0020.0002] # CUNEIFORM SIGN SILA3
-122E2 ; [.47FC.0020.0002] # CUNEIFORM SIGN SU
-122E3 ; [.47FD.0020.0002] # CUNEIFORM SIGN SU OVER SU
-122E4 ; [.47FE.0020.0002] # CUNEIFORM SIGN SUD
-122E5 ; [.47FF.0020.0002] # CUNEIFORM SIGN SUD2
-122E6 ; [.4800.0020.0002] # CUNEIFORM SIGN SUHUR
-122E7 ; [.4801.0020.0002] # CUNEIFORM SIGN SUM
-122E8 ; [.4802.0020.0002] # CUNEIFORM SIGN SUMASH
-122E9 ; [.4803.0020.0002] # CUNEIFORM SIGN SUR
-122EA ; [.4804.0020.0002] # CUNEIFORM SIGN SUR9
-122EB ; [.4805.0020.0002] # CUNEIFORM SIGN TA
-122EC ; [.4806.0020.0002] # CUNEIFORM SIGN TA ASTERISK
-122ED ; [.4807.0020.0002] # CUNEIFORM SIGN TA TIMES HI
-122EE ; [.4808.0020.0002] # CUNEIFORM SIGN TA TIMES MI
-122EF ; [.4809.0020.0002] # CUNEIFORM SIGN TA GUNU
-122F0 ; [.480A.0020.0002] # CUNEIFORM SIGN TAB
-122F1 ; [.480B.0020.0002] # CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH
-122F2 ; [.480C.0020.0002] # CUNEIFORM SIGN TAB SQUARED
-122F3 ; [.480D.0020.0002] # CUNEIFORM SIGN TAG
-122F4 ; [.480E.0020.0002] # CUNEIFORM SIGN TAG TIMES BI
-122F5 ; [.480F.0020.0002] # CUNEIFORM SIGN TAG TIMES GUD
-122F6 ; [.4810.0020.0002] # CUNEIFORM SIGN TAG TIMES SHE
-122F7 ; [.4811.0020.0002] # CUNEIFORM SIGN TAG TIMES SHU
-122F8 ; [.4812.0020.0002] # CUNEIFORM SIGN TAG TIMES TUG2
-122F9 ; [.4813.0020.0002] # CUNEIFORM SIGN TAG TIMES UD
-122FA ; [.4814.0020.0002] # CUNEIFORM SIGN TAK4
-122FB ; [.4815.0020.0002] # CUNEIFORM SIGN TAR
-122FC ; [.4816.0020.0002] # CUNEIFORM SIGN TE
-122FD ; [.4817.0020.0002] # CUNEIFORM SIGN TE GUNU
-122FE ; [.4818.0020.0002] # CUNEIFORM SIGN TI
-122FF ; [.4819.0020.0002] # CUNEIFORM SIGN TI TENU
-12300 ; [.481A.0020.0002] # CUNEIFORM SIGN TIL
-12301 ; [.481B.0020.0002] # CUNEIFORM SIGN TIR
-12302 ; [.481C.0020.0002] # CUNEIFORM SIGN TIR TIMES TAK4
-12303 ; [.481D.0020.0002] # CUNEIFORM SIGN TIR OVER TIR
-12304 ; [.481E.0020.0002] # CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR
-12305 ; [.481F.0020.0002] # CUNEIFORM SIGN TU
-12306 ; [.4820.0020.0002] # CUNEIFORM SIGN TUG2
-12307 ; [.4821.0020.0002] # CUNEIFORM SIGN TUK
-12308 ; [.4822.0020.0002] # CUNEIFORM SIGN TUM
-12309 ; [.4823.0020.0002] # CUNEIFORM SIGN TUR
-1230A ; [.4824.0020.0002] # CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA
-1230B ; [.4825.0020.0002] # CUNEIFORM SIGN U
-1230C ; [.4826.0020.0002] # CUNEIFORM SIGN U GUD
-1230D ; [.4827.0020.0002] # CUNEIFORM SIGN U U U
-1230E ; [.4828.0020.0002] # CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR
-1230F ; [.4829.0020.0002] # CUNEIFORM SIGN U OVER U SUR OVER SUR
-12310 ; [.482A.0020.0002] # CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED
-12311 ; [.482B.0020.0002] # CUNEIFORM SIGN U2
-12312 ; [.482C.0020.0002] # CUNEIFORM SIGN UB
-12313 ; [.482D.0020.0002] # CUNEIFORM SIGN UD
-12314 ; [.482E.0020.0002] # CUNEIFORM SIGN UD KUSHU2
-12315 ; [.482F.0020.0002] # CUNEIFORM SIGN UD TIMES BAD
-12316 ; [.4830.0020.0002] # CUNEIFORM SIGN UD TIMES MI
-12317 ; [.4831.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U
-12318 ; [.4832.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU
-12319 ; [.4833.0020.0002] # CUNEIFORM SIGN UD GUNU
-1231A ; [.4834.0020.0002] # CUNEIFORM SIGN UD SHESHIG
-1231B ; [.4835.0020.0002] # CUNEIFORM SIGN UD SHESHIG TIMES BAD
-1231C ; [.4836.0020.0002] # CUNEIFORM SIGN UDUG
-1231D ; [.4837.0020.0002] # CUNEIFORM SIGN UM
-1231E ; [.4838.0020.0002] # CUNEIFORM SIGN UM TIMES LAGAB
-1231F ; [.4839.0020.0002] # CUNEIFORM SIGN UM TIMES ME PLUS DA
-12320 ; [.483A.0020.0002] # CUNEIFORM SIGN UM TIMES SHA3
-12321 ; [.483B.0020.0002] # CUNEIFORM SIGN UM TIMES U
-12322 ; [.483C.0020.0002] # CUNEIFORM SIGN UMBIN
-12323 ; [.483D.0020.0002] # CUNEIFORM SIGN UMUM
-12324 ; [.483E.0020.0002] # CUNEIFORM SIGN UMUM TIMES KASKAL
-12325 ; [.483F.0020.0002] # CUNEIFORM SIGN UMUM TIMES PA
-12326 ; [.4840.0020.0002] # CUNEIFORM SIGN UN
-12327 ; [.4841.0020.0002] # CUNEIFORM SIGN UN GUNU
-12328 ; [.4842.0020.0002] # CUNEIFORM SIGN UR
-12329 ; [.4843.0020.0002] # CUNEIFORM SIGN UR CROSSING UR
-1232A ; [.4844.0020.0002] # CUNEIFORM SIGN UR SHESHIG
-1232B ; [.4845.0020.0002] # CUNEIFORM SIGN UR2
-1232C ; [.4846.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS HA
-1232D ; [.4847.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS NA
-1232E ; [.4848.0020.0002] # CUNEIFORM SIGN UR2 TIMES AL
-1232F ; [.4849.0020.0002] # CUNEIFORM SIGN UR2 TIMES HA
-12330 ; [.484A.0020.0002] # CUNEIFORM SIGN UR2 TIMES NUN
-12331 ; [.484B.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2
-12332 ; [.484C.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH
-12333 ; [.484D.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS BI
-12334 ; [.484E.0020.0002] # CUNEIFORM SIGN UR4
-12335 ; [.484F.0020.0002] # CUNEIFORM SIGN URI
-12336 ; [.4850.0020.0002] # CUNEIFORM SIGN URI3
-12337 ; [.4851.0020.0002] # CUNEIFORM SIGN URU
-12338 ; [.4852.0020.0002] # CUNEIFORM SIGN URU TIMES A
-12339 ; [.4853.0020.0002] # CUNEIFORM SIGN URU TIMES ASHGAB
-1233A ; [.4854.0020.0002] # CUNEIFORM SIGN URU TIMES BAR
-1233B ; [.4855.0020.0002] # CUNEIFORM SIGN URU TIMES DUN
-1233C ; [.4856.0020.0002] # CUNEIFORM SIGN URU TIMES GA
-1233D ; [.4857.0020.0002] # CUNEIFORM SIGN URU TIMES GAL
-1233E ; [.4858.0020.0002] # CUNEIFORM SIGN URU TIMES GAN2 TENU
-1233F ; [.4859.0020.0002] # CUNEIFORM SIGN URU TIMES GAR
-12340 ; [.485A.0020.0002] # CUNEIFORM SIGN URU TIMES GU
-12341 ; [.485B.0020.0002] # CUNEIFORM SIGN URU TIMES HA
-12342 ; [.485C.0020.0002] # CUNEIFORM SIGN URU TIMES IGI
-12343 ; [.485D.0020.0002] # CUNEIFORM SIGN URU TIMES IM
-12344 ; [.485E.0020.0002] # CUNEIFORM SIGN URU TIMES ISH
-12345 ; [.485F.0020.0002] # CUNEIFORM SIGN URU TIMES KI
-12346 ; [.4860.0020.0002] # CUNEIFORM SIGN URU TIMES LUM
-12347 ; [.4861.0020.0002] # CUNEIFORM SIGN URU TIMES MIN
-12348 ; [.4862.0020.0002] # CUNEIFORM SIGN URU TIMES PA
-12349 ; [.4863.0020.0002] # CUNEIFORM SIGN URU TIMES SHE
-1234A ; [.4864.0020.0002] # CUNEIFORM SIGN URU TIMES SIG4
-1234B ; [.4865.0020.0002] # CUNEIFORM SIGN URU TIMES TU
-1234C ; [.4866.0020.0002] # CUNEIFORM SIGN URU TIMES U PLUS GUD
-1234D ; [.4867.0020.0002] # CUNEIFORM SIGN URU TIMES UD
-1234E ; [.4868.0020.0002] # CUNEIFORM SIGN URU TIMES URUDA
-1234F ; [.4869.0020.0002] # CUNEIFORM SIGN URUDA
-12350 ; [.486A.0020.0002] # CUNEIFORM SIGN URUDA TIMES U
-12351 ; [.486B.0020.0002] # CUNEIFORM SIGN USH
-12352 ; [.486C.0020.0002] # CUNEIFORM SIGN USH TIMES A
-12353 ; [.486D.0020.0002] # CUNEIFORM SIGN USH TIMES KU
-12354 ; [.486E.0020.0002] # CUNEIFORM SIGN USH TIMES KUR
-12355 ; [.486F.0020.0002] # CUNEIFORM SIGN USH TIMES TAK4
-12356 ; [.4870.0020.0002] # CUNEIFORM SIGN USHX
-12357 ; [.4871.0020.0002] # CUNEIFORM SIGN USH2
-12358 ; [.4872.0020.0002] # CUNEIFORM SIGN USHUMX
-12359 ; [.4873.0020.0002] # CUNEIFORM SIGN UTUKI
-1235A ; [.4874.0020.0002] # CUNEIFORM SIGN UZ3
-1235B ; [.4875.0020.0002] # CUNEIFORM SIGN UZ3 TIMES KASKAL
-1235C ; [.4876.0020.0002] # CUNEIFORM SIGN UZU
-1235D ; [.4877.0020.0002] # CUNEIFORM SIGN ZA
-1235E ; [.4878.0020.0002] # CUNEIFORM SIGN ZA TENU
-1235F ; [.4879.0020.0002] # CUNEIFORM SIGN ZA SQUARED TIMES KUR
-12360 ; [.487A.0020.0002] # CUNEIFORM SIGN ZAG
-12361 ; [.487B.0020.0002] # CUNEIFORM SIGN ZAMX
-12362 ; [.487C.0020.0002] # CUNEIFORM SIGN ZE2
-12363 ; [.487D.0020.0002] # CUNEIFORM SIGN ZI
-12364 ; [.487E.0020.0002] # CUNEIFORM SIGN ZI OVER ZI
-12365 ; [.487F.0020.0002] # CUNEIFORM SIGN ZI3
-12366 ; [.4880.0020.0002] # CUNEIFORM SIGN ZIB
-12367 ; [.4881.0020.0002] # CUNEIFORM SIGN ZIB KABA TENU
-12368 ; [.4882.0020.0002] # CUNEIFORM SIGN ZIG
-12369 ; [.4883.0020.0002] # CUNEIFORM SIGN ZIZ2
-1236A ; [.4884.0020.0002] # CUNEIFORM SIGN ZU
-1236B ; [.4885.0020.0002] # CUNEIFORM SIGN ZU5
-1236C ; [.4886.0020.0002] # CUNEIFORM SIGN ZU5 TIMES A
-1236D ; [.4887.0020.0002] # CUNEIFORM SIGN ZUBUR
-1236E ; [.4888.0020.0002] # CUNEIFORM SIGN ZUM
-1236F ; [.4889.0020.0002] # CUNEIFORM SIGN KAP ELAMITE
-12370 ; [.488A.0020.0002] # CUNEIFORM SIGN AB TIMES NUN
-12371 ; [.488B.0020.0002] # CUNEIFORM SIGN AB2 TIMES A
-12372 ; [.488C.0020.0002] # CUNEIFORM SIGN AMAR TIMES KUG
-12373 ; [.488D.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH
-12374 ; [.488E.0020.0002] # CUNEIFORM SIGN DAG3
-12375 ; [.488F.0020.0002] # CUNEIFORM SIGN DISH PLUS SHU
-12376 ; [.4890.0020.0002] # CUNEIFORM SIGN DUB TIMES SHE
-12377 ; [.4891.0020.0002] # CUNEIFORM SIGN EZEN TIMES GUD
-12378 ; [.4892.0020.0002] # CUNEIFORM SIGN EZEN TIMES SHE
-12379 ; [.4893.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A
-1237A ; [.4894.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2
-1237B ; [.4895.0020.0002] # CUNEIFORM SIGN GE22
-1237C ; [.4896.0020.0002] # CUNEIFORM SIGN GIG
-1237D ; [.4897.0020.0002] # CUNEIFORM SIGN HUSH
-1237E ; [.4898.0020.0002] # CUNEIFORM SIGN KA TIMES ANSHE
-1237F ; [.4899.0020.0002] # CUNEIFORM SIGN KA TIMES ASH3
-12380 ; [.489A.0020.0002] # CUNEIFORM SIGN KA TIMES GISH
-12381 ; [.489B.0020.0002] # CUNEIFORM SIGN KA TIMES GUD
-12382 ; [.489C.0020.0002] # CUNEIFORM SIGN KA TIMES HI TIMES ASH2
-12383 ; [.489D.0020.0002] # CUNEIFORM SIGN KA TIMES LUM
-12384 ; [.489E.0020.0002] # CUNEIFORM SIGN KA TIMES PA
-12385 ; [.489F.0020.0002] # CUNEIFORM SIGN KA TIMES SHUL
-12386 ; [.48A0.0020.0002] # CUNEIFORM SIGN KA TIMES TU
-12387 ; [.48A1.0020.0002] # CUNEIFORM SIGN KA TIMES UR2
-12388 ; [.48A2.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GI
-12389 ; [.48A3.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG TIMES BAD
-1238A ; [.48A4.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL
-1238B ; [.48A5.0020.0002] # CUNEIFORM SIGN LU2 TIMES SHU
-1238C ; [.48A6.0020.0002] # CUNEIFORM SIGN MESH
-1238D ; [.48A7.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES ZA
-1238E ; [.48A8.0020.0002] # CUNEIFORM SIGN NA4
-1238F ; [.48A9.0020.0002] # CUNEIFORM SIGN NIN
-12390 ; [.48AA.0020.0002] # CUNEIFORM SIGN NIN9
-12391 ; [.48AB.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES BAL
-12392 ; [.48AC.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GI
-12393 ; [.48AD.0020.0002] # CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES
-12394 ; [.48AE.0020.0002] # CUNEIFORM SIGN PESH2 ASTERISK
-12395 ; [.48AF.0020.0002] # CUNEIFORM SIGN PIR2
-12396 ; [.48B0.0020.0002] # CUNEIFORM SIGN SAG TIMES IGI GUNU
-12397 ; [.48B1.0020.0002] # CUNEIFORM SIGN TI2
-12398 ; [.48B2.0020.0002] # CUNEIFORM SIGN UM TIMES ME
-13000 ; [.48B3.0020.0002] # EGYPTIAN HIEROGLYPH A001
-13001 ; [.48B4.0020.0002] # EGYPTIAN HIEROGLYPH A002
-13002 ; [.48B5.0020.0002] # EGYPTIAN HIEROGLYPH A003
-13003 ; [.48B6.0020.0002] # EGYPTIAN HIEROGLYPH A004
-13004 ; [.48B7.0020.0002] # EGYPTIAN HIEROGLYPH A005
-13005 ; [.48B8.0020.0002] # EGYPTIAN HIEROGLYPH A005A
-13006 ; [.48B9.0020.0002] # EGYPTIAN HIEROGLYPH A006
-13007 ; [.48BA.0020.0002] # EGYPTIAN HIEROGLYPH A006A
-13008 ; [.48BB.0020.0002] # EGYPTIAN HIEROGLYPH A006B
-13009 ; [.48BC.0020.0002] # EGYPTIAN HIEROGLYPH A007
-1300A ; [.48BD.0020.0002] # EGYPTIAN HIEROGLYPH A008
-1300B ; [.48BE.0020.0002] # EGYPTIAN HIEROGLYPH A009
-1300C ; [.48BF.0020.0002] # EGYPTIAN HIEROGLYPH A010
-1300D ; [.48C0.0020.0002] # EGYPTIAN HIEROGLYPH A011
-1300E ; [.48C1.0020.0002] # EGYPTIAN HIEROGLYPH A012
-1300F ; [.48C2.0020.0002] # EGYPTIAN HIEROGLYPH A013
-13010 ; [.48C3.0020.0002] # EGYPTIAN HIEROGLYPH A014
-13011 ; [.48C4.0020.0002] # EGYPTIAN HIEROGLYPH A014A
-13012 ; [.48C5.0020.0002] # EGYPTIAN HIEROGLYPH A015
-13013 ; [.48C6.0020.0002] # EGYPTIAN HIEROGLYPH A016
-13014 ; [.48C7.0020.0002] # EGYPTIAN HIEROGLYPH A017
-13015 ; [.48C8.0020.0002] # EGYPTIAN HIEROGLYPH A017A
-13016 ; [.48C9.0020.0002] # EGYPTIAN HIEROGLYPH A018
-13017 ; [.48CA.0020.0002] # EGYPTIAN HIEROGLYPH A019
-13018 ; [.48CB.0020.0002] # EGYPTIAN HIEROGLYPH A020
-13019 ; [.48CC.0020.0002] # EGYPTIAN HIEROGLYPH A021
-1301A ; [.48CD.0020.0002] # EGYPTIAN HIEROGLYPH A022
-1301B ; [.48CE.0020.0002] # EGYPTIAN HIEROGLYPH A023
-1301C ; [.48CF.0020.0002] # EGYPTIAN HIEROGLYPH A024
-1301D ; [.48D0.0020.0002] # EGYPTIAN HIEROGLYPH A025
-1301E ; [.48D1.0020.0002] # EGYPTIAN HIEROGLYPH A026
-1301F ; [.48D2.0020.0002] # EGYPTIAN HIEROGLYPH A027
-13020 ; [.48D3.0020.0002] # EGYPTIAN HIEROGLYPH A028
-13021 ; [.48D4.0020.0002] # EGYPTIAN HIEROGLYPH A029
-13022 ; [.48D5.0020.0002] # EGYPTIAN HIEROGLYPH A030
-13023 ; [.48D6.0020.0002] # EGYPTIAN HIEROGLYPH A031
-13024 ; [.48D7.0020.0002] # EGYPTIAN HIEROGLYPH A032
-13025 ; [.48D8.0020.0002] # EGYPTIAN HIEROGLYPH A032A
-13026 ; [.48D9.0020.0002] # EGYPTIAN HIEROGLYPH A033
-13027 ; [.48DA.0020.0002] # EGYPTIAN HIEROGLYPH A034
-13028 ; [.48DB.0020.0002] # EGYPTIAN HIEROGLYPH A035
-13029 ; [.48DC.0020.0002] # EGYPTIAN HIEROGLYPH A036
-1302A ; [.48DD.0020.0002] # EGYPTIAN HIEROGLYPH A037
-1302B ; [.48DE.0020.0002] # EGYPTIAN HIEROGLYPH A038
-1302C ; [.48DF.0020.0002] # EGYPTIAN HIEROGLYPH A039
-1302D ; [.48E0.0020.0002] # EGYPTIAN HIEROGLYPH A040
-1302E ; [.48E1.0020.0002] # EGYPTIAN HIEROGLYPH A040A
-1302F ; [.48E2.0020.0002] # EGYPTIAN HIEROGLYPH A041
-13030 ; [.48E3.0020.0002] # EGYPTIAN HIEROGLYPH A042
-13031 ; [.48E4.0020.0002] # EGYPTIAN HIEROGLYPH A042A
-13032 ; [.48E5.0020.0002] # EGYPTIAN HIEROGLYPH A043
-13033 ; [.48E6.0020.0002] # EGYPTIAN HIEROGLYPH A043A
-13034 ; [.48E7.0020.0002] # EGYPTIAN HIEROGLYPH A044
-13035 ; [.48E8.0020.0002] # EGYPTIAN HIEROGLYPH A045
-13036 ; [.48E9.0020.0002] # EGYPTIAN HIEROGLYPH A045A
-13037 ; [.48EA.0020.0002] # EGYPTIAN HIEROGLYPH A046
-13038 ; [.48EB.0020.0002] # EGYPTIAN HIEROGLYPH A047
-13039 ; [.48EC.0020.0002] # EGYPTIAN HIEROGLYPH A048
-1303A ; [.48ED.0020.0002] # EGYPTIAN HIEROGLYPH A049
-1303B ; [.48EE.0020.0002] # EGYPTIAN HIEROGLYPH A050
-1303C ; [.48EF.0020.0002] # EGYPTIAN HIEROGLYPH A051
-1303D ; [.48F0.0020.0002] # EGYPTIAN HIEROGLYPH A052
-1303E ; [.48F1.0020.0002] # EGYPTIAN HIEROGLYPH A053
-1303F ; [.48F2.0020.0002] # EGYPTIAN HIEROGLYPH A054
-13040 ; [.48F3.0020.0002] # EGYPTIAN HIEROGLYPH A055
-13041 ; [.48F4.0020.0002] # EGYPTIAN HIEROGLYPH A056
-13042 ; [.48F5.0020.0002] # EGYPTIAN HIEROGLYPH A057
-13043 ; [.48F6.0020.0002] # EGYPTIAN HIEROGLYPH A058
-13044 ; [.48F7.0020.0002] # EGYPTIAN HIEROGLYPH A059
-13045 ; [.48F8.0020.0002] # EGYPTIAN HIEROGLYPH A060
-13046 ; [.48F9.0020.0002] # EGYPTIAN HIEROGLYPH A061
-13047 ; [.48FA.0020.0002] # EGYPTIAN HIEROGLYPH A062
-13048 ; [.48FB.0020.0002] # EGYPTIAN HIEROGLYPH A063
-13049 ; [.48FC.0020.0002] # EGYPTIAN HIEROGLYPH A064
-1304A ; [.48FD.0020.0002] # EGYPTIAN HIEROGLYPH A065
-1304B ; [.48FE.0020.0002] # EGYPTIAN HIEROGLYPH A066
-1304C ; [.48FF.0020.0002] # EGYPTIAN HIEROGLYPH A067
-1304D ; [.4900.0020.0002] # EGYPTIAN HIEROGLYPH A068
-1304E ; [.4901.0020.0002] # EGYPTIAN HIEROGLYPH A069
-1304F ; [.4902.0020.0002] # EGYPTIAN HIEROGLYPH A070
-13050 ; [.4903.0020.0002] # EGYPTIAN HIEROGLYPH B001
-13051 ; [.4904.0020.0002] # EGYPTIAN HIEROGLYPH B002
-13052 ; [.4905.0020.0002] # EGYPTIAN HIEROGLYPH B003
-13053 ; [.4906.0020.0002] # EGYPTIAN HIEROGLYPH B004
-13054 ; [.4907.0020.0002] # EGYPTIAN HIEROGLYPH B005
-13055 ; [.4908.0020.0002] # EGYPTIAN HIEROGLYPH B005A
-13056 ; [.4909.0020.0002] # EGYPTIAN HIEROGLYPH B006
-13057 ; [.490A.0020.0002] # EGYPTIAN HIEROGLYPH B007
-13058 ; [.490B.0020.0002] # EGYPTIAN HIEROGLYPH B008
-13059 ; [.490C.0020.0002] # EGYPTIAN HIEROGLYPH B009
-1305A ; [.490D.0020.0002] # EGYPTIAN HIEROGLYPH C001
-1305B ; [.490E.0020.0002] # EGYPTIAN HIEROGLYPH C002
-1305C ; [.490F.0020.0002] # EGYPTIAN HIEROGLYPH C002A
-1305D ; [.4910.0020.0002] # EGYPTIAN HIEROGLYPH C002B
-1305E ; [.4911.0020.0002] # EGYPTIAN HIEROGLYPH C002C
-1305F ; [.4912.0020.0002] # EGYPTIAN HIEROGLYPH C003
-13060 ; [.4913.0020.0002] # EGYPTIAN HIEROGLYPH C004
-13061 ; [.4914.0020.0002] # EGYPTIAN HIEROGLYPH C005
-13062 ; [.4915.0020.0002] # EGYPTIAN HIEROGLYPH C006
-13063 ; [.4916.0020.0002] # EGYPTIAN HIEROGLYPH C007
-13064 ; [.4917.0020.0002] # EGYPTIAN HIEROGLYPH C008
-13065 ; [.4918.0020.0002] # EGYPTIAN HIEROGLYPH C009
-13066 ; [.4919.0020.0002] # EGYPTIAN HIEROGLYPH C010
-13067 ; [.491A.0020.0002] # EGYPTIAN HIEROGLYPH C010A
-13068 ; [.491B.0020.0002] # EGYPTIAN HIEROGLYPH C011
-13069 ; [.491C.0020.0002] # EGYPTIAN HIEROGLYPH C012
-1306A ; [.491D.0020.0002] # EGYPTIAN HIEROGLYPH C013
-1306B ; [.491E.0020.0002] # EGYPTIAN HIEROGLYPH C014
-1306C ; [.491F.0020.0002] # EGYPTIAN HIEROGLYPH C015
-1306D ; [.4920.0020.0002] # EGYPTIAN HIEROGLYPH C016
-1306E ; [.4921.0020.0002] # EGYPTIAN HIEROGLYPH C017
-1306F ; [.4922.0020.0002] # EGYPTIAN HIEROGLYPH C018
-13070 ; [.4923.0020.0002] # EGYPTIAN HIEROGLYPH C019
-13071 ; [.4924.0020.0002] # EGYPTIAN HIEROGLYPH C020
-13072 ; [.4925.0020.0002] # EGYPTIAN HIEROGLYPH C021
-13073 ; [.4926.0020.0002] # EGYPTIAN HIEROGLYPH C022
-13074 ; [.4927.0020.0002] # EGYPTIAN HIEROGLYPH C023
-13075 ; [.4928.0020.0002] # EGYPTIAN HIEROGLYPH C024
-13076 ; [.4929.0020.0002] # EGYPTIAN HIEROGLYPH D001
-13077 ; [.492A.0020.0002] # EGYPTIAN HIEROGLYPH D002
-13078 ; [.492B.0020.0002] # EGYPTIAN HIEROGLYPH D003
-13079 ; [.492C.0020.0002] # EGYPTIAN HIEROGLYPH D004
-1307A ; [.492D.0020.0002] # EGYPTIAN HIEROGLYPH D005
-1307B ; [.492E.0020.0002] # EGYPTIAN HIEROGLYPH D006
-1307C ; [.492F.0020.0002] # EGYPTIAN HIEROGLYPH D007
-1307D ; [.4930.0020.0002] # EGYPTIAN HIEROGLYPH D008
-1307E ; [.4931.0020.0002] # EGYPTIAN HIEROGLYPH D008A
-1307F ; [.4932.0020.0002] # EGYPTIAN HIEROGLYPH D009
-13080 ; [.4933.0020.0002] # EGYPTIAN HIEROGLYPH D010
-13081 ; [.4934.0020.0002] # EGYPTIAN HIEROGLYPH D011
-13082 ; [.4935.0020.0002] # EGYPTIAN HIEROGLYPH D012
-13083 ; [.4936.0020.0002] # EGYPTIAN HIEROGLYPH D013
-13084 ; [.4937.0020.0002] # EGYPTIAN HIEROGLYPH D014
-13085 ; [.4938.0020.0002] # EGYPTIAN HIEROGLYPH D015
-13086 ; [.4939.0020.0002] # EGYPTIAN HIEROGLYPH D016
-13087 ; [.493A.0020.0002] # EGYPTIAN HIEROGLYPH D017
-13088 ; [.493B.0020.0002] # EGYPTIAN HIEROGLYPH D018
-13089 ; [.493C.0020.0002] # EGYPTIAN HIEROGLYPH D019
-1308A ; [.493D.0020.0002] # EGYPTIAN HIEROGLYPH D020
-1308B ; [.493E.0020.0002] # EGYPTIAN HIEROGLYPH D021
-1308C ; [.493F.0020.0002] # EGYPTIAN HIEROGLYPH D022
-1308D ; [.4940.0020.0002] # EGYPTIAN HIEROGLYPH D023
-1308E ; [.4941.0020.0002] # EGYPTIAN HIEROGLYPH D024
-1308F ; [.4942.0020.0002] # EGYPTIAN HIEROGLYPH D025
-13090 ; [.4943.0020.0002] # EGYPTIAN HIEROGLYPH D026
-13091 ; [.4944.0020.0002] # EGYPTIAN HIEROGLYPH D027
-13092 ; [.4945.0020.0002] # EGYPTIAN HIEROGLYPH D027A
-13093 ; [.4946.0020.0002] # EGYPTIAN HIEROGLYPH D028
-13094 ; [.4947.0020.0002] # EGYPTIAN HIEROGLYPH D029
-13095 ; [.4948.0020.0002] # EGYPTIAN HIEROGLYPH D030
-13096 ; [.4949.0020.0002] # EGYPTIAN HIEROGLYPH D031
-13097 ; [.494A.0020.0002] # EGYPTIAN HIEROGLYPH D031A
-13098 ; [.494B.0020.0002] # EGYPTIAN HIEROGLYPH D032
-13099 ; [.494C.0020.0002] # EGYPTIAN HIEROGLYPH D033
-1309A ; [.494D.0020.0002] # EGYPTIAN HIEROGLYPH D034
-1309B ; [.494E.0020.0002] # EGYPTIAN HIEROGLYPH D034A
-1309C ; [.494F.0020.0002] # EGYPTIAN HIEROGLYPH D035
-1309D ; [.4950.0020.0002] # EGYPTIAN HIEROGLYPH D036
-1309E ; [.4951.0020.0002] # EGYPTIAN HIEROGLYPH D037
-1309F ; [.4952.0020.0002] # EGYPTIAN HIEROGLYPH D038
-130A0 ; [.4953.0020.0002] # EGYPTIAN HIEROGLYPH D039
-130A1 ; [.4954.0020.0002] # EGYPTIAN HIEROGLYPH D040
-130A2 ; [.4955.0020.0002] # EGYPTIAN HIEROGLYPH D041
-130A3 ; [.4956.0020.0002] # EGYPTIAN HIEROGLYPH D042
-130A4 ; [.4957.0020.0002] # EGYPTIAN HIEROGLYPH D043
-130A5 ; [.4958.0020.0002] # EGYPTIAN HIEROGLYPH D044
-130A6 ; [.4959.0020.0002] # EGYPTIAN HIEROGLYPH D045
-130A7 ; [.495A.0020.0002] # EGYPTIAN HIEROGLYPH D046
-130A8 ; [.495B.0020.0002] # EGYPTIAN HIEROGLYPH D046A
-130A9 ; [.495C.0020.0002] # EGYPTIAN HIEROGLYPH D047
-130AA ; [.495D.0020.0002] # EGYPTIAN HIEROGLYPH D048
-130AB ; [.495E.0020.0002] # EGYPTIAN HIEROGLYPH D048A
-130AC ; [.495F.0020.0002] # EGYPTIAN HIEROGLYPH D049
-130AD ; [.4960.0020.0002] # EGYPTIAN HIEROGLYPH D050
-130AE ; [.4961.0020.0002] # EGYPTIAN HIEROGLYPH D050A
-130AF ; [.4962.0020.0002] # EGYPTIAN HIEROGLYPH D050B
-130B0 ; [.4963.0020.0002] # EGYPTIAN HIEROGLYPH D050C
-130B1 ; [.4964.0020.0002] # EGYPTIAN HIEROGLYPH D050D
-130B2 ; [.4965.0020.0002] # EGYPTIAN HIEROGLYPH D050E
-130B3 ; [.4966.0020.0002] # EGYPTIAN HIEROGLYPH D050F
-130B4 ; [.4967.0020.0002] # EGYPTIAN HIEROGLYPH D050G
-130B5 ; [.4968.0020.0002] # EGYPTIAN HIEROGLYPH D050H
-130B6 ; [.4969.0020.0002] # EGYPTIAN HIEROGLYPH D050I
-130B7 ; [.496A.0020.0002] # EGYPTIAN HIEROGLYPH D051
-130B8 ; [.496B.0020.0002] # EGYPTIAN HIEROGLYPH D052
-130B9 ; [.496C.0020.0002] # EGYPTIAN HIEROGLYPH D052A
-130BA ; [.496D.0020.0002] # EGYPTIAN HIEROGLYPH D053
-130BB ; [.496E.0020.0002] # EGYPTIAN HIEROGLYPH D054
-130BC ; [.496F.0020.0002] # EGYPTIAN HIEROGLYPH D054A
-130BD ; [.4970.0020.0002] # EGYPTIAN HIEROGLYPH D055
-130BE ; [.4971.0020.0002] # EGYPTIAN HIEROGLYPH D056
-130BF ; [.4972.0020.0002] # EGYPTIAN HIEROGLYPH D057
-130C0 ; [.4973.0020.0002] # EGYPTIAN HIEROGLYPH D058
-130C1 ; [.4974.0020.0002] # EGYPTIAN HIEROGLYPH D059
-130C2 ; [.4975.0020.0002] # EGYPTIAN HIEROGLYPH D060
-130C3 ; [.4976.0020.0002] # EGYPTIAN HIEROGLYPH D061
-130C4 ; [.4977.0020.0002] # EGYPTIAN HIEROGLYPH D062
-130C5 ; [.4978.0020.0002] # EGYPTIAN HIEROGLYPH D063
-130C6 ; [.4979.0020.0002] # EGYPTIAN HIEROGLYPH D064
-130C7 ; [.497A.0020.0002] # EGYPTIAN HIEROGLYPH D065
-130C8 ; [.497B.0020.0002] # EGYPTIAN HIEROGLYPH D066
-130C9 ; [.497C.0020.0002] # EGYPTIAN HIEROGLYPH D067
-130CA ; [.497D.0020.0002] # EGYPTIAN HIEROGLYPH D067A
-130CB ; [.497E.0020.0002] # EGYPTIAN HIEROGLYPH D067B
-130CC ; [.497F.0020.0002] # EGYPTIAN HIEROGLYPH D067C
-130CD ; [.4980.0020.0002] # EGYPTIAN HIEROGLYPH D067D
-130CE ; [.4981.0020.0002] # EGYPTIAN HIEROGLYPH D067E
-130CF ; [.4982.0020.0002] # EGYPTIAN HIEROGLYPH D067F
-130D0 ; [.4983.0020.0002] # EGYPTIAN HIEROGLYPH D067G
-130D1 ; [.4984.0020.0002] # EGYPTIAN HIEROGLYPH D067H
-130D2 ; [.4985.0020.0002] # EGYPTIAN HIEROGLYPH E001
-130D3 ; [.4986.0020.0002] # EGYPTIAN HIEROGLYPH E002
-130D4 ; [.4987.0020.0002] # EGYPTIAN HIEROGLYPH E003
-130D5 ; [.4988.0020.0002] # EGYPTIAN HIEROGLYPH E004
-130D6 ; [.4989.0020.0002] # EGYPTIAN HIEROGLYPH E005
-130D7 ; [.498A.0020.0002] # EGYPTIAN HIEROGLYPH E006
-130D8 ; [.498B.0020.0002] # EGYPTIAN HIEROGLYPH E007
-130D9 ; [.498C.0020.0002] # EGYPTIAN HIEROGLYPH E008
-130DA ; [.498D.0020.0002] # EGYPTIAN HIEROGLYPH E008A
-130DB ; [.498E.0020.0002] # EGYPTIAN HIEROGLYPH E009
-130DC ; [.498F.0020.0002] # EGYPTIAN HIEROGLYPH E009A
-130DD ; [.4990.0020.0002] # EGYPTIAN HIEROGLYPH E010
-130DE ; [.4991.0020.0002] # EGYPTIAN HIEROGLYPH E011
-130DF ; [.4992.0020.0002] # EGYPTIAN HIEROGLYPH E012
-130E0 ; [.4993.0020.0002] # EGYPTIAN HIEROGLYPH E013
-130E1 ; [.4994.0020.0002] # EGYPTIAN HIEROGLYPH E014
-130E2 ; [.4995.0020.0002] # EGYPTIAN HIEROGLYPH E015
-130E3 ; [.4996.0020.0002] # EGYPTIAN HIEROGLYPH E016
-130E4 ; [.4997.0020.0002] # EGYPTIAN HIEROGLYPH E016A
-130E5 ; [.4998.0020.0002] # EGYPTIAN HIEROGLYPH E017
-130E6 ; [.4999.0020.0002] # EGYPTIAN HIEROGLYPH E017A
-130E7 ; [.499A.0020.0002] # EGYPTIAN HIEROGLYPH E018
-130E8 ; [.499B.0020.0002] # EGYPTIAN HIEROGLYPH E019
-130E9 ; [.499C.0020.0002] # EGYPTIAN HIEROGLYPH E020
-130EA ; [.499D.0020.0002] # EGYPTIAN HIEROGLYPH E020A
-130EB ; [.499E.0020.0002] # EGYPTIAN HIEROGLYPH E021
-130EC ; [.499F.0020.0002] # EGYPTIAN HIEROGLYPH E022
-130ED ; [.49A0.0020.0002] # EGYPTIAN HIEROGLYPH E023
-130EE ; [.49A1.0020.0002] # EGYPTIAN HIEROGLYPH E024
-130EF ; [.49A2.0020.0002] # EGYPTIAN HIEROGLYPH E025
-130F0 ; [.49A3.0020.0002] # EGYPTIAN HIEROGLYPH E026
-130F1 ; [.49A4.0020.0002] # EGYPTIAN HIEROGLYPH E027
-130F2 ; [.49A5.0020.0002] # EGYPTIAN HIEROGLYPH E028
-130F3 ; [.49A6.0020.0002] # EGYPTIAN HIEROGLYPH E028A
-130F4 ; [.49A7.0020.0002] # EGYPTIAN HIEROGLYPH E029
-130F5 ; [.49A8.0020.0002] # EGYPTIAN HIEROGLYPH E030
-130F6 ; [.49A9.0020.0002] # EGYPTIAN HIEROGLYPH E031
-130F7 ; [.49AA.0020.0002] # EGYPTIAN HIEROGLYPH E032
-130F8 ; [.49AB.0020.0002] # EGYPTIAN HIEROGLYPH E033
-130F9 ; [.49AC.0020.0002] # EGYPTIAN HIEROGLYPH E034
-130FA ; [.49AD.0020.0002] # EGYPTIAN HIEROGLYPH E034A
-130FB ; [.49AE.0020.0002] # EGYPTIAN HIEROGLYPH E036
-130FC ; [.49AF.0020.0002] # EGYPTIAN HIEROGLYPH E037
-130FD ; [.49B0.0020.0002] # EGYPTIAN HIEROGLYPH E038
-130FE ; [.49B1.0020.0002] # EGYPTIAN HIEROGLYPH F001
-130FF ; [.49B2.0020.0002] # EGYPTIAN HIEROGLYPH F001A
-13100 ; [.49B3.0020.0002] # EGYPTIAN HIEROGLYPH F002
-13101 ; [.49B4.0020.0002] # EGYPTIAN HIEROGLYPH F003
-13102 ; [.49B5.0020.0002] # EGYPTIAN HIEROGLYPH F004
-13103 ; [.49B6.0020.0002] # EGYPTIAN HIEROGLYPH F005
-13104 ; [.49B7.0020.0002] # EGYPTIAN HIEROGLYPH F006
-13105 ; [.49B8.0020.0002] # EGYPTIAN HIEROGLYPH F007
-13106 ; [.49B9.0020.0002] # EGYPTIAN HIEROGLYPH F008
-13107 ; [.49BA.0020.0002] # EGYPTIAN HIEROGLYPH F009
-13108 ; [.49BB.0020.0002] # EGYPTIAN HIEROGLYPH F010
-13109 ; [.49BC.0020.0002] # EGYPTIAN HIEROGLYPH F011
-1310A ; [.49BD.0020.0002] # EGYPTIAN HIEROGLYPH F012
-1310B ; [.49BE.0020.0002] # EGYPTIAN HIEROGLYPH F013
-1310C ; [.49BF.0020.0002] # EGYPTIAN HIEROGLYPH F013A
-1310D ; [.49C0.0020.0002] # EGYPTIAN HIEROGLYPH F014
-1310E ; [.49C1.0020.0002] # EGYPTIAN HIEROGLYPH F015
-1310F ; [.49C2.0020.0002] # EGYPTIAN HIEROGLYPH F016
-13110 ; [.49C3.0020.0002] # EGYPTIAN HIEROGLYPH F017
-13111 ; [.49C4.0020.0002] # EGYPTIAN HIEROGLYPH F018
-13112 ; [.49C5.0020.0002] # EGYPTIAN HIEROGLYPH F019
-13113 ; [.49C6.0020.0002] # EGYPTIAN HIEROGLYPH F020
-13114 ; [.49C7.0020.0002] # EGYPTIAN HIEROGLYPH F021
-13115 ; [.49C8.0020.0002] # EGYPTIAN HIEROGLYPH F021A
-13116 ; [.49C9.0020.0002] # EGYPTIAN HIEROGLYPH F022
-13117 ; [.49CA.0020.0002] # EGYPTIAN HIEROGLYPH F023
-13118 ; [.49CB.0020.0002] # EGYPTIAN HIEROGLYPH F024
-13119 ; [.49CC.0020.0002] # EGYPTIAN HIEROGLYPH F025
-1311A ; [.49CD.0020.0002] # EGYPTIAN HIEROGLYPH F026
-1311B ; [.49CE.0020.0002] # EGYPTIAN HIEROGLYPH F027
-1311C ; [.49CF.0020.0002] # EGYPTIAN HIEROGLYPH F028
-1311D ; [.49D0.0020.0002] # EGYPTIAN HIEROGLYPH F029
-1311E ; [.49D1.0020.0002] # EGYPTIAN HIEROGLYPH F030
-1311F ; [.49D2.0020.0002] # EGYPTIAN HIEROGLYPH F031
-13120 ; [.49D3.0020.0002] # EGYPTIAN HIEROGLYPH F031A
-13121 ; [.49D4.0020.0002] # EGYPTIAN HIEROGLYPH F032
-13122 ; [.49D5.0020.0002] # EGYPTIAN HIEROGLYPH F033
-13123 ; [.49D6.0020.0002] # EGYPTIAN HIEROGLYPH F034
-13124 ; [.49D7.0020.0002] # EGYPTIAN HIEROGLYPH F035
-13125 ; [.49D8.0020.0002] # EGYPTIAN HIEROGLYPH F036
-13126 ; [.49D9.0020.0002] # EGYPTIAN HIEROGLYPH F037
-13127 ; [.49DA.0020.0002] # EGYPTIAN HIEROGLYPH F037A
-13128 ; [.49DB.0020.0002] # EGYPTIAN HIEROGLYPH F038
-13129 ; [.49DC.0020.0002] # EGYPTIAN HIEROGLYPH F038A
-1312A ; [.49DD.0020.0002] # EGYPTIAN HIEROGLYPH F039
-1312B ; [.49DE.0020.0002] # EGYPTIAN HIEROGLYPH F040
-1312C ; [.49DF.0020.0002] # EGYPTIAN HIEROGLYPH F041
-1312D ; [.49E0.0020.0002] # EGYPTIAN HIEROGLYPH F042
-1312E ; [.49E1.0020.0002] # EGYPTIAN HIEROGLYPH F043
-1312F ; [.49E2.0020.0002] # EGYPTIAN HIEROGLYPH F044
-13130 ; [.49E3.0020.0002] # EGYPTIAN HIEROGLYPH F045
-13131 ; [.49E4.0020.0002] # EGYPTIAN HIEROGLYPH F045A
-13132 ; [.49E5.0020.0002] # EGYPTIAN HIEROGLYPH F046
-13133 ; [.49E6.0020.0002] # EGYPTIAN HIEROGLYPH F046A
-13134 ; [.49E7.0020.0002] # EGYPTIAN HIEROGLYPH F047
-13135 ; [.49E8.0020.0002] # EGYPTIAN HIEROGLYPH F047A
-13136 ; [.49E9.0020.0002] # EGYPTIAN HIEROGLYPH F048
-13137 ; [.49EA.0020.0002] # EGYPTIAN HIEROGLYPH F049
-13138 ; [.49EB.0020.0002] # EGYPTIAN HIEROGLYPH F050
-13139 ; [.49EC.0020.0002] # EGYPTIAN HIEROGLYPH F051
-1313A ; [.49ED.0020.0002] # EGYPTIAN HIEROGLYPH F051A
-1313B ; [.49EE.0020.0002] # EGYPTIAN HIEROGLYPH F051B
-1313C ; [.49EF.0020.0002] # EGYPTIAN HIEROGLYPH F051C
-1313D ; [.49F0.0020.0002] # EGYPTIAN HIEROGLYPH F052
-1313E ; [.49F1.0020.0002] # EGYPTIAN HIEROGLYPH F053
-1313F ; [.49F2.0020.0002] # EGYPTIAN HIEROGLYPH G001
-13140 ; [.49F3.0020.0002] # EGYPTIAN HIEROGLYPH G002
-13141 ; [.49F4.0020.0002] # EGYPTIAN HIEROGLYPH G003
-13142 ; [.49F5.0020.0002] # EGYPTIAN HIEROGLYPH G004
-13143 ; [.49F6.0020.0002] # EGYPTIAN HIEROGLYPH G005
-13144 ; [.49F7.0020.0002] # EGYPTIAN HIEROGLYPH G006
-13145 ; [.49F8.0020.0002] # EGYPTIAN HIEROGLYPH G006A
-13146 ; [.49F9.0020.0002] # EGYPTIAN HIEROGLYPH G007
-13147 ; [.49FA.0020.0002] # EGYPTIAN HIEROGLYPH G007A
-13148 ; [.49FB.0020.0002] # EGYPTIAN HIEROGLYPH G007B
-13149 ; [.49FC.0020.0002] # EGYPTIAN HIEROGLYPH G008
-1314A ; [.49FD.0020.0002] # EGYPTIAN HIEROGLYPH G009
-1314B ; [.49FE.0020.0002] # EGYPTIAN HIEROGLYPH G010
-1314C ; [.49FF.0020.0002] # EGYPTIAN HIEROGLYPH G011
-1314D ; [.4A00.0020.0002] # EGYPTIAN HIEROGLYPH G011A
-1314E ; [.4A01.0020.0002] # EGYPTIAN HIEROGLYPH G012
-1314F ; [.4A02.0020.0002] # EGYPTIAN HIEROGLYPH G013
-13150 ; [.4A03.0020.0002] # EGYPTIAN HIEROGLYPH G014
-13151 ; [.4A04.0020.0002] # EGYPTIAN HIEROGLYPH G015
-13152 ; [.4A05.0020.0002] # EGYPTIAN HIEROGLYPH G016
-13153 ; [.4A06.0020.0002] # EGYPTIAN HIEROGLYPH G017
-13154 ; [.4A07.0020.0002] # EGYPTIAN HIEROGLYPH G018
-13155 ; [.4A08.0020.0002] # EGYPTIAN HIEROGLYPH G019
-13156 ; [.4A09.0020.0002] # EGYPTIAN HIEROGLYPH G020
-13157 ; [.4A0A.0020.0002] # EGYPTIAN HIEROGLYPH G020A
-13158 ; [.4A0B.0020.0002] # EGYPTIAN HIEROGLYPH G021
-13159 ; [.4A0C.0020.0002] # EGYPTIAN HIEROGLYPH G022
-1315A ; [.4A0D.0020.0002] # EGYPTIAN HIEROGLYPH G023
-1315B ; [.4A0E.0020.0002] # EGYPTIAN HIEROGLYPH G024
-1315C ; [.4A0F.0020.0002] # EGYPTIAN HIEROGLYPH G025
-1315D ; [.4A10.0020.0002] # EGYPTIAN HIEROGLYPH G026
-1315E ; [.4A11.0020.0002] # EGYPTIAN HIEROGLYPH G026A
-1315F ; [.4A12.0020.0002] # EGYPTIAN HIEROGLYPH G027
-13160 ; [.4A13.0020.0002] # EGYPTIAN HIEROGLYPH G028
-13161 ; [.4A14.0020.0002] # EGYPTIAN HIEROGLYPH G029
-13162 ; [.4A15.0020.0002] # EGYPTIAN HIEROGLYPH G030
-13163 ; [.4A16.0020.0002] # EGYPTIAN HIEROGLYPH G031
-13164 ; [.4A17.0020.0002] # EGYPTIAN HIEROGLYPH G032
-13165 ; [.4A18.0020.0002] # EGYPTIAN HIEROGLYPH G033
-13166 ; [.4A19.0020.0002] # EGYPTIAN HIEROGLYPH G034
-13167 ; [.4A1A.0020.0002] # EGYPTIAN HIEROGLYPH G035
-13168 ; [.4A1B.0020.0002] # EGYPTIAN HIEROGLYPH G036
-13169 ; [.4A1C.0020.0002] # EGYPTIAN HIEROGLYPH G036A
-1316A ; [.4A1D.0020.0002] # EGYPTIAN HIEROGLYPH G037
-1316B ; [.4A1E.0020.0002] # EGYPTIAN HIEROGLYPH G037A
-1316C ; [.4A1F.0020.0002] # EGYPTIAN HIEROGLYPH G038
-1316D ; [.4A20.0020.0002] # EGYPTIAN HIEROGLYPH G039
-1316E ; [.4A21.0020.0002] # EGYPTIAN HIEROGLYPH G040
-1316F ; [.4A22.0020.0002] # EGYPTIAN HIEROGLYPH G041
-13170 ; [.4A23.0020.0002] # EGYPTIAN HIEROGLYPH G042
-13171 ; [.4A24.0020.0002] # EGYPTIAN HIEROGLYPH G043
-13172 ; [.4A25.0020.0002] # EGYPTIAN HIEROGLYPH G043A
-13173 ; [.4A26.0020.0002] # EGYPTIAN HIEROGLYPH G044
-13174 ; [.4A27.0020.0002] # EGYPTIAN HIEROGLYPH G045
-13175 ; [.4A28.0020.0002] # EGYPTIAN HIEROGLYPH G045A
-13176 ; [.4A29.0020.0002] # EGYPTIAN HIEROGLYPH G046
-13177 ; [.4A2A.0020.0002] # EGYPTIAN HIEROGLYPH G047
-13178 ; [.4A2B.0020.0002] # EGYPTIAN HIEROGLYPH G048
-13179 ; [.4A2C.0020.0002] # EGYPTIAN HIEROGLYPH G049
-1317A ; [.4A2D.0020.0002] # EGYPTIAN HIEROGLYPH G050
-1317B ; [.4A2E.0020.0002] # EGYPTIAN HIEROGLYPH G051
-1317C ; [.4A2F.0020.0002] # EGYPTIAN HIEROGLYPH G052
-1317D ; [.4A30.0020.0002] # EGYPTIAN HIEROGLYPH G053
-1317E ; [.4A31.0020.0002] # EGYPTIAN HIEROGLYPH G054
-1317F ; [.4A32.0020.0002] # EGYPTIAN HIEROGLYPH H001
-13180 ; [.4A33.0020.0002] # EGYPTIAN HIEROGLYPH H002
-13181 ; [.4A34.0020.0002] # EGYPTIAN HIEROGLYPH H003
-13182 ; [.4A35.0020.0002] # EGYPTIAN HIEROGLYPH H004
-13183 ; [.4A36.0020.0002] # EGYPTIAN HIEROGLYPH H005
-13184 ; [.4A37.0020.0002] # EGYPTIAN HIEROGLYPH H006
-13185 ; [.4A38.0020.0002] # EGYPTIAN HIEROGLYPH H006A
-13186 ; [.4A39.0020.0002] # EGYPTIAN HIEROGLYPH H007
-13187 ; [.4A3A.0020.0002] # EGYPTIAN HIEROGLYPH H008
-13188 ; [.4A3B.0020.0002] # EGYPTIAN HIEROGLYPH I001
-13189 ; [.4A3C.0020.0002] # EGYPTIAN HIEROGLYPH I002
-1318A ; [.4A3D.0020.0002] # EGYPTIAN HIEROGLYPH I003
-1318B ; [.4A3E.0020.0002] # EGYPTIAN HIEROGLYPH I004
-1318C ; [.4A3F.0020.0002] # EGYPTIAN HIEROGLYPH I005
-1318D ; [.4A40.0020.0002] # EGYPTIAN HIEROGLYPH I005A
-1318E ; [.4A41.0020.0002] # EGYPTIAN HIEROGLYPH I006
-1318F ; [.4A42.0020.0002] # EGYPTIAN HIEROGLYPH I007
-13190 ; [.4A43.0020.0002] # EGYPTIAN HIEROGLYPH I008
-13191 ; [.4A44.0020.0002] # EGYPTIAN HIEROGLYPH I009
-13192 ; [.4A45.0020.0002] # EGYPTIAN HIEROGLYPH I009A
-13193 ; [.4A46.0020.0002] # EGYPTIAN HIEROGLYPH I010
-13194 ; [.4A47.0020.0002] # EGYPTIAN HIEROGLYPH I010A
-13195 ; [.4A48.0020.0002] # EGYPTIAN HIEROGLYPH I011
-13196 ; [.4A49.0020.0002] # EGYPTIAN HIEROGLYPH I011A
-13197 ; [.4A4A.0020.0002] # EGYPTIAN HIEROGLYPH I012
-13198 ; [.4A4B.0020.0002] # EGYPTIAN HIEROGLYPH I013
-13199 ; [.4A4C.0020.0002] # EGYPTIAN HIEROGLYPH I014
-1319A ; [.4A4D.0020.0002] # EGYPTIAN HIEROGLYPH I015
-1319B ; [.4A4E.0020.0002] # EGYPTIAN HIEROGLYPH K001
-1319C ; [.4A4F.0020.0002] # EGYPTIAN HIEROGLYPH K002
-1319D ; [.4A50.0020.0002] # EGYPTIAN HIEROGLYPH K003
-1319E ; [.4A51.0020.0002] # EGYPTIAN HIEROGLYPH K004
-1319F ; [.4A52.0020.0002] # EGYPTIAN HIEROGLYPH K005
-131A0 ; [.4A53.0020.0002] # EGYPTIAN HIEROGLYPH K006
-131A1 ; [.4A54.0020.0002] # EGYPTIAN HIEROGLYPH K007
-131A2 ; [.4A55.0020.0002] # EGYPTIAN HIEROGLYPH K008
-131A3 ; [.4A56.0020.0002] # EGYPTIAN HIEROGLYPH L001
-131A4 ; [.4A57.0020.0002] # EGYPTIAN HIEROGLYPH L002
-131A5 ; [.4A58.0020.0002] # EGYPTIAN HIEROGLYPH L002A
-131A6 ; [.4A59.0020.0002] # EGYPTIAN HIEROGLYPH L003
-131A7 ; [.4A5A.0020.0002] # EGYPTIAN HIEROGLYPH L004
-131A8 ; [.4A5B.0020.0002] # EGYPTIAN HIEROGLYPH L005
-131A9 ; [.4A5C.0020.0002] # EGYPTIAN HIEROGLYPH L006
-131AA ; [.4A5D.0020.0002] # EGYPTIAN HIEROGLYPH L006A
-131AB ; [.4A5E.0020.0002] # EGYPTIAN HIEROGLYPH L007
-131AC ; [.4A5F.0020.0002] # EGYPTIAN HIEROGLYPH L008
-131AD ; [.4A60.0020.0002] # EGYPTIAN HIEROGLYPH M001
-131AE ; [.4A61.0020.0002] # EGYPTIAN HIEROGLYPH M001A
-131AF ; [.4A62.0020.0002] # EGYPTIAN HIEROGLYPH M001B
-131B0 ; [.4A63.0020.0002] # EGYPTIAN HIEROGLYPH M002
-131B1 ; [.4A64.0020.0002] # EGYPTIAN HIEROGLYPH M003
-131B2 ; [.4A65.0020.0002] # EGYPTIAN HIEROGLYPH M003A
-131B3 ; [.4A66.0020.0002] # EGYPTIAN HIEROGLYPH M004
-131B4 ; [.4A67.0020.0002] # EGYPTIAN HIEROGLYPH M005
-131B5 ; [.4A68.0020.0002] # EGYPTIAN HIEROGLYPH M006
-131B6 ; [.4A69.0020.0002] # EGYPTIAN HIEROGLYPH M007
-131B7 ; [.4A6A.0020.0002] # EGYPTIAN HIEROGLYPH M008
-131B8 ; [.4A6B.0020.0002] # EGYPTIAN HIEROGLYPH M009
-131B9 ; [.4A6C.0020.0002] # EGYPTIAN HIEROGLYPH M010
-131BA ; [.4A6D.0020.0002] # EGYPTIAN HIEROGLYPH M010A
-131BB ; [.4A6E.0020.0002] # EGYPTIAN HIEROGLYPH M011
-131BC ; [.4A6F.0020.0002] # EGYPTIAN HIEROGLYPH M012
-131BD ; [.4A70.0020.0002] # EGYPTIAN HIEROGLYPH M012A
-131BE ; [.4A71.0020.0002] # EGYPTIAN HIEROGLYPH M012B
-131BF ; [.4A72.0020.0002] # EGYPTIAN HIEROGLYPH M012C
-131C0 ; [.4A73.0020.0002] # EGYPTIAN HIEROGLYPH M012D
-131C1 ; [.4A74.0020.0002] # EGYPTIAN HIEROGLYPH M012E
-131C2 ; [.4A75.0020.0002] # EGYPTIAN HIEROGLYPH M012F
-131C3 ; [.4A76.0020.0002] # EGYPTIAN HIEROGLYPH M012G
-131C4 ; [.4A77.0020.0002] # EGYPTIAN HIEROGLYPH M012H
-131C5 ; [.4A78.0020.0002] # EGYPTIAN HIEROGLYPH M013
-131C6 ; [.4A79.0020.0002] # EGYPTIAN HIEROGLYPH M014
-131C7 ; [.4A7A.0020.0002] # EGYPTIAN HIEROGLYPH M015
-131C8 ; [.4A7B.0020.0002] # EGYPTIAN HIEROGLYPH M015A
-131C9 ; [.4A7C.0020.0002] # EGYPTIAN HIEROGLYPH M016
-131CA ; [.4A7D.0020.0002] # EGYPTIAN HIEROGLYPH M016A
-131CB ; [.4A7E.0020.0002] # EGYPTIAN HIEROGLYPH M017
-131CC ; [.4A7F.0020.0002] # EGYPTIAN HIEROGLYPH M017A
-131CD ; [.4A80.0020.0002] # EGYPTIAN HIEROGLYPH M018
-131CE ; [.4A81.0020.0002] # EGYPTIAN HIEROGLYPH M019
-131CF ; [.4A82.0020.0002] # EGYPTIAN HIEROGLYPH M020
-131D0 ; [.4A83.0020.0002] # EGYPTIAN HIEROGLYPH M021
-131D1 ; [.4A84.0020.0002] # EGYPTIAN HIEROGLYPH M022
-131D2 ; [.4A85.0020.0002] # EGYPTIAN HIEROGLYPH M022A
-131D3 ; [.4A86.0020.0002] # EGYPTIAN HIEROGLYPH M023
-131D4 ; [.4A87.0020.0002] # EGYPTIAN HIEROGLYPH M024
-131D5 ; [.4A88.0020.0002] # EGYPTIAN HIEROGLYPH M024A
-131D6 ; [.4A89.0020.0002] # EGYPTIAN HIEROGLYPH M025
-131D7 ; [.4A8A.0020.0002] # EGYPTIAN HIEROGLYPH M026
-131D8 ; [.4A8B.0020.0002] # EGYPTIAN HIEROGLYPH M027
-131D9 ; [.4A8C.0020.0002] # EGYPTIAN HIEROGLYPH M028
-131DA ; [.4A8D.0020.0002] # EGYPTIAN HIEROGLYPH M028A
-131DB ; [.4A8E.0020.0002] # EGYPTIAN HIEROGLYPH M029
-131DC ; [.4A8F.0020.0002] # EGYPTIAN HIEROGLYPH M030
-131DD ; [.4A90.0020.0002] # EGYPTIAN HIEROGLYPH M031
-131DE ; [.4A91.0020.0002] # EGYPTIAN HIEROGLYPH M031A
-131DF ; [.4A92.0020.0002] # EGYPTIAN HIEROGLYPH M032
-131E0 ; [.4A93.0020.0002] # EGYPTIAN HIEROGLYPH M033
-131E1 ; [.4A94.0020.0002] # EGYPTIAN HIEROGLYPH M033A
-131E2 ; [.4A95.0020.0002] # EGYPTIAN HIEROGLYPH M033B
-131E3 ; [.4A96.0020.0002] # EGYPTIAN HIEROGLYPH M034
-131E4 ; [.4A97.0020.0002] # EGYPTIAN HIEROGLYPH M035
-131E5 ; [.4A98.0020.0002] # EGYPTIAN HIEROGLYPH M036
-131E6 ; [.4A99.0020.0002] # EGYPTIAN HIEROGLYPH M037
-131E7 ; [.4A9A.0020.0002] # EGYPTIAN HIEROGLYPH M038
-131E8 ; [.4A9B.0020.0002] # EGYPTIAN HIEROGLYPH M039
-131E9 ; [.4A9C.0020.0002] # EGYPTIAN HIEROGLYPH M040
-131EA ; [.4A9D.0020.0002] # EGYPTIAN HIEROGLYPH M040A
-131EB ; [.4A9E.0020.0002] # EGYPTIAN HIEROGLYPH M041
-131EC ; [.4A9F.0020.0002] # EGYPTIAN HIEROGLYPH M042
-131ED ; [.4AA0.0020.0002] # EGYPTIAN HIEROGLYPH M043
-131EE ; [.4AA1.0020.0002] # EGYPTIAN HIEROGLYPH M044
-131EF ; [.4AA2.0020.0002] # EGYPTIAN HIEROGLYPH N001
-131F0 ; [.4AA3.0020.0002] # EGYPTIAN HIEROGLYPH N002
-131F1 ; [.4AA4.0020.0002] # EGYPTIAN HIEROGLYPH N003
-131F2 ; [.4AA5.0020.0002] # EGYPTIAN HIEROGLYPH N004
-131F3 ; [.4AA6.0020.0002] # EGYPTIAN HIEROGLYPH N005
-131F4 ; [.4AA7.0020.0002] # EGYPTIAN HIEROGLYPH N006
-131F5 ; [.4AA8.0020.0002] # EGYPTIAN HIEROGLYPH N007
-131F6 ; [.4AA9.0020.0002] # EGYPTIAN HIEROGLYPH N008
-131F7 ; [.4AAA.0020.0002] # EGYPTIAN HIEROGLYPH N009
-131F8 ; [.4AAB.0020.0002] # EGYPTIAN HIEROGLYPH N010
-131F9 ; [.4AAC.0020.0002] # EGYPTIAN HIEROGLYPH N011
-131FA ; [.4AAD.0020.0002] # EGYPTIAN HIEROGLYPH N012
-131FB ; [.4AAE.0020.0002] # EGYPTIAN HIEROGLYPH N013
-131FC ; [.4AAF.0020.0002] # EGYPTIAN HIEROGLYPH N014
-131FD ; [.4AB0.0020.0002] # EGYPTIAN HIEROGLYPH N015
-131FE ; [.4AB1.0020.0002] # EGYPTIAN HIEROGLYPH N016
-131FF ; [.4AB2.0020.0002] # EGYPTIAN HIEROGLYPH N017
-13200 ; [.4AB3.0020.0002] # EGYPTIAN HIEROGLYPH N018
-13201 ; [.4AB4.0020.0002] # EGYPTIAN HIEROGLYPH N018A
-13202 ; [.4AB5.0020.0002] # EGYPTIAN HIEROGLYPH N018B
-13203 ; [.4AB6.0020.0002] # EGYPTIAN HIEROGLYPH N019
-13204 ; [.4AB7.0020.0002] # EGYPTIAN HIEROGLYPH N020
-13205 ; [.4AB8.0020.0002] # EGYPTIAN HIEROGLYPH N021
-13206 ; [.4AB9.0020.0002] # EGYPTIAN HIEROGLYPH N022
-13207 ; [.4ABA.0020.0002] # EGYPTIAN HIEROGLYPH N023
-13208 ; [.4ABB.0020.0002] # EGYPTIAN HIEROGLYPH N024
-13209 ; [.4ABC.0020.0002] # EGYPTIAN HIEROGLYPH N025
-1320A ; [.4ABD.0020.0002] # EGYPTIAN HIEROGLYPH N025A
-1320B ; [.4ABE.0020.0002] # EGYPTIAN HIEROGLYPH N026
-1320C ; [.4ABF.0020.0002] # EGYPTIAN HIEROGLYPH N027
-1320D ; [.4AC0.0020.0002] # EGYPTIAN HIEROGLYPH N028
-1320E ; [.4AC1.0020.0002] # EGYPTIAN HIEROGLYPH N029
-1320F ; [.4AC2.0020.0002] # EGYPTIAN HIEROGLYPH N030
-13210 ; [.4AC3.0020.0002] # EGYPTIAN HIEROGLYPH N031
-13211 ; [.4AC4.0020.0002] # EGYPTIAN HIEROGLYPH N032
-13212 ; [.4AC5.0020.0002] # EGYPTIAN HIEROGLYPH N033
-13213 ; [.4AC6.0020.0002] # EGYPTIAN HIEROGLYPH N033A
-13214 ; [.4AC7.0020.0002] # EGYPTIAN HIEROGLYPH N034
-13215 ; [.4AC8.0020.0002] # EGYPTIAN HIEROGLYPH N034A
-13216 ; [.4AC9.0020.0002] # EGYPTIAN HIEROGLYPH N035
-13217 ; [.4ACA.0020.0002] # EGYPTIAN HIEROGLYPH N035A
-13218 ; [.4ACB.0020.0002] # EGYPTIAN HIEROGLYPH N036
-13219 ; [.4ACC.0020.0002] # EGYPTIAN HIEROGLYPH N037
-1321A ; [.4ACD.0020.0002] # EGYPTIAN HIEROGLYPH N037A
-1321B ; [.4ACE.0020.0002] # EGYPTIAN HIEROGLYPH N038
-1321C ; [.4ACF.0020.0002] # EGYPTIAN HIEROGLYPH N039
-1321D ; [.4AD0.0020.0002] # EGYPTIAN HIEROGLYPH N040
-1321E ; [.4AD1.0020.0002] # EGYPTIAN HIEROGLYPH N041
-1321F ; [.4AD2.0020.0002] # EGYPTIAN HIEROGLYPH N042
-13220 ; [.4AD3.0020.0002] # EGYPTIAN HIEROGLYPH NL001
-13221 ; [.4AD4.0020.0002] # EGYPTIAN HIEROGLYPH NL002
-13222 ; [.4AD5.0020.0002] # EGYPTIAN HIEROGLYPH NL003
-13223 ; [.4AD6.0020.0002] # EGYPTIAN HIEROGLYPH NL004
-13224 ; [.4AD7.0020.0002] # EGYPTIAN HIEROGLYPH NL005
-13225 ; [.4AD8.0020.0002] # EGYPTIAN HIEROGLYPH NL005A
-13226 ; [.4AD9.0020.0002] # EGYPTIAN HIEROGLYPH NL006
-13227 ; [.4ADA.0020.0002] # EGYPTIAN HIEROGLYPH NL007
-13228 ; [.4ADB.0020.0002] # EGYPTIAN HIEROGLYPH NL008
-13229 ; [.4ADC.0020.0002] # EGYPTIAN HIEROGLYPH NL009
-1322A ; [.4ADD.0020.0002] # EGYPTIAN HIEROGLYPH NL010
-1322B ; [.4ADE.0020.0002] # EGYPTIAN HIEROGLYPH NL011
-1322C ; [.4ADF.0020.0002] # EGYPTIAN HIEROGLYPH NL012
-1322D ; [.4AE0.0020.0002] # EGYPTIAN HIEROGLYPH NL013
-1322E ; [.4AE1.0020.0002] # EGYPTIAN HIEROGLYPH NL014
-1322F ; [.4AE2.0020.0002] # EGYPTIAN HIEROGLYPH NL015
-13230 ; [.4AE3.0020.0002] # EGYPTIAN HIEROGLYPH NL016
-13231 ; [.4AE4.0020.0002] # EGYPTIAN HIEROGLYPH NL017
-13232 ; [.4AE5.0020.0002] # EGYPTIAN HIEROGLYPH NL017A
-13233 ; [.4AE6.0020.0002] # EGYPTIAN HIEROGLYPH NL018
-13234 ; [.4AE7.0020.0002] # EGYPTIAN HIEROGLYPH NL019
-13235 ; [.4AE8.0020.0002] # EGYPTIAN HIEROGLYPH NL020
-13236 ; [.4AE9.0020.0002] # EGYPTIAN HIEROGLYPH NU001
-13237 ; [.4AEA.0020.0002] # EGYPTIAN HIEROGLYPH NU002
-13238 ; [.4AEB.0020.0002] # EGYPTIAN HIEROGLYPH NU003
-13239 ; [.4AEC.0020.0002] # EGYPTIAN HIEROGLYPH NU004
-1323A ; [.4AED.0020.0002] # EGYPTIAN HIEROGLYPH NU005
-1323B ; [.4AEE.0020.0002] # EGYPTIAN HIEROGLYPH NU006
-1323C ; [.4AEF.0020.0002] # EGYPTIAN HIEROGLYPH NU007
-1323D ; [.4AF0.0020.0002] # EGYPTIAN HIEROGLYPH NU008
-1323E ; [.4AF1.0020.0002] # EGYPTIAN HIEROGLYPH NU009
-1323F ; [.4AF2.0020.0002] # EGYPTIAN HIEROGLYPH NU010
-13240 ; [.4AF3.0020.0002] # EGYPTIAN HIEROGLYPH NU010A
-13241 ; [.4AF4.0020.0002] # EGYPTIAN HIEROGLYPH NU011
-13242 ; [.4AF5.0020.0002] # EGYPTIAN HIEROGLYPH NU011A
-13243 ; [.4AF6.0020.0002] # EGYPTIAN HIEROGLYPH NU012
-13244 ; [.4AF7.0020.0002] # EGYPTIAN HIEROGLYPH NU013
-13245 ; [.4AF8.0020.0002] # EGYPTIAN HIEROGLYPH NU014
-13246 ; [.4AF9.0020.0002] # EGYPTIAN HIEROGLYPH NU015
-13247 ; [.4AFA.0020.0002] # EGYPTIAN HIEROGLYPH NU016
-13248 ; [.4AFB.0020.0002] # EGYPTIAN HIEROGLYPH NU017
-13249 ; [.4AFC.0020.0002] # EGYPTIAN HIEROGLYPH NU018
-1324A ; [.4AFD.0020.0002] # EGYPTIAN HIEROGLYPH NU018A
-1324B ; [.4AFE.0020.0002] # EGYPTIAN HIEROGLYPH NU019
-1324C ; [.4AFF.0020.0002] # EGYPTIAN HIEROGLYPH NU020
-1324D ; [.4B00.0020.0002] # EGYPTIAN HIEROGLYPH NU021
-1324E ; [.4B01.0020.0002] # EGYPTIAN HIEROGLYPH NU022
-1324F ; [.4B02.0020.0002] # EGYPTIAN HIEROGLYPH NU022A
-13250 ; [.4B03.0020.0002] # EGYPTIAN HIEROGLYPH O001
-13251 ; [.4B04.0020.0002] # EGYPTIAN HIEROGLYPH O001A
-13252 ; [.4B05.0020.0002] # EGYPTIAN HIEROGLYPH O002
-13253 ; [.4B06.0020.0002] # EGYPTIAN HIEROGLYPH O003
-13254 ; [.4B07.0020.0002] # EGYPTIAN HIEROGLYPH O004
-13255 ; [.4B08.0020.0002] # EGYPTIAN HIEROGLYPH O005
-13256 ; [.4B09.0020.0002] # EGYPTIAN HIEROGLYPH O005A
-13257 ; [.4B0A.0020.0002] # EGYPTIAN HIEROGLYPH O006
-13258 ; [.4B0B.0020.0002] # EGYPTIAN HIEROGLYPH O006A
-13259 ; [.4B0C.0020.0002] # EGYPTIAN HIEROGLYPH O006B
-1325A ; [.4B0D.0020.0002] # EGYPTIAN HIEROGLYPH O006C
-1325B ; [.4B0E.0020.0002] # EGYPTIAN HIEROGLYPH O006D
-1325C ; [.4B0F.0020.0002] # EGYPTIAN HIEROGLYPH O006E
-1325D ; [.4B10.0020.0002] # EGYPTIAN HIEROGLYPH O006F
-1325E ; [.4B11.0020.0002] # EGYPTIAN HIEROGLYPH O007
-1325F ; [.4B12.0020.0002] # EGYPTIAN HIEROGLYPH O008
-13260 ; [.4B13.0020.0002] # EGYPTIAN HIEROGLYPH O009
-13261 ; [.4B14.0020.0002] # EGYPTIAN HIEROGLYPH O010
-13262 ; [.4B15.0020.0002] # EGYPTIAN HIEROGLYPH O010A
-13263 ; [.4B16.0020.0002] # EGYPTIAN HIEROGLYPH O010B
-13264 ; [.4B17.0020.0002] # EGYPTIAN HIEROGLYPH O010C
-13265 ; [.4B18.0020.0002] # EGYPTIAN HIEROGLYPH O011
-13266 ; [.4B19.0020.0002] # EGYPTIAN HIEROGLYPH O012
-13267 ; [.4B1A.0020.0002] # EGYPTIAN HIEROGLYPH O013
-13268 ; [.4B1B.0020.0002] # EGYPTIAN HIEROGLYPH O014
-13269 ; [.4B1C.0020.0002] # EGYPTIAN HIEROGLYPH O015
-1326A ; [.4B1D.0020.0002] # EGYPTIAN HIEROGLYPH O016
-1326B ; [.4B1E.0020.0002] # EGYPTIAN HIEROGLYPH O017
-1326C ; [.4B1F.0020.0002] # EGYPTIAN HIEROGLYPH O018
-1326D ; [.4B20.0020.0002] # EGYPTIAN HIEROGLYPH O019
-1326E ; [.4B21.0020.0002] # EGYPTIAN HIEROGLYPH O019A
-1326F ; [.4B22.0020.0002] # EGYPTIAN HIEROGLYPH O020
-13270 ; [.4B23.0020.0002] # EGYPTIAN HIEROGLYPH O020A
-13271 ; [.4B24.0020.0002] # EGYPTIAN HIEROGLYPH O021
-13272 ; [.4B25.0020.0002] # EGYPTIAN HIEROGLYPH O022
-13273 ; [.4B26.0020.0002] # EGYPTIAN HIEROGLYPH O023
-13274 ; [.4B27.0020.0002] # EGYPTIAN HIEROGLYPH O024
-13275 ; [.4B28.0020.0002] # EGYPTIAN HIEROGLYPH O024A
-13276 ; [.4B29.0020.0002] # EGYPTIAN HIEROGLYPH O025
-13277 ; [.4B2A.0020.0002] # EGYPTIAN HIEROGLYPH O025A
-13278 ; [.4B2B.0020.0002] # EGYPTIAN HIEROGLYPH O026
-13279 ; [.4B2C.0020.0002] # EGYPTIAN HIEROGLYPH O027
-1327A ; [.4B2D.0020.0002] # EGYPTIAN HIEROGLYPH O028
-1327B ; [.4B2E.0020.0002] # EGYPTIAN HIEROGLYPH O029
-1327C ; [.4B2F.0020.0002] # EGYPTIAN HIEROGLYPH O029A
-1327D ; [.4B30.0020.0002] # EGYPTIAN HIEROGLYPH O030
-1327E ; [.4B31.0020.0002] # EGYPTIAN HIEROGLYPH O030A
-1327F ; [.4B32.0020.0002] # EGYPTIAN HIEROGLYPH O031
-13280 ; [.4B33.0020.0002] # EGYPTIAN HIEROGLYPH O032
-13281 ; [.4B34.0020.0002] # EGYPTIAN HIEROGLYPH O033
-13282 ; [.4B35.0020.0002] # EGYPTIAN HIEROGLYPH O033A
-13283 ; [.4B36.0020.0002] # EGYPTIAN HIEROGLYPH O034
-13284 ; [.4B37.0020.0002] # EGYPTIAN HIEROGLYPH O035
-13285 ; [.4B38.0020.0002] # EGYPTIAN HIEROGLYPH O036
-13286 ; [.4B39.0020.0002] # EGYPTIAN HIEROGLYPH O036A
-13287 ; [.4B3A.0020.0002] # EGYPTIAN HIEROGLYPH O036B
-13288 ; [.4B3B.0020.0002] # EGYPTIAN HIEROGLYPH O036C
-13289 ; [.4B3C.0020.0002] # EGYPTIAN HIEROGLYPH O036D
-1328A ; [.4B3D.0020.0002] # EGYPTIAN HIEROGLYPH O037
-1328B ; [.4B3E.0020.0002] # EGYPTIAN HIEROGLYPH O038
-1328C ; [.4B3F.0020.0002] # EGYPTIAN HIEROGLYPH O039
-1328D ; [.4B40.0020.0002] # EGYPTIAN HIEROGLYPH O040
-1328E ; [.4B41.0020.0002] # EGYPTIAN HIEROGLYPH O041
-1328F ; [.4B42.0020.0002] # EGYPTIAN HIEROGLYPH O042
-13290 ; [.4B43.0020.0002] # EGYPTIAN HIEROGLYPH O043
-13291 ; [.4B44.0020.0002] # EGYPTIAN HIEROGLYPH O044
-13292 ; [.4B45.0020.0002] # EGYPTIAN HIEROGLYPH O045
-13293 ; [.4B46.0020.0002] # EGYPTIAN HIEROGLYPH O046
-13294 ; [.4B47.0020.0002] # EGYPTIAN HIEROGLYPH O047
-13295 ; [.4B48.0020.0002] # EGYPTIAN HIEROGLYPH O048
-13296 ; [.4B49.0020.0002] # EGYPTIAN HIEROGLYPH O049
-13297 ; [.4B4A.0020.0002] # EGYPTIAN HIEROGLYPH O050
-13298 ; [.4B4B.0020.0002] # EGYPTIAN HIEROGLYPH O050A
-13299 ; [.4B4C.0020.0002] # EGYPTIAN HIEROGLYPH O050B
-1329A ; [.4B4D.0020.0002] # EGYPTIAN HIEROGLYPH O051
-1329B ; [.4B4E.0020.0002] # EGYPTIAN HIEROGLYPH P001
-1329C ; [.4B4F.0020.0002] # EGYPTIAN HIEROGLYPH P001A
-1329D ; [.4B50.0020.0002] # EGYPTIAN HIEROGLYPH P002
-1329E ; [.4B51.0020.0002] # EGYPTIAN HIEROGLYPH P003
-1329F ; [.4B52.0020.0002] # EGYPTIAN HIEROGLYPH P003A
-132A0 ; [.4B53.0020.0002] # EGYPTIAN HIEROGLYPH P004
-132A1 ; [.4B54.0020.0002] # EGYPTIAN HIEROGLYPH P005
-132A2 ; [.4B55.0020.0002] # EGYPTIAN HIEROGLYPH P006
-132A3 ; [.4B56.0020.0002] # EGYPTIAN HIEROGLYPH P007
-132A4 ; [.4B57.0020.0002] # EGYPTIAN HIEROGLYPH P008
-132A5 ; [.4B58.0020.0002] # EGYPTIAN HIEROGLYPH P009
-132A6 ; [.4B59.0020.0002] # EGYPTIAN HIEROGLYPH P010
-132A7 ; [.4B5A.0020.0002] # EGYPTIAN HIEROGLYPH P011
-132A8 ; [.4B5B.0020.0002] # EGYPTIAN HIEROGLYPH Q001
-132A9 ; [.4B5C.0020.0002] # EGYPTIAN HIEROGLYPH Q002
-132AA ; [.4B5D.0020.0002] # EGYPTIAN HIEROGLYPH Q003
-132AB ; [.4B5E.0020.0002] # EGYPTIAN HIEROGLYPH Q004
-132AC ; [.4B5F.0020.0002] # EGYPTIAN HIEROGLYPH Q005
-132AD ; [.4B60.0020.0002] # EGYPTIAN HIEROGLYPH Q006
-132AE ; [.4B61.0020.0002] # EGYPTIAN HIEROGLYPH Q007
-132AF ; [.4B62.0020.0002] # EGYPTIAN HIEROGLYPH R001
-132B0 ; [.4B63.0020.0002] # EGYPTIAN HIEROGLYPH R002
-132B1 ; [.4B64.0020.0002] # EGYPTIAN HIEROGLYPH R002A
-132B2 ; [.4B65.0020.0002] # EGYPTIAN HIEROGLYPH R003
-132B3 ; [.4B66.0020.0002] # EGYPTIAN HIEROGLYPH R003A
-132B4 ; [.4B67.0020.0002] # EGYPTIAN HIEROGLYPH R003B
-132B5 ; [.4B68.0020.0002] # EGYPTIAN HIEROGLYPH R004
-132B6 ; [.4B69.0020.0002] # EGYPTIAN HIEROGLYPH R005
-132B7 ; [.4B6A.0020.0002] # EGYPTIAN HIEROGLYPH R006
-132B8 ; [.4B6B.0020.0002] # EGYPTIAN HIEROGLYPH R007
-132B9 ; [.4B6C.0020.0002] # EGYPTIAN HIEROGLYPH R008
-132BA ; [.4B6D.0020.0002] # EGYPTIAN HIEROGLYPH R009
-132BB ; [.4B6E.0020.0002] # EGYPTIAN HIEROGLYPH R010
-132BC ; [.4B6F.0020.0002] # EGYPTIAN HIEROGLYPH R010A
-132BD ; [.4B70.0020.0002] # EGYPTIAN HIEROGLYPH R011
-132BE ; [.4B71.0020.0002] # EGYPTIAN HIEROGLYPH R012
-132BF ; [.4B72.0020.0002] # EGYPTIAN HIEROGLYPH R013
-132C0 ; [.4B73.0020.0002] # EGYPTIAN HIEROGLYPH R014
-132C1 ; [.4B74.0020.0002] # EGYPTIAN HIEROGLYPH R015
-132C2 ; [.4B75.0020.0002] # EGYPTIAN HIEROGLYPH R016
-132C3 ; [.4B76.0020.0002] # EGYPTIAN HIEROGLYPH R016A
-132C4 ; [.4B77.0020.0002] # EGYPTIAN HIEROGLYPH R017
-132C5 ; [.4B78.0020.0002] # EGYPTIAN HIEROGLYPH R018
-132C6 ; [.4B79.0020.0002] # EGYPTIAN HIEROGLYPH R019
-132C7 ; [.4B7A.0020.0002] # EGYPTIAN HIEROGLYPH R020
-132C8 ; [.4B7B.0020.0002] # EGYPTIAN HIEROGLYPH R021
-132C9 ; [.4B7C.0020.0002] # EGYPTIAN HIEROGLYPH R022
-132CA ; [.4B7D.0020.0002] # EGYPTIAN HIEROGLYPH R023
-132CB ; [.4B7E.0020.0002] # EGYPTIAN HIEROGLYPH R024
-132CC ; [.4B7F.0020.0002] # EGYPTIAN HIEROGLYPH R025
-132CD ; [.4B80.0020.0002] # EGYPTIAN HIEROGLYPH R026
-132CE ; [.4B81.0020.0002] # EGYPTIAN HIEROGLYPH R027
-132CF ; [.4B82.0020.0002] # EGYPTIAN HIEROGLYPH R028
-132D0 ; [.4B83.0020.0002] # EGYPTIAN HIEROGLYPH R029
-132D1 ; [.4B84.0020.0002] # EGYPTIAN HIEROGLYPH S001
-132D2 ; [.4B85.0020.0002] # EGYPTIAN HIEROGLYPH S002
-132D3 ; [.4B86.0020.0002] # EGYPTIAN HIEROGLYPH S002A
-132D4 ; [.4B87.0020.0002] # EGYPTIAN HIEROGLYPH S003
-132D5 ; [.4B88.0020.0002] # EGYPTIAN HIEROGLYPH S004
-132D6 ; [.4B89.0020.0002] # EGYPTIAN HIEROGLYPH S005
-132D7 ; [.4B8A.0020.0002] # EGYPTIAN HIEROGLYPH S006
-132D8 ; [.4B8B.0020.0002] # EGYPTIAN HIEROGLYPH S006A
-132D9 ; [.4B8C.0020.0002] # EGYPTIAN HIEROGLYPH S007
-132DA ; [.4B8D.0020.0002] # EGYPTIAN HIEROGLYPH S008
-132DB ; [.4B8E.0020.0002] # EGYPTIAN HIEROGLYPH S009
-132DC ; [.4B8F.0020.0002] # EGYPTIAN HIEROGLYPH S010
-132DD ; [.4B90.0020.0002] # EGYPTIAN HIEROGLYPH S011
-132DE ; [.4B91.0020.0002] # EGYPTIAN HIEROGLYPH S012
-132DF ; [.4B92.0020.0002] # EGYPTIAN HIEROGLYPH S013
-132E0 ; [.4B93.0020.0002] # EGYPTIAN HIEROGLYPH S014
-132E1 ; [.4B94.0020.0002] # EGYPTIAN HIEROGLYPH S014A
-132E2 ; [.4B95.0020.0002] # EGYPTIAN HIEROGLYPH S014B
-132E3 ; [.4B96.0020.0002] # EGYPTIAN HIEROGLYPH S015
-132E4 ; [.4B97.0020.0002] # EGYPTIAN HIEROGLYPH S016
-132E5 ; [.4B98.0020.0002] # EGYPTIAN HIEROGLYPH S017
-132E6 ; [.4B99.0020.0002] # EGYPTIAN HIEROGLYPH S017A
-132E7 ; [.4B9A.0020.0002] # EGYPTIAN HIEROGLYPH S018
-132E8 ; [.4B9B.0020.0002] # EGYPTIAN HIEROGLYPH S019
-132E9 ; [.4B9C.0020.0002] # EGYPTIAN HIEROGLYPH S020
-132EA ; [.4B9D.0020.0002] # EGYPTIAN HIEROGLYPH S021
-132EB ; [.4B9E.0020.0002] # EGYPTIAN HIEROGLYPH S022
-132EC ; [.4B9F.0020.0002] # EGYPTIAN HIEROGLYPH S023
-132ED ; [.4BA0.0020.0002] # EGYPTIAN HIEROGLYPH S024
-132EE ; [.4BA1.0020.0002] # EGYPTIAN HIEROGLYPH S025
-132EF ; [.4BA2.0020.0002] # EGYPTIAN HIEROGLYPH S026
-132F0 ; [.4BA3.0020.0002] # EGYPTIAN HIEROGLYPH S026A
-132F1 ; [.4BA4.0020.0002] # EGYPTIAN HIEROGLYPH S026B
-132F2 ; [.4BA5.0020.0002] # EGYPTIAN HIEROGLYPH S027
-132F3 ; [.4BA6.0020.0002] # EGYPTIAN HIEROGLYPH S028
-132F4 ; [.4BA7.0020.0002] # EGYPTIAN HIEROGLYPH S029
-132F5 ; [.4BA8.0020.0002] # EGYPTIAN HIEROGLYPH S030
-132F6 ; [.4BA9.0020.0002] # EGYPTIAN HIEROGLYPH S031
-132F7 ; [.4BAA.0020.0002] # EGYPTIAN HIEROGLYPH S032
-132F8 ; [.4BAB.0020.0002] # EGYPTIAN HIEROGLYPH S033
-132F9 ; [.4BAC.0020.0002] # EGYPTIAN HIEROGLYPH S034
-132FA ; [.4BAD.0020.0002] # EGYPTIAN HIEROGLYPH S035
-132FB ; [.4BAE.0020.0002] # EGYPTIAN HIEROGLYPH S035A
-132FC ; [.4BAF.0020.0002] # EGYPTIAN HIEROGLYPH S036
-132FD ; [.4BB0.0020.0002] # EGYPTIAN HIEROGLYPH S037
-132FE ; [.4BB1.0020.0002] # EGYPTIAN HIEROGLYPH S038
-132FF ; [.4BB2.0020.0002] # EGYPTIAN HIEROGLYPH S039
-13300 ; [.4BB3.0020.0002] # EGYPTIAN HIEROGLYPH S040
-13301 ; [.4BB4.0020.0002] # EGYPTIAN HIEROGLYPH S041
-13302 ; [.4BB5.0020.0002] # EGYPTIAN HIEROGLYPH S042
-13303 ; [.4BB6.0020.0002] # EGYPTIAN HIEROGLYPH S043
-13304 ; [.4BB7.0020.0002] # EGYPTIAN HIEROGLYPH S044
-13305 ; [.4BB8.0020.0002] # EGYPTIAN HIEROGLYPH S045
-13306 ; [.4BB9.0020.0002] # EGYPTIAN HIEROGLYPH S046
-13307 ; [.4BBA.0020.0002] # EGYPTIAN HIEROGLYPH T001
-13308 ; [.4BBB.0020.0002] # EGYPTIAN HIEROGLYPH T002
-13309 ; [.4BBC.0020.0002] # EGYPTIAN HIEROGLYPH T003
-1330A ; [.4BBD.0020.0002] # EGYPTIAN HIEROGLYPH T003A
-1330B ; [.4BBE.0020.0002] # EGYPTIAN HIEROGLYPH T004
-1330C ; [.4BBF.0020.0002] # EGYPTIAN HIEROGLYPH T005
-1330D ; [.4BC0.0020.0002] # EGYPTIAN HIEROGLYPH T006
-1330E ; [.4BC1.0020.0002] # EGYPTIAN HIEROGLYPH T007
-1330F ; [.4BC2.0020.0002] # EGYPTIAN HIEROGLYPH T007A
-13310 ; [.4BC3.0020.0002] # EGYPTIAN HIEROGLYPH T008
-13311 ; [.4BC4.0020.0002] # EGYPTIAN HIEROGLYPH T008A
-13312 ; [.4BC5.0020.0002] # EGYPTIAN HIEROGLYPH T009
-13313 ; [.4BC6.0020.0002] # EGYPTIAN HIEROGLYPH T009A
-13314 ; [.4BC7.0020.0002] # EGYPTIAN HIEROGLYPH T010
-13315 ; [.4BC8.0020.0002] # EGYPTIAN HIEROGLYPH T011
-13316 ; [.4BC9.0020.0002] # EGYPTIAN HIEROGLYPH T011A
-13317 ; [.4BCA.0020.0002] # EGYPTIAN HIEROGLYPH T012
-13318 ; [.4BCB.0020.0002] # EGYPTIAN HIEROGLYPH T013
-13319 ; [.4BCC.0020.0002] # EGYPTIAN HIEROGLYPH T014
-1331A ; [.4BCD.0020.0002] # EGYPTIAN HIEROGLYPH T015
-1331B ; [.4BCE.0020.0002] # EGYPTIAN HIEROGLYPH T016
-1331C ; [.4BCF.0020.0002] # EGYPTIAN HIEROGLYPH T016A
-1331D ; [.4BD0.0020.0002] # EGYPTIAN HIEROGLYPH T017
-1331E ; [.4BD1.0020.0002] # EGYPTIAN HIEROGLYPH T018
-1331F ; [.4BD2.0020.0002] # EGYPTIAN HIEROGLYPH T019
-13320 ; [.4BD3.0020.0002] # EGYPTIAN HIEROGLYPH T020
-13321 ; [.4BD4.0020.0002] # EGYPTIAN HIEROGLYPH T021
-13322 ; [.4BD5.0020.0002] # EGYPTIAN HIEROGLYPH T022
-13323 ; [.4BD6.0020.0002] # EGYPTIAN HIEROGLYPH T023
-13324 ; [.4BD7.0020.0002] # EGYPTIAN HIEROGLYPH T024
-13325 ; [.4BD8.0020.0002] # EGYPTIAN HIEROGLYPH T025
-13326 ; [.4BD9.0020.0002] # EGYPTIAN HIEROGLYPH T026
-13327 ; [.4BDA.0020.0002] # EGYPTIAN HIEROGLYPH T027
-13328 ; [.4BDB.0020.0002] # EGYPTIAN HIEROGLYPH T028
-13329 ; [.4BDC.0020.0002] # EGYPTIAN HIEROGLYPH T029
-1332A ; [.4BDD.0020.0002] # EGYPTIAN HIEROGLYPH T030
-1332B ; [.4BDE.0020.0002] # EGYPTIAN HIEROGLYPH T031
-1332C ; [.4BDF.0020.0002] # EGYPTIAN HIEROGLYPH T032
-1332D ; [.4BE0.0020.0002] # EGYPTIAN HIEROGLYPH T032A
-1332E ; [.4BE1.0020.0002] # EGYPTIAN HIEROGLYPH T033
-1332F ; [.4BE2.0020.0002] # EGYPTIAN HIEROGLYPH T033A
-13330 ; [.4BE3.0020.0002] # EGYPTIAN HIEROGLYPH T034
-13331 ; [.4BE4.0020.0002] # EGYPTIAN HIEROGLYPH T035
-13332 ; [.4BE5.0020.0002] # EGYPTIAN HIEROGLYPH T036
-13333 ; [.4BE6.0020.0002] # EGYPTIAN HIEROGLYPH U001
-13334 ; [.4BE7.0020.0002] # EGYPTIAN HIEROGLYPH U002
-13335 ; [.4BE8.0020.0002] # EGYPTIAN HIEROGLYPH U003
-13336 ; [.4BE9.0020.0002] # EGYPTIAN HIEROGLYPH U004
-13337 ; [.4BEA.0020.0002] # EGYPTIAN HIEROGLYPH U005
-13338 ; [.4BEB.0020.0002] # EGYPTIAN HIEROGLYPH U006
-13339 ; [.4BEC.0020.0002] # EGYPTIAN HIEROGLYPH U006A
-1333A ; [.4BED.0020.0002] # EGYPTIAN HIEROGLYPH U006B
-1333B ; [.4BEE.0020.0002] # EGYPTIAN HIEROGLYPH U007
-1333C ; [.4BEF.0020.0002] # EGYPTIAN HIEROGLYPH U008
-1333D ; [.4BF0.0020.0002] # EGYPTIAN HIEROGLYPH U009
-1333E ; [.4BF1.0020.0002] # EGYPTIAN HIEROGLYPH U010
-1333F ; [.4BF2.0020.0002] # EGYPTIAN HIEROGLYPH U011
-13340 ; [.4BF3.0020.0002] # EGYPTIAN HIEROGLYPH U012
-13341 ; [.4BF4.0020.0002] # EGYPTIAN HIEROGLYPH U013
-13342 ; [.4BF5.0020.0002] # EGYPTIAN HIEROGLYPH U014
-13343 ; [.4BF6.0020.0002] # EGYPTIAN HIEROGLYPH U015
-13344 ; [.4BF7.0020.0002] # EGYPTIAN HIEROGLYPH U016
-13345 ; [.4BF8.0020.0002] # EGYPTIAN HIEROGLYPH U017
-13346 ; [.4BF9.0020.0002] # EGYPTIAN HIEROGLYPH U018
-13347 ; [.4BFA.0020.0002] # EGYPTIAN HIEROGLYPH U019
-13348 ; [.4BFB.0020.0002] # EGYPTIAN HIEROGLYPH U020
-13349 ; [.4BFC.0020.0002] # EGYPTIAN HIEROGLYPH U021
-1334A ; [.4BFD.0020.0002] # EGYPTIAN HIEROGLYPH U022
-1334B ; [.4BFE.0020.0002] # EGYPTIAN HIEROGLYPH U023
-1334C ; [.4BFF.0020.0002] # EGYPTIAN HIEROGLYPH U023A
-1334D ; [.4C00.0020.0002] # EGYPTIAN HIEROGLYPH U024
-1334E ; [.4C01.0020.0002] # EGYPTIAN HIEROGLYPH U025
-1334F ; [.4C02.0020.0002] # EGYPTIAN HIEROGLYPH U026
-13350 ; [.4C03.0020.0002] # EGYPTIAN HIEROGLYPH U027
-13351 ; [.4C04.0020.0002] # EGYPTIAN HIEROGLYPH U028
-13352 ; [.4C05.0020.0002] # EGYPTIAN HIEROGLYPH U029
-13353 ; [.4C06.0020.0002] # EGYPTIAN HIEROGLYPH U029A
-13354 ; [.4C07.0020.0002] # EGYPTIAN HIEROGLYPH U030
-13355 ; [.4C08.0020.0002] # EGYPTIAN HIEROGLYPH U031
-13356 ; [.4C09.0020.0002] # EGYPTIAN HIEROGLYPH U032
-13357 ; [.4C0A.0020.0002] # EGYPTIAN HIEROGLYPH U032A
-13358 ; [.4C0B.0020.0002] # EGYPTIAN HIEROGLYPH U033
-13359 ; [.4C0C.0020.0002] # EGYPTIAN HIEROGLYPH U034
-1335A ; [.4C0D.0020.0002] # EGYPTIAN HIEROGLYPH U035
-1335B ; [.4C0E.0020.0002] # EGYPTIAN HIEROGLYPH U036
-1335C ; [.4C0F.0020.0002] # EGYPTIAN HIEROGLYPH U037
-1335D ; [.4C10.0020.0002] # EGYPTIAN HIEROGLYPH U038
-1335E ; [.4C11.0020.0002] # EGYPTIAN HIEROGLYPH U039
-1335F ; [.4C12.0020.0002] # EGYPTIAN HIEROGLYPH U040
-13360 ; [.4C13.0020.0002] # EGYPTIAN HIEROGLYPH U041
-13361 ; [.4C14.0020.0002] # EGYPTIAN HIEROGLYPH U042
-13362 ; [.4C15.0020.0002] # EGYPTIAN HIEROGLYPH V001
-13363 ; [.4C16.0020.0002] # EGYPTIAN HIEROGLYPH V001A
-13364 ; [.4C17.0020.0002] # EGYPTIAN HIEROGLYPH V001B
-13365 ; [.4C18.0020.0002] # EGYPTIAN HIEROGLYPH V001C
-13366 ; [.4C19.0020.0002] # EGYPTIAN HIEROGLYPH V001D
-13367 ; [.4C1A.0020.0002] # EGYPTIAN HIEROGLYPH V001E
-13368 ; [.4C1B.0020.0002] # EGYPTIAN HIEROGLYPH V001F
-13369 ; [.4C1C.0020.0002] # EGYPTIAN HIEROGLYPH V001G
-1336A ; [.4C1D.0020.0002] # EGYPTIAN HIEROGLYPH V001H
-1336B ; [.4C1E.0020.0002] # EGYPTIAN HIEROGLYPH V001I
-1336C ; [.4C1F.0020.0002] # EGYPTIAN HIEROGLYPH V002
-1336D ; [.4C20.0020.0002] # EGYPTIAN HIEROGLYPH V002A
-1336E ; [.4C21.0020.0002] # EGYPTIAN HIEROGLYPH V003
-1336F ; [.4C22.0020.0002] # EGYPTIAN HIEROGLYPH V004
-13370 ; [.4C23.0020.0002] # EGYPTIAN HIEROGLYPH V005
-13371 ; [.4C24.0020.0002] # EGYPTIAN HIEROGLYPH V006
-13372 ; [.4C25.0020.0002] # EGYPTIAN HIEROGLYPH V007
-13373 ; [.4C26.0020.0002] # EGYPTIAN HIEROGLYPH V007A
-13374 ; [.4C27.0020.0002] # EGYPTIAN HIEROGLYPH V007B
-13375 ; [.4C28.0020.0002] # EGYPTIAN HIEROGLYPH V008
-13376 ; [.4C29.0020.0002] # EGYPTIAN HIEROGLYPH V009
-13377 ; [.4C2A.0020.0002] # EGYPTIAN HIEROGLYPH V010
-13378 ; [.4C2B.0020.0002] # EGYPTIAN HIEROGLYPH V011
-13379 ; [.4C2C.0020.0002] # EGYPTIAN HIEROGLYPH V011A
-1337A ; [.4C2D.0020.0002] # EGYPTIAN HIEROGLYPH V011B
-1337B ; [.4C2E.0020.0002] # EGYPTIAN HIEROGLYPH V011C
-1337C ; [.4C2F.0020.0002] # EGYPTIAN HIEROGLYPH V012
-1337D ; [.4C30.0020.0002] # EGYPTIAN HIEROGLYPH V012A
-1337E ; [.4C31.0020.0002] # EGYPTIAN HIEROGLYPH V012B
-1337F ; [.4C32.0020.0002] # EGYPTIAN HIEROGLYPH V013
-13380 ; [.4C33.0020.0002] # EGYPTIAN HIEROGLYPH V014
-13381 ; [.4C34.0020.0002] # EGYPTIAN HIEROGLYPH V015
-13382 ; [.4C35.0020.0002] # EGYPTIAN HIEROGLYPH V016
-13383 ; [.4C36.0020.0002] # EGYPTIAN HIEROGLYPH V017
-13384 ; [.4C37.0020.0002] # EGYPTIAN HIEROGLYPH V018
-13385 ; [.4C38.0020.0002] # EGYPTIAN HIEROGLYPH V019
-13386 ; [.4C39.0020.0002] # EGYPTIAN HIEROGLYPH V020
-13387 ; [.4C3A.0020.0002] # EGYPTIAN HIEROGLYPH V020A
-13388 ; [.4C3B.0020.0002] # EGYPTIAN HIEROGLYPH V020B
-13389 ; [.4C3C.0020.0002] # EGYPTIAN HIEROGLYPH V020C
-1338A ; [.4C3D.0020.0002] # EGYPTIAN HIEROGLYPH V020D
-1338B ; [.4C3E.0020.0002] # EGYPTIAN HIEROGLYPH V020E
-1338C ; [.4C3F.0020.0002] # EGYPTIAN HIEROGLYPH V020F
-1338D ; [.4C40.0020.0002] # EGYPTIAN HIEROGLYPH V020G
-1338E ; [.4C41.0020.0002] # EGYPTIAN HIEROGLYPH V020H
-1338F ; [.4C42.0020.0002] # EGYPTIAN HIEROGLYPH V020I
-13390 ; [.4C43.0020.0002] # EGYPTIAN HIEROGLYPH V020J
-13391 ; [.4C44.0020.0002] # EGYPTIAN HIEROGLYPH V020K
-13392 ; [.4C45.0020.0002] # EGYPTIAN HIEROGLYPH V020L
-13393 ; [.4C46.0020.0002] # EGYPTIAN HIEROGLYPH V021
-13394 ; [.4C47.0020.0002] # EGYPTIAN HIEROGLYPH V022
-13395 ; [.4C48.0020.0002] # EGYPTIAN HIEROGLYPH V023
-13396 ; [.4C49.0020.0002] # EGYPTIAN HIEROGLYPH V023A
-13397 ; [.4C4A.0020.0002] # EGYPTIAN HIEROGLYPH V024
-13398 ; [.4C4B.0020.0002] # EGYPTIAN HIEROGLYPH V025
-13399 ; [.4C4C.0020.0002] # EGYPTIAN HIEROGLYPH V026
-1339A ; [.4C4D.0020.0002] # EGYPTIAN HIEROGLYPH V027
-1339B ; [.4C4E.0020.0002] # EGYPTIAN HIEROGLYPH V028
-1339C ; [.4C4F.0020.0002] # EGYPTIAN HIEROGLYPH V028A
-1339D ; [.4C50.0020.0002] # EGYPTIAN HIEROGLYPH V029
-1339E ; [.4C51.0020.0002] # EGYPTIAN HIEROGLYPH V029A
-1339F ; [.4C52.0020.0002] # EGYPTIAN HIEROGLYPH V030
-133A0 ; [.4C53.0020.0002] # EGYPTIAN HIEROGLYPH V030A
-133A1 ; [.4C54.0020.0002] # EGYPTIAN HIEROGLYPH V031
-133A2 ; [.4C55.0020.0002] # EGYPTIAN HIEROGLYPH V031A
-133A3 ; [.4C56.0020.0002] # EGYPTIAN HIEROGLYPH V032
-133A4 ; [.4C57.0020.0002] # EGYPTIAN HIEROGLYPH V033
-133A5 ; [.4C58.0020.0002] # EGYPTIAN HIEROGLYPH V033A
-133A6 ; [.4C59.0020.0002] # EGYPTIAN HIEROGLYPH V034
-133A7 ; [.4C5A.0020.0002] # EGYPTIAN HIEROGLYPH V035
-133A8 ; [.4C5B.0020.0002] # EGYPTIAN HIEROGLYPH V036
-133A9 ; [.4C5C.0020.0002] # EGYPTIAN HIEROGLYPH V037
-133AA ; [.4C5D.0020.0002] # EGYPTIAN HIEROGLYPH V037A
-133AB ; [.4C5E.0020.0002] # EGYPTIAN HIEROGLYPH V038
-133AC ; [.4C5F.0020.0002] # EGYPTIAN HIEROGLYPH V039
-133AD ; [.4C60.0020.0002] # EGYPTIAN HIEROGLYPH V040
-133AE ; [.4C61.0020.0002] # EGYPTIAN HIEROGLYPH V040A
-133AF ; [.4C62.0020.0002] # EGYPTIAN HIEROGLYPH W001
-133B0 ; [.4C63.0020.0002] # EGYPTIAN HIEROGLYPH W002
-133B1 ; [.4C64.0020.0002] # EGYPTIAN HIEROGLYPH W003
-133B2 ; [.4C65.0020.0002] # EGYPTIAN HIEROGLYPH W003A
-133B3 ; [.4C66.0020.0002] # EGYPTIAN HIEROGLYPH W004
-133B4 ; [.4C67.0020.0002] # EGYPTIAN HIEROGLYPH W005
-133B5 ; [.4C68.0020.0002] # EGYPTIAN HIEROGLYPH W006
-133B6 ; [.4C69.0020.0002] # EGYPTIAN HIEROGLYPH W007
-133B7 ; [.4C6A.0020.0002] # EGYPTIAN HIEROGLYPH W008
-133B8 ; [.4C6B.0020.0002] # EGYPTIAN HIEROGLYPH W009
-133B9 ; [.4C6C.0020.0002] # EGYPTIAN HIEROGLYPH W009A
-133BA ; [.4C6D.0020.0002] # EGYPTIAN HIEROGLYPH W010
-133BB ; [.4C6E.0020.0002] # EGYPTIAN HIEROGLYPH W010A
-133BC ; [.4C6F.0020.0002] # EGYPTIAN HIEROGLYPH W011
-133BD ; [.4C70.0020.0002] # EGYPTIAN HIEROGLYPH W012
-133BE ; [.4C71.0020.0002] # EGYPTIAN HIEROGLYPH W013
-133BF ; [.4C72.0020.0002] # EGYPTIAN HIEROGLYPH W014
-133C0 ; [.4C73.0020.0002] # EGYPTIAN HIEROGLYPH W014A
-133C1 ; [.4C74.0020.0002] # EGYPTIAN HIEROGLYPH W015
-133C2 ; [.4C75.0020.0002] # EGYPTIAN HIEROGLYPH W016
-133C3 ; [.4C76.0020.0002] # EGYPTIAN HIEROGLYPH W017
-133C4 ; [.4C77.0020.0002] # EGYPTIAN HIEROGLYPH W017A
-133C5 ; [.4C78.0020.0002] # EGYPTIAN HIEROGLYPH W018
-133C6 ; [.4C79.0020.0002] # EGYPTIAN HIEROGLYPH W018A
-133C7 ; [.4C7A.0020.0002] # EGYPTIAN HIEROGLYPH W019
-133C8 ; [.4C7B.0020.0002] # EGYPTIAN HIEROGLYPH W020
-133C9 ; [.4C7C.0020.0002] # EGYPTIAN HIEROGLYPH W021
-133CA ; [.4C7D.0020.0002] # EGYPTIAN HIEROGLYPH W022
-133CB ; [.4C7E.0020.0002] # EGYPTIAN HIEROGLYPH W023
-133CC ; [.4C7F.0020.0002] # EGYPTIAN HIEROGLYPH W024
-133CD ; [.4C80.0020.0002] # EGYPTIAN HIEROGLYPH W024A
-133CE ; [.4C81.0020.0002] # EGYPTIAN HIEROGLYPH W025
-133CF ; [.4C82.0020.0002] # EGYPTIAN HIEROGLYPH X001
-133D0 ; [.4C83.0020.0002] # EGYPTIAN HIEROGLYPH X002
-133D1 ; [.4C84.0020.0002] # EGYPTIAN HIEROGLYPH X003
-133D2 ; [.4C85.0020.0002] # EGYPTIAN HIEROGLYPH X004
-133D3 ; [.4C86.0020.0002] # EGYPTIAN HIEROGLYPH X004A
-133D4 ; [.4C87.0020.0002] # EGYPTIAN HIEROGLYPH X004B
-133D5 ; [.4C88.0020.0002] # EGYPTIAN HIEROGLYPH X005
-133D6 ; [.4C89.0020.0002] # EGYPTIAN HIEROGLYPH X006
-133D7 ; [.4C8A.0020.0002] # EGYPTIAN HIEROGLYPH X006A
-133D8 ; [.4C8B.0020.0002] # EGYPTIAN HIEROGLYPH X007
-133D9 ; [.4C8C.0020.0002] # EGYPTIAN HIEROGLYPH X008
-133DA ; [.4C8D.0020.0002] # EGYPTIAN HIEROGLYPH X008A
-133DB ; [.4C8E.0020.0002] # EGYPTIAN HIEROGLYPH Y001
-133DC ; [.4C8F.0020.0002] # EGYPTIAN HIEROGLYPH Y001A
-133DD ; [.4C90.0020.0002] # EGYPTIAN HIEROGLYPH Y002
-133DE ; [.4C91.0020.0002] # EGYPTIAN HIEROGLYPH Y003
-133DF ; [.4C92.0020.0002] # EGYPTIAN HIEROGLYPH Y004
-133E0 ; [.4C93.0020.0002] # EGYPTIAN HIEROGLYPH Y005
-133E1 ; [.4C94.0020.0002] # EGYPTIAN HIEROGLYPH Y006
-133E2 ; [.4C95.0020.0002] # EGYPTIAN HIEROGLYPH Y007
-133E3 ; [.4C96.0020.0002] # EGYPTIAN HIEROGLYPH Y008
-133E4 ; [.4C97.0020.0002] # EGYPTIAN HIEROGLYPH Z001
-133E5 ; [.4C98.0020.0002] # EGYPTIAN HIEROGLYPH Z002
-133E6 ; [.4C99.0020.0002] # EGYPTIAN HIEROGLYPH Z002A
-133E7 ; [.4C9A.0020.0002] # EGYPTIAN HIEROGLYPH Z002B
-133E8 ; [.4C9B.0020.0002] # EGYPTIAN HIEROGLYPH Z002C
-133E9 ; [.4C9C.0020.0002] # EGYPTIAN HIEROGLYPH Z002D
-133EA ; [.4C9D.0020.0002] # EGYPTIAN HIEROGLYPH Z003
-133EB ; [.4C9E.0020.0002] # EGYPTIAN HIEROGLYPH Z003A
-133EC ; [.4C9F.0020.0002] # EGYPTIAN HIEROGLYPH Z003B
-133ED ; [.4CA0.0020.0002] # EGYPTIAN HIEROGLYPH Z004
-133EE ; [.4CA1.0020.0002] # EGYPTIAN HIEROGLYPH Z004A
-133EF ; [.4CA2.0020.0002] # EGYPTIAN HIEROGLYPH Z005
-133F0 ; [.4CA3.0020.0002] # EGYPTIAN HIEROGLYPH Z005A
-133F1 ; [.4CA4.0020.0002] # EGYPTIAN HIEROGLYPH Z006
-133F2 ; [.4CA5.0020.0002] # EGYPTIAN HIEROGLYPH Z007
-133F3 ; [.4CA6.0020.0002] # EGYPTIAN HIEROGLYPH Z008
-133F4 ; [.4CA7.0020.0002] # EGYPTIAN HIEROGLYPH Z009
-133F5 ; [.4CA8.0020.0002] # EGYPTIAN HIEROGLYPH Z010
-133F6 ; [.4CA9.0020.0002] # EGYPTIAN HIEROGLYPH Z011
-133F7 ; [.4CAA.0020.0002] # EGYPTIAN HIEROGLYPH Z012
-133F8 ; [.4CAB.0020.0002] # EGYPTIAN HIEROGLYPH Z013
-133F9 ; [.4CAC.0020.0002] # EGYPTIAN HIEROGLYPH Z014
-133FA ; [.4CAD.0020.0002] # EGYPTIAN HIEROGLYPH Z015
-133FB ; [.4CAE.0020.0002] # EGYPTIAN HIEROGLYPH Z015A
-133FC ; [.4CAF.0020.0002] # EGYPTIAN HIEROGLYPH Z015B
-133FD ; [.4CB0.0020.0002] # EGYPTIAN HIEROGLYPH Z015C
-133FE ; [.4CB1.0020.0002] # EGYPTIAN HIEROGLYPH Z015D
-133FF ; [.4CB2.0020.0002] # EGYPTIAN HIEROGLYPH Z015E
-13400 ; [.4CB3.0020.0002] # EGYPTIAN HIEROGLYPH Z015F
-13401 ; [.4CB4.0020.0002] # EGYPTIAN HIEROGLYPH Z015G
-13402 ; [.4CB5.0020.0002] # EGYPTIAN HIEROGLYPH Z015H
-13403 ; [.4CB6.0020.0002] # EGYPTIAN HIEROGLYPH Z015I
-13404 ; [.4CB7.0020.0002] # EGYPTIAN HIEROGLYPH Z016
-13405 ; [.4CB8.0020.0002] # EGYPTIAN HIEROGLYPH Z016A
-13406 ; [.4CB9.0020.0002] # EGYPTIAN HIEROGLYPH Z016B
-13407 ; [.4CBA.0020.0002] # EGYPTIAN HIEROGLYPH Z016C
-13408 ; [.4CBB.0020.0002] # EGYPTIAN HIEROGLYPH Z016D
-13409 ; [.4CBC.0020.0002] # EGYPTIAN HIEROGLYPH Z016E
-1340A ; [.4CBD.0020.0002] # EGYPTIAN HIEROGLYPH Z016F
-1340B ; [.4CBE.0020.0002] # EGYPTIAN HIEROGLYPH Z016G
-1340C ; [.4CBF.0020.0002] # EGYPTIAN HIEROGLYPH Z016H
-1340D ; [.4CC0.0020.0002] # EGYPTIAN HIEROGLYPH AA001
-1340E ; [.4CC1.0020.0002] # EGYPTIAN HIEROGLYPH AA002
-1340F ; [.4CC2.0020.0002] # EGYPTIAN HIEROGLYPH AA003
-13410 ; [.4CC3.0020.0002] # EGYPTIAN HIEROGLYPH AA004
-13411 ; [.4CC4.0020.0002] # EGYPTIAN HIEROGLYPH AA005
-13412 ; [.4CC5.0020.0002] # EGYPTIAN HIEROGLYPH AA006
-13413 ; [.4CC6.0020.0002] # EGYPTIAN HIEROGLYPH AA007
-13414 ; [.4CC7.0020.0002] # EGYPTIAN HIEROGLYPH AA007A
-13415 ; [.4CC8.0020.0002] # EGYPTIAN HIEROGLYPH AA007B
-13416 ; [.4CC9.0020.0002] # EGYPTIAN HIEROGLYPH AA008
-13417 ; [.4CCA.0020.0002] # EGYPTIAN HIEROGLYPH AA009
-13418 ; [.4CCB.0020.0002] # EGYPTIAN HIEROGLYPH AA010
-13419 ; [.4CCC.0020.0002] # EGYPTIAN HIEROGLYPH AA011
-1341A ; [.4CCD.0020.0002] # EGYPTIAN HIEROGLYPH AA012
-1341B ; [.4CCE.0020.0002] # EGYPTIAN HIEROGLYPH AA013
-1341C ; [.4CCF.0020.0002] # EGYPTIAN HIEROGLYPH AA014
-1341D ; [.4CD0.0020.0002] # EGYPTIAN HIEROGLYPH AA015
-1341E ; [.4CD1.0020.0002] # EGYPTIAN HIEROGLYPH AA016
-1341F ; [.4CD2.0020.0002] # EGYPTIAN HIEROGLYPH AA017
-13420 ; [.4CD3.0020.0002] # EGYPTIAN HIEROGLYPH AA018
-13421 ; [.4CD4.0020.0002] # EGYPTIAN HIEROGLYPH AA019
-13422 ; [.4CD5.0020.0002] # EGYPTIAN HIEROGLYPH AA020
-13423 ; [.4CD6.0020.0002] # EGYPTIAN HIEROGLYPH AA021
-13424 ; [.4CD7.0020.0002] # EGYPTIAN HIEROGLYPH AA022
-13425 ; [.4CD8.0020.0002] # EGYPTIAN HIEROGLYPH AA023
-13426 ; [.4CD9.0020.0002] # EGYPTIAN HIEROGLYPH AA024
-13427 ; [.4CDA.0020.0002] # EGYPTIAN HIEROGLYPH AA025
-13428 ; [.4CDB.0020.0002] # EGYPTIAN HIEROGLYPH AA026
-13429 ; [.4CDC.0020.0002] # EGYPTIAN HIEROGLYPH AA027
-1342A ; [.4CDD.0020.0002] # EGYPTIAN HIEROGLYPH AA028
-1342B ; [.4CDE.0020.0002] # EGYPTIAN HIEROGLYPH AA029
-1342C ; [.4CDF.0020.0002] # EGYPTIAN HIEROGLYPH AA030
-1342D ; [.4CE0.0020.0002] # EGYPTIAN HIEROGLYPH AA031
-1342E ; [.4CE1.0020.0002] # EGYPTIAN HIEROGLYPH AA032
-109A0 ; [.4CE2.0020.0002] # MEROITIC CURSIVE LETTER A
-10980 ; [.4CE2.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER A
-109A1 ; [.4CE3.0020.0002] # MEROITIC CURSIVE LETTER E
-10981 ; [.4CE3.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER E
-109A2 ; [.4CE4.0020.0002] # MEROITIC CURSIVE LETTER I
-10982 ; [.4CE4.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER I
-109A3 ; [.4CE5.0020.0002] # MEROITIC CURSIVE LETTER O
-10983 ; [.4CE5.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER O
-109A4 ; [.4CE6.0020.0002] # MEROITIC CURSIVE LETTER YA
-10984 ; [.4CE6.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER YA
-109A5 ; [.4CE7.0020.0002] # MEROITIC CURSIVE LETTER WA
-10985 ; [.4CE7.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER WA
-109A6 ; [.4CE8.0020.0002] # MEROITIC CURSIVE LETTER BA
-10986 ; [.4CE8.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER BA
-10987 ; [.4CE8.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER BA-2
-109A7 ; [.4CE9.0020.0002] # MEROITIC CURSIVE LETTER PA
-10988 ; [.4CE9.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER PA
-109A8 ; [.4CEA.0020.0002] # MEROITIC CURSIVE LETTER MA
-10989 ; [.4CEA.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER MA
-109A9 ; [.4CEB.0020.0002] # MEROITIC CURSIVE LETTER NA
-1098A ; [.4CEB.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER NA
-1098B ; [.4CEB.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER NA-2
-109AA ; [.4CEC.0020.0002] # MEROITIC CURSIVE LETTER NE
-1098C ; [.4CEC.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER NE
-1098D ; [.4CEC.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER NE-2
-109AB ; [.4CED.0020.0002] # MEROITIC CURSIVE LETTER RA
-1098E ; [.4CED.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER RA
-1098F ; [.4CED.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER RA-2
-109AC ; [.4CEE.0020.0002] # MEROITIC CURSIVE LETTER LA
-10990 ; [.4CEE.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER LA
-109AD ; [.4CEF.0020.0002] # MEROITIC CURSIVE LETTER KHA
-10991 ; [.4CEF.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER KHA
-109AE ; [.4CF0.0020.0002] # MEROITIC CURSIVE LETTER HHA
-10992 ; [.4CF0.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER HHA
-109AF ; [.4CF1.0020.0002] # MEROITIC CURSIVE LETTER SA
-109B0 ; [.4CF1.0020.0004][.0000.0108.0004] # MEROITIC CURSIVE LETTER ARCHAIC SA
-10993 ; [.4CF1.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER SA
-10994 ; [.4CF1.0020.0004][.0000.010A.0004] # MEROITIC HIEROGLYPHIC LETTER SA-2
-109B1 ; [.4CF2.0020.0002] # MEROITIC CURSIVE LETTER SE
-10995 ; [.4CF2.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER SE
-109B2 ; [.4CF3.0020.0002] # MEROITIC CURSIVE LETTER KA
-10996 ; [.4CF3.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER KA
-109B3 ; [.4CF4.0020.0002] # MEROITIC CURSIVE LETTER QA
-10997 ; [.4CF4.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER QA
-109B4 ; [.4CF5.0020.0002] # MEROITIC CURSIVE LETTER TA
-10998 ; [.4CF5.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER TA
-10999 ; [.4CF5.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER TA-2
-109B5 ; [.4CF6.0020.0002] # MEROITIC CURSIVE LETTER TE
-1099A ; [.4CF6.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER TE
-1099B ; [.4CF6.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER TE-2
-109B6 ; [.4CF7.0020.0002] # MEROITIC CURSIVE LETTER TO
-1099C ; [.4CF7.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER TO
-109B7 ; [.4CF8.0020.0002] # MEROITIC CURSIVE LETTER DA
-1099D ; [.4CF8.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER DA
-109BE ; [.4CF9.0020.0002] # MEROITIC CURSIVE LOGOGRAM RMT
-109BF ; [.4CFA.0020.0002] # MEROITIC CURSIVE LOGOGRAM IMN
-1099E ; [.4CFB.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ
-1099F ; [.4CFC.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+08E3 ; [.0000.0090.0002] # ARABIC TURNED DAMMA BELOW
+08F7 ; [.0000.0091.0002] # ARABIC LEFT ARROWHEAD ABOVE
+08F8 ; [.0000.0092.0002] # ARABIC RIGHT ARROWHEAD ABOVE
+08FD ; [.0000.0093.0002] # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
+08FB ; [.0000.0094.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE
+08FC ; [.0000.0095.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
+08F9 ; [.0000.0096.0002] # ARABIC LEFT ARROWHEAD BELOW
+08FA ; [.0000.0097.0002] # ARABIC RIGHT ARROWHEAD BELOW
+0670 ; [.0000.0098.0002] # ARABIC LETTER SUPERSCRIPT ALEF
+0711 ; [.0000.0099.0002] # SYRIAC LETTER SUPERSCRIPT ALAPH
+0730 ; [.0000.009A.0002] # SYRIAC PTHAHA ABOVE
+0731 ; [.0000.009B.0002] # SYRIAC PTHAHA BELOW
+0732 ; [.0000.009C.0002] # SYRIAC PTHAHA DOTTED
+0733 ; [.0000.009D.0002] # SYRIAC ZQAPHA ABOVE
+0734 ; [.0000.009E.0002] # SYRIAC ZQAPHA BELOW
+0735 ; [.0000.009F.0002] # SYRIAC ZQAPHA DOTTED
+0736 ; [.0000.00A0.0002] # SYRIAC RBASA ABOVE
+0737 ; [.0000.00A1.0002] # SYRIAC RBASA BELOW
+0738 ; [.0000.00A2.0002] # SYRIAC DOTTED ZLAMA HORIZONTAL
+0739 ; [.0000.00A3.0002] # SYRIAC DOTTED ZLAMA ANGULAR
+073A ; [.0000.00A4.0002] # SYRIAC HBASA ABOVE
+073B ; [.0000.00A5.0002] # SYRIAC HBASA BELOW
+073C ; [.0000.00A6.0002] # SYRIAC HBASA-ESASA DOTTED
+073D ; [.0000.00A7.0002] # SYRIAC ESASA ABOVE
+073E ; [.0000.00A8.0002] # SYRIAC ESASA BELOW
+073F ; [.0000.00A9.0002] # SYRIAC RWAHA
+07EB ; [.0000.00AA.0002] # NKO COMBINING SHORT HIGH TONE
+07EC ; [.0000.00AB.0002] # NKO COMBINING SHORT LOW TONE
+07ED ; [.0000.00AC.0002] # NKO COMBINING SHORT RISING TONE
+07EE ; [.0000.00AD.0002] # NKO COMBINING LONG DESCENDING TONE
+07EF ; [.0000.00AE.0002] # NKO COMBINING LONG HIGH TONE
+07F0 ; [.0000.00AF.0002] # NKO COMBINING LONG LOW TONE
+07F1 ; [.0000.00B0.0002] # NKO COMBINING LONG RISING TONE
+07F2 ; [.0000.00B1.0002] # NKO COMBINING NASALIZATION MARK
+07F3 ; [.0000.00B2.0002] # NKO COMBINING DOUBLE DOT ABOVE
+135F ; [.0000.00B3.0002] # ETHIOPIC COMBINING GEMINATION MARK
+135E ; [.0000.00B4.0002] # ETHIOPIC COMBINING VOWEL LENGTH MARK
+135D ; [.0000.00B5.0002] # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
+A6F0 ; [.0000.00B6.0002] # BAMUM COMBINING MARK KOQNDON
+A6F1 ; [.0000.00B7.0002] # BAMUM COMBINING MARK TUKWENTIS
+16AF0 ; [.0000.00B8.0002] # BASSA VAH COMBINING HIGH TONE
+16AF1 ; [.0000.00B9.0002] # BASSA VAH COMBINING LOW TONE
+16AF2 ; [.0000.00BA.0002] # BASSA VAH COMBINING MID TONE
+16AF3 ; [.0000.00BB.0002] # BASSA VAH COMBINING LOW-MID TONE
+16AF4 ; [.0000.00BC.0002] # BASSA VAH COMBINING HIGH-LOW TONE
+1E944 ; [.0000.00BD.0002] # ADLAM ALIF LENGTHENER
+1E945 ; [.0000.00BD.0002] # ADLAM VOWEL LENGTHENER
+1E946 ; [.0000.00BD.0002] # ADLAM GEMINATION MARK
+1E94A ; [.0000.00BE.0002] # ADLAM NUKTA
+1E947 ; [.0000.00BF.0002] # ADLAM HAMZA
+1E948 ; [.0000.00C0.0002] # ADLAM CONSONANT MODIFIER
+1E949 ; [.0000.00C1.0002] # ADLAM GEMINATE CONSONANT MODIFIER
+093C ; [.0000.00C2.0002] # DEVANAGARI SIGN NUKTA
+09BC ; [.0000.00C2.0002] # BENGALI SIGN NUKTA
+0A3C ; [.0000.00C2.0002] # GURMUKHI SIGN NUKTA
+0ABC ; [.0000.00C2.0002] # GUJARATI SIGN NUKTA
+0B3C ; [.0000.00C2.0002] # ORIYA SIGN NUKTA
+0CBC ; [.0000.00C2.0002] # KANNADA SIGN NUKTA
+1B34 ; [.0000.00C2.0002] # BALINESE SIGN REREKAN
+1BE6 ; [.0000.00C2.0002] # BATAK SIGN TOMPI
+1C37 ; [.0000.00C2.0002] # LEPCHA SIGN NUKTA
+A9B3 ; [.0000.00C2.0002] # JAVANESE SIGN CECAK TELU
+110BA ; [.0000.00C2.0002] # KAITHI SIGN NUKTA
+11173 ; [.0000.00C2.0002] # MAHAJANI SIGN NUKTA
+111CA ; [.0000.00C2.0002] # SHARADA SIGN NUKTA
+11236 ; [.0000.00C2.0002] # KHOJKI SIGN NUKTA
+112E9 ; [.0000.00C2.0002] # KHUDAWADI SIGN NUKTA
+1133C ; [.0000.00C2.0002] # GRANTHA SIGN NUKTA
+11446 ; [.0000.00C2.0002] # NEWA SIGN NUKTA
+114C3 ; [.0000.00C2.0002] # TIRHUTA SIGN NUKTA
+115C0 ; [.0000.00C2.0002] # SIDDHAM SIGN NUKTA
+116B7 ; [.0000.00C2.0002] # TAKRI SIGN NUKTA
+0900 ; [.0000.00C3.0002] # DEVANAGARI SIGN INVERTED CANDRABINDU
+0901 ; [.0000.00C3.0002] # DEVANAGARI SIGN CANDRABINDU
+0981 ; [.0000.00C3.0002] # BENGALI SIGN CANDRABINDU
+0A01 ; [.0000.00C3.0002] # GURMUKHI SIGN ADAK BINDI
+0A81 ; [.0000.00C3.0002] # GUJARATI SIGN CANDRABINDU
+0B01 ; [.0000.00C3.0002] # ORIYA SIGN CANDRABINDU
+0C00 ; [.0000.00C3.0002] # TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01 ; [.0000.00C3.0002] # TELUGU SIGN CANDRABINDU
+0C81 ; [.0000.00C3.0002] # KANNADA SIGN CANDRABINDU
+0D01 ; [.0000.00C3.0002] # MALAYALAM SIGN CANDRABINDU
+1B00 ; [.0000.00C3.0002] # BALINESE SIGN ULU RICEM
+1B01 ; [.0000.00C3.0002] # BALINESE SIGN ULU CANDRA
+A8C5 ; [.0000.00C3.0002] # SAURASHTRA SIGN CANDRABINDU
+A980 ; [.0000.00C3.0002] # JAVANESE SIGN PANYANGGA
+11000 ; [.0000.00C3.0002] # BRAHMI SIGN CANDRABINDU
+11080 ; [.0000.00C3.0002] # KAITHI SIGN CANDRABINDU
+11100 ; [.0000.00C3.0002] # CHAKMA SIGN CANDRABINDU
+11180 ; [.0000.00C3.0002] # SHARADA SIGN CANDRABINDU
+11301 ; [.0000.00C3.0002] # GRANTHA SIGN CANDRABINDU
+11443 ; [.0000.00C3.0002] # NEWA SIGN CANDRABINDU
+114BF ; [.0000.00C3.0002] # TIRHUTA SIGN CANDRABINDU
+115BC ; [.0000.00C3.0002] # SIDDHAM SIGN CANDRABINDU
+11640 ; [.0000.00C3.0002] # MODI SIGN ARDHACANDRA
+11C3C ; [.0000.00C3.0002] # BHAIKSUKI SIGN CANDRABINDU
+11CB6 ; [.0000.00C3.0002] # MARCHEN SIGN CANDRABINDU
+0902 ; [.0000.00C4.0002] # DEVANAGARI SIGN ANUSVARA
+0982 ; [.0000.00C4.0002] # BENGALI SIGN ANUSVARA
+0A02 ; [.0000.00C4.0002] # GURMUKHI SIGN BINDI
+0A82 ; [.0000.00C4.0002] # GUJARATI SIGN ANUSVARA
+0B02 ; [.0000.00C4.0002] # ORIYA SIGN ANUSVARA
+0B82 ; [.0000.00C4.0002] # TAMIL SIGN ANUSVARA
+0C02 ; [.0000.00C4.0002] # TELUGU SIGN ANUSVARA
+0C82 ; [.0000.00C4.0002] # KANNADA SIGN ANUSVARA
+0D02 ; [.0000.00C4.0002] # MALAYALAM SIGN ANUSVARA
+0D82 ; [.0000.00C4.0002] # SINHALA SIGN ANUSVARAYA
+0F7E ; [.0000.00C4.0002] # TIBETAN SIGN RJES SU NGA RO
+1036 ; [.0000.00C4.0002] # MYANMAR SIGN ANUSVARA
+17C6 ; [.0000.00C4.0002] # KHMER SIGN NIKAHIT
+1A74 ; [.0000.00C4.0002] # TAI THAM SIGN MAI KANG
+1B02 ; [.0000.00C4.0002] # BALINESE SIGN CECEK
+1B80 ; [.0000.00C4.0002] # SUNDANESE SIGN PANYECEK
+1CED ; [.0000.00C4.0002] # VEDIC SIGN TIRYAK
+A80B ; [.0000.00C4.0002] # SYLOTI NAGRI SIGN ANUSVARA
+A880 ; [.0000.00C4.0002] # SAURASHTRA SIGN ANUSVARA
+A981 ; [.0000.00C4.0002] # JAVANESE SIGN CECAK
+10A0E ; [.0000.00C4.0002] # KHAROSHTHI SIGN ANUSVARA
+11001 ; [.0000.00C4.0002] # BRAHMI SIGN ANUSVARA
+11081 ; [.0000.00C4.0002] # KAITHI SIGN ANUSVARA
+11101 ; [.0000.00C4.0002] # CHAKMA SIGN ANUSVARA
+11181 ; [.0000.00C4.0002] # SHARADA SIGN ANUSVARA
+11234 ; [.0000.00C4.0002] # KHOJKI SIGN ANUSVARA
+112DF ; [.0000.00C4.0002] # KHUDAWADI SIGN ANUSVARA
+11300 ; [.0000.00C4.0002] # GRANTHA SIGN COMBINING ANUSVARA ABOVE
+11302 ; [.0000.00C4.0002] # GRANTHA SIGN ANUSVARA
+11444 ; [.0000.00C4.0002] # NEWA SIGN ANUSVARA
+114C0 ; [.0000.00C4.0002] # TIRHUTA SIGN ANUSVARA
+115BD ; [.0000.00C4.0002] # SIDDHAM SIGN ANUSVARA
+1163D ; [.0000.00C4.0002] # MODI SIGN ANUSVARA
+116AB ; [.0000.00C4.0002] # TAKRI SIGN ANUSVARA
+11C3D ; [.0000.00C4.0002] # BHAIKSUKI SIGN ANUSVARA
+11CB5 ; [.0000.00C4.0002] # MARCHEN SIGN ANUSVARA
+0903 ; [.0000.00C5.0002] # DEVANAGARI SIGN VISARGA
+0983 ; [.0000.00C5.0002] # BENGALI SIGN VISARGA
+0A03 ; [.0000.00C5.0002] # GURMUKHI SIGN VISARGA
+0A83 ; [.0000.00C5.0002] # GUJARATI SIGN VISARGA
+0B03 ; [.0000.00C5.0002] # ORIYA SIGN VISARGA
+0C03 ; [.0000.00C5.0002] # TELUGU SIGN VISARGA
+0C83 ; [.0000.00C5.0002] # KANNADA SIGN VISARGA
+0D03 ; [.0000.00C5.0002] # MALAYALAM SIGN VISARGA
+0D83 ; [.0000.00C5.0002] # SINHALA SIGN VISARGAYA
+0F7F ; [.0000.00C5.0002] # TIBETAN SIGN RNAM BCAD
+1038 ; [.0000.00C5.0002] # MYANMAR SIGN VISARGA
+17C7 ; [.0000.00C5.0002] # KHMER SIGN REAHMUK
+1B04 ; [.0000.00C5.0002] # BALINESE SIGN BISAH
+1B82 ; [.0000.00C5.0002] # SUNDANESE SIGN PANGWISAD
+1CF2 ; [.0000.00C5.0002] # VEDIC SIGN ARDHAVISARGA
+1CF3 ; [.0000.00C5.0002] # VEDIC SIGN ROTATED ARDHAVISARGA
+A881 ; [.0000.00C5.0002] # SAURASHTRA SIGN VISARGA
+A983 ; [.0000.00C5.0002] # JAVANESE SIGN WIGNYAN
+10A0F ; [.0000.00C5.0002] # KHAROSHTHI SIGN VISARGA
+11002 ; [.0000.00C5.0002] # BRAHMI SIGN VISARGA
+11082 ; [.0000.00C5.0002] # KAITHI SIGN VISARGA
+11102 ; [.0000.00C5.0002] # CHAKMA SIGN VISARGA
+11182 ; [.0000.00C5.0002] # SHARADA SIGN VISARGA
+11303 ; [.0000.00C5.0002] # GRANTHA SIGN VISARGA
+11445 ; [.0000.00C5.0002] # NEWA SIGN VISARGA
+114C1 ; [.0000.00C5.0002] # TIRHUTA SIGN VISARGA
+115BE ; [.0000.00C5.0002] # SIDDHAM SIGN VISARGA
+1163E ; [.0000.00C5.0002] # MODI SIGN VISARGA
+116AC ; [.0000.00C5.0002] # TAKRI SIGN VISARGA
+11C3E ; [.0000.00C5.0002] # BHAIKSUKI SIGN VISARGA
+0A70 ; [.0000.00C6.0002] # GURMUKHI TIPPI
+0A71 ; [.0000.00C7.0002] # GURMUKHI ADDAK
+1B03 ; [.0000.00C8.0002] # BALINESE SIGN SURANG
+A982 ; [.0000.00C9.0002] # JAVANESE SIGN LAYAR
+1B81 ; [.0000.00CA.0002] # SUNDANESE SIGN PANGLAYAR
+ABEC ; [.0000.00CB.0002] # MEETEI MAYEK LUM IYEK
+10A38 ; [.0000.00CC.0002] # KHAROSHTHI SIGN BAR ABOVE
+10A39 ; [.0000.00CD.0002] # KHAROSHTHI SIGN CAUDA
+10A3A ; [.0000.00CE.0002] # KHAROSHTHI SIGN DOT BELOW
+111CB ; [.0000.00CF.0002] # SHARADA VOWEL MODIFIER MARK
+111CC ; [.0000.00D0.0002] # SHARADA EXTRA SHORT VOWEL MARK
+0E4E ; [.0000.00D1.0002] # THAI CHARACTER YAMAKKAN
+0E47 ; [.0000.00D2.0002] # THAI CHARACTER MAITAIKHU
+0E48 ; [.0000.00D3.0002] # THAI CHARACTER MAI EK
+0E49 ; [.0000.00D4.0002] # THAI CHARACTER MAI THO
+0E4A ; [.0000.00D5.0002] # THAI CHARACTER MAI TRI
+0E4B ; [.0000.00D6.0002] # THAI CHARACTER MAI CHATTAWA
+0E4C ; [.0000.00D7.0002] # THAI CHARACTER THANTHAKHAT
+0E4D ; [.0000.00D8.0002] # THAI CHARACTER NIKHAHIT
+0EC8 ; [.0000.00D9.0002] # LAO TONE MAI EK
+0EC9 ; [.0000.00DA.0002] # LAO TONE MAI THO
+0ECA ; [.0000.00DB.0002] # LAO TONE MAI TI
+0ECB ; [.0000.00DC.0002] # LAO TONE MAI CATAWA
+0ECC ; [.0000.00DD.0002] # LAO CANCELLATION MARK
+0ECD ; [.0000.00DE.0002] # LAO NIGGAHITA
+AABF ; [.0000.00DF.0002] # TAI VIET TONE MAI EK
+AAC1 ; [.0000.00E0.0002] # TAI VIET TONE MAI THO
+0F39 ; [.0000.00E1.0002] # TIBETAN MARK TSA -PHRU
+A92B ; [.0000.00E2.0002] # KAYAH LI TONE PLOPHU
+A92C ; [.0000.00E3.0002] # KAYAH LI TONE CALYA
+A92D ; [.0000.00E4.0002] # KAYAH LI TONE CALYA PLOPHU
+1037 ; [.0000.00E5.0002] # MYANMAR SIGN DOT BELOW
+17C8 ; [.0000.00E6.0002] # KHMER SIGN YUUKALEAPINTU
+17C9 ; [.0000.00E7.0002] # KHMER SIGN MUUSIKATOAN
+17CA ; [.0000.00E8.0002] # KHMER SIGN TRIISAP
+1A75 ; [.0000.00E9.0002] # TAI THAM SIGN TONE-1
+1A76 ; [.0000.00EA.0002] # TAI THAM SIGN TONE-2
+1A77 ; [.0000.00EB.0002] # TAI THAM SIGN KHUEN TONE-3
+1A78 ; [.0000.00EC.0002] # TAI THAM SIGN KHUEN TONE-4
+1A79 ; [.0000.00ED.0002] # TAI THAM SIGN KHUEN TONE-5
+1A7A ; [.0000.00EE.0002] # TAI THAM SIGN RA HAAM
+1A7B ; [.0000.00EF.0002] # TAI THAM SIGN MAI SAM
+1A7C ; [.0000.00F0.0002] # TAI THAM SIGN KHUEN-LUE KARAN
+1939 ; [.0000.00F1.0002] # LIMBU SIGN MUKPHRENG
+193A ; [.0000.00F2.0002] # LIMBU SIGN KEMPHRENG
+193B ; [.0000.00F3.0002] # LIMBU SIGN SA-I
+16B30 ; [.0000.00F4.0002] # PAHAWH HMONG MARK CIM TUB
+16B31 ; [.0000.00F5.0002] # PAHAWH HMONG MARK CIM SO
+16B32 ; [.0000.00F6.0002] # PAHAWH HMONG MARK CIM KES
+16B33 ; [.0000.00F7.0002] # PAHAWH HMONG MARK CIM KHAV
+16B34 ; [.0000.00F8.0002] # PAHAWH HMONG MARK CIM SUAM
+16B35 ; [.0000.00F9.0002] # PAHAWH HMONG MARK CIM HOM
+16B36 ; [.0000.00FA.0002] # PAHAWH HMONG MARK CIM TAUM
+302A ; [.0000.00FB.0002] # IDEOGRAPHIC LEVEL TONE MARK
+302B ; [.0000.00FC.0002] # IDEOGRAPHIC RISING TONE MARK
+302C ; [.0000.00FD.0002] # IDEOGRAPHIC DEPARTING TONE MARK
+302D ; [.0000.00FE.0002] # IDEOGRAPHIC ENTERING TONE MARK
+302E ; [.0000.00FF.0002] # HANGUL SINGLE DOT TONE MARK
+302F ; [.0000.0100.0002] # HANGUL DOUBLE DOT TONE MARK
+20D0 ; [.0000.0101.0002] # COMBINING LEFT HARPOON ABOVE
+20D1 ; [.0000.0102.0002] # COMBINING RIGHT HARPOON ABOVE
+20D2 ; [.0000.0103.0002] # COMBINING LONG VERTICAL LINE OVERLAY
+20D3 ; [.0000.0103.0002] # COMBINING SHORT VERTICAL LINE OVERLAY
+20D4 ; [.0000.0104.0002] # COMBINING ANTICLOCKWISE ARROW ABOVE
+20D5 ; [.0000.0105.0002] # COMBINING CLOCKWISE ARROW ABOVE
+20D6 ; [.0000.0106.0002] # COMBINING LEFT ARROW ABOVE
+20D7 ; [.0000.0107.0002] # COMBINING RIGHT ARROW ABOVE
+20DB ; [.0000.0108.0002] # COMBINING THREE DOTS ABOVE
+20DC ; [.0000.0109.0002] # COMBINING FOUR DOTS ABOVE
+20E1 ; [.0000.010A.0002] # COMBINING LEFT RIGHT ARROW ABOVE
+20E6 ; [.0000.010B.0002] # COMBINING DOUBLE VERTICAL STROKE OVERLAY
+20E7 ; [.0000.010C.0002] # COMBINING ANNUITY SYMBOL
+20E8 ; [.0000.010D.0002] # COMBINING TRIPLE UNDERDOT
+20E9 ; [.0000.010E.0002] # COMBINING WIDE BRIDGE ABOVE
+101FD ; [.0000.010F.0002] # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+02D0 ; [.1BF8.0020.0002] # MODIFIER LETTER TRIANGULAR COLON
+02D1 ; [.1BF9.0020.0002] # MODIFIER LETTER HALF TRIANGULAR COLON
+0971 ; [.1BFA.0020.0002] # DEVANAGARI SIGN HIGH SPACING DOT
+0E46 ; [.1BFB.0020.0002] # THAI CHARACTER MAIYAMOK
+0EC6 ; [.1BFC.0020.0002] # LAO KO LA
+17D7 ; [.1BFD.0020.0002] # KHMER SIGN LEK TOO
+1AA7 ; [.1BFE.0020.0002] # TAI THAM SIGN MAI YAMOK
+A9CF ; [.1BFF.0020.0002] # JAVANESE PANGRANGKEP
+A9E6 ; [.1C00.0020.0002] # MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+AA70 ; [.1C01.0020.0002] # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AADD ; [.1C02.0020.0002] # TAI VIET SYMBOL SAM
+AAF3 ; [.1C03.0020.0002] # MEETEI MAYEK SYLLABLE REPETITION MARK
+AAF4 ; [.1C04.0020.0002] # MEETEI MAYEK WORD REPETITION MARK
+16B42 ; [.1C05.0020.0002] # PAHAWH HMONG SIGN VOS NRUA
+16B43 ; [.1C06.0020.0002] # PAHAWH HMONG SIGN IB YAM
+3005 ; [.1C07.0020.0002] # IDEOGRAPHIC ITERATION MARK
+303B ; [.1C08.0020.0002] # VERTICAL IDEOGRAPHIC ITERATION MARK
+16FE0 ; [.1C09.0020.0002] # TANGUT ITERATION MARK
+3031 ; [.1C0A.0020.0002] # VERTICAL KANA REPEAT MARK
+3032 ; [.1C0A.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK
+3033 ; [.1C0B.0020.0002] # VERTICAL KANA REPEAT MARK UPPER HALF
+3034 ; [.1C0B.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
+3035 ; [.1C0C.0020.0002] # VERTICAL KANA REPEAT MARK LOWER HALF
+309D ; [.1C0D.0020.0002] # HIRAGANA ITERATION MARK
+309E ; [.1C0D.0020.0002][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
+30FC ; [.1C0E.0020.0002] # KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF70 ; [.1C0E.0020.0012] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+30FD ; [.1C0F.0020.0002] # KATAKANA ITERATION MARK
+30FE ; [.1C0F.0020.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
+00A4 ; [.1C10.0020.0002] # CURRENCY SIGN
+00A2 ; [.1C11.0020.0002] # CENT SIGN
+FFE0 ; [.1C11.0020.0003] # FULLWIDTH CENT SIGN
+0024 ; [.1C12.0020.0002] # DOLLAR SIGN
+FF04 ; [.1C12.0020.0003] # FULLWIDTH DOLLAR SIGN
+FE69 ; [.1C12.0020.000F] # SMALL DOLLAR SIGN
+00A3 ; [.1C13.0020.0002] # POUND SIGN
+FFE1 ; [.1C13.0020.0003] # FULLWIDTH POUND SIGN
+00A5 ; [.1C14.0020.0002] # YEN SIGN
+FFE5 ; [.1C14.0020.0003] # FULLWIDTH YEN SIGN
+058F ; [.1C15.0020.0002] # ARMENIAN DRAM SIGN
+060B ; [.1C16.0020.0002] # AFGHANI SIGN
+09F2 ; [.1C17.0020.0002] # BENGALI RUPEE MARK
+09F3 ; [.1C18.0020.0002] # BENGALI RUPEE SIGN
+09FB ; [.1C19.0020.0002] # BENGALI GANDA MARK
+0AF1 ; [.1C1A.0020.0002] # GUJARATI RUPEE SIGN
+A838 ; [.1C1B.0020.0002] # NORTH INDIC RUPEE MARK
+0BF9 ; [.1C1C.0020.0002] # TAMIL RUPEE SIGN
+0E3F ; [.1C1D.0020.0002] # THAI CURRENCY SYMBOL BAHT
+17DB ; [.1C1E.0020.0002] # KHMER CURRENCY SYMBOL RIEL
+20A0 ; [.1C1F.0020.0002] # EURO-CURRENCY SIGN
+20A1 ; [.1C20.0020.0002] # COLON SIGN
+20A2 ; [.1C21.0020.0002] # CRUZEIRO SIGN
+20A3 ; [.1C22.0020.0002] # FRENCH FRANC SIGN
+20A4 ; [.1C23.0020.0002] # LIRA SIGN
+20A5 ; [.1C24.0020.0002] # MILL SIGN
+20A6 ; [.1C25.0020.0002] # NAIRA SIGN
+20A7 ; [.1C26.0020.0002] # PESETA SIGN
+20A9 ; [.1C27.0020.0002] # WON SIGN
+FFE6 ; [.1C27.0020.0003] # FULLWIDTH WON SIGN
+20AA ; [.1C28.0020.0002] # NEW SHEQEL SIGN
+20AB ; [.1C29.0020.0002] # DONG SIGN
+20AC ; [.1C2A.0020.0002] # EURO SIGN
+20AD ; [.1C2B.0020.0002] # KIP SIGN
+20AE ; [.1C2C.0020.0002] # TUGRIK SIGN
+20AF ; [.1C2D.0020.0002] # DRACHMA SIGN
+20B0 ; [.1C2E.0020.0002] # GERMAN PENNY SIGN
+20B1 ; [.1C2F.0020.0002] # PESO SIGN
+20B2 ; [.1C30.0020.0002] # GUARANI SIGN
+20B3 ; [.1C31.0020.0002] # AUSTRAL SIGN
+20B4 ; [.1C32.0020.0002] # HRYVNIA SIGN
+20B5 ; [.1C33.0020.0002] # CEDI SIGN
+20B6 ; [.1C34.0020.0002] # LIVRE TOURNOIS SIGN
+20B7 ; [.1C35.0020.0002] # SPESMILO SIGN
+20B8 ; [.1C36.0020.0002] # TENGE SIGN
+20B9 ; [.1C37.0020.0002] # INDIAN RUPEE SIGN
+20BA ; [.1C38.0020.0002] # TURKISH LIRA SIGN
+20BB ; [.1C39.0020.0002] # NORDIC MARK SIGN
+20BC ; [.1C3A.0020.0002] # MANAT SIGN
+20BD ; [.1C3B.0020.0002] # RUBLE SIGN
+20BE ; [.1C3C.0020.0002] # LARI SIGN
+0030 ; [.1C3D.0020.0002] # DIGIT ZERO
+0660 ; [.1C3D.0020.0002] # ARABIC-INDIC DIGIT ZERO
+06F0 ; [.1C3D.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ZERO
+07C0 ; [.1C3D.0020.0002] # NKO DIGIT ZERO
+0966 ; [.1C3D.0020.0002] # DEVANAGARI DIGIT ZERO
+09E6 ; [.1C3D.0020.0002] # BENGALI DIGIT ZERO
+0A66 ; [.1C3D.0020.0002] # GURMUKHI DIGIT ZERO
+0AE6 ; [.1C3D.0020.0002] # GUJARATI DIGIT ZERO
+0B66 ; [.1C3D.0020.0002] # ORIYA DIGIT ZERO
+0BE6 ; [.1C3D.0020.0002] # TAMIL DIGIT ZERO
+0C66 ; [.1C3D.0020.0002] # TELUGU DIGIT ZERO
+0C78 ; [.1C3D.0020.0002] # TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
+0CE6 ; [.1C3D.0020.0002] # KANNADA DIGIT ZERO
+0D66 ; [.1C3D.0020.0002] # MALAYALAM DIGIT ZERO
+0DE6 ; [.1C3D.0020.0002] # SINHALA LITH DIGIT ZERO
+0E50 ; [.1C3D.0020.0002] # THAI DIGIT ZERO
+0ED0 ; [.1C3D.0020.0002] # LAO DIGIT ZERO
+0F20 ; [.1C3D.0020.0002] # TIBETAN DIGIT ZERO
+1040 ; [.1C3D.0020.0002] # MYANMAR DIGIT ZERO
+1090 ; [.1C3D.0020.0002] # MYANMAR SHAN DIGIT ZERO
+17E0 ; [.1C3D.0020.0002] # KHMER DIGIT ZERO
+17F0 ; [.1C3D.0020.0002] # KHMER SYMBOL LEK ATTAK SON
+1810 ; [.1C3D.0020.0002] # MONGOLIAN DIGIT ZERO
+1946 ; [.1C3D.0020.0002] # LIMBU DIGIT ZERO
+19D0 ; [.1C3D.0020.0002] # NEW TAI LUE DIGIT ZERO
+1A80 ; [.1C3D.0020.0002] # TAI THAM HORA DIGIT ZERO
+1A90 ; [.1C3D.0020.0002] # TAI THAM THAM DIGIT ZERO
+1B50 ; [.1C3D.0020.0002] # BALINESE DIGIT ZERO
+1BB0 ; [.1C3D.0020.0002] # SUNDANESE DIGIT ZERO
+1C40 ; [.1C3D.0020.0002] # LEPCHA DIGIT ZERO
+1C50 ; [.1C3D.0020.0002] # OL CHIKI DIGIT ZERO
+3007 ; [.1C3D.0020.0002] # IDEOGRAPHIC NUMBER ZERO
+A620 ; [.1C3D.0020.0002] # VAI DIGIT ZERO
+A8D0 ; [.1C3D.0020.0002] # SAURASHTRA DIGIT ZERO
+A900 ; [.1C3D.0020.0002] # KAYAH LI DIGIT ZERO
+A9D0 ; [.1C3D.0020.0002] # JAVANESE DIGIT ZERO
+A9F0 ; [.1C3D.0020.0002] # MYANMAR TAI LAING DIGIT ZERO
+AA50 ; [.1C3D.0020.0002] # CHAM DIGIT ZERO
+ABF0 ; [.1C3D.0020.0002] # MEETEI MAYEK DIGIT ZERO
+1018A ; [.1C3D.0020.0002] # GREEK ZERO SIGN
+104A0 ; [.1C3D.0020.0002] # OSMANYA DIGIT ZERO
+11066 ; [.1C3D.0020.0002] # BRAHMI DIGIT ZERO
+110F0 ; [.1C3D.0020.0002] # SORA SOMPENG DIGIT ZERO
+11136 ; [.1C3D.0020.0002] # CHAKMA DIGIT ZERO
+111D0 ; [.1C3D.0020.0002] # SHARADA DIGIT ZERO
+112F0 ; [.1C3D.0020.0002] # KHUDAWADI DIGIT ZERO
+11450 ; [.1C3D.0020.0002] # NEWA DIGIT ZERO
+114D0 ; [.1C3D.0020.0002] # TIRHUTA DIGIT ZERO
+11650 ; [.1C3D.0020.0002] # MODI DIGIT ZERO
+116C0 ; [.1C3D.0020.0002] # TAKRI DIGIT ZERO
+11730 ; [.1C3D.0020.0002] # AHOM DIGIT ZERO
+118E0 ; [.1C3D.0020.0002] # WARANG CITI DIGIT ZERO
+11C50 ; [.1C3D.0020.0002] # BHAIKSUKI DIGIT ZERO
+16A60 ; [.1C3D.0020.0002] # MRO DIGIT ZERO
+16B50 ; [.1C3D.0020.0002] # PAHAWH HMONG DIGIT ZERO
+1E950 ; [.1C3D.0020.0002] # ADLAM DIGIT ZERO
+FF10 ; [.1C3D.0020.0003] # FULLWIDTH DIGIT ZERO
+0F33 ; [.1C3D.0020.0004] # TIBETAN DIGIT HALF ZERO
+1F100 ; [.1C3D.0020.0004][*0277.0020.0004] # DIGIT ZERO FULL STOP
+1F101 ; [.1C3D.0020.0004][*0222.0020.0004] # DIGIT ZERO COMMA
+1D7CE ; [.1C3D.0020.0005] # MATHEMATICAL BOLD DIGIT ZERO
+1D7D8 ; [.1C3D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
+1D7E2 ; [.1C3D.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ZERO
+1D7EC ; [.1C3D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
+1D7F6 ; [.1C3D.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ZERO
+24EA ; [.1C3D.0020.0006] # CIRCLED DIGIT ZERO
+24FF ; [.1C3D.0020.0006] # NEGATIVE CIRCLED DIGIT ZERO
+1F10B ; [.1C3D.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ZERO
+1F10C ; [.1C3D.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+2070 ; [.1C3D.0020.0014] # SUPERSCRIPT ZERO
+2080 ; [.1C3D.0020.0015] # SUBSCRIPT ZERO
+2189 ; [.1C3D.0020.001E][*0626.0020.001E][.1C40.0020.001E] # VULGAR FRACTION ZERO THIRDS
+3358 ; [.1C3D.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+0031 ; [.1C3E.0020.0002] # DIGIT ONE
+0661 ; [.1C3E.0020.0002] # ARABIC-INDIC DIGIT ONE
+06F1 ; [.1C3E.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ONE
+07C1 ; [.1C3E.0020.0002] # NKO DIGIT ONE
+0967 ; [.1C3E.0020.0002] # DEVANAGARI DIGIT ONE
+09E7 ; [.1C3E.0020.0002] # BENGALI DIGIT ONE
+0A67 ; [.1C3E.0020.0002] # GURMUKHI DIGIT ONE
+0AE7 ; [.1C3E.0020.0002] # GUJARATI DIGIT ONE
+0B67 ; [.1C3E.0020.0002] # ORIYA DIGIT ONE
+0BE7 ; [.1C3E.0020.0002] # TAMIL DIGIT ONE
+0C67 ; [.1C3E.0020.0002] # TELUGU DIGIT ONE
+0C79 ; [.1C3E.0020.0002] # TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
+0C7C ; [.1C3E.0020.0002] # TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
+0CE7 ; [.1C3E.0020.0002] # KANNADA DIGIT ONE
+0D67 ; [.1C3E.0020.0002] # MALAYALAM DIGIT ONE
+0DE7 ; [.1C3E.0020.0002] # SINHALA LITH DIGIT ONE
+0E51 ; [.1C3E.0020.0002] # THAI DIGIT ONE
+0ED1 ; [.1C3E.0020.0002] # LAO DIGIT ONE
+0F21 ; [.1C3E.0020.0002] # TIBETAN DIGIT ONE
+1041 ; [.1C3E.0020.0002] # MYANMAR DIGIT ONE
+1091 ; [.1C3E.0020.0002] # MYANMAR SHAN DIGIT ONE
+1369 ; [.1C3E.0020.0002] # ETHIOPIC DIGIT ONE
+17E1 ; [.1C3E.0020.0002] # KHMER DIGIT ONE
+17F1 ; [.1C3E.0020.0002] # KHMER SYMBOL LEK ATTAK MUOY
+1811 ; [.1C3E.0020.0002] # MONGOLIAN DIGIT ONE
+1947 ; [.1C3E.0020.0002] # LIMBU DIGIT ONE
+19D1 ; [.1C3E.0020.0002] # NEW TAI LUE DIGIT ONE
+19DA ; [.1C3E.0020.0002] # NEW TAI LUE THAM DIGIT ONE
+1A81 ; [.1C3E.0020.0002] # TAI THAM HORA DIGIT ONE
+1A91 ; [.1C3E.0020.0002] # TAI THAM THAM DIGIT ONE
+1B51 ; [.1C3E.0020.0002] # BALINESE DIGIT ONE
+1BB1 ; [.1C3E.0020.0002] # SUNDANESE DIGIT ONE
+1C41 ; [.1C3E.0020.0002] # LEPCHA DIGIT ONE
+1C51 ; [.1C3E.0020.0002] # OL CHIKI DIGIT ONE
+3021 ; [.1C3E.0020.0002] # HANGZHOU NUMERAL ONE
+A621 ; [.1C3E.0020.0002] # VAI DIGIT ONE
+A8D1 ; [.1C3E.0020.0002] # SAURASHTRA DIGIT ONE
+A901 ; [.1C3E.0020.0002] # KAYAH LI DIGIT ONE
+A9D1 ; [.1C3E.0020.0002] # JAVANESE DIGIT ONE
+A9F1 ; [.1C3E.0020.0002] # MYANMAR TAI LAING DIGIT ONE
+AA51 ; [.1C3E.0020.0002] # CHAM DIGIT ONE
+ABF1 ; [.1C3E.0020.0002] # MEETEI MAYEK DIGIT ONE
+10107 ; [.1C3E.0020.0002] # AEGEAN NUMBER ONE
+10142 ; [.1C3E.0020.0002] # GREEK ACROPHONIC ATTIC ONE DRACHMA
+10158 ; [.1C3E.0020.0002] # GREEK ACROPHONIC HERAEUM ONE PLETHRON
+10159 ; [.1C3E.0020.0002] # GREEK ACROPHONIC THESPIAN ONE
+1015A ; [.1C3E.0020.0002] # GREEK ACROPHONIC HERMIONIAN ONE
+102E1 ; [.1C3E.0020.0002] # COPTIC EPACT DIGIT ONE
+10320 ; [.1C3E.0020.0002] # OLD ITALIC NUMERAL ONE
+103D1 ; [.1C3E.0020.0002] # OLD PERSIAN NUMBER ONE
+104A1 ; [.1C3E.0020.0002] # OSMANYA DIGIT ONE
+10858 ; [.1C3E.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE
+10879 ; [.1C3E.0020.0002] # PALMYRENE NUMBER ONE
+108A7 ; [.1C3E.0020.0002] # NABATAEAN NUMBER ONE
+108FB ; [.1C3E.0020.0002] # HATRAN NUMBER ONE
+10916 ; [.1C3E.0020.0002] # PHOENICIAN NUMBER ONE
+109C0 ; [.1C3E.0020.0002] # MEROITIC CURSIVE NUMBER ONE
+10A40 ; [.1C3E.0020.0002] # KHAROSHTHI DIGIT ONE
+10A7D ; [.1C3E.0020.0002] # OLD SOUTH ARABIAN NUMBER ONE
+10A9D ; [.1C3E.0020.0002] # OLD NORTH ARABIAN NUMBER ONE
+10AEB ; [.1C3E.0020.0002] # MANICHAEAN NUMBER ONE
+10B58 ; [.1C3E.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE
+10B78 ; [.1C3E.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE
+10BA9 ; [.1C3E.0020.0002] # PSALTER PAHLAVI NUMBER ONE
+10CFA ; [.1C3E.0020.0002] # OLD HUNGARIAN NUMBER ONE
+10E60 ; [.1C3E.0020.0002] # RUMI DIGIT ONE
+11052 ; [.1C3E.0020.0002] # BRAHMI NUMBER ONE
+11067 ; [.1C3E.0020.0002] # BRAHMI DIGIT ONE
+110F1 ; [.1C3E.0020.0002] # SORA SOMPENG DIGIT ONE
+11137 ; [.1C3E.0020.0002] # CHAKMA DIGIT ONE
+111D1 ; [.1C3E.0020.0002] # SHARADA DIGIT ONE
+111E1 ; [.1C3E.0020.0002] # SINHALA ARCHAIC DIGIT ONE
+112F1 ; [.1C3E.0020.0002] # KHUDAWADI DIGIT ONE
+11451 ; [.1C3E.0020.0002] # NEWA DIGIT ONE
+114D1 ; [.1C3E.0020.0002] # TIRHUTA DIGIT ONE
+11651 ; [.1C3E.0020.0002] # MODI DIGIT ONE
+116C1 ; [.1C3E.0020.0002] # TAKRI DIGIT ONE
+11731 ; [.1C3E.0020.0002] # AHOM DIGIT ONE
+118E1 ; [.1C3E.0020.0002] # WARANG CITI DIGIT ONE
+11C51 ; [.1C3E.0020.0002] # BHAIKSUKI DIGIT ONE
+11C5A ; [.1C3E.0020.0002] # BHAIKSUKI NUMBER ONE
+12415 ; [.1C3E.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESH2
+1241E ; [.1C3E.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESHU
+1242C ; [.1C3E.0020.0002] # CUNEIFORM NUMERIC SIGN ONE SHARU
+12434 ; [.1C3E.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BURU
+1244F ; [.1C3E.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BAN2
+12458 ; [.1C3E.0020.0002] # CUNEIFORM NUMERIC SIGN ONE ESHE3
+16A61 ; [.1C3E.0020.0002] # MRO DIGIT ONE
+16B51 ; [.1C3E.0020.0002] # PAHAWH HMONG DIGIT ONE
+1D360 ; [.1C3E.0020.0002] # COUNTING ROD UNIT DIGIT ONE
+1E8C7 ; [.1C3E.0020.0002] # MENDE KIKAKUI DIGIT ONE
+1E951 ; [.1C3E.0020.0002] # ADLAM DIGIT ONE
+FF11 ; [.1C3E.0020.0003] # FULLWIDTH DIGIT ONE
+0F2A ; [.1C3E.0020.0004] # TIBETAN DIGIT HALF ONE
+2474 ; [*0317.0020.0004][.1C3E.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT ONE
+2488 ; [.1C3E.0020.0004][*0277.0020.0004] # DIGIT ONE FULL STOP
+1F102 ; [.1C3E.0020.0004][*0222.0020.0004] # DIGIT ONE COMMA
+1D7CF ; [.1C3E.0020.0005] # MATHEMATICAL BOLD DIGIT ONE
+1D7D9 ; [.1C3E.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
+1D7E3 ; [.1C3E.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ONE
+1D7ED ; [.1C3E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
+1D7F7 ; [.1C3E.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ONE
+2460 ; [.1C3E.0020.0006] # CIRCLED DIGIT ONE
+24F5 ; [.1C3E.0020.0006] # DOUBLE CIRCLED DIGIT ONE
+2776 ; [.1C3E.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT ONE
+2780 ; [.1C3E.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
+278A ; [.1C3E.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
+00B9 ; [.1C3E.0020.0014] # SUPERSCRIPT ONE
+2081 ; [.1C3E.0020.0015] # SUBSCRIPT ONE
+215F ; [.1C3E.0020.001E][*0626.0020.001E] # FRACTION NUMERATOR ONE
+247D ; [*0317.0020.0004][.1C3E.0020.0004][.1C3D.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER TEN
+2491 ; [.1C3E.0020.0004][.1C3D.0020.0004][*0277.0020.0004] # NUMBER TEN FULL STOP
+2469 ; [.1C3E.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER TEN
+24FE ; [.1C3E.0020.0006][.1C3D.0020.0006] # DOUBLE CIRCLED NUMBER TEN
+277F ; [.1C3E.0020.0006][.1C3D.0020.0006] # DINGBAT NEGATIVE CIRCLED NUMBER TEN
+2789 ; [.1C3E.0020.0006][.1C3D.0020.0006] # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
+2793 ; [.1C3E.0020.0006][.1C3D.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+3248 ; [.1C3E.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER TEN ON BLACK SQUARE
+33E9 ; [.1C3E.0020.0004][.1C3D.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+32C9 ; [.1C3E.0020.0004][.1C3D.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+3362 ; [.1C3E.0020.0004][.1C3D.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+247E ; [*0317.0020.0004][.1C3E.0020.0004][.1C3E.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER ELEVEN
+2492 ; [.1C3E.0020.0004][.1C3E.0020.0004][*0277.0020.0004] # NUMBER ELEVEN FULL STOP
+246A ; [.1C3E.0020.0006][.1C3E.0020.0006] # CIRCLED NUMBER ELEVEN
+24EB ; [.1C3E.0020.0006][.1C3E.0020.0006] # NEGATIVE CIRCLED NUMBER ELEVEN
+2152 ; [.1C3E.0020.001E][*0626.0020.001E][.1C3E.0020.001E][.1C3D.0020.001E] # VULGAR FRACTION ONE TENTH
+33EA ; [.1C3E.0020.0004][.1C3E.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+32CA ; [.1C3E.0020.0004][.1C3E.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+3363 ; [.1C3E.0020.0004][.1C3E.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+247F ; [*0317.0020.0004][.1C3E.0020.0004][.1C3F.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER TWELVE
+2493 ; [.1C3E.0020.0004][.1C3F.0020.0004][*0277.0020.0004] # NUMBER TWELVE FULL STOP
+246B ; [.1C3E.0020.0006][.1C3F.0020.0006] # CIRCLED NUMBER TWELVE
+24EC ; [.1C3E.0020.0006][.1C3F.0020.0006] # NEGATIVE CIRCLED NUMBER TWELVE
+00BD ; [.1C3E.0020.001E][*0626.0020.001E][.1C3F.0020.001E] # VULGAR FRACTION ONE HALF
+1F1A4 ; [.1C3E.0020.001C][.1C3F.0020.001C][.1C3D.0020.001C][.1E0C.0020.001D] # SQUARED ONE HUNDRED TWENTY P
+33EB ; [.1C3E.0020.0004][.1C3F.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+32CB ; [.1C3E.0020.0004][.1C3F.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+3364 ; [.1C3E.0020.0004][.1C3F.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+2480 ; [*0317.0020.0004][.1C3E.0020.0004][.1C40.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER THIRTEEN
+2494 ; [.1C3E.0020.0004][.1C40.0020.0004][*0277.0020.0004] # NUMBER THIRTEEN FULL STOP
+246C ; [.1C3E.0020.0006][.1C40.0020.0006] # CIRCLED NUMBER THIRTEEN
+24ED ; [.1C3E.0020.0006][.1C40.0020.0006] # NEGATIVE CIRCLED NUMBER THIRTEEN
+2153 ; [.1C3E.0020.001E][*0626.0020.001E][.1C40.0020.001E] # VULGAR FRACTION ONE THIRD
+33EC ; [.1C3E.0020.0004][.1C40.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+3365 ; [.1C3E.0020.0004][.1C40.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+2481 ; [*0317.0020.0004][.1C3E.0020.0004][.1C41.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER FOURTEEN
+2495 ; [.1C3E.0020.0004][.1C41.0020.0004][*0277.0020.0004] # NUMBER FOURTEEN FULL STOP
+246D ; [.1C3E.0020.0006][.1C41.0020.0006] # CIRCLED NUMBER FOURTEEN
+24EE ; [.1C3E.0020.0006][.1C41.0020.0006] # NEGATIVE CIRCLED NUMBER FOURTEEN
+00BC ; [.1C3E.0020.001E][*0626.0020.001E][.1C41.0020.001E] # VULGAR FRACTION ONE QUARTER
+33ED ; [.1C3E.0020.0004][.1C41.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+3366 ; [.1C3E.0020.0004][.1C41.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+2482 ; [*0317.0020.0004][.1C3E.0020.0004][.1C42.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER FIFTEEN
+2496 ; [.1C3E.0020.0004][.1C42.0020.0004][*0277.0020.0004] # NUMBER FIFTEEN FULL STOP
+246E ; [.1C3E.0020.0006][.1C42.0020.0006] # CIRCLED NUMBER FIFTEEN
+24EF ; [.1C3E.0020.0006][.1C42.0020.0006] # NEGATIVE CIRCLED NUMBER FIFTEEN
+2155 ; [.1C3E.0020.001E][*0626.0020.001E][.1C42.0020.001E] # VULGAR FRACTION ONE FIFTH
+33EE ; [.1C3E.0020.0004][.1C42.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+3367 ; [.1C3E.0020.0004][.1C42.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+2483 ; [*0317.0020.0004][.1C3E.0020.0004][.1C43.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER SIXTEEN
+2497 ; [.1C3E.0020.0004][.1C43.0020.0004][*0277.0020.0004] # NUMBER SIXTEEN FULL STOP
+246F ; [.1C3E.0020.0006][.1C43.0020.0006] # CIRCLED NUMBER SIXTEEN
+24F0 ; [.1C3E.0020.0006][.1C43.0020.0006] # NEGATIVE CIRCLED NUMBER SIXTEEN
+2159 ; [.1C3E.0020.001E][*0626.0020.001E][.1C43.0020.001E] # VULGAR FRACTION ONE SIXTH
+33EF ; [.1C3E.0020.0004][.1C43.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+3368 ; [.1C3E.0020.0004][.1C43.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+2484 ; [*0317.0020.0004][.1C3E.0020.0004][.1C44.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER SEVENTEEN
+2498 ; [.1C3E.0020.0004][.1C44.0020.0004][*0277.0020.0004] # NUMBER SEVENTEEN FULL STOP
+2470 ; [.1C3E.0020.0006][.1C44.0020.0006] # CIRCLED NUMBER SEVENTEEN
+24F1 ; [.1C3E.0020.0006][.1C44.0020.0006] # NEGATIVE CIRCLED NUMBER SEVENTEEN
+2150 ; [.1C3E.0020.001E][*0626.0020.001E][.1C44.0020.001E] # VULGAR FRACTION ONE SEVENTH
+33F0 ; [.1C3E.0020.0004][.1C44.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+3369 ; [.1C3E.0020.0004][.1C44.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+2485 ; [*0317.0020.0004][.1C3E.0020.0004][.1C45.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER EIGHTEEN
+2499 ; [.1C3E.0020.0004][.1C45.0020.0004][*0277.0020.0004] # NUMBER EIGHTEEN FULL STOP
+2471 ; [.1C3E.0020.0006][.1C45.0020.0006] # CIRCLED NUMBER EIGHTEEN
+24F2 ; [.1C3E.0020.0006][.1C45.0020.0006] # NEGATIVE CIRCLED NUMBER EIGHTEEN
+215B ; [.1C3E.0020.001E][*0626.0020.001E][.1C45.0020.001E] # VULGAR FRACTION ONE EIGHTH
+33F1 ; [.1C3E.0020.0004][.1C45.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+336A ; [.1C3E.0020.0004][.1C45.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+2486 ; [*0317.0020.0004][.1C3E.0020.0004][.1C46.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER NINETEEN
+249A ; [.1C3E.0020.0004][.1C46.0020.0004][*0277.0020.0004] # NUMBER NINETEEN FULL STOP
+2472 ; [.1C3E.0020.0006][.1C46.0020.0006] # CIRCLED NUMBER NINETEEN
+24F3 ; [.1C3E.0020.0006][.1C46.0020.0006] # NEGATIVE CIRCLED NUMBER NINETEEN
+2151 ; [.1C3E.0020.001E][*0626.0020.001E][.1C46.0020.001E] # VULGAR FRACTION ONE NINTH
+33F2 ; [.1C3E.0020.0004][.1C46.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+336B ; [.1C3E.0020.0004][.1C46.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+33E0 ; [.1C3E.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+32C0 ; [.1C3E.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+3359 ; [.1C3E.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+0032 ; [.1C3F.0020.0002] # DIGIT TWO
+0662 ; [.1C3F.0020.0002] # ARABIC-INDIC DIGIT TWO
+06F2 ; [.1C3F.0020.0002] # EXTENDED ARABIC-INDIC DIGIT TWO
+07C2 ; [.1C3F.0020.0002] # NKO DIGIT TWO
+0968 ; [.1C3F.0020.0002] # DEVANAGARI DIGIT TWO
+09E8 ; [.1C3F.0020.0002] # BENGALI DIGIT TWO
+0A68 ; [.1C3F.0020.0002] # GURMUKHI DIGIT TWO
+0AE8 ; [.1C3F.0020.0002] # GUJARATI DIGIT TWO
+0B68 ; [.1C3F.0020.0002] # ORIYA DIGIT TWO
+0BE8 ; [.1C3F.0020.0002] # TAMIL DIGIT TWO
+0C68 ; [.1C3F.0020.0002] # TELUGU DIGIT TWO
+0C7A ; [.1C3F.0020.0002] # TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
+0C7D ; [.1C3F.0020.0002] # TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
+0CE8 ; [.1C3F.0020.0002] # KANNADA DIGIT TWO
+0D68 ; [.1C3F.0020.0002] # MALAYALAM DIGIT TWO
+0DE8 ; [.1C3F.0020.0002] # SINHALA LITH DIGIT TWO
+0E52 ; [.1C3F.0020.0002] # THAI DIGIT TWO
+0ED2 ; [.1C3F.0020.0002] # LAO DIGIT TWO
+0F22 ; [.1C3F.0020.0002] # TIBETAN DIGIT TWO
+1042 ; [.1C3F.0020.0002] # MYANMAR DIGIT TWO
+1092 ; [.1C3F.0020.0002] # MYANMAR SHAN DIGIT TWO
+136A ; [.1C3F.0020.0002] # ETHIOPIC DIGIT TWO
+17E2 ; [.1C3F.0020.0002] # KHMER DIGIT TWO
+17F2 ; [.1C3F.0020.0002] # KHMER SYMBOL LEK ATTAK PII
+1812 ; [.1C3F.0020.0002] # MONGOLIAN DIGIT TWO
+1948 ; [.1C3F.0020.0002] # LIMBU DIGIT TWO
+19D2 ; [.1C3F.0020.0002] # NEW TAI LUE DIGIT TWO
+1A82 ; [.1C3F.0020.0002] # TAI THAM HORA DIGIT TWO
+1A92 ; [.1C3F.0020.0002] # TAI THAM THAM DIGIT TWO
+1B52 ; [.1C3F.0020.0002] # BALINESE DIGIT TWO
+1BB2 ; [.1C3F.0020.0002] # SUNDANESE DIGIT TWO
+1C42 ; [.1C3F.0020.0002] # LEPCHA DIGIT TWO
+1C52 ; [.1C3F.0020.0002] # OL CHIKI DIGIT TWO
+3022 ; [.1C3F.0020.0002] # HANGZHOU NUMERAL TWO
+A622 ; [.1C3F.0020.0002] # VAI DIGIT TWO
+A8D2 ; [.1C3F.0020.0002] # SAURASHTRA DIGIT TWO
+A902 ; [.1C3F.0020.0002] # KAYAH LI DIGIT TWO
+A9D2 ; [.1C3F.0020.0002] # JAVANESE DIGIT TWO
+A9F2 ; [.1C3F.0020.0002] # MYANMAR TAI LAING DIGIT TWO
+AA52 ; [.1C3F.0020.0002] # CHAM DIGIT TWO
+ABF2 ; [.1C3F.0020.0002] # MEETEI MAYEK DIGIT TWO
+10108 ; [.1C3F.0020.0002] # AEGEAN NUMBER TWO
+1015B ; [.1C3F.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO
+1015C ; [.1C3F.0020.0002] # GREEK ACROPHONIC THESPIAN TWO
+1015D ; [.1C3F.0020.0002] # GREEK ACROPHONIC CYRENAIC TWO DRACHMAS
+1015E ; [.1C3F.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
+102E2 ; [.1C3F.0020.0002] # COPTIC EPACT DIGIT TWO
+103D2 ; [.1C3F.0020.0002] # OLD PERSIAN NUMBER TWO
+104A2 ; [.1C3F.0020.0002] # OSMANYA DIGIT TWO
+10859 ; [.1C3F.0020.0002] # IMPERIAL ARAMAIC NUMBER TWO
+1087A ; [.1C3F.0020.0002] # PALMYRENE NUMBER TWO
+108A8 ; [.1C3F.0020.0002] # NABATAEAN NUMBER TWO
+1091A ; [.1C3F.0020.0002] # PHOENICIAN NUMBER TWO
+109C1 ; [.1C3F.0020.0002] # MEROITIC CURSIVE NUMBER TWO
+10A41 ; [.1C3F.0020.0002] # KHAROSHTHI DIGIT TWO
+10B59 ; [.1C3F.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWO
+10B79 ; [.1C3F.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWO
+10BAA ; [.1C3F.0020.0002] # PSALTER PAHLAVI NUMBER TWO
+10E61 ; [.1C3F.0020.0002] # RUMI DIGIT TWO
+11053 ; [.1C3F.0020.0002] # BRAHMI NUMBER TWO
+11068 ; [.1C3F.0020.0002] # BRAHMI DIGIT TWO
+110F2 ; [.1C3F.0020.0002] # SORA SOMPENG DIGIT TWO
+11138 ; [.1C3F.0020.0002] # CHAKMA DIGIT TWO
+111D2 ; [.1C3F.0020.0002] # SHARADA DIGIT TWO
+111E2 ; [.1C3F.0020.0002] # SINHALA ARCHAIC DIGIT TWO
+112F2 ; [.1C3F.0020.0002] # KHUDAWADI DIGIT TWO
+11452 ; [.1C3F.0020.0002] # NEWA DIGIT TWO
+114D2 ; [.1C3F.0020.0002] # TIRHUTA DIGIT TWO
+11652 ; [.1C3F.0020.0002] # MODI DIGIT TWO
+116C2 ; [.1C3F.0020.0002] # TAKRI DIGIT TWO
+11732 ; [.1C3F.0020.0002] # AHOM DIGIT TWO
+118E2 ; [.1C3F.0020.0002] # WARANG CITI DIGIT TWO
+11C52 ; [.1C3F.0020.0002] # BHAIKSUKI DIGIT TWO
+11C5B ; [.1C3F.0020.0002] # BHAIKSUKI NUMBER TWO
+12400 ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH
+12416 ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESH2
+1241F ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESHU
+12423 ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHAR2
+1242D ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHARU
+12435 ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BURU
+1244A ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH TENU
+12450 ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BAN2
+12456 ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAMIN
+12459 ; [.1C3F.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ESHE3
+16A62 ; [.1C3F.0020.0002] # MRO DIGIT TWO
+16B52 ; [.1C3F.0020.0002] # PAHAWH HMONG DIGIT TWO
+1D361 ; [.1C3F.0020.0002] # COUNTING ROD UNIT DIGIT TWO
+1E8C8 ; [.1C3F.0020.0002] # MENDE KIKAKUI DIGIT TWO
+1E952 ; [.1C3F.0020.0002] # ADLAM DIGIT TWO
+FF12 ; [.1C3F.0020.0003] # FULLWIDTH DIGIT TWO
+0F2B ; [.1C3F.0020.0004] # TIBETAN DIGIT HALF TWO
+2475 ; [*0317.0020.0004][.1C3F.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT TWO
+2489 ; [.1C3F.0020.0004][*0277.0020.0004] # DIGIT TWO FULL STOP
+1F103 ; [.1C3F.0020.0004][*0222.0020.0004] # DIGIT TWO COMMA
+1D7D0 ; [.1C3F.0020.0005] # MATHEMATICAL BOLD DIGIT TWO
+1D7DA ; [.1C3F.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
+1D7E4 ; [.1C3F.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT TWO
+1D7EE ; [.1C3F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
+1D7F8 ; [.1C3F.0020.0005] # MATHEMATICAL MONOSPACE DIGIT TWO
+2461 ; [.1C3F.0020.0006] # CIRCLED DIGIT TWO
+24F6 ; [.1C3F.0020.0006] # DOUBLE CIRCLED DIGIT TWO
+2777 ; [.1C3F.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT TWO
+2781 ; [.1C3F.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
+278B ; [.1C3F.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
+00B2 ; [.1C3F.0020.0014] # SUPERSCRIPT TWO
+2082 ; [.1C3F.0020.0015] # SUBSCRIPT TWO
+2487 ; [*0317.0020.0004][.1C3F.0020.0004][.1C3D.0020.0004][*0318.0020.0004] # PARENTHESIZED NUMBER TWENTY
+249B ; [.1C3F.0020.0004][.1C3D.0020.0004][*0277.0020.0004] # NUMBER TWENTY FULL STOP
+2473 ; [.1C3F.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER TWENTY
+24F4 ; [.1C3F.0020.0006][.1C3D.0020.0006] # NEGATIVE CIRCLED NUMBER TWENTY
+3249 ; [.1C3F.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER TWENTY ON BLACK SQUARE
+33F3 ; [.1C3F.0020.0004][.1C3D.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+336C ; [.1C3F.0020.0004][.1C3D.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+3251 ; [.1C3F.0020.0006][.1C3E.0020.0006] # CIRCLED NUMBER TWENTY ONE
+33F4 ; [.1C3F.0020.0004][.1C3E.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+336D ; [.1C3F.0020.0004][.1C3E.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+3252 ; [.1C3F.0020.0006][.1C3F.0020.0006] # CIRCLED NUMBER TWENTY TWO
+1F1A2 ; [.1C3F.0020.001C][.1C3F.0020.001C][*0277.0020.001C][.1C3F.0020.001C] # SQUARED TWENTY-TWO POINT TWO
+33F5 ; [.1C3F.0020.0004][.1C3F.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+336E ; [.1C3F.0020.0004][.1C3F.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+3253 ; [.1C3F.0020.0006][.1C40.0020.0006] # CIRCLED NUMBER TWENTY THREE
+2154 ; [.1C3F.0020.001E][*0626.0020.001E][.1C40.0020.001E] # VULGAR FRACTION TWO THIRDS
+33F6 ; [.1C3F.0020.0004][.1C40.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+336F ; [.1C3F.0020.0004][.1C40.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+3254 ; [.1C3F.0020.0006][.1C41.0020.0006] # CIRCLED NUMBER TWENTY FOUR
+33F7 ; [.1C3F.0020.0004][.1C41.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+3370 ; [.1C3F.0020.0004][.1C41.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3255 ; [.1C3F.0020.0006][.1C42.0020.0006] # CIRCLED NUMBER TWENTY FIVE
+2156 ; [.1C3F.0020.001E][*0626.0020.001E][.1C42.0020.001E] # VULGAR FRACTION TWO FIFTHS
+33F8 ; [.1C3F.0020.0004][.1C42.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+3256 ; [.1C3F.0020.0006][.1C43.0020.0006] # CIRCLED NUMBER TWENTY SIX
+33F9 ; [.1C3F.0020.0004][.1C43.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+3257 ; [.1C3F.0020.0006][.1C44.0020.0006] # CIRCLED NUMBER TWENTY SEVEN
+33FA ; [.1C3F.0020.0004][.1C44.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+3258 ; [.1C3F.0020.0006][.1C45.0020.0006] # CIRCLED NUMBER TWENTY EIGHT
+33FB ; [.1C3F.0020.0004][.1C45.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+3259 ; [.1C3F.0020.0006][.1C46.0020.0006] # CIRCLED NUMBER TWENTY NINE
+33FC ; [.1C3F.0020.0004][.1C46.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+1F19D ; [.1C3F.0020.001C][.1D65.0020.001D] # SQUARED TWO K
+1F19C ; [.1C3F.0020.001C][.1DB9.0020.001C][.1C8F.0020.001C][*0209.0020.001C][.1E71.0020.001D][.1C7A.0020.001C][.1E33.0020.001C] # SQUARED SECOND SCREEN
+33E1 ; [.1C3F.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+32C1 ; [.1C3F.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+335A ; [.1C3F.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+0033 ; [.1C40.0020.0002] # DIGIT THREE
+0663 ; [.1C40.0020.0002] # ARABIC-INDIC DIGIT THREE
+06F3 ; [.1C40.0020.0002] # EXTENDED ARABIC-INDIC DIGIT THREE
+07C3 ; [.1C40.0020.0002] # NKO DIGIT THREE
+0969 ; [.1C40.0020.0002] # DEVANAGARI DIGIT THREE
+09E9 ; [.1C40.0020.0002] # BENGALI DIGIT THREE
+0A69 ; [.1C40.0020.0002] # GURMUKHI DIGIT THREE
+0AE9 ; [.1C40.0020.0002] # GUJARATI DIGIT THREE
+0B69 ; [.1C40.0020.0002] # ORIYA DIGIT THREE
+0BE9 ; [.1C40.0020.0002] # TAMIL DIGIT THREE
+0C69 ; [.1C40.0020.0002] # TELUGU DIGIT THREE
+0C7B ; [.1C40.0020.0002] # TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
+0C7E ; [.1C40.0020.0002] # TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0CE9 ; [.1C40.0020.0002] # KANNADA DIGIT THREE
+0D69 ; [.1C40.0020.0002] # MALAYALAM DIGIT THREE
+0DE9 ; [.1C40.0020.0002] # SINHALA LITH DIGIT THREE
+0E53 ; [.1C40.0020.0002] # THAI DIGIT THREE
+0ED3 ; [.1C40.0020.0002] # LAO DIGIT THREE
+0F23 ; [.1C40.0020.0002] # TIBETAN DIGIT THREE
+1043 ; [.1C40.0020.0002] # MYANMAR DIGIT THREE
+1093 ; [.1C40.0020.0002] # MYANMAR SHAN DIGIT THREE
+136B ; [.1C40.0020.0002] # ETHIOPIC DIGIT THREE
+17E3 ; [.1C40.0020.0002] # KHMER DIGIT THREE
+17F3 ; [.1C40.0020.0002] # KHMER SYMBOL LEK ATTAK BEI
+1813 ; [.1C40.0020.0002] # MONGOLIAN DIGIT THREE
+1949 ; [.1C40.0020.0002] # LIMBU DIGIT THREE
+19D3 ; [.1C40.0020.0002] # NEW TAI LUE DIGIT THREE
+1A83 ; [.1C40.0020.0002] # TAI THAM HORA DIGIT THREE
+1A93 ; [.1C40.0020.0002] # TAI THAM THAM DIGIT THREE
+1B53 ; [.1C40.0020.0002] # BALINESE DIGIT THREE
+1BB3 ; [.1C40.0020.0002] # SUNDANESE DIGIT THREE
+1C43 ; [.1C40.0020.0002] # LEPCHA DIGIT THREE
+1C53 ; [.1C40.0020.0002] # OL CHIKI DIGIT THREE
+3023 ; [.1C40.0020.0002] # HANGZHOU NUMERAL THREE
+A623 ; [.1C40.0020.0002] # VAI DIGIT THREE
+A8D3 ; [.1C40.0020.0002] # SAURASHTRA DIGIT THREE
+A903 ; [.1C40.0020.0002] # KAYAH LI DIGIT THREE
+A9D3 ; [.1C40.0020.0002] # JAVANESE DIGIT THREE
+A9F3 ; [.1C40.0020.0002] # MYANMAR TAI LAING DIGIT THREE
+AA53 ; [.1C40.0020.0002] # CHAM DIGIT THREE
+ABF3 ; [.1C40.0020.0002] # MEETEI MAYEK DIGIT THREE
+10109 ; [.1C40.0020.0002] # AEGEAN NUMBER THREE
+102E3 ; [.1C40.0020.0002] # COPTIC EPACT DIGIT THREE
+104A3 ; [.1C40.0020.0002] # OSMANYA DIGIT THREE
+1085A ; [.1C40.0020.0002] # IMPERIAL ARAMAIC NUMBER THREE
+1087B ; [.1C40.0020.0002] # PALMYRENE NUMBER THREE
+108A9 ; [.1C40.0020.0002] # NABATAEAN NUMBER THREE
+1091B ; [.1C40.0020.0002] # PHOENICIAN NUMBER THREE
+109C2 ; [.1C40.0020.0002] # MEROITIC CURSIVE NUMBER THREE
+10A42 ; [.1C40.0020.0002] # KHAROSHTHI DIGIT THREE
+10B5A ; [.1C40.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER THREE
+10B7A ; [.1C40.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER THREE
+10BAB ; [.1C40.0020.0002] # PSALTER PAHLAVI NUMBER THREE
+10E62 ; [.1C40.0020.0002] # RUMI DIGIT THREE
+11054 ; [.1C40.0020.0002] # BRAHMI NUMBER THREE
+11069 ; [.1C40.0020.0002] # BRAHMI DIGIT THREE
+110F3 ; [.1C40.0020.0002] # SORA SOMPENG DIGIT THREE
+11139 ; [.1C40.0020.0002] # CHAKMA DIGIT THREE
+111D3 ; [.1C40.0020.0002] # SHARADA DIGIT THREE
+111E3 ; [.1C40.0020.0002] # SINHALA ARCHAIC DIGIT THREE
+112F3 ; [.1C40.0020.0002] # KHUDAWADI DIGIT THREE
+11453 ; [.1C40.0020.0002] # NEWA DIGIT THREE
+114D3 ; [.1C40.0020.0002] # TIRHUTA DIGIT THREE
+11653 ; [.1C40.0020.0002] # MODI DIGIT THREE
+116C3 ; [.1C40.0020.0002] # TAKRI DIGIT THREE
+11733 ; [.1C40.0020.0002] # AHOM DIGIT THREE
+118E3 ; [.1C40.0020.0002] # WARANG CITI DIGIT THREE
+11C53 ; [.1C40.0020.0002] # BHAIKSUKI DIGIT THREE
+11C5C ; [.1C40.0020.0002] # BHAIKSUKI NUMBER THREE
+12401 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH
+12408 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE DISH
+12417 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESH2
+12420 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESHU
+12424 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2
+12425 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
+1242E ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU
+1242F ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
+12436 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU
+12437 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
+1243A ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16
+1243B ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
+1244B ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH TENU
+12451 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BAN2
+12457 ; [.1C40.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAESH
+16A63 ; [.1C40.0020.0002] # MRO DIGIT THREE
+16B53 ; [.1C40.0020.0002] # PAHAWH HMONG DIGIT THREE
+1D362 ; [.1C40.0020.0002] # COUNTING ROD UNIT DIGIT THREE
+1E8C9 ; [.1C40.0020.0002] # MENDE KIKAKUI DIGIT THREE
+1E953 ; [.1C40.0020.0002] # ADLAM DIGIT THREE
+FF13 ; [.1C40.0020.0003] # FULLWIDTH DIGIT THREE
+0F2C ; [.1C40.0020.0004] # TIBETAN DIGIT HALF THREE
+2476 ; [*0317.0020.0004][.1C40.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT THREE
+248A ; [.1C40.0020.0004][*0277.0020.0004] # DIGIT THREE FULL STOP
+1F104 ; [.1C40.0020.0004][*0222.0020.0004] # DIGIT THREE COMMA
+1D7D1 ; [.1C40.0020.0005] # MATHEMATICAL BOLD DIGIT THREE
+1D7DB ; [.1C40.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
+1D7E5 ; [.1C40.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT THREE
+1D7EF ; [.1C40.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
+1D7F9 ; [.1C40.0020.0005] # MATHEMATICAL MONOSPACE DIGIT THREE
+2462 ; [.1C40.0020.0006] # CIRCLED DIGIT THREE
+24F7 ; [.1C40.0020.0006] # DOUBLE CIRCLED DIGIT THREE
+2778 ; [.1C40.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT THREE
+2782 ; [.1C40.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
+278C ; [.1C40.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
+00B3 ; [.1C40.0020.0014] # SUPERSCRIPT THREE
+2083 ; [.1C40.0020.0015] # SUBSCRIPT THREE
+324A ; [.1C40.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER THIRTY ON BLACK SQUARE
+325A ; [.1C40.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER THIRTY
+33FD ; [.1C40.0020.0004][.1C3D.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+325B ; [.1C40.0020.0006][.1C3E.0020.0006] # CIRCLED NUMBER THIRTY ONE
+33FE ; [.1C40.0020.0004][.1C3E.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+325C ; [.1C40.0020.0006][.1C3F.0020.0006] # CIRCLED NUMBER THIRTY TWO
+325D ; [.1C40.0020.0006][.1C40.0020.0006] # CIRCLED NUMBER THIRTY THREE
+325E ; [.1C40.0020.0006][.1C41.0020.0006] # CIRCLED NUMBER THIRTY FOUR
+00BE ; [.1C40.0020.001E][*0626.0020.001E][.1C41.0020.001E] # VULGAR FRACTION THREE QUARTERS
+325F ; [.1C40.0020.0006][.1C42.0020.0006] # CIRCLED NUMBER THIRTY FIVE
+2157 ; [.1C40.0020.001E][*0626.0020.001E][.1C42.0020.001E] # VULGAR FRACTION THREE FIFTHS
+32B1 ; [.1C40.0020.0006][.1C43.0020.0006] # CIRCLED NUMBER THIRTY SIX
+32B2 ; [.1C40.0020.0006][.1C44.0020.0006] # CIRCLED NUMBER THIRTY SEVEN
+32B3 ; [.1C40.0020.0006][.1C45.0020.0006] # CIRCLED NUMBER THIRTY EIGHT
+215C ; [.1C40.0020.001E][*0626.0020.001E][.1C45.0020.001E] # VULGAR FRACTION THREE EIGHTHS
+32B4 ; [.1C40.0020.0006][.1C46.0020.0006] # CIRCLED NUMBER THIRTY NINE
+1F19B ; [.1C40.0020.001C][.1C8F.0020.001D] # SQUARED THREE D
+33E2 ; [.1C40.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+32C2 ; [.1C40.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+335B ; [.1C40.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+0034 ; [.1C41.0020.0002] # DIGIT FOUR
+0664 ; [.1C41.0020.0002] # ARABIC-INDIC DIGIT FOUR
+06F4 ; [.1C41.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FOUR
+07C4 ; [.1C41.0020.0002] # NKO DIGIT FOUR
+096A ; [.1C41.0020.0002] # DEVANAGARI DIGIT FOUR
+09EA ; [.1C41.0020.0002] # BENGALI DIGIT FOUR
+0A6A ; [.1C41.0020.0002] # GURMUKHI DIGIT FOUR
+0AEA ; [.1C41.0020.0002] # GUJARATI DIGIT FOUR
+0B6A ; [.1C41.0020.0002] # ORIYA DIGIT FOUR
+0BEA ; [.1C41.0020.0002] # TAMIL DIGIT FOUR
+0C6A ; [.1C41.0020.0002] # TELUGU DIGIT FOUR
+0CEA ; [.1C41.0020.0002] # KANNADA DIGIT FOUR
+0D6A ; [.1C41.0020.0002] # MALAYALAM DIGIT FOUR
+0DEA ; [.1C41.0020.0002] # SINHALA LITH DIGIT FOUR
+0E54 ; [.1C41.0020.0002] # THAI DIGIT FOUR
+0ED4 ; [.1C41.0020.0002] # LAO DIGIT FOUR
+0F24 ; [.1C41.0020.0002] # TIBETAN DIGIT FOUR
+1044 ; [.1C41.0020.0002] # MYANMAR DIGIT FOUR
+1094 ; [.1C41.0020.0002] # MYANMAR SHAN DIGIT FOUR
+136C ; [.1C41.0020.0002] # ETHIOPIC DIGIT FOUR
+17E4 ; [.1C41.0020.0002] # KHMER DIGIT FOUR
+17F4 ; [.1C41.0020.0002] # KHMER SYMBOL LEK ATTAK BUON
+1814 ; [.1C41.0020.0002] # MONGOLIAN DIGIT FOUR
+194A ; [.1C41.0020.0002] # LIMBU DIGIT FOUR
+19D4 ; [.1C41.0020.0002] # NEW TAI LUE DIGIT FOUR
+1A84 ; [.1C41.0020.0002] # TAI THAM HORA DIGIT FOUR
+1A94 ; [.1C41.0020.0002] # TAI THAM THAM DIGIT FOUR
+1B54 ; [.1C41.0020.0002] # BALINESE DIGIT FOUR
+1BB4 ; [.1C41.0020.0002] # SUNDANESE DIGIT FOUR
+1C44 ; [.1C41.0020.0002] # LEPCHA DIGIT FOUR
+1C54 ; [.1C41.0020.0002] # OL CHIKI DIGIT FOUR
+3024 ; [.1C41.0020.0002] # HANGZHOU NUMERAL FOUR
+A624 ; [.1C41.0020.0002] # VAI DIGIT FOUR
+A8D4 ; [.1C41.0020.0002] # SAURASHTRA DIGIT FOUR
+A904 ; [.1C41.0020.0002] # KAYAH LI DIGIT FOUR
+A9D4 ; [.1C41.0020.0002] # JAVANESE DIGIT FOUR
+A9F4 ; [.1C41.0020.0002] # MYANMAR TAI LAING DIGIT FOUR
+AA54 ; [.1C41.0020.0002] # CHAM DIGIT FOUR
+ABF4 ; [.1C41.0020.0002] # MEETEI MAYEK DIGIT FOUR
+1010A ; [.1C41.0020.0002] # AEGEAN NUMBER FOUR
+102E4 ; [.1C41.0020.0002] # COPTIC EPACT DIGIT FOUR
+104A4 ; [.1C41.0020.0002] # OSMANYA DIGIT FOUR
+1087C ; [.1C41.0020.0002] # PALMYRENE NUMBER FOUR
+108AA ; [.1C41.0020.0002] # NABATAEAN NUMBER FOUR
+108AB ; [.1C41.0020.0002] # NABATAEAN CRUCIFORM NUMBER FOUR
+109C3 ; [.1C41.0020.0002] # MEROITIC CURSIVE NUMBER FOUR
+10A43 ; [.1C41.0020.0002] # KHAROSHTHI DIGIT FOUR
+10B5B ; [.1C41.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER FOUR
+10B7B ; [.1C41.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER FOUR
+10BAC ; [.1C41.0020.0002] # PSALTER PAHLAVI NUMBER FOUR
+10E63 ; [.1C41.0020.0002] # RUMI DIGIT FOUR
+11055 ; [.1C41.0020.0002] # BRAHMI NUMBER FOUR
+1106A ; [.1C41.0020.0002] # BRAHMI DIGIT FOUR
+110F4 ; [.1C41.0020.0002] # SORA SOMPENG DIGIT FOUR
+1113A ; [.1C41.0020.0002] # CHAKMA DIGIT FOUR
+111D4 ; [.1C41.0020.0002] # SHARADA DIGIT FOUR
+111E4 ; [.1C41.0020.0002] # SINHALA ARCHAIC DIGIT FOUR
+112F4 ; [.1C41.0020.0002] # KHUDAWADI DIGIT FOUR
+11454 ; [.1C41.0020.0002] # NEWA DIGIT FOUR
+114D4 ; [.1C41.0020.0002] # TIRHUTA DIGIT FOUR
+11654 ; [.1C41.0020.0002] # MODI DIGIT FOUR
+116C4 ; [.1C41.0020.0002] # TAKRI DIGIT FOUR
+11734 ; [.1C41.0020.0002] # AHOM DIGIT FOUR
+118E4 ; [.1C41.0020.0002] # WARANG CITI DIGIT FOUR
+11C54 ; [.1C41.0020.0002] # BHAIKSUKI DIGIT FOUR
+11C5D ; [.1C41.0020.0002] # BHAIKSUKI NUMBER FOUR
+12402 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH
+12409 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR DISH
+1240F ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U
+12418 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESH2
+12421 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESHU
+12426 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHAR2
+12430 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHARU
+12438 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BURU
+1243C ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU
+1243D ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4
+1243E ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A
+1243F ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
+1244C ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH TENU
+12452 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2
+12453 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
+12469 ; [.1C41.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM
+16A64 ; [.1C41.0020.0002] # MRO DIGIT FOUR
+16B54 ; [.1C41.0020.0002] # PAHAWH HMONG DIGIT FOUR
+1D363 ; [.1C41.0020.0002] # COUNTING ROD UNIT DIGIT FOUR
+1E8CA ; [.1C41.0020.0002] # MENDE KIKAKUI DIGIT FOUR
+1E954 ; [.1C41.0020.0002] # ADLAM DIGIT FOUR
+FF14 ; [.1C41.0020.0003] # FULLWIDTH DIGIT FOUR
+0F2D ; [.1C41.0020.0004] # TIBETAN DIGIT HALF FOUR
+2477 ; [*0317.0020.0004][.1C41.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT FOUR
+248B ; [.1C41.0020.0004][*0277.0020.0004] # DIGIT FOUR FULL STOP
+1F105 ; [.1C41.0020.0004][*0222.0020.0004] # DIGIT FOUR COMMA
+1D7D2 ; [.1C41.0020.0005] # MATHEMATICAL BOLD DIGIT FOUR
+1D7DC ; [.1C41.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
+1D7E6 ; [.1C41.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FOUR
+1D7F0 ; [.1C41.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
+1D7FA ; [.1C41.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FOUR
+2463 ; [.1C41.0020.0006] # CIRCLED DIGIT FOUR
+24F8 ; [.1C41.0020.0006] # DOUBLE CIRCLED DIGIT FOUR
+2779 ; [.1C41.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
+2783 ; [.1C41.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
+278D ; [.1C41.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
+2074 ; [.1C41.0020.0014] # SUPERSCRIPT FOUR
+2084 ; [.1C41.0020.0015] # SUBSCRIPT FOUR
+324B ; [.1C41.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER FORTY ON BLACK SQUARE
+32B5 ; [.1C41.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER FORTY
+32B6 ; [.1C41.0020.0006][.1C3E.0020.0006] # CIRCLED NUMBER FORTY ONE
+32B7 ; [.1C41.0020.0006][.1C3F.0020.0006] # CIRCLED NUMBER FORTY TWO
+32B8 ; [.1C41.0020.0006][.1C40.0020.0006] # CIRCLED NUMBER FORTY THREE
+32B9 ; [.1C41.0020.0006][.1C41.0020.0006] # CIRCLED NUMBER FORTY FOUR
+32BA ; [.1C41.0020.0006][.1C42.0020.0006] # CIRCLED NUMBER FORTY FIVE
+2158 ; [.1C41.0020.001E][*0626.0020.001E][.1C42.0020.001E] # VULGAR FRACTION FOUR FIFTHS
+32BB ; [.1C41.0020.0006][.1C43.0020.0006] # CIRCLED NUMBER FORTY SIX
+32BC ; [.1C41.0020.0006][.1C44.0020.0006] # CIRCLED NUMBER FORTY SEVEN
+32BD ; [.1C41.0020.0006][.1C45.0020.0006] # CIRCLED NUMBER FORTY EIGHT
+32BE ; [.1C41.0020.0006][.1C46.0020.0006] # CIRCLED NUMBER FORTY NINE
+1F19E ; [.1C41.0020.001C][.1D65.0020.001D] # SQUARED FOUR K
+33E3 ; [.1C41.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+32C3 ; [.1C41.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+335C ; [.1C41.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+0035 ; [.1C42.0020.0002] # DIGIT FIVE
+0665 ; [.1C42.0020.0002] # ARABIC-INDIC DIGIT FIVE
+06F5 ; [.1C42.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FIVE
+07C5 ; [.1C42.0020.0002] # NKO DIGIT FIVE
+096B ; [.1C42.0020.0002] # DEVANAGARI DIGIT FIVE
+09EB ; [.1C42.0020.0002] # BENGALI DIGIT FIVE
+0A6B ; [.1C42.0020.0002] # GURMUKHI DIGIT FIVE
+0AEB ; [.1C42.0020.0002] # GUJARATI DIGIT FIVE
+0B6B ; [.1C42.0020.0002] # ORIYA DIGIT FIVE
+0BEB ; [.1C42.0020.0002] # TAMIL DIGIT FIVE
+0C6B ; [.1C42.0020.0002] # TELUGU DIGIT FIVE
+0CEB ; [.1C42.0020.0002] # KANNADA DIGIT FIVE
+0D6B ; [.1C42.0020.0002] # MALAYALAM DIGIT FIVE
+0DEB ; [.1C42.0020.0002] # SINHALA LITH DIGIT FIVE
+0E55 ; [.1C42.0020.0002] # THAI DIGIT FIVE
+0ED5 ; [.1C42.0020.0002] # LAO DIGIT FIVE
+0F25 ; [.1C42.0020.0002] # TIBETAN DIGIT FIVE
+1045 ; [.1C42.0020.0002] # MYANMAR DIGIT FIVE
+1095 ; [.1C42.0020.0002] # MYANMAR SHAN DIGIT FIVE
+136D ; [.1C42.0020.0002] # ETHIOPIC DIGIT FIVE
+17E5 ; [.1C42.0020.0002] # KHMER DIGIT FIVE
+17F5 ; [.1C42.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM
+1815 ; [.1C42.0020.0002] # MONGOLIAN DIGIT FIVE
+194B ; [.1C42.0020.0002] # LIMBU DIGIT FIVE
+19D5 ; [.1C42.0020.0002] # NEW TAI LUE DIGIT FIVE
+1A85 ; [.1C42.0020.0002] # TAI THAM HORA DIGIT FIVE
+1A95 ; [.1C42.0020.0002] # TAI THAM THAM DIGIT FIVE
+1B55 ; [.1C42.0020.0002] # BALINESE DIGIT FIVE
+1BB5 ; [.1C42.0020.0002] # SUNDANESE DIGIT FIVE
+1C45 ; [.1C42.0020.0002] # LEPCHA DIGIT FIVE
+1C55 ; [.1C42.0020.0002] # OL CHIKI DIGIT FIVE
+3025 ; [.1C42.0020.0002] # HANGZHOU NUMERAL FIVE
+A625 ; [.1C42.0020.0002] # VAI DIGIT FIVE
+A8D5 ; [.1C42.0020.0002] # SAURASHTRA DIGIT FIVE
+A905 ; [.1C42.0020.0002] # KAYAH LI DIGIT FIVE
+A9D5 ; [.1C42.0020.0002] # JAVANESE DIGIT FIVE
+A9F5 ; [.1C42.0020.0002] # MYANMAR TAI LAING DIGIT FIVE
+AA55 ; [.1C42.0020.0002] # CHAM DIGIT FIVE
+ABF5 ; [.1C42.0020.0002] # MEETEI MAYEK DIGIT FIVE
+1010B ; [.1C42.0020.0002] # AEGEAN NUMBER FIVE
+10143 ; [.1C42.0020.0002] # GREEK ACROPHONIC ATTIC FIVE
+10148 ; [.1C42.0020.0002] # GREEK ACROPHONIC ATTIC FIVE TALENTS
+1014F ; [.1C42.0020.0002] # GREEK ACROPHONIC ATTIC FIVE STATERS
+1015F ; [.1C42.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE
+10173 ; [.1C42.0020.0002] # GREEK ACROPHONIC DELPHIC FIVE MNAS
+102E5 ; [.1C42.0020.0002] # COPTIC EPACT DIGIT FIVE
+10321 ; [.1C42.0020.0002] # OLD ITALIC NUMERAL FIVE
+104A5 ; [.1C42.0020.0002] # OSMANYA DIGIT FIVE
+1087D ; [.1C42.0020.0002] # PALMYRENE NUMBER FIVE
+108AC ; [.1C42.0020.0002] # NABATAEAN NUMBER FIVE
+108FC ; [.1C42.0020.0002] # HATRAN NUMBER FIVE
+109C4 ; [.1C42.0020.0002] # MEROITIC CURSIVE NUMBER FIVE
+10AEC ; [.1C42.0020.0002] # MANICHAEAN NUMBER FIVE
+10CFB ; [.1C42.0020.0002] # OLD HUNGARIAN NUMBER FIVE
+10E64 ; [.1C42.0020.0002] # RUMI DIGIT FIVE
+11056 ; [.1C42.0020.0002] # BRAHMI NUMBER FIVE
+1106B ; [.1C42.0020.0002] # BRAHMI DIGIT FIVE
+110F5 ; [.1C42.0020.0002] # SORA SOMPENG DIGIT FIVE
+1113B ; [.1C42.0020.0002] # CHAKMA DIGIT FIVE
+111D5 ; [.1C42.0020.0002] # SHARADA DIGIT FIVE
+111E5 ; [.1C42.0020.0002] # SINHALA ARCHAIC DIGIT FIVE
+112F5 ; [.1C42.0020.0002] # KHUDAWADI DIGIT FIVE
+11455 ; [.1C42.0020.0002] # NEWA DIGIT FIVE
+114D5 ; [.1C42.0020.0002] # TIRHUTA DIGIT FIVE
+11655 ; [.1C42.0020.0002] # MODI DIGIT FIVE
+116C5 ; [.1C42.0020.0002] # TAKRI DIGIT FIVE
+11735 ; [.1C42.0020.0002] # AHOM DIGIT FIVE
+118E5 ; [.1C42.0020.0002] # WARANG CITI DIGIT FIVE
+11C55 ; [.1C42.0020.0002] # BHAIKSUKI DIGIT FIVE
+11C5E ; [.1C42.0020.0002] # BHAIKSUKI NUMBER FIVE
+12403 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH
+1240A ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE DISH
+12410 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U
+12419 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESH2
+12422 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESHU
+12427 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHAR2
+12431 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHARU
+12439 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BURU
+1244D ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH TENU
+12454 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2
+12455 ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
+1246A ; [.1C42.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM
+16A65 ; [.1C42.0020.0002] # MRO DIGIT FIVE
+16B55 ; [.1C42.0020.0002] # PAHAWH HMONG DIGIT FIVE
+1D364 ; [.1C42.0020.0002] # COUNTING ROD UNIT DIGIT FIVE
+1E8CB ; [.1C42.0020.0002] # MENDE KIKAKUI DIGIT FIVE
+1E955 ; [.1C42.0020.0002] # ADLAM DIGIT FIVE
+FF15 ; [.1C42.0020.0003] # FULLWIDTH DIGIT FIVE
+0F2E ; [.1C42.0020.0004] # TIBETAN DIGIT HALF FIVE
+2478 ; [*0317.0020.0004][.1C42.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT FIVE
+248C ; [.1C42.0020.0004][*0277.0020.0004] # DIGIT FIVE FULL STOP
+1F106 ; [.1C42.0020.0004][*0222.0020.0004] # DIGIT FIVE COMMA
+1D7D3 ; [.1C42.0020.0005] # MATHEMATICAL BOLD DIGIT FIVE
+1D7DD ; [.1C42.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
+1D7E7 ; [.1C42.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FIVE
+1D7F1 ; [.1C42.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
+1D7FB ; [.1C42.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FIVE
+2464 ; [.1C42.0020.0006] # CIRCLED DIGIT FIVE
+24F9 ; [.1C42.0020.0006] # DOUBLE CIRCLED DIGIT FIVE
+277A ; [.1C42.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
+2784 ; [.1C42.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
+278E ; [.1C42.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
+2075 ; [.1C42.0020.0014] # SUPERSCRIPT FIVE
+2085 ; [.1C42.0020.0015] # SUBSCRIPT FIVE
+324C ; [.1C42.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER FIFTY ON BLACK SQUARE
+32BF ; [.1C42.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER FIFTY
+1F1A0 ; [.1C42.0020.001C][*0277.0020.001C][.1C3E.0020.001C] # SQUARED FIVE POINT ONE
+215A ; [.1C42.0020.001E][*0626.0020.001E][.1C43.0020.001E] # VULGAR FRACTION FIVE SIXTHS
+215D ; [.1C42.0020.001E][*0626.0020.001E][.1C45.0020.001E] # VULGAR FRACTION FIVE EIGHTHS
+33E4 ; [.1C42.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+32C4 ; [.1C42.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+335D ; [.1C42.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+0036 ; [.1C43.0020.0002] # DIGIT SIX
+0666 ; [.1C43.0020.0002] # ARABIC-INDIC DIGIT SIX
+06F6 ; [.1C43.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SIX
+07C6 ; [.1C43.0020.0002] # NKO DIGIT SIX
+096C ; [.1C43.0020.0002] # DEVANAGARI DIGIT SIX
+09EC ; [.1C43.0020.0002] # BENGALI DIGIT SIX
+0A6C ; [.1C43.0020.0002] # GURMUKHI DIGIT SIX
+0AEC ; [.1C43.0020.0002] # GUJARATI DIGIT SIX
+0B6C ; [.1C43.0020.0002] # ORIYA DIGIT SIX
+0BEC ; [.1C43.0020.0002] # TAMIL DIGIT SIX
+0C6C ; [.1C43.0020.0002] # TELUGU DIGIT SIX
+0CEC ; [.1C43.0020.0002] # KANNADA DIGIT SIX
+0D6C ; [.1C43.0020.0002] # MALAYALAM DIGIT SIX
+0DEC ; [.1C43.0020.0002] # SINHALA LITH DIGIT SIX
+0E56 ; [.1C43.0020.0002] # THAI DIGIT SIX
+0ED6 ; [.1C43.0020.0002] # LAO DIGIT SIX
+0F26 ; [.1C43.0020.0002] # TIBETAN DIGIT SIX
+1046 ; [.1C43.0020.0002] # MYANMAR DIGIT SIX
+1096 ; [.1C43.0020.0002] # MYANMAR SHAN DIGIT SIX
+136E ; [.1C43.0020.0002] # ETHIOPIC DIGIT SIX
+17E6 ; [.1C43.0020.0002] # KHMER DIGIT SIX
+17F6 ; [.1C43.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-MUOY
+1816 ; [.1C43.0020.0002] # MONGOLIAN DIGIT SIX
+194C ; [.1C43.0020.0002] # LIMBU DIGIT SIX
+19D6 ; [.1C43.0020.0002] # NEW TAI LUE DIGIT SIX
+1A86 ; [.1C43.0020.0002] # TAI THAM HORA DIGIT SIX
+1A96 ; [.1C43.0020.0002] # TAI THAM THAM DIGIT SIX
+1B56 ; [.1C43.0020.0002] # BALINESE DIGIT SIX
+1BB6 ; [.1C43.0020.0002] # SUNDANESE DIGIT SIX
+1C46 ; [.1C43.0020.0002] # LEPCHA DIGIT SIX
+1C56 ; [.1C43.0020.0002] # OL CHIKI DIGIT SIX
+2185 ; [.1C43.0020.0002] # ROMAN NUMERAL SIX LATE FORM
+3026 ; [.1C43.0020.0002] # HANGZHOU NUMERAL SIX
+A626 ; [.1C43.0020.0002] # VAI DIGIT SIX
+A8D6 ; [.1C43.0020.0002] # SAURASHTRA DIGIT SIX
+A906 ; [.1C43.0020.0002] # KAYAH LI DIGIT SIX
+A9D6 ; [.1C43.0020.0002] # JAVANESE DIGIT SIX
+A9F6 ; [.1C43.0020.0002] # MYANMAR TAI LAING DIGIT SIX
+AA56 ; [.1C43.0020.0002] # CHAM DIGIT SIX
+ABF6 ; [.1C43.0020.0002] # MEETEI MAYEK DIGIT SIX
+1010C ; [.1C43.0020.0002] # AEGEAN NUMBER SIX
+102E6 ; [.1C43.0020.0002] # COPTIC EPACT DIGIT SIX
+104A6 ; [.1C43.0020.0002] # OSMANYA DIGIT SIX
+109C5 ; [.1C43.0020.0002] # MEROITIC CURSIVE NUMBER SIX
+10E65 ; [.1C43.0020.0002] # RUMI DIGIT SIX
+11057 ; [.1C43.0020.0002] # BRAHMI NUMBER SIX
+1106C ; [.1C43.0020.0002] # BRAHMI DIGIT SIX
+110F6 ; [.1C43.0020.0002] # SORA SOMPENG DIGIT SIX
+1113C ; [.1C43.0020.0002] # CHAKMA DIGIT SIX
+111D6 ; [.1C43.0020.0002] # SHARADA DIGIT SIX
+111E6 ; [.1C43.0020.0002] # SINHALA ARCHAIC DIGIT SIX
+112F6 ; [.1C43.0020.0002] # KHUDAWADI DIGIT SIX
+11456 ; [.1C43.0020.0002] # NEWA DIGIT SIX
+114D6 ; [.1C43.0020.0002] # TIRHUTA DIGIT SIX
+11656 ; [.1C43.0020.0002] # MODI DIGIT SIX
+116C6 ; [.1C43.0020.0002] # TAKRI DIGIT SIX
+11736 ; [.1C43.0020.0002] # AHOM DIGIT SIX
+118E6 ; [.1C43.0020.0002] # WARANG CITI DIGIT SIX
+11C56 ; [.1C43.0020.0002] # BHAIKSUKI DIGIT SIX
+11C5F ; [.1C43.0020.0002] # BHAIKSUKI NUMBER SIX
+12404 ; [.1C43.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH
+1240B ; [.1C43.0020.0002] # CUNEIFORM NUMERIC SIGN SIX DISH
+12411 ; [.1C43.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U
+1241A ; [.1C43.0020.0002] # CUNEIFORM NUMERIC SIGN SIX GESH2
+12428 ; [.1C43.0020.0002] # CUNEIFORM NUMERIC SIGN SIX SHAR2
+12440 ; [.1C43.0020.0002] # CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
+1244E ; [.1C43.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH TENU
+1246B ; [.1C43.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM
+16A66 ; [.1C43.0020.0002] # MRO DIGIT SIX
+16B56 ; [.1C43.0020.0002] # PAHAWH HMONG DIGIT SIX
+1D365 ; [.1C43.0020.0002] # COUNTING ROD UNIT DIGIT SIX
+1E8CC ; [.1C43.0020.0002] # MENDE KIKAKUI DIGIT SIX
+1E956 ; [.1C43.0020.0002] # ADLAM DIGIT SIX
+FF16 ; [.1C43.0020.0003] # FULLWIDTH DIGIT SIX
+0F2F ; [.1C43.0020.0004] # TIBETAN DIGIT HALF SIX
+2479 ; [*0317.0020.0004][.1C43.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT SIX
+248D ; [.1C43.0020.0004][*0277.0020.0004] # DIGIT SIX FULL STOP
+1F107 ; [.1C43.0020.0004][*0222.0020.0004] # DIGIT SIX COMMA
+1D7D4 ; [.1C43.0020.0005] # MATHEMATICAL BOLD DIGIT SIX
+1D7DE ; [.1C43.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
+1D7E8 ; [.1C43.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SIX
+1D7F2 ; [.1C43.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
+1D7FC ; [.1C43.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SIX
+2465 ; [.1C43.0020.0006] # CIRCLED DIGIT SIX
+24FA ; [.1C43.0020.0006] # DOUBLE CIRCLED DIGIT SIX
+277B ; [.1C43.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SIX
+2785 ; [.1C43.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
+278F ; [.1C43.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
+2076 ; [.1C43.0020.0014] # SUPERSCRIPT SIX
+2086 ; [.1C43.0020.0015] # SUBSCRIPT SIX
+324D ; [.1C43.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER SIXTY ON BLACK SQUARE
+1F1A3 ; [.1C43.0020.001C][.1C3D.0020.001C][.1E0C.0020.001D] # SQUARED SIXTY P
+33E5 ; [.1C43.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+32C5 ; [.1C43.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+335E ; [.1C43.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+0037 ; [.1C44.0020.0002] # DIGIT SEVEN
+0667 ; [.1C44.0020.0002] # ARABIC-INDIC DIGIT SEVEN
+06F7 ; [.1C44.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SEVEN
+07C7 ; [.1C44.0020.0002] # NKO DIGIT SEVEN
+096D ; [.1C44.0020.0002] # DEVANAGARI DIGIT SEVEN
+09ED ; [.1C44.0020.0002] # BENGALI DIGIT SEVEN
+0A6D ; [.1C44.0020.0002] # GURMUKHI DIGIT SEVEN
+0AED ; [.1C44.0020.0002] # GUJARATI DIGIT SEVEN
+0B6D ; [.1C44.0020.0002] # ORIYA DIGIT SEVEN
+0BED ; [.1C44.0020.0002] # TAMIL DIGIT SEVEN
+0C6D ; [.1C44.0020.0002] # TELUGU DIGIT SEVEN
+0CED ; [.1C44.0020.0002] # KANNADA DIGIT SEVEN
+0D6D ; [.1C44.0020.0002] # MALAYALAM DIGIT SEVEN
+0DED ; [.1C44.0020.0002] # SINHALA LITH DIGIT SEVEN
+0E57 ; [.1C44.0020.0002] # THAI DIGIT SEVEN
+0ED7 ; [.1C44.0020.0002] # LAO DIGIT SEVEN
+0F27 ; [.1C44.0020.0002] # TIBETAN DIGIT SEVEN
+1047 ; [.1C44.0020.0002] # MYANMAR DIGIT SEVEN
+1097 ; [.1C44.0020.0002] # MYANMAR SHAN DIGIT SEVEN
+136F ; [.1C44.0020.0002] # ETHIOPIC DIGIT SEVEN
+17E7 ; [.1C44.0020.0002] # KHMER DIGIT SEVEN
+17F7 ; [.1C44.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-PII
+1817 ; [.1C44.0020.0002] # MONGOLIAN DIGIT SEVEN
+194D ; [.1C44.0020.0002] # LIMBU DIGIT SEVEN
+19D7 ; [.1C44.0020.0002] # NEW TAI LUE DIGIT SEVEN
+1A87 ; [.1C44.0020.0002] # TAI THAM HORA DIGIT SEVEN
+1A97 ; [.1C44.0020.0002] # TAI THAM THAM DIGIT SEVEN
+1B57 ; [.1C44.0020.0002] # BALINESE DIGIT SEVEN
+1BB7 ; [.1C44.0020.0002] # SUNDANESE DIGIT SEVEN
+1C47 ; [.1C44.0020.0002] # LEPCHA DIGIT SEVEN
+1C57 ; [.1C44.0020.0002] # OL CHIKI DIGIT SEVEN
+3027 ; [.1C44.0020.0002] # HANGZHOU NUMERAL SEVEN
+A627 ; [.1C44.0020.0002] # VAI DIGIT SEVEN
+A8D7 ; [.1C44.0020.0002] # SAURASHTRA DIGIT SEVEN
+A907 ; [.1C44.0020.0002] # KAYAH LI DIGIT SEVEN
+A9D7 ; [.1C44.0020.0002] # JAVANESE DIGIT SEVEN
+A9F7 ; [.1C44.0020.0002] # MYANMAR TAI LAING DIGIT SEVEN
+AA57 ; [.1C44.0020.0002] # CHAM DIGIT SEVEN
+ABF7 ; [.1C44.0020.0002] # MEETEI MAYEK DIGIT SEVEN
+1010D ; [.1C44.0020.0002] # AEGEAN NUMBER SEVEN
+102E7 ; [.1C44.0020.0002] # COPTIC EPACT DIGIT SEVEN
+104A7 ; [.1C44.0020.0002] # OSMANYA DIGIT SEVEN
+109C6 ; [.1C44.0020.0002] # MEROITIC CURSIVE NUMBER SEVEN
+10E66 ; [.1C44.0020.0002] # RUMI DIGIT SEVEN
+11058 ; [.1C44.0020.0002] # BRAHMI NUMBER SEVEN
+1106D ; [.1C44.0020.0002] # BRAHMI DIGIT SEVEN
+110F7 ; [.1C44.0020.0002] # SORA SOMPENG DIGIT SEVEN
+1113D ; [.1C44.0020.0002] # CHAKMA DIGIT SEVEN
+111D7 ; [.1C44.0020.0002] # SHARADA DIGIT SEVEN
+111E7 ; [.1C44.0020.0002] # SINHALA ARCHAIC DIGIT SEVEN
+112F7 ; [.1C44.0020.0002] # KHUDAWADI DIGIT SEVEN
+11457 ; [.1C44.0020.0002] # NEWA DIGIT SEVEN
+114D7 ; [.1C44.0020.0002] # TIRHUTA DIGIT SEVEN
+11657 ; [.1C44.0020.0002] # MODI DIGIT SEVEN
+116C7 ; [.1C44.0020.0002] # TAKRI DIGIT SEVEN
+11737 ; [.1C44.0020.0002] # AHOM DIGIT SEVEN
+118E7 ; [.1C44.0020.0002] # WARANG CITI DIGIT SEVEN
+11C57 ; [.1C44.0020.0002] # BHAIKSUKI DIGIT SEVEN
+11C60 ; [.1C44.0020.0002] # BHAIKSUKI NUMBER SEVEN
+12405 ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN ASH
+1240C ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN DISH
+12412 ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U
+1241B ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN GESH2
+12429 ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN SHAR2
+12441 ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3
+12442 ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A
+12443 ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
+1246C ; [.1C44.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM
+16A67 ; [.1C44.0020.0002] # MRO DIGIT SEVEN
+16B57 ; [.1C44.0020.0002] # PAHAWH HMONG DIGIT SEVEN
+1D366 ; [.1C44.0020.0002] # COUNTING ROD UNIT DIGIT SEVEN
+1E8CD ; [.1C44.0020.0002] # MENDE KIKAKUI DIGIT SEVEN
+1E957 ; [.1C44.0020.0002] # ADLAM DIGIT SEVEN
+FF17 ; [.1C44.0020.0003] # FULLWIDTH DIGIT SEVEN
+0F30 ; [.1C44.0020.0004] # TIBETAN DIGIT HALF SEVEN
+247A ; [*0317.0020.0004][.1C44.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT SEVEN
+248E ; [.1C44.0020.0004][*0277.0020.0004] # DIGIT SEVEN FULL STOP
+1F108 ; [.1C44.0020.0004][*0222.0020.0004] # DIGIT SEVEN COMMA
+1D7D5 ; [.1C44.0020.0005] # MATHEMATICAL BOLD DIGIT SEVEN
+1D7DF ; [.1C44.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
+1D7E9 ; [.1C44.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SEVEN
+1D7F3 ; [.1C44.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
+1D7FD ; [.1C44.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SEVEN
+2466 ; [.1C44.0020.0006] # CIRCLED DIGIT SEVEN
+24FB ; [.1C44.0020.0006] # DOUBLE CIRCLED DIGIT SEVEN
+277C ; [.1C44.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
+2786 ; [.1C44.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
+2790 ; [.1C44.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
+2077 ; [.1C44.0020.0014] # SUPERSCRIPT SEVEN
+2087 ; [.1C44.0020.0015] # SUBSCRIPT SEVEN
+324E ; [.1C44.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER SEVENTY ON BLACK SQUARE
+1F1A1 ; [.1C44.0020.001C][*0277.0020.001C][.1C3E.0020.001C] # SQUARED SEVEN POINT ONE
+215E ; [.1C44.0020.001E][*0626.0020.001E][.1C45.0020.001E] # VULGAR FRACTION SEVEN EIGHTHS
+33E6 ; [.1C44.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+32C6 ; [.1C44.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+335F ; [.1C44.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+0038 ; [.1C45.0020.0002] # DIGIT EIGHT
+0668 ; [.1C45.0020.0002] # ARABIC-INDIC DIGIT EIGHT
+06F8 ; [.1C45.0020.0002] # EXTENDED ARABIC-INDIC DIGIT EIGHT
+07C8 ; [.1C45.0020.0002] # NKO DIGIT EIGHT
+096E ; [.1C45.0020.0002] # DEVANAGARI DIGIT EIGHT
+09EE ; [.1C45.0020.0002] # BENGALI DIGIT EIGHT
+0A6E ; [.1C45.0020.0002] # GURMUKHI DIGIT EIGHT
+0AEE ; [.1C45.0020.0002] # GUJARATI DIGIT EIGHT
+0B6E ; [.1C45.0020.0002] # ORIYA DIGIT EIGHT
+0BEE ; [.1C45.0020.0002] # TAMIL DIGIT EIGHT
+0C6E ; [.1C45.0020.0002] # TELUGU DIGIT EIGHT
+0CEE ; [.1C45.0020.0002] # KANNADA DIGIT EIGHT
+0D6E ; [.1C45.0020.0002] # MALAYALAM DIGIT EIGHT
+0DEE ; [.1C45.0020.0002] # SINHALA LITH DIGIT EIGHT
+0E58 ; [.1C45.0020.0002] # THAI DIGIT EIGHT
+0ED8 ; [.1C45.0020.0002] # LAO DIGIT EIGHT
+0F28 ; [.1C45.0020.0002] # TIBETAN DIGIT EIGHT
+1048 ; [.1C45.0020.0002] # MYANMAR DIGIT EIGHT
+1098 ; [.1C45.0020.0002] # MYANMAR SHAN DIGIT EIGHT
+1370 ; [.1C45.0020.0002] # ETHIOPIC DIGIT EIGHT
+17E8 ; [.1C45.0020.0002] # KHMER DIGIT EIGHT
+17F8 ; [.1C45.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BEI
+1818 ; [.1C45.0020.0002] # MONGOLIAN DIGIT EIGHT
+194E ; [.1C45.0020.0002] # LIMBU DIGIT EIGHT
+19D8 ; [.1C45.0020.0002] # NEW TAI LUE DIGIT EIGHT
+1A88 ; [.1C45.0020.0002] # TAI THAM HORA DIGIT EIGHT
+1A98 ; [.1C45.0020.0002] # TAI THAM THAM DIGIT EIGHT
+1B58 ; [.1C45.0020.0002] # BALINESE DIGIT EIGHT
+1BB8 ; [.1C45.0020.0002] # SUNDANESE DIGIT EIGHT
+1C48 ; [.1C45.0020.0002] # LEPCHA DIGIT EIGHT
+1C58 ; [.1C45.0020.0002] # OL CHIKI DIGIT EIGHT
+3028 ; [.1C45.0020.0002] # HANGZHOU NUMERAL EIGHT
+A628 ; [.1C45.0020.0002] # VAI DIGIT EIGHT
+A8D8 ; [.1C45.0020.0002] # SAURASHTRA DIGIT EIGHT
+A908 ; [.1C45.0020.0002] # KAYAH LI DIGIT EIGHT
+A9D8 ; [.1C45.0020.0002] # JAVANESE DIGIT EIGHT
+A9F8 ; [.1C45.0020.0002] # MYANMAR TAI LAING DIGIT EIGHT
+AA58 ; [.1C45.0020.0002] # CHAM DIGIT EIGHT
+ABF8 ; [.1C45.0020.0002] # MEETEI MAYEK DIGIT EIGHT
+1010E ; [.1C45.0020.0002] # AEGEAN NUMBER EIGHT
+102E8 ; [.1C45.0020.0002] # COPTIC EPACT DIGIT EIGHT
+104A8 ; [.1C45.0020.0002] # OSMANYA DIGIT EIGHT
+109C7 ; [.1C45.0020.0002] # MEROITIC CURSIVE NUMBER EIGHT
+10E67 ; [.1C45.0020.0002] # RUMI DIGIT EIGHT
+11059 ; [.1C45.0020.0002] # BRAHMI NUMBER EIGHT
+1106E ; [.1C45.0020.0002] # BRAHMI DIGIT EIGHT
+110F8 ; [.1C45.0020.0002] # SORA SOMPENG DIGIT EIGHT
+1113E ; [.1C45.0020.0002] # CHAKMA DIGIT EIGHT
+111D8 ; [.1C45.0020.0002] # SHARADA DIGIT EIGHT
+111E8 ; [.1C45.0020.0002] # SINHALA ARCHAIC DIGIT EIGHT
+112F8 ; [.1C45.0020.0002] # KHUDAWADI DIGIT EIGHT
+11458 ; [.1C45.0020.0002] # NEWA DIGIT EIGHT
+114D8 ; [.1C45.0020.0002] # TIRHUTA DIGIT EIGHT
+11658 ; [.1C45.0020.0002] # MODI DIGIT EIGHT
+116C8 ; [.1C45.0020.0002] # TAKRI DIGIT EIGHT
+11738 ; [.1C45.0020.0002] # AHOM DIGIT EIGHT
+118E8 ; [.1C45.0020.0002] # WARANG CITI DIGIT EIGHT
+11C58 ; [.1C45.0020.0002] # BHAIKSUKI DIGIT EIGHT
+11C61 ; [.1C45.0020.0002] # BHAIKSUKI NUMBER EIGHT
+12406 ; [.1C45.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT ASH
+1240D ; [.1C45.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT DISH
+12413 ; [.1C45.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U
+1241C ; [.1C45.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT GESH2
+1242A ; [.1C45.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT SHAR2
+12444 ; [.1C45.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU
+12445 ; [.1C45.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
+1246D ; [.1C45.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM
+16A68 ; [.1C45.0020.0002] # MRO DIGIT EIGHT
+16B58 ; [.1C45.0020.0002] # PAHAWH HMONG DIGIT EIGHT
+1D367 ; [.1C45.0020.0002] # COUNTING ROD UNIT DIGIT EIGHT
+1E8CE ; [.1C45.0020.0002] # MENDE KIKAKUI DIGIT EIGHT
+1E958 ; [.1C45.0020.0002] # ADLAM DIGIT EIGHT
+FF18 ; [.1C45.0020.0003] # FULLWIDTH DIGIT EIGHT
+0F31 ; [.1C45.0020.0004] # TIBETAN DIGIT HALF EIGHT
+247B ; [*0317.0020.0004][.1C45.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT EIGHT
+248F ; [.1C45.0020.0004][*0277.0020.0004] # DIGIT EIGHT FULL STOP
+1F109 ; [.1C45.0020.0004][*0222.0020.0004] # DIGIT EIGHT COMMA
+1D7D6 ; [.1C45.0020.0005] # MATHEMATICAL BOLD DIGIT EIGHT
+1D7E0 ; [.1C45.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
+1D7EA ; [.1C45.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT EIGHT
+1D7F4 ; [.1C45.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
+1D7FE ; [.1C45.0020.0005] # MATHEMATICAL MONOSPACE DIGIT EIGHT
+2467 ; [.1C45.0020.0006] # CIRCLED DIGIT EIGHT
+24FC ; [.1C45.0020.0006] # DOUBLE CIRCLED DIGIT EIGHT
+277D ; [.1C45.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
+2787 ; [.1C45.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
+2791 ; [.1C45.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
+2078 ; [.1C45.0020.0014] # SUPERSCRIPT EIGHT
+2088 ; [.1C45.0020.0015] # SUBSCRIPT EIGHT
+324F ; [.1C45.0020.0006][.1C3D.0020.0006] # CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+1F19F ; [.1C45.0020.001C][.1D65.0020.001D] # SQUARED EIGHT K
+33E7 ; [.1C45.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+32C7 ; [.1C45.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+3360 ; [.1C45.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+0039 ; [.1C46.0020.0002] # DIGIT NINE
+0669 ; [.1C46.0020.0002] # ARABIC-INDIC DIGIT NINE
+06F9 ; [.1C46.0020.0002] # EXTENDED ARABIC-INDIC DIGIT NINE
+07C9 ; [.1C46.0020.0002] # NKO DIGIT NINE
+096F ; [.1C46.0020.0002] # DEVANAGARI DIGIT NINE
+09EF ; [.1C46.0020.0002] # BENGALI DIGIT NINE
+0A6F ; [.1C46.0020.0002] # GURMUKHI DIGIT NINE
+0AEF ; [.1C46.0020.0002] # GUJARATI DIGIT NINE
+0B6F ; [.1C46.0020.0002] # ORIYA DIGIT NINE
+0BEF ; [.1C46.0020.0002] # TAMIL DIGIT NINE
+0C6F ; [.1C46.0020.0002] # TELUGU DIGIT NINE
+0CEF ; [.1C46.0020.0002] # KANNADA DIGIT NINE
+0D6F ; [.1C46.0020.0002] # MALAYALAM DIGIT NINE
+0DEF ; [.1C46.0020.0002] # SINHALA LITH DIGIT NINE
+0E59 ; [.1C46.0020.0002] # THAI DIGIT NINE
+0ED9 ; [.1C46.0020.0002] # LAO DIGIT NINE
+0F29 ; [.1C46.0020.0002] # TIBETAN DIGIT NINE
+1049 ; [.1C46.0020.0002] # MYANMAR DIGIT NINE
+1099 ; [.1C46.0020.0002] # MYANMAR SHAN DIGIT NINE
+1371 ; [.1C46.0020.0002] # ETHIOPIC DIGIT NINE
+17E9 ; [.1C46.0020.0002] # KHMER DIGIT NINE
+17F9 ; [.1C46.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BUON
+1819 ; [.1C46.0020.0002] # MONGOLIAN DIGIT NINE
+194F ; [.1C46.0020.0002] # LIMBU DIGIT NINE
+19D9 ; [.1C46.0020.0002] # NEW TAI LUE DIGIT NINE
+1A89 ; [.1C46.0020.0002] # TAI THAM HORA DIGIT NINE
+1A99 ; [.1C46.0020.0002] # TAI THAM THAM DIGIT NINE
+1B59 ; [.1C46.0020.0002] # BALINESE DIGIT NINE
+1BB9 ; [.1C46.0020.0002] # SUNDANESE DIGIT NINE
+1C49 ; [.1C46.0020.0002] # LEPCHA DIGIT NINE
+1C59 ; [.1C46.0020.0002] # OL CHIKI DIGIT NINE
+3029 ; [.1C46.0020.0002] # HANGZHOU NUMERAL NINE
+A629 ; [.1C46.0020.0002] # VAI DIGIT NINE
+A8D9 ; [.1C46.0020.0002] # SAURASHTRA DIGIT NINE
+A909 ; [.1C46.0020.0002] # KAYAH LI DIGIT NINE
+A9D9 ; [.1C46.0020.0002] # JAVANESE DIGIT NINE
+A9F9 ; [.1C46.0020.0002] # MYANMAR TAI LAING DIGIT NINE
+AA59 ; [.1C46.0020.0002] # CHAM DIGIT NINE
+ABF9 ; [.1C46.0020.0002] # MEETEI MAYEK DIGIT NINE
+1010F ; [.1C46.0020.0002] # AEGEAN NUMBER NINE
+102E9 ; [.1C46.0020.0002] # COPTIC EPACT DIGIT NINE
+104A9 ; [.1C46.0020.0002] # OSMANYA DIGIT NINE
+109C8 ; [.1C46.0020.0002] # MEROITIC CURSIVE NUMBER NINE
+10E68 ; [.1C46.0020.0002] # RUMI DIGIT NINE
+1105A ; [.1C46.0020.0002] # BRAHMI NUMBER NINE
+1106F ; [.1C46.0020.0002] # BRAHMI DIGIT NINE
+110F9 ; [.1C46.0020.0002] # SORA SOMPENG DIGIT NINE
+1113F ; [.1C46.0020.0002] # CHAKMA DIGIT NINE
+111D9 ; [.1C46.0020.0002] # SHARADA DIGIT NINE
+111E9 ; [.1C46.0020.0002] # SINHALA ARCHAIC DIGIT NINE
+112F9 ; [.1C46.0020.0002] # KHUDAWADI DIGIT NINE
+11459 ; [.1C46.0020.0002] # NEWA DIGIT NINE
+114D9 ; [.1C46.0020.0002] # TIRHUTA DIGIT NINE
+11659 ; [.1C46.0020.0002] # MODI DIGIT NINE
+116C9 ; [.1C46.0020.0002] # TAKRI DIGIT NINE
+11739 ; [.1C46.0020.0002] # AHOM DIGIT NINE
+118E9 ; [.1C46.0020.0002] # WARANG CITI DIGIT NINE
+11C59 ; [.1C46.0020.0002] # BHAIKSUKI DIGIT NINE
+11C62 ; [.1C46.0020.0002] # BHAIKSUKI NUMBER NINE
+12407 ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE ASH
+1240E ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE DISH
+12414 ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U
+1241D ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE GESH2
+1242B ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE SHAR2
+12446 ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU
+12447 ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3
+12448 ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4
+12449 ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
+1246E ; [.1C46.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+16A69 ; [.1C46.0020.0002] # MRO DIGIT NINE
+16B59 ; [.1C46.0020.0002] # PAHAWH HMONG DIGIT NINE
+1D368 ; [.1C46.0020.0002] # COUNTING ROD UNIT DIGIT NINE
+1E8CF ; [.1C46.0020.0002] # MENDE KIKAKUI DIGIT NINE
+1E959 ; [.1C46.0020.0002] # ADLAM DIGIT NINE
+FF19 ; [.1C46.0020.0003] # FULLWIDTH DIGIT NINE
+0F32 ; [.1C46.0020.0004] # TIBETAN DIGIT HALF NINE
+247C ; [*0317.0020.0004][.1C46.0020.0004][*0318.0020.0004] # PARENTHESIZED DIGIT NINE
+2490 ; [.1C46.0020.0004][*0277.0020.0004] # DIGIT NINE FULL STOP
+1F10A ; [.1C46.0020.0004][*0222.0020.0004] # DIGIT NINE COMMA
+1D7D7 ; [.1C46.0020.0005] # MATHEMATICAL BOLD DIGIT NINE
+1D7E1 ; [.1C46.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
+1D7EB ; [.1C46.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT NINE
+1D7F5 ; [.1C46.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
+1D7FF ; [.1C46.0020.0005] # MATHEMATICAL MONOSPACE DIGIT NINE
+2468 ; [.1C46.0020.0006] # CIRCLED DIGIT NINE
+24FD ; [.1C46.0020.0006] # DOUBLE CIRCLED DIGIT NINE
+277E ; [.1C46.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT NINE
+2788 ; [.1C46.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
+2792 ; [.1C46.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
+2079 ; [.1C46.0020.0014] # SUPERSCRIPT NINE
+2089 ; [.1C46.0020.0015] # SUBSCRIPT NINE
+33E8 ; [.1C46.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+32C8 ; [.1C46.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+3361 ; [.1C46.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+0061 ; [.1C47.0020.0002] # LATIN SMALL LETTER A
+FF41 ; [.1C47.0020.0003] # FULLWIDTH LATIN SMALL LETTER A
+0363 ; [.1C47.0020.0004] # COMBINING LATIN SMALL LETTER A
+249C ; [*0317.0020.0004][.1C47.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER A
+1D41A ; [.1C47.0020.0005] # MATHEMATICAL BOLD SMALL A
+1D44E ; [.1C47.0020.0005] # MATHEMATICAL ITALIC SMALL A
+1D482 ; [.1C47.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL A
+1D4B6 ; [.1C47.0020.0005] # MATHEMATICAL SCRIPT SMALL A
+1D4EA ; [.1C47.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL A
+1D51E ; [.1C47.0020.0005] # MATHEMATICAL FRAKTUR SMALL A
+1D552 ; [.1C47.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL A
+1D586 ; [.1C47.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL A
+1D5BA ; [.1C47.0020.0005] # MATHEMATICAL SANS-SERIF SMALL A
+1D5EE ; [.1C47.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL A
+1D622 ; [.1C47.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL A
+1D656 ; [.1C47.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
+1D68A ; [.1C47.0020.0005] # MATHEMATICAL MONOSPACE SMALL A
+24D0 ; [.1C47.0020.0006] # CIRCLED LATIN SMALL LETTER A
+0041 ; [.1C47.0020.0008] # LATIN CAPITAL LETTER A
+FF21 ; [.1C47.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER A
+1F110 ; [*0317.0020.0004][.1C47.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER A
+1D400 ; [.1C47.0020.000B] # MATHEMATICAL BOLD CAPITAL A
+1D434 ; [.1C47.0020.000B] # MATHEMATICAL ITALIC CAPITAL A
+1D468 ; [.1C47.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL A
+1D49C ; [.1C47.0020.000B] # MATHEMATICAL SCRIPT CAPITAL A
+1D4D0 ; [.1C47.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL A
+1D504 ; [.1C47.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL A
+1D538 ; [.1C47.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+1D56C ; [.1C47.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL A
+1D5A0 ; [.1C47.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL A
+1D5D4 ; [.1C47.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+1D608 ; [.1C47.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+1D63C ; [.1C47.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+1D670 ; [.1C47.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL A
+24B6 ; [.1C47.0020.000C] # CIRCLED LATIN CAPITAL LETTER A
+1F150 ; [.1C47.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER A
+00AA ; [.1C47.0020.0014] # FEMININE ORDINAL INDICATOR
+1D43 ; [.1C47.0020.0014] # MODIFIER LETTER SMALL A
+2090 ; [.1C47.0020.0015] # LATIN SUBSCRIPT SMALL LETTER A
+1D2C ; [.1C47.0020.001D] # MODIFIER LETTER CAPITAL A
+1F130 ; [.1C47.0020.001D] # SQUARED LATIN CAPITAL LETTER A
+1F170 ; [.1C47.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER A
+00E1 ; [.1C47.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1C47.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH ACUTE
+00E0 ; [.1C47.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1C47.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH GRAVE
+0103 ; [.1C47.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE
+0102 ; [.1C47.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE
+1EAF ; [.1C47.0020.0002][.0000.0026.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EAE ; [.1C47.0020.0008][.0000.0026.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EB1 ; [.1C47.0020.0002][.0000.0026.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB0 ; [.1C47.0020.0008][.0000.0026.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB5 ; [.1C47.0020.0002][.0000.0026.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB4 ; [.1C47.0020.0008][.0000.0026.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB3 ; [.1C47.0020.0002][.0000.0026.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB2 ; [.1C47.0020.0008][.0000.0026.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+00E2 ; [.1C47.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2 ; [.1C47.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+1EA5 ; [.1C47.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA4 ; [.1C47.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA7 ; [.1C47.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA6 ; [.1C47.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EAB ; [.1C47.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAA ; [.1C47.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EA9 ; [.1C47.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA8 ; [.1C47.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+01CE ; [.1C47.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1C47.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER A WITH CARON
+00E5 ; [.1C47.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1C47.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1C47.0020.0008][.0000.0029.0002] # ANGSTROM SIGN
+01FB ; [.1C47.0020.0002][.0000.0029.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1C47.0020.0008][.0000.0029.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1C47.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+1DF2 ; [.1C47.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER A WITH DIAERESIS
+A79B ; [.1C47.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK AE
+00C4 ; [.1C47.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS
+A79A ; [.1C47.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK AE
+01DF ; [.1C47.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1C47.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E3 ; [.1C47.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH TILDE
+00C3 ; [.1C47.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH TILDE
+0227 ; [.1C47.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
+0226 ; [.1C47.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE
+01E1 ; [.1C47.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E0 ; [.1C47.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+0105 ; [.1C47.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER A WITH OGONEK
+0104 ; [.1C47.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER A WITH OGONEK
+0101 ; [.1C47.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1C47.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH MACRON
+1EA3 ; [.1C47.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA2 ; [.1C47.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+0201 ; [.1C47.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0200 ; [.1C47.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0203 ; [.1C47.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER A WITH INVERTED BREVE
+0202 ; [.1C47.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER A WITH INVERTED BREVE
+1EA1 ; [.1C47.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH DOT BELOW
+1EA0 ; [.1C47.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH DOT BELOW
+1EB7 ; [.1C47.0020.0002][.0000.0042.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB6 ; [.1C47.0020.0008][.0000.0042.0002][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EAD ; [.1C47.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAC ; [.1C47.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1E01 ; [.1C47.0020.0002][.0000.0044.0002] # LATIN SMALL LETTER A WITH RING BELOW
+1E00 ; [.1C47.0020.0008][.0000.0044.0002] # LATIN CAPITAL LETTER A WITH RING BELOW
+1DD3 ; [.1C47.0020.0004][.0000.0110.0004] # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE
+A733 ; [.1C47.0020.0004][.1C47.0020.0004] # LATIN SMALL LETTER AA
+A732 ; [.1C47.0020.000A][.1C47.0020.000A] # LATIN CAPITAL LETTER AA
+1F18E ; [.1C47.0020.001D][.1C60.0020.001D] # NEGATIVE SQUARED AB
+2100 ; [.1C47.0020.0004][*0394.0020.0004][.1C7A.0020.0004] # ACCOUNT OF
+00E6 ; [.1C47.0020.0004][.0000.0110.0004][.1CAA.0020.0004] # LATIN SMALL LETTER AE
+1DD4 ; [.1C47.0020.0004][.0000.0110.0004][.1CAA.0020.0004] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1C47.0020.000A][.0000.0110.0004][.1CAA.0020.000A] # LATIN CAPITAL LETTER AE
+1D2D ; [.1C47.0020.0014][.0000.0110.0014][.1CAA.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1C47.0020.0004][.0000.0110.0004][.1CAA.0020.0004][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1C47.0020.000A][.0000.0110.0004][.1CAA.0020.000A][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1C47.0020.0004][.0000.0110.0004][.1CAA.0020.0004][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1C47.0020.000A][.0000.0110.0004][.1CAA.0020.000A][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+33C2 ; [.1C47.0020.001C][*0277.0020.001C][.1DAA.0020.001C][*0277.0020.001C] # SQUARE AM
+33DF ; [.1C47.0020.001D][*0625.0020.001C][.1DAA.0020.001C] # SQUARE A OVER M
+1DD5 ; [.1C47.0020.0004][.1DDD.0020.0004] # COMBINING LATIN SMALL LETTER AO
+A735 ; [.1C47.0020.0004][.1DDD.0020.0004] # LATIN SMALL LETTER AO
+A734 ; [.1C47.0020.000A][.1DDD.0020.000A] # LATIN CAPITAL LETTER AO
+2101 ; [.1C47.0020.0004][*0394.0020.0004][.1E71.0020.0004] # ADDRESSED TO THE SUBJECT
+214D ; [.1C47.0020.000A][*0394.0020.0004][.1E71.0020.000A] # AKTIESELSKAB
+A737 ; [.1C47.0020.0004][.1EB5.0020.0004] # LATIN SMALL LETTER AU
+A736 ; [.1C47.0020.000A][.1EB5.0020.000A] # LATIN CAPITAL LETTER AU
+3373 ; [.1C47.0020.001D][.1EB5.0020.001D] # SQUARE AU
+1DD6 ; [.1C47.0020.0004][.1EE3.0020.0004] # COMBINING LATIN SMALL LETTER AV
+A739 ; [.1C47.0020.0004][.1EE3.0020.0004] # LATIN SMALL LETTER AV
+A738 ; [.1C47.0020.000A][.1EE3.0020.000A] # LATIN CAPITAL LETTER AV
+A73B ; [.1C47.0020.0004][.0000.0110.0004][.1EE3.0020.0004] # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
+A73A ; [.1C47.0020.000A][.0000.0110.0004][.1EE3.0020.000A] # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+A73D ; [.1C47.0020.0004][.1F0B.0020.0004] # LATIN SMALL LETTER AY
+A73C ; [.1C47.0020.000A][.1F0B.0020.000A] # LATIN CAPITAL LETTER AY
+1E9A ; [.1C47.0020.0004][.1F80.0020.0004] # LATIN SMALL LETTER A WITH RIGHT HALF RING
+1D00 ; [.1C4B.0020.0002] # LATIN LETTER SMALL CAPITAL A
+2C65 ; [.1C4C.0020.0002] # LATIN SMALL LETTER A WITH STROKE
+023A ; [.1C4C.0020.0008] # LATIN CAPITAL LETTER A WITH STROKE
+1D8F ; [.1C4D.0020.0002] # LATIN SMALL LETTER A WITH RETROFLEX HOOK
+1D01 ; [.1C4E.0020.0002] # LATIN LETTER SMALL CAPITAL AE
+1D02 ; [.1C4F.0020.0002] # LATIN SMALL LETTER TURNED AE
+1D46 ; [.1C4F.0020.0014] # MODIFIER LETTER SMALL TURNED AE
+AB31 ; [.1C50.0020.0002] # LATIN SMALL LETTER A REVERSED-SCHWA
+0250 ; [.1C51.0020.0002] # LATIN SMALL LETTER TURNED A
+2C6F ; [.1C51.0020.0008] # LATIN CAPITAL LETTER TURNED A
+1D44 ; [.1C51.0020.0014] # MODIFIER LETTER SMALL TURNED A
+0251 ; [.1C55.0020.0002] # LATIN SMALL LETTER ALPHA
+1DE7 ; [.1C55.0020.0004] # COMBINING LATIN SMALL LETTER ALPHA
+2C6D ; [.1C55.0020.0008] # LATIN CAPITAL LETTER ALPHA
+1D45 ; [.1C55.0020.0014] # MODIFIER LETTER SMALL ALPHA
+AB30 ; [.1C59.0020.0002] # LATIN SMALL LETTER BARRED ALPHA
+1D90 ; [.1C5A.0020.0002] # LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
+0252 ; [.1C5B.0020.0002] # LATIN SMALL LETTER TURNED ALPHA
+2C70 ; [.1C5B.0020.0008] # LATIN CAPITAL LETTER TURNED ALPHA
+1D9B ; [.1C5B.0020.0014] # MODIFIER LETTER SMALL TURNED ALPHA
+AB64 ; [.1C5F.0020.0002] # LATIN SMALL LETTER INVERTED ALPHA
+0062 ; [.1C60.0020.0002] # LATIN SMALL LETTER B
+FF42 ; [.1C60.0020.0003] # FULLWIDTH LATIN SMALL LETTER B
+1DE8 ; [.1C60.0020.0004] # COMBINING LATIN SMALL LETTER B
+249D ; [*0317.0020.0004][.1C60.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER B
+1D41B ; [.1C60.0020.0005] # MATHEMATICAL BOLD SMALL B
+1D44F ; [.1C60.0020.0005] # MATHEMATICAL ITALIC SMALL B
+1D483 ; [.1C60.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL B
+1D4B7 ; [.1C60.0020.0005] # MATHEMATICAL SCRIPT SMALL B
+1D4EB ; [.1C60.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL B
+1D51F ; [.1C60.0020.0005] # MATHEMATICAL FRAKTUR SMALL B
+1D553 ; [.1C60.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL B
+1D587 ; [.1C60.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL B
+1D5BB ; [.1C60.0020.0005] # MATHEMATICAL SANS-SERIF SMALL B
+1D5EF ; [.1C60.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL B
+1D623 ; [.1C60.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL B
+1D657 ; [.1C60.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
+1D68B ; [.1C60.0020.0005] # MATHEMATICAL MONOSPACE SMALL B
+24D1 ; [.1C60.0020.0006] # CIRCLED LATIN SMALL LETTER B
+0042 ; [.1C60.0020.0008] # LATIN CAPITAL LETTER B
+FF22 ; [.1C60.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER B
+1F111 ; [*0317.0020.0004][.1C60.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER B
+212C ; [.1C60.0020.000B] # SCRIPT CAPITAL B
+1D401 ; [.1C60.0020.000B] # MATHEMATICAL BOLD CAPITAL B
+1D435 ; [.1C60.0020.000B] # MATHEMATICAL ITALIC CAPITAL B
+1D469 ; [.1C60.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL B
+1D4D1 ; [.1C60.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL B
+1D505 ; [.1C60.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL B
+1D539 ; [.1C60.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D56D ; [.1C60.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL B
+1D5A1 ; [.1C60.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL B
+1D5D5 ; [.1C60.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+1D609 ; [.1C60.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+1D63D ; [.1C60.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+1D671 ; [.1C60.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL B
+24B7 ; [.1C60.0020.000C] # CIRCLED LATIN CAPITAL LETTER B
+1F151 ; [.1C60.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER B
+1D47 ; [.1C60.0020.0014] # MODIFIER LETTER SMALL B
+1D2E ; [.1C60.0020.001D] # MODIFIER LETTER CAPITAL B
+1F131 ; [.1C60.0020.001D] # SQUARED LATIN CAPITAL LETTER B
+1F171 ; [.1C60.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER B
+1E03 ; [.1C60.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER B WITH DOT ABOVE
+1E02 ; [.1C60.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E05 ; [.1C60.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER B WITH DOT BELOW
+1E04 ; [.1C60.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER B WITH DOT BELOW
+1E07 ; [.1C60.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER B WITH LINE BELOW
+1E06 ; [.1C60.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER B WITH LINE BELOW
+3374 ; [.1C60.0020.001C][.1C47.0020.001C][.1E33.0020.001C] # SQUARE BAR
+33C3 ; [.1C60.0020.001D][.1E21.0020.001C] # SQUARE BQ
+0299 ; [.1C64.0020.0002] # LATIN LETTER SMALL CAPITAL B
+0180 ; [.1C68.0020.0002] # LATIN SMALL LETTER B WITH STROKE
+0243 ; [.1C68.0020.0008] # LATIN CAPITAL LETTER B WITH STROKE
+1D2F ; [.1C6C.0020.0002] # MODIFIER LETTER CAPITAL BARRED B
+1D03 ; [.1C6D.0020.0002] # LATIN LETTER SMALL CAPITAL BARRED B
+1D6C ; [.1C6E.0020.0002] # LATIN SMALL LETTER B WITH MIDDLE TILDE
+A797 ; [.1C6F.0020.0002] # LATIN SMALL LETTER B WITH FLOURISH
+A796 ; [.1C6F.0020.0008] # LATIN CAPITAL LETTER B WITH FLOURISH
+1D80 ; [.1C70.0020.0002] # LATIN SMALL LETTER B WITH PALATAL HOOK
+0253 ; [.1C71.0020.0002] # LATIN SMALL LETTER B WITH HOOK
+0181 ; [.1C71.0020.0008] # LATIN CAPITAL LETTER B WITH HOOK
+0183 ; [.1C75.0020.0002] # LATIN SMALL LETTER B WITH TOPBAR
+0182 ; [.1C75.0020.0008] # LATIN CAPITAL LETTER B WITH TOPBAR
+A7B5 ; [.1C79.0020.0002] # LATIN SMALL LETTER BETA
+1DE9 ; [.1C79.0020.0004] # COMBINING LATIN SMALL LETTER BETA
+A7B4 ; [.1C79.0020.0008] # LATIN CAPITAL LETTER BETA
+0063 ; [.1C7A.0020.0002] # LATIN SMALL LETTER C
+FF43 ; [.1C7A.0020.0003] # FULLWIDTH LATIN SMALL LETTER C
+0368 ; [.1C7A.0020.0004] # COMBINING LATIN SMALL LETTER C
+217D ; [.1C7A.0020.0004] # SMALL ROMAN NUMERAL ONE HUNDRED
+249E ; [*0317.0020.0004][.1C7A.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER C
+1D41C ; [.1C7A.0020.0005] # MATHEMATICAL BOLD SMALL C
+1D450 ; [.1C7A.0020.0005] # MATHEMATICAL ITALIC SMALL C
+1D484 ; [.1C7A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL C
+1D4B8 ; [.1C7A.0020.0005] # MATHEMATICAL SCRIPT SMALL C
+1D4EC ; [.1C7A.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL C
+1D520 ; [.1C7A.0020.0005] # MATHEMATICAL FRAKTUR SMALL C
+1D554 ; [.1C7A.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL C
+1D588 ; [.1C7A.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL C
+1D5BC ; [.1C7A.0020.0005] # MATHEMATICAL SANS-SERIF SMALL C
+1D5F0 ; [.1C7A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL C
+1D624 ; [.1C7A.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL C
+1D658 ; [.1C7A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
+1D68C ; [.1C7A.0020.0005] # MATHEMATICAL MONOSPACE SMALL C
+24D2 ; [.1C7A.0020.0006] # CIRCLED LATIN SMALL LETTER C
+0043 ; [.1C7A.0020.0008] # LATIN CAPITAL LETTER C
+FF23 ; [.1C7A.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER C
+2103 ; [*04F6.0020.0004][.1C7A.0020.000A] # DEGREE CELSIUS
+216D ; [.1C7A.0020.000A] # ROMAN NUMERAL ONE HUNDRED
+1F112 ; [*0317.0020.0004][.1C7A.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER C
+2102 ; [.1C7A.0020.000B] # DOUBLE-STRUCK CAPITAL C
+212D ; [.1C7A.0020.000B] # BLACK-LETTER CAPITAL C
+1D402 ; [.1C7A.0020.000B] # MATHEMATICAL BOLD CAPITAL C
+1D436 ; [.1C7A.0020.000B] # MATHEMATICAL ITALIC CAPITAL C
+1D46A ; [.1C7A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL C
+1D49E ; [.1C7A.0020.000B] # MATHEMATICAL SCRIPT CAPITAL C
+1D4D2 ; [.1C7A.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL C
+1D56E ; [.1C7A.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL C
+1D5A2 ; [.1C7A.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL C
+1D5D6 ; [.1C7A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+1D60A ; [.1C7A.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+1D63E ; [.1C7A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+1D672 ; [.1C7A.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL C
+24B8 ; [.1C7A.0020.000C] # CIRCLED LATIN CAPITAL LETTER C
+1F12B ; [.1C7A.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER C
+1F152 ; [.1C7A.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER C
+1D9C ; [.1C7A.0020.0014] # MODIFIER LETTER SMALL C
+1F132 ; [.1C7A.0020.001D] # SQUARED LATIN CAPITAL LETTER C
+1F172 ; [.1C7A.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER C
+0107 ; [.1C7A.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH ACUTE
+0106 ; [.1C7A.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH ACUTE
+0109 ; [.1C7A.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
+0108 ; [.1C7A.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+010D ; [.1C7A.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C7A.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER C WITH CARON
+010B ; [.1C7A.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
+010A ; [.1C7A.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER C WITH DOT ABOVE
+00E7 ; [.1C7A.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER C WITH CEDILLA
+1DD7 ; [.1C7A.0020.0004][.0000.0030.0004] # COMBINING LATIN SMALL LETTER C CEDILLA
+00C7 ; [.1C7A.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER C WITH CEDILLA
+1E09 ; [.1C7A.0020.0002][.0000.0030.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E08 ; [.1C7A.0020.0008][.0000.0030.0002][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+3388 ; [.1C7A.0020.001C][.1C47.0020.001C][.1D77.0020.001C] # SQUARE CAL
+33C4 ; [.1C7A.0020.001C][.1C7A.0020.001C] # SQUARE CC
+1F12D ; [.1C7A.0020.000C][.1C8F.0020.000C] # CIRCLED CD
+33C5 ; [.1C7A.0020.001C][.1C8F.0020.001C] # SQUARE CD
+33C6 ; [.1C7A.0020.001D][*0625.0020.001C][.1D65.0020.001C][.1CF4.0020.001C] # SQUARE C OVER KG
+1F191 ; [.1C7A.0020.001D][.1D77.0020.001D] # SQUARED CL
+339D ; [.1C7A.0020.001C][.1DAA.0020.001C] # SQUARE CM
+33A0 ; [.1C7A.0020.001C][.1DAA.0020.001C][.1C3F.0020.001C] # SQUARE CM SQUARED
+33A4 ; [.1C7A.0020.001C][.1DAA.0020.001C][.1C40.0020.001C] # SQUARE CM CUBED
+2105 ; [.1C7A.0020.0004][*0394.0020.0004][.1DDD.0020.0004] # CARE OF
+33C7 ; [.1C7A.0020.001D][.1DDD.0020.001C][*0277.0020.001C] # SQUARE CO
+1F192 ; [.1C7A.0020.001D][.1DDD.0020.001D][.1DDD.0020.001D][.1D77.0020.001D] # SQUARED COOL
+2106 ; [.1C7A.0020.0004][*0394.0020.0004][.1EB5.0020.0004] # CADA UNA
+1D04 ; [.1C7E.0020.0002] # LATIN LETTER SMALL CAPITAL C
+023C ; [.1C7F.0020.0002] # LATIN SMALL LETTER C WITH STROKE
+023B ; [.1C7F.0020.0008] # LATIN CAPITAL LETTER C WITH STROKE
+A793 ; [.1C83.0020.0002] # LATIN SMALL LETTER C WITH BAR
+A792 ; [.1C83.0020.0008] # LATIN CAPITAL LETTER C WITH BAR
+A794 ; [.1C84.0020.0002] # LATIN SMALL LETTER C WITH PALATAL HOOK
+0188 ; [.1C85.0020.0002] # LATIN SMALL LETTER C WITH HOOK
+0187 ; [.1C85.0020.0008] # LATIN CAPITAL LETTER C WITH HOOK
+0255 ; [.1C89.0020.0002] # LATIN SMALL LETTER C WITH CURL
+1D9D ; [.1C89.0020.0014] # MODIFIER LETTER SMALL C WITH CURL
+2184 ; [.1C8D.0020.0002] # LATIN SMALL LETTER REVERSED C
+2183 ; [.1C8D.0020.0008] # ROMAN NUMERAL REVERSED ONE HUNDRED
+A73F ; [.1C8E.0020.0002] # LATIN SMALL LETTER REVERSED C WITH DOT
+A73E ; [.1C8E.0020.0008] # LATIN CAPITAL LETTER REVERSED C WITH DOT
+0064 ; [.1C8F.0020.0002] # LATIN SMALL LETTER D
+FF44 ; [.1C8F.0020.0003] # FULLWIDTH LATIN SMALL LETTER D
+0369 ; [.1C8F.0020.0004] # COMBINING LATIN SMALL LETTER D
+217E ; [.1C8F.0020.0004] # SMALL ROMAN NUMERAL FIVE HUNDRED
+249F ; [*0317.0020.0004][.1C8F.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER D
+2146 ; [.1C8F.0020.0005] # DOUBLE-STRUCK ITALIC SMALL D
+1D41D ; [.1C8F.0020.0005] # MATHEMATICAL BOLD SMALL D
+1D451 ; [.1C8F.0020.0005] # MATHEMATICAL ITALIC SMALL D
+1D485 ; [.1C8F.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL D
+1D4B9 ; [.1C8F.0020.0005] # MATHEMATICAL SCRIPT SMALL D
+1D4ED ; [.1C8F.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL D
+1D521 ; [.1C8F.0020.0005] # MATHEMATICAL FRAKTUR SMALL D
+1D555 ; [.1C8F.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL D
+1D589 ; [.1C8F.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL D
+1D5BD ; [.1C8F.0020.0005] # MATHEMATICAL SANS-SERIF SMALL D
+1D5F1 ; [.1C8F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL D
+1D625 ; [.1C8F.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL D
+1D659 ; [.1C8F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
+1D68D ; [.1C8F.0020.0005] # MATHEMATICAL MONOSPACE SMALL D
+24D3 ; [.1C8F.0020.0006] # CIRCLED LATIN SMALL LETTER D
+0044 ; [.1C8F.0020.0008] # LATIN CAPITAL LETTER D
+FF24 ; [.1C8F.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER D
+216E ; [.1C8F.0020.000A] # ROMAN NUMERAL FIVE HUNDRED
+1F113 ; [*0317.0020.0004][.1C8F.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER D
+2145 ; [.1C8F.0020.000B] # DOUBLE-STRUCK ITALIC CAPITAL D
+1D403 ; [.1C8F.0020.000B] # MATHEMATICAL BOLD CAPITAL D
+1D437 ; [.1C8F.0020.000B] # MATHEMATICAL ITALIC CAPITAL D
+1D46B ; [.1C8F.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL D
+1D49F ; [.1C8F.0020.000B] # MATHEMATICAL SCRIPT CAPITAL D
+1D4D3 ; [.1C8F.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL D
+1D507 ; [.1C8F.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL D
+1D53B ; [.1C8F.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+1D56F ; [.1C8F.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL D
+1D5A3 ; [.1C8F.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL D
+1D5D7 ; [.1C8F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+1D60B ; [.1C8F.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+1D63F ; [.1C8F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+1D673 ; [.1C8F.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL D
+24B9 ; [.1C8F.0020.000C] # CIRCLED LATIN CAPITAL LETTER D
+1F153 ; [.1C8F.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER D
+1D48 ; [.1C8F.0020.0014] # MODIFIER LETTER SMALL D
+1F1A5 ; [.1C8F.0020.001C] # SQUARED LATIN SMALL LETTER D
+1D30 ; [.1C8F.0020.001D] # MODIFIER LETTER CAPITAL D
+1F133 ; [.1C8F.0020.001D] # SQUARED LATIN CAPITAL LETTER D
+1F173 ; [.1C8F.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER D
+010F ; [.1C8F.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER D WITH CARON
+010E ; [.1C8F.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER D WITH CARON
+1E0B ; [.1C8F.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER D WITH DOT ABOVE
+1E0A ; [.1C8F.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E11 ; [.1C8F.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER D WITH CEDILLA
+1E10 ; [.1C8F.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER D WITH CEDILLA
+0111 ; [.1C8F.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C8F.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
+1E0D ; [.1C8F.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER D WITH DOT BELOW
+1E0C ; [.1C8F.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER D WITH DOT BELOW
+1E13 ; [.1C8F.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E12 ; [.1C8F.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E0F ; [.1C8F.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER D WITH LINE BELOW
+1E0E ; [.1C8F.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER D WITH LINE BELOW
+00F0 ; [.1C8F.0020.0004][.0000.0110.0004] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C8F.0020.0004][.0000.0110.0004] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C8F.0020.000A][.0000.0110.0004] # LATIN CAPITAL LETTER ETH
+1D9E ; [.1C8F.0020.0014][.0000.0110.0014] # MODIFIER LETTER SMALL ETH
+1DD8 ; [.1C8F.0020.0004][.0000.0111.0004] # COMBINING LATIN SMALL LETTER INSULAR D
+A77A ; [.1C8F.0020.0004][.0000.0111.0004] # LATIN SMALL LETTER INSULAR D
+A779 ; [.1C8F.0020.000A][.0000.0111.0004] # LATIN CAPITAL LETTER INSULAR D
+3372 ; [.1C8F.0020.001C][.1C47.0020.001C] # SQUARE DA
+0238 ; [.1C8F.0020.0004][.1C60.0020.0004] # LATIN SMALL LETTER DB DIGRAPH
+33C8 ; [.1C8F.0020.001C][.1C60.0020.001D] # SQUARE DB
+1F190 ; [.1C8F.0020.001D][.1D4C.0020.001D] # SQUARE DJ
+3397 ; [.1C8F.0020.001C][.1D77.0020.001C] # SQUARE DL
+3377 ; [.1C8F.0020.001C][.1DAA.0020.001C] # SQUARE DM
+3378 ; [.1C8F.0020.001C][.1DAA.0020.001C][.1C3F.0020.001C] # SQUARE DM SQUARED
+3379 ; [.1C8F.0020.001C][.1DAA.0020.001C][.1C40.0020.001C] # SQUARE DM CUBED
+01F3 ; [.1C8F.0020.0004][.1F21.0020.0004] # LATIN SMALL LETTER DZ
+02A3 ; [.1C8F.0020.0004][.1F21.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH
+01F2 ; [.1C8F.0020.000A][.1F21.0020.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+01F1 ; [.1C8F.0020.000A][.1F21.0020.000A] # LATIN CAPITAL LETTER DZ
+01C6 ; [.1C8F.0020.0004][.1F21.0020.0004][.0000.0028.0004] # LATIN SMALL LETTER DZ WITH CARON
+01C5 ; [.1C8F.0020.000A][.1F21.0020.0004][.0000.0028.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+01C4 ; [.1C8F.0020.000A][.1F21.0020.000A][.0000.0028.0004] # LATIN CAPITAL LETTER DZ WITH CARON
+02A5 ; [.1C8F.0020.0004][.1F34.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
+02A4 ; [.1C8F.0020.0004][.1F3E.0020.0004] # LATIN SMALL LETTER DEZH DIGRAPH
+1D05 ; [.1C93.0020.0002] # LATIN LETTER SMALL CAPITAL D
+1D06 ; [.1C94.0020.0002] # LATIN LETTER SMALL CAPITAL ETH
+1D6D ; [.1C95.0020.0002] # LATIN SMALL LETTER D WITH MIDDLE TILDE
+1D81 ; [.1C96.0020.0002] # LATIN SMALL LETTER D WITH PALATAL HOOK
+0256 ; [.1C97.0020.0002] # LATIN SMALL LETTER D WITH TAIL
+0189 ; [.1C97.0020.0008] # LATIN CAPITAL LETTER AFRICAN D
+0257 ; [.1C9B.0020.0002] # LATIN SMALL LETTER D WITH HOOK
+018A ; [.1C9B.0020.0008] # LATIN CAPITAL LETTER D WITH HOOK
+1D91 ; [.1C9F.0020.0002] # LATIN SMALL LETTER D WITH HOOK AND TAIL
+018C ; [.1CA0.0020.0002] # LATIN SMALL LETTER D WITH TOPBAR
+018B ; [.1CA0.0020.0008] # LATIN CAPITAL LETTER D WITH TOPBAR
+0221 ; [.1CA4.0020.0002] # LATIN SMALL LETTER D WITH CURL
+A771 ; [.1CA8.0020.0002] # LATIN SMALL LETTER DUM
+1E9F ; [.1CA9.0020.0002] # LATIN SMALL LETTER DELTA
+0065 ; [.1CAA.0020.0002] # LATIN SMALL LETTER E
+FF45 ; [.1CAA.0020.0003] # FULLWIDTH LATIN SMALL LETTER E
+0364 ; [.1CAA.0020.0004] # COMBINING LATIN SMALL LETTER E
+24A0 ; [*0317.0020.0004][.1CAA.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER E
+212F ; [.1CAA.0020.0005] # SCRIPT SMALL E
+2147 ; [.1CAA.0020.0005] # DOUBLE-STRUCK ITALIC SMALL E
+1D41E ; [.1CAA.0020.0005] # MATHEMATICAL BOLD SMALL E
+1D452 ; [.1CAA.0020.0005] # MATHEMATICAL ITALIC SMALL E
+1D486 ; [.1CAA.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL E
+1D4EE ; [.1CAA.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL E
+1D522 ; [.1CAA.0020.0005] # MATHEMATICAL FRAKTUR SMALL E
+1D556 ; [.1CAA.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL E
+1D58A ; [.1CAA.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL E
+1D5BE ; [.1CAA.0020.0005] # MATHEMATICAL SANS-SERIF SMALL E
+1D5F2 ; [.1CAA.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL E
+1D626 ; [.1CAA.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL E
+1D65A ; [.1CAA.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
+1D68E ; [.1CAA.0020.0005] # MATHEMATICAL MONOSPACE SMALL E
+24D4 ; [.1CAA.0020.0006] # CIRCLED LATIN SMALL LETTER E
+0045 ; [.1CAA.0020.0008] # LATIN CAPITAL LETTER E
+FF25 ; [.1CAA.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER E
+1F114 ; [*0317.0020.0004][.1CAA.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER E
+2130 ; [.1CAA.0020.000B] # SCRIPT CAPITAL E
+1D404 ; [.1CAA.0020.000B] # MATHEMATICAL BOLD CAPITAL E
+1D438 ; [.1CAA.0020.000B] # MATHEMATICAL ITALIC CAPITAL E
+1D46C ; [.1CAA.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL E
+1D4D4 ; [.1CAA.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL E
+1D508 ; [.1CAA.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL E
+1D53C ; [.1CAA.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+1D570 ; [.1CAA.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL E
+1D5A4 ; [.1CAA.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL E
+1D5D8 ; [.1CAA.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+1D60C ; [.1CAA.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+1D640 ; [.1CAA.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+1D674 ; [.1CAA.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL E
+24BA ; [.1CAA.0020.000C] # CIRCLED LATIN CAPITAL LETTER E
+1F154 ; [.1CAA.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER E
+1D49 ; [.1CAA.0020.0014] # MODIFIER LETTER SMALL E
+2091 ; [.1CAA.0020.0015] # LATIN SUBSCRIPT SMALL LETTER E
+1D31 ; [.1CAA.0020.001D] # MODIFIER LETTER CAPITAL E
+1F134 ; [.1CAA.0020.001D] # SQUARED LATIN CAPITAL LETTER E
+1F174 ; [.1CAA.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER E
+00E9 ; [.1CAA.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1CAA.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH ACUTE
+00E8 ; [.1CAA.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1CAA.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH GRAVE
+0115 ; [.1CAA.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH BREVE
+0114 ; [.1CAA.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH BREVE
+00EA ; [.1CAA.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1CAA.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EBF ; [.1CAA.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1CAA.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC1 ; [.1CAA.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1CAA.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC5 ; [.1CAA.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1CAA.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1CAA.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1CAA.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+011B ; [.1CAA.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1CAA.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER E WITH CARON
+00EB ; [.1CAA.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+00CB ; [.1CAA.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER E WITH DIAERESIS
+1EBD ; [.1CAA.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH TILDE
+1EBC ; [.1CAA.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH TILDE
+0117 ; [.1CAA.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
+0116 ; [.1CAA.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER E WITH DOT ABOVE
+0229 ; [.1CAA.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER E WITH CEDILLA
+0228 ; [.1CAA.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER E WITH CEDILLA
+1E1D ; [.1CAA.0020.0002][.0000.0030.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1C ; [.1CAA.0020.0008][.0000.0030.0002][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+0119 ; [.1CAA.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1CAA.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER E WITH OGONEK
+0113 ; [.1CAA.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1CAA.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
+1E17 ; [.1CAA.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E16 ; [.1CAA.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E15 ; [.1CAA.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E14 ; [.1CAA.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1EBB ; [.1CAA.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBA ; [.1CAA.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+0205 ; [.1CAA.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0204 ; [.1CAA.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0207 ; [.1CAA.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER E WITH INVERTED BREVE
+0206 ; [.1CAA.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER E WITH INVERTED BREVE
+1EB9 ; [.1CAA.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH DOT BELOW
+1EB8 ; [.1CAA.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH DOT BELOW
+1EC7 ; [.1CAA.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1CAA.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1E19 ; [.1CAA.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E18 ; [.1CAA.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E1B ; [.1CAA.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER E WITH TILDE BELOW
+1E1A ; [.1CAA.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER E WITH TILDE BELOW
+32CD ; [.1CAA.0020.001C][.1E33.0020.001C][.1CF4.0020.001C] # SQUARE ERG
+32CE ; [.1CAA.0020.001C][.1EE3.0020.001D] # SQUARE EV
+1D07 ; [.1CAE.0020.0002] # LATIN LETTER SMALL CAPITAL E
+AB32 ; [.1CAF.0020.0002] # LATIN SMALL LETTER BLACKLETTER E
+AB33 ; [.1CB0.0020.0002] # LATIN SMALL LETTER BARRED E
+0247 ; [.1CB1.0020.0002] # LATIN SMALL LETTER E WITH STROKE
+0246 ; [.1CB1.0020.0008] # LATIN CAPITAL LETTER E WITH STROKE
+1D92 ; [.1CB5.0020.0002] # LATIN SMALL LETTER E WITH RETROFLEX HOOK
+AB34 ; [.1CB6.0020.0002] # LATIN SMALL LETTER E WITH FLOURISH
+2C78 ; [.1CB7.0020.0002] # LATIN SMALL LETTER E WITH NOTCH
+01DD ; [.1CB8.0020.0002] # LATIN SMALL LETTER TURNED E
+018E ; [.1CB8.0020.0008] # LATIN CAPITAL LETTER REVERSED E
+1D32 ; [.1CB8.0020.001D] # MODIFIER LETTER CAPITAL REVERSED E
+2C7B ; [.1CBC.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED E
+0259 ; [.1CBD.0020.0002] # LATIN SMALL LETTER SCHWA
+1DEA ; [.1CBD.0020.0004] # COMBINING LATIN SMALL LETTER SCHWA
+018F ; [.1CBD.0020.0008] # LATIN CAPITAL LETTER SCHWA
+1D4A ; [.1CBD.0020.0014] # MODIFIER LETTER SMALL SCHWA
+2094 ; [.1CBD.0020.0015] # LATIN SUBSCRIPT SMALL LETTER SCHWA
+1D95 ; [.1CC1.0020.0002] # LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
+025B ; [.1CC2.0020.0002] # LATIN SMALL LETTER OPEN E
+0190 ; [.1CC2.0020.0008] # LATIN CAPITAL LETTER OPEN E
+2107 ; [.1CC2.0020.000A] # EULER CONSTANT
+1D4B ; [.1CC2.0020.0014] # MODIFIER LETTER SMALL OPEN E
+1D93 ; [.1CC6.0020.0002] # LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
+0258 ; [.1CC7.0020.0002] # LATIN SMALL LETTER REVERSED E
+025A ; [.1CCB.0020.0002] # LATIN SMALL LETTER SCHWA WITH HOOK
+025C ; [.1CCF.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E
+A7AB ; [.1CCF.0020.0008] # LATIN CAPITAL LETTER REVERSED OPEN E
+1D9F ; [.1CCF.0020.0014] # MODIFIER LETTER SMALL REVERSED OPEN E
+1D94 ; [.1CD3.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
+1D08 ; [.1CD4.0020.0002] # LATIN SMALL LETTER TURNED OPEN E
+1D4C ; [.1CD4.0020.0014] # MODIFIER LETTER SMALL TURNED OPEN E
+025D ; [.1CD5.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
+025E ; [.1CD9.0020.0002] # LATIN SMALL LETTER CLOSED REVERSED OPEN E
+029A ; [.1CDD.0020.0002] # LATIN SMALL LETTER CLOSED OPEN E
+0264 ; [.1CE1.0020.0002] # LATIN SMALL LETTER RAMS HORN
+0066 ; [.1CE5.0020.0002] # LATIN SMALL LETTER F
+FF46 ; [.1CE5.0020.0003] # FULLWIDTH LATIN SMALL LETTER F
+1DEB ; [.1CE5.0020.0004] # COMBINING LATIN SMALL LETTER F
+24A1 ; [*0317.0020.0004][.1CE5.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER F
+1D41F ; [.1CE5.0020.0005] # MATHEMATICAL BOLD SMALL F
+1D453 ; [.1CE5.0020.0005] # MATHEMATICAL ITALIC SMALL F
+1D487 ; [.1CE5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL F
+1D4BB ; [.1CE5.0020.0005] # MATHEMATICAL SCRIPT SMALL F
+1D4EF ; [.1CE5.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL F
+1D523 ; [.1CE5.0020.0005] # MATHEMATICAL FRAKTUR SMALL F
+1D557 ; [.1CE5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL F
+1D58B ; [.1CE5.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL F
+1D5BF ; [.1CE5.0020.0005] # MATHEMATICAL SANS-SERIF SMALL F
+1D5F3 ; [.1CE5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL F
+1D627 ; [.1CE5.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL F
+1D65B ; [.1CE5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
+1D68F ; [.1CE5.0020.0005] # MATHEMATICAL MONOSPACE SMALL F
+24D5 ; [.1CE5.0020.0006] # CIRCLED LATIN SMALL LETTER F
+0046 ; [.1CE5.0020.0008] # LATIN CAPITAL LETTER F
+FF26 ; [.1CE5.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER F
+2109 ; [*04F6.0020.0004][.1CE5.0020.000A] # DEGREE FAHRENHEIT
+1F115 ; [*0317.0020.0004][.1CE5.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER F
+2131 ; [.1CE5.0020.000B] # SCRIPT CAPITAL F
+1D405 ; [.1CE5.0020.000B] # MATHEMATICAL BOLD CAPITAL F
+1D439 ; [.1CE5.0020.000B] # MATHEMATICAL ITALIC CAPITAL F
+1D46D ; [.1CE5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL F
+1D4D5 ; [.1CE5.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL F
+1D509 ; [.1CE5.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL F
+1D53D ; [.1CE5.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+1D571 ; [.1CE5.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL F
+1D5A5 ; [.1CE5.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL F
+1D5D9 ; [.1CE5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+1D60D ; [.1CE5.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+1D641 ; [.1CE5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+1D675 ; [.1CE5.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL F
+24BB ; [.1CE5.0020.000C] # CIRCLED LATIN CAPITAL LETTER F
+1F155 ; [.1CE5.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER F
+1DA0 ; [.1CE5.0020.0014] # MODIFIER LETTER SMALL F
+1F135 ; [.1CE5.0020.001D] # SQUARED LATIN CAPITAL LETTER F
+1F175 ; [.1CE5.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER F
+1E1F ; [.1CE5.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER F WITH DOT ABOVE
+1E1E ; [.1CE5.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER F WITH DOT ABOVE
+A77C ; [.1CE5.0020.0004][.0000.0111.0004] # LATIN SMALL LETTER INSULAR F
+A77B ; [.1CE5.0020.000A][.0000.0111.0004] # LATIN CAPITAL LETTER INSULAR F
+213B ; [.1CE5.0020.000A][.1C47.0020.000A][.1EFF.0020.000A] # FACSIMILE SIGN
+FB00 ; [.1CE5.0020.0004][.1CE5.0020.0004] # LATIN SMALL LIGATURE FF
+FB03 ; [.1CE5.0020.0004][.1CE5.0020.0004][.1D32.0020.0004] # LATIN SMALL LIGATURE FFI
+FB04 ; [.1CE5.0020.0004][.1CE5.0020.0004][.1D77.0020.0004] # LATIN SMALL LIGATURE FFL
+FB01 ; [.1CE5.0020.0004][.1D32.0020.0004] # LATIN SMALL LIGATURE FI
+FB02 ; [.1CE5.0020.0004][.1D77.0020.0004] # LATIN SMALL LIGATURE FL
+3399 ; [.1CE5.0020.001C][.1DAA.0020.001C] # SQUARE FM
+02A9 ; [.1CE5.0020.0004][.1DD8.0020.0004] # LATIN SMALL LETTER FENG DIGRAPH
+1F193 ; [.1CE5.0020.001D][.1E33.0020.001D][.1CAA.0020.001D][.1CAA.0020.001D] # SQUARED FREE
+A730 ; [.1CE9.0020.0002] # LATIN LETTER SMALL CAPITAL F
+AB35 ; [.1CEA.0020.0002] # LATIN SMALL LETTER LENIS F
+A799 ; [.1CEB.0020.0002] # LATIN SMALL LETTER F WITH STROKE
+A798 ; [.1CEB.0020.0008] # LATIN CAPITAL LETTER F WITH STROKE
+1D6E ; [.1CEC.0020.0002] # LATIN SMALL LETTER F WITH MIDDLE TILDE
+1D82 ; [.1CED.0020.0002] # LATIN SMALL LETTER F WITH PALATAL HOOK
+0192 ; [.1CEE.0020.0002] # LATIN SMALL LETTER F WITH HOOK
+0191 ; [.1CEE.0020.0008] # LATIN CAPITAL LETTER F WITH HOOK
+214E ; [.1CF2.0020.0002] # TURNED SMALL F
+2132 ; [.1CF2.0020.0008] # TURNED CAPITAL F
+A7FB ; [.1CF3.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED F
+0067 ; [.1CF4.0020.0002] # LATIN SMALL LETTER G
+FF47 ; [.1CF4.0020.0003] # FULLWIDTH LATIN SMALL LETTER G
+1DDA ; [.1CF4.0020.0004] # COMBINING LATIN SMALL LETTER G
+24A2 ; [*0317.0020.0004][.1CF4.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER G
+210A ; [.1CF4.0020.0005] # SCRIPT SMALL G
+1D420 ; [.1CF4.0020.0005] # MATHEMATICAL BOLD SMALL G
+1D454 ; [.1CF4.0020.0005] # MATHEMATICAL ITALIC SMALL G
+1D488 ; [.1CF4.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL G
+1D4F0 ; [.1CF4.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL G
+1D524 ; [.1CF4.0020.0005] # MATHEMATICAL FRAKTUR SMALL G
+1D558 ; [.1CF4.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL G
+1D58C ; [.1CF4.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL G
+1D5C0 ; [.1CF4.0020.0005] # MATHEMATICAL SANS-SERIF SMALL G
+1D5F4 ; [.1CF4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL G
+1D628 ; [.1CF4.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL G
+1D65C ; [.1CF4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
+1D690 ; [.1CF4.0020.0005] # MATHEMATICAL MONOSPACE SMALL G
+24D6 ; [.1CF4.0020.0006] # CIRCLED LATIN SMALL LETTER G
+0047 ; [.1CF4.0020.0008] # LATIN CAPITAL LETTER G
+FF27 ; [.1CF4.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER G
+1F116 ; [*0317.0020.0004][.1CF4.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER G
+1D406 ; [.1CF4.0020.000B] # MATHEMATICAL BOLD CAPITAL G
+1D43A ; [.1CF4.0020.000B] # MATHEMATICAL ITALIC CAPITAL G
+1D46E ; [.1CF4.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL G
+1D4A2 ; [.1CF4.0020.000B] # MATHEMATICAL SCRIPT CAPITAL G
+1D4D6 ; [.1CF4.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL G
+1D50A ; [.1CF4.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL G
+1D53E ; [.1CF4.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D572 ; [.1CF4.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL G
+1D5A6 ; [.1CF4.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL G
+1D5DA ; [.1CF4.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+1D60E ; [.1CF4.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+1D642 ; [.1CF4.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+1D676 ; [.1CF4.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL G
+24BC ; [.1CF4.0020.000C] # CIRCLED LATIN CAPITAL LETTER G
+1F156 ; [.1CF4.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER G
+1D4D ; [.1CF4.0020.0014] # MODIFIER LETTER SMALL G
+1D33 ; [.1CF4.0020.001D] # MODIFIER LETTER CAPITAL G
+1F136 ; [.1CF4.0020.001D] # SQUARED LATIN CAPITAL LETTER G
+1F176 ; [.1CF4.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER G
+01F5 ; [.1CF4.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER G WITH ACUTE
+01F4 ; [.1CF4.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER G WITH ACUTE
+011F ; [.1CF4.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER G WITH BREVE
+011E ; [.1CF4.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER G WITH BREVE
+011D ; [.1CF4.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
+011C ; [.1CF4.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+01E7 ; [.1CF4.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER G WITH CARON
+01E6 ; [.1CF4.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER G WITH CARON
+0121 ; [.1CF4.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
+0120 ; [.1CF4.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0123 ; [.1CF4.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER G WITH CEDILLA
+0122 ; [.1CF4.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER G WITH CEDILLA
+1E21 ; [.1CF4.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER G WITH MACRON
+1E20 ; [.1CF4.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER G WITH MACRON
+A7A1 ; [.1CF4.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER G WITH OBLIQUE STROKE
+A7A0 ; [.1CF4.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
+1D79 ; [.1CF4.0020.0004][.0000.0111.0004] # LATIN SMALL LETTER INSULAR G
+A77D ; [.1CF4.0020.000A][.0000.0111.0004] # LATIN CAPITAL LETTER INSULAR G
+33FF ; [.1CF4.0020.001C][.1C47.0020.001C][.1D77.0020.001C] # SQUARE GAL
+3387 ; [.1CF4.0020.001D][.1C60.0020.001D] # SQUARE GB
+3393 ; [.1CF4.0020.001D][.1D18.0020.001D][.1F21.0020.001C] # SQUARE GHZ
+33AC ; [.1CF4.0020.001D][.1E0C.0020.001D][.1C47.0020.001C] # SQUARE GPA
+33C9 ; [.1CF4.0020.001D][.1F0B.0020.001C] # SQUARE GY
+0261 ; [.1CF8.0020.0002] # LATIN SMALL LETTER SCRIPT G
+A7AC ; [.1CF8.0020.0008] # LATIN CAPITAL LETTER SCRIPT G
+1DA2 ; [.1CF8.0020.0014] # MODIFIER LETTER SMALL SCRIPT G
+AB36 ; [.1CFC.0020.0002] # LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL
+0262 ; [.1CFD.0020.0002] # LATIN LETTER SMALL CAPITAL G
+1DDB ; [.1CFD.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL G
+01E5 ; [.1D01.0020.0002] # LATIN SMALL LETTER G WITH STROKE
+01E4 ; [.1D01.0020.0008] # LATIN CAPITAL LETTER G WITH STROKE
+1D83 ; [.1D05.0020.0002] # LATIN SMALL LETTER G WITH PALATAL HOOK
+0260 ; [.1D06.0020.0002] # LATIN SMALL LETTER G WITH HOOK
+0193 ; [.1D06.0020.0008] # LATIN CAPITAL LETTER G WITH HOOK
+029B ; [.1D0A.0020.0002] # LATIN LETTER SMALL CAPITAL G WITH HOOK
+1D77 ; [.1D0E.0020.0002] # LATIN SMALL LETTER TURNED G
+A77F ; [.1D0F.0020.0002] # LATIN SMALL LETTER TURNED INSULAR G
+A77E ; [.1D0F.0020.0008] # LATIN CAPITAL LETTER TURNED INSULAR G
+0263 ; [.1D10.0020.0002] # LATIN SMALL LETTER GAMMA
+0194 ; [.1D10.0020.0008] # LATIN CAPITAL LETTER GAMMA
+02E0 ; [.1D10.0020.0014] # MODIFIER LETTER SMALL GAMMA
+01A3 ; [.1D14.0020.0002] # LATIN SMALL LETTER OI
+01A2 ; [.1D14.0020.0008] # LATIN CAPITAL LETTER OI
+0068 ; [.1D18.0020.0002] # LATIN SMALL LETTER H
+FF48 ; [.1D18.0020.0003] # FULLWIDTH LATIN SMALL LETTER H
+036A ; [.1D18.0020.0004] # COMBINING LATIN SMALL LETTER H
+24A3 ; [*0317.0020.0004][.1D18.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER H
+210E ; [.1D18.0020.0005] # PLANCK CONSTANT
+1D421 ; [.1D18.0020.0005] # MATHEMATICAL BOLD SMALL H
+1D489 ; [.1D18.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL H
+1D4BD ; [.1D18.0020.0005] # MATHEMATICAL SCRIPT SMALL H
+1D4F1 ; [.1D18.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL H
+1D525 ; [.1D18.0020.0005] # MATHEMATICAL FRAKTUR SMALL H
+1D559 ; [.1D18.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL H
+1D58D ; [.1D18.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL H
+1D5C1 ; [.1D18.0020.0005] # MATHEMATICAL SANS-SERIF SMALL H
+1D5F5 ; [.1D18.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL H
+1D629 ; [.1D18.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL H
+1D65D ; [.1D18.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
+1D691 ; [.1D18.0020.0005] # MATHEMATICAL MONOSPACE SMALL H
+24D7 ; [.1D18.0020.0006] # CIRCLED LATIN SMALL LETTER H
+0048 ; [.1D18.0020.0008] # LATIN CAPITAL LETTER H
+FF28 ; [.1D18.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER H
+1F117 ; [*0317.0020.0004][.1D18.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER H
+210B ; [.1D18.0020.000B] # SCRIPT CAPITAL H
+210C ; [.1D18.0020.000B] # BLACK-LETTER CAPITAL H
+210D ; [.1D18.0020.000B] # DOUBLE-STRUCK CAPITAL H
+1D407 ; [.1D18.0020.000B] # MATHEMATICAL BOLD CAPITAL H
+1D43B ; [.1D18.0020.000B] # MATHEMATICAL ITALIC CAPITAL H
+1D46F ; [.1D18.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL H
+1D4D7 ; [.1D18.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL H
+1D573 ; [.1D18.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL H
+1D5A7 ; [.1D18.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL H
+1D5DB ; [.1D18.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+1D60F ; [.1D18.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+1D643 ; [.1D18.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+1D677 ; [.1D18.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL H
+24BD ; [.1D18.0020.000C] # CIRCLED LATIN CAPITAL LETTER H
+1F157 ; [.1D18.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER H
+02B0 ; [.1D18.0020.0014] # MODIFIER LETTER SMALL H
+2095 ; [.1D18.0020.0015] # LATIN SUBSCRIPT SMALL LETTER H
+1D34 ; [.1D18.0020.001D] # MODIFIER LETTER CAPITAL H
+1F137 ; [.1D18.0020.001D] # SQUARED LATIN CAPITAL LETTER H
+1F177 ; [.1D18.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER H
+0125 ; [.1D18.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
+0124 ; [.1D18.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+021F ; [.1D18.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER H WITH CARON
+021E ; [.1D18.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER H WITH CARON
+1E27 ; [.1D18.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER H WITH DIAERESIS
+1E26 ; [.1D18.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER H WITH DIAERESIS
+1E23 ; [.1D18.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER H WITH DOT ABOVE
+1E22 ; [.1D18.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E29 ; [.1D18.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER H WITH CEDILLA
+1E28 ; [.1D18.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER H WITH CEDILLA
+0127 ; [.1D18.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER H WITH STROKE
+210F ; [.1D18.0020.0002][.0000.0039.0002] # PLANCK CONSTANT OVER TWO PI
+0126 ; [.1D18.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER H WITH STROKE
+A7F8 ; [.1D18.0020.0014][.0000.0039.0014] # MODIFIER LETTER CAPITAL H WITH STROKE
+1E25 ; [.1D18.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER H WITH DOT BELOW
+1E24 ; [.1D18.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER H WITH DOT BELOW
+1E2B ; [.1D18.0020.0002][.0000.0047.0002] # LATIN SMALL LETTER H WITH BREVE BELOW
+1E2A ; [.1D18.0020.0008][.0000.0047.0002] # LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E96 ; [.1D18.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER H WITH LINE BELOW
+33CA ; [.1D18.0020.001C][.1C47.0020.001C] # SQUARE HA
+1F1A6 ; [.1D18.0020.001D][.1C7A.0020.001C] # SQUARED HC
+1F1A7 ; [.1D18.0020.001D][.1C8F.0020.001C][.1E33.0020.001D] # SQUARED HDR
+32CC ; [.1D18.0020.001D][.1CF4.0020.001C] # SQUARE HG
+1F1A8 ; [.1D18.0020.001D][.1D32.0020.001C][*0209.0020.001C][.1E33.0020.001D][.1CAA.0020.001C][.1E71.0020.001C] # SQUARED HI-RES
+33CB ; [.1D18.0020.001D][.1E0C.0020.001D] # SQUARE HP
+3371 ; [.1D18.0020.001C][.1E0C.0020.001D][.1C47.0020.001C] # SQUARE HPA
+1F14A ; [.1D18.0020.001D][.1EE3.0020.001D] # SQUARED HV
+3390 ; [.1D18.0020.001D][.1F21.0020.001C] # SQUARE HZ
+029C ; [.1D1C.0020.0002] # LATIN LETTER SMALL CAPITAL H
+0195 ; [.1D20.0020.0002] # LATIN SMALL LETTER HV
+01F6 ; [.1D20.0020.0008] # LATIN CAPITAL LETTER HWAIR
+A795 ; [.1D24.0020.0002] # LATIN SMALL LETTER H WITH PALATAL HOOK
+0266 ; [.1D25.0020.0002] # LATIN SMALL LETTER H WITH HOOK
+A7AA ; [.1D25.0020.0008] # LATIN CAPITAL LETTER H WITH HOOK
+02B1 ; [.1D25.0020.0014] # MODIFIER LETTER SMALL H WITH HOOK
+2C68 ; [.1D29.0020.0002] # LATIN SMALL LETTER H WITH DESCENDER
+2C67 ; [.1D29.0020.0008] # LATIN CAPITAL LETTER H WITH DESCENDER
+2C76 ; [.1D2A.0020.0002] # LATIN SMALL LETTER HALF H
+2C75 ; [.1D2A.0020.0008] # LATIN CAPITAL LETTER HALF H
+A727 ; [.1D2B.0020.0002] # LATIN SMALL LETTER HENG
+A726 ; [.1D2B.0020.0008] # LATIN CAPITAL LETTER HENG
+AB5C ; [.1D2B.0020.0014] # MODIFIER LETTER SMALL HENG
+0267 ; [.1D2C.0020.0002] # LATIN SMALL LETTER HENG WITH HOOK
+02BB ; [.1D30.0020.0002] # MODIFIER LETTER TURNED COMMA
+02BD ; [.1D31.0020.0002] # MODIFIER LETTER REVERSED COMMA
+0069 ; [.1D32.0020.0002] # LATIN SMALL LETTER I
+FF49 ; [.1D32.0020.0003] # FULLWIDTH LATIN SMALL LETTER I
+0365 ; [.1D32.0020.0004] # COMBINING LATIN SMALL LETTER I
+2170 ; [.1D32.0020.0004] # SMALL ROMAN NUMERAL ONE
+24A4 ; [*0317.0020.0004][.1D32.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER I
+2139 ; [.1D32.0020.0005] # INFORMATION SOURCE
+2148 ; [.1D32.0020.0005] # DOUBLE-STRUCK ITALIC SMALL I
+1D422 ; [.1D32.0020.0005] # MATHEMATICAL BOLD SMALL I
+1D456 ; [.1D32.0020.0005] # MATHEMATICAL ITALIC SMALL I
+1D48A ; [.1D32.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL I
+1D4BE ; [.1D32.0020.0005] # MATHEMATICAL SCRIPT SMALL I
+1D4F2 ; [.1D32.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL I
+1D526 ; [.1D32.0020.0005] # MATHEMATICAL FRAKTUR SMALL I
+1D55A ; [.1D32.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL I
+1D58E ; [.1D32.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL I
+1D5C2 ; [.1D32.0020.0005] # MATHEMATICAL SANS-SERIF SMALL I
+1D5F6 ; [.1D32.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL I
+1D62A ; [.1D32.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL I
+1D65E ; [.1D32.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
+1D692 ; [.1D32.0020.0005] # MATHEMATICAL MONOSPACE SMALL I
+24D8 ; [.1D32.0020.0006] # CIRCLED LATIN SMALL LETTER I
+0049 ; [.1D32.0020.0008] # LATIN CAPITAL LETTER I
+FF29 ; [.1D32.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER I
+2160 ; [.1D32.0020.000A] # ROMAN NUMERAL ONE
+1F118 ; [*0317.0020.0004][.1D32.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER I
+2110 ; [.1D32.0020.000B] # SCRIPT CAPITAL I
+2111 ; [.1D32.0020.000B] # BLACK-LETTER CAPITAL I
+1D408 ; [.1D32.0020.000B] # MATHEMATICAL BOLD CAPITAL I
+1D43C ; [.1D32.0020.000B] # MATHEMATICAL ITALIC CAPITAL I
+1D470 ; [.1D32.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL I
+1D4D8 ; [.1D32.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL I
+1D540 ; [.1D32.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+1D574 ; [.1D32.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL I
+1D5A8 ; [.1D32.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL I
+1D5DC ; [.1D32.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+1D610 ; [.1D32.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+1D644 ; [.1D32.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+1D678 ; [.1D32.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL I
+24BE ; [.1D32.0020.000C] # CIRCLED LATIN CAPITAL LETTER I
+1F158 ; [.1D32.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER I
+2071 ; [.1D32.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER I
+1D62 ; [.1D32.0020.0015] # LATIN SUBSCRIPT SMALL LETTER I
+1D35 ; [.1D32.0020.001D] # MODIFIER LETTER CAPITAL I
+1F138 ; [.1D32.0020.001D] # SQUARED LATIN CAPITAL LETTER I
+1F178 ; [.1D32.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER I
+00ED ; [.1D32.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1D32.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
+00EC ; [.1D32.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1D32.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
+012D ; [.1D32.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER I WITH BREVE
+012C ; [.1D32.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
+00EE ; [.1D32.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+00CE ; [.1D32.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+01D0 ; [.1D32.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1D32.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER I WITH CARON
+00EF ; [.1D32.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER I WITH DIAERESIS
+00CF ; [.1D32.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
+1E2F ; [.1D32.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E2E ; [.1D32.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+0129 ; [.1D32.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER I WITH TILDE
+0128 ; [.1D32.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER I WITH TILDE
+0130 ; [.1D32.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+012F ; [.1D32.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER I WITH OGONEK
+012E ; [.1D32.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
+012B ; [.1D32.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1D32.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
+1EC9 ; [.1D32.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER I WITH HOOK ABOVE
+1EC8 ; [.1D32.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+0209 ; [.1D32.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER I WITH DOUBLE GRAVE
+0208 ; [.1D32.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+020B ; [.1D32.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER I WITH INVERTED BREVE
+020A ; [.1D32.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER I WITH INVERTED BREVE
+1ECB ; [.1D32.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER I WITH DOT BELOW
+1ECA ; [.1D32.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER I WITH DOT BELOW
+1E2D ; [.1D32.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER I WITH TILDE BELOW
+1E2C ; [.1D32.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER I WITH TILDE BELOW
+1F18B ; [.1D32.0020.001D][.1C7A.0020.001D] # NEGATIVE SQUARED IC
+1F194 ; [.1D32.0020.001D][.1C8F.0020.001D] # SQUARED ID
+2171 ; [.1D32.0020.0004][.1D32.0020.0004] # SMALL ROMAN NUMERAL TWO
+2161 ; [.1D32.0020.000A][.1D32.0020.000A] # ROMAN NUMERAL TWO
+2172 ; [.1D32.0020.0004][.1D32.0020.0004][.1D32.0020.0004] # SMALL ROMAN NUMERAL THREE
+2162 ; [.1D32.0020.000A][.1D32.0020.000A][.1D32.0020.000A] # ROMAN NUMERAL THREE
+0133 ; [.1D32.0020.0004][.1D4C.0020.0004] # LATIN SMALL LIGATURE IJ
+0132 ; [.1D32.0020.000A][.1D4C.0020.000A] # LATIN CAPITAL LIGATURE IJ
+33CC ; [.1D32.0020.001C][.1DB9.0020.001C] # SQUARE IN
+337A ; [.1D32.0020.001D][.1EB5.0020.001D] # SQUARE IU
+2173 ; [.1D32.0020.0004][.1EE3.0020.0004] # SMALL ROMAN NUMERAL FOUR
+2163 ; [.1D32.0020.000A][.1EE3.0020.000A] # ROMAN NUMERAL FOUR
+2178 ; [.1D32.0020.0004][.1EFF.0020.0004] # SMALL ROMAN NUMERAL NINE
+2168 ; [.1D32.0020.000A][.1EFF.0020.000A] # ROMAN NUMERAL NINE
+0131 ; [.1D36.0020.0002] # LATIN SMALL LETTER DOTLESS I
+1D6A4 ; [.1D36.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS I
+026A ; [.1D3A.0020.0002] # LATIN LETTER SMALL CAPITAL I
+A7AE ; [.1D3A.0020.0008] # LATIN CAPITAL LETTER SMALL CAPITAL I
+1DA6 ; [.1D3A.0020.0014] # MODIFIER LETTER SMALL CAPITAL I
+A7FE ; [.1D3E.0020.0002] # LATIN EPIGRAPHIC LETTER I LONGA
+A7F7 ; [.1D3F.0020.0002] # LATIN EPIGRAPHIC LETTER SIDEWAYS I
+1D09 ; [.1D40.0020.0002] # LATIN SMALL LETTER TURNED I
+1D4E ; [.1D40.0020.0014] # MODIFIER LETTER SMALL TURNED I
+0268 ; [.1D41.0020.0002] # LATIN SMALL LETTER I WITH STROKE
+0197 ; [.1D41.0020.0008] # LATIN CAPITAL LETTER I WITH STROKE
+1DA4 ; [.1D41.0020.0014] # MODIFIER LETTER SMALL I WITH STROKE
+1D7B ; [.1D45.0020.0002] # LATIN SMALL CAPITAL LETTER I WITH STROKE
+1DA7 ; [.1D45.0020.0014] # MODIFIER LETTER SMALL CAPITAL I WITH STROKE
+1D96 ; [.1D46.0020.0002] # LATIN SMALL LETTER I WITH RETROFLEX HOOK
+0269 ; [.1D47.0020.0002] # LATIN SMALL LETTER IOTA
+0196 ; [.1D47.0020.0008] # LATIN CAPITAL LETTER IOTA
+1DA5 ; [.1D47.0020.0014] # MODIFIER LETTER SMALL IOTA
+1D7C ; [.1D4B.0020.0002] # LATIN SMALL LETTER IOTA WITH STROKE
+006A ; [.1D4C.0020.0002] # LATIN SMALL LETTER J
+FF4A ; [.1D4C.0020.0003] # FULLWIDTH LATIN SMALL LETTER J
+24A5 ; [*0317.0020.0004][.1D4C.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER J
+2149 ; [.1D4C.0020.0005] # DOUBLE-STRUCK ITALIC SMALL J
+1D423 ; [.1D4C.0020.0005] # MATHEMATICAL BOLD SMALL J
+1D457 ; [.1D4C.0020.0005] # MATHEMATICAL ITALIC SMALL J
+1D48B ; [.1D4C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL J
+1D4BF ; [.1D4C.0020.0005] # MATHEMATICAL SCRIPT SMALL J
+1D4F3 ; [.1D4C.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL J
+1D527 ; [.1D4C.0020.0005] # MATHEMATICAL FRAKTUR SMALL J
+1D55B ; [.1D4C.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL J
+1D58F ; [.1D4C.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL J
+1D5C3 ; [.1D4C.0020.0005] # MATHEMATICAL SANS-SERIF SMALL J
+1D5F7 ; [.1D4C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL J
+1D62B ; [.1D4C.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL J
+1D65F ; [.1D4C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
+1D693 ; [.1D4C.0020.0005] # MATHEMATICAL MONOSPACE SMALL J
+24D9 ; [.1D4C.0020.0006] # CIRCLED LATIN SMALL LETTER J
+004A ; [.1D4C.0020.0008] # LATIN CAPITAL LETTER J
+FF2A ; [.1D4C.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER J
+1F119 ; [*0317.0020.0004][.1D4C.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER J
+1D409 ; [.1D4C.0020.000B] # MATHEMATICAL BOLD CAPITAL J
+1D43D ; [.1D4C.0020.000B] # MATHEMATICAL ITALIC CAPITAL J
+1D471 ; [.1D4C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL J
+1D4A5 ; [.1D4C.0020.000B] # MATHEMATICAL SCRIPT CAPITAL J
+1D4D9 ; [.1D4C.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL J
+1D50D ; [.1D4C.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL J
+1D541 ; [.1D4C.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+1D575 ; [.1D4C.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL J
+1D5A9 ; [.1D4C.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL J
+1D5DD ; [.1D4C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+1D611 ; [.1D4C.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+1D645 ; [.1D4C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+1D679 ; [.1D4C.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL J
+24BF ; [.1D4C.0020.000C] # CIRCLED LATIN CAPITAL LETTER J
+1F159 ; [.1D4C.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER J
+02B2 ; [.1D4C.0020.0014] # MODIFIER LETTER SMALL J
+2C7C ; [.1D4C.0020.0015] # LATIN SUBSCRIPT SMALL LETTER J
+1D36 ; [.1D4C.0020.001D] # MODIFIER LETTER CAPITAL J
+1F139 ; [.1D4C.0020.001D] # SQUARED LATIN CAPITAL LETTER J
+1F179 ; [.1D4C.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER J
+0135 ; [.1D4C.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
+0134 ; [.1D4C.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+01F0 ; [.1D4C.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER J WITH CARON
+0237 ; [.1D50.0020.0002] # LATIN SMALL LETTER DOTLESS J
+1D6A5 ; [.1D50.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS J
+1D0A ; [.1D54.0020.0002] # LATIN LETTER SMALL CAPITAL J
+0249 ; [.1D55.0020.0002] # LATIN SMALL LETTER J WITH STROKE
+0248 ; [.1D55.0020.0008] # LATIN CAPITAL LETTER J WITH STROKE
+029D ; [.1D59.0020.0002] # LATIN SMALL LETTER J WITH CROSSED-TAIL
+A7B2 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER J WITH CROSSED-TAIL
+1DA8 ; [.1D59.0020.0014] # MODIFIER LETTER SMALL J WITH CROSSED-TAIL
+025F ; [.1D5D.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE
+1DA1 ; [.1D5D.0020.0014] # MODIFIER LETTER SMALL DOTLESS J WITH STROKE
+0284 ; [.1D61.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
+006B ; [.1D65.0020.0002] # LATIN SMALL LETTER K
+FF4B ; [.1D65.0020.0003] # FULLWIDTH LATIN SMALL LETTER K
+1DDC ; [.1D65.0020.0004] # COMBINING LATIN SMALL LETTER K
+24A6 ; [*0317.0020.0004][.1D65.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER K
+1D424 ; [.1D65.0020.0005] # MATHEMATICAL BOLD SMALL K
+1D458 ; [.1D65.0020.0005] # MATHEMATICAL ITALIC SMALL K
+1D48C ; [.1D65.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL K
+1D4C0 ; [.1D65.0020.0005] # MATHEMATICAL SCRIPT SMALL K
+1D4F4 ; [.1D65.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL K
+1D528 ; [.1D65.0020.0005] # MATHEMATICAL FRAKTUR SMALL K
+1D55C ; [.1D65.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL K
+1D590 ; [.1D65.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL K
+1D5C4 ; [.1D65.0020.0005] # MATHEMATICAL SANS-SERIF SMALL K
+1D5F8 ; [.1D65.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL K
+1D62C ; [.1D65.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL K
+1D660 ; [.1D65.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
+1D694 ; [.1D65.0020.0005] # MATHEMATICAL MONOSPACE SMALL K
+24DA ; [.1D65.0020.0006] # CIRCLED LATIN SMALL LETTER K
+004B ; [.1D65.0020.0008] # LATIN CAPITAL LETTER K
+212A ; [.1D65.0020.0008] # KELVIN SIGN
+FF2B ; [.1D65.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER K
+1F11A ; [*0317.0020.0004][.1D65.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER K
+1D40A ; [.1D65.0020.000B] # MATHEMATICAL BOLD CAPITAL K
+1D43E ; [.1D65.0020.000B] # MATHEMATICAL ITALIC CAPITAL K
+1D472 ; [.1D65.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL K
+1D4A6 ; [.1D65.0020.000B] # MATHEMATICAL SCRIPT CAPITAL K
+1D4DA ; [.1D65.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL K
+1D50E ; [.1D65.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL K
+1D542 ; [.1D65.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+1D576 ; [.1D65.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL K
+1D5AA ; [.1D65.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL K
+1D5DE ; [.1D65.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+1D612 ; [.1D65.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+1D646 ; [.1D65.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+1D67A ; [.1D65.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL K
+24C0 ; [.1D65.0020.000C] # CIRCLED LATIN CAPITAL LETTER K
+1F15A ; [.1D65.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER K
+1D4F ; [.1D65.0020.0014] # MODIFIER LETTER SMALL K
+2096 ; [.1D65.0020.0015] # LATIN SUBSCRIPT SMALL LETTER K
+1D37 ; [.1D65.0020.001D] # MODIFIER LETTER CAPITAL K
+1F13A ; [.1D65.0020.001D] # SQUARED LATIN CAPITAL LETTER K
+1F17A ; [.1D65.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER K
+1E31 ; [.1D65.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER K WITH ACUTE
+1E30 ; [.1D65.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER K WITH ACUTE
+01E9 ; [.1D65.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER K WITH CARON
+01E8 ; [.1D65.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER K WITH CARON
+0137 ; [.1D65.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER K WITH CEDILLA
+0136 ; [.1D65.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER K WITH CEDILLA
+A7A3 ; [.1D65.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER K WITH OBLIQUE STROKE
+A7A2 ; [.1D65.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
+1E33 ; [.1D65.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER K WITH DOT BELOW
+1E32 ; [.1D65.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER K WITH DOT BELOW
+1E35 ; [.1D65.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER K WITH LINE BELOW
+1E34 ; [.1D65.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER K WITH LINE BELOW
+3384 ; [.1D65.0020.001C][.1C47.0020.001D] # SQUARE KA
+3385 ; [.1D65.0020.001D][.1C60.0020.001D] # SQUARE KB
+3389 ; [.1D65.0020.001C][.1C7A.0020.001C][.1C47.0020.001C][.1D77.0020.001C] # SQUARE KCAL
+338F ; [.1D65.0020.001C][.1CF4.0020.001C] # SQUARE KG
+3391 ; [.1D65.0020.001C][.1D18.0020.001D][.1F21.0020.001C] # SQUARE KHZ
+33CD ; [.1D65.0020.001D][.1D65.0020.001D] # SQUARE KK
+3398 ; [.1D65.0020.001C][.1D77.0020.001C] # SQUARE KL
+339E ; [.1D65.0020.001C][.1DAA.0020.001C] # SQUARE KM
+33CE ; [.1D65.0020.001D][.1DAA.0020.001D] # SQUARE KM CAPITAL
+33A2 ; [.1D65.0020.001C][.1DAA.0020.001C][.1C3F.0020.001C] # SQUARE KM SQUARED
+33A6 ; [.1D65.0020.001C][.1DAA.0020.001C][.1C40.0020.001C] # SQUARE KM CUBED
+33AA ; [.1D65.0020.001C][.1E0C.0020.001D][.1C47.0020.001C] # SQUARE KPA
+33CF ; [.1D65.0020.001C][.1E95.0020.001C] # SQUARE KT
+33B8 ; [.1D65.0020.001C][.1EE3.0020.001D] # SQUARE KV
+33BE ; [.1D65.0020.001C][.1EF5.0020.001D] # SQUARE KW
+33C0 ; [.1D65.0020.001C][.1FE1.0020.001D] # SQUARE K OHM
+1D0B ; [.1D69.0020.0002] # LATIN LETTER SMALL CAPITAL K
+1D84 ; [.1D6A.0020.0002] # LATIN SMALL LETTER K WITH PALATAL HOOK
+0199 ; [.1D6B.0020.0002] # LATIN SMALL LETTER K WITH HOOK
+0198 ; [.1D6B.0020.0008] # LATIN CAPITAL LETTER K WITH HOOK
+2C6A ; [.1D6F.0020.0002] # LATIN SMALL LETTER K WITH DESCENDER
+2C69 ; [.1D6F.0020.0008] # LATIN CAPITAL LETTER K WITH DESCENDER
+A741 ; [.1D70.0020.0002] # LATIN SMALL LETTER K WITH STROKE
+A740 ; [.1D70.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE
+A743 ; [.1D71.0020.0002] # LATIN SMALL LETTER K WITH DIAGONAL STROKE
+A742 ; [.1D71.0020.0008] # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+A745 ; [.1D72.0020.0002] # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
+A744 ; [.1D72.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+029E ; [.1D73.0020.0002] # LATIN SMALL LETTER TURNED K
+A7B0 ; [.1D73.0020.0008] # LATIN CAPITAL LETTER TURNED K
+006C ; [.1D77.0020.0002] # LATIN SMALL LETTER L
+FF4C ; [.1D77.0020.0003] # FULLWIDTH LATIN SMALL LETTER L
+1DDD ; [.1D77.0020.0004] # COMBINING LATIN SMALL LETTER L
+217C ; [.1D77.0020.0004] # SMALL ROMAN NUMERAL FIFTY
+24A7 ; [*0317.0020.0004][.1D77.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER L
+2113 ; [.1D77.0020.0005] # SCRIPT SMALL L
+1D425 ; [.1D77.0020.0005] # MATHEMATICAL BOLD SMALL L
+1D459 ; [.1D77.0020.0005] # MATHEMATICAL ITALIC SMALL L
+1D48D ; [.1D77.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL L
+1D4C1 ; [.1D77.0020.0005] # MATHEMATICAL SCRIPT SMALL L
+1D4F5 ; [.1D77.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL L
+1D529 ; [.1D77.0020.0005] # MATHEMATICAL FRAKTUR SMALL L
+1D55D ; [.1D77.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL L
+1D591 ; [.1D77.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL L
+1D5C5 ; [.1D77.0020.0005] # MATHEMATICAL SANS-SERIF SMALL L
+1D5F9 ; [.1D77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL L
+1D62D ; [.1D77.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL L
+1D661 ; [.1D77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
+1D695 ; [.1D77.0020.0005] # MATHEMATICAL MONOSPACE SMALL L
+24DB ; [.1D77.0020.0006] # CIRCLED LATIN SMALL LETTER L
+004C ; [.1D77.0020.0008] # LATIN CAPITAL LETTER L
+FF2C ; [.1D77.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER L
+216C ; [.1D77.0020.000A] # ROMAN NUMERAL FIFTY
+1F11B ; [*0317.0020.0004][.1D77.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER L
+2112 ; [.1D77.0020.000B] # SCRIPT CAPITAL L
+1D40B ; [.1D77.0020.000B] # MATHEMATICAL BOLD CAPITAL L
+1D43F ; [.1D77.0020.000B] # MATHEMATICAL ITALIC CAPITAL L
+1D473 ; [.1D77.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL L
+1D4DB ; [.1D77.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL L
+1D50F ; [.1D77.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL L
+1D543 ; [.1D77.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+1D577 ; [.1D77.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL L
+1D5AB ; [.1D77.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL L
+1D5DF ; [.1D77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+1D613 ; [.1D77.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+1D647 ; [.1D77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+1D67B ; [.1D77.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL L
+24C1 ; [.1D77.0020.000C] # CIRCLED LATIN CAPITAL LETTER L
+1F15B ; [.1D77.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER L
+02E1 ; [.1D77.0020.0014] # MODIFIER LETTER SMALL L
+2097 ; [.1D77.0020.0015] # LATIN SUBSCRIPT SMALL LETTER L
+1D38 ; [.1D77.0020.001D] # MODIFIER LETTER CAPITAL L
+1F13B ; [.1D77.0020.001D] # SQUARED LATIN CAPITAL LETTER L
+1F17B ; [.1D77.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER L
+013A ; [.1D77.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER L WITH ACUTE
+0139 ; [.1D77.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER L WITH ACUTE
+013E ; [.1D77.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER L WITH CARON
+013D ; [.1D77.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER L WITH CARON
+013C ; [.1D77.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER L WITH CEDILLA
+013B ; [.1D77.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER L WITH CEDILLA
+0142 ; [.1D77.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER L WITH STROKE
+0141 ; [.1D77.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER L WITH STROKE
+1E37 ; [.1D77.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER L WITH DOT BELOW
+1E36 ; [.1D77.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW
+1E39 ; [.1D77.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E38 ; [.1D77.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E3D ; [.1D77.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3C ; [.1D77.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3B ; [.1D77.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER L WITH LINE BELOW
+1E3A ; [.1D77.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER L WITH LINE BELOW
+0140 ; [.1D77.0020.0002][.0000.0110.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
+006C 00B7 ; [.1D77.0020.0002][.0000.0110.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
+006C 0387 ; [.1D77.0020.0002][.0000.0110.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
+013F ; [.1D77.0020.0008][.0000.0110.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+004C 00B7 ; [.1D77.0020.0008][.0000.0110.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+004C 0387 ; [.1D77.0020.0008][.0000.0110.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+01C9 ; [.1D77.0020.0004][.1D4C.0020.0004] # LATIN SMALL LETTER LJ
+01C8 ; [.1D77.0020.000A][.1D4C.0020.0004] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
+01C7 ; [.1D77.0020.000A][.1D4C.0020.000A] # LATIN CAPITAL LETTER LJ
+1EFB ; [.1D77.0020.0004][.1D77.0020.0004] # LATIN SMALL LETTER MIDDLE-WELSH LL
+1EFA ; [.1D77.0020.000A][.1D77.0020.000A] # LATIN CAPITAL LETTER MIDDLE-WELSH LL
+33D0 ; [.1D77.0020.001C][.1DAA.0020.001C] # SQUARE LM
+33D1 ; [.1D77.0020.001C][.1DB9.0020.001C] # SQUARE LN
+33D2 ; [.1D77.0020.001C][.1DDD.0020.001C][.1CF4.0020.001C] # SQUARE LOG
+1F1A9 ; [.1D77.0020.001D][.1DDD.0020.001C][.1E71.0020.001C][.1E71.0020.001C][.1D77.0020.001C][.1CAA.0020.001C][.1E71.0020.001C][.1E71.0020.001C] # SQUARED LOSSLESS
+02AA ; [.1D77.0020.0004][.1E71.0020.0004] # LATIN SMALL LETTER LS DIGRAPH
+32CF ; [.1D77.0020.001D][.1E95.0020.001D][.1C8F.0020.001D] # LIMITED LIABILITY SIGN
+33D3 ; [.1D77.0020.001C][.1EFF.0020.001C] # SQUARE LX
+02AB ; [.1D77.0020.0004][.1F21.0020.0004] # LATIN SMALL LETTER LZ DIGRAPH
+029F ; [.1D7B.0020.0002] # LATIN LETTER SMALL CAPITAL L
+1DDE ; [.1D7B.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL L
+1DAB ; [.1D7B.0020.0014] # MODIFIER LETTER SMALL CAPITAL L
+A747 ; [.1D7F.0020.0002] # LATIN SMALL LETTER BROKEN L
+A746 ; [.1D7F.0020.0008] # LATIN CAPITAL LETTER BROKEN L
+1D0C ; [.1D80.0020.0002] # LATIN LETTER SMALL CAPITAL L WITH STROKE
+A749 ; [.1D81.0020.0002] # LATIN SMALL LETTER L WITH HIGH STROKE
+A748 ; [.1D81.0020.0008] # LATIN CAPITAL LETTER L WITH HIGH STROKE
+019A ; [.1D82.0020.0002] # LATIN SMALL LETTER L WITH BAR
+023D ; [.1D82.0020.0008] # LATIN CAPITAL LETTER L WITH BAR
+2C61 ; [.1D86.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE BAR
+2C60 ; [.1D86.0020.0008] # LATIN CAPITAL LETTER L WITH DOUBLE BAR
+026B ; [.1D87.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE TILDE
+2C62 ; [.1D87.0020.0008] # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
+AB5E ; [.1D87.0020.0014] # MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+AB38 ; [.1D8B.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
+1DEC ; [.1D8B.0020.0004] # COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
+AB39 ; [.1D8C.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE RING
+026C ; [.1D8D.0020.0002] # LATIN SMALL LETTER L WITH BELT
+A7AD ; [.1D8D.0020.0008] # LATIN CAPITAL LETTER L WITH BELT
+AB37 ; [.1D91.0020.0002] # LATIN SMALL LETTER L WITH INVERTED LAZY S
+AB5D ; [.1D91.0020.0014] # MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+1D85 ; [.1D92.0020.0002] # LATIN SMALL LETTER L WITH PALATAL HOOK
+1DAA ; [.1D92.0020.0014] # MODIFIER LETTER SMALL L WITH PALATAL HOOK
+026D ; [.1D93.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK
+1DA9 ; [.1D93.0020.0014] # MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
+A78E ; [.1D97.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+0234 ; [.1D98.0020.0002] # LATIN SMALL LETTER L WITH CURL
+A772 ; [.1D9C.0020.0002] # LATIN SMALL LETTER LUM
+026E ; [.1D9D.0020.0002] # LATIN SMALL LETTER LEZH
+A781 ; [.1DA1.0020.0002] # LATIN SMALL LETTER TURNED L
+A780 ; [.1DA1.0020.0008] # LATIN CAPITAL LETTER TURNED L
+019B ; [.1DA2.0020.0002] # LATIN SMALL LETTER LAMBDA WITH STROKE
+028E ; [.1DA6.0020.0002] # LATIN SMALL LETTER TURNED Y
+006D ; [.1DAA.0020.0002] # LATIN SMALL LETTER M
+FF4D ; [.1DAA.0020.0003] # FULLWIDTH LATIN SMALL LETTER M
+036B ; [.1DAA.0020.0004] # COMBINING LATIN SMALL LETTER M
+217F ; [.1DAA.0020.0004] # SMALL ROMAN NUMERAL ONE THOUSAND
+24A8 ; [*0317.0020.0004][.1DAA.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER M
+1D426 ; [.1DAA.0020.0005] # MATHEMATICAL BOLD SMALL M
+1D45A ; [.1DAA.0020.0005] # MATHEMATICAL ITALIC SMALL M
+1D48E ; [.1DAA.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL M
+1D4C2 ; [.1DAA.0020.0005] # MATHEMATICAL SCRIPT SMALL M
+1D4F6 ; [.1DAA.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL M
+1D52A ; [.1DAA.0020.0005] # MATHEMATICAL FRAKTUR SMALL M
+1D55E ; [.1DAA.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL M
+1D592 ; [.1DAA.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL M
+1D5C6 ; [.1DAA.0020.0005] # MATHEMATICAL SANS-SERIF SMALL M
+1D5FA ; [.1DAA.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL M
+1D62E ; [.1DAA.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL M
+1D662 ; [.1DAA.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
+1D696 ; [.1DAA.0020.0005] # MATHEMATICAL MONOSPACE SMALL M
+24DC ; [.1DAA.0020.0006] # CIRCLED LATIN SMALL LETTER M
+004D ; [.1DAA.0020.0008] # LATIN CAPITAL LETTER M
+FF2D ; [.1DAA.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER M
+216F ; [.1DAA.0020.000A] # ROMAN NUMERAL ONE THOUSAND
+1F11C ; [*0317.0020.0004][.1DAA.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER M
+2133 ; [.1DAA.0020.000B] # SCRIPT CAPITAL M
+1D40C ; [.1DAA.0020.000B] # MATHEMATICAL BOLD CAPITAL M
+1D440 ; [.1DAA.0020.000B] # MATHEMATICAL ITALIC CAPITAL M
+1D474 ; [.1DAA.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL M
+1D4DC ; [.1DAA.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL M
+1D510 ; [.1DAA.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL M
+1D544 ; [.1DAA.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D578 ; [.1DAA.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL M
+1D5AC ; [.1DAA.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL M
+1D5E0 ; [.1DAA.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+1D614 ; [.1DAA.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+1D648 ; [.1DAA.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+1D67C ; [.1DAA.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL M
+24C2 ; [.1DAA.0020.000C] # CIRCLED LATIN CAPITAL LETTER M
+1F15C ; [.1DAA.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER M
+1D50 ; [.1DAA.0020.0014] # MODIFIER LETTER SMALL M
+2098 ; [.1DAA.0020.0015] # LATIN SUBSCRIPT SMALL LETTER M
+1D39 ; [.1DAA.0020.001D] # MODIFIER LETTER CAPITAL M
+1F13C ; [.1DAA.0020.001D] # SQUARED LATIN CAPITAL LETTER M
+1F17C ; [.1DAA.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER M
+1E3F ; [.1DAA.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1DAA.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER M WITH ACUTE
+1E41 ; [.1DAA.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER M WITH DOT ABOVE
+1E40 ; [.1DAA.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E43 ; [.1DAA.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER M WITH DOT BELOW
+1E42 ; [.1DAA.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER M WITH DOT BELOW
+33A1 ; [.1DAA.0020.001C][.1C3F.0020.001C] # SQUARE M SQUARED
+33A5 ; [.1DAA.0020.001C][.1C40.0020.001C] # SQUARE M CUBED
+3383 ; [.1DAA.0020.001C][.1C47.0020.001D] # SQUARE MA
+33D4 ; [.1DAA.0020.001C][.1C60.0020.001C] # SQUARE MB SMALL
+3386 ; [.1DAA.0020.001D][.1C60.0020.001D] # SQUARE MB
+1F16A ; [.1DAA.0020.0014][.1C7A.0020.0014] # RAISED MC SIGN
+1F16B ; [.1DAA.0020.0014][.1C8F.0020.0014] # RAISED MD SIGN
+338E ; [.1DAA.0020.001C][.1CF4.0020.001C] # SQUARE MG
+3392 ; [.1DAA.0020.001D][.1D18.0020.001D][.1F21.0020.001C] # SQUARE MHZ
+33D5 ; [.1DAA.0020.001C][.1D32.0020.001C][.1D77.0020.001C] # SQUARE MIL
+3396 ; [.1DAA.0020.001C][.1D77.0020.001C] # SQUARE ML
+339C ; [.1DAA.0020.001C][.1DAA.0020.001C] # SQUARE MM
+339F ; [.1DAA.0020.001C][.1DAA.0020.001C][.1C3F.0020.001C] # SQUARE MM SQUARED
+33A3 ; [.1DAA.0020.001C][.1DAA.0020.001C][.1C40.0020.001C] # SQUARE MM CUBED
+33D6 ; [.1DAA.0020.001C][.1DDD.0020.001C][.1D77.0020.001C] # SQUARE MOL
+33AB ; [.1DAA.0020.001D][.1E0C.0020.001D][.1C47.0020.001C] # SQUARE MPA
+33A7 ; [.1DAA.0020.001C][*0625.0020.001C][.1E71.0020.001C] # SQUARE M OVER S
+33B3 ; [.1DAA.0020.001C][.1E71.0020.001C] # SQUARE MS
+33A8 ; [.1DAA.0020.001C][*0625.0020.001C][.1E71.0020.001C][.1C3F.0020.001C] # SQUARE M OVER S SQUARED
+33B7 ; [.1DAA.0020.001C][.1EE3.0020.001D] # SQUARE MV
+33B9 ; [.1DAA.0020.001D][.1EE3.0020.001D] # SQUARE MV MEGA
+1F14B ; [.1DAA.0020.001D][.1EE3.0020.001D] # SQUARED MV
+33BD ; [.1DAA.0020.001C][.1EF5.0020.001D] # SQUARE MW
+33BF ; [.1DAA.0020.001D][.1EF5.0020.001D] # SQUARE MW MEGA
+33C1 ; [.1DAA.0020.001D][.1FE1.0020.001D] # SQUARE M OHM
+1D0D ; [.1DAE.0020.0002] # LATIN LETTER SMALL CAPITAL M
+1DDF ; [.1DAE.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL M
+1D6F ; [.1DAF.0020.0002] # LATIN SMALL LETTER M WITH MIDDLE TILDE
+1D86 ; [.1DB0.0020.0002] # LATIN SMALL LETTER M WITH PALATAL HOOK
+0271 ; [.1DB1.0020.0002] # LATIN SMALL LETTER M WITH HOOK
+2C6E ; [.1DB1.0020.0008] # LATIN CAPITAL LETTER M WITH HOOK
+1DAC ; [.1DB1.0020.0014] # MODIFIER LETTER SMALL M WITH HOOK
+AB3A ; [.1DB5.0020.0002] # LATIN SMALL LETTER M WITH CROSSED-TAIL
+A7FD ; [.1DB6.0020.0002] # LATIN EPIGRAPHIC LETTER INVERTED M
+A7FF ; [.1DB7.0020.0002] # LATIN EPIGRAPHIC LETTER ARCHAIC M
+A773 ; [.1DB8.0020.0002] # LATIN SMALL LETTER MUM
+006E ; [.1DB9.0020.0002] # LATIN SMALL LETTER N
+FF4E ; [.1DB9.0020.0003] # FULLWIDTH LATIN SMALL LETTER N
+1DE0 ; [.1DB9.0020.0004] # COMBINING LATIN SMALL LETTER N
+24A9 ; [*0317.0020.0004][.1DB9.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER N
+1D427 ; [.1DB9.0020.0005] # MATHEMATICAL BOLD SMALL N
+1D45B ; [.1DB9.0020.0005] # MATHEMATICAL ITALIC SMALL N
+1D48F ; [.1DB9.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL N
+1D4C3 ; [.1DB9.0020.0005] # MATHEMATICAL SCRIPT SMALL N
+1D4F7 ; [.1DB9.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL N
+1D52B ; [.1DB9.0020.0005] # MATHEMATICAL FRAKTUR SMALL N
+1D55F ; [.1DB9.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL N
+1D593 ; [.1DB9.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL N
+1D5C7 ; [.1DB9.0020.0005] # MATHEMATICAL SANS-SERIF SMALL N
+1D5FB ; [.1DB9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL N
+1D62F ; [.1DB9.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL N
+1D663 ; [.1DB9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
+1D697 ; [.1DB9.0020.0005] # MATHEMATICAL MONOSPACE SMALL N
+24DD ; [.1DB9.0020.0006] # CIRCLED LATIN SMALL LETTER N
+004E ; [.1DB9.0020.0008] # LATIN CAPITAL LETTER N
+FF2E ; [.1DB9.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER N
+1F11D ; [*0317.0020.0004][.1DB9.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER N
+2115 ; [.1DB9.0020.000B] # DOUBLE-STRUCK CAPITAL N
+1D40D ; [.1DB9.0020.000B] # MATHEMATICAL BOLD CAPITAL N
+1D441 ; [.1DB9.0020.000B] # MATHEMATICAL ITALIC CAPITAL N
+1D475 ; [.1DB9.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL N
+1D4A9 ; [.1DB9.0020.000B] # MATHEMATICAL SCRIPT CAPITAL N
+1D4DD ; [.1DB9.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL N
+1D511 ; [.1DB9.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL N
+1D579 ; [.1DB9.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL N
+1D5AD ; [.1DB9.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL N
+1D5E1 ; [.1DB9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+1D615 ; [.1DB9.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+1D649 ; [.1DB9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+1D67D ; [.1DB9.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL N
+24C3 ; [.1DB9.0020.000C] # CIRCLED LATIN CAPITAL LETTER N
+1F15D ; [.1DB9.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER N
+207F ; [.1DB9.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER N
+2099 ; [.1DB9.0020.0015] # LATIN SUBSCRIPT SMALL LETTER N
+1D3A ; [.1DB9.0020.001D] # MODIFIER LETTER CAPITAL N
+1F13D ; [.1DB9.0020.001D] # SQUARED LATIN CAPITAL LETTER N
+1F17D ; [.1DB9.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER N
+0144 ; [.1DB9.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1DB9.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER N WITH ACUTE
+01F9 ; [.1DB9.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1DB9.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER N WITH GRAVE
+0148 ; [.1DB9.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1DB9.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER N WITH CARON
+00F1 ; [.1DB9.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1DB9.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER N WITH TILDE
+1E45 ; [.1DB9.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
+1E44 ; [.1DB9.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER N WITH DOT ABOVE
+0146 ; [.1DB9.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER N WITH CEDILLA
+0145 ; [.1DB9.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER N WITH CEDILLA
+A7A5 ; [.1DB9.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER N WITH OBLIQUE STROKE
+A7A4 ; [.1DB9.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
+1E47 ; [.1DB9.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER N WITH DOT BELOW
+1E46 ; [.1DB9.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER N WITH DOT BELOW
+1E4B ; [.1DB9.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4A ; [.1DB9.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E49 ; [.1DB9.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER N WITH LINE BELOW
+1E48 ; [.1DB9.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER N WITH LINE BELOW
+3381 ; [.1DB9.0020.001C][.1C47.0020.001D] # SQUARE NA
+1F195 ; [.1DB9.0020.001D][.1CAA.0020.001D][.1EF5.0020.001D] # SQUARED NEW
+338B ; [.1DB9.0020.001C][.1CE5.0020.001D] # SQUARE NF
+1F196 ; [.1DB9.0020.001D][.1CF4.0020.001D] # SQUARED NG
+01CC ; [.1DB9.0020.0004][.1D4C.0020.0004] # LATIN SMALL LETTER NJ
+01CB ; [.1DB9.0020.000A][.1D4C.0020.0004] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
+01CA ; [.1DB9.0020.000A][.1D4C.0020.000A] # LATIN CAPITAL LETTER NJ
+339A ; [.1DB9.0020.001C][.1DAA.0020.001C] # SQUARE NM
+2116 ; [.1DB9.0020.000A][.1DDD.0020.0004] # NUMERO SIGN
+33B1 ; [.1DB9.0020.001C][.1E71.0020.001C] # SQUARE NS
+33B5 ; [.1DB9.0020.001C][.1EE3.0020.001D] # SQUARE NV
+33BB ; [.1DB9.0020.001C][.1EF5.0020.001D] # SQUARE NW
+0274 ; [.1DBD.0020.0002] # LATIN LETTER SMALL CAPITAL N
+1DE1 ; [.1DBD.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL N
+1DB0 ; [.1DBD.0020.0014] # MODIFIER LETTER SMALL CAPITAL N
+1D3B ; [.1DC1.0020.0002] # MODIFIER LETTER CAPITAL REVERSED N
+1D0E ; [.1DC2.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED N
+1D70 ; [.1DC3.0020.0002] # LATIN SMALL LETTER N WITH MIDDLE TILDE
+0272 ; [.1DC4.0020.0002] # LATIN SMALL LETTER N WITH LEFT HOOK
+019D ; [.1DC4.0020.0008] # LATIN CAPITAL LETTER N WITH LEFT HOOK
+1DAE ; [.1DC4.0020.0014] # MODIFIER LETTER SMALL N WITH LEFT HOOK
+019E ; [.1DC8.0020.0002] # LATIN SMALL LETTER N WITH LONG RIGHT LEG
+0220 ; [.1DC8.0020.0008] # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+A791 ; [.1DCC.0020.0002] # LATIN SMALL LETTER N WITH DESCENDER
+A790 ; [.1DCC.0020.0008] # LATIN CAPITAL LETTER N WITH DESCENDER
+1D87 ; [.1DCD.0020.0002] # LATIN SMALL LETTER N WITH PALATAL HOOK
+0273 ; [.1DCE.0020.0002] # LATIN SMALL LETTER N WITH RETROFLEX HOOK
+1DAF ; [.1DCE.0020.0014] # MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
+0235 ; [.1DD2.0020.0002] # LATIN SMALL LETTER N WITH CURL
+AB3B ; [.1DD6.0020.0002] # LATIN SMALL LETTER N WITH CROSSED-TAIL
+A774 ; [.1DD7.0020.0002] # LATIN SMALL LETTER NUM
+014B ; [.1DD8.0020.0002] # LATIN SMALL LETTER ENG
+014A ; [.1DD8.0020.0008] # LATIN CAPITAL LETTER ENG
+1D51 ; [.1DD8.0020.0014] # MODIFIER LETTER SMALL ENG
+AB3C ; [.1DDC.0020.0002] # LATIN SMALL LETTER ENG WITH CROSSED-TAIL
+006F ; [.1DDD.0020.0002] # LATIN SMALL LETTER O
+FF4F ; [.1DDD.0020.0003] # FULLWIDTH LATIN SMALL LETTER O
+0366 ; [.1DDD.0020.0004] # COMBINING LATIN SMALL LETTER O
+24AA ; [*0317.0020.0004][.1DDD.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER O
+2134 ; [.1DDD.0020.0005] # SCRIPT SMALL O
+1D428 ; [.1DDD.0020.0005] # MATHEMATICAL BOLD SMALL O
+1D45C ; [.1DDD.0020.0005] # MATHEMATICAL ITALIC SMALL O
+1D490 ; [.1DDD.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL O
+1D4F8 ; [.1DDD.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL O
+1D52C ; [.1DDD.0020.0005] # MATHEMATICAL FRAKTUR SMALL O
+1D560 ; [.1DDD.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL O
+1D594 ; [.1DDD.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL O
+1D5C8 ; [.1DDD.0020.0005] # MATHEMATICAL SANS-SERIF SMALL O
+1D5FC ; [.1DDD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL O
+1D630 ; [.1DDD.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL O
+1D664 ; [.1DDD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
+1D698 ; [.1DDD.0020.0005] # MATHEMATICAL MONOSPACE SMALL O
+24DE ; [.1DDD.0020.0006] # CIRCLED LATIN SMALL LETTER O
+004F ; [.1DDD.0020.0008] # LATIN CAPITAL LETTER O
+FF2F ; [.1DDD.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER O
+1F11E ; [*0317.0020.0004][.1DDD.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER O
+1D40E ; [.1DDD.0020.000B] # MATHEMATICAL BOLD CAPITAL O
+1D442 ; [.1DDD.0020.000B] # MATHEMATICAL ITALIC CAPITAL O
+1D476 ; [.1DDD.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL O
+1D4AA ; [.1DDD.0020.000B] # MATHEMATICAL SCRIPT CAPITAL O
+1D4DE ; [.1DDD.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL O
+1D512 ; [.1DDD.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL O
+1D546 ; [.1DDD.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D57A ; [.1DDD.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL O
+1D5AE ; [.1DDD.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL O
+1D5E2 ; [.1DDD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+1D616 ; [.1DDD.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+1D64A ; [.1DDD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+1D67E ; [.1DDD.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL O
+24C4 ; [.1DDD.0020.000C] # CIRCLED LATIN CAPITAL LETTER O
+1F15E ; [.1DDD.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER O
+00BA ; [.1DDD.0020.0014] # MASCULINE ORDINAL INDICATOR
+1D52 ; [.1DDD.0020.0014] # MODIFIER LETTER SMALL O
+2092 ; [.1DDD.0020.0015] # LATIN SUBSCRIPT SMALL LETTER O
+1D3C ; [.1DDD.0020.001D] # MODIFIER LETTER CAPITAL O
+1F13E ; [.1DDD.0020.001D] # SQUARED LATIN CAPITAL LETTER O
+1F17E ; [.1DDD.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER O
+00F3 ; [.1DDD.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1DDD.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH ACUTE
+00F2 ; [.1DDD.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1DDD.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH GRAVE
+014F ; [.1DDD.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER O WITH BREVE
+014E ; [.1DDD.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER O WITH BREVE
+00F4 ; [.1DDD.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1DDD.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED1 ; [.1DDD.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1DDD.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED3 ; [.1DDD.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1DDD.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED7 ; [.1DDD.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1DDD.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1DDD.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1DDD.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+01D2 ; [.1DDD.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1DDD.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER O WITH CARON
+00F6 ; [.1DDD.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+1DF3 ; [.1DDD.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER O WITH DIAERESIS
+A79D ; [.1DDD.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK OE
+00D6 ; [.1DDD.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS
+A79C ; [.1DDD.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK OE
+022B ; [.1DDD.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1DDD.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1DDD.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1DDD.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+00F5 ; [.1DDD.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1DDD.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH TILDE
+1E4D ; [.1DDD.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4C ; [.1DDD.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4F ; [.1DDD.0020.0002][.0000.002D.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E4E ; [.1DDD.0020.0008][.0000.002D.0002][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+022D ; [.1DDD.0020.0002][.0000.002D.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
+022C ; [.1DDD.0020.0008][.0000.002D.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022F ; [.1DDD.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER O WITH DOT ABOVE
+022E ; [.1DDD.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE
+0231 ; [.1DDD.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0230 ; [.1DDD.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+00F8 ; [.1DDD.0020.0002][.0000.002F.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1DDD.0020.0008][.0000.002F.0002] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1DDD.0020.0002][.0000.002F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1DDD.0020.0008][.0000.002F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01EB ; [.1DDD.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER O WITH OGONEK
+01EA ; [.1DDD.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER O WITH OGONEK
+01ED ; [.1DDD.0020.0002][.0000.0031.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EC ; [.1DDD.0020.0008][.0000.0031.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+014D ; [.1DDD.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1DDD.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
+1E53 ; [.1DDD.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E52 ; [.1DDD.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E51 ; [.1DDD.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E50 ; [.1DDD.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1DED ; [.1DDD.0020.0004][.0000.0034.0004] # COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE
+1ECF ; [.1DDD.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HOOK ABOVE
+1ECE ; [.1DDD.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+020D ; [.1DDD.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020C ; [.1DDD.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020F ; [.1DDD.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER O WITH INVERTED BREVE
+020E ; [.1DDD.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER O WITH INVERTED BREVE
+01A1 ; [.1DDD.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN
+01A0 ; [.1DDD.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN
+1EDB ; [.1DDD.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDA ; [.1DDD.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDD ; [.1DDD.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDC ; [.1DDD.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EE1 ; [.1DDD.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE0 ; [.1DDD.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EDF ; [.1DDD.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EDE ; [.1DDD.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EE3 ; [.1DDD.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE2 ; [.1DDD.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1ECD ; [.1DDD.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+1ECC ; [.1DDD.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH DOT BELOW
+1ED9 ; [.1DDD.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1DDD.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+0153 ; [.1DDD.0020.0004][.0000.0110.0004][.1CAA.0020.0004] # LATIN SMALL LIGATURE OE
+0152 ; [.1DDD.0020.000A][.0000.0110.0004][.1CAA.0020.000A] # LATIN CAPITAL LIGATURE OE
+A7F9 ; [.1DDD.0020.0014][.0000.0110.0014][.1CAA.0020.0014] # MODIFIER LETTER SMALL LIGATURE OE
+1F197 ; [.1DDD.0020.001D][.1D65.0020.001D] # SQUARED OK
+A74F ; [.1DDD.0020.0004][.1DDD.0020.0004] # LATIN SMALL LETTER OO
+A74E ; [.1DDD.0020.000A][.1DDD.0020.000A] # LATIN CAPITAL LETTER OO
+3375 ; [.1DDD.0020.001C][.1EE3.0020.001D] # SQUARE OV
+1D0F ; [.1DE1.0020.0002] # LATIN LETTER SMALL CAPITAL O
+1D11 ; [.1DE2.0020.0002] # LATIN SMALL LETTER SIDEWAYS O
+AB3D ; [.1DE3.0020.0002] # LATIN SMALL LETTER BLACKLETTER O
+0276 ; [.1DE4.0020.0002] # LATIN LETTER SMALL CAPITAL OE
+1D14 ; [.1DE8.0020.0002] # LATIN SMALL LETTER TURNED OE
+AB41 ; [.1DE9.0020.0002] # LATIN SMALL LETTER TURNED OE WITH STROKE
+AB42 ; [.1DEA.0020.0002] # LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE
+AB40 ; [.1DEB.0020.0002] # LATIN SMALL LETTER INVERTED OE
+AB43 ; [.1DEC.0020.0002] # LATIN SMALL LETTER TURNED O OPEN-O
+AB44 ; [.1DED.0020.0002] # LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE
+1D13 ; [.1DEE.0020.0002] # LATIN SMALL LETTER SIDEWAYS O WITH STROKE
+AB3E ; [.1DEF.0020.0002] # LATIN SMALL LETTER BLACKLETTER O WITH STROKE
+0254 ; [.1DF0.0020.0002] # LATIN SMALL LETTER OPEN O
+0186 ; [.1DF0.0020.0008] # LATIN CAPITAL LETTER OPEN O
+1D53 ; [.1DF0.0020.0014] # MODIFIER LETTER SMALL OPEN O
+1D10 ; [.1DF4.0020.0002] # LATIN LETTER SMALL CAPITAL OPEN O
+1D12 ; [.1DF5.0020.0002] # LATIN SMALL LETTER SIDEWAYS OPEN O
+AB3F ; [.1DF6.0020.0002] # LATIN SMALL LETTER OPEN O WITH STROKE
+1D97 ; [.1DF7.0020.0002] # LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
+AB62 ; [.1DF8.0020.0002] # LATIN SMALL LETTER OPEN OE
+A74D ; [.1DF9.0020.0002] # LATIN SMALL LETTER O WITH LOOP
+A74C ; [.1DF9.0020.0008] # LATIN CAPITAL LETTER O WITH LOOP
+1D16 ; [.1DFA.0020.0002] # LATIN SMALL LETTER TOP HALF O
+1D54 ; [.1DFA.0020.0014] # MODIFIER LETTER SMALL TOP HALF O
+1D17 ; [.1DFB.0020.0002] # LATIN SMALL LETTER BOTTOM HALF O
+1D55 ; [.1DFB.0020.0014] # MODIFIER LETTER SMALL BOTTOM HALF O
+2C7A ; [.1DFC.0020.0002] # LATIN SMALL LETTER O WITH LOW RING INSIDE
+0275 ; [.1DFD.0020.0002] # LATIN SMALL LETTER BARRED O
+019F ; [.1DFD.0020.0008] # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+1DB1 ; [.1DFD.0020.0014] # MODIFIER LETTER SMALL BARRED O
+A74B ; [.1E01.0020.0002] # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
+A74A ; [.1E01.0020.0008] # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+0277 ; [.1E02.0020.0002] # LATIN SMALL LETTER CLOSED OMEGA
+A7B7 ; [.1E06.0020.0002] # LATIN SMALL LETTER OMEGA
+A7B6 ; [.1E06.0020.0008] # LATIN CAPITAL LETTER OMEGA
+0223 ; [.1E07.0020.0002] # LATIN SMALL LETTER OU
+0222 ; [.1E07.0020.0008] # LATIN CAPITAL LETTER OU
+1D3D ; [.1E07.0020.001D] # MODIFIER LETTER CAPITAL OU
+1D15 ; [.1E0B.0020.0002] # LATIN LETTER SMALL CAPITAL OU
+0070 ; [.1E0C.0020.0002] # LATIN SMALL LETTER P
+FF50 ; [.1E0C.0020.0003] # FULLWIDTH LATIN SMALL LETTER P
+1DEE ; [.1E0C.0020.0004] # COMBINING LATIN SMALL LETTER P
+24AB ; [*0317.0020.0004][.1E0C.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER P
+1D429 ; [.1E0C.0020.0005] # MATHEMATICAL BOLD SMALL P
+1D45D ; [.1E0C.0020.0005] # MATHEMATICAL ITALIC SMALL P
+1D491 ; [.1E0C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL P
+1D4C5 ; [.1E0C.0020.0005] # MATHEMATICAL SCRIPT SMALL P
+1D4F9 ; [.1E0C.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL P
+1D52D ; [.1E0C.0020.0005] # MATHEMATICAL FRAKTUR SMALL P
+1D561 ; [.1E0C.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL P
+1D595 ; [.1E0C.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL P
+1D5C9 ; [.1E0C.0020.0005] # MATHEMATICAL SANS-SERIF SMALL P
+1D5FD ; [.1E0C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL P
+1D631 ; [.1E0C.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL P
+1D665 ; [.1E0C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
+1D699 ; [.1E0C.0020.0005] # MATHEMATICAL MONOSPACE SMALL P
+24DF ; [.1E0C.0020.0006] # CIRCLED LATIN SMALL LETTER P
+0050 ; [.1E0C.0020.0008] # LATIN CAPITAL LETTER P
+FF30 ; [.1E0C.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER P
+1F11F ; [*0317.0020.0004][.1E0C.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER P
+2119 ; [.1E0C.0020.000B] # DOUBLE-STRUCK CAPITAL P
+1D40F ; [.1E0C.0020.000B] # MATHEMATICAL BOLD CAPITAL P
+1D443 ; [.1E0C.0020.000B] # MATHEMATICAL ITALIC CAPITAL P
+1D477 ; [.1E0C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL P
+1D4AB ; [.1E0C.0020.000B] # MATHEMATICAL SCRIPT CAPITAL P
+1D4DF ; [.1E0C.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL P
+1D513 ; [.1E0C.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL P
+1D57B ; [.1E0C.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL P
+1D5AF ; [.1E0C.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL P
+1D5E3 ; [.1E0C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+1D617 ; [.1E0C.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+1D64B ; [.1E0C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+1D67F ; [.1E0C.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL P
+24C5 ; [.1E0C.0020.000C] # CIRCLED LATIN CAPITAL LETTER P
+1F15F ; [.1E0C.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER P
+1D56 ; [.1E0C.0020.0014] # MODIFIER LETTER SMALL P
+209A ; [.1E0C.0020.0015] # LATIN SUBSCRIPT SMALL LETTER P
+1D3E ; [.1E0C.0020.001D] # MODIFIER LETTER CAPITAL P
+1F13F ; [.1E0C.0020.001D] # SQUARED LATIN CAPITAL LETTER P
+1F17F ; [.1E0C.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER P
+1F18A ; [.1E0C.0020.001D] # CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
+1E55 ; [.1E0C.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER P WITH ACUTE
+1E54 ; [.1E0C.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER P WITH ACUTE
+1E57 ; [.1E0C.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER P WITH DOT ABOVE
+1E56 ; [.1E0C.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER P WITH DOT ABOVE
+3380 ; [.1E0C.0020.001C][.1C47.0020.001D] # SQUARE PA AMPS
+33A9 ; [.1E0C.0020.001D][.1C47.0020.001C] # SQUARE PA
+1F18C ; [.1E0C.0020.001D][.1C47.0020.001D] # NEGATIVE SQUARED PA
+3376 ; [.1E0C.0020.001C][.1C7A.0020.001C] # SQUARE PC
+338A ; [.1E0C.0020.001C][.1CE5.0020.001D] # SQUARE PF
+33D7 ; [.1E0C.0020.001D][.1D18.0020.001D] # SQUARE PH
+33D8 ; [.1E0C.0020.001C][*0277.0020.001C][.1DAA.0020.001C][*0277.0020.001C] # SQUARE PM
+33D9 ; [.1E0C.0020.001D][.1E0C.0020.001D][.1DAA.0020.001D] # SQUARE PPM
+1F14E ; [.1E0C.0020.001D][.1E0C.0020.001D][.1EE3.0020.001D] # SQUARED PPV
+33DA ; [.1E0C.0020.001D][.1E33.0020.001D] # SQUARE PR
+33B0 ; [.1E0C.0020.001C][.1E71.0020.001C] # SQUARE PS
+3250 ; [.1E0C.0020.001D][.1E95.0020.001D][.1CAA.0020.001D] # PARTNERSHIP SIGN
+33B4 ; [.1E0C.0020.001C][.1EE3.0020.001D] # SQUARE PV
+33BA ; [.1E0C.0020.001C][.1EF5.0020.001D] # SQUARE PW
+1D18 ; [.1E10.0020.0002] # LATIN LETTER SMALL CAPITAL P
+1D7D ; [.1E11.0020.0002] # LATIN SMALL LETTER P WITH STROKE
+2C63 ; [.1E11.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE
+A751 ; [.1E12.0020.0002] # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
+A750 ; [.1E12.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+1D71 ; [.1E13.0020.0002] # LATIN SMALL LETTER P WITH MIDDLE TILDE
+1D88 ; [.1E14.0020.0002] # LATIN SMALL LETTER P WITH PALATAL HOOK
+01A5 ; [.1E15.0020.0002] # LATIN SMALL LETTER P WITH HOOK
+01A4 ; [.1E15.0020.0008] # LATIN CAPITAL LETTER P WITH HOOK
+A753 ; [.1E19.0020.0002] # LATIN SMALL LETTER P WITH FLOURISH
+A752 ; [.1E19.0020.0008] # LATIN CAPITAL LETTER P WITH FLOURISH
+A755 ; [.1E1A.0020.0002] # LATIN SMALL LETTER P WITH SQUIRREL TAIL
+A754 ; [.1E1A.0020.0008] # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+A7FC ; [.1E1B.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED P
+0278 ; [.1E1C.0020.0002] # LATIN SMALL LETTER PHI
+1DB2 ; [.1E1C.0020.0014] # MODIFIER LETTER SMALL PHI
+2C77 ; [.1E20.0020.0002] # LATIN SMALL LETTER TAILLESS PHI
+0071 ; [.1E21.0020.0002] # LATIN SMALL LETTER Q
+FF51 ; [.1E21.0020.0003] # FULLWIDTH LATIN SMALL LETTER Q
+24AC ; [*0317.0020.0004][.1E21.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Q
+1D42A ; [.1E21.0020.0005] # MATHEMATICAL BOLD SMALL Q
+1D45E ; [.1E21.0020.0005] # MATHEMATICAL ITALIC SMALL Q
+1D492 ; [.1E21.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Q
+1D4C6 ; [.1E21.0020.0005] # MATHEMATICAL SCRIPT SMALL Q
+1D4FA ; [.1E21.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Q
+1D52E ; [.1E21.0020.0005] # MATHEMATICAL FRAKTUR SMALL Q
+1D562 ; [.1E21.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Q
+1D596 ; [.1E21.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Q
+1D5CA ; [.1E21.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Q
+1D5FE ; [.1E21.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Q
+1D632 ; [.1E21.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Q
+1D666 ; [.1E21.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
+1D69A ; [.1E21.0020.0005] # MATHEMATICAL MONOSPACE SMALL Q
+24E0 ; [.1E21.0020.0006] # CIRCLED LATIN SMALL LETTER Q
+0051 ; [.1E21.0020.0008] # LATIN CAPITAL LETTER Q
+FF31 ; [.1E21.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Q
+1F120 ; [*0317.0020.0004][.1E21.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Q
+211A ; [.1E21.0020.000B] # DOUBLE-STRUCK CAPITAL Q
+1D410 ; [.1E21.0020.000B] # MATHEMATICAL BOLD CAPITAL Q
+1D444 ; [.1E21.0020.000B] # MATHEMATICAL ITALIC CAPITAL Q
+1D478 ; [.1E21.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Q
+1D4AC ; [.1E21.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Q
+1D4E0 ; [.1E21.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Q
+1D514 ; [.1E21.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Q
+1D57C ; [.1E21.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+1D5B0 ; [.1E21.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Q
+1D5E4 ; [.1E21.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+1D618 ; [.1E21.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+1D64C ; [.1E21.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+1D680 ; [.1E21.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Q
+24C6 ; [.1E21.0020.000C] # CIRCLED LATIN CAPITAL LETTER Q
+1F160 ; [.1E21.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
+1F140 ; [.1E21.0020.001D] # SQUARED LATIN CAPITAL LETTER Q
+1F180 ; [.1E21.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Q
+0239 ; [.1E21.0020.0004][.1E0C.0020.0004] # LATIN SMALL LETTER QP DIGRAPH
+A757 ; [.1E25.0020.0002] # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
+A756 ; [.1E25.0020.0008] # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+A759 ; [.1E26.0020.0002] # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
+A758 ; [.1E26.0020.0008] # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+02A0 ; [.1E27.0020.0002] # LATIN SMALL LETTER Q WITH HOOK
+024B ; [.1E2B.0020.0002] # LATIN SMALL LETTER Q WITH HOOK TAIL
+024A ; [.1E2B.0020.0008] # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+0138 ; [.1E2F.0020.0002] # LATIN SMALL LETTER KRA
+0072 ; [.1E33.0020.0002] # LATIN SMALL LETTER R
+FF52 ; [.1E33.0020.0003] # FULLWIDTH LATIN SMALL LETTER R
+036C ; [.1E33.0020.0004] # COMBINING LATIN SMALL LETTER R
+1DCA ; [.1E33.0020.0004] # COMBINING LATIN SMALL LETTER R BELOW
+24AD ; [*0317.0020.0004][.1E33.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER R
+1D42B ; [.1E33.0020.0005] # MATHEMATICAL BOLD SMALL R
+1D45F ; [.1E33.0020.0005] # MATHEMATICAL ITALIC SMALL R
+1D493 ; [.1E33.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL R
+1D4C7 ; [.1E33.0020.0005] # MATHEMATICAL SCRIPT SMALL R
+1D4FB ; [.1E33.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL R
+1D52F ; [.1E33.0020.0005] # MATHEMATICAL FRAKTUR SMALL R
+1D563 ; [.1E33.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL R
+1D597 ; [.1E33.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL R
+1D5CB ; [.1E33.0020.0005] # MATHEMATICAL SANS-SERIF SMALL R
+1D5FF ; [.1E33.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL R
+1D633 ; [.1E33.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL R
+1D667 ; [.1E33.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
+1D69B ; [.1E33.0020.0005] # MATHEMATICAL MONOSPACE SMALL R
+24E1 ; [.1E33.0020.0006] # CIRCLED LATIN SMALL LETTER R
+0052 ; [.1E33.0020.0008] # LATIN CAPITAL LETTER R
+FF32 ; [.1E33.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER R
+1F121 ; [*0317.0020.0004][.1E33.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER R
+211B ; [.1E33.0020.000B] # SCRIPT CAPITAL R
+211C ; [.1E33.0020.000B] # BLACK-LETTER CAPITAL R
+211D ; [.1E33.0020.000B] # DOUBLE-STRUCK CAPITAL R
+1D411 ; [.1E33.0020.000B] # MATHEMATICAL BOLD CAPITAL R
+1D445 ; [.1E33.0020.000B] # MATHEMATICAL ITALIC CAPITAL R
+1D479 ; [.1E33.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL R
+1D4E1 ; [.1E33.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL R
+1D57D ; [.1E33.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL R
+1D5B1 ; [.1E33.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL R
+1D5E5 ; [.1E33.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+1D619 ; [.1E33.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+1D64D ; [.1E33.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+1D681 ; [.1E33.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL R
+24C7 ; [.1E33.0020.000C] # CIRCLED LATIN CAPITAL LETTER R
+1F12C ; [.1E33.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER R
+1F161 ; [.1E33.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER R
+02B3 ; [.1E33.0020.0014] # MODIFIER LETTER SMALL R
+1D63 ; [.1E33.0020.0015] # LATIN SUBSCRIPT SMALL LETTER R
+1D3F ; [.1E33.0020.001D] # MODIFIER LETTER CAPITAL R
+1F141 ; [.1E33.0020.001D] # SQUARED LATIN CAPITAL LETTER R
+1F181 ; [.1E33.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER R
+0155 ; [.1E33.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER R WITH ACUTE
+0154 ; [.1E33.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER R WITH ACUTE
+0159 ; [.1E33.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER R WITH CARON
+0158 ; [.1E33.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER R WITH CARON
+1E59 ; [.1E33.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER R WITH DOT ABOVE
+1E58 ; [.1E33.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER R WITH DOT ABOVE
+0157 ; [.1E33.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER R WITH CEDILLA
+0156 ; [.1E33.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER R WITH CEDILLA
+A7A7 ; [.1E33.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER R WITH OBLIQUE STROKE
+A7A6 ; [.1E33.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
+0211 ; [.1E33.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0210 ; [.1E33.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0213 ; [.1E33.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER R WITH INVERTED BREVE
+0212 ; [.1E33.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER R WITH INVERTED BREVE
+1E5B ; [.1E33.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER R WITH DOT BELOW
+1E5A ; [.1E33.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5D ; [.1E33.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5C ; [.1E33.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5F ; [.1E33.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER R WITH LINE BELOW
+1E5E ; [.1E33.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER R WITH LINE BELOW
+A783 ; [.1E33.0020.0004][.0000.0111.0004] # LATIN SMALL LETTER INSULAR R
+A782 ; [.1E33.0020.000A][.0000.0111.0004] # LATIN CAPITAL LETTER INSULAR R
+33AD ; [.1E33.0020.001C][.1C47.0020.001C][.1C8F.0020.001C] # SQUARE RAD
+33AE ; [.1E33.0020.001C][.1C47.0020.001C][.1C8F.0020.001C][*0625.0020.001C][.1E71.0020.001C] # SQUARE RAD OVER S
+33AF ; [.1E33.0020.001C][.1C47.0020.001C][.1C8F.0020.001C][*0625.0020.001C][.1E71.0020.001C][.1C3F.0020.001C] # SQUARE RAD OVER S SQUARED
+20A8 ; [.1E33.0020.000A][.1E71.0020.0004] # RUPEE SIGN
+AB45 ; [.1E37.0020.0002] # LATIN SMALL LETTER STIRRUP R
+0280 ; [.1E38.0020.0002] # LATIN LETTER SMALL CAPITAL R
+1DE2 ; [.1E38.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL R
+01A6 ; [.1E38.0020.0008] # LATIN LETTER YR
+AB46 ; [.1E3C.0020.0002] # LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG
+A75B ; [.1E3D.0020.0002] # LATIN SMALL LETTER R ROTUNDA
+1DE3 ; [.1E3D.0020.0004] # COMBINING LATIN SMALL LETTER R ROTUNDA
+A75A ; [.1E3D.0020.0008] # LATIN CAPITAL LETTER R ROTUNDA
+1D19 ; [.1E3E.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED R
+024D ; [.1E3F.0020.0002] # LATIN SMALL LETTER R WITH STROKE
+024C ; [.1E3F.0020.0008] # LATIN CAPITAL LETTER R WITH STROKE
+1D72 ; [.1E43.0020.0002] # LATIN SMALL LETTER R WITH MIDDLE TILDE
+0279 ; [.1E44.0020.0002] # LATIN SMALL LETTER TURNED R
+02B4 ; [.1E44.0020.0014] # MODIFIER LETTER SMALL TURNED R
+1D1A ; [.1E48.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED R
+027A ; [.1E49.0020.0002] # LATIN SMALL LETTER TURNED R WITH LONG LEG
+1D89 ; [.1E4D.0020.0002] # LATIN SMALL LETTER R WITH PALATAL HOOK
+027B ; [.1E4E.0020.0002] # LATIN SMALL LETTER TURNED R WITH HOOK
+02B5 ; [.1E4E.0020.0014] # MODIFIER LETTER SMALL TURNED R WITH HOOK
+2C79 ; [.1E52.0020.0002] # LATIN SMALL LETTER TURNED R WITH TAIL
+027C ; [.1E53.0020.0002] # LATIN SMALL LETTER R WITH LONG LEG
+027D ; [.1E57.0020.0002] # LATIN SMALL LETTER R WITH TAIL
+2C64 ; [.1E57.0020.0008] # LATIN CAPITAL LETTER R WITH TAIL
+AB49 ; [.1E5B.0020.0002] # LATIN SMALL LETTER R WITH CROSSED-TAIL
+027E ; [.1E5C.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK
+1D73 ; [.1E60.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
+027F ; [.1E61.0020.0002] # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
+AB47 ; [.1E65.0020.0002] # LATIN SMALL LETTER R WITHOUT HANDLE
+AB48 ; [.1E66.0020.0002] # LATIN SMALL LETTER DOUBLE R
+AB4A ; [.1E67.0020.0002] # LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL
+AB4B ; [.1E68.0020.0002] # LATIN SMALL LETTER SCRIPT R
+AB4C ; [.1E69.0020.0002] # LATIN SMALL LETTER SCRIPT R WITH RING
+0281 ; [.1E6A.0020.0002] # LATIN LETTER SMALL CAPITAL INVERTED R
+02B6 ; [.1E6A.0020.0014] # MODIFIER LETTER SMALL CAPITAL INVERTED R
+A775 ; [.1E6E.0020.0002] # LATIN SMALL LETTER RUM
+A776 ; [.1E6F.0020.0002] # LATIN LETTER SMALL CAPITAL RUM
+A75D ; [.1E70.0020.0002] # LATIN SMALL LETTER RUM ROTUNDA
+A75C ; [.1E70.0020.0008] # LATIN CAPITAL LETTER RUM ROTUNDA
+0073 ; [.1E71.0020.0002] # LATIN SMALL LETTER S
+FF53 ; [.1E71.0020.0003] # FULLWIDTH LATIN SMALL LETTER S
+1DE4 ; [.1E71.0020.0004] # COMBINING LATIN SMALL LETTER S
+24AE ; [*0317.0020.0004][.1E71.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER S
+1D42C ; [.1E71.0020.0005] # MATHEMATICAL BOLD SMALL S
+1D460 ; [.1E71.0020.0005] # MATHEMATICAL ITALIC SMALL S
+1D494 ; [.1E71.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL S
+1D4C8 ; [.1E71.0020.0005] # MATHEMATICAL SCRIPT SMALL S
+1D4FC ; [.1E71.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL S
+1D530 ; [.1E71.0020.0005] # MATHEMATICAL FRAKTUR SMALL S
+1D564 ; [.1E71.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL S
+1D598 ; [.1E71.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL S
+1D5CC ; [.1E71.0020.0005] # MATHEMATICAL SANS-SERIF SMALL S
+1D600 ; [.1E71.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL S
+1D634 ; [.1E71.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL S
+1D668 ; [.1E71.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
+1D69C ; [.1E71.0020.0005] # MATHEMATICAL MONOSPACE SMALL S
+24E2 ; [.1E71.0020.0006] # CIRCLED LATIN SMALL LETTER S
+0053 ; [.1E71.0020.0008] # LATIN CAPITAL LETTER S
+FF33 ; [.1E71.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER S
+1F122 ; [*0317.0020.0004][.1E71.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER S
+1F12A ; [*0379.0020.0004][.1E71.0020.000A][*037A.0020.0004] # TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
+1D412 ; [.1E71.0020.000B] # MATHEMATICAL BOLD CAPITAL S
+1D446 ; [.1E71.0020.000B] # MATHEMATICAL ITALIC CAPITAL S
+1D47A ; [.1E71.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL S
+1D4AE ; [.1E71.0020.000B] # MATHEMATICAL SCRIPT CAPITAL S
+1D4E2 ; [.1E71.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL S
+1D516 ; [.1E71.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL S
+1D54A ; [.1E71.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+1D57E ; [.1E71.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL S
+1D5B2 ; [.1E71.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL S
+1D5E6 ; [.1E71.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+1D61A ; [.1E71.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+1D64E ; [.1E71.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+1D682 ; [.1E71.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL S
+24C8 ; [.1E71.0020.000C] # CIRCLED LATIN CAPITAL LETTER S
+1F162 ; [.1E71.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER S
+02E2 ; [.1E71.0020.0014] # MODIFIER LETTER SMALL S
+209B ; [.1E71.0020.0015] # LATIN SUBSCRIPT SMALL LETTER S
+1F142 ; [.1E71.0020.001D] # SQUARED LATIN CAPITAL LETTER S
+1F182 ; [.1E71.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER S
+015B ; [.1E71.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER S WITH ACUTE
+015A ; [.1E71.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER S WITH ACUTE
+1E65 ; [.1E71.0020.0002][.0000.0024.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E64 ; [.1E71.0020.0008][.0000.0024.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+015D ; [.1E71.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
+015C ; [.1E71.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+0161 ; [.1E71.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E71.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER S WITH CARON
+1E67 ; [.1E71.0020.0002][.0000.0028.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E66 ; [.1E71.0020.0008][.0000.0028.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E61 ; [.1E71.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT ABOVE
+1E60 ; [.1E71.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT ABOVE
+015F ; [.1E71.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER S WITH CEDILLA
+015E ; [.1E71.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER S WITH CEDILLA
+A7A9 ; [.1E71.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER S WITH OBLIQUE STROKE
+A7A8 ; [.1E71.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
+1E63 ; [.1E71.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER S WITH DOT BELOW
+1E62 ; [.1E71.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW
+1E69 ; [.1E71.0020.0002][.0000.0042.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E68 ; [.1E71.0020.0008][.0000.0042.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+0219 ; [.1E71.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
+0218 ; [.1E71.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER S WITH COMMA BELOW
+017F ; [.1E71.0020.0004][.0000.0111.0004] # LATIN SMALL LETTER LONG S
+1DE5 ; [.1E71.0020.0004][.0000.0111.0004] # COMBINING LATIN SMALL LETTER LONG S
+A785 ; [.1E71.0020.0004][.0000.0111.0004] # LATIN SMALL LETTER INSULAR S
+A784 ; [.1E71.0020.000A][.0000.0111.0004] # LATIN CAPITAL LETTER INSULAR S
+1E9B ; [.1E71.0020.0004][.0000.0111.0004][.0000.002E.0002] # LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1F18D ; [.1E71.0020.001D][.1C47.0020.001D] # NEGATIVE SQUARED SA
+1F14C ; [.1E71.0020.001D][.1C8F.0020.001D] # SQUARED SD
+1F1AA ; [.1E71.0020.001D][.1D18.0020.001D][.1EE3.0020.001D] # SQUARED SHV
+2120 ; [.1E71.0020.0014][.1DAA.0020.0014] # SERVICE MARK
+1F198 ; [.1E71.0020.001D][.1DDD.0020.001D][.1E71.0020.001D] # SQUARED SOS
+33DB ; [.1E71.0020.001C][.1E33.0020.001C] # SQUARE SR
+1F14D ; [.1E71.0020.001D][.1E71.0020.001D] # SQUARED SS
+00DF ; [.1E71.0020.0004][.0000.0110.0004][.1E71.0020.0004] # LATIN SMALL LETTER SHARP S
+1E9E ; [.1E71.0020.000A][.0000.0110.0004][.1E71.0020.000A] # LATIN CAPITAL LETTER SHARP S
+FB06 ; [.1E71.0020.0004][.1E95.0020.0004] # LATIN SMALL LIGATURE ST
+FB05 ; [.1E71.0020.0004][.0000.0111.0004][.1E95.0020.0004] # LATIN SMALL LIGATURE LONG S T
+33DC ; [.1E71.0020.001D][.1EE3.0020.001C] # SQUARE SV
+A731 ; [.1E75.0020.0002] # LATIN LETTER SMALL CAPITAL S
+1D74 ; [.1E76.0020.0002] # LATIN SMALL LETTER S WITH MIDDLE TILDE
+1D8A ; [.1E77.0020.0002] # LATIN SMALL LETTER S WITH PALATAL HOOK
+0282 ; [.1E78.0020.0002] # LATIN SMALL LETTER S WITH HOOK
+1DB3 ; [.1E78.0020.0014] # MODIFIER LETTER SMALL S WITH HOOK
+023F ; [.1E7C.0020.0002] # LATIN SMALL LETTER S WITH SWASH TAIL
+2C7E ; [.1E7C.0020.0008] # LATIN CAPITAL LETTER S WITH SWASH TAIL
+1E9C ; [.1E80.0020.0002] # LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
+1E9D ; [.1E81.0020.0002] # LATIN SMALL LETTER LONG S WITH HIGH STROKE
+0283 ; [.1E82.0020.0002] # LATIN SMALL LETTER ESH
+1DEF ; [.1E82.0020.0004] # COMBINING LATIN SMALL LETTER ESH
+01A9 ; [.1E82.0020.0008] # LATIN CAPITAL LETTER ESH
+1DB4 ; [.1E82.0020.0014] # MODIFIER LETTER SMALL ESH
+AB4D ; [.1E86.0020.0002] # LATIN SMALL LETTER BASELINE ESH
+1D8B ; [.1E87.0020.0002] # LATIN SMALL LETTER ESH WITH PALATAL HOOK
+01AA ; [.1E88.0020.0002] # LATIN LETTER REVERSED ESH LOOP
+0285 ; [.1E8C.0020.0002] # LATIN SMALL LETTER SQUAT REVERSED ESH
+1D98 ; [.1E90.0020.0002] # LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
+0286 ; [.1E91.0020.0002] # LATIN SMALL LETTER ESH WITH CURL
+0074 ; [.1E95.0020.0002] # LATIN SMALL LETTER T
+FF54 ; [.1E95.0020.0003] # FULLWIDTH LATIN SMALL LETTER T
+036D ; [.1E95.0020.0004] # COMBINING LATIN SMALL LETTER T
+24AF ; [*0317.0020.0004][.1E95.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER T
+1D42D ; [.1E95.0020.0005] # MATHEMATICAL BOLD SMALL T
+1D461 ; [.1E95.0020.0005] # MATHEMATICAL ITALIC SMALL T
+1D495 ; [.1E95.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL T
+1D4C9 ; [.1E95.0020.0005] # MATHEMATICAL SCRIPT SMALL T
+1D4FD ; [.1E95.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL T
+1D531 ; [.1E95.0020.0005] # MATHEMATICAL FRAKTUR SMALL T
+1D565 ; [.1E95.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL T
+1D599 ; [.1E95.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL T
+1D5CD ; [.1E95.0020.0005] # MATHEMATICAL SANS-SERIF SMALL T
+1D601 ; [.1E95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL T
+1D635 ; [.1E95.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL T
+1D669 ; [.1E95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
+1D69D ; [.1E95.0020.0005] # MATHEMATICAL MONOSPACE SMALL T
+24E3 ; [.1E95.0020.0006] # CIRCLED LATIN SMALL LETTER T
+0054 ; [.1E95.0020.0008] # LATIN CAPITAL LETTER T
+FF34 ; [.1E95.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER T
+1F123 ; [*0317.0020.0004][.1E95.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER T
+1D413 ; [.1E95.0020.000B] # MATHEMATICAL BOLD CAPITAL T
+1D447 ; [.1E95.0020.000B] # MATHEMATICAL ITALIC CAPITAL T
+1D47B ; [.1E95.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL T
+1D4AF ; [.1E95.0020.000B] # MATHEMATICAL SCRIPT CAPITAL T
+1D4E3 ; [.1E95.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL T
+1D517 ; [.1E95.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL T
+1D54B ; [.1E95.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+1D57F ; [.1E95.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL T
+1D5B3 ; [.1E95.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL T
+1D5E7 ; [.1E95.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+1D61B ; [.1E95.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+1D64F ; [.1E95.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+1D683 ; [.1E95.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL T
+24C9 ; [.1E95.0020.000C] # CIRCLED LATIN CAPITAL LETTER T
+1F163 ; [.1E95.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER T
+1D57 ; [.1E95.0020.0014] # MODIFIER LETTER SMALL T
+209C ; [.1E95.0020.0015] # LATIN SUBSCRIPT SMALL LETTER T
+1D40 ; [.1E95.0020.001D] # MODIFIER LETTER CAPITAL T
+1F143 ; [.1E95.0020.001D] # SQUARED LATIN CAPITAL LETTER T
+1F183 ; [.1E95.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER T
+0165 ; [.1E95.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER T WITH CARON
+0164 ; [.1E95.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER T WITH CARON
+1E97 ; [.1E95.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER T WITH DIAERESIS
+1E6B ; [.1E95.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER T WITH DOT ABOVE
+1E6A ; [.1E95.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER T WITH DOT ABOVE
+0163 ; [.1E95.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER T WITH CEDILLA
+0162 ; [.1E95.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER T WITH CEDILLA
+1E6D ; [.1E95.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER T WITH DOT BELOW
+1E6C ; [.1E95.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER T WITH DOT BELOW
+021B ; [.1E95.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
+021A ; [.1E95.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER T WITH COMMA BELOW
+1E71 ; [.1E95.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E70 ; [.1E95.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E6F ; [.1E95.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER T WITH LINE BELOW
+1E6E ; [.1E95.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER T WITH LINE BELOW
+A787 ; [.1E95.0020.0004][.0000.0111.0004] # LATIN SMALL LETTER INSULAR T
+A786 ; [.1E95.0020.000A][.0000.0111.0004] # LATIN CAPITAL LETTER INSULAR T
+02A8 ; [.1E95.0020.0004][.1C89.0020.0004] # LATIN SMALL LETTER TC DIGRAPH WITH CURL
+2121 ; [.1E95.0020.000A][.1CAA.0020.000A][.1D77.0020.000A] # TELEPHONE SIGN
+1D7A ; [.1E95.0020.0004][.0000.0110.0004][.1D18.0020.0004] # LATIN SMALL LETTER TH WITH STRIKETHROUGH
+3394 ; [.1E95.0020.001D][.1D18.0020.001D][.1F21.0020.001C] # SQUARE THZ
+2122 ; [.1E95.0020.0014][.1DAA.0020.0014] # TRADE MARK SIGN
+01BE ; [.1E95.0020.0004][.1E71.0020.0004] # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
+02A6 ; [.1E95.0020.0004][.1E71.0020.0004] # LATIN SMALL LETTER TS DIGRAPH
+02A7 ; [.1E95.0020.0004][.1E82.0020.0004] # LATIN SMALL LETTER TESH DIGRAPH
+A729 ; [.1E95.0020.0004][.1F21.0020.0004] # LATIN SMALL LETTER TZ
+A728 ; [.1E95.0020.000A][.1F21.0020.0004] # LATIN CAPITAL LETTER TZ
+1D1B ; [.1E99.0020.0002] # LATIN LETTER SMALL CAPITAL T
+0167 ; [.1E9A.0020.0002] # LATIN SMALL LETTER T WITH STROKE
+0166 ; [.1E9A.0020.0008] # LATIN CAPITAL LETTER T WITH STROKE
+2C66 ; [.1E9E.0020.0002] # LATIN SMALL LETTER T WITH DIAGONAL STROKE
+023E ; [.1E9E.0020.0008] # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+1D75 ; [.1E9F.0020.0002] # LATIN SMALL LETTER T WITH MIDDLE TILDE
+01AB ; [.1EA0.0020.0002] # LATIN SMALL LETTER T WITH PALATAL HOOK
+1DB5 ; [.1EA0.0020.0014] # MODIFIER LETTER SMALL T WITH PALATAL HOOK
+01AD ; [.1EA4.0020.0002] # LATIN SMALL LETTER T WITH HOOK
+01AC ; [.1EA4.0020.0008] # LATIN CAPITAL LETTER T WITH HOOK
+0288 ; [.1EA8.0020.0002] # LATIN SMALL LETTER T WITH RETROFLEX HOOK
+01AE ; [.1EA8.0020.0008] # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+0236 ; [.1EAC.0020.0002] # LATIN SMALL LETTER T WITH CURL
+A777 ; [.1EB0.0020.0002] # LATIN SMALL LETTER TUM
+0287 ; [.1EB1.0020.0002] # LATIN SMALL LETTER TURNED T
+A7B1 ; [.1EB1.0020.0008] # LATIN CAPITAL LETTER TURNED T
+0075 ; [.1EB5.0020.0002] # LATIN SMALL LETTER U
+FF55 ; [.1EB5.0020.0003] # FULLWIDTH LATIN SMALL LETTER U
+0367 ; [.1EB5.0020.0004] # COMBINING LATIN SMALL LETTER U
+24B0 ; [*0317.0020.0004][.1EB5.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER U
+1D42E ; [.1EB5.0020.0005] # MATHEMATICAL BOLD SMALL U
+1D462 ; [.1EB5.0020.0005] # MATHEMATICAL ITALIC SMALL U
+1D496 ; [.1EB5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL U
+1D4CA ; [.1EB5.0020.0005] # MATHEMATICAL SCRIPT SMALL U
+1D4FE ; [.1EB5.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL U
+1D532 ; [.1EB5.0020.0005] # MATHEMATICAL FRAKTUR SMALL U
+1D566 ; [.1EB5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL U
+1D59A ; [.1EB5.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL U
+1D5CE ; [.1EB5.0020.0005] # MATHEMATICAL SANS-SERIF SMALL U
+1D602 ; [.1EB5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL U
+1D636 ; [.1EB5.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL U
+1D66A ; [.1EB5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
+1D69E ; [.1EB5.0020.0005] # MATHEMATICAL MONOSPACE SMALL U
+24E4 ; [.1EB5.0020.0006] # CIRCLED LATIN SMALL LETTER U
+0055 ; [.1EB5.0020.0008] # LATIN CAPITAL LETTER U
+FF35 ; [.1EB5.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER U
+1F124 ; [*0317.0020.0004][.1EB5.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER U
+1D414 ; [.1EB5.0020.000B] # MATHEMATICAL BOLD CAPITAL U
+1D448 ; [.1EB5.0020.000B] # MATHEMATICAL ITALIC CAPITAL U
+1D47C ; [.1EB5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL U
+1D4B0 ; [.1EB5.0020.000B] # MATHEMATICAL SCRIPT CAPITAL U
+1D4E4 ; [.1EB5.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL U
+1D518 ; [.1EB5.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL U
+1D54C ; [.1EB5.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+1D580 ; [.1EB5.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL U
+1D5B4 ; [.1EB5.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL U
+1D5E8 ; [.1EB5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+1D61C ; [.1EB5.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+1D650 ; [.1EB5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+1D684 ; [.1EB5.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL U
+24CA ; [.1EB5.0020.000C] # CIRCLED LATIN CAPITAL LETTER U
+1F164 ; [.1EB5.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER U
+1D58 ; [.1EB5.0020.0014] # MODIFIER LETTER SMALL U
+1D64 ; [.1EB5.0020.0015] # LATIN SUBSCRIPT SMALL LETTER U
+1D41 ; [.1EB5.0020.001D] # MODIFIER LETTER CAPITAL U
+1F144 ; [.1EB5.0020.001D] # SQUARED LATIN CAPITAL LETTER U
+1F184 ; [.1EB5.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER U
+00FA ; [.1EB5.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1EB5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH ACUTE
+00F9 ; [.1EB5.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1EB5.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH GRAVE
+016D ; [.1EB5.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER U WITH BREVE
+016C ; [.1EB5.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER U WITH BREVE
+00FB ; [.1EB5.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
+00DB ; [.1EB5.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+01D4 ; [.1EB5.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1EB5.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH CARON
+016F ; [.1EB5.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH RING ABOVE
+016E ; [.1EB5.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH RING ABOVE
+00FC ; [.1EB5.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+1DF4 ; [.1EB5.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER U WITH DIAERESIS
+A79F ; [.1EB5.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK UE
+00DC ; [.1EB5.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS
+A79E ; [.1EB5.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK UE
+01D8 ; [.1EB5.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1EB5.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01DC ; [.1EB5.0020.0002][.0000.002B.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1EB5.0020.0008][.0000.002B.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DA ; [.1EB5.0020.0002][.0000.002B.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1EB5.0020.0008][.0000.002B.0002][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01D6 ; [.1EB5.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1EB5.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0171 ; [.1EB5.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1EB5.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0169 ; [.1EB5.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH TILDE
+0168 ; [.1EB5.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH TILDE
+1E79 ; [.1EB5.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E78 ; [.1EB5.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+0173 ; [.1EB5.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER U WITH OGONEK
+0172 ; [.1EB5.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER U WITH OGONEK
+016B ; [.1EB5.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1EB5.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
+1E7B ; [.1EB5.0020.0002][.0000.0032.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7A ; [.1EB5.0020.0008][.0000.0032.0002][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1DF0 ; [.1EB5.0020.0004][.0000.0034.0004] # COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE
+1EE7 ; [.1EB5.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE6 ; [.1EB5.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+0215 ; [.1EB5.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0214 ; [.1EB5.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0217 ; [.1EB5.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER U WITH INVERTED BREVE
+0216 ; [.1EB5.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER U WITH INVERTED BREVE
+01B0 ; [.1EB5.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN
+01AF ; [.1EB5.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN
+1EE9 ; [.1EB5.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EE8 ; [.1EB5.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EEB ; [.1EB5.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEA ; [.1EB5.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEF ; [.1EB5.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH HORN AND TILDE
+1EEE ; [.1EB5.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EED ; [.1EB5.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEC ; [.1EB5.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EF1 ; [.1EB5.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF0 ; [.1EB5.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EE5 ; [.1EB5.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH DOT BELOW
+1EE4 ; [.1EB5.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH DOT BELOW
+1E73 ; [.1EB5.0020.0002][.0000.0043.0002] # LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E72 ; [.1EB5.0020.0008][.0000.0043.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E77 ; [.1EB5.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E76 ; [.1EB5.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E75 ; [.1EB5.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER U WITH TILDE BELOW
+1E74 ; [.1EB5.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER U WITH TILDE BELOW
+1F1AB ; [.1EB5.0020.001D][.1D18.0020.001D][.1C8F.0020.001D] # SQUARED UHD
+1F199 ; [.1EB5.0020.001D][.1E0C.0020.001D][*0260.0020.001C] # SQUARED UP WITH EXCLAMATION MARK
+1D1C ; [.1EB9.0020.0002] # LATIN LETTER SMALL CAPITAL U
+1DB8 ; [.1EB9.0020.0014] # MODIFIER LETTER SMALL CAPITAL U
+AB4E ; [.1EBA.0020.0002] # LATIN SMALL LETTER U WITH SHORT RIGHT LEG
+1D1D ; [.1EBB.0020.0002] # LATIN SMALL LETTER SIDEWAYS U
+1D59 ; [.1EBB.0020.0014] # MODIFIER LETTER SMALL SIDEWAYS U
+1D1E ; [.1EBC.0020.0002] # LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
+1D6B ; [.1EBD.0020.0002] # LATIN SMALL LETTER UE
+AB50 ; [.1EBE.0020.0002] # LATIN SMALL LETTER UI
+AB51 ; [.1EBF.0020.0002] # LATIN SMALL LETTER TURNED UI
+0289 ; [.1EC0.0020.0002] # LATIN SMALL LETTER U BAR
+0244 ; [.1EC0.0020.0008] # LATIN CAPITAL LETTER U BAR
+1DB6 ; [.1EC0.0020.0014] # MODIFIER LETTER SMALL U BAR
+AB4F ; [.1EC4.0020.0002] # LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG
+1D7E ; [.1EC5.0020.0002] # LATIN SMALL CAPITAL LETTER U WITH STROKE
+1D99 ; [.1EC6.0020.0002] # LATIN SMALL LETTER U WITH RETROFLEX HOOK
+AB52 ; [.1EC7.0020.0002] # LATIN SMALL LETTER U WITH LEFT HOOK
+AB5F ; [.1EC7.0020.0014] # MODIFIER LETTER SMALL U WITH LEFT HOOK
+0265 ; [.1EC8.0020.0002] # LATIN SMALL LETTER TURNED H
+A78D ; [.1EC8.0020.0008] # LATIN CAPITAL LETTER TURNED H
+1DA3 ; [.1EC8.0020.0014] # MODIFIER LETTER SMALL TURNED H
+02AE ; [.1ECC.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK
+02AF ; [.1ED0.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+026F ; [.1ED4.0020.0002] # LATIN SMALL LETTER TURNED M
+019C ; [.1ED4.0020.0008] # LATIN CAPITAL LETTER TURNED M
+1D5A ; [.1ED4.0020.0014] # MODIFIER LETTER SMALL TURNED M
+A7FA ; [.1ED8.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED M
+1D1F ; [.1ED9.0020.0002] # LATIN SMALL LETTER SIDEWAYS TURNED M
+0270 ; [.1EDA.0020.0002] # LATIN SMALL LETTER TURNED M WITH LONG LEG
+1DAD ; [.1EDA.0020.0014] # MODIFIER LETTER SMALL TURNED M WITH LONG LEG
+028A ; [.1EDE.0020.0002] # LATIN SMALL LETTER UPSILON
+01B1 ; [.1EDE.0020.0008] # LATIN CAPITAL LETTER UPSILON
+1DB7 ; [.1EDE.0020.0014] # MODIFIER LETTER SMALL UPSILON
+1D7F ; [.1EE2.0020.0002] # LATIN SMALL LETTER UPSILON WITH STROKE
+0076 ; [.1EE3.0020.0002] # LATIN SMALL LETTER V
+FF56 ; [.1EE3.0020.0003] # FULLWIDTH LATIN SMALL LETTER V
+036E ; [.1EE3.0020.0004] # COMBINING LATIN SMALL LETTER V
+2174 ; [.1EE3.0020.0004] # SMALL ROMAN NUMERAL FIVE
+24B1 ; [*0317.0020.0004][.1EE3.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER V
+1D42F ; [.1EE3.0020.0005] # MATHEMATICAL BOLD SMALL V
+1D463 ; [.1EE3.0020.0005] # MATHEMATICAL ITALIC SMALL V
+1D497 ; [.1EE3.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL V
+1D4CB ; [.1EE3.0020.0005] # MATHEMATICAL SCRIPT SMALL V
+1D4FF ; [.1EE3.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL V
+1D533 ; [.1EE3.0020.0005] # MATHEMATICAL FRAKTUR SMALL V
+1D567 ; [.1EE3.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL V
+1D59B ; [.1EE3.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL V
+1D5CF ; [.1EE3.0020.0005] # MATHEMATICAL SANS-SERIF SMALL V
+1D603 ; [.1EE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL V
+1D637 ; [.1EE3.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL V
+1D66B ; [.1EE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
+1D69F ; [.1EE3.0020.0005] # MATHEMATICAL MONOSPACE SMALL V
+24E5 ; [.1EE3.0020.0006] # CIRCLED LATIN SMALL LETTER V
+0056 ; [.1EE3.0020.0008] # LATIN CAPITAL LETTER V
+FF36 ; [.1EE3.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER V
+2164 ; [.1EE3.0020.000A] # ROMAN NUMERAL FIVE
+1F125 ; [*0317.0020.0004][.1EE3.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER V
+1D415 ; [.1EE3.0020.000B] # MATHEMATICAL BOLD CAPITAL V
+1D449 ; [.1EE3.0020.000B] # MATHEMATICAL ITALIC CAPITAL V
+1D47D ; [.1EE3.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL V
+1D4B1 ; [.1EE3.0020.000B] # MATHEMATICAL SCRIPT CAPITAL V
+1D4E5 ; [.1EE3.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL V
+1D519 ; [.1EE3.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL V
+1D54D ; [.1EE3.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+1D581 ; [.1EE3.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL V
+1D5B5 ; [.1EE3.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL V
+1D5E9 ; [.1EE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+1D61D ; [.1EE3.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+1D651 ; [.1EE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+1D685 ; [.1EE3.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL V
+24CB ; [.1EE3.0020.000C] # CIRCLED LATIN CAPITAL LETTER V
+1F165 ; [.1EE3.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER V
+1D5B ; [.1EE3.0020.0014] # MODIFIER LETTER SMALL V
+1D65 ; [.1EE3.0020.0015] # LATIN SUBSCRIPT SMALL LETTER V
+2C7D ; [.1EE3.0020.001D] # MODIFIER LETTER CAPITAL V
+1F145 ; [.1EE3.0020.001D] # SQUARED LATIN CAPITAL LETTER V
+1F185 ; [.1EE3.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER V
+1E7D ; [.1EE3.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER V WITH TILDE
+1E7C ; [.1EE3.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER V WITH TILDE
+1E7F ; [.1EE3.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER V WITH DOT BELOW
+1E7E ; [.1EE3.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER V WITH DOT BELOW
+2175 ; [.1EE3.0020.0004][.1D32.0020.0004] # SMALL ROMAN NUMERAL SIX
+2165 ; [.1EE3.0020.000A][.1D32.0020.000A] # ROMAN NUMERAL SIX
+2176 ; [.1EE3.0020.0004][.1D32.0020.0004][.1D32.0020.0004] # SMALL ROMAN NUMERAL SEVEN
+2166 ; [.1EE3.0020.000A][.1D32.0020.000A][.1D32.0020.000A] # ROMAN NUMERAL SEVEN
+2177 ; [.1EE3.0020.0004][.1D32.0020.0004][.1D32.0020.0004][.1D32.0020.0004] # SMALL ROMAN NUMERAL EIGHT
+2167 ; [.1EE3.0020.000A][.1D32.0020.000A][.1D32.0020.000A][.1D32.0020.000A] # ROMAN NUMERAL EIGHT
+33DE ; [.1EE3.0020.001D][*0625.0020.001C][.1DAA.0020.001C] # SQUARE V OVER M
+1F1AC ; [.1EE3.0020.001D][.1DDD.0020.001D][.1C8F.0020.001D] # SQUARED VOD
+1F19A ; [.1EE3.0020.001D][.1E71.0020.001D] # SQUARED VS
+A761 ; [.1EE3.0020.0004][.1F0B.0020.0004] # LATIN SMALL LETTER VY
+A760 ; [.1EE3.0020.000A][.1F0B.0020.000A] # LATIN CAPITAL LETTER VY
+1D20 ; [.1EE7.0020.0002] # LATIN LETTER SMALL CAPITAL V
+A75F ; [.1EE8.0020.0002] # LATIN SMALL LETTER V WITH DIAGONAL STROKE
+A75E ; [.1EE8.0020.0008] # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+1D8C ; [.1EE9.0020.0002] # LATIN SMALL LETTER V WITH PALATAL HOOK
+028B ; [.1EEA.0020.0002] # LATIN SMALL LETTER V WITH HOOK
+01B2 ; [.1EEA.0020.0008] # LATIN CAPITAL LETTER V WITH HOOK
+1DB9 ; [.1EEA.0020.0014] # MODIFIER LETTER SMALL V WITH HOOK
+2C71 ; [.1EEE.0020.0002] # LATIN SMALL LETTER V WITH RIGHT HOOK
+2C74 ; [.1EEF.0020.0002] # LATIN SMALL LETTER V WITH CURL
+1EFD ; [.1EF0.0020.0002] # LATIN SMALL LETTER MIDDLE-WELSH V
+1EFC ; [.1EF0.0020.0008] # LATIN CAPITAL LETTER MIDDLE-WELSH V
+028C ; [.1EF1.0020.0002] # LATIN SMALL LETTER TURNED V
+0245 ; [.1EF1.0020.0008] # LATIN CAPITAL LETTER TURNED V
+1DBA ; [.1EF1.0020.0014] # MODIFIER LETTER SMALL TURNED V
+0077 ; [.1EF5.0020.0002] # LATIN SMALL LETTER W
+FF57 ; [.1EF5.0020.0003] # FULLWIDTH LATIN SMALL LETTER W
+1DF1 ; [.1EF5.0020.0004] # COMBINING LATIN SMALL LETTER W
+24B2 ; [*0317.0020.0004][.1EF5.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER W
+1D430 ; [.1EF5.0020.0005] # MATHEMATICAL BOLD SMALL W
+1D464 ; [.1EF5.0020.0005] # MATHEMATICAL ITALIC SMALL W
+1D498 ; [.1EF5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL W
+1D4CC ; [.1EF5.0020.0005] # MATHEMATICAL SCRIPT SMALL W
+1D500 ; [.1EF5.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL W
+1D534 ; [.1EF5.0020.0005] # MATHEMATICAL FRAKTUR SMALL W
+1D568 ; [.1EF5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL W
+1D59C ; [.1EF5.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL W
+1D5D0 ; [.1EF5.0020.0005] # MATHEMATICAL SANS-SERIF SMALL W
+1D604 ; [.1EF5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL W
+1D638 ; [.1EF5.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL W
+1D66C ; [.1EF5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
+1D6A0 ; [.1EF5.0020.0005] # MATHEMATICAL MONOSPACE SMALL W
+24E6 ; [.1EF5.0020.0006] # CIRCLED LATIN SMALL LETTER W
+0057 ; [.1EF5.0020.0008] # LATIN CAPITAL LETTER W
+FF37 ; [.1EF5.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER W
+1F126 ; [*0317.0020.0004][.1EF5.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER W
+1D416 ; [.1EF5.0020.000B] # MATHEMATICAL BOLD CAPITAL W
+1D44A ; [.1EF5.0020.000B] # MATHEMATICAL ITALIC CAPITAL W
+1D47E ; [.1EF5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL W
+1D4B2 ; [.1EF5.0020.000B] # MATHEMATICAL SCRIPT CAPITAL W
+1D4E6 ; [.1EF5.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL W
+1D51A ; [.1EF5.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL W
+1D54E ; [.1EF5.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+1D582 ; [.1EF5.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL W
+1D5B6 ; [.1EF5.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL W
+1D5EA ; [.1EF5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+1D61E ; [.1EF5.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+1D652 ; [.1EF5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+1D686 ; [.1EF5.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL W
+24CC ; [.1EF5.0020.000C] # CIRCLED LATIN CAPITAL LETTER W
+1F166 ; [.1EF5.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER W
+02B7 ; [.1EF5.0020.0014] # MODIFIER LETTER SMALL W
+1D42 ; [.1EF5.0020.001D] # MODIFIER LETTER CAPITAL W
+1F146 ; [.1EF5.0020.001D] # SQUARED LATIN CAPITAL LETTER W
+1F186 ; [.1EF5.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER W
+1E83 ; [.1EF5.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER W WITH ACUTE
+1E82 ; [.1EF5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER W WITH ACUTE
+1E81 ; [.1EF5.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER W WITH GRAVE
+1E80 ; [.1EF5.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER W WITH GRAVE
+0175 ; [.1EF5.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER W WITH CIRCUMFLEX
+0174 ; [.1EF5.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+1E98 ; [.1EF5.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER W WITH RING ABOVE
+1E85 ; [.1EF5.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER W WITH DIAERESIS
+1E84 ; [.1EF5.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER W WITH DIAERESIS
+1E87 ; [.1EF5.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER W WITH DOT ABOVE
+1E86 ; [.1EF5.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E89 ; [.1EF5.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER W WITH DOT BELOW
+1E88 ; [.1EF5.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER W WITH DOT BELOW
+33DD ; [.1EF5.0020.001D][.1C60.0020.001C] # SQUARE WB
+1F14F ; [.1EF5.0020.001D][.1C7A.0020.001D] # SQUARED WC
+1F18F ; [.1EF5.0020.001D][.1C7A.0020.001D] # NEGATIVE SQUARED WC
+1F12E ; [.1EF5.0020.000C][.1F21.0020.000C] # CIRCLED WZ
+1D21 ; [.1EF9.0020.0002] # LATIN LETTER SMALL CAPITAL W
+2C73 ; [.1EFA.0020.0002] # LATIN SMALL LETTER W WITH HOOK
+2C72 ; [.1EFA.0020.0008] # LATIN CAPITAL LETTER W WITH HOOK
+028D ; [.1EFB.0020.0002] # LATIN SMALL LETTER TURNED W
+0078 ; [.1EFF.0020.0002] # LATIN SMALL LETTER X
+FF58 ; [.1EFF.0020.0003] # FULLWIDTH LATIN SMALL LETTER X
+036F ; [.1EFF.0020.0004] # COMBINING LATIN SMALL LETTER X
+2179 ; [.1EFF.0020.0004] # SMALL ROMAN NUMERAL TEN
+24B3 ; [*0317.0020.0004][.1EFF.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER X
+1D431 ; [.1EFF.0020.0005] # MATHEMATICAL BOLD SMALL X
+1D465 ; [.1EFF.0020.0005] # MATHEMATICAL ITALIC SMALL X
+1D499 ; [.1EFF.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL X
+1D4CD ; [.1EFF.0020.0005] # MATHEMATICAL SCRIPT SMALL X
+1D501 ; [.1EFF.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL X
+1D535 ; [.1EFF.0020.0005] # MATHEMATICAL FRAKTUR SMALL X
+1D569 ; [.1EFF.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL X
+1D59D ; [.1EFF.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL X
+1D5D1 ; [.1EFF.0020.0005] # MATHEMATICAL SANS-SERIF SMALL X
+1D605 ; [.1EFF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL X
+1D639 ; [.1EFF.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL X
+1D66D ; [.1EFF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
+1D6A1 ; [.1EFF.0020.0005] # MATHEMATICAL MONOSPACE SMALL X
+24E7 ; [.1EFF.0020.0006] # CIRCLED LATIN SMALL LETTER X
+0058 ; [.1EFF.0020.0008] # LATIN CAPITAL LETTER X
+FF38 ; [.1EFF.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER X
+2169 ; [.1EFF.0020.000A] # ROMAN NUMERAL TEN
+1F127 ; [*0317.0020.0004][.1EFF.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER X
+1D417 ; [.1EFF.0020.000B] # MATHEMATICAL BOLD CAPITAL X
+1D44B ; [.1EFF.0020.000B] # MATHEMATICAL ITALIC CAPITAL X
+1D47F ; [.1EFF.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL X
+1D4B3 ; [.1EFF.0020.000B] # MATHEMATICAL SCRIPT CAPITAL X
+1D4E7 ; [.1EFF.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL X
+1D51B ; [.1EFF.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL X
+1D54F ; [.1EFF.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+1D583 ; [.1EFF.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL X
+1D5B7 ; [.1EFF.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL X
+1D5EB ; [.1EFF.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+1D61F ; [.1EFF.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+1D653 ; [.1EFF.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+1D687 ; [.1EFF.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL X
+24CD ; [.1EFF.0020.000C] # CIRCLED LATIN CAPITAL LETTER X
+1F167 ; [.1EFF.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER X
+02E3 ; [.1EFF.0020.0014] # MODIFIER LETTER SMALL X
+2093 ; [.1EFF.0020.0015] # LATIN SUBSCRIPT SMALL LETTER X
+1F147 ; [.1EFF.0020.001D] # SQUARED LATIN CAPITAL LETTER X
+1F187 ; [.1EFF.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER X
+1E8D ; [.1EFF.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER X WITH DIAERESIS
+1E8C ; [.1EFF.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8B ; [.1EFF.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER X WITH DOT ABOVE
+1E8A ; [.1EFF.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER X WITH DOT ABOVE
+217A ; [.1EFF.0020.0004][.1D32.0020.0004] # SMALL ROMAN NUMERAL ELEVEN
+216A ; [.1EFF.0020.000A][.1D32.0020.000A] # ROMAN NUMERAL ELEVEN
+217B ; [.1EFF.0020.0004][.1D32.0020.0004][.1D32.0020.0004] # SMALL ROMAN NUMERAL TWELVE
+216B ; [.1EFF.0020.000A][.1D32.0020.000A][.1D32.0020.000A] # ROMAN NUMERAL TWELVE
+1D8D ; [.1F03.0020.0002] # LATIN SMALL LETTER X WITH PALATAL HOOK
+AB56 ; [.1F04.0020.0002] # LATIN SMALL LETTER X WITH LOW RIGHT RING
+AB57 ; [.1F05.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG
+AB58 ; [.1F06.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING
+AB59 ; [.1F07.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF
+AB53 ; [.1F08.0020.0002] # LATIN SMALL LETTER CHI
+A7B3 ; [.1F08.0020.0008] # LATIN CAPITAL LETTER CHI
+AB54 ; [.1F09.0020.0002] # LATIN SMALL LETTER CHI WITH LOW RIGHT RING
+AB55 ; [.1F0A.0020.0002] # LATIN SMALL LETTER CHI WITH LOW LEFT SERIF
+0079 ; [.1F0B.0020.0002] # LATIN SMALL LETTER Y
+FF59 ; [.1F0B.0020.0003] # FULLWIDTH LATIN SMALL LETTER Y
+24B4 ; [*0317.0020.0004][.1F0B.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Y
+1D432 ; [.1F0B.0020.0005] # MATHEMATICAL BOLD SMALL Y
+1D466 ; [.1F0B.0020.0005] # MATHEMATICAL ITALIC SMALL Y
+1D49A ; [.1F0B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Y
+1D4CE ; [.1F0B.0020.0005] # MATHEMATICAL SCRIPT SMALL Y
+1D502 ; [.1F0B.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Y
+1D536 ; [.1F0B.0020.0005] # MATHEMATICAL FRAKTUR SMALL Y
+1D56A ; [.1F0B.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Y
+1D59E ; [.1F0B.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Y
+1D5D2 ; [.1F0B.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Y
+1D606 ; [.1F0B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Y
+1D63A ; [.1F0B.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Y
+1D66E ; [.1F0B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
+1D6A2 ; [.1F0B.0020.0005] # MATHEMATICAL MONOSPACE SMALL Y
+24E8 ; [.1F0B.0020.0006] # CIRCLED LATIN SMALL LETTER Y
+0059 ; [.1F0B.0020.0008] # LATIN CAPITAL LETTER Y
+FF39 ; [.1F0B.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Y
+1F128 ; [*0317.0020.0004][.1F0B.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Y
+1D418 ; [.1F0B.0020.000B] # MATHEMATICAL BOLD CAPITAL Y
+1D44C ; [.1F0B.0020.000B] # MATHEMATICAL ITALIC CAPITAL Y
+1D480 ; [.1F0B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Y
+1D4B4 ; [.1F0B.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Y
+1D4E8 ; [.1F0B.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Y
+1D51C ; [.1F0B.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Y
+1D550 ; [.1F0B.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D584 ; [.1F0B.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+1D5B8 ; [.1F0B.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Y
+1D5EC ; [.1F0B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+1D620 ; [.1F0B.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+1D654 ; [.1F0B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+1D688 ; [.1F0B.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Y
+24CE ; [.1F0B.0020.000C] # CIRCLED LATIN CAPITAL LETTER Y
+1F168 ; [.1F0B.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
+02B8 ; [.1F0B.0020.0014] # MODIFIER LETTER SMALL Y
+1F148 ; [.1F0B.0020.001D] # SQUARED LATIN CAPITAL LETTER Y
+1F188 ; [.1F0B.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Y
+00FD ; [.1F0B.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Y WITH ACUTE
+00DD ; [.1F0B.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Y WITH ACUTE
+1EF3 ; [.1F0B.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER Y WITH GRAVE
+1EF2 ; [.1F0B.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER Y WITH GRAVE
+0177 ; [.1F0B.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0176 ; [.1F0B.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+1E99 ; [.1F0B.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH RING ABOVE
+00FF ; [.1F0B.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER Y WITH DIAERESIS
+0178 ; [.1F0B.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER Y WITH DIAERESIS
+1EF9 ; [.1F0B.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER Y WITH TILDE
+1EF8 ; [.1F0B.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER Y WITH TILDE
+1E8F ; [.1F0B.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Y WITH DOT ABOVE
+1E8E ; [.1F0B.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Y WITH DOT ABOVE
+0233 ; [.1F0B.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER Y WITH MACRON
+0232 ; [.1F0B.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER Y WITH MACRON
+1EF7 ; [.1F0B.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF6 ; [.1F0B.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF5 ; [.1F0B.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Y WITH DOT BELOW
+1EF4 ; [.1F0B.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Y WITH DOT BELOW
+028F ; [.1F0F.0020.0002] # LATIN LETTER SMALL CAPITAL Y
+024F ; [.1F13.0020.0002] # LATIN SMALL LETTER Y WITH STROKE
+024E ; [.1F13.0020.0008] # LATIN CAPITAL LETTER Y WITH STROKE
+01B4 ; [.1F17.0020.0002] # LATIN SMALL LETTER Y WITH HOOK
+01B3 ; [.1F17.0020.0008] # LATIN CAPITAL LETTER Y WITH HOOK
+1EFF ; [.1F1B.0020.0002] # LATIN SMALL LETTER Y WITH LOOP
+1EFE ; [.1F1B.0020.0008] # LATIN CAPITAL LETTER Y WITH LOOP
+AB5A ; [.1F1C.0020.0002] # LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+021D ; [.1F1D.0020.0002] # LATIN SMALL LETTER YOGH
+021C ; [.1F1D.0020.0008] # LATIN CAPITAL LETTER YOGH
+007A ; [.1F21.0020.0002] # LATIN SMALL LETTER Z
+FF5A ; [.1F21.0020.0003] # FULLWIDTH LATIN SMALL LETTER Z
+1DE6 ; [.1F21.0020.0004] # COMBINING LATIN SMALL LETTER Z
+24B5 ; [*0317.0020.0004][.1F21.0020.0004][*0318.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Z
+1D433 ; [.1F21.0020.0005] # MATHEMATICAL BOLD SMALL Z
+1D467 ; [.1F21.0020.0005] # MATHEMATICAL ITALIC SMALL Z
+1D49B ; [.1F21.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Z
+1D4CF ; [.1F21.0020.0005] # MATHEMATICAL SCRIPT SMALL Z
+1D503 ; [.1F21.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Z
+1D537 ; [.1F21.0020.0005] # MATHEMATICAL FRAKTUR SMALL Z
+1D56B ; [.1F21.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Z
+1D59F ; [.1F21.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Z
+1D5D3 ; [.1F21.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Z
+1D607 ; [.1F21.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Z
+1D63B ; [.1F21.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+1D66F ; [.1F21.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+1D6A3 ; [.1F21.0020.0005] # MATHEMATICAL MONOSPACE SMALL Z
+24E9 ; [.1F21.0020.0006] # CIRCLED LATIN SMALL LETTER Z
+005A ; [.1F21.0020.0008] # LATIN CAPITAL LETTER Z
+FF3A ; [.1F21.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Z
+1F129 ; [*0317.0020.0004][.1F21.0020.000A][*0318.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Z
+2124 ; [.1F21.0020.000B] # DOUBLE-STRUCK CAPITAL Z
+2128 ; [.1F21.0020.000B] # BLACK-LETTER CAPITAL Z
+1D419 ; [.1F21.0020.000B] # MATHEMATICAL BOLD CAPITAL Z
+1D44D ; [.1F21.0020.000B] # MATHEMATICAL ITALIC CAPITAL Z
+1D481 ; [.1F21.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Z
+1D4B5 ; [.1F21.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Z
+1D4E9 ; [.1F21.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Z
+1D585 ; [.1F21.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+1D5B9 ; [.1F21.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Z
+1D5ED ; [.1F21.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+1D621 ; [.1F21.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+1D655 ; [.1F21.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+1D689 ; [.1F21.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Z
+24CF ; [.1F21.0020.000C] # CIRCLED LATIN CAPITAL LETTER Z
+1F169 ; [.1F21.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1DBB ; [.1F21.0020.0014] # MODIFIER LETTER SMALL Z
+1F149 ; [.1F21.0020.001D] # SQUARED LATIN CAPITAL LETTER Z
+1F189 ; [.1F21.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Z
+017A ; [.1F21.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Z WITH ACUTE
+0179 ; [.1F21.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Z WITH ACUTE
+1E91 ; [.1F21.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E90 ; [.1F21.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+017E ; [.1F21.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F21.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER Z WITH CARON
+017C ; [.1F21.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+017B ; [.1F21.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+1E93 ; [.1F21.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Z WITH DOT BELOW
+1E92 ; [.1F21.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E95 ; [.1F21.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER Z WITH LINE BELOW
+1E94 ; [.1F21.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER Z WITH LINE BELOW
+018D ; [.1F21.0020.0004][.1EF5.0020.0004] # LATIN SMALL LETTER TURNED DELTA
+1D22 ; [.1F25.0020.0002] # LATIN LETTER SMALL CAPITAL Z
+01B6 ; [.1F26.0020.0002] # LATIN SMALL LETTER Z WITH STROKE
+01B5 ; [.1F26.0020.0008] # LATIN CAPITAL LETTER Z WITH STROKE
+1D76 ; [.1F2A.0020.0002] # LATIN SMALL LETTER Z WITH MIDDLE TILDE
+1D8E ; [.1F2B.0020.0002] # LATIN SMALL LETTER Z WITH PALATAL HOOK
+0225 ; [.1F2C.0020.0002] # LATIN SMALL LETTER Z WITH HOOK
+0224 ; [.1F2C.0020.0008] # LATIN CAPITAL LETTER Z WITH HOOK
+0290 ; [.1F30.0020.0002] # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
+1DBC ; [.1F30.0020.0014] # MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
+0291 ; [.1F34.0020.0002] # LATIN SMALL LETTER Z WITH CURL
+1DBD ; [.1F34.0020.0014] # MODIFIER LETTER SMALL Z WITH CURL
+0240 ; [.1F38.0020.0002] # LATIN SMALL LETTER Z WITH SWASH TAIL
+2C7F ; [.1F38.0020.0008] # LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C6C ; [.1F3C.0020.0002] # LATIN SMALL LETTER Z WITH DESCENDER
+2C6B ; [.1F3C.0020.0008] # LATIN CAPITAL LETTER Z WITH DESCENDER
+A763 ; [.1F3D.0020.0002] # LATIN SMALL LETTER VISIGOTHIC Z
+A762 ; [.1F3D.0020.0008] # LATIN CAPITAL LETTER VISIGOTHIC Z
+0292 ; [.1F3E.0020.0002] # LATIN SMALL LETTER EZH
+01B7 ; [.1F3E.0020.0008] # LATIN CAPITAL LETTER EZH
+1DBE ; [.1F3E.0020.0014] # MODIFIER LETTER SMALL EZH
+01EF ; [.1F3E.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.1F3E.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
+1D23 ; [.1F42.0020.0002] # LATIN LETTER SMALL CAPITAL EZH
+01B9 ; [.1F43.0020.0002] # LATIN SMALL LETTER EZH REVERSED
+01B8 ; [.1F43.0020.0008] # LATIN CAPITAL LETTER EZH REVERSED
+1D9A ; [.1F47.0020.0002] # LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+01BA ; [.1F48.0020.0002] # LATIN SMALL LETTER EZH WITH TAIL
+0293 ; [.1F4C.0020.0002] # LATIN SMALL LETTER EZH WITH CURL
+00FE ; [.1F50.0020.0002] # LATIN SMALL LETTER THORN
+00DE ; [.1F50.0020.0008] # LATIN CAPITAL LETTER THORN
+A765 ; [.1F54.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE
+A764 ; [.1F54.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE
+A767 ; [.1F55.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
+A766 ; [.1F55.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+01BF ; [.1F56.0020.0002] # LATIN LETTER WYNN
+01F7 ; [.1F56.0020.0008] # LATIN CAPITAL LETTER WYNN
+A769 ; [.1F5A.0020.0002] # LATIN SMALL LETTER VEND
+A768 ; [.1F5A.0020.0008] # LATIN CAPITAL LETTER VEND
+AB60 ; [.1F5B.0020.0002] # LATIN SMALL LETTER SAKHA YAT
+AB61 ; [.1F5C.0020.0002] # LATIN SMALL LETTER IOTIFIED E
+AB63 ; [.1F5D.0020.0002] # LATIN SMALL LETTER UO
+A76B ; [.1F5E.0020.0002] # LATIN SMALL LETTER ET
+A76A ; [.1F5E.0020.0008] # LATIN CAPITAL LETTER ET
+A76D ; [.1F5F.0020.0002] # LATIN SMALL LETTER IS
+A76C ; [.1F5F.0020.0008] # LATIN CAPITAL LETTER IS
+A76F ; [.1F60.0020.0002] # LATIN SMALL LETTER CON
+1DD2 ; [.1F60.0020.0004] # COMBINING US ABOVE
+A76E ; [.1F60.0020.0008] # LATIN CAPITAL LETTER CON
+A770 ; [.1F60.0020.0014] # MODIFIER LETTER US
+A778 ; [.1F61.0020.0002] # LATIN SMALL LETTER UM
+01BB ; [.1F62.0020.0002] # LATIN LETTER TWO WITH STROKE
+A72B ; [.1F66.0020.0002] # LATIN SMALL LETTER TRESILLO
+A72A ; [.1F66.0020.0008] # LATIN CAPITAL LETTER TRESILLO
+A72D ; [.1F67.0020.0002] # LATIN SMALL LETTER CUATRILLO
+A72C ; [.1F67.0020.0008] # LATIN CAPITAL LETTER CUATRILLO
+A72F ; [.1F68.0020.0002] # LATIN SMALL LETTER CUATRILLO WITH COMMA
+A72E ; [.1F68.0020.0008] # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+01A8 ; [.1F69.0020.0002] # LATIN SMALL LETTER TONE TWO
+01A7 ; [.1F69.0020.0008] # LATIN CAPITAL LETTER TONE TWO
+01BD ; [.1F6D.0020.0002] # LATIN SMALL LETTER TONE FIVE
+01BC ; [.1F6D.0020.0008] # LATIN CAPITAL LETTER TONE FIVE
+0185 ; [.1F71.0020.0002] # LATIN SMALL LETTER TONE SIX
+0184 ; [.1F71.0020.0008] # LATIN CAPITAL LETTER TONE SIX
+0294 ; [.1F75.0020.0002] # LATIN LETTER GLOTTAL STOP
+0242 ; [.1F79.0020.0002] # LATIN SMALL LETTER GLOTTAL STOP
+0241 ; [.1F79.0020.0008] # LATIN CAPITAL LETTER GLOTTAL STOP
+02C0 ; [.1F7D.0020.0002] # MODIFIER LETTER GLOTTAL STOP
+02BC ; [.1F7E.0020.0002] # MODIFIER LETTER APOSTROPHE
+0149 ; [.1F7E.0020.0004][.1DB9.0020.0004] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+02EE ; [.1F7F.0020.0002] # MODIFIER LETTER DOUBLE APOSTROPHE
+02BE ; [.1F80.0020.0002] # MODIFIER LETTER RIGHT HALF RING
+A723 ; [.1F81.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
+A722 ; [.1F81.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+A78C ; [.1F82.0020.0002] # LATIN SMALL LETTER SALTILLO
+A78B ; [.1F82.0020.0008] # LATIN CAPITAL LETTER SALTILLO
+A78F ; [.1F83.0020.0002] # LATIN LETTER SINOLOGICAL DOT
+0295 ; [.1F84.0020.0002] # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
+02E4 ; [.1F84.0020.0014] # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02BF ; [.1F88.0020.0002] # MODIFIER LETTER LEFT HALF RING
+02C1 ; [.1F89.0020.0002] # MODIFIER LETTER REVERSED GLOTTAL STOP
+1D24 ; [.1F8A.0020.0002] # LATIN LETTER VOICED LARYNGEAL SPIRANT
+1D25 ; [.1F8B.0020.0002] # LATIN LETTER AIN
+1D5C ; [.1F8B.0020.0014] # MODIFIER LETTER SMALL AIN
+A725 ; [.1F8C.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL AIN
+A724 ; [.1F8C.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+02A1 ; [.1F8D.0020.0002] # LATIN LETTER GLOTTAL STOP WITH STROKE
+02A2 ; [.1F91.0020.0002] # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
+0296 ; [.1F95.0020.0002] # LATIN LETTER INVERTED GLOTTAL STOP
+01C0 ; [.1F99.0020.0002] # LATIN LETTER DENTAL CLICK
+01C1 ; [.1F9D.0020.0002] # LATIN LETTER LATERAL CLICK
+01C2 ; [.1FA1.0020.0002] # LATIN LETTER ALVEOLAR CLICK
+01C3 ; [.1FA5.0020.0002] # LATIN LETTER RETROFLEX CLICK
+0297 ; [.1FA9.0020.0002] # LATIN LETTER STRETCHED C
+0298 ; [.1FAD.0020.0002] # LATIN LETTER BILABIAL CLICK
+02AC ; [.1FB1.0020.0002] # LATIN LETTER BILABIAL PERCUSSIVE
+02AD ; [.1FB5.0020.0002] # LATIN LETTER BIDENTAL PERCUSSIVE
+03B1 ; [.1FB9.0020.0002] # GREEK SMALL LETTER ALPHA
+1D6C2 ; [.1FB9.0020.0005] # MATHEMATICAL BOLD SMALL ALPHA
+1D6FC ; [.1FB9.0020.0005] # MATHEMATICAL ITALIC SMALL ALPHA
+1D736 ; [.1FB9.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ALPHA
+1D770 ; [.1FB9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
+1D7AA ; [.1FB9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
+0391 ; [.1FB9.0020.0008] # GREEK CAPITAL LETTER ALPHA
+1D6A8 ; [.1FB9.0020.000B] # MATHEMATICAL BOLD CAPITAL ALPHA
+1D6E2 ; [.1FB9.0020.000B] # MATHEMATICAL ITALIC CAPITAL ALPHA
+1D71C ; [.1FB9.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
+1D756 ; [.1FB9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
+1D790 ; [.1FB9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+1F00 ; [.1FB9.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ALPHA WITH PSILI
+1F08 ; [.1FB9.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI
+1F04 ; [.1FB9.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+1F0C ; [.1FB9.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+1F84 ; [.1FB9.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F8C ; [.1FB9.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F02 ; [.1FB9.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+1F0A ; [.1FB9.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+1F82 ; [.1FB9.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F8A ; [.1FB9.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F06 ; [.1FB9.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0E ; [.1FB9.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F86 ; [.1FB9.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F8E ; [.1FB9.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F80 ; [.1FB9.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F88 ; [.1FB9.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F01 ; [.1FB9.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ALPHA WITH DASIA
+1F09 ; [.1FB9.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA
+1F05 ; [.1FB9.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+1F0D ; [.1FB9.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+1F85 ; [.1FB9.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F8D ; [.1FB9.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F03 ; [.1FB9.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+1F0B ; [.1FB9.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+1F83 ; [.1FB9.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F8B ; [.1FB9.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F07 ; [.1FB9.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F0F ; [.1FB9.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F87 ; [.1FB9.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F8F ; [.1FB9.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F81 ; [.1FB9.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F89 ; [.1FB9.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+03AC ; [.1FB9.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH TONOS
+1F71 ; [.1FB9.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH OXIA
+0386 ; [.1FB9.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH TONOS
+1FBB ; [.1FB9.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FB4 ; [.1FB9.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1F70 ; [.1FB9.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH VARIA
+1FBA ; [.1FB9.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH VARIA
+1FB2 ; [.1FB9.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB0 ; [.1FB9.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER ALPHA WITH VRACHY
+1FB8 ; [.1FB9.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER ALPHA WITH VRACHY
+1FB6 ; [.1FB9.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7 ; [.1FB9.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FB1 ; [.1FB9.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER ALPHA WITH MACRON
+1FB9 ; [.1FB9.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER ALPHA WITH MACRON
+1FB3 ; [.1FB9.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+1FBC ; [.1FB9.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+03B2 ; [.1FBA.0020.0002] # GREEK SMALL LETTER BETA
+03D0 ; [.1FBA.0020.0004] # GREEK BETA SYMBOL
+1D6C3 ; [.1FBA.0020.0005] # MATHEMATICAL BOLD SMALL BETA
+1D6FD ; [.1FBA.0020.0005] # MATHEMATICAL ITALIC SMALL BETA
+1D737 ; [.1FBA.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL BETA
+1D771 ; [.1FBA.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL BETA
+1D7AB ; [.1FBA.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
+0392 ; [.1FBA.0020.0008] # GREEK CAPITAL LETTER BETA
+1D6A9 ; [.1FBA.0020.000B] # MATHEMATICAL BOLD CAPITAL BETA
+1D6E3 ; [.1FBA.0020.000B] # MATHEMATICAL ITALIC CAPITAL BETA
+1D71D ; [.1FBA.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL BETA
+1D757 ; [.1FBA.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
+1D791 ; [.1FBA.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
+1D5D ; [.1FBA.0020.0014] # MODIFIER LETTER SMALL BETA
+1D66 ; [.1FBA.0020.0015] # GREEK SUBSCRIPT SMALL LETTER BETA
+03B3 ; [.1FBB.0020.0002] # GREEK SMALL LETTER GAMMA
+213D ; [.1FBB.0020.0005] # DOUBLE-STRUCK SMALL GAMMA
+1D6C4 ; [.1FBB.0020.0005] # MATHEMATICAL BOLD SMALL GAMMA
+1D6FE ; [.1FBB.0020.0005] # MATHEMATICAL ITALIC SMALL GAMMA
+1D738 ; [.1FBB.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL GAMMA
+1D772 ; [.1FBB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
+1D7AC ; [.1FBB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
+0393 ; [.1FBB.0020.0008] # GREEK CAPITAL LETTER GAMMA
+213E ; [.1FBB.0020.000B] # DOUBLE-STRUCK CAPITAL GAMMA
+1D6AA ; [.1FBB.0020.000B] # MATHEMATICAL BOLD CAPITAL GAMMA
+1D6E4 ; [.1FBB.0020.000B] # MATHEMATICAL ITALIC CAPITAL GAMMA
+1D71E ; [.1FBB.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
+1D758 ; [.1FBB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
+1D792 ; [.1FBB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+1D5E ; [.1FBB.0020.0014] # MODIFIER LETTER SMALL GREEK GAMMA
+1D67 ; [.1FBB.0020.0015] # GREEK SUBSCRIPT SMALL LETTER GAMMA
+1D26 ; [.1FBC.0020.0002] # GREEK LETTER SMALL CAPITAL GAMMA
+03B4 ; [.1FBD.0020.0002] # GREEK SMALL LETTER DELTA
+1D6C5 ; [.1FBD.0020.0005] # MATHEMATICAL BOLD SMALL DELTA
+1D6FF ; [.1FBD.0020.0005] # MATHEMATICAL ITALIC SMALL DELTA
+1D739 ; [.1FBD.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL DELTA
+1D773 ; [.1FBD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
+1D7AD ; [.1FBD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
+0394 ; [.1FBD.0020.0008] # GREEK CAPITAL LETTER DELTA
+1D6AB ; [.1FBD.0020.000B] # MATHEMATICAL BOLD CAPITAL DELTA
+1D6E5 ; [.1FBD.0020.000B] # MATHEMATICAL ITALIC CAPITAL DELTA
+1D71F ; [.1FBD.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL DELTA
+1D759 ; [.1FBD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
+1D793 ; [.1FBD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
+1D5F ; [.1FBD.0020.0014] # MODIFIER LETTER SMALL DELTA
+03B5 ; [.1FBE.0020.0002] # GREEK SMALL LETTER EPSILON
+03F5 ; [.1FBE.0020.0004] # GREEK LUNATE EPSILON SYMBOL
+1D6C6 ; [.1FBE.0020.0005] # MATHEMATICAL BOLD SMALL EPSILON
+1D6DC ; [.1FBE.0020.0005] # MATHEMATICAL BOLD EPSILON SYMBOL
+1D700 ; [.1FBE.0020.0005] # MATHEMATICAL ITALIC SMALL EPSILON
+1D716 ; [.1FBE.0020.0005] # MATHEMATICAL ITALIC EPSILON SYMBOL
+1D73A ; [.1FBE.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL EPSILON
+1D750 ; [.1FBE.0020.0005] # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
+1D774 ; [.1FBE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
+1D78A ; [.1FBE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
+1D7AE ; [.1FBE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
+1D7C4 ; [.1FBE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
+0395 ; [.1FBE.0020.0008] # GREEK CAPITAL LETTER EPSILON
+1D6AC ; [.1FBE.0020.000B] # MATHEMATICAL BOLD CAPITAL EPSILON
+1D6E6 ; [.1FBE.0020.000B] # MATHEMATICAL ITALIC CAPITAL EPSILON
+1D720 ; [.1FBE.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
+1D75A ; [.1FBE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
+1D794 ; [.1FBE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+1F10 ; [.1FBE.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER EPSILON WITH PSILI
+1F18 ; [.1FBE.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI
+1F14 ; [.1FBE.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+1F1C ; [.1FBE.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+1F12 ; [.1FBE.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+1F1A ; [.1FBE.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+1F11 ; [.1FBE.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER EPSILON WITH DASIA
+1F19 ; [.1FBE.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA
+1F15 ; [.1FBE.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F1D ; [.1FBE.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F13 ; [.1FBE.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+1F1B ; [.1FBE.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+03AD ; [.1FBE.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH TONOS
+1F73 ; [.1FBE.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH OXIA
+0388 ; [.1FBE.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH TONOS
+1FC9 ; [.1FBE.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH OXIA
+1F72 ; [.1FBE.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH VARIA
+1FC8 ; [.1FBE.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH VARIA
+03DD ; [.1FBF.0020.0002] # GREEK SMALL LETTER DIGAMMA
+1D7CB ; [.1FBF.0020.0005] # MATHEMATICAL BOLD SMALL DIGAMMA
+03DC ; [.1FBF.0020.0008] # GREEK LETTER DIGAMMA
+1D7CA ; [.1FBF.0020.000B] # MATHEMATICAL BOLD CAPITAL DIGAMMA
+0377 ; [.1FC0.0020.0002] # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+0376 ; [.1FC0.0020.0008] # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+03DB ; [.1FC1.0020.0002] # GREEK SMALL LETTER STIGMA
+03DA ; [.1FC1.0020.0008] # GREEK LETTER STIGMA
+03B6 ; [.1FC2.0020.0002] # GREEK SMALL LETTER ZETA
+1D6C7 ; [.1FC2.0020.0005] # MATHEMATICAL BOLD SMALL ZETA
+1D701 ; [.1FC2.0020.0005] # MATHEMATICAL ITALIC SMALL ZETA
+1D73B ; [.1FC2.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ZETA
+1D775 ; [.1FC2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
+1D7AF ; [.1FC2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
+0396 ; [.1FC2.0020.0008] # GREEK CAPITAL LETTER ZETA
+1D6AD ; [.1FC2.0020.000B] # MATHEMATICAL BOLD CAPITAL ZETA
+1D6E7 ; [.1FC2.0020.000B] # MATHEMATICAL ITALIC CAPITAL ZETA
+1D721 ; [.1FC2.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ZETA
+1D75B ; [.1FC2.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
+1D795 ; [.1FC2.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
+0371 ; [.1FC3.0020.0002] # GREEK SMALL LETTER HETA
+0370 ; [.1FC3.0020.0008] # GREEK CAPITAL LETTER HETA
+03B7 ; [.1FC4.0020.0002] # GREEK SMALL LETTER ETA
+1D6C8 ; [.1FC4.0020.0005] # MATHEMATICAL BOLD SMALL ETA
+1D702 ; [.1FC4.0020.0005] # MATHEMATICAL ITALIC SMALL ETA
+1D73C ; [.1FC4.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ETA
+1D776 ; [.1FC4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ETA
+1D7B0 ; [.1FC4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
+0397 ; [.1FC4.0020.0008] # GREEK CAPITAL LETTER ETA
+1D6AE ; [.1FC4.0020.000B] # MATHEMATICAL BOLD CAPITAL ETA
+1D6E8 ; [.1FC4.0020.000B] # MATHEMATICAL ITALIC CAPITAL ETA
+1D722 ; [.1FC4.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ETA
+1D75C ; [.1FC4.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
+1D796 ; [.1FC4.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
+1F20 ; [.1FC4.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ETA WITH PSILI
+1F28 ; [.1FC4.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ETA WITH PSILI
+1F24 ; [.1FC4.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+1F2C ; [.1FC4.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+1F94 ; [.1FC4.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F9C ; [.1FC4.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F22 ; [.1FC4.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+1F2A ; [.1FC4.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+1F92 ; [.1FC4.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F9A ; [.1FC4.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F26 ; [.1FC4.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+1F2E ; [.1FC4.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+1F96 ; [.1FC4.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F9E ; [.1FC4.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F90 ; [.1FC4.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F98 ; [.1FC4.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F21 ; [.1FC4.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ETA WITH DASIA
+1F29 ; [.1FC4.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ETA WITH DASIA
+1F25 ; [.1FC4.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+1F2D ; [.1FC4.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+1F95 ; [.1FC4.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F9D ; [.1FC4.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F23 ; [.1FC4.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+1F2B ; [.1FC4.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+1F93 ; [.1FC4.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F9B ; [.1FC4.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F27 ; [.1FC4.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F2F ; [.1FC4.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F97 ; [.1FC4.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F9F ; [.1FC4.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F91 ; [.1FC4.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F99 ; [.1FC4.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+03AE ; [.1FC4.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH TONOS
+1F75 ; [.1FC4.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH OXIA
+0389 ; [.1FC4.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH TONOS
+1FCB ; [.1FC4.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH OXIA
+1FC4 ; [.1FC4.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1F74 ; [.1FC4.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH VARIA
+1FCA ; [.1FC4.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH VARIA
+1FC2 ; [.1FC4.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC6 ; [.1FC4.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7 ; [.1FC4.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC3 ; [.1FC4.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+1FCC ; [.1FC4.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+03B8 ; [.1FC5.0020.0002] # GREEK SMALL LETTER THETA
+03D1 ; [.1FC5.0020.0004] # GREEK THETA SYMBOL
+1D6C9 ; [.1FC5.0020.0005] # MATHEMATICAL BOLD SMALL THETA
+1D6DD ; [.1FC5.0020.0005] # MATHEMATICAL BOLD THETA SYMBOL
+1D703 ; [.1FC5.0020.0005] # MATHEMATICAL ITALIC SMALL THETA
+1D717 ; [.1FC5.0020.0005] # MATHEMATICAL ITALIC THETA SYMBOL
+1D73D ; [.1FC5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL THETA
+1D751 ; [.1FC5.0020.0005] # MATHEMATICAL BOLD ITALIC THETA SYMBOL
+1D777 ; [.1FC5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL THETA
+1D78B ; [.1FC5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
+1D7B1 ; [.1FC5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
+1D7C5 ; [.1FC5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
+0398 ; [.1FC5.0020.0008] # GREEK CAPITAL LETTER THETA
+03F4 ; [.1FC5.0020.000A] # GREEK CAPITAL THETA SYMBOL
+1D6AF ; [.1FC5.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA
+1D6B9 ; [.1FC5.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA SYMBOL
+1D6E9 ; [.1FC5.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA
+1D6F3 ; [.1FC5.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
+1D723 ; [.1FC5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA
+1D72D ; [.1FC5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
+1D75D ; [.1FC5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
+1D767 ; [.1FC5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
+1D797 ; [.1FC5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
+1D7A1 ; [.1FC5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+1DBF ; [.1FC5.0020.0014] # MODIFIER LETTER SMALL THETA
+03B9 ; [.1FC6.0020.0002] # GREEK SMALL LETTER IOTA
+1FBE ; [.1FC6.0020.0002] # GREEK PROSGEGRAMMENI
+037A ; [.1FC6.0020.0004] # GREEK YPOGEGRAMMENI
+1D6CA ; [.1FC6.0020.0005] # MATHEMATICAL BOLD SMALL IOTA
+1D704 ; [.1FC6.0020.0005] # MATHEMATICAL ITALIC SMALL IOTA
+1D73E ; [.1FC6.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL IOTA
+1D778 ; [.1FC6.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
+1D7B2 ; [.1FC6.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
+0399 ; [.1FC6.0020.0008] # GREEK CAPITAL LETTER IOTA
+1D6B0 ; [.1FC6.0020.000B] # MATHEMATICAL BOLD CAPITAL IOTA
+1D6EA ; [.1FC6.0020.000B] # MATHEMATICAL ITALIC CAPITAL IOTA
+1D724 ; [.1FC6.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL IOTA
+1D75E ; [.1FC6.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
+1D798 ; [.1FC6.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
+1F30 ; [.1FC6.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER IOTA WITH PSILI
+1F38 ; [.1FC6.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI
+1F34 ; [.1FC6.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+1F3C ; [.1FC6.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+1F32 ; [.1FC6.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+1F3A ; [.1FC6.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+1F36 ; [.1FC6.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3E ; [.1FC6.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F31 ; [.1FC6.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER IOTA WITH DASIA
+1F39 ; [.1FC6.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA
+1F35 ; [.1FC6.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+1F3D ; [.1FC6.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+1F33 ; [.1FC6.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+1F3B ; [.1FC6.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+1F37 ; [.1FC6.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F3F ; [.1FC6.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+03AF ; [.1FC6.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH TONOS
+1F77 ; [.1FC6.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH OXIA
+038A ; [.1FC6.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH TONOS
+1FDB ; [.1FC6.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH OXIA
+1F76 ; [.1FC6.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH VARIA
+1FDA ; [.1FC6.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH VARIA
+1FD0 ; [.1FC6.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER IOTA WITH VRACHY
+1FD8 ; [.1FC6.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER IOTA WITH VRACHY
+1FD6 ; [.1FC6.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PERISPOMENI
+03CA ; [.1FC6.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+03AA ; [.1FC6.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+0390 ; [.1FC6.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+1FD3 ; [.1FC6.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD2 ; [.1FC6.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD7 ; [.1FC6.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD1 ; [.1FC6.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER IOTA WITH MACRON
+1FD9 ; [.1FC6.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER IOTA WITH MACRON
+03F3 ; [.1FC7.0020.0002] # GREEK LETTER YOT
+037F ; [.1FC7.0020.0008] # GREEK CAPITAL LETTER YOT
+03BA ; [.1FC8.0020.0002] # GREEK SMALL LETTER KAPPA
+03F0 ; [.1FC8.0020.0004] # GREEK KAPPA SYMBOL
+1D6CB ; [.1FC8.0020.0005] # MATHEMATICAL BOLD SMALL KAPPA
+1D6DE ; [.1FC8.0020.0005] # MATHEMATICAL BOLD KAPPA SYMBOL
+1D705 ; [.1FC8.0020.0005] # MATHEMATICAL ITALIC SMALL KAPPA
+1D718 ; [.1FC8.0020.0005] # MATHEMATICAL ITALIC KAPPA SYMBOL
+1D73F ; [.1FC8.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL KAPPA
+1D752 ; [.1FC8.0020.0005] # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
+1D779 ; [.1FC8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
+1D78C ; [.1FC8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
+1D7B3 ; [.1FC8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
+1D7C6 ; [.1FC8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
+039A ; [.1FC8.0020.0008] # GREEK CAPITAL LETTER KAPPA
+1D6B1 ; [.1FC8.0020.000B] # MATHEMATICAL BOLD CAPITAL KAPPA
+1D6EB ; [.1FC8.0020.000B] # MATHEMATICAL ITALIC CAPITAL KAPPA
+1D725 ; [.1FC8.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
+1D75F ; [.1FC8.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
+1D799 ; [.1FC8.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+03D7 ; [.1FC8.0020.0004][.1FB9.0020.0004][.1FC6.0020.0004] # GREEK KAI SYMBOL
+03CF ; [.1FC8.0020.000A][.1FB9.0020.0004][.1FC6.0020.0004] # GREEK CAPITAL KAI SYMBOL
+03BB ; [.1FC9.0020.0002] # GREEK SMALL LETTER LAMDA
+1D6CC ; [.1FC9.0020.0005] # MATHEMATICAL BOLD SMALL LAMDA
+1D706 ; [.1FC9.0020.0005] # MATHEMATICAL ITALIC SMALL LAMDA
+1D740 ; [.1FC9.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL LAMDA
+1D77A ; [.1FC9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
+1D7B4 ; [.1FC9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
+039B ; [.1FC9.0020.0008] # GREEK CAPITAL LETTER LAMDA
+1D6B2 ; [.1FC9.0020.000B] # MATHEMATICAL BOLD CAPITAL LAMDA
+1D6EC ; [.1FC9.0020.000B] # MATHEMATICAL ITALIC CAPITAL LAMDA
+1D726 ; [.1FC9.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
+1D760 ; [.1FC9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
+1D79A ; [.1FC9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+1D27 ; [.1FCA.0020.0002] # GREEK LETTER SMALL CAPITAL LAMDA
+03BC ; [.1FCB.0020.0002] # GREEK SMALL LETTER MU
+00B5 ; [.1FCB.0020.0004] # MICRO SIGN
+1D6CD ; [.1FCB.0020.0005] # MATHEMATICAL BOLD SMALL MU
+1D707 ; [.1FCB.0020.0005] # MATHEMATICAL ITALIC SMALL MU
+1D741 ; [.1FCB.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL MU
+1D77B ; [.1FCB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL MU
+1D7B5 ; [.1FCB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
+039C ; [.1FCB.0020.0008] # GREEK CAPITAL LETTER MU
+1D6B3 ; [.1FCB.0020.000B] # MATHEMATICAL BOLD CAPITAL MU
+1D6ED ; [.1FCB.0020.000B] # MATHEMATICAL ITALIC CAPITAL MU
+1D727 ; [.1FCB.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL MU
+1D761 ; [.1FCB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
+1D79B ; [.1FCB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
+3382 ; [.1FCB.0020.001C][.1C47.0020.001D] # SQUARE MU A
+338C ; [.1FCB.0020.001C][.1CE5.0020.001D] # SQUARE MU F
+338D ; [.1FCB.0020.001C][.1CF4.0020.001C] # SQUARE MU G
+3395 ; [.1FCB.0020.001C][.1D77.0020.001C] # SQUARE MU L
+339B ; [.1FCB.0020.001C][.1DAA.0020.001C] # SQUARE MU M
+33B2 ; [.1FCB.0020.001C][.1E71.0020.001C] # SQUARE MU S
+33B6 ; [.1FCB.0020.001C][.1EE3.0020.001D] # SQUARE MU V
+33BC ; [.1FCB.0020.001C][.1EF5.0020.001D] # SQUARE MU W
+03BD ; [.1FCC.0020.0002] # GREEK SMALL LETTER NU
+1D6CE ; [.1FCC.0020.0005] # MATHEMATICAL BOLD SMALL NU
+1D708 ; [.1FCC.0020.0005] # MATHEMATICAL ITALIC SMALL NU
+1D742 ; [.1FCC.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL NU
+1D77C ; [.1FCC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL NU
+1D7B6 ; [.1FCC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
+039D ; [.1FCC.0020.0008] # GREEK CAPITAL LETTER NU
+1D6B4 ; [.1FCC.0020.000B] # MATHEMATICAL BOLD CAPITAL NU
+1D6EE ; [.1FCC.0020.000B] # MATHEMATICAL ITALIC CAPITAL NU
+1D728 ; [.1FCC.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL NU
+1D762 ; [.1FCC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
+1D79C ; [.1FCC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
+03BE ; [.1FCD.0020.0002] # GREEK SMALL LETTER XI
+1D6CF ; [.1FCD.0020.0005] # MATHEMATICAL BOLD SMALL XI
+1D709 ; [.1FCD.0020.0005] # MATHEMATICAL ITALIC SMALL XI
+1D743 ; [.1FCD.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL XI
+1D77D ; [.1FCD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL XI
+1D7B7 ; [.1FCD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
+039E ; [.1FCD.0020.0008] # GREEK CAPITAL LETTER XI
+1D6B5 ; [.1FCD.0020.000B] # MATHEMATICAL BOLD CAPITAL XI
+1D6EF ; [.1FCD.0020.000B] # MATHEMATICAL ITALIC CAPITAL XI
+1D729 ; [.1FCD.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL XI
+1D763 ; [.1FCD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
+1D79D ; [.1FCD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
+03BF ; [.1FCE.0020.0002] # GREEK SMALL LETTER OMICRON
+1D6D0 ; [.1FCE.0020.0005] # MATHEMATICAL BOLD SMALL OMICRON
+1D70A ; [.1FCE.0020.0005] # MATHEMATICAL ITALIC SMALL OMICRON
+1D744 ; [.1FCE.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMICRON
+1D77E ; [.1FCE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
+1D7B8 ; [.1FCE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
+039F ; [.1FCE.0020.0008] # GREEK CAPITAL LETTER OMICRON
+1D6B6 ; [.1FCE.0020.000B] # MATHEMATICAL BOLD CAPITAL OMICRON
+1D6F0 ; [.1FCE.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMICRON
+1D72A ; [.1FCE.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
+1D764 ; [.1FCE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
+1D79E ; [.1FCE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+1F40 ; [.1FCE.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMICRON WITH PSILI
+1F48 ; [.1FCE.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI
+1F44 ; [.1FCE.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+1F4C ; [.1FCE.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+1F42 ; [.1FCE.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+1F4A ; [.1FCE.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+1F41 ; [.1FCE.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMICRON WITH DASIA
+1F49 ; [.1FCE.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA
+1F45 ; [.1FCE.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F4D ; [.1FCE.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F43 ; [.1FCE.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+1F4B ; [.1FCE.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+03CC ; [.1FCE.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH TONOS
+1F79 ; [.1FCE.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH OXIA
+038C ; [.1FCE.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH TONOS
+1FF9 ; [.1FCE.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH OXIA
+1F78 ; [.1FCE.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH VARIA
+1FF8 ; [.1FCE.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH VARIA
+03C0 ; [.1FCF.0020.0002] # GREEK SMALL LETTER PI
+03D6 ; [.1FCF.0020.0004] # GREEK PI SYMBOL
+213C ; [.1FCF.0020.0005] # DOUBLE-STRUCK SMALL PI
+1D6D1 ; [.1FCF.0020.0005] # MATHEMATICAL BOLD SMALL PI
+1D6E1 ; [.1FCF.0020.0005] # MATHEMATICAL BOLD PI SYMBOL
+1D70B ; [.1FCF.0020.0005] # MATHEMATICAL ITALIC SMALL PI
+1D71B ; [.1FCF.0020.0005] # MATHEMATICAL ITALIC PI SYMBOL
+1D745 ; [.1FCF.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PI
+1D755 ; [.1FCF.0020.0005] # MATHEMATICAL BOLD ITALIC PI SYMBOL
+1D77F ; [.1FCF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PI
+1D78F ; [.1FCF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+1D7B9 ; [.1FCF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
+1D7C9 ; [.1FCF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+03A0 ; [.1FCF.0020.0008] # GREEK CAPITAL LETTER PI
+213F ; [.1FCF.0020.000B] # DOUBLE-STRUCK CAPITAL PI
+1D6B7 ; [.1FCF.0020.000B] # MATHEMATICAL BOLD CAPITAL PI
+1D6F1 ; [.1FCF.0020.000B] # MATHEMATICAL ITALIC CAPITAL PI
+1D72B ; [.1FCF.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PI
+1D765 ; [.1FCF.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
+1D79F ; [.1FCF.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
+1D28 ; [.1FD0.0020.0002] # GREEK LETTER SMALL CAPITAL PI
+03FB ; [.1FD1.0020.0002] # GREEK SMALL LETTER SAN
+03FA ; [.1FD1.0020.0008] # GREEK CAPITAL LETTER SAN
+03DF ; [.1FD2.0020.0002] # GREEK SMALL LETTER KOPPA
+03DE ; [.1FD2.0020.0008] # GREEK LETTER KOPPA
+03D9 ; [.1FD3.0020.0002] # GREEK SMALL LETTER ARCHAIC KOPPA
+03D8 ; [.1FD3.0020.0008] # GREEK LETTER ARCHAIC KOPPA
+03C1 ; [.1FD4.0020.0002] # GREEK SMALL LETTER RHO
+03F1 ; [.1FD4.0020.0004] # GREEK RHO SYMBOL
+1D6D2 ; [.1FD4.0020.0005] # MATHEMATICAL BOLD SMALL RHO
+1D6E0 ; [.1FD4.0020.0005] # MATHEMATICAL BOLD RHO SYMBOL
+1D70C ; [.1FD4.0020.0005] # MATHEMATICAL ITALIC SMALL RHO
+1D71A ; [.1FD4.0020.0005] # MATHEMATICAL ITALIC RHO SYMBOL
+1D746 ; [.1FD4.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL RHO
+1D754 ; [.1FD4.0020.0005] # MATHEMATICAL BOLD ITALIC RHO SYMBOL
+1D780 ; [.1FD4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL RHO
+1D78E ; [.1FD4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
+1D7BA ; [.1FD4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
+1D7C8 ; [.1FD4.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
+03A1 ; [.1FD4.0020.0008] # GREEK CAPITAL LETTER RHO
+1D6B8 ; [.1FD4.0020.000B] # MATHEMATICAL BOLD CAPITAL RHO
+1D6F2 ; [.1FD4.0020.000B] # MATHEMATICAL ITALIC CAPITAL RHO
+1D72C ; [.1FD4.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL RHO
+1D766 ; [.1FD4.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
+1D7A0 ; [.1FD4.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
+1D68 ; [.1FD4.0020.0015] # GREEK SUBSCRIPT SMALL LETTER RHO
+1FE4 ; [.1FD4.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER RHO WITH PSILI
+1FE5 ; [.1FD4.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER RHO WITH DASIA
+1FEC ; [.1FD4.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER RHO WITH DASIA
+1D29 ; [.1FD5.0020.0002] # GREEK LETTER SMALL CAPITAL RHO
+03FC ; [.1FD6.0020.0002] # GREEK RHO WITH STROKE SYMBOL
+03C3 ; [.1FD7.0020.0002] # GREEK SMALL LETTER SIGMA
+03F2 ; [.1FD7.0020.0004] # GREEK LUNATE SIGMA SYMBOL
+1D6D3 ; [.1FD7.0020.0005] # MATHEMATICAL BOLD SMALL FINAL SIGMA
+1D6D4 ; [.1FD7.0020.0005] # MATHEMATICAL BOLD SMALL SIGMA
+1D70D ; [.1FD7.0020.0005] # MATHEMATICAL ITALIC SMALL FINAL SIGMA
+1D70E ; [.1FD7.0020.0005] # MATHEMATICAL ITALIC SMALL SIGMA
+1D747 ; [.1FD7.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
+1D748 ; [.1FD7.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL SIGMA
+1D781 ; [.1FD7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
+1D782 ; [.1FD7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
+1D7BB ; [.1FD7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
+1D7BC ; [.1FD7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
+03A3 ; [.1FD7.0020.0008] # GREEK CAPITAL LETTER SIGMA
+03F9 ; [.1FD7.0020.000A] # GREEK CAPITAL LUNATE SIGMA SYMBOL
+1D6BA ; [.1FD7.0020.000B] # MATHEMATICAL BOLD CAPITAL SIGMA
+1D6F4 ; [.1FD7.0020.000B] # MATHEMATICAL ITALIC CAPITAL SIGMA
+1D72E ; [.1FD7.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
+1D768 ; [.1FD7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
+1D7A2 ; [.1FD7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+03C2 ; [.1FD7.0020.0019] # GREEK SMALL LETTER FINAL SIGMA
+037C ; [.1FD8.0020.0002] # GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
+03FE ; [.1FD8.0020.0008] # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+037B ; [.1FD9.0020.0002] # GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
+03FD ; [.1FD9.0020.0008] # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+037D ; [.1FDA.0020.0002] # GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+03FF ; [.1FDA.0020.0008] # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+03C4 ; [.1FDB.0020.0002] # GREEK SMALL LETTER TAU
+1D6D5 ; [.1FDB.0020.0005] # MATHEMATICAL BOLD SMALL TAU
+1D70F ; [.1FDB.0020.0005] # MATHEMATICAL ITALIC SMALL TAU
+1D749 ; [.1FDB.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL TAU
+1D783 ; [.1FDB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL TAU
+1D7BD ; [.1FDB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
+03A4 ; [.1FDB.0020.0008] # GREEK CAPITAL LETTER TAU
+1D6BB ; [.1FDB.0020.000B] # MATHEMATICAL BOLD CAPITAL TAU
+1D6F5 ; [.1FDB.0020.000B] # MATHEMATICAL ITALIC CAPITAL TAU
+1D72F ; [.1FDB.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL TAU
+1D769 ; [.1FDB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
+1D7A3 ; [.1FDB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
+03C5 ; [.1FDC.0020.0002] # GREEK SMALL LETTER UPSILON
+1D6D6 ; [.1FDC.0020.0005] # MATHEMATICAL BOLD SMALL UPSILON
+1D710 ; [.1FDC.0020.0005] # MATHEMATICAL ITALIC SMALL UPSILON
+1D74A ; [.1FDC.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL UPSILON
+1D784 ; [.1FDC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
+1D7BE ; [.1FDC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
+03A5 ; [.1FDC.0020.0008] # GREEK CAPITAL LETTER UPSILON
+03D2 ; [.1FDC.0020.000A] # GREEK UPSILON WITH HOOK SYMBOL
+1D6BC ; [.1FDC.0020.000B] # MATHEMATICAL BOLD CAPITAL UPSILON
+1D6F6 ; [.1FDC.0020.000B] # MATHEMATICAL ITALIC CAPITAL UPSILON
+1D730 ; [.1FDC.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
+1D76A ; [.1FDC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
+1D7A4 ; [.1FDC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+1F50 ; [.1FDC.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER UPSILON WITH PSILI
+1F54 ; [.1FDC.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+1F52 ; [.1FDC.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+1F56 ; [.1FDC.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+1F51 ; [.1FDC.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER UPSILON WITH DASIA
+1F59 ; [.1FDC.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F55 ; [.1FDC.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+1F5D ; [.1FDC.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F53 ; [.1FDC.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+1F5B ; [.1FDC.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F57 ; [.1FDC.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F5F ; [.1FDC.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+03CD ; [.1FDC.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH TONOS
+1F7B ; [.1FDC.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH OXIA
+038E ; [.1FDC.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH TONOS
+1FEB ; [.1FDC.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH OXIA
+03D3 ; [.1FDC.0020.000A][.0000.0024.0002] # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+1F7A ; [.1FDC.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH VARIA
+1FEA ; [.1FDC.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH VARIA
+1FE0 ; [.1FDC.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER UPSILON WITH VRACHY
+1FE8 ; [.1FDC.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER UPSILON WITH VRACHY
+1FE6 ; [.1FDC.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+03CB ; [.1FDC.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+03AB ; [.1FDC.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03D4 ; [.1FDC.0020.000A][.0000.002B.0002] # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03B0 ; [.1FDC.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+1FE3 ; [.1FDC.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE2 ; [.1FDC.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE7 ; [.1FDC.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE1 ; [.1FDC.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER UPSILON WITH MACRON
+1FE9 ; [.1FDC.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER UPSILON WITH MACRON
+03C6 ; [.1FDD.0020.0002] # GREEK SMALL LETTER PHI
+03D5 ; [.1FDD.0020.0004] # GREEK PHI SYMBOL
+1D6D7 ; [.1FDD.0020.0005] # MATHEMATICAL BOLD SMALL PHI
+1D6DF ; [.1FDD.0020.0005] # MATHEMATICAL BOLD PHI SYMBOL
+1D711 ; [.1FDD.0020.0005] # MATHEMATICAL ITALIC SMALL PHI
+1D719 ; [.1FDD.0020.0005] # MATHEMATICAL ITALIC PHI SYMBOL
+1D74B ; [.1FDD.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PHI
+1D753 ; [.1FDD.0020.0005] # MATHEMATICAL BOLD ITALIC PHI SYMBOL
+1D785 ; [.1FDD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PHI
+1D78D ; [.1FDD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
+1D7BF ; [.1FDD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
+1D7C7 ; [.1FDD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
+03A6 ; [.1FDD.0020.0008] # GREEK CAPITAL LETTER PHI
+1D6BD ; [.1FDD.0020.000B] # MATHEMATICAL BOLD CAPITAL PHI
+1D6F7 ; [.1FDD.0020.000B] # MATHEMATICAL ITALIC CAPITAL PHI
+1D731 ; [.1FDD.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PHI
+1D76B ; [.1FDD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
+1D7A5 ; [.1FDD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
+1D60 ; [.1FDD.0020.0014] # MODIFIER LETTER SMALL GREEK PHI
+1D69 ; [.1FDD.0020.0015] # GREEK SUBSCRIPT SMALL LETTER PHI
+03C7 ; [.1FDE.0020.0002] # GREEK SMALL LETTER CHI
+1D6D8 ; [.1FDE.0020.0005] # MATHEMATICAL BOLD SMALL CHI
+1D712 ; [.1FDE.0020.0005] # MATHEMATICAL ITALIC SMALL CHI
+1D74C ; [.1FDE.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL CHI
+1D786 ; [.1FDE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL CHI
+1D7C0 ; [.1FDE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
+03A7 ; [.1FDE.0020.0008] # GREEK CAPITAL LETTER CHI
+1D6BE ; [.1FDE.0020.000B] # MATHEMATICAL BOLD CAPITAL CHI
+1D6F8 ; [.1FDE.0020.000B] # MATHEMATICAL ITALIC CAPITAL CHI
+1D732 ; [.1FDE.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL CHI
+1D76C ; [.1FDE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
+1D7A6 ; [.1FDE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
+1D61 ; [.1FDE.0020.0014] # MODIFIER LETTER SMALL CHI
+1D6A ; [.1FDE.0020.0015] # GREEK SUBSCRIPT SMALL LETTER CHI
+03C8 ; [.1FDF.0020.0002] # GREEK SMALL LETTER PSI
+1D6D9 ; [.1FDF.0020.0005] # MATHEMATICAL BOLD SMALL PSI
+1D713 ; [.1FDF.0020.0005] # MATHEMATICAL ITALIC SMALL PSI
+1D74D ; [.1FDF.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PSI
+1D787 ; [.1FDF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PSI
+1D7C1 ; [.1FDF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
+03A8 ; [.1FDF.0020.0008] # GREEK CAPITAL LETTER PSI
+1D6BF ; [.1FDF.0020.000B] # MATHEMATICAL BOLD CAPITAL PSI
+1D6F9 ; [.1FDF.0020.000B] # MATHEMATICAL ITALIC CAPITAL PSI
+1D733 ; [.1FDF.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PSI
+1D76D ; [.1FDF.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
+1D7A7 ; [.1FDF.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
+1D2A ; [.1FE0.0020.0002] # GREEK LETTER SMALL CAPITAL PSI
+03C9 ; [.1FE1.0020.0002] # GREEK SMALL LETTER OMEGA
+1D6DA ; [.1FE1.0020.0005] # MATHEMATICAL BOLD SMALL OMEGA
+1D714 ; [.1FE1.0020.0005] # MATHEMATICAL ITALIC SMALL OMEGA
+1D74E ; [.1FE1.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D788 ; [.1FE1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D7C2 ; [.1FE1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+03A9 ; [.1FE1.0020.0008] # GREEK CAPITAL LETTER OMEGA
+2126 ; [.1FE1.0020.0008] # OHM SIGN
+1D6C0 ; [.1FE1.0020.000B] # MATHEMATICAL BOLD CAPITAL OMEGA
+1D6FA ; [.1FE1.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMEGA
+1D734 ; [.1FE1.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D76E ; [.1FE1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D7A8 ; [.1FE1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1F60 ; [.1FE1.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMEGA WITH PSILI
+1F68 ; [.1FE1.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI
+1F64 ; [.1FE1.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+1F6C ; [.1FE1.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+1FA4 ; [.1FE1.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FAC ; [.1FE1.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F62 ; [.1FE1.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+1F6A ; [.1FE1.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+1FA2 ; [.1FE1.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FAA ; [.1FE1.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F66 ; [.1FE1.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6E ; [.1FE1.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1FA6 ; [.1FE1.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FAE ; [.1FE1.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FA0 ; [.1FE1.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA8 ; [.1FE1.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1F61 ; [.1FE1.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMEGA WITH DASIA
+1F69 ; [.1FE1.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA
+1F65 ; [.1FE1.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+1F6D ; [.1FE1.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+1FA5 ; [.1FE1.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FAD ; [.1FE1.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F63 ; [.1FE1.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+1F6B ; [.1FE1.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+1FA3 ; [.1FE1.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FAB ; [.1FE1.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F67 ; [.1FE1.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F6F ; [.1FE1.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1FA7 ; [.1FE1.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FAF ; [.1FE1.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA1 ; [.1FE1.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA9 ; [.1FE1.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+03CE ; [.1FE1.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH TONOS
+1F7D ; [.1FE1.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH OXIA
+038F ; [.1FE1.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH TONOS
+1FFB ; [.1FE1.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FF4 ; [.1FE1.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1F7C ; [.1FE1.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH VARIA
+1FFA ; [.1FE1.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH VARIA
+1FF2 ; [.1FE1.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF6 ; [.1FE1.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7 ; [.1FE1.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF3 ; [.1FE1.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+1FFC ; [.1FE1.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+AB65 ; [.1FE2.0020.0002] # GREEK LETTER SMALL CAPITAL OMEGA
+03E1 ; [.1FE3.0020.0002] # GREEK SMALL LETTER SAMPI
+03E0 ; [.1FE3.0020.0008] # GREEK LETTER SAMPI
+0373 ; [.1FE4.0020.0002] # GREEK SMALL LETTER ARCHAIC SAMPI
+0372 ; [.1FE4.0020.0008] # GREEK CAPITAL LETTER ARCHAIC SAMPI
+03F8 ; [.1FE5.0020.0002] # GREEK SMALL LETTER SHO
+03F7 ; [.1FE5.0020.0008] # GREEK CAPITAL LETTER SHO
+2C81 ; [.1FE6.0020.0002] # COPTIC SMALL LETTER ALFA
+2C80 ; [.1FE6.0020.0008] # COPTIC CAPITAL LETTER ALFA
+2C83 ; [.1FE7.0020.0002] # COPTIC SMALL LETTER VIDA
+2C82 ; [.1FE7.0020.0008] # COPTIC CAPITAL LETTER VIDA
+2C85 ; [.1FE8.0020.0002] # COPTIC SMALL LETTER GAMMA
+2C84 ; [.1FE8.0020.0008] # COPTIC CAPITAL LETTER GAMMA
+2C87 ; [.1FE9.0020.0002] # COPTIC SMALL LETTER DALDA
+2C86 ; [.1FE9.0020.0008] # COPTIC CAPITAL LETTER DALDA
+2C89 ; [.1FEA.0020.0002] # COPTIC SMALL LETTER EIE
+2C88 ; [.1FEA.0020.0008] # COPTIC CAPITAL LETTER EIE
+2CB7 ; [.1FEB.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+2CB6 ; [.1FEB.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+2C8B ; [.1FEC.0020.0002] # COPTIC SMALL LETTER SOU
+2C8A ; [.1FEC.0020.0008] # COPTIC CAPITAL LETTER SOU
+2C8D ; [.1FED.0020.0002] # COPTIC SMALL LETTER ZATA
+2C8C ; [.1FED.0020.0008] # COPTIC CAPITAL LETTER ZATA
+2C8F ; [.1FEE.0020.0002] # COPTIC SMALL LETTER HATE
+2C8E ; [.1FEE.0020.0008] # COPTIC CAPITAL LETTER HATE
+2C91 ; [.1FEF.0020.0002] # COPTIC SMALL LETTER THETHE
+2C90 ; [.1FEF.0020.0008] # COPTIC CAPITAL LETTER THETHE
+2C93 ; [.1FF0.0020.0002] # COPTIC SMALL LETTER IAUDA
+2C92 ; [.1FF0.0020.0008] # COPTIC CAPITAL LETTER IAUDA
+2C95 ; [.1FF1.0020.0002] # COPTIC SMALL LETTER KAPA
+2C94 ; [.1FF1.0020.0008] # COPTIC CAPITAL LETTER KAPA
+2CE4 ; [.1FF1.0020.0004][.1FE6.0020.0004][.1FF0.0020.0004] # COPTIC SYMBOL KAI
+2CB9 ; [.1FF2.0020.0002] # COPTIC SMALL LETTER DIALECT-P KAPA
+2CB8 ; [.1FF2.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P KAPA
+2C97 ; [.1FF3.0020.0002] # COPTIC SMALL LETTER LAULA
+2C96 ; [.1FF3.0020.0008] # COPTIC CAPITAL LETTER LAULA
+2C99 ; [.1FF4.0020.0002] # COPTIC SMALL LETTER MI
+2C98 ; [.1FF4.0020.0008] # COPTIC CAPITAL LETTER MI
+2C9B ; [.1FF5.0020.0002] # COPTIC SMALL LETTER NI
+2C9A ; [.1FF5.0020.0008] # COPTIC CAPITAL LETTER NI
+2CBB ; [.1FF6.0020.0002] # COPTIC SMALL LETTER DIALECT-P NI
+2CBA ; [.1FF6.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P NI
+2CBD ; [.1FF7.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+2CBC ; [.1FF7.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+2C9D ; [.1FF8.0020.0002] # COPTIC SMALL LETTER KSI
+2C9C ; [.1FF8.0020.0008] # COPTIC CAPITAL LETTER KSI
+2C9F ; [.1FF9.0020.0002] # COPTIC SMALL LETTER O
+2C9E ; [.1FF9.0020.0008] # COPTIC CAPITAL LETTER O
+2CA1 ; [.1FFA.0020.0002] # COPTIC SMALL LETTER PI
+2CA0 ; [.1FFA.0020.0008] # COPTIC CAPITAL LETTER PI
+2CA3 ; [.1FFB.0020.0002] # COPTIC SMALL LETTER RO
+2CA2 ; [.1FFB.0020.0008] # COPTIC CAPITAL LETTER RO
+2CA5 ; [.1FFC.0020.0002] # COPTIC SMALL LETTER SIMA
+2CA4 ; [.1FFC.0020.0008] # COPTIC CAPITAL LETTER SIMA
+2CA7 ; [.1FFD.0020.0002] # COPTIC SMALL LETTER TAU
+2CA6 ; [.1FFD.0020.0008] # COPTIC CAPITAL LETTER TAU
+2CA9 ; [.1FFE.0020.0002] # COPTIC SMALL LETTER UA
+2CA8 ; [.1FFE.0020.0008] # COPTIC CAPITAL LETTER UA
+2CAB ; [.1FFF.0020.0002] # COPTIC SMALL LETTER FI
+2CAA ; [.1FFF.0020.0008] # COPTIC CAPITAL LETTER FI
+2CAD ; [.2000.0020.0002] # COPTIC SMALL LETTER KHI
+2CAC ; [.2000.0020.0008] # COPTIC CAPITAL LETTER KHI
+2CAF ; [.2001.0020.0002] # COPTIC SMALL LETTER PSI
+2CAE ; [.2001.0020.0008] # COPTIC CAPITAL LETTER PSI
+2CB1 ; [.2002.0020.0002] # COPTIC SMALL LETTER OOU
+2CB0 ; [.2002.0020.0008] # COPTIC CAPITAL LETTER OOU
+2CBF ; [.2003.0020.0002] # COPTIC SMALL LETTER OLD COPTIC OOU
+2CBE ; [.2003.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC OOU
+2CC1 ; [.2004.0020.0002] # COPTIC SMALL LETTER SAMPI
+2CC0 ; [.2004.0020.0008] # COPTIC CAPITAL LETTER SAMPI
+03E3 ; [.2005.0020.0002] # COPTIC SMALL LETTER SHEI
+03E2 ; [.2005.0020.0008] # COPTIC CAPITAL LETTER SHEI
+2CEC ; [.2006.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
+2CEB ; [.2006.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
+2CC3 ; [.2007.0020.0002] # COPTIC SMALL LETTER CROSSED SHEI
+2CC2 ; [.2007.0020.0008] # COPTIC CAPITAL LETTER CROSSED SHEI
+2CC5 ; [.2008.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHEI
+2CC4 ; [.2008.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHEI
+2CC7 ; [.2009.0020.0002] # COPTIC SMALL LETTER OLD COPTIC ESH
+2CC6 ; [.2009.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC ESH
+03E5 ; [.200A.0020.0002] # COPTIC SMALL LETTER FEI
+03E4 ; [.200A.0020.0008] # COPTIC CAPITAL LETTER FEI
+03E7 ; [.200B.0020.0002] # COPTIC SMALL LETTER KHEI
+03E6 ; [.200B.0020.0008] # COPTIC CAPITAL LETTER KHEI
+2CF3 ; [.200C.0020.0002] # COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF2 ; [.200C.0020.0008] # COPTIC CAPITAL LETTER BOHAIRIC KHEI
+2CC9 ; [.200D.0020.0002] # COPTIC SMALL LETTER AKHMIMIC KHEI
+2CC8 ; [.200D.0020.0008] # COPTIC CAPITAL LETTER AKHMIMIC KHEI
+03E9 ; [.200E.0020.0002] # COPTIC SMALL LETTER HORI
+03E8 ; [.200E.0020.0008] # COPTIC CAPITAL LETTER HORI
+2CCB ; [.200F.0020.0002] # COPTIC SMALL LETTER DIALECT-P HORI
+2CCA ; [.200F.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P HORI
+2CCD ; [.2010.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HORI
+2CCC ; [.2010.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HORI
+2CCF ; [.2011.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HA
+2CCE ; [.2011.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HA
+2CD1 ; [.2012.0020.0002] # COPTIC SMALL LETTER L-SHAPED HA
+2CD0 ; [.2012.0020.0008] # COPTIC CAPITAL LETTER L-SHAPED HA
+2CD3 ; [.2013.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HEI
+2CD2 ; [.2013.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HEI
+2CD5 ; [.2014.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HAT
+2CD4 ; [.2014.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HAT
+03EB ; [.2015.0020.0002] # COPTIC SMALL LETTER GANGIA
+03EA ; [.2015.0020.0008] # COPTIC CAPITAL LETTER GANGIA
+2CEE ; [.2016.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CED ; [.2016.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
+2CD7 ; [.2017.0020.0002] # COPTIC SMALL LETTER OLD COPTIC GANGIA
+2CD6 ; [.2017.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+03ED ; [.2018.0020.0002] # COPTIC SMALL LETTER SHIMA
+03EC ; [.2018.0020.0008] # COPTIC CAPITAL LETTER SHIMA
+2CD9 ; [.2019.0020.0002] # COPTIC SMALL LETTER OLD COPTIC DJA
+2CD8 ; [.2019.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC DJA
+2CDB ; [.201A.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHIMA
+2CDA ; [.201A.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+2CDD ; [.201B.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN SHIMA
+2CDC ; [.201B.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+03EF ; [.201C.0020.0002] # COPTIC SMALL LETTER DEI
+03EE ; [.201C.0020.0008] # COPTIC CAPITAL LETTER DEI
+2CB3 ; [.201D.0020.0002] # COPTIC SMALL LETTER DIALECT-P ALEF
+2CB2 ; [.201D.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P ALEF
+2CB5 ; [.201E.0020.0002] # COPTIC SMALL LETTER OLD COPTIC AIN
+2CB4 ; [.201E.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC AIN
+2CDF ; [.201F.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NGI
+2CDE ; [.201F.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NGI
+2CE1 ; [.2020.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NYI
+2CE0 ; [.2020.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NYI
+2CE3 ; [.2021.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN WAU
+2CE2 ; [.2021.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN WAU
+0430 ; [.2022.0020.0002] # CYRILLIC SMALL LETTER A
+2DF6 ; [.2022.0020.0004] # COMBINING CYRILLIC LETTER A
+0410 ; [.2022.0020.0008] # CYRILLIC CAPITAL LETTER A
+04D1 ; [.2022.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
+04D0 ; [.2022.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
+04D3 ; [.2022.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D2 ; [.2022.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D9 ; [.2026.0020.0002] # CYRILLIC SMALL LETTER SCHWA
+04D8 ; [.2026.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA
+04DB ; [.2026.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DA ; [.2026.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04D5 ; [.202A.0020.0002] # CYRILLIC SMALL LIGATURE A IE
+04D4 ; [.202A.0020.0008] # CYRILLIC CAPITAL LIGATURE A IE
+0431 ; [.202E.0020.0002] # CYRILLIC SMALL LETTER BE
+2DE0 ; [.202E.0020.0004] # COMBINING CYRILLIC LETTER BE
+0411 ; [.202E.0020.0008] # CYRILLIC CAPITAL LETTER BE
+0432 ; [.2032.0020.0002] # CYRILLIC SMALL LETTER VE
+1C80 ; [.2032.0020.0004] # CYRILLIC SMALL LETTER ROUNDED VE
+2DE1 ; [.2032.0020.0004] # COMBINING CYRILLIC LETTER VE
+0412 ; [.2032.0020.0008] # CYRILLIC CAPITAL LETTER VE
+0433 ; [.2036.0020.0002] # CYRILLIC SMALL LETTER GHE
+2DE2 ; [.2036.0020.0004] # COMBINING CYRILLIC LETTER GHE
+0413 ; [.2036.0020.0008] # CYRILLIC CAPITAL LETTER GHE
+0453 ; [.2036.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
+0403 ; [.2036.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
+0491 ; [.2036.0020.0004][.0000.0111.0004] # CYRILLIC SMALL LETTER GHE WITH UPTURN
+0490 ; [.2036.0020.000A][.0000.0111.0004] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0493 ; [.203A.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE
+0492 ; [.203A.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE
+04FB ; [.203E.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+04FA ; [.203E.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+0495 ; [.2042.0020.0002] # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0494 ; [.2042.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+04F7 ; [.2046.0020.0002] # CYRILLIC SMALL LETTER GHE WITH DESCENDER
+04F6 ; [.2046.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+0434 ; [.204A.0020.0002] # CYRILLIC SMALL LETTER DE
+1C81 ; [.204A.0020.0004] # CYRILLIC SMALL LETTER LONG-LEGGED DE
+2DE3 ; [.204A.0020.0004] # COMBINING CYRILLIC LETTER DE
+0414 ; [.204A.0020.0008] # CYRILLIC CAPITAL LETTER DE
+0501 ; [.204E.0020.0002] # CYRILLIC SMALL LETTER KOMI DE
+0500 ; [.204E.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DE
+A681 ; [.204F.0020.0002] # CYRILLIC SMALL LETTER DWE
+A680 ; [.204F.0020.0008] # CYRILLIC CAPITAL LETTER DWE
+0452 ; [.2050.0020.0002] # CYRILLIC SMALL LETTER DJE
+0402 ; [.2050.0020.0008] # CYRILLIC CAPITAL LETTER DJE
+A663 ; [.2054.0020.0002] # CYRILLIC SMALL LETTER SOFT DE
+A662 ; [.2054.0020.0008] # CYRILLIC CAPITAL LETTER SOFT DE
+0503 ; [.2055.0020.0002] # CYRILLIC SMALL LETTER KOMI DJE
+0502 ; [.2055.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DJE
+0499 ; [.2056.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DESCENDER
+0498 ; [.2056.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+0435 ; [.205A.0020.0002] # CYRILLIC SMALL LETTER IE
+2DF7 ; [.205A.0020.0004] # COMBINING CYRILLIC LETTER IE
+0415 ; [.205A.0020.0008] # CYRILLIC CAPITAL LETTER IE
+0450 ; [.205A.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER IE WITH GRAVE
+0400 ; [.205A.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER IE WITH GRAVE
+04D7 ; [.205A.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
+04D6 ; [.205A.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
+0451 ; [.205A.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER IO
+0401 ; [.205A.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER IO
+0454 ; [.205E.0020.0002] # CYRILLIC SMALL LETTER UKRAINIAN IE
+A674 ; [.205E.0020.0004] # COMBINING CYRILLIC LETTER UKRAINIAN IE
+0404 ; [.205E.0020.0008] # CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0436 ; [.2062.0020.0002] # CYRILLIC SMALL LETTER ZHE
+2DE4 ; [.2062.0020.0004] # COMBINING CYRILLIC LETTER ZHE
+0416 ; [.2062.0020.0008] # CYRILLIC CAPITAL LETTER ZHE
+04C2 ; [.2062.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C1 ; [.2062.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04DD ; [.2062.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DC ; [.2062.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+052B ; [.2066.0020.0002] # CYRILLIC SMALL LETTER DZZHE
+052A ; [.2066.0020.0008] # CYRILLIC CAPITAL LETTER DZZHE
+A685 ; [.2067.0020.0002] # CYRILLIC SMALL LETTER ZHWE
+A684 ; [.2067.0020.0008] # CYRILLIC CAPITAL LETTER ZHWE
+0497 ; [.2068.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0496 ; [.2068.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0437 ; [.206C.0020.0002] # CYRILLIC SMALL LETTER ZE
+2DE5 ; [.206C.0020.0004] # COMBINING CYRILLIC LETTER ZE
+0417 ; [.206C.0020.0008] # CYRILLIC CAPITAL LETTER ZE
+04DF ; [.206C.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04DE ; [.206C.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+A641 ; [.2070.0020.0002] # CYRILLIC SMALL LETTER ZEMLYA
+A640 ; [.2070.0020.0008] # CYRILLIC CAPITAL LETTER ZEMLYA
+0505 ; [.2071.0020.0002] # CYRILLIC SMALL LETTER KOMI ZJE
+0504 ; [.2071.0020.0008] # CYRILLIC CAPITAL LETTER KOMI ZJE
+0511 ; [.2072.0020.0002] # CYRILLIC SMALL LETTER REVERSED ZE
+0510 ; [.2072.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED ZE
+A643 ; [.2073.0020.0002] # CYRILLIC SMALL LETTER DZELO
+A642 ; [.2073.0020.0008] # CYRILLIC CAPITAL LETTER DZELO
+0455 ; [.2074.0020.0002] # CYRILLIC SMALL LETTER DZE
+0405 ; [.2074.0020.0008] # CYRILLIC CAPITAL LETTER DZE
+A645 ; [.2078.0020.0002] # CYRILLIC SMALL LETTER REVERSED DZE
+A644 ; [.2078.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED DZE
+04E1 ; [.2079.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E0 ; [.2079.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+A689 ; [.207D.0020.0002] # CYRILLIC SMALL LETTER DZZE
+A688 ; [.207D.0020.0008] # CYRILLIC CAPITAL LETTER DZZE
+0507 ; [.207E.0020.0002] # CYRILLIC SMALL LETTER KOMI DZJE
+0506 ; [.207E.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DZJE
+A683 ; [.207F.0020.0002] # CYRILLIC SMALL LETTER DZWE
+A682 ; [.207F.0020.0008] # CYRILLIC CAPITAL LETTER DZWE
+0438 ; [.2080.0020.0002] # CYRILLIC SMALL LETTER I
+A675 ; [.2080.0020.0004] # COMBINING CYRILLIC LETTER I
+0418 ; [.2080.0020.0008] # CYRILLIC CAPITAL LETTER I
+045D ; [.2080.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER I WITH GRAVE
+040D ; [.2080.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER I WITH GRAVE
+04E5 ; [.2080.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E4 ; [.2080.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E3 ; [.2080.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER I WITH MACRON
+04E2 ; [.2080.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER I WITH MACRON
+048B ; [.2084.0020.0002] # CYRILLIC SMALL LETTER SHORT I WITH TAIL
+048A ; [.2084.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+0456 ; [.2088.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0406 ; [.2088.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0457 ; [.2088.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
+A676 ; [.2088.0020.0004][.0000.002B.0004] # COMBINING CYRILLIC LETTER YI
+0407 ; [.2088.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
+A647 ; [.208C.0020.0002] # CYRILLIC SMALL LETTER IOTA
+A646 ; [.208C.0020.0008] # CYRILLIC CAPITAL LETTER IOTA
+0439 ; [.208D.0020.0002] # CYRILLIC SMALL LETTER SHORT I
+0438 0306 ; [.208D.0020.0002] # CYRILLIC SMALL LETTER SHORT I
+0419 ; [.208D.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
+0418 0306 ; [.208D.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
+0458 ; [.2091.0020.0002] # CYRILLIC SMALL LETTER JE
+0408 ; [.2091.0020.0008] # CYRILLIC CAPITAL LETTER JE
+A649 ; [.2095.0020.0002] # CYRILLIC SMALL LETTER DJERV
+2DF8 ; [.2095.0020.0004] # COMBINING CYRILLIC LETTER DJERV
+A648 ; [.2095.0020.0008] # CYRILLIC CAPITAL LETTER DJERV
+043A ; [.2096.0020.0002] # CYRILLIC SMALL LETTER KA
+2DE6 ; [.2096.0020.0004] # COMBINING CYRILLIC LETTER KA
+041A ; [.2096.0020.0008] # CYRILLIC CAPITAL LETTER KA
+045C ; [.2096.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
+040C ; [.2096.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
+049B ; [.209A.0020.0002] # CYRILLIC SMALL LETTER KA WITH DESCENDER
+049A ; [.209A.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+04C4 ; [.209E.0020.0002] # CYRILLIC SMALL LETTER KA WITH HOOK
+04C3 ; [.209E.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH HOOK
+04A1 ; [.20A2.0020.0002] # CYRILLIC SMALL LETTER BASHKIR KA
+04A0 ; [.20A2.0020.0008] # CYRILLIC CAPITAL LETTER BASHKIR KA
+049F ; [.20A6.0020.0002] # CYRILLIC SMALL LETTER KA WITH STROKE
+049E ; [.20A6.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH STROKE
+049D ; [.20AA.0020.0002] # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049C ; [.20AA.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+051F ; [.20AE.0020.0002] # CYRILLIC SMALL LETTER ALEUT KA
+051E ; [.20AE.0020.0008] # CYRILLIC CAPITAL LETTER ALEUT KA
+051B ; [.20AF.0020.0002] # CYRILLIC SMALL LETTER QA
+051A ; [.20AF.0020.0008] # CYRILLIC CAPITAL LETTER QA
+043B ; [.20B0.0020.0002] # CYRILLIC SMALL LETTER EL
+2DE7 ; [.20B0.0020.0004] # COMBINING CYRILLIC LETTER EL
+041B ; [.20B0.0020.0008] # CYRILLIC CAPITAL LETTER EL
+1D2B ; [.20B4.0020.0002] # CYRILLIC LETTER SMALL CAPITAL EL
+04C6 ; [.20B5.0020.0002] # CYRILLIC SMALL LETTER EL WITH TAIL
+04C5 ; [.20B5.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH TAIL
+052F ; [.20B9.0020.0002] # CYRILLIC SMALL LETTER EL WITH DESCENDER
+052E ; [.20B9.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+0513 ; [.20BA.0020.0002] # CYRILLIC SMALL LETTER EL WITH HOOK
+0512 ; [.20BA.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH HOOK
+0521 ; [.20BB.0020.0002] # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+0520 ; [.20BB.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+0459 ; [.20BC.0020.0002] # CYRILLIC SMALL LETTER LJE
+0409 ; [.20BC.0020.0008] # CYRILLIC CAPITAL LETTER LJE
+A665 ; [.20C0.0020.0002] # CYRILLIC SMALL LETTER SOFT EL
+A664 ; [.20C0.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EL
+0509 ; [.20C1.0020.0002] # CYRILLIC SMALL LETTER KOMI LJE
+0508 ; [.20C1.0020.0008] # CYRILLIC CAPITAL LETTER KOMI LJE
+0515 ; [.20C2.0020.0002] # CYRILLIC SMALL LETTER LHA
+0514 ; [.20C2.0020.0008] # CYRILLIC CAPITAL LETTER LHA
+043C ; [.20C3.0020.0002] # CYRILLIC SMALL LETTER EM
+2DE8 ; [.20C3.0020.0004] # COMBINING CYRILLIC LETTER EM
+041C ; [.20C3.0020.0008] # CYRILLIC CAPITAL LETTER EM
+04CE ; [.20C7.0020.0002] # CYRILLIC SMALL LETTER EM WITH TAIL
+04CD ; [.20C7.0020.0008] # CYRILLIC CAPITAL LETTER EM WITH TAIL
+A667 ; [.20CB.0020.0002] # CYRILLIC SMALL LETTER SOFT EM
+A666 ; [.20CB.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EM
+043D ; [.20CC.0020.0002] # CYRILLIC SMALL LETTER EN
+2DE9 ; [.20CC.0020.0004] # COMBINING CYRILLIC LETTER EN
+041D ; [.20CC.0020.0008] # CYRILLIC CAPITAL LETTER EN
+1D78 ; [.20CC.0020.0014] # MODIFIER LETTER CYRILLIC EN
+0529 ; [.20D0.0020.0002] # CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+0528 ; [.20D0.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+04CA ; [.20D1.0020.0002] # CYRILLIC SMALL LETTER EN WITH TAIL
+04C9 ; [.20D1.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH TAIL
+04A3 ; [.20D5.0020.0002] # CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A2 ; [.20D5.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04C8 ; [.20D9.0020.0002] # CYRILLIC SMALL LETTER EN WITH HOOK
+04C7 ; [.20D9.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH HOOK
+0523 ; [.20DD.0020.0002] # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+0522 ; [.20DD.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+04A5 ; [.20DE.0020.0002] # CYRILLIC SMALL LIGATURE EN GHE
+04A4 ; [.20DE.0020.0008] # CYRILLIC CAPITAL LIGATURE EN GHE
+045A ; [.20E2.0020.0002] # CYRILLIC SMALL LETTER NJE
+040A ; [.20E2.0020.0008] # CYRILLIC CAPITAL LETTER NJE
+050B ; [.20E6.0020.0002] # CYRILLIC SMALL LETTER KOMI NJE
+050A ; [.20E6.0020.0008] # CYRILLIC CAPITAL LETTER KOMI NJE
+043E ; [.20E7.0020.0002] # CYRILLIC SMALL LETTER O
+1C82 ; [.20E7.0020.0004] # CYRILLIC SMALL LETTER NARROW O
+2DEA ; [.20E7.0020.0004] # COMBINING CYRILLIC LETTER O
+A669 ; [.20E7.0020.0004] # CYRILLIC SMALL LETTER MONOCULAR O
+A66B ; [.20E7.0020.0004] # CYRILLIC SMALL LETTER BINOCULAR O
+A66D ; [.20E7.0020.0004] # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E ; [.20E7.0020.0004] # CYRILLIC LETTER MULTIOCULAR O
+A699 ; [.20E7.0020.0004] # CYRILLIC SMALL LETTER DOUBLE O
+A69B ; [.20E7.0020.0004] # CYRILLIC SMALL LETTER CROSSED O
+041E ; [.20E7.0020.0008] # CYRILLIC CAPITAL LETTER O
+A668 ; [.20E7.0020.000A] # CYRILLIC CAPITAL LETTER MONOCULAR O
+A66A ; [.20E7.0020.000A] # CYRILLIC CAPITAL LETTER BINOCULAR O
+A66C ; [.20E7.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+A698 ; [.20E7.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE O
+A69A ; [.20E7.0020.000A] # CYRILLIC CAPITAL LETTER CROSSED O
+04E7 ; [.20E7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E6 ; [.20E7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E9 ; [.20EB.0020.0002] # CYRILLIC SMALL LETTER BARRED O
+04E8 ; [.20EB.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O
+04EB ; [.20EB.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EA ; [.20EB.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+043F ; [.20EF.0020.0002] # CYRILLIC SMALL LETTER PE
+2DEB ; [.20EF.0020.0004] # COMBINING CYRILLIC LETTER PE
+041F ; [.20EF.0020.0008] # CYRILLIC CAPITAL LETTER PE
+0525 ; [.20F3.0020.0002] # CYRILLIC SMALL LETTER PE WITH DESCENDER
+0524 ; [.20F3.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
+04A7 ; [.20F4.0020.0002] # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A6 ; [.20F4.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+0481 ; [.20F8.0020.0002] # CYRILLIC SMALL LETTER KOPPA
+0480 ; [.20F8.0020.0008] # CYRILLIC CAPITAL LETTER KOPPA
+0440 ; [.20FC.0020.0002] # CYRILLIC SMALL LETTER ER
+2DEC ; [.20FC.0020.0004] # COMBINING CYRILLIC LETTER ER
+0420 ; [.20FC.0020.0008] # CYRILLIC CAPITAL LETTER ER
+048F ; [.2100.0020.0002] # CYRILLIC SMALL LETTER ER WITH TICK
+048E ; [.2100.0020.0008] # CYRILLIC CAPITAL LETTER ER WITH TICK
+0517 ; [.2104.0020.0002] # CYRILLIC SMALL LETTER RHA
+0516 ; [.2104.0020.0008] # CYRILLIC CAPITAL LETTER RHA
+0441 ; [.2105.0020.0002] # CYRILLIC SMALL LETTER ES
+1C83 ; [.2105.0020.0004] # CYRILLIC SMALL LETTER WIDE ES
+2DED ; [.2105.0020.0004] # COMBINING CYRILLIC LETTER ES
+0421 ; [.2105.0020.0008] # CYRILLIC CAPITAL LETTER ES
+2DF5 ; [.2105.0020.0004][.210E.0020.0004] # COMBINING CYRILLIC LETTER ES-TE
+050D ; [.2109.0020.0002] # CYRILLIC SMALL LETTER KOMI SJE
+050C ; [.2109.0020.0008] # CYRILLIC CAPITAL LETTER KOMI SJE
+04AB ; [.210A.0020.0002] # CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AA ; [.210A.0020.0008] # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+0442 ; [.210E.0020.0002] # CYRILLIC SMALL LETTER TE
+1C84 ; [.210E.0020.0004] # CYRILLIC SMALL LETTER TALL TE
+1C85 ; [.210E.0020.0004] # CYRILLIC SMALL LETTER THREE-LEGGED TE
+2DEE ; [.210E.0020.0004] # COMBINING CYRILLIC LETTER TE
+0422 ; [.210E.0020.0008] # CYRILLIC CAPITAL LETTER TE
+A68D ; [.2112.0020.0002] # CYRILLIC SMALL LETTER TWE
+A68C ; [.2112.0020.0008] # CYRILLIC CAPITAL LETTER TWE
+050F ; [.2113.0020.0002] # CYRILLIC SMALL LETTER KOMI TJE
+050E ; [.2113.0020.0008] # CYRILLIC CAPITAL LETTER KOMI TJE
+04AD ; [.2114.0020.0002] # CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AC ; [.2114.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+A68B ; [.2118.0020.0002] # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
+A68A ; [.2118.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+045B ; [.2119.0020.0002] # CYRILLIC SMALL LETTER TSHE
+040B ; [.2119.0020.0008] # CYRILLIC CAPITAL LETTER TSHE
+0443 ; [.211D.0020.0002] # CYRILLIC SMALL LETTER U
+A677 ; [.211D.0020.0004] # COMBINING CYRILLIC LETTER U
+0423 ; [.211D.0020.0008] # CYRILLIC CAPITAL LETTER U
+045E ; [.211D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
+040E ; [.211D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
+04F1 ; [.211D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F0 ; [.211D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F3 ; [.211D.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F2 ; [.211D.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04EF ; [.211D.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER U WITH MACRON
+04EE ; [.211D.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER U WITH MACRON
+04AF ; [.2121.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
+04AE ; [.2121.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
+04B1 ; [.2125.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B0 ; [.2125.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+A64B ; [.2129.0020.0002] # CYRILLIC SMALL LETTER MONOGRAPH UK
+1C88 ; [.2129.0020.0004] # CYRILLIC SMALL LETTER UNBLENDED UK
+2DF9 ; [.2129.0020.0004] # COMBINING CYRILLIC LETTER MONOGRAPH UK
+A64A ; [.2129.0020.0008] # CYRILLIC CAPITAL LETTER MONOGRAPH UK
+0479 ; [.212A.0020.0002] # CYRILLIC SMALL LETTER UK
+0478 ; [.212A.0020.0008] # CYRILLIC CAPITAL LETTER UK
+0444 ; [.212E.0020.0002] # CYRILLIC SMALL LETTER EF
+A69E ; [.212E.0020.0004] # COMBINING CYRILLIC LETTER EF
+0424 ; [.212E.0020.0008] # CYRILLIC CAPITAL LETTER EF
+0445 ; [.2132.0020.0002] # CYRILLIC SMALL LETTER HA
+2DEF ; [.2132.0020.0004] # COMBINING CYRILLIC LETTER HA
+0425 ; [.2132.0020.0008] # CYRILLIC CAPITAL LETTER HA
+04FD ; [.2136.0020.0002] # CYRILLIC SMALL LETTER HA WITH HOOK
+04FC ; [.2136.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH HOOK
+04FF ; [.213A.0020.0002] # CYRILLIC SMALL LETTER HA WITH STROKE
+04FE ; [.213A.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH STROKE
+04B3 ; [.213E.0020.0002] # CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B2 ; [.213E.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04BB ; [.2142.0020.0002] # CYRILLIC SMALL LETTER SHHA
+04BA ; [.2142.0020.0008] # CYRILLIC CAPITAL LETTER SHHA
+0527 ; [.2146.0020.0002] # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0526 ; [.2146.0020.0008] # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+A695 ; [.2147.0020.0002] # CYRILLIC SMALL LETTER HWE
+A694 ; [.2147.0020.0008] # CYRILLIC CAPITAL LETTER HWE
+0461 ; [.2148.0020.0002] # CYRILLIC SMALL LETTER OMEGA
+A67B ; [.2148.0020.0004] # COMBINING CYRILLIC LETTER OMEGA
+0460 ; [.2148.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA
+047F ; [.214C.0020.0002] # CYRILLIC SMALL LETTER OT
+047E ; [.214C.0020.0008] # CYRILLIC CAPITAL LETTER OT
+A64D ; [.2150.0020.0002] # CYRILLIC SMALL LETTER BROAD OMEGA
+A64C ; [.2150.0020.0008] # CYRILLIC CAPITAL LETTER BROAD OMEGA
+047D ; [.2151.0020.0002] # CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047C ; [.2151.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047B ; [.2155.0020.0002] # CYRILLIC SMALL LETTER ROUND OMEGA
+047A ; [.2155.0020.0008] # CYRILLIC CAPITAL LETTER ROUND OMEGA
+0446 ; [.2159.0020.0002] # CYRILLIC SMALL LETTER TSE
+2DF0 ; [.2159.0020.0004] # COMBINING CYRILLIC LETTER TSE
+0426 ; [.2159.0020.0008] # CYRILLIC CAPITAL LETTER TSE
+A661 ; [.215D.0020.0002] # CYRILLIC SMALL LETTER REVERSED TSE
+A660 ; [.215D.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED TSE
+A68F ; [.215E.0020.0002] # CYRILLIC SMALL LETTER TSWE
+A68E ; [.215E.0020.0008] # CYRILLIC CAPITAL LETTER TSWE
+04B5 ; [.215F.0020.0002] # CYRILLIC SMALL LIGATURE TE TSE
+04B4 ; [.215F.0020.0008] # CYRILLIC CAPITAL LIGATURE TE TSE
+A691 ; [.2163.0020.0002] # CYRILLIC SMALL LETTER TSSE
+A690 ; [.2163.0020.0008] # CYRILLIC CAPITAL LETTER TSSE
+0447 ; [.2164.0020.0002] # CYRILLIC SMALL LETTER CHE
+2DF1 ; [.2164.0020.0004] # COMBINING CYRILLIC LETTER CHE
+0427 ; [.2164.0020.0008] # CYRILLIC CAPITAL LETTER CHE
+04F5 ; [.2164.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F4 ; [.2164.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+052D ; [.2168.0020.0002] # CYRILLIC SMALL LETTER DCHE
+052C ; [.2168.0020.0008] # CYRILLIC CAPITAL LETTER DCHE
+A693 ; [.2169.0020.0002] # CYRILLIC SMALL LETTER TCHE
+A692 ; [.2169.0020.0008] # CYRILLIC CAPITAL LETTER TCHE
+04B7 ; [.216A.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B6 ; [.216A.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04CC ; [.216E.0020.0002] # CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04CB ; [.216E.0020.0008] # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04B9 ; [.2172.0020.0002] # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04B8 ; [.2172.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+A687 ; [.2176.0020.0002] # CYRILLIC SMALL LETTER CCHE
+A686 ; [.2176.0020.0008] # CYRILLIC CAPITAL LETTER CCHE
+04BD ; [.2177.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BC ; [.2177.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BF ; [.217B.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+04BE ; [.217B.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+045F ; [.217F.0020.0002] # CYRILLIC SMALL LETTER DZHE
+040F ; [.217F.0020.0008] # CYRILLIC CAPITAL LETTER DZHE
+0448 ; [.2183.0020.0002] # CYRILLIC SMALL LETTER SHA
+2DF2 ; [.2183.0020.0004] # COMBINING CYRILLIC LETTER SHA
+0428 ; [.2183.0020.0008] # CYRILLIC CAPITAL LETTER SHA
+A697 ; [.2187.0020.0002] # CYRILLIC SMALL LETTER SHWE
+A696 ; [.2187.0020.0008] # CYRILLIC CAPITAL LETTER SHWE
+0449 ; [.2188.0020.0002] # CYRILLIC SMALL LETTER SHCHA
+2DF3 ; [.2188.0020.0004] # COMBINING CYRILLIC LETTER SHCHA
+0429 ; [.2188.0020.0008] # CYRILLIC CAPITAL LETTER SHCHA
+A64F ; [.218C.0020.0002] # CYRILLIC SMALL LETTER NEUTRAL YER
+A64E ; [.218C.0020.0008] # CYRILLIC CAPITAL LETTER NEUTRAL YER
+2E2F ; [.218D.0020.0002] # VERTICAL TILDE
+A67F ; [.218E.0020.0002] # CYRILLIC PAYEROK
+044A ; [.218F.0020.0002] # CYRILLIC SMALL LETTER HARD SIGN
+1C86 ; [.218F.0020.0004] # CYRILLIC SMALL LETTER TALL HARD SIGN
+A678 ; [.218F.0020.0004] # COMBINING CYRILLIC LETTER HARD SIGN
+042A ; [.218F.0020.0008] # CYRILLIC CAPITAL LETTER HARD SIGN
+A69C ; [.218F.0020.0014] # MODIFIER LETTER CYRILLIC HARD SIGN
+A651 ; [.2193.0020.0002] # CYRILLIC SMALL LETTER YERU WITH BACK YER
+A650 ; [.2193.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+044B ; [.2194.0020.0002] # CYRILLIC SMALL LETTER YERU
+A679 ; [.2194.0020.0004] # COMBINING CYRILLIC LETTER YERU
+042B ; [.2194.0020.0008] # CYRILLIC CAPITAL LETTER YERU
+04F9 ; [.2194.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+04F8 ; [.2194.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+044C ; [.2198.0020.0002] # CYRILLIC SMALL LETTER SOFT SIGN
+A67A ; [.2198.0020.0004] # COMBINING CYRILLIC LETTER SOFT SIGN
+042C ; [.2198.0020.0008] # CYRILLIC CAPITAL LETTER SOFT SIGN
+A69D ; [.2198.0020.0014] # MODIFIER LETTER CYRILLIC SOFT SIGN
+048D ; [.219C.0020.0002] # CYRILLIC SMALL LETTER SEMISOFT SIGN
+048C ; [.219C.0020.0008] # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+0463 ; [.21A0.0020.0002] # CYRILLIC SMALL LETTER YAT
+1C87 ; [.21A0.0020.0004] # CYRILLIC SMALL LETTER TALL YAT
+2DFA ; [.21A0.0020.0004] # COMBINING CYRILLIC LETTER YAT
+0462 ; [.21A0.0020.0008] # CYRILLIC CAPITAL LETTER YAT
+A653 ; [.21A4.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED YAT
+A652 ; [.21A4.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED YAT
+044D ; [.21A5.0020.0002] # CYRILLIC SMALL LETTER E
+042D ; [.21A5.0020.0008] # CYRILLIC CAPITAL LETTER E
+04ED ; [.21A5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EC ; [.21A5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+044E ; [.21A9.0020.0002] # CYRILLIC SMALL LETTER YU
+2DFB ; [.21A9.0020.0004] # COMBINING CYRILLIC LETTER YU
+042E ; [.21A9.0020.0008] # CYRILLIC CAPITAL LETTER YU
+A655 ; [.21AD.0020.0002] # CYRILLIC SMALL LETTER REVERSED YU
+A654 ; [.21AD.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED YU
+A657 ; [.21AE.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED A
+2DFC ; [.21AE.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED A
+A656 ; [.21AE.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED A
+044F ; [.21AF.0020.0002] # CYRILLIC SMALL LETTER YA
+042F ; [.21AF.0020.0008] # CYRILLIC CAPITAL LETTER YA
+0519 ; [.21B3.0020.0002] # CYRILLIC SMALL LETTER YAE
+0518 ; [.21B3.0020.0008] # CYRILLIC CAPITAL LETTER YAE
+0465 ; [.21B4.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED E
+A69F ; [.21B4.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED E
+0464 ; [.21B4.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED E
+0467 ; [.21B8.0020.0002] # CYRILLIC SMALL LETTER LITTLE YUS
+2DFD ; [.21B8.0020.0004] # COMBINING CYRILLIC LETTER LITTLE YUS
+0466 ; [.21B8.0020.0008] # CYRILLIC CAPITAL LETTER LITTLE YUS
+A659 ; [.21BC.0020.0002] # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
+A658 ; [.21BC.0020.0008] # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+046B ; [.21BD.0020.0002] # CYRILLIC SMALL LETTER BIG YUS
+2DFE ; [.21BD.0020.0004] # COMBINING CYRILLIC LETTER BIG YUS
+046A ; [.21BD.0020.0008] # CYRILLIC CAPITAL LETTER BIG YUS
+A65B ; [.21C1.0020.0002] # CYRILLIC SMALL LETTER BLENDED YUS
+A65A ; [.21C1.0020.0008] # CYRILLIC CAPITAL LETTER BLENDED YUS
+0469 ; [.21C2.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+0468 ; [.21C2.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+A65D ; [.21C6.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+A65C ; [.21C6.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+046D ; [.21C7.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+2DFF ; [.21C7.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+046C ; [.21C7.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046F ; [.21CB.0020.0002] # CYRILLIC SMALL LETTER KSI
+046E ; [.21CB.0020.0008] # CYRILLIC CAPITAL LETTER KSI
+0471 ; [.21CF.0020.0002] # CYRILLIC SMALL LETTER PSI
+0470 ; [.21CF.0020.0008] # CYRILLIC CAPITAL LETTER PSI
+0473 ; [.21D3.0020.0002] # CYRILLIC SMALL LETTER FITA
+2DF4 ; [.21D3.0020.0004] # COMBINING CYRILLIC LETTER FITA
+0472 ; [.21D3.0020.0008] # CYRILLIC CAPITAL LETTER FITA
+0475 ; [.21D7.0020.0002] # CYRILLIC SMALL LETTER IZHITSA
+0474 ; [.21D7.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA
+0477 ; [.21D7.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0476 ; [.21D7.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+A65F ; [.21DB.0020.0002] # CYRILLIC SMALL LETTER YN
+A65E ; [.21DB.0020.0008] # CYRILLIC CAPITAL LETTER YN
+04A9 ; [.21DC.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN HA
+04A8 ; [.21DC.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN HA
+051D ; [.21E0.0020.0002] # CYRILLIC SMALL LETTER WE
+051C ; [.21E0.0020.0008] # CYRILLIC CAPITAL LETTER WE
+04CF ; [.21E1.0020.0002] # CYRILLIC SMALL LETTER PALOCHKA
+04C0 ; [.21E1.0020.0008] # CYRILLIC LETTER PALOCHKA
+2C30 ; [.21E5.0020.0002] # GLAGOLITIC SMALL LETTER AZU
+1E000 ; [.21E5.0020.0004] # COMBINING GLAGOLITIC LETTER AZU
+2C00 ; [.21E5.0020.0008] # GLAGOLITIC CAPITAL LETTER AZU
+2C31 ; [.21E6.0020.0002] # GLAGOLITIC SMALL LETTER BUKY
+1E001 ; [.21E6.0020.0004] # COMBINING GLAGOLITIC LETTER BUKY
+2C01 ; [.21E6.0020.0008] # GLAGOLITIC CAPITAL LETTER BUKY
+2C32 ; [.21E7.0020.0002] # GLAGOLITIC SMALL LETTER VEDE
+1E002 ; [.21E7.0020.0004] # COMBINING GLAGOLITIC LETTER VEDE
+2C02 ; [.21E7.0020.0008] # GLAGOLITIC CAPITAL LETTER VEDE
+2C33 ; [.21E8.0020.0002] # GLAGOLITIC SMALL LETTER GLAGOLI
+1E003 ; [.21E8.0020.0004] # COMBINING GLAGOLITIC LETTER GLAGOLI
+2C03 ; [.21E8.0020.0008] # GLAGOLITIC CAPITAL LETTER GLAGOLI
+2C34 ; [.21E9.0020.0002] # GLAGOLITIC SMALL LETTER DOBRO
+1E004 ; [.21E9.0020.0004] # COMBINING GLAGOLITIC LETTER DOBRO
+2C04 ; [.21E9.0020.0008] # GLAGOLITIC CAPITAL LETTER DOBRO
+2C35 ; [.21EA.0020.0002] # GLAGOLITIC SMALL LETTER YESTU
+1E005 ; [.21EA.0020.0004] # COMBINING GLAGOLITIC LETTER YESTU
+2C05 ; [.21EA.0020.0008] # GLAGOLITIC CAPITAL LETTER YESTU
+2C36 ; [.21EB.0020.0002] # GLAGOLITIC SMALL LETTER ZHIVETE
+1E006 ; [.21EB.0020.0004] # COMBINING GLAGOLITIC LETTER ZHIVETE
+2C06 ; [.21EB.0020.0008] # GLAGOLITIC CAPITAL LETTER ZHIVETE
+2C37 ; [.21EC.0020.0002] # GLAGOLITIC SMALL LETTER DZELO
+2C07 ; [.21EC.0020.0008] # GLAGOLITIC CAPITAL LETTER DZELO
+2C38 ; [.21ED.0020.0002] # GLAGOLITIC SMALL LETTER ZEMLJA
+1E008 ; [.21ED.0020.0004] # COMBINING GLAGOLITIC LETTER ZEMLJA
+2C08 ; [.21ED.0020.0008] # GLAGOLITIC CAPITAL LETTER ZEMLJA
+2C39 ; [.21EE.0020.0002] # GLAGOLITIC SMALL LETTER IZHE
+1E009 ; [.21EE.0020.0004] # COMBINING GLAGOLITIC LETTER IZHE
+2C09 ; [.21EE.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHE
+2C3A ; [.21EF.0020.0002] # GLAGOLITIC SMALL LETTER INITIAL IZHE
+1E00A ; [.21EF.0020.0004] # COMBINING GLAGOLITIC LETTER INITIAL IZHE
+2C0A ; [.21EF.0020.0008] # GLAGOLITIC CAPITAL LETTER INITIAL IZHE
+2C3B ; [.21F0.0020.0002] # GLAGOLITIC SMALL LETTER I
+1E00B ; [.21F0.0020.0004] # COMBINING GLAGOLITIC LETTER I
+2C0B ; [.21F0.0020.0008] # GLAGOLITIC CAPITAL LETTER I
+2C3C ; [.21F1.0020.0002] # GLAGOLITIC SMALL LETTER DJERVI
+1E00C ; [.21F1.0020.0004] # COMBINING GLAGOLITIC LETTER DJERVI
+2C0C ; [.21F1.0020.0008] # GLAGOLITIC CAPITAL LETTER DJERVI
+2C3D ; [.21F2.0020.0002] # GLAGOLITIC SMALL LETTER KAKO
+1E00D ; [.21F2.0020.0004] # COMBINING GLAGOLITIC LETTER KAKO
+2C0D ; [.21F2.0020.0008] # GLAGOLITIC CAPITAL LETTER KAKO
+2C3E ; [.21F3.0020.0002] # GLAGOLITIC SMALL LETTER LJUDIJE
+1E00E ; [.21F3.0020.0004] # COMBINING GLAGOLITIC LETTER LJUDIJE
+2C0E ; [.21F3.0020.0008] # GLAGOLITIC CAPITAL LETTER LJUDIJE
+2C3F ; [.21F4.0020.0002] # GLAGOLITIC SMALL LETTER MYSLITE
+1E00F ; [.21F4.0020.0004] # COMBINING GLAGOLITIC LETTER MYSLITE
+2C0F ; [.21F4.0020.0008] # GLAGOLITIC CAPITAL LETTER MYSLITE
+2C40 ; [.21F5.0020.0002] # GLAGOLITIC SMALL LETTER NASHI
+1E010 ; [.21F5.0020.0004] # COMBINING GLAGOLITIC LETTER NASHI
+2C10 ; [.21F5.0020.0008] # GLAGOLITIC CAPITAL LETTER NASHI
+2C41 ; [.21F6.0020.0002] # GLAGOLITIC SMALL LETTER ONU
+1E011 ; [.21F6.0020.0004] # COMBINING GLAGOLITIC LETTER ONU
+2C11 ; [.21F6.0020.0008] # GLAGOLITIC CAPITAL LETTER ONU
+2C42 ; [.21F7.0020.0002] # GLAGOLITIC SMALL LETTER POKOJI
+1E012 ; [.21F7.0020.0004] # COMBINING GLAGOLITIC LETTER POKOJI
+2C12 ; [.21F7.0020.0008] # GLAGOLITIC CAPITAL LETTER POKOJI
+2C43 ; [.21F8.0020.0002] # GLAGOLITIC SMALL LETTER RITSI
+1E013 ; [.21F8.0020.0004] # COMBINING GLAGOLITIC LETTER RITSI
+2C13 ; [.21F8.0020.0008] # GLAGOLITIC CAPITAL LETTER RITSI
+2C44 ; [.21F9.0020.0002] # GLAGOLITIC SMALL LETTER SLOVO
+1E014 ; [.21F9.0020.0004] # COMBINING GLAGOLITIC LETTER SLOVO
+2C14 ; [.21F9.0020.0008] # GLAGOLITIC CAPITAL LETTER SLOVO
+2C45 ; [.21FA.0020.0002] # GLAGOLITIC SMALL LETTER TVRIDO
+1E015 ; [.21FA.0020.0004] # COMBINING GLAGOLITIC LETTER TVRIDO
+2C15 ; [.21FA.0020.0008] # GLAGOLITIC CAPITAL LETTER TVRIDO
+2C46 ; [.21FB.0020.0002] # GLAGOLITIC SMALL LETTER UKU
+1E016 ; [.21FB.0020.0004] # COMBINING GLAGOLITIC LETTER UKU
+2C16 ; [.21FB.0020.0008] # GLAGOLITIC CAPITAL LETTER UKU
+2C47 ; [.21FC.0020.0002] # GLAGOLITIC SMALL LETTER FRITU
+1E017 ; [.21FC.0020.0004] # COMBINING GLAGOLITIC LETTER FRITU
+2C17 ; [.21FC.0020.0008] # GLAGOLITIC CAPITAL LETTER FRITU
+2C48 ; [.21FD.0020.0002] # GLAGOLITIC SMALL LETTER HERU
+1E018 ; [.21FD.0020.0004] # COMBINING GLAGOLITIC LETTER HERU
+2C18 ; [.21FD.0020.0008] # GLAGOLITIC CAPITAL LETTER HERU
+2C49 ; [.21FE.0020.0002] # GLAGOLITIC SMALL LETTER OTU
+2C19 ; [.21FE.0020.0008] # GLAGOLITIC CAPITAL LETTER OTU
+2C4A ; [.21FF.0020.0002] # GLAGOLITIC SMALL LETTER PE
+2C1A ; [.21FF.0020.0008] # GLAGOLITIC CAPITAL LETTER PE
+2C4B ; [.2200.0020.0002] # GLAGOLITIC SMALL LETTER SHTA
+1E01B ; [.2200.0020.0004] # COMBINING GLAGOLITIC LETTER SHTA
+2C1B ; [.2200.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTA
+2C4C ; [.2201.0020.0002] # GLAGOLITIC SMALL LETTER TSI
+1E01C ; [.2201.0020.0004] # COMBINING GLAGOLITIC LETTER TSI
+2C1C ; [.2201.0020.0008] # GLAGOLITIC CAPITAL LETTER TSI
+2C4D ; [.2202.0020.0002] # GLAGOLITIC SMALL LETTER CHRIVI
+1E01D ; [.2202.0020.0004] # COMBINING GLAGOLITIC LETTER CHRIVI
+2C1D ; [.2202.0020.0008] # GLAGOLITIC CAPITAL LETTER CHRIVI
+2C4E ; [.2203.0020.0002] # GLAGOLITIC SMALL LETTER SHA
+1E01E ; [.2203.0020.0004] # COMBINING GLAGOLITIC LETTER SHA
+2C1E ; [.2203.0020.0008] # GLAGOLITIC CAPITAL LETTER SHA
+2C4F ; [.2204.0020.0002] # GLAGOLITIC SMALL LETTER YERU
+1E01F ; [.2204.0020.0004] # COMBINING GLAGOLITIC LETTER YERU
+2C1F ; [.2204.0020.0008] # GLAGOLITIC CAPITAL LETTER YERU
+2C50 ; [.2205.0020.0002] # GLAGOLITIC SMALL LETTER YERI
+1E020 ; [.2205.0020.0004] # COMBINING GLAGOLITIC LETTER YERI
+2C20 ; [.2205.0020.0008] # GLAGOLITIC CAPITAL LETTER YERI
+2C51 ; [.2206.0020.0002] # GLAGOLITIC SMALL LETTER YATI
+1E021 ; [.2206.0020.0004] # COMBINING GLAGOLITIC LETTER YATI
+2C21 ; [.2206.0020.0008] # GLAGOLITIC CAPITAL LETTER YATI
+2C52 ; [.2207.0020.0002] # GLAGOLITIC SMALL LETTER SPIDERY HA
+2C22 ; [.2207.0020.0008] # GLAGOLITIC CAPITAL LETTER SPIDERY HA
+2C53 ; [.2208.0020.0002] # GLAGOLITIC SMALL LETTER YU
+1E023 ; [.2208.0020.0004] # COMBINING GLAGOLITIC LETTER YU
+2C23 ; [.2208.0020.0008] # GLAGOLITIC CAPITAL LETTER YU
+2C54 ; [.2209.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS
+1E024 ; [.2209.0020.0004] # COMBINING GLAGOLITIC LETTER SMALL YUS
+2C24 ; [.2209.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS
+2C55 ; [.220A.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
+2C25 ; [.220A.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
+2C56 ; [.220B.0020.0002] # GLAGOLITIC SMALL LETTER YO
+1E026 ; [.220B.0020.0004] # COMBINING GLAGOLITIC LETTER YO
+2C26 ; [.220B.0020.0008] # GLAGOLITIC CAPITAL LETTER YO
+2C57 ; [.220C.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
+1E027 ; [.220C.0020.0004] # COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS
+2C27 ; [.220C.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
+2C58 ; [.220D.0020.0002] # GLAGOLITIC SMALL LETTER BIG YUS
+1E028 ; [.220D.0020.0004] # COMBINING GLAGOLITIC LETTER BIG YUS
+2C28 ; [.220D.0020.0008] # GLAGOLITIC CAPITAL LETTER BIG YUS
+2C59 ; [.220E.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED BIG YUS
+1E029 ; [.220E.0020.0004] # COMBINING GLAGOLITIC LETTER IOTATED BIG YUS
+2C29 ; [.220E.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
+2C5A ; [.220F.0020.0002] # GLAGOLITIC SMALL LETTER FITA
+1E02A ; [.220F.0020.0004] # COMBINING GLAGOLITIC LETTER FITA
+2C2A ; [.220F.0020.0008] # GLAGOLITIC CAPITAL LETTER FITA
+2C5B ; [.2210.0020.0002] # GLAGOLITIC SMALL LETTER IZHITSA
+2C2B ; [.2210.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHITSA
+2C5C ; [.2211.0020.0002] # GLAGOLITIC SMALL LETTER SHTAPIC
+2C2C ; [.2211.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTAPIC
+2C5D ; [.2212.0020.0002] # GLAGOLITIC SMALL LETTER TROKUTASTI A
+2C2D ; [.2212.0020.0008] # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
+2C5E ; [.2213.0020.0002] # GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C2E ; [.2213.0020.0008] # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+10350 ; [.2214.0020.0002] # OLD PERMIC LETTER AN
+10376 ; [.2214.0020.0004] # COMBINING OLD PERMIC LETTER AN
+10351 ; [.2215.0020.0002] # OLD PERMIC LETTER BUR
+10352 ; [.2216.0020.0002] # OLD PERMIC LETTER GAI
+10353 ; [.2217.0020.0002] # OLD PERMIC LETTER DOI
+10377 ; [.2217.0020.0004] # COMBINING OLD PERMIC LETTER DOI
+10354 ; [.2218.0020.0002] # OLD PERMIC LETTER E
+10355 ; [.2219.0020.0002] # OLD PERMIC LETTER ZHOI
+10356 ; [.221A.0020.0002] # OLD PERMIC LETTER DZHOI
+10357 ; [.221B.0020.0002] # OLD PERMIC LETTER ZATA
+10378 ; [.221B.0020.0004] # COMBINING OLD PERMIC LETTER ZATA
+10358 ; [.221C.0020.0002] # OLD PERMIC LETTER DZITA
+10359 ; [.221D.0020.0002] # OLD PERMIC LETTER I
+1035A ; [.221E.0020.0002] # OLD PERMIC LETTER KOKE
+1035B ; [.221F.0020.0002] # OLD PERMIC LETTER LEI
+1035C ; [.2220.0020.0002] # OLD PERMIC LETTER MENOE
+1035D ; [.2221.0020.0002] # OLD PERMIC LETTER NENOE
+10379 ; [.2221.0020.0004] # COMBINING OLD PERMIC LETTER NENOE
+1035E ; [.2222.0020.0002] # OLD PERMIC LETTER VOOI
+1035F ; [.2223.0020.0002] # OLD PERMIC LETTER PEEI
+10360 ; [.2224.0020.0002] # OLD PERMIC LETTER REI
+10361 ; [.2225.0020.0002] # OLD PERMIC LETTER SII
+1037A ; [.2225.0020.0004] # COMBINING OLD PERMIC LETTER SII
+10362 ; [.2226.0020.0002] # OLD PERMIC LETTER TAI
+10363 ; [.2227.0020.0002] # OLD PERMIC LETTER U
+10364 ; [.2228.0020.0002] # OLD PERMIC LETTER CHERY
+10365 ; [.2229.0020.0002] # OLD PERMIC LETTER SHOOI
+10366 ; [.222A.0020.0002] # OLD PERMIC LETTER SHCHOOI
+10367 ; [.222B.0020.0002] # OLD PERMIC LETTER YRY
+10368 ; [.222C.0020.0002] # OLD PERMIC LETTER YERU
+10369 ; [.222D.0020.0002] # OLD PERMIC LETTER O
+1036A ; [.222E.0020.0002] # OLD PERMIC LETTER OO
+1036B ; [.222F.0020.0002] # OLD PERMIC LETTER EF
+1036C ; [.2230.0020.0002] # OLD PERMIC LETTER HA
+1036D ; [.2231.0020.0002] # OLD PERMIC LETTER TSIU
+1036E ; [.2232.0020.0002] # OLD PERMIC LETTER VER
+1036F ; [.2233.0020.0002] # OLD PERMIC LETTER YER
+10370 ; [.2234.0020.0002] # OLD PERMIC LETTER YERI
+10371 ; [.2235.0020.0002] # OLD PERMIC LETTER YAT
+10372 ; [.2236.0020.0002] # OLD PERMIC LETTER IE
+10373 ; [.2237.0020.0002] # OLD PERMIC LETTER YU
+10374 ; [.2238.0020.0002] # OLD PERMIC LETTER YA
+10375 ; [.2239.0020.0002] # OLD PERMIC LETTER IA
+10D0 ; [.223A.0020.0002] # GEORGIAN LETTER AN
+2D00 ; [.223B.0020.0002] # GEORGIAN SMALL LETTER AN
+10A0 ; [.223B.0020.0008] # GEORGIAN CAPITAL LETTER AN
+10D1 ; [.223C.0020.0002] # GEORGIAN LETTER BAN
+2D01 ; [.223D.0020.0002] # GEORGIAN SMALL LETTER BAN
+10A1 ; [.223D.0020.0008] # GEORGIAN CAPITAL LETTER BAN
+10D2 ; [.223E.0020.0002] # GEORGIAN LETTER GAN
+2D02 ; [.223F.0020.0002] # GEORGIAN SMALL LETTER GAN
+10A2 ; [.223F.0020.0008] # GEORGIAN CAPITAL LETTER GAN
+10D3 ; [.2240.0020.0002] # GEORGIAN LETTER DON
+2D03 ; [.2241.0020.0002] # GEORGIAN SMALL LETTER DON
+10A3 ; [.2241.0020.0008] # GEORGIAN CAPITAL LETTER DON
+10D4 ; [.2242.0020.0002] # GEORGIAN LETTER EN
+2D04 ; [.2243.0020.0002] # GEORGIAN SMALL LETTER EN
+10A4 ; [.2243.0020.0008] # GEORGIAN CAPITAL LETTER EN
+10D5 ; [.2244.0020.0002] # GEORGIAN LETTER VIN
+2D05 ; [.2245.0020.0002] # GEORGIAN SMALL LETTER VIN
+10A5 ; [.2245.0020.0008] # GEORGIAN CAPITAL LETTER VIN
+10D6 ; [.2246.0020.0002] # GEORGIAN LETTER ZEN
+2D06 ; [.2247.0020.0002] # GEORGIAN SMALL LETTER ZEN
+10A6 ; [.2247.0020.0008] # GEORGIAN CAPITAL LETTER ZEN
+10F1 ; [.2248.0020.0002] # GEORGIAN LETTER HE
+2D21 ; [.2249.0020.0002] # GEORGIAN SMALL LETTER HE
+10C1 ; [.2249.0020.0008] # GEORGIAN CAPITAL LETTER HE
+10D7 ; [.224A.0020.0002] # GEORGIAN LETTER TAN
+2D07 ; [.224B.0020.0002] # GEORGIAN SMALL LETTER TAN
+10A7 ; [.224B.0020.0008] # GEORGIAN CAPITAL LETTER TAN
+10D8 ; [.224C.0020.0002] # GEORGIAN LETTER IN
+2D08 ; [.224D.0020.0002] # GEORGIAN SMALL LETTER IN
+10A8 ; [.224D.0020.0008] # GEORGIAN CAPITAL LETTER IN
+10D9 ; [.224E.0020.0002] # GEORGIAN LETTER KAN
+2D09 ; [.224F.0020.0002] # GEORGIAN SMALL LETTER KAN
+10A9 ; [.224F.0020.0008] # GEORGIAN CAPITAL LETTER KAN
+10DA ; [.2250.0020.0002] # GEORGIAN LETTER LAS
+2D0A ; [.2251.0020.0002] # GEORGIAN SMALL LETTER LAS
+10AA ; [.2251.0020.0008] # GEORGIAN CAPITAL LETTER LAS
+10DB ; [.2252.0020.0002] # GEORGIAN LETTER MAN
+2D0B ; [.2253.0020.0002] # GEORGIAN SMALL LETTER MAN
+10AB ; [.2253.0020.0008] # GEORGIAN CAPITAL LETTER MAN
+10DC ; [.2254.0020.0002] # GEORGIAN LETTER NAR
+10FC ; [.2254.0020.0014] # MODIFIER LETTER GEORGIAN NAR
+2D0C ; [.2255.0020.0002] # GEORGIAN SMALL LETTER NAR
+10AC ; [.2255.0020.0008] # GEORGIAN CAPITAL LETTER NAR
+10F2 ; [.2256.0020.0002] # GEORGIAN LETTER HIE
+2D22 ; [.2257.0020.0002] # GEORGIAN SMALL LETTER HIE
+10C2 ; [.2257.0020.0008] # GEORGIAN CAPITAL LETTER HIE
+10DD ; [.2258.0020.0002] # GEORGIAN LETTER ON
+2D0D ; [.2259.0020.0002] # GEORGIAN SMALL LETTER ON
+10AD ; [.2259.0020.0008] # GEORGIAN CAPITAL LETTER ON
+10DE ; [.225A.0020.0002] # GEORGIAN LETTER PAR
+2D0E ; [.225B.0020.0002] # GEORGIAN SMALL LETTER PAR
+10AE ; [.225B.0020.0008] # GEORGIAN CAPITAL LETTER PAR
+10DF ; [.225C.0020.0002] # GEORGIAN LETTER ZHAR
+2D0F ; [.225D.0020.0002] # GEORGIAN SMALL LETTER ZHAR
+10AF ; [.225D.0020.0008] # GEORGIAN CAPITAL LETTER ZHAR
+10E0 ; [.225E.0020.0002] # GEORGIAN LETTER RAE
+2D10 ; [.225F.0020.0002] # GEORGIAN SMALL LETTER RAE
+10B0 ; [.225F.0020.0008] # GEORGIAN CAPITAL LETTER RAE
+10E1 ; [.2260.0020.0002] # GEORGIAN LETTER SAN
+2D11 ; [.2261.0020.0002] # GEORGIAN SMALL LETTER SAN
+10B1 ; [.2261.0020.0008] # GEORGIAN CAPITAL LETTER SAN
+10E2 ; [.2262.0020.0002] # GEORGIAN LETTER TAR
+2D12 ; [.2263.0020.0002] # GEORGIAN SMALL LETTER TAR
+10B2 ; [.2263.0020.0008] # GEORGIAN CAPITAL LETTER TAR
+10F3 ; [.2264.0020.0002] # GEORGIAN LETTER WE
+2D23 ; [.2265.0020.0002] # GEORGIAN SMALL LETTER WE
+10C3 ; [.2265.0020.0008] # GEORGIAN CAPITAL LETTER WE
+10E3 ; [.2266.0020.0002] # GEORGIAN LETTER UN
+2D13 ; [.2267.0020.0002] # GEORGIAN SMALL LETTER UN
+10B3 ; [.2267.0020.0008] # GEORGIAN CAPITAL LETTER UN
+10E4 ; [.2268.0020.0002] # GEORGIAN LETTER PHAR
+2D14 ; [.2269.0020.0002] # GEORGIAN SMALL LETTER PHAR
+10B4 ; [.2269.0020.0008] # GEORGIAN CAPITAL LETTER PHAR
+10E5 ; [.226A.0020.0002] # GEORGIAN LETTER KHAR
+2D15 ; [.226B.0020.0002] # GEORGIAN SMALL LETTER KHAR
+10B5 ; [.226B.0020.0008] # GEORGIAN CAPITAL LETTER KHAR
+10E6 ; [.226C.0020.0002] # GEORGIAN LETTER GHAN
+2D16 ; [.226D.0020.0002] # GEORGIAN SMALL LETTER GHAN
+10B6 ; [.226D.0020.0008] # GEORGIAN CAPITAL LETTER GHAN
+10E7 ; [.226E.0020.0002] # GEORGIAN LETTER QAR
+2D17 ; [.226F.0020.0002] # GEORGIAN SMALL LETTER QAR
+10B7 ; [.226F.0020.0008] # GEORGIAN CAPITAL LETTER QAR
+10E8 ; [.2270.0020.0002] # GEORGIAN LETTER SHIN
+2D18 ; [.2271.0020.0002] # GEORGIAN SMALL LETTER SHIN
+10B8 ; [.2271.0020.0008] # GEORGIAN CAPITAL LETTER SHIN
+10E9 ; [.2272.0020.0002] # GEORGIAN LETTER CHIN
+2D19 ; [.2273.0020.0002] # GEORGIAN SMALL LETTER CHIN
+10B9 ; [.2273.0020.0008] # GEORGIAN CAPITAL LETTER CHIN
+10EA ; [.2274.0020.0002] # GEORGIAN LETTER CAN
+2D1A ; [.2275.0020.0002] # GEORGIAN SMALL LETTER CAN
+10BA ; [.2275.0020.0008] # GEORGIAN CAPITAL LETTER CAN
+10EB ; [.2276.0020.0002] # GEORGIAN LETTER JIL
+2D1B ; [.2277.0020.0002] # GEORGIAN SMALL LETTER JIL
+10BB ; [.2277.0020.0008] # GEORGIAN CAPITAL LETTER JIL
+10EC ; [.2278.0020.0002] # GEORGIAN LETTER CIL
+2D1C ; [.2279.0020.0002] # GEORGIAN SMALL LETTER CIL
+10BC ; [.2279.0020.0008] # GEORGIAN CAPITAL LETTER CIL
+10ED ; [.227A.0020.0002] # GEORGIAN LETTER CHAR
+2D1D ; [.227B.0020.0002] # GEORGIAN SMALL LETTER CHAR
+10BD ; [.227B.0020.0008] # GEORGIAN CAPITAL LETTER CHAR
+10EE ; [.227C.0020.0002] # GEORGIAN LETTER XAN
+2D1E ; [.227D.0020.0002] # GEORGIAN SMALL LETTER XAN
+10BE ; [.227D.0020.0008] # GEORGIAN CAPITAL LETTER XAN
+10F4 ; [.227E.0020.0002] # GEORGIAN LETTER HAR
+2D24 ; [.227F.0020.0002] # GEORGIAN SMALL LETTER HAR
+10C4 ; [.227F.0020.0008] # GEORGIAN CAPITAL LETTER HAR
+10EF ; [.2280.0020.0002] # GEORGIAN LETTER JHAN
+2D1F ; [.2281.0020.0002] # GEORGIAN SMALL LETTER JHAN
+10BF ; [.2281.0020.0008] # GEORGIAN CAPITAL LETTER JHAN
+10F0 ; [.2282.0020.0002] # GEORGIAN LETTER HAE
+2D20 ; [.2283.0020.0002] # GEORGIAN SMALL LETTER HAE
+10C0 ; [.2283.0020.0008] # GEORGIAN CAPITAL LETTER HAE
+10F5 ; [.2284.0020.0002] # GEORGIAN LETTER HOE
+2D25 ; [.2285.0020.0002] # GEORGIAN SMALL LETTER HOE
+10C5 ; [.2285.0020.0008] # GEORGIAN CAPITAL LETTER HOE
+10F6 ; [.2286.0020.0002] # GEORGIAN LETTER FI
+10F7 ; [.2287.0020.0002] # GEORGIAN LETTER YN
+2D27 ; [.2288.0020.0002] # GEORGIAN SMALL LETTER YN
+10C7 ; [.2288.0020.0008] # GEORGIAN CAPITAL LETTER YN
+10F8 ; [.2289.0020.0002] # GEORGIAN LETTER ELIFI
+10F9 ; [.228A.0020.0002] # GEORGIAN LETTER TURNED GAN
+10FA ; [.228B.0020.0002] # GEORGIAN LETTER AIN
+10FD ; [.228C.0020.0002] # GEORGIAN LETTER AEN
+2D2D ; [.228D.0020.0002] # GEORGIAN SMALL LETTER AEN
+10CD ; [.228D.0020.0008] # GEORGIAN CAPITAL LETTER AEN
+10FE ; [.228E.0020.0002] # GEORGIAN LETTER HARD SIGN
+10FF ; [.228F.0020.0002] # GEORGIAN LETTER LABIAL SIGN
+0561 ; [.2290.0020.0002] # ARMENIAN SMALL LETTER AYB
+0531 ; [.2290.0020.0008] # ARMENIAN CAPITAL LETTER AYB
+0562 ; [.2291.0020.0002] # ARMENIAN SMALL LETTER BEN
+0532 ; [.2291.0020.0008] # ARMENIAN CAPITAL LETTER BEN
+0563 ; [.2292.0020.0002] # ARMENIAN SMALL LETTER GIM
+0533 ; [.2292.0020.0008] # ARMENIAN CAPITAL LETTER GIM
+0564 ; [.2293.0020.0002] # ARMENIAN SMALL LETTER DA
+0534 ; [.2293.0020.0008] # ARMENIAN CAPITAL LETTER DA
+0565 ; [.2294.0020.0002] # ARMENIAN SMALL LETTER ECH
+0535 ; [.2294.0020.0008] # ARMENIAN CAPITAL LETTER ECH
+0587 ; [.2294.0020.0004][.22B1.0020.0004] # ARMENIAN SMALL LIGATURE ECH YIWN
+0566 ; [.2295.0020.0002] # ARMENIAN SMALL LETTER ZA
+0536 ; [.2295.0020.0008] # ARMENIAN CAPITAL LETTER ZA
+0567 ; [.2296.0020.0002] # ARMENIAN SMALL LETTER EH
+0537 ; [.2296.0020.0008] # ARMENIAN CAPITAL LETTER EH
+0568 ; [.2297.0020.0002] # ARMENIAN SMALL LETTER ET
+0538 ; [.2297.0020.0008] # ARMENIAN CAPITAL LETTER ET
+0569 ; [.2298.0020.0002] # ARMENIAN SMALL LETTER TO
+0539 ; [.2298.0020.0008] # ARMENIAN CAPITAL LETTER TO
+056A ; [.2299.0020.0002] # ARMENIAN SMALL LETTER ZHE
+053A ; [.2299.0020.0008] # ARMENIAN CAPITAL LETTER ZHE
+056B ; [.229A.0020.0002] # ARMENIAN SMALL LETTER INI
+053B ; [.229A.0020.0008] # ARMENIAN CAPITAL LETTER INI
+056C ; [.229B.0020.0002] # ARMENIAN SMALL LETTER LIWN
+053C ; [.229B.0020.0008] # ARMENIAN CAPITAL LETTER LIWN
+056D ; [.229C.0020.0002] # ARMENIAN SMALL LETTER XEH
+053D ; [.229C.0020.0008] # ARMENIAN CAPITAL LETTER XEH
+056E ; [.229D.0020.0002] # ARMENIAN SMALL LETTER CA
+053E ; [.229D.0020.0008] # ARMENIAN CAPITAL LETTER CA
+056F ; [.229E.0020.0002] # ARMENIAN SMALL LETTER KEN
+053F ; [.229E.0020.0008] # ARMENIAN CAPITAL LETTER KEN
+0570 ; [.229F.0020.0002] # ARMENIAN SMALL LETTER HO
+0540 ; [.229F.0020.0008] # ARMENIAN CAPITAL LETTER HO
+0571 ; [.22A0.0020.0002] # ARMENIAN SMALL LETTER JA
+0541 ; [.22A0.0020.0008] # ARMENIAN CAPITAL LETTER JA
+0572 ; [.22A1.0020.0002] # ARMENIAN SMALL LETTER GHAD
+0542 ; [.22A1.0020.0008] # ARMENIAN CAPITAL LETTER GHAD
+0573 ; [.22A2.0020.0002] # ARMENIAN SMALL LETTER CHEH
+0543 ; [.22A2.0020.0008] # ARMENIAN CAPITAL LETTER CHEH
+0574 ; [.22A3.0020.0002] # ARMENIAN SMALL LETTER MEN
+0544 ; [.22A3.0020.0008] # ARMENIAN CAPITAL LETTER MEN
+FB14 ; [.22A3.0020.0004][.2294.0020.0004] # ARMENIAN SMALL LIGATURE MEN ECH
+FB15 ; [.22A3.0020.0004][.229A.0020.0004] # ARMENIAN SMALL LIGATURE MEN INI
+FB17 ; [.22A3.0020.0004][.229C.0020.0004] # ARMENIAN SMALL LIGATURE MEN XEH
+FB13 ; [.22A3.0020.0004][.22A5.0020.0004] # ARMENIAN SMALL LIGATURE MEN NOW
+0575 ; [.22A4.0020.0002] # ARMENIAN SMALL LETTER YI
+0545 ; [.22A4.0020.0008] # ARMENIAN CAPITAL LETTER YI
+0576 ; [.22A5.0020.0002] # ARMENIAN SMALL LETTER NOW
+0546 ; [.22A5.0020.0008] # ARMENIAN CAPITAL LETTER NOW
+0577 ; [.22A6.0020.0002] # ARMENIAN SMALL LETTER SHA
+0547 ; [.22A6.0020.0008] # ARMENIAN CAPITAL LETTER SHA
+0578 ; [.22A7.0020.0002] # ARMENIAN SMALL LETTER VO
+0548 ; [.22A7.0020.0008] # ARMENIAN CAPITAL LETTER VO
+0579 ; [.22A8.0020.0002] # ARMENIAN SMALL LETTER CHA
+0549 ; [.22A8.0020.0008] # ARMENIAN CAPITAL LETTER CHA
+057A ; [.22A9.0020.0002] # ARMENIAN SMALL LETTER PEH
+054A ; [.22A9.0020.0008] # ARMENIAN CAPITAL LETTER PEH
+057B ; [.22AA.0020.0002] # ARMENIAN SMALL LETTER JHEH
+054B ; [.22AA.0020.0008] # ARMENIAN CAPITAL LETTER JHEH
+057C ; [.22AB.0020.0002] # ARMENIAN SMALL LETTER RA
+054C ; [.22AB.0020.0008] # ARMENIAN CAPITAL LETTER RA
+057D ; [.22AC.0020.0002] # ARMENIAN SMALL LETTER SEH
+054D ; [.22AC.0020.0008] # ARMENIAN CAPITAL LETTER SEH
+057E ; [.22AD.0020.0002] # ARMENIAN SMALL LETTER VEW
+054E ; [.22AD.0020.0008] # ARMENIAN CAPITAL LETTER VEW
+FB16 ; [.22AD.0020.0004][.22A5.0020.0004] # ARMENIAN SMALL LIGATURE VEW NOW
+057F ; [.22AE.0020.0002] # ARMENIAN SMALL LETTER TIWN
+054F ; [.22AE.0020.0008] # ARMENIAN CAPITAL LETTER TIWN
+0580 ; [.22AF.0020.0002] # ARMENIAN SMALL LETTER REH
+0550 ; [.22AF.0020.0008] # ARMENIAN CAPITAL LETTER REH
+0581 ; [.22B0.0020.0002] # ARMENIAN SMALL LETTER CO
+0551 ; [.22B0.0020.0008] # ARMENIAN CAPITAL LETTER CO
+0582 ; [.22B1.0020.0002] # ARMENIAN SMALL LETTER YIWN
+0552 ; [.22B1.0020.0008] # ARMENIAN CAPITAL LETTER YIWN
+0583 ; [.22B2.0020.0002] # ARMENIAN SMALL LETTER PIWR
+0553 ; [.22B2.0020.0008] # ARMENIAN CAPITAL LETTER PIWR
+0584 ; [.22B3.0020.0002] # ARMENIAN SMALL LETTER KEH
+0554 ; [.22B3.0020.0008] # ARMENIAN CAPITAL LETTER KEH
+0585 ; [.22B4.0020.0002] # ARMENIAN SMALL LETTER OH
+0555 ; [.22B4.0020.0008] # ARMENIAN CAPITAL LETTER OH
+0586 ; [.22B5.0020.0002] # ARMENIAN SMALL LETTER FEH
+0556 ; [.22B5.0020.0008] # ARMENIAN CAPITAL LETTER FEH
+0559 ; [.22B6.0020.0002] # ARMENIAN MODIFIER LETTER LEFT HALF RING
+05D0 ; [.22B7.0020.0002] # HEBREW LETTER ALEF
+2135 ; [.22B7.0020.0004] # ALEF SYMBOL
+FB21 ; [.22B7.0020.0005] # HEBREW LETTER WIDE ALEF
+FB2E ; [.22B7.0020.0002][.0000.0059.0002] # HEBREW LETTER ALEF WITH PATAH
+FB2F ; [.22B7.0020.0002][.0000.005A.0002] # HEBREW LETTER ALEF WITH QAMATS
+FB30 ; [.22B7.0020.0002][.0000.005F.0002] # HEBREW LETTER ALEF WITH MAPIQ
+FB4F ; [.22B7.0020.0004][.22C2.0020.0004] # HEBREW LIGATURE ALEF LAMED
+05D1 ; [.22B8.0020.0002] # HEBREW LETTER BET
+2136 ; [.22B8.0020.0004] # BET SYMBOL
+FB31 ; [.22B8.0020.0002][.0000.005F.0002] # HEBREW LETTER BET WITH DAGESH
+FB4C ; [.22B8.0020.0002][.0000.0060.0002] # HEBREW LETTER BET WITH RAFE
+05D2 ; [.22B9.0020.0002] # HEBREW LETTER GIMEL
+2137 ; [.22B9.0020.0004] # GIMEL SYMBOL
+FB32 ; [.22B9.0020.0002][.0000.005F.0002] # HEBREW LETTER GIMEL WITH DAGESH
+05D3 ; [.22BA.0020.0002] # HEBREW LETTER DALET
+2138 ; [.22BA.0020.0004] # DALET SYMBOL
+FB22 ; [.22BA.0020.0005] # HEBREW LETTER WIDE DALET
+FB33 ; [.22BA.0020.0002][.0000.005F.0002] # HEBREW LETTER DALET WITH DAGESH
+05D4 ; [.22BB.0020.0002] # HEBREW LETTER HE
+FB23 ; [.22BB.0020.0005] # HEBREW LETTER WIDE HE
+FB34 ; [.22BB.0020.0002][.0000.005F.0002] # HEBREW LETTER HE WITH MAPIQ
+05D5 ; [.22BC.0020.0002] # HEBREW LETTER VAV
+FB4B ; [.22BC.0020.0002][.0000.005B.0002] # HEBREW LETTER VAV WITH HOLAM
+FB35 ; [.22BC.0020.0002][.0000.005F.0002] # HEBREW LETTER VAV WITH DAGESH
+05F0 ; [.22BC.0020.0004][.22BC.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE VAV
+05F1 ; [.22BC.0020.0004][.22C0.0020.0004] # HEBREW LIGATURE YIDDISH VAV YOD
+05D6 ; [.22BD.0020.0002] # HEBREW LETTER ZAYIN
+FB36 ; [.22BD.0020.0002][.0000.005F.0002] # HEBREW LETTER ZAYIN WITH DAGESH
+05D7 ; [.22BE.0020.0002] # HEBREW LETTER HET
+05D8 ; [.22BF.0020.0002] # HEBREW LETTER TET
+FB38 ; [.22BF.0020.0002][.0000.005F.0002] # HEBREW LETTER TET WITH DAGESH
+05D9 ; [.22C0.0020.0002] # HEBREW LETTER YOD
+FB1D ; [.22C0.0020.0002][.0000.0056.0002] # HEBREW LETTER YOD WITH HIRIQ
+FB39 ; [.22C0.0020.0002][.0000.005F.0002] # HEBREW LETTER YOD WITH DAGESH
+05F2 ; [.22C0.0020.0004][.22C0.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE YOD
+FB1F ; [.22C0.0020.0004][.22C0.0020.0004][.0000.0059.0002] # HEBREW LIGATURE YIDDISH YOD YOD PATAH
+05DB ; [.22C1.0020.0002] # HEBREW LETTER KAF
+FB24 ; [.22C1.0020.0005] # HEBREW LETTER WIDE KAF
+05DA ; [.22C1.0020.0019] # HEBREW LETTER FINAL KAF
+FB3B ; [.22C1.0020.0002][.0000.005F.0002] # HEBREW LETTER KAF WITH DAGESH
+FB3A ; [.22C1.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL KAF WITH DAGESH
+FB4D ; [.22C1.0020.0002][.0000.0060.0002] # HEBREW LETTER KAF WITH RAFE
+05DC ; [.22C2.0020.0002] # HEBREW LETTER LAMED
+FB25 ; [.22C2.0020.0005] # HEBREW LETTER WIDE LAMED
+FB3C ; [.22C2.0020.0002][.0000.005F.0002] # HEBREW LETTER LAMED WITH DAGESH
+05DE ; [.22C3.0020.0002] # HEBREW LETTER MEM
+FB26 ; [.22C3.0020.0005] # HEBREW LETTER WIDE FINAL MEM
+05DD ; [.22C3.0020.0019] # HEBREW LETTER FINAL MEM
+FB3E ; [.22C3.0020.0002][.0000.005F.0002] # HEBREW LETTER MEM WITH DAGESH
+05E0 ; [.22C4.0020.0002] # HEBREW LETTER NUN
+05DF ; [.22C4.0020.0019] # HEBREW LETTER FINAL NUN
+FB40 ; [.22C4.0020.0002][.0000.005F.0002] # HEBREW LETTER NUN WITH DAGESH
+05E1 ; [.22C5.0020.0002] # HEBREW LETTER SAMEKH
+FB41 ; [.22C5.0020.0002][.0000.005F.0002] # HEBREW LETTER SAMEKH WITH DAGESH
+05E2 ; [.22C6.0020.0002] # HEBREW LETTER AYIN
+FB20 ; [.22C6.0020.0005] # HEBREW LETTER ALTERNATIVE AYIN
+05E4 ; [.22C7.0020.0002] # HEBREW LETTER PE
+05E3 ; [.22C7.0020.0019] # HEBREW LETTER FINAL PE
+FB44 ; [.22C7.0020.0002][.0000.005F.0002] # HEBREW LETTER PE WITH DAGESH
+FB43 ; [.22C7.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL PE WITH DAGESH
+FB4E ; [.22C7.0020.0002][.0000.0060.0002] # HEBREW LETTER PE WITH RAFE
+05E6 ; [.22C8.0020.0002] # HEBREW LETTER TSADI
+05E5 ; [.22C8.0020.0019] # HEBREW LETTER FINAL TSADI
+FB46 ; [.22C8.0020.0002][.0000.005F.0002] # HEBREW LETTER TSADI WITH DAGESH
+05E7 ; [.22C9.0020.0002] # HEBREW LETTER QOF
+FB47 ; [.22C9.0020.0002][.0000.005F.0002] # HEBREW LETTER QOF WITH DAGESH
+05E8 ; [.22CA.0020.0002] # HEBREW LETTER RESH
+FB27 ; [.22CA.0020.0005] # HEBREW LETTER WIDE RESH
+FB48 ; [.22CA.0020.0002][.0000.005F.0002] # HEBREW LETTER RESH WITH DAGESH
+05E9 ; [.22CB.0020.0002] # HEBREW LETTER SHIN
+FB2B ; [.22CB.0020.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH SIN DOT
+FB2A ; [.22CB.0020.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH SHIN DOT
+FB49 ; [.22CB.0020.0002][.0000.005F.0002] # HEBREW LETTER SHIN WITH DAGESH
+FB2D ; [.22CB.0020.0002][.0000.005F.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2C ; [.22CB.0020.0002][.0000.005F.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+05EA ; [.22CC.0020.0002] # HEBREW LETTER TAV
+FB28 ; [.22CC.0020.0005] # HEBREW LETTER WIDE TAV
+FB4A ; [.22CC.0020.0002][.0000.005F.0002] # HEBREW LETTER TAV WITH DAGESH
+10900 ; [.22CD.0020.0002] # PHOENICIAN LETTER ALF
+10901 ; [.22CE.0020.0002] # PHOENICIAN LETTER BET
+10902 ; [.22CF.0020.0002] # PHOENICIAN LETTER GAML
+10903 ; [.22D0.0020.0002] # PHOENICIAN LETTER DELT
+10904 ; [.22D1.0020.0002] # PHOENICIAN LETTER HE
+10905 ; [.22D2.0020.0002] # PHOENICIAN LETTER WAU
+10906 ; [.22D3.0020.0002] # PHOENICIAN LETTER ZAI
+10907 ; [.22D4.0020.0002] # PHOENICIAN LETTER HET
+10908 ; [.22D5.0020.0002] # PHOENICIAN LETTER TET
+10909 ; [.22D6.0020.0002] # PHOENICIAN LETTER YOD
+1090A ; [.22D7.0020.0002] # PHOENICIAN LETTER KAF
+1090B ; [.22D8.0020.0002] # PHOENICIAN LETTER LAMD
+1090C ; [.22D9.0020.0002] # PHOENICIAN LETTER MEM
+1090D ; [.22DA.0020.0002] # PHOENICIAN LETTER NUN
+1090E ; [.22DB.0020.0002] # PHOENICIAN LETTER SEMK
+1090F ; [.22DC.0020.0002] # PHOENICIAN LETTER AIN
+10910 ; [.22DD.0020.0002] # PHOENICIAN LETTER PE
+10911 ; [.22DE.0020.0002] # PHOENICIAN LETTER SADE
+10912 ; [.22DF.0020.0002] # PHOENICIAN LETTER QOF
+10913 ; [.22E0.0020.0002] # PHOENICIAN LETTER ROSH
+10914 ; [.22E1.0020.0002] # PHOENICIAN LETTER SHIN
+10915 ; [.22E2.0020.0002] # PHOENICIAN LETTER TAU
+0800 ; [.22E3.0020.0002] # SAMARITAN LETTER ALAF
+0801 ; [.22E4.0020.0002] # SAMARITAN LETTER BIT
+0802 ; [.22E5.0020.0002] # SAMARITAN LETTER GAMAN
+0803 ; [.22E6.0020.0002] # SAMARITAN LETTER DALAT
+0804 ; [.22E7.0020.0002] # SAMARITAN LETTER IY
+0805 ; [.22E8.0020.0002] # SAMARITAN LETTER BAA
+0806 ; [.22E9.0020.0002] # SAMARITAN LETTER ZEN
+0807 ; [.22EA.0020.0002] # SAMARITAN LETTER IT
+0808 ; [.22EB.0020.0002] # SAMARITAN LETTER TIT
+0809 ; [.22EC.0020.0002] # SAMARITAN LETTER YUT
+080A ; [.22ED.0020.0002] # SAMARITAN LETTER KAAF
+080B ; [.22EE.0020.0002] # SAMARITAN LETTER LABAT
+080C ; [.22EF.0020.0002] # SAMARITAN LETTER MIM
+080D ; [.22F0.0020.0002] # SAMARITAN LETTER NUN
+080E ; [.22F1.0020.0002] # SAMARITAN LETTER SINGAAT
+080F ; [.22F2.0020.0002] # SAMARITAN LETTER IN
+0810 ; [.22F3.0020.0002] # SAMARITAN LETTER FI
+0811 ; [.22F4.0020.0002] # SAMARITAN LETTER TSAADIY
+0812 ; [.22F5.0020.0002] # SAMARITAN LETTER QUF
+0813 ; [.22F6.0020.0002] # SAMARITAN LETTER RISH
+0814 ; [.22F7.0020.0002] # SAMARITAN LETTER SHAN
+0815 ; [.22F8.0020.0002] # SAMARITAN LETTER TAAF
+0816 ; [.22F9.0020.0002] # SAMARITAN MARK IN
+0817 ; [.22FA.0020.0002] # SAMARITAN MARK IN-ALAF
+081A ; [.22FB.0020.0002] # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+081B ; [.22FC.0020.0002] # SAMARITAN MARK EPENTHETIC YUT
+0621 ; [.22FD.0020.0002] # ARABIC LETTER HAMZA
+0674 ; [.22FD.0020.0004] # ARABIC LETTER HIGH HAMZA
+FE80 ; [.22FD.0020.001A] # ARABIC LETTER HAMZA ISOLATED FORM
+06FD ; [.22FD.0020.0004][.0000.0111.0004] # ARABIC SIGN SINDHI AMPERSAND
+0622 ; [.22FE.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
+0627 0653 ; [.22FE.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
+FE82 ; [.22FE.0020.0019] # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+FE81 ; [.22FE.0020.001A] # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+0623 ; [.22FF.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0627 0654 ; [.22FF.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+FE84 ; [.22FF.0020.0019] # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+FE83 ; [.22FF.0020.001A] # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+0672 ; [.2300.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
+0671 ; [.2301.0020.0002] # ARABIC LETTER ALEF WASLA
+FB51 ; [.2301.0020.0019] # ARABIC LETTER ALEF WASLA FINAL FORM
+FB50 ; [.2301.0020.001A] # ARABIC LETTER ALEF WASLA ISOLATED FORM
+0624 ; [.2302.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
+0648 0654 ; [.2302.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
+FE86 ; [.2302.0020.0019] # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+FE85 ; [.2302.0020.001A] # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+0625 ; [.2303.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
+0627 0655 ; [.2303.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
+FE88 ; [.2303.0020.0019] # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+FE87 ; [.2303.0020.001A] # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
+0673 ; [.2304.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
+0773 ; [.2305.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
+0774 ; [.2306.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+0626 ; [.2307.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
+064A 0654 ; [.2307.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
+FE8B ; [.2307.0020.0017] # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+FE8C ; [.2307.0020.0018] # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FE8A ; [.2307.0020.0019] # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+FE89 ; [.2307.0020.001A] # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+FBEB ; [.2307.0020.0019][.230B.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+FBEA ; [.2307.0020.001A][.230B.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
+FC97 ; [.2307.0020.0017][.2325.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC00 ; [.2307.0020.001A][.2325.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC98 ; [.2307.0020.0017][.232C.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC01 ; [.2307.0020.001A][.232C.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC99 ; [.2307.0020.0017][.232D.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC64 ; [.2307.0020.0019][.2346.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65 ; [.2307.0020.0019][.2347.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC9A ; [.2307.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FCDF ; [.2307.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+FC66 ; [.2307.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC02 ; [.2307.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC67 ; [.2307.0020.0019][.23A7.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC9B ; [.2307.0020.0017][.23B1.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FCE0 ; [.2307.0020.0018][.23B1.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FBED ; [.2307.0020.0019][.23B6.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+FBEC ; [.2307.0020.001A][.23B6.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
+FBEF ; [.2307.0020.0019][.23B7.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+FBEE ; [.2307.0020.001A][.23B7.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
+FBF3 ; [.2307.0020.0019][.23BA.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+FBF2 ; [.2307.0020.001A][.23BA.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
+FBF1 ; [.2307.0020.0019][.23BB.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+FBF0 ; [.2307.0020.001A][.23BB.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
+FBF5 ; [.2307.0020.0019][.23BC.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+FBF4 ; [.2307.0020.001A][.23BC.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
+FBFB ; [.2307.0020.0017][.23C5.0020.0017] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFA ; [.2307.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC68 ; [.2307.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FBF9 ; [.2307.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC03 ; [.2307.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC69 ; [.2307.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC04 ; [.2307.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FBF8 ; [.2307.0020.0017][.23CA.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+FBF7 ; [.2307.0020.0019][.23CA.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
+FBF6 ; [.2307.0020.001A][.23CA.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
+08A8 ; [.2308.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE
+08A9 ; [.2309.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
+08AC ; [.230A.0020.0002] # ARABIC LETTER ROHINGYA YEH
+0627 ; [.230B.0020.0002] # ARABIC LETTER ALEF
+08AD ; [.230B.0020.0004] # ARABIC LETTER LOW ALEF
+1EE00 ; [.230B.0020.0005] # ARABIC MATHEMATICAL ALEF
+1EE80 ; [.230B.0020.0005] # ARABIC MATHEMATICAL LOOPED ALEF
+FE8E ; [.230B.0020.0019] # ARABIC LETTER ALEF FINAL FORM
+FE8D ; [.230B.0020.001A] # ARABIC LETTER ALEF ISOLATED FORM
+FD3C ; [.230B.0020.0019][.0000.006D.0019] # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
+FD3D ; [.230B.0020.001A][.0000.006D.001A] # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+0675 ; [.230B.0020.0004][.22FD.0020.0004] # ARABIC LETTER HIGH HAMZA ALEF
+FDF3 ; [.230B.0020.001A][.2387.0020.001A][.230D.0020.001A][.2346.0020.001A] # ARABIC LIGATURE AKBAR ISOLATED FORM
+FDF2 ; [.230B.0020.001A][.239C.0020.001A][.239C.0020.001A][.23B1.0020.001A] # ARABIC LIGATURE ALLAH ISOLATED FORM
+066E ; [.230C.0020.0002] # ARABIC LETTER DOTLESS BEH
+1EE1C ; [.230C.0020.0005] # ARABIC MATHEMATICAL DOTLESS BEH
+1EE7C ; [.230C.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+0628 ; [.230D.0020.0002] # ARABIC LETTER BEH
+1EE01 ; [.230D.0020.0005] # ARABIC MATHEMATICAL BEH
+1EE21 ; [.230D.0020.0005] # ARABIC MATHEMATICAL INITIAL BEH
+1EE61 ; [.230D.0020.0005] # ARABIC MATHEMATICAL STRETCHED BEH
+1EE81 ; [.230D.0020.0005] # ARABIC MATHEMATICAL LOOPED BEH
+1EEA1 ; [.230D.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
+FE91 ; [.230D.0020.0017] # ARABIC LETTER BEH INITIAL FORM
+FE92 ; [.230D.0020.0018] # ARABIC LETTER BEH MEDIAL FORM
+FE90 ; [.230D.0020.0019] # ARABIC LETTER BEH FINAL FORM
+FE8F ; [.230D.0020.001A] # ARABIC LETTER BEH ISOLATED FORM
+FC9C ; [.230D.0020.0017][.2325.0020.0017] # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+FC05 ; [.230D.0020.001A][.2325.0020.001A] # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+FC9D ; [.230D.0020.0017][.232C.0020.0017] # ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+FC06 ; [.230D.0020.001A][.232C.0020.001A] # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+FDC2 ; [.230D.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+FC9E ; [.230D.0020.0017][.232D.0020.0017] # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+FC07 ; [.230D.0020.001A][.232D.0020.001A] # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+FD9E ; [.230D.0020.0019][.232D.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+FC6A ; [.230D.0020.0019][.2346.0020.0019] # ARABIC LIGATURE BEH WITH REH FINAL FORM
+FC6B ; [.230D.0020.0019][.2347.0020.0019] # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+FC9F ; [.230D.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+FCE1 ; [.230D.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+FC6C ; [.230D.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+FC08 ; [.230D.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+FC6D ; [.230D.0020.0019][.23A7.0020.0019] # ARABIC LIGATURE BEH WITH NOON FINAL FORM
+FCA0 ; [.230D.0020.0017][.23B1.0020.0017] # ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+FCE2 ; [.230D.0020.0018][.23B1.0020.0018] # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+FC6E ; [.230D.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+FC09 ; [.230D.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+FC6F ; [.230D.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE BEH WITH YEH FINAL FORM
+FC0A ; [.230D.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+067B ; [.230E.0020.0002] # ARABIC LETTER BEEH
+FB54 ; [.230E.0020.0017] # ARABIC LETTER BEEH INITIAL FORM
+FB55 ; [.230E.0020.0018] # ARABIC LETTER BEEH MEDIAL FORM
+FB53 ; [.230E.0020.0019] # ARABIC LETTER BEEH FINAL FORM
+FB52 ; [.230E.0020.001A] # ARABIC LETTER BEEH ISOLATED FORM
+067E ; [.230F.0020.0002] # ARABIC LETTER PEH
+FB58 ; [.230F.0020.0017] # ARABIC LETTER PEH INITIAL FORM
+FB59 ; [.230F.0020.0018] # ARABIC LETTER PEH MEDIAL FORM
+FB57 ; [.230F.0020.0019] # ARABIC LETTER PEH FINAL FORM
+FB56 ; [.230F.0020.001A] # ARABIC LETTER PEH ISOLATED FORM
+0680 ; [.2310.0020.0002] # ARABIC LETTER BEHEH
+FB5C ; [.2310.0020.0017] # ARABIC LETTER BEHEH INITIAL FORM
+FB5D ; [.2310.0020.0018] # ARABIC LETTER BEHEH MEDIAL FORM
+FB5B ; [.2310.0020.0019] # ARABIC LETTER BEHEH FINAL FORM
+FB5A ; [.2310.0020.001A] # ARABIC LETTER BEHEH ISOLATED FORM
+0750 ; [.2311.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
+0751 ; [.2312.0020.0002] # ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
+0752 ; [.2313.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
+0753 ; [.2314.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
+0754 ; [.2315.0020.0002] # ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
+0755 ; [.2316.0020.0002] # ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
+08A0 ; [.2317.0020.0002] # ARABIC LETTER BEH WITH SMALL V BELOW
+0756 ; [.2318.0020.0002] # ARABIC LETTER BEH WITH SMALL V
+08A1 ; [.2319.0020.0002] # ARABIC LETTER BEH WITH HAMZA ABOVE
+08B6 ; [.231A.0020.0002] # ARABIC LETTER BEH WITH SMALL MEEM ABOVE
+08B7 ; [.231B.0020.0002] # ARABIC LETTER PEH WITH SMALL MEEM ABOVE
+0629 ; [.231C.0020.0002] # ARABIC LETTER TEH MARBUTA
+FE94 ; [.231C.0020.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
+FE93 ; [.231C.0020.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
+062A ; [.231D.0020.0002] # ARABIC LETTER TEH
+1EE15 ; [.231D.0020.0005] # ARABIC MATHEMATICAL TEH
+1EE35 ; [.231D.0020.0005] # ARABIC MATHEMATICAL INITIAL TEH
+1EE75 ; [.231D.0020.0005] # ARABIC MATHEMATICAL STRETCHED TEH
+1EE95 ; [.231D.0020.0005] # ARABIC MATHEMATICAL LOOPED TEH
+1EEB5 ; [.231D.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
+FE97 ; [.231D.0020.0017] # ARABIC LETTER TEH INITIAL FORM
+FE98 ; [.231D.0020.0018] # ARABIC LETTER TEH MEDIAL FORM
+FE96 ; [.231D.0020.0019] # ARABIC LETTER TEH FINAL FORM
+FE95 ; [.231D.0020.001A] # ARABIC LETTER TEH ISOLATED FORM
+FCA1 ; [.231D.0020.0017][.2325.0020.0017] # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+FC0B ; [.231D.0020.001A][.2325.0020.001A] # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+FD50 ; [.231D.0020.0017][.2325.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+FDA0 ; [.231D.0020.0019][.2325.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9F ; [.231D.0020.0019][.2325.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+FCA2 ; [.231D.0020.0017][.232C.0020.0017] # ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+FC0C ; [.231D.0020.001A][.232C.0020.001A] # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+FD52 ; [.231D.0020.0017][.232C.0020.0017][.2325.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+FD51 ; [.231D.0020.0019][.232C.0020.0019][.2325.0020.0019] # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
+FD53 ; [.231D.0020.0017][.232C.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+FCA3 ; [.231D.0020.0017][.232D.0020.0017] # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+FC0D ; [.231D.0020.001A][.232D.0020.001A] # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+FD54 ; [.231D.0020.0017][.232D.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+FDA2 ; [.231D.0020.0019][.232D.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA1 ; [.231D.0020.0019][.232D.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+FC70 ; [.231D.0020.0019][.2346.0020.0019] # ARABIC LIGATURE TEH WITH REH FINAL FORM
+FC71 ; [.231D.0020.0019][.2347.0020.0019] # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+FCA4 ; [.231D.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+FCE3 ; [.231D.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+FC72 ; [.231D.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+FC0E ; [.231D.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+FD55 ; [.231D.0020.0017][.23A3.0020.0017][.2325.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56 ; [.231D.0020.0017][.23A3.0020.0017][.232C.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+FD57 ; [.231D.0020.0017][.23A3.0020.0017][.232D.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+FDA4 ; [.231D.0020.0019][.23A3.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA3 ; [.231D.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+FC73 ; [.231D.0020.0019][.23A7.0020.0019] # ARABIC LIGATURE TEH WITH NOON FINAL FORM
+FCA5 ; [.231D.0020.0017][.23B1.0020.0017] # ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+FCE4 ; [.231D.0020.0018][.23B1.0020.0018] # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+FC74 ; [.231D.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+FC0F ; [.231D.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+FC75 ; [.231D.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE TEH WITH YEH FINAL FORM
+FC10 ; [.231D.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+062B ; [.231E.0020.0002] # ARABIC LETTER THEH
+1EE16 ; [.231E.0020.0005] # ARABIC MATHEMATICAL THEH
+1EE36 ; [.231E.0020.0005] # ARABIC MATHEMATICAL INITIAL THEH
+1EE76 ; [.231E.0020.0005] # ARABIC MATHEMATICAL STRETCHED THEH
+1EE96 ; [.231E.0020.0005] # ARABIC MATHEMATICAL LOOPED THEH
+1EEB6 ; [.231E.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
+FE9B ; [.231E.0020.0017] # ARABIC LETTER THEH INITIAL FORM
+FE9C ; [.231E.0020.0018] # ARABIC LETTER THEH MEDIAL FORM
+FE9A ; [.231E.0020.0019] # ARABIC LETTER THEH FINAL FORM
+FE99 ; [.231E.0020.001A] # ARABIC LETTER THEH ISOLATED FORM
+FC11 ; [.231E.0020.001A][.2325.0020.001A] # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+FC76 ; [.231E.0020.0019][.2346.0020.0019] # ARABIC LIGATURE THEH WITH REH FINAL FORM
+FC77 ; [.231E.0020.0019][.2347.0020.0019] # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+FCA6 ; [.231E.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+FCE5 ; [.231E.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+FC78 ; [.231E.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+FC12 ; [.231E.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+FC79 ; [.231E.0020.0019][.23A7.0020.0019] # ARABIC LIGATURE THEH WITH NOON FINAL FORM
+FCE6 ; [.231E.0020.0018][.23B1.0020.0018] # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+FC7A ; [.231E.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+FC13 ; [.231E.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+FC7B ; [.231E.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE THEH WITH YEH FINAL FORM
+FC14 ; [.231E.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+0679 ; [.231F.0020.0002] # ARABIC LETTER TTEH
+FB68 ; [.231F.0020.0017] # ARABIC LETTER TTEH INITIAL FORM
+FB69 ; [.231F.0020.0018] # ARABIC LETTER TTEH MEDIAL FORM
+FB67 ; [.231F.0020.0019] # ARABIC LETTER TTEH FINAL FORM
+FB66 ; [.231F.0020.001A] # ARABIC LETTER TTEH ISOLATED FORM
+067A ; [.2320.0020.0002] # ARABIC LETTER TTEHEH
+FB60 ; [.2320.0020.0017] # ARABIC LETTER TTEHEH INITIAL FORM
+FB61 ; [.2320.0020.0018] # ARABIC LETTER TTEHEH MEDIAL FORM
+FB5F ; [.2320.0020.0019] # ARABIC LETTER TTEHEH FINAL FORM
+FB5E ; [.2320.0020.001A] # ARABIC LETTER TTEHEH ISOLATED FORM
+067C ; [.2321.0020.0002] # ARABIC LETTER TEH WITH RING
+067D ; [.2322.0020.0002] # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
+067F ; [.2323.0020.0002] # ARABIC LETTER TEHEH
+FB64 ; [.2323.0020.0017] # ARABIC LETTER TEHEH INITIAL FORM
+FB65 ; [.2323.0020.0018] # ARABIC LETTER TEHEH MEDIAL FORM
+FB63 ; [.2323.0020.0019] # ARABIC LETTER TEHEH FINAL FORM
+FB62 ; [.2323.0020.001A] # ARABIC LETTER TEHEH ISOLATED FORM
+08B8 ; [.2324.0020.0002] # ARABIC LETTER TEH WITH SMALL TEH ABOVE
+062C ; [.2325.0020.0002] # ARABIC LETTER JEEM
+1EE02 ; [.2325.0020.0005] # ARABIC MATHEMATICAL JEEM
+1EE22 ; [.2325.0020.0005] # ARABIC MATHEMATICAL INITIAL JEEM
+1EE42 ; [.2325.0020.0005] # ARABIC MATHEMATICAL TAILED JEEM
+1EE62 ; [.2325.0020.0005] # ARABIC MATHEMATICAL STRETCHED JEEM
+1EE82 ; [.2325.0020.0005] # ARABIC MATHEMATICAL LOOPED JEEM
+1EEA2 ; [.2325.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
+FE9F ; [.2325.0020.0017] # ARABIC LETTER JEEM INITIAL FORM
+FEA0 ; [.2325.0020.0018] # ARABIC LETTER JEEM MEDIAL FORM
+FE9E ; [.2325.0020.0019] # ARABIC LETTER JEEM FINAL FORM
+FE9D ; [.2325.0020.001A] # ARABIC LETTER JEEM ISOLATED FORM
+FCA7 ; [.2325.0020.0017][.232C.0020.0017] # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+FC15 ; [.2325.0020.001A][.232C.0020.001A] # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+FDA6 ; [.2325.0020.0019][.232C.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDBE ; [.2325.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+FDFB ; [.2325.0020.001A][.239C.0020.001A][*0209.0020.001A][.2325.0020.001A][.239C.0020.001A][.230B.0020.001A][.239C.0020.001A][.23B1.0020.001A] # ARABIC LIGATURE JALLAJALALOUHOU
+FCA8 ; [.2325.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+FC16 ; [.2325.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+FD59 ; [.2325.0020.0017][.23A3.0020.0017][.232C.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+FD58 ; [.2325.0020.0019][.23A3.0020.0019][.232C.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
+FDA7 ; [.2325.0020.0019][.23A3.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5 ; [.2325.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+FD1D ; [.2325.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+FD01 ; [.2325.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD1E ; [.2325.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+FD02 ; [.2325.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+0683 ; [.2326.0020.0002] # ARABIC LETTER NYEH
+FB78 ; [.2326.0020.0017] # ARABIC LETTER NYEH INITIAL FORM
+FB79 ; [.2326.0020.0018] # ARABIC LETTER NYEH MEDIAL FORM
+FB77 ; [.2326.0020.0019] # ARABIC LETTER NYEH FINAL FORM
+FB76 ; [.2326.0020.001A] # ARABIC LETTER NYEH ISOLATED FORM
+0684 ; [.2327.0020.0002] # ARABIC LETTER DYEH
+FB74 ; [.2327.0020.0017] # ARABIC LETTER DYEH INITIAL FORM
+FB75 ; [.2327.0020.0018] # ARABIC LETTER DYEH MEDIAL FORM
+FB73 ; [.2327.0020.0019] # ARABIC LETTER DYEH FINAL FORM
+FB72 ; [.2327.0020.001A] # ARABIC LETTER DYEH ISOLATED FORM
+0686 ; [.2328.0020.0002] # ARABIC LETTER TCHEH
+FB7C ; [.2328.0020.0017] # ARABIC LETTER TCHEH INITIAL FORM
+FB7D ; [.2328.0020.0018] # ARABIC LETTER TCHEH MEDIAL FORM
+FB7B ; [.2328.0020.0019] # ARABIC LETTER TCHEH FINAL FORM
+FB7A ; [.2328.0020.001A] # ARABIC LETTER TCHEH ISOLATED FORM
+06BF ; [.2329.0020.0002] # ARABIC LETTER TCHEH WITH DOT ABOVE
+0687 ; [.232A.0020.0002] # ARABIC LETTER TCHEHEH
+FB80 ; [.232A.0020.0017] # ARABIC LETTER TCHEHEH INITIAL FORM
+FB81 ; [.232A.0020.0018] # ARABIC LETTER TCHEHEH MEDIAL FORM
+FB7F ; [.232A.0020.0019] # ARABIC LETTER TCHEHEH FINAL FORM
+FB7E ; [.232A.0020.001A] # ARABIC LETTER TCHEHEH ISOLATED FORM
+08A2 ; [.232B.0020.0002] # ARABIC LETTER JEEM WITH TWO DOTS ABOVE
+062D ; [.232C.0020.0002] # ARABIC LETTER HAH
+1EE07 ; [.232C.0020.0005] # ARABIC MATHEMATICAL HAH
+1EE27 ; [.232C.0020.0005] # ARABIC MATHEMATICAL INITIAL HAH
+1EE47 ; [.232C.0020.0005] # ARABIC MATHEMATICAL TAILED HAH
+1EE67 ; [.232C.0020.0005] # ARABIC MATHEMATICAL STRETCHED HAH
+1EE87 ; [.232C.0020.0005] # ARABIC MATHEMATICAL LOOPED HAH
+1EEA7 ; [.232C.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
+FEA3 ; [.232C.0020.0017] # ARABIC LETTER HAH INITIAL FORM
+FEA4 ; [.232C.0020.0018] # ARABIC LETTER HAH MEDIAL FORM
+FEA2 ; [.232C.0020.0019] # ARABIC LETTER HAH FINAL FORM
+FEA1 ; [.232C.0020.001A] # ARABIC LETTER HAH ISOLATED FORM
+FCA9 ; [.232C.0020.0017][.2325.0020.0017] # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+FC17 ; [.232C.0020.001A][.2325.0020.001A] # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+FDBF ; [.232C.0020.0019][.2325.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+FCAA ; [.232C.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+FC18 ; [.232C.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+FD5B ; [.232C.0020.0019][.23A3.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5A ; [.232C.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+FD1B ; [.232C.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+FCFF ; [.232C.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+FD1C ; [.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE HAH WITH YEH FINAL FORM
+FD00 ; [.232C.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+062E ; [.232D.0020.0002] # ARABIC LETTER KHAH
+1EE17 ; [.232D.0020.0005] # ARABIC MATHEMATICAL KHAH
+1EE37 ; [.232D.0020.0005] # ARABIC MATHEMATICAL INITIAL KHAH
+1EE57 ; [.232D.0020.0005] # ARABIC MATHEMATICAL TAILED KHAH
+1EE77 ; [.232D.0020.0005] # ARABIC MATHEMATICAL STRETCHED KHAH
+1EE97 ; [.232D.0020.0005] # ARABIC MATHEMATICAL LOOPED KHAH
+1EEB7 ; [.232D.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
+FEA7 ; [.232D.0020.0017] # ARABIC LETTER KHAH INITIAL FORM
+FEA8 ; [.232D.0020.0018] # ARABIC LETTER KHAH MEDIAL FORM
+FEA6 ; [.232D.0020.0019] # ARABIC LETTER KHAH FINAL FORM
+FEA5 ; [.232D.0020.001A] # ARABIC LETTER KHAH ISOLATED FORM
+FCAB ; [.232D.0020.0017][.2325.0020.0017] # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+FC19 ; [.232D.0020.001A][.2325.0020.001A] # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+FC1A ; [.232D.0020.001A][.232C.0020.001A] # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+FCAC ; [.232D.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+FC1B ; [.232D.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+FD1F ; [.232D.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+FD03 ; [.232D.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD20 ; [.232D.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+FD04 ; [.232D.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+0681 ; [.232E.0020.0002] # ARABIC LETTER HAH WITH HAMZA ABOVE
+0682 ; [.232F.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
+0685 ; [.2330.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS ABOVE
+0757 ; [.2331.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS ABOVE
+0758 ; [.2332.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
+076E ; [.2333.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW
+076F ; [.2334.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
+0772 ; [.2335.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
+077C ; [.2336.0020.0002] # ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
+062F ; [.2337.0020.0002] # ARABIC LETTER DAL
+1EE03 ; [.2337.0020.0005] # ARABIC MATHEMATICAL DAL
+1EE83 ; [.2337.0020.0005] # ARABIC MATHEMATICAL LOOPED DAL
+1EEA3 ; [.2337.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+FEAA ; [.2337.0020.0019] # ARABIC LETTER DAL FINAL FORM
+FEA9 ; [.2337.0020.001A] # ARABIC LETTER DAL ISOLATED FORM
+0630 ; [.2338.0020.0002] # ARABIC LETTER THAL
+1EE18 ; [.2338.0020.0005] # ARABIC MATHEMATICAL THAL
+1EE98 ; [.2338.0020.0005] # ARABIC MATHEMATICAL LOOPED THAL
+1EEB8 ; [.2338.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
+FEAC ; [.2338.0020.0019] # ARABIC LETTER THAL FINAL FORM
+FEAB ; [.2338.0020.001A] # ARABIC LETTER THAL ISOLATED FORM
+FC5B ; [.2338.0020.001A][.0000.0098.001A] # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+0688 ; [.2339.0020.0002] # ARABIC LETTER DDAL
+FB89 ; [.2339.0020.0019] # ARABIC LETTER DDAL FINAL FORM
+FB88 ; [.2339.0020.001A] # ARABIC LETTER DDAL ISOLATED FORM
+0689 ; [.233A.0020.0002] # ARABIC LETTER DAL WITH RING
+068A ; [.233B.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW
+068B ; [.233C.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
+068C ; [.233D.0020.0002] # ARABIC LETTER DAHAL
+FB85 ; [.233D.0020.0019] # ARABIC LETTER DAHAL FINAL FORM
+FB84 ; [.233D.0020.001A] # ARABIC LETTER DAHAL ISOLATED FORM
+068D ; [.233E.0020.0002] # ARABIC LETTER DDAHAL
+FB83 ; [.233E.0020.0019] # ARABIC LETTER DDAHAL FINAL FORM
+FB82 ; [.233E.0020.001A] # ARABIC LETTER DDAHAL ISOLATED FORM
+08AE ; [.233F.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS BELOW
+068E ; [.2340.0020.0002] # ARABIC LETTER DUL
+FB87 ; [.2340.0020.0019] # ARABIC LETTER DUL FINAL FORM
+FB86 ; [.2340.0020.001A] # ARABIC LETTER DUL ISOLATED FORM
+068F ; [.2341.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
+0690 ; [.2342.0020.0002] # ARABIC LETTER DAL WITH FOUR DOTS ABOVE
+06EE ; [.2343.0020.0002] # ARABIC LETTER DAL WITH INVERTED V
+0759 ; [.2344.0020.0002] # ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
+075A ; [.2345.0020.0002] # ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
+0631 ; [.2346.0020.0002] # ARABIC LETTER REH
+1EE13 ; [.2346.0020.0005] # ARABIC MATHEMATICAL REH
+1EE93 ; [.2346.0020.0005] # ARABIC MATHEMATICAL LOOPED REH
+1EEB3 ; [.2346.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK REH
+FEAE ; [.2346.0020.0019] # ARABIC LETTER REH FINAL FORM
+FEAD ; [.2346.0020.001A] # ARABIC LETTER REH ISOLATED FORM
+FC5C ; [.2346.0020.001A][.0000.0098.001A] # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FDF6 ; [.2346.0020.001A][.2359.0020.001A][.23B7.0020.001A][.239C.0020.001A] # ARABIC LIGATURE RASOUL ISOLATED FORM
+FDFC ; [.2346.0020.001A][.23C7.0020.001A][.230B.0020.001A][.239C.0020.001A] # RIAL SIGN
+0632 ; [.2347.0020.0002] # ARABIC LETTER ZAIN
+1EE06 ; [.2347.0020.0005] # ARABIC MATHEMATICAL ZAIN
+1EE86 ; [.2347.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAIN
+1EEA6 ; [.2347.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
+FEB0 ; [.2347.0020.0019] # ARABIC LETTER ZAIN FINAL FORM
+FEAF ; [.2347.0020.001A] # ARABIC LETTER ZAIN ISOLATED FORM
+0691 ; [.2348.0020.0002] # ARABIC LETTER RREH
+FB8D ; [.2348.0020.0019] # ARABIC LETTER RREH FINAL FORM
+FB8C ; [.2348.0020.001A] # ARABIC LETTER RREH ISOLATED FORM
+0692 ; [.2349.0020.0002] # ARABIC LETTER REH WITH SMALL V
+0693 ; [.234A.0020.0002] # ARABIC LETTER REH WITH RING
+0694 ; [.234B.0020.0002] # ARABIC LETTER REH WITH DOT BELOW
+0695 ; [.234C.0020.0002] # ARABIC LETTER REH WITH SMALL V BELOW
+0696 ; [.234D.0020.0002] # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
+0697 ; [.234E.0020.0002] # ARABIC LETTER REH WITH TWO DOTS ABOVE
+0698 ; [.234F.0020.0002] # ARABIC LETTER JEH
+FB8B ; [.234F.0020.0019] # ARABIC LETTER JEH FINAL FORM
+FB8A ; [.234F.0020.001A] # ARABIC LETTER JEH ISOLATED FORM
+0699 ; [.2350.0020.0002] # ARABIC LETTER REH WITH FOUR DOTS ABOVE
+06EF ; [.2351.0020.0002] # ARABIC LETTER REH WITH INVERTED V
+075B ; [.2352.0020.0002] # ARABIC LETTER REH WITH STROKE
+076B ; [.2353.0020.0002] # ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
+076C ; [.2354.0020.0002] # ARABIC LETTER REH WITH HAMZA ABOVE
+0771 ; [.2355.0020.0002] # ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
+08AA ; [.2356.0020.0002] # ARABIC LETTER REH WITH LOOP
+08B2 ; [.2357.0020.0002] # ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08B9 ; [.2358.0020.0002] # ARABIC LETTER REH WITH SMALL NOON ABOVE
+0633 ; [.2359.0020.0002] # ARABIC LETTER SEEN
+1EE0E ; [.2359.0020.0005] # ARABIC MATHEMATICAL SEEN
+1EE2E ; [.2359.0020.0005] # ARABIC MATHEMATICAL INITIAL SEEN
+1EE4E ; [.2359.0020.0005] # ARABIC MATHEMATICAL TAILED SEEN
+1EE6E ; [.2359.0020.0005] # ARABIC MATHEMATICAL STRETCHED SEEN
+1EE8E ; [.2359.0020.0005] # ARABIC MATHEMATICAL LOOPED SEEN
+1EEAE ; [.2359.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
+FEB3 ; [.2359.0020.0017] # ARABIC LETTER SEEN INITIAL FORM
+FEB4 ; [.2359.0020.0018] # ARABIC LETTER SEEN MEDIAL FORM
+FEB2 ; [.2359.0020.0019] # ARABIC LETTER SEEN FINAL FORM
+FEB1 ; [.2359.0020.001A] # ARABIC LETTER SEEN ISOLATED FORM
+FCAD ; [.2359.0020.0017][.2325.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+FD34 ; [.2359.0020.0018][.2325.0020.0018] # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+FC1C ; [.2359.0020.001A][.2325.0020.001A] # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+FD5D ; [.2359.0020.0017][.2325.0020.0017][.232C.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E ; [.2359.0020.0019][.2325.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FCAE ; [.2359.0020.0017][.232C.0020.0017] # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+FD35 ; [.2359.0020.0018][.232C.0020.0018] # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+FC1D ; [.2359.0020.001A][.232C.0020.001A] # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+FD5C ; [.2359.0020.0017][.232C.0020.0017][.2325.0020.0017] # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+FCAF ; [.2359.0020.0017][.232D.0020.0017] # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+FD36 ; [.2359.0020.0018][.232D.0020.0018] # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+FC1E ; [.2359.0020.001A][.232D.0020.001A] # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+FDA8 ; [.2359.0020.0019][.232D.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDC6 ; [.2359.0020.0019][.232D.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+FD2A ; [.2359.0020.0019][.2346.0020.0019] # ARABIC LIGATURE SEEN WITH REH FINAL FORM
+FD0E ; [.2359.0020.001A][.2346.0020.001A] # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+FCB0 ; [.2359.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+FCE7 ; [.2359.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+FC1F ; [.2359.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+FD61 ; [.2359.0020.0017][.23A3.0020.0017][.2325.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD60 ; [.2359.0020.0017][.23A3.0020.0017][.232C.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+FD5F ; [.2359.0020.0019][.23A3.0020.0019][.232C.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
+FD63 ; [.2359.0020.0017][.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+FD62 ; [.2359.0020.0019][.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
+FD31 ; [.2359.0020.0017][.23B1.0020.0017] # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+FCE8 ; [.2359.0020.0018][.23B1.0020.0018] # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+FD17 ; [.2359.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+FCFB ; [.2359.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+FD18 ; [.2359.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+FCFC ; [.2359.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+0634 ; [.235A.0020.0002] # ARABIC LETTER SHEEN
+1EE14 ; [.235A.0020.0005] # ARABIC MATHEMATICAL SHEEN
+1EE34 ; [.235A.0020.0005] # ARABIC MATHEMATICAL INITIAL SHEEN
+1EE54 ; [.235A.0020.0005] # ARABIC MATHEMATICAL TAILED SHEEN
+1EE74 ; [.235A.0020.0005] # ARABIC MATHEMATICAL STRETCHED SHEEN
+1EE94 ; [.235A.0020.0005] # ARABIC MATHEMATICAL LOOPED SHEEN
+1EEB4 ; [.235A.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
+FEB7 ; [.235A.0020.0017] # ARABIC LETTER SHEEN INITIAL FORM
+FEB8 ; [.235A.0020.0018] # ARABIC LETTER SHEEN MEDIAL FORM
+FEB6 ; [.235A.0020.0019] # ARABIC LETTER SHEEN FINAL FORM
+FEB5 ; [.235A.0020.001A] # ARABIC LETTER SHEEN ISOLATED FORM
+FD2D ; [.235A.0020.0017][.2325.0020.0017] # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+FD37 ; [.235A.0020.0018][.2325.0020.0018] # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+FD25 ; [.235A.0020.0019][.2325.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+FD09 ; [.235A.0020.001A][.2325.0020.001A] # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+FD69 ; [.235A.0020.0019][.2325.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+FD2E ; [.235A.0020.0017][.232C.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+FD38 ; [.235A.0020.0018][.232C.0020.0018] # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+FD26 ; [.235A.0020.0019][.232C.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+FD0A ; [.235A.0020.001A][.232C.0020.001A] # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+FD68 ; [.235A.0020.0017][.232C.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+FD67 ; [.235A.0020.0019][.232C.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
+FDAA ; [.235A.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+FD2F ; [.235A.0020.0017][.232D.0020.0017] # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+FD39 ; [.235A.0020.0018][.232D.0020.0018] # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+FD27 ; [.235A.0020.0019][.232D.0020.0019] # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+FD0B ; [.235A.0020.001A][.232D.0020.001A] # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+FD29 ; [.235A.0020.0019][.2346.0020.0019] # ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+FD0D ; [.235A.0020.001A][.2346.0020.001A] # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+FD30 ; [.235A.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+FCE9 ; [.235A.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+FD28 ; [.235A.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+FD0C ; [.235A.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+FD6B ; [.235A.0020.0017][.23A3.0020.0017][.232D.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+FD6A ; [.235A.0020.0019][.23A3.0020.0019][.232D.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
+FD6D ; [.235A.0020.0017][.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+FD6C ; [.235A.0020.0019][.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
+FD32 ; [.235A.0020.0017][.23B1.0020.0017] # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+FCEA ; [.235A.0020.0018][.23B1.0020.0018] # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+FD19 ; [.235A.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+FCFD ; [.235A.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FD1A ; [.235A.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+FCFE ; [.235A.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+069A ; [.235B.0020.0002] # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
+069B ; [.235C.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW
+069C ; [.235D.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
+06FA ; [.235E.0020.0002] # ARABIC LETTER SHEEN WITH DOT BELOW
+075C ; [.235F.0020.0002] # ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
+076D ; [.2360.0020.0002] # ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
+0770 ; [.2361.0020.0002] # ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
+077D ; [.2362.0020.0002] # ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE
+077E ; [.2363.0020.0002] # ARABIC LETTER SEEN WITH INVERTED V
+0635 ; [.2364.0020.0002] # ARABIC LETTER SAD
+1EE11 ; [.2364.0020.0005] # ARABIC MATHEMATICAL SAD
+1EE31 ; [.2364.0020.0005] # ARABIC MATHEMATICAL INITIAL SAD
+1EE51 ; [.2364.0020.0005] # ARABIC MATHEMATICAL TAILED SAD
+1EE71 ; [.2364.0020.0005] # ARABIC MATHEMATICAL STRETCHED SAD
+1EE91 ; [.2364.0020.0005] # ARABIC MATHEMATICAL LOOPED SAD
+1EEB1 ; [.2364.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
+FEBB ; [.2364.0020.0017] # ARABIC LETTER SAD INITIAL FORM
+FEBC ; [.2364.0020.0018] # ARABIC LETTER SAD MEDIAL FORM
+FEBA ; [.2364.0020.0019] # ARABIC LETTER SAD FINAL FORM
+FEB9 ; [.2364.0020.001A] # ARABIC LETTER SAD ISOLATED FORM
+FCB1 ; [.2364.0020.0017][.232C.0020.0017] # ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+FC20 ; [.2364.0020.001A][.232C.0020.001A] # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+FD65 ; [.2364.0020.0017][.232C.0020.0017][.232C.0020.0017] # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+FD64 ; [.2364.0020.0019][.232C.0020.0019][.232C.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
+FDA9 ; [.2364.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+FCB2 ; [.2364.0020.0017][.232D.0020.0017] # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+FD2B ; [.2364.0020.0019][.2346.0020.0019] # ARABIC LIGATURE SAD WITH REH FINAL FORM
+FD0F ; [.2364.0020.001A][.2346.0020.001A] # ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+FDF5 ; [.2364.0020.001A][.239C.0020.001A][.236E.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE SALAM ISOLATED FORM
+FDF9 ; [.2364.0020.001A][.239C.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE SALLA ISOLATED FORM
+FDFA ; [.2364.0020.001A][.239C.0020.001A][.23C5.0020.001A][*0209.0020.001A][.230B.0020.001A][.239C.0020.001A][.239C.0020.001A][.23B1.0020.001A][*0209.0020.001A][.236E.0020.001A][.239C.0020.001A][.23C6.0020.001A][.23B1.0020.001A][*0209.0020.001A][.23B7.0020.001A][.2359.0020.001A][.239C.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+FDF0 ; [.2364.0020.001A][.239C.0020.001A][.23D4.0020.001A] # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FCB3 ; [.2364.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+FC21 ; [.2364.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+FDC5 ; [.2364.0020.0017][.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+FD66 ; [.2364.0020.0019][.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+FD21 ; [.2364.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+FD05 ; [.2364.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+FD22 ; [.2364.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE SAD WITH YEH FINAL FORM
+FD06 ; [.2364.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+0636 ; [.2365.0020.0002] # ARABIC LETTER DAD
+1EE19 ; [.2365.0020.0005] # ARABIC MATHEMATICAL DAD
+1EE39 ; [.2365.0020.0005] # ARABIC MATHEMATICAL INITIAL DAD
+1EE59 ; [.2365.0020.0005] # ARABIC MATHEMATICAL TAILED DAD
+1EE79 ; [.2365.0020.0005] # ARABIC MATHEMATICAL STRETCHED DAD
+1EE99 ; [.2365.0020.0005] # ARABIC MATHEMATICAL LOOPED DAD
+1EEB9 ; [.2365.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
+FEBF ; [.2365.0020.0017] # ARABIC LETTER DAD INITIAL FORM
+FEC0 ; [.2365.0020.0018] # ARABIC LETTER DAD MEDIAL FORM
+FEBE ; [.2365.0020.0019] # ARABIC LETTER DAD FINAL FORM
+FEBD ; [.2365.0020.001A] # ARABIC LETTER DAD ISOLATED FORM
+FCB4 ; [.2365.0020.0017][.2325.0020.0017] # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+FC22 ; [.2365.0020.001A][.2325.0020.001A] # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+FCB5 ; [.2365.0020.0017][.232C.0020.0017] # ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+FC23 ; [.2365.0020.001A][.232C.0020.001A] # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+FD6E ; [.2365.0020.0019][.232C.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDAB ; [.2365.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+FCB6 ; [.2365.0020.0017][.232D.0020.0017] # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+FC24 ; [.2365.0020.001A][.232D.0020.001A] # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+FD70 ; [.2365.0020.0017][.232D.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+FD6F ; [.2365.0020.0019][.232D.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
+FD2C ; [.2365.0020.0019][.2346.0020.0019] # ARABIC LIGATURE DAD WITH REH FINAL FORM
+FD10 ; [.2365.0020.001A][.2346.0020.001A] # ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+FCB7 ; [.2365.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+FC25 ; [.2365.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+FD23 ; [.2365.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+FD07 ; [.2365.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+FD24 ; [.2365.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE DAD WITH YEH FINAL FORM
+FD08 ; [.2365.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+069D ; [.2366.0020.0002] # ARABIC LETTER SAD WITH TWO DOTS BELOW
+08AF ; [.2367.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS BELOW
+069E ; [.2368.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS ABOVE
+06FB ; [.2369.0020.0002] # ARABIC LETTER DAD WITH DOT BELOW
+0637 ; [.236A.0020.0002] # ARABIC LETTER TAH
+1EE08 ; [.236A.0020.0005] # ARABIC MATHEMATICAL TAH
+1EE68 ; [.236A.0020.0005] # ARABIC MATHEMATICAL STRETCHED TAH
+1EE88 ; [.236A.0020.0005] # ARABIC MATHEMATICAL LOOPED TAH
+1EEA8 ; [.236A.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
+FEC3 ; [.236A.0020.0017] # ARABIC LETTER TAH INITIAL FORM
+FEC4 ; [.236A.0020.0018] # ARABIC LETTER TAH MEDIAL FORM
+FEC2 ; [.236A.0020.0019] # ARABIC LETTER TAH FINAL FORM
+FEC1 ; [.236A.0020.001A] # ARABIC LETTER TAH ISOLATED FORM
+FCB8 ; [.236A.0020.0017][.232C.0020.0017] # ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+FC26 ; [.236A.0020.001A][.232C.0020.001A] # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+FD33 ; [.236A.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+FD3A ; [.236A.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+FC27 ; [.236A.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+FD72 ; [.236A.0020.0017][.23A3.0020.0017][.232C.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+FD71 ; [.236A.0020.0019][.23A3.0020.0019][.232C.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
+FD73 ; [.236A.0020.0017][.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74 ; [.236A.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+FD11 ; [.236A.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+FCF5 ; [.236A.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+FD12 ; [.236A.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE TAH WITH YEH FINAL FORM
+FCF6 ; [.236A.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+0638 ; [.236B.0020.0002] # ARABIC LETTER ZAH
+1EE1A ; [.236B.0020.0005] # ARABIC MATHEMATICAL ZAH
+1EE7A ; [.236B.0020.0005] # ARABIC MATHEMATICAL STRETCHED ZAH
+1EE9A ; [.236B.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAH
+1EEBA ; [.236B.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
+FEC7 ; [.236B.0020.0017] # ARABIC LETTER ZAH INITIAL FORM
+FEC8 ; [.236B.0020.0018] # ARABIC LETTER ZAH MEDIAL FORM
+FEC6 ; [.236B.0020.0019] # ARABIC LETTER ZAH FINAL FORM
+FEC5 ; [.236B.0020.001A] # ARABIC LETTER ZAH ISOLATED FORM
+FCB9 ; [.236B.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+FD3B ; [.236B.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+FC28 ; [.236B.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+069F ; [.236C.0020.0002] # ARABIC LETTER TAH WITH THREE DOTS ABOVE
+08A3 ; [.236D.0020.0002] # ARABIC LETTER TAH WITH TWO DOTS ABOVE
+0639 ; [.236E.0020.0002] # ARABIC LETTER AIN
+1EE0F ; [.236E.0020.0005] # ARABIC MATHEMATICAL AIN
+1EE2F ; [.236E.0020.0005] # ARABIC MATHEMATICAL INITIAL AIN
+1EE4F ; [.236E.0020.0005] # ARABIC MATHEMATICAL TAILED AIN
+1EE6F ; [.236E.0020.0005] # ARABIC MATHEMATICAL STRETCHED AIN
+1EE8F ; [.236E.0020.0005] # ARABIC MATHEMATICAL LOOPED AIN
+1EEAF ; [.236E.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
+FECB ; [.236E.0020.0017] # ARABIC LETTER AIN INITIAL FORM
+FECC ; [.236E.0020.0018] # ARABIC LETTER AIN MEDIAL FORM
+FECA ; [.236E.0020.0019] # ARABIC LETTER AIN FINAL FORM
+FEC9 ; [.236E.0020.001A] # ARABIC LETTER AIN ISOLATED FORM
+FCBA ; [.236E.0020.0017][.2325.0020.0017] # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+FC29 ; [.236E.0020.001A][.2325.0020.001A] # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+FDC4 ; [.236E.0020.0017][.2325.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+FD75 ; [.236E.0020.0019][.2325.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+FDF7 ; [.236E.0020.001A][.239C.0020.001A][.23C6.0020.001A][.23B1.0020.001A] # ARABIC LIGATURE ALAYHE ISOLATED FORM
+FCBB ; [.236E.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+FC2A ; [.236E.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+FD77 ; [.236E.0020.0017][.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+FD76 ; [.236E.0020.0019][.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
+FD78 ; [.236E.0020.0019][.23A3.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDB6 ; [.236E.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+FD13 ; [.236E.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+FCF7 ; [.236E.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+FD14 ; [.236E.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE AIN WITH YEH FINAL FORM
+FCF8 ; [.236E.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+063A ; [.236F.0020.0002] # ARABIC LETTER GHAIN
+1EE1B ; [.236F.0020.0005] # ARABIC MATHEMATICAL GHAIN
+1EE3B ; [.236F.0020.0005] # ARABIC MATHEMATICAL INITIAL GHAIN
+1EE5B ; [.236F.0020.0005] # ARABIC MATHEMATICAL TAILED GHAIN
+1EE7B ; [.236F.0020.0005] # ARABIC MATHEMATICAL STRETCHED GHAIN
+1EE9B ; [.236F.0020.0005] # ARABIC MATHEMATICAL LOOPED GHAIN
+1EEBB ; [.236F.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+FECF ; [.236F.0020.0017] # ARABIC LETTER GHAIN INITIAL FORM
+FED0 ; [.236F.0020.0018] # ARABIC LETTER GHAIN MEDIAL FORM
+FECE ; [.236F.0020.0019] # ARABIC LETTER GHAIN FINAL FORM
+FECD ; [.236F.0020.001A] # ARABIC LETTER GHAIN ISOLATED FORM
+FCBC ; [.236F.0020.0017][.2325.0020.0017] # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+FC2B ; [.236F.0020.001A][.2325.0020.001A] # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+FCBD ; [.236F.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+FC2C ; [.236F.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+FD79 ; [.236F.0020.0019][.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7B ; [.236F.0020.0019][.23A3.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7A ; [.236F.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+FD15 ; [.236F.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+FCF9 ; [.236F.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FD16 ; [.236F.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+FCFA ; [.236F.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+06A0 ; [.2370.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS ABOVE
+06FC ; [.2371.0020.0002] # ARABIC LETTER GHAIN WITH DOT BELOW
+075D ; [.2372.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS ABOVE
+075E ; [.2373.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
+075F ; [.2374.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
+08B3 ; [.2375.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS BELOW
+0641 ; [.2376.0020.0002] # ARABIC LETTER FEH
+1EE10 ; [.2376.0020.0005] # ARABIC MATHEMATICAL FEH
+1EE30 ; [.2376.0020.0005] # ARABIC MATHEMATICAL INITIAL FEH
+1EE70 ; [.2376.0020.0005] # ARABIC MATHEMATICAL STRETCHED FEH
+1EE90 ; [.2376.0020.0005] # ARABIC MATHEMATICAL LOOPED FEH
+1EEB0 ; [.2376.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
+FED3 ; [.2376.0020.0017] # ARABIC LETTER FEH INITIAL FORM
+FED4 ; [.2376.0020.0018] # ARABIC LETTER FEH MEDIAL FORM
+FED2 ; [.2376.0020.0019] # ARABIC LETTER FEH FINAL FORM
+FED1 ; [.2376.0020.001A] # ARABIC LETTER FEH ISOLATED FORM
+FCBE ; [.2376.0020.0017][.2325.0020.0017] # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+FC2D ; [.2376.0020.001A][.2325.0020.001A] # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+FCBF ; [.2376.0020.0017][.232C.0020.0017] # ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+FC2E ; [.2376.0020.001A][.232C.0020.001A] # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+FCC0 ; [.2376.0020.0017][.232D.0020.0017] # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+FC2F ; [.2376.0020.001A][.232D.0020.001A] # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+FD7D ; [.2376.0020.0017][.232D.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+FD7C ; [.2376.0020.0019][.232D.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
+FCC1 ; [.2376.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+FC30 ; [.2376.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+FDC1 ; [.2376.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+FC7C ; [.2376.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+FC31 ; [.2376.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+FC7D ; [.2376.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE FEH WITH YEH FINAL FORM
+FC32 ; [.2376.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+06A1 ; [.2377.0020.0002] # ARABIC LETTER DOTLESS FEH
+1EE1E ; [.2377.0020.0005] # ARABIC MATHEMATICAL DOTLESS FEH
+1EE7E ; [.2377.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+06A2 ; [.2378.0020.0002] # ARABIC LETTER FEH WITH DOT MOVED BELOW
+08BB ; [.2379.0020.0002] # ARABIC LETTER AFRICAN FEH
+06A3 ; [.237A.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW
+06A4 ; [.237B.0020.0002] # ARABIC LETTER VEH
+FB6C ; [.237B.0020.0017] # ARABIC LETTER VEH INITIAL FORM
+FB6D ; [.237B.0020.0018] # ARABIC LETTER VEH MEDIAL FORM
+FB6B ; [.237B.0020.0019] # ARABIC LETTER VEH FINAL FORM
+FB6A ; [.237B.0020.001A] # ARABIC LETTER VEH ISOLATED FORM
+08A4 ; [.237C.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
+06A5 ; [.237D.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS BELOW
+06A6 ; [.237E.0020.0002] # ARABIC LETTER PEHEH
+FB70 ; [.237E.0020.0017] # ARABIC LETTER PEHEH INITIAL FORM
+FB71 ; [.237E.0020.0018] # ARABIC LETTER PEHEH MEDIAL FORM
+FB6F ; [.237E.0020.0019] # ARABIC LETTER PEHEH FINAL FORM
+FB6E ; [.237E.0020.001A] # ARABIC LETTER PEHEH ISOLATED FORM
+0760 ; [.237F.0020.0002] # ARABIC LETTER FEH WITH TWO DOTS BELOW
+0761 ; [.2380.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
+066F ; [.2381.0020.0002] # ARABIC LETTER DOTLESS QAF
+1EE1F ; [.2381.0020.0005] # ARABIC MATHEMATICAL DOTLESS QAF
+1EE5F ; [.2381.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS QAF
+0642 ; [.2382.0020.0002] # ARABIC LETTER QAF
+1EE12 ; [.2382.0020.0005] # ARABIC MATHEMATICAL QAF
+1EE32 ; [.2382.0020.0005] # ARABIC MATHEMATICAL INITIAL QAF
+1EE52 ; [.2382.0020.0005] # ARABIC MATHEMATICAL TAILED QAF
+1EE72 ; [.2382.0020.0005] # ARABIC MATHEMATICAL STRETCHED QAF
+1EE92 ; [.2382.0020.0005] # ARABIC MATHEMATICAL LOOPED QAF
+1EEB2 ; [.2382.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
+FED7 ; [.2382.0020.0017] # ARABIC LETTER QAF INITIAL FORM
+FED8 ; [.2382.0020.0018] # ARABIC LETTER QAF MEDIAL FORM
+FED6 ; [.2382.0020.0019] # ARABIC LETTER QAF FINAL FORM
+FED5 ; [.2382.0020.001A] # ARABIC LETTER QAF ISOLATED FORM
+FCC2 ; [.2382.0020.0017][.232C.0020.0017] # ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+FC33 ; [.2382.0020.001A][.232C.0020.001A] # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+FDF1 ; [.2382.0020.001A][.239C.0020.001A][.23D4.0020.001A] # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FCC3 ; [.2382.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+FC34 ; [.2382.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+FDB4 ; [.2382.0020.0017][.23A3.0020.0017][.232C.0020.0017] # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+FD7E ; [.2382.0020.0019][.23A3.0020.0019][.232C.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+FD7F ; [.2382.0020.0019][.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+FDB2 ; [.2382.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+FC7E ; [.2382.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+FC35 ; [.2382.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+FC7F ; [.2382.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE QAF WITH YEH FINAL FORM
+FC36 ; [.2382.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+06A7 ; [.2383.0020.0002] # ARABIC LETTER QAF WITH DOT ABOVE
+08BC ; [.2384.0020.0002] # ARABIC LETTER AFRICAN QAF
+06A8 ; [.2385.0020.0002] # ARABIC LETTER QAF WITH THREE DOTS ABOVE
+08A5 ; [.2386.0020.0002] # ARABIC LETTER QAF WITH DOT BELOW
+0643 ; [.2387.0020.0002] # ARABIC LETTER KAF
+1EE0A ; [.2387.0020.0005] # ARABIC MATHEMATICAL KAF
+1EE2A ; [.2387.0020.0005] # ARABIC MATHEMATICAL INITIAL KAF
+1EE6A ; [.2387.0020.0005] # ARABIC MATHEMATICAL STRETCHED KAF
+FEDB ; [.2387.0020.0017] # ARABIC LETTER KAF INITIAL FORM
+FEDC ; [.2387.0020.0018] # ARABIC LETTER KAF MEDIAL FORM
+FEDA ; [.2387.0020.0019] # ARABIC LETTER KAF FINAL FORM
+FED9 ; [.2387.0020.001A] # ARABIC LETTER KAF ISOLATED FORM
+FC80 ; [.2387.0020.0019][.230B.0020.0019] # ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+FC37 ; [.2387.0020.001A][.230B.0020.001A] # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+FCC4 ; [.2387.0020.0017][.2325.0020.0017] # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+FC38 ; [.2387.0020.001A][.2325.0020.001A] # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+FCC5 ; [.2387.0020.0017][.232C.0020.0017] # ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+FC39 ; [.2387.0020.001A][.232C.0020.001A] # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+FCC6 ; [.2387.0020.0017][.232D.0020.0017] # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+FC3A ; [.2387.0020.001A][.232D.0020.001A] # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+FCC7 ; [.2387.0020.0017][.239C.0020.0017] # ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+FCEB ; [.2387.0020.0018][.239C.0020.0018] # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+FC81 ; [.2387.0020.0019][.239C.0020.0019] # ARABIC LIGATURE KAF WITH LAM FINAL FORM
+FC3B ; [.2387.0020.001A][.239C.0020.001A] # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+FCC8 ; [.2387.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+FCEC ; [.2387.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+FC82 ; [.2387.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+FC3C ; [.2387.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+FDC3 ; [.2387.0020.0017][.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+FDBB ; [.2387.0020.0019][.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+FDB7 ; [.2387.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+FC83 ; [.2387.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+FC3D ; [.2387.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+FC84 ; [.2387.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE KAF WITH YEH FINAL FORM
+FC3E ; [.2387.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+06A9 ; [.2388.0020.0002] # ARABIC LETTER KEHEH
+FB90 ; [.2388.0020.0017] # ARABIC LETTER KEHEH INITIAL FORM
+FB91 ; [.2388.0020.0018] # ARABIC LETTER KEHEH MEDIAL FORM
+FB8F ; [.2388.0020.0019] # ARABIC LETTER KEHEH FINAL FORM
+FB8E ; [.2388.0020.001A] # ARABIC LETTER KEHEH ISOLATED FORM
+06AA ; [.2389.0020.0002] # ARABIC LETTER SWASH KAF
+06AB ; [.238A.0020.0002] # ARABIC LETTER KAF WITH RING
+06AC ; [.238B.0020.0002] # ARABIC LETTER KAF WITH DOT ABOVE
+077F ; [.238C.0020.0002] # ARABIC LETTER KAF WITH TWO DOTS ABOVE
+06AD ; [.238D.0020.0002] # ARABIC LETTER NG
+FBD5 ; [.238D.0020.0017] # ARABIC LETTER NG INITIAL FORM
+FBD6 ; [.238D.0020.0018] # ARABIC LETTER NG MEDIAL FORM
+FBD4 ; [.238D.0020.0019] # ARABIC LETTER NG FINAL FORM
+FBD3 ; [.238D.0020.001A] # ARABIC LETTER NG ISOLATED FORM
+06AE ; [.238E.0020.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
+08B4 ; [.238F.0020.0002] # ARABIC LETTER KAF WITH DOT BELOW
+06AF ; [.2390.0020.0002] # ARABIC LETTER GAF
+FB94 ; [.2390.0020.0017] # ARABIC LETTER GAF INITIAL FORM
+FB95 ; [.2390.0020.0018] # ARABIC LETTER GAF MEDIAL FORM
+FB93 ; [.2390.0020.0019] # ARABIC LETTER GAF FINAL FORM
+FB92 ; [.2390.0020.001A] # ARABIC LETTER GAF ISOLATED FORM
+08B0 ; [.2391.0020.0002] # ARABIC LETTER GAF WITH INVERTED STROKE
+06B0 ; [.2392.0020.0002] # ARABIC LETTER GAF WITH RING
+06B1 ; [.2393.0020.0002] # ARABIC LETTER NGOEH
+FB9C ; [.2393.0020.0017] # ARABIC LETTER NGOEH INITIAL FORM
+FB9D ; [.2393.0020.0018] # ARABIC LETTER NGOEH MEDIAL FORM
+FB9B ; [.2393.0020.0019] # ARABIC LETTER NGOEH FINAL FORM
+FB9A ; [.2393.0020.001A] # ARABIC LETTER NGOEH ISOLATED FORM
+06B2 ; [.2394.0020.0002] # ARABIC LETTER GAF WITH TWO DOTS BELOW
+06B3 ; [.2395.0020.0002] # ARABIC LETTER GUEH
+FB98 ; [.2395.0020.0017] # ARABIC LETTER GUEH INITIAL FORM
+FB99 ; [.2395.0020.0018] # ARABIC LETTER GUEH MEDIAL FORM
+FB97 ; [.2395.0020.0019] # ARABIC LETTER GUEH FINAL FORM
+FB96 ; [.2395.0020.001A] # ARABIC LETTER GUEH ISOLATED FORM
+06B4 ; [.2396.0020.0002] # ARABIC LETTER GAF WITH THREE DOTS ABOVE
+0762 ; [.2397.0020.0002] # ARABIC LETTER KEHEH WITH DOT ABOVE
+063B ; [.2398.0020.0002] # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE
+063C ; [.2399.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS BELOW
+0763 ; [.239A.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
+0764 ; [.239B.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
+0644 ; [.239C.0020.0002] # ARABIC LETTER LAM
+1EE0B ; [.239C.0020.0005] # ARABIC MATHEMATICAL LAM
+1EE2B ; [.239C.0020.0005] # ARABIC MATHEMATICAL INITIAL LAM
+1EE4B ; [.239C.0020.0005] # ARABIC MATHEMATICAL TAILED LAM
+1EE8B ; [.239C.0020.0005] # ARABIC MATHEMATICAL LOOPED LAM
+1EEAB ; [.239C.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
+FEDF ; [.239C.0020.0017] # ARABIC LETTER LAM INITIAL FORM
+FEE0 ; [.239C.0020.0018] # ARABIC LETTER LAM MEDIAL FORM
+FEDE ; [.239C.0020.0019] # ARABIC LETTER LAM FINAL FORM
+FEDD ; [.239C.0020.001A] # ARABIC LETTER LAM ISOLATED FORM
+FEF6 ; [.239C.0020.0019][.22FE.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+FEF5 ; [.239C.0020.001A][.22FE.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+FEF8 ; [.239C.0020.0019][.22FF.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+FEF7 ; [.239C.0020.001A][.22FF.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+FEFA ; [.239C.0020.0019][.2303.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+FEF9 ; [.239C.0020.001A][.2303.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+FEFC ; [.239C.0020.0019][.230B.0020.0019] # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFB ; [.239C.0020.001A][.230B.0020.001A] # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+FCC9 ; [.239C.0020.0017][.2325.0020.0017] # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+FC3F ; [.239C.0020.001A][.2325.0020.001A] # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+FD83 ; [.239C.0020.0017][.2325.0020.0017][.2325.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
+FD84 ; [.239C.0020.0019][.2325.0020.0019][.2325.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+FDBA ; [.239C.0020.0017][.2325.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBC ; [.239C.0020.0019][.2325.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+FDAC ; [.239C.0020.0019][.2325.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+FCCA ; [.239C.0020.0017][.232C.0020.0017] # ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+FC40 ; [.239C.0020.001A][.232C.0020.001A] # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+FDB5 ; [.239C.0020.0017][.232C.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+FD80 ; [.239C.0020.0019][.232C.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+FD82 ; [.239C.0020.0019][.232C.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD81 ; [.239C.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+FCCB ; [.239C.0020.0017][.232D.0020.0017] # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+FC41 ; [.239C.0020.001A][.232D.0020.001A] # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+FD86 ; [.239C.0020.0017][.232D.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+FD85 ; [.239C.0020.0019][.232D.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
+FCCC ; [.239C.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+FCED ; [.239C.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+FC85 ; [.239C.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+FC42 ; [.239C.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+FD88 ; [.239C.0020.0017][.23A3.0020.0017][.232C.0020.0017] # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+FD87 ; [.239C.0020.0019][.23A3.0020.0019][.232C.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
+FDAD ; [.239C.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+FCCD ; [.239C.0020.0017][.23B1.0020.0017] # ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+FC86 ; [.239C.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+FC43 ; [.239C.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+FC87 ; [.239C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE LAM WITH YEH FINAL FORM
+FC44 ; [.239C.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+06B5 ; [.239D.0020.0002] # ARABIC LETTER LAM WITH SMALL V
+06B6 ; [.239E.0020.0002] # ARABIC LETTER LAM WITH DOT ABOVE
+06B7 ; [.239F.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS ABOVE
+06B8 ; [.23A0.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS BELOW
+076A ; [.23A1.0020.0002] # ARABIC LETTER LAM WITH BAR
+08A6 ; [.23A2.0020.0002] # ARABIC LETTER LAM WITH DOUBLE BAR
+0645 ; [.23A3.0020.0002] # ARABIC LETTER MEEM
+1EE0C ; [.23A3.0020.0005] # ARABIC MATHEMATICAL MEEM
+1EE2C ; [.23A3.0020.0005] # ARABIC MATHEMATICAL INITIAL MEEM
+1EE6C ; [.23A3.0020.0005] # ARABIC MATHEMATICAL STRETCHED MEEM
+1EE8C ; [.23A3.0020.0005] # ARABIC MATHEMATICAL LOOPED MEEM
+1EEAC ; [.23A3.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
+FEE3 ; [.23A3.0020.0017] # ARABIC LETTER MEEM INITIAL FORM
+FEE4 ; [.23A3.0020.0018] # ARABIC LETTER MEEM MEDIAL FORM
+FEE2 ; [.23A3.0020.0019] # ARABIC LETTER MEEM FINAL FORM
+FEE1 ; [.23A3.0020.001A] # ARABIC LETTER MEEM ISOLATED FORM
+06FE ; [.23A3.0020.0004][.0000.0111.0004] # ARABIC SIGN SINDHI POSTPOSITION MEN
+FC88 ; [.23A3.0020.0019][.230B.0020.0019] # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+FCCE ; [.23A3.0020.0017][.2325.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+FC45 ; [.23A3.0020.001A][.2325.0020.001A] # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+FD8C ; [.23A3.0020.0017][.2325.0020.0017][.232C.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+FD92 ; [.23A3.0020.0017][.2325.0020.0017][.232D.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD8D ; [.23A3.0020.0017][.2325.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+FDC0 ; [.23A3.0020.0019][.2325.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+FCCF ; [.23A3.0020.0017][.232C.0020.0017] # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+FC46 ; [.23A3.0020.001A][.232C.0020.001A] # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+FD89 ; [.23A3.0020.0017][.232C.0020.0017][.2325.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A ; [.23A3.0020.0017][.232C.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+FDF4 ; [.23A3.0020.001A][.232C.0020.001A][.23A3.0020.001A][.2337.0020.001A] # ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+FD8B ; [.23A3.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+FCD0 ; [.23A3.0020.0017][.232D.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+FC47 ; [.23A3.0020.001A][.232D.0020.001A] # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+FD8E ; [.23A3.0020.0017][.232D.0020.0017][.2325.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F ; [.23A3.0020.0017][.232D.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FDB9 ; [.23A3.0020.0019][.232D.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+FCD1 ; [.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+FC89 ; [.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+FC48 ; [.23A3.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+FDB1 ; [.23A3.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+FC49 ; [.23A3.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A ; [.23A3.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+0765 ; [.23A4.0020.0002] # ARABIC LETTER MEEM WITH DOT ABOVE
+0766 ; [.23A5.0020.0002] # ARABIC LETTER MEEM WITH DOT BELOW
+08A7 ; [.23A6.0020.0002] # ARABIC LETTER MEEM WITH THREE DOTS ABOVE
+0646 ; [.23A7.0020.0002] # ARABIC LETTER NOON
+1EE0D ; [.23A7.0020.0005] # ARABIC MATHEMATICAL NOON
+1EE2D ; [.23A7.0020.0005] # ARABIC MATHEMATICAL INITIAL NOON
+1EE4D ; [.23A7.0020.0005] # ARABIC MATHEMATICAL TAILED NOON
+1EE6D ; [.23A7.0020.0005] # ARABIC MATHEMATICAL STRETCHED NOON
+1EE8D ; [.23A7.0020.0005] # ARABIC MATHEMATICAL LOOPED NOON
+1EEAD ; [.23A7.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
+FEE7 ; [.23A7.0020.0017] # ARABIC LETTER NOON INITIAL FORM
+FEE8 ; [.23A7.0020.0018] # ARABIC LETTER NOON MEDIAL FORM
+FEE6 ; [.23A7.0020.0019] # ARABIC LETTER NOON FINAL FORM
+FEE5 ; [.23A7.0020.001A] # ARABIC LETTER NOON ISOLATED FORM
+FCD2 ; [.23A7.0020.0017][.2325.0020.0017] # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+FC4B ; [.23A7.0020.001A][.2325.0020.001A] # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+FDB8 ; [.23A7.0020.0017][.2325.0020.0017][.232C.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+FDBD ; [.23A7.0020.0019][.2325.0020.0019][.232C.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+FD98 ; [.23A7.0020.0017][.2325.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+FD97 ; [.23A7.0020.0019][.2325.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
+FD99 ; [.23A7.0020.0019][.2325.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDC7 ; [.23A7.0020.0019][.2325.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FCD3 ; [.23A7.0020.0017][.232C.0020.0017] # ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+FC4C ; [.23A7.0020.001A][.232C.0020.001A] # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+FD95 ; [.23A7.0020.0017][.232C.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+FD96 ; [.23A7.0020.0019][.232C.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDB3 ; [.23A7.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+FCD4 ; [.23A7.0020.0017][.232D.0020.0017] # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+FC4D ; [.23A7.0020.001A][.232D.0020.001A] # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+FC8A ; [.23A7.0020.0019][.2346.0020.0019] # ARABIC LIGATURE NOON WITH REH FINAL FORM
+FC8B ; [.23A7.0020.0019][.2347.0020.0019] # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+FCD5 ; [.23A7.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+FCEE ; [.23A7.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+FC8C ; [.23A7.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+FC4E ; [.23A7.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+FD9B ; [.23A7.0020.0019][.23A3.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9A ; [.23A7.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+FC8D ; [.23A7.0020.0019][.23A7.0020.0019] # ARABIC LIGATURE NOON WITH NOON FINAL FORM
+FCD6 ; [.23A7.0020.0017][.23B1.0020.0017] # ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+FCEF ; [.23A7.0020.0018][.23B1.0020.0018] # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+FC8E ; [.23A7.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+FC4F ; [.23A7.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+FC8F ; [.23A7.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE NOON WITH YEH FINAL FORM
+FC50 ; [.23A7.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+06BA ; [.23A8.0020.0002] # ARABIC LETTER NOON GHUNNA
+1EE1D ; [.23A8.0020.0005] # ARABIC MATHEMATICAL DOTLESS NOON
+1EE5D ; [.23A8.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS NOON
+FB9F ; [.23A8.0020.0019] # ARABIC LETTER NOON GHUNNA FINAL FORM
+FB9E ; [.23A8.0020.001A] # ARABIC LETTER NOON GHUNNA ISOLATED FORM
+08BD ; [.23A9.0020.0002] # ARABIC LETTER AFRICAN NOON
+06BB ; [.23AA.0020.0002] # ARABIC LETTER RNOON
+FBA2 ; [.23AA.0020.0017] # ARABIC LETTER RNOON INITIAL FORM
+FBA3 ; [.23AA.0020.0018] # ARABIC LETTER RNOON MEDIAL FORM
+FBA1 ; [.23AA.0020.0019] # ARABIC LETTER RNOON FINAL FORM
+FBA0 ; [.23AA.0020.001A] # ARABIC LETTER RNOON ISOLATED FORM
+06BC ; [.23AB.0020.0002] # ARABIC LETTER NOON WITH RING
+06BD ; [.23AC.0020.0002] # ARABIC LETTER NOON WITH THREE DOTS ABOVE
+06B9 ; [.23AD.0020.0002] # ARABIC LETTER NOON WITH DOT BELOW
+0767 ; [.23AE.0020.0002] # ARABIC LETTER NOON WITH TWO DOTS BELOW
+0768 ; [.23AF.0020.0002] # ARABIC LETTER NOON WITH SMALL TAH
+0769 ; [.23B0.0020.0002] # ARABIC LETTER NOON WITH SMALL V
+0647 ; [.23B1.0020.0002] # ARABIC LETTER HEH
+1EE24 ; [.23B1.0020.0005] # ARABIC MATHEMATICAL INITIAL HEH
+1EE64 ; [.23B1.0020.0005] # ARABIC MATHEMATICAL STRETCHED HEH
+1EE84 ; [.23B1.0020.0005] # ARABIC MATHEMATICAL LOOPED HEH
+FEEB ; [.23B1.0020.0017] # ARABIC LETTER HEH INITIAL FORM
+FEEC ; [.23B1.0020.0018] # ARABIC LETTER HEH MEDIAL FORM
+FEEA ; [.23B1.0020.0019] # ARABIC LETTER HEH FINAL FORM
+FEE9 ; [.23B1.0020.001A] # ARABIC LETTER HEH ISOLATED FORM
+FCD9 ; [.23B1.0020.0017][.0000.0098.0017] # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCD7 ; [.23B1.0020.0017][.2325.0020.0017] # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+FC51 ; [.23B1.0020.001A][.2325.0020.001A] # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+FCD8 ; [.23B1.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+FC52 ; [.23B1.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+FD93 ; [.23B1.0020.0017][.23A3.0020.0017][.2325.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94 ; [.23B1.0020.0017][.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+FC53 ; [.23B1.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54 ; [.23B1.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+06BE ; [.23B2.0020.0002] # ARABIC LETTER HEH DOACHASHMEE
+FBAC ; [.23B2.0020.0017] # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
+FBAD ; [.23B2.0020.0018] # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAB ; [.23B2.0020.0019] # ARABIC LETTER HEH DOACHASHMEE FINAL FORM
+FBAA ; [.23B2.0020.001A] # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+06C1 ; [.23B3.0020.0002] # ARABIC LETTER HEH GOAL
+FBA8 ; [.23B3.0020.0017] # ARABIC LETTER HEH GOAL INITIAL FORM
+FBA9 ; [.23B3.0020.0018] # ARABIC LETTER HEH GOAL MEDIAL FORM
+FBA7 ; [.23B3.0020.0019] # ARABIC LETTER HEH GOAL FINAL FORM
+FBA6 ; [.23B3.0020.001A] # ARABIC LETTER HEH GOAL ISOLATED FORM
+06C2 ; [.23B3.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06C3 ; [.23B4.0020.0002] # ARABIC LETTER TEH MARBUTA GOAL
+06FF ; [.23B5.0020.0002] # ARABIC LETTER HEH WITH INVERTED V
+06D5 ; [.23B6.0020.0002] # ARABIC LETTER AE
+06C0 ; [.23B6.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH WITH YEH ABOVE
+FBA5 ; [.23B6.0020.0019][.0000.0083.0019] # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA4 ; [.23B6.0020.001A][.0000.0083.001A] # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
+0648 ; [.23B7.0020.0002] # ARABIC LETTER WAW
+06E5 ; [.23B7.0020.0004] # ARABIC SMALL WAW
+1EE05 ; [.23B7.0020.0005] # ARABIC MATHEMATICAL WAW
+1EE85 ; [.23B7.0020.0005] # ARABIC MATHEMATICAL LOOPED WAW
+1EEA5 ; [.23B7.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
+FEEE ; [.23B7.0020.0019] # ARABIC LETTER WAW FINAL FORM
+FEED ; [.23B7.0020.001A] # ARABIC LETTER WAW ISOLATED FORM
+0676 ; [.23B7.0020.0004][.22FD.0020.0004] # ARABIC LETTER HIGH HAMZA WAW
+FDF8 ; [.23B7.0020.001A][.2359.0020.001A][.239C.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE WASALLAM ISOLATED FORM
+06C4 ; [.23B8.0020.0002] # ARABIC LETTER WAW WITH RING
+06C5 ; [.23B9.0020.0002] # ARABIC LETTER KIRGHIZ OE
+FBE1 ; [.23B9.0020.0019] # ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE0 ; [.23B9.0020.001A] # ARABIC LETTER KIRGHIZ OE ISOLATED FORM
+06C6 ; [.23BA.0020.0002] # ARABIC LETTER OE
+FBDA ; [.23BA.0020.0019] # ARABIC LETTER OE FINAL FORM
+FBD9 ; [.23BA.0020.001A] # ARABIC LETTER OE ISOLATED FORM
+06C7 ; [.23BB.0020.0002] # ARABIC LETTER U
+FBD8 ; [.23BB.0020.0019] # ARABIC LETTER U FINAL FORM
+FBD7 ; [.23BB.0020.001A] # ARABIC LETTER U ISOLATED FORM
+0677 ; [.23BB.0020.0004][.22FD.0020.0004] # ARABIC LETTER U WITH HAMZA ABOVE
+FBDD ; [.23BB.0020.001A][.22FD.0020.001A] # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+06C8 ; [.23BC.0020.0002] # ARABIC LETTER YU
+FBDC ; [.23BC.0020.0019] # ARABIC LETTER YU FINAL FORM
+FBDB ; [.23BC.0020.001A] # ARABIC LETTER YU ISOLATED FORM
+06C9 ; [.23BD.0020.0002] # ARABIC LETTER KIRGHIZ YU
+FBE3 ; [.23BD.0020.0019] # ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE2 ; [.23BD.0020.001A] # ARABIC LETTER KIRGHIZ YU ISOLATED FORM
+06CA ; [.23BE.0020.0002] # ARABIC LETTER WAW WITH TWO DOTS ABOVE
+06CB ; [.23BF.0020.0002] # ARABIC LETTER VE
+FBDF ; [.23BF.0020.0019] # ARABIC LETTER VE FINAL FORM
+FBDE ; [.23BF.0020.001A] # ARABIC LETTER VE ISOLATED FORM
+08B1 ; [.23C0.0020.0002] # ARABIC LETTER STRAIGHT WAW
+06CF ; [.23C1.0020.0002] # ARABIC LETTER WAW WITH DOT ABOVE
+0778 ; [.23C2.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
+0779 ; [.23C3.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+08AB ; [.23C4.0020.0002] # ARABIC LETTER WAW WITH DOT WITHIN
+0649 ; [.23C5.0020.0002] # ARABIC LETTER ALEF MAKSURA
+FBE8 ; [.23C5.0020.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+FBE9 ; [.23C5.0020.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FEF0 ; [.23C5.0020.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEEF ; [.23C5.0020.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+FC90 ; [.23C5.0020.0019][.0000.0098.0019] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC5D ; [.23C5.0020.001A][.0000.0098.001A] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+064A ; [.23C6.0020.0002] # ARABIC LETTER YEH
+06E6 ; [.23C6.0020.0004] # ARABIC SMALL YEH
+1EE09 ; [.23C6.0020.0005] # ARABIC MATHEMATICAL YEH
+1EE29 ; [.23C6.0020.0005] # ARABIC MATHEMATICAL INITIAL YEH
+1EE49 ; [.23C6.0020.0005] # ARABIC MATHEMATICAL TAILED YEH
+1EE69 ; [.23C6.0020.0005] # ARABIC MATHEMATICAL STRETCHED YEH
+1EE89 ; [.23C6.0020.0005] # ARABIC MATHEMATICAL LOOPED YEH
+1EEA9 ; [.23C6.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+FEF3 ; [.23C6.0020.0017] # ARABIC LETTER YEH INITIAL FORM
+FEF4 ; [.23C6.0020.0018] # ARABIC LETTER YEH MEDIAL FORM
+FEF2 ; [.23C6.0020.0019] # ARABIC LETTER YEH FINAL FORM
+FEF1 ; [.23C6.0020.001A] # ARABIC LETTER YEH ISOLATED FORM
+0678 ; [.23C6.0020.0004][.22FD.0020.0004] # ARABIC LETTER HIGH HAMZA YEH
+FCDA ; [.23C6.0020.0017][.2325.0020.0017] # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+FC55 ; [.23C6.0020.001A][.2325.0020.001A] # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+FDAF ; [.23C6.0020.0019][.2325.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+FCDB ; [.23C6.0020.0017][.232C.0020.0017] # ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+FC56 ; [.23C6.0020.001A][.232C.0020.001A] # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+FDAE ; [.23C6.0020.0019][.232C.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+FCDC ; [.23C6.0020.0017][.232D.0020.0017] # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+FC57 ; [.23C6.0020.001A][.232D.0020.001A] # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+FC91 ; [.23C6.0020.0019][.2346.0020.0019] # ARABIC LIGATURE YEH WITH REH FINAL FORM
+FC92 ; [.23C6.0020.0019][.2347.0020.0019] # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+FCDD ; [.23C6.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+FCF0 ; [.23C6.0020.0018][.23A3.0020.0018] # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+FC93 ; [.23C6.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+FC58 ; [.23C6.0020.001A][.23A3.0020.001A] # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+FD9D ; [.23C6.0020.0017][.23A3.0020.0017][.23A3.0020.0017] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+FD9C ; [.23C6.0020.0019][.23A3.0020.0019][.23A3.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
+FDB0 ; [.23C6.0020.0019][.23A3.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+FC94 ; [.23C6.0020.0019][.23A7.0020.0019] # ARABIC LIGATURE YEH WITH NOON FINAL FORM
+FCDE ; [.23C6.0020.0017][.23B1.0020.0017] # ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+FCF1 ; [.23C6.0020.0018][.23B1.0020.0018] # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+FC95 ; [.23C6.0020.0019][.23C5.0020.0019] # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+FC59 ; [.23C6.0020.001A][.23C5.0020.001A] # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+FC96 ; [.23C6.0020.0019][.23C6.0020.0019] # ARABIC LIGATURE YEH WITH YEH FINAL FORM
+FC5A ; [.23C6.0020.001A][.23C6.0020.001A] # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+06CC ; [.23C7.0020.0002] # ARABIC LETTER FARSI YEH
+FBFE ; [.23C7.0020.0017] # ARABIC LETTER FARSI YEH INITIAL FORM
+FBFF ; [.23C7.0020.0018] # ARABIC LETTER FARSI YEH MEDIAL FORM
+FBFD ; [.23C7.0020.0019] # ARABIC LETTER FARSI YEH FINAL FORM
+FBFC ; [.23C7.0020.001A] # ARABIC LETTER FARSI YEH ISOLATED FORM
+06CD ; [.23C8.0020.0002] # ARABIC LETTER YEH WITH TAIL
+06CE ; [.23C9.0020.0002] # ARABIC LETTER YEH WITH SMALL V
+06D0 ; [.23CA.0020.0002] # ARABIC LETTER E
+FBE6 ; [.23CA.0020.0017] # ARABIC LETTER E INITIAL FORM
+FBE7 ; [.23CA.0020.0018] # ARABIC LETTER E MEDIAL FORM
+FBE5 ; [.23CA.0020.0019] # ARABIC LETTER E FINAL FORM
+FBE4 ; [.23CA.0020.001A] # ARABIC LETTER E ISOLATED FORM
+06D1 ; [.23CB.0020.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
+063D ; [.23CC.0020.0002] # ARABIC LETTER FARSI YEH WITH INVERTED V
+063E ; [.23CD.0020.0002] # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
+063F ; [.23CE.0020.0002] # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0620 ; [.23CF.0020.0002] # ARABIC LETTER KASHMIRI YEH
+0775 ; [.23D0.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
+0776 ; [.23D1.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+0777 ; [.23D2.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
+08BA ; [.23D3.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE
+06D2 ; [.23D4.0020.0002] # ARABIC LETTER YEH BARREE
+FBAF ; [.23D4.0020.0019] # ARABIC LETTER YEH BARREE FINAL FORM
+FBAE ; [.23D4.0020.001A] # ARABIC LETTER YEH BARREE ISOLATED FORM
+06D3 ; [.23D4.0020.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+FBB1 ; [.23D4.0020.0019][.0000.0083.0019] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB0 ; [.23D4.0020.001A][.0000.0083.001A] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+077A ; [.23D5.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
+077B ; [.23D6.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+0710 ; [.23D7.0020.0002] # SYRIAC LETTER ALAPH
+0712 ; [.23D8.0020.0002] # SYRIAC LETTER BETH
+072D ; [.23D8.0020.0004][.0000.0112.0004] # SYRIAC LETTER PERSIAN BHETH
+0713 ; [.23D9.0020.0002] # SYRIAC LETTER GAMAL
+0714 ; [.23D9.0020.0004][.0000.0111.0004] # SYRIAC LETTER GAMAL GARSHUNI
+072E ; [.23D9.0020.0004][.0000.0112.0004] # SYRIAC LETTER PERSIAN GHAMAL
+0716 ; [.23DA.0020.0002] # SYRIAC LETTER DOTLESS DALATH RISH
+0715 ; [.23DB.0020.0002] # SYRIAC LETTER DALATH
+072F ; [.23DB.0020.0004][.0000.0112.0004] # SYRIAC LETTER PERSIAN DHALATH
+0717 ; [.23DC.0020.0002] # SYRIAC LETTER HE
+0718 ; [.23DD.0020.0002] # SYRIAC LETTER WAW
+0719 ; [.23DE.0020.0002] # SYRIAC LETTER ZAIN
+074D ; [.23DF.0020.0002] # SYRIAC LETTER SOGDIAN ZHAIN
+071A ; [.23E0.0020.0002] # SYRIAC LETTER HETH
+071B ; [.23E1.0020.0002] # SYRIAC LETTER TETH
+071C ; [.23E1.0020.0004][.0000.0111.0004] # SYRIAC LETTER TETH GARSHUNI
+071D ; [.23E2.0020.0002] # SYRIAC LETTER YUDH
+071E ; [.23E3.0020.0002] # SYRIAC LETTER YUDH HE
+071F ; [.23E4.0020.0002] # SYRIAC LETTER KAPH
+074E ; [.23E5.0020.0002] # SYRIAC LETTER SOGDIAN KHAPH
+0720 ; [.23E6.0020.0002] # SYRIAC LETTER LAMADH
+0721 ; [.23E7.0020.0002] # SYRIAC LETTER MIM
+0722 ; [.23E8.0020.0002] # SYRIAC LETTER NUN
+0723 ; [.23E9.0020.0002] # SYRIAC LETTER SEMKATH
+0724 ; [.23E9.0020.0019] # SYRIAC LETTER FINAL SEMKATH
+0725 ; [.23EA.0020.0002] # SYRIAC LETTER E
+0726 ; [.23EB.0020.0002] # SYRIAC LETTER PE
+0727 ; [.23EB.0020.0004][.0000.0111.0004] # SYRIAC LETTER REVERSED PE
+074F ; [.23EC.0020.0002] # SYRIAC LETTER SOGDIAN FE
+0728 ; [.23ED.0020.0002] # SYRIAC LETTER SADHE
+0729 ; [.23EE.0020.0002] # SYRIAC LETTER QAPH
+072A ; [.23EF.0020.0002] # SYRIAC LETTER RISH
+072B ; [.23F0.0020.0002] # SYRIAC LETTER SHIN
+072C ; [.23F1.0020.0002] # SYRIAC LETTER TAW
+0840 ; [.23F2.0020.0002] # MANDAIC LETTER HALQA
+0841 ; [.23F3.0020.0002] # MANDAIC LETTER AB
+0842 ; [.23F4.0020.0002] # MANDAIC LETTER AG
+0843 ; [.23F5.0020.0002] # MANDAIC LETTER AD
+0844 ; [.23F6.0020.0002] # MANDAIC LETTER AH
+0845 ; [.23F7.0020.0002] # MANDAIC LETTER USHENNA
+0846 ; [.23F8.0020.0002] # MANDAIC LETTER AZ
+0847 ; [.23F9.0020.0002] # MANDAIC LETTER IT
+0848 ; [.23FA.0020.0002] # MANDAIC LETTER ATT
+0849 ; [.23FB.0020.0002] # MANDAIC LETTER AKSA
+084A ; [.23FC.0020.0002] # MANDAIC LETTER AK
+084B ; [.23FD.0020.0002] # MANDAIC LETTER AL
+084C ; [.23FE.0020.0002] # MANDAIC LETTER AM
+084D ; [.23FF.0020.0002] # MANDAIC LETTER AN
+084E ; [.2400.0020.0002] # MANDAIC LETTER AS
+084F ; [.2401.0020.0002] # MANDAIC LETTER IN
+0850 ; [.2402.0020.0002] # MANDAIC LETTER AP
+0851 ; [.2403.0020.0002] # MANDAIC LETTER ASZ
+0852 ; [.2404.0020.0002] # MANDAIC LETTER AQ
+0853 ; [.2405.0020.0002] # MANDAIC LETTER AR
+0854 ; [.2406.0020.0002] # MANDAIC LETTER ASH
+0855 ; [.2407.0020.0002] # MANDAIC LETTER AT
+0856 ; [.2408.0020.0002] # MANDAIC LETTER DUSHENNA
+0857 ; [.2409.0020.0002] # MANDAIC LETTER KAD
+0858 ; [.240A.0020.0002] # MANDAIC LETTER AIN
+0780 ; [.240B.0020.0002] # THAANA LETTER HAA
+0799 ; [.240C.0020.0002] # THAANA LETTER HHAA
+079A ; [.240D.0020.0002] # THAANA LETTER KHAA
+0781 ; [.240E.0020.0002] # THAANA LETTER SHAVIYANI
+0782 ; [.240F.0020.0002] # THAANA LETTER NOONU
+0783 ; [.2410.0020.0002] # THAANA LETTER RAA
+079C ; [.2411.0020.0002] # THAANA LETTER ZAA
+0784 ; [.2412.0020.0002] # THAANA LETTER BAA
+0785 ; [.2413.0020.0002] # THAANA LETTER LHAVIYANI
+0786 ; [.2414.0020.0002] # THAANA LETTER KAAFU
+0787 ; [.2415.0020.0002] # THAANA LETTER ALIFU
+07A2 ; [.2416.0020.0002] # THAANA LETTER AINU
+07A3 ; [.2417.0020.0002] # THAANA LETTER GHAINU
+0788 ; [.2418.0020.0002] # THAANA LETTER VAAVU
+07A5 ; [.2419.0020.0002] # THAANA LETTER WAAVU
+0789 ; [.241A.0020.0002] # THAANA LETTER MEEMU
+078A ; [.241B.0020.0002] # THAANA LETTER FAAFU
+078B ; [.241C.0020.0002] # THAANA LETTER DHAALU
+079B ; [.241D.0020.0002] # THAANA LETTER THAALU
+078C ; [.241E.0020.0002] # THAANA LETTER THAA
+0798 ; [.241F.0020.0002] # THAANA LETTER TTAA
+07A0 ; [.2420.0020.0002] # THAANA LETTER TO
+07A1 ; [.2421.0020.0002] # THAANA LETTER ZO
+078D ; [.2422.0020.0002] # THAANA LETTER LAAMU
+078E ; [.2423.0020.0002] # THAANA LETTER GAAFU
+07A4 ; [.2424.0020.0002] # THAANA LETTER QAAFU
+078F ; [.2425.0020.0002] # THAANA LETTER GNAVIYANI
+0790 ; [.2426.0020.0002] # THAANA LETTER SEENU
+079D ; [.2427.0020.0002] # THAANA LETTER SHEENU
+079E ; [.2428.0020.0002] # THAANA LETTER SAADHU
+079F ; [.2429.0020.0002] # THAANA LETTER DAADHU
+0791 ; [.242A.0020.0002] # THAANA LETTER DAVIYANI
+0792 ; [.242B.0020.0002] # THAANA LETTER ZAVIYANI
+0793 ; [.242C.0020.0002] # THAANA LETTER TAVIYANI
+0794 ; [.242D.0020.0002] # THAANA LETTER YAA
+0795 ; [.242E.0020.0002] # THAANA LETTER PAVIYANI
+0796 ; [.242F.0020.0002] # THAANA LETTER JAVIYANI
+0797 ; [.2430.0020.0002] # THAANA LETTER CHAVIYANI
+07B1 ; [.2431.0020.0002] # THAANA LETTER NAA
+07A6 ; [.2432.0020.0002] # THAANA ABAFILI
+07A7 ; [.2433.0020.0002] # THAANA AABAAFILI
+07A8 ; [.2434.0020.0002] # THAANA IBIFILI
+07A9 ; [.2435.0020.0002] # THAANA EEBEEFILI
+07AA ; [.2436.0020.0002] # THAANA UBUFILI
+07AB ; [.2437.0020.0002] # THAANA OOBOOFILI
+07AC ; [.2438.0020.0002] # THAANA EBEFILI
+07AD ; [.2439.0020.0002] # THAANA EYBEYFILI
+07AE ; [.243A.0020.0002] # THAANA OBOFILI
+07AF ; [.243B.0020.0002] # THAANA OABOAFILI
+07B0 ; [.243C.0020.0002] # THAANA SUKUN
+07CA ; [.243D.0020.0002] # NKO LETTER A
+07CB ; [.243E.0020.0002] # NKO LETTER EE
+07CC ; [.243F.0020.0002] # NKO LETTER I
+07CD ; [.2440.0020.0002] # NKO LETTER E
+07CE ; [.2441.0020.0002] # NKO LETTER U
+07CF ; [.2442.0020.0002] # NKO LETTER OO
+07D0 ; [.2443.0020.0002] # NKO LETTER O
+07D1 ; [.2444.0020.0002] # NKO LETTER DAGBASINNA
+07D2 ; [.2445.0020.0002] # NKO LETTER N
+07D3 ; [.2446.0020.0002] # NKO LETTER BA
+07D4 ; [.2447.0020.0002] # NKO LETTER PA
+07D5 ; [.2448.0020.0002] # NKO LETTER TA
+07D6 ; [.2449.0020.0002] # NKO LETTER JA
+07E8 ; [.2449.0020.0004][.0000.0110.0004] # NKO LETTER JONA JA
+07D7 ; [.244A.0020.0002] # NKO LETTER CHA
+07E9 ; [.244A.0020.0004][.0000.0110.0004] # NKO LETTER JONA CHA
+07D8 ; [.244B.0020.0002] # NKO LETTER DA
+07D9 ; [.244C.0020.0002] # NKO LETTER RA
+07EA ; [.244C.0020.0004][.0000.0110.0004] # NKO LETTER JONA RA
+07DA ; [.244D.0020.0002] # NKO LETTER RRA
+07DB ; [.244E.0020.0002] # NKO LETTER SA
+07DC ; [.244F.0020.0002] # NKO LETTER GBA
+07DD ; [.2450.0020.0002] # NKO LETTER FA
+07DE ; [.2451.0020.0002] # NKO LETTER KA
+07DF ; [.2452.0020.0002] # NKO LETTER LA
+07E0 ; [.2453.0020.0002] # NKO LETTER NA WOLOSO
+07E1 ; [.2454.0020.0002] # NKO LETTER MA
+07E2 ; [.2455.0020.0002] # NKO LETTER NYA
+07E3 ; [.2456.0020.0002] # NKO LETTER NA
+07E4 ; [.2457.0020.0002] # NKO LETTER HA
+07E5 ; [.2458.0020.0002] # NKO LETTER WA
+07E6 ; [.2459.0020.0002] # NKO LETTER YA
+07E7 ; [.245A.0020.0002] # NKO LETTER NYA WOLOSO
+07F4 ; [.245B.0020.0002] # NKO HIGH TONE APOSTROPHE
+07F5 ; [.245C.0020.0002] # NKO LOW TONE APOSTROPHE
+2D30 ; [.245D.0020.0002] # TIFINAGH LETTER YA
+2D31 ; [.245E.0020.0002] # TIFINAGH LETTER YAB
+2D32 ; [.245F.0020.0002] # TIFINAGH LETTER YABH
+2D33 ; [.2460.0020.0002] # TIFINAGH LETTER YAG
+2D34 ; [.2461.0020.0002] # TIFINAGH LETTER YAGHH
+2D35 ; [.2462.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAJ
+2D36 ; [.2463.0020.0002] # TIFINAGH LETTER YAJ
+2D37 ; [.2464.0020.0002] # TIFINAGH LETTER YAD
+2D38 ; [.2465.0020.0002] # TIFINAGH LETTER YADH
+2D39 ; [.2466.0020.0002] # TIFINAGH LETTER YADD
+2D3A ; [.2467.0020.0002] # TIFINAGH LETTER YADDH
+2D3B ; [.2468.0020.0002] # TIFINAGH LETTER YEY
+2D66 ; [.2469.0020.0002] # TIFINAGH LETTER YE
+2D3C ; [.246A.0020.0002] # TIFINAGH LETTER YAF
+2D3D ; [.246B.0020.0002] # TIFINAGH LETTER YAK
+2D3E ; [.246C.0020.0002] # TIFINAGH LETTER TUAREG YAK
+2D3F ; [.246D.0020.0002] # TIFINAGH LETTER YAKHH
+2D40 ; [.246E.0020.0002] # TIFINAGH LETTER YAH
+2D41 ; [.246F.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAH
+2D42 ; [.2470.0020.0002] # TIFINAGH LETTER TUAREG YAH
+2D43 ; [.2471.0020.0002] # TIFINAGH LETTER YAHH
+2D44 ; [.2472.0020.0002] # TIFINAGH LETTER YAA
+2D45 ; [.2473.0020.0002] # TIFINAGH LETTER YAKH
+2D46 ; [.2474.0020.0002] # TIFINAGH LETTER TUAREG YAKH
+2D47 ; [.2475.0020.0002] # TIFINAGH LETTER YAQ
+2D48 ; [.2476.0020.0002] # TIFINAGH LETTER TUAREG YAQ
+2D49 ; [.2477.0020.0002] # TIFINAGH LETTER YI
+2D4A ; [.2478.0020.0002] # TIFINAGH LETTER YAZH
+2D4B ; [.2479.0020.0002] # TIFINAGH LETTER AHAGGAR YAZH
+2D4C ; [.247A.0020.0002] # TIFINAGH LETTER TUAREG YAZH
+2D4D ; [.247B.0020.0002] # TIFINAGH LETTER YAL
+2D4E ; [.247C.0020.0002] # TIFINAGH LETTER YAM
+2D4F ; [.247D.0020.0002] # TIFINAGH LETTER YAN
+2D50 ; [.247E.0020.0002] # TIFINAGH LETTER TUAREG YAGN
+2D51 ; [.247F.0020.0002] # TIFINAGH LETTER TUAREG YANG
+2D52 ; [.2480.0020.0002] # TIFINAGH LETTER YAP
+2D53 ; [.2481.0020.0002] # TIFINAGH LETTER YU
+2D67 ; [.2482.0020.0002] # TIFINAGH LETTER YO
+2D54 ; [.2483.0020.0002] # TIFINAGH LETTER YAR
+2D55 ; [.2484.0020.0002] # TIFINAGH LETTER YARR
+2D56 ; [.2485.0020.0002] # TIFINAGH LETTER YAGH
+2D57 ; [.2486.0020.0002] # TIFINAGH LETTER TUAREG YAGH
+2D58 ; [.2487.0020.0002] # TIFINAGH LETTER AYER YAGH
+2D59 ; [.2488.0020.0002] # TIFINAGH LETTER YAS
+2D5A ; [.2489.0020.0002] # TIFINAGH LETTER YASS
+2D5B ; [.248A.0020.0002] # TIFINAGH LETTER YASH
+2D5C ; [.248B.0020.0002] # TIFINAGH LETTER YAT
+2D5D ; [.248C.0020.0002] # TIFINAGH LETTER YATH
+2D5E ; [.248D.0020.0002] # TIFINAGH LETTER YACH
+2D5F ; [.248E.0020.0002] # TIFINAGH LETTER YATT
+2D60 ; [.248F.0020.0002] # TIFINAGH LETTER YAV
+2D61 ; [.2490.0020.0002] # TIFINAGH LETTER YAW
+2D62 ; [.2491.0020.0002] # TIFINAGH LETTER YAY
+2D63 ; [.2492.0020.0002] # TIFINAGH LETTER YAZ
+2D64 ; [.2493.0020.0002] # TIFINAGH LETTER TAWELLEMET YAZ
+2D65 ; [.2494.0020.0002] # TIFINAGH LETTER YAZZ
+2D6F ; [.2495.0020.0002] # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+1200 ; [.2496.0020.0002] # ETHIOPIC SYLLABLE HA
+1201 ; [.2497.0020.0002] # ETHIOPIC SYLLABLE HU
+1202 ; [.2498.0020.0002] # ETHIOPIC SYLLABLE HI
+1203 ; [.2499.0020.0002] # ETHIOPIC SYLLABLE HAA
+1204 ; [.249A.0020.0002] # ETHIOPIC SYLLABLE HEE
+1205 ; [.249B.0020.0002] # ETHIOPIC SYLLABLE HE
+1206 ; [.249C.0020.0002] # ETHIOPIC SYLLABLE HO
+1207 ; [.249D.0020.0002] # ETHIOPIC SYLLABLE HOA
+1208 ; [.249E.0020.0002] # ETHIOPIC SYLLABLE LA
+1209 ; [.249F.0020.0002] # ETHIOPIC SYLLABLE LU
+120A ; [.24A0.0020.0002] # ETHIOPIC SYLLABLE LI
+120B ; [.24A1.0020.0002] # ETHIOPIC SYLLABLE LAA
+120C ; [.24A2.0020.0002] # ETHIOPIC SYLLABLE LEE
+120D ; [.24A3.0020.0002] # ETHIOPIC SYLLABLE LE
+120E ; [.24A4.0020.0002] # ETHIOPIC SYLLABLE LO
+120F ; [.24A5.0020.0002] # ETHIOPIC SYLLABLE LWA
+2D80 ; [.24A6.0020.0002] # ETHIOPIC SYLLABLE LOA
+1210 ; [.24A7.0020.0002] # ETHIOPIC SYLLABLE HHA
+1211 ; [.24A8.0020.0002] # ETHIOPIC SYLLABLE HHU
+1212 ; [.24A9.0020.0002] # ETHIOPIC SYLLABLE HHI
+1213 ; [.24AA.0020.0002] # ETHIOPIC SYLLABLE HHAA
+1214 ; [.24AB.0020.0002] # ETHIOPIC SYLLABLE HHEE
+1215 ; [.24AC.0020.0002] # ETHIOPIC SYLLABLE HHE
+1216 ; [.24AD.0020.0002] # ETHIOPIC SYLLABLE HHO
+1217 ; [.24AE.0020.0002] # ETHIOPIC SYLLABLE HHWA
+1218 ; [.24AF.0020.0002] # ETHIOPIC SYLLABLE MA
+1219 ; [.24B0.0020.0002] # ETHIOPIC SYLLABLE MU
+121A ; [.24B1.0020.0002] # ETHIOPIC SYLLABLE MI
+121B ; [.24B2.0020.0002] # ETHIOPIC SYLLABLE MAA
+121C ; [.24B3.0020.0002] # ETHIOPIC SYLLABLE MEE
+121D ; [.24B4.0020.0002] # ETHIOPIC SYLLABLE ME
+121E ; [.24B5.0020.0002] # ETHIOPIC SYLLABLE MO
+121F ; [.24B6.0020.0002] # ETHIOPIC SYLLABLE MWA
+1380 ; [.24B7.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT MWA
+1381 ; [.24B8.0020.0002] # ETHIOPIC SYLLABLE MWI
+1382 ; [.24B9.0020.0002] # ETHIOPIC SYLLABLE MWEE
+1383 ; [.24BA.0020.0002] # ETHIOPIC SYLLABLE MWE
+2D81 ; [.24BB.0020.0002] # ETHIOPIC SYLLABLE MOA
+1220 ; [.24BC.0020.0002] # ETHIOPIC SYLLABLE SZA
+1221 ; [.24BD.0020.0002] # ETHIOPIC SYLLABLE SZU
+1222 ; [.24BE.0020.0002] # ETHIOPIC SYLLABLE SZI
+1223 ; [.24BF.0020.0002] # ETHIOPIC SYLLABLE SZAA
+1224 ; [.24C0.0020.0002] # ETHIOPIC SYLLABLE SZEE
+1225 ; [.24C1.0020.0002] # ETHIOPIC SYLLABLE SZE
+1226 ; [.24C2.0020.0002] # ETHIOPIC SYLLABLE SZO
+1227 ; [.24C3.0020.0002] # ETHIOPIC SYLLABLE SZWA
+1228 ; [.24C4.0020.0002] # ETHIOPIC SYLLABLE RA
+1229 ; [.24C5.0020.0002] # ETHIOPIC SYLLABLE RU
+122A ; [.24C6.0020.0002] # ETHIOPIC SYLLABLE RI
+122B ; [.24C7.0020.0002] # ETHIOPIC SYLLABLE RAA
+122C ; [.24C8.0020.0002] # ETHIOPIC SYLLABLE REE
+122D ; [.24C9.0020.0002] # ETHIOPIC SYLLABLE RE
+122E ; [.24CA.0020.0002] # ETHIOPIC SYLLABLE RO
+122F ; [.24CB.0020.0002] # ETHIOPIC SYLLABLE RWA
+2D82 ; [.24CC.0020.0002] # ETHIOPIC SYLLABLE ROA
+1230 ; [.24CD.0020.0002] # ETHIOPIC SYLLABLE SA
+1231 ; [.24CE.0020.0002] # ETHIOPIC SYLLABLE SU
+1232 ; [.24CF.0020.0002] # ETHIOPIC SYLLABLE SI
+1233 ; [.24D0.0020.0002] # ETHIOPIC SYLLABLE SAA
+1234 ; [.24D1.0020.0002] # ETHIOPIC SYLLABLE SEE
+1235 ; [.24D2.0020.0002] # ETHIOPIC SYLLABLE SE
+1236 ; [.24D3.0020.0002] # ETHIOPIC SYLLABLE SO
+1237 ; [.24D4.0020.0002] # ETHIOPIC SYLLABLE SWA
+2D83 ; [.24D5.0020.0002] # ETHIOPIC SYLLABLE SOA
+AB01 ; [.24D6.0020.0002] # ETHIOPIC SYLLABLE TTHU
+AB02 ; [.24D7.0020.0002] # ETHIOPIC SYLLABLE TTHI
+AB03 ; [.24D8.0020.0002] # ETHIOPIC SYLLABLE TTHAA
+AB04 ; [.24D9.0020.0002] # ETHIOPIC SYLLABLE TTHEE
+AB05 ; [.24DA.0020.0002] # ETHIOPIC SYLLABLE TTHE
+AB06 ; [.24DB.0020.0002] # ETHIOPIC SYLLABLE TTHO
+1238 ; [.24DC.0020.0002] # ETHIOPIC SYLLABLE SHA
+1239 ; [.24DD.0020.0002] # ETHIOPIC SYLLABLE SHU
+123A ; [.24DE.0020.0002] # ETHIOPIC SYLLABLE SHI
+123B ; [.24DF.0020.0002] # ETHIOPIC SYLLABLE SHAA
+123C ; [.24E0.0020.0002] # ETHIOPIC SYLLABLE SHEE
+123D ; [.24E1.0020.0002] # ETHIOPIC SYLLABLE SHE
+123E ; [.24E2.0020.0002] # ETHIOPIC SYLLABLE SHO
+123F ; [.24E3.0020.0002] # ETHIOPIC SYLLABLE SHWA
+2D84 ; [.24E4.0020.0002] # ETHIOPIC SYLLABLE SHOA
+1240 ; [.24E5.0020.0002] # ETHIOPIC SYLLABLE QA
+1241 ; [.24E6.0020.0002] # ETHIOPIC SYLLABLE QU
+1242 ; [.24E7.0020.0002] # ETHIOPIC SYLLABLE QI
+1243 ; [.24E8.0020.0002] # ETHIOPIC SYLLABLE QAA
+1244 ; [.24E9.0020.0002] # ETHIOPIC SYLLABLE QEE
+1245 ; [.24EA.0020.0002] # ETHIOPIC SYLLABLE QE
+1246 ; [.24EB.0020.0002] # ETHIOPIC SYLLABLE QO
+1247 ; [.24EC.0020.0002] # ETHIOPIC SYLLABLE QOA
+1248 ; [.24ED.0020.0002] # ETHIOPIC SYLLABLE QWA
+124A ; [.24EE.0020.0002] # ETHIOPIC SYLLABLE QWI
+124B ; [.24EF.0020.0002] # ETHIOPIC SYLLABLE QWAA
+124C ; [.24F0.0020.0002] # ETHIOPIC SYLLABLE QWEE
+124D ; [.24F1.0020.0002] # ETHIOPIC SYLLABLE QWE
+1250 ; [.24F2.0020.0002] # ETHIOPIC SYLLABLE QHA
+1251 ; [.24F3.0020.0002] # ETHIOPIC SYLLABLE QHU
+1252 ; [.24F4.0020.0002] # ETHIOPIC SYLLABLE QHI
+1253 ; [.24F5.0020.0002] # ETHIOPIC SYLLABLE QHAA
+1254 ; [.24F6.0020.0002] # ETHIOPIC SYLLABLE QHEE
+1255 ; [.24F7.0020.0002] # ETHIOPIC SYLLABLE QHE
+1256 ; [.24F8.0020.0002] # ETHIOPIC SYLLABLE QHO
+1258 ; [.24F9.0020.0002] # ETHIOPIC SYLLABLE QHWA
+125A ; [.24FA.0020.0002] # ETHIOPIC SYLLABLE QHWI
+125B ; [.24FB.0020.0002] # ETHIOPIC SYLLABLE QHWAA
+125C ; [.24FC.0020.0002] # ETHIOPIC SYLLABLE QHWEE
+125D ; [.24FD.0020.0002] # ETHIOPIC SYLLABLE QHWE
+1260 ; [.24FE.0020.0002] # ETHIOPIC SYLLABLE BA
+1261 ; [.24FF.0020.0002] # ETHIOPIC SYLLABLE BU
+1262 ; [.2500.0020.0002] # ETHIOPIC SYLLABLE BI
+1263 ; [.2501.0020.0002] # ETHIOPIC SYLLABLE BAA
+1264 ; [.2502.0020.0002] # ETHIOPIC SYLLABLE BEE
+1265 ; [.2503.0020.0002] # ETHIOPIC SYLLABLE BE
+1266 ; [.2504.0020.0002] # ETHIOPIC SYLLABLE BO
+1267 ; [.2505.0020.0002] # ETHIOPIC SYLLABLE BWA
+1384 ; [.2506.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT BWA
+1385 ; [.2507.0020.0002] # ETHIOPIC SYLLABLE BWI
+1386 ; [.2508.0020.0002] # ETHIOPIC SYLLABLE BWEE
+1387 ; [.2509.0020.0002] # ETHIOPIC SYLLABLE BWE
+2D85 ; [.250A.0020.0002] # ETHIOPIC SYLLABLE BOA
+1268 ; [.250B.0020.0002] # ETHIOPIC SYLLABLE VA
+1269 ; [.250C.0020.0002] # ETHIOPIC SYLLABLE VU
+126A ; [.250D.0020.0002] # ETHIOPIC SYLLABLE VI
+126B ; [.250E.0020.0002] # ETHIOPIC SYLLABLE VAA
+126C ; [.250F.0020.0002] # ETHIOPIC SYLLABLE VEE
+126D ; [.2510.0020.0002] # ETHIOPIC SYLLABLE VE
+126E ; [.2511.0020.0002] # ETHIOPIC SYLLABLE VO
+126F ; [.2512.0020.0002] # ETHIOPIC SYLLABLE VWA
+1270 ; [.2513.0020.0002] # ETHIOPIC SYLLABLE TA
+1271 ; [.2514.0020.0002] # ETHIOPIC SYLLABLE TU
+1272 ; [.2515.0020.0002] # ETHIOPIC SYLLABLE TI
+1273 ; [.2516.0020.0002] # ETHIOPIC SYLLABLE TAA
+1274 ; [.2517.0020.0002] # ETHIOPIC SYLLABLE TEE
+1275 ; [.2518.0020.0002] # ETHIOPIC SYLLABLE TE
+1276 ; [.2519.0020.0002] # ETHIOPIC SYLLABLE TO
+1277 ; [.251A.0020.0002] # ETHIOPIC SYLLABLE TWA
+2D86 ; [.251B.0020.0002] # ETHIOPIC SYLLABLE TOA
+1278 ; [.251C.0020.0002] # ETHIOPIC SYLLABLE CA
+1279 ; [.251D.0020.0002] # ETHIOPIC SYLLABLE CU
+127A ; [.251E.0020.0002] # ETHIOPIC SYLLABLE CI
+127B ; [.251F.0020.0002] # ETHIOPIC SYLLABLE CAA
+127C ; [.2520.0020.0002] # ETHIOPIC SYLLABLE CEE
+127D ; [.2521.0020.0002] # ETHIOPIC SYLLABLE CE
+127E ; [.2522.0020.0002] # ETHIOPIC SYLLABLE CO
+127F ; [.2523.0020.0002] # ETHIOPIC SYLLABLE CWA
+2D87 ; [.2524.0020.0002] # ETHIOPIC SYLLABLE COA
+1280 ; [.2525.0020.0002] # ETHIOPIC SYLLABLE XA
+1281 ; [.2526.0020.0002] # ETHIOPIC SYLLABLE XU
+1282 ; [.2527.0020.0002] # ETHIOPIC SYLLABLE XI
+1283 ; [.2528.0020.0002] # ETHIOPIC SYLLABLE XAA
+1284 ; [.2529.0020.0002] # ETHIOPIC SYLLABLE XEE
+1285 ; [.252A.0020.0002] # ETHIOPIC SYLLABLE XE
+1286 ; [.252B.0020.0002] # ETHIOPIC SYLLABLE XO
+1287 ; [.252C.0020.0002] # ETHIOPIC SYLLABLE XOA
+1288 ; [.252D.0020.0002] # ETHIOPIC SYLLABLE XWA
+128A ; [.252E.0020.0002] # ETHIOPIC SYLLABLE XWI
+128B ; [.252F.0020.0002] # ETHIOPIC SYLLABLE XWAA
+128C ; [.2530.0020.0002] # ETHIOPIC SYLLABLE XWEE
+128D ; [.2531.0020.0002] # ETHIOPIC SYLLABLE XWE
+1290 ; [.2532.0020.0002] # ETHIOPIC SYLLABLE NA
+1291 ; [.2533.0020.0002] # ETHIOPIC SYLLABLE NU
+1292 ; [.2534.0020.0002] # ETHIOPIC SYLLABLE NI
+1293 ; [.2535.0020.0002] # ETHIOPIC SYLLABLE NAA
+1294 ; [.2536.0020.0002] # ETHIOPIC SYLLABLE NEE
+1295 ; [.2537.0020.0002] # ETHIOPIC SYLLABLE NE
+1296 ; [.2538.0020.0002] # ETHIOPIC SYLLABLE NO
+1297 ; [.2539.0020.0002] # ETHIOPIC SYLLABLE NWA
+2D88 ; [.253A.0020.0002] # ETHIOPIC SYLLABLE NOA
+1298 ; [.253B.0020.0002] # ETHIOPIC SYLLABLE NYA
+1299 ; [.253C.0020.0002] # ETHIOPIC SYLLABLE NYU
+129A ; [.253D.0020.0002] # ETHIOPIC SYLLABLE NYI
+129B ; [.253E.0020.0002] # ETHIOPIC SYLLABLE NYAA
+129C ; [.253F.0020.0002] # ETHIOPIC SYLLABLE NYEE
+129D ; [.2540.0020.0002] # ETHIOPIC SYLLABLE NYE
+129E ; [.2541.0020.0002] # ETHIOPIC SYLLABLE NYO
+129F ; [.2542.0020.0002] # ETHIOPIC SYLLABLE NYWA
+2D89 ; [.2543.0020.0002] # ETHIOPIC SYLLABLE NYOA
+12A0 ; [.2544.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL A
+12A1 ; [.2545.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL U
+12A2 ; [.2546.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL I
+12A3 ; [.2547.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL AA
+12A4 ; [.2548.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL EE
+12A5 ; [.2549.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL E
+12A6 ; [.254A.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL O
+12A7 ; [.254B.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL WA
+2D8A ; [.254C.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL OA
+12A8 ; [.254D.0020.0002] # ETHIOPIC SYLLABLE KA
+12A9 ; [.254E.0020.0002] # ETHIOPIC SYLLABLE KU
+12AA ; [.254F.0020.0002] # ETHIOPIC SYLLABLE KI
+12AB ; [.2550.0020.0002] # ETHIOPIC SYLLABLE KAA
+12AC ; [.2551.0020.0002] # ETHIOPIC SYLLABLE KEE
+12AD ; [.2552.0020.0002] # ETHIOPIC SYLLABLE KE
+12AE ; [.2553.0020.0002] # ETHIOPIC SYLLABLE KO
+12AF ; [.2554.0020.0002] # ETHIOPIC SYLLABLE KOA
+12B0 ; [.2555.0020.0002] # ETHIOPIC SYLLABLE KWA
+12B2 ; [.2556.0020.0002] # ETHIOPIC SYLLABLE KWI
+12B3 ; [.2557.0020.0002] # ETHIOPIC SYLLABLE KWAA
+12B4 ; [.2558.0020.0002] # ETHIOPIC SYLLABLE KWEE
+12B5 ; [.2559.0020.0002] # ETHIOPIC SYLLABLE KWE
+12B8 ; [.255A.0020.0002] # ETHIOPIC SYLLABLE KXA
+12B9 ; [.255B.0020.0002] # ETHIOPIC SYLLABLE KXU
+12BA ; [.255C.0020.0002] # ETHIOPIC SYLLABLE KXI
+12BB ; [.255D.0020.0002] # ETHIOPIC SYLLABLE KXAA
+12BC ; [.255E.0020.0002] # ETHIOPIC SYLLABLE KXEE
+12BD ; [.255F.0020.0002] # ETHIOPIC SYLLABLE KXE
+12BE ; [.2560.0020.0002] # ETHIOPIC SYLLABLE KXO
+12C0 ; [.2561.0020.0002] # ETHIOPIC SYLLABLE KXWA
+12C2 ; [.2562.0020.0002] # ETHIOPIC SYLLABLE KXWI
+12C3 ; [.2563.0020.0002] # ETHIOPIC SYLLABLE KXWAA
+12C4 ; [.2564.0020.0002] # ETHIOPIC SYLLABLE KXWEE
+12C5 ; [.2565.0020.0002] # ETHIOPIC SYLLABLE KXWE
+12C8 ; [.2566.0020.0002] # ETHIOPIC SYLLABLE WA
+12C9 ; [.2567.0020.0002] # ETHIOPIC SYLLABLE WU
+12CA ; [.2568.0020.0002] # ETHIOPIC SYLLABLE WI
+12CB ; [.2569.0020.0002] # ETHIOPIC SYLLABLE WAA
+12CC ; [.256A.0020.0002] # ETHIOPIC SYLLABLE WEE
+12CD ; [.256B.0020.0002] # ETHIOPIC SYLLABLE WE
+12CE ; [.256C.0020.0002] # ETHIOPIC SYLLABLE WO
+12CF ; [.256D.0020.0002] # ETHIOPIC SYLLABLE WOA
+12D0 ; [.256E.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL A
+12D1 ; [.256F.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL U
+12D2 ; [.2570.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL I
+12D3 ; [.2571.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL AA
+12D4 ; [.2572.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL EE
+12D5 ; [.2573.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL E
+12D6 ; [.2574.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8 ; [.2575.0020.0002] # ETHIOPIC SYLLABLE ZA
+12D9 ; [.2576.0020.0002] # ETHIOPIC SYLLABLE ZU
+12DA ; [.2577.0020.0002] # ETHIOPIC SYLLABLE ZI
+12DB ; [.2578.0020.0002] # ETHIOPIC SYLLABLE ZAA
+12DC ; [.2579.0020.0002] # ETHIOPIC SYLLABLE ZEE
+12DD ; [.257A.0020.0002] # ETHIOPIC SYLLABLE ZE
+12DE ; [.257B.0020.0002] # ETHIOPIC SYLLABLE ZO
+12DF ; [.257C.0020.0002] # ETHIOPIC SYLLABLE ZWA
+2D8B ; [.257D.0020.0002] # ETHIOPIC SYLLABLE ZOA
+AB11 ; [.257E.0020.0002] # ETHIOPIC SYLLABLE DZU
+AB12 ; [.257F.0020.0002] # ETHIOPIC SYLLABLE DZI
+AB13 ; [.2580.0020.0002] # ETHIOPIC SYLLABLE DZAA
+AB14 ; [.2581.0020.0002] # ETHIOPIC SYLLABLE DZEE
+AB15 ; [.2582.0020.0002] # ETHIOPIC SYLLABLE DZE
+AB16 ; [.2583.0020.0002] # ETHIOPIC SYLLABLE DZO
+12E0 ; [.2584.0020.0002] # ETHIOPIC SYLLABLE ZHA
+12E1 ; [.2585.0020.0002] # ETHIOPIC SYLLABLE ZHU
+12E2 ; [.2586.0020.0002] # ETHIOPIC SYLLABLE ZHI
+12E3 ; [.2587.0020.0002] # ETHIOPIC SYLLABLE ZHAA
+12E4 ; [.2588.0020.0002] # ETHIOPIC SYLLABLE ZHEE
+12E5 ; [.2589.0020.0002] # ETHIOPIC SYLLABLE ZHE
+12E6 ; [.258A.0020.0002] # ETHIOPIC SYLLABLE ZHO
+12E7 ; [.258B.0020.0002] # ETHIOPIC SYLLABLE ZHWA
+12E8 ; [.258C.0020.0002] # ETHIOPIC SYLLABLE YA
+12E9 ; [.258D.0020.0002] # ETHIOPIC SYLLABLE YU
+12EA ; [.258E.0020.0002] # ETHIOPIC SYLLABLE YI
+12EB ; [.258F.0020.0002] # ETHIOPIC SYLLABLE YAA
+12EC ; [.2590.0020.0002] # ETHIOPIC SYLLABLE YEE
+12ED ; [.2591.0020.0002] # ETHIOPIC SYLLABLE YE
+12EE ; [.2592.0020.0002] # ETHIOPIC SYLLABLE YO
+12EF ; [.2593.0020.0002] # ETHIOPIC SYLLABLE YOA
+12F0 ; [.2594.0020.0002] # ETHIOPIC SYLLABLE DA
+12F1 ; [.2595.0020.0002] # ETHIOPIC SYLLABLE DU
+12F2 ; [.2596.0020.0002] # ETHIOPIC SYLLABLE DI
+12F3 ; [.2597.0020.0002] # ETHIOPIC SYLLABLE DAA
+12F4 ; [.2598.0020.0002] # ETHIOPIC SYLLABLE DEE
+12F5 ; [.2599.0020.0002] # ETHIOPIC SYLLABLE DE
+12F6 ; [.259A.0020.0002] # ETHIOPIC SYLLABLE DO
+12F7 ; [.259B.0020.0002] # ETHIOPIC SYLLABLE DWA
+2D8C ; [.259C.0020.0002] # ETHIOPIC SYLLABLE DOA
+AB09 ; [.259D.0020.0002] # ETHIOPIC SYLLABLE DDHU
+AB0A ; [.259E.0020.0002] # ETHIOPIC SYLLABLE DDHI
+AB0B ; [.259F.0020.0002] # ETHIOPIC SYLLABLE DDHAA
+AB0C ; [.25A0.0020.0002] # ETHIOPIC SYLLABLE DDHEE
+AB0D ; [.25A1.0020.0002] # ETHIOPIC SYLLABLE DDHE
+AB0E ; [.25A2.0020.0002] # ETHIOPIC SYLLABLE DDHO
+12F8 ; [.25A3.0020.0002] # ETHIOPIC SYLLABLE DDA
+12F9 ; [.25A4.0020.0002] # ETHIOPIC SYLLABLE DDU
+12FA ; [.25A5.0020.0002] # ETHIOPIC SYLLABLE DDI
+12FB ; [.25A6.0020.0002] # ETHIOPIC SYLLABLE DDAA
+12FC ; [.25A7.0020.0002] # ETHIOPIC SYLLABLE DDEE
+12FD ; [.25A8.0020.0002] # ETHIOPIC SYLLABLE DDE
+12FE ; [.25A9.0020.0002] # ETHIOPIC SYLLABLE DDO
+12FF ; [.25AA.0020.0002] # ETHIOPIC SYLLABLE DDWA
+2D8D ; [.25AB.0020.0002] # ETHIOPIC SYLLABLE DDOA
+1300 ; [.25AC.0020.0002] # ETHIOPIC SYLLABLE JA
+1301 ; [.25AD.0020.0002] # ETHIOPIC SYLLABLE JU
+1302 ; [.25AE.0020.0002] # ETHIOPIC SYLLABLE JI
+1303 ; [.25AF.0020.0002] # ETHIOPIC SYLLABLE JAA
+1304 ; [.25B0.0020.0002] # ETHIOPIC SYLLABLE JEE
+1305 ; [.25B1.0020.0002] # ETHIOPIC SYLLABLE JE
+1306 ; [.25B2.0020.0002] # ETHIOPIC SYLLABLE JO
+1307 ; [.25B3.0020.0002] # ETHIOPIC SYLLABLE JWA
+2D8E ; [.25B4.0020.0002] # ETHIOPIC SYLLABLE JOA
+1308 ; [.25B5.0020.0002] # ETHIOPIC SYLLABLE GA
+1309 ; [.25B6.0020.0002] # ETHIOPIC SYLLABLE GU
+130A ; [.25B7.0020.0002] # ETHIOPIC SYLLABLE GI
+130B ; [.25B8.0020.0002] # ETHIOPIC SYLLABLE GAA
+130C ; [.25B9.0020.0002] # ETHIOPIC SYLLABLE GEE
+130D ; [.25BA.0020.0002] # ETHIOPIC SYLLABLE GE
+130E ; [.25BB.0020.0002] # ETHIOPIC SYLLABLE GO
+130F ; [.25BC.0020.0002] # ETHIOPIC SYLLABLE GOA
+1310 ; [.25BD.0020.0002] # ETHIOPIC SYLLABLE GWA
+1312 ; [.25BE.0020.0002] # ETHIOPIC SYLLABLE GWI
+1313 ; [.25BF.0020.0002] # ETHIOPIC SYLLABLE GWAA
+1314 ; [.25C0.0020.0002] # ETHIOPIC SYLLABLE GWEE
+1315 ; [.25C1.0020.0002] # ETHIOPIC SYLLABLE GWE
+1318 ; [.25C2.0020.0002] # ETHIOPIC SYLLABLE GGA
+1319 ; [.25C3.0020.0002] # ETHIOPIC SYLLABLE GGU
+131A ; [.25C4.0020.0002] # ETHIOPIC SYLLABLE GGI
+131B ; [.25C5.0020.0002] # ETHIOPIC SYLLABLE GGAA
+131C ; [.25C6.0020.0002] # ETHIOPIC SYLLABLE GGEE
+131D ; [.25C7.0020.0002] # ETHIOPIC SYLLABLE GGE
+131E ; [.25C8.0020.0002] # ETHIOPIC SYLLABLE GGO
+131F ; [.25C9.0020.0002] # ETHIOPIC SYLLABLE GGWAA
+2D93 ; [.25CA.0020.0002] # ETHIOPIC SYLLABLE GGWA
+2D94 ; [.25CB.0020.0002] # ETHIOPIC SYLLABLE GGWI
+2D95 ; [.25CC.0020.0002] # ETHIOPIC SYLLABLE GGWEE
+2D96 ; [.25CD.0020.0002] # ETHIOPIC SYLLABLE GGWE
+1320 ; [.25CE.0020.0002] # ETHIOPIC SYLLABLE THA
+1321 ; [.25CF.0020.0002] # ETHIOPIC SYLLABLE THU
+1322 ; [.25D0.0020.0002] # ETHIOPIC SYLLABLE THI
+1323 ; [.25D1.0020.0002] # ETHIOPIC SYLLABLE THAA
+1324 ; [.25D2.0020.0002] # ETHIOPIC SYLLABLE THEE
+1325 ; [.25D3.0020.0002] # ETHIOPIC SYLLABLE THE
+1326 ; [.25D4.0020.0002] # ETHIOPIC SYLLABLE THO
+1327 ; [.25D5.0020.0002] # ETHIOPIC SYLLABLE THWA
+2D8F ; [.25D6.0020.0002] # ETHIOPIC SYLLABLE THOA
+1328 ; [.25D7.0020.0002] # ETHIOPIC SYLLABLE CHA
+1329 ; [.25D8.0020.0002] # ETHIOPIC SYLLABLE CHU
+132A ; [.25D9.0020.0002] # ETHIOPIC SYLLABLE CHI
+132B ; [.25DA.0020.0002] # ETHIOPIC SYLLABLE CHAA
+132C ; [.25DB.0020.0002] # ETHIOPIC SYLLABLE CHEE
+132D ; [.25DC.0020.0002] # ETHIOPIC SYLLABLE CHE
+132E ; [.25DD.0020.0002] # ETHIOPIC SYLLABLE CHO
+132F ; [.25DE.0020.0002] # ETHIOPIC SYLLABLE CHWA
+2D90 ; [.25DF.0020.0002] # ETHIOPIC SYLLABLE CHOA
+AB20 ; [.25E0.0020.0002] # ETHIOPIC SYLLABLE CCHHA
+AB21 ; [.25E1.0020.0002] # ETHIOPIC SYLLABLE CCHHU
+AB22 ; [.25E2.0020.0002] # ETHIOPIC SYLLABLE CCHHI
+AB23 ; [.25E3.0020.0002] # ETHIOPIC SYLLABLE CCHHAA
+AB24 ; [.25E4.0020.0002] # ETHIOPIC SYLLABLE CCHHEE
+AB25 ; [.25E5.0020.0002] # ETHIOPIC SYLLABLE CCHHE
+AB26 ; [.25E6.0020.0002] # ETHIOPIC SYLLABLE CCHHO
+1330 ; [.25E7.0020.0002] # ETHIOPIC SYLLABLE PHA
+1331 ; [.25E8.0020.0002] # ETHIOPIC SYLLABLE PHU
+1332 ; [.25E9.0020.0002] # ETHIOPIC SYLLABLE PHI
+1333 ; [.25EA.0020.0002] # ETHIOPIC SYLLABLE PHAA
+1334 ; [.25EB.0020.0002] # ETHIOPIC SYLLABLE PHEE
+1335 ; [.25EC.0020.0002] # ETHIOPIC SYLLABLE PHE
+1336 ; [.25ED.0020.0002] # ETHIOPIC SYLLABLE PHO
+1337 ; [.25EE.0020.0002] # ETHIOPIC SYLLABLE PHWA
+2D91 ; [.25EF.0020.0002] # ETHIOPIC SYLLABLE PHOA
+1338 ; [.25F0.0020.0002] # ETHIOPIC SYLLABLE TSA
+1339 ; [.25F1.0020.0002] # ETHIOPIC SYLLABLE TSU
+133A ; [.25F2.0020.0002] # ETHIOPIC SYLLABLE TSI
+133B ; [.25F3.0020.0002] # ETHIOPIC SYLLABLE TSAA
+133C ; [.25F4.0020.0002] # ETHIOPIC SYLLABLE TSEE
+133D ; [.25F5.0020.0002] # ETHIOPIC SYLLABLE TSE
+133E ; [.25F6.0020.0002] # ETHIOPIC SYLLABLE TSO
+133F ; [.25F7.0020.0002] # ETHIOPIC SYLLABLE TSWA
+AB28 ; [.25F8.0020.0002] # ETHIOPIC SYLLABLE BBA
+AB29 ; [.25F9.0020.0002] # ETHIOPIC SYLLABLE BBU
+AB2A ; [.25FA.0020.0002] # ETHIOPIC SYLLABLE BBI
+AB2B ; [.25FB.0020.0002] # ETHIOPIC SYLLABLE BBAA
+AB2C ; [.25FC.0020.0002] # ETHIOPIC SYLLABLE BBEE
+AB2D ; [.25FD.0020.0002] # ETHIOPIC SYLLABLE BBE
+AB2E ; [.25FE.0020.0002] # ETHIOPIC SYLLABLE BBO
+1340 ; [.25FF.0020.0002] # ETHIOPIC SYLLABLE TZA
+1341 ; [.2600.0020.0002] # ETHIOPIC SYLLABLE TZU
+1342 ; [.2601.0020.0002] # ETHIOPIC SYLLABLE TZI
+1343 ; [.2602.0020.0002] # ETHIOPIC SYLLABLE TZAA
+1344 ; [.2603.0020.0002] # ETHIOPIC SYLLABLE TZEE
+1345 ; [.2604.0020.0002] # ETHIOPIC SYLLABLE TZE
+1346 ; [.2605.0020.0002] # ETHIOPIC SYLLABLE TZO
+1347 ; [.2606.0020.0002] # ETHIOPIC SYLLABLE TZOA
+1348 ; [.2607.0020.0002] # ETHIOPIC SYLLABLE FA
+1349 ; [.2608.0020.0002] # ETHIOPIC SYLLABLE FU
+134A ; [.2609.0020.0002] # ETHIOPIC SYLLABLE FI
+134B ; [.260A.0020.0002] # ETHIOPIC SYLLABLE FAA
+134C ; [.260B.0020.0002] # ETHIOPIC SYLLABLE FEE
+134D ; [.260C.0020.0002] # ETHIOPIC SYLLABLE FE
+134E ; [.260D.0020.0002] # ETHIOPIC SYLLABLE FO
+134F ; [.260E.0020.0002] # ETHIOPIC SYLLABLE FWA
+1388 ; [.260F.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT FWA
+1389 ; [.2610.0020.0002] # ETHIOPIC SYLLABLE FWI
+138A ; [.2611.0020.0002] # ETHIOPIC SYLLABLE FWEE
+138B ; [.2612.0020.0002] # ETHIOPIC SYLLABLE FWE
+1350 ; [.2613.0020.0002] # ETHIOPIC SYLLABLE PA
+1351 ; [.2614.0020.0002] # ETHIOPIC SYLLABLE PU
+1352 ; [.2615.0020.0002] # ETHIOPIC SYLLABLE PI
+1353 ; [.2616.0020.0002] # ETHIOPIC SYLLABLE PAA
+1354 ; [.2617.0020.0002] # ETHIOPIC SYLLABLE PEE
+1355 ; [.2618.0020.0002] # ETHIOPIC SYLLABLE PE
+1356 ; [.2619.0020.0002] # ETHIOPIC SYLLABLE PO
+1357 ; [.261A.0020.0002] # ETHIOPIC SYLLABLE PWA
+138C ; [.261B.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT PWA
+138D ; [.261C.0020.0002] # ETHIOPIC SYLLABLE PWI
+138E ; [.261D.0020.0002] # ETHIOPIC SYLLABLE PWEE
+138F ; [.261E.0020.0002] # ETHIOPIC SYLLABLE PWE
+2D92 ; [.261F.0020.0002] # ETHIOPIC SYLLABLE POA
+1358 ; [.2620.0020.0002] # ETHIOPIC SYLLABLE RYA
+1359 ; [.2621.0020.0002] # ETHIOPIC SYLLABLE MYA
+135A ; [.2622.0020.0002] # ETHIOPIC SYLLABLE FYA
+2DA0 ; [.2623.0020.0002] # ETHIOPIC SYLLABLE SSA
+2DA1 ; [.2624.0020.0002] # ETHIOPIC SYLLABLE SSU
+2DA2 ; [.2625.0020.0002] # ETHIOPIC SYLLABLE SSI
+2DA3 ; [.2626.0020.0002] # ETHIOPIC SYLLABLE SSAA
+2DA4 ; [.2627.0020.0002] # ETHIOPIC SYLLABLE SSEE
+2DA5 ; [.2628.0020.0002] # ETHIOPIC SYLLABLE SSE
+2DA6 ; [.2629.0020.0002] # ETHIOPIC SYLLABLE SSO
+2DA8 ; [.262A.0020.0002] # ETHIOPIC SYLLABLE CCA
+2DA9 ; [.262B.0020.0002] # ETHIOPIC SYLLABLE CCU
+2DAA ; [.262C.0020.0002] # ETHIOPIC SYLLABLE CCI
+2DAB ; [.262D.0020.0002] # ETHIOPIC SYLLABLE CCAA
+2DAC ; [.262E.0020.0002] # ETHIOPIC SYLLABLE CCEE
+2DAD ; [.262F.0020.0002] # ETHIOPIC SYLLABLE CCE
+2DAE ; [.2630.0020.0002] # ETHIOPIC SYLLABLE CCO
+2DB0 ; [.2631.0020.0002] # ETHIOPIC SYLLABLE ZZA
+2DB1 ; [.2632.0020.0002] # ETHIOPIC SYLLABLE ZZU
+2DB2 ; [.2633.0020.0002] # ETHIOPIC SYLLABLE ZZI
+2DB3 ; [.2634.0020.0002] # ETHIOPIC SYLLABLE ZZAA
+2DB4 ; [.2635.0020.0002] # ETHIOPIC SYLLABLE ZZEE
+2DB5 ; [.2636.0020.0002] # ETHIOPIC SYLLABLE ZZE
+2DB6 ; [.2637.0020.0002] # ETHIOPIC SYLLABLE ZZO
+2DB8 ; [.2638.0020.0002] # ETHIOPIC SYLLABLE CCHA
+2DB9 ; [.2639.0020.0002] # ETHIOPIC SYLLABLE CCHU
+2DBA ; [.263A.0020.0002] # ETHIOPIC SYLLABLE CCHI
+2DBB ; [.263B.0020.0002] # ETHIOPIC SYLLABLE CCHAA
+2DBC ; [.263C.0020.0002] # ETHIOPIC SYLLABLE CCHEE
+2DBD ; [.263D.0020.0002] # ETHIOPIC SYLLABLE CCHE
+2DBE ; [.263E.0020.0002] # ETHIOPIC SYLLABLE CCHO
+2DC0 ; [.263F.0020.0002] # ETHIOPIC SYLLABLE QYA
+2DC1 ; [.2640.0020.0002] # ETHIOPIC SYLLABLE QYU
+2DC2 ; [.2641.0020.0002] # ETHIOPIC SYLLABLE QYI
+2DC3 ; [.2642.0020.0002] # ETHIOPIC SYLLABLE QYAA
+2DC4 ; [.2643.0020.0002] # ETHIOPIC SYLLABLE QYEE
+2DC5 ; [.2644.0020.0002] # ETHIOPIC SYLLABLE QYE
+2DC6 ; [.2645.0020.0002] # ETHIOPIC SYLLABLE QYO
+2DC8 ; [.2646.0020.0002] # ETHIOPIC SYLLABLE KYA
+2DC9 ; [.2647.0020.0002] # ETHIOPIC SYLLABLE KYU
+2DCA ; [.2648.0020.0002] # ETHIOPIC SYLLABLE KYI
+2DCB ; [.2649.0020.0002] # ETHIOPIC SYLLABLE KYAA
+2DCC ; [.264A.0020.0002] # ETHIOPIC SYLLABLE KYEE
+2DCD ; [.264B.0020.0002] # ETHIOPIC SYLLABLE KYE
+2DCE ; [.264C.0020.0002] # ETHIOPIC SYLLABLE KYO
+2DD0 ; [.264D.0020.0002] # ETHIOPIC SYLLABLE XYA
+2DD1 ; [.264E.0020.0002] # ETHIOPIC SYLLABLE XYU
+2DD2 ; [.264F.0020.0002] # ETHIOPIC SYLLABLE XYI
+2DD3 ; [.2650.0020.0002] # ETHIOPIC SYLLABLE XYAA
+2DD4 ; [.2651.0020.0002] # ETHIOPIC SYLLABLE XYEE
+2DD5 ; [.2652.0020.0002] # ETHIOPIC SYLLABLE XYE
+2DD6 ; [.2653.0020.0002] # ETHIOPIC SYLLABLE XYO
+2DD8 ; [.2654.0020.0002] # ETHIOPIC SYLLABLE GYA
+2DD9 ; [.2655.0020.0002] # ETHIOPIC SYLLABLE GYU
+2DDA ; [.2656.0020.0002] # ETHIOPIC SYLLABLE GYI
+2DDB ; [.2657.0020.0002] # ETHIOPIC SYLLABLE GYAA
+2DDC ; [.2658.0020.0002] # ETHIOPIC SYLLABLE GYEE
+2DDD ; [.2659.0020.0002] # ETHIOPIC SYLLABLE GYE
+2DDE ; [.265A.0020.0002] # ETHIOPIC SYLLABLE GYO
+0950 ; [.265B.0020.0002] # DEVANAGARI OM
+A8FD ; [.265C.0020.0002] # DEVANAGARI JAIN OM
+0972 ; [.265D.0020.0002] # DEVANAGARI LETTER CANDRA A
+0904 ; [.265E.0020.0002] # DEVANAGARI LETTER SHORT A
+0905 ; [.265F.0020.0002] # DEVANAGARI LETTER A
+0906 ; [.2660.0020.0002] # DEVANAGARI LETTER AA
+0973 ; [.2661.0020.0002] # DEVANAGARI LETTER OE
+0974 ; [.2662.0020.0002] # DEVANAGARI LETTER OOE
+0975 ; [.2663.0020.0002] # DEVANAGARI LETTER AW
+0976 ; [.2664.0020.0002] # DEVANAGARI LETTER UE
+0977 ; [.2665.0020.0002] # DEVANAGARI LETTER UUE
+0907 ; [.2666.0020.0002] # DEVANAGARI LETTER I
+0908 ; [.2667.0020.0002] # DEVANAGARI LETTER II
+0909 ; [.2668.0020.0002] # DEVANAGARI LETTER U
+090A ; [.2669.0020.0002] # DEVANAGARI LETTER UU
+090B ; [.266A.0020.0002] # DEVANAGARI LETTER VOCALIC R
+0960 ; [.266B.0020.0002] # DEVANAGARI LETTER VOCALIC RR
+090C ; [.266C.0020.0002] # DEVANAGARI LETTER VOCALIC L
+0961 ; [.266D.0020.0002] # DEVANAGARI LETTER VOCALIC LL
+090D ; [.266E.0020.0002] # DEVANAGARI LETTER CANDRA E
+090E ; [.266F.0020.0002] # DEVANAGARI LETTER SHORT E
+090F ; [.2670.0020.0002] # DEVANAGARI LETTER E
+0910 ; [.2671.0020.0002] # DEVANAGARI LETTER AI
+0911 ; [.2672.0020.0002] # DEVANAGARI LETTER CANDRA O
+0912 ; [.2673.0020.0002] # DEVANAGARI LETTER SHORT O
+0913 ; [.2674.0020.0002] # DEVANAGARI LETTER O
+0914 ; [.2675.0020.0002] # DEVANAGARI LETTER AU
+0915 ; [.2676.0020.0002] # DEVANAGARI LETTER KA
+0958 ; [.2676.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER QA
+0916 ; [.2677.0020.0002] # DEVANAGARI LETTER KHA
+0959 ; [.2677.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER KHHA
+0917 ; [.2678.0020.0002] # DEVANAGARI LETTER GA
+095A ; [.2678.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER GHHA
+097B ; [.2679.0020.0002] # DEVANAGARI LETTER GGA
+0918 ; [.267A.0020.0002] # DEVANAGARI LETTER GHA
+0919 ; [.267B.0020.0002] # DEVANAGARI LETTER NGA
+091A ; [.267C.0020.0002] # DEVANAGARI LETTER CA
+091B ; [.267D.0020.0002] # DEVANAGARI LETTER CHA
+091C ; [.267E.0020.0002] # DEVANAGARI LETTER JA
+095B ; [.267E.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER ZA
+0979 ; [.267F.0020.0002] # DEVANAGARI LETTER ZHA
+097C ; [.2680.0020.0002] # DEVANAGARI LETTER JJA
+091D ; [.2681.0020.0002] # DEVANAGARI LETTER JHA
+091E ; [.2682.0020.0002] # DEVANAGARI LETTER NYA
+091F ; [.2683.0020.0002] # DEVANAGARI LETTER TTA
+0920 ; [.2684.0020.0002] # DEVANAGARI LETTER TTHA
+0978 ; [.2685.0020.0002] # DEVANAGARI LETTER MARWARI DDA
+0921 ; [.2686.0020.0002] # DEVANAGARI LETTER DDA
+095C ; [.2686.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER DDDHA
+097E ; [.2687.0020.0002] # DEVANAGARI LETTER DDDA
+0922 ; [.2688.0020.0002] # DEVANAGARI LETTER DDHA
+095D ; [.2688.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER RHA
+0923 ; [.2689.0020.0002] # DEVANAGARI LETTER NNA
+0924 ; [.268A.0020.0002] # DEVANAGARI LETTER TA
+0925 ; [.268B.0020.0002] # DEVANAGARI LETTER THA
+0926 ; [.268C.0020.0002] # DEVANAGARI LETTER DA
+0927 ; [.268D.0020.0002] # DEVANAGARI LETTER DHA
+0928 ; [.268E.0020.0002] # DEVANAGARI LETTER NA
+0929 ; [.268E.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER NNNA
+092A ; [.268F.0020.0002] # DEVANAGARI LETTER PA
+092B ; [.2690.0020.0002] # DEVANAGARI LETTER PHA
+095E ; [.2690.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER FA
+092C ; [.2691.0020.0002] # DEVANAGARI LETTER BA
+097F ; [.2692.0020.0002] # DEVANAGARI LETTER BBA
+092D ; [.2693.0020.0002] # DEVANAGARI LETTER BHA
+092E ; [.2694.0020.0002] # DEVANAGARI LETTER MA
+092F ; [.2695.0020.0002] # DEVANAGARI LETTER YA
+095F ; [.2695.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER YYA
+097A ; [.2696.0020.0002] # DEVANAGARI LETTER HEAVY YA
+0930 ; [.2697.0020.0002] # DEVANAGARI LETTER RA
+0931 ; [.2697.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER RRA
+0932 ; [.2698.0020.0002] # DEVANAGARI LETTER LA
+0933 ; [.2699.0020.0002] # DEVANAGARI LETTER LLA
+0934 ; [.2699.0020.0002][.0000.00C2.0002] # DEVANAGARI LETTER LLLA
+0935 ; [.269A.0020.0002] # DEVANAGARI LETTER VA
+0936 ; [.269B.0020.0002] # DEVANAGARI LETTER SHA
+0937 ; [.269C.0020.0002] # DEVANAGARI LETTER SSA
+0938 ; [.269D.0020.0002] # DEVANAGARI LETTER SA
+0939 ; [.269E.0020.0002] # DEVANAGARI LETTER HA
+093D ; [.269F.0020.0002] # DEVANAGARI SIGN AVAGRAHA
+097D ; [.26A0.0020.0002] # DEVANAGARI LETTER GLOTTAL STOP
+1CE9 ; [.26A1.0020.0002] # VEDIC SIGN ANUSVARA ANTARGOMUKHA
+1CEA ; [.26A1.0020.0004] # VEDIC SIGN ANUSVARA BAHIRGOMUKHA
+1CEB ; [.26A1.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA
+1CEC ; [.26A1.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+1CEE ; [.26A1.0020.0004] # VEDIC SIGN HEXIFORM LONG ANUSVARA
+1CEF ; [.26A1.0020.0004] # VEDIC SIGN LONG ANUSVARA
+1CF0 ; [.26A1.0020.0004] # VEDIC SIGN RTHANG LONG ANUSVARA
+1CF1 ; [.26A1.0020.0004] # VEDIC SIGN ANUSVARA UBHAYATO MUKHA
+1CF5 ; [.26A2.0020.0002] # VEDIC SIGN JIHVAMULIYA
+1CF6 ; [.26A3.0020.0002] # VEDIC SIGN UPADHMANIYA
+A8F2 ; [.26A4.0020.0002] # DEVANAGARI SIGN SPACING CANDRABINDU
+A8F3 ; [.26A4.0020.0004] # DEVANAGARI SIGN CANDRABINDU VIRAMA
+A8F4 ; [.26A4.0020.0004] # DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
+A8F5 ; [.26A4.0020.0004] # DEVANAGARI SIGN CANDRABINDU TWO
+A8F6 ; [.26A4.0020.0004] # DEVANAGARI SIGN CANDRABINDU THREE
+A8F7 ; [.26A4.0020.0004] # DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8FB ; [.26A5.0020.0002] # DEVANAGARI HEADSTROKE
+093E ; [.26A6.0020.0002] # DEVANAGARI VOWEL SIGN AA
+093A ; [.26A7.0020.0002] # DEVANAGARI VOWEL SIGN OE
+093B ; [.26A8.0020.0002] # DEVANAGARI VOWEL SIGN OOE
+094F ; [.26A9.0020.0002] # DEVANAGARI VOWEL SIGN AW
+0956 ; [.26AA.0020.0002] # DEVANAGARI VOWEL SIGN UE
+0957 ; [.26AB.0020.0002] # DEVANAGARI VOWEL SIGN UUE
+093F ; [.26AC.0020.0002] # DEVANAGARI VOWEL SIGN I
+0940 ; [.26AD.0020.0002] # DEVANAGARI VOWEL SIGN II
+0941 ; [.26AE.0020.0002] # DEVANAGARI VOWEL SIGN U
+0942 ; [.26AF.0020.0002] # DEVANAGARI VOWEL SIGN UU
+0943 ; [.26B0.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC R
+0944 ; [.26B1.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC RR
+0962 ; [.26B2.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC L
+0963 ; [.26B3.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC LL
+0945 ; [.26B4.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA E
+0955 ; [.26B5.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA LONG E
+0946 ; [.26B6.0020.0002] # DEVANAGARI VOWEL SIGN SHORT E
+0947 ; [.26B7.0020.0002] # DEVANAGARI VOWEL SIGN E
+094E ; [.26B8.0020.0002] # DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
+0948 ; [.26B9.0020.0002] # DEVANAGARI VOWEL SIGN AI
+0949 ; [.26BA.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA O
+094A ; [.26BB.0020.0002] # DEVANAGARI VOWEL SIGN SHORT O
+094B ; [.26BC.0020.0002] # DEVANAGARI VOWEL SIGN O
+094C ; [.26BD.0020.0002] # DEVANAGARI VOWEL SIGN AU
+094D ; [.26BE.0020.0002] # DEVANAGARI SIGN VIRAMA
+0980 ; [.26BF.0020.0002] # BENGALI ANJI
+0985 ; [.26C0.0020.0002] # BENGALI LETTER A
+0986 ; [.26C1.0020.0002] # BENGALI LETTER AA
+0987 ; [.26C2.0020.0002] # BENGALI LETTER I
+0988 ; [.26C3.0020.0002] # BENGALI LETTER II
+0989 ; [.26C4.0020.0002] # BENGALI LETTER U
+098A ; [.26C5.0020.0002] # BENGALI LETTER UU
+098B ; [.26C6.0020.0002] # BENGALI LETTER VOCALIC R
+09E0 ; [.26C7.0020.0002] # BENGALI LETTER VOCALIC RR
+098C ; [.26C8.0020.0002] # BENGALI LETTER VOCALIC L
+09E1 ; [.26C9.0020.0002] # BENGALI LETTER VOCALIC LL
+098F ; [.26CA.0020.0002] # BENGALI LETTER E
+0990 ; [.26CB.0020.0002] # BENGALI LETTER AI
+0993 ; [.26CC.0020.0002] # BENGALI LETTER O
+0994 ; [.26CD.0020.0002] # BENGALI LETTER AU
+0995 ; [.26CE.0020.0002] # BENGALI LETTER KA
+0996 ; [.26CF.0020.0002] # BENGALI LETTER KHA
+0997 ; [.26D0.0020.0002] # BENGALI LETTER GA
+0998 ; [.26D1.0020.0002] # BENGALI LETTER GHA
+0999 ; [.26D2.0020.0002] # BENGALI LETTER NGA
+099A ; [.26D3.0020.0002] # BENGALI LETTER CA
+099B ; [.26D4.0020.0002] # BENGALI LETTER CHA
+099C ; [.26D5.0020.0002] # BENGALI LETTER JA
+099D ; [.26D6.0020.0002] # BENGALI LETTER JHA
+099E ; [.26D7.0020.0002] # BENGALI LETTER NYA
+099F ; [.26D8.0020.0002] # BENGALI LETTER TTA
+09A0 ; [.26D9.0020.0002] # BENGALI LETTER TTHA
+09A1 ; [.26DA.0020.0002] # BENGALI LETTER DDA
+09DC ; [.26DA.0020.0002][.0000.00C2.0002] # BENGALI LETTER RRA
+09A2 ; [.26DB.0020.0002] # BENGALI LETTER DDHA
+09DD ; [.26DB.0020.0002][.0000.00C2.0002] # BENGALI LETTER RHA
+09A3 ; [.26DC.0020.0002] # BENGALI LETTER NNA
+09A4 ; [.26DD.0020.0002] # BENGALI LETTER TA
+09CE ; [.26DD.0020.0004][.26FE.0020.0004] # BENGALI LETTER KHANDA TA
+09A5 ; [.26DE.0020.0002] # BENGALI LETTER THA
+09A6 ; [.26DF.0020.0002] # BENGALI LETTER DA
+09A7 ; [.26E0.0020.0002] # BENGALI LETTER DHA
+09A8 ; [.26E1.0020.0002] # BENGALI LETTER NA
+09AA ; [.26E2.0020.0002] # BENGALI LETTER PA
+09AB ; [.26E3.0020.0002] # BENGALI LETTER PHA
+09AC ; [.26E4.0020.0002] # BENGALI LETTER BA
+09AD ; [.26E5.0020.0002] # BENGALI LETTER BHA
+09AE ; [.26E6.0020.0002] # BENGALI LETTER MA
+09AF ; [.26E7.0020.0002] # BENGALI LETTER YA
+09DF ; [.26E7.0020.0002][.0000.00C2.0002] # BENGALI LETTER YYA
+09B0 ; [.26E8.0020.0002] # BENGALI LETTER RA
+09F0 ; [.26E9.0020.0002] # BENGALI LETTER RA WITH MIDDLE DIAGONAL
+09B2 ; [.26EA.0020.0002] # BENGALI LETTER LA
+09F1 ; [.26EB.0020.0002] # BENGALI LETTER RA WITH LOWER DIAGONAL
+09B6 ; [.26EC.0020.0002] # BENGALI LETTER SHA
+09B7 ; [.26ED.0020.0002] # BENGALI LETTER SSA
+09B8 ; [.26EE.0020.0002] # BENGALI LETTER SA
+09B9 ; [.26EF.0020.0002] # BENGALI LETTER HA
+09BD ; [.26F0.0020.0002] # BENGALI SIGN AVAGRAHA
+09BE ; [.26F1.0020.0002] # BENGALI VOWEL SIGN AA
+09BF ; [.26F2.0020.0002] # BENGALI VOWEL SIGN I
+09C0 ; [.26F3.0020.0002] # BENGALI VOWEL SIGN II
+09C1 ; [.26F4.0020.0002] # BENGALI VOWEL SIGN U
+09C2 ; [.26F5.0020.0002] # BENGALI VOWEL SIGN UU
+09C3 ; [.26F6.0020.0002] # BENGALI VOWEL SIGN VOCALIC R
+09C4 ; [.26F7.0020.0002] # BENGALI VOWEL SIGN VOCALIC RR
+09E2 ; [.26F8.0020.0002] # BENGALI VOWEL SIGN VOCALIC L
+09E3 ; [.26F9.0020.0002] # BENGALI VOWEL SIGN VOCALIC LL
+09C7 ; [.26FA.0020.0002] # BENGALI VOWEL SIGN E
+09C8 ; [.26FB.0020.0002] # BENGALI VOWEL SIGN AI
+09CB ; [.26FC.0020.0002] # BENGALI VOWEL SIGN O
+09C7 09BE ; [.26FC.0020.0002] # BENGALI VOWEL SIGN O
+09CC ; [.26FD.0020.0002] # BENGALI VOWEL SIGN AU
+09C7 09D7 ; [.26FD.0020.0002] # BENGALI VOWEL SIGN AU
+09CD ; [.26FE.0020.0002] # BENGALI SIGN VIRAMA
+09D7 ; [.26FF.0020.0002] # BENGALI AU LENGTH MARK
+0A74 ; [.2700.0020.0002] # GURMUKHI EK ONKAR
+0A73 ; [.2701.0020.0002] # GURMUKHI URA
+0A09 ; [.2702.0020.0002] # GURMUKHI LETTER U
+0A0A ; [.2703.0020.0002] # GURMUKHI LETTER UU
+0A13 ; [.2704.0020.0002] # GURMUKHI LETTER OO
+0A05 ; [.2705.0020.0002] # GURMUKHI LETTER A
+0A06 ; [.2706.0020.0002] # GURMUKHI LETTER AA
+0A10 ; [.2707.0020.0002] # GURMUKHI LETTER AI
+0A14 ; [.2708.0020.0002] # GURMUKHI LETTER AU
+0A72 ; [.2709.0020.0002] # GURMUKHI IRI
+0A07 ; [.270A.0020.0002] # GURMUKHI LETTER I
+0A08 ; [.270B.0020.0002] # GURMUKHI LETTER II
+0A0F ; [.270C.0020.0002] # GURMUKHI LETTER EE
+0A38 ; [.270D.0020.0002] # GURMUKHI LETTER SA
+0A36 ; [.270D.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER SHA
+0A39 ; [.270E.0020.0002] # GURMUKHI LETTER HA
+0A51 ; [.270F.0020.0002] # GURMUKHI SIGN UDAAT
+0A15 ; [.2710.0020.0002] # GURMUKHI LETTER KA
+0A16 ; [.2711.0020.0002] # GURMUKHI LETTER KHA
+0A59 ; [.2711.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER KHHA
+0A17 ; [.2712.0020.0002] # GURMUKHI LETTER GA
+0A5A ; [.2712.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER GHHA
+0A18 ; [.2713.0020.0002] # GURMUKHI LETTER GHA
+0A19 ; [.2714.0020.0002] # GURMUKHI LETTER NGA
+0A1A ; [.2715.0020.0002] # GURMUKHI LETTER CA
+0A1B ; [.2716.0020.0002] # GURMUKHI LETTER CHA
+0A1C ; [.2717.0020.0002] # GURMUKHI LETTER JA
+0A5B ; [.2717.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER ZA
+0A1D ; [.2718.0020.0002] # GURMUKHI LETTER JHA
+0A1E ; [.2719.0020.0002] # GURMUKHI LETTER NYA
+0A1F ; [.271A.0020.0002] # GURMUKHI LETTER TTA
+0A20 ; [.271B.0020.0002] # GURMUKHI LETTER TTHA
+0A21 ; [.271C.0020.0002] # GURMUKHI LETTER DDA
+0A22 ; [.271D.0020.0002] # GURMUKHI LETTER DDHA
+0A23 ; [.271E.0020.0002] # GURMUKHI LETTER NNA
+0A24 ; [.271F.0020.0002] # GURMUKHI LETTER TA
+0A25 ; [.2720.0020.0002] # GURMUKHI LETTER THA
+0A26 ; [.2721.0020.0002] # GURMUKHI LETTER DA
+0A27 ; [.2722.0020.0002] # GURMUKHI LETTER DHA
+0A28 ; [.2723.0020.0002] # GURMUKHI LETTER NA
+0A2A ; [.2724.0020.0002] # GURMUKHI LETTER PA
+0A2B ; [.2725.0020.0002] # GURMUKHI LETTER PHA
+0A5E ; [.2725.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER FA
+0A2C ; [.2726.0020.0002] # GURMUKHI LETTER BA
+0A2D ; [.2727.0020.0002] # GURMUKHI LETTER BHA
+0A2E ; [.2728.0020.0002] # GURMUKHI LETTER MA
+0A2F ; [.2729.0020.0002] # GURMUKHI LETTER YA
+0A75 ; [.272A.0020.0002] # GURMUKHI SIGN YAKASH
+0A30 ; [.272B.0020.0002] # GURMUKHI LETTER RA
+0A32 ; [.272C.0020.0002] # GURMUKHI LETTER LA
+0A33 ; [.272C.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER LLA
+0A35 ; [.272D.0020.0002] # GURMUKHI LETTER VA
+0A5C ; [.272E.0020.0002] # GURMUKHI LETTER RRA
+0A3E ; [.272F.0020.0002] # GURMUKHI VOWEL SIGN AA
+0A3F ; [.2730.0020.0002] # GURMUKHI VOWEL SIGN I
+0A40 ; [.2731.0020.0002] # GURMUKHI VOWEL SIGN II
+0A41 ; [.2732.0020.0002] # GURMUKHI VOWEL SIGN U
+0A42 ; [.2733.0020.0002] # GURMUKHI VOWEL SIGN UU
+0A47 ; [.2734.0020.0002] # GURMUKHI VOWEL SIGN EE
+0A48 ; [.2735.0020.0002] # GURMUKHI VOWEL SIGN AI
+0A4B ; [.2736.0020.0002] # GURMUKHI VOWEL SIGN OO
+0A4C ; [.2737.0020.0002] # GURMUKHI VOWEL SIGN AU
+0A4D ; [.2738.0020.0002] # GURMUKHI SIGN VIRAMA
+0AD0 ; [.2739.0020.0002] # GUJARATI OM
+0A85 ; [.273A.0020.0002] # GUJARATI LETTER A
+0A86 ; [.273B.0020.0002] # GUJARATI LETTER AA
+0A87 ; [.273C.0020.0002] # GUJARATI LETTER I
+0A88 ; [.273D.0020.0002] # GUJARATI LETTER II
+0A89 ; [.273E.0020.0002] # GUJARATI LETTER U
+0A8A ; [.273F.0020.0002] # GUJARATI LETTER UU
+0A8B ; [.2740.0020.0002] # GUJARATI LETTER VOCALIC R
+0AE0 ; [.2741.0020.0002] # GUJARATI LETTER VOCALIC RR
+0A8C ; [.2742.0020.0002] # GUJARATI LETTER VOCALIC L
+0AE1 ; [.2743.0020.0002] # GUJARATI LETTER VOCALIC LL
+0A8D ; [.2744.0020.0002] # GUJARATI VOWEL CANDRA E
+0A8F ; [.2745.0020.0002] # GUJARATI LETTER E
+0A90 ; [.2746.0020.0002] # GUJARATI LETTER AI
+0A91 ; [.2747.0020.0002] # GUJARATI VOWEL CANDRA O
+0A93 ; [.2748.0020.0002] # GUJARATI LETTER O
+0A94 ; [.2749.0020.0002] # GUJARATI LETTER AU
+0A95 ; [.274A.0020.0002] # GUJARATI LETTER KA
+0A96 ; [.274B.0020.0002] # GUJARATI LETTER KHA
+0A97 ; [.274C.0020.0002] # GUJARATI LETTER GA
+0A98 ; [.274D.0020.0002] # GUJARATI LETTER GHA
+0A99 ; [.274E.0020.0002] # GUJARATI LETTER NGA
+0A9A ; [.274F.0020.0002] # GUJARATI LETTER CA
+0A9B ; [.2750.0020.0002] # GUJARATI LETTER CHA
+0A9C ; [.2751.0020.0002] # GUJARATI LETTER JA
+0AF9 ; [.2752.0020.0002] # GUJARATI LETTER ZHA
+0A9D ; [.2753.0020.0002] # GUJARATI LETTER JHA
+0A9E ; [.2754.0020.0002] # GUJARATI LETTER NYA
+0A9F ; [.2755.0020.0002] # GUJARATI LETTER TTA
+0AA0 ; [.2756.0020.0002] # GUJARATI LETTER TTHA
+0AA1 ; [.2757.0020.0002] # GUJARATI LETTER DDA
+0AA2 ; [.2758.0020.0002] # GUJARATI LETTER DDHA
+0AA3 ; [.2759.0020.0002] # GUJARATI LETTER NNA
+0AA4 ; [.275A.0020.0002] # GUJARATI LETTER TA
+0AA5 ; [.275B.0020.0002] # GUJARATI LETTER THA
+0AA6 ; [.275C.0020.0002] # GUJARATI LETTER DA
+0AA7 ; [.275D.0020.0002] # GUJARATI LETTER DHA
+0AA8 ; [.275E.0020.0002] # GUJARATI LETTER NA
+0AAA ; [.275F.0020.0002] # GUJARATI LETTER PA
+0AAB ; [.2760.0020.0002] # GUJARATI LETTER PHA
+0AAC ; [.2761.0020.0002] # GUJARATI LETTER BA
+0AAD ; [.2762.0020.0002] # GUJARATI LETTER BHA
+0AAE ; [.2763.0020.0002] # GUJARATI LETTER MA
+0AAF ; [.2764.0020.0002] # GUJARATI LETTER YA
+0AB0 ; [.2765.0020.0002] # GUJARATI LETTER RA
+0AB2 ; [.2766.0020.0002] # GUJARATI LETTER LA
+0AB5 ; [.2767.0020.0002] # GUJARATI LETTER VA
+0AB6 ; [.2768.0020.0002] # GUJARATI LETTER SHA
+0AB7 ; [.2769.0020.0002] # GUJARATI LETTER SSA
+0AB8 ; [.276A.0020.0002] # GUJARATI LETTER SA
+0AB9 ; [.276B.0020.0002] # GUJARATI LETTER HA
+0AB3 ; [.276C.0020.0002] # GUJARATI LETTER LLA
+0ABD ; [.276D.0020.0002] # GUJARATI SIGN AVAGRAHA
+0ABE ; [.276E.0020.0002] # GUJARATI VOWEL SIGN AA
+0ABF ; [.276F.0020.0002] # GUJARATI VOWEL SIGN I
+0AC0 ; [.2770.0020.0002] # GUJARATI VOWEL SIGN II
+0AC1 ; [.2771.0020.0002] # GUJARATI VOWEL SIGN U
+0AC2 ; [.2772.0020.0002] # GUJARATI VOWEL SIGN UU
+0AC3 ; [.2773.0020.0002] # GUJARATI VOWEL SIGN VOCALIC R
+0AC4 ; [.2774.0020.0002] # GUJARATI VOWEL SIGN VOCALIC RR
+0AE2 ; [.2775.0020.0002] # GUJARATI VOWEL SIGN VOCALIC L
+0AE3 ; [.2776.0020.0002] # GUJARATI VOWEL SIGN VOCALIC LL
+0AC5 ; [.2777.0020.0002] # GUJARATI VOWEL SIGN CANDRA E
+0AC7 ; [.2778.0020.0002] # GUJARATI VOWEL SIGN E
+0AC8 ; [.2779.0020.0002] # GUJARATI VOWEL SIGN AI
+0AC9 ; [.277A.0020.0002] # GUJARATI VOWEL SIGN CANDRA O
+0ACB ; [.277B.0020.0002] # GUJARATI VOWEL SIGN O
+0ACC ; [.277C.0020.0002] # GUJARATI VOWEL SIGN AU
+0ACD ; [.277D.0020.0002] # GUJARATI SIGN VIRAMA
+0B05 ; [.277E.0020.0002] # ORIYA LETTER A
+0B06 ; [.277F.0020.0002] # ORIYA LETTER AA
+0B07 ; [.2780.0020.0002] # ORIYA LETTER I
+0B08 ; [.2781.0020.0002] # ORIYA LETTER II
+0B09 ; [.2782.0020.0002] # ORIYA LETTER U
+0B0A ; [.2783.0020.0002] # ORIYA LETTER UU
+0B0B ; [.2784.0020.0002] # ORIYA LETTER VOCALIC R
+0B60 ; [.2785.0020.0002] # ORIYA LETTER VOCALIC RR
+0B0C ; [.2786.0020.0002] # ORIYA LETTER VOCALIC L
+0B61 ; [.2787.0020.0002] # ORIYA LETTER VOCALIC LL
+0B0F ; [.2788.0020.0002] # ORIYA LETTER E
+0B10 ; [.2789.0020.0002] # ORIYA LETTER AI
+0B13 ; [.278A.0020.0002] # ORIYA LETTER O
+0B14 ; [.278B.0020.0002] # ORIYA LETTER AU
+0B15 ; [.278C.0020.0002] # ORIYA LETTER KA
+0B16 ; [.278D.0020.0002] # ORIYA LETTER KHA
+0B17 ; [.278E.0020.0002] # ORIYA LETTER GA
+0B18 ; [.278F.0020.0002] # ORIYA LETTER GHA
+0B19 ; [.2790.0020.0002] # ORIYA LETTER NGA
+0B1A ; [.2791.0020.0002] # ORIYA LETTER CA
+0B1B ; [.2792.0020.0002] # ORIYA LETTER CHA
+0B1C ; [.2793.0020.0002] # ORIYA LETTER JA
+0B1D ; [.2794.0020.0002] # ORIYA LETTER JHA
+0B1E ; [.2795.0020.0002] # ORIYA LETTER NYA
+0B1F ; [.2796.0020.0002] # ORIYA LETTER TTA
+0B20 ; [.2797.0020.0002] # ORIYA LETTER TTHA
+0B21 ; [.2798.0020.0002] # ORIYA LETTER DDA
+0B5C ; [.2798.0020.0002][.0000.00C2.0002] # ORIYA LETTER RRA
+0B22 ; [.2799.0020.0002] # ORIYA LETTER DDHA
+0B5D ; [.2799.0020.0002][.0000.00C2.0002] # ORIYA LETTER RHA
+0B23 ; [.279A.0020.0002] # ORIYA LETTER NNA
+0B24 ; [.279B.0020.0002] # ORIYA LETTER TA
+0B25 ; [.279C.0020.0002] # ORIYA LETTER THA
+0B26 ; [.279D.0020.0002] # ORIYA LETTER DA
+0B27 ; [.279E.0020.0002] # ORIYA LETTER DHA
+0B28 ; [.279F.0020.0002] # ORIYA LETTER NA
+0B2A ; [.27A0.0020.0002] # ORIYA LETTER PA
+0B2B ; [.27A1.0020.0002] # ORIYA LETTER PHA
+0B2C ; [.27A2.0020.0002] # ORIYA LETTER BA
+0B2D ; [.27A3.0020.0002] # ORIYA LETTER BHA
+0B2E ; [.27A4.0020.0002] # ORIYA LETTER MA
+0B2F ; [.27A5.0020.0002] # ORIYA LETTER YA
+0B5F ; [.27A6.0020.0002] # ORIYA LETTER YYA
+0B30 ; [.27A7.0020.0002] # ORIYA LETTER RA
+0B32 ; [.27A8.0020.0002] # ORIYA LETTER LA
+0B33 ; [.27A9.0020.0002] # ORIYA LETTER LLA
+0B35 ; [.27AA.0020.0002] # ORIYA LETTER VA
+0B71 ; [.27AB.0020.0002] # ORIYA LETTER WA
+0B36 ; [.27AC.0020.0002] # ORIYA LETTER SHA
+0B37 ; [.27AD.0020.0002] # ORIYA LETTER SSA
+0B38 ; [.27AE.0020.0002] # ORIYA LETTER SA
+0B39 ; [.27AF.0020.0002] # ORIYA LETTER HA
+0B3D ; [.27B0.0020.0002] # ORIYA SIGN AVAGRAHA
+0B3E ; [.27B1.0020.0002] # ORIYA VOWEL SIGN AA
+0B3F ; [.27B2.0020.0002] # ORIYA VOWEL SIGN I
+0B40 ; [.27B3.0020.0002] # ORIYA VOWEL SIGN II
+0B41 ; [.27B4.0020.0002] # ORIYA VOWEL SIGN U
+0B42 ; [.27B5.0020.0002] # ORIYA VOWEL SIGN UU
+0B43 ; [.27B6.0020.0002] # ORIYA VOWEL SIGN VOCALIC R
+0B44 ; [.27B7.0020.0002] # ORIYA VOWEL SIGN VOCALIC RR
+0B62 ; [.27B8.0020.0002] # ORIYA VOWEL SIGN VOCALIC L
+0B63 ; [.27B9.0020.0002] # ORIYA VOWEL SIGN VOCALIC LL
+0B47 ; [.27BA.0020.0002] # ORIYA VOWEL SIGN E
+0B48 ; [.27BB.0020.0002] # ORIYA VOWEL SIGN AI
+0B47 0B56 ; [.27BB.0020.0002] # ORIYA VOWEL SIGN AI
+0B4B ; [.27BC.0020.0002] # ORIYA VOWEL SIGN O
+0B47 0B3E ; [.27BC.0020.0002] # ORIYA VOWEL SIGN O
+0B4C ; [.27BD.0020.0002] # ORIYA VOWEL SIGN AU
+0B47 0B57 ; [.27BD.0020.0002] # ORIYA VOWEL SIGN AU
+0B4D ; [.27BE.0020.0002] # ORIYA SIGN VIRAMA
+0B56 ; [.27BF.0020.0002] # ORIYA AI LENGTH MARK
+0B57 ; [.27C0.0020.0002] # ORIYA AU LENGTH MARK
+0BD0 ; [.27C1.0020.0002] # TAMIL OM
+0B85 ; [.27C2.0020.0002] # TAMIL LETTER A
+0B86 ; [.27C3.0020.0002] # TAMIL LETTER AA
+0B87 ; [.27C4.0020.0002] # TAMIL LETTER I
+0B88 ; [.27C5.0020.0002] # TAMIL LETTER II
+0B89 ; [.27C6.0020.0002] # TAMIL LETTER U
+0B8A ; [.27C7.0020.0002] # TAMIL LETTER UU
+0B8E ; [.27C8.0020.0002] # TAMIL LETTER E
+0B8F ; [.27C9.0020.0002] # TAMIL LETTER EE
+0B90 ; [.27CA.0020.0002] # TAMIL LETTER AI
+0B92 ; [.27CB.0020.0002] # TAMIL LETTER O
+0B93 ; [.27CC.0020.0002] # TAMIL LETTER OO
+0B94 ; [.27CD.0020.0002] # TAMIL LETTER AU
+0B92 0BD7 ; [.27CD.0020.0002] # TAMIL LETTER AU
+0B83 ; [.27CE.0020.0002] # TAMIL SIGN VISARGA
+0B95 ; [.27CF.0020.0002] # TAMIL LETTER KA
+0B99 ; [.27D0.0020.0002] # TAMIL LETTER NGA
+0B9A ; [.27D1.0020.0002] # TAMIL LETTER CA
+0B9E ; [.27D2.0020.0002] # TAMIL LETTER NYA
+0B9F ; [.27D3.0020.0002] # TAMIL LETTER TTA
+0BA3 ; [.27D4.0020.0002] # TAMIL LETTER NNA
+0BA4 ; [.27D5.0020.0002] # TAMIL LETTER TA
+0BA8 ; [.27D6.0020.0002] # TAMIL LETTER NA
+0BAA ; [.27D7.0020.0002] # TAMIL LETTER PA
+0BAE ; [.27D8.0020.0002] # TAMIL LETTER MA
+0BAF ; [.27D9.0020.0002] # TAMIL LETTER YA
+0BB0 ; [.27DA.0020.0002] # TAMIL LETTER RA
+0BB2 ; [.27DB.0020.0002] # TAMIL LETTER LA
+0BB5 ; [.27DC.0020.0002] # TAMIL LETTER VA
+0BB4 ; [.27DD.0020.0002] # TAMIL LETTER LLLA
+0BB3 ; [.27DE.0020.0002] # TAMIL LETTER LLA
+0BB1 ; [.27DF.0020.0002] # TAMIL LETTER RRA
+0BA9 ; [.27E0.0020.0002] # TAMIL LETTER NNNA
+0B9C ; [.27E1.0020.0002] # TAMIL LETTER JA
+0BB6 ; [.27E2.0020.0002] # TAMIL LETTER SHA
+0BB7 ; [.27E3.0020.0002] # TAMIL LETTER SSA
+0BB8 ; [.27E4.0020.0002] # TAMIL LETTER SA
+0BB9 ; [.27E5.0020.0002] # TAMIL LETTER HA
+0BBE ; [.27E6.0020.0002] # TAMIL VOWEL SIGN AA
+0BBF ; [.27E7.0020.0002] # TAMIL VOWEL SIGN I
+0BC0 ; [.27E8.0020.0002] # TAMIL VOWEL SIGN II
+0BC1 ; [.27E9.0020.0002] # TAMIL VOWEL SIGN U
+0BC2 ; [.27EA.0020.0002] # TAMIL VOWEL SIGN UU
+0BC6 ; [.27EB.0020.0002] # TAMIL VOWEL SIGN E
+0BC7 ; [.27EC.0020.0002] # TAMIL VOWEL SIGN EE
+0BC8 ; [.27ED.0020.0002] # TAMIL VOWEL SIGN AI
+0BCA ; [.27EE.0020.0002] # TAMIL VOWEL SIGN O
+0BC6 0BBE ; [.27EE.0020.0002] # TAMIL VOWEL SIGN O
+0BCB ; [.27EF.0020.0002] # TAMIL VOWEL SIGN OO
+0BC7 0BBE ; [.27EF.0020.0002] # TAMIL VOWEL SIGN OO
+0BCC ; [.27F0.0020.0002] # TAMIL VOWEL SIGN AU
+0BC6 0BD7 ; [.27F0.0020.0002] # TAMIL VOWEL SIGN AU
+0BCD ; [.27F1.0020.0002] # TAMIL SIGN VIRAMA
+0BD7 ; [.27F2.0020.0002] # TAMIL AU LENGTH MARK
+0C05 ; [.27F3.0020.0002] # TELUGU LETTER A
+0C06 ; [.27F4.0020.0002] # TELUGU LETTER AA
+0C07 ; [.27F5.0020.0002] # TELUGU LETTER I
+0C08 ; [.27F6.0020.0002] # TELUGU LETTER II
+0C09 ; [.27F7.0020.0002] # TELUGU LETTER U
+0C0A ; [.27F8.0020.0002] # TELUGU LETTER UU
+0C0B ; [.27F9.0020.0002] # TELUGU LETTER VOCALIC R
+0C60 ; [.27FA.0020.0002] # TELUGU LETTER VOCALIC RR
+0C0C ; [.27FB.0020.0002] # TELUGU LETTER VOCALIC L
+0C61 ; [.27FC.0020.0002] # TELUGU LETTER VOCALIC LL
+0C0E ; [.27FD.0020.0002] # TELUGU LETTER E
+0C0F ; [.27FE.0020.0002] # TELUGU LETTER EE
+0C10 ; [.27FF.0020.0002] # TELUGU LETTER AI
+0C12 ; [.2800.0020.0002] # TELUGU LETTER O
+0C13 ; [.2801.0020.0002] # TELUGU LETTER OO
+0C14 ; [.2802.0020.0002] # TELUGU LETTER AU
+0C15 ; [.2803.0020.0002] # TELUGU LETTER KA
+0C16 ; [.2804.0020.0002] # TELUGU LETTER KHA
+0C17 ; [.2805.0020.0002] # TELUGU LETTER GA
+0C18 ; [.2806.0020.0002] # TELUGU LETTER GHA
+0C19 ; [.2807.0020.0002] # TELUGU LETTER NGA
+0C1A ; [.2808.0020.0002] # TELUGU LETTER CA
+0C58 ; [.2809.0020.0002] # TELUGU LETTER TSA
+0C1B ; [.280A.0020.0002] # TELUGU LETTER CHA
+0C1C ; [.280B.0020.0002] # TELUGU LETTER JA
+0C59 ; [.280C.0020.0002] # TELUGU LETTER DZA
+0C1D ; [.280D.0020.0002] # TELUGU LETTER JHA
+0C1E ; [.280E.0020.0002] # TELUGU LETTER NYA
+0C1F ; [.280F.0020.0002] # TELUGU LETTER TTA
+0C20 ; [.2810.0020.0002] # TELUGU LETTER TTHA
+0C21 ; [.2811.0020.0002] # TELUGU LETTER DDA
+0C22 ; [.2812.0020.0002] # TELUGU LETTER DDHA
+0C23 ; [.2813.0020.0002] # TELUGU LETTER NNA
+0C24 ; [.2814.0020.0002] # TELUGU LETTER TA
+0C25 ; [.2815.0020.0002] # TELUGU LETTER THA
+0C26 ; [.2816.0020.0002] # TELUGU LETTER DA
+0C27 ; [.2817.0020.0002] # TELUGU LETTER DHA
+0C28 ; [.2818.0020.0002] # TELUGU LETTER NA
+0C2A ; [.2819.0020.0002] # TELUGU LETTER PA
+0C2B ; [.281A.0020.0002] # TELUGU LETTER PHA
+0C2C ; [.281B.0020.0002] # TELUGU LETTER BA
+0C2D ; [.281C.0020.0002] # TELUGU LETTER BHA
+0C2E ; [.281D.0020.0002] # TELUGU LETTER MA
+0C2F ; [.281E.0020.0002] # TELUGU LETTER YA
+0C30 ; [.281F.0020.0002] # TELUGU LETTER RA
+0C31 ; [.2820.0020.0002] # TELUGU LETTER RRA
+0C32 ; [.2821.0020.0002] # TELUGU LETTER LA
+0C35 ; [.2822.0020.0002] # TELUGU LETTER VA
+0C36 ; [.2823.0020.0002] # TELUGU LETTER SHA
+0C37 ; [.2824.0020.0002] # TELUGU LETTER SSA
+0C38 ; [.2825.0020.0002] # TELUGU LETTER SA
+0C39 ; [.2826.0020.0002] # TELUGU LETTER HA
+0C33 ; [.2827.0020.0002] # TELUGU LETTER LLA
+0C34 ; [.2828.0020.0002] # TELUGU LETTER LLLA
+0C5A ; [.2829.0020.0002] # TELUGU LETTER RRRA
+0C3D ; [.282A.0020.0002] # TELUGU SIGN AVAGRAHA
+0C3E ; [.282B.0020.0002] # TELUGU VOWEL SIGN AA
+0C3F ; [.282C.0020.0002] # TELUGU VOWEL SIGN I
+0C40 ; [.282D.0020.0002] # TELUGU VOWEL SIGN II
+0C41 ; [.282E.0020.0002] # TELUGU VOWEL SIGN U
+0C42 ; [.282F.0020.0002] # TELUGU VOWEL SIGN UU
+0C43 ; [.2830.0020.0002] # TELUGU VOWEL SIGN VOCALIC R
+0C44 ; [.2831.0020.0002] # TELUGU VOWEL SIGN VOCALIC RR
+0C62 ; [.2832.0020.0002] # TELUGU VOWEL SIGN VOCALIC L
+0C63 ; [.2833.0020.0002] # TELUGU VOWEL SIGN VOCALIC LL
+0C46 ; [.2834.0020.0002] # TELUGU VOWEL SIGN E
+0C47 ; [.2835.0020.0002] # TELUGU VOWEL SIGN EE
+0C48 ; [.2836.0020.0002] # TELUGU VOWEL SIGN AI
+0C46 0C56 ; [.2836.0020.0002] # TELUGU VOWEL SIGN AI
+0C4A ; [.2837.0020.0002] # TELUGU VOWEL SIGN O
+0C4B ; [.2838.0020.0002] # TELUGU VOWEL SIGN OO
+0C4C ; [.2839.0020.0002] # TELUGU VOWEL SIGN AU
+0C4D ; [.283A.0020.0002] # TELUGU SIGN VIRAMA
+0C55 ; [.283B.0020.0002] # TELUGU LENGTH MARK
+0C56 ; [.283C.0020.0002] # TELUGU AI LENGTH MARK
+0C85 ; [.283D.0020.0002] # KANNADA LETTER A
+0C86 ; [.283E.0020.0002] # KANNADA LETTER AA
+0C87 ; [.283F.0020.0002] # KANNADA LETTER I
+0C88 ; [.2840.0020.0002] # KANNADA LETTER II
+0C89 ; [.2841.0020.0002] # KANNADA LETTER U
+0C8A ; [.2842.0020.0002] # KANNADA LETTER UU
+0C8B ; [.2843.0020.0002] # KANNADA LETTER VOCALIC R
+0CE0 ; [.2844.0020.0002] # KANNADA LETTER VOCALIC RR
+0C8C ; [.2845.0020.0002] # KANNADA LETTER VOCALIC L
+0CE1 ; [.2846.0020.0002] # KANNADA LETTER VOCALIC LL
+0C8E ; [.2847.0020.0002] # KANNADA LETTER E
+0C8F ; [.2848.0020.0002] # KANNADA LETTER EE
+0C90 ; [.2849.0020.0002] # KANNADA LETTER AI
+0C92 ; [.284A.0020.0002] # KANNADA LETTER O
+0C93 ; [.284B.0020.0002] # KANNADA LETTER OO
+0C94 ; [.284C.0020.0002] # KANNADA LETTER AU
+0C95 ; [.284D.0020.0002] # KANNADA LETTER KA
+0C96 ; [.284E.0020.0002] # KANNADA LETTER KHA
+0C97 ; [.284F.0020.0002] # KANNADA LETTER GA
+0C98 ; [.2850.0020.0002] # KANNADA LETTER GHA
+0C99 ; [.2851.0020.0002] # KANNADA LETTER NGA
+0C9A ; [.2852.0020.0002] # KANNADA LETTER CA
+0C9B ; [.2853.0020.0002] # KANNADA LETTER CHA
+0C9C ; [.2854.0020.0002] # KANNADA LETTER JA
+0C9D ; [.2855.0020.0002] # KANNADA LETTER JHA
+0C9E ; [.2856.0020.0002] # KANNADA LETTER NYA
+0C9F ; [.2857.0020.0002] # KANNADA LETTER TTA
+0CA0 ; [.2858.0020.0002] # KANNADA LETTER TTHA
+0CA1 ; [.2859.0020.0002] # KANNADA LETTER DDA
+0CA2 ; [.285A.0020.0002] # KANNADA LETTER DDHA
+0CA3 ; [.285B.0020.0002] # KANNADA LETTER NNA
+0CA4 ; [.285C.0020.0002] # KANNADA LETTER TA
+0CA5 ; [.285D.0020.0002] # KANNADA LETTER THA
+0CA6 ; [.285E.0020.0002] # KANNADA LETTER DA
+0CA7 ; [.285F.0020.0002] # KANNADA LETTER DHA
+0CA8 ; [.2860.0020.0002] # KANNADA LETTER NA
+0CAA ; [.2861.0020.0002] # KANNADA LETTER PA
+0CAB ; [.2862.0020.0002] # KANNADA LETTER PHA
+0CAC ; [.2863.0020.0002] # KANNADA LETTER BA
+0CAD ; [.2864.0020.0002] # KANNADA LETTER BHA
+0CAE ; [.2865.0020.0002] # KANNADA LETTER MA
+0CAF ; [.2866.0020.0002] # KANNADA LETTER YA
+0CB0 ; [.2867.0020.0002] # KANNADA LETTER RA
+0CB1 ; [.2868.0020.0002] # KANNADA LETTER RRA
+0CB2 ; [.2869.0020.0002] # KANNADA LETTER LA
+0CB5 ; [.286A.0020.0002] # KANNADA LETTER VA
+0CB6 ; [.286B.0020.0002] # KANNADA LETTER SHA
+0CB7 ; [.286C.0020.0002] # KANNADA LETTER SSA
+0CB8 ; [.286D.0020.0002] # KANNADA LETTER SA
+0CB9 ; [.286E.0020.0002] # KANNADA LETTER HA
+0CB3 ; [.286F.0020.0002] # KANNADA LETTER LLA
+0CDE ; [.2870.0020.0002] # KANNADA LETTER FA
+0CBD ; [.2871.0020.0002] # KANNADA SIGN AVAGRAHA
+0CF1 ; [.2872.0020.0002] # KANNADA SIGN JIHVAMULIYA
+0CF2 ; [.2873.0020.0002] # KANNADA SIGN UPADHMANIYA
+0C80 ; [.2874.0020.0002] # KANNADA SIGN SPACING CANDRABINDU
+0CBE ; [.2875.0020.0002] # KANNADA VOWEL SIGN AA
+0CBF ; [.2876.0020.0002] # KANNADA VOWEL SIGN I
+0CC0 ; [.2877.0020.0002] # KANNADA VOWEL SIGN II
+0CBF 0CD5 ; [.2877.0020.0002] # KANNADA VOWEL SIGN II
+0CC1 ; [.2878.0020.0002] # KANNADA VOWEL SIGN U
+0CC2 ; [.2879.0020.0002] # KANNADA VOWEL SIGN UU
+0CC3 ; [.287A.0020.0002] # KANNADA VOWEL SIGN VOCALIC R
+0CC4 ; [.287B.0020.0002] # KANNADA VOWEL SIGN VOCALIC RR
+0CE2 ; [.287C.0020.0002] # KANNADA VOWEL SIGN VOCALIC L
+0CE3 ; [.287D.0020.0002] # KANNADA VOWEL SIGN VOCALIC LL
+0CC6 ; [.287E.0020.0002] # KANNADA VOWEL SIGN E
+0CC7 ; [.287F.0020.0002] # KANNADA VOWEL SIGN EE
+0CC6 0CD5 ; [.287F.0020.0002] # KANNADA VOWEL SIGN EE
+0CC8 ; [.2880.0020.0002] # KANNADA VOWEL SIGN AI
+0CC6 0CD6 ; [.2880.0020.0002] # KANNADA VOWEL SIGN AI
+0CCA ; [.2881.0020.0002] # KANNADA VOWEL SIGN O
+0CC6 0CC2 ; [.2881.0020.0002] # KANNADA VOWEL SIGN O
+0CCB ; [.2882.0020.0002] # KANNADA VOWEL SIGN OO
+0CC6 0CC2 0CD5 ; [.2882.0020.0002] # KANNADA VOWEL SIGN OO
+0CCA 0CD5 ; [.2882.0020.0002] # KANNADA VOWEL SIGN OO
+0CCC ; [.2883.0020.0002] # KANNADA VOWEL SIGN AU
+0CCD ; [.2884.0020.0002] # KANNADA SIGN VIRAMA
+0CD5 ; [.2885.0020.0002] # KANNADA LENGTH MARK
+0CD6 ; [.2886.0020.0002] # KANNADA AI LENGTH MARK
+0D05 ; [.2887.0020.0002] # MALAYALAM LETTER A
+0D06 ; [.2888.0020.0002] # MALAYALAM LETTER AA
+0D07 ; [.2889.0020.0002] # MALAYALAM LETTER I
+0D08 ; [.288A.0020.0002] # MALAYALAM LETTER II
+0D5F ; [.288B.0020.0002] # MALAYALAM LETTER ARCHAIC II
+0D09 ; [.288C.0020.0002] # MALAYALAM LETTER U
+0D0A ; [.288D.0020.0002] # MALAYALAM LETTER UU
+0D0B ; [.288E.0020.0002] # MALAYALAM LETTER VOCALIC R
+0D60 ; [.288F.0020.0002] # MALAYALAM LETTER VOCALIC RR
+0D0C ; [.2890.0020.0002] # MALAYALAM LETTER VOCALIC L
+0D61 ; [.2891.0020.0002] # MALAYALAM LETTER VOCALIC LL
+0D0E ; [.2892.0020.0002] # MALAYALAM LETTER E
+0D0F ; [.2893.0020.0002] # MALAYALAM LETTER EE
+0D10 ; [.2894.0020.0002] # MALAYALAM LETTER AI
+0D12 ; [.2895.0020.0002] # MALAYALAM LETTER O
+0D13 ; [.2896.0020.0002] # MALAYALAM LETTER OO
+0D14 ; [.2897.0020.0002] # MALAYALAM LETTER AU
+0D15 ; [.2898.0020.0002] # MALAYALAM LETTER KA
+0D7F ; [.2898.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU K
+0D16 ; [.2899.0020.0002] # MALAYALAM LETTER KHA
+0D17 ; [.289A.0020.0002] # MALAYALAM LETTER GA
+0D18 ; [.289B.0020.0002] # MALAYALAM LETTER GHA
+0D19 ; [.289C.0020.0002] # MALAYALAM LETTER NGA
+0D1A ; [.289D.0020.0002] # MALAYALAM LETTER CA
+0D1B ; [.289E.0020.0002] # MALAYALAM LETTER CHA
+0D1C ; [.289F.0020.0002] # MALAYALAM LETTER JA
+0D1D ; [.28A0.0020.0002] # MALAYALAM LETTER JHA
+0D1E ; [.28A1.0020.0002] # MALAYALAM LETTER NYA
+0D1F ; [.28A2.0020.0002] # MALAYALAM LETTER TTA
+0D20 ; [.28A3.0020.0002] # MALAYALAM LETTER TTHA
+0D21 ; [.28A4.0020.0002] # MALAYALAM LETTER DDA
+0D22 ; [.28A5.0020.0002] # MALAYALAM LETTER DDHA
+0D23 ; [.28A6.0020.0002] # MALAYALAM LETTER NNA
+0D7A ; [.28A6.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU NN
+0D24 ; [.28A7.0020.0002] # MALAYALAM LETTER TA
+0D25 ; [.28A8.0020.0002] # MALAYALAM LETTER THA
+0D26 ; [.28A9.0020.0002] # MALAYALAM LETTER DA
+0D27 ; [.28AA.0020.0002] # MALAYALAM LETTER DHA
+0D28 ; [.28AB.0020.0002] # MALAYALAM LETTER NA
+0D7B ; [.28AB.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU N
+0D29 ; [.28AC.0020.0002] # MALAYALAM LETTER NNNA
+0D2A ; [.28AD.0020.0002] # MALAYALAM LETTER PA
+0D2B ; [.28AE.0020.0002] # MALAYALAM LETTER PHA
+0D2C ; [.28AF.0020.0002] # MALAYALAM LETTER BA
+0D2D ; [.28B0.0020.0002] # MALAYALAM LETTER BHA
+0D2E ; [.28B1.0020.0002] # MALAYALAM LETTER MA
+0D54 ; [.28B1.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU M
+0D2F ; [.28B2.0020.0002] # MALAYALAM LETTER YA
+0D55 ; [.28B2.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU Y
+0D30 ; [.28B3.0020.0002] # MALAYALAM LETTER RA
+0D4E ; [.28B3.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER DOT REPH
+0D7C ; [.28B3.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU RR
+0D32 ; [.28B4.0020.0002] # MALAYALAM LETTER LA
+0D7D ; [.28B4.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU L
+0D35 ; [.28B5.0020.0002] # MALAYALAM LETTER VA
+0D36 ; [.28B6.0020.0002] # MALAYALAM LETTER SHA
+0D37 ; [.28B7.0020.0002] # MALAYALAM LETTER SSA
+0D38 ; [.28B8.0020.0002] # MALAYALAM LETTER SA
+0D39 ; [.28B9.0020.0002] # MALAYALAM LETTER HA
+0D33 ; [.28BA.0020.0002] # MALAYALAM LETTER LLA
+0D7E ; [.28BA.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU LL
+0D34 ; [.28BB.0020.0002] # MALAYALAM LETTER LLLA
+0D56 ; [.28BB.0020.0004][.28CF.0020.0004] # MALAYALAM LETTER CHILLU LLL
+0D31 ; [.28BC.0020.0002] # MALAYALAM LETTER RRA
+0D3A ; [.28BD.0020.0002] # MALAYALAM LETTER TTTA
+0D3D ; [.28BE.0020.0002] # MALAYALAM SIGN AVAGRAHA
+0D3E ; [.28BF.0020.0002] # MALAYALAM VOWEL SIGN AA
+0D3F ; [.28C0.0020.0002] # MALAYALAM VOWEL SIGN I
+0D40 ; [.28C1.0020.0002] # MALAYALAM VOWEL SIGN II
+0D41 ; [.28C2.0020.0002] # MALAYALAM VOWEL SIGN U
+0D42 ; [.28C3.0020.0002] # MALAYALAM VOWEL SIGN UU
+0D43 ; [.28C4.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC R
+0D44 ; [.28C5.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC RR
+0D62 ; [.28C6.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC L
+0D63 ; [.28C7.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC LL
+0D46 ; [.28C8.0020.0002] # MALAYALAM VOWEL SIGN E
+0D47 ; [.28C9.0020.0002] # MALAYALAM VOWEL SIGN EE
+0D48 ; [.28CA.0020.0002] # MALAYALAM VOWEL SIGN AI
+0D4A ; [.28CB.0020.0002] # MALAYALAM VOWEL SIGN O
+0D46 0D3E ; [.28CB.0020.0002] # MALAYALAM VOWEL SIGN O
+0D4B ; [.28CC.0020.0002] # MALAYALAM VOWEL SIGN OO
+0D47 0D3E ; [.28CC.0020.0002] # MALAYALAM VOWEL SIGN OO
+0D4C ; [.28CD.0020.0002] # MALAYALAM VOWEL SIGN AU
+0D46 0D57 ; [.28CD.0020.0002] # MALAYALAM VOWEL SIGN AU
+0D57 ; [.28CE.0020.0002] # MALAYALAM AU LENGTH MARK
+0D4D ; [.28CF.0020.0002] # MALAYALAM SIGN VIRAMA
+0D85 ; [.28D0.0020.0002] # SINHALA LETTER AYANNA
+0D86 ; [.28D1.0020.0002] # SINHALA LETTER AAYANNA
+0D87 ; [.28D2.0020.0002] # SINHALA LETTER AEYANNA
+0D88 ; [.28D3.0020.0002] # SINHALA LETTER AEEYANNA
+0D89 ; [.28D4.0020.0002] # SINHALA LETTER IYANNA
+0D8A ; [.28D5.0020.0002] # SINHALA LETTER IIYANNA
+0D8B ; [.28D6.0020.0002] # SINHALA LETTER UYANNA
+0D8C ; [.28D7.0020.0002] # SINHALA LETTER UUYANNA
+0D8D ; [.28D8.0020.0002] # SINHALA LETTER IRUYANNA
+0D8E ; [.28D9.0020.0002] # SINHALA LETTER IRUUYANNA
+0D8F ; [.28DA.0020.0002] # SINHALA LETTER ILUYANNA
+0D90 ; [.28DB.0020.0002] # SINHALA LETTER ILUUYANNA
+0D91 ; [.28DC.0020.0002] # SINHALA LETTER EYANNA
+0D92 ; [.28DD.0020.0002] # SINHALA LETTER EEYANNA
+0D93 ; [.28DE.0020.0002] # SINHALA LETTER AIYANNA
+0D94 ; [.28DF.0020.0002] # SINHALA LETTER OYANNA
+0D95 ; [.28E0.0020.0002] # SINHALA LETTER OOYANNA
+0D96 ; [.28E1.0020.0002] # SINHALA LETTER AUYANNA
+0D9A ; [.28E2.0020.0002] # SINHALA LETTER ALPAPRAANA KAYANNA
+0D9B ; [.28E3.0020.0002] # SINHALA LETTER MAHAAPRAANA KAYANNA
+0D9C ; [.28E4.0020.0002] # SINHALA LETTER ALPAPRAANA GAYANNA
+0D9D ; [.28E5.0020.0002] # SINHALA LETTER MAHAAPRAANA GAYANNA
+0D9E ; [.28E6.0020.0002] # SINHALA LETTER KANTAJA NAASIKYAYA
+0D9F ; [.28E7.0020.0002] # SINHALA LETTER SANYAKA GAYANNA
+0DA0 ; [.28E8.0020.0002] # SINHALA LETTER ALPAPRAANA CAYANNA
+0DA1 ; [.28E9.0020.0002] # SINHALA LETTER MAHAAPRAANA CAYANNA
+0DA2 ; [.28EA.0020.0002] # SINHALA LETTER ALPAPRAANA JAYANNA
+0DA3 ; [.28EB.0020.0002] # SINHALA LETTER MAHAAPRAANA JAYANNA
+0DA4 ; [.28EC.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
+0DA5 ; [.28ED.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+0DA6 ; [.28EE.0020.0002] # SINHALA LETTER SANYAKA JAYANNA
+0DA7 ; [.28EF.0020.0002] # SINHALA LETTER ALPAPRAANA TTAYANNA
+0DA8 ; [.28F0.0020.0002] # SINHALA LETTER MAHAAPRAANA TTAYANNA
+0DA9 ; [.28F1.0020.0002] # SINHALA LETTER ALPAPRAANA DDAYANNA
+0DAA ; [.28F2.0020.0002] # SINHALA LETTER MAHAAPRAANA DDAYANNA
+0DAB ; [.28F3.0020.0002] # SINHALA LETTER MUURDHAJA NAYANNA
+0DAC ; [.28F4.0020.0002] # SINHALA LETTER SANYAKA DDAYANNA
+0DAD ; [.28F5.0020.0002] # SINHALA LETTER ALPAPRAANA TAYANNA
+0DAE ; [.28F6.0020.0002] # SINHALA LETTER MAHAAPRAANA TAYANNA
+0DAF ; [.28F7.0020.0002] # SINHALA LETTER ALPAPRAANA DAYANNA
+0DB0 ; [.28F8.0020.0002] # SINHALA LETTER MAHAAPRAANA DAYANNA
+0DB1 ; [.28F9.0020.0002] # SINHALA LETTER DANTAJA NAYANNA
+0DB3 ; [.28FA.0020.0002] # SINHALA LETTER SANYAKA DAYANNA
+0DB4 ; [.28FB.0020.0002] # SINHALA LETTER ALPAPRAANA PAYANNA
+0DB5 ; [.28FC.0020.0002] # SINHALA LETTER MAHAAPRAANA PAYANNA
+0DB6 ; [.28FD.0020.0002] # SINHALA LETTER ALPAPRAANA BAYANNA
+0DB7 ; [.28FE.0020.0002] # SINHALA LETTER MAHAAPRAANA BAYANNA
+0DB8 ; [.28FF.0020.0002] # SINHALA LETTER MAYANNA
+0DB9 ; [.2900.0020.0002] # SINHALA LETTER AMBA BAYANNA
+0DBA ; [.2901.0020.0002] # SINHALA LETTER YAYANNA
+0DBB ; [.2902.0020.0002] # SINHALA LETTER RAYANNA
+0DBD ; [.2903.0020.0002] # SINHALA LETTER DANTAJA LAYANNA
+0DC0 ; [.2904.0020.0002] # SINHALA LETTER VAYANNA
+0DC1 ; [.2905.0020.0002] # SINHALA LETTER TAALUJA SAYANNA
+0DC2 ; [.2906.0020.0002] # SINHALA LETTER MUURDHAJA SAYANNA
+0DC3 ; [.2907.0020.0002] # SINHALA LETTER DANTAJA SAYANNA
+0DC4 ; [.2908.0020.0002] # SINHALA LETTER HAYANNA
+0DC5 ; [.2909.0020.0002] # SINHALA LETTER MUURDHAJA LAYANNA
+0DC6 ; [.290A.0020.0002] # SINHALA LETTER FAYANNA
+0DCF ; [.290B.0020.0002] # SINHALA VOWEL SIGN AELA-PILLA
+0DD0 ; [.290C.0020.0002] # SINHALA VOWEL SIGN KETTI AEDA-PILLA
+0DD1 ; [.290D.0020.0002] # SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2 ; [.290E.0020.0002] # SINHALA VOWEL SIGN KETTI IS-PILLA
+0DD3 ; [.290F.0020.0002] # SINHALA VOWEL SIGN DIGA IS-PILLA
+0DD4 ; [.2910.0020.0002] # SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; [.2911.0020.0002] # SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8 ; [.2912.0020.0002] # SINHALA VOWEL SIGN GAETTA-PILLA
+0DF2 ; [.2913.0020.0002] # SINHALA VOWEL SIGN DIGA GAETTA-PILLA
+0DDF ; [.2914.0020.0002] # SINHALA VOWEL SIGN GAYANUKITTA
+0DF3 ; [.2915.0020.0002] # SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DD9 ; [.2916.0020.0002] # SINHALA VOWEL SIGN KOMBUVA
+0DDA ; [.2917.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
+0DD9 0DCA ; [.2917.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDB ; [.2918.0020.0002] # SINHALA VOWEL SIGN KOMBU DEKA
+0DDC ; [.2919.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DD9 0DCF ; [.2919.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DDD ; [.291A.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DD9 0DCF 0DCA ; [.291A.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DDC 0DCA ; [.291A.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DDE ; [.291B.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DD9 0DDF ; [.291B.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DCA ; [.291C.0020.0002] # SINHALA SIGN AL-LAKUNA
+AAF2 ; [.291D.0020.0002] # MEETEI MAYEK ANJI
+ABC0 ; [.291E.0020.0002] # MEETEI MAYEK LETTER KOK
+ABC1 ; [.291F.0020.0002] # MEETEI MAYEK LETTER SAM
+ABC2 ; [.2920.0020.0002] # MEETEI MAYEK LETTER LAI
+ABC3 ; [.2921.0020.0002] # MEETEI MAYEK LETTER MIT
+ABC4 ; [.2922.0020.0002] # MEETEI MAYEK LETTER PA
+ABC5 ; [.2923.0020.0002] # MEETEI MAYEK LETTER NA
+ABC6 ; [.2924.0020.0002] # MEETEI MAYEK LETTER CHIL
+ABC7 ; [.2925.0020.0002] # MEETEI MAYEK LETTER TIL
+ABC8 ; [.2926.0020.0002] # MEETEI MAYEK LETTER KHOU
+ABC9 ; [.2927.0020.0002] # MEETEI MAYEK LETTER NGOU
+ABCA ; [.2928.0020.0002] # MEETEI MAYEK LETTER THOU
+ABCB ; [.2929.0020.0002] # MEETEI MAYEK LETTER WAI
+ABCC ; [.292A.0020.0002] # MEETEI MAYEK LETTER YANG
+ABCD ; [.292B.0020.0002] # MEETEI MAYEK LETTER HUK
+ABCE ; [.292C.0020.0002] # MEETEI MAYEK LETTER UN
+ABCF ; [.292D.0020.0002] # MEETEI MAYEK LETTER I
+ABD0 ; [.292E.0020.0002] # MEETEI MAYEK LETTER PHAM
+ABD1 ; [.292F.0020.0002] # MEETEI MAYEK LETTER ATIYA
+ABD2 ; [.2930.0020.0002] # MEETEI MAYEK LETTER GOK
+ABD3 ; [.2931.0020.0002] # MEETEI MAYEK LETTER JHAM
+ABD4 ; [.2932.0020.0002] # MEETEI MAYEK LETTER RAI
+ABD5 ; [.2933.0020.0002] # MEETEI MAYEK LETTER BA
+ABD6 ; [.2934.0020.0002] # MEETEI MAYEK LETTER JIL
+ABD7 ; [.2935.0020.0002] # MEETEI MAYEK LETTER DIL
+ABD8 ; [.2936.0020.0002] # MEETEI MAYEK LETTER GHOU
+ABD9 ; [.2937.0020.0002] # MEETEI MAYEK LETTER DHOU
+ABDA ; [.2938.0020.0002] # MEETEI MAYEK LETTER BHAM
+AAE0 ; [.2939.0020.0002] # MEETEI MAYEK LETTER E
+AAE1 ; [.293A.0020.0002] # MEETEI MAYEK LETTER O
+AAE2 ; [.293B.0020.0002] # MEETEI MAYEK LETTER CHA
+AAE3 ; [.293C.0020.0002] # MEETEI MAYEK LETTER NYA
+AAE4 ; [.293D.0020.0002] # MEETEI MAYEK LETTER TTA
+AAE5 ; [.293E.0020.0002] # MEETEI MAYEK LETTER TTHA
+AAE6 ; [.293F.0020.0002] # MEETEI MAYEK LETTER DDA
+AAE7 ; [.2940.0020.0002] # MEETEI MAYEK LETTER DDHA
+AAE8 ; [.2941.0020.0002] # MEETEI MAYEK LETTER NNA
+AAE9 ; [.2942.0020.0002] # MEETEI MAYEK LETTER SHA
+AAEA ; [.2943.0020.0002] # MEETEI MAYEK LETTER SSA
+ABE3 ; [.2944.0020.0002] # MEETEI MAYEK VOWEL SIGN ONAP
+ABE4 ; [.2945.0020.0002] # MEETEI MAYEK VOWEL SIGN INAP
+ABE5 ; [.2946.0020.0002] # MEETEI MAYEK VOWEL SIGN ANAP
+ABE6 ; [.2947.0020.0002] # MEETEI MAYEK VOWEL SIGN YENAP
+ABE7 ; [.2948.0020.0002] # MEETEI MAYEK VOWEL SIGN SOUNAP
+ABE8 ; [.2949.0020.0002] # MEETEI MAYEK VOWEL SIGN UNAP
+ABE9 ; [.294A.0020.0002] # MEETEI MAYEK VOWEL SIGN CHEINAP
+ABEA ; [.294B.0020.0002] # MEETEI MAYEK VOWEL SIGN NUNG
+AAEB ; [.294C.0020.0002] # MEETEI MAYEK VOWEL SIGN II
+AAEC ; [.294D.0020.0002] # MEETEI MAYEK VOWEL SIGN UU
+AAED ; [.294E.0020.0002] # MEETEI MAYEK VOWEL SIGN AAI
+AAEE ; [.294F.0020.0002] # MEETEI MAYEK VOWEL SIGN AU
+AAEF ; [.2950.0020.0002] # MEETEI MAYEK VOWEL SIGN AAU
+AAF5 ; [.2951.0020.0002] # MEETEI MAYEK VOWEL SIGN VISARGA
+ABDB ; [.2952.0020.0002] # MEETEI MAYEK LETTER KOK LONSUM
+ABDC ; [.2953.0020.0002] # MEETEI MAYEK LETTER LAI LONSUM
+ABDD ; [.2954.0020.0002] # MEETEI MAYEK LETTER MIT LONSUM
+ABDE ; [.2955.0020.0002] # MEETEI MAYEK LETTER PA LONSUM
+ABDF ; [.2956.0020.0002] # MEETEI MAYEK LETTER NA LONSUM
+ABE0 ; [.2957.0020.0002] # MEETEI MAYEK LETTER TIL LONSUM
+ABE1 ; [.2958.0020.0002] # MEETEI MAYEK LETTER NGOU LONSUM
+ABE2 ; [.2959.0020.0002] # MEETEI MAYEK LETTER I LONSUM
+ABED ; [.295A.0020.0002] # MEETEI MAYEK APUN IYEK
+AAF6 ; [.295B.0020.0002] # MEETEI MAYEK VIRAMA
+A800 ; [.295C.0020.0002] # SYLOTI NAGRI LETTER A
+A801 ; [.295D.0020.0002] # SYLOTI NAGRI LETTER I
+A802 ; [.295E.0020.0002] # SYLOTI NAGRI SIGN DVISVARA
+A803 ; [.295F.0020.0002] # SYLOTI NAGRI LETTER U
+A804 ; [.2960.0020.0002] # SYLOTI NAGRI LETTER E
+A805 ; [.2961.0020.0002] # SYLOTI NAGRI LETTER O
+A806 ; [.2962.0020.0002] # SYLOTI NAGRI SIGN HASANTA
+A807 ; [.2963.0020.0002] # SYLOTI NAGRI LETTER KO
+A808 ; [.2964.0020.0002] # SYLOTI NAGRI LETTER KHO
+A809 ; [.2965.0020.0002] # SYLOTI NAGRI LETTER GO
+A80A ; [.2966.0020.0002] # SYLOTI NAGRI LETTER GHO
+A80C ; [.2967.0020.0002] # SYLOTI NAGRI LETTER CO
+A80D ; [.2968.0020.0002] # SYLOTI NAGRI LETTER CHO
+A80E ; [.2969.0020.0002] # SYLOTI NAGRI LETTER JO
+A80F ; [.296A.0020.0002] # SYLOTI NAGRI LETTER JHO
+A810 ; [.296B.0020.0002] # SYLOTI NAGRI LETTER TTO
+A811 ; [.296C.0020.0002] # SYLOTI NAGRI LETTER TTHO
+A812 ; [.296D.0020.0002] # SYLOTI NAGRI LETTER DDO
+A813 ; [.296E.0020.0002] # SYLOTI NAGRI LETTER DDHO
+A814 ; [.296F.0020.0002] # SYLOTI NAGRI LETTER TO
+A815 ; [.2970.0020.0002] # SYLOTI NAGRI LETTER THO
+A816 ; [.2971.0020.0002] # SYLOTI NAGRI LETTER DO
+A817 ; [.2972.0020.0002] # SYLOTI NAGRI LETTER DHO
+A818 ; [.2973.0020.0002] # SYLOTI NAGRI LETTER NO
+A819 ; [.2974.0020.0002] # SYLOTI NAGRI LETTER PO
+A81A ; [.2975.0020.0002] # SYLOTI NAGRI LETTER PHO
+A81B ; [.2976.0020.0002] # SYLOTI NAGRI LETTER BO
+A81C ; [.2977.0020.0002] # SYLOTI NAGRI LETTER BHO
+A81D ; [.2978.0020.0002] # SYLOTI NAGRI LETTER MO
+A81E ; [.2979.0020.0002] # SYLOTI NAGRI LETTER RO
+A81F ; [.297A.0020.0002] # SYLOTI NAGRI LETTER LO
+A820 ; [.297B.0020.0002] # SYLOTI NAGRI LETTER RRO
+A821 ; [.297C.0020.0002] # SYLOTI NAGRI LETTER SO
+A822 ; [.297D.0020.0002] # SYLOTI NAGRI LETTER HO
+A823 ; [.297E.0020.0002] # SYLOTI NAGRI VOWEL SIGN A
+A824 ; [.297F.0020.0002] # SYLOTI NAGRI VOWEL SIGN I
+A825 ; [.2980.0020.0002] # SYLOTI NAGRI VOWEL SIGN U
+A826 ; [.2981.0020.0002] # SYLOTI NAGRI VOWEL SIGN E
+A827 ; [.2982.0020.0002] # SYLOTI NAGRI VOWEL SIGN OO
+A882 ; [.2983.0020.0002] # SAURASHTRA LETTER A
+A883 ; [.2984.0020.0002] # SAURASHTRA LETTER AA
+A884 ; [.2985.0020.0002] # SAURASHTRA LETTER I
+A885 ; [.2986.0020.0002] # SAURASHTRA LETTER II
+A886 ; [.2987.0020.0002] # SAURASHTRA LETTER U
+A887 ; [.2988.0020.0002] # SAURASHTRA LETTER UU
+A888 ; [.2989.0020.0002] # SAURASHTRA LETTER VOCALIC R
+A889 ; [.298A.0020.0002] # SAURASHTRA LETTER VOCALIC RR
+A88A ; [.298B.0020.0002] # SAURASHTRA LETTER VOCALIC L
+A88B ; [.298C.0020.0002] # SAURASHTRA LETTER VOCALIC LL
+A88C ; [.298D.0020.0002] # SAURASHTRA LETTER E
+A88D ; [.298E.0020.0002] # SAURASHTRA LETTER EE
+A88E ; [.298F.0020.0002] # SAURASHTRA LETTER AI
+A88F ; [.2990.0020.0002] # SAURASHTRA LETTER O
+A890 ; [.2991.0020.0002] # SAURASHTRA LETTER OO
+A891 ; [.2992.0020.0002] # SAURASHTRA LETTER AU
+A892 ; [.2993.0020.0002] # SAURASHTRA LETTER KA
+A893 ; [.2994.0020.0002] # SAURASHTRA LETTER KHA
+A894 ; [.2995.0020.0002] # SAURASHTRA LETTER GA
+A895 ; [.2996.0020.0002] # SAURASHTRA LETTER GHA
+A896 ; [.2997.0020.0002] # SAURASHTRA LETTER NGA
+A897 ; [.2998.0020.0002] # SAURASHTRA LETTER CA
+A898 ; [.2999.0020.0002] # SAURASHTRA LETTER CHA
+A899 ; [.299A.0020.0002] # SAURASHTRA LETTER JA
+A89A ; [.299B.0020.0002] # SAURASHTRA LETTER JHA
+A89B ; [.299C.0020.0002] # SAURASHTRA LETTER NYA
+A89C ; [.299D.0020.0002] # SAURASHTRA LETTER TTA
+A89D ; [.299E.0020.0002] # SAURASHTRA LETTER TTHA
+A89E ; [.299F.0020.0002] # SAURASHTRA LETTER DDA
+A89F ; [.29A0.0020.0002] # SAURASHTRA LETTER DDHA
+A8A0 ; [.29A1.0020.0002] # SAURASHTRA LETTER NNA
+A8A1 ; [.29A2.0020.0002] # SAURASHTRA LETTER TA
+A8A2 ; [.29A3.0020.0002] # SAURASHTRA LETTER THA
+A8A3 ; [.29A4.0020.0002] # SAURASHTRA LETTER DA
+A8A4 ; [.29A5.0020.0002] # SAURASHTRA LETTER DHA
+A8A5 ; [.29A6.0020.0002] # SAURASHTRA LETTER NA
+A8A6 ; [.29A7.0020.0002] # SAURASHTRA LETTER PA
+A8A7 ; [.29A8.0020.0002] # SAURASHTRA LETTER PHA
+A8A8 ; [.29A9.0020.0002] # SAURASHTRA LETTER BA
+A8A9 ; [.29AA.0020.0002] # SAURASHTRA LETTER BHA
+A8AA ; [.29AB.0020.0002] # SAURASHTRA LETTER MA
+A8AB ; [.29AC.0020.0002] # SAURASHTRA LETTER YA
+A8AC ; [.29AD.0020.0002] # SAURASHTRA LETTER RA
+A8AD ; [.29AE.0020.0002] # SAURASHTRA LETTER LA
+A8AE ; [.29AF.0020.0002] # SAURASHTRA LETTER VA
+A8AF ; [.29B0.0020.0002] # SAURASHTRA LETTER SHA
+A8B0 ; [.29B1.0020.0002] # SAURASHTRA LETTER SSA
+A8B1 ; [.29B2.0020.0002] # SAURASHTRA LETTER SA
+A8B2 ; [.29B3.0020.0002] # SAURASHTRA LETTER HA
+A8B3 ; [.29B4.0020.0002] # SAURASHTRA LETTER LLA
+A8B4 ; [.29B5.0020.0002] # SAURASHTRA CONSONANT SIGN HAARU
+A8B5 ; [.29B6.0020.0002] # SAURASHTRA VOWEL SIGN AA
+A8B6 ; [.29B7.0020.0002] # SAURASHTRA VOWEL SIGN I
+A8B7 ; [.29B8.0020.0002] # SAURASHTRA VOWEL SIGN II
+A8B8 ; [.29B9.0020.0002] # SAURASHTRA VOWEL SIGN U
+A8B9 ; [.29BA.0020.0002] # SAURASHTRA VOWEL SIGN UU
+A8BA ; [.29BB.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC R
+A8BB ; [.29BC.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC RR
+A8BC ; [.29BD.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC L
+A8BD ; [.29BE.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC LL
+A8BE ; [.29BF.0020.0002] # SAURASHTRA VOWEL SIGN E
+A8BF ; [.29C0.0020.0002] # SAURASHTRA VOWEL SIGN EE
+A8C0 ; [.29C1.0020.0002] # SAURASHTRA VOWEL SIGN AI
+A8C1 ; [.29C2.0020.0002] # SAURASHTRA VOWEL SIGN O
+A8C2 ; [.29C3.0020.0002] # SAURASHTRA VOWEL SIGN OO
+A8C3 ; [.29C4.0020.0002] # SAURASHTRA VOWEL SIGN AU
+A8C4 ; [.29C5.0020.0002] # SAURASHTRA SIGN VIRAMA
+11083 ; [.29C6.0020.0002] # KAITHI LETTER A
+11084 ; [.29C7.0020.0002] # KAITHI LETTER AA
+11085 ; [.29C8.0020.0002] # KAITHI LETTER I
+11086 ; [.29C9.0020.0002] # KAITHI LETTER II
+11087 ; [.29CA.0020.0002] # KAITHI LETTER U
+11088 ; [.29CB.0020.0002] # KAITHI LETTER UU
+11089 ; [.29CC.0020.0002] # KAITHI LETTER E
+1108A ; [.29CD.0020.0002] # KAITHI LETTER AI
+1108B ; [.29CE.0020.0002] # KAITHI LETTER O
+1108C ; [.29CF.0020.0002] # KAITHI LETTER AU
+1108D ; [.29D0.0020.0002] # KAITHI LETTER KA
+1108E ; [.29D1.0020.0002] # KAITHI LETTER KHA
+1108F ; [.29D2.0020.0002] # KAITHI LETTER GA
+11090 ; [.29D3.0020.0002] # KAITHI LETTER GHA
+11091 ; [.29D4.0020.0002] # KAITHI LETTER NGA
+11092 ; [.29D5.0020.0002] # KAITHI LETTER CA
+11093 ; [.29D6.0020.0002] # KAITHI LETTER CHA
+11094 ; [.29D7.0020.0002] # KAITHI LETTER JA
+11095 ; [.29D8.0020.0002] # KAITHI LETTER JHA
+11096 ; [.29D9.0020.0002] # KAITHI LETTER NYA
+11097 ; [.29DA.0020.0002] # KAITHI LETTER TTA
+11098 ; [.29DB.0020.0002] # KAITHI LETTER TTHA
+11099 ; [.29DC.0020.0002] # KAITHI LETTER DDA
+1109A ; [.29DC.0020.0002][.0000.00C2.0002] # KAITHI LETTER DDDHA
+1109B ; [.29DD.0020.0002] # KAITHI LETTER DDHA
+1109C ; [.29DD.0020.0002][.0000.00C2.0002] # KAITHI LETTER RHA
+1109D ; [.29DE.0020.0002] # KAITHI LETTER NNA
+1109E ; [.29DF.0020.0002] # KAITHI LETTER TA
+1109F ; [.29E0.0020.0002] # KAITHI LETTER THA
+110A0 ; [.29E1.0020.0002] # KAITHI LETTER DA
+110A1 ; [.29E2.0020.0002] # KAITHI LETTER DHA
+110A2 ; [.29E3.0020.0002] # KAITHI LETTER NA
+110A3 ; [.29E4.0020.0002] # KAITHI LETTER PA
+110A4 ; [.29E5.0020.0002] # KAITHI LETTER PHA
+110A5 ; [.29E6.0020.0002] # KAITHI LETTER BA
+110AB ; [.29E6.0020.0002][.0000.00C2.0002] # KAITHI LETTER VA
+110A6 ; [.29E7.0020.0002] # KAITHI LETTER BHA
+110A7 ; [.29E8.0020.0002] # KAITHI LETTER MA
+110A8 ; [.29E9.0020.0002] # KAITHI LETTER YA
+110A9 ; [.29EA.0020.0002] # KAITHI LETTER RA
+110AA ; [.29EB.0020.0002] # KAITHI LETTER LA
+110AC ; [.29EC.0020.0002] # KAITHI LETTER SHA
+110AD ; [.29ED.0020.0002] # KAITHI LETTER SSA
+110AE ; [.29EE.0020.0002] # KAITHI LETTER SA
+110AF ; [.29EF.0020.0002] # KAITHI LETTER HA
+110B0 ; [.29F0.0020.0002] # KAITHI VOWEL SIGN AA
+110B1 ; [.29F1.0020.0002] # KAITHI VOWEL SIGN I
+110B2 ; [.29F2.0020.0002] # KAITHI VOWEL SIGN II
+110B3 ; [.29F3.0020.0002] # KAITHI VOWEL SIGN U
+110B4 ; [.29F4.0020.0002] # KAITHI VOWEL SIGN UU
+110B5 ; [.29F5.0020.0002] # KAITHI VOWEL SIGN E
+110B6 ; [.29F6.0020.0002] # KAITHI VOWEL SIGN AI
+110B7 ; [.29F7.0020.0002] # KAITHI VOWEL SIGN O
+110B8 ; [.29F8.0020.0002] # KAITHI VOWEL SIGN AU
+110B9 ; [.29F9.0020.0002] # KAITHI SIGN VIRAMA
+11150 ; [.29FA.0020.0002] # MAHAJANI LETTER A
+11151 ; [.29FB.0020.0002] # MAHAJANI LETTER I
+11152 ; [.29FC.0020.0002] # MAHAJANI LETTER U
+11153 ; [.29FD.0020.0002] # MAHAJANI LETTER E
+11154 ; [.29FE.0020.0002] # MAHAJANI LETTER O
+11155 ; [.29FF.0020.0002] # MAHAJANI LETTER KA
+11156 ; [.2A00.0020.0002] # MAHAJANI LETTER KHA
+11157 ; [.2A01.0020.0002] # MAHAJANI LETTER GA
+11158 ; [.2A02.0020.0002] # MAHAJANI LETTER GHA
+11159 ; [.2A03.0020.0002] # MAHAJANI LETTER CA
+1115A ; [.2A04.0020.0002] # MAHAJANI LETTER CHA
+1115B ; [.2A05.0020.0002] # MAHAJANI LETTER JA
+1115C ; [.2A06.0020.0002] # MAHAJANI LETTER JHA
+1115D ; [.2A07.0020.0002] # MAHAJANI LETTER NYA
+1115E ; [.2A08.0020.0002] # MAHAJANI LETTER TTA
+1115F ; [.2A09.0020.0002] # MAHAJANI LETTER TTHA
+11160 ; [.2A0A.0020.0002] # MAHAJANI LETTER DDA
+11161 ; [.2A0B.0020.0002] # MAHAJANI LETTER DDHA
+11162 ; [.2A0C.0020.0002] # MAHAJANI LETTER NNA
+11163 ; [.2A0D.0020.0002] # MAHAJANI LETTER TA
+11164 ; [.2A0E.0020.0002] # MAHAJANI LETTER THA
+11165 ; [.2A0F.0020.0002] # MAHAJANI LETTER DA
+11166 ; [.2A10.0020.0002] # MAHAJANI LETTER DHA
+11167 ; [.2A11.0020.0002] # MAHAJANI LETTER NA
+11168 ; [.2A12.0020.0002] # MAHAJANI LETTER PA
+11169 ; [.2A13.0020.0002] # MAHAJANI LETTER PHA
+1116A ; [.2A14.0020.0002] # MAHAJANI LETTER BA
+1116B ; [.2A15.0020.0002] # MAHAJANI LETTER BHA
+1116C ; [.2A16.0020.0002] # MAHAJANI LETTER MA
+1116D ; [.2A17.0020.0002] # MAHAJANI LETTER RA
+1116E ; [.2A18.0020.0002] # MAHAJANI LETTER LA
+1116F ; [.2A19.0020.0002] # MAHAJANI LETTER VA
+11176 ; [.2A1A.0020.0002] # MAHAJANI LIGATURE SHRI
+11170 ; [.2A1B.0020.0002] # MAHAJANI LETTER SA
+11171 ; [.2A1C.0020.0002] # MAHAJANI LETTER HA
+11172 ; [.2A1D.0020.0002] # MAHAJANI LETTER RRA
+111C4 ; [.2A1E.0020.0002] # SHARADA OM
+111DA ; [.2A1F.0020.0002] # SHARADA EKAM
+11183 ; [.2A20.0020.0002] # SHARADA LETTER A
+11184 ; [.2A21.0020.0002] # SHARADA LETTER AA
+11185 ; [.2A22.0020.0002] # SHARADA LETTER I
+11186 ; [.2A23.0020.0002] # SHARADA LETTER II
+11187 ; [.2A24.0020.0002] # SHARADA LETTER U
+11188 ; [.2A25.0020.0002] # SHARADA LETTER UU
+11189 ; [.2A26.0020.0002] # SHARADA LETTER VOCALIC R
+1118A ; [.2A27.0020.0002] # SHARADA LETTER VOCALIC RR
+1118B ; [.2A28.0020.0002] # SHARADA LETTER VOCALIC L
+1118C ; [.2A29.0020.0002] # SHARADA LETTER VOCALIC LL
+1118D ; [.2A2A.0020.0002] # SHARADA LETTER E
+1118E ; [.2A2B.0020.0002] # SHARADA LETTER AI
+1118F ; [.2A2C.0020.0002] # SHARADA LETTER O
+11190 ; [.2A2D.0020.0002] # SHARADA LETTER AU
+11191 ; [.2A2E.0020.0002] # SHARADA LETTER KA
+11192 ; [.2A2F.0020.0002] # SHARADA LETTER KHA
+11193 ; [.2A30.0020.0002] # SHARADA LETTER GA
+11194 ; [.2A31.0020.0002] # SHARADA LETTER GHA
+11195 ; [.2A32.0020.0002] # SHARADA LETTER NGA
+11196 ; [.2A33.0020.0002] # SHARADA LETTER CA
+11197 ; [.2A34.0020.0002] # SHARADA LETTER CHA
+11198 ; [.2A35.0020.0002] # SHARADA LETTER JA
+11199 ; [.2A36.0020.0002] # SHARADA LETTER JHA
+1119A ; [.2A37.0020.0002] # SHARADA LETTER NYA
+1119B ; [.2A38.0020.0002] # SHARADA LETTER TTA
+1119C ; [.2A39.0020.0002] # SHARADA LETTER TTHA
+1119D ; [.2A3A.0020.0002] # SHARADA LETTER DDA
+1119E ; [.2A3B.0020.0002] # SHARADA LETTER DDHA
+1119F ; [.2A3C.0020.0002] # SHARADA LETTER NNA
+111A0 ; [.2A3D.0020.0002] # SHARADA LETTER TA
+111A1 ; [.2A3E.0020.0002] # SHARADA LETTER THA
+111A2 ; [.2A3F.0020.0002] # SHARADA LETTER DA
+111A3 ; [.2A40.0020.0002] # SHARADA LETTER DHA
+111A4 ; [.2A41.0020.0002] # SHARADA LETTER NA
+111A5 ; [.2A42.0020.0002] # SHARADA LETTER PA
+111A6 ; [.2A43.0020.0002] # SHARADA LETTER PHA
+111A7 ; [.2A44.0020.0002] # SHARADA LETTER BA
+111A8 ; [.2A45.0020.0002] # SHARADA LETTER BHA
+111A9 ; [.2A46.0020.0002] # SHARADA LETTER MA
+111AA ; [.2A47.0020.0002] # SHARADA LETTER YA
+111AB ; [.2A48.0020.0002] # SHARADA LETTER RA
+111AC ; [.2A49.0020.0002] # SHARADA LETTER LA
+111AD ; [.2A4A.0020.0002] # SHARADA LETTER LLA
+111AE ; [.2A4B.0020.0002] # SHARADA LETTER VA
+111AF ; [.2A4C.0020.0002] # SHARADA LETTER SHA
+111B0 ; [.2A4D.0020.0002] # SHARADA LETTER SSA
+111B1 ; [.2A4E.0020.0002] # SHARADA LETTER SA
+111B2 ; [.2A4F.0020.0002] # SHARADA LETTER HA
+111C1 ; [.2A50.0020.0002] # SHARADA SIGN AVAGRAHA
+111C2 ; [.2A51.0020.0002] # SHARADA SIGN JIHVAMULIYA
+111C3 ; [.2A52.0020.0002] # SHARADA SIGN UPADHMANIYA
+111DC ; [.2A53.0020.0002] # SHARADA HEADSTROKE
+111B3 ; [.2A54.0020.0002] # SHARADA VOWEL SIGN AA
+111B4 ; [.2A55.0020.0002] # SHARADA VOWEL SIGN I
+111B5 ; [.2A56.0020.0002] # SHARADA VOWEL SIGN II
+111B6 ; [.2A57.0020.0002] # SHARADA VOWEL SIGN U
+111B7 ; [.2A58.0020.0002] # SHARADA VOWEL SIGN UU
+111B8 ; [.2A59.0020.0002] # SHARADA VOWEL SIGN VOCALIC R
+111B9 ; [.2A5A.0020.0002] # SHARADA VOWEL SIGN VOCALIC RR
+111BA ; [.2A5B.0020.0002] # SHARADA VOWEL SIGN VOCALIC L
+111BB ; [.2A5C.0020.0002] # SHARADA VOWEL SIGN VOCALIC LL
+111BC ; [.2A5D.0020.0002] # SHARADA VOWEL SIGN E
+111BD ; [.2A5E.0020.0002] # SHARADA VOWEL SIGN AI
+111BE ; [.2A5F.0020.0002] # SHARADA VOWEL SIGN O
+111BF ; [.2A60.0020.0002] # SHARADA VOWEL SIGN AU
+111C0 ; [.2A61.0020.0002] # SHARADA SIGN VIRAMA
+11200 ; [.2A62.0020.0002] # KHOJKI LETTER A
+11201 ; [.2A63.0020.0002] # KHOJKI LETTER AA
+11202 ; [.2A64.0020.0002] # KHOJKI LETTER I
+11203 ; [.2A65.0020.0002] # KHOJKI LETTER U
+11204 ; [.2A66.0020.0002] # KHOJKI LETTER E
+11205 ; [.2A67.0020.0002] # KHOJKI LETTER AI
+11206 ; [.2A68.0020.0002] # KHOJKI LETTER O
+11207 ; [.2A69.0020.0002] # KHOJKI LETTER AU
+11208 ; [.2A6A.0020.0002] # KHOJKI LETTER KA
+11209 ; [.2A6B.0020.0002] # KHOJKI LETTER KHA
+1120A ; [.2A6C.0020.0002] # KHOJKI LETTER GA
+1120B ; [.2A6D.0020.0002] # KHOJKI LETTER GGA
+1120C ; [.2A6E.0020.0002] # KHOJKI LETTER GHA
+1120D ; [.2A6F.0020.0002] # KHOJKI LETTER NGA
+1120E ; [.2A70.0020.0002] # KHOJKI LETTER CA
+1120F ; [.2A71.0020.0002] # KHOJKI LETTER CHA
+11210 ; [.2A72.0020.0002] # KHOJKI LETTER JA
+11211 ; [.2A73.0020.0002] # KHOJKI LETTER JJA
+11213 ; [.2A74.0020.0002] # KHOJKI LETTER NYA
+11214 ; [.2A75.0020.0002] # KHOJKI LETTER TTA
+11215 ; [.2A76.0020.0002] # KHOJKI LETTER TTHA
+11216 ; [.2A77.0020.0002] # KHOJKI LETTER DDA
+11217 ; [.2A78.0020.0002] # KHOJKI LETTER DDHA
+11218 ; [.2A79.0020.0002] # KHOJKI LETTER NNA
+11219 ; [.2A7A.0020.0002] # KHOJKI LETTER TA
+1121A ; [.2A7B.0020.0002] # KHOJKI LETTER THA
+1121B ; [.2A7C.0020.0002] # KHOJKI LETTER DA
+1121C ; [.2A7D.0020.0002] # KHOJKI LETTER DDDA
+1121D ; [.2A7E.0020.0002] # KHOJKI LETTER DHA
+1121E ; [.2A7F.0020.0002] # KHOJKI LETTER NA
+1121F ; [.2A80.0020.0002] # KHOJKI LETTER PA
+11220 ; [.2A81.0020.0002] # KHOJKI LETTER PHA
+11221 ; [.2A82.0020.0002] # KHOJKI LETTER BA
+11222 ; [.2A83.0020.0002] # KHOJKI LETTER BBA
+11223 ; [.2A84.0020.0002] # KHOJKI LETTER BHA
+11224 ; [.2A85.0020.0002] # KHOJKI LETTER MA
+11225 ; [.2A86.0020.0002] # KHOJKI LETTER YA
+11226 ; [.2A87.0020.0002] # KHOJKI LETTER RA
+11227 ; [.2A88.0020.0002] # KHOJKI LETTER LA
+11228 ; [.2A89.0020.0002] # KHOJKI LETTER VA
+11229 ; [.2A8A.0020.0002] # KHOJKI LETTER SA
+1122A ; [.2A8B.0020.0002] # KHOJKI LETTER HA
+1122B ; [.2A8C.0020.0002] # KHOJKI LETTER LLA
+1122C ; [.2A8D.0020.0002] # KHOJKI VOWEL SIGN AA
+1122D ; [.2A8E.0020.0002] # KHOJKI VOWEL SIGN I
+1122E ; [.2A8F.0020.0002] # KHOJKI VOWEL SIGN II
+1122F ; [.2A90.0020.0002] # KHOJKI VOWEL SIGN U
+11230 ; [.2A91.0020.0002] # KHOJKI VOWEL SIGN E
+11231 ; [.2A92.0020.0002] # KHOJKI VOWEL SIGN AI
+11232 ; [.2A93.0020.0002] # KHOJKI VOWEL SIGN O
+11233 ; [.2A94.0020.0002] # KHOJKI VOWEL SIGN AU
+11235 ; [.2A95.0020.0002] # KHOJKI SIGN VIRAMA
+112B0 ; [.2A96.0020.0002] # KHUDAWADI LETTER A
+112B1 ; [.2A97.0020.0002] # KHUDAWADI LETTER AA
+112B2 ; [.2A98.0020.0002] # KHUDAWADI LETTER I
+112B3 ; [.2A99.0020.0002] # KHUDAWADI LETTER II
+112B4 ; [.2A9A.0020.0002] # KHUDAWADI LETTER U
+112B5 ; [.2A9B.0020.0002] # KHUDAWADI LETTER UU
+112B6 ; [.2A9C.0020.0002] # KHUDAWADI LETTER E
+112B7 ; [.2A9D.0020.0002] # KHUDAWADI LETTER AI
+112B8 ; [.2A9E.0020.0002] # KHUDAWADI LETTER O
+112B9 ; [.2A9F.0020.0002] # KHUDAWADI LETTER AU
+112BA ; [.2AA0.0020.0002] # KHUDAWADI LETTER KA
+112BB ; [.2AA1.0020.0002] # KHUDAWADI LETTER KHA
+112BC ; [.2AA2.0020.0002] # KHUDAWADI LETTER GA
+112BD ; [.2AA3.0020.0002] # KHUDAWADI LETTER GGA
+112BE ; [.2AA4.0020.0002] # KHUDAWADI LETTER GHA
+112BF ; [.2AA5.0020.0002] # KHUDAWADI LETTER NGA
+112C0 ; [.2AA6.0020.0002] # KHUDAWADI LETTER CA
+112C1 ; [.2AA7.0020.0002] # KHUDAWADI LETTER CHA
+112C2 ; [.2AA8.0020.0002] # KHUDAWADI LETTER JA
+112C3 ; [.2AA9.0020.0002] # KHUDAWADI LETTER JJA
+112C4 ; [.2AAA.0020.0002] # KHUDAWADI LETTER JHA
+112C5 ; [.2AAB.0020.0002] # KHUDAWADI LETTER NYA
+112C6 ; [.2AAC.0020.0002] # KHUDAWADI LETTER TTA
+112C7 ; [.2AAD.0020.0002] # KHUDAWADI LETTER TTHA
+112C8 ; [.2AAE.0020.0002] # KHUDAWADI LETTER DDA
+112C9 ; [.2AAF.0020.0002] # KHUDAWADI LETTER DDDA
+112CA ; [.2AB0.0020.0002] # KHUDAWADI LETTER RRA
+112CB ; [.2AB1.0020.0002] # KHUDAWADI LETTER DDHA
+112CC ; [.2AB2.0020.0002] # KHUDAWADI LETTER NNA
+112CD ; [.2AB3.0020.0002] # KHUDAWADI LETTER TA
+112CE ; [.2AB4.0020.0002] # KHUDAWADI LETTER THA
+112CF ; [.2AB5.0020.0002] # KHUDAWADI LETTER DA
+112D0 ; [.2AB6.0020.0002] # KHUDAWADI LETTER DHA
+112D1 ; [.2AB7.0020.0002] # KHUDAWADI LETTER NA
+112D2 ; [.2AB8.0020.0002] # KHUDAWADI LETTER PA
+112D3 ; [.2AB9.0020.0002] # KHUDAWADI LETTER PHA
+112D4 ; [.2ABA.0020.0002] # KHUDAWADI LETTER BA
+112D5 ; [.2ABB.0020.0002] # KHUDAWADI LETTER BBA
+112D6 ; [.2ABC.0020.0002] # KHUDAWADI LETTER BHA
+112D7 ; [.2ABD.0020.0002] # KHUDAWADI LETTER MA
+112D8 ; [.2ABE.0020.0002] # KHUDAWADI LETTER YA
+112D9 ; [.2ABF.0020.0002] # KHUDAWADI LETTER RA
+112DA ; [.2AC0.0020.0002] # KHUDAWADI LETTER LA
+112DB ; [.2AC1.0020.0002] # KHUDAWADI LETTER VA
+112DC ; [.2AC2.0020.0002] # KHUDAWADI LETTER SHA
+112DD ; [.2AC3.0020.0002] # KHUDAWADI LETTER SA
+112DE ; [.2AC4.0020.0002] # KHUDAWADI LETTER HA
+112E0 ; [.2AC5.0020.0002] # KHUDAWADI VOWEL SIGN AA
+112E1 ; [.2AC6.0020.0002] # KHUDAWADI VOWEL SIGN I
+112E2 ; [.2AC7.0020.0002] # KHUDAWADI VOWEL SIGN II
+112E3 ; [.2AC8.0020.0002] # KHUDAWADI VOWEL SIGN U
+112E4 ; [.2AC9.0020.0002] # KHUDAWADI VOWEL SIGN UU
+112E5 ; [.2ACA.0020.0002] # KHUDAWADI VOWEL SIGN E
+112E6 ; [.2ACB.0020.0002] # KHUDAWADI VOWEL SIGN AI
+112E7 ; [.2ACC.0020.0002] # KHUDAWADI VOWEL SIGN O
+112E8 ; [.2ACD.0020.0002] # KHUDAWADI VOWEL SIGN AU
+112EA ; [.2ACE.0020.0002] # KHUDAWADI SIGN VIRAMA
+11280 ; [.2ACF.0020.0002] # MULTANI LETTER A
+11281 ; [.2AD0.0020.0002] # MULTANI LETTER I
+11282 ; [.2AD1.0020.0002] # MULTANI LETTER U
+11283 ; [.2AD2.0020.0002] # MULTANI LETTER E
+112A5 ; [.2AD3.0020.0002] # MULTANI LETTER SA
+112A6 ; [.2AD4.0020.0002] # MULTANI LETTER HA
+11284 ; [.2AD5.0020.0002] # MULTANI LETTER KA
+11285 ; [.2AD6.0020.0002] # MULTANI LETTER KHA
+11286 ; [.2AD7.0020.0002] # MULTANI LETTER GA
+11288 ; [.2AD8.0020.0002] # MULTANI LETTER GHA
+1128A ; [.2AD9.0020.0002] # MULTANI LETTER CA
+1128B ; [.2ADA.0020.0002] # MULTANI LETTER CHA
+1128C ; [.2ADB.0020.0002] # MULTANI LETTER JA
+1128D ; [.2ADC.0020.0002] # MULTANI LETTER JJA
+1128F ; [.2ADD.0020.0002] # MULTANI LETTER NYA
+11290 ; [.2ADE.0020.0002] # MULTANI LETTER TTA
+11291 ; [.2ADF.0020.0002] # MULTANI LETTER TTHA
+11292 ; [.2AE0.0020.0002] # MULTANI LETTER DDA
+11293 ; [.2AE1.0020.0002] # MULTANI LETTER DDDA
+11294 ; [.2AE2.0020.0002] # MULTANI LETTER DDHA
+11295 ; [.2AE3.0020.0002] # MULTANI LETTER NNA
+11296 ; [.2AE4.0020.0002] # MULTANI LETTER TA
+11297 ; [.2AE5.0020.0002] # MULTANI LETTER THA
+11298 ; [.2AE6.0020.0002] # MULTANI LETTER DA
+11299 ; [.2AE7.0020.0002] # MULTANI LETTER DHA
+1129A ; [.2AE8.0020.0002] # MULTANI LETTER NA
+1129B ; [.2AE9.0020.0002] # MULTANI LETTER PA
+1129C ; [.2AEA.0020.0002] # MULTANI LETTER PHA
+1129D ; [.2AEB.0020.0002] # MULTANI LETTER BA
+1129F ; [.2AEC.0020.0002] # MULTANI LETTER BHA
+112A0 ; [.2AED.0020.0002] # MULTANI LETTER MA
+112A1 ; [.2AEE.0020.0002] # MULTANI LETTER YA
+112A2 ; [.2AEF.0020.0002] # MULTANI LETTER RA
+112A3 ; [.2AF0.0020.0002] # MULTANI LETTER LA
+112A4 ; [.2AF1.0020.0002] # MULTANI LETTER VA
+112A7 ; [.2AF2.0020.0002] # MULTANI LETTER RRA
+112A8 ; [.2AF3.0020.0002] # MULTANI LETTER RHA
+11350 ; [.2AF4.0020.0002] # GRANTHA OM
+11305 ; [.2AF5.0020.0002] # GRANTHA LETTER A
+11306 ; [.2AF6.0020.0002] # GRANTHA LETTER AA
+11307 ; [.2AF7.0020.0002] # GRANTHA LETTER I
+11308 ; [.2AF8.0020.0002] # GRANTHA LETTER II
+11309 ; [.2AF9.0020.0002] # GRANTHA LETTER U
+1130A ; [.2AFA.0020.0002] # GRANTHA LETTER UU
+1130B ; [.2AFB.0020.0002] # GRANTHA LETTER VOCALIC R
+11360 ; [.2AFC.0020.0002] # GRANTHA LETTER VOCALIC RR
+1130C ; [.2AFD.0020.0002] # GRANTHA LETTER VOCALIC L
+11361 ; [.2AFE.0020.0002] # GRANTHA LETTER VOCALIC LL
+1130F ; [.2AFF.0020.0002] # GRANTHA LETTER EE
+11310 ; [.2B00.0020.0002] # GRANTHA LETTER AI
+11313 ; [.2B01.0020.0002] # GRANTHA LETTER OO
+11314 ; [.2B02.0020.0002] # GRANTHA LETTER AU
+11315 ; [.2B03.0020.0002] # GRANTHA LETTER KA
+11316 ; [.2B04.0020.0002] # GRANTHA LETTER KHA
+11317 ; [.2B05.0020.0002] # GRANTHA LETTER GA
+11318 ; [.2B06.0020.0002] # GRANTHA LETTER GHA
+11319 ; [.2B07.0020.0002] # GRANTHA LETTER NGA
+1131A ; [.2B08.0020.0002] # GRANTHA LETTER CA
+1131B ; [.2B09.0020.0002] # GRANTHA LETTER CHA
+1131C ; [.2B0A.0020.0002] # GRANTHA LETTER JA
+1131D ; [.2B0B.0020.0002] # GRANTHA LETTER JHA
+1131E ; [.2B0C.0020.0002] # GRANTHA LETTER NYA
+1131F ; [.2B0D.0020.0002] # GRANTHA LETTER TTA
+11320 ; [.2B0E.0020.0002] # GRANTHA LETTER TTHA
+11321 ; [.2B0F.0020.0002] # GRANTHA LETTER DDA
+11322 ; [.2B10.0020.0002] # GRANTHA LETTER DDHA
+11323 ; [.2B11.0020.0002] # GRANTHA LETTER NNA
+11324 ; [.2B12.0020.0002] # GRANTHA LETTER TA
+11325 ; [.2B13.0020.0002] # GRANTHA LETTER THA
+11326 ; [.2B14.0020.0002] # GRANTHA LETTER DA
+11327 ; [.2B15.0020.0002] # GRANTHA LETTER DHA
+11328 ; [.2B16.0020.0002] # GRANTHA LETTER NA
+1132A ; [.2B17.0020.0002] # GRANTHA LETTER PA
+1132B ; [.2B18.0020.0002] # GRANTHA LETTER PHA
+1132C ; [.2B19.0020.0002] # GRANTHA LETTER BA
+1132D ; [.2B1A.0020.0002] # GRANTHA LETTER BHA
+1132E ; [.2B1B.0020.0002] # GRANTHA LETTER MA
+1132F ; [.2B1C.0020.0002] # GRANTHA LETTER YA
+11330 ; [.2B1D.0020.0002] # GRANTHA LETTER RA
+11332 ; [.2B1E.0020.0002] # GRANTHA LETTER LA
+11333 ; [.2B1F.0020.0002] # GRANTHA LETTER LLA
+11335 ; [.2B20.0020.0002] # GRANTHA LETTER VA
+11336 ; [.2B21.0020.0002] # GRANTHA LETTER SHA
+11337 ; [.2B22.0020.0002] # GRANTHA LETTER SSA
+11338 ; [.2B23.0020.0002] # GRANTHA LETTER SA
+11339 ; [.2B24.0020.0002] # GRANTHA LETTER HA
+1133D ; [.2B25.0020.0002] # GRANTHA SIGN AVAGRAHA
+1135E ; [.2B26.0020.0002] # GRANTHA LETTER VEDIC ANUSVARA
+1135F ; [.2B27.0020.0002] # GRANTHA LETTER VEDIC DOUBLE ANUSVARA
+1133E ; [.2B28.0020.0002] # GRANTHA VOWEL SIGN AA
+1133F ; [.2B29.0020.0002] # GRANTHA VOWEL SIGN I
+11340 ; [.2B2A.0020.0002] # GRANTHA VOWEL SIGN II
+11341 ; [.2B2B.0020.0002] # GRANTHA VOWEL SIGN U
+11342 ; [.2B2C.0020.0002] # GRANTHA VOWEL SIGN UU
+11343 ; [.2B2D.0020.0002] # GRANTHA VOWEL SIGN VOCALIC R
+11344 ; [.2B2E.0020.0002] # GRANTHA VOWEL SIGN VOCALIC RR
+11362 ; [.2B2F.0020.0002] # GRANTHA VOWEL SIGN VOCALIC L
+11363 ; [.2B30.0020.0002] # GRANTHA VOWEL SIGN VOCALIC LL
+11347 ; [.2B31.0020.0002] # GRANTHA VOWEL SIGN EE
+11348 ; [.2B32.0020.0002] # GRANTHA VOWEL SIGN AI
+1134B ; [.2B33.0020.0002] # GRANTHA VOWEL SIGN OO
+11347 1133E ; [.2B33.0020.0002] # GRANTHA VOWEL SIGN OO
+1134C ; [.2B34.0020.0002] # GRANTHA VOWEL SIGN AU
+11347 11357 ; [.2B34.0020.0002] # GRANTHA VOWEL SIGN AU
+1134D ; [.2B35.0020.0002] # GRANTHA SIGN VIRAMA
+11357 ; [.2B36.0020.0002] # GRANTHA AU LENGTH MARK
+1135D ; [.2B37.0020.0002] # GRANTHA SIGN PLUTA
+11449 ; [.2B38.0020.0002] # NEWA OM
+1144A ; [.2B39.0020.0002] # NEWA SIDDHI
+11400 ; [.2B3A.0020.0002] # NEWA LETTER A
+11401 ; [.2B3B.0020.0002] # NEWA LETTER AA
+11402 ; [.2B3C.0020.0002] # NEWA LETTER I
+11403 ; [.2B3D.0020.0002] # NEWA LETTER II
+11404 ; [.2B3E.0020.0002] # NEWA LETTER U
+11405 ; [.2B3F.0020.0002] # NEWA LETTER UU
+11406 ; [.2B40.0020.0002] # NEWA LETTER VOCALIC R
+11407 ; [.2B41.0020.0002] # NEWA LETTER VOCALIC RR
+11408 ; [.2B42.0020.0002] # NEWA LETTER VOCALIC L
+11409 ; [.2B43.0020.0002] # NEWA LETTER VOCALIC LL
+1140A ; [.2B44.0020.0002] # NEWA LETTER E
+1140B ; [.2B45.0020.0002] # NEWA LETTER AI
+1140C ; [.2B46.0020.0002] # NEWA LETTER O
+1140D ; [.2B47.0020.0002] # NEWA LETTER AU
+1140E ; [.2B48.0020.0002] # NEWA LETTER KA
+1140F ; [.2B49.0020.0002] # NEWA LETTER KHA
+11410 ; [.2B4A.0020.0002] # NEWA LETTER GA
+11411 ; [.2B4B.0020.0002] # NEWA LETTER GHA
+11412 ; [.2B4C.0020.0002] # NEWA LETTER NGA
+11413 ; [.2B4D.0020.0002] # NEWA LETTER NGHA
+11414 ; [.2B4E.0020.0002] # NEWA LETTER CA
+11415 ; [.2B4F.0020.0002] # NEWA LETTER CHA
+11416 ; [.2B50.0020.0002] # NEWA LETTER JA
+11417 ; [.2B51.0020.0002] # NEWA LETTER JHA
+11418 ; [.2B52.0020.0002] # NEWA LETTER NYA
+11419 ; [.2B53.0020.0002] # NEWA LETTER NYHA
+1141A ; [.2B54.0020.0002] # NEWA LETTER TTA
+1141B ; [.2B55.0020.0002] # NEWA LETTER TTHA
+1141C ; [.2B56.0020.0002] # NEWA LETTER DDA
+1141D ; [.2B57.0020.0002] # NEWA LETTER DDHA
+1141E ; [.2B58.0020.0002] # NEWA LETTER NNA
+1141F ; [.2B59.0020.0002] # NEWA LETTER TA
+11420 ; [.2B5A.0020.0002] # NEWA LETTER THA
+11421 ; [.2B5B.0020.0002] # NEWA LETTER DA
+11422 ; [.2B5C.0020.0002] # NEWA LETTER DHA
+11423 ; [.2B5D.0020.0002] # NEWA LETTER NA
+11424 ; [.2B5E.0020.0002] # NEWA LETTER NHA
+11425 ; [.2B5F.0020.0002] # NEWA LETTER PA
+11426 ; [.2B60.0020.0002] # NEWA LETTER PHA
+11427 ; [.2B61.0020.0002] # NEWA LETTER BA
+11428 ; [.2B62.0020.0002] # NEWA LETTER BHA
+11429 ; [.2B63.0020.0002] # NEWA LETTER MA
+1142A ; [.2B64.0020.0002] # NEWA LETTER MHA
+1142B ; [.2B65.0020.0002] # NEWA LETTER YA
+1142C ; [.2B66.0020.0002] # NEWA LETTER RA
+1142D ; [.2B67.0020.0002] # NEWA LETTER RHA
+1142E ; [.2B68.0020.0002] # NEWA LETTER LA
+1142F ; [.2B69.0020.0002] # NEWA LETTER LHA
+11430 ; [.2B6A.0020.0002] # NEWA LETTER WA
+11431 ; [.2B6B.0020.0002] # NEWA LETTER SHA
+11432 ; [.2B6C.0020.0002] # NEWA LETTER SSA
+11433 ; [.2B6D.0020.0002] # NEWA LETTER SA
+11434 ; [.2B6E.0020.0002] # NEWA LETTER HA
+11447 ; [.2B6F.0020.0002] # NEWA SIGN AVAGRAHA
+11448 ; [.2B70.0020.0002] # NEWA SIGN FINAL ANUSVARA
+11435 ; [.2B71.0020.0002] # NEWA VOWEL SIGN AA
+11436 ; [.2B72.0020.0002] # NEWA VOWEL SIGN I
+11437 ; [.2B73.0020.0002] # NEWA VOWEL SIGN II
+11438 ; [.2B74.0020.0002] # NEWA VOWEL SIGN U
+11439 ; [.2B75.0020.0002] # NEWA VOWEL SIGN UU
+1143A ; [.2B76.0020.0002] # NEWA VOWEL SIGN VOCALIC R
+1143B ; [.2B77.0020.0002] # NEWA VOWEL SIGN VOCALIC RR
+1143C ; [.2B78.0020.0002] # NEWA VOWEL SIGN VOCALIC L
+1143D ; [.2B79.0020.0002] # NEWA VOWEL SIGN VOCALIC LL
+1143E ; [.2B7A.0020.0002] # NEWA VOWEL SIGN E
+1143F ; [.2B7B.0020.0002] # NEWA VOWEL SIGN AI
+11440 ; [.2B7C.0020.0002] # NEWA VOWEL SIGN O
+11441 ; [.2B7D.0020.0002] # NEWA VOWEL SIGN AU
+11442 ; [.2B7E.0020.0002] # NEWA SIGN VIRAMA
+114C7 ; [.2B7F.0020.0002] # TIRHUTA OM
+11480 ; [.2B80.0020.0002] # TIRHUTA ANJI
+11481 ; [.2B81.0020.0002] # TIRHUTA LETTER A
+11482 ; [.2B82.0020.0002] # TIRHUTA LETTER AA
+11483 ; [.2B83.0020.0002] # TIRHUTA LETTER I
+11484 ; [.2B84.0020.0002] # TIRHUTA LETTER II
+11485 ; [.2B85.0020.0002] # TIRHUTA LETTER U
+11486 ; [.2B86.0020.0002] # TIRHUTA LETTER UU
+11487 ; [.2B87.0020.0002] # TIRHUTA LETTER VOCALIC R
+11488 ; [.2B88.0020.0002] # TIRHUTA LETTER VOCALIC RR
+11489 ; [.2B89.0020.0002] # TIRHUTA LETTER VOCALIC L
+1148A ; [.2B8A.0020.0002] # TIRHUTA LETTER VOCALIC LL
+1148B ; [.2B8B.0020.0002] # TIRHUTA LETTER E
+1148C ; [.2B8C.0020.0002] # TIRHUTA LETTER AI
+1148D ; [.2B8D.0020.0002] # TIRHUTA LETTER O
+1148E ; [.2B8E.0020.0002] # TIRHUTA LETTER AU
+1148F ; [.2B8F.0020.0002] # TIRHUTA LETTER KA
+11490 ; [.2B90.0020.0002] # TIRHUTA LETTER KHA
+11491 ; [.2B91.0020.0002] # TIRHUTA LETTER GA
+11492 ; [.2B92.0020.0002] # TIRHUTA LETTER GHA
+11493 ; [.2B93.0020.0002] # TIRHUTA LETTER NGA
+11494 ; [.2B94.0020.0002] # TIRHUTA LETTER CA
+11495 ; [.2B95.0020.0002] # TIRHUTA LETTER CHA
+11496 ; [.2B96.0020.0002] # TIRHUTA LETTER JA
+11497 ; [.2B97.0020.0002] # TIRHUTA LETTER JHA
+11498 ; [.2B98.0020.0002] # TIRHUTA LETTER NYA
+11499 ; [.2B99.0020.0002] # TIRHUTA LETTER TTA
+1149A ; [.2B9A.0020.0002] # TIRHUTA LETTER TTHA
+1149B ; [.2B9B.0020.0002] # TIRHUTA LETTER DDA
+1149C ; [.2B9C.0020.0002] # TIRHUTA LETTER DDHA
+1149D ; [.2B9D.0020.0002] # TIRHUTA LETTER NNA
+1149E ; [.2B9E.0020.0002] # TIRHUTA LETTER TA
+1149F ; [.2B9F.0020.0002] # TIRHUTA LETTER THA
+114A0 ; [.2BA0.0020.0002] # TIRHUTA LETTER DA
+114A1 ; [.2BA1.0020.0002] # TIRHUTA LETTER DHA
+114A2 ; [.2BA2.0020.0002] # TIRHUTA LETTER NA
+114A3 ; [.2BA3.0020.0002] # TIRHUTA LETTER PA
+114A4 ; [.2BA4.0020.0002] # TIRHUTA LETTER PHA
+114A5 ; [.2BA5.0020.0002] # TIRHUTA LETTER BA
+114A6 ; [.2BA6.0020.0002] # TIRHUTA LETTER BHA
+114A7 ; [.2BA7.0020.0002] # TIRHUTA LETTER MA
+114A8 ; [.2BA8.0020.0002] # TIRHUTA LETTER YA
+114A9 ; [.2BA9.0020.0002] # TIRHUTA LETTER RA
+114AA ; [.2BAA.0020.0002] # TIRHUTA LETTER LA
+114AB ; [.2BAB.0020.0002] # TIRHUTA LETTER VA
+114AC ; [.2BAC.0020.0002] # TIRHUTA LETTER SHA
+114AD ; [.2BAD.0020.0002] # TIRHUTA LETTER SSA
+114AE ; [.2BAE.0020.0002] # TIRHUTA LETTER SA
+114AF ; [.2BAF.0020.0002] # TIRHUTA LETTER HA
+114C4 ; [.2BB0.0020.0002] # TIRHUTA SIGN AVAGRAHA
+114C5 ; [.2BB1.0020.0002] # TIRHUTA GVANG
+114B0 ; [.2BB2.0020.0002] # TIRHUTA VOWEL SIGN AA
+114B1 ; [.2BB3.0020.0002] # TIRHUTA VOWEL SIGN I
+114B2 ; [.2BB4.0020.0002] # TIRHUTA VOWEL SIGN II
+114B3 ; [.2BB5.0020.0002] # TIRHUTA VOWEL SIGN U
+114B4 ; [.2BB6.0020.0002] # TIRHUTA VOWEL SIGN UU
+114B5 ; [.2BB7.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC R
+114B6 ; [.2BB8.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC RR
+114B7 ; [.2BB9.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC L
+114B8 ; [.2BBA.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 ; [.2BBB.0020.0002] # TIRHUTA VOWEL SIGN E
+114BA ; [.2BBC.0020.0002] # TIRHUTA VOWEL SIGN SHORT E
+114BB ; [.2BBD.0020.0002] # TIRHUTA VOWEL SIGN AI
+114B9 114BA ; [.2BBD.0020.0002] # TIRHUTA VOWEL SIGN AI
+114BC ; [.2BBE.0020.0002] # TIRHUTA VOWEL SIGN O
+114B9 114B0 ; [.2BBE.0020.0002] # TIRHUTA VOWEL SIGN O
+114BD ; [.2BBF.0020.0002] # TIRHUTA VOWEL SIGN SHORT O
+114BE ; [.2BC0.0020.0002] # TIRHUTA VOWEL SIGN AU
+114B9 114BD ; [.2BC0.0020.0002] # TIRHUTA VOWEL SIGN AU
+114C2 ; [.2BC1.0020.0002] # TIRHUTA SIGN VIRAMA
+11580 ; [.2BC2.0020.0002] # SIDDHAM LETTER A
+11581 ; [.2BC3.0020.0002] # SIDDHAM LETTER AA
+11582 ; [.2BC4.0020.0002] # SIDDHAM LETTER I
+115D8 ; [.2BC4.0020.0004][.0000.0110.0004] # SIDDHAM LETTER THREE-CIRCLE ALTERNATE I
+115D9 ; [.2BC4.0020.0004][.0000.0111.0004] # SIDDHAM LETTER TWO-CIRCLE ALTERNATE I
+11583 ; [.2BC5.0020.0002] # SIDDHAM LETTER II
+115DA ; [.2BC5.0020.0004][.0000.0110.0004] # SIDDHAM LETTER TWO-CIRCLE ALTERNATE II
+11584 ; [.2BC6.0020.0002] # SIDDHAM LETTER U
+115DB ; [.2BC6.0020.0004][.0000.0110.0004] # SIDDHAM LETTER ALTERNATE U
+11585 ; [.2BC7.0020.0002] # SIDDHAM LETTER UU
+11586 ; [.2BC8.0020.0002] # SIDDHAM LETTER VOCALIC R
+11587 ; [.2BC9.0020.0002] # SIDDHAM LETTER VOCALIC RR
+11588 ; [.2BCA.0020.0002] # SIDDHAM LETTER VOCALIC L
+11589 ; [.2BCB.0020.0002] # SIDDHAM LETTER VOCALIC LL
+1158A ; [.2BCC.0020.0002] # SIDDHAM LETTER E
+1158B ; [.2BCD.0020.0002] # SIDDHAM LETTER AI
+1158C ; [.2BCE.0020.0002] # SIDDHAM LETTER O
+1158D ; [.2BCF.0020.0002] # SIDDHAM LETTER AU
+1158E ; [.2BD0.0020.0002] # SIDDHAM LETTER KA
+1158F ; [.2BD1.0020.0002] # SIDDHAM LETTER KHA
+11590 ; [.2BD2.0020.0002] # SIDDHAM LETTER GA
+11591 ; [.2BD3.0020.0002] # SIDDHAM LETTER GHA
+11592 ; [.2BD4.0020.0002] # SIDDHAM LETTER NGA
+11593 ; [.2BD5.0020.0002] # SIDDHAM LETTER CA
+11594 ; [.2BD6.0020.0002] # SIDDHAM LETTER CHA
+11595 ; [.2BD7.0020.0002] # SIDDHAM LETTER JA
+11596 ; [.2BD8.0020.0002] # SIDDHAM LETTER JHA
+11597 ; [.2BD9.0020.0002] # SIDDHAM LETTER NYA
+11598 ; [.2BDA.0020.0002] # SIDDHAM LETTER TTA
+11599 ; [.2BDB.0020.0002] # SIDDHAM LETTER TTHA
+1159A ; [.2BDC.0020.0002] # SIDDHAM LETTER DDA
+1159B ; [.2BDD.0020.0002] # SIDDHAM LETTER DDHA
+1159C ; [.2BDE.0020.0002] # SIDDHAM LETTER NNA
+1159D ; [.2BDF.0020.0002] # SIDDHAM LETTER TA
+1159E ; [.2BE0.0020.0002] # SIDDHAM LETTER THA
+1159F ; [.2BE1.0020.0002] # SIDDHAM LETTER DA
+115A0 ; [.2BE2.0020.0002] # SIDDHAM LETTER DHA
+115A1 ; [.2BE3.0020.0002] # SIDDHAM LETTER NA
+115A2 ; [.2BE4.0020.0002] # SIDDHAM LETTER PA
+115A3 ; [.2BE5.0020.0002] # SIDDHAM LETTER PHA
+115A4 ; [.2BE6.0020.0002] # SIDDHAM LETTER BA
+115A5 ; [.2BE7.0020.0002] # SIDDHAM LETTER BHA
+115A6 ; [.2BE8.0020.0002] # SIDDHAM LETTER MA
+115A7 ; [.2BE9.0020.0002] # SIDDHAM LETTER YA
+115A8 ; [.2BEA.0020.0002] # SIDDHAM LETTER RA
+115A9 ; [.2BEB.0020.0002] # SIDDHAM LETTER LA
+115AA ; [.2BEC.0020.0002] # SIDDHAM LETTER VA
+115AB ; [.2BED.0020.0002] # SIDDHAM LETTER SHA
+115AC ; [.2BEE.0020.0002] # SIDDHAM LETTER SSA
+115AD ; [.2BEF.0020.0002] # SIDDHAM LETTER SA
+115AE ; [.2BF0.0020.0002] # SIDDHAM LETTER HA
+115AF ; [.2BF1.0020.0002] # SIDDHAM VOWEL SIGN AA
+115B0 ; [.2BF2.0020.0002] # SIDDHAM VOWEL SIGN I
+115B1 ; [.2BF3.0020.0002] # SIDDHAM VOWEL SIGN II
+115B2 ; [.2BF4.0020.0002] # SIDDHAM VOWEL SIGN U
+115DC ; [.2BF4.0020.0004][.0000.0110.0004] # SIDDHAM VOWEL SIGN ALTERNATE U
+115B3 ; [.2BF5.0020.0002] # SIDDHAM VOWEL SIGN UU
+115DD ; [.2BF5.0020.0004][.0000.0110.0004] # SIDDHAM VOWEL SIGN ALTERNATE UU
+115B4 ; [.2BF6.0020.0002] # SIDDHAM VOWEL SIGN VOCALIC R
+115B5 ; [.2BF7.0020.0002] # SIDDHAM VOWEL SIGN VOCALIC RR
+115B8 ; [.2BF8.0020.0002] # SIDDHAM VOWEL SIGN E
+115B9 ; [.2BF9.0020.0002] # SIDDHAM VOWEL SIGN AI
+115BA ; [.2BFA.0020.0002] # SIDDHAM VOWEL SIGN O
+115B8 115AF ; [.2BFA.0020.0002] # SIDDHAM VOWEL SIGN O
+115BB ; [.2BFB.0020.0002] # SIDDHAM VOWEL SIGN AU
+115B9 115AF ; [.2BFB.0020.0002] # SIDDHAM VOWEL SIGN AU
+115BF ; [.2BFC.0020.0002] # SIDDHAM SIGN VIRAMA
+11600 ; [.2BFD.0020.0002] # MODI LETTER A
+11601 ; [.2BFE.0020.0002] # MODI LETTER AA
+11602 ; [.2BFF.0020.0002] # MODI LETTER I
+11603 ; [.2C00.0020.0002] # MODI LETTER II
+11604 ; [.2C01.0020.0002] # MODI LETTER U
+11605 ; [.2C02.0020.0002] # MODI LETTER UU
+11606 ; [.2C03.0020.0002] # MODI LETTER VOCALIC R
+11607 ; [.2C04.0020.0002] # MODI LETTER VOCALIC RR
+11608 ; [.2C05.0020.0002] # MODI LETTER VOCALIC L
+11609 ; [.2C06.0020.0002] # MODI LETTER VOCALIC LL
+1160A ; [.2C07.0020.0002] # MODI LETTER E
+1160B ; [.2C08.0020.0002] # MODI LETTER AI
+1160C ; [.2C09.0020.0002] # MODI LETTER O
+1160D ; [.2C0A.0020.0002] # MODI LETTER AU
+1160E ; [.2C0B.0020.0002] # MODI LETTER KA
+1160F ; [.2C0C.0020.0002] # MODI LETTER KHA
+11610 ; [.2C0D.0020.0002] # MODI LETTER GA
+11611 ; [.2C0E.0020.0002] # MODI LETTER GHA
+11612 ; [.2C0F.0020.0002] # MODI LETTER NGA
+11613 ; [.2C10.0020.0002] # MODI LETTER CA
+11614 ; [.2C11.0020.0002] # MODI LETTER CHA
+11615 ; [.2C12.0020.0002] # MODI LETTER JA
+11616 ; [.2C13.0020.0002] # MODI LETTER JHA
+11617 ; [.2C14.0020.0002] # MODI LETTER NYA
+11618 ; [.2C15.0020.0002] # MODI LETTER TTA
+11619 ; [.2C16.0020.0002] # MODI LETTER TTHA
+1161A ; [.2C17.0020.0002] # MODI LETTER DDA
+1161B ; [.2C18.0020.0002] # MODI LETTER DDHA
+1161C ; [.2C19.0020.0002] # MODI LETTER NNA
+1161D ; [.2C1A.0020.0002] # MODI LETTER TA
+1161E ; [.2C1B.0020.0002] # MODI LETTER THA
+1161F ; [.2C1C.0020.0002] # MODI LETTER DA
+11620 ; [.2C1D.0020.0002] # MODI LETTER DHA
+11621 ; [.2C1E.0020.0002] # MODI LETTER NA
+11622 ; [.2C1F.0020.0002] # MODI LETTER PA
+11623 ; [.2C20.0020.0002] # MODI LETTER PHA
+11624 ; [.2C21.0020.0002] # MODI LETTER BA
+11625 ; [.2C22.0020.0002] # MODI LETTER BHA
+11626 ; [.2C23.0020.0002] # MODI LETTER MA
+11627 ; [.2C24.0020.0002] # MODI LETTER YA
+11628 ; [.2C25.0020.0002] # MODI LETTER RA
+11629 ; [.2C26.0020.0002] # MODI LETTER LA
+1162A ; [.2C27.0020.0002] # MODI LETTER VA
+1162B ; [.2C28.0020.0002] # MODI LETTER SHA
+1162C ; [.2C29.0020.0002] # MODI LETTER SSA
+1162D ; [.2C2A.0020.0002] # MODI LETTER SA
+1162E ; [.2C2B.0020.0002] # MODI LETTER HA
+1162F ; [.2C2C.0020.0002] # MODI LETTER LLA
+11630 ; [.2C2D.0020.0002] # MODI VOWEL SIGN AA
+11631 ; [.2C2E.0020.0002] # MODI VOWEL SIGN I
+11632 ; [.2C2F.0020.0002] # MODI VOWEL SIGN II
+11633 ; [.2C30.0020.0002] # MODI VOWEL SIGN U
+11634 ; [.2C31.0020.0002] # MODI VOWEL SIGN UU
+11635 ; [.2C32.0020.0002] # MODI VOWEL SIGN VOCALIC R
+11636 ; [.2C33.0020.0002] # MODI VOWEL SIGN VOCALIC RR
+11637 ; [.2C34.0020.0002] # MODI VOWEL SIGN VOCALIC L
+11638 ; [.2C35.0020.0002] # MODI VOWEL SIGN VOCALIC LL
+11639 ; [.2C36.0020.0002] # MODI VOWEL SIGN E
+1163A ; [.2C37.0020.0002] # MODI VOWEL SIGN AI
+1163B ; [.2C38.0020.0002] # MODI VOWEL SIGN O
+1163C ; [.2C39.0020.0002] # MODI VOWEL SIGN AU
+1163F ; [.2C3A.0020.0002] # MODI SIGN VIRAMA
+11644 ; [.2C3B.0020.0002] # MODI SIGN HUVA
+11680 ; [.2C3C.0020.0002] # TAKRI LETTER A
+11681 ; [.2C3D.0020.0002] # TAKRI LETTER AA
+11682 ; [.2C3E.0020.0002] # TAKRI LETTER I
+11683 ; [.2C3F.0020.0002] # TAKRI LETTER II
+11684 ; [.2C40.0020.0002] # TAKRI LETTER U
+11685 ; [.2C41.0020.0002] # TAKRI LETTER UU
+11686 ; [.2C42.0020.0002] # TAKRI LETTER E
+11687 ; [.2C43.0020.0002] # TAKRI LETTER AI
+11688 ; [.2C44.0020.0002] # TAKRI LETTER O
+11689 ; [.2C45.0020.0002] # TAKRI LETTER AU
+116A8 ; [.2C46.0020.0002] # TAKRI LETTER SA
+116A7 ; [.2C47.0020.0002] # TAKRI LETTER SHA
+116A9 ; [.2C48.0020.0002] # TAKRI LETTER HA
+1168A ; [.2C49.0020.0002] # TAKRI LETTER KA
+1168B ; [.2C4A.0020.0002] # TAKRI LETTER KHA
+1168C ; [.2C4B.0020.0002] # TAKRI LETTER GA
+1168D ; [.2C4C.0020.0002] # TAKRI LETTER GHA
+1168E ; [.2C4D.0020.0002] # TAKRI LETTER NGA
+1168F ; [.2C4E.0020.0002] # TAKRI LETTER CA
+11690 ; [.2C4F.0020.0002] # TAKRI LETTER CHA
+11691 ; [.2C50.0020.0002] # TAKRI LETTER JA
+11692 ; [.2C51.0020.0002] # TAKRI LETTER JHA
+11693 ; [.2C52.0020.0002] # TAKRI LETTER NYA
+11694 ; [.2C53.0020.0002] # TAKRI LETTER TTA
+11695 ; [.2C54.0020.0002] # TAKRI LETTER TTHA
+11696 ; [.2C55.0020.0002] # TAKRI LETTER DDA
+11697 ; [.2C56.0020.0002] # TAKRI LETTER DDHA
+11698 ; [.2C57.0020.0002] # TAKRI LETTER NNA
+11699 ; [.2C58.0020.0002] # TAKRI LETTER TA
+1169A ; [.2C59.0020.0002] # TAKRI LETTER THA
+1169B ; [.2C5A.0020.0002] # TAKRI LETTER DA
+1169C ; [.2C5B.0020.0002] # TAKRI LETTER DHA
+1169D ; [.2C5C.0020.0002] # TAKRI LETTER NA
+1169E ; [.2C5D.0020.0002] # TAKRI LETTER PA
+1169F ; [.2C5E.0020.0002] # TAKRI LETTER PHA
+116A0 ; [.2C5F.0020.0002] # TAKRI LETTER BA
+116A1 ; [.2C60.0020.0002] # TAKRI LETTER BHA
+116A2 ; [.2C61.0020.0002] # TAKRI LETTER MA
+116A3 ; [.2C62.0020.0002] # TAKRI LETTER YA
+116A4 ; [.2C63.0020.0002] # TAKRI LETTER RA
+116A5 ; [.2C64.0020.0002] # TAKRI LETTER LA
+116A6 ; [.2C65.0020.0002] # TAKRI LETTER VA
+116AA ; [.2C66.0020.0002] # TAKRI LETTER RRA
+116AD ; [.2C67.0020.0002] # TAKRI VOWEL SIGN AA
+116AE ; [.2C68.0020.0002] # TAKRI VOWEL SIGN I
+116AF ; [.2C69.0020.0002] # TAKRI VOWEL SIGN II
+116B0 ; [.2C6A.0020.0002] # TAKRI VOWEL SIGN U
+116B1 ; [.2C6B.0020.0002] # TAKRI VOWEL SIGN UU
+116B2 ; [.2C6C.0020.0002] # TAKRI VOWEL SIGN E
+116B3 ; [.2C6D.0020.0002] # TAKRI VOWEL SIGN AI
+116B4 ; [.2C6E.0020.0002] # TAKRI VOWEL SIGN O
+116B5 ; [.2C6F.0020.0002] # TAKRI VOWEL SIGN AU
+116B6 ; [.2C70.0020.0002] # TAKRI SIGN VIRAMA
+11700 ; [.2C71.0020.0002] # AHOM LETTER KA
+11701 ; [.2C72.0020.0002] # AHOM LETTER KHA
+11702 ; [.2C73.0020.0002] # AHOM LETTER NGA
+11703 ; [.2C74.0020.0002] # AHOM LETTER NA
+11704 ; [.2C75.0020.0002] # AHOM LETTER TA
+11705 ; [.2C75.0020.0004][.0000.0110.0004] # AHOM LETTER ALTERNATE TA
+11706 ; [.2C76.0020.0002] # AHOM LETTER PA
+11707 ; [.2C77.0020.0002] # AHOM LETTER PHA
+11708 ; [.2C78.0020.0002] # AHOM LETTER BA
+11709 ; [.2C79.0020.0002] # AHOM LETTER MA
+1170A ; [.2C7A.0020.0002] # AHOM LETTER JA
+1170B ; [.2C7B.0020.0002] # AHOM LETTER CHA
+1170C ; [.2C7C.0020.0002] # AHOM LETTER THA
+1170D ; [.2C7D.0020.0002] # AHOM LETTER RA
+1170E ; [.2C7E.0020.0002] # AHOM LETTER LA
+1170F ; [.2C7F.0020.0002] # AHOM LETTER SA
+11710 ; [.2C80.0020.0002] # AHOM LETTER NYA
+11711 ; [.2C81.0020.0002] # AHOM LETTER HA
+11712 ; [.2C82.0020.0002] # AHOM LETTER A
+11713 ; [.2C83.0020.0002] # AHOM LETTER DA
+11714 ; [.2C84.0020.0002] # AHOM LETTER DHA
+11715 ; [.2C85.0020.0002] # AHOM LETTER GA
+11716 ; [.2C85.0020.0004][.0000.0110.0004] # AHOM LETTER ALTERNATE GA
+11717 ; [.2C86.0020.0002] # AHOM LETTER GHA
+11718 ; [.2C87.0020.0002] # AHOM LETTER BHA
+11719 ; [.2C88.0020.0002] # AHOM LETTER JHA
+11720 ; [.2C89.0020.0002] # AHOM VOWEL SIGN A
+11721 ; [.2C8A.0020.0002] # AHOM VOWEL SIGN AA
+11722 ; [.2C8B.0020.0002] # AHOM VOWEL SIGN I
+11723 ; [.2C8C.0020.0002] # AHOM VOWEL SIGN II
+11724 ; [.2C8D.0020.0002] # AHOM VOWEL SIGN U
+11725 ; [.2C8E.0020.0002] # AHOM VOWEL SIGN UU
+11726 ; [.2C8F.0020.0002] # AHOM VOWEL SIGN E
+11727 ; [.2C90.0020.0002] # AHOM VOWEL SIGN AW
+11728 ; [.2C91.0020.0002] # AHOM VOWEL SIGN O
+11729 ; [.2C92.0020.0002] # AHOM VOWEL SIGN AI
+1172A ; [.2C93.0020.0002] # AHOM VOWEL SIGN AM
+1172B ; [.2C94.0020.0002] # AHOM SIGN KILLER
+1171D ; [.2C95.0020.0002] # AHOM CONSONANT SIGN MEDIAL LA
+1171E ; [.2C96.0020.0002] # AHOM CONSONANT SIGN MEDIAL RA
+1171F ; [.2C97.0020.0002] # AHOM CONSONANT SIGN MEDIAL LIGATING RA
+1B83 ; [.2C98.0020.0002] # SUNDANESE LETTER A
+1BBA ; [.2C98.0020.0004] # SUNDANESE AVAGRAHA
+1B84 ; [.2C99.0020.0002] # SUNDANESE LETTER I
+1B85 ; [.2C9A.0020.0002] # SUNDANESE LETTER U
+1B86 ; [.2C9B.0020.0002] # SUNDANESE LETTER AE
+1B87 ; [.2C9C.0020.0002] # SUNDANESE LETTER O
+1B88 ; [.2C9D.0020.0002] # SUNDANESE LETTER E
+1B89 ; [.2C9E.0020.0002] # SUNDANESE LETTER EU
+1B8A ; [.2C9F.0020.0002] # SUNDANESE LETTER KA
+1BBE ; [.2C9F.0020.0019] # SUNDANESE LETTER FINAL K
+1BAE ; [.2CA0.0020.0002] # SUNDANESE LETTER KHA
+1B8B ; [.2CA1.0020.0002] # SUNDANESE LETTER QA
+1B8C ; [.2CA2.0020.0002] # SUNDANESE LETTER GA
+1B8D ; [.2CA3.0020.0002] # SUNDANESE LETTER NGA
+1B8E ; [.2CA4.0020.0002] # SUNDANESE LETTER CA
+1B8F ; [.2CA5.0020.0002] # SUNDANESE LETTER JA
+1B90 ; [.2CA6.0020.0002] # SUNDANESE LETTER ZA
+1B91 ; [.2CA7.0020.0002] # SUNDANESE LETTER NYA
+1B92 ; [.2CA8.0020.0002] # SUNDANESE LETTER TA
+1B93 ; [.2CA9.0020.0002] # SUNDANESE LETTER DA
+1B94 ; [.2CAA.0020.0002] # SUNDANESE LETTER NA
+1B95 ; [.2CAB.0020.0002] # SUNDANESE LETTER PA
+1B96 ; [.2CAC.0020.0002] # SUNDANESE LETTER FA
+1B97 ; [.2CAD.0020.0002] # SUNDANESE LETTER VA
+1B98 ; [.2CAE.0020.0002] # SUNDANESE LETTER BA
+1BBD ; [.2CAF.0020.0002] # SUNDANESE LETTER BHA
+1B99 ; [.2CB0.0020.0002] # SUNDANESE LETTER MA
+1BBF ; [.2CB0.0020.0019] # SUNDANESE LETTER FINAL M
+1BAC ; [.2CB1.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN MA
+1B9A ; [.2CB2.0020.0002] # SUNDANESE LETTER YA
+1BA1 ; [.2CB3.0020.0002] # SUNDANESE CONSONANT SIGN PAMINGKAL
+1B9B ; [.2CB4.0020.0002] # SUNDANESE LETTER RA
+1BA2 ; [.2CB5.0020.0002] # SUNDANESE CONSONANT SIGN PANYAKRA
+1BBB ; [.2CB6.0020.0002] # SUNDANESE LETTER REU
+1B9C ; [.2CB7.0020.0002] # SUNDANESE LETTER LA
+1BA3 ; [.2CB8.0020.0002] # SUNDANESE CONSONANT SIGN PANYIKU
+1BBC ; [.2CB9.0020.0002] # SUNDANESE LETTER LEU
+1B9D ; [.2CBA.0020.0002] # SUNDANESE LETTER WA
+1BAD ; [.2CBB.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN WA
+1B9E ; [.2CBC.0020.0002] # SUNDANESE LETTER SA
+1B9F ; [.2CBD.0020.0002] # SUNDANESE LETTER XA
+1BAF ; [.2CBE.0020.0002] # SUNDANESE LETTER SYA
+1BA0 ; [.2CBF.0020.0002] # SUNDANESE LETTER HA
+1BA4 ; [.2CC0.0020.0002] # SUNDANESE VOWEL SIGN PANGHULU
+1BA5 ; [.2CC1.0020.0002] # SUNDANESE VOWEL SIGN PANYUKU
+1BA6 ; [.2CC2.0020.0002] # SUNDANESE VOWEL SIGN PANAELAENG
+1BA7 ; [.2CC3.0020.0002] # SUNDANESE VOWEL SIGN PANOLONG
+1BA8 ; [.2CC4.0020.0002] # SUNDANESE VOWEL SIGN PAMEPET
+1BA9 ; [.2CC5.0020.0002] # SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA ; [.2CC6.0020.0002] # SUNDANESE SIGN PAMAAEH
+1BAB ; [.2CC7.0020.0002] # SUNDANESE SIGN VIRAMA
+11005 ; [.2CC8.0020.0002] # BRAHMI LETTER A
+11006 ; [.2CC9.0020.0002] # BRAHMI LETTER AA
+11007 ; [.2CCA.0020.0002] # BRAHMI LETTER I
+11008 ; [.2CCB.0020.0002] # BRAHMI LETTER II
+11009 ; [.2CCC.0020.0002] # BRAHMI LETTER U
+1100A ; [.2CCD.0020.0002] # BRAHMI LETTER UU
+1100B ; [.2CCE.0020.0002] # BRAHMI LETTER VOCALIC R
+1100C ; [.2CCF.0020.0002] # BRAHMI LETTER VOCALIC RR
+1100D ; [.2CD0.0020.0002] # BRAHMI LETTER VOCALIC L
+1100E ; [.2CD1.0020.0002] # BRAHMI LETTER VOCALIC LL
+1100F ; [.2CD2.0020.0002] # BRAHMI LETTER E
+11010 ; [.2CD3.0020.0002] # BRAHMI LETTER AI
+11011 ; [.2CD4.0020.0002] # BRAHMI LETTER O
+11012 ; [.2CD5.0020.0002] # BRAHMI LETTER AU
+11013 ; [.2CD6.0020.0002] # BRAHMI LETTER KA
+11014 ; [.2CD7.0020.0002] # BRAHMI LETTER KHA
+11015 ; [.2CD8.0020.0002] # BRAHMI LETTER GA
+11016 ; [.2CD9.0020.0002] # BRAHMI LETTER GHA
+11017 ; [.2CDA.0020.0002] # BRAHMI LETTER NGA
+11018 ; [.2CDB.0020.0002] # BRAHMI LETTER CA
+11019 ; [.2CDC.0020.0002] # BRAHMI LETTER CHA
+1101A ; [.2CDD.0020.0002] # BRAHMI LETTER JA
+1101B ; [.2CDE.0020.0002] # BRAHMI LETTER JHA
+1101C ; [.2CDF.0020.0002] # BRAHMI LETTER NYA
+1101D ; [.2CE0.0020.0002] # BRAHMI LETTER TTA
+1101E ; [.2CE1.0020.0002] # BRAHMI LETTER TTHA
+1101F ; [.2CE2.0020.0002] # BRAHMI LETTER DDA
+11020 ; [.2CE3.0020.0002] # BRAHMI LETTER DDHA
+11021 ; [.2CE4.0020.0002] # BRAHMI LETTER NNA
+11022 ; [.2CE5.0020.0002] # BRAHMI LETTER TA
+11023 ; [.2CE6.0020.0002] # BRAHMI LETTER THA
+11024 ; [.2CE7.0020.0002] # BRAHMI LETTER DA
+11025 ; [.2CE8.0020.0002] # BRAHMI LETTER DHA
+11026 ; [.2CE9.0020.0002] # BRAHMI LETTER NA
+11027 ; [.2CEA.0020.0002] # BRAHMI LETTER PA
+11028 ; [.2CEB.0020.0002] # BRAHMI LETTER PHA
+11029 ; [.2CEC.0020.0002] # BRAHMI LETTER BA
+1102A ; [.2CED.0020.0002] # BRAHMI LETTER BHA
+1102B ; [.2CEE.0020.0002] # BRAHMI LETTER MA
+1102C ; [.2CEF.0020.0002] # BRAHMI LETTER YA
+1102D ; [.2CF0.0020.0002] # BRAHMI LETTER RA
+1102E ; [.2CF1.0020.0002] # BRAHMI LETTER LA
+1102F ; [.2CF2.0020.0002] # BRAHMI LETTER VA
+11030 ; [.2CF3.0020.0002] # BRAHMI LETTER SHA
+11031 ; [.2CF4.0020.0002] # BRAHMI LETTER SSA
+11032 ; [.2CF5.0020.0002] # BRAHMI LETTER SA
+11033 ; [.2CF6.0020.0002] # BRAHMI LETTER HA
+11003 ; [.2CF7.0020.0002] # BRAHMI SIGN JIHVAMULIYA
+11004 ; [.2CF8.0020.0002] # BRAHMI SIGN UPADHMANIYA
+11034 ; [.2CF9.0020.0002] # BRAHMI LETTER LLA
+11035 ; [.2CFA.0020.0002] # BRAHMI LETTER OLD TAMIL LLLA
+11036 ; [.2CFB.0020.0002] # BRAHMI LETTER OLD TAMIL RRA
+11037 ; [.2CFC.0020.0002] # BRAHMI LETTER OLD TAMIL NNNA
+11038 ; [.2CFD.0020.0002] # BRAHMI VOWEL SIGN AA
+11039 ; [.2CFE.0020.0002] # BRAHMI VOWEL SIGN BHATTIPROLU AA
+1103A ; [.2CFF.0020.0002] # BRAHMI VOWEL SIGN I
+1103B ; [.2D00.0020.0002] # BRAHMI VOWEL SIGN II
+1103C ; [.2D01.0020.0002] # BRAHMI VOWEL SIGN U
+1103D ; [.2D02.0020.0002] # BRAHMI VOWEL SIGN UU
+1103E ; [.2D03.0020.0002] # BRAHMI VOWEL SIGN VOCALIC R
+1103F ; [.2D04.0020.0002] # BRAHMI VOWEL SIGN VOCALIC RR
+11040 ; [.2D05.0020.0002] # BRAHMI VOWEL SIGN VOCALIC L
+11041 ; [.2D06.0020.0002] # BRAHMI VOWEL SIGN VOCALIC LL
+11042 ; [.2D07.0020.0002] # BRAHMI VOWEL SIGN E
+11043 ; [.2D08.0020.0002] # BRAHMI VOWEL SIGN AI
+11044 ; [.2D09.0020.0002] # BRAHMI VOWEL SIGN O
+11045 ; [.2D0A.0020.0002] # BRAHMI VOWEL SIGN AU
+11046 ; [.2D0B.0020.0002] # BRAHMI VIRAMA
+1107F ; [.2D0C.0020.0002] # BRAHMI NUMBER JOINER
+10A00 ; [.2D0D.0020.0002] # KHAROSHTHI LETTER A
+10A01 ; [.2D0E.0020.0002] # KHAROSHTHI VOWEL SIGN I
+10A02 ; [.2D0F.0020.0002] # KHAROSHTHI VOWEL SIGN U
+10A03 ; [.2D10.0020.0002] # KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05 ; [.2D11.0020.0002] # KHAROSHTHI VOWEL SIGN E
+10A06 ; [.2D12.0020.0002] # KHAROSHTHI VOWEL SIGN O
+10A0C ; [.2D13.0020.0002] # KHAROSHTHI VOWEL LENGTH MARK
+10A10 ; [.2D14.0020.0002] # KHAROSHTHI LETTER KA
+10A11 ; [.2D15.0020.0002] # KHAROSHTHI LETTER KHA
+10A12 ; [.2D16.0020.0002] # KHAROSHTHI LETTER GA
+10A13 ; [.2D17.0020.0002] # KHAROSHTHI LETTER GHA
+10A15 ; [.2D18.0020.0002] # KHAROSHTHI LETTER CA
+10A16 ; [.2D19.0020.0002] # KHAROSHTHI LETTER CHA
+10A17 ; [.2D1A.0020.0002] # KHAROSHTHI LETTER JA
+10A19 ; [.2D1B.0020.0002] # KHAROSHTHI LETTER NYA
+10A1A ; [.2D1C.0020.0002] # KHAROSHTHI LETTER TTA
+10A1B ; [.2D1D.0020.0002] # KHAROSHTHI LETTER TTHA
+10A1C ; [.2D1E.0020.0002] # KHAROSHTHI LETTER DDA
+10A1D ; [.2D1F.0020.0002] # KHAROSHTHI LETTER DDHA
+10A1E ; [.2D20.0020.0002] # KHAROSHTHI LETTER NNA
+10A1F ; [.2D21.0020.0002] # KHAROSHTHI LETTER TA
+10A20 ; [.2D22.0020.0002] # KHAROSHTHI LETTER THA
+10A21 ; [.2D23.0020.0002] # KHAROSHTHI LETTER DA
+10A22 ; [.2D24.0020.0002] # KHAROSHTHI LETTER DHA
+10A23 ; [.2D25.0020.0002] # KHAROSHTHI LETTER NA
+10A24 ; [.2D26.0020.0002] # KHAROSHTHI LETTER PA
+10A25 ; [.2D27.0020.0002] # KHAROSHTHI LETTER PHA
+10A26 ; [.2D28.0020.0002] # KHAROSHTHI LETTER BA
+10A27 ; [.2D29.0020.0002] # KHAROSHTHI LETTER BHA
+10A28 ; [.2D2A.0020.0002] # KHAROSHTHI LETTER MA
+10A29 ; [.2D2B.0020.0002] # KHAROSHTHI LETTER YA
+10A2A ; [.2D2C.0020.0002] # KHAROSHTHI LETTER RA
+10A2B ; [.2D2D.0020.0002] # KHAROSHTHI LETTER LA
+10A2C ; [.2D2E.0020.0002] # KHAROSHTHI LETTER VA
+10A2D ; [.2D2F.0020.0002] # KHAROSHTHI LETTER SHA
+10A2E ; [.2D30.0020.0002] # KHAROSHTHI LETTER SSA
+10A2F ; [.2D31.0020.0002] # KHAROSHTHI LETTER SA
+10A30 ; [.2D32.0020.0002] # KHAROSHTHI LETTER ZA
+10A31 ; [.2D33.0020.0002] # KHAROSHTHI LETTER HA
+10A32 ; [.2D34.0020.0002] # KHAROSHTHI LETTER KKA
+10A33 ; [.2D35.0020.0002] # KHAROSHTHI LETTER TTTHA
+10A3F ; [.2D36.0020.0002] # KHAROSHTHI VIRAMA
+11C00 ; [.2D37.0020.0002] # BHAIKSUKI LETTER A
+11C01 ; [.2D38.0020.0002] # BHAIKSUKI LETTER AA
+11C02 ; [.2D39.0020.0002] # BHAIKSUKI LETTER I
+11C03 ; [.2D3A.0020.0002] # BHAIKSUKI LETTER II
+11C04 ; [.2D3B.0020.0002] # BHAIKSUKI LETTER U
+11C05 ; [.2D3C.0020.0002] # BHAIKSUKI LETTER UU
+11C06 ; [.2D3D.0020.0002] # BHAIKSUKI LETTER VOCALIC R
+11C07 ; [.2D3E.0020.0002] # BHAIKSUKI LETTER VOCALIC RR
+11C08 ; [.2D3F.0020.0002] # BHAIKSUKI LETTER VOCALIC L
+11C0A ; [.2D40.0020.0002] # BHAIKSUKI LETTER E
+11C0B ; [.2D41.0020.0002] # BHAIKSUKI LETTER AI
+11C0C ; [.2D42.0020.0002] # BHAIKSUKI LETTER O
+11C0D ; [.2D43.0020.0002] # BHAIKSUKI LETTER AU
+11C0E ; [.2D44.0020.0002] # BHAIKSUKI LETTER KA
+11C0F ; [.2D45.0020.0002] # BHAIKSUKI LETTER KHA
+11C10 ; [.2D46.0020.0002] # BHAIKSUKI LETTER GA
+11C11 ; [.2D47.0020.0002] # BHAIKSUKI LETTER GHA
+11C12 ; [.2D48.0020.0002] # BHAIKSUKI LETTER NGA
+11C13 ; [.2D49.0020.0002] # BHAIKSUKI LETTER CA
+11C14 ; [.2D4A.0020.0002] # BHAIKSUKI LETTER CHA
+11C15 ; [.2D4B.0020.0002] # BHAIKSUKI LETTER JA
+11C16 ; [.2D4C.0020.0002] # BHAIKSUKI LETTER JHA
+11C17 ; [.2D4D.0020.0002] # BHAIKSUKI LETTER NYA
+11C18 ; [.2D4E.0020.0002] # BHAIKSUKI LETTER TTA
+11C19 ; [.2D4F.0020.0002] # BHAIKSUKI LETTER TTHA
+11C1A ; [.2D50.0020.0002] # BHAIKSUKI LETTER DDA
+11C1B ; [.2D51.0020.0002] # BHAIKSUKI LETTER DDHA
+11C1C ; [.2D52.0020.0002] # BHAIKSUKI LETTER NNA
+11C1D ; [.2D53.0020.0002] # BHAIKSUKI LETTER TA
+11C1E ; [.2D54.0020.0002] # BHAIKSUKI LETTER THA
+11C1F ; [.2D55.0020.0002] # BHAIKSUKI LETTER DA
+11C20 ; [.2D56.0020.0002] # BHAIKSUKI LETTER DHA
+11C21 ; [.2D57.0020.0002] # BHAIKSUKI LETTER NA
+11C22 ; [.2D58.0020.0002] # BHAIKSUKI LETTER PA
+11C23 ; [.2D59.0020.0002] # BHAIKSUKI LETTER PHA
+11C24 ; [.2D5A.0020.0002] # BHAIKSUKI LETTER BA
+11C25 ; [.2D5B.0020.0002] # BHAIKSUKI LETTER BHA
+11C26 ; [.2D5C.0020.0002] # BHAIKSUKI LETTER MA
+11C27 ; [.2D5D.0020.0002] # BHAIKSUKI LETTER YA
+11C28 ; [.2D5E.0020.0002] # BHAIKSUKI LETTER RA
+11C29 ; [.2D5F.0020.0002] # BHAIKSUKI LETTER LA
+11C2A ; [.2D60.0020.0002] # BHAIKSUKI LETTER VA
+11C2B ; [.2D61.0020.0002] # BHAIKSUKI LETTER SHA
+11C2C ; [.2D62.0020.0002] # BHAIKSUKI LETTER SSA
+11C2D ; [.2D63.0020.0002] # BHAIKSUKI LETTER SA
+11C2E ; [.2D64.0020.0002] # BHAIKSUKI LETTER HA
+11C40 ; [.2D65.0020.0002] # BHAIKSUKI SIGN AVAGRAHA
+11C2F ; [.2D66.0020.0002] # BHAIKSUKI VOWEL SIGN AA
+11C30 ; [.2D67.0020.0002] # BHAIKSUKI VOWEL SIGN I
+11C31 ; [.2D68.0020.0002] # BHAIKSUKI VOWEL SIGN II
+11C32 ; [.2D69.0020.0002] # BHAIKSUKI VOWEL SIGN U
+11C33 ; [.2D6A.0020.0002] # BHAIKSUKI VOWEL SIGN UU
+11C34 ; [.2D6B.0020.0002] # BHAIKSUKI VOWEL SIGN VOCALIC R
+11C35 ; [.2D6C.0020.0002] # BHAIKSUKI VOWEL SIGN VOCALIC RR
+11C36 ; [.2D6D.0020.0002] # BHAIKSUKI VOWEL SIGN VOCALIC L
+11C38 ; [.2D6E.0020.0002] # BHAIKSUKI VOWEL SIGN E
+11C39 ; [.2D6F.0020.0002] # BHAIKSUKI VOWEL SIGN AI
+11C3A ; [.2D70.0020.0002] # BHAIKSUKI VOWEL SIGN O
+11C3B ; [.2D71.0020.0002] # BHAIKSUKI VOWEL SIGN AU
+11C3F ; [.2D72.0020.0002] # BHAIKSUKI SIGN VIRAMA
+0E01 ; [.2D73.0020.0002] # THAI CHARACTER KO KAI
+0E40 0E01 ; [.2D73.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KO KAI>
+0E41 0E01 ; [.2D73.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KO KAI>
+0E42 0E01 ; [.2D73.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KO KAI>
+0E43 0E01 ; [.2D73.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KO KAI>
+0E44 0E01 ; [.2D73.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KO KAI>
+0E02 ; [.2D74.0020.0002] # THAI CHARACTER KHO KHAI
+0E40 0E02 ; [.2D74.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHAI>
+0E41 0E02 ; [.2D74.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHAI>
+0E42 0E02 ; [.2D74.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHAI>
+0E43 0E02 ; [.2D74.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHAI>
+0E44 0E02 ; [.2D74.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHAI>
+0E03 ; [.2D75.0020.0002] # THAI CHARACTER KHO KHUAT
+0E40 0E03 ; [.2D75.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHUAT>
+0E41 0E03 ; [.2D75.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHUAT>
+0E42 0E03 ; [.2D75.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHUAT>
+0E43 0E03 ; [.2D75.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHUAT>
+0E44 0E03 ; [.2D75.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHUAT>
+0E04 ; [.2D76.0020.0002] # THAI CHARACTER KHO KHWAI
+0E40 0E04 ; [.2D76.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHWAI>
+0E41 0E04 ; [.2D76.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHWAI>
+0E42 0E04 ; [.2D76.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHWAI>
+0E43 0E04 ; [.2D76.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHWAI>
+0E44 0E04 ; [.2D76.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHWAI>
+0E05 ; [.2D77.0020.0002] # THAI CHARACTER KHO KHON
+0E40 0E05 ; [.2D77.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHON>
+0E41 0E05 ; [.2D77.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHON>
+0E42 0E05 ; [.2D77.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHON>
+0E43 0E05 ; [.2D77.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHON>
+0E44 0E05 ; [.2D77.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHON>
+0E06 ; [.2D78.0020.0002] # THAI CHARACTER KHO RAKHANG
+0E40 0E06 ; [.2D78.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO RAKHANG>
+0E41 0E06 ; [.2D78.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO RAKHANG>
+0E42 0E06 ; [.2D78.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO RAKHANG>
+0E43 0E06 ; [.2D78.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO RAKHANG>
+0E44 0E06 ; [.2D78.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO RAKHANG>
+0E07 ; [.2D79.0020.0002] # THAI CHARACTER NGO NGU
+0E40 0E07 ; [.2D79.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NGO NGU>
+0E41 0E07 ; [.2D79.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NGO NGU>
+0E42 0E07 ; [.2D79.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NGO NGU>
+0E43 0E07 ; [.2D79.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NGO NGU>
+0E44 0E07 ; [.2D79.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NGO NGU>
+0E08 ; [.2D7A.0020.0002] # THAI CHARACTER CHO CHAN
+0E40 0E08 ; [.2D7A.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHAN>
+0E41 0E08 ; [.2D7A.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHAN>
+0E42 0E08 ; [.2D7A.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHAN>
+0E43 0E08 ; [.2D7A.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHAN>
+0E44 0E08 ; [.2D7A.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHAN>
+0E09 ; [.2D7B.0020.0002] # THAI CHARACTER CHO CHING
+0E40 0E09 ; [.2D7B.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHING>
+0E41 0E09 ; [.2D7B.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHING>
+0E42 0E09 ; [.2D7B.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHING>
+0E43 0E09 ; [.2D7B.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHING>
+0E44 0E09 ; [.2D7B.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHING>
+0E0A ; [.2D7C.0020.0002] # THAI CHARACTER CHO CHANG
+0E40 0E0A ; [.2D7C.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHANG>
+0E41 0E0A ; [.2D7C.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHANG>
+0E42 0E0A ; [.2D7C.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHANG>
+0E43 0E0A ; [.2D7C.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHANG>
+0E44 0E0A ; [.2D7C.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHANG>
+0E0B ; [.2D7D.0020.0002] # THAI CHARACTER SO SO
+0E40 0E0B ; [.2D7D.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SO>
+0E41 0E0B ; [.2D7D.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SO>
+0E42 0E0B ; [.2D7D.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SO>
+0E43 0E0B ; [.2D7D.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SO>
+0E44 0E0B ; [.2D7D.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SO>
+0E0C ; [.2D7E.0020.0002] # THAI CHARACTER CHO CHOE
+0E40 0E0C ; [.2D7E.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHOE>
+0E41 0E0C ; [.2D7E.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHOE>
+0E42 0E0C ; [.2D7E.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHOE>
+0E43 0E0C ; [.2D7E.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHOE>
+0E44 0E0C ; [.2D7E.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHOE>
+0E0D ; [.2D7F.0020.0002] # THAI CHARACTER YO YING
+0E40 0E0D ; [.2D7F.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YING>
+0E41 0E0D ; [.2D7F.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YING>
+0E42 0E0D ; [.2D7F.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YING>
+0E43 0E0D ; [.2D7F.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YING>
+0E44 0E0D ; [.2D7F.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YING>
+0E0E ; [.2D80.0020.0002] # THAI CHARACTER DO CHADA
+0E40 0E0E ; [.2D80.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO CHADA>
+0E41 0E0E ; [.2D80.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO CHADA>
+0E42 0E0E ; [.2D80.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO CHADA>
+0E43 0E0E ; [.2D80.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO CHADA>
+0E44 0E0E ; [.2D80.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO CHADA>
+0E0F ; [.2D81.0020.0002] # THAI CHARACTER TO PATAK
+0E40 0E0F ; [.2D81.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO PATAK>
+0E41 0E0F ; [.2D81.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO PATAK>
+0E42 0E0F ; [.2D81.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO PATAK>
+0E43 0E0F ; [.2D81.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO PATAK>
+0E44 0E0F ; [.2D81.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO PATAK>
+0E10 ; [.2D82.0020.0002] # THAI CHARACTER THO THAN
+0E40 0E10 ; [.2D82.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAN>
+0E41 0E10 ; [.2D82.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAN>
+0E42 0E10 ; [.2D82.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAN>
+0E43 0E10 ; [.2D82.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAN>
+0E44 0E10 ; [.2D82.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAN>
+0E11 ; [.2D83.0020.0002] # THAI CHARACTER THO NANGMONTHO
+0E40 0E11 ; [.2D83.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO NANGMONTHO>
+0E41 0E11 ; [.2D83.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO NANGMONTHO>
+0E42 0E11 ; [.2D83.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO NANGMONTHO>
+0E43 0E11 ; [.2D83.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO NANGMONTHO>
+0E44 0E11 ; [.2D83.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO NANGMONTHO>
+0E12 ; [.2D84.0020.0002] # THAI CHARACTER THO PHUTHAO
+0E40 0E12 ; [.2D84.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO PHUTHAO>
+0E41 0E12 ; [.2D84.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO PHUTHAO>
+0E42 0E12 ; [.2D84.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO PHUTHAO>
+0E43 0E12 ; [.2D84.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO PHUTHAO>
+0E44 0E12 ; [.2D84.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO PHUTHAO>
+0E13 ; [.2D85.0020.0002] # THAI CHARACTER NO NEN
+0E40 0E13 ; [.2D85.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NEN>
+0E41 0E13 ; [.2D85.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NEN>
+0E42 0E13 ; [.2D85.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NEN>
+0E43 0E13 ; [.2D85.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NEN>
+0E44 0E13 ; [.2D85.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NEN>
+0E14 ; [.2D86.0020.0002] # THAI CHARACTER DO DEK
+0E40 0E14 ; [.2D86.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO DEK>
+0E41 0E14 ; [.2D86.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO DEK>
+0E42 0E14 ; [.2D86.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO DEK>
+0E43 0E14 ; [.2D86.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO DEK>
+0E44 0E14 ; [.2D86.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO DEK>
+0E15 ; [.2D87.0020.0002] # THAI CHARACTER TO TAO
+0E40 0E15 ; [.2D87.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO TAO>
+0E41 0E15 ; [.2D87.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO TAO>
+0E42 0E15 ; [.2D87.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO TAO>
+0E43 0E15 ; [.2D87.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO TAO>
+0E44 0E15 ; [.2D87.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO TAO>
+0E16 ; [.2D88.0020.0002] # THAI CHARACTER THO THUNG
+0E40 0E16 ; [.2D88.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THUNG>
+0E41 0E16 ; [.2D88.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THUNG>
+0E42 0E16 ; [.2D88.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THUNG>
+0E43 0E16 ; [.2D88.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THUNG>
+0E44 0E16 ; [.2D88.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THUNG>
+0E17 ; [.2D89.0020.0002] # THAI CHARACTER THO THAHAN
+0E40 0E17 ; [.2D89.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAHAN>
+0E41 0E17 ; [.2D89.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAHAN>
+0E42 0E17 ; [.2D89.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAHAN>
+0E43 0E17 ; [.2D89.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAHAN>
+0E44 0E17 ; [.2D89.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAHAN>
+0E18 ; [.2D8A.0020.0002] # THAI CHARACTER THO THONG
+0E40 0E18 ; [.2D8A.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THONG>
+0E41 0E18 ; [.2D8A.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THONG>
+0E42 0E18 ; [.2D8A.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THONG>
+0E43 0E18 ; [.2D8A.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THONG>
+0E44 0E18 ; [.2D8A.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THONG>
+0E19 ; [.2D8B.0020.0002] # THAI CHARACTER NO NU
+0E40 0E19 ; [.2D8B.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NU>
+0E41 0E19 ; [.2D8B.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NU>
+0E42 0E19 ; [.2D8B.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NU>
+0E43 0E19 ; [.2D8B.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NU>
+0E44 0E19 ; [.2D8B.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NU>
+0E1A ; [.2D8C.0020.0002] # THAI CHARACTER BO BAIMAI
+0E40 0E1A ; [.2D8C.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER BO BAIMAI>
+0E41 0E1A ; [.2D8C.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER BO BAIMAI>
+0E42 0E1A ; [.2D8C.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER BO BAIMAI>
+0E43 0E1A ; [.2D8C.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER BO BAIMAI>
+0E44 0E1A ; [.2D8C.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER BO BAIMAI>
+0E1B ; [.2D8D.0020.0002] # THAI CHARACTER PO PLA
+0E40 0E1B ; [.2D8D.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PO PLA>
+0E41 0E1B ; [.2D8D.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PO PLA>
+0E42 0E1B ; [.2D8D.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PO PLA>
+0E43 0E1B ; [.2D8D.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PO PLA>
+0E44 0E1B ; [.2D8D.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PO PLA>
+0E1C ; [.2D8E.0020.0002] # THAI CHARACTER PHO PHUNG
+0E40 0E1C ; [.2D8E.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHUNG>
+0E41 0E1C ; [.2D8E.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHUNG>
+0E42 0E1C ; [.2D8E.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHUNG>
+0E43 0E1C ; [.2D8E.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHUNG>
+0E44 0E1C ; [.2D8E.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHUNG>
+0E1D ; [.2D8F.0020.0002] # THAI CHARACTER FO FA
+0E40 0E1D ; [.2D8F.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FA>
+0E41 0E1D ; [.2D8F.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FA>
+0E42 0E1D ; [.2D8F.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FA>
+0E43 0E1D ; [.2D8F.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FA>
+0E44 0E1D ; [.2D8F.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FA>
+0E1E ; [.2D90.0020.0002] # THAI CHARACTER PHO PHAN
+0E40 0E1E ; [.2D90.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHAN>
+0E41 0E1E ; [.2D90.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHAN>
+0E42 0E1E ; [.2D90.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHAN>
+0E43 0E1E ; [.2D90.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHAN>
+0E44 0E1E ; [.2D90.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHAN>
+0E1F ; [.2D91.0020.0002] # THAI CHARACTER FO FAN
+0E40 0E1F ; [.2D91.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FAN>
+0E41 0E1F ; [.2D91.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FAN>
+0E42 0E1F ; [.2D91.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FAN>
+0E43 0E1F ; [.2D91.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FAN>
+0E44 0E1F ; [.2D91.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FAN>
+0E20 ; [.2D92.0020.0002] # THAI CHARACTER PHO SAMPHAO
+0E40 0E20 ; [.2D92.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO SAMPHAO>
+0E41 0E20 ; [.2D92.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO SAMPHAO>
+0E42 0E20 ; [.2D92.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO SAMPHAO>
+0E43 0E20 ; [.2D92.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO SAMPHAO>
+0E44 0E20 ; [.2D92.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO SAMPHAO>
+0E21 ; [.2D93.0020.0002] # THAI CHARACTER MO MA
+0E40 0E21 ; [.2D93.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER MO MA>
+0E41 0E21 ; [.2D93.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER MO MA>
+0E42 0E21 ; [.2D93.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER MO MA>
+0E43 0E21 ; [.2D93.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER MO MA>
+0E44 0E21 ; [.2D93.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER MO MA>
+0E22 ; [.2D94.0020.0002] # THAI CHARACTER YO YAK
+0E40 0E22 ; [.2D94.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YAK>
+0E41 0E22 ; [.2D94.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YAK>
+0E42 0E22 ; [.2D94.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YAK>
+0E43 0E22 ; [.2D94.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YAK>
+0E44 0E22 ; [.2D94.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YAK>
+0E23 ; [.2D95.0020.0002] # THAI CHARACTER RO RUA
+0E40 0E23 ; [.2D95.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RO RUA>
+0E41 0E23 ; [.2D95.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RO RUA>
+0E42 0E23 ; [.2D95.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RO RUA>
+0E43 0E23 ; [.2D95.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RO RUA>
+0E44 0E23 ; [.2D95.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RO RUA>
+0E24 ; [.2D96.0020.0002] # THAI CHARACTER RU
+0E40 0E24 ; [.2D96.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RU>
+0E41 0E24 ; [.2D96.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RU>
+0E42 0E24 ; [.2D96.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RU>
+0E43 0E24 ; [.2D96.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RU>
+0E44 0E24 ; [.2D96.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RU>
+0E25 ; [.2D97.0020.0002] # THAI CHARACTER LO LING
+0E40 0E25 ; [.2D97.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO LING>
+0E41 0E25 ; [.2D97.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO LING>
+0E42 0E25 ; [.2D97.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO LING>
+0E43 0E25 ; [.2D97.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO LING>
+0E44 0E25 ; [.2D97.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO LING>
+0E26 ; [.2D98.0020.0002] # THAI CHARACTER LU
+0E40 0E26 ; [.2D98.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LU>
+0E41 0E26 ; [.2D98.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LU>
+0E42 0E26 ; [.2D98.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LU>
+0E43 0E26 ; [.2D98.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LU>
+0E44 0E26 ; [.2D98.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LU>
+0E27 ; [.2D99.0020.0002] # THAI CHARACTER WO WAEN
+0E40 0E27 ; [.2D99.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER WO WAEN>
+0E41 0E27 ; [.2D99.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER WO WAEN>
+0E42 0E27 ; [.2D99.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER WO WAEN>
+0E43 0E27 ; [.2D99.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER WO WAEN>
+0E44 0E27 ; [.2D99.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER WO WAEN>
+0E28 ; [.2D9A.0020.0002] # THAI CHARACTER SO SALA
+0E40 0E28 ; [.2D9A.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SALA>
+0E41 0E28 ; [.2D9A.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SALA>
+0E42 0E28 ; [.2D9A.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SALA>
+0E43 0E28 ; [.2D9A.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SALA>
+0E44 0E28 ; [.2D9A.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SALA>
+0E29 ; [.2D9B.0020.0002] # THAI CHARACTER SO RUSI
+0E40 0E29 ; [.2D9B.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO RUSI>
+0E41 0E29 ; [.2D9B.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO RUSI>
+0E42 0E29 ; [.2D9B.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO RUSI>
+0E43 0E29 ; [.2D9B.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO RUSI>
+0E44 0E29 ; [.2D9B.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO RUSI>
+0E2A ; [.2D9C.0020.0002] # THAI CHARACTER SO SUA
+0E40 0E2A ; [.2D9C.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SUA>
+0E41 0E2A ; [.2D9C.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SUA>
+0E42 0E2A ; [.2D9C.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SUA>
+0E43 0E2A ; [.2D9C.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SUA>
+0E44 0E2A ; [.2D9C.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SUA>
+0E2B ; [.2D9D.0020.0002] # THAI CHARACTER HO HIP
+0E40 0E2B ; [.2D9D.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO HIP>
+0E41 0E2B ; [.2D9D.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO HIP>
+0E42 0E2B ; [.2D9D.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO HIP>
+0E43 0E2B ; [.2D9D.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO HIP>
+0E44 0E2B ; [.2D9D.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO HIP>
+0E2C ; [.2D9E.0020.0002] # THAI CHARACTER LO CHULA
+0E40 0E2C ; [.2D9E.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO CHULA>
+0E41 0E2C ; [.2D9E.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO CHULA>
+0E42 0E2C ; [.2D9E.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO CHULA>
+0E43 0E2C ; [.2D9E.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO CHULA>
+0E44 0E2C ; [.2D9E.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO CHULA>
+0E2D ; [.2D9F.0020.0002] # THAI CHARACTER O ANG
+0E40 0E2D ; [.2D9F.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER O ANG>
+0E41 0E2D ; [.2D9F.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER O ANG>
+0E42 0E2D ; [.2D9F.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER O ANG>
+0E43 0E2D ; [.2D9F.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER O ANG>
+0E44 0E2D ; [.2D9F.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER O ANG>
+0E2E ; [.2DA0.0020.0002] # THAI CHARACTER HO NOKHUK
+0E40 0E2E ; [.2DA0.0020.0002][.2DAD.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO NOKHUK>
+0E41 0E2E ; [.2DA0.0020.0002][.2DAE.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO NOKHUK>
+0E42 0E2E ; [.2DA0.0020.0002][.2DAF.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO NOKHUK>
+0E43 0E2E ; [.2DA0.0020.0002][.2DB0.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO NOKHUK>
+0E44 0E2E ; [.2DA0.0020.0002][.2DB1.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO NOKHUK>
+0E2F ; [.2DA1.0020.0002] # THAI CHARACTER PAIYANNOI
+0E30 ; [.2DA2.0020.0002] # THAI CHARACTER SARA A
+0E31 ; [.2DA3.0020.0002] # THAI CHARACTER MAI HAN-AKAT
+0E32 ; [.2DA4.0020.0002] # THAI CHARACTER SARA AA
+0E33 ; [.2DA5.0020.0002] # THAI CHARACTER SARA AM
+0E4D 0E32 ; [.2DA5.0020.0002] # THAI CHARACTER SARA AM
+0E34 ; [.2DA6.0020.0002] # THAI CHARACTER SARA I
+0E35 ; [.2DA7.0020.0002] # THAI CHARACTER SARA II
+0E36 ; [.2DA8.0020.0002] # THAI CHARACTER SARA UE
+0E37 ; [.2DA9.0020.0002] # THAI CHARACTER SARA UEE
+0E38 ; [.2DAA.0020.0002] # THAI CHARACTER SARA U
+0E39 ; [.2DAB.0020.0002] # THAI CHARACTER SARA UU
+0E3A ; [.2DAC.0020.0002] # THAI CHARACTER PHINTHU
+0E40 ; [.2DAD.0020.0002] # THAI CHARACTER SARA E
+0E41 ; [.2DAE.0020.0002] # THAI CHARACTER SARA AE
+0E42 ; [.2DAF.0020.0002] # THAI CHARACTER SARA O
+0E43 ; [.2DB0.0020.0002] # THAI CHARACTER SARA AI MAIMUAN
+0E44 ; [.2DB1.0020.0002] # THAI CHARACTER SARA AI MAIMALAI
+0E45 ; [.2DB2.0020.0002] # THAI CHARACTER LAKKHANGYAO
+0EDE ; [.2DB3.0020.0002] # LAO LETTER KHMU GO
+0EC0 0EDE ; [.2DB3.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU GO>
+0EC1 0EDE ; [.2DB3.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU GO>
+0EC2 0EDE ; [.2DB3.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU GO>
+0EC3 0EDE ; [.2DB3.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU GO>
+0EC4 0EDE ; [.2DB3.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU GO>
+0E81 ; [.2DB4.0020.0002] # LAO LETTER KO
+0EC0 0E81 ; [.2DB4.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KO>
+0EC1 0E81 ; [.2DB4.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KO>
+0EC2 0E81 ; [.2DB4.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KO>
+0EC3 0E81 ; [.2DB4.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KO>
+0EC4 0E81 ; [.2DB4.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KO>
+0E82 ; [.2DB5.0020.0002] # LAO LETTER KHO SUNG
+0EC0 0E82 ; [.2DB5.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO SUNG>
+0EC1 0E82 ; [.2DB5.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO SUNG>
+0EC2 0E82 ; [.2DB5.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO SUNG>
+0EC3 0E82 ; [.2DB5.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO SUNG>
+0EC4 0E82 ; [.2DB5.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO SUNG>
+0E84 ; [.2DB6.0020.0002] # LAO LETTER KHO TAM
+0EC0 0E84 ; [.2DB6.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO TAM>
+0EC1 0E84 ; [.2DB6.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO TAM>
+0EC2 0E84 ; [.2DB6.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO TAM>
+0EC3 0E84 ; [.2DB6.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO TAM>
+0EC4 0E84 ; [.2DB6.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO TAM>
+0E87 ; [.2DB7.0020.0002] # LAO LETTER NGO
+0EC0 0E87 ; [.2DB7.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NGO>
+0EC1 0E87 ; [.2DB7.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NGO>
+0EC2 0E87 ; [.2DB7.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NGO>
+0EC3 0E87 ; [.2DB7.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NGO>
+0EC4 0E87 ; [.2DB7.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NGO>
+0E88 ; [.2DB8.0020.0002] # LAO LETTER CO
+0EC0 0E88 ; [.2DB8.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER CO>
+0EC1 0E88 ; [.2DB8.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER CO>
+0EC2 0E88 ; [.2DB8.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER CO>
+0EC3 0E88 ; [.2DB8.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER CO>
+0EC4 0E88 ; [.2DB8.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER CO>
+0EAA ; [.2DB9.0020.0002] # LAO LETTER SO SUNG
+0EC0 0EAA ; [.2DB9.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO SUNG>
+0EC1 0EAA ; [.2DB9.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO SUNG>
+0EC2 0EAA ; [.2DB9.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO SUNG>
+0EC3 0EAA ; [.2DB9.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO SUNG>
+0EC4 0EAA ; [.2DB9.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO SUNG>
+0E8A ; [.2DBA.0020.0002] # LAO LETTER SO TAM
+0EC0 0E8A ; [.2DBA.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO TAM>
+0EC1 0E8A ; [.2DBA.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO TAM>
+0EC2 0E8A ; [.2DBA.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO TAM>
+0EC3 0E8A ; [.2DBA.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO TAM>
+0EC4 0E8A ; [.2DBA.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO TAM>
+0EDF ; [.2DBB.0020.0002] # LAO LETTER KHMU NYO
+0EC0 0EDF ; [.2DBB.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU NYO>
+0EC1 0EDF ; [.2DBB.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU NYO>
+0EC2 0EDF ; [.2DBB.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU NYO>
+0EC3 0EDF ; [.2DBB.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU NYO>
+0EC4 0EDF ; [.2DBB.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU NYO>
+0E8D ; [.2DBC.0020.0002] # LAO LETTER NYO
+0EC0 0E8D ; [.2DBC.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NYO>
+0EC1 0E8D ; [.2DBC.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NYO>
+0EC2 0E8D ; [.2DBC.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NYO>
+0EC3 0E8D ; [.2DBC.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NYO>
+0EC4 0E8D ; [.2DBC.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NYO>
+0E94 ; [.2DBD.0020.0002] # LAO LETTER DO
+0EC0 0E94 ; [.2DBD.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER DO>
+0EC1 0E94 ; [.2DBD.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER DO>
+0EC2 0E94 ; [.2DBD.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER DO>
+0EC3 0E94 ; [.2DBD.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER DO>
+0EC4 0E94 ; [.2DBD.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER DO>
+0E95 ; [.2DBE.0020.0002] # LAO LETTER TO
+0EC0 0E95 ; [.2DBE.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER TO>
+0EC1 0E95 ; [.2DBE.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER TO>
+0EC2 0E95 ; [.2DBE.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER TO>
+0EC3 0E95 ; [.2DBE.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER TO>
+0EC4 0E95 ; [.2DBE.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER TO>
+0E96 ; [.2DBF.0020.0002] # LAO LETTER THO SUNG
+0EC0 0E96 ; [.2DBF.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO SUNG>
+0EC1 0E96 ; [.2DBF.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO SUNG>
+0EC2 0E96 ; [.2DBF.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO SUNG>
+0EC3 0E96 ; [.2DBF.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO SUNG>
+0EC4 0E96 ; [.2DBF.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO SUNG>
+0E97 ; [.2DC0.0020.0002] # LAO LETTER THO TAM
+0EC0 0E97 ; [.2DC0.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO TAM>
+0EC1 0E97 ; [.2DC0.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO TAM>
+0EC2 0E97 ; [.2DC0.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO TAM>
+0EC3 0E97 ; [.2DC0.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO TAM>
+0EC4 0E97 ; [.2DC0.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO TAM>
+0E99 ; [.2DC1.0020.0002] # LAO LETTER NO
+0EC0 0E99 ; [.2DC1.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NO>
+0EC1 0E99 ; [.2DC1.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NO>
+0EC2 0E99 ; [.2DC1.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NO>
+0EC3 0E99 ; [.2DC1.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NO>
+0EC4 0E99 ; [.2DC1.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NO>
+0E9A ; [.2DC2.0020.0002] # LAO LETTER BO
+0EC0 0E9A ; [.2DC2.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER BO>
+0EC1 0E9A ; [.2DC2.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER BO>
+0EC2 0E9A ; [.2DC2.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER BO>
+0EC3 0E9A ; [.2DC2.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER BO>
+0EC4 0E9A ; [.2DC2.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER BO>
+0E9B ; [.2DC3.0020.0002] # LAO LETTER PO
+0EC0 0E9B ; [.2DC3.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PO>
+0EC1 0E9B ; [.2DC3.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PO>
+0EC2 0E9B ; [.2DC3.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PO>
+0EC3 0E9B ; [.2DC3.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PO>
+0EC4 0E9B ; [.2DC3.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PO>
+0E9C ; [.2DC4.0020.0002] # LAO LETTER PHO SUNG
+0EC0 0E9C ; [.2DC4.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO SUNG>
+0EC1 0E9C ; [.2DC4.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO SUNG>
+0EC2 0E9C ; [.2DC4.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO SUNG>
+0EC3 0E9C ; [.2DC4.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO SUNG>
+0EC4 0E9C ; [.2DC4.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO SUNG>
+0E9D ; [.2DC5.0020.0002] # LAO LETTER FO TAM
+0EC0 0E9D ; [.2DC5.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO TAM>
+0EC1 0E9D ; [.2DC5.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO TAM>
+0EC2 0E9D ; [.2DC5.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO TAM>
+0EC3 0E9D ; [.2DC5.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO TAM>
+0EC4 0E9D ; [.2DC5.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO TAM>
+0E9E ; [.2DC6.0020.0002] # LAO LETTER PHO TAM
+0EC0 0E9E ; [.2DC6.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO TAM>
+0EC1 0E9E ; [.2DC6.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO TAM>
+0EC2 0E9E ; [.2DC6.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO TAM>
+0EC3 0E9E ; [.2DC6.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO TAM>
+0EC4 0E9E ; [.2DC6.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO TAM>
+0E9F ; [.2DC7.0020.0002] # LAO LETTER FO SUNG
+0EC0 0E9F ; [.2DC7.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO SUNG>
+0EC1 0E9F ; [.2DC7.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO SUNG>
+0EC2 0E9F ; [.2DC7.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO SUNG>
+0EC3 0E9F ; [.2DC7.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO SUNG>
+0EC4 0E9F ; [.2DC7.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO SUNG>
+0EA1 ; [.2DC8.0020.0002] # LAO LETTER MO
+0EC0 0EA1 ; [.2DC8.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER MO>
+0EC1 0EA1 ; [.2DC8.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER MO>
+0EC2 0EA1 ; [.2DC8.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER MO>
+0EC3 0EA1 ; [.2DC8.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER MO>
+0EC4 0EA1 ; [.2DC8.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER MO>
+0EA2 ; [.2DC9.0020.0002] # LAO LETTER YO
+0EC0 0EA2 ; [.2DC9.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER YO>
+0EC1 0EA2 ; [.2DC9.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER YO>
+0EC2 0EA2 ; [.2DC9.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER YO>
+0EC3 0EA2 ; [.2DC9.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER YO>
+0EC4 0EA2 ; [.2DC9.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER YO>
+0EA3 ; [.2DCA.0020.0002] # LAO LETTER LO LING
+0EC0 0EA3 ; [.2DCA.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LING>
+0EC1 0EA3 ; [.2DCA.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LING>
+0EC2 0EA3 ; [.2DCA.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LING>
+0EC3 0EA3 ; [.2DCA.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LING>
+0EC4 0EA3 ; [.2DCA.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LING>
+0EA5 ; [.2DCB.0020.0002] # LAO LETTER LO LOOT
+0EC0 0EA5 ; [.2DCB.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LOOT>
+0EC1 0EA5 ; [.2DCB.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LOOT>
+0EC2 0EA5 ; [.2DCB.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LOOT>
+0EC3 0EA5 ; [.2DCB.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LOOT>
+0EC4 0EA5 ; [.2DCB.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LOOT>
+0EA7 ; [.2DCC.0020.0002] # LAO LETTER WO
+0EC0 0EA7 ; [.2DCC.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER WO>
+0EC1 0EA7 ; [.2DCC.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER WO>
+0EC2 0EA7 ; [.2DCC.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER WO>
+0EC3 0EA7 ; [.2DCC.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER WO>
+0EC4 0EA7 ; [.2DCC.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER WO>
+0EAB ; [.2DCD.0020.0002] # LAO LETTER HO SUNG
+0EDC ; [.2DCD.0020.0004][.2DC1.0020.0004] # LAO HO NO
+0EC0 0EDC ; [.2DCD.0020.0004][.2DC1.0020.0004][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO HO NO>
+0EC1 0EDC ; [.2DCD.0020.0004][.2DC1.0020.0004][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO HO NO>
+0EC2 0EDC ; [.2DCD.0020.0004][.2DC1.0020.0004][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO HO NO>
+0EC3 0EDC ; [.2DCD.0020.0004][.2DC1.0020.0004][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO HO NO>
+0EC4 0EDC ; [.2DCD.0020.0004][.2DC1.0020.0004][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO HO NO>
+0EDD ; [.2DCD.0020.0004][.2DC8.0020.0004] # LAO HO MO
+0EC0 0EDD ; [.2DCD.0020.0004][.2DC8.0020.0004][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO HO MO>
+0EC1 0EDD ; [.2DCD.0020.0004][.2DC8.0020.0004][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO HO MO>
+0EC2 0EDD ; [.2DCD.0020.0004][.2DC8.0020.0004][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO HO MO>
+0EC3 0EDD ; [.2DCD.0020.0004][.2DC8.0020.0004][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO HO MO>
+0EC4 0EDD ; [.2DCD.0020.0004][.2DC8.0020.0004][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO HO MO>
+0EC0 0EAB ; [.2DCD.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO SUNG>
+0EC1 0EAB ; [.2DCD.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO SUNG>
+0EC2 0EAB ; [.2DCD.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO SUNG>
+0EC3 0EAB ; [.2DCD.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO SUNG>
+0EC4 0EAB ; [.2DCD.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO SUNG>
+0EAD ; [.2DCE.0020.0002] # LAO LETTER O
+0EC0 0EAD ; [.2DCE.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER O>
+0EC1 0EAD ; [.2DCE.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER O>
+0EC2 0EAD ; [.2DCE.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER O>
+0EC3 0EAD ; [.2DCE.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER O>
+0EC4 0EAD ; [.2DCE.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER O>
+0EAE ; [.2DCF.0020.0002] # LAO LETTER HO TAM
+0EC0 0EAE ; [.2DCF.0020.0002][.2DDE.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO TAM>
+0EC1 0EAE ; [.2DCF.0020.0002][.2DDF.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO TAM>
+0EC2 0EAE ; [.2DCF.0020.0002][.2DE0.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO TAM>
+0EC3 0EAE ; [.2DCF.0020.0002][.2DE1.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO TAM>
+0EC4 0EAE ; [.2DCF.0020.0002][.2DE2.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO TAM>
+0EAF ; [.2DD0.0020.0002] # LAO ELLIPSIS
+0EB0 ; [.2DD1.0020.0002] # LAO VOWEL SIGN A
+0EB1 ; [.2DD2.0020.0002] # LAO VOWEL SIGN MAI KAN
+0EB2 ; [.2DD3.0020.0002] # LAO VOWEL SIGN AA
+0EB3 ; [.2DD4.0020.0002] # LAO VOWEL SIGN AM
+0ECD 0EB2 ; [.2DD4.0020.0002] # LAO VOWEL SIGN AM
+0EB4 ; [.2DD5.0020.0002] # LAO VOWEL SIGN I
+0EB5 ; [.2DD6.0020.0002] # LAO VOWEL SIGN II
+0EB6 ; [.2DD7.0020.0002] # LAO VOWEL SIGN Y
+0EB7 ; [.2DD8.0020.0002] # LAO VOWEL SIGN YY
+0EB8 ; [.2DD9.0020.0002] # LAO VOWEL SIGN U
+0EB9 ; [.2DDA.0020.0002] # LAO VOWEL SIGN UU
+0EBB ; [.2DDB.0020.0002] # LAO VOWEL SIGN MAI KON
+0EBC ; [.2DDC.0020.0002] # LAO SEMIVOWEL SIGN LO
+0EBD ; [.2DDD.0020.0002] # LAO SEMIVOWEL SIGN NYO
+0EC0 ; [.2DDE.0020.0002] # LAO VOWEL SIGN E
+0EC1 ; [.2DDF.0020.0002] # LAO VOWEL SIGN EI
+0EC2 ; [.2DE0.0020.0002] # LAO VOWEL SIGN O
+0EC3 ; [.2DE1.0020.0002] # LAO VOWEL SIGN AY
+0EC4 ; [.2DE2.0020.0002] # LAO VOWEL SIGN AI
+AA80 ; [.2DE3.0020.0002] # TAI VIET LETTER LOW KO
+AAB5 AA80 ; [.2DE3.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KO>
+AAB6 AA80 ; [.2DE3.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KO>
+AAB9 AA80 ; [.2DE3.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KO>
+AABB AA80 ; [.2DE3.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KO>
+AABC AA80 ; [.2DE3.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KO>
+AA81 ; [.2DE4.0020.0002] # TAI VIET LETTER HIGH KO
+AAB5 AA81 ; [.2DE4.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KO>
+AAB6 AA81 ; [.2DE4.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KO>
+AAB9 AA81 ; [.2DE4.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KO>
+AABB AA81 ; [.2DE4.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KO>
+AABC AA81 ; [.2DE4.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KO>
+AA82 ; [.2DE5.0020.0002] # TAI VIET LETTER LOW KHO
+AAB5 AA82 ; [.2DE5.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHO>
+AAB6 AA82 ; [.2DE5.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHO>
+AAB9 AA82 ; [.2DE5.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHO>
+AABB AA82 ; [.2DE5.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHO>
+AABC AA82 ; [.2DE5.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHO>
+AA83 ; [.2DE6.0020.0002] # TAI VIET LETTER HIGH KHO
+AAB5 AA83 ; [.2DE6.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHO>
+AAB6 AA83 ; [.2DE6.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHO>
+AAB9 AA83 ; [.2DE6.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHO>
+AABB AA83 ; [.2DE6.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHO>
+AABC AA83 ; [.2DE6.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHO>
+AA84 ; [.2DE7.0020.0002] # TAI VIET LETTER LOW KHHO
+AAB5 AA84 ; [.2DE7.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHHO>
+AAB6 AA84 ; [.2DE7.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHHO>
+AAB9 AA84 ; [.2DE7.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHHO>
+AABB AA84 ; [.2DE7.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHHO>
+AABC AA84 ; [.2DE7.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHHO>
+AA85 ; [.2DE8.0020.0002] # TAI VIET LETTER HIGH KHHO
+AAB5 AA85 ; [.2DE8.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHHO>
+AAB6 AA85 ; [.2DE8.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHHO>
+AAB9 AA85 ; [.2DE8.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHHO>
+AABB AA85 ; [.2DE8.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHHO>
+AABC AA85 ; [.2DE8.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHHO>
+AA86 ; [.2DE9.0020.0002] # TAI VIET LETTER LOW GO
+AAB5 AA86 ; [.2DE9.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW GO>
+AAB6 AA86 ; [.2DE9.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW GO>
+AAB9 AA86 ; [.2DE9.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW GO>
+AABB AA86 ; [.2DE9.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW GO>
+AABC AA86 ; [.2DE9.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW GO>
+AA87 ; [.2DEA.0020.0002] # TAI VIET LETTER HIGH GO
+AAB5 AA87 ; [.2DEA.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH GO>
+AAB6 AA87 ; [.2DEA.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH GO>
+AAB9 AA87 ; [.2DEA.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH GO>
+AABB AA87 ; [.2DEA.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH GO>
+AABC AA87 ; [.2DEA.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH GO>
+AA88 ; [.2DEB.0020.0002] # TAI VIET LETTER LOW NGO
+AAB5 AA88 ; [.2DEB.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NGO>
+AAB6 AA88 ; [.2DEB.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NGO>
+AAB9 AA88 ; [.2DEB.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NGO>
+AABB AA88 ; [.2DEB.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NGO>
+AABC AA88 ; [.2DEB.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NGO>
+AA89 ; [.2DEC.0020.0002] # TAI VIET LETTER HIGH NGO
+AAB5 AA89 ; [.2DEC.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NGO>
+AAB6 AA89 ; [.2DEC.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NGO>
+AAB9 AA89 ; [.2DEC.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NGO>
+AABB AA89 ; [.2DEC.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NGO>
+AABC AA89 ; [.2DEC.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NGO>
+AA8A ; [.2DED.0020.0002] # TAI VIET LETTER LOW CO
+AAB5 AA8A ; [.2DED.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CO>
+AAB6 AA8A ; [.2DED.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CO>
+AAB9 AA8A ; [.2DED.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CO>
+AABB AA8A ; [.2DED.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CO>
+AABC AA8A ; [.2DED.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CO>
+AA8B ; [.2DEE.0020.0002] # TAI VIET LETTER HIGH CO
+AAB5 AA8B ; [.2DEE.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CO>
+AAB6 AA8B ; [.2DEE.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CO>
+AAB9 AA8B ; [.2DEE.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CO>
+AABB AA8B ; [.2DEE.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CO>
+AABC AA8B ; [.2DEE.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CO>
+AA8C ; [.2DEF.0020.0002] # TAI VIET LETTER LOW CHO
+AAB5 AA8C ; [.2DEF.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CHO>
+AAB6 AA8C ; [.2DEF.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CHO>
+AAB9 AA8C ; [.2DEF.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CHO>
+AABB AA8C ; [.2DEF.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CHO>
+AABC AA8C ; [.2DEF.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CHO>
+AA8D ; [.2DF0.0020.0002] # TAI VIET LETTER HIGH CHO
+AAB5 AA8D ; [.2DF0.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CHO>
+AAB6 AA8D ; [.2DF0.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CHO>
+AAB9 AA8D ; [.2DF0.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CHO>
+AABB AA8D ; [.2DF0.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CHO>
+AABC AA8D ; [.2DF0.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CHO>
+AA8E ; [.2DF1.0020.0002] # TAI VIET LETTER LOW SO
+AAB5 AA8E ; [.2DF1.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW SO>
+AAB6 AA8E ; [.2DF1.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW SO>
+AAB9 AA8E ; [.2DF1.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW SO>
+AABB AA8E ; [.2DF1.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW SO>
+AABC AA8E ; [.2DF1.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW SO>
+AA8F ; [.2DF2.0020.0002] # TAI VIET LETTER HIGH SO
+AAB5 AA8F ; [.2DF2.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH SO>
+AAB6 AA8F ; [.2DF2.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH SO>
+AAB9 AA8F ; [.2DF2.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH SO>
+AABB AA8F ; [.2DF2.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH SO>
+AABC AA8F ; [.2DF2.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH SO>
+AA90 ; [.2DF3.0020.0002] # TAI VIET LETTER LOW NYO
+AAB5 AA90 ; [.2DF3.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NYO>
+AAB6 AA90 ; [.2DF3.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NYO>
+AAB9 AA90 ; [.2DF3.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NYO>
+AABB AA90 ; [.2DF3.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NYO>
+AABC AA90 ; [.2DF3.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NYO>
+AA91 ; [.2DF4.0020.0002] # TAI VIET LETTER HIGH NYO
+AAB5 AA91 ; [.2DF4.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NYO>
+AAB6 AA91 ; [.2DF4.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NYO>
+AAB9 AA91 ; [.2DF4.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NYO>
+AABB AA91 ; [.2DF4.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NYO>
+AABC AA91 ; [.2DF4.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NYO>
+AA92 ; [.2DF5.0020.0002] # TAI VIET LETTER LOW DO
+AAB5 AA92 ; [.2DF5.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW DO>
+AAB6 AA92 ; [.2DF5.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW DO>
+AAB9 AA92 ; [.2DF5.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW DO>
+AABB AA92 ; [.2DF5.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW DO>
+AABC AA92 ; [.2DF5.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW DO>
+AA93 ; [.2DF6.0020.0002] # TAI VIET LETTER HIGH DO
+AAB5 AA93 ; [.2DF6.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH DO>
+AAB6 AA93 ; [.2DF6.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH DO>
+AAB9 AA93 ; [.2DF6.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH DO>
+AABB AA93 ; [.2DF6.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH DO>
+AABC AA93 ; [.2DF6.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH DO>
+AA94 ; [.2DF7.0020.0002] # TAI VIET LETTER LOW TO
+AAB5 AA94 ; [.2DF7.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW TO>
+AAB6 AA94 ; [.2DF7.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW TO>
+AAB9 AA94 ; [.2DF7.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW TO>
+AABB AA94 ; [.2DF7.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW TO>
+AABC AA94 ; [.2DF7.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW TO>
+AA95 ; [.2DF8.0020.0002] # TAI VIET LETTER HIGH TO
+AAB5 AA95 ; [.2DF8.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH TO>
+AAB6 AA95 ; [.2DF8.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH TO>
+AAB9 AA95 ; [.2DF8.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH TO>
+AABB AA95 ; [.2DF8.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH TO>
+AABC AA95 ; [.2DF8.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH TO>
+AA96 ; [.2DF9.0020.0002] # TAI VIET LETTER LOW THO
+AAB5 AA96 ; [.2DF9.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW THO>
+AAB6 AA96 ; [.2DF9.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW THO>
+AAB9 AA96 ; [.2DF9.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW THO>
+AABB AA96 ; [.2DF9.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW THO>
+AABC AA96 ; [.2DF9.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW THO>
+AA97 ; [.2DFA.0020.0002] # TAI VIET LETTER HIGH THO
+AAB5 AA97 ; [.2DFA.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH THO>
+AAB6 AA97 ; [.2DFA.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH THO>
+AAB9 AA97 ; [.2DFA.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH THO>
+AABB AA97 ; [.2DFA.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH THO>
+AABC AA97 ; [.2DFA.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH THO>
+AA98 ; [.2DFB.0020.0002] # TAI VIET LETTER LOW NO
+AAB5 AA98 ; [.2DFB.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NO>
+AAB6 AA98 ; [.2DFB.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NO>
+AAB9 AA98 ; [.2DFB.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NO>
+AABB AA98 ; [.2DFB.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NO>
+AABC AA98 ; [.2DFB.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NO>
+AA99 ; [.2DFC.0020.0002] # TAI VIET LETTER HIGH NO
+AAB5 AA99 ; [.2DFC.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NO>
+AAB6 AA99 ; [.2DFC.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NO>
+AAB9 AA99 ; [.2DFC.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NO>
+AABB AA99 ; [.2DFC.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NO>
+AABC AA99 ; [.2DFC.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NO>
+AA9A ; [.2DFD.0020.0002] # TAI VIET LETTER LOW BO
+AAB5 AA9A ; [.2DFD.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW BO>
+AAB6 AA9A ; [.2DFD.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW BO>
+AAB9 AA9A ; [.2DFD.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW BO>
+AABB AA9A ; [.2DFD.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW BO>
+AABC AA9A ; [.2DFD.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW BO>
+AA9B ; [.2DFE.0020.0002] # TAI VIET LETTER HIGH BO
+AAB5 AA9B ; [.2DFE.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH BO>
+AAB6 AA9B ; [.2DFE.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH BO>
+AAB9 AA9B ; [.2DFE.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH BO>
+AABB AA9B ; [.2DFE.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH BO>
+AABC AA9B ; [.2DFE.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH BO>
+AA9C ; [.2DFF.0020.0002] # TAI VIET LETTER LOW PO
+AAB5 AA9C ; [.2DFF.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PO>
+AAB6 AA9C ; [.2DFF.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PO>
+AAB9 AA9C ; [.2DFF.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PO>
+AABB AA9C ; [.2DFF.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PO>
+AABC AA9C ; [.2DFF.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PO>
+AA9D ; [.2E00.0020.0002] # TAI VIET LETTER HIGH PO
+AAB5 AA9D ; [.2E00.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PO>
+AAB6 AA9D ; [.2E00.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PO>
+AAB9 AA9D ; [.2E00.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PO>
+AABB AA9D ; [.2E00.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PO>
+AABC AA9D ; [.2E00.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PO>
+AA9E ; [.2E01.0020.0002] # TAI VIET LETTER LOW PHO
+AAB5 AA9E ; [.2E01.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PHO>
+AAB6 AA9E ; [.2E01.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PHO>
+AAB9 AA9E ; [.2E01.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PHO>
+AABB AA9E ; [.2E01.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PHO>
+AABC AA9E ; [.2E01.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PHO>
+AA9F ; [.2E02.0020.0002] # TAI VIET LETTER HIGH PHO
+AAB5 AA9F ; [.2E02.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PHO>
+AAB6 AA9F ; [.2E02.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PHO>
+AAB9 AA9F ; [.2E02.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PHO>
+AABB AA9F ; [.2E02.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PHO>
+AABC AA9F ; [.2E02.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PHO>
+AAA0 ; [.2E03.0020.0002] # TAI VIET LETTER LOW FO
+AAB5 AAA0 ; [.2E03.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW FO>
+AAB6 AAA0 ; [.2E03.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW FO>
+AAB9 AAA0 ; [.2E03.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW FO>
+AABB AAA0 ; [.2E03.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW FO>
+AABC AAA0 ; [.2E03.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW FO>
+AAA1 ; [.2E04.0020.0002] # TAI VIET LETTER HIGH FO
+AAB5 AAA1 ; [.2E04.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH FO>
+AAB6 AAA1 ; [.2E04.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH FO>
+AAB9 AAA1 ; [.2E04.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH FO>
+AABB AAA1 ; [.2E04.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH FO>
+AABC AAA1 ; [.2E04.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH FO>
+AAA2 ; [.2E05.0020.0002] # TAI VIET LETTER LOW MO
+AAB5 AAA2 ; [.2E05.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW MO>
+AAB6 AAA2 ; [.2E05.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW MO>
+AAB9 AAA2 ; [.2E05.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW MO>
+AABB AAA2 ; [.2E05.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW MO>
+AABC AAA2 ; [.2E05.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW MO>
+AAA3 ; [.2E06.0020.0002] # TAI VIET LETTER HIGH MO
+AAB5 AAA3 ; [.2E06.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH MO>
+AAB6 AAA3 ; [.2E06.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH MO>
+AAB9 AAA3 ; [.2E06.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH MO>
+AABB AAA3 ; [.2E06.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH MO>
+AABC AAA3 ; [.2E06.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH MO>
+AAA4 ; [.2E07.0020.0002] # TAI VIET LETTER LOW YO
+AAB5 AAA4 ; [.2E07.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW YO>
+AAB6 AAA4 ; [.2E07.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW YO>
+AAB9 AAA4 ; [.2E07.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW YO>
+AABB AAA4 ; [.2E07.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW YO>
+AABC AAA4 ; [.2E07.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW YO>
+AAA5 ; [.2E08.0020.0002] # TAI VIET LETTER HIGH YO
+AAB5 AAA5 ; [.2E08.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH YO>
+AAB6 AAA5 ; [.2E08.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH YO>
+AAB9 AAA5 ; [.2E08.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH YO>
+AABB AAA5 ; [.2E08.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH YO>
+AABC AAA5 ; [.2E08.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH YO>
+AAA6 ; [.2E09.0020.0002] # TAI VIET LETTER LOW RO
+AAB5 AAA6 ; [.2E09.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW RO>
+AAB6 AAA6 ; [.2E09.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW RO>
+AAB9 AAA6 ; [.2E09.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW RO>
+AABB AAA6 ; [.2E09.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW RO>
+AABC AAA6 ; [.2E09.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW RO>
+AAA7 ; [.2E0A.0020.0002] # TAI VIET LETTER HIGH RO
+AAB5 AAA7 ; [.2E0A.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH RO>
+AAB6 AAA7 ; [.2E0A.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH RO>
+AAB9 AAA7 ; [.2E0A.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH RO>
+AABB AAA7 ; [.2E0A.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH RO>
+AABC AAA7 ; [.2E0A.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH RO>
+AAA8 ; [.2E0B.0020.0002] # TAI VIET LETTER LOW LO
+AAB5 AAA8 ; [.2E0B.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW LO>
+AAB6 AAA8 ; [.2E0B.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW LO>
+AAB9 AAA8 ; [.2E0B.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW LO>
+AABB AAA8 ; [.2E0B.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW LO>
+AABC AAA8 ; [.2E0B.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW LO>
+AAA9 ; [.2E0C.0020.0002] # TAI VIET LETTER HIGH LO
+AAB5 AAA9 ; [.2E0C.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH LO>
+AAB6 AAA9 ; [.2E0C.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH LO>
+AAB9 AAA9 ; [.2E0C.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH LO>
+AABB AAA9 ; [.2E0C.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH LO>
+AABC AAA9 ; [.2E0C.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH LO>
+AAAA ; [.2E0D.0020.0002] # TAI VIET LETTER LOW VO
+AAB5 AAAA ; [.2E0D.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW VO>
+AAB6 AAAA ; [.2E0D.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW VO>
+AAB9 AAAA ; [.2E0D.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW VO>
+AABB AAAA ; [.2E0D.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW VO>
+AABC AAAA ; [.2E0D.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW VO>
+AAAB ; [.2E0E.0020.0002] # TAI VIET LETTER HIGH VO
+AAB5 AAAB ; [.2E0E.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH VO>
+AAB6 AAAB ; [.2E0E.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH VO>
+AAB9 AAAB ; [.2E0E.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH VO>
+AABB AAAB ; [.2E0E.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH VO>
+AABC AAAB ; [.2E0E.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH VO>
+AAAC ; [.2E0F.0020.0002] # TAI VIET LETTER LOW HO
+AAB5 AAAC ; [.2E0F.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW HO>
+AAB6 AAAC ; [.2E0F.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW HO>
+AAB9 AAAC ; [.2E0F.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW HO>
+AABB AAAC ; [.2E0F.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW HO>
+AABC AAAC ; [.2E0F.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW HO>
+AAAD ; [.2E10.0020.0002] # TAI VIET LETTER HIGH HO
+AAB5 AAAD ; [.2E10.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH HO>
+AAB6 AAAD ; [.2E10.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH HO>
+AAB9 AAAD ; [.2E10.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH HO>
+AABB AAAD ; [.2E10.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH HO>
+AABC AAAD ; [.2E10.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH HO>
+AAAE ; [.2E11.0020.0002] # TAI VIET LETTER LOW O
+AAB5 AAAE ; [.2E11.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW O>
+AAB6 AAAE ; [.2E11.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW O>
+AAB9 AAAE ; [.2E11.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW O>
+AABB AAAE ; [.2E11.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW O>
+AABC AAAE ; [.2E11.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW O>
+AAAF ; [.2E12.0020.0002] # TAI VIET LETTER HIGH O
+AAB5 AAAF ; [.2E12.0020.0002][.2E18.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH O>
+AAB6 AAAF ; [.2E12.0020.0002][.2E19.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH O>
+AAB9 AAAF ; [.2E12.0020.0002][.2E1C.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH O>
+AABB AAAF ; [.2E12.0020.0002][.2E1E.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH O>
+AABC AAAF ; [.2E12.0020.0002][.2E1F.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH O>
+AAB0 ; [.2E13.0020.0002] # TAI VIET MAI KANG
+AAB1 ; [.2E14.0020.0002] # TAI VIET VOWEL AA
+AAB2 ; [.2E15.0020.0002] # TAI VIET VOWEL I
+AAB3 ; [.2E16.0020.0002] # TAI VIET VOWEL UE
+AAB4 ; [.2E17.0020.0002] # TAI VIET VOWEL U
+AAB5 ; [.2E18.0020.0002] # TAI VIET VOWEL E
+AAB6 ; [.2E19.0020.0002] # TAI VIET VOWEL O
+AAB7 ; [.2E1A.0020.0002] # TAI VIET MAI KHIT
+AAB8 ; [.2E1B.0020.0002] # TAI VIET VOWEL IA
+AAB9 ; [.2E1C.0020.0002] # TAI VIET VOWEL UEA
+AABA ; [.2E1D.0020.0002] # TAI VIET VOWEL UA
+AABB ; [.2E1E.0020.0002] # TAI VIET VOWEL AUE
+AABC ; [.2E1F.0020.0002] # TAI VIET VOWEL AY
+AABD ; [.2E20.0020.0002] # TAI VIET VOWEL AN
+AABE ; [.2E21.0020.0002] # TAI VIET VOWEL AM
+AAC0 ; [.2E22.0020.0002] # TAI VIET TONE MAI NUENG
+AAC2 ; [.2E23.0020.0002] # TAI VIET TONE MAI SONG
+AADB ; [.2E24.0020.0002] # TAI VIET SYMBOL KON
+AADC ; [.2E25.0020.0002] # TAI VIET SYMBOL NUENG
+0F40 ; [.2E26.0020.0002] # TIBETAN LETTER KA
+0F69 ; [.2E26.0020.0002][.2E67.0020.0002] # TIBETAN LETTER KSSA
+0F90 ; [.2E27.0020.0002] # TIBETAN SUBJOINED LETTER KA
+0FB9 ; [.2E27.0020.0002][.2E67.0020.0002] # TIBETAN SUBJOINED LETTER KSSA
+0F6B ; [.2E28.0020.0002] # TIBETAN LETTER KKA
+0F41 ; [.2E29.0020.0002] # TIBETAN LETTER KHA
+0F91 ; [.2E2A.0020.0002] # TIBETAN SUBJOINED LETTER KHA
+0F42 ; [.2E2B.0020.0002] # TIBETAN LETTER GA
+0F43 ; [.2E2B.0020.0002][.2E6B.0020.0002] # TIBETAN LETTER GHA
+0F92 ; [.2E2C.0020.0002] # TIBETAN SUBJOINED LETTER GA
+0F93 ; [.2E2C.0020.0002][.2E6B.0020.0002] # TIBETAN SUBJOINED LETTER GHA
+0F44 ; [.2E2D.0020.0002] # TIBETAN LETTER NGA
+0F94 ; [.2E2E.0020.0002] # TIBETAN SUBJOINED LETTER NGA
+0F45 ; [.2E2F.0020.0002] # TIBETAN LETTER CA
+0F95 ; [.2E30.0020.0002] # TIBETAN SUBJOINED LETTER CA
+0F46 ; [.2E31.0020.0002] # TIBETAN LETTER CHA
+0F96 ; [.2E32.0020.0002] # TIBETAN SUBJOINED LETTER CHA
+0F47 ; [.2E33.0020.0002] # TIBETAN LETTER JA
+0F97 ; [.2E34.0020.0002] # TIBETAN SUBJOINED LETTER JA
+0F49 ; [.2E35.0020.0002] # TIBETAN LETTER NYA
+0F99 ; [.2E36.0020.0002] # TIBETAN SUBJOINED LETTER NYA
+0F4A ; [.2E37.0020.0002] # TIBETAN LETTER TTA
+0F9A ; [.2E38.0020.0002] # TIBETAN SUBJOINED LETTER TTA
+0F4B ; [.2E39.0020.0002] # TIBETAN LETTER TTHA
+0F9B ; [.2E3A.0020.0002] # TIBETAN SUBJOINED LETTER TTHA
+0F4C ; [.2E3B.0020.0002] # TIBETAN LETTER DDA
+0F4D ; [.2E3B.0020.0002][.2E6B.0020.0002] # TIBETAN LETTER DDHA
+0F9C ; [.2E3C.0020.0002] # TIBETAN SUBJOINED LETTER DDA
+0F9D ; [.2E3C.0020.0002][.2E6B.0020.0002] # TIBETAN SUBJOINED LETTER DDHA
+0F4E ; [.2E3D.0020.0002] # TIBETAN LETTER NNA
+0F9E ; [.2E3E.0020.0002] # TIBETAN SUBJOINED LETTER NNA
+0F4F ; [.2E3F.0020.0002] # TIBETAN LETTER TA
+0F9F ; [.2E40.0020.0002] # TIBETAN SUBJOINED LETTER TA
+0F50 ; [.2E41.0020.0002] # TIBETAN LETTER THA
+0FA0 ; [.2E42.0020.0002] # TIBETAN SUBJOINED LETTER THA
+0F51 ; [.2E43.0020.0002] # TIBETAN LETTER DA
+0F52 ; [.2E43.0020.0002][.2E6B.0020.0002] # TIBETAN LETTER DHA
+0FA1 ; [.2E44.0020.0002] # TIBETAN SUBJOINED LETTER DA
+0FA2 ; [.2E44.0020.0002][.2E6B.0020.0002] # TIBETAN SUBJOINED LETTER DHA
+0F53 ; [.2E45.0020.0002] # TIBETAN LETTER NA
+0FA3 ; [.2E46.0020.0002] # TIBETAN SUBJOINED LETTER NA
+0F54 ; [.2E47.0020.0002] # TIBETAN LETTER PA
+0FA4 ; [.2E48.0020.0002] # TIBETAN SUBJOINED LETTER PA
+0F55 ; [.2E49.0020.0002] # TIBETAN LETTER PHA
+0FA5 ; [.2E4A.0020.0002] # TIBETAN SUBJOINED LETTER PHA
+0F56 ; [.2E4B.0020.0002] # TIBETAN LETTER BA
+0F57 ; [.2E4B.0020.0002][.2E6B.0020.0002] # TIBETAN LETTER BHA
+0FA6 ; [.2E4C.0020.0002] # TIBETAN SUBJOINED LETTER BA
+0FA7 ; [.2E4C.0020.0002][.2E6B.0020.0002] # TIBETAN SUBJOINED LETTER BHA
+0F58 ; [.2E4D.0020.0002] # TIBETAN LETTER MA
+0FA8 ; [.2E4E.0020.0002] # TIBETAN SUBJOINED LETTER MA
+0F59 ; [.2E4F.0020.0002] # TIBETAN LETTER TSA
+0FA9 ; [.2E50.0020.0002] # TIBETAN SUBJOINED LETTER TSA
+0F5A ; [.2E51.0020.0002] # TIBETAN LETTER TSHA
+0FAA ; [.2E52.0020.0002] # TIBETAN SUBJOINED LETTER TSHA
+0F5B ; [.2E53.0020.0002] # TIBETAN LETTER DZA
+0F5C ; [.2E53.0020.0002][.2E6B.0020.0002] # TIBETAN LETTER DZHA
+0FAB ; [.2E54.0020.0002] # TIBETAN SUBJOINED LETTER DZA
+0FAC ; [.2E54.0020.0002][.2E6B.0020.0002] # TIBETAN SUBJOINED LETTER DZHA
+0F5D ; [.2E55.0020.0002] # TIBETAN LETTER WA
+0FAD ; [.2E56.0020.0002] # TIBETAN SUBJOINED LETTER WA
+0FBA ; [.2E56.0020.0004][.0000.0111.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM WA
+0F5E ; [.2E57.0020.0002] # TIBETAN LETTER ZHA
+0FAE ; [.2E58.0020.0002] # TIBETAN SUBJOINED LETTER ZHA
+0F5F ; [.2E59.0020.0002] # TIBETAN LETTER ZA
+0FAF ; [.2E5A.0020.0002] # TIBETAN SUBJOINED LETTER ZA
+0F60 ; [.2E5B.0020.0002] # TIBETAN LETTER -A
+0FB0 ; [.2E5C.0020.0002] # TIBETAN SUBJOINED LETTER -A
+0F61 ; [.2E5D.0020.0002] # TIBETAN LETTER YA
+0FB1 ; [.2E5E.0020.0002] # TIBETAN SUBJOINED LETTER YA
+0FBB ; [.2E5E.0020.0004][.0000.0111.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM YA
+0F62 ; [.2E5F.0020.0002] # TIBETAN LETTER RA
+0F6A ; [.2E5F.0020.0004][.0000.0111.0004] # TIBETAN LETTER FIXED-FORM RA
+0FB2 ; [.2E60.0020.0002] # TIBETAN SUBJOINED LETTER RA
+0FBC ; [.2E60.0020.0004][.0000.0111.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0F6C ; [.2E61.0020.0002] # TIBETAN LETTER RRA
+0F63 ; [.2E62.0020.0002] # TIBETAN LETTER LA
+0FB3 ; [.2E63.0020.0002] # TIBETAN SUBJOINED LETTER LA
+0F64 ; [.2E64.0020.0002] # TIBETAN LETTER SHA
+0FB4 ; [.2E65.0020.0002] # TIBETAN SUBJOINED LETTER SHA
+0F65 ; [.2E66.0020.0002] # TIBETAN LETTER SSA
+0FB5 ; [.2E67.0020.0002] # TIBETAN SUBJOINED LETTER SSA
+0F66 ; [.2E68.0020.0002] # TIBETAN LETTER SA
+0FB6 ; [.2E69.0020.0002] # TIBETAN SUBJOINED LETTER SA
+0F67 ; [.2E6A.0020.0002] # TIBETAN LETTER HA
+0FB7 ; [.2E6B.0020.0002] # TIBETAN SUBJOINED LETTER HA
+0F68 ; [.2E6C.0020.0002] # TIBETAN LETTER A
+0F00 ; [.2E6C.0020.0004][.2E83.0020.0004][.0000.00C4.0004] # TIBETAN SYLLABLE OM
+0FB8 ; [.2E6D.0020.0002] # TIBETAN SUBJOINED LETTER A
+0F88 ; [.2E6E.0020.0002] # TIBETAN SIGN LCE TSA CAN
+0F8D ; [.2E6F.0020.0002] # TIBETAN SUBJOINED SIGN LCE TSA CAN
+0F89 ; [.2E70.0020.0002] # TIBETAN SIGN MCHU CAN
+0F8E ; [.2E71.0020.0002] # TIBETAN SUBJOINED SIGN MCHU CAN
+0F8C ; [.2E72.0020.0002] # TIBETAN SIGN INVERTED MCHU CAN
+0F8F ; [.2E73.0020.0002] # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
+0F8A ; [.2E74.0020.0002] # TIBETAN SIGN GRU CAN RGYINGS
+0F8B ; [.2E75.0020.0002] # TIBETAN SIGN GRU MED RGYINGS
+0F71 ; [.2E76.0020.0002] # TIBETAN VOWEL SIGN AA
+0F72 ; [.2E77.0020.0002] # TIBETAN VOWEL SIGN I
+0F73 ; [.2E78.0020.0002] # TIBETAN VOWEL SIGN II
+0F71 0F72 ; [.2E78.0020.0002] # TIBETAN VOWEL SIGN II
+0F80 ; [.2E79.0020.0002] # TIBETAN VOWEL SIGN REVERSED I
+0F81 ; [.2E7A.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
+0F71 0F80 ; [.2E7A.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
+0F74 ; [.2E7B.0020.0002] # TIBETAN VOWEL SIGN U
+0F75 ; [.2E7C.0020.0002] # TIBETAN VOWEL SIGN UU
+0F71 0F74 ; [.2E7C.0020.0002] # TIBETAN VOWEL SIGN UU
+0F76 ; [.2E7D.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
+0FB2 0F80 ; [.2E7D.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
+0F77 ; [.2E7E.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
+0FB2 0F71 0F80 ; [.2E7E.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
+0FB2 0F81 ; [.2E7E.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
+0F78 ; [.2E7F.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
+0FB3 0F80 ; [.2E7F.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
+0F79 ; [.2E80.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
+0FB3 0F71 0F80 ; [.2E80.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
+0FB3 0F81 ; [.2E80.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
+0F7A ; [.2E81.0020.0002] # TIBETAN VOWEL SIGN E
+0F7B ; [.2E82.0020.0002] # TIBETAN VOWEL SIGN EE
+0F7C ; [.2E83.0020.0002] # TIBETAN VOWEL SIGN O
+0F7D ; [.2E84.0020.0002] # TIBETAN VOWEL SIGN OO
+0F84 ; [.2E85.0020.0002] # TIBETAN MARK HALANTA
+11C72 ; [.2E86.0020.0002] # MARCHEN LETTER KA
+11C92 ; [.2E87.0020.0002] # MARCHEN SUBJOINED LETTER KA
+11C73 ; [.2E88.0020.0002] # MARCHEN LETTER KHA
+11C93 ; [.2E89.0020.0002] # MARCHEN SUBJOINED LETTER KHA
+11C74 ; [.2E8A.0020.0002] # MARCHEN LETTER GA
+11C94 ; [.2E8B.0020.0002] # MARCHEN SUBJOINED LETTER GA
+11C75 ; [.2E8C.0020.0002] # MARCHEN LETTER NGA
+11C95 ; [.2E8D.0020.0002] # MARCHEN SUBJOINED LETTER NGA
+11C76 ; [.2E8E.0020.0002] # MARCHEN LETTER CA
+11C96 ; [.2E8F.0020.0002] # MARCHEN SUBJOINED LETTER CA
+11C77 ; [.2E90.0020.0002] # MARCHEN LETTER CHA
+11C97 ; [.2E91.0020.0002] # MARCHEN SUBJOINED LETTER CHA
+11C78 ; [.2E92.0020.0002] # MARCHEN LETTER JA
+11C98 ; [.2E93.0020.0002] # MARCHEN SUBJOINED LETTER JA
+11C79 ; [.2E94.0020.0002] # MARCHEN LETTER NYA
+11C99 ; [.2E95.0020.0002] # MARCHEN SUBJOINED LETTER NYA
+11C7A ; [.2E96.0020.0002] # MARCHEN LETTER TA
+11C9A ; [.2E97.0020.0002] # MARCHEN SUBJOINED LETTER TA
+11C7B ; [.2E98.0020.0002] # MARCHEN LETTER THA
+11C9B ; [.2E99.0020.0002] # MARCHEN SUBJOINED LETTER THA
+11C7C ; [.2E9A.0020.0002] # MARCHEN LETTER DA
+11C9C ; [.2E9B.0020.0002] # MARCHEN SUBJOINED LETTER DA
+11C7D ; [.2E9C.0020.0002] # MARCHEN LETTER NA
+11C9D ; [.2E9D.0020.0002] # MARCHEN SUBJOINED LETTER NA
+11C7E ; [.2E9E.0020.0002] # MARCHEN LETTER PA
+11C9E ; [.2E9F.0020.0002] # MARCHEN SUBJOINED LETTER PA
+11C7F ; [.2EA0.0020.0002] # MARCHEN LETTER PHA
+11C9F ; [.2EA1.0020.0002] # MARCHEN SUBJOINED LETTER PHA
+11C80 ; [.2EA2.0020.0002] # MARCHEN LETTER BA
+11CA0 ; [.2EA3.0020.0002] # MARCHEN SUBJOINED LETTER BA
+11C81 ; [.2EA4.0020.0002] # MARCHEN LETTER MA
+11CA1 ; [.2EA5.0020.0002] # MARCHEN SUBJOINED LETTER MA
+11C82 ; [.2EA6.0020.0002] # MARCHEN LETTER TSA
+11CA2 ; [.2EA7.0020.0002] # MARCHEN SUBJOINED LETTER TSA
+11C83 ; [.2EA8.0020.0002] # MARCHEN LETTER TSHA
+11CA3 ; [.2EA9.0020.0002] # MARCHEN SUBJOINED LETTER TSHA
+11C84 ; [.2EAA.0020.0002] # MARCHEN LETTER DZA
+11CA4 ; [.2EAB.0020.0002] # MARCHEN SUBJOINED LETTER DZA
+11C85 ; [.2EAC.0020.0002] # MARCHEN LETTER WA
+11CA5 ; [.2EAD.0020.0002] # MARCHEN SUBJOINED LETTER WA
+11C86 ; [.2EAE.0020.0002] # MARCHEN LETTER ZHA
+11CA6 ; [.2EAF.0020.0002] # MARCHEN SUBJOINED LETTER ZHA
+11C87 ; [.2EB0.0020.0002] # MARCHEN LETTER ZA
+11CA7 ; [.2EB1.0020.0002] # MARCHEN SUBJOINED LETTER ZA
+11C88 ; [.2EB2.0020.0002] # MARCHEN LETTER -A
+11C89 ; [.2EB3.0020.0002] # MARCHEN LETTER YA
+11CA9 ; [.2EB4.0020.0002] # MARCHEN SUBJOINED LETTER YA
+11C8A ; [.2EB5.0020.0002] # MARCHEN LETTER RA
+11CAA ; [.2EB6.0020.0002] # MARCHEN SUBJOINED LETTER RA
+11C8B ; [.2EB7.0020.0002] # MARCHEN LETTER LA
+11CAB ; [.2EB8.0020.0002] # MARCHEN SUBJOINED LETTER LA
+11C8C ; [.2EB9.0020.0002] # MARCHEN LETTER SHA
+11CAC ; [.2EBA.0020.0002] # MARCHEN SUBJOINED LETTER SHA
+11C8D ; [.2EBB.0020.0002] # MARCHEN LETTER SA
+11CAD ; [.2EBC.0020.0002] # MARCHEN SUBJOINED LETTER SA
+11C8E ; [.2EBD.0020.0002] # MARCHEN LETTER HA
+11CAE ; [.2EBE.0020.0002] # MARCHEN SUBJOINED LETTER HA
+11C8F ; [.2EBF.0020.0002] # MARCHEN LETTER A
+11CAF ; [.2EC0.0020.0002] # MARCHEN SUBJOINED LETTER A
+11CB0 ; [.2EC1.0020.0002] # MARCHEN VOWEL SIGN AA
+11CB1 ; [.2EC2.0020.0002] # MARCHEN VOWEL SIGN I
+11CB2 ; [.2EC3.0020.0002] # MARCHEN VOWEL SIGN U
+11CB3 ; [.2EC4.0020.0002] # MARCHEN VOWEL SIGN E
+11CB4 ; [.2EC5.0020.0002] # MARCHEN VOWEL SIGN O
+1C00 ; [.2EC6.0020.0002] # LEPCHA LETTER KA
+1C01 ; [.2EC7.0020.0002] # LEPCHA LETTER KLA
+1C02 ; [.2EC8.0020.0002] # LEPCHA LETTER KHA
+1C03 ; [.2EC9.0020.0002] # LEPCHA LETTER GA
+1C04 ; [.2ECA.0020.0002] # LEPCHA LETTER GLA
+1C05 ; [.2ECB.0020.0002] # LEPCHA LETTER NGA
+1C06 ; [.2ECC.0020.0002] # LEPCHA LETTER CA
+1C07 ; [.2ECD.0020.0002] # LEPCHA LETTER CHA
+1C08 ; [.2ECE.0020.0002] # LEPCHA LETTER JA
+1C09 ; [.2ECF.0020.0002] # LEPCHA LETTER NYA
+1C4D ; [.2ED0.0020.0002] # LEPCHA LETTER TTA
+1C4E ; [.2ED1.0020.0002] # LEPCHA LETTER TTHA
+1C4F ; [.2ED2.0020.0002] # LEPCHA LETTER DDA
+1C0A ; [.2ED3.0020.0002] # LEPCHA LETTER TA
+1C0B ; [.2ED4.0020.0002] # LEPCHA LETTER THA
+1C0C ; [.2ED5.0020.0002] # LEPCHA LETTER DA
+1C0D ; [.2ED6.0020.0002] # LEPCHA LETTER NA
+1C0E ; [.2ED7.0020.0002] # LEPCHA LETTER PA
+1C0F ; [.2ED8.0020.0002] # LEPCHA LETTER PLA
+1C10 ; [.2ED9.0020.0002] # LEPCHA LETTER PHA
+1C11 ; [.2EDA.0020.0002] # LEPCHA LETTER FA
+1C12 ; [.2EDB.0020.0002] # LEPCHA LETTER FLA
+1C13 ; [.2EDC.0020.0002] # LEPCHA LETTER BA
+1C14 ; [.2EDD.0020.0002] # LEPCHA LETTER BLA
+1C15 ; [.2EDE.0020.0002] # LEPCHA LETTER MA
+1C16 ; [.2EDF.0020.0002] # LEPCHA LETTER MLA
+1C17 ; [.2EE0.0020.0002] # LEPCHA LETTER TSA
+1C18 ; [.2EE1.0020.0002] # LEPCHA LETTER TSHA
+1C19 ; [.2EE2.0020.0002] # LEPCHA LETTER DZA
+1C1A ; [.2EE3.0020.0002] # LEPCHA LETTER YA
+1C24 ; [.2EE4.0020.0002] # LEPCHA SUBJOINED LETTER YA
+1C1B ; [.2EE5.0020.0002] # LEPCHA LETTER RA
+1C25 ; [.2EE6.0020.0002] # LEPCHA SUBJOINED LETTER RA
+1C1C ; [.2EE7.0020.0002] # LEPCHA LETTER LA
+1C1D ; [.2EE8.0020.0002] # LEPCHA LETTER HA
+1C1E ; [.2EE9.0020.0002] # LEPCHA LETTER HLA
+1C1F ; [.2EEA.0020.0002] # LEPCHA LETTER VA
+1C20 ; [.2EEB.0020.0002] # LEPCHA LETTER SA
+1C21 ; [.2EEC.0020.0002] # LEPCHA LETTER SHA
+1C22 ; [.2EED.0020.0002] # LEPCHA LETTER WA
+1C23 ; [.2EEE.0020.0002] # LEPCHA LETTER A
+1C36 ; [.2EEF.0020.0002] # LEPCHA SIGN RAN
+1C26 ; [.2EF0.0020.0002] # LEPCHA VOWEL SIGN AA
+1C27 ; [.2EF1.0020.0002] # LEPCHA VOWEL SIGN I
+1C28 ; [.2EF2.0020.0002] # LEPCHA VOWEL SIGN O
+1C29 ; [.2EF3.0020.0002] # LEPCHA VOWEL SIGN OO
+1C2A ; [.2EF4.0020.0002] # LEPCHA VOWEL SIGN U
+1C2B ; [.2EF5.0020.0002] # LEPCHA VOWEL SIGN UU
+1C2C ; [.2EF6.0020.0002] # LEPCHA VOWEL SIGN E
+1C2D ; [.2EF7.0020.0002] # LEPCHA CONSONANT SIGN K
+1C2E ; [.2EF8.0020.0002] # LEPCHA CONSONANT SIGN M
+1C2F ; [.2EF9.0020.0002] # LEPCHA CONSONANT SIGN L
+1C30 ; [.2EFA.0020.0002] # LEPCHA CONSONANT SIGN N
+1C31 ; [.2EFB.0020.0002] # LEPCHA CONSONANT SIGN P
+1C32 ; [.2EFC.0020.0002] # LEPCHA CONSONANT SIGN R
+1C33 ; [.2EFD.0020.0002] # LEPCHA CONSONANT SIGN T
+1C34 ; [.2EFE.0020.0002] # LEPCHA CONSONANT SIGN NYIN-DO
+1C35 ; [.2EFF.0020.0002] # LEPCHA CONSONANT SIGN KANG
+A840 ; [.2F00.0020.0002] # PHAGS-PA LETTER KA
+A841 ; [.2F01.0020.0002] # PHAGS-PA LETTER KHA
+A842 ; [.2F02.0020.0002] # PHAGS-PA LETTER GA
+A843 ; [.2F03.0020.0002] # PHAGS-PA LETTER NGA
+A844 ; [.2F04.0020.0002] # PHAGS-PA LETTER CA
+A845 ; [.2F05.0020.0002] # PHAGS-PA LETTER CHA
+A846 ; [.2F06.0020.0002] # PHAGS-PA LETTER JA
+A847 ; [.2F07.0020.0002] # PHAGS-PA LETTER NYA
+A869 ; [.2F08.0020.0002] # PHAGS-PA LETTER TTA
+A86A ; [.2F09.0020.0002] # PHAGS-PA LETTER TTHA
+A86B ; [.2F0A.0020.0002] # PHAGS-PA LETTER DDA
+A86C ; [.2F0B.0020.0002] # PHAGS-PA LETTER NNA
+A848 ; [.2F0C.0020.0002] # PHAGS-PA LETTER TA
+A849 ; [.2F0D.0020.0002] # PHAGS-PA LETTER THA
+A84A ; [.2F0E.0020.0002] # PHAGS-PA LETTER DA
+A84B ; [.2F0F.0020.0002] # PHAGS-PA LETTER NA
+A84C ; [.2F10.0020.0002] # PHAGS-PA LETTER PA
+A84D ; [.2F11.0020.0002] # PHAGS-PA LETTER PHA
+A84E ; [.2F12.0020.0002] # PHAGS-PA LETTER BA
+A84F ; [.2F13.0020.0002] # PHAGS-PA LETTER MA
+A850 ; [.2F14.0020.0002] # PHAGS-PA LETTER TSA
+A851 ; [.2F15.0020.0002] # PHAGS-PA LETTER TSHA
+A852 ; [.2F16.0020.0002] # PHAGS-PA LETTER DZA
+A853 ; [.2F17.0020.0002] # PHAGS-PA LETTER WA
+A867 ; [.2F18.0020.0002] # PHAGS-PA SUBJOINED LETTER WA
+A854 ; [.2F19.0020.0002] # PHAGS-PA LETTER ZHA
+A855 ; [.2F1A.0020.0002] # PHAGS-PA LETTER ZA
+A856 ; [.2F1B.0020.0002] # PHAGS-PA LETTER SMALL A
+A857 ; [.2F1C.0020.0002] # PHAGS-PA LETTER YA
+A868 ; [.2F1D.0020.0002] # PHAGS-PA SUBJOINED LETTER YA
+A86D ; [.2F1E.0020.0002] # PHAGS-PA LETTER ALTERNATE YA
+A858 ; [.2F1F.0020.0002] # PHAGS-PA LETTER RA
+A871 ; [.2F20.0020.0002] # PHAGS-PA SUBJOINED LETTER RA
+A872 ; [.2F21.0020.0002] # PHAGS-PA SUPERFIXED LETTER RA
+A859 ; [.2F22.0020.0002] # PHAGS-PA LETTER LA
+A85A ; [.2F23.0020.0002] # PHAGS-PA LETTER SHA
+A86E ; [.2F24.0020.0002] # PHAGS-PA LETTER VOICELESS SHA
+A85B ; [.2F25.0020.0002] # PHAGS-PA LETTER SA
+A85C ; [.2F26.0020.0002] # PHAGS-PA LETTER HA
+A86F ; [.2F27.0020.0002] # PHAGS-PA LETTER VOICED HA
+A870 ; [.2F28.0020.0002] # PHAGS-PA LETTER ASPIRATED FA
+A85D ; [.2F29.0020.0002] # PHAGS-PA LETTER A
+A862 ; [.2F2A.0020.0002] # PHAGS-PA LETTER QA
+A863 ; [.2F2B.0020.0002] # PHAGS-PA LETTER XA
+A864 ; [.2F2C.0020.0002] # PHAGS-PA LETTER FA
+A865 ; [.2F2D.0020.0002] # PHAGS-PA LETTER GGA
+A85E ; [.2F2E.0020.0002] # PHAGS-PA LETTER I
+A85F ; [.2F2F.0020.0002] # PHAGS-PA LETTER U
+A860 ; [.2F30.0020.0002] # PHAGS-PA LETTER E
+A861 ; [.2F31.0020.0002] # PHAGS-PA LETTER O
+A866 ; [.2F32.0020.0002] # PHAGS-PA LETTER EE
+A873 ; [.2F33.0020.0002] # PHAGS-PA LETTER CANDRABINDU
+1900 ; [.2F34.0020.0002] # LIMBU VOWEL-CARRIER LETTER
+1901 ; [.2F35.0020.0002] # LIMBU LETTER KA
+1902 ; [.2F36.0020.0002] # LIMBU LETTER KHA
+1903 ; [.2F37.0020.0002] # LIMBU LETTER GA
+1904 ; [.2F38.0020.0002] # LIMBU LETTER GHA
+1905 ; [.2F39.0020.0002] # LIMBU LETTER NGA
+1906 ; [.2F3A.0020.0002] # LIMBU LETTER CA
+1907 ; [.2F3B.0020.0002] # LIMBU LETTER CHA
+1908 ; [.2F3C.0020.0002] # LIMBU LETTER JA
+191D ; [.2F3C.0020.0004][.2F5A.0020.0004] # LIMBU LETTER GYAN
+1909 ; [.2F3D.0020.0002] # LIMBU LETTER JHA
+190A ; [.2F3E.0020.0002] # LIMBU LETTER YAN
+190B ; [.2F3F.0020.0002] # LIMBU LETTER TA
+191E ; [.2F3F.0020.0004][.2F5B.0020.0004] # LIMBU LETTER TRA
+190C ; [.2F40.0020.0002] # LIMBU LETTER THA
+190D ; [.2F41.0020.0002] # LIMBU LETTER DA
+190E ; [.2F42.0020.0002] # LIMBU LETTER DHA
+190F ; [.2F43.0020.0002] # LIMBU LETTER NA
+1910 ; [.2F44.0020.0002] # LIMBU LETTER PA
+1911 ; [.2F45.0020.0002] # LIMBU LETTER PHA
+1912 ; [.2F46.0020.0002] # LIMBU LETTER BA
+1913 ; [.2F47.0020.0002] # LIMBU LETTER BHA
+1914 ; [.2F48.0020.0002] # LIMBU LETTER MA
+1915 ; [.2F49.0020.0002] # LIMBU LETTER YA
+1916 ; [.2F4A.0020.0002] # LIMBU LETTER RA
+1917 ; [.2F4B.0020.0002] # LIMBU LETTER LA
+1918 ; [.2F4C.0020.0002] # LIMBU LETTER WA
+1919 ; [.2F4D.0020.0002] # LIMBU LETTER SHA
+191A ; [.2F4E.0020.0002] # LIMBU LETTER SSA
+191B ; [.2F4F.0020.0002] # LIMBU LETTER SA
+191C ; [.2F50.0020.0002] # LIMBU LETTER HA
+1920 ; [.2F51.0020.0002] # LIMBU VOWEL SIGN A
+1921 ; [.2F52.0020.0002] # LIMBU VOWEL SIGN I
+1922 ; [.2F53.0020.0002] # LIMBU VOWEL SIGN U
+1923 ; [.2F54.0020.0002] # LIMBU VOWEL SIGN EE
+1924 ; [.2F55.0020.0002] # LIMBU VOWEL SIGN AI
+1925 ; [.2F56.0020.0002] # LIMBU VOWEL SIGN OO
+1926 ; [.2F57.0020.0002] # LIMBU VOWEL SIGN AU
+1927 ; [.2F58.0020.0002] # LIMBU VOWEL SIGN E
+1928 ; [.2F59.0020.0002] # LIMBU VOWEL SIGN O
+1929 ; [.2F5A.0020.0002] # LIMBU SUBJOINED LETTER YA
+192A ; [.2F5B.0020.0002] # LIMBU SUBJOINED LETTER RA
+192B ; [.2F5C.0020.0002] # LIMBU SUBJOINED LETTER WA
+1930 ; [.2F5D.0020.0002] # LIMBU SMALL LETTER KA
+1931 ; [.2F5E.0020.0002] # LIMBU SMALL LETTER NGA
+1932 ; [.2F5F.0020.0002] # LIMBU SMALL LETTER ANUSVARA
+1933 ; [.2F60.0020.0002] # LIMBU SMALL LETTER TA
+1934 ; [.2F61.0020.0002] # LIMBU SMALL LETTER NA
+1935 ; [.2F62.0020.0002] # LIMBU SMALL LETTER PA
+1936 ; [.2F63.0020.0002] # LIMBU SMALL LETTER MA
+1937 ; [.2F64.0020.0002] # LIMBU SMALL LETTER RA
+1938 ; [.2F65.0020.0002] # LIMBU SMALL LETTER LA
+1700 ; [.2F66.0020.0002] # TAGALOG LETTER A
+1701 ; [.2F67.0020.0002] # TAGALOG LETTER I
+1702 ; [.2F68.0020.0002] # TAGALOG LETTER U
+1703 ; [.2F69.0020.0002] # TAGALOG LETTER KA
+1704 ; [.2F6A.0020.0002] # TAGALOG LETTER GA
+1705 ; [.2F6B.0020.0002] # TAGALOG LETTER NGA
+1706 ; [.2F6C.0020.0002] # TAGALOG LETTER TA
+1707 ; [.2F6D.0020.0002] # TAGALOG LETTER DA
+1708 ; [.2F6E.0020.0002] # TAGALOG LETTER NA
+1709 ; [.2F6F.0020.0002] # TAGALOG LETTER PA
+170A ; [.2F70.0020.0002] # TAGALOG LETTER BA
+170B ; [.2F71.0020.0002] # TAGALOG LETTER MA
+170C ; [.2F72.0020.0002] # TAGALOG LETTER YA
+170E ; [.2F73.0020.0002] # TAGALOG LETTER LA
+170F ; [.2F74.0020.0002] # TAGALOG LETTER WA
+1710 ; [.2F75.0020.0002] # TAGALOG LETTER SA
+1711 ; [.2F76.0020.0002] # TAGALOG LETTER HA
+1712 ; [.2F77.0020.0002] # TAGALOG VOWEL SIGN I
+1713 ; [.2F78.0020.0002] # TAGALOG VOWEL SIGN U
+1714 ; [.2F79.0020.0002] # TAGALOG SIGN VIRAMA
+1720 ; [.2F7A.0020.0002] # HANUNOO LETTER A
+1721 ; [.2F7B.0020.0002] # HANUNOO LETTER I
+1722 ; [.2F7C.0020.0002] # HANUNOO LETTER U
+1723 ; [.2F7D.0020.0002] # HANUNOO LETTER KA
+1724 ; [.2F7E.0020.0002] # HANUNOO LETTER GA
+1725 ; [.2F7F.0020.0002] # HANUNOO LETTER NGA
+1726 ; [.2F80.0020.0002] # HANUNOO LETTER TA
+1727 ; [.2F81.0020.0002] # HANUNOO LETTER DA
+1728 ; [.2F82.0020.0002] # HANUNOO LETTER NA
+1729 ; [.2F83.0020.0002] # HANUNOO LETTER PA
+172A ; [.2F84.0020.0002] # HANUNOO LETTER BA
+172B ; [.2F85.0020.0002] # HANUNOO LETTER MA
+172C ; [.2F86.0020.0002] # HANUNOO LETTER YA
+172D ; [.2F87.0020.0002] # HANUNOO LETTER RA
+172E ; [.2F88.0020.0002] # HANUNOO LETTER LA
+172F ; [.2F89.0020.0002] # HANUNOO LETTER WA
+1730 ; [.2F8A.0020.0002] # HANUNOO LETTER SA
+1731 ; [.2F8B.0020.0002] # HANUNOO LETTER HA
+1732 ; [.2F8C.0020.0002] # HANUNOO VOWEL SIGN I
+1733 ; [.2F8D.0020.0002] # HANUNOO VOWEL SIGN U
+1734 ; [.2F8E.0020.0002] # HANUNOO SIGN PAMUDPOD
+1740 ; [.2F8F.0020.0002] # BUHID LETTER A
+1741 ; [.2F90.0020.0002] # BUHID LETTER I
+1742 ; [.2F91.0020.0002] # BUHID LETTER U
+1743 ; [.2F92.0020.0002] # BUHID LETTER KA
+1744 ; [.2F93.0020.0002] # BUHID LETTER GA
+1745 ; [.2F94.0020.0002] # BUHID LETTER NGA
+1746 ; [.2F95.0020.0002] # BUHID LETTER TA
+1747 ; [.2F96.0020.0002] # BUHID LETTER DA
+1748 ; [.2F97.0020.0002] # BUHID LETTER NA
+1749 ; [.2F98.0020.0002] # BUHID LETTER PA
+174A ; [.2F99.0020.0002] # BUHID LETTER BA
+174B ; [.2F9A.0020.0002] # BUHID LETTER MA
+174C ; [.2F9B.0020.0002] # BUHID LETTER YA
+174D ; [.2F9C.0020.0002] # BUHID LETTER RA
+174E ; [.2F9D.0020.0002] # BUHID LETTER LA
+174F ; [.2F9E.0020.0002] # BUHID LETTER WA
+1750 ; [.2F9F.0020.0002] # BUHID LETTER SA
+1751 ; [.2FA0.0020.0002] # BUHID LETTER HA
+1752 ; [.2FA1.0020.0002] # BUHID VOWEL SIGN I
+1753 ; [.2FA2.0020.0002] # BUHID VOWEL SIGN U
+1760 ; [.2FA3.0020.0002] # TAGBANWA LETTER A
+1761 ; [.2FA4.0020.0002] # TAGBANWA LETTER I
+1762 ; [.2FA5.0020.0002] # TAGBANWA LETTER U
+1763 ; [.2FA6.0020.0002] # TAGBANWA LETTER KA
+1764 ; [.2FA7.0020.0002] # TAGBANWA LETTER GA
+1765 ; [.2FA8.0020.0002] # TAGBANWA LETTER NGA
+1766 ; [.2FA9.0020.0002] # TAGBANWA LETTER TA
+1767 ; [.2FAA.0020.0002] # TAGBANWA LETTER DA
+1768 ; [.2FAB.0020.0002] # TAGBANWA LETTER NA
+1769 ; [.2FAC.0020.0002] # TAGBANWA LETTER PA
+176A ; [.2FAD.0020.0002] # TAGBANWA LETTER BA
+176B ; [.2FAE.0020.0002] # TAGBANWA LETTER MA
+176C ; [.2FAF.0020.0002] # TAGBANWA LETTER YA
+176E ; [.2FB0.0020.0002] # TAGBANWA LETTER LA
+176F ; [.2FB1.0020.0002] # TAGBANWA LETTER WA
+1770 ; [.2FB2.0020.0002] # TAGBANWA LETTER SA
+1772 ; [.2FB3.0020.0002] # TAGBANWA VOWEL SIGN I
+1773 ; [.2FB4.0020.0002] # TAGBANWA VOWEL SIGN U
+1A00 ; [.2FB5.0020.0002] # BUGINESE LETTER KA
+1A01 ; [.2FB6.0020.0002] # BUGINESE LETTER GA
+1A02 ; [.2FB7.0020.0002] # BUGINESE LETTER NGA
+1A03 ; [.2FB8.0020.0002] # BUGINESE LETTER NGKA
+1A04 ; [.2FB9.0020.0002] # BUGINESE LETTER PA
+1A05 ; [.2FBA.0020.0002] # BUGINESE LETTER BA
+1A06 ; [.2FBB.0020.0002] # BUGINESE LETTER MA
+1A07 ; [.2FBC.0020.0002] # BUGINESE LETTER MPA
+1A08 ; [.2FBD.0020.0002] # BUGINESE LETTER TA
+1A09 ; [.2FBE.0020.0002] # BUGINESE LETTER DA
+1A0A ; [.2FBF.0020.0002] # BUGINESE LETTER NA
+1A0B ; [.2FC0.0020.0002] # BUGINESE LETTER NRA
+1A0C ; [.2FC1.0020.0002] # BUGINESE LETTER CA
+1A0D ; [.2FC2.0020.0002] # BUGINESE LETTER JA
+1A0E ; [.2FC3.0020.0002] # BUGINESE LETTER NYA
+1A0F ; [.2FC4.0020.0002] # BUGINESE LETTER NYCA
+1A10 ; [.2FC5.0020.0002] # BUGINESE LETTER YA
+1A11 ; [.2FC6.0020.0002] # BUGINESE LETTER RA
+1A12 ; [.2FC7.0020.0002] # BUGINESE LETTER LA
+1A13 ; [.2FC8.0020.0002] # BUGINESE LETTER VA
+1A14 ; [.2FC9.0020.0002] # BUGINESE LETTER SA
+1A15 ; [.2FCA.0020.0002] # BUGINESE LETTER A
+1A16 ; [.2FCB.0020.0002] # BUGINESE LETTER HA
+1A17 ; [.2FCC.0020.0002] # BUGINESE VOWEL SIGN I
+1A18 ; [.2FCD.0020.0002] # BUGINESE VOWEL SIGN U
+1A19 ; [.2FCE.0020.0002] # BUGINESE VOWEL SIGN E
+1A1A ; [.2FCF.0020.0002] # BUGINESE VOWEL SIGN O
+1A1B ; [.2FD0.0020.0002] # BUGINESE VOWEL SIGN AE
+1BC0 ; [.2FD1.0020.0002] # BATAK LETTER A
+1BC1 ; [.2FD1.0020.0004] # BATAK LETTER SIMALUNGUN A
+1BC2 ; [.2FD2.0020.0002] # BATAK LETTER HA
+1BC3 ; [.2FD2.0020.0004] # BATAK LETTER SIMALUNGUN HA
+1BC4 ; [.2FD2.0020.0004] # BATAK LETTER MANDAILING HA
+1BC5 ; [.2FD3.0020.0002] # BATAK LETTER BA
+1BC6 ; [.2FD3.0020.0004] # BATAK LETTER KARO BA
+1BC7 ; [.2FD4.0020.0002] # BATAK LETTER PA
+1BC8 ; [.2FD4.0020.0004] # BATAK LETTER SIMALUNGUN PA
+1BC9 ; [.2FD5.0020.0002] # BATAK LETTER NA
+1BCA ; [.2FD5.0020.0004] # BATAK LETTER MANDAILING NA
+1BCB ; [.2FD6.0020.0002] # BATAK LETTER WA
+1BCC ; [.2FD6.0020.0004] # BATAK LETTER SIMALUNGUN WA
+1BCD ; [.2FD6.0020.0004] # BATAK LETTER PAKPAK WA
+1BCE ; [.2FD7.0020.0002] # BATAK LETTER GA
+1BCF ; [.2FD7.0020.0004] # BATAK LETTER SIMALUNGUN GA
+1BD0 ; [.2FD8.0020.0002] # BATAK LETTER JA
+1BD1 ; [.2FD9.0020.0002] # BATAK LETTER DA
+1BD2 ; [.2FDA.0020.0002] # BATAK LETTER RA
+1BD3 ; [.2FDA.0020.0004] # BATAK LETTER SIMALUNGUN RA
+1BD4 ; [.2FDB.0020.0002] # BATAK LETTER MA
+1BD5 ; [.2FDB.0020.0004] # BATAK LETTER SIMALUNGUN MA
+1BD6 ; [.2FDC.0020.0002] # BATAK LETTER SOUTHERN TA
+1BD7 ; [.2FDC.0020.0004] # BATAK LETTER NORTHERN TA
+1BD8 ; [.2FDD.0020.0002] # BATAK LETTER SA
+1BD9 ; [.2FDD.0020.0004] # BATAK LETTER SIMALUNGUN SA
+1BDA ; [.2FDD.0020.0004] # BATAK LETTER MANDAILING SA
+1BDB ; [.2FDE.0020.0002] # BATAK LETTER YA
+1BDC ; [.2FDE.0020.0004] # BATAK LETTER SIMALUNGUN YA
+1BDD ; [.2FDF.0020.0002] # BATAK LETTER NGA
+1BDE ; [.2FE0.0020.0002] # BATAK LETTER LA
+1BDF ; [.2FE0.0020.0004] # BATAK LETTER SIMALUNGUN LA
+1BE0 ; [.2FE1.0020.0002] # BATAK LETTER NYA
+1BE1 ; [.2FE2.0020.0002] # BATAK LETTER CA
+1BE2 ; [.2FE3.0020.0002] # BATAK LETTER NDA
+1BE3 ; [.2FE4.0020.0002] # BATAK LETTER MBA
+1BE4 ; [.2FE5.0020.0002] # BATAK LETTER I
+1BE5 ; [.2FE6.0020.0002] # BATAK LETTER U
+1BE7 ; [.2FE7.0020.0002] # BATAK VOWEL SIGN E
+1BE8 ; [.2FE7.0020.0004] # BATAK VOWEL SIGN PAKPAK E
+1BE9 ; [.2FE8.0020.0002] # BATAK VOWEL SIGN EE
+1BEA ; [.2FE9.0020.0002] # BATAK VOWEL SIGN I
+1BEB ; [.2FE9.0020.0004] # BATAK VOWEL SIGN KARO I
+1BEC ; [.2FEA.0020.0002] # BATAK VOWEL SIGN O
+1BED ; [.2FEA.0020.0004] # BATAK VOWEL SIGN KARO O
+1BEE ; [.2FEB.0020.0002] # BATAK VOWEL SIGN U
+1BEF ; [.2FEB.0020.0004] # BATAK VOWEL SIGN U FOR SIMALUNGUN SA
+1BF0 ; [.2FEC.0020.0002] # BATAK CONSONANT SIGN NG
+1BF1 ; [.2FED.0020.0002] # BATAK CONSONANT SIGN H
+1BF2 ; [.2FEE.0020.0002] # BATAK PANGOLAT
+1BF3 ; [.2FEF.0020.0002] # BATAK PANONGONAN
+A930 ; [.2FF0.0020.0002] # REJANG LETTER KA
+A931 ; [.2FF1.0020.0002] # REJANG LETTER GA
+A932 ; [.2FF2.0020.0002] # REJANG LETTER NGA
+A933 ; [.2FF3.0020.0002] # REJANG LETTER TA
+A934 ; [.2FF4.0020.0002] # REJANG LETTER DA
+A935 ; [.2FF5.0020.0002] # REJANG LETTER NA
+A936 ; [.2FF6.0020.0002] # REJANG LETTER PA
+A937 ; [.2FF7.0020.0002] # REJANG LETTER BA
+A938 ; [.2FF8.0020.0002] # REJANG LETTER MA
+A939 ; [.2FF9.0020.0002] # REJANG LETTER CA
+A93A ; [.2FFA.0020.0002] # REJANG LETTER JA
+A93B ; [.2FFB.0020.0002] # REJANG LETTER NYA
+A93C ; [.2FFC.0020.0002] # REJANG LETTER SA
+A93D ; [.2FFD.0020.0002] # REJANG LETTER RA
+A93E ; [.2FFE.0020.0002] # REJANG LETTER LA
+A93F ; [.2FFF.0020.0002] # REJANG LETTER YA
+A940 ; [.3000.0020.0002] # REJANG LETTER WA
+A941 ; [.3001.0020.0002] # REJANG LETTER HA
+A942 ; [.3002.0020.0002] # REJANG LETTER MBA
+A943 ; [.3003.0020.0002] # REJANG LETTER NGGA
+A944 ; [.3004.0020.0002] # REJANG LETTER NDA
+A945 ; [.3005.0020.0002] # REJANG LETTER NYJA
+A946 ; [.3006.0020.0002] # REJANG LETTER A
+A947 ; [.3007.0020.0002] # REJANG VOWEL SIGN I
+A948 ; [.3008.0020.0002] # REJANG VOWEL SIGN U
+A949 ; [.3009.0020.0002] # REJANG VOWEL SIGN E
+A94A ; [.300A.0020.0002] # REJANG VOWEL SIGN AI
+A94B ; [.300B.0020.0002] # REJANG VOWEL SIGN O
+A94C ; [.300C.0020.0002] # REJANG VOWEL SIGN AU
+A94D ; [.300D.0020.0002] # REJANG VOWEL SIGN EU
+A94E ; [.300E.0020.0002] # REJANG VOWEL SIGN EA
+A94F ; [.300F.0020.0002] # REJANG CONSONANT SIGN NG
+A950 ; [.3010.0020.0002] # REJANG CONSONANT SIGN N
+A951 ; [.3011.0020.0002] # REJANG CONSONANT SIGN R
+A952 ; [.3012.0020.0002] # REJANG CONSONANT SIGN H
+A953 ; [.3013.0020.0002] # REJANG VIRAMA
+A90A ; [.3014.0020.0002] # KAYAH LI LETTER KA
+A90B ; [.3015.0020.0002] # KAYAH LI LETTER KHA
+A90C ; [.3016.0020.0002] # KAYAH LI LETTER GA
+A90D ; [.3017.0020.0002] # KAYAH LI LETTER NGA
+A90E ; [.3018.0020.0002] # KAYAH LI LETTER SA
+A90F ; [.3019.0020.0002] # KAYAH LI LETTER SHA
+A910 ; [.301A.0020.0002] # KAYAH LI LETTER ZA
+A911 ; [.301B.0020.0002] # KAYAH LI LETTER NYA
+A912 ; [.301C.0020.0002] # KAYAH LI LETTER TA
+A913 ; [.301D.0020.0002] # KAYAH LI LETTER HTA
+A914 ; [.301E.0020.0002] # KAYAH LI LETTER NA
+A915 ; [.301F.0020.0002] # KAYAH LI LETTER PA
+A916 ; [.3020.0020.0002] # KAYAH LI LETTER PHA
+A917 ; [.3021.0020.0002] # KAYAH LI LETTER MA
+A918 ; [.3022.0020.0002] # KAYAH LI LETTER DA
+A919 ; [.3023.0020.0002] # KAYAH LI LETTER BA
+A91A ; [.3024.0020.0002] # KAYAH LI LETTER RA
+A91B ; [.3025.0020.0002] # KAYAH LI LETTER YA
+A91C ; [.3026.0020.0002] # KAYAH LI LETTER LA
+A91D ; [.3027.0020.0002] # KAYAH LI LETTER WA
+A91E ; [.3028.0020.0002] # KAYAH LI LETTER THA
+A91F ; [.3029.0020.0002] # KAYAH LI LETTER HA
+A920 ; [.302A.0020.0002] # KAYAH LI LETTER VA
+A921 ; [.302B.0020.0002] # KAYAH LI LETTER CA
+A922 ; [.302C.0020.0002] # KAYAH LI LETTER A
+A923 ; [.302D.0020.0002] # KAYAH LI LETTER OE
+A924 ; [.302E.0020.0002] # KAYAH LI LETTER I
+A925 ; [.302F.0020.0002] # KAYAH LI LETTER OO
+A926 ; [.3030.0020.0002] # KAYAH LI VOWEL UE
+A927 ; [.3031.0020.0002] # KAYAH LI VOWEL E
+A928 ; [.3032.0020.0002] # KAYAH LI VOWEL U
+A929 ; [.3033.0020.0002] # KAYAH LI VOWEL EE
+A92A ; [.3034.0020.0002] # KAYAH LI VOWEL O
+1000 ; [.3035.0020.0002] # MYANMAR LETTER KA
+1075 ; [.3036.0020.0002] # MYANMAR LETTER SHAN KA
+1001 ; [.3037.0020.0002] # MYANMAR LETTER KHA
+1076 ; [.3038.0020.0002] # MYANMAR LETTER SHAN KHA
+1002 ; [.3039.0020.0002] # MYANMAR LETTER GA
+1077 ; [.303A.0020.0002] # MYANMAR LETTER SHAN GA
+AA60 ; [.303B.0020.0002] # MYANMAR LETTER KHAMTI GA
+A9E9 ; [.303C.0020.0002] # MYANMAR LETTER TAI LAING GA
+1003 ; [.303D.0020.0002] # MYANMAR LETTER GHA
+A9E0 ; [.303E.0020.0002] # MYANMAR LETTER SHAN GHA
+A9EA ; [.303F.0020.0002] # MYANMAR LETTER TAI LAING GHA
+1004 ; [.3040.0020.0002] # MYANMAR LETTER NGA
+105A ; [.3041.0020.0002] # MYANMAR LETTER MON NGA
+1005 ; [.3042.0020.0002] # MYANMAR LETTER CA
+1078 ; [.3043.0020.0002] # MYANMAR LETTER SHAN CA
+AA61 ; [.3044.0020.0002] # MYANMAR LETTER KHAMTI CA
+1006 ; [.3045.0020.0002] # MYANMAR LETTER CHA
+A9E1 ; [.3046.0020.0002] # MYANMAR LETTER SHAN CHA
+AA62 ; [.3047.0020.0002] # MYANMAR LETTER KHAMTI CHA
+AA7E ; [.3048.0020.0002] # MYANMAR LETTER SHWE PALAUNG CHA
+1007 ; [.3049.0020.0002] # MYANMAR LETTER JA
+AA63 ; [.304A.0020.0002] # MYANMAR LETTER KHAMTI JA
+A9EB ; [.304B.0020.0002] # MYANMAR LETTER TAI LAING JA
+1079 ; [.304C.0020.0002] # MYANMAR LETTER SHAN ZA
+AA72 ; [.304D.0020.0002] # MYANMAR LETTER KHAMTI ZA
+1008 ; [.304E.0020.0002] # MYANMAR LETTER JHA
+105B ; [.304F.0020.0002] # MYANMAR LETTER MON JHA
+A9E2 ; [.3050.0020.0002] # MYANMAR LETTER SHAN JHA
+AA64 ; [.3051.0020.0002] # MYANMAR LETTER KHAMTI JHA
+A9EC ; [.3052.0020.0002] # MYANMAR LETTER TAI LAING JHA
+1061 ; [.3053.0020.0002] # MYANMAR LETTER SGAW KAREN SHA
+AA7F ; [.3054.0020.0002] # MYANMAR LETTER SHWE PALAUNG SHA
+1009 ; [.3055.0020.0002] # MYANMAR LETTER NYA
+107A ; [.3056.0020.0002] # MYANMAR LETTER SHAN NYA
+AA65 ; [.3057.0020.0002] # MYANMAR LETTER KHAMTI NYA
+A9E7 ; [.3058.0020.0002] # MYANMAR LETTER TAI LAING NYA
+100A ; [.3059.0020.0002] # MYANMAR LETTER NNYA
+100B ; [.305A.0020.0002] # MYANMAR LETTER TTA
+AA66 ; [.305B.0020.0002] # MYANMAR LETTER KHAMTI TTA
+100C ; [.305C.0020.0002] # MYANMAR LETTER TTHA
+AA67 ; [.305D.0020.0002] # MYANMAR LETTER KHAMTI TTHA
+100D ; [.305E.0020.0002] # MYANMAR LETTER DDA
+AA68 ; [.305F.0020.0002] # MYANMAR LETTER KHAMTI DDA
+A9ED ; [.3060.0020.0002] # MYANMAR LETTER TAI LAING DDA
+100E ; [.3061.0020.0002] # MYANMAR LETTER DDHA
+AA69 ; [.3062.0020.0002] # MYANMAR LETTER KHAMTI DDHA
+A9EE ; [.3063.0020.0002] # MYANMAR LETTER TAI LAING DDHA
+100F ; [.3064.0020.0002] # MYANMAR LETTER NNA
+106E ; [.3065.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN NNA
+A9E3 ; [.3066.0020.0002] # MYANMAR LETTER SHAN NNA
+A9EF ; [.3067.0020.0002] # MYANMAR LETTER TAI LAING NNA
+1010 ; [.3068.0020.0002] # MYANMAR LETTER TA
+1011 ; [.3069.0020.0002] # MYANMAR LETTER THA
+1012 ; [.306A.0020.0002] # MYANMAR LETTER DA
+107B ; [.306B.0020.0002] # MYANMAR LETTER SHAN DA
+A9FB ; [.306C.0020.0002] # MYANMAR LETTER TAI LAING DA
+1013 ; [.306D.0020.0002] # MYANMAR LETTER DHA
+AA6A ; [.306E.0020.0002] # MYANMAR LETTER KHAMTI DHA
+A9FC ; [.306F.0020.0002] # MYANMAR LETTER TAI LAING DHA
+1014 ; [.3070.0020.0002] # MYANMAR LETTER NA
+107C ; [.3071.0020.0002] # MYANMAR LETTER SHAN NA
+AA6B ; [.3072.0020.0002] # MYANMAR LETTER KHAMTI NA
+105E ; [.3073.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL NA
+1015 ; [.3074.0020.0002] # MYANMAR LETTER PA
+1016 ; [.3075.0020.0002] # MYANMAR LETTER PHA
+107D ; [.3076.0020.0002] # MYANMAR LETTER SHAN PHA
+107E ; [.3077.0020.0002] # MYANMAR LETTER SHAN FA
+AA6F ; [.3078.0020.0002] # MYANMAR LETTER KHAMTI FA
+108E ; [.3079.0020.0002] # MYANMAR LETTER RUMAI PALAUNG FA
+A9E8 ; [.307A.0020.0002] # MYANMAR LETTER TAI LAING FA
+1017 ; [.307B.0020.0002] # MYANMAR LETTER BA
+107F ; [.307C.0020.0002] # MYANMAR LETTER SHAN BA
+A9FD ; [.307D.0020.0002] # MYANMAR LETTER TAI LAING BA
+1018 ; [.307E.0020.0002] # MYANMAR LETTER BHA
+A9E4 ; [.307F.0020.0002] # MYANMAR LETTER SHAN BHA
+A9FE ; [.3080.0020.0002] # MYANMAR LETTER TAI LAING BHA
+1019 ; [.3081.0020.0002] # MYANMAR LETTER MA
+105F ; [.3082.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL MA
+101A ; [.3083.0020.0002] # MYANMAR LETTER YA
+103B ; [.3084.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL YA
+101B ; [.3085.0020.0002] # MYANMAR LETTER RA
+AA73 ; [.3086.0020.0002] # MYANMAR LETTER KHAMTI RA
+AA7A ; [.3087.0020.0002] # MYANMAR LETTER AITON RA
+103C ; [.3088.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL RA
+101C ; [.3089.0020.0002] # MYANMAR LETTER LA
+1060 ; [.308A.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL LA
+101D ; [.308B.0020.0002] # MYANMAR LETTER WA
+103D ; [.308C.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL WA
+1082 ; [.308D.0020.0002] # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1080 ; [.308E.0020.0002] # MYANMAR LETTER SHAN THA
+1050 ; [.308F.0020.0002] # MYANMAR LETTER SHA
+1051 ; [.3090.0020.0002] # MYANMAR LETTER SSA
+1065 ; [.3091.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN THA
+101E ; [.3092.0020.0002] # MYANMAR LETTER SA
+103F ; [.3092.0020.0004][.30CB.0020.0004][.3092.0020.0004] # MYANMAR LETTER GREAT SA
+AA6C ; [.3093.0020.0002] # MYANMAR LETTER KHAMTI SA
+101F ; [.3094.0020.0002] # MYANMAR LETTER HA
+1081 ; [.3095.0020.0002] # MYANMAR LETTER SHAN HA
+AA6D ; [.3096.0020.0002] # MYANMAR LETTER KHAMTI HA
+103E ; [.3097.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL HA
+AA6E ; [.3098.0020.0002] # MYANMAR LETTER KHAMTI HHA
+AA71 ; [.3099.0020.0002] # MYANMAR LETTER KHAMTI XA
+1020 ; [.309A.0020.0002] # MYANMAR LETTER LLA
+A9FA ; [.309B.0020.0002] # MYANMAR LETTER TAI LAING LLA
+105C ; [.309C.0020.0002] # MYANMAR LETTER MON BBA
+105D ; [.309D.0020.0002] # MYANMAR LETTER MON BBE
+106F ; [.309E.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN YWA
+1070 ; [.309F.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN GHWA
+1066 ; [.30A0.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN PWA
+1021 ; [.30A1.0020.0002] # MYANMAR LETTER A
+1022 ; [.30A2.0020.0002] # MYANMAR LETTER SHAN A
+1023 ; [.30A3.0020.0002] # MYANMAR LETTER I
+1024 ; [.30A4.0020.0002] # MYANMAR LETTER II
+1025 ; [.30A5.0020.0002] # MYANMAR LETTER U
+1026 ; [.30A6.0020.0002] # MYANMAR LETTER UU
+1025 102E ; [.30A6.0020.0002] # MYANMAR LETTER UU
+1052 ; [.30A7.0020.0002] # MYANMAR LETTER VOCALIC R
+1053 ; [.30A8.0020.0002] # MYANMAR LETTER VOCALIC RR
+1054 ; [.30A9.0020.0002] # MYANMAR LETTER VOCALIC L
+1055 ; [.30AA.0020.0002] # MYANMAR LETTER VOCALIC LL
+1027 ; [.30AB.0020.0002] # MYANMAR LETTER E
+1028 ; [.30AC.0020.0002] # MYANMAR LETTER MON E
+1029 ; [.30AD.0020.0002] # MYANMAR LETTER O
+102A ; [.30AE.0020.0002] # MYANMAR LETTER AU
+102C ; [.30AF.0020.0002] # MYANMAR VOWEL SIGN AA
+102B ; [.30AF.0020.0004] # MYANMAR VOWEL SIGN TALL AA
+1083 ; [.30B0.0020.0002] # MYANMAR VOWEL SIGN SHAN AA
+1072 ; [.30B1.0020.0002] # MYANMAR VOWEL SIGN KAYAH OE
+109C ; [.30B2.0020.0002] # MYANMAR VOWEL SIGN AITON A
+102D ; [.30B3.0020.0002] # MYANMAR VOWEL SIGN I
+1071 ; [.30B4.0020.0002] # MYANMAR VOWEL SIGN GEBA KAREN I
+102E ; [.30B5.0020.0002] # MYANMAR VOWEL SIGN II
+1033 ; [.30B6.0020.0002] # MYANMAR VOWEL SIGN MON II
+102F ; [.30B7.0020.0002] # MYANMAR VOWEL SIGN U
+1073 ; [.30B8.0020.0002] # MYANMAR VOWEL SIGN KAYAH U
+1074 ; [.30B9.0020.0002] # MYANMAR VOWEL SIGN KAYAH EE
+1030 ; [.30BA.0020.0002] # MYANMAR VOWEL SIGN UU
+1056 ; [.30BB.0020.0002] # MYANMAR VOWEL SIGN VOCALIC R
+1057 ; [.30BC.0020.0002] # MYANMAR VOWEL SIGN VOCALIC RR
+1058 ; [.30BD.0020.0002] # MYANMAR VOWEL SIGN VOCALIC L
+1059 ; [.30BE.0020.0002] # MYANMAR VOWEL SIGN VOCALIC LL
+1031 ; [.30BF.0020.0002] # MYANMAR VOWEL SIGN E
+1084 ; [.30C0.0020.0002] # MYANMAR VOWEL SIGN SHAN E
+1035 ; [.30C1.0020.0002] # MYANMAR VOWEL SIGN E ABOVE
+1085 ; [.30C2.0020.0002] # MYANMAR VOWEL SIGN SHAN E ABOVE
+1032 ; [.30C3.0020.0002] # MYANMAR VOWEL SIGN AI
+109D ; [.30C4.0020.0002] # MYANMAR VOWEL SIGN AITON AI
+1034 ; [.30C5.0020.0002] # MYANMAR VOWEL SIGN MON O
+1062 ; [.30C6.0020.0002] # MYANMAR VOWEL SIGN SGAW KAREN EU
+1067 ; [.30C7.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN EU
+1068 ; [.30C8.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
+A9E5 ; [.30C9.0020.0002] # MYANMAR SIGN SHAN SAW
+1086 ; [.30CA.0020.0002] # MYANMAR VOWEL SIGN SHAN FINAL Y
+1039 ; [.30CB.0020.0002] # MYANMAR SIGN VIRAMA
+103A ; [.30CC.0020.0002] # MYANMAR SIGN ASAT
+1063 ; [.30CD.0020.0002] # MYANMAR TONE MARK SGAW KAREN HATHI
+1064 ; [.30CE.0020.0002] # MYANMAR TONE MARK SGAW KAREN KE PHO
+1069 ; [.30CF.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-1
+106A ; [.30D0.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-2
+106B ; [.30D1.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-3
+106C ; [.30D2.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-4
+106D ; [.30D3.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-5
+1087 ; [.30D4.0020.0002] # MYANMAR SIGN SHAN TONE-2
+108B ; [.30D5.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-2
+1088 ; [.30D6.0020.0002] # MYANMAR SIGN SHAN TONE-3
+108C ; [.30D7.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-3
+108D ; [.30D8.0020.0002] # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+1089 ; [.30D9.0020.0002] # MYANMAR SIGN SHAN TONE-5
+108A ; [.30DA.0020.0002] # MYANMAR SIGN SHAN TONE-6
+108F ; [.30DB.0020.0002] # MYANMAR SIGN RUMAI PALAUNG TONE-5
+109A ; [.30DC.0020.0002] # MYANMAR SIGN KHAMTI TONE-1
+109B ; [.30DD.0020.0002] # MYANMAR SIGN KHAMTI TONE-3
+AA7B ; [.30DE.0020.0002] # MYANMAR SIGN PAO KAREN TONE
+AA7C ; [.30DF.0020.0002] # MYANMAR SIGN TAI LAING TONE-2
+AA7D ; [.30E0.0020.0002] # MYANMAR SIGN TAI LAING TONE-5
+AA74 ; [.30E1.0020.0002] # MYANMAR LOGOGRAM KHAMTI OAY
+AA75 ; [.30E2.0020.0002] # MYANMAR LOGOGRAM KHAMTI QN
+AA76 ; [.30E3.0020.0002] # MYANMAR LOGOGRAM KHAMTI HM
+11103 ; [.30E4.0020.0002] # CHAKMA LETTER AA
+11104 ; [.30E5.0020.0002] # CHAKMA LETTER I
+11105 ; [.30E6.0020.0002] # CHAKMA LETTER U
+11106 ; [.30E7.0020.0002] # CHAKMA LETTER E
+11107 ; [.30E8.0020.0002] # CHAKMA LETTER KAA
+11108 ; [.30E9.0020.0002] # CHAKMA LETTER KHAA
+11109 ; [.30EA.0020.0002] # CHAKMA LETTER GAA
+1110A ; [.30EB.0020.0002] # CHAKMA LETTER GHAA
+1110B ; [.30EC.0020.0002] # CHAKMA LETTER NGAA
+1110C ; [.30ED.0020.0002] # CHAKMA LETTER CAA
+1110D ; [.30EE.0020.0002] # CHAKMA LETTER CHAA
+1110E ; [.30EF.0020.0002] # CHAKMA LETTER JAA
+1110F ; [.30F0.0020.0002] # CHAKMA LETTER JHAA
+11110 ; [.30F1.0020.0002] # CHAKMA LETTER NYAA
+11111 ; [.30F2.0020.0002] # CHAKMA LETTER TTAA
+11112 ; [.30F3.0020.0002] # CHAKMA LETTER TTHAA
+11113 ; [.30F4.0020.0002] # CHAKMA LETTER DDAA
+11114 ; [.30F5.0020.0002] # CHAKMA LETTER DDHAA
+11115 ; [.30F6.0020.0002] # CHAKMA LETTER NNAA
+11116 ; [.30F7.0020.0002] # CHAKMA LETTER TAA
+11117 ; [.30F8.0020.0002] # CHAKMA LETTER THAA
+11118 ; [.30F9.0020.0002] # CHAKMA LETTER DAA
+11119 ; [.30FA.0020.0002] # CHAKMA LETTER DHAA
+1111A ; [.30FB.0020.0002] # CHAKMA LETTER NAA
+1111B ; [.30FC.0020.0002] # CHAKMA LETTER PAA
+1111C ; [.30FD.0020.0002] # CHAKMA LETTER PHAA
+1111D ; [.30FE.0020.0002] # CHAKMA LETTER BAA
+1111E ; [.30FF.0020.0002] # CHAKMA LETTER BHAA
+1111F ; [.3100.0020.0002] # CHAKMA LETTER MAA
+11120 ; [.3101.0020.0002] # CHAKMA LETTER YYAA
+11121 ; [.3102.0020.0002] # CHAKMA LETTER YAA
+11122 ; [.3103.0020.0002] # CHAKMA LETTER RAA
+11123 ; [.3104.0020.0002] # CHAKMA LETTER LAA
+11124 ; [.3105.0020.0002] # CHAKMA LETTER WAA
+11125 ; [.3106.0020.0002] # CHAKMA LETTER SAA
+11126 ; [.3107.0020.0002] # CHAKMA LETTER HAA
+11127 ; [.3108.0020.0002] # CHAKMA VOWEL SIGN A
+11128 ; [.3109.0020.0002] # CHAKMA VOWEL SIGN I
+11129 ; [.310A.0020.0002] # CHAKMA VOWEL SIGN II
+1112A ; [.310B.0020.0002] # CHAKMA VOWEL SIGN U
+1112B ; [.310C.0020.0002] # CHAKMA VOWEL SIGN UU
+1112C ; [.310D.0020.0002] # CHAKMA VOWEL SIGN E
+1112D ; [.310E.0020.0002] # CHAKMA VOWEL SIGN AI
+1112E ; [.310F.0020.0002] # CHAKMA VOWEL SIGN O
+11131 11127 ; [.310F.0020.0002] # CHAKMA VOWEL SIGN O
+1112F ; [.3110.0020.0002] # CHAKMA VOWEL SIGN AU
+11132 11127 ; [.3110.0020.0002] # CHAKMA VOWEL SIGN AU
+11130 ; [.3111.0020.0002] # CHAKMA VOWEL SIGN OI
+11131 ; [.3112.0020.0002] # CHAKMA O MARK
+11132 ; [.3113.0020.0002] # CHAKMA AU MARK
+11133 ; [.3114.0020.0002] # CHAKMA VIRAMA
+11134 ; [.3115.0020.0002] # CHAKMA MAAYYAA
+1780 ; [.3116.0020.0002] # KHMER LETTER KA
+1781 ; [.3117.0020.0002] # KHMER LETTER KHA
+1782 ; [.3118.0020.0002] # KHMER LETTER KO
+1783 ; [.3119.0020.0002] # KHMER LETTER KHO
+1784 ; [.311A.0020.0002] # KHMER LETTER NGO
+1785 ; [.311B.0020.0002] # KHMER LETTER CA
+1786 ; [.311C.0020.0002] # KHMER LETTER CHA
+1787 ; [.311D.0020.0002] # KHMER LETTER CO
+1788 ; [.311E.0020.0002] # KHMER LETTER CHO
+1789 ; [.311F.0020.0002] # KHMER LETTER NYO
+178A ; [.3120.0020.0002] # KHMER LETTER DA
+178B ; [.3121.0020.0002] # KHMER LETTER TTHA
+178C ; [.3122.0020.0002] # KHMER LETTER DO
+178D ; [.3123.0020.0002] # KHMER LETTER TTHO
+178E ; [.3124.0020.0002] # KHMER LETTER NNO
+178F ; [.3125.0020.0002] # KHMER LETTER TA
+1790 ; [.3126.0020.0002] # KHMER LETTER THA
+1791 ; [.3127.0020.0002] # KHMER LETTER TO
+1792 ; [.3128.0020.0002] # KHMER LETTER THO
+1793 ; [.3129.0020.0002] # KHMER LETTER NO
+1794 ; [.312A.0020.0002] # KHMER LETTER BA
+1795 ; [.312B.0020.0002] # KHMER LETTER PHA
+1796 ; [.312C.0020.0002] # KHMER LETTER PO
+1797 ; [.312D.0020.0002] # KHMER LETTER PHO
+1798 ; [.312E.0020.0002] # KHMER LETTER MO
+1799 ; [.312F.0020.0002] # KHMER LETTER YO
+179A ; [.3130.0020.0002] # KHMER LETTER RO
+179B ; [.3131.0020.0002] # KHMER LETTER LO
+179C ; [.3132.0020.0002] # KHMER LETTER VO
+179D ; [.3133.0020.0002] # KHMER LETTER SHA
+179E ; [.3134.0020.0002] # KHMER LETTER SSO
+179F ; [.3135.0020.0002] # KHMER LETTER SA
+17A0 ; [.3136.0020.0002] # KHMER LETTER HA
+17A1 ; [.3137.0020.0002] # KHMER LETTER LA
+17A2 ; [.3138.0020.0002] # KHMER LETTER QA
+17DC ; [.3139.0020.0002] # KHMER SIGN AVAKRAHASANYA
+17A3 ; [.313A.0020.0002] # KHMER INDEPENDENT VOWEL QAQ
+17A4 ; [.313B.0020.0002] # KHMER INDEPENDENT VOWEL QAA
+17A5 ; [.313C.0020.0002] # KHMER INDEPENDENT VOWEL QI
+17A6 ; [.313D.0020.0002] # KHMER INDEPENDENT VOWEL QII
+17A7 ; [.313E.0020.0002] # KHMER INDEPENDENT VOWEL QU
+17A8 ; [.313F.0020.0002] # KHMER INDEPENDENT VOWEL QUK
+17A9 ; [.3140.0020.0002] # KHMER INDEPENDENT VOWEL QUU
+17AA ; [.3141.0020.0002] # KHMER INDEPENDENT VOWEL QUUV
+17AB ; [.3142.0020.0002] # KHMER INDEPENDENT VOWEL RY
+17AC ; [.3143.0020.0002] # KHMER INDEPENDENT VOWEL RYY
+17AD ; [.3144.0020.0002] # KHMER INDEPENDENT VOWEL LY
+17AE ; [.3145.0020.0002] # KHMER INDEPENDENT VOWEL LYY
+17AF ; [.3146.0020.0002] # KHMER INDEPENDENT VOWEL QE
+17B0 ; [.3147.0020.0002] # KHMER INDEPENDENT VOWEL QAI
+17B1 ; [.3148.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE ONE
+17B2 ; [.3149.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE TWO
+17B3 ; [.314A.0020.0002] # KHMER INDEPENDENT VOWEL QAU
+17B6 ; [.314B.0020.0002] # KHMER VOWEL SIGN AA
+17B7 ; [.314C.0020.0002] # KHMER VOWEL SIGN I
+17B8 ; [.314D.0020.0002] # KHMER VOWEL SIGN II
+17B9 ; [.314E.0020.0002] # KHMER VOWEL SIGN Y
+17BA ; [.314F.0020.0002] # KHMER VOWEL SIGN YY
+17BB ; [.3150.0020.0002] # KHMER VOWEL SIGN U
+17BC ; [.3151.0020.0002] # KHMER VOWEL SIGN UU
+17BD ; [.3152.0020.0002] # KHMER VOWEL SIGN UA
+17BE ; [.3153.0020.0002] # KHMER VOWEL SIGN OE
+17BF ; [.3154.0020.0002] # KHMER VOWEL SIGN YA
+17C0 ; [.3155.0020.0002] # KHMER VOWEL SIGN IE
+17C1 ; [.3156.0020.0002] # KHMER VOWEL SIGN E
+17C2 ; [.3157.0020.0002] # KHMER VOWEL SIGN AE
+17C3 ; [.3158.0020.0002] # KHMER VOWEL SIGN AI
+17C4 ; [.3159.0020.0002] # KHMER VOWEL SIGN OO
+17C5 ; [.315A.0020.0002] # KHMER VOWEL SIGN AU
+17D2 ; [.315B.0020.0002] # KHMER SIGN COENG
+1950 ; [.315C.0020.0002] # TAI LE LETTER KA
+1951 ; [.315D.0020.0002] # TAI LE LETTER XA
+1952 ; [.315E.0020.0002] # TAI LE LETTER NGA
+1953 ; [.315F.0020.0002] # TAI LE LETTER TSA
+1954 ; [.3160.0020.0002] # TAI LE LETTER SA
+1955 ; [.3161.0020.0002] # TAI LE LETTER YA
+1956 ; [.3162.0020.0002] # TAI LE LETTER TA
+1957 ; [.3163.0020.0002] # TAI LE LETTER THA
+1958 ; [.3164.0020.0002] # TAI LE LETTER LA
+1959 ; [.3165.0020.0002] # TAI LE LETTER PA
+195A ; [.3166.0020.0002] # TAI LE LETTER PHA
+195B ; [.3167.0020.0002] # TAI LE LETTER MA
+195C ; [.3168.0020.0002] # TAI LE LETTER FA
+195D ; [.3169.0020.0002] # TAI LE LETTER VA
+195E ; [.316A.0020.0002] # TAI LE LETTER HA
+195F ; [.316B.0020.0002] # TAI LE LETTER QA
+1960 ; [.316C.0020.0002] # TAI LE LETTER KHA
+1961 ; [.316D.0020.0002] # TAI LE LETTER TSHA
+1962 ; [.316E.0020.0002] # TAI LE LETTER NA
+1963 ; [.316F.0020.0002] # TAI LE LETTER A
+1964 ; [.3170.0020.0002] # TAI LE LETTER I
+1965 ; [.3171.0020.0002] # TAI LE LETTER EE
+1966 ; [.3172.0020.0002] # TAI LE LETTER EH
+1967 ; [.3173.0020.0002] # TAI LE LETTER U
+1968 ; [.3174.0020.0002] # TAI LE LETTER OO
+1969 ; [.3175.0020.0002] # TAI LE LETTER O
+196A ; [.3176.0020.0002] # TAI LE LETTER UE
+196B ; [.3177.0020.0002] # TAI LE LETTER E
+196C ; [.3178.0020.0002] # TAI LE LETTER AUE
+196D ; [.3179.0020.0002] # TAI LE LETTER AI
+1970 ; [.317A.0020.0002] # TAI LE LETTER TONE-2
+1971 ; [.317B.0020.0002] # TAI LE LETTER TONE-3
+1972 ; [.317C.0020.0002] # TAI LE LETTER TONE-4
+1973 ; [.317D.0020.0002] # TAI LE LETTER TONE-5
+1974 ; [.317E.0020.0002] # TAI LE LETTER TONE-6
+1980 ; [.317F.0020.0002] # NEW TAI LUE LETTER HIGH QA
+19B5 1980 ; [.317F.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH QA>
+19B6 1980 ; [.317F.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH QA>
+19B7 1980 ; [.317F.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH QA>
+19BA 1980 ; [.317F.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH QA>
+1981 ; [.3180.0020.0002] # NEW TAI LUE LETTER LOW QA
+19B5 1981 ; [.3180.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW QA>
+19B6 1981 ; [.3180.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW QA>
+19B7 1981 ; [.3180.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW QA>
+19BA 1981 ; [.3180.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW QA>
+1982 ; [.3181.0020.0002] # NEW TAI LUE LETTER HIGH KA
+19B5 1982 ; [.3181.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH KA>
+19B6 1982 ; [.3181.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH KA>
+19B7 1982 ; [.3181.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH KA>
+19BA 1982 ; [.3181.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH KA>
+1983 ; [.3182.0020.0002] # NEW TAI LUE LETTER HIGH XA
+19B5 1983 ; [.3182.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH XA>
+19B6 1983 ; [.3182.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH XA>
+19B7 1983 ; [.3182.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH XA>
+19BA 1983 ; [.3182.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH XA>
+1984 ; [.3183.0020.0002] # NEW TAI LUE LETTER HIGH NGA
+19B5 1984 ; [.3183.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH NGA>
+19B6 1984 ; [.3183.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH NGA>
+19B7 1984 ; [.3183.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH NGA>
+19BA 1984 ; [.3183.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH NGA>
+1985 ; [.3184.0020.0002] # NEW TAI LUE LETTER LOW KA
+19B5 1985 ; [.3184.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW KA>
+19B6 1985 ; [.3184.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW KA>
+19B7 1985 ; [.3184.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW KA>
+19BA 1985 ; [.3184.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW KA>
+1986 ; [.3185.0020.0002] # NEW TAI LUE LETTER LOW XA
+19B5 1986 ; [.3185.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW XA>
+19B6 1986 ; [.3185.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW XA>
+19B7 1986 ; [.3185.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW XA>
+19BA 1986 ; [.3185.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW XA>
+1987 ; [.3186.0020.0002] # NEW TAI LUE LETTER LOW NGA
+19B5 1987 ; [.3186.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW NGA>
+19B6 1987 ; [.3186.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW NGA>
+19B7 1987 ; [.3186.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW NGA>
+19BA 1987 ; [.3186.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW NGA>
+1988 ; [.3187.0020.0002] # NEW TAI LUE LETTER HIGH TSA
+19B5 1988 ; [.3187.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH TSA>
+19B6 1988 ; [.3187.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH TSA>
+19B7 1988 ; [.3187.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH TSA>
+19BA 1988 ; [.3187.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH TSA>
+1989 ; [.3188.0020.0002] # NEW TAI LUE LETTER HIGH SA
+19B5 1989 ; [.3188.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH SA>
+19B6 1989 ; [.3188.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH SA>
+19B7 1989 ; [.3188.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH SA>
+19BA 1989 ; [.3188.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH SA>
+198A ; [.3189.0020.0002] # NEW TAI LUE LETTER HIGH YA
+19B5 198A ; [.3189.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH YA>
+19B6 198A ; [.3189.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH YA>
+19B7 198A ; [.3189.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH YA>
+19BA 198A ; [.3189.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH YA>
+198B ; [.318A.0020.0002] # NEW TAI LUE LETTER LOW TSA
+19B5 198B ; [.318A.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW TSA>
+19B6 198B ; [.318A.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW TSA>
+19B7 198B ; [.318A.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW TSA>
+19BA 198B ; [.318A.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW TSA>
+198C ; [.318B.0020.0002] # NEW TAI LUE LETTER LOW SA
+19B5 198C ; [.318B.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW SA>
+19B6 198C ; [.318B.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW SA>
+19B7 198C ; [.318B.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW SA>
+19BA 198C ; [.318B.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW SA>
+198D ; [.318C.0020.0002] # NEW TAI LUE LETTER LOW YA
+19B5 198D ; [.318C.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW YA>
+19B6 198D ; [.318C.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW YA>
+19B7 198D ; [.318C.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW YA>
+19BA 198D ; [.318C.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW YA>
+198E ; [.318D.0020.0002] # NEW TAI LUE LETTER HIGH TA
+19B5 198E ; [.318D.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH TA>
+19B6 198E ; [.318D.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH TA>
+19B7 198E ; [.318D.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH TA>
+19BA 198E ; [.318D.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH TA>
+198F ; [.318E.0020.0002] # NEW TAI LUE LETTER HIGH THA
+19B5 198F ; [.318E.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH THA>
+19B6 198F ; [.318E.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH THA>
+19B7 198F ; [.318E.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH THA>
+19BA 198F ; [.318E.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH THA>
+1990 ; [.318F.0020.0002] # NEW TAI LUE LETTER HIGH NA
+19B5 1990 ; [.318F.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH NA>
+19B6 1990 ; [.318F.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH NA>
+19B7 1990 ; [.318F.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH NA>
+19BA 1990 ; [.318F.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH NA>
+1991 ; [.3190.0020.0002] # NEW TAI LUE LETTER LOW TA
+19B5 1991 ; [.3190.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW TA>
+19B6 1991 ; [.3190.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW TA>
+19B7 1991 ; [.3190.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW TA>
+19BA 1991 ; [.3190.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW TA>
+1992 ; [.3191.0020.0002] # NEW TAI LUE LETTER LOW THA
+19B5 1992 ; [.3191.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW THA>
+19B6 1992 ; [.3191.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW THA>
+19B7 1992 ; [.3191.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW THA>
+19BA 1992 ; [.3191.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW THA>
+1993 ; [.3192.0020.0002] # NEW TAI LUE LETTER LOW NA
+19B5 1993 ; [.3192.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW NA>
+19B6 1993 ; [.3192.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW NA>
+19B7 1993 ; [.3192.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW NA>
+19BA 1993 ; [.3192.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW NA>
+1994 ; [.3193.0020.0002] # NEW TAI LUE LETTER HIGH PA
+19B5 1994 ; [.3193.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH PA>
+19B6 1994 ; [.3193.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH PA>
+19B7 1994 ; [.3193.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH PA>
+19BA 1994 ; [.3193.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH PA>
+1995 ; [.3194.0020.0002] # NEW TAI LUE LETTER HIGH PHA
+19B5 1995 ; [.3194.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH PHA>
+19B6 1995 ; [.3194.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH PHA>
+19B7 1995 ; [.3194.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH PHA>
+19BA 1995 ; [.3194.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH PHA>
+1996 ; [.3195.0020.0002] # NEW TAI LUE LETTER HIGH MA
+19B5 1996 ; [.3195.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH MA>
+19B6 1996 ; [.3195.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH MA>
+19B7 1996 ; [.3195.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH MA>
+19BA 1996 ; [.3195.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH MA>
+1997 ; [.3196.0020.0002] # NEW TAI LUE LETTER LOW PA
+19B5 1997 ; [.3196.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW PA>
+19B6 1997 ; [.3196.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW PA>
+19B7 1997 ; [.3196.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW PA>
+19BA 1997 ; [.3196.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW PA>
+1998 ; [.3197.0020.0002] # NEW TAI LUE LETTER LOW PHA
+19B5 1998 ; [.3197.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW PHA>
+19B6 1998 ; [.3197.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW PHA>
+19B7 1998 ; [.3197.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW PHA>
+19BA 1998 ; [.3197.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW PHA>
+1999 ; [.3198.0020.0002] # NEW TAI LUE LETTER LOW MA
+19B5 1999 ; [.3198.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW MA>
+19B6 1999 ; [.3198.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW MA>
+19B7 1999 ; [.3198.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW MA>
+19BA 1999 ; [.3198.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW MA>
+199A ; [.3199.0020.0002] # NEW TAI LUE LETTER HIGH FA
+19B5 199A ; [.3199.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH FA>
+19B6 199A ; [.3199.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH FA>
+19B7 199A ; [.3199.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH FA>
+19BA 199A ; [.3199.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH FA>
+199B ; [.319A.0020.0002] # NEW TAI LUE LETTER HIGH VA
+19B5 199B ; [.319A.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH VA>
+19B6 199B ; [.319A.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH VA>
+19B7 199B ; [.319A.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH VA>
+19BA 199B ; [.319A.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH VA>
+199C ; [.319B.0020.0002] # NEW TAI LUE LETTER HIGH LA
+19B5 199C ; [.319B.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH LA>
+19B6 199C ; [.319B.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH LA>
+19DE ; [.319B.0020.0004][.31B1.0020.0004] # NEW TAI LUE SIGN LAE
+19DF ; [.319B.0020.0004][.31B1.0020.0004][.31BC.0020.0004] # NEW TAI LUE SIGN LAEV
+19B7 199C ; [.319B.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH LA>
+19BA 199C ; [.319B.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH LA>
+199D ; [.319C.0020.0002] # NEW TAI LUE LETTER LOW FA
+19B5 199D ; [.319C.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW FA>
+19B6 199D ; [.319C.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW FA>
+19B7 199D ; [.319C.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW FA>
+19BA 199D ; [.319C.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW FA>
+199E ; [.319D.0020.0002] # NEW TAI LUE LETTER LOW VA
+19B5 199E ; [.319D.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW VA>
+19B6 199E ; [.319D.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW VA>
+19B7 199E ; [.319D.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW VA>
+19BA 199E ; [.319D.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW VA>
+199F ; [.319E.0020.0002] # NEW TAI LUE LETTER LOW LA
+19B5 199F ; [.319E.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW LA>
+19B6 199F ; [.319E.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW LA>
+19B7 199F ; [.319E.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW LA>
+19BA 199F ; [.319E.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW LA>
+19A0 ; [.319F.0020.0002] # NEW TAI LUE LETTER HIGH HA
+19B5 19A0 ; [.319F.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH HA>
+19B6 19A0 ; [.319F.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH HA>
+19B7 19A0 ; [.319F.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH HA>
+19BA 19A0 ; [.319F.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH HA>
+19A1 ; [.31A0.0020.0002] # NEW TAI LUE LETTER HIGH DA
+19B5 19A1 ; [.31A0.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH DA>
+19B6 19A1 ; [.31A0.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH DA>
+19B7 19A1 ; [.31A0.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH DA>
+19BA 19A1 ; [.31A0.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH DA>
+19A2 ; [.31A1.0020.0002] # NEW TAI LUE LETTER HIGH BA
+19B5 19A2 ; [.31A1.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH BA>
+19B6 19A2 ; [.31A1.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH BA>
+19B7 19A2 ; [.31A1.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH BA>
+19BA 19A2 ; [.31A1.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH BA>
+19A3 ; [.31A2.0020.0002] # NEW TAI LUE LETTER LOW HA
+19B5 19A3 ; [.31A2.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW HA>
+19B6 19A3 ; [.31A2.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW HA>
+19B7 19A3 ; [.31A2.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW HA>
+19BA 19A3 ; [.31A2.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW HA>
+19A4 ; [.31A3.0020.0002] # NEW TAI LUE LETTER LOW DA
+19B5 19A4 ; [.31A3.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW DA>
+19B6 19A4 ; [.31A3.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW DA>
+19B7 19A4 ; [.31A3.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW DA>
+19BA 19A4 ; [.31A3.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW DA>
+19A5 ; [.31A4.0020.0002] # NEW TAI LUE LETTER LOW BA
+19B5 19A5 ; [.31A4.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW BA>
+19B6 19A5 ; [.31A4.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW BA>
+19B7 19A5 ; [.31A4.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW BA>
+19BA 19A5 ; [.31A4.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW BA>
+19A6 ; [.31A5.0020.0002] # NEW TAI LUE LETTER HIGH KVA
+19B5 19A6 ; [.31A5.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH KVA>
+19B6 19A6 ; [.31A5.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH KVA>
+19B7 19A6 ; [.31A5.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH KVA>
+19BA 19A6 ; [.31A5.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH KVA>
+19A7 ; [.31A6.0020.0002] # NEW TAI LUE LETTER HIGH XVA
+19B5 19A7 ; [.31A6.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH XVA>
+19B6 19A7 ; [.31A6.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH XVA>
+19B7 19A7 ; [.31A6.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH XVA>
+19BA 19A7 ; [.31A6.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH XVA>
+19A8 ; [.31A7.0020.0002] # NEW TAI LUE LETTER LOW KVA
+19B5 19A8 ; [.31A7.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW KVA>
+19B6 19A8 ; [.31A7.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW KVA>
+19B7 19A8 ; [.31A7.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW KVA>
+19BA 19A8 ; [.31A7.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW KVA>
+19A9 ; [.31A8.0020.0002] # NEW TAI LUE LETTER LOW XVA
+19B5 19A9 ; [.31A8.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW XVA>
+19B6 19A9 ; [.31A8.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW XVA>
+19B7 19A9 ; [.31A8.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW XVA>
+19BA 19A9 ; [.31A8.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW XVA>
+19AA ; [.31A9.0020.0002] # NEW TAI LUE LETTER HIGH SUA
+19B5 19AA ; [.31A9.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH SUA>
+19B6 19AA ; [.31A9.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH SUA>
+19B7 19AA ; [.31A9.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH SUA>
+19BA 19AA ; [.31A9.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH SUA>
+19AB ; [.31AA.0020.0002] # NEW TAI LUE LETTER LOW SUA
+19B5 19AB ; [.31AA.0020.0002][.31B0.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW SUA>
+19B6 19AB ; [.31AA.0020.0002][.31B1.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW SUA>
+19B7 19AB ; [.31AA.0020.0002][.31B2.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW SUA>
+19BA 19AB ; [.31AA.0020.0002][.31B5.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW SUA>
+19B0 ; [.31AB.0020.0002] # NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
+19B1 ; [.31AC.0020.0002] # NEW TAI LUE VOWEL SIGN AA
+19B2 ; [.31AD.0020.0002] # NEW TAI LUE VOWEL SIGN II
+19B3 ; [.31AE.0020.0002] # NEW TAI LUE VOWEL SIGN U
+19B4 ; [.31AF.0020.0002] # NEW TAI LUE VOWEL SIGN UU
+19B5 ; [.31B0.0020.0002] # NEW TAI LUE VOWEL SIGN E
+19B6 ; [.31B1.0020.0002] # NEW TAI LUE VOWEL SIGN AE
+19B7 ; [.31B2.0020.0002] # NEW TAI LUE VOWEL SIGN O
+19B8 ; [.31B3.0020.0002] # NEW TAI LUE VOWEL SIGN OA
+19B9 ; [.31B4.0020.0002] # NEW TAI LUE VOWEL SIGN UE
+19BA ; [.31B5.0020.0002] # NEW TAI LUE VOWEL SIGN AY
+19BB ; [.31B6.0020.0002] # NEW TAI LUE VOWEL SIGN AAY
+19BC ; [.31B7.0020.0002] # NEW TAI LUE VOWEL SIGN UY
+19BD ; [.31B8.0020.0002] # NEW TAI LUE VOWEL SIGN OY
+19BE ; [.31B9.0020.0002] # NEW TAI LUE VOWEL SIGN OAY
+19BF ; [.31BA.0020.0002] # NEW TAI LUE VOWEL SIGN UEY
+19C0 ; [.31BB.0020.0002] # NEW TAI LUE VOWEL SIGN IY
+19C1 ; [.31BC.0020.0002] # NEW TAI LUE LETTER FINAL V
+19C2 ; [.31BD.0020.0002] # NEW TAI LUE LETTER FINAL NG
+19C3 ; [.31BE.0020.0002] # NEW TAI LUE LETTER FINAL N
+19C4 ; [.31BF.0020.0002] # NEW TAI LUE LETTER FINAL M
+19C5 ; [.31C0.0020.0002] # NEW TAI LUE LETTER FINAL K
+19C6 ; [.31C1.0020.0002] # NEW TAI LUE LETTER FINAL D
+19C7 ; [.31C2.0020.0002] # NEW TAI LUE LETTER FINAL B
+19C8 ; [.31C3.0020.0002] # NEW TAI LUE TONE MARK-1
+19C9 ; [.31C4.0020.0002] # NEW TAI LUE TONE MARK-2
+1A20 ; [.31C5.0020.0002] # TAI THAM LETTER HIGH KA
+1A21 ; [.31C6.0020.0002] # TAI THAM LETTER HIGH KHA
+1A22 ; [.31C7.0020.0002] # TAI THAM LETTER HIGH KXA
+1A23 ; [.31C8.0020.0002] # TAI THAM LETTER LOW KA
+1A24 ; [.31C9.0020.0002] # TAI THAM LETTER LOW KXA
+1A25 ; [.31CA.0020.0002] # TAI THAM LETTER LOW KHA
+1A26 ; [.31CB.0020.0002] # TAI THAM LETTER NGA
+1A58 ; [.31CB.0020.0004] # TAI THAM SIGN MAI KANG LAI
+1A59 ; [.31CB.0020.0004] # TAI THAM CONSONANT SIGN FINAL NGA
+1A27 ; [.31CC.0020.0002] # TAI THAM LETTER HIGH CA
+1A28 ; [.31CD.0020.0002] # TAI THAM LETTER HIGH CHA
+1A29 ; [.31CE.0020.0002] # TAI THAM LETTER LOW CA
+1A2A ; [.31CF.0020.0002] # TAI THAM LETTER LOW SA
+1A2B ; [.31D0.0020.0002] # TAI THAM LETTER LOW CHA
+1A2C ; [.31D1.0020.0002] # TAI THAM LETTER NYA
+1A2D ; [.31D2.0020.0002] # TAI THAM LETTER RATA
+1A2E ; [.31D3.0020.0002] # TAI THAM LETTER HIGH RATHA
+1A2F ; [.31D4.0020.0002] # TAI THAM LETTER DA
+1A30 ; [.31D5.0020.0002] # TAI THAM LETTER LOW RATHA
+1A31 ; [.31D6.0020.0002] # TAI THAM LETTER RANA
+1A32 ; [.31D7.0020.0002] # TAI THAM LETTER HIGH TA
+1A33 ; [.31D8.0020.0002] # TAI THAM LETTER HIGH THA
+1A34 ; [.31D9.0020.0002] # TAI THAM LETTER LOW TA
+1A35 ; [.31DA.0020.0002] # TAI THAM LETTER LOW THA
+1A36 ; [.31DB.0020.0002] # TAI THAM LETTER NA
+1A37 ; [.31DC.0020.0002] # TAI THAM LETTER BA
+1A38 ; [.31DD.0020.0002] # TAI THAM LETTER HIGH PA
+1A39 ; [.31DE.0020.0002] # TAI THAM LETTER HIGH PHA
+1A3A ; [.31DF.0020.0002] # TAI THAM LETTER HIGH FA
+1A3B ; [.31E0.0020.0002] # TAI THAM LETTER LOW PA
+1A5A ; [.31E0.0020.0004] # TAI THAM CONSONANT SIGN LOW PA
+1A5B ; [.31E0.0020.0004] # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
+1A3C ; [.31E1.0020.0002] # TAI THAM LETTER LOW FA
+1A3D ; [.31E2.0020.0002] # TAI THAM LETTER LOW PHA
+1A3E ; [.31E3.0020.0002] # TAI THAM LETTER MA
+1A3F ; [.31E4.0020.0002] # TAI THAM LETTER LOW YA
+1A40 ; [.31E5.0020.0002] # TAI THAM LETTER HIGH YA
+1A41 ; [.31E6.0020.0002] # TAI THAM LETTER RA
+1A42 ; [.31E7.0020.0002] # TAI THAM LETTER RUE
+1A43 ; [.31E8.0020.0002] # TAI THAM LETTER LA
+1A44 ; [.31E9.0020.0002] # TAI THAM LETTER LUE
+1A45 ; [.31EA.0020.0002] # TAI THAM LETTER WA
+1A46 ; [.31EB.0020.0002] # TAI THAM LETTER HIGH SHA
+1A54 ; [.31EB.0020.0004][.3211.0020.0004][.31EB.0020.0004] # TAI THAM LETTER GREAT SA
+1A47 ; [.31EC.0020.0002] # TAI THAM LETTER HIGH SSA
+1A48 ; [.31ED.0020.0002] # TAI THAM LETTER HIGH SA
+1A49 ; [.31EE.0020.0002] # TAI THAM LETTER HIGH HA
+1A4A ; [.31EF.0020.0002] # TAI THAM LETTER LLA
+1A4B ; [.31F0.0020.0002] # TAI THAM LETTER A
+1A4C ; [.31F1.0020.0002] # TAI THAM LETTER LOW HA
+1A53 ; [.31F2.0020.0002] # TAI THAM LETTER LAE
+1A6B ; [.31F3.0020.0002] # TAI THAM VOWEL SIGN O
+1A55 ; [.31F4.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL RA
+1A56 ; [.31F5.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL LA
+1A57 ; [.31F6.0020.0002] # TAI THAM CONSONANT SIGN LA TANG LAI
+1A5C ; [.31F7.0020.0002] # TAI THAM CONSONANT SIGN MA
+1A5D ; [.31F8.0020.0002] # TAI THAM CONSONANT SIGN BA
+1A5E ; [.31F9.0020.0002] # TAI THAM CONSONANT SIGN SA
+1A4D ; [.31FA.0020.0002] # TAI THAM LETTER I
+1A4E ; [.31FB.0020.0002] # TAI THAM LETTER II
+1A4F ; [.31FC.0020.0002] # TAI THAM LETTER U
+1A50 ; [.31FD.0020.0002] # TAI THAM LETTER UU
+1A51 ; [.31FE.0020.0002] # TAI THAM LETTER EE
+1A52 ; [.31FF.0020.0002] # TAI THAM LETTER OO
+1A61 ; [.3200.0020.0002] # TAI THAM VOWEL SIGN A
+1A6C ; [.3201.0020.0002] # TAI THAM VOWEL SIGN OA BELOW
+1A62 ; [.3202.0020.0002] # TAI THAM VOWEL SIGN MAI SAT
+1A63 ; [.3203.0020.0002] # TAI THAM VOWEL SIGN AA
+1A64 ; [.3203.0020.0004] # TAI THAM VOWEL SIGN TALL AA
+1A65 ; [.3204.0020.0002] # TAI THAM VOWEL SIGN I
+1A66 ; [.3205.0020.0002] # TAI THAM VOWEL SIGN II
+1A67 ; [.3206.0020.0002] # TAI THAM VOWEL SIGN UE
+1A68 ; [.3207.0020.0002] # TAI THAM VOWEL SIGN UUE
+1A69 ; [.3208.0020.0002] # TAI THAM VOWEL SIGN U
+1A6A ; [.3209.0020.0002] # TAI THAM VOWEL SIGN UU
+1A6E ; [.320A.0020.0002] # TAI THAM VOWEL SIGN E
+1A6F ; [.320B.0020.0002] # TAI THAM VOWEL SIGN AE
+1A73 ; [.320C.0020.0002] # TAI THAM VOWEL SIGN OA ABOVE
+1A70 ; [.320D.0020.0002] # TAI THAM VOWEL SIGN OO
+1A71 ; [.320E.0020.0002] # TAI THAM VOWEL SIGN AI
+1A72 ; [.320F.0020.0002] # TAI THAM VOWEL SIGN THAM AI
+1A6D ; [.3210.0020.0002] # TAI THAM VOWEL SIGN OY
+1A60 ; [.3211.0020.0002] # TAI THAM SIGN SAKOT
+AA00 ; [.3212.0020.0002] # CHAM LETTER A
+AA01 ; [.3213.0020.0002] # CHAM LETTER I
+AA02 ; [.3214.0020.0002] # CHAM LETTER U
+AA03 ; [.3215.0020.0002] # CHAM LETTER E
+AA04 ; [.3216.0020.0002] # CHAM LETTER AI
+AA05 ; [.3217.0020.0002] # CHAM LETTER O
+AA06 ; [.3218.0020.0002] # CHAM LETTER KA
+AA07 ; [.3219.0020.0002] # CHAM LETTER KHA
+AA08 ; [.321A.0020.0002] # CHAM LETTER GA
+AA09 ; [.321B.0020.0002] # CHAM LETTER GHA
+AA0A ; [.321C.0020.0002] # CHAM LETTER NGUE
+AA0B ; [.321D.0020.0002] # CHAM LETTER NGA
+AA0C ; [.321E.0020.0002] # CHAM LETTER CHA
+AA0D ; [.321F.0020.0002] # CHAM LETTER CHHA
+AA0E ; [.3220.0020.0002] # CHAM LETTER JA
+AA0F ; [.3221.0020.0002] # CHAM LETTER JHA
+AA10 ; [.3222.0020.0002] # CHAM LETTER NHUE
+AA11 ; [.3223.0020.0002] # CHAM LETTER NHA
+AA12 ; [.3224.0020.0002] # CHAM LETTER NHJA
+AA13 ; [.3225.0020.0002] # CHAM LETTER TA
+AA14 ; [.3226.0020.0002] # CHAM LETTER THA
+AA15 ; [.3227.0020.0002] # CHAM LETTER DA
+AA16 ; [.3228.0020.0002] # CHAM LETTER DHA
+AA17 ; [.3229.0020.0002] # CHAM LETTER NUE
+AA18 ; [.322A.0020.0002] # CHAM LETTER NA
+AA19 ; [.322B.0020.0002] # CHAM LETTER DDA
+AA1A ; [.322C.0020.0002] # CHAM LETTER PA
+AA1B ; [.322D.0020.0002] # CHAM LETTER PPA
+AA1C ; [.322E.0020.0002] # CHAM LETTER PHA
+AA1D ; [.322F.0020.0002] # CHAM LETTER BA
+AA1E ; [.3230.0020.0002] # CHAM LETTER BHA
+AA1F ; [.3231.0020.0002] # CHAM LETTER MUE
+AA20 ; [.3232.0020.0002] # CHAM LETTER MA
+AA21 ; [.3233.0020.0002] # CHAM LETTER BBA
+AA22 ; [.3234.0020.0002] # CHAM LETTER YA
+AA23 ; [.3235.0020.0002] # CHAM LETTER RA
+AA24 ; [.3236.0020.0002] # CHAM LETTER LA
+AA25 ; [.3237.0020.0002] # CHAM LETTER VA
+AA26 ; [.3238.0020.0002] # CHAM LETTER SSA
+AA27 ; [.3239.0020.0002] # CHAM LETTER SA
+AA28 ; [.323A.0020.0002] # CHAM LETTER HA
+AA33 ; [.323B.0020.0002] # CHAM CONSONANT SIGN YA
+AA34 ; [.323C.0020.0002] # CHAM CONSONANT SIGN RA
+AA35 ; [.323D.0020.0002] # CHAM CONSONANT SIGN LA
+AA36 ; [.323E.0020.0002] # CHAM CONSONANT SIGN WA
+AA29 ; [.323F.0020.0002] # CHAM VOWEL SIGN AA
+AA2A ; [.3240.0020.0002] # CHAM VOWEL SIGN I
+AA2B ; [.3241.0020.0002] # CHAM VOWEL SIGN II
+AA2C ; [.3242.0020.0002] # CHAM VOWEL SIGN EI
+AA2D ; [.3243.0020.0002] # CHAM VOWEL SIGN U
+AA2E ; [.3244.0020.0002] # CHAM VOWEL SIGN OE
+AA2F ; [.3245.0020.0002] # CHAM VOWEL SIGN O
+AA30 ; [.3246.0020.0002] # CHAM VOWEL SIGN AI
+AA31 ; [.3247.0020.0002] # CHAM VOWEL SIGN AU
+AA32 ; [.3248.0020.0002] # CHAM VOWEL SIGN UE
+AA40 ; [.3249.0020.0002] # CHAM LETTER FINAL K
+AA41 ; [.324A.0020.0002] # CHAM LETTER FINAL G
+AA42 ; [.324B.0020.0002] # CHAM LETTER FINAL NG
+AA43 ; [.324C.0020.0002] # CHAM CONSONANT SIGN FINAL NG
+AA44 ; [.324D.0020.0002] # CHAM LETTER FINAL CH
+AA45 ; [.324E.0020.0002] # CHAM LETTER FINAL T
+AA46 ; [.324F.0020.0002] # CHAM LETTER FINAL N
+AA47 ; [.3250.0020.0002] # CHAM LETTER FINAL P
+AA48 ; [.3251.0020.0002] # CHAM LETTER FINAL Y
+AA49 ; [.3252.0020.0002] # CHAM LETTER FINAL R
+AA4A ; [.3253.0020.0002] # CHAM LETTER FINAL L
+AA4B ; [.3254.0020.0002] # CHAM LETTER FINAL SS
+AA4C ; [.3255.0020.0002] # CHAM CONSONANT SIGN FINAL M
+AA4D ; [.3256.0020.0002] # CHAM CONSONANT SIGN FINAL H
+1B05 ; [.3257.0020.0002] # BALINESE LETTER AKARA
+1B06 ; [.3258.0020.0002] # BALINESE LETTER AKARA TEDUNG
+1B05 1B35 ; [.3258.0020.0002] # BALINESE LETTER AKARA TEDUNG
+1B07 ; [.3259.0020.0002] # BALINESE LETTER IKARA
+1B08 ; [.325A.0020.0002] # BALINESE LETTER IKARA TEDUNG
+1B07 1B35 ; [.325A.0020.0002] # BALINESE LETTER IKARA TEDUNG
+1B09 ; [.325B.0020.0002] # BALINESE LETTER UKARA
+1B0A ; [.325C.0020.0002] # BALINESE LETTER UKARA TEDUNG
+1B09 1B35 ; [.325C.0020.0002] # BALINESE LETTER UKARA TEDUNG
+1B0B ; [.325D.0020.0002] # BALINESE LETTER RA REPA
+1B0C ; [.325E.0020.0002] # BALINESE LETTER RA REPA TEDUNG
+1B0B 1B35 ; [.325E.0020.0002] # BALINESE LETTER RA REPA TEDUNG
+1B0D ; [.325F.0020.0002] # BALINESE LETTER LA LENGA
+1B0E ; [.3260.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
+1B0D 1B35 ; [.3260.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
+1B0F ; [.3261.0020.0002] # BALINESE LETTER EKARA
+1B10 ; [.3262.0020.0002] # BALINESE LETTER AIKARA
+1B11 ; [.3263.0020.0002] # BALINESE LETTER OKARA
+1B12 ; [.3264.0020.0002] # BALINESE LETTER OKARA TEDUNG
+1B11 1B35 ; [.3264.0020.0002] # BALINESE LETTER OKARA TEDUNG
+1B13 ; [.3265.0020.0002] # BALINESE LETTER KA
+1B45 ; [.3266.0020.0002] # BALINESE LETTER KAF SASAK
+1B46 ; [.3267.0020.0002] # BALINESE LETTER KHOT SASAK
+1B14 ; [.3268.0020.0002] # BALINESE LETTER KA MAHAPRANA
+1B15 ; [.3269.0020.0002] # BALINESE LETTER GA
+1B16 ; [.326A.0020.0002] # BALINESE LETTER GA GORA
+1B17 ; [.326B.0020.0002] # BALINESE LETTER NGA
+1B18 ; [.326C.0020.0002] # BALINESE LETTER CA
+1B19 ; [.326D.0020.0002] # BALINESE LETTER CA LACA
+1B1A ; [.326E.0020.0002] # BALINESE LETTER JA
+1B1B ; [.326F.0020.0002] # BALINESE LETTER JA JERA
+1B1C ; [.3270.0020.0002] # BALINESE LETTER NYA
+1B1D ; [.3271.0020.0002] # BALINESE LETTER TA LATIK
+1B1E ; [.3272.0020.0002] # BALINESE LETTER TA MURDA MAHAPRANA
+1B1F ; [.3273.0020.0002] # BALINESE LETTER DA MURDA ALPAPRANA
+1B20 ; [.3274.0020.0002] # BALINESE LETTER DA MURDA MAHAPRANA
+1B21 ; [.3275.0020.0002] # BALINESE LETTER NA RAMBAT
+1B22 ; [.3276.0020.0002] # BALINESE LETTER TA
+1B47 ; [.3277.0020.0002] # BALINESE LETTER TZIR SASAK
+1B23 ; [.3278.0020.0002] # BALINESE LETTER TA TAWA
+1B24 ; [.3279.0020.0002] # BALINESE LETTER DA
+1B25 ; [.327A.0020.0002] # BALINESE LETTER DA MADU
+1B26 ; [.327B.0020.0002] # BALINESE LETTER NA
+1B27 ; [.327C.0020.0002] # BALINESE LETTER PA
+1B48 ; [.327D.0020.0002] # BALINESE LETTER EF SASAK
+1B28 ; [.327E.0020.0002] # BALINESE LETTER PA KAPAL
+1B29 ; [.327F.0020.0002] # BALINESE LETTER BA
+1B2A ; [.3280.0020.0002] # BALINESE LETTER BA KEMBANG
+1B2B ; [.3281.0020.0002] # BALINESE LETTER MA
+1B2C ; [.3282.0020.0002] # BALINESE LETTER YA
+1B2D ; [.3283.0020.0002] # BALINESE LETTER RA
+1B2E ; [.3284.0020.0002] # BALINESE LETTER LA
+1B2F ; [.3285.0020.0002] # BALINESE LETTER WA
+1B49 ; [.3286.0020.0002] # BALINESE LETTER VE SASAK
+1B30 ; [.3287.0020.0002] # BALINESE LETTER SA SAGA
+1B31 ; [.3288.0020.0002] # BALINESE LETTER SA SAPA
+1B32 ; [.3289.0020.0002] # BALINESE LETTER SA
+1B4A ; [.328A.0020.0002] # BALINESE LETTER ZAL SASAK
+1B4B ; [.328B.0020.0002] # BALINESE LETTER ASYURA SASAK
+1B33 ; [.328C.0020.0002] # BALINESE LETTER HA
+1B35 ; [.328D.0020.0002] # BALINESE VOWEL SIGN TEDUNG
+1B36 ; [.328E.0020.0002] # BALINESE VOWEL SIGN ULU
+1B37 ; [.328F.0020.0002] # BALINESE VOWEL SIGN ULU SARI
+1B38 ; [.3290.0020.0002] # BALINESE VOWEL SIGN SUKU
+1B39 ; [.3291.0020.0002] # BALINESE VOWEL SIGN SUKU ILUT
+1B3A ; [.3292.0020.0002] # BALINESE VOWEL SIGN RA REPA
+1B3B ; [.3293.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3A 1B35 ; [.3293.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C ; [.3294.0020.0002] # BALINESE VOWEL SIGN LA LENGA
+1B3D ; [.3295.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B3C 1B35 ; [.3295.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B3E ; [.3296.0020.0002] # BALINESE VOWEL SIGN TALING
+1B3F ; [.3297.0020.0002] # BALINESE VOWEL SIGN TALING REPA
+1B40 ; [.3298.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
+1B3E 1B35 ; [.3298.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
+1B41 ; [.3299.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B3F 1B35 ; [.3299.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42 ; [.329A.0020.0002] # BALINESE VOWEL SIGN PEPET
+1B43 ; [.329B.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
+1B42 1B35 ; [.329B.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
+1B44 ; [.329C.0020.0002] # BALINESE ADEG ADEG
+A984 ; [.329D.0020.0002] # JAVANESE LETTER A
+A985 ; [.329E.0020.0002] # JAVANESE LETTER I KAWI
+A986 ; [.329F.0020.0002] # JAVANESE LETTER I
+A987 ; [.32A0.0020.0002] # JAVANESE LETTER II
+A988 ; [.32A1.0020.0002] # JAVANESE LETTER U
+A989 ; [.32A2.0020.0002] # JAVANESE LETTER PA CEREK
+A98A ; [.32A3.0020.0002] # JAVANESE LETTER NGA LELET
+A98B ; [.32A4.0020.0002] # JAVANESE LETTER NGA LELET RASWADI
+A98C ; [.32A5.0020.0002] # JAVANESE LETTER E
+A98D ; [.32A6.0020.0002] # JAVANESE LETTER AI
+A98E ; [.32A7.0020.0002] # JAVANESE LETTER O
+A98F ; [.32A8.0020.0002] # JAVANESE LETTER KA
+A990 ; [.32A9.0020.0002] # JAVANESE LETTER KA SASAK
+A991 ; [.32AA.0020.0002] # JAVANESE LETTER KA MURDA
+A992 ; [.32AB.0020.0002] # JAVANESE LETTER GA
+A993 ; [.32AC.0020.0002] # JAVANESE LETTER GA MURDA
+A994 ; [.32AD.0020.0002] # JAVANESE LETTER NGA
+A995 ; [.32AE.0020.0002] # JAVANESE LETTER CA
+A996 ; [.32AF.0020.0002] # JAVANESE LETTER CA MURDA
+A997 ; [.32B0.0020.0002] # JAVANESE LETTER JA
+A998 ; [.32B1.0020.0002] # JAVANESE LETTER NYA MURDA
+A999 ; [.32B2.0020.0002] # JAVANESE LETTER JA MAHAPRANA
+A99A ; [.32B3.0020.0002] # JAVANESE LETTER NYA
+A99B ; [.32B4.0020.0002] # JAVANESE LETTER TTA
+A99C ; [.32B5.0020.0002] # JAVANESE LETTER TTA MAHAPRANA
+A99D ; [.32B6.0020.0002] # JAVANESE LETTER DDA
+A99E ; [.32B7.0020.0002] # JAVANESE LETTER DDA MAHAPRANA
+A99F ; [.32B8.0020.0002] # JAVANESE LETTER NA MURDA
+A9A0 ; [.32B9.0020.0002] # JAVANESE LETTER TA
+A9A1 ; [.32BA.0020.0002] # JAVANESE LETTER TA MURDA
+A9A2 ; [.32BB.0020.0002] # JAVANESE LETTER DA
+A9A3 ; [.32BC.0020.0002] # JAVANESE LETTER DA MAHAPRANA
+A9A4 ; [.32BD.0020.0002] # JAVANESE LETTER NA
+A9A5 ; [.32BE.0020.0002] # JAVANESE LETTER PA
+A9A6 ; [.32BF.0020.0002] # JAVANESE LETTER PA MURDA
+A9A7 ; [.32C0.0020.0002] # JAVANESE LETTER BA
+A9A8 ; [.32C1.0020.0002] # JAVANESE LETTER BA MURDA
+A9A9 ; [.32C2.0020.0002] # JAVANESE LETTER MA
+A9AA ; [.32C3.0020.0002] # JAVANESE LETTER YA
+A9BE ; [.32C4.0020.0002] # JAVANESE CONSONANT SIGN PENGKAL
+A9AB ; [.32C5.0020.0002] # JAVANESE LETTER RA
+A9AC ; [.32C5.0020.0004] # JAVANESE LETTER RA AGUNG
+A9BF ; [.32C6.0020.0002] # JAVANESE CONSONANT SIGN CAKRA
+A9AD ; [.32C7.0020.0002] # JAVANESE LETTER LA
+A9AE ; [.32C8.0020.0002] # JAVANESE LETTER WA
+A9AF ; [.32C9.0020.0002] # JAVANESE LETTER SA MURDA
+A9B0 ; [.32CA.0020.0002] # JAVANESE LETTER SA MAHAPRANA
+A9B1 ; [.32CB.0020.0002] # JAVANESE LETTER SA
+A9B2 ; [.32CC.0020.0002] # JAVANESE LETTER HA
+A9B4 ; [.32CD.0020.0002] # JAVANESE VOWEL SIGN TARUNG
+A9BC ; [.32CE.0020.0002] # JAVANESE VOWEL SIGN PEPET
+A9B6 ; [.32CF.0020.0002] # JAVANESE VOWEL SIGN WULU
+A9B7 ; [.32D0.0020.0002] # JAVANESE VOWEL SIGN WULU MELIK
+A9B8 ; [.32D1.0020.0002] # JAVANESE VOWEL SIGN SUKU
+A9B9 ; [.32D2.0020.0002] # JAVANESE VOWEL SIGN SUKU MENDUT
+A9BD ; [.32D3.0020.0002] # JAVANESE CONSONANT SIGN KERET
+A9BA ; [.32D4.0020.0002] # JAVANESE VOWEL SIGN TALING
+A9BB ; [.32D5.0020.0002] # JAVANESE VOWEL SIGN DIRGA MURE
+A9B5 ; [.32D6.0020.0002] # JAVANESE VOWEL SIGN TOLONG
+A9C0 ; [.32D7.0020.0002] # JAVANESE PANGKON
+1880 ; [.32D8.0020.0002] # MONGOLIAN LETTER ALI GALI ANUSVARA ONE
+1881 ; [.32D9.0020.0002] # MONGOLIAN LETTER ALI GALI VISARGA ONE
+1882 ; [.32DA.0020.0002] # MONGOLIAN LETTER ALI GALI DAMARU
+1883 ; [.32DB.0020.0002] # MONGOLIAN LETTER ALI GALI UBADAMA
+1884 ; [.32DC.0020.0002] # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885 ; [.32DD.0020.0002] # MONGOLIAN LETTER ALI GALI BALUDA
+1886 ; [.32DE.0020.0002] # MONGOLIAN LETTER ALI GALI THREE BALUDA
+1843 ; [.32DF.0020.0002] # MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1820 ; [.32E0.0020.0002] # MONGOLIAN LETTER A
+1887 ; [.32E1.0020.0002] # MONGOLIAN LETTER ALI GALI A
+1821 ; [.32E2.0020.0002] # MONGOLIAN LETTER E
+1844 ; [.32E3.0020.0002] # MONGOLIAN LETTER TODO E
+185D ; [.32E4.0020.0002] # MONGOLIAN LETTER SIBE E
+1822 ; [.32E5.0020.0002] # MONGOLIAN LETTER I
+1845 ; [.32E6.0020.0002] # MONGOLIAN LETTER TODO I
+185E ; [.32E7.0020.0002] # MONGOLIAN LETTER SIBE I
+1873 ; [.32E8.0020.0002] # MONGOLIAN LETTER MANCHU I
+1888 ; [.32E9.0020.0002] # MONGOLIAN LETTER ALI GALI I
+185F ; [.32EA.0020.0002] # MONGOLIAN LETTER SIBE IY
+1823 ; [.32EB.0020.0002] # MONGOLIAN LETTER O
+1846 ; [.32EC.0020.0002] # MONGOLIAN LETTER TODO O
+1824 ; [.32ED.0020.0002] # MONGOLIAN LETTER U
+1847 ; [.32EE.0020.0002] # MONGOLIAN LETTER TODO U
+1861 ; [.32EF.0020.0002] # MONGOLIAN LETTER SIBE U
+1825 ; [.32F0.0020.0002] # MONGOLIAN LETTER OE
+1848 ; [.32F1.0020.0002] # MONGOLIAN LETTER TODO OE
+1826 ; [.32F2.0020.0002] # MONGOLIAN LETTER UE
+1849 ; [.32F3.0020.0002] # MONGOLIAN LETTER TODO UE
+1860 ; [.32F4.0020.0002] # MONGOLIAN LETTER SIBE UE
+1827 ; [.32F5.0020.0002] # MONGOLIAN LETTER EE
+1828 ; [.32F6.0020.0002] # MONGOLIAN LETTER NA
+1829 ; [.32F7.0020.0002] # MONGOLIAN LETTER ANG
+184A ; [.32F8.0020.0002] # MONGOLIAN LETTER TODO ANG
+1862 ; [.32F9.0020.0002] # MONGOLIAN LETTER SIBE ANG
+188A ; [.32FA.0020.0002] # MONGOLIAN LETTER ALI GALI NGA
+189B ; [.32FB.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI NGA
+182A ; [.32FC.0020.0002] # MONGOLIAN LETTER BA
+184B ; [.32FD.0020.0002] # MONGOLIAN LETTER TODO BA
+182B ; [.32FE.0020.0002] # MONGOLIAN LETTER PA
+184C ; [.32FF.0020.0002] # MONGOLIAN LETTER TODO PA
+1866 ; [.3300.0020.0002] # MONGOLIAN LETTER SIBE PA
+182C ; [.3301.0020.0002] # MONGOLIAN LETTER QA
+184D ; [.3302.0020.0002] # MONGOLIAN LETTER TODO QA
+182D ; [.3303.0020.0002] # MONGOLIAN LETTER GA
+184E ; [.3304.0020.0002] # MONGOLIAN LETTER TODO GA
+1864 ; [.3305.0020.0002] # MONGOLIAN LETTER SIBE GA
+189A ; [.3306.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI GHA
+1865 ; [.3307.0020.0002] # MONGOLIAN LETTER SIBE HA
+182E ; [.3308.0020.0002] # MONGOLIAN LETTER MA
+184F ; [.3309.0020.0002] # MONGOLIAN LETTER TODO MA
+182F ; [.330A.0020.0002] # MONGOLIAN LETTER LA
+1830 ; [.330B.0020.0002] # MONGOLIAN LETTER SA
+1831 ; [.330C.0020.0002] # MONGOLIAN LETTER SHA
+1867 ; [.330D.0020.0002] # MONGOLIAN LETTER SIBE SHA
+189C ; [.330E.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CA
+189D ; [.330F.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI JHA
+18A2 ; [.3310.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI SSA
+18A4 ; [.3311.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZHA
+18A5 ; [.3312.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZA
+1832 ; [.3313.0020.0002] # MONGOLIAN LETTER TA
+1850 ; [.3314.0020.0002] # MONGOLIAN LETTER TODO TA
+1868 ; [.3315.0020.0002] # MONGOLIAN LETTER SIBE TA
+1833 ; [.3316.0020.0002] # MONGOLIAN LETTER DA
+1851 ; [.3317.0020.0002] # MONGOLIAN LETTER TODO DA
+1869 ; [.3318.0020.0002] # MONGOLIAN LETTER SIBE DA
+1834 ; [.3319.0020.0002] # MONGOLIAN LETTER CHA
+1852 ; [.331A.0020.0002] # MONGOLIAN LETTER TODO CHA
+1871 ; [.331B.0020.0002] # MONGOLIAN LETTER SIBE CHA
+185C ; [.331C.0020.0002] # MONGOLIAN LETTER TODO DZA
+188B ; [.331D.0020.0002] # MONGOLIAN LETTER ALI GALI CA
+1835 ; [.331E.0020.0002] # MONGOLIAN LETTER JA
+1853 ; [.331F.0020.0002] # MONGOLIAN LETTER TODO JA
+186A ; [.3320.0020.0002] # MONGOLIAN LETTER SIBE JA
+1877 ; [.3321.0020.0002] # MONGOLIAN LETTER MANCHU ZHA
+1836 ; [.3322.0020.0002] # MONGOLIAN LETTER YA
+1855 ; [.3323.0020.0002] # MONGOLIAN LETTER TODO YA
+1872 ; [.3324.0020.0002] # MONGOLIAN LETTER SIBE ZHA
+1837 ; [.3325.0020.0002] # MONGOLIAN LETTER RA
+1875 ; [.3326.0020.0002] # MONGOLIAN LETTER MANCHU RA
+1838 ; [.3327.0020.0002] # MONGOLIAN LETTER WA
+1856 ; [.3328.0020.0002] # MONGOLIAN LETTER TODO WA
+1839 ; [.3329.0020.0002] # MONGOLIAN LETTER FA
+186B ; [.332A.0020.0002] # MONGOLIAN LETTER SIBE FA
+1876 ; [.332B.0020.0002] # MONGOLIAN LETTER MANCHU FA
+183A ; [.332C.0020.0002] # MONGOLIAN LETTER KA
+1857 ; [.332D.0020.0002] # MONGOLIAN LETTER TODO KA
+1863 ; [.332E.0020.0002] # MONGOLIAN LETTER SIBE KA
+1874 ; [.332F.0020.0002] # MONGOLIAN LETTER MANCHU KA
+1889 ; [.3330.0020.0002] # MONGOLIAN LETTER ALI GALI KA
+183B ; [.3331.0020.0002] # MONGOLIAN LETTER KHA
+183C ; [.3332.0020.0002] # MONGOLIAN LETTER TSA
+1854 ; [.3333.0020.0002] # MONGOLIAN LETTER TODO TSA
+186E ; [.3334.0020.0002] # MONGOLIAN LETTER SIBE TSA
+183D ; [.3335.0020.0002] # MONGOLIAN LETTER ZA
+186F ; [.3336.0020.0002] # MONGOLIAN LETTER SIBE ZA
+1858 ; [.3337.0020.0002] # MONGOLIAN LETTER TODO GAA
+186C ; [.3338.0020.0002] # MONGOLIAN LETTER SIBE GAA
+183E ; [.3339.0020.0002] # MONGOLIAN LETTER HAA
+1859 ; [.333A.0020.0002] # MONGOLIAN LETTER TODO HAA
+186D ; [.333B.0020.0002] # MONGOLIAN LETTER SIBE HAA
+183F ; [.333C.0020.0002] # MONGOLIAN LETTER ZRA
+1840 ; [.333D.0020.0002] # MONGOLIAN LETTER LHA
+1841 ; [.333E.0020.0002] # MONGOLIAN LETTER ZHI
+1842 ; [.333F.0020.0002] # MONGOLIAN LETTER CHI
+185A ; [.3340.0020.0002] # MONGOLIAN LETTER TODO JIA
+185B ; [.3341.0020.0002] # MONGOLIAN LETTER TODO NIA
+1870 ; [.3342.0020.0002] # MONGOLIAN LETTER SIBE RAA
+188C ; [.3343.0020.0002] # MONGOLIAN LETTER ALI GALI TTA
+189E ; [.3344.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TTA
+188D ; [.3345.0020.0002] # MONGOLIAN LETTER ALI GALI TTHA
+188E ; [.3346.0020.0002] # MONGOLIAN LETTER ALI GALI DDA
+189F ; [.3347.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DDHA
+188F ; [.3348.0020.0002] # MONGOLIAN LETTER ALI GALI NNA
+1890 ; [.3349.0020.0002] # MONGOLIAN LETTER ALI GALI TA
+1898 ; [.334A.0020.0002] # MONGOLIAN LETTER TODO ALI GALI TA
+18A0 ; [.334B.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TA
+1891 ; [.334C.0020.0002] # MONGOLIAN LETTER ALI GALI DA
+18A1 ; [.334D.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DHA
+1892 ; [.334E.0020.0002] # MONGOLIAN LETTER ALI GALI PA
+1893 ; [.334F.0020.0002] # MONGOLIAN LETTER ALI GALI PHA
+18A8 ; [.3350.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI BHA
+1894 ; [.3351.0020.0002] # MONGOLIAN LETTER ALI GALI SSA
+18A3 ; [.3352.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CYA
+1895 ; [.3353.0020.0002] # MONGOLIAN LETTER ALI GALI ZHA
+1899 ; [.3354.0020.0002] # MONGOLIAN LETTER TODO ALI GALI ZHA
+1896 ; [.3355.0020.0002] # MONGOLIAN LETTER ALI GALI ZA
+1897 ; [.3356.0020.0002] # MONGOLIAN LETTER ALI GALI AH
+18A6 ; [.3357.0020.0002] # MONGOLIAN LETTER ALI GALI HALF U
+18A7 ; [.3358.0020.0002] # MONGOLIAN LETTER ALI GALI HALF YA
+18AA ; [.3359.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI LHA
+18A9 ; [.335A.0020.0002] # MONGOLIAN LETTER ALI GALI DAGALGA
+1C5A ; [.335B.0020.0002] # OL CHIKI LETTER LA
+1C5B ; [.335C.0020.0002] # OL CHIKI LETTER AT
+1C5C ; [.335D.0020.0002] # OL CHIKI LETTER AG
+1C5D ; [.335E.0020.0002] # OL CHIKI LETTER ANG
+1C5E ; [.335F.0020.0002] # OL CHIKI LETTER AL
+1C5F ; [.3360.0020.0002] # OL CHIKI LETTER LAA
+1C60 ; [.3361.0020.0002] # OL CHIKI LETTER AAK
+1C61 ; [.3362.0020.0002] # OL CHIKI LETTER AAJ
+1C62 ; [.3363.0020.0002] # OL CHIKI LETTER AAM
+1C63 ; [.3364.0020.0002] # OL CHIKI LETTER AAW
+1C64 ; [.3365.0020.0002] # OL CHIKI LETTER LI
+1C65 ; [.3366.0020.0002] # OL CHIKI LETTER IS
+1C66 ; [.3367.0020.0002] # OL CHIKI LETTER IH
+1C67 ; [.3368.0020.0002] # OL CHIKI LETTER INY
+1C68 ; [.3369.0020.0002] # OL CHIKI LETTER IR
+1C69 ; [.336A.0020.0002] # OL CHIKI LETTER LU
+1C6A ; [.336B.0020.0002] # OL CHIKI LETTER UC
+1C6B ; [.336C.0020.0002] # OL CHIKI LETTER UD
+1C6C ; [.336D.0020.0002] # OL CHIKI LETTER UNN
+1C6D ; [.336E.0020.0002] # OL CHIKI LETTER UY
+1C6E ; [.336F.0020.0002] # OL CHIKI LETTER LE
+1C6F ; [.3370.0020.0002] # OL CHIKI LETTER EP
+1C70 ; [.3371.0020.0002] # OL CHIKI LETTER EDD
+1C71 ; [.3372.0020.0002] # OL CHIKI LETTER EN
+1C72 ; [.3373.0020.0002] # OL CHIKI LETTER ERR
+1C73 ; [.3374.0020.0002] # OL CHIKI LETTER LO
+1C74 ; [.3375.0020.0002] # OL CHIKI LETTER OTT
+1C75 ; [.3376.0020.0002] # OL CHIKI LETTER OB
+1C76 ; [.3377.0020.0002] # OL CHIKI LETTER OV
+1C77 ; [.3378.0020.0002] # OL CHIKI LETTER OH
+1C78 ; [.3379.0020.0002] # OL CHIKI MU TTUDDAG
+1C79 ; [.337A.0020.0002] # OL CHIKI GAAHLAA TTUDDAAG
+1C7A ; [.337B.0020.0002] # OL CHIKI MU-GAAHLAA TTUDDAAG
+1C7B ; [.337C.0020.0002] # OL CHIKI RELAA
+1C7C ; [.337D.0020.0002] # OL CHIKI PHAARKAA
+1C7D ; [.337E.0020.0002] # OL CHIKI AHAD
+AB70 ; [.337F.0020.0002] # CHEROKEE SMALL LETTER A
+13A0 ; [.337F.0020.0008] # CHEROKEE LETTER A
+AB71 ; [.3380.0020.0002] # CHEROKEE SMALL LETTER E
+13A1 ; [.3380.0020.0008] # CHEROKEE LETTER E
+AB72 ; [.3381.0020.0002] # CHEROKEE SMALL LETTER I
+13A2 ; [.3381.0020.0008] # CHEROKEE LETTER I
+AB73 ; [.3382.0020.0002] # CHEROKEE SMALL LETTER O
+13A3 ; [.3382.0020.0008] # CHEROKEE LETTER O
+AB74 ; [.3383.0020.0002] # CHEROKEE SMALL LETTER U
+13A4 ; [.3383.0020.0008] # CHEROKEE LETTER U
+AB75 ; [.3384.0020.0002] # CHEROKEE SMALL LETTER V
+13A5 ; [.3384.0020.0008] # CHEROKEE LETTER V
+AB76 ; [.3385.0020.0002] # CHEROKEE SMALL LETTER GA
+13A6 ; [.3385.0020.0008] # CHEROKEE LETTER GA
+AB77 ; [.3386.0020.0002] # CHEROKEE SMALL LETTER KA
+13A7 ; [.3386.0020.0008] # CHEROKEE LETTER KA
+AB78 ; [.3387.0020.0002] # CHEROKEE SMALL LETTER GE
+13A8 ; [.3387.0020.0008] # CHEROKEE LETTER GE
+AB79 ; [.3388.0020.0002] # CHEROKEE SMALL LETTER GI
+13A9 ; [.3388.0020.0008] # CHEROKEE LETTER GI
+AB7A ; [.3389.0020.0002] # CHEROKEE SMALL LETTER GO
+13AA ; [.3389.0020.0008] # CHEROKEE LETTER GO
+AB7B ; [.338A.0020.0002] # CHEROKEE SMALL LETTER GU
+13AB ; [.338A.0020.0008] # CHEROKEE LETTER GU
+AB7C ; [.338B.0020.0002] # CHEROKEE SMALL LETTER GV
+13AC ; [.338B.0020.0008] # CHEROKEE LETTER GV
+AB7D ; [.338C.0020.0002] # CHEROKEE SMALL LETTER HA
+13AD ; [.338C.0020.0008] # CHEROKEE LETTER HA
+AB7E ; [.338D.0020.0002] # CHEROKEE SMALL LETTER HE
+13AE ; [.338D.0020.0008] # CHEROKEE LETTER HE
+AB7F ; [.338E.0020.0002] # CHEROKEE SMALL LETTER HI
+13AF ; [.338E.0020.0008] # CHEROKEE LETTER HI
+AB80 ; [.338F.0020.0002] # CHEROKEE SMALL LETTER HO
+13B0 ; [.338F.0020.0008] # CHEROKEE LETTER HO
+AB81 ; [.3390.0020.0002] # CHEROKEE SMALL LETTER HU
+13B1 ; [.3390.0020.0008] # CHEROKEE LETTER HU
+AB82 ; [.3391.0020.0002] # CHEROKEE SMALL LETTER HV
+13B2 ; [.3391.0020.0008] # CHEROKEE LETTER HV
+AB83 ; [.3392.0020.0002] # CHEROKEE SMALL LETTER LA
+13B3 ; [.3392.0020.0008] # CHEROKEE LETTER LA
+AB84 ; [.3393.0020.0002] # CHEROKEE SMALL LETTER LE
+13B4 ; [.3393.0020.0008] # CHEROKEE LETTER LE
+AB85 ; [.3394.0020.0002] # CHEROKEE SMALL LETTER LI
+13B5 ; [.3394.0020.0008] # CHEROKEE LETTER LI
+AB86 ; [.3395.0020.0002] # CHEROKEE SMALL LETTER LO
+13B6 ; [.3395.0020.0008] # CHEROKEE LETTER LO
+AB87 ; [.3396.0020.0002] # CHEROKEE SMALL LETTER LU
+13B7 ; [.3396.0020.0008] # CHEROKEE LETTER LU
+AB88 ; [.3397.0020.0002] # CHEROKEE SMALL LETTER LV
+13B8 ; [.3397.0020.0008] # CHEROKEE LETTER LV
+AB89 ; [.3398.0020.0002] # CHEROKEE SMALL LETTER MA
+13B9 ; [.3398.0020.0008] # CHEROKEE LETTER MA
+AB8A ; [.3399.0020.0002] # CHEROKEE SMALL LETTER ME
+13BA ; [.3399.0020.0008] # CHEROKEE LETTER ME
+AB8B ; [.339A.0020.0002] # CHEROKEE SMALL LETTER MI
+13BB ; [.339A.0020.0008] # CHEROKEE LETTER MI
+AB8C ; [.339B.0020.0002] # CHEROKEE SMALL LETTER MO
+13BC ; [.339B.0020.0008] # CHEROKEE LETTER MO
+AB8D ; [.339C.0020.0002] # CHEROKEE SMALL LETTER MU
+13BD ; [.339C.0020.0008] # CHEROKEE LETTER MU
+AB8E ; [.339D.0020.0002] # CHEROKEE SMALL LETTER NA
+13BE ; [.339D.0020.0008] # CHEROKEE LETTER NA
+AB8F ; [.339E.0020.0002] # CHEROKEE SMALL LETTER HNA
+13BF ; [.339E.0020.0008] # CHEROKEE LETTER HNA
+AB90 ; [.339F.0020.0002] # CHEROKEE SMALL LETTER NAH
+13C0 ; [.339F.0020.0008] # CHEROKEE LETTER NAH
+AB91 ; [.33A0.0020.0002] # CHEROKEE SMALL LETTER NE
+13C1 ; [.33A0.0020.0008] # CHEROKEE LETTER NE
+AB92 ; [.33A1.0020.0002] # CHEROKEE SMALL LETTER NI
+13C2 ; [.33A1.0020.0008] # CHEROKEE LETTER NI
+AB93 ; [.33A2.0020.0002] # CHEROKEE SMALL LETTER NO
+13C3 ; [.33A2.0020.0008] # CHEROKEE LETTER NO
+AB94 ; [.33A3.0020.0002] # CHEROKEE SMALL LETTER NU
+13C4 ; [.33A3.0020.0008] # CHEROKEE LETTER NU
+AB95 ; [.33A4.0020.0002] # CHEROKEE SMALL LETTER NV
+13C5 ; [.33A4.0020.0008] # CHEROKEE LETTER NV
+AB96 ; [.33A5.0020.0002] # CHEROKEE SMALL LETTER QUA
+13C6 ; [.33A5.0020.0008] # CHEROKEE LETTER QUA
+AB97 ; [.33A6.0020.0002] # CHEROKEE SMALL LETTER QUE
+13C7 ; [.33A6.0020.0008] # CHEROKEE LETTER QUE
+AB98 ; [.33A7.0020.0002] # CHEROKEE SMALL LETTER QUI
+13C8 ; [.33A7.0020.0008] # CHEROKEE LETTER QUI
+AB99 ; [.33A8.0020.0002] # CHEROKEE SMALL LETTER QUO
+13C9 ; [.33A8.0020.0008] # CHEROKEE LETTER QUO
+AB9A ; [.33A9.0020.0002] # CHEROKEE SMALL LETTER QUU
+13CA ; [.33A9.0020.0008] # CHEROKEE LETTER QUU
+AB9B ; [.33AA.0020.0002] # CHEROKEE SMALL LETTER QUV
+13CB ; [.33AA.0020.0008] # CHEROKEE LETTER QUV
+AB9C ; [.33AB.0020.0002] # CHEROKEE SMALL LETTER SA
+13CC ; [.33AB.0020.0008] # CHEROKEE LETTER SA
+AB9D ; [.33AC.0020.0002] # CHEROKEE SMALL LETTER S
+13CD ; [.33AC.0020.0008] # CHEROKEE LETTER S
+AB9E ; [.33AD.0020.0002] # CHEROKEE SMALL LETTER SE
+13CE ; [.33AD.0020.0008] # CHEROKEE LETTER SE
+AB9F ; [.33AE.0020.0002] # CHEROKEE SMALL LETTER SI
+13CF ; [.33AE.0020.0008] # CHEROKEE LETTER SI
+ABA0 ; [.33AF.0020.0002] # CHEROKEE SMALL LETTER SO
+13D0 ; [.33AF.0020.0008] # CHEROKEE LETTER SO
+ABA1 ; [.33B0.0020.0002] # CHEROKEE SMALL LETTER SU
+13D1 ; [.33B0.0020.0008] # CHEROKEE LETTER SU
+ABA2 ; [.33B1.0020.0002] # CHEROKEE SMALL LETTER SV
+13D2 ; [.33B1.0020.0008] # CHEROKEE LETTER SV
+ABA3 ; [.33B2.0020.0002] # CHEROKEE SMALL LETTER DA
+13D3 ; [.33B2.0020.0008] # CHEROKEE LETTER DA
+ABA4 ; [.33B3.0020.0002] # CHEROKEE SMALL LETTER TA
+13D4 ; [.33B3.0020.0008] # CHEROKEE LETTER TA
+ABA5 ; [.33B4.0020.0002] # CHEROKEE SMALL LETTER DE
+13D5 ; [.33B4.0020.0008] # CHEROKEE LETTER DE
+ABA6 ; [.33B5.0020.0002] # CHEROKEE SMALL LETTER TE
+13D6 ; [.33B5.0020.0008] # CHEROKEE LETTER TE
+ABA7 ; [.33B6.0020.0002] # CHEROKEE SMALL LETTER DI
+13D7 ; [.33B6.0020.0008] # CHEROKEE LETTER DI
+ABA8 ; [.33B7.0020.0002] # CHEROKEE SMALL LETTER TI
+13D8 ; [.33B7.0020.0008] # CHEROKEE LETTER TI
+ABA9 ; [.33B8.0020.0002] # CHEROKEE SMALL LETTER DO
+13D9 ; [.33B8.0020.0008] # CHEROKEE LETTER DO
+ABAA ; [.33B9.0020.0002] # CHEROKEE SMALL LETTER DU
+13DA ; [.33B9.0020.0008] # CHEROKEE LETTER DU
+ABAB ; [.33BA.0020.0002] # CHEROKEE SMALL LETTER DV
+13DB ; [.33BA.0020.0008] # CHEROKEE LETTER DV
+ABAC ; [.33BB.0020.0002] # CHEROKEE SMALL LETTER DLA
+13DC ; [.33BB.0020.0008] # CHEROKEE LETTER DLA
+ABAD ; [.33BC.0020.0002] # CHEROKEE SMALL LETTER TLA
+13DD ; [.33BC.0020.0008] # CHEROKEE LETTER TLA
+ABAE ; [.33BD.0020.0002] # CHEROKEE SMALL LETTER TLE
+13DE ; [.33BD.0020.0008] # CHEROKEE LETTER TLE
+ABAF ; [.33BE.0020.0002] # CHEROKEE SMALL LETTER TLI
+13DF ; [.33BE.0020.0008] # CHEROKEE LETTER TLI
+ABB0 ; [.33BF.0020.0002] # CHEROKEE SMALL LETTER TLO
+13E0 ; [.33BF.0020.0008] # CHEROKEE LETTER TLO
+ABB1 ; [.33C0.0020.0002] # CHEROKEE SMALL LETTER TLU
+13E1 ; [.33C0.0020.0008] # CHEROKEE LETTER TLU
+ABB2 ; [.33C1.0020.0002] # CHEROKEE SMALL LETTER TLV
+13E2 ; [.33C1.0020.0008] # CHEROKEE LETTER TLV
+ABB3 ; [.33C2.0020.0002] # CHEROKEE SMALL LETTER TSA
+13E3 ; [.33C2.0020.0008] # CHEROKEE LETTER TSA
+ABB4 ; [.33C3.0020.0002] # CHEROKEE SMALL LETTER TSE
+13E4 ; [.33C3.0020.0008] # CHEROKEE LETTER TSE
+ABB5 ; [.33C4.0020.0002] # CHEROKEE SMALL LETTER TSI
+13E5 ; [.33C4.0020.0008] # CHEROKEE LETTER TSI
+ABB6 ; [.33C5.0020.0002] # CHEROKEE SMALL LETTER TSO
+13E6 ; [.33C5.0020.0008] # CHEROKEE LETTER TSO
+ABB7 ; [.33C6.0020.0002] # CHEROKEE SMALL LETTER TSU
+13E7 ; [.33C6.0020.0008] # CHEROKEE LETTER TSU
+ABB8 ; [.33C7.0020.0002] # CHEROKEE SMALL LETTER TSV
+13E8 ; [.33C7.0020.0008] # CHEROKEE LETTER TSV
+ABB9 ; [.33C8.0020.0002] # CHEROKEE SMALL LETTER WA
+13E9 ; [.33C8.0020.0008] # CHEROKEE LETTER WA
+ABBA ; [.33C9.0020.0002] # CHEROKEE SMALL LETTER WE
+13EA ; [.33C9.0020.0008] # CHEROKEE LETTER WE
+ABBB ; [.33CA.0020.0002] # CHEROKEE SMALL LETTER WI
+13EB ; [.33CA.0020.0008] # CHEROKEE LETTER WI
+ABBC ; [.33CB.0020.0002] # CHEROKEE SMALL LETTER WO
+13EC ; [.33CB.0020.0008] # CHEROKEE LETTER WO
+ABBD ; [.33CC.0020.0002] # CHEROKEE SMALL LETTER WU
+13ED ; [.33CC.0020.0008] # CHEROKEE LETTER WU
+ABBE ; [.33CD.0020.0002] # CHEROKEE SMALL LETTER WV
+13EE ; [.33CD.0020.0008] # CHEROKEE LETTER WV
+ABBF ; [.33CE.0020.0002] # CHEROKEE SMALL LETTER YA
+13EF ; [.33CE.0020.0008] # CHEROKEE LETTER YA
+13F8 ; [.33CF.0020.0002] # CHEROKEE SMALL LETTER YE
+13F0 ; [.33CF.0020.0008] # CHEROKEE LETTER YE
+13F9 ; [.33D0.0020.0002] # CHEROKEE SMALL LETTER YI
+13F1 ; [.33D0.0020.0008] # CHEROKEE LETTER YI
+13FA ; [.33D1.0020.0002] # CHEROKEE SMALL LETTER YO
+13F2 ; [.33D1.0020.0008] # CHEROKEE LETTER YO
+13FB ; [.33D2.0020.0002] # CHEROKEE SMALL LETTER YU
+13F3 ; [.33D2.0020.0008] # CHEROKEE LETTER YU
+13FC ; [.33D3.0020.0002] # CHEROKEE SMALL LETTER YV
+13F4 ; [.33D3.0020.0008] # CHEROKEE LETTER YV
+13FD ; [.33D4.0020.0002] # CHEROKEE SMALL LETTER MV
+13F5 ; [.33D4.0020.0008] # CHEROKEE LETTER MV
+104D8 ; [.33D5.0020.0002] # OSAGE SMALL LETTER A
+104B0 ; [.33D5.0020.0008] # OSAGE CAPITAL LETTER A
+104D9 ; [.33D6.0020.0002] # OSAGE SMALL LETTER AI
+104B1 ; [.33D6.0020.0008] # OSAGE CAPITAL LETTER AI
+104DA ; [.33D7.0020.0002] # OSAGE SMALL LETTER AIN
+104B2 ; [.33D7.0020.0008] # OSAGE CAPITAL LETTER AIN
+104DB ; [.33D8.0020.0002] # OSAGE SMALL LETTER AH
+104B3 ; [.33D8.0020.0008] # OSAGE CAPITAL LETTER AH
+104DC ; [.33D9.0020.0002] # OSAGE SMALL LETTER BRA
+104B4 ; [.33D9.0020.0008] # OSAGE CAPITAL LETTER BRA
+104DD ; [.33DA.0020.0002] # OSAGE SMALL LETTER CHA
+104B5 ; [.33DA.0020.0008] # OSAGE CAPITAL LETTER CHA
+104DE ; [.33DB.0020.0002] # OSAGE SMALL LETTER EHCHA
+104B6 ; [.33DB.0020.0008] # OSAGE CAPITAL LETTER EHCHA
+104DF ; [.33DC.0020.0002] # OSAGE SMALL LETTER E
+104B7 ; [.33DC.0020.0008] # OSAGE CAPITAL LETTER E
+104E0 ; [.33DD.0020.0002] # OSAGE SMALL LETTER EIN
+104B8 ; [.33DD.0020.0008] # OSAGE CAPITAL LETTER EIN
+104E1 ; [.33DE.0020.0002] # OSAGE SMALL LETTER HA
+104B9 ; [.33DE.0020.0008] # OSAGE CAPITAL LETTER HA
+104E2 ; [.33DF.0020.0002] # OSAGE SMALL LETTER HYA
+104BA ; [.33DF.0020.0008] # OSAGE CAPITAL LETTER HYA
+104E3 ; [.33E0.0020.0002] # OSAGE SMALL LETTER I
+104BB ; [.33E0.0020.0008] # OSAGE CAPITAL LETTER I
+104E4 ; [.33E1.0020.0002] # OSAGE SMALL LETTER KA
+104BC ; [.33E1.0020.0008] # OSAGE CAPITAL LETTER KA
+104E5 ; [.33E2.0020.0002] # OSAGE SMALL LETTER EHKA
+104BD ; [.33E2.0020.0008] # OSAGE CAPITAL LETTER EHKA
+104E6 ; [.33E3.0020.0002] # OSAGE SMALL LETTER KYA
+104BE ; [.33E3.0020.0008] # OSAGE CAPITAL LETTER KYA
+104E7 ; [.33E4.0020.0002] # OSAGE SMALL LETTER LA
+104BF ; [.33E4.0020.0008] # OSAGE CAPITAL LETTER LA
+104E8 ; [.33E5.0020.0002] # OSAGE SMALL LETTER MA
+104C0 ; [.33E5.0020.0008] # OSAGE CAPITAL LETTER MA
+104E9 ; [.33E6.0020.0002] # OSAGE SMALL LETTER NA
+104C1 ; [.33E6.0020.0008] # OSAGE CAPITAL LETTER NA
+104EA ; [.33E7.0020.0002] # OSAGE SMALL LETTER O
+104C2 ; [.33E7.0020.0008] # OSAGE CAPITAL LETTER O
+104EB ; [.33E8.0020.0002] # OSAGE SMALL LETTER OIN
+104C3 ; [.33E8.0020.0008] # OSAGE CAPITAL LETTER OIN
+104EC ; [.33E9.0020.0002] # OSAGE SMALL LETTER PA
+104C4 ; [.33E9.0020.0008] # OSAGE CAPITAL LETTER PA
+104ED ; [.33EA.0020.0002] # OSAGE SMALL LETTER EHPA
+104C5 ; [.33EA.0020.0008] # OSAGE CAPITAL LETTER EHPA
+104EE ; [.33EB.0020.0002] # OSAGE SMALL LETTER SA
+104C6 ; [.33EB.0020.0008] # OSAGE CAPITAL LETTER SA
+104EF ; [.33EC.0020.0002] # OSAGE SMALL LETTER SHA
+104C7 ; [.33EC.0020.0008] # OSAGE CAPITAL LETTER SHA
+104F0 ; [.33ED.0020.0002] # OSAGE SMALL LETTER TA
+104C8 ; [.33ED.0020.0008] # OSAGE CAPITAL LETTER TA
+104F1 ; [.33EE.0020.0002] # OSAGE SMALL LETTER EHTA
+104C9 ; [.33EE.0020.0008] # OSAGE CAPITAL LETTER EHTA
+104F2 ; [.33EF.0020.0002] # OSAGE SMALL LETTER TSA
+104CA ; [.33EF.0020.0008] # OSAGE CAPITAL LETTER TSA
+104F3 ; [.33F0.0020.0002] # OSAGE SMALL LETTER EHTSA
+104CB ; [.33F0.0020.0008] # OSAGE CAPITAL LETTER EHTSA
+104F4 ; [.33F1.0020.0002] # OSAGE SMALL LETTER TSHA
+104CC ; [.33F1.0020.0008] # OSAGE CAPITAL LETTER TSHA
+104F5 ; [.33F2.0020.0002] # OSAGE SMALL LETTER DHA
+104CD ; [.33F2.0020.0008] # OSAGE CAPITAL LETTER DHA
+104F6 ; [.33F3.0020.0002] # OSAGE SMALL LETTER U
+104CE ; [.33F3.0020.0008] # OSAGE CAPITAL LETTER U
+104F7 ; [.33F4.0020.0002] # OSAGE SMALL LETTER WA
+104CF ; [.33F4.0020.0008] # OSAGE CAPITAL LETTER WA
+104F8 ; [.33F5.0020.0002] # OSAGE SMALL LETTER KHA
+104D0 ; [.33F5.0020.0008] # OSAGE CAPITAL LETTER KHA
+104F9 ; [.33F6.0020.0002] # OSAGE SMALL LETTER GHA
+104D1 ; [.33F6.0020.0008] # OSAGE CAPITAL LETTER GHA
+104FA ; [.33F7.0020.0002] # OSAGE SMALL LETTER ZA
+104D2 ; [.33F7.0020.0008] # OSAGE CAPITAL LETTER ZA
+104FB ; [.33F8.0020.0002] # OSAGE SMALL LETTER ZHA
+104D3 ; [.33F8.0020.0008] # OSAGE CAPITAL LETTER ZHA
+1401 ; [.33F9.0020.0002] # CANADIAN SYLLABICS E
+1402 ; [.33FA.0020.0002] # CANADIAN SYLLABICS AAI
+1403 ; [.33FB.0020.0002] # CANADIAN SYLLABICS I
+1404 ; [.33FC.0020.0002] # CANADIAN SYLLABICS II
+1405 ; [.33FD.0020.0002] # CANADIAN SYLLABICS O
+1406 ; [.33FE.0020.0002] # CANADIAN SYLLABICS OO
+1407 ; [.33FF.0020.0002] # CANADIAN SYLLABICS Y-CREE OO
+1408 ; [.3400.0020.0002] # CANADIAN SYLLABICS CARRIER EE
+1409 ; [.3401.0020.0002] # CANADIAN SYLLABICS CARRIER I
+140A ; [.3402.0020.0002] # CANADIAN SYLLABICS A
+140B ; [.3403.0020.0002] # CANADIAN SYLLABICS AA
+140C ; [.3404.0020.0002] # CANADIAN SYLLABICS WE
+140D ; [.3405.0020.0002] # CANADIAN SYLLABICS WEST-CREE WE
+140E ; [.3406.0020.0002] # CANADIAN SYLLABICS WI
+140F ; [.3407.0020.0002] # CANADIAN SYLLABICS WEST-CREE WI
+1410 ; [.3408.0020.0002] # CANADIAN SYLLABICS WII
+1411 ; [.3409.0020.0002] # CANADIAN SYLLABICS WEST-CREE WII
+1412 ; [.340A.0020.0002] # CANADIAN SYLLABICS WO
+1413 ; [.340B.0020.0002] # CANADIAN SYLLABICS WEST-CREE WO
+1414 ; [.340C.0020.0002] # CANADIAN SYLLABICS WOO
+1415 ; [.340D.0020.0002] # CANADIAN SYLLABICS WEST-CREE WOO
+1416 ; [.340E.0020.0002] # CANADIAN SYLLABICS NASKAPI WOO
+1417 ; [.340F.0020.0002] # CANADIAN SYLLABICS WA
+1418 ; [.3410.0020.0002] # CANADIAN SYLLABICS WEST-CREE WA
+1419 ; [.3411.0020.0002] # CANADIAN SYLLABICS WAA
+141A ; [.3412.0020.0002] # CANADIAN SYLLABICS WEST-CREE WAA
+141B ; [.3413.0020.0002] # CANADIAN SYLLABICS NASKAPI WAA
+141C ; [.3414.0020.0002] # CANADIAN SYLLABICS AI
+141D ; [.3415.0020.0002] # CANADIAN SYLLABICS Y-CREE W
+141E ; [.3416.0020.0002] # CANADIAN SYLLABICS GLOTTAL STOP
+141F ; [.3417.0020.0002] # CANADIAN SYLLABICS FINAL ACUTE
+1420 ; [.3418.0020.0002] # CANADIAN SYLLABICS FINAL GRAVE
+1421 ; [.3419.0020.0002] # CANADIAN SYLLABICS FINAL BOTTOM HALF RING
+1422 ; [.341A.0020.0002] # CANADIAN SYLLABICS FINAL TOP HALF RING
+1423 ; [.341B.0020.0002] # CANADIAN SYLLABICS FINAL RIGHT HALF RING
+1424 ; [.341C.0020.0002] # CANADIAN SYLLABICS FINAL RING
+1425 ; [.341D.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE ACUTE
+1426 ; [.341E.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
+1427 ; [.341F.0020.0002] # CANADIAN SYLLABICS FINAL MIDDLE DOT
+1428 ; [.3420.0020.0002] # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
+1429 ; [.3421.0020.0002] # CANADIAN SYLLABICS FINAL PLUS
+142A ; [.3422.0020.0002] # CANADIAN SYLLABICS FINAL DOWN TACK
+142B ; [.3423.0020.0002] # CANADIAN SYLLABICS EN
+142C ; [.3424.0020.0002] # CANADIAN SYLLABICS IN
+142D ; [.3425.0020.0002] # CANADIAN SYLLABICS ON
+142E ; [.3426.0020.0002] # CANADIAN SYLLABICS AN
+142F ; [.3427.0020.0002] # CANADIAN SYLLABICS PE
+1430 ; [.3428.0020.0002] # CANADIAN SYLLABICS PAAI
+1431 ; [.3429.0020.0002] # CANADIAN SYLLABICS PI
+1432 ; [.342A.0020.0002] # CANADIAN SYLLABICS PII
+1433 ; [.342B.0020.0002] # CANADIAN SYLLABICS PO
+1434 ; [.342C.0020.0002] # CANADIAN SYLLABICS POO
+1435 ; [.342D.0020.0002] # CANADIAN SYLLABICS Y-CREE POO
+1436 ; [.342E.0020.0002] # CANADIAN SYLLABICS CARRIER HEE
+1437 ; [.342F.0020.0002] # CANADIAN SYLLABICS CARRIER HI
+1438 ; [.3430.0020.0002] # CANADIAN SYLLABICS PA
+1439 ; [.3431.0020.0002] # CANADIAN SYLLABICS PAA
+143A ; [.3432.0020.0002] # CANADIAN SYLLABICS PWE
+143B ; [.3433.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWE
+143C ; [.3434.0020.0002] # CANADIAN SYLLABICS PWI
+143D ; [.3435.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWI
+143E ; [.3436.0020.0002] # CANADIAN SYLLABICS PWII
+143F ; [.3437.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWII
+1440 ; [.3438.0020.0002] # CANADIAN SYLLABICS PWO
+1441 ; [.3439.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWO
+1442 ; [.343A.0020.0002] # CANADIAN SYLLABICS PWOO
+1443 ; [.343B.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWOO
+1444 ; [.343C.0020.0002] # CANADIAN SYLLABICS PWA
+1445 ; [.343D.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWA
+1446 ; [.343E.0020.0002] # CANADIAN SYLLABICS PWAA
+1447 ; [.343F.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWAA
+1448 ; [.3440.0020.0002] # CANADIAN SYLLABICS Y-CREE PWAA
+1449 ; [.3441.0020.0002] # CANADIAN SYLLABICS P
+144A ; [.3442.0020.0002] # CANADIAN SYLLABICS WEST-CREE P
+144B ; [.3443.0020.0002] # CANADIAN SYLLABICS CARRIER H
+144C ; [.3444.0020.0002] # CANADIAN SYLLABICS TE
+144D ; [.3445.0020.0002] # CANADIAN SYLLABICS TAAI
+144E ; [.3446.0020.0002] # CANADIAN SYLLABICS TI
+144F ; [.3447.0020.0002] # CANADIAN SYLLABICS TII
+1450 ; [.3448.0020.0002] # CANADIAN SYLLABICS TO
+1451 ; [.3449.0020.0002] # CANADIAN SYLLABICS TOO
+1452 ; [.344A.0020.0002] # CANADIAN SYLLABICS Y-CREE TOO
+1453 ; [.344B.0020.0002] # CANADIAN SYLLABICS CARRIER DEE
+1454 ; [.344C.0020.0002] # CANADIAN SYLLABICS CARRIER DI
+1455 ; [.344D.0020.0002] # CANADIAN SYLLABICS TA
+1456 ; [.344E.0020.0002] # CANADIAN SYLLABICS TAA
+1457 ; [.344F.0020.0002] # CANADIAN SYLLABICS TWE
+1458 ; [.3450.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWE
+1459 ; [.3451.0020.0002] # CANADIAN SYLLABICS TWI
+145A ; [.3452.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWI
+145B ; [.3453.0020.0002] # CANADIAN SYLLABICS TWII
+145C ; [.3454.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWII
+145D ; [.3455.0020.0002] # CANADIAN SYLLABICS TWO
+145E ; [.3456.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWO
+145F ; [.3457.0020.0002] # CANADIAN SYLLABICS TWOO
+1460 ; [.3458.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWOO
+1461 ; [.3459.0020.0002] # CANADIAN SYLLABICS TWA
+1462 ; [.345A.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWA
+1463 ; [.345B.0020.0002] # CANADIAN SYLLABICS TWAA
+1464 ; [.345C.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWAA
+1465 ; [.345D.0020.0002] # CANADIAN SYLLABICS NASKAPI TWAA
+1466 ; [.345E.0020.0002] # CANADIAN SYLLABICS T
+1467 ; [.345F.0020.0002] # CANADIAN SYLLABICS TTE
+1468 ; [.3460.0020.0002] # CANADIAN SYLLABICS TTI
+1469 ; [.3461.0020.0002] # CANADIAN SYLLABICS TTO
+146A ; [.3462.0020.0002] # CANADIAN SYLLABICS TTA
+146B ; [.3463.0020.0002] # CANADIAN SYLLABICS KE
+146C ; [.3464.0020.0002] # CANADIAN SYLLABICS KAAI
+146D ; [.3465.0020.0002] # CANADIAN SYLLABICS KI
+146E ; [.3466.0020.0002] # CANADIAN SYLLABICS KII
+146F ; [.3467.0020.0002] # CANADIAN SYLLABICS KO
+1470 ; [.3468.0020.0002] # CANADIAN SYLLABICS KOO
+1471 ; [.3469.0020.0002] # CANADIAN SYLLABICS Y-CREE KOO
+1472 ; [.346A.0020.0002] # CANADIAN SYLLABICS KA
+1473 ; [.346B.0020.0002] # CANADIAN SYLLABICS KAA
+1474 ; [.346C.0020.0002] # CANADIAN SYLLABICS KWE
+1475 ; [.346D.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWE
+1476 ; [.346E.0020.0002] # CANADIAN SYLLABICS KWI
+1477 ; [.346F.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWI
+1478 ; [.3470.0020.0002] # CANADIAN SYLLABICS KWII
+1479 ; [.3471.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWII
+147A ; [.3472.0020.0002] # CANADIAN SYLLABICS KWO
+147B ; [.3473.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWO
+147C ; [.3474.0020.0002] # CANADIAN SYLLABICS KWOO
+147D ; [.3475.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWOO
+147E ; [.3476.0020.0002] # CANADIAN SYLLABICS KWA
+147F ; [.3477.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWA
+1480 ; [.3478.0020.0002] # CANADIAN SYLLABICS KWAA
+1481 ; [.3479.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWAA
+1482 ; [.347A.0020.0002] # CANADIAN SYLLABICS NASKAPI KWAA
+1483 ; [.347B.0020.0002] # CANADIAN SYLLABICS K
+1484 ; [.347C.0020.0002] # CANADIAN SYLLABICS KW
+1485 ; [.347D.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KEH
+1486 ; [.347E.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KIH
+1487 ; [.347F.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KOH
+1488 ; [.3480.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KAH
+1489 ; [.3481.0020.0002] # CANADIAN SYLLABICS CE
+148A ; [.3482.0020.0002] # CANADIAN SYLLABICS CAAI
+148B ; [.3483.0020.0002] # CANADIAN SYLLABICS CI
+148C ; [.3484.0020.0002] # CANADIAN SYLLABICS CII
+148D ; [.3485.0020.0002] # CANADIAN SYLLABICS CO
+148E ; [.3486.0020.0002] # CANADIAN SYLLABICS COO
+148F ; [.3487.0020.0002] # CANADIAN SYLLABICS Y-CREE COO
+1490 ; [.3488.0020.0002] # CANADIAN SYLLABICS CA
+1491 ; [.3489.0020.0002] # CANADIAN SYLLABICS CAA
+1492 ; [.348A.0020.0002] # CANADIAN SYLLABICS CWE
+1493 ; [.348B.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWE
+1494 ; [.348C.0020.0002] # CANADIAN SYLLABICS CWI
+1495 ; [.348D.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWI
+1496 ; [.348E.0020.0002] # CANADIAN SYLLABICS CWII
+1497 ; [.348F.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWII
+1498 ; [.3490.0020.0002] # CANADIAN SYLLABICS CWO
+1499 ; [.3491.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWO
+149A ; [.3492.0020.0002] # CANADIAN SYLLABICS CWOO
+149B ; [.3493.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWOO
+149C ; [.3494.0020.0002] # CANADIAN SYLLABICS CWA
+149D ; [.3495.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWA
+149E ; [.3496.0020.0002] # CANADIAN SYLLABICS CWAA
+149F ; [.3497.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWAA
+14A0 ; [.3498.0020.0002] # CANADIAN SYLLABICS NASKAPI CWAA
+14A1 ; [.3499.0020.0002] # CANADIAN SYLLABICS C
+14A2 ; [.349A.0020.0002] # CANADIAN SYLLABICS SAYISI TH
+14A3 ; [.349B.0020.0002] # CANADIAN SYLLABICS ME
+14A4 ; [.349C.0020.0002] # CANADIAN SYLLABICS MAAI
+14A5 ; [.349D.0020.0002] # CANADIAN SYLLABICS MI
+14A6 ; [.349E.0020.0002] # CANADIAN SYLLABICS MII
+14A7 ; [.349F.0020.0002] # CANADIAN SYLLABICS MO
+14A8 ; [.34A0.0020.0002] # CANADIAN SYLLABICS MOO
+14A9 ; [.34A1.0020.0002] # CANADIAN SYLLABICS Y-CREE MOO
+14AA ; [.34A2.0020.0002] # CANADIAN SYLLABICS MA
+14AB ; [.34A3.0020.0002] # CANADIAN SYLLABICS MAA
+14AC ; [.34A4.0020.0002] # CANADIAN SYLLABICS MWE
+14AD ; [.34A5.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWE
+14AE ; [.34A6.0020.0002] # CANADIAN SYLLABICS MWI
+14AF ; [.34A7.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWI
+14B0 ; [.34A8.0020.0002] # CANADIAN SYLLABICS MWII
+14B1 ; [.34A9.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWII
+14B2 ; [.34AA.0020.0002] # CANADIAN SYLLABICS MWO
+14B3 ; [.34AB.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWO
+14B4 ; [.34AC.0020.0002] # CANADIAN SYLLABICS MWOO
+14B5 ; [.34AD.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWOO
+14B6 ; [.34AE.0020.0002] # CANADIAN SYLLABICS MWA
+14B7 ; [.34AF.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWA
+14B8 ; [.34B0.0020.0002] # CANADIAN SYLLABICS MWAA
+14B9 ; [.34B1.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWAA
+14BA ; [.34B2.0020.0002] # CANADIAN SYLLABICS NASKAPI MWAA
+14BB ; [.34B3.0020.0002] # CANADIAN SYLLABICS M
+14BC ; [.34B4.0020.0002] # CANADIAN SYLLABICS WEST-CREE M
+14BD ; [.34B5.0020.0002] # CANADIAN SYLLABICS MH
+14BE ; [.34B6.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN M
+14BF ; [.34B7.0020.0002] # CANADIAN SYLLABICS SAYISI M
+14C0 ; [.34B8.0020.0002] # CANADIAN SYLLABICS NE
+14C1 ; [.34B9.0020.0002] # CANADIAN SYLLABICS NAAI
+14C2 ; [.34BA.0020.0002] # CANADIAN SYLLABICS NI
+14C3 ; [.34BB.0020.0002] # CANADIAN SYLLABICS NII
+14C4 ; [.34BC.0020.0002] # CANADIAN SYLLABICS NO
+14C5 ; [.34BD.0020.0002] # CANADIAN SYLLABICS NOO
+14C6 ; [.34BE.0020.0002] # CANADIAN SYLLABICS Y-CREE NOO
+14C7 ; [.34BF.0020.0002] # CANADIAN SYLLABICS NA
+14C8 ; [.34C0.0020.0002] # CANADIAN SYLLABICS NAA
+14C9 ; [.34C1.0020.0002] # CANADIAN SYLLABICS NWE
+14CA ; [.34C2.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWE
+14CB ; [.34C3.0020.0002] # CANADIAN SYLLABICS NWA
+14CC ; [.34C4.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWA
+14CD ; [.34C5.0020.0002] # CANADIAN SYLLABICS NWAA
+14CE ; [.34C6.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWAA
+14CF ; [.34C7.0020.0002] # CANADIAN SYLLABICS NASKAPI NWAA
+14D0 ; [.34C8.0020.0002] # CANADIAN SYLLABICS N
+14D1 ; [.34C9.0020.0002] # CANADIAN SYLLABICS CARRIER NG
+14D2 ; [.34CA.0020.0002] # CANADIAN SYLLABICS NH
+14D3 ; [.34CB.0020.0002] # CANADIAN SYLLABICS LE
+14D4 ; [.34CC.0020.0002] # CANADIAN SYLLABICS LAAI
+14D5 ; [.34CD.0020.0002] # CANADIAN SYLLABICS LI
+14D6 ; [.34CE.0020.0002] # CANADIAN SYLLABICS LII
+14D7 ; [.34CF.0020.0002] # CANADIAN SYLLABICS LO
+14D8 ; [.34D0.0020.0002] # CANADIAN SYLLABICS LOO
+14D9 ; [.34D1.0020.0002] # CANADIAN SYLLABICS Y-CREE LOO
+14DA ; [.34D2.0020.0002] # CANADIAN SYLLABICS LA
+14DB ; [.34D3.0020.0002] # CANADIAN SYLLABICS LAA
+14DC ; [.34D4.0020.0002] # CANADIAN SYLLABICS LWE
+14DD ; [.34D5.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWE
+14DE ; [.34D6.0020.0002] # CANADIAN SYLLABICS LWI
+14DF ; [.34D7.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWI
+14E0 ; [.34D8.0020.0002] # CANADIAN SYLLABICS LWII
+14E1 ; [.34D9.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWII
+14E2 ; [.34DA.0020.0002] # CANADIAN SYLLABICS LWO
+14E3 ; [.34DB.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWO
+14E4 ; [.34DC.0020.0002] # CANADIAN SYLLABICS LWOO
+14E5 ; [.34DD.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWOO
+14E6 ; [.34DE.0020.0002] # CANADIAN SYLLABICS LWA
+14E7 ; [.34DF.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWA
+14E8 ; [.34E0.0020.0002] # CANADIAN SYLLABICS LWAA
+14E9 ; [.34E1.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWAA
+14EA ; [.34E2.0020.0002] # CANADIAN SYLLABICS L
+14EB ; [.34E3.0020.0002] # CANADIAN SYLLABICS WEST-CREE L
+14EC ; [.34E4.0020.0002] # CANADIAN SYLLABICS MEDIAL L
+14ED ; [.34E5.0020.0002] # CANADIAN SYLLABICS SE
+14EE ; [.34E6.0020.0002] # CANADIAN SYLLABICS SAAI
+14EF ; [.34E7.0020.0002] # CANADIAN SYLLABICS SI
+14F0 ; [.34E8.0020.0002] # CANADIAN SYLLABICS SII
+14F1 ; [.34E9.0020.0002] # CANADIAN SYLLABICS SO
+14F2 ; [.34EA.0020.0002] # CANADIAN SYLLABICS SOO
+14F3 ; [.34EB.0020.0002] # CANADIAN SYLLABICS Y-CREE SOO
+14F4 ; [.34EC.0020.0002] # CANADIAN SYLLABICS SA
+14F5 ; [.34ED.0020.0002] # CANADIAN SYLLABICS SAA
+14F6 ; [.34EE.0020.0002] # CANADIAN SYLLABICS SWE
+14F7 ; [.34EF.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWE
+14F8 ; [.34F0.0020.0002] # CANADIAN SYLLABICS SWI
+14F9 ; [.34F1.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWI
+14FA ; [.34F2.0020.0002] # CANADIAN SYLLABICS SWII
+14FB ; [.34F3.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWII
+14FC ; [.34F4.0020.0002] # CANADIAN SYLLABICS SWO
+14FD ; [.34F5.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWO
+14FE ; [.34F6.0020.0002] # CANADIAN SYLLABICS SWOO
+14FF ; [.34F7.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWOO
+1500 ; [.34F8.0020.0002] # CANADIAN SYLLABICS SWA
+1501 ; [.34F9.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWA
+1502 ; [.34FA.0020.0002] # CANADIAN SYLLABICS SWAA
+1503 ; [.34FB.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWAA
+1504 ; [.34FC.0020.0002] # CANADIAN SYLLABICS NASKAPI SWAA
+1505 ; [.34FD.0020.0002] # CANADIAN SYLLABICS S
+1506 ; [.34FE.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN S
+1507 ; [.34FF.0020.0002] # CANADIAN SYLLABICS SW
+1508 ; [.3500.0020.0002] # CANADIAN SYLLABICS BLACKFOOT S
+1509 ; [.3501.0020.0002] # CANADIAN SYLLABICS MOOSE-CREE SK
+150A ; [.3502.0020.0002] # CANADIAN SYLLABICS NASKAPI SKW
+150B ; [.3503.0020.0002] # CANADIAN SYLLABICS NASKAPI S-W
+150C ; [.3504.0020.0002] # CANADIAN SYLLABICS NASKAPI SPWA
+150D ; [.3505.0020.0002] # CANADIAN SYLLABICS NASKAPI STWA
+150E ; [.3506.0020.0002] # CANADIAN SYLLABICS NASKAPI SKWA
+150F ; [.3507.0020.0002] # CANADIAN SYLLABICS NASKAPI SCWA
+1510 ; [.3508.0020.0002] # CANADIAN SYLLABICS SHE
+1511 ; [.3509.0020.0002] # CANADIAN SYLLABICS SHI
+1512 ; [.350A.0020.0002] # CANADIAN SYLLABICS SHII
+1513 ; [.350B.0020.0002] # CANADIAN SYLLABICS SHO
+1514 ; [.350C.0020.0002] # CANADIAN SYLLABICS SHOO
+1515 ; [.350D.0020.0002] # CANADIAN SYLLABICS SHA
+1516 ; [.350E.0020.0002] # CANADIAN SYLLABICS SHAA
+1517 ; [.350F.0020.0002] # CANADIAN SYLLABICS SHWE
+1518 ; [.3510.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWE
+1519 ; [.3511.0020.0002] # CANADIAN SYLLABICS SHWI
+151A ; [.3512.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWI
+151B ; [.3513.0020.0002] # CANADIAN SYLLABICS SHWII
+151C ; [.3514.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWII
+151D ; [.3515.0020.0002] # CANADIAN SYLLABICS SHWO
+151E ; [.3516.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWO
+151F ; [.3517.0020.0002] # CANADIAN SYLLABICS SHWOO
+1520 ; [.3518.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWOO
+1521 ; [.3519.0020.0002] # CANADIAN SYLLABICS SHWA
+1522 ; [.351A.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWA
+1523 ; [.351B.0020.0002] # CANADIAN SYLLABICS SHWAA
+1524 ; [.351C.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWAA
+1525 ; [.351D.0020.0002] # CANADIAN SYLLABICS SH
+1526 ; [.351E.0020.0002] # CANADIAN SYLLABICS YE
+1527 ; [.351F.0020.0002] # CANADIAN SYLLABICS YAAI
+1528 ; [.3520.0020.0002] # CANADIAN SYLLABICS YI
+1529 ; [.3521.0020.0002] # CANADIAN SYLLABICS YII
+152A ; [.3522.0020.0002] # CANADIAN SYLLABICS YO
+152B ; [.3523.0020.0002] # CANADIAN SYLLABICS YOO
+152C ; [.3524.0020.0002] # CANADIAN SYLLABICS Y-CREE YOO
+152D ; [.3525.0020.0002] # CANADIAN SYLLABICS YA
+152E ; [.3526.0020.0002] # CANADIAN SYLLABICS YAA
+152F ; [.3527.0020.0002] # CANADIAN SYLLABICS YWE
+1530 ; [.3528.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWE
+1531 ; [.3529.0020.0002] # CANADIAN SYLLABICS YWI
+1532 ; [.352A.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWI
+1533 ; [.352B.0020.0002] # CANADIAN SYLLABICS YWII
+1534 ; [.352C.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWII
+1535 ; [.352D.0020.0002] # CANADIAN SYLLABICS YWO
+1536 ; [.352E.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWO
+1537 ; [.352F.0020.0002] # CANADIAN SYLLABICS YWOO
+1538 ; [.3530.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWOO
+1539 ; [.3531.0020.0002] # CANADIAN SYLLABICS YWA
+153A ; [.3532.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWA
+153B ; [.3533.0020.0002] # CANADIAN SYLLABICS YWAA
+153C ; [.3534.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWAA
+153D ; [.3535.0020.0002] # CANADIAN SYLLABICS NASKAPI YWAA
+153E ; [.3536.0020.0002] # CANADIAN SYLLABICS Y
+153F ; [.3537.0020.0002] # CANADIAN SYLLABICS BIBLE-CREE Y
+1540 ; [.3538.0020.0002] # CANADIAN SYLLABICS WEST-CREE Y
+1541 ; [.3539.0020.0002] # CANADIAN SYLLABICS SAYISI YI
+1542 ; [.353A.0020.0002] # CANADIAN SYLLABICS RE
+1543 ; [.353B.0020.0002] # CANADIAN SYLLABICS R-CREE RE
+1544 ; [.353C.0020.0002] # CANADIAN SYLLABICS WEST-CREE LE
+1545 ; [.353D.0020.0002] # CANADIAN SYLLABICS RAAI
+1546 ; [.353E.0020.0002] # CANADIAN SYLLABICS RI
+1547 ; [.353F.0020.0002] # CANADIAN SYLLABICS RII
+1548 ; [.3540.0020.0002] # CANADIAN SYLLABICS RO
+1549 ; [.3541.0020.0002] # CANADIAN SYLLABICS ROO
+154A ; [.3542.0020.0002] # CANADIAN SYLLABICS WEST-CREE LO
+154B ; [.3543.0020.0002] # CANADIAN SYLLABICS RA
+154C ; [.3544.0020.0002] # CANADIAN SYLLABICS RAA
+154D ; [.3545.0020.0002] # CANADIAN SYLLABICS WEST-CREE LA
+154E ; [.3546.0020.0002] # CANADIAN SYLLABICS RWAA
+154F ; [.3547.0020.0002] # CANADIAN SYLLABICS WEST-CREE RWAA
+1550 ; [.3548.0020.0002] # CANADIAN SYLLABICS R
+1551 ; [.3549.0020.0002] # CANADIAN SYLLABICS WEST-CREE R
+1552 ; [.354A.0020.0002] # CANADIAN SYLLABICS MEDIAL R
+1553 ; [.354B.0020.0002] # CANADIAN SYLLABICS FE
+1554 ; [.354C.0020.0002] # CANADIAN SYLLABICS FAAI
+1555 ; [.354D.0020.0002] # CANADIAN SYLLABICS FI
+1556 ; [.354E.0020.0002] # CANADIAN SYLLABICS FII
+1557 ; [.354F.0020.0002] # CANADIAN SYLLABICS FO
+1558 ; [.3550.0020.0002] # CANADIAN SYLLABICS FOO
+1559 ; [.3551.0020.0002] # CANADIAN SYLLABICS FA
+155A ; [.3552.0020.0002] # CANADIAN SYLLABICS FAA
+155B ; [.3553.0020.0002] # CANADIAN SYLLABICS FWAA
+155C ; [.3554.0020.0002] # CANADIAN SYLLABICS WEST-CREE FWAA
+155D ; [.3555.0020.0002] # CANADIAN SYLLABICS F
+155E ; [.3556.0020.0002] # CANADIAN SYLLABICS THE
+155F ; [.3557.0020.0002] # CANADIAN SYLLABICS N-CREE THE
+1560 ; [.3558.0020.0002] # CANADIAN SYLLABICS THI
+1561 ; [.3559.0020.0002] # CANADIAN SYLLABICS N-CREE THI
+1562 ; [.355A.0020.0002] # CANADIAN SYLLABICS THII
+1563 ; [.355B.0020.0002] # CANADIAN SYLLABICS N-CREE THII
+1564 ; [.355C.0020.0002] # CANADIAN SYLLABICS THO
+1565 ; [.355D.0020.0002] # CANADIAN SYLLABICS THOO
+1566 ; [.355E.0020.0002] # CANADIAN SYLLABICS THA
+1567 ; [.355F.0020.0002] # CANADIAN SYLLABICS THAA
+1568 ; [.3560.0020.0002] # CANADIAN SYLLABICS THWAA
+1569 ; [.3561.0020.0002] # CANADIAN SYLLABICS WEST-CREE THWAA
+156A ; [.3562.0020.0002] # CANADIAN SYLLABICS TH
+156B ; [.3563.0020.0002] # CANADIAN SYLLABICS TTHE
+156C ; [.3564.0020.0002] # CANADIAN SYLLABICS TTHI
+156D ; [.3565.0020.0002] # CANADIAN SYLLABICS TTHO
+156E ; [.3566.0020.0002] # CANADIAN SYLLABICS TTHA
+156F ; [.3567.0020.0002] # CANADIAN SYLLABICS TTH
+1570 ; [.3568.0020.0002] # CANADIAN SYLLABICS TYE
+1571 ; [.3569.0020.0002] # CANADIAN SYLLABICS TYI
+1572 ; [.356A.0020.0002] # CANADIAN SYLLABICS TYO
+1573 ; [.356B.0020.0002] # CANADIAN SYLLABICS TYA
+1574 ; [.356C.0020.0002] # CANADIAN SYLLABICS NUNAVIK HE
+1575 ; [.356D.0020.0002] # CANADIAN SYLLABICS NUNAVIK HI
+1576 ; [.356E.0020.0002] # CANADIAN SYLLABICS NUNAVIK HII
+1577 ; [.356F.0020.0002] # CANADIAN SYLLABICS NUNAVIK HO
+1578 ; [.3570.0020.0002] # CANADIAN SYLLABICS NUNAVIK HOO
+1579 ; [.3571.0020.0002] # CANADIAN SYLLABICS NUNAVIK HA
+157A ; [.3572.0020.0002] # CANADIAN SYLLABICS NUNAVIK HAA
+157B ; [.3573.0020.0002] # CANADIAN SYLLABICS NUNAVIK H
+157D ; [.3574.0020.0002] # CANADIAN SYLLABICS HK
+166F ; [.3575.0020.0002] # CANADIAN SYLLABICS QAI
+157E ; [.3576.0020.0002] # CANADIAN SYLLABICS QAAI
+157F ; [.3577.0020.0002] # CANADIAN SYLLABICS QI
+1580 ; [.3578.0020.0002] # CANADIAN SYLLABICS QII
+1581 ; [.3579.0020.0002] # CANADIAN SYLLABICS QO
+1582 ; [.357A.0020.0002] # CANADIAN SYLLABICS QOO
+1583 ; [.357B.0020.0002] # CANADIAN SYLLABICS QA
+1584 ; [.357C.0020.0002] # CANADIAN SYLLABICS QAA
+1585 ; [.357D.0020.0002] # CANADIAN SYLLABICS Q
+1586 ; [.357E.0020.0002] # CANADIAN SYLLABICS TLHE
+1587 ; [.357F.0020.0002] # CANADIAN SYLLABICS TLHI
+1588 ; [.3580.0020.0002] # CANADIAN SYLLABICS TLHO
+1589 ; [.3581.0020.0002] # CANADIAN SYLLABICS TLHA
+158A ; [.3582.0020.0002] # CANADIAN SYLLABICS WEST-CREE RE
+158B ; [.3583.0020.0002] # CANADIAN SYLLABICS WEST-CREE RI
+158C ; [.3584.0020.0002] # CANADIAN SYLLABICS WEST-CREE RO
+158D ; [.3585.0020.0002] # CANADIAN SYLLABICS WEST-CREE RA
+1670 ; [.3586.0020.0002] # CANADIAN SYLLABICS NGAI
+158E ; [.3587.0020.0002] # CANADIAN SYLLABICS NGAAI
+158F ; [.3588.0020.0002] # CANADIAN SYLLABICS NGI
+1590 ; [.3589.0020.0002] # CANADIAN SYLLABICS NGII
+1591 ; [.358A.0020.0002] # CANADIAN SYLLABICS NGO
+1592 ; [.358B.0020.0002] # CANADIAN SYLLABICS NGOO
+1593 ; [.358C.0020.0002] # CANADIAN SYLLABICS NGA
+1594 ; [.358D.0020.0002] # CANADIAN SYLLABICS NGAA
+1595 ; [.358E.0020.0002] # CANADIAN SYLLABICS NG
+1671 ; [.358F.0020.0002] # CANADIAN SYLLABICS NNGI
+1672 ; [.3590.0020.0002] # CANADIAN SYLLABICS NNGII
+1673 ; [.3591.0020.0002] # CANADIAN SYLLABICS NNGO
+1674 ; [.3592.0020.0002] # CANADIAN SYLLABICS NNGOO
+1675 ; [.3593.0020.0002] # CANADIAN SYLLABICS NNGA
+1676 ; [.3594.0020.0002] # CANADIAN SYLLABICS NNGAA
+1596 ; [.3595.0020.0002] # CANADIAN SYLLABICS NNG
+1597 ; [.3596.0020.0002] # CANADIAN SYLLABICS SAYISI SHE
+1598 ; [.3597.0020.0002] # CANADIAN SYLLABICS SAYISI SHI
+1599 ; [.3598.0020.0002] # CANADIAN SYLLABICS SAYISI SHO
+159A ; [.3599.0020.0002] # CANADIAN SYLLABICS SAYISI SHA
+159B ; [.359A.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THE
+159C ; [.359B.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THI
+159D ; [.359C.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THO
+159E ; [.359D.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THA
+159F ; [.359E.0020.0002] # CANADIAN SYLLABICS WOODS-CREE TH
+15A0 ; [.359F.0020.0002] # CANADIAN SYLLABICS LHI
+15A1 ; [.35A0.0020.0002] # CANADIAN SYLLABICS LHII
+15A2 ; [.35A1.0020.0002] # CANADIAN SYLLABICS LHO
+15A3 ; [.35A2.0020.0002] # CANADIAN SYLLABICS LHOO
+15A4 ; [.35A3.0020.0002] # CANADIAN SYLLABICS LHA
+15A5 ; [.35A4.0020.0002] # CANADIAN SYLLABICS LHAA
+15A6 ; [.35A5.0020.0002] # CANADIAN SYLLABICS LH
+157C ; [.35A6.0020.0002] # CANADIAN SYLLABICS NUNAVUT H
+15A7 ; [.35A7.0020.0002] # CANADIAN SYLLABICS TH-CREE THE
+15A8 ; [.35A8.0020.0002] # CANADIAN SYLLABICS TH-CREE THI
+15A9 ; [.35A9.0020.0002] # CANADIAN SYLLABICS TH-CREE THII
+15AA ; [.35AA.0020.0002] # CANADIAN SYLLABICS TH-CREE THO
+15AB ; [.35AB.0020.0002] # CANADIAN SYLLABICS TH-CREE THOO
+15AC ; [.35AC.0020.0002] # CANADIAN SYLLABICS TH-CREE THA
+15AD ; [.35AD.0020.0002] # CANADIAN SYLLABICS TH-CREE THAA
+15AE ; [.35AE.0020.0002] # CANADIAN SYLLABICS TH-CREE TH
+15AF ; [.35AF.0020.0002] # CANADIAN SYLLABICS AIVILIK B
+15B0 ; [.35B0.0020.0002] # CANADIAN SYLLABICS BLACKFOOT E
+15B1 ; [.35B1.0020.0002] # CANADIAN SYLLABICS BLACKFOOT I
+15B2 ; [.35B2.0020.0002] # CANADIAN SYLLABICS BLACKFOOT O
+15B3 ; [.35B3.0020.0002] # CANADIAN SYLLABICS BLACKFOOT A
+15B4 ; [.35B4.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WE
+15B5 ; [.35B5.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WI
+15B6 ; [.35B6.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WO
+15B7 ; [.35B7.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WA
+15B8 ; [.35B8.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NE
+15B9 ; [.35B9.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NI
+15BA ; [.35BA.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NO
+15BB ; [.35BB.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NA
+15BC ; [.35BC.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KE
+15BD ; [.35BD.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KI
+15BE ; [.35BE.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KO
+15BF ; [.35BF.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KA
+15C0 ; [.35C0.0020.0002] # CANADIAN SYLLABICS SAYISI HE
+15C1 ; [.35C1.0020.0002] # CANADIAN SYLLABICS SAYISI HI
+15C2 ; [.35C2.0020.0002] # CANADIAN SYLLABICS SAYISI HO
+15C3 ; [.35C3.0020.0002] # CANADIAN SYLLABICS SAYISI HA
+15C4 ; [.35C4.0020.0002] # CANADIAN SYLLABICS CARRIER GHU
+15C5 ; [.35C5.0020.0002] # CANADIAN SYLLABICS CARRIER GHO
+15C6 ; [.35C6.0020.0002] # CANADIAN SYLLABICS CARRIER GHE
+15C7 ; [.35C7.0020.0002] # CANADIAN SYLLABICS CARRIER GHEE
+15C8 ; [.35C8.0020.0002] # CANADIAN SYLLABICS CARRIER GHI
+15C9 ; [.35C9.0020.0002] # CANADIAN SYLLABICS CARRIER GHA
+15CA ; [.35CA.0020.0002] # CANADIAN SYLLABICS CARRIER RU
+15CB ; [.35CB.0020.0002] # CANADIAN SYLLABICS CARRIER RO
+15CC ; [.35CC.0020.0002] # CANADIAN SYLLABICS CARRIER RE
+15CD ; [.35CD.0020.0002] # CANADIAN SYLLABICS CARRIER REE
+15CE ; [.35CE.0020.0002] # CANADIAN SYLLABICS CARRIER RI
+15CF ; [.35CF.0020.0002] # CANADIAN SYLLABICS CARRIER RA
+15D0 ; [.35D0.0020.0002] # CANADIAN SYLLABICS CARRIER WU
+15D1 ; [.35D1.0020.0002] # CANADIAN SYLLABICS CARRIER WO
+15D2 ; [.35D2.0020.0002] # CANADIAN SYLLABICS CARRIER WE
+15D3 ; [.35D3.0020.0002] # CANADIAN SYLLABICS CARRIER WEE
+15D4 ; [.35D4.0020.0002] # CANADIAN SYLLABICS CARRIER WI
+15D5 ; [.35D5.0020.0002] # CANADIAN SYLLABICS CARRIER WA
+15D6 ; [.35D6.0020.0002] # CANADIAN SYLLABICS CARRIER HWU
+15D7 ; [.35D7.0020.0002] # CANADIAN SYLLABICS CARRIER HWO
+15D8 ; [.35D8.0020.0002] # CANADIAN SYLLABICS CARRIER HWE
+15D9 ; [.35D9.0020.0002] # CANADIAN SYLLABICS CARRIER HWEE
+15DA ; [.35DA.0020.0002] # CANADIAN SYLLABICS CARRIER HWI
+15DB ; [.35DB.0020.0002] # CANADIAN SYLLABICS CARRIER HWA
+15DC ; [.35DC.0020.0002] # CANADIAN SYLLABICS CARRIER THU
+15DD ; [.35DD.0020.0002] # CANADIAN SYLLABICS CARRIER THO
+15DE ; [.35DE.0020.0002] # CANADIAN SYLLABICS CARRIER THE
+15DF ; [.35DF.0020.0002] # CANADIAN SYLLABICS CARRIER THEE
+15E0 ; [.35E0.0020.0002] # CANADIAN SYLLABICS CARRIER THI
+15E1 ; [.35E1.0020.0002] # CANADIAN SYLLABICS CARRIER THA
+15E2 ; [.35E2.0020.0002] # CANADIAN SYLLABICS CARRIER TTU
+15E3 ; [.35E3.0020.0002] # CANADIAN SYLLABICS CARRIER TTO
+15E4 ; [.35E4.0020.0002] # CANADIAN SYLLABICS CARRIER TTE
+15E5 ; [.35E5.0020.0002] # CANADIAN SYLLABICS CARRIER TTEE
+15E6 ; [.35E6.0020.0002] # CANADIAN SYLLABICS CARRIER TTI
+15E7 ; [.35E7.0020.0002] # CANADIAN SYLLABICS CARRIER TTA
+15E8 ; [.35E8.0020.0002] # CANADIAN SYLLABICS CARRIER PU
+15E9 ; [.35E9.0020.0002] # CANADIAN SYLLABICS CARRIER PO
+15EA ; [.35EA.0020.0002] # CANADIAN SYLLABICS CARRIER PE
+15EB ; [.35EB.0020.0002] # CANADIAN SYLLABICS CARRIER PEE
+15EC ; [.35EC.0020.0002] # CANADIAN SYLLABICS CARRIER PI
+15ED ; [.35ED.0020.0002] # CANADIAN SYLLABICS CARRIER PA
+15EE ; [.35EE.0020.0002] # CANADIAN SYLLABICS CARRIER P
+15EF ; [.35EF.0020.0002] # CANADIAN SYLLABICS CARRIER GU
+15F0 ; [.35F0.0020.0002] # CANADIAN SYLLABICS CARRIER GO
+15F1 ; [.35F1.0020.0002] # CANADIAN SYLLABICS CARRIER GE
+15F2 ; [.35F2.0020.0002] # CANADIAN SYLLABICS CARRIER GEE
+15F3 ; [.35F3.0020.0002] # CANADIAN SYLLABICS CARRIER GI
+15F4 ; [.35F4.0020.0002] # CANADIAN SYLLABICS CARRIER GA
+15F5 ; [.35F5.0020.0002] # CANADIAN SYLLABICS CARRIER KHU
+15F6 ; [.35F6.0020.0002] # CANADIAN SYLLABICS CARRIER KHO
+15F7 ; [.35F7.0020.0002] # CANADIAN SYLLABICS CARRIER KHE
+15F8 ; [.35F8.0020.0002] # CANADIAN SYLLABICS CARRIER KHEE
+15F9 ; [.35F9.0020.0002] # CANADIAN SYLLABICS CARRIER KHI
+15FA ; [.35FA.0020.0002] # CANADIAN SYLLABICS CARRIER KHA
+15FB ; [.35FB.0020.0002] # CANADIAN SYLLABICS CARRIER KKU
+15FC ; [.35FC.0020.0002] # CANADIAN SYLLABICS CARRIER KKO
+15FD ; [.35FD.0020.0002] # CANADIAN SYLLABICS CARRIER KKE
+15FE ; [.35FE.0020.0002] # CANADIAN SYLLABICS CARRIER KKEE
+15FF ; [.35FF.0020.0002] # CANADIAN SYLLABICS CARRIER KKI
+1600 ; [.3600.0020.0002] # CANADIAN SYLLABICS CARRIER KKA
+1601 ; [.3601.0020.0002] # CANADIAN SYLLABICS CARRIER KK
+1602 ; [.3602.0020.0002] # CANADIAN SYLLABICS CARRIER NU
+1603 ; [.3603.0020.0002] # CANADIAN SYLLABICS CARRIER NO
+1604 ; [.3604.0020.0002] # CANADIAN SYLLABICS CARRIER NE
+1605 ; [.3605.0020.0002] # CANADIAN SYLLABICS CARRIER NEE
+1606 ; [.3606.0020.0002] # CANADIAN SYLLABICS CARRIER NI
+1607 ; [.3607.0020.0002] # CANADIAN SYLLABICS CARRIER NA
+1608 ; [.3608.0020.0002] # CANADIAN SYLLABICS CARRIER MU
+1609 ; [.3609.0020.0002] # CANADIAN SYLLABICS CARRIER MO
+160A ; [.360A.0020.0002] # CANADIAN SYLLABICS CARRIER ME
+160B ; [.360B.0020.0002] # CANADIAN SYLLABICS CARRIER MEE
+160C ; [.360C.0020.0002] # CANADIAN SYLLABICS CARRIER MI
+160D ; [.360D.0020.0002] # CANADIAN SYLLABICS CARRIER MA
+160E ; [.360E.0020.0002] # CANADIAN SYLLABICS CARRIER YU
+160F ; [.360F.0020.0002] # CANADIAN SYLLABICS CARRIER YO
+1610 ; [.3610.0020.0002] # CANADIAN SYLLABICS CARRIER YE
+1611 ; [.3611.0020.0002] # CANADIAN SYLLABICS CARRIER YEE
+1612 ; [.3612.0020.0002] # CANADIAN SYLLABICS CARRIER YI
+1613 ; [.3613.0020.0002] # CANADIAN SYLLABICS CARRIER YA
+1614 ; [.3614.0020.0002] # CANADIAN SYLLABICS CARRIER JU
+1615 ; [.3615.0020.0002] # CANADIAN SYLLABICS SAYISI JU
+1616 ; [.3616.0020.0002] # CANADIAN SYLLABICS CARRIER JO
+1617 ; [.3617.0020.0002] # CANADIAN SYLLABICS CARRIER JE
+1618 ; [.3618.0020.0002] # CANADIAN SYLLABICS CARRIER JEE
+1619 ; [.3619.0020.0002] # CANADIAN SYLLABICS CARRIER JI
+161A ; [.361A.0020.0002] # CANADIAN SYLLABICS SAYISI JI
+161B ; [.361B.0020.0002] # CANADIAN SYLLABICS CARRIER JA
+161C ; [.361C.0020.0002] # CANADIAN SYLLABICS CARRIER JJU
+161D ; [.361D.0020.0002] # CANADIAN SYLLABICS CARRIER JJO
+161E ; [.361E.0020.0002] # CANADIAN SYLLABICS CARRIER JJE
+161F ; [.361F.0020.0002] # CANADIAN SYLLABICS CARRIER JJEE
+1620 ; [.3620.0020.0002] # CANADIAN SYLLABICS CARRIER JJI
+1621 ; [.3621.0020.0002] # CANADIAN SYLLABICS CARRIER JJA
+1622 ; [.3622.0020.0002] # CANADIAN SYLLABICS CARRIER LU
+1623 ; [.3623.0020.0002] # CANADIAN SYLLABICS CARRIER LO
+1624 ; [.3624.0020.0002] # CANADIAN SYLLABICS CARRIER LE
+1625 ; [.3625.0020.0002] # CANADIAN SYLLABICS CARRIER LEE
+1626 ; [.3626.0020.0002] # CANADIAN SYLLABICS CARRIER LI
+1627 ; [.3627.0020.0002] # CANADIAN SYLLABICS CARRIER LA
+1628 ; [.3628.0020.0002] # CANADIAN SYLLABICS CARRIER DLU
+1629 ; [.3629.0020.0002] # CANADIAN SYLLABICS CARRIER DLO
+162A ; [.362A.0020.0002] # CANADIAN SYLLABICS CARRIER DLE
+162B ; [.362B.0020.0002] # CANADIAN SYLLABICS CARRIER DLEE
+162C ; [.362C.0020.0002] # CANADIAN SYLLABICS CARRIER DLI
+162D ; [.362D.0020.0002] # CANADIAN SYLLABICS CARRIER DLA
+162E ; [.362E.0020.0002] # CANADIAN SYLLABICS CARRIER LHU
+162F ; [.362F.0020.0002] # CANADIAN SYLLABICS CARRIER LHO
+1630 ; [.3630.0020.0002] # CANADIAN SYLLABICS CARRIER LHE
+1631 ; [.3631.0020.0002] # CANADIAN SYLLABICS CARRIER LHEE
+1632 ; [.3632.0020.0002] # CANADIAN SYLLABICS CARRIER LHI
+1633 ; [.3633.0020.0002] # CANADIAN SYLLABICS CARRIER LHA
+1634 ; [.3634.0020.0002] # CANADIAN SYLLABICS CARRIER TLHU
+1635 ; [.3635.0020.0002] # CANADIAN SYLLABICS CARRIER TLHO
+1636 ; [.3636.0020.0002] # CANADIAN SYLLABICS CARRIER TLHE
+1637 ; [.3637.0020.0002] # CANADIAN SYLLABICS CARRIER TLHEE
+1638 ; [.3638.0020.0002] # CANADIAN SYLLABICS CARRIER TLHI
+1639 ; [.3639.0020.0002] # CANADIAN SYLLABICS CARRIER TLHA
+163A ; [.363A.0020.0002] # CANADIAN SYLLABICS CARRIER TLU
+163B ; [.363B.0020.0002] # CANADIAN SYLLABICS CARRIER TLO
+163C ; [.363C.0020.0002] # CANADIAN SYLLABICS CARRIER TLE
+163D ; [.363D.0020.0002] # CANADIAN SYLLABICS CARRIER TLEE
+163E ; [.363E.0020.0002] # CANADIAN SYLLABICS CARRIER TLI
+163F ; [.363F.0020.0002] # CANADIAN SYLLABICS CARRIER TLA
+1640 ; [.3640.0020.0002] # CANADIAN SYLLABICS CARRIER ZU
+1641 ; [.3641.0020.0002] # CANADIAN SYLLABICS CARRIER ZO
+1642 ; [.3642.0020.0002] # CANADIAN SYLLABICS CARRIER ZE
+1643 ; [.3643.0020.0002] # CANADIAN SYLLABICS CARRIER ZEE
+1644 ; [.3644.0020.0002] # CANADIAN SYLLABICS CARRIER ZI
+1645 ; [.3645.0020.0002] # CANADIAN SYLLABICS CARRIER ZA
+1646 ; [.3646.0020.0002] # CANADIAN SYLLABICS CARRIER Z
+1647 ; [.3647.0020.0002] # CANADIAN SYLLABICS CARRIER INITIAL Z
+1648 ; [.3648.0020.0002] # CANADIAN SYLLABICS CARRIER DZU
+1649 ; [.3649.0020.0002] # CANADIAN SYLLABICS CARRIER DZO
+164A ; [.364A.0020.0002] # CANADIAN SYLLABICS CARRIER DZE
+164B ; [.364B.0020.0002] # CANADIAN SYLLABICS CARRIER DZEE
+164C ; [.364C.0020.0002] # CANADIAN SYLLABICS CARRIER DZI
+164D ; [.364D.0020.0002] # CANADIAN SYLLABICS CARRIER DZA
+164E ; [.364E.0020.0002] # CANADIAN SYLLABICS CARRIER SU
+164F ; [.364F.0020.0002] # CANADIAN SYLLABICS CARRIER SO
+1650 ; [.3650.0020.0002] # CANADIAN SYLLABICS CARRIER SE
+1651 ; [.3651.0020.0002] # CANADIAN SYLLABICS CARRIER SEE
+1652 ; [.3652.0020.0002] # CANADIAN SYLLABICS CARRIER SI
+1653 ; [.3653.0020.0002] # CANADIAN SYLLABICS CARRIER SA
+1654 ; [.3654.0020.0002] # CANADIAN SYLLABICS CARRIER SHU
+1655 ; [.3655.0020.0002] # CANADIAN SYLLABICS CARRIER SHO
+1656 ; [.3656.0020.0002] # CANADIAN SYLLABICS CARRIER SHE
+1657 ; [.3657.0020.0002] # CANADIAN SYLLABICS CARRIER SHEE
+1658 ; [.3658.0020.0002] # CANADIAN SYLLABICS CARRIER SHI
+1659 ; [.3659.0020.0002] # CANADIAN SYLLABICS CARRIER SHA
+165A ; [.365A.0020.0002] # CANADIAN SYLLABICS CARRIER SH
+165B ; [.365B.0020.0002] # CANADIAN SYLLABICS CARRIER TSU
+165C ; [.365C.0020.0002] # CANADIAN SYLLABICS CARRIER TSO
+165D ; [.365D.0020.0002] # CANADIAN SYLLABICS CARRIER TSE
+165E ; [.365E.0020.0002] # CANADIAN SYLLABICS CARRIER TSEE
+165F ; [.365F.0020.0002] # CANADIAN SYLLABICS CARRIER TSI
+1660 ; [.3660.0020.0002] # CANADIAN SYLLABICS CARRIER TSA
+1661 ; [.3661.0020.0002] # CANADIAN SYLLABICS CARRIER CHU
+1662 ; [.3662.0020.0002] # CANADIAN SYLLABICS CARRIER CHO
+1663 ; [.3663.0020.0002] # CANADIAN SYLLABICS CARRIER CHE
+1664 ; [.3664.0020.0002] # CANADIAN SYLLABICS CARRIER CHEE
+1665 ; [.3665.0020.0002] # CANADIAN SYLLABICS CARRIER CHI
+1666 ; [.3666.0020.0002] # CANADIAN SYLLABICS CARRIER CHA
+1667 ; [.3667.0020.0002] # CANADIAN SYLLABICS CARRIER TTSU
+1668 ; [.3668.0020.0002] # CANADIAN SYLLABICS CARRIER TTSO
+1669 ; [.3669.0020.0002] # CANADIAN SYLLABICS CARRIER TTSE
+166A ; [.366A.0020.0002] # CANADIAN SYLLABICS CARRIER TTSEE
+166B ; [.366B.0020.0002] # CANADIAN SYLLABICS CARRIER TTSI
+166C ; [.366C.0020.0002] # CANADIAN SYLLABICS CARRIER TTSA
+1677 ; [.366D.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWEE
+1678 ; [.366E.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWI
+1679 ; [.366F.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWII
+167A ; [.3670.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWO
+167B ; [.3671.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWOO
+167C ; [.3672.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWA
+167D ; [.3673.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWAA
+167E ; [.3674.0020.0002] # CANADIAN SYLLABICS WOODS-CREE FINAL TH
+167F ; [.3675.0020.0002] # CANADIAN SYLLABICS BLACKFOOT W
+18B0 ; [.3676.0020.0002] # CANADIAN SYLLABICS OY
+18B1 ; [.3677.0020.0002] # CANADIAN SYLLABICS AY
+18B2 ; [.3678.0020.0002] # CANADIAN SYLLABICS AAY
+18B3 ; [.3679.0020.0002] # CANADIAN SYLLABICS WAY
+18B4 ; [.367A.0020.0002] # CANADIAN SYLLABICS POY
+18B5 ; [.367B.0020.0002] # CANADIAN SYLLABICS PAY
+18B6 ; [.367C.0020.0002] # CANADIAN SYLLABICS PWOY
+18B7 ; [.367D.0020.0002] # CANADIAN SYLLABICS TAY
+18B8 ; [.367E.0020.0002] # CANADIAN SYLLABICS KAY
+18B9 ; [.367F.0020.0002] # CANADIAN SYLLABICS KWAY
+18BA ; [.3680.0020.0002] # CANADIAN SYLLABICS MAY
+18BB ; [.3681.0020.0002] # CANADIAN SYLLABICS NOY
+18BC ; [.3682.0020.0002] # CANADIAN SYLLABICS NAY
+18BD ; [.3683.0020.0002] # CANADIAN SYLLABICS LAY
+18BE ; [.3684.0020.0002] # CANADIAN SYLLABICS SOY
+18BF ; [.3685.0020.0002] # CANADIAN SYLLABICS SAY
+18C0 ; [.3686.0020.0002] # CANADIAN SYLLABICS SHOY
+18C1 ; [.3687.0020.0002] # CANADIAN SYLLABICS SHAY
+18C2 ; [.3688.0020.0002] # CANADIAN SYLLABICS SHWOY
+18C3 ; [.3689.0020.0002] # CANADIAN SYLLABICS YOY
+18C4 ; [.368A.0020.0002] # CANADIAN SYLLABICS YAY
+18C5 ; [.368B.0020.0002] # CANADIAN SYLLABICS RAY
+18C6 ; [.368C.0020.0002] # CANADIAN SYLLABICS NWI
+18C7 ; [.368D.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWI
+18C8 ; [.368E.0020.0002] # CANADIAN SYLLABICS NWII
+18C9 ; [.368F.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWII
+18CA ; [.3690.0020.0002] # CANADIAN SYLLABICS NWO
+18CB ; [.3691.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWO
+18CC ; [.3692.0020.0002] # CANADIAN SYLLABICS NWOO
+18CD ; [.3693.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWOO
+18CE ; [.3694.0020.0002] # CANADIAN SYLLABICS RWEE
+18CF ; [.3695.0020.0002] # CANADIAN SYLLABICS RWI
+18D0 ; [.3696.0020.0002] # CANADIAN SYLLABICS RWII
+18D1 ; [.3697.0020.0002] # CANADIAN SYLLABICS RWO
+18D2 ; [.3698.0020.0002] # CANADIAN SYLLABICS RWOO
+18D3 ; [.3699.0020.0002] # CANADIAN SYLLABICS RWA
+18D4 ; [.369A.0020.0002] # CANADIAN SYLLABICS OJIBWAY P
+18D5 ; [.369B.0020.0002] # CANADIAN SYLLABICS OJIBWAY T
+18D6 ; [.369C.0020.0002] # CANADIAN SYLLABICS OJIBWAY K
+18D7 ; [.369D.0020.0002] # CANADIAN SYLLABICS OJIBWAY C
+18D8 ; [.369E.0020.0002] # CANADIAN SYLLABICS OJIBWAY M
+18D9 ; [.369F.0020.0002] # CANADIAN SYLLABICS OJIBWAY N
+18DA ; [.36A0.0020.0002] # CANADIAN SYLLABICS OJIBWAY S
+18DB ; [.36A1.0020.0002] # CANADIAN SYLLABICS OJIBWAY SH
+18DC ; [.36A2.0020.0002] # CANADIAN SYLLABICS EASTERN W
+18DD ; [.36A3.0020.0002] # CANADIAN SYLLABICS WESTERN W
+18DE ; [.36A4.0020.0002] # CANADIAN SYLLABICS FINAL SMALL RING
+18DF ; [.36A5.0020.0002] # CANADIAN SYLLABICS FINAL RAISED DOT
+18E0 ; [.36A6.0020.0002] # CANADIAN SYLLABICS R-CREE RWE
+18E1 ; [.36A7.0020.0002] # CANADIAN SYLLABICS WEST-CREE LOO
+18E2 ; [.36A8.0020.0002] # CANADIAN SYLLABICS WEST-CREE LAA
+18E3 ; [.36A9.0020.0002] # CANADIAN SYLLABICS THWE
+18E4 ; [.36AA.0020.0002] # CANADIAN SYLLABICS THWA
+18E5 ; [.36AB.0020.0002] # CANADIAN SYLLABICS TTHWE
+18E6 ; [.36AC.0020.0002] # CANADIAN SYLLABICS TTHOO
+18E7 ; [.36AD.0020.0002] # CANADIAN SYLLABICS TTHAA
+18E8 ; [.36AE.0020.0002] # CANADIAN SYLLABICS TLHWE
+18E9 ; [.36AF.0020.0002] # CANADIAN SYLLABICS TLHOO
+18EA ; [.36B0.0020.0002] # CANADIAN SYLLABICS SAYISI SHWE
+18EB ; [.36B1.0020.0002] # CANADIAN SYLLABICS SAYISI SHOO
+18EC ; [.36B2.0020.0002] # CANADIAN SYLLABICS SAYISI HOO
+18ED ; [.36B3.0020.0002] # CANADIAN SYLLABICS CARRIER GWU
+18EE ; [.36B4.0020.0002] # CANADIAN SYLLABICS CARRIER DENE GEE
+18EF ; [.36B5.0020.0002] # CANADIAN SYLLABICS CARRIER GAA
+18F0 ; [.36B6.0020.0002] # CANADIAN SYLLABICS CARRIER GWA
+18F1 ; [.36B7.0020.0002] # CANADIAN SYLLABICS SAYISI JUU
+18F2 ; [.36B8.0020.0002] # CANADIAN SYLLABICS CARRIER JWA
+18F3 ; [.36B9.0020.0002] # CANADIAN SYLLABICS BEAVER DENE L
+18F4 ; [.36BA.0020.0002] # CANADIAN SYLLABICS BEAVER DENE R
+18F5 ; [.36BB.0020.0002] # CANADIAN SYLLABICS CARRIER DENTAL S
+1681 ; [.36BC.0020.0002] # OGHAM LETTER BEITH
+1682 ; [.36BD.0020.0002] # OGHAM LETTER LUIS
+1683 ; [.36BE.0020.0002] # OGHAM LETTER FEARN
+1684 ; [.36BF.0020.0002] # OGHAM LETTER SAIL
+1685 ; [.36C0.0020.0002] # OGHAM LETTER NION
+1686 ; [.36C1.0020.0002] # OGHAM LETTER UATH
+1687 ; [.36C2.0020.0002] # OGHAM LETTER DAIR
+1688 ; [.36C3.0020.0002] # OGHAM LETTER TINNE
+1689 ; [.36C4.0020.0002] # OGHAM LETTER COLL
+168A ; [.36C5.0020.0002] # OGHAM LETTER CEIRT
+168B ; [.36C6.0020.0002] # OGHAM LETTER MUIN
+168C ; [.36C7.0020.0002] # OGHAM LETTER GORT
+168D ; [.36C8.0020.0002] # OGHAM LETTER NGEADAL
+168E ; [.36C9.0020.0002] # OGHAM LETTER STRAIF
+168F ; [.36CA.0020.0002] # OGHAM LETTER RUIS
+1690 ; [.36CB.0020.0002] # OGHAM LETTER AILM
+1691 ; [.36CC.0020.0002] # OGHAM LETTER ONN
+1692 ; [.36CD.0020.0002] # OGHAM LETTER UR
+1693 ; [.36CE.0020.0002] # OGHAM LETTER EADHADH
+1694 ; [.36CF.0020.0002] # OGHAM LETTER IODHADH
+1695 ; [.36D0.0020.0002] # OGHAM LETTER EABHADH
+1696 ; [.36D1.0020.0002] # OGHAM LETTER OR
+1697 ; [.36D2.0020.0002] # OGHAM LETTER UILLEANN
+1698 ; [.36D3.0020.0002] # OGHAM LETTER IFIN
+1699 ; [.36D4.0020.0002] # OGHAM LETTER EAMHANCHOLL
+169A ; [.36D5.0020.0002] # OGHAM LETTER PEITH
+16A0 ; [.36D6.0020.0002] # RUNIC LETTER FEHU FEOH FE F
+16A1 ; [.36D6.0020.0004][.0000.0110.0004] # RUNIC LETTER V
+16A2 ; [.36D7.0020.0002] # RUNIC LETTER URUZ UR U
+16A4 ; [.36D7.0020.0004][.0000.0110.0004] # RUNIC LETTER Y
+16A5 ; [.36D7.0020.0004][.0000.0111.0004] # RUNIC LETTER W
+16A6 ; [.36D8.0020.0002] # RUNIC LETTER THURISAZ THURS THORN
+16A7 ; [.36D8.0020.0004][.0000.0110.0004] # RUNIC LETTER ETH
+16F0 ; [.36D8.0020.0004][.36D8.0020.0004] # RUNIC BELGTHOR SYMBOL
+16A8 ; [.36D9.0020.0002] # RUNIC LETTER ANSUZ A
+16A9 ; [.36D9.0020.0004][.0000.0110.0004] # RUNIC LETTER OS O
+16AC ; [.36D9.0020.0004][.0000.0111.0004] # RUNIC LETTER LONG-BRANCH-OSS O
+16AD ; [.36D9.0020.0004][.0000.0112.0004] # RUNIC LETTER SHORT-TWIG-OSS O
+16AE ; [.36D9.0020.0004][.0000.0113.0004] # RUNIC LETTER O
+16F4 ; [.36DA.0020.0002] # RUNIC LETTER FRANKS CASKET OS
+16AF ; [.36DB.0020.0002] # RUNIC LETTER OE
+16B0 ; [.36DC.0020.0002] # RUNIC LETTER ON
+16B1 ; [.36DD.0020.0002] # RUNIC LETTER RAIDO RAD REID R
+16B2 ; [.36DE.0020.0002] # RUNIC LETTER KAUNA
+16B3 ; [.36DE.0020.0004][.0000.0110.0004] # RUNIC LETTER CEN
+16B4 ; [.36DE.0020.0004][.0000.0111.0004] # RUNIC LETTER KAUN K
+16B5 ; [.36DE.0020.0004][.0000.0112.0004] # RUNIC LETTER G
+16B6 ; [.36DE.0020.0004][.0000.0113.0004] # RUNIC LETTER ENG
+16F1 ; [.36DF.0020.0002] # RUNIC LETTER K
+16B7 ; [.36E0.0020.0002] # RUNIC LETTER GEBO GYFU G
+16B9 ; [.36E1.0020.0002] # RUNIC LETTER WUNJO WYNN W
+16E9 ; [.36E1.0020.0004][.0000.0110.0004] # RUNIC LETTER Q
+16BA ; [.36E2.0020.0002] # RUNIC LETTER HAGLAZ H
+16BB ; [.36E2.0020.0004][.0000.0110.0004] # RUNIC LETTER HAEGL H
+16BC ; [.36E2.0020.0004][.0000.0111.0004] # RUNIC LETTER LONG-BRANCH-HAGALL H
+16BD ; [.36E2.0020.0004][.0000.0112.0004] # RUNIC LETTER SHORT-TWIG-HAGALL H
+16BE ; [.36E3.0020.0002] # RUNIC LETTER NAUDIZ NYD NAUD N
+16BF ; [.36E3.0020.0004][.0000.0110.0004] # RUNIC LETTER SHORT-TWIG-NAUD N
+16C0 ; [.36E3.0020.0004][.0000.0111.0004] # RUNIC LETTER DOTTED-N
+16C1 ; [.36E4.0020.0002] # RUNIC LETTER ISAZ IS ISS I
+16C2 ; [.36E4.0020.0004][.0000.0110.0004] # RUNIC LETTER E
+16F5 ; [.36E5.0020.0002] # RUNIC LETTER FRANKS CASKET IS
+16C3 ; [.36E6.0020.0002] # RUNIC LETTER JERAN J
+16C4 ; [.36E6.0020.0004][.0000.0110.0004] # RUNIC LETTER GER
+16C5 ; [.36E7.0020.0002] # RUNIC LETTER LONG-BRANCH-AR AE
+16C6 ; [.36E7.0020.0004][.0000.0110.0004] # RUNIC LETTER SHORT-TWIG-AR A
+16EE ; [.36E7.0020.0004][.36F2.0020.0004] # RUNIC ARLAUG SYMBOL
+16C7 ; [.36E8.0020.0002] # RUNIC LETTER IWAZ EOH
+16C8 ; [.36E9.0020.0002] # RUNIC LETTER PERTHO PEORTH P
+16D5 ; [.36E9.0020.0004][.0000.0110.0004] # RUNIC LETTER OPEN-P
+16C9 ; [.36EA.0020.0002] # RUNIC LETTER ALGIZ EOLHX
+16CA ; [.36EB.0020.0002] # RUNIC LETTER SOWILO S
+16CB ; [.36EB.0020.0004][.0000.0110.0004] # RUNIC LETTER SIGEL LONG-BRANCH-SOL S
+16EA ; [.36EB.0020.0004][.0000.0111.0004] # RUNIC LETTER X
+16CC ; [.36EB.0020.0004][.0000.0112.0004] # RUNIC LETTER SHORT-TWIG-SOL S
+16CD ; [.36EB.0020.0004][.0000.0113.0004] # RUNIC LETTER C
+16CE ; [.36EB.0020.0004][.0000.0114.0004] # RUNIC LETTER Z
+16F2 ; [.36EC.0020.0002] # RUNIC LETTER SH
+16CF ; [.36ED.0020.0002] # RUNIC LETTER TIWAZ TIR TYR T
+16D0 ; [.36ED.0020.0004][.0000.0110.0004] # RUNIC LETTER SHORT-TWIG-TYR T
+16D1 ; [.36ED.0020.0004][.0000.0111.0004] # RUNIC LETTER D
+16D2 ; [.36EE.0020.0002] # RUNIC LETTER BERKANAN BEORC BJARKAN B
+16D3 ; [.36EE.0020.0004][.0000.0110.0004] # RUNIC LETTER SHORT-TWIG-BJARKAN B
+16D4 ; [.36EE.0020.0004][.0000.0111.0004] # RUNIC LETTER DOTTED-P
+16D6 ; [.36EF.0020.0002] # RUNIC LETTER EHWAZ EH E
+16F6 ; [.36F0.0020.0002] # RUNIC LETTER FRANKS CASKET EH
+16D7 ; [.36F1.0020.0002] # RUNIC LETTER MANNAZ MAN M
+16D8 ; [.36F1.0020.0004][.0000.0110.0004] # RUNIC LETTER LONG-BRANCH-MADR M
+16D9 ; [.36F1.0020.0004][.0000.0111.0004] # RUNIC LETTER SHORT-TWIG-MADR M
+16EF ; [.36F1.0020.0004][.0000.0110.0004][.36F1.0020.0004][.0000.0110.0004] # RUNIC TVIMADUR SYMBOL
+16DA ; [.36F2.0020.0002] # RUNIC LETTER LAUKAZ LAGU LOGR L
+16DB ; [.36F2.0020.0004][.0000.0110.0004] # RUNIC LETTER DOTTED-L
+16DC ; [.36F3.0020.0002] # RUNIC LETTER INGWAZ
+16DD ; [.36F3.0020.0004][.0000.0110.0004] # RUNIC LETTER ING
+16DE ; [.36F4.0020.0002] # RUNIC LETTER DAGAZ DAEG D
+16DF ; [.36F5.0020.0002] # RUNIC LETTER OTHALAN ETHEL O
+16F3 ; [.36F6.0020.0002] # RUNIC LETTER OO
+16AA ; [.36F7.0020.0002] # RUNIC LETTER AC A
+16F7 ; [.36F8.0020.0002] # RUNIC LETTER FRANKS CASKET AC
+16AB ; [.36F9.0020.0002] # RUNIC LETTER AESC
+16F8 ; [.36FA.0020.0002] # RUNIC LETTER FRANKS CASKET AESC
+16A3 ; [.36FB.0020.0002] # RUNIC LETTER YR
+16E0 ; [.36FC.0020.0002] # RUNIC LETTER EAR
+16E3 ; [.36FD.0020.0002] # RUNIC LETTER CALC
+16B8 ; [.36FE.0020.0002] # RUNIC LETTER GAR
+16E4 ; [.36FF.0020.0002] # RUNIC LETTER CEALC
+16E1 ; [.3700.0020.0002] # RUNIC LETTER IOR
+16E2 ; [.3701.0020.0002] # RUNIC LETTER CWEORTH
+16E5 ; [.3702.0020.0002] # RUNIC LETTER STAN
+16E6 ; [.3703.0020.0002] # RUNIC LETTER LONG-BRANCH-YR
+16E7 ; [.3703.0020.0004][.0000.0110.0004] # RUNIC LETTER SHORT-TWIG-YR
+16E8 ; [.3703.0020.0004][.0000.0111.0004] # RUNIC LETTER ICELANDIC-YR
+10CC0 ; [.3704.0020.0002] # OLD HUNGARIAN SMALL LETTER A
+10C80 ; [.3704.0020.0008] # OLD HUNGARIAN CAPITAL LETTER A
+10CC1 ; [.3704.0020.0004][.0000.0110.0004] # OLD HUNGARIAN SMALL LETTER AA
+10C81 ; [.3704.0020.000A][.0000.0110.0004] # OLD HUNGARIAN CAPITAL LETTER AA
+10CC2 ; [.3705.0020.0002] # OLD HUNGARIAN SMALL LETTER EB
+10C82 ; [.3705.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EB
+10CC3 ; [.3706.0020.0002] # OLD HUNGARIAN SMALL LETTER AMB
+10C83 ; [.3706.0020.0008] # OLD HUNGARIAN CAPITAL LETTER AMB
+10CC4 ; [.3707.0020.0002] # OLD HUNGARIAN SMALL LETTER EC
+10C84 ; [.3707.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EC
+10CC5 ; [.3708.0020.0002] # OLD HUNGARIAN SMALL LETTER ENC
+10C85 ; [.3708.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ENC
+10CC6 ; [.3709.0020.0002] # OLD HUNGARIAN SMALL LETTER ECS
+10C86 ; [.3709.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ECS
+10CC7 ; [.370A.0020.0002] # OLD HUNGARIAN SMALL LETTER ED
+10C87 ; [.370A.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ED
+10CC8 ; [.370B.0020.0002] # OLD HUNGARIAN SMALL LETTER AND
+10C88 ; [.370B.0020.0008] # OLD HUNGARIAN CAPITAL LETTER AND
+10CC9 ; [.370C.0020.0002] # OLD HUNGARIAN SMALL LETTER E
+10C89 ; [.370C.0020.0008] # OLD HUNGARIAN CAPITAL LETTER E
+10CCA ; [.370C.0020.0004][.0000.0110.0004] # OLD HUNGARIAN SMALL LETTER CLOSE E
+10C8A ; [.370C.0020.000A][.0000.0110.0004] # OLD HUNGARIAN CAPITAL LETTER CLOSE E
+10CCB ; [.370C.0020.0004][.0000.0111.0004] # OLD HUNGARIAN SMALL LETTER EE
+10C8B ; [.370C.0020.000A][.0000.0111.0004] # OLD HUNGARIAN CAPITAL LETTER EE
+10CCC ; [.370D.0020.0002] # OLD HUNGARIAN SMALL LETTER EF
+10C8C ; [.370D.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EF
+10CCD ; [.370E.0020.0002] # OLD HUNGARIAN SMALL LETTER EG
+10C8D ; [.370E.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EG
+10CCE ; [.370F.0020.0002] # OLD HUNGARIAN SMALL LETTER EGY
+10C8E ; [.370F.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EGY
+10CCF ; [.3710.0020.0002] # OLD HUNGARIAN SMALL LETTER EH
+10C8F ; [.3710.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EH
+10CD0 ; [.3711.0020.0002] # OLD HUNGARIAN SMALL LETTER I
+10C90 ; [.3711.0020.0008] # OLD HUNGARIAN CAPITAL LETTER I
+10CD1 ; [.3711.0020.0004][.0000.0110.0004] # OLD HUNGARIAN SMALL LETTER II
+10C91 ; [.3711.0020.000A][.0000.0110.0004] # OLD HUNGARIAN CAPITAL LETTER II
+10CD2 ; [.3712.0020.0002] # OLD HUNGARIAN SMALL LETTER EJ
+10C92 ; [.3712.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EJ
+10CD3 ; [.3713.0020.0002] # OLD HUNGARIAN SMALL LETTER EK
+10C93 ; [.3713.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EK
+10CD4 ; [.3714.0020.0002] # OLD HUNGARIAN SMALL LETTER AK
+10C94 ; [.3714.0020.0008] # OLD HUNGARIAN CAPITAL LETTER AK
+10CD5 ; [.3715.0020.0002] # OLD HUNGARIAN SMALL LETTER UNK
+10C95 ; [.3715.0020.0008] # OLD HUNGARIAN CAPITAL LETTER UNK
+10CD6 ; [.3716.0020.0002] # OLD HUNGARIAN SMALL LETTER EL
+10C96 ; [.3716.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EL
+10CD7 ; [.3717.0020.0002] # OLD HUNGARIAN SMALL LETTER ELY
+10C97 ; [.3717.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ELY
+10CD8 ; [.3718.0020.0002] # OLD HUNGARIAN SMALL LETTER EM
+10C98 ; [.3718.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EM
+10CD9 ; [.3719.0020.0002] # OLD HUNGARIAN SMALL LETTER EN
+10C99 ; [.3719.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EN
+10CDA ; [.371A.0020.0002] # OLD HUNGARIAN SMALL LETTER ENY
+10C9A ; [.371A.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ENY
+10CDB ; [.371B.0020.0002] # OLD HUNGARIAN SMALL LETTER O
+10C9B ; [.371B.0020.0008] # OLD HUNGARIAN CAPITAL LETTER O
+10CDC ; [.371B.0020.0004][.0000.0110.0004] # OLD HUNGARIAN SMALL LETTER OO
+10C9C ; [.371B.0020.000A][.0000.0110.0004] # OLD HUNGARIAN CAPITAL LETTER OO
+10CDD ; [.371C.0020.0002] # OLD HUNGARIAN SMALL LETTER NIKOLSBURG OE
+10C9D ; [.371C.0020.0008] # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE
+10CDE ; [.371C.0020.0004][.0000.0110.0004] # OLD HUNGARIAN SMALL LETTER RUDIMENTA OE
+10C9E ; [.371C.0020.000A][.0000.0110.0004] # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE
+10CDF ; [.371C.0020.0004][.0000.0111.0004] # OLD HUNGARIAN SMALL LETTER OEE
+10C9F ; [.371C.0020.000A][.0000.0111.0004] # OLD HUNGARIAN CAPITAL LETTER OEE
+10CE0 ; [.371D.0020.0002] # OLD HUNGARIAN SMALL LETTER EP
+10CA0 ; [.371D.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EP
+10CE1 ; [.371E.0020.0002] # OLD HUNGARIAN SMALL LETTER EMP
+10CA1 ; [.371E.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EMP
+10CE2 ; [.371F.0020.0002] # OLD HUNGARIAN SMALL LETTER ER
+10CA2 ; [.371F.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ER
+10CE3 ; [.371F.0020.0004][.0000.0110.0004] # OLD HUNGARIAN SMALL LETTER SHORT ER
+10CA3 ; [.371F.0020.000A][.0000.0110.0004] # OLD HUNGARIAN CAPITAL LETTER SHORT ER
+10CE4 ; [.3720.0020.0002] # OLD HUNGARIAN SMALL LETTER ES
+10CA4 ; [.3720.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ES
+10CE5 ; [.3721.0020.0002] # OLD HUNGARIAN SMALL LETTER ESZ
+10CA5 ; [.3721.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ESZ
+10CE6 ; [.3722.0020.0002] # OLD HUNGARIAN SMALL LETTER ET
+10CA6 ; [.3722.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ET
+10CE7 ; [.3723.0020.0002] # OLD HUNGARIAN SMALL LETTER ENT
+10CA7 ; [.3723.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ENT
+10CE8 ; [.3724.0020.0002] # OLD HUNGARIAN SMALL LETTER ETY
+10CA8 ; [.3724.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ETY
+10CE9 ; [.3725.0020.0002] # OLD HUNGARIAN SMALL LETTER ECH
+10CA9 ; [.3725.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ECH
+10CEA ; [.3726.0020.0002] # OLD HUNGARIAN SMALL LETTER U
+10CAA ; [.3726.0020.0008] # OLD HUNGARIAN CAPITAL LETTER U
+10CEB ; [.3726.0020.0004][.0000.0110.0004] # OLD HUNGARIAN SMALL LETTER UU
+10CAB ; [.3726.0020.000A][.0000.0110.0004] # OLD HUNGARIAN CAPITAL LETTER UU
+10CEC ; [.3727.0020.0002] # OLD HUNGARIAN SMALL LETTER NIKOLSBURG UE
+10CAC ; [.3727.0020.0008] # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE
+10CED ; [.3727.0020.0004][.0000.0110.0004] # OLD HUNGARIAN SMALL LETTER RUDIMENTA UE
+10CAD ; [.3727.0020.000A][.0000.0110.0004] # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE
+10CEE ; [.3728.0020.0002] # OLD HUNGARIAN SMALL LETTER EV
+10CAE ; [.3728.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EV
+10CEF ; [.3729.0020.0002] # OLD HUNGARIAN SMALL LETTER EZ
+10CAF ; [.3729.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EZ
+10CF0 ; [.372A.0020.0002] # OLD HUNGARIAN SMALL LETTER EZS
+10CB0 ; [.372A.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EZS
+10CF1 ; [.372B.0020.0002] # OLD HUNGARIAN SMALL LETTER ENT-SHAPED SIGN
+10CB1 ; [.372B.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN
+10CF2 ; [.372C.0020.0002] # OLD HUNGARIAN SMALL LETTER US
+10CB2 ; [.372C.0020.0008] # OLD HUNGARIAN CAPITAL LETTER US
+10C00 ; [.372D.0020.0002] # OLD TURKIC LETTER ORKHON A
+10C01 ; [.372D.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI A
+10C02 ; [.372E.0020.0002] # OLD TURKIC LETTER YENISEI AE
+10C03 ; [.372F.0020.0002] # OLD TURKIC LETTER ORKHON I
+10C04 ; [.372F.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI I
+10C05 ; [.3730.0020.0002] # OLD TURKIC LETTER YENISEI E
+10C06 ; [.3731.0020.0002] # OLD TURKIC LETTER ORKHON O
+10C07 ; [.3732.0020.0002] # OLD TURKIC LETTER ORKHON OE
+10C08 ; [.3732.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI OE
+10C09 ; [.3733.0020.0002] # OLD TURKIC LETTER ORKHON AB
+10C0A ; [.3733.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AB
+10C0B ; [.3734.0020.0002] # OLD TURKIC LETTER ORKHON AEB
+10C0C ; [.3734.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AEB
+10C0D ; [.3735.0020.0002] # OLD TURKIC LETTER ORKHON AG
+10C0E ; [.3735.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AG
+10C0F ; [.3736.0020.0002] # OLD TURKIC LETTER ORKHON AEG
+10C10 ; [.3736.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AEG
+10C11 ; [.3737.0020.0002] # OLD TURKIC LETTER ORKHON AD
+10C12 ; [.3737.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AD
+10C13 ; [.3738.0020.0002] # OLD TURKIC LETTER ORKHON AED
+10C14 ; [.3739.0020.0002] # OLD TURKIC LETTER ORKHON EZ
+10C15 ; [.3739.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI EZ
+10C16 ; [.373A.0020.0002] # OLD TURKIC LETTER ORKHON AY
+10C17 ; [.373A.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AY
+10C18 ; [.373B.0020.0002] # OLD TURKIC LETTER ORKHON AEY
+10C19 ; [.373B.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AEY
+10C1A ; [.373C.0020.0002] # OLD TURKIC LETTER ORKHON AEK
+10C1B ; [.373C.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AEK
+10C1C ; [.373D.0020.0002] # OLD TURKIC LETTER ORKHON OEK
+10C1D ; [.373D.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI OEK
+10C1E ; [.373E.0020.0002] # OLD TURKIC LETTER ORKHON AL
+10C1F ; [.373E.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AL
+10C20 ; [.373F.0020.0002] # OLD TURKIC LETTER ORKHON AEL
+10C21 ; [.3740.0020.0002] # OLD TURKIC LETTER ORKHON ELT
+10C22 ; [.3741.0020.0002] # OLD TURKIC LETTER ORKHON EM
+10C23 ; [.3742.0020.0002] # OLD TURKIC LETTER ORKHON AN
+10C24 ; [.3743.0020.0002] # OLD TURKIC LETTER ORKHON AEN
+10C25 ; [.3743.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AEN
+10C26 ; [.3744.0020.0002] # OLD TURKIC LETTER ORKHON ENT
+10C27 ; [.3744.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI ENT
+10C28 ; [.3745.0020.0002] # OLD TURKIC LETTER ORKHON ENC
+10C29 ; [.3745.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI ENC
+10C2A ; [.3746.0020.0002] # OLD TURKIC LETTER ORKHON ENY
+10C2B ; [.3746.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI ENY
+10C2C ; [.3747.0020.0002] # OLD TURKIC LETTER YENISEI ANG
+10C2D ; [.3748.0020.0002] # OLD TURKIC LETTER ORKHON ENG
+10C2E ; [.3748.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AENG
+10C2F ; [.3749.0020.0002] # OLD TURKIC LETTER ORKHON EP
+10C30 ; [.374A.0020.0002] # OLD TURKIC LETTER ORKHON OP
+10C31 ; [.374B.0020.0002] # OLD TURKIC LETTER ORKHON IC
+10C32 ; [.374C.0020.0002] # OLD TURKIC LETTER ORKHON EC
+10C33 ; [.374C.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI EC
+10C34 ; [.374D.0020.0002] # OLD TURKIC LETTER ORKHON AQ
+10C35 ; [.374D.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AQ
+10C36 ; [.374E.0020.0002] # OLD TURKIC LETTER ORKHON IQ
+10C37 ; [.374E.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI IQ
+10C38 ; [.374F.0020.0002] # OLD TURKIC LETTER ORKHON OQ
+10C39 ; [.374F.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI OQ
+10C3A ; [.3750.0020.0002] # OLD TURKIC LETTER ORKHON AR
+10C3B ; [.3750.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AR
+10C3C ; [.3751.0020.0002] # OLD TURKIC LETTER ORKHON AER
+10C3D ; [.3752.0020.0002] # OLD TURKIC LETTER ORKHON AS
+10C3E ; [.3753.0020.0002] # OLD TURKIC LETTER ORKHON AES
+10C3F ; [.3754.0020.0002] # OLD TURKIC LETTER ORKHON ASH
+10C40 ; [.3754.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI ASH
+10C41 ; [.3755.0020.0002] # OLD TURKIC LETTER ORKHON ESH
+10C42 ; [.3755.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI ESH
+10C43 ; [.3756.0020.0002] # OLD TURKIC LETTER ORKHON AT
+10C44 ; [.3756.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AT
+10C45 ; [.3757.0020.0002] # OLD TURKIC LETTER ORKHON AET
+10C46 ; [.3757.0020.0004][.0000.0110.0004] # OLD TURKIC LETTER YENISEI AET
+10C47 ; [.3758.0020.0002] # OLD TURKIC LETTER ORKHON OT
+10C48 ; [.3759.0020.0002] # OLD TURKIC LETTER ORKHON BASH
+A500 ; [.375A.0020.0002] # VAI SYLLABLE EE
+A501 ; [.375B.0020.0002] # VAI SYLLABLE EEN
+A502 ; [.375C.0020.0002] # VAI SYLLABLE HEE
+A503 ; [.375D.0020.0002] # VAI SYLLABLE WEE
+A504 ; [.375E.0020.0002] # VAI SYLLABLE WEEN
+A505 ; [.375F.0020.0002] # VAI SYLLABLE PEE
+A506 ; [.3760.0020.0002] # VAI SYLLABLE BHEE
+A507 ; [.3761.0020.0002] # VAI SYLLABLE BEE
+A508 ; [.3762.0020.0002] # VAI SYLLABLE MBEE
+A509 ; [.3763.0020.0002] # VAI SYLLABLE KPEE
+A50A ; [.3764.0020.0002] # VAI SYLLABLE MGBEE
+A50B ; [.3765.0020.0002] # VAI SYLLABLE GBEE
+A50C ; [.3766.0020.0002] # VAI SYLLABLE FEE
+A613 ; [.3766.0020.0004][.3865.0020.0004] # VAI SYMBOL FEENG
+A50D ; [.3767.0020.0002] # VAI SYLLABLE VEE
+A50E ; [.3768.0020.0002] # VAI SYLLABLE TEE
+A50F ; [.3769.0020.0002] # VAI SYLLABLE THEE
+A510 ; [.376A.0020.0002] # VAI SYLLABLE DHEE
+A511 ; [.376B.0020.0002] # VAI SYLLABLE DHHEE
+A512 ; [.376C.0020.0002] # VAI SYLLABLE LEE
+A513 ; [.376D.0020.0002] # VAI SYLLABLE REE
+A514 ; [.376E.0020.0002] # VAI SYLLABLE DEE
+A515 ; [.376F.0020.0002] # VAI SYLLABLE NDEE
+A516 ; [.3770.0020.0002] # VAI SYLLABLE SEE
+A517 ; [.3771.0020.0002] # VAI SYLLABLE SHEE
+A518 ; [.3772.0020.0002] # VAI SYLLABLE ZEE
+A519 ; [.3773.0020.0002] # VAI SYLLABLE ZHEE
+A51A ; [.3774.0020.0002] # VAI SYLLABLE CEE
+A51B ; [.3775.0020.0002] # VAI SYLLABLE JEE
+A51C ; [.3776.0020.0002] # VAI SYLLABLE NJEE
+A51D ; [.3777.0020.0002] # VAI SYLLABLE YEE
+A51E ; [.3778.0020.0002] # VAI SYLLABLE KEE
+A614 ; [.3778.0020.0004][.3865.0020.0004] # VAI SYMBOL KEENG
+A51F ; [.3779.0020.0002] # VAI SYLLABLE NGGEE
+A520 ; [.377A.0020.0002] # VAI SYLLABLE GEE
+A521 ; [.377B.0020.0002] # VAI SYLLABLE MEE
+A522 ; [.377C.0020.0002] # VAI SYLLABLE NEE
+A523 ; [.377D.0020.0002] # VAI SYLLABLE NYEE
+A524 ; [.377E.0020.0002] # VAI SYLLABLE I
+A525 ; [.377F.0020.0002] # VAI SYLLABLE IN
+A526 ; [.3780.0020.0002] # VAI SYLLABLE HI
+A527 ; [.3781.0020.0002] # VAI SYLLABLE HIN
+A528 ; [.3782.0020.0002] # VAI SYLLABLE WI
+A529 ; [.3783.0020.0002] # VAI SYLLABLE WIN
+A52A ; [.3784.0020.0002] # VAI SYLLABLE PI
+A52B ; [.3785.0020.0002] # VAI SYLLABLE BHI
+A52C ; [.3786.0020.0002] # VAI SYLLABLE BI
+A52D ; [.3787.0020.0002] # VAI SYLLABLE MBI
+A52E ; [.3788.0020.0002] # VAI SYLLABLE KPI
+A52F ; [.3789.0020.0002] # VAI SYLLABLE MGBI
+A530 ; [.378A.0020.0002] # VAI SYLLABLE GBI
+A531 ; [.378B.0020.0002] # VAI SYLLABLE FI
+A532 ; [.378C.0020.0002] # VAI SYLLABLE VI
+A533 ; [.378D.0020.0002] # VAI SYLLABLE TI
+A615 ; [.378D.0020.0004][.3865.0020.0004] # VAI SYMBOL TING
+A534 ; [.378E.0020.0002] # VAI SYLLABLE THI
+A535 ; [.378F.0020.0002] # VAI SYLLABLE DHI
+A536 ; [.3790.0020.0002] # VAI SYLLABLE DHHI
+A537 ; [.3791.0020.0002] # VAI SYLLABLE LI
+A538 ; [.3792.0020.0002] # VAI SYLLABLE RI
+A539 ; [.3793.0020.0002] # VAI SYLLABLE DI
+A53A ; [.3794.0020.0002] # VAI SYLLABLE NDI
+A53B ; [.3795.0020.0002] # VAI SYLLABLE SI
+A53C ; [.3796.0020.0002] # VAI SYLLABLE SHI
+A53D ; [.3797.0020.0002] # VAI SYLLABLE ZI
+A53E ; [.3798.0020.0002] # VAI SYLLABLE ZHI
+A53F ; [.3799.0020.0002] # VAI SYLLABLE CI
+A540 ; [.379A.0020.0002] # VAI SYLLABLE JI
+A541 ; [.379B.0020.0002] # VAI SYLLABLE NJI
+A542 ; [.379C.0020.0002] # VAI SYLLABLE YI
+A543 ; [.379D.0020.0002] # VAI SYLLABLE KI
+A544 ; [.379E.0020.0002] # VAI SYLLABLE NGGI
+A545 ; [.379F.0020.0002] # VAI SYLLABLE GI
+A546 ; [.37A0.0020.0002] # VAI SYLLABLE MI
+A547 ; [.37A1.0020.0002] # VAI SYLLABLE NI
+A616 ; [.37A1.0020.0004][.3866.0020.0004] # VAI SYMBOL NII
+A548 ; [.37A2.0020.0002] # VAI SYLLABLE NYI
+A549 ; [.37A3.0020.0002] # VAI SYLLABLE A
+A54A ; [.37A4.0020.0002] # VAI SYLLABLE AN
+A54B ; [.37A5.0020.0002] # VAI SYLLABLE NGAN
+A54C ; [.37A6.0020.0002] # VAI SYLLABLE HA
+A54D ; [.37A7.0020.0002] # VAI SYLLABLE HAN
+A54E ; [.37A8.0020.0002] # VAI SYLLABLE WA
+A54F ; [.37A9.0020.0002] # VAI SYLLABLE WAN
+A550 ; [.37AA.0020.0002] # VAI SYLLABLE PA
+A551 ; [.37AB.0020.0002] # VAI SYLLABLE BHA
+A552 ; [.37AC.0020.0002] # VAI SYLLABLE BA
+A617 ; [.37AC.0020.0004][.3865.0020.0004] # VAI SYMBOL BANG
+A553 ; [.37AD.0020.0002] # VAI SYLLABLE MBA
+A554 ; [.37AE.0020.0002] # VAI SYLLABLE KPA
+A555 ; [.37AF.0020.0002] # VAI SYLLABLE KPAN
+A556 ; [.37B0.0020.0002] # VAI SYLLABLE MGBA
+A557 ; [.37B1.0020.0002] # VAI SYLLABLE GBA
+A558 ; [.37B2.0020.0002] # VAI SYLLABLE FA
+A610 ; [.37B2.0020.0004] # VAI SYLLABLE NDOLE FA
+A618 ; [.37B2.0020.0004][.3866.0020.0004] # VAI SYMBOL FAA
+A559 ; [.37B3.0020.0002] # VAI SYLLABLE VA
+A55A ; [.37B4.0020.0002] # VAI SYLLABLE TA
+A619 ; [.37B4.0020.0004][.3866.0020.0004] # VAI SYMBOL TAA
+A55B ; [.37B5.0020.0002] # VAI SYLLABLE THA
+A55C ; [.37B6.0020.0002] # VAI SYLLABLE DHA
+A55D ; [.37B7.0020.0002] # VAI SYLLABLE DHHA
+A55E ; [.37B8.0020.0002] # VAI SYLLABLE LA
+A55F ; [.37B9.0020.0002] # VAI SYLLABLE RA
+A560 ; [.37BA.0020.0002] # VAI SYLLABLE DA
+A61A ; [.37BA.0020.0004][.3865.0020.0004] # VAI SYMBOL DANG
+A561 ; [.37BB.0020.0002] # VAI SYLLABLE NDA
+A562 ; [.37BC.0020.0002] # VAI SYLLABLE SA
+A563 ; [.37BD.0020.0002] # VAI SYLLABLE SHA
+A564 ; [.37BE.0020.0002] # VAI SYLLABLE ZA
+A565 ; [.37BF.0020.0002] # VAI SYLLABLE ZHA
+A566 ; [.37C0.0020.0002] # VAI SYLLABLE CA
+A567 ; [.37C1.0020.0002] # VAI SYLLABLE JA
+A568 ; [.37C2.0020.0002] # VAI SYLLABLE NJA
+A569 ; [.37C3.0020.0002] # VAI SYLLABLE YA
+A56A ; [.37C4.0020.0002] # VAI SYLLABLE KA
+A611 ; [.37C4.0020.0004] # VAI SYLLABLE NDOLE KA
+A56B ; [.37C5.0020.0002] # VAI SYLLABLE KAN
+A56C ; [.37C6.0020.0002] # VAI SYLLABLE NGGA
+A56D ; [.37C7.0020.0002] # VAI SYLLABLE GA
+A56E ; [.37C8.0020.0002] # VAI SYLLABLE MA
+A62A ; [.37C8.0020.0004] # VAI SYLLABLE NDOLE MA
+A56F ; [.37C9.0020.0002] # VAI SYLLABLE NA
+A570 ; [.37CA.0020.0002] # VAI SYLLABLE NYA
+A571 ; [.37CB.0020.0002] # VAI SYLLABLE OO
+A572 ; [.37CC.0020.0002] # VAI SYLLABLE OON
+A573 ; [.37CD.0020.0002] # VAI SYLLABLE HOO
+A574 ; [.37CE.0020.0002] # VAI SYLLABLE WOO
+A575 ; [.37CF.0020.0002] # VAI SYLLABLE WOON
+A576 ; [.37D0.0020.0002] # VAI SYLLABLE POO
+A577 ; [.37D1.0020.0002] # VAI SYLLABLE BHOO
+A578 ; [.37D2.0020.0002] # VAI SYLLABLE BOO
+A579 ; [.37D3.0020.0002] # VAI SYLLABLE MBOO
+A57A ; [.37D4.0020.0002] # VAI SYLLABLE KPOO
+A57B ; [.37D5.0020.0002] # VAI SYLLABLE MGBOO
+A57C ; [.37D6.0020.0002] # VAI SYLLABLE GBOO
+A57D ; [.37D7.0020.0002] # VAI SYLLABLE FOO
+A57E ; [.37D8.0020.0002] # VAI SYLLABLE VOO
+A57F ; [.37D9.0020.0002] # VAI SYLLABLE TOO
+A580 ; [.37DA.0020.0002] # VAI SYLLABLE THOO
+A581 ; [.37DB.0020.0002] # VAI SYLLABLE DHOO
+A582 ; [.37DC.0020.0002] # VAI SYLLABLE DHHOO
+A583 ; [.37DD.0020.0002] # VAI SYLLABLE LOO
+A584 ; [.37DE.0020.0002] # VAI SYLLABLE ROO
+A585 ; [.37DF.0020.0002] # VAI SYLLABLE DOO
+A61B ; [.37DF.0020.0004][.3865.0020.0004] # VAI SYMBOL DOONG
+A586 ; [.37E0.0020.0002] # VAI SYLLABLE NDOO
+A587 ; [.37E1.0020.0002] # VAI SYLLABLE SOO
+A612 ; [.37E1.0020.0004] # VAI SYLLABLE NDOLE SOO
+A588 ; [.37E2.0020.0002] # VAI SYLLABLE SHOO
+A589 ; [.37E3.0020.0002] # VAI SYLLABLE ZOO
+A58A ; [.37E4.0020.0002] # VAI SYLLABLE ZHOO
+A58B ; [.37E5.0020.0002] # VAI SYLLABLE COO
+A58C ; [.37E6.0020.0002] # VAI SYLLABLE JOO
+A58D ; [.37E7.0020.0002] # VAI SYLLABLE NJOO
+A58E ; [.37E8.0020.0002] # VAI SYLLABLE YOO
+A58F ; [.37E9.0020.0002] # VAI SYLLABLE KOO
+A590 ; [.37EA.0020.0002] # VAI SYLLABLE NGGOO
+A591 ; [.37EB.0020.0002] # VAI SYLLABLE GOO
+A592 ; [.37EC.0020.0002] # VAI SYLLABLE MOO
+A593 ; [.37ED.0020.0002] # VAI SYLLABLE NOO
+A594 ; [.37EE.0020.0002] # VAI SYLLABLE NYOO
+A595 ; [.37EF.0020.0002] # VAI SYLLABLE U
+A596 ; [.37F0.0020.0002] # VAI SYLLABLE UN
+A597 ; [.37F1.0020.0002] # VAI SYLLABLE HU
+A598 ; [.37F2.0020.0002] # VAI SYLLABLE HUN
+A599 ; [.37F3.0020.0002] # VAI SYLLABLE WU
+A59A ; [.37F4.0020.0002] # VAI SYLLABLE WUN
+A59B ; [.37F5.0020.0002] # VAI SYLLABLE PU
+A59C ; [.37F6.0020.0002] # VAI SYLLABLE BHU
+A59D ; [.37F7.0020.0002] # VAI SYLLABLE BU
+A59E ; [.37F8.0020.0002] # VAI SYLLABLE MBU
+A59F ; [.37F9.0020.0002] # VAI SYLLABLE KPU
+A5A0 ; [.37FA.0020.0002] # VAI SYLLABLE MGBU
+A5A1 ; [.37FB.0020.0002] # VAI SYLLABLE GBU
+A5A2 ; [.37FC.0020.0002] # VAI SYLLABLE FU
+A5A3 ; [.37FD.0020.0002] # VAI SYLLABLE VU
+A5A4 ; [.37FE.0020.0002] # VAI SYLLABLE TU
+A5A5 ; [.37FF.0020.0002] # VAI SYLLABLE THU
+A5A6 ; [.3800.0020.0002] # VAI SYLLABLE DHU
+A5A7 ; [.3801.0020.0002] # VAI SYLLABLE DHHU
+A5A8 ; [.3802.0020.0002] # VAI SYLLABLE LU
+A5A9 ; [.3803.0020.0002] # VAI SYLLABLE RU
+A5AA ; [.3804.0020.0002] # VAI SYLLABLE DU
+A5AB ; [.3805.0020.0002] # VAI SYLLABLE NDU
+A5AC ; [.3806.0020.0002] # VAI SYLLABLE SU
+A5AD ; [.3807.0020.0002] # VAI SYLLABLE SHU
+A5AE ; [.3808.0020.0002] # VAI SYLLABLE ZU
+A5AF ; [.3809.0020.0002] # VAI SYLLABLE ZHU
+A5B0 ; [.380A.0020.0002] # VAI SYLLABLE CU
+A5B1 ; [.380B.0020.0002] # VAI SYLLABLE JU
+A5B2 ; [.380C.0020.0002] # VAI SYLLABLE NJU
+A5B3 ; [.380D.0020.0002] # VAI SYLLABLE YU
+A5B4 ; [.380E.0020.0002] # VAI SYLLABLE KU
+A61C ; [.380E.0020.0004][.3865.0020.0004] # VAI SYMBOL KUNG
+A5B5 ; [.380F.0020.0002] # VAI SYLLABLE NGGU
+A5B6 ; [.3810.0020.0002] # VAI SYLLABLE GU
+A5B7 ; [.3811.0020.0002] # VAI SYLLABLE MU
+A5B8 ; [.3812.0020.0002] # VAI SYLLABLE NU
+A5B9 ; [.3813.0020.0002] # VAI SYLLABLE NYU
+A5BA ; [.3814.0020.0002] # VAI SYLLABLE O
+A5BB ; [.3815.0020.0002] # VAI SYLLABLE ON
+A5BC ; [.3816.0020.0002] # VAI SYLLABLE NGON
+A5BD ; [.3817.0020.0002] # VAI SYLLABLE HO
+A5BE ; [.3818.0020.0002] # VAI SYLLABLE HON
+A5BF ; [.3819.0020.0002] # VAI SYLLABLE WO
+A5C0 ; [.381A.0020.0002] # VAI SYLLABLE WON
+A5C1 ; [.381B.0020.0002] # VAI SYLLABLE PO
+A5C2 ; [.381C.0020.0002] # VAI SYLLABLE BHO
+A5C3 ; [.381D.0020.0002] # VAI SYLLABLE BO
+A5C4 ; [.381E.0020.0002] # VAI SYLLABLE MBO
+A5C5 ; [.381F.0020.0002] # VAI SYLLABLE KPO
+A5C6 ; [.3820.0020.0002] # VAI SYLLABLE MGBO
+A5C7 ; [.3821.0020.0002] # VAI SYLLABLE GBO
+A5C8 ; [.3822.0020.0002] # VAI SYLLABLE GBON
+A5C9 ; [.3823.0020.0002] # VAI SYLLABLE FO
+A5CA ; [.3824.0020.0002] # VAI SYLLABLE VO
+A5CB ; [.3825.0020.0002] # VAI SYLLABLE TO
+A61D ; [.3825.0020.0004][.3865.0020.0004] # VAI SYMBOL TONG
+A5CC ; [.3826.0020.0002] # VAI SYLLABLE THO
+A5CD ; [.3827.0020.0002] # VAI SYLLABLE DHO
+A5CE ; [.3828.0020.0002] # VAI SYLLABLE DHHO
+A5CF ; [.3829.0020.0002] # VAI SYLLABLE LO
+A5D0 ; [.382A.0020.0002] # VAI SYLLABLE RO
+A5D1 ; [.382B.0020.0002] # VAI SYLLABLE DO
+A62B ; [.382B.0020.0004] # VAI SYLLABLE NDOLE DO
+A61E ; [.382B.0020.0004][.3866.0020.0004] # VAI SYMBOL DO-O
+A5D2 ; [.382C.0020.0002] # VAI SYLLABLE NDO
+A5D3 ; [.382D.0020.0002] # VAI SYLLABLE SO
+A5D4 ; [.382E.0020.0002] # VAI SYLLABLE SHO
+A5D5 ; [.382F.0020.0002] # VAI SYLLABLE ZO
+A5D6 ; [.3830.0020.0002] # VAI SYLLABLE ZHO
+A5D7 ; [.3831.0020.0002] # VAI SYLLABLE CO
+A5D8 ; [.3832.0020.0002] # VAI SYLLABLE JO
+A61F ; [.3832.0020.0004][.3865.0020.0004] # VAI SYMBOL JONG
+A5D9 ; [.3833.0020.0002] # VAI SYLLABLE NJO
+A5DA ; [.3834.0020.0002] # VAI SYLLABLE YO
+A5DB ; [.3835.0020.0002] # VAI SYLLABLE KO
+A5DC ; [.3836.0020.0002] # VAI SYLLABLE NGGO
+A5DD ; [.3837.0020.0002] # VAI SYLLABLE GO
+A5DE ; [.3838.0020.0002] # VAI SYLLABLE MO
+A5DF ; [.3839.0020.0002] # VAI SYLLABLE NO
+A5E0 ; [.383A.0020.0002] # VAI SYLLABLE NYO
+A5E1 ; [.383B.0020.0002] # VAI SYLLABLE E
+A5E2 ; [.383C.0020.0002] # VAI SYLLABLE EN
+A5E3 ; [.383D.0020.0002] # VAI SYLLABLE NGEN
+A5E4 ; [.383E.0020.0002] # VAI SYLLABLE HE
+A5E5 ; [.383F.0020.0002] # VAI SYLLABLE HEN
+A5E6 ; [.3840.0020.0002] # VAI SYLLABLE WE
+A5E7 ; [.3841.0020.0002] # VAI SYLLABLE WEN
+A5E8 ; [.3842.0020.0002] # VAI SYLLABLE PE
+A5E9 ; [.3843.0020.0002] # VAI SYLLABLE BHE
+A5EA ; [.3844.0020.0002] # VAI SYLLABLE BE
+A5EB ; [.3845.0020.0002] # VAI SYLLABLE MBE
+A5EC ; [.3846.0020.0002] # VAI SYLLABLE KPE
+A5ED ; [.3847.0020.0002] # VAI SYLLABLE KPEN
+A5EE ; [.3848.0020.0002] # VAI SYLLABLE MGBE
+A5EF ; [.3849.0020.0002] # VAI SYLLABLE GBE
+A5F0 ; [.384A.0020.0002] # VAI SYLLABLE GBEN
+A5F1 ; [.384B.0020.0002] # VAI SYLLABLE FE
+A5F2 ; [.384C.0020.0002] # VAI SYLLABLE VE
+A5F3 ; [.384D.0020.0002] # VAI SYLLABLE TE
+A5F4 ; [.384E.0020.0002] # VAI SYLLABLE THE
+A5F5 ; [.384F.0020.0002] # VAI SYLLABLE DHE
+A5F6 ; [.3850.0020.0002] # VAI SYLLABLE DHHE
+A5F7 ; [.3851.0020.0002] # VAI SYLLABLE LE
+A5F8 ; [.3852.0020.0002] # VAI SYLLABLE RE
+A5F9 ; [.3853.0020.0002] # VAI SYLLABLE DE
+A5FA ; [.3854.0020.0002] # VAI SYLLABLE NDE
+A5FB ; [.3855.0020.0002] # VAI SYLLABLE SE
+A5FC ; [.3856.0020.0002] # VAI SYLLABLE SHE
+A5FD ; [.3857.0020.0002] # VAI SYLLABLE ZE
+A5FE ; [.3858.0020.0002] # VAI SYLLABLE ZHE
+A5FF ; [.3859.0020.0002] # VAI SYLLABLE CE
+A600 ; [.385A.0020.0002] # VAI SYLLABLE JE
+A601 ; [.385B.0020.0002] # VAI SYLLABLE NJE
+A602 ; [.385C.0020.0002] # VAI SYLLABLE YE
+A603 ; [.385D.0020.0002] # VAI SYLLABLE KE
+A604 ; [.385E.0020.0002] # VAI SYLLABLE NGGE
+A605 ; [.385F.0020.0002] # VAI SYLLABLE NGGEN
+A606 ; [.3860.0020.0002] # VAI SYLLABLE GE
+A607 ; [.3861.0020.0002] # VAI SYLLABLE GEN
+A608 ; [.3862.0020.0002] # VAI SYLLABLE ME
+A609 ; [.3863.0020.0002] # VAI SYLLABLE NE
+A60A ; [.3864.0020.0002] # VAI SYLLABLE NYE
+A60B ; [.3865.0020.0002] # VAI SYLLABLE NG
+A60C ; [.3866.0020.0002] # VAI SYLLABLE LENGTHENER
+A6A0 ; [.3867.0020.0002] # BAMUM LETTER A
+A6A1 ; [.3868.0020.0002] # BAMUM LETTER KA
+A6A2 ; [.3869.0020.0002] # BAMUM LETTER U
+A6A3 ; [.386A.0020.0002] # BAMUM LETTER KU
+A6A4 ; [.386B.0020.0002] # BAMUM LETTER EE
+A6A5 ; [.386C.0020.0002] # BAMUM LETTER REE
+A6A6 ; [.386D.0020.0002] # BAMUM LETTER TAE
+A6A7 ; [.386E.0020.0002] # BAMUM LETTER O
+A6A8 ; [.386F.0020.0002] # BAMUM LETTER NYI
+A6A9 ; [.3870.0020.0002] # BAMUM LETTER I
+A6AA ; [.3871.0020.0002] # BAMUM LETTER LA
+A6AB ; [.3872.0020.0002] # BAMUM LETTER PA
+A6AC ; [.3873.0020.0002] # BAMUM LETTER RII
+A6AD ; [.3874.0020.0002] # BAMUM LETTER RIEE
+A6AE ; [.3875.0020.0002] # BAMUM LETTER LEEEE
+A6AF ; [.3876.0020.0002] # BAMUM LETTER MEEEE
+A6B0 ; [.3877.0020.0002] # BAMUM LETTER TAA
+A6B1 ; [.3878.0020.0002] # BAMUM LETTER NDAA
+A6B2 ; [.3879.0020.0002] # BAMUM LETTER NJAEM
+A6B3 ; [.387A.0020.0002] # BAMUM LETTER M
+A6B4 ; [.387B.0020.0002] # BAMUM LETTER SUU
+A6B5 ; [.387C.0020.0002] # BAMUM LETTER MU
+A6B6 ; [.387D.0020.0002] # BAMUM LETTER SHII
+A6B7 ; [.387E.0020.0002] # BAMUM LETTER SI
+A6B8 ; [.387F.0020.0002] # BAMUM LETTER SHEUX
+A6B9 ; [.3880.0020.0002] # BAMUM LETTER SEUX
+A6BA ; [.3881.0020.0002] # BAMUM LETTER KYEE
+A6BB ; [.3882.0020.0002] # BAMUM LETTER KET
+A6BC ; [.3883.0020.0002] # BAMUM LETTER NUAE
+A6BD ; [.3884.0020.0002] # BAMUM LETTER NU
+A6BE ; [.3885.0020.0002] # BAMUM LETTER NJUAE
+A6BF ; [.3886.0020.0002] # BAMUM LETTER YOQ
+A6C0 ; [.3887.0020.0002] # BAMUM LETTER SHU
+A6C1 ; [.3888.0020.0002] # BAMUM LETTER YUQ
+A6C2 ; [.3889.0020.0002] # BAMUM LETTER YA
+A6C3 ; [.388A.0020.0002] # BAMUM LETTER NSHA
+A6C4 ; [.388B.0020.0002] # BAMUM LETTER KEUX
+A6C5 ; [.388C.0020.0002] # BAMUM LETTER PEUX
+A6C6 ; [.388D.0020.0002] # BAMUM LETTER NJEE
+A6C7 ; [.388E.0020.0002] # BAMUM LETTER NTEE
+A6C8 ; [.388F.0020.0002] # BAMUM LETTER PUE
+A6C9 ; [.3890.0020.0002] # BAMUM LETTER WUE
+A6CA ; [.3891.0020.0002] # BAMUM LETTER PEE
+A6CB ; [.3892.0020.0002] # BAMUM LETTER FEE
+A6CC ; [.3893.0020.0002] # BAMUM LETTER RU
+A6CD ; [.3894.0020.0002] # BAMUM LETTER LU
+A6CE ; [.3895.0020.0002] # BAMUM LETTER MI
+A6CF ; [.3896.0020.0002] # BAMUM LETTER NI
+A6D0 ; [.3897.0020.0002] # BAMUM LETTER REUX
+A6D1 ; [.3898.0020.0002] # BAMUM LETTER RAE
+A6D2 ; [.3899.0020.0002] # BAMUM LETTER KEN
+A6D3 ; [.389A.0020.0002] # BAMUM LETTER NGKWAEN
+A6D4 ; [.389B.0020.0002] # BAMUM LETTER NGGA
+A6D5 ; [.389C.0020.0002] # BAMUM LETTER NGA
+A6D6 ; [.389D.0020.0002] # BAMUM LETTER SHO
+A6D7 ; [.389E.0020.0002] # BAMUM LETTER PUAE
+A6D8 ; [.389F.0020.0002] # BAMUM LETTER FU
+A6D9 ; [.38A0.0020.0002] # BAMUM LETTER FOM
+A6DA ; [.38A1.0020.0002] # BAMUM LETTER WA
+A6DB ; [.38A2.0020.0002] # BAMUM LETTER NA
+A6DC ; [.38A3.0020.0002] # BAMUM LETTER LI
+A6DD ; [.38A4.0020.0002] # BAMUM LETTER PI
+A6DE ; [.38A5.0020.0002] # BAMUM LETTER LOQ
+A6DF ; [.38A6.0020.0002] # BAMUM LETTER KO
+A6E0 ; [.38A7.0020.0002] # BAMUM LETTER MBEN
+A6E1 ; [.38A8.0020.0002] # BAMUM LETTER REN
+A6E2 ; [.38A9.0020.0002] # BAMUM LETTER MEN
+A6E3 ; [.38AA.0020.0002] # BAMUM LETTER MA
+A6E4 ; [.38AB.0020.0002] # BAMUM LETTER TI
+A6E5 ; [.38AC.0020.0002] # BAMUM LETTER KI
+A6E6 ; [.38AD.0020.0002] # BAMUM LETTER MO
+A6E7 ; [.38AE.0020.0002] # BAMUM LETTER MBAA
+A6E8 ; [.38AF.0020.0002] # BAMUM LETTER TET
+A6E9 ; [.38B0.0020.0002] # BAMUM LETTER KPA
+A6EA ; [.38B1.0020.0002] # BAMUM LETTER TEN
+A6EB ; [.38B2.0020.0002] # BAMUM LETTER NTUU
+A6EC ; [.38B3.0020.0002] # BAMUM LETTER SAMBA
+A6ED ; [.38B4.0020.0002] # BAMUM LETTER FAAMAE
+A6EE ; [.38B5.0020.0002] # BAMUM LETTER KOVUU
+A6EF ; [.38B6.0020.0002] # BAMUM LETTER KOGHOM
+16800 ; [.38B7.0020.0002] # BAMUM LETTER PHASE-A NGKUE MFON
+16801 ; [.38B8.0020.0002] # BAMUM LETTER PHASE-A GBIEE FON
+16802 ; [.38B9.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
+16803 ; [.38BA.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMBA
+16804 ; [.38BB.0020.0002] # BAMUM LETTER PHASE-A NAA MFON
+16805 ; [.38BC.0020.0002] # BAMUM LETTER PHASE-A SHUENSHUET
+16806 ; [.38BD.0020.0002] # BAMUM LETTER PHASE-A TITA MFON
+16807 ; [.38BE.0020.0002] # BAMUM LETTER PHASE-A NZA MFON
+16808 ; [.38BF.0020.0002] # BAMUM LETTER PHASE-A SHINDA PA NJI
+16809 ; [.38C0.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
+1680A ; [.38C1.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
+1680B ; [.38C2.0020.0002] # BAMUM LETTER PHASE-A MAEMBGBIEE
+1680C ; [.38C3.0020.0002] # BAMUM LETTER PHASE-A TU MAEMBA
+1680D ; [.38C4.0020.0002] # BAMUM LETTER PHASE-A NGANGU
+1680E ; [.38C5.0020.0002] # BAMUM LETTER PHASE-A MAEMVEUX
+1680F ; [.38C6.0020.0002] # BAMUM LETTER PHASE-A MANSUAE
+16810 ; [.38C7.0020.0002] # BAMUM LETTER PHASE-A MVEUAENGAM
+16811 ; [.38C8.0020.0002] # BAMUM LETTER PHASE-A SEUNYAM
+16812 ; [.38C9.0020.0002] # BAMUM LETTER PHASE-A NTOQPEN
+16813 ; [.38CA.0020.0002] # BAMUM LETTER PHASE-A KEUKEUTNDA
+16814 ; [.38CB.0020.0002] # BAMUM LETTER PHASE-A NKINDI
+16815 ; [.38CC.0020.0002] # BAMUM LETTER PHASE-A SUU
+16816 ; [.38CD.0020.0002] # BAMUM LETTER PHASE-A NGKUENZEUM
+16817 ; [.38CE.0020.0002] # BAMUM LETTER PHASE-A LAPAQ
+16818 ; [.38CF.0020.0002] # BAMUM LETTER PHASE-A LET KUT
+16819 ; [.38D0.0020.0002] # BAMUM LETTER PHASE-A NTAP MFAA
+1681A ; [.38D1.0020.0002] # BAMUM LETTER PHASE-A MAEKEUP
+1681B ; [.38D2.0020.0002] # BAMUM LETTER PHASE-A PASHAE
+1681C ; [.38D3.0020.0002] # BAMUM LETTER PHASE-A GHEUAERAE
+1681D ; [.38D4.0020.0002] # BAMUM LETTER PHASE-A PAMSHAE
+1681E ; [.38D5.0020.0002] # BAMUM LETTER PHASE-A MON NGGEUAET
+1681F ; [.38D6.0020.0002] # BAMUM LETTER PHASE-A NZUN MEUT
+16820 ; [.38D7.0020.0002] # BAMUM LETTER PHASE-A U YUQ NAE
+16821 ; [.38D8.0020.0002] # BAMUM LETTER PHASE-A GHEUAEGHEUAE
+16822 ; [.38D9.0020.0002] # BAMUM LETTER PHASE-A NTAP NTAA
+16823 ; [.38DA.0020.0002] # BAMUM LETTER PHASE-A SISA
+16824 ; [.38DB.0020.0002] # BAMUM LETTER PHASE-A MGBASA
+16825 ; [.38DC.0020.0002] # BAMUM LETTER PHASE-A MEUNJOMNDEUQ
+16826 ; [.38DD.0020.0002] # BAMUM LETTER PHASE-A MOOMPUQ
+16827 ; [.38DE.0020.0002] # BAMUM LETTER PHASE-A KAFA
+16828 ; [.38DF.0020.0002] # BAMUM LETTER PHASE-A PA LEERAEWA
+16829 ; [.38E0.0020.0002] # BAMUM LETTER PHASE-A NDA LEERAEWA
+1682A ; [.38E1.0020.0002] # BAMUM LETTER PHASE-A PET
+1682B ; [.38E2.0020.0002] # BAMUM LETTER PHASE-A MAEMKPEN
+1682C ; [.38E3.0020.0002] # BAMUM LETTER PHASE-A NIKA
+1682D ; [.38E4.0020.0002] # BAMUM LETTER PHASE-A PUP
+1682E ; [.38E5.0020.0002] # BAMUM LETTER PHASE-A TUAEP
+1682F ; [.38E6.0020.0002] # BAMUM LETTER PHASE-A LUAEP
+16830 ; [.38E7.0020.0002] # BAMUM LETTER PHASE-A SONJAM
+16831 ; [.38E8.0020.0002] # BAMUM LETTER PHASE-A TEUTEUWEN
+16832 ; [.38E9.0020.0002] # BAMUM LETTER PHASE-A MAENYI
+16833 ; [.38EA.0020.0002] # BAMUM LETTER PHASE-A KET
+16834 ; [.38EB.0020.0002] # BAMUM LETTER PHASE-A NDAANGGEUAET
+16835 ; [.38EC.0020.0002] # BAMUM LETTER PHASE-A KUOQ
+16836 ; [.38ED.0020.0002] # BAMUM LETTER PHASE-A MOOMEUT
+16837 ; [.38EE.0020.0002] # BAMUM LETTER PHASE-A SHUM
+16838 ; [.38EF.0020.0002] # BAMUM LETTER PHASE-A LOMMAE
+16839 ; [.38F0.0020.0002] # BAMUM LETTER PHASE-A FIRI
+1683A ; [.38F1.0020.0002] # BAMUM LETTER PHASE-A ROM
+1683B ; [.38F2.0020.0002] # BAMUM LETTER PHASE-A KPOQ
+1683C ; [.38F3.0020.0002] # BAMUM LETTER PHASE-A SOQ
+1683D ; [.38F4.0020.0002] # BAMUM LETTER PHASE-A MAP PIEET
+1683E ; [.38F5.0020.0002] # BAMUM LETTER PHASE-A SHIRAE
+1683F ; [.38F6.0020.0002] # BAMUM LETTER PHASE-A NTAP
+16840 ; [.38F7.0020.0002] # BAMUM LETTER PHASE-A SHOQ NSHUT YUM
+16841 ; [.38F8.0020.0002] # BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
+16842 ; [.38F9.0020.0002] # BAMUM LETTER PHASE-A PAARAE
+16843 ; [.38FA.0020.0002] # BAMUM LETTER PHASE-A NKAARAE
+16844 ; [.38FB.0020.0002] # BAMUM LETTER PHASE-A UNKNOWN
+16845 ; [.38FC.0020.0002] # BAMUM LETTER PHASE-A NGGEN
+16846 ; [.38FD.0020.0002] # BAMUM LETTER PHASE-A MAESI
+16847 ; [.38FE.0020.0002] # BAMUM LETTER PHASE-A NJAM
+16848 ; [.38FF.0020.0002] # BAMUM LETTER PHASE-A MBANYI
+16849 ; [.3900.0020.0002] # BAMUM LETTER PHASE-A NYET
+1684A ; [.3901.0020.0002] # BAMUM LETTER PHASE-A TEUAEN
+1684B ; [.3902.0020.0002] # BAMUM LETTER PHASE-A SOT
+1684C ; [.3903.0020.0002] # BAMUM LETTER PHASE-A PAAM
+1684D ; [.3904.0020.0002] # BAMUM LETTER PHASE-A NSHIEE
+1684E ; [.3905.0020.0002] # BAMUM LETTER PHASE-A MAEM
+1684F ; [.3906.0020.0002] # BAMUM LETTER PHASE-A NYI
+16850 ; [.3907.0020.0002] # BAMUM LETTER PHASE-A KAQ
+16851 ; [.3908.0020.0002] # BAMUM LETTER PHASE-A NSHA
+16852 ; [.3909.0020.0002] # BAMUM LETTER PHASE-A VEE
+16853 ; [.390A.0020.0002] # BAMUM LETTER PHASE-A LU
+16854 ; [.390B.0020.0002] # BAMUM LETTER PHASE-A NEN
+16855 ; [.390C.0020.0002] # BAMUM LETTER PHASE-A NAQ
+16856 ; [.390D.0020.0002] # BAMUM LETTER PHASE-A MBAQ
+16857 ; [.390E.0020.0002] # BAMUM LETTER PHASE-B NSHUET
+16858 ; [.390F.0020.0002] # BAMUM LETTER PHASE-B TU MAEMGBIEE
+16859 ; [.3910.0020.0002] # BAMUM LETTER PHASE-B SIEE
+1685A ; [.3911.0020.0002] # BAMUM LETTER PHASE-B SET TU
+1685B ; [.3912.0020.0002] # BAMUM LETTER PHASE-B LOM NTEUM
+1685C ; [.3913.0020.0002] # BAMUM LETTER PHASE-B MBA MAELEE
+1685D ; [.3914.0020.0002] # BAMUM LETTER PHASE-B KIEEM
+1685E ; [.3915.0020.0002] # BAMUM LETTER PHASE-B YEURAE
+1685F ; [.3916.0020.0002] # BAMUM LETTER PHASE-B MBAARAE
+16860 ; [.3917.0020.0002] # BAMUM LETTER PHASE-B KAM
+16861 ; [.3918.0020.0002] # BAMUM LETTER PHASE-B PEESHI
+16862 ; [.3919.0020.0002] # BAMUM LETTER PHASE-B YAFU LEERAEWA
+16863 ; [.391A.0020.0002] # BAMUM LETTER PHASE-B LAM NSHUT NYAM
+16864 ; [.391B.0020.0002] # BAMUM LETTER PHASE-B NTIEE SHEUOQ
+16865 ; [.391C.0020.0002] # BAMUM LETTER PHASE-B NDU NJAA
+16866 ; [.391D.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEUAEM
+16867 ; [.391E.0020.0002] # BAMUM LETTER PHASE-B PIT
+16868 ; [.391F.0020.0002] # BAMUM LETTER PHASE-B TU NSIEE
+16869 ; [.3920.0020.0002] # BAMUM LETTER PHASE-B SHET NJAQ
+1686A ; [.3921.0020.0002] # BAMUM LETTER PHASE-B SHEUAEQTU
+1686B ; [.3922.0020.0002] # BAMUM LETTER PHASE-B MFON TEUAEQ
+1686C ; [.3923.0020.0002] # BAMUM LETTER PHASE-B MBIT MBAAKET
+1686D ; [.3924.0020.0002] # BAMUM LETTER PHASE-B NYI NTEUM
+1686E ; [.3925.0020.0002] # BAMUM LETTER PHASE-B KEUPUQ
+1686F ; [.3926.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEN
+16870 ; [.3927.0020.0002] # BAMUM LETTER PHASE-B KEUYEUX
+16871 ; [.3928.0020.0002] # BAMUM LETTER PHASE-B LAANAE
+16872 ; [.3929.0020.0002] # BAMUM LETTER PHASE-B PARUM
+16873 ; [.392A.0020.0002] # BAMUM LETTER PHASE-B VEUM
+16874 ; [.392B.0020.0002] # BAMUM LETTER PHASE-B NGKINDI MVOP
+16875 ; [.392C.0020.0002] # BAMUM LETTER PHASE-B NGGEU MBU
+16876 ; [.392D.0020.0002] # BAMUM LETTER PHASE-B WUAET
+16877 ; [.392E.0020.0002] # BAMUM LETTER PHASE-B SAKEUAE
+16878 ; [.392F.0020.0002] # BAMUM LETTER PHASE-B TAAM
+16879 ; [.3930.0020.0002] # BAMUM LETTER PHASE-B MEUQ
+1687A ; [.3931.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ
+1687B ; [.3932.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ LARGE
+1687C ; [.3933.0020.0002] # BAMUM LETTER PHASE-B MFIYAQ
+1687D ; [.3934.0020.0002] # BAMUM LETTER PHASE-B SUE
+1687E ; [.3935.0020.0002] # BAMUM LETTER PHASE-B MBEURI
+1687F ; [.3936.0020.0002] # BAMUM LETTER PHASE-B MONTIEEN
+16880 ; [.3937.0020.0002] # BAMUM LETTER PHASE-B NYAEMAE
+16881 ; [.3938.0020.0002] # BAMUM LETTER PHASE-B PUNGAAM
+16882 ; [.3939.0020.0002] # BAMUM LETTER PHASE-B MEUT NGGEET
+16883 ; [.393A.0020.0002] # BAMUM LETTER PHASE-B FEUX
+16884 ; [.393B.0020.0002] # BAMUM LETTER PHASE-B MBUOQ
+16885 ; [.393C.0020.0002] # BAMUM LETTER PHASE-B FEE
+16886 ; [.393D.0020.0002] # BAMUM LETTER PHASE-B KEUAEM
+16887 ; [.393E.0020.0002] # BAMUM LETTER PHASE-B MA NJEUAENA
+16888 ; [.393F.0020.0002] # BAMUM LETTER PHASE-B MA NJUQA
+16889 ; [.3940.0020.0002] # BAMUM LETTER PHASE-B LET
+1688A ; [.3941.0020.0002] # BAMUM LETTER PHASE-B NGGAAM
+1688B ; [.3942.0020.0002] # BAMUM LETTER PHASE-B NSEN
+1688C ; [.3943.0020.0002] # BAMUM LETTER PHASE-B MA
+1688D ; [.3944.0020.0002] # BAMUM LETTER PHASE-B KIQ
+1688E ; [.3945.0020.0002] # BAMUM LETTER PHASE-B NGOM
+1688F ; [.3946.0020.0002] # BAMUM LETTER PHASE-C NGKUE MAEMBA
+16890 ; [.3947.0020.0002] # BAMUM LETTER PHASE-C NZA
+16891 ; [.3948.0020.0002] # BAMUM LETTER PHASE-C YUM
+16892 ; [.3949.0020.0002] # BAMUM LETTER PHASE-C WANGKUOQ
+16893 ; [.394A.0020.0002] # BAMUM LETTER PHASE-C NGGEN
+16894 ; [.394B.0020.0002] # BAMUM LETTER PHASE-C NDEUAEREE
+16895 ; [.394C.0020.0002] # BAMUM LETTER PHASE-C NGKAQ
+16896 ; [.394D.0020.0002] # BAMUM LETTER PHASE-C GHARAE
+16897 ; [.394E.0020.0002] # BAMUM LETTER PHASE-C MBEEKEET
+16898 ; [.394F.0020.0002] # BAMUM LETTER PHASE-C GBAYI
+16899 ; [.3950.0020.0002] # BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
+1689A ; [.3951.0020.0002] # BAMUM LETTER PHASE-C NTU MBIT
+1689B ; [.3952.0020.0002] # BAMUM LETTER PHASE-C MBEUM
+1689C ; [.3953.0020.0002] # BAMUM LETTER PHASE-C PIRIEEN
+1689D ; [.3954.0020.0002] # BAMUM LETTER PHASE-C NDOMBU
+1689E ; [.3955.0020.0002] # BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
+1689F ; [.3956.0020.0002] # BAMUM LETTER PHASE-C KEUSHEUAEP
+168A0 ; [.3957.0020.0002] # BAMUM LETTER PHASE-C GHAP
+168A1 ; [.3958.0020.0002] # BAMUM LETTER PHASE-C KEUKAQ
+168A2 ; [.3959.0020.0002] # BAMUM LETTER PHASE-C YU MUOMAE
+168A3 ; [.395A.0020.0002] # BAMUM LETTER PHASE-C NZEUM
+168A4 ; [.395B.0020.0002] # BAMUM LETTER PHASE-C MBUE
+168A5 ; [.395C.0020.0002] # BAMUM LETTER PHASE-C NSEUAEN
+168A6 ; [.395D.0020.0002] # BAMUM LETTER PHASE-C MBIT
+168A7 ; [.395E.0020.0002] # BAMUM LETTER PHASE-C YEUQ
+168A8 ; [.395F.0020.0002] # BAMUM LETTER PHASE-C KPARAQ
+168A9 ; [.3960.0020.0002] # BAMUM LETTER PHASE-C KAA
+168AA ; [.3961.0020.0002] # BAMUM LETTER PHASE-C SEUX
+168AB ; [.3962.0020.0002] # BAMUM LETTER PHASE-C NDIDA
+168AC ; [.3963.0020.0002] # BAMUM LETTER PHASE-C TAASHAE
+168AD ; [.3964.0020.0002] # BAMUM LETTER PHASE-C NJUEQ
+168AE ; [.3965.0020.0002] # BAMUM LETTER PHASE-C TITA YUE
+168AF ; [.3966.0020.0002] # BAMUM LETTER PHASE-C SUAET
+168B0 ; [.3967.0020.0002] # BAMUM LETTER PHASE-C NGGUAEN NYAM
+168B1 ; [.3968.0020.0002] # BAMUM LETTER PHASE-C VEUX
+168B2 ; [.3969.0020.0002] # BAMUM LETTER PHASE-C NANSANAQ
+168B3 ; [.396A.0020.0002] # BAMUM LETTER PHASE-C MA KEUAERI
+168B4 ; [.396B.0020.0002] # BAMUM LETTER PHASE-C NTAA
+168B5 ; [.396C.0020.0002] # BAMUM LETTER PHASE-C NGGUON
+168B6 ; [.396D.0020.0002] # BAMUM LETTER PHASE-C LAP
+168B7 ; [.396E.0020.0002] # BAMUM LETTER PHASE-C MBIRIEEN
+168B8 ; [.396F.0020.0002] # BAMUM LETTER PHASE-C MGBASAQ
+168B9 ; [.3970.0020.0002] # BAMUM LETTER PHASE-C NTEUNGBA
+168BA ; [.3971.0020.0002] # BAMUM LETTER PHASE-C TEUTEUX
+168BB ; [.3972.0020.0002] # BAMUM LETTER PHASE-C NGGUM
+168BC ; [.3973.0020.0002] # BAMUM LETTER PHASE-C FUE
+168BD ; [.3974.0020.0002] # BAMUM LETTER PHASE-C NDEUT
+168BE ; [.3975.0020.0002] # BAMUM LETTER PHASE-C NSA
+168BF ; [.3976.0020.0002] # BAMUM LETTER PHASE-C NSHAQ
+168C0 ; [.3977.0020.0002] # BAMUM LETTER PHASE-C BUNG
+168C1 ; [.3978.0020.0002] # BAMUM LETTER PHASE-C VEUAEPEN
+168C2 ; [.3979.0020.0002] # BAMUM LETTER PHASE-C MBERAE
+168C3 ; [.397A.0020.0002] # BAMUM LETTER PHASE-C RU
+168C4 ; [.397B.0020.0002] # BAMUM LETTER PHASE-C NJAEM
+168C5 ; [.397C.0020.0002] # BAMUM LETTER PHASE-C LAM
+168C6 ; [.397D.0020.0002] # BAMUM LETTER PHASE-C TITUAEP
+168C7 ; [.397E.0020.0002] # BAMUM LETTER PHASE-C NSUOT NGOM
+168C8 ; [.397F.0020.0002] # BAMUM LETTER PHASE-C NJEEEE
+168C9 ; [.3980.0020.0002] # BAMUM LETTER PHASE-C KET
+168CA ; [.3981.0020.0002] # BAMUM LETTER PHASE-C NGGU
+168CB ; [.3982.0020.0002] # BAMUM LETTER PHASE-C MAESI
+168CC ; [.3983.0020.0002] # BAMUM LETTER PHASE-C MBUAEM
+168CD ; [.3984.0020.0002] # BAMUM LETTER PHASE-C LU
+168CE ; [.3985.0020.0002] # BAMUM LETTER PHASE-C KUT
+168CF ; [.3986.0020.0002] # BAMUM LETTER PHASE-C NJAM
+168D0 ; [.3987.0020.0002] # BAMUM LETTER PHASE-C NGOM
+168D1 ; [.3988.0020.0002] # BAMUM LETTER PHASE-C WUP
+168D2 ; [.3989.0020.0002] # BAMUM LETTER PHASE-C NGGUEET
+168D3 ; [.398A.0020.0002] # BAMUM LETTER PHASE-C NSOM
+168D4 ; [.398B.0020.0002] # BAMUM LETTER PHASE-C NTEN
+168D5 ; [.398C.0020.0002] # BAMUM LETTER PHASE-C KUOP NKAARAE
+168D6 ; [.398D.0020.0002] # BAMUM LETTER PHASE-C NSUN
+168D7 ; [.398E.0020.0002] # BAMUM LETTER PHASE-C NDAM
+168D8 ; [.398F.0020.0002] # BAMUM LETTER PHASE-C MA NSIEE
+168D9 ; [.3990.0020.0002] # BAMUM LETTER PHASE-C YAA
+168DA ; [.3991.0020.0002] # BAMUM LETTER PHASE-C NDAP
+168DB ; [.3992.0020.0002] # BAMUM LETTER PHASE-C SHUEQ
+168DC ; [.3993.0020.0002] # BAMUM LETTER PHASE-C SETFON
+168DD ; [.3994.0020.0002] # BAMUM LETTER PHASE-C MBI
+168DE ; [.3995.0020.0002] # BAMUM LETTER PHASE-C MAEMBA
+168DF ; [.3996.0020.0002] # BAMUM LETTER PHASE-C MBANYI
+168E0 ; [.3997.0020.0002] # BAMUM LETTER PHASE-C KEUSEUX
+168E1 ; [.3998.0020.0002] # BAMUM LETTER PHASE-C MBEUX
+168E2 ; [.3999.0020.0002] # BAMUM LETTER PHASE-C KEUM
+168E3 ; [.399A.0020.0002] # BAMUM LETTER PHASE-C MBAA PICKET
+168E4 ; [.399B.0020.0002] # BAMUM LETTER PHASE-C YUWOQ
+168E5 ; [.399C.0020.0002] # BAMUM LETTER PHASE-C NJEUX
+168E6 ; [.399D.0020.0002] # BAMUM LETTER PHASE-C MIEE
+168E7 ; [.399E.0020.0002] # BAMUM LETTER PHASE-C MUAE
+168E8 ; [.399F.0020.0002] # BAMUM LETTER PHASE-C SHIQ
+168E9 ; [.39A0.0020.0002] # BAMUM LETTER PHASE-C KEN LAW
+168EA ; [.39A1.0020.0002] # BAMUM LETTER PHASE-C KEN FATIGUE
+168EB ; [.39A2.0020.0002] # BAMUM LETTER PHASE-C NGAQ
+168EC ; [.39A3.0020.0002] # BAMUM LETTER PHASE-C NAQ
+168ED ; [.39A4.0020.0002] # BAMUM LETTER PHASE-C LIQ
+168EE ; [.39A5.0020.0002] # BAMUM LETTER PHASE-C PIN
+168EF ; [.39A6.0020.0002] # BAMUM LETTER PHASE-C PEN
+168F0 ; [.39A7.0020.0002] # BAMUM LETTER PHASE-C TET
+168F1 ; [.39A8.0020.0002] # BAMUM LETTER PHASE-D MBUO
+168F2 ; [.39A9.0020.0002] # BAMUM LETTER PHASE-D WAP
+168F3 ; [.39AA.0020.0002] # BAMUM LETTER PHASE-D NJI
+168F4 ; [.39AB.0020.0002] # BAMUM LETTER PHASE-D MFON
+168F5 ; [.39AC.0020.0002] # BAMUM LETTER PHASE-D NJIEE
+168F6 ; [.39AD.0020.0002] # BAMUM LETTER PHASE-D LIEE
+168F7 ; [.39AE.0020.0002] # BAMUM LETTER PHASE-D NJEUT
+168F8 ; [.39AF.0020.0002] # BAMUM LETTER PHASE-D NSHEE
+168F9 ; [.39B0.0020.0002] # BAMUM LETTER PHASE-D NGGAAMAE
+168FA ; [.39B1.0020.0002] # BAMUM LETTER PHASE-D NYAM
+168FB ; [.39B2.0020.0002] # BAMUM LETTER PHASE-D WUAEN
+168FC ; [.39B3.0020.0002] # BAMUM LETTER PHASE-D NGKUN
+168FD ; [.39B4.0020.0002] # BAMUM LETTER PHASE-D SHEE
+168FE ; [.39B5.0020.0002] # BAMUM LETTER PHASE-D NGKAP
+168FF ; [.39B6.0020.0002] # BAMUM LETTER PHASE-D KEUAETMEUN
+16900 ; [.39B7.0020.0002] # BAMUM LETTER PHASE-D TEUT
+16901 ; [.39B8.0020.0002] # BAMUM LETTER PHASE-D SHEUAE
+16902 ; [.39B9.0020.0002] # BAMUM LETTER PHASE-D NJAP
+16903 ; [.39BA.0020.0002] # BAMUM LETTER PHASE-D SUE
+16904 ; [.39BB.0020.0002] # BAMUM LETTER PHASE-D KET
+16905 ; [.39BC.0020.0002] # BAMUM LETTER PHASE-D YAEMMAE
+16906 ; [.39BD.0020.0002] # BAMUM LETTER PHASE-D KUOM
+16907 ; [.39BE.0020.0002] # BAMUM LETTER PHASE-D SAP
+16908 ; [.39BF.0020.0002] # BAMUM LETTER PHASE-D MFEUT
+16909 ; [.39C0.0020.0002] # BAMUM LETTER PHASE-D NDEUX
+1690A ; [.39C1.0020.0002] # BAMUM LETTER PHASE-D MALEERI
+1690B ; [.39C2.0020.0002] # BAMUM LETTER PHASE-D MEUT
+1690C ; [.39C3.0020.0002] # BAMUM LETTER PHASE-D SEUAEQ
+1690D ; [.39C4.0020.0002] # BAMUM LETTER PHASE-D YEN
+1690E ; [.39C5.0020.0002] # BAMUM LETTER PHASE-D NJEUAEM
+1690F ; [.39C6.0020.0002] # BAMUM LETTER PHASE-D KEUOT MBUAE
+16910 ; [.39C7.0020.0002] # BAMUM LETTER PHASE-D NGKEURI
+16911 ; [.39C8.0020.0002] # BAMUM LETTER PHASE-D TU
+16912 ; [.39C9.0020.0002] # BAMUM LETTER PHASE-D GHAA
+16913 ; [.39CA.0020.0002] # BAMUM LETTER PHASE-D NGKYEE
+16914 ; [.39CB.0020.0002] # BAMUM LETTER PHASE-D FEUFEUAET
+16915 ; [.39CC.0020.0002] # BAMUM LETTER PHASE-D NDEE
+16916 ; [.39CD.0020.0002] # BAMUM LETTER PHASE-D MGBOFUM
+16917 ; [.39CE.0020.0002] # BAMUM LETTER PHASE-D LEUAEP
+16918 ; [.39CF.0020.0002] # BAMUM LETTER PHASE-D NDON
+16919 ; [.39D0.0020.0002] # BAMUM LETTER PHASE-D MONI
+1691A ; [.39D1.0020.0002] # BAMUM LETTER PHASE-D MGBEUN
+1691B ; [.39D2.0020.0002] # BAMUM LETTER PHASE-D PUUT
+1691C ; [.39D3.0020.0002] # BAMUM LETTER PHASE-D MGBIEE
+1691D ; [.39D4.0020.0002] # BAMUM LETTER PHASE-D MFO
+1691E ; [.39D5.0020.0002] # BAMUM LETTER PHASE-D LUM
+1691F ; [.39D6.0020.0002] # BAMUM LETTER PHASE-D NSIEEP
+16920 ; [.39D7.0020.0002] # BAMUM LETTER PHASE-D MBAA
+16921 ; [.39D8.0020.0002] # BAMUM LETTER PHASE-D KWAET
+16922 ; [.39D9.0020.0002] # BAMUM LETTER PHASE-D NYET
+16923 ; [.39DA.0020.0002] # BAMUM LETTER PHASE-D TEUAEN
+16924 ; [.39DB.0020.0002] # BAMUM LETTER PHASE-D SOT
+16925 ; [.39DC.0020.0002] # BAMUM LETTER PHASE-D YUWOQ
+16926 ; [.39DD.0020.0002] # BAMUM LETTER PHASE-D KEUM
+16927 ; [.39DE.0020.0002] # BAMUM LETTER PHASE-D RAEM
+16928 ; [.39DF.0020.0002] # BAMUM LETTER PHASE-D TEEEE
+16929 ; [.39E0.0020.0002] # BAMUM LETTER PHASE-D NGKEUAEQ
+1692A ; [.39E1.0020.0002] # BAMUM LETTER PHASE-D MFEUAE
+1692B ; [.39E2.0020.0002] # BAMUM LETTER PHASE-D NSIEET
+1692C ; [.39E3.0020.0002] # BAMUM LETTER PHASE-D KEUP
+1692D ; [.39E4.0020.0002] # BAMUM LETTER PHASE-D PIP
+1692E ; [.39E5.0020.0002] # BAMUM LETTER PHASE-D PEUTAE
+1692F ; [.39E6.0020.0002] # BAMUM LETTER PHASE-D NYUE
+16930 ; [.39E7.0020.0002] # BAMUM LETTER PHASE-D LET
+16931 ; [.39E8.0020.0002] # BAMUM LETTER PHASE-D NGGAAM
+16932 ; [.39E9.0020.0002] # BAMUM LETTER PHASE-D MFIEE
+16933 ; [.39EA.0020.0002] # BAMUM LETTER PHASE-D NGGWAEN
+16934 ; [.39EB.0020.0002] # BAMUM LETTER PHASE-D YUOM
+16935 ; [.39EC.0020.0002] # BAMUM LETTER PHASE-D PAP
+16936 ; [.39ED.0020.0002] # BAMUM LETTER PHASE-D YUOP
+16937 ; [.39EE.0020.0002] # BAMUM LETTER PHASE-D NDAM
+16938 ; [.39EF.0020.0002] # BAMUM LETTER PHASE-D NTEUM
+16939 ; [.39F0.0020.0002] # BAMUM LETTER PHASE-D SUAE
+1693A ; [.39F1.0020.0002] # BAMUM LETTER PHASE-D KUN
+1693B ; [.39F2.0020.0002] # BAMUM LETTER PHASE-D NGGEUX
+1693C ; [.39F3.0020.0002] # BAMUM LETTER PHASE-D NGKIEE
+1693D ; [.39F4.0020.0002] # BAMUM LETTER PHASE-D TUOT
+1693E ; [.39F5.0020.0002] # BAMUM LETTER PHASE-D MEUN
+1693F ; [.39F6.0020.0002] # BAMUM LETTER PHASE-D KUQ
+16940 ; [.39F7.0020.0002] # BAMUM LETTER PHASE-D NSUM
+16941 ; [.39F8.0020.0002] # BAMUM LETTER PHASE-D TEUN
+16942 ; [.39F9.0020.0002] # BAMUM LETTER PHASE-D MAENJET
+16943 ; [.39FA.0020.0002] # BAMUM LETTER PHASE-D NGGAP
+16944 ; [.39FB.0020.0002] # BAMUM LETTER PHASE-D LEUM
+16945 ; [.39FC.0020.0002] # BAMUM LETTER PHASE-D NGGUOM
+16946 ; [.39FD.0020.0002] # BAMUM LETTER PHASE-D NSHUT
+16947 ; [.39FE.0020.0002] # BAMUM LETTER PHASE-D NJUEQ
+16948 ; [.39FF.0020.0002] # BAMUM LETTER PHASE-D GHEUAE
+16949 ; [.3A00.0020.0002] # BAMUM LETTER PHASE-D KU
+1694A ; [.3A01.0020.0002] # BAMUM LETTER PHASE-D REN OLD
+1694B ; [.3A02.0020.0002] # BAMUM LETTER PHASE-D TAE
+1694C ; [.3A03.0020.0002] # BAMUM LETTER PHASE-D TOQ
+1694D ; [.3A04.0020.0002] # BAMUM LETTER PHASE-D NYI
+1694E ; [.3A05.0020.0002] # BAMUM LETTER PHASE-D RII
+1694F ; [.3A06.0020.0002] # BAMUM LETTER PHASE-D LEEEE
+16950 ; [.3A07.0020.0002] # BAMUM LETTER PHASE-D MEEEE
+16951 ; [.3A08.0020.0002] # BAMUM LETTER PHASE-D M
+16952 ; [.3A09.0020.0002] # BAMUM LETTER PHASE-D SUU
+16953 ; [.3A0A.0020.0002] # BAMUM LETTER PHASE-D MU
+16954 ; [.3A0B.0020.0002] # BAMUM LETTER PHASE-D SHII
+16955 ; [.3A0C.0020.0002] # BAMUM LETTER PHASE-D SHEUX
+16956 ; [.3A0D.0020.0002] # BAMUM LETTER PHASE-D KYEE
+16957 ; [.3A0E.0020.0002] # BAMUM LETTER PHASE-D NU
+16958 ; [.3A0F.0020.0002] # BAMUM LETTER PHASE-D SHU
+16959 ; [.3A10.0020.0002] # BAMUM LETTER PHASE-D NTEE
+1695A ; [.3A11.0020.0002] # BAMUM LETTER PHASE-D PEE
+1695B ; [.3A12.0020.0002] # BAMUM LETTER PHASE-D NI
+1695C ; [.3A13.0020.0002] # BAMUM LETTER PHASE-D SHOQ
+1695D ; [.3A14.0020.0002] # BAMUM LETTER PHASE-D PUQ
+1695E ; [.3A15.0020.0002] # BAMUM LETTER PHASE-D MVOP
+1695F ; [.3A16.0020.0002] # BAMUM LETTER PHASE-D LOQ
+16960 ; [.3A17.0020.0002] # BAMUM LETTER PHASE-D REN MUCH
+16961 ; [.3A18.0020.0002] # BAMUM LETTER PHASE-D TI
+16962 ; [.3A19.0020.0002] # BAMUM LETTER PHASE-D NTUU
+16963 ; [.3A1A.0020.0002] # BAMUM LETTER PHASE-D MBAA SEVEN
+16964 ; [.3A1B.0020.0002] # BAMUM LETTER PHASE-D SAQ
+16965 ; [.3A1C.0020.0002] # BAMUM LETTER PHASE-D FAA
+16966 ; [.3A1D.0020.0002] # BAMUM LETTER PHASE-E NDAP
+16967 ; [.3A1E.0020.0002] # BAMUM LETTER PHASE-E TOON
+16968 ; [.3A1F.0020.0002] # BAMUM LETTER PHASE-E MBEUM
+16969 ; [.3A20.0020.0002] # BAMUM LETTER PHASE-E LAP
+1696A ; [.3A21.0020.0002] # BAMUM LETTER PHASE-E VOM
+1696B ; [.3A22.0020.0002] # BAMUM LETTER PHASE-E LOON
+1696C ; [.3A23.0020.0002] # BAMUM LETTER PHASE-E PAA
+1696D ; [.3A24.0020.0002] # BAMUM LETTER PHASE-E SOM
+1696E ; [.3A25.0020.0002] # BAMUM LETTER PHASE-E RAQ
+1696F ; [.3A26.0020.0002] # BAMUM LETTER PHASE-E NSHUOP
+16970 ; [.3A27.0020.0002] # BAMUM LETTER PHASE-E NDUN
+16971 ; [.3A28.0020.0002] # BAMUM LETTER PHASE-E PUAE
+16972 ; [.3A29.0020.0002] # BAMUM LETTER PHASE-E TAM
+16973 ; [.3A2A.0020.0002] # BAMUM LETTER PHASE-E NGKA
+16974 ; [.3A2B.0020.0002] # BAMUM LETTER PHASE-E KPEUX
+16975 ; [.3A2C.0020.0002] # BAMUM LETTER PHASE-E WUO
+16976 ; [.3A2D.0020.0002] # BAMUM LETTER PHASE-E SEE
+16977 ; [.3A2E.0020.0002] # BAMUM LETTER PHASE-E NGGEUAET
+16978 ; [.3A2F.0020.0002] # BAMUM LETTER PHASE-E PAAM
+16979 ; [.3A30.0020.0002] # BAMUM LETTER PHASE-E TOO
+1697A ; [.3A31.0020.0002] # BAMUM LETTER PHASE-E KUOP
+1697B ; [.3A32.0020.0002] # BAMUM LETTER PHASE-E LOM
+1697C ; [.3A33.0020.0002] # BAMUM LETTER PHASE-E NSHIEE
+1697D ; [.3A34.0020.0002] # BAMUM LETTER PHASE-E NGOP
+1697E ; [.3A35.0020.0002] # BAMUM LETTER PHASE-E MAEM
+1697F ; [.3A36.0020.0002] # BAMUM LETTER PHASE-E NGKEUX
+16980 ; [.3A37.0020.0002] # BAMUM LETTER PHASE-E NGOQ
+16981 ; [.3A38.0020.0002] # BAMUM LETTER PHASE-E NSHUE
+16982 ; [.3A39.0020.0002] # BAMUM LETTER PHASE-E RIMGBA
+16983 ; [.3A3A.0020.0002] # BAMUM LETTER PHASE-E NJEUX
+16984 ; [.3A3B.0020.0002] # BAMUM LETTER PHASE-E PEEM
+16985 ; [.3A3C.0020.0002] # BAMUM LETTER PHASE-E SAA
+16986 ; [.3A3D.0020.0002] # BAMUM LETTER PHASE-E NGGURAE
+16987 ; [.3A3E.0020.0002] # BAMUM LETTER PHASE-E MGBA
+16988 ; [.3A3F.0020.0002] # BAMUM LETTER PHASE-E GHEUX
+16989 ; [.3A40.0020.0002] # BAMUM LETTER PHASE-E NGKEUAEM
+1698A ; [.3A41.0020.0002] # BAMUM LETTER PHASE-E NJAEMLI
+1698B ; [.3A42.0020.0002] # BAMUM LETTER PHASE-E MAP
+1698C ; [.3A43.0020.0002] # BAMUM LETTER PHASE-E LOOT
+1698D ; [.3A44.0020.0002] # BAMUM LETTER PHASE-E NGGEEEE
+1698E ; [.3A45.0020.0002] # BAMUM LETTER PHASE-E NDIQ
+1698F ; [.3A46.0020.0002] # BAMUM LETTER PHASE-E TAEN NTEUM
+16990 ; [.3A47.0020.0002] # BAMUM LETTER PHASE-E SET
+16991 ; [.3A48.0020.0002] # BAMUM LETTER PHASE-E PUM
+16992 ; [.3A49.0020.0002] # BAMUM LETTER PHASE-E NDAA SOFTNESS
+16993 ; [.3A4A.0020.0002] # BAMUM LETTER PHASE-E NGGUAESHAE NYAM
+16994 ; [.3A4B.0020.0002] # BAMUM LETTER PHASE-E YIEE
+16995 ; [.3A4C.0020.0002] # BAMUM LETTER PHASE-E GHEUN
+16996 ; [.3A4D.0020.0002] # BAMUM LETTER PHASE-E TUAE
+16997 ; [.3A4E.0020.0002] # BAMUM LETTER PHASE-E YEUAE
+16998 ; [.3A4F.0020.0002] # BAMUM LETTER PHASE-E PO
+16999 ; [.3A50.0020.0002] # BAMUM LETTER PHASE-E TUMAE
+1699A ; [.3A51.0020.0002] # BAMUM LETTER PHASE-E KEUAE
+1699B ; [.3A52.0020.0002] # BAMUM LETTER PHASE-E SUAEN
+1699C ; [.3A53.0020.0002] # BAMUM LETTER PHASE-E TEUAEQ
+1699D ; [.3A54.0020.0002] # BAMUM LETTER PHASE-E VEUAE
+1699E ; [.3A55.0020.0002] # BAMUM LETTER PHASE-E WEUX
+1699F ; [.3A56.0020.0002] # BAMUM LETTER PHASE-E LAAM
+169A0 ; [.3A57.0020.0002] # BAMUM LETTER PHASE-E PU
+169A1 ; [.3A58.0020.0002] # BAMUM LETTER PHASE-E TAAQ
+169A2 ; [.3A59.0020.0002] # BAMUM LETTER PHASE-E GHAAMAE
+169A3 ; [.3A5A.0020.0002] # BAMUM LETTER PHASE-E NGEUREUT
+169A4 ; [.3A5B.0020.0002] # BAMUM LETTER PHASE-E SHEUAEQ
+169A5 ; [.3A5C.0020.0002] # BAMUM LETTER PHASE-E MGBEN
+169A6 ; [.3A5D.0020.0002] # BAMUM LETTER PHASE-E MBEE
+169A7 ; [.3A5E.0020.0002] # BAMUM LETTER PHASE-E NZAQ
+169A8 ; [.3A5F.0020.0002] # BAMUM LETTER PHASE-E NKOM
+169A9 ; [.3A60.0020.0002] # BAMUM LETTER PHASE-E GBET
+169AA ; [.3A61.0020.0002] # BAMUM LETTER PHASE-E TUM
+169AB ; [.3A62.0020.0002] # BAMUM LETTER PHASE-E KUET
+169AC ; [.3A63.0020.0002] # BAMUM LETTER PHASE-E YAP
+169AD ; [.3A64.0020.0002] # BAMUM LETTER PHASE-E NYI CLEAVER
+169AE ; [.3A65.0020.0002] # BAMUM LETTER PHASE-E YIT
+169AF ; [.3A66.0020.0002] # BAMUM LETTER PHASE-E MFEUQ
+169B0 ; [.3A67.0020.0002] # BAMUM LETTER PHASE-E NDIAQ
+169B1 ; [.3A68.0020.0002] # BAMUM LETTER PHASE-E PIEEQ
+169B2 ; [.3A69.0020.0002] # BAMUM LETTER PHASE-E YUEQ
+169B3 ; [.3A6A.0020.0002] # BAMUM LETTER PHASE-E LEUAEM
+169B4 ; [.3A6B.0020.0002] # BAMUM LETTER PHASE-E FUE
+169B5 ; [.3A6C.0020.0002] # BAMUM LETTER PHASE-E GBEUX
+169B6 ; [.3A6D.0020.0002] # BAMUM LETTER PHASE-E NGKUP
+169B7 ; [.3A6E.0020.0002] # BAMUM LETTER PHASE-E KET
+169B8 ; [.3A6F.0020.0002] # BAMUM LETTER PHASE-E MAE
+169B9 ; [.3A70.0020.0002] # BAMUM LETTER PHASE-E NGKAAMI
+169BA ; [.3A71.0020.0002] # BAMUM LETTER PHASE-E GHET
+169BB ; [.3A72.0020.0002] # BAMUM LETTER PHASE-E FA
+169BC ; [.3A73.0020.0002] # BAMUM LETTER PHASE-E NTUM
+169BD ; [.3A74.0020.0002] # BAMUM LETTER PHASE-E PEUT
+169BE ; [.3A75.0020.0002] # BAMUM LETTER PHASE-E YEUM
+169BF ; [.3A76.0020.0002] # BAMUM LETTER PHASE-E NGGEUAE
+169C0 ; [.3A77.0020.0002] # BAMUM LETTER PHASE-E NYI BETWEEN
+169C1 ; [.3A78.0020.0002] # BAMUM LETTER PHASE-E NZUQ
+169C2 ; [.3A79.0020.0002] # BAMUM LETTER PHASE-E POON
+169C3 ; [.3A7A.0020.0002] # BAMUM LETTER PHASE-E MIEE
+169C4 ; [.3A7B.0020.0002] # BAMUM LETTER PHASE-E FUET
+169C5 ; [.3A7C.0020.0002] # BAMUM LETTER PHASE-E NAE
+169C6 ; [.3A7D.0020.0002] # BAMUM LETTER PHASE-E MUAE
+169C7 ; [.3A7E.0020.0002] # BAMUM LETTER PHASE-E GHEUAE
+169C8 ; [.3A7F.0020.0002] # BAMUM LETTER PHASE-E FU I
+169C9 ; [.3A80.0020.0002] # BAMUM LETTER PHASE-E MVI
+169CA ; [.3A81.0020.0002] # BAMUM LETTER PHASE-E PUAQ
+169CB ; [.3A82.0020.0002] # BAMUM LETTER PHASE-E NGKUM
+169CC ; [.3A83.0020.0002] # BAMUM LETTER PHASE-E KUT
+169CD ; [.3A84.0020.0002] # BAMUM LETTER PHASE-E PIET
+169CE ; [.3A85.0020.0002] # BAMUM LETTER PHASE-E NTAP
+169CF ; [.3A86.0020.0002] # BAMUM LETTER PHASE-E YEUAET
+169D0 ; [.3A87.0020.0002] # BAMUM LETTER PHASE-E NGGUP
+169D1 ; [.3A88.0020.0002] # BAMUM LETTER PHASE-E PA PEOPLE
+169D2 ; [.3A89.0020.0002] # BAMUM LETTER PHASE-E FU CALL
+169D3 ; [.3A8A.0020.0002] # BAMUM LETTER PHASE-E FOM
+169D4 ; [.3A8B.0020.0002] # BAMUM LETTER PHASE-E NJEE
+169D5 ; [.3A8C.0020.0002] # BAMUM LETTER PHASE-E A
+169D6 ; [.3A8D.0020.0002] # BAMUM LETTER PHASE-E TOQ
+169D7 ; [.3A8E.0020.0002] # BAMUM LETTER PHASE-E O
+169D8 ; [.3A8F.0020.0002] # BAMUM LETTER PHASE-E I
+169D9 ; [.3A90.0020.0002] # BAMUM LETTER PHASE-E LAQ
+169DA ; [.3A91.0020.0002] # BAMUM LETTER PHASE-E PA PLURAL
+169DB ; [.3A92.0020.0002] # BAMUM LETTER PHASE-E TAA
+169DC ; [.3A93.0020.0002] # BAMUM LETTER PHASE-E TAQ
+169DD ; [.3A94.0020.0002] # BAMUM LETTER PHASE-E NDAA MY HOUSE
+169DE ; [.3A95.0020.0002] # BAMUM LETTER PHASE-E SHIQ
+169DF ; [.3A96.0020.0002] # BAMUM LETTER PHASE-E YEUX
+169E0 ; [.3A97.0020.0002] # BAMUM LETTER PHASE-E NGUAE
+169E1 ; [.3A98.0020.0002] # BAMUM LETTER PHASE-E YUAEN
+169E2 ; [.3A99.0020.0002] # BAMUM LETTER PHASE-E YOQ SWIMMING
+169E3 ; [.3A9A.0020.0002] # BAMUM LETTER PHASE-E YOQ COVER
+169E4 ; [.3A9B.0020.0002] # BAMUM LETTER PHASE-E YUQ
+169E5 ; [.3A9C.0020.0002] # BAMUM LETTER PHASE-E YUN
+169E6 ; [.3A9D.0020.0002] # BAMUM LETTER PHASE-E KEUX
+169E7 ; [.3A9E.0020.0002] # BAMUM LETTER PHASE-E PEUX
+169E8 ; [.3A9F.0020.0002] # BAMUM LETTER PHASE-E NJEE EPOCH
+169E9 ; [.3AA0.0020.0002] # BAMUM LETTER PHASE-E PUE
+169EA ; [.3AA1.0020.0002] # BAMUM LETTER PHASE-E WUE
+169EB ; [.3AA2.0020.0002] # BAMUM LETTER PHASE-E FEE
+169EC ; [.3AA3.0020.0002] # BAMUM LETTER PHASE-E VEE
+169ED ; [.3AA4.0020.0002] # BAMUM LETTER PHASE-E LU
+169EE ; [.3AA5.0020.0002] # BAMUM LETTER PHASE-E MI
+169EF ; [.3AA6.0020.0002] # BAMUM LETTER PHASE-E REUX
+169F0 ; [.3AA7.0020.0002] # BAMUM LETTER PHASE-E RAE
+169F1 ; [.3AA8.0020.0002] # BAMUM LETTER PHASE-E NGUAET
+169F2 ; [.3AA9.0020.0002] # BAMUM LETTER PHASE-E NGA
+169F3 ; [.3AAA.0020.0002] # BAMUM LETTER PHASE-E SHO
+169F4 ; [.3AAB.0020.0002] # BAMUM LETTER PHASE-E SHOQ
+169F5 ; [.3AAC.0020.0002] # BAMUM LETTER PHASE-E FU REMEDY
+169F6 ; [.3AAD.0020.0002] # BAMUM LETTER PHASE-E NA
+169F7 ; [.3AAE.0020.0002] # BAMUM LETTER PHASE-E PI
+169F8 ; [.3AAF.0020.0002] # BAMUM LETTER PHASE-E LOQ
+169F9 ; [.3AB0.0020.0002] # BAMUM LETTER PHASE-E KO
+169FA ; [.3AB1.0020.0002] # BAMUM LETTER PHASE-E MEN
+169FB ; [.3AB2.0020.0002] # BAMUM LETTER PHASE-E MA
+169FC ; [.3AB3.0020.0002] # BAMUM LETTER PHASE-E MAQ
+169FD ; [.3AB4.0020.0002] # BAMUM LETTER PHASE-E TEU
+169FE ; [.3AB5.0020.0002] # BAMUM LETTER PHASE-E KI
+169FF ; [.3AB6.0020.0002] # BAMUM LETTER PHASE-E MON
+16A00 ; [.3AB7.0020.0002] # BAMUM LETTER PHASE-E TEN
+16A01 ; [.3AB8.0020.0002] # BAMUM LETTER PHASE-E FAQ
+16A02 ; [.3AB9.0020.0002] # BAMUM LETTER PHASE-E GHOM
+16A03 ; [.3ABA.0020.0002] # BAMUM LETTER PHASE-F KA
+16A04 ; [.3ABB.0020.0002] # BAMUM LETTER PHASE-F U
+16A05 ; [.3ABC.0020.0002] # BAMUM LETTER PHASE-F KU
+16A06 ; [.3ABD.0020.0002] # BAMUM LETTER PHASE-F EE
+16A07 ; [.3ABE.0020.0002] # BAMUM LETTER PHASE-F REE
+16A08 ; [.3ABF.0020.0002] # BAMUM LETTER PHASE-F TAE
+16A09 ; [.3AC0.0020.0002] # BAMUM LETTER PHASE-F NYI
+16A0A ; [.3AC1.0020.0002] # BAMUM LETTER PHASE-F LA
+16A0B ; [.3AC2.0020.0002] # BAMUM LETTER PHASE-F RII
+16A0C ; [.3AC3.0020.0002] # BAMUM LETTER PHASE-F RIEE
+16A0D ; [.3AC4.0020.0002] # BAMUM LETTER PHASE-F MEEEE
+16A0E ; [.3AC5.0020.0002] # BAMUM LETTER PHASE-F TAA
+16A0F ; [.3AC6.0020.0002] # BAMUM LETTER PHASE-F NDAA
+16A10 ; [.3AC7.0020.0002] # BAMUM LETTER PHASE-F NJAEM
+16A11 ; [.3AC8.0020.0002] # BAMUM LETTER PHASE-F M
+16A12 ; [.3AC9.0020.0002] # BAMUM LETTER PHASE-F SUU
+16A13 ; [.3ACA.0020.0002] # BAMUM LETTER PHASE-F SHII
+16A14 ; [.3ACB.0020.0002] # BAMUM LETTER PHASE-F SI
+16A15 ; [.3ACC.0020.0002] # BAMUM LETTER PHASE-F SEUX
+16A16 ; [.3ACD.0020.0002] # BAMUM LETTER PHASE-F KYEE
+16A17 ; [.3ACE.0020.0002] # BAMUM LETTER PHASE-F KET
+16A18 ; [.3ACF.0020.0002] # BAMUM LETTER PHASE-F NUAE
+16A19 ; [.3AD0.0020.0002] # BAMUM LETTER PHASE-F NU
+16A1A ; [.3AD1.0020.0002] # BAMUM LETTER PHASE-F NJUAE
+16A1B ; [.3AD2.0020.0002] # BAMUM LETTER PHASE-F YOQ
+16A1C ; [.3AD3.0020.0002] # BAMUM LETTER PHASE-F SHU
+16A1D ; [.3AD4.0020.0002] # BAMUM LETTER PHASE-F YA
+16A1E ; [.3AD5.0020.0002] # BAMUM LETTER PHASE-F NSHA
+16A1F ; [.3AD6.0020.0002] # BAMUM LETTER PHASE-F PEUX
+16A20 ; [.3AD7.0020.0002] # BAMUM LETTER PHASE-F NTEE
+16A21 ; [.3AD8.0020.0002] # BAMUM LETTER PHASE-F WUE
+16A22 ; [.3AD9.0020.0002] # BAMUM LETTER PHASE-F PEE
+16A23 ; [.3ADA.0020.0002] # BAMUM LETTER PHASE-F RU
+16A24 ; [.3ADB.0020.0002] # BAMUM LETTER PHASE-F NI
+16A25 ; [.3ADC.0020.0002] # BAMUM LETTER PHASE-F REUX
+16A26 ; [.3ADD.0020.0002] # BAMUM LETTER PHASE-F KEN
+16A27 ; [.3ADE.0020.0002] # BAMUM LETTER PHASE-F NGKWAEN
+16A28 ; [.3ADF.0020.0002] # BAMUM LETTER PHASE-F NGGA
+16A29 ; [.3AE0.0020.0002] # BAMUM LETTER PHASE-F SHO
+16A2A ; [.3AE1.0020.0002] # BAMUM LETTER PHASE-F PUAE
+16A2B ; [.3AE2.0020.0002] # BAMUM LETTER PHASE-F FOM
+16A2C ; [.3AE3.0020.0002] # BAMUM LETTER PHASE-F WA
+16A2D ; [.3AE4.0020.0002] # BAMUM LETTER PHASE-F LI
+16A2E ; [.3AE5.0020.0002] # BAMUM LETTER PHASE-F LOQ
+16A2F ; [.3AE6.0020.0002] # BAMUM LETTER PHASE-F KO
+16A30 ; [.3AE7.0020.0002] # BAMUM LETTER PHASE-F MBEN
+16A31 ; [.3AE8.0020.0002] # BAMUM LETTER PHASE-F REN
+16A32 ; [.3AE9.0020.0002] # BAMUM LETTER PHASE-F MA
+16A33 ; [.3AEA.0020.0002] # BAMUM LETTER PHASE-F MO
+16A34 ; [.3AEB.0020.0002] # BAMUM LETTER PHASE-F MBAA
+16A35 ; [.3AEC.0020.0002] # BAMUM LETTER PHASE-F TET
+16A36 ; [.3AED.0020.0002] # BAMUM LETTER PHASE-F KPA
+16A37 ; [.3AEE.0020.0002] # BAMUM LETTER PHASE-F SAMBA
+16A38 ; [.3AEF.0020.0002] # BAMUM LETTER PHASE-F VUEQ
+16AD0 ; [.3AF0.0020.0002] # BASSA VAH LETTER ENNI
+16AD1 ; [.3AF1.0020.0002] # BASSA VAH LETTER KA
+16AD2 ; [.3AF2.0020.0002] # BASSA VAH LETTER SE
+16AD3 ; [.3AF3.0020.0002] # BASSA VAH LETTER FA
+16AD4 ; [.3AF4.0020.0002] # BASSA VAH LETTER MBE
+16AD5 ; [.3AF5.0020.0002] # BASSA VAH LETTER YIE
+16AD6 ; [.3AF6.0020.0002] # BASSA VAH LETTER GAH
+16AD7 ; [.3AF7.0020.0002] # BASSA VAH LETTER DHII
+16AD8 ; [.3AF8.0020.0002] # BASSA VAH LETTER KPAH
+16AD9 ; [.3AF9.0020.0002] # BASSA VAH LETTER JO
+16ADA ; [.3AFA.0020.0002] # BASSA VAH LETTER HWAH
+16ADB ; [.3AFB.0020.0002] # BASSA VAH LETTER WA
+16ADC ; [.3AFC.0020.0002] # BASSA VAH LETTER ZO
+16ADD ; [.3AFD.0020.0002] # BASSA VAH LETTER GBU
+16ADE ; [.3AFE.0020.0002] # BASSA VAH LETTER DO
+16ADF ; [.3AFF.0020.0002] # BASSA VAH LETTER CE
+16AE0 ; [.3B00.0020.0002] # BASSA VAH LETTER UWU
+16AE1 ; [.3B01.0020.0002] # BASSA VAH LETTER TO
+16AE2 ; [.3B02.0020.0002] # BASSA VAH LETTER BA
+16AE3 ; [.3B03.0020.0002] # BASSA VAH LETTER VU
+16AE4 ; [.3B04.0020.0002] # BASSA VAH LETTER YEIN
+16AE5 ; [.3B05.0020.0002] # BASSA VAH LETTER PA
+16AE6 ; [.3B06.0020.0002] # BASSA VAH LETTER WADDA
+16AE7 ; [.3B07.0020.0002] # BASSA VAH LETTER A
+16AE8 ; [.3B08.0020.0002] # BASSA VAH LETTER O
+16AE9 ; [.3B09.0020.0002] # BASSA VAH LETTER OO
+16AEA ; [.3B0A.0020.0002] # BASSA VAH LETTER U
+16AEB ; [.3B0B.0020.0002] # BASSA VAH LETTER EE
+16AEC ; [.3B0C.0020.0002] # BASSA VAH LETTER E
+16AED ; [.3B0D.0020.0002] # BASSA VAH LETTER I
+1E800 ; [.3B0E.0020.0002] # MENDE KIKAKUI SYLLABLE M001 KI
+1E801 ; [.3B0F.0020.0002] # MENDE KIKAKUI SYLLABLE M002 KA
+1E802 ; [.3B10.0020.0002] # MENDE KIKAKUI SYLLABLE M003 KU
+1E803 ; [.3B11.0020.0002] # MENDE KIKAKUI SYLLABLE M065 KEE
+1E804 ; [.3B12.0020.0002] # MENDE KIKAKUI SYLLABLE M095 KE
+1E805 ; [.3B13.0020.0002] # MENDE KIKAKUI SYLLABLE M076 KOO
+1E806 ; [.3B14.0020.0002] # MENDE KIKAKUI SYLLABLE M048 KO
+1E807 ; [.3B15.0020.0002] # MENDE KIKAKUI SYLLABLE M179 KUA
+1E808 ; [.3B16.0020.0002] # MENDE KIKAKUI SYLLABLE M004 WI
+1E809 ; [.3B17.0020.0002] # MENDE KIKAKUI SYLLABLE M005 WA
+1E80A ; [.3B18.0020.0002] # MENDE KIKAKUI SYLLABLE M006 WU
+1E80B ; [.3B19.0020.0002] # MENDE KIKAKUI SYLLABLE M126 WEE
+1E80C ; [.3B1A.0020.0002] # MENDE KIKAKUI SYLLABLE M118 WE
+1E80D ; [.3B1B.0020.0002] # MENDE KIKAKUI SYLLABLE M114 WOO
+1E80E ; [.3B1C.0020.0002] # MENDE KIKAKUI SYLLABLE M045 WO
+1E80F ; [.3B1D.0020.0002] # MENDE KIKAKUI SYLLABLE M194 WUI
+1E810 ; [.3B1E.0020.0002] # MENDE KIKAKUI SYLLABLE M143 WEI
+1E811 ; [.3B1F.0020.0002] # MENDE KIKAKUI SYLLABLE M061 WVI
+1E812 ; [.3B20.0020.0002] # MENDE KIKAKUI SYLLABLE M049 WVA
+1E813 ; [.3B21.0020.0002] # MENDE KIKAKUI SYLLABLE M139 WVE
+1E814 ; [.3B22.0020.0002] # MENDE KIKAKUI SYLLABLE M007 MIN
+1E815 ; [.3B23.0020.0002] # MENDE KIKAKUI SYLLABLE M008 MAN
+1E816 ; [.3B24.0020.0002] # MENDE KIKAKUI SYLLABLE M009 MUN
+1E817 ; [.3B25.0020.0002] # MENDE KIKAKUI SYLLABLE M059 MEN
+1E818 ; [.3B26.0020.0002] # MENDE KIKAKUI SYLLABLE M094 MON
+1E819 ; [.3B27.0020.0002] # MENDE KIKAKUI SYLLABLE M154 MUAN
+1E81A ; [.3B28.0020.0002] # MENDE KIKAKUI SYLLABLE M189 MUEN
+1E81B ; [.3B29.0020.0002] # MENDE KIKAKUI SYLLABLE M010 BI
+1E81C ; [.3B2A.0020.0002] # MENDE KIKAKUI SYLLABLE M011 BA
+1E81D ; [.3B2B.0020.0002] # MENDE KIKAKUI SYLLABLE M012 BU
+1E81E ; [.3B2C.0020.0002] # MENDE KIKAKUI SYLLABLE M150 BEE
+1E81F ; [.3B2D.0020.0002] # MENDE KIKAKUI SYLLABLE M097 BE
+1E820 ; [.3B2E.0020.0002] # MENDE KIKAKUI SYLLABLE M103 BOO
+1E821 ; [.3B2F.0020.0002] # MENDE KIKAKUI SYLLABLE M138 BO
+1E822 ; [.3B30.0020.0002] # MENDE KIKAKUI SYLLABLE M013 I
+1E823 ; [.3B31.0020.0002] # MENDE KIKAKUI SYLLABLE M014 A
+1E824 ; [.3B32.0020.0002] # MENDE KIKAKUI SYLLABLE M015 U
+1E825 ; [.3B33.0020.0002] # MENDE KIKAKUI SYLLABLE M163 EE
+1E826 ; [.3B34.0020.0002] # MENDE KIKAKUI SYLLABLE M100 E
+1E827 ; [.3B35.0020.0002] # MENDE KIKAKUI SYLLABLE M165 OO
+1E828 ; [.3B36.0020.0002] # MENDE KIKAKUI SYLLABLE M147 O
+1E829 ; [.3B37.0020.0002] # MENDE KIKAKUI SYLLABLE M137 EI
+1E82A ; [.3B38.0020.0002] # MENDE KIKAKUI SYLLABLE M131 IN
+1E82B ; [.3B39.0020.0002] # MENDE KIKAKUI SYLLABLE M135 IN
+1E82C ; [.3B3A.0020.0002] # MENDE KIKAKUI SYLLABLE M195 AN
+1E82D ; [.3B3B.0020.0002] # MENDE KIKAKUI SYLLABLE M178 EN
+1E82E ; [.3B3C.0020.0002] # MENDE KIKAKUI SYLLABLE M019 SI
+1E82F ; [.3B3D.0020.0002] # MENDE KIKAKUI SYLLABLE M020 SA
+1E830 ; [.3B3E.0020.0002] # MENDE KIKAKUI SYLLABLE M021 SU
+1E831 ; [.3B3F.0020.0002] # MENDE KIKAKUI SYLLABLE M162 SEE
+1E832 ; [.3B40.0020.0002] # MENDE KIKAKUI SYLLABLE M116 SE
+1E833 ; [.3B41.0020.0002] # MENDE KIKAKUI SYLLABLE M136 SOO
+1E834 ; [.3B42.0020.0002] # MENDE KIKAKUI SYLLABLE M079 SO
+1E835 ; [.3B43.0020.0002] # MENDE KIKAKUI SYLLABLE M196 SIA
+1E836 ; [.3B44.0020.0002] # MENDE KIKAKUI SYLLABLE M025 LI
+1E837 ; [.3B45.0020.0002] # MENDE KIKAKUI SYLLABLE M026 LA
+1E838 ; [.3B46.0020.0002] # MENDE KIKAKUI SYLLABLE M027 LU
+1E839 ; [.3B47.0020.0002] # MENDE KIKAKUI SYLLABLE M084 LEE
+1E83A ; [.3B48.0020.0002] # MENDE KIKAKUI SYLLABLE M073 LE
+1E83B ; [.3B49.0020.0002] # MENDE KIKAKUI SYLLABLE M054 LOO
+1E83C ; [.3B4A.0020.0002] # MENDE KIKAKUI SYLLABLE M153 LO
+1E83D ; [.3B4B.0020.0002] # MENDE KIKAKUI SYLLABLE M110 LONG LE
+1E83E ; [.3B4C.0020.0002] # MENDE KIKAKUI SYLLABLE M016 DI
+1E83F ; [.3B4D.0020.0002] # MENDE KIKAKUI SYLLABLE M017 DA
+1E840 ; [.3B4E.0020.0002] # MENDE KIKAKUI SYLLABLE M018 DU
+1E841 ; [.3B4F.0020.0002] # MENDE KIKAKUI SYLLABLE M089 DEE
+1E842 ; [.3B50.0020.0002] # MENDE KIKAKUI SYLLABLE M180 DOO
+1E843 ; [.3B51.0020.0002] # MENDE KIKAKUI SYLLABLE M181 DO
+1E844 ; [.3B52.0020.0002] # MENDE KIKAKUI SYLLABLE M022 TI
+1E845 ; [.3B53.0020.0002] # MENDE KIKAKUI SYLLABLE M023 TA
+1E846 ; [.3B54.0020.0002] # MENDE KIKAKUI SYLLABLE M024 TU
+1E847 ; [.3B55.0020.0002] # MENDE KIKAKUI SYLLABLE M091 TEE
+1E848 ; [.3B56.0020.0002] # MENDE KIKAKUI SYLLABLE M055 TE
+1E849 ; [.3B57.0020.0002] # MENDE KIKAKUI SYLLABLE M104 TOO
+1E84A ; [.3B58.0020.0002] # MENDE KIKAKUI SYLLABLE M069 TO
+1E84B ; [.3B59.0020.0002] # MENDE KIKAKUI SYLLABLE M028 JI
+1E84C ; [.3B5A.0020.0002] # MENDE KIKAKUI SYLLABLE M029 JA
+1E84D ; [.3B5B.0020.0002] # MENDE KIKAKUI SYLLABLE M030 JU
+1E84E ; [.3B5C.0020.0002] # MENDE KIKAKUI SYLLABLE M157 JEE
+1E84F ; [.3B5D.0020.0002] # MENDE KIKAKUI SYLLABLE M113 JE
+1E850 ; [.3B5E.0020.0002] # MENDE KIKAKUI SYLLABLE M160 JOO
+1E851 ; [.3B5F.0020.0002] # MENDE KIKAKUI SYLLABLE M063 JO
+1E852 ; [.3B60.0020.0002] # MENDE KIKAKUI SYLLABLE M175 LONG JO
+1E853 ; [.3B61.0020.0002] # MENDE KIKAKUI SYLLABLE M031 YI
+1E854 ; [.3B62.0020.0002] # MENDE KIKAKUI SYLLABLE M032 YA
+1E855 ; [.3B63.0020.0002] # MENDE KIKAKUI SYLLABLE M033 YU
+1E856 ; [.3B64.0020.0002] # MENDE KIKAKUI SYLLABLE M109 YEE
+1E857 ; [.3B65.0020.0002] # MENDE KIKAKUI SYLLABLE M080 YE
+1E858 ; [.3B66.0020.0002] # MENDE KIKAKUI SYLLABLE M141 YOO
+1E859 ; [.3B67.0020.0002] # MENDE KIKAKUI SYLLABLE M121 YO
+1E85A ; [.3B68.0020.0002] # MENDE KIKAKUI SYLLABLE M034 FI
+1E85B ; [.3B69.0020.0002] # MENDE KIKAKUI SYLLABLE M035 FA
+1E85C ; [.3B6A.0020.0002] # MENDE KIKAKUI SYLLABLE M036 FU
+1E85D ; [.3B6B.0020.0002] # MENDE KIKAKUI SYLLABLE M078 FEE
+1E85E ; [.3B6C.0020.0002] # MENDE KIKAKUI SYLLABLE M075 FE
+1E85F ; [.3B6D.0020.0002] # MENDE KIKAKUI SYLLABLE M133 FOO
+1E860 ; [.3B6E.0020.0002] # MENDE KIKAKUI SYLLABLE M088 FO
+1E861 ; [.3B6F.0020.0002] # MENDE KIKAKUI SYLLABLE M197 FUA
+1E862 ; [.3B70.0020.0002] # MENDE KIKAKUI SYLLABLE M101 FAN
+1E863 ; [.3B71.0020.0002] # MENDE KIKAKUI SYLLABLE M037 NIN
+1E864 ; [.3B72.0020.0002] # MENDE KIKAKUI SYLLABLE M038 NAN
+1E865 ; [.3B73.0020.0002] # MENDE KIKAKUI SYLLABLE M039 NUN
+1E866 ; [.3B74.0020.0002] # MENDE KIKAKUI SYLLABLE M117 NEN
+1E867 ; [.3B75.0020.0002] # MENDE KIKAKUI SYLLABLE M169 NON
+1E868 ; [.3B76.0020.0002] # MENDE KIKAKUI SYLLABLE M176 HI
+1E869 ; [.3B77.0020.0002] # MENDE KIKAKUI SYLLABLE M041 HA
+1E86A ; [.3B78.0020.0002] # MENDE KIKAKUI SYLLABLE M186 HU
+1E86B ; [.3B79.0020.0002] # MENDE KIKAKUI SYLLABLE M040 HEE
+1E86C ; [.3B7A.0020.0002] # MENDE KIKAKUI SYLLABLE M096 HE
+1E86D ; [.3B7B.0020.0002] # MENDE KIKAKUI SYLLABLE M042 HOO
+1E86E ; [.3B7C.0020.0002] # MENDE KIKAKUI SYLLABLE M140 HO
+1E86F ; [.3B7D.0020.0002] # MENDE KIKAKUI SYLLABLE M083 HEEI
+1E870 ; [.3B7E.0020.0002] # MENDE KIKAKUI SYLLABLE M128 HOOU
+1E871 ; [.3B7F.0020.0002] # MENDE KIKAKUI SYLLABLE M053 HIN
+1E872 ; [.3B80.0020.0002] # MENDE KIKAKUI SYLLABLE M130 HAN
+1E873 ; [.3B81.0020.0002] # MENDE KIKAKUI SYLLABLE M087 HUN
+1E874 ; [.3B82.0020.0002] # MENDE KIKAKUI SYLLABLE M052 HEN
+1E875 ; [.3B83.0020.0002] # MENDE KIKAKUI SYLLABLE M193 HON
+1E876 ; [.3B84.0020.0002] # MENDE KIKAKUI SYLLABLE M046 HUAN
+1E877 ; [.3B85.0020.0002] # MENDE KIKAKUI SYLLABLE M090 NGGI
+1E878 ; [.3B86.0020.0002] # MENDE KIKAKUI SYLLABLE M043 NGGA
+1E879 ; [.3B87.0020.0002] # MENDE KIKAKUI SYLLABLE M082 NGGU
+1E87A ; [.3B88.0020.0002] # MENDE KIKAKUI SYLLABLE M115 NGGEE
+1E87B ; [.3B89.0020.0002] # MENDE KIKAKUI SYLLABLE M146 NGGE
+1E87C ; [.3B8A.0020.0002] # MENDE KIKAKUI SYLLABLE M156 NGGOO
+1E87D ; [.3B8B.0020.0002] # MENDE KIKAKUI SYLLABLE M120 NGGO
+1E87E ; [.3B8C.0020.0002] # MENDE KIKAKUI SYLLABLE M159 NGGAA
+1E87F ; [.3B8D.0020.0002] # MENDE KIKAKUI SYLLABLE M127 NGGUA
+1E880 ; [.3B8E.0020.0002] # MENDE KIKAKUI SYLLABLE M086 LONG NGGE
+1E881 ; [.3B8F.0020.0002] # MENDE KIKAKUI SYLLABLE M106 LONG NGGOO
+1E882 ; [.3B90.0020.0002] # MENDE KIKAKUI SYLLABLE M183 LONG NGGO
+1E883 ; [.3B91.0020.0002] # MENDE KIKAKUI SYLLABLE M155 GI
+1E884 ; [.3B92.0020.0002] # MENDE KIKAKUI SYLLABLE M111 GA
+1E885 ; [.3B93.0020.0002] # MENDE KIKAKUI SYLLABLE M168 GU
+1E886 ; [.3B94.0020.0002] # MENDE KIKAKUI SYLLABLE M190 GEE
+1E887 ; [.3B95.0020.0002] # MENDE KIKAKUI SYLLABLE M166 GUEI
+1E888 ; [.3B96.0020.0002] # MENDE KIKAKUI SYLLABLE M167 GUAN
+1E889 ; [.3B97.0020.0002] # MENDE KIKAKUI SYLLABLE M184 NGEN
+1E88A ; [.3B98.0020.0002] # MENDE KIKAKUI SYLLABLE M057 NGON
+1E88B ; [.3B99.0020.0002] # MENDE KIKAKUI SYLLABLE M177 NGUAN
+1E88C ; [.3B9A.0020.0002] # MENDE KIKAKUI SYLLABLE M068 PI
+1E88D ; [.3B9B.0020.0002] # MENDE KIKAKUI SYLLABLE M099 PA
+1E88E ; [.3B9C.0020.0002] # MENDE KIKAKUI SYLLABLE M050 PU
+1E88F ; [.3B9D.0020.0002] # MENDE KIKAKUI SYLLABLE M081 PEE
+1E890 ; [.3B9E.0020.0002] # MENDE KIKAKUI SYLLABLE M051 PE
+1E891 ; [.3B9F.0020.0002] # MENDE KIKAKUI SYLLABLE M102 POO
+1E892 ; [.3BA0.0020.0002] # MENDE KIKAKUI SYLLABLE M066 PO
+1E893 ; [.3BA1.0020.0002] # MENDE KIKAKUI SYLLABLE M145 MBI
+1E894 ; [.3BA2.0020.0002] # MENDE KIKAKUI SYLLABLE M062 MBA
+1E895 ; [.3BA3.0020.0002] # MENDE KIKAKUI SYLLABLE M122 MBU
+1E896 ; [.3BA4.0020.0002] # MENDE KIKAKUI SYLLABLE M047 MBEE
+1E897 ; [.3BA5.0020.0002] # MENDE KIKAKUI SYLLABLE M188 MBEE
+1E898 ; [.3BA6.0020.0002] # MENDE KIKAKUI SYLLABLE M072 MBE
+1E899 ; [.3BA7.0020.0002] # MENDE KIKAKUI SYLLABLE M172 MBOO
+1E89A ; [.3BA8.0020.0002] # MENDE KIKAKUI SYLLABLE M174 MBO
+1E89B ; [.3BA9.0020.0002] # MENDE KIKAKUI SYLLABLE M187 MBUU
+1E89C ; [.3BAA.0020.0002] # MENDE KIKAKUI SYLLABLE M161 LONG MBE
+1E89D ; [.3BAB.0020.0002] # MENDE KIKAKUI SYLLABLE M105 LONG MBOO
+1E89E ; [.3BAC.0020.0002] # MENDE KIKAKUI SYLLABLE M142 LONG MBO
+1E89F ; [.3BAD.0020.0002] # MENDE KIKAKUI SYLLABLE M132 KPI
+1E8A0 ; [.3BAE.0020.0002] # MENDE KIKAKUI SYLLABLE M092 KPA
+1E8A1 ; [.3BAF.0020.0002] # MENDE KIKAKUI SYLLABLE M074 KPU
+1E8A2 ; [.3BB0.0020.0002] # MENDE KIKAKUI SYLLABLE M044 KPEE
+1E8A3 ; [.3BB1.0020.0002] # MENDE KIKAKUI SYLLABLE M108 KPE
+1E8A4 ; [.3BB2.0020.0002] # MENDE KIKAKUI SYLLABLE M112 KPOO
+1E8A5 ; [.3BB3.0020.0002] # MENDE KIKAKUI SYLLABLE M158 KPO
+1E8A6 ; [.3BB4.0020.0002] # MENDE KIKAKUI SYLLABLE M124 GBI
+1E8A7 ; [.3BB5.0020.0002] # MENDE KIKAKUI SYLLABLE M056 GBA
+1E8A8 ; [.3BB6.0020.0002] # MENDE KIKAKUI SYLLABLE M148 GBU
+1E8A9 ; [.3BB7.0020.0002] # MENDE KIKAKUI SYLLABLE M093 GBEE
+1E8AA ; [.3BB8.0020.0002] # MENDE KIKAKUI SYLLABLE M107 GBE
+1E8AB ; [.3BB9.0020.0002] # MENDE KIKAKUI SYLLABLE M071 GBOO
+1E8AC ; [.3BBA.0020.0002] # MENDE KIKAKUI SYLLABLE M070 GBO
+1E8AD ; [.3BBB.0020.0002] # MENDE KIKAKUI SYLLABLE M171 RA
+1E8AE ; [.3BBC.0020.0002] # MENDE KIKAKUI SYLLABLE M123 NDI
+1E8AF ; [.3BBD.0020.0002] # MENDE KIKAKUI SYLLABLE M129 NDA
+1E8B0 ; [.3BBE.0020.0002] # MENDE KIKAKUI SYLLABLE M125 NDU
+1E8B1 ; [.3BBF.0020.0002] # MENDE KIKAKUI SYLLABLE M191 NDEE
+1E8B2 ; [.3BC0.0020.0002] # MENDE KIKAKUI SYLLABLE M119 NDE
+1E8B3 ; [.3BC1.0020.0002] # MENDE KIKAKUI SYLLABLE M067 NDOO
+1E8B4 ; [.3BC2.0020.0002] # MENDE KIKAKUI SYLLABLE M064 NDO
+1E8B5 ; [.3BC3.0020.0002] # MENDE KIKAKUI SYLLABLE M152 NJA
+1E8B6 ; [.3BC4.0020.0002] # MENDE KIKAKUI SYLLABLE M192 NJU
+1E8B7 ; [.3BC5.0020.0002] # MENDE KIKAKUI SYLLABLE M149 NJEE
+1E8B8 ; [.3BC6.0020.0002] # MENDE KIKAKUI SYLLABLE M134 NJOO
+1E8B9 ; [.3BC7.0020.0002] # MENDE KIKAKUI SYLLABLE M182 VI
+1E8BA ; [.3BC8.0020.0002] # MENDE KIKAKUI SYLLABLE M185 VA
+1E8BB ; [.3BC9.0020.0002] # MENDE KIKAKUI SYLLABLE M151 VU
+1E8BC ; [.3BCA.0020.0002] # MENDE KIKAKUI SYLLABLE M173 VEE
+1E8BD ; [.3BCB.0020.0002] # MENDE KIKAKUI SYLLABLE M085 VE
+1E8BE ; [.3BCC.0020.0002] # MENDE KIKAKUI SYLLABLE M144 VOO
+1E8BF ; [.3BCD.0020.0002] # MENDE KIKAKUI SYLLABLE M077 VO
+1E8C0 ; [.3BCE.0020.0002] # MENDE KIKAKUI SYLLABLE M164 NYIN
+1E8C1 ; [.3BCF.0020.0002] # MENDE KIKAKUI SYLLABLE M058 NYAN
+1E8C2 ; [.3BD0.0020.0002] # MENDE KIKAKUI SYLLABLE M170 NYUN
+1E8C3 ; [.3BD1.0020.0002] # MENDE KIKAKUI SYLLABLE M098 NYEN
+1E8C4 ; [.3BD2.0020.0002] # MENDE KIKAKUI SYLLABLE M060 NYON
+1E922 ; [.3BD3.0020.0002] # ADLAM SMALL LETTER ALIF
+1E900 ; [.3BD3.0020.0008] # ADLAM CAPITAL LETTER ALIF
+1E923 ; [.3BD4.0020.0002] # ADLAM SMALL LETTER DAALI
+1E901 ; [.3BD4.0020.0008] # ADLAM CAPITAL LETTER DAALI
+1E924 ; [.3BD5.0020.0002] # ADLAM SMALL LETTER LAAM
+1E902 ; [.3BD5.0020.0008] # ADLAM CAPITAL LETTER LAAM
+1E925 ; [.3BD6.0020.0002] # ADLAM SMALL LETTER MIIM
+1E903 ; [.3BD6.0020.0008] # ADLAM CAPITAL LETTER MIIM
+1E926 ; [.3BD7.0020.0002] # ADLAM SMALL LETTER BA
+1E904 ; [.3BD7.0020.0008] # ADLAM CAPITAL LETTER BA
+1E927 ; [.3BD8.0020.0002] # ADLAM SMALL LETTER SINNYIIYHE
+1E905 ; [.3BD8.0020.0008] # ADLAM CAPITAL LETTER SINNYIIYHE
+1E928 ; [.3BD9.0020.0002] # ADLAM SMALL LETTER PE
+1E906 ; [.3BD9.0020.0008] # ADLAM CAPITAL LETTER PE
+1E929 ; [.3BDA.0020.0002] # ADLAM SMALL LETTER BHE
+1E907 ; [.3BDA.0020.0008] # ADLAM CAPITAL LETTER BHE
+1E92A ; [.3BDB.0020.0002] # ADLAM SMALL LETTER RA
+1E908 ; [.3BDB.0020.0008] # ADLAM CAPITAL LETTER RA
+1E92B ; [.3BDC.0020.0002] # ADLAM SMALL LETTER E
+1E909 ; [.3BDC.0020.0008] # ADLAM CAPITAL LETTER E
+1E92C ; [.3BDD.0020.0002] # ADLAM SMALL LETTER FA
+1E90A ; [.3BDD.0020.0008] # ADLAM CAPITAL LETTER FA
+1E92D ; [.3BDE.0020.0002] # ADLAM SMALL LETTER I
+1E90B ; [.3BDE.0020.0008] # ADLAM CAPITAL LETTER I
+1E92E ; [.3BDF.0020.0002] # ADLAM SMALL LETTER O
+1E90C ; [.3BDF.0020.0008] # ADLAM CAPITAL LETTER O
+1E92F ; [.3BE0.0020.0002] # ADLAM SMALL LETTER DHA
+1E90D ; [.3BE0.0020.0008] # ADLAM CAPITAL LETTER DHA
+1E930 ; [.3BE1.0020.0002] # ADLAM SMALL LETTER YHE
+1E90E ; [.3BE1.0020.0008] # ADLAM CAPITAL LETTER YHE
+1E931 ; [.3BE2.0020.0002] # ADLAM SMALL LETTER WAW
+1E90F ; [.3BE2.0020.0008] # ADLAM CAPITAL LETTER WAW
+1E932 ; [.3BE3.0020.0002] # ADLAM SMALL LETTER NUN
+1E910 ; [.3BE3.0020.0008] # ADLAM CAPITAL LETTER NUN
+1E933 ; [.3BE4.0020.0002] # ADLAM SMALL LETTER KAF
+1E911 ; [.3BE4.0020.0008] # ADLAM CAPITAL LETTER KAF
+1E934 ; [.3BE5.0020.0002] # ADLAM SMALL LETTER YA
+1E912 ; [.3BE5.0020.0008] # ADLAM CAPITAL LETTER YA
+1E935 ; [.3BE6.0020.0002] # ADLAM SMALL LETTER U
+1E913 ; [.3BE6.0020.0008] # ADLAM CAPITAL LETTER U
+1E936 ; [.3BE7.0020.0002] # ADLAM SMALL LETTER JIIM
+1E914 ; [.3BE7.0020.0008] # ADLAM CAPITAL LETTER JIIM
+1E937 ; [.3BE8.0020.0002] # ADLAM SMALL LETTER CHI
+1E915 ; [.3BE8.0020.0008] # ADLAM CAPITAL LETTER CHI
+1E938 ; [.3BE9.0020.0002] # ADLAM SMALL LETTER HA
+1E916 ; [.3BE9.0020.0008] # ADLAM CAPITAL LETTER HA
+1E939 ; [.3BEA.0020.0002] # ADLAM SMALL LETTER QAAF
+1E917 ; [.3BEA.0020.0008] # ADLAM CAPITAL LETTER QAAF
+1E93A ; [.3BEB.0020.0002] # ADLAM SMALL LETTER GA
+1E918 ; [.3BEB.0020.0008] # ADLAM CAPITAL LETTER GA
+1E93B ; [.3BEC.0020.0002] # ADLAM SMALL LETTER NYA
+1E919 ; [.3BEC.0020.0008] # ADLAM CAPITAL LETTER NYA
+1E93C ; [.3BED.0020.0002] # ADLAM SMALL LETTER TU
+1E91A ; [.3BED.0020.0008] # ADLAM CAPITAL LETTER TU
+1E93D ; [.3BEE.0020.0002] # ADLAM SMALL LETTER NHA
+1E91B ; [.3BEE.0020.0008] # ADLAM CAPITAL LETTER NHA
+1E93E ; [.3BEF.0020.0002] # ADLAM SMALL LETTER VA
+1E91C ; [.3BEF.0020.0008] # ADLAM CAPITAL LETTER VA
+1E93F ; [.3BF0.0020.0002] # ADLAM SMALL LETTER KHA
+1E91D ; [.3BF0.0020.0008] # ADLAM CAPITAL LETTER KHA
+1E940 ; [.3BF1.0020.0002] # ADLAM SMALL LETTER GBE
+1E91E ; [.3BF1.0020.0008] # ADLAM CAPITAL LETTER GBE
+1E941 ; [.3BF2.0020.0002] # ADLAM SMALL LETTER ZAL
+1E91F ; [.3BF2.0020.0008] # ADLAM CAPITAL LETTER ZAL
+1E942 ; [.3BF3.0020.0002] # ADLAM SMALL LETTER KPO
+1E920 ; [.3BF3.0020.0008] # ADLAM CAPITAL LETTER KPO
+1E943 ; [.3BF4.0020.0002] # ADLAM SMALL LETTER SHA
+1E921 ; [.3BF4.0020.0008] # ADLAM CAPITAL LETTER SHA
+1100 ; [.3BF5.0020.0002] # HANGUL CHOSEONG KIYEOK
+3131 ; [.3BF5.0020.0004] # HANGUL LETTER KIYEOK
+3200 ; [*0317.0020.0004][.3BF5.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL KIYEOK
+3260 ; [.3BF5.0020.0006] # CIRCLED HANGUL KIYEOK
+FFA1 ; [.3BF5.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK
+320E ; [*0317.0020.0004][.3BF5.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL KIYEOK A
+326E ; [.3BF5.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL KIYEOK A
+1101 ; [.3BF6.0020.0002] # HANGUL CHOSEONG SSANGKIYEOK
+3132 ; [.3BF6.0020.0004] # HANGUL LETTER SSANGKIYEOK
+FFA2 ; [.3BF6.0020.0012] # HALFWIDTH HANGUL LETTER SSANGKIYEOK
+1102 ; [.3BF7.0020.0002] # HANGUL CHOSEONG NIEUN
+3134 ; [.3BF7.0020.0004] # HANGUL LETTER NIEUN
+3201 ; [*0317.0020.0004][.3BF7.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL NIEUN
+3261 ; [.3BF7.0020.0006] # CIRCLED HANGUL NIEUN
+FFA4 ; [.3BF7.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN
+320F ; [*0317.0020.0004][.3BF7.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL NIEUN A
+326F ; [.3BF7.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL NIEUN A
+1103 ; [.3BF8.0020.0002] # HANGUL CHOSEONG TIKEUT
+3137 ; [.3BF8.0020.0004] # HANGUL LETTER TIKEUT
+3202 ; [*0317.0020.0004][.3BF8.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL TIKEUT
+3262 ; [.3BF8.0020.0006] # CIRCLED HANGUL TIKEUT
+FFA7 ; [.3BF8.0020.0012] # HALFWIDTH HANGUL LETTER TIKEUT
+3210 ; [*0317.0020.0004][.3BF8.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL TIKEUT A
+3270 ; [.3BF8.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL TIKEUT A
+1104 ; [.3BF9.0020.0002] # HANGUL CHOSEONG SSANGTIKEUT
+3138 ; [.3BF9.0020.0004] # HANGUL LETTER SSANGTIKEUT
+FFA8 ; [.3BF9.0020.0012] # HALFWIDTH HANGUL LETTER SSANGTIKEUT
+1105 ; [.3BFA.0020.0002] # HANGUL CHOSEONG RIEUL
+3139 ; [.3BFA.0020.0004] # HANGUL LETTER RIEUL
+3203 ; [*0317.0020.0004][.3BFA.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL RIEUL
+3263 ; [.3BFA.0020.0006] # CIRCLED HANGUL RIEUL
+FFA9 ; [.3BFA.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL
+3211 ; [*0317.0020.0004][.3BFA.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL RIEUL A
+3271 ; [.3BFA.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL RIEUL A
+1106 ; [.3BFB.0020.0002] # HANGUL CHOSEONG MIEUM
+3141 ; [.3BFB.0020.0004] # HANGUL LETTER MIEUM
+3204 ; [*0317.0020.0004][.3BFB.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL MIEUM
+3264 ; [.3BFB.0020.0006] # CIRCLED HANGUL MIEUM
+FFB1 ; [.3BFB.0020.0012] # HALFWIDTH HANGUL LETTER MIEUM
+3212 ; [*0317.0020.0004][.3BFB.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL MIEUM A
+3272 ; [.3BFB.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL MIEUM A
+1107 ; [.3BFC.0020.0002] # HANGUL CHOSEONG PIEUP
+3142 ; [.3BFC.0020.0004] # HANGUL LETTER PIEUP
+3205 ; [*0317.0020.0004][.3BFC.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL PIEUP
+3265 ; [.3BFC.0020.0006] # CIRCLED HANGUL PIEUP
+FFB2 ; [.3BFC.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP
+3213 ; [*0317.0020.0004][.3BFC.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL PIEUP A
+3273 ; [.3BFC.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL PIEUP A
+1108 ; [.3BFD.0020.0002] # HANGUL CHOSEONG SSANGPIEUP
+3143 ; [.3BFD.0020.0004] # HANGUL LETTER SSANGPIEUP
+FFB3 ; [.3BFD.0020.0012] # HALFWIDTH HANGUL LETTER SSANGPIEUP
+1109 ; [.3BFE.0020.0002] # HANGUL CHOSEONG SIOS
+3145 ; [.3BFE.0020.0004] # HANGUL LETTER SIOS
+3206 ; [*0317.0020.0004][.3BFE.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL SIOS
+3266 ; [.3BFE.0020.0006] # CIRCLED HANGUL SIOS
+FFB5 ; [.3BFE.0020.0012] # HALFWIDTH HANGUL LETTER SIOS
+3214 ; [*0317.0020.0004][.3BFE.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL SIOS A
+3274 ; [.3BFE.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL SIOS A
+110A ; [.3BFF.0020.0002] # HANGUL CHOSEONG SSANGSIOS
+3146 ; [.3BFF.0020.0004] # HANGUL LETTER SSANGSIOS
+FFB6 ; [.3BFF.0020.0012] # HALFWIDTH HANGUL LETTER SSANGSIOS
+110B ; [.3C00.0020.0002] # HANGUL CHOSEONG IEUNG
+3147 ; [.3C00.0020.0004] # HANGUL LETTER IEUNG
+3207 ; [*0317.0020.0004][.3C00.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL IEUNG
+3267 ; [.3C00.0020.0006] # CIRCLED HANGUL IEUNG
+FFB7 ; [.3C00.0020.0012] # HALFWIDTH HANGUL LETTER IEUNG
+3215 ; [*0317.0020.0004][.3C00.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL IEUNG A
+3275 ; [.3C00.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL IEUNG A
+321D ; [*0317.0020.0004][.3C00.0020.0004][.3C7B.0020.0004][.3C01.0020.0004][.3C77.0020.0004][.3CD4.0020.0004][*0318.0020.0004] # PARENTHESIZED KOREAN CHARACTER OJEON
+321E ; [*0317.0020.0004][.3C00.0020.0004][.3C7B.0020.0004][.3C07.0020.0004][.3C80.0020.0004][*0318.0020.0004] # PARENTHESIZED KOREAN CHARACTER O HU
+327E ; [.3C00.0020.0006][.3C80.0020.0006] # CIRCLED HANGUL IEUNG U
+110C ; [.3C01.0020.0002] # HANGUL CHOSEONG CIEUC
+3148 ; [.3C01.0020.0004] # HANGUL LETTER CIEUC
+3208 ; [*0317.0020.0004][.3C01.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL CIEUC
+3268 ; [.3C01.0020.0006] # CIRCLED HANGUL CIEUC
+FFB8 ; [.3C01.0020.0012] # HALFWIDTH HANGUL LETTER CIEUC
+3216 ; [*0317.0020.0004][.3C01.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL CIEUC A
+3276 ; [.3C01.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL CIEUC A
+321C ; [*0317.0020.0004][.3C01.0020.0004][.3C80.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL CIEUC U
+327D ; [.3C01.0020.0006][.3C80.0020.0006][.3C00.0020.0006][.3C86.0020.0006] # CIRCLED KOREAN CHARACTER JUEUI
+110D ; [.3C02.0020.0002] # HANGUL CHOSEONG SSANGCIEUC
+3149 ; [.3C02.0020.0004] # HANGUL LETTER SSANGCIEUC
+FFB9 ; [.3C02.0020.0012] # HALFWIDTH HANGUL LETTER SSANGCIEUC
+110E ; [.3C03.0020.0002] # HANGUL CHOSEONG CHIEUCH
+314A ; [.3C03.0020.0004] # HANGUL LETTER CHIEUCH
+3209 ; [*0317.0020.0004][.3C03.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL CHIEUCH
+3269 ; [.3C03.0020.0006] # CIRCLED HANGUL CHIEUCH
+FFBA ; [.3C03.0020.0012] # HALFWIDTH HANGUL LETTER CHIEUCH
+3217 ; [*0317.0020.0004][.3C03.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL CHIEUCH A
+3277 ; [.3C03.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL CHIEUCH A
+327C ; [.3C03.0020.0006][.3C73.0020.0006][.3CE0.0020.0006][.3BF5.0020.0006][.3C7B.0020.0006] # CIRCLED KOREAN CHARACTER CHAMKO
+110F ; [.3C04.0020.0002] # HANGUL CHOSEONG KHIEUKH
+314B ; [.3C04.0020.0004] # HANGUL LETTER KHIEUKH
+320A ; [*0317.0020.0004][.3C04.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL KHIEUKH
+326A ; [.3C04.0020.0006] # CIRCLED HANGUL KHIEUKH
+FFBB ; [.3C04.0020.0012] # HALFWIDTH HANGUL LETTER KHIEUKH
+3218 ; [*0317.0020.0004][.3C04.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL KHIEUKH A
+3278 ; [.3C04.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL KHIEUKH A
+1110 ; [.3C05.0020.0002] # HANGUL CHOSEONG THIEUTH
+314C ; [.3C05.0020.0004] # HANGUL LETTER THIEUTH
+320B ; [*0317.0020.0004][.3C05.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL THIEUTH
+326B ; [.3C05.0020.0006] # CIRCLED HANGUL THIEUTH
+FFBC ; [.3C05.0020.0012] # HALFWIDTH HANGUL LETTER THIEUTH
+3219 ; [*0317.0020.0004][.3C05.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL THIEUTH A
+3279 ; [.3C05.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL THIEUTH A
+1111 ; [.3C06.0020.0002] # HANGUL CHOSEONG PHIEUPH
+314D ; [.3C06.0020.0004] # HANGUL LETTER PHIEUPH
+320C ; [*0317.0020.0004][.3C06.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL PHIEUPH
+326C ; [.3C06.0020.0006] # CIRCLED HANGUL PHIEUPH
+FFBD ; [.3C06.0020.0012] # HALFWIDTH HANGUL LETTER PHIEUPH
+321A ; [*0317.0020.0004][.3C06.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL PHIEUPH A
+327A ; [.3C06.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL PHIEUPH A
+1112 ; [.3C07.0020.0002] # HANGUL CHOSEONG HIEUH
+314E ; [.3C07.0020.0004] # HANGUL LETTER HIEUH
+320D ; [*0317.0020.0004][.3C07.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL HIEUH
+326D ; [.3C07.0020.0006] # CIRCLED HANGUL HIEUH
+FFBE ; [.3C07.0020.0012] # HALFWIDTH HANGUL LETTER HIEUH
+321B ; [*0317.0020.0004][.3C07.0020.0004][.3C73.0020.0004][*0318.0020.0004] # PARENTHESIZED HANGUL HIEUH A
+327B ; [.3C07.0020.0006][.3C73.0020.0006] # CIRCLED HANGUL HIEUH A
+1113 ; [.3C08.0020.0002] # HANGUL CHOSEONG NIEUN-KIYEOK
+1114 ; [.3C09.0020.0002] # HANGUL CHOSEONG SSANGNIEUN
+3165 ; [.3C09.0020.0004] # HANGUL LETTER SSANGNIEUN
+1115 ; [.3C0A.0020.0002] # HANGUL CHOSEONG NIEUN-TIKEUT
+3166 ; [.3C0A.0020.0004] # HANGUL LETTER NIEUN-TIKEUT
+1116 ; [.3C0B.0020.0002] # HANGUL CHOSEONG NIEUN-PIEUP
+1117 ; [.3C0C.0020.0002] # HANGUL CHOSEONG TIKEUT-KIYEOK
+1118 ; [.3C0D.0020.0002] # HANGUL CHOSEONG RIEUL-NIEUN
+1119 ; [.3C0E.0020.0002] # HANGUL CHOSEONG SSANGRIEUL
+111A ; [.3C0F.0020.0002] # HANGUL CHOSEONG RIEUL-HIEUH
+3140 ; [.3C0F.0020.0004] # HANGUL LETTER RIEUL-HIEUH
+FFB0 ; [.3C0F.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+111B ; [.3C10.0020.0002] # HANGUL CHOSEONG KAPYEOUNRIEUL
+111C ; [.3C11.0020.0002] # HANGUL CHOSEONG MIEUM-PIEUP
+316E ; [.3C11.0020.0004] # HANGUL LETTER MIEUM-PIEUP
+111D ; [.3C12.0020.0002] # HANGUL CHOSEONG KAPYEOUNMIEUM
+3171 ; [.3C12.0020.0004] # HANGUL LETTER KAPYEOUNMIEUM
+111E ; [.3C13.0020.0002] # HANGUL CHOSEONG PIEUP-KIYEOK
+3172 ; [.3C13.0020.0004] # HANGUL LETTER PIEUP-KIYEOK
+111F ; [.3C14.0020.0002] # HANGUL CHOSEONG PIEUP-NIEUN
+1120 ; [.3C15.0020.0002] # HANGUL CHOSEONG PIEUP-TIKEUT
+3173 ; [.3C15.0020.0004] # HANGUL LETTER PIEUP-TIKEUT
+1121 ; [.3C16.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS
+3144 ; [.3C16.0020.0004] # HANGUL LETTER PIEUP-SIOS
+FFB4 ; [.3C16.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP-SIOS
+1122 ; [.3C17.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
+3174 ; [.3C17.0020.0004] # HANGUL LETTER PIEUP-SIOS-KIYEOK
+1123 ; [.3C18.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
+3175 ; [.3C18.0020.0004] # HANGUL LETTER PIEUP-SIOS-TIKEUT
+1124 ; [.3C19.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
+1125 ; [.3C1A.0020.0002] # HANGUL CHOSEONG PIEUP-SSANGSIOS
+1126 ; [.3C1B.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
+1127 ; [.3C1C.0020.0002] # HANGUL CHOSEONG PIEUP-CIEUC
+3176 ; [.3C1C.0020.0004] # HANGUL LETTER PIEUP-CIEUC
+1128 ; [.3C1D.0020.0002] # HANGUL CHOSEONG PIEUP-CHIEUCH
+1129 ; [.3C1E.0020.0002] # HANGUL CHOSEONG PIEUP-THIEUTH
+3177 ; [.3C1E.0020.0004] # HANGUL LETTER PIEUP-THIEUTH
+112A ; [.3C1F.0020.0002] # HANGUL CHOSEONG PIEUP-PHIEUPH
+112B ; [.3C20.0020.0002] # HANGUL CHOSEONG KAPYEOUNPIEUP
+3178 ; [.3C20.0020.0004] # HANGUL LETTER KAPYEOUNPIEUP
+112C ; [.3C21.0020.0002] # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
+3179 ; [.3C21.0020.0004] # HANGUL LETTER KAPYEOUNSSANGPIEUP
+112D ; [.3C22.0020.0002] # HANGUL CHOSEONG SIOS-KIYEOK
+317A ; [.3C22.0020.0004] # HANGUL LETTER SIOS-KIYEOK
+112E ; [.3C23.0020.0002] # HANGUL CHOSEONG SIOS-NIEUN
+317B ; [.3C23.0020.0004] # HANGUL LETTER SIOS-NIEUN
+112F ; [.3C24.0020.0002] # HANGUL CHOSEONG SIOS-TIKEUT
+317C ; [.3C24.0020.0004] # HANGUL LETTER SIOS-TIKEUT
+1130 ; [.3C25.0020.0002] # HANGUL CHOSEONG SIOS-RIEUL
+1131 ; [.3C26.0020.0002] # HANGUL CHOSEONG SIOS-MIEUM
+1132 ; [.3C27.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP
+317D ; [.3C27.0020.0004] # HANGUL LETTER SIOS-PIEUP
+1133 ; [.3C28.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
+1134 ; [.3C29.0020.0002] # HANGUL CHOSEONG SIOS-SSANGSIOS
+1135 ; [.3C2A.0020.0002] # HANGUL CHOSEONG SIOS-IEUNG
+1136 ; [.3C2B.0020.0002] # HANGUL CHOSEONG SIOS-CIEUC
+317E ; [.3C2B.0020.0004] # HANGUL LETTER SIOS-CIEUC
+1137 ; [.3C2C.0020.0002] # HANGUL CHOSEONG SIOS-CHIEUCH
+1138 ; [.3C2D.0020.0002] # HANGUL CHOSEONG SIOS-KHIEUKH
+1139 ; [.3C2E.0020.0002] # HANGUL CHOSEONG SIOS-THIEUTH
+113A ; [.3C2F.0020.0002] # HANGUL CHOSEONG SIOS-PHIEUPH
+113B ; [.3C30.0020.0002] # HANGUL CHOSEONG SIOS-HIEUH
+113C ; [.3C31.0020.0002] # HANGUL CHOSEONG CHITUEUMSIOS
+113D ; [.3C32.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGSIOS
+113E ; [.3C33.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSIOS
+113F ; [.3C34.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
+1140 ; [.3C35.0020.0002] # HANGUL CHOSEONG PANSIOS
+317F ; [.3C35.0020.0004] # HANGUL LETTER PANSIOS
+1141 ; [.3C36.0020.0002] # HANGUL CHOSEONG IEUNG-KIYEOK
+1142 ; [.3C37.0020.0002] # HANGUL CHOSEONG IEUNG-TIKEUT
+1143 ; [.3C38.0020.0002] # HANGUL CHOSEONG IEUNG-MIEUM
+1144 ; [.3C39.0020.0002] # HANGUL CHOSEONG IEUNG-PIEUP
+1145 ; [.3C3A.0020.0002] # HANGUL CHOSEONG IEUNG-SIOS
+1146 ; [.3C3B.0020.0002] # HANGUL CHOSEONG IEUNG-PANSIOS
+1147 ; [.3C3C.0020.0002] # HANGUL CHOSEONG SSANGIEUNG
+3180 ; [.3C3C.0020.0004] # HANGUL LETTER SSANGIEUNG
+1148 ; [.3C3D.0020.0002] # HANGUL CHOSEONG IEUNG-CIEUC
+1149 ; [.3C3E.0020.0002] # HANGUL CHOSEONG IEUNG-CHIEUCH
+114A ; [.3C3F.0020.0002] # HANGUL CHOSEONG IEUNG-THIEUTH
+114B ; [.3C40.0020.0002] # HANGUL CHOSEONG IEUNG-PHIEUPH
+114C ; [.3C41.0020.0002] # HANGUL CHOSEONG YESIEUNG
+3181 ; [.3C41.0020.0004] # HANGUL LETTER YESIEUNG
+114D ; [.3C42.0020.0002] # HANGUL CHOSEONG CIEUC-IEUNG
+114E ; [.3C43.0020.0002] # HANGUL CHOSEONG CHITUEUMCIEUC
+114F ; [.3C44.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
+1150 ; [.3C45.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCIEUC
+1151 ; [.3C46.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
+1152 ; [.3C47.0020.0002] # HANGUL CHOSEONG CHIEUCH-KHIEUKH
+1153 ; [.3C48.0020.0002] # HANGUL CHOSEONG CHIEUCH-HIEUH
+1154 ; [.3C49.0020.0002] # HANGUL CHOSEONG CHITUEUMCHIEUCH
+1155 ; [.3C4A.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
+1156 ; [.3C4B.0020.0002] # HANGUL CHOSEONG PHIEUPH-PIEUP
+1157 ; [.3C4C.0020.0002] # HANGUL CHOSEONG KAPYEOUNPHIEUPH
+3184 ; [.3C4C.0020.0004] # HANGUL LETTER KAPYEOUNPHIEUPH
+1158 ; [.3C4D.0020.0002] # HANGUL CHOSEONG SSANGHIEUH
+3185 ; [.3C4D.0020.0004] # HANGUL LETTER SSANGHIEUH
+1159 ; [.3C4E.0020.0002] # HANGUL CHOSEONG YEORINHIEUH
+3186 ; [.3C4E.0020.0004] # HANGUL LETTER YEORINHIEUH
+115A ; [.3C4F.0020.0002] # HANGUL CHOSEONG KIYEOK-TIKEUT
+115B ; [.3C50.0020.0002] # HANGUL CHOSEONG NIEUN-SIOS
+115C ; [.3C51.0020.0002] # HANGUL CHOSEONG NIEUN-CIEUC
+115D ; [.3C52.0020.0002] # HANGUL CHOSEONG NIEUN-HIEUH
+115E ; [.3C53.0020.0002] # HANGUL CHOSEONG TIKEUT-RIEUL
+A960 ; [.3C54.0020.0002] # HANGUL CHOSEONG TIKEUT-MIEUM
+A961 ; [.3C55.0020.0002] # HANGUL CHOSEONG TIKEUT-PIEUP
+A962 ; [.3C56.0020.0002] # HANGUL CHOSEONG TIKEUT-SIOS
+A963 ; [.3C57.0020.0002] # HANGUL CHOSEONG TIKEUT-CIEUC
+A964 ; [.3C58.0020.0002] # HANGUL CHOSEONG RIEUL-KIYEOK
+A965 ; [.3C59.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGKIYEOK
+A966 ; [.3C5A.0020.0002] # HANGUL CHOSEONG RIEUL-TIKEUT
+A967 ; [.3C5B.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGTIKEUT
+A968 ; [.3C5C.0020.0002] # HANGUL CHOSEONG RIEUL-MIEUM
+A969 ; [.3C5D.0020.0002] # HANGUL CHOSEONG RIEUL-PIEUP
+A96A ; [.3C5E.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGPIEUP
+A96B ; [.3C5F.0020.0002] # HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
+A96C ; [.3C60.0020.0002] # HANGUL CHOSEONG RIEUL-SIOS
+A96D ; [.3C61.0020.0002] # HANGUL CHOSEONG RIEUL-CIEUC
+A96E ; [.3C62.0020.0002] # HANGUL CHOSEONG RIEUL-KHIEUKH
+A96F ; [.3C63.0020.0002] # HANGUL CHOSEONG MIEUM-KIYEOK
+A970 ; [.3C64.0020.0002] # HANGUL CHOSEONG MIEUM-TIKEUT
+A971 ; [.3C65.0020.0002] # HANGUL CHOSEONG MIEUM-SIOS
+A972 ; [.3C66.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
+A973 ; [.3C67.0020.0002] # HANGUL CHOSEONG PIEUP-KHIEUKH
+A974 ; [.3C68.0020.0002] # HANGUL CHOSEONG PIEUP-HIEUH
+A975 ; [.3C69.0020.0002] # HANGUL CHOSEONG SSANGSIOS-PIEUP
+A976 ; [.3C6A.0020.0002] # HANGUL CHOSEONG IEUNG-RIEUL
+A977 ; [.3C6B.0020.0002] # HANGUL CHOSEONG IEUNG-HIEUH
+A978 ; [.3C6C.0020.0002] # HANGUL CHOSEONG SSANGCIEUC-HIEUH
+A979 ; [.3C6D.0020.0002] # HANGUL CHOSEONG SSANGTHIEUTH
+A97A ; [.3C6E.0020.0002] # HANGUL CHOSEONG PHIEUPH-HIEUH
+A97B ; [.3C6F.0020.0002] # HANGUL CHOSEONG HIEUH-SIOS
+A97C ; [.3C70.0020.0002] # HANGUL CHOSEONG SSANGYEORINHIEUH
+115F ; [.3C71.0020.0002] # HANGUL CHOSEONG FILLER
+1160 ; [.3C72.0020.0002] # HANGUL JUNGSEONG FILLER
+3164 ; [.3C72.0020.0004] # HANGUL FILLER
+FFA0 ; [.3C72.0020.0012] # HALFWIDTH HANGUL FILLER
+1161 ; [.3C73.0020.0002] # HANGUL JUNGSEONG A
+314F ; [.3C73.0020.0004] # HANGUL LETTER A
+FFC2 ; [.3C73.0020.0012] # HALFWIDTH HANGUL LETTER A
+1162 ; [.3C74.0020.0002] # HANGUL JUNGSEONG AE
+3150 ; [.3C74.0020.0004] # HANGUL LETTER AE
+FFC3 ; [.3C74.0020.0012] # HALFWIDTH HANGUL LETTER AE
+1163 ; [.3C75.0020.0002] # HANGUL JUNGSEONG YA
+3151 ; [.3C75.0020.0004] # HANGUL LETTER YA
+FFC4 ; [.3C75.0020.0012] # HALFWIDTH HANGUL LETTER YA
+1164 ; [.3C76.0020.0002] # HANGUL JUNGSEONG YAE
+3152 ; [.3C76.0020.0004] # HANGUL LETTER YAE
+FFC5 ; [.3C76.0020.0012] # HALFWIDTH HANGUL LETTER YAE
+1165 ; [.3C77.0020.0002] # HANGUL JUNGSEONG EO
+3153 ; [.3C77.0020.0004] # HANGUL LETTER EO
+FFC6 ; [.3C77.0020.0012] # HALFWIDTH HANGUL LETTER EO
+1166 ; [.3C78.0020.0002] # HANGUL JUNGSEONG E
+3154 ; [.3C78.0020.0004] # HANGUL LETTER E
+FFC7 ; [.3C78.0020.0012] # HALFWIDTH HANGUL LETTER E
+1167 ; [.3C79.0020.0002] # HANGUL JUNGSEONG YEO
+3155 ; [.3C79.0020.0004] # HANGUL LETTER YEO
+FFCA ; [.3C79.0020.0012] # HALFWIDTH HANGUL LETTER YEO
+1168 ; [.3C7A.0020.0002] # HANGUL JUNGSEONG YE
+3156 ; [.3C7A.0020.0004] # HANGUL LETTER YE
+FFCB ; [.3C7A.0020.0012] # HALFWIDTH HANGUL LETTER YE
+1169 ; [.3C7B.0020.0002] # HANGUL JUNGSEONG O
+3157 ; [.3C7B.0020.0004] # HANGUL LETTER O
+FFCC ; [.3C7B.0020.0012] # HALFWIDTH HANGUL LETTER O
+116A ; [.3C7C.0020.0002] # HANGUL JUNGSEONG WA
+3158 ; [.3C7C.0020.0004] # HANGUL LETTER WA
+FFCD ; [.3C7C.0020.0012] # HALFWIDTH HANGUL LETTER WA
+116B ; [.3C7D.0020.0002] # HANGUL JUNGSEONG WAE
+3159 ; [.3C7D.0020.0004] # HANGUL LETTER WAE
+FFCE ; [.3C7D.0020.0012] # HALFWIDTH HANGUL LETTER WAE
+116C ; [.3C7E.0020.0002] # HANGUL JUNGSEONG OE
+315A ; [.3C7E.0020.0004] # HANGUL LETTER OE
+FFCF ; [.3C7E.0020.0012] # HALFWIDTH HANGUL LETTER OE
+116D ; [.3C7F.0020.0002] # HANGUL JUNGSEONG YO
+315B ; [.3C7F.0020.0004] # HANGUL LETTER YO
+FFD2 ; [.3C7F.0020.0012] # HALFWIDTH HANGUL LETTER YO
+116E ; [.3C80.0020.0002] # HANGUL JUNGSEONG U
+315C ; [.3C80.0020.0004] # HANGUL LETTER U
+FFD3 ; [.3C80.0020.0012] # HALFWIDTH HANGUL LETTER U
+116F ; [.3C81.0020.0002] # HANGUL JUNGSEONG WEO
+315D ; [.3C81.0020.0004] # HANGUL LETTER WEO
+FFD4 ; [.3C81.0020.0012] # HALFWIDTH HANGUL LETTER WEO
+1170 ; [.3C82.0020.0002] # HANGUL JUNGSEONG WE
+315E ; [.3C82.0020.0004] # HANGUL LETTER WE
+FFD5 ; [.3C82.0020.0012] # HALFWIDTH HANGUL LETTER WE
+1171 ; [.3C83.0020.0002] # HANGUL JUNGSEONG WI
+315F ; [.3C83.0020.0004] # HANGUL LETTER WI
+FFD6 ; [.3C83.0020.0012] # HALFWIDTH HANGUL LETTER WI
+1172 ; [.3C84.0020.0002] # HANGUL JUNGSEONG YU
+3160 ; [.3C84.0020.0004] # HANGUL LETTER YU
+FFD7 ; [.3C84.0020.0012] # HALFWIDTH HANGUL LETTER YU
+1173 ; [.3C85.0020.0002] # HANGUL JUNGSEONG EU
+3161 ; [.3C85.0020.0004] # HANGUL LETTER EU
+FFDA ; [.3C85.0020.0012] # HALFWIDTH HANGUL LETTER EU
+1174 ; [.3C86.0020.0002] # HANGUL JUNGSEONG YI
+3162 ; [.3C86.0020.0004] # HANGUL LETTER YI
+FFDB ; [.3C86.0020.0012] # HALFWIDTH HANGUL LETTER YI
+1175 ; [.3C87.0020.0002] # HANGUL JUNGSEONG I
+3163 ; [.3C87.0020.0004] # HANGUL LETTER I
+FFDC ; [.3C87.0020.0012] # HALFWIDTH HANGUL LETTER I
+1176 ; [.3C88.0020.0002] # HANGUL JUNGSEONG A-O
+1177 ; [.3C89.0020.0002] # HANGUL JUNGSEONG A-U
+1178 ; [.3C8A.0020.0002] # HANGUL JUNGSEONG YA-O
+1179 ; [.3C8B.0020.0002] # HANGUL JUNGSEONG YA-YO
+117A ; [.3C8C.0020.0002] # HANGUL JUNGSEONG EO-O
+117B ; [.3C8D.0020.0002] # HANGUL JUNGSEONG EO-U
+117C ; [.3C8E.0020.0002] # HANGUL JUNGSEONG EO-EU
+117D ; [.3C8F.0020.0002] # HANGUL JUNGSEONG YEO-O
+117E ; [.3C90.0020.0002] # HANGUL JUNGSEONG YEO-U
+117F ; [.3C91.0020.0002] # HANGUL JUNGSEONG O-EO
+1180 ; [.3C92.0020.0002] # HANGUL JUNGSEONG O-E
+1181 ; [.3C93.0020.0002] # HANGUL JUNGSEONG O-YE
+1182 ; [.3C94.0020.0002] # HANGUL JUNGSEONG O-O
+1183 ; [.3C95.0020.0002] # HANGUL JUNGSEONG O-U
+1184 ; [.3C96.0020.0002] # HANGUL JUNGSEONG YO-YA
+3187 ; [.3C96.0020.0004] # HANGUL LETTER YO-YA
+1185 ; [.3C97.0020.0002] # HANGUL JUNGSEONG YO-YAE
+3188 ; [.3C97.0020.0004] # HANGUL LETTER YO-YAE
+1186 ; [.3C98.0020.0002] # HANGUL JUNGSEONG YO-YEO
+1187 ; [.3C99.0020.0002] # HANGUL JUNGSEONG YO-O
+1188 ; [.3C9A.0020.0002] # HANGUL JUNGSEONG YO-I
+3189 ; [.3C9A.0020.0004] # HANGUL LETTER YO-I
+1189 ; [.3C9B.0020.0002] # HANGUL JUNGSEONG U-A
+118A ; [.3C9C.0020.0002] # HANGUL JUNGSEONG U-AE
+118B ; [.3C9D.0020.0002] # HANGUL JUNGSEONG U-EO-EU
+118C ; [.3C9E.0020.0002] # HANGUL JUNGSEONG U-YE
+118D ; [.3C9F.0020.0002] # HANGUL JUNGSEONG U-U
+118E ; [.3CA0.0020.0002] # HANGUL JUNGSEONG YU-A
+118F ; [.3CA1.0020.0002] # HANGUL JUNGSEONG YU-EO
+1190 ; [.3CA2.0020.0002] # HANGUL JUNGSEONG YU-E
+1191 ; [.3CA3.0020.0002] # HANGUL JUNGSEONG YU-YEO
+318A ; [.3CA3.0020.0004] # HANGUL LETTER YU-YEO
+1192 ; [.3CA4.0020.0002] # HANGUL JUNGSEONG YU-YE
+318B ; [.3CA4.0020.0004] # HANGUL LETTER YU-YE
+1193 ; [.3CA5.0020.0002] # HANGUL JUNGSEONG YU-U
+1194 ; [.3CA6.0020.0002] # HANGUL JUNGSEONG YU-I
+318C ; [.3CA6.0020.0004] # HANGUL LETTER YU-I
+1195 ; [.3CA7.0020.0002] # HANGUL JUNGSEONG EU-U
+1196 ; [.3CA8.0020.0002] # HANGUL JUNGSEONG EU-EU
+1197 ; [.3CA9.0020.0002] # HANGUL JUNGSEONG YI-U
+1198 ; [.3CAA.0020.0002] # HANGUL JUNGSEONG I-A
+1199 ; [.3CAB.0020.0002] # HANGUL JUNGSEONG I-YA
+119A ; [.3CAC.0020.0002] # HANGUL JUNGSEONG I-O
+119B ; [.3CAD.0020.0002] # HANGUL JUNGSEONG I-U
+119C ; [.3CAE.0020.0002] # HANGUL JUNGSEONG I-EU
+119D ; [.3CAF.0020.0002] # HANGUL JUNGSEONG I-ARAEA
+119E ; [.3CB0.0020.0002] # HANGUL JUNGSEONG ARAEA
+318D ; [.3CB0.0020.0004] # HANGUL LETTER ARAEA
+119F ; [.3CB1.0020.0002] # HANGUL JUNGSEONG ARAEA-EO
+11A0 ; [.3CB2.0020.0002] # HANGUL JUNGSEONG ARAEA-U
+11A1 ; [.3CB3.0020.0002] # HANGUL JUNGSEONG ARAEA-I
+318E ; [.3CB3.0020.0004] # HANGUL LETTER ARAEAE
+11A2 ; [.3CB4.0020.0002] # HANGUL JUNGSEONG SSANGARAEA
+11A3 ; [.3CB5.0020.0002] # HANGUL JUNGSEONG A-EU
+11A4 ; [.3CB6.0020.0002] # HANGUL JUNGSEONG YA-U
+11A5 ; [.3CB7.0020.0002] # HANGUL JUNGSEONG YEO-YA
+11A6 ; [.3CB8.0020.0002] # HANGUL JUNGSEONG O-YA
+11A7 ; [.3CB9.0020.0002] # HANGUL JUNGSEONG O-YAE
+D7B0 ; [.3CBA.0020.0002] # HANGUL JUNGSEONG O-YEO
+D7B1 ; [.3CBB.0020.0002] # HANGUL JUNGSEONG O-O-I
+D7B2 ; [.3CBC.0020.0002] # HANGUL JUNGSEONG YO-A
+D7B3 ; [.3CBD.0020.0002] # HANGUL JUNGSEONG YO-AE
+D7B4 ; [.3CBE.0020.0002] # HANGUL JUNGSEONG YO-EO
+D7B5 ; [.3CBF.0020.0002] # HANGUL JUNGSEONG U-YEO
+D7B6 ; [.3CC0.0020.0002] # HANGUL JUNGSEONG U-I-I
+D7B7 ; [.3CC1.0020.0002] # HANGUL JUNGSEONG YU-AE
+D7B8 ; [.3CC2.0020.0002] # HANGUL JUNGSEONG YU-O
+D7B9 ; [.3CC3.0020.0002] # HANGUL JUNGSEONG EU-A
+D7BA ; [.3CC4.0020.0002] # HANGUL JUNGSEONG EU-EO
+D7BB ; [.3CC5.0020.0002] # HANGUL JUNGSEONG EU-E
+D7BC ; [.3CC6.0020.0002] # HANGUL JUNGSEONG EU-O
+D7BD ; [.3CC7.0020.0002] # HANGUL JUNGSEONG I-YA-O
+D7BE ; [.3CC8.0020.0002] # HANGUL JUNGSEONG I-YAE
+D7BF ; [.3CC9.0020.0002] # HANGUL JUNGSEONG I-YEO
+D7C0 ; [.3CCA.0020.0002] # HANGUL JUNGSEONG I-YE
+D7C1 ; [.3CCB.0020.0002] # HANGUL JUNGSEONG I-O-I
+D7C2 ; [.3CCC.0020.0002] # HANGUL JUNGSEONG I-YO
+D7C3 ; [.3CCD.0020.0002] # HANGUL JUNGSEONG I-YU
+D7C4 ; [.3CCE.0020.0002] # HANGUL JUNGSEONG I-I
+D7C5 ; [.3CCF.0020.0002] # HANGUL JUNGSEONG ARAEA-A
+D7C6 ; [.3CD0.0020.0002] # HANGUL JUNGSEONG ARAEA-E
+11A8 ; [.3CD1.0020.0002] # HANGUL JONGSEONG KIYEOK
+11A9 ; [.3CD2.0020.0002] # HANGUL JONGSEONG SSANGKIYEOK
+11AA ; [.3CD3.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS
+3133 ; [.3CD3.0020.0004] # HANGUL LETTER KIYEOK-SIOS
+FFA3 ; [.3CD3.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+11AB ; [.3CD4.0020.0002] # HANGUL JONGSEONG NIEUN
+11AC ; [.3CD5.0020.0002] # HANGUL JONGSEONG NIEUN-CIEUC
+3135 ; [.3CD5.0020.0004] # HANGUL LETTER NIEUN-CIEUC
+FFA5 ; [.3CD5.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+11AD ; [.3CD6.0020.0002] # HANGUL JONGSEONG NIEUN-HIEUH
+3136 ; [.3CD6.0020.0004] # HANGUL LETTER NIEUN-HIEUH
+FFA6 ; [.3CD6.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+11AE ; [.3CD7.0020.0002] # HANGUL JONGSEONG TIKEUT
+11AF ; [.3CD8.0020.0002] # HANGUL JONGSEONG RIEUL
+11B0 ; [.3CD9.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK
+313A ; [.3CD9.0020.0004] # HANGUL LETTER RIEUL-KIYEOK
+FFAA ; [.3CD9.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+11B1 ; [.3CDA.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM
+313B ; [.3CDA.0020.0004] # HANGUL LETTER RIEUL-MIEUM
+FFAB ; [.3CDA.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+11B2 ; [.3CDB.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP
+313C ; [.3CDB.0020.0004] # HANGUL LETTER RIEUL-PIEUP
+FFAC ; [.3CDB.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+11B3 ; [.3CDC.0020.0002] # HANGUL JONGSEONG RIEUL-SIOS
+313D ; [.3CDC.0020.0004] # HANGUL LETTER RIEUL-SIOS
+FFAD ; [.3CDC.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-SIOS
+11B4 ; [.3CDD.0020.0002] # HANGUL JONGSEONG RIEUL-THIEUTH
+313E ; [.3CDD.0020.0004] # HANGUL LETTER RIEUL-THIEUTH
+FFAE ; [.3CDD.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+11B5 ; [.3CDE.0020.0002] # HANGUL JONGSEONG RIEUL-PHIEUPH
+313F ; [.3CDE.0020.0004] # HANGUL LETTER RIEUL-PHIEUPH
+FFAF ; [.3CDE.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+11B6 ; [.3CDF.0020.0002] # HANGUL JONGSEONG RIEUL-HIEUH
+11B7 ; [.3CE0.0020.0002] # HANGUL JONGSEONG MIEUM
+11B8 ; [.3CE1.0020.0002] # HANGUL JONGSEONG PIEUP
+11B9 ; [.3CE2.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS
+11BA ; [.3CE3.0020.0002] # HANGUL JONGSEONG SIOS
+11BB ; [.3CE4.0020.0002] # HANGUL JONGSEONG SSANGSIOS
+11BC ; [.3CE5.0020.0002] # HANGUL JONGSEONG IEUNG
+11BD ; [.3CE6.0020.0002] # HANGUL JONGSEONG CIEUC
+11BE ; [.3CE7.0020.0002] # HANGUL JONGSEONG CHIEUCH
+11BF ; [.3CE8.0020.0002] # HANGUL JONGSEONG KHIEUKH
+11C0 ; [.3CE9.0020.0002] # HANGUL JONGSEONG THIEUTH
+11C1 ; [.3CEA.0020.0002] # HANGUL JONGSEONG PHIEUPH
+11C2 ; [.3CEB.0020.0002] # HANGUL JONGSEONG HIEUH
+11C3 ; [.3CEC.0020.0002] # HANGUL JONGSEONG KIYEOK-RIEUL
+11C4 ; [.3CED.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
+11C5 ; [.3CEE.0020.0002] # HANGUL JONGSEONG NIEUN-KIYEOK
+11C6 ; [.3CEF.0020.0002] # HANGUL JONGSEONG NIEUN-TIKEUT
+11C7 ; [.3CF0.0020.0002] # HANGUL JONGSEONG NIEUN-SIOS
+3167 ; [.3CF0.0020.0004] # HANGUL LETTER NIEUN-SIOS
+11C8 ; [.3CF1.0020.0002] # HANGUL JONGSEONG NIEUN-PANSIOS
+3168 ; [.3CF1.0020.0004] # HANGUL LETTER NIEUN-PANSIOS
+11C9 ; [.3CF2.0020.0002] # HANGUL JONGSEONG NIEUN-THIEUTH
+11CA ; [.3CF3.0020.0002] # HANGUL JONGSEONG TIKEUT-KIYEOK
+11CB ; [.3CF4.0020.0002] # HANGUL JONGSEONG TIKEUT-RIEUL
+11CC ; [.3CF5.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
+3169 ; [.3CF5.0020.0004] # HANGUL LETTER RIEUL-KIYEOK-SIOS
+11CD ; [.3CF6.0020.0002] # HANGUL JONGSEONG RIEUL-NIEUN
+11CE ; [.3CF7.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT
+316A ; [.3CF7.0020.0004] # HANGUL LETTER RIEUL-TIKEUT
+11CF ; [.3CF8.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
+11D0 ; [.3CF9.0020.0002] # HANGUL JONGSEONG SSANGRIEUL
+11D1 ; [.3CFA.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
+11D2 ; [.3CFB.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
+11D3 ; [.3CFC.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
+316B ; [.3CFC.0020.0004] # HANGUL LETTER RIEUL-PIEUP-SIOS
+11D4 ; [.3CFD.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
+11D5 ; [.3CFE.0020.0002] # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
+11D6 ; [.3CFF.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGSIOS
+11D7 ; [.3D00.0020.0002] # HANGUL JONGSEONG RIEUL-PANSIOS
+316C ; [.3D00.0020.0004] # HANGUL LETTER RIEUL-PANSIOS
+11D8 ; [.3D01.0020.0002] # HANGUL JONGSEONG RIEUL-KHIEUKH
+11D9 ; [.3D02.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH
+316D ; [.3D02.0020.0004] # HANGUL LETTER RIEUL-YEORINHIEUH
+11DA ; [.3D03.0020.0002] # HANGUL JONGSEONG MIEUM-KIYEOK
+11DB ; [.3D04.0020.0002] # HANGUL JONGSEONG MIEUM-RIEUL
+11DC ; [.3D05.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP
+11DD ; [.3D06.0020.0002] # HANGUL JONGSEONG MIEUM-SIOS
+316F ; [.3D06.0020.0004] # HANGUL LETTER MIEUM-SIOS
+11DE ; [.3D07.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGSIOS
+11DF ; [.3D08.0020.0002] # HANGUL JONGSEONG MIEUM-PANSIOS
+3170 ; [.3D08.0020.0004] # HANGUL LETTER MIEUM-PANSIOS
+11E0 ; [.3D09.0020.0002] # HANGUL JONGSEONG MIEUM-CHIEUCH
+11E1 ; [.3D0A.0020.0002] # HANGUL JONGSEONG MIEUM-HIEUH
+11E2 ; [.3D0B.0020.0002] # HANGUL JONGSEONG KAPYEOUNMIEUM
+11E3 ; [.3D0C.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL
+11E4 ; [.3D0D.0020.0002] # HANGUL JONGSEONG PIEUP-PHIEUPH
+11E5 ; [.3D0E.0020.0002] # HANGUL JONGSEONG PIEUP-HIEUH
+11E6 ; [.3D0F.0020.0002] # HANGUL JONGSEONG KAPYEOUNPIEUP
+11E7 ; [.3D10.0020.0002] # HANGUL JONGSEONG SIOS-KIYEOK
+11E8 ; [.3D11.0020.0002] # HANGUL JONGSEONG SIOS-TIKEUT
+11E9 ; [.3D12.0020.0002] # HANGUL JONGSEONG SIOS-RIEUL
+11EA ; [.3D13.0020.0002] # HANGUL JONGSEONG SIOS-PIEUP
+11EB ; [.3D14.0020.0002] # HANGUL JONGSEONG PANSIOS
+11EC ; [.3D15.0020.0002] # HANGUL JONGSEONG IEUNG-KIYEOK
+11ED ; [.3D16.0020.0002] # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
+11EE ; [.3D17.0020.0002] # HANGUL JONGSEONG SSANGIEUNG
+11EF ; [.3D18.0020.0002] # HANGUL JONGSEONG IEUNG-KHIEUKH
+11F0 ; [.3D19.0020.0002] # HANGUL JONGSEONG YESIEUNG
+11F1 ; [.3D1A.0020.0002] # HANGUL JONGSEONG YESIEUNG-SIOS
+3182 ; [.3D1A.0020.0004] # HANGUL LETTER YESIEUNG-SIOS
+11F2 ; [.3D1B.0020.0002] # HANGUL JONGSEONG YESIEUNG-PANSIOS
+3183 ; [.3D1B.0020.0004] # HANGUL LETTER YESIEUNG-PANSIOS
+11F3 ; [.3D1C.0020.0002] # HANGUL JONGSEONG PHIEUPH-PIEUP
+11F4 ; [.3D1D.0020.0002] # HANGUL JONGSEONG KAPYEOUNPHIEUPH
+11F5 ; [.3D1E.0020.0002] # HANGUL JONGSEONG HIEUH-NIEUN
+11F6 ; [.3D1F.0020.0002] # HANGUL JONGSEONG HIEUH-RIEUL
+11F7 ; [.3D20.0020.0002] # HANGUL JONGSEONG HIEUH-MIEUM
+11F8 ; [.3D21.0020.0002] # HANGUL JONGSEONG HIEUH-PIEUP
+11F9 ; [.3D22.0020.0002] # HANGUL JONGSEONG YEORINHIEUH
+11FA ; [.3D23.0020.0002] # HANGUL JONGSEONG KIYEOK-NIEUN
+11FB ; [.3D24.0020.0002] # HANGUL JONGSEONG KIYEOK-PIEUP
+11FC ; [.3D25.0020.0002] # HANGUL JONGSEONG KIYEOK-CHIEUCH
+11FD ; [.3D26.0020.0002] # HANGUL JONGSEONG KIYEOK-KHIEUKH
+11FE ; [.3D27.0020.0002] # HANGUL JONGSEONG KIYEOK-HIEUH
+11FF ; [.3D28.0020.0002] # HANGUL JONGSEONG SSANGNIEUN
+D7CB ; [.3D29.0020.0002] # HANGUL JONGSEONG NIEUN-RIEUL
+D7CC ; [.3D2A.0020.0002] # HANGUL JONGSEONG NIEUN-CHIEUCH
+D7CD ; [.3D2B.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT
+D7CE ; [.3D2C.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT-PIEUP
+D7CF ; [.3D2D.0020.0002] # HANGUL JONGSEONG TIKEUT-PIEUP
+D7D0 ; [.3D2E.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS
+D7D1 ; [.3D2F.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
+D7D2 ; [.3D30.0020.0002] # HANGUL JONGSEONG TIKEUT-CIEUC
+D7D3 ; [.3D31.0020.0002] # HANGUL JONGSEONG TIKEUT-CHIEUCH
+D7D4 ; [.3D32.0020.0002] # HANGUL JONGSEONG TIKEUT-THIEUTH
+D7D5 ; [.3D33.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGKIYEOK
+D7D6 ; [.3D34.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
+D7D7 ; [.3D35.0020.0002] # HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
+D7D8 ; [.3D36.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
+D7D9 ; [.3D37.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
+D7DA ; [.3D38.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
+D7DB ; [.3D39.0020.0002] # HANGUL JONGSEONG RIEUL-YESIEUNG
+D7DC ; [.3D3A.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
+D7DD ; [.3D3B.0020.0002] # HANGUL JONGSEONG KAPYEOUNRIEUL
+D7DE ; [.3D3C.0020.0002] # HANGUL JONGSEONG MIEUM-NIEUN
+D7DF ; [.3D3D.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGNIEUN
+D7E0 ; [.3D3E.0020.0002] # HANGUL JONGSEONG SSANGMIEUM
+D7E1 ; [.3D3F.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP-SIOS
+D7E2 ; [.3D40.0020.0002] # HANGUL JONGSEONG MIEUM-CIEUC
+D7E3 ; [.3D41.0020.0002] # HANGUL JONGSEONG PIEUP-TIKEUT
+D7E4 ; [.3D42.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
+D7E5 ; [.3D43.0020.0002] # HANGUL JONGSEONG PIEUP-MIEUM
+D7E6 ; [.3D44.0020.0002] # HANGUL JONGSEONG SSANGPIEUP
+D7E7 ; [.3D45.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
+D7E8 ; [.3D46.0020.0002] # HANGUL JONGSEONG PIEUP-CIEUC
+D7E9 ; [.3D47.0020.0002] # HANGUL JONGSEONG PIEUP-CHIEUCH
+D7EA ; [.3D48.0020.0002] # HANGUL JONGSEONG SIOS-MIEUM
+D7EB ; [.3D49.0020.0002] # HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
+D7EC ; [.3D4A.0020.0002] # HANGUL JONGSEONG SSANGSIOS-KIYEOK
+D7ED ; [.3D4B.0020.0002] # HANGUL JONGSEONG SSANGSIOS-TIKEUT
+D7EE ; [.3D4C.0020.0002] # HANGUL JONGSEONG SIOS-PANSIOS
+D7EF ; [.3D4D.0020.0002] # HANGUL JONGSEONG SIOS-CIEUC
+D7F0 ; [.3D4E.0020.0002] # HANGUL JONGSEONG SIOS-CHIEUCH
+D7F1 ; [.3D4F.0020.0002] # HANGUL JONGSEONG SIOS-THIEUTH
+D7F2 ; [.3D50.0020.0002] # HANGUL JONGSEONG SIOS-HIEUH
+D7F3 ; [.3D51.0020.0002] # HANGUL JONGSEONG PANSIOS-PIEUP
+D7F4 ; [.3D52.0020.0002] # HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
+D7F5 ; [.3D53.0020.0002] # HANGUL JONGSEONG YESIEUNG-MIEUM
+D7F6 ; [.3D54.0020.0002] # HANGUL JONGSEONG YESIEUNG-HIEUH
+D7F7 ; [.3D55.0020.0002] # HANGUL JONGSEONG CIEUC-PIEUP
+D7F8 ; [.3D56.0020.0002] # HANGUL JONGSEONG CIEUC-SSANGPIEUP
+D7F9 ; [.3D57.0020.0002] # HANGUL JONGSEONG SSANGCIEUC
+D7FA ; [.3D58.0020.0002] # HANGUL JONGSEONG PHIEUPH-SIOS
+D7FB ; [.3D59.0020.0002] # HANGUL JONGSEONG PHIEUPH-THIEUTH
+3041 ; [.3D5A.0020.000D] # HIRAGANA LETTER SMALL A
+3042 ; [.3D5A.0020.000E] # HIRAGANA LETTER A
+30A1 ; [.3D5A.0020.000F] # KATAKANA LETTER SMALL A
+FF67 ; [.3D5A.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL A
+30A2 ; [.3D5A.0020.0011] # KATAKANA LETTER A
+FF71 ; [.3D5A.0020.0012] # HALFWIDTH KATAKANA LETTER A
+32D0 ; [.3D5A.0020.0013] # CIRCLED KATAKANA A
+3303 ; [.3D5A.0020.001C][.1C0E.0020.001C][.3D84.0020.001C] # SQUARE AARU
+3300 ; [.3D5A.0020.001C][.3D74.0020.001C][.0000.0038.001C][.1C0E.0020.001C][.3D6E.0020.001C] # SQUARE APAATO
+3301 ; [.3D5A.0020.001C][.3D84.0020.001C][.3D76.0020.001C][.3D5A.0020.001C] # SQUARE ARUHUA
+3302 ; [.3D5A.0020.001C][.3D8B.0020.001C][.3D77.0020.001C][.0000.0038.001C][.3D5A.0020.001C] # SQUARE ANPEA
+3043 ; [.3D5B.0020.000D] # HIRAGANA LETTER SMALL I
+3044 ; [.3D5B.0020.000E] # HIRAGANA LETTER I
+30A3 ; [.3D5B.0020.000F] # KATAKANA LETTER SMALL I
+FF68 ; [.3D5B.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL I
+30A4 ; [.3D5B.0020.0011] # KATAKANA LETTER I
+FF72 ; [.3D5B.0020.0012] # HALFWIDTH KATAKANA LETTER I
+32D1 ; [.3D5B.0020.0013] # CIRCLED KATAKANA I
+3304 ; [.3D5B.0020.001C][.3D70.0020.001C][.3D8B.0020.001C][.3D62.0020.001C][.0000.0037.001C] # SQUARE ININGU
+3305 ; [.3D5B.0020.001C][.3D8B.0020.001C][.3D6B.0020.001C] # SQUARE INTI
+3045 ; [.3D5C.0020.000D] # HIRAGANA LETTER SMALL U
+3046 ; [.3D5C.0020.000E] # HIRAGANA LETTER U
+30A5 ; [.3D5C.0020.000F] # KATAKANA LETTER SMALL U
+FF69 ; [.3D5C.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL U
+30A6 ; [.3D5C.0020.0011] # KATAKANA LETTER U
+FF73 ; [.3D5C.0020.0012] # HALFWIDTH KATAKANA LETTER U
+32D2 ; [.3D5C.0020.0013] # CIRCLED KATAKANA U
+3094 ; [.3D5C.0020.000E][.0000.0037.0002] # HIRAGANA LETTER VU
+30F4 ; [.3D5C.0020.0011][.0000.0037.0002] # KATAKANA LETTER VU
+3306 ; [.3D5C.0020.001C][.3D5F.0020.001C][.3D8B.0020.001C] # SQUARE UON
+1B000 ; [.3D5D.0020.0011] # KATAKANA LETTER ARCHAIC E
+3047 ; [.3D5E.0020.000D] # HIRAGANA LETTER SMALL E
+3048 ; [.3D5E.0020.000E] # HIRAGANA LETTER E
+30A7 ; [.3D5E.0020.000F] # KATAKANA LETTER SMALL E
+FF6A ; [.3D5E.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL E
+30A8 ; [.3D5E.0020.0011] # KATAKANA LETTER E
+FF74 ; [.3D5E.0020.0012] # HALFWIDTH KATAKANA LETTER E
+32D3 ; [.3D5E.0020.0013] # CIRCLED KATAKANA E
+3308 ; [.3D5E.0020.001C][.1C0E.0020.001C][.3D60.0020.001C][.1C0E.0020.001C] # SQUARE EEKAA
+3307 ; [.3D5E.0020.001C][.3D67.0020.001C][.3D62.0020.001C][.1C0E.0020.001C][.3D6E.0020.001C][.0000.0037.001C] # SQUARE ESUKUUDO
+3049 ; [.3D5F.0020.000D] # HIRAGANA LETTER SMALL O
+304A ; [.3D5F.0020.000E] # HIRAGANA LETTER O
+30A9 ; [.3D5F.0020.000F] # KATAKANA LETTER SMALL O
+FF6B ; [.3D5F.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL O
+30AA ; [.3D5F.0020.0011] # KATAKANA LETTER O
+FF75 ; [.3D5F.0020.0012] # HALFWIDTH KATAKANA LETTER O
+32D4 ; [.3D5F.0020.0013] # CIRCLED KATAKANA O
+330A ; [.3D5F.0020.001C][.1C0E.0020.001C][.3D7B.0020.001C] # SQUARE OOMU
+3309 ; [.3D5F.0020.001C][.3D8B.0020.001C][.3D67.0020.001C] # SQUARE ONSU
+3095 ; [.3D60.0020.000D] # HIRAGANA LETTER SMALL KA
+304B ; [.3D60.0020.000E] # HIRAGANA LETTER KA
+30F5 ; [.3D60.0020.000F] # KATAKANA LETTER SMALL KA
+30AB ; [.3D60.0020.0011] # KATAKANA LETTER KA
+FF76 ; [.3D60.0020.0012] # HALFWIDTH KATAKANA LETTER KA
+32D5 ; [.3D60.0020.0013] # CIRCLED KATAKANA KA
+304C ; [.3D60.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GA
+30AC ; [.3D60.0020.0011][.0000.0037.0002] # KATAKANA LETTER GA
+330B ; [.3D60.0020.001C][.3D5B.0020.001C][.3D83.0020.001C] # SQUARE KAIRI
+330C ; [.3D60.0020.001C][.3D82.0020.001C][.3D6C.0020.001C][.3D6E.0020.001C] # SQUARE KARATTO
+330D ; [.3D60.0020.001C][.3D86.0020.001C][.3D83.0020.001C][.1C0E.0020.001C] # SQUARE KARORII
+330E ; [.3D60.0020.001C][.0000.0037.001C][.3D86.0020.001C][.3D8B.0020.001C] # SQUARE GARON
+330F ; [.3D60.0020.001C][.0000.0037.001C][.3D8B.0020.001C][.3D79.0020.001C] # SQUARE GANMA
+304D ; [.3D61.0020.000E] # HIRAGANA LETTER KI
+30AD ; [.3D61.0020.0011] # KATAKANA LETTER KI
+FF77 ; [.3D61.0020.0012] # HALFWIDTH KATAKANA LETTER KI
+32D6 ; [.3D61.0020.0013] # CIRCLED KATAKANA KI
+304E ; [.3D61.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GI
+30AE ; [.3D61.0020.0011][.0000.0037.0002] # KATAKANA LETTER GI
+3310 ; [.3D61.0020.001C][.0000.0037.001C][.3D60.0020.001C][.0000.0037.001C] # SQUARE GIGA
+3311 ; [.3D61.0020.001C][.0000.0037.001C][.3D70.0020.001C][.1C0E.0020.001C] # SQUARE GINII
+3312 ; [.3D61.0020.001C][.3D7F.0020.001C][.3D83.0020.001C][.1C0E.0020.001C] # SQUARE KYURII
+3313 ; [.3D61.0020.001C][.0000.0037.001C][.3D84.0020.001C][.3D6A.0020.001C][.0000.0037.001C][.1C0E.0020.001C] # SQUARE GIRUDAA
+3314 ; [.3D61.0020.001C][.3D86.0020.001C] # SQUARE KIRO
+3315 ; [.3D61.0020.001C][.3D86.0020.001C][.3D62.0020.001C][.0000.0037.001C][.3D82.0020.001C][.3D7B.0020.001C] # SQUARE KIROGURAMU
+3316 ; [.3D61.0020.001C][.3D86.0020.001C][.3D7C.0020.001C][.1C0E.0020.001C][.3D6E.0020.001C][.3D84.0020.001C] # SQUARE KIROMEETORU
+3317 ; [.3D61.0020.001C][.3D86.0020.001C][.3D87.0020.001C][.3D6C.0020.001C][.3D6E.0020.001C] # SQUARE KIROWATTO
+304F ; [.3D62.0020.000E] # HIRAGANA LETTER KU
+31F0 ; [.3D62.0020.000F] # KATAKANA LETTER SMALL KU
+30AF ; [.3D62.0020.0011] # KATAKANA LETTER KU
+FF78 ; [.3D62.0020.0012] # HALFWIDTH KATAKANA LETTER KU
+32D7 ; [.3D62.0020.0013] # CIRCLED KATAKANA KU
+3050 ; [.3D62.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GU
+30B0 ; [.3D62.0020.0011][.0000.0037.0002] # KATAKANA LETTER GU
+3318 ; [.3D62.0020.001C][.0000.0037.001C][.3D82.0020.001C][.3D7B.0020.001C] # SQUARE GURAMU
+3319 ; [.3D62.0020.001C][.0000.0037.001C][.3D82.0020.001C][.3D7B.0020.001C][.3D6E.0020.001C][.3D8B.0020.001C] # SQUARE GURAMUTON
+331A ; [.3D62.0020.001C][.3D84.0020.001C][.3D68.0020.001C][.0000.0037.001C][.3D5B.0020.001C][.3D86.0020.001C] # SQUARE KURUZEIRO
+331B ; [.3D62.0020.001C][.3D86.0020.001C][.1C0E.0020.001C][.3D72.0020.001C] # SQUARE KUROONE
+3096 ; [.3D63.0020.000D] # HIRAGANA LETTER SMALL KE
+3051 ; [.3D63.0020.000E] # HIRAGANA LETTER KE
+30F6 ; [.3D63.0020.000F] # KATAKANA LETTER SMALL KE
+30B1 ; [.3D63.0020.0011] # KATAKANA LETTER KE
+FF79 ; [.3D63.0020.0012] # HALFWIDTH KATAKANA LETTER KE
+32D8 ; [.3D63.0020.0013] # CIRCLED KATAKANA KE
+3052 ; [.3D63.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GE
+30B2 ; [.3D63.0020.0011][.0000.0037.0002] # KATAKANA LETTER GE
+331C ; [.3D63.0020.001C][.1C0E.0020.001C][.3D67.0020.001C] # SQUARE KEESU
+3053 ; [.3D64.0020.000E] # HIRAGANA LETTER KO
+30B3 ; [.3D64.0020.0011] # KATAKANA LETTER KO
+FF7A ; [.3D64.0020.0012] # HALFWIDTH KATAKANA LETTER KO
+32D9 ; [.3D64.0020.0013] # CIRCLED KATAKANA KO
+3054 ; [.3D64.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GO
+30B4 ; [.3D64.0020.0011][.0000.0037.0002] # KATAKANA LETTER GO
+331E ; [.3D64.0020.001C][.1C0E.0020.001C][.3D78.0020.001C][.0000.0038.001C] # SQUARE KOOPO
+1F201 ; [.3D64.0020.001C][.3D64.0020.001C] # SQUARED KATAKANA KOKO
+30FF ; [.3D64.0020.0016][.3D6E.0020.0016] # KATAKANA DIGRAPH KOTO
+331D ; [.3D64.0020.001C][.3D84.0020.001C][.3D6F.0020.001C] # SQUARE KORUNA
+3055 ; [.3D65.0020.000E] # HIRAGANA LETTER SA
+30B5 ; [.3D65.0020.0011] # KATAKANA LETTER SA
+FF7B ; [.3D65.0020.0012] # HALFWIDTH KATAKANA LETTER SA
+32DA ; [.3D65.0020.0013] # CIRCLED KATAKANA SA
+1F202 ; [.3D65.0020.001C] # SQUARED KATAKANA SA
+3056 ; [.3D65.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZA
+30B6 ; [.3D65.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZA
+331F ; [.3D65.0020.001C][.3D5B.0020.001C][.3D62.0020.001C][.3D84.0020.001C] # SQUARE SAIKURU
+3320 ; [.3D65.0020.001C][.3D8B.0020.001C][.3D6B.0020.001C][.1C0E.0020.001C][.3D7B.0020.001C] # SQUARE SANTIIMU
+3057 ; [.3D66.0020.000E] # HIRAGANA LETTER SI
+31F1 ; [.3D66.0020.000F] # KATAKANA LETTER SMALL SI
+30B7 ; [.3D66.0020.0011] # KATAKANA LETTER SI
+FF7C ; [.3D66.0020.0012] # HALFWIDTH KATAKANA LETTER SI
+32DB ; [.3D66.0020.0013] # CIRCLED KATAKANA SI
+3058 ; [.3D66.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZI
+30B8 ; [.3D66.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZI
+3006 ; [.3D66.0020.0004][.3D7C.0020.0004] # IDEOGRAPHIC CLOSING MARK
+3321 ; [.3D66.0020.001C][.3D83.0020.001C][.3D8B.0020.001C][.3D62.0020.001C][.0000.0037.001C] # SQUARE SIRINGU
+3059 ; [.3D67.0020.000E] # HIRAGANA LETTER SU
+31F2 ; [.3D67.0020.000F] # KATAKANA LETTER SMALL SU
+30B9 ; [.3D67.0020.0011] # KATAKANA LETTER SU
+FF7D ; [.3D67.0020.0012] # HALFWIDTH KATAKANA LETTER SU
+32DC ; [.3D67.0020.0013] # CIRCLED KATAKANA SU
+305A ; [.3D67.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZU
+30BA ; [.3D67.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZU
+305B ; [.3D68.0020.000E] # HIRAGANA LETTER SE
+30BB ; [.3D68.0020.0011] # KATAKANA LETTER SE
+FF7E ; [.3D68.0020.0012] # HALFWIDTH KATAKANA LETTER SE
+32DD ; [.3D68.0020.0013] # CIRCLED KATAKANA SE
+305C ; [.3D68.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZE
+30BC ; [.3D68.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZE
+3322 ; [.3D68.0020.001C][.3D8B.0020.001C][.3D6B.0020.001C] # SQUARE SENTI
+3323 ; [.3D68.0020.001C][.3D8B.0020.001C][.3D6E.0020.001C] # SQUARE SENTO
+305D ; [.3D69.0020.000E] # HIRAGANA LETTER SO
+30BD ; [.3D69.0020.0011] # KATAKANA LETTER SO
+FF7F ; [.3D69.0020.0012] # HALFWIDTH KATAKANA LETTER SO
+32DE ; [.3D69.0020.0013] # CIRCLED KATAKANA SO
+305E ; [.3D69.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZO
+30BE ; [.3D69.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZO
+305F ; [.3D6A.0020.000E] # HIRAGANA LETTER TA
+30BF ; [.3D6A.0020.0011] # KATAKANA LETTER TA
+FF80 ; [.3D6A.0020.0012] # HALFWIDTH KATAKANA LETTER TA
+32DF ; [.3D6A.0020.0013] # CIRCLED KATAKANA TA
+3060 ; [.3D6A.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DA
+30C0 ; [.3D6A.0020.0011][.0000.0037.0002] # KATAKANA LETTER DA
+3324 ; [.3D6A.0020.001C][.0000.0037.001C][.1C0E.0020.001C][.3D67.0020.001C] # SQUARE DAASU
+3061 ; [.3D6B.0020.000E] # HIRAGANA LETTER TI
+30C1 ; [.3D6B.0020.0011] # KATAKANA LETTER TI
+FF81 ; [.3D6B.0020.0012] # HALFWIDTH KATAKANA LETTER TI
+32E0 ; [.3D6B.0020.0013] # CIRCLED KATAKANA TI
+3062 ; [.3D6B.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DI
+30C2 ; [.3D6B.0020.0011][.0000.0037.0002] # KATAKANA LETTER DI
+3063 ; [.3D6C.0020.000D] # HIRAGANA LETTER SMALL TU
+3064 ; [.3D6C.0020.000E] # HIRAGANA LETTER TU
+30C3 ; [.3D6C.0020.000F] # KATAKANA LETTER SMALL TU
+FF6F ; [.3D6C.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL TU
+30C4 ; [.3D6C.0020.0011] # KATAKANA LETTER TU
+FF82 ; [.3D6C.0020.0012] # HALFWIDTH KATAKANA LETTER TU
+32E1 ; [.3D6C.0020.0013] # CIRCLED KATAKANA TU
+3065 ; [.3D6C.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DU
+30C5 ; [.3D6C.0020.0011][.0000.0037.0002] # KATAKANA LETTER DU
+3066 ; [.3D6D.0020.000E] # HIRAGANA LETTER TE
+30C6 ; [.3D6D.0020.0011] # KATAKANA LETTER TE
+FF83 ; [.3D6D.0020.0012] # HALFWIDTH KATAKANA LETTER TE
+32E2 ; [.3D6D.0020.0013] # CIRCLED KATAKANA TE
+3067 ; [.3D6D.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DE
+30C7 ; [.3D6D.0020.0011][.0000.0037.0002] # KATAKANA LETTER DE
+1F213 ; [.3D6D.0020.001C][.0000.0037.001C] # SQUARED KATAKANA DE
+3325 ; [.3D6D.0020.001C][.0000.0037.001C][.3D66.0020.001C] # SQUARE DESI
+3068 ; [.3D6E.0020.000E] # HIRAGANA LETTER TO
+31F3 ; [.3D6E.0020.000F] # KATAKANA LETTER SMALL TO
+30C8 ; [.3D6E.0020.0011] # KATAKANA LETTER TO
+FF84 ; [.3D6E.0020.0012] # HALFWIDTH KATAKANA LETTER TO
+32E3 ; [.3D6E.0020.0013] # CIRCLED KATAKANA TO
+3069 ; [.3D6E.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DO
+30C9 ; [.3D6E.0020.0011][.0000.0037.0002] # KATAKANA LETTER DO
+3326 ; [.3D6E.0020.001C][.0000.0037.001C][.3D84.0020.001C] # SQUARE DORU
+3327 ; [.3D6E.0020.001C][.3D8B.0020.001C] # SQUARE TON
+306A ; [.3D6F.0020.000E] # HIRAGANA LETTER NA
+30CA ; [.3D6F.0020.0011] # KATAKANA LETTER NA
+FF85 ; [.3D6F.0020.0012] # HALFWIDTH KATAKANA LETTER NA
+32E4 ; [.3D6F.0020.0013] # CIRCLED KATAKANA NA
+3328 ; [.3D6F.0020.001C][.3D73.0020.001C] # SQUARE NANO
+306B ; [.3D70.0020.000E] # HIRAGANA LETTER NI
+30CB ; [.3D70.0020.0011] # KATAKANA LETTER NI
+FF86 ; [.3D70.0020.0012] # HALFWIDTH KATAKANA LETTER NI
+32E5 ; [.3D70.0020.0013] # CIRCLED KATAKANA NI
+306C ; [.3D71.0020.000E] # HIRAGANA LETTER NU
+31F4 ; [.3D71.0020.000F] # KATAKANA LETTER SMALL NU
+30CC ; [.3D71.0020.0011] # KATAKANA LETTER NU
+FF87 ; [.3D71.0020.0012] # HALFWIDTH KATAKANA LETTER NU
+32E6 ; [.3D71.0020.0013] # CIRCLED KATAKANA NU
+306D ; [.3D72.0020.000E] # HIRAGANA LETTER NE
+30CD ; [.3D72.0020.0011] # KATAKANA LETTER NE
+FF88 ; [.3D72.0020.0012] # HALFWIDTH KATAKANA LETTER NE
+32E7 ; [.3D72.0020.0013] # CIRCLED KATAKANA NE
+306E ; [.3D73.0020.000E] # HIRAGANA LETTER NO
+30CE ; [.3D73.0020.0011] # KATAKANA LETTER NO
+FF89 ; [.3D73.0020.0012] # HALFWIDTH KATAKANA LETTER NO
+32E8 ; [.3D73.0020.0013] # CIRCLED KATAKANA NO
+3329 ; [.3D73.0020.001C][.3D6C.0020.001C][.3D6E.0020.001C] # SQUARE NOTTO
+306F ; [.3D74.0020.000E] # HIRAGANA LETTER HA
+31F5 ; [.3D74.0020.000F] # KATAKANA LETTER SMALL HA
+30CF ; [.3D74.0020.0011] # KATAKANA LETTER HA
+FF8A ; [.3D74.0020.0012] # HALFWIDTH KATAKANA LETTER HA
+32E9 ; [.3D74.0020.0013] # CIRCLED KATAKANA HA
+3070 ; [.3D74.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BA
+30D0 ; [.3D74.0020.0011][.0000.0037.0002] # KATAKANA LETTER BA
+3071 ; [.3D74.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PA
+30D1 ; [.3D74.0020.0011][.0000.0038.0002] # KATAKANA LETTER PA
+332B ; [.3D74.0020.001C][.0000.0038.001C][.1C0E.0020.001C][.3D68.0020.001C][.3D8B.0020.001C][.3D6E.0020.001C] # SQUARE PAASENTO
+332C ; [.3D74.0020.001C][.0000.0038.001C][.1C0E.0020.001C][.3D6C.0020.001C] # SQUARE PAATU
+332D ; [.3D74.0020.001C][.0000.0037.001C][.1C0E.0020.001C][.3D85.0020.001C][.3D84.0020.001C] # SQUARE BAARERU
+332A ; [.3D74.0020.001C][.3D5B.0020.001C][.3D6C.0020.001C] # SQUARE HAITU
+3072 ; [.3D75.0020.000E] # HIRAGANA LETTER HI
+31F6 ; [.3D75.0020.000F] # KATAKANA LETTER SMALL HI
+30D2 ; [.3D75.0020.0011] # KATAKANA LETTER HI
+FF8B ; [.3D75.0020.0012] # HALFWIDTH KATAKANA LETTER HI
+32EA ; [.3D75.0020.0013] # CIRCLED KATAKANA HI
+3073 ; [.3D75.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BI
+30D3 ; [.3D75.0020.0011][.0000.0037.0002] # KATAKANA LETTER BI
+3074 ; [.3D75.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PI
+30D4 ; [.3D75.0020.0011][.0000.0038.0002] # KATAKANA LETTER PI
+332E ; [.3D75.0020.001C][.0000.0038.001C][.3D5A.0020.001C][.3D67.0020.001C][.3D6E.0020.001C][.3D84.0020.001C] # SQUARE PIASUTORU
+332F ; [.3D75.0020.001C][.0000.0038.001C][.3D62.0020.001C][.3D84.0020.001C] # SQUARE PIKURU
+3330 ; [.3D75.0020.001C][.0000.0038.001C][.3D64.0020.001C] # SQUARE PIKO
+3331 ; [.3D75.0020.001C][.0000.0037.001C][.3D84.0020.001C] # SQUARE BIRU
+3075 ; [.3D76.0020.000E] # HIRAGANA LETTER HU
+31F7 ; [.3D76.0020.000F] # KATAKANA LETTER SMALL HU
+30D5 ; [.3D76.0020.0011] # KATAKANA LETTER HU
+FF8C ; [.3D76.0020.0012] # HALFWIDTH KATAKANA LETTER HU
+32EB ; [.3D76.0020.0013] # CIRCLED KATAKANA HU
+3076 ; [.3D76.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BU
+30D6 ; [.3D76.0020.0011][.0000.0037.0002] # KATAKANA LETTER BU
+3077 ; [.3D76.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PU
+30D7 ; [.3D76.0020.0011][.0000.0038.0002] # KATAKANA LETTER PU
+3332 ; [.3D76.0020.001C][.3D5A.0020.001C][.3D82.0020.001C][.3D6C.0020.001C][.3D6E.0020.001C][.0000.0037.001C] # SQUARE HUARADDO
+3333 ; [.3D76.0020.001C][.3D5B.0020.001C][.1C0E.0020.001C][.3D6E.0020.001C] # SQUARE HUIITO
+3334 ; [.3D76.0020.001C][.0000.0037.001C][.3D6C.0020.001C][.3D66.0020.001C][.3D5E.0020.001C][.3D84.0020.001C] # SQUARE BUSSYERU
+3335 ; [.3D76.0020.001C][.3D82.0020.001C][.3D8B.0020.001C] # SQUARE HURAN
+3078 ; [.3D77.0020.000E] # HIRAGANA LETTER HE
+31F8 ; [.3D77.0020.000F] # KATAKANA LETTER SMALL HE
+30D8 ; [.3D77.0020.0011] # KATAKANA LETTER HE
+FF8D ; [.3D77.0020.0012] # HALFWIDTH KATAKANA LETTER HE
+32EC ; [.3D77.0020.0013] # CIRCLED KATAKANA HE
+3079 ; [.3D77.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BE
+30D9 ; [.3D77.0020.0011][.0000.0037.0002] # KATAKANA LETTER BE
+307A ; [.3D77.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PE
+30DA ; [.3D77.0020.0011][.0000.0038.0002] # KATAKANA LETTER PE
+333B ; [.3D77.0020.001C][.0000.0038.001C][.1C0E.0020.001C][.3D66.0020.001C][.0000.0037.001C] # SQUARE PEEZI
+333C ; [.3D77.0020.001C][.0000.0037.001C][.1C0E.0020.001C][.3D6A.0020.001C] # SQUARE BEETA
+3336 ; [.3D77.0020.001C][.3D62.0020.001C][.3D6A.0020.001C][.1C0E.0020.001C][.3D84.0020.001C] # SQUARE HEKUTAARU
+3337 ; [.3D77.0020.001C][.0000.0038.001C][.3D69.0020.001C] # SQUARE PESO
+3338 ; [.3D77.0020.001C][.0000.0038.001C][.3D70.0020.001C][.3D75.0020.001C] # SQUARE PENIHI
+3339 ; [.3D77.0020.001C][.3D84.0020.001C][.3D6C.0020.001C] # SQUARE HERUTU
+333A ; [.3D77.0020.001C][.0000.0038.001C][.3D8B.0020.001C][.3D67.0020.001C] # SQUARE PENSU
+307B ; [.3D78.0020.000E] # HIRAGANA LETTER HO
+31F9 ; [.3D78.0020.000F] # KATAKANA LETTER SMALL HO
+30DB ; [.3D78.0020.0011] # KATAKANA LETTER HO
+FF8E ; [.3D78.0020.0012] # HALFWIDTH KATAKANA LETTER HO
+32ED ; [.3D78.0020.0013] # CIRCLED KATAKANA HO
+307C ; [.3D78.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BO
+30DC ; [.3D78.0020.0011][.0000.0037.0002] # KATAKANA LETTER BO
+307D ; [.3D78.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PO
+30DD ; [.3D78.0020.0011][.0000.0038.0002] # KATAKANA LETTER PO
+3341 ; [.3D78.0020.001C][.1C0E.0020.001C][.3D84.0020.001C] # SQUARE HOORU
+3342 ; [.3D78.0020.001C][.1C0E.0020.001C][.3D8B.0020.001C] # SQUARE HOON
+333D ; [.3D78.0020.001C][.0000.0038.001C][.3D5B.0020.001C][.3D8B.0020.001C][.3D6E.0020.001C] # SQUARE POINTO
+1F200 ; [.3D78.0020.001C][.3D60.0020.001C] # SQUARE HIRAGANA HOKA
+333E ; [.3D78.0020.001C][.0000.0037.001C][.3D84.0020.001C][.3D6E.0020.001C] # SQUARE BORUTO
+333F ; [.3D78.0020.001C][.3D8B.0020.001C] # SQUARE HON
+3340 ; [.3D78.0020.001C][.0000.0038.001C][.3D8B.0020.001C][.3D6E.0020.001C][.0000.0037.001C] # SQUARE PONDO
+307E ; [.3D79.0020.000E] # HIRAGANA LETTER MA
+30DE ; [.3D79.0020.0011] # KATAKANA LETTER MA
+FF8F ; [.3D79.0020.0012] # HALFWIDTH KATAKANA LETTER MA
+32EE ; [.3D79.0020.0013] # CIRCLED KATAKANA MA
+3343 ; [.3D79.0020.001C][.3D5B.0020.001C][.3D62.0020.001C][.3D86.0020.001C] # SQUARE MAIKURO
+3344 ; [.3D79.0020.001C][.3D5B.0020.001C][.3D84.0020.001C] # SQUARE MAIRU
+303C ; [.3D79.0020.0004][.3D67.0020.0004] # MASU MARK
+3345 ; [.3D79.0020.001C][.3D6C.0020.001C][.3D74.0020.001C] # SQUARE MAHHA
+3346 ; [.3D79.0020.001C][.3D84.0020.001C][.3D62.0020.001C] # SQUARE MARUKU
+3347 ; [.3D79.0020.001C][.3D8B.0020.001C][.3D66.0020.001C][.3D81.0020.001C][.3D8B.0020.001C] # SQUARE MANSYON
+307F ; [.3D7A.0020.000E] # HIRAGANA LETTER MI
+30DF ; [.3D7A.0020.0011] # KATAKANA LETTER MI
+FF90 ; [.3D7A.0020.0012] # HALFWIDTH KATAKANA LETTER MI
+32EF ; [.3D7A.0020.0013] # CIRCLED KATAKANA MI
+3348 ; [.3D7A.0020.001C][.3D62.0020.001C][.3D86.0020.001C][.3D8B.0020.001C] # SQUARE MIKURON
+3349 ; [.3D7A.0020.001C][.3D83.0020.001C] # SQUARE MIRI
+334A ; [.3D7A.0020.001C][.3D83.0020.001C][.3D74.0020.001C][.0000.0037.001C][.1C0E.0020.001C][.3D84.0020.001C] # SQUARE MIRIBAARU
+3080 ; [.3D7B.0020.000E] # HIRAGANA LETTER MU
+31FA ; [.3D7B.0020.000F] # KATAKANA LETTER SMALL MU
+30E0 ; [.3D7B.0020.0011] # KATAKANA LETTER MU
+FF91 ; [.3D7B.0020.0012] # HALFWIDTH KATAKANA LETTER MU
+32F0 ; [.3D7B.0020.0013] # CIRCLED KATAKANA MU
+3081 ; [.3D7C.0020.000E] # HIRAGANA LETTER ME
+30E1 ; [.3D7C.0020.0011] # KATAKANA LETTER ME
+FF92 ; [.3D7C.0020.0012] # HALFWIDTH KATAKANA LETTER ME
+32F1 ; [.3D7C.0020.0013] # CIRCLED KATAKANA ME
+334D ; [.3D7C.0020.001C][.1C0E.0020.001C][.3D6E.0020.001C][.3D84.0020.001C] # SQUARE MEETORU
+334B ; [.3D7C.0020.001C][.3D60.0020.001C][.0000.0037.001C] # SQUARE MEGA
+334C ; [.3D7C.0020.001C][.3D60.0020.001C][.0000.0037.001C][.3D6E.0020.001C][.3D8B.0020.001C] # SQUARE MEGATON
+3082 ; [.3D7D.0020.000E] # HIRAGANA LETTER MO
+30E2 ; [.3D7D.0020.0011] # KATAKANA LETTER MO
+FF93 ; [.3D7D.0020.0012] # HALFWIDTH KATAKANA LETTER MO
+32F2 ; [.3D7D.0020.0013] # CIRCLED KATAKANA MO
+3083 ; [.3D7E.0020.000D] # HIRAGANA LETTER SMALL YA
+3084 ; [.3D7E.0020.000E] # HIRAGANA LETTER YA
+30E3 ; [.3D7E.0020.000F] # KATAKANA LETTER SMALL YA
+FF6C ; [.3D7E.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YA
+30E4 ; [.3D7E.0020.0011] # KATAKANA LETTER YA
+FF94 ; [.3D7E.0020.0012] # HALFWIDTH KATAKANA LETTER YA
+32F3 ; [.3D7E.0020.0013] # CIRCLED KATAKANA YA
+334E ; [.3D7E.0020.001C][.1C0E.0020.001C][.3D6E.0020.001C][.0000.0037.001C] # SQUARE YAADO
+334F ; [.3D7E.0020.001C][.1C0E.0020.001C][.3D84.0020.001C] # SQUARE YAARU
+3085 ; [.3D7F.0020.000D] # HIRAGANA LETTER SMALL YU
+3086 ; [.3D7F.0020.000E] # HIRAGANA LETTER YU
+30E5 ; [.3D7F.0020.000F] # KATAKANA LETTER SMALL YU
+FF6D ; [.3D7F.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YU
+30E6 ; [.3D7F.0020.0011] # KATAKANA LETTER YU
+FF95 ; [.3D7F.0020.0012] # HALFWIDTH KATAKANA LETTER YU
+32F4 ; [.3D7F.0020.0013] # CIRCLED KATAKANA YU
+3350 ; [.3D7F.0020.001C][.3D5A.0020.001C][.3D8B.0020.001C] # SQUARE YUAN
+1B001 ; [.3D80.0020.000E] # HIRAGANA LETTER ARCHAIC YE
+3087 ; [.3D81.0020.000D] # HIRAGANA LETTER SMALL YO
+3088 ; [.3D81.0020.000E] # HIRAGANA LETTER YO
+30E7 ; [.3D81.0020.000F] # KATAKANA LETTER SMALL YO
+FF6E ; [.3D81.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YO
+30E8 ; [.3D81.0020.0011] # KATAKANA LETTER YO
+FF96 ; [.3D81.0020.0012] # HALFWIDTH KATAKANA LETTER YO
+32F5 ; [.3D81.0020.0013] # CIRCLED KATAKANA YO
+309F ; [.3D81.0020.0016][.3D83.0020.0016] # HIRAGANA DIGRAPH YORI
+3089 ; [.3D82.0020.000E] # HIRAGANA LETTER RA
+31FB ; [.3D82.0020.000F] # KATAKANA LETTER SMALL RA
+30E9 ; [.3D82.0020.0011] # KATAKANA LETTER RA
+FF97 ; [.3D82.0020.0012] # HALFWIDTH KATAKANA LETTER RA
+32F6 ; [.3D82.0020.0013] # CIRCLED KATAKANA RA
+308A ; [.3D83.0020.000E] # HIRAGANA LETTER RI
+31FC ; [.3D83.0020.000F] # KATAKANA LETTER SMALL RI
+30EA ; [.3D83.0020.0011] # KATAKANA LETTER RI
+FF98 ; [.3D83.0020.0012] # HALFWIDTH KATAKANA LETTER RI
+32F7 ; [.3D83.0020.0013] # CIRCLED KATAKANA RI
+3351 ; [.3D83.0020.001C][.3D6C.0020.001C][.3D6E.0020.001C][.3D84.0020.001C] # SQUARE RITTORU
+3352 ; [.3D83.0020.001C][.3D82.0020.001C] # SQUARE RIRA
+308B ; [.3D84.0020.000E] # HIRAGANA LETTER RU
+31FD ; [.3D84.0020.000F] # KATAKANA LETTER SMALL RU
+30EB ; [.3D84.0020.0011] # KATAKANA LETTER RU
+FF99 ; [.3D84.0020.0012] # HALFWIDTH KATAKANA LETTER RU
+32F8 ; [.3D84.0020.0013] # CIRCLED KATAKANA RU
+3354 ; [.3D84.0020.001C][.1C0E.0020.001C][.3D76.0020.001C][.0000.0037.001C][.3D84.0020.001C] # SQUARE RUUBURU
+3353 ; [.3D84.0020.001C][.3D75.0020.001C][.0000.0038.001C][.1C0E.0020.001C] # SQUARE RUPII
+308C ; [.3D85.0020.000E] # HIRAGANA LETTER RE
+31FE ; [.3D85.0020.000F] # KATAKANA LETTER SMALL RE
+30EC ; [.3D85.0020.0011] # KATAKANA LETTER RE
+FF9A ; [.3D85.0020.0012] # HALFWIDTH KATAKANA LETTER RE
+32F9 ; [.3D85.0020.0013] # CIRCLED KATAKANA RE
+3355 ; [.3D85.0020.001C][.3D7B.0020.001C] # SQUARE REMU
+3356 ; [.3D85.0020.001C][.3D8B.0020.001C][.3D6E.0020.001C][.3D63.0020.001C][.0000.0037.001C][.3D8B.0020.001C] # SQUARE RENTOGEN
+308D ; [.3D86.0020.000E] # HIRAGANA LETTER RO
+31FF ; [.3D86.0020.000F] # KATAKANA LETTER SMALL RO
+30ED ; [.3D86.0020.0011] # KATAKANA LETTER RO
+FF9B ; [.3D86.0020.0012] # HALFWIDTH KATAKANA LETTER RO
+32FA ; [.3D86.0020.0013] # CIRCLED KATAKANA RO
+308E ; [.3D87.0020.000D] # HIRAGANA LETTER SMALL WA
+308F ; [.3D87.0020.000E] # HIRAGANA LETTER WA
+30EE ; [.3D87.0020.000F] # KATAKANA LETTER SMALL WA
+30EF ; [.3D87.0020.0011] # KATAKANA LETTER WA
+FF9C ; [.3D87.0020.0012] # HALFWIDTH KATAKANA LETTER WA
+32FB ; [.3D87.0020.0013] # CIRCLED KATAKANA WA
+30F7 ; [.3D87.0020.0011][.0000.0037.0002] # KATAKANA LETTER VA
+3357 ; [.3D87.0020.001C][.3D6C.0020.001C][.3D6E.0020.001C] # SQUARE WATTO
+3090 ; [.3D88.0020.000E] # HIRAGANA LETTER WI
+30F0 ; [.3D88.0020.0011] # KATAKANA LETTER WI
+32FC ; [.3D88.0020.0013] # CIRCLED KATAKANA WI
+30F8 ; [.3D88.0020.0011][.0000.0037.0002] # KATAKANA LETTER VI
+3091 ; [.3D89.0020.000E] # HIRAGANA LETTER WE
+30F1 ; [.3D89.0020.0011] # KATAKANA LETTER WE
+32FD ; [.3D89.0020.0013] # CIRCLED KATAKANA WE
+30F9 ; [.3D89.0020.0011][.0000.0037.0002] # KATAKANA LETTER VE
+3092 ; [.3D8A.0020.000E] # HIRAGANA LETTER WO
+30F2 ; [.3D8A.0020.0011] # KATAKANA LETTER WO
+FF66 ; [.3D8A.0020.0012] # HALFWIDTH KATAKANA LETTER WO
+32FE ; [.3D8A.0020.0013] # CIRCLED KATAKANA WO
+30FA ; [.3D8A.0020.0011][.0000.0037.0002] # KATAKANA LETTER VO
+3093 ; [.3D8B.0020.000E] # HIRAGANA LETTER N
+30F3 ; [.3D8B.0020.0011] # KATAKANA LETTER N
+FF9D ; [.3D8B.0020.0012] # HALFWIDTH KATAKANA LETTER N
+3105 ; [.3D8C.0020.0002] # BOPOMOFO LETTER B
+31A0 ; [.3D8C.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER BU
+3106 ; [.3D8D.0020.0002] # BOPOMOFO LETTER P
+31B4 ; [.3D8D.0020.0019] # BOPOMOFO FINAL LETTER P
+3107 ; [.3D8E.0020.0002] # BOPOMOFO LETTER M
+3108 ; [.3D8F.0020.0002] # BOPOMOFO LETTER F
+312A ; [.3D90.0020.0002] # BOPOMOFO LETTER V
+3109 ; [.3D91.0020.0002] # BOPOMOFO LETTER D
+310A ; [.3D92.0020.0002] # BOPOMOFO LETTER T
+31B5 ; [.3D92.0020.0019] # BOPOMOFO FINAL LETTER T
+310B ; [.3D93.0020.0002] # BOPOMOFO LETTER N
+310C ; [.3D94.0020.0002] # BOPOMOFO LETTER L
+310D ; [.3D95.0020.0002] # BOPOMOFO LETTER G
+31A3 ; [.3D95.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER GU
+310E ; [.3D96.0020.0002] # BOPOMOFO LETTER K
+31B6 ; [.3D96.0020.0019] # BOPOMOFO FINAL LETTER K
+312B ; [.3D97.0020.0002] # BOPOMOFO LETTER NG
+31AD ; [.3D98.0020.0002] # BOPOMOFO LETTER NGG
+310F ; [.3D99.0020.0002] # BOPOMOFO LETTER H
+31B7 ; [.3D99.0020.0019] # BOPOMOFO FINAL LETTER H
+3110 ; [.3D9A.0020.0002] # BOPOMOFO LETTER J
+31A2 ; [.3D9A.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER JI
+3111 ; [.3D9B.0020.0002] # BOPOMOFO LETTER Q
+3112 ; [.3D9C.0020.0002] # BOPOMOFO LETTER X
+312C ; [.3D9D.0020.0002] # BOPOMOFO LETTER GN
+3113 ; [.3D9E.0020.0002] # BOPOMOFO LETTER ZH
+3114 ; [.3D9F.0020.0002] # BOPOMOFO LETTER CH
+3115 ; [.3DA0.0020.0002] # BOPOMOFO LETTER SH
+3116 ; [.3DA1.0020.0002] # BOPOMOFO LETTER R
+3117 ; [.3DA2.0020.0002] # BOPOMOFO LETTER Z
+31A1 ; [.3DA2.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER ZI
+3118 ; [.3DA3.0020.0002] # BOPOMOFO LETTER C
+3119 ; [.3DA4.0020.0002] # BOPOMOFO LETTER S
+31B8 ; [.3DA5.0020.0002] # BOPOMOFO LETTER GH
+31B9 ; [.3DA6.0020.0002] # BOPOMOFO LETTER LH
+31BA ; [.3DA7.0020.0002] # BOPOMOFO LETTER ZY
+311A ; [.3DA8.0020.0002] # BOPOMOFO LETTER A
+31A9 ; [.3DA8.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER ANN
+311B ; [.3DA9.0020.0002] # BOPOMOFO LETTER O
+31A7 ; [.3DA9.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER ONN
+31A6 ; [.3DAA.0020.0002] # BOPOMOFO LETTER OO
+311C ; [.3DAB.0020.0002] # BOPOMOFO LETTER E
+311D ; [.3DAC.0020.0002] # BOPOMOFO LETTER EH
+31A4 ; [.3DAD.0020.0002] # BOPOMOFO LETTER EE
+31A5 ; [.3DAD.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER ENN
+311E ; [.3DAE.0020.0002] # BOPOMOFO LETTER AI
+31AE ; [.3DAE.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER AINN
+311F ; [.3DAF.0020.0002] # BOPOMOFO LETTER EI
+3120 ; [.3DB0.0020.0002] # BOPOMOFO LETTER AU
+31AF ; [.3DB0.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER AUNN
+3121 ; [.3DB1.0020.0002] # BOPOMOFO LETTER OU
+3122 ; [.3DB2.0020.0002] # BOPOMOFO LETTER AN
+3123 ; [.3DB3.0020.0002] # BOPOMOFO LETTER EN
+3124 ; [.3DB4.0020.0002] # BOPOMOFO LETTER ANG
+31B2 ; [.3DB5.0020.0002] # BOPOMOFO LETTER ONG
+3125 ; [.3DB6.0020.0002] # BOPOMOFO LETTER ENG
+31B0 ; [.3DB7.0020.0002] # BOPOMOFO LETTER AM
+31B1 ; [.3DB8.0020.0002] # BOPOMOFO LETTER OM
+31AC ; [.3DB9.0020.0002] # BOPOMOFO LETTER IM
+3126 ; [.3DBA.0020.0002] # BOPOMOFO LETTER ER
+3127 ; [.3DBB.0020.0002] # BOPOMOFO LETTER I
+31AA ; [.3DBB.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER INN
+31B3 ; [.3DBB.0020.0016][.0000.0111.0016] # BOPOMOFO LETTER INNN
+3128 ; [.3DBC.0020.0002] # BOPOMOFO LETTER U
+31AB ; [.3DBC.0020.0004][.0000.0111.0004] # BOPOMOFO LETTER UNN
+31A8 ; [.3DBC.0020.0004][.0000.0112.0004] # BOPOMOFO LETTER IR
+3129 ; [.3DBD.0020.0002] # BOPOMOFO LETTER IU
+312D ; [.3DBE.0020.0002] # BOPOMOFO LETTER IH
+A000 ; [.3DBF.0020.0002] # YI SYLLABLE IT
+A001 ; [.3DC0.0020.0002] # YI SYLLABLE IX
+A002 ; [.3DC1.0020.0002] # YI SYLLABLE I
+A003 ; [.3DC2.0020.0002] # YI SYLLABLE IP
+A004 ; [.3DC3.0020.0002] # YI SYLLABLE IET
+A005 ; [.3DC4.0020.0002] # YI SYLLABLE IEX
+A006 ; [.3DC5.0020.0002] # YI SYLLABLE IE
+A007 ; [.3DC6.0020.0002] # YI SYLLABLE IEP
+A008 ; [.3DC7.0020.0002] # YI SYLLABLE AT
+A009 ; [.3DC8.0020.0002] # YI SYLLABLE AX
+A00A ; [.3DC9.0020.0002] # YI SYLLABLE A
+A00B ; [.3DCA.0020.0002] # YI SYLLABLE AP
+A00C ; [.3DCB.0020.0002] # YI SYLLABLE UOX
+A00D ; [.3DCC.0020.0002] # YI SYLLABLE UO
+A00E ; [.3DCD.0020.0002] # YI SYLLABLE UOP
+A00F ; [.3DCE.0020.0002] # YI SYLLABLE OT
+A010 ; [.3DCF.0020.0002] # YI SYLLABLE OX
+A011 ; [.3DD0.0020.0002] # YI SYLLABLE O
+A012 ; [.3DD1.0020.0002] # YI SYLLABLE OP
+A013 ; [.3DD2.0020.0002] # YI SYLLABLE EX
+A014 ; [.3DD3.0020.0002] # YI SYLLABLE E
+A015 ; [.3DD4.0020.0002] # YI SYLLABLE WU
+A016 ; [.3DD5.0020.0002] # YI SYLLABLE BIT
+A017 ; [.3DD6.0020.0002] # YI SYLLABLE BIX
+A018 ; [.3DD7.0020.0002] # YI SYLLABLE BI
+A019 ; [.3DD8.0020.0002] # YI SYLLABLE BIP
+A01A ; [.3DD9.0020.0002] # YI SYLLABLE BIET
+A01B ; [.3DDA.0020.0002] # YI SYLLABLE BIEX
+A01C ; [.3DDB.0020.0002] # YI SYLLABLE BIE
+A01D ; [.3DDC.0020.0002] # YI SYLLABLE BIEP
+A01E ; [.3DDD.0020.0002] # YI SYLLABLE BAT
+A01F ; [.3DDE.0020.0002] # YI SYLLABLE BAX
+A020 ; [.3DDF.0020.0002] # YI SYLLABLE BA
+A021 ; [.3DE0.0020.0002] # YI SYLLABLE BAP
+A022 ; [.3DE1.0020.0002] # YI SYLLABLE BUOX
+A023 ; [.3DE2.0020.0002] # YI SYLLABLE BUO
+A024 ; [.3DE3.0020.0002] # YI SYLLABLE BUOP
+A025 ; [.3DE4.0020.0002] # YI SYLLABLE BOT
+A026 ; [.3DE5.0020.0002] # YI SYLLABLE BOX
+A027 ; [.3DE6.0020.0002] # YI SYLLABLE BO
+A028 ; [.3DE7.0020.0002] # YI SYLLABLE BOP
+A029 ; [.3DE8.0020.0002] # YI SYLLABLE BEX
+A02A ; [.3DE9.0020.0002] # YI SYLLABLE BE
+A02B ; [.3DEA.0020.0002] # YI SYLLABLE BEP
+A02C ; [.3DEB.0020.0002] # YI SYLLABLE BUT
+A02D ; [.3DEC.0020.0002] # YI SYLLABLE BUX
+A02E ; [.3DED.0020.0002] # YI SYLLABLE BU
+A02F ; [.3DEE.0020.0002] # YI SYLLABLE BUP
+A030 ; [.3DEF.0020.0002] # YI SYLLABLE BURX
+A031 ; [.3DF0.0020.0002] # YI SYLLABLE BUR
+A032 ; [.3DF1.0020.0002] # YI SYLLABLE BYT
+A033 ; [.3DF2.0020.0002] # YI SYLLABLE BYX
+A034 ; [.3DF3.0020.0002] # YI SYLLABLE BY
+A035 ; [.3DF4.0020.0002] # YI SYLLABLE BYP
+A036 ; [.3DF5.0020.0002] # YI SYLLABLE BYRX
+A037 ; [.3DF6.0020.0002] # YI SYLLABLE BYR
+A038 ; [.3DF7.0020.0002] # YI SYLLABLE PIT
+A039 ; [.3DF8.0020.0002] # YI SYLLABLE PIX
+A03A ; [.3DF9.0020.0002] # YI SYLLABLE PI
+A03B ; [.3DFA.0020.0002] # YI SYLLABLE PIP
+A03C ; [.3DFB.0020.0002] # YI SYLLABLE PIEX
+A03D ; [.3DFC.0020.0002] # YI SYLLABLE PIE
+A03E ; [.3DFD.0020.0002] # YI SYLLABLE PIEP
+A03F ; [.3DFE.0020.0002] # YI SYLLABLE PAT
+A040 ; [.3DFF.0020.0002] # YI SYLLABLE PAX
+A041 ; [.3E00.0020.0002] # YI SYLLABLE PA
+A042 ; [.3E01.0020.0002] # YI SYLLABLE PAP
+A043 ; [.3E02.0020.0002] # YI SYLLABLE PUOX
+A044 ; [.3E03.0020.0002] # YI SYLLABLE PUO
+A045 ; [.3E04.0020.0002] # YI SYLLABLE PUOP
+A046 ; [.3E05.0020.0002] # YI SYLLABLE POT
+A047 ; [.3E06.0020.0002] # YI SYLLABLE POX
+A048 ; [.3E07.0020.0002] # YI SYLLABLE PO
+A049 ; [.3E08.0020.0002] # YI SYLLABLE POP
+A04A ; [.3E09.0020.0002] # YI SYLLABLE PUT
+A04B ; [.3E0A.0020.0002] # YI SYLLABLE PUX
+A04C ; [.3E0B.0020.0002] # YI SYLLABLE PU
+A04D ; [.3E0C.0020.0002] # YI SYLLABLE PUP
+A04E ; [.3E0D.0020.0002] # YI SYLLABLE PURX
+A04F ; [.3E0E.0020.0002] # YI SYLLABLE PUR
+A050 ; [.3E0F.0020.0002] # YI SYLLABLE PYT
+A051 ; [.3E10.0020.0002] # YI SYLLABLE PYX
+A052 ; [.3E11.0020.0002] # YI SYLLABLE PY
+A053 ; [.3E12.0020.0002] # YI SYLLABLE PYP
+A054 ; [.3E13.0020.0002] # YI SYLLABLE PYRX
+A055 ; [.3E14.0020.0002] # YI SYLLABLE PYR
+A056 ; [.3E15.0020.0002] # YI SYLLABLE BBIT
+A057 ; [.3E16.0020.0002] # YI SYLLABLE BBIX
+A058 ; [.3E17.0020.0002] # YI SYLLABLE BBI
+A059 ; [.3E18.0020.0002] # YI SYLLABLE BBIP
+A05A ; [.3E19.0020.0002] # YI SYLLABLE BBIET
+A05B ; [.3E1A.0020.0002] # YI SYLLABLE BBIEX
+A05C ; [.3E1B.0020.0002] # YI SYLLABLE BBIE
+A05D ; [.3E1C.0020.0002] # YI SYLLABLE BBIEP
+A05E ; [.3E1D.0020.0002] # YI SYLLABLE BBAT
+A05F ; [.3E1E.0020.0002] # YI SYLLABLE BBAX
+A060 ; [.3E1F.0020.0002] # YI SYLLABLE BBA
+A061 ; [.3E20.0020.0002] # YI SYLLABLE BBAP
+A062 ; [.3E21.0020.0002] # YI SYLLABLE BBUOX
+A063 ; [.3E22.0020.0002] # YI SYLLABLE BBUO
+A064 ; [.3E23.0020.0002] # YI SYLLABLE BBUOP
+A065 ; [.3E24.0020.0002] # YI SYLLABLE BBOT
+A066 ; [.3E25.0020.0002] # YI SYLLABLE BBOX
+A067 ; [.3E26.0020.0002] # YI SYLLABLE BBO
+A068 ; [.3E27.0020.0002] # YI SYLLABLE BBOP
+A069 ; [.3E28.0020.0002] # YI SYLLABLE BBEX
+A06A ; [.3E29.0020.0002] # YI SYLLABLE BBE
+A06B ; [.3E2A.0020.0002] # YI SYLLABLE BBEP
+A06C ; [.3E2B.0020.0002] # YI SYLLABLE BBUT
+A06D ; [.3E2C.0020.0002] # YI SYLLABLE BBUX
+A06E ; [.3E2D.0020.0002] # YI SYLLABLE BBU
+A06F ; [.3E2E.0020.0002] # YI SYLLABLE BBUP
+A070 ; [.3E2F.0020.0002] # YI SYLLABLE BBURX
+A071 ; [.3E30.0020.0002] # YI SYLLABLE BBUR
+A072 ; [.3E31.0020.0002] # YI SYLLABLE BBYT
+A073 ; [.3E32.0020.0002] # YI SYLLABLE BBYX
+A074 ; [.3E33.0020.0002] # YI SYLLABLE BBY
+A075 ; [.3E34.0020.0002] # YI SYLLABLE BBYP
+A076 ; [.3E35.0020.0002] # YI SYLLABLE NBIT
+A077 ; [.3E36.0020.0002] # YI SYLLABLE NBIX
+A078 ; [.3E37.0020.0002] # YI SYLLABLE NBI
+A079 ; [.3E38.0020.0002] # YI SYLLABLE NBIP
+A07A ; [.3E39.0020.0002] # YI SYLLABLE NBIEX
+A07B ; [.3E3A.0020.0002] # YI SYLLABLE NBIE
+A07C ; [.3E3B.0020.0002] # YI SYLLABLE NBIEP
+A07D ; [.3E3C.0020.0002] # YI SYLLABLE NBAT
+A07E ; [.3E3D.0020.0002] # YI SYLLABLE NBAX
+A07F ; [.3E3E.0020.0002] # YI SYLLABLE NBA
+A080 ; [.3E3F.0020.0002] # YI SYLLABLE NBAP
+A081 ; [.3E40.0020.0002] # YI SYLLABLE NBOT
+A082 ; [.3E41.0020.0002] # YI SYLLABLE NBOX
+A083 ; [.3E42.0020.0002] # YI SYLLABLE NBO
+A084 ; [.3E43.0020.0002] # YI SYLLABLE NBOP
+A085 ; [.3E44.0020.0002] # YI SYLLABLE NBUT
+A086 ; [.3E45.0020.0002] # YI SYLLABLE NBUX
+A087 ; [.3E46.0020.0002] # YI SYLLABLE NBU
+A088 ; [.3E47.0020.0002] # YI SYLLABLE NBUP
+A089 ; [.3E48.0020.0002] # YI SYLLABLE NBURX
+A08A ; [.3E49.0020.0002] # YI SYLLABLE NBUR
+A08B ; [.3E4A.0020.0002] # YI SYLLABLE NBYT
+A08C ; [.3E4B.0020.0002] # YI SYLLABLE NBYX
+A08D ; [.3E4C.0020.0002] # YI SYLLABLE NBY
+A08E ; [.3E4D.0020.0002] # YI SYLLABLE NBYP
+A08F ; [.3E4E.0020.0002] # YI SYLLABLE NBYRX
+A090 ; [.3E4F.0020.0002] # YI SYLLABLE NBYR
+A091 ; [.3E50.0020.0002] # YI SYLLABLE HMIT
+A092 ; [.3E51.0020.0002] # YI SYLLABLE HMIX
+A093 ; [.3E52.0020.0002] # YI SYLLABLE HMI
+A094 ; [.3E53.0020.0002] # YI SYLLABLE HMIP
+A095 ; [.3E54.0020.0002] # YI SYLLABLE HMIEX
+A096 ; [.3E55.0020.0002] # YI SYLLABLE HMIE
+A097 ; [.3E56.0020.0002] # YI SYLLABLE HMIEP
+A098 ; [.3E57.0020.0002] # YI SYLLABLE HMAT
+A099 ; [.3E58.0020.0002] # YI SYLLABLE HMAX
+A09A ; [.3E59.0020.0002] # YI SYLLABLE HMA
+A09B ; [.3E5A.0020.0002] # YI SYLLABLE HMAP
+A09C ; [.3E5B.0020.0002] # YI SYLLABLE HMUOX
+A09D ; [.3E5C.0020.0002] # YI SYLLABLE HMUO
+A09E ; [.3E5D.0020.0002] # YI SYLLABLE HMUOP
+A09F ; [.3E5E.0020.0002] # YI SYLLABLE HMOT
+A0A0 ; [.3E5F.0020.0002] # YI SYLLABLE HMOX
+A0A1 ; [.3E60.0020.0002] # YI SYLLABLE HMO
+A0A2 ; [.3E61.0020.0002] # YI SYLLABLE HMOP
+A0A3 ; [.3E62.0020.0002] # YI SYLLABLE HMUT
+A0A4 ; [.3E63.0020.0002] # YI SYLLABLE HMUX
+A0A5 ; [.3E64.0020.0002] # YI SYLLABLE HMU
+A0A6 ; [.3E65.0020.0002] # YI SYLLABLE HMUP
+A0A7 ; [.3E66.0020.0002] # YI SYLLABLE HMURX
+A0A8 ; [.3E67.0020.0002] # YI SYLLABLE HMUR
+A0A9 ; [.3E68.0020.0002] # YI SYLLABLE HMYX
+A0AA ; [.3E69.0020.0002] # YI SYLLABLE HMY
+A0AB ; [.3E6A.0020.0002] # YI SYLLABLE HMYP
+A0AC ; [.3E6B.0020.0002] # YI SYLLABLE HMYRX
+A0AD ; [.3E6C.0020.0002] # YI SYLLABLE HMYR
+A0AE ; [.3E6D.0020.0002] # YI SYLLABLE MIT
+A0AF ; [.3E6E.0020.0002] # YI SYLLABLE MIX
+A0B0 ; [.3E6F.0020.0002] # YI SYLLABLE MI
+A0B1 ; [.3E70.0020.0002] # YI SYLLABLE MIP
+A0B2 ; [.3E71.0020.0002] # YI SYLLABLE MIEX
+A0B3 ; [.3E72.0020.0002] # YI SYLLABLE MIE
+A0B4 ; [.3E73.0020.0002] # YI SYLLABLE MIEP
+A0B5 ; [.3E74.0020.0002] # YI SYLLABLE MAT
+A0B6 ; [.3E75.0020.0002] # YI SYLLABLE MAX
+A0B7 ; [.3E76.0020.0002] # YI SYLLABLE MA
+A0B8 ; [.3E77.0020.0002] # YI SYLLABLE MAP
+A0B9 ; [.3E78.0020.0002] # YI SYLLABLE MUOT
+A0BA ; [.3E79.0020.0002] # YI SYLLABLE MUOX
+A0BB ; [.3E7A.0020.0002] # YI SYLLABLE MUO
+A0BC ; [.3E7B.0020.0002] # YI SYLLABLE MUOP
+A0BD ; [.3E7C.0020.0002] # YI SYLLABLE MOT
+A0BE ; [.3E7D.0020.0002] # YI SYLLABLE MOX
+A0BF ; [.3E7E.0020.0002] # YI SYLLABLE MO
+A0C0 ; [.3E7F.0020.0002] # YI SYLLABLE MOP
+A0C1 ; [.3E80.0020.0002] # YI SYLLABLE MEX
+A0C2 ; [.3E81.0020.0002] # YI SYLLABLE ME
+A0C3 ; [.3E82.0020.0002] # YI SYLLABLE MUT
+A0C4 ; [.3E83.0020.0002] # YI SYLLABLE MUX
+A0C5 ; [.3E84.0020.0002] # YI SYLLABLE MU
+A0C6 ; [.3E85.0020.0002] # YI SYLLABLE MUP
+A0C7 ; [.3E86.0020.0002] # YI SYLLABLE MURX
+A0C8 ; [.3E87.0020.0002] # YI SYLLABLE MUR
+A0C9 ; [.3E88.0020.0002] # YI SYLLABLE MYT
+A0CA ; [.3E89.0020.0002] # YI SYLLABLE MYX
+A0CB ; [.3E8A.0020.0002] # YI SYLLABLE MY
+A0CC ; [.3E8B.0020.0002] # YI SYLLABLE MYP
+A0CD ; [.3E8C.0020.0002] # YI SYLLABLE FIT
+A0CE ; [.3E8D.0020.0002] # YI SYLLABLE FIX
+A0CF ; [.3E8E.0020.0002] # YI SYLLABLE FI
+A0D0 ; [.3E8F.0020.0002] # YI SYLLABLE FIP
+A0D1 ; [.3E90.0020.0002] # YI SYLLABLE FAT
+A0D2 ; [.3E91.0020.0002] # YI SYLLABLE FAX
+A0D3 ; [.3E92.0020.0002] # YI SYLLABLE FA
+A0D4 ; [.3E93.0020.0002] # YI SYLLABLE FAP
+A0D5 ; [.3E94.0020.0002] # YI SYLLABLE FOX
+A0D6 ; [.3E95.0020.0002] # YI SYLLABLE FO
+A0D7 ; [.3E96.0020.0002] # YI SYLLABLE FOP
+A0D8 ; [.3E97.0020.0002] # YI SYLLABLE FUT
+A0D9 ; [.3E98.0020.0002] # YI SYLLABLE FUX
+A0DA ; [.3E99.0020.0002] # YI SYLLABLE FU
+A0DB ; [.3E9A.0020.0002] # YI SYLLABLE FUP
+A0DC ; [.3E9B.0020.0002] # YI SYLLABLE FURX
+A0DD ; [.3E9C.0020.0002] # YI SYLLABLE FUR
+A0DE ; [.3E9D.0020.0002] # YI SYLLABLE FYT
+A0DF ; [.3E9E.0020.0002] # YI SYLLABLE FYX
+A0E0 ; [.3E9F.0020.0002] # YI SYLLABLE FY
+A0E1 ; [.3EA0.0020.0002] # YI SYLLABLE FYP
+A0E2 ; [.3EA1.0020.0002] # YI SYLLABLE VIT
+A0E3 ; [.3EA2.0020.0002] # YI SYLLABLE VIX
+A0E4 ; [.3EA3.0020.0002] # YI SYLLABLE VI
+A0E5 ; [.3EA4.0020.0002] # YI SYLLABLE VIP
+A0E6 ; [.3EA5.0020.0002] # YI SYLLABLE VIET
+A0E7 ; [.3EA6.0020.0002] # YI SYLLABLE VIEX
+A0E8 ; [.3EA7.0020.0002] # YI SYLLABLE VIE
+A0E9 ; [.3EA8.0020.0002] # YI SYLLABLE VIEP
+A0EA ; [.3EA9.0020.0002] # YI SYLLABLE VAT
+A0EB ; [.3EAA.0020.0002] # YI SYLLABLE VAX
+A0EC ; [.3EAB.0020.0002] # YI SYLLABLE VA
+A0ED ; [.3EAC.0020.0002] # YI SYLLABLE VAP
+A0EE ; [.3EAD.0020.0002] # YI SYLLABLE VOT
+A0EF ; [.3EAE.0020.0002] # YI SYLLABLE VOX
+A0F0 ; [.3EAF.0020.0002] # YI SYLLABLE VO
+A0F1 ; [.3EB0.0020.0002] # YI SYLLABLE VOP
+A0F2 ; [.3EB1.0020.0002] # YI SYLLABLE VEX
+A0F3 ; [.3EB2.0020.0002] # YI SYLLABLE VEP
+A0F4 ; [.3EB3.0020.0002] # YI SYLLABLE VUT
+A0F5 ; [.3EB4.0020.0002] # YI SYLLABLE VUX
+A0F6 ; [.3EB5.0020.0002] # YI SYLLABLE VU
+A0F7 ; [.3EB6.0020.0002] # YI SYLLABLE VUP
+A0F8 ; [.3EB7.0020.0002] # YI SYLLABLE VURX
+A0F9 ; [.3EB8.0020.0002] # YI SYLLABLE VUR
+A0FA ; [.3EB9.0020.0002] # YI SYLLABLE VYT
+A0FB ; [.3EBA.0020.0002] # YI SYLLABLE VYX
+A0FC ; [.3EBB.0020.0002] # YI SYLLABLE VY
+A0FD ; [.3EBC.0020.0002] # YI SYLLABLE VYP
+A0FE ; [.3EBD.0020.0002] # YI SYLLABLE VYRX
+A0FF ; [.3EBE.0020.0002] # YI SYLLABLE VYR
+A100 ; [.3EBF.0020.0002] # YI SYLLABLE DIT
+A101 ; [.3EC0.0020.0002] # YI SYLLABLE DIX
+A102 ; [.3EC1.0020.0002] # YI SYLLABLE DI
+A103 ; [.3EC2.0020.0002] # YI SYLLABLE DIP
+A104 ; [.3EC3.0020.0002] # YI SYLLABLE DIEX
+A105 ; [.3EC4.0020.0002] # YI SYLLABLE DIE
+A106 ; [.3EC5.0020.0002] # YI SYLLABLE DIEP
+A107 ; [.3EC6.0020.0002] # YI SYLLABLE DAT
+A108 ; [.3EC7.0020.0002] # YI SYLLABLE DAX
+A109 ; [.3EC8.0020.0002] # YI SYLLABLE DA
+A10A ; [.3EC9.0020.0002] # YI SYLLABLE DAP
+A10B ; [.3ECA.0020.0002] # YI SYLLABLE DUOX
+A10C ; [.3ECB.0020.0002] # YI SYLLABLE DUO
+A10D ; [.3ECC.0020.0002] # YI SYLLABLE DOT
+A10E ; [.3ECD.0020.0002] # YI SYLLABLE DOX
+A10F ; [.3ECE.0020.0002] # YI SYLLABLE DO
+A110 ; [.3ECF.0020.0002] # YI SYLLABLE DOP
+A111 ; [.3ED0.0020.0002] # YI SYLLABLE DEX
+A112 ; [.3ED1.0020.0002] # YI SYLLABLE DE
+A113 ; [.3ED2.0020.0002] # YI SYLLABLE DEP
+A114 ; [.3ED3.0020.0002] # YI SYLLABLE DUT
+A115 ; [.3ED4.0020.0002] # YI SYLLABLE DUX
+A116 ; [.3ED5.0020.0002] # YI SYLLABLE DU
+A117 ; [.3ED6.0020.0002] # YI SYLLABLE DUP
+A118 ; [.3ED7.0020.0002] # YI SYLLABLE DURX
+A119 ; [.3ED8.0020.0002] # YI SYLLABLE DUR
+A11A ; [.3ED9.0020.0002] # YI SYLLABLE TIT
+A11B ; [.3EDA.0020.0002] # YI SYLLABLE TIX
+A11C ; [.3EDB.0020.0002] # YI SYLLABLE TI
+A11D ; [.3EDC.0020.0002] # YI SYLLABLE TIP
+A11E ; [.3EDD.0020.0002] # YI SYLLABLE TIEX
+A11F ; [.3EDE.0020.0002] # YI SYLLABLE TIE
+A120 ; [.3EDF.0020.0002] # YI SYLLABLE TIEP
+A121 ; [.3EE0.0020.0002] # YI SYLLABLE TAT
+A122 ; [.3EE1.0020.0002] # YI SYLLABLE TAX
+A123 ; [.3EE2.0020.0002] # YI SYLLABLE TA
+A124 ; [.3EE3.0020.0002] # YI SYLLABLE TAP
+A125 ; [.3EE4.0020.0002] # YI SYLLABLE TUOT
+A126 ; [.3EE5.0020.0002] # YI SYLLABLE TUOX
+A127 ; [.3EE6.0020.0002] # YI SYLLABLE TUO
+A128 ; [.3EE7.0020.0002] # YI SYLLABLE TUOP
+A129 ; [.3EE8.0020.0002] # YI SYLLABLE TOT
+A12A ; [.3EE9.0020.0002] # YI SYLLABLE TOX
+A12B ; [.3EEA.0020.0002] # YI SYLLABLE TO
+A12C ; [.3EEB.0020.0002] # YI SYLLABLE TOP
+A12D ; [.3EEC.0020.0002] # YI SYLLABLE TEX
+A12E ; [.3EED.0020.0002] # YI SYLLABLE TE
+A12F ; [.3EEE.0020.0002] # YI SYLLABLE TEP
+A130 ; [.3EEF.0020.0002] # YI SYLLABLE TUT
+A131 ; [.3EF0.0020.0002] # YI SYLLABLE TUX
+A132 ; [.3EF1.0020.0002] # YI SYLLABLE TU
+A133 ; [.3EF2.0020.0002] # YI SYLLABLE TUP
+A134 ; [.3EF3.0020.0002] # YI SYLLABLE TURX
+A135 ; [.3EF4.0020.0002] # YI SYLLABLE TUR
+A136 ; [.3EF5.0020.0002] # YI SYLLABLE DDIT
+A137 ; [.3EF6.0020.0002] # YI SYLLABLE DDIX
+A138 ; [.3EF7.0020.0002] # YI SYLLABLE DDI
+A139 ; [.3EF8.0020.0002] # YI SYLLABLE DDIP
+A13A ; [.3EF9.0020.0002] # YI SYLLABLE DDIEX
+A13B ; [.3EFA.0020.0002] # YI SYLLABLE DDIE
+A13C ; [.3EFB.0020.0002] # YI SYLLABLE DDIEP
+A13D ; [.3EFC.0020.0002] # YI SYLLABLE DDAT
+A13E ; [.3EFD.0020.0002] # YI SYLLABLE DDAX
+A13F ; [.3EFE.0020.0002] # YI SYLLABLE DDA
+A140 ; [.3EFF.0020.0002] # YI SYLLABLE DDAP
+A141 ; [.3F00.0020.0002] # YI SYLLABLE DDUOX
+A142 ; [.3F01.0020.0002] # YI SYLLABLE DDUO
+A143 ; [.3F02.0020.0002] # YI SYLLABLE DDUOP
+A144 ; [.3F03.0020.0002] # YI SYLLABLE DDOT
+A145 ; [.3F04.0020.0002] # YI SYLLABLE DDOX
+A146 ; [.3F05.0020.0002] # YI SYLLABLE DDO
+A147 ; [.3F06.0020.0002] # YI SYLLABLE DDOP
+A148 ; [.3F07.0020.0002] # YI SYLLABLE DDEX
+A149 ; [.3F08.0020.0002] # YI SYLLABLE DDE
+A14A ; [.3F09.0020.0002] # YI SYLLABLE DDEP
+A14B ; [.3F0A.0020.0002] # YI SYLLABLE DDUT
+A14C ; [.3F0B.0020.0002] # YI SYLLABLE DDUX
+A14D ; [.3F0C.0020.0002] # YI SYLLABLE DDU
+A14E ; [.3F0D.0020.0002] # YI SYLLABLE DDUP
+A14F ; [.3F0E.0020.0002] # YI SYLLABLE DDURX
+A150 ; [.3F0F.0020.0002] # YI SYLLABLE DDUR
+A151 ; [.3F10.0020.0002] # YI SYLLABLE NDIT
+A152 ; [.3F11.0020.0002] # YI SYLLABLE NDIX
+A153 ; [.3F12.0020.0002] # YI SYLLABLE NDI
+A154 ; [.3F13.0020.0002] # YI SYLLABLE NDIP
+A155 ; [.3F14.0020.0002] # YI SYLLABLE NDIEX
+A156 ; [.3F15.0020.0002] # YI SYLLABLE NDIE
+A157 ; [.3F16.0020.0002] # YI SYLLABLE NDAT
+A158 ; [.3F17.0020.0002] # YI SYLLABLE NDAX
+A159 ; [.3F18.0020.0002] # YI SYLLABLE NDA
+A15A ; [.3F19.0020.0002] # YI SYLLABLE NDAP
+A15B ; [.3F1A.0020.0002] # YI SYLLABLE NDOT
+A15C ; [.3F1B.0020.0002] # YI SYLLABLE NDOX
+A15D ; [.3F1C.0020.0002] # YI SYLLABLE NDO
+A15E ; [.3F1D.0020.0002] # YI SYLLABLE NDOP
+A15F ; [.3F1E.0020.0002] # YI SYLLABLE NDEX
+A160 ; [.3F1F.0020.0002] # YI SYLLABLE NDE
+A161 ; [.3F20.0020.0002] # YI SYLLABLE NDEP
+A162 ; [.3F21.0020.0002] # YI SYLLABLE NDUT
+A163 ; [.3F22.0020.0002] # YI SYLLABLE NDUX
+A164 ; [.3F23.0020.0002] # YI SYLLABLE NDU
+A165 ; [.3F24.0020.0002] # YI SYLLABLE NDUP
+A166 ; [.3F25.0020.0002] # YI SYLLABLE NDURX
+A167 ; [.3F26.0020.0002] # YI SYLLABLE NDUR
+A168 ; [.3F27.0020.0002] # YI SYLLABLE HNIT
+A169 ; [.3F28.0020.0002] # YI SYLLABLE HNIX
+A16A ; [.3F29.0020.0002] # YI SYLLABLE HNI
+A16B ; [.3F2A.0020.0002] # YI SYLLABLE HNIP
+A16C ; [.3F2B.0020.0002] # YI SYLLABLE HNIET
+A16D ; [.3F2C.0020.0002] # YI SYLLABLE HNIEX
+A16E ; [.3F2D.0020.0002] # YI SYLLABLE HNIE
+A16F ; [.3F2E.0020.0002] # YI SYLLABLE HNIEP
+A170 ; [.3F2F.0020.0002] # YI SYLLABLE HNAT
+A171 ; [.3F30.0020.0002] # YI SYLLABLE HNAX
+A172 ; [.3F31.0020.0002] # YI SYLLABLE HNA
+A173 ; [.3F32.0020.0002] # YI SYLLABLE HNAP
+A174 ; [.3F33.0020.0002] # YI SYLLABLE HNUOX
+A175 ; [.3F34.0020.0002] # YI SYLLABLE HNUO
+A176 ; [.3F35.0020.0002] # YI SYLLABLE HNOT
+A177 ; [.3F36.0020.0002] # YI SYLLABLE HNOX
+A178 ; [.3F37.0020.0002] # YI SYLLABLE HNOP
+A179 ; [.3F38.0020.0002] # YI SYLLABLE HNEX
+A17A ; [.3F39.0020.0002] # YI SYLLABLE HNE
+A17B ; [.3F3A.0020.0002] # YI SYLLABLE HNEP
+A17C ; [.3F3B.0020.0002] # YI SYLLABLE HNUT
+A17D ; [.3F3C.0020.0002] # YI SYLLABLE NIT
+A17E ; [.3F3D.0020.0002] # YI SYLLABLE NIX
+A17F ; [.3F3E.0020.0002] # YI SYLLABLE NI
+A180 ; [.3F3F.0020.0002] # YI SYLLABLE NIP
+A181 ; [.3F40.0020.0002] # YI SYLLABLE NIEX
+A182 ; [.3F41.0020.0002] # YI SYLLABLE NIE
+A183 ; [.3F42.0020.0002] # YI SYLLABLE NIEP
+A184 ; [.3F43.0020.0002] # YI SYLLABLE NAX
+A185 ; [.3F44.0020.0002] # YI SYLLABLE NA
+A186 ; [.3F45.0020.0002] # YI SYLLABLE NAP
+A187 ; [.3F46.0020.0002] # YI SYLLABLE NUOX
+A188 ; [.3F47.0020.0002] # YI SYLLABLE NUO
+A189 ; [.3F48.0020.0002] # YI SYLLABLE NUOP
+A18A ; [.3F49.0020.0002] # YI SYLLABLE NOT
+A18B ; [.3F4A.0020.0002] # YI SYLLABLE NOX
+A18C ; [.3F4B.0020.0002] # YI SYLLABLE NO
+A18D ; [.3F4C.0020.0002] # YI SYLLABLE NOP
+A18E ; [.3F4D.0020.0002] # YI SYLLABLE NEX
+A18F ; [.3F4E.0020.0002] # YI SYLLABLE NE
+A190 ; [.3F4F.0020.0002] # YI SYLLABLE NEP
+A191 ; [.3F50.0020.0002] # YI SYLLABLE NUT
+A192 ; [.3F51.0020.0002] # YI SYLLABLE NUX
+A193 ; [.3F52.0020.0002] # YI SYLLABLE NU
+A194 ; [.3F53.0020.0002] # YI SYLLABLE NUP
+A195 ; [.3F54.0020.0002] # YI SYLLABLE NURX
+A196 ; [.3F55.0020.0002] # YI SYLLABLE NUR
+A197 ; [.3F56.0020.0002] # YI SYLLABLE HLIT
+A198 ; [.3F57.0020.0002] # YI SYLLABLE HLIX
+A199 ; [.3F58.0020.0002] # YI SYLLABLE HLI
+A19A ; [.3F59.0020.0002] # YI SYLLABLE HLIP
+A19B ; [.3F5A.0020.0002] # YI SYLLABLE HLIEX
+A19C ; [.3F5B.0020.0002] # YI SYLLABLE HLIE
+A19D ; [.3F5C.0020.0002] # YI SYLLABLE HLIEP
+A19E ; [.3F5D.0020.0002] # YI SYLLABLE HLAT
+A19F ; [.3F5E.0020.0002] # YI SYLLABLE HLAX
+A1A0 ; [.3F5F.0020.0002] # YI SYLLABLE HLA
+A1A1 ; [.3F60.0020.0002] # YI SYLLABLE HLAP
+A1A2 ; [.3F61.0020.0002] # YI SYLLABLE HLUOX
+A1A3 ; [.3F62.0020.0002] # YI SYLLABLE HLUO
+A1A4 ; [.3F63.0020.0002] # YI SYLLABLE HLUOP
+A1A5 ; [.3F64.0020.0002] # YI SYLLABLE HLOX
+A1A6 ; [.3F65.0020.0002] # YI SYLLABLE HLO
+A1A7 ; [.3F66.0020.0002] # YI SYLLABLE HLOP
+A1A8 ; [.3F67.0020.0002] # YI SYLLABLE HLEX
+A1A9 ; [.3F68.0020.0002] # YI SYLLABLE HLE
+A1AA ; [.3F69.0020.0002] # YI SYLLABLE HLEP
+A1AB ; [.3F6A.0020.0002] # YI SYLLABLE HLUT
+A1AC ; [.3F6B.0020.0002] # YI SYLLABLE HLUX
+A1AD ; [.3F6C.0020.0002] # YI SYLLABLE HLU
+A1AE ; [.3F6D.0020.0002] # YI SYLLABLE HLUP
+A1AF ; [.3F6E.0020.0002] # YI SYLLABLE HLURX
+A1B0 ; [.3F6F.0020.0002] # YI SYLLABLE HLUR
+A1B1 ; [.3F70.0020.0002] # YI SYLLABLE HLYT
+A1B2 ; [.3F71.0020.0002] # YI SYLLABLE HLYX
+A1B3 ; [.3F72.0020.0002] # YI SYLLABLE HLY
+A1B4 ; [.3F73.0020.0002] # YI SYLLABLE HLYP
+A1B5 ; [.3F74.0020.0002] # YI SYLLABLE HLYRX
+A1B6 ; [.3F75.0020.0002] # YI SYLLABLE HLYR
+A1B7 ; [.3F76.0020.0002] # YI SYLLABLE LIT
+A1B8 ; [.3F77.0020.0002] # YI SYLLABLE LIX
+A1B9 ; [.3F78.0020.0002] # YI SYLLABLE LI
+A1BA ; [.3F79.0020.0002] # YI SYLLABLE LIP
+A1BB ; [.3F7A.0020.0002] # YI SYLLABLE LIET
+A1BC ; [.3F7B.0020.0002] # YI SYLLABLE LIEX
+A1BD ; [.3F7C.0020.0002] # YI SYLLABLE LIE
+A1BE ; [.3F7D.0020.0002] # YI SYLLABLE LIEP
+A1BF ; [.3F7E.0020.0002] # YI SYLLABLE LAT
+A1C0 ; [.3F7F.0020.0002] # YI SYLLABLE LAX
+A1C1 ; [.3F80.0020.0002] # YI SYLLABLE LA
+A1C2 ; [.3F81.0020.0002] # YI SYLLABLE LAP
+A1C3 ; [.3F82.0020.0002] # YI SYLLABLE LUOT
+A1C4 ; [.3F83.0020.0002] # YI SYLLABLE LUOX
+A1C5 ; [.3F84.0020.0002] # YI SYLLABLE LUO
+A1C6 ; [.3F85.0020.0002] # YI SYLLABLE LUOP
+A1C7 ; [.3F86.0020.0002] # YI SYLLABLE LOT
+A1C8 ; [.3F87.0020.0002] # YI SYLLABLE LOX
+A1C9 ; [.3F88.0020.0002] # YI SYLLABLE LO
+A1CA ; [.3F89.0020.0002] # YI SYLLABLE LOP
+A1CB ; [.3F8A.0020.0002] # YI SYLLABLE LEX
+A1CC ; [.3F8B.0020.0002] # YI SYLLABLE LE
+A1CD ; [.3F8C.0020.0002] # YI SYLLABLE LEP
+A1CE ; [.3F8D.0020.0002] # YI SYLLABLE LUT
+A1CF ; [.3F8E.0020.0002] # YI SYLLABLE LUX
+A1D0 ; [.3F8F.0020.0002] # YI SYLLABLE LU
+A1D1 ; [.3F90.0020.0002] # YI SYLLABLE LUP
+A1D2 ; [.3F91.0020.0002] # YI SYLLABLE LURX
+A1D3 ; [.3F92.0020.0002] # YI SYLLABLE LUR
+A1D4 ; [.3F93.0020.0002] # YI SYLLABLE LYT
+A1D5 ; [.3F94.0020.0002] # YI SYLLABLE LYX
+A1D6 ; [.3F95.0020.0002] # YI SYLLABLE LY
+A1D7 ; [.3F96.0020.0002] # YI SYLLABLE LYP
+A1D8 ; [.3F97.0020.0002] # YI SYLLABLE LYRX
+A1D9 ; [.3F98.0020.0002] # YI SYLLABLE LYR
+A1DA ; [.3F99.0020.0002] # YI SYLLABLE GIT
+A1DB ; [.3F9A.0020.0002] # YI SYLLABLE GIX
+A1DC ; [.3F9B.0020.0002] # YI SYLLABLE GI
+A1DD ; [.3F9C.0020.0002] # YI SYLLABLE GIP
+A1DE ; [.3F9D.0020.0002] # YI SYLLABLE GIET
+A1DF ; [.3F9E.0020.0002] # YI SYLLABLE GIEX
+A1E0 ; [.3F9F.0020.0002] # YI SYLLABLE GIE
+A1E1 ; [.3FA0.0020.0002] # YI SYLLABLE GIEP
+A1E2 ; [.3FA1.0020.0002] # YI SYLLABLE GAT
+A1E3 ; [.3FA2.0020.0002] # YI SYLLABLE GAX
+A1E4 ; [.3FA3.0020.0002] # YI SYLLABLE GA
+A1E5 ; [.3FA4.0020.0002] # YI SYLLABLE GAP
+A1E6 ; [.3FA5.0020.0002] # YI SYLLABLE GUOT
+A1E7 ; [.3FA6.0020.0002] # YI SYLLABLE GUOX
+A1E8 ; [.3FA7.0020.0002] # YI SYLLABLE GUO
+A1E9 ; [.3FA8.0020.0002] # YI SYLLABLE GUOP
+A1EA ; [.3FA9.0020.0002] # YI SYLLABLE GOT
+A1EB ; [.3FAA.0020.0002] # YI SYLLABLE GOX
+A1EC ; [.3FAB.0020.0002] # YI SYLLABLE GO
+A1ED ; [.3FAC.0020.0002] # YI SYLLABLE GOP
+A1EE ; [.3FAD.0020.0002] # YI SYLLABLE GET
+A1EF ; [.3FAE.0020.0002] # YI SYLLABLE GEX
+A1F0 ; [.3FAF.0020.0002] # YI SYLLABLE GE
+A1F1 ; [.3FB0.0020.0002] # YI SYLLABLE GEP
+A1F2 ; [.3FB1.0020.0002] # YI SYLLABLE GUT
+A1F3 ; [.3FB2.0020.0002] # YI SYLLABLE GUX
+A1F4 ; [.3FB3.0020.0002] # YI SYLLABLE GU
+A1F5 ; [.3FB4.0020.0002] # YI SYLLABLE GUP
+A1F6 ; [.3FB5.0020.0002] # YI SYLLABLE GURX
+A1F7 ; [.3FB6.0020.0002] # YI SYLLABLE GUR
+A1F8 ; [.3FB7.0020.0002] # YI SYLLABLE KIT
+A1F9 ; [.3FB8.0020.0002] # YI SYLLABLE KIX
+A1FA ; [.3FB9.0020.0002] # YI SYLLABLE KI
+A1FB ; [.3FBA.0020.0002] # YI SYLLABLE KIP
+A1FC ; [.3FBB.0020.0002] # YI SYLLABLE KIEX
+A1FD ; [.3FBC.0020.0002] # YI SYLLABLE KIE
+A1FE ; [.3FBD.0020.0002] # YI SYLLABLE KIEP
+A1FF ; [.3FBE.0020.0002] # YI SYLLABLE KAT
+A200 ; [.3FBF.0020.0002] # YI SYLLABLE KAX
+A201 ; [.3FC0.0020.0002] # YI SYLLABLE KA
+A202 ; [.3FC1.0020.0002] # YI SYLLABLE KAP
+A203 ; [.3FC2.0020.0002] # YI SYLLABLE KUOX
+A204 ; [.3FC3.0020.0002] # YI SYLLABLE KUO
+A205 ; [.3FC4.0020.0002] # YI SYLLABLE KUOP
+A206 ; [.3FC5.0020.0002] # YI SYLLABLE KOT
+A207 ; [.3FC6.0020.0002] # YI SYLLABLE KOX
+A208 ; [.3FC7.0020.0002] # YI SYLLABLE KO
+A209 ; [.3FC8.0020.0002] # YI SYLLABLE KOP
+A20A ; [.3FC9.0020.0002] # YI SYLLABLE KET
+A20B ; [.3FCA.0020.0002] # YI SYLLABLE KEX
+A20C ; [.3FCB.0020.0002] # YI SYLLABLE KE
+A20D ; [.3FCC.0020.0002] # YI SYLLABLE KEP
+A20E ; [.3FCD.0020.0002] # YI SYLLABLE KUT
+A20F ; [.3FCE.0020.0002] # YI SYLLABLE KUX
+A210 ; [.3FCF.0020.0002] # YI SYLLABLE KU
+A211 ; [.3FD0.0020.0002] # YI SYLLABLE KUP
+A212 ; [.3FD1.0020.0002] # YI SYLLABLE KURX
+A213 ; [.3FD2.0020.0002] # YI SYLLABLE KUR
+A214 ; [.3FD3.0020.0002] # YI SYLLABLE GGIT
+A215 ; [.3FD4.0020.0002] # YI SYLLABLE GGIX
+A216 ; [.3FD5.0020.0002] # YI SYLLABLE GGI
+A217 ; [.3FD6.0020.0002] # YI SYLLABLE GGIEX
+A218 ; [.3FD7.0020.0002] # YI SYLLABLE GGIE
+A219 ; [.3FD8.0020.0002] # YI SYLLABLE GGIEP
+A21A ; [.3FD9.0020.0002] # YI SYLLABLE GGAT
+A21B ; [.3FDA.0020.0002] # YI SYLLABLE GGAX
+A21C ; [.3FDB.0020.0002] # YI SYLLABLE GGA
+A21D ; [.3FDC.0020.0002] # YI SYLLABLE GGAP
+A21E ; [.3FDD.0020.0002] # YI SYLLABLE GGUOT
+A21F ; [.3FDE.0020.0002] # YI SYLLABLE GGUOX
+A220 ; [.3FDF.0020.0002] # YI SYLLABLE GGUO
+A221 ; [.3FE0.0020.0002] # YI SYLLABLE GGUOP
+A222 ; [.3FE1.0020.0002] # YI SYLLABLE GGOT
+A223 ; [.3FE2.0020.0002] # YI SYLLABLE GGOX
+A224 ; [.3FE3.0020.0002] # YI SYLLABLE GGO
+A225 ; [.3FE4.0020.0002] # YI SYLLABLE GGOP
+A226 ; [.3FE5.0020.0002] # YI SYLLABLE GGET
+A227 ; [.3FE6.0020.0002] # YI SYLLABLE GGEX
+A228 ; [.3FE7.0020.0002] # YI SYLLABLE GGE
+A229 ; [.3FE8.0020.0002] # YI SYLLABLE GGEP
+A22A ; [.3FE9.0020.0002] # YI SYLLABLE GGUT
+A22B ; [.3FEA.0020.0002] # YI SYLLABLE GGUX
+A22C ; [.3FEB.0020.0002] # YI SYLLABLE GGU
+A22D ; [.3FEC.0020.0002] # YI SYLLABLE GGUP
+A22E ; [.3FED.0020.0002] # YI SYLLABLE GGURX
+A22F ; [.3FEE.0020.0002] # YI SYLLABLE GGUR
+A230 ; [.3FEF.0020.0002] # YI SYLLABLE MGIEX
+A231 ; [.3FF0.0020.0002] # YI SYLLABLE MGIE
+A232 ; [.3FF1.0020.0002] # YI SYLLABLE MGAT
+A233 ; [.3FF2.0020.0002] # YI SYLLABLE MGAX
+A234 ; [.3FF3.0020.0002] # YI SYLLABLE MGA
+A235 ; [.3FF4.0020.0002] # YI SYLLABLE MGAP
+A236 ; [.3FF5.0020.0002] # YI SYLLABLE MGUOX
+A237 ; [.3FF6.0020.0002] # YI SYLLABLE MGUO
+A238 ; [.3FF7.0020.0002] # YI SYLLABLE MGUOP
+A239 ; [.3FF8.0020.0002] # YI SYLLABLE MGOT
+A23A ; [.3FF9.0020.0002] # YI SYLLABLE MGOX
+A23B ; [.3FFA.0020.0002] # YI SYLLABLE MGO
+A23C ; [.3FFB.0020.0002] # YI SYLLABLE MGOP
+A23D ; [.3FFC.0020.0002] # YI SYLLABLE MGEX
+A23E ; [.3FFD.0020.0002] # YI SYLLABLE MGE
+A23F ; [.3FFE.0020.0002] # YI SYLLABLE MGEP
+A240 ; [.3FFF.0020.0002] # YI SYLLABLE MGUT
+A241 ; [.4000.0020.0002] # YI SYLLABLE MGUX
+A242 ; [.4001.0020.0002] # YI SYLLABLE MGU
+A243 ; [.4002.0020.0002] # YI SYLLABLE MGUP
+A244 ; [.4003.0020.0002] # YI SYLLABLE MGURX
+A245 ; [.4004.0020.0002] # YI SYLLABLE MGUR
+A246 ; [.4005.0020.0002] # YI SYLLABLE HXIT
+A247 ; [.4006.0020.0002] # YI SYLLABLE HXIX
+A248 ; [.4007.0020.0002] # YI SYLLABLE HXI
+A249 ; [.4008.0020.0002] # YI SYLLABLE HXIP
+A24A ; [.4009.0020.0002] # YI SYLLABLE HXIET
+A24B ; [.400A.0020.0002] # YI SYLLABLE HXIEX
+A24C ; [.400B.0020.0002] # YI SYLLABLE HXIE
+A24D ; [.400C.0020.0002] # YI SYLLABLE HXIEP
+A24E ; [.400D.0020.0002] # YI SYLLABLE HXAT
+A24F ; [.400E.0020.0002] # YI SYLLABLE HXAX
+A250 ; [.400F.0020.0002] # YI SYLLABLE HXA
+A251 ; [.4010.0020.0002] # YI SYLLABLE HXAP
+A252 ; [.4011.0020.0002] # YI SYLLABLE HXUOT
+A253 ; [.4012.0020.0002] # YI SYLLABLE HXUOX
+A254 ; [.4013.0020.0002] # YI SYLLABLE HXUO
+A255 ; [.4014.0020.0002] # YI SYLLABLE HXUOP
+A256 ; [.4015.0020.0002] # YI SYLLABLE HXOT
+A257 ; [.4016.0020.0002] # YI SYLLABLE HXOX
+A258 ; [.4017.0020.0002] # YI SYLLABLE HXO
+A259 ; [.4018.0020.0002] # YI SYLLABLE HXOP
+A25A ; [.4019.0020.0002] # YI SYLLABLE HXEX
+A25B ; [.401A.0020.0002] # YI SYLLABLE HXE
+A25C ; [.401B.0020.0002] # YI SYLLABLE HXEP
+A25D ; [.401C.0020.0002] # YI SYLLABLE NGIEX
+A25E ; [.401D.0020.0002] # YI SYLLABLE NGIE
+A25F ; [.401E.0020.0002] # YI SYLLABLE NGIEP
+A260 ; [.401F.0020.0002] # YI SYLLABLE NGAT
+A261 ; [.4020.0020.0002] # YI SYLLABLE NGAX
+A262 ; [.4021.0020.0002] # YI SYLLABLE NGA
+A263 ; [.4022.0020.0002] # YI SYLLABLE NGAP
+A264 ; [.4023.0020.0002] # YI SYLLABLE NGUOT
+A265 ; [.4024.0020.0002] # YI SYLLABLE NGUOX
+A266 ; [.4025.0020.0002] # YI SYLLABLE NGUO
+A267 ; [.4026.0020.0002] # YI SYLLABLE NGOT
+A268 ; [.4027.0020.0002] # YI SYLLABLE NGOX
+A269 ; [.4028.0020.0002] # YI SYLLABLE NGO
+A26A ; [.4029.0020.0002] # YI SYLLABLE NGOP
+A26B ; [.402A.0020.0002] # YI SYLLABLE NGEX
+A26C ; [.402B.0020.0002] # YI SYLLABLE NGE
+A26D ; [.402C.0020.0002] # YI SYLLABLE NGEP
+A26E ; [.402D.0020.0002] # YI SYLLABLE HIT
+A26F ; [.402E.0020.0002] # YI SYLLABLE HIEX
+A270 ; [.402F.0020.0002] # YI SYLLABLE HIE
+A271 ; [.4030.0020.0002] # YI SYLLABLE HAT
+A272 ; [.4031.0020.0002] # YI SYLLABLE HAX
+A273 ; [.4032.0020.0002] # YI SYLLABLE HA
+A274 ; [.4033.0020.0002] # YI SYLLABLE HAP
+A275 ; [.4034.0020.0002] # YI SYLLABLE HUOT
+A276 ; [.4035.0020.0002] # YI SYLLABLE HUOX
+A277 ; [.4036.0020.0002] # YI SYLLABLE HUO
+A278 ; [.4037.0020.0002] # YI SYLLABLE HUOP
+A279 ; [.4038.0020.0002] # YI SYLLABLE HOT
+A27A ; [.4039.0020.0002] # YI SYLLABLE HOX
+A27B ; [.403A.0020.0002] # YI SYLLABLE HO
+A27C ; [.403B.0020.0002] # YI SYLLABLE HOP
+A27D ; [.403C.0020.0002] # YI SYLLABLE HEX
+A27E ; [.403D.0020.0002] # YI SYLLABLE HE
+A27F ; [.403E.0020.0002] # YI SYLLABLE HEP
+A280 ; [.403F.0020.0002] # YI SYLLABLE WAT
+A281 ; [.4040.0020.0002] # YI SYLLABLE WAX
+A282 ; [.4041.0020.0002] # YI SYLLABLE WA
+A283 ; [.4042.0020.0002] # YI SYLLABLE WAP
+A284 ; [.4043.0020.0002] # YI SYLLABLE WUOX
+A285 ; [.4044.0020.0002] # YI SYLLABLE WUO
+A286 ; [.4045.0020.0002] # YI SYLLABLE WUOP
+A287 ; [.4046.0020.0002] # YI SYLLABLE WOX
+A288 ; [.4047.0020.0002] # YI SYLLABLE WO
+A289 ; [.4048.0020.0002] # YI SYLLABLE WOP
+A28A ; [.4049.0020.0002] # YI SYLLABLE WEX
+A28B ; [.404A.0020.0002] # YI SYLLABLE WE
+A28C ; [.404B.0020.0002] # YI SYLLABLE WEP
+A28D ; [.404C.0020.0002] # YI SYLLABLE ZIT
+A28E ; [.404D.0020.0002] # YI SYLLABLE ZIX
+A28F ; [.404E.0020.0002] # YI SYLLABLE ZI
+A290 ; [.404F.0020.0002] # YI SYLLABLE ZIP
+A291 ; [.4050.0020.0002] # YI SYLLABLE ZIEX
+A292 ; [.4051.0020.0002] # YI SYLLABLE ZIE
+A293 ; [.4052.0020.0002] # YI SYLLABLE ZIEP
+A294 ; [.4053.0020.0002] # YI SYLLABLE ZAT
+A295 ; [.4054.0020.0002] # YI SYLLABLE ZAX
+A296 ; [.4055.0020.0002] # YI SYLLABLE ZA
+A297 ; [.4056.0020.0002] # YI SYLLABLE ZAP
+A298 ; [.4057.0020.0002] # YI SYLLABLE ZUOX
+A299 ; [.4058.0020.0002] # YI SYLLABLE ZUO
+A29A ; [.4059.0020.0002] # YI SYLLABLE ZUOP
+A29B ; [.405A.0020.0002] # YI SYLLABLE ZOT
+A29C ; [.405B.0020.0002] # YI SYLLABLE ZOX
+A29D ; [.405C.0020.0002] # YI SYLLABLE ZO
+A29E ; [.405D.0020.0002] # YI SYLLABLE ZOP
+A29F ; [.405E.0020.0002] # YI SYLLABLE ZEX
+A2A0 ; [.405F.0020.0002] # YI SYLLABLE ZE
+A2A1 ; [.4060.0020.0002] # YI SYLLABLE ZEP
+A2A2 ; [.4061.0020.0002] # YI SYLLABLE ZUT
+A2A3 ; [.4062.0020.0002] # YI SYLLABLE ZUX
+A2A4 ; [.4063.0020.0002] # YI SYLLABLE ZU
+A2A5 ; [.4064.0020.0002] # YI SYLLABLE ZUP
+A2A6 ; [.4065.0020.0002] # YI SYLLABLE ZURX
+A2A7 ; [.4066.0020.0002] # YI SYLLABLE ZUR
+A2A8 ; [.4067.0020.0002] # YI SYLLABLE ZYT
+A2A9 ; [.4068.0020.0002] # YI SYLLABLE ZYX
+A2AA ; [.4069.0020.0002] # YI SYLLABLE ZY
+A2AB ; [.406A.0020.0002] # YI SYLLABLE ZYP
+A2AC ; [.406B.0020.0002] # YI SYLLABLE ZYRX
+A2AD ; [.406C.0020.0002] # YI SYLLABLE ZYR
+A2AE ; [.406D.0020.0002] # YI SYLLABLE CIT
+A2AF ; [.406E.0020.0002] # YI SYLLABLE CIX
+A2B0 ; [.406F.0020.0002] # YI SYLLABLE CI
+A2B1 ; [.4070.0020.0002] # YI SYLLABLE CIP
+A2B2 ; [.4071.0020.0002] # YI SYLLABLE CIET
+A2B3 ; [.4072.0020.0002] # YI SYLLABLE CIEX
+A2B4 ; [.4073.0020.0002] # YI SYLLABLE CIE
+A2B5 ; [.4074.0020.0002] # YI SYLLABLE CIEP
+A2B6 ; [.4075.0020.0002] # YI SYLLABLE CAT
+A2B7 ; [.4076.0020.0002] # YI SYLLABLE CAX
+A2B8 ; [.4077.0020.0002] # YI SYLLABLE CA
+A2B9 ; [.4078.0020.0002] # YI SYLLABLE CAP
+A2BA ; [.4079.0020.0002] # YI SYLLABLE CUOX
+A2BB ; [.407A.0020.0002] # YI SYLLABLE CUO
+A2BC ; [.407B.0020.0002] # YI SYLLABLE CUOP
+A2BD ; [.407C.0020.0002] # YI SYLLABLE COT
+A2BE ; [.407D.0020.0002] # YI SYLLABLE COX
+A2BF ; [.407E.0020.0002] # YI SYLLABLE CO
+A2C0 ; [.407F.0020.0002] # YI SYLLABLE COP
+A2C1 ; [.4080.0020.0002] # YI SYLLABLE CEX
+A2C2 ; [.4081.0020.0002] # YI SYLLABLE CE
+A2C3 ; [.4082.0020.0002] # YI SYLLABLE CEP
+A2C4 ; [.4083.0020.0002] # YI SYLLABLE CUT
+A2C5 ; [.4084.0020.0002] # YI SYLLABLE CUX
+A2C6 ; [.4085.0020.0002] # YI SYLLABLE CU
+A2C7 ; [.4086.0020.0002] # YI SYLLABLE CUP
+A2C8 ; [.4087.0020.0002] # YI SYLLABLE CURX
+A2C9 ; [.4088.0020.0002] # YI SYLLABLE CUR
+A2CA ; [.4089.0020.0002] # YI SYLLABLE CYT
+A2CB ; [.408A.0020.0002] # YI SYLLABLE CYX
+A2CC ; [.408B.0020.0002] # YI SYLLABLE CY
+A2CD ; [.408C.0020.0002] # YI SYLLABLE CYP
+A2CE ; [.408D.0020.0002] # YI SYLLABLE CYRX
+A2CF ; [.408E.0020.0002] # YI SYLLABLE CYR
+A2D0 ; [.408F.0020.0002] # YI SYLLABLE ZZIT
+A2D1 ; [.4090.0020.0002] # YI SYLLABLE ZZIX
+A2D2 ; [.4091.0020.0002] # YI SYLLABLE ZZI
+A2D3 ; [.4092.0020.0002] # YI SYLLABLE ZZIP
+A2D4 ; [.4093.0020.0002] # YI SYLLABLE ZZIET
+A2D5 ; [.4094.0020.0002] # YI SYLLABLE ZZIEX
+A2D6 ; [.4095.0020.0002] # YI SYLLABLE ZZIE
+A2D7 ; [.4096.0020.0002] # YI SYLLABLE ZZIEP
+A2D8 ; [.4097.0020.0002] # YI SYLLABLE ZZAT
+A2D9 ; [.4098.0020.0002] # YI SYLLABLE ZZAX
+A2DA ; [.4099.0020.0002] # YI SYLLABLE ZZA
+A2DB ; [.409A.0020.0002] # YI SYLLABLE ZZAP
+A2DC ; [.409B.0020.0002] # YI SYLLABLE ZZOX
+A2DD ; [.409C.0020.0002] # YI SYLLABLE ZZO
+A2DE ; [.409D.0020.0002] # YI SYLLABLE ZZOP
+A2DF ; [.409E.0020.0002] # YI SYLLABLE ZZEX
+A2E0 ; [.409F.0020.0002] # YI SYLLABLE ZZE
+A2E1 ; [.40A0.0020.0002] # YI SYLLABLE ZZEP
+A2E2 ; [.40A1.0020.0002] # YI SYLLABLE ZZUX
+A2E3 ; [.40A2.0020.0002] # YI SYLLABLE ZZU
+A2E4 ; [.40A3.0020.0002] # YI SYLLABLE ZZUP
+A2E5 ; [.40A4.0020.0002] # YI SYLLABLE ZZURX
+A2E6 ; [.40A5.0020.0002] # YI SYLLABLE ZZUR
+A2E7 ; [.40A6.0020.0002] # YI SYLLABLE ZZYT
+A2E8 ; [.40A7.0020.0002] # YI SYLLABLE ZZYX
+A2E9 ; [.40A8.0020.0002] # YI SYLLABLE ZZY
+A2EA ; [.40A9.0020.0002] # YI SYLLABLE ZZYP
+A2EB ; [.40AA.0020.0002] # YI SYLLABLE ZZYRX
+A2EC ; [.40AB.0020.0002] # YI SYLLABLE ZZYR
+A2ED ; [.40AC.0020.0002] # YI SYLLABLE NZIT
+A2EE ; [.40AD.0020.0002] # YI SYLLABLE NZIX
+A2EF ; [.40AE.0020.0002] # YI SYLLABLE NZI
+A2F0 ; [.40AF.0020.0002] # YI SYLLABLE NZIP
+A2F1 ; [.40B0.0020.0002] # YI SYLLABLE NZIEX
+A2F2 ; [.40B1.0020.0002] # YI SYLLABLE NZIE
+A2F3 ; [.40B2.0020.0002] # YI SYLLABLE NZIEP
+A2F4 ; [.40B3.0020.0002] # YI SYLLABLE NZAT
+A2F5 ; [.40B4.0020.0002] # YI SYLLABLE NZAX
+A2F6 ; [.40B5.0020.0002] # YI SYLLABLE NZA
+A2F7 ; [.40B6.0020.0002] # YI SYLLABLE NZAP
+A2F8 ; [.40B7.0020.0002] # YI SYLLABLE NZUOX
+A2F9 ; [.40B8.0020.0002] # YI SYLLABLE NZUO
+A2FA ; [.40B9.0020.0002] # YI SYLLABLE NZOX
+A2FB ; [.40BA.0020.0002] # YI SYLLABLE NZOP
+A2FC ; [.40BB.0020.0002] # YI SYLLABLE NZEX
+A2FD ; [.40BC.0020.0002] # YI SYLLABLE NZE
+A2FE ; [.40BD.0020.0002] # YI SYLLABLE NZUX
+A2FF ; [.40BE.0020.0002] # YI SYLLABLE NZU
+A300 ; [.40BF.0020.0002] # YI SYLLABLE NZUP
+A301 ; [.40C0.0020.0002] # YI SYLLABLE NZURX
+A302 ; [.40C1.0020.0002] # YI SYLLABLE NZUR
+A303 ; [.40C2.0020.0002] # YI SYLLABLE NZYT
+A304 ; [.40C3.0020.0002] # YI SYLLABLE NZYX
+A305 ; [.40C4.0020.0002] # YI SYLLABLE NZY
+A306 ; [.40C5.0020.0002] # YI SYLLABLE NZYP
+A307 ; [.40C6.0020.0002] # YI SYLLABLE NZYRX
+A308 ; [.40C7.0020.0002] # YI SYLLABLE NZYR
+A309 ; [.40C8.0020.0002] # YI SYLLABLE SIT
+A30A ; [.40C9.0020.0002] # YI SYLLABLE SIX
+A30B ; [.40CA.0020.0002] # YI SYLLABLE SI
+A30C ; [.40CB.0020.0002] # YI SYLLABLE SIP
+A30D ; [.40CC.0020.0002] # YI SYLLABLE SIEX
+A30E ; [.40CD.0020.0002] # YI SYLLABLE SIE
+A30F ; [.40CE.0020.0002] # YI SYLLABLE SIEP
+A310 ; [.40CF.0020.0002] # YI SYLLABLE SAT
+A311 ; [.40D0.0020.0002] # YI SYLLABLE SAX
+A312 ; [.40D1.0020.0002] # YI SYLLABLE SA
+A313 ; [.40D2.0020.0002] # YI SYLLABLE SAP
+A314 ; [.40D3.0020.0002] # YI SYLLABLE SUOX
+A315 ; [.40D4.0020.0002] # YI SYLLABLE SUO
+A316 ; [.40D5.0020.0002] # YI SYLLABLE SUOP
+A317 ; [.40D6.0020.0002] # YI SYLLABLE SOT
+A318 ; [.40D7.0020.0002] # YI SYLLABLE SOX
+A319 ; [.40D8.0020.0002] # YI SYLLABLE SO
+A31A ; [.40D9.0020.0002] # YI SYLLABLE SOP
+A31B ; [.40DA.0020.0002] # YI SYLLABLE SEX
+A31C ; [.40DB.0020.0002] # YI SYLLABLE SE
+A31D ; [.40DC.0020.0002] # YI SYLLABLE SEP
+A31E ; [.40DD.0020.0002] # YI SYLLABLE SUT
+A31F ; [.40DE.0020.0002] # YI SYLLABLE SUX
+A320 ; [.40DF.0020.0002] # YI SYLLABLE SU
+A321 ; [.40E0.0020.0002] # YI SYLLABLE SUP
+A322 ; [.40E1.0020.0002] # YI SYLLABLE SURX
+A323 ; [.40E2.0020.0002] # YI SYLLABLE SUR
+A324 ; [.40E3.0020.0002] # YI SYLLABLE SYT
+A325 ; [.40E4.0020.0002] # YI SYLLABLE SYX
+A326 ; [.40E5.0020.0002] # YI SYLLABLE SY
+A327 ; [.40E6.0020.0002] # YI SYLLABLE SYP
+A328 ; [.40E7.0020.0002] # YI SYLLABLE SYRX
+A329 ; [.40E8.0020.0002] # YI SYLLABLE SYR
+A32A ; [.40E9.0020.0002] # YI SYLLABLE SSIT
+A32B ; [.40EA.0020.0002] # YI SYLLABLE SSIX
+A32C ; [.40EB.0020.0002] # YI SYLLABLE SSI
+A32D ; [.40EC.0020.0002] # YI SYLLABLE SSIP
+A32E ; [.40ED.0020.0002] # YI SYLLABLE SSIEX
+A32F ; [.40EE.0020.0002] # YI SYLLABLE SSIE
+A330 ; [.40EF.0020.0002] # YI SYLLABLE SSIEP
+A331 ; [.40F0.0020.0002] # YI SYLLABLE SSAT
+A332 ; [.40F1.0020.0002] # YI SYLLABLE SSAX
+A333 ; [.40F2.0020.0002] # YI SYLLABLE SSA
+A334 ; [.40F3.0020.0002] # YI SYLLABLE SSAP
+A335 ; [.40F4.0020.0002] # YI SYLLABLE SSOT
+A336 ; [.40F5.0020.0002] # YI SYLLABLE SSOX
+A337 ; [.40F6.0020.0002] # YI SYLLABLE SSO
+A338 ; [.40F7.0020.0002] # YI SYLLABLE SSOP
+A339 ; [.40F8.0020.0002] # YI SYLLABLE SSEX
+A33A ; [.40F9.0020.0002] # YI SYLLABLE SSE
+A33B ; [.40FA.0020.0002] # YI SYLLABLE SSEP
+A33C ; [.40FB.0020.0002] # YI SYLLABLE SSUT
+A33D ; [.40FC.0020.0002] # YI SYLLABLE SSUX
+A33E ; [.40FD.0020.0002] # YI SYLLABLE SSU
+A33F ; [.40FE.0020.0002] # YI SYLLABLE SSUP
+A340 ; [.40FF.0020.0002] # YI SYLLABLE SSYT
+A341 ; [.4100.0020.0002] # YI SYLLABLE SSYX
+A342 ; [.4101.0020.0002] # YI SYLLABLE SSY
+A343 ; [.4102.0020.0002] # YI SYLLABLE SSYP
+A344 ; [.4103.0020.0002] # YI SYLLABLE SSYRX
+A345 ; [.4104.0020.0002] # YI SYLLABLE SSYR
+A346 ; [.4105.0020.0002] # YI SYLLABLE ZHAT
+A347 ; [.4106.0020.0002] # YI SYLLABLE ZHAX
+A348 ; [.4107.0020.0002] # YI SYLLABLE ZHA
+A349 ; [.4108.0020.0002] # YI SYLLABLE ZHAP
+A34A ; [.4109.0020.0002] # YI SYLLABLE ZHUOX
+A34B ; [.410A.0020.0002] # YI SYLLABLE ZHUO
+A34C ; [.410B.0020.0002] # YI SYLLABLE ZHUOP
+A34D ; [.410C.0020.0002] # YI SYLLABLE ZHOT
+A34E ; [.410D.0020.0002] # YI SYLLABLE ZHOX
+A34F ; [.410E.0020.0002] # YI SYLLABLE ZHO
+A350 ; [.410F.0020.0002] # YI SYLLABLE ZHOP
+A351 ; [.4110.0020.0002] # YI SYLLABLE ZHET
+A352 ; [.4111.0020.0002] # YI SYLLABLE ZHEX
+A353 ; [.4112.0020.0002] # YI SYLLABLE ZHE
+A354 ; [.4113.0020.0002] # YI SYLLABLE ZHEP
+A355 ; [.4114.0020.0002] # YI SYLLABLE ZHUT
+A356 ; [.4115.0020.0002] # YI SYLLABLE ZHUX
+A357 ; [.4116.0020.0002] # YI SYLLABLE ZHU
+A358 ; [.4117.0020.0002] # YI SYLLABLE ZHUP
+A359 ; [.4118.0020.0002] # YI SYLLABLE ZHURX
+A35A ; [.4119.0020.0002] # YI SYLLABLE ZHUR
+A35B ; [.411A.0020.0002] # YI SYLLABLE ZHYT
+A35C ; [.411B.0020.0002] # YI SYLLABLE ZHYX
+A35D ; [.411C.0020.0002] # YI SYLLABLE ZHY
+A35E ; [.411D.0020.0002] # YI SYLLABLE ZHYP
+A35F ; [.411E.0020.0002] # YI SYLLABLE ZHYRX
+A360 ; [.411F.0020.0002] # YI SYLLABLE ZHYR
+A361 ; [.4120.0020.0002] # YI SYLLABLE CHAT
+A362 ; [.4121.0020.0002] # YI SYLLABLE CHAX
+A363 ; [.4122.0020.0002] # YI SYLLABLE CHA
+A364 ; [.4123.0020.0002] # YI SYLLABLE CHAP
+A365 ; [.4124.0020.0002] # YI SYLLABLE CHUOT
+A366 ; [.4125.0020.0002] # YI SYLLABLE CHUOX
+A367 ; [.4126.0020.0002] # YI SYLLABLE CHUO
+A368 ; [.4127.0020.0002] # YI SYLLABLE CHUOP
+A369 ; [.4128.0020.0002] # YI SYLLABLE CHOT
+A36A ; [.4129.0020.0002] # YI SYLLABLE CHOX
+A36B ; [.412A.0020.0002] # YI SYLLABLE CHO
+A36C ; [.412B.0020.0002] # YI SYLLABLE CHOP
+A36D ; [.412C.0020.0002] # YI SYLLABLE CHET
+A36E ; [.412D.0020.0002] # YI SYLLABLE CHEX
+A36F ; [.412E.0020.0002] # YI SYLLABLE CHE
+A370 ; [.412F.0020.0002] # YI SYLLABLE CHEP
+A371 ; [.4130.0020.0002] # YI SYLLABLE CHUX
+A372 ; [.4131.0020.0002] # YI SYLLABLE CHU
+A373 ; [.4132.0020.0002] # YI SYLLABLE CHUP
+A374 ; [.4133.0020.0002] # YI SYLLABLE CHURX
+A375 ; [.4134.0020.0002] # YI SYLLABLE CHUR
+A376 ; [.4135.0020.0002] # YI SYLLABLE CHYT
+A377 ; [.4136.0020.0002] # YI SYLLABLE CHYX
+A378 ; [.4137.0020.0002] # YI SYLLABLE CHY
+A379 ; [.4138.0020.0002] # YI SYLLABLE CHYP
+A37A ; [.4139.0020.0002] # YI SYLLABLE CHYRX
+A37B ; [.413A.0020.0002] # YI SYLLABLE CHYR
+A37C ; [.413B.0020.0002] # YI SYLLABLE RRAX
+A37D ; [.413C.0020.0002] # YI SYLLABLE RRA
+A37E ; [.413D.0020.0002] # YI SYLLABLE RRUOX
+A37F ; [.413E.0020.0002] # YI SYLLABLE RRUO
+A380 ; [.413F.0020.0002] # YI SYLLABLE RROT
+A381 ; [.4140.0020.0002] # YI SYLLABLE RROX
+A382 ; [.4141.0020.0002] # YI SYLLABLE RRO
+A383 ; [.4142.0020.0002] # YI SYLLABLE RROP
+A384 ; [.4143.0020.0002] # YI SYLLABLE RRET
+A385 ; [.4144.0020.0002] # YI SYLLABLE RREX
+A386 ; [.4145.0020.0002] # YI SYLLABLE RRE
+A387 ; [.4146.0020.0002] # YI SYLLABLE RREP
+A388 ; [.4147.0020.0002] # YI SYLLABLE RRUT
+A389 ; [.4148.0020.0002] # YI SYLLABLE RRUX
+A38A ; [.4149.0020.0002] # YI SYLLABLE RRU
+A38B ; [.414A.0020.0002] # YI SYLLABLE RRUP
+A38C ; [.414B.0020.0002] # YI SYLLABLE RRURX
+A38D ; [.414C.0020.0002] # YI SYLLABLE RRUR
+A38E ; [.414D.0020.0002] # YI SYLLABLE RRYT
+A38F ; [.414E.0020.0002] # YI SYLLABLE RRYX
+A390 ; [.414F.0020.0002] # YI SYLLABLE RRY
+A391 ; [.4150.0020.0002] # YI SYLLABLE RRYP
+A392 ; [.4151.0020.0002] # YI SYLLABLE RRYRX
+A393 ; [.4152.0020.0002] # YI SYLLABLE RRYR
+A394 ; [.4153.0020.0002] # YI SYLLABLE NRAT
+A395 ; [.4154.0020.0002] # YI SYLLABLE NRAX
+A396 ; [.4155.0020.0002] # YI SYLLABLE NRA
+A397 ; [.4156.0020.0002] # YI SYLLABLE NRAP
+A398 ; [.4157.0020.0002] # YI SYLLABLE NROX
+A399 ; [.4158.0020.0002] # YI SYLLABLE NRO
+A39A ; [.4159.0020.0002] # YI SYLLABLE NROP
+A39B ; [.415A.0020.0002] # YI SYLLABLE NRET
+A39C ; [.415B.0020.0002] # YI SYLLABLE NREX
+A39D ; [.415C.0020.0002] # YI SYLLABLE NRE
+A39E ; [.415D.0020.0002] # YI SYLLABLE NREP
+A39F ; [.415E.0020.0002] # YI SYLLABLE NRUT
+A3A0 ; [.415F.0020.0002] # YI SYLLABLE NRUX
+A3A1 ; [.4160.0020.0002] # YI SYLLABLE NRU
+A3A2 ; [.4161.0020.0002] # YI SYLLABLE NRUP
+A3A3 ; [.4162.0020.0002] # YI SYLLABLE NRURX
+A3A4 ; [.4163.0020.0002] # YI SYLLABLE NRUR
+A3A5 ; [.4164.0020.0002] # YI SYLLABLE NRYT
+A3A6 ; [.4165.0020.0002] # YI SYLLABLE NRYX
+A3A7 ; [.4166.0020.0002] # YI SYLLABLE NRY
+A3A8 ; [.4167.0020.0002] # YI SYLLABLE NRYP
+A3A9 ; [.4168.0020.0002] # YI SYLLABLE NRYRX
+A3AA ; [.4169.0020.0002] # YI SYLLABLE NRYR
+A3AB ; [.416A.0020.0002] # YI SYLLABLE SHAT
+A3AC ; [.416B.0020.0002] # YI SYLLABLE SHAX
+A3AD ; [.416C.0020.0002] # YI SYLLABLE SHA
+A3AE ; [.416D.0020.0002] # YI SYLLABLE SHAP
+A3AF ; [.416E.0020.0002] # YI SYLLABLE SHUOX
+A3B0 ; [.416F.0020.0002] # YI SYLLABLE SHUO
+A3B1 ; [.4170.0020.0002] # YI SYLLABLE SHUOP
+A3B2 ; [.4171.0020.0002] # YI SYLLABLE SHOT
+A3B3 ; [.4172.0020.0002] # YI SYLLABLE SHOX
+A3B4 ; [.4173.0020.0002] # YI SYLLABLE SHO
+A3B5 ; [.4174.0020.0002] # YI SYLLABLE SHOP
+A3B6 ; [.4175.0020.0002] # YI SYLLABLE SHET
+A3B7 ; [.4176.0020.0002] # YI SYLLABLE SHEX
+A3B8 ; [.4177.0020.0002] # YI SYLLABLE SHE
+A3B9 ; [.4178.0020.0002] # YI SYLLABLE SHEP
+A3BA ; [.4179.0020.0002] # YI SYLLABLE SHUT
+A3BB ; [.417A.0020.0002] # YI SYLLABLE SHUX
+A3BC ; [.417B.0020.0002] # YI SYLLABLE SHU
+A3BD ; [.417C.0020.0002] # YI SYLLABLE SHUP
+A3BE ; [.417D.0020.0002] # YI SYLLABLE SHURX
+A3BF ; [.417E.0020.0002] # YI SYLLABLE SHUR
+A3C0 ; [.417F.0020.0002] # YI SYLLABLE SHYT
+A3C1 ; [.4180.0020.0002] # YI SYLLABLE SHYX
+A3C2 ; [.4181.0020.0002] # YI SYLLABLE SHY
+A3C3 ; [.4182.0020.0002] # YI SYLLABLE SHYP
+A3C4 ; [.4183.0020.0002] # YI SYLLABLE SHYRX
+A3C5 ; [.4184.0020.0002] # YI SYLLABLE SHYR
+A3C6 ; [.4185.0020.0002] # YI SYLLABLE RAT
+A3C7 ; [.4186.0020.0002] # YI SYLLABLE RAX
+A3C8 ; [.4187.0020.0002] # YI SYLLABLE RA
+A3C9 ; [.4188.0020.0002] # YI SYLLABLE RAP
+A3CA ; [.4189.0020.0002] # YI SYLLABLE RUOX
+A3CB ; [.418A.0020.0002] # YI SYLLABLE RUO
+A3CC ; [.418B.0020.0002] # YI SYLLABLE RUOP
+A3CD ; [.418C.0020.0002] # YI SYLLABLE ROT
+A3CE ; [.418D.0020.0002] # YI SYLLABLE ROX
+A3CF ; [.418E.0020.0002] # YI SYLLABLE RO
+A3D0 ; [.418F.0020.0002] # YI SYLLABLE ROP
+A3D1 ; [.4190.0020.0002] # YI SYLLABLE REX
+A3D2 ; [.4191.0020.0002] # YI SYLLABLE RE
+A3D3 ; [.4192.0020.0002] # YI SYLLABLE REP
+A3D4 ; [.4193.0020.0002] # YI SYLLABLE RUT
+A3D5 ; [.4194.0020.0002] # YI SYLLABLE RUX
+A3D6 ; [.4195.0020.0002] # YI SYLLABLE RU
+A3D7 ; [.4196.0020.0002] # YI SYLLABLE RUP
+A3D8 ; [.4197.0020.0002] # YI SYLLABLE RURX
+A3D9 ; [.4198.0020.0002] # YI SYLLABLE RUR
+A3DA ; [.4199.0020.0002] # YI SYLLABLE RYT
+A3DB ; [.419A.0020.0002] # YI SYLLABLE RYX
+A3DC ; [.419B.0020.0002] # YI SYLLABLE RY
+A3DD ; [.419C.0020.0002] # YI SYLLABLE RYP
+A3DE ; [.419D.0020.0002] # YI SYLLABLE RYRX
+A3DF ; [.419E.0020.0002] # YI SYLLABLE RYR
+A3E0 ; [.419F.0020.0002] # YI SYLLABLE JIT
+A3E1 ; [.41A0.0020.0002] # YI SYLLABLE JIX
+A3E2 ; [.41A1.0020.0002] # YI SYLLABLE JI
+A3E3 ; [.41A2.0020.0002] # YI SYLLABLE JIP
+A3E4 ; [.41A3.0020.0002] # YI SYLLABLE JIET
+A3E5 ; [.41A4.0020.0002] # YI SYLLABLE JIEX
+A3E6 ; [.41A5.0020.0002] # YI SYLLABLE JIE
+A3E7 ; [.41A6.0020.0002] # YI SYLLABLE JIEP
+A3E8 ; [.41A7.0020.0002] # YI SYLLABLE JUOT
+A3E9 ; [.41A8.0020.0002] # YI SYLLABLE JUOX
+A3EA ; [.41A9.0020.0002] # YI SYLLABLE JUO
+A3EB ; [.41AA.0020.0002] # YI SYLLABLE JUOP
+A3EC ; [.41AB.0020.0002] # YI SYLLABLE JOT
+A3ED ; [.41AC.0020.0002] # YI SYLLABLE JOX
+A3EE ; [.41AD.0020.0002] # YI SYLLABLE JO
+A3EF ; [.41AE.0020.0002] # YI SYLLABLE JOP
+A3F0 ; [.41AF.0020.0002] # YI SYLLABLE JUT
+A3F1 ; [.41B0.0020.0002] # YI SYLLABLE JUX
+A3F2 ; [.41B1.0020.0002] # YI SYLLABLE JU
+A3F3 ; [.41B2.0020.0002] # YI SYLLABLE JUP
+A3F4 ; [.41B3.0020.0002] # YI SYLLABLE JURX
+A3F5 ; [.41B4.0020.0002] # YI SYLLABLE JUR
+A3F6 ; [.41B5.0020.0002] # YI SYLLABLE JYT
+A3F7 ; [.41B6.0020.0002] # YI SYLLABLE JYX
+A3F8 ; [.41B7.0020.0002] # YI SYLLABLE JY
+A3F9 ; [.41B8.0020.0002] # YI SYLLABLE JYP
+A3FA ; [.41B9.0020.0002] # YI SYLLABLE JYRX
+A3FB ; [.41BA.0020.0002] # YI SYLLABLE JYR
+A3FC ; [.41BB.0020.0002] # YI SYLLABLE QIT
+A3FD ; [.41BC.0020.0002] # YI SYLLABLE QIX
+A3FE ; [.41BD.0020.0002] # YI SYLLABLE QI
+A3FF ; [.41BE.0020.0002] # YI SYLLABLE QIP
+A400 ; [.41BF.0020.0002] # YI SYLLABLE QIET
+A401 ; [.41C0.0020.0002] # YI SYLLABLE QIEX
+A402 ; [.41C1.0020.0002] # YI SYLLABLE QIE
+A403 ; [.41C2.0020.0002] # YI SYLLABLE QIEP
+A404 ; [.41C3.0020.0002] # YI SYLLABLE QUOT
+A405 ; [.41C4.0020.0002] # YI SYLLABLE QUOX
+A406 ; [.41C5.0020.0002] # YI SYLLABLE QUO
+A407 ; [.41C6.0020.0002] # YI SYLLABLE QUOP
+A408 ; [.41C7.0020.0002] # YI SYLLABLE QOT
+A409 ; [.41C8.0020.0002] # YI SYLLABLE QOX
+A40A ; [.41C9.0020.0002] # YI SYLLABLE QO
+A40B ; [.41CA.0020.0002] # YI SYLLABLE QOP
+A40C ; [.41CB.0020.0002] # YI SYLLABLE QUT
+A40D ; [.41CC.0020.0002] # YI SYLLABLE QUX
+A40E ; [.41CD.0020.0002] # YI SYLLABLE QU
+A40F ; [.41CE.0020.0002] # YI SYLLABLE QUP
+A410 ; [.41CF.0020.0002] # YI SYLLABLE QURX
+A411 ; [.41D0.0020.0002] # YI SYLLABLE QUR
+A412 ; [.41D1.0020.0002] # YI SYLLABLE QYT
+A413 ; [.41D2.0020.0002] # YI SYLLABLE QYX
+A414 ; [.41D3.0020.0002] # YI SYLLABLE QY
+A415 ; [.41D4.0020.0002] # YI SYLLABLE QYP
+A416 ; [.41D5.0020.0002] # YI SYLLABLE QYRX
+A417 ; [.41D6.0020.0002] # YI SYLLABLE QYR
+A418 ; [.41D7.0020.0002] # YI SYLLABLE JJIT
+A419 ; [.41D8.0020.0002] # YI SYLLABLE JJIX
+A41A ; [.41D9.0020.0002] # YI SYLLABLE JJI
+A41B ; [.41DA.0020.0002] # YI SYLLABLE JJIP
+A41C ; [.41DB.0020.0002] # YI SYLLABLE JJIET
+A41D ; [.41DC.0020.0002] # YI SYLLABLE JJIEX
+A41E ; [.41DD.0020.0002] # YI SYLLABLE JJIE
+A41F ; [.41DE.0020.0002] # YI SYLLABLE JJIEP
+A420 ; [.41DF.0020.0002] # YI SYLLABLE JJUOX
+A421 ; [.41E0.0020.0002] # YI SYLLABLE JJUO
+A422 ; [.41E1.0020.0002] # YI SYLLABLE JJUOP
+A423 ; [.41E2.0020.0002] # YI SYLLABLE JJOT
+A424 ; [.41E3.0020.0002] # YI SYLLABLE JJOX
+A425 ; [.41E4.0020.0002] # YI SYLLABLE JJO
+A426 ; [.41E5.0020.0002] # YI SYLLABLE JJOP
+A427 ; [.41E6.0020.0002] # YI SYLLABLE JJUT
+A428 ; [.41E7.0020.0002] # YI SYLLABLE JJUX
+A429 ; [.41E8.0020.0002] # YI SYLLABLE JJU
+A42A ; [.41E9.0020.0002] # YI SYLLABLE JJUP
+A42B ; [.41EA.0020.0002] # YI SYLLABLE JJURX
+A42C ; [.41EB.0020.0002] # YI SYLLABLE JJUR
+A42D ; [.41EC.0020.0002] # YI SYLLABLE JJYT
+A42E ; [.41ED.0020.0002] # YI SYLLABLE JJYX
+A42F ; [.41EE.0020.0002] # YI SYLLABLE JJY
+A430 ; [.41EF.0020.0002] # YI SYLLABLE JJYP
+A431 ; [.41F0.0020.0002] # YI SYLLABLE NJIT
+A432 ; [.41F1.0020.0002] # YI SYLLABLE NJIX
+A433 ; [.41F2.0020.0002] # YI SYLLABLE NJI
+A434 ; [.41F3.0020.0002] # YI SYLLABLE NJIP
+A435 ; [.41F4.0020.0002] # YI SYLLABLE NJIET
+A436 ; [.41F5.0020.0002] # YI SYLLABLE NJIEX
+A437 ; [.41F6.0020.0002] # YI SYLLABLE NJIE
+A438 ; [.41F7.0020.0002] # YI SYLLABLE NJIEP
+A439 ; [.41F8.0020.0002] # YI SYLLABLE NJUOX
+A43A ; [.41F9.0020.0002] # YI SYLLABLE NJUO
+A43B ; [.41FA.0020.0002] # YI SYLLABLE NJOT
+A43C ; [.41FB.0020.0002] # YI SYLLABLE NJOX
+A43D ; [.41FC.0020.0002] # YI SYLLABLE NJO
+A43E ; [.41FD.0020.0002] # YI SYLLABLE NJOP
+A43F ; [.41FE.0020.0002] # YI SYLLABLE NJUX
+A440 ; [.41FF.0020.0002] # YI SYLLABLE NJU
+A441 ; [.4200.0020.0002] # YI SYLLABLE NJUP
+A442 ; [.4201.0020.0002] # YI SYLLABLE NJURX
+A443 ; [.4202.0020.0002] # YI SYLLABLE NJUR
+A444 ; [.4203.0020.0002] # YI SYLLABLE NJYT
+A445 ; [.4204.0020.0002] # YI SYLLABLE NJYX
+A446 ; [.4205.0020.0002] # YI SYLLABLE NJY
+A447 ; [.4206.0020.0002] # YI SYLLABLE NJYP
+A448 ; [.4207.0020.0002] # YI SYLLABLE NJYRX
+A449 ; [.4208.0020.0002] # YI SYLLABLE NJYR
+A44A ; [.4209.0020.0002] # YI SYLLABLE NYIT
+A44B ; [.420A.0020.0002] # YI SYLLABLE NYIX
+A44C ; [.420B.0020.0002] # YI SYLLABLE NYI
+A44D ; [.420C.0020.0002] # YI SYLLABLE NYIP
+A44E ; [.420D.0020.0002] # YI SYLLABLE NYIET
+A44F ; [.420E.0020.0002] # YI SYLLABLE NYIEX
+A450 ; [.420F.0020.0002] # YI SYLLABLE NYIE
+A451 ; [.4210.0020.0002] # YI SYLLABLE NYIEP
+A452 ; [.4211.0020.0002] # YI SYLLABLE NYUOX
+A453 ; [.4212.0020.0002] # YI SYLLABLE NYUO
+A454 ; [.4213.0020.0002] # YI SYLLABLE NYUOP
+A455 ; [.4214.0020.0002] # YI SYLLABLE NYOT
+A456 ; [.4215.0020.0002] # YI SYLLABLE NYOX
+A457 ; [.4216.0020.0002] # YI SYLLABLE NYO
+A458 ; [.4217.0020.0002] # YI SYLLABLE NYOP
+A459 ; [.4218.0020.0002] # YI SYLLABLE NYUT
+A45A ; [.4219.0020.0002] # YI SYLLABLE NYUX
+A45B ; [.421A.0020.0002] # YI SYLLABLE NYU
+A45C ; [.421B.0020.0002] # YI SYLLABLE NYUP
+A45D ; [.421C.0020.0002] # YI SYLLABLE XIT
+A45E ; [.421D.0020.0002] # YI SYLLABLE XIX
+A45F ; [.421E.0020.0002] # YI SYLLABLE XI
+A460 ; [.421F.0020.0002] # YI SYLLABLE XIP
+A461 ; [.4220.0020.0002] # YI SYLLABLE XIET
+A462 ; [.4221.0020.0002] # YI SYLLABLE XIEX
+A463 ; [.4222.0020.0002] # YI SYLLABLE XIE
+A464 ; [.4223.0020.0002] # YI SYLLABLE XIEP
+A465 ; [.4224.0020.0002] # YI SYLLABLE XUOX
+A466 ; [.4225.0020.0002] # YI SYLLABLE XUO
+A467 ; [.4226.0020.0002] # YI SYLLABLE XOT
+A468 ; [.4227.0020.0002] # YI SYLLABLE XOX
+A469 ; [.4228.0020.0002] # YI SYLLABLE XO
+A46A ; [.4229.0020.0002] # YI SYLLABLE XOP
+A46B ; [.422A.0020.0002] # YI SYLLABLE XYT
+A46C ; [.422B.0020.0002] # YI SYLLABLE XYX
+A46D ; [.422C.0020.0002] # YI SYLLABLE XY
+A46E ; [.422D.0020.0002] # YI SYLLABLE XYP
+A46F ; [.422E.0020.0002] # YI SYLLABLE XYRX
+A470 ; [.422F.0020.0002] # YI SYLLABLE XYR
+A471 ; [.4230.0020.0002] # YI SYLLABLE YIT
+A472 ; [.4231.0020.0002] # YI SYLLABLE YIX
+A473 ; [.4232.0020.0002] # YI SYLLABLE YI
+A474 ; [.4233.0020.0002] # YI SYLLABLE YIP
+A475 ; [.4234.0020.0002] # YI SYLLABLE YIET
+A476 ; [.4235.0020.0002] # YI SYLLABLE YIEX
+A477 ; [.4236.0020.0002] # YI SYLLABLE YIE
+A478 ; [.4237.0020.0002] # YI SYLLABLE YIEP
+A479 ; [.4238.0020.0002] # YI SYLLABLE YUOT
+A47A ; [.4239.0020.0002] # YI SYLLABLE YUOX
+A47B ; [.423A.0020.0002] # YI SYLLABLE YUO
+A47C ; [.423B.0020.0002] # YI SYLLABLE YUOP
+A47D ; [.423C.0020.0002] # YI SYLLABLE YOT
+A47E ; [.423D.0020.0002] # YI SYLLABLE YOX
+A47F ; [.423E.0020.0002] # YI SYLLABLE YO
+A480 ; [.423F.0020.0002] # YI SYLLABLE YOP
+A481 ; [.4240.0020.0002] # YI SYLLABLE YUT
+A482 ; [.4241.0020.0002] # YI SYLLABLE YUX
+A483 ; [.4242.0020.0002] # YI SYLLABLE YU
+A484 ; [.4243.0020.0002] # YI SYLLABLE YUP
+A485 ; [.4244.0020.0002] # YI SYLLABLE YURX
+A486 ; [.4245.0020.0002] # YI SYLLABLE YUR
+A487 ; [.4246.0020.0002] # YI SYLLABLE YYT
+A488 ; [.4247.0020.0002] # YI SYLLABLE YYX
+A489 ; [.4248.0020.0002] # YI SYLLABLE YY
+A48A ; [.4249.0020.0002] # YI SYLLABLE YYP
+A48B ; [.424A.0020.0002] # YI SYLLABLE YYRX
+A48C ; [.424B.0020.0002] # YI SYLLABLE YYR
+A4F8 ; [.424C.0020.0002] # LISU LETTER TONE MYA TI
+A4F9 ; [.424D.0020.0002] # LISU LETTER TONE NA PO
+A4FA ; [.424E.0020.0002] # LISU LETTER TONE MYA CYA
+A4FB ; [.424F.0020.0002] # LISU LETTER TONE MYA BO
+A4FD ; [.4250.0020.0002] # LISU LETTER TONE MYA JEU
+A4FC ; [.4251.0020.0002] # LISU LETTER TONE MYA NA
+A4D0 ; [.4252.0020.0002] # LISU LETTER BA
+A4D1 ; [.4253.0020.0002] # LISU LETTER PA
+A4D2 ; [.4254.0020.0002] # LISU LETTER PHA
+A4D3 ; [.4255.0020.0002] # LISU LETTER DA
+A4D4 ; [.4256.0020.0002] # LISU LETTER TA
+A4D5 ; [.4257.0020.0002] # LISU LETTER THA
+A4D6 ; [.4258.0020.0002] # LISU LETTER GA
+A4D7 ; [.4259.0020.0002] # LISU LETTER KA
+A4D8 ; [.425A.0020.0002] # LISU LETTER KHA
+A4D9 ; [.425B.0020.0002] # LISU LETTER JA
+A4DA ; [.425C.0020.0002] # LISU LETTER CA
+A4DB ; [.425D.0020.0002] # LISU LETTER CHA
+A4DC ; [.425E.0020.0002] # LISU LETTER DZA
+A4DD ; [.425F.0020.0002] # LISU LETTER TSA
+A4DE ; [.4260.0020.0002] # LISU LETTER TSHA
+A4DF ; [.4261.0020.0002] # LISU LETTER MA
+A4E0 ; [.4262.0020.0002] # LISU LETTER NA
+A4E1 ; [.4263.0020.0002] # LISU LETTER LA
+A4E2 ; [.4264.0020.0002] # LISU LETTER SA
+A4E3 ; [.4265.0020.0002] # LISU LETTER ZHA
+A4E4 ; [.4266.0020.0002] # LISU LETTER ZA
+A4E5 ; [.4267.0020.0002] # LISU LETTER NGA
+A4E6 ; [.4268.0020.0002] # LISU LETTER HA
+A4E7 ; [.4269.0020.0002] # LISU LETTER XA
+A4E8 ; [.426A.0020.0002] # LISU LETTER HHA
+A4E9 ; [.426B.0020.0002] # LISU LETTER FA
+A4EB ; [.426C.0020.0002] # LISU LETTER SHA
+A4ED ; [.426D.0020.0002] # LISU LETTER GHA
+A4EA ; [.426E.0020.0002] # LISU LETTER WA
+A4EC ; [.426F.0020.0002] # LISU LETTER YA
+A4EE ; [.4270.0020.0002] # LISU LETTER A
+A4EF ; [.4271.0020.0002] # LISU LETTER AE
+A4F0 ; [.4272.0020.0002] # LISU LETTER E
+A4F1 ; [.4273.0020.0002] # LISU LETTER EU
+A4F2 ; [.4274.0020.0002] # LISU LETTER I
+A4F3 ; [.4275.0020.0002] # LISU LETTER O
+A4F4 ; [.4276.0020.0002] # LISU LETTER U
+A4F5 ; [.4277.0020.0002] # LISU LETTER UE
+A4F6 ; [.4278.0020.0002] # LISU LETTER UH
+A4F7 ; [.4279.0020.0002] # LISU LETTER OE
+16F00 ; [.427A.0020.0002] # MIAO LETTER PA
+16F01 ; [.427B.0020.0002] # MIAO LETTER BA
+16F02 ; [.427C.0020.0002] # MIAO LETTER YI PA
+16F03 ; [.427D.0020.0002] # MIAO LETTER PLA
+16F04 ; [.427E.0020.0002] # MIAO LETTER MA
+16F06 ; [.427E.0020.0004] # MIAO LETTER ARCHAIC MA
+16F05 ; [.427F.0020.0002] # MIAO LETTER MHA
+16F07 ; [.4280.0020.0002] # MIAO LETTER FA
+16F08 ; [.4281.0020.0002] # MIAO LETTER VA
+16F09 ; [.4282.0020.0002] # MIAO LETTER VFA
+16F0A ; [.4283.0020.0002] # MIAO LETTER TA
+16F0B ; [.4284.0020.0002] # MIAO LETTER DA
+16F0C ; [.4285.0020.0002] # MIAO LETTER YI TTA
+16F0D ; [.4286.0020.0002] # MIAO LETTER YI TA
+16F0E ; [.4287.0020.0002] # MIAO LETTER TTA
+16F0F ; [.4288.0020.0002] # MIAO LETTER DDA
+16F10 ; [.4289.0020.0002] # MIAO LETTER NA
+16F13 ; [.4289.0020.0004] # MIAO LETTER ARCHAIC NA
+16F11 ; [.428A.0020.0002] # MIAO LETTER NHA
+16F12 ; [.428B.0020.0002] # MIAO LETTER YI NNA
+16F14 ; [.428C.0020.0002] # MIAO LETTER NNA
+16F15 ; [.428D.0020.0002] # MIAO LETTER NNHA
+16F16 ; [.428E.0020.0002] # MIAO LETTER LA
+16F17 ; [.428F.0020.0002] # MIAO LETTER LYA
+16F18 ; [.4290.0020.0002] # MIAO LETTER LHA
+16F19 ; [.4291.0020.0002] # MIAO LETTER LHYA
+16F1A ; [.4292.0020.0002] # MIAO LETTER TLHA
+16F1B ; [.4293.0020.0002] # MIAO LETTER DLHA
+16F1C ; [.4294.0020.0002] # MIAO LETTER TLHYA
+16F1D ; [.4295.0020.0002] # MIAO LETTER DLHYA
+16F1E ; [.4296.0020.0002] # MIAO LETTER KA
+16F1F ; [.4297.0020.0002] # MIAO LETTER GA
+16F20 ; [.4298.0020.0002] # MIAO LETTER YI KA
+16F21 ; [.4299.0020.0002] # MIAO LETTER QA
+16F22 ; [.429A.0020.0002] # MIAO LETTER QGA
+16F23 ; [.429B.0020.0002] # MIAO LETTER NGA
+16F25 ; [.429B.0020.0004] # MIAO LETTER ARCHAIC NGA
+16F24 ; [.429C.0020.0002] # MIAO LETTER NGHA
+16F26 ; [.429D.0020.0002] # MIAO LETTER HA
+16F27 ; [.429E.0020.0002] # MIAO LETTER XA
+16F28 ; [.429F.0020.0002] # MIAO LETTER GHA
+16F29 ; [.42A0.0020.0002] # MIAO LETTER GHHA
+16F2A ; [.42A1.0020.0002] # MIAO LETTER TSSA
+16F2B ; [.42A2.0020.0002] # MIAO LETTER DZZA
+16F2C ; [.42A3.0020.0002] # MIAO LETTER NYA
+16F2D ; [.42A4.0020.0002] # MIAO LETTER NYHA
+16F2E ; [.42A5.0020.0002] # MIAO LETTER TSHA
+16F2F ; [.42A6.0020.0002] # MIAO LETTER DZHA
+16F30 ; [.42A7.0020.0002] # MIAO LETTER YI TSHA
+16F31 ; [.42A8.0020.0002] # MIAO LETTER YI DZHA
+16F32 ; [.42A9.0020.0002] # MIAO LETTER REFORMED TSHA
+16F33 ; [.42AA.0020.0002] # MIAO LETTER SHA
+16F34 ; [.42AB.0020.0002] # MIAO LETTER SSA
+16F35 ; [.42AC.0020.0002] # MIAO LETTER ZHA
+16F36 ; [.42AD.0020.0002] # MIAO LETTER ZSHA
+16F37 ; [.42AE.0020.0002] # MIAO LETTER TSA
+16F38 ; [.42AF.0020.0002] # MIAO LETTER DZA
+16F39 ; [.42B0.0020.0002] # MIAO LETTER YI TSA
+16F3A ; [.42B1.0020.0002] # MIAO LETTER SA
+16F3B ; [.42B2.0020.0002] # MIAO LETTER ZA
+16F3C ; [.42B3.0020.0002] # MIAO LETTER ZSA
+16F3D ; [.42B4.0020.0002] # MIAO LETTER ZZA
+16F3F ; [.42B4.0020.0004] # MIAO LETTER ARCHAIC ZZA
+16F3E ; [.42B5.0020.0002] # MIAO LETTER ZZSA
+16F40 ; [.42B6.0020.0002] # MIAO LETTER ZZYA
+16F41 ; [.42B7.0020.0002] # MIAO LETTER ZZSYA
+16F42 ; [.42B8.0020.0002] # MIAO LETTER WA
+16F43 ; [.42B9.0020.0002] # MIAO LETTER AH
+16F44 ; [.42BA.0020.0002] # MIAO LETTER HHA
+16F50 ; [.42BB.0020.0002] # MIAO LETTER NASALIZATION
+16F51 ; [.42BC.0020.0002] # MIAO SIGN ASPIRATION
+16F52 ; [.42BD.0020.0002] # MIAO SIGN REFORMED VOICING
+16F53 ; [.42BE.0020.0002] # MIAO SIGN REFORMED ASPIRATION
+16F54 ; [.42BF.0020.0002] # MIAO VOWEL SIGN A
+16F55 ; [.42C0.0020.0002] # MIAO VOWEL SIGN AA
+16F56 ; [.42C1.0020.0002] # MIAO VOWEL SIGN AHH
+16F57 ; [.42C2.0020.0002] # MIAO VOWEL SIGN AN
+16F58 ; [.42C3.0020.0002] # MIAO VOWEL SIGN ANG
+16F59 ; [.42C4.0020.0002] # MIAO VOWEL SIGN O
+16F5A ; [.42C5.0020.0002] # MIAO VOWEL SIGN OO
+16F5B ; [.42C6.0020.0002] # MIAO VOWEL SIGN WO
+16F5C ; [.42C7.0020.0002] # MIAO VOWEL SIGN W
+16F5D ; [.42C8.0020.0002] # MIAO VOWEL SIGN E
+16F5E ; [.42C9.0020.0002] # MIAO VOWEL SIGN EN
+16F5F ; [.42CA.0020.0002] # MIAO VOWEL SIGN ENG
+16F60 ; [.42CB.0020.0002] # MIAO VOWEL SIGN OEY
+16F61 ; [.42CC.0020.0002] # MIAO VOWEL SIGN I
+16F62 ; [.42CD.0020.0002] # MIAO VOWEL SIGN IA
+16F63 ; [.42CE.0020.0002] # MIAO VOWEL SIGN IAN
+16F64 ; [.42CF.0020.0002] # MIAO VOWEL SIGN IANG
+16F65 ; [.42D0.0020.0002] # MIAO VOWEL SIGN IO
+16F66 ; [.42D1.0020.0002] # MIAO VOWEL SIGN IE
+16F67 ; [.42D2.0020.0002] # MIAO VOWEL SIGN II
+16F68 ; [.42D3.0020.0002] # MIAO VOWEL SIGN IU
+16F69 ; [.42D4.0020.0002] # MIAO VOWEL SIGN ING
+16F6A ; [.42D5.0020.0002] # MIAO VOWEL SIGN U
+16F6B ; [.42D6.0020.0002] # MIAO VOWEL SIGN UA
+16F6C ; [.42D7.0020.0002] # MIAO VOWEL SIGN UAN
+16F6D ; [.42D8.0020.0002] # MIAO VOWEL SIGN UANG
+16F6E ; [.42D9.0020.0002] # MIAO VOWEL SIGN UU
+16F6F ; [.42DA.0020.0002] # MIAO VOWEL SIGN UEI
+16F70 ; [.42DB.0020.0002] # MIAO VOWEL SIGN UNG
+16F71 ; [.42DC.0020.0002] # MIAO VOWEL SIGN Y
+16F72 ; [.42DD.0020.0002] # MIAO VOWEL SIGN YI
+16F73 ; [.42DE.0020.0002] # MIAO VOWEL SIGN AE
+16F74 ; [.42DF.0020.0002] # MIAO VOWEL SIGN AEE
+16F75 ; [.42E0.0020.0002] # MIAO VOWEL SIGN ERR
+16F76 ; [.42E1.0020.0002] # MIAO VOWEL SIGN ROUNDED ERR
+16F77 ; [.42E2.0020.0002] # MIAO VOWEL SIGN ER
+16F78 ; [.42E3.0020.0002] # MIAO VOWEL SIGN ROUNDED ER
+16F79 ; [.42E4.0020.0002] # MIAO VOWEL SIGN AI
+16F7A ; [.42E5.0020.0002] # MIAO VOWEL SIGN EI
+16F7B ; [.42E6.0020.0002] # MIAO VOWEL SIGN AU
+16F7C ; [.42E7.0020.0002] # MIAO VOWEL SIGN OU
+16F7D ; [.42E8.0020.0002] # MIAO VOWEL SIGN N
+16F7E ; [.42E9.0020.0002] # MIAO VOWEL SIGN NG
+16F8F ; [.42EA.0020.0002] # MIAO TONE RIGHT
+16F90 ; [.42EB.0020.0002] # MIAO TONE TOP RIGHT
+16F91 ; [.42EC.0020.0002] # MIAO TONE ABOVE
+16F92 ; [.42ED.0020.0002] # MIAO TONE BELOW
+16F93 ; [.42EE.0020.0002] # MIAO LETTER TONE-2
+16F94 ; [.42EF.0020.0002] # MIAO LETTER TONE-3
+16F95 ; [.42F0.0020.0002] # MIAO LETTER TONE-4
+16F96 ; [.42F1.0020.0002] # MIAO LETTER TONE-5
+16F97 ; [.42F2.0020.0002] # MIAO LETTER TONE-6
+16F98 ; [.42F3.0020.0002] # MIAO LETTER TONE-7
+16F99 ; [.42F4.0020.0002] # MIAO LETTER TONE-8
+16F9A ; [.42F5.0020.0002] # MIAO LETTER REFORMED TONE-1
+16F9B ; [.42F6.0020.0002] # MIAO LETTER REFORMED TONE-2
+16F9C ; [.42F7.0020.0002] # MIAO LETTER REFORMED TONE-4
+16F9D ; [.42F8.0020.0002] # MIAO LETTER REFORMED TONE-5
+16F9E ; [.42F9.0020.0002] # MIAO LETTER REFORMED TONE-6
+16F9F ; [.42FA.0020.0002] # MIAO LETTER REFORMED TONE-8
+118FF ; [.42FB.0020.0002] # WARANG CITI OM
+118C0 ; [.42FC.0020.0002] # WARANG CITI SMALL LETTER NGAA
+118A0 ; [.42FC.0020.0008] # WARANG CITI CAPITAL LETTER NGAA
+118C1 ; [.42FD.0020.0002] # WARANG CITI SMALL LETTER A
+118A1 ; [.42FD.0020.0008] # WARANG CITI CAPITAL LETTER A
+118C2 ; [.42FE.0020.0002] # WARANG CITI SMALL LETTER WI
+118A2 ; [.42FE.0020.0008] # WARANG CITI CAPITAL LETTER WI
+118C3 ; [.42FF.0020.0002] # WARANG CITI SMALL LETTER YU
+118A3 ; [.42FF.0020.0008] # WARANG CITI CAPITAL LETTER YU
+118C4 ; [.4300.0020.0002] # WARANG CITI SMALL LETTER YA
+118A4 ; [.4300.0020.0008] # WARANG CITI CAPITAL LETTER YA
+118C5 ; [.4301.0020.0002] # WARANG CITI SMALL LETTER YO
+118A5 ; [.4301.0020.0008] # WARANG CITI CAPITAL LETTER YO
+118C6 ; [.4302.0020.0002] # WARANG CITI SMALL LETTER II
+118A6 ; [.4302.0020.0008] # WARANG CITI CAPITAL LETTER II
+118C7 ; [.4303.0020.0002] # WARANG CITI SMALL LETTER UU
+118A7 ; [.4303.0020.0008] # WARANG CITI CAPITAL LETTER UU
+118C8 ; [.4304.0020.0002] # WARANG CITI SMALL LETTER E
+118A8 ; [.4304.0020.0008] # WARANG CITI CAPITAL LETTER E
+118C9 ; [.4305.0020.0002] # WARANG CITI SMALL LETTER O
+118A9 ; [.4305.0020.0008] # WARANG CITI CAPITAL LETTER O
+118CA ; [.4306.0020.0002] # WARANG CITI SMALL LETTER ANG
+118AA ; [.4306.0020.0008] # WARANG CITI CAPITAL LETTER ANG
+118CB ; [.4307.0020.0002] # WARANG CITI SMALL LETTER GA
+118AB ; [.4307.0020.0008] # WARANG CITI CAPITAL LETTER GA
+118CC ; [.4308.0020.0002] # WARANG CITI SMALL LETTER KO
+118AC ; [.4308.0020.0008] # WARANG CITI CAPITAL LETTER KO
+118CD ; [.4309.0020.0002] # WARANG CITI SMALL LETTER ENY
+118AD ; [.4309.0020.0008] # WARANG CITI CAPITAL LETTER ENY
+118CE ; [.430A.0020.0002] # WARANG CITI SMALL LETTER YUJ
+118AE ; [.430A.0020.0008] # WARANG CITI CAPITAL LETTER YUJ
+118CF ; [.430B.0020.0002] # WARANG CITI SMALL LETTER UC
+118AF ; [.430B.0020.0008] # WARANG CITI CAPITAL LETTER UC
+118D0 ; [.430C.0020.0002] # WARANG CITI SMALL LETTER ENN
+118B0 ; [.430C.0020.0008] # WARANG CITI CAPITAL LETTER ENN
+118D1 ; [.430D.0020.0002] # WARANG CITI SMALL LETTER ODD
+118B1 ; [.430D.0020.0008] # WARANG CITI CAPITAL LETTER ODD
+118D2 ; [.430E.0020.0002] # WARANG CITI SMALL LETTER TTE
+118B2 ; [.430E.0020.0008] # WARANG CITI CAPITAL LETTER TTE
+118D3 ; [.430F.0020.0002] # WARANG CITI SMALL LETTER NUNG
+118B3 ; [.430F.0020.0008] # WARANG CITI CAPITAL LETTER NUNG
+118D4 ; [.4310.0020.0002] # WARANG CITI SMALL LETTER DA
+118B4 ; [.4310.0020.0008] # WARANG CITI CAPITAL LETTER DA
+118D5 ; [.4311.0020.0002] # WARANG CITI SMALL LETTER AT
+118B5 ; [.4311.0020.0008] # WARANG CITI CAPITAL LETTER AT
+118D6 ; [.4312.0020.0002] # WARANG CITI SMALL LETTER AM
+118B6 ; [.4312.0020.0008] # WARANG CITI CAPITAL LETTER AM
+118D7 ; [.4313.0020.0002] # WARANG CITI SMALL LETTER BU
+118B7 ; [.4313.0020.0008] # WARANG CITI CAPITAL LETTER BU
+118D8 ; [.4314.0020.0002] # WARANG CITI SMALL LETTER PU
+118B8 ; [.4314.0020.0008] # WARANG CITI CAPITAL LETTER PU
+118D9 ; [.4315.0020.0002] # WARANG CITI SMALL LETTER HIYO
+118B9 ; [.4315.0020.0008] # WARANG CITI CAPITAL LETTER HIYO
+118DA ; [.4316.0020.0002] # WARANG CITI SMALL LETTER HOLO
+118BA ; [.4316.0020.0008] # WARANG CITI CAPITAL LETTER HOLO
+118DB ; [.4317.0020.0002] # WARANG CITI SMALL LETTER HORR
+118BB ; [.4317.0020.0008] # WARANG CITI CAPITAL LETTER HORR
+118DC ; [.4318.0020.0002] # WARANG CITI SMALL LETTER HAR
+118BC ; [.4318.0020.0008] # WARANG CITI CAPITAL LETTER HAR
+118DD ; [.4319.0020.0002] # WARANG CITI SMALL LETTER SSUU
+118BD ; [.4319.0020.0008] # WARANG CITI CAPITAL LETTER SSUU
+118DE ; [.431A.0020.0002] # WARANG CITI SMALL LETTER SII
+118BE ; [.431A.0020.0008] # WARANG CITI CAPITAL LETTER SII
+118DF ; [.431B.0020.0002] # WARANG CITI SMALL LETTER VIYO
+118BF ; [.431B.0020.0008] # WARANG CITI CAPITAL LETTER VIYO
+11AD5 ; [.431C.0020.0002] # PAU CIN HAU LETTER A
+11AD6 ; [.431D.0020.0002] # PAU CIN HAU LETTER E
+11AD7 ; [.431E.0020.0002] # PAU CIN HAU LETTER I
+11AD8 ; [.431F.0020.0002] # PAU CIN HAU LETTER O
+11AD9 ; [.4320.0020.0002] # PAU CIN HAU LETTER U
+11ADA ; [.4321.0020.0002] # PAU CIN HAU LETTER UA
+11ADB ; [.4322.0020.0002] # PAU CIN HAU LETTER IA
+11AC0 ; [.4323.0020.0002] # PAU CIN HAU LETTER PA
+11AC1 ; [.4324.0020.0002] # PAU CIN HAU LETTER KA
+11AC2 ; [.4325.0020.0002] # PAU CIN HAU LETTER LA
+11AC3 ; [.4326.0020.0002] # PAU CIN HAU LETTER MA
+11AC4 ; [.4327.0020.0002] # PAU CIN HAU LETTER DA
+11AC5 ; [.4328.0020.0002] # PAU CIN HAU LETTER ZA
+11AC6 ; [.4329.0020.0002] # PAU CIN HAU LETTER VA
+11AC7 ; [.432A.0020.0002] # PAU CIN HAU LETTER NGA
+11AC8 ; [.432B.0020.0002] # PAU CIN HAU LETTER HA
+11AC9 ; [.432C.0020.0002] # PAU CIN HAU LETTER GA
+11ACA ; [.432D.0020.0002] # PAU CIN HAU LETTER KHA
+11ACB ; [.432E.0020.0002] # PAU CIN HAU LETTER SA
+11ACC ; [.432F.0020.0002] # PAU CIN HAU LETTER BA
+11ACD ; [.4330.0020.0002] # PAU CIN HAU LETTER CA
+11ACE ; [.4331.0020.0002] # PAU CIN HAU LETTER TA
+11ACF ; [.4332.0020.0002] # PAU CIN HAU LETTER THA
+11AD0 ; [.4333.0020.0002] # PAU CIN HAU LETTER NA
+11AD1 ; [.4334.0020.0002] # PAU CIN HAU LETTER PHA
+11AD2 ; [.4335.0020.0002] # PAU CIN HAU LETTER RA
+11AD3 ; [.4336.0020.0002] # PAU CIN HAU LETTER FA
+11AD4 ; [.4337.0020.0002] # PAU CIN HAU LETTER CHA
+11ADC ; [.4338.0020.0002] # PAU CIN HAU LETTER FINAL P
+11ADD ; [.4339.0020.0002] # PAU CIN HAU LETTER FINAL K
+11ADF ; [.433A.0020.0002] # PAU CIN HAU LETTER FINAL M
+11AE0 ; [.433B.0020.0002] # PAU CIN HAU LETTER FINAL N
+11AE1 ; [.433C.0020.0002] # PAU CIN HAU LETTER FINAL L
+11AE2 ; [.433D.0020.0002] # PAU CIN HAU LETTER FINAL W
+11AE3 ; [.433E.0020.0002] # PAU CIN HAU LETTER FINAL NG
+11ADE ; [.433F.0020.0002] # PAU CIN HAU LETTER FINAL T
+11AE4 ; [.4340.0020.0002] # PAU CIN HAU LETTER FINAL Y
+11AEF ; [.4341.0020.0002] # PAU CIN HAU MID-LEVEL TONE
+11AF2 ; [.4342.0020.0002] # PAU CIN HAU MID-LEVEL TONE FINAL
+11AF1 ; [.4343.0020.0002] # PAU CIN HAU MID-LEVEL TONE LONG FINAL
+11AE6 ; [.4344.0020.0002] # PAU CIN HAU RISING TONE
+11AE9 ; [.4345.0020.0002] # PAU CIN HAU RISING TONE FINAL
+11AE5 ; [.4346.0020.0002] # PAU CIN HAU RISING TONE LONG
+11AE8 ; [.4347.0020.0002] # PAU CIN HAU RISING TONE LONG FINAL
+11AF4 ; [.4348.0020.0002] # PAU CIN HAU LOW-FALLING TONE
+11AF7 ; [.4349.0020.0002] # PAU CIN HAU LOW-FALLING TONE FINAL
+11AF3 ; [.434A.0020.0002] # PAU CIN HAU LOW-FALLING TONE LONG
+11AF6 ; [.434B.0020.0002] # PAU CIN HAU LOW-FALLING TONE LONG FINAL
+11AEC ; [.434C.0020.0002] # PAU CIN HAU SANDHI TONE
+11AEE ; [.434D.0020.0002] # PAU CIN HAU SANDHI TONE FINAL
+11AEB ; [.434E.0020.0002] # PAU CIN HAU SANDHI TONE LONG
+11AED ; [.434F.0020.0002] # PAU CIN HAU SANDHI TONE LONG FINAL
+11AF5 ; [.4350.0020.0002] # PAU CIN HAU GLOTTAL STOP
+11AF8 ; [.4351.0020.0002] # PAU CIN HAU GLOTTAL STOP FINAL
+11AE7 ; [.4352.0020.0002] # PAU CIN HAU SANDHI GLOTTAL STOP
+11AEA ; [.4353.0020.0002] # PAU CIN HAU SANDHI GLOTTAL STOP FINAL
+11AF0 ; [.4354.0020.0002] # PAU CIN HAU GLOTTAL STOP VARIANT
+16B00 ; [.4355.0020.0002] # PAHAWH HMONG VOWEL KEEB
+16B01 ; [.4356.0020.0002] # PAHAWH HMONG VOWEL KEEV
+16B02 ; [.4357.0020.0002] # PAHAWH HMONG VOWEL KIB
+16B03 ; [.4358.0020.0002] # PAHAWH HMONG VOWEL KIV
+16B04 ; [.4359.0020.0002] # PAHAWH HMONG VOWEL KAUB
+16B05 ; [.435A.0020.0002] # PAHAWH HMONG VOWEL KAUV
+16B06 ; [.435B.0020.0002] # PAHAWH HMONG VOWEL KUB
+16B07 ; [.435C.0020.0002] # PAHAWH HMONG VOWEL KUV
+16B08 ; [.435D.0020.0002] # PAHAWH HMONG VOWEL KEB
+16B09 ; [.435E.0020.0002] # PAHAWH HMONG VOWEL KEV
+16B0A ; [.435F.0020.0002] # PAHAWH HMONG VOWEL KAIB
+16B0B ; [.4360.0020.0002] # PAHAWH HMONG VOWEL KAIV
+16B0C ; [.4361.0020.0002] # PAHAWH HMONG VOWEL KOOB
+16B0D ; [.4362.0020.0002] # PAHAWH HMONG VOWEL KOOV
+16B0E ; [.4363.0020.0002] # PAHAWH HMONG VOWEL KAWB
+16B0F ; [.4364.0020.0002] # PAHAWH HMONG VOWEL KAWV
+16B10 ; [.4365.0020.0002] # PAHAWH HMONG VOWEL KUAB
+16B11 ; [.4366.0020.0002] # PAHAWH HMONG VOWEL KUAV
+16B12 ; [.4367.0020.0002] # PAHAWH HMONG VOWEL KOB
+16B13 ; [.4368.0020.0002] # PAHAWH HMONG VOWEL KOV
+16B14 ; [.4369.0020.0002] # PAHAWH HMONG VOWEL KIAB
+16B15 ; [.436A.0020.0002] # PAHAWH HMONG VOWEL KIAV
+16B16 ; [.436B.0020.0002] # PAHAWH HMONG VOWEL KAB
+16B17 ; [.436C.0020.0002] # PAHAWH HMONG VOWEL KAV
+16B18 ; [.436D.0020.0002] # PAHAWH HMONG VOWEL KWB
+16B19 ; [.436E.0020.0002] # PAHAWH HMONG VOWEL KWV
+16B1A ; [.436F.0020.0002] # PAHAWH HMONG VOWEL KAAB
+16B1B ; [.4370.0020.0002] # PAHAWH HMONG VOWEL KAAV
+16B1C ; [.4371.0020.0002] # PAHAWH HMONG CONSONANT VAU
+16B1D ; [.4372.0020.0002] # PAHAWH HMONG CONSONANT NTSAU
+16B1E ; [.4373.0020.0002] # PAHAWH HMONG CONSONANT LAU
+16B1F ; [.4374.0020.0002] # PAHAWH HMONG CONSONANT HAU
+16B20 ; [.4375.0020.0002] # PAHAWH HMONG CONSONANT NLAU
+16B21 ; [.4376.0020.0002] # PAHAWH HMONG CONSONANT RAU
+16B22 ; [.4377.0020.0002] # PAHAWH HMONG CONSONANT NKAU
+16B23 ; [.4378.0020.0002] # PAHAWH HMONG CONSONANT QHAU
+16B24 ; [.4379.0020.0002] # PAHAWH HMONG CONSONANT YAU
+16B25 ; [.437A.0020.0002] # PAHAWH HMONG CONSONANT HLAU
+16B26 ; [.437B.0020.0002] # PAHAWH HMONG CONSONANT MAU
+16B27 ; [.437C.0020.0002] # PAHAWH HMONG CONSONANT CHAU
+16B28 ; [.437D.0020.0002] # PAHAWH HMONG CONSONANT NCHAU
+16B29 ; [.437E.0020.0002] # PAHAWH HMONG CONSONANT HNAU
+16B2A ; [.437F.0020.0002] # PAHAWH HMONG CONSONANT PLHAU
+16B2B ; [.4380.0020.0002] # PAHAWH HMONG CONSONANT NTHAU
+16B2C ; [.4381.0020.0002] # PAHAWH HMONG CONSONANT NAU
+16B2D ; [.4382.0020.0002] # PAHAWH HMONG CONSONANT AU
+16B2E ; [.4383.0020.0002] # PAHAWH HMONG CONSONANT XAU
+16B2F ; [.4384.0020.0002] # PAHAWH HMONG CONSONANT CAU
+16B40 ; [.4385.0020.0002] # PAHAWH HMONG SIGN VOS SEEV
+16B41 ; [.4386.0020.0002] # PAHAWH HMONG SIGN MEEJ SUAB
+16B63 ; [.4387.0020.0002] # PAHAWH HMONG SIGN VOS LUB
+16B64 ; [.4388.0020.0002] # PAHAWH HMONG SIGN XYOO
+16B65 ; [.4389.0020.0002] # PAHAWH HMONG SIGN HLI
+16B66 ; [.438A.0020.0002] # PAHAWH HMONG SIGN THIRD-STAGE HLI
+16B67 ; [.438B.0020.0002] # PAHAWH HMONG SIGN ZWJ THAJ
+16B68 ; [.438C.0020.0002] # PAHAWH HMONG SIGN HNUB
+16B69 ; [.438D.0020.0002] # PAHAWH HMONG SIGN NQIG
+16B6A ; [.438E.0020.0002] # PAHAWH HMONG SIGN XIAB
+16B6B ; [.438F.0020.0002] # PAHAWH HMONG SIGN NTUJ
+16B6C ; [.4390.0020.0002] # PAHAWH HMONG SIGN AV
+16B6D ; [.4391.0020.0002] # PAHAWH HMONG SIGN TXHEEJ CEEV
+16B6E ; [.4392.0020.0002] # PAHAWH HMONG SIGN MEEJ TSEEB
+16B6F ; [.4393.0020.0002] # PAHAWH HMONG SIGN TAU
+16B70 ; [.4394.0020.0002] # PAHAWH HMONG SIGN LOS
+16B71 ; [.4395.0020.0002] # PAHAWH HMONG SIGN MUS
+16B72 ; [.4396.0020.0002] # PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG
+16B73 ; [.4397.0020.0002] # PAHAWH HMONG SIGN CIM CUAM TSHOOJ
+16B74 ; [.4398.0020.0002] # PAHAWH HMONG SIGN CIM TXWV
+16B75 ; [.4399.0020.0002] # PAHAWH HMONG SIGN CIM TXWV CHWV
+16B76 ; [.439A.0020.0002] # PAHAWH HMONG SIGN CIM PUB DAWB
+16B77 ; [.439B.0020.0002] # PAHAWH HMONG SIGN CIM NRES TOS
+16B7D ; [.439C.0020.0002] # PAHAWH HMONG CLAN SIGN TSHEEJ
+16B7E ; [.439D.0020.0002] # PAHAWH HMONG CLAN SIGN YEEG
+16B7F ; [.439E.0020.0002] # PAHAWH HMONG CLAN SIGN LIS
+16B80 ; [.439F.0020.0002] # PAHAWH HMONG CLAN SIGN LAUJ
+16B81 ; [.43A0.0020.0002] # PAHAWH HMONG CLAN SIGN XYOOJ
+16B82 ; [.43A1.0020.0002] # PAHAWH HMONG CLAN SIGN KOO
+16B83 ; [.43A2.0020.0002] # PAHAWH HMONG CLAN SIGN HAWJ
+16B84 ; [.43A3.0020.0002] # PAHAWH HMONG CLAN SIGN MUAS
+16B85 ; [.43A4.0020.0002] # PAHAWH HMONG CLAN SIGN THOJ
+16B86 ; [.43A5.0020.0002] # PAHAWH HMONG CLAN SIGN TSAB
+16B87 ; [.43A6.0020.0002] # PAHAWH HMONG CLAN SIGN PHAB
+16B88 ; [.43A7.0020.0002] # PAHAWH HMONG CLAN SIGN KHAB
+16B89 ; [.43A8.0020.0002] # PAHAWH HMONG CLAN SIGN HAM
+16B8A ; [.43A9.0020.0002] # PAHAWH HMONG CLAN SIGN VAJ
+16B8B ; [.43AA.0020.0002] # PAHAWH HMONG CLAN SIGN FAJ
+16B8C ; [.43AB.0020.0002] # PAHAWH HMONG CLAN SIGN YAJ
+16B8D ; [.43AC.0020.0002] # PAHAWH HMONG CLAN SIGN TSWB
+16B8E ; [.43AD.0020.0002] # PAHAWH HMONG CLAN SIGN KWM
+16B8F ; [.43AE.0020.0002] # PAHAWH HMONG CLAN SIGN VWJ
+10280 ; [.43AF.0020.0002] # LYCIAN LETTER A
+10281 ; [.43B0.0020.0002] # LYCIAN LETTER E
+10282 ; [.43B1.0020.0002] # LYCIAN LETTER B
+10283 ; [.43B2.0020.0002] # LYCIAN LETTER BH
+10284 ; [.43B3.0020.0002] # LYCIAN LETTER G
+10285 ; [.43B4.0020.0002] # LYCIAN LETTER D
+10286 ; [.43B5.0020.0002] # LYCIAN LETTER I
+10287 ; [.43B6.0020.0002] # LYCIAN LETTER W
+10288 ; [.43B7.0020.0002] # LYCIAN LETTER Z
+10289 ; [.43B8.0020.0002] # LYCIAN LETTER TH
+1028A ; [.43B9.0020.0002] # LYCIAN LETTER J
+1028B ; [.43BA.0020.0002] # LYCIAN LETTER K
+1028C ; [.43BB.0020.0002] # LYCIAN LETTER Q
+1028D ; [.43BC.0020.0002] # LYCIAN LETTER L
+1028E ; [.43BD.0020.0002] # LYCIAN LETTER M
+1028F ; [.43BE.0020.0002] # LYCIAN LETTER N
+10290 ; [.43BF.0020.0002] # LYCIAN LETTER MM
+10291 ; [.43C0.0020.0002] # LYCIAN LETTER NN
+10292 ; [.43C1.0020.0002] # LYCIAN LETTER U
+10293 ; [.43C2.0020.0002] # LYCIAN LETTER P
+10294 ; [.43C3.0020.0002] # LYCIAN LETTER KK
+10295 ; [.43C4.0020.0002] # LYCIAN LETTER R
+10296 ; [.43C5.0020.0002] # LYCIAN LETTER S
+10297 ; [.43C6.0020.0002] # LYCIAN LETTER T
+10298 ; [.43C7.0020.0002] # LYCIAN LETTER TT
+10299 ; [.43C8.0020.0002] # LYCIAN LETTER AN
+1029A ; [.43C9.0020.0002] # LYCIAN LETTER EN
+1029B ; [.43CA.0020.0002] # LYCIAN LETTER H
+1029C ; [.43CB.0020.0002] # LYCIAN LETTER X
+102A0 ; [.43CC.0020.0002] # CARIAN LETTER A
+102A1 ; [.43CD.0020.0002] # CARIAN LETTER P2
+102A2 ; [.43CE.0020.0002] # CARIAN LETTER D
+102A3 ; [.43CF.0020.0002] # CARIAN LETTER L
+102A4 ; [.43D0.0020.0002] # CARIAN LETTER UUU
+102A5 ; [.43D1.0020.0002] # CARIAN LETTER R
+102A6 ; [.43D2.0020.0002] # CARIAN LETTER LD
+102A7 ; [.43D3.0020.0002] # CARIAN LETTER A2
+102A8 ; [.43D4.0020.0002] # CARIAN LETTER Q
+102A9 ; [.43D5.0020.0002] # CARIAN LETTER B
+102AA ; [.43D6.0020.0002] # CARIAN LETTER M
+102AB ; [.43D7.0020.0002] # CARIAN LETTER O
+102AC ; [.43D8.0020.0002] # CARIAN LETTER D2
+102AD ; [.43D9.0020.0002] # CARIAN LETTER T
+102AE ; [.43DA.0020.0002] # CARIAN LETTER SH
+102AF ; [.43DB.0020.0002] # CARIAN LETTER SH2
+102B0 ; [.43DC.0020.0002] # CARIAN LETTER S
+102B1 ; [.43DD.0020.0002] # CARIAN LETTER C-18
+102B2 ; [.43DE.0020.0002] # CARIAN LETTER U
+102B3 ; [.43DF.0020.0002] # CARIAN LETTER NN
+102B4 ; [.43E0.0020.0002] # CARIAN LETTER X
+102B5 ; [.43E1.0020.0002] # CARIAN LETTER N
+102B6 ; [.43E2.0020.0002] # CARIAN LETTER TT2
+102B7 ; [.43E3.0020.0002] # CARIAN LETTER P
+102B8 ; [.43E4.0020.0002] # CARIAN LETTER SS
+102B9 ; [.43E5.0020.0002] # CARIAN LETTER I
+102BA ; [.43E6.0020.0002] # CARIAN LETTER E
+102BB ; [.43E7.0020.0002] # CARIAN LETTER UUUU
+102BC ; [.43E8.0020.0002] # CARIAN LETTER K
+102BD ; [.43E9.0020.0002] # CARIAN LETTER K2
+102BE ; [.43EA.0020.0002] # CARIAN LETTER ND
+102BF ; [.43EB.0020.0002] # CARIAN LETTER UU
+102C0 ; [.43EC.0020.0002] # CARIAN LETTER G
+102C1 ; [.43ED.0020.0002] # CARIAN LETTER G2
+102C2 ; [.43EE.0020.0002] # CARIAN LETTER ST
+102C3 ; [.43EF.0020.0002] # CARIAN LETTER ST2
+102C4 ; [.43F0.0020.0002] # CARIAN LETTER NG
+102C5 ; [.43F1.0020.0002] # CARIAN LETTER II
+102C6 ; [.43F2.0020.0002] # CARIAN LETTER C-39
+102C7 ; [.43F3.0020.0002] # CARIAN LETTER TT
+102C8 ; [.43F4.0020.0002] # CARIAN LETTER UUU2
+102C9 ; [.43F5.0020.0002] # CARIAN LETTER RR
+102CA ; [.43F6.0020.0002] # CARIAN LETTER MB
+102CB ; [.43F7.0020.0002] # CARIAN LETTER MB2
+102CC ; [.43F8.0020.0002] # CARIAN LETTER MB3
+102CD ; [.43F9.0020.0002] # CARIAN LETTER MB4
+102CE ; [.43FA.0020.0002] # CARIAN LETTER LD2
+102CF ; [.43FB.0020.0002] # CARIAN LETTER E2
+102D0 ; [.43FC.0020.0002] # CARIAN LETTER UUU3
+10920 ; [.43FD.0020.0002] # LYDIAN LETTER A
+10921 ; [.43FE.0020.0002] # LYDIAN LETTER B
+10922 ; [.43FF.0020.0002] # LYDIAN LETTER G
+10923 ; [.4400.0020.0002] # LYDIAN LETTER D
+10924 ; [.4401.0020.0002] # LYDIAN LETTER E
+10925 ; [.4402.0020.0002] # LYDIAN LETTER V
+10926 ; [.4403.0020.0002] # LYDIAN LETTER I
+10927 ; [.4404.0020.0002] # LYDIAN LETTER Y
+10928 ; [.4405.0020.0002] # LYDIAN LETTER K
+10929 ; [.4406.0020.0002] # LYDIAN LETTER L
+1092A ; [.4407.0020.0002] # LYDIAN LETTER M
+1092B ; [.4408.0020.0002] # LYDIAN LETTER N
+1092C ; [.4409.0020.0002] # LYDIAN LETTER O
+1092D ; [.440A.0020.0002] # LYDIAN LETTER R
+1092E ; [.440B.0020.0002] # LYDIAN LETTER SS
+1092F ; [.440C.0020.0002] # LYDIAN LETTER T
+10930 ; [.440D.0020.0002] # LYDIAN LETTER U
+10931 ; [.440E.0020.0002] # LYDIAN LETTER F
+10932 ; [.440F.0020.0002] # LYDIAN LETTER Q
+10933 ; [.4410.0020.0002] # LYDIAN LETTER S
+10934 ; [.4411.0020.0002] # LYDIAN LETTER TT
+10935 ; [.4412.0020.0002] # LYDIAN LETTER AN
+10936 ; [.4413.0020.0002] # LYDIAN LETTER EN
+10937 ; [.4414.0020.0002] # LYDIAN LETTER LY
+10938 ; [.4415.0020.0002] # LYDIAN LETTER NN
+10939 ; [.4416.0020.0002] # LYDIAN LETTER C
+10300 ; [.4417.0020.0002] # OLD ITALIC LETTER A
+10301 ; [.4418.0020.0002] # OLD ITALIC LETTER BE
+10302 ; [.4419.0020.0002] # OLD ITALIC LETTER KE
+10303 ; [.441A.0020.0002] # OLD ITALIC LETTER DE
+10304 ; [.441B.0020.0002] # OLD ITALIC LETTER E
+10305 ; [.441C.0020.0002] # OLD ITALIC LETTER VE
+10306 ; [.441D.0020.0002] # OLD ITALIC LETTER ZE
+10307 ; [.441E.0020.0002] # OLD ITALIC LETTER HE
+10308 ; [.441F.0020.0002] # OLD ITALIC LETTER THE
+10309 ; [.4420.0020.0002] # OLD ITALIC LETTER I
+1030A ; [.4421.0020.0002] # OLD ITALIC LETTER KA
+1030B ; [.4422.0020.0002] # OLD ITALIC LETTER EL
+1030C ; [.4423.0020.0002] # OLD ITALIC LETTER EM
+1030D ; [.4424.0020.0002] # OLD ITALIC LETTER EN
+1030E ; [.4425.0020.0002] # OLD ITALIC LETTER ESH
+1031F ; [.4426.0020.0002] # OLD ITALIC LETTER ESS
+1030F ; [.4427.0020.0002] # OLD ITALIC LETTER O
+10310 ; [.4428.0020.0002] # OLD ITALIC LETTER PE
+10311 ; [.4429.0020.0002] # OLD ITALIC LETTER SHE
+10312 ; [.442A.0020.0002] # OLD ITALIC LETTER KU
+10313 ; [.442B.0020.0002] # OLD ITALIC LETTER ER
+10314 ; [.442C.0020.0002] # OLD ITALIC LETTER ES
+10315 ; [.442D.0020.0002] # OLD ITALIC LETTER TE
+10316 ; [.442E.0020.0002] # OLD ITALIC LETTER U
+10317 ; [.442F.0020.0002] # OLD ITALIC LETTER EKS
+10318 ; [.4430.0020.0002] # OLD ITALIC LETTER PHE
+10319 ; [.4431.0020.0002] # OLD ITALIC LETTER KHE
+1031A ; [.4432.0020.0002] # OLD ITALIC LETTER EF
+1031B ; [.4433.0020.0002] # OLD ITALIC LETTER ERS
+1031C ; [.4434.0020.0002] # OLD ITALIC LETTER CHE
+1031D ; [.4435.0020.0002] # OLD ITALIC LETTER II
+1031E ; [.4436.0020.0002] # OLD ITALIC LETTER UU
+10330 ; [.4437.0020.0002] # GOTHIC LETTER AHSA
+10331 ; [.4438.0020.0002] # GOTHIC LETTER BAIRKAN
+10332 ; [.4439.0020.0002] # GOTHIC LETTER GIBA
+10333 ; [.443A.0020.0002] # GOTHIC LETTER DAGS
+10334 ; [.443B.0020.0002] # GOTHIC LETTER AIHVUS
+10335 ; [.443C.0020.0002] # GOTHIC LETTER QAIRTHRA
+10336 ; [.443D.0020.0002] # GOTHIC LETTER IUJA
+10337 ; [.443E.0020.0002] # GOTHIC LETTER HAGL
+10338 ; [.443F.0020.0002] # GOTHIC LETTER THIUTH
+10339 ; [.4440.0020.0002] # GOTHIC LETTER EIS
+1033A ; [.4441.0020.0002] # GOTHIC LETTER KUSMA
+1033B ; [.4442.0020.0002] # GOTHIC LETTER LAGUS
+1033C ; [.4443.0020.0002] # GOTHIC LETTER MANNA
+1033D ; [.4444.0020.0002] # GOTHIC LETTER NAUTHS
+1033E ; [.4445.0020.0002] # GOTHIC LETTER JER
+1033F ; [.4446.0020.0002] # GOTHIC LETTER URUS
+10340 ; [.4447.0020.0002] # GOTHIC LETTER PAIRTHRA
+10341 ; [.4448.0020.0002] # GOTHIC LETTER NINETY
+10342 ; [.4449.0020.0002] # GOTHIC LETTER RAIDA
+10343 ; [.444A.0020.0002] # GOTHIC LETTER SAUIL
+10344 ; [.444B.0020.0002] # GOTHIC LETTER TEIWS
+10345 ; [.444C.0020.0002] # GOTHIC LETTER WINJA
+10346 ; [.444D.0020.0002] # GOTHIC LETTER FAIHU
+10347 ; [.444E.0020.0002] # GOTHIC LETTER IGGWS
+10348 ; [.444F.0020.0002] # GOTHIC LETTER HWAIR
+10349 ; [.4450.0020.0002] # GOTHIC LETTER OTHAL
+1034A ; [.4451.0020.0002] # GOTHIC LETTER NINE HUNDRED
+10428 ; [.4452.0020.0002] # DESERET SMALL LETTER LONG I
+10400 ; [.4452.0020.0008] # DESERET CAPITAL LETTER LONG I
+10429 ; [.4453.0020.0002] # DESERET SMALL LETTER LONG E
+10401 ; [.4453.0020.0008] # DESERET CAPITAL LETTER LONG E
+1042A ; [.4454.0020.0002] # DESERET SMALL LETTER LONG A
+10402 ; [.4454.0020.0008] # DESERET CAPITAL LETTER LONG A
+1042B ; [.4455.0020.0002] # DESERET SMALL LETTER LONG AH
+10403 ; [.4455.0020.0008] # DESERET CAPITAL LETTER LONG AH
+1042C ; [.4456.0020.0002] # DESERET SMALL LETTER LONG O
+10404 ; [.4456.0020.0008] # DESERET CAPITAL LETTER LONG O
+1042D ; [.4457.0020.0002] # DESERET SMALL LETTER LONG OO
+10405 ; [.4457.0020.0008] # DESERET CAPITAL LETTER LONG OO
+1042E ; [.4458.0020.0002] # DESERET SMALL LETTER SHORT I
+10406 ; [.4458.0020.0008] # DESERET CAPITAL LETTER SHORT I
+1042F ; [.4459.0020.0002] # DESERET SMALL LETTER SHORT E
+10407 ; [.4459.0020.0008] # DESERET CAPITAL LETTER SHORT E
+10430 ; [.445A.0020.0002] # DESERET SMALL LETTER SHORT A
+10408 ; [.445A.0020.0008] # DESERET CAPITAL LETTER SHORT A
+10431 ; [.445B.0020.0002] # DESERET SMALL LETTER SHORT AH
+10409 ; [.445B.0020.0008] # DESERET CAPITAL LETTER SHORT AH
+10432 ; [.445C.0020.0002] # DESERET SMALL LETTER SHORT O
+1040A ; [.445C.0020.0008] # DESERET CAPITAL LETTER SHORT O
+10433 ; [.445D.0020.0002] # DESERET SMALL LETTER SHORT OO
+1040B ; [.445D.0020.0008] # DESERET CAPITAL LETTER SHORT OO
+10434 ; [.445E.0020.0002] # DESERET SMALL LETTER AY
+1040C ; [.445E.0020.0008] # DESERET CAPITAL LETTER AY
+10435 ; [.445F.0020.0002] # DESERET SMALL LETTER OW
+1040D ; [.445F.0020.0008] # DESERET CAPITAL LETTER OW
+10436 ; [.4460.0020.0002] # DESERET SMALL LETTER WU
+1040E ; [.4460.0020.0008] # DESERET CAPITAL LETTER WU
+10437 ; [.4461.0020.0002] # DESERET SMALL LETTER YEE
+1040F ; [.4461.0020.0008] # DESERET CAPITAL LETTER YEE
+10438 ; [.4462.0020.0002] # DESERET SMALL LETTER H
+10410 ; [.4462.0020.0008] # DESERET CAPITAL LETTER H
+10439 ; [.4463.0020.0002] # DESERET SMALL LETTER PEE
+10411 ; [.4463.0020.0008] # DESERET CAPITAL LETTER PEE
+1043A ; [.4464.0020.0002] # DESERET SMALL LETTER BEE
+10412 ; [.4464.0020.0008] # DESERET CAPITAL LETTER BEE
+1043B ; [.4465.0020.0002] # DESERET SMALL LETTER TEE
+10413 ; [.4465.0020.0008] # DESERET CAPITAL LETTER TEE
+1043C ; [.4466.0020.0002] # DESERET SMALL LETTER DEE
+10414 ; [.4466.0020.0008] # DESERET CAPITAL LETTER DEE
+1043D ; [.4467.0020.0002] # DESERET SMALL LETTER CHEE
+10415 ; [.4467.0020.0008] # DESERET CAPITAL LETTER CHEE
+1043E ; [.4468.0020.0002] # DESERET SMALL LETTER JEE
+10416 ; [.4468.0020.0008] # DESERET CAPITAL LETTER JEE
+1043F ; [.4469.0020.0002] # DESERET SMALL LETTER KAY
+10417 ; [.4469.0020.0008] # DESERET CAPITAL LETTER KAY
+10440 ; [.446A.0020.0002] # DESERET SMALL LETTER GAY
+10418 ; [.446A.0020.0008] # DESERET CAPITAL LETTER GAY
+10441 ; [.446B.0020.0002] # DESERET SMALL LETTER EF
+10419 ; [.446B.0020.0008] # DESERET CAPITAL LETTER EF
+10442 ; [.446C.0020.0002] # DESERET SMALL LETTER VEE
+1041A ; [.446C.0020.0008] # DESERET CAPITAL LETTER VEE
+10443 ; [.446D.0020.0002] # DESERET SMALL LETTER ETH
+1041B ; [.446D.0020.0008] # DESERET CAPITAL LETTER ETH
+10444 ; [.446E.0020.0002] # DESERET SMALL LETTER THEE
+1041C ; [.446E.0020.0008] # DESERET CAPITAL LETTER THEE
+10445 ; [.446F.0020.0002] # DESERET SMALL LETTER ES
+1041D ; [.446F.0020.0008] # DESERET CAPITAL LETTER ES
+10446 ; [.4470.0020.0002] # DESERET SMALL LETTER ZEE
+1041E ; [.4470.0020.0008] # DESERET CAPITAL LETTER ZEE
+10447 ; [.4471.0020.0002] # DESERET SMALL LETTER ESH
+1041F ; [.4471.0020.0008] # DESERET CAPITAL LETTER ESH
+10448 ; [.4472.0020.0002] # DESERET SMALL LETTER ZHEE
+10420 ; [.4472.0020.0008] # DESERET CAPITAL LETTER ZHEE
+10449 ; [.4473.0020.0002] # DESERET SMALL LETTER ER
+10421 ; [.4473.0020.0008] # DESERET CAPITAL LETTER ER
+1044A ; [.4474.0020.0002] # DESERET SMALL LETTER EL
+10422 ; [.4474.0020.0008] # DESERET CAPITAL LETTER EL
+1044B ; [.4475.0020.0002] # DESERET SMALL LETTER EM
+10423 ; [.4475.0020.0008] # DESERET CAPITAL LETTER EM
+1044C ; [.4476.0020.0002] # DESERET SMALL LETTER EN
+10424 ; [.4476.0020.0008] # DESERET CAPITAL LETTER EN
+1044D ; [.4477.0020.0002] # DESERET SMALL LETTER ENG
+10425 ; [.4477.0020.0008] # DESERET CAPITAL LETTER ENG
+1044E ; [.4478.0020.0002] # DESERET SMALL LETTER OI
+10426 ; [.4478.0020.0008] # DESERET CAPITAL LETTER OI
+1044F ; [.4479.0020.0002] # DESERET SMALL LETTER EW
+10427 ; [.4479.0020.0008] # DESERET CAPITAL LETTER EW
+10450 ; [.447A.0020.0002] # SHAVIAN LETTER PEEP
+10451 ; [.447B.0020.0002] # SHAVIAN LETTER TOT
+10452 ; [.447C.0020.0002] # SHAVIAN LETTER KICK
+10453 ; [.447D.0020.0002] # SHAVIAN LETTER FEE
+10454 ; [.447E.0020.0002] # SHAVIAN LETTER THIGH
+10455 ; [.447F.0020.0002] # SHAVIAN LETTER SO
+10456 ; [.4480.0020.0002] # SHAVIAN LETTER SURE
+10457 ; [.4481.0020.0002] # SHAVIAN LETTER CHURCH
+10458 ; [.4482.0020.0002] # SHAVIAN LETTER YEA
+10459 ; [.4483.0020.0002] # SHAVIAN LETTER HUNG
+1045A ; [.4484.0020.0002] # SHAVIAN LETTER BIB
+1045B ; [.4485.0020.0002] # SHAVIAN LETTER DEAD
+1045C ; [.4486.0020.0002] # SHAVIAN LETTER GAG
+1045D ; [.4487.0020.0002] # SHAVIAN LETTER VOW
+1045E ; [.4488.0020.0002] # SHAVIAN LETTER THEY
+1045F ; [.4489.0020.0002] # SHAVIAN LETTER ZOO
+10460 ; [.448A.0020.0002] # SHAVIAN LETTER MEASURE
+10461 ; [.448B.0020.0002] # SHAVIAN LETTER JUDGE
+10462 ; [.448C.0020.0002] # SHAVIAN LETTER WOE
+10463 ; [.448D.0020.0002] # SHAVIAN LETTER HA-HA
+10464 ; [.448E.0020.0002] # SHAVIAN LETTER LOLL
+10465 ; [.448F.0020.0002] # SHAVIAN LETTER MIME
+10466 ; [.4490.0020.0002] # SHAVIAN LETTER IF
+10467 ; [.4491.0020.0002] # SHAVIAN LETTER EGG
+10468 ; [.4492.0020.0002] # SHAVIAN LETTER ASH
+10469 ; [.4493.0020.0002] # SHAVIAN LETTER ADO
+1046A ; [.4494.0020.0002] # SHAVIAN LETTER ON
+1046B ; [.4495.0020.0002] # SHAVIAN LETTER WOOL
+1046C ; [.4496.0020.0002] # SHAVIAN LETTER OUT
+1046D ; [.4497.0020.0002] # SHAVIAN LETTER AH
+1046E ; [.4498.0020.0002] # SHAVIAN LETTER ROAR
+1046F ; [.4499.0020.0002] # SHAVIAN LETTER NUN
+10470 ; [.449A.0020.0002] # SHAVIAN LETTER EAT
+10471 ; [.449B.0020.0002] # SHAVIAN LETTER AGE
+10472 ; [.449C.0020.0002] # SHAVIAN LETTER ICE
+10473 ; [.449D.0020.0002] # SHAVIAN LETTER UP
+10474 ; [.449E.0020.0002] # SHAVIAN LETTER OAK
+10475 ; [.449F.0020.0002] # SHAVIAN LETTER OOZE
+10476 ; [.44A0.0020.0002] # SHAVIAN LETTER OIL
+10477 ; [.44A1.0020.0002] # SHAVIAN LETTER AWE
+10478 ; [.44A2.0020.0002] # SHAVIAN LETTER ARE
+10479 ; [.44A3.0020.0002] # SHAVIAN LETTER OR
+1047A ; [.44A4.0020.0002] # SHAVIAN LETTER AIR
+1047B ; [.44A5.0020.0002] # SHAVIAN LETTER ERR
+1047C ; [.44A6.0020.0002] # SHAVIAN LETTER ARRAY
+1047D ; [.44A7.0020.0002] # SHAVIAN LETTER EAR
+1047E ; [.44A8.0020.0002] # SHAVIAN LETTER IAN
+1047F ; [.44A9.0020.0002] # SHAVIAN LETTER YEW
+1BC00 ; [.44AA.0020.0002] # DUPLOYAN LETTER H
+1BC01 ; [.44AB.0020.0002] # DUPLOYAN LETTER X
+1BC02 ; [.44AC.0020.0002] # DUPLOYAN LETTER P
+1BC03 ; [.44AD.0020.0002] # DUPLOYAN LETTER T
+1BC04 ; [.44AE.0020.0002] # DUPLOYAN LETTER F
+1BC05 ; [.44AF.0020.0002] # DUPLOYAN LETTER K
+1BC06 ; [.44B0.0020.0002] # DUPLOYAN LETTER L
+1BC07 ; [.44B1.0020.0002] # DUPLOYAN LETTER B
+1BC08 ; [.44B2.0020.0002] # DUPLOYAN LETTER D
+1BC09 ; [.44B3.0020.0002] # DUPLOYAN LETTER V
+1BC0A ; [.44B4.0020.0002] # DUPLOYAN LETTER G
+1BC0B ; [.44B5.0020.0002] # DUPLOYAN LETTER R
+1BC0C ; [.44B6.0020.0002] # DUPLOYAN LETTER P N
+1BC0D ; [.44B7.0020.0002] # DUPLOYAN LETTER D S
+1BC0E ; [.44B8.0020.0002] # DUPLOYAN LETTER F N
+1BC0F ; [.44B9.0020.0002] # DUPLOYAN LETTER K M
+1BC10 ; [.44BA.0020.0002] # DUPLOYAN LETTER R S
+1BC11 ; [.44BB.0020.0002] # DUPLOYAN LETTER TH
+1BC12 ; [.44BC.0020.0002] # DUPLOYAN LETTER SLOAN DH
+1BC13 ; [.44BD.0020.0002] # DUPLOYAN LETTER DH
+1BC14 ; [.44BE.0020.0002] # DUPLOYAN LETTER KK
+1BC15 ; [.44BF.0020.0002] # DUPLOYAN LETTER SLOAN J
+1BC16 ; [.44C0.0020.0002] # DUPLOYAN LETTER HL
+1BC17 ; [.44C1.0020.0002] # DUPLOYAN LETTER LH
+1BC18 ; [.44C2.0020.0002] # DUPLOYAN LETTER RH
+1BC19 ; [.44C3.0020.0002] # DUPLOYAN LETTER M
+1BC1A ; [.44C4.0020.0002] # DUPLOYAN LETTER N
+1BC1B ; [.44C5.0020.0002] # DUPLOYAN LETTER J
+1BC1C ; [.44C6.0020.0002] # DUPLOYAN LETTER S
+1BC1D ; [.44C7.0020.0002] # DUPLOYAN LETTER M N
+1BC1E ; [.44C8.0020.0002] # DUPLOYAN LETTER N M
+1BC1F ; [.44C9.0020.0002] # DUPLOYAN LETTER J M
+1BC20 ; [.44CA.0020.0002] # DUPLOYAN LETTER S J
+1BC21 ; [.44CB.0020.0002] # DUPLOYAN LETTER M WITH DOT
+1BC22 ; [.44CC.0020.0002] # DUPLOYAN LETTER N WITH DOT
+1BC23 ; [.44CD.0020.0002] # DUPLOYAN LETTER J WITH DOT
+1BC24 ; [.44CE.0020.0002] # DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE
+1BC25 ; [.44CF.0020.0002] # DUPLOYAN LETTER S WITH DOT
+1BC26 ; [.44D0.0020.0002] # DUPLOYAN LETTER S WITH DOT BELOW
+1BC27 ; [.44D1.0020.0002] # DUPLOYAN LETTER M S
+1BC28 ; [.44D2.0020.0002] # DUPLOYAN LETTER N S
+1BC29 ; [.44D3.0020.0002] # DUPLOYAN LETTER J S
+1BC2A ; [.44D4.0020.0002] # DUPLOYAN LETTER S S
+1BC2B ; [.44D5.0020.0002] # DUPLOYAN LETTER M N S
+1BC2C ; [.44D6.0020.0002] # DUPLOYAN LETTER N M S
+1BC2D ; [.44D7.0020.0002] # DUPLOYAN LETTER J M S
+1BC2E ; [.44D8.0020.0002] # DUPLOYAN LETTER S J S
+1BC2F ; [.44D9.0020.0002] # DUPLOYAN LETTER J S WITH DOT
+1BC30 ; [.44DA.0020.0002] # DUPLOYAN LETTER J N
+1BC31 ; [.44DB.0020.0002] # DUPLOYAN LETTER J N S
+1BC32 ; [.44DC.0020.0002] # DUPLOYAN LETTER S T
+1BC33 ; [.44DD.0020.0002] # DUPLOYAN LETTER S T R
+1BC34 ; [.44DE.0020.0002] # DUPLOYAN LETTER S P
+1BC35 ; [.44DF.0020.0002] # DUPLOYAN LETTER S P R
+1BC36 ; [.44E0.0020.0002] # DUPLOYAN LETTER T S
+1BC37 ; [.44E1.0020.0002] # DUPLOYAN LETTER T R S
+1BC38 ; [.44E2.0020.0002] # DUPLOYAN LETTER W
+1BC39 ; [.44E3.0020.0002] # DUPLOYAN LETTER WH
+1BC3A ; [.44E4.0020.0002] # DUPLOYAN LETTER W R
+1BC3B ; [.44E5.0020.0002] # DUPLOYAN LETTER S N
+1BC3C ; [.44E6.0020.0002] # DUPLOYAN LETTER S M
+1BC3D ; [.44E7.0020.0002] # DUPLOYAN LETTER K R S
+1BC3E ; [.44E8.0020.0002] # DUPLOYAN LETTER G R S
+1BC3F ; [.44E9.0020.0002] # DUPLOYAN LETTER S K
+1BC40 ; [.44EA.0020.0002] # DUPLOYAN LETTER S K R
+1BC41 ; [.44EB.0020.0002] # DUPLOYAN LETTER A
+1BC42 ; [.44EC.0020.0002] # DUPLOYAN LETTER SLOAN OW
+1BC43 ; [.44ED.0020.0002] # DUPLOYAN LETTER OA
+1BC44 ; [.44EE.0020.0002] # DUPLOYAN LETTER O
+1BC45 ; [.44EF.0020.0002] # DUPLOYAN LETTER AOU
+1BC46 ; [.44F0.0020.0002] # DUPLOYAN LETTER I
+1BC47 ; [.44F1.0020.0002] # DUPLOYAN LETTER E
+1BC48 ; [.44F2.0020.0002] # DUPLOYAN LETTER IE
+1BC49 ; [.44F3.0020.0002] # DUPLOYAN LETTER SHORT I
+1BC4A ; [.44F4.0020.0002] # DUPLOYAN LETTER UI
+1BC4B ; [.44F5.0020.0002] # DUPLOYAN LETTER EE
+1BC4C ; [.44F6.0020.0002] # DUPLOYAN LETTER SLOAN EH
+1BC4D ; [.44F7.0020.0002] # DUPLOYAN LETTER ROMANIAN I
+1BC4E ; [.44F8.0020.0002] # DUPLOYAN LETTER SLOAN EE
+1BC4F ; [.44F9.0020.0002] # DUPLOYAN LETTER LONG I
+1BC50 ; [.44FA.0020.0002] # DUPLOYAN LETTER YE
+1BC51 ; [.44FB.0020.0002] # DUPLOYAN LETTER U
+1BC52 ; [.44FC.0020.0002] # DUPLOYAN LETTER EU
+1BC53 ; [.44FD.0020.0002] # DUPLOYAN LETTER XW
+1BC54 ; [.44FE.0020.0002] # DUPLOYAN LETTER U N
+1BC55 ; [.44FF.0020.0002] # DUPLOYAN LETTER LONG U
+1BC56 ; [.4500.0020.0002] # DUPLOYAN LETTER ROMANIAN U
+1BC57 ; [.4501.0020.0002] # DUPLOYAN LETTER UH
+1BC58 ; [.4502.0020.0002] # DUPLOYAN LETTER SLOAN U
+1BC59 ; [.4503.0020.0002] # DUPLOYAN LETTER OOH
+1BC5A ; [.4504.0020.0002] # DUPLOYAN LETTER OW
+1BC5B ; [.4505.0020.0002] # DUPLOYAN LETTER OU
+1BC5C ; [.4506.0020.0002] # DUPLOYAN LETTER WA
+1BC5D ; [.4507.0020.0002] # DUPLOYAN LETTER WO
+1BC5E ; [.4508.0020.0002] # DUPLOYAN LETTER WI
+1BC5F ; [.4509.0020.0002] # DUPLOYAN LETTER WEI
+1BC60 ; [.450A.0020.0002] # DUPLOYAN LETTER WOW
+1BC61 ; [.450B.0020.0002] # DUPLOYAN LETTER NASAL U
+1BC62 ; [.450C.0020.0002] # DUPLOYAN LETTER NASAL O
+1BC63 ; [.450D.0020.0002] # DUPLOYAN LETTER NASAL I
+1BC64 ; [.450E.0020.0002] # DUPLOYAN LETTER NASAL A
+1BC65 ; [.450F.0020.0002] # DUPLOYAN LETTER PERNIN AN
+1BC66 ; [.4510.0020.0002] # DUPLOYAN LETTER PERNIN AM
+1BC67 ; [.4511.0020.0002] # DUPLOYAN LETTER SLOAN EN
+1BC68 ; [.4512.0020.0002] # DUPLOYAN LETTER SLOAN AN
+1BC69 ; [.4513.0020.0002] # DUPLOYAN LETTER SLOAN ON
+1BC6A ; [.4514.0020.0002] # DUPLOYAN LETTER VOCALIC M
+1BC70 ; [.4515.0020.0002] # DUPLOYAN AFFIX LEFT HORIZONTAL SECANT
+1BC71 ; [.4516.0020.0002] # DUPLOYAN AFFIX MID HORIZONTAL SECANT
+1BC72 ; [.4517.0020.0002] # DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT
+1BC73 ; [.4518.0020.0002] # DUPLOYAN AFFIX LOW VERTICAL SECANT
+1BC74 ; [.4519.0020.0002] # DUPLOYAN AFFIX MID VERTICAL SECANT
+1BC75 ; [.451A.0020.0002] # DUPLOYAN AFFIX HIGH VERTICAL SECANT
+1BC76 ; [.451B.0020.0002] # DUPLOYAN AFFIX ATTACHED SECANT
+1BC77 ; [.451C.0020.0002] # DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT
+1BC78 ; [.451D.0020.0002] # DUPLOYAN AFFIX ATTACHED TANGENT
+1BC79 ; [.451E.0020.0002] # DUPLOYAN AFFIX ATTACHED TAIL
+1BC7A ; [.451F.0020.0002] # DUPLOYAN AFFIX ATTACHED E HOOK
+1BC7B ; [.4520.0020.0002] # DUPLOYAN AFFIX ATTACHED I HOOK
+1BC7C ; [.4521.0020.0002] # DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80 ; [.4522.0020.0002] # DUPLOYAN AFFIX HIGH ACUTE
+1BC81 ; [.4523.0020.0002] # DUPLOYAN AFFIX HIGH TIGHT ACUTE
+1BC82 ; [.4524.0020.0002] # DUPLOYAN AFFIX HIGH GRAVE
+1BC83 ; [.4525.0020.0002] # DUPLOYAN AFFIX HIGH LONG GRAVE
+1BC84 ; [.4526.0020.0002] # DUPLOYAN AFFIX HIGH DOT
+1BC85 ; [.4527.0020.0002] # DUPLOYAN AFFIX HIGH CIRCLE
+1BC86 ; [.4528.0020.0002] # DUPLOYAN AFFIX HIGH LINE
+1BC87 ; [.4529.0020.0002] # DUPLOYAN AFFIX HIGH WAVE
+1BC88 ; [.452A.0020.0002] # DUPLOYAN AFFIX HIGH VERTICAL
+1BC90 ; [.452B.0020.0002] # DUPLOYAN AFFIX LOW ACUTE
+1BC91 ; [.452C.0020.0002] # DUPLOYAN AFFIX LOW TIGHT ACUTE
+1BC92 ; [.452D.0020.0002] # DUPLOYAN AFFIX LOW GRAVE
+1BC93 ; [.452E.0020.0002] # DUPLOYAN AFFIX LOW LONG GRAVE
+1BC94 ; [.452F.0020.0002] # DUPLOYAN AFFIX LOW DOT
+1BC95 ; [.4530.0020.0002] # DUPLOYAN AFFIX LOW CIRCLE
+1BC96 ; [.4531.0020.0002] # DUPLOYAN AFFIX LOW LINE
+1BC97 ; [.4532.0020.0002] # DUPLOYAN AFFIX LOW WAVE
+1BC98 ; [.4533.0020.0002] # DUPLOYAN AFFIX LOW VERTICAL
+1BC99 ; [.4534.0020.0002] # DUPLOYAN AFFIX LOW ARROW
+10480 ; [.4535.0020.0002] # OSMANYA LETTER ALEF
+10481 ; [.4536.0020.0002] # OSMANYA LETTER BA
+10482 ; [.4537.0020.0002] # OSMANYA LETTER TA
+10483 ; [.4538.0020.0002] # OSMANYA LETTER JA
+10484 ; [.4539.0020.0002] # OSMANYA LETTER XA
+10485 ; [.453A.0020.0002] # OSMANYA LETTER KHA
+10486 ; [.453B.0020.0002] # OSMANYA LETTER DEEL
+10487 ; [.453C.0020.0002] # OSMANYA LETTER RA
+10488 ; [.453D.0020.0002] # OSMANYA LETTER SA
+10489 ; [.453E.0020.0002] # OSMANYA LETTER SHIIN
+1048A ; [.453F.0020.0002] # OSMANYA LETTER DHA
+1048B ; [.4540.0020.0002] # OSMANYA LETTER CAYN
+1048C ; [.4541.0020.0002] # OSMANYA LETTER GA
+1048D ; [.4542.0020.0002] # OSMANYA LETTER FA
+1048E ; [.4543.0020.0002] # OSMANYA LETTER QAAF
+1048F ; [.4544.0020.0002] # OSMANYA LETTER KAAF
+10490 ; [.4545.0020.0002] # OSMANYA LETTER LAAN
+10491 ; [.4546.0020.0002] # OSMANYA LETTER MIIN
+10492 ; [.4547.0020.0002] # OSMANYA LETTER NUUN
+10493 ; [.4548.0020.0002] # OSMANYA LETTER WAW
+10494 ; [.4549.0020.0002] # OSMANYA LETTER HA
+10495 ; [.454A.0020.0002] # OSMANYA LETTER YA
+10496 ; [.454B.0020.0002] # OSMANYA LETTER A
+10497 ; [.454C.0020.0002] # OSMANYA LETTER E
+10498 ; [.454D.0020.0002] # OSMANYA LETTER I
+10499 ; [.454E.0020.0002] # OSMANYA LETTER O
+1049A ; [.454F.0020.0002] # OSMANYA LETTER U
+1049B ; [.4550.0020.0002] # OSMANYA LETTER AA
+1049C ; [.4551.0020.0002] # OSMANYA LETTER EE
+1049D ; [.4552.0020.0002] # OSMANYA LETTER OO
+10500 ; [.4553.0020.0002] # ELBASAN LETTER A
+10501 ; [.4554.0020.0002] # ELBASAN LETTER BE
+10502 ; [.4555.0020.0002] # ELBASAN LETTER CE
+10503 ; [.4556.0020.0002] # ELBASAN LETTER CHE
+10504 ; [.4557.0020.0002] # ELBASAN LETTER DE
+10505 ; [.4558.0020.0002] # ELBASAN LETTER NDE
+10506 ; [.4559.0020.0002] # ELBASAN LETTER DHE
+10507 ; [.455A.0020.0002] # ELBASAN LETTER EI
+10508 ; [.455B.0020.0002] # ELBASAN LETTER E
+10509 ; [.455C.0020.0002] # ELBASAN LETTER FE
+1050A ; [.455D.0020.0002] # ELBASAN LETTER GE
+1050B ; [.455E.0020.0002] # ELBASAN LETTER GJE
+1050C ; [.455F.0020.0002] # ELBASAN LETTER HE
+1050D ; [.4560.0020.0002] # ELBASAN LETTER I
+1050E ; [.4561.0020.0002] # ELBASAN LETTER JE
+1050F ; [.4562.0020.0002] # ELBASAN LETTER KE
+10510 ; [.4563.0020.0002] # ELBASAN LETTER LE
+10511 ; [.4564.0020.0002] # ELBASAN LETTER LLE
+10512 ; [.4565.0020.0002] # ELBASAN LETTER ME
+10513 ; [.4566.0020.0002] # ELBASAN LETTER NE
+10514 ; [.4567.0020.0002] # ELBASAN LETTER NA
+10515 ; [.4568.0020.0002] # ELBASAN LETTER NJE
+10516 ; [.4569.0020.0002] # ELBASAN LETTER O
+10517 ; [.456A.0020.0002] # ELBASAN LETTER PE
+10518 ; [.456B.0020.0002] # ELBASAN LETTER QE
+10519 ; [.456C.0020.0002] # ELBASAN LETTER RE
+1051A ; [.456D.0020.0002] # ELBASAN LETTER RRE
+1051B ; [.456E.0020.0002] # ELBASAN LETTER SE
+1051C ; [.456F.0020.0002] # ELBASAN LETTER SHE
+1051D ; [.4570.0020.0002] # ELBASAN LETTER TE
+1051E ; [.4571.0020.0002] # ELBASAN LETTER THE
+1051F ; [.4572.0020.0002] # ELBASAN LETTER U
+10520 ; [.4573.0020.0002] # ELBASAN LETTER VE
+10521 ; [.4574.0020.0002] # ELBASAN LETTER XE
+10522 ; [.4575.0020.0002] # ELBASAN LETTER Y
+10523 ; [.4576.0020.0002] # ELBASAN LETTER ZE
+10524 ; [.4577.0020.0002] # ELBASAN LETTER ZHE
+10525 ; [.4578.0020.0002] # ELBASAN LETTER GHE
+10526 ; [.4579.0020.0002] # ELBASAN LETTER GHAMMA
+10527 ; [.457A.0020.0002] # ELBASAN LETTER KHE
+10530 ; [.457B.0020.0002] # CAUCASIAN ALBANIAN LETTER ALT
+10531 ; [.457C.0020.0002] # CAUCASIAN ALBANIAN LETTER BET
+10532 ; [.457D.0020.0002] # CAUCASIAN ALBANIAN LETTER GIM
+10533 ; [.457E.0020.0002] # CAUCASIAN ALBANIAN LETTER DAT
+10534 ; [.457F.0020.0002] # CAUCASIAN ALBANIAN LETTER EB
+10535 ; [.4580.0020.0002] # CAUCASIAN ALBANIAN LETTER ZARL
+10536 ; [.4581.0020.0002] # CAUCASIAN ALBANIAN LETTER EYN
+10537 ; [.4582.0020.0002] # CAUCASIAN ALBANIAN LETTER ZHIL
+10538 ; [.4583.0020.0002] # CAUCASIAN ALBANIAN LETTER TAS
+10539 ; [.4584.0020.0002] # CAUCASIAN ALBANIAN LETTER CHA
+1053A ; [.4585.0020.0002] # CAUCASIAN ALBANIAN LETTER YOWD
+1053B ; [.4586.0020.0002] # CAUCASIAN ALBANIAN LETTER ZHA
+1053C ; [.4587.0020.0002] # CAUCASIAN ALBANIAN LETTER IRB
+1053D ; [.4588.0020.0002] # CAUCASIAN ALBANIAN LETTER SHA
+1053E ; [.4589.0020.0002] # CAUCASIAN ALBANIAN LETTER LAN
+1053F ; [.458A.0020.0002] # CAUCASIAN ALBANIAN LETTER INYA
+10540 ; [.458B.0020.0002] # CAUCASIAN ALBANIAN LETTER XEYN
+10541 ; [.458C.0020.0002] # CAUCASIAN ALBANIAN LETTER DYAN
+10542 ; [.458D.0020.0002] # CAUCASIAN ALBANIAN LETTER CAR
+10543 ; [.458E.0020.0002] # CAUCASIAN ALBANIAN LETTER JHOX
+10544 ; [.458F.0020.0002] # CAUCASIAN ALBANIAN LETTER KAR
+10545 ; [.4590.0020.0002] # CAUCASIAN ALBANIAN LETTER LYIT
+10546 ; [.4591.0020.0002] # CAUCASIAN ALBANIAN LETTER HEYT
+10547 ; [.4592.0020.0002] # CAUCASIAN ALBANIAN LETTER QAY
+10548 ; [.4593.0020.0002] # CAUCASIAN ALBANIAN LETTER AOR
+10549 ; [.4594.0020.0002] # CAUCASIAN ALBANIAN LETTER CHOY
+1054A ; [.4595.0020.0002] # CAUCASIAN ALBANIAN LETTER CHI
+1054B ; [.4596.0020.0002] # CAUCASIAN ALBANIAN LETTER CYAY
+1054C ; [.4597.0020.0002] # CAUCASIAN ALBANIAN LETTER MAQ
+1054D ; [.4598.0020.0002] # CAUCASIAN ALBANIAN LETTER QAR
+1054E ; [.4599.0020.0002] # CAUCASIAN ALBANIAN LETTER NOWC
+1054F ; [.459A.0020.0002] # CAUCASIAN ALBANIAN LETTER DZYAY
+10550 ; [.459B.0020.0002] # CAUCASIAN ALBANIAN LETTER SHAK
+10551 ; [.459C.0020.0002] # CAUCASIAN ALBANIAN LETTER JAYN
+10552 ; [.459D.0020.0002] # CAUCASIAN ALBANIAN LETTER ON
+10553 ; [.459E.0020.0002] # CAUCASIAN ALBANIAN LETTER TYAY
+10554 ; [.459F.0020.0002] # CAUCASIAN ALBANIAN LETTER FAM
+10555 ; [.45A0.0020.0002] # CAUCASIAN ALBANIAN LETTER DZAY
+10556 ; [.45A1.0020.0002] # CAUCASIAN ALBANIAN LETTER CHAT
+10557 ; [.45A2.0020.0002] # CAUCASIAN ALBANIAN LETTER PEN
+10558 ; [.45A3.0020.0002] # CAUCASIAN ALBANIAN LETTER GHEYS
+10559 ; [.45A4.0020.0002] # CAUCASIAN ALBANIAN LETTER RAT
+1055A ; [.45A5.0020.0002] # CAUCASIAN ALBANIAN LETTER SEYK
+1055B ; [.45A6.0020.0002] # CAUCASIAN ALBANIAN LETTER VEYZ
+1055C ; [.45A7.0020.0002] # CAUCASIAN ALBANIAN LETTER TIWR
+1055D ; [.45A8.0020.0002] # CAUCASIAN ALBANIAN LETTER SHOY
+1055E ; [.45A9.0020.0002] # CAUCASIAN ALBANIAN LETTER IWN
+1055F ; [.45AA.0020.0002] # CAUCASIAN ALBANIAN LETTER CYAW
+10560 ; [.45AB.0020.0002] # CAUCASIAN ALBANIAN LETTER CAYN
+10561 ; [.45AC.0020.0002] # CAUCASIAN ALBANIAN LETTER YAYD
+10562 ; [.45AD.0020.0002] # CAUCASIAN ALBANIAN LETTER PIWR
+10563 ; [.45AE.0020.0002] # CAUCASIAN ALBANIAN LETTER KIW
+110D0 ; [.45AF.0020.0002] # SORA SOMPENG LETTER SAH
+110D1 ; [.45B0.0020.0002] # SORA SOMPENG LETTER TAH
+110D2 ; [.45B1.0020.0002] # SORA SOMPENG LETTER BAH
+110D3 ; [.45B2.0020.0002] # SORA SOMPENG LETTER CAH
+110D4 ; [.45B3.0020.0002] # SORA SOMPENG LETTER DAH
+110D5 ; [.45B4.0020.0002] # SORA SOMPENG LETTER GAH
+110D6 ; [.45B5.0020.0002] # SORA SOMPENG LETTER MAH
+110D7 ; [.45B6.0020.0002] # SORA SOMPENG LETTER NGAH
+110D8 ; [.45B7.0020.0002] # SORA SOMPENG LETTER LAH
+110D9 ; [.45B8.0020.0002] # SORA SOMPENG LETTER NAH
+110DA ; [.45B9.0020.0002] # SORA SOMPENG LETTER VAH
+110DB ; [.45BA.0020.0002] # SORA SOMPENG LETTER PAH
+110DC ; [.45BB.0020.0002] # SORA SOMPENG LETTER YAH
+110DD ; [.45BC.0020.0002] # SORA SOMPENG LETTER RAH
+110DE ; [.45BD.0020.0002] # SORA SOMPENG LETTER HAH
+110DF ; [.45BE.0020.0002] # SORA SOMPENG LETTER KAH
+110E0 ; [.45BF.0020.0002] # SORA SOMPENG LETTER JAH
+110E1 ; [.45C0.0020.0002] # SORA SOMPENG LETTER NYAH
+110E2 ; [.45C1.0020.0002] # SORA SOMPENG LETTER AH
+110E3 ; [.45C2.0020.0002] # SORA SOMPENG LETTER EEH
+110E4 ; [.45C3.0020.0002] # SORA SOMPENG LETTER IH
+110E5 ; [.45C4.0020.0002] # SORA SOMPENG LETTER UH
+110E6 ; [.45C5.0020.0002] # SORA SOMPENG LETTER OH
+110E7 ; [.45C6.0020.0002] # SORA SOMPENG LETTER EH
+110E8 ; [.45C7.0020.0002] # SORA SOMPENG LETTER MAE
+16A40 ; [.45C8.0020.0002] # MRO LETTER TA
+16A41 ; [.45C9.0020.0002] # MRO LETTER NGI
+16A42 ; [.45CA.0020.0002] # MRO LETTER YO
+16A43 ; [.45CB.0020.0002] # MRO LETTER MIM
+16A44 ; [.45CC.0020.0002] # MRO LETTER BA
+16A45 ; [.45CD.0020.0002] # MRO LETTER DA
+16A46 ; [.45CE.0020.0002] # MRO LETTER A
+16A47 ; [.45CF.0020.0002] # MRO LETTER PHI
+16A48 ; [.45D0.0020.0002] # MRO LETTER KHAI
+16A49 ; [.45D1.0020.0002] # MRO LETTER HAO
+16A4A ; [.45D2.0020.0002] # MRO LETTER DAI
+16A4B ; [.45D3.0020.0002] # MRO LETTER CHU
+16A4C ; [.45D4.0020.0002] # MRO LETTER KEAAE
+16A4D ; [.45D5.0020.0002] # MRO LETTER OL
+16A4E ; [.45D6.0020.0002] # MRO LETTER MAEM
+16A4F ; [.45D7.0020.0002] # MRO LETTER NIN
+16A50 ; [.45D8.0020.0002] # MRO LETTER PA
+16A51 ; [.45D9.0020.0002] # MRO LETTER OO
+16A52 ; [.45DA.0020.0002] # MRO LETTER O
+16A53 ; [.45DB.0020.0002] # MRO LETTER RO
+16A54 ; [.45DC.0020.0002] # MRO LETTER SHI
+16A55 ; [.45DD.0020.0002] # MRO LETTER THEA
+16A56 ; [.45DE.0020.0002] # MRO LETTER EA
+16A57 ; [.45DF.0020.0002] # MRO LETTER WA
+16A58 ; [.45E0.0020.0002] # MRO LETTER E
+16A59 ; [.45E1.0020.0002] # MRO LETTER KO
+16A5A ; [.45E2.0020.0002] # MRO LETTER LAN
+16A5B ; [.45E3.0020.0002] # MRO LETTER LA
+16A5C ; [.45E4.0020.0002] # MRO LETTER HAI
+16A5D ; [.45E5.0020.0002] # MRO LETTER RI
+16A5E ; [.45E6.0020.0002] # MRO LETTER TEK
+10000 ; [.45E7.0020.0002] # LINEAR B SYLLABLE B008 A
+10001 ; [.45E8.0020.0002] # LINEAR B SYLLABLE B038 E
+10002 ; [.45E9.0020.0002] # LINEAR B SYLLABLE B028 I
+10003 ; [.45EA.0020.0002] # LINEAR B SYLLABLE B061 O
+10004 ; [.45EB.0020.0002] # LINEAR B SYLLABLE B010 U
+10005 ; [.45EC.0020.0002] # LINEAR B SYLLABLE B001 DA
+10006 ; [.45ED.0020.0002] # LINEAR B SYLLABLE B045 DE
+10007 ; [.45EE.0020.0002] # LINEAR B SYLLABLE B007 DI
+10008 ; [.45EF.0020.0002] # LINEAR B SYLLABLE B014 DO
+10009 ; [.45F0.0020.0002] # LINEAR B SYLLABLE B051 DU
+1000A ; [.45F1.0020.0002] # LINEAR B SYLLABLE B057 JA
+1000B ; [.45F2.0020.0002] # LINEAR B SYLLABLE B046 JE
+1000D ; [.45F3.0020.0002] # LINEAR B SYLLABLE B036 JO
+1000E ; [.45F4.0020.0002] # LINEAR B SYLLABLE B065 JU
+1000F ; [.45F5.0020.0002] # LINEAR B SYLLABLE B077 KA
+10010 ; [.45F6.0020.0002] # LINEAR B SYLLABLE B044 KE
+10011 ; [.45F7.0020.0002] # LINEAR B SYLLABLE B067 KI
+10012 ; [.45F8.0020.0002] # LINEAR B SYLLABLE B070 KO
+10013 ; [.45F9.0020.0002] # LINEAR B SYLLABLE B081 KU
+10014 ; [.45FA.0020.0002] # LINEAR B SYLLABLE B080 MA
+10015 ; [.45FB.0020.0002] # LINEAR B SYLLABLE B013 ME
+10016 ; [.45FC.0020.0002] # LINEAR B SYLLABLE B073 MI
+10017 ; [.45FD.0020.0002] # LINEAR B SYLLABLE B015 MO
+10018 ; [.45FE.0020.0002] # LINEAR B SYLLABLE B023 MU
+10019 ; [.45FF.0020.0002] # LINEAR B SYLLABLE B006 NA
+1001A ; [.4600.0020.0002] # LINEAR B SYLLABLE B024 NE
+1001B ; [.4601.0020.0002] # LINEAR B SYLLABLE B030 NI
+1001C ; [.4602.0020.0002] # LINEAR B SYLLABLE B052 NO
+1001D ; [.4603.0020.0002] # LINEAR B SYLLABLE B055 NU
+1001E ; [.4604.0020.0002] # LINEAR B SYLLABLE B003 PA
+1001F ; [.4605.0020.0002] # LINEAR B SYLLABLE B072 PE
+10020 ; [.4606.0020.0002] # LINEAR B SYLLABLE B039 PI
+10021 ; [.4607.0020.0002] # LINEAR B SYLLABLE B011 PO
+10022 ; [.4608.0020.0002] # LINEAR B SYLLABLE B050 PU
+10023 ; [.4609.0020.0002] # LINEAR B SYLLABLE B016 QA
+10024 ; [.460A.0020.0002] # LINEAR B SYLLABLE B078 QE
+10025 ; [.460B.0020.0002] # LINEAR B SYLLABLE B021 QI
+10026 ; [.460C.0020.0002] # LINEAR B SYLLABLE B032 QO
+10028 ; [.460D.0020.0002] # LINEAR B SYLLABLE B060 RA
+10029 ; [.460E.0020.0002] # LINEAR B SYLLABLE B027 RE
+1002A ; [.460F.0020.0002] # LINEAR B SYLLABLE B053 RI
+1002B ; [.4610.0020.0002] # LINEAR B SYLLABLE B002 RO
+1002C ; [.4611.0020.0002] # LINEAR B SYLLABLE B026 RU
+1002D ; [.4612.0020.0002] # LINEAR B SYLLABLE B031 SA
+1002E ; [.4613.0020.0002] # LINEAR B SYLLABLE B009 SE
+1002F ; [.4614.0020.0002] # LINEAR B SYLLABLE B041 SI
+10030 ; [.4615.0020.0002] # LINEAR B SYLLABLE B012 SO
+10031 ; [.4616.0020.0002] # LINEAR B SYLLABLE B058 SU
+10032 ; [.4617.0020.0002] # LINEAR B SYLLABLE B059 TA
+10033 ; [.4618.0020.0002] # LINEAR B SYLLABLE B004 TE
+10034 ; [.4619.0020.0002] # LINEAR B SYLLABLE B037 TI
+10035 ; [.461A.0020.0002] # LINEAR B SYLLABLE B005 TO
+10036 ; [.461B.0020.0002] # LINEAR B SYLLABLE B069 TU
+10037 ; [.461C.0020.0002] # LINEAR B SYLLABLE B054 WA
+10038 ; [.461D.0020.0002] # LINEAR B SYLLABLE B075 WE
+10039 ; [.461E.0020.0002] # LINEAR B SYLLABLE B040 WI
+1003A ; [.461F.0020.0002] # LINEAR B SYLLABLE B042 WO
+1003C ; [.4620.0020.0002] # LINEAR B SYLLABLE B017 ZA
+1003D ; [.4621.0020.0002] # LINEAR B SYLLABLE B074 ZE
+1003F ; [.4622.0020.0002] # LINEAR B SYLLABLE B020 ZO
+10040 ; [.4623.0020.0002] # LINEAR B SYLLABLE B025 A2
+10041 ; [.4624.0020.0002] # LINEAR B SYLLABLE B043 A3
+10042 ; [.4625.0020.0002] # LINEAR B SYLLABLE B085 AU
+10043 ; [.4626.0020.0002] # LINEAR B SYLLABLE B071 DWE
+10044 ; [.4627.0020.0002] # LINEAR B SYLLABLE B090 DWO
+10045 ; [.4628.0020.0002] # LINEAR B SYLLABLE B048 NWA
+10046 ; [.4629.0020.0002] # LINEAR B SYLLABLE B029 PU2
+10047 ; [.462A.0020.0002] # LINEAR B SYLLABLE B062 PTE
+10048 ; [.462B.0020.0002] # LINEAR B SYLLABLE B076 RA2
+10049 ; [.462C.0020.0002] # LINEAR B SYLLABLE B033 RA3
+1004A ; [.462D.0020.0002] # LINEAR B SYLLABLE B068 RO2
+1004B ; [.462E.0020.0002] # LINEAR B SYLLABLE B066 TA2
+1004C ; [.462F.0020.0002] # LINEAR B SYLLABLE B087 TWE
+1004D ; [.4630.0020.0002] # LINEAR B SYLLABLE B091 TWO
+10050 ; [.4631.0020.0002] # LINEAR B SYMBOL B018
+10051 ; [.4632.0020.0002] # LINEAR B SYMBOL B019
+10052 ; [.4633.0020.0002] # LINEAR B SYMBOL B022
+10053 ; [.4634.0020.0002] # LINEAR B SYMBOL B034
+10054 ; [.4635.0020.0002] # LINEAR B SYMBOL B047
+10055 ; [.4636.0020.0002] # LINEAR B SYMBOL B049
+10056 ; [.4637.0020.0002] # LINEAR B SYMBOL B056
+10057 ; [.4638.0020.0002] # LINEAR B SYMBOL B063
+10058 ; [.4639.0020.0002] # LINEAR B SYMBOL B064
+10059 ; [.463A.0020.0002] # LINEAR B SYMBOL B079
+1005A ; [.463B.0020.0002] # LINEAR B SYMBOL B082
+1005B ; [.463C.0020.0002] # LINEAR B SYMBOL B083
+1005C ; [.463D.0020.0002] # LINEAR B SYMBOL B086
+1005D ; [.463E.0020.0002] # LINEAR B SYMBOL B089
+10080 ; [.463F.0020.0002] # LINEAR B IDEOGRAM B100 MAN
+10081 ; [.4640.0020.0002] # LINEAR B IDEOGRAM B102 WOMAN
+10082 ; [.4641.0020.0002] # LINEAR B IDEOGRAM B104 DEER
+10083 ; [.4642.0020.0002] # LINEAR B IDEOGRAM B105 EQUID
+10084 ; [.4643.0020.0002] # LINEAR B IDEOGRAM B105F MARE
+10085 ; [.4644.0020.0002] # LINEAR B IDEOGRAM B105M STALLION
+10086 ; [.4645.0020.0002] # LINEAR B IDEOGRAM B106F EWE
+10087 ; [.4646.0020.0002] # LINEAR B IDEOGRAM B106M RAM
+10088 ; [.4647.0020.0002] # LINEAR B IDEOGRAM B107F SHE-GOAT
+10089 ; [.4648.0020.0002] # LINEAR B IDEOGRAM B107M HE-GOAT
+1008A ; [.4649.0020.0002] # LINEAR B IDEOGRAM B108F SOW
+1008B ; [.464A.0020.0002] # LINEAR B IDEOGRAM B108M BOAR
+1008C ; [.464B.0020.0002] # LINEAR B IDEOGRAM B109F COW
+1008D ; [.464C.0020.0002] # LINEAR B IDEOGRAM B109M BULL
+1008E ; [.464D.0020.0002] # LINEAR B IDEOGRAM B120 WHEAT
+1008F ; [.464E.0020.0002] # LINEAR B IDEOGRAM B121 BARLEY
+10090 ; [.464F.0020.0002] # LINEAR B IDEOGRAM B122 OLIVE
+10091 ; [.4650.0020.0002] # LINEAR B IDEOGRAM B123 SPICE
+10092 ; [.4651.0020.0002] # LINEAR B IDEOGRAM B125 CYPERUS
+10093 ; [.4652.0020.0002] # LINEAR B MONOGRAM B127 KAPO
+10094 ; [.4653.0020.0002] # LINEAR B MONOGRAM B128 KANAKO
+10095 ; [.4654.0020.0002] # LINEAR B IDEOGRAM B130 OIL
+10096 ; [.4655.0020.0002] # LINEAR B IDEOGRAM B131 WINE
+10097 ; [.4656.0020.0002] # LINEAR B IDEOGRAM B132
+10098 ; [.4657.0020.0002] # LINEAR B MONOGRAM B133 AREPA
+10099 ; [.4658.0020.0002] # LINEAR B MONOGRAM B135 MERI
+1009A ; [.4659.0020.0002] # LINEAR B IDEOGRAM B140 BRONZE
+1009B ; [.465A.0020.0002] # LINEAR B IDEOGRAM B141 GOLD
+1009C ; [.465B.0020.0002] # LINEAR B IDEOGRAM B142
+1009D ; [.465C.0020.0002] # LINEAR B IDEOGRAM B145 WOOL
+1009E ; [.465D.0020.0002] # LINEAR B IDEOGRAM B146
+1009F ; [.465E.0020.0002] # LINEAR B IDEOGRAM B150
+100A0 ; [.465F.0020.0002] # LINEAR B IDEOGRAM B151 HORN
+100A1 ; [.4660.0020.0002] # LINEAR B IDEOGRAM B152
+100A2 ; [.4661.0020.0002] # LINEAR B IDEOGRAM B153
+100A3 ; [.4662.0020.0002] # LINEAR B IDEOGRAM B154
+100A4 ; [.4663.0020.0002] # LINEAR B MONOGRAM B156 TURO2
+100A5 ; [.4664.0020.0002] # LINEAR B IDEOGRAM B157
+100A6 ; [.4665.0020.0002] # LINEAR B IDEOGRAM B158
+100A7 ; [.4666.0020.0002] # LINEAR B IDEOGRAM B159 CLOTH
+100A8 ; [.4667.0020.0002] # LINEAR B IDEOGRAM B160
+100A9 ; [.4668.0020.0002] # LINEAR B IDEOGRAM B161
+100AA ; [.4669.0020.0002] # LINEAR B IDEOGRAM B162 GARMENT
+100AB ; [.466A.0020.0002] # LINEAR B IDEOGRAM B163 ARMOUR
+100AC ; [.466B.0020.0002] # LINEAR B IDEOGRAM B164
+100AD ; [.466C.0020.0002] # LINEAR B IDEOGRAM B165
+100AE ; [.466D.0020.0002] # LINEAR B IDEOGRAM B166
+100AF ; [.466E.0020.0002] # LINEAR B IDEOGRAM B167
+100B0 ; [.466F.0020.0002] # LINEAR B IDEOGRAM B168
+100B1 ; [.4670.0020.0002] # LINEAR B IDEOGRAM B169
+100B2 ; [.4671.0020.0002] # LINEAR B IDEOGRAM B170
+100B3 ; [.4672.0020.0002] # LINEAR B IDEOGRAM B171
+100B4 ; [.4673.0020.0002] # LINEAR B IDEOGRAM B172
+100B5 ; [.4674.0020.0002] # LINEAR B IDEOGRAM B173 MONTH
+100B6 ; [.4675.0020.0002] # LINEAR B IDEOGRAM B174
+100B7 ; [.4676.0020.0002] # LINEAR B IDEOGRAM B176 TREE
+100B8 ; [.4677.0020.0002] # LINEAR B IDEOGRAM B177
+100B9 ; [.4678.0020.0002] # LINEAR B IDEOGRAM B178
+100BA ; [.4679.0020.0002] # LINEAR B IDEOGRAM B179
+100BB ; [.467A.0020.0002] # LINEAR B IDEOGRAM B180
+100BC ; [.467B.0020.0002] # LINEAR B IDEOGRAM B181
+100BD ; [.467C.0020.0002] # LINEAR B IDEOGRAM B182
+100BE ; [.467D.0020.0002] # LINEAR B IDEOGRAM B183
+100BF ; [.467E.0020.0002] # LINEAR B IDEOGRAM B184
+100C0 ; [.467F.0020.0002] # LINEAR B IDEOGRAM B185
+100C1 ; [.4680.0020.0002] # LINEAR B IDEOGRAM B189
+100C2 ; [.4681.0020.0002] # LINEAR B IDEOGRAM B190
+100C3 ; [.4682.0020.0002] # LINEAR B IDEOGRAM B191 HELMET
+100C4 ; [.4683.0020.0002] # LINEAR B IDEOGRAM B220 FOOTSTOOL
+100C5 ; [.4684.0020.0002] # LINEAR B IDEOGRAM B225 BATHTUB
+100C6 ; [.4685.0020.0002] # LINEAR B IDEOGRAM B230 SPEAR
+100C7 ; [.4686.0020.0002] # LINEAR B IDEOGRAM B231 ARROW
+100C8 ; [.4687.0020.0002] # LINEAR B IDEOGRAM B232
+100C9 ; [.4688.0020.0002] # LINEAR B IDEOGRAM B233 SWORD
+100CA ; [.4689.0020.0002] # LINEAR B IDEOGRAM B234
+100CB ; [.468A.0020.0002] # LINEAR B IDEOGRAM B236
+100CC ; [.468B.0020.0002] # LINEAR B IDEOGRAM B240 WHEELED CHARIOT
+100CD ; [.468C.0020.0002] # LINEAR B IDEOGRAM B241 CHARIOT
+100CE ; [.468D.0020.0002] # LINEAR B IDEOGRAM B242 CHARIOT FRAME
+100CF ; [.468E.0020.0002] # LINEAR B IDEOGRAM B243 WHEEL
+100D0 ; [.468F.0020.0002] # LINEAR B IDEOGRAM B245
+100D1 ; [.4690.0020.0002] # LINEAR B IDEOGRAM B246
+100D2 ; [.4691.0020.0002] # LINEAR B MONOGRAM B247 DIPTE
+100D3 ; [.4692.0020.0002] # LINEAR B IDEOGRAM B248
+100D4 ; [.4693.0020.0002] # LINEAR B IDEOGRAM B249
+100D5 ; [.4694.0020.0002] # LINEAR B IDEOGRAM B251
+100D6 ; [.4695.0020.0002] # LINEAR B IDEOGRAM B252
+100D7 ; [.4696.0020.0002] # LINEAR B IDEOGRAM B253
+100D8 ; [.4697.0020.0002] # LINEAR B IDEOGRAM B254 DART
+100D9 ; [.4698.0020.0002] # LINEAR B IDEOGRAM B255
+100DA ; [.4699.0020.0002] # LINEAR B IDEOGRAM B256
+100DB ; [.469A.0020.0002] # LINEAR B IDEOGRAM B257
+100DC ; [.469B.0020.0002] # LINEAR B IDEOGRAM B258
+100DD ; [.469C.0020.0002] # LINEAR B IDEOGRAM B259
+100DE ; [.469D.0020.0002] # LINEAR B IDEOGRAM VESSEL B155
+100DF ; [.469E.0020.0002] # LINEAR B IDEOGRAM VESSEL B200
+100E0 ; [.469F.0020.0002] # LINEAR B IDEOGRAM VESSEL B201
+100E1 ; [.46A0.0020.0002] # LINEAR B IDEOGRAM VESSEL B202
+100E2 ; [.46A1.0020.0002] # LINEAR B IDEOGRAM VESSEL B203
+100E3 ; [.46A2.0020.0002] # LINEAR B IDEOGRAM VESSEL B204
+100E4 ; [.46A3.0020.0002] # LINEAR B IDEOGRAM VESSEL B205
+100E5 ; [.46A4.0020.0002] # LINEAR B IDEOGRAM VESSEL B206
+100E6 ; [.46A5.0020.0002] # LINEAR B IDEOGRAM VESSEL B207
+100E7 ; [.46A6.0020.0002] # LINEAR B IDEOGRAM VESSEL B208
+100E8 ; [.46A7.0020.0002] # LINEAR B IDEOGRAM VESSEL B209
+100E9 ; [.46A8.0020.0002] # LINEAR B IDEOGRAM VESSEL B210
+100EA ; [.46A9.0020.0002] # LINEAR B IDEOGRAM VESSEL B211
+100EB ; [.46AA.0020.0002] # LINEAR B IDEOGRAM VESSEL B212
+100EC ; [.46AB.0020.0002] # LINEAR B IDEOGRAM VESSEL B213
+100ED ; [.46AC.0020.0002] # LINEAR B IDEOGRAM VESSEL B214
+100EE ; [.46AD.0020.0002] # LINEAR B IDEOGRAM VESSEL B215
+100EF ; [.46AE.0020.0002] # LINEAR B IDEOGRAM VESSEL B216
+100F0 ; [.46AF.0020.0002] # LINEAR B IDEOGRAM VESSEL B217
+100F1 ; [.46B0.0020.0002] # LINEAR B IDEOGRAM VESSEL B218
+100F2 ; [.46B1.0020.0002] # LINEAR B IDEOGRAM VESSEL B219
+100F3 ; [.46B2.0020.0002] # LINEAR B IDEOGRAM VESSEL B221
+100F4 ; [.46B3.0020.0002] # LINEAR B IDEOGRAM VESSEL B222
+100F5 ; [.46B4.0020.0002] # LINEAR B IDEOGRAM VESSEL B226
+100F6 ; [.46B5.0020.0002] # LINEAR B IDEOGRAM VESSEL B227
+100F7 ; [.46B6.0020.0002] # LINEAR B IDEOGRAM VESSEL B228
+100F8 ; [.46B7.0020.0002] # LINEAR B IDEOGRAM VESSEL B229
+100F9 ; [.46B8.0020.0002] # LINEAR B IDEOGRAM VESSEL B250
+100FA ; [.46B9.0020.0002] # LINEAR B IDEOGRAM VESSEL B305
+10600 ; [.46BA.0020.0002] # LINEAR A SIGN AB001
+10601 ; [.46BB.0020.0002] # LINEAR A SIGN AB002
+10602 ; [.46BC.0020.0002] # LINEAR A SIGN AB003
+10603 ; [.46BD.0020.0002] # LINEAR A SIGN AB004
+10604 ; [.46BE.0020.0002] # LINEAR A SIGN AB005
+10605 ; [.46BF.0020.0002] # LINEAR A SIGN AB006
+10606 ; [.46C0.0020.0002] # LINEAR A SIGN AB007
+10607 ; [.46C1.0020.0002] # LINEAR A SIGN AB008
+10608 ; [.46C2.0020.0002] # LINEAR A SIGN AB009
+10609 ; [.46C3.0020.0002] # LINEAR A SIGN AB010
+1060A ; [.46C4.0020.0002] # LINEAR A SIGN AB011
+1060B ; [.46C5.0020.0002] # LINEAR A SIGN AB013
+1060C ; [.46C6.0020.0002] # LINEAR A SIGN AB016
+1060D ; [.46C7.0020.0002] # LINEAR A SIGN AB017
+1060E ; [.46C8.0020.0002] # LINEAR A SIGN AB020
+1060F ; [.46C9.0020.0002] # LINEAR A SIGN AB021
+10610 ; [.46CA.0020.0002] # LINEAR A SIGN AB021F
+10611 ; [.46CB.0020.0002] # LINEAR A SIGN AB021M
+10612 ; [.46CC.0020.0002] # LINEAR A SIGN AB022
+10613 ; [.46CD.0020.0002] # LINEAR A SIGN AB022F
+10614 ; [.46CE.0020.0002] # LINEAR A SIGN AB022M
+10615 ; [.46CF.0020.0002] # LINEAR A SIGN AB023
+10616 ; [.46D0.0020.0002] # LINEAR A SIGN AB023M
+10617 ; [.46D1.0020.0002] # LINEAR A SIGN AB024
+10618 ; [.46D2.0020.0002] # LINEAR A SIGN AB026
+10619 ; [.46D3.0020.0002] # LINEAR A SIGN AB027
+1061A ; [.46D4.0020.0002] # LINEAR A SIGN AB028
+1061B ; [.46D5.0020.0002] # LINEAR A SIGN A028B
+1061C ; [.46D6.0020.0002] # LINEAR A SIGN AB029
+1061D ; [.46D7.0020.0002] # LINEAR A SIGN AB030
+1061E ; [.46D8.0020.0002] # LINEAR A SIGN AB031
+1061F ; [.46D9.0020.0002] # LINEAR A SIGN AB034
+10620 ; [.46DA.0020.0002] # LINEAR A SIGN AB037
+10621 ; [.46DB.0020.0002] # LINEAR A SIGN AB038
+10622 ; [.46DC.0020.0002] # LINEAR A SIGN AB039
+10623 ; [.46DD.0020.0002] # LINEAR A SIGN AB040
+10624 ; [.46DE.0020.0002] # LINEAR A SIGN AB041
+10625 ; [.46DF.0020.0002] # LINEAR A SIGN AB044
+10626 ; [.46E0.0020.0002] # LINEAR A SIGN AB045
+10627 ; [.46E1.0020.0002] # LINEAR A SIGN AB046
+10628 ; [.46E2.0020.0002] # LINEAR A SIGN AB047
+10629 ; [.46E3.0020.0002] # LINEAR A SIGN AB048
+1062A ; [.46E4.0020.0002] # LINEAR A SIGN AB049
+1062B ; [.46E5.0020.0002] # LINEAR A SIGN AB050
+1062C ; [.46E6.0020.0002] # LINEAR A SIGN AB051
+1062D ; [.46E7.0020.0002] # LINEAR A SIGN AB053
+1062E ; [.46E8.0020.0002] # LINEAR A SIGN AB054
+1062F ; [.46E9.0020.0002] # LINEAR A SIGN AB055
+10630 ; [.46EA.0020.0002] # LINEAR A SIGN AB056
+10631 ; [.46EB.0020.0002] # LINEAR A SIGN AB057
+10632 ; [.46EC.0020.0002] # LINEAR A SIGN AB058
+10633 ; [.46ED.0020.0002] # LINEAR A SIGN AB059
+10634 ; [.46EE.0020.0002] # LINEAR A SIGN AB060
+10635 ; [.46EF.0020.0002] # LINEAR A SIGN AB061
+10636 ; [.46F0.0020.0002] # LINEAR A SIGN AB065
+10637 ; [.46F1.0020.0002] # LINEAR A SIGN AB066
+10638 ; [.46F2.0020.0002] # LINEAR A SIGN AB067
+10639 ; [.46F3.0020.0002] # LINEAR A SIGN AB069
+1063A ; [.46F4.0020.0002] # LINEAR A SIGN AB070
+1063B ; [.46F5.0020.0002] # LINEAR A SIGN AB073
+1063C ; [.46F6.0020.0002] # LINEAR A SIGN AB074
+1063D ; [.46F7.0020.0002] # LINEAR A SIGN AB076
+1063E ; [.46F8.0020.0002] # LINEAR A SIGN AB077
+1063F ; [.46F9.0020.0002] # LINEAR A SIGN AB078
+10640 ; [.46FA.0020.0002] # LINEAR A SIGN AB079
+10641 ; [.46FB.0020.0002] # LINEAR A SIGN AB080
+10642 ; [.46FC.0020.0002] # LINEAR A SIGN AB081
+10643 ; [.46FD.0020.0002] # LINEAR A SIGN AB082
+10644 ; [.46FE.0020.0002] # LINEAR A SIGN AB085
+10645 ; [.46FF.0020.0002] # LINEAR A SIGN AB086
+10646 ; [.4700.0020.0002] # LINEAR A SIGN AB087
+10647 ; [.4701.0020.0002] # LINEAR A SIGN A100-102
+10648 ; [.4702.0020.0002] # LINEAR A SIGN AB118
+10649 ; [.4703.0020.0002] # LINEAR A SIGN AB120
+1064A ; [.4704.0020.0002] # LINEAR A SIGN A120B
+1064B ; [.4705.0020.0002] # LINEAR A SIGN AB122
+1064C ; [.4706.0020.0002] # LINEAR A SIGN AB123
+1064D ; [.4707.0020.0002] # LINEAR A SIGN AB131A
+1064E ; [.4708.0020.0002] # LINEAR A SIGN AB131B
+1064F ; [.4709.0020.0002] # LINEAR A SIGN A131C
+10650 ; [.470A.0020.0002] # LINEAR A SIGN AB164
+10651 ; [.470B.0020.0002] # LINEAR A SIGN AB171
+10652 ; [.470C.0020.0002] # LINEAR A SIGN AB180
+10653 ; [.470D.0020.0002] # LINEAR A SIGN AB188
+10654 ; [.470E.0020.0002] # LINEAR A SIGN AB191
+10655 ; [.470F.0020.0002] # LINEAR A SIGN A301
+10656 ; [.4710.0020.0002] # LINEAR A SIGN A302
+10657 ; [.4711.0020.0002] # LINEAR A SIGN A303
+10658 ; [.4712.0020.0002] # LINEAR A SIGN A304
+10659 ; [.4713.0020.0002] # LINEAR A SIGN A305
+1065A ; [.4714.0020.0002] # LINEAR A SIGN A306
+1065B ; [.4715.0020.0002] # LINEAR A SIGN A307
+1065C ; [.4716.0020.0002] # LINEAR A SIGN A308
+1065D ; [.4717.0020.0002] # LINEAR A SIGN A309A
+1065E ; [.4718.0020.0002] # LINEAR A SIGN A309B
+1065F ; [.4719.0020.0002] # LINEAR A SIGN A309C
+10660 ; [.471A.0020.0002] # LINEAR A SIGN A310
+10661 ; [.471B.0020.0002] # LINEAR A SIGN A311
+10662 ; [.471C.0020.0002] # LINEAR A SIGN A312
+10663 ; [.471D.0020.0002] # LINEAR A SIGN A313A
+10664 ; [.471E.0020.0002] # LINEAR A SIGN A313B
+10665 ; [.471F.0020.0002] # LINEAR A SIGN A313C
+10666 ; [.4720.0020.0002] # LINEAR A SIGN A314
+10667 ; [.4721.0020.0002] # LINEAR A SIGN A315
+10668 ; [.4722.0020.0002] # LINEAR A SIGN A316
+10669 ; [.4723.0020.0002] # LINEAR A SIGN A317
+1066A ; [.4724.0020.0002] # LINEAR A SIGN A318
+1066B ; [.4725.0020.0002] # LINEAR A SIGN A319
+1066C ; [.4726.0020.0002] # LINEAR A SIGN A320
+1066D ; [.4727.0020.0002] # LINEAR A SIGN A321
+1066E ; [.4728.0020.0002] # LINEAR A SIGN A322
+1066F ; [.4729.0020.0002] # LINEAR A SIGN A323
+10670 ; [.472A.0020.0002] # LINEAR A SIGN A324
+10671 ; [.472B.0020.0002] # LINEAR A SIGN A325
+10672 ; [.472C.0020.0002] # LINEAR A SIGN A326
+10673 ; [.472D.0020.0002] # LINEAR A SIGN A327
+10674 ; [.472E.0020.0002] # LINEAR A SIGN A328
+10675 ; [.472F.0020.0002] # LINEAR A SIGN A329
+10676 ; [.4730.0020.0002] # LINEAR A SIGN A330
+10677 ; [.4731.0020.0002] # LINEAR A SIGN A331
+10678 ; [.4732.0020.0002] # LINEAR A SIGN A332
+10679 ; [.4733.0020.0002] # LINEAR A SIGN A333
+1067A ; [.4734.0020.0002] # LINEAR A SIGN A334
+1067B ; [.4735.0020.0002] # LINEAR A SIGN A335
+1067C ; [.4736.0020.0002] # LINEAR A SIGN A336
+1067D ; [.4737.0020.0002] # LINEAR A SIGN A337
+1067E ; [.4738.0020.0002] # LINEAR A SIGN A338
+1067F ; [.4739.0020.0002] # LINEAR A SIGN A339
+10680 ; [.473A.0020.0002] # LINEAR A SIGN A340
+10681 ; [.473B.0020.0002] # LINEAR A SIGN A341
+10682 ; [.473C.0020.0002] # LINEAR A SIGN A342
+10683 ; [.473D.0020.0002] # LINEAR A SIGN A343
+10684 ; [.473E.0020.0002] # LINEAR A SIGN A344
+10685 ; [.473F.0020.0002] # LINEAR A SIGN A345
+10686 ; [.4740.0020.0002] # LINEAR A SIGN A346
+10687 ; [.4741.0020.0002] # LINEAR A SIGN A347
+10688 ; [.4742.0020.0002] # LINEAR A SIGN A348
+10689 ; [.4743.0020.0002] # LINEAR A SIGN A349
+1068A ; [.4744.0020.0002] # LINEAR A SIGN A350
+1068B ; [.4745.0020.0002] # LINEAR A SIGN A351
+1068C ; [.4746.0020.0002] # LINEAR A SIGN A352
+1068D ; [.4747.0020.0002] # LINEAR A SIGN A353
+1068E ; [.4748.0020.0002] # LINEAR A SIGN A354
+1068F ; [.4749.0020.0002] # LINEAR A SIGN A355
+10690 ; [.474A.0020.0002] # LINEAR A SIGN A356
+10691 ; [.474B.0020.0002] # LINEAR A SIGN A357
+10692 ; [.474C.0020.0002] # LINEAR A SIGN A358
+10693 ; [.474D.0020.0002] # LINEAR A SIGN A359
+10694 ; [.474E.0020.0002] # LINEAR A SIGN A360
+10695 ; [.474F.0020.0002] # LINEAR A SIGN A361
+10696 ; [.4750.0020.0002] # LINEAR A SIGN A362
+10697 ; [.4751.0020.0002] # LINEAR A SIGN A363
+10698 ; [.4752.0020.0002] # LINEAR A SIGN A364
+10699 ; [.4753.0020.0002] # LINEAR A SIGN A365
+1069A ; [.4754.0020.0002] # LINEAR A SIGN A366
+1069B ; [.4755.0020.0002] # LINEAR A SIGN A367
+1069C ; [.4756.0020.0002] # LINEAR A SIGN A368
+1069D ; [.4757.0020.0002] # LINEAR A SIGN A369
+1069E ; [.4758.0020.0002] # LINEAR A SIGN A370
+1069F ; [.4759.0020.0002] # LINEAR A SIGN A371
+106A0 ; [.475A.0020.0002] # LINEAR A SIGN A400-VAS
+106A1 ; [.475B.0020.0002] # LINEAR A SIGN A401-VAS
+106A2 ; [.475C.0020.0002] # LINEAR A SIGN A402-VAS
+106A3 ; [.475D.0020.0002] # LINEAR A SIGN A403-VAS
+106A4 ; [.475E.0020.0002] # LINEAR A SIGN A404-VAS
+106A5 ; [.475F.0020.0002] # LINEAR A SIGN A405-VAS
+106A6 ; [.4760.0020.0002] # LINEAR A SIGN A406-VAS
+106A7 ; [.4761.0020.0002] # LINEAR A SIGN A407-VAS
+106A8 ; [.4762.0020.0002] # LINEAR A SIGN A408-VAS
+106A9 ; [.4763.0020.0002] # LINEAR A SIGN A409-VAS
+106AA ; [.4764.0020.0002] # LINEAR A SIGN A410-VAS
+106AB ; [.4765.0020.0002] # LINEAR A SIGN A411-VAS
+106AC ; [.4766.0020.0002] # LINEAR A SIGN A412-VAS
+106AD ; [.4767.0020.0002] # LINEAR A SIGN A413-VAS
+106AE ; [.4768.0020.0002] # LINEAR A SIGN A414-VAS
+106AF ; [.4769.0020.0002] # LINEAR A SIGN A415-VAS
+106B0 ; [.476A.0020.0002] # LINEAR A SIGN A416-VAS
+106B1 ; [.476B.0020.0002] # LINEAR A SIGN A417-VAS
+106B2 ; [.476C.0020.0002] # LINEAR A SIGN A418-VAS
+106B3 ; [.476D.0020.0002] # LINEAR A SIGN A501
+106B4 ; [.476E.0020.0002] # LINEAR A SIGN A502
+106B5 ; [.476F.0020.0002] # LINEAR A SIGN A503
+106B6 ; [.4770.0020.0002] # LINEAR A SIGN A504
+106B7 ; [.4771.0020.0002] # LINEAR A SIGN A505
+106B8 ; [.4772.0020.0002] # LINEAR A SIGN A506
+106B9 ; [.4773.0020.0002] # LINEAR A SIGN A508
+106BA ; [.4774.0020.0002] # LINEAR A SIGN A509
+106BB ; [.4775.0020.0002] # LINEAR A SIGN A510
+106BC ; [.4776.0020.0002] # LINEAR A SIGN A511
+106BD ; [.4777.0020.0002] # LINEAR A SIGN A512
+106BE ; [.4778.0020.0002] # LINEAR A SIGN A513
+106BF ; [.4779.0020.0002] # LINEAR A SIGN A515
+106C0 ; [.477A.0020.0002] # LINEAR A SIGN A516
+106C1 ; [.477B.0020.0002] # LINEAR A SIGN A520
+106C2 ; [.477C.0020.0002] # LINEAR A SIGN A521
+106C3 ; [.477D.0020.0002] # LINEAR A SIGN A523
+106C4 ; [.477E.0020.0002] # LINEAR A SIGN A524
+106C5 ; [.477F.0020.0002] # LINEAR A SIGN A525
+106C6 ; [.4780.0020.0002] # LINEAR A SIGN A526
+106C7 ; [.4781.0020.0002] # LINEAR A SIGN A527
+106C8 ; [.4782.0020.0002] # LINEAR A SIGN A528
+106C9 ; [.4783.0020.0002] # LINEAR A SIGN A529
+106CA ; [.4784.0020.0002] # LINEAR A SIGN A530
+106CB ; [.4785.0020.0002] # LINEAR A SIGN A531
+106CC ; [.4786.0020.0002] # LINEAR A SIGN A532
+106CD ; [.4787.0020.0002] # LINEAR A SIGN A534
+106CE ; [.4788.0020.0002] # LINEAR A SIGN A535
+106CF ; [.4789.0020.0002] # LINEAR A SIGN A536
+106D0 ; [.478A.0020.0002] # LINEAR A SIGN A537
+106D1 ; [.478B.0020.0002] # LINEAR A SIGN A538
+106D2 ; [.478C.0020.0002] # LINEAR A SIGN A539
+106D3 ; [.478D.0020.0002] # LINEAR A SIGN A540
+106D4 ; [.478E.0020.0002] # LINEAR A SIGN A541
+106D5 ; [.478F.0020.0002] # LINEAR A SIGN A542
+106D6 ; [.4790.0020.0002] # LINEAR A SIGN A545
+106D7 ; [.4791.0020.0002] # LINEAR A SIGN A547
+106D8 ; [.4792.0020.0002] # LINEAR A SIGN A548
+106D9 ; [.4793.0020.0002] # LINEAR A SIGN A549
+106DA ; [.4794.0020.0002] # LINEAR A SIGN A550
+106DB ; [.4795.0020.0002] # LINEAR A SIGN A551
+106DC ; [.4796.0020.0002] # LINEAR A SIGN A552
+106DD ; [.4797.0020.0002] # LINEAR A SIGN A553
+106DE ; [.4798.0020.0002] # LINEAR A SIGN A554
+106DF ; [.4799.0020.0002] # LINEAR A SIGN A555
+106E0 ; [.479A.0020.0002] # LINEAR A SIGN A556
+106E1 ; [.479B.0020.0002] # LINEAR A SIGN A557
+106E2 ; [.479C.0020.0002] # LINEAR A SIGN A559
+106E3 ; [.479D.0020.0002] # LINEAR A SIGN A563
+106E4 ; [.479E.0020.0002] # LINEAR A SIGN A564
+106E5 ; [.479F.0020.0002] # LINEAR A SIGN A565
+106E6 ; [.47A0.0020.0002] # LINEAR A SIGN A566
+106E7 ; [.47A1.0020.0002] # LINEAR A SIGN A568
+106E8 ; [.47A2.0020.0002] # LINEAR A SIGN A569
+106E9 ; [.47A3.0020.0002] # LINEAR A SIGN A570
+106EA ; [.47A4.0020.0002] # LINEAR A SIGN A571
+106EB ; [.47A5.0020.0002] # LINEAR A SIGN A572
+106EC ; [.47A6.0020.0002] # LINEAR A SIGN A573
+106ED ; [.47A7.0020.0002] # LINEAR A SIGN A574
+106EE ; [.47A8.0020.0002] # LINEAR A SIGN A575
+106EF ; [.47A9.0020.0002] # LINEAR A SIGN A576
+106F0 ; [.47AA.0020.0002] # LINEAR A SIGN A577
+106F1 ; [.47AB.0020.0002] # LINEAR A SIGN A578
+106F2 ; [.47AC.0020.0002] # LINEAR A SIGN A579
+106F3 ; [.47AD.0020.0002] # LINEAR A SIGN A580
+106F4 ; [.47AE.0020.0002] # LINEAR A SIGN A581
+106F5 ; [.47AF.0020.0002] # LINEAR A SIGN A582
+106F6 ; [.47B0.0020.0002] # LINEAR A SIGN A583
+106F7 ; [.47B1.0020.0002] # LINEAR A SIGN A584
+106F8 ; [.47B2.0020.0002] # LINEAR A SIGN A585
+106F9 ; [.47B3.0020.0002] # LINEAR A SIGN A586
+106FA ; [.47B4.0020.0002] # LINEAR A SIGN A587
+106FB ; [.47B5.0020.0002] # LINEAR A SIGN A588
+106FC ; [.47B6.0020.0002] # LINEAR A SIGN A589
+106FD ; [.47B7.0020.0002] # LINEAR A SIGN A591
+106FE ; [.47B8.0020.0002] # LINEAR A SIGN A592
+106FF ; [.47B9.0020.0002] # LINEAR A SIGN A594
+10700 ; [.47BA.0020.0002] # LINEAR A SIGN A595
+10701 ; [.47BB.0020.0002] # LINEAR A SIGN A596
+10702 ; [.47BC.0020.0002] # LINEAR A SIGN A598
+10703 ; [.47BD.0020.0002] # LINEAR A SIGN A600
+10704 ; [.47BE.0020.0002] # LINEAR A SIGN A601
+10705 ; [.47BF.0020.0002] # LINEAR A SIGN A602
+10706 ; [.47C0.0020.0002] # LINEAR A SIGN A603
+10707 ; [.47C1.0020.0002] # LINEAR A SIGN A604
+10708 ; [.47C2.0020.0002] # LINEAR A SIGN A606
+10709 ; [.47C3.0020.0002] # LINEAR A SIGN A608
+1070A ; [.47C4.0020.0002] # LINEAR A SIGN A609
+1070B ; [.47C5.0020.0002] # LINEAR A SIGN A610
+1070C ; [.47C6.0020.0002] # LINEAR A SIGN A611
+1070D ; [.47C7.0020.0002] # LINEAR A SIGN A612
+1070E ; [.47C8.0020.0002] # LINEAR A SIGN A613
+1070F ; [.47C9.0020.0002] # LINEAR A SIGN A614
+10710 ; [.47CA.0020.0002] # LINEAR A SIGN A615
+10711 ; [.47CB.0020.0002] # LINEAR A SIGN A616
+10712 ; [.47CC.0020.0002] # LINEAR A SIGN A617
+10713 ; [.47CD.0020.0002] # LINEAR A SIGN A618
+10714 ; [.47CE.0020.0002] # LINEAR A SIGN A619
+10715 ; [.47CF.0020.0002] # LINEAR A SIGN A620
+10716 ; [.47D0.0020.0002] # LINEAR A SIGN A621
+10717 ; [.47D1.0020.0002] # LINEAR A SIGN A622
+10718 ; [.47D2.0020.0002] # LINEAR A SIGN A623
+10719 ; [.47D3.0020.0002] # LINEAR A SIGN A624
+1071A ; [.47D4.0020.0002] # LINEAR A SIGN A626
+1071B ; [.47D5.0020.0002] # LINEAR A SIGN A627
+1071C ; [.47D6.0020.0002] # LINEAR A SIGN A628
+1071D ; [.47D7.0020.0002] # LINEAR A SIGN A629
+1071E ; [.47D8.0020.0002] # LINEAR A SIGN A634
+1071F ; [.47D9.0020.0002] # LINEAR A SIGN A637
+10720 ; [.47DA.0020.0002] # LINEAR A SIGN A638
+10721 ; [.47DB.0020.0002] # LINEAR A SIGN A640
+10722 ; [.47DC.0020.0002] # LINEAR A SIGN A642
+10723 ; [.47DD.0020.0002] # LINEAR A SIGN A643
+10724 ; [.47DE.0020.0002] # LINEAR A SIGN A644
+10725 ; [.47DF.0020.0002] # LINEAR A SIGN A645
+10726 ; [.47E0.0020.0002] # LINEAR A SIGN A646
+10727 ; [.47E1.0020.0002] # LINEAR A SIGN A648
+10728 ; [.47E2.0020.0002] # LINEAR A SIGN A649
+10729 ; [.47E3.0020.0002] # LINEAR A SIGN A651
+1072A ; [.47E4.0020.0002] # LINEAR A SIGN A652
+1072B ; [.47E5.0020.0002] # LINEAR A SIGN A653
+1072C ; [.47E6.0020.0002] # LINEAR A SIGN A654
+1072D ; [.47E7.0020.0002] # LINEAR A SIGN A655
+1072E ; [.47E8.0020.0002] # LINEAR A SIGN A656
+1072F ; [.47E9.0020.0002] # LINEAR A SIGN A657
+10730 ; [.47EA.0020.0002] # LINEAR A SIGN A658
+10731 ; [.47EB.0020.0002] # LINEAR A SIGN A659
+10732 ; [.47EC.0020.0002] # LINEAR A SIGN A660
+10733 ; [.47ED.0020.0002] # LINEAR A SIGN A661
+10734 ; [.47EE.0020.0002] # LINEAR A SIGN A662
+10735 ; [.47EF.0020.0002] # LINEAR A SIGN A663
+10736 ; [.47F0.0020.0002] # LINEAR A SIGN A664
+10740 ; [.47F1.0020.0002] # LINEAR A SIGN A701 A
+10741 ; [.47F2.0020.0002] # LINEAR A SIGN A702 B
+10742 ; [.47F3.0020.0002] # LINEAR A SIGN A703 D
+10743 ; [.47F4.0020.0002] # LINEAR A SIGN A704 E
+10744 ; [.47F5.0020.0002] # LINEAR A SIGN A705 F
+10745 ; [.47F6.0020.0002] # LINEAR A SIGN A706 H
+10746 ; [.47F7.0020.0002] # LINEAR A SIGN A707 J
+10747 ; [.47F8.0020.0002] # LINEAR A SIGN A708 K
+10748 ; [.47F9.0020.0002] # LINEAR A SIGN A709 L
+10749 ; [.47FA.0020.0002] # LINEAR A SIGN A709-2 L2
+1074A ; [.47FB.0020.0002] # LINEAR A SIGN A709-3 L3
+1074B ; [.47FC.0020.0002] # LINEAR A SIGN A709-4 L4
+1074C ; [.47FD.0020.0002] # LINEAR A SIGN A709-6 L6
+1074D ; [.47FE.0020.0002] # LINEAR A SIGN A710 W
+1074E ; [.47FF.0020.0002] # LINEAR A SIGN A711 X
+1074F ; [.4800.0020.0002] # LINEAR A SIGN A712 Y
+10750 ; [.4801.0020.0002] # LINEAR A SIGN A713 OMEGA
+10751 ; [.4802.0020.0002] # LINEAR A SIGN A714 ABB
+10752 ; [.4803.0020.0002] # LINEAR A SIGN A715 BB
+10753 ; [.4804.0020.0002] # LINEAR A SIGN A717 DD
+10754 ; [.4805.0020.0002] # LINEAR A SIGN A726 EYYY
+10755 ; [.4806.0020.0002] # LINEAR A SIGN A732 JE
+10760 ; [.4807.0020.0002] # LINEAR A SIGN A800
+10761 ; [.4808.0020.0002] # LINEAR A SIGN A801
+10762 ; [.4809.0020.0002] # LINEAR A SIGN A802
+10763 ; [.480A.0020.0002] # LINEAR A SIGN A803
+10764 ; [.480B.0020.0002] # LINEAR A SIGN A804
+10765 ; [.480C.0020.0002] # LINEAR A SIGN A805
+10766 ; [.480D.0020.0002] # LINEAR A SIGN A806
+10767 ; [.480E.0020.0002] # LINEAR A SIGN A807
+10800 ; [.480F.0020.0002] # CYPRIOT SYLLABLE A
+10801 ; [.4810.0020.0002] # CYPRIOT SYLLABLE E
+10802 ; [.4811.0020.0002] # CYPRIOT SYLLABLE I
+10803 ; [.4812.0020.0002] # CYPRIOT SYLLABLE O
+10804 ; [.4813.0020.0002] # CYPRIOT SYLLABLE U
+10805 ; [.4814.0020.0002] # CYPRIOT SYLLABLE JA
+10808 ; [.4815.0020.0002] # CYPRIOT SYLLABLE JO
+1080A ; [.4816.0020.0002] # CYPRIOT SYLLABLE KA
+1080B ; [.4817.0020.0002] # CYPRIOT SYLLABLE KE
+1080C ; [.4818.0020.0002] # CYPRIOT SYLLABLE KI
+1080D ; [.4819.0020.0002] # CYPRIOT SYLLABLE KO
+1080E ; [.481A.0020.0002] # CYPRIOT SYLLABLE KU
+1080F ; [.481B.0020.0002] # CYPRIOT SYLLABLE LA
+10810 ; [.481C.0020.0002] # CYPRIOT SYLLABLE LE
+10811 ; [.481D.0020.0002] # CYPRIOT SYLLABLE LI
+10812 ; [.481E.0020.0002] # CYPRIOT SYLLABLE LO
+10813 ; [.481F.0020.0002] # CYPRIOT SYLLABLE LU
+10814 ; [.4820.0020.0002] # CYPRIOT SYLLABLE MA
+10815 ; [.4821.0020.0002] # CYPRIOT SYLLABLE ME
+10816 ; [.4822.0020.0002] # CYPRIOT SYLLABLE MI
+10817 ; [.4823.0020.0002] # CYPRIOT SYLLABLE MO
+10818 ; [.4824.0020.0002] # CYPRIOT SYLLABLE MU
+10819 ; [.4825.0020.0002] # CYPRIOT SYLLABLE NA
+1081A ; [.4826.0020.0002] # CYPRIOT SYLLABLE NE
+1081B ; [.4827.0020.0002] # CYPRIOT SYLLABLE NI
+1081C ; [.4828.0020.0002] # CYPRIOT SYLLABLE NO
+1081D ; [.4829.0020.0002] # CYPRIOT SYLLABLE NU
+1081E ; [.482A.0020.0002] # CYPRIOT SYLLABLE PA
+1081F ; [.482B.0020.0002] # CYPRIOT SYLLABLE PE
+10820 ; [.482C.0020.0002] # CYPRIOT SYLLABLE PI
+10821 ; [.482D.0020.0002] # CYPRIOT SYLLABLE PO
+10822 ; [.482E.0020.0002] # CYPRIOT SYLLABLE PU
+10823 ; [.482F.0020.0002] # CYPRIOT SYLLABLE RA
+10824 ; [.4830.0020.0002] # CYPRIOT SYLLABLE RE
+10825 ; [.4831.0020.0002] # CYPRIOT SYLLABLE RI
+10826 ; [.4832.0020.0002] # CYPRIOT SYLLABLE RO
+10827 ; [.4833.0020.0002] # CYPRIOT SYLLABLE RU
+10828 ; [.4834.0020.0002] # CYPRIOT SYLLABLE SA
+10829 ; [.4835.0020.0002] # CYPRIOT SYLLABLE SE
+1082A ; [.4836.0020.0002] # CYPRIOT SYLLABLE SI
+1082B ; [.4837.0020.0002] # CYPRIOT SYLLABLE SO
+1082C ; [.4838.0020.0002] # CYPRIOT SYLLABLE SU
+1082D ; [.4839.0020.0002] # CYPRIOT SYLLABLE TA
+1082E ; [.483A.0020.0002] # CYPRIOT SYLLABLE TE
+1082F ; [.483B.0020.0002] # CYPRIOT SYLLABLE TI
+10830 ; [.483C.0020.0002] # CYPRIOT SYLLABLE TO
+10831 ; [.483D.0020.0002] # CYPRIOT SYLLABLE TU
+10832 ; [.483E.0020.0002] # CYPRIOT SYLLABLE WA
+10833 ; [.483F.0020.0002] # CYPRIOT SYLLABLE WE
+10834 ; [.4840.0020.0002] # CYPRIOT SYLLABLE WI
+10835 ; [.4841.0020.0002] # CYPRIOT SYLLABLE WO
+10837 ; [.4842.0020.0002] # CYPRIOT SYLLABLE XA
+10838 ; [.4843.0020.0002] # CYPRIOT SYLLABLE XE
+1083C ; [.4844.0020.0002] # CYPRIOT SYLLABLE ZA
+1083F ; [.4845.0020.0002] # CYPRIOT SYLLABLE ZO
+10A60 ; [.4846.0020.0002] # OLD SOUTH ARABIAN LETTER HE
+10A61 ; [.4847.0020.0002] # OLD SOUTH ARABIAN LETTER LAMEDH
+10A62 ; [.4848.0020.0002] # OLD SOUTH ARABIAN LETTER HETH
+10A63 ; [.4849.0020.0002] # OLD SOUTH ARABIAN LETTER MEM
+10A64 ; [.484A.0020.0002] # OLD SOUTH ARABIAN LETTER QOPH
+10A65 ; [.484B.0020.0002] # OLD SOUTH ARABIAN LETTER WAW
+10A66 ; [.484C.0020.0002] # OLD SOUTH ARABIAN LETTER SHIN
+10A67 ; [.484D.0020.0002] # OLD SOUTH ARABIAN LETTER RESH
+10A68 ; [.484E.0020.0002] # OLD SOUTH ARABIAN LETTER BETH
+10A69 ; [.484F.0020.0002] # OLD SOUTH ARABIAN LETTER TAW
+10A6A ; [.4850.0020.0002] # OLD SOUTH ARABIAN LETTER SAT
+10A6B ; [.4851.0020.0002] # OLD SOUTH ARABIAN LETTER KAPH
+10A6C ; [.4852.0020.0002] # OLD SOUTH ARABIAN LETTER NUN
+10A6D ; [.4853.0020.0002] # OLD SOUTH ARABIAN LETTER KHETH
+10A6E ; [.4854.0020.0002] # OLD SOUTH ARABIAN LETTER SADHE
+10A6F ; [.4855.0020.0002] # OLD SOUTH ARABIAN LETTER SAMEKH
+10A70 ; [.4856.0020.0002] # OLD SOUTH ARABIAN LETTER FE
+10A71 ; [.4857.0020.0002] # OLD SOUTH ARABIAN LETTER ALEF
+10A72 ; [.4858.0020.0002] # OLD SOUTH ARABIAN LETTER AYN
+10A73 ; [.4859.0020.0002] # OLD SOUTH ARABIAN LETTER DHADHE
+10A74 ; [.485A.0020.0002] # OLD SOUTH ARABIAN LETTER GIMEL
+10A75 ; [.485B.0020.0002] # OLD SOUTH ARABIAN LETTER DALETH
+10A76 ; [.485C.0020.0002] # OLD SOUTH ARABIAN LETTER GHAYN
+10A77 ; [.485D.0020.0002] # OLD SOUTH ARABIAN LETTER TETH
+10A78 ; [.485E.0020.0002] # OLD SOUTH ARABIAN LETTER ZAYN
+10A79 ; [.485F.0020.0002] # OLD SOUTH ARABIAN LETTER DHALETH
+10A7A ; [.4860.0020.0002] # OLD SOUTH ARABIAN LETTER YODH
+10A7B ; [.4861.0020.0002] # OLD SOUTH ARABIAN LETTER THAW
+10A7C ; [.4862.0020.0002] # OLD SOUTH ARABIAN LETTER THETH
+10A80 ; [.4863.0020.0002] # OLD NORTH ARABIAN LETTER HEH
+10A81 ; [.4864.0020.0002] # OLD NORTH ARABIAN LETTER LAM
+10A82 ; [.4865.0020.0002] # OLD NORTH ARABIAN LETTER HAH
+10A83 ; [.4866.0020.0002] # OLD NORTH ARABIAN LETTER MEEM
+10A84 ; [.4867.0020.0002] # OLD NORTH ARABIAN LETTER QAF
+10A85 ; [.4868.0020.0002] # OLD NORTH ARABIAN LETTER WAW
+10A86 ; [.4869.0020.0002] # OLD NORTH ARABIAN LETTER ES-2
+10A87 ; [.486A.0020.0002] # OLD NORTH ARABIAN LETTER REH
+10A88 ; [.486B.0020.0002] # OLD NORTH ARABIAN LETTER BEH
+10A89 ; [.486C.0020.0002] # OLD NORTH ARABIAN LETTER TEH
+10A8A ; [.486D.0020.0002] # OLD NORTH ARABIAN LETTER ES-1
+10A8B ; [.486E.0020.0002] # OLD NORTH ARABIAN LETTER KAF
+10A8C ; [.486F.0020.0002] # OLD NORTH ARABIAN LETTER NOON
+10A8D ; [.4870.0020.0002] # OLD NORTH ARABIAN LETTER KHAH
+10A8E ; [.4871.0020.0002] # OLD NORTH ARABIAN LETTER SAD
+10A8F ; [.4872.0020.0002] # OLD NORTH ARABIAN LETTER ES-3
+10A90 ; [.4873.0020.0002] # OLD NORTH ARABIAN LETTER FEH
+10A91 ; [.4874.0020.0002] # OLD NORTH ARABIAN LETTER ALEF
+10A92 ; [.4875.0020.0002] # OLD NORTH ARABIAN LETTER AIN
+10A93 ; [.4876.0020.0002] # OLD NORTH ARABIAN LETTER DAD
+10A94 ; [.4877.0020.0002] # OLD NORTH ARABIAN LETTER GEEM
+10A95 ; [.4878.0020.0002] # OLD NORTH ARABIAN LETTER DAL
+10A96 ; [.4879.0020.0002] # OLD NORTH ARABIAN LETTER GHAIN
+10A97 ; [.487A.0020.0002] # OLD NORTH ARABIAN LETTER TAH
+10A98 ; [.487B.0020.0002] # OLD NORTH ARABIAN LETTER ZAIN
+10A99 ; [.487C.0020.0002] # OLD NORTH ARABIAN LETTER THAL
+10A9A ; [.487D.0020.0002] # OLD NORTH ARABIAN LETTER YEH
+10A9B ; [.487E.0020.0002] # OLD NORTH ARABIAN LETTER THEH
+10A9C ; [.487F.0020.0002] # OLD NORTH ARABIAN LETTER ZAH
+10B00 ; [.4880.0020.0002] # AVESTAN LETTER A
+10B01 ; [.4881.0020.0002] # AVESTAN LETTER AA
+10B02 ; [.4882.0020.0002] # AVESTAN LETTER AO
+10B03 ; [.4883.0020.0002] # AVESTAN LETTER AAO
+10B04 ; [.4884.0020.0002] # AVESTAN LETTER AN
+10B05 ; [.4885.0020.0002] # AVESTAN LETTER AAN
+10B06 ; [.4886.0020.0002] # AVESTAN LETTER AE
+10B07 ; [.4887.0020.0002] # AVESTAN LETTER AEE
+10B08 ; [.4888.0020.0002] # AVESTAN LETTER E
+10B09 ; [.4889.0020.0002] # AVESTAN LETTER EE
+10B0A ; [.488A.0020.0002] # AVESTAN LETTER O
+10B0B ; [.488B.0020.0002] # AVESTAN LETTER OO
+10B0C ; [.488C.0020.0002] # AVESTAN LETTER I
+10B0D ; [.488D.0020.0002] # AVESTAN LETTER II
+10B0E ; [.488E.0020.0002] # AVESTAN LETTER U
+10B0F ; [.488F.0020.0002] # AVESTAN LETTER UU
+10B10 ; [.4890.0020.0002] # AVESTAN LETTER KE
+10B11 ; [.4891.0020.0002] # AVESTAN LETTER XE
+10B12 ; [.4892.0020.0002] # AVESTAN LETTER XYE
+10B13 ; [.4893.0020.0002] # AVESTAN LETTER XVE
+10B14 ; [.4894.0020.0002] # AVESTAN LETTER GE
+10B15 ; [.4895.0020.0002] # AVESTAN LETTER GGE
+10B16 ; [.4896.0020.0002] # AVESTAN LETTER GHE
+10B17 ; [.4897.0020.0002] # AVESTAN LETTER CE
+10B18 ; [.4898.0020.0002] # AVESTAN LETTER JE
+10B19 ; [.4899.0020.0002] # AVESTAN LETTER TE
+10B1A ; [.489A.0020.0002] # AVESTAN LETTER THE
+10B1B ; [.489B.0020.0002] # AVESTAN LETTER DE
+10B1C ; [.489C.0020.0002] # AVESTAN LETTER DHE
+10B1D ; [.489D.0020.0002] # AVESTAN LETTER TTE
+10B1E ; [.489E.0020.0002] # AVESTAN LETTER PE
+10B1F ; [.489F.0020.0002] # AVESTAN LETTER FE
+10B20 ; [.48A0.0020.0002] # AVESTAN LETTER BE
+10B21 ; [.48A1.0020.0002] # AVESTAN LETTER BHE
+10B22 ; [.48A2.0020.0002] # AVESTAN LETTER NGE
+10B23 ; [.48A3.0020.0002] # AVESTAN LETTER NGYE
+10B24 ; [.48A4.0020.0002] # AVESTAN LETTER NGVE
+10B25 ; [.48A5.0020.0002] # AVESTAN LETTER NE
+10B26 ; [.48A6.0020.0002] # AVESTAN LETTER NYE
+10B27 ; [.48A7.0020.0002] # AVESTAN LETTER NNE
+10B28 ; [.48A8.0020.0002] # AVESTAN LETTER ME
+10B29 ; [.48A9.0020.0002] # AVESTAN LETTER HME
+10B2A ; [.48AA.0020.0002] # AVESTAN LETTER YYE
+10B2B ; [.48AB.0020.0002] # AVESTAN LETTER YE
+10B2C ; [.48AC.0020.0002] # AVESTAN LETTER VE
+10B2D ; [.48AD.0020.0002] # AVESTAN LETTER RE
+10B2E ; [.48AD.0020.0004][.0000.0110.0004] # AVESTAN LETTER LE
+10B2F ; [.48AE.0020.0002] # AVESTAN LETTER SE
+10B30 ; [.48AF.0020.0002] # AVESTAN LETTER ZE
+10B31 ; [.48B0.0020.0002] # AVESTAN LETTER SHE
+10B32 ; [.48B1.0020.0002] # AVESTAN LETTER ZHE
+10B33 ; [.48B2.0020.0002] # AVESTAN LETTER SHYE
+10B34 ; [.48B3.0020.0002] # AVESTAN LETTER SSHE
+10B35 ; [.48B4.0020.0002] # AVESTAN LETTER HE
+10860 ; [.48B5.0020.0002] # PALMYRENE LETTER ALEPH
+10861 ; [.48B6.0020.0002] # PALMYRENE LETTER BETH
+10862 ; [.48B7.0020.0002] # PALMYRENE LETTER GIMEL
+10863 ; [.48B8.0020.0002] # PALMYRENE LETTER DALETH
+10864 ; [.48B9.0020.0002] # PALMYRENE LETTER HE
+10865 ; [.48BA.0020.0002] # PALMYRENE LETTER WAW
+10866 ; [.48BB.0020.0002] # PALMYRENE LETTER ZAYIN
+10867 ; [.48BC.0020.0002] # PALMYRENE LETTER HETH
+10868 ; [.48BD.0020.0002] # PALMYRENE LETTER TETH
+10869 ; [.48BE.0020.0002] # PALMYRENE LETTER YODH
+1086A ; [.48BF.0020.0002] # PALMYRENE LETTER KAPH
+1086B ; [.48C0.0020.0002] # PALMYRENE LETTER LAMEDH
+1086C ; [.48C1.0020.0002] # PALMYRENE LETTER MEM
+1086E ; [.48C2.0020.0002] # PALMYRENE LETTER NUN
+1086D ; [.48C2.0020.0019] # PALMYRENE LETTER FINAL NUN
+1086F ; [.48C3.0020.0002] # PALMYRENE LETTER SAMEKH
+10870 ; [.48C4.0020.0002] # PALMYRENE LETTER AYIN
+10871 ; [.48C5.0020.0002] # PALMYRENE LETTER PE
+10872 ; [.48C6.0020.0002] # PALMYRENE LETTER SADHE
+10873 ; [.48C7.0020.0002] # PALMYRENE LETTER QOPH
+10874 ; [.48C8.0020.0002] # PALMYRENE LETTER RESH
+10875 ; [.48C9.0020.0002] # PALMYRENE LETTER SHIN
+10876 ; [.48CA.0020.0002] # PALMYRENE LETTER TAW
+10881 ; [.48CB.0020.0002] # NABATAEAN LETTER ALEPH
+10880 ; [.48CB.0020.0019] # NABATAEAN LETTER FINAL ALEPH
+10883 ; [.48CC.0020.0002] # NABATAEAN LETTER BETH
+10882 ; [.48CC.0020.0019] # NABATAEAN LETTER FINAL BETH
+10884 ; [.48CD.0020.0002] # NABATAEAN LETTER GIMEL
+10885 ; [.48CE.0020.0002] # NABATAEAN LETTER DALETH
+10887 ; [.48CF.0020.0002] # NABATAEAN LETTER HE
+10886 ; [.48CF.0020.0019] # NABATAEAN LETTER FINAL HE
+10888 ; [.48D0.0020.0002] # NABATAEAN LETTER WAW
+10889 ; [.48D1.0020.0002] # NABATAEAN LETTER ZAYIN
+1088A ; [.48D2.0020.0002] # NABATAEAN LETTER HETH
+1088B ; [.48D3.0020.0002] # NABATAEAN LETTER TETH
+1088D ; [.48D4.0020.0002] # NABATAEAN LETTER YODH
+1088C ; [.48D4.0020.0019] # NABATAEAN LETTER FINAL YODH
+1088F ; [.48D5.0020.0002] # NABATAEAN LETTER KAPH
+1088E ; [.48D5.0020.0019] # NABATAEAN LETTER FINAL KAPH
+10891 ; [.48D6.0020.0002] # NABATAEAN LETTER LAMEDH
+10890 ; [.48D6.0020.0019] # NABATAEAN LETTER FINAL LAMEDH
+10893 ; [.48D7.0020.0002] # NABATAEAN LETTER MEM
+10892 ; [.48D7.0020.0019] # NABATAEAN LETTER FINAL MEM
+10895 ; [.48D8.0020.0002] # NABATAEAN LETTER NUN
+10894 ; [.48D8.0020.0019] # NABATAEAN LETTER FINAL NUN
+10896 ; [.48D9.0020.0002] # NABATAEAN LETTER SAMEKH
+10897 ; [.48DA.0020.0002] # NABATAEAN LETTER AYIN
+10898 ; [.48DB.0020.0002] # NABATAEAN LETTER PE
+10899 ; [.48DC.0020.0002] # NABATAEAN LETTER SADHE
+1089A ; [.48DD.0020.0002] # NABATAEAN LETTER QOPH
+1089B ; [.48DE.0020.0002] # NABATAEAN LETTER RESH
+1089D ; [.48DF.0020.0002] # NABATAEAN LETTER SHIN
+1089C ; [.48DF.0020.0019] # NABATAEAN LETTER FINAL SHIN
+1089E ; [.48E0.0020.0002] # NABATAEAN LETTER TAW
+108E0 ; [.48E1.0020.0002] # HATRAN LETTER ALEPH
+108E1 ; [.48E2.0020.0002] # HATRAN LETTER BETH
+108E2 ; [.48E3.0020.0002] # HATRAN LETTER GIMEL
+108E3 ; [.48E4.0020.0002] # HATRAN LETTER DALETH-RESH
+108E4 ; [.48E5.0020.0002] # HATRAN LETTER HE
+108E5 ; [.48E6.0020.0002] # HATRAN LETTER WAW
+108E6 ; [.48E7.0020.0002] # HATRAN LETTER ZAYN
+108E7 ; [.48E8.0020.0002] # HATRAN LETTER HETH
+108E8 ; [.48E9.0020.0002] # HATRAN LETTER TETH
+108E9 ; [.48EA.0020.0002] # HATRAN LETTER YODH
+108EA ; [.48EB.0020.0002] # HATRAN LETTER KAPH
+108EB ; [.48EC.0020.0002] # HATRAN LETTER LAMEDH
+108EC ; [.48ED.0020.0002] # HATRAN LETTER MEM
+108ED ; [.48EE.0020.0002] # HATRAN LETTER NUN
+108EE ; [.48EF.0020.0002] # HATRAN LETTER SAMEKH
+108EF ; [.48F0.0020.0002] # HATRAN LETTER AYN
+108F0 ; [.48F1.0020.0002] # HATRAN LETTER PE
+108F1 ; [.48F2.0020.0002] # HATRAN LETTER SADHE
+108F2 ; [.48F3.0020.0002] # HATRAN LETTER QOPH
+108F4 ; [.48F4.0020.0002] # HATRAN LETTER SHIN
+108F5 ; [.48F5.0020.0002] # HATRAN LETTER TAW
+10840 ; [.48F6.0020.0002] # IMPERIAL ARAMAIC LETTER ALEPH
+10841 ; [.48F7.0020.0002] # IMPERIAL ARAMAIC LETTER BETH
+10842 ; [.48F8.0020.0002] # IMPERIAL ARAMAIC LETTER GIMEL
+10843 ; [.48F9.0020.0002] # IMPERIAL ARAMAIC LETTER DALETH
+10844 ; [.48FA.0020.0002] # IMPERIAL ARAMAIC LETTER HE
+10845 ; [.48FB.0020.0002] # IMPERIAL ARAMAIC LETTER WAW
+10846 ; [.48FC.0020.0002] # IMPERIAL ARAMAIC LETTER ZAYIN
+10847 ; [.48FD.0020.0002] # IMPERIAL ARAMAIC LETTER HETH
+10848 ; [.48FE.0020.0002] # IMPERIAL ARAMAIC LETTER TETH
+10849 ; [.48FF.0020.0002] # IMPERIAL ARAMAIC LETTER YODH
+1084A ; [.4900.0020.0002] # IMPERIAL ARAMAIC LETTER KAPH
+1084B ; [.4901.0020.0002] # IMPERIAL ARAMAIC LETTER LAMEDH
+1084C ; [.4902.0020.0002] # IMPERIAL ARAMAIC LETTER MEM
+1084D ; [.4903.0020.0002] # IMPERIAL ARAMAIC LETTER NUN
+1084E ; [.4904.0020.0002] # IMPERIAL ARAMAIC LETTER SAMEKH
+1084F ; [.4905.0020.0002] # IMPERIAL ARAMAIC LETTER AYIN
+10850 ; [.4906.0020.0002] # IMPERIAL ARAMAIC LETTER PE
+10851 ; [.4907.0020.0002] # IMPERIAL ARAMAIC LETTER SADHE
+10852 ; [.4908.0020.0002] # IMPERIAL ARAMAIC LETTER QOPH
+10853 ; [.4909.0020.0002] # IMPERIAL ARAMAIC LETTER RESH
+10854 ; [.490A.0020.0002] # IMPERIAL ARAMAIC LETTER SHIN
+10855 ; [.490B.0020.0002] # IMPERIAL ARAMAIC LETTER TAW
+10B40 ; [.490C.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ALEPH
+10B41 ; [.490D.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER BETH
+10B42 ; [.490E.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER GIMEL
+10B43 ; [.490F.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER DALETH
+10B44 ; [.4910.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HE
+10B45 ; [.4911.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER WAW
+10B46 ; [.4912.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ZAYIN
+10B47 ; [.4913.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HETH
+10B48 ; [.4914.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TETH
+10B49 ; [.4915.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER YODH
+10B4A ; [.4916.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER KAPH
+10B4B ; [.4917.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER LAMEDH
+10B4C ; [.4918.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER MEM
+10B4D ; [.4919.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER NUN
+10B4E ; [.491A.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SAMEKH
+10B4F ; [.491B.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER AYIN
+10B50 ; [.491C.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER PE
+10B51 ; [.491D.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SADHE
+10B52 ; [.491E.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER QOPH
+10B53 ; [.491F.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER RESH
+10B54 ; [.4920.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SHIN
+10B55 ; [.4921.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TAW
+10B60 ; [.4922.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ALEPH
+10B61 ; [.4923.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER BETH
+10B62 ; [.4924.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER GIMEL
+10B63 ; [.4925.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER DALETH
+10B64 ; [.4926.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HE
+10B65 ; [.4927.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
+10B66 ; [.4928.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ZAYIN
+10B67 ; [.4929.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HETH
+10B68 ; [.492A.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TETH
+10B69 ; [.492B.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER YODH
+10B6A ; [.492C.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER KAPH
+10B6B ; [.492D.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER LAMEDH
+10B6C ; [.492E.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
+10B6D ; [.492F.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER NUN
+10B6E ; [.4930.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SAMEKH
+10B6F ; [.4931.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER PE
+10B70 ; [.4932.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SADHE
+10B71 ; [.4933.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SHIN
+10B72 ; [.4934.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80 ; [.4935.0020.0002] # PSALTER PAHLAVI LETTER ALEPH
+10B81 ; [.4936.0020.0002] # PSALTER PAHLAVI LETTER BETH
+10B82 ; [.4937.0020.0002] # PSALTER PAHLAVI LETTER GIMEL
+10B83 ; [.4938.0020.0002] # PSALTER PAHLAVI LETTER DALETH
+10B84 ; [.4939.0020.0002] # PSALTER PAHLAVI LETTER HE
+10B85 ; [.493A.0020.0002] # PSALTER PAHLAVI LETTER WAW-AYIN-RESH
+10B86 ; [.493B.0020.0002] # PSALTER PAHLAVI LETTER ZAYIN
+10B87 ; [.493C.0020.0002] # PSALTER PAHLAVI LETTER HETH
+10B88 ; [.493D.0020.0002] # PSALTER PAHLAVI LETTER YODH
+10B89 ; [.493E.0020.0002] # PSALTER PAHLAVI LETTER KAPH
+10B8A ; [.493F.0020.0002] # PSALTER PAHLAVI LETTER LAMEDH
+10B8B ; [.4940.0020.0002] # PSALTER PAHLAVI LETTER MEM-QOPH
+10B8C ; [.4941.0020.0002] # PSALTER PAHLAVI LETTER NUN
+10B8D ; [.4942.0020.0002] # PSALTER PAHLAVI LETTER SAMEKH
+10B8E ; [.4943.0020.0002] # PSALTER PAHLAVI LETTER PE
+10B8F ; [.4944.0020.0002] # PSALTER PAHLAVI LETTER SADHE
+10B90 ; [.4945.0020.0002] # PSALTER PAHLAVI LETTER SHIN
+10B91 ; [.4946.0020.0002] # PSALTER PAHLAVI LETTER TAW
+10AC0 ; [.4947.0020.0002] # MANICHAEAN LETTER ALEPH
+10AC1 ; [.4948.0020.0002] # MANICHAEAN LETTER BETH
+10AC2 ; [.4949.0020.0002] # MANICHAEAN LETTER BHETH
+10AC3 ; [.494A.0020.0002] # MANICHAEAN LETTER GIMEL
+10AC4 ; [.494B.0020.0002] # MANICHAEAN LETTER GHIMEL
+10AC5 ; [.494C.0020.0002] # MANICHAEAN LETTER DALETH
+10AC6 ; [.494D.0020.0002] # MANICHAEAN LETTER HE
+10AC7 ; [.494E.0020.0002] # MANICHAEAN LETTER WAW
+10AC8 ; [.494E.0020.0004][.0000.0111.0004] # MANICHAEAN SIGN UD
+10AC9 ; [.494F.0020.0002] # MANICHAEAN LETTER ZAYIN
+10ACA ; [.4950.0020.0002] # MANICHAEAN LETTER ZHAYIN
+10ACB ; [.4951.0020.0002] # MANICHAEAN LETTER JAYIN
+10ACC ; [.4952.0020.0002] # MANICHAEAN LETTER JHAYIN
+10ACD ; [.4953.0020.0002] # MANICHAEAN LETTER HETH
+10ACE ; [.4954.0020.0002] # MANICHAEAN LETTER TETH
+10ACF ; [.4955.0020.0002] # MANICHAEAN LETTER YODH
+10AD0 ; [.4956.0020.0002] # MANICHAEAN LETTER KAPH
+10AD1 ; [.4957.0020.0002] # MANICHAEAN LETTER XAPH
+10AD2 ; [.4958.0020.0002] # MANICHAEAN LETTER KHAPH
+10AD3 ; [.4959.0020.0002] # MANICHAEAN LETTER LAMEDH
+10AD4 ; [.495A.0020.0002] # MANICHAEAN LETTER DHAMEDH
+10AD5 ; [.495B.0020.0002] # MANICHAEAN LETTER THAMEDH
+10AD6 ; [.495C.0020.0002] # MANICHAEAN LETTER MEM
+10AD7 ; [.495D.0020.0002] # MANICHAEAN LETTER NUN
+10AD8 ; [.495E.0020.0002] # MANICHAEAN LETTER SAMEKH
+10AD9 ; [.495F.0020.0002] # MANICHAEAN LETTER AYIN
+10ADA ; [.4960.0020.0002] # MANICHAEAN LETTER AAYIN
+10ADB ; [.4961.0020.0002] # MANICHAEAN LETTER PE
+10ADC ; [.4962.0020.0002] # MANICHAEAN LETTER FE
+10ADD ; [.4963.0020.0002] # MANICHAEAN LETTER SADHE
+10ADE ; [.4964.0020.0002] # MANICHAEAN LETTER QOPH
+10ADF ; [.4965.0020.0002] # MANICHAEAN LETTER XOPH
+10AE0 ; [.4966.0020.0002] # MANICHAEAN LETTER QHOPH
+10AE1 ; [.4967.0020.0002] # MANICHAEAN LETTER RESH
+10AE2 ; [.4968.0020.0002] # MANICHAEAN LETTER SHIN
+10AE3 ; [.4969.0020.0002] # MANICHAEAN LETTER SSHIN
+10AE4 ; [.496A.0020.0002] # MANICHAEAN LETTER TAW
+10380 ; [.496B.0020.0002] # UGARITIC LETTER ALPA
+10381 ; [.496C.0020.0002] # UGARITIC LETTER BETA
+10382 ; [.496D.0020.0002] # UGARITIC LETTER GAMLA
+10383 ; [.496E.0020.0002] # UGARITIC LETTER KHA
+10384 ; [.496F.0020.0002] # UGARITIC LETTER DELTA
+10385 ; [.4970.0020.0002] # UGARITIC LETTER HO
+10386 ; [.4971.0020.0002] # UGARITIC LETTER WO
+10387 ; [.4972.0020.0002] # UGARITIC LETTER ZETA
+10388 ; [.4973.0020.0002] # UGARITIC LETTER HOTA
+10389 ; [.4974.0020.0002] # UGARITIC LETTER TET
+1038A ; [.4975.0020.0002] # UGARITIC LETTER YOD
+1038B ; [.4976.0020.0002] # UGARITIC LETTER KAF
+1038C ; [.4977.0020.0002] # UGARITIC LETTER SHIN
+1038D ; [.4978.0020.0002] # UGARITIC LETTER LAMDA
+1038E ; [.4979.0020.0002] # UGARITIC LETTER MEM
+1038F ; [.497A.0020.0002] # UGARITIC LETTER DHAL
+10390 ; [.497B.0020.0002] # UGARITIC LETTER NUN
+10391 ; [.497C.0020.0002] # UGARITIC LETTER ZU
+10392 ; [.497D.0020.0002] # UGARITIC LETTER SAMKA
+10393 ; [.497E.0020.0002] # UGARITIC LETTER AIN
+10394 ; [.497F.0020.0002] # UGARITIC LETTER PU
+10395 ; [.4980.0020.0002] # UGARITIC LETTER SADE
+10396 ; [.4981.0020.0002] # UGARITIC LETTER QOPA
+10397 ; [.4982.0020.0002] # UGARITIC LETTER RASHA
+10398 ; [.4983.0020.0002] # UGARITIC LETTER THANNA
+10399 ; [.4984.0020.0002] # UGARITIC LETTER GHAIN
+1039A ; [.4985.0020.0002] # UGARITIC LETTER TO
+1039B ; [.4986.0020.0002] # UGARITIC LETTER I
+1039C ; [.4987.0020.0002] # UGARITIC LETTER U
+1039D ; [.4988.0020.0002] # UGARITIC LETTER SSU
+103A0 ; [.4989.0020.0002] # OLD PERSIAN SIGN A
+103A1 ; [.498A.0020.0002] # OLD PERSIAN SIGN I
+103A2 ; [.498B.0020.0002] # OLD PERSIAN SIGN U
+103A3 ; [.498C.0020.0002] # OLD PERSIAN SIGN KA
+103A4 ; [.498D.0020.0002] # OLD PERSIAN SIGN KU
+103A5 ; [.498E.0020.0002] # OLD PERSIAN SIGN GA
+103A6 ; [.498F.0020.0002] # OLD PERSIAN SIGN GU
+103A7 ; [.4990.0020.0002] # OLD PERSIAN SIGN XA
+103A8 ; [.4991.0020.0002] # OLD PERSIAN SIGN CA
+103A9 ; [.4992.0020.0002] # OLD PERSIAN SIGN JA
+103AA ; [.4993.0020.0002] # OLD PERSIAN SIGN JI
+103AB ; [.4994.0020.0002] # OLD PERSIAN SIGN TA
+103AC ; [.4995.0020.0002] # OLD PERSIAN SIGN TU
+103AD ; [.4996.0020.0002] # OLD PERSIAN SIGN DA
+103AE ; [.4997.0020.0002] # OLD PERSIAN SIGN DI
+103AF ; [.4998.0020.0002] # OLD PERSIAN SIGN DU
+103B0 ; [.4999.0020.0002] # OLD PERSIAN SIGN THA
+103B1 ; [.499A.0020.0002] # OLD PERSIAN SIGN PA
+103B2 ; [.499B.0020.0002] # OLD PERSIAN SIGN BA
+103B3 ; [.499C.0020.0002] # OLD PERSIAN SIGN FA
+103B4 ; [.499D.0020.0002] # OLD PERSIAN SIGN NA
+103B5 ; [.499E.0020.0002] # OLD PERSIAN SIGN NU
+103B6 ; [.499F.0020.0002] # OLD PERSIAN SIGN MA
+103B7 ; [.49A0.0020.0002] # OLD PERSIAN SIGN MI
+103B8 ; [.49A1.0020.0002] # OLD PERSIAN SIGN MU
+103B9 ; [.49A2.0020.0002] # OLD PERSIAN SIGN YA
+103BA ; [.49A3.0020.0002] # OLD PERSIAN SIGN VA
+103BB ; [.49A4.0020.0002] # OLD PERSIAN SIGN VI
+103BC ; [.49A5.0020.0002] # OLD PERSIAN SIGN RA
+103BD ; [.49A6.0020.0002] # OLD PERSIAN SIGN RU
+103BE ; [.49A7.0020.0002] # OLD PERSIAN SIGN LA
+103BF ; [.49A8.0020.0002] # OLD PERSIAN SIGN SA
+103C0 ; [.49A9.0020.0002] # OLD PERSIAN SIGN ZA
+103C1 ; [.49AA.0020.0002] # OLD PERSIAN SIGN SHA
+103C2 ; [.49AB.0020.0002] # OLD PERSIAN SIGN SSA
+103C3 ; [.49AC.0020.0002] # OLD PERSIAN SIGN HA
+103C8 ; [.49AD.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA
+103C9 ; [.49AE.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA-2
+103CA ; [.49AF.0020.0002] # OLD PERSIAN SIGN AURAMAZDAAHA
+103CB ; [.49B0.0020.0002] # OLD PERSIAN SIGN XSHAAYATHIYA
+103CC ; [.49B1.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH
+103CD ; [.49B2.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH-2
+103CE ; [.49B3.0020.0002] # OLD PERSIAN SIGN BAGA
+103CF ; [.49B4.0020.0002] # OLD PERSIAN SIGN BUUMISH
+12000 ; [.49B5.0020.0002] # CUNEIFORM SIGN A
+12001 ; [.49B6.0020.0002] # CUNEIFORM SIGN A TIMES A
+12002 ; [.49B7.0020.0002] # CUNEIFORM SIGN A TIMES BAD
+12003 ; [.49B8.0020.0002] # CUNEIFORM SIGN A TIMES GAN2 TENU
+12004 ; [.49B9.0020.0002] # CUNEIFORM SIGN A TIMES HA
+12005 ; [.49BA.0020.0002] # CUNEIFORM SIGN A TIMES IGI
+12006 ; [.49BB.0020.0002] # CUNEIFORM SIGN A TIMES LAGAR GUNU
+12007 ; [.49BC.0020.0002] # CUNEIFORM SIGN A TIMES MUSH
+12008 ; [.49BD.0020.0002] # CUNEIFORM SIGN A TIMES SAG
+12009 ; [.49BE.0020.0002] # CUNEIFORM SIGN A2
+1200A ; [.49BF.0020.0002] # CUNEIFORM SIGN AB
+1200B ; [.49C0.0020.0002] # CUNEIFORM SIGN AB TIMES ASH2
+1200C ; [.49C1.0020.0002] # CUNEIFORM SIGN AB TIMES DUN3 GUNU
+1200D ; [.49C2.0020.0002] # CUNEIFORM SIGN AB TIMES GAL
+1200E ; [.49C3.0020.0002] # CUNEIFORM SIGN AB TIMES GAN2 TENU
+1200F ; [.49C4.0020.0002] # CUNEIFORM SIGN AB TIMES HA
+12010 ; [.49C5.0020.0002] # CUNEIFORM SIGN AB TIMES IGI GUNU
+12011 ; [.49C6.0020.0002] # CUNEIFORM SIGN AB TIMES IMIN
+12012 ; [.49C7.0020.0002] # CUNEIFORM SIGN AB TIMES LAGAB
+12013 ; [.49C8.0020.0002] # CUNEIFORM SIGN AB TIMES SHESH
+12014 ; [.49C9.0020.0002] # CUNEIFORM SIGN AB TIMES U PLUS U PLUS U
+12015 ; [.49CA.0020.0002] # CUNEIFORM SIGN AB GUNU
+12016 ; [.49CB.0020.0002] # CUNEIFORM SIGN AB2
+12017 ; [.49CC.0020.0002] # CUNEIFORM SIGN AB2 TIMES BALAG
+12018 ; [.49CD.0020.0002] # CUNEIFORM SIGN AB2 TIMES GAN2 TENU
+12019 ; [.49CE.0020.0002] # CUNEIFORM SIGN AB2 TIMES ME PLUS EN
+1201A ; [.49CF.0020.0002] # CUNEIFORM SIGN AB2 TIMES SHA3
+1201B ; [.49D0.0020.0002] # CUNEIFORM SIGN AB2 TIMES TAK4
+1201C ; [.49D1.0020.0002] # CUNEIFORM SIGN AD
+1201D ; [.49D2.0020.0002] # CUNEIFORM SIGN AK
+1201E ; [.49D3.0020.0002] # CUNEIFORM SIGN AK TIMES ERIN2
+1201F ; [.49D4.0020.0002] # CUNEIFORM SIGN AK TIMES SHITA PLUS GISH
+12020 ; [.49D5.0020.0002] # CUNEIFORM SIGN AL
+12021 ; [.49D6.0020.0002] # CUNEIFORM SIGN AL TIMES AL
+12022 ; [.49D7.0020.0002] # CUNEIFORM SIGN AL TIMES DIM2
+12023 ; [.49D8.0020.0002] # CUNEIFORM SIGN AL TIMES GISH
+12024 ; [.49D9.0020.0002] # CUNEIFORM SIGN AL TIMES HA
+12025 ; [.49DA.0020.0002] # CUNEIFORM SIGN AL TIMES KAD3
+12026 ; [.49DB.0020.0002] # CUNEIFORM SIGN AL TIMES KI
+12027 ; [.49DC.0020.0002] # CUNEIFORM SIGN AL TIMES SHE
+12028 ; [.49DD.0020.0002] # CUNEIFORM SIGN AL TIMES USH
+12029 ; [.49DE.0020.0002] # CUNEIFORM SIGN ALAN
+1202A ; [.49DF.0020.0002] # CUNEIFORM SIGN ALEPH
+1202B ; [.49E0.0020.0002] # CUNEIFORM SIGN AMAR
+1202C ; [.49E1.0020.0002] # CUNEIFORM SIGN AMAR TIMES SHE
+1202D ; [.49E2.0020.0002] # CUNEIFORM SIGN AN
+1202E ; [.49E3.0020.0002] # CUNEIFORM SIGN AN OVER AN
+1202F ; [.49E4.0020.0002] # CUNEIFORM SIGN AN THREE TIMES
+12030 ; [.49E5.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA
+12031 ; [.49E6.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA SQUARED
+12032 ; [.49E7.0020.0002] # CUNEIFORM SIGN ANSHE
+12033 ; [.49E8.0020.0002] # CUNEIFORM SIGN APIN
+12034 ; [.49E9.0020.0002] # CUNEIFORM SIGN ARAD
+12035 ; [.49EA.0020.0002] # CUNEIFORM SIGN ARAD TIMES KUR
+12036 ; [.49EB.0020.0002] # CUNEIFORM SIGN ARKAB
+12037 ; [.49EC.0020.0002] # CUNEIFORM SIGN ASAL2
+12038 ; [.49ED.0020.0002] # CUNEIFORM SIGN ASH
+12039 ; [.49EE.0020.0002] # CUNEIFORM SIGN ASH ZIDA TENU
+1203A ; [.49EF.0020.0002] # CUNEIFORM SIGN ASH KABA TENU
+1203B ; [.49F0.0020.0002] # CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP
+1203C ; [.49F1.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH
+1203D ; [.49F2.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH
+1203E ; [.49F3.0020.0002] # CUNEIFORM SIGN ASH2
+1203F ; [.49F4.0020.0002] # CUNEIFORM SIGN ASHGAB
+12040 ; [.49F5.0020.0002] # CUNEIFORM SIGN BA
+12041 ; [.49F6.0020.0002] # CUNEIFORM SIGN BAD
+12042 ; [.49F7.0020.0002] # CUNEIFORM SIGN BAG3
+12043 ; [.49F8.0020.0002] # CUNEIFORM SIGN BAHAR2
+12044 ; [.49F9.0020.0002] # CUNEIFORM SIGN BAL
+12045 ; [.49FA.0020.0002] # CUNEIFORM SIGN BAL OVER BAL
+12046 ; [.49FB.0020.0002] # CUNEIFORM SIGN BALAG
+12047 ; [.49FC.0020.0002] # CUNEIFORM SIGN BAR
+12048 ; [.49FD.0020.0002] # CUNEIFORM SIGN BARA2
+12049 ; [.49FE.0020.0002] # CUNEIFORM SIGN BI
+1204A ; [.49FF.0020.0002] # CUNEIFORM SIGN BI TIMES A
+1204B ; [.4A00.0020.0002] # CUNEIFORM SIGN BI TIMES GAR
+1204C ; [.4A01.0020.0002] # CUNEIFORM SIGN BI TIMES IGI GUNU
+1204D ; [.4A02.0020.0002] # CUNEIFORM SIGN BU
+1204E ; [.4A03.0020.0002] # CUNEIFORM SIGN BU OVER BU AB
+1204F ; [.4A04.0020.0002] # CUNEIFORM SIGN BU OVER BU UN
+12050 ; [.4A05.0020.0002] # CUNEIFORM SIGN BU CROSSING BU
+12051 ; [.4A06.0020.0002] # CUNEIFORM SIGN BULUG
+12052 ; [.4A07.0020.0002] # CUNEIFORM SIGN BULUG OVER BULUG
+12053 ; [.4A08.0020.0002] # CUNEIFORM SIGN BUR
+12054 ; [.4A09.0020.0002] # CUNEIFORM SIGN BUR2
+12055 ; [.4A0A.0020.0002] # CUNEIFORM SIGN DA
+12056 ; [.4A0B.0020.0002] # CUNEIFORM SIGN DAG
+12057 ; [.4A0C.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH
+12058 ; [.4A0D.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES AMAR
+12059 ; [.4A0E.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BALAG
+1205A ; [.4A0F.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BI
+1205B ; [.4A10.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA
+1205C ; [.4A11.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH
+1205D ; [.4A12.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GI
+1205E ; [.4A13.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GIR2
+1205F ; [.4A14.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GUD
+12060 ; [.4A15.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES HA
+12061 ; [.4A16.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR
+12062 ; [.4A17.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU
+12063 ; [.4A18.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES KAK
+12064 ; [.4A19.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LA
+12065 ; [.4A1A.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU
+12066 ; [.4A1B.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2
+12067 ; [.4A1C.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LUM
+12068 ; [.4A1D.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES NE
+12069 ; [.4A1E.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP
+1206A ; [.4A1F.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES SI
+1206B ; [.4A20.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES TAK4
+1206C ; [.4A21.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2
+1206D ; [.4A22.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES USH
+1206E ; [.4A23.0020.0002] # CUNEIFORM SIGN DAM
+1206F ; [.4A24.0020.0002] # CUNEIFORM SIGN DAR
+12070 ; [.4A25.0020.0002] # CUNEIFORM SIGN DARA3
+12071 ; [.4A26.0020.0002] # CUNEIFORM SIGN DARA4
+12072 ; [.4A27.0020.0002] # CUNEIFORM SIGN DI
+12073 ; [.4A28.0020.0002] # CUNEIFORM SIGN DIB
+12074 ; [.4A29.0020.0002] # CUNEIFORM SIGN DIM
+12075 ; [.4A2A.0020.0002] # CUNEIFORM SIGN DIM TIMES SHE
+12076 ; [.4A2B.0020.0002] # CUNEIFORM SIGN DIM2
+12077 ; [.4A2C.0020.0002] # CUNEIFORM SIGN DIN
+12078 ; [.4A2D.0020.0002] # CUNEIFORM SIGN DIN KASKAL U GUNU DISH
+12079 ; [.4A2E.0020.0002] # CUNEIFORM SIGN DISH
+1207A ; [.4A2F.0020.0002] # CUNEIFORM SIGN DU
+1207B ; [.4A30.0020.0002] # CUNEIFORM SIGN DU OVER DU
+1207C ; [.4A31.0020.0002] # CUNEIFORM SIGN DU GUNU
+1207D ; [.4A32.0020.0002] # CUNEIFORM SIGN DU SHESHIG
+1207E ; [.4A33.0020.0002] # CUNEIFORM SIGN DUB
+1207F ; [.4A34.0020.0002] # CUNEIFORM SIGN DUB TIMES ESH2
+12080 ; [.4A35.0020.0002] # CUNEIFORM SIGN DUB2
+12081 ; [.4A36.0020.0002] # CUNEIFORM SIGN DUG
+12082 ; [.4A37.0020.0002] # CUNEIFORM SIGN DUGUD
+12083 ; [.4A38.0020.0002] # CUNEIFORM SIGN DUH
+12084 ; [.4A39.0020.0002] # CUNEIFORM SIGN DUN
+12085 ; [.4A3A.0020.0002] # CUNEIFORM SIGN DUN3
+12086 ; [.4A3B.0020.0002] # CUNEIFORM SIGN DUN3 GUNU
+12087 ; [.4A3C.0020.0002] # CUNEIFORM SIGN DUN3 GUNU GUNU
+12088 ; [.4A3D.0020.0002] # CUNEIFORM SIGN DUN4
+12089 ; [.4A3E.0020.0002] # CUNEIFORM SIGN DUR2
+1208A ; [.4A3F.0020.0002] # CUNEIFORM SIGN E
+1208B ; [.4A40.0020.0002] # CUNEIFORM SIGN E TIMES PAP
+1208C ; [.4A41.0020.0002] # CUNEIFORM SIGN E OVER E NUN OVER NUN
+1208D ; [.4A42.0020.0002] # CUNEIFORM SIGN E2
+1208E ; [.4A43.0020.0002] # CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA
+1208F ; [.4A44.0020.0002] # CUNEIFORM SIGN E2 TIMES GAR
+12090 ; [.4A45.0020.0002] # CUNEIFORM SIGN E2 TIMES MI
+12091 ; [.4A46.0020.0002] # CUNEIFORM SIGN E2 TIMES SAL
+12092 ; [.4A47.0020.0002] # CUNEIFORM SIGN E2 TIMES SHE
+12093 ; [.4A48.0020.0002] # CUNEIFORM SIGN E2 TIMES U
+12094 ; [.4A49.0020.0002] # CUNEIFORM SIGN EDIN
+12095 ; [.4A4A.0020.0002] # CUNEIFORM SIGN EGIR
+12096 ; [.4A4B.0020.0002] # CUNEIFORM SIGN EL
+12097 ; [.4A4C.0020.0002] # CUNEIFORM SIGN EN
+12098 ; [.4A4D.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2
+12099 ; [.4A4E.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2 TENU
+1209A ; [.4A4F.0020.0002] # CUNEIFORM SIGN EN TIMES ME
+1209B ; [.4A50.0020.0002] # CUNEIFORM SIGN EN CROSSING EN
+1209C ; [.4A51.0020.0002] # CUNEIFORM SIGN EN OPPOSING EN
+1209D ; [.4A52.0020.0002] # CUNEIFORM SIGN EN SQUARED
+1209E ; [.4A53.0020.0002] # CUNEIFORM SIGN EREN
+1209F ; [.4A54.0020.0002] # CUNEIFORM SIGN ERIN2
+120A0 ; [.4A55.0020.0002] # CUNEIFORM SIGN ESH2
+120A1 ; [.4A56.0020.0002] # CUNEIFORM SIGN EZEN
+120A2 ; [.4A57.0020.0002] # CUNEIFORM SIGN EZEN TIMES A
+120A3 ; [.4A58.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL
+120A4 ; [.4A59.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL
+120A5 ; [.4A5A.0020.0002] # CUNEIFORM SIGN EZEN TIMES AN
+120A6 ; [.4A5B.0020.0002] # CUNEIFORM SIGN EZEN TIMES BAD
+120A7 ; [.4A5C.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU
+120A8 ; [.4A5D.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU
+120A9 ; [.4A5E.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA
+120AA ; [.4A5F.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA GUNU
+120AB ; [.4A60.0020.0002] # CUNEIFORM SIGN EZEN TIMES IGI GUNU
+120AC ; [.4A61.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL
+120AD ; [.4A62.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED
+120AE ; [.4A63.0020.0002] # CUNEIFORM SIGN EZEN TIMES KU3
+120AF ; [.4A64.0020.0002] # CUNEIFORM SIGN EZEN TIMES LA
+120B0 ; [.4A65.0020.0002] # CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL
+120B1 ; [.4A66.0020.0002] # CUNEIFORM SIGN EZEN TIMES LI
+120B2 ; [.4A67.0020.0002] # CUNEIFORM SIGN EZEN TIMES LU
+120B3 ; [.4A68.0020.0002] # CUNEIFORM SIGN EZEN TIMES U2
+120B4 ; [.4A69.0020.0002] # CUNEIFORM SIGN EZEN TIMES UD
+120B5 ; [.4A6A.0020.0002] # CUNEIFORM SIGN GA
+120B6 ; [.4A6B.0020.0002] # CUNEIFORM SIGN GA GUNU
+120B7 ; [.4A6C.0020.0002] # CUNEIFORM SIGN GA2
+120B8 ; [.4A6D.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA
+120B9 ; [.4A6E.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS HA
+120BA ; [.4A6F.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS IGI
+120BB ; [.4A70.0020.0002] # CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB
+120BC ; [.4A71.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN
+120BD ; [.4A72.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH
+120BE ; [.4A73.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL
+120BF ; [.4A74.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAD
+120C0 ; [.4A75.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAR PLUS RA
+120C1 ; [.4A76.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR
+120C2 ; [.4A77.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR PLUS RA
+120C3 ; [.4A78.0020.0002] # CUNEIFORM SIGN GA2 TIMES DA
+120C4 ; [.4A79.0020.0002] # CUNEIFORM SIGN GA2 TIMES DI
+120C5 ; [.4A7A.0020.0002] # CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE
+120C6 ; [.4A7B.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUB
+120C7 ; [.4A7C.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL
+120C8 ; [.4A7D.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL PLUS LA
+120C9 ; [.4A7E.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN
+120CA ; [.4A7F.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU
+120CB ; [.4A80.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAN2 TENU
+120CC ; [.4A81.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR
+120CD ; [.4A82.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI
+120CE ; [.4A83.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4
+120CF ; [.4A84.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4 PLUS A
+120D0 ; [.4A85.0020.0002] # CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU
+120D1 ; [.4A86.0020.0002] # CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2
+120D2 ; [.4A87.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL
+120D3 ; [.4A88.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL PLUS LA
+120D4 ; [.4A89.0020.0002] # CUNEIFORM SIGN GA2 TIMES HI PLUS LI
+120D5 ; [.4A8A.0020.0002] # CUNEIFORM SIGN GA2 TIMES HUB2
+120D6 ; [.4A8B.0020.0002] # CUNEIFORM SIGN GA2 TIMES IGI GUNU
+120D7 ; [.4A8C.0020.0002] # CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH
+120D8 ; [.4A8D.0020.0002] # CUNEIFORM SIGN GA2 TIMES KAK
+120D9 ; [.4A8E.0020.0002] # CUNEIFORM SIGN GA2 TIMES KASKAL
+120DA ; [.4A8F.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID
+120DB ; [.4A90.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID PLUS LAL
+120DC ; [.4A91.0020.0002] # CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN
+120DD ; [.4A92.0020.0002] # CUNEIFORM SIGN GA2 TIMES LA
+120DE ; [.4A93.0020.0002] # CUNEIFORM SIGN GA2 TIMES ME PLUS EN
+120DF ; [.4A94.0020.0002] # CUNEIFORM SIGN GA2 TIMES MI
+120E0 ; [.4A95.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN
+120E1 ; [.4A96.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN OVER NUN
+120E2 ; [.4A97.0020.0002] # CUNEIFORM SIGN GA2 TIMES PA
+120E3 ; [.4A98.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAL
+120E4 ; [.4A99.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAR
+120E5 ; [.4A9A.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE
+120E6 ; [.4A9B.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR
+120E7 ; [.4A9C.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHID
+120E8 ; [.4A9D.0020.0002] # CUNEIFORM SIGN GA2 TIMES SUM
+120E9 ; [.4A9E.0020.0002] # CUNEIFORM SIGN GA2 TIMES TAK4
+120EA ; [.4A9F.0020.0002] # CUNEIFORM SIGN GA2 TIMES U
+120EB ; [.4AA0.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD
+120EC ; [.4AA1.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD PLUS DU
+120ED ; [.4AA2.0020.0002] # CUNEIFORM SIGN GA2 OVER GA2
+120EE ; [.4AA3.0020.0002] # CUNEIFORM SIGN GABA
+120EF ; [.4AA4.0020.0002] # CUNEIFORM SIGN GABA CROSSING GABA
+120F0 ; [.4AA5.0020.0002] # CUNEIFORM SIGN GAD
+120F1 ; [.4AA6.0020.0002] # CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR
+120F2 ; [.4AA7.0020.0002] # CUNEIFORM SIGN GAL
+120F3 ; [.4AA8.0020.0002] # CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR
+120F4 ; [.4AA9.0020.0002] # CUNEIFORM SIGN GALAM
+120F5 ; [.4AAA.0020.0002] # CUNEIFORM SIGN GAM
+120F6 ; [.4AAB.0020.0002] # CUNEIFORM SIGN GAN
+120F7 ; [.4AAC.0020.0002] # CUNEIFORM SIGN GAN2
+120F8 ; [.4AAD.0020.0002] # CUNEIFORM SIGN GAN2 TENU
+120F9 ; [.4AAE.0020.0002] # CUNEIFORM SIGN GAN2 OVER GAN2
+120FA ; [.4AAF.0020.0002] # CUNEIFORM SIGN GAN2 CROSSING GAN2
+120FB ; [.4AB0.0020.0002] # CUNEIFORM SIGN GAR
+120FC ; [.4AB1.0020.0002] # CUNEIFORM SIGN GAR3
+120FD ; [.4AB2.0020.0002] # CUNEIFORM SIGN GASHAN
+120FE ; [.4AB3.0020.0002] # CUNEIFORM SIGN GESHTIN
+120FF ; [.4AB4.0020.0002] # CUNEIFORM SIGN GESHTIN TIMES KUR
+12100 ; [.4AB5.0020.0002] # CUNEIFORM SIGN GI
+12101 ; [.4AB6.0020.0002] # CUNEIFORM SIGN GI TIMES E
+12102 ; [.4AB7.0020.0002] # CUNEIFORM SIGN GI TIMES U
+12103 ; [.4AB8.0020.0002] # CUNEIFORM SIGN GI CROSSING GI
+12104 ; [.4AB9.0020.0002] # CUNEIFORM SIGN GI4
+12105 ; [.4ABA.0020.0002] # CUNEIFORM SIGN GI4 OVER GI4
+12106 ; [.4ABB.0020.0002] # CUNEIFORM SIGN GI4 CROSSING GI4
+12107 ; [.4ABC.0020.0002] # CUNEIFORM SIGN GIDIM
+12108 ; [.4ABD.0020.0002] # CUNEIFORM SIGN GIR2
+12109 ; [.4ABE.0020.0002] # CUNEIFORM SIGN GIR2 GUNU
+1210A ; [.4ABF.0020.0002] # CUNEIFORM SIGN GIR3
+1210B ; [.4AC0.0020.0002] # CUNEIFORM SIGN GIR3 TIMES A PLUS IGI
+1210C ; [.4AC1.0020.0002] # CUNEIFORM SIGN GIR3 TIMES GAN2 TENU
+1210D ; [.4AC2.0020.0002] # CUNEIFORM SIGN GIR3 TIMES IGI
+1210E ; [.4AC3.0020.0002] # CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI
+1210F ; [.4AC4.0020.0002] # CUNEIFORM SIGN GIR3 TIMES PA
+12110 ; [.4AC5.0020.0002] # CUNEIFORM SIGN GISAL
+12111 ; [.4AC6.0020.0002] # CUNEIFORM SIGN GISH
+12112 ; [.4AC7.0020.0002] # CUNEIFORM SIGN GISH CROSSING GISH
+12113 ; [.4AC8.0020.0002] # CUNEIFORM SIGN GISH TIMES BAD
+12114 ; [.4AC9.0020.0002] # CUNEIFORM SIGN GISH TIMES TAK4
+12115 ; [.4ACA.0020.0002] # CUNEIFORM SIGN GISH TENU
+12116 ; [.4ACB.0020.0002] # CUNEIFORM SIGN GU
+12117 ; [.4ACC.0020.0002] # CUNEIFORM SIGN GU CROSSING GU
+12118 ; [.4ACD.0020.0002] # CUNEIFORM SIGN GU2
+12119 ; [.4ACE.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK
+1211A ; [.4ACF.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU
+1211B ; [.4AD0.0020.0002] # CUNEIFORM SIGN GU2 TIMES NUN
+1211C ; [.4AD1.0020.0002] # CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2
+1211D ; [.4AD2.0020.0002] # CUNEIFORM SIGN GU2 GUNU
+1211E ; [.4AD3.0020.0002] # CUNEIFORM SIGN GUD
+1211F ; [.4AD4.0020.0002] # CUNEIFORM SIGN GUD TIMES A PLUS KUR
+12120 ; [.4AD5.0020.0002] # CUNEIFORM SIGN GUD TIMES KUR
+12121 ; [.4AD6.0020.0002] # CUNEIFORM SIGN GUD OVER GUD LUGAL
+12122 ; [.4AD7.0020.0002] # CUNEIFORM SIGN GUL
+12123 ; [.4AD8.0020.0002] # CUNEIFORM SIGN GUM
+12124 ; [.4AD9.0020.0002] # CUNEIFORM SIGN GUM TIMES SHE
+12125 ; [.4ADA.0020.0002] # CUNEIFORM SIGN GUR
+12126 ; [.4ADB.0020.0002] # CUNEIFORM SIGN GUR7
+12127 ; [.4ADC.0020.0002] # CUNEIFORM SIGN GURUN
+12128 ; [.4ADD.0020.0002] # CUNEIFORM SIGN GURUSH
+12129 ; [.4ADE.0020.0002] # CUNEIFORM SIGN HA
+1212A ; [.4ADF.0020.0002] # CUNEIFORM SIGN HA TENU
+1212B ; [.4AE0.0020.0002] # CUNEIFORM SIGN HA GUNU
+1212C ; [.4AE1.0020.0002] # CUNEIFORM SIGN HAL
+1212D ; [.4AE2.0020.0002] # CUNEIFORM SIGN HI
+1212E ; [.4AE3.0020.0002] # CUNEIFORM SIGN HI TIMES ASH
+1212F ; [.4AE4.0020.0002] # CUNEIFORM SIGN HI TIMES ASH2
+12130 ; [.4AE5.0020.0002] # CUNEIFORM SIGN HI TIMES BAD
+12131 ; [.4AE6.0020.0002] # CUNEIFORM SIGN HI TIMES DISH
+12132 ; [.4AE7.0020.0002] # CUNEIFORM SIGN HI TIMES GAD
+12133 ; [.4AE8.0020.0002] # CUNEIFORM SIGN HI TIMES KIN
+12134 ; [.4AE9.0020.0002] # CUNEIFORM SIGN HI TIMES NUN
+12135 ; [.4AEA.0020.0002] # CUNEIFORM SIGN HI TIMES SHE
+12136 ; [.4AEB.0020.0002] # CUNEIFORM SIGN HI TIMES U
+12137 ; [.4AEC.0020.0002] # CUNEIFORM SIGN HU
+12138 ; [.4AED.0020.0002] # CUNEIFORM SIGN HUB2
+12139 ; [.4AEE.0020.0002] # CUNEIFORM SIGN HUB2 TIMES AN
+1213A ; [.4AEF.0020.0002] # CUNEIFORM SIGN HUB2 TIMES HAL
+1213B ; [.4AF0.0020.0002] # CUNEIFORM SIGN HUB2 TIMES KASKAL
+1213C ; [.4AF1.0020.0002] # CUNEIFORM SIGN HUB2 TIMES LISH
+1213D ; [.4AF2.0020.0002] # CUNEIFORM SIGN HUB2 TIMES UD
+1213E ; [.4AF3.0020.0002] # CUNEIFORM SIGN HUL2
+1213F ; [.4AF4.0020.0002] # CUNEIFORM SIGN I
+12140 ; [.4AF5.0020.0002] # CUNEIFORM SIGN I A
+12141 ; [.4AF6.0020.0002] # CUNEIFORM SIGN IB
+12142 ; [.4AF7.0020.0002] # CUNEIFORM SIGN IDIM
+12143 ; [.4AF8.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM BUR
+12144 ; [.4AF9.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM SQUARED
+12145 ; [.4AFA.0020.0002] # CUNEIFORM SIGN IG
+12146 ; [.4AFB.0020.0002] # CUNEIFORM SIGN IGI
+12147 ; [.4AFC.0020.0002] # CUNEIFORM SIGN IGI DIB
+12148 ; [.4AFD.0020.0002] # CUNEIFORM SIGN IGI RI
+12149 ; [.4AFE.0020.0002] # CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD
+1214A ; [.4AFF.0020.0002] # CUNEIFORM SIGN IGI GUNU
+1214B ; [.4B00.0020.0002] # CUNEIFORM SIGN IL
+1214C ; [.4B01.0020.0002] # CUNEIFORM SIGN IL TIMES GAN2 TENU
+1214D ; [.4B02.0020.0002] # CUNEIFORM SIGN IL2
+1214E ; [.4B03.0020.0002] # CUNEIFORM SIGN IM
+1214F ; [.4B04.0020.0002] # CUNEIFORM SIGN IM TIMES TAK4
+12150 ; [.4B05.0020.0002] # CUNEIFORM SIGN IM CROSSING IM
+12151 ; [.4B06.0020.0002] # CUNEIFORM SIGN IM OPPOSING IM
+12152 ; [.4B07.0020.0002] # CUNEIFORM SIGN IM SQUARED
+12153 ; [.4B08.0020.0002] # CUNEIFORM SIGN IMIN
+12154 ; [.4B09.0020.0002] # CUNEIFORM SIGN IN
+12155 ; [.4B0A.0020.0002] # CUNEIFORM SIGN IR
+12156 ; [.4B0B.0020.0002] # CUNEIFORM SIGN ISH
+12157 ; [.4B0C.0020.0002] # CUNEIFORM SIGN KA
+12158 ; [.4B0D.0020.0002] # CUNEIFORM SIGN KA TIMES A
+12159 ; [.4B0E.0020.0002] # CUNEIFORM SIGN KA TIMES AD
+1215A ; [.4B0F.0020.0002] # CUNEIFORM SIGN KA TIMES AD PLUS KU3
+1215B ; [.4B10.0020.0002] # CUNEIFORM SIGN KA TIMES ASH2
+1215C ; [.4B11.0020.0002] # CUNEIFORM SIGN KA TIMES BAD
+1215D ; [.4B12.0020.0002] # CUNEIFORM SIGN KA TIMES BALAG
+1215E ; [.4B13.0020.0002] # CUNEIFORM SIGN KA TIMES BAR
+1215F ; [.4B14.0020.0002] # CUNEIFORM SIGN KA TIMES BI
+12160 ; [.4B15.0020.0002] # CUNEIFORM SIGN KA TIMES ERIN2
+12161 ; [.4B16.0020.0002] # CUNEIFORM SIGN KA TIMES ESH2
+12162 ; [.4B17.0020.0002] # CUNEIFORM SIGN KA TIMES GA
+12163 ; [.4B18.0020.0002] # CUNEIFORM SIGN KA TIMES GAL
+12164 ; [.4B19.0020.0002] # CUNEIFORM SIGN KA TIMES GAN2 TENU
+12165 ; [.4B1A.0020.0002] # CUNEIFORM SIGN KA TIMES GAR
+12166 ; [.4B1B.0020.0002] # CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A
+12167 ; [.4B1C.0020.0002] # CUNEIFORM SIGN KA TIMES GI
+12168 ; [.4B1D.0020.0002] # CUNEIFORM SIGN KA TIMES GIR2
+12169 ; [.4B1E.0020.0002] # CUNEIFORM SIGN KA TIMES GISH PLUS SAR
+1216A ; [.4B1F.0020.0002] # CUNEIFORM SIGN KA TIMES GISH CROSSING GISH
+1216B ; [.4B20.0020.0002] # CUNEIFORM SIGN KA TIMES GU
+1216C ; [.4B21.0020.0002] # CUNEIFORM SIGN KA TIMES GUR7
+1216D ; [.4B22.0020.0002] # CUNEIFORM SIGN KA TIMES IGI
+1216E ; [.4B23.0020.0002] # CUNEIFORM SIGN KA TIMES IM
+1216F ; [.4B24.0020.0002] # CUNEIFORM SIGN KA TIMES KAK
+12170 ; [.4B25.0020.0002] # CUNEIFORM SIGN KA TIMES KI
+12171 ; [.4B26.0020.0002] # CUNEIFORM SIGN KA TIMES KID
+12172 ; [.4B27.0020.0002] # CUNEIFORM SIGN KA TIMES LI
+12173 ; [.4B28.0020.0002] # CUNEIFORM SIGN KA TIMES LU
+12174 ; [.4B29.0020.0002] # CUNEIFORM SIGN KA TIMES ME
+12175 ; [.4B2A.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS DU
+12176 ; [.4B2B.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS GI
+12177 ; [.4B2C.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS TE
+12178 ; [.4B2D.0020.0002] # CUNEIFORM SIGN KA TIMES MI
+12179 ; [.4B2E.0020.0002] # CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ
+1217A ; [.4B2F.0020.0002] # CUNEIFORM SIGN KA TIMES NE
+1217B ; [.4B30.0020.0002] # CUNEIFORM SIGN KA TIMES NUN
+1217C ; [.4B31.0020.0002] # CUNEIFORM SIGN KA TIMES PI
+1217D ; [.4B32.0020.0002] # CUNEIFORM SIGN KA TIMES RU
+1217E ; [.4B33.0020.0002] # CUNEIFORM SIGN KA TIMES SA
+1217F ; [.4B34.0020.0002] # CUNEIFORM SIGN KA TIMES SAR
+12180 ; [.4B35.0020.0002] # CUNEIFORM SIGN KA TIMES SHA
+12181 ; [.4B36.0020.0002] # CUNEIFORM SIGN KA TIMES SHE
+12182 ; [.4B37.0020.0002] # CUNEIFORM SIGN KA TIMES SHID
+12183 ; [.4B38.0020.0002] # CUNEIFORM SIGN KA TIMES SHU
+12184 ; [.4B39.0020.0002] # CUNEIFORM SIGN KA TIMES SIG
+12185 ; [.4B3A.0020.0002] # CUNEIFORM SIGN KA TIMES SUHUR
+12186 ; [.4B3B.0020.0002] # CUNEIFORM SIGN KA TIMES TAR
+12187 ; [.4B3C.0020.0002] # CUNEIFORM SIGN KA TIMES U
+12188 ; [.4B3D.0020.0002] # CUNEIFORM SIGN KA TIMES U2
+12189 ; [.4B3E.0020.0002] # CUNEIFORM SIGN KA TIMES UD
+1218A ; [.4B3F.0020.0002] # CUNEIFORM SIGN KA TIMES UMUM TIMES PA
+1218B ; [.4B40.0020.0002] # CUNEIFORM SIGN KA TIMES USH
+1218C ; [.4B41.0020.0002] # CUNEIFORM SIGN KA TIMES ZI
+1218D ; [.4B42.0020.0002] # CUNEIFORM SIGN KA2
+1218E ; [.4B43.0020.0002] # CUNEIFORM SIGN KA2 CROSSING KA2
+1218F ; [.4B44.0020.0002] # CUNEIFORM SIGN KAB
+12190 ; [.4B45.0020.0002] # CUNEIFORM SIGN KAD2
+12191 ; [.4B46.0020.0002] # CUNEIFORM SIGN KAD3
+12192 ; [.4B47.0020.0002] # CUNEIFORM SIGN KAD4
+12193 ; [.4B48.0020.0002] # CUNEIFORM SIGN KAD5
+12194 ; [.4B49.0020.0002] # CUNEIFORM SIGN KAD5 OVER KAD5
+12195 ; [.4B4A.0020.0002] # CUNEIFORM SIGN KAK
+12196 ; [.4B4B.0020.0002] # CUNEIFORM SIGN KAK TIMES IGI GUNU
+12197 ; [.4B4C.0020.0002] # CUNEIFORM SIGN KAL
+12198 ; [.4B4D.0020.0002] # CUNEIFORM SIGN KAL TIMES BAD
+12199 ; [.4B4E.0020.0002] # CUNEIFORM SIGN KAL CROSSING KAL
+1219A ; [.4B4F.0020.0002] # CUNEIFORM SIGN KAM2
+1219B ; [.4B50.0020.0002] # CUNEIFORM SIGN KAM4
+1219C ; [.4B51.0020.0002] # CUNEIFORM SIGN KASKAL
+1219D ; [.4B52.0020.0002] # CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U
+1219E ; [.4B53.0020.0002] # CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U
+1219F ; [.4B54.0020.0002] # CUNEIFORM SIGN KESH2
+121A0 ; [.4B55.0020.0002] # CUNEIFORM SIGN KI
+121A1 ; [.4B56.0020.0002] # CUNEIFORM SIGN KI TIMES BAD
+121A2 ; [.4B57.0020.0002] # CUNEIFORM SIGN KI TIMES U
+121A3 ; [.4B58.0020.0002] # CUNEIFORM SIGN KI TIMES UD
+121A4 ; [.4B59.0020.0002] # CUNEIFORM SIGN KID
+121A5 ; [.4B5A.0020.0002] # CUNEIFORM SIGN KIN
+121A6 ; [.4B5B.0020.0002] # CUNEIFORM SIGN KISAL
+121A7 ; [.4B5C.0020.0002] # CUNEIFORM SIGN KISH
+121A8 ; [.4B5D.0020.0002] # CUNEIFORM SIGN KISIM5
+121A9 ; [.4B5E.0020.0002] # CUNEIFORM SIGN KISIM5 OVER KISIM5
+121AA ; [.4B5F.0020.0002] # CUNEIFORM SIGN KU
+121AB ; [.4B60.0020.0002] # CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2
+121AC ; [.4B61.0020.0002] # CUNEIFORM SIGN KU3
+121AD ; [.4B62.0020.0002] # CUNEIFORM SIGN KU4
+121AE ; [.4B63.0020.0002] # CUNEIFORM SIGN KU4 VARIANT FORM
+121AF ; [.4B64.0020.0002] # CUNEIFORM SIGN KU7
+121B0 ; [.4B65.0020.0002] # CUNEIFORM SIGN KUL
+121B1 ; [.4B66.0020.0002] # CUNEIFORM SIGN KUL GUNU
+121B2 ; [.4B67.0020.0002] # CUNEIFORM SIGN KUN
+121B3 ; [.4B68.0020.0002] # CUNEIFORM SIGN KUR
+121B4 ; [.4B69.0020.0002] # CUNEIFORM SIGN KUR OPPOSING KUR
+121B5 ; [.4B6A.0020.0002] # CUNEIFORM SIGN KUSHU2
+121B6 ; [.4B6B.0020.0002] # CUNEIFORM SIGN KWU318
+121B7 ; [.4B6C.0020.0002] # CUNEIFORM SIGN LA
+121B8 ; [.4B6D.0020.0002] # CUNEIFORM SIGN LAGAB
+121B9 ; [.4B6E.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A
+121BA ; [.4B6F.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA
+121BB ; [.4B70.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS GAR
+121BC ; [.4B71.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS LAL
+121BD ; [.4B72.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AL
+121BE ; [.4B73.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AN
+121BF ; [.4B74.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU
+121C0 ; [.4B75.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BAD
+121C1 ; [.4B76.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BI
+121C2 ; [.4B77.0020.0002] # CUNEIFORM SIGN LAGAB TIMES DAR
+121C3 ; [.4B78.0020.0002] # CUNEIFORM SIGN LAGAB TIMES EN
+121C4 ; [.4B79.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GA
+121C5 ; [.4B7A.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GAR
+121C6 ; [.4B7B.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD
+121C7 ; [.4B7C.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD
+121C8 ; [.4B7D.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HA
+121C9 ; [.4B7E.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HAL
+121CA ; [.4B7F.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN
+121CB ; [.4B80.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IGI GUNU
+121CC ; [.4B81.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM
+121CD ; [.4B82.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS HA
+121CE ; [.4B83.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS LU
+121CF ; [.4B84.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KI
+121D0 ; [.4B85.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KIN
+121D1 ; [.4B86.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KU3
+121D2 ; [.4B87.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL
+121D3 ; [.4B88.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A
+121D4 ; [.4B89.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LAGAB
+121D5 ; [.4B8A.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LISH
+121D6 ; [.4B8B.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LU
+121D7 ; [.4B8C.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LUL
+121D8 ; [.4B8D.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME
+121D9 ; [.4B8E.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME PLUS EN
+121DA ; [.4B8F.0020.0002] # CUNEIFORM SIGN LAGAB TIMES MUSH
+121DB ; [.4B90.0020.0002] # CUNEIFORM SIGN LAGAB TIMES NE
+121DC ; [.4B91.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM
+121DD ; [.4B92.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2
+121DE ; [.4B93.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU
+121DF ; [.4B94.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2
+121E0 ; [.4B95.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2
+121E1 ; [.4B96.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SUM
+121E2 ; [.4B97.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAG
+121E3 ; [.4B98.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAK4
+121E4 ; [.4B99.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA
+121E5 ; [.4B9A.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U
+121E6 ; [.4B9B.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS A
+121E7 ; [.4B9C.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U
+121E8 ; [.4B9D.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH
+121E9 ; [.4B9E.0020.0002] # CUNEIFORM SIGN LAGAB TIMES UD
+121EA ; [.4B9F.0020.0002] # CUNEIFORM SIGN LAGAB TIMES USH
+121EB ; [.4BA0.0020.0002] # CUNEIFORM SIGN LAGAB SQUARED
+121EC ; [.4BA1.0020.0002] # CUNEIFORM SIGN LAGAR
+121ED ; [.4BA2.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE
+121EE ; [.4BA3.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM
+121EF ; [.4BA4.0020.0002] # CUNEIFORM SIGN LAGAR GUNU
+121F0 ; [.4BA5.0020.0002] # CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE
+121F1 ; [.4BA6.0020.0002] # CUNEIFORM SIGN LAHSHU
+121F2 ; [.4BA7.0020.0002] # CUNEIFORM SIGN LAL
+121F3 ; [.4BA8.0020.0002] # CUNEIFORM SIGN LAL TIMES LAL
+121F4 ; [.4BA9.0020.0002] # CUNEIFORM SIGN LAM
+121F5 ; [.4BAA.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR
+121F6 ; [.4BAB.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR PLUS RU
+121F7 ; [.4BAC.0020.0002] # CUNEIFORM SIGN LI
+121F8 ; [.4BAD.0020.0002] # CUNEIFORM SIGN LIL
+121F9 ; [.4BAE.0020.0002] # CUNEIFORM SIGN LIMMU2
+121FA ; [.4BAF.0020.0002] # CUNEIFORM SIGN LISH
+121FB ; [.4BB0.0020.0002] # CUNEIFORM SIGN LU
+121FC ; [.4BB1.0020.0002] # CUNEIFORM SIGN LU TIMES BAD
+121FD ; [.4BB2.0020.0002] # CUNEIFORM SIGN LU2
+121FE ; [.4BB3.0020.0002] # CUNEIFORM SIGN LU2 TIMES AL
+121FF ; [.4BB4.0020.0002] # CUNEIFORM SIGN LU2 TIMES BAD
+12200 ; [.4BB5.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2
+12201 ; [.4BB6.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 TENU
+12202 ; [.4BB7.0020.0002] # CUNEIFORM SIGN LU2 TIMES GAN2 TENU
+12203 ; [.4BB8.0020.0002] # CUNEIFORM SIGN LU2 TIMES HI TIMES BAD
+12204 ; [.4BB9.0020.0002] # CUNEIFORM SIGN LU2 TIMES IM
+12205 ; [.4BBA.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD2
+12206 ; [.4BBB.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3
+12207 ; [.4BBC.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH
+12208 ; [.4BBD.0020.0002] # CUNEIFORM SIGN LU2 TIMES KI
+12209 ; [.4BBE.0020.0002] # CUNEIFORM SIGN LU2 TIMES LA PLUS ASH
+1220A ; [.4BBF.0020.0002] # CUNEIFORM SIGN LU2 TIMES LAGAB
+1220B ; [.4BC0.0020.0002] # CUNEIFORM SIGN LU2 TIMES ME PLUS EN
+1220C ; [.4BC1.0020.0002] # CUNEIFORM SIGN LU2 TIMES NE
+1220D ; [.4BC2.0020.0002] # CUNEIFORM SIGN LU2 TIMES NU
+1220E ; [.4BC3.0020.0002] # CUNEIFORM SIGN LU2 TIMES SI PLUS ASH
+1220F ; [.4BC4.0020.0002] # CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU
+12210 ; [.4BC5.0020.0002] # CUNEIFORM SIGN LU2 TIMES TUG2
+12211 ; [.4BC6.0020.0002] # CUNEIFORM SIGN LU2 TENU
+12212 ; [.4BC7.0020.0002] # CUNEIFORM SIGN LU2 CROSSING LU2
+12213 ; [.4BC8.0020.0002] # CUNEIFORM SIGN LU2 OPPOSING LU2
+12214 ; [.4BC9.0020.0002] # CUNEIFORM SIGN LU2 SQUARED
+12215 ; [.4BCA.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG
+12216 ; [.4BCB.0020.0002] # CUNEIFORM SIGN LU3
+12217 ; [.4BCC.0020.0002] # CUNEIFORM SIGN LUGAL
+12218 ; [.4BCD.0020.0002] # CUNEIFORM SIGN LUGAL OVER LUGAL
+12219 ; [.4BCE.0020.0002] # CUNEIFORM SIGN LUGAL OPPOSING LUGAL
+1221A ; [.4BCF.0020.0002] # CUNEIFORM SIGN LUGAL SHESHIG
+1221B ; [.4BD0.0020.0002] # CUNEIFORM SIGN LUH
+1221C ; [.4BD1.0020.0002] # CUNEIFORM SIGN LUL
+1221D ; [.4BD2.0020.0002] # CUNEIFORM SIGN LUM
+1221E ; [.4BD3.0020.0002] # CUNEIFORM SIGN LUM OVER LUM
+1221F ; [.4BD4.0020.0002] # CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR
+12220 ; [.4BD5.0020.0002] # CUNEIFORM SIGN MA
+12221 ; [.4BD6.0020.0002] # CUNEIFORM SIGN MA TIMES TAK4
+12222 ; [.4BD7.0020.0002] # CUNEIFORM SIGN MA GUNU
+12223 ; [.4BD8.0020.0002] # CUNEIFORM SIGN MA2
+12224 ; [.4BD9.0020.0002] # CUNEIFORM SIGN MAH
+12225 ; [.4BDA.0020.0002] # CUNEIFORM SIGN MAR
+12226 ; [.4BDB.0020.0002] # CUNEIFORM SIGN MASH
+12227 ; [.4BDC.0020.0002] # CUNEIFORM SIGN MASH2
+12228 ; [.4BDD.0020.0002] # CUNEIFORM SIGN ME
+12229 ; [.4BDE.0020.0002] # CUNEIFORM SIGN MES
+1222A ; [.4BDF.0020.0002] # CUNEIFORM SIGN MI
+1222B ; [.4BE0.0020.0002] # CUNEIFORM SIGN MIN
+1222C ; [.4BE1.0020.0002] # CUNEIFORM SIGN MU
+1222D ; [.4BE2.0020.0002] # CUNEIFORM SIGN MU OVER MU
+1222E ; [.4BE3.0020.0002] # CUNEIFORM SIGN MUG
+1222F ; [.4BE4.0020.0002] # CUNEIFORM SIGN MUG GUNU
+12230 ; [.4BE5.0020.0002] # CUNEIFORM SIGN MUNSUB
+12231 ; [.4BE6.0020.0002] # CUNEIFORM SIGN MURGU2
+12232 ; [.4BE7.0020.0002] # CUNEIFORM SIGN MUSH
+12233 ; [.4BE8.0020.0002] # CUNEIFORM SIGN MUSH TIMES A
+12234 ; [.4BE9.0020.0002] # CUNEIFORM SIGN MUSH TIMES KUR
+12235 ; [.4BEA.0020.0002] # CUNEIFORM SIGN MUSH TIMES ZA
+12236 ; [.4BEB.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH
+12237 ; [.4BEC.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA
+12238 ; [.4BED.0020.0002] # CUNEIFORM SIGN MUSH CROSSING MUSH
+12239 ; [.4BEE.0020.0002] # CUNEIFORM SIGN MUSH3
+1223A ; [.4BEF.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A
+1223B ; [.4BF0.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A PLUS DI
+1223C ; [.4BF1.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES DI
+1223D ; [.4BF2.0020.0002] # CUNEIFORM SIGN MUSH3 GUNU
+1223E ; [.4BF3.0020.0002] # CUNEIFORM SIGN NA
+1223F ; [.4BF4.0020.0002] # CUNEIFORM SIGN NA2
+12240 ; [.4BF5.0020.0002] # CUNEIFORM SIGN NAGA
+12241 ; [.4BF6.0020.0002] # CUNEIFORM SIGN NAGA INVERTED
+12242 ; [.4BF7.0020.0002] # CUNEIFORM SIGN NAGA TIMES SHU TENU
+12243 ; [.4BF8.0020.0002] # CUNEIFORM SIGN NAGA OPPOSING NAGA
+12244 ; [.4BF9.0020.0002] # CUNEIFORM SIGN NAGAR
+12245 ; [.4BFA.0020.0002] # CUNEIFORM SIGN NAM NUTILLU
+12246 ; [.4BFB.0020.0002] # CUNEIFORM SIGN NAM
+12247 ; [.4BFC.0020.0002] # CUNEIFORM SIGN NAM2
+12248 ; [.4BFD.0020.0002] # CUNEIFORM SIGN NE
+12249 ; [.4BFE.0020.0002] # CUNEIFORM SIGN NE TIMES A
+1224A ; [.4BFF.0020.0002] # CUNEIFORM SIGN NE TIMES UD
+1224B ; [.4C00.0020.0002] # CUNEIFORM SIGN NE SHESHIG
+1224C ; [.4C01.0020.0002] # CUNEIFORM SIGN NI
+1224D ; [.4C02.0020.0002] # CUNEIFORM SIGN NI TIMES E
+1224E ; [.4C03.0020.0002] # CUNEIFORM SIGN NI2
+1224F ; [.4C04.0020.0002] # CUNEIFORM SIGN NIM
+12250 ; [.4C05.0020.0002] # CUNEIFORM SIGN NIM TIMES GAN2 TENU
+12251 ; [.4C06.0020.0002] # CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU
+12252 ; [.4C07.0020.0002] # CUNEIFORM SIGN NINDA2
+12253 ; [.4C08.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES AN
+12254 ; [.4C09.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH
+12255 ; [.4C0A.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH
+12256 ; [.4C0B.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GUD
+12257 ; [.4C0C.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU
+12258 ; [.4C0D.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NE
+12259 ; [.4C0E.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NUN
+1225A ; [.4C0F.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE
+1225B ; [.4C10.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN
+1225C ; [.4C11.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH
+1225D ; [.4C12.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH
+1225E ; [.4C13.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH
+1225F ; [.4C14.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES USH
+12260 ; [.4C15.0020.0002] # CUNEIFORM SIGN NISAG
+12261 ; [.4C16.0020.0002] # CUNEIFORM SIGN NU
+12262 ; [.4C17.0020.0002] # CUNEIFORM SIGN NU11
+122D4 ; [.4C18.0020.0002] # CUNEIFORM SIGN SHIR TENU
+122D5 ; [.4C19.0020.0002] # CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR
+12263 ; [.4C1A.0020.0002] # CUNEIFORM SIGN NUN
+12264 ; [.4C1B.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES GAR
+12265 ; [.4C1C.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES MASH
+12266 ; [.4C1D.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL
+12267 ; [.4C1E.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL
+12268 ; [.4C1F.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES USH
+12269 ; [.4C20.0020.0002] # CUNEIFORM SIGN NUN TENU
+1226A ; [.4C21.0020.0002] # CUNEIFORM SIGN NUN OVER NUN
+1226B ; [.4C22.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN
+1226C ; [.4C23.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR
+1226D ; [.4C24.0020.0002] # CUNEIFORM SIGN NUNUZ
+1226E ; [.4C25.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB
+1226F ; [.4C26.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES BI
+12270 ; [.4C27.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES DUG
+12271 ; [.4C28.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES GUD
+12272 ; [.4C29.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU
+12273 ; [.4C2A.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3
+12274 ; [.4C2B.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES LA
+12275 ; [.4C2C.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES NE
+12276 ; [.4C2D.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3
+12277 ; [.4C2E.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES U2
+12278 ; [.4C2F.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI
+12279 ; [.4C30.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U
+1227A ; [.4C31.0020.0002] # CUNEIFORM SIGN PA
+1227B ; [.4C32.0020.0002] # CUNEIFORM SIGN PAD
+1227C ; [.4C33.0020.0002] # CUNEIFORM SIGN PAN
+1227D ; [.4C34.0020.0002] # CUNEIFORM SIGN PAP
+1227E ; [.4C35.0020.0002] # CUNEIFORM SIGN PESH2
+1227F ; [.4C36.0020.0002] # CUNEIFORM SIGN PI
+12280 ; [.4C37.0020.0002] # CUNEIFORM SIGN PI TIMES A
+12281 ; [.4C38.0020.0002] # CUNEIFORM SIGN PI TIMES AB
+12282 ; [.4C39.0020.0002] # CUNEIFORM SIGN PI TIMES BI
+12283 ; [.4C3A.0020.0002] # CUNEIFORM SIGN PI TIMES BU
+12284 ; [.4C3B.0020.0002] # CUNEIFORM SIGN PI TIMES E
+12285 ; [.4C3C.0020.0002] # CUNEIFORM SIGN PI TIMES I
+12286 ; [.4C3D.0020.0002] # CUNEIFORM SIGN PI TIMES IB
+12287 ; [.4C3E.0020.0002] # CUNEIFORM SIGN PI TIMES U
+12288 ; [.4C3F.0020.0002] # CUNEIFORM SIGN PI TIMES U2
+12289 ; [.4C40.0020.0002] # CUNEIFORM SIGN PI CROSSING PI
+1228A ; [.4C41.0020.0002] # CUNEIFORM SIGN PIRIG
+1228B ; [.4C42.0020.0002] # CUNEIFORM SIGN PIRIG TIMES KAL
+1228C ; [.4C43.0020.0002] # CUNEIFORM SIGN PIRIG TIMES UD
+1228D ; [.4C44.0020.0002] # CUNEIFORM SIGN PIRIG TIMES ZA
+1228E ; [.4C45.0020.0002] # CUNEIFORM SIGN PIRIG OPPOSING PIRIG
+1228F ; [.4C46.0020.0002] # CUNEIFORM SIGN RA
+12290 ; [.4C47.0020.0002] # CUNEIFORM SIGN RAB
+12291 ; [.4C48.0020.0002] # CUNEIFORM SIGN RI
+12292 ; [.4C49.0020.0002] # CUNEIFORM SIGN RU
+12293 ; [.4C4A.0020.0002] # CUNEIFORM SIGN SA
+12294 ; [.4C4B.0020.0002] # CUNEIFORM SIGN SAG NUTILLU
+12295 ; [.4C4C.0020.0002] # CUNEIFORM SIGN SAG
+12296 ; [.4C4D.0020.0002] # CUNEIFORM SIGN SAG TIMES A
+12297 ; [.4C4E.0020.0002] # CUNEIFORM SIGN SAG TIMES DU
+12298 ; [.4C4F.0020.0002] # CUNEIFORM SIGN SAG TIMES DUB
+12299 ; [.4C50.0020.0002] # CUNEIFORM SIGN SAG TIMES HA
+1229A ; [.4C51.0020.0002] # CUNEIFORM SIGN SAG TIMES KAK
+1229B ; [.4C52.0020.0002] # CUNEIFORM SIGN SAG TIMES KUR
+1229C ; [.4C53.0020.0002] # CUNEIFORM SIGN SAG TIMES LUM
+1229D ; [.4C54.0020.0002] # CUNEIFORM SIGN SAG TIMES MI
+1229E ; [.4C55.0020.0002] # CUNEIFORM SIGN SAG TIMES NUN
+1229F ; [.4C56.0020.0002] # CUNEIFORM SIGN SAG TIMES SAL
+122A0 ; [.4C57.0020.0002] # CUNEIFORM SIGN SAG TIMES SHID
+122A1 ; [.4C58.0020.0002] # CUNEIFORM SIGN SAG TIMES TAB
+122A2 ; [.4C59.0020.0002] # CUNEIFORM SIGN SAG TIMES U2
+122A3 ; [.4C5A.0020.0002] # CUNEIFORM SIGN SAG TIMES UB
+122A4 ; [.4C5B.0020.0002] # CUNEIFORM SIGN SAG TIMES UM
+122A5 ; [.4C5C.0020.0002] # CUNEIFORM SIGN SAG TIMES UR
+122A6 ; [.4C5D.0020.0002] # CUNEIFORM SIGN SAG TIMES USH
+122A7 ; [.4C5E.0020.0002] # CUNEIFORM SIGN SAG OVER SAG
+122A8 ; [.4C5F.0020.0002] # CUNEIFORM SIGN SAG GUNU
+122A9 ; [.4C60.0020.0002] # CUNEIFORM SIGN SAL
+122AA ; [.4C61.0020.0002] # CUNEIFORM SIGN SAL LAGAB TIMES ASH2
+122AB ; [.4C62.0020.0002] # CUNEIFORM SIGN SANGA2
+122AC ; [.4C63.0020.0002] # CUNEIFORM SIGN SAR
+122AD ; [.4C64.0020.0002] # CUNEIFORM SIGN SHA
+122AE ; [.4C65.0020.0002] # CUNEIFORM SIGN SHA3
+122AF ; [.4C66.0020.0002] # CUNEIFORM SIGN SHA3 TIMES A
+122B0 ; [.4C67.0020.0002] # CUNEIFORM SIGN SHA3 TIMES BAD
+122B1 ; [.4C68.0020.0002] # CUNEIFORM SIGN SHA3 TIMES GISH
+122B2 ; [.4C69.0020.0002] # CUNEIFORM SIGN SHA3 TIMES NE
+122B3 ; [.4C6A.0020.0002] # CUNEIFORM SIGN SHA3 TIMES SHU2
+122B4 ; [.4C6B.0020.0002] # CUNEIFORM SIGN SHA3 TIMES TUR
+122B5 ; [.4C6C.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U
+122B6 ; [.4C6D.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U PLUS A
+122B7 ; [.4C6E.0020.0002] # CUNEIFORM SIGN SHA6
+122B8 ; [.4C6F.0020.0002] # CUNEIFORM SIGN SHAB6
+122B9 ; [.4C70.0020.0002] # CUNEIFORM SIGN SHAR2
+122BA ; [.4C71.0020.0002] # CUNEIFORM SIGN SHE
+122BB ; [.4C72.0020.0002] # CUNEIFORM SIGN SHE HU
+122BC ; [.4C73.0020.0002] # CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR
+122BD ; [.4C74.0020.0002] # CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR
+122BE ; [.4C75.0020.0002] # CUNEIFORM SIGN SHEG9
+122BF ; [.4C76.0020.0002] # CUNEIFORM SIGN SHEN
+122C0 ; [.4C77.0020.0002] # CUNEIFORM SIGN SHESH
+122C1 ; [.4C78.0020.0002] # CUNEIFORM SIGN SHESH2
+122C2 ; [.4C79.0020.0002] # CUNEIFORM SIGN SHESHLAM
+122C3 ; [.4C7A.0020.0002] # CUNEIFORM SIGN SHID
+122C4 ; [.4C7B.0020.0002] # CUNEIFORM SIGN SHID TIMES A
+122C5 ; [.4C7C.0020.0002] # CUNEIFORM SIGN SHID TIMES IM
+122C6 ; [.4C7D.0020.0002] # CUNEIFORM SIGN SHIM
+122C7 ; [.4C7E.0020.0002] # CUNEIFORM SIGN SHIM TIMES A
+122C8 ; [.4C7F.0020.0002] # CUNEIFORM SIGN SHIM TIMES BAL
+122C9 ; [.4C80.0020.0002] # CUNEIFORM SIGN SHIM TIMES BULUG
+122CA ; [.4C81.0020.0002] # CUNEIFORM SIGN SHIM TIMES DIN
+122CB ; [.4C82.0020.0002] # CUNEIFORM SIGN SHIM TIMES GAR
+122CC ; [.4C83.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI
+122CD ; [.4C84.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI GUNU
+122CE ; [.4C85.0020.0002] # CUNEIFORM SIGN SHIM TIMES KUSHU2
+122CF ; [.4C86.0020.0002] # CUNEIFORM SIGN SHIM TIMES LUL
+122D0 ; [.4C87.0020.0002] # CUNEIFORM SIGN SHIM TIMES MUG
+122D1 ; [.4C88.0020.0002] # CUNEIFORM SIGN SHIM TIMES SAL
+122D2 ; [.4C89.0020.0002] # CUNEIFORM SIGN SHINIG
+122D3 ; [.4C8A.0020.0002] # CUNEIFORM SIGN SHIR
+122D6 ; [.4C8B.0020.0002] # CUNEIFORM SIGN SHITA
+122D7 ; [.4C8C.0020.0002] # CUNEIFORM SIGN SHU
+122D8 ; [.4C8D.0020.0002] # CUNEIFORM SIGN SHU OVER INVERTED SHU
+122D9 ; [.4C8E.0020.0002] # CUNEIFORM SIGN SHU2
+122DA ; [.4C8F.0020.0002] # CUNEIFORM SIGN SHUBUR
+122DB ; [.4C90.0020.0002] # CUNEIFORM SIGN SI
+122DC ; [.4C91.0020.0002] # CUNEIFORM SIGN SI GUNU
+122DD ; [.4C92.0020.0002] # CUNEIFORM SIGN SIG
+122DE ; [.4C93.0020.0002] # CUNEIFORM SIGN SIG4
+122DF ; [.4C94.0020.0002] # CUNEIFORM SIGN SIG4 OVER SIG4 SHU2
+122E0 ; [.4C95.0020.0002] # CUNEIFORM SIGN SIK2
+122E1 ; [.4C96.0020.0002] # CUNEIFORM SIGN SILA3
+122E2 ; [.4C97.0020.0002] # CUNEIFORM SIGN SU
+122E3 ; [.4C98.0020.0002] # CUNEIFORM SIGN SU OVER SU
+122E4 ; [.4C99.0020.0002] # CUNEIFORM SIGN SUD
+122E5 ; [.4C9A.0020.0002] # CUNEIFORM SIGN SUD2
+122E6 ; [.4C9B.0020.0002] # CUNEIFORM SIGN SUHUR
+122E7 ; [.4C9C.0020.0002] # CUNEIFORM SIGN SUM
+122E8 ; [.4C9D.0020.0002] # CUNEIFORM SIGN SUMASH
+122E9 ; [.4C9E.0020.0002] # CUNEIFORM SIGN SUR
+122EA ; [.4C9F.0020.0002] # CUNEIFORM SIGN SUR9
+122EB ; [.4CA0.0020.0002] # CUNEIFORM SIGN TA
+122EC ; [.4CA1.0020.0002] # CUNEIFORM SIGN TA ASTERISK
+122ED ; [.4CA2.0020.0002] # CUNEIFORM SIGN TA TIMES HI
+122EE ; [.4CA3.0020.0002] # CUNEIFORM SIGN TA TIMES MI
+122EF ; [.4CA4.0020.0002] # CUNEIFORM SIGN TA GUNU
+122F0 ; [.4CA5.0020.0002] # CUNEIFORM SIGN TAB
+122F1 ; [.4CA6.0020.0002] # CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH
+122F2 ; [.4CA7.0020.0002] # CUNEIFORM SIGN TAB SQUARED
+122F3 ; [.4CA8.0020.0002] # CUNEIFORM SIGN TAG
+122F4 ; [.4CA9.0020.0002] # CUNEIFORM SIGN TAG TIMES BI
+122F5 ; [.4CAA.0020.0002] # CUNEIFORM SIGN TAG TIMES GUD
+122F6 ; [.4CAB.0020.0002] # CUNEIFORM SIGN TAG TIMES SHE
+122F7 ; [.4CAC.0020.0002] # CUNEIFORM SIGN TAG TIMES SHU
+122F8 ; [.4CAD.0020.0002] # CUNEIFORM SIGN TAG TIMES TUG2
+122F9 ; [.4CAE.0020.0002] # CUNEIFORM SIGN TAG TIMES UD
+122FA ; [.4CAF.0020.0002] # CUNEIFORM SIGN TAK4
+122FB ; [.4CB0.0020.0002] # CUNEIFORM SIGN TAR
+122FC ; [.4CB1.0020.0002] # CUNEIFORM SIGN TE
+122FD ; [.4CB2.0020.0002] # CUNEIFORM SIGN TE GUNU
+122FE ; [.4CB3.0020.0002] # CUNEIFORM SIGN TI
+122FF ; [.4CB4.0020.0002] # CUNEIFORM SIGN TI TENU
+12300 ; [.4CB5.0020.0002] # CUNEIFORM SIGN TIL
+12301 ; [.4CB6.0020.0002] # CUNEIFORM SIGN TIR
+12302 ; [.4CB7.0020.0002] # CUNEIFORM SIGN TIR TIMES TAK4
+12303 ; [.4CB8.0020.0002] # CUNEIFORM SIGN TIR OVER TIR
+12304 ; [.4CB9.0020.0002] # CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR
+12305 ; [.4CBA.0020.0002] # CUNEIFORM SIGN TU
+12306 ; [.4CBB.0020.0002] # CUNEIFORM SIGN TUG2
+12307 ; [.4CBC.0020.0002] # CUNEIFORM SIGN TUK
+12308 ; [.4CBD.0020.0002] # CUNEIFORM SIGN TUM
+12309 ; [.4CBE.0020.0002] # CUNEIFORM SIGN TUR
+1230A ; [.4CBF.0020.0002] # CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA
+1230B ; [.4CC0.0020.0002] # CUNEIFORM SIGN U
+1230C ; [.4CC1.0020.0002] # CUNEIFORM SIGN U GUD
+1230D ; [.4CC2.0020.0002] # CUNEIFORM SIGN U U U
+1230E ; [.4CC3.0020.0002] # CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR
+1230F ; [.4CC4.0020.0002] # CUNEIFORM SIGN U OVER U SUR OVER SUR
+12310 ; [.4CC5.0020.0002] # CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED
+12311 ; [.4CC6.0020.0002] # CUNEIFORM SIGN U2
+12312 ; [.4CC7.0020.0002] # CUNEIFORM SIGN UB
+12313 ; [.4CC8.0020.0002] # CUNEIFORM SIGN UD
+12314 ; [.4CC9.0020.0002] # CUNEIFORM SIGN UD KUSHU2
+12315 ; [.4CCA.0020.0002] # CUNEIFORM SIGN UD TIMES BAD
+12316 ; [.4CCB.0020.0002] # CUNEIFORM SIGN UD TIMES MI
+12317 ; [.4CCC.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U
+12318 ; [.4CCD.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU
+12319 ; [.4CCE.0020.0002] # CUNEIFORM SIGN UD GUNU
+1231A ; [.4CCF.0020.0002] # CUNEIFORM SIGN UD SHESHIG
+1231B ; [.4CD0.0020.0002] # CUNEIFORM SIGN UD SHESHIG TIMES BAD
+1231C ; [.4CD1.0020.0002] # CUNEIFORM SIGN UDUG
+1231D ; [.4CD2.0020.0002] # CUNEIFORM SIGN UM
+1231E ; [.4CD3.0020.0002] # CUNEIFORM SIGN UM TIMES LAGAB
+1231F ; [.4CD4.0020.0002] # CUNEIFORM SIGN UM TIMES ME PLUS DA
+12320 ; [.4CD5.0020.0002] # CUNEIFORM SIGN UM TIMES SHA3
+12321 ; [.4CD6.0020.0002] # CUNEIFORM SIGN UM TIMES U
+12322 ; [.4CD7.0020.0002] # CUNEIFORM SIGN UMBIN
+12323 ; [.4CD8.0020.0002] # CUNEIFORM SIGN UMUM
+12324 ; [.4CD9.0020.0002] # CUNEIFORM SIGN UMUM TIMES KASKAL
+12325 ; [.4CDA.0020.0002] # CUNEIFORM SIGN UMUM TIMES PA
+12326 ; [.4CDB.0020.0002] # CUNEIFORM SIGN UN
+12327 ; [.4CDC.0020.0002] # CUNEIFORM SIGN UN GUNU
+12328 ; [.4CDD.0020.0002] # CUNEIFORM SIGN UR
+12329 ; [.4CDE.0020.0002] # CUNEIFORM SIGN UR CROSSING UR
+1232A ; [.4CDF.0020.0002] # CUNEIFORM SIGN UR SHESHIG
+1232B ; [.4CE0.0020.0002] # CUNEIFORM SIGN UR2
+1232C ; [.4CE1.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS HA
+1232D ; [.4CE2.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS NA
+1232E ; [.4CE3.0020.0002] # CUNEIFORM SIGN UR2 TIMES AL
+1232F ; [.4CE4.0020.0002] # CUNEIFORM SIGN UR2 TIMES HA
+12330 ; [.4CE5.0020.0002] # CUNEIFORM SIGN UR2 TIMES NUN
+12331 ; [.4CE6.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2
+12332 ; [.4CE7.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH
+12333 ; [.4CE8.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS BI
+12334 ; [.4CE9.0020.0002] # CUNEIFORM SIGN UR4
+12335 ; [.4CEA.0020.0002] # CUNEIFORM SIGN URI
+12336 ; [.4CEB.0020.0002] # CUNEIFORM SIGN URI3
+12337 ; [.4CEC.0020.0002] # CUNEIFORM SIGN URU
+12338 ; [.4CED.0020.0002] # CUNEIFORM SIGN URU TIMES A
+12339 ; [.4CEE.0020.0002] # CUNEIFORM SIGN URU TIMES ASHGAB
+1233A ; [.4CEF.0020.0002] # CUNEIFORM SIGN URU TIMES BAR
+1233B ; [.4CF0.0020.0002] # CUNEIFORM SIGN URU TIMES DUN
+1233C ; [.4CF1.0020.0002] # CUNEIFORM SIGN URU TIMES GA
+1233D ; [.4CF2.0020.0002] # CUNEIFORM SIGN URU TIMES GAL
+1233E ; [.4CF3.0020.0002] # CUNEIFORM SIGN URU TIMES GAN2 TENU
+1233F ; [.4CF4.0020.0002] # CUNEIFORM SIGN URU TIMES GAR
+12340 ; [.4CF5.0020.0002] # CUNEIFORM SIGN URU TIMES GU
+12341 ; [.4CF6.0020.0002] # CUNEIFORM SIGN URU TIMES HA
+12342 ; [.4CF7.0020.0002] # CUNEIFORM SIGN URU TIMES IGI
+12343 ; [.4CF8.0020.0002] # CUNEIFORM SIGN URU TIMES IM
+12344 ; [.4CF9.0020.0002] # CUNEIFORM SIGN URU TIMES ISH
+12345 ; [.4CFA.0020.0002] # CUNEIFORM SIGN URU TIMES KI
+12346 ; [.4CFB.0020.0002] # CUNEIFORM SIGN URU TIMES LUM
+12347 ; [.4CFC.0020.0002] # CUNEIFORM SIGN URU TIMES MIN
+12348 ; [.4CFD.0020.0002] # CUNEIFORM SIGN URU TIMES PA
+12349 ; [.4CFE.0020.0002] # CUNEIFORM SIGN URU TIMES SHE
+1234A ; [.4CFF.0020.0002] # CUNEIFORM SIGN URU TIMES SIG4
+1234B ; [.4D00.0020.0002] # CUNEIFORM SIGN URU TIMES TU
+1234C ; [.4D01.0020.0002] # CUNEIFORM SIGN URU TIMES U PLUS GUD
+1234D ; [.4D02.0020.0002] # CUNEIFORM SIGN URU TIMES UD
+1234E ; [.4D03.0020.0002] # CUNEIFORM SIGN URU TIMES URUDA
+1234F ; [.4D04.0020.0002] # CUNEIFORM SIGN URUDA
+12350 ; [.4D05.0020.0002] # CUNEIFORM SIGN URUDA TIMES U
+12351 ; [.4D06.0020.0002] # CUNEIFORM SIGN USH
+12352 ; [.4D07.0020.0002] # CUNEIFORM SIGN USH TIMES A
+12353 ; [.4D08.0020.0002] # CUNEIFORM SIGN USH TIMES KU
+12354 ; [.4D09.0020.0002] # CUNEIFORM SIGN USH TIMES KUR
+12355 ; [.4D0A.0020.0002] # CUNEIFORM SIGN USH TIMES TAK4
+12356 ; [.4D0B.0020.0002] # CUNEIFORM SIGN USHX
+12357 ; [.4D0C.0020.0002] # CUNEIFORM SIGN USH2
+12358 ; [.4D0D.0020.0002] # CUNEIFORM SIGN USHUMX
+12359 ; [.4D0E.0020.0002] # CUNEIFORM SIGN UTUKI
+1235A ; [.4D0F.0020.0002] # CUNEIFORM SIGN UZ3
+1235B ; [.4D10.0020.0002] # CUNEIFORM SIGN UZ3 TIMES KASKAL
+1235C ; [.4D11.0020.0002] # CUNEIFORM SIGN UZU
+1235D ; [.4D12.0020.0002] # CUNEIFORM SIGN ZA
+1235E ; [.4D13.0020.0002] # CUNEIFORM SIGN ZA TENU
+1235F ; [.4D14.0020.0002] # CUNEIFORM SIGN ZA SQUARED TIMES KUR
+12360 ; [.4D15.0020.0002] # CUNEIFORM SIGN ZAG
+12361 ; [.4D16.0020.0002] # CUNEIFORM SIGN ZAMX
+12362 ; [.4D17.0020.0002] # CUNEIFORM SIGN ZE2
+12363 ; [.4D18.0020.0002] # CUNEIFORM SIGN ZI
+12364 ; [.4D19.0020.0002] # CUNEIFORM SIGN ZI OVER ZI
+12365 ; [.4D1A.0020.0002] # CUNEIFORM SIGN ZI3
+12366 ; [.4D1B.0020.0002] # CUNEIFORM SIGN ZIB
+12367 ; [.4D1C.0020.0002] # CUNEIFORM SIGN ZIB KABA TENU
+12368 ; [.4D1D.0020.0002] # CUNEIFORM SIGN ZIG
+12369 ; [.4D1E.0020.0002] # CUNEIFORM SIGN ZIZ2
+1236A ; [.4D1F.0020.0002] # CUNEIFORM SIGN ZU
+1236B ; [.4D20.0020.0002] # CUNEIFORM SIGN ZU5
+1236C ; [.4D21.0020.0002] # CUNEIFORM SIGN ZU5 TIMES A
+1236D ; [.4D22.0020.0002] # CUNEIFORM SIGN ZUBUR
+1236E ; [.4D23.0020.0002] # CUNEIFORM SIGN ZUM
+1236F ; [.4D24.0020.0002] # CUNEIFORM SIGN KAP ELAMITE
+12370 ; [.4D25.0020.0002] # CUNEIFORM SIGN AB TIMES NUN
+12371 ; [.4D26.0020.0002] # CUNEIFORM SIGN AB2 TIMES A
+12372 ; [.4D27.0020.0002] # CUNEIFORM SIGN AMAR TIMES KUG
+12373 ; [.4D28.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH
+12374 ; [.4D29.0020.0002] # CUNEIFORM SIGN DAG3
+12375 ; [.4D2A.0020.0002] # CUNEIFORM SIGN DISH PLUS SHU
+12376 ; [.4D2B.0020.0002] # CUNEIFORM SIGN DUB TIMES SHE
+12377 ; [.4D2C.0020.0002] # CUNEIFORM SIGN EZEN TIMES GUD
+12378 ; [.4D2D.0020.0002] # CUNEIFORM SIGN EZEN TIMES SHE
+12379 ; [.4D2E.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A
+1237A ; [.4D2F.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2
+1237B ; [.4D30.0020.0002] # CUNEIFORM SIGN GE22
+1237C ; [.4D31.0020.0002] # CUNEIFORM SIGN GIG
+1237D ; [.4D32.0020.0002] # CUNEIFORM SIGN HUSH
+1237E ; [.4D33.0020.0002] # CUNEIFORM SIGN KA TIMES ANSHE
+1237F ; [.4D34.0020.0002] # CUNEIFORM SIGN KA TIMES ASH3
+12380 ; [.4D35.0020.0002] # CUNEIFORM SIGN KA TIMES GISH
+12381 ; [.4D36.0020.0002] # CUNEIFORM SIGN KA TIMES GUD
+12382 ; [.4D37.0020.0002] # CUNEIFORM SIGN KA TIMES HI TIMES ASH2
+12383 ; [.4D38.0020.0002] # CUNEIFORM SIGN KA TIMES LUM
+12384 ; [.4D39.0020.0002] # CUNEIFORM SIGN KA TIMES PA
+12385 ; [.4D3A.0020.0002] # CUNEIFORM SIGN KA TIMES SHUL
+12386 ; [.4D3B.0020.0002] # CUNEIFORM SIGN KA TIMES TU
+12387 ; [.4D3C.0020.0002] # CUNEIFORM SIGN KA TIMES UR2
+12388 ; [.4D3D.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GI
+12389 ; [.4D3E.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG TIMES BAD
+1238A ; [.4D3F.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL
+1238B ; [.4D40.0020.0002] # CUNEIFORM SIGN LU2 TIMES SHU
+1238C ; [.4D41.0020.0002] # CUNEIFORM SIGN MESH
+1238D ; [.4D42.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES ZA
+1238E ; [.4D43.0020.0002] # CUNEIFORM SIGN NA4
+1238F ; [.4D44.0020.0002] # CUNEIFORM SIGN NIN
+12390 ; [.4D45.0020.0002] # CUNEIFORM SIGN NIN9
+12391 ; [.4D46.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES BAL
+12392 ; [.4D47.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GI
+12393 ; [.4D48.0020.0002] # CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES
+12394 ; [.4D49.0020.0002] # CUNEIFORM SIGN PESH2 ASTERISK
+12395 ; [.4D4A.0020.0002] # CUNEIFORM SIGN PIR2
+12396 ; [.4D4B.0020.0002] # CUNEIFORM SIGN SAG TIMES IGI GUNU
+12397 ; [.4D4C.0020.0002] # CUNEIFORM SIGN TI2
+12398 ; [.4D4D.0020.0002] # CUNEIFORM SIGN UM TIMES ME
+12399 ; [.4D4E.0020.0002] # CUNEIFORM SIGN U U
+12480 ; [.4D4F.0020.0002] # CUNEIFORM SIGN AB TIMES NUN TENU
+12481 ; [.4D50.0020.0002] # CUNEIFORM SIGN AB TIMES SHU2
+12482 ; [.4D51.0020.0002] # CUNEIFORM SIGN AD TIMES ESH2
+12483 ; [.4D52.0020.0002] # CUNEIFORM SIGN BAD TIMES DISH TENU
+12484 ; [.4D53.0020.0002] # CUNEIFORM SIGN BAHAR2 TIMES AB2
+12485 ; [.4D54.0020.0002] # CUNEIFORM SIGN BAHAR2 TIMES NI
+12486 ; [.4D55.0020.0002] # CUNEIFORM SIGN BAHAR2 TIMES ZA
+12487 ; [.4D56.0020.0002] # CUNEIFORM SIGN BU OVER BU TIMES NA2
+12488 ; [.4D57.0020.0002] # CUNEIFORM SIGN DA TIMES TAK4
+12489 ; [.4D58.0020.0002] # CUNEIFORM SIGN DAG TIMES KUR
+1248A ; [.4D59.0020.0002] # CUNEIFORM SIGN DIM TIMES IGI
+1248B ; [.4D5A.0020.0002] # CUNEIFORM SIGN DIM TIMES U U U
+1248C ; [.4D5B.0020.0002] # CUNEIFORM SIGN DIM2 TIMES UD
+1248D ; [.4D5C.0020.0002] # CUNEIFORM SIGN DUG TIMES ANSHE
+1248E ; [.4D5D.0020.0002] # CUNEIFORM SIGN DUG TIMES ASH
+1248F ; [.4D5E.0020.0002] # CUNEIFORM SIGN DUG TIMES ASH AT LEFT
+12490 ; [.4D5F.0020.0002] # CUNEIFORM SIGN DUG TIMES DIN
+12491 ; [.4D60.0020.0002] # CUNEIFORM SIGN DUG TIMES DUN
+12492 ; [.4D61.0020.0002] # CUNEIFORM SIGN DUG TIMES ERIN2
+12493 ; [.4D62.0020.0002] # CUNEIFORM SIGN DUG TIMES GA
+12494 ; [.4D63.0020.0002] # CUNEIFORM SIGN DUG TIMES GI
+12495 ; [.4D64.0020.0002] # CUNEIFORM SIGN DUG TIMES GIR2 GUNU
+12496 ; [.4D65.0020.0002] # CUNEIFORM SIGN DUG TIMES GISH
+12497 ; [.4D66.0020.0002] # CUNEIFORM SIGN DUG TIMES HA
+12498 ; [.4D67.0020.0002] # CUNEIFORM SIGN DUG TIMES HI
+12499 ; [.4D68.0020.0002] # CUNEIFORM SIGN DUG TIMES IGI GUNU
+1249A ; [.4D69.0020.0002] # CUNEIFORM SIGN DUG TIMES KASKAL
+1249B ; [.4D6A.0020.0002] # CUNEIFORM SIGN DUG TIMES KUR
+1249C ; [.4D6B.0020.0002] # CUNEIFORM SIGN DUG TIMES KUSHU2
+1249D ; [.4D6C.0020.0002] # CUNEIFORM SIGN DUG TIMES KUSHU2 PLUS KASKAL
+1249E ; [.4D6D.0020.0002] # CUNEIFORM SIGN DUG TIMES LAK-020
+1249F ; [.4D6E.0020.0002] # CUNEIFORM SIGN DUG TIMES LAM
+124A0 ; [.4D6F.0020.0002] # CUNEIFORM SIGN DUG TIMES LAM TIMES KUR
+124A1 ; [.4D70.0020.0002] # CUNEIFORM SIGN DUG TIMES LUH PLUS GISH
+124A2 ; [.4D71.0020.0002] # CUNEIFORM SIGN DUG TIMES MASH
+124A3 ; [.4D72.0020.0002] # CUNEIFORM SIGN DUG TIMES MES
+124A4 ; [.4D73.0020.0002] # CUNEIFORM SIGN DUG TIMES MI
+124A5 ; [.4D74.0020.0002] # CUNEIFORM SIGN DUG TIMES NI
+124A6 ; [.4D75.0020.0002] # CUNEIFORM SIGN DUG TIMES PI
+124A7 ; [.4D76.0020.0002] # CUNEIFORM SIGN DUG TIMES SHE
+124A8 ; [.4D77.0020.0002] # CUNEIFORM SIGN DUG TIMES SI GUNU
+124A9 ; [.4D78.0020.0002] # CUNEIFORM SIGN E2 TIMES KUR
+124AA ; [.4D79.0020.0002] # CUNEIFORM SIGN E2 TIMES PAP
+124AB ; [.4D7A.0020.0002] # CUNEIFORM SIGN ERIN2 X
+124AC ; [.4D7B.0020.0002] # CUNEIFORM SIGN ESH2 CROSSING ESH2
+124AD ; [.4D7C.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES ASH
+124AE ; [.4D7D.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES HI
+124AF ; [.4D7E.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES IGI GUNU
+124B0 ; [.4D7F.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES LA
+124B1 ; [.4D80.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES LAL
+124B2 ; [.4D81.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES ME
+124B3 ; [.4D82.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES MES
+124B4 ; [.4D83.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES SU
+124B5 ; [.4D84.0020.0002] # CUNEIFORM SIGN EZEN TIMES SU
+124B6 ; [.4D85.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAHAR2
+124B7 ; [.4D86.0020.0002] # CUNEIFORM SIGN GA2 TIMES DIM GUNU
+124B8 ; [.4D87.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUG TIMES IGI GUNU
+124B9 ; [.4D88.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUG TIMES KASKAL
+124BA ; [.4D89.0020.0002] # CUNEIFORM SIGN GA2 TIMES EREN
+124BB ; [.4D8A.0020.0002] # CUNEIFORM SIGN GA2 TIMES GA
+124BC ; [.4D8B.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR PLUS DI
+124BD ; [.4D8C.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR PLUS NE
+124BE ; [.4D8D.0020.0002] # CUNEIFORM SIGN GA2 TIMES HA PLUS A
+124BF ; [.4D8E.0020.0002] # CUNEIFORM SIGN GA2 TIMES KUSHU2 PLUS KASKAL
+124C0 ; [.4D8F.0020.0002] # CUNEIFORM SIGN GA2 TIMES LAM
+124C1 ; [.4D90.0020.0002] # CUNEIFORM SIGN GA2 TIMES LAM TIMES KUR
+124C2 ; [.4D91.0020.0002] # CUNEIFORM SIGN GA2 TIMES LUH
+124C3 ; [.4D92.0020.0002] # CUNEIFORM SIGN GA2 TIMES MUSH
+124C4 ; [.4D93.0020.0002] # CUNEIFORM SIGN GA2 TIMES NE
+124C5 ; [.4D94.0020.0002] # CUNEIFORM SIGN GA2 TIMES NE PLUS E2
+124C6 ; [.4D95.0020.0002] # CUNEIFORM SIGN GA2 TIMES NE PLUS GI
+124C7 ; [.4D96.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHIM
+124C8 ; [.4D97.0020.0002] # CUNEIFORM SIGN GA2 TIMES ZIZ2
+124C9 ; [.4D98.0020.0002] # CUNEIFORM SIGN GABA ROTATED NINETY DEGREES
+124CA ; [.4D99.0020.0002] # CUNEIFORM SIGN GESHTIN TIMES U
+124CB ; [.4D9A.0020.0002] # CUNEIFORM SIGN GISH TIMES GISH CROSSING GISH
+124CC ; [.4D9B.0020.0002] # CUNEIFORM SIGN GU2 TIMES IGI GUNU
+124CD ; [.4D9C.0020.0002] # CUNEIFORM SIGN GUD PLUS GISH TIMES TAK4
+124CE ; [.4D9D.0020.0002] # CUNEIFORM SIGN HA TENU GUNU
+124CF ; [.4D9E.0020.0002] # CUNEIFORM SIGN HI TIMES ASH OVER HI TIMES ASH
+124D0 ; [.4D9F.0020.0002] # CUNEIFORM SIGN KA TIMES BU
+124D1 ; [.4DA0.0020.0002] # CUNEIFORM SIGN KA TIMES KA
+124D2 ; [.4DA1.0020.0002] # CUNEIFORM SIGN KA TIMES U U U
+124D3 ; [.4DA2.0020.0002] # CUNEIFORM SIGN KA TIMES UR
+124D4 ; [.4DA3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ZU OVER ZU
+124D5 ; [.4DA4.0020.0002] # CUNEIFORM SIGN LAK-003
+124D6 ; [.4DA5.0020.0002] # CUNEIFORM SIGN LAK-021
+124D7 ; [.4DA6.0020.0002] # CUNEIFORM SIGN LAK-025
+124D8 ; [.4DA7.0020.0002] # CUNEIFORM SIGN LAK-030
+124D9 ; [.4DA8.0020.0002] # CUNEIFORM SIGN LAK-050
+124DA ; [.4DA9.0020.0002] # CUNEIFORM SIGN LAK-051
+124DB ; [.4DAA.0020.0002] # CUNEIFORM SIGN LAK-062
+124DC ; [.4DAB.0020.0002] # CUNEIFORM SIGN LAK-079 OVER LAK-079 GUNU
+124DD ; [.4DAC.0020.0002] # CUNEIFORM SIGN LAK-080
+124DE ; [.4DAD.0020.0002] # CUNEIFORM SIGN LAK-081 OVER LAK-081
+124DF ; [.4DAE.0020.0002] # CUNEIFORM SIGN LAK-092
+124E0 ; [.4DAF.0020.0002] # CUNEIFORM SIGN LAK-130
+124E1 ; [.4DB0.0020.0002] # CUNEIFORM SIGN LAK-142
+124E2 ; [.4DB1.0020.0002] # CUNEIFORM SIGN LAK-210
+124E3 ; [.4DB2.0020.0002] # CUNEIFORM SIGN LAK-219
+124E4 ; [.4DB3.0020.0002] # CUNEIFORM SIGN LAK-220
+124E5 ; [.4DB4.0020.0002] # CUNEIFORM SIGN LAK-225
+124E6 ; [.4DB5.0020.0002] # CUNEIFORM SIGN LAK-228
+124E7 ; [.4DB6.0020.0002] # CUNEIFORM SIGN LAK-238
+124E8 ; [.4DB7.0020.0002] # CUNEIFORM SIGN LAK-265
+124E9 ; [.4DB8.0020.0002] # CUNEIFORM SIGN LAK-266
+124EA ; [.4DB9.0020.0002] # CUNEIFORM SIGN LAK-343
+124EB ; [.4DBA.0020.0002] # CUNEIFORM SIGN LAK-347
+124EC ; [.4DBB.0020.0002] # CUNEIFORM SIGN LAK-348
+124ED ; [.4DBC.0020.0002] # CUNEIFORM SIGN LAK-383
+124EE ; [.4DBD.0020.0002] # CUNEIFORM SIGN LAK-384
+124EF ; [.4DBE.0020.0002] # CUNEIFORM SIGN LAK-390
+124F0 ; [.4DBF.0020.0002] # CUNEIFORM SIGN LAK-441
+124F1 ; [.4DC0.0020.0002] # CUNEIFORM SIGN LAK-449
+124F2 ; [.4DC1.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES GU
+124F3 ; [.4DC2.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES IGI
+124F4 ; [.4DC3.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES PAP PLUS LU3
+124F5 ; [.4DC4.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES PAP PLUS PAP PLUS LU3
+124F6 ; [.4DC5.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES U2 PLUS BA
+124F7 ; [.4DC6.0020.0002] # CUNEIFORM SIGN LAK-450
+124F8 ; [.4DC7.0020.0002] # CUNEIFORM SIGN LAK-457
+124F9 ; [.4DC8.0020.0002] # CUNEIFORM SIGN LAK-470
+124FA ; [.4DC9.0020.0002] # CUNEIFORM SIGN LAK-483
+124FB ; [.4DCA.0020.0002] # CUNEIFORM SIGN LAK-490
+124FC ; [.4DCB.0020.0002] # CUNEIFORM SIGN LAK-492
+124FD ; [.4DCC.0020.0002] # CUNEIFORM SIGN LAK-493
+124FE ; [.4DCD.0020.0002] # CUNEIFORM SIGN LAK-495
+124FF ; [.4DCE.0020.0002] # CUNEIFORM SIGN LAK-550
+12500 ; [.4DCF.0020.0002] # CUNEIFORM SIGN LAK-608
+12501 ; [.4DD0.0020.0002] # CUNEIFORM SIGN LAK-617
+12502 ; [.4DD1.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES ASH
+12503 ; [.4DD2.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES BAD
+12504 ; [.4DD3.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES DUN3 GUNU GUNU
+12505 ; [.4DD4.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES KU3
+12506 ; [.4DD5.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES LA
+12507 ; [.4DD6.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES TAR
+12508 ; [.4DD7.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES TE
+12509 ; [.4DD8.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES U2
+1250A ; [.4DD9.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES UD
+1250B ; [.4DDA.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES URUDA
+1250C ; [.4DDB.0020.0002] # CUNEIFORM SIGN LAK-636
+1250D ; [.4DDC.0020.0002] # CUNEIFORM SIGN LAK-648
+1250E ; [.4DDD.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES DUB
+1250F ; [.4DDE.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES GA
+12510 ; [.4DDF.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES IGI
+12511 ; [.4DE0.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES IGI GUNU
+12512 ; [.4DE1.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES NI
+12513 ; [.4DE2.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES PAP PLUS PAP PLUS LU3
+12514 ; [.4DE3.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES SHESH PLUS KI
+12515 ; [.4DE4.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES UD
+12516 ; [.4DE5.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES URUDA
+12517 ; [.4DE6.0020.0002] # CUNEIFORM SIGN LAK-724
+12518 ; [.4DE7.0020.0002] # CUNEIFORM SIGN LAK-749
+12519 ; [.4DE8.0020.0002] # CUNEIFORM SIGN LU2 GUNU TIMES ASH
+1251A ; [.4DE9.0020.0002] # CUNEIFORM SIGN LU2 TIMES DISH
+1251B ; [.4DEA.0020.0002] # CUNEIFORM SIGN LU2 TIMES HAL
+1251C ; [.4DEB.0020.0002] # CUNEIFORM SIGN LU2 TIMES PAP
+1251D ; [.4DEC.0020.0002] # CUNEIFORM SIGN LU2 TIMES PAP PLUS PAP PLUS LU3
+1251E ; [.4DED.0020.0002] # CUNEIFORM SIGN LU2 TIMES TAK4
+1251F ; [.4DEE.0020.0002] # CUNEIFORM SIGN MI PLUS ZA7
+12520 ; [.4DEF.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES GA
+12521 ; [.4DF0.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES KAK
+12522 ; [.4DF1.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES DIM GUNU
+12523 ; [.4DF2.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GISH
+12524 ; [.4DF3.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GUL
+12525 ; [.4DF4.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES HI
+12526 ; [.4DF5.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES KESH2
+12527 ; [.4DF6.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES LAK-050
+12528 ; [.4DF7.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES MASH
+12529 ; [.4DF8.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES PAP PLUS PAP
+1252A ; [.4DF9.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U
+1252B ; [.4DFA.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U PLUS U
+1252C ; [.4DFB.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES URUDA
+1252D ; [.4DFC.0020.0002] # CUNEIFORM SIGN SAG GUNU TIMES HA
+1252E ; [.4DFD.0020.0002] # CUNEIFORM SIGN SAG TIMES EN
+1252F ; [.4DFE.0020.0002] # CUNEIFORM SIGN SAG TIMES SHE AT LEFT
+12530 ; [.4DFF.0020.0002] # CUNEIFORM SIGN SAG TIMES TAK4
+12531 ; [.4E00.0020.0002] # CUNEIFORM SIGN SHA6 TENU
+12532 ; [.4E01.0020.0002] # CUNEIFORM SIGN SHE OVER SHE
+12533 ; [.4E02.0020.0002] # CUNEIFORM SIGN SHE PLUS HUB2
+12534 ; [.4E03.0020.0002] # CUNEIFORM SIGN SHE PLUS NAM2
+12535 ; [.4E04.0020.0002] # CUNEIFORM SIGN SHE PLUS SAR
+12536 ; [.4E05.0020.0002] # CUNEIFORM SIGN SHU2 PLUS DUG TIMES NI
+12537 ; [.4E06.0020.0002] # CUNEIFORM SIGN SHU2 PLUS E2 TIMES AN
+12538 ; [.4E07.0020.0002] # CUNEIFORM SIGN SI TIMES TAK4
+12539 ; [.4E08.0020.0002] # CUNEIFORM SIGN TAK4 PLUS SAG
+1253A ; [.4E09.0020.0002] # CUNEIFORM SIGN TUM TIMES GAN2 TENU
+1253B ; [.4E0A.0020.0002] # CUNEIFORM SIGN TUM TIMES THREE DISH
+1253C ; [.4E0B.0020.0002] # CUNEIFORM SIGN UR2 INVERTED
+1253D ; [.4E0C.0020.0002] # CUNEIFORM SIGN UR2 TIMES UD
+1253E ; [.4E0D.0020.0002] # CUNEIFORM SIGN URU TIMES DARA3
+1253F ; [.4E0E.0020.0002] # CUNEIFORM SIGN URU TIMES LAK-668
+12540 ; [.4E0F.0020.0002] # CUNEIFORM SIGN URU TIMES LU3
+12541 ; [.4E10.0020.0002] # CUNEIFORM SIGN ZA7
+12542 ; [.4E11.0020.0002] # CUNEIFORM SIGN ZU OVER ZU PLUS SAR
+12543 ; [.4E12.0020.0002] # CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+13000 ; [.4E13.0020.0002] # EGYPTIAN HIEROGLYPH A001
+13001 ; [.4E14.0020.0002] # EGYPTIAN HIEROGLYPH A002
+13002 ; [.4E15.0020.0002] # EGYPTIAN HIEROGLYPH A003
+13003 ; [.4E16.0020.0002] # EGYPTIAN HIEROGLYPH A004
+13004 ; [.4E17.0020.0002] # EGYPTIAN HIEROGLYPH A005
+13005 ; [.4E18.0020.0002] # EGYPTIAN HIEROGLYPH A005A
+13006 ; [.4E19.0020.0002] # EGYPTIAN HIEROGLYPH A006
+13007 ; [.4E1A.0020.0002] # EGYPTIAN HIEROGLYPH A006A
+13008 ; [.4E1B.0020.0002] # EGYPTIAN HIEROGLYPH A006B
+13009 ; [.4E1C.0020.0002] # EGYPTIAN HIEROGLYPH A007
+1300A ; [.4E1D.0020.0002] # EGYPTIAN HIEROGLYPH A008
+1300B ; [.4E1E.0020.0002] # EGYPTIAN HIEROGLYPH A009
+1300C ; [.4E1F.0020.0002] # EGYPTIAN HIEROGLYPH A010
+1300D ; [.4E20.0020.0002] # EGYPTIAN HIEROGLYPH A011
+1300E ; [.4E21.0020.0002] # EGYPTIAN HIEROGLYPH A012
+1300F ; [.4E22.0020.0002] # EGYPTIAN HIEROGLYPH A013
+13010 ; [.4E23.0020.0002] # EGYPTIAN HIEROGLYPH A014
+13011 ; [.4E24.0020.0002] # EGYPTIAN HIEROGLYPH A014A
+13012 ; [.4E25.0020.0002] # EGYPTIAN HIEROGLYPH A015
+13013 ; [.4E26.0020.0002] # EGYPTIAN HIEROGLYPH A016
+13014 ; [.4E27.0020.0002] # EGYPTIAN HIEROGLYPH A017
+13015 ; [.4E28.0020.0002] # EGYPTIAN HIEROGLYPH A017A
+13016 ; [.4E29.0020.0002] # EGYPTIAN HIEROGLYPH A018
+13017 ; [.4E2A.0020.0002] # EGYPTIAN HIEROGLYPH A019
+13018 ; [.4E2B.0020.0002] # EGYPTIAN HIEROGLYPH A020
+13019 ; [.4E2C.0020.0002] # EGYPTIAN HIEROGLYPH A021
+1301A ; [.4E2D.0020.0002] # EGYPTIAN HIEROGLYPH A022
+1301B ; [.4E2E.0020.0002] # EGYPTIAN HIEROGLYPH A023
+1301C ; [.4E2F.0020.0002] # EGYPTIAN HIEROGLYPH A024
+1301D ; [.4E30.0020.0002] # EGYPTIAN HIEROGLYPH A025
+1301E ; [.4E31.0020.0002] # EGYPTIAN HIEROGLYPH A026
+1301F ; [.4E32.0020.0002] # EGYPTIAN HIEROGLYPH A027
+13020 ; [.4E33.0020.0002] # EGYPTIAN HIEROGLYPH A028
+13021 ; [.4E34.0020.0002] # EGYPTIAN HIEROGLYPH A029
+13022 ; [.4E35.0020.0002] # EGYPTIAN HIEROGLYPH A030
+13023 ; [.4E36.0020.0002] # EGYPTIAN HIEROGLYPH A031
+13024 ; [.4E37.0020.0002] # EGYPTIAN HIEROGLYPH A032
+13025 ; [.4E38.0020.0002] # EGYPTIAN HIEROGLYPH A032A
+13026 ; [.4E39.0020.0002] # EGYPTIAN HIEROGLYPH A033
+13027 ; [.4E3A.0020.0002] # EGYPTIAN HIEROGLYPH A034
+13028 ; [.4E3B.0020.0002] # EGYPTIAN HIEROGLYPH A035
+13029 ; [.4E3C.0020.0002] # EGYPTIAN HIEROGLYPH A036
+1302A ; [.4E3D.0020.0002] # EGYPTIAN HIEROGLYPH A037
+1302B ; [.4E3E.0020.0002] # EGYPTIAN HIEROGLYPH A038
+1302C ; [.4E3F.0020.0002] # EGYPTIAN HIEROGLYPH A039
+1302D ; [.4E40.0020.0002] # EGYPTIAN HIEROGLYPH A040
+1302E ; [.4E41.0020.0002] # EGYPTIAN HIEROGLYPH A040A
+1302F ; [.4E42.0020.0002] # EGYPTIAN HIEROGLYPH A041
+13030 ; [.4E43.0020.0002] # EGYPTIAN HIEROGLYPH A042
+13031 ; [.4E44.0020.0002] # EGYPTIAN HIEROGLYPH A042A
+13032 ; [.4E45.0020.0002] # EGYPTIAN HIEROGLYPH A043
+13033 ; [.4E46.0020.0002] # EGYPTIAN HIEROGLYPH A043A
+13034 ; [.4E47.0020.0002] # EGYPTIAN HIEROGLYPH A044
+13035 ; [.4E48.0020.0002] # EGYPTIAN HIEROGLYPH A045
+13036 ; [.4E49.0020.0002] # EGYPTIAN HIEROGLYPH A045A
+13037 ; [.4E4A.0020.0002] # EGYPTIAN HIEROGLYPH A046
+13038 ; [.4E4B.0020.0002] # EGYPTIAN HIEROGLYPH A047
+13039 ; [.4E4C.0020.0002] # EGYPTIAN HIEROGLYPH A048
+1303A ; [.4E4D.0020.0002] # EGYPTIAN HIEROGLYPH A049
+1303B ; [.4E4E.0020.0002] # EGYPTIAN HIEROGLYPH A050
+1303C ; [.4E4F.0020.0002] # EGYPTIAN HIEROGLYPH A051
+1303D ; [.4E50.0020.0002] # EGYPTIAN HIEROGLYPH A052
+1303E ; [.4E51.0020.0002] # EGYPTIAN HIEROGLYPH A053
+1303F ; [.4E52.0020.0002] # EGYPTIAN HIEROGLYPH A054
+13040 ; [.4E53.0020.0002] # EGYPTIAN HIEROGLYPH A055
+13041 ; [.4E54.0020.0002] # EGYPTIAN HIEROGLYPH A056
+13042 ; [.4E55.0020.0002] # EGYPTIAN HIEROGLYPH A057
+13043 ; [.4E56.0020.0002] # EGYPTIAN HIEROGLYPH A058
+13044 ; [.4E57.0020.0002] # EGYPTIAN HIEROGLYPH A059
+13045 ; [.4E58.0020.0002] # EGYPTIAN HIEROGLYPH A060
+13046 ; [.4E59.0020.0002] # EGYPTIAN HIEROGLYPH A061
+13047 ; [.4E5A.0020.0002] # EGYPTIAN HIEROGLYPH A062
+13048 ; [.4E5B.0020.0002] # EGYPTIAN HIEROGLYPH A063
+13049 ; [.4E5C.0020.0002] # EGYPTIAN HIEROGLYPH A064
+1304A ; [.4E5D.0020.0002] # EGYPTIAN HIEROGLYPH A065
+1304B ; [.4E5E.0020.0002] # EGYPTIAN HIEROGLYPH A066
+1304C ; [.4E5F.0020.0002] # EGYPTIAN HIEROGLYPH A067
+1304D ; [.4E60.0020.0002] # EGYPTIAN HIEROGLYPH A068
+1304E ; [.4E61.0020.0002] # EGYPTIAN HIEROGLYPH A069
+1304F ; [.4E62.0020.0002] # EGYPTIAN HIEROGLYPH A070
+13050 ; [.4E63.0020.0002] # EGYPTIAN HIEROGLYPH B001
+13051 ; [.4E64.0020.0002] # EGYPTIAN HIEROGLYPH B002
+13052 ; [.4E65.0020.0002] # EGYPTIAN HIEROGLYPH B003
+13053 ; [.4E66.0020.0002] # EGYPTIAN HIEROGLYPH B004
+13054 ; [.4E67.0020.0002] # EGYPTIAN HIEROGLYPH B005
+13055 ; [.4E68.0020.0002] # EGYPTIAN HIEROGLYPH B005A
+13056 ; [.4E69.0020.0002] # EGYPTIAN HIEROGLYPH B006
+13057 ; [.4E6A.0020.0002] # EGYPTIAN HIEROGLYPH B007
+13058 ; [.4E6B.0020.0002] # EGYPTIAN HIEROGLYPH B008
+13059 ; [.4E6C.0020.0002] # EGYPTIAN HIEROGLYPH B009
+1305A ; [.4E6D.0020.0002] # EGYPTIAN HIEROGLYPH C001
+1305B ; [.4E6E.0020.0002] # EGYPTIAN HIEROGLYPH C002
+1305C ; [.4E6F.0020.0002] # EGYPTIAN HIEROGLYPH C002A
+1305D ; [.4E70.0020.0002] # EGYPTIAN HIEROGLYPH C002B
+1305E ; [.4E71.0020.0002] # EGYPTIAN HIEROGLYPH C002C
+1305F ; [.4E72.0020.0002] # EGYPTIAN HIEROGLYPH C003
+13060 ; [.4E73.0020.0002] # EGYPTIAN HIEROGLYPH C004
+13061 ; [.4E74.0020.0002] # EGYPTIAN HIEROGLYPH C005
+13062 ; [.4E75.0020.0002] # EGYPTIAN HIEROGLYPH C006
+13063 ; [.4E76.0020.0002] # EGYPTIAN HIEROGLYPH C007
+13064 ; [.4E77.0020.0002] # EGYPTIAN HIEROGLYPH C008
+13065 ; [.4E78.0020.0002] # EGYPTIAN HIEROGLYPH C009
+13066 ; [.4E79.0020.0002] # EGYPTIAN HIEROGLYPH C010
+13067 ; [.4E7A.0020.0002] # EGYPTIAN HIEROGLYPH C010A
+13068 ; [.4E7B.0020.0002] # EGYPTIAN HIEROGLYPH C011
+13069 ; [.4E7C.0020.0002] # EGYPTIAN HIEROGLYPH C012
+1306A ; [.4E7D.0020.0002] # EGYPTIAN HIEROGLYPH C013
+1306B ; [.4E7E.0020.0002] # EGYPTIAN HIEROGLYPH C014
+1306C ; [.4E7F.0020.0002] # EGYPTIAN HIEROGLYPH C015
+1306D ; [.4E80.0020.0002] # EGYPTIAN HIEROGLYPH C016
+1306E ; [.4E81.0020.0002] # EGYPTIAN HIEROGLYPH C017
+1306F ; [.4E82.0020.0002] # EGYPTIAN HIEROGLYPH C018
+13070 ; [.4E83.0020.0002] # EGYPTIAN HIEROGLYPH C019
+13071 ; [.4E84.0020.0002] # EGYPTIAN HIEROGLYPH C020
+13072 ; [.4E85.0020.0002] # EGYPTIAN HIEROGLYPH C021
+13073 ; [.4E86.0020.0002] # EGYPTIAN HIEROGLYPH C022
+13074 ; [.4E87.0020.0002] # EGYPTIAN HIEROGLYPH C023
+13075 ; [.4E88.0020.0002] # EGYPTIAN HIEROGLYPH C024
+13076 ; [.4E89.0020.0002] # EGYPTIAN HIEROGLYPH D001
+13077 ; [.4E8A.0020.0002] # EGYPTIAN HIEROGLYPH D002
+13078 ; [.4E8B.0020.0002] # EGYPTIAN HIEROGLYPH D003
+13079 ; [.4E8C.0020.0002] # EGYPTIAN HIEROGLYPH D004
+1307A ; [.4E8D.0020.0002] # EGYPTIAN HIEROGLYPH D005
+1307B ; [.4E8E.0020.0002] # EGYPTIAN HIEROGLYPH D006
+1307C ; [.4E8F.0020.0002] # EGYPTIAN HIEROGLYPH D007
+1307D ; [.4E90.0020.0002] # EGYPTIAN HIEROGLYPH D008
+1307E ; [.4E91.0020.0002] # EGYPTIAN HIEROGLYPH D008A
+1307F ; [.4E92.0020.0002] # EGYPTIAN HIEROGLYPH D009
+13080 ; [.4E93.0020.0002] # EGYPTIAN HIEROGLYPH D010
+13081 ; [.4E94.0020.0002] # EGYPTIAN HIEROGLYPH D011
+13082 ; [.4E95.0020.0002] # EGYPTIAN HIEROGLYPH D012
+13083 ; [.4E96.0020.0002] # EGYPTIAN HIEROGLYPH D013
+13084 ; [.4E97.0020.0002] # EGYPTIAN HIEROGLYPH D014
+13085 ; [.4E98.0020.0002] # EGYPTIAN HIEROGLYPH D015
+13086 ; [.4E99.0020.0002] # EGYPTIAN HIEROGLYPH D016
+13087 ; [.4E9A.0020.0002] # EGYPTIAN HIEROGLYPH D017
+13088 ; [.4E9B.0020.0002] # EGYPTIAN HIEROGLYPH D018
+13089 ; [.4E9C.0020.0002] # EGYPTIAN HIEROGLYPH D019
+1308A ; [.4E9D.0020.0002] # EGYPTIAN HIEROGLYPH D020
+1308B ; [.4E9E.0020.0002] # EGYPTIAN HIEROGLYPH D021
+1308C ; [.4E9F.0020.0002] # EGYPTIAN HIEROGLYPH D022
+1308D ; [.4EA0.0020.0002] # EGYPTIAN HIEROGLYPH D023
+1308E ; [.4EA1.0020.0002] # EGYPTIAN HIEROGLYPH D024
+1308F ; [.4EA2.0020.0002] # EGYPTIAN HIEROGLYPH D025
+13090 ; [.4EA3.0020.0002] # EGYPTIAN HIEROGLYPH D026
+13091 ; [.4EA4.0020.0002] # EGYPTIAN HIEROGLYPH D027
+13092 ; [.4EA5.0020.0002] # EGYPTIAN HIEROGLYPH D027A
+13093 ; [.4EA6.0020.0002] # EGYPTIAN HIEROGLYPH D028
+13094 ; [.4EA7.0020.0002] # EGYPTIAN HIEROGLYPH D029
+13095 ; [.4EA8.0020.0002] # EGYPTIAN HIEROGLYPH D030
+13096 ; [.4EA9.0020.0002] # EGYPTIAN HIEROGLYPH D031
+13097 ; [.4EAA.0020.0002] # EGYPTIAN HIEROGLYPH D031A
+13098 ; [.4EAB.0020.0002] # EGYPTIAN HIEROGLYPH D032
+13099 ; [.4EAC.0020.0002] # EGYPTIAN HIEROGLYPH D033
+1309A ; [.4EAD.0020.0002] # EGYPTIAN HIEROGLYPH D034
+1309B ; [.4EAE.0020.0002] # EGYPTIAN HIEROGLYPH D034A
+1309C ; [.4EAF.0020.0002] # EGYPTIAN HIEROGLYPH D035
+1309D ; [.4EB0.0020.0002] # EGYPTIAN HIEROGLYPH D036
+1309E ; [.4EB1.0020.0002] # EGYPTIAN HIEROGLYPH D037
+1309F ; [.4EB2.0020.0002] # EGYPTIAN HIEROGLYPH D038
+130A0 ; [.4EB3.0020.0002] # EGYPTIAN HIEROGLYPH D039
+130A1 ; [.4EB4.0020.0002] # EGYPTIAN HIEROGLYPH D040
+130A2 ; [.4EB5.0020.0002] # EGYPTIAN HIEROGLYPH D041
+130A3 ; [.4EB6.0020.0002] # EGYPTIAN HIEROGLYPH D042
+130A4 ; [.4EB7.0020.0002] # EGYPTIAN HIEROGLYPH D043
+130A5 ; [.4EB8.0020.0002] # EGYPTIAN HIEROGLYPH D044
+130A6 ; [.4EB9.0020.0002] # EGYPTIAN HIEROGLYPH D045
+130A7 ; [.4EBA.0020.0002] # EGYPTIAN HIEROGLYPH D046
+130A8 ; [.4EBB.0020.0002] # EGYPTIAN HIEROGLYPH D046A
+130A9 ; [.4EBC.0020.0002] # EGYPTIAN HIEROGLYPH D047
+130AA ; [.4EBD.0020.0002] # EGYPTIAN HIEROGLYPH D048
+130AB ; [.4EBE.0020.0002] # EGYPTIAN HIEROGLYPH D048A
+130AC ; [.4EBF.0020.0002] # EGYPTIAN HIEROGLYPH D049
+130AD ; [.4EC0.0020.0002] # EGYPTIAN HIEROGLYPH D050
+130AE ; [.4EC1.0020.0002] # EGYPTIAN HIEROGLYPH D050A
+130AF ; [.4EC2.0020.0002] # EGYPTIAN HIEROGLYPH D050B
+130B0 ; [.4EC3.0020.0002] # EGYPTIAN HIEROGLYPH D050C
+130B1 ; [.4EC4.0020.0002] # EGYPTIAN HIEROGLYPH D050D
+130B2 ; [.4EC5.0020.0002] # EGYPTIAN HIEROGLYPH D050E
+130B3 ; [.4EC6.0020.0002] # EGYPTIAN HIEROGLYPH D050F
+130B4 ; [.4EC7.0020.0002] # EGYPTIAN HIEROGLYPH D050G
+130B5 ; [.4EC8.0020.0002] # EGYPTIAN HIEROGLYPH D050H
+130B6 ; [.4EC9.0020.0002] # EGYPTIAN HIEROGLYPH D050I
+130B7 ; [.4ECA.0020.0002] # EGYPTIAN HIEROGLYPH D051
+130B8 ; [.4ECB.0020.0002] # EGYPTIAN HIEROGLYPH D052
+130B9 ; [.4ECC.0020.0002] # EGYPTIAN HIEROGLYPH D052A
+130BA ; [.4ECD.0020.0002] # EGYPTIAN HIEROGLYPH D053
+130BB ; [.4ECE.0020.0002] # EGYPTIAN HIEROGLYPH D054
+130BC ; [.4ECF.0020.0002] # EGYPTIAN HIEROGLYPH D054A
+130BD ; [.4ED0.0020.0002] # EGYPTIAN HIEROGLYPH D055
+130BE ; [.4ED1.0020.0002] # EGYPTIAN HIEROGLYPH D056
+130BF ; [.4ED2.0020.0002] # EGYPTIAN HIEROGLYPH D057
+130C0 ; [.4ED3.0020.0002] # EGYPTIAN HIEROGLYPH D058
+130C1 ; [.4ED4.0020.0002] # EGYPTIAN HIEROGLYPH D059
+130C2 ; [.4ED5.0020.0002] # EGYPTIAN HIEROGLYPH D060
+130C3 ; [.4ED6.0020.0002] # EGYPTIAN HIEROGLYPH D061
+130C4 ; [.4ED7.0020.0002] # EGYPTIAN HIEROGLYPH D062
+130C5 ; [.4ED8.0020.0002] # EGYPTIAN HIEROGLYPH D063
+130C6 ; [.4ED9.0020.0002] # EGYPTIAN HIEROGLYPH D064
+130C7 ; [.4EDA.0020.0002] # EGYPTIAN HIEROGLYPH D065
+130C8 ; [.4EDB.0020.0002] # EGYPTIAN HIEROGLYPH D066
+130C9 ; [.4EDC.0020.0002] # EGYPTIAN HIEROGLYPH D067
+130CA ; [.4EDD.0020.0002] # EGYPTIAN HIEROGLYPH D067A
+130CB ; [.4EDE.0020.0002] # EGYPTIAN HIEROGLYPH D067B
+130CC ; [.4EDF.0020.0002] # EGYPTIAN HIEROGLYPH D067C
+130CD ; [.4EE0.0020.0002] # EGYPTIAN HIEROGLYPH D067D
+130CE ; [.4EE1.0020.0002] # EGYPTIAN HIEROGLYPH D067E
+130CF ; [.4EE2.0020.0002] # EGYPTIAN HIEROGLYPH D067F
+130D0 ; [.4EE3.0020.0002] # EGYPTIAN HIEROGLYPH D067G
+130D1 ; [.4EE4.0020.0002] # EGYPTIAN HIEROGLYPH D067H
+130D2 ; [.4EE5.0020.0002] # EGYPTIAN HIEROGLYPH E001
+130D3 ; [.4EE6.0020.0002] # EGYPTIAN HIEROGLYPH E002
+130D4 ; [.4EE7.0020.0002] # EGYPTIAN HIEROGLYPH E003
+130D5 ; [.4EE8.0020.0002] # EGYPTIAN HIEROGLYPH E004
+130D6 ; [.4EE9.0020.0002] # EGYPTIAN HIEROGLYPH E005
+130D7 ; [.4EEA.0020.0002] # EGYPTIAN HIEROGLYPH E006
+130D8 ; [.4EEB.0020.0002] # EGYPTIAN HIEROGLYPH E007
+130D9 ; [.4EEC.0020.0002] # EGYPTIAN HIEROGLYPH E008
+130DA ; [.4EED.0020.0002] # EGYPTIAN HIEROGLYPH E008A
+130DB ; [.4EEE.0020.0002] # EGYPTIAN HIEROGLYPH E009
+130DC ; [.4EEF.0020.0002] # EGYPTIAN HIEROGLYPH E009A
+130DD ; [.4EF0.0020.0002] # EGYPTIAN HIEROGLYPH E010
+130DE ; [.4EF1.0020.0002] # EGYPTIAN HIEROGLYPH E011
+130DF ; [.4EF2.0020.0002] # EGYPTIAN HIEROGLYPH E012
+130E0 ; [.4EF3.0020.0002] # EGYPTIAN HIEROGLYPH E013
+130E1 ; [.4EF4.0020.0002] # EGYPTIAN HIEROGLYPH E014
+130E2 ; [.4EF5.0020.0002] # EGYPTIAN HIEROGLYPH E015
+130E3 ; [.4EF6.0020.0002] # EGYPTIAN HIEROGLYPH E016
+130E4 ; [.4EF7.0020.0002] # EGYPTIAN HIEROGLYPH E016A
+130E5 ; [.4EF8.0020.0002] # EGYPTIAN HIEROGLYPH E017
+130E6 ; [.4EF9.0020.0002] # EGYPTIAN HIEROGLYPH E017A
+130E7 ; [.4EFA.0020.0002] # EGYPTIAN HIEROGLYPH E018
+130E8 ; [.4EFB.0020.0002] # EGYPTIAN HIEROGLYPH E019
+130E9 ; [.4EFC.0020.0002] # EGYPTIAN HIEROGLYPH E020
+130EA ; [.4EFD.0020.0002] # EGYPTIAN HIEROGLYPH E020A
+130EB ; [.4EFE.0020.0002] # EGYPTIAN HIEROGLYPH E021
+130EC ; [.4EFF.0020.0002] # EGYPTIAN HIEROGLYPH E022
+130ED ; [.4F00.0020.0002] # EGYPTIAN HIEROGLYPH E023
+130EE ; [.4F01.0020.0002] # EGYPTIAN HIEROGLYPH E024
+130EF ; [.4F02.0020.0002] # EGYPTIAN HIEROGLYPH E025
+130F0 ; [.4F03.0020.0002] # EGYPTIAN HIEROGLYPH E026
+130F1 ; [.4F04.0020.0002] # EGYPTIAN HIEROGLYPH E027
+130F2 ; [.4F05.0020.0002] # EGYPTIAN HIEROGLYPH E028
+130F3 ; [.4F06.0020.0002] # EGYPTIAN HIEROGLYPH E028A
+130F4 ; [.4F07.0020.0002] # EGYPTIAN HIEROGLYPH E029
+130F5 ; [.4F08.0020.0002] # EGYPTIAN HIEROGLYPH E030
+130F6 ; [.4F09.0020.0002] # EGYPTIAN HIEROGLYPH E031
+130F7 ; [.4F0A.0020.0002] # EGYPTIAN HIEROGLYPH E032
+130F8 ; [.4F0B.0020.0002] # EGYPTIAN HIEROGLYPH E033
+130F9 ; [.4F0C.0020.0002] # EGYPTIAN HIEROGLYPH E034
+130FA ; [.4F0D.0020.0002] # EGYPTIAN HIEROGLYPH E034A
+130FB ; [.4F0E.0020.0002] # EGYPTIAN HIEROGLYPH E036
+130FC ; [.4F0F.0020.0002] # EGYPTIAN HIEROGLYPH E037
+130FD ; [.4F10.0020.0002] # EGYPTIAN HIEROGLYPH E038
+130FE ; [.4F11.0020.0002] # EGYPTIAN HIEROGLYPH F001
+130FF ; [.4F12.0020.0002] # EGYPTIAN HIEROGLYPH F001A
+13100 ; [.4F13.0020.0002] # EGYPTIAN HIEROGLYPH F002
+13101 ; [.4F14.0020.0002] # EGYPTIAN HIEROGLYPH F003
+13102 ; [.4F15.0020.0002] # EGYPTIAN HIEROGLYPH F004
+13103 ; [.4F16.0020.0002] # EGYPTIAN HIEROGLYPH F005
+13104 ; [.4F17.0020.0002] # EGYPTIAN HIEROGLYPH F006
+13105 ; [.4F18.0020.0002] # EGYPTIAN HIEROGLYPH F007
+13106 ; [.4F19.0020.0002] # EGYPTIAN HIEROGLYPH F008
+13107 ; [.4F1A.0020.0002] # EGYPTIAN HIEROGLYPH F009
+13108 ; [.4F1B.0020.0002] # EGYPTIAN HIEROGLYPH F010
+13109 ; [.4F1C.0020.0002] # EGYPTIAN HIEROGLYPH F011
+1310A ; [.4F1D.0020.0002] # EGYPTIAN HIEROGLYPH F012
+1310B ; [.4F1E.0020.0002] # EGYPTIAN HIEROGLYPH F013
+1310C ; [.4F1F.0020.0002] # EGYPTIAN HIEROGLYPH F013A
+1310D ; [.4F20.0020.0002] # EGYPTIAN HIEROGLYPH F014
+1310E ; [.4F21.0020.0002] # EGYPTIAN HIEROGLYPH F015
+1310F ; [.4F22.0020.0002] # EGYPTIAN HIEROGLYPH F016
+13110 ; [.4F23.0020.0002] # EGYPTIAN HIEROGLYPH F017
+13111 ; [.4F24.0020.0002] # EGYPTIAN HIEROGLYPH F018
+13112 ; [.4F25.0020.0002] # EGYPTIAN HIEROGLYPH F019
+13113 ; [.4F26.0020.0002] # EGYPTIAN HIEROGLYPH F020
+13114 ; [.4F27.0020.0002] # EGYPTIAN HIEROGLYPH F021
+13115 ; [.4F28.0020.0002] # EGYPTIAN HIEROGLYPH F021A
+13116 ; [.4F29.0020.0002] # EGYPTIAN HIEROGLYPH F022
+13117 ; [.4F2A.0020.0002] # EGYPTIAN HIEROGLYPH F023
+13118 ; [.4F2B.0020.0002] # EGYPTIAN HIEROGLYPH F024
+13119 ; [.4F2C.0020.0002] # EGYPTIAN HIEROGLYPH F025
+1311A ; [.4F2D.0020.0002] # EGYPTIAN HIEROGLYPH F026
+1311B ; [.4F2E.0020.0002] # EGYPTIAN HIEROGLYPH F027
+1311C ; [.4F2F.0020.0002] # EGYPTIAN HIEROGLYPH F028
+1311D ; [.4F30.0020.0002] # EGYPTIAN HIEROGLYPH F029
+1311E ; [.4F31.0020.0002] # EGYPTIAN HIEROGLYPH F030
+1311F ; [.4F32.0020.0002] # EGYPTIAN HIEROGLYPH F031
+13120 ; [.4F33.0020.0002] # EGYPTIAN HIEROGLYPH F031A
+13121 ; [.4F34.0020.0002] # EGYPTIAN HIEROGLYPH F032
+13122 ; [.4F35.0020.0002] # EGYPTIAN HIEROGLYPH F033
+13123 ; [.4F36.0020.0002] # EGYPTIAN HIEROGLYPH F034
+13124 ; [.4F37.0020.0002] # EGYPTIAN HIEROGLYPH F035
+13125 ; [.4F38.0020.0002] # EGYPTIAN HIEROGLYPH F036
+13126 ; [.4F39.0020.0002] # EGYPTIAN HIEROGLYPH F037
+13127 ; [.4F3A.0020.0002] # EGYPTIAN HIEROGLYPH F037A
+13128 ; [.4F3B.0020.0002] # EGYPTIAN HIEROGLYPH F038
+13129 ; [.4F3C.0020.0002] # EGYPTIAN HIEROGLYPH F038A
+1312A ; [.4F3D.0020.0002] # EGYPTIAN HIEROGLYPH F039
+1312B ; [.4F3E.0020.0002] # EGYPTIAN HIEROGLYPH F040
+1312C ; [.4F3F.0020.0002] # EGYPTIAN HIEROGLYPH F041
+1312D ; [.4F40.0020.0002] # EGYPTIAN HIEROGLYPH F042
+1312E ; [.4F41.0020.0002] # EGYPTIAN HIEROGLYPH F043
+1312F ; [.4F42.0020.0002] # EGYPTIAN HIEROGLYPH F044
+13130 ; [.4F43.0020.0002] # EGYPTIAN HIEROGLYPH F045
+13131 ; [.4F44.0020.0002] # EGYPTIAN HIEROGLYPH F045A
+13132 ; [.4F45.0020.0002] # EGYPTIAN HIEROGLYPH F046
+13133 ; [.4F46.0020.0002] # EGYPTIAN HIEROGLYPH F046A
+13134 ; [.4F47.0020.0002] # EGYPTIAN HIEROGLYPH F047
+13135 ; [.4F48.0020.0002] # EGYPTIAN HIEROGLYPH F047A
+13136 ; [.4F49.0020.0002] # EGYPTIAN HIEROGLYPH F048
+13137 ; [.4F4A.0020.0002] # EGYPTIAN HIEROGLYPH F049
+13138 ; [.4F4B.0020.0002] # EGYPTIAN HIEROGLYPH F050
+13139 ; [.4F4C.0020.0002] # EGYPTIAN HIEROGLYPH F051
+1313A ; [.4F4D.0020.0002] # EGYPTIAN HIEROGLYPH F051A
+1313B ; [.4F4E.0020.0002] # EGYPTIAN HIEROGLYPH F051B
+1313C ; [.4F4F.0020.0002] # EGYPTIAN HIEROGLYPH F051C
+1313D ; [.4F50.0020.0002] # EGYPTIAN HIEROGLYPH F052
+1313E ; [.4F51.0020.0002] # EGYPTIAN HIEROGLYPH F053
+1313F ; [.4F52.0020.0002] # EGYPTIAN HIEROGLYPH G001
+13140 ; [.4F53.0020.0002] # EGYPTIAN HIEROGLYPH G002
+13141 ; [.4F54.0020.0002] # EGYPTIAN HIEROGLYPH G003
+13142 ; [.4F55.0020.0002] # EGYPTIAN HIEROGLYPH G004
+13143 ; [.4F56.0020.0002] # EGYPTIAN HIEROGLYPH G005
+13144 ; [.4F57.0020.0002] # EGYPTIAN HIEROGLYPH G006
+13145 ; [.4F58.0020.0002] # EGYPTIAN HIEROGLYPH G006A
+13146 ; [.4F59.0020.0002] # EGYPTIAN HIEROGLYPH G007
+13147 ; [.4F5A.0020.0002] # EGYPTIAN HIEROGLYPH G007A
+13148 ; [.4F5B.0020.0002] # EGYPTIAN HIEROGLYPH G007B
+13149 ; [.4F5C.0020.0002] # EGYPTIAN HIEROGLYPH G008
+1314A ; [.4F5D.0020.0002] # EGYPTIAN HIEROGLYPH G009
+1314B ; [.4F5E.0020.0002] # EGYPTIAN HIEROGLYPH G010
+1314C ; [.4F5F.0020.0002] # EGYPTIAN HIEROGLYPH G011
+1314D ; [.4F60.0020.0002] # EGYPTIAN HIEROGLYPH G011A
+1314E ; [.4F61.0020.0002] # EGYPTIAN HIEROGLYPH G012
+1314F ; [.4F62.0020.0002] # EGYPTIAN HIEROGLYPH G013
+13150 ; [.4F63.0020.0002] # EGYPTIAN HIEROGLYPH G014
+13151 ; [.4F64.0020.0002] # EGYPTIAN HIEROGLYPH G015
+13152 ; [.4F65.0020.0002] # EGYPTIAN HIEROGLYPH G016
+13153 ; [.4F66.0020.0002] # EGYPTIAN HIEROGLYPH G017
+13154 ; [.4F67.0020.0002] # EGYPTIAN HIEROGLYPH G018
+13155 ; [.4F68.0020.0002] # EGYPTIAN HIEROGLYPH G019
+13156 ; [.4F69.0020.0002] # EGYPTIAN HIEROGLYPH G020
+13157 ; [.4F6A.0020.0002] # EGYPTIAN HIEROGLYPH G020A
+13158 ; [.4F6B.0020.0002] # EGYPTIAN HIEROGLYPH G021
+13159 ; [.4F6C.0020.0002] # EGYPTIAN HIEROGLYPH G022
+1315A ; [.4F6D.0020.0002] # EGYPTIAN HIEROGLYPH G023
+1315B ; [.4F6E.0020.0002] # EGYPTIAN HIEROGLYPH G024
+1315C ; [.4F6F.0020.0002] # EGYPTIAN HIEROGLYPH G025
+1315D ; [.4F70.0020.0002] # EGYPTIAN HIEROGLYPH G026
+1315E ; [.4F71.0020.0002] # EGYPTIAN HIEROGLYPH G026A
+1315F ; [.4F72.0020.0002] # EGYPTIAN HIEROGLYPH G027
+13160 ; [.4F73.0020.0002] # EGYPTIAN HIEROGLYPH G028
+13161 ; [.4F74.0020.0002] # EGYPTIAN HIEROGLYPH G029
+13162 ; [.4F75.0020.0002] # EGYPTIAN HIEROGLYPH G030
+13163 ; [.4F76.0020.0002] # EGYPTIAN HIEROGLYPH G031
+13164 ; [.4F77.0020.0002] # EGYPTIAN HIEROGLYPH G032
+13165 ; [.4F78.0020.0002] # EGYPTIAN HIEROGLYPH G033
+13166 ; [.4F79.0020.0002] # EGYPTIAN HIEROGLYPH G034
+13167 ; [.4F7A.0020.0002] # EGYPTIAN HIEROGLYPH G035
+13168 ; [.4F7B.0020.0002] # EGYPTIAN HIEROGLYPH G036
+13169 ; [.4F7C.0020.0002] # EGYPTIAN HIEROGLYPH G036A
+1316A ; [.4F7D.0020.0002] # EGYPTIAN HIEROGLYPH G037
+1316B ; [.4F7E.0020.0002] # EGYPTIAN HIEROGLYPH G037A
+1316C ; [.4F7F.0020.0002] # EGYPTIAN HIEROGLYPH G038
+1316D ; [.4F80.0020.0002] # EGYPTIAN HIEROGLYPH G039
+1316E ; [.4F81.0020.0002] # EGYPTIAN HIEROGLYPH G040
+1316F ; [.4F82.0020.0002] # EGYPTIAN HIEROGLYPH G041
+13170 ; [.4F83.0020.0002] # EGYPTIAN HIEROGLYPH G042
+13171 ; [.4F84.0020.0002] # EGYPTIAN HIEROGLYPH G043
+13172 ; [.4F85.0020.0002] # EGYPTIAN HIEROGLYPH G043A
+13173 ; [.4F86.0020.0002] # EGYPTIAN HIEROGLYPH G044
+13174 ; [.4F87.0020.0002] # EGYPTIAN HIEROGLYPH G045
+13175 ; [.4F88.0020.0002] # EGYPTIAN HIEROGLYPH G045A
+13176 ; [.4F89.0020.0002] # EGYPTIAN HIEROGLYPH G046
+13177 ; [.4F8A.0020.0002] # EGYPTIAN HIEROGLYPH G047
+13178 ; [.4F8B.0020.0002] # EGYPTIAN HIEROGLYPH G048
+13179 ; [.4F8C.0020.0002] # EGYPTIAN HIEROGLYPH G049
+1317A ; [.4F8D.0020.0002] # EGYPTIAN HIEROGLYPH G050
+1317B ; [.4F8E.0020.0002] # EGYPTIAN HIEROGLYPH G051
+1317C ; [.4F8F.0020.0002] # EGYPTIAN HIEROGLYPH G052
+1317D ; [.4F90.0020.0002] # EGYPTIAN HIEROGLYPH G053
+1317E ; [.4F91.0020.0002] # EGYPTIAN HIEROGLYPH G054
+1317F ; [.4F92.0020.0002] # EGYPTIAN HIEROGLYPH H001
+13180 ; [.4F93.0020.0002] # EGYPTIAN HIEROGLYPH H002
+13181 ; [.4F94.0020.0002] # EGYPTIAN HIEROGLYPH H003
+13182 ; [.4F95.0020.0002] # EGYPTIAN HIEROGLYPH H004
+13183 ; [.4F96.0020.0002] # EGYPTIAN HIEROGLYPH H005
+13184 ; [.4F97.0020.0002] # EGYPTIAN HIEROGLYPH H006
+13185 ; [.4F98.0020.0002] # EGYPTIAN HIEROGLYPH H006A
+13186 ; [.4F99.0020.0002] # EGYPTIAN HIEROGLYPH H007
+13187 ; [.4F9A.0020.0002] # EGYPTIAN HIEROGLYPH H008
+13188 ; [.4F9B.0020.0002] # EGYPTIAN HIEROGLYPH I001
+13189 ; [.4F9C.0020.0002] # EGYPTIAN HIEROGLYPH I002
+1318A ; [.4F9D.0020.0002] # EGYPTIAN HIEROGLYPH I003
+1318B ; [.4F9E.0020.0002] # EGYPTIAN HIEROGLYPH I004
+1318C ; [.4F9F.0020.0002] # EGYPTIAN HIEROGLYPH I005
+1318D ; [.4FA0.0020.0002] # EGYPTIAN HIEROGLYPH I005A
+1318E ; [.4FA1.0020.0002] # EGYPTIAN HIEROGLYPH I006
+1318F ; [.4FA2.0020.0002] # EGYPTIAN HIEROGLYPH I007
+13190 ; [.4FA3.0020.0002] # EGYPTIAN HIEROGLYPH I008
+13191 ; [.4FA4.0020.0002] # EGYPTIAN HIEROGLYPH I009
+13192 ; [.4FA5.0020.0002] # EGYPTIAN HIEROGLYPH I009A
+13193 ; [.4FA6.0020.0002] # EGYPTIAN HIEROGLYPH I010
+13194 ; [.4FA7.0020.0002] # EGYPTIAN HIEROGLYPH I010A
+13195 ; [.4FA8.0020.0002] # EGYPTIAN HIEROGLYPH I011
+13196 ; [.4FA9.0020.0002] # EGYPTIAN HIEROGLYPH I011A
+13197 ; [.4FAA.0020.0002] # EGYPTIAN HIEROGLYPH I012
+13198 ; [.4FAB.0020.0002] # EGYPTIAN HIEROGLYPH I013
+13199 ; [.4FAC.0020.0002] # EGYPTIAN HIEROGLYPH I014
+1319A ; [.4FAD.0020.0002] # EGYPTIAN HIEROGLYPH I015
+1319B ; [.4FAE.0020.0002] # EGYPTIAN HIEROGLYPH K001
+1319C ; [.4FAF.0020.0002] # EGYPTIAN HIEROGLYPH K002
+1319D ; [.4FB0.0020.0002] # EGYPTIAN HIEROGLYPH K003
+1319E ; [.4FB1.0020.0002] # EGYPTIAN HIEROGLYPH K004
+1319F ; [.4FB2.0020.0002] # EGYPTIAN HIEROGLYPH K005
+131A0 ; [.4FB3.0020.0002] # EGYPTIAN HIEROGLYPH K006
+131A1 ; [.4FB4.0020.0002] # EGYPTIAN HIEROGLYPH K007
+131A2 ; [.4FB5.0020.0002] # EGYPTIAN HIEROGLYPH K008
+131A3 ; [.4FB6.0020.0002] # EGYPTIAN HIEROGLYPH L001
+131A4 ; [.4FB7.0020.0002] # EGYPTIAN HIEROGLYPH L002
+131A5 ; [.4FB8.0020.0002] # EGYPTIAN HIEROGLYPH L002A
+131A6 ; [.4FB9.0020.0002] # EGYPTIAN HIEROGLYPH L003
+131A7 ; [.4FBA.0020.0002] # EGYPTIAN HIEROGLYPH L004
+131A8 ; [.4FBB.0020.0002] # EGYPTIAN HIEROGLYPH L005
+131A9 ; [.4FBC.0020.0002] # EGYPTIAN HIEROGLYPH L006
+131AA ; [.4FBD.0020.0002] # EGYPTIAN HIEROGLYPH L006A
+131AB ; [.4FBE.0020.0002] # EGYPTIAN HIEROGLYPH L007
+131AC ; [.4FBF.0020.0002] # EGYPTIAN HIEROGLYPH L008
+131AD ; [.4FC0.0020.0002] # EGYPTIAN HIEROGLYPH M001
+131AE ; [.4FC1.0020.0002] # EGYPTIAN HIEROGLYPH M001A
+131AF ; [.4FC2.0020.0002] # EGYPTIAN HIEROGLYPH M001B
+131B0 ; [.4FC3.0020.0002] # EGYPTIAN HIEROGLYPH M002
+131B1 ; [.4FC4.0020.0002] # EGYPTIAN HIEROGLYPH M003
+131B2 ; [.4FC5.0020.0002] # EGYPTIAN HIEROGLYPH M003A
+131B3 ; [.4FC6.0020.0002] # EGYPTIAN HIEROGLYPH M004
+131B4 ; [.4FC7.0020.0002] # EGYPTIAN HIEROGLYPH M005
+131B5 ; [.4FC8.0020.0002] # EGYPTIAN HIEROGLYPH M006
+131B6 ; [.4FC9.0020.0002] # EGYPTIAN HIEROGLYPH M007
+131B7 ; [.4FCA.0020.0002] # EGYPTIAN HIEROGLYPH M008
+131B8 ; [.4FCB.0020.0002] # EGYPTIAN HIEROGLYPH M009
+131B9 ; [.4FCC.0020.0002] # EGYPTIAN HIEROGLYPH M010
+131BA ; [.4FCD.0020.0002] # EGYPTIAN HIEROGLYPH M010A
+131BB ; [.4FCE.0020.0002] # EGYPTIAN HIEROGLYPH M011
+131BC ; [.4FCF.0020.0002] # EGYPTIAN HIEROGLYPH M012
+131BD ; [.4FD0.0020.0002] # EGYPTIAN HIEROGLYPH M012A
+131BE ; [.4FD1.0020.0002] # EGYPTIAN HIEROGLYPH M012B
+131BF ; [.4FD2.0020.0002] # EGYPTIAN HIEROGLYPH M012C
+131C0 ; [.4FD3.0020.0002] # EGYPTIAN HIEROGLYPH M012D
+131C1 ; [.4FD4.0020.0002] # EGYPTIAN HIEROGLYPH M012E
+131C2 ; [.4FD5.0020.0002] # EGYPTIAN HIEROGLYPH M012F
+131C3 ; [.4FD6.0020.0002] # EGYPTIAN HIEROGLYPH M012G
+131C4 ; [.4FD7.0020.0002] # EGYPTIAN HIEROGLYPH M012H
+131C5 ; [.4FD8.0020.0002] # EGYPTIAN HIEROGLYPH M013
+131C6 ; [.4FD9.0020.0002] # EGYPTIAN HIEROGLYPH M014
+131C7 ; [.4FDA.0020.0002] # EGYPTIAN HIEROGLYPH M015
+131C8 ; [.4FDB.0020.0002] # EGYPTIAN HIEROGLYPH M015A
+131C9 ; [.4FDC.0020.0002] # EGYPTIAN HIEROGLYPH M016
+131CA ; [.4FDD.0020.0002] # EGYPTIAN HIEROGLYPH M016A
+131CB ; [.4FDE.0020.0002] # EGYPTIAN HIEROGLYPH M017
+131CC ; [.4FDF.0020.0002] # EGYPTIAN HIEROGLYPH M017A
+131CD ; [.4FE0.0020.0002] # EGYPTIAN HIEROGLYPH M018
+131CE ; [.4FE1.0020.0002] # EGYPTIAN HIEROGLYPH M019
+131CF ; [.4FE2.0020.0002] # EGYPTIAN HIEROGLYPH M020
+131D0 ; [.4FE3.0020.0002] # EGYPTIAN HIEROGLYPH M021
+131D1 ; [.4FE4.0020.0002] # EGYPTIAN HIEROGLYPH M022
+131D2 ; [.4FE5.0020.0002] # EGYPTIAN HIEROGLYPH M022A
+131D3 ; [.4FE6.0020.0002] # EGYPTIAN HIEROGLYPH M023
+131D4 ; [.4FE7.0020.0002] # EGYPTIAN HIEROGLYPH M024
+131D5 ; [.4FE8.0020.0002] # EGYPTIAN HIEROGLYPH M024A
+131D6 ; [.4FE9.0020.0002] # EGYPTIAN HIEROGLYPH M025
+131D7 ; [.4FEA.0020.0002] # EGYPTIAN HIEROGLYPH M026
+131D8 ; [.4FEB.0020.0002] # EGYPTIAN HIEROGLYPH M027
+131D9 ; [.4FEC.0020.0002] # EGYPTIAN HIEROGLYPH M028
+131DA ; [.4FED.0020.0002] # EGYPTIAN HIEROGLYPH M028A
+131DB ; [.4FEE.0020.0002] # EGYPTIAN HIEROGLYPH M029
+131DC ; [.4FEF.0020.0002] # EGYPTIAN HIEROGLYPH M030
+131DD ; [.4FF0.0020.0002] # EGYPTIAN HIEROGLYPH M031
+131DE ; [.4FF1.0020.0002] # EGYPTIAN HIEROGLYPH M031A
+131DF ; [.4FF2.0020.0002] # EGYPTIAN HIEROGLYPH M032
+131E0 ; [.4FF3.0020.0002] # EGYPTIAN HIEROGLYPH M033
+131E1 ; [.4FF4.0020.0002] # EGYPTIAN HIEROGLYPH M033A
+131E2 ; [.4FF5.0020.0002] # EGYPTIAN HIEROGLYPH M033B
+131E3 ; [.4FF6.0020.0002] # EGYPTIAN HIEROGLYPH M034
+131E4 ; [.4FF7.0020.0002] # EGYPTIAN HIEROGLYPH M035
+131E5 ; [.4FF8.0020.0002] # EGYPTIAN HIEROGLYPH M036
+131E6 ; [.4FF9.0020.0002] # EGYPTIAN HIEROGLYPH M037
+131E7 ; [.4FFA.0020.0002] # EGYPTIAN HIEROGLYPH M038
+131E8 ; [.4FFB.0020.0002] # EGYPTIAN HIEROGLYPH M039
+131E9 ; [.4FFC.0020.0002] # EGYPTIAN HIEROGLYPH M040
+131EA ; [.4FFD.0020.0002] # EGYPTIAN HIEROGLYPH M040A
+131EB ; [.4FFE.0020.0002] # EGYPTIAN HIEROGLYPH M041
+131EC ; [.4FFF.0020.0002] # EGYPTIAN HIEROGLYPH M042
+131ED ; [.5000.0020.0002] # EGYPTIAN HIEROGLYPH M043
+131EE ; [.5001.0020.0002] # EGYPTIAN HIEROGLYPH M044
+131EF ; [.5002.0020.0002] # EGYPTIAN HIEROGLYPH N001
+131F0 ; [.5003.0020.0002] # EGYPTIAN HIEROGLYPH N002
+131F1 ; [.5004.0020.0002] # EGYPTIAN HIEROGLYPH N003
+131F2 ; [.5005.0020.0002] # EGYPTIAN HIEROGLYPH N004
+131F3 ; [.5006.0020.0002] # EGYPTIAN HIEROGLYPH N005
+131F4 ; [.5007.0020.0002] # EGYPTIAN HIEROGLYPH N006
+131F5 ; [.5008.0020.0002] # EGYPTIAN HIEROGLYPH N007
+131F6 ; [.5009.0020.0002] # EGYPTIAN HIEROGLYPH N008
+131F7 ; [.500A.0020.0002] # EGYPTIAN HIEROGLYPH N009
+131F8 ; [.500B.0020.0002] # EGYPTIAN HIEROGLYPH N010
+131F9 ; [.500C.0020.0002] # EGYPTIAN HIEROGLYPH N011
+131FA ; [.500D.0020.0002] # EGYPTIAN HIEROGLYPH N012
+131FB ; [.500E.0020.0002] # EGYPTIAN HIEROGLYPH N013
+131FC ; [.500F.0020.0002] # EGYPTIAN HIEROGLYPH N014
+131FD ; [.5010.0020.0002] # EGYPTIAN HIEROGLYPH N015
+131FE ; [.5011.0020.0002] # EGYPTIAN HIEROGLYPH N016
+131FF ; [.5012.0020.0002] # EGYPTIAN HIEROGLYPH N017
+13200 ; [.5013.0020.0002] # EGYPTIAN HIEROGLYPH N018
+13201 ; [.5014.0020.0002] # EGYPTIAN HIEROGLYPH N018A
+13202 ; [.5015.0020.0002] # EGYPTIAN HIEROGLYPH N018B
+13203 ; [.5016.0020.0002] # EGYPTIAN HIEROGLYPH N019
+13204 ; [.5017.0020.0002] # EGYPTIAN HIEROGLYPH N020
+13205 ; [.5018.0020.0002] # EGYPTIAN HIEROGLYPH N021
+13206 ; [.5019.0020.0002] # EGYPTIAN HIEROGLYPH N022
+13207 ; [.501A.0020.0002] # EGYPTIAN HIEROGLYPH N023
+13208 ; [.501B.0020.0002] # EGYPTIAN HIEROGLYPH N024
+13209 ; [.501C.0020.0002] # EGYPTIAN HIEROGLYPH N025
+1320A ; [.501D.0020.0002] # EGYPTIAN HIEROGLYPH N025A
+1320B ; [.501E.0020.0002] # EGYPTIAN HIEROGLYPH N026
+1320C ; [.501F.0020.0002] # EGYPTIAN HIEROGLYPH N027
+1320D ; [.5020.0020.0002] # EGYPTIAN HIEROGLYPH N028
+1320E ; [.5021.0020.0002] # EGYPTIAN HIEROGLYPH N029
+1320F ; [.5022.0020.0002] # EGYPTIAN HIEROGLYPH N030
+13210 ; [.5023.0020.0002] # EGYPTIAN HIEROGLYPH N031
+13211 ; [.5024.0020.0002] # EGYPTIAN HIEROGLYPH N032
+13212 ; [.5025.0020.0002] # EGYPTIAN HIEROGLYPH N033
+13213 ; [.5026.0020.0002] # EGYPTIAN HIEROGLYPH N033A
+13214 ; [.5027.0020.0002] # EGYPTIAN HIEROGLYPH N034
+13215 ; [.5028.0020.0002] # EGYPTIAN HIEROGLYPH N034A
+13216 ; [.5029.0020.0002] # EGYPTIAN HIEROGLYPH N035
+13217 ; [.502A.0020.0002] # EGYPTIAN HIEROGLYPH N035A
+13218 ; [.502B.0020.0002] # EGYPTIAN HIEROGLYPH N036
+13219 ; [.502C.0020.0002] # EGYPTIAN HIEROGLYPH N037
+1321A ; [.502D.0020.0002] # EGYPTIAN HIEROGLYPH N037A
+1321B ; [.502E.0020.0002] # EGYPTIAN HIEROGLYPH N038
+1321C ; [.502F.0020.0002] # EGYPTIAN HIEROGLYPH N039
+1321D ; [.5030.0020.0002] # EGYPTIAN HIEROGLYPH N040
+1321E ; [.5031.0020.0002] # EGYPTIAN HIEROGLYPH N041
+1321F ; [.5032.0020.0002] # EGYPTIAN HIEROGLYPH N042
+13220 ; [.5033.0020.0002] # EGYPTIAN HIEROGLYPH NL001
+13221 ; [.5034.0020.0002] # EGYPTIAN HIEROGLYPH NL002
+13222 ; [.5035.0020.0002] # EGYPTIAN HIEROGLYPH NL003
+13223 ; [.5036.0020.0002] # EGYPTIAN HIEROGLYPH NL004
+13224 ; [.5037.0020.0002] # EGYPTIAN HIEROGLYPH NL005
+13225 ; [.5038.0020.0002] # EGYPTIAN HIEROGLYPH NL005A
+13226 ; [.5039.0020.0002] # EGYPTIAN HIEROGLYPH NL006
+13227 ; [.503A.0020.0002] # EGYPTIAN HIEROGLYPH NL007
+13228 ; [.503B.0020.0002] # EGYPTIAN HIEROGLYPH NL008
+13229 ; [.503C.0020.0002] # EGYPTIAN HIEROGLYPH NL009
+1322A ; [.503D.0020.0002] # EGYPTIAN HIEROGLYPH NL010
+1322B ; [.503E.0020.0002] # EGYPTIAN HIEROGLYPH NL011
+1322C ; [.503F.0020.0002] # EGYPTIAN HIEROGLYPH NL012
+1322D ; [.5040.0020.0002] # EGYPTIAN HIEROGLYPH NL013
+1322E ; [.5041.0020.0002] # EGYPTIAN HIEROGLYPH NL014
+1322F ; [.5042.0020.0002] # EGYPTIAN HIEROGLYPH NL015
+13230 ; [.5043.0020.0002] # EGYPTIAN HIEROGLYPH NL016
+13231 ; [.5044.0020.0002] # EGYPTIAN HIEROGLYPH NL017
+13232 ; [.5045.0020.0002] # EGYPTIAN HIEROGLYPH NL017A
+13233 ; [.5046.0020.0002] # EGYPTIAN HIEROGLYPH NL018
+13234 ; [.5047.0020.0002] # EGYPTIAN HIEROGLYPH NL019
+13235 ; [.5048.0020.0002] # EGYPTIAN HIEROGLYPH NL020
+13236 ; [.5049.0020.0002] # EGYPTIAN HIEROGLYPH NU001
+13237 ; [.504A.0020.0002] # EGYPTIAN HIEROGLYPH NU002
+13238 ; [.504B.0020.0002] # EGYPTIAN HIEROGLYPH NU003
+13239 ; [.504C.0020.0002] # EGYPTIAN HIEROGLYPH NU004
+1323A ; [.504D.0020.0002] # EGYPTIAN HIEROGLYPH NU005
+1323B ; [.504E.0020.0002] # EGYPTIAN HIEROGLYPH NU006
+1323C ; [.504F.0020.0002] # EGYPTIAN HIEROGLYPH NU007
+1323D ; [.5050.0020.0002] # EGYPTIAN HIEROGLYPH NU008
+1323E ; [.5051.0020.0002] # EGYPTIAN HIEROGLYPH NU009
+1323F ; [.5052.0020.0002] # EGYPTIAN HIEROGLYPH NU010
+13240 ; [.5053.0020.0002] # EGYPTIAN HIEROGLYPH NU010A
+13241 ; [.5054.0020.0002] # EGYPTIAN HIEROGLYPH NU011
+13242 ; [.5055.0020.0002] # EGYPTIAN HIEROGLYPH NU011A
+13243 ; [.5056.0020.0002] # EGYPTIAN HIEROGLYPH NU012
+13244 ; [.5057.0020.0002] # EGYPTIAN HIEROGLYPH NU013
+13245 ; [.5058.0020.0002] # EGYPTIAN HIEROGLYPH NU014
+13246 ; [.5059.0020.0002] # EGYPTIAN HIEROGLYPH NU015
+13247 ; [.505A.0020.0002] # EGYPTIAN HIEROGLYPH NU016
+13248 ; [.505B.0020.0002] # EGYPTIAN HIEROGLYPH NU017
+13249 ; [.505C.0020.0002] # EGYPTIAN HIEROGLYPH NU018
+1324A ; [.505D.0020.0002] # EGYPTIAN HIEROGLYPH NU018A
+1324B ; [.505E.0020.0002] # EGYPTIAN HIEROGLYPH NU019
+1324C ; [.505F.0020.0002] # EGYPTIAN HIEROGLYPH NU020
+1324D ; [.5060.0020.0002] # EGYPTIAN HIEROGLYPH NU021
+1324E ; [.5061.0020.0002] # EGYPTIAN HIEROGLYPH NU022
+1324F ; [.5062.0020.0002] # EGYPTIAN HIEROGLYPH NU022A
+13250 ; [.5063.0020.0002] # EGYPTIAN HIEROGLYPH O001
+13251 ; [.5064.0020.0002] # EGYPTIAN HIEROGLYPH O001A
+13252 ; [.5065.0020.0002] # EGYPTIAN HIEROGLYPH O002
+13253 ; [.5066.0020.0002] # EGYPTIAN HIEROGLYPH O003
+13254 ; [.5067.0020.0002] # EGYPTIAN HIEROGLYPH O004
+13255 ; [.5068.0020.0002] # EGYPTIAN HIEROGLYPH O005
+13256 ; [.5069.0020.0002] # EGYPTIAN HIEROGLYPH O005A
+13257 ; [.506A.0020.0002] # EGYPTIAN HIEROGLYPH O006
+13258 ; [.506B.0020.0002] # EGYPTIAN HIEROGLYPH O006A
+13259 ; [.506C.0020.0002] # EGYPTIAN HIEROGLYPH O006B
+1325A ; [.506D.0020.0002] # EGYPTIAN HIEROGLYPH O006C
+1325B ; [.506E.0020.0002] # EGYPTIAN HIEROGLYPH O006D
+1325C ; [.506F.0020.0002] # EGYPTIAN HIEROGLYPH O006E
+1325D ; [.5070.0020.0002] # EGYPTIAN HIEROGLYPH O006F
+1325E ; [.5071.0020.0002] # EGYPTIAN HIEROGLYPH O007
+1325F ; [.5072.0020.0002] # EGYPTIAN HIEROGLYPH O008
+13260 ; [.5073.0020.0002] # EGYPTIAN HIEROGLYPH O009
+13261 ; [.5074.0020.0002] # EGYPTIAN HIEROGLYPH O010
+13262 ; [.5075.0020.0002] # EGYPTIAN HIEROGLYPH O010A
+13263 ; [.5076.0020.0002] # EGYPTIAN HIEROGLYPH O010B
+13264 ; [.5077.0020.0002] # EGYPTIAN HIEROGLYPH O010C
+13265 ; [.5078.0020.0002] # EGYPTIAN HIEROGLYPH O011
+13266 ; [.5079.0020.0002] # EGYPTIAN HIEROGLYPH O012
+13267 ; [.507A.0020.0002] # EGYPTIAN HIEROGLYPH O013
+13268 ; [.507B.0020.0002] # EGYPTIAN HIEROGLYPH O014
+13269 ; [.507C.0020.0002] # EGYPTIAN HIEROGLYPH O015
+1326A ; [.507D.0020.0002] # EGYPTIAN HIEROGLYPH O016
+1326B ; [.507E.0020.0002] # EGYPTIAN HIEROGLYPH O017
+1326C ; [.507F.0020.0002] # EGYPTIAN HIEROGLYPH O018
+1326D ; [.5080.0020.0002] # EGYPTIAN HIEROGLYPH O019
+1326E ; [.5081.0020.0002] # EGYPTIAN HIEROGLYPH O019A
+1326F ; [.5082.0020.0002] # EGYPTIAN HIEROGLYPH O020
+13270 ; [.5083.0020.0002] # EGYPTIAN HIEROGLYPH O020A
+13271 ; [.5084.0020.0002] # EGYPTIAN HIEROGLYPH O021
+13272 ; [.5085.0020.0002] # EGYPTIAN HIEROGLYPH O022
+13273 ; [.5086.0020.0002] # EGYPTIAN HIEROGLYPH O023
+13274 ; [.5087.0020.0002] # EGYPTIAN HIEROGLYPH O024
+13275 ; [.5088.0020.0002] # EGYPTIAN HIEROGLYPH O024A
+13276 ; [.5089.0020.0002] # EGYPTIAN HIEROGLYPH O025
+13277 ; [.508A.0020.0002] # EGYPTIAN HIEROGLYPH O025A
+13278 ; [.508B.0020.0002] # EGYPTIAN HIEROGLYPH O026
+13279 ; [.508C.0020.0002] # EGYPTIAN HIEROGLYPH O027
+1327A ; [.508D.0020.0002] # EGYPTIAN HIEROGLYPH O028
+1327B ; [.508E.0020.0002] # EGYPTIAN HIEROGLYPH O029
+1327C ; [.508F.0020.0002] # EGYPTIAN HIEROGLYPH O029A
+1327D ; [.5090.0020.0002] # EGYPTIAN HIEROGLYPH O030
+1327E ; [.5091.0020.0002] # EGYPTIAN HIEROGLYPH O030A
+1327F ; [.5092.0020.0002] # EGYPTIAN HIEROGLYPH O031
+13280 ; [.5093.0020.0002] # EGYPTIAN HIEROGLYPH O032
+13281 ; [.5094.0020.0002] # EGYPTIAN HIEROGLYPH O033
+13282 ; [.5095.0020.0002] # EGYPTIAN HIEROGLYPH O033A
+13283 ; [.5096.0020.0002] # EGYPTIAN HIEROGLYPH O034
+13284 ; [.5097.0020.0002] # EGYPTIAN HIEROGLYPH O035
+13285 ; [.5098.0020.0002] # EGYPTIAN HIEROGLYPH O036
+13286 ; [.5099.0020.0002] # EGYPTIAN HIEROGLYPH O036A
+13287 ; [.509A.0020.0002] # EGYPTIAN HIEROGLYPH O036B
+13288 ; [.509B.0020.0002] # EGYPTIAN HIEROGLYPH O036C
+13289 ; [.509C.0020.0002] # EGYPTIAN HIEROGLYPH O036D
+1328A ; [.509D.0020.0002] # EGYPTIAN HIEROGLYPH O037
+1328B ; [.509E.0020.0002] # EGYPTIAN HIEROGLYPH O038
+1328C ; [.509F.0020.0002] # EGYPTIAN HIEROGLYPH O039
+1328D ; [.50A0.0020.0002] # EGYPTIAN HIEROGLYPH O040
+1328E ; [.50A1.0020.0002] # EGYPTIAN HIEROGLYPH O041
+1328F ; [.50A2.0020.0002] # EGYPTIAN HIEROGLYPH O042
+13290 ; [.50A3.0020.0002] # EGYPTIAN HIEROGLYPH O043
+13291 ; [.50A4.0020.0002] # EGYPTIAN HIEROGLYPH O044
+13292 ; [.50A5.0020.0002] # EGYPTIAN HIEROGLYPH O045
+13293 ; [.50A6.0020.0002] # EGYPTIAN HIEROGLYPH O046
+13294 ; [.50A7.0020.0002] # EGYPTIAN HIEROGLYPH O047
+13295 ; [.50A8.0020.0002] # EGYPTIAN HIEROGLYPH O048
+13296 ; [.50A9.0020.0002] # EGYPTIAN HIEROGLYPH O049
+13297 ; [.50AA.0020.0002] # EGYPTIAN HIEROGLYPH O050
+13298 ; [.50AB.0020.0002] # EGYPTIAN HIEROGLYPH O050A
+13299 ; [.50AC.0020.0002] # EGYPTIAN HIEROGLYPH O050B
+1329A ; [.50AD.0020.0002] # EGYPTIAN HIEROGLYPH O051
+1329B ; [.50AE.0020.0002] # EGYPTIAN HIEROGLYPH P001
+1329C ; [.50AF.0020.0002] # EGYPTIAN HIEROGLYPH P001A
+1329D ; [.50B0.0020.0002] # EGYPTIAN HIEROGLYPH P002
+1329E ; [.50B1.0020.0002] # EGYPTIAN HIEROGLYPH P003
+1329F ; [.50B2.0020.0002] # EGYPTIAN HIEROGLYPH P003A
+132A0 ; [.50B3.0020.0002] # EGYPTIAN HIEROGLYPH P004
+132A1 ; [.50B4.0020.0002] # EGYPTIAN HIEROGLYPH P005
+132A2 ; [.50B5.0020.0002] # EGYPTIAN HIEROGLYPH P006
+132A3 ; [.50B6.0020.0002] # EGYPTIAN HIEROGLYPH P007
+132A4 ; [.50B7.0020.0002] # EGYPTIAN HIEROGLYPH P008
+132A5 ; [.50B8.0020.0002] # EGYPTIAN HIEROGLYPH P009
+132A6 ; [.50B9.0020.0002] # EGYPTIAN HIEROGLYPH P010
+132A7 ; [.50BA.0020.0002] # EGYPTIAN HIEROGLYPH P011
+132A8 ; [.50BB.0020.0002] # EGYPTIAN HIEROGLYPH Q001
+132A9 ; [.50BC.0020.0002] # EGYPTIAN HIEROGLYPH Q002
+132AA ; [.50BD.0020.0002] # EGYPTIAN HIEROGLYPH Q003
+132AB ; [.50BE.0020.0002] # EGYPTIAN HIEROGLYPH Q004
+132AC ; [.50BF.0020.0002] # EGYPTIAN HIEROGLYPH Q005
+132AD ; [.50C0.0020.0002] # EGYPTIAN HIEROGLYPH Q006
+132AE ; [.50C1.0020.0002] # EGYPTIAN HIEROGLYPH Q007
+132AF ; [.50C2.0020.0002] # EGYPTIAN HIEROGLYPH R001
+132B0 ; [.50C3.0020.0002] # EGYPTIAN HIEROGLYPH R002
+132B1 ; [.50C4.0020.0002] # EGYPTIAN HIEROGLYPH R002A
+132B2 ; [.50C5.0020.0002] # EGYPTIAN HIEROGLYPH R003
+132B3 ; [.50C6.0020.0002] # EGYPTIAN HIEROGLYPH R003A
+132B4 ; [.50C7.0020.0002] # EGYPTIAN HIEROGLYPH R003B
+132B5 ; [.50C8.0020.0002] # EGYPTIAN HIEROGLYPH R004
+132B6 ; [.50C9.0020.0002] # EGYPTIAN HIEROGLYPH R005
+132B7 ; [.50CA.0020.0002] # EGYPTIAN HIEROGLYPH R006
+132B8 ; [.50CB.0020.0002] # EGYPTIAN HIEROGLYPH R007
+132B9 ; [.50CC.0020.0002] # EGYPTIAN HIEROGLYPH R008
+132BA ; [.50CD.0020.0002] # EGYPTIAN HIEROGLYPH R009
+132BB ; [.50CE.0020.0002] # EGYPTIAN HIEROGLYPH R010
+132BC ; [.50CF.0020.0002] # EGYPTIAN HIEROGLYPH R010A
+132BD ; [.50D0.0020.0002] # EGYPTIAN HIEROGLYPH R011
+132BE ; [.50D1.0020.0002] # EGYPTIAN HIEROGLYPH R012
+132BF ; [.50D2.0020.0002] # EGYPTIAN HIEROGLYPH R013
+132C0 ; [.50D3.0020.0002] # EGYPTIAN HIEROGLYPH R014
+132C1 ; [.50D4.0020.0002] # EGYPTIAN HIEROGLYPH R015
+132C2 ; [.50D5.0020.0002] # EGYPTIAN HIEROGLYPH R016
+132C3 ; [.50D6.0020.0002] # EGYPTIAN HIEROGLYPH R016A
+132C4 ; [.50D7.0020.0002] # EGYPTIAN HIEROGLYPH R017
+132C5 ; [.50D8.0020.0002] # EGYPTIAN HIEROGLYPH R018
+132C6 ; [.50D9.0020.0002] # EGYPTIAN HIEROGLYPH R019
+132C7 ; [.50DA.0020.0002] # EGYPTIAN HIEROGLYPH R020
+132C8 ; [.50DB.0020.0002] # EGYPTIAN HIEROGLYPH R021
+132C9 ; [.50DC.0020.0002] # EGYPTIAN HIEROGLYPH R022
+132CA ; [.50DD.0020.0002] # EGYPTIAN HIEROGLYPH R023
+132CB ; [.50DE.0020.0002] # EGYPTIAN HIEROGLYPH R024
+132CC ; [.50DF.0020.0002] # EGYPTIAN HIEROGLYPH R025
+132CD ; [.50E0.0020.0002] # EGYPTIAN HIEROGLYPH R026
+132CE ; [.50E1.0020.0002] # EGYPTIAN HIEROGLYPH R027
+132CF ; [.50E2.0020.0002] # EGYPTIAN HIEROGLYPH R028
+132D0 ; [.50E3.0020.0002] # EGYPTIAN HIEROGLYPH R029
+132D1 ; [.50E4.0020.0002] # EGYPTIAN HIEROGLYPH S001
+132D2 ; [.50E5.0020.0002] # EGYPTIAN HIEROGLYPH S002
+132D3 ; [.50E6.0020.0002] # EGYPTIAN HIEROGLYPH S002A
+132D4 ; [.50E7.0020.0002] # EGYPTIAN HIEROGLYPH S003
+132D5 ; [.50E8.0020.0002] # EGYPTIAN HIEROGLYPH S004
+132D6 ; [.50E9.0020.0002] # EGYPTIAN HIEROGLYPH S005
+132D7 ; [.50EA.0020.0002] # EGYPTIAN HIEROGLYPH S006
+132D8 ; [.50EB.0020.0002] # EGYPTIAN HIEROGLYPH S006A
+132D9 ; [.50EC.0020.0002] # EGYPTIAN HIEROGLYPH S007
+132DA ; [.50ED.0020.0002] # EGYPTIAN HIEROGLYPH S008
+132DB ; [.50EE.0020.0002] # EGYPTIAN HIEROGLYPH S009
+132DC ; [.50EF.0020.0002] # EGYPTIAN HIEROGLYPH S010
+132DD ; [.50F0.0020.0002] # EGYPTIAN HIEROGLYPH S011
+132DE ; [.50F1.0020.0002] # EGYPTIAN HIEROGLYPH S012
+132DF ; [.50F2.0020.0002] # EGYPTIAN HIEROGLYPH S013
+132E0 ; [.50F3.0020.0002] # EGYPTIAN HIEROGLYPH S014
+132E1 ; [.50F4.0020.0002] # EGYPTIAN HIEROGLYPH S014A
+132E2 ; [.50F5.0020.0002] # EGYPTIAN HIEROGLYPH S014B
+132E3 ; [.50F6.0020.0002] # EGYPTIAN HIEROGLYPH S015
+132E4 ; [.50F7.0020.0002] # EGYPTIAN HIEROGLYPH S016
+132E5 ; [.50F8.0020.0002] # EGYPTIAN HIEROGLYPH S017
+132E6 ; [.50F9.0020.0002] # EGYPTIAN HIEROGLYPH S017A
+132E7 ; [.50FA.0020.0002] # EGYPTIAN HIEROGLYPH S018
+132E8 ; [.50FB.0020.0002] # EGYPTIAN HIEROGLYPH S019
+132E9 ; [.50FC.0020.0002] # EGYPTIAN HIEROGLYPH S020
+132EA ; [.50FD.0020.0002] # EGYPTIAN HIEROGLYPH S021
+132EB ; [.50FE.0020.0002] # EGYPTIAN HIEROGLYPH S022
+132EC ; [.50FF.0020.0002] # EGYPTIAN HIEROGLYPH S023
+132ED ; [.5100.0020.0002] # EGYPTIAN HIEROGLYPH S024
+132EE ; [.5101.0020.0002] # EGYPTIAN HIEROGLYPH S025
+132EF ; [.5102.0020.0002] # EGYPTIAN HIEROGLYPH S026
+132F0 ; [.5103.0020.0002] # EGYPTIAN HIEROGLYPH S026A
+132F1 ; [.5104.0020.0002] # EGYPTIAN HIEROGLYPH S026B
+132F2 ; [.5105.0020.0002] # EGYPTIAN HIEROGLYPH S027
+132F3 ; [.5106.0020.0002] # EGYPTIAN HIEROGLYPH S028
+132F4 ; [.5107.0020.0002] # EGYPTIAN HIEROGLYPH S029
+132F5 ; [.5108.0020.0002] # EGYPTIAN HIEROGLYPH S030
+132F6 ; [.5109.0020.0002] # EGYPTIAN HIEROGLYPH S031
+132F7 ; [.510A.0020.0002] # EGYPTIAN HIEROGLYPH S032
+132F8 ; [.510B.0020.0002] # EGYPTIAN HIEROGLYPH S033
+132F9 ; [.510C.0020.0002] # EGYPTIAN HIEROGLYPH S034
+132FA ; [.510D.0020.0002] # EGYPTIAN HIEROGLYPH S035
+132FB ; [.510E.0020.0002] # EGYPTIAN HIEROGLYPH S035A
+132FC ; [.510F.0020.0002] # EGYPTIAN HIEROGLYPH S036
+132FD ; [.5110.0020.0002] # EGYPTIAN HIEROGLYPH S037
+132FE ; [.5111.0020.0002] # EGYPTIAN HIEROGLYPH S038
+132FF ; [.5112.0020.0002] # EGYPTIAN HIEROGLYPH S039
+13300 ; [.5113.0020.0002] # EGYPTIAN HIEROGLYPH S040
+13301 ; [.5114.0020.0002] # EGYPTIAN HIEROGLYPH S041
+13302 ; [.5115.0020.0002] # EGYPTIAN HIEROGLYPH S042
+13303 ; [.5116.0020.0002] # EGYPTIAN HIEROGLYPH S043
+13304 ; [.5117.0020.0002] # EGYPTIAN HIEROGLYPH S044
+13305 ; [.5118.0020.0002] # EGYPTIAN HIEROGLYPH S045
+13306 ; [.5119.0020.0002] # EGYPTIAN HIEROGLYPH S046
+13307 ; [.511A.0020.0002] # EGYPTIAN HIEROGLYPH T001
+13308 ; [.511B.0020.0002] # EGYPTIAN HIEROGLYPH T002
+13309 ; [.511C.0020.0002] # EGYPTIAN HIEROGLYPH T003
+1330A ; [.511D.0020.0002] # EGYPTIAN HIEROGLYPH T003A
+1330B ; [.511E.0020.0002] # EGYPTIAN HIEROGLYPH T004
+1330C ; [.511F.0020.0002] # EGYPTIAN HIEROGLYPH T005
+1330D ; [.5120.0020.0002] # EGYPTIAN HIEROGLYPH T006
+1330E ; [.5121.0020.0002] # EGYPTIAN HIEROGLYPH T007
+1330F ; [.5122.0020.0002] # EGYPTIAN HIEROGLYPH T007A
+13310 ; [.5123.0020.0002] # EGYPTIAN HIEROGLYPH T008
+13311 ; [.5124.0020.0002] # EGYPTIAN HIEROGLYPH T008A
+13312 ; [.5125.0020.0002] # EGYPTIAN HIEROGLYPH T009
+13313 ; [.5126.0020.0002] # EGYPTIAN HIEROGLYPH T009A
+13314 ; [.5127.0020.0002] # EGYPTIAN HIEROGLYPH T010
+13315 ; [.5128.0020.0002] # EGYPTIAN HIEROGLYPH T011
+13316 ; [.5129.0020.0002] # EGYPTIAN HIEROGLYPH T011A
+13317 ; [.512A.0020.0002] # EGYPTIAN HIEROGLYPH T012
+13318 ; [.512B.0020.0002] # EGYPTIAN HIEROGLYPH T013
+13319 ; [.512C.0020.0002] # EGYPTIAN HIEROGLYPH T014
+1331A ; [.512D.0020.0002] # EGYPTIAN HIEROGLYPH T015
+1331B ; [.512E.0020.0002] # EGYPTIAN HIEROGLYPH T016
+1331C ; [.512F.0020.0002] # EGYPTIAN HIEROGLYPH T016A
+1331D ; [.5130.0020.0002] # EGYPTIAN HIEROGLYPH T017
+1331E ; [.5131.0020.0002] # EGYPTIAN HIEROGLYPH T018
+1331F ; [.5132.0020.0002] # EGYPTIAN HIEROGLYPH T019
+13320 ; [.5133.0020.0002] # EGYPTIAN HIEROGLYPH T020
+13321 ; [.5134.0020.0002] # EGYPTIAN HIEROGLYPH T021
+13322 ; [.5135.0020.0002] # EGYPTIAN HIEROGLYPH T022
+13323 ; [.5136.0020.0002] # EGYPTIAN HIEROGLYPH T023
+13324 ; [.5137.0020.0002] # EGYPTIAN HIEROGLYPH T024
+13325 ; [.5138.0020.0002] # EGYPTIAN HIEROGLYPH T025
+13326 ; [.5139.0020.0002] # EGYPTIAN HIEROGLYPH T026
+13327 ; [.513A.0020.0002] # EGYPTIAN HIEROGLYPH T027
+13328 ; [.513B.0020.0002] # EGYPTIAN HIEROGLYPH T028
+13329 ; [.513C.0020.0002] # EGYPTIAN HIEROGLYPH T029
+1332A ; [.513D.0020.0002] # EGYPTIAN HIEROGLYPH T030
+1332B ; [.513E.0020.0002] # EGYPTIAN HIEROGLYPH T031
+1332C ; [.513F.0020.0002] # EGYPTIAN HIEROGLYPH T032
+1332D ; [.5140.0020.0002] # EGYPTIAN HIEROGLYPH T032A
+1332E ; [.5141.0020.0002] # EGYPTIAN HIEROGLYPH T033
+1332F ; [.5142.0020.0002] # EGYPTIAN HIEROGLYPH T033A
+13330 ; [.5143.0020.0002] # EGYPTIAN HIEROGLYPH T034
+13331 ; [.5144.0020.0002] # EGYPTIAN HIEROGLYPH T035
+13332 ; [.5145.0020.0002] # EGYPTIAN HIEROGLYPH T036
+13333 ; [.5146.0020.0002] # EGYPTIAN HIEROGLYPH U001
+13334 ; [.5147.0020.0002] # EGYPTIAN HIEROGLYPH U002
+13335 ; [.5148.0020.0002] # EGYPTIAN HIEROGLYPH U003
+13336 ; [.5149.0020.0002] # EGYPTIAN HIEROGLYPH U004
+13337 ; [.514A.0020.0002] # EGYPTIAN HIEROGLYPH U005
+13338 ; [.514B.0020.0002] # EGYPTIAN HIEROGLYPH U006
+13339 ; [.514C.0020.0002] # EGYPTIAN HIEROGLYPH U006A
+1333A ; [.514D.0020.0002] # EGYPTIAN HIEROGLYPH U006B
+1333B ; [.514E.0020.0002] # EGYPTIAN HIEROGLYPH U007
+1333C ; [.514F.0020.0002] # EGYPTIAN HIEROGLYPH U008
+1333D ; [.5150.0020.0002] # EGYPTIAN HIEROGLYPH U009
+1333E ; [.5151.0020.0002] # EGYPTIAN HIEROGLYPH U010
+1333F ; [.5152.0020.0002] # EGYPTIAN HIEROGLYPH U011
+13340 ; [.5153.0020.0002] # EGYPTIAN HIEROGLYPH U012
+13341 ; [.5154.0020.0002] # EGYPTIAN HIEROGLYPH U013
+13342 ; [.5155.0020.0002] # EGYPTIAN HIEROGLYPH U014
+13343 ; [.5156.0020.0002] # EGYPTIAN HIEROGLYPH U015
+13344 ; [.5157.0020.0002] # EGYPTIAN HIEROGLYPH U016
+13345 ; [.5158.0020.0002] # EGYPTIAN HIEROGLYPH U017
+13346 ; [.5159.0020.0002] # EGYPTIAN HIEROGLYPH U018
+13347 ; [.515A.0020.0002] # EGYPTIAN HIEROGLYPH U019
+13348 ; [.515B.0020.0002] # EGYPTIAN HIEROGLYPH U020
+13349 ; [.515C.0020.0002] # EGYPTIAN HIEROGLYPH U021
+1334A ; [.515D.0020.0002] # EGYPTIAN HIEROGLYPH U022
+1334B ; [.515E.0020.0002] # EGYPTIAN HIEROGLYPH U023
+1334C ; [.515F.0020.0002] # EGYPTIAN HIEROGLYPH U023A
+1334D ; [.5160.0020.0002] # EGYPTIAN HIEROGLYPH U024
+1334E ; [.5161.0020.0002] # EGYPTIAN HIEROGLYPH U025
+1334F ; [.5162.0020.0002] # EGYPTIAN HIEROGLYPH U026
+13350 ; [.5163.0020.0002] # EGYPTIAN HIEROGLYPH U027
+13351 ; [.5164.0020.0002] # EGYPTIAN HIEROGLYPH U028
+13352 ; [.5165.0020.0002] # EGYPTIAN HIEROGLYPH U029
+13353 ; [.5166.0020.0002] # EGYPTIAN HIEROGLYPH U029A
+13354 ; [.5167.0020.0002] # EGYPTIAN HIEROGLYPH U030
+13355 ; [.5168.0020.0002] # EGYPTIAN HIEROGLYPH U031
+13356 ; [.5169.0020.0002] # EGYPTIAN HIEROGLYPH U032
+13357 ; [.516A.0020.0002] # EGYPTIAN HIEROGLYPH U032A
+13358 ; [.516B.0020.0002] # EGYPTIAN HIEROGLYPH U033
+13359 ; [.516C.0020.0002] # EGYPTIAN HIEROGLYPH U034
+1335A ; [.516D.0020.0002] # EGYPTIAN HIEROGLYPH U035
+1335B ; [.516E.0020.0002] # EGYPTIAN HIEROGLYPH U036
+1335C ; [.516F.0020.0002] # EGYPTIAN HIEROGLYPH U037
+1335D ; [.5170.0020.0002] # EGYPTIAN HIEROGLYPH U038
+1335E ; [.5171.0020.0002] # EGYPTIAN HIEROGLYPH U039
+1335F ; [.5172.0020.0002] # EGYPTIAN HIEROGLYPH U040
+13360 ; [.5173.0020.0002] # EGYPTIAN HIEROGLYPH U041
+13361 ; [.5174.0020.0002] # EGYPTIAN HIEROGLYPH U042
+13362 ; [.5175.0020.0002] # EGYPTIAN HIEROGLYPH V001
+13363 ; [.5176.0020.0002] # EGYPTIAN HIEROGLYPH V001A
+13364 ; [.5177.0020.0002] # EGYPTIAN HIEROGLYPH V001B
+13365 ; [.5178.0020.0002] # EGYPTIAN HIEROGLYPH V001C
+13366 ; [.5179.0020.0002] # EGYPTIAN HIEROGLYPH V001D
+13367 ; [.517A.0020.0002] # EGYPTIAN HIEROGLYPH V001E
+13368 ; [.517B.0020.0002] # EGYPTIAN HIEROGLYPH V001F
+13369 ; [.517C.0020.0002] # EGYPTIAN HIEROGLYPH V001G
+1336A ; [.517D.0020.0002] # EGYPTIAN HIEROGLYPH V001H
+1336B ; [.517E.0020.0002] # EGYPTIAN HIEROGLYPH V001I
+1336C ; [.517F.0020.0002] # EGYPTIAN HIEROGLYPH V002
+1336D ; [.5180.0020.0002] # EGYPTIAN HIEROGLYPH V002A
+1336E ; [.5181.0020.0002] # EGYPTIAN HIEROGLYPH V003
+1336F ; [.5182.0020.0002] # EGYPTIAN HIEROGLYPH V004
+13370 ; [.5183.0020.0002] # EGYPTIAN HIEROGLYPH V005
+13371 ; [.5184.0020.0002] # EGYPTIAN HIEROGLYPH V006
+13372 ; [.5185.0020.0002] # EGYPTIAN HIEROGLYPH V007
+13373 ; [.5186.0020.0002] # EGYPTIAN HIEROGLYPH V007A
+13374 ; [.5187.0020.0002] # EGYPTIAN HIEROGLYPH V007B
+13375 ; [.5188.0020.0002] # EGYPTIAN HIEROGLYPH V008
+13376 ; [.5189.0020.0002] # EGYPTIAN HIEROGLYPH V009
+13377 ; [.518A.0020.0002] # EGYPTIAN HIEROGLYPH V010
+13378 ; [.518B.0020.0002] # EGYPTIAN HIEROGLYPH V011
+13379 ; [.518C.0020.0002] # EGYPTIAN HIEROGLYPH V011A
+1337A ; [.518D.0020.0002] # EGYPTIAN HIEROGLYPH V011B
+1337B ; [.518E.0020.0002] # EGYPTIAN HIEROGLYPH V011C
+1337C ; [.518F.0020.0002] # EGYPTIAN HIEROGLYPH V012
+1337D ; [.5190.0020.0002] # EGYPTIAN HIEROGLYPH V012A
+1337E ; [.5191.0020.0002] # EGYPTIAN HIEROGLYPH V012B
+1337F ; [.5192.0020.0002] # EGYPTIAN HIEROGLYPH V013
+13380 ; [.5193.0020.0002] # EGYPTIAN HIEROGLYPH V014
+13381 ; [.5194.0020.0002] # EGYPTIAN HIEROGLYPH V015
+13382 ; [.5195.0020.0002] # EGYPTIAN HIEROGLYPH V016
+13383 ; [.5196.0020.0002] # EGYPTIAN HIEROGLYPH V017
+13384 ; [.5197.0020.0002] # EGYPTIAN HIEROGLYPH V018
+13385 ; [.5198.0020.0002] # EGYPTIAN HIEROGLYPH V019
+13386 ; [.5199.0020.0002] # EGYPTIAN HIEROGLYPH V020
+13387 ; [.519A.0020.0002] # EGYPTIAN HIEROGLYPH V020A
+13388 ; [.519B.0020.0002] # EGYPTIAN HIEROGLYPH V020B
+13389 ; [.519C.0020.0002] # EGYPTIAN HIEROGLYPH V020C
+1338A ; [.519D.0020.0002] # EGYPTIAN HIEROGLYPH V020D
+1338B ; [.519E.0020.0002] # EGYPTIAN HIEROGLYPH V020E
+1338C ; [.519F.0020.0002] # EGYPTIAN HIEROGLYPH V020F
+1338D ; [.51A0.0020.0002] # EGYPTIAN HIEROGLYPH V020G
+1338E ; [.51A1.0020.0002] # EGYPTIAN HIEROGLYPH V020H
+1338F ; [.51A2.0020.0002] # EGYPTIAN HIEROGLYPH V020I
+13390 ; [.51A3.0020.0002] # EGYPTIAN HIEROGLYPH V020J
+13391 ; [.51A4.0020.0002] # EGYPTIAN HIEROGLYPH V020K
+13392 ; [.51A5.0020.0002] # EGYPTIAN HIEROGLYPH V020L
+13393 ; [.51A6.0020.0002] # EGYPTIAN HIEROGLYPH V021
+13394 ; [.51A7.0020.0002] # EGYPTIAN HIEROGLYPH V022
+13395 ; [.51A8.0020.0002] # EGYPTIAN HIEROGLYPH V023
+13396 ; [.51A9.0020.0002] # EGYPTIAN HIEROGLYPH V023A
+13397 ; [.51AA.0020.0002] # EGYPTIAN HIEROGLYPH V024
+13398 ; [.51AB.0020.0002] # EGYPTIAN HIEROGLYPH V025
+13399 ; [.51AC.0020.0002] # EGYPTIAN HIEROGLYPH V026
+1339A ; [.51AD.0020.0002] # EGYPTIAN HIEROGLYPH V027
+1339B ; [.51AE.0020.0002] # EGYPTIAN HIEROGLYPH V028
+1339C ; [.51AF.0020.0002] # EGYPTIAN HIEROGLYPH V028A
+1339D ; [.51B0.0020.0002] # EGYPTIAN HIEROGLYPH V029
+1339E ; [.51B1.0020.0002] # EGYPTIAN HIEROGLYPH V029A
+1339F ; [.51B2.0020.0002] # EGYPTIAN HIEROGLYPH V030
+133A0 ; [.51B3.0020.0002] # EGYPTIAN HIEROGLYPH V030A
+133A1 ; [.51B4.0020.0002] # EGYPTIAN HIEROGLYPH V031
+133A2 ; [.51B5.0020.0002] # EGYPTIAN HIEROGLYPH V031A
+133A3 ; [.51B6.0020.0002] # EGYPTIAN HIEROGLYPH V032
+133A4 ; [.51B7.0020.0002] # EGYPTIAN HIEROGLYPH V033
+133A5 ; [.51B8.0020.0002] # EGYPTIAN HIEROGLYPH V033A
+133A6 ; [.51B9.0020.0002] # EGYPTIAN HIEROGLYPH V034
+133A7 ; [.51BA.0020.0002] # EGYPTIAN HIEROGLYPH V035
+133A8 ; [.51BB.0020.0002] # EGYPTIAN HIEROGLYPH V036
+133A9 ; [.51BC.0020.0002] # EGYPTIAN HIEROGLYPH V037
+133AA ; [.51BD.0020.0002] # EGYPTIAN HIEROGLYPH V037A
+133AB ; [.51BE.0020.0002] # EGYPTIAN HIEROGLYPH V038
+133AC ; [.51BF.0020.0002] # EGYPTIAN HIEROGLYPH V039
+133AD ; [.51C0.0020.0002] # EGYPTIAN HIEROGLYPH V040
+133AE ; [.51C1.0020.0002] # EGYPTIAN HIEROGLYPH V040A
+133AF ; [.51C2.0020.0002] # EGYPTIAN HIEROGLYPH W001
+133B0 ; [.51C3.0020.0002] # EGYPTIAN HIEROGLYPH W002
+133B1 ; [.51C4.0020.0002] # EGYPTIAN HIEROGLYPH W003
+133B2 ; [.51C5.0020.0002] # EGYPTIAN HIEROGLYPH W003A
+133B3 ; [.51C6.0020.0002] # EGYPTIAN HIEROGLYPH W004
+133B4 ; [.51C7.0020.0002] # EGYPTIAN HIEROGLYPH W005
+133B5 ; [.51C8.0020.0002] # EGYPTIAN HIEROGLYPH W006
+133B6 ; [.51C9.0020.0002] # EGYPTIAN HIEROGLYPH W007
+133B7 ; [.51CA.0020.0002] # EGYPTIAN HIEROGLYPH W008
+133B8 ; [.51CB.0020.0002] # EGYPTIAN HIEROGLYPH W009
+133B9 ; [.51CC.0020.0002] # EGYPTIAN HIEROGLYPH W009A
+133BA ; [.51CD.0020.0002] # EGYPTIAN HIEROGLYPH W010
+133BB ; [.51CE.0020.0002] # EGYPTIAN HIEROGLYPH W010A
+133BC ; [.51CF.0020.0002] # EGYPTIAN HIEROGLYPH W011
+133BD ; [.51D0.0020.0002] # EGYPTIAN HIEROGLYPH W012
+133BE ; [.51D1.0020.0002] # EGYPTIAN HIEROGLYPH W013
+133BF ; [.51D2.0020.0002] # EGYPTIAN HIEROGLYPH W014
+133C0 ; [.51D3.0020.0002] # EGYPTIAN HIEROGLYPH W014A
+133C1 ; [.51D4.0020.0002] # EGYPTIAN HIEROGLYPH W015
+133C2 ; [.51D5.0020.0002] # EGYPTIAN HIEROGLYPH W016
+133C3 ; [.51D6.0020.0002] # EGYPTIAN HIEROGLYPH W017
+133C4 ; [.51D7.0020.0002] # EGYPTIAN HIEROGLYPH W017A
+133C5 ; [.51D8.0020.0002] # EGYPTIAN HIEROGLYPH W018
+133C6 ; [.51D9.0020.0002] # EGYPTIAN HIEROGLYPH W018A
+133C7 ; [.51DA.0020.0002] # EGYPTIAN HIEROGLYPH W019
+133C8 ; [.51DB.0020.0002] # EGYPTIAN HIEROGLYPH W020
+133C9 ; [.51DC.0020.0002] # EGYPTIAN HIEROGLYPH W021
+133CA ; [.51DD.0020.0002] # EGYPTIAN HIEROGLYPH W022
+133CB ; [.51DE.0020.0002] # EGYPTIAN HIEROGLYPH W023
+133CC ; [.51DF.0020.0002] # EGYPTIAN HIEROGLYPH W024
+133CD ; [.51E0.0020.0002] # EGYPTIAN HIEROGLYPH W024A
+133CE ; [.51E1.0020.0002] # EGYPTIAN HIEROGLYPH W025
+133CF ; [.51E2.0020.0002] # EGYPTIAN HIEROGLYPH X001
+133D0 ; [.51E3.0020.0002] # EGYPTIAN HIEROGLYPH X002
+133D1 ; [.51E4.0020.0002] # EGYPTIAN HIEROGLYPH X003
+133D2 ; [.51E5.0020.0002] # EGYPTIAN HIEROGLYPH X004
+133D3 ; [.51E6.0020.0002] # EGYPTIAN HIEROGLYPH X004A
+133D4 ; [.51E7.0020.0002] # EGYPTIAN HIEROGLYPH X004B
+133D5 ; [.51E8.0020.0002] # EGYPTIAN HIEROGLYPH X005
+133D6 ; [.51E9.0020.0002] # EGYPTIAN HIEROGLYPH X006
+133D7 ; [.51EA.0020.0002] # EGYPTIAN HIEROGLYPH X006A
+133D8 ; [.51EB.0020.0002] # EGYPTIAN HIEROGLYPH X007
+133D9 ; [.51EC.0020.0002] # EGYPTIAN HIEROGLYPH X008
+133DA ; [.51ED.0020.0002] # EGYPTIAN HIEROGLYPH X008A
+133DB ; [.51EE.0020.0002] # EGYPTIAN HIEROGLYPH Y001
+133DC ; [.51EF.0020.0002] # EGYPTIAN HIEROGLYPH Y001A
+133DD ; [.51F0.0020.0002] # EGYPTIAN HIEROGLYPH Y002
+133DE ; [.51F1.0020.0002] # EGYPTIAN HIEROGLYPH Y003
+133DF ; [.51F2.0020.0002] # EGYPTIAN HIEROGLYPH Y004
+133E0 ; [.51F3.0020.0002] # EGYPTIAN HIEROGLYPH Y005
+133E1 ; [.51F4.0020.0002] # EGYPTIAN HIEROGLYPH Y006
+133E2 ; [.51F5.0020.0002] # EGYPTIAN HIEROGLYPH Y007
+133E3 ; [.51F6.0020.0002] # EGYPTIAN HIEROGLYPH Y008
+133E4 ; [.51F7.0020.0002] # EGYPTIAN HIEROGLYPH Z001
+133E5 ; [.51F8.0020.0002] # EGYPTIAN HIEROGLYPH Z002
+133E6 ; [.51F9.0020.0002] # EGYPTIAN HIEROGLYPH Z002A
+133E7 ; [.51FA.0020.0002] # EGYPTIAN HIEROGLYPH Z002B
+133E8 ; [.51FB.0020.0002] # EGYPTIAN HIEROGLYPH Z002C
+133E9 ; [.51FC.0020.0002] # EGYPTIAN HIEROGLYPH Z002D
+133EA ; [.51FD.0020.0002] # EGYPTIAN HIEROGLYPH Z003
+133EB ; [.51FE.0020.0002] # EGYPTIAN HIEROGLYPH Z003A
+133EC ; [.51FF.0020.0002] # EGYPTIAN HIEROGLYPH Z003B
+133ED ; [.5200.0020.0002] # EGYPTIAN HIEROGLYPH Z004
+133EE ; [.5201.0020.0002] # EGYPTIAN HIEROGLYPH Z004A
+133EF ; [.5202.0020.0002] # EGYPTIAN HIEROGLYPH Z005
+133F0 ; [.5203.0020.0002] # EGYPTIAN HIEROGLYPH Z005A
+133F1 ; [.5204.0020.0002] # EGYPTIAN HIEROGLYPH Z006
+133F2 ; [.5205.0020.0002] # EGYPTIAN HIEROGLYPH Z007
+133F3 ; [.5206.0020.0002] # EGYPTIAN HIEROGLYPH Z008
+133F4 ; [.5207.0020.0002] # EGYPTIAN HIEROGLYPH Z009
+133F5 ; [.5208.0020.0002] # EGYPTIAN HIEROGLYPH Z010
+133F6 ; [.5209.0020.0002] # EGYPTIAN HIEROGLYPH Z011
+133F7 ; [.520A.0020.0002] # EGYPTIAN HIEROGLYPH Z012
+133F8 ; [.520B.0020.0002] # EGYPTIAN HIEROGLYPH Z013
+133F9 ; [.520C.0020.0002] # EGYPTIAN HIEROGLYPH Z014
+133FA ; [.520D.0020.0002] # EGYPTIAN HIEROGLYPH Z015
+133FB ; [.520E.0020.0002] # EGYPTIAN HIEROGLYPH Z015A
+133FC ; [.520F.0020.0002] # EGYPTIAN HIEROGLYPH Z015B
+133FD ; [.5210.0020.0002] # EGYPTIAN HIEROGLYPH Z015C
+133FE ; [.5211.0020.0002] # EGYPTIAN HIEROGLYPH Z015D
+133FF ; [.5212.0020.0002] # EGYPTIAN HIEROGLYPH Z015E
+13400 ; [.5213.0020.0002] # EGYPTIAN HIEROGLYPH Z015F
+13401 ; [.5214.0020.0002] # EGYPTIAN HIEROGLYPH Z015G
+13402 ; [.5215.0020.0002] # EGYPTIAN HIEROGLYPH Z015H
+13403 ; [.5216.0020.0002] # EGYPTIAN HIEROGLYPH Z015I
+13404 ; [.5217.0020.0002] # EGYPTIAN HIEROGLYPH Z016
+13405 ; [.5218.0020.0002] # EGYPTIAN HIEROGLYPH Z016A
+13406 ; [.5219.0020.0002] # EGYPTIAN HIEROGLYPH Z016B
+13407 ; [.521A.0020.0002] # EGYPTIAN HIEROGLYPH Z016C
+13408 ; [.521B.0020.0002] # EGYPTIAN HIEROGLYPH Z016D
+13409 ; [.521C.0020.0002] # EGYPTIAN HIEROGLYPH Z016E
+1340A ; [.521D.0020.0002] # EGYPTIAN HIEROGLYPH Z016F
+1340B ; [.521E.0020.0002] # EGYPTIAN HIEROGLYPH Z016G
+1340C ; [.521F.0020.0002] # EGYPTIAN HIEROGLYPH Z016H
+1340D ; [.5220.0020.0002] # EGYPTIAN HIEROGLYPH AA001
+1340E ; [.5221.0020.0002] # EGYPTIAN HIEROGLYPH AA002
+1340F ; [.5222.0020.0002] # EGYPTIAN HIEROGLYPH AA003
+13410 ; [.5223.0020.0002] # EGYPTIAN HIEROGLYPH AA004
+13411 ; [.5224.0020.0002] # EGYPTIAN HIEROGLYPH AA005
+13412 ; [.5225.0020.0002] # EGYPTIAN HIEROGLYPH AA006
+13413 ; [.5226.0020.0002] # EGYPTIAN HIEROGLYPH AA007
+13414 ; [.5227.0020.0002] # EGYPTIAN HIEROGLYPH AA007A
+13415 ; [.5228.0020.0002] # EGYPTIAN HIEROGLYPH AA007B
+13416 ; [.5229.0020.0002] # EGYPTIAN HIEROGLYPH AA008
+13417 ; [.522A.0020.0002] # EGYPTIAN HIEROGLYPH AA009
+13418 ; [.522B.0020.0002] # EGYPTIAN HIEROGLYPH AA010
+13419 ; [.522C.0020.0002] # EGYPTIAN HIEROGLYPH AA011
+1341A ; [.522D.0020.0002] # EGYPTIAN HIEROGLYPH AA012
+1341B ; [.522E.0020.0002] # EGYPTIAN HIEROGLYPH AA013
+1341C ; [.522F.0020.0002] # EGYPTIAN HIEROGLYPH AA014
+1341D ; [.5230.0020.0002] # EGYPTIAN HIEROGLYPH AA015
+1341E ; [.5231.0020.0002] # EGYPTIAN HIEROGLYPH AA016
+1341F ; [.5232.0020.0002] # EGYPTIAN HIEROGLYPH AA017
+13420 ; [.5233.0020.0002] # EGYPTIAN HIEROGLYPH AA018
+13421 ; [.5234.0020.0002] # EGYPTIAN HIEROGLYPH AA019
+13422 ; [.5235.0020.0002] # EGYPTIAN HIEROGLYPH AA020
+13423 ; [.5236.0020.0002] # EGYPTIAN HIEROGLYPH AA021
+13424 ; [.5237.0020.0002] # EGYPTIAN HIEROGLYPH AA022
+13425 ; [.5238.0020.0002] # EGYPTIAN HIEROGLYPH AA023
+13426 ; [.5239.0020.0002] # EGYPTIAN HIEROGLYPH AA024
+13427 ; [.523A.0020.0002] # EGYPTIAN HIEROGLYPH AA025
+13428 ; [.523B.0020.0002] # EGYPTIAN HIEROGLYPH AA026
+13429 ; [.523C.0020.0002] # EGYPTIAN HIEROGLYPH AA027
+1342A ; [.523D.0020.0002] # EGYPTIAN HIEROGLYPH AA028
+1342B ; [.523E.0020.0002] # EGYPTIAN HIEROGLYPH AA029
+1342C ; [.523F.0020.0002] # EGYPTIAN HIEROGLYPH AA030
+1342D ; [.5240.0020.0002] # EGYPTIAN HIEROGLYPH AA031
+1342E ; [.5241.0020.0002] # EGYPTIAN HIEROGLYPH AA032
+109A0 ; [.5242.0020.0002] # MEROITIC CURSIVE LETTER A
+10980 ; [.5242.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER A
+109A1 ; [.5243.0020.0002] # MEROITIC CURSIVE LETTER E
+10981 ; [.5243.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER E
+109A2 ; [.5244.0020.0002] # MEROITIC CURSIVE LETTER I
+10982 ; [.5244.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER I
+109A3 ; [.5245.0020.0002] # MEROITIC CURSIVE LETTER O
+10983 ; [.5245.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER O
+109A4 ; [.5246.0020.0002] # MEROITIC CURSIVE LETTER YA
+10984 ; [.5246.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER YA
+109A5 ; [.5247.0020.0002] # MEROITIC CURSIVE LETTER WA
+10985 ; [.5247.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER WA
+109A6 ; [.5248.0020.0002] # MEROITIC CURSIVE LETTER BA
+10986 ; [.5248.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER BA
+10987 ; [.5248.0020.0004][.0000.0111.0004] # MEROITIC HIEROGLYPHIC LETTER BA-2
+109A7 ; [.5249.0020.0002] # MEROITIC CURSIVE LETTER PA
+10988 ; [.5249.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER PA
+109A8 ; [.524A.0020.0002] # MEROITIC CURSIVE LETTER MA
+10989 ; [.524A.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER MA
+109A9 ; [.524B.0020.0002] # MEROITIC CURSIVE LETTER NA
+1098A ; [.524B.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER NA
+1098B ; [.524B.0020.0004][.0000.0111.0004] # MEROITIC HIEROGLYPHIC LETTER NA-2
+109AA ; [.524C.0020.0002] # MEROITIC CURSIVE LETTER NE
+1098C ; [.524C.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER NE
+1098D ; [.524C.0020.0004][.0000.0111.0004] # MEROITIC HIEROGLYPHIC LETTER NE-2
+109AB ; [.524D.0020.0002] # MEROITIC CURSIVE LETTER RA
+1098E ; [.524D.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER RA
+1098F ; [.524D.0020.0004][.0000.0111.0004] # MEROITIC HIEROGLYPHIC LETTER RA-2
+109AC ; [.524E.0020.0002] # MEROITIC CURSIVE LETTER LA
+10990 ; [.524E.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER LA
+109AD ; [.524F.0020.0002] # MEROITIC CURSIVE LETTER KHA
+10991 ; [.524F.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER KHA
+109AE ; [.5250.0020.0002] # MEROITIC CURSIVE LETTER HHA
+10992 ; [.5250.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER HHA
+109AF ; [.5251.0020.0002] # MEROITIC CURSIVE LETTER SA
+109B0 ; [.5251.0020.0004][.0000.0110.0004] # MEROITIC CURSIVE LETTER ARCHAIC SA
+10993 ; [.5251.0020.0004][.0000.0111.0004] # MEROITIC HIEROGLYPHIC LETTER SA
+10994 ; [.5251.0020.0004][.0000.0112.0004] # MEROITIC HIEROGLYPHIC LETTER SA-2
+109B1 ; [.5252.0020.0002] # MEROITIC CURSIVE LETTER SE
+10995 ; [.5252.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER SE
+109B2 ; [.5253.0020.0002] # MEROITIC CURSIVE LETTER KA
+10996 ; [.5253.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER KA
+109B3 ; [.5254.0020.0002] # MEROITIC CURSIVE LETTER QA
+10997 ; [.5254.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER QA
+109B4 ; [.5255.0020.0002] # MEROITIC CURSIVE LETTER TA
+10998 ; [.5255.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER TA
+10999 ; [.5255.0020.0004][.0000.0111.0004] # MEROITIC HIEROGLYPHIC LETTER TA-2
+109B5 ; [.5256.0020.0002] # MEROITIC CURSIVE LETTER TE
+1099A ; [.5256.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER TE
+1099B ; [.5256.0020.0004][.0000.0111.0004] # MEROITIC HIEROGLYPHIC LETTER TE-2
+109B6 ; [.5257.0020.0002] # MEROITIC CURSIVE LETTER TO
+1099C ; [.5257.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER TO
+109B7 ; [.5258.0020.0002] # MEROITIC CURSIVE LETTER DA
+1099D ; [.5258.0020.0004][.0000.0110.0004] # MEROITIC HIEROGLYPHIC LETTER DA
+109BE ; [.5259.0020.0002] # MEROITIC CURSIVE LOGOGRAM RMT
+109BF ; [.525A.0020.0002] # MEROITIC CURSIVE LOGOGRAM IMN
+1099E ; [.525B.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ
+1099F ; [.525C.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+14400 ; [.525D.0020.0002] # ANATOLIAN HIEROGLYPH A001
+14401 ; [.525E.0020.0002] # ANATOLIAN HIEROGLYPH A002
+14402 ; [.525F.0020.0002] # ANATOLIAN HIEROGLYPH A003
+14403 ; [.5260.0020.0002] # ANATOLIAN HIEROGLYPH A004
+14404 ; [.5261.0020.0002] # ANATOLIAN HIEROGLYPH A005
+14405 ; [.5262.0020.0002] # ANATOLIAN HIEROGLYPH A006
+14406 ; [.5263.0020.0002] # ANATOLIAN HIEROGLYPH A007
+14407 ; [.5264.0020.0002] # ANATOLIAN HIEROGLYPH A008
+14408 ; [.5265.0020.0002] # ANATOLIAN HIEROGLYPH A009
+14409 ; [.5266.0020.0002] # ANATOLIAN HIEROGLYPH A010
+1440A ; [.5267.0020.0002] # ANATOLIAN HIEROGLYPH A010A
+1440B ; [.5268.0020.0002] # ANATOLIAN HIEROGLYPH A011
+1440C ; [.5269.0020.0002] # ANATOLIAN HIEROGLYPH A012
+1440D ; [.526A.0020.0002] # ANATOLIAN HIEROGLYPH A013
+1440E ; [.526B.0020.0002] # ANATOLIAN HIEROGLYPH A014
+1440F ; [.526C.0020.0002] # ANATOLIAN HIEROGLYPH A015
+14410 ; [.526D.0020.0002] # ANATOLIAN HIEROGLYPH A016
+14411 ; [.526E.0020.0002] # ANATOLIAN HIEROGLYPH A017
+14412 ; [.526F.0020.0002] # ANATOLIAN HIEROGLYPH A018
+14413 ; [.5270.0020.0002] # ANATOLIAN HIEROGLYPH A019
+14414 ; [.5271.0020.0002] # ANATOLIAN HIEROGLYPH A020
+14415 ; [.5272.0020.0002] # ANATOLIAN HIEROGLYPH A021
+14416 ; [.5273.0020.0002] # ANATOLIAN HIEROGLYPH A022
+14417 ; [.5274.0020.0002] # ANATOLIAN HIEROGLYPH A023
+14418 ; [.5275.0020.0002] # ANATOLIAN HIEROGLYPH A024
+14419 ; [.5276.0020.0002] # ANATOLIAN HIEROGLYPH A025
+1441A ; [.5277.0020.0002] # ANATOLIAN HIEROGLYPH A026
+1441B ; [.5278.0020.0002] # ANATOLIAN HIEROGLYPH A026A
+1441C ; [.5279.0020.0002] # ANATOLIAN HIEROGLYPH A027
+1441D ; [.527A.0020.0002] # ANATOLIAN HIEROGLYPH A028
+1441E ; [.527B.0020.0002] # ANATOLIAN HIEROGLYPH A029
+1441F ; [.527C.0020.0002] # ANATOLIAN HIEROGLYPH A030
+14420 ; [.527D.0020.0002] # ANATOLIAN HIEROGLYPH A031
+14421 ; [.527E.0020.0002] # ANATOLIAN HIEROGLYPH A032
+14422 ; [.527F.0020.0002] # ANATOLIAN HIEROGLYPH A033
+14423 ; [.5280.0020.0002] # ANATOLIAN HIEROGLYPH A034
+14424 ; [.5281.0020.0002] # ANATOLIAN HIEROGLYPH A035
+14425 ; [.5282.0020.0002] # ANATOLIAN HIEROGLYPH A036
+14426 ; [.5283.0020.0002] # ANATOLIAN HIEROGLYPH A037
+14427 ; [.5284.0020.0002] # ANATOLIAN HIEROGLYPH A038
+14428 ; [.5285.0020.0002] # ANATOLIAN HIEROGLYPH A039
+14429 ; [.5286.0020.0002] # ANATOLIAN HIEROGLYPH A039A
+1442A ; [.5287.0020.0002] # ANATOLIAN HIEROGLYPH A040
+1442B ; [.5288.0020.0002] # ANATOLIAN HIEROGLYPH A041
+1442C ; [.5289.0020.0002] # ANATOLIAN HIEROGLYPH A041A
+1442D ; [.528A.0020.0002] # ANATOLIAN HIEROGLYPH A042
+1442E ; [.528B.0020.0002] # ANATOLIAN HIEROGLYPH A043
+1442F ; [.528C.0020.0002] # ANATOLIAN HIEROGLYPH A044
+14430 ; [.528D.0020.0002] # ANATOLIAN HIEROGLYPH A045
+14431 ; [.528E.0020.0002] # ANATOLIAN HIEROGLYPH A045A
+14432 ; [.528F.0020.0002] # ANATOLIAN HIEROGLYPH A046
+14433 ; [.5290.0020.0002] # ANATOLIAN HIEROGLYPH A046A
+14434 ; [.5291.0020.0002] # ANATOLIAN HIEROGLYPH A046B
+14435 ; [.5292.0020.0002] # ANATOLIAN HIEROGLYPH A047
+14436 ; [.5293.0020.0002] # ANATOLIAN HIEROGLYPH A048
+14437 ; [.5294.0020.0002] # ANATOLIAN HIEROGLYPH A049
+14438 ; [.5295.0020.0002] # ANATOLIAN HIEROGLYPH A050
+14439 ; [.5296.0020.0002] # ANATOLIAN HIEROGLYPH A051
+1443A ; [.5297.0020.0002] # ANATOLIAN HIEROGLYPH A052
+1443B ; [.5298.0020.0002] # ANATOLIAN HIEROGLYPH A053
+1443C ; [.5299.0020.0002] # ANATOLIAN HIEROGLYPH A054
+1443D ; [.529A.0020.0002] # ANATOLIAN HIEROGLYPH A055
+1443E ; [.529B.0020.0002] # ANATOLIAN HIEROGLYPH A056
+1443F ; [.529C.0020.0002] # ANATOLIAN HIEROGLYPH A057
+14440 ; [.529D.0020.0002] # ANATOLIAN HIEROGLYPH A058
+14441 ; [.529E.0020.0002] # ANATOLIAN HIEROGLYPH A059
+14442 ; [.529F.0020.0002] # ANATOLIAN HIEROGLYPH A060
+14443 ; [.52A0.0020.0002] # ANATOLIAN HIEROGLYPH A061
+14444 ; [.52A1.0020.0002] # ANATOLIAN HIEROGLYPH A062
+14445 ; [.52A2.0020.0002] # ANATOLIAN HIEROGLYPH A063
+14446 ; [.52A3.0020.0002] # ANATOLIAN HIEROGLYPH A064
+14447 ; [.52A4.0020.0002] # ANATOLIAN HIEROGLYPH A065
+14448 ; [.52A5.0020.0002] # ANATOLIAN HIEROGLYPH A066
+14449 ; [.52A6.0020.0002] # ANATOLIAN HIEROGLYPH A066A
+1444A ; [.52A7.0020.0002] # ANATOLIAN HIEROGLYPH A066B
+1444B ; [.52A8.0020.0002] # ANATOLIAN HIEROGLYPH A066C
+1444C ; [.52A9.0020.0002] # ANATOLIAN HIEROGLYPH A067
+1444D ; [.52AA.0020.0002] # ANATOLIAN HIEROGLYPH A068
+1444E ; [.52AB.0020.0002] # ANATOLIAN HIEROGLYPH A069
+1444F ; [.52AC.0020.0002] # ANATOLIAN HIEROGLYPH A070
+14450 ; [.52AD.0020.0002] # ANATOLIAN HIEROGLYPH A071
+14451 ; [.52AE.0020.0002] # ANATOLIAN HIEROGLYPH A072
+14452 ; [.52AF.0020.0002] # ANATOLIAN HIEROGLYPH A073
+14453 ; [.52B0.0020.0002] # ANATOLIAN HIEROGLYPH A074
+14454 ; [.52B1.0020.0002] # ANATOLIAN HIEROGLYPH A075
+14455 ; [.52B2.0020.0002] # ANATOLIAN HIEROGLYPH A076
+14456 ; [.52B3.0020.0002] # ANATOLIAN HIEROGLYPH A077
+14457 ; [.52B4.0020.0002] # ANATOLIAN HIEROGLYPH A078
+14458 ; [.52B5.0020.0002] # ANATOLIAN HIEROGLYPH A079
+14459 ; [.52B6.0020.0002] # ANATOLIAN HIEROGLYPH A080
+1445A ; [.52B7.0020.0002] # ANATOLIAN HIEROGLYPH A081
+1445B ; [.52B8.0020.0002] # ANATOLIAN HIEROGLYPH A082
+1445C ; [.52B9.0020.0002] # ANATOLIAN HIEROGLYPH A083
+1445D ; [.52BA.0020.0002] # ANATOLIAN HIEROGLYPH A084
+1445E ; [.52BB.0020.0002] # ANATOLIAN HIEROGLYPH A085
+1445F ; [.52BC.0020.0002] # ANATOLIAN HIEROGLYPH A086
+14460 ; [.52BD.0020.0002] # ANATOLIAN HIEROGLYPH A087
+14461 ; [.52BE.0020.0002] # ANATOLIAN HIEROGLYPH A088
+14462 ; [.52BF.0020.0002] # ANATOLIAN HIEROGLYPH A089
+14463 ; [.52C0.0020.0002] # ANATOLIAN HIEROGLYPH A090
+14464 ; [.52C1.0020.0002] # ANATOLIAN HIEROGLYPH A091
+14465 ; [.52C2.0020.0002] # ANATOLIAN HIEROGLYPH A092
+14466 ; [.52C3.0020.0002] # ANATOLIAN HIEROGLYPH A093
+14467 ; [.52C4.0020.0002] # ANATOLIAN HIEROGLYPH A094
+14468 ; [.52C5.0020.0002] # ANATOLIAN HIEROGLYPH A095
+14469 ; [.52C6.0020.0002] # ANATOLIAN HIEROGLYPH A096
+1446A ; [.52C7.0020.0002] # ANATOLIAN HIEROGLYPH A097
+1446B ; [.52C8.0020.0002] # ANATOLIAN HIEROGLYPH A097A
+1446C ; [.52C9.0020.0002] # ANATOLIAN HIEROGLYPH A098
+1446D ; [.52CA.0020.0002] # ANATOLIAN HIEROGLYPH A098A
+1446E ; [.52CB.0020.0002] # ANATOLIAN HIEROGLYPH A099
+1446F ; [.52CC.0020.0002] # ANATOLIAN HIEROGLYPH A100
+14470 ; [.52CD.0020.0002] # ANATOLIAN HIEROGLYPH A100A
+14471 ; [.52CE.0020.0002] # ANATOLIAN HIEROGLYPH A101
+14472 ; [.52CF.0020.0002] # ANATOLIAN HIEROGLYPH A101A
+14473 ; [.52D0.0020.0002] # ANATOLIAN HIEROGLYPH A102
+14474 ; [.52D1.0020.0002] # ANATOLIAN HIEROGLYPH A102A
+14475 ; [.52D2.0020.0002] # ANATOLIAN HIEROGLYPH A103
+14476 ; [.52D3.0020.0002] # ANATOLIAN HIEROGLYPH A104
+14477 ; [.52D4.0020.0002] # ANATOLIAN HIEROGLYPH A104A
+14478 ; [.52D5.0020.0002] # ANATOLIAN HIEROGLYPH A104B
+14479 ; [.52D6.0020.0002] # ANATOLIAN HIEROGLYPH A104C
+1447A ; [.52D7.0020.0002] # ANATOLIAN HIEROGLYPH A105
+1447B ; [.52D8.0020.0002] # ANATOLIAN HIEROGLYPH A105A
+1447C ; [.52D9.0020.0002] # ANATOLIAN HIEROGLYPH A105B
+1447D ; [.52DA.0020.0002] # ANATOLIAN HIEROGLYPH A106
+1447E ; [.52DB.0020.0002] # ANATOLIAN HIEROGLYPH A107
+1447F ; [.52DC.0020.0002] # ANATOLIAN HIEROGLYPH A107A
+14480 ; [.52DD.0020.0002] # ANATOLIAN HIEROGLYPH A107B
+14481 ; [.52DE.0020.0002] # ANATOLIAN HIEROGLYPH A107C
+14482 ; [.52DF.0020.0002] # ANATOLIAN HIEROGLYPH A108
+14483 ; [.52E0.0020.0002] # ANATOLIAN HIEROGLYPH A109
+14484 ; [.52E1.0020.0002] # ANATOLIAN HIEROGLYPH A110
+14485 ; [.52E2.0020.0002] # ANATOLIAN HIEROGLYPH A110A
+14486 ; [.52E3.0020.0002] # ANATOLIAN HIEROGLYPH A110B
+14487 ; [.52E4.0020.0002] # ANATOLIAN HIEROGLYPH A111
+14488 ; [.52E5.0020.0002] # ANATOLIAN HIEROGLYPH A112
+14489 ; [.52E6.0020.0002] # ANATOLIAN HIEROGLYPH A113
+1448A ; [.52E7.0020.0002] # ANATOLIAN HIEROGLYPH A114
+1448B ; [.52E8.0020.0002] # ANATOLIAN HIEROGLYPH A115
+1448C ; [.52E9.0020.0002] # ANATOLIAN HIEROGLYPH A115A
+1448D ; [.52EA.0020.0002] # ANATOLIAN HIEROGLYPH A116
+1448E ; [.52EB.0020.0002] # ANATOLIAN HIEROGLYPH A117
+1448F ; [.52EC.0020.0002] # ANATOLIAN HIEROGLYPH A118
+14490 ; [.52ED.0020.0002] # ANATOLIAN HIEROGLYPH A119
+14491 ; [.52EE.0020.0002] # ANATOLIAN HIEROGLYPH A120
+14492 ; [.52EF.0020.0002] # ANATOLIAN HIEROGLYPH A121
+14493 ; [.52F0.0020.0002] # ANATOLIAN HIEROGLYPH A122
+14494 ; [.52F1.0020.0002] # ANATOLIAN HIEROGLYPH A123
+14495 ; [.52F2.0020.0002] # ANATOLIAN HIEROGLYPH A124
+14496 ; [.52F3.0020.0002] # ANATOLIAN HIEROGLYPH A125
+14497 ; [.52F4.0020.0002] # ANATOLIAN HIEROGLYPH A125A
+14498 ; [.52F5.0020.0002] # ANATOLIAN HIEROGLYPH A126
+14499 ; [.52F6.0020.0002] # ANATOLIAN HIEROGLYPH A127
+1449A ; [.52F7.0020.0002] # ANATOLIAN HIEROGLYPH A128
+1449B ; [.52F8.0020.0002] # ANATOLIAN HIEROGLYPH A129
+1449C ; [.52F9.0020.0002] # ANATOLIAN HIEROGLYPH A130
+1449D ; [.52FA.0020.0002] # ANATOLIAN HIEROGLYPH A131
+1449E ; [.52FB.0020.0002] # ANATOLIAN HIEROGLYPH A132
+1449F ; [.52FC.0020.0002] # ANATOLIAN HIEROGLYPH A133
+144A0 ; [.52FD.0020.0002] # ANATOLIAN HIEROGLYPH A134
+144A1 ; [.52FE.0020.0002] # ANATOLIAN HIEROGLYPH A135
+144A2 ; [.52FF.0020.0002] # ANATOLIAN HIEROGLYPH A135A
+144A3 ; [.5300.0020.0002] # ANATOLIAN HIEROGLYPH A136
+144A4 ; [.5301.0020.0002] # ANATOLIAN HIEROGLYPH A137
+144A5 ; [.5302.0020.0002] # ANATOLIAN HIEROGLYPH A138
+144A6 ; [.5303.0020.0002] # ANATOLIAN HIEROGLYPH A139
+144A7 ; [.5304.0020.0002] # ANATOLIAN HIEROGLYPH A140
+144A8 ; [.5305.0020.0002] # ANATOLIAN HIEROGLYPH A141
+144A9 ; [.5306.0020.0002] # ANATOLIAN HIEROGLYPH A142
+144AA ; [.5307.0020.0002] # ANATOLIAN HIEROGLYPH A143
+144AB ; [.5308.0020.0002] # ANATOLIAN HIEROGLYPH A144
+144AC ; [.5309.0020.0002] # ANATOLIAN HIEROGLYPH A145
+144AD ; [.530A.0020.0002] # ANATOLIAN HIEROGLYPH A146
+144AE ; [.530B.0020.0002] # ANATOLIAN HIEROGLYPH A147
+144AF ; [.530C.0020.0002] # ANATOLIAN HIEROGLYPH A148
+144B0 ; [.530D.0020.0002] # ANATOLIAN HIEROGLYPH A149
+144B1 ; [.530E.0020.0002] # ANATOLIAN HIEROGLYPH A150
+144B2 ; [.530F.0020.0002] # ANATOLIAN HIEROGLYPH A151
+144B3 ; [.5310.0020.0002] # ANATOLIAN HIEROGLYPH A152
+144B4 ; [.5311.0020.0002] # ANATOLIAN HIEROGLYPH A153
+144B5 ; [.5312.0020.0002] # ANATOLIAN HIEROGLYPH A154
+144B6 ; [.5313.0020.0002] # ANATOLIAN HIEROGLYPH A155
+144B7 ; [.5314.0020.0002] # ANATOLIAN HIEROGLYPH A156
+144B8 ; [.5315.0020.0002] # ANATOLIAN HIEROGLYPH A157
+144B9 ; [.5316.0020.0002] # ANATOLIAN HIEROGLYPH A158
+144BA ; [.5317.0020.0002] # ANATOLIAN HIEROGLYPH A159
+144BB ; [.5318.0020.0002] # ANATOLIAN HIEROGLYPH A160
+144BC ; [.5319.0020.0002] # ANATOLIAN HIEROGLYPH A161
+144BD ; [.531A.0020.0002] # ANATOLIAN HIEROGLYPH A162
+144BE ; [.531B.0020.0002] # ANATOLIAN HIEROGLYPH A163
+144BF ; [.531C.0020.0002] # ANATOLIAN HIEROGLYPH A164
+144C0 ; [.531D.0020.0002] # ANATOLIAN HIEROGLYPH A165
+144C1 ; [.531E.0020.0002] # ANATOLIAN HIEROGLYPH A166
+144C2 ; [.531F.0020.0002] # ANATOLIAN HIEROGLYPH A167
+144C3 ; [.5320.0020.0002] # ANATOLIAN HIEROGLYPH A168
+144C4 ; [.5321.0020.0002] # ANATOLIAN HIEROGLYPH A169
+144C5 ; [.5322.0020.0002] # ANATOLIAN HIEROGLYPH A170
+144C6 ; [.5323.0020.0002] # ANATOLIAN HIEROGLYPH A171
+144C7 ; [.5324.0020.0002] # ANATOLIAN HIEROGLYPH A172
+144C8 ; [.5325.0020.0002] # ANATOLIAN HIEROGLYPH A173
+144C9 ; [.5326.0020.0002] # ANATOLIAN HIEROGLYPH A174
+144CA ; [.5327.0020.0002] # ANATOLIAN HIEROGLYPH A175
+144CB ; [.5328.0020.0002] # ANATOLIAN HIEROGLYPH A176
+144CC ; [.5329.0020.0002] # ANATOLIAN HIEROGLYPH A177
+144CD ; [.532A.0020.0002] # ANATOLIAN HIEROGLYPH A178
+144CE ; [.532B.0020.0002] # ANATOLIAN HIEROGLYPH A179
+144CF ; [.532C.0020.0002] # ANATOLIAN HIEROGLYPH A180
+144D0 ; [.532D.0020.0002] # ANATOLIAN HIEROGLYPH A181
+144D1 ; [.532E.0020.0002] # ANATOLIAN HIEROGLYPH A182
+144D2 ; [.532F.0020.0002] # ANATOLIAN HIEROGLYPH A183
+144D3 ; [.5330.0020.0002] # ANATOLIAN HIEROGLYPH A184
+144D4 ; [.5331.0020.0002] # ANATOLIAN HIEROGLYPH A185
+144D5 ; [.5332.0020.0002] # ANATOLIAN HIEROGLYPH A186
+144D6 ; [.5333.0020.0002] # ANATOLIAN HIEROGLYPH A187
+144D7 ; [.5334.0020.0002] # ANATOLIAN HIEROGLYPH A188
+144D8 ; [.5335.0020.0002] # ANATOLIAN HIEROGLYPH A189
+144D9 ; [.5336.0020.0002] # ANATOLIAN HIEROGLYPH A190
+144DA ; [.5337.0020.0002] # ANATOLIAN HIEROGLYPH A191
+144DB ; [.5338.0020.0002] # ANATOLIAN HIEROGLYPH A192
+144DC ; [.5339.0020.0002] # ANATOLIAN HIEROGLYPH A193
+144DD ; [.533A.0020.0002] # ANATOLIAN HIEROGLYPH A194
+144DE ; [.533B.0020.0002] # ANATOLIAN HIEROGLYPH A195
+144DF ; [.533C.0020.0002] # ANATOLIAN HIEROGLYPH A196
+144E0 ; [.533D.0020.0002] # ANATOLIAN HIEROGLYPH A197
+144E1 ; [.533E.0020.0002] # ANATOLIAN HIEROGLYPH A198
+144E2 ; [.533F.0020.0002] # ANATOLIAN HIEROGLYPH A199
+144E3 ; [.5340.0020.0002] # ANATOLIAN HIEROGLYPH A200
+144E4 ; [.5341.0020.0002] # ANATOLIAN HIEROGLYPH A201
+144E5 ; [.5342.0020.0002] # ANATOLIAN HIEROGLYPH A202
+144E6 ; [.5343.0020.0002] # ANATOLIAN HIEROGLYPH A202A
+144E7 ; [.5344.0020.0002] # ANATOLIAN HIEROGLYPH A202B
+144E8 ; [.5345.0020.0002] # ANATOLIAN HIEROGLYPH A203
+144E9 ; [.5346.0020.0002] # ANATOLIAN HIEROGLYPH A204
+144EA ; [.5347.0020.0002] # ANATOLIAN HIEROGLYPH A205
+144EB ; [.5348.0020.0002] # ANATOLIAN HIEROGLYPH A206
+144EC ; [.5349.0020.0002] # ANATOLIAN HIEROGLYPH A207
+144ED ; [.534A.0020.0002] # ANATOLIAN HIEROGLYPH A207A
+144EE ; [.534B.0020.0002] # ANATOLIAN HIEROGLYPH A208
+144EF ; [.534C.0020.0002] # ANATOLIAN HIEROGLYPH A209
+144F0 ; [.534D.0020.0002] # ANATOLIAN HIEROGLYPH A209A
+144F1 ; [.534E.0020.0002] # ANATOLIAN HIEROGLYPH A210
+144F2 ; [.534F.0020.0002] # ANATOLIAN HIEROGLYPH A211
+144F3 ; [.5350.0020.0002] # ANATOLIAN HIEROGLYPH A212
+144F4 ; [.5351.0020.0002] # ANATOLIAN HIEROGLYPH A213
+144F5 ; [.5352.0020.0002] # ANATOLIAN HIEROGLYPH A214
+144F6 ; [.5353.0020.0002] # ANATOLIAN HIEROGLYPH A215
+144F7 ; [.5354.0020.0002] # ANATOLIAN HIEROGLYPH A215A
+144F8 ; [.5355.0020.0002] # ANATOLIAN HIEROGLYPH A216
+144F9 ; [.5356.0020.0002] # ANATOLIAN HIEROGLYPH A216A
+144FA ; [.5357.0020.0002] # ANATOLIAN HIEROGLYPH A217
+144FB ; [.5358.0020.0002] # ANATOLIAN HIEROGLYPH A218
+144FC ; [.5359.0020.0002] # ANATOLIAN HIEROGLYPH A219
+144FD ; [.535A.0020.0002] # ANATOLIAN HIEROGLYPH A220
+144FE ; [.535B.0020.0002] # ANATOLIAN HIEROGLYPH A221
+144FF ; [.535C.0020.0002] # ANATOLIAN HIEROGLYPH A222
+14500 ; [.535D.0020.0002] # ANATOLIAN HIEROGLYPH A223
+14501 ; [.535E.0020.0002] # ANATOLIAN HIEROGLYPH A224
+14502 ; [.535F.0020.0002] # ANATOLIAN HIEROGLYPH A225
+14503 ; [.5360.0020.0002] # ANATOLIAN HIEROGLYPH A226
+14504 ; [.5361.0020.0002] # ANATOLIAN HIEROGLYPH A227
+14505 ; [.5362.0020.0002] # ANATOLIAN HIEROGLYPH A227A
+14506 ; [.5363.0020.0002] # ANATOLIAN HIEROGLYPH A228
+14507 ; [.5364.0020.0002] # ANATOLIAN HIEROGLYPH A229
+14508 ; [.5365.0020.0002] # ANATOLIAN HIEROGLYPH A230
+14509 ; [.5366.0020.0002] # ANATOLIAN HIEROGLYPH A231
+1450A ; [.5367.0020.0002] # ANATOLIAN HIEROGLYPH A232
+1450B ; [.5368.0020.0002] # ANATOLIAN HIEROGLYPH A233
+1450C ; [.5369.0020.0002] # ANATOLIAN HIEROGLYPH A234
+1450D ; [.536A.0020.0002] # ANATOLIAN HIEROGLYPH A235
+1450E ; [.536B.0020.0002] # ANATOLIAN HIEROGLYPH A236
+1450F ; [.536C.0020.0002] # ANATOLIAN HIEROGLYPH A237
+14510 ; [.536D.0020.0002] # ANATOLIAN HIEROGLYPH A238
+14511 ; [.536E.0020.0002] # ANATOLIAN HIEROGLYPH A239
+14512 ; [.536F.0020.0002] # ANATOLIAN HIEROGLYPH A240
+14513 ; [.5370.0020.0002] # ANATOLIAN HIEROGLYPH A241
+14514 ; [.5371.0020.0002] # ANATOLIAN HIEROGLYPH A242
+14515 ; [.5372.0020.0002] # ANATOLIAN HIEROGLYPH A243
+14516 ; [.5373.0020.0002] # ANATOLIAN HIEROGLYPH A244
+14517 ; [.5374.0020.0002] # ANATOLIAN HIEROGLYPH A245
+14518 ; [.5375.0020.0002] # ANATOLIAN HIEROGLYPH A246
+14519 ; [.5376.0020.0002] # ANATOLIAN HIEROGLYPH A247
+1451A ; [.5377.0020.0002] # ANATOLIAN HIEROGLYPH A248
+1451B ; [.5378.0020.0002] # ANATOLIAN HIEROGLYPH A249
+1451C ; [.5379.0020.0002] # ANATOLIAN HIEROGLYPH A250
+1451D ; [.537A.0020.0002] # ANATOLIAN HIEROGLYPH A251
+1451E ; [.537B.0020.0002] # ANATOLIAN HIEROGLYPH A252
+1451F ; [.537C.0020.0002] # ANATOLIAN HIEROGLYPH A253
+14520 ; [.537D.0020.0002] # ANATOLIAN HIEROGLYPH A254
+14521 ; [.537E.0020.0002] # ANATOLIAN HIEROGLYPH A255
+14522 ; [.537F.0020.0002] # ANATOLIAN HIEROGLYPH A256
+14523 ; [.5380.0020.0002] # ANATOLIAN HIEROGLYPH A257
+14524 ; [.5381.0020.0002] # ANATOLIAN HIEROGLYPH A258
+14525 ; [.5382.0020.0002] # ANATOLIAN HIEROGLYPH A259
+14526 ; [.5383.0020.0002] # ANATOLIAN HIEROGLYPH A260
+14527 ; [.5384.0020.0002] # ANATOLIAN HIEROGLYPH A261
+14528 ; [.5385.0020.0002] # ANATOLIAN HIEROGLYPH A262
+14529 ; [.5386.0020.0002] # ANATOLIAN HIEROGLYPH A263
+1452A ; [.5387.0020.0002] # ANATOLIAN HIEROGLYPH A264
+1452B ; [.5388.0020.0002] # ANATOLIAN HIEROGLYPH A265
+1452C ; [.5389.0020.0002] # ANATOLIAN HIEROGLYPH A266
+1452D ; [.538A.0020.0002] # ANATOLIAN HIEROGLYPH A267
+1452E ; [.538B.0020.0002] # ANATOLIAN HIEROGLYPH A267A
+1452F ; [.538C.0020.0002] # ANATOLIAN HIEROGLYPH A268
+14530 ; [.538D.0020.0002] # ANATOLIAN HIEROGLYPH A269
+14531 ; [.538E.0020.0002] # ANATOLIAN HIEROGLYPH A270
+14532 ; [.538F.0020.0002] # ANATOLIAN HIEROGLYPH A271
+14533 ; [.5390.0020.0002] # ANATOLIAN HIEROGLYPH A272
+14534 ; [.5391.0020.0002] # ANATOLIAN HIEROGLYPH A273
+14535 ; [.5392.0020.0002] # ANATOLIAN HIEROGLYPH A274
+14536 ; [.5393.0020.0002] # ANATOLIAN HIEROGLYPH A275
+14537 ; [.5394.0020.0002] # ANATOLIAN HIEROGLYPH A276
+14538 ; [.5395.0020.0002] # ANATOLIAN HIEROGLYPH A277
+14539 ; [.5396.0020.0002] # ANATOLIAN HIEROGLYPH A278
+1453A ; [.5397.0020.0002] # ANATOLIAN HIEROGLYPH A279
+1453B ; [.5398.0020.0002] # ANATOLIAN HIEROGLYPH A280
+1453C ; [.5399.0020.0002] # ANATOLIAN HIEROGLYPH A281
+1453D ; [.539A.0020.0002] # ANATOLIAN HIEROGLYPH A282
+1453E ; [.539B.0020.0002] # ANATOLIAN HIEROGLYPH A283
+1453F ; [.539C.0020.0002] # ANATOLIAN HIEROGLYPH A284
+14540 ; [.539D.0020.0002] # ANATOLIAN HIEROGLYPH A285
+14541 ; [.539E.0020.0002] # ANATOLIAN HIEROGLYPH A286
+14542 ; [.539F.0020.0002] # ANATOLIAN HIEROGLYPH A287
+14543 ; [.53A0.0020.0002] # ANATOLIAN HIEROGLYPH A288
+14544 ; [.53A1.0020.0002] # ANATOLIAN HIEROGLYPH A289
+14545 ; [.53A2.0020.0002] # ANATOLIAN HIEROGLYPH A289A
+14546 ; [.53A3.0020.0002] # ANATOLIAN HIEROGLYPH A290
+14547 ; [.53A4.0020.0002] # ANATOLIAN HIEROGLYPH A291
+14548 ; [.53A5.0020.0002] # ANATOLIAN HIEROGLYPH A292
+14549 ; [.53A6.0020.0002] # ANATOLIAN HIEROGLYPH A293
+1454A ; [.53A7.0020.0002] # ANATOLIAN HIEROGLYPH A294
+1454B ; [.53A8.0020.0002] # ANATOLIAN HIEROGLYPH A294A
+1454C ; [.53A9.0020.0002] # ANATOLIAN HIEROGLYPH A295
+1454D ; [.53AA.0020.0002] # ANATOLIAN HIEROGLYPH A296
+1454E ; [.53AB.0020.0002] # ANATOLIAN HIEROGLYPH A297
+1454F ; [.53AC.0020.0002] # ANATOLIAN HIEROGLYPH A298
+14550 ; [.53AD.0020.0002] # ANATOLIAN HIEROGLYPH A299
+14551 ; [.53AE.0020.0002] # ANATOLIAN HIEROGLYPH A299A
+14552 ; [.53AF.0020.0002] # ANATOLIAN HIEROGLYPH A300
+14553 ; [.53B0.0020.0002] # ANATOLIAN HIEROGLYPH A301
+14554 ; [.53B1.0020.0002] # ANATOLIAN HIEROGLYPH A302
+14555 ; [.53B2.0020.0002] # ANATOLIAN HIEROGLYPH A303
+14556 ; [.53B3.0020.0002] # ANATOLIAN HIEROGLYPH A304
+14557 ; [.53B4.0020.0002] # ANATOLIAN HIEROGLYPH A305
+14558 ; [.53B5.0020.0002] # ANATOLIAN HIEROGLYPH A306
+14559 ; [.53B6.0020.0002] # ANATOLIAN HIEROGLYPH A307
+1455A ; [.53B7.0020.0002] # ANATOLIAN HIEROGLYPH A308
+1455B ; [.53B8.0020.0002] # ANATOLIAN HIEROGLYPH A309
+1455C ; [.53B9.0020.0002] # ANATOLIAN HIEROGLYPH A309A
+1455D ; [.53BA.0020.0002] # ANATOLIAN HIEROGLYPH A310
+1455E ; [.53BB.0020.0002] # ANATOLIAN HIEROGLYPH A311
+1455F ; [.53BC.0020.0002] # ANATOLIAN HIEROGLYPH A312
+14560 ; [.53BD.0020.0002] # ANATOLIAN HIEROGLYPH A313
+14561 ; [.53BE.0020.0002] # ANATOLIAN HIEROGLYPH A314
+14562 ; [.53BF.0020.0002] # ANATOLIAN HIEROGLYPH A315
+14563 ; [.53C0.0020.0002] # ANATOLIAN HIEROGLYPH A316
+14564 ; [.53C1.0020.0002] # ANATOLIAN HIEROGLYPH A317
+14565 ; [.53C2.0020.0002] # ANATOLIAN HIEROGLYPH A318
+14566 ; [.53C3.0020.0002] # ANATOLIAN HIEROGLYPH A319
+14567 ; [.53C4.0020.0002] # ANATOLIAN HIEROGLYPH A320
+14568 ; [.53C5.0020.0002] # ANATOLIAN HIEROGLYPH A321
+14569 ; [.53C6.0020.0002] # ANATOLIAN HIEROGLYPH A322
+1456A ; [.53C7.0020.0002] # ANATOLIAN HIEROGLYPH A323
+1456B ; [.53C8.0020.0002] # ANATOLIAN HIEROGLYPH A324
+1456C ; [.53C9.0020.0002] # ANATOLIAN HIEROGLYPH A325
+1456D ; [.53CA.0020.0002] # ANATOLIAN HIEROGLYPH A326
+1456E ; [.53CB.0020.0002] # ANATOLIAN HIEROGLYPH A327
+1456F ; [.53CC.0020.0002] # ANATOLIAN HIEROGLYPH A328
+14570 ; [.53CD.0020.0002] # ANATOLIAN HIEROGLYPH A329
+14571 ; [.53CE.0020.0002] # ANATOLIAN HIEROGLYPH A329A
+14572 ; [.53CF.0020.0002] # ANATOLIAN HIEROGLYPH A330
+14573 ; [.53D0.0020.0002] # ANATOLIAN HIEROGLYPH A331
+14574 ; [.53D1.0020.0002] # ANATOLIAN HIEROGLYPH A332A
+14575 ; [.53D2.0020.0002] # ANATOLIAN HIEROGLYPH A332B
+14576 ; [.53D3.0020.0002] # ANATOLIAN HIEROGLYPH A332C
+14577 ; [.53D4.0020.0002] # ANATOLIAN HIEROGLYPH A333
+14578 ; [.53D5.0020.0002] # ANATOLIAN HIEROGLYPH A334
+14579 ; [.53D6.0020.0002] # ANATOLIAN HIEROGLYPH A335
+1457A ; [.53D7.0020.0002] # ANATOLIAN HIEROGLYPH A336
+1457B ; [.53D8.0020.0002] # ANATOLIAN HIEROGLYPH A336A
+1457C ; [.53D9.0020.0002] # ANATOLIAN HIEROGLYPH A336B
+1457D ; [.53DA.0020.0002] # ANATOLIAN HIEROGLYPH A336C
+1457E ; [.53DB.0020.0002] # ANATOLIAN HIEROGLYPH A337
+1457F ; [.53DC.0020.0002] # ANATOLIAN HIEROGLYPH A338
+14580 ; [.53DD.0020.0002] # ANATOLIAN HIEROGLYPH A339
+14581 ; [.53DE.0020.0002] # ANATOLIAN HIEROGLYPH A340
+14582 ; [.53DF.0020.0002] # ANATOLIAN HIEROGLYPH A341
+14583 ; [.53E0.0020.0002] # ANATOLIAN HIEROGLYPH A342
+14584 ; [.53E1.0020.0002] # ANATOLIAN HIEROGLYPH A343
+14585 ; [.53E2.0020.0002] # ANATOLIAN HIEROGLYPH A344
+14586 ; [.53E3.0020.0002] # ANATOLIAN HIEROGLYPH A345
+14587 ; [.53E4.0020.0002] # ANATOLIAN HIEROGLYPH A346
+14588 ; [.53E5.0020.0002] # ANATOLIAN HIEROGLYPH A347
+14589 ; [.53E6.0020.0002] # ANATOLIAN HIEROGLYPH A348
+1458A ; [.53E7.0020.0002] # ANATOLIAN HIEROGLYPH A349
+1458B ; [.53E8.0020.0002] # ANATOLIAN HIEROGLYPH A350
+1458C ; [.53E9.0020.0002] # ANATOLIAN HIEROGLYPH A351
+1458D ; [.53EA.0020.0002] # ANATOLIAN HIEROGLYPH A352
+1458E ; [.53EB.0020.0002] # ANATOLIAN HIEROGLYPH A353
+1458F ; [.53EC.0020.0002] # ANATOLIAN HIEROGLYPH A354
+14590 ; [.53ED.0020.0002] # ANATOLIAN HIEROGLYPH A355
+14591 ; [.53EE.0020.0002] # ANATOLIAN HIEROGLYPH A356
+14592 ; [.53EF.0020.0002] # ANATOLIAN HIEROGLYPH A357
+14593 ; [.53F0.0020.0002] # ANATOLIAN HIEROGLYPH A358
+14594 ; [.53F1.0020.0002] # ANATOLIAN HIEROGLYPH A359
+14595 ; [.53F2.0020.0002] # ANATOLIAN HIEROGLYPH A359A
+14596 ; [.53F3.0020.0002] # ANATOLIAN HIEROGLYPH A360
+14597 ; [.53F4.0020.0002] # ANATOLIAN HIEROGLYPH A361
+14598 ; [.53F5.0020.0002] # ANATOLIAN HIEROGLYPH A362
+14599 ; [.53F6.0020.0002] # ANATOLIAN HIEROGLYPH A363
+1459A ; [.53F7.0020.0002] # ANATOLIAN HIEROGLYPH A364
+1459B ; [.53F8.0020.0002] # ANATOLIAN HIEROGLYPH A364A
+1459C ; [.53F9.0020.0002] # ANATOLIAN HIEROGLYPH A365
+1459D ; [.53FA.0020.0002] # ANATOLIAN HIEROGLYPH A366
+1459E ; [.53FB.0020.0002] # ANATOLIAN HIEROGLYPH A367
+1459F ; [.53FC.0020.0002] # ANATOLIAN HIEROGLYPH A368
+145A0 ; [.53FD.0020.0002] # ANATOLIAN HIEROGLYPH A368A
+145A1 ; [.53FE.0020.0002] # ANATOLIAN HIEROGLYPH A369
+145A2 ; [.53FF.0020.0002] # ANATOLIAN HIEROGLYPH A370
+145A3 ; [.5400.0020.0002] # ANATOLIAN HIEROGLYPH A371
+145A4 ; [.5401.0020.0002] # ANATOLIAN HIEROGLYPH A371A
+145A5 ; [.5402.0020.0002] # ANATOLIAN HIEROGLYPH A372
+145A6 ; [.5403.0020.0002] # ANATOLIAN HIEROGLYPH A373
+145A7 ; [.5404.0020.0002] # ANATOLIAN HIEROGLYPH A374
+145A8 ; [.5405.0020.0002] # ANATOLIAN HIEROGLYPH A375
+145A9 ; [.5406.0020.0002] # ANATOLIAN HIEROGLYPH A376
+145AA ; [.5407.0020.0002] # ANATOLIAN HIEROGLYPH A377
+145AB ; [.5408.0020.0002] # ANATOLIAN HIEROGLYPH A378
+145AC ; [.5409.0020.0002] # ANATOLIAN HIEROGLYPH A379
+145AD ; [.540A.0020.0002] # ANATOLIAN HIEROGLYPH A380
+145AE ; [.540B.0020.0002] # ANATOLIAN HIEROGLYPH A381
+145AF ; [.540C.0020.0002] # ANATOLIAN HIEROGLYPH A381A
+145B0 ; [.540D.0020.0002] # ANATOLIAN HIEROGLYPH A382
+145B1 ; [.540E.0020.0002] # ANATOLIAN HIEROGLYPH A383 RA OR RI
+145B2 ; [.540F.0020.0002] # ANATOLIAN HIEROGLYPH A383A
+145B3 ; [.5410.0020.0002] # ANATOLIAN HIEROGLYPH A384
+145B4 ; [.5411.0020.0002] # ANATOLIAN HIEROGLYPH A385
+145B5 ; [.5412.0020.0002] # ANATOLIAN HIEROGLYPH A386
+145B6 ; [.5413.0020.0002] # ANATOLIAN HIEROGLYPH A386A
+145B7 ; [.5414.0020.0002] # ANATOLIAN HIEROGLYPH A387
+145B8 ; [.5415.0020.0002] # ANATOLIAN HIEROGLYPH A388
+145B9 ; [.5416.0020.0002] # ANATOLIAN HIEROGLYPH A389
+145BA ; [.5417.0020.0002] # ANATOLIAN HIEROGLYPH A390
+145BB ; [.5418.0020.0002] # ANATOLIAN HIEROGLYPH A391
+145BC ; [.5419.0020.0002] # ANATOLIAN HIEROGLYPH A392
+145BD ; [.541A.0020.0002] # ANATOLIAN HIEROGLYPH A393 EIGHT
+145BE ; [.541B.0020.0002] # ANATOLIAN HIEROGLYPH A394
+145BF ; [.541C.0020.0002] # ANATOLIAN HIEROGLYPH A395
+145C0 ; [.541D.0020.0002] # ANATOLIAN HIEROGLYPH A396
+145C1 ; [.541E.0020.0002] # ANATOLIAN HIEROGLYPH A397
+145C2 ; [.541F.0020.0002] # ANATOLIAN HIEROGLYPH A398
+145C3 ; [.5420.0020.0002] # ANATOLIAN HIEROGLYPH A399
+145C4 ; [.5421.0020.0002] # ANATOLIAN HIEROGLYPH A400
+145C5 ; [.5422.0020.0002] # ANATOLIAN HIEROGLYPH A401
+145C6 ; [.5423.0020.0002] # ANATOLIAN HIEROGLYPH A402
+145C7 ; [.5424.0020.0002] # ANATOLIAN HIEROGLYPH A403
+145C8 ; [.5425.0020.0002] # ANATOLIAN HIEROGLYPH A404
+145C9 ; [.5426.0020.0002] # ANATOLIAN HIEROGLYPH A405
+145CA ; [.5427.0020.0002] # ANATOLIAN HIEROGLYPH A406
+145CB ; [.5428.0020.0002] # ANATOLIAN HIEROGLYPH A407
+145CC ; [.5429.0020.0002] # ANATOLIAN HIEROGLYPH A408
+145CD ; [.542A.0020.0002] # ANATOLIAN HIEROGLYPH A409
+145CE ; [.542B.0020.0002] # ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK
+145CF ; [.542C.0020.0002] # ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK
+145D0 ; [.542D.0020.0002] # ANATOLIAN HIEROGLYPH A411
+145D1 ; [.542E.0020.0002] # ANATOLIAN HIEROGLYPH A412
+145D2 ; [.542F.0020.0002] # ANATOLIAN HIEROGLYPH A413
+145D3 ; [.5430.0020.0002] # ANATOLIAN HIEROGLYPH A414
+145D4 ; [.5431.0020.0002] # ANATOLIAN HIEROGLYPH A415
+145D5 ; [.5432.0020.0002] # ANATOLIAN HIEROGLYPH A416
+145D6 ; [.5433.0020.0002] # ANATOLIAN HIEROGLYPH A417
+145D7 ; [.5434.0020.0002] # ANATOLIAN HIEROGLYPH A418
+145D8 ; [.5435.0020.0002] # ANATOLIAN HIEROGLYPH A419
+145D9 ; [.5436.0020.0002] # ANATOLIAN HIEROGLYPH A420
+145DA ; [.5437.0020.0002] # ANATOLIAN HIEROGLYPH A421
+145DB ; [.5438.0020.0002] # ANATOLIAN HIEROGLYPH A422
+145DC ; [.5439.0020.0002] # ANATOLIAN HIEROGLYPH A423
+145DD ; [.543A.0020.0002] # ANATOLIAN HIEROGLYPH A424
+145DE ; [.543B.0020.0002] # ANATOLIAN HIEROGLYPH A425
+145DF ; [.543C.0020.0002] # ANATOLIAN HIEROGLYPH A426
+145E0 ; [.543D.0020.0002] # ANATOLIAN HIEROGLYPH A427
+145E1 ; [.543E.0020.0002] # ANATOLIAN HIEROGLYPH A428
+145E2 ; [.543F.0020.0002] # ANATOLIAN HIEROGLYPH A429
+145E3 ; [.5440.0020.0002] # ANATOLIAN HIEROGLYPH A430
+145E4 ; [.5441.0020.0002] # ANATOLIAN HIEROGLYPH A431
+145E5 ; [.5442.0020.0002] # ANATOLIAN HIEROGLYPH A432
+145E6 ; [.5443.0020.0002] # ANATOLIAN HIEROGLYPH A433
+145E7 ; [.5444.0020.0002] # ANATOLIAN HIEROGLYPH A434
+145E8 ; [.5445.0020.0002] # ANATOLIAN HIEROGLYPH A435
+145E9 ; [.5446.0020.0002] # ANATOLIAN HIEROGLYPH A436
+145EA ; [.5447.0020.0002] # ANATOLIAN HIEROGLYPH A437
+145EB ; [.5448.0020.0002] # ANATOLIAN HIEROGLYPH A438
+145EC ; [.5449.0020.0002] # ANATOLIAN HIEROGLYPH A439
+145ED ; [.544A.0020.0002] # ANATOLIAN HIEROGLYPH A440
+145EE ; [.544B.0020.0002] # ANATOLIAN HIEROGLYPH A441
+145EF ; [.544C.0020.0002] # ANATOLIAN HIEROGLYPH A442
+145F0 ; [.544D.0020.0002] # ANATOLIAN HIEROGLYPH A443
+145F1 ; [.544E.0020.0002] # ANATOLIAN HIEROGLYPH A444
+145F2 ; [.544F.0020.0002] # ANATOLIAN HIEROGLYPH A445
+145F3 ; [.5450.0020.0002] # ANATOLIAN HIEROGLYPH A446
+145F4 ; [.5451.0020.0002] # ANATOLIAN HIEROGLYPH A447
+145F5 ; [.5452.0020.0002] # ANATOLIAN HIEROGLYPH A448
+145F6 ; [.5453.0020.0002] # ANATOLIAN HIEROGLYPH A449
+145F7 ; [.5454.0020.0002] # ANATOLIAN HIEROGLYPH A450
+145F8 ; [.5455.0020.0002] # ANATOLIAN HIEROGLYPH A450A
+145F9 ; [.5456.0020.0002] # ANATOLIAN HIEROGLYPH A451
+145FA ; [.5457.0020.0002] # ANATOLIAN HIEROGLYPH A452
+145FB ; [.5458.0020.0002] # ANATOLIAN HIEROGLYPH A453
+145FC ; [.5459.0020.0002] # ANATOLIAN HIEROGLYPH A454
+145FD ; [.545A.0020.0002] # ANATOLIAN HIEROGLYPH A455
+145FE ; [.545B.0020.0002] # ANATOLIAN HIEROGLYPH A456
+145FF ; [.545C.0020.0002] # ANATOLIAN HIEROGLYPH A457
+14600 ; [.545D.0020.0002] # ANATOLIAN HIEROGLYPH A457A
+14601 ; [.545E.0020.0002] # ANATOLIAN HIEROGLYPH A458
+14602 ; [.545F.0020.0002] # ANATOLIAN HIEROGLYPH A459
+14603 ; [.5460.0020.0002] # ANATOLIAN HIEROGLYPH A460
+14604 ; [.5461.0020.0002] # ANATOLIAN HIEROGLYPH A461
+14605 ; [.5462.0020.0002] # ANATOLIAN HIEROGLYPH A462
+14606 ; [.5463.0020.0002] # ANATOLIAN HIEROGLYPH A463
+14607 ; [.5464.0020.0002] # ANATOLIAN HIEROGLYPH A464
+14608 ; [.5465.0020.0002] # ANATOLIAN HIEROGLYPH A465
+14609 ; [.5466.0020.0002] # ANATOLIAN HIEROGLYPH A466
+1460A ; [.5467.0020.0002] # ANATOLIAN HIEROGLYPH A467
+1460B ; [.5468.0020.0002] # ANATOLIAN HIEROGLYPH A468
+1460C ; [.5469.0020.0002] # ANATOLIAN HIEROGLYPH A469
+1460D ; [.546A.0020.0002] # ANATOLIAN HIEROGLYPH A470
+1460E ; [.546B.0020.0002] # ANATOLIAN HIEROGLYPH A471
+1460F ; [.546C.0020.0002] # ANATOLIAN HIEROGLYPH A472
+14610 ; [.546D.0020.0002] # ANATOLIAN HIEROGLYPH A473
+14611 ; [.546E.0020.0002] # ANATOLIAN HIEROGLYPH A474
+14612 ; [.546F.0020.0002] # ANATOLIAN HIEROGLYPH A475
+14613 ; [.5470.0020.0002] # ANATOLIAN HIEROGLYPH A476
+14614 ; [.5471.0020.0002] # ANATOLIAN HIEROGLYPH A477
+14615 ; [.5472.0020.0002] # ANATOLIAN HIEROGLYPH A478
+14616 ; [.5473.0020.0002] # ANATOLIAN HIEROGLYPH A479
+14617 ; [.5474.0020.0002] # ANATOLIAN HIEROGLYPH A480
+14618 ; [.5475.0020.0002] # ANATOLIAN HIEROGLYPH A481
+14619 ; [.5476.0020.0002] # ANATOLIAN HIEROGLYPH A482
+1461A ; [.5477.0020.0002] # ANATOLIAN HIEROGLYPH A483
+1461B ; [.5478.0020.0002] # ANATOLIAN HIEROGLYPH A484
+1461C ; [.5479.0020.0002] # ANATOLIAN HIEROGLYPH A485
+1461D ; [.547A.0020.0002] # ANATOLIAN HIEROGLYPH A486
+1461E ; [.547B.0020.0002] # ANATOLIAN HIEROGLYPH A487
+1461F ; [.547C.0020.0002] # ANATOLIAN HIEROGLYPH A488
+14620 ; [.547D.0020.0002] # ANATOLIAN HIEROGLYPH A489
+14621 ; [.547E.0020.0002] # ANATOLIAN HIEROGLYPH A490
+14622 ; [.547F.0020.0002] # ANATOLIAN HIEROGLYPH A491
+14623 ; [.5480.0020.0002] # ANATOLIAN HIEROGLYPH A492
+14624 ; [.5481.0020.0002] # ANATOLIAN HIEROGLYPH A493
+14625 ; [.5482.0020.0002] # ANATOLIAN HIEROGLYPH A494
+14626 ; [.5483.0020.0002] # ANATOLIAN HIEROGLYPH A495
+14627 ; [.5484.0020.0002] # ANATOLIAN HIEROGLYPH A496
+14628 ; [.5485.0020.0002] # ANATOLIAN HIEROGLYPH A497
+14629 ; [.5486.0020.0002] # ANATOLIAN HIEROGLYPH A501
+1462A ; [.5487.0020.0002] # ANATOLIAN HIEROGLYPH A502
+1462B ; [.5488.0020.0002] # ANATOLIAN HIEROGLYPH A503
+1462C ; [.5489.0020.0002] # ANATOLIAN HIEROGLYPH A504
+1462D ; [.548A.0020.0002] # ANATOLIAN HIEROGLYPH A505
+1462E ; [.548B.0020.0002] # ANATOLIAN HIEROGLYPH A506
+1462F ; [.548C.0020.0002] # ANATOLIAN HIEROGLYPH A507
+14630 ; [.548D.0020.0002] # ANATOLIAN HIEROGLYPH A508
+14631 ; [.548E.0020.0002] # ANATOLIAN HIEROGLYPH A509
+14632 ; [.548F.0020.0002] # ANATOLIAN HIEROGLYPH A510
+14633 ; [.5490.0020.0002] # ANATOLIAN HIEROGLYPH A511
+14634 ; [.5491.0020.0002] # ANATOLIAN HIEROGLYPH A512
+14635 ; [.5492.0020.0002] # ANATOLIAN HIEROGLYPH A513
+14636 ; [.5493.0020.0002] # ANATOLIAN HIEROGLYPH A514
+14637 ; [.5494.0020.0002] # ANATOLIAN HIEROGLYPH A515
+14638 ; [.5495.0020.0002] # ANATOLIAN HIEROGLYPH A516
+14639 ; [.5496.0020.0002] # ANATOLIAN HIEROGLYPH A517
+1463A ; [.5497.0020.0002] # ANATOLIAN HIEROGLYPH A518
+1463B ; [.5498.0020.0002] # ANATOLIAN HIEROGLYPH A519
+1463C ; [.5499.0020.0002] # ANATOLIAN HIEROGLYPH A520
+1463D ; [.549A.0020.0002] # ANATOLIAN HIEROGLYPH A521
+1463E ; [.549B.0020.0002] # ANATOLIAN HIEROGLYPH A522
+1463F ; [.549C.0020.0002] # ANATOLIAN HIEROGLYPH A523
+14640 ; [.549D.0020.0002] # ANATOLIAN HIEROGLYPH A524
+14641 ; [.549E.0020.0002] # ANATOLIAN HIEROGLYPH A525
+14642 ; [.549F.0020.0002] # ANATOLIAN HIEROGLYPH A526
+14643 ; [.54A0.0020.0002] # ANATOLIAN HIEROGLYPH A527
+14644 ; [.54A1.0020.0002] # ANATOLIAN HIEROGLYPH A528
+14645 ; [.54A2.0020.0002] # ANATOLIAN HIEROGLYPH A529
+14646 ; [.54A3.0020.0002] # ANATOLIAN HIEROGLYPH A530
2F00 ; [.FB40.0020.0004][.CE00.0000.0000] # KANGXI RADICAL ONE
-3220 ; [*030A.0020.0004][.FB40.0020.0004][.CE00.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3220 ; [*0317.0020.0004][.FB40.0020.0004][.CE00.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
3280 ; [.FB40.0020.0006][.CE00.0000.0000] # CIRCLED IDEOGRAPH ONE
3192 ; [.FB40.0020.0014][.CE00.0000.0000] # IDEOGRAPHIC ANNOTATION ONE MARK
1F229 ; [.FB40.0020.001C][.CE00.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4E00
319C ; [.FB40.0020.0014][.CE01.0000.0000] # IDEOGRAPHIC ANNOTATION FOURTH MARK
-3226 ; [*030A.0020.0004][.FB40.0020.0004][.CE03.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3226 ; [*0317.0020.0004][.FB40.0020.0004][.CE03.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
3286 ; [.FB40.0020.0006][.CE03.0000.0000] # CIRCLED IDEOGRAPH SEVEN
-3222 ; [*030A.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-1F241 ; [*036C.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+3222 ; [*0317.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
+1F241 ; [*0379.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
3282 ; [.FB40.0020.0006][.CE09.0000.0000] # CIRCLED IDEOGRAPH THREE
3194 ; [.FB40.0020.0014][.CE09.0000.0000] # IDEOGRAPHIC ANNOTATION THREE MARK
1F22A ; [.FB40.0020.001C][.CE09.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4E09
@@ -26514,7 +29213,7 @@ FA70 ; [.FB40.0020.0002][.CE26.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA70
1F22D ; [.FB40.0020.001C][.CE2D.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4E2D
F905 ; [.FB40.0020.0002][.CE32.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F905
2F02 ; [.FB40.0020.0004][.CE36.0000.0000] # KANGXI RADICAL DOT
-2E80 ; [.FB40.0020.0004][.CE36.0000.0000][.0000.0108.0004] # CJK RADICAL REPEAT
+2E80 ; [.FB40.0020.0004][.CE36.0000.0000][.0000.0110.0004] # CJK RADICAL REPEAT
2F801 ; [.FB40.0020.0002][.CE38.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F801
F95E ; [.FB40.0020.0002][.CE39.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F95E
2F800 ; [.FB40.0020.0002][.CE3D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F800
@@ -26522,21 +29221,21 @@ F95E ; [.FB40.0020.0002][.CE39.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F95E
2F802 ; [.FB40.0020.0002][.CE41.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F802
2F04 ; [.FB40.0020.0004][.CE59.0000.0000] # KANGXI RADICAL SECOND
319A ; [.FB40.0020.0014][.CE59.0000.0000] # IDEOGRAPHIC ANNOTATION SECOND MARK
-2E84 ; [.FB40.0020.0004][.CE59.0000.0000][.0000.0108.0004] # CJK RADICAL SECOND THREE
+2E84 ; [.FB40.0020.0004][.CE59.0000.0000][.0000.0110.0004] # CJK RADICAL SECOND THREE
2E83 ; [.FB40.0020.0004][.CE5A.0000.0000] # CJK RADICAL SECOND TWO
2E82 ; [.FB40.0020.0004][.CE5B.0000.0000] # CJK RADICAL SECOND ONE
-3228 ; [*030A.0020.0004][.FB40.0020.0004][.CE5D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3228 ; [*0317.0020.0004][.FB40.0020.0004][.CE5D.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
3288 ; [.FB40.0020.0006][.CE5D.0000.0000] # CIRCLED IDEOGRAPH NINE
F91B ; [.FB40.0020.0002][.CE82.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91B
2F05 ; [.FB40.0020.0004][.CE85.0000.0000] # KANGXI RADICAL HOOK
F9BA ; [.FB40.0020.0002][.CE86.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9BA
2F06 ; [.FB40.0020.0004][.CE8C.0000.0000] # KANGXI RADICAL TWO
-3221 ; [*030A.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-1F242 ; [*036C.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+3221 ; [*0317.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
+1F242 ; [*0379.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
3281 ; [.FB40.0020.0006][.CE8C.0000.0000] # CIRCLED IDEOGRAPH TWO
3193 ; [.FB40.0020.0014][.CE8C.0000.0000] # IDEOGRAPHIC ANNOTATION TWO MARK
1F214 ; [.FB40.0020.001C][.CE8C.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4E8C
-3224 ; [*030A.0020.0004][.FB40.0020.0004][.CE94.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3224 ; [*0317.0020.0004][.FB40.0020.0004][.CE94.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
3284 ; [.FB40.0020.0006][.CE94.0000.0000] # CIRCLED IDEOGRAPH FIVE
2F07 ; [.FB40.0020.0004][.CEA0.0000.0000] # KANGXI RADICAL LID
1F218 ; [.FB40.0020.001C][.CEA4.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4EA4
@@ -26546,11 +29245,11 @@ F977 ; [.FB40.0020.0002][.CEAE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F977
2E85 ; [.FB40.0020.0004][.CEBB.0000.0000] # CJK RADICAL PERSON
F9FD ; [.FB40.0020.0002][.CEC0.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9FD
2F819 ; [.FB40.0020.0002][.CECC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F819
-3239 ; [*030A.0020.0004][.FB40.0020.0004][.CEE3.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+3239 ; [*0317.0020.0004][.FB40.0020.0004][.CEE3.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
F9A8 ; [.FB40.0020.0002][.CEE4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9A8
-323D ; [*030A.0020.0004][.FB40.0020.0004][.CF01.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+323D ; [*0317.0020.0004][.FB40.0020.0004][.CF01.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
32AD ; [.FB40.0020.0006][.CF01.0000.0000] # CIRCLED IDEOGRAPH ENTERPRISE
-3241 ; [*030A.0020.0004][.FB40.0020.0004][.CF11.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3241 ; [*0317.0020.0004][.FB40.0020.0004][.CF11.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REST
32A1 ; [.FB40.0020.0006][.CF11.0000.0000] # CIRCLED IDEOGRAPH REST
2F804 ; [.FB40.0020.0002][.CF60.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F804
FA73 ; [.FB40.0020.0002][.CF80.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA73
@@ -26581,15 +29280,15 @@ FA32 ; [.FB40.0020.0002][.D14D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA32
FA72 ; [.FB40.0020.0002][.D168.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA72
F978 ; [.FB40.0020.0002][.D169.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F978
2F0B ; [.FB40.0020.0004][.D16B.0000.0000] # KANGXI RADICAL EIGHT
-3227 ; [*030A.0020.0004][.FB40.0020.0004][.D16B.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3227 ; [*0317.0020.0004][.FB40.0020.0004][.D16B.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
3287 ; [.FB40.0020.0006][.D16B.0000.0000] # CIRCLED IDEOGRAPH EIGHT
F9D1 ; [.FB40.0020.0002][.D16D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9D1
-3225 ; [*030A.0020.0004][.FB40.0020.0004][.D16D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3225 ; [*0317.0020.0004][.FB40.0020.0004][.D16D.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
3285 ; [.FB40.0020.0006][.D16D.0000.0000] # CIRCLED IDEOGRAPH SIX
2F811 ; [.FB40.0020.0002][.D177.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F811
FA75 ; [.FB40.0020.0002][.D180.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA75
2F0C ; [.FB40.0020.0004][.D182.0000.0000] # KANGXI RADICAL DOWN BOX
-2E86 ; [.FB40.0020.0004][.D182.0000.0000][.0000.0108.0004] # CJK RADICAL BOX
+2E86 ; [.FB40.0020.0004][.D182.0000.0000][.0000.0110.0004] # CJK RADICAL BOX
2F815 ; [.FB40.0020.0002][.D18D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F815
1F21E ; [.FB40.0020.001C][.D18D.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-518D
2F8D2 ; [.FB40.0020.0002][.D192.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8D2
@@ -26608,11 +29307,11 @@ F955 ; [.FB40.0020.0002][.D1CC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F955
F954 ; [.FB40.0020.0002][.D1DC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F954
FA15 ; [.FB40.0020.0002][.D1DE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA15
2F0F ; [.FB40.0020.0004][.D1E0.0000.0000] # KANGXI RADICAL TABLE
-2E87 ; [.FB40.0020.0004][.D1E0.0000.0000][.0000.0108.0004] # CJK RADICAL TABLE
+2E87 ; [.FB40.0020.0004][.D1E0.0000.0000][.0000.0110.0004] # CJK RADICAL TABLE
2F81D ; [.FB40.0020.0002][.D1F5.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F81D
2F10 ; [.FB40.0020.0004][.D1F5.0000.0000] # KANGXI RADICAL OPEN BOX
2F11 ; [.FB40.0020.0004][.D200.0000.0000] # KANGXI RADICAL KNIFE
-2E88 ; [.FB40.0020.0004][.D200.0000.0000][.0000.0108.0004] # CJK RADICAL KNIFE ONE
+2E88 ; [.FB40.0020.0004][.D200.0000.0000][.0000.0110.0004] # CJK RADICAL KNIFE ONE
2E89 ; [.FB40.0020.0004][.D202.0000.0000] # CJK RADICAL KNIFE TWO
2F81E ; [.FB40.0020.0002][.D203.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F81E
FA00 ; [.FB40.0020.0002][.D207.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA00
@@ -26632,14 +29331,14 @@ F98A ; [.FB40.0020.0002][.D29B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F98A
2F12 ; [.FB40.0020.0004][.D29B.0000.0000] # KANGXI RADICAL POWER
F99D ; [.FB40.0020.0002][.D2A3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F99D
2F992 ; [.FB40.0020.0002][.D2B3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F992
-3238 ; [*030A.0020.0004][.FB40.0020.0004][.D2B4.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3238 ; [*0317.0020.0004][.FB40.0020.0004][.D2B4.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
3298 ; [.FB40.0020.0006][.D2B4.0000.0000] # CIRCLED IDEOGRAPH LABOR
FA76 ; [.FB40.0020.0002][.D2C7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA76
2F825 ; [.FB40.0020.0002][.D2C7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F825
FA33 ; [.FB40.0020.0002][.D2C9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA33
2F826 ; [.FB40.0020.0002][.D2C9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F826
F952 ; [.FB40.0020.0002][.D2D2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F952
-1F247 ; [*036C.0020.0004][.FB40.0020.0004][.D2DD.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F247 ; [*0379.0020.0004][.FB40.0020.0004][.D2DD.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
F92F ; [.FB40.0020.0002][.D2DE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F92F
FA34 ; [.FB40.0020.0002][.D2E4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA34
2F827 ; [.FB40.0020.0002][.D2E4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F827
@@ -26658,20 +29357,20 @@ F963 ; [.FB40.0020.0002][.D317.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F963
F9EB ; [.FB40.0020.0002][.D33F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9EB
2F17 ; [.FB40.0020.0004][.D341.0000.0000] # KANGXI RADICAL TEN
3038 ; [.FB40.0020.0004][.D341.0000.0000] # HANGZHOU NUMERAL TEN
-3229 ; [*030A.0020.0004][.FB40.0020.0004][.D341.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+3229 ; [*0317.0020.0004][.FB40.0020.0004][.D341.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
3289 ; [.FB40.0020.0006][.D341.0000.0000] # CIRCLED IDEOGRAPH TEN
3039 ; [.FB40.0020.0004][.D344.0000.0000] # HANGZHOU NUMERAL TWENTY
303A ; [.FB40.0020.0004][.D345.0000.0000] # HANGZHOU NUMERAL THIRTY
2F82C ; [.FB40.0020.0002][.D349.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F82C
FA35 ; [.FB40.0020.0002][.D351.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA35
2F82D ; [.FB40.0020.0002][.D351.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F82D
-323F ; [*030A.0020.0004][.FB40.0020.0004][.D354.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+323F ; [*0317.0020.0004][.FB40.0020.0004][.D354.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
32AF ; [.FB40.0020.0006][.D354.0000.0000] # CIRCLED IDEOGRAPH ALLIANCE
2F82E ; [.FB40.0020.0002][.D35A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F82E
2F18 ; [.FB40.0020.0004][.D35C.0000.0000] # KANGXI RADICAL DIVINATION
-2E8A ; [.FB40.0020.0004][.D35C.0000.0000][.0000.0108.0004] # CJK RADICAL DIVINATION
+2E8A ; [.FB40.0020.0004][.D35C.0000.0000][.0000.0110.0004] # CJK RADICAL DIVINATION
2F19 ; [.FB40.0020.0004][.D369.0000.0000] # KANGXI RADICAL SEAL
-2E8B ; [.FB40.0020.0004][.D369.0000.0000][.0000.0108.0004] # CJK RADICAL SEAL
+2E8B ; [.FB40.0020.0004][.D369.0000.0000][.0000.0110.0004] # CJK RADICAL SEAL
329E ; [.FB40.0020.0006][.D370.0000.0000] # CIRCLED IDEOGRAPH PRINT
2F82F ; [.FB40.0020.0002][.D373.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F82F
F91C ; [.FB40.0020.0002][.D375.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91C
@@ -26680,7 +29379,7 @@ F91C ; [.FB40.0020.0002][.D375.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91C
2F832 ; [.FB40.0020.0002][.D37F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F832
2F833 ; [.FB40.0020.0002][.D37F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F833
2F1A ; [.FB40.0020.0004][.D382.0000.0000] # KANGXI RADICAL CLIFF
-2E81 ; [.FB40.0020.0004][.D382.0000.0000][.0000.0108.0004] # CJK RADICAL CLIFF
+2E81 ; [.FB40.0020.0004][.D382.0000.0000][.0000.0110.0004] # CJK RADICAL CLIFF
2F1B ; [.FB40.0020.0004][.D3B6.0000.0000] # KANGXI RADICAL PRIVATE
F96B ; [.FB40.0020.0002][.D3C3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F96B
2F1C ; [.FB40.0020.0004][.D3C8.0000.0000] # KANGXI RADICAL AGAIN
@@ -26696,7 +29395,7 @@ F906 ; [.FB40.0020.0002][.D3E5.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F906
1F22E ; [.FB40.0020.001C][.D3F3.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-53F3
2F83B ; [.FB40.0020.0002][.D406.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F83B
1F234 ; [.FB40.0020.001C][.D408.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-5408
-3234 ; [*030A.0020.0004][.FB40.0020.0004][.D40D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+3234 ; [*0317.0020.0004][.FB40.0020.0004][.D40D.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
3294 ; [.FB40.0020.0006][.D40D.0000.0000] # CIRCLED IDEOGRAPH NAME
F9DE ; [.FB40.0020.0002][.D40F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9DE
F9ED ; [.FB40.0020.0002][.D41D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9ED
@@ -26705,7 +29404,7 @@ F9ED ; [.FB40.0020.0002][.D41D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9ED
F980 ; [.FB40.0020.0002][.D442.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F980
2F83E ; [.FB40.0020.0002][.D448.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F83E
2F83F ; [.FB40.0020.0002][.D468.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F83F
-323A ; [*030A.0020.0004][.FB40.0020.0004][.D47C.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+323A ; [*0317.0020.0004][.FB40.0020.0004][.D47C.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
2F83C ; [.FB40.0020.0002][.D49E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F83C
2F840 ; [.FB40.0020.0002][.D4A2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F840
F99E ; [.FB40.0020.0002][.D4BD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F99E
@@ -26734,14 +29433,14 @@ FA37 ; [.FB40.0020.0002][.D606.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA37
FA38 ; [.FB40.0020.0002][.D668.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA38
2F84F ; [.FB40.0020.0002][.D674.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F84F
2F1E ; [.FB40.0020.0004][.D6D7.0000.0000] # KANGXI RADICAL ENCLOSURE
-3223 ; [*030A.0020.0004][.FB40.0020.0004][.D6DB.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+3223 ; [*0317.0020.0004][.FB40.0020.0004][.D6DB.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
3283 ; [.FB40.0020.0006][.D6DB.0000.0000] # CIRCLED IDEOGRAPH FOUR
3195 ; [.FB40.0020.0014][.D6DB.0000.0000] # IDEOGRAPHIC ANNOTATION FOUR MARK
F9A9 ; [.FB40.0020.0002][.D6F9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9A9
2F84B ; [.FB40.0020.0002][.D716.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F84B
2F84D ; [.FB40.0020.0002][.D717.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F84D
2F1F ; [.FB40.0020.0004][.D71F.0000.0000] # KANGXI RADICAL EARTH
-322F ; [*030A.0020.0004][.FB40.0020.0004][.D71F.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+322F ; [*0317.0020.0004][.FB40.0020.0004][.D71F.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
328F ; [.FB40.0020.0006][.D71F.0000.0000] # CIRCLED IDEOGRAPH EARTH
319E ; [.FB40.0020.0014][.D730.0000.0000] # IDEOGRAPHIC ANNOTATION EARTH MARK
2F855 ; [.FB40.0020.0002][.D78B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F855
@@ -26797,11 +29496,11 @@ FA81 ; [.FB40.0020.0002][.DB28.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA81
2F86B ; [.FB40.0020.0002][.DB3E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F86B
2F26 ; [.FB40.0020.0004][.DB50.0000.0000] # KANGXI RADICAL CHILD
1F211 ; [.FB40.0020.001C][.DB57.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-5B57
-323B ; [*030A.0020.0004][.FB40.0020.0004][.DB66.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+323B ; [*0317.0020.0004][.FB40.0020.0004][.DB66.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
32AB ; [.FB40.0020.0006][.DB66.0000.0000] # CIRCLED IDEOGRAPH STUDY
2F27 ; [.FB40.0020.0004][.DB80.0000.0000] # KANGXI RADICAL ROOF
FA04 ; [.FB40.0020.0002][.DB85.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA04
-1F243 ; [*036C.0020.0004][.FB40.0020.0004][.DB89.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F243 ; [*0379.0020.0004][.FB40.0020.0004][.DB89.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
32AA ; [.FB40.0020.0006][.DB97.0000.0000] # CIRCLED IDEOGRAPH RELIGION
2F86D ; [.FB40.0020.0002][.DBC3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F86D
2F86E ; [.FB40.0020.0002][.DBD8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F86E
@@ -26814,14 +29513,14 @@ F9BC ; [.FB40.0020.0002][.DBEE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9BC
2F872 ; [.FB40.0020.0002][.DBFF.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F872
2F873 ; [.FB40.0020.0002][.DC06.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F873
2F29 ; [.FB40.0020.0004][.DC0F.0000.0000] # KANGXI RADICAL SMALL
-2E8C ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.0108.0004] # CJK RADICAL SMALL ONE
-2E8D ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.0109.0004] # CJK RADICAL SMALL TWO
+2E8C ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.0110.0004] # CJK RADICAL SMALL ONE
+2E8D ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.0111.0004] # CJK RADICAL SMALL TWO
2F875 ; [.FB40.0020.0002][.DC22.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F875
2E90 ; [.FB40.0020.0004][.DC22.0000.0000] # CJK RADICAL LAME THREE
2F2A ; [.FB40.0020.0004][.DC22.0000.0000] # KANGXI RADICAL LAME
-2E8E ; [.FB40.0020.0004][.DC22.0000.0000][.0000.0108.0004] # CJK RADICAL LAME ONE
+2E8E ; [.FB40.0020.0004][.DC22.0000.0000][.0000.0110.0004] # CJK RADICAL LAME ONE
2E8F ; [.FB40.0020.0004][.DC23.0000.0000] # CJK RADICAL LAME TWO
-2E91 ; [.FB40.0020.0004][.DC23.0000.0000][.0000.0108.0004] # CJK RADICAL LAME FOUR
+2E91 ; [.FB40.0020.0004][.DC23.0000.0000][.0000.0110.0004] # CJK RADICAL LAME FOUR
2F2B ; [.FB40.0020.0004][.DC38.0000.0000] # KANGXI RADICAL CORPSE
F9BD ; [.FB40.0020.0002][.DC3F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9BD
2F877 ; [.FB40.0020.0002][.DC60.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F877
@@ -26882,7 +29581,7 @@ F943 ; [.FB40.0020.0002][.DF04.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F943
2F894 ; [.FB40.0020.0002][.DF22.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F894
2F895 ; [.FB40.0020.0002][.DF22.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F895
2F39 ; [.FB40.0020.0004][.DF50.0000.0000] # KANGXI RADICAL SNOUT
-2E95 ; [.FB40.0020.0004][.DF50.0000.0000][.0000.0108.0004] # CJK RADICAL SNOUT TWO
+2E95 ; [.FB40.0020.0004][.DF50.0000.0000][.0000.0110.0004] # CJK RADICAL SNOUT TWO
2E94 ; [.FB40.0020.0004][.DF51.0000.0000] # CJK RADICAL SNOUT ONE
2F874 ; [.FB40.0020.0002][.DF53.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F874
2F3A ; [.FB40.0020.0004][.DF61.0000.0000] # KANGXI RADICAL BRISTLE
@@ -26897,7 +29596,7 @@ F9D8 ; [.FB40.0020.0002][.DF8B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9D8
F966 ; [.FB40.0020.0002][.DFA9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F966
FA85 ; [.FB40.0020.0002][.DFAD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA85
2F3C ; [.FB40.0020.0004][.DFC3.0000.0000] # KANGXI RADICAL HEART
-2E97 ; [.FB40.0020.0004][.DFC3.0000.0000][.0000.0108.0004] # CJK RADICAL HEART TWO
+2E97 ; [.FB40.0020.0004][.DFC3.0000.0000][.0000.0110.0004] # CJK RADICAL HEART TWO
2E96 ; [.FB40.0020.0004][.DFC4.0000.0000] # CJK RADICAL HEART ONE
2F89D ; [.FB40.0020.0002][.DFCD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F89D
2F89E ; [.FB40.0020.0002][.DFD7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F89E
@@ -26945,7 +29644,7 @@ FA8C ; [.FB40.0020.0002][.E234.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA8C
2F3F ; [.FB40.0020.0004][.E24B.0000.0000] # KANGXI RADICAL HAND
1F210 ; [.FB40.0020.001C][.E24B.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-624B
2E98 ; [.FB40.0020.0004][.E24C.0000.0000] # CJK RADICAL HAND
-1F245 ; [*036C.0020.0004][.FB40.0020.0004][.E253.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F245 ; [*0379.0020.0004][.FB40.0020.0004][.E253.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
1F231 ; [.FB40.0020.001C][.E253.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6253
2F8B4 ; [.FB40.0020.0002][.E25D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8B4
1F227 ; [.FB40.0020.001C][.E295.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6295
@@ -26983,7 +29682,7 @@ F930 ; [.FB40.0020.0002][.E4C4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F930
FA41 ; [.FB40.0020.0002][.E54F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA41
2F8C8 ; [.FB40.0020.0002][.E54F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8C8
FA90 ; [.FB40.0020.0002][.E556.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA90
-1F248 ; [*036C.0020.0004][.FB40.0020.0004][.E557.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F248 ; [*0379.0020.0004][.FB40.0020.0004][.E557.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
2F8C9 ; [.FB40.0020.0002][.E56C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8C9
F969 ; [.FB40.0020.0002][.E578.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F969
2F42 ; [.FB40.0020.0004][.E587.0000.0000] # KANGXI RADICAL SCRIPT
@@ -27000,9 +29699,9 @@ F983 ; [.FB40.0020.0002][.E5C5.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F983
FA42 ; [.FB40.0020.0002][.E5E2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA42
2F8CB ; [.FB40.0020.0002][.E5E3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8CB
2F47 ; [.FB40.0020.0004][.E5E5.0000.0000] # KANGXI RADICAL SUN
-3230 ; [*030A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+3230 ; [*0317.0020.0004][.FB40.0020.0004][.E5E5.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
3290 ; [.FB40.0020.0006][.E5E5.0000.0000] # CIRCLED IDEOGRAPH SUN
-2E9C ; [.FB40.0020.0004][.E5E5.0000.0000][.0000.0108.0004] # CJK RADICAL SUN
+2E9C ; [.FB40.0020.0004][.E5E5.0000.0000][.0000.0110.0004] # CJK RADICAL SUN
337E ; [.FB40.0020.001C][.E60E.0000.0000][.FB40.0020.001C][.ECBB.0000.0000] # SQUARE ERA NAME MEIZI
F9E0 ; [.FB40.0020.0002][.E613.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E0
1F219 ; [.FB40.0020.001C][.E620.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6620
@@ -27021,11 +29720,11 @@ F901 ; [.FB40.0020.0002][.E6F4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F901
2F8CC ; [.FB40.0020.0002][.E6F8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8CC
2F8D4 ; [.FB40.0020.0002][.E700.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8D4
2F49 ; [.FB40.0020.0004][.E708.0000.0000] # KANGXI RADICAL MOON
-322A ; [*030A.0020.0004][.FB40.0020.0004][.E708.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+322A ; [*0317.0020.0004][.FB40.0020.0004][.E708.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
328A ; [.FB40.0020.0006][.E708.0000.0000] # CIRCLED IDEOGRAPH MOON
1F237 ; [.FB40.0020.001C][.E708.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6708
-2E9D ; [.FB40.0020.0004][.E708.0000.0000][.0000.0108.0004] # CJK RADICAL MOON
-3232 ; [*030A.0020.0004][.FB40.0020.0004][.E709.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+2E9D ; [.FB40.0020.0004][.E708.0000.0000][.0000.0110.0004] # CJK RADICAL MOON
+3232 ; [*0317.0020.0004][.FB40.0020.0004][.E709.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
3292 ; [.FB40.0020.0006][.E709.0000.0000] # CIRCLED IDEOGRAPH HAVE
1F236 ; [.FB40.0020.001C][.E709.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6709
F929 ; [.FB40.0020.0002][.E717.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F929
@@ -27035,9 +29734,9 @@ FA93 ; [.FB40.0020.0002][.E71B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA93
2F8D9 ; [.FB40.0020.0002][.E71B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8D9
2F8DA ; [.FB40.0020.0002][.E721.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8DA
2F4A ; [.FB40.0020.0004][.E728.0000.0000] # KANGXI RADICAL TREE
-322D ; [*030A.0020.0004][.FB40.0020.0004][.E728.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+322D ; [*0317.0020.0004][.FB40.0020.0004][.E728.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
328D ; [.FB40.0020.0006][.E728.0000.0000] # CIRCLED IDEOGRAPH WOOD
-1F240 ; [*036C.0020.0004][.FB40.0020.0004][.E72C.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F240 ; [*0379.0020.0004][.FB40.0020.0004][.E72C.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
F9E1 ; [.FB40.0020.0002][.E74E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E1
2F8DC ; [.FB40.0020.0002][.E753.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8DC
FA94 ; [.FB40.0020.0002][.E756.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA94
@@ -27049,7 +29748,7 @@ F9C9 ; [.FB40.0020.0002][.E7F3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9C9
2F8DF ; [.FB40.0020.0002][.E7FA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8DF
F9DA ; [.FB40.0020.0002][.E817.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9DA
2F8E5 ; [.FB40.0020.0002][.E81F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8E5
-3231 ; [*030A.0020.0004][.FB40.0020.0004][.E82A.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+3231 ; [*0317.0020.0004][.FB40.0020.0004][.E82A.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
3291 ; [.FB40.0020.0006][.E82A.0000.0000] # CIRCLED IDEOGRAPH STOCK
337F ; [.FB40.0020.001C][.E82A.0000.0000][.FB40.0020.001C][.DF0F.0000.0000][.FB40.0020.001C][.CF1A.0000.0000][.FB40.0020.001C][.F93E.0000.0000] # SQUARE CORPORATION
2F8E1 ; [.FB40.0020.0002][.E852.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8E1
@@ -27079,7 +29778,7 @@ F91D ; [.FB40.0020.0002][.EB04.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91D
F98C ; [.FB40.0020.0002][.EB77.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F98C
FA95 ; [.FB40.0020.0002][.EB79.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA95
2F4D ; [.FB40.0020.0004][.EB79.0000.0000] # KANGXI RADICAL DEATH
-2E9E ; [.FB40.0020.0004][.EB7A.0000.0000][.0000.0108.0004] # CJK RADICAL DEATH
+2E9E ; [.FB40.0020.0004][.EB7A.0000.0000][.0000.0110.0004] # CJK RADICAL DEATH
2F8F4 ; [.FB40.0020.0002][.EB9F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8F4
F9A5 ; [.FB40.0020.0002][.EBAE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9A5
2F4E ; [.FB40.0020.0004][.EBB3.0000.0000] # KANGXI RADICAL WEAPON
@@ -27095,7 +29794,7 @@ FA96 ; [.FB40.0020.0002][.EBBA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA96
2EA0 ; [.FB40.0020.0004][.EC11.0000.0000] # CJK RADICAL CIVILIAN
2F53 ; [.FB40.0020.0004][.EC14.0000.0000] # KANGXI RADICAL STEAM
2F54 ; [.FB40.0020.0004][.EC34.0000.0000] # KANGXI RADICAL WATER
-322C ; [*030A.0020.0004][.FB40.0020.0004][.EC34.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322C ; [*0317.0020.0004][.FB40.0020.0004][.EC34.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
328C ; [.FB40.0020.0006][.EC34.0000.0000] # CIRCLED IDEOGRAPH WATER
2EA1 ; [.FB40.0020.0004][.EC35.0000.0000] # CJK RADICAL WATER ONE
2EA2 ; [.FB40.0020.0004][.EC3A.0000.0000] # CJK RADICAL WATER TWO
@@ -27151,7 +29850,7 @@ FA9B ; [.FB40.0020.0002][.F01E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA9B
2F913 ; [.FB40.0020.0002][.F039.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F913
2F917 ; [.FB40.0020.0002][.F04A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F917
2F55 ; [.FB40.0020.0004][.F06B.0000.0000] # KANGXI RADICAL FIRE
-322B ; [*030A.0020.0004][.FB40.0020.0004][.F06B.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+322B ; [*0317.0020.0004][.FB40.0020.0004][.F06B.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
328B ; [.FB40.0020.0006][.F06B.0000.0000] # CIRCLED IDEOGRAPH FIRE
2EA3 ; [.FB40.0020.0004][.F06C.0000.0000] # CJK RADICAL FIRE
2F835 ; [.FB40.0020.0002][.F070.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F835
@@ -27159,7 +29858,7 @@ FA9B ; [.FB40.0020.0002][.F01E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA9B
2F918 ; [.FB40.0020.0002][.F07D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F918
F9FB ; [.FB40.0020.0002][.F099.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9FB
2F91A ; [.FB40.0020.0002][.F0AD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F91A
-1F244 ; [*036C.0020.0004][.FB40.0020.0004][.F0B9.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F244 ; [*0379.0020.0004][.FB40.0020.0004][.F0B9.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
F99F ; [.FB40.0020.0002][.F0C8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F99F
F916 ; [.FB40.0020.0002][.F0D9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F916
1F21A ; [.FB40.0020.001C][.F121.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-7121
@@ -27176,7 +29875,7 @@ F91E ; [.FB40.0020.0002][.F21B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91E
2F56 ; [.FB40.0020.0004][.F22A.0000.0000] # KANGXI RADICAL CLAW
FA49 ; [.FB40.0020.0002][.F22B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA49
2EA4 ; [.FB40.0020.0004][.F22B.0000.0000] # CJK RADICAL PAW ONE
-2EA5 ; [.FB40.0020.0004][.F22B.0000.0000][.0000.0108.0004] # CJK RADICAL PAW TWO
+2EA5 ; [.FB40.0020.0004][.F22B.0000.0000][.0000.0110.0004] # CJK RADICAL PAW TWO
FA9E ; [.FB40.0020.0002][.F235.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA9E
2F921 ; [.FB40.0020.0002][.F235.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F921
2F57 ; [.FB40.0020.0004][.F236.0000.0000] # KANGXI RADICAL FATHER
@@ -27186,9 +29885,9 @@ FA9E ; [.FB40.0020.0002][.F235.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA9E
2F922 ; [.FB40.0020.0002][.F250.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F922
2F5B ; [.FB40.0020.0004][.F259.0000.0000] # KANGXI RADICAL FANG
2F5C ; [.FB40.0020.0004][.F25B.0000.0000] # KANGXI RADICAL COW
-2EA7 ; [.FB40.0020.0004][.F25B.0000.0000][.0000.0108.0004] # CJK RADICAL COW
+2EA7 ; [.FB40.0020.0004][.F25B.0000.0000][.0000.0110.0004] # CJK RADICAL COW
F946 ; [.FB40.0020.0002][.F262.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F946
-3235 ; [*030A.0020.0004][.FB40.0020.0004][.F279.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+3235 ; [*0317.0020.0004][.FB40.0020.0004][.F279.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
3295 ; [.FB40.0020.0006][.F279.0000.0000] # CIRCLED IDEOGRAPH SPECIAL
2F924 ; [.FB40.0020.0002][.F280.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F924
2F925 ; [.FB40.0020.0002][.F295.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F925
@@ -27206,7 +29905,7 @@ F961 ; [.FB40.0020.0002][.F387.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F961
F9DB ; [.FB40.0020.0002][.F387.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9DB
2F5F ; [.FB40.0020.0004][.F389.0000.0000] # KANGXI RADICAL JADE
2F929 ; [.FB40.0020.0002][.F38B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F929
-2EA9 ; [.FB40.0020.0004][.F38B.0000.0000][.0000.0108.0004] # CJK RADICAL JADE
+2EA9 ; [.FB40.0020.0004][.F38B.0000.0000][.0000.0110.0004] # CJK RADICAL JADE
2F92B ; [.FB40.0020.0002][.F3A5.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F92B
F9AD ; [.FB40.0020.0002][.F3B2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9AD
F917 ; [.FB40.0020.0002][.F3DE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F917
@@ -27241,7 +29940,7 @@ F976 ; [.FB40.0020.0002][.F565.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F976
F962 ; [.FB40.0020.0002][.F570.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F962
2F938 ; [.FB40.0020.0002][.F570.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F938
2F66 ; [.FB40.0020.0004][.F58B.0000.0000] # KANGXI RADICAL BOLT OF CLOTH
-2EAA ; [.FB40.0020.0004][.F58B.0000.0000][.0000.0108.0004] # CJK RADICAL BOLT OF CLOTH
+2EAA ; [.FB40.0020.0004][.F58B.0000.0000][.0000.0110.0004] # CJK RADICAL BOLT OF CLOTH
2F67 ; [.FB40.0020.0004][.F592.0000.0000] # KANGXI RADICAL SICKNESS
F9E5 ; [.FB40.0020.0002][.F5E2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E5
2F93A ; [.FB40.0020.0002][.F610.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F93A
@@ -27255,13 +29954,13 @@ F90E ; [.FB40.0020.0002][.F669.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F90E
2F6B ; [.FB40.0020.0004][.F6BF.0000.0000] # KANGXI RADICAL DISH
FA17 ; [.FB40.0020.0002][.F6CA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA17
FAA6 ; [.FB40.0020.0002][.F6CA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAA6
-1F246 ; [*036C.0020.0004][.FB40.0020.0004][.F6D7.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+1F246 ; [*0379.0020.0004][.FB40.0020.0004][.F6D7.0000.0000][*037A.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
FAA7 ; [.FB40.0020.0002][.F6DB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAA7
-323C ; [*030A.0020.0004][.FB40.0020.0004][.F6E3.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+323C ; [*0317.0020.0004][.FB40.0020.0004][.F6E3.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
32AC ; [.FB40.0020.0006][.F6E3.0000.0000] # CIRCLED IDEOGRAPH SUPERVISE
F933 ; [.FB40.0020.0002][.F6E7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F933
2F6C ; [.FB40.0020.0004][.F6EE.0000.0000] # KANGXI RADICAL EYE
-2EAB ; [.FB40.0020.0004][.F6EE.0000.0000][.0000.0108.0004] # CJK RADICAL EYE
+2EAB ; [.FB40.0020.0004][.F6EE.0000.0000][.0000.0110.0004] # CJK RADICAL EYE
FAA8 ; [.FB40.0020.0002][.F6F4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAA8
2F940 ; [.FB40.0020.0002][.F6F4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F940
F96D ; [.FB40.0020.0002][.F701.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F96D
@@ -27287,11 +29986,11 @@ FAAB ; [.FB40.0020.0002][.F8CC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAAB
F964 ; [.FB40.0020.0002][.F8FB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F964
F985 ; [.FB40.0020.0002][.F92A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F985
2F70 ; [.FB40.0020.0004][.F93A.0000.0000] # KANGXI RADICAL SPIRIT
-2EAC ; [.FB40.0020.0004][.F93A.0000.0000][.0000.0108.0004] # CJK RADICAL SPIRIT ONE
+2EAC ; [.FB40.0020.0004][.F93A.0000.0000][.0000.0110.0004] # CJK RADICAL SPIRIT ONE
2EAD ; [.FB40.0020.0004][.F93B.0000.0000] # CJK RADICAL SPIRIT TWO
FA18 ; [.FB40.0020.0002][.F93C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA18
FA4C ; [.FB40.0020.0002][.F93E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA4C
-3233 ; [*030A.0020.0004][.FB40.0020.0004][.F93E.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3233 ; [*0317.0020.0004][.FB40.0020.0004][.F93E.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
3293 ; [.FB40.0020.0006][.F93E.0000.0000] # CIRCLED IDEOGRAPH SOCIETY
FA4E ; [.FB40.0020.0002][.F948.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA4E
FA4D ; [.FB40.0020.0002][.F949.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA4D
@@ -27299,11 +29998,11 @@ FA4F ; [.FB40.0020.0002][.F950.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA4F
FA50 ; [.FB40.0020.0002][.F956.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA50
2F953 ; [.FB40.0020.0002][.F956.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F953
FA51 ; [.FB40.0020.0002][.F95D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA51
-3237 ; [*030A.0020.0004][.FB40.0020.0004][.F95D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3237 ; [*0317.0020.0004][.FB40.0020.0004][.F95D.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
3297 ; [.FB40.0020.0006][.F95D.0000.0000] # CIRCLED IDEOGRAPH CONGRATULATION
FA19 ; [.FB40.0020.0002][.F95E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA19
FA1A ; [.FB40.0020.0002][.F965.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA1A
-3240 ; [*030A.0020.0004][.FB40.0020.0004][.F96D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3240 ; [*0317.0020.0004][.FB40.0020.0004][.F96D.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
F93C ; [.FB40.0020.0002][.F97F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F93C
1F232 ; [.FB40.0020.001C][.F981.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-7981
FA52 ; [.FB40.0020.0002][.F98D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA52
@@ -27329,7 +30028,7 @@ F9F7 ; [.FB40.0020.0002][.FACB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9F7
2F74 ; [.FB40.0020.0004][.FACB.0000.0000] # KANGXI RADICAL STAND
2F95F ; [.FB40.0020.0002][.FAEE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F95F
2F75 ; [.FB40.0020.0004][.FAF9.0000.0000] # KANGXI RADICAL BAMBOO
-2EAE ; [.FB40.0020.0004][.FAF9.0000.0000][.0000.0108.0004] # CJK RADICAL BAMBOO
+2EAE ; [.FB40.0020.0004][.FAF9.0000.0000][.0000.0110.0004] # CJK RADICAL BAMBOO
F9F8 ; [.FB40.0020.0002][.FB20.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9F8
3247 ; [.FB40.0020.0006][.FB8F.0000.0000] # CIRCLED IDEOGRAPH KOTO
FA56 ; [.FB40.0020.0002][.FBC0.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA56
@@ -27372,17 +30071,17 @@ FA59 ; [.FB40.0020.0002][.FE41.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA59
FAB1 ; [.FB40.0020.0002][.FF3E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAB1
2F79 ; [.FB40.0020.0004][.FF51.0000.0000] # KANGXI RADICAL NET
2EB2 ; [.FB40.0020.0004][.FF52.0000.0000] # CJK RADICAL NET TWO
-2EB5 ; [.FB40.0020.0004][.FF52.0000.0000][.0000.0108.0004] # CJK RADICAL MESH
+2EB5 ; [.FB40.0020.0004][.FF52.0000.0000][.0000.0110.0004] # CJK RADICAL MESH
2EB1 ; [.FB40.0020.0004][.FF53.0000.0000] # CJK RADICAL NET ONE
-2EB3 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.0108.0004] # CJK RADICAL NET THREE
-2EB4 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.0109.0004] # CJK RADICAL NET FOUR
+2EB3 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.0110.0004] # CJK RADICAL NET THREE
+2EB4 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.0111.0004] # CJK RADICAL NET FOUR
FA5A ; [.FB40.0020.0002][.FF72.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA5A
F9E6 ; [.FB40.0020.0002][.FF79.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E6
2F976 ; [.FB40.0020.0002][.FF7A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F976
F90F ; [.FB40.0020.0002][.FF85.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F90F
2F7A ; [.FB40.0020.0004][.FF8A.0000.0000] # KANGXI RADICAL SHEEP
-2EB6 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.0108.0004] # CJK RADICAL SHEEP
-2EB7 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.0109.0004] # CJK RADICAL RAM
+2EB6 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.0110.0004] # CJK RADICAL SHEEP
+2EB7 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.0111.0004] # CJK RADICAL RAM
2EB8 ; [.FB40.0020.0004][.FF8B.0000.0000] # CJK RADICAL EWE
2F978 ; [.FB40.0020.0002][.FF95.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F978
F9AF ; [.FB40.0020.0002][.FF9A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9AF
@@ -27404,10 +30103,10 @@ F997 ; [.FB41.0020.0002][.806F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F997
2F97F ; [.FB41.0020.0002][.8070.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F97F
F945 ; [.FB41.0020.0002][.807E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F945
2F80 ; [.FB41.0020.0004][.807F.0000.0000] # KANGXI RADICAL BRUSH
-2EBB ; [.FB41.0020.0004][.807F.0000.0000][.0000.0108.0004] # CJK RADICAL BRUSH TWO
+2EBB ; [.FB41.0020.0004][.807F.0000.0000][.0000.0110.0004] # CJK RADICAL BRUSH TWO
2EBA ; [.FB41.0020.0004][.8080.0000.0000] # CJK RADICAL BRUSH ONE
2F81 ; [.FB41.0020.0004][.8089.0000.0000] # KANGXI RADICAL MEAT
-2EBC ; [.FB41.0020.0004][.8089.0000.0000][.0000.0108.0004] # CJK RADICAL MEAT
+2EBC ; [.FB41.0020.0004][.8089.0000.0000][.0000.0110.0004] # CJK RADICAL MEAT
F953 ; [.FB41.0020.0002][.808B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F953
2F8D6 ; [.FB41.0020.0002][.80AD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8D6
2F982 ; [.FB41.0020.0002][.80B2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F982
@@ -27417,12 +30116,12 @@ F926 ; [.FB41.0020.0002][.81D8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F926
2F82 ; [.FB41.0020.0004][.81E3.0000.0000] # KANGXI RADICAL MINISTER
F9F6 ; [.FB41.0020.0002][.81E8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9F6
2F83 ; [.FB41.0020.0004][.81EA.0000.0000] # KANGXI RADICAL SELF
-3242 ; [*030A.0020.0004][.FB41.0020.0004][.81EA.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3242 ; [*0317.0020.0004][.FB41.0020.0004][.81EA.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
FA5C ; [.FB41.0020.0002][.81ED.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA5C
2F84 ; [.FB41.0020.0004][.81F3.0000.0000] # KANGXI RADICAL ARRIVE
-3243 ; [*030A.0020.0004][.FB41.0020.0004][.81F3.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3243 ; [*0317.0020.0004][.FB41.0020.0004][.81F3.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
2F85 ; [.FB41.0020.0004][.81FC.0000.0000] # KANGXI RADICAL MORTAR
-2EBD ; [.FB41.0020.0004][.81FC.0000.0000][.0000.0108.0004] # CJK RADICAL MORTAR
+2EBD ; [.FB41.0020.0004][.81FC.0000.0000][.0000.0110.0004] # CJK RADICAL MORTAR
2F893 ; [.FB41.0020.0002][.8201.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F893
2F98B ; [.FB41.0020.0002][.8201.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F98B
2F98C ; [.FB41.0020.0002][.8204.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F98C
@@ -27437,8 +30136,8 @@ F97C ; [.FB41.0020.0002][.826F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F97C
FA5D ; [.FB41.0020.0002][.8279.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA5D
FA5E ; [.FB41.0020.0002][.8279.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA5E
2EBE ; [.FB41.0020.0004][.8279.0000.0000] # CJK RADICAL GRASS ONE
-2EBF ; [.FB41.0020.0004][.8279.0000.0000][.0000.0108.0004] # CJK RADICAL GRASS TWO
-2EC0 ; [.FB41.0020.0004][.8279.0000.0000][.0000.0109.0004] # CJK RADICAL GRASS THREE
+2EBF ; [.FB41.0020.0004][.8279.0000.0000][.0000.0110.0004] # CJK RADICAL GRASS TWO
+2EC0 ; [.FB41.0020.0004][.8279.0000.0000][.0000.0111.0004] # CJK RADICAL GRASS THREE
2F990 ; [.FB41.0020.0002][.828B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F990
2F98F ; [.FB41.0020.0002][.8291.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F98F
2F991 ; [.FB41.0020.0002][.829D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F991
@@ -27528,7 +30227,7 @@ FAB8 ; [.FB41.0020.0002][.8996.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAB8
2EC5 ; [.FB41.0020.0004][.89C1.0000.0000] # CJK RADICAL C-SIMPLIFIED SEE
2EC6 ; [.FB41.0020.0004][.89D2.0000.0000] # CJK RADICAL SIMPLIFIED HORN
2F93 ; [.FB41.0020.0004][.89D2.0000.0000] # KANGXI RADICAL HORN
-2EC7 ; [.FB41.0020.0004][.89D2.0000.0000][.0000.0108.0004] # CJK RADICAL HORN
+2EC7 ; [.FB41.0020.0004][.89D2.0000.0000][.0000.0110.0004] # CJK RADICAL HORN
1F216 ; [.FB41.0020.001C][.89E3.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-89E3
2F94 ; [.FB41.0020.0004][.8A00.0000.0000] # KANGXI RADICAL SPEECH
2F9CF ; [.FB41.0020.0002][.8AA0.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9CF
@@ -27560,13 +30259,13 @@ F900 ; [.FB41.0020.0002][.8C48.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F900
2F97 ; [.FB41.0020.0004][.8C55.0000.0000] # KANGXI RADICAL PIG
2F98 ; [.FB41.0020.0004][.8C78.0000.0000] # KANGXI RADICAL BADGER
2F99 ; [.FB41.0020.0004][.8C9D.0000.0000] # KANGXI RADICAL SHELL
-3236 ; [*030A.0020.0004][.FB41.0020.0004][.8CA1.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+3236 ; [*0317.0020.0004][.FB41.0020.0004][.8CA1.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
3296 ; [.FB41.0020.0006][.8CA1.0000.0000] # CIRCLED IDEOGRAPH FINANCIAL
1F223 ; [.FB41.0020.001C][.8CA9.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-8CA9
2F9D4 ; [.FB41.0020.0002][.8CAB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9D4
2F9D5 ; [.FB41.0020.0002][.8CC1.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9D5
F948 ; [.FB41.0020.0002][.8CC2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F948
-323E ; [*030A.0020.0004][.FB41.0020.0004][.8CC7.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+323E ; [*0317.0020.0004][.FB41.0020.0004][.8CC7.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
32AE ; [.FB41.0020.0006][.8CC7.0000.0000] # CIRCLED IDEOGRAPH RESOURCE
F903 ; [.FB41.0020.0002][.8CC8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F903
FA64 ; [.FB41.0020.0002][.8CD3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA64
@@ -27579,7 +30278,7 @@ FAC1 ; [.FB41.0020.0002][.8D08.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAC1
1F230 ; [.FB41.0020.001C][.8D70.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-8D70
2F9D7 ; [.FB41.0020.0002][.8D77.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9D7
2F9C ; [.FB41.0020.0004][.8DB3.0000.0000] # KANGXI RADICAL FOOT
-2ECA ; [.FB41.0020.0004][.8DB3.0000.0000][.0000.0108.0004] # CJK RADICAL FOOT
+2ECA ; [.FB41.0020.0004][.8DB3.0000.0000][.0000.0110.0004] # CJK RADICAL FOOT
2F9DB ; [.FB41.0020.0002][.8DBC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9DB
2F9DA ; [.FB41.0020.0002][.8DCB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9DA
F937 ; [.FB41.0020.0002][.8DEF.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F937
@@ -27602,8 +30301,8 @@ F971 ; [.FB41.0020.0002][.8FB0.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F971
2FA1 ; [.FB41.0020.0004][.8FB5.0000.0000] # KANGXI RADICAL WALK
FA66 ; [.FB41.0020.0002][.8FB6.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA66
2ECC ; [.FB41.0020.0004][.8FB6.0000.0000] # CJK RADICAL SIMPLIFIED WALK
-2ECD ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.0108.0004] # CJK RADICAL WALK ONE
-2ECE ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.0109.0004] # CJK RADICAL WALK TWO
+2ECD ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.0110.0004] # CJK RADICAL WALK ONE
+2ECE ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.0111.0004] # CJK RADICAL WALK TWO
F99A ; [.FB41.0020.0002][.9023.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F99A
FA25 ; [.FB41.0020.0002][.9038.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA25
FA67 ; [.FB41.0020.0002][.9038.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA67
@@ -27613,7 +30312,7 @@ FAC3 ; [.FB41.0020.0002][.9072.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAC3
F9C3 ; [.FB41.0020.0002][.907C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9C3
F913 ; [.FB41.0020.0002][.908F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F913
2FA2 ; [.FB41.0020.0004][.9091.0000.0000] # KANGXI RADICAL CITY
-2ECF ; [.FB41.0020.0004][.9091.0000.0000][.0000.0108.0004] # CJK RADICAL CITY
+2ECF ; [.FB41.0020.0004][.9091.0000.0000][.0000.0110.0004] # CJK RADICAL CITY
2F9E2 ; [.FB41.0020.0002][.9094.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9E2
F92C ; [.FB41.0020.0002][.90CE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F92C
FA2E ; [.FB41.0020.0002][.90DE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA2E
@@ -27622,6 +30321,7 @@ FA26 ; [.FB41.0020.0002][.90FD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA26
2F9E4 ; [.FB41.0020.0002][.9111.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9E4
2F9E6 ; [.FB41.0020.0002][.911B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9E6
2FA3 ; [.FB41.0020.0004][.9149.0000.0000] # KANGXI RADICAL WINE
+1F23B ; [.FB41.0020.001C][.914D.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-914D
F919 ; [.FB41.0020.0002][.916A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F919
FAC4 ; [.FB41.0020.0002][.9199.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAC4
F9B7 ; [.FB41.0020.0002][.91B4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9B7
@@ -27631,7 +30331,7 @@ F9E9 ; [.FB41.0020.0002][.91CC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E9
F97E ; [.FB41.0020.0002][.91CF.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F97E
F90A ; [.FB41.0020.0002][.91D1.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F90A
2FA6 ; [.FB41.0020.0004][.91D1.0000.0000] # KANGXI RADICAL GOLD
-322E ; [*030A.0020.0004][.FB41.0020.0004][.91D1.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+322E ; [*0317.0020.0004][.FB41.0020.0004][.91D1.0000.0000][*0318.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
328E ; [.FB41.0020.0006][.91D1.0000.0000] # CIRCLED IDEOGRAPH METAL
F9B1 ; [.FB41.0020.0002][.9234.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9B1
2F9E7 ; [.FB41.0020.0002][.9238.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9E7
@@ -27654,7 +30354,7 @@ F986 ; [.FB41.0020.0002][.95AD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F986
2F9F0 ; [.FB41.0020.0002][.95B7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9F0
2ED4 ; [.FB41.0020.0004][.95E8.0000.0000] # CJK RADICAL C-SIMPLIFIED GATE
2FA9 ; [.FB41.0020.0004][.961C.0000.0000] # KANGXI RADICAL MOUND
-2ED5 ; [.FB41.0020.0004][.961C.0000.0000][.0000.0108.0004] # CJK RADICAL MOUND ONE
+2ED5 ; [.FB41.0020.0004][.961C.0000.0000][.0000.0110.0004] # CJK RADICAL MOUND ONE
2ED6 ; [.FB41.0020.0004][.961D.0000.0000] # CJK RADICAL MOUND TWO
F9C6 ; [.FB41.0020.0002][.962E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9C6
F951 ; [.FB41.0020.0002][.964B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F951
@@ -27673,7 +30373,7 @@ F9EA ; [.FB41.0020.0002][.96E2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9EA
FA68 ; [.FB41.0020.0002][.96E3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA68
FAC7 ; [.FB41.0020.0002][.96E3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAC7
2FAC ; [.FB41.0020.0004][.96E8.0000.0000] # KANGXI RADICAL RAIN
-2ED7 ; [.FB41.0020.0004][.96E8.0000.0000][.0000.0108.0004] # CJK RADICAL RAIN
+2ED7 ; [.FB41.0020.0004][.96E8.0000.0000][.0000.0110.0004] # CJK RADICAL RAIN
F9B2 ; [.FB41.0020.0002][.96F6.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9B2
F949 ; [.FB41.0020.0002][.96F7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F949
2F9F5 ; [.FB41.0020.0002][.9723.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9F5
@@ -27712,7 +30412,7 @@ F9D0 ; [.FB41.0020.0002][.985E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9D0
2EDD ; [.FB41.0020.0004][.98DF.0000.0000] # CJK RADICAL EAT ONE
2FB7 ; [.FB41.0020.0004][.98DF.0000.0000] # KANGXI RADICAL EAT
2EDF ; [.FB41.0020.0004][.98E0.0000.0000] # CJK RADICAL EAT THREE
-2EDE ; [.FB41.0020.0004][.98E0.0000.0000][.0000.0108.0004] # CJK RADICAL EAT TWO
+2EDE ; [.FB41.0020.0004][.98E0.0000.0000][.0000.0110.0004] # CJK RADICAL EAT TWO
2FA02 ; [.FB41.0020.0002][.98E2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA02
FA2A ; [.FB41.0020.0002][.98EF.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA2A
FA2B ; [.FB41.0020.0002][.98FC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA2B
@@ -27720,7 +30420,7 @@ FA2C ; [.FB41.0020.0002][.9928.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA2C
2FA04 ; [.FB41.0020.0002][.9929.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA04
2EE0 ; [.FB41.0020.0004][.9963.0000.0000] # CJK RADICAL C-SIMPLIFIED EAT
2FB8 ; [.FB41.0020.0004][.9996.0000.0000] # KANGXI RADICAL HEAD
-2EE1 ; [.FB41.0020.0004][.9996.0000.0000][.0000.0108.0004] # CJK RADICAL HEAD
+2EE1 ; [.FB41.0020.0004][.9996.0000.0000][.0000.0110.0004] # CJK RADICAL HEAD
2FB9 ; [.FB41.0020.0004][.9999.0000.0000] # KANGXI RADICAL FRAGRANT
2FA05 ; [.FB41.0020.0002][.99A7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA05
2FBA ; [.FB41.0020.0004][.99AC.0000.0000] # KANGXI RADICAL HORSE
@@ -27730,7 +30430,7 @@ F91A ; [.FB41.0020.0002][.99F1.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91A
F987 ; [.FB41.0020.0002][.9A6A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F987
2EE2 ; [.FB41.0020.0004][.9A6C.0000.0000] # CJK RADICAL C-SIMPLIFIED HORSE
2FBB ; [.FB41.0020.0004][.9AA8.0000.0000] # KANGXI RADICAL BONE
-2EE3 ; [.FB41.0020.0004][.9AA8.0000.0000][.0000.0108.0004] # CJK RADICAL BONE
+2EE3 ; [.FB41.0020.0004][.9AA8.0000.0000][.0000.0110.0004] # CJK RADICAL BONE
2FBC ; [.FB41.0020.0004][.9AD8.0000.0000] # KANGXI RADICAL TALL
2FBD ; [.FB41.0020.0004][.9ADF.0000.0000] # KANGXI RADICAL HAIR
FACD ; [.FB41.0020.0002][.9B12.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FACD
@@ -27739,7 +30439,7 @@ FACD ; [.FB41.0020.0002][.9B12.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FACD
2FBF ; [.FB41.0020.0004][.9B2F.0000.0000] # KANGXI RADICAL SACRIFICIAL WINE
2FC0 ; [.FB41.0020.0004][.9B32.0000.0000] # KANGXI RADICAL CAULDRON
2FC1 ; [.FB41.0020.0004][.9B3C.0000.0000] # KANGXI RADICAL GHOST
-2EE4 ; [.FB41.0020.0004][.9B3C.0000.0000][.0000.0108.0004] # CJK RADICAL GHOST
+2EE4 ; [.FB41.0020.0004][.9B3C.0000.0000][.0000.0110.0004] # CJK RADICAL GHOST
2FC2 ; [.FB41.0020.0004][.9B5A.0000.0000] # KANGXI RADICAL FISH
F939 ; [.FB41.0020.0002][.9B6F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F939
2FA0B ; [.FB41.0020.0002][.9C40.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA0B
@@ -27753,7 +30453,7 @@ F93A ; [.FB41.0020.0002][.9DFA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F93A
F920 ; [.FB41.0020.0002][.9E1E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F920
2EE6 ; [.FB41.0020.0004][.9E1F.0000.0000] # CJK RADICAL C-SIMPLIFIED BIRD
2FC4 ; [.FB41.0020.0004][.9E75.0000.0000] # KANGXI RADICAL SALT
-2EE7 ; [.FB41.0020.0004][.9E75.0000.0000][.0000.0108.0004] # CJK RADICAL C-SIMPLIFIED SALT
+2EE7 ; [.FB41.0020.0004][.9E75.0000.0000][.0000.0110.0004] # CJK RADICAL C-SIMPLIFIED SALT
F940 ; [.FB41.0020.0002][.9E7F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F940
2FC5 ; [.FB41.0020.0004][.9E7F.0000.0000] # KANGXI RADICAL DEER
F988 ; [.FB41.0020.0002][.9E97.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F988
@@ -27782,22 +30482,22 @@ F989 ; [.FB41.0020.0002][.9ECE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F989
2FD0 ; [.FB41.0020.0004][.9F3B.0000.0000] # KANGXI RADICAL NOSE
FAD8 ; [.FB41.0020.0002][.9F43.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAD8
2FD1 ; [.FB41.0020.0004][.9F4A.0000.0000] # KANGXI RADICAL EVEN
-2EEB ; [.FB41.0020.0004][.9F4A.0000.0000][.0000.0108.0004] # CJK RADICAL J-SIMPLIFIED EVEN
+2EEB ; [.FB41.0020.0004][.9F4A.0000.0000][.0000.0110.0004] # CJK RADICAL J-SIMPLIFIED EVEN
2EEC ; [.FB41.0020.0004][.9F50.0000.0000] # CJK RADICAL C-SIMPLIFIED EVEN
2FD2 ; [.FB41.0020.0004][.9F52.0000.0000] # KANGXI RADICAL TOOTH
-2EED ; [.FB41.0020.0004][.9F52.0000.0000][.0000.0108.0004] # CJK RADICAL J-SIMPLIFIED TOOTH
+2EED ; [.FB41.0020.0004][.9F52.0000.0000][.0000.0110.0004] # CJK RADICAL J-SIMPLIFIED TOOTH
2EEE ; [.FB41.0020.0004][.9F7F.0000.0000] # CJK RADICAL C-SIMPLIFIED TOOTH
F9C4 ; [.FB41.0020.0002][.9F8D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9C4
2FD3 ; [.FB41.0020.0004][.9F8D.0000.0000] # KANGXI RADICAL DRAGON
-2EEF ; [.FB41.0020.0004][.9F8D.0000.0000][.0000.0108.0004] # CJK RADICAL J-SIMPLIFIED DRAGON
+2EEF ; [.FB41.0020.0004][.9F8D.0000.0000][.0000.0110.0004] # CJK RADICAL J-SIMPLIFIED DRAGON
FAD9 ; [.FB41.0020.0002][.9F8E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAD9
2EF0 ; [.FB41.0020.0004][.9F99.0000.0000] # CJK RADICAL C-SIMPLIFIED DRAGON
F907 ; [.FB41.0020.0002][.9F9C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F907
F908 ; [.FB41.0020.0002][.9F9C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F908
FACE ; [.FB41.0020.0002][.9F9C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FACE
2FD4 ; [.FB41.0020.0004][.9F9C.0000.0000] # KANGXI RADICAL TURTLE
-2EF1 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.0108.0004] # CJK RADICAL TURTLE
-2EF2 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.0109.0004] # CJK RADICAL J-SIMPLIFIED TURTLE
+2EF1 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.0110.0004] # CJK RADICAL TURTLE
+2EF2 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.0111.0004] # CJK RADICAL J-SIMPLIFIED TURTLE
2EF3 ; [.FB41.0020.0004][.9F9F.0000.0000] # CJK RADICAL C-SIMPLIFIED TURTLE
2FD5 ; [.FB41.0020.0004][.9FA0.0000.0000] # KANGXI RADICAL FLUTE
FA0E ; [.FB41.0020.0002][.FA0E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA0E
@@ -27995,3 +30695,5 @@ FAD7 ; [.FB84.0020.0002][.FED3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAD7
2F88F ; [.FB85.0020.0002][.A392.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F88F
2FA1D ; [.FB85.0020.0002][.A600.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA1D
FFFD ; [.FFFD.0020.0002] # REPLACEMENT CHARACTER
+
+# EOF
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/Makefile.PL b/gnu/usr.bin/perl/cpan/Unicode-Collate/Makefile.PL
index 4103bc98361..1cb39a88e0d 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/Makefile.PL
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/Makefile.PL
@@ -5,9 +5,9 @@ my $clean = {};
if (-f "Collate.xs") {
print "Making header files for XS...\n";
-
- do 'mkheader' or die $@ || "mkheader: $!";
-
+ # Should $mkh be File::Spec->catfile(File::Spec->curdir(), 'mkheader') ?
+ my $mkh = './mkheader';
+ do $mkh or die $@ || "mkheader: $!";
$clean = { FILES => 'ucatbl.h' };
}
@@ -22,9 +22,9 @@ WriteMakefile(
'clean' => $clean,
'PREREQ_PM' => {
Carp => 0,
- constant => 0,
- DynaLoader => 0,
File::Spec => 0,
+ XSLoader => 0,
+ constant => 0,
strict => 0,
warnings => 0,
},
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/mkheader b/gnu/usr.bin/perl/cpan/Unicode-Collate/mkheader
index 4954b516555..8d4076f1837 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/mkheader
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/mkheader
@@ -4,7 +4,7 @@
# used for building XSUB of Unicode::Collate.
#
# Usage:
-# <do 'mkheader'> in perl, or <perl mkheader> in command line
+# <do './mkheader'> in perl, or <perl mkheader> in command line
#
# Input file:
# Collate/allkeys.txt
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/illegal.t b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/illegal.t
index 26fff3a357c..c9ac7870168 100755
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/illegal.t
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/illegal.t
@@ -30,7 +30,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..136\n"; } # 81 + 5 x @Versions
+BEGIN { $| = 1; print "1..156\n"; } # 81 + 5 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -192,7 +192,7 @@ my $out = Unicode::Collate->new(
overrideOut => sub { 0xFFFD },
);
-my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28);
+my @Versions = (8, 9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
for my $v (@Versions) {
$out->change(UCA_Version => $v);
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_es.t b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_es.t
index cee4eec6208..5892a8d9117 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_es.t
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_es.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..29\n"; }
+BEGIN { $| = 1; print "1..30\n"; }
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -37,20 +37,21 @@ my $objEs = Unicode::Collate::Locale->
new(locale => 'ES', normalization => undef);
ok($objEs->getlocale, 'es');
-ok($objEs->locale_version, 1.14);
+ok($objEs->locale_version, 1.25);
$objEs->change(level => 1);
-ok($objEs->lt("cg", "ch"));
-ok($objEs->gt("ci", "ch"));
+ok($objEs->lt("cg","ch"));
+ok($objEs->gt("ci","ch"));
ok($objEs->gt("d", "ch"));
-ok($objEs->lt("lk", "ll"));
-ok($objEs->gt("lm", "ll"));
+ok($objEs->lt("lk","ll"));
+ok($objEs->gt("lm","ll"));
ok($objEs->gt("m", "ll"));
ok($objEs->lt("n", "n\x{303}"));
+ok($objEs->lt("nz","n\x{303}"));
ok($objEs->gt("o", "n\x{303}"));
-# 11
+# 12
ok($objEs->eq("a\x{300}a", "aa\x{300}"));
@@ -60,7 +61,7 @@ ok($objEs->gt("a\x{300}a", "aa\x{300}"));
ok($objEs->lt("Ca\x{300}ca\x{302}", "ca\x{302}ca\x{300}"));
ok($objEs->lt("ca\x{300}ca\x{302}", "Ca\x{302}ca\x{300}"));
-# 15
+# 16
ok($objEs->eq("ch", "Ch"));
ok($objEs->eq("Ch", "CH"));
@@ -68,7 +69,7 @@ ok($objEs->eq("ll", "Ll"));
ok($objEs->eq("Ll", "LL"));
ok($objEs->eq("n\x{303}", "N\x{303}"));
-# 20
+# 21
$objEs->change(level => 3);
@@ -80,11 +81,11 @@ ok($objEs->lt("n\x{303}", "N\x{303}"));
ok($objEs->eq("n\x{303}", pack('U', 0xF1)));
ok($objEs->eq("N\x{303}", pack('U', 0xD1)));
-# 27
+# 28
$objEs->change(level => 2, ignore_level2 => 1);
ok($objEs->lt("n", "n\x{303}"));
ok($objEs->eq("a", "a\x{303}"));
-# 29
+# 30
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_estr.t b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_estr.t
index cc3e477e950..95e1da8a606 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_estr.t
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_estr.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..27\n"; }
+BEGIN { $| = 1; print "1..28\n"; }
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -37,7 +37,7 @@ my $objEsTrad = Unicode::Collate::Locale->
new(locale => 'ES-trad', normalization => undef);
ok($objEsTrad->getlocale, 'es__traditional');
-ok($objEsTrad->locale_version, 1.14);
+ok($objEsTrad->locale_version, 1.25);
$objEsTrad->change(level => 1);
@@ -48,9 +48,10 @@ ok($objEsTrad->lt("l", "ll"));
ok($objEsTrad->lt("lz","ll"));
ok($objEsTrad->gt("m", "ll"));
ok($objEsTrad->lt("n", "n\x{303}"));
+ok($objEsTrad->lt("nz","n\x{303}"));
ok($objEsTrad->gt("o", "n\x{303}"));
-# 11
+# 12
ok($objEsTrad->eq("a\x{300}a", "aa\x{300}"));
@@ -60,7 +61,7 @@ ok($objEsTrad->gt("a\x{300}a", "aa\x{300}"));
ok($objEsTrad->lt("Ca\x{300}ca\x{302}", "ca\x{302}ca\x{300}"));
ok($objEsTrad->lt("ca\x{300}ca\x{302}", "Ca\x{302}ca\x{300}"));
-# 15
+# 16
ok($objEsTrad->eq("ch", "Ch"));
ok($objEsTrad->eq("Ch", "CH"));
@@ -68,7 +69,7 @@ ok($objEsTrad->eq("ll", "Ll"));
ok($objEsTrad->eq("Ll", "LL"));
ok($objEsTrad->eq("n\x{303}", "N\x{303}"));
-# 20
+# 21
$objEsTrad->change(level => 3);
@@ -80,4 +81,4 @@ ok($objEsTrad->lt("n\x{303}", "N\x{303}"));
ok($objEsTrad->eq("n\x{303}", pack('U', 0xF1)));
ok($objEsTrad->eq("N\x{303}", pack('U', 0xD1)));
-# 27
+# 28
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_fr.t b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_fr.t
index 0e3aaa9435a..772f6090a3f 100644
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_fr.t
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/loc_fr.t
@@ -39,8 +39,8 @@ my $AE = pack 'U', 0xC6;
my $objFr = Unicode::Collate::Locale->
new(locale => 'FR', normalization => undef);
-ok($objFr->getlocale, 'fr');
-ok($objFr->locale_version, 1.14);
+ok($objFr->getlocale, 'default'); # no tailoring since 1.18
+ok($objFr->locale_version, undef);
$objFr->change(level => 1);
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/version.t b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/version.t
index 414830f7a20..37b612617ab 100755
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/version.t
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/version.t
@@ -34,8 +34,8 @@ ok(1);
#########################
# Fix me when UCA and/or keys.txt is upgraded.
-my $UCA_Version = "30";
-my $Base_Unicode_Version = "7.0.0";
+my $UCA_Version = "34";
+my $Base_Unicode_Version = "9.0.0";
my $Key_Version = "3.1.1";
ok(Unicode::Collate::UCA_Version, $UCA_Version);
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/view.t b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/view.t
index 91da5968bdb..63a0e922be3 100755
--- a/gnu/usr.bin/perl/cpan/Unicode-Collate/t/view.t
+++ b/gnu/usr.bin/perl/cpan/Unicode-Collate/t/view.t
@@ -16,7 +16,7 @@ BEGIN {
use strict;
use warnings;
-BEGIN { $| = 1; print "1..106\n"; } # 62 + 4 x @Versions
+BEGIN { $| = 1; print "1..174\n"; } # 62 + 8 x @Versions
my $count = 0;
sub ok ($;$) {
my $p = my $r = shift;
@@ -268,26 +268,35 @@ ok($el->viewSortKey("L\x{FF2C}\x{216C}\x{2112}\x{24C1}"),
##### 62
-my @Versions = (9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30);
+my @Versions = (9, 11, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36);
for my $v (@Versions) {
$Collator->change(UCA_Version => $v);
my $app = $v >= 26 ? ' |]' : ']';
+ my $sec = $v >= 36 ? '' : ' FFFF';
$Collator->change(variable => 'Shifted', level => 4);
ok($Collator->viewSortKey("1+2"),
'[0A0C 0A0D | 0020 0020 | 0002 0002 | FFFF 039F FFFF'.$app);
+ ok($Collator->viewSortKey("\x{4E02}"),
+ '[FB40 CE02 | 0020 | 0002 | FFFF'.$sec.$app);
$Collator->change(variable => 'Shift-Trimmed');
ok($Collator->viewSortKey("1+2"),
'[0A0C 0A0D | 0020 0020 | 0002 0002 | 039F'.$app);
+ ok($Collator->viewSortKey("\x{4E02}"),
+ '[FB40 CE02 | 0020 | 0002 |'.$app);
$Collator->change(variable => 'Non-ignorable', level => 3);
ok($Collator->viewSortKey("1+2"),
'[0A0C 039F 0A0D | 0020 0020 0020 | 0002 0002 0002 |]');
+ ok($Collator->viewSortKey("\x{4E02}"),
+ '[FB40 CE02 | 0020 | 0002 |]');
$Collator->change(variable => 'Blanked');
ok($Collator->viewSortKey("1+2"),
'[0A0C 0A0D | 0020 0020 | 0002 0002 |]');
+ ok($Collator->viewSortKey("\x{4E02}"),
+ '[FB40 CE02 | 0020 | 0002 |]');
}
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/Makefile.PL b/gnu/usr.bin/perl/cpan/Unicode-Normalize/Makefile.PL
deleted file mode 100644
index 44a4b8ded85..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/Makefile.PL
+++ /dev/null
@@ -1,55 +0,0 @@
-require 5.006001;
-use ExtUtils::MakeMaker;
-
-my $clean = {};
-
-my $mm_ver = ExtUtils::MakeMaker->VERSION;
-
-if (-f "Normalize.xs") {
- print STDERR "Making header files for XS...\n";
-
- do 'mkheader' or die $@ || "mkheader: $!";
-
- $clean = { FILES => 'unfcan.h unfcmb.h unfcmp.h unfcpt.h unfexc.h' };
-}
-
-WriteMakefile(
- ($mm_ver < 6.58)
- ? ('AUTHOR' => 'SADAHIRO Tomoyuki <SADAHIRO@cpan.org>, Karl Williamson <khw@cpan.org>')
- : ('AUTHOR' => [
- 'SADAHIRO Tomoyuki <SADAHIRO@cpan.org>',
- 'Karl Williamson <khw@cpan.org>',
- ]),
- 'ABSTRACT' => 'Unicode Normalization Forms',
- 'INSTALLDIRS' => ($] >= 5.007002 && $] < 5.011) ? 'perl' : 'site',
- # see perl5110delta, @INC reorganization
- 'LICENSE' => 'perl',
- 'NAME' => 'Unicode::Normalize',
- 'VERSION_FROM' => 'Normalize.pm', # finds $VERSION
- 'clean' => $clean,
- 'depend' => { 'Normalize.o' => '$(H_FILES)' },
- 'PREREQ_PM' => {
- Carp => 0,
- constant => 0,
- DynaLoader => 0,
- Exporter => 0,
- File::Spec => 0,
- strict => 0,
- warnings => 0,
- SelectSaver => 0,
- },
- ($mm_ver < 6.48 ? () : MIN_PERL_VERSION => 5.6.0),
- ($mm_ver < 6.46 ? () : (META_MERGE => {
- 'meta-spec' => { version => 2 },
- resources => {
- repository => {
- url => 'https://github.com/khwilliamson/Unicode-Normalize.git',
- web => 'https://github.com/khwilliamson/Unicode-Normalize',
- type => 'git',
- },
- bugtracker => {
- web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Unicode-Normalize',
- },
- },
- })),
-);
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/Normalize.pm b/gnu/usr.bin/perl/cpan/Unicode-Normalize/Normalize.pm
deleted file mode 100644
index ff6c0f0dc47..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/Normalize.pm
+++ /dev/null
@@ -1,635 +0,0 @@
-package Unicode::Normalize;
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- die "Unicode::Normalize cannot stringify a Unicode code point\n";
- }
- unless (0x41 == unpack('U', 'A')) {
- die "Unicode::Normalize cannot get Unicode code point\n";
- }
-}
-
-use 5.006;
-use strict;
-use warnings;
-use Carp;
-
-no warnings 'utf8';
-
-our $VERSION = '1.25';
-our $PACKAGE = __PACKAGE__;
-
-our @EXPORT = qw( NFC NFD NFKC NFKD );
-our @EXPORT_OK = qw(
- normalize decompose reorder compose
- checkNFD checkNFKD checkNFC checkNFKC check
- getCanon getCompat getComposite getCombinClass
- isExclusion isSingleton isNonStDecomp isComp2nd isComp_Ex
- isNFD_NO isNFC_NO isNFC_MAYBE isNFKD_NO isNFKC_NO isNFKC_MAYBE
- FCD checkFCD FCC checkFCC composeContiguous splitOnLastStarter
- normalize_partial NFC_partial NFD_partial NFKC_partial NFKD_partial
-);
-our %EXPORT_TAGS = (
- all => [ @EXPORT, @EXPORT_OK ],
- normalize => [ @EXPORT, qw/normalize decompose reorder compose/ ],
- check => [ qw/checkNFD checkNFKD checkNFC checkNFKC check/ ],
- fast => [ qw/FCD checkFCD FCC checkFCC composeContiguous/ ],
-);
-
-##
-## utilities for tests
-##
-
-sub pack_U {
- return pack('U*', @_);
-}
-
-sub unpack_U {
-
- # The empty pack returns an empty UTF-8 string, so the effect is to force
- # the shifted parameter into being UTF-8. This allows this to work on
- # Perl 5.6, where there is no utf8::upgrade().
- return unpack('U*', shift(@_).pack('U*'));
-}
-
-require Exporter;
-
-##### The above part is common to XS and PP #####
-
-our @ISA = qw(Exporter DynaLoader);
-require DynaLoader;
-bootstrap Unicode::Normalize $VERSION;
-
-##### The below part is common to XS and PP #####
-
-##
-## normalize
-##
-
-sub FCD ($) {
- my $str = shift;
- return checkFCD($str) ? $str : NFD($str);
-}
-
-our %formNorm = (
- NFC => \&NFC, C => \&NFC,
- NFD => \&NFD, D => \&NFD,
- NFKC => \&NFKC, KC => \&NFKC,
- NFKD => \&NFKD, KD => \&NFKD,
- FCD => \&FCD, FCC => \&FCC,
-);
-
-sub normalize($$)
-{
- my $form = shift;
- my $str = shift;
- if (exists $formNorm{$form}) {
- return $formNorm{$form}->($str);
- }
- croak($PACKAGE."::normalize: invalid form name: $form");
-}
-
-##
-## partial
-##
-
-sub normalize_partial ($$) {
- if (exists $formNorm{$_[0]}) {
- my $n = normalize($_[0], $_[1]);
- my($p, $u) = splitOnLastStarter($n);
- $_[1] = $u;
- return $p;
- }
- croak($PACKAGE."::normalize_partial: invalid form name: $_[0]");
-}
-
-sub NFD_partial ($) { return normalize_partial('NFD', $_[0]) }
-sub NFC_partial ($) { return normalize_partial('NFC', $_[0]) }
-sub NFKD_partial($) { return normalize_partial('NFKD',$_[0]) }
-sub NFKC_partial($) { return normalize_partial('NFKC',$_[0]) }
-
-##
-## check
-##
-
-our %formCheck = (
- NFC => \&checkNFC, C => \&checkNFC,
- NFD => \&checkNFD, D => \&checkNFD,
- NFKC => \&checkNFKC, KC => \&checkNFKC,
- NFKD => \&checkNFKD, KD => \&checkNFKD,
- FCD => \&checkFCD, FCC => \&checkFCC,
-);
-
-sub check($$)
-{
- my $form = shift;
- my $str = shift;
- if (exists $formCheck{$form}) {
- return $formCheck{$form}->($str);
- }
- croak($PACKAGE."::check: invalid form name: $form");
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Unicode::Normalize - Unicode Normalization Forms
-
-=head1 SYNOPSIS
-
-(1) using function names exported by default:
-
- use Unicode::Normalize;
-
- $NFD_string = NFD($string); # Normalization Form D
- $NFC_string = NFC($string); # Normalization Form C
- $NFKD_string = NFKD($string); # Normalization Form KD
- $NFKC_string = NFKC($string); # Normalization Form KC
-
-(2) using function names exported on request:
-
- use Unicode::Normalize 'normalize';
-
- $NFD_string = normalize('D', $string); # Normalization Form D
- $NFC_string = normalize('C', $string); # Normalization Form C
- $NFKD_string = normalize('KD', $string); # Normalization Form KD
- $NFKC_string = normalize('KC', $string); # Normalization Form KC
-
-=head1 DESCRIPTION
-
-Parameters:
-
-C<$string> is used as a string under character semantics (see F<perlunicode>).
-
-C<$code_point> should be an unsigned integer representing a Unicode code point.
-
-Note: Between XSUB and pure Perl, there is an incompatibility
-about the interpretation of C<$code_point> as a decimal number.
-XSUB converts C<$code_point> to an unsigned integer, but pure Perl does not.
-Do not use a floating point nor a negative sign in C<$code_point>.
-
-=head2 Normalization Forms
-
-=over 4
-
-=item C<$NFD_string = NFD($string)>
-
-It returns the Normalization Form D (formed by canonical decomposition).
-
-=item C<$NFC_string = NFC($string)>
-
-It returns the Normalization Form C (formed by canonical decomposition
-followed by canonical composition).
-
-=item C<$NFKD_string = NFKD($string)>
-
-It returns the Normalization Form KD (formed by compatibility decomposition).
-
-=item C<$NFKC_string = NFKC($string)>
-
-It returns the Normalization Form KC (formed by compatibility decomposition
-followed by B<canonical> composition).
-
-=item C<$FCD_string = FCD($string)>
-
-If the given string is in FCD ("Fast C or D" form; cf. UTN #5),
-it returns the string without modification; otherwise it returns an FCD string.
-
-Note: FCD is not always unique, then plural forms may be equivalent
-each other. C<FCD()> will return one of these equivalent forms.
-
-=item C<$FCC_string = FCC($string)>
-
-It returns the FCC form ("Fast C Contiguous"; cf. UTN #5).
-
-Note: FCC is unique, as well as four normalization forms (NF*).
-
-=item C<$normalized_string = normalize($form_name, $string)>
-
-It returns the normalization form of C<$form_name>.
-
-As C<$form_name>, one of the following names must be given.
-
- 'C' or 'NFC' for Normalization Form C (UAX #15)
- 'D' or 'NFD' for Normalization Form D (UAX #15)
- 'KC' or 'NFKC' for Normalization Form KC (UAX #15)
- 'KD' or 'NFKD' for Normalization Form KD (UAX #15)
-
- 'FCD' for "Fast C or D" Form (UTN #5)
- 'FCC' for "Fast C Contiguous" (UTN #5)
-
-=back
-
-=head2 Decomposition and Composition
-
-=over 4
-
-=item C<$decomposed_string = decompose($string [, $useCompatMapping])>
-
-It returns the concatenation of the decomposition of each character
-in the string.
-
-If the second parameter (a boolean) is omitted or false,
-the decomposition is canonical decomposition;
-if the second parameter (a boolean) is true,
-the decomposition is compatibility decomposition.
-
-The string returned is not always in NFD/NFKD. Reordering may be required.
-
- $NFD_string = reorder(decompose($string)); # eq. to NFD()
- $NFKD_string = reorder(decompose($string, TRUE)); # eq. to NFKD()
-
-=item C<$reordered_string = reorder($string)>
-
-It returns the result of reordering the combining characters
-according to Canonical Ordering Behavior.
-
-For example, when you have a list of NFD/NFKD strings,
-you can get the concatenated NFD/NFKD string from them, by saying
-
- $concat_NFD = reorder(join '', @NFD_strings);
- $concat_NFKD = reorder(join '', @NFKD_strings);
-
-=item C<$composed_string = compose($string)>
-
-It returns the result of canonical composition
-without applying any decomposition.
-
-For example, when you have a NFD/NFKD string,
-you can get its NFC/NFKC string, by saying
-
- $NFC_string = compose($NFD_string);
- $NFKC_string = compose($NFKD_string);
-
-=item C<($processed, $unprocessed) = splitOnLastStarter($normalized)>
-
-It returns two strings: the first one, C<$processed>, is a part
-before the last starter, and the second one, C<$unprocessed> is
-another part after the first part. A starter is a character having
-a combining class of zero (see UAX #15).
-
-Note that C<$processed> may be empty (when C<$normalized> contains no
-starter or starts with the last starter), and then C<$unprocessed>
-should be equal to the entire C<$normalized>.
-
-When you have a C<$normalized> string and an C<$unnormalized> string
-following it, a simple concatenation is wrong:
-
- $concat = $normalized . normalize($form, $unnormalized); # wrong!
-
-Instead of it, do like this:
-
- ($processed, $unprocessed) = splitOnLastStarter($normalized);
- $concat = $processed . normalize($form, $unprocessed.$unnormalized);
-
-C<splitOnLastStarter()> should be called with a pre-normalized parameter
-C<$normalized>, that is in the same form as C<$form> you want.
-
-If you have an array of C<@string> that should be concatenated and then
-normalized, you can do like this:
-
- my $result = "";
- my $unproc = "";
- foreach my $str (@string) {
- $unproc .= $str;
- my $n = normalize($form, $unproc);
- my($p, $u) = splitOnLastStarter($n);
- $result .= $p;
- $unproc = $u;
- }
- $result .= $unproc;
- # instead of normalize($form, join('', @string))
-
-=item C<$processed = normalize_partial($form, $unprocessed)>
-
-A wrapper for the combination of C<normalize()> and C<splitOnLastStarter()>.
-Note that C<$unprocessed> will be modified as a side-effect.
-
-If you have an array of C<@string> that should be concatenated and then
-normalized, you can do like this:
-
- my $result = "";
- my $unproc = "";
- foreach my $str (@string) {
- $unproc .= $str;
- $result .= normalize_partial($form, $unproc);
- }
- $result .= $unproc;
- # instead of normalize($form, join('', @string))
-
-=item C<$processed = NFD_partial($unprocessed)>
-
-It does like C<normalize_partial('NFD', $unprocessed)>.
-Note that C<$unprocessed> will be modified as a side-effect.
-
-=item C<$processed = NFC_partial($unprocessed)>
-
-It does like C<normalize_partial('NFC', $unprocessed)>.
-Note that C<$unprocessed> will be modified as a side-effect.
-
-=item C<$processed = NFKD_partial($unprocessed)>
-
-It does like C<normalize_partial('NFKD', $unprocessed)>.
-Note that C<$unprocessed> will be modified as a side-effect.
-
-=item C<$processed = NFKC_partial($unprocessed)>
-
-It does like C<normalize_partial('NFKC', $unprocessed)>.
-Note that C<$unprocessed> will be modified as a side-effect.
-
-=back
-
-=head2 Quick Check
-
-(see Annex 8, UAX #15; and F<DerivedNormalizationProps.txt>)
-
-The following functions check whether the string is in that normalization form.
-
-The result returned will be one of the following:
-
- YES The string is in that normalization form.
- NO The string is not in that normalization form.
- MAYBE Dubious. Maybe yes, maybe no.
-
-=over 4
-
-=item C<$result = checkNFD($string)>
-
-It returns true (C<1>) if C<YES>; false (C<empty string>) if C<NO>.
-
-=item C<$result = checkNFC($string)>
-
-It returns true (C<1>) if C<YES>; false (C<empty string>) if C<NO>;
-C<undef> if C<MAYBE>.
-
-=item C<$result = checkNFKD($string)>
-
-It returns true (C<1>) if C<YES>; false (C<empty string>) if C<NO>.
-
-=item C<$result = checkNFKC($string)>
-
-It returns true (C<1>) if C<YES>; false (C<empty string>) if C<NO>;
-C<undef> if C<MAYBE>.
-
-=item C<$result = checkFCD($string)>
-
-It returns true (C<1>) if C<YES>; false (C<empty string>) if C<NO>.
-
-=item C<$result = checkFCC($string)>
-
-It returns true (C<1>) if C<YES>; false (C<empty string>) if C<NO>;
-C<undef> if C<MAYBE>.
-
-Note: If a string is not in FCD, it must not be in FCC.
-So C<checkFCC($not_FCD_string)> should return C<NO>.
-
-=item C<$result = check($form_name, $string)>
-
-It returns true (C<1>) if C<YES>; false (C<empty string>) if C<NO>;
-C<undef> if C<MAYBE>.
-
-As C<$form_name>, one of the following names must be given.
-
- 'C' or 'NFC' for Normalization Form C (UAX #15)
- 'D' or 'NFD' for Normalization Form D (UAX #15)
- 'KC' or 'NFKC' for Normalization Form KC (UAX #15)
- 'KD' or 'NFKD' for Normalization Form KD (UAX #15)
-
- 'FCD' for "Fast C or D" Form (UTN #5)
- 'FCC' for "Fast C Contiguous" (UTN #5)
-
-=back
-
-B<Note>
-
-In the cases of NFD, NFKD, and FCD, the answer must be
-either C<YES> or C<NO>. The answer C<MAYBE> may be returned
-in the cases of NFC, NFKC, and FCC.
-
-A C<MAYBE> string should contain at least one combining character
-or the like. For example, C<COMBINING ACUTE ACCENT> has
-the MAYBE_NFC/MAYBE_NFKC property.
-
-Both C<checkNFC("A\N{COMBINING ACUTE ACCENT}")>
-and C<checkNFC("B\N{COMBINING ACUTE ACCENT}")> will return C<MAYBE>.
-C<"A\N{COMBINING ACUTE ACCENT}"> is not in NFC
-(its NFC is C<"\N{LATIN CAPITAL LETTER A WITH ACUTE}">),
-while C<"B\N{COMBINING ACUTE ACCENT}"> is in NFC.
-
-If you want to check exactly, compare the string with its NFC/NFKC/FCC.
-
- if ($string eq NFC($string)) {
- # $string is exactly normalized in NFC;
- } else {
- # $string is not normalized in NFC;
- }
-
- if ($string eq NFKC($string)) {
- # $string is exactly normalized in NFKC;
- } else {
- # $string is not normalized in NFKC;
- }
-
-=head2 Character Data
-
-These functions are interface of character data used internally.
-If you want only to get Unicode normalization forms, you don't need
-call them yourself.
-
-=over 4
-
-=item C<$canonical_decomposition = getCanon($code_point)>
-
-If the character is canonically decomposable (including Hangul Syllables),
-it returns the (full) canonical decomposition as a string.
-Otherwise it returns C<undef>.
-
-B<Note:> According to the Unicode standard, the canonical decomposition
-of the character that is not canonically decomposable is same as
-the character itself.
-
-=item C<$compatibility_decomposition = getCompat($code_point)>
-
-If the character is compatibility decomposable (including Hangul Syllables),
-it returns the (full) compatibility decomposition as a string.
-Otherwise it returns C<undef>.
-
-B<Note:> According to the Unicode standard, the compatibility decomposition
-of the character that is not compatibility decomposable is same as
-the character itself.
-
-=item C<$code_point_composite = getComposite($code_point_here, $code_point_next)>
-
-If two characters here and next (as code points) are composable
-(including Hangul Jamo/Syllables and Composition Exclusions),
-it returns the code point of the composite.
-
-If they are not composable, it returns C<undef>.
-
-=item C<$combining_class = getCombinClass($code_point)>
-
-It returns the combining class (as an integer) of the character.
-
-=item C<$may_be_composed_with_prev_char = isComp2nd($code_point)>
-
-It returns a boolean whether the character of the specified codepoint
-may be composed with the previous one in a certain composition
-(including Hangul Compositions, but excluding
-Composition Exclusions and Non-Starter Decompositions).
-
-=item C<$is_exclusion = isExclusion($code_point)>
-
-It returns a boolean whether the code point is a composition exclusion.
-
-=item C<$is_singleton = isSingleton($code_point)>
-
-It returns a boolean whether the code point is a singleton
-
-=item C<$is_non_starter_decomposition = isNonStDecomp($code_point)>
-
-It returns a boolean whether the code point has Non-Starter Decomposition.
-
-=item C<$is_Full_Composition_Exclusion = isComp_Ex($code_point)>
-
-It returns a boolean of the derived property Comp_Ex
-(Full_Composition_Exclusion). This property is generated from
-Composition Exclusions + Singletons + Non-Starter Decompositions.
-
-=item C<$NFD_is_NO = isNFD_NO($code_point)>
-
-It returns a boolean of the derived property NFD_NO
-(NFD_Quick_Check=No).
-
-=item C<$NFC_is_NO = isNFC_NO($code_point)>
-
-It returns a boolean of the derived property NFC_NO
-(NFC_Quick_Check=No).
-
-=item C<$NFC_is_MAYBE = isNFC_MAYBE($code_point)>
-
-It returns a boolean of the derived property NFC_MAYBE
-(NFC_Quick_Check=Maybe).
-
-=item C<$NFKD_is_NO = isNFKD_NO($code_point)>
-
-It returns a boolean of the derived property NFKD_NO
-(NFKD_Quick_Check=No).
-
-=item C<$NFKC_is_NO = isNFKC_NO($code_point)>
-
-It returns a boolean of the derived property NFKC_NO
-(NFKC_Quick_Check=No).
-
-=item C<$NFKC_is_MAYBE = isNFKC_MAYBE($code_point)>
-
-It returns a boolean of the derived property NFKC_MAYBE
-(NFKC_Quick_Check=Maybe).
-
-=back
-
-=head1 EXPORT
-
-C<NFC>, C<NFD>, C<NFKC>, C<NFKD>: by default.
-
-C<normalize> and other some functions: on request.
-
-=head1 CAVEATS
-
-=over 4
-
-=item Perl's version vs. Unicode version
-
-Since this module refers to perl core's Unicode database in the directory
-F</lib/unicore> (or formerly F</lib/unicode>), the Unicode version of
-normalization implemented by this module depends on what has been
-compiled into your perl. The following table lists the default Unicode
-version that comes with various perl versions. (It is possible to change
-the Unicode version in any perl version to be any earlier Unicode version,
-so one could cause Unicode 3.2 to be used in any perl version starting with
-5.8.0. See C<$Config{privlib}>/F<unicore/README.perl>.
-
- perl's version implemented Unicode version
- 5.6.1 3.0.1
- 5.7.2 3.1.0
- 5.7.3 3.1.1 (normalization is same as 3.1.0)
- 5.8.0 3.2.0
- 5.8.1-5.8.3 4.0.0
- 5.8.4-5.8.6 4.0.1 (normalization is same as 4.0.0)
- 5.8.7-5.8.8 4.1.0
- 5.10.0 5.0.0
- 5.8.9, 5.10.1 5.1.0
- 5.12.x 5.2.0
- 5.14.x 6.0.0
- 5.16.x 6.1.0
- 5.18.x 6.2.0
- 5.20.x 6.3.0
- 5.22.x 7.0.0
-
-=item Correction of decomposition mapping
-
-In older Unicode versions, a small number of characters (all of which are
-CJK compatibility ideographs as far as they have been found) may have
-an erroneous decomposition mapping (see F<NormalizationCorrections.txt>).
-Anyhow, this module will neither refer to F<NormalizationCorrections.txt>
-nor provide any specific version of normalization. Therefore this module
-running on an older perl with an older Unicode database may use
-the erroneous decomposition mapping blindly conforming to the Unicode database.
-
-=item Revised definition of canonical composition
-
-In Unicode 4.1.0, the definition D2 of canonical composition (which
-affects NFC and NFKC) has been changed (see Public Review Issue #29
-and recent UAX #15). This module has used the newer definition
-since the version 0.07 (Oct 31, 2001).
-This module will not support the normalization according to the older
-definition, even if the Unicode version implemented by perl is
-lower than 4.1.0.
-
-=back
-
-=head1 AUTHOR
-
-SADAHIRO Tomoyuki <SADAHIRO@cpan.org>
-
-Currently maintained by <perl5-porters@perl.org>
-
-Copyright(C) 2001-2012, SADAHIRO Tomoyuki. Japan. All rights reserved.
-
-=head1 LICENSE
-
-This module is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-=over 4
-
-=item http://www.unicode.org/reports/tr15/
-
-Unicode Normalization Forms - UAX #15
-
-=item http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt
-
-Composition Exclusion Table
-
-=item http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt
-
-Derived Normalization Properties
-
-=item http://www.unicode.org/Public/UNIDATA/NormalizationCorrections.txt
-
-Normalization Corrections
-
-=item http://www.unicode.org/review/pr-29.html
-
-Public Review Issue #29: Normalization Issue
-
-=item http://www.unicode.org/notes/tn5/
-
-Canonical Equivalence in Applications - UTN #5
-
-=back
-
-=cut
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/Normalize.xs b/gnu/usr.bin/perl/cpan/Unicode-Normalize/Normalize.xs
deleted file mode 100644
index 4acff7fe490..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/Normalize.xs
+++ /dev/null
@@ -1,925 +0,0 @@
-
-#define PERL_NO_GET_CONTEXT /* we want efficiency */
-
-/* private functions which need pTHX_ and aTHX_
- pv_cat_decompHangul
- sv_2pvunicode
- pv_utf8_decompose
- pv_utf8_reorder
- pv_utf8_compose
-*/
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-/* These 5 files are prepared by mkheader */
-#include "unfcmb.h"
-#include "unfcan.h"
-#include "unfcpt.h"
-#include "unfcmp.h"
-#include "unfexc.h"
-
-/* The generated normalization tables since v5.20 are in native character set
- * terms. Prior to that, they were in Unicode terms. So we use 'uvchr' for
- * later perls, and redefine that to be 'uvuni' for earlier ones */
-#if PERL_VERSION < 20
-# undef uvchr_to_utf8
-# ifdef uvuni_to_utf8
-# define uvchr_to_utf8 uvuni_to_utf8
-# else /* Perl 5.6.1 */
-# define uvchr_to_utf8 uv_to_utf8
-# endif
-
-# undef utf8n_to_uvchr
-# ifdef utf8n_to_uvuni
-# define utf8n_to_uvchr utf8n_to_uvuni
-# else /* Perl 5.6.1 */
-# define utf8n_to_uvchr utf8_to_uv
-# endif
-#endif
-
-/* UTF8_ALLOW_BOM is used before Perl 5.8.0 */
-#ifndef UTF8_ALLOW_BOM
-#define UTF8_ALLOW_BOM (0)
-#endif /* UTF8_ALLOW_BOM */
-
-#ifndef UTF8_ALLOW_SURROGATE
-#define UTF8_ALLOW_SURROGATE (0)
-#endif /* UTF8_ALLOW_SURROGATE */
-
-#ifndef UTF8_ALLOW_FE_FF
-#define UTF8_ALLOW_FE_FF (0)
-#endif /* UTF8_ALLOW_FE_FF */
-
-#ifndef UTF8_ALLOW_FFFF
-#define UTF8_ALLOW_FFFF (0)
-#endif /* UTF8_ALLOW_FFFF */
-
-#ifndef PERL_UNUSED_VAR
-# define PERL_UNUSED_VAR(x) ((void)sizeof(x))
-#endif
-
-#define AllowAnyUTF (UTF8_ALLOW_SURROGATE|UTF8_ALLOW_BOM|UTF8_ALLOW_FE_FF|UTF8_ALLOW_FFFF)
-
-/* check if the string buffer is enough before uvchr_to_utf8(). */
-/* dstart, d, and dlen should be defined outside before. */
-#define Renew_d_if_not_enough_to(need) STRLEN curlen = d - dstart; \
- if (dlen < curlen + (need)) { \
- dlen += (need); \
- Renew(dstart, dlen+1, U8); \
- d = dstart + curlen; \
- }
-
-/* if utf8n_to_uvchr() sets retlen to 0 (if broken?) */
-#define ErrRetlenIsZero "panic (Unicode::Normalize %s): zero-length character"
-
-/* utf8_hop() hops back before start. Maybe broken UTF-8 */
-#define ErrHopBeforeStart "panic (Unicode::Normalize): hopping before start"
-
-/* At present, char > 0x10ffff are unaffected without complaint, right? */
-#define VALID_UTF_MAX (0x10ffff)
-#define OVER_UTF_MAX(uv) (VALID_UTF_MAX < (uv))
-
-/* size of array for combining characters */
-/* enough as an initial value? */
-#define CC_SEQ_SIZE (10)
-#define CC_SEQ_STEP (5)
-
-/* HANGUL begin */
-#define Hangul_SBase 0xAC00
-#define Hangul_SFinal 0xD7A3
-#define Hangul_SCount 11172
-
-#define Hangul_NCount 588
-
-#define Hangul_LBase 0x1100
-#define Hangul_LFinal 0x1112
-#define Hangul_LCount 19
-
-#define Hangul_VBase 0x1161
-#define Hangul_VFinal 0x1175
-#define Hangul_VCount 21
-
-#define Hangul_TBase 0x11A7
-#define Hangul_TFinal 0x11C2
-#define Hangul_TCount 28
-
-#define Hangul_IsS(u) ((Hangul_SBase <= (u)) && ((u) <= Hangul_SFinal))
-#define Hangul_IsN(u) (((u) - Hangul_SBase) % Hangul_TCount == 0)
-#define Hangul_IsLV(u) (Hangul_IsS(u) && Hangul_IsN(u))
-#define Hangul_IsL(u) ((Hangul_LBase <= (u)) && ((u) <= Hangul_LFinal))
-#define Hangul_IsV(u) ((Hangul_VBase <= (u)) && ((u) <= Hangul_VFinal))
-#define Hangul_IsT(u) ((Hangul_TBase < (u)) && ((u) <= Hangul_TFinal))
-/* HANGUL end */
-
-/* this is used for canonical ordering of combining characters (c.c.). */
-typedef struct {
- U8 cc; /* combining class */
- UV uv; /* codepoint */
- STRLEN pos; /* position */
-} UNF_cc;
-
-static int compare_cc(const void *a, const void *b)
-{
- int ret_cc;
- ret_cc = ((UNF_cc*) a)->cc - ((UNF_cc*) b)->cc;
- if (ret_cc)
- return ret_cc;
-
- return ( ((UNF_cc*) a)->pos > ((UNF_cc*) b)->pos )
- - ( ((UNF_cc*) a)->pos < ((UNF_cc*) b)->pos );
-}
-
-static U8* dec_canonical(UV uv)
-{
- U8 ***plane, **row;
- if (OVER_UTF_MAX(uv))
- return NULL;
- plane = (U8***)UNF_canon[uv >> 16];
- if (! plane)
- return NULL;
- row = plane[(uv >> 8) & 0xff];
- return row ? row[uv & 0xff] : NULL;
-}
-
-static U8* dec_compat(UV uv)
-{
- U8 ***plane, **row;
- if (OVER_UTF_MAX(uv))
- return NULL;
- plane = (U8***)UNF_compat[uv >> 16];
- if (! plane)
- return NULL;
- row = plane[(uv >> 8) & 0xff];
- return row ? row[uv & 0xff] : NULL;
-}
-
-static UV composite_uv(UV uv, UV uv2)
-{
- UNF_complist ***plane, **row, *cell, *i;
-
- if (!uv2 || OVER_UTF_MAX(uv) || OVER_UTF_MAX(uv2))
- return 0;
-
- if (Hangul_IsL(uv) && Hangul_IsV(uv2)) {
- UV lindex = uv - Hangul_LBase;
- UV vindex = uv2 - Hangul_VBase;
- return(Hangul_SBase + (lindex * Hangul_VCount + vindex) *
- Hangul_TCount);
- }
- if (Hangul_IsLV(uv) && Hangul_IsT(uv2)) {
- UV tindex = uv2 - Hangul_TBase;
- return(uv + tindex);
- }
- plane = UNF_compos[uv >> 16];
- if (! plane)
- return 0;
- row = plane[(uv >> 8) & 0xff];
- if (! row)
- return 0;
- cell = row[uv & 0xff];
- if (! cell)
- return 0;
- for (i = cell; i->nextchar; i++) {
- if (uv2 == i->nextchar)
- return i->composite;
- }
- return 0;
-}
-
-static U8 getCombinClass(UV uv)
-{
- U8 **plane, *row;
- if (OVER_UTF_MAX(uv))
- return 0;
- plane = (U8**)UNF_combin[uv >> 16];
- if (! plane)
- return 0;
- row = plane[(uv >> 8) & 0xff];
- return row ? row[uv & 0xff] : 0;
-}
-
-static U8* pv_cat_decompHangul(pTHX_ U8* d, UV uv)
-{
- UV sindex = uv - Hangul_SBase;
- UV lindex = sindex / Hangul_NCount;
- UV vindex = (sindex % Hangul_NCount) / Hangul_TCount;
- UV tindex = sindex % Hangul_TCount;
-
- if (! Hangul_IsS(uv))
- return d;
-
- d = uvchr_to_utf8(d, (lindex + Hangul_LBase));
- d = uvchr_to_utf8(d, (vindex + Hangul_VBase));
- if (tindex)
- d = uvchr_to_utf8(d, (tindex + Hangul_TBase));
- return d;
-}
-
-static char* sv_2pvunicode(pTHX_ SV *sv, STRLEN *lp)
-{
- char *s;
- STRLEN len;
- s = SvPV(sv,len);
- if (!SvUTF8(sv)) {
- SV* tmpsv = sv_2mortal(newSVpvn(s, len));
- if (!SvPOK(tmpsv))
- s = SvPV_force(tmpsv,len);
- sv_utf8_upgrade(tmpsv);
- s = SvPV(tmpsv,len);
- }
- if (lp)
- *lp = len;
- return s;
-}
-
-static
-U8* pv_utf8_decompose(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen, bool iscompat)
-{
- U8* p = s;
- U8* e = s + slen;
- U8* dstart = *dp;
- U8* d = dstart;
-
- while (p < e) {
- STRLEN retlen;
- UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF);
- if (!retlen)
- croak(ErrRetlenIsZero, "decompose");
- p += retlen;
-
- if (Hangul_IsS(uv)) {
- Renew_d_if_not_enough_to(UTF8_MAXLEN * 3)
- d = pv_cat_decompHangul(aTHX_ d, uv);
- }
- else {
- U8* r = iscompat ? dec_compat(uv) : dec_canonical(uv);
-
- if (r) {
- STRLEN len = (STRLEN)strlen((char *)r);
- Renew_d_if_not_enough_to(len)
- while (len--)
- *d++ = *r++;
- }
- else {
- Renew_d_if_not_enough_to(UTF8_MAXLEN)
- d = uvchr_to_utf8(d, uv);
- }
- }
- }
- *dp = dstart;
- return d;
-}
-
-static
-U8* pv_utf8_reorder(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen)
-{
- U8* p = s;
- U8* e = s + slen;
- U8* dstart = *dp;
- U8* d = dstart;
-
- UNF_cc seq_ary[CC_SEQ_SIZE];
- UNF_cc* seq_ptr = seq_ary; /* use array at the beginning */
- UNF_cc* seq_ext = NULL; /* extend if need */
- STRLEN seq_max = CC_SEQ_SIZE;
- STRLEN cc_pos = 0;
-
- while (p < e) {
- U8 curCC;
- STRLEN retlen;
- UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF);
- if (!retlen)
- croak(ErrRetlenIsZero, "reorder");
- p += retlen;
-
- curCC = getCombinClass(uv);
-
- if (curCC != 0) {
- if (seq_max < cc_pos + 1) { /* extend if need */
- seq_max = cc_pos + CC_SEQ_STEP; /* new size */
- if (CC_SEQ_SIZE == cc_pos) { /* seq_ary full */
- STRLEN i;
- New(0, seq_ext, seq_max, UNF_cc);
- for (i = 0; i < cc_pos; i++)
- seq_ext[i] = seq_ary[i];
- }
- else {
- Renew(seq_ext, seq_max, UNF_cc);
- }
- seq_ptr = seq_ext; /* use seq_ext from now */
- }
-
- seq_ptr[cc_pos].cc = curCC;
- seq_ptr[cc_pos].uv = uv;
- seq_ptr[cc_pos].pos = cc_pos;
- ++cc_pos;
-
- if (p < e)
- continue;
- }
-
- /* output */
- if (cc_pos) {
- STRLEN i;
-
- if (cc_pos > 1) /* reordered if there are two c.c.'s */
- qsort((void*)seq_ptr, cc_pos, sizeof(UNF_cc), compare_cc);
-
- for (i = 0; i < cc_pos; i++) {
- Renew_d_if_not_enough_to(UTF8_MAXLEN)
- d = uvchr_to_utf8(d, seq_ptr[i].uv);
- }
- cc_pos = 0;
- }
-
- if (curCC == 0) {
- Renew_d_if_not_enough_to(UTF8_MAXLEN)
- d = uvchr_to_utf8(d, uv);
- }
- }
- if (seq_ext)
- Safefree(seq_ext);
- *dp = dstart;
- return d;
-}
-
-static
-U8* pv_utf8_compose(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen, bool iscontig)
-{
- U8* p = s;
- U8* e = s + slen;
- U8* dstart = *dp;
- U8* d = dstart;
-
- UV uvS = 0; /* code point of the starter */
- bool valid_uvS = FALSE; /* if FALSE, uvS isn't initialized yet */
- U8 preCC = 0;
-
- UV seq_ary[CC_SEQ_SIZE];
- UV* seq_ptr = seq_ary; /* use array at the beginning */
- UV* seq_ext = NULL; /* extend if need */
- STRLEN seq_max = CC_SEQ_SIZE;
- STRLEN cc_pos = 0;
-
- while (p < e) {
- U8 curCC;
- STRLEN retlen;
- UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF);
- if (!retlen)
- croak(ErrRetlenIsZero, "compose");
- p += retlen;
-
- curCC = getCombinClass(uv);
-
- if (!valid_uvS) {
- if (curCC == 0) {
- uvS = uv; /* the first Starter is found */
- valid_uvS = TRUE;
- if (p < e)
- continue;
- }
- else {
- Renew_d_if_not_enough_to(UTF8_MAXLEN)
- d = uvchr_to_utf8(d, uv);
- continue;
- }
- }
- else {
- bool composed;
-
- /* blocked */
- if ((iscontig && cc_pos) || /* discontiguous combination */
- (curCC != 0 && preCC == curCC) || /* blocked by same CC */
- (preCC > curCC)) /* blocked by higher CC: revised D2 */
- composed = FALSE;
-
- /* not blocked:
- iscontig && cc_pos == 0 -- contiguous combination
- curCC == 0 && preCC == 0 -- starter + starter
- curCC != 0 && preCC < curCC -- lower CC */
- else {
- /* try composition */
- UV uvComp = composite_uv(uvS, uv);
-
- if (uvComp && !isExclusion(uvComp)) {
- uvS = uvComp;
- composed = TRUE;
-
- /* preCC should not be changed to curCC */
- /* e.g. 1E14 = 0045 0304 0300 where CC(0304) == CC(0300) */
- if (p < e)
- continue;
- }
- else
- composed = FALSE;
- }
-
- if (!composed) {
- preCC = curCC;
- if (curCC != 0 || !(p < e)) {
- if (seq_max < cc_pos + 1) { /* extend if need */
- seq_max = cc_pos + CC_SEQ_STEP; /* new size */
- if (CC_SEQ_SIZE == cc_pos) { /* seq_ary full */
- New(0, seq_ext, seq_max, UV);
- Copy(seq_ary, seq_ext, cc_pos, UV);
- }
- else {
- Renew(seq_ext, seq_max, UV);
- }
- seq_ptr = seq_ext; /* use seq_ext from now */
- }
- seq_ptr[cc_pos] = uv;
- ++cc_pos;
- }
- if (curCC != 0 && p < e)
- continue;
- }
- }
-
- /* output */
- {
- Renew_d_if_not_enough_to(UTF8_MAXLEN)
- d = uvchr_to_utf8(d, uvS); /* starter (composed or not) */
- }
-
- if (cc_pos) {
- STRLEN i;
-
- for (i = 0; i < cc_pos; i++) {
- Renew_d_if_not_enough_to(UTF8_MAXLEN)
- d = uvchr_to_utf8(d, seq_ptr[i]);
- }
- cc_pos = 0;
- }
-
- uvS = uv;
- }
- if (seq_ext)
- Safefree(seq_ext);
- *dp = dstart;
- return d;
-}
-
-MODULE = Unicode::Normalize PACKAGE = Unicode::Normalize
-
-SV*
-decompose(src, compat = &PL_sv_no)
- SV * src
- SV * compat
- PROTOTYPE: $;$
- PREINIT:
- SV* dst;
- U8 *s, *d, *dend;
- STRLEN slen, dlen;
- CODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
- dst = newSVpvn("", 0);
- dlen = slen;
- New(0, d, dlen+1, U8);
- dend = pv_utf8_decompose(aTHX_ s, slen, &d, dlen, (bool)SvTRUE(compat));
- sv_setpvn(dst, (char *)d, dend - d);
- SvUTF8_on(dst);
- Safefree(d);
- RETVAL = dst;
- OUTPUT:
- RETVAL
-
-
-SV*
-reorder(src)
- SV * src
- PROTOTYPE: $
- PREINIT:
- SV* dst;
- U8 *s, *d, *dend;
- STRLEN slen, dlen;
- CODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
- dst = newSVpvn("", 0);
- dlen = slen;
- New(0, d, dlen+1, U8);
- dend = pv_utf8_reorder(aTHX_ s, slen, &d, dlen);
- sv_setpvn(dst, (char *)d, dend - d);
- SvUTF8_on(dst);
- Safefree(d);
- RETVAL = dst;
- OUTPUT:
- RETVAL
-
-
-SV*
-compose(src)
- SV * src
- PROTOTYPE: $
- ALIAS:
- composeContiguous = 1
- PREINIT:
- SV* dst;
- U8 *s, *d, *dend;
- STRLEN slen, dlen;
- CODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
- dst = newSVpvn("", 0);
- dlen = slen;
- New(0, d, dlen+1, U8);
- dend = pv_utf8_compose(aTHX_ s, slen, &d, dlen, (bool)ix);
- sv_setpvn(dst, (char *)d, dend - d);
- SvUTF8_on(dst);
- Safefree(d);
- RETVAL = dst;
- OUTPUT:
- RETVAL
-
-
-SV*
-NFD(src)
- SV * src
- PROTOTYPE: $
- ALIAS:
- NFKD = 1
- PREINIT:
- SV *dst;
- U8 *s, *t, *tend, *d, *dend;
- STRLEN slen, tlen, dlen;
- CODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
-
- /* decompose */
- tlen = slen;
- New(0, t, tlen+1, U8);
- tend = pv_utf8_decompose(aTHX_ s, slen, &t, tlen, (bool)(ix==1));
- *tend = '\0';
- tlen = tend - t; /* no longer know real size of t */
-
- /* reorder */
- dlen = tlen;
- New(0, d, dlen+1, U8);
- dend = pv_utf8_reorder(aTHX_ t, tlen, &d, dlen);
- *dend = '\0';
- dlen = dend - d; /* no longer know real size of d */
-
- /* return */
- dst = newSVpvn("", 0);
- sv_setpvn(dst, (char *)d, dlen);
- SvUTF8_on(dst);
-
- Safefree(t);
- Safefree(d);
- RETVAL = dst;
- OUTPUT:
- RETVAL
-
-
-SV*
-NFC(src)
- SV * src
- PROTOTYPE: $
- ALIAS:
- NFKC = 1
- FCC = 2
- PREINIT:
- SV *dst;
- U8 *s, *t, *tend, *u, *uend, *d, *dend;
- STRLEN slen, tlen, ulen, dlen;
- CODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
-
- /* decompose */
- tlen = slen;
- New(0, t, tlen+1, U8);
- tend = pv_utf8_decompose(aTHX_ s, slen, &t, tlen, (bool)(ix==1));
- *tend = '\0';
- tlen = tend - t; /* no longer know real size of t */
-
- /* reorder */
- ulen = tlen;
- New(0, u, ulen+1, U8);
- uend = pv_utf8_reorder(aTHX_ t, tlen, &u, ulen);
- *uend = '\0';
- ulen = uend - u; /* no longer know real size of u */
-
- /* compose */
- dlen = ulen;
- New(0, d, dlen+1, U8);
- dend = pv_utf8_compose(aTHX_ u, ulen, &d, dlen, (bool)(ix==2));
- *dend = '\0';
- dlen = dend - d; /* no longer know real size of d */
-
- /* return */
- dst = newSVpvn("", 0);
- sv_setpvn(dst, (char *)d, dlen);
- SvUTF8_on(dst);
-
- Safefree(t);
- Safefree(u);
- Safefree(d);
- RETVAL = dst;
- OUTPUT:
- RETVAL
-
-
-SV*
-checkNFD(src)
- SV * src
- PROTOTYPE: $
- ALIAS:
- checkNFKD = 1
- PREINIT:
- STRLEN srclen, retlen;
- U8 *s, *e, *p, curCC, preCC;
- bool result = TRUE;
- CODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&srclen);
- e = s + srclen;
-
- preCC = 0;
- for (p = s; p < e; p += retlen) {
- UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF);
- if (!retlen)
- croak(ErrRetlenIsZero, "checkNFD or -NFKD");
-
- curCC = getCombinClass(uv);
- if (preCC > curCC && curCC != 0) { /* canonical ordering violated */
- result = FALSE;
- break;
- }
- if (Hangul_IsS(uv) || (ix ? dec_compat(uv) : dec_canonical(uv))) {
- result = FALSE;
- break;
- }
- preCC = curCC;
- }
- RETVAL = boolSV(result);
- OUTPUT:
- RETVAL
-
-
-SV*
-checkNFC(src)
- SV * src
- PROTOTYPE: $
- ALIAS:
- checkNFKC = 1
- PREINIT:
- STRLEN srclen, retlen;
- U8 *s, *e, *p, curCC, preCC;
- bool result = TRUE;
- bool isMAYBE = FALSE;
- CODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&srclen);
- e = s + srclen;
-
- preCC = 0;
- for (p = s; p < e; p += retlen) {
- UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF);
- if (!retlen)
- croak(ErrRetlenIsZero, "checkNFC or -NFKC");
-
- curCC = getCombinClass(uv);
- if (preCC > curCC && curCC != 0) { /* canonical ordering violated */
- result = FALSE;
- break;
- }
-
- /* get NFC/NFKC property */
- if (Hangul_IsS(uv)) /* Hangul syllables are canonical composites */
- ; /* YES */
- else if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv)) {
- result = FALSE;
- break;
- }
- else if (isComp2nd(uv))
- isMAYBE = TRUE;
- else if (ix) {
- char *canon, *compat;
- /* NFKC_NO when having compatibility mapping. */
- canon = (char *) dec_canonical(uv);
- compat = (char *) dec_compat(uv);
- if (compat && !(canon && strEQ(canon, compat))) {
- result = FALSE;
- break;
- }
- } /* end of get NFC/NFKC property */
-
- preCC = curCC;
- }
- if (isMAYBE && result) /* NO precedes MAYBE */
- XSRETURN_UNDEF;
- RETVAL = boolSV(result);
- OUTPUT:
- RETVAL
-
-
-SV*
-checkFCD(src)
- SV * src
- PROTOTYPE: $
- ALIAS:
- checkFCC = 1
- PREINIT:
- STRLEN srclen, retlen;
- U8 *s, *e, *p, curCC, preCC;
- bool result = TRUE;
- bool isMAYBE = FALSE;
- CODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&srclen);
- e = s + srclen;
- preCC = 0;
- for (p = s; p < e; p += retlen) {
- U8 *sCan;
- UV uvLead;
- STRLEN canlen = 0;
- UV uv = utf8n_to_uvchr(p, e - p, &retlen, AllowAnyUTF);
- if (!retlen)
- croak(ErrRetlenIsZero, "checkFCD or -FCC");
-
- sCan = (U8*) dec_canonical(uv);
-
- if (sCan) {
- STRLEN canret;
- canlen = (STRLEN)strlen((char *) sCan);
- uvLead = utf8n_to_uvchr(sCan, canlen, &canret, AllowAnyUTF);
- if (!canret)
- croak(ErrRetlenIsZero, "checkFCD or -FCC");
- }
- else {
- uvLead = uv;
- }
-
- curCC = getCombinClass(uvLead);
-
- if (curCC != 0 && curCC < preCC) { /* canonical ordering violated */
- result = FALSE;
- break;
- }
-
- if (ix) {
- if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv)) {
- result = FALSE;
- break;
- }
- else if (isComp2nd(uv))
- isMAYBE = TRUE;
- }
-
- if (sCan) {
- STRLEN canret;
- UV uvTrail;
- U8* eCan = sCan + canlen;
- U8* pCan = utf8_hop(eCan, -1);
- if (pCan < sCan)
- croak(ErrHopBeforeStart);
- uvTrail = utf8n_to_uvchr(pCan, eCan - pCan, &canret, AllowAnyUTF);
- if (!canret)
- croak(ErrRetlenIsZero, "checkFCD or -FCC");
- preCC = getCombinClass(uvTrail);
- }
- else {
- preCC = curCC;
- }
- }
- if (isMAYBE && result) /* NO precedes MAYBE */
- XSRETURN_UNDEF;
- RETVAL = boolSV(result);
- OUTPUT:
- RETVAL
-
-
-U8
-getCombinClass(uv)
- UV uv
- PROTOTYPE: $
-
-bool
-isExclusion(uv)
- UV uv
- PROTOTYPE: $
-
-bool
-isSingleton(uv)
- UV uv
- PROTOTYPE: $
-
-bool
-isNonStDecomp(uv)
- UV uv
- PROTOTYPE: $
-
-bool
-isComp2nd(uv)
- UV uv
- PROTOTYPE: $
- ALIAS:
- isNFC_MAYBE = 1
- isNFKC_MAYBE = 2
- INIT:
- PERL_UNUSED_VAR(ix);
-
-SV*
-isNFD_NO(uv)
- UV uv
- PROTOTYPE: $
- ALIAS:
- isNFKD_NO = 1
- PREINIT:
- bool result = FALSE;
- CODE:
- if (Hangul_IsS(uv) || (ix ? dec_compat(uv) : dec_canonical(uv)))
- result = TRUE; /* NFD_NO or NFKD_NO */
- RETVAL = boolSV(result);
- OUTPUT:
- RETVAL
-
-
-SV*
-isComp_Ex(uv)
- UV uv
- PROTOTYPE: $
- ALIAS:
- isNFC_NO = 0
- isNFKC_NO = 1
- PREINIT:
- bool result = FALSE;
- CODE:
- if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv))
- result = TRUE; /* NFC_NO or NFKC_NO */
- else if (ix) {
- char *canon, *compat;
- canon = (char *) dec_canonical(uv);
- compat = (char *) dec_compat(uv);
- if (compat && (!canon || strNE(canon, compat)))
- result = TRUE; /* NFC_NO or NFKC_NO */
- }
- RETVAL = boolSV(result);
- OUTPUT:
- RETVAL
-
-SV*
-getComposite(uv, uv2)
- UV uv
- UV uv2
- PROTOTYPE: $$
- PREINIT:
- UV composite;
- CODE:
- composite = composite_uv(uv, uv2);
- RETVAL = composite ? newSVuv(composite) : &PL_sv_undef;
- OUTPUT:
- RETVAL
-
-
-
-SV*
-getCanon(uv)
- UV uv
- PROTOTYPE: $
- ALIAS:
- getCompat = 1
- CODE:
- if (Hangul_IsS(uv)) {
- U8 tmp[3 * UTF8_MAXLEN + 1];
- U8 *t = tmp;
- U8 *e = pv_cat_decompHangul(aTHX_ t, uv);
- RETVAL = newSVpvn((char *)t, e - t);
- } else {
- U8* rstr = ix ? dec_compat(uv) : dec_canonical(uv);
- if (!rstr)
- XSRETURN_UNDEF;
- RETVAL = newSVpvn((char *)rstr, strlen((char *)rstr));
- }
- SvUTF8_on(RETVAL);
- OUTPUT:
- RETVAL
-
-
-void
-splitOnLastStarter(src)
- SV * src
- PREINIT:
- SV *svp;
- STRLEN srclen;
- U8 *s, *e, *p;
- PPCODE:
- s = (U8*)sv_2pvunicode(aTHX_ src,&srclen);
- e = s + srclen;
- p = e;
- while (s < p) {
- UV uv;
- p = utf8_hop(p, -1);
- if (p < s)
- croak(ErrHopBeforeStart);
- uv = utf8n_to_uvchr(p, e - p, NULL, AllowAnyUTF);
- if (getCombinClass(uv) == 0) /* Last Starter found */
- break;
- }
-
- svp = sv_2mortal(newSVpvn((char*)s, p - s));
- SvUTF8_on(svp);
- XPUSHs(svp);
-
- svp = sv_2mortal(newSVpvn((char*)p, e - p));
- SvUTF8_on(svp);
- XPUSHs(svp);
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/mkheader b/gnu/usr.bin/perl/cpan/Unicode-Normalize/mkheader
deleted file mode 100644
index 8d4c1b8e8db..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/mkheader
+++ /dev/null
@@ -1,419 +0,0 @@
-#!perl
-#
-# This auxiliary script makes five header files
-# used for building XSUB of Unicode::Normalize.
-#
-# Usage:
-# <do 'mkheader'> in perl, or <perl mkheader> in command line
-#
-# Input files:
-# unicore/CombiningClass.pl (or unicode/CombiningClass.pl)
-# unicore/Decomposition.pl (or unicode/Decomposition.pl)
-#
-# Output files:
-# unfcan.h
-# unfcpt.h
-# unfcmb.h
-# unfcmp.h
-# unfexc.h
-#
-use 5.006;
-use strict;
-use warnings;
-use Carp;
-use File::Spec;
-use SelectSaver;
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- die "Unicode::Normalize cannot stringify a Unicode code point\n";
- }
- unless (0x41 == unpack('U', 'A')) {
- die "Unicode::Normalize cannot get Unicode code point\n";
- }
-}
-
-our $PACKAGE = 'Unicode::Normalize, mkheader';
-
-our $prefix = "UNF_";
-our $structname = "${prefix}complist";
-
-# Starting in v5.20, the tables in lib/unicore are built using the platform's
-# native character set for code points 0-255.
-*pack_U = ($] ge 5.020)
- ? sub { return pack('W*', @_).pack('U*'); } # The empty pack returns
- # an empty UTF-8 string,
- # so the effect is to
- # force the return into
- # being UTF-8.
- : sub { return pack('U*', @_); };
-
-# %Canon and %Compat will be ($codepoint => $hexstring) after _U_stringify()
-our %Comp1st; # $codepoint => $listname : may be composed with a next char.
-our %CompList; # $listname,$2nd => $codepoint : composite
-
-##### The below part is common to mkheader and PP #####
-
-our %Combin; # $codepoint => $number : combination class
-our %Canon; # $codepoint => \@codepoints : canonical decomp.
-our %Compat; # $codepoint => \@codepoints : compat. decomp.
-our %Compos; # $1st,$2nd => $codepoint : composite
-our %Exclus; # $codepoint => 1 : composition exclusions
-our %Single; # $codepoint => 1 : singletons
-our %NonStD; # $codepoint => 1 : non-starter decompositions
-our %Comp2nd; # $codepoint => 1 : may be composed with a prev char.
-
-# from core Unicode database
-our $Combin = do "unicore/CombiningClass.pl"
- || do "unicode/CombiningClass.pl"
- || croak "$PACKAGE: CombiningClass.pl not found";
-our $Decomp = do "unicore/Decomposition.pl"
- || do "unicode/Decomposition.pl"
- || croak "$PACKAGE: Decomposition.pl not found";
-
-# CompositionExclusions.txt since Unicode 3.2.0. If this ever changes, it
-# would be better to get the values from Unicode::UCD rather than hard-code
-# them here, as that will protect from having to make fixes for future
-# changes.
-our @CompEx = qw(
- 0958 0959 095A 095B 095C 095D 095E 095F 09DC 09DD 09DF 0A33 0A36
- 0A59 0A5A 0A5B 0A5E 0B5C 0B5D 0F43 0F4D 0F52 0F57 0F5C 0F69 0F76
- 0F78 0F93 0F9D 0FA2 0FA7 0FAC 0FB9 FB1D FB1F FB2A FB2B FB2C FB2D
- FB2E FB2F FB30 FB31 FB32 FB33 FB34 FB35 FB36 FB38 FB39 FB3A FB3B
- FB3C FB3E FB40 FB41 FB43 FB44 FB46 FB47 FB48 FB49 FB4A FB4B FB4C
- FB4D FB4E 2ADC 1D15E 1D15F 1D160 1D161 1D162 1D163 1D164 1D1BB
- 1D1BC 1D1BD 1D1BE 1D1BF 1D1C0
-);
-
-# definition of Hangul constants
-use constant SBase => 0xAC00;
-use constant SFinal => 0xD7A3; # SBase -1 + SCount
-use constant SCount => 11172; # LCount * NCount
-use constant NCount => 588; # VCount * TCount
-use constant LBase => 0x1100;
-use constant LFinal => 0x1112;
-use constant LCount => 19;
-use constant VBase => 0x1161;
-use constant VFinal => 0x1175;
-use constant VCount => 21;
-use constant TBase => 0x11A7;
-use constant TFinal => 0x11C2;
-use constant TCount => 28;
-
-sub decomposeHangul {
- my $sindex = $_[0] - SBase;
- my $lindex = int( $sindex / NCount);
- my $vindex = int(($sindex % NCount) / TCount);
- my $tindex = $sindex % TCount;
- my @ret = (
- LBase + $lindex,
- VBase + $vindex,
- $tindex ? (TBase + $tindex) : (),
- );
- return wantarray ? @ret : pack_U(@ret);
-}
-
-########## getting full decomposition ##########
-
-## converts string "hhhh hhhh hhhh" to a numeric list
-## (hex digits separated by spaces)
-sub _getHexArray { map hex, $_[0] =~ /\G *([0-9A-Fa-f]+)/g }
-
-while ($Combin =~ /(.+)/g) {
- my @tab = split /\t/, $1;
- my $ini = hex $tab[0];
- if ($tab[1] eq '') {
- $Combin{$ini} = $tab[2];
- } else {
- $Combin{$_} = $tab[2] foreach $ini .. hex($tab[1]);
- }
-}
-
-while ($Decomp =~ /(.+)/g) {
- my @tab = split /\t/, $1;
- my $compat = $tab[2] =~ s/<[^>]+>//;
- my $dec = [ _getHexArray($tab[2]) ]; # decomposition
- my $ini = hex($tab[0]); # initial decomposable character
- my $end = $tab[1] eq '' ? $ini : hex($tab[1]);
- # ($ini .. $end) is the range of decomposable characters.
-
- foreach my $u ($ini .. $end) {
- $Compat{$u} = $dec;
- $Canon{$u} = $dec if ! $compat;
- }
-}
-
-for my $s (@CompEx) {
- my $u = hex $s;
- next if !$Canon{$u}; # not assigned
- next if $u == 0xFB1D && !$Canon{0x1D15E}; # 3.0.1 before Corrigendum #2
- $Exclus{$u} = 1;
-}
-
-foreach my $u (keys %Canon) {
- my $dec = $Canon{$u};
-
- if (@$dec == 2) {
- if ($Combin{ $dec->[0] }) {
- $NonStD{$u} = 1;
- } else {
- $Compos{ $dec->[0] }{ $dec->[1] } = $u;
- $Comp2nd{ $dec->[1] } = 1 if ! $Exclus{$u};
- }
- } elsif (@$dec == 1) {
- $Single{$u} = 1;
- } else {
- my $h = sprintf '%04X', $u;
- croak("Weird Canonical Decomposition of U+$h");
- }
-}
-
-# modern HANGUL JUNGSEONG and HANGUL JONGSEONG jamo
-foreach my $j (0x1161..0x1175, 0x11A8..0x11C2) {
- $Comp2nd{$j} = 1;
-}
-
-sub getCanonList {
- my @src = @_;
- my @dec = map {
- (SBase <= $_ && $_ <= SFinal) ? decomposeHangul($_)
- : $Canon{$_} ? @{ $Canon{$_} } : $_
- } @src;
- return join(" ",@src) eq join(" ",@dec) ? @dec : getCanonList(@dec);
- # condition @src == @dec is not ok.
-}
-
-sub getCompatList {
- my @src = @_;
- my @dec = map {
- (SBase <= $_ && $_ <= SFinal) ? decomposeHangul($_)
- : $Compat{$_} ? @{ $Compat{$_} } : $_
- } @src;
- return join(" ",@src) eq join(" ",@dec) ? @dec : getCompatList(@dec);
- # condition @src == @dec is not ok.
-}
-
-# exhaustive decomposition
-foreach my $key (keys %Canon) {
- $Canon{$key} = [ getCanonList($key) ];
-}
-
-# exhaustive decomposition
-foreach my $key (keys %Compat) {
- $Compat{$key} = [ getCompatList($key) ];
-}
-
-##### The above part is common to mkheader and PP #####
-
-foreach my $comp1st (keys %Compos) {
- my $listname = sprintf("${structname}_%06x", $comp1st);
- # %04x is bad since it'd place _3046 after _1d157.
- $Comp1st{$comp1st} = $listname;
- my $rh1st = $Compos{$comp1st};
-
- foreach my $comp2nd (keys %$rh1st) {
- my $uc = $rh1st->{$comp2nd};
- $CompList{$listname}{$comp2nd} = $uc;
- }
-}
-
-sub split_into_char {
- use bytes;
- my $uni = shift;
- my $len = length($uni);
- my @ary;
- for(my $i = 0; $i < $len; ++$i) {
- push @ary, ord(substr($uni,$i,1));
- }
- return @ary;
-}
-
-sub _U_stringify {
- sprintf '"%s"', join '',
- map sprintf("\\x%02x", $_), split_into_char(pack_U(@_));
-}
-
-foreach my $hash (\%Canon, \%Compat) {
- foreach my $key (keys %$hash) {
- $hash->{$key} = _U_stringify( @{ $hash->{$key} } );
- }
-}
-
-########## writing header files ##########
-
-my @boolfunc = (
- {
- name => "Exclusion",
- type => "bool",
- hash => \%Exclus,
- },
- {
- name => "Singleton",
- type => "bool",
- hash => \%Single,
- },
- {
- name => "NonStDecomp",
- type => "bool",
- hash => \%NonStD,
- },
- {
- name => "Comp2nd",
- type => "bool",
- hash => \%Comp2nd,
- },
-);
-
-my $orig_fh = SelectSaver->new;
-{
-
-my $file = "unfexc.h";
-open FH, ">$file" or croak "$PACKAGE: $file can't be made";
-binmode FH; select FH;
-
- print << 'EOF';
-/*
- * This file is auto-generated by mkheader.
- * Any changes here will be lost!
- */
-EOF
-
-foreach my $tbl (@boolfunc) {
- my @temp = sort {$a <=> $b} keys %{$tbl->{hash}};
- my $type = $tbl->{type};
- my $name = $tbl->{name};
- print "$type is$name (UV uv)\n{\nreturn\n\t";
-
- while (@temp) {
- my $cur = shift @temp;
- if (@temp && $cur + 1 == $temp[0]) {
- print "($cur <= uv && uv <= ";
- while (@temp && $cur + 1 == $temp[0]) {
- $cur = shift @temp;
- }
- print "$cur)";
- print "\n\t|| " if @temp;
- } else {
- print "uv == $cur";
- print "\n\t|| " if @temp;
- }
- }
- print "\n\t? TRUE : FALSE;\n}\n\n";
-}
-
-close FH;
-
-####################################
-
-my $compinit =
- "typedef struct { UV nextchar; UV composite; } $structname;\n\n";
-
-foreach my $i (sort keys %CompList) {
- $compinit .= "$structname $i [] = {\n";
- $compinit .= join ",\n",
- map sprintf("\t{ %d, %d }", $_, $CompList{$i}{$_}),
- sort {$a <=> $b } keys %{ $CompList{$i} };
- $compinit .= ",\n{0,0}\n};\n\n"; # with sentinel
-}
-
-my @tripletable = (
- {
- file => "unfcmb",
- name => "combin",
- type => "STDCHAR",
- hash => \%Combin,
- null => 0,
- },
- {
- file => "unfcan",
- name => "canon",
- type => "char*",
- hash => \%Canon,
- null => "NULL",
- },
- {
- file => "unfcpt",
- name => "compat",
- type => "char*",
- hash => \%Compat,
- null => "NULL",
- },
- {
- file => "unfcmp",
- name => "compos",
- type => "$structname *",
- hash => \%Comp1st,
- null => "NULL",
- init => $compinit,
- },
-);
-
-foreach my $tbl (@tripletable) {
- my $file = "$tbl->{file}.h";
- my $head = "${prefix}$tbl->{name}";
- my $type = $tbl->{type};
- my $hash = $tbl->{hash};
- my $null = $tbl->{null};
- my $init = $tbl->{init};
-
- open FH, ">$file" or croak "$PACKAGE: $file can't be made";
- binmode FH; select FH;
- my %val;
-
- print FH << 'EOF';
-/*
- * This file is auto-generated by mkheader.
- * Any changes here will be lost!
- */
-EOF
-
- print $init if defined $init;
-
- foreach my $uv (keys %$hash) {
- croak sprintf("a Unicode code point 0x%04X over 0x10FFFF.", $uv)
- unless $uv <= 0x10FFFF;
- my @c = unpack 'CCCC', pack 'N', $uv;
- $val{ $c[1] }{ $c[2] }{ $c[3] } = $hash->{$uv};
- }
-
- foreach my $p (sort { $a <=> $b } keys %val) {
- next if ! $val{ $p };
- for (my $r = 0; $r < 256; $r++) {
- next if ! $val{ $p }{ $r };
- printf "static $type ${head}_%02x_%02x [256] = {\n", $p, $r;
- for (my $c = 0; $c < 256; $c++) {
- print "\t", defined $val{$p}{$r}{$c}
- ? "($type)".$val{$p}{$r}{$c}
- : $null;
- print ',' if $c != 255;
- print "\n" if $c % 8 == 7;
- }
- print "};\n\n";
- }
- }
- foreach my $p (sort { $a <=> $b } keys %val) {
- next if ! $val{ $p };
- printf "static $type* ${head}_%02x [256] = {\n", $p;
- for (my $r = 0; $r < 256; $r++) {
- print $val{ $p }{ $r }
- ? sprintf("${head}_%02x_%02x", $p, $r)
- : "NULL";
- print ',' if $r != 255;
- print "\n" if $val{ $p }{ $r } || ($r+1) % 8 == 0;
- }
- print "};\n\n";
- }
- print "static $type** $head [] = {\n";
- for (my $p = 0; $p <= 0x10; $p++) {
- print $val{ $p } ? sprintf("${head}_%02x", $p) : "NULL";
- print ',' if $p != 0x10;
- print "\n";
- }
- print "};\n\n";
- close FH;
-}
-
-} # End of block for SelectSaver
-
-1;
-__END__
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/fcdc.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/fcdc.t
deleted file mode 100755
index d2ef28b9e90..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/fcdc.t
+++ /dev/null
@@ -1,138 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..70\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize qw(:all);
-
-ok(1);
-
-sub _pack_U { Unicode::Normalize::pack_U(@_) }
-sub hexU { _pack_U map hex, split ' ', shift }
-sub answer { defined $_[0] ? $_[0] ? "YES" : "NO" : "MAYBE" }
-
-#########################
-
-ok(FCD(''), "");
-ok(FCC(''), "");
-ok(FCD('A'), "A");
-ok(FCC('A'), "A");
-
-ok(normalize('FCD', ""), "");
-ok(normalize('FCC', ""), "");
-ok(normalize('FCC', "A"), "A");
-ok(normalize('FCD', "A"), "A");
-
-# 9
-
-# if checkFCD is YES, the return value from FCD should be same as the original
-ok(FCD(hexU("00C5")), hexU("00C5")); # A with ring above
-ok(FCD(hexU("0041 030A")), hexU("0041 030A")); # A+ring
-ok(FCD(hexU("0041 0327 030A")), hexU("0041 0327 030A")); # A+cedilla+ring
-ok(FCD(hexU("AC01 1100 1161")), hexU("AC01 1100 1161")); # hangul
-ok(FCD(hexU("212B F900")), hexU("212B F900")); # compat
-
-ok(normalize('FCD', hexU("00C5")), hexU("00C5"));
-ok(normalize('FCD', hexU("0041 030A")), hexU("0041 030A"));
-ok(normalize('FCD', hexU("0041 0327 030A")), hexU("0041 0327 030A"));
-ok(normalize('FCD', hexU("AC01 1100 1161")), hexU("AC01 1100 1161"));
-ok(normalize('FCD', hexU("212B F900")), hexU("212B F900"));
-
-# 19
-
-# if checkFCD is MAYBE or NO, FCD returns NFD (this behavior isn't documented)
-ok(FCD(hexU("00C5 0327")), hexU("0041 0327 030A"));
-ok(FCD(hexU("0041 030A 0327")), hexU("0041 0327 030A"));
-ok(FCD(hexU("00C5 0327")), NFD(hexU("00C5 0327")));
-ok(FCD(hexU("0041 030A 0327")), NFD(hexU("0041 030A 0327")));
-
-ok(normalize('FCD', hexU("00C5 0327")), hexU("0041 0327 030A"));
-ok(normalize('FCD', hexU("0041 030A 0327")), hexU("0041 0327 030A"));
-ok(normalize('FCD', hexU("00C5 0327")), NFD(hexU("00C5 0327")));
-ok(normalize('FCD', hexU("0041 030A 0327")), NFD(hexU("0041 030A 0327")));
-
-# 27
-
-ok(answer(checkFCD('')), 'YES');
-ok(answer(checkFCD('A')), 'YES');
-ok(answer(checkFCD("\x{030A}")), 'YES'); # 030A;COMBINING RING ABOVE
-ok(answer(checkFCD("\x{0327}")), 'YES'); # 0327;COMBINING CEDILLA
-ok(answer(checkFCD(_pack_U(0x00C5))), 'YES'); # A with ring above
-ok(answer(checkFCD(hexU("0041 030A"))), 'YES'); # A+ring
-ok(answer(checkFCD(hexU("0041 0327 030A"))), 'YES'); # A+cedilla+ring
-ok(answer(checkFCD(hexU("0041 030A 0327"))), 'NO'); # A+ring+cedilla
-ok(answer(checkFCD(hexU("00C5 0327"))), 'NO'); # A-ring+cedilla
-ok(answer(checkNFC(hexU("00C5 0327"))), 'MAYBE'); # NFC: A-ring+cedilla
-ok(answer(check("FCD", hexU("00C5 0327"))), 'NO');
-ok(answer(check("NFC", hexU("00C5 0327"))), 'MAYBE');
-ok(answer(checkFCD("\x{AC01}\x{1100}\x{1161}")), 'YES'); # hangul
-ok(answer(checkFCD("\x{212B}\x{F900}")), 'YES'); # compat
-
-ok(answer(checkFCD(hexU("1EA7 05AE 0315 0062"))), "NO");
-ok(answer(checkFCC(hexU("1EA7 05AE 0315 0062"))), "NO");
-ok(answer(check('FCD', hexU("1EA7 05AE 0315 0062"))), "NO");
-ok(answer(check('FCC', hexU("1EA7 05AE 0315 0062"))), "NO");
-
-# 45
-
-ok(FCC(hexU("00C5 0327")), hexU("0041 0327 030A"));
-ok(FCC(hexU("0045 0304 0300")), "\x{1E14}");
-ok(FCC("\x{1100}\x{1161}\x{1100}\x{1173}\x{11AF}"), "\x{AC00}\x{AE00}");
-ok(normalize('FCC', hexU("00C5 0327")), hexU("0041 0327 030A"));
-ok(normalize('FCC', hexU("0045 0304 0300")), "\x{1E14}");
-ok(normalize('FCC', hexU("1100 1161 1100 1173 11AF")), "\x{AC00}\x{AE00}");
-
-ok(FCC("\x{0B47}\x{0300}\x{0B3E}"), "\x{0B47}\x{0300}\x{0B3E}");
-ok(FCC("\x{1100}\x{0300}\x{1161}"), "\x{1100}\x{0300}\x{1161}");
-ok(FCC("\x{0B47}\x{0B3E}\x{0300}"), "\x{0B4B}\x{0300}");
-ok(FCC("\x{1100}\x{1161}\x{0300}"), "\x{AC00}\x{0300}");
-ok(FCC("\x{0B47}\x{300}\x{0B3E}\x{327}"), "\x{0B47}\x{300}\x{0B3E}\x{327}");
-ok(FCC("\x{1100}\x{300}\x{1161}\x{327}"), "\x{1100}\x{300}\x{1161}\x{327}");
-
-# 57
-
-ok(answer(checkFCC('')), 'YES');
-ok(answer(checkFCC('A')), 'YES');
-ok(answer(checkFCC("\x{030A}")), 'MAYBE'); # 030A;COMBINING RING ABOVE
-ok(answer(checkFCC("\x{0327}")), 'MAYBE'); # 0327;COMBINING CEDILLA
-ok(answer(checkFCC(hexU("00C5"))), 'YES'); # A with ring above
-ok(answer(checkFCC(hexU("0041 030A"))), 'MAYBE'); # A+ring
-ok(answer(checkFCC(hexU("0041 0327 030A"))), 'MAYBE'); # A+cedilla+ring
-ok(answer(checkFCC(hexU("0041 030A 0327"))), 'NO'); # A+ring+cedilla
-ok(answer(checkFCC(hexU("00C5 0327"))), 'NO'); # A-ring+cedilla
-ok(answer(checkFCC("\x{AC01}\x{1100}\x{1161}")), 'MAYBE'); # hangul
-ok(answer(checkFCC("\x{212B}\x{F900}")), 'NO'); # compat
-ok(answer(checkFCC("\x{212B}\x{0327}")), 'NO'); # compat
-ok(answer(checkFCC("\x{0327}\x{212B}")), 'NO'); # compat
-
-# 70
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/form.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/form.t
deleted file mode 100755
index 6bbfb082cab..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/form.t
+++ /dev/null
@@ -1,84 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..37\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize qw(:all);
-
-ok(1);
-
-sub answer { defined $_[0] ? $_[0] ? "YES" : "NO" : "MAYBE" }
-
-#########################
-
-ok(NFD ("\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}");
-ok(NFC ("\x{304C}\x{FF76}"), "\x{304C}\x{FF76}");
-ok(NFKD("\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}");
-ok(NFKC("\x{304C}\x{FF76}"), "\x{304C}\x{30AB}");
-
-ok(answer(checkNFD ("\x{304C}")), "NO");
-ok(answer(checkNFC ("\x{304C}")), "YES");
-ok(answer(checkNFKD("\x{304C}")), "NO");
-ok(answer(checkNFKC("\x{304C}")), "YES");
-ok(answer(checkNFD ("\x{FF76}")), "YES");
-ok(answer(checkNFC ("\x{FF76}")), "YES");
-ok(answer(checkNFKD("\x{FF76}")), "NO");
-ok(answer(checkNFKC("\x{FF76}")), "NO");
-
-ok(normalize('D', "\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}");
-ok(normalize('C', "\x{304C}\x{FF76}"), "\x{304C}\x{FF76}");
-ok(normalize('KD',"\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}");
-ok(normalize('KC',"\x{304C}\x{FF76}"), "\x{304C}\x{30AB}");
-
-ok(answer(check('D', "\x{304C}")), "NO");
-ok(answer(check('C', "\x{304C}")), "YES");
-ok(answer(check('KD',"\x{304C}")), "NO");
-ok(answer(check('KC',"\x{304C}")), "YES");
-ok(answer(check('D' ,"\x{FF76}")), "YES");
-ok(answer(check('C' ,"\x{FF76}")), "YES");
-ok(answer(check('KD',"\x{FF76}")), "NO");
-ok(answer(check('KC',"\x{FF76}")), "NO");
-
-ok(normalize('NFD', "\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}");
-ok(normalize('NFC', "\x{304C}\x{FF76}"), "\x{304C}\x{FF76}");
-ok(normalize('NFKD',"\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}");
-ok(normalize('NFKC',"\x{304C}\x{FF76}"), "\x{304C}\x{30AB}");
-
-ok(answer(check('NFD', "\x{304C}")), "NO");
-ok(answer(check('NFC', "\x{304C}")), "YES");
-ok(answer(check('NFKD',"\x{304C}")), "NO");
-ok(answer(check('NFKC',"\x{304C}")), "YES");
-ok(answer(check('NFD' ,"\x{FF76}")), "YES");
-ok(answer(check('NFC' ,"\x{FF76}")), "YES");
-ok(answer(check('NFKD',"\x{FF76}")), "NO");
-ok(answer(check('NFKC',"\x{FF76}")), "NO");
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/func.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/func.t
deleted file mode 100755
index 2bd6e504a32..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/func.t
+++ /dev/null
@@ -1,386 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..217\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize qw(:all);
-
-ok(1);
-
-sub _pack_U { Unicode::Normalize::pack_U(@_) }
-sub hexU { _pack_U map hex, split ' ', shift }
-
-# This won't work on EBCDIC platforms prior to v5.8.0, which is when this
-# translation function was defined
-*to_native = (defined &utf8::unicode_to_native)
- ? \&utf8::unicode_to_native
- : sub { return shift };
-
-#########################
-
-ok(getCombinClass( to_native(0)), 0);
-ok(getCombinClass(to_native(41)), 0);
-ok(getCombinClass(to_native(65)), 0);
-ok(getCombinClass( 768), 230);
-ok(getCombinClass(1809), 36);
-
-ok(getCanon(to_native( 0)), undef);
-ok(getCanon(to_native(0x29)), undef);
-ok(getCanon(to_native(0x41)), undef);
-ok(getCanon(to_native(0x00C0)), _pack_U(0x0041, 0x0300));
-ok(getCanon(to_native(0x00EF)), _pack_U(0x0069, 0x0308));
-ok(getCanon(0x304C), _pack_U(0x304B, 0x3099));
-ok(getCanon(0x1EA4), _pack_U(0x0041, 0x0302, 0x0301));
-ok(getCanon(0x1F82), _pack_U(0x03B1, 0x0313, 0x0300, 0x0345));
-ok(getCanon(0x1FAF), _pack_U(0x03A9, 0x0314, 0x0342, 0x0345));
-ok(getCanon(0xAC00), _pack_U(0x1100, 0x1161));
-ok(getCanon(0xAE00), _pack_U(0x1100, 0x1173, 0x11AF));
-ok(getCanon(0x212C), undef);
-ok(getCanon(0x3243), undef);
-ok(getCanon(0xFA2D), _pack_U(0x9DB4));
-
-# 20
-
-ok(getCompat(to_native( 0)), undef);
-ok(getCompat(to_native(0x29)), undef);
-ok(getCompat(to_native(0x41)), undef);
-ok(getCompat(to_native(0x00C0)), _pack_U(0x0041, 0x0300));
-ok(getCompat(to_native(0x00EF)), _pack_U(0x0069, 0x0308));
-ok(getCompat(0x304C), _pack_U(0x304B, 0x3099));
-ok(getCompat(0x1EA4), _pack_U(0x0041, 0x0302, 0x0301));
-ok(getCompat(0x1F82), _pack_U(0x03B1, 0x0313, 0x0300, 0x0345));
-ok(getCompat(0x1FAF), _pack_U(0x03A9, 0x0314, 0x0342, 0x0345));
-ok(getCompat(0x212C), _pack_U(0x0042));
-ok(getCompat(0x3243), _pack_U(0x0028, 0x81F3, 0x0029));
-ok(getCompat(0xAC00), _pack_U(0x1100, 0x1161));
-ok(getCompat(0xAE00), _pack_U(0x1100, 0x1173, 0x11AF));
-ok(getCompat(0xFA2D), _pack_U(0x9DB4));
-
-# 34
-
-ok(getComposite(to_native( 0), to_native( 0)), undef);
-ok(getComposite(to_native( 0), to_native(0x29)), undef);
-ok(getComposite(to_native(0x29), to_native( 0)), undef);
-ok(getComposite(to_native(0x29), to_native(0x29)), undef);
-ok(getComposite(to_native( 0), to_native(0x41)), undef);
-ok(getComposite(to_native(0x41), to_native( 0)), undef);
-ok(getComposite(to_native(0x41), to_native(0x41)), undef);
-ok(getComposite(to_native(12), to_native(0x0300)), undef);
-ok(getComposite(to_native(0x0055), 0xFF00), undef);
-ok(getComposite(to_native(0x0041), 0x0300), to_native(0x00C0));
-ok(getComposite(to_native(0x0055), 0x0300), to_native(0x00D9));
-ok(getComposite(0x0112, 0x0300), 0x1E14);
-ok(getComposite(0x1100, 0x1161), 0xAC00);
-ok(getComposite(0x1100, 0x1173), 0xADF8);
-ok(getComposite(0x1100, 0x11AF), undef);
-ok(getComposite(0x1173, 0x11AF), undef);
-ok(getComposite(0xAC00, 0x11A7), undef);
-ok(getComposite(0xAC00, 0x11A8), 0xAC01);
-ok(getComposite(0xADF8, 0x11AF), 0xAE00);
-
-# 53
-
-sub uprops {
- my $uv = shift;
- my $r = "";
- $r .= isExclusion($uv) ? 'X' : 'x';
- $r .= isSingleton($uv) ? 'S' : 's';
- $r .= isNonStDecomp($uv) ? 'N' : 'n'; # Non-Starter Decomposition
- $r .= isComp_Ex($uv) ? 'F' : 'f'; # Full exclusion (X + S + N)
- $r .= isComp2nd($uv) ? 'B' : 'b'; # B = M = Y
- $r .= isNFD_NO($uv) ? 'D' : 'd';
- $r .= isNFC_MAYBE($uv) ? 'M' : 'm'; # Maybe
- $r .= isNFC_NO($uv) ? 'C' : 'c';
- $r .= isNFKD_NO($uv) ? 'K' : 'k';
- $r .= isNFKC_MAYBE($uv) ? 'Y' : 'y'; # maYbe
- $r .= isNFKC_NO($uv) ? 'G' : 'g';
- return $r;
-}
-
-ok(uprops(to_native(0x0000)), 'xsnfbdmckyg'); # NULL
-ok(uprops(to_native(0x0029)), 'xsnfbdmckyg'); # RIGHT PARENTHESIS
-ok(uprops(to_native(0x0041)), 'xsnfbdmckyg'); # LATIN CAPITAL LETTER A
-ok(uprops(to_native(0x00A0)), 'xsnfbdmcKyG'); # NO-BREAK SPACE
-ok(uprops(to_native(0x00C0)), 'xsnfbDmcKyg'); # LATIN CAPITAL LETTER A WITH GRAVE
-ok(uprops(0x0300), 'xsnfBdMckYg'); # COMBINING GRAVE ACCENT
-ok(uprops(0x0344), 'xsNFbDmCKyG'); # COMBINING GREEK DIALYTIKA TONOS
-ok(uprops(0x0387), 'xSnFbDmCKyG'); # GREEK ANO TELEIA
-ok(uprops(0x0958), 'XsnFbDmCKyG'); # DEVANAGARI LETTER QA
-ok(uprops(0x0F43), 'XsnFbDmCKyG'); # TIBETAN LETTER GHA
-ok(uprops(0x1100), 'xsnfbdmckyg'); # HANGUL CHOSEONG KIYEOK
-ok(uprops(0x1161), 'xsnfBdMckYg'); # HANGUL JUNGSEONG A
-ok(uprops(0x11AF), 'xsnfBdMckYg'); # HANGUL JONGSEONG RIEUL
-ok(uprops(0x212B), 'xSnFbDmCKyG'); # ANGSTROM SIGN
-ok(uprops(0xAC00), 'xsnfbDmcKyg'); # HANGUL SYLLABLE GA
-ok(uprops(0xF900), 'xSnFbDmCKyG'); # CJK COMPATIBILITY IDEOGRAPH-F900
-ok(uprops(0xFB4E), 'XsnFbDmCKyG'); # HEBREW LETTER PE WITH RAFE
-ok(uprops(0xFF71), 'xsnfbdmcKyG'); # HALFWIDTH KATAKANA LETTER A
-
-# 71
-
-ok(decompose(""), "");
-ok(decompose("A"), "A");
-ok(decompose("", 1), "");
-ok(decompose("A", 1), "A");
-
-ok(decompose(hexU("1E14 AC01")), hexU("0045 0304 0300 1100 1161 11A8"));
-ok(decompose(hexU("AC00 AE00")), hexU("1100 1161 1100 1173 11AF"));
-ok(decompose(hexU("304C FF76")), hexU("304B 3099 FF76"));
-
-ok(decompose(hexU("1E14 AC01"), 1), hexU("0045 0304 0300 1100 1161 11A8"));
-ok(decompose(hexU("AC00 AE00"), 1), hexU("1100 1161 1100 1173 11AF"));
-ok(decompose(hexU("304C FF76"), 1), hexU("304B 3099 30AB"));
-
-# don't modify the source
-my $sDec = "\x{FA19}";
-ok(decompose($sDec), "\x{795E}");
-ok($sDec, "\x{FA19}");
-
-# 83
-
-ok(reorder(""), "");
-ok(reorder("A"), "A");
-ok(reorder(hexU("0041 0300 0315 0313 031b 0061")),
- hexU("0041 031b 0300 0313 0315 0061"));
-ok(reorder(hexU("00C1 0300 0315 0313 031b 0061 309A 3099")),
- hexU("00C1 031b 0300 0313 0315 0061 309A 3099"));
-
-# don't modify the source
-my $sReord = "\x{3000}\x{300}\x{31b}";
-ok(reorder($sReord), "\x{3000}\x{31b}\x{300}");
-ok($sReord, "\x{3000}\x{300}\x{31b}");
-
-# 89
-
-ok(compose(""), "");
-ok(compose("A"), "A");
-ok(compose(hexU("0061 0300")), hexU("00E0"));
-ok(compose(hexU("0061 0300 031B")), hexU("00E0 031B"));
-ok(compose(hexU("0061 0300 0315")), hexU("00E0 0315"));
-ok(compose(hexU("0061 0300 0313")), hexU("00E0 0313"));
-ok(compose(hexU("0061 031B 0300")), hexU("00E0 031B"));
-ok(compose(hexU("0061 0315 0300")), hexU("0061 0315 0300"));
-ok(compose(hexU("0061 0313 0300")), hexU("0061 0313 0300"));
-
-# don't modify the source
-my $sCom = "\x{304B}\x{3099}";
-ok(compose($sCom), "\x{304C}");
-ok($sCom, "\x{304B}\x{3099}");
-
-# 100
-
-ok(composeContiguous(""), "");
-ok(composeContiguous("A"), "A");
-ok(composeContiguous(hexU("0061 0300")), hexU("00E0"));
-ok(composeContiguous(hexU("0061 0300 031B")), hexU("00E0 031B"));
-ok(composeContiguous(hexU("0061 0300 0315")), hexU("00E0 0315"));
-ok(composeContiguous(hexU("0061 0300 0313")), hexU("00E0 0313"));
-ok(composeContiguous(hexU("0061 031B 0300")), hexU("0061 031B 0300"));
-ok(composeContiguous(hexU("0061 0315 0300")), hexU("0061 0315 0300"));
-ok(composeContiguous(hexU("0061 0313 0300")), hexU("0061 0313 0300"));
-
-# don't modify the source
-my $sCtg = "\x{30DB}\x{309A}";
-ok(composeContiguous($sCtg), "\x{30DD}");
-ok($sCtg, "\x{30DB}\x{309A}");
-
-# 111
-
-sub answer { defined $_[0] ? $_[0] ? "YES" : "NO" : "MAYBE" }
-
-ok(answer(checkNFD("")), "YES");
-ok(answer(checkNFC("")), "YES");
-ok(answer(checkNFKD("")), "YES");
-ok(answer(checkNFKC("")), "YES");
-ok(answer(check("NFD", "")), "YES");
-ok(answer(check("NFC", "")), "YES");
-ok(answer(check("NFKD","")), "YES");
-ok(answer(check("NFKC","")), "YES");
-
-# U+0000 to U+007F are prenormalized in all the normalization forms.
-ok(answer(checkNFD("AZaz\t12!#`")), "YES");
-ok(answer(checkNFC("AZaz\t12!#`")), "YES");
-ok(answer(checkNFKD("AZaz\t12!#`")), "YES");
-ok(answer(checkNFKC("AZaz\t12!#`")), "YES");
-ok(answer(check("D", "AZaz\t12!#`")), "YES");
-ok(answer(check("C", "AZaz\t12!#`")), "YES");
-ok(answer(check("KD","AZaz\t12!#`")), "YES");
-ok(answer(check("KC","AZaz\t12!#`")), "YES");
-
-ok(answer(checkNFD(NFD(_pack_U(0xC1, 0x1100, 0x1173, 0x11AF)))), "YES");
-ok(answer(checkNFD(hexU("20 C1 1100 1173 11AF"))), "NO");
-ok(answer(checkNFC(hexU("20 C1 1173 11AF"))), "MAYBE");
-ok(answer(checkNFC(hexU("20 C1 AE00 1100"))), "YES");
-ok(answer(checkNFC(hexU("20 C1 AE00 1100 0300"))), "MAYBE");
-ok(answer(checkNFC(hexU("212B 1100 0300"))), "NO");
-ok(answer(checkNFC(hexU("1100 0300 212B"))), "NO");
-ok(answer(checkNFC(hexU("0041 0327 030A"))), "MAYBE"); # A+cedilla+ring
-ok(answer(checkNFC(hexU("0041 030A 0327"))), "NO"); # A+ring+cedilla
-ok(answer(checkNFC(hexU("20 C1 FF71 2025"))),"YES");
-ok(answer(check("NFC", hexU("20 C1 212B 300"))), "NO");
-ok(answer(checkNFKD(hexU("20 C1 FF71 2025"))), "NO");
-ok(answer(checkNFKC(hexU("20 C1 AE00 2025"))), "NO");
-ok(answer(checkNFKC(hexU("212B 1100 0300"))), "NO");
-ok(answer(checkNFKC(hexU("1100 0300 212B"))), "NO");
-ok(answer(checkNFKC(hexU("0041 0327 030A"))), "MAYBE"); # A+cedilla+ring
-ok(answer(checkNFKC(hexU("0041 030A 0327"))), "NO"); # A+ring+cedilla
-ok(answer(check("NFKC", hexU("20 C1 212B 300"))), "NO");
-
-# 145
-
-"012ABC" =~ /(\d+)(\w+)/;
-ok("012" eq NFC $1 && "ABC" eq NFC $2);
-
-ok(normalize('C', $1), "012");
-ok(normalize('C', $2), "ABC");
-
-ok(normalize('NFC', $1), "012");
-ok(normalize('NFC', $2), "ABC");
- # s/^NF// in normalize() must not prevent using $1, $&, etc.
-
-# 150
-
-# a string with initial zero should be treated like a number
-
-# LATIN CAPITAL LETTER A WITH GRAVE
-ok(getCombinClass(sprintf("0%d", to_native(192))), 0);
-ok(getCanon (sprintf("0%d", to_native(192))), _pack_U(0x41, 0x300));
-ok(getCompat(sprintf("0%d", to_native(192))), _pack_U(0x41, 0x300));
-my $lead_zero = sprintf "0%d", to_native(65);
-ok(getComposite($lead_zero, "0768"), to_native(192));
-ok(isNFD_NO (sprintf("0%d", to_native(192))));
-ok(isNFKD_NO(sprintf("0%d", to_native(192))));
-
-# DEVANAGARI LETTER QA
-ok(isExclusion("02392"));
-ok(isComp_Ex ("02392"));
-ok(isNFC_NO ("02392"));
-ok(isNFKC_NO ("02392"));
-ok(isNFD_NO ("02392"));
-ok(isNFKD_NO ("02392"));
-
-# ANGSTROM SIGN
-ok(isSingleton("08491"));
-ok(isComp_Ex ("08491"));
-ok(isNFC_NO ("08491"));
-ok(isNFKC_NO ("08491"));
-ok(isNFD_NO ("08491"));
-ok(isNFKD_NO ("08491"));
-
-# COMBINING GREEK DIALYTIKA TONOS
-ok(isNonStDecomp("0836"));
-ok(isComp_Ex ("0836"));
-ok(isNFC_NO ("0836"));
-ok(isNFKC_NO ("0836"));
-ok(isNFD_NO ("0836"));
-ok(isNFKD_NO ("0836"));
-
-# COMBINING GRAVE ACCENT
-ok(getCombinClass("0768"), 230);
-ok(isComp2nd ("0768"));
-ok(isNFC_MAYBE ("0768"));
-ok(isNFKC_MAYBE("0768"));
-
-# HANGUL SYLLABLE GA
-ok(getCombinClass("044032"), 0);
-ok(getCanon("044032"), _pack_U(0x1100, 0x1161));
-ok(getCompat("044032"), _pack_U(0x1100, 0x1161));
-ok(getComposite("04352", "04449"), 0xAC00);
-
-# 182
-
-# string with 22 combining characters: (0x300..0x315)
-my $str_cc22 = _pack_U(0x3041, 0x300..0x315, 0x3042);
-ok(decompose($str_cc22), $str_cc22);
-ok(reorder($str_cc22), $str_cc22);
-ok(compose($str_cc22), $str_cc22);
-ok(composeContiguous($str_cc22), $str_cc22);
-ok(NFD($str_cc22), $str_cc22);
-ok(NFC($str_cc22), $str_cc22);
-ok(NFKD($str_cc22), $str_cc22);
-ok(NFKC($str_cc22), $str_cc22);
-ok(FCD($str_cc22), $str_cc22);
-ok(FCC($str_cc22), $str_cc22);
-
-# 192
-
-# string with 40 combining characters of the same class: (0x300..0x313)x2
-my $str_cc40 = _pack_U(0x3041, 0x300..0x313, 0x300..0x313, 0x3042);
-ok(decompose($str_cc40), $str_cc40);
-ok(reorder($str_cc40), $str_cc40);
-ok(compose($str_cc40), $str_cc40);
-ok(composeContiguous($str_cc40), $str_cc40);
-ok(NFD($str_cc40), $str_cc40);
-ok(NFC($str_cc40), $str_cc40);
-ok(NFKD($str_cc40), $str_cc40);
-ok(NFKC($str_cc40), $str_cc40);
-ok(FCD($str_cc40), $str_cc40);
-ok(FCC($str_cc40), $str_cc40);
-
-# 202
-
-my $precomp = hexU("304C 304E 3050 3052 3054");
-my $combseq = hexU("304B 3099 304D 3099 304F 3099 3051 3099 3053 3099");
-ok(decompose($precomp x 5), $combseq x 5);
-ok(decompose($precomp x 10), $combseq x 10);
-ok(decompose($precomp x 20), $combseq x 20);
-
-my $hangsyl = hexU("AC00 B098 B2E4 B77C B9C8");
-my $jamoseq = hexU("1100 1161 1102 1161 1103 1161 1105 1161 1106 1161");
-ok(decompose($hangsyl x 5), $jamoseq x 5);
-ok(decompose($hangsyl x 10), $jamoseq x 10);
-ok(decompose($hangsyl x 20), $jamoseq x 20);
-
-my $notcomp = hexU("304B 304D 304F 3051 3053");
-ok(decompose($precomp . $notcomp), $combseq . $notcomp);
-ok(decompose($precomp . $notcomp x 5), $combseq . $notcomp x 5);
-ok(decompose($precomp . $notcomp x10), $combseq . $notcomp x10);
-
-# 211
-
-my $preUnicode3_1 = !defined getCanon(0x1D15E);
-my $preUnicode3_2 = !defined getCanon(0x2ADC);
-
-# HEBREW LETTER YOD WITH HIRIQ
-ok($preUnicode3_1 xor isExclusion(0xFB1D));
-ok($preUnicode3_1 xor isComp_Ex (0xFB1D));
-
-# MUSICAL SYMBOL HALF NOTE
-ok($preUnicode3_1 xor isExclusion(0x1D15E));
-ok($preUnicode3_1 xor isComp_Ex (0x1D15E));
-
-# FORKING
-ok($preUnicode3_2 xor isExclusion(0x2ADC));
-ok($preUnicode3_2 xor isComp_Ex (0x2ADC));
-
-# 217
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/illegal.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/illegal.t
deleted file mode 100755
index ccf2b4aae62..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/illegal.t
+++ /dev/null
@@ -1,85 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-BEGIN {
- unless (5.006001 <= $]) {
- print "1..0 # skipped: Perl 5.6.1 or later".
- " needed for this test\n";
- exit;
- }
-}
-
-#########################
-
-BEGIN {
- use Unicode::Normalize qw(:all);
-
- unless (exists &Unicode::Normalize::bootstrap or 5.008 <= $]) {
- print "1..0 # skipped: XSUB, or Perl 5.8.0 or later".
- " needed for this test\n";
- print $@;
- exit;
- }
-}
-
-use strict;
-use warnings;
-
-BEGIN { $| = 1; print "1..113\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-ok(1);
-
-#########################
-
-no warnings qw(utf8);
-
-for my $u (0xD800, 0xDFFF, 0xFDD0, 0xFDEF, 0xFEFF, 0xFFFE, 0xFFFF,
- 0x1FFFF, 0x10FFFF, 0x110000, 0x3FFFFFFF)
-{
- my $c = chr $u;
- ok($c eq NFD($c)); # 1
- ok($c eq NFC($c)); # 2
- ok($c eq NFKD($c)); # 3
- ok($c eq NFKC($c)); # 4
- ok($c eq FCD($c)); # 5
- ok($c eq FCC($c)); # 6
- ok($c eq decompose($c)); # 7
- ok($c eq decompose($c,1)); # 8
- ok($c eq reorder($c)); # 9
- ok($c eq compose($c)); # 10
-}
-
-our $proc; # before the last starter
-our $unproc; # the last starter and after
-
-sub _pack_U { Unicode::Normalize::pack_U(@_) }
-
-($proc, $unproc) = splitOnLastStarter(_pack_U(0x41, 0x300, 0x327, 0xFFFF));
-ok($proc eq _pack_U(0x41, 0x300, 0x327));
-ok($unproc eq "\x{FFFF}");
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/norm.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/norm.t
deleted file mode 100755
index d3cec3aea17..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/norm.t
+++ /dev/null
@@ -1,145 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..64\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize qw(normalize);
-
-ok(1);
-
-sub _pack_U { Unicode::Normalize::pack_U(@_) }
-sub _unpack_U { Unicode::Normalize::unpack_U(@_) }
-
-#########################
-
-ok(normalize('D', ""), "");
-ok(normalize('C', ""), "");
-ok(normalize('KD',""), "");
-ok(normalize('KC',""), "");
-
-ok(normalize('D', "A"), "A");
-ok(normalize('C', "A"), "A");
-ok(normalize('KD',"A"), "A");
-ok(normalize('KC',"A"), "A");
-
-ok(normalize('NFD', ""), "");
-ok(normalize('NFC', ""), "");
-ok(normalize('NFKD',""), "");
-ok(normalize('NFKC',""), "");
-
-ok(normalize('NFD', "A"), "A");
-ok(normalize('NFC', "A"), "A");
-ok(normalize('NFKD',"A"), "A");
-ok(normalize('NFKC',"A"), "A");
-
-# 17
-
-# don't modify the source
-my $sNFD = "\x{FA19}";
-ok(normalize('NFD', $sNFD), "\x{795E}");
-ok($sNFD, "\x{FA19}");
-
-my $sNFC = "\x{FA1B}";
-ok(normalize('NFC', $sNFC), "\x{798F}");
-ok($sNFC, "\x{FA1B}");
-
-my $sNFKD = "\x{FA1E}";
-ok(normalize('NFKD', $sNFKD), "\x{7FBD}");
-ok($sNFKD, "\x{FA1E}");
-
-my $sNFKC = "\x{FA26}";
-ok(normalize('NFKC', $sNFKC), "\x{90FD}");
-ok($sNFKC, "\x{FA26}");
-
-# 25
-
-sub hexNFC {
- join " ", map sprintf("%04X", $_),
- _unpack_U normalize 'C', _pack_U map hex, split ' ', shift;
-}
-sub hexNFD {
- join " ", map sprintf("%04X", $_),
- _unpack_U normalize 'D', _pack_U map hex, split ' ', shift;
-}
-
-ok(hexNFD("1E14 AC01"), "0045 0304 0300 1100 1161 11A8");
-ok(hexNFD("AC00 AE00"), "1100 1161 1100 1173 11AF");
-
-ok(hexNFC("0061 0315 0300 05AE 05C4 0062"), "00E0 05AE 05C4 0315 0062");
-ok(hexNFC("00E0 05AE 05C4 0315 0062"), "00E0 05AE 05C4 0315 0062");
-ok(hexNFC("0061 05AE 0300 05C4 0315 0062"), "00E0 05AE 05C4 0315 0062");
-ok(hexNFC("0045 0304 0300 AC00 11A8"), "1E14 AC01");
-ok(hexNFC("1100 1161 1100 1173 11AF"), "AC00 AE00");
-ok(hexNFC("1100 0300 1161 1173 11AF"), "1100 0300 1161 1173 11AF");
-
-ok(hexNFD("0061 0315 0300 05AE 05C4 0062"), "0061 05AE 0300 05C4 0315 0062");
-ok(hexNFD("00E0 05AE 05C4 0315 0062"), "0061 05AE 0300 05C4 0315 0062");
-ok(hexNFD("0061 05AE 0300 05C4 0315 0062"), "0061 05AE 0300 05C4 0315 0062");
-ok(hexNFC("0061 05C4 0315 0300 05AE 0062"), "0061 05AE 05C4 0300 0315 0062");
-ok(hexNFC("0061 05AE 05C4 0300 0315 0062"), "0061 05AE 05C4 0300 0315 0062");
-ok(hexNFD("0061 05C4 0315 0300 05AE 0062"), "0061 05AE 05C4 0300 0315 0062");
-ok(hexNFD("0061 05AE 05C4 0300 0315 0062"), "0061 05AE 05C4 0300 0315 0062");
-ok(hexNFC("0000 0041 0000 0000"), "0000 0041 0000 0000");
-ok(hexNFD("0000 0041 0000 0000"), "0000 0041 0000 0000");
-
-ok(hexNFC("AC00 11A7"), "AC00 11A7");
-ok(hexNFC("AC00 11A8"), "AC01");
-ok(hexNFC("AC00 11A9"), "AC02");
-ok(hexNFC("AC00 11C2"), "AC1B");
-ok(hexNFC("AC00 11C3"), "AC00 11C3");
-
-# 47
-
-# Test Cases from Public Review Issue #29: Normalization Issue
-# cf. http://www.unicode.org/review/pr-29.html
-ok(hexNFC("0B47 0300 0B3E"), "0B47 0300 0B3E");
-ok(hexNFC("1100 0300 1161"), "1100 0300 1161");
-ok(hexNFC("0B47 0B3E 0300"), "0B4B 0300");
-ok(hexNFC("1100 1161 0300"), "AC00 0300");
-ok(hexNFC("0B47 0300 0B3E 0327"), "0B47 0300 0B3E 0327");
-ok(hexNFC("1100 0300 1161 0327"), "1100 0300 1161 0327");
-
-ok(hexNFC("0300 0041"), "0300 0041");
-ok(hexNFC("0300 0301 0041"), "0300 0301 0041");
-ok(hexNFC("0301 0300 0041"), "0301 0300 0041");
-ok(hexNFC("0000 0300 0000 0301"), "0000 0300 0000 0301");
-ok(hexNFC("0000 0301 0000 0300"), "0000 0301 0000 0300");
-
-ok(hexNFC("0327 0061 0300"), "0327 00E0");
-ok(hexNFC("0301 0061 0300"), "0301 00E0");
-ok(hexNFC("0315 0061 0300"), "0315 00E0");
-ok(hexNFC("0000 0327 0061 0300"), "0000 0327 00E0");
-ok(hexNFC("0000 0301 0061 0300"), "0000 0301 00E0");
-ok(hexNFC("0000 0315 0061 0300"), "0000 0315 00E0");
-
-# 64
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/null.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/null.t
deleted file mode 100755
index 9a0008708ed..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/null.t
+++ /dev/null
@@ -1,100 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-
-use Unicode::Normalize qw(:all);
-print "1..24\n";
-
-print "ok 1\n";
-
-# if $_ is not NULL-terminated, test may fail.
-
-$_ = compose('abc');
-print /c$/ ? "ok" : "not ok", " 2\n";
-
-$_ = decompose('abc');
-print /c$/ ? "ok" : "not ok", " 3\n";
-
-$_ = reorder('abc');
-print /c$/ ? "ok" : "not ok", " 4\n";
-
-$_ = NFD('abc');
-print /c$/ ? "ok" : "not ok", " 5\n";
-
-$_ = NFC('abc');
-print /c$/ ? "ok" : "not ok", " 6\n";
-
-$_ = NFKD('abc');
-print /c$/ ? "ok" : "not ok", " 7\n";
-
-$_ = NFKC('abc');
-print /c$/ ? "ok" : "not ok", " 8\n";
-
-$_ = FCC('abc');
-print /c$/ ? "ok" : "not ok", " 9\n";
-
-$_ = decompose("\x{304C}abc");
-print /c$/ ? "ok" : "not ok", " 10\n";
-
-$_ = decompose("\x{304B}\x{3099}abc");
-print /c$/ ? "ok" : "not ok", " 11\n";
-
-$_ = reorder("\x{304C}abc");
-print /c$/ ? "ok" : "not ok", " 12\n";
-
-$_ = reorder("\x{304B}\x{3099}abc");
-print /c$/ ? "ok" : "not ok", " 13\n";
-
-$_ = compose("\x{304C}abc");
-print /c$/ ? "ok" : "not ok", " 14\n";
-
-$_ = compose("\x{304B}\x{3099}abc");
-print /c$/ ? "ok" : "not ok", " 15\n";
-
-$_ = NFD("\x{304C}abc");
-print /c$/ ? "ok" : "not ok", " 16\n";
-
-$_ = NFC("\x{304C}abc");
-print /c$/ ? "ok" : "not ok", " 17\n";
-
-$_ = NFKD("\x{304C}abc");
-print /c$/ ? "ok" : "not ok", " 18\n";
-
-$_ = NFKC("\x{304C}abc");
-print /c$/ ? "ok" : "not ok", " 19\n";
-
-$_ = FCC("\x{304C}abc");
-print /c$/ ? "ok" : "not ok", " 20\n";
-
-$_ = getCanon(0x100);
-print s/.$// ? "ok" : "not ok", " 21\n";
-
-$_ = getCompat(0x100);
-print s/.$// ? "ok" : "not ok", " 22\n";
-
-$_ = getCanon(0xAC00);
-print s/.$// ? "ok" : "not ok", " 23\n";
-
-$_ = getCompat(0xAC00);
-print s/.$// ? "ok" : "not ok", " 24\n";
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/partial1.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/partial1.t
deleted file mode 100644
index 3e44a63dc04..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/partial1.t
+++ /dev/null
@@ -1,120 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-BEGIN {
- unless (5.006001 <= $]) {
- print "1..0 # skipped: Perl 5.6.1 or later".
- " needed for this test\n";
- exit;
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..26\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize qw(:all);
-
-ok(1);
-
-sub _pack_U { Unicode::Normalize::pack_U(@_) }
-sub _unpack_U { Unicode::Normalize::unpack_U(@_) }
-
-#########################
-
-sub arraynorm {
- my $form = shift;
- my @string = @_;
- my $result = "";
- my $unproc = "";
- foreach my $str (@string) {
- $unproc .= $str;
- $result .= $form eq 'NFC' ? NFC_partial ($unproc) :
- $form eq 'NFD' ? NFD_partial ($unproc) :
- $form eq 'NFKC' ? NFKC_partial($unproc) :
- $form eq 'NFKD' ? NFKD_partial($unproc) :
- undef;
- }
- $result .= $unproc;
- return $result;
-}
-
-my $strD = "\x{3C9}\x{301}\x{1100}\x{1161}\x{11A8}\x{1100}\x{1161}\x{11AA}";
-my $strC = "\x{3CE}\x{AC01}\x{AC03}";
-my @str1 = (substr($strD,0,3), substr($strD,3,4), substr($strD,7));
-my @str2 = (substr($strD,0,1), substr($strD,1,3), substr($strD,4));
-ok($strC eq NFC($strD));
-ok($strD eq join('', @str1));
-ok($strC eq arraynorm('NFC', @str1));
-ok($strD eq join('', @str2));
-ok($strC eq arraynorm('NFC', @str2));
-
-my @strX = ("\x{300}\x{AC00}", "\x{11A8}");
-my $strX = "\x{300}\x{AC01}";
-ok($strX eq NFC(join('', @strX)));
-ok($strX eq arraynorm('NFC', @strX));
-ok($strX eq NFKC(join('', @strX)));
-ok($strX eq arraynorm('NFKC', @strX));
-
-my @strY = ("\x{304B}\x{0308}", "\x{0323}\x{3099}");
-my $strY = ("\x{304C}\x{0323}\x{0308}");
-ok($strY eq NFC(join('', @strY)));
-ok($strY eq arraynorm('NFC', @strY));
-ok($strY eq NFKC(join('', @strY)));
-ok($strY eq arraynorm('NFKC', @strY));
-
-my @strZ = ("\x{304B}\x{0308}", "\x{0323}", "\x{3099}");
-my $strZ = ("\x{304B}\x{3099}\x{0323}\x{0308}");
-ok($strZ eq NFD(join('', @strZ)));
-ok($strZ eq arraynorm('NFD', @strZ));
-ok($strZ eq NFKD(join('', @strZ)));
-ok($strZ eq arraynorm('NFKD', @strZ));
-
-# 18
-
-# must modify the source
-my $sNFD = "\x{FA19}";
-ok(NFD_partial($sNFD), "");
-ok($sNFD, "\x{795E}");
-
-my $sNFC = "\x{FA1B}";
-ok(NFC_partial($sNFC), "");
-ok($sNFC, "\x{798F}");
-
-my $sNFKD = "\x{FA1E}";
-ok(NFKD_partial($sNFKD), "");
-ok($sNFKD, "\x{7FBD}");
-
-my $sNFKC = "\x{FA26}";
-ok(NFKC_partial($sNFKC), "");
-ok($sNFKC, "\x{90FD}");
-
-# 26
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/partial2.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/partial2.t
deleted file mode 100644
index 7f19e9365b8..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/partial2.t
+++ /dev/null
@@ -1,116 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-BEGIN {
- unless (5.006001 <= $]) {
- print "1..0 # skipped: Perl 5.6.1 or later".
- " needed for this test\n";
- exit;
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..26\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize qw(:all);
-
-ok(1);
-
-sub _pack_U { Unicode::Normalize::pack_U(@_) }
-sub _unpack_U { Unicode::Normalize::unpack_U(@_) }
-
-#########################
-
-sub arraynorm {
- my $form = shift;
- my @string = @_;
- my $result = "";
- my $unproc = "";
- foreach my $str (@string) {
- $unproc .= $str;
- $result .= normalize_partial($form, $unproc);
- }
- $result .= $unproc;
- return $result;
-}
-
-my $strD = "\x{3C9}\x{301}\x{1100}\x{1161}\x{11A8}\x{1100}\x{1161}\x{11AA}";
-my $strC = "\x{3CE}\x{AC01}\x{AC03}";
-my @str1 = (substr($strD,0,3), substr($strD,3,4), substr($strD,7));
-my @str2 = (substr($strD,0,1), substr($strD,1,3), substr($strD,4));
-ok($strC eq NFC($strD));
-ok($strD eq join('', @str1));
-ok($strC eq arraynorm('NFC', @str1));
-ok($strD eq join('', @str2));
-ok($strC eq arraynorm('NFC', @str2));
-
-my @strX = ("\x{300}\x{AC00}", "\x{11A8}");
-my $strX = "\x{300}\x{AC01}";
-ok($strX eq NFC(join('', @strX)));
-ok($strX eq arraynorm('NFC', @strX));
-ok($strX eq NFKC(join('', @strX)));
-ok($strX eq arraynorm('NFKC', @strX));
-
-my @strY = ("\x{304B}\x{0308}", "\x{0323}\x{3099}");
-my $strY = ("\x{304C}\x{0323}\x{0308}");
-ok($strY eq NFC(join('', @strY)));
-ok($strY eq arraynorm('NFC', @strY));
-ok($strY eq NFKC(join('', @strY)));
-ok($strY eq arraynorm('NFKC', @strY));
-
-my @strZ = ("\x{304B}\x{0308}", "\x{0323}", "\x{3099}");
-my $strZ = ("\x{304B}\x{3099}\x{0323}\x{0308}");
-ok($strZ eq NFD(join('', @strZ)));
-ok($strZ eq arraynorm('NFD', @strZ));
-ok($strZ eq NFKD(join('', @strZ)));
-ok($strZ eq arraynorm('NFKD', @strZ));
-
-# 18
-
-# must modify the source
-my $sNFD = "\x{FA19}";
-ok(normalize_partial('NFD', $sNFD), "");
-ok($sNFD, "\x{795E}");
-
-my $sNFC = "\x{FA1B}";
-ok(normalize_partial('NFC', $sNFC), "");
-ok($sNFC, "\x{798F}");
-
-my $sNFKD = "\x{FA1E}";
-ok(normalize_partial('NFKD', $sNFKD), "");
-ok($sNFKD, "\x{7FBD}");
-
-my $sNFKC = "\x{FA26}";
-ok(normalize_partial('NFKC', $sNFKC), "");
-ok($sNFKC, "\x{90FD}");
-
-# 26
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/proto.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/proto.t
deleted file mode 100755
index 38c69857599..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/proto.t
+++ /dev/null
@@ -1,99 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..48\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize qw(:all);
-
-ok(1);
-
-#########################
-
-# unary op. RING-CEDILLA
-ok( "\x{30A}\x{327}" ne "\x{327}\x{30A}");
-ok(NFD "\x{30A}\x{327}" eq "\x{327}\x{30A}");
-ok(NFC "\x{30A}\x{327}" eq "\x{327}\x{30A}");
-ok(NFKD "\x{30A}\x{327}" eq "\x{327}\x{30A}");
-ok(NFKC "\x{30A}\x{327}" eq "\x{327}\x{30A}");
-ok(FCD "\x{30A}\x{327}" eq "\x{327}\x{30A}");
-ok(FCC "\x{30A}\x{327}" eq "\x{327}\x{30A}");
-ok(reorder "\x{30A}\x{327}" eq "\x{327}\x{30A}");
-
-# 9
-
-ok(prototype \&normalize,'$$');
-ok(prototype \&NFD, '$');
-ok(prototype \&NFC, '$');
-ok(prototype \&NFKD, '$');
-ok(prototype \&NFKC, '$');
-ok(prototype \&FCD, '$');
-ok(prototype \&FCC, '$');
-
-ok(prototype \&check, '$$');
-ok(prototype \&checkNFD, '$');
-ok(prototype \&checkNFC, '$');
-ok(prototype \&checkNFKD,'$');
-ok(prototype \&checkNFKC,'$');
-ok(prototype \&checkFCD, '$');
-ok(prototype \&checkFCC, '$');
-
-ok(prototype \&decompose, '$;$');
-ok(prototype \&reorder, '$');
-ok(prototype \&compose, '$');
-ok(prototype \&composeContiguous, '$');
-
-# 27
-
-ok(prototype \&getCanon, '$');
-ok(prototype \&getCompat, '$');
-ok(prototype \&getComposite, '$$');
-ok(prototype \&getCombinClass,'$');
-ok(prototype \&isExclusion, '$');
-ok(prototype \&isSingleton, '$');
-ok(prototype \&isNonStDecomp, '$');
-ok(prototype \&isComp2nd, '$');
-ok(prototype \&isComp_Ex, '$');
-ok(prototype \&isNFD_NO, '$');
-ok(prototype \&isNFC_NO, '$');
-ok(prototype \&isNFC_MAYBE, '$');
-ok(prototype \&isNFKD_NO, '$');
-ok(prototype \&isNFKC_NO, '$');
-ok(prototype \&isNFKC_MAYBE, '$');
-ok(prototype \&splitOnLastStarter, undef);
-ok(prototype \&normalize_partial, '$$');
-ok(prototype \&NFD_partial, '$');
-ok(prototype \&NFC_partial, '$');
-ok(prototype \&NFKD_partial, '$');
-ok(prototype \&NFKC_partial, '$');
-
-# 48
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/split.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/split.t
deleted file mode 100755
index a92957c2081..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/split.t
+++ /dev/null
@@ -1,147 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-BEGIN {
- unless (5.006001 <= $]) {
- print "1..0 # skipped: Perl 5.6.1 or later".
- " needed for this test\n";
- exit;
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..34\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize qw(:all);
-
-ok(1);
-
-sub _pack_U { Unicode::Normalize::pack_U(@_) }
-sub _unpack_U { Unicode::Normalize::unpack_U(@_) }
-
-#########################
-
-our $proc; # before the last starter
-our $unproc; # the last starter and after
-# If string has no starter, entire string is set to $unproc.
-
-($proc, $unproc) = splitOnLastStarter("");
-ok($proc, "");
-ok($unproc, "");
-
-($proc, $unproc) = splitOnLastStarter("A");
-ok($proc, "");
-ok($unproc, "A");
-
-($proc, $unproc) = splitOnLastStarter(_pack_U(0x41, 0x300, 0x327, 0x42));
-ok($proc, _pack_U(0x41, 0x300, 0x327));
-ok($unproc, "B");
-
-($proc, $unproc) = splitOnLastStarter(_pack_U(0x4E00, 0x41, 0x301));
-ok($proc, _pack_U(0x4E00));
-ok($unproc, _pack_U(0x41, 0x301));
-
-($proc, $unproc) = splitOnLastStarter(_pack_U(0x302, 0x301, 0x300));
-ok($proc, "");
-ok($unproc, _pack_U(0x302, 0x301, 0x300));
-
-our $ka_grave = _pack_U(0x41, 0, 0x42, 0x304B, 0x300);
-our $dakuten = _pack_U(0x3099);
-our $ga_grave = _pack_U(0x41, 0, 0x42, 0x304C, 0x300);
-
-our ($p, $u) = splitOnLastStarter($ka_grave);
-our $concat = $p . NFC($u.$dakuten);
-
-ok(NFC($ka_grave.$dakuten) eq $ga_grave);
-ok(NFC($ka_grave).NFC($dakuten) ne $ga_grave);
-ok($concat eq $ga_grave);
-
-# 14
-
-sub arraynorm {
- my $form = shift;
- my @string = @_;
- my $result = "";
- my $unproc = "";
- foreach my $str (@string) {
- $unproc .= $str;
- my $n = normalize($form, $unproc);
- my($p, $u) = splitOnLastStarter($n);
- $result .= $p;
- $unproc = $u;
- }
- $result .= $unproc;
- return $result;
-}
-
-my $strD = "\x{3C9}\x{301}\x{1100}\x{1161}\x{11A8}\x{1100}\x{1161}\x{11AA}";
-my $strC = "\x{3CE}\x{AC01}\x{AC03}";
-my @str1 = (substr($strD,0,3), substr($strD,3,4), substr($strD,7));
-my @str2 = (substr($strD,0,1), substr($strD,1,3), substr($strD,4));
-ok($strC eq NFC($strD));
-ok($strD eq join('', @str1));
-ok($strC eq arraynorm('NFC', @str1));
-ok($strD eq join('', @str2));
-ok($strC eq arraynorm('NFC', @str2));
-
-my @strX = ("\x{300}\x{AC00}", "\x{11A8}");
-my $strX = "\x{300}\x{AC01}";
-ok($strX eq NFC(join('', @strX)));
-ok($strX eq arraynorm('NFC', @strX));
-ok($strX eq NFKC(join('', @strX)));
-ok($strX eq arraynorm('NFKC', @strX));
-
-my @strY = ("\x{304B}\x{0308}", "\x{0323}\x{3099}");
-my $strY = ("\x{304C}\x{0323}\x{0308}");
-ok($strY eq NFC(join('', @strY)));
-ok($strY eq arraynorm('NFC', @strY));
-ok($strY eq NFKC(join('', @strY)));
-ok($strY eq arraynorm('NFKC', @strY));
-
-my @strZ = ("\x{304B}\x{0308}", "\x{0323}", "\x{3099}");
-my $strZ = ("\x{304B}\x{3099}\x{0323}\x{0308}");
-ok($strZ eq NFD(join('', @strZ)));
-ok($strZ eq arraynorm('NFD', @strZ));
-ok($strZ eq NFKD(join('', @strZ)));
-ok($strZ eq arraynorm('NFKD', @strZ));
-
-# 31
-
-# don't modify the source
-
-my $source = "ABC";
-($proc, $unproc) = splitOnLastStarter($source);
-ok($proc, "AB");
-ok($unproc, "C");
-ok($source, "ABC");
-
-# 34
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/test.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/test.t
deleted file mode 100755
index cb4b6ea6375..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/test.t
+++ /dev/null
@@ -1,168 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-#########################
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..72\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-use Unicode::Normalize;
-
-ok(1);
-
-sub _pack_U { Unicode::Normalize::pack_U(@_) }
-sub _unpack_U { Unicode::Normalize::unpack_U(@_) }
-
-#########################
-
-ok(NFD(""), "");
-ok(NFC(""), "");
-ok(NFKD(""), "");
-ok(NFKC(""), "");
-
-ok(NFD("A"), "A");
-ok(NFC("A"), "A");
-ok(NFKD("A"), "A");
-ok(NFKC("A"), "A");
-
-# 9
-
-# don't modify the source
-my $sNFD = "\x{FA19}";
-ok(NFD($sNFD), "\x{795E}");
-ok($sNFD, "\x{FA19}");
-
-my $sNFC = "\x{FA1B}";
-ok(NFC($sNFC), "\x{798F}");
-ok($sNFC, "\x{FA1B}");
-
-my $sNFKD = "\x{FA1E}";
-ok(NFKD($sNFKD), "\x{7FBD}");
-ok($sNFKD, "\x{FA1E}");
-
-my $sNFKC = "\x{FA26}";
-ok(NFKC($sNFKC), "\x{90FD}");
-ok($sNFKC, "\x{FA26}");
-
-# 17
-
-sub hexNFC {
- join " ", map sprintf("%04X", $_),
- _unpack_U NFC _pack_U map hex, split ' ', shift;
-}
-sub hexNFD {
- join " ", map sprintf("%04X", $_),
- _unpack_U NFD _pack_U map hex, split ' ', shift;
-}
-
-ok(hexNFD("1E14 AC01"), "0045 0304 0300 1100 1161 11A8");
-ok(hexNFD("AC00 AE00"), "1100 1161 1100 1173 11AF");
-
-ok(hexNFC("0061 0315 0300 05AE 05C4 0062"), "00E0 05AE 05C4 0315 0062");
-ok(hexNFC("00E0 05AE 05C4 0315 0062"), "00E0 05AE 05C4 0315 0062");
-ok(hexNFC("0061 05AE 0300 05C4 0315 0062"), "00E0 05AE 05C4 0315 0062");
-ok(hexNFC("0045 0304 0300 AC00 11A8"), "1E14 AC01");
-ok(hexNFC("1100 1161 1100 1173 11AF"), "AC00 AE00");
-ok(hexNFC("1100 0300 1161 1173 11AF"), "1100 0300 1161 1173 11AF");
-
-ok(hexNFD("0061 0315 0300 05AE 05C4 0062"), "0061 05AE 0300 05C4 0315 0062");
-ok(hexNFD("00E0 05AE 05C4 0315 0062"), "0061 05AE 0300 05C4 0315 0062");
-ok(hexNFD("0061 05AE 0300 05C4 0315 0062"), "0061 05AE 0300 05C4 0315 0062");
-ok(hexNFC("0061 05C4 0315 0300 05AE 0062"), "0061 05AE 05C4 0300 0315 0062");
-ok(hexNFC("0061 05AE 05C4 0300 0315 0062"), "0061 05AE 05C4 0300 0315 0062");
-ok(hexNFD("0061 05C4 0315 0300 05AE 0062"), "0061 05AE 05C4 0300 0315 0062");
-ok(hexNFD("0061 05AE 05C4 0300 0315 0062"), "0061 05AE 05C4 0300 0315 0062");
-ok(hexNFC("0000 0041 0000 0000"), "0000 0041 0000 0000");
-ok(hexNFD("0000 0041 0000 0000"), "0000 0041 0000 0000");
-
-ok(hexNFC("AC00 11A7"), "AC00 11A7");
-ok(hexNFC("AC00 11A8"), "AC01");
-ok(hexNFC("AC00 11A9"), "AC02");
-ok(hexNFC("AC00 11C2"), "AC1B");
-ok(hexNFC("AC00 11C3"), "AC00 11C3");
-
-# 39
-
-# Test Cases from Public Review Issue #29: Normalization Issue
-# cf. http://www.unicode.org/review/pr-29.html
-ok(hexNFC("0B47 0300 0B3E"), "0B47 0300 0B3E");
-ok(hexNFC("1100 0300 1161"), "1100 0300 1161");
-ok(hexNFC("0B47 0B3E 0300"), "0B4B 0300");
-ok(hexNFC("1100 1161 0300"), "AC00 0300");
-ok(hexNFC("0B47 0300 0B3E 0327"), "0B47 0300 0B3E 0327");
-ok(hexNFC("1100 0300 1161 0327"), "1100 0300 1161 0327");
-
-ok(hexNFC("0300 0041"), "0300 0041");
-ok(hexNFC("0300 0301 0041"), "0300 0301 0041");
-ok(hexNFC("0301 0300 0041"), "0301 0300 0041");
-ok(hexNFC("0000 0300 0000 0301"), "0000 0300 0000 0301");
-ok(hexNFC("0000 0301 0000 0300"), "0000 0301 0000 0300");
-
-ok(hexNFC("0327 0061 0300"), "0327 00E0");
-ok(hexNFC("0301 0061 0300"), "0301 00E0");
-ok(hexNFC("0315 0061 0300"), "0315 00E0");
-ok(hexNFC("0000 0327 0061 0300"), "0000 0327 00E0");
-ok(hexNFC("0000 0301 0061 0300"), "0000 0301 00E0");
-ok(hexNFC("0000 0315 0061 0300"), "0000 0315 00E0");
-
-# 56
-
-# NFC() and NFKC() should be unary.
-my $str11 = _pack_U(0x41, 0x0302, 0x0301, 0x62);
-my $str12 = _pack_U(0x1EA4, 0x62);
-ok(NFC $str11 eq $str12);
-ok(NFKC $str11 eq $str12);
-
-# NFD() and NFKD() should be unary.
-my $str21 = _pack_U(0xE0, 0xAC00);
-my $str22 = _pack_U(0x61, 0x0300, 0x1100, 0x1161);
-ok(NFD $str21 eq $str22);
-ok(NFKD $str21 eq $str22);
-
-# 60
-
-## Bug #53197: NFKC("\x{2000}") produces...
-
-ok(NFKC("\x{2002}") eq ' ');
-ok(NFKD("\x{2002}") eq ' ');
-ok(NFKC("\x{2000}") eq ' ');
-ok(NFKD("\x{2000}") eq ' ');
-
-ok(NFKC("\x{210C}") eq 'H');
-ok(NFKD("\x{210C}") eq 'H');
-ok(NFKC("\x{210D}") eq 'H');
-ok(NFKD("\x{210D}") eq 'H');
-
-ok(NFC("\x{F907}") eq "\x{9F9C}");
-ok(NFD("\x{F907}") eq "\x{9F9C}");
-ok(NFKC("\x{F907}") eq "\x{9F9C}");
-ok(NFKD("\x{F907}") eq "\x{9F9C}");
-
-# 72
-
diff --git a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/tie.t b/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/tie.t
deleted file mode 100755
index 4fdd121e07e..00000000000
--- a/gnu/usr.bin/perl/cpan/Unicode-Normalize/t/tie.t
+++ /dev/null
@@ -1,82 +0,0 @@
-
-BEGIN {
- unless ('A' eq pack('U', 0x41)) {
- print "1..0 # Unicode::Normalize cannot pack a Unicode code point\n";
- exit 0;
- }
- unless (0x41 == unpack('U', 'A')) {
- print "1..0 # Unicode::Normalize cannot get a Unicode code point\n";
- exit 0;
- }
-}
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir('t') if -d 't';
- @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
- }
-}
-
-#########################
-
-BEGIN {
- use Unicode::Normalize qw(:all);
-
- unless (exists &Unicode::Normalize::bootstrap or 5.008 <= $]) {
- print "1..0 # skipped: XSUB, or Perl 5.8.0 or later".
- " needed for this test\n";
- print $@;
- exit;
- }
-}
-
-use strict;
-use warnings;
-BEGIN { $| = 1; print "1..17\n"; }
-my $count = 0;
-sub ok ($;$) {
- my $p = my $r = shift;
- if (@_) {
- my $x = shift;
- $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
- }
- print $p ? "ok" : "not ok", ' ', ++$count, "\n";
-}
-
-ok(1);
-
-package tiescalar;
-sub TIESCALAR {
- my ($class, $instance) = @_;
- return bless \$instance => $class;
-}
-sub FETCH { return ${$_[0]}++ }
-sub STORE { return ${$_[0]} = $_[1] }
-sub DESTROY { undef ${$_[0]} }
-
-#########################
-
-package main;
-
-tie my $tie1, 'tiescalar', "123";
-ok(NFD($tie1), 123);
-ok(NFC($tie1), 124);
-ok(NFKD($tie1), 125);
-ok(NFKC($tie1), 126);
-ok(FCD($tie1), 127);
-ok(FCC($tie1), 128);
-
-tie my $tie2, 'tiescalar', "256";
-ok(normalize('NFD', $tie2), 256);
-ok(normalize('NFC', $tie2), 257);
-ok(normalize('NFKD', $tie2), 258);
-ok(normalize('NFKC', $tie2), 259);
-ok(normalize('FCD', $tie2), 260);
-ok(normalize('FCC', $tie2), 261);
-
-tie my $tie3, 'tiescalar', "315";
-ok(decompose($tie3), 315);
-ok(reorder($tie3), 316);
-ok(compose($tie3), 317);
-ok(composeContiguous($tie3), 318);
-
diff --git a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm
index 73058085e00..8743719cb84 100644
--- a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm
+++ b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
use Carp qw(croak);
-our $VERSION = '2.29'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.29002';
# ABSTRACT: Exceptions from autodying functions.
our $DEBUG = 0;
@@ -195,12 +195,10 @@ sub eval_error { return $_[0]->{$PACKAGE}{eval_error}; }
if ( $e->matches('open') ) { ... }
- if ( $e ~~ 'open' ) { ... }
+ if ( 'open' ~~ $e ) { ... }
C<matches> is used to determine whether a
-given exception matches a particular role. On Perl 5.10,
-using smart-match (C<~~>) with an C<autodie::exception> object
-will use C<matches> underneath.
+given exception matches a particular role.
An exception is considered to match a string if:
@@ -221,6 +219,18 @@ C<CORE::open> subroutine does C<:file>, C<:io> and C<:all>.
See L<autodie/CATEGORIES> for further information.
+On Perl 5.10 and above, using smart-match (C<~~>) with an
+C<autodie::exception> object will use C<matches> underneath. This module
+used to recommend using smart-match with the exception object on the left
+hand side, but in future Perls that is likely to stop working.
+The smart-match facility of this class should only be used with the
+exception object on the right hand side. Having the exception object on
+the right is both future-proof and portable to older Perls, back to 5.10.
+Beware that this facility can only
+be relied upon when it is certain that the exception object actually is
+an C<autodie::exception> object; it is no more capable than an explicit
+call to the C<matches> method.
+
=back
=cut
diff --git a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm
index beaefcc28a9..be9fbceb475 100644
--- a/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm
+++ b/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm
@@ -5,7 +5,7 @@ use warnings;
use constant PERL58 => ( $] < 5.009 );
-our $VERSION = '2.29'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.29001';
# ABSTRACT: Provide hints about user subroutines to autodie
@@ -115,8 +115,9 @@ has been checked.
=head2 Example hints
-Hints may consist of scalars, array references, regular expressions and
-subroutine references. You can specify different hints for how
+Hints may consist of subroutine references, objects overloading
+smart-match, regular expressions, and depending on Perl version possibly
+other things. You can specify different hints for how
failure should be identified in scalar and list contexts.
These examples apply for use in the C<AUTODIE_HINTS> subroutine and when
@@ -125,16 +126,16 @@ calling C<autodie::hints->set_hints_for()>.
The most common context-specific hints are:
# Scalar failures always return undef:
- { scalar => undef }
+ { scalar => sub { !defined($_[0]) } }
# Scalar failures return any false value [default expectation]:
{ scalar => sub { ! $_[0] } }
# Scalar failures always return zero explicitly:
- { scalar => '0' }
+ { scalar => sub { defined($_[0]) && $_[0] eq '0' } }
# List failures always return an empty list:
- { list => [] }
+ { list => sub { !@_ } }
# List failures return () or (undef) [default expectation]:
{ list => sub { ! @_ || @_ == 1 && !defined $_[0] } }
@@ -151,7 +152,7 @@ The most common context-specific hints are:
\&foo,
{
scalar => qr/^ _? FAIL $/xms,
- list => [-1],
+ list => sub { @_ == 1 && $_[0] eq -1 },
}
);
@@ -159,8 +160,8 @@ The most common context-specific hints are:
autodie::hints->set_hints_for(
\&foo,
{
- scalar => 0,
- list => [0],
+ scalar => sub { defined($_[0]) && $_[0] == 0 },
+ list => sub { @_ == 1 && defined($_[0]) && $_[0] == 0 },
}
);
diff --git a/gnu/usr.bin/perl/cpan/autodie/t/exceptions.t b/gnu/usr.bin/perl/cpan/autodie/t/exceptions.t
index 4e7545d1ee1..ab6f07de44e 100755
--- a/gnu/usr.bin/perl/cpan/autodie/t/exceptions.t
+++ b/gnu/usr.bin/perl/cpan/autodie/t/exceptions.t
@@ -19,10 +19,10 @@ eval {
};
ok($@, "Exception thrown" );
-ok($@ ~~ 'open', "Exception from open" );
-ok($@ ~~ ':file', "Exception from open / class :file" );
-ok($@ ~~ ':io', "Exception from open / class :io" );
-ok($@ ~~ ':all', "Exception from open / class :all" );
+ok('open' ~~ $@, "Exception from open" );
+ok(':file' ~~ $@, "Exception from open / class :file" );
+ok(':io' ~~ $@, "Exception from open / class :io" );
+ok(':all' ~~ $@, "Exception from open / class :all" );
eval {
no warnings 'once'; # To prevent the following close from complaining.
@@ -39,10 +39,10 @@ eval {
like($@, qr{Can't close filehandle 'THIS_FILEHANDLE_AINT_OPEN'},"Nice msg from close");
ok($@, "Exception thrown" );
-ok($@ ~~ 'close', "Exception from close" );
-ok($@ ~~ ':file', "Exception from close / class :file" );
-ok($@ ~~ ':io', "Exception from close / class :io" );
-ok($@ ~~ ':all', "Exception from close / class :all" );
+ok('close' ~~ $@, "Exception from close" );
+ok(':file' ~~ $@, "Exception from close / class :file" );
+ok(':io' ~~ $@, "Exception from close / class :io" );
+ok(':all' ~~ $@, "Exception from close / class :all" );
ok $@ eq $@.'', "string overloading is complete (eq)";
ok( ($@ cmp $@.'') == 0, "string overloading is complete (cmp)" );
diff --git a/gnu/usr.bin/perl/cpan/autodie/t/lib/Hints_pod_examples.pm b/gnu/usr.bin/perl/cpan/autodie/t/lib/Hints_pod_examples.pm
index 05db908e181..72a58a5ce57 100644
--- a/gnu/usr.bin/perl/cpan/autodie/t/lib/Hints_pod_examples.pm
+++ b/gnu/usr.bin/perl/cpan/autodie/t/lib/Hints_pod_examples.pm
@@ -17,17 +17,17 @@ use autodie::hints;
sub AUTODIE_HINTS {
return {
# Scalar failures always return undef:
- undef_scalar => { fail => undef },
+ undef_scalar => { fail => sub { !defined($_[0]) } },
# Scalar failures return any false value [default behaviour]:
false_scalar => { fail => sub { return ! $_[0] } },
# Scalar failures always return zero explicitly:
- zero_scalar => { fail => '0' },
+ zero_scalar => { fail => sub { defined($_[0]) && $_[0] eq '0' } },
# List failures always return empty list:
# We never want these called in a scalar context
- empty_list => { scalar => sub { 1 }, list => [] },
+ empty_list => { scalar => sub { 1 }, list => sub { !@_ } },
# List failures return C<()> or C<(undef)> [default expectation]:
default_list => { fail => sub { ! @_ || @_ == 1 && !defined $_[0] } },
@@ -54,8 +54,8 @@ sub undef_n_error_list { return wantarray ? @_ : $_[0] }
autodie::hints->set_hints_for(
\&foo,
{
- scalar => 0,
- list => [0],
+ scalar => sub { defined($_[0]) && $_[0] == 0 },
+ list => sub { @_ == 1 && defined($_[0]) && $_[0] == 0 },
}
);
@@ -67,7 +67,7 @@ autodie::hints->set_hints_for(
\&re_fail,
{
scalar => qr/^ _? FAIL $/xms,
- list => [-1],
+ list => sub { @_ == 1 && $_[0] eq -1 },
}
);
@@ -77,8 +77,8 @@ sub re_fail { return wantarray ? @_ : $_[0] }
autodie::hints->set_hints_for(
\&bar,
{
- scalar => 0,
- list => [0],
+ scalar => sub { defined($_[0]) && $_[0] == 0 },
+ list => sub { @_ == 1 && defined($_[0]) && $_[0] == 0 },
}
);
diff --git a/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm b/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm
index 634d9670d46..04dec98bc5e 100644
--- a/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm
+++ b/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm
@@ -2,20 +2,20 @@
package Math::BigFloat::Trace;
-require 5.006;
+require 5.010;
use strict;
use warnings;
use Exporter;
use Math::BigFloat;
-our ($PACKAGE, @EXPORT_OK, $accuracy, $precision, $round_mode, $div_scale);
+our ($accuracy, $precision, $round_mode, $div_scale);
our @ISA = qw(Exporter Math::BigFloat);
-our $VERSION = '0.42_01';
+our $VERSION = '0.49';
-use overload; # inherit overload from BigFloat
+use overload; # inherit overload from Math::BigFloat
# Globals
$accuracy = $precision = undef;
diff --git a/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm b/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm
index 4e474976e54..5f83c79210f 100644
--- a/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm
+++ b/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm
@@ -2,20 +2,20 @@
package Math::BigInt::Trace;
-require 5.006;
+require 5.010;
use strict;
use warnings;
use Exporter;
use Math::BigInt;
-our ($PACKAGE, @EXPORT_OK, $accuracy, $precision, $round_mode, $div_scale);
+our ($accuracy, $precision, $round_mode, $div_scale);
our @ISA = qw(Exporter Math::BigInt);
-our $VERSION = '0.42_01';
+our $VERSION = '0.49';
-use overload; # inherit overload from BigInt
+use overload; # inherit overload from Math::BigInt
# Globals
$accuracy = $precision = undef;
diff --git a/gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm b/gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm
index bc1ebe39724..92aeae8b079 100644
--- a/gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm
+++ b/gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm
@@ -1,10 +1,10 @@
package bigint;
-use 5.006;
+use 5.010;
use strict;
use warnings;
-our $VERSION = '0.42_01';
+our $VERSION = '0.49';
use Exporter;
our @ISA = qw( Exporter );
@@ -361,8 +361,8 @@ sub import {
}
}
-sub inf () { Math::BigInt::binf(); }
-sub NaN () { Math::BigInt::bnan(); }
+sub inf () { Math::BigInt->binf(); }
+sub NaN () { Math::BigInt->bnan(); }
sub PI () { Math::BigInt->new(3); }
sub e () { Math::BigInt->new(2); }
@@ -775,6 +775,24 @@ to compare them to the results under -Mbignum or -Mbigrat:
perl -Mbigint=a,65 -le 'print 2 ** 0.2'
perl -Mbignum=a,65,l,GMP -le 'print 7 ** 7777'
+=head1 BUGS
+
+For information about bugs and how to report them, see the BUGS section in the
+documentation available with the perldoc command.
+
+ perldoc bignum
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc bigint
+
+For more information, see the SUPPORT section in the documentation available
+with the perldoc command.
+
+ perldoc bignum
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
@@ -782,14 +800,23 @@ the same terms as Perl itself.
=head1 SEE ALSO
-Especially L<bigrat> as in C<perl -Mbigrat -le 'print 1/3+1/4'> and
-L<bignum> as in C<perl -Mbignum -le 'print sqrt(2)'>.
+L<bignum> and L<bigrat>.
-L<Math::BigInt>, L<Math::BigRat> and L<Math::Big> as well
-as L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+L<Math::BigInt>, L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
+L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=head1 AUTHORS
+=over 4
+
+=item *
+
(C) by Tels L<http://bloodgate.com/> in early 2002 - 2007.
+=item *
+
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+
+=back
+
=cut
diff --git a/gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm b/gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm
index 394b1473554..e052aabe293 100644
--- a/gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm
+++ b/gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm
@@ -1,10 +1,10 @@
package bignum;
-use 5.006;
+use 5.010;
use strict;
use warnings;
-our $VERSION = '0.42_01';
+our $VERSION = '0.49';
use Exporter;
our @ISA = qw( bigint );
@@ -662,6 +662,46 @@ Some cool command line examples to impress the Python crowd ;)
perl -Mbignum=a,65 -le 'print 2 ** 0.2'
perl -Mbignum=a,65,l,GMP -le 'print 7 ** 7777'
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-math-bigint at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=bignum> (requires login).
+We will be notified, and then you'll automatically be notified of
+progress on your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc bignum
+
+You can also look for information at:
+
+=over 4
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=bignum>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/bignum>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/bignum>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/bignum/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=bignum>
+
+=back
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
@@ -669,13 +709,23 @@ the same terms as Perl itself.
=head1 SEE ALSO
-Especially L<bigrat> as in C<perl -Mbigrat -le 'print 1/3+1/4'>.
+L<bigint> and L<bigrat>.
-L<Math::BigFloat>, L<Math::BigInt>, L<Math::BigRat> and L<Math::Big> as well
-as L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+L<Math::BigInt>, L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
+L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=head1 AUTHORS
+=over 4
+
+=item *
+
(C) by Tels L<http://bloodgate.com/> in early 2002 - 2007.
+=item *
+
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+
+=back
+
=cut
diff --git a/gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm b/gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm
index 260973b8427..45682f7bbe9 100644
--- a/gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm
+++ b/gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm
@@ -1,10 +1,10 @@
package bigrat;
-use 5.006;
+use 5.010;
use strict;
use warnings;
-our $VERSION = '0.42_01';
+our $VERSION = '0.49';
use Exporter;
our @ISA = qw( bigint );
@@ -548,6 +548,24 @@ Compare this to:
perl -Mbigrat -le 'print 12->is_odd()';
perl -Mbignum=l,GMP -le 'print 7 ** 7777'
+=head1 BUGS
+
+For information about bugs and how to report them, see the BUGS section in the
+documentation available with the perldoc command.
+
+ perldoc bignum
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc bigrat
+
+For more information, see the SUPPORT section in the documentation available
+with the perldoc command.
+
+ perldoc bignum
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
@@ -555,13 +573,23 @@ the same terms as Perl itself.
=head1 SEE ALSO
-Especially L<bignum>.
+L<bignum> and L<bigint>.
-L<Math::BigFloat>, L<Math::BigInt>, L<Math::BigRat> and L<Math::Big> as well
-as L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+L<Math::BigInt>, L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
+L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=head1 AUTHORS
+=over 4
+
+=item *
+
(C) by Tels L<http://bloodgate.com/> in early 2002 - 2007.
+=item *
+
+Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+
+=back
+
=cut
diff --git a/gnu/usr.bin/perl/cpan/bignum/t/bigexp.t b/gnu/usr.bin/perl/cpan/bignum/t/bigexp.t
index 03355a59461..61d39b2b82f 100755
--- a/gnu/usr.bin/perl/cpan/bignum/t/bigexp.t
+++ b/gnu/usr.bin/perl/cpan/bignum/t/bigexp.t
@@ -12,7 +12,6 @@ use bignum;
my $ln_ev = -7 / (10 ** 17);
my $ev = exp($ln_ev);
-
is(sprintf('%0.5f', $ev), '1.00000', '($ev) is approx. 1');
is(sprintf('%0.5f', 1 - $ev), '0.00000', '(1-$ev) is approx. 0');
is(sprintf('%0.5f', 1 - "$ev"), '0.00000', '(1-"$ev") is approx. 0');
diff --git a/gnu/usr.bin/perl/cpan/bignum/t/infnan.inc b/gnu/usr.bin/perl/cpan/bignum/t/infnan.inc
index 695b9135dd6..5ecc7b5936b 100644
--- a/gnu/usr.bin/perl/cpan/bignum/t/infnan.inc
+++ b/gnu/usr.bin/perl/cpan/bignum/t/infnan.inc
@@ -75,7 +75,6 @@ is($x->bstr(), 'NaN', qq|$x = inf * NaN; $x->bstr() = 'NaN'|);
for my $nan (qw/ nan naN nAn nAN Nan NaN NAn NAN /) {
my $x = 1 + $nan;
- print ref($x), "<<<\n";
is($x->bstr(), "NaN", qq|\$x = 1 + "$nan"; \$x->bstr() = "NaN"|);
isa_ok($x, "Math::BigInt");
}
diff --git a/gnu/usr.bin/perl/cpan/bignum/t/scope_f.t b/gnu/usr.bin/perl/cpan/bignum/t/scope_f.t
index 23ffc3a665b..e932ea2b9f7 100755
--- a/gnu/usr.bin/perl/cpan/bignum/t/scope_f.t
+++ b/gnu/usr.bin/perl/cpan/bignum/t/scope_f.t
@@ -32,4 +32,3 @@ SKIP: {
isnt (ref(hex(9)), 'Math::BigInt', 'hex is not overloaded');
isnt (ref(oct(07)), 'Math::BigInt', 'oct is not overloaded');
}
-
diff --git a/gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm b/gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm
index 8d747518d19..6c0b49ee1b3 100644
--- a/gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm
+++ b/gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm
@@ -1,10 +1,10 @@
package experimental;
-$experimental::VERSION = '0.016';
+$experimental::VERSION = '0.019';
use strict;
use warnings;
use version ();
-use feature ();
+BEGIN { eval { require feature } };
use Carp qw/croak carp/;
my %warnings = map { $_ => 1 } grep { /^experimental::/ } keys %warnings::Offsets;
@@ -21,6 +21,7 @@ my %min_version = (
array_base => '5',
autoderef => '5.14.0',
bitwise => '5.22.0',
+ const_attr => '5.22.0',
current_sub => '5.16.0',
evalbytes => '5.16.0',
fc => '5.16.0',
@@ -39,6 +40,7 @@ my %min_version = (
unicode_strings => '5.12.0',
);
my %max_version = (
+ autoderef => '5.23.1',
lexical_topic => '5.23.4',
);
@@ -128,7 +130,7 @@ experimental - Experimental features made easy
=head1 VERSION
-version 0.016
+version 0.019
=head1 SYNOPSIS
@@ -159,16 +161,67 @@ To disable the feature and, if applicable, re-enable any warnings, use:
The supported features, documented further below, are:
- array_base - allow the use of $[ to change the starting index of @array
- autoderef - allow push, each, keys, and other built-ins on references
- lexical_topic - allow the use of lexical $_ via "my $_"
- postderef - allow the use of postfix dereferencing expressions, including
- in interpolating strings
- refaliasing - allow aliasing via \$x = \$y
- regex_sets - allow extended bracketed character classes in regexps
- signatures - allow subroutine signatures (for named arguments)
- smartmatch - allow the use of ~~
- switch - allow the use of ~~, given, and when
+=over 4
+
+=item * C<array_base> - allow the use of C<$[> to change the starting index of C<@array>.
+
+This is supported on all versions of perl.
+
+=item * C<autoderef> - allow push, each, keys, and other built-ins on references.
+
+This was added in perl 5.14.0 and removed in perl 5.23.1.
+
+=item * C<bitwise> - allow the new stringwise bit operators
+
+This was added in perl 5.22.0.
+
+=item * C<const_attr> - allow the :const attribute on subs
+
+This was added in perl 5.22.0.
+
+=item * C<lexical_topic> - allow the use of lexical C<$_> via C<my $_>.
+
+This was added in perl 5.10.0 and removed in perl 5.23.4.
+
+=item * C<lexical_subs> - allow the use of lexical subroutines.
+
+This was added in 5.18.0.
+
+=item * C<postderef> - allow the use of postfix dereferencing expressions,
+including in interpolating strings
+
+This was added in perl 5.20.0.
+
+=item * C<re_strict> - enables strict mode in regular expressions
+
+This was added in perl 5.22.0.
+
+=item * C<refaliasing> - allow aliasing via C<\$x = \$y>
+
+This was added in perl 5.22.0.
+
+=item * C<regex_sets> - allow extended bracketed character classes in regexps
+
+This was added in perl 5.18.0.
+
+=item * C<signatures> - allow subroutine signatures (for named arguments)
+
+This was added in perl 5.20.0.
+
+=item * C<smartmatch> - allow the use of C<~~>
+
+This was added in perl 5.10.0, but it should be noted there are significant
+incompatibilities between 5.10.0 and 5.10.1.
+
+=item * C<switch> - allow the use of C<~~>, given, and when
+
+This was added in perl 5.10.0.
+
+=item * C<win32_perlio> - allows the use of the :win32 IO layer.
+
+This was added on perl 5.22.0.
+
+=back
=head2 Ordering matters
@@ -195,6 +248,10 @@ on again by the Moose module (fix is to switch the last two lines):
Because of the nature of the features it enables, forward compatibility can not
be guaranteed in any way.
+=head1 SEE ALSO
+
+L<perlexperimental|perlexperimental> contains more information about experimental features.
+
=head1 AUTHOR
Leon Timmermans <leont@cpan.org>
diff --git a/gnu/usr.bin/perl/cpan/experimental/t/basic.t b/gnu/usr.bin/perl/cpan/experimental/t/basic.t
index a270fdfd91c..adfc5667444 100644
--- a/gnu/usr.bin/perl/cpan/experimental/t/basic.t
+++ b/gnu/usr.bin/perl/cpan/experimental/t/basic.t
@@ -1,5 +1,8 @@
#! perl
+use strict;
+use warnings;
+
use Test::More 0.89;
local $SIG{__WARN__} = sub { fail("Got unexpected warning"); diag($_[0]) };
@@ -12,31 +15,47 @@ if ($] >= 5.010000) {
1;
END
}
-else {
- fail("No experimental features available on perl $]");
-}
if ($] >= 5.010001) {
- is (eval <<'END', 1, 'switch compiles') or diag $@;
- use experimental 'switch';
- sub bar { 1 };
- given(1) {
- when (\&bar) {
- pass("bar matches 1");
+ if (eval '
+ no warnings "experimental";
+ use feature "switch";
+ if(0) { when(3) {} }
+ 1;
+ ') {
+ is (eval <<'END', 1, 'switch compiles') or diag $@;
+ use experimental 'switch';
+ sub bar { 1 };
+ given(1) {
+ when (\&bar) {
+ pass("bar matches 1");
+ }
+ default {
+ fail("bar matches 1");
+ }
}
- default {
+ 1;
+END
+ } else {
+ is (eval <<'END', 1, 'switch compiles') or diag $@;
+ use experimental 'switch';
+ sub bar { 1 };
+ given(1) {
+ whereso (\&bar) {
+ pass("bar matches 1");
+ }
fail("bar matches 1");
}
- }
- 1;
+ 1;
END
+ }
}
if ($] >= 5.010001) {
is (eval <<'END', 1, 'smartmatch compiles') or diag $@;
use experimental 'smartmatch';
- sub bar { 1 };
- is(1 ~~ \&bar, 1, "is 1");
+ { package Baz; use overload "~~" => sub { 1 }; }
+ is(1 ~~ bless({}, "Baz"), 1, "is 1");
1;
END
}
@@ -53,6 +72,7 @@ END
if ($] >= 5.021005) {
is (eval <<'END', 1, 'ref aliasing compiles') or diag $@;
use experimental 'refaliasing';
+ my (@a, @b);
\@a = \@b;
is(\@a, \@b, '@a and @b are the same after \@a=\@b');
1;
diff --git a/gnu/usr.bin/perl/cpan/libnet/Makefile.PL b/gnu/usr.bin/perl/cpan/libnet/Makefile.PL
index 64d69594072..73be0a16544 100644
--- a/gnu/usr.bin/perl/cpan/libnet/Makefile.PL
+++ b/gnu/usr.bin/perl/cpan/libnet/Makefile.PL
@@ -66,7 +66,7 @@ MAIN: {
ABSTRACT => 'Collection of network protocol modules',
AUTHOR => 'Graham Barr <gbarr@pobox.com>, Steve Hay <shay@cpan.org>',
LICENSE => 'perl_5',
- VERSION => '3.08',
+ VERSION => '3.11',
META_MERGE => {
'meta-spec' => {
@@ -120,7 +120,7 @@ MAIN: {
prereqs => {
runtime => {
requires => {
- 'IO::Socket::IP' => '0.20'
+ 'IO::Socket::IP' => '0.25'
# or IO::Socket::INET6 2.62
}
}
diff --git a/gnu/usr.bin/perl/cpan/parent/lib/parent.pm b/gnu/usr.bin/perl/cpan/parent/lib/parent.pm
index f6e8cd497db..e1ccef4934a 100644
--- a/gnu/usr.bin/perl/cpan/parent/lib/parent.pm
+++ b/gnu/usr.bin/perl/cpan/parent/lib/parent.pm
@@ -1,7 +1,7 @@
package parent;
use strict;
use vars qw($VERSION);
-$VERSION = '0.234';
+$VERSION = '0.236';
sub import {
my $class = shift;
@@ -19,11 +19,11 @@ sub import {
{
no strict 'refs';
- push @{"$inheritor\::ISA"}, @_;
+ push @{"$inheritor\::ISA"}, @_; # dies if a loop is detected
};
};
-"All your base are belong to us"
+1;
__END__
diff --git a/gnu/usr.bin/perl/cpan/parent/t/parent-pmc.t b/gnu/usr.bin/perl/cpan/parent/t/parent-pmc.t
index 01f70f71cc1..68137ebea83 100755
--- a/gnu/usr.bin/perl/cpan/parent/t/parent-pmc.t
+++ b/gnu/usr.bin/perl/cpan/parent/t/parent-pmc.t
@@ -14,11 +14,25 @@ use lib 't/lib';
plan skip_all => ".pmc are only available with 5.6 and later" if $] < 5.006;
-my $no_pmc = defined &Config::non_bincompat_options
- ? (grep $_ eq 'PERL_DISABLE_PMC', Config::non_bincompat_options())
- : ($Config::Config{ccflags} =~ /-DPERL_DISABLE_PMC\b/);
-plan skip_all => ".pmc are disabled in this perl"
- if $no_pmc;
+# Skip this test if perl is compiled with PERL_DISABLE_PMC
+#
+my $pmc = 1;
+if (Config->can('non_bincompat_options')) { # $] ge '5.014'
+ $pmc = 0
+ if grep { $_ eq 'PERL_DISABLE_PMC' } Config::non_bincompat_options();
+} elsif (eval {
+ require Config::Perl::V;
+ Config::Perl::V->VERSION('0.10');
+}) {
+ $pmc = 0
+ if Config::Perl::V::myconfig()->{options}{PERL_DISABLE_PMC};
+} else {
+ $pmc = 0
+ if $Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DISABLE_PMC\b/;
+}
+
+plan skip_all => 'Perl is built with PERL_DISABLE_PMC' unless $pmc;
+
plan tests => 3;
use vars qw($got_here);
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm
index 0be9c18d34d..823817c35b4 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pm
@@ -1,5 +1,5 @@
use strict;
use warnings;
package perlfaq;
-$perlfaq::VERSION = '5.021010';
+$perlfaq::VERSION = '5.021011';
1;
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod
index 5be2f6d4089..1b8db788f42 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq.pod
@@ -4,7 +4,7 @@ perlfaq - frequently asked questions about Perl
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod
index c2c793efa7d..b6d4c8e61b4 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq1.pod
@@ -4,7 +4,7 @@ perlfaq1 - General Questions About Perl
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
@@ -109,12 +109,6 @@ as its whitewashed bones have fractured or eroded.
=item *
-The current leading implementation of Perl 6, Rakudo, released a "useful,
-usable, 'early adopter'" distribution of Perl 6 (called Rakudo Star) in July of
-2010. Please see L<http://rakudo.org/> for more information.
-
-=item *
-
There are really two tracks of perl development: a maintenance version
and an experimental version. The maintenance versions are stable, and
have an even number as the minor release (i.e. perl5.18.x, where 18 is the
@@ -148,21 +142,21 @@ See L<perlhist> for a history of Perl revisions.
=head2 What is Perl 6?
-Perl 6 was I<originally> described as the community's rewrite of Perl 5.
-Development started in 2002; syntax and design work continue to this day.
-As the language has evolved, it has become clear that it is a separate
-language, incompatible with Perl 5 but in the same language family.
+Perl 6 was I<originally> described as the community's rewrite of Perl 5,
+however as the language evolved, it became clear that it is a separate
+language, but in the same language family as Perl 5.
+
+Perl 6 is not intended primarily as a replacement for Perl 5, but as its
+own thing - and libraries exist to allow you to call Perl 5 code from Perl
+6 programs and vice versa.
Contrary to popular belief, Perl 6 and Perl 5 peacefully coexist with one
another. Perl 6 has proven to be a fascinating source of ideas for those
using Perl 5 (the L<Moose> object system is a well-known example). There is
overlap in the communities, and this overlap fosters the tradition of sharing
-and borrowing that have been instrumental to Perl's success. The current
-leading implementation of Perl 6 is Rakudo, and you can learn more about
-it at L<http://rakudo.org>.
+and borrowing that have been instrumental to Perl's success.
-If you want to learn more about Perl 6, or have a desire to help in
-the crusade to make Perl a better place then read the Perl 6 developers
+If you want to learn more about Perl 6 read the Perl 6 developers
page at L<http://www.perl6.org/> and get involved.
"We're really serious about reinventing everything that needs reinventing."
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod
index 4c652dbfa0c..a235c8b5e7f 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq2.pod
@@ -4,7 +4,7 @@ perlfaq2 - Obtaining and Learning about Perl
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod
index 78a2bab024f..dcab664d454 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq3.pod
@@ -4,7 +4,7 @@ perlfaq3 - Programming Tools
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
@@ -370,6 +370,12 @@ Perl Editor by EngInSite is a complete integrated development
environment (IDE) for creating, testing, and debugging Perl scripts;
the tool runs on Windows 9x/NT/2000/XP or later.
+=item IntelliJ IDEA
+
+L<https://plugins.jetbrains.com/plugin/7796>
+
+Camelcade plugin provides Perl5 support in IntelliJ IDEA and other JetBrains IDEs.
+
=item Kephra
L<http://kephra.sf.net>
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod
index f6bf2caaf9c..304729ceb82 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq4.pod
@@ -4,7 +4,7 @@ perlfaq4 - Data Manipulation
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
@@ -2556,24 +2556,23 @@ some gotchas. See the section on Regular Expressions.
=head2 How do I determine whether a scalar is a number/whole/integer/float?
Assuming that you don't care about IEEE notations like "NaN" or
-"Infinity", you probably just want to use a regular expression:
+"Infinity", you probably just want to use a regular expression (see also
+L<perlretut> and L<perlre>):
use 5.010;
- given( $number ) {
- when( /\D/ )
- { say "\thas nondigits"; continue }
- when( /^\d+\z/ )
- { say "\tis a whole number"; continue }
- when( /^-?\d+\z/ )
- { say "\tis an integer"; continue }
- when( /^[+-]?\d+\z/ )
- { say "\tis a +/- integer"; continue }
- when( /^-?(?:\d+\.?|\.\d)\d*\z/ )
- { say "\tis a real number"; continue }
- when( /^[+-]?(?=\.?\d)\d*\.?\d*(?:e[+-]?\d+)?\z/i)
- { say "\tis a C float" }
- }
+ if ( /\D/ )
+ { say "\thas nondigits"; }
+ if ( /^\d+\z/ )
+ { say "\tis a whole number"; }
+ if ( /^-?\d+\z/ )
+ { say "\tis an integer"; }
+ if ( /^[+-]?\d+\z/ )
+ { say "\tis a +/- integer"; }
+ if ( /^-?(?:\d+\.?|\.\d)\d*\z/ )
+ { say "\tis a real number"; }
+ if ( /^[+-]?(?=\.?\d)\d*\.?\d*(?:e[+-]?\d+)?\z/i )
+ { say "\tis a C float" }
There are also some commonly used modules for the task.
L<Scalar::Util> (distributed with 5.8) provides access to perl's
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod
index cbb73c74f55..239f92a530e 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq5.pod
@@ -4,7 +4,7 @@ perlfaq5 - Files and Formats
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
@@ -1278,7 +1278,7 @@ comes with Perl tries to convert C include files to Perl code, which
can be C<require>d. FIONREAD ends up defined as a function in the
I<sys/ioctl.ph> file:
- require 'sys/ioctl.ph';
+ require './sys/ioctl.ph';
$size = pack("L", 0);
ioctl(FH, FIONREAD(), $size) or die "Couldn't call ioctl: $!\n";
@@ -1378,7 +1378,7 @@ used for things that Perl opened itself, even if it was a dup of a
numeric descriptor as with C<MHCONTEXT> above. But if you really have
to, you may be able to do this:
- require 'sys/syscall.ph';
+ require './sys/syscall.ph';
my $rc = syscall(SYS_close(), $fd + 0); # must force numeric
die "can't sysclose $fd: $!" unless $rc == -1;
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod
index c889ca4e821..0db550e34ac 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq6.pod
@@ -4,7 +4,7 @@ perlfaq6 - Regular Expressions
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod
index fb677365ced..4d568a3a8bf 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq7.pod
@@ -4,7 +4,7 @@ perlfaq7 - General Perl Language Issues
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod
index 3bbd45998f0..42b27ab1276 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq8.pod
@@ -4,7 +4,7 @@ perlfaq8 - System Interaction
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
@@ -239,7 +239,7 @@ and in pixels:
This is more portable than the raw C<ioctl>, but not as
illustrative:
- require 'sys/ioctl.ph';
+ require './sys/ioctl.ph';
die "no TIOCGWINSZ " unless defined &TIOCGWINSZ;
open(my $tty_fh, "+</dev/tty") or die "No tty: $!";
unless (ioctl($tty_fh, &TIOCGWINSZ, $winsize='')) {
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod
index bc687467c3f..7fca820a245 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlfaq9.pod
@@ -4,7 +4,7 @@ perlfaq9 - Web, Email and Networking
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod
index 76a54f0e540..3392d9dcddc 100644
--- a/gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod
+++ b/gnu/usr.bin/perl/cpan/perlfaq/lib/perlglossary.pod
@@ -7,7 +7,7 @@ perlglossary - Perl Glossary
=head1 VERSION
-version 5.021010
+version 5.021011
=head1 DESCRIPTION
diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
index f014b3183e9..a737e5b3e94 100644
--- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
+++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
@@ -14,7 +14,7 @@
# Written by Russ Allbery <rra@cpan.org>
# Substantial contributions by Sean Burke <sburke@cpan.org>
# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-# 2010, 2012, 2013, 2014, 2015, 2016 Russ Allbery <rra@cpan.org>
+# 2010, 2012, 2013, 2014, 2015, 2016, 2017 Russ Allbery <rra@cpan.org>
#
# This program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -43,7 +43,7 @@ BEGIN {
@ISA = qw(Pod::Simple);
-$VERSION = '4.07';
+$VERSION = '4.10';
# Set the debugging level. If someone has inserted a debug function into this
# class already, use that. Otherwise, use any Pod::Simple debug function
@@ -216,12 +216,13 @@ sub init_fonts {
}
# Initialize the quotes that we'll be using for C<> text. This requires some
-# special handling, both to parse the user parameter if given and to make sure
-# that the quotes will be safe against *roff. Sets the internal hash keys
-# LQUOTE and RQUOTE.
+# special handling, both to parse the user parameters if given and to make
+# sure that the quotes will be safe against *roff. Sets the internal hash
+# keys LQUOTE and RQUOTE.
sub init_quotes {
my ($self) = (@_);
+ # Handle the quotes option first, which sets both quotes at once.
$$self{quotes} ||= '"';
if ($$self{quotes} eq 'none') {
$$self{LQUOTE} = $$self{RQUOTE} = '';
@@ -235,6 +236,14 @@ sub init_quotes {
croak(qq(Invalid quote specification "$$self{quotes}"))
}
+ # Now handle the lquote and rquote options.
+ if (defined $$self{lquote}) {
+ $$self{LQUOTE} = $$self{lquote} eq 'none' ? q{} : $$self{lquote};
+ }
+ if (defined $$self{rquote}) {
+ $$self{RQUOTE} = $$self{rquote} eq 'none' ? q{} : $$self{rquote};
+ }
+
# Double the first quote; note that this should not be s///g as two double
# quotes is represented in *roff as three double quotes, not four. Weird,
# I know.
@@ -514,9 +523,9 @@ sub guesswork {
# entire warranty disclaimers in man page output into small caps.
if ($$self{MAGIC_SMALLCAPS}) {
s{
- ( ^ | [\s\(\"\'\`\[\{<>] | \\[ ] ) # (1)
- ( [A-Z] [A-Z] (?: [/A-Z+:\d_\$&] | \\- | [.,\"\s] )* ) # (2)
- (?= [\s>\}\]\(\)\'\".?!,;] | \\*\(-- | \\[ ] | $ ) # (3)
+ ( ^ | [\s\(\"\'\`\[\{<>] | \\[ ] ) # (1)
+ ( [A-Z] [A-Z] (?: \s? [/A-Z+:\d_\$&] | \\- | \s? [.,\"] )* ) # (2)
+ (?= [\s>\}\]\(\)\'\".?!,;] | \\*\(-- | \\[ ] | $ ) # (3)
} {
$1 . '\s-1' . $2 . '\s0'
}egx;
@@ -526,8 +535,8 @@ sub guesswork {
# strings inserted around things that we've made small-caps if later
# transforms should work on those strings.
- # Italicize functions in the form func(), including functions that are in
- # all capitals, but don't italize if there's anything between the parens.
+ # Embolden functions in the form func(), including functions that are in
+ # all capitals, but don't embolden if there's anything between the parens.
# The function must start with an alphabetic character or underscore and
# then consist of word characters or colons.
if ($$self{MAGIC_FUNC}) {
@@ -535,11 +544,11 @@ sub guesswork {
( \b | \\s-1 )
( [A-Za-z_] ([:\w] | \\s-?[01])+ \(\) )
} {
- $1 . '\f(IS' . $2 . '\f(IE'
+ $1 . '\f(BS' . $2 . '\f(BE'
}egx;
}
- # Change references to manual pages to put the page name in italics but
+ # Change references to manual pages to put the page name in bold but
# the number in the regular font, with a thin space between the name and
# the number. Only recognize func(n) where func starts with an alphabetic
# character or underscore and contains only word characters, periods (for
@@ -549,10 +558,11 @@ sub guesswork {
if ($$self{MAGIC_MANREF}) {
s{
( \b | \\s-1 )
+ (?<! \\ ) # rule out \s0(1)
( [A-Za-z_] (?:[.:\w] | \\- | \\s-?[01])+ )
( \( \d [a-z]* \) )
} {
- $1 . '\f(IS' . $2 . '\f(IE\|' . $3
+ $1 . '\f(BS' . $2 . '\f(BE\|' . $3
}egx;
}
@@ -790,13 +800,16 @@ sub start_document {
# has a PerlIO encoding layer set. If it does not, we'll need to encode
# our output before printing it (handled in the output() sub). Wrap the
# check in an eval to handle versions of Perl without PerlIO.
+ #
+ # PerlIO::get_layers still requires its argument be a glob, so coerce the
+ # file handle to a glob.
$$self{ENCODE} = 0;
if ($$self{utf8}) {
$$self{ENCODE} = 1;
eval {
my @options = (output => 1, details => 1);
- my $flag = (PerlIO::get_layers ($$self{output_fh}, @options))[-1];
- if ($flag & PerlIO::F_UTF8 ()) {
+ my @layers = PerlIO::get_layers (*{$$self{output_fh}}, @options);
+ if ($layers[-1] & PerlIO::F_UTF8 ()) {
$$self{ENCODE} = 0;
}
}
@@ -854,12 +867,16 @@ sub devise_title {
# If Pod::Parser gave us an IO::File reference as the source file name,
# convert that to the empty string as well. Then, if we don't have a
- # valid name, emit a warning and convert it to STDIN.
+ # valid name, convert it to STDIN.
+ #
+ # In podlators 4.00 through 4.07, this also produced a warning, but that
+ # was surprising to a lot of programs that had expected to be able to pipe
+ # POD through pod2man without specifying the name. In the name of
+ # backward compatibility, just quietly set STDIN as the page title.
if ($name =~ /^IO::File(?:=\w+)\(0x[\da-f]+\)$/i) {
$name = '';
}
if ($name eq '') {
- $self->whine (1, 'No name given for document');
$name = 'STDIN';
}
@@ -896,8 +913,6 @@ sub devise_title {
$cut = $i + 1;
$cut++ if ($dirs[$i + 1] && $dirs[$i + 1] eq 'lib');
last;
- } elsif ($dirs[$i] eq 'lib' && $dirs[$i + 1] && $dirs[0] eq 'ext') {
- $cut = $i + 1;
}
}
if ($cut > 0) {
@@ -922,7 +937,7 @@ sub devise_title {
#
# If POD_MAN_DATE is set, that overrides anything else. This can be used for
# reproducible generation of the same file even if the input file timestamps
-# are unpredictable or the POD coms from standard input.
+# are unpredictable or the POD comes from standard input.
#
# Otherwise, if SOURCE_DATE_EPOCH is set and can be parsed as seconds since
# the UNIX epoch, base the timestamp on that. See
@@ -1380,7 +1395,7 @@ sub parse_from_file {
my $self = shift;
$self->reinit;
- # Fake the old cutting option to Pod::Parser. This fiddings with internal
+ # Fake the old cutting option to Pod::Parser. This fiddles with internal
# Pod::Simple state and is quite ugly; we need a better approach.
if (ref ($_[0]) eq 'HASH') {
my $opts = shift @_;
@@ -1541,16 +1556,20 @@ sub preamble_template {
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
-.if !\nF .nr F 0
-.if \nF>0 \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
..
-. if !\nF==2 \{\
-. nr % 0
-. nr F 2
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
. \}
.\}
+.rr rF
----END OF PREAMBLE----
#'# for cperl-mode
@@ -1634,7 +1653,7 @@ __END__
=for stopwords
en em ALLCAPS teeny fixedbold fixeditalic fixedbolditalic stderr utf8
UTF-8 Allbery Sean Burke Ossanna Solaris formatters troff uppercased
-Christiansen nourls parsers Kernighan
+Christiansen nourls parsers Kernighan lquote rquote
=head1 NAME
@@ -1745,6 +1764,20 @@ Pod::Man doesn't assume you have this, and defaults to C<CB>. Some
systems (such as Solaris) have this font available as C<CX>. Only matters
for B<troff> output.
+=item lquote
+
+=item rquote
+
+Sets the quote marks used to surround CE<lt>> text. C<lquote> sets the
+left quote mark and C<rquote> sets the right quote mark. Either may also
+be set to the special value C<none>, in which case no quote mark is added
+on that side of CE<lt>> text (but the font is still changed for troff
+output).
+
+Also see the C<quotes> option, which can be used to set both quotes at once.
+If both C<quotes> and one of the other options is set, C<lquote> or C<rquote>
+overrides C<quotes>.
+
=item name
Set the name of the manual page for the C<.TH> macro. Without this
@@ -1754,9 +1787,9 @@ parsed to see if it is a Perl module path. If it is, a path like
C<.../lib/Pod/Man.pm> is converted into a name like C<Pod::Man>. This
option, if given, overrides any automatic determination of the name.
-If generating a manual page from standard input, this option is required,
-since there's otherwise no way for Pod::Man to know what to use for the
-manual page name.
+If generating a manual page from standard input, the name will be set to
+C<STDIN> if this option is not provided. Providing this option is strongly
+recommended to set a meaningful manual page name.
=item nourls
@@ -1785,6 +1818,10 @@ This may also be set to the special value C<none>, in which case no quote
marks are added around CE<lt>> text (but the font is still changed for troff
output).
+Also see the C<lquote> and C<rquote> options, which can be used to set the
+left and right quotes independently. If both C<quotes> and one of the other
+options is set, C<lquote> or C<rquote> overrides C<quotes>.
+
=item release
Set the centered footer for the C<.TH> macro. By default, this is set to
@@ -1986,7 +2023,7 @@ mine).
=head1 COPYRIGHT AND LICENSE
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2009, 2010, 2012, 2013, 2014, 2015, 2016 Russ Allbery <rra@cpan.org>
+2009, 2010, 2012, 2013, 2014, 2015, 2016, 2017 Russ Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
@@ -1999,8 +2036,7 @@ L<man(1)>, L<man(7)>
Ossanna, Joseph F., and Brian W. Kernighan. "Troff User's Manual,"
Computing Science Technical Report No. 54, AT&T Bell Laboratories. This is
the best documentation of standard B<nroff> and B<troff>. At the time of
-this writing, it's available at
-L<http://www.cs.bell-labs.com/cm/cs/cstr.html>.
+this writing, it's available at L<http://www.troff.org/54.pdf>.
The man page documenting the man macro set may be L<man(5)> instead of
L<man(7)> on your system. Also, please see L<pod2man(1)> for extensive
diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm
index a9e6b34d3ab..9a1627079b4 100644
--- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm
+++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm
@@ -31,7 +31,7 @@ use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(parselink);
-$VERSION = '4.07';
+$VERSION = '4.10';
##############################################################################
# Implementation
diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm
index e141da2fd6d..f73b4af2b92 100644
--- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm
+++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm
@@ -1,4 +1,4 @@
-# Pod::Text -- Convert POD data to formatted text.
+# Convert POD data to formatted text.
#
# This module converts POD to formatted text. It replaces the old Pod::Text
# module that came with versions of Perl prior to 5.6.0 and attempts to match
@@ -12,7 +12,7 @@
# standard Perl mailing lists.
#
# Copyright 1999, 2000, 2001, 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2014,
-# 2015 Russ Allbery <rra@cpan.org>
+# 2015, 2016 Russ Allbery <rra@cpan.org>
#
# This program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -39,7 +39,26 @@ use Pod::Simple ();
# We have to export pod2text for backward compatibility.
@EXPORT = qw(pod2text);
-$VERSION = '4.07';
+$VERSION = '4.10';
+
+# Ensure that $Pod::Simple::nbsp and $Pod::Simple::shy are available. Code
+# taken from Pod::Simple 3.32, but was only added in 3.30.
+my ($NBSP, $SHY);
+if ($Pod::Simple::VERSION ge 3.30) {
+ $NBSP = $Pod::Simple::nbsp;
+ $SHY = $Pod::Simple::shy;
+} else {
+ if ($] ge 5.007_003) {
+ $NBSP = chr utf8::unicode_to_native(0xA0);
+ $SHY = chr utf8::unicode_to_native(0xAD);
+ } elsif (Pod::Simple::ASCII) {
+ $NBSP = "\xA0";
+ $SHY = "\xAD";
+ } else {
+ $NBSP = "\x41";
+ $SHY = "\xCA";
+ }
+}
##############################################################################
# Initialization
@@ -273,7 +292,12 @@ sub reformat {
sub output {
my ($self, @text) = @_;
my $text = join ('', @text);
- $text =~ tr/\240\255/ /d;
+ if ($NBSP) {
+ $text =~ s/$NBSP/ /g;
+ }
+ if ($SHY) {
+ $text =~ s/$SHY//g;
+ }
unless ($$self{opt_utf8}) {
my $encoding = $$self{encoding} || '';
if ($encoding && $encoding ne $$self{ENCODING}) {
@@ -683,7 +707,7 @@ sub parse_from_file {
my $self = shift;
$self->reinit;
- # Fake the old cutting option to Pod::Parser. This fiddings with internal
+ # Fake the old cutting option to Pod::Parser. This fiddles with internal
# Pod::Simple state and is quite ugly; we need a better approach.
if (ref ($_[0]) eq 'HASH') {
my $opts = shift @_;
@@ -999,7 +1023,7 @@ how to use Pod::Simple.
=head1 COPYRIGHT AND LICENSE
Copyright 1999, 2000, 2001, 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2014,
-2015 Russ Allbery <rra@cpan.org>
+2015, 2016 Russ Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm
index b67742e32c3..fa1aadb4633 100644
--- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm
+++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm
@@ -27,7 +27,7 @@ use vars qw(@ISA $VERSION);
@ISA = qw(Pod::Text);
-$VERSION = '4.07';
+$VERSION = '4.10';
##############################################################################
# Overrides
diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm
index 1592026e9f7..d0ce7680aa1 100644
--- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm
+++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm
@@ -35,13 +35,13 @@ use Pod::Text ();
@ISA = qw(Pod::Text);
-$VERSION = '4.07';
+$VERSION = '4.10';
##############################################################################
# Overrides
##############################################################################
-# Make level one headings bold, overridding any existing formatting.
+# Make level one headings bold, overriding any existing formatting.
sub cmd_head1 {
my ($self, $attrs, $text) = @_;
$text =~ s/\s+$//;
diff --git a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm
index d533e76ddde..f015cfce597 100644
--- a/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm
+++ b/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm
@@ -28,7 +28,7 @@ use vars qw(@ISA $VERSION);
@ISA = qw(Pod::Text);
-$VERSION = '4.07';
+$VERSION = '4.10';
##############################################################################
# Overrides
diff --git a/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL b/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL
index 618626b74e4..3f19b791d52 100644
--- a/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL
+++ b/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL
@@ -47,7 +47,7 @@ print {$out} <<'SCRIPT_BODY' or die "Cannot write to $file: $!\n";
# pod2man -- Convert POD data to formatted *roff input.
#
# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015,
-# 2016 Russ Allbery <rra@cpan.org>
+# 2016, 2017 Russ Allbery <rra@cpan.org>
#
# This program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -73,12 +73,12 @@ my $stdin;
# Parse our options, trying to retain backward compatibility with pod2man but
# allowing short forms as well. --lax is currently ignored.
my %options;
-$options{utf8} = 1;
Getopt::Long::config ('bundling_override');
GetOptions (\%options, 'center|c=s', 'date|d=s', 'errors=s', 'fixed=s',
'fixedbold=s', 'fixeditalic=s', 'fixedbolditalic=s', 'help|h',
- 'lax|l', 'name|n=s', 'nourls', 'official|o', 'quotes|q=s',
- 'release|r=s', 'section|s=s', 'stderr', 'verbose|v', 'utf8|u!')
+ 'lax|l', 'lquote=s', 'name|n=s', 'nourls', 'official|o',
+ 'quotes|q=s', 'release|r=s', 'rquote=s', 'section|s=s', 'stderr',
+ 'verbose|v', 'utf8|u')
or exit 1;
pod2usage (0) if $options{help};
@@ -113,7 +113,11 @@ do {
$parser->parse_from_file (@files);
if ($parser->{CONTENTLESS}) {
$status = 1;
- warn "$0: unable to format $files[0]\n";
+ if (defined $files[0]) {
+ warn "$0: unable to format $files[0]\n";
+ } else {
+ warn "$0: unable to format standard input\n";
+ }
if (defined ($files[1]) and $files[1] ne '-') {
unlink $files[1] unless (-s $files[1]);
}
@@ -124,9 +128,9 @@ exit $status;
__END__
=for stopwords
-en em --stderr stderr --no-utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris
+en em --stderr stderr --utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris
URL troff troff-specific formatters uppercased Christiansen --nourls UTC
-prepend
+prepend lquote rquote
=head1 NAME
@@ -137,9 +141,9 @@ pod2man - Convert POD data to formatted *roff input
pod2man [B<--center>=I<string>] [B<--date>=I<string>] [B<--errors>=I<style>]
[B<--fixed>=I<font>] [B<--fixedbold>=I<font>] [B<--fixeditalic>=I<font>]
[B<--fixedbolditalic>=I<font>] [B<--name>=I<name>] [B<--nourls>]
- [B<--official>] [B<--quotes>=I<quotes>] [B<--release>=I<version>]
- [B<--section>=I<manext>] [B<--stderr>] [B<--no-utf8>] [B<--verbose>]
- [I<input> [I<output>] ...]
+ [B<--official>] [B<--release>=I<version>] [B<--section>=I<manext>]
+ [B<--quotes>=I<quotes>] [B<--lquote>=I<quote>] [B<--rquote>=I<quote>]
+ [B<--stderr>] [B<--utf8>] [B<--verbose>] [I<input> [I<output>] ...]
pod2man B<--help>
@@ -237,6 +241,20 @@ No longer used. B<pod2man> used to check its input for validity as a
manual page, but this should now be done by L<podchecker(1)> instead.
Accepted for backward compatibility; this option no longer does anything.
+=item B<--lquote>=I<quote>
+
+=item B<--rquote>=I<quote>
+
+Sets the quote marks used to surround CE<lt>> text. B<--lquote> sets the
+left quote mark and B<--rquote> sets the right quote mark. Either may also
+be set to the special value C<none>, in which case no quote mark is added
+on that side of CE<lt>> text (but the font is still changed for troff
+output).
+
+Also see the B<--quotes> option, which can be used to set both quotes at once.
+If both B<--quotes> and one of the other options is set, B<--lquote> or
+B<--rquote> overrides B<--quotes>.
+
=item B<-n> I<name>, B<--name>=I<name>
Set the name of the manual page for the C<.TH> macro to I<name>. Without
@@ -253,9 +271,9 @@ in all-uppercase, even if the command isn't.
This option is probably not useful when converting multiple POD files at
once.
-When converting POD source from standard input, this option is required,
-since there's otherwise no way to know what to use as the name of the
-manual page.
+When converting POD source from standard input, the name will be set to
+C<STDIN> if this option is not provided. Providing this option is strongly
+recommended to set a meaningful manual page name.
=item B<--nourls>
@@ -288,6 +306,10 @@ I<quotes> may also be set to the special value C<none>, in which case no
quote marks are added around CE<lt>> text (but the font is still changed for
troff output).
+Also see the B<--lquote> and B<--rquote> options, which can be used to set the
+left and right quotes independently. If both B<--quotes> and one of the other
+options is set, B<--lquote> or B<--rquote> overrides B<--quotes>.
+
=item B<-r> I<version>, B<--release>=I<version>
Set the centered footer for the C<.TH> macro to I<version>. By default,
@@ -324,10 +346,19 @@ to C<--errors=stderr> and is supported for backward compatibility.
=item B<-u>, B<--utf8>
-This option allows B<pod2man> to output literal UTF-8 characters.
-On OpenBSD, it is enabled by default and can be disabled with
-B<--no-utf8>, in which case non-ASCII characters are converted
-either to *roff escape sequences or to C<X>.
+By default, B<pod2man> produces the most conservative possible *roff
+output to try to ensure that it will work with as many different *roff
+implementations as possible. Many *roff implementations cannot handle
+non-ASCII characters, so this means all non-ASCII characters are converted
+either to a *roff escape sequence that tries to create a properly accented
+character (at least for troff output) or to C<X>.
+
+This option says to instead output literal UTF-8 characters. If your
+*roff implementation can handle it, this is the best output format to use
+and avoids corruption of documents containing non-ASCII characters.
+However, be warned that *roff source with literal UTF-8 characters is not
+supported by many implementations and may even result in segfaults and
+other bad behavior.
Be aware that, when using this option, the input encoding of your POD
source should be properly declared unless it's US-ASCII. Pod::Simple will
@@ -401,7 +432,7 @@ B<pod2man> by Larry Wall and Tom Christiansen.
=head1 COPYRIGHT AND LICENSE
Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014,
-2015, 2016 Russ Allbery <rra@cpan.org>
+2015, 2016, 2017 Russ Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL b/gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL
index f6c80715b96..d1a146e8f0a 100644
--- a/gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL
+++ b/gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL
@@ -47,7 +47,7 @@ print {$out} <<'SCRIPT_BODY' or die "Cannot write to $file: $!\n";
# pod2text -- Convert POD data to formatted ASCII text.
#
# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015,
-# 2016 Russ Allbery <rra@cpan.org>
+# 2016, 2017 Russ Allbery <rra@cpan.org>
#
# This program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -123,7 +123,11 @@ do {
$parser->parse_from_file ($input, $output);
if ($parser->{CONTENTLESS}) {
$status = 1;
- warn "$0: unable to format $input\n";
+ if (defined $input) {
+ warn "$0: unable to format $input\n";
+ } else {
+ warn "$0: unable to format standard input\n";
+ }
if (defined ($output) and $output ne '-') {
unlink $output unless (-s $output);
}
@@ -358,7 +362,7 @@ Russ Allbery <rra@cpan.org>.
=head1 COPYRIGHT AND LICENSE
Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015,
-2016 Russ Allbery <rra@cpan.org>
+2016, 2017 Russ Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
diff --git a/gnu/usr.bin/perl/cpan/podlators/t/man/basic.t b/gnu/usr.bin/perl/cpan/podlators/t/man/basic.t
deleted file mode 100644
index 5ad84b549f4..00000000000
--- a/gnu/usr.bin/perl/cpan/podlators/t/man/basic.t
+++ /dev/null
@@ -1,594 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Additional specialized tests for Pod::Man.
-#
-# Copyright 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2012, 2013, 2014,
-# 2016 Russ Allbery <rra@cpan.org>
-#
-# This program is free software; you may redistribute it and/or modify it
-# under the same terms as Perl itself.
-
-BEGIN {
- chdir 't' if -d 't';
- if ($ENV{PERL_CORE}) {
- @INC = '../lib';
- }
- unshift (@INC, '../blib/lib');
- $| = 1;
-}
-
-use strict;
-
-use Test::More tests => 35;
-BEGIN { use_ok ('Pod::Man') }
-
-# Test whether we can use binmode to set encoding.
-my $have_encoding = (eval { require PerlIO::encoding; 1 } and not $@);
-
-my $parser = Pod::Man->new;
-isa_ok ($parser, 'Pod::Man', 'Parser object');
-my $n = 1;
-while (<DATA>) {
- next until $_ eq "###\n";
- open (TMP, "> tmp$$.pod") or die "Cannot create tmp$$.pod: $!\n";
-
- # We have a test in ISO 8859-1 encoding. Make sure that nothing strange
- # happens if Perl thinks the world is Unicode. Hide this in a string eval
- # so that older versions of Perl don't croak and minimum-version tests
- # still pass.
- eval 'binmode (\*TMP, ":encoding(iso-8859-1)")' if $have_encoding;
-
- while (<DATA>) {
- last if $_ eq "###\n";
- print TMP $_;
- }
- close TMP;
- open (OUT, "> out$$.tmp") or die "Cannot create out$$.tmp: $!\n";
- $parser->parse_from_file ("tmp$$.pod", \*OUT);
- close OUT;
- open (OUT, "out$$.tmp") or die "Cannot open out$$.tmp: $!\n";
- while (<OUT>) { last if /^\.nh/ }
- my $output;
- {
- local $/;
- $output = <OUT>;
- }
- close OUT;
- 1 while unlink ("tmp$$.pod", "out$$.tmp");
- my $expected = '';
- while (<DATA>) {
- last if $_ eq "###\n";
- $expected .= $_;
- }
- is ($output, $expected, "Output correct for test $n");
- $n++;
-}
-
-# Below the marker are bits of POD and corresponding expected nroff output.
-# This is used to test specific features or problems with Pod::Man. The input
-# and output are separated by lines containing only ###.
-
-__DATA__
-
-###
-=head1 NAME
-
-gcc - GNU project C<C> and C++ compiler
-
-=head1 C++ NOTES
-
-Other mentions of C++.
-###
-.SH "NAME"
-gcc \- GNU project "C" and C++ compiler
-.SH "\*(C+ NOTES"
-.IX Header " NOTES"
-Other mentions of \*(C+.
-###
-
-###
-=head1 PERIODS
-
-This C<.> should be quoted.
-###
-.SH "PERIODS"
-.IX Header "PERIODS"
-This \f(CW\*(C`.\*(C'\fR should be quoted.
-###
-
-###
-=over 4
-
-=item *
-
-A bullet.
-
-=item *
-
-Another bullet.
-
-=item * Also a bullet.
-
-=back
-###
-.IP "\(bu" 4
-A bullet.
-.IP "\(bu" 4
-Another bullet.
-.IP "\(bu" 4
-Also a bullet.
-###
-
-###
-=encoding iso-8859-1
-
-=head1 ACCENTS
-
-Beyoncé! Beyoncé! Beyoncé!!
-
- Beyoncé! Beyoncé!
- Beyoncé! Beyoncé!
- Beyoncé! Beyoncé!
-
-Older versions didn't convert Beyoncé in verbatim.
-###
-.SH "ACCENTS"
-.IX Header "ACCENTS"
-Beyonce\*'! Beyonce\*'! Beyonce\*'!!
-.PP
-.Vb 3
-\& Beyonce\*'! Beyonce\*'!
-\& Beyonce\*'! Beyonce\*'!
-\& Beyonce\*'! Beyonce\*'!
-.Ve
-.PP
-Older versions didn't convert Beyonce\*' in verbatim.
-###
-
-###
-=over 4
-
-=item 1. Not a number
-
-=item 2. Spaced right
-
-=back
-
-=over 2
-
-=item 1 Not a number
-
-=item 2 Spaced right
-
-=back
-###
-.IP "1. Not a number" 4
-.IX Item "1. Not a number"
-.PD 0
-.IP "2. Spaced right" 4
-.IX Item "2. Spaced right"
-.IP "1 Not a number" 2
-.IX Item "1 Not a number"
-.IP "2 Spaced right" 2
-.IX Item "2 Spaced right"
-###
-
-###
-=over 4
-
-=item Z<>*
-
-Not bullet.
-
-=back
-###
-.IP "*" 4
-Not bullet.
-###
-
-###
-=head1 SEQS
-
-"=over ... Z<>=back"
-
-"SE<lt>...E<gt>"
-
-The quotes should be converted in the above to paired quotes.
-###
-.SH "SEQS"
-.IX Header "SEQS"
-\&\*(L"=over ... =back\*(R"
-.PP
-\&\*(L"S<...>\*(R"
-.PP
-The quotes should be converted in the above to paired quotes.
-###
-
-###
-=head1 YEN
-
-It cost me E<165>12345! That should be an X.
-###
-.SH "YEN"
-.IX Header "YEN"
-It cost me X12345! That should be an X.
-###
-
-###
-=head1 agrave
-
-Open E<agrave> la shell. Previous versions mapped it wrong.
-###
-.SH "agrave"
-.IX Header "agrave"
-Open a\*` la shell. Previous versions mapped it wrong.
-###
-
-###
-=over
-
-=item First level
-
-Blah blah blah....
-
-=over
-
-=item *
-
-Should be a bullet.
-
-=back
-
-=back
-###
-.IP "First level" 4
-.IX Item "First level"
-Blah blah blah....
-.RS 4
-.IP "\(bu" 4
-Should be a bullet.
-.RE
-.RS 4
-.RE
-###
-
-###
-=over 4
-
-=item 1. Check fonts in @CARP_NOT test.
-
-=back
-###
-.ie n .IP "1. Check fonts in @CARP_NOT test." 4
-.el .IP "1. Check fonts in \f(CW@CARP_NOT\fR test." 4
-.IX Item "1. Check fonts in @CARP_NOT test."
-###
-
-###
-=head1 LINK QUOTING
-
-There should not be double quotes: L<C<< (?>pattern) >>>.
-###
-.SH "LINK QUOTING"
-.IX Header "LINK QUOTING"
-There should not be double quotes: \f(CW\*(C`(?>pattern)\*(C'\fR.
-###
-
-###
-=head1 SE<lt>E<gt> MAGIC
-
-Magic should be applied S<RISC OS> to that.
-###
-.SH "S<> MAGIC"
-.IX Header "S<> MAGIC"
-Magic should be applied \s-1RISC\s0\ \s-1OS\s0 to that.
-###
-
-###
-=head1 MAGIC MONEY
-
-These should be identical.
-
-Bippity boppity boo "The
-price is $Z<>100."
-
-Bippity boppity boo "The
-price is $100."
-###
-.SH "MAGIC MONEY"
-.IX Header "MAGIC MONEY"
-These should be identical.
-.PP
-Bippity boppity boo \*(L"The
-price is \f(CW$100\fR.\*(R"
-.PP
-Bippity boppity boo \*(L"The
-price is \f(CW$100\fR.\*(R"
-###
-
-###
-=head1 NAME
-
-"Stuff" (no guesswork)
-
-=head2 THINGS
-
-Oboy, is this C++ "fun" yet! (guesswork)
-###
-.SH "NAME"
-"Stuff" (no guesswork)
-.SS "\s-1THINGS\s0"
-.IX Subsection "THINGS"
-Oboy, is this \*(C+ \*(L"fun\*(R" yet! (guesswork)
-###
-
-###
-=head1 Newline C Quote Weirdness
-
-Blorp C<'
-''>. Yes.
-###
-.SH "Newline C Quote Weirdness"
-.IX Header "Newline C Quote Weirdness"
-Blorp \f(CW\*(Aq
-\&\*(Aq\*(Aq\fR. Yes.
-###
-
-###
-=head1 Soft Hypen Testing
-
-sigE<shy>action
-manuE<shy>script
-JarkE<shy>ko HieE<shy>taE<shy>nieE<shy>mi
-
-And again:
-
-sigE<173>action
-manuE<173>script
-JarkE<173>ko HieE<173>taE<173>nieE<173>mi
-
-And one more time:
-
-sigE<0x00AD>action
-manuE<0x00AD>script
-JarkE<0x00AD>ko HieE<0x00AD>taE<0x00AD>nieE<0x00AD>mi
-###
-.SH "Soft Hypen Testing"
-.IX Header "Soft Hypen Testing"
-sig\%action
-manu\%script
-Jark\%ko Hie\%ta\%nie\%mi
-.PP
-And again:
-.PP
-sig\%action
-manu\%script
-Jark\%ko Hie\%ta\%nie\%mi
-.PP
-And one more time:
-.PP
-sig\%action
-manu\%script
-Jark\%ko Hie\%ta\%nie\%mi
-###
-
-###
-=head1 XE<lt>E<gt> Whitespace
-
-Blorpy L<B<prok>|blap> X<bivav> wugga chachacha.
-###
-.SH "X<> Whitespace"
-.IX Header "X<> Whitespace"
-Blorpy \fBprok\fR wugga chachacha.
-.IX Xref "bivav"
-###
-
-###
-=head1 Hyphen in SE<lt>E<gt>
-
-Don't S<transform even-this hyphen>. This "one's-fine!", as well. However,
-$-0.13 should have a real hyphen.
-###
-.SH "Hyphen in S<>"
-.IX Header "Hyphen in S<>"
-Don't transform\ even-this\ hyphen. This \*(L"one's-fine!\*(R", as well. However,
-$\-0.13 should have a real hyphen.
-###
-
-###
-=head1 Quote escaping
-
-Don't escape `this' but do escape C<`this'> (and don't surround it in quotes).
-###
-.SH "Quote escaping"
-.IX Header "Quote escaping"
-Don't escape `this' but do escape \f(CW\`this\*(Aq\fR (and don't surround it in quotes).
-###
-
-###
-=pod
-
-E<eth>
-###
-.PP
-\&\*(d-
-###
-
-###
-=head1 C<one> and C<two>
-###
-.ie n .SH """one"" and ""two"""
-.el .SH "\f(CWone\fP and \f(CWtwo\fP"
-.IX Header "one and two"
-###
-
-###
-=pod
-
-Some text.
-
-=for man
-Some raw nroff.
-
-=for roff \fBBold text.\fP
-
-=for html
-Stuff that's hidden.
-
-=for MAN \fIItalic text.\fP
-
-=for ROFF
-.PP
-\&A paragraph.
-
-More text.
-###
-Some text.
-Some raw nroff.
-\fBBold text.\fP
-\fIItalic text.\fP
-.PP
-\&A paragraph.
-.PP
-More text.
-###
-
-###
-=head1 NAME
-
-test - C<test>
-###
-.SH "NAME"
-test \- "test"
-###
-
-###
-=head1 INDEX
-
-Index entry matching a whitespace escape.X<\n>
-###
-.SH "INDEX"
-.IX Header "INDEX"
-Index entry matching a whitespace escape.
-.IX Xref "\\n"
-###
-
-###
-=head1 LINK TO URL
-
-This is a L<link|http://www.example.com/> to a URL.
-###
-.SH "LINK TO URL"
-.IX Header "LINK TO URL"
-This is a link <http://www.example.com/> to a \s-1URL.\s0
-###
-
-###
-=head1 NAME
-
-test - B<test> I<italics> F<file>
-###
-.SH "NAME"
-test \- test italics file
-###
-
-###
-=head1 TRAILING SPACE
-
-HelloS< >
-
-worldS< >
-
-.
-###
-.SH "TRAILING SPACE"
-.IX Header "TRAILING SPACE"
-Hello\
-.PP
-world\ \ \
-.PP
-\&.
-###
-
-###
-=head1 URL LINK
-
-The newest version of this document is also available on the World Wide Web at
-L<http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod>.
-###
-.SH "URL LINK"
-.IX Header "URL LINK"
-The newest version of this document is also available on the World Wide Web at
-<http://pod.tst.eu/http://cvs.schmorp.de/rxvt\-unicode/doc/rxvt.7.pod>.
-###
-
-###
-=head1 RT LINK
-
-L<[perl #12345]|https://rt.cpan.org/12345>
-###
-.SH "RT LINK"
-.IX Header "RT LINK"
-[perl #12345] <https://rt.cpan.org/12345>
-###
-
-###
-=head1 Multiline XZ<><>
-
-Something something X<this is
-one index term>
-###
-.SH "Multiline X<>"
-.IX Header "Multiline X<>"
-Something something
-.IX Xref "this is one index term"
-###
-
-###
-=head1 Uppercase License
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-###
-.SH "Uppercase License"
-.IX Header "Uppercase License"
-\&\s-1THE SOFTWARE IS PROVIDED \*(L"AS IS\*(R", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\s0
-###
-
-###
-=head1 Fixed-width Fonts in =item
-
-The nroff portion should not use fixed-width fonts. In podlators 4.06 and
-earlier, italic was terminated with \f(CW, which didn't properly stop italic.
-
-=over 2
-
-=item C<tar I<option>... [I<name>]...>
-
-=item C<tar I<letter>... [I<argument>]... [I<option>]... [I<name>]...>
-
-=back
-###
-.SH "Fixed-width Fonts in =item"
-.IX Header "Fixed-width Fonts in =item"
-The nroff portion should not use fixed-width fonts. In podlators 4.06 and
-earlier, italic was terminated with \ef(\s-1CW,\s0 which didn't properly stop italic.
-.ie n .IP """tar \fIoption\fP... [\fIname\fP]...""" 2
-.el .IP "\f(CWtar \f(CIoption\f(CW... [\f(CIname\f(CW]...\fR" 2
-.IX Item "tar option... [name]..."
-.PD 0
-.ie n .IP """tar \fIletter\fP... [\fIargument\fP]... [\fIoption\fP]... [\fIname\fP]...""" 2
-.el .IP "\f(CWtar \f(CIletter\f(CW... [\f(CIargument\f(CW]... [\f(CIoption\f(CW]... [\f(CIname\f(CW]...\fR" 2
-.IX Item "tar letter... [argument]... [option]... [name]..."
-###
diff --git a/gnu/usr.bin/perl/cpan/podlators/t/man/options.t b/gnu/usr.bin/perl/cpan/podlators/t/man/options.t
deleted file mode 100644
index 7d48b5afc3c..00000000000
--- a/gnu/usr.bin/perl/cpan/podlators/t/man/options.t
+++ /dev/null
@@ -1,273 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Additional tests for Pod::Man options.
-#
-# Copyright 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2015
-# Russ Allbery <rra@cpan.org>
-#
-# This program is free software; you may redistribute it and/or modify it
-# under the same terms as Perl itself.
-
-use 5.006;
-use strict;
-use warnings;
-
-use lib 't/lib';
-
-use Test::More tests => 31;
-use Test::Podlators qw(read_test_data slurp);
-
-BEGIN {
- use_ok ('Pod::Man');
-}
-
-# Redirect stderr to a file. Return the name of the file that stores standard
-# error.
-sub stderr_save {
- open(OLDERR, '>&STDERR') or die "Can't dup STDERR: $!\n";
- open(STDERR, "> out$$.err") or die "Can't redirect STDERR: $!\n";
- return "out$$.err";
-}
-
-# Restore stderr.
-sub stderr_restore {
- close(STDERR);
- open(STDERR, '>&OLDERR') or die "Can't dup STDERR: $!\n";
- close(OLDERR);
-}
-
-# Loop through all the test data, generate output, and compare it to the
-# desired output data.
-my %options = (options => 1, errors => 1);
-my $n = 1;
-while (defined(my $data_ref = read_test_data(\*DATA, \%options))) {
- my $parser = Pod::Man->new(%{ $data_ref->{options} }, name => 'TEST');
- isa_ok($parser, 'Pod::Man', 'Parser object');
-
- # Save stderr to a temporary file and then run the parser, storing the
- # output into a Perl variable.
- my $errors = stderr_save();
- my $got;
- $parser->output_string(\$got);
- eval { $parser->parse_string_document($data_ref->{input}) };
- my $exception = $@;
- stderr_restore();
-
- # Strip off everything prior to .nh from the output so that we aren't
- # testing the generated header, and then check the output.
- $got =~ s{ \A .* \n [.]nh \n }{}xms;
- is($got, $data_ref->{output}, "Output for test $n");
-
- # Collect the errors and add any exception, marking it with EXCEPTION.
- # Then, compare that to the expected errors. The "1 while" construct is
- # for VMS, in case there are multiple versions of the file.
- my $got_errors = slurp($errors);
- 1 while unlink($errors);
- if ($exception) {
- $exception =~ s{ [ ] at [ ] .* }{}xms;
- $got_errors .= "EXCEPTION: $exception\n";
- }
- is($got_errors, $data_ref->{errors}, "Errors for test $n");
- $n++;
-}
-
-# Below the marker are bits of POD and corresponding expected text output and
-# error output. The options, input, output, and errors are separated by lines
-# containing only ###.
-
-__DATA__
-
-###
-fixed CR
-fixedbold CY
-fixeditalic CW
-fixedbolditalic CX
-###
-=head1 FIXED FONTS
-
-C<foo B<bar I<baz>> I<bay>>
-###
-.SH "FIXED FONTS"
-.IX Header "FIXED FONTS"
-\&\f(CR\*(C`foo \f(CYbar \f(CXbaz\f(CY\f(CR \f(CWbay\f(CR\*(C'\fR
-###
-###
-
-###
-###
-=over 4
-
-=item Foo
-
-Bar.
-
-=head1 NEXT
-###
-.IP "Foo" 4
-.IX Item "Foo"
-Bar.
-.SH "NEXT"
-.IX Header "NEXT"
-.SH "POD ERRORS"
-.IX Header "POD ERRORS"
-Hey! \fBThe above document had some coding errors, which are explained below:\fR
-.IP "Around line 7:" 4
-.IX Item "Around line 7:"
-You forgot a '=back' before '=head1'
-###
-###
-
-###
-stderr 1
-###
-=over 4
-
-=item Foo
-
-Bar.
-
-=head1 NEXT
-###
-.IP "Foo" 4
-.IX Item "Foo"
-Bar.
-.SH "NEXT"
-.IX Header "NEXT"
-###
-Pod input around line 7: You forgot a '=back' before '=head1'
-###
-
-###
-nourls 1
-###
-=head1 URL suppression
-
-L<anchor|http://www.example.com/>
-###
-.SH "URL suppression"
-.IX Header "URL suppression"
-anchor
-###
-###
-
-###
-errors stderr
-###
-=over 4
-
-=item Foo
-
-Bar.
-
-=head1 NEXT
-###
-.IP "Foo" 4
-.IX Item "Foo"
-Bar.
-.SH "NEXT"
-.IX Header "NEXT"
-###
-Pod input around line 7: You forgot a '=back' before '=head1'
-###
-
-###
-errors die
-###
-=over 4
-
-=item Foo
-
-Bar.
-
-=head1 NEXT
-###
-.IP "Foo" 4
-.IX Item "Foo"
-Bar.
-.SH "NEXT"
-.IX Header "NEXT"
-###
-Pod input around line 7: You forgot a '=back' before '=head1'
-EXCEPTION: POD document had syntax errors
-###
-
-###
-errors pod
-###
-=over 4
-
-=item Foo
-
-Bar.
-
-=head1 NEXT
-###
-.IP "Foo" 4
-.IX Item "Foo"
-Bar.
-.SH "NEXT"
-.IX Header "NEXT"
-.SH "POD ERRORS"
-.IX Header "POD ERRORS"
-Hey! \fBThe above document had some coding errors, which are explained below:\fR
-.IP "Around line 7:" 4
-.IX Item "Around line 7:"
-You forgot a '=back' before '=head1'
-###
-###
-
-###
-errors none
-###
-=over 4
-
-=item Foo
-
-Bar.
-
-=head1 NEXT
-###
-.IP "Foo" 4
-.IX Item "Foo"
-Bar.
-.SH "NEXT"
-.IX Header "NEXT"
-###
-###
-
-###
-errors none
-###
-=over 4
-
-=item foo
-
-Not a bullet.
-
-=item *
-
-Also not a bullet.
-
-=back
-###
-.IP "foo" 4
-.IX Item "foo"
-Not a bullet.
-.IP "*" 4
-Also not a bullet.
-###
-###
-
-###
-quotes \(lq"\(rq"
-###
-=head1 FOO C<BAR> BAZ
-
-Foo C<bar> baz.
-###
-.ie n .SH "FOO \(lq""BAR\(rq"" BAZ"
-.el .SH "FOO \f(CWBAR\fP BAZ"
-.IX Header "FOO BAR BAZ"
-Foo \f(CW\*(C`bar\*(C'\fR baz.
-###
-###
diff --git a/gnu/usr.bin/perl/cpan/version/lib/version.pm b/gnu/usr.bin/perl/cpan/version/lib/version.pm
index 201561877e6..66d44be63db 100644
--- a/gnu/usr.bin/perl/cpan/version/lib/version.pm
+++ b/gnu/usr.bin/perl/cpan/version/lib/version.pm
@@ -8,17 +8,20 @@ if ($] >= 5.015) {
warnings::register_categories(qw/version/);
}
-use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
-
-$VERSION = 0.9916;
-$CLASS = 'version';
+our $VERSION = 0.9923;
+our $CLASS = 'version';
+our (@ISA, $STRICT, $LAX);
# avoid using Exporter
require version::regex;
*version::is_lax = \&version::regex::is_lax;
*version::is_strict = \&version::regex::is_strict;
*LAX = \$version::regex::LAX;
+*LAX_DECIMAL_VERSION = \$version::regex::LAX_DECIMAL_VERSION;
+*LAX_DOTTED_DECIMAL_VERSION = \$version::regex::LAX_DOTTED_DECIMAL_VERSION;
*STRICT = \$version::regex::STRICT;
+*STRICT_DECIMAL_VERSION = \$version::regex::STRICT_DECIMAL_VERSION;
+*STRICT_DOTTED_DECIMAL_VERSION = \$version::regex::STRICT_DOTTED_DECIMAL_VERSION;
sub import {
no strict 'refs';
diff --git a/gnu/usr.bin/perl/cpan/version/lib/version.pod b/gnu/usr.bin/perl/cpan/version/lib/version.pod
index 42691b1e0c1..9f3b27d0f4a 100644
--- a/gnu/usr.bin/perl/cpan/version/lib/version.pod
+++ b/gnu/usr.bin/perl/cpan/version/lib/version.pod
@@ -266,10 +266,9 @@ leading-v and at least 3 components.
=head2 numify()
-Returns a value representing the object in a pure decimal form without
-trailing zeroes.
+Returns a value representing the object in a pure decimal.
- version->declare('v1.2')->numify; # 1.002
+ version->declare('v1.2')->numify; # 1.002000
version->parse('1.2')->numify; # 1.200
=head2 stringify()
@@ -280,7 +279,7 @@ way perl would normally represent it in a string. This method is used whenever
a version object is interpolated into a string.
version->declare('v1.2')->stringify; # v1.2
- version->parse('1.200')->stringify; # 1.200
+ version->parse('1.200')->stringify; # 1.2
version->parse(1.02_30)->stringify; # 1.023
=head1 EXPORTED FUNCTIONS
diff --git a/gnu/usr.bin/perl/cpan/version/lib/version/regex.pm b/gnu/usr.bin/perl/cpan/version/lib/version/regex.pm
index 62c1f227d29..4e44d12c936 100644
--- a/gnu/usr.bin/perl/cpan/version/lib/version/regex.pm
+++ b/gnu/usr.bin/perl/cpan/version/lib/version/regex.pm
@@ -2,9 +2,7 @@ package version::regex;
use strict;
-use vars qw($VERSION $CLASS $STRICT $LAX);
-
-$VERSION = 0.9916;
+our $VERSION = 0.9923;
#--------------------------------------------------------------------------#
# Version regexp components
@@ -57,19 +55,19 @@ my $LAX_ALPHA_PART = qr/_[0-9]+/;
# Strict decimal version number.
-my $STRICT_DECIMAL_VERSION =
+our $STRICT_DECIMAL_VERSION =
qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x;
# Strict dotted-decimal version number. Must have both leading "v" and
# at least three parts, to avoid confusion with decimal syntax.
-my $STRICT_DOTTED_DECIMAL_VERSION =
+our $STRICT_DOTTED_DECIMAL_VERSION =
qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x;
# Complete strict version number syntax -- should generally be used
# anchored: qr/ \A $STRICT \z /x
-$STRICT =
+our $STRICT =
qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x;
#--------------------------------------------------------------------------#
@@ -80,8 +78,8 @@ $STRICT =
# allowing an alpha suffix or allowing a leading or trailing
# decimal-point
-my $LAX_DECIMAL_VERSION =
- qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )?
+our $LAX_DECIMAL_VERSION =
+ qr/ $LAX_INTEGER_PART (?: $FRACTION_PART | \. )? $LAX_ALPHA_PART?
|
$FRACTION_PART $LAX_ALPHA_PART?
/x;
@@ -92,7 +90,7 @@ my $LAX_DECIMAL_VERSION =
# enough, without the leading "v", Perl takes .1.2 to mean v0.1.2,
# so when there is no "v", the leading part is optional
-my $LAX_DOTTED_DECIMAL_VERSION =
+our $LAX_DOTTED_DECIMAL_VERSION =
qr/
v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )?
|
@@ -105,8 +103,8 @@ my $LAX_DOTTED_DECIMAL_VERSION =
# The string 'undef' is a special case to make for easier handling
# of return values from ExtUtils::MM->parse_version
-$LAX =
- qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x;
+our $LAX =
+ qr/ undef | $LAX_DOTTED_DECIMAL_VERSION | $LAX_DECIMAL_VERSION /x;
#--------------------------------------------------------------------------#
diff --git a/gnu/usr.bin/perl/cpan/version/t/01base.t b/gnu/usr.bin/perl/cpan/version/t/01base.t
index 08e7ad1506b..9c3862db39a 100644
--- a/gnu/usr.bin/perl/cpan/version/t/01base.t
+++ b/gnu/usr.bin/perl/cpan/version/t/01base.t
@@ -8,11 +8,13 @@ use Test::More qw/no_plan/;
use File::Spec;
BEGIN {
- my $coretests = File::Spec->catpath(
- (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+ my $coretests = File::Spec->rel2abs(
+ File::Spec->catpath(
+ (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+ )
);
require $coretests;
- use_ok('version', 0.9916);
+ use_ok('version', 0.9923);
}
BaseTests("version","new","qv");
diff --git a/gnu/usr.bin/perl/cpan/version/t/02derived.t b/gnu/usr.bin/perl/cpan/version/t/02derived.t
index b2678e8bc5e..151f66cc202 100644
--- a/gnu/usr.bin/perl/cpan/version/t/02derived.t
+++ b/gnu/usr.bin/perl/cpan/version/t/02derived.t
@@ -9,11 +9,13 @@ use File::Spec;
use File::Temp qw/tempfile/;
BEGIN {
- my $coretests = File::Spec->catpath(
- (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+ my $coretests = File::Spec->rel2abs(
+ File::Spec->catpath(
+ (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+ )
);
require $coretests;
- use_ok("version", 0.9916);
+ use_ok("version", 0.9923);
# If we made it this far, we are ok.
}
@@ -49,8 +51,7 @@ print $fh <<"EOF";
# This is an empty subclass
package $package;
use parent 'version';
-use vars '\$VERSION';
-\$VERSION=0.001;
+our \$VERSION = 0.001;
EOF
close $fh;
diff --git a/gnu/usr.bin/perl/cpan/version/t/03require.t b/gnu/usr.bin/perl/cpan/version/t/03require.t
index da1f02e1ad5..c6f67d50ac8 100644
--- a/gnu/usr.bin/perl/cpan/version/t/03require.t
+++ b/gnu/usr.bin/perl/cpan/version/t/03require.t
@@ -8,8 +8,10 @@ use Test::More qw/no_plan/;
use File::Spec;
BEGIN {
- my $coretests = File::Spec->catpath(
- (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+ my $coretests = File::Spec->rel2abs(
+ File::Spec->catpath(
+ (File::Spec->splitpath($0))[0,1], 'coretests.pm'
+ )
);
require $coretests;
}
@@ -17,7 +19,7 @@ BEGIN {
# Don't want to use, because we need to make sure that the import doesn't
# fire just yet (some code does this to avoid importing qv() and delare()).
require_ok("version");
-is $version::VERSION, 0.9916, "Make sure we have the correct class";
+is $version::VERSION, 0.9923, "Make sure we have the correct class";
ok(!"main"->can("qv"), "We don't have the imported qv()");
ok(!"main"->can("declare"), "We don't have the imported declare()");
diff --git a/gnu/usr.bin/perl/cpan/version/t/05sigdie.t b/gnu/usr.bin/perl/cpan/version/t/05sigdie.t
index 330ab1a812f..e979eced20c 100644
--- a/gnu/usr.bin/perl/cpan/version/t/05sigdie.t
+++ b/gnu/usr.bin/perl/cpan/version/t/05sigdie.t
@@ -14,7 +14,7 @@ BEGIN {
}
BEGIN {
- use version 0.9916;
+ use version 0.9923;
}
pass "Didn't get caught by the wrong DIE handler, which is a good thing";
diff --git a/gnu/usr.bin/perl/cpan/version/t/06noop.t b/gnu/usr.bin/perl/cpan/version/t/06noop.t
index 4d5a7fbe6a9..a34762e18d3 100644
--- a/gnu/usr.bin/perl/cpan/version/t/06noop.t
+++ b/gnu/usr.bin/perl/cpan/version/t/06noop.t
@@ -7,7 +7,7 @@
use Test::More qw/no_plan/;
BEGIN {
- use_ok('version', 0.9916);
+ use_ok('version', 0.9923);
}
my $v1 = version->new('1.2');
diff --git a/gnu/usr.bin/perl/cpan/version/t/07locale.t b/gnu/usr.bin/perl/cpan/version/t/07locale.t
index 1a4dadf35bb..79b22abe573 100644
--- a/gnu/usr.bin/perl/cpan/version/t/07locale.t
+++ b/gnu/usr.bin/perl/cpan/version/t/07locale.t
@@ -11,7 +11,7 @@ use Test::More tests => 8;
use Config;
BEGIN {
- use_ok('version', 0.9916);
+ use_ok('version', 0.9923);
}
SKIP: {
diff --git a/gnu/usr.bin/perl/cpan/version/t/08_corelist.t b/gnu/usr.bin/perl/cpan/version/t/08_corelist.t
index 3cc8889cb96..638b290936c 100644
--- a/gnu/usr.bin/perl/cpan/version/t/08_corelist.t
+++ b/gnu/usr.bin/perl/cpan/version/t/08_corelist.t
@@ -5,7 +5,7 @@
#########################
use Test::More tests => 3;
-use_ok("version", 0.9916);
+use_ok("version", 0.9923);
# do strict lax tests in a sub to isolate a package to test importing
SKIP: {
diff --git a/gnu/usr.bin/perl/cpan/version/t/09_list_util.t b/gnu/usr.bin/perl/cpan/version/t/09_list_util.t
index 232a9c0c3d1..34e47dce8f9 100644
--- a/gnu/usr.bin/perl/cpan/version/t/09_list_util.t
+++ b/gnu/usr.bin/perl/cpan/version/t/09_list_util.t
@@ -4,7 +4,7 @@
#########################
use strict;
-use_ok("version", 0.9916);
+use_ok("version", 0.9923);
use Test::More;
BEGIN {